From 5f895d29996db30c2b15f5098002fd95d49b7f72 Mon Sep 17 00:00:00 2001 From: rpm-mcarman <65228808+rpm-mcarman@users.noreply.github.com> Date: Thu, 15 Feb 2024 07:58:11 -0500 Subject: [PATCH] newest commit 2/15/2024 --- app/api/DSpec/searchpn.json | 816 +- app/api/Users/delete.json | 17 +- app/config/routes.json | 14 +- data/authdb.sqlite3 | Bin 28672 -> 28672 bytes lib/core/app.js | 5 +- lib/modules/dbupdater.js | 48 +- lib/setup/upload.js | 3 +- public/Framework7/5/css/framework7.bundle.css | 21805 ++++++++ .../5/css/framework7.bundle.min.css | 13 + .../5/css/framework7.bundle.rtl.css | 21821 ++++++++ .../5/css/framework7.bundle.rtl.min.css | 13 + public/Framework7/5/css/framework7.css | 5893 +++ public/Framework7/5/css/framework7.min.css | 13 + public/Framework7/5/css/framework7.rtl.css | 5897 +++ .../Framework7/5/css/framework7.rtl.min.css | 13 + public/Framework7/5/img/f7-icon-square.png | Bin 0 -> 31668 bytes public/Framework7/5/img/f7-icon.png | Bin 0 -> 13643 bytes public/Framework7/5/js/app.js | 40 + .../5/js/framework7-lite.bundle.d.ts | 333 + .../Framework7/5/js/framework7-lite.bundle.js | 40920 +++++++++++++++ .../5/js/framework7-lite.bundle.min.js | 14 + .../5/js/framework7-lite.bundle.min.js.map | 1 + public/Framework7/5/js/framework7-lite.d.ts | 333 + public/Framework7/5/js/framework7-lite.js | 11853 +++++ public/Framework7/5/js/framework7-lite.min.js | 14 + .../5/js/framework7-lite.min.js.map | 1 + public/Framework7/5/js/framework7.bundle.d.ts | 333 + public/Framework7/5/js/framework7.bundle.js | 42790 ++++++++++++++++ .../Framework7/5/js/framework7.bundle.min.js | 14 + .../5/js/framework7.bundle.min.js.map | 1 + public/Framework7/5/js/framework7.d.ts | 333 + public/Framework7/5/js/framework7.js | 13717 +++++ public/Framework7/5/js/framework7.min.js | 14 + public/Framework7/5/js/framework7.min.js.map | 1 + public/Framework7/5/js/routes.js | 1 + .../6/css/framework7-bundle-rtl.min.css | 13 + .../6/css/framework7-bundle.min.css | 13 + .../Framework7/6/css/framework7-rtl.min.css | 13 + public/Framework7/6/css/framework7.min.css | 13 + public/Framework7/6/img/f7-icon-square.png | Bin 0 -> 31668 bytes public/Framework7/6/img/f7-icon.png | Bin 0 -> 13643 bytes public/Framework7/6/js/app.js | 40 + .../Framework7/6/js/framework7-bundle.min.js | 14 + .../6/js/framework7-bundle.min.js.map | 1 + public/Framework7/6/js/framework7.min.js | 14 + public/Framework7/6/js/framework7.min.js.map | 1 + public/Framework7/6/js/routes.js | 1 + public/assets/images/logo_black.jpg | Bin 0 -> 12087 bytes public/dmxAppConnect/config.js | 9262 ++-- views/cnfrm.ejs | 2 +- views/confirm.ejs | 2 +- views/index.ejs | 11 +- views/layouts/.wappler_folder.json | 3 + views/layouts/admin.ejs | 2 +- views/layouts/main.ejs | 27 +- views/layouts/newmain.ejs | 122 + views/layouts/smain.ejs | 10 +- views/secure/dspec.ejs | 6 +- views/secure/dspecgeneral.ejs | 115 +- views/secure/dspecmotor.ejs | 227 +- views/wadmin/usermanage.ejs | 4 +- 61 files changed, 171676 insertions(+), 5324 deletions(-) create mode 100644 public/Framework7/5/css/framework7.bundle.css create mode 100644 public/Framework7/5/css/framework7.bundle.min.css create mode 100644 public/Framework7/5/css/framework7.bundle.rtl.css create mode 100644 public/Framework7/5/css/framework7.bundle.rtl.min.css create mode 100644 public/Framework7/5/css/framework7.css create mode 100644 public/Framework7/5/css/framework7.min.css create mode 100644 public/Framework7/5/css/framework7.rtl.css create mode 100644 public/Framework7/5/css/framework7.rtl.min.css create mode 100644 public/Framework7/5/img/f7-icon-square.png create mode 100644 public/Framework7/5/img/f7-icon.png create mode 100644 public/Framework7/5/js/app.js create mode 100644 public/Framework7/5/js/framework7-lite.bundle.d.ts create mode 100644 public/Framework7/5/js/framework7-lite.bundle.js create mode 100644 public/Framework7/5/js/framework7-lite.bundle.min.js create mode 100644 public/Framework7/5/js/framework7-lite.bundle.min.js.map create mode 100644 public/Framework7/5/js/framework7-lite.d.ts create mode 100644 public/Framework7/5/js/framework7-lite.js create mode 100644 public/Framework7/5/js/framework7-lite.min.js create mode 100644 public/Framework7/5/js/framework7-lite.min.js.map create mode 100644 public/Framework7/5/js/framework7.bundle.d.ts create mode 100644 public/Framework7/5/js/framework7.bundle.js create mode 100644 public/Framework7/5/js/framework7.bundle.min.js create mode 100644 public/Framework7/5/js/framework7.bundle.min.js.map create mode 100644 public/Framework7/5/js/framework7.d.ts create mode 100644 public/Framework7/5/js/framework7.js create mode 100644 public/Framework7/5/js/framework7.min.js create mode 100644 public/Framework7/5/js/framework7.min.js.map create mode 100644 public/Framework7/5/js/routes.js create mode 100644 public/Framework7/6/css/framework7-bundle-rtl.min.css create mode 100644 public/Framework7/6/css/framework7-bundle.min.css create mode 100644 public/Framework7/6/css/framework7-rtl.min.css create mode 100644 public/Framework7/6/css/framework7.min.css create mode 100644 public/Framework7/6/img/f7-icon-square.png create mode 100644 public/Framework7/6/img/f7-icon.png create mode 100644 public/Framework7/6/js/app.js create mode 100644 public/Framework7/6/js/framework7-bundle.min.js create mode 100644 public/Framework7/6/js/framework7-bundle.min.js.map create mode 100644 public/Framework7/6/js/framework7.min.js create mode 100644 public/Framework7/6/js/framework7.min.js.map create mode 100644 public/Framework7/6/js/routes.js create mode 100644 public/assets/images/logo_black.jpg create mode 100644 views/layouts/newmain.ejs diff --git a/app/api/DSpec/searchpn.json b/app/api/DSpec/searchpn.json index 12c44ab..61e0989 100644 --- a/app/api/DSpec/searchpn.json +++ b/app/api/DSpec/searchpn.json @@ -1997,15 +1997,15 @@ "name": "status", "sub": [ { - "type": "text", - "name": "updatedate" + "type": "number", + "name": "id" }, { - "type": "text", + "type": "number", "name": "createuserid" }, { - "type": "text", + "type": "number", "name": "updateuserid" }, { @@ -2017,13 +2017,13 @@ "name": "createdate" }, { - "type": "number", - "name": "id" + "type": "text", + "name": "updatedate" } ] }, { - "type": "text", + "type": "boolean", "name": "plrv" }, { @@ -2031,7 +2031,7 @@ "name": "except" }, { - "type": "text", + "type": "number", "name": "approveuserid" }, { @@ -2086,17 +2086,13 @@ "type": "text", "name": "updatedate" }, - { - "type": "text", - "name": "createuserid" - }, { "type": "number", "name": "id" }, { - "type": "text", - "name": "name" + "type": "number", + "name": "updateuserid" }, { "type": "text", @@ -2104,7 +2100,11 @@ }, { "type": "text", - "name": "updateuserid" + "name": "name" + }, + { + "type": "number", + "name": "createuserid" } ] }, @@ -2124,6 +2124,14 @@ "type": "number", "name": "updateuserid" }, + { + "type": "text", + "name": "secondaryvendorpartnumber" + }, + { + "type": "text", + "name": "primarycustomerpartnumber" + }, { "type": "object", "name": "secondaryvendor", @@ -2134,141 +2142,13 @@ } ] }, - { - "type": "text", - "name": "secondaryvendorpartnumber" - }, - { - "type": "text", - "name": "primarycustomerpartnumber" - }, { "type": "object", "name": "replaces", "sub": [ - { - "type": "text", - "name": "weight" - }, - { - "type": "object", - "name": "status", - "sub": [ - { - "type": "number", - "name": "id" - } - ] - }, - { - "type": "number", - "name": "createuserid" - }, - { - "type": "text", - "name": "file" - }, - { - "type": "text", - "name": "updatedate" - }, - { - "type": "text", - "name": "secondaryvendorpartnumber" - }, - { - "type": "object", - "name": "secondaryvendor", - "sub": [ - { - "type": "number", - "name": "id" - } - ] - }, - { - "type": "text", - "name": "primarycustomerpartnumber" - }, - { - "type": "number", - "name": "updateuserid" - }, - { - "type": "object", - "name": "replaces", - "sub": [ - { - "type": "number", - "name": "id" - } - ] - }, - { - "type": "object", - "name": "replacedby", - "sub": [ - { - "type": "number", - "name": "id" - } - ] - }, - { - "type": "object", - "name": "partcode", - "sub": [ - { - "type": "number", - "name": "id" - } - ] - }, - { - "type": "text", - "name": "stdcost" - }, - { - "type": "text", - "name": "listprice" - }, { "type": "number", "name": "id" - }, - { - "type": "text", - "name": "ppap" - }, - { - "type": "text", - "name": "number" - }, - { - "type": "object", - "name": "primaryvendor", - "sub": [ - { - "type": "number", - "name": "id" - } - ] - }, - { - "type": "text", - "name": "comments" - }, - { - "type": "text", - "name": "createdate" - }, - { - "type": "text", - "name": "primaryvendorpartnumber" - }, - { - "type": "text", - "name": "description" } ] }, @@ -2276,129 +2156,9 @@ "type": "object", "name": "replacedby", "sub": [ - { - "type": "text", - "name": "weight" - }, - { - "type": "object", - "name": "status", - "sub": [ - { - "type": "number", - "name": "id" - } - ] - }, - { - "type": "number", - "name": "createuserid" - }, - { - "type": "text", - "name": "file" - }, - { - "type": "number", - "name": "updateuserid" - }, - { - "type": "text", - "name": "secondaryvendorpartnumber" - }, - { - "type": "object", - "name": "secondaryvendor", - "sub": [ - { - "type": "number", - "name": "id" - } - ] - }, - { - "type": "text", - "name": "primarycustomerpartnumber" - }, - { - "type": "text", - "name": "updatedate" - }, - { - "type": "object", - "name": "replaces", - "sub": [ - { - "type": "number", - "name": "id" - } - ] - }, - { - "type": "object", - "name": "replacedby", - "sub": [ - { - "type": "number", - "name": "id" - } - ] - }, - { - "type": "object", - "name": "partcode", - "sub": [ - { - "type": "number", - "name": "id" - } - ] - }, - { - "type": "text", - "name": "stdcost" - }, - { - "type": "text", - "name": "listprice" - }, - { - "type": "text", - "name": "number" - }, - { - "type": "text", - "name": "ppap" - }, { "type": "number", "name": "id" - }, - { - "type": "object", - "name": "primaryvendor", - "sub": [ - { - "type": "number", - "name": "id" - } - ] - }, - { - "type": "text", - "name": "comments" - }, - { - "type": "text", - "name": "createdate" - }, - { - "type": "text", - "name": "primaryvendorpartnumber" - }, - { - "type": "text", - "name": "description" } ] }, @@ -2454,11 +2214,11 @@ }, { "type": "number", - "name": "starting" + "name": "updateuserid" }, { "type": "number", - "name": "updateuserid" + "name": "starting" }, { "type": "text", @@ -2562,22 +2322,22 @@ }, { "type": "text", - "name": "switchposition" + "name": "reasonforchange" }, { "type": "text", - "name": "reasonforchange" + "name": "revisionlevel" }, { "type": "text", - "name": "revisionlevel" + "name": "switchposition" }, { "type": "text", "name": "suctionport" }, { - "type": "text", + "type": "boolean", "name": "rtv" }, { @@ -2609,31 +2369,31 @@ "name": "drive" }, { - "type": "text", + "type": "boolean", "name": "customernotification" }, { "type": "text", - "name": "opening" + "name": "curve" }, { "type": "text", "name": "servicereplacementref" }, { - "type": "text", - "name": "ftf" + "type": "boolean", + "name": "built" }, { "type": "text", - "name": "built" + "name": "ftf" }, { "type": "text", - "name": "curve" + "name": "opening" }, { - "type": "text", + "type": "boolean", "name": "jsp" }, { @@ -2684,35 +2444,13 @@ "type": "text", "name": "additionalparts" }, - { - "type": "text", - "name": "pressurefitting" - }, { "type": "text", "name": "basicclass" - } - ] - }, - { - "type": "object", - "name": "headers", - "sub": [ - { - "type": "text", - "name": "connection" }, { "type": "text", - "name": "content-length" - }, - { - "type": "text", - "name": "content-type" - }, - { - "type": "text", - "name": "date" + "name": "pressurefitting" } ] } @@ -2775,15 +2513,15 @@ "name": "status", "sub": [ { - "type": "text", - "name": "updatedate" + "type": "number", + "name": "id" }, { - "type": "text", + "type": "number", "name": "createuserid" }, { - "type": "text", + "type": "number", "name": "updateuserid" }, { @@ -2795,13 +2533,13 @@ "name": "createdate" }, { - "type": "number", - "name": "id" + "type": "text", + "name": "updatedate" } ] }, { - "type": "text", + "type": "boolean", "name": "plrv" }, { @@ -2809,7 +2547,7 @@ "name": "except" }, { - "type": "text", + "type": "number", "name": "approveuserid" }, { @@ -2820,221 +2558,57 @@ "type": "text", "name": "pinion" }, - { - "type": "text", - "name": "box" - }, - { - "type": "text", - "name": "ho" - }, - { - "type": "text", - "name": "gasket" - }, - { - "type": "text", - "name": "bracket" - }, - { - "type": "text", - "name": "suctionfitting" - }, - { - "type": "text", - "name": "rotation" - }, - { - "type": "object", - "name": "partnumber", - "sub": [ - { - "type": "text", - "name": "weight" - }, - { - "type": "array", - "name": "apps" - }, - { - "type": "object", - "name": "status", - "sub": [ - { - "type": "text", - "name": "updatedate" - }, - { - "type": "text", - "name": "createuserid" - }, - { - "type": "number", - "name": "id" - }, - { - "type": "text", - "name": "name" - }, - { - "type": "text", - "name": "createdate" - }, - { - "type": "text", - "name": "updateuserid" - } - ] - }, - { - "type": "number", - "name": "createuserid" - }, - { - "type": "text", - "name": "file" - }, - { - "type": "text", - "name": "updatedate" - }, - { - "type": "number", - "name": "updateuserid" - }, - { - "type": "object", - "name": "secondaryvendor", - "sub": [ - { - "type": "number", - "name": "id" - } - ] - }, - { - "type": "text", - "name": "secondaryvendorpartnumber" - }, - { - "type": "text", - "name": "primarycustomerpartnumber" - }, - { - "type": "object", - "name": "replaces", - "sub": [ - { - "type": "text", - "name": "weight" - }, - { - "type": "object", - "name": "status", - "sub": [ - { - "type": "number", - "name": "id" - } - ] - }, - { - "type": "number", - "name": "createuserid" - }, - { - "type": "text", - "name": "file" - }, - { - "type": "text", - "name": "updatedate" - }, - { - "type": "text", - "name": "secondaryvendorpartnumber" - }, - { - "type": "object", - "name": "secondaryvendor", - "sub": [ - { - "type": "number", - "name": "id" - } - ] - }, - { - "type": "text", - "name": "primarycustomerpartnumber" - }, - { - "type": "number", - "name": "updateuserid" - }, - { - "type": "object", - "name": "replaces", - "sub": [ - { - "type": "number", - "name": "id" - } - ] - }, - { - "type": "object", - "name": "replacedby", - "sub": [ - { - "type": "number", - "name": "id" - } - ] - }, - { - "type": "object", - "name": "partcode", - "sub": [ - { - "type": "number", - "name": "id" - } - ] - }, - { - "type": "text", - "name": "stdcost" - }, + { + "type": "text", + "name": "box" + }, + { + "type": "text", + "name": "ho" + }, + { + "type": "text", + "name": "gasket" + }, + { + "type": "text", + "name": "bracket" + }, + { + "type": "text", + "name": "suctionfitting" + }, + { + "type": "text", + "name": "rotation" + }, + { + "type": "object", + "name": "partnumber", + "sub": [ + { + "type": "text", + "name": "weight" + }, + { + "type": "array", + "name": "apps" + }, + { + "type": "object", + "name": "status", + "sub": [ { "type": "text", - "name": "listprice" + "name": "updatedate" }, { "type": "number", "name": "id" }, { - "type": "text", - "name": "ppap" - }, - { - "type": "text", - "name": "number" - }, - { - "type": "object", - "name": "primaryvendor", - "sub": [ - { - "type": "number", - "name": "id" - } - ] - }, - { - "type": "text", - "name": "comments" + "type": "number", + "name": "updateuserid" }, { "type": "text", @@ -3042,141 +2616,65 @@ }, { "type": "text", - "name": "primaryvendorpartnumber" + "name": "name" }, { - "type": "text", - "name": "description" + "type": "number", + "name": "createuserid" } ] }, + { + "type": "number", + "name": "createuserid" + }, + { + "type": "text", + "name": "file" + }, + { + "type": "text", + "name": "updatedate" + }, + { + "type": "number", + "name": "updateuserid" + }, + { + "type": "text", + "name": "secondaryvendorpartnumber" + }, + { + "type": "text", + "name": "primarycustomerpartnumber" + }, { "type": "object", - "name": "replacedby", + "name": "secondaryvendor", "sub": [ - { - "type": "text", - "name": "weight" - }, - { - "type": "object", - "name": "status", - "sub": [ - { - "type": "number", - "name": "id" - } - ] - }, { "type": "number", - "name": "createuserid" - }, - { - "type": "text", - "name": "file" - }, + "name": "id" + } + ] + }, + { + "type": "object", + "name": "replaces", + "sub": [ { "type": "number", - "name": "updateuserid" - }, - { - "type": "text", - "name": "secondaryvendorpartnumber" - }, - { - "type": "object", - "name": "secondaryvendor", - "sub": [ - { - "type": "number", - "name": "id" - } - ] - }, - { - "type": "text", - "name": "primarycustomerpartnumber" - }, - { - "type": "text", - "name": "updatedate" - }, - { - "type": "object", - "name": "replaces", - "sub": [ - { - "type": "number", - "name": "id" - } - ] - }, - { - "type": "object", - "name": "replacedby", - "sub": [ - { - "type": "number", - "name": "id" - } - ] - }, - { - "type": "object", - "name": "partcode", - "sub": [ - { - "type": "number", - "name": "id" - } - ] - }, - { - "type": "text", - "name": "stdcost" - }, - { - "type": "text", - "name": "listprice" - }, - { - "type": "text", - "name": "number" - }, - { - "type": "text", - "name": "ppap" - }, + "name": "id" + } + ] + }, + { + "type": "object", + "name": "replacedby", + "sub": [ { "type": "number", "name": "id" - }, - { - "type": "object", - "name": "primaryvendor", - "sub": [ - { - "type": "number", - "name": "id" - } - ] - }, - { - "type": "text", - "name": "comments" - }, - { - "type": "text", - "name": "createdate" - }, - { - "type": "text", - "name": "primaryvendorpartnumber" - }, - { - "type": "text", - "name": "description" } ] }, @@ -3232,11 +2730,11 @@ }, { "type": "number", - "name": "starting" + "name": "updateuserid" }, { "type": "number", - "name": "updateuserid" + "name": "starting" }, { "type": "text", @@ -3340,22 +2838,22 @@ }, { "type": "text", - "name": "switchposition" + "name": "reasonforchange" }, { "type": "text", - "name": "reasonforchange" + "name": "revisionlevel" }, { "type": "text", - "name": "revisionlevel" + "name": "switchposition" }, { "type": "text", "name": "suctionport" }, { - "type": "text", + "type": "boolean", "name": "rtv" }, { @@ -3387,31 +2885,31 @@ "name": "drive" }, { - "type": "text", + "type": "boolean", "name": "customernotification" }, { "type": "text", - "name": "opening" + "name": "curve" }, { "type": "text", "name": "servicereplacementref" }, { - "type": "text", - "name": "ftf" + "type": "boolean", + "name": "built" }, { "type": "text", - "name": "built" + "name": "ftf" }, { "type": "text", - "name": "curve" + "name": "opening" }, { - "type": "text", + "type": "boolean", "name": "jsp" }, { @@ -3462,35 +2960,13 @@ "type": "text", "name": "additionalparts" }, - { - "type": "text", - "name": "pressurefitting" - }, { "type": "text", "name": "basicclass" - } - ] - }, - { - "type": "object", - "name": "headers", - "sub": [ - { - "type": "text", - "name": "connection" - }, - { - "type": "text", - "name": "content-length" - }, - { - "type": "text", - "name": "content-type" }, { "type": "text", - "name": "date" + "name": "pressurefitting" } ] } diff --git a/app/api/Users/delete.json b/app/api/Users/delete.json index 82d2a8b..76d8f73 100644 --- a/app/api/Users/delete.json +++ b/app/api/Users/delete.json @@ -54,7 +54,8 @@ "name": "affected", "type": "number" } - ] + ], + "output": true }, { "name": "delete1", @@ -101,7 +102,19 @@ "name": "affected", "type": "number" } - ] + ], + "output": true + }, + { + "name": "api", + "module": "api", + "action": "send", + "options": { + "method": "DELETE", + "url": "{{$_ENV.API_BASEURL+'xuserroles/byuser'+$_GET.id}}" + }, + "output": true, + "metaData": {} } ] } diff --git a/app/config/routes.json b/app/config/routes.json index d397500..e78abb6 100644 --- a/app/config/routes.json +++ b/app/config/routes.json @@ -13,18 +13,18 @@ "path": "/", "page": "index", "routeType": "page", - "layout": "main", + "layout": "newmain", "exec": "" }, { "path": "/termsandconditions", "page": "termsandconditions", - "layout": "main" + "layout": "newmain" }, { "path": "/parttype", "page": "parttype", - "layout": "main" + "layout": "newmain" }, { "path": "/dspec2", @@ -34,12 +34,12 @@ { "path": "/login", "page": "login", - "layout": "main" + "layout": "newmain" }, { "path": "/registration", "page": "registration", - "layout": "main" + "layout": "newmain" }, { "path": "/wadmin/usermanage", @@ -54,13 +54,13 @@ { "path": "/confirm", "page": "confirm", - "layout": "main", + "layout": "newmain", "exec": "/api/security/authenticate" }, { "path": "/cnfrm", "page": "cnfrm", - "layout": "main", + "layout": "newmain", "exec": "" }, { diff --git a/data/authdb.sqlite3 b/data/authdb.sqlite3 index 05ce37ca61a5dd06999ac0c4478f0b551174f653..71a421c3d091f213a84d06d02c7c1e200cfb03c7 100644 GIT binary patch delta 112 zcmZp8z}WDBae_4C)QK|Aj8iuzEV1Wd;AWA8z5MzN3=A5KjN%+XS^-G20BH#*EdZrCfHX6!HVXqIrx*a+iWd+7 delta 112 zcmZp8z}WDBae_4CT4 diff --git a/lib/core/app.js b/lib/core/app.js index e23a47e..8a66a66 100644 --- a/lib/core/app.js +++ b/lib/core/app.js @@ -32,6 +32,7 @@ function App(req = {}, res = {}) { this.db = {}; this.s3 = {}; this.jwt = {}; + this.trx = {}; if (config.globals.data) { this.set(config.globals.data); @@ -271,7 +272,7 @@ App.prototype = { case 'mysql': case 'mysql2': options.connection = { - supportBigNumber: true, + supportBigNumbers: true, dateStrings: !!options.tz, ...options.connection }; @@ -410,7 +411,7 @@ App.prototype = { }, getDbConnection: function(name) { - if (this.__trx) return this.__trx; + if (this.trx[name]) return this.trx[name]; if (global.db[name]) { return global.db[name]; diff --git a/lib/modules/dbupdater.js b/lib/modules/dbupdater.js index 4ee0707..285cec0 100644 --- a/lib/modules/dbupdater.js +++ b/lib/modules/dbupdater.js @@ -399,24 +399,54 @@ module.exports = { }, // bulk insert - // values is array of objects with column(key) and value - // batchSize is number of inserts per query (multi insert statement) bulkinsert: async function (options) { const connection = this.parseRequired(options.connection, 'string', 'dbupdater.bulkinsert: connection is required.'); - const table = this.parseRequired(options.table, 'string', 'dbupdater.bulkinsert: table is required.'); - const values = this.parseRequired(options.values, 'object', 'dbupdater.bulkinsert: values is required.'); - const batchSize = this.parseOptional(options.batchSize, 'number', 100); + const sql = this.parseSQL(options.sql); + const source = this.parseRequired(options.source, 'object', 'dbupdater.bulkinsert: source is required.'); + const batchsize = this.parseOptional(options.batchsize, 'number', 100); const db = this.getDbConnection(connection); if (db.client == 'couchdb') { throw new Error('dbupdater.bulkinsert: couchdb is not supported.'); } - await db.transaction(async transaction => { - for (let i = 0; i < values.length; i += batchSize) { - let batch = values.slice(i, i + batchSize); - await transaction(table).insert(batch); + return await db.transaction(async transaction => { + for (let i = 0; i < source.length; i += batchsize) { + let batch = source.slice(i, i + batchsize).map(data => { + let values = {}; + + for (let value of sql.values) { + if (value.type == 'json') { + values[value.column] = JSON.stringify(data[value.value]); + } else { + values[value.column] = data[value.value]; + } + } + + return values; + }); + + await transaction(sql.table.name || sql.table).insert(batch); } + + return { affected: source.length }; + }); + }, + + transaction: async function (options) { + const connection = this.parseRequired(options.connection, 'string', 'dbupdater.transaction: connection is required.'); + //const exec = this.parseRequired(options.exec, 'object', 'dbupdater.transaction: exec is required.'); + const db = this.getDbConnection(connection); + + if (db.client == 'couchdb') { + throw new Error('dbupdater.transaction: couchdb is not supported.'); + } + + return await db.transaction(async trx => { + this.trx[connection] = trx; + return await this.exec(options.exec, true).finally(() => { + this.trx[connection] = null; + }); }); }, diff --git a/lib/setup/upload.js b/lib/setup/upload.js index b412b9d..ba0fc70 100644 --- a/lib/setup/upload.js +++ b/lib/setup/upload.js @@ -14,7 +14,8 @@ module.exports = function(app) { // Always use tmp folder app.use(fileupload(Object.assign({}, config.fileupload, { useTempFiles: true, - tempFileDir: config.tmpFolder + tempFileDir: config.tmpFolder, + defParamCharset: 'utf8' }))); app.use((req, res, next) => { diff --git a/public/Framework7/5/css/framework7.bundle.css b/public/Framework7/5/css/framework7.bundle.css new file mode 100644 index 0000000..d148507 --- /dev/null +++ b/public/Framework7/5/css/framework7.bundle.css @@ -0,0 +1,21805 @@ +/** + * Framework7 5.7.14 + * Full featured mobile HTML framework for building iOS & Android apps + * https://framework7.io/ + * + * Copyright 2014-2020 Vladimir Kharlampidi + * + * Released under the MIT License + * + * Released on: November 9, 2020 + */ + +/*==================== + Core + ==================== */ +:root { + --f7-theme-color: #007aff; + --f7-theme-color-rgb: 0, 122, 255; + --f7-theme-color-shade: #0066d6; + --f7-theme-color-tint: #298fff; + --f7-safe-area-left: 0px; + --f7-safe-area-right: 0px; + --f7-safe-area-top: 0px; + --f7-safe-area-bottom: 0px; + --f7-safe-area-outer-left: 0px; + --f7-safe-area-outer-right: 0px; + --f7-device-pixel-ratio: 1; +} +@supports (left: env(safe-area-inset-left)) { + :root { + --f7-safe-area-top: env(safe-area-inset-top); + --f7-safe-area-bottom: env(safe-area-inset-bottom); + } + :root .ios-left-edge, + :root .ios-edges, + :root .safe-area-left, + :root .safe-areas, + :root .popup, + :root .sheet-modal, + :root .panel-left { + --f7-safe-area-left: env(safe-area-inset-left); + --f7-safe-area-outer-left: env(safe-area-inset-left); + } + :root .ios-right-edge, + :root .ios-edges, + :root .safe-area-right, + :root .safe-areas, + :root .popup, + :root .sheet-modal, + :root .panel-right { + --f7-safe-area-right: env(safe-area-inset-right); + --f7-safe-area-outer-right: env(safe-area-inset-right); + } + :root .no-safe-areas, + :root .no-safe-area-left, + :root .no-ios-edges, + :root .no-ios-left-edge { + --f7-safe-area-left: 0px; + --f7-safe-area-outer-left: 0px; + } + :root .no-safe-areas, + :root .no-safe-area-right, + :root .no-ios-edges, + :root .no-ios-right-edge { + --f7-safe-area-right: 0px; + --f7-safe-area-outer-right: 0px; + } +} +@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) { + :root { + --f7-device-pixel-ratio: 2; + } +} +@media (-webkit-min-device-pixel-ratio: 3), (min-resolution: 3dppx) { + :root { + --f7-device-pixel-ratio: 3; + } +} +/*==================== + Fonts & Bars + ==================== */ +:root { + --f7-font-size: 14px; + /* + --f7-bars-link-color: var(--f7-theme-color); + */ + --f7-bars-bg-image: none; + --f7-bars-translucent-opacity: 0.8; + --f7-bars-translucent-blur: 20px; + --f7-bars-shadow-bottom-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.25) 0%, rgba(0, 0, 0, 0.08) 40%, rgba(0, 0, 0, 0.04) 50%, rgba(0, 0, 0, 0) 90%, rgba(0, 0, 0, 0) 100%); + --f7-bars-shadow-top-image: linear-gradient(to top, rgba(0, 0, 0, 0.25) 0%, rgba(0, 0, 0, 0.08) 40%, rgba(0, 0, 0, 0.04) 50%, rgba(0, 0, 0, 0) 90%, rgba(0, 0, 0, 0) 100%); + --f7-bars-text-color: #000; + --f7-bars-bg-color: #f7f7f8; + --f7-bars-bg-color-rgb: 247, 247, 248; +} +:root .theme-dark, +:root.theme-dark { + --f7-bars-text-color: #fff; +} +.ios { + --f7-font-family: -apple-system, SF Pro Text, SF UI Text, system-ui, Helvetica Neue, Helvetica, Arial, sans-serif; + --f7-line-height: 1.4; + --f7-text-color: #000; + --f7-bars-border-color: rgba(0, 0, 0, 0.25); +} +.ios .theme-dark, +.ios.theme-dark { + --f7-text-color: #fff; + --f7-bars-bg-color: #121212; + --f7-bars-bg-color-rgb: 22, 22, 22; + --f7-bars-border-color: rgba(255, 255, 255, 0.16); +} +.md { + --f7-font-family: Roboto, system-ui, Noto, Helvetica, Arial, sans-serif; + --f7-line-height: 1.5; + --f7-bars-border-color: transparent; + --f7-text-color: #212121; +} +.md .theme-dark, +.md.theme-dark { + --f7-text-color: rgba(255, 255, 255, 0.87); + --f7-bars-bg-color: #202020; +} +.aurora { + --f7-font-family: -apple-system, system-ui, Helvetica, Arial, sans-serif; + --f7-line-height: 1.5; + --f7-text-color: #000; + --f7-bars-border-color: rgba(0, 0, 0, 0.2); +} +.aurora .theme-dark, +.aurora.theme-dark { + --f7-text-color: #fff; + --f7-bars-bg-color: #202020; + --f7-bars-border-color: rgba(255, 255, 255, 0.1); +} +/*==================== + Color Themes + ==================== */ +.text-color-primary { + --f7-theme-color-text-color: var(--f7-theme-color); +} +.bg-color-primary { + --f7-theme-color-bg-color: var(--f7-theme-color); +} +.border-color-primary { + --f7-theme-color-border-color: var(--f7-theme-color); +} +.ripple-color-primary { + --f7-theme-color-ripple-color: rgba(var(--f7-theme-color-rgb), 0.3); +} +:root { + --f7-color-red: #ff3b30; + --f7-color-red-rgb: 255, 59, 48; + --f7-color-red-shade: #ff1407; + --f7-color-red-tint: #ff6259; + --f7-color-green: #4cd964; + --f7-color-green-rgb: 76, 217, 100; + --f7-color-green-shade: #2cd048; + --f7-color-green-tint: #6ee081; + --f7-color-blue: #2196f3; + --f7-color-blue-rgb: 33, 150, 243; + --f7-color-blue-shade: #0c82df; + --f7-color-blue-tint: #48a8f5; + --f7-color-pink: #ff2d55; + --f7-color-pink-rgb: 255, 45, 85; + --f7-color-pink-shade: #ff0434; + --f7-color-pink-tint: #ff5676; + --f7-color-yellow: #ffcc00; + --f7-color-yellow-rgb: 255, 204, 0; + --f7-color-yellow-shade: #d6ab00; + --f7-color-yellow-tint: #ffd429; + --f7-color-orange: #ff9500; + --f7-color-orange-rgb: 255, 149, 0; + --f7-color-orange-shade: #d67d00; + --f7-color-orange-tint: #ffa629; + --f7-color-purple: #9c27b0; + --f7-color-purple-rgb: 156, 39, 176; + --f7-color-purple-shade: #7e208f; + --f7-color-purple-tint: #b92fd1; + --f7-color-deeppurple: #673ab7; + --f7-color-deeppurple-rgb: 103, 58, 183; + --f7-color-deeppurple-shade: #563098; + --f7-color-deeppurple-tint: #7c52c8; + --f7-color-lightblue: #5ac8fa; + --f7-color-lightblue-rgb: 90, 200, 250; + --f7-color-lightblue-shade: #32bbf9; + --f7-color-lightblue-tint: #82d5fb; + --f7-color-teal: #009688; + --f7-color-teal-rgb: 0, 150, 136; + --f7-color-teal-shade: #006d63; + --f7-color-teal-tint: #00bfad; + --f7-color-lime: #cddc39; + --f7-color-lime-rgb: 205, 220, 57; + --f7-color-lime-shade: #bac923; + --f7-color-lime-tint: #d6e25c; + --f7-color-deeporange: #ff6b22; + --f7-color-deeporange-rgb: 255, 107, 34; + --f7-color-deeporange-shade: #f85200; + --f7-color-deeporange-tint: #ff864b; + --f7-color-gray: #8e8e93; + --f7-color-gray-rgb: 142, 142, 147; + --f7-color-gray-shade: #79797f; + --f7-color-gray-tint: #a3a3a7; + --f7-color-white: #ffffff; + --f7-color-white-rgb: 255, 255, 255; + --f7-color-white-shade: #ebebeb; + --f7-color-white-tint: #ffffff; + --f7-color-black: #000000; + --f7-color-black-rgb: 0, 0, 0; + --f7-color-black-shade: #000000; + --f7-color-black-tint: #141414; +} +.color-theme-red { + --f7-theme-color: #ff3b30; + --f7-theme-color-rgb: 255, 59, 48; + --f7-theme-color-shade: #ff1407; + --f7-theme-color-tint: #ff6259; +} +.color-theme-green { + --f7-theme-color: #4cd964; + --f7-theme-color-rgb: 76, 217, 100; + --f7-theme-color-shade: #2cd048; + --f7-theme-color-tint: #6ee081; +} +.color-theme-blue { + --f7-theme-color: #2196f3; + --f7-theme-color-rgb: 33, 150, 243; + --f7-theme-color-shade: #0c82df; + --f7-theme-color-tint: #48a8f5; +} +.color-theme-pink { + --f7-theme-color: #ff2d55; + --f7-theme-color-rgb: 255, 45, 85; + --f7-theme-color-shade: #ff0434; + --f7-theme-color-tint: #ff5676; +} +.color-theme-yellow { + --f7-theme-color: #ffcc00; + --f7-theme-color-rgb: 255, 204, 0; + --f7-theme-color-shade: #d6ab00; + --f7-theme-color-tint: #ffd429; +} +.color-theme-orange { + --f7-theme-color: #ff9500; + --f7-theme-color-rgb: 255, 149, 0; + --f7-theme-color-shade: #d67d00; + --f7-theme-color-tint: #ffa629; +} +.color-theme-purple { + --f7-theme-color: #9c27b0; + --f7-theme-color-rgb: 156, 39, 176; + --f7-theme-color-shade: #7e208f; + --f7-theme-color-tint: #b92fd1; +} +.color-theme-deeppurple { + --f7-theme-color: #673ab7; + --f7-theme-color-rgb: 103, 58, 183; + --f7-theme-color-shade: #563098; + --f7-theme-color-tint: #7c52c8; +} +.color-theme-lightblue { + --f7-theme-color: #5ac8fa; + --f7-theme-color-rgb: 90, 200, 250; + --f7-theme-color-shade: #32bbf9; + --f7-theme-color-tint: #82d5fb; +} +.color-theme-teal { + --f7-theme-color: #009688; + --f7-theme-color-rgb: 0, 150, 136; + --f7-theme-color-shade: #006d63; + --f7-theme-color-tint: #00bfad; +} +.color-theme-lime { + --f7-theme-color: #cddc39; + --f7-theme-color-rgb: 205, 220, 57; + --f7-theme-color-shade: #bac923; + --f7-theme-color-tint: #d6e25c; +} +.color-theme-deeporange { + --f7-theme-color: #ff6b22; + --f7-theme-color-rgb: 255, 107, 34; + --f7-theme-color-shade: #f85200; + --f7-theme-color-tint: #ff864b; +} +.color-theme-gray { + --f7-theme-color: #8e8e93; + --f7-theme-color-rgb: 142, 142, 147; + --f7-theme-color-shade: #79797f; + --f7-theme-color-tint: #a3a3a7; +} +.color-theme-white { + --f7-theme-color: #ffffff; + --f7-theme-color-rgb: 255, 255, 255; + --f7-theme-color-shade: #ebebeb; + --f7-theme-color-tint: #ffffff; +} +.color-theme-black { + --f7-theme-color: #000000; + --f7-theme-color-rgb: 0, 0, 0; + --f7-theme-color-shade: #000000; + --f7-theme-color-tint: #141414; +} +.color-red { + --f7-theme-color: #ff3b30; + --f7-theme-color-rgb: 255, 59, 48; + --f7-theme-color-shade: #ff1407; + --f7-theme-color-tint: #ff6259; +} +.text-color-red { + --f7-theme-color-text-color: #ff3b30; +} +.bg-color-red { + --f7-theme-color-bg-color: #ff3b30; +} +.border-color-red { + --f7-theme-color-border-color: #ff3b30; +} +.ripple-color-red, +.ripple-red { + --f7-theme-color-ripple-color: rgba(255, 59, 48, 0.3); +} +.color-green { + --f7-theme-color: #4cd964; + --f7-theme-color-rgb: 76, 217, 100; + --f7-theme-color-shade: #2cd048; + --f7-theme-color-tint: #6ee081; +} +.text-color-green { + --f7-theme-color-text-color: #4cd964; +} +.bg-color-green { + --f7-theme-color-bg-color: #4cd964; +} +.border-color-green { + --f7-theme-color-border-color: #4cd964; +} +.ripple-color-green, +.ripple-green { + --f7-theme-color-ripple-color: rgba(76, 217, 100, 0.3); +} +.color-blue { + --f7-theme-color: #2196f3; + --f7-theme-color-rgb: 33, 150, 243; + --f7-theme-color-shade: #0c82df; + --f7-theme-color-tint: #48a8f5; +} +.text-color-blue { + --f7-theme-color-text-color: #2196f3; +} +.bg-color-blue { + --f7-theme-color-bg-color: #2196f3; +} +.border-color-blue { + --f7-theme-color-border-color: #2196f3; +} +.ripple-color-blue, +.ripple-blue { + --f7-theme-color-ripple-color: rgba(33, 150, 243, 0.3); +} +.color-pink { + --f7-theme-color: #ff2d55; + --f7-theme-color-rgb: 255, 45, 85; + --f7-theme-color-shade: #ff0434; + --f7-theme-color-tint: #ff5676; +} +.text-color-pink { + --f7-theme-color-text-color: #ff2d55; +} +.bg-color-pink { + --f7-theme-color-bg-color: #ff2d55; +} +.border-color-pink { + --f7-theme-color-border-color: #ff2d55; +} +.ripple-color-pink, +.ripple-pink { + --f7-theme-color-ripple-color: rgba(255, 45, 85, 0.3); +} +.color-yellow { + --f7-theme-color: #ffcc00; + --f7-theme-color-rgb: 255, 204, 0; + --f7-theme-color-shade: #d6ab00; + --f7-theme-color-tint: #ffd429; +} +.text-color-yellow { + --f7-theme-color-text-color: #ffcc00; +} +.bg-color-yellow { + --f7-theme-color-bg-color: #ffcc00; +} +.border-color-yellow { + --f7-theme-color-border-color: #ffcc00; +} +.ripple-color-yellow, +.ripple-yellow { + --f7-theme-color-ripple-color: rgba(255, 204, 0, 0.3); +} +.color-orange { + --f7-theme-color: #ff9500; + --f7-theme-color-rgb: 255, 149, 0; + --f7-theme-color-shade: #d67d00; + --f7-theme-color-tint: #ffa629; +} +.text-color-orange { + --f7-theme-color-text-color: #ff9500; +} +.bg-color-orange { + --f7-theme-color-bg-color: #ff9500; +} +.border-color-orange { + --f7-theme-color-border-color: #ff9500; +} +.ripple-color-orange, +.ripple-orange { + --f7-theme-color-ripple-color: rgba(255, 149, 0, 0.3); +} +.color-purple { + --f7-theme-color: #9c27b0; + --f7-theme-color-rgb: 156, 39, 176; + --f7-theme-color-shade: #7e208f; + --f7-theme-color-tint: #b92fd1; +} +.text-color-purple { + --f7-theme-color-text-color: #9c27b0; +} +.bg-color-purple { + --f7-theme-color-bg-color: #9c27b0; +} +.border-color-purple { + --f7-theme-color-border-color: #9c27b0; +} +.ripple-color-purple, +.ripple-purple { + --f7-theme-color-ripple-color: rgba(156, 39, 176, 0.3); +} +.color-deeppurple { + --f7-theme-color: #673ab7; + --f7-theme-color-rgb: 103, 58, 183; + --f7-theme-color-shade: #563098; + --f7-theme-color-tint: #7c52c8; +} +.text-color-deeppurple { + --f7-theme-color-text-color: #673ab7; +} +.bg-color-deeppurple { + --f7-theme-color-bg-color: #673ab7; +} +.border-color-deeppurple { + --f7-theme-color-border-color: #673ab7; +} +.ripple-color-deeppurple, +.ripple-deeppurple { + --f7-theme-color-ripple-color: rgba(103, 58, 183, 0.3); +} +.color-lightblue { + --f7-theme-color: #5ac8fa; + --f7-theme-color-rgb: 90, 200, 250; + --f7-theme-color-shade: #32bbf9; + --f7-theme-color-tint: #82d5fb; +} +.text-color-lightblue { + --f7-theme-color-text-color: #5ac8fa; +} +.bg-color-lightblue { + --f7-theme-color-bg-color: #5ac8fa; +} +.border-color-lightblue { + --f7-theme-color-border-color: #5ac8fa; +} +.ripple-color-lightblue, +.ripple-lightblue { + --f7-theme-color-ripple-color: rgba(90, 200, 250, 0.3); +} +.color-teal { + --f7-theme-color: #009688; + --f7-theme-color-rgb: 0, 150, 136; + --f7-theme-color-shade: #006d63; + --f7-theme-color-tint: #00bfad; +} +.text-color-teal { + --f7-theme-color-text-color: #009688; +} +.bg-color-teal { + --f7-theme-color-bg-color: #009688; +} +.border-color-teal { + --f7-theme-color-border-color: #009688; +} +.ripple-color-teal, +.ripple-teal { + --f7-theme-color-ripple-color: rgba(0, 150, 136, 0.3); +} +.color-lime { + --f7-theme-color: #cddc39; + --f7-theme-color-rgb: 205, 220, 57; + --f7-theme-color-shade: #bac923; + --f7-theme-color-tint: #d6e25c; +} +.text-color-lime { + --f7-theme-color-text-color: #cddc39; +} +.bg-color-lime { + --f7-theme-color-bg-color: #cddc39; +} +.border-color-lime { + --f7-theme-color-border-color: #cddc39; +} +.ripple-color-lime, +.ripple-lime { + --f7-theme-color-ripple-color: rgba(205, 220, 57, 0.3); +} +.color-deeporange { + --f7-theme-color: #ff6b22; + --f7-theme-color-rgb: 255, 107, 34; + --f7-theme-color-shade: #f85200; + --f7-theme-color-tint: #ff864b; +} +.text-color-deeporange { + --f7-theme-color-text-color: #ff6b22; +} +.bg-color-deeporange { + --f7-theme-color-bg-color: #ff6b22; +} +.border-color-deeporange { + --f7-theme-color-border-color: #ff6b22; +} +.ripple-color-deeporange, +.ripple-deeporange { + --f7-theme-color-ripple-color: rgba(255, 107, 34, 0.3); +} +.color-gray { + --f7-theme-color: #8e8e93; + --f7-theme-color-rgb: 142, 142, 147; + --f7-theme-color-shade: #79797f; + --f7-theme-color-tint: #a3a3a7; +} +.text-color-gray { + --f7-theme-color-text-color: #8e8e93; +} +.bg-color-gray { + --f7-theme-color-bg-color: #8e8e93; +} +.border-color-gray { + --f7-theme-color-border-color: #8e8e93; +} +.ripple-color-gray, +.ripple-gray { + --f7-theme-color-ripple-color: rgba(142, 142, 147, 0.3); +} +.color-white { + --f7-theme-color: #ffffff; + --f7-theme-color-rgb: 255, 255, 255; + --f7-theme-color-shade: #ebebeb; + --f7-theme-color-tint: #ffffff; +} +.text-color-white { + --f7-theme-color-text-color: #ffffff; +} +.bg-color-white { + --f7-theme-color-bg-color: #ffffff; +} +.border-color-white { + --f7-theme-color-border-color: #ffffff; +} +.ripple-color-white, +.ripple-white { + --f7-theme-color-ripple-color: rgba(255, 255, 255, 0.3); +} +.color-black { + --f7-theme-color: #000000; + --f7-theme-color-rgb: 0, 0, 0; + --f7-theme-color-shade: #000000; + --f7-theme-color-tint: #141414; +} +.text-color-black { + --f7-theme-color-text-color: #000000; +} +.bg-color-black { + --f7-theme-color-bg-color: #000000; +} +.border-color-black { + --f7-theme-color-border-color: #000000; +} +.ripple-color-black, +.ripple-black { + --f7-theme-color-ripple-color: rgba(0, 0, 0, 0.3); +} +@font-face { + font-family: 'framework7-core-icons'; + src: url("data:application/font-woff;charset=utf-8;base64, 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") format("woff"); + font-weight: 400; + font-style: normal; +} +@font-face { + font-family: 'framework7-skeleton'; + src: url("data:application/font-woff;charset=utf-8;base64, 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") format("woff"); + font-weight: 300, 400, 500, 600, 700; + font-style: normal, italic; +} +html, +body, +.framework7-root { + position: relative; + height: 100%; + width: 100%; + overflow-x: hidden; +} +body { + margin: 0; + padding: 0; + width: 100%; + background: #fff; + overflow: hidden; + -webkit-text-size-adjust: 100%; + -webkit-font-smoothing: antialiased; + font-family: var(--f7-font-family); + font-size: var(--f7-font-size); + line-height: var(--f7-line-height); + color: var(--f7-text-color); +} +.theme-dark body, +body.theme-dark { + background: #000; +} +.theme-dark { + color: var(--f7-text-color); +} +.framework7-root { + overflow: hidden; + box-sizing: border-box; +} +.framework7-initializing *, +.framework7-initializing *:before, +.framework7-initializing *:after { + transition-duration: 0ms !important; +} +.device-ios, +.device-android { + cursor: pointer; +} +.device-ios { + touch-action: manipulation; +} +@media (width: 1024px) and (height: 691px) and (orientation: landscape) { + html, + body, + .framework7-root { + height: 671px; + } +} +@media (width: 1024px) and (height: 692px) and (orientation: landscape) { + html, + body, + .framework7-root { + height: 672px; + } +} +* { + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); + -webkit-touch-callout: none; +} +a, +input, +textarea, +select { + outline: 0; +} +a { + cursor: pointer; + text-decoration: none; + color: var(--f7-theme-color); +} +.link, +.item-link { + cursor: pointer; +} +p { + margin: 1em 0; +} +.disabled { + opacity: 0.55 !important; + pointer-events: none !important; +} +html.device-full-viewport, +html.device-full-viewport body { + height: 100vh; +} +.ios .md-only, +.ios .if-md, +.ios .aurora-only, +.ios .if-aurora, +.ios .if-not-ios, +.ios .not-ios { + display: none !important; +} +@media (width: 1024px) and (height: 691px) and (orientation: landscape) { + .ios, + .ios body, + .ios .framework7-root { + height: 671px; + } +} +@media (width: 1024px) and (height: 692px) and (orientation: landscape) { + .ios, + .ios body, + .ios .framework7-root { + height: 672px; + } +} +.md .ios-only, +.md .if-ios, +.md .aurora-only, +.md .if-aurora, +.md .if-not-md, +.md .not-md { + display: none !important; +} +.aurora .ios-only, +.aurora .if-ios, +.aurora .md-only, +.aurora .if-md, +.aurora .if-not-aurora, +.aurora .not-aurora { + display: none !important; +} +/* === Statusbar === */ +/* === Views === */ +.views, +.view { + position: relative; + height: 100%; + z-index: 5000; + overflow: hidden; + box-sizing: border-box; +} +.framework7-root > .view, +.framework7-root > .views { + height: calc(100% - var(--f7-appbar-app-offset, 0px)); +} +.view-resize-handler { + width: 6px; + height: 100%; + position: absolute; + left: var(--f7-page-master-width); + margin-left: -3px; + top: 0; + cursor: col-resize; + z-index: 1000; + display: none; +} +.view-master-detail .view-resize-handler { + display: block; +} +/* === Pages === */ +:root { + --f7-page-master-width: 320px; + --f7-page-master-border-color: rgba(0, 0, 0, 0.1); + --f7-page-master-border-width: 1px; + --f7-page-swipeback-transition-duration: 300ms; + --f7-page-parallax-transition-duration: 500ms; + --f7-page-cover-transition-duration: 450ms; + --f7-page-dive-transition-duration: 500ms; + --f7-page-fade-transition-duration: 500ms; + --f7-page-flip-transition-duration: 700ms; + --f7-page-push-transition-duration: 500ms; + /* + --f7-page-content-extra-padding-top: 0px; + --f7-page-content-extra-padding-bottom: 0px; + */ +} +.ios { + --f7-page-transition-duration: 400ms; + --f7-page-bg-color: #efeff4; +} +.ios .theme-dark, +.ios.theme-dark { + --f7-page-bg-color: #000; +} +.md { + --f7-page-transition-duration: 250ms; + --f7-page-bg-color: #fff; +} +.md .theme-dark, +.md.theme-dark { + --f7-page-bg-color: #121212; +} +.aurora { + --f7-page-transition-duration: 400ms; + --f7-page-bg-color: #f3f3f3; +} +.aurora .theme-dark, +.aurora.theme-dark { + --f7-page-bg-color: #121212; +} +.theme-dark { + --f7-page-master-border-color: rgba(255, 255, 255, 0.1); +} +.pages { + position: relative; + width: 100%; + height: 100%; + overflow: hidden; +} +.page { + box-sizing: border-box; + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + transform: none; + background-color: var(--f7-page-bg-color); + z-index: 1; +} +.page.stacked { + display: none; +} +.page-with-navbar-large-collapsed { + --f7-navbar-large-collapse-progress: 1; +} +.page-previous { + pointer-events: none; +} +.page-content { + overflow: auto; + -webkit-overflow-scrolling: touch; + box-sizing: border-box; + height: 100%; + position: relative; + z-index: 1; + padding-top: calc(var(--f7-page-navbar-offset, 0px) + var(--f7-page-toolbar-top-offset, 0px) + var(--f7-page-subnavbar-offset, 0px) + var(--f7-page-searchbar-offset, 0px) + var(--f7-page-content-extra-padding-top, 0px)); + padding-bottom: calc(var(--f7-page-toolbar-bottom-offset, 0px) + var(--f7-safe-area-bottom) + var(--f7-page-content-extra-padding-bottom, 0px)); +} +.page-transitioning, +.page-transitioning .page-shadow-effect, +.page-transitioning .page-opacity-effect { + transition-duration: var(--f7-page-transition-duration); +} +.page-transitioning-swipeback, +.page-transitioning-swipeback .page-shadow-effect, +.page-transitioning-swipeback .page-opacity-effect { + transition-duration: var(--f7-page-swipeback-transition-duration); +} +.router-transition-forward .page-next, +.router-transition-backward .page-next, +.router-transition-forward .page-current, +.router-transition-backward .page-current, +.router-transition-forward .page-previous:not(.stacked), +.router-transition-backward .page-previous:not(.stacked) { + pointer-events: none; +} +.page-shadow-effect { + position: absolute; + top: 0; + width: 16px; + bottom: 0; + z-index: -1; + content: ''; + opacity: 0; + right: 100%; + background: linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 10%, rgba(0, 0, 0, 0.01) 50%, rgba(0, 0, 0, 0.2) 100%); +} +.page-opacity-effect { + position: absolute; + left: 0; + top: 0; + background: rgba(0, 0, 0, 0.1); + width: 100%; + bottom: 0; + content: ''; + opacity: 0; + z-index: 10000; +} +.ios .page-previous { + transform: translate3d(-20%, 0, 0); +} +.ios .page-next { + transform: translate3d(100%, 0, 0); +} +.ios .page-previous .page-opacity-effect { + opacity: 1; +} +.ios .page-previous:after { + opacity: 1; +} +.ios .page-current .page-shadow-effect { + opacity: 1; +} +.ios .router-transition-forward .page-next { + animation: ios-page-next-to-current var(--f7-page-transition-duration) forwards; +} +.ios .router-transition-forward .page-next:before { + position: absolute; + top: 0; + width: 16px; + bottom: 0; + z-index: -1; + content: ''; + opacity: 0; + right: 100%; + background: linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 10%, rgba(0, 0, 0, 0.01) 50%, rgba(0, 0, 0, 0.2) 100%); + animation: ios-page-element-fade-in var(--f7-page-transition-duration) forwards; +} +.ios .router-transition-forward .page-current { + animation: ios-page-current-to-previous var(--f7-page-transition-duration) forwards; +} +.ios .router-transition-forward .page-current:after { + position: absolute; + left: 0; + top: 0; + background: rgba(0, 0, 0, 0.1); + width: 100%; + bottom: 0; + content: ''; + opacity: 0; + z-index: 10000; + animation: ios-page-element-fade-in var(--f7-page-transition-duration) forwards; +} +.ios .router-transition-backward .page-previous { + animation: ios-page-previous-to-current var(--f7-page-transition-duration) forwards; +} +.ios .router-transition-backward .page-previous:after { + position: absolute; + left: 0; + top: 0; + background: rgba(0, 0, 0, 0.1); + width: 100%; + bottom: 0; + content: ''; + opacity: 0; + z-index: 10000; + animation: ios-page-element-fade-out var(--f7-page-transition-duration) forwards; +} +.ios .router-transition-backward .page-current { + animation: ios-page-current-to-next var(--f7-page-transition-duration) forwards; +} +.ios .router-transition-backward .page-current:before { + position: absolute; + top: 0; + width: 16px; + bottom: 0; + z-index: -1; + content: ''; + opacity: 0; + right: 100%; + background: linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 10%, rgba(0, 0, 0, 0.01) 50%, rgba(0, 0, 0, 0.2) 100%); + animation: ios-page-element-fade-out var(--f7-page-transition-duration) forwards; +} +@keyframes ios-page-next-to-current { + from { + transform: translate3d(100%, 0, 0); + } + to { + transform: translate3d(0%, 0, 0); + } +} +@keyframes ios-page-previous-to-current { + from { + transform: translate3d(-20%, 0, 0); + } + to { + transform: translate3d(0%, 0, 0); + } +} +@keyframes ios-page-current-to-previous { + from { + transform: translate3d(0, 0, 0); + } + to { + transform: translate3d(-20%, 0, 0); + } +} +@keyframes ios-page-current-to-next { + from { + transform: translate3d(0, 0, 0); + } + to { + transform: translate3d(100%, 0, 0); + } +} +@keyframes ios-page-element-fade-in { + from { + opacity: 0; + } + to { + opacity: 1; + } +} +@keyframes ios-page-element-fade-out { + from { + opacity: 1; + } + to { + opacity: 0; + } +} +.md .page-next { + transform: translate3d(0, 56px, 0); + opacity: 0; + pointer-events: none; +} +.md .page-next.page-next-on-right { + transform: translate3d(100%, 0, 0); +} +.md .router-transition-forward .page-next { + animation: md-page-next-to-current var(--f7-page-transition-duration) forwards; +} +.md .router-transition-forward .page-current { + animation: none; +} +.md .router-transition-backward .page-current { + animation: md-page-current-to-next var(--f7-page-transition-duration) forwards; +} +.md .router-transition-backward .page-previous { + animation: none; +} +@keyframes md-page-next-to-current { + from { + transform: translate3d(0, 56px, 0); + opacity: 0; + } + to { + transform: translate3d(0, 0px, 0); + opacity: 1; + } +} +@keyframes md-page-current-to-next { + from { + transform: translate3d(0, 0, 0); + opacity: 1; + } + to { + transform: translate3d(0, 56px, 0); + opacity: 0; + } +} +.aurora .page-next { + pointer-events: none; + transform: translate3d(100%, 0px, 0); +} +.aurora .page-next.page-next-on-right { + transform: translate3d(100%, 0, 0); +} +.aurora .page-previous .page-opacity-effect { + opacity: 1; +} +.aurora .page-previous:after { + opacity: 1; +} +.aurora .router-transition-forward .page-next { + animation: aurora-page-next-to-current var(--f7-page-transition-duration) forwards; +} +.aurora .router-transition-forward .page-current { + animation: none; +} +.aurora .router-transition-forward .page-current:after { + position: absolute; + left: 0; + top: 0; + background: rgba(0, 0, 0, 0.1); + width: 100%; + bottom: 0; + content: ''; + opacity: 0; + z-index: 10000; + animation: aurora-page-element-fade-in var(--f7-page-transition-duration) forwards; +} +.aurora .router-transition-backward .page-current { + animation: aurora-page-current-to-next var(--f7-page-transition-duration) forwards; +} +.aurora .router-transition-backward .page-previous { + animation: none; +} +.aurora .router-transition-backward .page-previous:after { + position: absolute; + left: 0; + top: 0; + background: rgba(0, 0, 0, 0.1); + width: 100%; + bottom: 0; + content: ''; + opacity: 0; + z-index: 10000; + animation: aurora-page-element-fade-out var(--f7-page-transition-duration) forwards; +} +@keyframes aurora-page-next-to-current { + from { + transform: translate3d(100%, 0, 0); + } + to { + transform: translate3d(0, 0px, 0); + } +} +@keyframes aurora-page-current-to-next { + from { + transform: translate3d(0, 0, 0); + } + to { + transform: translate3d(100%, 0, 0); + } +} +@keyframes aurora-page-element-fade-in { + from { + opacity: 0; + } + to { + opacity: 1; + } +} +@keyframes aurora-page-element-fade-out { + from { + opacity: 1; + } + to { + opacity: 0; + } +} +.view:not(.view-master-detail) .page-master-stacked { + display: none; +} +.view:not(.view-master-detail) .navbar-master-stacked { + display: none; +} +.view-master-detail .page-master, +.view-master-detail .navbar-master { + width: var(--f7-page-master-width); + --f7-safe-area-right: 0px; + --f7-safe-area-outer-right: 0px; + border-right: var(--f7-page-master-border-width) solid var(--f7-page-master-border-color); +} +.view-master-detail .page-master-detail, +.view-master-detail .navbar-master-detail { + width: calc(100% - var(--f7-page-master-width)); + --f7-safe-area-left: 0px; + --f7-safe-area-outer-left: 0px; + left: var(--f7-page-master-width); +} +.view-master-detail .page-master { + z-index: 2; + transform: none; + pointer-events: auto; +} +.view-master-detail .page-master:before, +.view-master-detail .page-master:after { + display: none; +} +.view-master-detail.router-transition .page-master { + animation: none; +} +.md .router-transition-custom .page-previous, +.ios .router-transition-custom .page-previous, +.aurora .router-transition-custom .page-previous, +.md .router-transition-custom .page-next, +.ios .router-transition-custom .page-next, +.aurora .router-transition-custom .page-next { + opacity: 1; + transform: none; +} +.router-transition-f7-circle-forward:after, +.router-transition-f7-circle-backward:after { + content: ''; + position: absolute; + left: 50%; + top: 50%; + width: 100vmax; + height: 100vmax; + margin-left: -50vmax; + margin-top: -50vmax; + background: var(--f7-page-bg-color); + z-index: 100; +} +.router-transition-f7-circle-forward:after { + transform: scale(0); + border-radius: 50%; + animation: f7-circle-circle-in 400ms forwards; +} +.router-transition-f7-circle-forward .page-next { + opacity: 0 !important; + transform: scale(0.9) !important; + animation: f7-circle-next-to-current 300ms forwards; + animation-delay: 300ms; + z-index: 150; +} +.router-transition-f7-circle-backward:after { + animation: f7-circle-circle-out 300ms forwards; + animation-delay: 350ms; +} +.router-transition-f7-circle-backward .page-current { + animation: f7-circle-current-to-next 700ms forwards; + z-index: 150; +} +@keyframes f7-circle-circle-in { + from { + transform: scale(0); + border-radius: 50%; + } + 50% { + border-radius: 50%; + } + to { + transform: scale(1); + border-radius: 0%; + } +} +@keyframes f7-circle-circle-out { + from { + transform: scale(1); + border-radius: 0%; + } + 50% { + border-radius: 50%; + } + to { + transform: scale(0); + border-radius: 50%; + } +} +@keyframes f7-circle-next-to-current { + from { + transform: scale(0.9); + opacity: 0; + } + 40% { + transform: scale(1.035); + opacity: 1; + } + to { + transform: scale(1); + opacity: 1; + } +} +@keyframes f7-circle-current-to-next { + from { + transform: scale(1); + opacity: 1; + } + 34% { + transform: scale(1.035); + opacity: 1; + } + 57% { + transform: scale(0.9); + opacity: 0; + } + to { + transform: scale(0.9); + opacity: 0; + } +} +.router-transition-f7-cover-v-forward, +.router-transition-f7-cover-v-backward { + background: #000; + perspective: 1200px; +} +.router-transition-f7-cover-v-forward .page-next { + animation: f7-cover-v-next-to-current var(--f7-page-cover-transition-duration) forwards; +} +.router-transition-f7-cover-v-forward .page-current { + animation: f7-cover-v-current-to-prev var(--f7-page-cover-transition-duration) forwards; +} +.router-transition-f7-cover-v-backward .page-current { + animation: f7-cover-v-current-to-next var(--f7-page-cover-transition-duration) forwards; +} +.router-transition-f7-cover-v-backward .page-previous { + animation: f7-cover-v-prev-to-current var(--f7-page-cover-transition-duration) forwards; +} +@keyframes f7-cover-v-next-to-current { + from { + transform: translateY(100%); + } + to { + transform: translateY(0%); + } +} +@keyframes f7-cover-v-current-to-next { + from { + transform: translateY(0%); + } + to { + transform: translateY(100%); + } +} +@keyframes f7-cover-v-current-to-prev { + from { + transform: translateZ(0); + opacity: 1; + } + to { + transform: translateZ(-300px); + opacity: 0.5; + } +} +@keyframes f7-cover-v-prev-to-current { + from { + transform: translateZ(-300px); + opacity: 0.5; + } + to { + transform: translateZ(0); + opacity: 1; + } +} +.router-transition-f7-cover-forward, +.router-transition-f7-cover-backward { + background: #000; + perspective: 1200px; +} +.router-transition-f7-cover-forward .page-next { + animation: f7-cover-next-to-current var(--f7-page-cover-transition-duration) forwards; +} +.router-transition-f7-cover-forward .page-current { + animation: f7-cover-current-to-prev var(--f7-page-cover-transition-duration) forwards; +} +.router-transition-f7-cover-backward .page-current { + animation: f7-cover-current-to-next var(--f7-page-cover-transition-duration) forwards; +} +.router-transition-f7-cover-backward .page-previous { + animation: f7-cover-prev-to-current var(--f7-page-cover-transition-duration) forwards; +} +@keyframes f7-cover-next-to-current { + from { + transform: translateX(100%); + } + to { + transform: translateX(0%); + } +} +@keyframes f7-cover-current-to-next { + from { + transform: translateX(0%); + } + to { + transform: translateX(100%); + } +} +@keyframes f7-cover-current-to-prev { + from { + transform: translateZ(0); + opacity: 1; + } + to { + transform: translateZ(-300px); + opacity: 0.5; + } +} +@keyframes f7-cover-prev-to-current { + from { + transform: translateZ(-300px); + opacity: 0.5; + } + to { + transform: translateZ(0); + opacity: 1; + } +} +.router-transition-f7-dive-forward, +.router-transition-f7-dive-backward { + background: var(--f7-page-bg-color); + perspective: 1200px; +} +.router-transition-f7-dive-forward .page-next { + animation: f7-dive-next-to-current var(--f7-page-dive-transition-duration) forwards; +} +.router-transition-f7-dive-forward .page-current { + animation: f7-dive-current-to-prev var(--f7-page-dive-transition-duration) forwards; +} +.router-transition-f7-dive-backward .page-current { + animation: f7-dive-current-to-next var(--f7-page-dive-transition-duration) forwards; +} +.router-transition-f7-dive-backward .page-previous { + animation: f7-dive-prev-to-current var(--f7-page-dive-transition-duration) forwards; +} +@keyframes f7-dive-next-to-current { + from { + opacity: 0; + transform: translateZ(-150px); + } + 50% { + opacity: 0; + } + to { + opacity: 1; + transform: translateZ(0px); + } +} +@keyframes f7-dive-current-to-next { + from { + opacity: 1; + transform: translateZ(0px); + } + 50% { + opacity: 0; + } + to { + opacity: 0; + transform: translateZ(-150px); + } +} +@keyframes f7-dive-current-to-prev { + from { + transform: translateZ(0px); + opacity: 1; + } + 50% { + opacity: 0; + } + to { + opacity: 0; + transform: translateZ(150px); + } +} +@keyframes f7-dive-prev-to-current { + from { + opacity: 0; + transform: translateZ(150px); + } + 50% { + opacity: 0; + } + to { + opacity: 1; + transform: translateZ(0px); + } +} +.router-transition-f7-fade-forward, +.router-transition-f7-fade-backward { + background: var(--f7-page-bg-color); +} +.router-transition-f7-fade-forward .page-next { + opacity: 0 !important; + animation: f7-fade-in var(--f7-page-fade-transition-duration) forwards; +} +.router-transition-f7-fade-forward .page-current { + animation: f7-fade-out var(--f7-page-fade-transition-duration) forwards; +} +.router-transition-f7-fade-backward .page-current { + animation: f7-fade-out var(--f7-page-fade-transition-duration) forwards; +} +.router-transition-f7-fade-backward .page-previous { + animation: f7-fade-in var(--f7-page-fade-transition-duration) forwards; +} +@keyframes f7-fade-in { + from { + opacity: 0; + } + 50% { + opacity: 0; + } + to { + opacity: 1; + } +} +@keyframes f7-fade-out { + from { + opacity: 1; + } + 50% { + opacity: 0; + } + to { + opacity: 0; + } +} +.router-transition-f7-flip-forward, +.router-transition-f7-flip-backward { + background: #000; + perspective: 1200px; +} +.router-transition-f7-flip-forward .page, +.router-transition-f7-flip-backward .page { + -webkit-backface-visibility: hidden; + backface-visibility: hidden; +} +.router-transition-f7-flip-forward .page-next { + animation: f7-flip-next-to-current var(--f7-page-flip-transition-duration) forwards; +} +.router-transition-f7-flip-forward .page-current { + animation: f7-flip-current-to-prev var(--f7-page-flip-transition-duration) forwards; +} +.router-transition-f7-flip-backward .page-current { + animation: f7-flip-current-to-next var(--f7-page-flip-transition-duration) forwards; +} +.router-transition-f7-flip-backward .page-previous { + animation: f7-flip-prev-to-current var(--f7-page-flip-transition-duration) forwards; +} +@keyframes f7-flip-next-to-current { + from { + border-radius: 30px; + transform: translateZ(-100vmax) rotateY(180deg); + } + to { + border-radius: 0; + transform: translateZ(0px) rotateY(0deg); + } +} +@keyframes f7-flip-current-to-next { + from { + border-radius: 0px; + transform: translateZ(0px) rotateY(0deg); + } + to { + border-radius: 30px; + transform: translateZ(-100vmax) rotateY(180deg); + } +} +@keyframes f7-flip-current-to-prev { + from { + border-radius: 0px; + transform: translateZ(0px) rotateY(0deg); + } + to { + border-radius: 30px; + transform: translateZ(-100vmax) rotateY(-180deg); + } +} +@keyframes f7-flip-prev-to-current { + from { + border-radius: 30px; + transform: translateZ(-100vmax) rotateY(-180deg); + } + to { + border-radius: 0px; + transform: translateZ(0px) rotateY(0deg); + } +} +.router-transition-f7-parallax-forward .page-next { + animation: f7-parallax-next-to-current var(--f7-page-parallax-transition-duration) forwards; +} +.router-transition-f7-parallax-forward .page-current { + animation: f7-parallax-current-to-prev var(--f7-page-parallax-transition-duration) forwards; +} +.router-transition-f7-parallax-backward .page-current { + animation: f7-parallax-current-to-next var(--f7-page-parallax-transition-duration) forwards; +} +.router-transition-f7-parallax-backward .page-previous { + animation: f7-parallax-prev-to-current var(--f7-page-parallax-transition-duration) forwards; +} +@keyframes f7-parallax-next-to-current { + from { + transform: translateX(100%); + } + to { + transform: translateX(0%); + } +} +@keyframes f7-parallax-current-to-next { + from { + transform: translateX(0%); + } + to { + transform: translateX(100%); + } +} +@keyframes f7-parallax-current-to-prev { + from { + transform: translateX(0%); + } + to { + transform: translateX(-20%); + } +} +@keyframes f7-parallax-prev-to-current { + from { + transform: translateX(-20%); + } + to { + transform: translateX(0%); + } +} +.router-transition-f7-push-forward .page-next { + animation: f7-push-next-to-current var(--f7-page-push-transition-duration) forwards; +} +.router-transition-f7-push-forward .page-current { + animation: f7-push-current-to-prev var(--f7-page-push-transition-duration) forwards; +} +.router-transition-f7-push-backward .page-current { + animation: f7-push-current-to-next var(--f7-page-push-transition-duration) forwards; +} +.router-transition-f7-push-backward .page-previous { + animation: f7-push-prev-to-current var(--f7-page-push-transition-duration) forwards; +} +@keyframes f7-push-next-to-current { + from { + transform: translateX(100%); + } + to { + transform: translateX(0%); + } +} +@keyframes f7-push-current-to-next { + from { + transform: translateX(0%); + } + to { + transform: translateX(100%); + } +} +@keyframes f7-push-current-to-prev { + from { + transform: translateX(0%); + } + to { + transform: translateX(-100%); + } +} +@keyframes f7-push-prev-to-current { + from { + transform: translateX(-100%); + } + to { + transform: translateX(0%); + } +} +/* === Link === */ +:root { + --f7-link-highlight-black: rgba(0, 0, 0, 0.1); + --f7-link-highlight-white: rgba(255, 255, 255, 0.15); + --f7-link-highlight-color: var(--f7-link-highlight-black); +} +.theme-dark { + --f7-link-highlight-color: var(--f7-link-highlight-white); +} +.link, +.tab-link { + display: inline-flex; + align-items: center; + align-content: center; + justify-content: center; + position: relative; + box-sizing: border-box; + z-index: 1; +} +.link i + span, +.link i + i, +.link span + i, +.link span + span { + margin-left: 4px; +} +.ios .link { + transition: opacity 300ms; +} +.ios .link.active-state { + opacity: 0.3; + transition-duration: 0ms; +} +.aurora .link { + transition: opacity 300ms; +} +.aurora .link.active-state { + opacity: 0.3; + transition-duration: 0ms; +} +/* === Navbar === */ +:root { + /* + --f7-navbar-bg-color: var(--f7-bars-bg-color); + --f7-navbar-bg-color-rgb: var(--f7-bars-bg-color-rgb); + --f7-navbar-bg-image: var(--f7-bars-bg-image); + --f7-navbar-border-color: var(--f7-bars-border-color); + --f7-navbar-link-color: var(--f7-bars-link-color); + --f7-navbar-text-color: var(--f7-bars-text-color); + */ + --f7-navbar-hide-show-transition-duration: 400ms; + --f7-navbar-title-line-height: 1.2; + --f7-navbar-title-font-size: inherit; + --f7-navbar-subtitle-text-align: inherit; + --f7-navbar-large-title-line-height: 1.2; + --f7-navbar-large-title-text-color: inherit; + --f7-navbar-large-title-padding-left: 16px; + --f7-navbar-large-title-padding-right: 16px; +} +.ios { + --f7-navbar-height: 44px; + --f7-navbar-tablet-height: 44px; + --f7-navbar-font-size: 17px; + --f7-navbar-inner-padding-left: 8px; + --f7-navbar-inner-padding-right: 8px; + --f7-navbar-title-font-weight: 600; + --f7-navbar-title-margin-left: 0; + --f7-navbar-title-margin-right: 0; + --f7-navbar-title-text-align: center; + --f7-navbar-subtitle-font-size: 10px; + --f7-navbar-subtitle-line-height: 1; + --f7-navbar-shadow-image: none; + --f7-navbar-large-title-height: 52px; + --f7-navbar-large-title-font-size: 34px; + --f7-navbar-large-title-font-weight: 700; + --f7-navbar-large-title-letter-spacing: -0.03em; + --f7-navbar-large-title-padding-vertical: 6px; + /* + --f7-navbar-link-height: var(--f7-navbar-height); + --f7-navbar-link-line-height: var(--f7-navbar-height); + */ + --f7-navbar-subtitle-text-color: rgba(0, 0, 0, 0.55); +} +.ios .theme-dark, +.ios.theme-dark { + --f7-navbar-subtitle-text-color: rgba(255, 255, 255, 0.55); +} +.md { + --f7-navbar-height: 56px; + --f7-navbar-tablet-height: 64px; + --f7-navbar-font-size: 20px; + --f7-navbar-inner-padding-left: 0px; + --f7-navbar-inner-padding-right: 0px; + --f7-navbar-title-font-weight: 500; + --f7-navbar-title-margin-left: 16px; + --f7-navbar-title-margin-right: 16px; + --f7-navbar-title-text-align: left; + --f7-navbar-subtitle-font-size: 14px; + --f7-navbar-subtitle-line-height: 1.2; + --f7-navbar-shadow-image: var(--f7-bars-shadow-bottom-image); + --f7-navbar-large-title-font-size: 34px; + --f7-navbar-large-title-height: 56px; + --f7-navbar-large-title-font-weight: 500; + --f7-navbar-large-title-letter-spacing: 0; + --f7-navbar-large-title-padding-vertical: 8px; + /* + --f7-navbar-link-height: var(--f7-navbar-height); + --f7-navbar-link-line-height: var(--f7-navbar-height); + */ + --f7-navbar-subtitle-text-color: rgba(0, 0, 0, 0.85); +} +.md .theme-dark, +.md.theme-dark { + --f7-navbar-subtitle-text-color: rgba(255, 255, 255, 0.85); +} +.aurora { + --f7-navbar-height: 38px; + --f7-navbar-tablet-height: 38px; + --f7-navbar-font-size: 14px; + --f7-navbar-inner-padding-left: 16px; + --f7-navbar-inner-padding-right: 16px; + --f7-navbar-title-font-weight: 600; + --f7-navbar-title-margin-left: 0; + --f7-navbar-title-margin-right: 0; + --f7-navbar-title-text-align: center; + --f7-navbar-subtitle-font-size: 12px; + --f7-navbar-subtitle-line-height: 1; + --f7-navbar-shadow-image: none; + --f7-navbar-large-title-height: 38px; + --f7-navbar-large-title-font-size: 26px; + --f7-navbar-large-title-font-weight: bold; + --f7-navbar-large-title-letter-spacing: -0.03em; + --f7-navbar-large-title-padding-vertical: 4px; + --f7-navbar-link-height: auto; + --f7-navbar-link-line-height: inherit; + --f7-navbar-subtitle-text-color: rgba(0, 0, 0, 0.6); +} +.aurora .theme-dark, +.aurora.theme-dark { + --f7-navbar-subtitle-text-color: rgba(255, 255, 255, 0.5); +} +.navbars, +.navbar { + z-index: 500; + left: 0; + top: 0; + width: 100%; +} +.navbars { + position: absolute; +} +.navbars .navbar { + z-index: auto; +} +.navbar { + --f7-navbar-large-collapse-progress: 0; + position: relative; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + box-sizing: border-box; + margin: 0; + height: calc(var(--f7-navbar-height) + var(--f7-safe-area-top)); + color: var(--f7-navbar-text-color, var(--f7-bars-text-color)); + font-size: var(--f7-navbar-font-size); +} +.navbar.stacked { + display: none; +} +.navbar b { + font-weight: 500; +} +.navbar a { + color: var(--f7-navbar-link-color, var(--f7-bars-link-color, var(--f7-theme-color))); +} +.navbar a.link { + display: flex; + justify-content: flex-start; + line-height: var(--f7-navbar-link-line-height, var(--f7-navbar-height)); + height: var(--f7-navbar-link-height, var(--f7-navbar-height)); +} +.navbar .title, +.navbar .left, +.navbar .right { + position: relative; + z-index: 10; +} +.navbar .title { + position: relative; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + flex-shrink: 10; + font-weight: var(--f7-navbar-title-font-weight); + display: inline-block; + line-height: var(--f7-navbar-title-line-height); + text-align: var(--f7-navbar-title-text-align); + font-size: var(--f7-navbar-title-font-size); + margin-left: var(--f7-navbar-title-margin-left); + margin-right: var(--f7-navbar-title-margin-left); +} +.navbar .subtitle { + display: block; + color: var(--f7-navbar-subtitle-text-color); + font-weight: normal; + font-size: var(--f7-navbar-subtitle-font-size); + line-height: var(--f7-navbar-subtitle-line-height); + text-align: var(--f7-navbar-subtitle-text-align); +} +.navbar .left, +.navbar .right { + flex-shrink: 0; + display: flex; + justify-content: flex-start; + align-items: center; +} +.navbar .right:first-child { + position: absolute; + height: 100%; +} +.navbar.no-hairline .navbar-bg:after, +.navbar.no-border .navbar-bg:after, +.navbar .no-hairline .navbar-bg:after, +.navbar .no-border .navbar-bg:after { + display: none !important; +} +.navbar.no-hairline .title-large:after, +.navbar.no-border .title-large:after, +.navbar .no-hairline .title-large:after, +.navbar .no-border .title-large:after { + display: none !important; +} +.navbar.no-shadow .navbar-bg:before, +.navbar .no-shadow .navbar-bg:before { + display: none !important; +} +.navbar.navbar-hidden .navbar-bg:before, +.navbar-hidden .navbar .navbar-bg:before { + opacity: 0 !important; +} +.navbar-bg { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + pointer-events: none; + z-index: 0; + background: var(--f7-navbar-bg-color); + background-image: var(--f7-navbar-bg-image, var(--f7-bars-bg-image)); + background-color: var(--f7-navbar-bg-color, var(--f7-bars-bg-color)); + transition-property: transform; +} +@supports ((-webkit-backdrop-filter: blur(20px)) or (backdrop-filter: blur(20px))) { + .ios-translucent-bars .navbar-bg { + background-color: rgba(var(--f7-navbar-bg-color-rgb, var(--f7-bars-bg-color-rgb)), var(--f7-bars-translucent-opacity)); + -webkit-backdrop-filter: saturate(180%) blur(var(--f7-bars-translucent-blur)); + backdrop-filter: saturate(180%) blur(var(--f7-bars-translucent-blur)); + } +} +.navbar-bg:after, +.navbar-bg:before { + -webkit-backface-visibility: hidden; + backface-visibility: hidden; +} +.navbar-bg:after { + content: ''; + position: absolute; + background-color: var(--f7-navbar-border-color, var(--f7-bars-border-color)); + display: block; + z-index: 15; + top: auto; + right: auto; + bottom: 0; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 100%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +.navbar-bg:before { + content: ''; + position: absolute; + right: 0; + width: 100%; + top: 100%; + bottom: auto; + height: 8px; + pointer-events: none; + background: var(--f7-navbar-shadow-image); +} +.navbar-bg:after { + z-index: 1; +} +@media (min-width: 768px) and (min-height: 600px) { + :root { + --f7-navbar-height: var(--f7-navbar-tablet-height); + } +} +.navbar-transitioning, +.navbar-transitioning .left, +.navbar-transitioning .title, +.navbar-transitioning .right, +.navbar-transitioning .title-large-text, +.navbar-transitioning .navbar-bg, +.navbar-transitioning .subnavbar, +.navbar-transitioning .navbar-bg:before { + transition-duration: var(--f7-navbar-hide-show-transition-duration); +} +.navbar-page-transitioning { + transition-duration: var(--f7-page-swipeback-transition-duration) !important; +} +.navbar-page-transitioning .title-large-text, +.navbar-page-transitioning .navbar-bg { + transition-duration: var(--f7-page-swipeback-transition-duration) !important; +} +.navbar-hidden { + transform: translate3d(0, calc(-1 * var(--f7-navbar-height)), 0); +} +.navbar-hidden .navbar-inner { + pointer-events: none; +} +.navbar-hidden .navbar-inner > .left, +.navbar-hidden .navbar-inner > .title, +.navbar-hidden .navbar-inner > .right { + opacity: 0 !important; +} +.navbar-hidden .subnavbar { + pointer-events: auto; +} +.navbar-hidden-statusbar { + transform: translate3d(0, calc(-1 * var(--f7-navbar-height) - var(--f7-safe-area-top)), 0); +} +.navbar-large-hidden .navbar-large { + --f7-navbar-large-collapse-progress: 1; +} +.navbar-inner { + position: absolute; + left: 0; + bottom: 0; + width: 100%; + height: 100%; + display: flex; + align-items: center; + box-sizing: border-box; + padding: var(--f7-safe-area-top) calc(var(--f7-navbar-inner-padding-right) + var(--f7-safe-area-right)) 0 calc(var(--f7-navbar-inner-padding-left) + var(--f7-safe-area-left)); + transform: translate3d(0, 0, 0); + z-index: 10; +} +.views > .navbar, +.view > .navbar, +.page > .navbar, +.navbars > .navbar { + position: absolute; +} +.navbar-transparent:not(.navbar-large):not(.navbar-transparent-visible):not(.with-searchbar-expandable-enabled) .navbar-bg, +.navbar-transparent:not(.navbar-large):not(.navbar-transparent-visible):not(.with-searchbar-expandable-enabled) .title { + opacity: 0; +} +.navbar-large .navbar-bg { + height: calc(100% + var(--f7-navbar-large-title-height)); + transform: translate3d(0px, calc(-1 * var(--f7-navbar-large-collapse-progress) * var(--f7-navbar-large-title-height)), 0); +} +.navbar-large-transparent .navbar-bg, +.navbar-large.navbar-transparent .navbar-bg { + opacity: var(--f7-navbar-large-collapse-progress); + height: 100%; + transform: none; +} +.ios .router-navbar-transition-to-large .navbar-bg, +.ios .router-navbar-transition-from-large .navbar-bg, +.navbar-bg.ios-swipeback-navbar-bg-large, +.navbar-large-transparent .navbar-bg.ios-swipeback-navbar-bg-large, +.navbar-large.navbar-transparent .navbar-bg.ios-swipeback-navbar-bg-large { + height: calc(100% + var(--f7-navbar-large-title-height)); + transform: translate3d(0px, calc(-1 * var(--f7-navbar-large-collapse-progress) * var(--f7-navbar-large-title-height)), 0); +} +.ios .navbar:not(.navbar-large) .navbar-bg { + --f7-navbar-large-collapse-progress: 1; +} +.navbar-large .title { + opacity: var(--f7-navbar-large-collapse-progress); +} +.navbar-large-collapsed { + --f7-navbar-large-collapse-progress: 1; +} +.navbar-large-collapsed .title-large { + pointer-events: none; +} +.navbar .title-large { + box-sizing: border-box; + position: absolute; + left: 0; + right: 0; + top: 100%; + display: flex; + align-items: flex-end; + white-space: nowrap; + overflow: hidden; + height: var(--f7-navbar-large-title-height); + z-index: 5; +} +.navbar .title-large-text { + text-overflow: ellipsis; + white-space: nowrap; + color: var(--f7-navbar-large-title-text-color); + letter-spacing: var(--f7-navbar-large-title-letter-spacing); + font-size: var(--f7-navbar-large-title-font-size); + font-weight: var(--f7-navbar-large-title-font-weight); + line-height: var(--f7-navbar-large-title-line-height); + padding-left: calc(var(--f7-navbar-large-title-padding-left) + var(--f7-safe-area-left)); + padding-right: calc(var(--f7-navbar-large-title-padding-right) + var(--f7-safe-area-right)); + padding-top: var(--f7-navbar-large-title-padding-vertical); + padding-bottom: var(--f7-navbar-large-title-padding-vertical); + box-sizing: border-box; + overflow: hidden; + width: 100%; + transform: translate3d(0px, calc(-1 * var(--f7-navbar-large-collapse-progress) * var(--f7-navbar-large-title-height)), 0); + transform-origin: calc(var(--f7-navbar-large-title-padding-left) + var(--f7-safe-area-left)) center; +} +.navbar-no-title-large-transition .title-large-text { + transition-duration: 0ms; +} +.navbar ~ *, +.navbars ~ * { + --f7-page-navbar-offset: calc(var(--f7-navbar-height) + var(--f7-safe-area-top)); +} +.navbar ~ * .page-with-navbar-large, +.navbar ~ .page-with-navbar-large, +.navbars ~ * .page-with-navbar-large, +.navbars ~ .page-with-navbar-large, +.page-with-navbar-large .navbar ~ * { + --f7-page-navbar-offset: calc(var(--f7-navbar-height) + var(--f7-navbar-large-title-height) + var(--f7-safe-area-top)); +} +.page.no-navbar, +.page.no-navbar .navbar ~ * { + --f7-page-navbar-offset: var(--f7-safe-area-top); +} +.ios { + --f7-navbarLeftTextOffset: calc(4px + 12px + var(--f7-navbar-inner-padding-left)); + --f7-navbarTitleLargeOffset: var(--f7-navbar-large-title-padding-left); + --f7-navbar-large-transparent-bg-center: translateX(0); + --f7-navbar-large-bg-center-top: translateX(0) translateY(calc(-1 * var(--f7-navbar-large-title-height))); + --f7-navbar-large-bg-center-bottom: translateX(0) translateY(0); + --f7-navbar-large-transparent-bg-left: translateX(-100%); + --f7-navbar-large-bg-left-top: translateX(-100%) translateY(calc(-1 * var(--f7-navbar-large-title-height))); + --f7-navbar-large-bg-left-bottom: translateX(-100%) translateY(0); + --f7-navbar-large-bg-right-top: translateX(100%) translateY(calc(-1 * var(--f7-navbar-large-title-height))); + --f7-navbar-large-bg-right-bottom: translateX(100%) translateY(0); +} +.ios .navbar a.icon-only { + width: 44px; + margin: 0; + justify-content: center; +} +.ios .navbar .left a + a, +.ios .navbar .right a + a { + margin-left: 16px; +} +.ios .navbar b { + font-weight: 600; +} +.ios .navbar .left { + margin-right: 10px; +} +.ios .navbar .right { + margin-left: 10px; +} +.ios .navbar .right:first-child { + right: calc(8px + var(--f7-safe-area-right)); +} +.ios .navbar-inner { + justify-content: space-between; +} +.ios .navbar-inner-left-title { + justify-content: flex-start; +} +.ios .navbar-inner-left-title .right { + margin-left: auto; +} +.ios .navbar-inner-left-title .title { + text-align: left; + margin-right: 10px; +} +.ios .view-master-detail .navbar-previous:not(.navbar-master) .left, +.ios .view:not(.view-master-detail) .navbar-previous .left, +.ios .navbar-next .left, +.ios .view-master-detail .navbar-previous:not(.navbar-master) .title, +.ios .view:not(.view-master-detail) .navbar-previous .title, +.ios .navbar-next .title, +.ios .view-master-detail .navbar-previous:not(.navbar-master) .right, +.ios .view:not(.view-master-detail) .navbar-previous .right, +.ios .navbar-next .right, +.ios .view-master-detail .navbar-previous:not(.navbar-master) .subnavbar, +.ios .view:not(.view-master-detail) .navbar-previous .subnavbar, +.ios .navbar-next .subnavbar, +.ios .view-master-detail .navbar-previous:not(.navbar-master) .fading, +.ios .view:not(.view-master-detail) .navbar-previous .fading, +.ios .navbar-next .fading { + opacity: 0; +} +.ios .view-master-detail .navbar-previous:not(.navbar-master), +.ios .view:not(.view-master-detail) .navbar-previous { + pointer-events: none; +} +.ios .view-master-detail .navbar-previous:not(.navbar-master) .title-large, +.ios .view:not(.view-master-detail) .navbar-previous .title-large { + opacity: 0; + transition-duration: 0ms; +} +.ios .view-master-detail .navbar-previous:not(.navbar-master) .title-large .title-large-text, +.ios .view:not(.view-master-detail) .navbar-previous .title-large .title-large-text { + transform: scale(0.5); + transition-duration: 0ms; +} +.ios .view-master-detail .navbar-previous:not(.navbar-master) .subnavbar.sliding, +.ios .view:not(.view-master-detail) .navbar-previous .subnavbar.sliding, +.ios .view-master-detail .navbar-previous:not(.navbar-master) .sliding .subnavbar, +.ios .view:not(.view-master-detail) .navbar-previous .sliding .subnavbar { + opacity: 1; + transform: translate3d(-100%, 0, 0); +} +.ios .view:not(.view-master-detail) .navbar-previous .navbar-bg, +.ios .view-master-detail .navbar-previous:not(.navbar-master) .navbar-bg { + transform: translateX(-100%); +} +.ios .navbar-next { + pointer-events: none; +} +.ios .navbar-next .navbar-bg { + transform: translateX(100%); +} +.ios .navbar-next .title-large .title-large-text { + transition-duration: 0ms; + transform: translateX(100%) translateY(calc(-1 * var(--f7-navbar-large-title-height))); +} +.ios .navbar-next .subnavbar.sliding, +.ios .navbar-next .sliding .subnavbar { + opacity: 1; + transform: translate3d(100%, 0, 0); +} +.ios .router-transition .navbar, +.ios .router-transition .navbar-bg { + transition-duration: var(--f7-page-transition-duration); +} +.ios .router-transition .navbar-bg { + animation-duration: var(--f7-page-transition-duration); + animation-fill-mode: forwards; +} +.ios .router-transition .title-large, +.ios .router-transition .title-large-text { + transition-duration: 0ms; +} +.ios .router-transition .navbar-current .left, +.ios .router-transition .navbar-current .title, +.ios .router-transition .navbar-current .right, +.ios .router-transition .navbar-current .subnavbar { + animation: ios-navbar-element-fade-out var(--f7-page-transition-duration) forwards; +} +.ios .router-transition .navbar-current .sliding.left, +.ios .router-transition .navbar-current .sliding.left .icon + span, +.ios .router-transition .navbar-current .sliding.title, +.ios .router-transition .navbar-current .sliding.right, +.ios .router-transition .navbar-current .sliding .left, +.ios .router-transition .navbar-current .sliding .left .icon + span, +.ios .router-transition .navbar-current .sliding .title, +.ios .router-transition .navbar-current .sliding .right { + transition-duration: var(--f7-page-transition-duration); + opacity: 0 !important; + animation: none; +} +.ios .router-transition .navbar-current .sliding .subnavbar, +.ios .router-transition .navbar-current .sliding.subnavbar { + transition-duration: var(--f7-page-transition-duration); + animation: none; + opacity: 1; +} +.ios .router-transition-forward .navbar-next .left, +.ios .router-transition-backward .navbar-previous .left, +.ios .router-transition-forward .navbar-next .title, +.ios .router-transition-backward .navbar-previous .title, +.ios .router-transition-forward .navbar-next .right, +.ios .router-transition-backward .navbar-previous .right, +.ios .router-transition-forward .navbar-next .subnavbar, +.ios .router-transition-backward .navbar-previous .subnavbar { + animation: ios-navbar-element-fade-in var(--f7-page-transition-duration) forwards; +} +.ios .router-transition-forward .navbar-next .sliding.left, +.ios .router-transition-backward .navbar-previous .sliding.left, +.ios .router-transition-forward .navbar-next .sliding.left .icon + span, +.ios .router-transition-backward .navbar-previous .sliding.left .icon + span, +.ios .router-transition-forward .navbar-next .sliding.title, +.ios .router-transition-backward .navbar-previous .sliding.title, +.ios .router-transition-forward .navbar-next .sliding.right, +.ios .router-transition-backward .navbar-previous .sliding.right, +.ios .router-transition-forward .navbar-next .sliding .left, +.ios .router-transition-backward .navbar-previous .sliding .left, +.ios .router-transition-forward .navbar-next .sliding .left .icon + span, +.ios .router-transition-backward .navbar-previous .sliding .left .icon + span, +.ios .router-transition-forward .navbar-next .sliding .title, +.ios .router-transition-backward .navbar-previous .sliding .title, +.ios .router-transition-forward .navbar-next .sliding .right, +.ios .router-transition-backward .navbar-previous .sliding .right, +.ios .router-transition-forward .navbar-next .sliding .subnavbar, +.ios .router-transition-backward .navbar-previous .sliding .subnavbar { + transition-duration: var(--f7-page-transition-duration); + animation: none; + transform: translate3d(0, 0, 0) !important; + opacity: 1 !important; +} +.ios .router-transition-forward .navbar-next.navbar-transparent:not(.navbar-large):not(.navbar-transparent-visible) .title, +.ios .router-transition-backward .navbar-previous.navbar-transparent:not(.navbar-large):not(.navbar-transparent-visible) .title { + animation: none; +} +.ios .router-transition-forward .navbar-next.navbar-transparent:not(.navbar-large):not(.navbar-transparent-visible) .sliding.title, +.ios .router-transition-backward .navbar-previous.navbar-transparent:not(.navbar-large):not(.navbar-transparent-visible) .sliding.title, +.ios .router-transition-forward .navbar-next.navbar-transparent:not(.navbar-large):not(.navbar-transparent-visible) .sliding .title, +.ios .router-transition-backward .navbar-previous.navbar-transparent:not(.navbar-large):not(.navbar-transparent-visible) .sliding .title { + opacity: 0 !important; +} +.ios .router-transition-backward .navbar-previous.with-searchbar-expandable-enabled-no-transition .left, +.ios .router-transition-backward .navbar-previous.with-searchbar-expandable-enabled .left, +.ios .router-transition-backward .navbar-previous.with-searchbar-expandable-enabled-no-transition .title, +.ios .router-transition-backward .navbar-previous.with-searchbar-expandable-enabled .title, +.ios .router-transition-backward .navbar-previous.with-searchbar-expandable-enabled-no-transition .right, +.ios .router-transition-backward .navbar-previous.with-searchbar-expandable-enabled .right, +.ios .router-transition-backward .navbar-previous.with-searchbar-expandable-enabled-no-transition .subnavbar, +.ios .router-transition-backward .navbar-previous.with-searchbar-expandable-enabled .subnavbar { + animation: none; +} +.ios .router-transition-forward .navbar-current.router-navbar-transition-from-large.router-navbar-transition-to-large .title-large, +.ios .router-transition-forward .navbar-current.router-navbar-transition-from-large:not(.router-navbar-transition-to-large) .title-large { + overflow: visible; +} +.ios .router-transition-forward .navbar-current.router-navbar-transition-from-large.router-navbar-transition-to-large .title-large .title-large-text, +.ios .router-transition-forward .navbar-current.router-navbar-transition-from-large:not(.router-navbar-transition-to-large) .title-large .title-large-text { + animation: ios-navbar-large-title-text-slide-up var(--f7-page-transition-duration) forwards, ios-navbar-large-title-text-fade-out var(--f7-page-transition-duration) forwards; +} +.ios .router-transition-forward .navbar-next.router-navbar-transition-from-large .left .back span { + animation: ios-navbar-back-text-next-to-current var(--f7-page-transition-duration) forwards; + transition: none; + transform-origin: left center; +} +.ios .router-transition-forward .navbar-next.router-navbar-transition-from-large.router-navbar-transition-to-large .title-large { + overflow: visible; +} +.ios .router-transition-forward .navbar-next.router-navbar-transition-from-large.router-navbar-transition-to-large .title-large .title-large-text { + animation: ios-navbar-large-title-text-slide-left var(--f7-page-transition-duration) forwards; +} +.ios .router-transition-forward .navbar-next.router-navbar-transition-to-large:not(.router-navbar-transition-from-large) .title-large .title-large-text { + animation: ios-navbar-large-title-text-slide-left var(--f7-page-transition-duration) forwards; +} +.ios .router-transition-forward .navbar-next.navbar-large:not(.navbar-large-collapsed) .title, +.ios .router-transition-forward .navbar-current.navbar-large:not(.navbar-large-collapsed) .title { + animation: none; + opacity: 0 !important; + transition-duration: 0; +} +.ios .router-transition-backward .navbar-current.router-navbar-transition-to-large .left .back span { + animation: ios-navbar-back-text-current-to-previous var(--f7-page-transition-duration) forwards; + transition: none; + transform-origin: left center; +} +.ios .router-transition-backward .navbar-current.router-navbar-transition-from-large.router-navbar-transition-to-large .title-large { + overflow: visible; +} +.ios .router-transition-backward .navbar-current.router-navbar-transition-from-large.router-navbar-transition-to-large .title-large .title-large-text { + animation: ios-navbar-large-title-text-slide-right var(--f7-page-transition-duration) forwards; +} +.ios .router-transition-backward .navbar-current.router-navbar-transition-from-large:not(.router-navbar-transition-to-large) .title-large .title-large-text { + animation: ios-navbar-large-title-text-slide-right var(--f7-page-transition-duration) forwards; +} +.ios .router-transition-backward .navbar-current.router-navbar-transition-to-large:not(.router-navbar-transition-from-large) .title-large { + opacity: 0; +} +.ios .router-transition-backward .navbar-previous.router-navbar-transition-from-large.router-navbar-transition-to-large .title-large, +.ios .router-transition-backward .navbar-previous.router-navbar-transition-to-large:not(.router-navbar-transition-from-large) .title-large { + overflow: visible; + opacity: 1; +} +.ios .router-transition-backward .navbar-previous.router-navbar-transition-from-large.router-navbar-transition-to-large .title-large .title-large-text, +.ios .router-transition-backward .navbar-previous.router-navbar-transition-to-large:not(.router-navbar-transition-from-large) .title-large .title-large-text { + animation: ios-navbar-large-title-text-slide-down var(--f7-page-transition-duration) forwards, ios-navbar-large-title-text-fade-in var(--f7-page-transition-duration) forwards; +} +.ios .router-transition-backward .navbar-current.navbar-large:not(.navbar-large-collapsed) .title, +.ios .router-transition-backward .navbar-previous.navbar-large:not(.navbar-large-collapsed) .title { + animation: none; + opacity: 0 !important; + transition-duration: 0; +} +.ios .router-transition-forward .navbar-current .navbar-bg { + animation-name: ios-navbar-bg-from-cb-to-lb; +} +.ios .router-transition-forward .navbar-current.router-navbar-transition-from-large.router-navbar-transition-to-large .navbar-bg { + animation-name: ios-navbar-bg-from-cb-to-lb; +} +.ios .router-transition-forward .navbar-current.router-navbar-transition-from-large:not(.router-navbar-transition-to-large) .navbar-bg { + animation-name: ios-navbar-bg-from-cb-to-lt; +} +.ios .router-transition-forward .navbar-current:not(.router-navbar-transition-from-large).router-navbar-transition-to-large .navbar-bg { + animation-name: ios-navbar-bg-from-ct-to-lb; +} +.ios .router-transition-forward .navbar-current.navbar-large-collapsed:not(.router-navbar-transition-to-large) .navbar-bg { + animation-name: ios-navbar-bg-from-ct-to-lt; +} +.ios .router-transition-forward .navbar-current.navbar-large-collapsed.navbar-large-transparent:not(.router-navbar-transition-to-large) .navbar-bg, +.ios .router-transition-forward .navbar-current.navbar-large-collapsed.navbar-large.navbar-transparent:not(.router-navbar-transition-to-large) .navbar-bg { + animation-name: ios-navbar-transparent-bg-from-c-to-l; +} +.ios .router-transition-forward .navbar-next .navbar-bg { + animation-name: ios-navbar-bg-from-rb-to-cb; +} +.ios .router-transition-forward .navbar-next.router-navbar-transition-from-large.router-navbar-transition-to-large .navbar-bg { + animation-name: ios-navbar-bg-from-rb-to-cb; +} +.ios .router-transition-forward .navbar-next.router-navbar-transition-from-large:not(.router-navbar-transition-to-large) .navbar-bg { + animation-name: ios-navbar-bg-from-rb-to-ct; +} +.ios .router-transition-forward .navbar-next:not(.router-navbar-transition-from-large).router-navbar-transition-to-large .navbar-bg { + animation-name: ios-navbar-bg-from-rt-to-cb; +} +.ios .router-transition-backward .navbar-current .navbar-bg { + animation-name: ios-navbar-bg-from-cb-to-rb; +} +.ios .router-transition-backward .navbar-current:not(.router-navbar-transition-from-large).router-navbar-transition-to-large .navbar-bg { + animation-name: ios-navbar-bg-from-ct-to-rb; +} +.ios .router-transition-backward .navbar-current.router-navbar-transition-from-large:not(.router-navbar-transition-to-large) .navbar-bg { + animation-name: ios-navbar-bg-from-cb-to-rt; +} +.ios .router-transition-backward .navbar-current.navbar-large-collapsed .navbar-bg { + animation-name: ios-navbar-bg-from-ct-to-rt; +} +.ios .router-transition-backward .navbar-current.navbar-large-collapsed.navbar-large-transparent .navbar-bg, +.ios .router-transition-backward .navbar-current.navbar-large-collapsed.navbar-large.navbar-transparent .navbar-bg { + animation-name: ios-navbar-bg-from-cb-to-rb; +} +.ios .router-transition-backward .navbar-current.navbar-large-collapsed.router-navbar-transition-to-large .navbar-bg { + animation-name: ios-navbar-bg-from-ct-to-rb; +} +.ios .router-transition-backward .navbar-previous .navbar-bg { + animation-name: ios-navbar-bg-from-lb-to-cb; +} +.ios .router-transition-backward .navbar-previous:not(.router-navbar-transition-from-large).router-navbar-transition-to-large .navbar-bg { + animation-name: ios-navbar-bg-from-lt-to-cb; +} +.ios .router-transition-backward .navbar-previous.router-navbar-transition-from-large:not(.router-navbar-transition-to-large) .navbar-bg { + animation-name: ios-navbar-bg-from-lb-to-ct; +} +.ios .router-transition-backward .navbar-previous.navbar-large-collapsed .navbar-bg { + animation-name: ios-navbar-bg-from-lt-to-ct; +} +.ios .router-transition-backward .navbar-previous.navbar-large-collapsed.navbar-large-transparent .navbar-bg, +.ios .router-transition-backward .navbar-previous.navbar-large-collapsed.navbar-large.navbar-transparent .navbar-bg { + animation-name: ios-navbar-transparent-bg-from-l-to-c; +} +.ios .router-transition-backward .navbar-previous.navbar-large-collapsed.navbar-large-transparent.router-navbar-transition-from-large .navbar-bg, +.ios .router-transition-backward .navbar-previous.navbar-large-collapsed.navbar-large.navbar-transparent.router-navbar-transition-from-large .navbar-bg { + animation-name: ios-navbar-bg-from-lb-to-ct; +} +.view-master-detail .navbars { + z-index: auto; +} +.view-master-detail .page-master { + z-index: 525; +} +.view-master-detail .navbar-master .navbar-inner, +.view-master-detail .navbar-master .navbar-bg { + z-index: 550; +} +.view-master-detail .navbar-master-detail .navbar-inner, +.view-master-detail .navbar-master-detail .navbar-bg { + z-index: 500; +} +.view-master-detail .navbar-master.navbar-previous { + pointer-events: auto; +} +.view-master-detail .navbar-master.navbar-previous .left, +.view-master-detail .navbar-master.navbar-previous:not(.navbar-large) .title, +.view-master-detail .navbar-master.navbar-previous .right, +.view-master-detail .navbar-master.navbar-previous .subnavbar { + opacity: 1; +} +.view-master-detail.router-transition .navbar-master .left, +.view-master-detail.router-transition .navbar-master .left .icon + span, +.view-master-detail.router-transition .navbar-master:not(.navbar-large) .title, +.view-master-detail.router-transition .navbar-master .right, +.view-master-detail.router-transition .navbar-master .subnavbar, +.view-master-detail.router-transition .navbar-master .fading { + opacity: 1 !important; + transition-duration: 0ms; + transform: none !important; + animation: none !important; +} +.view-master-detail.router-transition .navbar-master .navbar-bg { + transition-duration: 0ms; + animation: none !important; +} +.view-master-detail.router-transition .navbar-master.navbar-large .title { + opacity: calc(-1 + 2 * var(--f7-navbar-large-collapse-progress)) !important; + transition-duration: 0ms; + transform: none !important; + animation: none !important; +} +.view-master-detail.router-transition .navbar-master.navbar-large .title-large, +.view-master-detail.router-transition .navbar-master.navbar-large .title-large-text { + transition-duration: 0ms; + animation: none !important; +} +.view-master-detail.router-transition .navbar-master.navbar-large-transparent .navbar-bg, +.view-master-detail.router-transition .navbar-master.navbar-large.navbar-transparent .navbar-bg { + height: 100% !important; + opacity: var(--f7-navbar-large-collapse-progress) !important; +} +@keyframes ios-navbar-element-fade-in { + 0% { + opacity: 0; + } + 25% { + opacity: 0; + } + to { + opacity: 1; + } +} +@keyframes ios-navbar-element-fade-out { + from { + opacity: 1; + } + 75% { + opacity: 0; + } + to { + opacity: 0; + } +} +@keyframes ios-navbar-large-title-text-slide-up { + 0% { + transform: translateX(0px) translateY(0%) scale(1); + } + 100% { + transform: translateX(calc(var(--f7-navbarLeftTextOffset) - var(--f7-navbarTitleLargeOffset))) translateY(calc(-1 * var(--f7-navbar-large-title-height) + var(--f7-navbar-large-title-padding-vertical))) scale(0.5); + } +} +@keyframes ios-navbar-large-title-text-slide-down { + 0% { + transform: translateX(calc(var(--f7-navbarLeftTextOffset) - var(--f7-navbarTitleLargeOffset))) translateY(calc(-1 * var(--f7-navbar-large-title-height) + var(--f7-navbar-large-title-padding-vertical) / 2)) scale(0.5); + } + 100% { + transform: translateX(0px) translateY(0%) scale(1); + } +} +@keyframes ios-navbar-large-title-text-slide-left { + 0% { + transform: translateX(100%); + } + 100% { + transform: translateX(0%); + } +} +@keyframes ios-navbar-large-title-text-slide-right { + 0% { + transform: translateX(0%); + } + 100% { + transform: translateX(100%); + } +} +@keyframes ios-navbar-large-title-text-fade-out { + 0% { + opacity: 1; + } + 80% { + opacity: 0; + } + 100% { + opacity: 0; + } +} +@keyframes ios-navbar-large-title-text-fade-in { + 0% { + opacity: 0; + } + 20% { + opacity: 0; + } + 100% { + opacity: 1; + } +} +@keyframes ios-navbar-back-text-current-to-previous { + 0% { + opacity: 1; + transform: translateY(0px) translateX(0px) scale(1); + } + 80% { + opacity: 0; + } + 100% { + opacity: 0; + transform: translateX(calc(var(--f7-navbarTitleLargeOffset) - var(--f7-navbarLeftTextOffset))) translateY(calc(1 * var(--f7-navbar-large-title-height) - var(--f7-navbar-large-title-padding-vertical) / 2)) scale(2); + } +} +@keyframes ios-navbar-back-text-next-to-current { + 0% { + opacity: 0; + transform: translateX(calc(var(--f7-navbarTitleLargeOffset) - var(--f7-navbarLeftTextOffset))) translateY(calc(1 * var(--f7-navbar-large-title-height) + var(--f7-navbar-large-title-padding-vertical) / 2)) scale(2); + } + 20% { + opacity: 0; + } + 100% { + opacity: 1; + transform: translateX(0px) translateY(0px) scale(1); + } +} +@keyframes ios-navbar-bg-from-cb-to-lb { + from { + transform: var(--f7-navbar-large-bg-center-bottom); + } + to { + transform: var(--f7-navbar-large-bg-left-bottom); + } +} +@keyframes ios-navbar-bg-from-cb-to-lt { + from { + transform: var(--f7-navbar-large-bg-center-bottom); + } + to { + transform: var(--f7-navbar-large-bg-left-top); + } +} +@keyframes ios-navbar-bg-from-ct-to-lb { + from { + transform: var(--f7-navbar-large-bg-center-top); + } + to { + transform: var(--f7-navbar-large-bg-left-bottom); + } +} +@keyframes ios-navbar-bg-from-ct-to-lt { + from { + transform: var(--f7-navbar-large-bg-center-top); + } + to { + transform: var(--f7-navbar-large-bg-left-top); + } +} +@keyframes ios-navbar-bg-from-rb-to-cb { + from { + transform: var(--f7-navbar-large-bg-right-bottom); + } + to { + transform: var(--f7-navbar-large-bg-center-bottom); + } +} +@keyframes ios-navbar-bg-from-rb-to-ct { + from { + transform: var(--f7-navbar-large-bg-right-bottom); + } + to { + transform: var(--f7-navbar-large-bg-center-top); + } +} +@keyframes ios-navbar-bg-from-rt-to-cb { + from { + transform: var(--f7-navbar-large-bg-right-top); + } + to { + transform: var(--f7-navbar-large-bg-center-bottom); + } +} +@keyframes ios-navbar-bg-from-cb-to-rb { + from { + transform: var(--f7-navbar-large-bg-center-bottom); + } + to { + transform: var(--f7-navbar-large-bg-right-bottom); + } +} +@keyframes ios-navbar-bg-from-ct-to-rb { + from { + transform: var(--f7-navbar-large-bg-center-top); + } + to { + transform: var(--f7-navbar-large-bg-right-bottom); + } +} +@keyframes ios-navbar-bg-from-cb-to-rt { + from { + transform: var(--f7-navbar-large-bg-center-bottom); + } + to { + transform: var(--f7-navbar-large-bg-right-top); + } +} +@keyframes ios-navbar-bg-from-ct-to-rt { + from { + transform: var(--f7-navbar-large-bg-center-top); + } + to { + transform: var(--f7-navbar-large-bg-right-top); + } +} +@keyframes ios-navbar-bg-from-lb-to-cb { + from { + transform: var(--f7-navbar-large-bg-left-bottom); + } + to { + transform: var(--f7-navbar-large-bg-center-bottom); + } +} +@keyframes ios-navbar-bg-from-lt-to-cb { + from { + transform: var(--f7-navbar-large-bg-left-top); + } + to { + transform: var(--f7-navbar-large-bg-center-bottom); + } +} +@keyframes ios-navbar-bg-from-lb-to-ct { + from { + transform: var(--f7-navbar-large-bg-left-bottom); + } + to { + transform: var(--f7-navbar-large-bg-center-top); + } +} +@keyframes ios-navbar-bg-from-lt-to-ct { + from { + transform: var(--f7-navbar-large-bg-left-top); + } + to { + transform: var(--f7-navbar-large-bg-center-top); + } +} +@keyframes ios-navbar-transparent-bg-from-l-to-c { + from { + transform: var(--f7-navbar-large-transparent-bg-left); + } + to { + transform: var(--f7-navbar-large-transparent-bg-center); + } +} +@keyframes ios-navbar-transparent-bg-from-c-to-l { + from { + transform: var(--f7-navbar-large-transparent-bg-center); + } + to { + transform: var(--f7-navbar-large-transparent-bg-left); + } +} +.md .navbar a.link { + padding: 0 16px; + min-width: 48px; +} +.md .navbar a.link:before { + content: ''; + width: 152%; + height: 152%; + position: absolute; + left: -26%; + top: -26%; + background-image: radial-gradient(circle at center, var(--f7-link-highlight-color) 66%, rgba(255, 255, 255, 0) 66%); + background-repeat: no-repeat; + background-position: center; + background-size: 100% 100%; + opacity: 0; + pointer-events: none; + transition-duration: 600ms; +} +.md .navbar a.link.active-state:before { + opacity: 1; + transition-duration: 150ms; +} +.md .navbar a.icon-only { + min-width: 0; + flex-shrink: 0; + width: 56px; +} +.md .navbar .right { + margin-left: auto; +} +.md .navbar .right:first-child { + right: var(--f7-safe-area-right); +} +.md .navbar-inner { + justify-content: flex-start; + overflow: hidden; +} +.md .navbar-large:not(.navbar-large-collapsed) .navbar-inner { + overflow: visible; +} +.md .page.page-with-subnavbar .navbar-inner { + overflow: visible; +} +.md .navbar-inner-centered-title { + justify-content: space-between; +} +.md .navbar-inner-centered-title .right { + margin-left: 0; +} +.md .navbar-inner-centered-title .title { + text-align: center; +} +.aurora .navbar a.icon-only { + margin: 0; + justify-content: center; +} +.aurora .navbar .left a + a, +.aurora .navbar .right a + a { + margin-left: 10px; +} +.aurora .navbar b { + font-weight: bold; +} +.aurora .navbar .left { + margin-right: 10px; +} +.aurora .navbar .right { + margin-left: 10px; +} +.aurora .navbar .right:first-child { + right: calc(16px + var(--f7-safe-area-right)); +} +.aurora .navbar-inner { + justify-content: space-between; +} +.aurora .navbar-inner-left-title { + justify-content: flex-start; +} +.aurora .navbar-inner-left-title .right { + margin-left: auto; +} +.aurora .navbar-inner-left-title .title { + text-align: left; + margin-right: 10px; +} +/* === Toolbar === */ +:root { + /* + --f7-toolbar-bg-color: var(--f7-bars-bg-color); + --f7-toolbar-bg-color-rgb: var(--f7-bars-bg-color-rgb); + --f7-toolbar-bg-image: var(--f7-bars-bg-image); + --f7-toolbar-border-color: var(--f7-bars-border-color); + --f7-toolbar-link-color: var(--f7-bars-link-color); + --f7-toolbar-text-color: var(--f7-bars-text-color); + --f7-tabbar-link-active-color: var(--f7-theme-color); + */ + --f7-tabbar-link-active-bg-color: transparent; + --f7-tabbar-label-text-transform: none; + --f7-toolbar-hide-show-transition-duration: 400ms; +} +.ios { + --f7-toolbar-height: 44px; + --f7-toolbar-font-size: 17px; + --f7-toolbar-inner-padding-left: 8px; + --f7-toolbar-inner-padding-right: 8px; + /* + --f7-toolbar-link-height: var(--f7-toolbar-height); + --f7-toolbar-link-line-height: var(--f7-toolbar-height); + */ + --f7-tabbar-labels-height: 50px; + --f7-tabbar-labels-tablet-height: 50px; + --f7-toolbar-top-shadow-image: none; + --f7-toolbar-bottom-shadow-image: none; + --f7-tabbar-icon-size: 28px; + --f7-tabbar-link-text-transform: none; + --f7-tabbar-link-font-weight: 400; + --f7-tabbar-link-letter-spacing: 0; + --f7-tabbar-label-font-size: 12px; + --f7-tabbar-label-tablet-font-size: 14px; + --f7-tabbar-label-font-weight: 500; + --f7-tabbar-label-letter-spacing: 0.01; + --f7-tabbar-link-inactive-color: rgba(0, 0, 0, 0.4); +} +.ios .theme-dark, +.ios.theme-dark { + --f7-tabbar-link-inactive-color: rgba(255, 255, 255, 0.54); +} +.md { + --f7-toolbar-height: 48px; + --f7-toolbar-font-size: 14px; + --f7-toolbar-inner-padding-left: 0px; + --f7-toolbar-inner-padding-right: 0px; + /* + --f7-toolbar-link-height: var(--f7-toolbar-height); + --f7-toolbar-link-line-height: var(--f7-toolbar-height); + */ + --f7-tabbar-labels-height: 56px; + --f7-tabbar-labels-tablet-height: 56px; + /* + --f7-tabbar-link-active-border-color: var(--f7-theme-color); + */ + --f7-toolbar-top-shadow-image: var(--f7-bars-shadow-bottom-image); + --f7-toolbar-bottom-shadow-image: var(--f7-bars-shadow-top-image); + --f7-tabbar-icon-size: 24px; + --f7-tabbar-link-text-transform: uppercase; + --f7-tabbar-link-font-weight: 500; + --f7-tabbar-link-letter-spacing: 0.03em; + --f7-tabbar-label-font-size: 14px; + --f7-tabbar-label-tablet-font-size: 14px; + --f7-tabbar-label-font-weight: 400; + --f7-tabbar-label-letter-spacing: 0; + --f7-tabbar-link-inactive-color: rgba(0, 0, 0, 0.54); +} +.md .theme-dark, +.md.theme-dark { + --f7-tabbar-link-inactive-color: rgba(255, 255, 255, 0.54); +} +.aurora { + --f7-toolbar-height: 38px; + --f7-toolbar-font-size: 14px; + --f7-toolbar-inner-padding-left: 16px; + --f7-toolbar-inner-padding-right: 16px; + --f7-toolbar-link-height: auto; + --f7-toolbar-link-line-height: inherit; + --f7-tabbar-labels-height: 44px; + --f7-tabbar-labels-tablet-height: 44px; + --f7-tabbar-link-inactive-bg-color: rgba(0, 0, 0, 0.2); + --f7-toolbar-top-shadow-image: none; + --f7-toolbar-bottom-shadow-image: none; + --f7-tabbar-icon-size: 18px; + --f7-tabbar-link-text-transform: none; + --f7-tabbar-link-font-weight: 400; + --f7-tabbar-link-letter-spacing: 0; + --f7-tabbar-label-font-size: 12px; + --f7-tabbar-label-tablet-font-size: 12px; + --f7-tabbar-label-font-weight: 500; + --f7-tabbar-label-letter-spacing: 0.01; + --f7-tabbar-link-inactive-color: rgba(0, 0, 0, 0.5); +} +.aurora .theme-dark, +.aurora.theme-dark { + --f7-tabbar-link-inactive-color: rgba(255, 255, 255, 0.5); +} +.toolbar { + width: 100%; + position: relative; + margin: 0; + transform: translate3d(0, 0, 0); + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + z-index: 600; + box-sizing: border-box; + left: 0; + height: var(--f7-toolbar-height); + background-image: var(--f7-toolbar-bg-image, var(--f7-bars-bg-image)); + background-color: var(--f7-toolbar-bg-color, var(--f7-bars-bg-color)); + color: var(--f7-toolbar-text-color, var(--f7-bars-text-color)); + font-size: var(--f7-toolbar-font-size); +} +@supports ((-webkit-backdrop-filter: blur(20px)) or (backdrop-filter: blur(20px))) { + .ios-translucent-bars .toolbar { + background-color: rgba(var(--f7-toolbar-bg-color-rgb, var(--f7-bars-bg-color-rgb)), var(--f7-bars-translucent-opacity)); + -webkit-backdrop-filter: saturate(180%) blur(var(--f7-bars-translucent-blur)); + backdrop-filter: saturate(180%) blur(var(--f7-bars-translucent-blur)); + } +} +.toolbar b { + font-weight: 600; +} +.toolbar a { + color: var(--f7-toolbar-link-color, var(--f7-bars-link-color, var(--f7-theme-color))); + box-sizing: border-box; + flex-shrink: 1; + position: relative; + white-space: nowrap; + text-overflow: ellipsis; +} +.toolbar .link { + display: flex; + line-height: var(--f7-toolbar-link-line-height, var(--f7-toolbar-height)); + height: var(--f7-toolbar-link-height, var(--f7-toolbar-height)); +} +.toolbar i.icon { + display: block; +} +.toolbar:after, +.toolbar:before { + -webkit-backface-visibility: hidden; + backface-visibility: hidden; +} +.views > .toolbar, +.view > .toolbar, +.page > .toolbar { + position: absolute; +} +.toolbar-top, +.ios .toolbar-top-ios, +.md .toolbar-top-md, +.aurora .toolbar-top-aurora { + top: 0; +} +.toolbar-top .tab-link-highlight, +.ios .toolbar-top-ios .tab-link-highlight, +.md .toolbar-top-md .tab-link-highlight, +.aurora .toolbar-top-aurora .tab-link-highlight { + bottom: 0; +} +.toolbar-top.no-hairline:after, +.ios .toolbar-top-ios.no-hairline:after, +.md .toolbar-top-md.no-hairline:after, +.aurora .toolbar-top-aurora.no-hairline:after, +.toolbar-top.no-border:after, +.ios .toolbar-top-ios.no-border:after, +.md .toolbar-top-md.no-border:after, +.aurora .toolbar-top-aurora.no-border:after { + display: none !important; +} +.toolbar-top.no-shadow:before, +.ios .toolbar-top-ios.no-shadow:before, +.md .toolbar-top-md.no-shadow:before, +.aurora .toolbar-top-aurora.no-shadow:before, +.toolbar-top.toolbar-hidden:before, +.ios .toolbar-top-ios.toolbar-hidden:before, +.md .toolbar-top-md.toolbar-hidden:before, +.aurora .toolbar-top-aurora.toolbar-hidden:before { + display: none !important; +} +.toolbar-top:after, +.ios .toolbar-top-ios:after, +.md .toolbar-top-md:after, +.aurora .toolbar-top-aurora:after, +.toolbar-top:before, +.ios .toolbar-top-ios:before, +.md .toolbar-top-md:before, +.aurora .toolbar-top-aurora:before { + -webkit-backface-visibility: hidden; + backface-visibility: hidden; +} +.toolbar-top:after, +.ios .toolbar-top-ios:after, +.md .toolbar-top-md:after, +.aurora .toolbar-top-aurora:after { + content: ''; + position: absolute; + background-color: var(--f7-toolbar-border-color, var(--f7-bars-border-color)); + display: block; + z-index: 15; + top: auto; + right: auto; + bottom: 0; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 100%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +.toolbar-top:before, +.ios .toolbar-top-ios:before, +.md .toolbar-top-md:before, +.aurora .toolbar-top-aurora:before { + content: ''; + position: absolute; + right: 0; + width: 100%; + top: 100%; + bottom: auto; + height: 8px; + pointer-events: none; + background: var(--f7-toolbar-top-shadow-image); +} +.toolbar-bottom, +.ios .toolbar-bottom-ios, +.md .toolbar-bottom-md, +.aurora .toolbar-bottom-aurora { + bottom: 0; + height: calc(var(--f7-toolbar-height) + var(--f7-safe-area-bottom)); +} +.toolbar-bottom .tab-link-highlight, +.ios .toolbar-bottom-ios .tab-link-highlight, +.md .toolbar-bottom-md .tab-link-highlight, +.aurora .toolbar-bottom-aurora .tab-link-highlight { + top: 0; +} +.toolbar-bottom .toolbar-inner, +.ios .toolbar-bottom-ios .toolbar-inner, +.md .toolbar-bottom-md .toolbar-inner, +.aurora .toolbar-bottom-aurora .toolbar-inner { + height: auto; + top: 0; + bottom: var(--f7-safe-area-bottom); +} +.toolbar-bottom.no-hairline:before, +.ios .toolbar-bottom-ios.no-hairline:before, +.md .toolbar-bottom-md.no-hairline:before, +.aurora .toolbar-bottom-aurora.no-hairline:before, +.toolbar-bottom.no-border:before, +.ios .toolbar-bottom-ios.no-border:before, +.md .toolbar-bottom-md.no-border:before, +.aurora .toolbar-bottom-aurora.no-border:before { + display: none !important; +} +.toolbar-bottom.no-shadow:after, +.ios .toolbar-bottom-ios.no-shadow:after, +.md .toolbar-bottom-md.no-shadow:after, +.aurora .toolbar-bottom-aurora.no-shadow:after, +.toolbar-bottom.toolbar-hidden:after, +.ios .toolbar-bottom-ios.toolbar-hidden:after, +.md .toolbar-bottom-md.toolbar-hidden:after, +.aurora .toolbar-bottom-aurora.toolbar-hidden:after { + display: none !important; +} +.toolbar-bottom:before, +.ios .toolbar-bottom-ios:before, +.md .toolbar-bottom-md:before, +.aurora .toolbar-bottom-aurora:before { + content: ''; + position: absolute; + background-color: var(--f7-toolbar-border-color, var(--f7-bars-border-color)); + display: block; + z-index: 15; + top: 0; + right: auto; + bottom: auto; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 0%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +.toolbar-bottom:after, +.ios .toolbar-bottom-ios:after, +.md .toolbar-bottom-md:after, +.aurora .toolbar-bottom-aurora:after { + content: ''; + position: absolute; + right: 0; + width: 100%; + bottom: 100%; + height: 8px; + top: auto; + pointer-events: none; + background: var(--f7-toolbar-bottom-shadow-image); + transform: translate3d(0, 0, 0); +} +.toolbar-inner { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + display: flex; + justify-content: space-between; + box-sizing: border-box; + align-items: center; + align-content: center; + overflow: hidden; + padding: 0 calc(var(--f7-toolbar-inner-padding-right) + var(--f7-safe-area-right)) 0 calc(var(--f7-toolbar-inner-padding-left) + var(--f7-safe-area-left)); +} +.views > .tabbar, +.views > .tabbar-labels { + z-index: 5001; +} +.tabbar a, +.tabbar-labels a { + color: var(--f7-tabbar-link-inactive-color); +} +.tabbar .tab-link:not(.tab-link-active), +.tabbar-labels .tab-link:not(.tab-link-active) { + background-color: var(--f7-tabbar-link-inactive-bg-color, transparent); +} +.tabbar .link, +.tabbar-labels .link { + line-height: 1.4; +} +.tabbar .tab-link, +.tabbar-labels .tab-link, +.tabbar .link, +.tabbar-labels .link { + height: 100%; + width: 100%; + box-sizing: border-box; + display: flex; + justify-content: center; + align-items: center; + flex-direction: column; + text-transform: var(--f7-tabbar-link-text-transform); + font-weight: var(--f7-tabbar-link-font-weight); + letter-spacing: var(--f7-tabbar-link-letter-spacing); + overflow: hidden; +} +.tabbar .tab-link-active, +.tabbar-labels .tab-link-active { + color: var(--f7-tabbar-link-active-color, var(--f7-theme-color)); + background-color: var(--f7-tabbar-link-active-bg-color, transparent); +} +.tabbar i.icon, +.tabbar-labels i.icon { + font-size: var(--f7-tabbar-icon-size); + height: var(--f7-tabbar-icon-size); + line-height: var(--f7-tabbar-icon-size); +} +.tabbar-labels { + --f7-toolbar-height: var(--f7-tabbar-labels-height); +} +.tabbar-labels .tab-link, +.tabbar-labels .link { + height: 100%; + justify-content: space-between; + align-items: center; +} +.tabbar-labels .tabbar-label { + display: block; + line-height: 1; + margin: 0; + position: relative; + text-overflow: ellipsis; + white-space: nowrap; + font-size: var(--f7-tabbar-label-font-size); + text-transform: var(--f7-tabbar-label-text-transform); + font-weight: var(--f7-tabbar-label-font-weight); + letter-spacing: var(--f7-tabbar-label-letter-spacing); +} +@media (min-width: 768px) and (min-height: 600px) { + :root { + --f7-tabbar-labels-height: var(--f7-tabbar-labels-tablet-height); + --f7-tabbar-label-font-size: var(--f7-tabbar-label-tablet-font-size); + } +} +.tabbar-scrollable .toolbar-inner { + justify-content: flex-start; + overflow: auto; + -webkit-overflow-scrolling: touch; +} +.tabbar-scrollable .toolbar-inner::-webkit-scrollbar { + display: none !important; + width: 0 !important; + height: 0 !important; + -webkit-appearance: none; + opacity: 0 !important; +} +.tabbar-scrollable .tab-link, +.tabbar-scrollable .link { + width: auto; + flex-shrink: 0; +} +.toolbar-transitioning, +.navbar-transitioning + .toolbar, +.navbar-transitioning ~ * .toolbar { + transition-duration: var(--f7-toolbar-hide-show-transition-duration); +} +.toolbar-bottom ~ *, +.ios .toolbar-bottom-ios ~ *, +.md .toolbar-bottom-md ~ *, +.aurora .toolbar-bottom-aurora ~ * { + --f7-page-toolbar-bottom-offset: var(--f7-toolbar-height); +} +.toolbar-bottom.tabbar-labels ~ *, +.ios .toolbar-bottom-ios.tabbar-labels ~ *, +.md .toolbar-bottom-md.tabbar-labels ~ *, +.aurora .toolbar-bottom-aurora.tabbar-labels ~ * { + --f7-page-toolbar-bottom-offset: var(--f7-tabbar-labels-height); +} +.toolbar-bottom.toolbar-hidden, +.ios .toolbar-bottom-ios.toolbar-hidden, +.md .toolbar-bottom-md.toolbar-hidden, +.aurora .toolbar-bottom-aurora.toolbar-hidden { + transform: translate3d(0, 100%, 0); +} +.toolbar-top ~ *, +.ios .toolbar-top-ios ~ *, +.md .toolbar-top-md ~ *, +.aurora .toolbar-top-aurora ~ * { + --f7-page-toolbar-top-offset: var(--f7-toolbar-height); +} +.toolbar-top.tabbar-labels ~ *, +.ios .toolbar-top-ios.tabbar-labels ~ *, +.md .toolbar-top-md.tabbar-labels ~ *, +.aurora .toolbar-top-aurora.tabbar-labels ~ * { + --f7-page-toolbar-top-offset: var(--f7-tabbar-labels-height); +} +.toolbar-top.toolbar-hidden, +.ios .toolbar-top-ios.toolbar-hidden, +.md .toolbar-top-md.toolbar-hidden, +.aurora .toolbar-top-aurora.toolbar-hidden { + transform: translate3d(0, -100%, 0); +} +.navbar ~ .toolbar-top, +.navbars ~ .toolbar-top, +.ios .navbar ~ .toolbar-top-ios, +.ios .navbars ~ .toolbar-top-ios, +.md .navbar ~ .toolbar-top-md, +.aurora .navbar ~ .toolbar-top-aurora, +.navbar ~ * .toolbar-top, +.navbars ~ * .toolbar-top, +.ios .navbar ~ * .toolbar-top-ios, +.ios .navbars ~ * .toolbar-top-ios, +.md .navbar ~ * .toolbar-top-md, +.aurora .navbar ~ * .toolbar-top-aurora, +.navbar ~ .page:not(.no-navbar) .toolbar-top, +.navbars ~ .page:not(.no-navbar) .toolbar-top, +.ios .navbar ~ .page:not(.no-navbar) .toolbar-top-ios, +.ios .navbars ~ .page:not(.no-navbar) .toolbar-top-ios, +.md .navbar ~ .page:not(.no-navbar) .toolbar-top-md, +.aurora .navbar ~ .page:not(.no-navbar) .toolbar-top-aurora { + top: calc(var(--f7-navbar-height) + var(--f7-safe-area-top)); +} +.navbar ~ .toolbar-top.toolbar-hidden, +.navbars ~ .toolbar-top.toolbar-hidden, +.ios .navbar ~ .toolbar-top-ios.toolbar-hidden, +.ios .navbars ~ .toolbar-top-ios.toolbar-hidden, +.md .navbar ~ .toolbar-top-md.toolbar-hidden, +.aurora .navbar ~ .toolbar-top-aurora.toolbar-hidden, +.navbar ~ * .toolbar-top.toolbar-hidden, +.navbars ~ * .toolbar-top.toolbar-hidden, +.ios .navbar ~ * .toolbar-top-ios.toolbar-hidden, +.ios .navbars ~ * .toolbar-top-ios.toolbar-hidden, +.md .navbar ~ * .toolbar-top-md.toolbar-hidden, +.aurora .navbar ~ * .toolbar-top-aurora.toolbar-hidden, +.navbar ~ .page:not(.no-navbar) .toolbar-top.toolbar-hidden, +.navbars ~ .page:not(.no-navbar) .toolbar-top.toolbar-hidden, +.ios .navbar ~ .page:not(.no-navbar) .toolbar-top-ios.toolbar-hidden, +.ios .navbars ~ .page:not(.no-navbar) .toolbar-top-ios.toolbar-hidden, +.md .navbar ~ .page:not(.no-navbar) .toolbar-top-md.toolbar-hidden, +.aurora .navbar ~ .page:not(.no-navbar) .toolbar-top-aurora.toolbar-hidden { + transform: translate3d(0, calc(-1 * (var(--f7-navbar-height) + var(--f7-toolbar-height) + var(--f7-safe-area-top))), 0); +} +.navbar ~ .toolbar-top.toolbar-hidden.tabbar-labels, +.navbars ~ .toolbar-top.toolbar-hidden.tabbar-labels, +.ios .navbar ~ .toolbar-top-ios.toolbar-hidden.tabbar-labels, +.ios .navbars ~ .toolbar-top-ios.toolbar-hidden.tabbar-labels, +.md .navbar ~ .toolbar-top-md.toolbar-hidden.tabbar-labels, +.aurora .navbar ~ .toolbar-top-aurora.toolbar-hidden.tabbar-labels, +.navbar ~ * .toolbar-top.toolbar-hidden.tabbar-labels, +.navbars ~ * .toolbar-top.toolbar-hidden.tabbar-labels, +.ios .navbar ~ * .toolbar-top-ios.toolbar-hidden.tabbar-labels, +.ios .navbars ~ * .toolbar-top-ios.toolbar-hidden.tabbar-labels, +.md .navbar ~ * .toolbar-top-md.toolbar-hidden.tabbar-labels, +.aurora .navbar ~ * .toolbar-top-aurora.toolbar-hidden.tabbar-labels, +.navbar ~ .page:not(.no-navbar) .toolbar-top.toolbar-hidden.tabbar-labels, +.navbars ~ .page:not(.no-navbar) .toolbar-top.toolbar-hidden.tabbar-labels, +.ios .navbar ~ .page:not(.no-navbar) .toolbar-top-ios.toolbar-hidden.tabbar-labels, +.ios .navbars ~ .page:not(.no-navbar) .toolbar-top-ios.toolbar-hidden.tabbar-labels, +.md .navbar ~ .page:not(.no-navbar) .toolbar-top-md.toolbar-hidden.tabbar-labels, +.aurora .navbar ~ .page:not(.no-navbar) .toolbar-top-aurora.toolbar-hidden.tabbar-labels { + transform: translate3d(0, calc(-1 * (var(--f7-navbar-height) + var(--f7-tabbar-labels-height) + var(--f7-safe-area-top))), 0); +} +.navbar-hidden + .toolbar-top:not(.toolbar-hidden), +.ios .navbar-hidden + .toolbar-top-ios:not(.toolbar-hidden), +.md .navbar-hidden + .toolbar-top-md:not(.toolbar-hidden), +.aurora .navbar-hidden + .toolbar-top-aurora:not(.toolbar-hidden), +.navbar-hidden ~ * .toolbar-top:not(.toolbar-hidden), +.ios .navbar-hidden ~ * .toolbar-top-ios:not(.toolbar-hidden), +.md .navbar-hidden ~ * .toolbar-top-md:not(.toolbar-hidden), +.aurora .navbar-hidden ~ * .toolbar-top-aurora:not(.toolbar-hidden) { + transform: translate3d(0, calc(0px - var(--f7-navbar-height)), 0); +} +.navbar-large-hidden + .toolbar-top:not(.toolbar-hidden), +.ios .navbar-large-hidden + .toolbar-top-ios:not(.toolbar-hidden), +.md .navbar-large-hidden + .toolbar-top-md:not(.toolbar-hidden), +.navbar-large-hidden ~ * .toolbar-top:not(.toolbar-hidden), +.ios .navbar-large-hidden ~ * .toolbar-top-ios:not(.toolbar-hidden), +.md .navbar-large-hidden ~ * .toolbar-top-md:not(.toolbar-hidden), +.aurora .navbar-large-hidden ~ * .toolbar-top-aurora:not(.toolbar-hidden) { + transform: translate3d(0, calc(0px - var(--f7-navbar-height) - var(--f7-navbar-large-title-height)), 0); +} +.ios .toolbar a.icon-only { + min-height: var(--f7-toolbar-height); + display: flex; + justify-content: center; + align-items: center; + margin: 0; + min-width: 44px; +} +.ios .tabbar-labels .tab-link, +.ios .tabbar-labels .link { + padding-top: 4px; + padding-bottom: 4px; +} +.ios .tabbar-labels .tab-link i + span, +.ios .tabbar-labels .link i + span { + margin: 0; +} +@media (min-width: 768px) and (min-height: 600px) { + .ios .tabbar .tab-link, + .ios .tabbar-labels .tab-link, + .ios .tabbar .link, + .ios .tabbar-labels .link { + justify-content: center; + flex-direction: row; + } + .ios .tabbar .tab-link i + span, + .ios .tabbar-labels .tab-link i + span, + .ios .tabbar .link i + span, + .ios .tabbar-labels .link i + span { + margin-left: 5px; + } +} +.ios .tabbar-scrollable .toolbar-inner { + justify-content: flex-start; +} +.ios .tabbar-scrollable .tab-link, +.ios .tabbar-scrollable .link { + padding: 0 8px; +} +.md .toolbar .link { + justify-content: center; + padding: 0 16px; + min-width: 48px; +} +.md .toolbar .link:before { + content: ''; + width: 152%; + height: 152%; + position: absolute; + left: -26%; + top: -26%; + background-image: radial-gradient(circle at center, var(--f7-link-highlight-color) 66%, rgba(255, 255, 255, 0) 66%); + background-repeat: no-repeat; + background-position: center; + background-size: 100% 100%; + opacity: 0; + pointer-events: none; + transition-duration: 600ms; +} +.md .toolbar .link.active-state:before { + opacity: 1; + transition-duration: 150ms; +} +.md .toolbar a.icon-only { + min-width: 0; + flex-shrink: 0; +} +.md .tabbar .tab-link, +.md .tabbar-labels .tab-link, +.md .tabbar .link, +.md .tabbar-labels .link { + padding-left: 0; + padding-right: 0; +} +.md .tabbar a.icon-only, +.md .tabbar-labels a.icon-only { + flex-shrink: initial; +} +.md .tabbar .tab-link, +.md .tabbar-labels .tab-link { + transition-duration: 300ms; + overflow: hidden; + position: relative; +} +.md .tabbar .tab-link-highlight, +.md .tabbar-labels .tab-link-highlight { + position: absolute; + height: 2px; + background: var(--f7-tabbar-link-active-border-color, var(--f7-theme-color)); + transition-duration: 300ms; + left: 0; +} +.md .tabbar-labels .tab-link, +.md .tabbar-labels .link { + padding-top: 7px; + padding-bottom: 7px; +} +.md .tabbar-label { + max-width: 100%; + overflow: hidden; + line-height: 1.2; +} +.md .tabbar-scrollable .toolbar-inner { + overflow: auto; +} +.md .tabbar-scrollable .tab-link, +.md .tabbar-scrollable .link { + padding: 0 16px; +} +.aurora .toolbar a.icon-only { + min-height: var(--f7-toolbar-height); + display: flex; + justify-content: center; + align-items: center; + margin: 0; +} +.aurora .tabbar .toolbar-inner, +.aurora .tabbar-labels .toolbar-inner { + padding-left: 0; + padding-right: 0; +} +.aurora .tabbar .tab-link, +.aurora .tabbar-labels .tab-link, +.aurora .tabbar .link, +.aurora .tabbar-labels .link { + transition-duration: 200ms; +} +.aurora .tabbar-labels .tab-link, +.aurora .tabbar-labels .link { + padding-top: 5px; + padding-bottom: 5px; +} +.aurora .tabbar-labels .tab-link i + span, +.aurora .tabbar-labels .link i + span { + margin: 0; +} +.aurora .tabbar-scrollable .toolbar-inner { + justify-content: flex-start; +} +.aurora .tabbar-scrollable .tab-link, +.aurora .tabbar-scrollable .link { + padding: 0 16px; +} +/* === Subnavbar === */ +:root { + /* + --f7-subnavbar-bg-image: var(--f7-bars-bg-image); + --f7-subnavbar-bg-color: var(--f7-bars-bg-color); + --f7-subnavbar-bg-color-rgb: var(--f7-bars-bg-color-rgb); + --f7-subnavbar-border-color: var(--f7-bars-border-color); + --f7-subnavbar-link-color: var(--f7-bars-link-color); + --f7-subnavbar-text-color: var(--f7-bars-text-color); + */ + --f7-subnavbar-title-line-height: 1.2; +} +.ios { + --f7-subnavbar-height: 44px; + --f7-subnavbar-inner-padding-left: 8px; + --f7-subnavbar-inner-padding-right: 8px; + --f7-subnavbar-title-font-size: 34px; + --f7-subnavbar-title-font-weight: 700; + --f7-subnavbar-title-letter-spacing: -0.03em; + --f7-subnavbar-title-margin-left: 8px; + --f7-subnavbar-shadow-image: none; + /* + --f7-subnavbar-link-height: var(--f7-subnavbar-height); + --f7-subnavbar-link-line-height: var(--f7-subnavbar-height); + */ +} +.md { + --f7-subnavbar-height: 48px; + --f7-subnavbar-inner-padding-left: 16px; + --f7-subnavbar-inner-padding-right: 16px; + --f7-subnavbar-title-font-size: 20px; + --f7-subnavbar-title-font-weight: 500; + --f7-subnavbar-title-letter-spacing: 0; + --f7-subnavbar-title-margin-left: 0px; + --f7-subnavbar-shadow-image: var(--f7-bars-shadow-bottom-image); + /* + --f7-subnavbar-link-height: var(--f7-subnavbar-height); + --f7-subnavbar-link-line-height: var(--f7-subnavbar-height); + */ +} +.aurora { + --f7-subnavbar-height: 38px; + --f7-subnavbar-inner-padding-left: 16px; + --f7-subnavbar-inner-padding-right: 16px; + --f7-subnavbar-title-font-size: 26px; + --f7-subnavbar-title-font-weight: bold; + --f7-subnavbar-title-letter-spacing: -0.03em; + --f7-subnavbar-title-margin-left: 0px; + --f7-subnavbar-shadow-image: none; + --f7-subnavbar-link-height: auto; + --f7-subnavbar-link-line-height: inherit; +} +.subnavbar { + width: 100%; + position: absolute; + left: 0; + top: 0; + z-index: 600; + box-sizing: border-box; + display: flex; + justify-content: space-between; + align-items: center; + background-image: var(--f7-subnavbar-bg-image, var(--f7-bars-bg-image)); + background-color: var(--f7-subnavbar-bg-color, var(--f7-bars-bg-color)); + color: var(--f7-subnavbar-text-color, var(--f7-bars-text-color)); +} +@supports ((-webkit-backdrop-filter: blur(20px)) or (backdrop-filter: blur(20px))) { + .ios-translucent-bars .subnavbar { + background-color: rgba(var(--f7-subnavbar-bg-color-rgb, var(--f7-bars-bg-color-rgb)), var(--f7-bars-translucent-opacity)); + -webkit-backdrop-filter: saturate(180%) blur(var(--f7-bars-translucent-blur)); + backdrop-filter: saturate(180%) blur(var(--f7-bars-translucent-blur)); + } +} +.subnavbar .subnavbar-title { + position: relative; + overflow: hidden; + text-overflow: ellpsis; + white-space: nowrap; + font-size: var(--f7-subnavbar-title-font-size); + font-weight: var(--f7-subnavbar-title-font-weight); + text-align: left; + display: inline-block; + line-height: var(--f7-subnavbar-title-line-height); + letter-spacing: var(--f7-subnavbar-title-letter-spacing); + margin-left: var(--f7-subnavbar-title-margin-left); +} +.subnavbar .left, +.subnavbar .right { + flex-shrink: 0; + display: flex; + justify-content: flex-start; + align-items: center; +} +.subnavbar .right:first-child { + position: absolute; + height: 100%; +} +.subnavbar a { + color: var(--f7-subnavbar-link-color, var(--f7-bars-link-color, var(--f7-theme-color))); +} +.subnavbar a.link { + line-height: var(--f7-subnavbar-link-line-height, var(--f7-subnavbar-height)); + height: var(--f7-subnavbar-link-height, var(--f7-subnavbar-height)); +} +.subnavbar a.icon-only { + min-width: var(--f7-subnavbar-height); +} +.subnavbar.no-hairline:after, +.subnavbar.no-border:after { + display: none !important; +} +.subnavbar.no-shadow:before, +.subnavbar.navbar-hidden:before { + display: none !important; +} +.subnavbar:after, +.subnavbar:before { + -webkit-backface-visibility: hidden; + backface-visibility: hidden; +} +.subnavbar:after { + content: ''; + position: absolute; + background-color: var(--f7-subnavbar-border-color, var(--f7-bars-border-color)); + display: block; + z-index: 15; + top: auto; + right: auto; + bottom: 0; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 100%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +.subnavbar:before { + content: ''; + position: absolute; + right: 0; + width: 100%; + top: 100%; + bottom: auto; + height: 8px; + pointer-events: none; + background: var(--f7-subnavbar-shadow-image); +} +.subnavbar-inner { + width: 100%; + height: 100%; + display: flex; + align-items: center; + box-sizing: border-box; + justify-content: space-between; + overflow: hidden; + padding: 0 calc(var(--f7-subnavbar-inner-padding-left) + var(--f7-safe-area-right)) 0 calc(var(--f7-subnavbar-inner-padding-right) + var(--f7-safe-area-left)); +} +.subnavbar-inner.stacked { + display: none; +} +.navbar .subnavbar { + top: 100%; +} +.views > .subnavbar, +.view > .subnavbar, +.page > .subnavbar { + position: absolute; +} +.navbar ~ * .subnavbar, +.navbars ~ * .subnavbar, +.page-with-subnavbar .navbar ~ .subnavbar, +.page-with-subnavbar .navbar ~ * .subnavbar, +.navbar ~ .page-with-subnavbar:not(.no-navbar) .subnavbar, +.navbar ~ .subnavbar, +.navbars ~ .page-with-subnavbar:not(.no-navbar) .subnavbar, +.navbars ~ .subnavbar { + top: calc(var(--f7-navbar-height) + var(--f7-safe-area-top)); +} +.navbar ~ .page-with-navbar-large:not(.no-navbar) .subnavbar, +.navbars ~ .page-with-navbar-large:not(.no-navbar) .subnavbar, +.page-with-subnavbar.page-with-navbar-large .navbar ~ .subnavbar, +.page-with-subnavbar.page-with-navbar-large .navbar ~ * .subnavbar, +.navbar .title-large ~ .subnavbar { + top: calc(var(--f7-navbar-height) + var(--f7-navbar-large-title-height) + var(--f7-safe-area-top)); + transform: translate3d(0, calc(-1 * var(--f7-navbar-large-collapse-progress) * var(--f7-navbar-large-title-height)), 0); +} +.page-with-subnavbar, +.subnavbar ~ * { + --f7-page-subnavbar-offset: var(--f7-subnavbar-height); +} +.ios .subnavbar { + height: calc(var(--f7-subnavbar-height) + 1px); + margin-top: -1px; + padding-top: 1px; +} +.ios .subnavbar .title { + align-self: flex-start; + flex-shrink: 10; +} +.ios .subnavbar .left a + a, +.ios .subnavbar .right a + a { + margin-left: 16px; +} +.ios .subnavbar .left { + margin-right: 10px; +} +.ios .subnavbar .right { + margin-left: 10px; +} +.ios .subnavbar .right:first-child { + right: 8px; +} +.ios .subnavbar a.link { + justify-content: flex-start; +} +.ios .subnavbar a.icon-only { + justify-content: center; + margin: 0; +} +.md .subnavbar { + height: var(--f7-subnavbar-height); +} +.md .subnavbar .right { + margin-left: auto; +} +.md .subnavbar .right:first-child { + right: 16px; +} +.md .subnavbar a.link { + justify-content: center; + padding: 0 16px; +} +.md .subnavbar a.link:before { + content: ''; + width: 152%; + height: 152%; + position: absolute; + left: -26%; + top: -26%; + background-image: radial-gradient(circle at center, var(--f7-link-highlight-color) 66%, rgba(255, 255, 255, 0) 66%); + background-repeat: no-repeat; + background-position: center; + background-size: 100% 100%; + opacity: 0; + pointer-events: none; + transition-duration: 600ms; +} +.md .subnavbar a.link.active-state:before { + opacity: 1; + transition-duration: 150ms; +} +.md .subnavbar a.icon-only { + flex-shrink: 0; +} +.md .subnavbar-inner > a.link:first-child { + margin-left: calc(-1 * var(--f7-subnavbar-inner-padding-left)); +} +.md .subnavbar-inner > a.link:last-child { + margin-right: calc(-1 * var(--f7-subnavbar-inner-padding-right)); +} +.aurora .subnavbar { + height: calc(var(--f7-subnavbar-height) + 1px); + margin-top: -1px; + padding-top: 1px; +} +.aurora .subnavbar .title { + align-self: flex-start; + flex-shrink: 10; +} +.aurora .subnavbar .left a + a, +.aurora .subnavbar .right a + a { + margin-left: 10px; +} +.aurora .subnavbar .left { + margin-right: 10px; +} +.aurora .subnavbar .right { + margin-left: 10px; +} +.aurora .subnavbar .right:first-child { + right: 16px; +} +.aurora .subnavbar a.link { + justify-content: flex-start; +} +.aurora .subnavbar a.icon-only { + justify-content: center; + margin: 0; +} +/* === Content Block === */ +:root { + --f7-block-padding-horizontal: 16px; + --f7-block-padding-vertical: 16px; + --f7-block-font-size: inherit; + --f7-block-text-color: inherit; + --f7-block-header-margin: 10px; + --f7-block-footer-margin: 10px; + --f7-block-header-font-size: 14px; + --f7-block-footer-font-size: 14px; + --f7-block-title-text-transform: none; + --f7-block-title-white-space: nowrap; + --f7-block-title-medium-text-transform: none; + --f7-block-title-large-text-transform: none; + --f7-block-inset-side-margin: 16px; + --f7-block-title-medium-text-color: #000; + --f7-block-title-large-text-color: #000; + --f7-block-strong-bg-color: #fff; +} +:root .theme-dark, +:root.theme-dark { + --f7-block-title-text-color: #fff; + --f7-block-strong-border-color: rgba(255, 255, 255, 0.15); + --f7-block-title-medium-text-color: #fff; + --f7-block-title-large-text-color: #fff; + --f7-block-strong-bg-color: #1c1c1d; +} +.ios { + --f7-block-margin-vertical: 35px; + --f7-block-strong-border-color: rgba(0, 0, 0, 0.22); + --f7-block-title-text-color: #000; + --f7-block-title-font-size: 16px; + --f7-block-title-font-weight: 600; + --f7-block-title-line-height: 20px; + --f7-block-title-margin-bottom: 10px; + --f7-block-title-medium-font-size: 22px; + --f7-block-title-medium-font-weight: bold; + --f7-block-title-medium-line-height: 1.4; + --f7-block-title-large-font-size: 30px; + --f7-block-title-large-font-weight: bold; + --f7-block-title-large-line-height: 1.3; + --f7-block-inset-border-radius: 8px; + --f7-block-strong-text-color: #000; + --f7-block-header-text-color: rgba(0, 0, 0, 0.45); + --f7-block-footer-text-color: rgba(0, 0, 0, 0.45); +} +.ios .theme-dark, +.ios.theme-dark { + --f7-block-header-text-color: rgba(255, 255, 255, 0.55); + --f7-block-footer-text-color: rgba(255, 255, 255, 0.55); + --f7-block-strong-text-color: #fff; +} +.md { + --f7-block-margin-vertical: 32px; + --f7-block-strong-text-color: inherit; + --f7-block-strong-border-color: rgba(0, 0, 0, 0.12); + --f7-block-title-font-size: inherit; + --f7-block-title-text-color: rgba(0, 0, 0, 0.54); + --f7-block-title-font-weight: 500; + --f7-block-title-line-height: 16px; + --f7-block-title-margin-bottom: 16px; + --f7-block-title-medium-font-size: 24px; + --f7-block-title-medium-font-weight: 500; + --f7-block-title-medium-line-height: 1.3; + --f7-block-title-large-font-size: 34px; + --f7-block-title-large-font-weight: 500; + --f7-block-title-large-line-height: 1.2; + --f7-block-inset-border-radius: 4px; + --f7-block-header-text-color: rgba(0, 0, 0, 0.54); + --f7-block-footer-text-color: rgba(0, 0, 0, 0.54); +} +.md .theme-dark, +.md.theme-dark { + --f7-block-header-text-color: rgba(255, 255, 255, 0.54); + --f7-block-footer-text-color: rgba(255, 255, 255, 0.54); +} +.aurora { + --f7-block-margin-vertical: 15px; + --f7-block-strong-border-color: rgba(0, 0, 0, 0.12); + --f7-block-title-font-size: inherit; + --f7-block-title-text-color: rgba(0, 0, 0, 0.7); + --f7-block-title-font-weight: 600; + --f7-block-title-line-height: 1.5; + --f7-block-title-margin-bottom: 5px; + --f7-block-title-medium-font-size: 20px; + --f7-block-title-medium-font-weight: 600; + --f7-block-title-medium-line-height: 1.4; + --f7-block-title-large-font-size: 28px; + --f7-block-title-large-font-weight: bold; + --f7-block-title-large-line-height: 1.3; + --f7-block-inset-border-radius: 4px; + --f7-block-strong-text-color: inherit; + --f7-block-header-text-color: rgba(0, 0, 0, 0.6); + --f7-block-footer-text-color: rgba(0, 0, 0, 0.6); +} +.aurora .theme-dark, +.aurora.theme-dark { + --f7-block-header-text-color: rgba(255, 255, 255, 0.54); + --f7-block-footer-text-color: rgba(255, 255, 255, 0.54); + --f7-block-strong-text-color: #fff; +} +.block { + box-sizing: border-box; + position: relative; + z-index: 1; + color: var(--f7-block-text-color); + margin: var(--f7-block-margin-vertical) 0; + padding-top: 0; + padding-bottom: 0; + padding-left: calc(var(--f7-block-padding-horizontal) + var(--f7-safe-area-left)); + padding-right: calc(var(--f7-block-padding-horizontal) + var(--f7-safe-area-right)); + font-size: var(--f7-block-font-size); +} +.block.no-hairlines:before, +.block.no-hairlines ul:before, +.md .block.no-hairlines-md:before, +.md .block.no-hairlines-md ul:before, +.ios .block.no-hairlines-ios:before, +.ios .block.no-hairlines-ios ul:before, +.aurora .block.no-hairlines-aurora:before, +.aurora .block.no-hairlines-aurora ul:before, +.block.no-hairlines:after, +.block.no-hairlines ul:after, +.md .block.no-hairlines-md:after, +.md .block.no-hairlines-md ul:after, +.ios .block.no-hairlines-ios:after, +.ios .block.no-hairlines-ios ul:after, +.aurora .block.no-hairlines-aurora:after, +.aurora .block.no-hairlines-aurora ul:after { + display: none !important; +} +.block.no-hairline-top:before, +.block.no-hairline-top ul:before, +.md .block.no-hairline-top-md:before, +.md .block.no-hairline-top-md ul:before, +.ios .block.no-hairline-top-ios:before, +.ios .block.no-hairline-top-ios ul:before, +.aurora .block.no-hairline-top-aurora:before, +.aurora .block.no-hairline-top-aurora ul:before { + display: none !important; +} +.block.no-hairline-bottom:after, +.block.no-hairline-bottom ul:after, +.md .block.no-hairline-bottom-md:after, +.md .block.no-hairline-bottom-md ul:after, +.ios .block.no-hairline-bottom-ios:after, +.ios .block.no-hairline-bottom-ios ul:after, +.aurora .block.no-hairline-bottom-aurora:after, +.aurora .block.no-hairline-bottom-aurora ul:after { + display: none !important; +} +.block > h1:first-child, +.block > h2:first-child, +.block > h3:first-child, +.block > h4:first-child, +.block > p:first-child { + margin-top: 0; +} +.block > h1:last-child, +.block > h2:last-child, +.block > h3:last-child, +.block > h4:last-child, +.block > p:last-child { + margin-bottom: 0; +} +.block-strong { + color: var(--f7-block-strong-text-color); + padding-top: var(--f7-block-padding-vertical); + padding-bottom: var(--f7-block-padding-vertical); + background-color: var(--f7-block-strong-bg-color); +} +.block-strong:before { + content: ''; + position: absolute; + background-color: var(--f7-block-strong-border-color); + display: block; + z-index: 15; + top: 0; + right: auto; + bottom: auto; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 0%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +.block-strong:after { + content: ''; + position: absolute; + background-color: var(--f7-block-strong-border-color); + display: block; + z-index: 15; + top: auto; + right: auto; + bottom: 0; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 100%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +.block-title { + position: relative; + overflow: hidden; + margin: 0; + white-space: var(--f7-block-title-white-space); + text-overflow: ellipsis; + text-transform: var(--f7-block-title-text-transform); + color: var(--f7-block-title-text-color); + font-size: var(--f7-block-title-font-size, inherit); + font-weight: var(--f7-block-title-font-weight); + line-height: var(--f7-block-title-line-height); + margin-top: var(--f7-block-margin-vertical); + margin-bottom: var(--f7-block-title-margin-bottom); + margin-left: calc(var(--f7-block-padding-horizontal) + var(--f7-safe-area-left)); + margin-right: calc(var(--f7-block-padding-horizontal) + var(--f7-safe-area-right)); +} +.block-title + .list, +.block-title + .block, +.block-title + .card, +.block-title + .timeline, +.block-title + .block-header { + margin-top: 0px; +} +.block-title-medium { + font-size: var(--f7-block-title-medium-font-size); + text-transform: var(--f7-block-title-medium-text-transform); + color: var(--f7-block-title-medium-text-color); + font-weight: var(--f7-block-title-medium-font-weight); + line-height: var(--f7-block-title-medium-line-height); +} +.block-title-large { + font-size: var(--f7-block-title-large-font-size); + text-transform: var(--f7-block-title-large-text-transform); + color: var(--f7-block-title-large-text-color); + font-weight: var(--f7-block-title-large-font-weight); + line-height: var(--f7-block-title-large-line-height); +} +.block > .block-title:first-child, +.list > .block-title:first-child { + margin-top: 0; + margin-left: 0; + margin-right: 0; +} +.block-header { + color: var(--f7-block-header-text-color); + font-size: var(--f7-block-header-font-size); + margin-bottom: var(--f7-block-header-margin); + margin-top: var(--f7-block-margin-vertical); +} +.block-header + .list, +.block-header + .block, +.block-header + .card, +.block-header + .timeline { + margin-top: var(--f7-block-header-margin); +} +.block-footer { + color: var(--f7-block-footer-text-color); + font-size: var(--f7-block-footer-font-size); + margin-top: var(--f7-block-footer-margin); + margin-bottom: var(--f7-block-margin-vertical); +} +.block-footer, +.block-header { + padding-top: 0; + padding-bottom: 0; + padding-left: calc(var(--f7-block-padding-horizontal) + var(--f7-safe-area-left)); + padding-right: calc(var(--f7-block-padding-horizontal) + var(--f7-safe-area-right)); +} +.block-footer ul:first-child, +.block-header ul:first-child, +.block-footer p:first-child, +.block-header p:first-child, +.block-footer h1:first-child, +.block-header h1:first-child, +.block-footer h2:first-child, +.block-header h2:first-child, +.block-footer h3:first-child, +.block-header h3:first-child, +.block-footer h4:first-child, +.block-header h4:first-child { + margin-top: 0; +} +.block-footer ul:last-child, +.block-header ul:last-child, +.block-footer p:last-child, +.block-header p:last-child, +.block-footer h1:last-child, +.block-header h1:last-child, +.block-footer h2:last-child, +.block-header h2:last-child, +.block-footer h3:last-child, +.block-header h3:last-child, +.block-footer h4:last-child, +.block-header h4:last-child { + margin-bottom: 0; +} +.block-footer ul:first-child:last-child, +.block-header ul:first-child:last-child, +.block-footer p:first-child:last-child, +.block-header p:first-child:last-child, +.block-footer h1:first-child:last-child, +.block-header h1:first-child:last-child, +.block-footer h2:first-child:last-child, +.block-header h2:first-child:last-child, +.block-footer h3:first-child:last-child, +.block-header h3:first-child:last-child, +.block-footer h4:first-child:last-child, +.block-header h4:first-child:last-child { + margin-top: 0; + margin-bottom: 0; +} +.list .block-header, +.block .block-header, +.card .block-header, +.timeline .block-header { + margin-top: 0; +} +.list .block-footer, +.block .block-footer, +.card .block-footer, +.timeline .block-footer { + margin-bottom: 0; +} +.list + .block-footer, +.block + .block-footer, +.card + .block-footer, +.timeline + .block-footer { + margin-top: calc(-1 * (var(--f7-block-margin-vertical) - var(--f7-block-footer-margin))); +} +.block + .block-footer { + margin-top: calc(-1 * (var(--f7-block-margin-vertical) - var(--f7-block-footer-margin))); + margin-bottom: var(--f7-block-margin-vertical); +} +.block .block-header, +.block .block-footer { + padding: 0; +} +.block.inset { + border-radius: var(--f7-block-inset-border-radius); + margin-left: calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-left)); + margin-right: calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-right)); + --f7-safe-area-left: 0px; + --f7-safe-area-right: 0px; +} +.block-strong.inset:before, +.block-strong.inset:after { + display: none !important; +} +@media (min-width: 480px) { + .block.xsmall-inset { + border-radius: var(--f7-block-inset-border-radius); + margin-left: calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-left)); + margin-right: calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-right)); + --f7-safe-area-left: 0px; + --f7-safe-area-right: 0px; + } + .block-strong.xsmall-inset:before, + .block-strong.xsmall-inset:after { + display: none !important; + } +} +@media (min-width: 568px) { + .block.small-inset { + border-radius: var(--f7-block-inset-border-radius); + margin-left: calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-left)); + margin-right: calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-right)); + --f7-safe-area-left: 0px; + --f7-safe-area-right: 0px; + } + .block-strong.small-inset:before, + .block-strong.small-inset:after { + display: none !important; + } +} +@media (min-width: 768px) { + .block.medium-inset { + border-radius: var(--f7-block-inset-border-radius); + margin-left: calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-left)); + margin-right: calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-right)); + --f7-safe-area-left: 0px; + --f7-safe-area-right: 0px; + } + .block-strong.medium-inset:before, + .block-strong.medium-inset:after { + display: none !important; + } +} +@media (min-width: 1024px) { + .block.large-inset { + border-radius: var(--f7-block-inset-border-radius); + margin-left: calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-left)); + margin-right: calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-right)); + --f7-safe-area-left: 0px; + --f7-safe-area-right: 0px; + } + .block-strong.large-inset:before, + .block-strong.large-inset:after { + display: none !important; + } +} +@media (min-width: 1200px) { + .block.xlarge-inset { + border-radius: var(--f7-block-inset-border-radius); + margin-left: calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-left)); + margin-right: calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-right)); + --f7-safe-area-left: 0px; + --f7-safe-area-right: 0px; + } + .block-strong.xlarge-inset:before, + .block-strong.xlarge-inset:after { + display: none !important; + } +} +/* === List View === */ +:root { + --f7-list-inset-side-margin: 16px; + --f7-list-item-cell-margin: 16px; + --f7-list-item-padding-horizontal: 16px; + --f7-list-media-item-padding-horizontal: 16px; + --f7-list-item-text-max-lines: 2; + --f7-list-chevron-icon-font-size: 20px; + --f7-list-item-title-font-size: inherit; + --f7-list-item-title-font-weight: 400; + --f7-list-item-title-text-color: inherit; + --f7-list-item-title-line-height: inherit; + --f7-list-item-title-white-space: nowrap; + --f7-list-item-subtitle-font-weight: 400; + --f7-list-item-subtitle-text-color: inherit; + --f7-list-item-subtitle-line-height: inherit; + --f7-list-item-text-font-weight: 400; + --f7-list-item-after-font-weight: 400; + --f7-list-item-header-text-color: inherit; + --f7-list-item-header-font-size: 12px; + --f7-list-item-header-font-weight: 400; + --f7-list-item-header-line-height: 1.2; + --f7-list-item-footer-font-size: 12px; + --f7-list-item-footer-font-weight: 400; + --f7-list-item-footer-line-height: 1.2; + --f7-list-button-font-size: inherit; + --f7-list-button-font-weight: 400; + --f7-list-item-divider-line-height: inherit; + --f7-list-group-title-line-height: inherit; + --f7-list-bg-color: #fff; + --f7-list-chevron-icon-color: rgba(0, 0, 0, 0.2); +} +:root .theme-dark, +:root.theme-dark { + --f7-list-button-border-color: rgba(255, 255, 255, 0.15); + --f7-list-bg-color: #1c1c1d; + --f7-list-border-color: rgba(255, 255, 255, 0.15); + --f7-list-item-border-color: rgba(255, 255, 255, 0.15); + --f7-list-item-divider-border-color: rgba(255, 255, 255, 0.15); + --f7-list-item-divider-bg-color: #232323; + --f7-list-group-title-bg-color: #232323; + --f7-list-chevron-icon-color: rgba(255, 255, 255, 0.3); +} +.ios { + --f7-list-in-list-padding-left: 30px; + --f7-list-inset-border-radius: 8px; + --f7-list-margin-vertical: 35px; + --f7-list-font-size: 17px; + --f7-list-chevron-icon-area: 20px; + --f7-list-border-color: rgba(0, 0, 0, 0.22); + --f7-list-item-border-color: rgba(0, 0, 0, 0.22); + --f7-list-link-pressed-bg-color: rgba(0, 0, 0, 0.15); + --f7-list-item-subtitle-font-size: 15px; + --f7-list-item-text-font-size: 15px; + --f7-list-item-text-line-height: 21px; + --f7-list-item-after-font-size: inherit; + --f7-list-item-after-line-height: inherit; + --f7-list-item-after-padding: 5px; + --f7-list-item-min-height: 44px; + --f7-list-item-media-margin: 16px; + --f7-list-item-media-icons-margin: 5px; + --f7-list-item-padding-vertical: 8px; + --f7-list-media-item-padding-vertical: 10px; + --f7-list-media-item-title-font-weight: 600; + /* + --f7-list-button-text-color: var(--f7-theme-color); + */ + --f7-list-button-text-align: center; + --f7-list-button-border-color: rgba(0, 0, 0, 0.22); + --f7-list-item-divider-height: 31px; + --f7-list-item-divider-font-size: inherit; + --f7-list-item-divider-font-weight: 400; + --f7-list-item-divider-bg-color: rgba(0, 0, 0, 0.03); + --f7-list-item-divider-border-color: rgba(0, 0, 0, 0.22); + --f7-list-group-title-height: 31px; + --f7-list-group-title-font-size: inherit; + --f7-list-group-title-font-weight: 400; + --f7-list-group-title-bg-color: #f7f7f7; + --f7-list-item-after-text-color: rgba(0, 0, 0, 0.45); + --f7-list-item-footer-text-color: rgba(0, 0, 0, 0.45); + --f7-list-item-text-text-color: rgba(0, 0, 0, 0.45); + --f7-list-item-divider-text-color: rgba(0, 0, 0, 0.45); + --f7-list-group-title-text-color: rgba(0, 0, 0, 0.45); + --f7-list-button-pressed-bg-color: rgba(0, 0, 0, 0.15); +} +.ios .theme-dark, +.ios.theme-dark { + --f7-list-item-after-text-color: rgba(255, 255, 255, 0.55); + --f7-list-item-header-text-color: rgba(255, 255, 255, 0.55); + --f7-list-item-footer-text-color: rgba(255, 255, 255, 0.55); + --f7-list-item-text-text-color: rgba(255, 255, 255, 0.55); + --f7-list-item-divider-text-color: rgba(255, 255, 255, 0.55); + --f7-list-group-title-text-color: rgba(255, 255, 255, 0.55); + --f7-list-link-pressed-bg-color: rgba(255, 255, 255, 0.08); + --f7-list-button-pressed-bg-color: rgba(255, 255, 255, 0.08); +} +.md { + --f7-list-in-list-padding-left: 40px; + --f7-list-inset-border-radius: 4px; + --f7-list-margin-vertical: 32px; + --f7-list-font-size: 16px; + --f7-list-chevron-icon-area: 26px; + --f7-list-border-color: rgba(0, 0, 0, 0.12); + --f7-list-item-border-color: rgba(0, 0, 0, 0.12); + --f7-list-item-subtitle-font-size: 14px; + --f7-list-item-text-font-size: 14px; + --f7-list-item-text-line-height: 20px; + --f7-list-item-after-font-size: 14px; + --f7-list-item-after-line-height: inherit; + --f7-list-item-after-padding: 8px; + --f7-list-item-min-height: 48px; + --f7-list-item-media-margin: 16px; + --f7-list-item-media-icons-margin: 8px; + --f7-list-item-padding-vertical: 8px; + --f7-list-media-item-padding-vertical: 14px; + /* + --f7-list-media-item-title-font-weight: var(--f7-list-item-title-font-weight); + */ + --f7-list-button-text-align: left; + --f7-list-button-border-color: transparent; + --f7-list-item-divider-height: 48px; + --f7-list-item-divider-font-size: 14px; + --f7-list-item-divider-font-weight: 400; + --f7-list-item-divider-bg-color: #f4f4f4; + --f7-list-item-divider-border-color: transparent; + --f7-list-group-title-height: 48px; + --f7-list-group-title-font-size: 14px; + --f7-list-group-title-font-weight: 400; + --f7-list-group-title-bg-color: #f4f4f4; + --f7-list-link-pressed-bg-color: rgba(0, 0, 0, 0.1); + --f7-list-item-text-text-color: rgba(0, 0, 0, 0.54); + --f7-list-item-after-text-color: rgba(0, 0, 0, 0.54); + --f7-list-item-footer-text-color: rgba(0, 0, 0, 0.5); + --f7-list-button-text-color: #212121; + --f7-list-button-pressed-bg-color: rgba(0, 0, 0, 0.1); + --f7-list-item-divider-text-color: rgba(0, 0, 0, 0.54); + --f7-list-group-title-text-color: rgba(0, 0, 0, 0.54); +} +.md .theme-dark, +.md.theme-dark { + --f7-list-button-text-color: #fff; + --f7-list-item-divider-text-color: #fff; + --f7-list-group-title-text-color: #fff; + --f7-list-link-pressed-bg-color: rgba(255, 255, 255, 0.05); + --f7-list-button-pressed-bg-color: rgba(255, 255, 255, 0.05); + --f7-list-item-text-text-color: rgba(255, 255, 255, 0.54); + --f7-list-item-after-text-color: rgba(255, 255, 255, 0.54); + --f7-list-item-footer-text-color: rgba(255, 255, 255, 0.54); +} +.aurora { + --f7-list-in-list-padding-left: 16px; + --f7-list-inset-border-radius: 4px; + --f7-list-margin-vertical: 15px; + --f7-list-font-size: 14px; + --f7-list-chevron-icon-area: 15px; + --f7-list-chevron-icon-font-size: 16px; + --f7-list-border-color: rgba(0, 0, 0, 0.12); + --f7-list-item-border-color: rgba(0, 0, 0, 0.12); + --f7-list-item-title-line-height: 1.3; + --f7-list-item-subtitle-font-size: 14px; + --f7-list-item-subtitle-line-height: 1.3; + --f7-list-item-text-font-size: 12px; + --f7-list-item-text-line-height: 16px; + --f7-list-item-after-font-size: 13px; + --f7-list-item-after-line-height: 1.2; + --f7-list-item-after-padding: 5px; + --f7-list-item-min-height: 32px; + --f7-list-item-media-margin: 10px; + --f7-list-item-media-icons-margin: 5px; + --f7-list-item-padding-vertical: 5px; + --f7-list-media-item-padding-vertical: 5px; + --f7-list-media-item-title-font-weight: 600; + /* + --f7-list-button-text-color: var(--f7-theme-color); + */ + --f7-list-button-text-align: center; + --f7-list-button-border-color: rgba(0, 0, 0, 0.12); + --f7-list-item-divider-height: 19px; + --f7-list-item-divider-font-size: inherit; + --f7-list-item-divider-font-weight: 500; + --f7-list-item-divider-bg-color: rgba(0, 0, 0, 0.03); + --f7-list-item-divider-border-color: transparent; + --f7-list-group-title-height: 19px; + --f7-list-group-title-font-size: inherit; + --f7-list-group-title-font-weight: 500; + --f7-list-group-title-bg-color: #f7f7f7; + --f7-list-link-pressed-bg-color: rgba(0, 0, 0, 0.1); + --f7-list-link-hover-bg-color: rgba(0, 0, 0, 0.03); + --f7-list-item-text-text-color: rgba(0, 0, 0, 0.6); + --f7-list-item-after-text-color: rgba(0, 0, 0, 0.5); + --f7-list-item-footer-text-color: rgba(0, 0, 0, 0.6); + --f7-list-button-pressed-bg-color: rgba(0, 0, 0, 0.1); + --f7-list-button-hover-bg-color: rgba(0, 0, 0, 0.03); + --f7-list-item-divider-text-color: rgba(0, 0, 0, 0.6); + --f7-list-group-title-text-color: rgba(0, 0, 0, 0.6); +} +.aurora .theme-dark, +.aurora.theme-dark { + --f7-list-item-text-text-color: rgba(255, 255, 255, 0.54); + --f7-list-item-after-text-color: rgba(255, 255, 255, 0.54); + --f7-list-item-footer-text-color: rgba(255, 255, 255, 0.54); + --f7-list-item-divider-text-color: rgba(255, 255, 255, 0.6); + --f7-list-group-title-text-color: rgba(255, 255, 255, 0.6); + --f7-list-link-pressed-bg-color: rgba(255, 255, 255, 0.05); + --f7-list-link-hover-bg-color: rgba(255, 255, 255, 0.03); + --f7-list-button-pressed-bg-color: rgba(255, 255, 255, 0.05); + --f7-list-button-hover-bg-color: rgba(255, 255, 255, 0.03); +} +:root { + --f7-list-chevron-icon-left: 'chevron_left'; + --f7-list-chevron-icon-right: 'chevron_right'; +} +.aurora { + --f7-list-chevron-icon-left: 'chevron_left_aurora'; + --f7-list-chevron-icon-right: 'chevron_right_aurora'; +} +.list { + position: relative; + z-index: 1; + font-size: var(--f7-list-font-size); + margin: var(--f7-list-margin-vertical) 0; +} +.list ul { + list-style: none; + margin: 0; + padding: 0; + position: relative; + background: var(--f7-list-bg-color); +} +.list ul:before { + content: ''; + position: absolute; + background-color: var(--f7-list-border-color); + display: block; + z-index: 15; + top: 0; + right: auto; + bottom: auto; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 0%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +.list ul:after { + content: ''; + position: absolute; + background-color: var(--f7-list-border-color); + display: block; + z-index: 15; + top: auto; + right: auto; + bottom: 0; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 100%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +.list ul ul { + padding-left: calc(var(--f7-list-item-padding-horizontal) + var(--f7-list-in-list-padding-left)); +} +.list ul ul:before, +.list ul ul:after { + display: none !important; +} +.list li { + position: relative; + box-sizing: border-box; +} +.list .item-media { + display: flex; + flex-shrink: 0; + flex-wrap: nowrap; + align-items: center; + box-sizing: border-box; + padding-bottom: var(--f7-list-item-padding-vertical); + padding-top: var(--f7-list-item-padding-vertical); +} +.list .item-media + .item-inner { + margin-left: var(--f7-list-item-media-margin); +} +.list .item-media i + i, +.list .item-media i + img { + margin-left: var(--f7-list-item-media-icons-margin); +} +.list .item-after { + padding-left: var(--f7-list-item-after-padding); +} +.list .item-inner { + position: relative; + width: 100%; + min-width: 0; + display: flex; + justify-content: space-between; + box-sizing: border-box; + align-items: center; + align-self: stretch; + padding-top: var(--f7-list-item-padding-vertical); + padding-bottom: var(--f7-list-item-padding-vertical); + min-height: var(--f7-list-item-min-height); + padding-right: calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-right)); +} +.list .item-title { + min-width: 0; + flex-shrink: 1; + white-space: var(--f7-list-item-title-white-space); + position: relative; + overflow: hidden; + text-overflow: ellipsis; + max-width: 100%; + font-size: var(--f7-list-item-title-font-size); + font-weight: var(--f7-list-item-title-font-weight); + color: var(--f7-list-item-title-text-color); + line-height: var(--f7-list-item-title-line-height); +} +.list .item-after { + white-space: nowrap; + flex-shrink: 0; + display: flex; + font-size: var(--f7-list-item-after-font-size); + font-weight: var(--f7-list-item-after-font-weight); + color: var(--f7-list-item-after-text-color); + line-height: var(--f7-list-item-after-line-height); + margin-left: auto; +} +.list .item-header, +.list .item-footer { + white-space: normal; +} +.list .item-header { + color: var(--f7-list-item-header-text-color); + font-size: var(--f7-list-item-header-font-size); + font-weight: var(--f7-list-item-header-font-weight); + line-height: var(--f7-list-item-header-line-height); +} +.list .item-footer { + color: var(--f7-list-item-footer-text-color); + font-size: var(--f7-list-item-footer-font-size); + font-weight: var(--f7-list-item-footer-font-weight); + line-height: var(--f7-list-item-footer-line-height); +} +.list .item-link, +.list .list-button { + transition-duration: 300ms; + transition-property: background-color; + display: block; + position: relative; + overflow: hidden; + z-index: 0; +} +.list .item-link { + color: inherit; +} +.list .item-link.active-state { + background-color: var(--f7-list-link-pressed-bg-color); +} +.list .item-link .item-inner { + padding-right: calc(var(--f7-list-chevron-icon-area) + var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-right)); +} +.list .item-content { + display: flex; + justify-content: space-between; + box-sizing: border-box; + align-items: center; + min-height: var(--f7-list-item-min-height); + padding-left: calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-left)); +} +.list .item-subtitle { + position: relative; + overflow: hidden; + white-space: nowrap; + max-width: 100%; + text-overflow: ellipsis; + font-size: var(--f7-list-item-subtitle-font-size); + font-weight: var(--f7-list-item-subtitle-font-weight); + color: var(--f7-list-item-subtitle-text-color); + line-height: var(--f7-list-item-subtitle-line-height); +} +.list .item-text { + position: relative; + overflow: hidden; + text-overflow: ellipsis; + /* autoprefixer: ignore next */ + -webkit-line-clamp: var(--f7-list-item-text-max-lines); + /* autoprefixer: ignore next */ + -webkit-box-orient: vertical; + display: -webkit-box; + font-size: var(--f7-list-item-text-font-size); + font-weight: var(--f7-list-item-text-font-weight); + color: var(--f7-list-item-text-text-color); + line-height: var(--f7-list-item-text-line-height); + max-height: calc(var(--f7-list-item-text-line-height) * var(--f7-list-item-text-max-lines)); +} +.list .item-title-row { + position: relative; + display: flex; + justify-content: space-between; + box-sizing: border-box; +} +.list .item-title-row .item-after { + align-self: center; +} +.list .item-row { + display: flex; + justify-content: space-between; + box-sizing: border-box; +} +.list .item-cell { + display: block; + align-self: center; + box-sizing: border-box; + width: 100%; + min-width: 0; + margin-left: var(--f7-list-item-cell-margin); + flex-shrink: 1; +} +.list .item-cell:first-child { + margin-left: 0; +} +.list .ripple-wave + .item-cell { + margin-left: 0; +} +.list li:last-child .list-button:after { + display: none !important; +} +.list li:last-child > .item-inner:after, +.list li:last-child li:last-child > .item-inner:after, +.list li:last-child > .item-content > .item-inner:after, +.list li:last-child li:last-child > .item-content > .item-inner:after, +.list li:last-child > .swipeout-content > .item-content > .item-inner:after, +.list li:last-child li:last-child > .swipeout-content > .item-content > .item-inner:after, +.list li:last-child > .item-link > .item-content > .item-inner:after, +.list li:last-child li:last-child > .item-link > .item-content > .item-inner:after { + display: none !important; +} +.list li li:last-child .item-inner:after, +.list li:last-child li .item-inner:after { + content: ''; + position: absolute; + background-color: var(--f7-list-item-border-color); + display: block; + z-index: 15; + top: auto; + right: auto; + bottom: 0; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 100%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +.list.no-hairlines:before, +.list.no-hairlines ul:before, +.md .list.no-hairlines-md:before, +.md .list.no-hairlines-md ul:before, +.ios .list.no-hairlines-ios:before, +.ios .list.no-hairlines-ios ul:before, +.aurora .list.no-hairlines-aurora:before, +.aurora .list.no-hairlines-aurora ul:before, +.list.no-hairlines:after, +.list.no-hairlines ul:after, +.md .list.no-hairlines-md:after, +.md .list.no-hairlines-md ul:after, +.ios .list.no-hairlines-ios:after, +.ios .list.no-hairlines-ios ul:after, +.aurora .list.no-hairlines-aurora:after, +.aurora .list.no-hairlines-aurora ul:after { + display: none !important; +} +.list.no-hairline-top:before, +.list.no-hairline-top ul:before, +.md .list.no-hairline-top-md:before, +.md .list.no-hairline-top-md ul:before, +.ios .list.no-hairline-top-ios:before, +.ios .list.no-hairline-top-ios ul:before, +.aurora .list.no-hairline-top-aurora:before, +.aurora .list.no-hairline-top-aurora ul:before { + display: none !important; +} +.list.no-hairline-bottom:after, +.list.no-hairline-bottom ul:after, +.md .list.no-hairline-bottom-md:after, +.md .list.no-hairline-bottom-md ul:after, +.ios .list.no-hairline-bottom-ios:after, +.ios .list.no-hairline-bottom-ios ul:after, +.aurora .list.no-hairline-bottom-aurora:after, +.aurora .list.no-hairline-bottom-aurora ul:after { + display: none !important; +} +.list.no-hairlines-between .item-inner:after, +.md .list.no-hairlines-between-md .item-inner:after, +.ios .list.no-hairlines-between-ios .item-inner:after, +.aurora .list.no-hairlines-between-aurora .item-inner:after, +.list.no-hairlines-between .list-button:after, +.md .list.no-hairlines-between-md .list-button:after, +.ios .list.no-hairlines-between-ios .list-button:after, +.aurora .list.no-hairlines-between-aurora .list-button:after, +.list.no-hairlines-between .item-divider:after, +.md .list.no-hairlines-between-md .item-divider:after, +.ios .list.no-hairlines-between-ios .item-divider:after, +.aurora .list.no-hairlines-between-aurora .item-divider:after, +.list.no-hairlines-between .list-group-title:after, +.md .list.no-hairlines-between-md .list-group-title:after, +.ios .list.no-hairlines-between-ios .list-group-title:after, +.aurora .list.no-hairlines-between-aurora .list-group-title:after, +.list.no-hairlines-between .list-group-title:after, +.md .list.no-hairlines-between-md .list-group-title:after, +.ios .list.no-hairlines-between-ios .list-group-title:after, +.aurora .list.no-hairlines-between-aurora .list-group-title:after { + display: none !important; +} +.list.no-hairlines-between.simple-list li:after, +.md .list.no-hairlines-between-md.simple-list li:after, +.ios .list.no-hairlines-between-ios.simple-list li:after, +.aurora .list.no-hairlines-between-aurora.simple-list li:after { + display: none !important; +} +.list.no-hairlines-between.links-list a:after, +.md .list.no-hairlines-between-md.links-list a:after, +.ios .list.no-hairlines-between-ios.links-list a:after, +.aurora .list.no-hairlines-between-aurora.links-list a:after { + display: none !important; +} +.list-button { + padding: 0 var(--f7-list-item-padding-horizontal); + line-height: var(--f7-list-item-min-height); + color: var(--f7-list-button-text-color, var(--f7-theme-color)); + font-size: var(--f7-list-button-font-size); + font-weight: var(--f7-list-button-font-weight); + text-align: var(--f7-list-button-text-align); +} +.list-button:after { + content: ''; + position: absolute; + background-color: var(--f7-list-button-border-color); + display: block; + z-index: 15; + top: auto; + right: auto; + bottom: 0; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 100%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +.list-button.active-state { + background-color: var(--f7-list-button-pressed-bg-color); +} +.list-button[class*="color-"] { + --f7-list-button-text-color: var(--f7-theme-color); +} +.simple-list li { + position: relative; + white-space: nowrap; + text-overflow: ellipsis; + max-width: 100%; + box-sizing: border-box; + display: flex; + justify-content: space-between; + align-items: center; + align-content: center; + line-height: var(--f7-list-item-min-height); + height: var(--f7-list-item-min-height); + padding-left: calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-left)); + padding-right: calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-right)); +} +.simple-list li:after { + left: var(--f7-list-item-padding-horizontal); + width: auto; + left: calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-left)); + right: 0; +} +.simple-list li:last-child:after { + display: none !important; +} +.links-list li { + z-index: 1; +} +.links-list a { + transition-duration: 300ms; + transition-property: background-color; + display: block; + position: relative; + overflow: hidden; + display: flex; + align-items: center; + align-content: center; + justify-content: space-between; + box-sizing: border-box; + white-space: nowrap; + text-overflow: ellipsis; + max-width: 100%; + height: var(--f7-list-item-min-height); + color: inherit; +} +.links-list a .ripple-wave { + z-index: 0; +} +.links-list a:after { + width: auto; +} +.links-list a.active-state { + background-color: var(--f7-list-link-pressed-bg-color); +} +.links-list a { + padding-left: calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-left)); + padding-right: calc(var(--f7-list-chevron-icon-area) + var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-right)); +} +.links-list a:after { + left: calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-left)); + right: 0; +} +.links-list li:last-child a:after { + display: none !important; +} +.simple-list li:after, +.links-list a:after, +.list .item-inner:after { + content: ''; + position: absolute; + background-color: var(--f7-list-item-border-color); + display: block; + z-index: 15; + top: auto; + right: auto; + bottom: 0; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 100%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +.media-list, +li.media-item { + --f7-list-item-padding-vertical: var(--f7-list-media-item-padding-vertical); + --f7-list-item-padding-horizontal: var(--f7-list-media-item-padding-horizontal); +} +.media-list .item-title, +li.media-item .item-title { + font-weight: var(--f7-list-media-item-title-font-weight, var(--f7-list-item-title-font-weight, inherit)); +} +.media-list .item-inner, +li.media-item .item-inner { + display: block; + align-self: stretch; +} +.media-list .item-media, +li.media-item .item-media { + align-self: flex-start; +} +.media-list .item-media img, +li.media-item .item-media img { + display: block; +} +.media-list .item-link .item-inner, +li.media-item .item-link .item-inner { + padding-right: calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-right)); +} +.media-list .item-link .item-title-row, +li.media-item .item-link .item-title-row { + padding-right: calc(var(--f7-list-chevron-icon-area)); +} +.media-list.chevron-center .item-link .item-inner, +.media-list .chevron-center .item-link .item-inner, +.media-list .item-link.chevron-center .item-inner, +li.media-item.chevron-center .item-link .item-inner, +li.media-item .item-link.chevron-center .item-inner, +li.media-item .chevron-center .item-link .item-inner { + padding-right: calc(var(--f7-list-chevron-icon-area) + var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-right)); +} +.media-list.chevron-center .item-title-row, +.media-list .chevron-center .item-title-row, +li.media-item.chevron-center .item-title-row, +li.media-item .chevron-center .item-title-row { + padding-right: 0; +} +.list .item-link .item-inner:before, +.links-list a:before, +.media-list .item-link .item-title-row:before, +li.media-item .item-link .item-title-row:before, +.media-list.chevron-center .item-link .item-inner:before, +.media-list .chevron-center .item-link .item-inner:before, +.media-list .item-link.chevron-center .item-inner:before, +li.media-item.chevron-center .item-link .item-inner:before, +li.media-item .chevron-center .item-link .item-inner:before, +li.media-item .item-link.chevron-center .item-inner:before { + font-family: 'framework7-core-icons'; + font-weight: normal; + font-style: normal; + line-height: 1; + letter-spacing: normal; + text-transform: none; + white-space: nowrap; + word-wrap: normal; + direction: ltr; + -webkit-font-smoothing: antialiased; + text-rendering: optimizeLegibility; + -moz-osx-font-smoothing: grayscale; + font-feature-settings: "liga"; + text-align: center; + display: block; + width: 100%; + height: 100%; + font-size: 20px; + position: absolute; + top: 50%; + width: 8px; + height: 14px; + margin-top: -7px; + font-size: var(--f7-list-chevron-icon-font-size); + line-height: 14px; + color: var(--f7-list-chevron-icon-color); + pointer-events: none; + right: calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-right)); + content: var(--f7-list-chevron-icon-right); +} +.media-list.chevron-center .item-title-row:before, +.media-list .chevron-center .item-title-row:before, +li.media-item.chevron-center .item-title-row:before, +li.media-item .chevron-center .item-title-row:before { + display: none; +} +.media-list .item-link .item-inner:before, +li.media-item .item-link .item-inner:before { + display: none; +} +.media-list .item-link .item-title-row:before, +li.media-item .item-link .item-title-row:before { + right: 0; +} +.list-group ul:after, +.list-group ul:before { + z-index: 25 !important; +} +.list-group + .list-group ul:before { + display: none !important; +} +li.item-divider, +.item-divider, +li.list-group-title { + white-space: nowrap; + position: relative; + max-width: 100%; + text-overflow: ellipsis; + overflow: hidden; + z-index: 15; + padding-top: 0; + padding-bottom: 0; + padding-left: calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-left)); + padding-right: calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-right)); + box-sizing: border-box; + display: flex; + align-items: center; + align-content: center; +} +li.item-divider:after, +.item-divider:after, +li.list-group-title:after { + display: none !important; +} +li.item-divider, +.item-divider { + margin-top: -1px; + height: var(--f7-list-item-divider-height); + color: var(--f7-list-item-divider-text-color); + font-size: var(--f7-list-item-divider-font-size); + font-weight: var(--f7-list-item-divider-font-weight); + background-color: var(--f7-list-item-divider-bg-color); + line-height: var(--f7-list-item-divider-line-height); +} +li.item-divider:before, +.item-divider:before { + content: ''; + position: absolute; + background-color: var(--f7-list-item-divider-border-color); + display: block; + z-index: 15; + top: 0; + right: auto; + bottom: auto; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 0%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +li.list-group-title, +.list li.list-group-title { + position: relative; + position: -webkit-sticky; + position: sticky; + top: 0; + margin-top: 0; + z-index: 20; + height: var(--f7-list-group-title-height); + color: var(--f7-list-group-title-text-color); + font-size: var(--f7-list-group-title-font-size); + font-weight: var(--f7-list-group-title-font-weight); + background-color: var(--f7-list-group-title-bg-color); + line-height: var(--f7-list-group-title-line-height); +} +.page-with-navbar-large li.list-group-title, +.page-with-navbar-large .list li.list-group-title { + top: calc(-1 * var(--f7-navbar-large-title-height)); +} +.list.inset { + margin-left: calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-left)); + margin-right: calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-right)); + border-radius: var(--f7-list-inset-border-radius); + --f7-safe-area-left: 0px; + --f7-safe-area-right: 0px; +} +.list.inset .block-title { + margin-left: 0; + margin-right: 0; +} +.list.inset ul { + border-radius: var(--f7-list-inset-border-radius); +} +.list.inset ul:before, +.list.inset ul:after { + display: none !important; +} +.list.inset li.swipeout:first-child, +.list.inset li:first-child > a { + border-radius: var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius) 0 0; +} +.list.inset li.swipeout:last-child, +.list.inset li:last-child > a { + border-radius: 0 0 var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius); +} +.list.inset li.swipeout:first-child:last-child, +.list.inset li:first-child:last-child > a { + border-radius: var(--f7-list-inset-border-radius); +} +@media (min-width: 480px) { + .list.xsmall-inset { + margin-left: calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-left)); + margin-right: calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-right)); + border-radius: var(--f7-list-inset-border-radius); + --f7-safe-area-left: 0px; + --f7-safe-area-right: 0px; + } + .list.xsmall-inset .block-title { + margin-left: 0; + margin-right: 0; + } + .list.xsmall-inset ul { + border-radius: var(--f7-list-inset-border-radius); + } + .list.xsmall-inset ul:before, + .list.xsmall-inset ul:after { + display: none !important; + } + .list.xsmall-inset li:first-child > a { + border-radius: var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius) 0 0; + } + .list.xsmall-inset li:last-child > a { + border-radius: 0 0 var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius); + } + .list.xsmall-inset li:first-child:last-child > a { + border-radius: var(--f7-list-inset-border-radius); + } +} +@media (min-width: 568px) { + .list.small-inset { + margin-left: calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-left)); + margin-right: calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-right)); + border-radius: var(--f7-list-inset-border-radius); + --f7-safe-area-left: 0px; + --f7-safe-area-right: 0px; + } + .list.small-inset .block-title { + margin-left: 0; + margin-right: 0; + } + .list.small-inset ul { + border-radius: var(--f7-list-inset-border-radius); + } + .list.small-inset ul:before, + .list.small-inset ul:after { + display: none !important; + } + .list.small-inset li:first-child > a { + border-radius: var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius) 0 0; + } + .list.small-inset li:last-child > a { + border-radius: 0 0 var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius); + } + .list.small-inset li:first-child:last-child > a { + border-radius: var(--f7-list-inset-border-radius); + } +} +@media (min-width: 768px) { + .list.medium-inset { + margin-left: calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-left)); + margin-right: calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-right)); + border-radius: var(--f7-list-inset-border-radius); + --f7-safe-area-left: 0px; + --f7-safe-area-right: 0px; + } + .list.medium-inset .block-title { + margin-left: 0; + margin-right: 0; + } + .list.medium-inset ul { + border-radius: var(--f7-list-inset-border-radius); + } + .list.medium-inset ul:before, + .list.medium-inset ul:after { + display: none !important; + } + .list.medium-inset li:first-child > a { + border-radius: var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius) 0 0; + } + .list.medium-inset li:last-child > a { + border-radius: 0 0 var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius); + } + .list.medium-inset li:first-child:last-child > a { + border-radius: var(--f7-list-inset-border-radius); + } +} +@media (min-width: 1024px) { + .list.large-inset { + margin-left: calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-left)); + margin-right: calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-right)); + border-radius: var(--f7-list-inset-border-radius); + --f7-safe-area-left: 0px; + --f7-safe-area-right: 0px; + } + .list.large-inset .block-title { + margin-left: 0; + margin-right: 0; + } + .list.large-inset ul { + border-radius: var(--f7-list-inset-border-radius); + } + .list.large-inset ul:before, + .list.large-inset ul:after { + display: none !important; + } + .list.large-inset li:first-child > a { + border-radius: var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius) 0 0; + } + .list.large-inset li:last-child > a { + border-radius: 0 0 var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius); + } + .list.large-inset li:first-child:last-child > a { + border-radius: var(--f7-list-inset-border-radius); + } +} +@media (min-width: 1200px) { + .list.xlarge-inset { + margin-left: calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-left)); + margin-right: calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-right)); + border-radius: var(--f7-list-inset-border-radius); + --f7-safe-area-left: 0px; + --f7-safe-area-right: 0px; + } + .list.xlarge-inset .block-title { + margin-left: 0; + margin-right: 0; + } + .list.xlarge-inset ul { + border-radius: var(--f7-list-inset-border-radius); + } + .list.xlarge-inset ul:before, + .list.xlarge-inset ul:after { + display: none !important; + } + .list.xlarge-inset li:first-child > a { + border-radius: var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius) 0 0; + } + .list.xlarge-inset li:last-child > a { + border-radius: 0 0 var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius); + } + .list.xlarge-inset li:first-child:last-child > a { + border-radius: var(--f7-list-inset-border-radius); + } +} +.list.no-chevron, +.list .no-chevron { + --f7-list-chevron-icon-color: transparent; + --f7-list-chevron-icon-area: 0px; +} +.ios .item-link.active-state .item-inner:after, +.ios .list-button.active-state:after, +.ios .links-list a.active-state:after { + background-color: transparent; +} +.ios .links-list a.active-state, +.ios .list .item-link.active-state, +.ios .list .list-button.active-state { + transition-duration: 0ms; +} +.md .list .item-media { + min-width: 40px; +} +.aurora .list .item-media { + min-width: 18px; +} +.aurora .links-list a, +.aurora .list .item-link, +.aurora .list .list-button { + transition-duration: 0ms; +} +.aurora.device-desktop .links-list a:hover:not(.active-state):not(.no-hover), +.aurora.device-desktop .list .item-link:hover:not(.active-state):not(.no-hover) { + background: var(--f7-list-link-hover-bg-color); +} +.aurora.device-desktop .list .list-button:hover:not(.active-state):not(.no-hover) { + background: var(--f7-list-button-hover-bg-color); +} +/* === Badge === */ +:root { + --f7-badge-text-color: #fff; + --f7-badge-bg-color: #8e8e93; + --f7-badge-padding: 0 4px; + --f7-badge-in-icon-size: 16px; + --f7-badge-in-icon-font-size: 10px; + --f7-badge-font-weight: normal; + --f7-badge-font-size: 12px; +} +.ios { + --f7-badge-size: 20px; +} +.md { + --f7-badge-size: 18px; +} +.aurora { + --f7-badge-size: 18px; + --f7-badge-font-weight: 600; + --f7-badge-in-icon-size: 15px; +} +.badge { + display: inline-flex; + align-items: center; + align-content: center; + justify-content: center; + color: var(--f7-badge-text-color); + background: var(--f7-badge-bg-color); + position: relative; + box-sizing: border-box; + text-align: center; + vertical-align: middle; + font-weight: var(--f7-badge-font-weight); + font-size: var(--f7-badge-font-size); + border-radius: var(--f7-badge-size); + padding: var(--f7-badge-padding); + height: var(--f7-badge-size); + min-width: var(--f7-badge-size); +} +.icon .badge, +.f7-icons .badge, +.framework7-icons .badge, +.material-icons .badge { + position: absolute; + left: 100%; + margin-left: -10px; + top: -2px; + font-family: var(--f7-font-family); + --f7-badge-font-size: var(--f7-badge-in-icon-font-size); + --f7-badge-size: var(--f7-badge-in-icon-size); +} +.badge[class*="color-"] { + --f7-badge-bg-color: var(--f7-theme-color); +} +:root { + --f7-button-min-width: 32px; + --f7-button-bg-color: transparent; + --f7-button-border-width: 0px; + /* + --f7-button-text-color: var(--f7-theme-color); + --f7-button-pressed-text-color: var(--f7-button-text-color, var(--f7-theme-color)); + --f7-button-border-color: var(--f7-theme-color); + --f7-button-fill-text-color: #fff; + --f7-button-fill-bg-color: var(--f7-theme-color); + --f7-button-outline-border-color: var(--f7-theme-color); + */ + --f7-button-outline-border-width: 2px; + --f7-button-raised-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0,0,0,0.24); + --f7-button-raised-pressed-box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0,0,0,0.23); + --f7-segmented-raised-divider-color: rgba(0, 0, 0, 0.1); + --f7-segmented-strong-padding: 2px; + --f7-segmented-strong-between-buttons: 4px; + --f7-segmented-strong-button-font-weight: 500; + --f7-segmented-strong-button-active-box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.25); + --f7-segmented-strong-bg-color: rgba(0, 0, 0, 0.07); + --f7-segmented-strong-button-text-color: #000; + --f7-segmented-strong-button-pressed-bg-color: rgba(0, 0, 0, 0.07); + --f7-segmented-strong-button-hover-bg-color: rgba(0, 0, 0, 0.04); + --f7-segmented-strong-button-active-text-color: #000; + --f7-segmented-strong-button-active-bg-color: #fff; +} +:root .theme-dark, +:root.theme-dark { + --f7-segmented-strong-bg-color: rgba(255, 255, 255, 0.1); + --f7-segmented-strong-button-pressed-bg-color: rgba(255, 255, 255, 0.04); + --f7-segmented-strong-button-hover-bg-color: rgba(255, 255, 255, 0.02); + --f7-segmented-strong-button-active-bg-color: rgba(255, 255, 255, 0.14); + --f7-segmented-strong-button-text-color: #fff; + --f7-segmented-strong-button-active-text-color: #fff; +} +.ios { + --f7-button-font-size: 13px; + --f7-button-height: 28px; + --f7-button-padding-horizontal: 10px; + --f7-button-border-radius: 5px; + --f7-button-font-weight: 600; + --f7-button-letter-spacing: 0; + --f7-button-text-transform: uppercase; + /* + --f7-button-pressed-bg-color: rgba(var(--f7-theme-color-rgb), .15); + --f7-button-fill-pressed-bg-color: var(--f7-theme-color-tint); + */ + --f7-button-large-height: 44px; + --f7-button-large-font-size: 17px; + --f7-button-large-font-weight: 500; + --f7-button-large-text-transform: none; + --f7-button-small-height: 26px; + --f7-button-small-font-size: 13px; + --f7-button-small-font-weight: 600; + --f7-button-small-text-transform: uppercase; + --f7-button-small-outline-border-width: 2px; + --f7-segmented-strong-button-text-transform: none; + --f7-segmented-strong-button-active-font-weight: 600; +} +.md { + --f7-button-font-size: 14px; + --f7-button-height: 36px; + --f7-button-padding-horizontal: 8px; + --f7-button-border-radius: 4px; + --f7-button-font-weight: 500; + --f7-button-letter-spacing: 0.03em; + --f7-button-text-transform: uppercase; + /* + --f7-button-fill-pressed-bg-color: var(--f7-theme-color-shade); + */ + --f7-button-large-height: 48px; + --f7-button-large-font-size: 14px; + --f7-button-large-font-weight: 500; + --f7-button-large-text-transform: uppercase; + --f7-button-small-height: 28px; + --f7-button-small-font-size: 12px; + --f7-button-small-font-weight: 500; + --f7-button-small-text-transform: uppercase; + --f7-button-small-outline-border-width: 2px; + --f7-segmented-strong-button-text-transform: uppercase; + --f7-segmented-strong-button-active-font-weight: 500; + --f7-button-pressed-bg-color: rgba(0, 0, 0, 0.1); +} +.md .theme-dark, +.md.theme-dark { + --f7-button-pressed-bg-color: rgba(255, 255, 255, 0.1); +} +.aurora { + /* + --f7-button-hover-bg-color: rgba(var(--f7-theme-color-rgb), .07); + --f7-button-fill-hover-bg-color: var(--f7-theme-color-tint); + */ + --f7-button-font-size: 14px; + --f7-button-height: 28px; + --f7-button-min-width: 24px; + --f7-button-padding-horizontal: 10px; + --f7-button-border-radius: 4px; + --f7-button-font-weight: 500; + --f7-button-letter-spacing: 0.02; + --f7-button-text-transform: none; + /* + --f7-button-pressed-bg-color: rgba(var(--f7-theme-color-rgb), .15); + --f7-button-fill-pressed-bg-color: var(--f7-theme-color-shade); + */ + --f7-button-large-height: 34px; + --f7-button-large-font-size: 14px; + --f7-button-large-font-weight: 600; + --f7-button-large-text-transform: none; + --f7-button-small-height: 24px; + --f7-button-small-font-size: 12px; + --f7-button-small-font-weight: 600; + --f7-button-small-text-transform: none; + --f7-button-small-outline-border-width: 1px; + --f7-segmented-strong-button-text-transform: none; + --f7-segmented-strong-button-active-font-weight: 600; +} +button { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + width: 100%; +} +.button { + text-decoration: none; + text-align: center; + display: block; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + background: none; + margin: 0; + white-space: nowrap; + text-overflow: ellipsis; + position: relative; + overflow: hidden; + font-family: inherit; + cursor: pointer; + outline: 0; + box-sizing: border-box; + vertical-align: middle; + justify-content: center; + align-items: center; + border: var(--f7-button-border-width, 0px) solid var(--f7-button-border-color, var(--f7-theme-color)); + font-size: var(--f7-button-font-size); + color: var(--f7-button-text-color, var(--f7-theme-color)); + height: var(--f7-button-height); + line-height: calc(var(--f7-button-height) - var(--f7-button-border-width, 0) * 2); + padding: var(--f7-button-padding-vertical, 0px) var(--f7-button-padding-horizontal); + border-radius: var(--f7-button-border-radius); + min-width: var(--f7-button-min-width); + font-weight: var(--f7-button-font-weight); + letter-spacing: var(--f7-button-letter-spacing); + text-transform: var(--f7-button-text-transform); + background-color: var(--f7-button-bg-color); + box-shadow: var(--f7-button-box-shadow); +} +.button.active-state { + background-color: var(--f7-button-pressed-bg-color, rgba(var(--f7-theme-color-rgb), 0.15)); + color: var(--f7-button-pressed-text-color, var(--f7-button-text-color, var(--f7-theme-color))); +} +input[type="submit"].button, +input[type="button"].button { + width: 100%; +} +.button > i + span, +.button > span + span, +.button > span + i, +.button > i + i { + margin-left: 4px; +} +.subnavbar .button, +.navbar .button, +.toolbar .button, +.searchbar .button, +.appbar .button { + color: var(--f7-button-text-color, var(--f7-theme-color)); +} +.button-round, +.ios .button-round-ios, +.md .button-round-md, +.aurora .button-round-aurora { + --f7-button-border-radius: var(--f7-button-height); +} +.button-fill, +.ios .button-fill-ios, +.md .button-fill-md, +.aurora .button-fill-aurora, +.button-active, +.button.tab-link-active { + --f7-button-bg-color: var(--f7-button-fill-bg-color, var(--f7-theme-color)); + --f7-button-text-color: var(--f7-button-fill-text-color, #fff); + --f7-touch-ripple-color: var(--f7-touch-ripple-white); +} +.button-fill, +.ios .button-fill-ios, +.md .button-fill-md, +.aurora .button-fill-aurora { + --f7-button-pressed-bg-color: var(--f7-button-fill-pressed-bg-color); +} +.button-active, +.button.tab-link-active { + --f7-button-pressed-bg-color: var(--f7-button-bg-color); +} +.button-outline, +.ios .button-outline-ios, +.md .button-outline-md, +.aurora .button-outline-aurora { + --f7-button-border-color: var(--f7-button-outline-border-color, var(--f7-theme-color)); + --f7-button-border-width: var(--f7-button-outline-border-width); +} +.button-large, +.ios .button-large-ios, +.md .button-large-md, +.aurora .button-large-aurora { + --f7-button-height: var(--f7-button-large-height); + --f7-button-font-size: var(--f7-button-large-font-size); + --f7-button-font-weight: var(--f7-button-large-font-weight); + --f7-button-text-transform: var(--f7-button-large-text-transform); +} +.button-small, +.ios .button-small-ios, +.md .button-small-md, +.aurora .button-small-aurora { + --f7-button-outline-border-width: var(--f7-button-small-outline-border-width); + --f7-button-height: var(--f7-button-small-height); + --f7-button-font-size: var(--f7-button-small-font-size); + --f7-button-font-weight: var(--f7-button-small-font-weight); + --f7-button-text-transform: var(--f7-button-small-text-transform); +} +.ios .button-small.button-fill, +.ios .button-small-ios.button-fill, +.ios .button-small.button-fill-ios { + --f7-button-border-width: var(--f7-button-small-outline-border-width); + --f7-button-pressed-text-color: var(--f7-theme-color); + --f7-button-pressed-bg-color: transparent; +} +.segmented { + align-self: center; + display: flex; + flex-wrap: nowrap; + border-radius: var(--f7-button-border-radius); + box-shadow: var(--f7-button-box-shadow); + box-sizing: border-box; +} +.segmented .button, +.segmented button { + width: 100%; + flex-shrink: 1; + min-width: 0; + border-radius: 0; +} +.segmented .button:first-child { + border-radius: var(--f7-button-border-radius) 0 0 var(--f7-button-border-radius); +} +.segmented .button:not(.button-outline):first-child { + border-left: none; +} +.segmented .button.button-outline:nth-child(n + 2) { + border-left: none; +} +.segmented .button:last-child { + border-radius: 0 var(--f7-button-border-radius) var(--f7-button-border-radius) 0; +} +.segmented .button-round:first-child { + border-radius: var(--f7-button-height) 0 0 var(--f7-button-height); +} +.segmented .button-round:last-child { + border-radius: 0 var(--f7-button-height) var(--f7-button-height) 0; +} +.segmented .button:first-child:last-child { + border-radius: var(--f7-button-border-radius); +} +.segmented-raised, +.ios .segmented-raised-ios, +.md .segmented-raised-md, +.aurora .segmented-raised-aurora { + box-shadow: var(--f7-button-raised-box-shadow); +} +.segmented-raised .button:not(.button-outline), +.ios .segmented-raised-ios .button:not(.button-outline), +.md .segmented-raised-md .button:not(.button-outline), +.aurora .segmented-raised-aurora .button:not(.button-outline) { + border-left: 1px solid var(--f7-segmented-raised-divider-color); +} +.button-raised, +.ios .button-raised-ios, +.md .button-raised-md, +.aurora .button-raised-aurora { + --f7-button-box-shadow: var(--f7-button-raised-box-shadow); +} +.button-raised.active-state, +.ios .button-raised-ios.active-state, +.md .button-raised-md.active-state, +.aurora .button-raised-aurora.active-state { + --f7-button-box-shadow: var(--f7-button-raised-pressed-box-shadow); +} +.segmented-strong, +.ios .segmented-strong-ios, +.md .segmented-strong-md, +.aurora .segmented-strong-aurora { + --f7-button-bg-color: transparent; + --f7-button-hover-bg-color: var(--f7-segmented-strong-button-hover-bg-color); + --f7-button-text-color: var(--f7-segmented-strong-button-text-color); + --f7-button-font-weight: var(--f7-segmented-strong-button-font-weight); + --f7-button-text-transform: var(--f7-segmented-strong-button-text-transform); + --f7-button-pressed-bg-color: var(--f7-segmented-strong-button-pressed-bg-color); + position: relative; + background: var(--f7-segmented-strong-bg-color); + border-radius: calc(var(--f7-button-border-radius) + 2px); + box-shadow: none; + padding: var(--f7-segmented-strong-padding); + overflow: hidden; +} +.segmented-strong .button, +.ios .segmented-strong-ios .button, +.md .segmented-strong-md .button, +.aurora .segmented-strong-aurora .button { + z-index: 1; + transform: translate3d(0, 0, 0); +} +.segmented-strong .button, +.ios .segmented-strong-ios .button, +.md .segmented-strong-md .button, +.aurora .segmented-strong-aurora .button, +.segmented-strong .button:first-child, +.ios .segmented-strong-ios .button:first-child, +.md .segmented-strong-md .button:first-child, +.aurora .segmented-strong-aurora .button:first-child, +.segmented-strong .button:last-child, +.ios .segmented-strong-ios .button:last-child, +.md .segmented-strong-md .button:last-child, +.aurora .segmented-strong-aurora .button:last-child { + border-radius: var(--f7-button-border-radius); +} +.segmented-strong .button + .button, +.ios .segmented-strong-ios .button + .button, +.md .segmented-strong-md .button + .button, +.aurora .segmented-strong-aurora .button + .button { + margin-left: var(--f7-segmented-strong-between-buttons); +} +.segmented-strong .button.button-active, +.ios .segmented-strong-ios .button.button-active, +.md .segmented-strong-md .button.button-active, +.aurora .segmented-strong-aurora .button.button-active, +.segmented-strong .button.tab-link-active, +.ios .segmented-strong-ios .button.tab-link-active, +.md .segmented-strong-md .button.tab-link-active, +.aurora .segmented-strong-aurora .button.tab-link-active { + --f7-button-hover-bg-color: transparent; + --f7-button-bg-color: transparent; + --f7-button-text-color: var(--f7-segmented-strong-button-active-text-color); + --f7-button-font-weight: var(--f7-segmented-strong-button-active-font-weight); +} +.segmented-strong .segmented-highlight, +.ios .segmented-strong-ios .segmented-highlight, +.md .segmented-strong-md .segmented-highlight, +.aurora .segmented-strong-aurora .segmented-highlight { + --f7-segmented-highlight-num: 1; + --f7-segmented-highlight-active: 0; + --f7-segmented-highlight-padding: calc(var(--f7-segmented-strong-padding) * 2); + --f7-segmented-highlight-between: var(--f7-segmented-strong-between-buttons); + --f7-segmented-highlight-width: calc((100% - var(--f7-segmented-highlight-padding) - var(--f7-segmented-highlight-between) * (var(--f7-segmented-highlight-num) - 1)) / var(--f7-segmented-highlight-num)); + position: absolute; + background-color: var(--f7-segmented-strong-button-active-bg-color); + border-radius: var(--f7-button-border-radius); + box-shadow: var(--f7-segmented-strong-button-active-box-shadow); + left: var(--f7-segmented-strong-padding); + top: var(--f7-segmented-strong-padding); + height: calc(100% - var(--f7-segmented-strong-padding) * 2); + width: var(--f7-segmented-highlight-width); + z-index: 0; + transform: translateX(calc(var(--f7-segmented-highlight-active) * 100% + var(--f7-segmented-highlight-active) * var(--f7-segmented-highlight-between))); + transition: 200ms; +} +.button:nth-child(2) ~ .segmented-highlight { + --f7-segmented-highlight-num: 2; +} +.button:nth-child(3) ~ .segmented-highlight { + --f7-segmented-highlight-num: 3; +} +.button:nth-child(4) ~ .segmented-highlight { + --f7-segmented-highlight-num: 4; +} +.button:nth-child(5) ~ .segmented-highlight { + --f7-segmented-highlight-num: 5; +} +.button:nth-child(6) ~ .segmented-highlight { + --f7-segmented-highlight-num: 6; +} +.button:nth-child(7) ~ .segmented-highlight { + --f7-segmented-highlight-num: 7; +} +.button:nth-child(8) ~ .segmented-highlight { + --f7-segmented-highlight-num: 8; +} +.button:nth-child(9) ~ .segmented-highlight { + --f7-segmented-highlight-num: 9; +} +.button:nth-child(10) ~ .segmented-highlight { + --f7-segmented-highlight-num: 10; +} +.button-active:nth-child(2) ~ .segmented-highlight, +.tab-link-active:nth-child(2) ~ .segmented-highlight { + --f7-segmented-highlight-active: 1; +} +.button-active:nth-child(3) ~ .segmented-highlight, +.tab-link-active:nth-child(3) ~ .segmented-highlight { + --f7-segmented-highlight-active: 2; +} +.button-active:nth-child(4) ~ .segmented-highlight, +.tab-link-active:nth-child(4) ~ .segmented-highlight { + --f7-segmented-highlight-active: 3; +} +.button-active:nth-child(5) ~ .segmented-highlight, +.tab-link-active:nth-child(5) ~ .segmented-highlight { + --f7-segmented-highlight-active: 4; +} +.button-active:nth-child(6) ~ .segmented-highlight, +.tab-link-active:nth-child(6) ~ .segmented-highlight { + --f7-segmented-highlight-active: 5; +} +.button-active:nth-child(7) ~ .segmented-highlight, +.tab-link-active:nth-child(7) ~ .segmented-highlight { + --f7-segmented-highlight-active: 6; +} +.button-active:nth-child(8) ~ .segmented-highlight, +.tab-link-active:nth-child(8) ~ .segmented-highlight { + --f7-segmented-highlight-active: 7; +} +.button-active:nth-child(9) ~ .segmented-highlight, +.tab-link-active:nth-child(9) ~ .segmented-highlight { + --f7-segmented-highlight-active: 8; +} +.button-active:nth-child(10) ~ .segmented-highlight, +.tab-link-active:nth-child(10) ~ .segmented-highlight { + --f7-segmented-highlight-active: 9; +} +.segmented-round, +.ios .segmented-round-ios, +.md .segmented-round-md, +.aurora .segmented-round-aurora { + border-radius: var(--f7-button-height); +} +.segmented-round .segmented-highlight, +.ios .segmented-round-ios .segmented-highlight, +.md .segmented-round-md .segmented-highlight, +.aurora .segmented-round-aurora .segmented-highlight { + border-radius: var(--f7-button-height); +} +.subnavbar .segmented { + width: 100%; +} +.ios .button { + transition-duration: 100ms; +} +.ios .button-fill, +.ios .button-fill-ios { + --f7-button-pressed-bg-color: var(--f7-button-fill-pressed-bg-color, var(--f7-theme-color-tint)); +} +.ios .button-small, +.ios .button-small-ios { + transition-duration: 200ms; +} +.md .button { + transition-duration: 300ms; + transform: translate3d(0, 0, 0); +} +.md .button-fill, +.md .button-fill-md { + --f7-button-pressed-bg-color: var(--f7-button-fill-pressed-bg-color, var(--f7-theme-color-shade)); +} +.aurora .button { + transition-duration: 100ms; + transform: translate3d(0, 0, 0); +} +.aurora.device-desktop .button:not(.active-state):not(.no-hover):hover { + background-color: var(--f7-button-hover-bg-color, rgba(var(--f7-theme-color-rgb), 0.07)); +} +.aurora .button-fill, +.aurora .button-fill-aurora { + --f7-button-pressed-bg-color: var(--f7-button-fill-pressed-bg-color, var(--f7-theme-color-shade)); +} +.aurora .button-fill, +.aurora .button-active, +.aurora .button.tab-link-active, +.aurora .button-fill-aurora { + --f7-button-hover-bg-color: var(--f7-button-fill-hover-bg-color, var(--f7-theme-color-tint)); +} +/* === Touch Ripple === */ +:root { + --f7-touch-ripple-black: rgba(0, 0, 0, 0.1); + --f7-touch-ripple-white: rgba(255, 255, 255, 0.3); + --f7-touch-ripple-color: var(--f7-touch-ripple-black); +} +.theme-dark { + --f7-touch-ripple-color: var(--f7-touch-ripple-white); +} +.ripple, +.fab a, +.link, +.item-link, +.list-button, +.button, +.dialog-button, +.tab-link, +.radio, +.checkbox, +.actions-button, +.speed-dial-buttons a { + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; +} +.ripple-wave { + left: 0; + top: 0; + position: absolute !important; + border-radius: 50%; + pointer-events: none; + z-index: -1; + padding: 0; + margin: 0; + font-size: 0; + transform: translate3d(0px, 0px, 0) scale(0); + transition-duration: 1400ms; + background-color: var(--f7-touch-ripple-color); +} +.ripple-wave.ripple-wave-fill { + transition-duration: 300ms; + opacity: 0.35; +} +.ripple-wave.ripple-wave-out { + transition-duration: 600ms; + opacity: 0; +} +.button-fill .ripple-wave, +.picker-calendar-day .ripple-wave, +.menu .ripple-wave { + z-index: 1; +} +.checkbox .ripple-wave, +.radio .ripple-wave, +.data-table .sortable-cell .ripple-wave { + z-index: 0; +} +[class*="ripple-color-"] { + --f7-touch-ripple-color: var(--f7-theme-color-ripple-color); +} +/* === Icon === */ +.f7-icons, +.material-icons { + width: 1em; + height: 1em; +} +i.icon { + display: inline-block; + vertical-align: middle; + background-size: 100% auto; + background-position: center; + background-repeat: no-repeat; + font-style: normal; + position: relative; +} +.icon-back:after, +.icon-prev:after, +.icon-forward:after, +.icon-next:after { + font-family: 'framework7-core-icons'; + font-weight: normal; + font-style: normal; + line-height: 1; + letter-spacing: normal; + text-transform: none; + white-space: nowrap; + word-wrap: normal; + direction: ltr; + -webkit-font-smoothing: antialiased; + text-rendering: optimizeLegibility; + -moz-osx-font-smoothing: grayscale; + font-feature-settings: "liga"; + text-align: center; + display: block; + width: 100%; + height: 100%; + font-size: 20px; +} +.icon[class*="color-"] { + color: var(--f7-theme-color); +} +.ios .icon-back, +.ios .icon-prev, +.ios .icon-forward, +.ios .icon-next { + width: 12px; + height: 20px; + line-height: 20px; +} +.ios .icon-back:after, +.ios .icon-prev:after, +.ios .icon-forward:after, +.ios .icon-next:after { + line-height: inherit; +} +.ios .icon-prev:after, +.ios .icon-next:after { + font-size: 16px; +} +.ios .icon-back:after, +.ios .icon-prev:after { + content: 'chevron_left_ios'; +} +.ios .icon-forward:after, +.ios .icon-next:after { + content: 'chevron_right_ios'; +} +.md .icon-back, +.md .icon-forward, +.md .icon-next, +.md .icon-prev { + width: 24px; + height: 24px; +} +.md .icon-back:after, +.md .icon-forward:after, +.md .icon-next:after, +.md .icon-prev:after { + line-height: 1.2; +} +.md .icon-back:after { + content: 'arrow_left_md'; +} +.md .icon-forward:after { + content: 'arrow_right_md'; +} +.md .icon-next:after { + content: 'chevron_right_md'; +} +.md .icon-prev:after { + content: 'chevron_left_md'; +} +.aurora .f7-icons, +.aurora .material-icons { + font-size: 18px; +} +.aurora .icon-back, +.aurora .icon-prev, +.aurora .icon-forward, +.aurora .icon-next { + width: 9px; + height: 14px; + line-height: 14px; +} +.aurora .icon-back:after, +.aurora .icon-prev:after, +.aurora .icon-forward:after, +.aurora .icon-next:after { + line-height: inherit; +} +.aurora .icon-back:after, +.aurora .icon-prev:after { + content: 'chevron_left_aurora'; +} +.aurora .icon-forward:after, +.aurora .icon-next:after { + content: 'chevron_right_aurora'; +} +.custom-modal-backdrop { + z-index: 10500; +} +.custom-modal-backdrop, +.actions-backdrop, +.dialog-backdrop, +.popover-backdrop, +.popup-backdrop, +.preloader-backdrop, +.sheet-backdrop, +.fab-backdrop { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + background: rgba(0, 0, 0, 0.4); + z-index: 13000; + visibility: hidden; + opacity: 0; + transition-duration: 400ms; +} +.custom-modal-backdrop.not-animated, +.actions-backdrop.not-animated, +.dialog-backdrop.not-animated, +.popover-backdrop.not-animated, +.popup-backdrop.not-animated, +.preloader-backdrop.not-animated, +.sheet-backdrop.not-animated, +.fab-backdrop.not-animated { + transition-duration: 0ms; +} +.custom-modal-backdrop.backdrop-in, +.actions-backdrop.backdrop-in, +.dialog-backdrop.backdrop-in, +.popover-backdrop.backdrop-in, +.popup-backdrop.backdrop-in, +.preloader-backdrop.backdrop-in, +.sheet-backdrop.backdrop-in, +.fab-backdrop.backdrop-in { + visibility: visible; + opacity: 1; +} +/* === Appbar === */ +:root { + /* + --f7-appbar-offset: var(--f7-appbar-height); + --f7-appbar-extra-offset: 0px; + --f7-appbar-bg-color: var(--f7-bars-bg-color); + --f7-appbar-bg-color-rgb: var(--f7-bars-bg-color-rgb); + --f7-appbar-bg-image: var(--f7-bars-bg-image); + --f7-appbar-border-color: var(--f7-bars-border-color); + --f7-appbar-link-color: var(--f7-bars-link-color); + --f7-appbar-text-color: var(--f7-bars-text-color); + */ + --f7-appbar-shadow-image: none; +} +.ios { + --f7-appbar-height: 44px; + --f7-appbar-inner-padding-left: 8px; + --f7-appbar-inner-padding-right: 8px; +} +.md { + --f7-appbar-height: 48px; + --f7-appbar-inner-padding-left: 16px; + --f7-appbar-inner-padding-right: 16px; +} +.aurora { + --f7-appbar-height: 38px; + --f7-appbar-inner-padding-left: 16px; + --f7-appbar-inner-padding-right: 16px; +} +.appbar { + position: relative; + left: 0; + top: 0; + width: 100%; + z-index: 500; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + box-sizing: border-box; + margin: 0; + transform: translate3d(0, 0, 0); + height: calc(var(--f7-appbar-height) + var(--f7-safe-area-top)); + background-image: var(--f7-appbar-bg-image, var(--f7-bars-bg-image)); + background-color: var(--f7-appbar-bg-color, var(--f7-bars-bg-color)); + color: var(--f7-appbar-text-color, var(--f7-bars-text-color)); + font-size: var(--f7-appbar-font-size); + z-index: 7000; +} +@supports ((-webkit-backdrop-filter: blur(20px)) or (backdrop-filter: blur(20px))) { + .ios-translucent-bars .appbar { + background-color: rgba(var(--f7-appbar-bg-color-rgb, var(--f7-bars-bg-color-rgb)), var(--f7-bars-translucent-opacity)); + -webkit-backdrop-filter: saturate(180%) blur(var(--f7-bars-translucent-blur)); + backdrop-filter: saturate(180%) blur(var(--f7-bars-translucent-blur)); + } +} +.appbar .panel ~ .appbar { + z-index: 5500; +} +.appbar a { + color: var(--f7-appbar-link-color, var(--f7-bars-link-color, var(--f7-theme-color))); +} +.appbar a.link { + display: flex; + justify-content: flex-start; + line-height: var(--f7-appbar-link-line-height, var(--f7-appbar-height)); + height: var(--f7-appbar-link-height, var(--f7-appbar-height)); +} +.appbar .left, +.appbar .center, +.appbar .right { + display: flex; + align-items: center; +} +.appbar.no-hairline:after, +.appbar.no-border:after { + display: none !important; +} +.appbar.no-hairline .title-large:after, +.appbar.no-border .title-large:after { + display: none !important; +} +.appbar.no-shadow:before { + display: none !important; +} +.appbar:after, +.appbar:before { + -webkit-backface-visibility: hidden; + backface-visibility: hidden; +} +.appbar:after { + content: ''; + position: absolute; + background-color: var(--f7-appbar-border-color, var(--f7-bars-border-color)); + display: block; + z-index: 15; + top: auto; + right: auto; + bottom: 0; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 100%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +.appbar:before { + content: ''; + position: absolute; + right: 0; + width: 100%; + top: 100%; + bottom: auto; + height: 8px; + pointer-events: none; + background: var(--f7-appbar-shadow-image); +} +.appbar:after { + z-index: 1; +} +.appbar ~ * { + --f7-appbar-app-offset: calc(var(--f7-appbar-height) + var(--f7-appbar-extra-offset, 0px) + var(--f7-safe-area-top)); +} +.appbar ~ .views, +.appbar ~ .view, +.appbar ~ .appbar { + --f7-safe-area-top: 0px; +} +.appbar ~ .panel .view, +.appbar ~ .panel .page, +.appbar ~ .panel .page-content { + --f7-safe-area-top: 0px; +} +.appbar-inner { + position: absolute; + left: 0; + top: var(--f7-safe-area-top); + width: 100%; + height: var(--f7-appbar-height); + display: flex; + align-items: center; + justify-content: space-between; + box-sizing: border-box; + padding: 0 calc(var(--f7-appbar-inner-padding-right) + var(--f7-safe-area-right)) 0 calc(var(--f7-appbar-inner-padding-left) + var(--f7-safe-area-left)); +} +.appbar-inner.stacked { + display: none; +} +/* === Dialog === */ +:root { + --f7-dialog-button-text-color: var(--f7-theme-color); + --f7-dialog-button-text-align: center; + --f7-dialog-input-bg-color: #fff; +} +:root .theme-dark, +:root.theme-dark { + --f7-dialog-text-color: #fff; +} +.ios { + --f7-dialog-box-shadow: none; + --f7-dialog-width: 270px; + --f7-dialog-inner-padding: 16px; + --f7-dialog-border-radius: 13px; + --f7-dialog-text-align: center; + --f7-dialog-font-size: 14px; + --f7-dialog-title-text-color: inherit; + --f7-dialog-title-font-size: 18px; + --f7-dialog-title-font-weight: 600; + --f7-dialog-title-line-height: inherit; + --f7-dialog-button-font-size: 17px; + --f7-dialog-button-height: 44px; + --f7-dialog-button-letter-spacing: 0; + --f7-dialog-button-font-weight: 400; + --f7-dialog-button-text-transform: none; + --f7-dialog-input-border-radius: 4px; + --f7-dialog-input-font-size: 14px; + --f7-dialog-input-height: 32px; + --f7-dialog-input-border-width: 1px; + --f7-dialog-input-placeholder-color: #a9a9a9; + --f7-dialog-preloader-size: 34px; + --f7-dialog-bg-color: rgba(255, 255, 255, 0.95); + --f7-dialog-bg-color-rgb: 255, 255, 255; + --f7-dialog-text-color: #000; + --f7-dialog-button-pressed-bg-color: rgba(0, 0, 0, 0.1); + --f7-dialog-input-border-color: rgba(0, 0, 0, 0.3); + --f7-dialog-border-divider-color: rgba(0, 0, 0, 0.2); +} +.ios .theme-dark, +.ios.theme-dark { + --f7-dialog-bg-color: rgba(45, 45, 45, 0.95); + --f7-dialog-bg-color-rgb: 45, 45, 45; + --f7-dialog-button-pressed-bg-color: rgba(0, 0, 0, 0.2); + --f7-dialog-border-divider-color: rgba(255, 255, 255, 0.15); + --f7-dialog-input-border-color: rgba(255, 255, 255, 0.15); + --f7-dialog-input-bg-color: rgba(0, 0, 0, 0.5); +} +.md { + --f7-dialog-box-shadow: var(--f7-elevation-24); + --f7-dialog-width: 280px; + --f7-dialog-inner-padding: 24px; + --f7-dialog-border-radius: 4px; + --f7-dialog-text-align: left; + --f7-dialog-font-size: 16px; + --f7-dialog-title-font-size: 20px; + --f7-dialog-title-font-weight: 500; + --f7-dialog-title-line-height: 1.3; + --f7-dialog-button-font-size: 14px; + --f7-dialog-button-height: 36px; + --f7-dialog-button-letter-spacing: 0.03em; + --f7-dialog-button-font-weight: 500; + --f7-dialog-button-text-transform: uppercase; + --f7-dialog-input-border-radius: 0px; + --f7-dialog-input-font-size: 16px; + --f7-dialog-input-height: 36px; + --f7-dialog-input-border-color: transparent; + --f7-dialog-input-border-width: 0px; + --f7-dialog-preloader-size: 32px; + --f7-dialog-bg-color: #fff; + --f7-dialog-text-color: rgba(0, 0, 0, 0.54); + --f7-dialog-title-text-color: #212121; + --f7-dialog-button-pressed-bg-color: rgba(0, 0, 0, 0.1); + --f7-dialog-input-placeholder-color: rgba(0, 0, 0, 0.35); +} +.md .theme-dark, +.md.theme-dark { + --f7-dialog-bg-color: #1c1c1d; + --f7-dialog-title-text-color: #fff; + --f7-dialog-button-pressed-bg-color: rgba(255, 255, 255, 0.1); + --f7-dialog-input-bg-color: transparent; + --f7-dialog-input-placeholder-color: rgba(255, 255, 255, 0.54); +} +.aurora { + --f7-dialog-box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.15), 0 25px 30px 0 rgba(0,0,0,0.35); + --f7-dialog-width: 300px; + --f7-dialog-inner-padding: 20px; + --f7-dialog-border-radius: 4px; + --f7-dialog-text-align: left; + --f7-dialog-font-size: 14px; + --f7-dialog-title-font-size: 14px; + --f7-dialog-title-font-weight: 700; + --f7-dialog-title-line-height: inherit; + --f7-dialog-button-font-size: 13px; + --f7-dialog-button-height: 28px; + --f7-dialog-button-letter-spacing: 0; + --f7-dialog-button-font-weight: 500; + --f7-dialog-button-text-transform: none; + /* + --f7-dialog-button-pressed-bg-color: var(--f7-theme-color-shade); + --f7-dialog-button-hover-bg-color: var(--f7-theme-color-tint); + */ + --f7-dialog-input-border-radius: 4px; + --f7-dialog-input-font-size: 13px; + --f7-dialog-input-height: 24px; + --f7-dialog-input-border-width: 1px; + --f7-dialog-preloader-size: 24px; + --f7-dialog-bg-color: #fff; + --f7-dialog-title-text-color: inherit; + --f7-dialog-text-color: #000; + --f7-dialog-button-text-color: #fff; + --f7-dialog-input-border-color: rgba(0, 0, 0, 0.12); + --f7-dialog-input-placeholder-color: rgba(0, 0, 0, 0.32); +} +.aurora .theme-dark, +.aurora.theme-dark { + --f7-dialog-bg-color: #1c1c1d; + --f7-dialog-title-text-color: #fff; + --f7-dialog-input-bg-color: rgba(0, 0, 0, 0.25); + --f7-dialog-input-placeholder-color: rgba(255, 255, 255, 0.54); + --f7-dialog-input-border-color: rgba(255, 255, 255, 0.15); +} +.dialog { + position: absolute; + z-index: 13500; + left: 50%; + margin-top: 0; + top: 50%; + overflow: hidden; + opacity: 0; + transform: translate3d(0, -50%, 0) scale(1.185); + transition-property: transform, opacity; + display: none; + transition-duration: 400ms; + box-shadow: var(--f7-dialog-box-shadow); + width: var(--f7-dialog-width); + margin-left: calc(-1 * var(--f7-dialog-width) / 2); + border-radius: var(--f7-dialog-border-radius); + text-align: var(--f7-dialog-text-align); + color: var(--f7-dialog-text-color); + font-size: var(--f7-dialog-font-size); + background: var(--f7-dialog-bg-color); + will-change: transform, opacity; +} +@supports ((-webkit-backdrop-filter: blur(20px)) or (backdrop-filter: blur(20px))) { + .ios-translucent-modals .dialog { + background-color: rgba(var(--f7-dialog-bg-color-rgb), 0.8); + -webkit-backdrop-filter: saturate(180%) blur(20px); + backdrop-filter: saturate(180%) blur(20px); + } +} +.dialog.modal-in { + opacity: 1; + transform: translate3d(0, -50%, 0) scale(1); +} +.dialog.modal-out { + opacity: 0; + z-index: 13499; +} +.dialog.not-animated { + transition-duration: 0ms; +} +.dialog-inner { + position: relative; + padding: var(--f7-dialog-inner-padding); +} +.dialog-title { + color: var(--f7-dialog-title-text-color); + font-size: var(--f7-dialog-title-font-size); + font-weight: var(--f7-dialog-title-font-weight); + line-height: var(--f7-dialog-title-line-height); +} +.dialog-buttons { + position: relative; + display: flex; +} +.dialog-buttons-vertical .dialog-buttons { + display: block; + height: auto !important; +} +.dialog-button { + box-sizing: border-box; + overflow: hidden; + position: relative; + white-space: nowrap; + text-overflow: ellipsis; + color: var(--f7-dialog-button-text-color); + font-size: var(--f7-dialog-button-font-size); + height: var(--f7-dialog-button-height); + line-height: var(--f7-dialog-button-height); + letter-spacing: var(--f7-dialog-button-letter-spacing); + text-align: var(--f7-dialog-button-text-align); + font-weight: var(--f7-dialog-button-font-weight); + text-transform: var(--f7-dialog-button-text-transform); + display: block; + cursor: pointer; +} +.dialog-button.active-state { + background-color: var(--f7-dialog-button-pressed-bg-color); +} +.dialog-no-buttons .dialog-buttons { + display: none; +} +.dialog-input-field { + position: relative; +} +input.dialog-input[type] { + box-sizing: border-box; + margin: 0; + margin-top: 15px; + border-radius: var(--f7-dialog-input-border-radius); + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + width: 100%; + display: block; + font-family: inherit; + box-shadow: none; + font-size: var(--f7-dialog-input-font-size); + height: var(--f7-dialog-input-height); + background-color: var(--f7-dialog-input-bg-color); + border: var(--f7-dialog-input-border-width) solid var(--f7-dialog-input-border-color); +} +input.dialog-input[type]::-webkit-input-placeholder { + color: var(--f7-dialog-input-placeholder-color); +} +input.dialog-input[type]::placeholder { + color: var(--f7-dialog-input-placeholder-color); +} +.dialog-input-double input.dialog-input { + border-radius: var(--f7-dialog-input-border-radius) var(--f7-dialog-input-border-radius) 0 0; +} +.dialog-input-double + .dialog-input-double input.dialog-input { + border-radius: 0 0 var(--f7-dialog-input-border-radius) var(--f7-dialog-input-border-radius); +} +.dialog-preloader .preloader { + --f7-preloader-size: var(--f7-dialog-preloader-size); +} +html.with-modal-dialog .page-content { + overflow: hidden; + -webkit-overflow-scrolling: auto; +} +.ios .dialog.modal-out { + transform: translate3d(0, -50%, 0) scale(1); +} +.ios .dialog-inner { + border-radius: var(--f7-dialog-border-radius) var(--f7-dialog-border-radius) 0 0; +} +.ios .dialog-inner:after { + content: ''; + position: absolute; + background-color: var(--f7-dialog-border-divider-color); + display: block; + z-index: 15; + top: auto; + right: auto; + bottom: 0; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 100%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +.ios .dialog-title + .dialog-text { + margin-top: 5px; +} +.ios .dialog-buttons { + height: 44px; + justify-content: center; +} +.ios .dialog-button { + width: 100%; + padding: 0 5px; + -webkit-box-flex: 1; + -ms-flex: 1; +} +.ios .dialog-button:after { + content: ''; + position: absolute; + background-color: var(--f7-dialog-border-divider-color); + display: block; + z-index: 15; + top: 0; + right: 0; + bottom: auto; + left: auto; + width: 1px; + height: 100%; + transform-origin: 100% 50%; + transform: scaleX(calc(1 / var(--f7-device-pixel-ratio))); +} +.ios .dialog-button:first-child { + border-radius: 0 0 0 var(--f7-dialog-border-radius); +} +.ios .dialog-button:last-child { + border-radius: 0 0 var(--f7-dialog-border-radius) 0; +} +.ios .dialog-button:last-child:after { + display: none !important; +} +.ios .dialog-button:first-child:last-child { + border-radius: 0 0 var(--f7-dialog-border-radius) var(--f7-dialog-border-radius); +} +.ios .dialog-button.dialog-button-bold { + font-weight: 500; +} +.ios .dialog-button[class*="color-"] { + --f7-dialog-button-text-color: var(--f7-theme-color); +} +.ios .dialog-buttons-vertical .dialog-buttons { + height: auto; +} +.ios .dialog-buttons-vertical .dialog-button { + border-radius: 0; +} +.ios .dialog-buttons-vertical .dialog-button:after { + content: ''; + position: absolute; + background-color: var(--f7-dialog-border-divider-color); + display: block; + z-index: 15; + top: auto; + right: auto; + bottom: 0; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 100%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +.ios .dialog-buttons-vertical .dialog-button:last-child { + border-radius: 0 0 var(--f7-dialog-border-radius) var(--f7-dialog-border-radius); +} +.ios .dialog-buttons-vertical .dialog-button:last-child:after { + display: none !important; +} +.ios .dialog-no-buttons .dialog-inner { + border-radius: var(--f7-dialog-border-radius); +} +.ios .dialog-no-buttons .dialog-inner:after { + display: none !important; +} +.ios .dialog-input-field { + margin-top: 15px; +} +.ios .dialog-input { + padding: 0 5px; +} +.ios .dialog-input + .dialog-input { + margin-top: 5px; +} +.ios .dialog-input-double + .dialog-input-double { + margin-top: 0; +} +.ios .dialog-input-double + .dialog-input-double .dialog-input { + border-top: 0; + margin-top: 0; +} +.ios .dialog-preloader .dialog-title ~ .preloader, +.ios .dialog-preloader .dialog-text ~ .preloader { + margin-top: 15px; +} +.ios .dialog-progress .dialog-title ~ .progressbar, +.ios .dialog-progress .dialog-text ~ .progressbar, +.ios .dialog-progress .dialog-title ~ .progressbar-infinite, +.ios .dialog-progress .dialog-text ~ .progressbar-infinite { + margin-top: 15px; +} +.md .dialog.modal-out { + transform: translate3d(0, -50%, 0) scale(0.815); +} +.md .dialog-title + .dialog-text { + margin-top: 20px; +} +.md .dialog-text { + line-height: 1.5; +} +.md .dialog-buttons { + height: 48px; + padding: 6px 8px; + overflow: hidden; + box-sizing: border-box; + justify-content: flex-end; +} +.md .dialog-button { + border-radius: 4px; + min-width: 64px; + padding: 0 8px; + border: none; + transition-duration: 300ms; + transform: translate3d(0, 0, 0); +} +.md .dialog-button.dialog-button-bold { + font-weight: 700; +} +.md .dialog-button + .dialog-button { + margin-left: 4px; +} +.md .dialog-button[class*="color-"] { + --f7-dialog-button-text-color: var(--f7-theme-color); +} +.md .dialog-buttons-vertical .dialog-buttons { + padding: 0 0 8px 0; +} +.md .dialog-buttons-vertical .dialog-button { + margin-left: 0; + text-align: right; + height: 48px; + line-height: 48px; + border-radius: 0; + padding-left: 16px; + padding-right: 16px; +} +.md .dialog-input { + padding: 0; + transition-duration: 200ms; + position: relative; +} +.md .dialog-input + .dialog-input { + margin-top: 16px; +} +.md .dialog-preloader .dialog-title, +.md .dialog-progress .dialog-title, +.md .dialog-preloader .dialog-inner, +.md .dialog-progress .dialog-inner { + text-align: center; +} +.md .dialog-preloader .dialog-title ~ .preloader, +.md .dialog-preloader .dialog-text ~ .preloader { + margin-top: 20px; +} +.md .dialog-progress .dialog-title ~ .progressbar, +.md .dialog-progress .dialog-text ~ .progressbar, +.md .dialog-progress .dialog-title ~ .progressbar-infinite, +.md .dialog-progress .dialog-text ~ .progressbar-infinite { + margin-top: 16px; +} +.aurora .dialog.modal-out { + transform: translate3d(0, -50%, 0) scale(0.815); +} +.aurora .dialog-title + .dialog-text { + margin-top: 10px; +} +.aurora .dialog-text { + line-height: 1.5; +} +.aurora .dialog-buttons { + padding: var(--f7-dialog-inner-padding); + padding-top: 0; + overflow: hidden; + box-sizing: border-box; + justify-content: flex-end; +} +.aurora .dialog-button { + border-radius: 4px; + min-width: 64px; + padding: 0 10px; + border: none; + transition-duration: 300ms; + transform: translate3d(0, 0, 0); + background: var(--f7-theme-color); +} +.aurora .dialog-button.dialog-button-bold { + font-weight: 600; +} +.aurora .dialog-button + .dialog-button { + margin-left: 16px; +} +.aurora .dialog-button.active-state { + background-color: var(--f7-dialog-button-pressed-bg-color, var(--f7-theme-color-shade)); +} +.aurora.device-desktop .dialog-button:not(.active-state):not(.no-hover):hover { + background-color: var(--f7-dialog-button-hover-bg-color, var(--f7-theme-color-tint)); +} +.aurora .dialog-buttons-vertical .dialog-buttons { + display: flex; + flex-direction: column; + align-items: flex-end; +} +.aurora .dialog-buttons-vertical .dialog-button { + margin-left: 0; + flex-shrink: 0; +} +.aurora .dialog-buttons-vertical .dialog-button + .dialog-button { + margin-top: 5px; +} +.aurora .dialog-input-field { + margin-top: 10px; +} +.aurora .dialog-input-field input.dialog-input { + margin-top: 0; +} +.aurora .dialog-input { + padding: 0 4px; + transition-duration: 200ms; + position: relative; +} +.aurora .dialog-input + .dialog-input { + margin-top: 10px; +} +.aurora .dialog-input-double + .dialog-input-double { + margin-top: 0; +} +.aurora .dialog-input-double + .dialog-input-double .dialog-input { + border-top: 0; + margin-top: 0; +} +.aurora .dialog-preloader .dialog-title, +.aurora .dialog-progress .dialog-title, +.aurora .dialog-preloader .dialog-inner, +.aurora .dialog-progress .dialog-inner { + text-align: center; +} +.aurora .dialog-preloader .dialog-title ~ .preloader, +.aurora .dialog-preloader .dialog-text ~ .preloader { + margin-top: 10px; +} +.aurora .dialog-progress .dialog-title ~ .progressbar, +.aurora .dialog-progress .dialog-text ~ .progressbar, +.aurora .dialog-progress .dialog-title ~ .progressbar-infinite, +.aurora .dialog-progress .dialog-text ~ .progressbar-infinite { + margin-top: 15px; +} +/* === Popup === */ +:root { + --f7-popup-border-radius: 0px; + --f7-popup-tablet-width: 630px; + --f7-popup-tablet-height: 630px; + --f7-popup-transition-duration: 400ms; + --f7-popup-push-border-radius: 10px; + --f7-popup-push-offset: var(--f7-safe-area-top); + /* + --f7-popup-tablet-border-radius: var(--f7-popup-border-radius); + */ +} +.ios { + --f7-popup-tablet-border-radius: 5px; + --f7-popup-box-shadow: none; +} +.md { + --f7-popup-tablet-border-radius: 4px; + --f7-popup-box-shadow: 0px 20px 44px rgba(0, 0, 0, 0.5); +} +.aurora { + --f7-popup-tablet-border-radius: 4px; + --f7-popup-box-shadow: 0px 20px 44px rgba(0, 0, 0, 0.5); +} +.popup-backdrop { + z-index: 10500; +} +.popup { + position: absolute; + left: 0; + top: 0px; + width: 100%; + height: 100%; + display: none; + box-sizing: border-box; + transition-property: transform; + transform: translate3d(0, 100vh, 0); + background: #fff; + z-index: 11000; + overflow: hidden; + border-radius: var(--f7-popup-border-radius); +} +.theme-dark .popup, +.popup.theme-dark { + background: #000; +} +.popup.modal-in, +.popup.modal-out { + transition-duration: var(--f7-popup-transition-duration); +} +.popup.not-animated { + transition-duration: 0ms; +} +.popup.modal-in { + display: block; + transform: translate3d(0, 0, 0); +} +.popup.modal-out { + transform: translate3d(0, 100vh, 0); +} +.popup.swipe-close-to-top.modal-out { + transform: translate3d(0, -100vh, 0); +} +@media (min-width: 630px) and (min-height: 630px) { + .popup:not(.popup-tablet-fullscreen) { + --f7-safe-area-top: 0px; + --f7-safe-area-bottom: 0px; + width: var(--f7-popup-tablet-width); + height: var(--f7-popup-tablet-height); + left: 50%; + top: 50%; + margin-left: calc(-1 * var(--f7-popup-tablet-width) / 2); + margin-top: calc(-1 * var(--f7-popup-tablet-height) / 2); + transform: translate3d(0, 100vh, 0); + box-shadow: var(--f7-popup-box-shadow); + border-radius: var(--f7-popup-tablet-border-radius, var(--f7-popup-border-radius)); + } + .popup:not(.popup-tablet-fullscreen).modal-in { + transform: translate3d(0, 0, 0); + } + .popup:not(.popup-tablet-fullscreen).modal-out { + transform: translate3d(0, 100vh, 0); + } + .popup:not(.popup-tablet-fullscreen).swipe-close-to-top.modal-out { + transform: translate3d(0, -100vh, 0); + } + .popup:not(.popup-tablet-fullscreen).popup-behind { + transform: translate3d(0, 0, 0) scale(0.9); + } +} +html.with-modal-popup .framework7-root > .views .page-content, +html.with-modal-popup .framework7-root > .view .page-content, +html.with-modal-popup .framework7-root > .panel .page-content { + overflow: hidden; + -webkit-overflow-scrolling: auto; +} +html.with-modal-popup-push .popup-push, +html.with-modal-popup-push-closing .popup-push { + top: calc(var(--f7-popup-push-offset) + 10px); + height: calc(100% - var(--f7-popup-push-offset) - 10px); + border-radius: var(--f7-popup-push-border-radius) var(--f7-popup-push-border-radius) 0 0; + --f7-safe-area-top: 0px; +} +html.with-modal-popup-push .popup-push .view, +html.with-modal-popup-push-closing .popup-push .view, +html.with-modal-popup-push .popup-push .page, +html.with-modal-popup-push-closing .popup-push .page { + --f7-safe-area-top: 0px; +} +html.with-modal-popup-push .framework7-root, +html.with-modal-popup-push-closing .framework7-root { + background: #000; +} +html.with-modal-popup-push .framework7-root > .views, +html.with-modal-popup-push-closing .framework7-root > .views, +html.with-modal-popup-push .framework7-root > .view, +html.with-modal-popup-push-closing .framework7-root > .view { + transition-duration: var(--f7-popup-transition-duration); +} +html.with-modal-popup-push.theme-dark .framework7-root > .views:after, +html.with-modal-popup-push-closing.theme-dark .framework7-root > .views:after, +html.with-modal-popup-push.theme-dark .framework7-root > .view:after, +html.with-modal-popup-push-closing.theme-dark .framework7-root > .view:after, +html.with-modal-popup-push .theme-dark .framework7-root > .views:after, +html.with-modal-popup-push-closing .theme-dark .framework7-root > .views:after, +html.with-modal-popup-push .theme-dark .framework7-root > .view:after, +html.with-modal-popup-push-closing .theme-dark .framework7-root > .view:after, +html.with-modal-popup-push .theme-dark.framework7-root > .views:after, +html.with-modal-popup-push-closing .theme-dark.framework7-root > .views:after, +html.with-modal-popup-push .theme-dark.framework7-root > .view:after, +html.with-modal-popup-push-closing .theme-dark.framework7-root > .view:after, +html.with-modal-popup-push .framework7-root > .views.theme-dark:after, +html.with-modal-popup-push-closing .framework7-root > .views.theme-dark:after, +html.with-modal-popup-push .framework7-root > .view.theme-dark:after, +html.with-modal-popup-push-closing .framework7-root > .view.theme-dark:after { + content: ''; + position: absolute; + pointer-events: none; + left: 0; + top: 0; + width: 100%; + height: 100%; + background: rgba(255, 255, 255, 0.1); + z-index: 13000; + border-radius: var(--f7-popup-push-border-radius) var(--f7-popup-push-border-radius) 0 0; + opacity: 1; + animation: popup-dark-push-overlay-fade-in var(--f7-popup-transition-duration) forwards; +} +html.with-modal-popup-push .framework7-root > .views, +html.with-modal-popup-push .framework7-root > .view { + border-radius: var(--f7-popup-push-border-radius) var(--f7-popup-push-border-radius) 0 0; + transform: translate3d(0, 0, 0px) scale(var(--f7-popup-push-scale, 1)) !important; +} +html.with-modal-popup-push .popup:after { + content: ''; + pointer-events: none; + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + background: rgba(0, 0, 0, 0.4); + z-index: 13000; + transition-duration: var(--f7-popup-transition-duration); + border-radius: var(--f7-popup-push-border-radius) var(--f7-popup-push-border-radius) 0 0; + opacity: 0; +} +html.with-modal-popup-push.theme-dark .popup:after, +html.with-modal-popup-push .theme-dark .popup:after, +html.with-modal-popup-push .theme-dark.popup:after { + background: rgba(255, 255, 255, 0.05); +} +html.with-modal-popup-push .popup-behind { + transform: translate3d(0, 0px, 0px) scale(var(--f7-popup-push-scale, 1)); +} +html.with-modal-popup-push .popup-behind:not(.popup-push) { + border-radius: var(--f7-popup-push-border-radius) var(--f7-popup-push-border-radius) 0 0; +} +html.with-modal-popup-push .popup-behind.popup-push { + transform: translate3d(0, calc(0px - var(--f7-popup-push-offset) - 10px), 0px) scale(var(--f7-popup-push-scale, 1)); +} +html.with-modal-popup-push .popup-behind:after { + opacity: 1; + pointer-events: auto; +} +html.with-modal-popup-push-closing.theme-dark .framework7-root > .views:after, +html.with-modal-popup-push-closing.theme-dark .framework7-root > .view:after, +html.with-modal-popup-push-closing .theme-dark .framework7-root > .views:after, +html.with-modal-popup-push-closing .theme-dark .framework7-root > .view:after, +html.with-modal-popup-push-closing .theme-dark.framework7-root > .views:after, +html.with-modal-popup-push-closing .theme-dark.framework7-root > .view:after, +html.with-modal-popup-push-closing .framework7-root > .views.theme-dark:after, +html.with-modal-popup-push-closing .framework7-root > .view.theme-dark:after { + animation: popup-dark-push-overlay-fade-out var(--f7-popup-transition-duration) forwards; +} +@keyframes popup-dark-push-overlay-fade-in { + from { + opacity: 0; + } + to { + opacity: 1; + } +} +@keyframes popup-dark-push-overlay-fade-out { + from { + opacity: 1; + } + to { + opacity: 0; + } +} +/* === Login Screen === */ +:root { + --f7-login-screen-blocks-max-width: 480px; + /* + --f7-login-screen-list-button-text-color: var(--f7-theme-color); + */ + --f7-login-screen-title-text-align: center; + --f7-login-screen-title-text-color: inherit; + --f7-login-screen-title-letter-spacing: 0; + --f7-login-screen-title-font-weight: 600; + --f7-login-screen-title-font-size: 28px; + --f7-login-screen-content-bg-color: #fff; + --f7-login-screen-bg-color: #fff; +} +:root .theme-dark, +:root.theme-dark { + --f7-login-screen-bg-color: #121212; + --f7-login-screen-content-bg-color: #121212; +} +.ios { + --f7-login-screen-blocks-margin-vertical: 25px; +} +.ios .theme-dark, +.ios.theme-dark { + --f7-login-screen-bg-color: #000; + --f7-login-screen-content-bg-color: #000; +} +.md { + --f7-login-screen-blocks-margin-vertical: 24px; +} +.aurora { + --f7-login-screen-blocks-margin-vertical: 15px; +} +.login-screen { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + display: none; + box-sizing: border-box; + transition-property: transform; + transform: translate3d(0, 100vh, 0); + background: var(--f7-login-screen-bg-color); + z-index: 11000; +} +.login-screen.modal-in, +.login-screen.modal-out { + transition-duration: 400ms; +} +.login-screen.not-animated { + transition-duration: 0ms; +} +.login-screen.modal-in { + display: block; + transform: translate3d(0, 0, 0); +} +.login-screen.modal-out { + transform: translate3d(0, 100%, 0); +} +.login-screen-content, +.login-screen-page, +.login-screen .page { + background: var(--f7-login-screen-content-bg-color); +} +.login-screen-content .list-button, +.login-screen-page .list-button { + text-align: center; + color: var(--f7-login-screen-list-button-text-color, var(--f7-theme-color)); +} +.login-screen-content .login-screen-title, +.login-screen-page .login-screen-title, +.login-screen-content .list, +.login-screen-page .list, +.login-screen-content .block, +.login-screen-page .block { + margin: var(--f7-login-screen-blocks-margin-vertical) auto; +} +.login-screen-content .login-screen-title, +.login-screen-page .login-screen-title, +.login-screen-content .list, +.login-screen-page .list, +.login-screen-content .block, +.login-screen-page .block, +.login-screen-content .block-footer, +.login-screen-page .block-footer, +.login-screen-content .block-header, +.login-screen-page .block-header { + max-width: var(--f7-login-screen-blocks-max-width); +} +.login-screen-content .list ul, +.login-screen-page .list ul { + background: none; +} +.login-screen-content .list ul:before, +.login-screen-page .list ul:before, +.login-screen-content .list ul:after, +.login-screen-page .list ul:after { + display: none !important; +} +.login-screen-content .block-footer, +.login-screen-page .block-footer, +.login-screen-content .block-header, +.login-screen-page .block-header { + text-align: center; + margin-left: auto; + margin-right: auto; +} +.login-screen-title { + text-align: var(--f7-login-screen-title-text-align); + font-size: var(--f7-login-screen-title-font-size); + font-weight: var(--f7-login-screen-title-font-weight); + color: var(--f7-login-screen-title-text-color); + letter-spacing: var(--f7-login-screen-title-letter-spacing); +} +.login-screen-page, +.login-screen > .view > .page, +.login-screen > .page { + display: flex; + flex-direction: column; +} +.login-screen-page .page-content, +.login-screen > .view > .page .page-content, +.login-screen > .page .page-content, +.login-screen-page .login-screen-content, +.login-screen > .view > .page .login-screen-content, +.login-screen > .page .login-screen-content { + margin-top: auto; + margin-bottom: auto; + height: auto; + max-height: 100%; + width: 100%; +} +.theme-dark .login-screen-content .list ul, +.theme-dark .login-screen-content .block-strong, +.theme-dark .login-screen-page .list ul, +.theme-dark .login-screen-page .block-strong, +.theme-dark.login-screen-page .list ul, +.theme-dark.login-screen-page .block-strong { + background-color: transparent; +} +/* === Popover === */ +:root { + --f7-popover-width: 260px; +} +.ios { + --f7-popover-border-radius: 13px; + --f7-popover-box-shadow: none; + --f7-popover-actions-icon-size: 28px; + --f7-popover-bg-color: rgba(255, 255, 255, 0.95); + --f7-popover-actions-label-text-color: rgba(0, 0, 0, 0.45); +} +.ios .theme-dark, +.ios.theme-dark { + --f7-popover-bg-color: rgba(30, 30, 30, 0.95); + --f7-popover-actions-label-text-color: rgba(255, 255, 255, 0.55); +} +.md { + --f7-popover-border-radius: 4px; + --f7-popover-box-shadow: var(--f7-elevation-8); + --f7-popover-actions-icon-size: 24px; + --f7-popover-bg-color: #fff; + --f7-popover-actions-label-text-color: rgba(0, 0, 0, 0.54); +} +.md .theme-dark, +.md.theme-dark { + --f7-popover-bg-color: #1c1c1d; + --f7-popover-actions-label-text-color: rgba(255, 255, 255, 0.54); +} +.aurora { + --f7-popover-width: 200px; + --f7-popover-border-radius: 4px; + --f7-popover-box-shadow: 0 0 3px 0 rgba(0, 0, 0, 0.1), 0 5px 11px 0 rgba(0,0,0,0.28); + --f7-popover-actions-icon-size: 24px; + --f7-popover-bg-color: #fff; + --f7-popover-actions-label-text-color: rgba(0, 0, 0, 0.6); +} +.aurora .theme-dark, +.aurora.theme-dark { + --f7-popover-bg-color: #1c1c1d; + --f7-popover-actions-label-text-color: rgba(255, 255, 255, 0.6); +} +.popover { + width: var(--f7-popover-width); + z-index: 13500; + margin: 0; + top: 0; + opacity: 0; + left: 0; + position: absolute; + display: none; + transition-duration: 300ms; + background-color: var(--f7-popover-bg-color); + border-radius: var(--f7-popover-border-radius); + box-shadow: var(--f7-popover-box-shadow); + will-change: transform, opacity; +} +.popover .list { + margin: 0; +} +.popover .list ul { + background: none; +} +.popover .list:first-child ul:before { + display: none !important; +} +.popover .list:last-child ul:after { + display: none !important; +} +.popover .list:first-child ul { + border-radius: var(--f7-popover-border-radius) var(--f7-popover-border-radius) 0 0; +} +.popover .list:first-child li:first-child, +.popover .list:first-child li:first-child a, +.popover .list:first-child li:first-child > label { + border-radius: var(--f7-popover-border-radius) var(--f7-popover-border-radius) 0 0; +} +.popover .list:last-child ul { + border-radius: 0 0 var(--f7-popover-border-radius) var(--f7-popover-border-radius); +} +.popover .list:last-child li:last-child, +.popover .list:last-child li:last-child a, +.popover .list:last-child li:last-child > label { + border-radius: 0 0 var(--f7-popover-border-radius) var(--f7-popover-border-radius); +} +.popover .list:first-child:last-child li:first-child:last-child, +.popover .list:first-child:last-child li:first-child:last-child a, +.popover .list:first-child:last-child li:first-child:last-child > label, +.popover .list:first-child:last-child ul { + border-radius: var(--f7-popover-border-radius); +} +.popover .list + .list { + margin-top: var(--f7-list-margin-vertical); +} +.popover.modal-in { + opacity: 1; +} +.popover.not-animated { + transition-duration: 0ms; +} +.popover-inner { + overflow: auto; + -webkit-overflow-scrolling: touch; +} +.popover-from-actions .item-link i.icon { + width: var(--f7-popover-actions-icon-size); + height: var(--f7-popover-actions-icon-size); + font-size: var(--f7-popover-actions-icon-size); +} +.popover-from-actions-bold { + font-weight: 600; +} +.popover-from-actions-label { + line-height: 1.3; + position: relative; + display: flex; + align-items: center; + padding: var(--f7-actions-label-padding); + color: var(--f7-popover-actions-label-text-color); + font-size: var(--f7-actions-label-font-size); + justify-content: var(--f7-actions-label-justify-content); +} +.popover-from-actions-label:after { + content: ''; + position: absolute; + background-color: var(--f7-list-item-border-color); + display: block; + z-index: 15; + top: auto; + right: auto; + bottom: 0; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 100%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +.popover-from-actions-label:last-child:after { + display: none !important; +} +.ios .popover { + transform: none; + transition-property: opacity; +} +.ios .popover-angle { + width: 26px; + height: 26px; + position: absolute; + left: -26px; + top: 0; + z-index: 100; + overflow: hidden; +} +.ios .popover-angle:after { + content: ''; + background: var(--f7-popover-bg-color); + width: 26px; + height: 26px; + position: absolute; + left: 0; + top: 0; + border-radius: 3px; + transform: rotate(45deg); +} +.ios .popover-angle.on-left { + left: -26px; +} +.ios .popover-angle.on-left:after { + left: 19px; + top: 0; +} +.ios .popover-angle.on-right { + left: 100%; +} +.ios .popover-angle.on-right:after { + left: -19px; + top: 0; +} +.ios .popover-angle.on-top { + left: 0; + top: -26px; +} +.ios .popover-angle.on-top:after { + left: 0; + top: 19px; +} +.ios .popover-angle.on-bottom { + left: 0; + top: 100%; +} +.ios .popover-angle.on-bottom:after { + left: 0; + top: -19px; +} +.md .popover { + transform: scale(0.85, 0.6); + transition-property: opacity, transform; +} +.md .popover.modal-in { + opacity: 1; + transform: scale(1); +} +.md .popover.modal-out { + opacity: 0; + transform: scale(1); +} +.md .popover-on-top { + transform-origin: center bottom; +} +.md .popover-on-top.popover-on-right { + transform-origin: left bottom; +} +.md .popover-on-top.popover-on-left { + transform-origin: right bottom; +} +.md .popover-on-middle { + transform-origin: center center; +} +.md .popover-on-middle.popover-on-right { + transform-origin: left center; +} +.md .popover-on-middle.popover-on-left { + transform-origin: right center; +} +.md .popover-on-bottom { + transform-origin: center top; +} +.md .popover-on-bottom.popover-on-right { + transform-origin: left top; +} +.md .popover-on-bottom.popover-on-left { + transform-origin: right top; +} +.aurora .popover { + transform: none; + transition-property: opacity; +} +.aurora .popover-angle { + width: 18px; + height: 18px; + position: absolute; + left: -18px; + top: 0; + z-index: 100; + overflow: hidden; +} +.aurora .popover-angle:after { + content: ''; + background: var(--f7-popover-bg-color); + width: 18px; + height: 18px; + position: absolute; + left: 0; + top: 0; + border-radius: 2px; + transform: rotate(45deg); +} +.aurora .popover-angle.on-left { + left: -18px; +} +.aurora .popover-angle.on-left:after { + left: 13px; + top: 0; +} +.aurora .popover-angle.on-right { + left: 100%; +} +.aurora .popover-angle.on-right:after { + left: -13px; + top: 0; +} +.aurora .popover-angle.on-top { + left: 0; + top: -18px; +} +.aurora .popover-angle.on-top:after { + left: 0; + top: 13px; +} +.aurora .popover-angle.on-bottom { + left: 0; + top: 100%; +} +.aurora .popover-angle.on-bottom:after { + left: 0; + top: -13px; +} +/* === Actions === */ +:root { + --f7-actions-grid-button-font-size: 12px; + --f7-actions-grid-button-text-color: #757575; +} +:root .theme-dark, +:root.theme-dark { + --f7-actions-label-text-color: rgba(255, 255, 255, 0.55); +} +.ios { + --f7-actions-border-radius: 13px; + /* + --f7-actions-button-text-color: var(--f7-theme-color); + */ + --f7-actions-button-padding: 0px; + --f7-actions-button-text-align: center; + --f7-actions-button-height: 57px; + --f7-actions-button-height-landscape: 44px; + --f7-actions-button-font-size: 20px; + --f7-actions-button-icon-size: 28px; + --f7-actions-button-justify-content: center; + --f7-actions-label-padding: 8px 10px; + --f7-actions-label-font-size: 13px; + --f7-actions-label-justify-content: center; + --f7-actions-group-border-color: transparent; + --f7-actions-group-margin: 8px; + --f7-actions-grid-button-icon-size: 48px; + --f7-actions-bg-color: rgba(255, 255, 255, 0.95); + --f7-actions-bg-color-rgb: 255, 255, 255; + --f7-actions-button-border-color: rgba(0, 0, 0, 0.2); + --f7-actions-button-pressed-bg-color: rgba(230, 230, 230, 0.9); + --f7-actions-button-pressed-bg-color-rgb: 230, 230, 230; + --f7-actions-label-text-color: #8a8a8a; +} +.ios .theme-dark, +.ios.theme-dark { + --f7-actions-bg-color: rgba(45, 45, 45, 0.95); + --f7-actions-bg-color-rgb: 45, 45, 45; + --f7-actions-button-border-color: rgba(255, 255, 255, 0.15); + --f7-actions-button-pressed-bg-color: rgba(50, 50, 50, 0.9); + --f7-actions-button-pressed-bg-color-rgb: 50, 50, 50; +} +.md { + --f7-actions-border-radius: 0px; + --f7-actions-button-border-color: transparent; + --f7-actions-button-padding: 0 16px; + --f7-actions-button-text-align: left; + --f7-actions-button-height: 48px; + --f7-actions-button-height-landscape: 48px; + --f7-actions-button-font-size: 16px; + --f7-actions-button-icon-size: 24px; + --f7-actions-button-justify-content: space-between; + --f7-actions-label-padding: 12px 16px; + --f7-actions-label-font-size: 16px; + --f7-actions-label-justify-content: flex-start; + --f7-actions-group-margin: 0px; + --f7-actions-grid-button-icon-size: 48px; + --f7-actions-bg-color: #fff; + --f7-actions-button-text-color: rgba(0, 0, 0, 0.87); + --f7-actions-button-pressed-bg-color: #e5e5e5; + --f7-actions-label-text-color: rgba(0, 0, 0, 0.54); + --f7-actions-group-border-color: rgba(0, 0, 0, 0.12); +} +.md .theme-dark, +.md.theme-dark { + --f7-actions-bg-color: #202020; + --f7-actions-button-text-color: #fff; + --f7-actions-button-pressed-bg-color: #2e2e2e; + --f7-actions-group-border-color: rgba(255, 255, 255, 0.15); +} +.aurora { + --f7-actions-border-radius: 4px; + --f7-actions-button-padding: 0 16px; + --f7-actions-button-text-align: center; + --f7-actions-button-height: 32px; + --f7-actions-button-height-landscape: 32px; + --f7-actions-button-font-size: 14px; + --f7-actions-button-icon-size: 18px; + --f7-actions-button-justify-content: space-between; + --f7-actions-label-padding: 10px 16px; + --f7-actions-label-font-size: 12px; + --f7-actions-label-justify-content: center; + --f7-actions-group-margin: 16px; + --f7-actions-grid-button-icon-size: 32px; + --f7-actions-bg-color: #fff; + --f7-actions-button-border-color: rgba(0, 0, 0, 0.12); + /* + --f7-actions-button-text-color: var(--f7-theme-color); + */ + --f7-actions-button-pressed-bg-color: #e5e5e5; + --f7-actions-label-text-color: rgba(0, 0, 0, 0.5); + --f7-actions-group-border-color: rgba(0, 0, 0, 0.1); +} +.aurora .theme-dark, +.aurora.theme-dark { + --f7-actions-bg-color: #202020; + --f7-actions-button-text-color: #fff; + --f7-actions-button-border-color: rgba(255, 255, 255, 0.15); + --f7-actions-button-pressed-bg-color: #2e2e2e; + --f7-actions-group-border-color: rgba(255, 255, 255, 0.15); +} +.actions-modal { + position: absolute; + left: 0; + bottom: 0; + z-index: 13500; + width: 100%; + transform: translate3d(0, 100%, 0); + display: none; + max-height: 100%; + overflow: auto; + -webkit-overflow-scrolling: touch; + transition-property: transform; + will-change: transform; +} +.actions-modal.modal-in, +.actions-modal.modal-out { + transition-duration: 300ms; +} +.actions-modal.not-animated { + transition-duration: 0ms; +} +.actions-modal.modal-in { + transform: translate3d(0, calc(-1 * var(--f7-safe-area-bottom)), 0); +} +.actions-modal.modal-out { + z-index: 13499; + transform: translate3d(0, 100%, 0); +} +@media (min-width: 496px) { + .actions-modal { + width: 480px; + left: 50%; + margin-left: -240px; + } +} +@media (orientation: landscape) { + .actions-modal { + --f7-actions-button-height: var(--f7-actions-button-height-landscape); + } +} +.actions-group { + overflow: hidden; + position: relative; + margin: var(--f7-actions-group-margin); + border-radius: var(--f7-actions-border-radius); + transform: translate3d(0, 0, 0); +} +.actions-group:after { + content: ''; + position: absolute; + background-color: var(--f7-actions-group-border-color); + display: block; + z-index: 15; + top: auto; + right: auto; + bottom: 0; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 100%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +.actions-group:last-child:after { + display: none !important; +} +.actions-button, +.actions-label { + width: 100%; + font-weight: normal; + margin: 0; + box-sizing: border-box; + display: block; + position: relative; + overflow: hidden; + text-align: var(--f7-actions-button-text-align); + background: var(--f7-actions-bg-color); +} +@supports ((-webkit-backdrop-filter: blur(20px)) or (backdrop-filter: blur(20px))) { + .ios-translucent-modals .actions-button, + .ios-translucent-modals .actions-label { + background-color: rgba(var(--f7-actions-bg-color-rgb), 0.8); + -webkit-backdrop-filter: saturate(180%) blur(20px); + backdrop-filter: saturate(180%) blur(20px); + } +} +.actions-button:after, +.actions-label:after { + content: ''; + position: absolute; + background-color: var(--f7-actions-button-border-color); + display: block; + z-index: 15; + top: auto; + right: auto; + bottom: 0; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 100%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +.actions-button:first-child, +.actions-label:first-child { + border-radius: var(--f7-actions-border-radius) var(--f7-actions-border-radius) 0 0; +} +.actions-button:last-child, +.actions-label:last-child { + border-radius: 0 0 var(--f7-actions-border-radius) var(--f7-actions-border-radius); +} +.actions-button:last-child:after, +.actions-label:last-child:after { + display: none !important; +} +.actions-button:first-child:last-child, +.actions-label:first-child:last-child { + border-radius: var(--f7-actions-border-radius); +} +.actions-button a, +.actions-label a { + text-decoration: none; + color: inherit; + display: block; +} +.actions-button b, +.actions-label b, +.actions-button.actions-button-bold, +.actions-label.actions-button-bold { + font-weight: 600; +} +.actions-button { + cursor: pointer; + display: flex; + color: var(--f7-actions-button-text-color, var(--f7-theme-color)); + font-size: var(--f7-actions-button-font-size); + height: var(--f7-actions-button-height); + line-height: var(--f7-actions-button-height); + padding: var(--f7-actions-button-padding); + justify-content: var(--f7-actions-button-justify-content); + z-index: 10; +} +.actions-button.active-state { + background-color: var(--f7-actions-button-pressed-bg-color) !important; +} +.actions-button[class*="color-"] { + color: var(--f7-theme-color); +} +@supports ((-webkit-backdrop-filter: blur(20px)) or (backdrop-filter: blur(20px))) { + .ios-translucent-modals .actions-button.active-state { + background-color: rgba(var(--f7-actions-button-pressed-bg-color-rgb), 0.8); + -webkit-backdrop-filter: saturate(180%) blur(20px); + backdrop-filter: saturate(180%) blur(20px); + } +} +.actions-button-media { + flex-shrink: 0; + display: flex; + align-items: center; +} +.actions-button-media i.icon { + width: var(--f7-actions-button-icon-size); + height: var(--f7-actions-button-icon-size); + font-size: var(--f7-actions-button-icon-size); +} +.actions-button a, +.actions-button-text { + position: relative; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} +.actions-button-text { + width: 100%; + flex-shrink: 1; + text-align: var(--f7-actions-button-text-align); +} +.actions-label { + line-height: 1.3; + display: flex; + align-items: center; + font-size: var(--f7-actions-label-font-size); + color: var(--f7-actions-label-text-color); + padding: var(--f7-actions-label-padding); + justify-content: var(--f7-actions-label-justify-content); + min-height: var(--f7-actions-label-min-height, var(--f7-actions-button-height)); +} +.actions-label[class*=" color-"] { + --f7-actions-label-text-color: var(--f7-theme-color); +} +.actions-grid .actions-group { + display: flex; + flex-wrap: wrap; + justify-content: flex-start; + border-radius: 0; + background: var(--f7-actions-bg-color); + margin-top: 0; +} +.actions-grid .actions-group:first-child { + border-radius: var(--f7-actions-border-radius) var(--f7-actions-border-radius) 0 0; +} +.actions-grid .actions-group:last-child { + border-radius: 0 0 var(--f7-actions-border-radius) var(--f7-actions-border-radius); +} +.actions-grid .actions-group:first-child:last-child { + border-radius: var(--f7-actions-border-radius); +} +.actions-grid .actions-group:not(:last-child) { + margin-bottom: 0; +} +.actions-grid .actions-button, +.actions-grid .actions-label { + border-radius: 0 !important; + background: none; +} +.actions-grid .actions-button { + width: 33.33333333%; + display: block; + color: var(--f7-actions-grid-button-text-color); + height: auto; + line-height: 1; + padding: 16px; +} +.actions-grid .actions-button:after { + display: none !important; +} +.actions-grid .actions-button-media { + margin-left: auto !important; + margin-right: auto !important; + width: var(--f7-actions-grid-button-icon-size); + height: var(--f7-actions-grid-button-icon-size); +} +.actions-grid .actions-button-media i.icon { + width: var(--f7-actions-grid-button-icon-size); + height: var(--f7-actions-grid-button-icon-size); + font-size: var(--f7-actions-grid-button-icon-size); +} +.actions-grid .actions-button-text { + margin-left: 0 !important; + text-align: center !important; + margin-top: 8px; + line-height: 1.33em; + height: 1.33em; + font-size: var(--f7-actions-grid-button-font-size); +} +@supports ((-webkit-backdrop-filter: blur(20px)) or (backdrop-filter: blur(20px))) { + .ios-translucent-modals .actions-grid .actions-group { + background-color: rgba(var(--f7-actions-bg-color-rgb), 0.8); + -webkit-backdrop-filter: saturate(180%) blur(20px); + backdrop-filter: saturate(180%) blur(20px); + } +} +.ios .actions-button-media { + margin-left: 16px; +} +.ios .actions-button-media + .actions-button-text { + text-align: left; + margin-left: 16px; +} +.md .actions-button { + transition-duration: 300ms; +} +.md .actions-button-media { + min-width: 40px; +} +.md .actions-button-media + .actions-button-text { + margin-left: 16px; +} +.aurora .actions-button-media { + margin-left: 16px; +} +.aurora .actions-button-media + .actions-button-text { + text-align: left; + margin-left: 16px; +} +/* === Sheet Modal === */ +:root { + --f7-sheet-height: 260px; + --f7-sheet-border-color: transparent; + --f7-sheet-transition-duration: 300ms; + --f7-sheet-push-border-radius: 10px; + --f7-sheet-push-offset: var(--f7-safe-area-top); + --f7-sheet-bg-color: #fff; +} +:root .theme-dark, +:root.theme-dark { + --f7-sheet-bg-color: #202020; +} +.ios { + --f7-sheet-border-color: var(--f7-bars-border-color); +} +.sheet-backdrop { + z-index: 11000; +} +.sheet-modal { + position: absolute; + left: 0; + bottom: 0; + width: 100%; + height: var(--f7-sheet-height); + display: none; + box-sizing: border-box; + transition-property: transform; + transform: translate3d(0, 100%, 0); + background: var(--f7-sheet-bg-color); + z-index: 12500; + will-change: transform, opacity; +} +.sheet-modal.modal-in, +.sheet-modal.modal-out { + transition-duration: var(--f7-sheet-transition-duration); +} +.sheet-modal.not-animated { + transition-duration: 0ms; +} +.sheet-modal.modal-in { + display: block; + transform: translate3d(0, 0, 0); +} +.sheet-modal.modal-in-swipe-step { + display: block; + transform: translate3d(0, var(--f7-sheet-swipe-step, 0), 0); +} +.sheet-modal.modal-out { + transform: translate3d(0, 100%, 0); +} +.sheet-modal .sheet-modal-inner { + height: 100%; + position: relative; + overflow: hidden; +} +.sheet-modal .toolbar { + --f7-safe-area-bottom: 0px; + position: relative; + width: 100%; +} +.sheet-modal .toolbar:after, +.sheet-modal .toolbar:before { + display: none; +} +.sheet-modal .toolbar + .sheet-modal-inner { + height: calc(100% - var(--f7-toolbar-height)); +} +.sheet-modal .toolbar + .sheet-modal-inner .page-content { + --f7-page-toolbar-top-offset: 0px; + --f7-page-toolbar-bottom-offset: 0px; +} +.sheet-modal-top:after { + content: ''; + position: absolute; + background-color: var(--f7-sheet-border-color); + display: block; + z-index: 15; + top: auto; + right: auto; + bottom: 0; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 100%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +.sheet-modal-top:after { + z-index: 700; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + transform-style: preserve-3d; +} +.sheet-modal-bottom, +.sheet-modal:not(.sheet-modal-top) { + --f7-safe-area-top: 0px; +} +.sheet-modal-bottom:before, +.sheet-modal:not(.sheet-modal-top):before { + content: ''; + position: absolute; + background-color: var(--f7-sheet-border-color); + display: block; + z-index: 15; + top: 0; + right: auto; + bottom: auto; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 0%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +.sheet-modal-bottom:before, +.sheet-modal:not(.sheet-modal-top):before { + z-index: 700; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + transform-style: preserve-3d; +} +.sheet-modal-top { + --f7-safe-area-bottom: 0px; + bottom: auto; + top: 0; + transform: translate3d(0, -100%, 0); +} +.sheet-modal-top.modal-out { + transform: translate3d(0, -100%, 0); +} +.sheet-modal-top .toolbar-bottom { + position: absolute; +} +.sheet-modal-top .page-content { + padding-top: var(--f7-safe-area-top); +} +html.with-modal-sheet-push .sheet-modal-push, +html.with-modal-sheet-push-closing .sheet-modal-push { + --f7-sheet-border-color: transparent; + border-radius: var(--f7-sheet-push-border-radius) var(--f7-sheet-push-border-radius) 0 0; + overflow: hidden; +} +html.with-modal-sheet-push .sheet-modal-push .view, +html.with-modal-sheet-push-closing .sheet-modal-push .view, +html.with-modal-sheet-push .sheet-modal-push .page, +html.with-modal-sheet-push-closing .sheet-modal-push .page { + --f7-safe-area-top: 0px; +} +html.with-modal-sheet-push .sheet-modal-push.sheet-modal-top, +html.with-modal-sheet-push-closing .sheet-modal-push.sheet-modal-top { + border-radius: 0 0 var(--f7-sheet-push-border-radius) var(--f7-sheet-push-border-radius); +} +html.with-modal-sheet-push .framework7-root, +html.with-modal-sheet-push-closing .framework7-root { + background: #000; +} +html.with-modal-sheet-push .framework7-root > .views, +html.with-modal-sheet-push-closing .framework7-root > .views, +html.with-modal-sheet-push .framework7-root > .view, +html.with-modal-sheet-push-closing .framework7-root > .view { + transition-duration: var(--f7-sheet-transition-duration); +} +html.with-modal-sheet-push.theme-dark .framework7-root > .views:after, +html.with-modal-sheet-push-closing.theme-dark .framework7-root > .views:after, +html.with-modal-sheet-push.theme-dark .framework7-root > .view:after, +html.with-modal-sheet-push-closing.theme-dark .framework7-root > .view:after, +html.with-modal-sheet-push .theme-dark .framework7-root > .views:after, +html.with-modal-sheet-push-closing .theme-dark .framework7-root > .views:after, +html.with-modal-sheet-push .theme-dark .framework7-root > .view:after, +html.with-modal-sheet-push-closing .theme-dark .framework7-root > .view:after, +html.with-modal-sheet-push .theme-dark.framework7-root > .views:after, +html.with-modal-sheet-push-closing .theme-dark.framework7-root > .views:after, +html.with-modal-sheet-push .theme-dark.framework7-root > .view:after, +html.with-modal-sheet-push-closing .theme-dark.framework7-root > .view:after, +html.with-modal-sheet-push .framework7-root > .views.theme-dark:after, +html.with-modal-sheet-push-closing .framework7-root > .views.theme-dark:after, +html.with-modal-sheet-push .framework7-root > .view.theme-dark:after, +html.with-modal-sheet-push-closing .framework7-root > .view.theme-dark:after { + content: ''; + position: absolute; + pointer-events: none; + left: 0; + top: 0; + width: 100%; + height: 100%; + background: rgba(255, 255, 255, 0.1); + z-index: 13000; + border-radius: var(--f7-sheet-push-border-radius) var(--f7-sheet-push-border-radius) 0 0; + opacity: 1; + animation: sheet-dark-push-overlay-fade-in var(--f7-sheet-transition-duration) forwards; +} +html.with-modal-sheet-push .framework7-root > .views, +html.with-modal-sheet-push .framework7-root > .view { + border-radius: var(--f7-sheet-push-border-radius); + transform: translate3d(0, 0, 0px) scale(var(--f7-sheet-push-scale, 1)) !important; +} +html.with-modal-sheet-push-closing.theme-dark .framework7-root > .views:after, +html.with-modal-sheet-push-closing.theme-dark .framework7-root > .view:after, +html.with-modal-sheet-push-closing .theme-dark .framework7-root > .views:after, +html.with-modal-sheet-push-closing .theme-dark .framework7-root > .view:after, +html.with-modal-sheet-push-closing .theme-dark.framework7-root > .views:after, +html.with-modal-sheet-push-closing .theme-dark.framework7-root > .view:after, +html.with-modal-sheet-push-closing .framework7-root > .views.theme-dark:after, +html.with-modal-sheet-push-closing .framework7-root > .view.theme-dark:after { + animation: sheet-dark-push-overlay-fade-out var(--f7-sheet-transition-duration) forwards; +} +@keyframes sheet-dark-push-overlay-fade-in { + from { + opacity: 0; + } + to { + opacity: 1; + } +} +@keyframes sheet-dark-push-overlay-fade-out { + from { + opacity: 1; + } + to { + opacity: 0; + } +} +.md .sheet-modal .toolbar a.link:not(.tab-link) { + flex-shrink: 0; +} +/* === Toast === */ +:root { + --f7-toast-text-color: #fff; + --f7-toast-font-size: 14px; + --f7-toast-icon-size: 48px; + --f7-toast-max-width: 568px; +} +.ios { + --f7-toast-bg-color: rgba(0, 0, 0, 0.75); + --f7-toast-bg-color-rgb: 0, 0, 0; + --f7-toast-padding-horizontal: 16px; + --f7-toast-padding-vertical: 12px; + --f7-toast-border-radius: 8px; + --f7-toast-button-min-width: 64px; +} +.md { + --f7-toast-bg-color: #323232; + --f7-toast-padding-horizontal: 24px; + --f7-toast-padding-vertical: 14px; + --f7-toast-border-radius: 4px; + --f7-toast-button-min-width: 64px; +} +.aurora { + --f7-toast-bg-color: rgba(0, 0, 0, 0.85); + --f7-toast-padding-horizontal: 10px; + --f7-toast-padding-vertical: 10px; + --f7-toast-border-radius: 4px; + --f7-toast-button-min-width: 32px; +} +.toast { + --f7-touch-ripple-color: var(--f7-touch-ripple-white); + transition-property: transform, opacity; + position: absolute; + max-width: var(--f7-toast-max-width); + z-index: 20000; + color: var(--f7-toast-text-color); + font-size: var(--f7-toast-font-size); + box-sizing: border-box; + background-color: var(--f7-toast-bg-color); + opacity: 0; +} +@supports ((-webkit-backdrop-filter: blur(20px)) or (backdrop-filter: blur(20px))) { + .ios-translucent-modals .toast { + background-color: rgba(var(--f7-toast-bg-color-rgb), 0.8); + -webkit-backdrop-filter: saturate(180%) blur(20px); + backdrop-filter: saturate(180%) blur(20px); + } +} +.toast.modal-in { + opacity: 1; +} +.toast .toast-content { + display: flex; + justify-content: space-between; + align-items: center; + box-sizing: border-box; + padding: var(--f7-toast-padding-vertical) var(--f7-toast-padding-horizontal); +} +.toast .toast-text { + line-height: 20px; + flex-shrink: 1; + min-width: 0; +} +.toast .toast-button { + flex-shrink: 0; + min-width: var(--f7-toast-button-min-width); + margin-top: -8px; + margin-bottom: -8px; +} +.toast.toast-with-icon .toast-content { + display: block; + text-align: center; +} +.toast.toast-with-icon .toast-text { + text-align: center; +} +.toast.toast-with-icon .toast-icon .f7-icons, +.toast.toast-with-icon .toast-icon .material-icons { + font-size: var(--f7-toast-icon-size); +} +.toast.toast-center { + top: 50%; +} +.toast.toast-top { + margin-top: var(--f7-safe-area-top); +} +.ios .toast { + transition-duration: 300ms; + width: 100%; + left: 0; +} +.ios .toast.toast-top { + top: 0; + transform: translate3d(0, -100%, 0); +} +.ios .toast.toast-top.modal-in { + transform: translate3d(0, 0%, 0); +} +.ios .toast.toast-center { + width: auto; + left: 50%; + border-radius: var(--f7-toast-border-radius); + transform: translate3d(-50%, -50%, 0); +} +.ios .toast.toast-center.modal-in { + transform: translate3d(-50%, -50%, 0); +} +.ios .toast.toast-bottom { + bottom: 0; + transform: translate3d(0, 100%, 0); +} +.ios .toast.toast-bottom.modal-in { + transform: translate3d(0, 0%, 0); +} +@media (max-width: 568px) { + .ios .toast.toast-top { + margin-top: 0; + } + .ios .toast.toast-top .toast-content { + padding-top: calc(var(--f7-toast-padding-vertical) + var(--f7-safe-area-top)); + } + .ios .toast.toast-bottom .toast-content { + padding-bottom: calc(var(--f7-toast-padding-vertical) + var(--f7-safe-area-bottom)); + } +} +@media (min-width: 569px) { + .ios .toast { + left: 50%; + margin-left: calc(-1 * var(--f7-toast-max-width) / 2); + border-radius: var(--f7-toast-border-radius); + } + .ios .toast.toast-top { + top: 16px; + } + .ios .toast.toast-center { + margin-left: 0; + } + .ios .toast.toast-bottom { + margin-bottom: calc(16px + var(--f7-safe-area-bottom)); + } +} +@media (min-width: 1024px) { + .ios .toast { + margin-left: 0; + width: auto; + } + .ios .toast.toast-horizontal-left { + left: 16px; + } + .ios .toast.toast-horizontal-right { + left: auto; + right: 16px; + } + .ios .toast.toast-horizontal-center { + left: 50%; + width: var(--f7-toast-max-width); + margin-left: calc(-1 * var(--f7-toast-max-width) / 2); + } +} +.ios .toast-button { + margin-left: 16px; + margin-right: calc(-1 * var(--f7-button-padding-horizontal)); +} +.md .toast { + transition-duration: 200ms; + border-radius: var(--f7-toast-border-radius); + width: calc(100% - 16px); + transform: scale(0.9); + left: 8px; +} +.md .toast.modal-in { + transform: scale(1); +} +.md .toast.modal-out { + transform: scale(1); +} +.md .toast.toast-top { + top: 8px; +} +.md .toast.toast-center { + left: 50%; + width: auto; + transform: scale(0.9) translate3d(-55%, -55%, 0); +} +.md .toast.toast-center.modal-in { + transform: scale(1) translate3d(-50%, -50%, 0); +} +.md .toast.toast-center.modal-out { + transform: scale(1) translate3d(-50%, -50%, 0); +} +.md .toast.toast-bottom { + bottom: calc(8px + var(--f7-safe-area-bottom)); +} +@media (min-width: 584px) { + .md .toast { + left: 50%; + margin-left: calc(-1 * var(--f7-toast-max-width) / 2); + } + .md .toast.toast-center { + margin-left: 0; + } +} +@media (min-width: 1024px) { + .md .toast { + margin-left: 0; + width: auto; + } + .md .toast.toast-horizontal-left { + left: 24px; + } + .md .toast.toast-horizontal-right { + left: auto; + right: 24px; + } + .md .toast.toast-horizontal-center { + left: 50%; + width: var(--f7-toast-max-width); + margin-left: calc(-1 * var(--f7-toast-max-width) / 2); + } + .md .toast.toast-bottom { + bottom: calc(24px + var(--f7-safe-area-bottom)); + } + .md .toast.toast-top { + top: 24px; + } +} +.md .toast-button { + margin-left: 16px; + margin-right: -8px; +} +.aurora .toast { + transition-duration: 200ms; + border-radius: var(--f7-toast-border-radius); + left: 10px; + width: calc(100% - 20px); + transform: scale(0.9); +} +.aurora .toast.modal-in { + transform: scale(1); +} +.aurora .toast.modal-out { + transform: scale(1); +} +.aurora .toast.toast-top { + top: 10px; +} +.aurora .toast.toast-center { + left: 50%; + width: auto; + transform: scale(0.9) translate3d(-55%, -55%, 0); +} +.aurora .toast.toast-center.modal-in { + transform: scale(1) translate3d(-50%, -50%, 0); +} +.aurora .toast.toast-center.modal-out { + transform: scale(1) translate3d(-50%, -50%, 0); +} +.aurora .toast.toast-bottom { + bottom: calc(10px + var(--f7-safe-area-bottom)); +} +@media (min-width: 584px) { + .aurora .toast { + left: 50%; + margin-left: calc(-1 * var(--f7-toast-max-width) / 2); + } + .aurora .toast.toast-center { + margin-left: 0; + } +} +@media (min-width: 1024px) { + .aurora .toast { + margin-left: 0; + width: auto; + } + .aurora .toast.toast-horizontal-left { + left: 10px; + } + .aurora .toast.toast-horizontal-right { + left: auto; + right: 10px; + } + .aurora .toast.toast-horizontal-center { + left: 50%; + width: var(--f7-toast-max-width); + margin-left: calc(-1 * var(--f7-toast-max-width) / 2); + } +} +.aurora .toast-button { + margin-left: 10px; +} +/* === Preloader === */ +:root { + --f7-preloader-modal-padding: 8px; + --f7-preloader-modal-bg-color: rgba(0, 0, 0, 0.8); +} +.ios { + --f7-preloader-color: #6c6c6c; + --f7-preloader-size: 20px; + --f7-preloader-modal-preloader-size: 34px; + --f7-preloader-modal-border-radius: 5px; +} +.md { + --f7-preloader-color: #757575; + --f7-preloader-size: 32px; + --f7-preloader-modal-preloader-size: 32px; + --f7-preloader-modal-border-radius: 4px; +} +.aurora { + --f7-preloader-color: #757575; + --f7-preloader-size: 24px; + --f7-preloader-modal-preloader-size: 24px; + --f7-preloader-modal-border-radius: 4px; +} +.preloader { + display: inline-block; + vertical-align: middle; + width: var(--f7-preloader-size); + height: var(--f7-preloader-size); + font-size: 0; + position: relative; +} +/* === Preloader Modal === */ +.preloader-backdrop { + visibility: visible; + opacity: 0; + background: none; + z-index: 14000; +} +.preloader-modal { + position: absolute; + left: 50%; + top: 50%; + padding: var(--f7-preloader-modal-padding); + background: var(--f7-preloader-modal-bg-color); + z-index: 14500; + transform: translateX(-50%) translateY(-50%); + border-radius: var(--f7-preloader-modal-border-radius); +} +.preloader-modal .preloader { + --f7-preloader-size: var(--f7-preloader-modal-preloader-size); + display: block !important; +} +html.with-modal-preloader .page-content, +.with-modal-preloader .page-content, +.with-modal-preloader.page-content { + overflow: hidden; + -webkit-overflow-scrolling: auto; +} +.preloader[class*="color-"] { + --f7-preloader-color: var(--f7-theme-color); +} +.ios .preloader { + animation: ios-preloader-spin 1s steps(12, end) infinite; +} +.ios .preloader .preloader-inner-line { + display: block; + width: 7.15%; + height: 28.5%; + border-radius: 100px; + background: var(--f7-preloader-color); + position: absolute; + left: 50%; + top: 50%; + transform-origin: center 175%; +} +.ios .preloader .preloader-inner-line:nth-child(1) { + transform: translate(-50%, -175%) rotate(0deg); + opacity: 0.27; +} +.ios .preloader .preloader-inner-line:nth-child(2) { + transform: translate(-50%, -175%) rotate(30deg); + opacity: 0.32272727; +} +.ios .preloader .preloader-inner-line:nth-child(3) { + transform: translate(-50%, -175%) rotate(60deg); + opacity: 0.37545455; +} +.ios .preloader .preloader-inner-line:nth-child(4) { + transform: translate(-50%, -175%) rotate(90deg); + opacity: 0.42818182; +} +.ios .preloader .preloader-inner-line:nth-child(5) { + transform: translate(-50%, -175%) rotate(120deg); + opacity: 0.48090909; +} +.ios .preloader .preloader-inner-line:nth-child(6) { + transform: translate(-50%, -175%) rotate(150deg); + opacity: 0.53363636; +} +.ios .preloader .preloader-inner-line:nth-child(7) { + transform: translate(-50%, -175%) rotate(180deg); + opacity: 0.58636364; +} +.ios .preloader .preloader-inner-line:nth-child(8) { + transform: translate(-50%, -175%) rotate(210deg); + opacity: 0.63909091; +} +.ios .preloader .preloader-inner-line:nth-child(9) { + transform: translate(-50%, -175%) rotate(240deg); + opacity: 0.69181818; +} +.ios .preloader .preloader-inner-line:nth-child(10) { + transform: translate(-50%, -175%) rotate(270deg); + opacity: 0.74454545; +} +.ios .preloader .preloader-inner-line:nth-child(11) { + transform: translate(-50%, -175%) rotate(300deg); + opacity: 0.79727273; +} +.ios .preloader .preloader-inner-line:nth-child(12) { + transform: translate(-50%, -175%) rotate(330deg); + opacity: 0.85; +} +@keyframes ios-preloader-spin { + 100% { + transform: rotate(360deg); + } +} +.md .preloader { + animation: md-preloader-outer 3300ms linear infinite; +} +@keyframes md-preloader-outer { + 0% { + transform: rotate(0); + } + 100% { + transform: rotate(360deg); + } +} +.md .preloader-inner { + position: relative; + display: block; + width: 100%; + height: 100%; + animation: md-preloader-inner-rotate 5.25s cubic-bezier(0.35, 0, 0.25, 1) infinite; +} +.md .preloader-inner .preloader-inner-gap { + position: absolute; + width: 2px; + left: 50%; + margin-left: -1px; + top: 0; + bottom: 0; + box-sizing: border-box; + border-top: 4px solid var(--f7-preloader-color); +} +.md .preloader-inner .preloader-inner-left, +.md .preloader-inner .preloader-inner-right { + position: absolute; + top: 0; + height: 100%; + width: 50%; + overflow: hidden; +} +.md .preloader-inner .preloader-inner-half-circle { + position: absolute; + top: 0; + height: 100%; + width: 200%; + box-sizing: border-box; + border: 4px solid var(--f7-preloader-color); + border-bottom-color: transparent !important; + border-radius: 50%; + animation-iteration-count: infinite; + animation-duration: 1.3125s; + animation-timing-function: cubic-bezier(0.35, 0, 0.25, 1); +} +.md .preloader-inner .preloader-inner-left { + left: 0; +} +.md .preloader-inner .preloader-inner-left .preloader-inner-half-circle { + left: 0; + border-right-color: transparent !important; + animation-name: md-preloader-left-rotate; +} +.md .preloader-inner .preloader-inner-right { + right: 0; +} +.md .preloader-inner .preloader-inner-right .preloader-inner-half-circle { + right: 0; + border-left-color: transparent !important; + animation-name: md-preloader-right-rotate; +} +.md .preloader.color-multi .preloader-inner-left .preloader-inner-half-circle { + animation-name: md-preloader-left-rotate-multicolor; +} +.md .preloader.color-multi .preloader-inner-right .preloader-inner-half-circle { + animation-name: md-preloader-right-rotate-multicolor; +} +@keyframes md-preloader-left-rotate { + 0%, + 100% { + transform: rotate(130deg); + } + 50% { + transform: rotate(-5deg); + } +} +@keyframes md-preloader-right-rotate { + 0%, + 100% { + transform: rotate(-130deg); + } + 50% { + transform: rotate(5deg); + } +} +@keyframes md-preloader-inner-rotate { + 12.5% { + transform: rotate(135deg); + } + 25% { + transform: rotate(270deg); + } + 37.5% { + transform: rotate(405deg); + } + 50% { + transform: rotate(540deg); + } + 62.5% { + transform: rotate(675deg); + } + 75% { + transform: rotate(810deg); + } + 87.5% { + transform: rotate(945deg); + } + 100% { + transform: rotate(1080deg); + } +} +@keyframes md-preloader-left-rotate-multicolor { + 0%, + 100% { + border-left-color: #4285F4; + transform: rotate(130deg); + } + 75% { + border-left-color: #1B9A59; + border-top-color: #1B9A59; + } + 50% { + border-left-color: #F7C223; + border-top-color: #F7C223; + transform: rotate(-5deg); + } + 25% { + border-left-color: #DE3E35; + border-top-color: #DE3E35; + } +} +@keyframes md-preloader-right-rotate-multicolor { + 0%, + 100% { + border-right-color: #4285F4; + transform: rotate(-130deg); + } + 75% { + border-right-color: #1B9A59; + border-top-color: #1B9A59; + } + 50% { + border-right-color: #F7C223; + border-top-color: #F7C223; + transform: rotate(5deg); + } + 25% { + border-top-color: #DE3E35; + border-right-color: #DE3E35; + } +} +.aurora .preloader-inner { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; +} +.aurora .preloader-inner-circle { + width: 100%; + height: 100%; + position: absolute; + left: 0; + top: 0; + border-radius: 50%; + border: calc(var(--f7-preloader-size) / 8) solid var(--f7-preloader-color); + border-top-color: transparent; + box-sizing: border-box; + animation: aurora-preloader-rotate 1s linear infinite; +} +.aurora .preloader.color-multi .preloader-inner-circle { + animation: aurora-preloader-rotate 1s linear infinite, aurora-preloader-multicolor 2s linear infinite; +} +@keyframes aurora-preloader-rotate { + 0% { + transform: rotate(0deg); + } + 100% { + transform: rotate(360deg); + } +} +@keyframes aurora-preloader-multicolor { + 0%, + 100% { + border-color: #2196f3; + border-top-color: transparent; + } + 25% { + border-color: #ff3b30; + border-top-color: transparent; + } + 50% { + border-color: #4cd964; + border-top-color: transparent; + } + 75% { + border-color: #ff9500; + border-top-color: transparent; + } +} +/* === Progressbar === */ +:root { + /* + --f7-progressbar-progress-color: var(--f7-theme-color); + */ +} +.ios { + --f7-progressbar-height: 2px; + --f7-progressbar-border-radius: 2px; + --f7-progressbar-bg-color: rgba(0, 0, 0, 0.3); +} +.ios .theme-dark, +.ios.theme-dark { + --f7-progressbar-bg-color: rgba(255, 255, 255, 0.3); +} +.md { + /* + --f7-progressbar-bg-color: rgba(var(--f7-theme-color-rgb), 0.5); + */ + --f7-progressbar-height: 4px; + --f7-progressbar-border-radius: 0px; +} +.aurora { + --f7-progressbar-height: 6px; + --f7-progressbar-border-radius: 3px; + --f7-progressbar-bg-color: #dbdbdb; +} +.aurora .theme-dark, +.aurora.theme-dark { + --f7-progressbar-bg-color: #444; +} +.progressbar, +.progressbar-infinite { + width: 100%; + overflow: hidden; + position: relative; + display: block; + transform-style: preserve-3d; + background: var(--f7-progressbar-bg-color, rgba(var(--f7-theme-color-rgb), 0.5)); + transform-origin: center top; + height: var(--f7-progressbar-height); + border-radius: var(--f7-progressbar-border-radius); +} +.progressbar { + vertical-align: middle; +} +.progressbar span { + background-color: var(--f7-progressbar-progress-color, var(--f7-theme-color)); + width: 100%; + height: 100%; + position: absolute; + left: 0; + top: 0; + transform: translate3d(-100%, 0, 0); + transition-duration: 150ms; +} +.progressbar-infinite { + z-index: 15000; +} +.progressbar-infinite:before, +.progressbar-infinite:after { + content: ''; + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + transform-origin: left center; + transform: translate3d(0, 0, 0); + display: block; + background-color: var(--f7-progressbar-progress-color, var(--f7-theme-color)); +} +.progressbar-infinite.color-multi { + background: none !important; +} +.progressbar-in { + animation: progressbar-in 150ms forwards; +} +.progressbar-out { + animation: progressbar-out 150ms forwards; +} +body > .progressbar, +.view > .progressbar, +.views > .progressbar, +.page > .progressbar, +.panel > .progressbar, +.popup > .progressbar, +.framework7-root > .progressbar, +body > .progressbar-infinite, +.view > .progressbar-infinite, +.views > .progressbar-infinite, +.page > .progressbar-infinite, +.panel > .progressbar-infinite, +.popup > .progressbar-infinite, +.framework7-root > .progressbar-infinite { + position: absolute; + left: 0; + top: 0; + z-index: 15000; + border-radius: 0 !important; + transform-origin: center top !important; +} +@keyframes progressbar-in { + from { + opacity: 0; + transform: scaleY(0); + } + to { + opacity: 1; + transform: scaleY(1); + } +} +@keyframes progressbar-out { + from { + opacity: 1; + transform: scaleY(1); + } + to { + opacity: 0; + transform: scaleY(0); + } +} +.ios .progressbar-infinite:before { + animation: ios-progressbar-infinite 1s linear infinite; +} +.ios .progressbar-infinite:after { + display: none; +} +.ios .progressbar-infinite.color-multi:before { + width: 400%; + background-image: linear-gradient(to right, #4cd964, #5ac8fa, #007aff, #34aadc, #5856d6, #ff2d55, #5856d6, #34aadc, #007aff, #5ac8fa, #4cd964); + background-size: 25% 100%; + background-repeat: repeat-x; + animation: ios-progressbar-infinite-multicolor 3s linear infinite; +} +@keyframes ios-progressbar-infinite { + 0% { + transform: translate3d(-100%, 0, 0); + } + 100% { + transform: translate3d(100%, 0, 0); + } +} +@keyframes ios-progressbar-infinite-multicolor { + 0% { + transform: translate3d(0%, 0, 0); + } + 100% { + transform: translate3d(-50%, 0, 0); + } +} +.md .progressbar-infinite:before { + animation: md-progressbar-infinite-1 2s linear infinite; +} +.md .progressbar-infinite:after { + animation: md-progressbar-infinite-2 2s linear infinite; +} +.md .progressbar-infinite.color-multi:before { + background: none; + animation: md-progressbar-infinite-multicolor-bg 3s step-end infinite; +} +.md .progressbar-infinite.color-multi:after { + background: none; + animation: md-progressbar-infinite-multicolor-fill 3s linear infinite; + transform-origin: center center; +} +@keyframes md-progressbar-infinite-1 { + 0% { + transform: translateX(-10%) scaleX(0.1); + } + 25% { + transform: translateX(30%) scaleX(0.6); + } + 50% { + transform: translateX(100%) scaleX(1); + } + 100% { + transform: translateX(100%) scaleX(1); + } +} +@keyframes md-progressbar-infinite-2 { + 0% { + transform: translateX(-100%) scaleX(1); + } + 40% { + transform: translateX(-100%) scaleX(1); + } + 75% { + transform: translateX(60%) scaleX(0.35); + } + 90% { + transform: translateX(100%) scaleX(0.1); + } + 100% { + transform: translateX(100%) scaleX(0.1); + } +} +@keyframes md-progressbar-infinite-multicolor-bg { + 0% { + background-color: #4caf50; + } + 25% { + background-color: #f44336; + } + 50% { + background-color: #2196f3; + } + 75% { + background-color: #ffeb3b; + } +} +@keyframes md-progressbar-infinite-multicolor-fill { + 0% { + transform: scaleX(0); + background-color: #f44336; + } + 24.9% { + transform: scaleX(1); + background-color: #f44336; + } + 25% { + transform: scaleX(0); + background-color: #2196f3; + } + 49.9% { + transform: scaleX(1); + background-color: #2196f3; + } + 50% { + transform: scaleX(0); + background-color: #ffeb3b; + } + 74.9% { + transform: scaleX(1); + background-color: #ffeb3b; + } + 75% { + transform: scaleX(0); + background-color: #4caf50; + } + 100% { + transform: scaleX(1); + background-color: #4caf50; + } +} +.aurora .progressbar, +.aurora .progressbar-infinite, +.aurora .progressbar span, +.aurora .progressbar-infinite:before { + box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.05) inset; +} +.aurora .progressbar-infinite:before { + animation: aurora-progressbar-infinite 1s linear infinite; +} +.aurora .progressbar-infinite:after { + display: none; +} +.aurora .progressbar-infinite.color-multi:before { + width: 400%; + background-image: linear-gradient(to right, #4cd964, #5ac8fa, #007aff, #34aadc, #5856d6, #ff2d55, #5856d6, #34aadc, #007aff, #5ac8fa, #4cd964); + background-size: 25% 100%; + background-repeat: repeat-x; + animation: aurora-progressbar-infinite-multicolor 3s linear infinite; +} +@keyframes aurora-progressbar-infinite { + 0% { + transform: translate3d(-100%, 0, 0); + } + 100% { + transform: translate3d(100%, 0, 0); + } +} +@keyframes aurora-progressbar-infinite-multicolor { + 0% { + transform: translate3d(0%, 0, 0); + } + 100% { + transform: translate3d(-50%, 0, 0); + } +} +/* === Sortable === */ +:root { + --f7-sortable-handler-color: rgba(0, 0, 0, 0.22); + --f7-sortable-sorting-item-bg-color: rgba(255, 255, 255, 0.8); +} +:root .theme-dark, +:root.theme-dark { + --f7-sortable-sorting-item-bg-color: rgba(50, 50, 50, 0.8); + --f7-sortable-handler-color: rgba(255, 255, 255, 0.55); +} +.ios { + --f7-sortable-handler-width: 36px; + --f7-sortable-sorting-item-box-shadow: 0px 2px 8px rgba(0, 0, 0, 0.6); +} +.md { + --f7-sortable-handler-width: 42px; + --f7-sortable-sorting-item-box-shadow: var(--f7-elevation-2); +} +.aurora { + --f7-sortable-handler-width: 32px; + --f7-sortable-sorting-item-box-shadow: var(--f7-elevation-2); +} +.sortable .sortable-handler { + width: var(--f7-sortable-handler-width); + height: 100%; + position: absolute; + top: 0; + z-index: 10; + opacity: 0; + pointer-events: none; + cursor: move; + transition-duration: 300ms; + display: flex; + align-items: center; + justify-content: center; + overflow: hidden; + right: var(--f7-safe-area-right); +} +.sortable .sortable-handler:after { + font-family: 'framework7-core-icons'; + font-weight: normal; + font-style: normal; + line-height: 1; + letter-spacing: normal; + text-transform: none; + white-space: nowrap; + word-wrap: normal; + direction: ltr; + -webkit-font-smoothing: antialiased; + text-rendering: optimizeLegibility; + -moz-osx-font-smoothing: grayscale; + font-feature-settings: "liga"; + text-align: center; + display: block; + width: 100%; + height: 100%; + font-size: 20px; + transition-duration: 300ms; + transform: translateX(10px); + color: var(--f7-sortable-handler-color); + overflow: hidden; + height: 20px; + width: 18px; +} +.sortable li.sorting { + z-index: 50; + background: var(--f7-sortable-sorting-item-bg-color); + transition-duration: 0ms; + box-shadow: var(--f7-sortable-sorting-item-box-shadow); +} +.sortable li.sorting .item-inner:after { + display: none !important; +} +.sortable-opposite .sortable-handler { + left: var(--f7-safe-area-right); + right: auto; +} +.sortable-opposite .sortable-handler:after { + transform: translateX(-10px); +} +.sortable:not(.sortable-opposite) .item-inner, +.sortable-opposite .item-content, +.sortable.simple-list li, +.sortable-opposite.links-list li a { + transition-duration: 300ms; + transition-property: all; +} +.sortable-sorting li { + transition-duration: 300ms; +} +.sortable-enabled li:not(.no-sorting):not(.disallow-sorting) .sortable-handler { + pointer-events: auto; + opacity: 1; +} +.sortable-enabled li:not(.no-sorting):not(.disallow-sorting) .sortable-handler:after { + transform: translateX(0px); +} +.sortable-enabled:not(.sortable-opposite) li:not(.no-sorting):not(.disallow-sorting) .item-link .item-inner:before, +.sortable-enabled:not(.sortable-opposite) li:not(.no-sorting):not(.disallow-sorting) .item-link .item-title-row:before, +.sortable-enabled:not(.sortable-opposite).links-list li:not(.no-sorting):not(.disallow-sorting) > a:before { + display: none; +} +.sortable-enabled:not(.sortable-opposite) li:not(.no-sorting):not(.disallow-sorting) .item-inner, +.sortable-enabled:not(.sortable-opposite) li:not(.no-sorting):not(.disallow-sorting) .item-link .item-inner, +.sortable-enabled:not(.sortable-opposite) li:not(.no-sorting):not(.disallow-sorting) .item-link.no-chevron .item-inner, +.sortable-enabled.no-chevron:not(.sortable-opposite) li:not(.no-sorting):not(.disallow-sorting) .item-link .item-inner, +.sortable-enabled :not(.sortable-opposite).no-chevron .item-link .item-inner, +.no-chevron .sortable-enabled:not(.sortable-opposite) li:not(.no-sorting):not(.disallow-sorting) .item-link .item-inner, +.simple-list.sortable-enabled:not(.sortable-opposite) li:not(.no-sorting):not(.disallow-sorting), +.links-list.sortable-enabled:not(.sortable-opposite) li:not(.no-sorting):not(.disallow-sorting) a { + padding-right: calc(var(--f7-sortable-handler-width) + var(--f7-safe-area-right)); +} +.sortable-opposite.sortable-enabled li:not(.no-sorting):not(.disallow-sorting) .item-content, +.simple-list.sortable-opposite.sortable-enabled li:not(.no-sorting):not(.disallow-sorting), +.links-list.sortable-opposite.sortable-enabled li:not(.no-sorting):not(.disallow-sorting) a { + padding-left: calc(var(--f7-sortable-handler-width) + var(--f7-safe-area-right)); +} +.ios .sortable-handler:after { + content: 'sort_ios'; +} +.md .sortable-handler:after { + content: 'sort_md'; +} +.aurora .sortable-handler:after { + content: 'sort_md'; + font-size: 16px; + height: 16px; +} +/* === Swipeout === */ +:root { + --f7-swipeout-button-text-color: #fff; + --f7-swipeout-delete-button-bg-color: #ff3b30; + --f7-swipeout-button-font-size: inherit; + --f7-swipeout-button-font-weight: inherit; + --f7-swipeout-button-bg-color: rgba(0, 0, 0, 0.22); +} +:root .theme-dark, +:root.theme-dark { + --f7-swipeout-button-bg-color: rgba(255, 255, 255, 0.55); +} +.ios { + --f7-swipeout-button-padding: 0 30px; +} +.md { + --f7-swipeout-button-padding: 0 24px; +} +.aurora { + --f7-swipeout-button-padding: 0 12px; + --f7-swipeout-button-font-weight: 500; +} +.swipeout { + overflow: hidden; + transform-style: preserve-3d; +} +.swipeout-deleting { + transition-duration: 300ms; +} +.swipeout-deleting .swipeout-content { + transform: translateX(-100%); +} +.swipeout-transitioning .swipeout-content, +.swipeout-transitioning .swipeout-actions-right a, +.swipeout-transitioning .swipeout-actions-left a, +.swipeout-transitioning .swipeout-overswipe { + transition-duration: 300ms; + transition-property: transform, left; +} +.swipeout-content { + position: relative; + z-index: 10; +} +.swipeout-overswipe { + transition-duration: 200ms; + transition-property: left; +} +.swipeout-actions-left, +.swipeout-actions-right { + position: absolute; + top: 0; + height: 100%; + display: flex; + direction: ltr; +} +.swipeout-actions-left > a, +.swipeout-actions-right > a, +.swipeout-actions-left > button, +.swipeout-actions-right > button, +.swipeout-actions-left > span, +.swipeout-actions-right > span, +.swipeout-actions-left > div, +.swipeout-actions-right > div { + color: var(--f7-swipeout-button-text-color); + background: var(--f7-swipeout-button-bg-color); + padding: var(--f7-swipeout-button-padding); + display: flex; + align-items: center; + position: relative; + left: 0; + font-size: var(--f7-swipeout-button-font-size); + font-weight: var(--f7-swipeout-button-font-weight); +} +.swipeout-actions-left > a:after, +.swipeout-actions-right > a:after, +.swipeout-actions-left > button:after, +.swipeout-actions-right > button:after, +.swipeout-actions-left > span:after, +.swipeout-actions-right > span:after, +.swipeout-actions-left > div:after, +.swipeout-actions-right > div:after { + content: ''; + position: absolute; + top: 0; + width: 600%; + height: 100%; + background: inherit; + z-index: -1; + transform: translate3d(0, 0, 0); + pointer-events: none; +} +.swipeout-actions-left .swipeout-delete, +.swipeout-actions-right .swipeout-delete { + background: var(--f7-swipeout-delete-button-bg-color); +} +.swipeout-actions-right { + right: 0%; + transform: translateX(100%); +} +.swipeout-actions-right > a:after, +.swipeout-actions-right > button:after, +.swipeout-actions-right > span:after, +.swipeout-actions-right > div:after { + left: 100%; + margin-left: -1px; +} +.swipeout-actions-left { + left: 0%; + transform: translateX(-100%); +} +.swipeout-actions-left > a:after, +.swipeout-actions-left > button:after, +.swipeout-actions-left > span:after, +.swipeout-actions-left > div:after { + right: 100%; + margin-right: -1px; +} +.swipeout-actions-left [class*="color-"], +.swipeout-actions-right [class*="color-"] { + --f7-swipeout-button-bg-color: var(--f7-theme-color); +} +/* === Accordion === */ +:root { + --f7-accordion-chevron-icon-down: 'chevron_down'; + --f7-accordion-chevron-icon-up: 'chevron_up'; +} +.aurora { + --f7-accordion-chevron-icon-down: 'chevron_down_aurora'; + --f7-accordion-chevron-icon-up: 'chevron_up_aurora'; +} +.accordion-item-toggle { + cursor: pointer; +} +.list.accordion-list .accordion-item-toggle { + transition-duration: 300ms; + position: relative; + overflow: hidden; +} +.list.accordion-list .accordion-item-toggle.active-state { + transition-duration: 300ms; + background-color: var(--f7-list-link-pressed-bg-color); +} +.list.accordion-list .accordion-item-toggle.active-state > .item-inner:after { + background-color: transparent; +} +.list.accordion-list .accordion-item-toggle .item-inner { + transition-duration: 300ms; + transition-property: background-color; +} +.list.accordion-list .accordion-item-toggle .item-inner:after { + transition-duration: 300ms; +} +.list.accordion-list .accordion-item-toggle .ripple-wave { + z-index: 0; +} +.accordion-item .item-link .item-inner:after { + transition-duration: 300ms; +} +.accordion-item .list, +.accordion-item .block { + margin-top: 0; + margin-bottom: 0; +} +.accordion-item .block > h1:first-child, +.accordion-item .block > h2:first-child, +.accordion-item .block > h3:first-child, +.accordion-item .block > h4:first-child, +.accordion-item .block > p:first-child { + margin-top: 10px; +} +.accordion-item .block > h1:last-child, +.accordion-item .block > h2:last-child, +.accordion-item .block > h3:last-child, +.accordion-item .block > h4:last-child, +.accordion-item .block > p:last-child { + margin-bottom: 10px; +} +.accordion-item-opened .accordion-item-toggle .item-inner:after, +.accordion-item-opened > .item-link .item-inner:after { + background-color: transparent; +} +.list li.accordion-item ul { + padding-left: 0; +} +.accordion-item-content { + position: relative; + overflow: hidden; + height: 0; + font-size: 14px; + transition-duration: 300ms; +} +.accordion-item-opened > .accordion-item-content { + height: auto; +} +html.device-android-4 .accordion-item-content { + transform: none; +} +.list .accordion-item-toggle .item-inner:before { + font-family: 'framework7-core-icons'; + font-weight: normal; + font-style: normal; + line-height: 1; + letter-spacing: normal; + text-transform: none; + white-space: nowrap; + word-wrap: normal; + direction: ltr; + -webkit-font-smoothing: antialiased; + text-rendering: optimizeLegibility; + -moz-osx-font-smoothing: grayscale; + font-feature-settings: "liga"; + text-align: center; + display: block; + width: 100%; + height: 100%; + font-size: 20px; + position: absolute; + top: 50%; + font-size: var(--f7-list-chevron-icon-font-size); + color: var(--f7-list-chevron-icon-color); + pointer-events: none; + right: calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-right)); +} +.list:not(.accordion-opposite) .accordion-item-toggle .item-inner { + padding-right: calc(var(--f7-list-chevron-icon-area) + var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-right)); +} +.accordion-opposite .accordion-item-toggle.item-link .item-inner, +.accordion-opposite .accordion-item-toggle .item-inner, +.accordion-opposite .accordion-item > .item-link > .item-inner, +.accordion-opposite .accordion-item > .item-link > .item-content > .item-inner { + padding-right: calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-right)); +} +.accordion-opposite .accordion-item > .item-link > .item-title-row { + padding-right: 0; +} +.accordion-opposite .accordion-item-toggle.item-link .item-inner:before, +.accordion-opposite .accordion-item-toggle .item-inner:before, +.accordion-opposite .accordion-item > .item-link > .item-inner:before, +.accordion-opposite .accordion-item > .item-link > .item-content > .item-inner:before, +.accordion-opposite .accordion-item > .item-link .item-title-row:before { + display: none; +} +.accordion-opposite .accordion-item-toggle > .item-content, +.accordion-opposite .accordion-item-toggle.item-content, +.accordion-opposite .accordion-item > .item-content, +.accordion-opposite .accordion-item > .item-link > .item-content, +.accordion-opposite.links-list .accordion-item > a { + position: relative; + padding-left: calc(var(--f7-list-chevron-icon-area) + var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-left)); +} +.accordion-opposite .accordion-item-toggle > .item-content:before, +.accordion-opposite .accordion-item-toggle.item-content:before, +.accordion-opposite .accordion-item > .item-content:before, +.accordion-opposite .accordion-item > .item-link > .item-content:before, +.accordion-opposite.links-list .accordion-item > a:before { + font-family: 'framework7-core-icons'; + font-weight: normal; + font-style: normal; + line-height: 1; + letter-spacing: normal; + text-transform: none; + white-space: nowrap; + word-wrap: normal; + direction: ltr; + -webkit-font-smoothing: antialiased; + text-rendering: optimizeLegibility; + -moz-osx-font-smoothing: grayscale; + font-feature-settings: "liga"; + text-align: center; + display: block; + width: 100%; + height: 100%; + font-size: 20px; + position: absolute; + top: 50%; + font-size: var(--f7-list-chevron-icon-font-size); + color: var(--f7-list-chevron-icon-color); + pointer-events: none; + content: var(--f7-accordion-chevron-icon-down); + width: 14px; + height: 8px; + margin-top: -4px; + line-height: 8px; + transform: translateX(-50%); + left: calc((var(--f7-list-chevron-icon-area) + var(--f7-list-item-padding-horizontal)) / 2 + var(--f7-safe-area-left)); +} +.list .accordion-item-toggle.active-state { + background-color: var(--f7-list-link-pressed-bg-color); +} +.list .accordion-item-toggle .item-inner:before, +.list:not(.media-list) .accordion-item:not(.media-item) .accordion-item-toggle .item-inner:before, +.list:not(.media-list) .accordion-item:not(.media-item) > .item-link .item-inner:before, +.media-list .accordion-item .accordion-item-toggle .item-title-row:before, +.media-list .accordion-item > .item-link .item-title-row:before, +.accordion-item.media-item .accordion-item-toggle .item-title-row:before, +.accordion-item.media-item > .item-link .item-title-row:before, +.links-list .accordion-item > a:before { + content: var(--f7-accordion-chevron-icon-down); + width: 14px; + height: 8px; + margin-top: -4px; + line-height: 8px; +} +.list .accordion-item-toggle.accordion-item-opened .item-inner:before, +.list:not(.media-list) .accordion-item-opened:not(.media-item) .accordion-item-toggle .item-inner:before, +.list:not(.media-list) .accordion-item-opened:not(.media-item) > .item-link .item-inner:before, +.media-list .accordion-item-opened .accordion-item-toggle .item-title-row:before, +.media-list .accordion-item-opened > .item-link .item-title-row:before, +.accordion-item-opened.media-item .accordion-item-toggle .item-title-row:before, +.accordion-item-opened.media-item > .item-link .item-title-row:before, +.links-list .accordion-item-opened > a:before, +.accordion-opposite .accordion-item-opened .accordion-item-toggle > .item-content:before, +.accordion-opposite .accordion-item-opened .accordion-item-toggle.item-content:before, +.accordion-opposite .accordion-item-opened > .item-content:before, +.accordion-opposite .accordion-item-opened > .item-link > .item-content:before, +.accordion-opposite .links-list .accordion-item-opened > a:before { + content: var(--f7-accordion-chevron-icon-up); + width: 14px; + height: 8px; + margin-top: -4px; + line-height: 8px; +} +/* === Contacts === */ +:root .theme-dark, +:root.theme-dark { + --f7-contacts-list-title-text-color: #fff; +} +.ios { + --f7-contacts-list-title-font-size: inherit; + --f7-contacts-list-title-font-weight: 600; + --f7-contacts-list-title-height: 22px; + --f7-contacts-list-title-text-color: #000; + --f7-contacts-list-title-bg-color: #f7f7f7; +} +.ios .theme-dark, +.ios.theme-dark { + --f7-contacts-list-title-bg-color: #323234; +} +.md { + --f7-contacts-list-title-font-size: 20px; + --f7-contacts-list-title-font-weight: 500; + /* + --f7-contacts-list-title-text-color: var(--f7-theme-color); + */ + --f7-contacts-list-title-height: 48px; + --f7-contacts-list-title-bg-color: transparent; +} +.aurora { + --f7-contacts-list-title-font-weight: 600; + --f7-contacts-list-title-text-color: #000; + /* + --f7-contacts-list-title-bg-color: var(--f7-list-group-title-bg-color); + --f7-contacts-list-title-font-size: var(--f7-list-group-title-font-size); + --f7-contacts-list-title-line-height: var(--f7-list-group-title-height); + --f7-contacts-list-title-height: var(--f7-list-group-title-height); + */ +} +.contacts-list { + --f7-list-margin-vertical: 0px; +} +.contacts-list .list-group-title, +.contacts-list li.list-group-title { + background-color: var(--f7-contacts-list-title-bg-color, var(--f7-list-group-title-bg-color)); + font-weight: var(--f7-contacts-list-title-font-weight, var(--f7-list-group-title-font-weight)); + font-size: var(--f7-contacts-list-title-font-size, var(--f7-list-group-title-font-size)); + color: var(--f7-contacts-list-title-text-color, var(--f7-theme-color)); + line-height: var(--f7-contacts-list-title-height, var(--f7-list-group-title-height)); + height: var(--f7-contacts-list-title-height, var(--f7-list-group-title-height)); +} +.contacts-list .list-group:first-child ul:before { + display: none !important; +} +.contacts-list .list-group:last-child ul:after { + display: none !important; +} +.md .contacts-list .list-group-title { + pointer-events: none; + overflow: visible; + width: 56px; +} +.md .contacts-list .list-group-title + li { + margin-top: calc(var(--f7-contacts-list-title-height) * -1); +} +.md .contacts-list li:not(.list-group-title) { + padding-left: 56px; +} +/* === Virtual List === */ +/* === Indexed List === */ +:root { + --f7-list-index-width: 16px; + --f7-list-index-font-size: 11px; + --f7-list-index-font-weight: 600; + /* --f7-list-index-text-color: var(--f7-theme-color); */ + --f7-list-index-item-height: 14px; + --f7-list-index-label-text-color: #fff; + /* --f7-list-index-label-bg-color: var(--f7-theme-color); */ + --f7-list-index-label-font-weight: 500; +} +.ios { + --f7-list-index-label-size: 44px; + --f7-list-index-label-font-size: 17px; + --f7-list-index-skip-dot-size: 6px; +} +.md { + --f7-list-index-label-size: 56px; + --f7-list-index-label-font-size: 20px; + --f7-list-index-skip-dot-size: 4px; +} +.aurora { + --f7-list-index-font-size: 12px; + --f7-list-index-label-size: 32px; + --f7-list-index-label-font-size: 12px; + --f7-list-index-label-font-weight: 600; + --f7-list-index-skip-dot-size: 4px; +} +.list-index { + position: absolute; + top: 0; + bottom: 0; + text-align: center; + z-index: 10; + width: var(--f7-list-index-width); + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; + right: var(--f7-safe-area-right); +} +.list-index:before { + content: ''; + position: absolute; + width: 20px; + top: 0; + right: 100%; + height: 100%; +} +.list-index ul { + color: var(--f7-list-index-text-color, var(--f7-theme-color)); + font-size: var(--f7-list-index-font-size); + font-weight: var(--f7-list-index-font-weight); + list-style: none; + margin: 0; + padding: 0; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + flex-shrink: 0; + height: 100%; + width: 100%; + position: relative; +} +.list-index li { + margin: 0; + padding: 0; + list-style: none; + position: relative; + height: var(--f7-list-index-item-height); + line-height: var(--f7-list-index-item-height); + flex-shrink: 0; + display: block; + width: 100%; +} +.list-index .list-index-skip-placeholder:after { + content: ''; + position: absolute; + left: 50%; + top: 50%; + border-radius: 50%; + width: var(--f7-list-index-skip-dot-size); + height: var(--f7-list-index-skip-dot-size); + margin-left: calc(-1 * var(--f7-list-index-skip-dot-size) / 2); + margin-top: calc(-1 * var(--f7-list-index-skip-dot-size) / 2); + background: var(--f7-list-index-text-color, var(--f7-theme-color)); +} +.list-index .list-index-label { + position: absolute; + bottom: 0; + right: 100%; + text-align: center; + background-color: var(--f7-list-index-label-bg-color, var(--f7-theme-color)); + color: var(--f7-list-index-label-text-color); + width: var(--f7-list-index-label-size); + height: var(--f7-list-index-label-size); + line-height: var(--f7-list-index-label-size); + font-size: var(--f7-list-index-label-font-size); + font-weight: var(--f7-list-index-label-font-weight); +} +.navbar ~ .page > .list-index, +.navbars ~ .page > .list-index, +.navbar ~ .list-index { + top: var(--f7-navbar-height); +} +.navbar ~ .toolbar-top ~ .list-index, +.navbars ~ .toolbar-top ~ .list-index, +.ios .navbar ~ .toolbar-top-ios ~ .list-index, +.ios .navbars ~ .toolbar-top-ios .md .navbar ~ .toolbar-top-md ~ .list-index { + top: calc(var(--f7-navbar-height) + var(--f7-toolbar-height)); +} +.navbar ~ .toolbar-top.tabbar-labels ~ .list-index, +.navbars ~ .toolbar-top.tabbar-labels ~ .list-index, +.ios .navbar ~ .toolbar-top-ios.tabbar-labels ~ .list-index, +.ios .navbars ~ .toolbar-top-ios .md .navbar ~ .toolbar-top-md.tabbar-labels ~ .list-index { + top: calc(var(--f7-navbar-height) + var(--f7-tabbar-labels-height)); +} +.navbar ~ .subnavbar ~ .list-index, +.navbars ~ .subnavbar ~ .list-index, +.page-with-subnavbar .navbar ~ .list-index { + top: calc(var(--f7-navbar-height) + var(--f7-subnavbar-height)); +} +.toolbar-bottom ~ .page > .list-index, +.ios .toolbar-bottom-ios ~ .page > .list-index, +.md .toolbar-bottom-md ~ .page > .list-index, +.toolbar-bottom ~ * .page > .list-index, +.ios .toolbar-bottom-ios ~ * .page > .list-index, +.md .toolbar-bottom-md ~ * .page > .list-index, +.toolbar-bottom ~ .list-index, +.ios .toolbar-bottom-ios ~ .list-index, +.md .toolbar-bottom-md ~ .list-index { + bottom: calc(var(--f7-toolbar-height) + var(--f7-safe-area-bottom)); +} +.toolbar-bottom.tabbar-labels ~ .page > .list-index, +.ios .toolbar-bottom-ios.tabbar-labels ~ .page > .list-index, +.md .toolbar-bottom-md.tabbar-labels ~ .page > .list-index, +.toolbar-bottom.tabbar-labels ~ * .page > .list-index, +.ios .toolbar-bottom-ios.tabbar-labels ~ * .page > .list-index, +.md .toolbar-bottom-md.tabbar-labels ~ * .page > .list-index, +.toolbar-bottom.tabbar-labels ~ .list-index, +.ios .toolbar-bottom-ios.tabbar-labels ~ .list-index, +.md .toolbar-bottom-md.tabbar-labels ~ .list-index { + bottom: calc(var(--f7-tabbar-labels-height) + var(--f7-safe-area-bottom)); +} +.ios .list-index .list-index-label { + margin-bottom: calc(-1 * var(--f7-list-index-label-size) / 2); + margin-right: calc(var(--f7-list-index-width) - 1px); + border-radius: 50%; +} +.ios .list-index .list-index-label:before { + position: absolute; + width: 100%; + height: 100%; + border-radius: 50% 0% 50% 50%; + content: ''; + background-color: inherit; + left: 0; + top: 0; + transform: rotate(45deg); + z-index: -1; +} +.md .list-index .list-index-label { + border-radius: 50% 50% 0 50%; +} +.aurora .list-index .list-index-label { + margin-bottom: calc(-1 * var(--f7-list-index-label-size) / 2); + margin-right: calc(var(--f7-list-index-width) - 1px); + border-radius: 50%; +} +.aurora .list-index .list-index-label:before { + position: absolute; + width: 100%; + height: 100%; + border-radius: 50% 1px 50% 50%; + content: ''; + background-color: inherit; + left: 0; + top: 0; + transform: rotate(45deg); + z-index: -1; +} +/* === Timeline === */ +:root { + --f7-timeline-inner-block-margin-vertical: 16px; + --f7-timeline-divider-margin-horizontal: 16px; + --f7-timeline-horizontal-date-height: 34px; + --f7-timeline-year-height: 24px; + --f7-timeline-year-font-weight: inherit; + --f7-timeline-month-height: 24px; + --f7-timeline-month-font-size: inherit; + --f7-timeline-month-font-weight: inherit; + --f7-timeline-item-text-font-weight: inherit; + --f7-timeline-item-subtitle-font-weight: inherit; + --f7-timeline-item-inner-bg-color: #fff; +} +:root .theme-dark, +:root.theme-dark { + --f7-timeline-item-inner-bg-color: #1c1c1d; + --f7-timeline-horizontal-item-border-color: rgba(255, 255, 255, 0.15); + --f7-timeline-horizontal-item-date-border-color: rgba(255, 255, 255, 0.15); +} +.ios { + --f7-timeline-padding-horizontal: 16px; + --f7-timeline-margin-vertical: 35px; + --f7-timeline-item-inner-border-radius: 7px; + --f7-timeline-item-inner-box-shadow: none; + --f7-timeline-item-time-font-size: 13px; + --f7-timeline-item-title-font-size: 17px; + --f7-timeline-item-title-line-height: inherit; + --f7-timeline-item-title-font-weight: 600; + --f7-timeline-item-subtitle-font-size: 15px; + --f7-timeline-item-subtitle-line-height: inherit; + --f7-timeline-item-text-font-size: inherit; + --f7-timeline-item-text-color: inherit; + --f7-timeline-item-text-line-height: inherit; + --f7-timeline-year-font-size: 16px; + --f7-timeline-horizontal-item-padding: 10px; + --f7-timeline-horizontal-item-date-shadow-image: none; + --f7-timeline-item-time-text-color: rgba(0, 0, 0, 0.45); + --f7-timeline-horizontal-item-border-color: rgba(0, 0, 0, 0.22); + --f7-timeline-horizontal-item-date-border-color: rgba(0, 0, 0, 0.22); +} +.ios .theme-dark, +.ios.theme-dark { + --f7-timeline-item-time-text-color: rgba(255, 255, 255, 0.55); +} +.md { + --f7-timeline-padding-horizontal: 16px; + --f7-timeline-margin-vertical: 32px; + --f7-timeline-item-inner-border-radius: 4px; + --f7-timeline-item-inner-box-shadow: var(--f7-elevation-1); + --f7-timeline-item-time-font-size: 13px; + --f7-timeline-item-title-font-size: 16px; + --f7-timeline-item-title-line-height: inherit; + --f7-timeline-item-title-font-weight: 400; + --f7-timeline-item-subtitle-font-size: inherit; + --f7-timeline-item-subtitle-line-height: inherit; + --f7-timeline-item-text-font-size: inherit; + --f7-timeline-item-text-line-height: inherit; + --f7-timeline-item-text-color: inherit; + --f7-timeline-year-font-size: 16px; + --f7-timeline-horizontal-item-padding: 12px; + --f7-timeline-horizontal-item-date-shadow-image: var(--f7-bars-shadow-bottom-image); + --f7-timeline-item-time-text-color: rgba(0, 0, 0, 0.54); + --f7-timeline-horizontal-item-border-color: rgba(0, 0, 0, 0.12); + --f7-timeline-horizontal-item-date-border-color: transparent; +} +.md .theme-dark, +.md.theme-dark { + --f7-timeline-item-time-text-color: rgba(255, 255, 255, 0.54); +} +.aurora { + --f7-timeline-padding-horizontal: 10px; + --f7-timeline-margin-vertical: 15px; + --f7-timeline-item-inner-border-radius: 4px; + --f7-timeline-item-inner-box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.15); + --f7-timeline-item-time-font-size: 12px; + --f7-timeline-item-title-font-size: 14px; + --f7-timeline-item-title-line-height: 1.3; + --f7-timeline-item-title-font-weight: 600; + --f7-timeline-item-subtitle-font-size: 14px; + --f7-timeline-item-subtitle-line-height: 1.3; + --f7-timeline-item-text-font-size: 12px; + --f7-timeline-item-text-line-height: 1.33; + --f7-timeline-year-font-size: 14px; + --f7-timeline-year-font-weight: 500; + --f7-timeline-horizontal-item-padding: 10px; + --f7-timeline-horizontal-item-date-shadow-image: none; + --f7-timeline-item-time-text-color: rgba(0, 0, 0, 0.5); + --f7-timeline-item-text-color: rgba(0, 0, 0, 0.6); + --f7-timeline-horizontal-item-border-color: rgba(0, 0, 0, 0.2); + --f7-timeline-horizontal-item-date-border-color: rgba(0, 0, 0, 0.2); +} +.aurora .theme-dark, +.aurora.theme-dark { + --f7-timeline-item-time-text-color: rgba(255, 255, 255, 0.54); + --f7-timeline-item-text-color: rgba(255, 255, 255, 0.54); +} +.timeline { + box-sizing: border-box; + margin: var(--f7-timeline-margin-vertical) 0; + padding: 0 var(--f7-timeline-padding-horizontal); + padding-top: 0; + padding-bottom: 0; + padding-left: calc(var(--f7-timeline-padding-horizontal) + var(--f7-safe-area-left)); + padding-right: calc(var(--f7-timeline-padding-horizontal) + var(--f7-safe-area-right)); +} +.block-strong .timeline { + padding: 0; + margin: 0; +} +.timeline-item { + display: flex; + justify-content: flex-start; + overflow: hidden; + box-sizing: border-box; + position: relative; + padding: 2px 0px var(--f7-timeline-padding-horizontal); +} +.timeline-item:last-child { + padding-bottom: 2px; +} +.timeline-item-date { + flex-shrink: 0; + width: 50px; + text-align: right; + box-sizing: border-box; +} +.timeline-item-date small { + font-size: 10px; +} +.timeline-item-content { + margin: 2px; + min-width: 0; + position: relative; + flex-shrink: 10; +} +.timeline-item-content .card, +.timeline-item-content.card, +.timeline-item-content .list, +.timeline-item-content.list, +.timeline-item-content .block, +.timeline-item-content.block { + margin: 0; + width: 100%; +} +.timeline-item-content .card + .card, +.timeline-item-content .list + .card, +.timeline-item-content .block + .card, +.timeline-item-content .card + .list, +.timeline-item-content .list + .list, +.timeline-item-content .block + .list, +.timeline-item-content .card + .block, +.timeline-item-content .list + .block, +.timeline-item-content .block + .block { + margin: var(--f7-timeline-inner-block-margin-vertical) 0 0; +} +.timeline-item-content p:first-child, +.timeline-item-content ul:first-child, +.timeline-item-content ol:first-child, +.timeline-item-content h1:first-child, +.timeline-item-content h2:first-child, +.timeline-item-content h3:first-child, +.timeline-item-content h4:first-child { + margin-top: 0; +} +.timeline-item-content p:last-child, +.timeline-item-content ul:last-child, +.timeline-item-content ol:last-child, +.timeline-item-content h1:last-child, +.timeline-item-content h2:last-child, +.timeline-item-content h3:last-child, +.timeline-item-content h4:last-child { + margin-bottom: 0; +} +.timeline-item-inner { + background: var(--f7-timeline-item-inner-bg-color); + box-sizing: border-box; + border-radius: var(--f7-timeline-item-inner-border-radius); + padding: 8px var(--f7-timeline-padding-horizontal); + box-shadow: var(--f7-timeline-item-inner-box-shadow); +} +.timeline-item-inner + .timeline-item-inner { + margin-top: var(--f7-timeline-inner-block-margin-vertical); +} +.timeline-item-inner .block { + padding: 0; + color: inherit; +} +.timeline-item-inner .block-strong { + padding-left: 0; + padding-right: 0; + margin: 0; +} +.timeline-item-inner .block-strong:before, +.timeline-item-inner .block-strong:after { + display: none !important; +} +.timeline-item-inner .list ul:before, +.timeline-item-inner .list ul:after { + display: none !important; +} +.timeline-item-divider { + width: 1px; + position: relative; + width: 10px; + height: 10px; + background: #bbb; + border-radius: 50%; + flex-shrink: 0; + margin: 3px var(--f7-timeline-divider-margin-horizontal) 0; +} +.timeline-item-divider:after, +.timeline-item-divider:before { + content: ' '; + width: 1px; + height: 100vh; + position: absolute; + left: 50%; + background: inherit; + transform: translate3d(-50%, 0, 0); +} +.timeline-item-divider:after { + top: 100%; +} +.timeline-item-divider:before { + bottom: 100%; +} +.timeline-item:last-child .timeline-item-divider:after { + display: none; +} +.timeline-item:first-child .timeline-item-divider:before { + display: none; +} +.timeline-item-time { + font-size: var(--f7-timeline-item-time-font-size); + margin-top: var(--f7-timeline-inner-block-margin-vertical); + color: var(--f7-timeline-item-time-text-color); +} +.timeline-item-time:first-child, +.timeline-item-time:last-child { + margin-top: 0; +} +.timeline-item-title + .timeline-item-time { + margin-top: 0; +} +.timeline-item-title { + font-size: var(--f7-timeline-item-title-font-size); + font-weight: var(--f7-timeline-item-title-font-weight); + line-height: var(--f7-timeline-item-title-line-height); +} +.timeline-item-subtitle { + font-size: var(--f7-timeline-item-subtitle-font-size); + font-weight: var(--f7-timeline-item-subtitle-font-weight); + line-height: var(--f7-timeline-item-subtitle-line-height); +} +.timeline-item-text { + color: var(--f7-timeline-item-text-color); + font-size: var(--f7-timeline-item-text-font-size); + font-weight: var(--f7-timeline-item-text-font-weight); + line-height: var(--f7-timeline-item-text-line-height); +} +.timeline-sides .timeline-item-right, +.timeline-sides .timeline-item { + margin-left: calc(50% - (var(--f7-timeline-divider-margin-horizontal) * 2 + 10px) / 2 - 50px); + margin-right: 0; +} +.timeline-sides .timeline-item-right .timeline-item-date, +.timeline-sides .timeline-item .timeline-item-date { + text-align: right; +} +.timeline-sides .timeline-item-left, +.timeline-sides .timeline-item:not(.timeline-item-right):nth-child(2n) { + flex-direction: row-reverse; + margin-right: calc(50% - (var(--f7-timeline-divider-margin-horizontal) * 2 + 10px) / 2 - 50px); + margin-left: 0; +} +.timeline-sides .timeline-item-left .timeline-item-date, +.timeline-sides .timeline-item:not(.timeline-item-right):nth-child(2n) .timeline-item-date { + text-align: left; +} +@media (min-width: 480px) { + .xsmall-sides .timeline-item-right, + .xsmall-sides .timeline-item { + margin-left: calc(50% - (var(--f7-timeline-divider-margin-horizontal) * 2 + 10px) / 2 - 50px); + margin-right: 0; + } + .xsmall-sides .timeline-item-right .timeline-item-date, + .xsmall-sides .timeline-item .timeline-item-date { + text-align: right; + } + .xsmall-sides .timeline-item-left, + .xsmall-sides .timeline-item:not(.timeline-item-right):nth-child(2n) { + flex-direction: row-reverse; + margin-right: calc(50% - (var(--f7-timeline-divider-margin-horizontal) * 2 + 10px) / 2 - 50px); + margin-left: 0; + } + .xsmall-sides .timeline-item-left .timeline-item-date, + .xsmall-sides .timeline-item:not(.timeline-item-right):nth-child(2n) .timeline-item-date { + text-align: left; + } +} +@media (min-width: 568px) { + .small-sides .timeline-item-right, + .small-sides .timeline-item { + margin-left: calc(50% - (var(--f7-timeline-divider-margin-horizontal) * 2 + 10px) / 2 - 50px); + margin-right: 0; + } + .small-sides .timeline-item-right .timeline-item-date, + .small-sides .timeline-item .timeline-item-date { + text-align: right; + } + .small-sides .timeline-item-left, + .small-sides .timeline-item:not(.timeline-item-right):nth-child(2n) { + flex-direction: row-reverse; + margin-right: calc(50% - (var(--f7-timeline-divider-margin-horizontal) * 2 + 10px) / 2 - 50px); + margin-left: 0; + } + .small-sides .timeline-item-left .timeline-item-date, + .small-sides .timeline-item:not(.timeline-item-right):nth-child(2n) .timeline-item-date { + text-align: left; + } +} +@media (min-width: 768px) { + .medium-sides .timeline-item-right, + .medium-sides .timeline-item { + margin-left: calc(50% - (var(--f7-timeline-divider-margin-horizontal) * 2 + 10px) / 2 - 50px); + margin-right: 0; + } + .medium-sides .timeline-item-right .timeline-item-date, + .medium-sides .timeline-item .timeline-item-date { + text-align: right; + } + .medium-sides .timeline-item-left, + .medium-sides .timeline-item:not(.timeline-item-right):nth-child(2n) { + flex-direction: row-reverse; + margin-right: calc(50% - (var(--f7-timeline-divider-margin-horizontal) * 2 + 10px) / 2 - 50px); + margin-left: 0; + } + .medium-sides .timeline-item-left .timeline-item-date, + .medium-sides .timeline-item:not(.timeline-item-right):nth-child(2n) .timeline-item-date { + text-align: left; + } +} +@media (min-width: 1024px) { + .large-sides .timeline-item-right, + .large-sides .timeline-item { + margin-left: calc(50% - (var(--f7-timeline-divider-margin-horizontal) * 2 + 10px) / 2 - 50px); + margin-right: 0; + } + .large-sides .timeline-item-right .timeline-item-date, + .large-sides .timeline-item .timeline-item-date { + text-align: right; + } + .large-sides .timeline-item-left, + .large-sides .timeline-item:not(.timeline-item-right):nth-child(2n) { + flex-direction: row-reverse; + margin-right: calc(50% - (var(--f7-timeline-divider-margin-horizontal) * 2 + 10px) / 2 - 50px); + margin-left: 0; + } + .large-sides .timeline-item-left .timeline-item-date, + .large-sides .timeline-item:not(.timeline-item-right):nth-child(2n) .timeline-item-date { + text-align: left; + } +} +@media (min-width: 1200px) { + .xlarge-sides .timeline-item-right, + .xlarge-sides .timeline-item { + margin-left: calc(50% - (var(--f7-timeline-divider-margin-horizontal) * 2 + 10px) / 2 - 50px); + margin-right: 0; + } + .xlarge-sides .timeline-item-right .timeline-item-date, + .xlarge-sides .timeline-item .timeline-item-date { + text-align: right; + } + .xlarge-sides .timeline-item-left, + .xlarge-sides .timeline-item:not(.timeline-item-right):nth-child(2n) { + flex-direction: row-reverse; + margin-right: calc(50% - (var(--f7-timeline-divider-margin-horizontal) * 2 + 10px) / 2 - 50px); + margin-left: 0; + } + .xlarge-sides .timeline-item-left .timeline-item-date, + .xlarge-sides .timeline-item:not(.timeline-item-right):nth-child(2n) .timeline-item-date { + text-align: left; + } +} +.timeline-horizontal { + height: 100%; + display: flex; + padding: 0; + margin: 0; + position: relative; + padding-left: var(--f7-safe-area-left); + padding-right: 0; +} +.timeline-horizontal .timeline-item { + display: block; + width: 33.33333333vw; + margin: 0; + padding: 0; + flex-shrink: 0; + position: relative; + height: 100%; + padding-top: var(--f7-timeline-horizontal-date-height) !important; + padding-bottom: var(--f7-timeline-horizontal-item-padding); +} +.timeline-horizontal .timeline-item:after { + content: ''; + position: absolute; + background-color: var(--f7-timeline-horizontal-item-border-color); + display: block; + z-index: 15; + top: 0; + right: 0; + bottom: auto; + left: auto; + width: 1px; + height: 100%; + transform-origin: 100% 50%; + transform: scaleX(calc(1 / var(--f7-device-pixel-ratio))); +} +.timeline-horizontal .timeline-item-date { + padding: 0px var(--f7-timeline-horizontal-item-padding); + width: auto; + line-height: var(--f7-timeline-horizontal-date-height); + position: absolute; + left: 0; + top: 0; + width: 100%; + height: var(--f7-timeline-horizontal-date-height); + background-color: var(--f7-bars-bg-color); + color: var(--f7-bars-text-color); + text-align: left; +} +@supports ((-webkit-backdrop-filter: blur(20px)) or (backdrop-filter: blur(20px))) { + .ios-translucent-bars .timeline-horizontal .timeline-item-date { + background-color: rgba(var(--f7-bars-bg-color-rgb), var(--f7-bars-translucent-opacity)); + -webkit-backdrop-filter: saturate(180%) blur(var(--f7-bars-translucent-blur)); + backdrop-filter: saturate(180%) blur(var(--f7-bars-translucent-blur)); + } +} +.timeline-horizontal .timeline-item-date:after { + content: ''; + position: absolute; + background-color: var(--f7-timeline-horizontal-item-date-border-color); + display: block; + z-index: 15; + top: auto; + right: auto; + bottom: 0; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 100%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +.timeline-horizontal .timeline-item-date:before { + content: ''; + position: absolute; + right: 0; + width: 100%; + top: 100%; + bottom: auto; + height: 8px; + pointer-events: none; + background: var(--f7-timeline-horizontal-item-date-shadow-image); +} +.timeline-horizontal.no-shadow .timeline-item-date:before { + display: none; +} +.timeline-horizontal .timeline-item-content { + padding: var(--f7-timeline-horizontal-item-padding); + height: calc(100% - var(--f7-timeline-horizontal-item-padding)); + overflow: auto; + -webkit-overflow-scrolling: touch; + margin: 0; +} +.timeline-horizontal .timeline-item-divider { + display: none; +} +.timeline-horizontal > .timeline-item:last-child:after, +.timeline-horizontal .timeline-month:last-child .timeline-item:last-child:after { + display: none !important; +} +.timeline-horizontal.col-5 .timeline-item { + width: 5vw; +} +.timeline-horizontal.col-10 .timeline-item { + width: 10vw; +} +.timeline-horizontal.col-15 .timeline-item { + width: 15vw; +} +.timeline-horizontal.col-20 .timeline-item { + width: 20vw; +} +.timeline-horizontal.col-25 .timeline-item { + width: 25vw; +} +.timeline-horizontal.col-30 .timeline-item { + width: 30vw; +} +.timeline-horizontal.col-33 .timeline-item { + width: 33.333333333333336vw; +} +.timeline-horizontal.col-35 .timeline-item { + width: 35vw; +} +.timeline-horizontal.col-40 .timeline-item { + width: 40vw; +} +.timeline-horizontal.col-45 .timeline-item { + width: 45vw; +} +.timeline-horizontal.col-50 .timeline-item { + width: 50vw; +} +.timeline-horizontal.col-55 .timeline-item { + width: 55vw; +} +.timeline-horizontal.col-60 .timeline-item { + width: 60vw; +} +.timeline-horizontal.col-65 .timeline-item { + width: 65vw; +} +.timeline-horizontal.col-66 .timeline-item { + width: 66.66666666666666vw; +} +.timeline-horizontal.col-70 .timeline-item { + width: 70vw; +} +.timeline-horizontal.col-75 .timeline-item { + width: 75vw; +} +.timeline-horizontal.col-80 .timeline-item { + width: 80vw; +} +.timeline-horizontal.col-85 .timeline-item { + width: 85vw; +} +.timeline-horizontal.col-90 .timeline-item { + width: 90vw; +} +.timeline-horizontal.col-95 .timeline-item { + width: 95vw; +} +.timeline-horizontal.col-100 .timeline-item { + width: 100vw; +} +@media (min-width: 768px) { + .timeline-horizontal.tablet-5 .timeline-item { + width: 5vw; + } + .timeline-horizontal.tablet-10 .timeline-item { + width: 10vw; + } + .timeline-horizontal.tablet-15 .timeline-item { + width: 15vw; + } + .timeline-horizontal.tablet-20 .timeline-item { + width: 20vw; + } + .timeline-horizontal.tablet-25 .timeline-item { + width: 25vw; + } + .timeline-horizontal.tablet-30 .timeline-item { + width: 30vw; + } + .timeline-horizontal.tablet-33 .timeline-item { + width: 33.333333333333336vw; + } + .timeline-horizontal.tablet-35 .timeline-item { + width: 35vw; + } + .timeline-horizontal.tablet-40 .timeline-item { + width: 40vw; + } + .timeline-horizontal.tablet-45 .timeline-item { + width: 45vw; + } + .timeline-horizontal.tablet-50 .timeline-item { + width: 50vw; + } + .timeline-horizontal.tablet-55 .timeline-item { + width: 55vw; + } + .timeline-horizontal.tablet-60 .timeline-item { + width: 60vw; + } + .timeline-horizontal.tablet-65 .timeline-item { + width: 65vw; + } + .timeline-horizontal.tablet-66 .timeline-item { + width: 66.66666666666666vw; + } + .timeline-horizontal.tablet-70 .timeline-item { + width: 70vw; + } + .timeline-horizontal.tablet-75 .timeline-item { + width: 75vw; + } + .timeline-horizontal.tablet-80 .timeline-item { + width: 80vw; + } + .timeline-horizontal.tablet-85 .timeline-item { + width: 85vw; + } + .timeline-horizontal.tablet-90 .timeline-item { + width: 90vw; + } + .timeline-horizontal.tablet-95 .timeline-item { + width: 95vw; + } + .timeline-horizontal.tablet-100 .timeline-item { + width: 100vw; + } +} +.timeline-year { + padding-top: var(--f7-timeline-year-height); +} +.timeline-year:after { + content: ''; + position: absolute; + background-color: var(--f7-timeline-horizontal-item-border-color); + display: block; + z-index: 15; + top: 0; + right: 0; + bottom: auto; + left: auto; + width: 1px; + height: 100%; + transform-origin: 100% 50%; + transform: scaleX(calc(1 / var(--f7-device-pixel-ratio))); +} +.timeline-year:last-child:after { + display: none !important; +} +.timeline-month { + padding-top: var(--f7-timeline-month-height); +} +.timeline-month .timeline-item:before { + content: ''; + position: absolute; + background-color: var(--f7-timeline-horizontal-item-border-color); + display: block; + z-index: 15; + top: 0; + right: auto; + bottom: auto; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 0%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +.timeline-year, +.timeline-month { + display: flex; + flex-shrink: 0; + position: relative; + box-sizing: border-box; + height: 100%; +} +.timeline-year-title { + line-height: var(--f7-timeline-year-height); + height: var(--f7-timeline-year-height); + font-size: var(--f7-timeline-year-font-size); + font-weight: var(--f7-timeline-year-font-weight); +} +.timeline-month-title { + line-height: var(--f7-timeline-month-height); + height: var(--f7-timeline-month-height); + font-size: var(--f7-timeline-month-font-size); + font-weight: var(--f7-timeline-month-font-weight); +} +.timeline-year-title, +.timeline-month-title { + position: absolute; + left: 0; + top: 0; + width: 100%; + box-sizing: border-box; + padding: 0 var(--f7-timeline-horizontal-item-padding); + background-color: var(--f7-bars-bg-color); + color: var(--f7-bars-text-color); +} +@supports ((-webkit-backdrop-filter: blur(20px)) or (backdrop-filter: blur(20px))) { + .ios-translucent-bars .timeline-year-title, + .ios-translucent-bars .timeline-month-title { + background-color: rgba(var(--f7-bars-bg-color-rgb), var(--f7-bars-translucent-opacity)); + -webkit-backdrop-filter: saturate(180%) blur(var(--f7-bars-translucent-blur)); + backdrop-filter: saturate(180%) blur(var(--f7-bars-translucent-blur)); + } +} +.timeline-year-title span, +.timeline-month-title span { + display: inline-block; + position: -webkit-sticky; + position: sticky; + left: calc(var(--f7-timeline-horizontal-item-padding) + var(--f7-safe-area-left)); +} +.timeline-month-title span { + margin-top: -2px; +} +.timeline-year:first-child .timeline-year-title, +.timeline-year:first-child .timeline-month:first-child .timeline-month-title, +.timeline-year:first-child .timeline-year-title + .timeline-month .timeline-month-title { + left: calc(var(--f7-safe-area-left) * -1); + right: 0; + width: auto; +} +.timeline-horizontal .timeline-item:first-child, +.timeline-year:first-child .timeline-month:first-child .timeline-item:first-child, +.timeline-year:first-child .timeline-year-title + .timeline-month .timeline-item:first-child, +.timeline-year:first-child .timeline-year-title + .timeline-month .timeline-month-title + .timeline-item { + overflow: visible; +} +.timeline-horizontal .timeline-item:first-child .timeline-item-date, +.timeline-year:first-child .timeline-month:first-child .timeline-item:first-child .timeline-item-date, +.timeline-year:first-child .timeline-year-title + .timeline-month .timeline-item:first-child .timeline-item-date, +.timeline-year:first-child .timeline-year-title + .timeline-month .timeline-month-title + .timeline-item .timeline-item-date { + width: auto; + padding-left: calc(var(--f7-timeline-horizontal-item-padding) + var(--f7-safe-area-left)); + left: calc(0px - var(--f7-safe-area-left)); + right: 0; +} +.timeline-year:last-child .timeline-year-title, +.timeline-year:last-child .timeline-month:last-child .timeline-month-title { + width: auto; + right: calc(0px - var(--f7-safe-area-right)); +} +.timeline-horizontal .timeline-item:last-child, +.timeline-year:last-child .timeline-month:last-child .timeline-item:last-child { + overflow: visible; +} +.timeline-horizontal .timeline-item:last-child .timeline-item-date, +.timeline-year:last-child .timeline-month:last-child .timeline-item:last-child .timeline-item-date { + width: auto; + right: calc(0px - var(--f7-safe-area-right)); + left: 0; +} +.ios .block-strong .timeline-item-inner { + border-radius: 3px; + border: 1px solid rgba(0, 0, 0, 0.1); +} +.ios .timeline-year-title span { + margin-top: 3px; +} +.md .timeline-year-title span { + margin-top: 2px; +} +.aurora .timeline-year-title span { + margin-top: 2px; +} +/* === Tabs === */ +.tabs .tab { + display: none; +} +.tabs .tab-active { + display: block; +} +.tabs-animated-wrap { + position: relative; + width: 100%; + overflow: hidden; + height: 100%; +} +.tabs-animated-wrap > .tabs { + display: flex; + height: 100%; + transition-duration: 300ms; +} +.tabs-animated-wrap > .tabs > .tab { + width: 100%; + display: block; + flex-shrink: 0; +} +.tabs-animated-wrap.not-animated > .tabs { + transition-duration: 0ms; +} +.tabs-swipeable-wrap { + height: 100%; +} +.tabs-swipeable-wrap > .tabs { + height: 100%; +} +.tabs-swipeable-wrap > .tabs > .tab { + display: block; +} +.page > .tabs { + height: 100%; +} +/* === Panels === */ +:root { + --f7-panel-width: 260px; + /* + --f7-panel-left-width: var(--f7-panel-width); + --f7-panel-right-width: var(--f7-panel-width); + --f7-panel-left-collapsed-width: var(--f7-panel-collapsed-width); + --f7-panel-right-collapsed-width: var(--f7-panel-collapsed-width); + */ + --f7-panel-bg-color: #fff; +} +.ios { + --f7-panel-collapsed-width: 58px; + --f7-panel-backdrop-bg-color: rgba(0, 0, 0, 0); + --f7-panel-transition-duration: 400ms; + --f7-panel-shadow: transparent; +} +.md { + --f7-panel-collapsed-width: 60px; + --f7-panel-backdrop-bg-color: rgba(0, 0, 0, 0.3); + --f7-panel-transition-duration: 300ms; + --f7-panel-shadow: rgba(0, 0, 0, 0.2) 0%, + rgba(0, 0, 0, 0.07) 30%, + rgba(0, 0, 0, 0.03) 40%, + rgba(0, 0, 0, 0) 60%, + rgba(0, 0, 0, 0) 100%; +} +.aurora { + --f7-panel-collapsed-width: 44px; + --f7-panel-backdrop-bg-color: rgba(0, 0, 0, 0.2); + --f7-panel-transition-duration: 400ms; + --f7-panel-shadow: transparent; +} +.panel-backdrop { + position: absolute; + left: 0; + top: var(--f7-appbar-app-offset, 0px); + width: 100%; + height: calc(100% - var(--f7-appbar-app-offset, 0px)); + opacity: 0; + z-index: 5999; + visibility: hidden; + pointer-events: none; + transform: translate3d(0, 0, 0); + background-color: var(--f7-panel-backdrop-bg-color); + transition-property: transform, opacity; + transition-duration: var(--f7-panel-transition-duration); +} +.panel-backdrop .with-panel, +.panel-backdrop .with-panel-closing { + visibility: visible; +} +.panel-backdrop.not-animated { + transition-duration: 0ms !important; +} +.panel { + z-index: 1000; + box-sizing: border-box; + position: absolute; + top: var(--f7-appbar-app-offset, 0px); + height: calc(100% - var(--f7-appbar-app-offset, 0px)); + transform: translate3d(0, 0, 0); + width: var(--f7-panel-width); + background-color: var(--f7-panel-bg-color); + overflow: visible; + transition-property: transform; + transition-duration: var(--f7-panel-transition-duration); +} +.panel:not(.panel-in):not(.panel-out):not(.panel-in-breakpoint):not(.panel-in-collapsed):not(.panel-in-swipe) { + display: none; +} +.panel:after { + pointer-events: none; + opacity: 0; + z-index: 5999; + position: absolute; + content: ''; + top: 0; + width: 20px; + height: 100%; + transition-property: transform, opacity; + transition-duration: var(--f7-panel-transition-duration); +} +.panel.not-animated, +.panel.not-animated:after { + transition-duration: 0ms !important; +} +.panel.panel-reveal.not-animated ~ .views, +.panel.panel-reveal.not-animated ~ .view { + transition-duration: 0ms !important; +} +.panel.panel-resizing { + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; +} +.panel.panel-resizing, +.panel.panel-resizing:after, +.panel.panel-resizing ~ .views, +.panel.panel-resizing ~ .view { + transition-duration: 0ms !important; +} +.panel-cover { + z-index: 6000; +} +.panel-left { + left: 0; + width: var(--f7-panel-left-width, var(--f7-panel-width)); +} +.panel-left.panel-cover { + transform: translate3d(calc(-1 * var(--f7-panel-left-width, var(--f7-panel-width))), 0, 0); +} +.panel-left.panel-cover:after { + left: 100%; + background: linear-gradient(to right, var(--f7-panel-shadow)); +} +html.with-panel-left-cover .panel-left.panel-cover:after { + opacity: 1; +} +.panel-left.panel-reveal:after { + right: 0; + transform: translate3d(calc(-1 * var(--f7-panel-left-width, var(--f7-panel-width))), 0, 0); + background: linear-gradient(to left, var(--f7-panel-shadow)); +} +html.with-panel-left-reveal .panel-left.panel-reveal:after { + opacity: 1; + transform: translate3d(0, 0, 0); +} +.panel-right { + right: 0; + width: var(--f7-panel-right-width, var(--f7-panel-width)); +} +.panel-right.panel-cover { + transform: translate3d(var(--f7-panel-right-width, var(--f7-panel-width)), 0, 0); +} +.panel-right.panel-cover:after { + right: 100%; + background: linear-gradient(to left, var(--f7-panel-shadow)); +} +html.with-panel-right-cover .panel-right.panel-cover:after { + opacity: 1; +} +.panel-right.panel-reveal:after { + left: 0; + background: linear-gradient(to right, var(--f7-panel-shadow)); + transform: translate3d(var(--f7-panel-right-width, var(--f7-panel-width)), 0, 0); +} +html.with-panel-right-reveal .panel-right.panel-reveal:after { + opacity: 1; + transform: translate3d(0, 0, 0); +} +.panel-in-breakpoint { + transform: translate3d(0, 0, 0) !important; + transition-duration: 0ms; +} +.panel-in-breakpoint:after { + display: none; +} +.panel-in-breakpoint.panel-cover { + z-index: 5900; +} +html.with-panel-left-reveal .views, +html.with-panel-right-reveal .views, +html.with-panel-closing .views, +html.with-panel-left-reveal .framework7-root > .view, +html.with-panel-right-reveal .framework7-root > .view, +html.with-panel-closing .framework7-root > .view { + transition-duration: var(--f7-panel-transition-duration); + transition-property: transform; +} +html.with-panel-left-reveal .panel-backdrop-in, +html.with-panel-right-reveal .panel-backdrop-in, +html.with-panel-closing .panel-backdrop-in { + visibility: visible; + pointer-events: auto; + opacity: 0; +} +html.with-panel .framework7-root > .views .page-content, +html.with-panel .framework7-root > .view .page-content { + overflow: hidden; + -webkit-overflow-scrolling: auto; +} +html.with-panel-left-cover .panel-backdrop-in, +html.with-panel-right-cover .panel-backdrop-in { + visibility: visible; + pointer-events: auto; + opacity: 1; +} +html.with-panel-left-reveal .views, +html.with-panel-left-reveal .framework7-root > .view, +html.with-panel-left-reveal .panel-backdrop-in { + transform: translate3d(var(--f7-panel-left-width, var(--f7-panel-width)), 0, 0); +} +html.with-panel-right-reveal .views, +html.with-panel-right-reveal .framework7-root > .view, +html.with-panel-right-reveal .panel-backdrop-in { + transform: translate3d(calc(-1 * var(--f7-panel-right-width, var(--f7-panel-width))), 0, 0); +} +html.with-panel-left-cover .panel-left { + transform: translate3d(0px, 0, 0); +} +html.with-panel-right-cover .panel-right { + transform: translate3d(0px, 0, 0); +} +.panel-resize-handler { + position: absolute; + top: 0; + height: 100%; + width: 6px; + cursor: col-resize; + z-index: 6000; + display: none; +} +.panel-resizable .panel-resize-handler { + display: block; +} +.panel-left.panel-cover .panel-resize-handler { + right: -3px; +} +.panel-left.panel-reveal .panel-resize-handler { + right: 0; +} +.panel-right.panel-cover .panel-resize-handler { + left: -3px; +} +.panel-right.panel-reveal .panel-resize-handler { + left: 0; +} +.panel-left.panel-in-collapsed ~ .views, +.panel-left.panel-in-collapsed ~ .view { + margin-left: var(--f7-panel-left-collapsed-width, var(--f7-panel-collapsed-width)); +} +html.with-panel-left-reveal .panel-left.panel-in-collapsed ~ .views, +html.with-panel-left-reveal .panel-left.panel-in-collapsed ~ .view { + transform: translate3d(calc(var(--f7-panel-left-width, var(--f7-panel-width)) - var(--f7-panel-left-collapsed-width, var(--f7-panel-collapsed-width))), 0, 0); +} +.panel-right.panel-in-collapsed ~ .views, +.panel-right.panel-in-collapsed ~ .view { + margin-right: var(--f7-panel-right-collapsed-width, var(--f7-panel-collapsed-width)); +} +html.with-panel-right-reveal .panel-right.panel-in-collapsed ~ .views, +html.with-panel-right-reveal .panel-right.panel-in-collapsed ~ .view { + transform: translate3d(calc(var(--f7-panel-right-collapsed-width, var(--f7-panel-collapsed-width)) - var(--f7-panel-right-width, var(--f7-panel-width))), 0, 0); +} +html.with-modal-popup-push .framework7-root, +html.with-modal-popup-push-closing .framework7-root { + --f7-panelPushScale: var(--f7-popup-push-scale); + --f7-panelPushTransitionDuration: var(--f7-popup-transition-duration); + --f7-panelPushBorderRadius: var(--f7-popup-push-border-radius); +} +html.with-modal-sheet-push .framework7-root, +html.with-modal-sheet-push-closing .framework7-root { + --f7-panelPushScale: var(--f7-sheet-push-scale); + --f7-panelPushTransitionDuration: var(--f7-sheet-transition-duration); + --f7-panelPushBorderRadius: var(--f7-sheet-push-border-radius); +} +html.with-modal-popup-push .framework7-root > .panel-in, +html.with-modal-sheet-push .framework7-root > .panel-in, +html.with-modal-popup-push .framework7-root > .panel-out, +html.with-modal-sheet-push .framework7-root > .panel-out { + transition-duration: var(--f7-panelPushTransitionDuration); +} +html.with-modal-popup-push .framework7-root > .panel-in.panel-reveal.panel-left, +html.with-modal-sheet-push .framework7-root > .panel-in.panel-reveal.panel-left, +html.with-modal-popup-push .framework7-root > .panel-out.panel-reveal.panel-left, +html.with-modal-sheet-push .framework7-root > .panel-out.panel-reveal.panel-left { + transform: scale(var(--f7-panelPushScale, 1)); + transform-origin: 50vw center; + border-top-left-radius: var(--f7-panelPushBorderRadius); +} +html.with-modal-popup-push .framework7-root > .panel-in.panel-reveal.panel-left .view, +html.with-modal-sheet-push .framework7-root > .panel-in.panel-reveal.panel-left .view, +html.with-modal-popup-push .framework7-root > .panel-out.panel-reveal.panel-left .view, +html.with-modal-sheet-push .framework7-root > .panel-out.panel-reveal.panel-left .view { + border-top-left-radius: var(--f7-panelPushBorderRadius); +} +html.with-modal-popup-push .framework7-root > .panel-in.panel-reveal.panel-right, +html.with-modal-sheet-push .framework7-root > .panel-in.panel-reveal.panel-right, +html.with-modal-popup-push .framework7-root > .panel-out.panel-reveal.panel-right, +html.with-modal-sheet-push .framework7-root > .panel-out.panel-reveal.panel-right { + transform: scale(var(--f7-panelPushScale, 1)); + transform-origin: calc(var(--f7-panel-left-width, var(--f7-panel-width)) - 50vw) center; + border-top-right-radius: var(--f7-panelPushBorderRadius); +} +html.with-modal-popup-push .framework7-root > .panel-in.panel-reveal.panel-right .view, +html.with-modal-sheet-push .framework7-root > .panel-in.panel-reveal.panel-right .view, +html.with-modal-popup-push .framework7-root > .panel-out.panel-reveal.panel-right .view, +html.with-modal-sheet-push .framework7-root > .panel-out.panel-reveal.panel-right .view { + border-top-right-radius: var(--f7-panelPushBorderRadius); +} +html.with-modal-popup-push .framework7-root > .panel-in.panel-cover.panel-left, +html.with-modal-sheet-push .framework7-root > .panel-in.panel-cover.panel-left, +html.with-modal-popup-push .framework7-root > .panel-out.panel-cover.panel-left, +html.with-modal-sheet-push .framework7-root > .panel-out.panel-cover.panel-left { + transform: translate3d(calc(-1 * var(--f7-panel-left-width, var(--f7-panel-width))), 0, 0px); +} +html.with-modal-popup-push .framework7-root > .panel-in.panel-cover.panel-right, +html.with-modal-sheet-push .framework7-root > .panel-in.panel-cover.panel-right, +html.with-modal-popup-push .framework7-root > .panel-out.panel-cover.panel-right, +html.with-modal-sheet-push .framework7-root > .panel-out.panel-cover.panel-right { + transform: translate3d(var(--f7-panel-right-width, var(--f7-panel-width)), 0, 0px); +} +html.with-modal-popup-push-closing .framework7-root > .panel-in, +html.with-modal-sheet-push-closing .framework7-root > .panel-in { + transition-duration: var(--f7-panelPushTransitionDuration); +} +html.with-modal-popup-push-closing .framework7-root > .panel-in.panel-reveal.panel-left, +html.with-modal-sheet-push-closing .framework7-root > .panel-in.panel-reveal.panel-left { + transform-origin: 50vw center; +} +html.with-modal-popup-push-closing .framework7-root > .panel-in.panel-reveal.panel-right, +html.with-modal-sheet-push-closing .framework7-root > .panel-in.panel-reveal.panel-right { + transform-origin: calc(var(--f7-panel-right-width, var(--f7-panel-width)) - 50vw) center; +} +/* === Card === */ +:root { + --f7-card-content-padding-horizontal: 16px; + --f7-card-content-padding-vertical: 16px; + --f7-card-border-radius: 4px; + --f7-card-font-size: inherit; + --f7-card-header-text-color: inherit; + --f7-card-header-font-weight: 400; + --f7-card-header-padding-horizontal: 16px; + --f7-card-footer-font-weight: 400; + --f7-card-footer-font-size: inherit; + --f7-card-footer-padding-horizontal: 16px; + --f7-card-expandable-font-size: 16px; + --f7-card-expandable-tablet-width: 670px; + --f7-card-expandable-tablet-height: 670px; + --f7-card-bg-color: #fff; + --f7-card-outline-border-color: rgba(0, 0, 0, 0.12); + --f7-card-header-border-color: rgba(0, 0, 0, 0.1); + --f7-card-footer-border-color: rgba(0, 0, 0, 0.1); + --f7-card-expandable-bg-color: #fff; +} +:root .theme-dark, +:root.theme-dark { + --f7-card-bg-color: #1c1c1d; + --f7-card-expandable-bg-color: #1c1c1d; + --f7-card-outline-border-color: rgba(255, 255, 255, 0.15); + --f7-card-header-border-color: rgba(255, 255, 255, 0.15); + --f7-card-footer-border-color: rgba(255, 255, 255, 0.15); + --f7-card-footer-text-color: rgba(255, 255, 255, 0.55); +} +.ios { + --f7-card-margin-horizontal: 10px; + --f7-card-margin-vertical: 10px; + --f7-card-box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.2); + --f7-card-header-font-size: 17px; + --f7-card-header-padding-vertical: 10px; + --f7-card-header-min-height: 44px; + --f7-card-footer-text-color: rgba(0, 0, 0, 0.45); + --f7-card-footer-padding-vertical: 10px; + --f7-card-footer-min-height: 44px; + --f7-card-expandable-margin-horizontal: 20px; + --f7-card-expandable-margin-vertical: 30px; + --f7-card-expandable-box-shadow: 0px 20px 40px rgba(0, 0, 0, 0.3); + --f7-card-expandable-border-radius: 15px; + --f7-card-expandable-tablet-border-radius: 5px; + --f7-card-expandable-header-font-size: 27px; + --f7-card-expandable-header-font-weight: bold; +} +.md { + --f7-card-margin-horizontal: 8px; + --f7-card-margin-vertical: 8px; + --f7-card-box-shadow: var(--f7-elevation-1); + --f7-card-header-font-size: 16px; + --f7-card-header-padding-vertical: 4px; + --f7-card-header-min-height: 48px; + --f7-card-footer-text-color: rgba(0, 0, 0, 0.54); + --f7-card-footer-padding-vertical: 4px; + --f7-card-footer-min-height: 48px; + --f7-card-expandable-margin-horizontal: 12px; + --f7-card-expandable-margin-vertical: 24px; + --f7-card-expandable-box-shadow: var(--f7-elevation-10); + --f7-card-expandable-border-radius: 8px; + --f7-card-expandable-tablet-border-radius: 4px; + --f7-card-expandable-header-font-size: 24px; + --f7-card-expandable-header-font-weight: 500; +} +.aurora { + --f7-card-margin-horizontal: 10px; + --f7-card-margin-vertical: 10px; + --f7-card-box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.15); + --f7-card-header-font-size: 14px; + --f7-card-header-font-weight: bold; + --f7-card-header-padding-vertical: 10px; + --f7-card-header-min-height: 38px; + --f7-card-footer-text-color: rgba(0, 0, 0, 0.6); + --f7-card-footer-padding-vertical: 10px; + --f7-card-footer-min-height: 38px; + --f7-card-expandable-margin-horizontal: 10px; + --f7-card-expandable-margin-vertical: 20px; + --f7-card-expandable-box-shadow: 0px 5px 10px rgba(0, 0, 0, 0.15); + --f7-card-expandable-border-radius: 15px; + --f7-card-expandable-tablet-border-radius: 5px; + --f7-card-expandable-header-font-size: 27px; + --f7-card-expandable-header-font-weight: bold; +} +.cards-list > ul:before, +.card .list > ul:before, +.cards-list > ul:after, +.card .list > ul:after { + display: none !important; +} +.cards-list ul, +.card .list ul { + background: none; +} +.card { + background: var(--f7-card-bg-color); + position: relative; + border-radius: var(--f7-card-border-radius); + font-size: var(--f7-card-font-size); + margin-top: var(--f7-card-margin-vertical); + margin-bottom: var(--f7-card-margin-vertical); + margin-left: calc(var(--f7-card-margin-horizontal) + var(--f7-safe-area-left)); + margin-right: calc(var(--f7-card-margin-horizontal) + var(--f7-safe-area-right)); + box-shadow: var(--f7-card-box-shadow); +} +.card .list, +.card .block { + margin: 0; +} +.row:not(.no-gap) .col > .card { + margin-left: 0; + margin-right: 0; +} +.card.no-shadow { + box-shadow: none; +} +.card-outline, +.ios .card-outline-ios, +.md .card-outline-md, +.aurora .card-outline-aurora { + box-shadow: none; + border: 1px solid var(--f7-card-outline-border-color); +} +.card-outline.no-border, +.ios .card-outline-ios.no-border, +.md .card-outline-md.no-border, +.aurora .card-outline-aurora.no-border, +.card-outline.no-hairlines, +.ios .card-outline-ios.no-hairlines, +.md .card-outline-md.no-hairlines, +.aurora .card-outline-aurora.no-hairlines { + border: none; +} +.card-content { + position: relative; +} +.card-content-padding { + position: relative; + padding: var(--f7-card-content-padding-vertical) var(--f7-card-content-padding-horizontal); +} +.card-content-padding > .list, +.card-content-padding > .block { + margin: calc(-1 * var(--f7-card-content-padding-vertical)) calc(-1 * var(--f7-card-content-padding-horizontal)); +} +.card-content-padding > p:first-child { + margin-top: 0; +} +.card-content-padding > p:last-child { + margin-bottom: 0; +} +.card-header { + min-height: var(--f7-card-header-min-height); + color: var(--f7-card-header-text-color); + font-size: var(--f7-card-header-font-size); + font-weight: var(--f7-card-header-font-weight); + padding: var(--f7-card-header-padding-vertical) var(--f7-card-header-padding-horizontal); +} +.card-footer { + min-height: var(--f7-card-footer-min-height); + color: var(--f7-card-footer-text-color); + font-size: var(--f7-card-footer-font-size); + font-weight: var(--f7-card-footer-font-weight); + padding: var(--f7-card-footer-padding-vertical) var(--f7-card-footer-padding-horizontal); +} +.card-footer a.link { + overflow: hidden; +} +.card-header, +.card-footer { + position: relative; + box-sizing: border-box; + display: flex; + justify-content: space-between; + align-items: center; +} +.card-header[valign="top"], +.card-footer[valign="top"] { + align-items: flex-start; +} +.card-header[valign="bottom"], +.card-footer[valign="bottom"] { + align-items: flex-end; +} +.card-header a.link, +.card-footer a.link { + position: relative; +} +.card-header a.link i.icon, +.card-footer a.link i.icon { + display: block; +} +.card-header a.icon-only, +.card-footer a.icon-only { + display: flex; + justify-content: center; + align-items: center; + margin: 0; +} +.card-header { + border-radius: var(--f7-card-border-radius) var(--f7-card-border-radius) 0 0; +} +.card-header:after { + content: ''; + position: absolute; + background-color: var(--f7-card-header-border-color); + display: block; + z-index: 15; + top: auto; + right: auto; + bottom: 0; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 100%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +.card-header.no-hairline:after { + display: none !important; +} +.card-footer { + border-radius: 0 0 var(--f7-card-border-radius) var(--f7-card-border-radius); +} +.card-footer:before { + content: ''; + position: absolute; + background-color: var(--f7-card-footer-border-color); + display: block; + z-index: 15; + top: 0; + right: auto; + bottom: auto; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 0%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +.card-footer.no-hairline:before { + display: none !important; +} +.card-expandable { + overflow: hidden; + height: 300px; + background: var(--f7-card-expandable-bg-color); + position: relative; + transform-origin: center center; + transition-property: transform, border-radius; + border-radius: var(--f7-card-expandable-border-radius); + z-index: 2; + transition-duration: 200ms; + margin-left: calc(var(--f7-card-expandable-margin-horizontal) + var(--f7-safe-area-left)); + margin-right: calc(var(--f7-card-expandable-margin-horizontal) + var(--f7-safe-area-right)); + margin-top: var(--f7-card-expandable-margin-vertical); + margin-bottom: var(--f7-card-expandable-margin-vertical); + box-shadow: var(--f7-card-expandable-box-shadow); + font-size: var(--f7-card-expandable-font-size); +} +.card-expandable:not(.card-opened) { + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; +} +.card-expandable.card-no-transition { + transition-duration: 0ms; +} +.card-expandable.card-expandable-animate-width .card-content { + transition-property: width, transform; + width: 100%; +} +.card-expandable.active-state { + transform: scale(0.97) translate3d(0, 0, 0); +} +.card-expandable .card-opened-fade-in, +.card-expandable .card-opened-fade-out { + transition-duration: 400ms; +} +.card-expandable .card-opened-fade-in { + opacity: 0; + pointer-events: none; +} +.card-expandable .card-content { + position: absolute; + top: 0; + width: 100vw; + height: 100vh; + transform-origin: center top; + overflow: hidden; + transition-property: transform; + box-sizing: border-box; + pointer-events: none; + left: 0; +} +.card-expandable .card-content .card-content-padding { + padding-left: calc(var(--f7-safe-area-left) + var(--f7-card-content-padding-horizontal)); + padding-right: calc(var(--f7-safe-area-right) + var(--f7-card-content-padding-horizontal)); +} +.card-expandable.card-opened { + transition-duration: 0ms; +} +.card-expandable.card-opening, +.card-expandable.card-closing, +.card-expandable.card-transitioning { + transition-duration: 400ms; +} +.card-expandable.card-opening .card-content { + transition-duration: 300ms; +} +.card-expandable.card-closing .card-content { + transition-duration: 500ms; +} +.card-expandable.card-opening, +.card-expandable.card-opened, +.card-expandable.card-closing { + z-index: 300; +} +.card-expandable.card-opening, +.card-expandable.card-opened { + border-radius: 0; +} +.card-expandable.card-opening .card-opened-fade-in, +.card-expandable.card-opened .card-opened-fade-in { + opacity: 1; + pointer-events: auto; +} +.card-expandable.card-opening .card-opened-fade-out, +.card-expandable.card-opened .card-opened-fade-out { + opacity: 0; + pointer-events: none; +} +.card-expandable.card-opened .card-content { + overflow: auto; + -webkit-overflow-scrolling: touch; + pointer-events: auto; +} +.card-expandable .card-header { + font-size: var(--f7-card-expandable-header-font-size); + font-weight: var(--f7-card-expandable-header-font-weight); +} +.card-expandable .card-header:after { + display: none !important; +} +.card-prevent-open { + pointer-events: auto; +} +.card-expandable-size { + width: 0; + height: 0; + position: absolute; + left: 0; + top: 0; + opacity: 0; + pointer-events: none; + visibility: hidden; +} +@media (min-width: 768px) and (min-height: 670px) { + .card-expandable:not(.card-tablet-fullscreen) { + max-width: var(--f7-card-expandable-tablet-width); + } + .card-expandable:not(.card-tablet-fullscreen).card-opened, + .card-expandable:not(.card-tablet-fullscreen).card-opening { + border-radius: var(--f7-card-expandable-tablet-border-radius); + } + .card-expandable:not(.card-tablet-fullscreen):not(.card-expandable-animate-width) .card-content { + width: var(--f7-card-expandable-tablet-width); + } + .card-expandable:not(.card-tablet-fullscreen) .card-expandable-size { + width: var(--f7-card-expandable-tablet-width); + height: var(--f7-card-expandable-tablet-height); + } +} +.page.page-with-card-opened .page-content { + overflow: hidden; +} +.card-backdrop { + position: fixed; + left: 0; + top: 0; + width: 100%; + height: 100%; + z-index: 299; + pointer-events: none; + background: rgba(0, 0, 0, 0.2); + opacity: 0; +} +.card-backdrop-in { + animation: card-backdrop-fade-in 400ms forwards; + pointer-events: auto; +} +.card-backdrop-out { + animation: card-backdrop-fade-out 400ms forwards; +} +@supports ((-webkit-backdrop-filter: blur(15px)) or (backdrop-filter: blur(15px))) { + .card-backdrop { + background: transparent; + -webkit-backdrop-filter: blur(15px); + backdrop-filter: blur(15px); + } +} +@keyframes card-backdrop-fade-in { + from { + opacity: 0; + } + to { + opacity: 1; + } +} +@keyframes card-backdrop-fade-out { + from { + opacity: 1; + } + to { + opacity: 0; + } +} +/* === Chips === */ +:root { + --f7-chip-font-size: 13px; + --f7-chip-font-weight: normal; + --f7-chip-media-font-size: 16px; + --f7-chip-bg-color: rgba(0, 0, 0, 0.12); + --f7-chip-outline-border-color: rgba(0, 0, 0, 0.12); + --f7-chip-delete-button-color: #000; +} +:root .theme-dark, +:root.theme-dark { + --f7-chip-delete-button-color: #fff; + --f7-chip-bg-color: #333; + --f7-chip-outline-border-color: rgba(255, 255, 255, 0.12); +} +.ios { + --f7-chip-height: 24px; + --f7-chip-padding-horizontal: 10px; + --f7-chip-text-color: #000; +} +.ios .theme-dark, +.ios.theme-dark { + --f7-chip-text-color: #fff; +} +.md { + --f7-chip-height: 32px; + --f7-chip-padding-horizontal: 12px; + --f7-chip-text-color: rgba(0, 0, 0, 0.87); +} +.md .theme-dark, +.md.theme-dark { + --f7-chip-text-color: rgba(255, 255, 255, 0.87); +} +.aurora { + --f7-chip-height: 20px; + --f7-chip-padding-horizontal: 10px; + --f7-chip-font-size: 12px; + --f7-chip-media-font-size: 14px; + --f7-chip-text-color: #000; +} +.aurora .theme-dark, +.aurora.theme-dark { + --f7-chip-text-color: #fff; +} +.chip { + padding-left: var(--f7-chip-padding-horizontal); + padding-right: var(--f7-chip-padding-horizontal); + font-weight: var(--f7-chip-font-weight); + display: inline-flex; + box-sizing: border-box; + vertical-align: middle; + align-items: center; + margin: 2px 0; + background-color: var(--f7-chip-bg-color); + font-size: var(--f7-chip-font-size); + color: var(--f7-chip-text-color); + height: var(--f7-chip-height); + line-height: var(--f7-chip-height); + border-radius: var(--f7-chip-height); + position: relative; +} +.chip-media { + border-radius: 50%; + flex-shrink: 0; + display: flex; + align-items: center; + justify-content: center; + height: var(--f7-chip-height); + width: var(--f7-chip-height); + border-radius: var(--f7-chip-height); + text-align: center; + line-height: var(--f7-chip-height); + box-sizing: border-box; + color: #fff; + font-size: var(--f7-chip-media-font-size); + vertical-align: middle; + margin-left: calc(-1 * var(--f7-chip-padding-horizontal)); +} +.chip-media i.icon { + font-size: calc(var(--f7-chip-height) - 8px); + height: calc(var(--f7-chip-height) - 8px); +} +.chip-media img { + max-width: 100%; + max-height: 100%; + width: auto; + height: auto; + border-radius: 50%; + display: block; +} +.chip-media + .chip-label { + margin-left: 4px; +} +.chip-label { + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + position: relative; + flex-shrink: 1; + min-width: 0; +} +.chip-delete { + text-align: center; + cursor: pointer; + flex-shrink: 0; + background-repeat: no-repeat; + width: 24px; + height: 24px; + color: var(--f7-chip-delete-button-color); + opacity: 0.54; + position: relative; +} +.chip-delete:after { + font-family: 'framework7-core-icons'; + font-weight: normal; + font-style: normal; + line-height: 1; + letter-spacing: normal; + text-transform: none; + white-space: nowrap; + word-wrap: normal; + direction: ltr; + -webkit-font-smoothing: antialiased; + text-rendering: optimizeLegibility; + -moz-osx-font-smoothing: grayscale; + font-feature-settings: "liga"; + text-align: center; + display: block; + width: 100%; + height: 100%; + font-size: 20px; + content: 'delete_round_ios'; + line-height: 24px; +} +.chip .chip-delete.active-state { + opacity: 1; +} +.chip-outline, +.ios .chip-outline-ios, +.md .chip-outline-md, +.aurora .chip-outline-aurora { + border: 1px solid var(--f7-chip-outline-border-color); + background: none; +} +.chip[class*="color-"] { + --f7-chip-bg-color: var(--f7-theme-color); + --f7-chip-text-color: #fff; +} +.chip-outline[class*="color-"], +.ios .chip-outline-ios[class*="color-"], +.md .chip-outline-md[class*="color-"], +.aurora .chip-outline-aurora[class*="color-"] { + --f7-chip-outline-border-color: var(--f7-theme-color); + --f7-chip-text-color: var(--f7-theme-color); +} +.ios .chip-delete { + margin-right: calc(-1 * var(--f7-chip-padding-horizontal)); +} +.ios .chip-delete:after { + font-size: 10px; +} +.md .chip-label + .chip-delete { + margin-left: 4px; +} +.md .chip-delete { + margin-right: calc(-1 * var(--f7-chip-padding-horizontal) + 4px); +} +.md .chip-delete:after { + font-size: 12px; +} +.aurora .chip-delete { + margin-right: calc(-1 * var(--f7-chip-padding-horizontal)); +} +.aurora .chip-delete:after { + font-size: 10px; +} +/* === Form === */ +/* === Input === */ +:root { + --f7-input-bg-color: transparent; + --f7-label-font-weight: 400; + --f7-label-line-height: 1.3; + --f7-input-padding-left: 0px; + --f7-input-padding-right: 0px; + --f7-input-error-text-color: #ff3b30; + --f7-input-error-font-size: 12px; + --f7-input-error-line-height: 1.4; + --f7-input-error-font-weight: 400; + --f7-input-info-font-size: 12px; + --f7-input-info-line-height: 1.4; + --f7-input-outline-height: 40px; + --f7-input-outline-border-radius: 4px; + --f7-input-outline-padding-horizontal: 12px; + --f7-textarea-height: 100px; + /* + --f7-input-outline-focused-border-color: var(--f7-theme-color); + --f7-input-outline-invalid-border-color: var(--f7-input-error-text-color); + */ + --f7-input-outline-border-color: #999; +} +:root .theme-dark, +:root.theme-dark { + --f7-input-outline-border-color: #444; +} +.ios { + --f7-input-height: 44px; + --f7-input-font-size: 17px; + --f7-input-placeholder-color: #a9a9a9; + --f7-textarea-padding-vertical: 11px; + /* + --f7-input-focused-border-color: var(--f7-list-item-border-color); + --f7-input-invalid-border-color: var(--f7-list-item-border-color); + --f7-input-invalid-text-color: var(--f7-input-error-text-color); + */ + --f7-label-font-size: 12px; + --f7-label-text-color: inherit; + /* + --f7-label-focused-text-color: var(--f7-label-text-color); + --f7-label-invalid-text-color: var(--f7-label-text-color); + */ + --f7-floating-label-scale: calc(17 / 12); + --f7-inline-label-font-size: 17px; + --f7-inline-label-line-height: 1.4; + --f7-inline-label-padding-top: 3px; + --f7-input-clear-button-size: 14px; + --f7-input-text-color: #000000; + --f7-input-info-text-color: rgba(0, 0, 0, 0.45); + --f7-input-clear-button-color: rgba(0, 0, 0, 0.45); +} +.ios .theme-dark, +.ios.theme-dark { + --f7-input-text-color: #fff; + --f7-input-info-text-color: rgba(255, 255, 255, 0.55); + --f7-input-clear-button-color: rgba(255, 255, 255, 0.5); +} +.md { + --f7-input-height: 36px; + --f7-input-font-size: 16px; + --f7-textarea-padding-vertical: 7px; + /* + --f7-input-focused-border-color: var(--f7-theme-color); + --f7-input-invalid-border-color: var(--f7-input-error-text-color); + --f7-input-invalid-text-color: var(--f7-input-text-color); + */ + --f7-label-font-size: 12px; + /* + --f7-label-focused-text-color: var(--f7-theme-color); + --f7-label-invalid-text-color: var(--f7-input-error-text-color ); + */ + --f7-floating-label-scale: calc(16 / 12); + --f7-inline-label-font-size: 16px; + --f7-inline-label-line-height: 1.5; + --f7-inline-label-padding-top: 7px; + --f7-input-clear-button-size: 18px; + --f7-input-clear-button-color: #aaa; + --f7-input-text-color: #212121; + --f7-input-placeholder-color: rgba(0, 0, 0, 0.35); + --f7-label-text-color: rgba(0, 0, 0, 0.65); + --f7-input-info-text-color: rgba(0, 0, 0, 0.45); +} +.md .theme-dark, +.md.theme-dark { + --f7-input-text-color: rgba(255, 255, 255, 0.87); + --f7-input-placeholder-color: rgba(255, 255, 255, 0.35); + --f7-label-text-color: rgba(255, 255, 255, 0.54); + --f7-input-info-text-color: rgba(255, 255, 255, 0.45); +} +.aurora { + --f7-input-height: 24px; + --f7-input-font-size: 13px; + --f7-textarea-padding-vertical: 2px; + /* + --f7-input-focused-border-color: var(--f7-list-item-border-color); + --f7-input-invalid-border-color: var(--f7-list-item-border-color); + --f7-input-invalid-text-color: var(--f7-input-error-text-color); + */ + --f7-label-font-size: 11px; + --f7-label-text-color: inherit; + /* + --f7-label-focused-text-color: var(--f7-label-text-color); + --f7-label-invalid-text-color: var(--f7-label-text-color); + */ + --f7-floating-label-scale: calc(13 / 11); + --f7-inline-label-font-size: 14px; + --f7-inline-label-line-height: 1.4; + --f7-inline-label-padding-top: 1px; + --f7-input-clear-button-size: 14px; + --f7-input-outline-height: 32px; + --f7-input-outline-padding-horizontal: 8px; + --f7-input-text-color: #000000; + --f7-input-placeholder-color: rgba(0, 0, 0, 0.32); + --f7-input-clear-button-color: #666; + --f7-input-info-text-color: rgba(0, 0, 0, 0.5); +} +.aurora .theme-dark, +.aurora.theme-dark { + --f7-input-text-color: #fff; + --f7-input-clear-button-color: #aaa; + --f7-input-placeholder-color: rgba(255, 255, 255, 0.35); + --f7-input-info-text-color: rgba(255, 255, 255, 0.45); +} +input[type="text"], +input[type="password"], +input[type="search"], +input[type="email"], +input[type="tel"], +input[type="url"], +input[type="date"], +input[type='month'], +input[type="datetime-local"], +input[type="time"], +input[type="number"], +select, +textarea { + box-sizing: border-box; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + border: none; + box-shadow: none; + border-radius: 0; + outline: 0; + display: block; + padding: 0; + margin: 0; + font-family: inherit; + background: none; + resize: none; + font-size: inherit; + color: inherit; +} +.textarea-resizable-shadow { + opacity: 0; + position: absolute; + z-index: -1000; + pointer-events: none; + left: -1000px; + top: -1000px; + visibility: hidden; +} +.list input[type="text"], +.list input[type="password"], +.list input[type="search"], +.list input[type="email"], +.list input[type="tel"], +.list input[type="url"], +.list input[type="date"], +.list input[type='month'], +.list input[type="datetime-local"], +.list input[type="time"], +.list input[type="number"], +.list select { + width: 100%; + height: var(--f7-input-height); + color: var(--f7-input-text-color); + font-size: var(--f7-input-font-size); + background-color: var(--f7-input-bg-color, transparent); + padding-left: var(--f7-input-padding-left); + padding-right: var(--f7-input-padding-right); +} +.list input[type="text"]::-webkit-input-placeholder, .list input[type="password"]::-webkit-input-placeholder, .list input[type="search"]::-webkit-input-placeholder, .list input[type="email"]::-webkit-input-placeholder, .list input[type="tel"]::-webkit-input-placeholder, .list input[type="url"]::-webkit-input-placeholder, .list input[type="date"]::-webkit-input-placeholder, .list input[type='month']::-webkit-input-placeholder, .list input[type="datetime-local"]::-webkit-input-placeholder, .list input[type="time"]::-webkit-input-placeholder, .list input[type="number"]::-webkit-input-placeholder, .list select::-webkit-input-placeholder { + color: var(--f7-input-placeholder-color); +} +.list input[type="text"]::placeholder, +.list input[type="password"]::placeholder, +.list input[type="search"]::placeholder, +.list input[type="email"]::placeholder, +.list input[type="tel"]::placeholder, +.list input[type="url"]::placeholder, +.list input[type="date"]::placeholder, +.list input[type='month']::placeholder, +.list input[type="datetime-local"]::placeholder, +.list input[type="time"]::placeholder, +.list input[type="number"]::placeholder, +.list select::placeholder { + color: var(--f7-input-placeholder-color); +} +.list textarea { + width: 100%; + color: var(--f7-input-text-color); + font-size: var(--f7-input-font-size); + resize: none; + line-height: 1.4; + height: var(--f7-textarea-height); + background-color: var(--f7-input-bg-color, transparent); + padding-top: var(--f7-textarea-padding-vertical); + padding-bottom: var(--f7-textarea-padding-vertical); + padding-left: var(--f7-input-padding-left); + padding-right: var(--f7-input-padding-right); +} +.list textarea::-webkit-input-placeholder { + color: var(--f7-input-placeholder-color); +} +.list textarea::placeholder { + color: var(--f7-input-placeholder-color); +} +.list textarea.resizable { + height: var(--f7-input-height); +} +.list input[type="datetime-local"] { + max-width: 50vw; +} +.list input[type="time"], +.list input[type="date"], +.list input[type='month'], +.list input[type="datetime-local"] { + line-height: var(--f7-input-height); +} +.list .item-label, +.list .item-floating-label { + width: 100%; + vertical-align: top; + flex-shrink: 0; + font-size: var(--f7-label-font-size); + font-weight: var(--f7-label-font-weight); + line-height: var(--f7-label-line-height); + color: var(--f7-label-text-color); + transition-duration: 200ms; + transition-property: transform, color; +} +.list .item-floating-label { + --label-height: calc(var(--f7-label-font-size) * var(--f7-label-line-height)); + transform: scale(var(--f7-floating-label-scale)) translateY(calc((var(--f7-input-height) / 2 + 50%) / var(--f7-floating-label-scale))); + color: var(--f7-input-placeholder-color); + width: auto; + max-width: calc(100% / var(--f7-floating-label-scale)); + pointer-events: none; + left: var(--f7-input-padding-left); + transform-origin: left center; +} +.list .item-floating-label ~ .item-input-wrap input::-webkit-input-placeholder, .list .item-floating-label ~ .item-input-wrap textarea::-webkit-input-placeholder { + opacity: 0; + transition-duration: 100ms; +} +.list .item-floating-label ~ .item-input-wrap input::placeholder, +.list .item-floating-label ~ .item-input-wrap textarea::placeholder { + opacity: 0; + transition-duration: 100ms; +} +.list .item-floating-label ~ .item-input-wrap input.input-focused::-webkit-input-placeholder, .list .item-floating-label ~ .item-input-wrap textarea.input-focused::-webkit-input-placeholder { + opacity: 1; + transition-duration: 300ms; +} +.list .item-floating-label ~ .item-input-wrap input.input-focused::placeholder, +.list .item-floating-label ~ .item-input-wrap textarea.input-focused::placeholder { + opacity: 1; + transition-duration: 300ms; +} +.list .item-input-with-value .item-floating-label { + color: var(--f7-label-text-color); +} +.list .item-input-with-value .item-floating-label, +.list .item-input-focused .item-floating-label { + transform: scale(1) translateY(0); +} +.list .item-input-wrap { + width: 100%; + flex-shrink: 1; + position: relative; +} +.item-input .item-inner { + display: flex; + flex-direction: column; + align-items: flex-start; +} +.item-input-error-message, +.input-error-message { + font-size: var(--f7-input-error-font-size); + line-height: var(--f7-input-error-line-height); + color: var(--f7-input-error-text-color); + font-weight: var(--f7-input-error-font-weight); + display: none; + box-sizing: border-box; +} +.item-input-info, +.input-info { + font-size: var(--f7-input-info-font-size); + line-height: var(--f7-input-info-line-height); + color: var(--f7-input-info-text-color); +} +.item-input-invalid .item-input-error-message, +.input-invalid .item-input-error-message, +.item-input-invalid .input-error-message, +.input-invalid .input-error-message { + display: block; +} +.item-input-invalid .item-input-info, +.input-invalid .item-input-info, +.item-input-invalid .input-info, +.input-invalid .input-info { + display: none; +} +.inline-labels .item-inner, +.inline-label .item-inner { + display: flex; + align-items: center; + flex-direction: row; +} +.inline-labels .item-label, +.inline-label .item-label, +.inline-labels .item-floating-label, +.inline-label .item-floating-label { + padding-top: var(--f7-inline-label-padding-top); + align-self: flex-start; + width: 35%; + font-size: var(--f7-inline-label-font-size); + line-height: var(--f7-inline-label-line-height); +} +.inline-labels .item-label + .item-input-wrap, +.inline-label .item-label + .item-input-wrap, +.inline-labels .item-floating-label + .item-input-wrap, +.inline-label .item-floating-label + .item-input-wrap { + margin-left: 8px; +} +.input { + position: relative; +} +.input input, +.input select, +.input textarea { + width: 100%; +} +.input-clear-button { + opacity: 0; + pointer-events: none; + visibility: hidden; + transition-duration: 100ms; + position: absolute; + top: 50%; + border: none; + padding: 0; + margin: 0; + outline: 0; + z-index: 1; + cursor: pointer; + background: none; + width: var(--f7-input-clear-button-size); + height: var(--f7-input-clear-button-size); + margin-top: calc(-1 * var(--f7-input-clear-button-size) / 2); + color: var(--f7-input-clear-button-color); + right: 0; +} +.input-clear-button:after { + font-family: 'framework7-core-icons'; + font-weight: normal; + font-style: normal; + line-height: 1; + letter-spacing: normal; + text-transform: none; + white-space: nowrap; + word-wrap: normal; + direction: ltr; + -webkit-font-smoothing: antialiased; + text-rendering: optimizeLegibility; + -moz-osx-font-smoothing: grayscale; + font-feature-settings: "liga"; + text-align: center; + display: block; + width: 100%; + height: 100%; + font-size: 20px; +} +.input-clear-button:before { + position: absolute; + content: ''; + left: 50%; + top: 50%; +} +.item-input-wrap .input-clear-button { + top: calc(var(--f7-input-height) / 2); +} +.input-clear-button.active-state { + opacity: 0.75 !important; +} +.input-with-value ~ .input-clear-button, +.item-input-with-value .input-clear-button, +.input-with-value .input-clear-button { + opacity: 1; + pointer-events: auto; + visibility: visible; +} +.input-dropdown-wrap, +.input-dropdown { + position: relative; +} +.input-dropdown-wrap:before, +.input-dropdown:before { + content: ''; + pointer-events: none; + position: absolute; + top: 50%; + margin-top: -2px; + width: 0; + height: 0; + border-left: 4px solid transparent; + border-right: 4px solid transparent; + border-top: 5px solid #727272; + right: 6px; +} +.input-dropdown-wrap select, +.input-dropdown select, +.input-dropdown-wrap input, +.input-dropdown input, +.input-dropdown-wrap textarea, +.input-dropdown textarea { + padding-right: calc(20px + var(--f7-input-padding-right)); +} +.input-outline:after, +.item-input-outline .item-input-wrap:after { + content: ''; + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + box-sizing: border-box; + border: 1px solid var(--f7-input-outline-border-color); + border-radius: var(--f7-input-outline-border-radius); + transition-duration: 200ms; + pointer-events: none; +} +.input-outline.input-focused:after, +.item-input-outline.item-input-focused .item-input-wrap:after { + border-width: 2px; + border-color: var(--f7-input-outline-focused-border-color, var(--f7-theme-color)); +} +.input-outline.input-invalid:after, +.item-input-outline.item-input-invalid .item-input-wrap:after { + border-width: 2px; + border-color: var(--f7-input-outline-invalid-border-color, var(--f7-input-error-text-color)); +} +.input-outline input, +.item-input-outline input, +.list .item-input-outline input, +.input-outline textarea, +.item-input-outline textarea, +.list .item-input-outline textarea, +.input-outline select, +.item-input-outline select, +.list .item-input-outline select { + border-radius: var(--f7-input-outline-border-radius); + padding-left: var(--f7-input-outline-padding-horizontal); + padding-right: var(--f7-input-outline-padding-horizontal); +} +.input-outline.input-dropdown:before, +.item-input-outline .input-dropdown-wrap:before { + right: 8px; +} +.input-outline.input-dropdown input, +.item-input-outline .input-dropdown-wrap input, +.input-outline.input-dropdown textarea, +.item-input-outline .input-dropdown-wrap textarea, +.input-outline.input-dropdown select, +.item-input-outline .input-dropdown-wrap select { + padding-right: 20px; +} +.input-outline .input-clear-button, +.item-input-outline .input-clear-button { + right: 8px; +} +.item-input-outline { + --f7-input-height: var(--f7-input-outline-height); +} +.item-input-outline .item-inner:after { + display: none !important; +} +.item-input-outline .item-label { + left: var(--f7-input-outline-padding-horizontal); +} +.inline-labels .item-input-outline .item-label, +.inline-label .item-input-outline .item-label, +.item-input-outline .inline-label .item-label, +.item-input-outline .inline-label.item-label { + left: 0; +} +.item-input-outline .item-floating-label { + left: calc(var(--f7-input-outline-padding-horizontal) - 4px); + padding-left: 4px; + padding-right: 4px; + background: var(--f7-page-bg-color); + z-index: 10; + margin-top: calc(-0.5 * (var(--f7-label-font-size) * var(--f7-label-line-height))); +} +.item-input-outline.item-input-with-value .item-floating-label, +.item-input-outline.item-input-focused .item-floating-label { + transform: scale(1) translateY(50%); +} +.item-input-outline .item-input-info, +.item-input-outline .item-input-error-message { + padding-left: var(--f7-input-outline-padding-horizontal); +} +.block-strong .item-input-outline .item-floating-label { + background: var(--f7-block-strong-bg-color); +} +.list .item-input-outline .item-floating-label { + background: var(--f7-list-bg-color); +} +.theme-dark option { + background-color: var(--f7-page-bg-color); +} +.ios .item-label + .item-input-wrap, +.ios .item-floating-label + .item-input-wrap { + margin-top: 0; +} +.ios .item-input-focused .item-floating-label { + color: var(--f7-label-text-color); +} +.ios .item-input .item-media { + align-self: flex-start; +} +.ios .item-input-wrap { + margin-top: calc(-1 * var(--f7-list-item-padding-vertical)); + margin-bottom: calc(-1 * var(--f7-list-item-padding-vertical)); +} +.ios .inline-labels .item-label + .item-input-wrap, +.ios .inline-label .item-label + .item-input-wrap, +.ios .inline-labels .item-floating-label + .item-input-wrap, +.ios .inline-label .item-floating-label + .item-input-wrap { + margin-top: calc(-1 * var(--f7-list-item-padding-vertical)); +} +.ios .inline-labels .item-input-wrap, +.ios .inline-label .item-input-wrap { + margin-top: calc(-1 * var(--f7-list-item-padding-vertical)); +} +.ios .item-input-error-message, +.ios .item-input-info, +.ios .input-error-message, +.ios .input-info { + position: relative; + margin-bottom: 6px; + margin-top: -8px; +} +.ios .item-input-focused .item-label, +.ios .item-input-focused .item-floating-label { + color: var(--f7-label-focused-text-color, var(--f7-label-text-color)); +} +.ios .item-input-focused .item-inner:after { + background: var(--f7-input-focused-border-color, var(--f7-list-item-border-color)); +} +.ios .item-input-invalid .item-label, +.ios .item-input-invalid .item-floating-label { + color: var(--f7-label-invalid-text-color, var(--f7-label-text-color)); +} +.ios .item-input-invalid .item-inner:after { + background: var(--f7-input-invalid-border-color, var(--f7-list-item-border-color)); +} +.ios .item-input-invalid input, +.ios .input-invalid input, +.ios .item-input-invalid select, +.ios .input-invalid select, +.ios .item-input-invalid textarea, +.ios .input-invalid textarea { + color: var(--f7-input-invalid-text-color, var(--f7-input-error-text-color)); +} +.ios .input-clear-button:after { + content: 'delete_round_ios'; + font-size: calc(var(--f7-input-clear-button-size) / (14 / 10)); + line-height: 1.4; +} +.ios .input-clear-button:before { + width: 44px; + height: 44px; + margin-left: -22px; + margin-top: -22px; +} +.ios .item-input-outline .item-input-wrap, +.ios .input-outline .item-input-wrap { + margin-top: 0; + margin-bottom: 0; +} +.ios .item-input-outline .item-input-error-message, +.ios .input-outline .item-input-error-message, +.ios .item-input-outline .item-input-info, +.ios .input-outline .item-input-info, +.ios .item-input-outline .input-error-message, +.ios .input-outline .input-error-message, +.ios .item-input-outline .input-info, +.ios .input-outline .input-info { + margin-top: 0; + white-space: normal; + overflow: hidden; + text-overflow: ellipsis; +} +.ios .item-input-outline .item-input-info, +.ios .input-outline .item-input-info, +.ios .item-input-outline .input-info, +.ios .input-outline .input-info { + margin-bottom: calc(-1 * var(--f7-input-info-font-size) * var(--f7-input-info-line-height)); +} +.ios .item-input-outline .item-input-error-message, +.ios .input-outline .item-input-error-message, +.ios .item-input-outline .input-error-message, +.ios .input-outline .input-error-message { + margin-bottom: calc(-1 * var(--f7-input-error-font-size) * var(--f7-input-error-line-height)); +} +.ios .item-input-outline.item-input-with-info .item-input-wrap, +.ios .input-outline.item-input-with-info .item-input-wrap, +.ios .item-input-outline.input-with-info .item-input-wrap, +.ios .input-outline.input-with-info .item-input-wrap { + margin-bottom: calc(var(--f7-input-info-font-size) * var(--f7-input-info-line-height)); +} +.ios .item-input-outline.item-input-with-error-message .item-input-wrap, +.ios .input-outline.item-input-with-error-message .item-input-wrap, +.ios .item-input-outline.input-with-error-message .item-input-wrap, +.ios .input-outline.input-with-error-message .item-input-wrap { + margin-bottom: calc(var(--f7-input-error-font-size) * var(--f7-input-error-line-height)); +} +.md .item-input:not(.item-input-outline) .item-input-wrap:after, +.md .input:not(.input-outline):after { + content: ''; + position: absolute; + background-color: var(--f7-list-item-border-color); + display: block; + z-index: 15; + top: auto; + right: auto; + bottom: 0; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 100%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +.md .item-input:not(.item-input-outline) .item-input-wrap:after, +.md .input:not(.input-outline):after { + transition-duration: 200ms; +} +.md .item-input-wrap { + min-height: var(--f7-input-height); +} +.md .item-input .item-media { + align-self: flex-end; +} +.md .item-input .item-inner:after { + display: none !important; +} +.md .inline-labels .item-media, +.md .inline-label .item-media { + align-self: flex-start; + padding-top: 14px; +} +.md .item-input-with-error-message, +.md .item-input-with-info, +.md .input-with-error-message, +.md .input-with-info { + padding-bottom: 20px; +} +.md .item-input-error-message, +.md .item-input-info, +.md .input-error-message, +.md .input-info { + position: absolute; + top: 100%; + margin-top: 4px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + width: 100%; + left: 0; +} +.md .item-input-focused .item-label, +.md .item-input-focused .item-floating-label { + color: var(--f7-label-focused-text-color, var(--f7-theme-color)); +} +.md .item-input-focused:not(.item-input-outline) .item-input-wrap:after, +.md .input-focused:not(.input-outline):after { + background: var(--f7-input-focused-border-color, var(--f7-theme-color)); +} +.md .item-input-invalid:not(.item-input-outline) .item-input-wrap:after, +.md .item-input-focused:not(.item-input-outline) .item-input-wrap:after, +.md .input-invalid:not(.input-outline):after, +.md .input-focused:not(.input-outline):after { + transform: scaleY(2) !important; +} +.md .item-input-invalid:not(.item-input-outline) .item-input-wrap:after, +.md .input-invalid:not(.input-outline):after { + background: var(--f7-input-invalid-border-color, var(--f7-input-error-text-color)); +} +.md .item-input-invalid .item-label, +.md .item-input-invalid .item-floating-label { + color: var(--f7-label-invalid-text-color, var(--f7-input-error-text-color)); +} +.md .item-input-invalid input, +.md .input-invalid input, +.md .item-input-invalid select, +.md .input-invalid select, +.md .item-input-invalid textarea, +.md .input-invalid textarea { + color: var(--f7-input-invalid-text-color, var(--f7-input-text-color)); +} +.md .input-clear-button:after { + font-size: calc(var(--f7-input-clear-button-size) / (24 / 20)); + content: 'delete_round_md'; + line-height: 1.2; +} +.md .input-clear-button:before { + width: 48px; + height: 48px; + margin-left: -24px; + margin-top: -24px; +} +.aurora .item-label + .item-input-wrap, +.aurora .item-floating-label + .item-input-wrap { + margin-top: 0; +} +.aurora .item-input-focused .item-floating-label { + color: var(--f7-label-text-color); +} +.aurora .item-input .item-media { + align-self: flex-start; +} +.aurora .item-input-error-message, +.aurora .item-input-info, +.aurora .input-error-message, +.aurora .input-info { + position: relative; +} +.aurora .item-input-focused .item-label, +.aurora .item-input-focused .item-floating-label { + color: var(--f7-label-focused-text-color, var(--f7-label-text-color)); +} +.aurora .item-input-focused .item-inner:after { + background: var(--f7-input-focused-border-color, var(--f7-list-item-border-color)); +} +.aurora .item-input-invalid .item-label, +.aurora .item-input-invalid .item-floating-label { + color: var(--f7-label-invalid-text-color, var(--f7-label-text-color)); +} +.aurora .item-input-invalid .item-inner:after { + background: var(--f7-input-invalid-border-color, var(--f7-list-item-border-color)); +} +.aurora .item-input-invalid input, +.aurora .input-invalid input, +.aurora .item-input-invalid select, +.aurora .input-invalid select, +.aurora .item-input-invalid textarea, +.aurora .input-invalid textarea { + color: var(--f7-input-invalid-text-color, var(--f7-input-error-text-color)); +} +.aurora .input-clear-button:after { + content: 'delete_round_ios'; + font-size: calc(var(--f7-input-clear-button-size) / (14 / 10)); + line-height: 1.4; +} +.aurora .input-clear-button:before { + width: 28px; + height: 28px; + margin-left: -14px; + margin-top: -14px; +} +.aurora .item-input-outline .item-input-wrap, +.aurora .input-outline .item-input-wrap { + margin-top: 0; + margin-bottom: 0; +} +.aurora .item-input-outline .item-input-error-message, +.aurora .input-outline .item-input-error-message, +.aurora .item-input-outline .item-input-info, +.aurora .input-outline .item-input-info, +.aurora .item-input-outline .input-error-message, +.aurora .input-outline .input-error-message, +.aurora .item-input-outline .input-info, +.aurora .input-outline .input-info { + margin-top: 0; + white-space: normal; + overflow: hidden; + text-overflow: ellipsis; +} +.aurora .item-input-outline .item-input-info, +.aurora .input-outline .item-input-info, +.aurora .item-input-outline .input-info, +.aurora .input-outline .input-info { + margin-bottom: calc(-1 * var(--f7-input-info-font-size) * var(--f7-input-info-line-height)); +} +.aurora .item-input-outline .item-input-error-message, +.aurora .input-outline .item-input-error-message, +.aurora .item-input-outline .input-error-message, +.aurora .input-outline .input-error-message { + margin-bottom: calc(-1 * var(--f7-input-error-font-size) * var(--f7-input-error-line-height)); +} +.aurora .item-input-outline.item-input-with-info .item-input-wrap, +.aurora .input-outline.item-input-with-info .item-input-wrap, +.aurora .item-input-outline.input-with-info .item-input-wrap, +.aurora .input-outline.input-with-info .item-input-wrap { + margin-bottom: calc(var(--f7-input-info-font-size) * var(--f7-input-info-line-height)); +} +.aurora .item-input-outline.item-input-with-error-message .item-input-wrap, +.aurora .input-outline.item-input-with-error-message .item-input-wrap, +.aurora .item-input-outline.input-with-error-message .item-input-wrap, +.aurora .input-outline.input-with-error-message .item-input-wrap { + margin-bottom: calc(var(--f7-input-error-font-size) * var(--f7-input-error-line-height)); +} +/* === Checkbox === */ +:root { + /* --f7-checkbox-active-color: var(--f7-theme-color); */ + --f7-checkbox-icon-color: #fff; +} +:root .theme-dark, +:root.theme-dark { + --f7-checkbox-inactive-color: rgba(255, 255, 255, 0.3); +} +.ios { + --f7-checkbox-size: 22px; + --f7-checkbox-border-radius: 50%; + --f7-checkbox-border-width: 1px; + --f7-checkbox-extra-margin: 0px; + --f7-checkbox-inactive-color: #c7c7cc; +} +.md { + --f7-checkbox-size: 18px; + --f7-checkbox-border-radius: 2px; + --f7-checkbox-border-width: 2px; + --f7-checkbox-extra-margin: 22px; + --f7-checkbox-inactive-color: #6d6d6d; +} +.aurora { + --f7-checkbox-size: 14px; + --f7-checkbox-border-radius: 2px; + --f7-checkbox-border-width: 1px; + --f7-checkbox-extra-margin: 0px; + --f7-checkbox-inactive-color: #888; +} +.checkbox { + position: relative; + display: inline-block; + vertical-align: middle; + z-index: 1; + background-color: transparent; + --f7-touch-ripple-color: rgba(var(--f7-theme-color-rgb), 0.5); +} +.icon-checkbox, +.checkbox i { + flex-shrink: 0; + border: var(--f7-checkbox-border-width) solid var(--f7-checkbox-inactive-color); + width: var(--f7-checkbox-size); + height: var(--f7-checkbox-size); + border-radius: var(--f7-checkbox-border-radius); + box-sizing: border-box; + position: relative; + display: block; +} +.icon-checkbox:after, +.checkbox i:after { + font-family: 'framework7-core-icons'; + font-weight: normal; + font-style: normal; + line-height: 1; + letter-spacing: normal; + text-transform: none; + white-space: nowrap; + word-wrap: normal; + direction: ltr; + -webkit-font-smoothing: antialiased; + text-rendering: optimizeLegibility; + -moz-osx-font-smoothing: grayscale; + font-feature-settings: "liga"; + text-align: center; + display: block; + width: 100%; + height: 100%; + font-size: 20px; + width: var(--f7-checkbox-size); + height: var(--f7-checkbox-size); + line-height: var(--f7-checkbox-size); + top: calc(0px - var(--f7-checkbox-border-width)); + opacity: 0; + color: var(--f7-checkbox-icon-color); + position: relative; + transition-property: opacity; + left: calc(0px - var(--f7-checkbox-border-width)); +} +label.item-checkbox input[type="checkbox"]:not(:checked) ~ .icon-checkbox:after, +label.item-checkbox input[type="checkbox"]:not(:checked) ~ * .icon-checkbox:after, +.checkbox input[type="checkbox"]:not(:checked) ~ i:after { + font-size: 0; +} +label.item-checkbox input[type="checkbox"]:checked ~ .icon-checkbox, +label.item-checkbox input[type="checkbox"]:checked ~ * .icon-checkbox, +.checkbox input[type="checkbox"]:checked ~ i, +label.item-checkbox input[type="checkbox"]:indeterminate ~ .icon-checkbox, +label.item-checkbox input[type="checkbox"]:indeterminate ~ * .icon-checkbox, +.checkbox input[type="checkbox"]:indeterminate ~ i { + border-color: var(--f7-checkbox-active-color, var(--f7-theme-color)); + background-color: var(--f7-checkbox-active-color, var(--f7-theme-color)); +} +label.item-checkbox input[type="checkbox"]:checked ~ .icon-checkbox:after, +label.item-checkbox input[type="checkbox"]:checked ~ * .icon-checkbox:after, +.checkbox input[type="checkbox"]:checked ~ i:after, +label.item-checkbox input[type="checkbox"]:indeterminate ~ .icon-checkbox:after, +label.item-checkbox input[type="checkbox"]:indeterminate ~ * .icon-checkbox:after, +.checkbox input[type="checkbox"]:indeterminate ~ i:after { + opacity: 1; +} +label.item-checkbox input[type="checkbox"]:indeterminate ~ .icon-checkbox:after, +label.item-checkbox input[type="checkbox"]:indeterminate ~ * .icon-checkbox:after, +.checkbox input[type="checkbox"]:indeterminate ~ i:after { + font-size: 0; + content: ''; + position: absolute; + top: 50%; + width: 70%; + background: #fff; + height: 2px; + border-radius: 2px; + margin-top: -1px; + transition: 0ms; + left: 15%; +} +label.item-checkbox, +.checkbox { + cursor: pointer; +} +label.item-checkbox input[type="checkbox"], +.checkbox input[type="checkbox"], +label.item-checkbox input[type="radio"], +.checkbox input[type="radio"] { + display: none; +} +label.item-checkbox { + transition-duration: 300ms; +} +label.item-checkbox .item-content .item-media, +label.item-checkbox.item-content .item-media { + align-self: center; +} +label.item-checkbox > .icon-checkbox { + margin-right: calc(var(--f7-list-item-media-margin) + var(--f7-checkbox-extra-margin)); +} +label.item-checkbox.active-state { + background-color: var(--f7-list-link-pressed-bg-color); +} +label.item-checkbox.active-state:after { + background-color: transparent; +} +label.item-checkbox.disabled, +.disabled label.item-checkbox { + opacity: 0.55; + pointer-events: none; + opacity: 0.55 !important; + pointer-events: none !important; +} +.ios .icon-checkbox:after, +.ios .checkbox i:after { + content: 'checkbox_ios'; + font-size: 21px; +} +.ios label.item-checkbox.active-state { + transition-duration: 0ms; +} +.ios label.item-checkbox input[type="checkbox"]:indeterminate ~ .icon-checkbox:after, +.ios label.item-checkbox input[type="checkbox"]:indeterminate ~ * .icon-checkbox:after, +.ios .checkbox input[type="checkbox"]:indeterminate ~ i:after { + height: 1px; + margin-top: 0px; +} +.md .icon-checkbox, +.md .checkbox i { + transition-duration: 200ms; +} +.md .icon-checkbox:after, +.md .checkbox i:after { + content: 'checkbox_md'; + transition-duration: 200ms; + font-size: 15px; +} +.md label.item-checkbox { + position: relative; + overflow: hidden; + z-index: 0; +} +.aurora .icon-checkbox, +.aurora .checkbox i { + transition-duration: 150ms; +} +.aurora .icon-checkbox:after, +.aurora .checkbox i:after { + content: 'checkbox_aurora'; + transition-duration: 150ms; + font-size: 19px; +} +.aurora .icon-checkbox:before, +.aurora .checkbox i:before { + content: ''; + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + background: rgba(0, 0, 0, 0.1); + opacity: 0; + transition-duration: 150ms; +} +.aurora .checkbox.active-state i:before { + opacity: 1; +} +.aurora label.item-checkbox { + position: relative; + overflow: hidden; + z-index: 0; +} +/* === Radio === */ +:root { + /* + --f7-radio-active-color: var(--f7-theme-color); + */ + --f7-radio-border-radius: 50%; +} +:root .theme-dark, +:root.theme-dark { + --f7-radio-inactive-color: rgba(255, 255, 255, 0.3); +} +.ios { + --f7-radio-size: 22px; + --f7-radio-border-width: 1px; + --f7-radio-extra-margin: 0px; + --f7-radio-inactive-color: #c7c7cc; +} +.md { + --f7-radio-size: 20px; + --f7-radio-border-width: 2px; + --f7-radio-extra-margin: 22px; + --f7-radio-inactive-color: #6d6d6d; +} +.aurora { + --f7-radio-size: 16px; + --f7-radio-border-width: 1px; + --f7-radio-extra-margin: 0px; + --f7-radio-inactive-color: #888; +} +.radio { + position: relative; + display: inline-block; + vertical-align: middle; + z-index: 1; + --f7-touch-ripple-color: rgba(var(--f7-theme-color-rgb), 0.5); +} +.icon-radio { + width: var(--f7-radio-size); + height: var(--f7-radio-size); + border-radius: var(--f7-radio-border-radius); + position: relative; + box-sizing: border-box; + display: block; + flex-shrink: 0; +} +.radio .icon-radio, +.md .icon-radio, +.aurora .icon-radio { + border: var(--f7-radio-border-width) solid var(--f7-radio-inactive-color); +} +label.item-radio, +.radio { + cursor: pointer; +} +label.item-radio input[type="checkbox"], +.radio input[type="checkbox"], +label.item-radio input[type="radio"], +.radio input[type="radio"] { + display: none; +} +label.item-radio { + transition-duration: 300ms; +} +label.item-radio .item-content .item-media, +label.item-radio.item-content .item-media { + align-self: center; +} +label.item-radio.active-state { + background-color: var(--f7-list-link-pressed-bg-color); +} +label.item-radio.active-state:after { + background-color: transparent; +} +label.item-radio.disabled, +.disabled label.item-radio { + opacity: 0.55; + pointer-events: none; + opacity: 0.55 !important; + pointer-events: none !important; +} +.ios .icon-radio:after { + font-family: 'framework7-core-icons'; + font-weight: normal; + font-style: normal; + line-height: 1; + letter-spacing: normal; + text-transform: none; + white-space: nowrap; + word-wrap: normal; + direction: ltr; + -webkit-font-smoothing: antialiased; + text-rendering: optimizeLegibility; + -moz-osx-font-smoothing: grayscale; + font-feature-settings: "liga"; + text-align: center; + display: block; + width: 100%; + height: 100%; + width: calc(var(--f7-radio-size) - var(--f7-radio-border-width) * 2); + height: calc(var(--f7-radio-size) - var(--f7-radio-border-width) * 2); + line-height: calc(var(--f7-radio-size) - var(--f7-radio-border-width) * 2 + 1px); + font-size: 20px; + content: 'radio_ios'; + color: var(--f7-radio-active-color, var(--f7-theme-color)); + opacity: 0; +} +.ios label.item-radio input[type="radio"]:checked ~ .icon-radio:after, +.ios label.item-radio input[type="radio"]:checked ~ * .icon-radio:after, +.ios .radio input[type="radio"]:checked ~ .icon-radio:after { + opacity: 1; +} +.ios .radio input[type="radio"]:checked ~ .icon-radio { + border-color: var(--f7-radio-active-color, var(--f7-theme-color)); +} +.ios label.item-radio:not(.item-radio-icon-start) input[type="radio"] ~ .icon-radio { + position: absolute; + top: 50%; + margin-top: -11px; + right: calc(var(--f7-safe-area-right) + 10px); +} +.ios label.item-radio:not(.item-radio-icon-start) .item-inner { + padding-right: calc(var(--f7-safe-area-right) + 36px); +} +.ios label.item-radio-icon-start > .icon-radio { + margin-right: calc(var(--f7-list-item-media-margin) + var(--f7-checkbox-extra-margin)); +} +.ios label.item-radio.active-state { + transition-duration: 0ms; +} +.md .icon-radio { + transition-duration: 200ms; +} +.md .icon-radio:after { + content: ''; + position: absolute; + width: 10px; + height: 10px; + left: 50%; + top: 50%; + margin-left: -5px; + margin-top: -5px; + background-color: var(--f7-radio-active-color, var(--f7-theme-color)); + border-radius: 50%; + transform: scale(0); + transition-duration: 200ms; +} +.md label.item-radio input[type="radio"]:checked ~ .icon-radio, +.md label.item-radio input[type="radio"]:checked ~ * .icon-radio, +.md .radio input[type="radio"]:checked ~ .icon-radio { + border-color: var(--f7-radio-active-color, var(--f7-theme-color)); +} +.md label.item-radio input[type="radio"]:checked ~ .icon-radio:after, +.md label.item-radio input[type="radio"]:checked ~ * .icon-radio:after, +.md .radio input[type="radio"]:checked ~ .icon-radio:after { + background-color: var(--f7-radio-active-color, var(--f7-theme-color)); + transform: scale(1); +} +.md label.item-radio { + position: relative; + overflow: hidden; + z-index: 0; +} +.md label.item-radio:not(.item-radio-icon-end) > .icon-radio { + margin-right: calc(var(--f7-list-item-media-margin) + var(--f7-radio-extra-margin)); +} +.md label.item-radio-icon-end input[type="radio"] ~ .icon-radio { + position: absolute; + top: 50%; + margin-top: -10px; + right: calc(var(--f7-safe-area-right) + 16px); +} +.md label.item-radio-icon-end .item-inner { + padding-right: calc(var(--f7-safe-area-right) + 52px); +} +.aurora .icon-radio { + transition-duration: 150ms; + overflow: hidden; +} +.aurora .icon-radio:after { + content: ''; + position: absolute; + width: 6px; + height: 6px; + left: 50%; + top: 50%; + margin-left: -3px; + margin-top: -3px; + background-color: #fff; + border-radius: 50%; + transform: scale(0); + transition-duration: 150ms; +} +.aurora .icon-radio:before { + content: ''; + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + background: rgba(0, 0, 0, 0.1); + opacity: 0; + transition-duration: 150ms; +} +.aurora .radio.active-state i:before { + opacity: 1; +} +.aurora label.item-radio input[type="radio"]:checked ~ .icon-radio, +.aurora label.item-radio input[type="radio"]:checked ~ * .icon-radio, +.aurora .radio input[type="radio"]:checked ~ .icon-radio { + border-color: var(--f7-radio-active-color, var(--f7-theme-color)); + background-color: var(--f7-radio-active-color, var(--f7-theme-color)); +} +.aurora label.item-radio input[type="radio"]:checked ~ .icon-radio:after, +.aurora label.item-radio input[type="radio"]:checked ~ * .icon-radio:after, +.aurora .radio input[type="radio"]:checked ~ .icon-radio:after { + transform: scale(1); +} +.aurora label.item-radio { + position: relative; + overflow: hidden; + z-index: 0; +} +.aurora label.item-radio:not(.item-radio-icon-end) > .icon-radio { + margin-right: calc(var(--f7-list-item-media-margin) + var(--f7-radio-extra-margin)); +} +.aurora label.item-radio-icon-end input[type="radio"] ~ .icon-radio { + position: absolute; + top: 50%; + margin-top: -8px; + right: calc(var(--f7-safe-area-right) + 16px); +} +.aurora label.item-radio-icon-end .item-inner { + padding-right: calc(var(--f7-safe-area-right) + 48px); +} +/* === Toggle === */ +:root { + --f7-toggle-handle-color: #fff; +} +:root .theme-dark, +:root.theme-dark { + --f7-toggle-inactive-color: #555; +} +.ios { + --f7-toggle-width: 52px; + --f7-toggle-height: 32px; + --f7-toggle-border-color: #e5e5e5; + --f7-toggle-inactive-color: #fff; +} +.ios .theme-dark, +.ios.theme-dark { + --f7-toggle-border-color: #555; +} +.md { + --f7-toggle-width: 36px; + --f7-toggle-height: 14px; + --f7-toggle-inactive-color: #b0afaf; +} +.aurora { + --f7-toggle-width: 40px; + --f7-toggle-height: 20px; + --f7-toggle-inactive-color: #aaa; +} +.toggle, +.toggle-icon { + width: var(--f7-toggle-width); + height: var(--f7-toggle-height); + border-radius: var(--f7-toggle-height); +} +.toggle { + display: inline-block; + vertical-align: middle; + position: relative; + box-sizing: border-box; + align-self: center; + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; +} +.toggle input[type="checkbox"] { + display: none; +} +.toggle input[disabled] ~ .toggle-icon { + pointer-events: none; +} +.toggle-icon { + z-index: 0; + margin: 0; + padding: 0; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + border: none; + position: relative; + transition: 300ms; + box-sizing: border-box; + display: block; + cursor: pointer; +} +.toggle-icon:before, +.toggle-icon:after { + content: ''; +} +.toggle-icon:after { + background: var(--f7-toggle-handle-color); + position: absolute; + z-index: 2; + transform: translateX(0px); + transition-duration: 300ms; +} +.ios .toggle input[type="checkbox"]:checked + .toggle-icon { + background: var(--f7-toggle-active-color, var(--f7-theme-color)); +} +.ios .toggle input[type="checkbox"]:checked + .toggle-icon:before { + transform: scale(0); +} +.ios .toggle input[type="checkbox"]:checked + .toggle-icon:after { + transform: translateX(calc(var(--f7-toggle-width) - var(--f7-toggle-height))); +} +.ios .toggle-icon { + background: var(--f7-toggle-border-color); +} +.ios .toggle-icon:before { + position: absolute; + left: 2px; + top: 2px; + width: calc(var(--f7-toggle-width) - 4px); + height: calc(var(--f7-toggle-height) - 4px); + border-radius: var(--f7-toggle-height); + box-sizing: border-box; + background: var(--f7-toggle-inactive-color); + z-index: 1; + transition-duration: 300ms; + transform: scale(1); +} +.ios .toggle-icon:after { + height: calc(var(--f7-toggle-height) - 4px); + width: calc(var(--f7-toggle-height) - 4px); + top: 2px; + left: 2px; + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3); + border-radius: calc(var(--f7-toggle-height) - 4px); +} +.ios .toggle-active-state input[type="checkbox"]:not(:checked) + .toggle-icon:before { + transform: scale(0); +} +.ios .toggle-active-state input[type="checkbox"] + .toggle-icon:after { + width: calc(var(--f7-toggle-height) + 4px); +} +.ios .toggle-active-state input[type="checkbox"]:checked + .toggle-icon:after { + transform: translateX(calc(var(--f7-toggle-width) - var(--f7-toggle-height) - 8px)); +} +.md .toggle input[type="checkbox"]:checked + .toggle-icon { + background: var(--f7-toggle-active-color, rgba(var(--f7-theme-color-rgb), 0.5)); +} +.md .toggle input[type="checkbox"]:checked + .toggle-icon:after { + transform: translateX(calc(var(--f7-toggle-width) - var(--f7-toggle-height) - 6px)); + background: var(--f7-toggle-active-color, var(--f7-theme-color)); +} +.md .toggle-icon { + background: var(--f7-toggle-inactive-color); +} +.md .toggle-icon:after { + height: calc(var(--f7-toggle-height) + 6px); + width: calc(var(--f7-toggle-height) + 6px); + top: -3px; + box-shadow: 0 2px 5px rgba(0, 0, 0, 0.4); + border-radius: var(--f7-toggle-height); + left: 0; +} +.aurora .toggle input[type="checkbox"]:checked + .toggle-icon { + background: var(--f7-toggle-active-color, var(--f7-theme-color)); +} +.aurora .toggle input[type="checkbox"]:checked + .toggle-icon:after { + transform: translateX(calc(var(--f7-toggle-width) - var(--f7-toggle-height))); +} +.aurora .toggle-icon { + background: var(--f7-toggle-inactive-color); +} +.aurora .toggle-icon:after { + height: calc(var(--f7-toggle-height) - 4px); + width: calc(var(--f7-toggle-height) - 4px); + top: 2px; + left: 2px; + border-radius: calc(var(--f7-toggle-height) - 4px); +} +/* === Range Slider === */ +:root { + /* + --f7-range-bar-active-bg-color: var(--f7-theme-color); + --f7-range-scale-bg-color: var(--f7-range-bar-bg-color); + --f7-range-scale-substep-bg-color: var(--f7-range-bar-bg-color); + */ + --f7-range-scale-step-height: 5px; + --f7-range-scale-text-color: #666; + --f7-range-scale-substep-width: 1px; + --f7-range-scale-substep-height: 4px; +} +.ios { + --f7-range-size: 28px; + --f7-range-bar-bg-color: #b7b8b7; + --f7-range-bar-size: 1px; + --f7-range-bar-border-radius: 2px; + --f7-range-knob-size: 28px; + --f7-range-knob-color: #fff; + --f7-range-knob-box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3); + --f7-range-label-size: 20px; + --f7-range-label-text-color: #000; + --f7-range-label-bg-color: #fff; + --f7-range-label-font-size: 12px; + --f7-range-label-font-weight: normal; + --f7-range-label-border-radius: 5px; + --f7-range-label-padding: 0px; + --f7-range-scale-step-width: 1px; + --f7-range-scale-font-size: 12px; + --f7-range-scale-font-weight: 400; + --f7-range-scale-label-offset: 4px; +} +.md { + --f7-range-size: 20px; + --f7-range-bar-bg-color: #b9b9b9; + --f7-range-bar-size: 2px; + --f7-range-bar-border-radius: 0px; + --f7-range-knob-size: 12px; + /* + --f7-range-knob-color: var(--f7-theme-color); + */ + --f7-range-knob-box-shadow: none; + --f7-range-label-size: 26px; + --f7-range-label-font-weight: normal; + --f7-range-label-text-color: #fff; + /* + --f7-range-label-bg-color: var(--f7-theme-color); + */ + --f7-range-label-font-size: 10px; + --f7-range-label-border-radius: 50%; + --f7-range-label-padding: 0px; + --f7-range-scale-step-width: 2px; + --f7-range-scale-font-size: 12px; + --f7-range-scale-font-weight: 400; + --f7-range-scale-label-offset: 4px; +} +.aurora { + --f7-range-size: 20px; + --f7-range-bar-bg-color: #c7c7c7; + --f7-range-bar-size: 2px; + --f7-range-bar-border-radius: 2px; + --f7-range-knob-size: 16px; + /* + --f7-range-knob-color: var(--f7-theme-color); + */ + --f7-range-knob-box-shadow: none; + --f7-range-label-size: 20px; + --f7-range-label-text-color: #fff; + /* + --f7-range-label-bg-color: var(--f7-theme-color); + */ + --f7-range-label-font-size: 10px; + --f7-range-label-font-weight: 600; + --f7-range-label-border-radius: 4px; + --f7-range-label-padding: 0px 4px; + --f7-range-scale-step-width: 2px; + --f7-range-scale-font-size: 11px; + --f7-range-scale-font-weight: 500; + --f7-range-scale-label-offset: 2px; +} +.range-slider { + display: block; + position: relative; + align-self: center; + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; +} +.range-slider input[type="range"] { + display: none; +} +.range-slider.range-slider-horizontal { + width: 100%; + height: var(--f7-range-size); + touch-action: pan-y; +} +.range-slider.range-slider-vertical { + height: 100%; + width: var(--f7-range-size); + touch-action: pan-x; +} +.range-bar { + position: absolute; + overflow: hidden; + background: var(--f7-range-bar-bg-color); + border-radius: var(--f7-range-bar-border-radius); +} +.range-slider-vertical .range-bar { + left: 50%; + top: 0; + height: 100%; + width: var(--f7-range-bar-size); + margin-left: calc(-1 * var(--f7-range-bar-size) / 2); +} +.range-slider-horizontal .range-bar { + left: 0; + top: 50%; + width: 100%; + height: var(--f7-range-bar-size); + margin-top: calc(-1 * var(--f7-range-bar-size) / 2); +} +.range-bar-active { + position: absolute; + background: var(--f7-range-bar-active-bg-color, var(--f7-theme-color)); +} +.range-slider-horizontal .range-bar-active { + left: 0; + top: 0; + height: 100%; +} +.range-slider-vertical .range-bar-active { + left: 0; + bottom: 0; + width: 100%; +} +.range-slider-vertical-reversed .range-bar-active { + top: 0; + bottom: auto; +} +.range-knob-wrap { + z-index: 20; + position: absolute; + height: var(--f7-range-knob-size); + width: var(--f7-range-knob-size); +} +.range-slider-horizontal .range-knob-wrap { + top: 50%; + margin-top: calc(-1 * var(--f7-range-knob-size) / 2); + margin-left: calc(-1 * var(--f7-range-knob-size) / 2); + left: 0; +} +.range-slider-vertical .range-knob-wrap { + left: 50%; + margin-left: calc(-1 * var(--f7-range-knob-size) / 2); + bottom: 0; + margin-bottom: calc(-1 * var(--f7-range-knob-size) / 2); +} +.range-slider-vertical-reversed .range-knob-wrap { + bottom: auto; + top: 0; + margin-bottom: 0; + margin-top: calc(-1 * var(--f7-range-knob-size) / 2); +} +.range-knob { + box-sizing: border-box; + border-radius: 50%; + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + z-index: 1; + background: var(--f7-range-knob-color, var(--f7-range-knob-bg-color, var(--f7-theme-color))); + box-shadow: var(--f7-range-knob-box-shadow); +} +.range-knob:after { + content: ''; + position: absolute; + left: 50%; + top: 50%; + width: 44px; + height: 44px; + margin-left: -22px; + margin-top: -22px; +} +.range-knob-label { + position: absolute; + left: 50%; + bottom: 100%; + text-align: center; + transition-duration: 120ms; + transition-property: transform; + box-sizing: border-box; + transform: translateY(100%) scale(0); + height: var(--f7-range-label-size); + line-height: var(--f7-range-label-size); + min-width: var(--f7-range-label-size); + color: var(--f7-range-label-text-color); + background-color: var(--f7-range-label-bg-color, var(--f7-theme-color)); + font-size: var(--f7-range-label-font-size); + font-weight: var(--f7-range-label-font-weight); + border-radius: var(--f7-range-label-border-radius); + padding: var(--f7-range-label-padding); +} +.range-knob-active-state .range-knob-label { + transform: translateY(0%) scale(1); +} +.range-scale { + position: absolute; +} +.range-slider-horizontal .range-scale { + top: 50%; + left: 0; + width: 100%; + margin-top: calc(var(--f7-range-bar-size) / 2); +} +.range-slider-vertical .range-scale { + right: 50%; + top: 0; + height: 100%; + margin-right: calc(var(--f7-range-bar-size) / 2); +} +.range-scale-step { + position: absolute; + box-sizing: border-box; + display: flex; + font-size: var(--f7-range-scale-font-size); + font-weight: var(--f7-range-scale-font-weight); + color: var(--f7-range-scale-text-color, var(--f7-range-bar-bg-color)); + line-height: 1; +} +.range-scale-step:before { + content: ''; + position: absolute; + background: var(--f7-range-scale-step-bg-color, var(--f7-range-bar-bg-color)); +} +.range-slider-horizontal .range-scale-step { + justify-content: center; + align-items: flex-start; + width: var(--f7-range-scale-step-width); + height: var(--f7-range-scale-step-height); + padding-top: calc(var(--f7-range-scale-step-height) + var(--f7-range-scale-label-offset)); + top: 0; + margin-left: calc(-1 * var(--f7-range-scale-step-width) / 2); +} +.range-slider-horizontal .range-scale-step:before { + left: 0; + top: 0; + width: 100%; + height: var(--f7-range-scale-step-height); +} +.range-slider-horizontal .range-scale-step:first-child { + margin-left: 0; +} +.range-slider-horizontal .range-scale-step:last-child { + margin-left: calc(-1 * var(--f7-range-scale-step-width)); +} +.range-slider-vertical .range-scale-step { + line-height: 1; + justify-content: flex-end; + align-items: center; + height: var(--f7-range-scale-step-width); + width: var(--f7-range-scale-step-height); + padding-right: calc(var(--f7-range-scale-step-height) + var(--f7-range-scale-label-offset)); + right: 0; + margin-bottom: calc(-1 * var(--f7-range-scale-step-width) / 2); +} +.range-slider-vertical .range-scale-step:first-child { + margin-bottom: 0; +} +.range-slider-vertical .range-scale-step:last-child { + margin-bottom: calc(-1 * var(--f7-range-scale-step-width)); +} +.range-slider-vertical .range-scale-step:before { + right: 0; + top: 0; + height: 100%; + width: var(--f7-range-scale-step-height); +} +.range-scale-substep { + --f7-range-scale-step-bg-color: var(--f7-range-scale-substep-bg-color, var(--f7-range-bar-bg-color)); + --f7-range-scale-step-width: var(--f7-range-scale-substep-width); + --f7-range-scale-step-height: var(--f7-range-scale-substep-height); +} +.ios .range-knob-label { + margin-bottom: 6px; + transform: translateX(-50%) translateY(100%) scale(0); +} +.ios .range-knob-active-state .range-knob-label { + transform: translateX(-50%) translateY(0%) scale(1); +} +.md .range-knob { + transition-duration: 200ms; + transition-property: transform, background-color; +} +.md .range-knob-active-state .range-knob { + transform: scale(1.5); +} +.md .range-slider-min:not(.range-slider-dual) .range-knob { + background: #fff !important; + border: 2px solid var(--f7-range-bar-bg-color); +} +.md .range-knob-label { + width: var(--f7-range-label-size); + margin-left: calc(-1 * var(--f7-range-label-size) / 2); + margin-bottom: 8px; +} +.md .range-knob-label:before { + content: ''; + left: 50%; + top: 0px; + margin-left: calc(-1 * var(--f7-range-label-size) / 2); + position: absolute; + z-index: -1; + width: var(--f7-range-label-size); + height: var(--f7-range-label-size); + background: var(--f7-range-label-bg-color, var(--f7-theme-color)); + transform: rotate(-45deg); + border-radius: 50% 50% 50% 0; +} +.md .range-knob-active-state .range-knob-label { + transform: translateY(0%) scale(1); +} +.md .range-slider-label .range-knob-active-state .range-knob { + transform: scale(0); +} +.aurora .range-knob-label { + margin-bottom: 6px; + transform: translateX(-50%) translateY(100%) scale(0); +} +.aurora .range-knob-active-state .range-knob-label { + transform: translateX(-50%) translateY(0%) scale(1); +} +/* === Stepper === */ +:root { + /* + --f7-stepper-button-text-color: var(--f7-theme-color); + --f7-stepper-button-pressed-text-color: var(--f7-button-text-color, var(--f7-theme-color)); + --f7-stepper-value-text-color: var(--f7-theme-color); + */ + --f7-stepper-fill-button-text-color: #fff; + /* + --f7-stepper-fill-button-bg-color: var(--f7-theme-color); + */ + --f7-stepper-raised-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0,0,0,0.24); + --f7-stepper-value-font-weight: 500; + --f7-stepper-border-width: 2px; +} +.ios { + --f7-stepper-height: 28px; + --f7-stepper-border-radius: 5px; + /* + --f7-stepper-button-pressed-bg-color: rgba(var(--f7-theme-color-rgb), .15); + --f7-stepper-fill-button-pressed-bg-color: var(--f7-theme-color-tint); + */ + --f7-stepper-large-height: 44px; + --f7-stepper-small-height: 26px; + --f7-stepper-small-border-width: 2px; + --f7-stepper-value-font-size: 17px; +} +.md { + --f7-stepper-height: 36px; + --f7-stepper-border-radius: 4px; + /* + --f7-stepper-fill-button-pressed-bg-color: var(--f7-theme-color-shade); + */ + --f7-stepper-large-height: 48px; + --f7-stepper-small-border-width: 2px; + --f7-stepper-small-height: 28px; + --f7-stepper-value-font-size: 14px; + --f7-stepper-button-pressed-bg-color: rgba(0, 0, 0, 0.1); +} +.md .theme-dark, +.md.theme-dark { + --f7-stepper-button-pressed-bg-color: rgba(255, 255, 255, 0.1); +} +.aurora { + /* + --f7-stepper-button-hover-bg-color: rgba(var(--f7-theme-color-rgb), .07); + --f7-stepper-button-fill-hover-bg-color: var(--f7-theme-color-tint); + */ + --f7-stepper-height: 28px; + --f7-stepper-border-radius: 4px; + /* + --f7-stepper-button-pressed-bg-color: rgba(var(--f7-theme-color-rgb), .15); + --f7-stepper-fill-button-pressed-bg-color: var(--f7-theme-color-shade); + */ + --f7-stepper-large-height: 34px; + --f7-stepper-small-border-width: 1px; + --f7-stepper-small-height: 22px; + --f7-stepper-value-font-size: 14px; +} +.stepper { + display: inline-flex; + align-items: stretch; + height: var(--f7-stepper-height); + border-radius: var(--f7-stepper-border-radius); +} +.stepper-button, +.stepper-button-minus, +.stepper-button-plus { + background-color: var(--f7-stepper-button-bg-color); + width: 40px; + border-radius: var(--f7-stepper-border-radius); + border: var(--f7-stepper-border-width) solid var(--f7-theme-color); + color: var(--f7-stepper-button-text-color, var(--f7-theme-color)); + line-height: calc(var(--f7-stepper-height) - var(--f7-stepper-border-width, 0px)); + text-align: center; + display: flex; + justify-content: center; + align-content: center; + align-items: center; + flex-shrink: 0; + box-sizing: border-box; + position: relative; + cursor: pointer; +} +.stepper-button.active-state, +.stepper-button-minus.active-state, +.stepper-button-plus.active-state { + background-color: var(--f7-stepper-button-pressed-bg-color, rgba(var(--f7-theme-color-rgb), 0.15)); + color: var(--f7-stepper-button-pressed-text-color, var(--f7-stepper-button-text-color, var(--f7-theme-color))); +} +.stepper-button:first-child, +.stepper-button-minus:first-child, +.stepper-button-plus:first-child { + border-radius: var(--f7-stepper-border-radius) 0 0 var(--f7-stepper-border-radius); +} +.stepper-button:last-child, +.stepper-button-minus:last-child, +.stepper-button-plus:last-child { + border-radius: 0 var(--f7-stepper-border-radius) var(--f7-stepper-border-radius) 0; +} +.stepper-button .icon, +.stepper-button-minus .icon, +.stepper-button-plus .icon { + pointer-events: none; +} +.stepper-button + .stepper-button, +.stepper-button-minus + .stepper-button, +.stepper-button-plus + .stepper-button, +.stepper-button + .stepper-button-minus, +.stepper-button-minus + .stepper-button-minus, +.stepper-button-plus + .stepper-button-minus, +.stepper-button + .stepper-button-plus, +.stepper-button-minus + .stepper-button-plus, +.stepper-button-plus + .stepper-button-plus { + border-left: none; +} +.stepper-button-plus, +.stepper-button-minus { + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; +} +.stepper-button-plus:after, +.stepper-button-minus:after, +.stepper-button-plus:before, +.stepper-button-minus:before { + content: ''; + position: absolute; + left: 50%; + top: 50%; + transform: translate(-50%, -50%); + background-color: var(--f7-stepper-button-text-color, var(--f7-theme-color)); + border-radius: 2px; +} +.stepper-button-plus:after, +.stepper-button-minus:after { + width: 15px; + height: 2px; +} +.stepper-button-plus:before { + height: 15px; + width: 2px; +} +.stepper-value { + display: flex; + align-content: center; + align-items: center; + justify-content: center; +} +.stepper-input-wrap, +.stepper-value { + flex-shrink: 1; + text-align: center; + border-top: var(--f7-stepper-border-width) solid var(--f7-theme-color); + border-bottom: var(--f7-stepper-border-width) solid var(--f7-theme-color); +} +.stepper .stepper-input-wrap input, +.stepper-value { + width: 45px; + color: var(--f7-stepper-value-text-color, var(--f7-theme-color)); + font-size: var(--f7-stepper-value-font-size); + font-weight: var(--f7-stepper-value-font-weight); + text-align: center; +} +.stepper .stepper-input-wrap input { + height: 100%; +} +.stepper-round, +.ios .stepper-round-ios, +.md .stepper-round-md, +.aurora .stepper-round-aurora { + --f7-stepper-border-radius: var(--f7-stepper-height); +} +.stepper-fill, +.ios .stepper-fill-ios, +.md .stepper-fill-md, +.aurora .stepper-fill-aurora { + --f7-stepper-button-bg-color: var(--f7-stepper-fill-button-bg-color, var(--f7-theme-color)); + --f7-stepper-button-text-color: var(--f7-stepper-fill-button-text-color); + --f7-touch-ripple-color: var(--f7-touch-ripple-white); +} +.stepper-fill .stepper-button + .stepper-button, +.ios .stepper-fill-ios .stepper-button + .stepper-button, +.md .stepper-fill-md .stepper-button + .stepper-button, +.aurora .stepper-fill-aurora .stepper-button + .stepper-button, +.stepper-raised .stepper-button + .stepper-button, +.ios .stepper-raised-ios .stepper-button + .stepper-button, +.md .stepper-raised-md .stepper-button + .stepper-button, +.aurora .stepper-raised-aurora .stepper-button + .stepper-button, +.stepper-fill .stepper-button-minus + .stepper-button-plus, +.ios .stepper-fill-ios .stepper-button-minus + .stepper-button-plus, +.md .stepper-fill-md .stepper-button-minus + .stepper-button-plus, +.aurora .stepper-fill-aurora .stepper-button-minus + .stepper-button-plus, +.stepper-raised .stepper-button-minus + .stepper-button-plus, +.ios .stepper-raised-ios .stepper-button-minus + .stepper-button-plus, +.md .stepper-raised-md .stepper-button-minus + .stepper-button-plus, +.aurora .stepper-raised-aurora .stepper-button-minus + .stepper-button-plus { + border-left: 1px solid rgba(0, 0, 0, 0.1); +} +.stepper-fill .stepper-button + .stepper-button.active-state, +.ios .stepper-fill-ios .stepper-button + .stepper-button.active-state, +.md .stepper-fill-md .stepper-button + .stepper-button.active-state, +.aurora .stepper-fill-aurora .stepper-button + .stepper-button.active-state, +.stepper-fill .stepper-button-minus + .stepper-button-plus.active-state, +.ios .stepper-fill-ios .stepper-button-minus + .stepper-button-plus.active-state, +.md .stepper-fill-md .stepper-button-minus + .stepper-button-plus.active-state, +.aurora .stepper-fill-aurora .stepper-button-minus + .stepper-button-plus.active-state { + border-left-color: var(--f7-stepper-button-pressed-bg-color); +} +.stepper-raised:not(.stepper-fill) .stepper-input-wrap, +.ios .stepper-raised-ios:not(.stepper-fill-ios):not(.stepper-fill) .stepper-input-wrap, +.md .stepper-raised-md:not(.stepper-fill-md):not(.stepper-fill) .stepper-input-wrap, +.aurora .stepper-raised-aurora:not(.stepper-fill-aurora):not(.stepper-fill) .stepper-input-wrap, +.stepper-raised:not(.stepper-fill) .stepper-value, +.ios .stepper-raised-ios:not(.stepper-fill-ios):not(.stepper-fill) .stepper-value, +.md .stepper-raised-md:not(.stepper-fill-md):not(.stepper-fill) .stepper-value, +.aurora .stepper-raised-aurora:not(.stepper-fill-aurora):not(.stepper-fill) .stepper-value { + border-left: 1px solid rgba(0, 0, 0, 0.1); + border-right: 1px solid rgba(0, 0, 0, 0.1); +} +.stepper-large, +.ios .stepper-large-ios, +.md .stepper-large-md, +.aurora .stepper-large-aurora { + --f7-stepper-height: var(--f7-stepper-large-height); +} +.stepper-small, +.ios .stepper-small-ios, +.md .stepper-small-md, +.aurora .stepper-small-aurora { + --f7-stepper-border-width: var(--f7-stepper-small-border-width); + --f7-stepper-height: var(--f7-stepper-small-height); +} +.ios .stepper-fill.stepper-small-ios, +.ios .stepper-fill.stepper-small { + --f7-stepper-button-pressed-bg-color: transparent; + --f7-stepper-button-pressed-text-color: var(--f7-theme-color); +} +.stepper-raised, +.ios .stepper-raised-ios, +.md .stepper-raised-md, +.aurora .stepper-raised-aurora { + --f7-stepper-border-width: 0; + box-shadow: var(--f7-stepper-raised-box-shadow); +} +.ios .stepper-button .f7-icons, +.ios .stepper-button-minus .f7-icons, +.ios .stepper-button-plus .f7-icons { + font-size: 22px; +} +.ios .stepper-fill, +.ios .stepper-fill-ios { + --f7-stepper-button-pressed-bg-color: var(--f7-stepper-fill-button-pressed-bg-color, var(--f7-theme-color-tint)); +} +.ios .stepper-small.stepper-raised, +.ios .stepper-small-ios.stepper-raised, +.ios .stepper-small.stepper-raised-ios, +.ios .stepper-small-ios.stepper-raised-ios { + --f7-stepper-border-width: 0px; +} +.ios .stepper-small .stepper-button, +.ios .stepper-small-ios .stepper-button, +.ios .stepper-small .stepper-button-minus, +.ios .stepper-small-ios .stepper-button-minus, +.ios .stepper-small .stepper-button-plus, +.ios .stepper-small-ios .stepper-button-plus { + transition-duration: 200ms; +} +.ios .stepper-small .stepper-button.active-state:after, +.ios .stepper-small-ios .stepper-button.active-state:after, +.ios .stepper-small .stepper-button-minus.active-state:after, +.ios .stepper-small-ios .stepper-button-minus.active-state:after, +.ios .stepper-small .stepper-button-plus.active-state:after, +.ios .stepper-small-ios .stepper-button-plus.active-state:after, +.ios .stepper-small .stepper-button.active-state:before, +.ios .stepper-small-ios .stepper-button.active-state:before, +.ios .stepper-small .stepper-button-minus.active-state:before, +.ios .stepper-small-ios .stepper-button-minus.active-state:before, +.ios .stepper-small .stepper-button-plus.active-state:before, +.ios .stepper-small-ios .stepper-button-plus.active-state:before { + transition-duration: 200ms; + background-color: var(--f7-theme-color); +} +.md .stepper-button, +.md .stepper-button-minus, +.md .stepper-button-plus { + transition-duration: 300ms; + transform: translate3d(0, 0, 0); + overflow: hidden; +} +.md .stepper-fill, +.md .stepper-fill-md { + --f7-stepper-button-pressed-bg-color: var(--f7-stepper-fill-button-pressed-bg-color, var(--f7-theme-color-shade)); +} +.aurora .stepper-button, +.aurora .stepper-button-minus, +.aurora .stepper-button-plus { + transition-duration: 100ms; + transform: translate3d(0, 0, 0); + overflow: hidden; +} +.aurora.device-desktop .stepper-button:not(.active-state):not(.no-hover):hover, +.aurora.device-desktop .stepper-button-minus:not(.active-state):not(.no-hover):hover, +.aurora.device-desktop .stepper-button-plus:not(.active-state):not(.no-hover):hover { + background-color: var(--f7-stepper-button-hover-bg-color, rgba(var(--f7-theme-color-rgb), 0.07)); +} +.aurora .stepper-fill, +.aurora .stepper-fill-aurora { + --f7-stepper-button-hover-bg-color: var(--f7-stepper-button-fill-hover-bg-color, var(--f7-theme-color-tint)); + --f7-stepper-button-pressed-bg-color: var(--f7-stepper-fill-button-pressed-bg-color, var(--f7-theme-color-shade)); +} +/* === Smart Select === */ +.smart-select :root { + /* + --f7-smart-select-sheet-bg: var(--f7-list-bg-color); + --f7-smart-select-sheet-toolbar-border-color: var(--f7-bars-border-color); + */ +} +.smart-select select { + display: none; +} +.smart-select .item-after { + max-width: 70%; + overflow: hidden; + text-overflow: ellipsis; + position: relative; + display: block; +} +.smart-select-sheet .page, +.smart-select-sheet .sheet-modal-inner, +.smart-select-sheet .list ul { + background: var(--f7-smart-select-sheet-bg, var(--f7-list-bg-color)); +} +.smart-select-sheet .toolbar:after { + content: ''; + position: absolute; + background-color: var(--f7-smart-select-sheet-toolbar-border-color, var(--f7-bars-border-color)); + display: block; + z-index: 15; + top: auto; + right: auto; + bottom: 0; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 100%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +.smart-select-sheet .toolbar:after { + display: block; +} +.smart-select-sheet .list { + margin: 0; +} +.smart-select-sheet .list ul:before, +.smart-select-sheet .list ul:after { + display: none !important; +} +.smart-select-popover .popover-inner { + max-height: 40vh; +} +/* === Grid === */ +:root { + --f7-grid-gap: 16px; + --f7-grid-row-gap: 0px; + --f7-grid-resize-handler-bg-color: rgba(0, 0, 0, 0.35); +} +:root .theme-dark, +:root.theme-dark { + --f7-grid-resize-handler-bg-color: rgba(255, 255, 255, 0.35); +} +.row { + display: flex; + justify-content: space-between; + flex-wrap: wrap; + align-items: flex-start; + --f7-cols-per-row: 1; +} +.row + .row { + margin-top: var(--f7-grid-row-gap); +} +.row > [class*="col-"], +.row > .col { + box-sizing: border-box; + width: calc((100% - var(--f7-grid-gap) * (var(--f7-cols-per-row) - 1)) / var(--f7-cols-per-row)); +} +.row > [class*="col-"].resizable, +.row > .col.resizable { + position: relative; +} +.row.resizable { + position: relative; +} +.row.no-gap { + --f7-grid-gap: 0px; + --f7-grid-row-gap: 0px; +} +.row .col-5 { + --f7-cols-per-row: 20; +} +.row .col-10 { + --f7-cols-per-row: 10; +} +.row .col-15 { + --f7-cols-per-row: 6.66666667; +} +.row .col-20 { + --f7-cols-per-row: 5; +} +.row .col-25 { + --f7-cols-per-row: 4; +} +.row .col-30 { + --f7-cols-per-row: 3.33333333; +} +.row .col-33 { + --f7-cols-per-row: 3; +} +.row .col-35 { + --f7-cols-per-row: 2.85714286; +} +.row .col-40 { + --f7-cols-per-row: 2.5; +} +.row .col-45 { + --f7-cols-per-row: 2.22222222; +} +.row .col-50 { + --f7-cols-per-row: 2; +} +.row .col-55 { + --f7-cols-per-row: 1.81818182; +} +.row .col-60 { + --f7-cols-per-row: 1.66666667; +} +.row .col-65 { + --f7-cols-per-row: 1.53846154; +} +.row .col-66 { + --f7-cols-per-row: 1.5; +} +.row .col-70 { + --f7-cols-per-row: 1.42857143; +} +.row .col-75 { + --f7-cols-per-row: 1.33333333; +} +.row .col-80 { + --f7-cols-per-row: 1.25; +} +.row .col-85 { + --f7-cols-per-row: 1.17647059; +} +.row .col-90 { + --f7-cols-per-row: 1.11111111; +} +.row .col-95 { + --f7-cols-per-row: 1.05263158; +} +.row .col-100 { + --f7-cols-per-row: 1; +} +.row .col:nth-last-of-type(1), +.row .col:nth-last-of-type(1) ~ .col { + --f7-cols-per-row: 1; +} +.row .col:nth-last-of-type(2), +.row .col:nth-last-of-type(2) ~ .col { + --f7-cols-per-row: 2; +} +.row .col:nth-last-of-type(3), +.row .col:nth-last-of-type(3) ~ .col { + --f7-cols-per-row: 3; +} +.row .col:nth-last-of-type(4), +.row .col:nth-last-of-type(4) ~ .col { + --f7-cols-per-row: 4; +} +.row .col:nth-last-of-type(5), +.row .col:nth-last-of-type(5) ~ .col { + --f7-cols-per-row: 5; +} +.row .col:nth-last-of-type(6), +.row .col:nth-last-of-type(6) ~ .col { + --f7-cols-per-row: 6; +} +.row .col:nth-last-of-type(7), +.row .col:nth-last-of-type(7) ~ .col { + --f7-cols-per-row: 7; +} +.row .col:nth-last-of-type(8), +.row .col:nth-last-of-type(8) ~ .col { + --f7-cols-per-row: 8; +} +.row .col:nth-last-of-type(9), +.row .col:nth-last-of-type(9) ~ .col { + --f7-cols-per-row: 9; +} +.row .col:nth-last-of-type(10), +.row .col:nth-last-of-type(10) ~ .col { + --f7-cols-per-row: 10; +} +.row .col:nth-last-of-type(11), +.row .col:nth-last-of-type(11) ~ .col { + --f7-cols-per-row: 11; +} +.row .col:nth-last-of-type(12), +.row .col:nth-last-of-type(12) ~ .col { + --f7-cols-per-row: 12; +} +.row .col:nth-last-of-type(13), +.row .col:nth-last-of-type(13) ~ .col { + --f7-cols-per-row: 13; +} +.row .col:nth-last-of-type(14), +.row .col:nth-last-of-type(14) ~ .col { + --f7-cols-per-row: 14; +} +.row .col:nth-last-of-type(15), +.row .col:nth-last-of-type(15) ~ .col { + --f7-cols-per-row: 15; +} +.row .col:nth-last-of-type(16), +.row .col:nth-last-of-type(16) ~ .col { + --f7-cols-per-row: 16; +} +.row .col:nth-last-of-type(17), +.row .col:nth-last-of-type(17) ~ .col { + --f7-cols-per-row: 17; +} +.row .col:nth-last-of-type(18), +.row .col:nth-last-of-type(18) ~ .col { + --f7-cols-per-row: 18; +} +.row .col:nth-last-of-type(19), +.row .col:nth-last-of-type(19) ~ .col { + --f7-cols-per-row: 19; +} +.row .col:nth-last-of-type(20), +.row .col:nth-last-of-type(20) ~ .col { + --f7-cols-per-row: 20; +} +.row .col:nth-last-of-type(21), +.row .col:nth-last-of-type(21) ~ .col { + --f7-cols-per-row: 21; +} +.row .col:nth-last-of-type(22), +.row .col:nth-last-of-type(22) ~ .col { + --f7-cols-per-row: 22; +} +@media (min-width: 480px) { + .row .xsmall-5 { + --f7-cols-per-row: 20; + } + .row .xsmall-10 { + --f7-cols-per-row: 10; + } + .row .xsmall-15 { + --f7-cols-per-row: 6.66666667; + } + .row .xsmall-20 { + --f7-cols-per-row: 5; + } + .row .xsmall-25 { + --f7-cols-per-row: 4; + } + .row .xsmall-30 { + --f7-cols-per-row: 3.33333333; + } + .row .xsmall-33 { + --f7-cols-per-row: 3; + } + .row .xsmall-35 { + --f7-cols-per-row: 2.85714286; + } + .row .xsmall-40 { + --f7-cols-per-row: 2.5; + } + .row .xsmall-45 { + --f7-cols-per-row: 2.22222222; + } + .row .xsmall-50 { + --f7-cols-per-row: 2; + } + .row .xsmall-55 { + --f7-cols-per-row: 1.81818182; + } + .row .xsmall-60 { + --f7-cols-per-row: 1.66666667; + } + .row .xsmall-65 { + --f7-cols-per-row: 1.53846154; + } + .row .xsmall-66 { + --f7-cols-per-row: 1.5; + } + .row .xsmall-70 { + --f7-cols-per-row: 1.42857143; + } + .row .xsmall-75 { + --f7-cols-per-row: 1.33333333; + } + .row .xsmall-80 { + --f7-cols-per-row: 1.25; + } + .row .xsmall-85 { + --f7-cols-per-row: 1.17647059; + } + .row .xsmall-90 { + --f7-cols-per-row: 1.11111111; + } + .row .xsmall-95 { + --f7-cols-per-row: 1.05263158; + } + .row .xsmall-100 { + --f7-cols-per-row: 1; + } + .row .xsmall-auto:nth-last-of-type(1), + .row .xsmall-auto:nth-last-of-type(1) ~ .xsmall-auto { + --f7-cols-per-row: 1; + } + .row .xsmall-auto:nth-last-of-type(2), + .row .xsmall-auto:nth-last-of-type(2) ~ .xsmall-auto { + --f7-cols-per-row: 2; + } + .row .xsmall-auto:nth-last-of-type(3), + .row .xsmall-auto:nth-last-of-type(3) ~ .xsmall-auto { + --f7-cols-per-row: 3; + } + .row .xsmall-auto:nth-last-of-type(4), + .row .xsmall-auto:nth-last-of-type(4) ~ .xsmall-auto { + --f7-cols-per-row: 4; + } + .row .xsmall-auto:nth-last-of-type(5), + .row .xsmall-auto:nth-last-of-type(5) ~ .xsmall-auto { + --f7-cols-per-row: 5; + } + .row .xsmall-auto:nth-last-of-type(6), + .row .xsmall-auto:nth-last-of-type(6) ~ .xsmall-auto { + --f7-cols-per-row: 6; + } + .row .xsmall-auto:nth-last-of-type(7), + .row .xsmall-auto:nth-last-of-type(7) ~ .xsmall-auto { + --f7-cols-per-row: 7; + } + .row .xsmall-auto:nth-last-of-type(8), + .row .xsmall-auto:nth-last-of-type(8) ~ .xsmall-auto { + --f7-cols-per-row: 8; + } + .row .xsmall-auto:nth-last-of-type(9), + .row .xsmall-auto:nth-last-of-type(9) ~ .xsmall-auto { + --f7-cols-per-row: 9; + } + .row .xsmall-auto:nth-last-of-type(10), + .row .xsmall-auto:nth-last-of-type(10) ~ .xsmall-auto { + --f7-cols-per-row: 10; + } + .row .xsmall-auto:nth-last-of-type(11), + .row .xsmall-auto:nth-last-of-type(11) ~ .xsmall-auto { + --f7-cols-per-row: 11; + } + .row .xsmall-auto:nth-last-of-type(12), + .row .xsmall-auto:nth-last-of-type(12) ~ .xsmall-auto { + --f7-cols-per-row: 12; + } + .row .xsmall-auto:nth-last-of-type(13), + .row .xsmall-auto:nth-last-of-type(13) ~ .xsmall-auto { + --f7-cols-per-row: 13; + } + .row .xsmall-auto:nth-last-of-type(14), + .row .xsmall-auto:nth-last-of-type(14) ~ .xsmall-auto { + --f7-cols-per-row: 14; + } + .row .xsmall-auto:nth-last-of-type(15), + .row .xsmall-auto:nth-last-of-type(15) ~ .xsmall-auto { + --f7-cols-per-row: 15; + } + .row .xsmall-auto:nth-last-of-type(16), + .row .xsmall-auto:nth-last-of-type(16) ~ .xsmall-auto { + --f7-cols-per-row: 16; + } + .row .xsmall-auto:nth-last-of-type(17), + .row .xsmall-auto:nth-last-of-type(17) ~ .xsmall-auto { + --f7-cols-per-row: 17; + } + .row .xsmall-auto:nth-last-of-type(18), + .row .xsmall-auto:nth-last-of-type(18) ~ .xsmall-auto { + --f7-cols-per-row: 18; + } + .row .xsmall-auto:nth-last-of-type(19), + .row .xsmall-auto:nth-last-of-type(19) ~ .xsmall-auto { + --f7-cols-per-row: 19; + } + .row .xsmall-auto:nth-last-of-type(20), + .row .xsmall-auto:nth-last-of-type(20) ~ .xsmall-auto { + --f7-cols-per-row: 20; + } + .row .xsmall-auto:nth-last-of-type(21), + .row .xsmall-auto:nth-last-of-type(21) ~ .xsmall-auto { + --f7-cols-per-row: 21; + } + .row .xsmall-auto:nth-last-of-type(22), + .row .xsmall-auto:nth-last-of-type(22) ~ .xsmall-auto { + --f7-cols-per-row: 22; + } +} +@media (min-width: 568px) { + .row .small-5 { + --f7-cols-per-row: 20; + } + .row .small-10 { + --f7-cols-per-row: 10; + } + .row .small-15 { + --f7-cols-per-row: 6.66666667; + } + .row .small-20 { + --f7-cols-per-row: 5; + } + .row .small-25 { + --f7-cols-per-row: 4; + } + .row .small-30 { + --f7-cols-per-row: 3.33333333; + } + .row .small-33 { + --f7-cols-per-row: 3; + } + .row .small-35 { + --f7-cols-per-row: 2.85714286; + } + .row .small-40 { + --f7-cols-per-row: 2.5; + } + .row .small-45 { + --f7-cols-per-row: 2.22222222; + } + .row .small-50 { + --f7-cols-per-row: 2; + } + .row .small-55 { + --f7-cols-per-row: 1.81818182; + } + .row .small-60 { + --f7-cols-per-row: 1.66666667; + } + .row .small-65 { + --f7-cols-per-row: 1.53846154; + } + .row .small-66 { + --f7-cols-per-row: 1.5; + } + .row .small-70 { + --f7-cols-per-row: 1.42857143; + } + .row .small-75 { + --f7-cols-per-row: 1.33333333; + } + .row .small-80 { + --f7-cols-per-row: 1.25; + } + .row .small-85 { + --f7-cols-per-row: 1.17647059; + } + .row .small-90 { + --f7-cols-per-row: 1.11111111; + } + .row .small-95 { + --f7-cols-per-row: 1.05263158; + } + .row .small-100 { + --f7-cols-per-row: 1; + } + .row .small-auto:nth-last-of-type(1), + .row .small-auto:nth-last-of-type(1) ~ .small-auto { + --f7-cols-per-row: 1; + } + .row .small-auto:nth-last-of-type(2), + .row .small-auto:nth-last-of-type(2) ~ .small-auto { + --f7-cols-per-row: 2; + } + .row .small-auto:nth-last-of-type(3), + .row .small-auto:nth-last-of-type(3) ~ .small-auto { + --f7-cols-per-row: 3; + } + .row .small-auto:nth-last-of-type(4), + .row .small-auto:nth-last-of-type(4) ~ .small-auto { + --f7-cols-per-row: 4; + } + .row .small-auto:nth-last-of-type(5), + .row .small-auto:nth-last-of-type(5) ~ .small-auto { + --f7-cols-per-row: 5; + } + .row .small-auto:nth-last-of-type(6), + .row .small-auto:nth-last-of-type(6) ~ .small-auto { + --f7-cols-per-row: 6; + } + .row .small-auto:nth-last-of-type(7), + .row .small-auto:nth-last-of-type(7) ~ .small-auto { + --f7-cols-per-row: 7; + } + .row .small-auto:nth-last-of-type(8), + .row .small-auto:nth-last-of-type(8) ~ .small-auto { + --f7-cols-per-row: 8; + } + .row .small-auto:nth-last-of-type(9), + .row .small-auto:nth-last-of-type(9) ~ .small-auto { + --f7-cols-per-row: 9; + } + .row .small-auto:nth-last-of-type(10), + .row .small-auto:nth-last-of-type(10) ~ .small-auto { + --f7-cols-per-row: 10; + } + .row .small-auto:nth-last-of-type(11), + .row .small-auto:nth-last-of-type(11) ~ .small-auto { + --f7-cols-per-row: 11; + } + .row .small-auto:nth-last-of-type(12), + .row .small-auto:nth-last-of-type(12) ~ .small-auto { + --f7-cols-per-row: 12; + } + .row .small-auto:nth-last-of-type(13), + .row .small-auto:nth-last-of-type(13) ~ .small-auto { + --f7-cols-per-row: 13; + } + .row .small-auto:nth-last-of-type(14), + .row .small-auto:nth-last-of-type(14) ~ .small-auto { + --f7-cols-per-row: 14; + } + .row .small-auto:nth-last-of-type(15), + .row .small-auto:nth-last-of-type(15) ~ .small-auto { + --f7-cols-per-row: 15; + } + .row .small-auto:nth-last-of-type(16), + .row .small-auto:nth-last-of-type(16) ~ .small-auto { + --f7-cols-per-row: 16; + } + .row .small-auto:nth-last-of-type(17), + .row .small-auto:nth-last-of-type(17) ~ .small-auto { + --f7-cols-per-row: 17; + } + .row .small-auto:nth-last-of-type(18), + .row .small-auto:nth-last-of-type(18) ~ .small-auto { + --f7-cols-per-row: 18; + } + .row .small-auto:nth-last-of-type(19), + .row .small-auto:nth-last-of-type(19) ~ .small-auto { + --f7-cols-per-row: 19; + } + .row .small-auto:nth-last-of-type(20), + .row .small-auto:nth-last-of-type(20) ~ .small-auto { + --f7-cols-per-row: 20; + } + .row .small-auto:nth-last-of-type(21), + .row .small-auto:nth-last-of-type(21) ~ .small-auto { + --f7-cols-per-row: 21; + } + .row .small-auto:nth-last-of-type(22), + .row .small-auto:nth-last-of-type(22) ~ .small-auto { + --f7-cols-per-row: 22; + } +} +@media (min-width: 768px) { + .row .medium-5 { + --f7-cols-per-row: 20; + } + .row .medium-10 { + --f7-cols-per-row: 10; + } + .row .medium-15 { + --f7-cols-per-row: 6.66666667; + } + .row .medium-20 { + --f7-cols-per-row: 5; + } + .row .medium-25 { + --f7-cols-per-row: 4; + } + .row .medium-30 { + --f7-cols-per-row: 3.33333333; + } + .row .medium-33 { + --f7-cols-per-row: 3; + } + .row .medium-35 { + --f7-cols-per-row: 2.85714286; + } + .row .medium-40 { + --f7-cols-per-row: 2.5; + } + .row .medium-45 { + --f7-cols-per-row: 2.22222222; + } + .row .medium-50 { + --f7-cols-per-row: 2; + } + .row .medium-55 { + --f7-cols-per-row: 1.81818182; + } + .row .medium-60 { + --f7-cols-per-row: 1.66666667; + } + .row .medium-65 { + --f7-cols-per-row: 1.53846154; + } + .row .medium-66 { + --f7-cols-per-row: 1.5; + } + .row .medium-70 { + --f7-cols-per-row: 1.42857143; + } + .row .medium-75 { + --f7-cols-per-row: 1.33333333; + } + .row .medium-80 { + --f7-cols-per-row: 1.25; + } + .row .medium-85 { + --f7-cols-per-row: 1.17647059; + } + .row .medium-90 { + --f7-cols-per-row: 1.11111111; + } + .row .medium-95 { + --f7-cols-per-row: 1.05263158; + } + .row .medium-100 { + --f7-cols-per-row: 1; + } + .row .medium-auto:nth-last-of-type(1), + .row .medium-auto:nth-last-of-type(1) ~ .medium-auto { + --f7-cols-per-row: 1; + } + .row .medium-auto:nth-last-of-type(2), + .row .medium-auto:nth-last-of-type(2) ~ .medium-auto { + --f7-cols-per-row: 2; + } + .row .medium-auto:nth-last-of-type(3), + .row .medium-auto:nth-last-of-type(3) ~ .medium-auto { + --f7-cols-per-row: 3; + } + .row .medium-auto:nth-last-of-type(4), + .row .medium-auto:nth-last-of-type(4) ~ .medium-auto { + --f7-cols-per-row: 4; + } + .row .medium-auto:nth-last-of-type(5), + .row .medium-auto:nth-last-of-type(5) ~ .medium-auto { + --f7-cols-per-row: 5; + } + .row .medium-auto:nth-last-of-type(6), + .row .medium-auto:nth-last-of-type(6) ~ .medium-auto { + --f7-cols-per-row: 6; + } + .row .medium-auto:nth-last-of-type(7), + .row .medium-auto:nth-last-of-type(7) ~ .medium-auto { + --f7-cols-per-row: 7; + } + .row .medium-auto:nth-last-of-type(8), + .row .medium-auto:nth-last-of-type(8) ~ .medium-auto { + --f7-cols-per-row: 8; + } + .row .medium-auto:nth-last-of-type(9), + .row .medium-auto:nth-last-of-type(9) ~ .medium-auto { + --f7-cols-per-row: 9; + } + .row .medium-auto:nth-last-of-type(10), + .row .medium-auto:nth-last-of-type(10) ~ .medium-auto { + --f7-cols-per-row: 10; + } + .row .medium-auto:nth-last-of-type(11), + .row .medium-auto:nth-last-of-type(11) ~ .medium-auto { + --f7-cols-per-row: 11; + } + .row .medium-auto:nth-last-of-type(12), + .row .medium-auto:nth-last-of-type(12) ~ .medium-auto { + --f7-cols-per-row: 12; + } + .row .medium-auto:nth-last-of-type(13), + .row .medium-auto:nth-last-of-type(13) ~ .medium-auto { + --f7-cols-per-row: 13; + } + .row .medium-auto:nth-last-of-type(14), + .row .medium-auto:nth-last-of-type(14) ~ .medium-auto { + --f7-cols-per-row: 14; + } + .row .medium-auto:nth-last-of-type(15), + .row .medium-auto:nth-last-of-type(15) ~ .medium-auto { + --f7-cols-per-row: 15; + } + .row .medium-auto:nth-last-of-type(16), + .row .medium-auto:nth-last-of-type(16) ~ .medium-auto { + --f7-cols-per-row: 16; + } + .row .medium-auto:nth-last-of-type(17), + .row .medium-auto:nth-last-of-type(17) ~ .medium-auto { + --f7-cols-per-row: 17; + } + .row .medium-auto:nth-last-of-type(18), + .row .medium-auto:nth-last-of-type(18) ~ .medium-auto { + --f7-cols-per-row: 18; + } + .row .medium-auto:nth-last-of-type(19), + .row .medium-auto:nth-last-of-type(19) ~ .medium-auto { + --f7-cols-per-row: 19; + } + .row .medium-auto:nth-last-of-type(20), + .row .medium-auto:nth-last-of-type(20) ~ .medium-auto { + --f7-cols-per-row: 20; + } + .row .medium-auto:nth-last-of-type(21), + .row .medium-auto:nth-last-of-type(21) ~ .medium-auto { + --f7-cols-per-row: 21; + } + .row .medium-auto:nth-last-of-type(22), + .row .medium-auto:nth-last-of-type(22) ~ .medium-auto { + --f7-cols-per-row: 22; + } +} +@media (min-width: 1024px) { + .row .large-5 { + --f7-cols-per-row: 20; + } + .row .large-10 { + --f7-cols-per-row: 10; + } + .row .large-15 { + --f7-cols-per-row: 6.66666667; + } + .row .large-20 { + --f7-cols-per-row: 5; + } + .row .large-25 { + --f7-cols-per-row: 4; + } + .row .large-30 { + --f7-cols-per-row: 3.33333333; + } + .row .large-33 { + --f7-cols-per-row: 3; + } + .row .large-35 { + --f7-cols-per-row: 2.85714286; + } + .row .large-40 { + --f7-cols-per-row: 2.5; + } + .row .large-45 { + --f7-cols-per-row: 2.22222222; + } + .row .large-50 { + --f7-cols-per-row: 2; + } + .row .large-55 { + --f7-cols-per-row: 1.81818182; + } + .row .large-60 { + --f7-cols-per-row: 1.66666667; + } + .row .large-65 { + --f7-cols-per-row: 1.53846154; + } + .row .large-66 { + --f7-cols-per-row: 1.5; + } + .row .large-70 { + --f7-cols-per-row: 1.42857143; + } + .row .large-75 { + --f7-cols-per-row: 1.33333333; + } + .row .large-80 { + --f7-cols-per-row: 1.25; + } + .row .large-85 { + --f7-cols-per-row: 1.17647059; + } + .row .large-90 { + --f7-cols-per-row: 1.11111111; + } + .row .large-95 { + --f7-cols-per-row: 1.05263158; + } + .row .large-100 { + --f7-cols-per-row: 1; + } + .row .large-auto:nth-last-of-type(1), + .row .large-auto:nth-last-of-type(1) ~ .large-auto { + --f7-cols-per-row: 1; + } + .row .large-auto:nth-last-of-type(2), + .row .large-auto:nth-last-of-type(2) ~ .large-auto { + --f7-cols-per-row: 2; + } + .row .large-auto:nth-last-of-type(3), + .row .large-auto:nth-last-of-type(3) ~ .large-auto { + --f7-cols-per-row: 3; + } + .row .large-auto:nth-last-of-type(4), + .row .large-auto:nth-last-of-type(4) ~ .large-auto { + --f7-cols-per-row: 4; + } + .row .large-auto:nth-last-of-type(5), + .row .large-auto:nth-last-of-type(5) ~ .large-auto { + --f7-cols-per-row: 5; + } + .row .large-auto:nth-last-of-type(6), + .row .large-auto:nth-last-of-type(6) ~ .large-auto { + --f7-cols-per-row: 6; + } + .row .large-auto:nth-last-of-type(7), + .row .large-auto:nth-last-of-type(7) ~ .large-auto { + --f7-cols-per-row: 7; + } + .row .large-auto:nth-last-of-type(8), + .row .large-auto:nth-last-of-type(8) ~ .large-auto { + --f7-cols-per-row: 8; + } + .row .large-auto:nth-last-of-type(9), + .row .large-auto:nth-last-of-type(9) ~ .large-auto { + --f7-cols-per-row: 9; + } + .row .large-auto:nth-last-of-type(10), + .row .large-auto:nth-last-of-type(10) ~ .large-auto { + --f7-cols-per-row: 10; + } + .row .large-auto:nth-last-of-type(11), + .row .large-auto:nth-last-of-type(11) ~ .large-auto { + --f7-cols-per-row: 11; + } + .row .large-auto:nth-last-of-type(12), + .row .large-auto:nth-last-of-type(12) ~ .large-auto { + --f7-cols-per-row: 12; + } + .row .large-auto:nth-last-of-type(13), + .row .large-auto:nth-last-of-type(13) ~ .large-auto { + --f7-cols-per-row: 13; + } + .row .large-auto:nth-last-of-type(14), + .row .large-auto:nth-last-of-type(14) ~ .large-auto { + --f7-cols-per-row: 14; + } + .row .large-auto:nth-last-of-type(15), + .row .large-auto:nth-last-of-type(15) ~ .large-auto { + --f7-cols-per-row: 15; + } + .row .large-auto:nth-last-of-type(16), + .row .large-auto:nth-last-of-type(16) ~ .large-auto { + --f7-cols-per-row: 16; + } + .row .large-auto:nth-last-of-type(17), + .row .large-auto:nth-last-of-type(17) ~ .large-auto { + --f7-cols-per-row: 17; + } + .row .large-auto:nth-last-of-type(18), + .row .large-auto:nth-last-of-type(18) ~ .large-auto { + --f7-cols-per-row: 18; + } + .row .large-auto:nth-last-of-type(19), + .row .large-auto:nth-last-of-type(19) ~ .large-auto { + --f7-cols-per-row: 19; + } + .row .large-auto:nth-last-of-type(20), + .row .large-auto:nth-last-of-type(20) ~ .large-auto { + --f7-cols-per-row: 20; + } + .row .large-auto:nth-last-of-type(21), + .row .large-auto:nth-last-of-type(21) ~ .large-auto { + --f7-cols-per-row: 21; + } + .row .large-auto:nth-last-of-type(22), + .row .large-auto:nth-last-of-type(22) ~ .large-auto { + --f7-cols-per-row: 22; + } +} +@media (min-width: 1200px) { + .row .xlarge-5 { + --f7-cols-per-row: 20; + } + .row .xlarge-10 { + --f7-cols-per-row: 10; + } + .row .xlarge-15 { + --f7-cols-per-row: 6.66666667; + } + .row .xlarge-20 { + --f7-cols-per-row: 5; + } + .row .xlarge-25 { + --f7-cols-per-row: 4; + } + .row .xlarge-30 { + --f7-cols-per-row: 3.33333333; + } + .row .xlarge-33 { + --f7-cols-per-row: 3; + } + .row .xlarge-35 { + --f7-cols-per-row: 2.85714286; + } + .row .xlarge-40 { + --f7-cols-per-row: 2.5; + } + .row .xlarge-45 { + --f7-cols-per-row: 2.22222222; + } + .row .xlarge-50 { + --f7-cols-per-row: 2; + } + .row .xlarge-55 { + --f7-cols-per-row: 1.81818182; + } + .row .xlarge-60 { + --f7-cols-per-row: 1.66666667; + } + .row .xlarge-65 { + --f7-cols-per-row: 1.53846154; + } + .row .xlarge-66 { + --f7-cols-per-row: 1.5; + } + .row .xlarge-70 { + --f7-cols-per-row: 1.42857143; + } + .row .xlarge-75 { + --f7-cols-per-row: 1.33333333; + } + .row .xlarge-80 { + --f7-cols-per-row: 1.25; + } + .row .xlarge-85 { + --f7-cols-per-row: 1.17647059; + } + .row .xlarge-90 { + --f7-cols-per-row: 1.11111111; + } + .row .xlarge-95 { + --f7-cols-per-row: 1.05263158; + } + .row .xlarge-100 { + --f7-cols-per-row: 1; + } + .row .xlarge-auto:nth-last-of-type(1), + .row .xlarge-auto:nth-last-of-type(1) ~ .xlarge-auto { + --f7-cols-per-row: 1; + } + .row .xlarge-auto:nth-last-of-type(2), + .row .xlarge-auto:nth-last-of-type(2) ~ .xlarge-auto { + --f7-cols-per-row: 2; + } + .row .xlarge-auto:nth-last-of-type(3), + .row .xlarge-auto:nth-last-of-type(3) ~ .xlarge-auto { + --f7-cols-per-row: 3; + } + .row .xlarge-auto:nth-last-of-type(4), + .row .xlarge-auto:nth-last-of-type(4) ~ .xlarge-auto { + --f7-cols-per-row: 4; + } + .row .xlarge-auto:nth-last-of-type(5), + .row .xlarge-auto:nth-last-of-type(5) ~ .xlarge-auto { + --f7-cols-per-row: 5; + } + .row .xlarge-auto:nth-last-of-type(6), + .row .xlarge-auto:nth-last-of-type(6) ~ .xlarge-auto { + --f7-cols-per-row: 6; + } + .row .xlarge-auto:nth-last-of-type(7), + .row .xlarge-auto:nth-last-of-type(7) ~ .xlarge-auto { + --f7-cols-per-row: 7; + } + .row .xlarge-auto:nth-last-of-type(8), + .row .xlarge-auto:nth-last-of-type(8) ~ .xlarge-auto { + --f7-cols-per-row: 8; + } + .row .xlarge-auto:nth-last-of-type(9), + .row .xlarge-auto:nth-last-of-type(9) ~ .xlarge-auto { + --f7-cols-per-row: 9; + } + .row .xlarge-auto:nth-last-of-type(10), + .row .xlarge-auto:nth-last-of-type(10) ~ .xlarge-auto { + --f7-cols-per-row: 10; + } + .row .xlarge-auto:nth-last-of-type(11), + .row .xlarge-auto:nth-last-of-type(11) ~ .xlarge-auto { + --f7-cols-per-row: 11; + } + .row .xlarge-auto:nth-last-of-type(12), + .row .xlarge-auto:nth-last-of-type(12) ~ .xlarge-auto { + --f7-cols-per-row: 12; + } + .row .xlarge-auto:nth-last-of-type(13), + .row .xlarge-auto:nth-last-of-type(13) ~ .xlarge-auto { + --f7-cols-per-row: 13; + } + .row .xlarge-auto:nth-last-of-type(14), + .row .xlarge-auto:nth-last-of-type(14) ~ .xlarge-auto { + --f7-cols-per-row: 14; + } + .row .xlarge-auto:nth-last-of-type(15), + .row .xlarge-auto:nth-last-of-type(15) ~ .xlarge-auto { + --f7-cols-per-row: 15; + } + .row .xlarge-auto:nth-last-of-type(16), + .row .xlarge-auto:nth-last-of-type(16) ~ .xlarge-auto { + --f7-cols-per-row: 16; + } + .row .xlarge-auto:nth-last-of-type(17), + .row .xlarge-auto:nth-last-of-type(17) ~ .xlarge-auto { + --f7-cols-per-row: 17; + } + .row .xlarge-auto:nth-last-of-type(18), + .row .xlarge-auto:nth-last-of-type(18) ~ .xlarge-auto { + --f7-cols-per-row: 18; + } + .row .xlarge-auto:nth-last-of-type(19), + .row .xlarge-auto:nth-last-of-type(19) ~ .xlarge-auto { + --f7-cols-per-row: 19; + } + .row .xlarge-auto:nth-last-of-type(20), + .row .xlarge-auto:nth-last-of-type(20) ~ .xlarge-auto { + --f7-cols-per-row: 20; + } + .row .xlarge-auto:nth-last-of-type(21), + .row .xlarge-auto:nth-last-of-type(21) ~ .xlarge-auto { + --f7-cols-per-row: 21; + } + .row .xlarge-auto:nth-last-of-type(22), + .row .xlarge-auto:nth-last-of-type(22) ~ .xlarge-auto { + --f7-cols-per-row: 22; + } +} +.row .resize-handler { + position: absolute; + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; + z-index: 100; +} +.row .resize-handler:before { + content: ''; + position: absolute; +} +.row .resize-handler:after { + content: ''; + position: absolute; + border-radius: 4px; + background: var(--f7-grid-resize-handler-bg-color); +} +.row > .resize-handler { + width: 100%; + height: var(--f7-grid-row-gap); + left: 0; + top: 100%; + cursor: row-resize; +} +.row > .resize-handler:before { + left: 0%; + top: 50%; + height: 12px; + width: 100%; + min-height: var(--f7-grid-row-gap); + transform: translateY(-50%); +} +.row > .resize-handler:after { + height: 4px; + margin-top: -2px; + width: 80%; + max-width: 20px; + left: 50%; + top: 50%; + transform: translateX(-50%); +} +[class*="col-"] > .resize-handler, +.col > .resize-handler { + width: var(--f7-grid-gap); + left: 100%; + top: 0; + height: 100%; + cursor: col-resize; +} +[class*="col-"] > .resize-handler:before, +.col > .resize-handler:before { + left: 50%; + top: 0; + height: 100%; + width: 12px; + min-width: var(--f7-grid-gap); + transform: translateX(-50%); +} +[class*="col-"] > .resize-handler:after, +.col > .resize-handler:after { + width: 4px; + margin-left: -2px; + height: 80%; + max-height: 20px; + border-radius: 4px; + left: 50%; + top: 50%; + transform: translateY(-50%); +} +.row:last-child > .resize-handler, +.row:last-of-type > .resize-handler, +.row [class*="col-"]:last-child > .resize-handler, +.row [class*="col-"]:last-of-type > .resize-handler, +.row .col:last-child > .resize-handler, +.row .col:last-of-type > .resize-handler { + display: none; +} +/* === Calendar/Datepicker === */ +:root { + --f7-calendar-height: 340px; + --f7-calendar-sheet-landscape-height: 220px; + --f7-calendar-popover-width: 320px; + --f7-calendar-popover-height: 320px; + --f7-calendar-modal-height: 420px; + --f7-calendar-modal-max-width: 380px; + --f7-calendar-modal-border-radius: 4px; + /* + --f7-calendar-header-bg-color: var(--f7-bars-bg-color); + --f7-calendar-header-link-color: var(--f7-bars-link-color); + --f7-calendar-header-text-color: var(--f7-bars-text-color); + --f7-calendar-footer-bg-color: var(--f7-bars-bg-color); + --f7-calendar-footer-border-color: var(--f7-bars-border-color); + --f7-calendar-footer-link-color: var(--f7-bars-link-color); + --f7-calendar-footer-text-color: var(--f7-bars-text-color); + --f7-calendar-week-header-bg-color: var(--f7-bars-bg-color); + --f7-calendar-week-header-text-color: var(--f7-bars-text-color); + */ + --f7-calendar-footer-padding: 0 8px; + --f7-calendar-week-header-font-size: 11px; + --f7-calendar-selected-text-color: #fff; + /* + --f7-calendar-selected-bg-color: var(--f7-theme-color); + */ + --f7-calendar-prev-next-text-color: #b8b8b8; + --f7-calendar-disabled-text-color: #d4d4d4; + --f7-calendar-event-dot-size: 4px; + /* + --f7-calendar-event-bg-color: var(--f7-theme-color); + */ + /* + --f7-calendar-picker-selected-text-color: var(--f7-theme-color); + */ + --f7-calendar-day-text-color: #000; + --f7-calendar-sheet-bg-color: #fff; + --f7-calendar-modal-bg-color: #fff; + --f7-calendar-picker-bg-color: #fff; + --f7-calendar-picker-pressed-bg-color: rgba(0, 0, 0, 0.1); + --f7-calendar-picker-hover-bg-color: rgba(0, 0, 0, 0.03); +} +:root .theme-dark, +:root.theme-dark { + --f7-calendar-sheet-border-color: var(--f7-bars-border-color); + --f7-calendar-modal-bg-color: #121212; + --f7-calendar-sheet-bg-color: #121212; + --f7-calendar-picker-bg-color: #1c1c1d; + --f7-calendar-picker-pressed-bg-color: rgba(255, 255, 255, 0.08); + --f7-calendar-picker-hover-bg-color: rgba(255, 255, 255, 0.03); +} +.ios { + --f7-calendar-sheet-border-color: #929499; + --f7-calendar-header-height: 44px; + --f7-calendar-header-font-size: 17px; + --f7-calendar-header-font-weight: 600; + --f7-calendar-header-padding: 0 8px; + --f7-calendar-footer-height: 44px; + --f7-calendar-footer-font-size: 17px; + --f7-calendar-week-header-height: 18px; + --f7-calendar-day-font-size: 15px; + --f7-calendar-day-size: 30px; + --f7-calendar-picker-font-size: 17px; + --f7-calendar-time-selector-font-size: 17px; + --f7-calendar-row-border-color: rgba(0, 0, 0, 0.25); + --f7-calendar-today-text-color: #000; + --f7-calendar-today-bg-color: #e3e3e3; +} +.ios .theme-dark, +.ios.theme-dark { + --f7-calendar-row-border-color: var(--f7-bars-border-color); + --f7-calendar-day-text-color: #fff; + --f7-calendar-today-text-color: #fff; + --f7-calendar-today-bg-color: #333; +} +.md { + --f7-calendar-sheet-border-color: #ccc; + --f7-calendar-header-height: 56px; + --f7-calendar-header-font-size: 20px; + --f7-calendar-header-font-weight: 400; + --f7-calendar-header-padding: 0 24px; + --f7-calendar-footer-height: 48px; + --f7-calendar-footer-font-size: 14px; + --f7-calendar-week-header-height: 24px; + --f7-calendar-row-border-color: transparent; + --f7-calendar-day-font-size: 14px; + /* + --f7-calendar-today-text-color: var(--f7-theme-color); + */ + --f7-calendar-today-bg-color: none; + --f7-calendar-day-size: 32px; + --f7-calendar-picker-font-size: 14px; + --f7-calendar-time-selector-font-size: 14px; +} +.md .theme-dark, +.md.theme-dark { + --f7-calendar-day-text-color: rgba(255, 255, 255, 0.87); +} +.aurora { + --f7-calendar-sheet-border-color: #ccc; + --f7-calendar-header-height: 38px; + --f7-calendar-header-font-size: 14px; + --f7-calendar-header-font-weight: 600; + --f7-calendar-header-padding: 0 8px; + --f7-calendar-footer-height: 38px; + --f7-calendar-footer-font-size: 14px; + --f7-calendar-week-header-height: 18px; + --f7-calendar-day-font-size: 13px; + --f7-calendar-day-size: 30px; + --f7-calendar-picker-font-size: 14px; + --f7-calendar-time-selector-font-size: 14px; + --f7-calendar-row-border-color: #e3e3e3; + --f7-calendar-today-text-color: #000; + --f7-calendar-today-bg-color: #e3e3e3; +} +.aurora .theme-dark, +.aurora.theme-dark { + --f7-calendar-row-border-color: var(--f7-bars-border-color); + --f7-calendar-day-text-color: #fff; + --f7-calendar-today-text-color: #fff; + --f7-calendar-today-bg-color: #333; +} +.calendar { + overflow: hidden; + height: var(--f7-calendar-height); + width: 100%; + display: flex; + flex-direction: column; +} +.calendar.modal-in { + display: flex; +} +@media (orientation: landscape) and (max-height: 415px) { + .calendar.calendar-sheet { + height: var(--f7-calendar-sheet-landscape-height); + } + .calendar.calendar-modal { + height: calc(100vh - var(--f7-navbar-height)); + } +} +.calendar.calendar-inline, +.calendar.calendar-popover .calendar { + position: relative; +} +.calendar-sheet { + --f7-sheet-border-color: var(--f7-calendar-sheet-border-color); + background: var(--f7-calendar-sheet-bg-color); + padding-bottom: var(--f7-safe-area-bottom); + height: calc(var(--f7-calendar-height) + var(--f7-safe-area-bottom)); +} +.calendar-sheet:before { + z-index: 600; +} +.calendar-sheet .toolbar:before, +.calendar-modal .toolbar:before, +.calendar-popover .toolbar:before { + display: none; +} +.calendar-popover { + width: var(--f7-calendar-popover-width); +} +.calendar-popover .toolbar-top, +.calendar-popover .calendar-header { + border-radius: var(--f7-popover-border-radius) var(--f7-popover-border-radius) 0 0; +} +.calendar-popover .calendar-header + .toolbar-top { + border-radius: 0; +} +.calendar-popover .toolbar-bottom, +.calendar-popover .calendar-footer { + border-radius: 0 0 var(--f7-popover-border-radius) var(--f7-popover-border-radius); +} +.calendar-popover .calendar { + height: var(--f7-calendar-popover-height); + position: relative; + z-index: 1; +} +.calendar-popover .calendar-month-picker, +.calendar-popover .calendar-year-picker, +.calendar-popover .calendar-time-picker { + border-radius: var(--f7-popover-border-radius); +} +.calendar-header { + width: 100%; + position: relative; + overflow: hidden; + flex-shrink: 0; + white-space: nowrap; + text-overflow: ellipsis; + box-sizing: border-box; + padding: var(--f7-calendar-header-padding); + background-color: var(--f7-calendar-header-bg-color, var(--f7-bars-bg-color)); + color: var(--f7-calendar-header-text-color, var(--f7-bars-text-color)); + height: var(--f7-calendar-header-height); + line-height: var(--f7-calendar-header-height); + font-size: var(--f7-calendar-header-font-size); + font-weight: var(--f7-calendar-header-font-weight); +} +.calendar-header a { + color: var(--f7-calendar-header-link-color, var(--f7-bars-link-color, var(--f7-theme-color))); +} +.calendar-footer { + width: 100%; + flex-shrink: 0; + padding: var(--f7-calendar-footer-padding); + background-color: var(--f7-calendar-footer-bg-color, var(--f7-bars-bg-color)); + color: var(--f7-calendar-footer-text-color, var(--f7-bars-text-color)); + height: var(--f7-calendar-footer-height); + font-size: var(--f7-calendar-header-font-size); + display: flex; + justify-content: flex-end; + box-sizing: border-box; + align-items: center; + position: relative; +} +.calendar-footer a { + color: var(--f7-calendar-footer-link-color, var(--f7-bars-link-color, var(--f7-theme-color))); +} +.calendar-footer:before { + content: ''; + position: absolute; + background-color: var(--f7-calendar-footer-border-color, var(--f7-bars-border-color)); + display: block; + z-index: 15; + top: 0; + right: auto; + bottom: auto; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 0%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +.calendar-modal { + position: absolute; + height: var(--f7-calendar-modal-height); + overflow: hidden; + top: 50%; + left: 50%; + min-width: 300px; + max-width: var(--f7-calendar-modal-max-width); + transform: translate3d(-50%, 100vh, 0); + transition-property: transform; + display: flex; + z-index: 13500; + background: var(--f7-calendar-modal-bg-color); + width: 90%; + border-radius: var(--f7-calendar-modal-border-radius); + box-shadow: var(--f7-elevation-24); +} +.calendar-modal.modal-in, +.calendar-modal.modal-out { + transition-duration: 400ms; +} +.calendar-modal.modal-in { + transform: translate3d(-50%, -50%, 0); +} +.calendar-modal.modal-out { + transform: translate3d(-50%, 100vh, 0); +} +.calendar-week-header { + display: flex; + box-sizing: border-box; + position: relative; + font-size: var(--f7-calendar-week-header-font-size); + background-color: var(--f7-calendar-week-header-bg-color, var(--f7-bars-bg-color)); + color: var(--f7-calendar-week-header-text-color, var(--f7-bars-text-color)); + height: var(--f7-calendar-week-header-height); + padding-left: var(--f7-safe-area-left); + padding-right: var(--f7-safe-area-right); +} +.calendar-week-header .calendar-week-day { + flex-shrink: 1; + width: calc(100% / 7); + text-align: center; + line-height: var(--f7-calendar-week-header-height); +} +.calendar-months { + width: 100%; + height: 100%; + overflow: hidden; + position: relative; + flex-shrink: 10; +} +.calendar-months-wrapper { + position: relative; + width: 100%; + height: 100%; + transition: 300ms; +} +.calendar-month { + display: flex; + flex-direction: column; + width: 100%; + height: 100%; + position: absolute; + left: 0; + top: 0; +} +.calendar-row { + height: 16.66666667%; + height: calc(100% / 6); + display: flex; + flex-shrink: 1; + width: 100%; + position: relative; + box-sizing: border-box; + padding-left: var(--f7-safe-area-left); + padding-right: var(--f7-safe-area-right); +} +.calendar-row:before { + content: ''; + position: absolute; + background-color: var(--f7-calendar-row-border-color); + display: block; + z-index: 15; + top: 0; + right: auto; + bottom: auto; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 0%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +.calendar-modal .calendar-months:first-child .calendar-row:first-child:before, +.calendar-popover .calendar-months:first-child .calendar-row:first-child:before { + display: none !important; +} +.calendar-day { + flex-shrink: 1; + display: flex; + justify-content: center; + align-items: center; + box-sizing: border-box; + width: 14.28571429%; + width: calc(100% / 7); + text-align: center; + cursor: pointer; + z-index: 20; + color: var(--f7-calendar-day-text-color); + height: 100%; + font-size: var(--f7-calendar-day-font-size); +} +.calendar-day.calendar-day-today .calendar-day-number { + color: var(--f7-calendar-today-text-color, var(--f7-theme-color)); + background-color: var(--f7-calendar-today-bg-color); +} +.calendar-day.calendar-day-prev, +.calendar-day.calendar-day-next { + color: var(--f7-calendar-prev-next-text-color); +} +.calendar-day.calendar-day-disabled { + color: var(--f7-calendar-disabled-text-color); + cursor: auto; +} +.calendar-day.calendar-day-selected .calendar-day-number { + color: var(--f7-calendar-selected-text-color); + background-color: var(--f7-calendar-selected-bg-color, var(--f7-theme-color)); +} +.calendar-day .calendar-day-number { + display: inline-block; + border-radius: 50%; + position: relative; + width: var(--f7-calendar-day-size); + height: var(--f7-calendar-day-size); + line-height: var(--f7-calendar-day-size); +} +.calendar-day .calendar-day-events { + position: absolute; + display: flex; + left: 0; + width: 100%; + top: 100%; + align-items: center; + justify-content: center; + margin-top: 1px; +} +.calendar-day .calendar-day-event { + width: var(--f7-calendar-event-dot-size); + height: var(--f7-calendar-event-dot-size); + border-radius: calc(var(--f7-calendar-event-dot-size) / 2); + background-color: var(--f7-calendar-event-bg-color); +} +.calendar-day .calendar-day-event + .calendar-day-event { + margin-left: 2px; +} +.calendar-range .calendar-day.calendar-day-selected { + align-items: stretch; + align-content: stretch; +} +.calendar-range .calendar-day.calendar-day-selected .calendar-day-number { + width: 100%; + border-radius: 0; + height: auto; + text-align: center; + display: flex; + align-items: center; + justify-content: center; +} +.calendar-month-selector, +.calendar-year-selector { + display: flex; + justify-content: space-between; + align-items: center; + width: 50%; + max-width: 200px; + flex-shrink: 10; + margin-left: auto; + margin-right: auto; +} +.calendar-month-selector .calendar-day-number, +.calendar-year-selector .calendar-day-number { + flex-shrink: 1; + position: relative; + overflow: hidden; + text-overflow: ellipsis; +} +.calendar-month-selector a.icon-only, +.calendar-year-selector a.icon-only { + min-width: 36px; +} +.calendar-month-picker, +.calendar-year-picker, +.calendar-time-picker { + position: absolute; + width: 100%; + height: 100%; + left: 0px; + top: 0px; + background: var(--f7-calendar-picker-bg-color); + z-index: 1000; + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; +} +.calendar-month-picker, +.calendar-year-picker { + flex-wrap: wrap; + font-size: var(--f7-calendar-picker-font-size); + display: flex; +} +.calendar-month-picker-item, +.calendar-year-picker-item { + display: flex; + justify-content: center; + align-items: center; + position: relative; + overflow: hidden; + cursor: pointer; + transition-duration: 100ms; + box-sizing: border-box; +} +.calendar-month-picker-item span, +.calendar-year-picker-item span { + white-space: nowrap; + text-overflow: ellipsis; + box-sizing: border-box; + position: relative; + overflow: hidden; + pointer-events: none; +} +.device-desktop.aurora .calendar-month-picker-item:hover, +.device-desktop.aurora .calendar-year-picker-item:hover { + background-color: var(--f7-calendar-picker-hover-bg-color); +} +.calendar-month-picker-item.active-state, +.calendar-year-picker-item.active-state, +.device-desktop.aurora .calendar-month-picker-item.active-state, +.device-desktop.aurora .calendar-year-picker-item.active-state { + background: var(--f7-calendar-picker-pressed-bg-color); +} +.calendar-month-picker-item { + padding: 5px; +} +.calendar-month-picker-item:after { + content: ''; + position: absolute; + background-color: var(--f7-calendar-row-border-color); + display: block; + z-index: 15; + top: auto; + right: auto; + bottom: 0; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 100%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +.calendar-month-picker-item:before { + content: ''; + position: absolute; + background-color: var(--f7-calendar-row-border-color); + display: block; + z-index: 15; + top: 0; + right: auto; + bottom: auto; + left: 0; + width: 1px; + height: 100%; + transform-origin: 0% 50%; + transform: scaleX(calc(1 / var(--f7-device-pixel-ratio))); +} +.sheet-modal .calendar-month-picker-item { + width: 25%; + height: calc(100% / 3); +} +.sheet-modal .calendar-month-picker-item:nth-child(4n + 1):before { + display: none !important; +} +.sheet-modal .calendar-month-picker-item:nth-child(n + 9):after { + display: none !important; +} +.popover .calendar-month-picker-item, +.calendar-modal .calendar-month-picker-item { + width: calc(100% / 3); + height: 25%; +} +.popover .calendar-month-picker-item:nth-child(3n + 1):before, +.calendar-modal .calendar-month-picker-item:nth-child(3n + 1):before { + display: none !important; +} +.popover .calendar-month-picker-item:nth-child(n + 10):after, +.calendar-modal .calendar-month-picker-item:nth-child(n + 10):after { + display: none !important; +} +.calendar-month-picker-item-current, +.calendar-year-picker-item-current { + color: var(--f7-calendar-picker-selected-text-color, var(--f7-theme-color)); +} +.calendar-year-picker { + overflow: auto; + --webkit-overflow-scrolling: touch; +} +.calendar-year-picker-item { + height: 34px; + line-height: 34px; + width: 100%; +} +.calendar-year-picker-item:after { + content: ''; + position: absolute; + background-color: var(--f7-calendar-row-border-color); + display: block; + z-index: 15; + top: auto; + right: auto; + bottom: 0; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 100%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +.calendar-time-selector { + flex-shrink: 0; + font-size: var(--f7-calendar-time-selector-font-size); + position: relative; +} +.calendar-time-selector:before { + content: ''; + position: absolute; + background-color: var(--f7-calendar-row-border-color); + display: block; + z-index: 15; + top: 0; + right: auto; + bottom: auto; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 0%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +.calendar-time-selector a { + overflow: hidden; + position: relative; + justify-content: center; + align-items: center; + display: flex; + width: 100%; + height: 44px; +} +.calendar-time-picker { + --f7-picker-popover-height: 100%; + --f7-picker-inline-height: 100%; + --f7-picker-item-selected-text-color: var(--f7-theme-color); +} +.calendar-time-picker .toolbar { + flex-shrink: 0; + top: 0 !important; +} +.calendar-time-picker .picker { + height: 100%; + display: flex; + flex-direction: column; +} +/* === Picker === */ +:root { + --f7-picker-height: 260px; + --f7-picker-inline-height: 200px; + --f7-picker-popover-height: 200px; + --f7-picker-popover-width: 280px; + --f7-picker-landscape-height: 200px; + --f7-picker-item-height: 36px; + --f7-picker-item-selected-text-color: #000; +} +:root .theme-dark, +:root.theme-dark { + --f7-picker-item-selected-text-color: #fff; +} +.ios { + --f7-picker-column-font-size: 20px; + --f7-picker-sheet-bg-color: #cfd5da; + --f7-picker-divider-text-color: #000; + --f7-picker-item-text-color: rgba(0, 0, 0, 0.45); + --f7-picker-item-selected-border-color: rgba(0, 0, 0, 0.22); +} +.ios .theme-dark, +.ios.theme-dark { + --f7-picker-sheet-bg-color: #1c1c1d; + --f7-picker-divider-text-color: #fff; + --f7-picker-item-text-color: rgba(255, 255, 255, 0.55); + --f7-picker-item-selected-border-color: rgba(255, 255, 255, 0.06); +} +.md { + /* + --f7-picker-sheet-bg-color: var(--f7-sheet-bg-color); + */ + --f7-picker-column-font-size: 20px; + --f7-picker-divider-text-color: rgba(0, 0, 0, 0.87); + --f7-picker-item-text-color: rgba(0, 0, 0, 0.54); + --f7-picker-item-selected-border-color: rgba(0, 0, 0, 0.15); +} +.md .theme-dark, +.md.theme-dark { + --f7-picker-item-text-color: rgba(255, 255, 255, 0.54); + --f7-picker-divider-text-color: rgba(255, 255, 255, 0.87); + --f7-picker-item-selected-border-color: rgba(255, 255, 255, 0.15); +} +.aurora { + /* + --f7-picker-sheet-bg-color: var(--f7-sheet-bg-color); + */ + --f7-picker-column-font-size: 16px; + --f7-picker-item-height: 28px; + --f7-picker-item-text-color: #888; + --f7-picker-divider-text-color: #000; + --f7-picker-item-selected-border-color: rgba(0, 0, 0, 0.12); +} +.aurora .theme-dark, +.aurora.theme-dark { + --f7-picker-divider-text-color: #fff; + --f7-picker-item-selected-border-color: rgba(255, 255, 255, 0.06); +} +.picker { + width: 100%; + height: var(--f7-picker-height); +} +.picker.picker-inline { + height: var(--f7-picker-inline-height); +} +.popover .picker { + height: var(--f7-picker-popover-height); +} +@media (orientation: landscape) and (max-height: 415px) { + .picker:not(.picker-inline) { + height: var(--f7-picker-landscape-height); + } +} +.picker.sheet-modal { + background: var(--f7-picker-sheet-bg-color, var(--f7-sheet-bg-color)); +} +.picker-popover { + width: var(--f7-picker-popover-width); +} +.picker-popover .toolbar { + background: none; + border-radius: var(--f7-popover-border-radius) var(--f7-popover-border-radius) 0 0; +} +.picker-popover .toolbar:before { + display: none !important; +} +.picker-popover .toolbar + .picker-columns { + height: calc(100% - var(--f7-toolbar-height)); +} +.picker-columns { + display: flex; + overflow: hidden; + justify-content: center; + padding: 0; + text-align: right; + height: 100%; + position: relative; + -webkit-mask-box-image: linear-gradient(to top, transparent, transparent 5%, white 20%, white 80%, transparent 95%, transparent); + font-size: var(--f7-picker-column-font-size); +} +.picker-column { + position: relative; + max-height: 100%; +} +.picker-column.picker-column-first:before, +.picker-column.picker-column-last:after { + height: 100%; + width: 100vw; + position: absolute; + content: ''; + top: 0; +} +.picker-column.picker-column-first:before { + right: 100%; +} +.picker-column.picker-column-last:after { + left: 100%; +} +.picker-column.picker-column-left { + text-align: left; +} +.picker-column.picker-column-center { + text-align: center; +} +.picker-column.picker-column-right { + text-align: right; +} +.picker-column.picker-column-divider { + display: flex; + align-items: center; + color: var(--f7-picker-divider-text-color); +} +.picker-items { + transition: 300ms; + transition-timing-function: ease-out; +} +.picker-item { + height: var(--f7-picker-item-height); + line-height: var(--f7-picker-item-height); + white-space: nowrap; + position: relative; + overflow: hidden; + text-overflow: ellipsis; + left: 0; + top: 0; + width: 100%; + box-sizing: border-box; + transition: 300ms; + color: var(--f7-picker-item-text-color); + cursor: pointer; +} +.picker-item span { + padding: 0 10px; +} +.picker-column-absolute .picker-item { + position: absolute; +} +.picker-item.picker-item-far { + pointer-events: none; +} +.picker-item.picker-item-selected { + color: var(--f7-picker-item-selected-text-color); + transform: translate3d(0, 0, 0) rotateX(0deg); +} +.picker-center-highlight { + height: var(--f7-picker-item-height); + box-sizing: border-box; + position: absolute; + left: 0; + width: 100%; + top: 50%; + margin-top: calc(-1 * var(--f7-picker-item-height) / 2); + pointer-events: none; +} +.picker-center-highlight:before { + content: ''; + position: absolute; + background-color: var(--f7-picker-item-selected-border-color); + display: block; + z-index: 15; + top: 0; + right: auto; + bottom: auto; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 0%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +.picker-center-highlight:after { + content: ''; + position: absolute; + background-color: var(--f7-picker-item-selected-border-color); + display: block; + z-index: 15; + top: auto; + right: auto; + bottom: 0; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 100%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +.picker-3d .picker-columns { + overflow: hidden; + perspective: 1200px; +} +.picker-3d .picker-column, +.picker-3d .picker-items, +.picker-3d .picker-item { + transform-style: preserve-3d; +} +.picker-3d .picker-column { + overflow: visible; +} +.picker-3d .picker-item { + transform-origin: center center -110px; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + transition-timing-function: ease-out; +} +/* === Infinite === */ +.infinite-scroll-preloader { + margin-left: auto; + margin-right: auto; + text-align: center; +} +.infinite-scroll-preloader.preloader { + display: block; +} +.ios .infinite-scroll-preloader { + margin-top: 35px; + margin-bottom: 35px; +} +.ios .infinite-scroll-preloader .preloader, +.ios .infinite-scroll-preloader.preloader { + width: 27px; + height: 27px; +} +.md .infinite-scroll-preloader { + margin-top: 32px; + margin-bottom: 32px; +} +.aurora .infinite-scroll-preloader { + margin-top: 15px; + margin-bottom: 15px; +} +/* === PTR === */ +.ios { + --f7-ptr-preloader-size: 28px; + --f7-ptr-size: 44px; +} +.md { + --f7-ptr-preloader-size: 22px; + --f7-ptr-size: 40px; +} +.aurora { + --f7-ptr-preloader-size: 20px; + --f7-ptr-size: 38px; +} +.ptr-preloader { + position: relative; + top: var(--f7-ptr-top, 0); + height: var(--f7-ptr-size); +} +.ptr-preloader .preloader { + position: absolute; + left: 50%; + width: var(--f7-ptr-preloader-size); + height: var(--f7-ptr-preloader-size); + margin-left: calc(-1 * var(--f7-ptr-preloader-size) / 2); + margin-top: calc(-1 * var(--f7-ptr-preloader-size) / 2); + top: 50%; + visibility: hidden; +} +.ptr-bottom .ptr-preloader { + top: auto; + bottom: 0; + position: fixed; +} +.ptr-with-navbar-large-transparent .ptr-preloader, +.ptr-with-navbar-transparent .ptr-preloader { + top: calc(-1 * var(--f7-page-navbar-offset, 0px) + var(--f7-safe-area-top)); +} +.ios .ptr-preloader { + margin-top: calc(-1 * var(--f7-ptr-size)); + width: 100%; + left: 0; +} +.ios .ptr-arrow { + position: absolute; + left: 50%; + top: 50%; + background: no-repeat center; + z-index: 10; + transform: rotate(0deg) translate3d(0, 0, 0); + transition-duration: 300ms; + transition-property: transform, opacity; + width: 12px; + height: 20px; + margin-left: -6px; + margin-top: -10px; + visibility: visible; + color: var(--f7-preloader-color); +} +.ios .ptr-arrow:after { + font-family: 'framework7-core-icons'; + font-weight: normal; + font-style: normal; + line-height: 1; + letter-spacing: normal; + text-transform: none; + white-space: nowrap; + word-wrap: normal; + direction: ltr; + -webkit-font-smoothing: antialiased; + text-rendering: optimizeLegibility; + -moz-osx-font-smoothing: grayscale; + font-feature-settings: "liga"; + text-align: center; + display: block; + width: 100%; + height: 100%; + font-size: 20px; + width: 12px; + height: 20px; + line-height: 20px; + font-size: 10px; + content: 'ptr_arrow_ios'; +} +.ios .ptr-content:not(.ptr-refreshing) .ptr-preloader .preloader { + animation: none; +} +.ios .ptr-transitioning, +.ios .ptr-refreshing { + transition-duration: 300ms; + transition-property: transform; +} +.ios .ptr-refreshing { + transform: translate3d(0, var(--f7-ptr-size), 0); +} +.ios .ptr-refreshing .ptr-arrow { + visibility: hidden; +} +.ios .ptr-refreshing .ptr-preloader .preloader { + visibility: visible; +} +.ios .ptr-pull-up .ptr-arrow { + transform: rotate(180deg) translate3d(0, 0, 0); +} +.ios .ptr-no-navbar, +.ios .ptr-with-navbar-large-transparent, +.ios .ptr-with-navbar-transparent { + margin-top: calc(-1 * var(--f7-ptr-size)); + height: calc(100% + var(--f7-ptr-size)); +} +.ios .ptr-no-navbar .ptr-preloader, +.ios .ptr-with-navbar-large-transparent .ptr-preloader, +.ios .ptr-with-navbar-transparent .ptr-preloader { + margin-top: 0; +} +.ios .ptr-bottom .ptr-preloader { + margin-top: 0; + margin-bottom: calc(-1 * var(--f7-ptr-size)); +} +.ios .ptr-bottom.ptr-transitioning > *, +.ios .ptr-bottom.ptr-refreshing > * { + transition-duration: 300ms; + transition-property: transform; +} +.ios .ptr-bottom.ptr-refreshing { + transform: none; +} +.ios .ptr-bottom.ptr-refreshing > * { + transform: translate3d(0, calc(-1 * var(--f7-ptr-size)), 0); +} +.ios .ptr-bottom .ptr-arrow { + transform: rotate(180deg) translate3d(0, 0, 0); +} +.ios .ptr-bottom.ptr-pull-up .ptr-arrow { + transform: rotate(0deg) translate3d(0, 0, 0); +} +.ios .ptr-with-navbar-large-transparent .ptr-preloader .preloader, +.ios .ptr-with-navbar-transparent .ptr-preloader .preloader, +.ios .ptr-with-navbar-large-transparent .ptr-preloader .ptr-arrow, +.ios .ptr-with-navbar-transparent .ptr-preloader .ptr-arrow { + opacity: 0; + transition-duration: 300ms; + transition-property: transform, opacity; +} +.ios .ptr-with-navbar-large-transparent.ptr-pull-down .ptr-preloader .preloader, +.ios .ptr-with-navbar-transparent.ptr-pull-down .ptr-preloader .preloader, +.ios .ptr-with-navbar-large-transparent.ptr-pull-up .ptr-preloader .preloader, +.ios .ptr-with-navbar-transparent.ptr-pull-up .ptr-preloader .preloader, +.ios .ptr-with-navbar-large-transparent.ptr-refreshing .ptr-preloader .preloader, +.ios .ptr-with-navbar-transparent.ptr-refreshing .ptr-preloader .preloader, +.ios .ptr-with-navbar-large-transparent.ptr-pull-down .ptr-preloader .ptr-arrow, +.ios .ptr-with-navbar-transparent.ptr-pull-down .ptr-preloader .ptr-arrow, +.ios .ptr-with-navbar-large-transparent.ptr-pull-up .ptr-preloader .ptr-arrow, +.ios .ptr-with-navbar-transparent.ptr-pull-up .ptr-preloader .ptr-arrow, +.ios .ptr-with-navbar-large-transparent.ptr-refreshing .ptr-preloader .ptr-arrow, +.ios .ptr-with-navbar-transparent.ptr-refreshing .ptr-preloader .ptr-arrow { + opacity: 1; +} +.ios .ptr-with-navbar-large-transparent.ptr-closing .ptr-preloader .preloader, +.ios .ptr-with-navbar-transparent.ptr-closing .ptr-preloader .preloader, +.ios .ptr-with-navbar-large-transparent.ptr-closing .ptr-preloader .ptr-arrow, +.ios .ptr-with-navbar-transparent.ptr-closing .ptr-preloader .ptr-arrow { + opacity: 0; + transition-duration: 300ms; +} +.md { + --f7-ptr-top: -4px; +} +.md .ptr-preloader { + width: var(--f7-ptr-size); + border-radius: 50%; + background: #fff; + margin-top: calc(-1 * var(--f7-ptr-size)); + z-index: 100; + box-shadow: var(--f7-elevation-1); + left: 50%; + margin-left: calc(-1 * var(--f7-ptr-size) / 2); +} +.md .ptr-preloader .preloader .preloader-inner-gap, +.md .ptr-preloader .preloader .preloader-inner-half-circle { + border-width: 3px; +} +.md .ptr-arrow { + width: 22px; + height: 22px; + box-sizing: border-box; + border: 3px solid var(--f7-preloader-color); + position: absolute; + left: 50%; + top: 50%; + margin-left: -11px; + margin-top: -11px; + border-left-color: transparent; + border-radius: 50%; + opacity: 1; + transform: rotate(150deg); +} +.md .ptr-arrow:after { + content: ''; + width: 0px; + height: 0px; + position: absolute; + left: -5px; + bottom: 0px; + border-bottom-width: 6px; + border-bottom-style: solid; + border-bottom-color: inherit; + border-left: 5px solid transparent; + border-right: 5px solid transparent; + transform: rotate(-40deg); +} +.md .ptr-content:not(.ptr-refreshing):not(.ptr-pull-up) .ptr-preloader .preloader, +.md .ptr-content:not(.ptr-refreshing):not(.ptr-pull-up) .ptr-preloader .preloader * { + animation: none; +} +.md .ptr-refreshing .ptr-preloader .preloader, +.md .ptr-pull-up .ptr-preloader .preloader { + visibility: visible; +} +.md .ptr-refreshing .ptr-arrow, +.md .ptr-pull-up .ptr-arrow { + visibility: hidden; +} +.md .ptr-refreshing .ptr-preloader { + transform: translate3d(0, 66px, 0); +} +.md .ptr-transitioning .ptr-arrow { + transition: 300ms; +} +.md .ptr-pull-up .ptr-arrow { + transition: 400ms; + transform: rotate(620deg) !important; + opacity: 0; +} +.md .ptr-transitioning .ptr-preloader, +.md .ptr-refreshing .ptr-preloader { + transition-duration: 300ms; + transition-property: transform, opacity; +} +.md .ptr-bottom .ptr-preloader { + margin-top: 0; + margin-bottom: calc(-1 * var(--f7-ptr-size) - 4px); +} +.md .ptr-bottom.ptr-refreshing .ptr-preloader { + transform: translate3d(0, -66px, 0); +} +.md .ptr-with-navbar-large-transparent .ptr-preloader, +.md .ptr-with-navbar-transparent .ptr-preloader { + opacity: 0; +} +.md .ptr-with-navbar-large-transparent.ptr-pull-down .ptr-preloader, +.md .ptr-with-navbar-transparent.ptr-pull-down .ptr-preloader, +.md .ptr-with-navbar-large-transparent.ptr-pull-up .ptr-preloader, +.md .ptr-with-navbar-transparent.ptr-pull-up .ptr-preloader, +.md .ptr-with-navbar-large-transparent.ptr-refreshing .ptr-preloader, +.md .ptr-with-navbar-transparent.ptr-refreshing .ptr-preloader { + opacity: 1; +} +.md .ptr-with-navbar-large-transparent.ptr-closing .ptr-preloader, +.md .ptr-with-navbar-transparent.ptr-closing .ptr-preloader { + opacity: 0; + transition-duration: 300ms; +} +.aurora .ptr-preloader { + margin-top: calc(-1 * var(--f7-ptr-size)); + width: 100%; + left: 0; +} +.aurora .ptr-arrow { + position: absolute; + left: 50%; + top: 50%; + background: no-repeat center; + z-index: 10; + transform: rotate(0deg) translate3d(0, 0, 0); + transition-duration: 300ms; + transition-property: transform, opacity; + width: 12px; + height: 20px; + margin-left: -6px; + margin-top: -10px; + visibility: visible; + color: var(--f7-preloader-color); +} +.aurora .ptr-arrow:after { + font-family: 'framework7-core-icons'; + font-weight: normal; + font-style: normal; + line-height: 1; + letter-spacing: normal; + text-transform: none; + white-space: nowrap; + word-wrap: normal; + direction: ltr; + -webkit-font-smoothing: antialiased; + text-rendering: optimizeLegibility; + -moz-osx-font-smoothing: grayscale; + font-feature-settings: "liga"; + text-align: center; + display: block; + width: 100%; + height: 100%; + font-size: 20px; + width: 12px; + height: 20px; + line-height: 20px; + font-size: 8px; + content: 'ptr_arrow_ios'; +} +.aurora .ptr-content:not(.ptr-refreshing) .ptr-preloader .preloader { + animation: none; +} +.aurora .ptr-transitioning, +.aurora .ptr-refreshing { + transition-duration: 300ms; + transition-property: transform; +} +.aurora .ptr-refreshing { + transform: translate3d(0, var(--f7-ptr-size), 0); +} +.aurora .ptr-refreshing .ptr-arrow { + visibility: hidden; +} +.aurora .ptr-refreshing .ptr-preloader .preloader { + visibility: visible; +} +.aurora .ptr-pull-up .ptr-arrow { + transform: rotate(180deg) translate3d(0, 0, 0); +} +.aurora .ptr-no-navbar, +.aurora .ptr-with-navbar-large-transparent, +.aurora .ptr-with-navbar-transparent { + margin-top: calc(-1 * var(--f7-ptr-size)); + height: calc(100% + var(--f7-ptr-size)); +} +.aurora .ptr-no-navbar .ptr-preloader, +.aurora .ptr-with-navbar-large-transparent .ptr-preloader, +.aurora .ptr-with-navbar-transparent .ptr-preloader { + margin-top: 0; +} +.aurora .ptr-bottom .ptr-preloader { + margin-top: 0; + margin-bottom: calc(-1 * var(--f7-ptr-size)); +} +.aurora .ptr-bottom.ptr-transitioning > *, +.aurora .ptr-bottom.ptr-refreshing > * { + transition-duration: 300ms; + transition-property: transform; +} +.aurora .ptr-bottom.ptr-refreshing { + transform: none; +} +.aurora .ptr-bottom.ptr-refreshing > * { + transform: translate3d(0, calc(-1 * var(--f7-ptr-size)), 0); +} +.aurora .ptr-bottom .ptr-arrow { + transform: rotate(180deg) translate3d(0, 0, 0); +} +.aurora .ptr-bottom.ptr-pull-up .ptr-arrow { + transform: rotate(0deg) translate3d(0, 0, 0); +} +.aurora .ptr-with-navbar-large-transparent .ptr-preloader .preloader, +.aurora .ptr-with-navbar-transparent .ptr-preloader .preloader, +.aurora .ptr-with-navbar-large-transparent .ptr-preloader .ptr-arrow, +.aurora .ptr-with-navbar-transparent .ptr-preloader .ptr-arrow { + opacity: 0; + transition-duration: 300ms; + transition-property: transform, opacity; +} +.aurora .ptr-with-navbar-large-transparent.ptr-pull-down .ptr-preloader .preloader, +.aurora .ptr-with-navbar-transparent.ptr-pull-down .ptr-preloader .preloader, +.aurora .ptr-with-navbar-large-transparent.ptr-pull-up .ptr-preloader .preloader, +.aurora .ptr-with-navbar-transparent.ptr-pull-up .ptr-preloader .preloader, +.aurora .ptr-with-navbar-large-transparent.ptr-refreshing .ptr-preloader .preloader, +.aurora .ptr-with-navbar-transparent.ptr-refreshing .ptr-preloader .preloader, +.aurora .ptr-with-navbar-large-transparent.ptr-pull-down .ptr-preloader .ptr-arrow, +.aurora .ptr-with-navbar-transparent.ptr-pull-down .ptr-preloader .ptr-arrow, +.aurora .ptr-with-navbar-large-transparent.ptr-pull-up .ptr-preloader .ptr-arrow, +.aurora .ptr-with-navbar-transparent.ptr-pull-up .ptr-preloader .ptr-arrow, +.aurora .ptr-with-navbar-large-transparent.ptr-refreshing .ptr-preloader .ptr-arrow, +.aurora .ptr-with-navbar-transparent.ptr-refreshing .ptr-preloader .ptr-arrow { + opacity: 1; +} +.aurora .ptr-with-navbar-large-transparent.ptr-closing .ptr-preloader .preloader, +.aurora .ptr-with-navbar-transparent.ptr-closing .ptr-preloader .preloader, +.aurora .ptr-with-navbar-large-transparent.ptr-closing .ptr-preloader .ptr-arrow, +.aurora .ptr-with-navbar-transparent.ptr-closing .ptr-preloader .ptr-arrow { + opacity: 0; + transition-duration: 300ms; +} +/* === Images Lazy Loading === */ +.lazy-loaded.lazy-fade-in { + animation: lazyFadeIn 600ms; +} +@keyframes lazyFadeIn { + from { + opacity: 0; + } + to { + opacity: 1; + } +} +/* === Data Table === */ +:root { + --f7-table-head-font-size: 12px; + --f7-table-body-font-size: 14px; + --f7-table-footer-font-size: 12px; + --f7-table-input-height: 24px; + --f7-table-input-font-size: 14px; + --f7-table-collapsible-cell-padding: 16px; + --f7-table-link-icon-only-icon-size: 20px; + --f7-table-sortable-icon-color: #000; +} +:root .theme-dark, +:root.theme-dark { + --f7-table-cell-border-color: rgba(255, 255, 255, 0.15); + --f7-table-sortable-icon-color: #fff; + --f7-table-input-text-color: #fff; +} +.ios { + --f7-table-head-font-weight: 600; + --f7-table-head-cell-height: 44px; + --f7-table-head-icon-size: 18px; + --f7-table-body-cell-height: 44px; + --f7-table-cell-padding-vertical: 0px; + --f7-table-cell-padding-horizontal: 16px; + --f7-table-edge-cell-padding-horizontal: 16px; + --f7-table-label-cell-padding-horizontal: 16px; + --f7-table-checkbox-cell-width: 22px; + /* --f7-table-actions-cell-link-color: var(--f7-theme-color); */ + /* --f7-table-actions-link-color: var(--f7-theme-color); */ + --f7-table-title-font-size: 17px; + --f7-table-title-font-weight: 600; + --f7-table-card-header-height: 64px; + --f7-table-footer-height: 44px; + --f7-table-head-text-color: rgba(0, 0, 0, 0.45); + --f7-table-cell-border-color: rgba(0, 0, 0, 0.22); + --f7-table-selected-row-bg-color: rgba(0, 0, 0, 0.03); + --f7-table-footer-text-color: rgba(0, 0, 0, 0.45); + --f7-table-input-text-color: #000; +} +.ios .theme-dark, +.ios.theme-dark { + --f7-table-head-text-color: rgba(255, 255, 255, 0.55); + --f7-table-footer-text-color: rgba(255, 255, 255, 0.55); + --f7-table-selected-row-bg-color: rgba(255, 255, 255, 0.08); +} +.md { + --f7-table-head-font-weight: 500; + --f7-table-head-cell-height: 56px; + --f7-table-head-icon-size: 16px; + --f7-table-body-cell-height: 48px; + --f7-table-cell-padding-vertical: 0px; + --f7-table-cell-padding-horizontal: 28px; + --f7-table-edge-cell-padding-horizontal: 24px; + --f7-table-label-cell-padding-horizontal: 24px; + --f7-table-checkbox-cell-width: 18px; + --f7-table-title-font-size: 20px; + --f7-table-title-font-weight: 400; + --f7-table-card-header-height: 64px; + --f7-table-footer-height: 56px; + --f7-table-head-text-color: rgba(0, 0, 0, 0.54); + --f7-table-cell-border-color: rgba(0, 0, 0, 0.12); + --f7-table-actions-cell-link-color: rgba(0, 0, 0, 0.54); + --f7-table-selected-row-bg-color: #f5f5f5; + --f7-table-actions-link-color: rgba(0, 0, 0, 0.54); + --f7-table-footer-text-color: rgba(0, 0, 0, 0.54); + --f7-table-input-text-color: #212121; +} +.md .theme-dark, +.md.theme-dark { + --f7-table-head-text-color: rgba(255, 255, 255, 0.54); + --f7-table-footer-text-color: rgba(255, 255, 255, 0.54); + --f7-table-selected-row-bg-color: rgba(255, 255, 255, 0.05); + --f7-table-actions-cell-link-color: rgba(255, 255, 255, 0.54); + --f7-table-actions-link-color: rgba(255, 255, 255, 0.54); +} +.aurora { + --f7-table-link-icon-only-icon-size: 18px; + --f7-table-head-font-weight: 400; + --f7-table-head-cell-height: 32px; + --f7-table-head-icon-size: 18px; + --f7-table-body-cell-height: 32px; + --f7-table-cell-padding-vertical: 5px; + --f7-table-cell-padding-horizontal: 10px; + --f7-table-edge-cell-padding-horizontal: 16px; + --f7-table-label-cell-padding-horizontal: 16px; + --f7-table-checkbox-cell-width: 22px; + /* --f7-table-actions-cell-link-color: var(--f7-theme-color); */ + /* --f7-table-actions-link-color: var(--f7-theme-color); */ + --f7-table-title-font-size: 14px; + --f7-table-title-font-weight: 600; + --f7-table-card-header-height: 42px; + --f7-table-footer-height: 32px; + --f7-table-head-text-color: rgba(0, 0, 0, 0.6); + --f7-table-cell-border-color: rgba(0, 0, 0, 0.12); + --f7-table-selected-row-bg-color: rgba(0, 0, 0, 0.03); + --f7-table-footer-text-color: rgba(0, 0, 0, 0.5); + --f7-table-input-text-color: #000; +} +.aurora .theme-dark, +.aurora.theme-dark { + --f7-table-selected-row-bg-color: rgba(255, 255, 255, 0.03); + --f7-table-head-text-color: rgba(255, 255, 255, 0.54); + --f7-table-footer-text-color: rgba(255, 255, 255, 0.54); +} +.data-table { + overflow-x: auto; +} +.data-table table, +table.data-table { + width: 100%; + border: none; + padding: 0; + margin: 0; + border-collapse: collapse; + text-align: left; +} +.data-table thead th, +.data-table thead td { + font-size: var(--f7-table-head-font-size); + font-weight: var(--f7-table-head-font-weight); + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + line-height: 16px; + height: var(--f7-table-head-cell-height); +} +.data-table thead th:not(.sortable-cell-active), +.data-table thead td:not(.sortable-cell-active) { + color: var(--f7-table-head-text-color); +} +.data-table thead i.icon, +.data-table thead i.f7-icons, +.data-table thead i.material-icons { + vertical-align: top; + font-size: var(--f7-table-head-icon-size); +} +.data-table tbody { + font-size: var(--f7-table-body-font-size); +} +.data-table tbody th, +.data-table tbody td { + height: var(--f7-table-body-cell-height); +} +.data-table tbody tr.data-table-row-selected, +.device-desktop .data-table tbody tr:hover { + background: var(--f7-table-selected-row-bg-color); +} +.data-table tbody td:before, +.data-table tbody th:before { + content: ''; + position: absolute; + background-color: var(--f7-table-cell-border-color); + display: block; + z-index: 15; + top: 0; + right: auto; + bottom: auto; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 0%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +.data-table th, +.data-table td { + --f7-table-cell-padding-left: var(--f7-table-cell-padding-horizontal); + --f7-table-cell-padding-right: var(--f7-table-cell-padding-horizontal); + padding-top: var(--f7-table-cell-padding-vertical); + padding-bottom: var(--f7-table-cell-padding-vertical); + padding-left: var(--f7-table-cell-padding-left); + padding-right: var(--f7-table-cell-padding-right); + position: relative; + box-sizing: border-box; +} +.data-table th:first-child, +.data-table td:first-child { + --f7-table-cell-padding-left: var(--f7-table-edge-cell-padding-horizontal); +} +.data-table th:last-child, +.data-table td:last-child { + --f7-table-cell-padding-right: var(--f7-table-edge-cell-padding-horizontal); +} +.data-table th.label-cell, +.data-table td.label-cell { + --f7-table-cell-padding-left: var(--f7-table-label-cell-padding-horizontal); + --f7-table-cell-padding-right: var(--f7-table-label-cell-padding-horizontal); +} +.data-table th.numeric-cell, +.data-table td.numeric-cell { + text-align: right; +} +.data-table th.checkbox-cell, +.data-table td.checkbox-cell { + overflow: visible; + width: var(--f7-table-checkbox-cell-width); +} +.data-table th.checkbox-cell label + span, +.data-table td.checkbox-cell label + span { + margin-left: 8px; +} +.data-table th.checkbox-cell:first-child, +.data-table td.checkbox-cell:first-child { + padding-right: calc(var(--f7-table-cell-padding-right) / 2); +} +.data-table th.checkbox-cell:first-child + td, +.data-table td.checkbox-cell:first-child + td, +.data-table th.checkbox-cell:first-child + th, +.data-table td.checkbox-cell:first-child + th { + padding-left: calc(var(--f7-table-cell-padding-left) / 2); +} +.data-table th.checkbox-cell:last-child, +.data-table td.checkbox-cell:last-child { + padding-left: calc(var(--f7-table-cell-padding-left) / 2); +} +.data-table th.actions-cell, +.data-table td.actions-cell { + text-align: right; + white-space: nowrap; +} +.data-table th.actions-cell a.link, +.data-table td.actions-cell a.link { + color: var(--f7-table-actions-cell-link-color, var(--f7-theme-color)); +} +.data-table th a.icon-only, +.data-table td a.icon-only, +.card .data-table th a.icon-only, +.card .data-table td a.icon-only, +.card.data-table th a.icon-only, +.card.data-table td a.icon-only { + display: inline-block; + vertical-align: middle; + text-align: center; + font-size: 0; + min-width: 0; +} +.data-table th a.icon-only i, +.data-table td a.icon-only i, +.card .data-table th a.icon-only i, +.card .data-table td a.icon-only i, +.card.data-table th a.icon-only i, +.card.data-table td a.icon-only i { + font-size: var(--f7-table-link-icon-only-icon-size); + vertical-align: middle; +} +.data-table .sortable-cell:not(.input-cell) { + cursor: pointer; + position: relative; +} +.data-table .sortable-cell.input-cell .table-head-label { + cursor: pointer; + position: relative; +} +.data-table .sortable-cell:not(.numeric-cell):not(.input-cell):after, +.data-table .sortable-cell.numeric-cell:not(.input-cell):before, +.data-table .sortable-cell:not(.numeric-cell).input-cell > .table-head-label:after, +.data-table .sortable-cell.numeric-cell.input-cell > .table-head-label:before { + content: 'arrow_bottom_md'; + font-family: 'framework7-core-icons'; + font-weight: normal; + font-style: normal; + line-height: 1; + letter-spacing: normal; + text-transform: none; + white-space: nowrap; + word-wrap: normal; + direction: ltr; + -webkit-font-smoothing: antialiased; + text-rendering: optimizeLegibility; + -moz-osx-font-smoothing: grayscale; + font-feature-settings: "liga"; + text-align: center; + display: block; + width: 100%; + height: 100%; + font-size: 20px; + display: inline-block; + vertical-align: top; + width: 16px; + height: 16px; + color: var(--f7-table-sortable-icon-color); + font-size: 13px; + line-height: 16px; + transition-duration: 300ms; + transform: rotate(0); + opacity: 0; +} +.device-desktop .data-table .sortable-cell:not(.sortable-cell-active):hover:after, +.device-desktop .data-table .sortable-cell:not(.sortable-cell-active) .table-head-label:hover:after, +.device-desktop .data-table .sortable-cell:not(.sortable-cell-active):hover:before, +.device-desktop .data-table .sortable-cell:not(.sortable-cell-active) .table-head-label:hover:before { + opacity: 0.54; +} +.data-table .sortable-cell.sortable-cell-active:after, +.data-table .sortable-cell.sortable-cell-active .table-head-label:after, +.data-table .sortable-cell.sortable-cell-active:before, +.data-table .sortable-cell.sortable-cell-active .table-head-label:before { + opacity: 0.87 !important; +} +.data-table .sortable-cell.sortable-desc:after, +.data-table .sortable-cell.sortable-desc:after, +.data-table .table-head-label:after, +.data-table .sortable-cell.sortable-desc:before, +.data-table .sortable-cell.sortable-desc:before, +.data-table .table-head-label:before { + transform: rotate(180deg) !important; +} +.data-table.card .card-header, +.card .data-table .card-header, +.data-table.card .card-footer, +.card .data-table .card-footer { + padding-left: var(--f7-table-edge-cell-padding-horizontal); + padding-right: var(--f7-table-edge-cell-padding-horizontal); +} +.data-table.card .card-header, +.card .data-table .card-header { + min-height: var(--f7-table-card-header-height); +} +.data-table.card .card-content, +.card .data-table .card-content { + overflow-x: auto; +} +.data-table.card .card-footer, +.card .data-table .card-footer { + min-height: var(--f7-table-footer-height); +} +.data-table .data-table-title { + font-size: var(--f7-table-title-font-size); + font-weight: var(--f7-table-title-font-weight); +} +.data-table .data-table-links, +.data-table .data-table-actions { + display: flex; +} +.data-table .data-table-links .button { + min-width: 64px; +} +.data-table .data-table-actions { + margin-left: auto; + align-items: center; +} +.data-table .data-table-actions a.link { + color: var(--f7-table-actions-link-color, var(--f7-theme-color)); + min-width: 0; +} +.data-table .data-table-actions a.link.icon-only { + line-height: 1; + justify-content: center; + padding: 0; +} +.data-table .data-table-header, +.data-table .data-table-header-selected { + display: flex; + justify-content: space-between; + align-items: center; + width: 100%; +} +.data-table .card-header > .data-table-header, +.data-table .card-header > .data-table-header-selected { + padding-top: var(--f7-card-header-padding-vertical); + padding-bottom: var(--f7-card-header-padding-vertical); + height: 100%; + padding-left: var(--f7-table-edge-cell-padding-horizontal); + padding-right: var(--f7-table-edge-cell-padding-horizontal); + margin-left: calc(-1 * var(--f7-table-edge-cell-padding-horizontal)); + margin-right: calc(-1 * var(--f7-table-edge-cell-padding-horizontal)); +} +.data-table .data-table-header-selected { + background: rgba(var(--f7-theme-color-rgb), 0.1); + display: none; +} +.data-table.data-table-has-checked .data-table-header { + display: none; +} +.data-table.data-table-has-checked .data-table-header-selected { + display: flex; +} +.data-table .data-table-title-selected { + font-size: 14px; + color: var(--f7-theme-color); +} +.data-table .data-table-footer { + display: flex; + align-items: center; + box-sizing: border-box; + position: relative; + font-size: var(--f7-table-footer-font-size); + overflow: hidden; + min-height: var(--f7-table-footer-height); + color: var(--f7-table-footer-text-color); + justify-content: flex-end; +} +.data-table .data-table-footer:before { + content: ''; + position: absolute; + background-color: var(--f7-table-cell-border-color); + display: block; + z-index: 15; + top: 0; + right: auto; + bottom: auto; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 0%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +.data-table .data-table-rows-select, +.data-table .data-table-pagination { + display: flex; + align-items: center; +} +.data-table .input-cell { + padding-top: 8px; + padding-bottom: 8px; + height: auto; + vertical-align: top; +} +.data-table .input-cell .table-head-label + .input { + margin-top: 4px; +} +.data-table .input-cell .input { + height: var(--f7-table-input-height); +} +.data-table .input-cell .input input, +.data-table .input-cell .input textarea, +.data-table .input-cell .input select { + height: var(--f7-table-input-height); + color: var(--f7-table-input-text-color); + font-size: var(--f7-table-input-font-size); +} +@media (max-width: 480px) and (orientation: portrait) { + .data-table.data-table-collapsible thead { + display: none; + } + .data-table.data-table-collapsible tbody, + .data-table.data-table-collapsible tr, + .data-table.data-table-collapsible td { + display: block; + } + .data-table.data-table-collapsible tr { + position: relative; + } + .data-table.data-table-collapsible tr:before { + content: ''; + position: absolute; + background-color: var(--f7-table-cell-border-color); + display: block; + z-index: 15; + top: 0; + right: auto; + bottom: auto; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 0%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); + } + .data-table.data-table-collapsible tr:hover { + background-color: inherit; + } + .data-table.data-table-collapsible td { + --f7-table-cell-padding-left: var(--f7-table-collapsible-cell-padding); + --f7-table-cell-padding-right: var(--f7-table-collapsible-cell-padding); + height: auto; + min-height: var(--f7-table-body-cell-height); + display: flex; + align-content: center; + align-items: center; + justify-content: flex-start; + text-align: left; + } + .data-table.data-table-collapsible td:before { + display: none !important; + } + .data-table.data-table-collapsible td:not(.checkbox-cell):before { + width: 40%; + display: block !important; + content: attr(data-collapsible-title); + position: relative; + height: auto; + background: none !important; + transform: none !important; + font-size: var(--f7-table-head-font-size); + font-weight: var(--f7-table-head-font-weight); + color: var(--f7-table-head-text-color); + margin-right: 16px; + flex-shrink: 0; + } + .data-table.data-table-collapsible td.checkbox-cell { + position: absolute; + top: 0; + left: 0; + } + .data-table.data-table-collapsible td.checkbox-cell + td { + padding-left: 16px; + } + .data-table.data-table-collapsible td.checkbox-cell ~ td { + margin-left: 32px; + } +} +.data-table .xsmall-only, +.data-table .xsmall-landscape-only { + display: none; +} +@media (min-width: 480px) { + .data-table .xsmall-only { + display: table-cell; + } +} +@media (min-width: 480px) and (orientation: landscape) { + .data-table .xsmall-landscape-only { + display: table-cell; + } +} +.data-table .small-only, +.data-table .small-landscape-only { + display: none; +} +@media (min-width: 568px) { + .data-table .small-only { + display: table-cell; + } +} +@media (min-width: 568px) and (orientation: landscape) { + .data-table .small-landscape-only { + display: table-cell; + } +} +.data-table .medium-only, +.data-table .medium-landscape-only { + display: none; +} +@media (min-width: 768px) { + .data-table .medium-only { + display: table-cell; + } +} +@media (min-width: 768px) and (orientation: landscape) { + .data-table .medium-landscape-only { + display: table-cell; + } +} +.data-table .large-only, +.data-table .large-landscape-only { + display: none; +} +@media (min-width: 1024px) { + .data-table .large-only { + display: table-cell; + } +} +@media (min-width: 1024px) and (orientation: landscape) { + .data-table .large-landscape-only { + display: table-cell; + } +} +.data-table .xlarge-only, +.data-table .xlarge-landscape-only { + display: none; +} +@media (min-width: 1200px) { + .data-table .xlarge-only { + display: table-cell; + } +} +@media (min-width: 1200px) and (orientation: landscape) { + .data-table .xlarge-landscape-only { + display: table-cell; + } +} +.ios .data-table th.actions-cell a.link + a.link, +.ios .data-table td.actions-cell a.link + a.link { + margin-left: 16px; +} +.ios .sortable-cell:not(.numeric-cell):after { + margin-left: 5px; +} +.ios .sortable-cell.numeric-cell:before { + margin-right: 5px; +} +.ios .data-table-links a.link + a.link, +.ios .data-table-actions a.link + a.link, +.ios .data-table-links .button + .button, +.ios .data-table-actions .button + .button { + margin-left: 16px; +} +.ios .data-table-actions a.link.icon-only { + width: 44px; + height: 44px; +} +.ios .data-table-rows-select a.link, +.ios .data-table-pagination a.link { + width: 44px; + height: 44px; +} +.ios .data-table-rows-select + .data-table-pagination { + margin-left: 30px; +} +.ios .data-table-rows-select .input { + margin-left: 20px; +} +.ios .data-table-pagination-label { + margin-right: 16px; +} +.md .data-table th.actions-cell a.link + a.link, +.md .data-table td.actions-cell a.link + a.link { + margin-left: 24px; +} +.md .data-table th.actions-cell a.icon-only, +.md .data-table td.actions-cell a.icon-only { + width: 24px; + height: 24px; + line-height: 24px; +} +.md .sortable-cell:not(.numeric-cell):after { + margin-left: 8px; +} +.md .sortable-cell.numeric-cell:before { + margin-right: 8px; +} +.md .data-table-links a.link + a.link, +.md .data-table-actions a.link + a.link, +.md .data-table-links .button + .button, +.md .data-table-actions .button + .button { + margin-left: 24px; +} +.md .data-table-actions a.link.icon-only { + width: 24px; + height: 24px; + overflow: visible; +} +.md .data-table-actions a.link.icon-only.active-state { + background: none; +} +.md .data-table-rows-select a.link, +.md .data-table-pagination a.link { + width: 48px; + height: 48px; +} +.md .data-table-rows-select a.link:before, +.md .data-table-pagination a.link:before { + content: ''; + width: 152%; + height: 152%; + position: absolute; + left: -26%; + top: -26%; + background-image: radial-gradient(circle at center, var(--f7-link-highlight-color) 66%, rgba(255, 255, 255, 0) 66%); + background-repeat: no-repeat; + background-position: center; + background-size: 100% 100%; + opacity: 0; + pointer-events: none; + transition-duration: 600ms; +} +.md .data-table-rows-select a.link.active-state:before, +.md .data-table-pagination a.link.active-state:before { + opacity: 1; + transition-duration: 150ms; +} +.md .data-table-rows-select + .data-table-pagination { + margin-left: 32px; +} +.md .data-table-rows-select .input { + margin-left: 24px; +} +.md .data-table-pagination-label { + margin-right: 20px; +} +.md .input-cell .input-clear-button { + transform: scale(0.8); +} +.aurora .data-table th.actions-cell a.link + a.link, +.aurora .data-table td.actions-cell a.link + a.link { + margin-left: 10px; +} +.aurora .sortable-cell:not(.numeric-cell):after { + margin-left: 5px; +} +.aurora .sortable-cell.numeric-cell:before { + margin-right: 5px; +} +.aurora .data-table-links a.link + a.link, +.aurora .data-table-actions a.link + a.link, +.aurora .data-table-links .button + .button, +.aurora .data-table-actions .button + .button { + margin-left: 10px; +} +.aurora .data-table-rows-select a.link, +.aurora .data-table-pagination a.link { + width: 32px; + height: 32px; +} +.aurora .data-table-rows-select + .data-table-pagination { + margin-left: 16px; +} +.aurora .data-table-rows-select .input { + margin-left: 10px; +} +.aurora .data-table-pagination-label { + margin-right: 10px; +} +/* === FAB === */ +:root { + --f7-fab-margin: 16px; + --f7-fab-text-color: #fff; + --f7-fab-extended-text-font-size: 14px; + --f7-fab-extended-text-padding: 0 20px; + --f7-fab-label-bg-color: #fff; + --f7-fab-label-text-color: #333; + --f7-fab-label-border-radius: 4px; + --f7-fab-label-padding: 4px 12px; + --f7-fab-button-size: 40px; + /* --f7-fab-pressed-bg-color: var(--f7-theme-color-shade); */ +} +.ios { + --f7-fab-size: 50px; + --f7-fab-box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.4); + --f7-fab-extended-size: 50px; + --f7-fab-extended-text-font-weight: 600; + --f7-fab-extended-text-letter-spacing: 0; + --f7-fab-label-box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.4); + --f7-fab-label-font-size: inherit; +} +.md { + --f7-fab-size: 56px; + --f7-fab-box-shadow: var(--f7-elevation-6); + --f7-fab-extended-size: 48px; + --f7-fab-extended-text-font-weight: 500; + --f7-fab-extended-text-letter-spacing: 0.03em; + --f7-fab-label-box-shadow: var(--f7-elevation-3); + --f7-fab-label-font-size: inherit; +} +.aurora { + --f7-fab-size: 40px; + --f7-fab-box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.4); + --f7-fab-extended-size: 38px; + --f7-fab-extended-text-font-weight: 500; + --f7-fab-extended-text-letter-spacing: 0; + --f7-fab-label-box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.4); + --f7-fab-label-font-size: 12px; +} +.fab-backdrop { + z-index: 1400; +} +.fab { + position: absolute; + z-index: 1500; +} +.fab a { + --f7-touch-ripple-color: var(--f7-touch-ripple-white); +} +.fab-left-top, +.fab-left-center, +.fab-left-bottom { + left: calc(var(--f7-fab-margin) + var(--f7-safe-area-left)); +} +.fab-right-top, +.fab-right-center, +.fab-right-bottom { + right: calc(var(--f7-fab-margin) + var(--f7-safe-area-right)); +} +.fab-left-top, +.fab-center-top, +.fab-right-top { + top: var(--f7-fab-margin); +} +.fab-left-bottom, +.fab-center-bottom, +.fab-right-bottom { + bottom: calc(var(--f7-fab-margin) + var(--f7-safe-area-bottom)); +} +.fab-center-top, +.fab-center-center, +.fab-center-bottom { + left: 50%; + transform: translateX(-50%); +} +.fab-left-center, +.fab-center-center, +.fab-right-center { + top: 50%; + transform: translateY(-50%); +} +.fab-center-center { + top: 50%; + left: 50%; + transform: translateX(-50%) translateY(-50%); +} +.fab > a, +.fab-buttons a { + background-color: var(--f7-fab-bg-color, var(--f7-theme-color)); + width: var(--f7-fab-size); + height: var(--f7-fab-size); + box-shadow: var(--f7-fab-box-shadow); + border-radius: calc(var(--f7-fab-size) / 2); + position: relative; + transition-duration: 300ms; + display: flex; + align-items: center; + justify-content: center; + overflow: hidden; + z-index: 1; + color: var(--f7-fab-text-color); +} +.fab > a.active-state, +.fab-buttons a.active-state { + background-color: var(--f7-fab-pressed-bg-color, var(--f7-theme-color-shade)); +} +.fab > a i { + position: absolute; + left: 50%; + top: 50%; + transform: translate3d(-50%, -50%, 0) rotate(0deg) scale(1); + transition: 300ms; +} +.fab > a i + i { + transform: translate3d(-50%, -50%, 0) rotate(-90deg) scale(0.5); + opacity: 0; +} +.fab-buttons a { + border-radius: calc(var(--f7-fab-button-size) / 2); + width: var(--f7-fab-button-size); + height: var(--f7-fab-button-size); +} +.fab-buttons { + display: flex; + visibility: hidden; + pointer-events: none; + position: absolute; +} +.fab-buttons a { + opacity: 0; +} +.fab-opened:not(.fab-morph) > a i { + transform: translate3d(-50%, -50%, 0) rotate(90deg) scale(0.5); + opacity: 0; +} +.fab-opened:not(.fab-morph) > a i + i { + transform: translate3d(-50%, -50%, 0) rotate(0deg) scale(1); + opacity: 1; +} +.fab-opened .fab-buttons { + visibility: visible; + pointer-events: auto; +} +.fab-opened .fab-buttons a { + opacity: 1; + transform: translate3d(0, 0px, 0) scale(1) !important; +} +.fab-opened .fab-buttons a:nth-child(2) { + transition-delay: 50ms; +} +.fab-opened .fab-buttons a:nth-child(3) { + transition-delay: 100ms; +} +.fab-opened .fab-buttons a:nth-child(4) { + transition-delay: 150ms; +} +.fab-opened .fab-buttons a:nth-child(5) { + transition-delay: 200ms; +} +.fab-opened .fab-buttons a:nth-child(6) { + transition-delay: 250ms; +} +.fab-buttons-top, +.fab-buttons-bottom { + left: 50%; + width: var(--f7-fab-button-size); + margin-left: calc(-1 * var(--f7-fab-button-size) / 2); +} +.fab-buttons-top { + bottom: 100%; + margin-bottom: 16px; + flex-direction: column-reverse; +} +.fab-buttons-top a { + transform: translate3d(0, 8px, 0) scale(0.3); + transform-origin: center bottom; +} +.fab-buttons-top a + a { + margin-bottom: 16px; +} +.fab-buttons-bottom { + top: 100%; + margin-top: 16px; + flex-direction: column; +} +.fab-buttons-bottom a { + transform: translate3d(0, -8px, 0) scale(0.3); + transform-origin: center top; +} +.fab-buttons-bottom a + a { + margin-top: 16px; +} +.fab-buttons-left, +.fab-buttons-right { + top: 50%; + height: var(--f7-fab-button-size); + margin-top: calc(-1 * var(--f7-fab-button-size) / 2); +} +.fab-buttons-left { + right: 100%; + margin-right: 16px; + flex-direction: row-reverse; +} +.fab-buttons-left a { + transform: translate3d(8px, 0px, 0) scale(0.3); + transform-origin: right center; +} +.fab-buttons-left a + a { + margin-right: 16px; +} +.fab-buttons-right { + left: 100%; + margin-left: 16px; +} +.fab-buttons-right a { + transform: translate3d(-8px, 0, 0) scale(0.3); + transform-origin: left center; +} +.fab-buttons-right a + a { + margin-left: 16px; +} +.fab-buttons-center { + left: 0%; + top: 0%; + width: 100%; + height: 100%; +} +.fab-buttons-center a { + position: absolute; +} +.fab-buttons-center a:nth-child(1) { + left: 50%; + margin-left: calc(-1 * var(--f7-fab-button-size) / 2); + bottom: 100%; + margin-bottom: 16px; + transform: translateY(-8px) scale(0.3); + transform-origin: center bottom; +} +.fab-buttons-center a:nth-child(2) { + left: 100%; + margin-top: calc(-1 * var(--f7-fab-button-size) / 2); + top: 50%; + margin-left: 16px; + transform: translateX(-8px) scale(0.3); + transform-origin: left center; +} +.fab-buttons-center a:nth-child(3) { + left: 50%; + margin-left: calc(-1 * var(--f7-fab-button-size) / 2); + top: 100%; + margin-top: 16px; + transform: translateY(8px) scale(0.3); + transform-origin: center top; +} +.fab-buttons-center a:nth-child(4) { + right: 100%; + margin-top: calc(-1 * var(--f7-fab-button-size) / 2); + top: 50%; + margin-right: 16px; + transform: translateX(8px) scale(0.3); + transform-origin: right center; +} +.fab-morph { + border-radius: calc(var(--f7-fab-size) / 2); + background: var(--f7-fab-bg-color, var(--f7-theme-color)); + box-shadow: var(--f7-fab-box-shadow); +} +.fab-morph > a { + box-shadow: none; + background: none !important; +} +.fab-opened.fab-morph > a i { + opacity: 0; +} +.fab-morph, +.fab-morph > a, +.fab-morph-target { + transition-duration: 250ms; +} +.fab-morph-target:not(.fab-morph-target-visible) { + display: none; +} +.fab-extended { + width: auto; + min-width: var(--f7-fab-extended-size); +} +.fab-extended > a { + width: 100%; + height: var(--f7-fab-extended-size); +} +.fab-extended > a i { + left: calc(var(--f7-fab-extended-size) / 2); +} +.fab-extended i ~ .fab-text { + padding-left: var(--f7-fab-extended-size); +} +.fab-extended > a { + width: 100% !important; +} +.fab-text { + box-sizing: border-box; + font-size: var(--f7-fab-extended-text-font-size); + padding: var(--f7-fab-extended-text-padding); + font-weight: var(--f7-fab-extended-text-font-weight); + letter-spacing: var(--f7-fab-extended-text-letter-spacing); + text-transform: uppercase; +} +.fab-label-button { + overflow: visible !important; +} +.fab-label { + position: absolute; + top: 50%; + padding: var(--f7-fab-label-padding); + border-radius: var(--f7-fab-label-border-radius); + background: var(--f7-fab-label-bg-color); + color: var(--f7-fab-label-text-color); + box-shadow: var(--f7-fab-label-box-shadow); + white-space: nowrap; + transform: translateY(-50%); + pointer-events: none; + font-size: var(--f7-fab-label-font-size); +} +.fab-right-top .fab-label, +.fab-right-center .fab-label, +.fab-right-bottom .fab-label { + right: 100%; + margin-right: 8px; +} +.fab-left-top .fab-label, +.fab-left-center .fab-label, +.fab-left-bottom .fab-label { + left: 100%; + margin-left: 8px; +} +.navbar ~ * .fab-left-top, +.navbar ~ * .fab-center-top, +.navbar ~ * .fab-right-top, +.navbar ~ .fab-left-top, +.navbar ~ .fab-center-top, +.navbar ~ .fab-right-top, +.navbars ~ * .fab-left-top, +.navbars ~ * .fab-center-top, +.navbars ~ * .fab-right-top, +.navbars ~ .fab-left-top, +.navbars ~ .fab-center-top, +.navbars ~ .fab-right-top { + margin-top: calc(var(--f7-navbar-height) + var(--f7-safe-area-top)); +} +.toolbar-top ~ * .fab-left-top, +.toolbar-top ~ * .fab-center-top, +.toolbar-top ~ * .fab-right-top, +.toolbar-top ~ .fab-left-top, +.toolbar-top ~ .fab-center-top, +.toolbar-top ~ .fab-right-top, +.ios .toolbar-top-ios ~ * .fab-left-top, +.ios .toolbar-top-ios ~ * .fab-center-top, +.ios .toolbar-top-ios ~ * .fab-right-top, +.ios .toolbar-top-ios ~ .fab-left-top, +.ios .toolbar-top-ios ~ .fab-center-top, +.ios .toolbar-top-ios ~ .fab-right-top, +.md .toolbar-top-md ~ * .fab-left-top, +.md .toolbar-top-md ~ * .fab-center-top, +.md .toolbar-top-md ~ * .fab-right-top, +.md .toolbar-top-md ~ .fab-left-top, +.md .toolbar-top-md ~ .fab-center-top, +.md .toolbar-top-md ~ .fab-right-top { + margin-top: var(--f7-toolbar-height); +} +.toolbar-bottom ~ * .fab-left-bottom, +.toolbar-bottom ~ * .fab-center-bottom, +.toolbar-bottom ~ * .fab-right-bottom, +.toolbar-bottom ~ .fab-left-bottom, +.toolbar-bottom ~ .fab-center-bottom, +.toolbar-bottom ~ .fab-right-bottom, +.ios .toolbar-bottom-ios ~ * .fab-left-bottom, +.ios .toolbar-bottom-ios ~ * .fab-center-bottom, +.ios .toolbar-bottom-ios ~ * .fab-right-bottom, +.ios .toolbar-bottom-ios ~ .fab-left-bottom, +.ios .toolbar-bottom-ios ~ .fab-center-bottom, +.ios .toolbar-bottom-ios ~ .fab-right-bottom, +.md .toolbar-bottom-md ~ * .fab-left-bottom, +.md .toolbar-bottom-md ~ * .fab-center-bottom, +.md .toolbar-bottom-md ~ * .fab-right-bottom, +.md .toolbar-bottom-md ~ .fab-left-bottom, +.md .toolbar-bottom-md ~ .fab-center-bottom, +.md .toolbar-bottom-md ~ .fab-right-bottom { + margin-bottom: var(--f7-toolbar-height); +} +.tabbar-labels.toolbar-bottom ~ * .fab-left-bottom, +.tabbar-labels.toolbar-bottom ~ * .fab-center-bottom, +.tabbar-labels.toolbar-bottom ~ * .fab-right-bottom, +.tabbar-labels.toolbar-bottom ~ .fab-left-bottom, +.tabbar-labels.toolbar-bottom ~ .fab-center-bottom, +.tabbar-labels.toolbar-bottom ~ .fab-right-bottom, +.ios .tabbar-labels.toolbar-bottom-ios ~ * .fab-left-bottom, +.ios .tabbar-labels.toolbar-bottom-ios ~ * .fab-center-bottom, +.ios .tabbar-labels.toolbar-bottom-ios ~ * .fab-right-bottom, +.ios .tabbar-labels.toolbar-bottom-ios ~ .fab-left-bottom, +.ios .tabbar-labels.toolbar-bottom-ios ~ .fab-center-bottom, +.ios .tabbar-labels.toolbar-bottom-ios ~ .fab-right-bottom, +.md .tabbar-labels.toolbar-bottom-md ~ * .fab-left-bottom, +.md .tabbar-labels.toolbar-bottom-md ~ * .fab-center-bottom, +.md .tabbar-labels.toolbar-bottom-md ~ * .fab-right-bottom, +.md .tabbar-labels.toolbar-bottom-md ~ .fab-left-bottom, +.md .tabbar-labels.toolbar-bottom-md ~ .fab-center-bottom, +.md .tabbar-labels.toolbar-bottom-md ~ .fab-right-bottom { + margin-bottom: var(--f7-tabbar-labels-height); +} +.tabbar-labels.toolbar-top ~ * .fab-left-bottom, +.tabbar-labels.toolbar-top ~ * .fab-center-bottom, +.tabbar-labels.toolbar-top ~ * .fab-right-bottom, +.tabbar-labels.toolbar-top ~ .fab-left-bottom, +.tabbar-labels.toolbar-top ~ .fab-center-bottom, +.tabbar-labels.toolbar-top ~ .fab-right-bottom, +.ios .tabbar-labels.toolbar-top-ios ~ * .fab-left-bottom, +.ios .tabbar-labels.toolbar-top-ios ~ * .fab-center-bottom, +.ios .tabbar-labels.toolbar-top-ios ~ * .fab-right-bottom, +.ios .tabbar-labels.toolbar-top-ios ~ .fab-left-bottom, +.ios .tabbar-labels.toolbar-top-ios ~ .fab-center-bottom, +.ios .tabbar-labels.toolbar-top-ios ~ .fab-right-bottom, +.md .tabbar-labels.toolbar-top-md ~ * .fab-left-bottom, +.md .tabbar-labels.toolbar-top-md ~ * .fab-center-bottom, +.md .tabbar-labels.toolbar-top-md ~ * .fab-right-bottom, +.md .tabbar-labels.toolbar-top-md ~ .fab-left-bottom, +.md .tabbar-labels.toolbar-top-md ~ .fab-center-bottom, +.md .tabbar-labels.toolbar-top-md ~ .fab-right-bottom { + margin-top: var(--f7-tabbar-labels-height); +} +.messagebar ~ * .fab-left-bottom, +.messagebar ~ * .fab-center-bottom, +.messagebar ~ * .fab-right-bottom, +.messagebar ~ .fab-left-bottom, +.messagebar ~ .fab-center-bottom, +.messagebar ~ .fab-right-bottom { + margin-bottom: var(--f7-messagebar-height); +} +.navbar + .toolbar-top ~ * .fab-left-top, +.ios .navbar + .toolbar-top-ios ~ * .fab-left-top, +.md .navbar + .toolbar-top-ios ~ * .fab-left-top, +.navbar + .toolbar-top ~ * .fab-center-top, +.ios .navbar + .toolbar-top-ios ~ * .fab-center-top, +.md .navbar + .toolbar-top-ios ~ * .fab-center-top, +.navbar + .toolbar-top ~ * .fab-right-top, +.ios .navbar + .toolbar-top-ios ~ * .fab-right-top, +.md .navbar + .toolbar-top-ios ~ * .fab-right-top, +.navbar + .toolbar-top ~ .fab-left-top, +.ios .navbar + .toolbar-top-ios ~ .fab-left-top, +.md .navbar + .toolbar-top-ios ~ .fab-left-top, +.navbar + .toolbar-top ~ .fab-center-top, +.ios .navbar + .toolbar-top-ios ~ .fab-center-top, +.md .navbar + .toolbar-top-ios ~ .fab-center-top, +.navbar + .toolbar-top ~ .fab-right-top, +.ios .navbar + .toolbar-top-ios ~ .fab-right-top, +.md .navbar + .toolbar-top-ios ~ .fab-right-top { + margin-top: calc(var(--f7-toolbar-height) + var(--f7-navbar-height) + var(--f7-safe-area-top)); +} +.navbar + .toolbar-top.tabbar-labels ~ * .fab-left-top, +.ios .navbar + .toolbar-top-ios.tabbar-labels ~ * .fab-left-top, +.md .navbar + .toolbar-top-ios.tabbar-labels ~ * .fab-left-top, +.navbar + .toolbar-top.tabbar-labels ~ * .fab-center-top, +.ios .navbar + .toolbar-top-ios.tabbar-labels ~ * .fab-center-top, +.md .navbar + .toolbar-top-ios.tabbar-labels ~ * .fab-center-top, +.navbar + .toolbar-top.tabbar-labels ~ * .fab-right-top, +.ios .navbar + .toolbar-top-ios.tabbar-labels ~ * .fab-right-top, +.md .navbar + .toolbar-top-ios.tabbar-labels ~ * .fab-right-top, +.navbar + .toolbar-top.tabbar-labels ~ .fab-left-top, +.ios .navbar + .toolbar-top-ios.tabbar-labels ~ .fab-left-top, +.md .navbar + .toolbar-top-ios.tabbar-labels ~ .fab-left-top, +.navbar + .toolbar-top.tabbar-labels ~ .fab-center-top, +.ios .navbar + .toolbar-top-ios.tabbar-labels ~ .fab-center-top, +.md .navbar + .toolbar-top-ios.tabbar-labels ~ .fab-center-top, +.navbar + .toolbar-top.tabbar-labels ~ .fab-right-top, +.ios .navbar + .toolbar-top-ios.tabbar-labels ~ .fab-right-top, +.md .navbar + .toolbar-top-ios.tabbar-labels ~ .fab-right-top { + margin-top: calc(var(--f7-tabbar-labels-height) + var(--f7-navbar-height) + var(--f7-safe-area-top)); +} +.navbars + .toolbar-top ~ * .fab-left-top, +.ios .navbars + .toolbar-top-ios ~ * .fab-left-top, +.navbars + .toolbar-top ~ * .fab-center-top, +.ios .navbars + .toolbar-top-ios ~ * .fab-center-top, +.navbars + .toolbar-top ~ * .fab-right-top, +.ios .navbars + .toolbar-top-ios ~ * .fab-right-top, +.navbars + .toolbar-top ~ .fab-left-top, +.ios .navbars + .toolbar-top-ios ~ .fab-left-top, +.navbars + .toolbar-top ~ .fab-center-top, +.ios .navbars + .toolbar-top-ios ~ .fab-center-top, +.navbars + .toolbar-top ~ .fab-right-top, +.ios .navbars + .toolbar-top-ios ~ .fab-right-top { + margin-top: calc(var(--f7-toolbar-height) + var(--f7-navbar-height) + var(--f7-safe-area-top)); +} +.navbars + .toolbar-top.tabbar-labels ~ * .fab-left-top, +.ios .navbars + .toolbar-top-ios.tabbar-labels ~ * .fab-left-top, +.navbars + .toolbar-top.tabbar-labels ~ * .fab-center-top, +.ios .navbars + .toolbar-top-ios.tabbar-labels ~ * .fab-center-top, +.navbars + .toolbar-top.tabbar-labels ~ * .fab-right-top, +.ios .navbars + .toolbar-top-ios.tabbar-labels ~ * .fab-right-top, +.navbars + .toolbar-top.tabbar-labels ~ .fab-left-top, +.ios .navbars + .toolbar-top-ios.tabbar-labels ~ .fab-left-top, +.navbars + .toolbar-top.tabbar-labels ~ .fab-center-top, +.ios .navbars + .toolbar-top-ios.tabbar-labels ~ .fab-center-top, +.navbars + .toolbar-top.tabbar-labels ~ .fab-right-top, +.ios .navbars + .toolbar-top-ios.tabbar-labels ~ .fab-right-top { + margin-top: calc(var(--f7-tabbar-labels-height) + var(--f7-navbar-height) + var(--f7-safe-area-top)); +} +.ios .fab > a.active-state, +.ios .fab-buttons a.active-state { + transition-duration: 0ms; +} +/* === Searchbar === */ +:root { + /* + --f7-searchbar-link-color: var(--f7-bars-link-color); + --f7-searchbar-inline-input-font-size: var(--f7-searchbar-input-font-size); + --f7-searchbar-inline-input-height: var(--f7-searchbar-input-height); + */ + --f7-searchbar-input-border-width: 0px; + --f7-searchbar-input-border-color: transparent; + --f7-searchbar-input-text-color: #000; + --f7-searchbar-placeholder-color: rgba(0, 0, 0, 0.4); +} +:root .theme-dark, +:root.theme-dark { + --f7-searchbar-input-text-color: #fff; + --f7-searchbar-placeholder-color: rgba(255, 255, 255, 0.4); +} +.ios { + /* + --f7-searchbar-bg-image: var(--f7-bars-bg-image); + --f7-searchbar-bg-color: var(--f7-bars-bg-color); + --f7-searchbar-bg-color-rgb: var(--f7-bars-bg-color-rgb); + --f7-searchbar-border-color: var(--f7-bars-border-color); + */ + --f7-searchbar-height: 44px; + --f7-searchbar-inner-padding-left: 8px; + --f7-searchbar-inner-padding-right: 8px; + /* + --f7-searchbar-link-color: var(--f7-bars-link-color, var(--f7-theme-color)); + */ + --f7-searchbar-input-font-size: 17px; + --f7-searchbar-input-border-radius: 8px; + --f7-searchbar-input-height: 32px; + --f7-searchbar-input-padding-horizontal: 28px; + /* + --f7-searchbar-inline-input-padding-horizontal: var(--f7-searchbar-input-padding-horizontal); + --f7-searchbar-input-clear-button-color: var(--f7-input-clear-button-color); + */ + --f7-searchbar-backdrop-bg-color: rgba(0, 0, 0, 0.4); + --f7-searchbar-shadow-image: none; + --f7-searchbar-in-page-content-margin: 0px; + --f7-searchbar-in-page-content-box-shadow: none; + --f7-searchbar-in-page-content-border-radius: 0; + --f7-searchbar-in-page-content-input-border-radius: 0; + --f7-searchbar-search-icon-color: rgba(0, 0, 0, 0.4); + --f7-searchbar-input-bg-color: #e4e4e4; +} +.ios .theme-dark, +.ios.theme-dark { + --f7-searchbar-search-icon-color: rgba(255, 255, 255, 0.4); + --f7-searchbar-input-bg-color: #2a2a2a; +} +.md { + --f7-searchbar-border-color: transparent; + --f7-searchbar-height: 48px; + --f7-searchbar-inner-padding-left: 0px; + --f7-searchbar-inner-padding-right: 0px; + --f7-searchbar-link-color: #737373; + --f7-searchbar-search-icon-color: #737373; + --f7-searchbar-input-font-size: 20px; + --f7-searchbar-input-border-radius: 0px; + --f7-searchbar-input-height: 100%; + --f7-searchbar-input-padding-horizontal: 48px; + --f7-searchbar-inline-input-padding-horizontal: 24px; + --f7-searchbar-input-clear-button-color: #737373; + --f7-searchbar-backdrop-bg-color: rgba(0, 0, 0, 0.25); + --f7-searchbar-shadow-image: var(--f7-bars-shadow-bottom-image); + --f7-searchbar-in-page-content-margin: 8px; + --f7-searchbar-in-page-content-box-shadow: var(--f7-elevation-1); + --f7-searchbar-in-page-content-border-radius: 4px; + --f7-searchbar-in-page-content-input-border-radius: 4px; + --f7-searchbar-bg-color: #fff; + --f7-searchbar-input-bg-color: #fff; +} +.md .theme-dark, +.md.theme-dark { + --f7-searchbar-bg-color: #202020; + --f7-searchbar-input-bg-color: #202020; +} +.aurora { + /* + --f7-searchbar-bg-image: var(--f7-bars-bg-image); + --f7-searchbar-bg-color: var(--f7-bars-bg-color); + --f7-searchbar-border-color: var(--f7-bars-border-color); + */ + --f7-searchbar-height: 38px; + --f7-searchbar-inner-padding-left: 8px; + --f7-searchbar-inner-padding-right: 8px; + /* + --f7-searchbar-link-color: var(--f7-bars-link-color, var(--f7-theme-color)); + */ + --f7-searchbar-input-font-size: 13px; + --f7-searchbar-input-border-radius: 4px; + --f7-searchbar-input-height: 24px; + --f7-searchbar-input-padding-horizontal: 24px; + /* + --f7-searchbar-inline-input-padding-horizontal: var(--f7-searchbar-input-padding-horizontal; + --f7-searchbar-input-clear-button-color: var(--f7-input-clear-button-color); + */ + --f7-searchbar-backdrop-bg-color: rgba(0, 0, 0, 0.4); + --f7-searchbar-shadow-image: none; + --f7-searchbar-in-page-content-margin: 0px; + --f7-searchbar-in-page-content-box-shadow: none; + --f7-searchbar-in-page-content-border-radius: 0; + /* + --f7-searchbar-in-page-content-input-border-radius: var(--f7-searchbar-input-border-radius); + */ + --f7-searchbar-search-icon-color: rgba(0, 0, 0, 0.4); + --f7-searchbar-input-bg-color: #fff; +} +.aurora .theme-dark, +.aurora.theme-dark { + --f7-searchbar-input-bg-color: #333; + --f7-searchbar-search-icon-color: rgba(255, 255, 255, 0.4); +} +.searchbar { + width: 100%; + position: relative; + z-index: 200; + height: var(--f7-searchbar-height); + background-image: var(--f7-searchbar-bg-image, var(--f7-bars-bg-image)); + background-color: var(--f7-searchbar-bg-color, var(--f7-bars-bg-color)); +} +@supports ((-webkit-backdrop-filter: blur(20px)) or (backdrop-filter: blur(20px))) { + .ios-translucent-bars .searchbar { + background-color: rgba(var(--f7-searchbar-bg-color-rgb, var(--f7-bars-bg-color-rgb)), var(--f7-bars-translucent-opacity)); + -webkit-backdrop-filter: saturate(180%) blur(var(--f7-bars-translucent-blur)); + backdrop-filter: saturate(180%) blur(var(--f7-bars-translucent-blur)); + } +} +.ios .subnavbar .searchbar { + background-color: transparent; + -webkit-backdrop-filter: none; + backdrop-filter: none; +} +.ios .subnavbar .searchbar:after { + display: none !important; +} +.searchbar.no-hairline:after, +.searchbar.no-border:after { + display: none !important; +} +.searchbar.no-shadow:before { + display: none !important; +} +.searchbar:after { + content: ''; + position: absolute; + background-color: var(--f7-searchbar-border-color, var(--f7-bars-border-color)); + display: block; + z-index: 15; + top: auto; + right: auto; + bottom: 0; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 100%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +.page > .searchbar:not(.searchbar-inline) { + z-index: 600; +} +.page > .searchbar:not(.searchbar-inline):before { + content: ''; + position: absolute; + right: 0; + width: 100%; + top: 100%; + bottom: auto; + height: 8px; + pointer-events: none; + background: var(--f7-searchbar-shadow-image); +} +.searchbar input[type="text"], +.searchbar input[type="search"] { + box-sizing: border-box; + width: 100%; + height: 100%; + display: block; + border: var(--f7-searchbar-input-border-width) solid var(--f7-searchbar-input-border-color); + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + font-family: inherit; + font-weight: normal; + color: var(--f7-searchbar-input-text-color); + font-size: var(--f7-searchbar-input-font-size); + background-color: var(--f7-searchbar-input-bg-color); + border-radius: var(--f7-searchbar-input-border-radius); + position: relative; + padding: 0; + padding-left: calc(var(--f7-searchbar-input-padding-horizontal) + var(--f7-searchbar-input-extra-padding-left, 0px)); + padding-right: calc(var(--f7-searchbar-input-padding-horizontal) + var(--f7-searchbar-input-extra-padding-right, 0px)); +} +.searchbar input[type="text"]::-webkit-input-placeholder, .searchbar input[type="search"]::-webkit-input-placeholder { + color: var(--f7-searchbar-placeholder-color); + opacity: 1; +} +.searchbar input[type="text"]::placeholder, +.searchbar input[type="search"]::placeholder { + color: var(--f7-searchbar-placeholder-color); + opacity: 1; +} +.searchbar input::-webkit-search-cancel-button { + -webkit-appearance: none; + appearance: none; +} +.searchbar .searchbar-input-wrap { + flex-shrink: 1; + width: 100%; + height: var(--f7-searchbar-input-height); + position: relative; +} +.searchbar a { + color: var(--f7-searchbar-link-color, var(--f7-bars-link-color, var(--f7-theme-color))); +} +.page > .searchbar:not(.searchbar-inline) { + position: absolute; + left: 0; + top: 0; +} +.page-content .searchbar:not(.searchbar-inline) { + border-radius: var(--f7-searchbar-in-page-content-border-radius); + margin: var(--f7-searchbar-in-page-content-margin); + width: auto; + box-shadow: var(--f7-searchbar-in-page-content-box-shadow); +} +.page-content .searchbar:not(.searchbar-inline) .searchbar-inner, +.page-content .searchbar:not(.searchbar-inline) input[type="text"], +.page-content .searchbar:not(.searchbar-inline) input[type="search"] { + border-radius: var(--f7-searchbar-in-page-content-input-border-radius, var(--f7-searchbar-input-border-radius)); +} +.searchbar .input-clear-button { + color: var(--f7-searchbar-input-clear-button-color, var(--f7-input-clear-button-color)); +} +.searchbar-expandable { + --f7-searchbar-expandable-size: var(--f7-searchbar-height); + position: absolute; + transition-duration: 300ms; + pointer-events: none; +} +.navbar .searchbar-expandable { + background: transparent; +} +.navbar .searchbar-expandable:after { + display: none !important; +} +.navbar .searchbar.searchbar-expandable { + --f7-searchbar-expandable-size: var(--f7-navbar-height); +} +.toolbar .searchbar.searchbar-expandable { + --f7-searchbar-expandable-size: var(--f7-toolbar-height); +} +.subnavbar .searchbar.searchbar-expandable { + --f7-searchbar-expandable-size: var(--f7-subnavbar-height); +} +.tabbar-labels .searchbar.searchbar-expandable { + --f7-searchbar-expandable-size: var(--f7-tabbar-labels-height); +} +.searchbar-inner { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + display: flex; + align-items: center; + box-sizing: border-box; + padding: 0 calc(var(--f7-searchbar-inner-padding-right) + var(--f7-safe-area-right)) 0 calc(var(--f7-searchbar-inner-padding-left) + var(--f7-safe-area-left)); +} +.searchbar-disable-button { + cursor: pointer; + pointer-events: none; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + background: none; + border: none; + outline: 0; + padding: 0; + margin: 0; + width: auto; + opacity: 0; +} +.searchbar-icon { + pointer-events: none; + background-position: center; + background-repeat: no-repeat; +} +.searchbar-icon:after { + color: var(--f7-searchbar-search-icon-color); + font-family: 'framework7-core-icons'; + font-weight: normal; + font-style: normal; + line-height: 1; + letter-spacing: normal; + text-transform: none; + white-space: nowrap; + word-wrap: normal; + direction: ltr; + -webkit-font-smoothing: antialiased; + text-rendering: optimizeLegibility; + -moz-osx-font-smoothing: grayscale; + font-feature-settings: "liga"; + text-align: center; + display: block; + width: 100%; + height: 100%; + font-size: 20px; +} +.searchbar-backdrop { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + z-index: 100; + opacity: 0; + pointer-events: none; + transition-duration: 300ms; + transform: translate3d(0, 0, 0); + background: var(--f7-searchbar-backdrop-bg-color); +} +.searchbar-backdrop.searchbar-backdrop-in { + opacity: 1; + pointer-events: auto; +} +.page-content > .searchbar-backdrop { + position: fixed; +} +.searchbar-not-found { + display: none; +} +.hidden-by-searchbar, +.list .hidden-by-searchbar, +.list.li.hidden-by-searchbar, +.list li.hidden-by-searchbar { + display: none !important; +} +.navbar.with-searchbar-expandable-enabled-no-transition, +.navbar.with-searchbar-expandable-enabled-no-transition { + --f7-navbar-large-collapse-progress: 1; +} +.navbar.with-searchbar-expandable-enabled, +.navbar.with-searchbar-expandable-enabled { + --f7-navbar-large-collapse-progress: 1; +} +.navbar.with-searchbar-expandable-enabled .navbar-bg, +.navbar.with-searchbar-expandable-enabled .navbar-bg, +.navbar.with-searchbar-expandable-enabled .title-large, +.navbar.with-searchbar-expandable-enabled .title-large, +.navbar.with-searchbar-expandable-enabled .title-large-text, +.navbar.with-searchbar-expandable-enabled .title-large-text { + transition-duration: 300ms; +} +.navbar.with-searchbar-expandable-closing .navbar-bg, +.navbar.with-searchbar-expandable-closing .navbar-bg, +.navbar.with-searchbar-expandable-closing .title-large, +.navbar.with-searchbar-expandable-closing .title-large, +.navbar.with-searchbar-expandable-closing .title-large-text, +.navbar.with-searchbar-expandable-closing .title-large-text { + transition-duration: 300ms; +} +.page-content.with-searchbar-expandable-enabled { + height: calc(100% + var(--f7-navbar-large-title-height)); + transform: translateY(calc(-1 * var(--f7-navbar-large-title-height))); + transition-duration: 300ms; + transition-property: transform; +} +.page-content.with-searchbar-expandable-closing { + transition-duration: 300ms; +} +.navbar ~ .page:not(.no-navbar) > .searchbar, +.navbars ~ .page:not(.no-navbar) > .searchbar, +.page > .navbar ~ .searchbar { + top: calc(var(--f7-navbar-height) + var(--f7-safe-area-top)); +} +.navbar ~ .page-with-navbar-large:not(.no-navbar) .searchbar, +.navbars ~ .page-with-navbar-large:not(.no-navbar) .searchbar, +.page-with-navbar-large .navbar ~ .searchbar, +.page-with-navbar-large .navbar ~ * .searchbar { + top: calc(var(--f7-navbar-height) + var(--f7-navbar-large-title-height) + var(--f7-safe-area-top)); + transform: translate3d(0, calc(-1 * var(--f7-navbar-large-collapse-progress) * var(--f7-navbar-large-title-height)), 0); +} +.navbars ~ .page-with-navbar-large:not(.no-navbar) .page-content .searchbar, +.page-with-navbar-large .page-content .searchbar { + top: 0; + transform: none; +} +.searchbar ~ * { + --f7-page-searchbar-offset: var(--f7-searchbar-height); +} +.page > .toolbar-top ~ .searchbar, +.ios .page > .toolbar-top-ios ~ .searchbar, +.md .page > .toolbar-top-md ~ .searchbar, +.aurora .page > .toolbar-top-aurora ~ .searchbar { + top: var(--f7-toolbar-height); +} +.page > .tabbar-labels.toolbar-top ~ .searchbar, +.ios .page > .tabbar-labels.toolbar-top-ios ~ .searchbar, +.md .page > .tabbar-labels.toolbar-top-md ~ .searchbar, +.aurora .page > .tabbar-labels.toolbar-top-aurora ~ .searchbar { + top: var(--f7-tabbar-labels-height); +} +.page > .navbar ~ .toolbar-top ~ .searchbar, +.ios .page > .navbar ~ .toolbar-top-ios ~ .searchbar, +.md .page > .navbar ~ .toolbar-top-md ~ .searchbar, +.aurora .page > .navbar ~ .toolbar-top-aurora ~ .searchbar { + top: calc(var(--f7-navbar-height) + var(--f7-toolbar-height) + var(--f7-safe-area-top)); +} +.page > .navbar ~ .tabbar-labels.toolbar-top ~ .searchbar, +.ios .page > .navbar ~ .tabbar-labels.toolbar-top-ios ~ .searchbar, +.md .page > .navbar ~ .tabbar-labels.toolbar-top-md ~ .searchbar, +.aurora .page > .navbar ~ .tabbar-labels.toolbar-top-aurora ~ .searchbar { + top: calc(var(--f7-navbar-height) + var(--f7-tabbar-labels-height) + var(--f7-safe-area-top)); +} +.searchbar.searchbar-inline { + width: auto; + height: auto; + background-color: transparent; + background-image: none; +} +.searchbar.searchbar-inline:after, +.searchbar.searchbar-inline:before { + display: none !important; +} +.searchbar.searchbar-inline .searchbar-input-wrap { + height: var(--f7-searchbar-inline-input-height, var(--f7-searchbar-input-height)); +} +.searchbar.searchbar-inline .searchbar-inner { + padding: 0; + position: static; + width: auto; + height: auto; +} +.searchbar.searchbar-inline input[type="text"], +.searchbar.searchbar-inline input[type="search"] { + font-size: var(--f7-searchbar-inline-input-font-size, var(--f7-searchbar-input-font-size)); + padding-left: calc(var(--f7-searchbar-inline-input-padding-horizontal, var(--f7-searchbar-input-padding-horizontal)) + var(--f7-searchbar-input-extra-padding-left, 0px)); + padding-right: calc(var(--f7-searchbar-inline-input-padding-horizontal, var(--f7-searchbar-input-padding-horizontal)) + var(--f7-searchbar-input-extra-padding-right, 0px)); +} +.ios .searchbar input[type="search"], +.ios .searchbar input[type="text"] { + z-index: 30; +} +.ios .searchbar .input-clear-button { + z-index: 40; + right: 7px; +} +.ios .searchbar-icon { + width: 13px; + height: 13px; + position: absolute; + top: 50%; + margin-top: -6px; + z-index: 40; + left: 8px; +} +.ios .searchbar-icon:after { + content: 'search_ios'; + line-height: 13px; +} +.ios .searchbar-disable-button { + font-size: 17px; + flex-shrink: 0; + transform: translate3d(0, 0, 0); + transition-duration: 300ms; + color: var(--f7-searchbar-link-color, var(--f7-bars-link-color, var(--f7-theme-color))); + display: none; +} +.ios .searchbar-disable-button.active-state { + transition-duration: 0ms; + opacity: 0.3 !important; +} +.ios .searchbar-enabled .searchbar-disable-button { + pointer-events: auto; + opacity: 1; + margin-left: 8px; +} +.ios .searchbar:not(.searchbar-enabled) .searchbar-disable-button { + transition-duration: 300ms !important; +} +.ios .searchbar-expandable { + left: 0; + bottom: 0; + opacity: 1; + width: 100%; + height: 0%; + transform: translate3d(0, 0, 0); + overflow: hidden; +} +.ios .searchbar-expandable .searchbar-disable-button { + margin-left: 8px; + opacity: 1; + display: block; +} +.ios .searchbar-expandable .searchbar-inner { + height: var(--f7-searchbar-expandable-size); +} +.ios .navbar.with-searchbar-expandable-enabled .navbar-bg, +.ios .navbar.with-searchbar-expandable-closing .navbar-bg { + transition-property: transform, opacity; +} +.ios .navbar.with-searchbar-expandable-enabled .navbar-bg, +.ios .navbar.with-searchbar-expandable-closing .navbar-bg, +.ios .navbar.with-searchbar-expandable-enabled .left, +.ios .navbar.with-searchbar-expandable-closing .left, +.ios .navbar.with-searchbar-expandable-enabled .title, +.ios .navbar.with-searchbar-expandable-closing .title, +.ios .navbar.with-searchbar-expandable-enabled .right, +.ios .navbar.with-searchbar-expandable-closing .right { + transition-duration: 300ms; +} +.ios .navbar.with-searchbar-expandable-enabled .left, +.ios .navbar.with-searchbar-expandable-enabled-no-transition .left, +.ios .navbar.with-searchbar-expandable-enabled .title, +.ios .navbar.with-searchbar-expandable-enabled-no-transition .title, +.ios .navbar.with-searchbar-expandable-enabled .right, +.ios .navbar.with-searchbar-expandable-enabled-no-transition .right { + transform: translateY(calc(-1 * var(--f7-navbar-height))); + opacity: 0 !important; +} +.ios .searchbar-expandable.searchbar-enabled { + opacity: 1; + height: var(--f7-searchbar-expandable-size); + pointer-events: auto; +} +.md .searchbar-icon, +.md .searchbar-disable-button { + position: absolute; + left: calc(-4px + var(--f7-safe-area-left)); + top: 50%; + transition-duration: 300ms; +} +.md .searchbar-icon { + width: 24px; + height: 24px; + margin-left: 12px; + margin-top: -12px; +} +.md .searchbar-icon:after { + content: 'search_md'; + line-height: 1.2; +} +.md .searchbar-disable-button { + width: 48px; + height: 48px; + transform: rotate(-90deg) scale(0.5); + font-size: 0 !important; + display: block; + margin-top: -24px; + color: var(--f7-searchbar-link-color, var(--f7-bars-link-color, var(--f7-theme-color))); +} +.md .searchbar-disable-button:before { + content: ''; + width: 152%; + height: 152%; + position: absolute; + left: -26%; + top: -26%; + background-image: radial-gradient(circle at center, var(--f7-link-highlight-color) 66%, rgba(255, 255, 255, 0) 66%); + background-repeat: no-repeat; + background-position: center; + background-size: 100% 100%; + opacity: 0; + pointer-events: none; + transition-duration: 600ms; +} +.md .searchbar-disable-button.active-state:before { + opacity: 1; + transition-duration: 150ms; +} +.md .searchbar-disable-button:after { + font-family: 'framework7-core-icons'; + font-weight: normal; + font-style: normal; + line-height: 1; + letter-spacing: normal; + text-transform: none; + white-space: nowrap; + word-wrap: normal; + direction: ltr; + -webkit-font-smoothing: antialiased; + text-rendering: optimizeLegibility; + -moz-osx-font-smoothing: grayscale; + font-feature-settings: "liga"; + text-align: center; + display: block; + width: 100%; + height: 100%; + font-size: 20px; + line-height: 48px; + content: "arrow_left_md"; +} +.md .searchbar-enabled:not(.searchbar-enabled-no-disable-button) .searchbar-disable-button { + transform: rotate(0deg) scale(1); + pointer-events: auto; + opacity: 1; +} +.md .searchbar-enabled:not(.searchbar-enabled-no-disable-button) .searchbar-icon { + opacity: 0; + transform: rotate(90deg) scale(0.5); +} +.md .searchbar { + --f7-searchbar-input-extra-padding-left: 16px; +} +.md .searchbar .input-clear-button { + width: 48px; + height: 48px; + margin-top: -24px; + right: 0; +} +.md .searchbar .input-clear-button:before { + content: ''; + width: 152%; + height: 152%; + position: absolute; + left: -26%; + top: -26%; + background-image: radial-gradient(circle at center, var(--f7-link-highlight-color) 66%, rgba(255, 255, 255, 0) 66%); + background-repeat: no-repeat; + background-position: center; + background-size: 100% 100%; + opacity: 0; + pointer-events: none; + transition-duration: 600ms; +} +.md .searchbar .input-clear-button.active-state:before { + opacity: 1; + transition-duration: 150ms; +} +.md .searchbar .input-clear-button:after { + line-height: 48px; + content: 'delete_md'; + opacity: 1; +} +.md .searchbar .input-clear-button:before { + margin-left: 0; + margin-top: 0; +} +.md .page > .searchbar, +.md .subnavbar .searchbar, +.md .searchbar-expandable { + --f7-searchbar-input-extra-padding-left: 24px; +} +.md .page > .searchbar .searchbar-icon, +.md .subnavbar .searchbar .searchbar-icon, +.md .searchbar-expandable .searchbar-icon, +.md .page > .searchbar .searchbar-disable-button, +.md .subnavbar .searchbar .searchbar-disable-button, +.md .searchbar-expandable .searchbar-disable-button { + left: calc(-4px + 8px + var(--f7-safe-area-left)); +} +.md .searchbar-expandable { + height: var(--f7-searchbar-expandable-size); + opacity: 0; + bottom: 0; + border-radius: calc(var(--f7-searchbar-expandable-size)); + width: calc(var(--f7-searchbar-expandable-size)); + margin-top: calc(var(--f7-searchbar-expandable-size) * -1 / 2); + transform: translate3d(0px, 0px, 0px); + left: 100%; + margin-left: calc(var(--f7-searchbar-expandable-size) * -1); +} +.md .searchbar-expandable.searchbar-enabled { + width: 100%; + border-radius: 0; + opacity: 1; + pointer-events: auto; + margin-top: 0; + left: 0; + margin-left: 0; +} +.aurora .searchbar input[type="search"], +.aurora .searchbar input[type="text"] { + z-index: 30; +} +.aurora .searchbar .input-clear-button { + z-index: 40; + right: 4px; +} +.aurora .searchbar-icon { + width: 13px; + height: 13px; + position: absolute; + top: 50%; + margin-top: -6px; + z-index: 40; + left: 6px; +} +.aurora .searchbar-icon:after { + content: 'search_aurora'; + line-height: 13px; +} +.aurora .searchbar-disable-button { + font-size: 14px; + flex-shrink: 0; + transform: translate3d(0, 0, 0); + transition-duration: 300ms; + color: var(--f7-searchbar-link-color, var(--f7-bars-link-color, var(--f7-theme-color))); + display: none; +} +.aurora .searchbar-disable-button.active-state { + transition-duration: 0ms; + opacity: 0.3 !important; +} +.aurora .searchbar-enabled .searchbar-disable-button { + pointer-events: auto; + opacity: 1; + margin-left: 8px; +} +.aurora .searchbar:not(.searchbar-enabled) .searchbar-disable-button { + transition-duration: 300ms !important; +} +.aurora .searchbar-expandable { + left: 0; + top: auto; + bottom: 0; + opacity: 0; + width: 100%; + transform: translate3d(0, 0, 0); + overflow: hidden; +} +.aurora .searchbar-expandable .searchbar-disable-button { + margin-left: 8px; + opacity: 1; + display: block; +} +.aurora .searchbar-expandable .searchbar-inner { + height: var(--f7-searchbar-expandable-size); +} +.aurora .searchbar-expandable.searchbar-enabled { + opacity: 1; + pointer-events: auto; +} +/* === Messages === */ +:root { + --f7-message-text-header-text-color: inherit; + --f7-message-text-header-opacity: 0.65; + --f7-message-text-header-font-size: 12px; + --f7-message-text-footer-text-color: inherit; + --f7-message-text-footer-opacity: 0.65; + --f7-message-text-footer-font-size: 12px; + --f7-message-bubble-line-height: 1.2; + --f7-message-header-font-size: 12px; + --f7-message-footer-font-size: 11px; + --f7-message-name-font-size: 12px; + --f7-message-name-font-weight: inherit; + --f7-message-avatar-border-radius: 50%; + --f7-messages-title-font-weight: inherit; + /* + --f7-message-sent-bg-color: var(--f7-theme-color); + */ + --f7-message-sent-text-color: #fff; + --f7-messages-content-bg-color: #fff; + --f7-message-typing-indicator-bg-color: #000; + --f7-message-received-bg-color: #e5e5ea; + --f7-message-received-text-color: #000; +} +:root .theme-dark, +:root.theme-dark { + --f7-messages-title-text-color: rgba(255, 255, 255, 0.54); + --f7-message-header-text-color: rgba(255, 255, 255, 0.54); + --f7-message-name-text-color: rgba(255, 255, 255, 0.54); + --f7-message-footer-text-color: rgba(255, 255, 255, 0.54); + --f7-messages-content-bg-color: transparent; + --f7-message-received-bg-color: #252525; + --f7-message-received-text-color: #fff; + --f7-message-typing-indicator-bg-color: #fff; +} +.ios { + --f7-messages-title-text-color: rgba(0, 0, 0, 0.45); + --f7-messages-title-font-size: 11px; + --f7-message-header-text-color: rgba(0, 0, 0, 0.45); + --f7-message-footer-text-color: rgba(0, 0, 0, 0.45); + --f7-message-name-text-color: rgba(0, 0, 0, 0.45); + --f7-message-avatar-size: 29px; + --f7-message-margin: 10px; + --f7-message-bubble-min-height: 32px; + --f7-message-bubble-font-size: 17px; + --f7-message-bubble-border-radius: 16px; + --f7-message-bubble-padding-vertical: 6px; + --f7-message-bubble-padding-horizontal: 16px; + --f7-message-typing-indicator-opacity: 0.35; +} +.md { + --f7-messages-title-font-size: 12px; + --f7-message-avatar-size: 32px; + --f7-message-margin: 16px; + --f7-message-bubble-min-height: 32px; + --f7-message-bubble-font-size: 16px; + --f7-message-bubble-border-radius: 4px; + --f7-message-bubble-padding-vertical: 6px; + --f7-message-bubble-padding-horizontal: 8px; + --f7-message-typing-indicator-opacity: 0.6; + --f7-messages-title-text-color: rgba(0, 0, 0, 0.51); + --f7-message-header-text-color: rgba(0, 0, 0, 0.51); + --f7-message-footer-text-color: rgba(0, 0, 0, 0.51); + --f7-message-name-text-color: rgba(0, 0, 0, 0.51); +} +.aurora { + --f7-messages-title-font-size: 12px; + --f7-message-avatar-size: 24px; + --f7-message-margin: 10px; + --f7-message-bubble-min-height: 28px; + --f7-message-bubble-font-size: 13px; + --f7-message-bubble-line-height: 1.4; + --f7-message-bubble-border-radius: 14px; + --f7-message-bubble-padding-vertical: 5px; + --f7-message-bubble-padding-horizontal: 10px; + --f7-message-typing-indicator-opacity: 0.5; + --f7-messages-title-text-color: rgba(0, 0, 0, 0.51); + --f7-message-header-text-color: rgba(0, 0, 0, 0.51); + --f7-message-footer-text-color: rgba(0, 0, 0, 0.51); + --f7-message-name-text-color: rgba(0, 0, 0, 0.51); +} +.messages-content, +.messages { + background: var(--f7-messages-content-bg-color); +} +.messages { + display: flex; + flex-direction: column; + min-height: 100%; + position: relative; + z-index: 1; +} +.messages-title, +.message { + margin-top: var(--f7-message-margin); +} +.messages-title:last-child, +.message:last-child { + margin-bottom: var(--f7-message-margin); +} +.messages-title { + text-align: center; + width: 100%; + line-height: 1; + color: var(--f7-messages-title-text-color); + font-size: var(--f7-messages-title-font-size); + font-weight: var(--f7-messages-title-font-weight); +} +.message { + max-width: 70%; + box-sizing: border-box; + display: flex; + align-items: flex-end; + position: relative; + z-index: 1; + transform: translate3d(0, 0, 0); +} +.message-avatar { + border-radius: var(--f7-message-avatar-border-radius); + position: relative; + background-size: cover; + align-self: flex-end; + flex-shrink: 0; + width: var(--f7-message-avatar-size); + height: var(--f7-message-avatar-size); +} +.message-content { + position: relative; + display: flex; + flex-direction: column; +} +.message-header, +.message-footer, +.message-name { + line-height: 1; +} +.message-header { + color: var(--f7-message-header-text-color); + font-size: var(--f7-message-header-font-size); +} +.message-footer { + color: var(--f7-message-footer-text-color); + font-size: var(--f7-message-footer-font-size); + margin-bottom: -1em; +} +.message-name { + color: var(--f7-message-name-text-color); + font-size: var(--f7-message-name-font-size); + font-weight: var(--f7-message-name-font-weight); +} +.message-bubble { + box-sizing: border-box; + word-break: break-word; + display: flex; + flex-direction: column; + position: relative; + line-height: var(--f7-message-bubble-line-height); + font-size: var(--f7-message-bubble-font-size); + border-radius: var(--f7-message-bubble-border-radius); + padding: var(--f7-message-bubble-padding-vertical) var(--f7-message-bubble-padding-horizontal); + min-height: var(--f7-message-bubble-min-height); +} +.message-image img { + display: block; + max-width: 100%; + height: auto; + width: auto; +} +.message-text-header, +.message-text-footer { + line-height: 1; +} +.message-text-header { + color: var(--f7-message-text-header-text-color); + opacity: var(--f7-message-text-header-opacity); + font-size: var(--f7-message-text-header-font-size); +} +.message-text-footer { + color: var(--f7-message-text-footer-text-color); + opacity: var(--f7-message-text-footer-opacity); + font-size: var(--f7-message-text-footer-font-size); +} +.message-text { + text-align: left; +} +.message-sent { + text-align: right; + flex-direction: row-reverse; + align-self: flex-end; +} +.message-sent .message-bubble { + color: var(--f7-message-sent-text-color); + background: var(--f7-message-sent-bg-color, var(--f7-theme-color)); +} +.message-sent .message-content { + align-items: flex-end; +} +.message-sent.message-tail .message-bubble { + border-radius: var(--f7-message-bubble-border-radius) var(--f7-message-bubble-border-radius) 0 var(--f7-message-bubble-border-radius); +} +.message-received { + flex-direction: row; +} +.message-received .message-bubble { + color: var(--f7-message-received-text-color); + background: var(--f7-message-received-bg-color); +} +.message-received .message-content { + align-items: flex-start; +} +.message-received.message-tail .message-bubble { + border-radius: var(--f7-message-bubble-border-radius) var(--f7-message-bubble-border-radius) var(--f7-message-bubble-border-radius) 0; +} +.message:not(.message-last) .message-avatar { + opacity: 0; +} +.message:not(.message-first) .message-name { + display: none; +} +.message.message-same-name .message-name { + display: none; +} +.message.message-same-header .message-header { + display: none; +} +.message.message-same-footer .message-footer { + display: none; +} +.message-appear-from-bottom { + animation: message-appear-from-bottom 300ms; +} +.message-appear-from-top { + animation: message-appear-from-top 300ms; +} +.message-typing-indicator { + display: inline-block; + font-size: 0; + vertical-align: middle; +} +.message-typing-indicator > div { + display: inline-block; + position: relative; + background: var(--f7-message-typing-indicator-bg-color); + opacity: var(--f7-message-typing-indicator-opacity); + vertical-align: middle; + border-radius: 50%; +} +@keyframes message-appear-from-bottom { + from { + transform: translate3d(0, 100%, 0); + } + to { + transform: translate3d(0, 0, 0); + } +} +@keyframes message-appear-from-top { + from { + transform: translate3d(0, -100%, 0); + } + to { + transform: translate3d(0, 0, 0); + } +} +.ios .messages-title b, +.ios .message-header b, +.ios .message-footer b, +.ios .message-name b { + font-weight: 600; +} +.ios .message-header, +.ios .message-name { + margin-bottom: 3px; +} +.ios .message-footer { + margin-top: 3px; +} +.ios .message-bubble { + min-width: 48px; +} +.ios .message-image { + margin: var(--f7-message-bubble-padding-vertical) calc(-1 * var(--f7-message-bubble-padding-horizontal)); +} +.ios .message-image:first-child { + margin-top: calc(-1 * var(--f7-message-bubble-padding-vertical)); +} +.ios .message-image:first-child img { + border-top-left-radius: var(--f7-message-bubble-border-radius); + border-top-right-radius: var(--f7-message-bubble-border-radius); +} +.ios .message-image:last-child { + margin-bottom: calc(-1 * var(--f7-message-bubble-padding-vertical)); +} +.ios .message-image:last-child img { + border-bottom-left-radius: var(--f7-message-bubble-border-radius); + border-bottom-right-radius: var(--f7-message-bubble-border-radius); +} +.ios .message-text-header { + margin-bottom: 3px; +} +.ios .message-text-footer { + margin-top: 3px; +} +.ios .message-received { + margin-left: calc(10px + var(--f7-safe-area-left)); +} +.ios .message-received .message-header, +.ios .message-received .message-footer, +.ios .message-received .message-name { + margin-left: var(--f7-message-bubble-padding-horizontal); +} +.ios .message-received .message-bubble { + padding-left: calc(var(--f7-message-bubble-padding-horizontal) + 6px); + -webkit-mask-box-image: url("data:image/svg+xml;charset=utf-8,") 50% 42% 46% 56%; +} +.ios .message-received .message-image { + margin-left: calc(-1 * (var(--f7-message-bubble-padding-horizontal) + 6px)); +} +.ios .message-received.message-tail:not(.message-typing) .message-bubble { + -webkit-mask-box-image: url("data:image/svg+xml;charset=utf-8,") 50% 42% 46% 56%; +} +.ios .message-received.message-tail:not(.message-typing) .message-bubble .message-image:last-child img { + border-bottom-left-radius: 0px; +} +.ios .message-sent { + margin-right: calc(10px + var(--f7-safe-area-right)); +} +.ios .message-sent .message-header, +.ios .message-sent .message-footer, +.ios .message-sent .message-name { + margin-right: var(--f7-message-bubble-padding-horizontal); +} +.ios .message-sent .message-bubble { + padding-right: calc(var(--f7-message-bubble-padding-horizontal) + 6px); + -webkit-mask-box-image: url("data:image/svg+xml;charset=utf-8,") 50% 56% 46% 42%; +} +.ios .message-sent .message-image { + margin-right: calc(-1 * (var(--f7-message-bubble-padding-horizontal) + 6px)); +} +.ios .message-sent.message-tail .message-bubble { + -webkit-mask-box-image: url("data:image/svg+xml;charset=utf-8,") 50% 56% 46% 42%; +} +.ios .message-sent.message-tail .message-bubble .message-image:last-child img { + border-bottom-right-radius: 0px; +} +.ios .message + .message:not(.message-first) { + margin-top: 1px; +} +.ios .message-received.message-typing .message-content:after, +.ios .message-received.message-typing .message-content:before { + content: ''; + position: absolute; + background: var(--f7-message-received-bg-color); + border-radius: 50%; +} +.ios .message-received.message-typing .message-content:after { + width: 11px; + height: 11px; + left: 4px; + bottom: 0px; +} +.ios .message-received.message-typing .message-content:before { + width: 6px; + height: 6px; + left: -1px; + bottom: -4px; +} +.ios .message-typing-indicator > div { + width: 9px; + height: 9px; +} +.ios .message-typing-indicator > div + div { + margin-left: 4px; +} +.ios .message-typing-indicator > div:nth-child(1) { + animation: ios-message-typing-indicator 900ms infinite; +} +.ios .message-typing-indicator > div:nth-child(2) { + animation: ios-message-typing-indicator 900ms 150ms infinite; +} +.ios .message-typing-indicator > div:nth-child(3) { + animation: ios-message-typing-indicator 900ms 300ms infinite; +} +@keyframes ios-message-typing-indicator { + 0% { + opacity: 0.35; + } + 25% { + opacity: 0.2; + } + 50% { + opacity: 0.2; + } +} +.md .messages-title b, +.md .message-header b, +.md .message-footer b, +.md .message-name b { + font-weight: 500; +} +.md .message-header, +.md .message-name { + margin-bottom: 2px; +} +.md .message-footer { + margin-top: 2px; +} +.md .message-text-header { + margin-bottom: 4px; +} +.md .message-text-footer { + margin-top: 4px; +} +.md .message-received.message-tail .message-bubble:before, +.md .message-sent.message-tail .message-bubble:before { + position: absolute; + content: ''; + bottom: 0; + width: 0; + height: 0; +} +.md .message-received { + margin-left: calc(8px + var(--f7-safe-area-left)); +} +.md .message-received .message-avatar + .message-content { + margin-left: var(--f7-message-bubble-padding-horizontal); +} +.md .message-received.message-tail .message-bubble:before { + border-left: 8px solid transparent; + border-right: 0 solid transparent; + border-bottom: 8px solid var(--f7-message-received-bg-color); + right: 100%; +} +.md .message-sent { + margin-right: calc(8px + var(--f7-safe-area-right)); +} +.md .message-sent .message-avatar + .message-content { + margin-right: var(--f7-message-bubble-padding-horizontal); +} +.md .message-sent.message-tail .message-bubble:before { + border-left: 0 solid transparent; + border-right: 8px solid transparent; + border-bottom: 8px solid var(--f7-message-sent-bg-color, var(--f7-theme-color)); + left: 100%; +} +.md .message + .message:not(.message-first) { + margin-top: 8px; +} +.md .message-typing-indicator > div { + width: 6px; + height: 6px; +} +.md .message-typing-indicator > div + div { + margin-left: 6px; +} +.md .message-typing-indicator > div:nth-child(1) { + animation: md-message-typing-indicator 900ms infinite; +} +.md .message-typing-indicator > div:nth-child(2) { + animation: md-message-typing-indicator 900ms 150ms infinite; +} +.md .message-typing-indicator > div:nth-child(3) { + animation: md-message-typing-indicator 900ms 300ms infinite; +} +@keyframes md-message-typing-indicator { + 0% { + transform: translateY(0%); + } + 25% { + transform: translateY(-5px); + } + 50% { + transform: translateY(0%); + } +} +.aurora .messages-title b, +.aurora .message-header b, +.aurora .message-footer b, +.aurora .message-name b { + font-weight: 500; +} +.aurora .message-header, +.aurora .message-name { + margin-bottom: 2px; +} +.aurora .message-footer { + margin-top: 2px; +} +.aurora .message-text-header { + margin-bottom: 2px; +} +.aurora .message-text-footer { + margin-top: 2px; +} +.aurora .message-received.message-tail .message-bubble:before, +.aurora .message-sent.message-tail .message-bubble:before { + position: absolute; + content: ''; + bottom: 0; + width: 0; + height: 0; +} +.aurora .message-image { + margin: var(--f7-message-bubble-padding-vertical) calc(-1 * var(--f7-message-bubble-padding-horizontal) + 4px); +} +.aurora .message-image:first-child { + margin-top: calc(-1 * var(--f7-message-bubble-padding-vertical) + 4px); +} +.aurora .message-image:first-child img { + border-top-left-radius: var(--f7-message-bubble-border-radius); + border-top-right-radius: var(--f7-message-bubble-border-radius); +} +.aurora .message-image:last-child { + margin-bottom: calc(-1 * var(--f7-message-bubble-padding-vertical) + 4px); +} +.aurora .message-image:last-child img { + border-bottom-left-radius: var(--f7-message-bubble-border-radius); + border-bottom-right-radius: var(--f7-message-bubble-border-radius); +} +.aurora .message-received { + margin-left: calc(16px + var(--f7-safe-area-left)); +} +.aurora .message-received .message-avatar + .message-content { + margin-left: 5px; +} +.aurora .message-received .message-header, +.aurora .message-received .message-footer, +.aurora .message-received .message-name { + margin-left: var(--f7-message-bubble-padding-horizontal); +} +.aurora .message-received.message-tail .message-bubble:before { + border-left: 6px solid transparent; + border-right: 0 solid transparent; + border-bottom: 6px solid var(--f7-message-received-bg-color); + right: 100%; + transform: translate(2px, 0px) rotate(-15deg); + transform-origin: right bottom; +} +.aurora .message-sent { + margin-right: calc(16px + var(--f7-safe-area-right)); +} +.aurora .message-sent .message-avatar + .message-content { + margin-right: 5px; +} +.aurora .message-sent .message-header, +.aurora .message-sent .message-footer, +.aurora .message-sent .message-name { + margin-right: var(--f7-message-bubble-padding-horizontal); +} +.aurora .message-sent.message-tail .message-bubble:before { + border-left: 0 solid transparent; + border-right: 6px solid transparent; + border-bottom: 6px solid var(--f7-message-sent-bg-color, var(--f7-theme-color)); + left: 100%; + transform: translate(-2px, 0px) rotate(15deg); + transform-origin: left bottom; +} +.aurora .message + .message:not(.message-first) { + margin-top: 5px; +} +.aurora .message-typing-indicator > div { + width: 6px; + height: 6px; +} +.aurora .message-typing-indicator > div + div { + margin-left: 4px; +} +.aurora .message-typing-indicator > div:nth-child(1) { + animation: aurora-message-typing-indicator 900ms infinite; +} +.aurora .message-typing-indicator > div:nth-child(2) { + animation: aurora-message-typing-indicator 900ms 150ms infinite; +} +.aurora .message-typing-indicator > div:nth-child(3) { + animation: aurora-message-typing-indicator 900ms 300ms infinite; +} +@keyframes aurora-message-typing-indicator { + 0% { + transform: translateY(0%); + } + 50% { + transform: translateY(-5px); + } + 100% { + transform: translateY(0%); + } +} +/* === Messagebar === */ +:root { + --f7-messagebar-shadow-image: none; + --f7-messagebar-textarea-bg-color: transparent; + --f7-messagebar-attachments-height: 155px; + --f7-messagebar-attachment-height: 155px; + --f7-messagebar-attachment-landscape-height: 120px; + --f7-messagebar-sheet-height: 252px; + --f7-messagebar-sheet-landscape-height: 192px; + /* + --f7-messagebar-inner-padding-left: var(--f7-toolbar-inner-padding-left); + --f7-messagebar-inner-padding-right: var(--f7-toolbar-inner-padding-right); + */ + --f7-messagebar-bg-color: #fff; + --f7-messagebar-bg-color-rgb: 255, 255, 255; +} +:root .theme-dark, +:root.theme-dark { + --f7-messagebar-bg-color: var(--f7-bars-bg-color); + --f7-messagebar-bg-color-rgb: var(--f7-bars-bg-color-rgb); +} +.ios { + --f7-messagebar-height: 44px; + --f7-messagebar-font-size: 17px; + /* + --f7-messagebar-link-color: var(--f7-theme-color); + */ + --f7-messagebar-border-color: transparent; + --f7-messagebar-textarea-border-radius: 17px; + --f7-messagebar-textarea-padding: 6px 16px; + --f7-messagebar-textarea-height: 34px; + --f7-messagebar-textarea-font-size: 17px; + --f7-messagebar-textarea-line-height: 20px; + --f7-messagebar-sheet-bg-color: #d1d5da; + --f7-messagebar-attachment-border-radius: 12px; + --f7-messagebar-textarea-text-color: #000; + --f7-messagebar-textarea-border: 1px solid #c8c8cd; + --f7-messagebar-attachments-border-color: #c8c8cd; +} +.ios .theme-dark, +.ios.theme-dark { + --f7-messagebar-textarea-text-color: #fff; + --f7-messagebar-textarea-border: 1px solid var(--f7-bars-border-color); + --f7-messagebar-attachments-border-color: var(--f7-bars-border-color); +} +.md { + --f7-messagebar-height: 48px; + --f7-messagebar-font-size: 16px; + --f7-messagebar-textarea-border-radius: 0px; + --f7-messagebar-textarea-padding: 5px 8px; + --f7-messagebar-textarea-height: 32px; + --f7-messagebar-textarea-font-size: 16px; + --f7-messagebar-textarea-line-height: 22px; + --f7-messagebar-textarea-border: 1px solid transparent; + --f7-messagebar-sheet-bg-color: #fff; + --f7-messagebar-attachment-border-radius: 4px; + --f7-messagebar-link-color: #333; + --f7-messagebar-border-color: #d1d1d1; + --f7-messagebar-textarea-text-color: #333; + --f7-messagebar-attachments-border-color: #ddd; +} +.md .theme-dark, +.md.theme-dark { + --f7-messagebar-border-color: transparent; + --f7-messagebar-link-color: rgba(255, 255, 255, 0.87); + --f7-messagebar-textarea-text-color: rgba(255, 255, 255, 0.87); + --f7-messagebar-attachments-border-color: rgba(255, 255, 255, 0.2); +} +.aurora { + --f7-messagebar-height: 38px; + --f7-messagebar-font-size: 14px; + /* + --f7-messagebar-link-color: var(--f7-theme-color); + */ + --f7-messagebar-border-color: transparent; + --f7-messagebar-textarea-border-radius: 12px; + --f7-messagebar-textarea-padding: 3px 10px; + --f7-messagebar-textarea-height: 24px; + --f7-messagebar-textarea-font-size: 13px; + --f7-messagebar-textarea-line-height: 16px; + --f7-messagebar-sheet-bg-color: #fff; + --f7-messagebar-attachment-border-radius: 12px; + --f7-messagebar-textarea-text-color: #000; + --f7-messagebar-textarea-border: 1px solid #c8c8cd; + --f7-messagebar-attachments-border-color: #c8c8cd; +} +.aurora .theme-dark, +.aurora.theme-dark { + --f7-messagebar-textarea-text-color: #fff; + --f7-messagebar-textarea-border: 1px solid var(--f7-bars-border-color); + --f7-messagebar-attachments-border-color: var(--f7-bars-border-color); +} +.messagebar { + transform: translate3d(0, 0, 0); + background: var(--f7-messagebar-bg-color); + height: auto; + min-height: var(--f7-messagebar-height); + font-size: var(--f7-messagebar-font-size); + padding-bottom: var(--f7-safe-area-bottom); + bottom: 0; +} +.messagebar:before { + content: ''; + position: absolute; + background-color: var(--f7-messagebar-border-color); + display: block; + z-index: 15; + top: 0; + right: auto; + bottom: auto; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 0%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +.messagebar:after { + content: ''; + position: absolute; + right: 0; + width: 100%; + bottom: 100%; + height: 8px; + top: auto; + pointer-events: none; + background: var(--f7-messagebar-shadow-image); + transform: translate3d(0, 0, 0); +} +@supports ((-webkit-backdrop-filter: blur(20px)) or (backdrop-filter: blur(20px))) { + .ios-translucent-bars .messagebar { + background-color: rgba(var(--f7-messagebar-bg-color-rgb), var(--f7-bars-translucent-opacity)); + -webkit-backdrop-filter: saturate(180%) blur(var(--f7-bars-translucent-blur)); + backdrop-filter: saturate(180%) blur(var(--f7-bars-translucent-blur)); + } +} +.messagebar.no-hairline:before, +.messagebar.no-border:before { + display: none !important; +} +.messagebar.no-shadow:after, +.messagebar.toolbar-hidden:after { + display: none !important; +} +.messagebar .toolbar-inner { + top: auto; + position: relative; + height: auto; + bottom: auto; + padding-left: calc(var(--f7-messagebar-inner-padding-left, var(--f7-toolbar-inner-padding-left)) + var(--f7-safe-area-left)); + padding-right: calc(var(--f7-messagebar-inner-padding-right, var(--f7-toolbar-inner-padding-right)) + var(--f7-safe-area-right)); +} +.messagebar.messagebar-sheet-visible > .toolbar-inner { + bottom: 0; +} +.messagebar .messagebar-area { + width: 100%; + flex-shrink: 1; + overflow: hidden; + position: relative; +} +.messagebar textarea { + width: 100%; + flex-shrink: 1; + background-color: var(--f7-messagebar-textarea-bg-color); + border-radius: var(--f7-messagebar-textarea-border-radius); + padding: var(--f7-messagebar-textarea-padding); + height: var(--f7-messagebar-textarea-height); + color: var(--f7-messagebar-textarea-text-color); + font-size: var(--f7-messagebar-textarea-font-size); + line-height: var(--f7-messagebar-textarea-line-height); + border: var(--f7-messagebar-textarea-border); +} +.messagebar a.link { + align-self: flex-end; + flex-shrink: 0; + color: var(--f7-messagebar-link-color, var(--f7-theme-color)); +} +.messagebar-attachments { + width: 100%; + overflow: auto; + -webkit-overflow-scrolling: touch; + font-size: 0; + white-space: nowrap; + box-sizing: border-box; + position: relative; +} +.messagebar:not(.messagebar-attachments-visible) .messagebar-attachments { + display: none; +} +.messagebar-attachment { + background-size: cover; + background-position: center; + background-repeat: no-repeat; + display: inline-block; + vertical-align: middle; + white-space: normal; + height: var(--f7-messagebar-attachment-height); + position: relative; + border-radius: var(--f7-messagebar-attachment-border-radius); +} +@media (orientation: landscape) { + .messagebar-attachment { + height: var(--f7-messagebar-attachment-landscape-height); + } +} +.messagebar-attachment img { + display: block; + width: auto; + height: 100%; + border-radius: var(--f7-messagebar-attachment-border-radius); +} +.messagebar-attachment + .messagebar-attachment { + margin-left: 8px; +} +.messagebar-sheet { + overflow: auto; + -webkit-overflow-scrolling: touch; + display: flex; + flex-wrap: wrap; + flex-direction: column; + align-content: flex-start; + height: var(--f7-messagebar-sheet-height); + background-color: var(--f7-messagebar-sheet-bg-color); + padding-left: var(--f7-safe-area-left); + padding-right: var(--f7-safe-area-right); +} +@media (orientation: landscape) { + .messagebar-sheet { + height: var(--f7-messagebar-sheet-landscape-height); + } +} +.messagebar-sheet-image, +.messagebar-sheet-item { + box-sizing: border-box; + flex-shrink: 0; + margin-top: 1px; + position: relative; + overflow: hidden; + height: calc((var(--f7-messagebar-sheet-height) - 2px) / 2); + width: calc((var(--f7-messagebar-sheet-height) - 2px) / 2); + margin-left: 1px; +} +@media (orientation: landscape) { + .messagebar-sheet-image, + .messagebar-sheet-item { + width: calc((var(--f7-messagebar-sheet-landscape-height) - 2px) / 2); + height: calc((var(--f7-messagebar-sheet-landscape-height) - 2px) / 2); + } +} +.messagebar-sheet-image .icon-checkbox, +.messagebar-sheet-item .icon-checkbox, +.messagebar-sheet-image .icon-radio, +.messagebar-sheet-item .icon-radio { + position: absolute; + right: 8px; + bottom: 8px; +} +.messagebar-sheet-image { + background-size: cover; + background-position: center; + background-repeat: no-repeat; +} +.messagebar-attachment-delete { + display: block; + position: absolute; + border-radius: 50%; + box-sizing: border-box; + cursor: pointer; + box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.2); +} +.messagebar-attachment-delete:after, +.messagebar-attachment-delete:before { + position: absolute; + content: ''; + left: 50%; + top: 50%; +} +.messagebar-attachment-delete:after { + transform: rotate(45deg); +} +.messagebar-attachment-delete:before { + transform: rotate(-45deg); +} +.messagebar:not(.messagebar-sheet-visible) .messagebar-sheet { + display: none; +} +.messagebar ~ * { + --f7-page-toolbar-bottom-offset: var(--f7-messagebar-height); +} +.ios .messagebar a.link.icon-only:first-child { + margin-left: -8px; +} +.ios .messagebar a.link.icon-only:last-child { + margin-right: -8px; +} +.ios .messagebar a.link:not(.icon-only) + .messagebar-area { + margin-left: 8px; +} +.ios .messagebar .messagebar-area + a.link:not(.icon-only) { + margin-left: 8px; +} +.ios .messagebar-area { + margin-top: 5px; + margin-bottom: 5px; +} +.ios .messagebar-attachments { + padding: 5px; + border-radius: var(--f7-messagebar-textarea-border-radius) var(--f7-messagebar-textarea-border-radius) 0 0; + border: 1px solid var(--f7-messagebar-attachments-border-color); + border-bottom: none; +} +.ios .messagebar-attachments-visible .messagebar-attachments + textarea { + border-radius: 0 0 var(--f7-messagebar-textarea-border-radius) var(--f7-messagebar-textarea-border-radius); +} +.ios .messagebar-attachment { + font-size: 14px; +} +.ios .messagebar-attachment-delete { + right: 5px; + top: 5px; + width: 20px; + height: 20px; + background: #7d7e80; + border: 2px solid #fff; +} +.ios .messagebar-attachment-delete:after, +.ios .messagebar-attachment-delete:before { + width: 10px; + height: 2px; + background: #fff; + margin-left: -5px; + margin-top: -1px; +} +.md .messagebar-attachments { + padding: 8px; + border-bottom: 1px solid var(--f7-messagebar-attachments-border-color); +} +.md .messagebar-area { + margin-top: 8px; + margin-bottom: 8px; +} +.md .messagebar-sheet-image .icon-checkbox, +.md .messagebar-sheet-item .icon-checkbox { + border-color: #fff; + background: rgba(255, 255, 255, 0.25); + box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.5); +} +.md .messagebar-attachment-delete { + right: 8px; + top: 8px; + width: 24px; + height: 24px; + background-color: var(--f7-theme-color); + border-radius: 4px; +} +.md .messagebar-attachment-delete:after, +.md .messagebar-attachment-delete:before { + width: 14px; + height: 2px; + background: #fff; + margin-left: -7px; + margin-top: -1px; +} +.aurora .messagebar a.link + .messagebar-area { + margin-left: 5px; +} +.aurora .messagebar .messagebar-area + a.link { + margin-left: 5px; +} +.aurora .messagebar-area { + margin-top: 5px; + margin-bottom: 5px; +} +.aurora .messagebar-sheet-image .icon-checkbox, +.aurora .messagebar-sheet-item .icon-checkbox { + background: rgba(255, 255, 255, 0.25); +} +.aurora .messagebar-attachments { + padding: 5px; + border-radius: var(--f7-messagebar-textarea-border-radius) var(--f7-messagebar-textarea-border-radius) 0 0; + border: 1px solid var(--f7-messagebar-attachments-border-color); + border-bottom: none; +} +.aurora .messagebar-attachments-visible .messagebar-attachments + textarea { + border-radius: 0 0 var(--f7-messagebar-textarea-border-radius) var(--f7-messagebar-textarea-border-radius); +} +.aurora .messagebar-attachment { + font-size: 14px; +} +.aurora .messagebar-attachment-delete { + right: 5px; + top: 5px; + width: 14px; + height: 14px; + background: #808080; +} +.aurora .messagebar-attachment-delete:after, +.aurora .messagebar-attachment-delete:before { + width: 8px; + height: 1px; + background: #fff; + margin-left: -4px; + margin-top: -1px; +} +/* === Swiper === */ +@font-face { + font-family: 'swiper-icons'; + src: url("data:application/font-woff;charset=utf-8;base64, d09GRgABAAAAAAZgABAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAGRAAAABoAAAAci6qHkUdERUYAAAWgAAAAIwAAACQAYABXR1BPUwAABhQAAAAuAAAANuAY7+xHU1VCAAAFxAAAAFAAAABm2fPczU9TLzIAAAHcAAAASgAAAGBP9V5RY21hcAAAAkQAAACIAAABYt6F0cBjdnQgAAACzAAAAAQAAAAEABEBRGdhc3AAAAWYAAAACAAAAAj//wADZ2x5ZgAAAywAAADMAAAD2MHtryVoZWFkAAABbAAAADAAAAA2E2+eoWhoZWEAAAGcAAAAHwAAACQC9gDzaG10eAAAAigAAAAZAAAArgJkABFsb2NhAAAC0AAAAFoAAABaFQAUGG1heHAAAAG8AAAAHwAAACAAcABAbmFtZQAAA/gAAAE5AAACXvFdBwlwb3N0AAAFNAAAAGIAAACE5s74hXjaY2BkYGAAYpf5Hu/j+W2+MnAzMYDAzaX6QjD6/4//Bxj5GA8AuRwMYGkAPywL13jaY2BkYGA88P8Agx4j+/8fQDYfA1AEBWgDAIB2BOoAeNpjYGRgYNBh4GdgYgABEMnIABJzYNADCQAACWgAsQB42mNgYfzCOIGBlYGB0YcxjYGBwR1Kf2WQZGhhYGBiYGVmgAFGBiQQkOaawtDAoMBQxXjg/wEGPcYDDA4wNUA2CCgwsAAAO4EL6gAAeNpj2M0gyAACqxgGNWBkZ2D4/wMA+xkDdgAAAHjaY2BgYGaAYBkGRgYQiAHyGMF8FgYHIM3DwMHABGQrMOgyWDLEM1T9/w8UBfEMgLzE////P/5//f/V/xv+r4eaAAeMbAxwIUYmIMHEgKYAYjUcsDAwsLKxc3BycfPw8jEQA/gZBASFhEVExcQlJKWkZWTl5BUUlZRVVNXUNTQZBgMAAMR+E+gAEQFEAAAAKgAqACoANAA+AEgAUgBcAGYAcAB6AIQAjgCYAKIArAC2AMAAygDUAN4A6ADyAPwBBgEQARoBJAEuATgBQgFMAVYBYAFqAXQBfgGIAZIBnAGmAbIBzgHsAAB42u2NMQ6CUAyGW568x9AneYYgm4MJbhKFaExIOAVX8ApewSt4Bic4AfeAid3VOBixDxfPYEza5O+Xfi04YADggiUIULCuEJK8VhO4bSvpdnktHI5QCYtdi2sl8ZnXaHlqUrNKzdKcT8cjlq+rwZSvIVczNiezsfnP/uznmfPFBNODM2K7MTQ45YEAZqGP81AmGGcF3iPqOop0r1SPTaTbVkfUe4HXj97wYE+yNwWYxwWu4v1ugWHgo3S1XdZEVqWM7ET0cfnLGxWfkgR42o2PvWrDMBSFj/IHLaF0zKjRgdiVMwScNRAoWUoH78Y2icB/yIY09An6AH2Bdu/UB+yxopYshQiEvnvu0dURgDt8QeC8PDw7Fpji3fEA4z/PEJ6YOB5hKh4dj3EvXhxPqH/SKUY3rJ7srZ4FZnh1PMAtPhwP6fl2PMJMPDgeQ4rY8YT6Gzao0eAEA409DuggmTnFnOcSCiEiLMgxCiTI6Cq5DZUd3Qmp10vO0LaLTd2cjN4fOumlc7lUYbSQcZFkutRG7g6JKZKy0RmdLY680CDnEJ+UMkpFFe1RN7nxdVpXrC4aTtnaurOnYercZg2YVmLN/d/gczfEimrE/fs/bOuq29Zmn8tloORaXgZgGa78yO9/cnXm2BpaGvq25Dv9S4E9+5SIc9PqupJKhYFSSl47+Qcr1mYNAAAAeNptw0cKwkAAAMDZJA8Q7OUJvkLsPfZ6zFVERPy8qHh2YER+3i/BP83vIBLLySsoKimrqKqpa2hp6+jq6RsYGhmbmJqZSy0sraxtbO3sHRydnEMU4uR6yx7JJXveP7WrDycAAAAAAAH//wACeNpjYGRgYOABYhkgZgJCZgZNBkYGLQZtIJsFLMYAAAw3ALgAeNolizEKgDAQBCchRbC2sFER0YD6qVQiBCv/H9ezGI6Z5XBAw8CBK/m5iQQVauVbXLnOrMZv2oLdKFa8Pjuru2hJzGabmOSLzNMzvutpB3N42mNgZGBg4GKQYzBhYMxJLMlj4GBgAYow/P/PAJJhLM6sSoWKfWCAAwDAjgbRAAB42mNgYGBkAIIbCZo5IPrmUn0hGA0AO8EFTQAA") format("woff"); + font-weight: 400; + font-style: normal; +} +:root { + --swiper-theme-color: #007aff; +} +.swiper-container { + margin-left: auto; + margin-right: auto; + position: relative; + overflow: hidden; + list-style: none; + padding: 0; + /* Fix of Webkit flickering */ + z-index: 1; +} +.swiper-container-vertical > .swiper-wrapper { + flex-direction: column; +} +.swiper-wrapper { + position: relative; + width: 100%; + height: 100%; + z-index: 1; + display: flex; + transition-property: transform; + box-sizing: content-box; +} +.swiper-container-android .swiper-slide, +.swiper-wrapper { + transform: translate3d(0px, 0, 0); +} +.swiper-container-multirow > .swiper-wrapper { + flex-wrap: wrap; +} +.swiper-container-multirow-column > .swiper-wrapper { + flex-wrap: wrap; + flex-direction: column; +} +.swiper-container-free-mode > .swiper-wrapper { + transition-timing-function: ease-out; + margin: 0 auto; +} +.swiper-slide { + flex-shrink: 0; + width: 100%; + height: 100%; + position: relative; + transition-property: transform; +} +.swiper-slide-invisible-blank { + visibility: hidden; +} +/* Auto Height */ +.swiper-container-autoheight, +.swiper-container-autoheight .swiper-slide { + height: auto; +} +.swiper-container-autoheight .swiper-wrapper { + align-items: flex-start; + transition-property: transform, height; +} +/* 3D Effects */ +.swiper-container-3d { + perspective: 1200px; +} +.swiper-container-3d .swiper-wrapper, +.swiper-container-3d .swiper-slide, +.swiper-container-3d .swiper-slide-shadow-left, +.swiper-container-3d .swiper-slide-shadow-right, +.swiper-container-3d .swiper-slide-shadow-top, +.swiper-container-3d .swiper-slide-shadow-bottom, +.swiper-container-3d .swiper-cube-shadow { + transform-style: preserve-3d; +} +.swiper-container-3d .swiper-slide-shadow-left, +.swiper-container-3d .swiper-slide-shadow-right, +.swiper-container-3d .swiper-slide-shadow-top, +.swiper-container-3d .swiper-slide-shadow-bottom { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + pointer-events: none; + z-index: 10; +} +.swiper-container-3d .swiper-slide-shadow-left { + background-image: linear-gradient(to left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); +} +.swiper-container-3d .swiper-slide-shadow-right { + background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); +} +.swiper-container-3d .swiper-slide-shadow-top { + background-image: linear-gradient(to top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); +} +.swiper-container-3d .swiper-slide-shadow-bottom { + background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); +} +/* CSS Mode */ +.swiper-container-css-mode > .swiper-wrapper { + overflow: auto; + scrollbar-width: none; + /* For Firefox */ + -ms-overflow-style: none; + /* For Internet Explorer and Edge */ +} +.swiper-container-css-mode > .swiper-wrapper::-webkit-scrollbar { + display: none; +} +.swiper-container-css-mode > .swiper-wrapper > .swiper-slide { + scroll-snap-align: start start; +} +.swiper-container-horizontal.swiper-container-css-mode > .swiper-wrapper { + scroll-snap-type: x mandatory; +} +.swiper-container-vertical.swiper-container-css-mode > .swiper-wrapper { + scroll-snap-type: y mandatory; +} +/* a11y */ +.swiper-container .swiper-notification { + position: absolute; + left: 0; + top: 0; + pointer-events: none; + opacity: 0; + z-index: -1000; +} +.swiper-container-cube { + overflow: visible; +} +.swiper-container-cube .swiper-slide { + pointer-events: none; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + z-index: 1; + visibility: hidden; + transform-origin: 0 0; + width: 100%; + height: 100%; +} +.swiper-container-cube .swiper-slide .swiper-slide { + pointer-events: none; +} +.swiper-container-cube.swiper-container-rtl .swiper-slide { + transform-origin: 100% 0; +} +.swiper-container-cube .swiper-slide-active, +.swiper-container-cube .swiper-slide-active .swiper-slide-active { + pointer-events: auto; +} +.swiper-container-cube .swiper-slide-active, +.swiper-container-cube .swiper-slide-next, +.swiper-container-cube .swiper-slide-prev, +.swiper-container-cube .swiper-slide-next + .swiper-slide { + pointer-events: auto; + visibility: visible; +} +.swiper-container-cube .swiper-slide-shadow-top, +.swiper-container-cube .swiper-slide-shadow-bottom, +.swiper-container-cube .swiper-slide-shadow-left, +.swiper-container-cube .swiper-slide-shadow-right { + z-index: 0; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; +} +.swiper-container-cube .swiper-cube-shadow { + position: absolute; + left: 0; + bottom: 0px; + width: 100%; + height: 100%; + background: #000; + opacity: 0.6; + -webkit-filter: blur(50px); + filter: blur(50px); + z-index: 0; +} +.swiper-container-fade.swiper-container-free-mode .swiper-slide { + transition-timing-function: ease-out; +} +.swiper-container-fade .swiper-slide { + pointer-events: none; + transition-property: opacity; +} +.swiper-container-fade .swiper-slide .swiper-slide { + pointer-events: none; +} +.swiper-container-fade .swiper-slide-active, +.swiper-container-fade .swiper-slide-active .swiper-slide-active { + pointer-events: auto; +} +.swiper-container-flip { + overflow: visible; +} +.swiper-container-flip .swiper-slide { + pointer-events: none; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + z-index: 1; +} +.swiper-container-flip .swiper-slide .swiper-slide { + pointer-events: none; +} +.swiper-container-flip .swiper-slide-active, +.swiper-container-flip .swiper-slide-active .swiper-slide-active { + pointer-events: auto; +} +.swiper-container-flip .swiper-slide-shadow-top, +.swiper-container-flip .swiper-slide-shadow-bottom, +.swiper-container-flip .swiper-slide-shadow-left, +.swiper-container-flip .swiper-slide-shadow-right { + z-index: 0; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; +} +/* Preloader */ +:root { + /* + --swiper-preloader-color: var(--swiper-theme-color); + */ +} +.swiper-lazy-preloader { + width: 42px; + height: 42px; + position: absolute; + left: 50%; + top: 50%; + margin-left: -21px; + margin-top: -21px; + z-index: 10; + transform-origin: 50%; + animation: swiper-preloader-spin 1s infinite linear; + box-sizing: border-box; + border: 4px solid var(--swiper-preloader-color, var(--swiper-theme-color)); + border-radius: 50%; + border-top-color: transparent; +} +.swiper-lazy-preloader-white { + --swiper-preloader-color: #fff; +} +.swiper-lazy-preloader-black { + --swiper-preloader-color: #000; +} +@keyframes swiper-preloader-spin { + 100% { + transform: rotate(360deg); + } +} +:root { + --swiper-navigation-size: 44px; + /* + --swiper-navigation-color: var(--swiper-theme-color); + */ +} +.swiper-button-prev, +.swiper-button-next { + position: absolute; + top: 50%; + width: calc(var(--swiper-navigation-size) / 44 * 27); + height: var(--swiper-navigation-size); + margin-top: calc(-1 * var(--swiper-navigation-size) / 2); + z-index: 10; + cursor: pointer; + display: flex; + align-items: center; + justify-content: center; + color: var(--swiper-navigation-color, var(--swiper-theme-color)); +} +.swiper-button-prev.swiper-button-disabled, +.swiper-button-next.swiper-button-disabled { + opacity: 0.35; + cursor: auto; + pointer-events: none; +} +.swiper-button-prev:after, +.swiper-button-next:after { + font-family: swiper-icons; + font-size: var(--swiper-navigation-size); + text-transform: none !important; + letter-spacing: 0; + text-transform: none; + font-variant: initial; + line-height: 1; +} +.swiper-button-prev, +.swiper-container-rtl .swiper-button-next { + left: 10px; + right: auto; +} +.swiper-button-prev:after, +.swiper-container-rtl .swiper-button-next:after { + content: 'prev'; +} +.swiper-button-next, +.swiper-container-rtl .swiper-button-prev { + right: 10px; + left: auto; +} +.swiper-button-next:after, +.swiper-container-rtl .swiper-button-prev:after { + content: 'next'; +} +.swiper-button-lock { + display: none; +} +:root { + /* + --swiper-pagination-color: var(--swiper-theme-color); + */ +} +.swiper-pagination { + position: absolute; + text-align: center; + transition: 300ms opacity; + transform: translate3d(0, 0, 0); + z-index: 10; +} +.swiper-pagination.swiper-pagination-hidden { + opacity: 0; +} +/* Common Styles */ +.swiper-pagination-fraction, +.swiper-pagination-custom, +.swiper-container-horizontal > .swiper-pagination-bullets { + bottom: 10px; + left: 0; + width: 100%; +} +/* Bullets */ +.swiper-pagination-bullets-dynamic { + overflow: hidden; + font-size: 0; +} +.swiper-pagination-bullets-dynamic .swiper-pagination-bullet { + transform: scale(0.33); + position: relative; +} +.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active { + transform: scale(1); +} +.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main { + transform: scale(1); +} +.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev { + transform: scale(0.66); +} +.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev { + transform: scale(0.33); +} +.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next { + transform: scale(0.66); +} +.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next { + transform: scale(0.33); +} +.swiper-pagination-bullet { + width: 8px; + height: 8px; + display: inline-block; + border-radius: 100%; + background: #000; + opacity: 0.2; +} +button.swiper-pagination-bullet { + border: none; + margin: 0; + padding: 0; + box-shadow: none; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; +} +.swiper-pagination-clickable .swiper-pagination-bullet { + cursor: pointer; +} +.swiper-pagination-bullet-active { + opacity: 1; + background: var(--swiper-pagination-color, var(--swiper-theme-color)); +} +.swiper-container-vertical > .swiper-pagination-bullets { + right: 10px; + top: 50%; + transform: translate3d(0px, -50%, 0); +} +.swiper-container-vertical > .swiper-pagination-bullets .swiper-pagination-bullet { + margin: 6px 0; + display: block; +} +.swiper-container-vertical > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic { + top: 50%; + transform: translateY(-50%); + width: 8px; +} +.swiper-container-vertical > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet { + display: inline-block; + transition: 200ms transform, 200ms top; +} +.swiper-container-horizontal > .swiper-pagination-bullets .swiper-pagination-bullet { + margin: 0 4px; +} +.swiper-container-horizontal > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic { + left: 50%; + transform: translateX(-50%); + white-space: nowrap; +} +.swiper-container-horizontal > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet { + transition: 200ms transform, 200ms left; +} +.swiper-container-horizontal.swiper-container-rtl > .swiper-pagination-bullets-dynamic .swiper-pagination-bullet { + transition: 200ms transform, 200ms right; +} +/* Progress */ +.swiper-pagination-progressbar { + background: rgba(0, 0, 0, 0.25); + position: absolute; +} +.swiper-pagination-progressbar .swiper-pagination-progressbar-fill { + background: var(--swiper-pagination-color, var(--swiper-theme-color)); + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + transform: scale(0); + transform-origin: left top; +} +.swiper-container-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill { + transform-origin: right top; +} +.swiper-container-horizontal > .swiper-pagination-progressbar, +.swiper-container-vertical > .swiper-pagination-progressbar.swiper-pagination-progressbar-opposite { + width: 100%; + height: 4px; + left: 0; + top: 0; +} +.swiper-container-vertical > .swiper-pagination-progressbar, +.swiper-container-horizontal > .swiper-pagination-progressbar.swiper-pagination-progressbar-opposite { + width: 4px; + height: 100%; + left: 0; + top: 0; +} +.swiper-pagination-lock { + display: none; +} +/* Scrollbar */ +.swiper-scrollbar { + border-radius: 10px; + position: relative; + -ms-touch-action: none; + background: rgba(0, 0, 0, 0.1); +} +.swiper-container-horizontal > .swiper-scrollbar { + position: absolute; + left: 1%; + bottom: 3px; + z-index: 50; + height: 5px; + width: 98%; +} +.swiper-container-vertical > .swiper-scrollbar { + position: absolute; + right: 3px; + top: 1%; + z-index: 50; + width: 5px; + height: 98%; +} +.swiper-scrollbar-drag { + height: 100%; + width: 100%; + position: relative; + background: rgba(0, 0, 0, 0.5); + border-radius: 10px; + left: 0; + top: 0; +} +.swiper-scrollbar-cursor-drag { + cursor: move; +} +.swiper-scrollbar-lock { + display: none; +} +.swiper-zoom-container { + width: 100%; + height: 100%; + display: flex; + justify-content: center; + align-items: center; + text-align: center; +} +.swiper-zoom-container > img, +.swiper-zoom-container > svg, +.swiper-zoom-container > canvas { + max-width: 100%; + max-height: 100%; + object-fit: contain; +} +.swiper-slide-zoomed { + cursor: move; +} +:root { + --swiper-theme-color: var(--f7-theme-color); +} +/* === Photo Browser === */ +:root { + --f7-photobrowser-bg-color: #fff; + --f7-photobrowser-bars-bg-image: none; + /* + --f7-photobrowser-bars-bg-color: rgba(var(--f7-bars-bg-color-rgb), 0.95); + --f7-photobrowser-bars-text-color: var(--f7-bars-text-color); + --f7-photobrowser-bars-link-color: var(--f7-bars-link-color); + */ + --f7-photobrowser-caption-font-size: 14px; + --f7-photobrowser-caption-light-text-color: #000; + --f7-photobrowser-caption-light-bg-color: rgba(255, 255, 255, 0.8); + --f7-photobrowser-caption-dark-text-color: #fff; + --f7-photobrowser-caption-dark-bg-color: rgba(0, 0, 0, 0.8); + --f7-photobrowser-exposed-bg-color: #000; + --f7-photobrowser-dark-bg-color: #000; + --f7-photobrowser-dark-bars-bg-color: rgba(27, 27, 27, 0.8); + --f7-photobrowser-dark-bars-text-color: #fff; + --f7-photobrowser-dark-bars-link-color: #fff; +} +.photo-browser { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + z-index: 400; +} +.photo-browser-standalone.modal-in { + transition-duration: 0ms; + animation: photo-browser-in 400ms; +} +.photo-browser-standalone.modal-out { + transition-duration: 0ms; + animation: photo-browser-out 400ms !important; +} +.photo-browser-standalone.modal-out.swipe-close-to-bottom, +.photo-browser-standalone.modal-out.swipe-close-to-top { + animation: none !important; +} +.photo-browser-standalone.photo-browser-transitioning { + transition: 400ms; + transition-property: transform; + animation: none !important; +} +.photo-browser-popup.modal-out.swipe-close-to-bottom, +.photo-browser-popup.modal-out.swipe-close-to-top { + transition-duration: 300ms; +} +.photo-browser-popup.modal-out.swipe-close-to-bottom { + transform: translate3d(0, 100vh, 0); +} +.photo-browser-popup.modal-out.swipe-close-to-top { + transform: translate3d(0, -100vh, 0); +} +.photo-browser-page { + background: none; +} +.photo-browser-page .toolbar { + transform: none; +} +.photo-browser-popup { + background: none; +} +.photo-browser-of { + margin: 0 5px; +} +.photo-browser-captions { + pointer-events: none; + position: absolute; + left: 0; + width: 100%; + bottom: var(--f7-safe-area-bottom); + z-index: 10; + opacity: 1; + transition: 400ms; +} +.photo-browser-captions.photo-browser-captions-exposed { + opacity: 0; +} +.toolbar ~ .photo-browser-captions { + bottom: calc(var(--f7-toolbar-height) + var(--f7-safe-area-bottom)); + transform: translate3d(0, 0px, 0); +} +.toolbar ~ .photo-browser-captions.photo-browser-captions-exposed { + transform: translate3d(0, 0px, 0); +} +.photo-browser-caption { + box-sizing: border-box; + transition: 300ms; + position: absolute; + bottom: 0; + left: 0; + opacity: 0; + padding: 4px 5px; + width: 100%; + text-align: center; + font-size: var(--f7-photobrowser-caption-font-size); +} +.photo-browser-caption:empty { + display: none; +} +.photo-browser-caption.photo-browser-caption-active { + opacity: 1; +} +.photo-browser-captions-light .photo-browser-caption { + color: var(--f7-photobrowser-caption-light-text-color); + background: var(--f7-photobrowser-caption-light-bg-color); +} +.photo-browser-captions-dark .photo-browser-caption { + color: var(--f7-photobrowser-caption-dark-text-color); + background: var(--f7-photobrowser-caption-dark-bg-color); +} +.photo-browser-swiper-container { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + overflow: hidden; + background: var(--f7-photobrowser-bg-color); + transition: 400ms; + transition-property: background-color; +} +.photo-browser-prev.swiper-button-disabled, +.photo-browser-next.swiper-button-disabled { + opacity: 0.3; + pointer-events: none; +} +.photo-browser-slide { + width: 100%; + height: 100%; + position: relative; + overflow: hidden; + display: flex; + justify-content: center; + align-items: center; + flex-shrink: 0; + box-sizing: border-box; +} +.photo-browser-slide span.swiper-zoom-container { + display: none; +} +.photo-browser-slide img { + width: auto; + height: auto; + max-width: 100%; + max-height: 100%; + display: none; +} +.photo-browser-slide.swiper-slide-active span.swiper-zoom-container, +.photo-browser-slide.swiper-slide-next span.swiper-zoom-container, +.photo-browser-slide.swiper-slide-prev span.swiper-zoom-container { + display: flex; +} +.photo-browser-slide.swiper-slide-active img, +.photo-browser-slide.swiper-slide-next img, +.photo-browser-slide.swiper-slide-prev img { + display: inline; +} +.photo-browser-slide.swiper-slide-active.photo-browser-slide-lazy .preloader, +.photo-browser-slide.swiper-slide-next.photo-browser-slide-lazy .preloader, +.photo-browser-slide.swiper-slide-prev.photo-browser-slide-lazy .preloader { + display: block; +} +.photo-browser-slide iframe { + width: 100%; + height: 100%; +} +.photo-browser-slide .preloader { + display: none; + position: absolute; + width: 42px; + height: 42px; + margin-left: -21px; + margin-top: -21px; + left: 50%; + top: 50%; +} +.photo-browser-page .navbar-bg, +.navbar-photo-browser .navbar-bg, +.photo-browser-page .toolbar { + background-color: var(--f7-photobrowser-bars-bg-color, rgba(var(--f7-bars-bg-color-rgb), 0.95)); + background-image: var(--f7-photobrowser-bars-bg-image); +} +.photo-browser-page .navbar, +.photo-browser-page .toolbar { + transition: 400ms; + color: var(--f7-photobrowser-bars-text-color, var(--f7-bars-text-color)); +} +.photo-browser-page .navbar a, +.photo-browser-page .toolbar a { + color: var(--f7-photobrowser-bars-link-color, var(--f7-bars-link-color, var(--f7-theme-color))); +} +.photo-browser-exposed .navbar, +.photo-browser-exposed .toolbar { + opacity: 0; + visibility: hidden; + pointer-events: none; +} +.photo-browser-exposed .toolbar ~ .photo-browser-captions { + transform: translate3d(0, var(--f7-toolbar-height), 0); +} +.photo-browser-exposed .photo-browser-swiper-container { + background: var(--f7-photobrowser-exposed-bg-color); +} +.photo-browser-exposed .photo-browser-caption { + color: var(--f7-photobrowser-caption-dark-text-color); + background: var(--f7-photobrowser-caption-dark-bg-color); +} +.view.with-photo-browser-page-exposed .navbar { + opacity: 0; + pointer-events: none; +} +.photo-browser-page-dark .navbar-bg, +.navbar-photo-browser-dark .navbar-bg, +.photo-browser-page-dark .toolbar { + background: var(--f7-photobrowser-dark-bars-bg-color); +} +.photo-browser-page-dark .navbar-bg:before, +.navbar-photo-browser-dark .navbar-bg:before, +.photo-browser-page-dark .toolbar:before, +.photo-browser-page-dark .navbar-bg:after, +.navbar-photo-browser-dark .navbar-bg:after, +.photo-browser-page-dark .toolbar:after { + display: none !important; +} +.navbar-photo-browser-dark, +.photo-browser-dark .navbar, +.photo-browser-dark .toolbar, +.photo-browser-dark-page .navbar, +.photo-browser-dark-page .toolbar { + --f7-touch-ripple-color: var(--f7-touch-ripple-white); + --f7-link-highlight-color: var(--f7-link-highlight-white); + color: var(--f7-photobrowser-dark-bars-text-color); +} +.navbar-photo-browser-dark a, +.photo-browser-dark .navbar a, +.photo-browser-dark .toolbar a, +.photo-browser-dark-page .navbar a, +.photo-browser-dark-page .toolbar a { + color: var(--f7-photobrowser-dark-bars-link-color); +} +.photo-browser-dark .photo-browser-swiper-container, +.photo-browser-page-dark .photo-browser-swiper-container { + background: var(--f7-photobrowser-dark-bg-color); +} +@keyframes photo-browser-in { + 0% { + transform: translate3d(0, 0, 0) scale(0.5); + opacity: 0; + } + 50% { + transform: translate3d(0, 0, 0) scale(1.05); + opacity: 1; + } + 100% { + transform: translate3d(0, 0, 0) scale(1); + opacity: 1; + } +} +@keyframes photo-browser-out { + 0% { + transform: translate3d(0, 0, 0) scale(1); + opacity: 1; + } + 50% { + transform: translate3d(0, 0, 0) scale(1.05); + opacity: 1; + } + 100% { + transform: translate3d(0, 0, 0) scale(0.5); + opacity: 0; + } +} +/* === Notifications === */ +:root { + --f7-notification-max-width: 568px; + --f7-notification-subtitle-text-transform: none; + --f7-notification-subtitle-line-height: 1.35; + --f7-notification-text-text-transform: none; + --f7-notification-text-font-weight: 400; +} +:root .theme-dark, +:root.theme-dark { + --f7-notification-subtitle-color: #fff; +} +.ios { + --f7-notification-margin: 8px; + --f7-notification-padding: 10px; + --f7-notification-border-radius: 12px; + --f7-notification-box-shadow: 0px 5px 25px -10px rgba(0, 0, 0, 0.7); + --f7-notification-icon-size: 20px; + --f7-notification-title-font-size: 13px; + --f7-notification-title-text-transform: uppercase; + --f7-notification-title-line-height: 1.4; + --f7-notification-title-font-weight: 400; + --f7-notification-title-letter-spacing: 0.02em; + --f7-notification-title-right-font-size: 13px; + --f7-notification-subtitle-font-size: 15px; + --f7-notification-subtitle-font-weight: 600; + --f7-notification-text-font-size: 15px; + --f7-notification-text-line-height: 1.2; + --f7-notification-bg-color: rgba(250, 250, 250, 0.95); + --f7-notification-bg-color-rgb: 255, 255, 255; + --f7-notification-title-color: #000; + --f7-notification-title-right-color: rgba(0, 0, 0, 0.45); + --f7-notification-subtitle-color: #000; + --f7-notification-text-color: #000; +} +.ios .theme-dark, +.ios.theme-dark { + --f7-notification-bg-color: rgba(30, 30, 30, 0.95); + --f7-notification-bg-color-rgb: 30, 30, 30; + --f7-notification-title-color: #fff; + --f7-notification-text-color: #fff; + --f7-notification-title-right-color: rgba(255, 255, 255, 0.55); +} +.md { + --f7-notification-margin: 0px; + --f7-notification-padding: 16px; + --f7-notification-border-radius: 0px; + --f7-notification-box-shadow: 0 2px 4px rgba(0, 0, 0, 0.22), 0 1px 2px rgba(0, 0, 0, 0.24); + --f7-notification-icon-size: 16px; + --f7-notification-title-color: var(--f7-theme-color); + --f7-notification-title-font-size: 12px; + --f7-notification-title-text-transform: none; + --f7-notification-title-line-height: 1; + --f7-notification-title-font-weight: 400; + --f7-notification-title-right-font-size: 12px; + --f7-notification-subtitle-font-size: 14px; + --f7-notification-subtitle-font-weight: 400; + --f7-notification-text-font-size: 14px; + --f7-notification-text-line-height: 1.35; + --f7-notification-bg-color: #fff; + --f7-notification-title-right-color: rgba(0, 0, 0, 0.54); + --f7-notification-subtitle-color: #212121; + --f7-notification-text-color: rgba(0, 0, 0, 0.54); +} +.md .theme-dark, +.md.theme-dark { + --f7-notification-bg-color: #242424; + --f7-notification-title-right-color: rgba(255, 255, 255, 0.54); + --f7-notification-text-color: rgba(255, 255, 255, 0.54); +} +.aurora { + --f7-notification-margin: 10px; + --f7-notification-padding: 10px; + --f7-notification-border-radius: 4px; + --f7-notification-box-shadow: 0px 5px 25px -10px rgba(0, 0, 0, 0.7); + --f7-notification-icon-size: 18px; + --f7-notification-title-font-size: 13px; + --f7-notification-title-text-transform: uppercase; + --f7-notification-title-line-height: 1.4; + --f7-notification-title-font-weight: 500; + --f7-notification-title-letter-spacing: 0.02em; + --f7-notification-title-right-font-size: 13px; + --f7-notification-subtitle-font-size: 12px; + --f7-notification-subtitle-font-weight: 600; + --f7-notification-text-font-size: 12px; + --f7-notification-text-line-height: 1.2; + --f7-notification-bg-color: #fff; + --f7-notification-title-color: #000; + --f7-notification-title-right-color: rgba(255, 255, 255, 0.6); + --f7-notification-subtitle-color: #000; + --f7-notification-text-color: #000; +} +.aurora .theme-dark, +.aurora.theme-dark { + --f7-notification-bg-color: #242424; + --f7-notification-title-color: #fff; + --f7-notification-text-color: #fff; + --f7-notification-title-right-color: rgba(255, 255, 255, 0.54); +} +.notification { + --f7-link-highlight-color: var(--f7-link-highlight-black); + --f7-touch-ripple-color: var(--f7-touch-ripple-black); + position: absolute; + left: var(--f7-notification-margin); + top: var(--f7-notification-margin); + width: calc(100% - var(--f7-notification-margin) * 2); + z-index: 20000; + font-size: 14px; + margin: 0; + border: none; + display: none; + box-sizing: border-box; + transition-property: transform; + direction: ltr; + max-width: var(--f7-notification-max-width); + padding: var(--f7-notification-padding); + border-radius: var(--f7-notification-border-radius); + box-shadow: var(--f7-notification-box-shadow); + background: var(--f7-notification-bg-color); + margin-top: var(--f7-safe-area-top); +} +@supports ((-webkit-backdrop-filter: blur(20px)) or (backdrop-filter: blur(20px))) { + .ios-translucent-modals .notification { + background-color: rgba(var(--f7-notification-bg-color-rgb), 0.8); + -webkit-backdrop-filter: saturate(180%) blur(20px); + backdrop-filter: saturate(180%) blur(20px); + } +} +@media (min-width: 568px) { + .notification { + left: 50%; + width: var(--f7-notification-max-width); + margin-left: calc(-1 * var(--f7-notification-max-width) / 2); + } +} +.notification-title { + color: var(--f7-notification-title-color, var(--f7-theme-color)); + font-size: var(--f7-notification-title-font-size); + text-transform: var(--f7-notification-title-text-transform); + line-height: var(--f7-notification-title-line-height); + font-weight: var(--f7-notification-title-font-weight); + letter-spacing: var(--f7-notification-title-letter-spacing); +} +.notification-subtitle { + color: var(--f7-notification-subtitle-color); + font-size: var(--f7-notification-subtitle-font-size); + text-transform: var(--f7-notification-subtitle-text-transform); + line-height: var(--f7-notification-subtitle-line-height); + font-weight: var(--f7-notification-subtitle-font-weight); +} +.notification-text { + color: var(--f7-notification-text-color); + font-size: var(--f7-notification-text-font-size); + text-transform: var(--f7-notification-text-text-transform); + line-height: var(--f7-notification-text-line-height); + font-weight: var(--f7-notification-text-font-weight); +} +.notification-title-right-text { + color: var(--f7-notification-title-right-color); + font-size: var(--f7-notification-title-right-font-size); +} +.notification-icon { + font-size: 0; + line-height: var(--f7-notification-icon-size); +} +.notification-icon i, +.notification-icon { + width: var(--f7-notification-icon-size) !important; + height: var(--f7-notification-icon-size) !important; +} +.notification-icon i { + font-size: var(--f7-notification-icon-size); +} +.notification-icon img { + height: var(--f7-notification-icon-size); +} +.notification-header { + display: flex; + justify-content: flex-start; + align-items: center; +} +.notification-close-button { + margin-left: auto; + cursor: pointer; + position: relative; +} +.notification-close-button:after { + font-family: 'framework7-core-icons'; + font-weight: normal; + font-style: normal; + line-height: 1; + letter-spacing: normal; + text-transform: none; + white-space: nowrap; + word-wrap: normal; + direction: ltr; + -webkit-font-smoothing: antialiased; + text-rendering: optimizeLegibility; + -moz-osx-font-smoothing: grayscale; + font-feature-settings: "liga"; + display: block; + width: 100%; + height: 100%; + font-size: 20px; + position: absolute; + left: 50%; + top: 50%; + text-align: center; +} +.ios .notification { + transition-duration: 450ms; + transform: translate3d(0%, -200%, 0); +} +.ios .notification.modal-in { + transform: translate3d(0%, 0%, 0); + opacity: 1; +} +.ios .notification.modal-out { + transform: translate3d(0%, -200%, 0); +} +.ios .notification-icon { + margin-right: 8px; +} +.ios .notification-header + .notification-content { + margin-top: 10px; +} +.ios .notification-title-right-text { + margin-right: 6px; + margin-left: auto; +} +.ios .notification-title-right-text + .notification-close-button { + margin-left: 10px; +} +.ios .notification-close-button { + font-size: 14px; + width: 20px; + height: 20px; + opacity: 0.3; + transition-duration: 300ms; +} +.ios .notification-close-button.active-state { + transition-duration: 0ms; + opacity: 0.1; +} +.ios .notification-close-button:after { + color: #000; + content: 'notification_close_ios'; + font-size: 0.65em; + line-height: 44px; + width: 44px; + height: 44px; + margin-left: -22px; + margin-top: -22px; +} +.ios .theme-dark .notification-close-button:after, +.ios.theme-dark .notification-close-button:after { + color: #fff; +} +.md .notification { + transform: translate3d(0, -150%, 0); +} +.md .notification.modal-in { + transition-duration: 0ms; + animation: notification-md-in 400ms ease-out; + transform: translate3d(0, 0%, 0); +} +.md .notification.modal-in.notification-transitioning { + transition-duration: 200ms; +} +.md .notification.modal-out { + animation: none; + transition-duration: 200ms; + transition-timing-function: ease-in; + transform: translate3d(0, -150%, 0); +} +.md .notification-icon { + margin-right: 8px; +} +.md .notification-subtitle + .notification-text { + margin-top: 2px; +} +.md .notification-header + .notification-content { + margin-top: 6px; +} +.md .notification-title-right-text { + margin-left: 4px; +} +.md .notification-title-right-text:before { + content: ''; + width: 3px; + height: 3px; + border-radius: 50%; + display: inline-block; + vertical-align: middle; + margin-right: 4px; + background: var(--f7-notification-title-right-color); +} +.md .notification-close-button { + width: 16px; + height: 16px; + transition-duration: 300ms; +} +.md .notification-close-button:before { + content: ''; + width: 152%; + height: 152%; + position: absolute; + left: -26%; + top: -26%; + background-image: radial-gradient(circle at center, var(--f7-link-highlight-color) 66%, rgba(255, 255, 255, 0) 66%); + background-repeat: no-repeat; + background-position: center; + background-size: 100% 100%; + opacity: 0; + pointer-events: none; + transition-duration: 600ms; +} +.md .notification-close-button.active-state:before { + opacity: 1; + transition-duration: 150ms; +} +.md .notification-close-button:before, +.md .notification-close-button:after { + width: 48px; + height: 48px; + left: 50%; + top: 50%; + margin-left: -24px; + margin-top: -24px; +} +.md .notification-close-button:after { + color: #737373; + content: 'delete_md'; + line-height: 48px; + font-size: 14px; +} +@keyframes notification-md-in { + 0% { + transform: translate3d(0, -150%, 0); + } + 50% { + transform: translate3d(0, 10%, 0); + } + 100% { + transform: translate3d(0, 0%, 0); + } +} +.aurora .notification { + transition-duration: 450ms; + transform: translate3d(0%, -200%, 0); +} +.aurora .notification.modal-in { + transform: translate3d(0%, 0%, 0); + opacity: 1; +} +.aurora .notification.modal-out { + transform: translate3d(0%, -200%, 0); +} +.aurora .notification-icon { + margin-right: 10px; +} +.aurora .notification-header + .notification-content { + margin-top: 10px; +} +.aurora .notification-title-right-text { + margin-right: 0px; + margin-left: auto; +} +.aurora .notification-title-right-text + .notification-close-button { + margin-left: 10px; +} +.aurora .notification-close-button { + font-size: 14px; + width: 16px; + height: 16px; + opacity: 0.4; + transition-duration: 300ms; +} +.aurora .notification-close-button.active-state { + transition-duration: 0ms; + opacity: 0.6; +} +.aurora .notification-close-button:after { + color: #000; + content: 'notification_close_ios'; + font-size: 0.5em; + line-height: 38px; + width: 38px; + height: 38px; + margin-left: -19px; + margin-top: -19px; +} +.aurora .theme-dark .notification-close-button:after, +.aurora.theme-dark .notification-close-button:after { + color: #fff; +} +/* === Autocomplete === */ +:root { + --f7-autocomplete-dropdown-placeholder-color: #a9a9a9; + --f7-autocomplete-dropdown-preloader-size: 20px; + /* + --f7-autocomplete-dropdown-selected-bg-color: rgba(var(--f7-theme-color-rgb), 0.2); + */ + --f7-autocomplete-dropdown-bg-color: #fff; +} +:root .theme-dark, +:root.theme-dark { + --f7-autocomplete-dropdown-bg-color: #1c1c1d; +} +.ios { + --f7-autocomplete-dropdown-box-shadow: 0px 3px 3px rgba(0, 0, 0, 0.2); + --f7-autocomplete-dropdown-text-matching-font-weight: 600; + --f7-autocomplete-dropdown-font-size: var(--f7-list-font-size); + --f7-autocomplete-dropdown-text-color: #000; + --f7-autocomplete-dropdown-text-matching-color: #000; +} +.ios .theme-dark, +.ios.theme-dark { + --f7-autocomplete-dropdown-text-color: #fff; + --f7-autocomplete-dropdown-text-matching-color: #fff; +} +.md { + --f7-autocomplete-dropdown-box-shadow: 0 2px 2px rgba(0, 0, 0, 0.25); + --f7-autocomplete-dropdown-text-matching-font-weight: 400; + --f7-autocomplete-dropdown-font-size: var(--f7-list-font-size); + --f7-autocomplete-dropdown-text-color: rgba(0, 0, 0, 0.54); + --f7-autocomplete-dropdown-text-matching-color: #212121; +} +.md .theme-dark, +.md.theme-dark { + --f7-autocomplete-dropdown-text-color: rgba(255, 255, 255, 0.54); + --f7-autocomplete-dropdown-text-matching-color: rgba(255, 255, 255, 0.87); +} +.aurora { + --f7-autocomplete-dropdown-box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.2); + --f7-autocomplete-dropdown-text-matching-font-weight: 700; + --f7-autocomplete-dropdown-font-size: 13px; + --f7-autocomplete-dropdown-text-color: #000; + --f7-autocomplete-dropdown-text-matching-color: #000; +} +.aurora .theme-dark, +.aurora.theme-dark { + --f7-autocomplete-dropdown-text-color: #fff; + --f7-autocomplete-dropdown-text-matching-color: #fff; +} +.autocomplete-page .autocomplete-found { + display: block; +} +.autocomplete-page .autocomplete-not-found { + display: none; +} +.autocomplete-page .autocomplete-values { + display: block; +} +.autocomplete-page .list ul:empty { + display: none; +} +.autocomplete-preloader:not(.autocomplete-preloader-visible) { + visibility: hidden; +} +.autocomplete-preloader:not(.autocomplete-preloader-visible), +.autocomplete-preloader:not(.autocomplete-preloader-visible) * { + animation: none; +} +.autocomplete-dropdown { + background: var(--f7-autocomplete-dropdown-bg-color); + box-shadow: var(--f7-autocomplete-dropdown-box-shadow); + box-sizing: border-box; + position: absolute; + z-index: 500; + width: 100%; + left: 0; +} +.autocomplete-dropdown .autocomplete-dropdown-inner { + position: relative; + overflow: auto; + -webkit-overflow-scrolling: touch; + height: 100%; + z-index: 1; +} +.autocomplete-dropdown .autocomplete-preloader { + display: none; + position: absolute; + bottom: 100%; + width: var(--f7-autocomplete-dropdown-preloader-size); + height: var(--f7-autocomplete-dropdown-preloader-size); +} +.autocomplete-dropdown .autocomplete-preloader-visible { + display: block; +} +.autocomplete-dropdown .autocomplete-dropdown-placeholder { + color: var(--f7-autocomplete-dropdown-placeholder-color); +} +.autocomplete-dropdown .list { + margin: 0; + color: var(--f7-autocomplete-dropdown-text-color); + font-size: var(--f7-autocomplete-dropdown-font-size); +} +.autocomplete-dropdown .list b { + color: var(--f7-autocomplete-dropdown-text-matching-color); + font-weight: var(--f7-autocomplete-dropdown-text-matching-font-weight); +} +.autocomplete-dropdown .list ul { + background: none !important; +} +.autocomplete-dropdown .list ul:before, +.autocomplete-dropdown .list ul:after { + display: none !important; +} +.autocomplete-dropdown .autocomplete-dropdown-selected { + background: var(--f7-autocomplete-dropdown-selected-bg-color, rgba(var(--f7-theme-color-rgb), 0.2)); +} +.searchbar-input-wrap .autocomplete-dropdown { + background-color: var(--f7-searchbar-input-bg-color, var(--f7-searchbar-bg-color)); + border-radius: var(--f7-searchbar-input-border-radius); +} +.searchbar-input-wrap .autocomplete-dropdown .autocomplete-dropdown-placeholder { + color: var(--f7-searchbar-placeholder-color); +} +.searchbar-input-wrap .autocomplete-dropdown li:last-child { + border-radius: 0 0 var(--f7-searchbar-input-border-radius) var(--f7-searchbar-input-border-radius); + position: relative; + overflow: hidden; +} +.searchbar-input-wrap .autocomplete-dropdown .item-content { + padding-left: calc(var(--f7-searchbar-input-padding-horizontal) + var(--f7-searchbar-input-extra-padding-left)); +} +.list .item-content-dropdown-expanded .item-title.item-label { + width: 0; + flex-shrink: 10; + overflow: hidden; +} +.list .item-content-dropdown-expanded .item-title.item-label + .item-input-wrap { + margin-left: 0; +} +.list .item-content-dropdown-expanded .item-input-wrap { + width: 100%; +} +.ios .autocomplete-dropdown .autocomplete-preloader { + right: 16px; + margin-bottom: 12px; +} +.ios .searchbar-input-wrap .autocomplete-dropdown { + margin-top: calc(-1 * var(--f7-searchbar-input-height)); + top: 100%; + z-index: 20; +} +.ios .searchbar-input-wrap .autocomplete-dropdown .autocomplete-dropdown-inner { + padding-top: var(--f7-searchbar-input-height); +} +.md .autocomplete-page .navbar .autocomplete-preloader { + margin-right: 8px; +} +.md .autocomplete-popup .navbar .autocomplete-preloader { + margin-left: 8px; + margin-right: 16px; +} +.md .autocomplete-dropdown .autocomplete-preloader { + right: 16px; + margin-bottom: 8px; +} +.md .autocomplete-dropdown .autocomplete-preloader .preloader-inner-gap, +.md .autocomplete-dropdown .autocomplete-preloader .preloader-inner-half-circle { + border-width: 3px; +} +.aurora .autocomplete-dropdown .autocomplete-preloader { + right: 16px; + margin-bottom: 2px; +} +.aurora .searchbar-input-wrap .autocomplete-dropdown { + margin-top: calc(-1 * var(--f7-searchbar-input-height)); + top: 100%; + z-index: 20; +} +.aurora .searchbar-input-wrap .autocomplete-dropdown .autocomplete-dropdown-inner { + padding-top: var(--f7-searchbar-input-height); +} +/* === Tooltip === */ +:root { + --f7-tooltip-bg-color: rgba(0, 0, 0, 0.87); + --f7-tooltip-text-color: #fff; + --f7-tooltip-border-radius: 4px; + --f7-tooltip-padding: 8px 16px; + --f7-tooltip-font-size: 14px; + --f7-tooltip-font-weight: 500; + --f7-tooltip-desktop-padding: 6px 8px; + --f7-tooltip-desktop-font-size: 12px; +} +.tooltip { + position: absolute; + z-index: 20000; + background: var(--f7-tooltip-bg-color); + border-radius: var(--f7-tooltip-border-radius); + padding: var(--f7-tooltip-padding); + color: var(--f7-tooltip-text-color); + font-size: var(--f7-tooltip-font-size); + font-weight: var(--f7-tooltip-font-weight); + box-sizing: border-box; + line-height: 1.2; + opacity: 0; + transform: scale(0.9); + transition-duration: 150ms; + transition-property: opacity, transform; + z-index: 99000; +} +.tooltip.tooltip-in { + transform: scale(1); + opacity: 1; +} +.tooltip.tooltip-out { + opacity: 0; + transform: scale(1); +} +.device-desktop .tooltip { + font-size: var(--f7-tooltip-desktop-font-size); + padding: var(--f7-tooltip-desktop-padding); +} +/* === Gauge === */ +.gauge { + position: relative; + text-align: center; + margin-left: auto; + margin-right: auto; + display: inline-block; +} +.gauge-svg, +.gauge svg { + max-width: 100%; + height: auto; +} +.gauge-svg circle, +.gauge svg circle, +.gauge-svg path, +.gauge svg path { + transition-duration: 400ms; +} +/* === Skeleton === */ +:root { + --f7-skeleton-color: #ccc; +} +.theme-dark { + --f7-skeleton-color: #515151; +} +.skeleton-text { + font-family: 'framework7-skeleton' !important; +} +.skeleton-text, +.skeleton-text * { + color: var(--f7-skeleton-color) !important; + font-weight: normal !important; + font-style: normal !important; + letter-spacing: -0.015em !important; +} +.skeleton-block { + height: 1em; + background: var(--f7-skeleton-color) !important; + width: 100%; +} +.skeleton-effect-fade { + animation: skeleton-effect-fade 1s infinite; +} +.skeleton-effect-blink { + -webkit-mask-image: linear-gradient(to right, transparent 0%, black 25%, black 75%, transparent 100%); + mask-image: linear-gradient(to right, transparent 0%, black 25%, black 75%, transparent 100%); + -webkit-mask-size: 200% 100%; + mask-size: 200% 100%; + -webkit-mask-repeat: repeat; + mask-repeat: repeat; + -webkit-mask-position: 50% top; + mask-position: 50% top; + animation: skeleton-effect-blink 1s infinite; +} +.skeleton-effect-pulse { + animation: skeleton-effect-pulse 1s infinite; +} +@keyframes skeleton-effect-fade { + 0% { + opacity: 1; + } + 50% { + opacity: 0.2; + } + 100% { + opacity: 1; + } +} +@keyframes skeleton-effect-blink { + 0% { + -webkit-mask-position: 50% top; + mask-position: 50% top; + } + 100% { + -webkit-mask-position: -150% top; + mask-position: -150% top; + } +} +@keyframes skeleton-effect-pulse { + 0% { + transform: scale(1); + } + 40% { + transform: scale(1); + } + 50% { + transform: scale(0.975); + } + 100% { + transform: scale(1); + } +} +/* === Menu === */ +:root { + --f7-menu-text-color: #fff; + --f7-menu-font-size: 16px; + --f7-menu-font-weight: 500; + --f7-menu-line-height: 1.2; + --f7-menu-bg-color: rgba(0, 0, 0, 0.9); + --f7-menu-item-pressed-bg-color: rgba(20, 20, 20, 0.9); + --f7-menu-item-padding-horizontal: 12px; + --f7-menu-item-spacing: 6px; + --f7-menu-item-height: 40px; + --f7-menu-item-dropdown-icon-color: rgba(255, 255, 255, 0.4); + --f7-menu-item-border-radius: 8px; + /* + --f7-menu-dropdown-pressed-bg-color: var(--f7-theme-color); + */ + --f7-menu-dropdown-item-height: 28px; + --f7-menu-dropdown-divider-color: rgba(255, 255, 255, 0.2); + --f7-menu-dropdown-padding-vertical: 6px; + /* + --f7-menu-dropdown-border-radius: var(--f7-menu-item-border-radius); + */ +} +.aurora { + --f7-menu-font-size: 13px; + --f7-menu-item-height: 28px; + --f7-menu-dropdown-item-height: 24px; + --f7-menu-item-border-radius: 5px; + --f7-menu-item-padding-horizontal: 10px; +} +.menu { + z-index: 1000; + position: relative; + transform: translate3d(0, 0, 0); + --f7-touch-ripple-color: var(--f7-touch-ripple-white); +} +.menu-inner { + display: flex; + justify-content: flex-start; + align-items: flex-start; + padding-left: var(--f7-menu-item-spacing); + padding-right: var(--f7-menu-item-spacing); +} +.menu-inner:after { + content: ''; + width: var(--f7-menu-item-spacing); + height: 100%; + flex-shrink: 0; +} +.menu-item { + height: var(--f7-menu-item-height); + min-width: var(--f7-menu-item-height); + flex-shrink: 0; + background: var(--f7-menu-bg-color); + color: var(--f7-menu-text-color); + border-radius: var(--f7-menu-item-border-radius); + position: relative; + box-sizing: border-box; + font-size: var(--f7-menu-font-size); + font-weight: var(--f7-menu-font-weight); + cursor: pointer; + margin-left: var(--f7-menu-item-spacing); +} +.menu-item:first-child { + margin-left: 0; +} +.menu-item.active-state:not(.menu-item-dropdown-opened) { + background-color: rgba(0, 0, 0, 0.7); +} +.menu-item.icon-only { + padding-left: 0; + padding-right: 0; +} +.menu-item-content { + display: flex; + justify-content: center; + align-items: center; + padding: 0 var(--f7-menu-item-padding-horizontal); + height: 100%; + box-sizing: border-box; + width: 100%; + overflow: hidden; + border-radius: var(--f7-menu-item-border-radius); + position: relative; +} +.menu-item-content.icon-only, +.icon-only .menu-item-content { + padding-left: 0; + padding-right: 0; +} +.menu-item-dropdown .menu-item-content:after { + content: ''; + position: absolute; + width: 20px; + height: 2px; + left: 50%; + transform: translateX(-50%); + bottom: 4px; + background: var(--f7-menu-item-dropdown-icon-color); + border-radius: 4px; +} +.menu-dropdown { + opacity: 0; + visibility: hidden; + pointer-events: none; + cursor: auto; + height: 10px; + background: var(--f7-menu-bg-color); + position: relative; +} +.menu-dropdown-content { + position: absolute; + top: 100%; + border-radius: var(--f7-menu-dropdown-border-radius, var(--f7-menu-item-border-radius)); + padding-top: var(--f7-menu-dropdown-padding-vertical); + padding-bottom: var(--f7-menu-dropdown-padding-vertical); + box-sizing: border-box; + background: var(--f7-menu-bg-color); + overflow: auto; + -webkit-overflow-scrolling: touch; + min-width: calc(100% + 24px); +} +.menu-dropdown-link, +.menu-dropdown-item { + display: flex; + justify-content: space-between; + align-items: center; + padding-left: var(--f7-menu-item-padding-horizontal); + padding-right: var(--f7-menu-item-padding-horizontal); + min-height: var(--f7-menu-dropdown-item-height); + line-height: var(--f7-menu-line-height); + font-size: var(--f7-menu-font-size); + color: var(--f7-menu-text-color); + font-weight: var(--f7-menu-font-weight); + white-space: nowrap; + min-width: 100px; +} +.menu-dropdown-link i, +.menu-dropdown-item i, +.menu-dropdown-link i.icon, +.menu-dropdown-item i.icon, +.menu-dropdown-link i.f7-icons, +.menu-dropdown-item i.f7-icons, +.menu-dropdown-link i.material-icons, +.menu-dropdown-item i.material-icons { + font-size: 20px; +} +.menu-dropdown-link.active-state { + background: var(--f7-menu-dropdown-pressed-bg-color, var(--f7-theme-color)); + color: var(--f7-menu-text-color); +} +.menu-dropdown-divider { + height: 1px; + margin-top: 2px; + margin-bottom: 2px; + background: var(--f7-menu-dropdown-divider-color); +} +.menu-item-dropdown-opened { + border-bottom-left-radius: 0px; + border-bottom-right-radius: 0px; +} +.menu-item-dropdown-opened .menu-item-content:after { + opacity: 0; +} +.menu-item-dropdown-opened .menu-dropdown { + opacity: 1; + visibility: visible; + pointer-events: auto; +} +.menu-item-dropdown-left .menu-dropdown:after, +.menu-item-dropdown-center .menu-dropdown:after, +.menu-dropdown-left:after, +.menu-dropdown-center:after { + content: ''; + position: absolute; + left: 100%; + bottom: 0; + width: var(--f7-menu-item-border-radius); + height: var(--f7-menu-item-border-radius); + background-image: radial-gradient(ellipse at 100% 0%, transparent 0%, transparent 70%, var(--f7-menu-bg-color) 72%); +} +.menu-item-dropdown-right .menu-dropdown:before, +.menu-item-dropdown-center .menu-dropdown:before, +.menu-dropdown-right:before, +.menu-dropdown-center:before { + content: ''; + position: absolute; + right: 100%; + bottom: 0; + width: var(--f7-menu-item-border-radius); + height: var(--f7-menu-item-border-radius); + background-image: radial-gradient(ellipse at 0% 0%, transparent 0%, transparent 70%, var(--f7-menu-bg-color) 72%); +} +.menu-item-dropdown-left .menu-dropdown-content, +.menu-dropdown-left .menu-dropdown-content { + left: 0; + border-top-left-radius: 0px; +} +.menu-item-dropdown-right .menu-dropdown-content, +.menu-dropdown-right .menu-dropdown-content { + right: 0; + border-top-right-radius: 0px; +} +.menu-item-dropdown-center .menu-dropdown-content, +.menu-dropdown-center .menu-dropdown-content { + left: 50%; + min-width: calc(100% + 24px + 24px); + transform: translateX(-50%); +} +/* === Color Picker === */ +:root { + --f7-color-picker-popover-width: 350px; + --f7-color-picker-slider-size: 6px; + --f7-color-picker-slider-knob-size: 16px; + --f7-color-picker-bar-size: 50px; + --f7-color-picker-bar-min-height: 260px; + --f7-color-picker-value-width: 64px; + --f7-color-picker-value-height: 32px; + --f7-color-picker-value-font-size: 16px; + --f7-color-picker-value-border-radius: 4px; + --f7-color-picker-hex-value-width: 84px; + --f7-color-picker-label-font-size: 14px; + --f7-color-picker-label-width: 10px; + --f7-color-picker-label-height: 14px; + --f7-color-picker-sb-spectrum-height: 260px; + --f7-color-picker-sb-spectrum-handle-size: 16px; + --f7-color-picker-wheel-width: 330px; + --f7-color-picker-palette-value-width: 36px; + --f7-color-picker-palette-value-height: 36px; + --f7-color-picker-initial-current-color-height: 40px; + --f7-color-picker-initial-current-color-border-radius: 4px; + --f7-color-picker-sheet-bg-color: #fff; + --f7-color-picker-popup-bg-color: #fff; + --f7-color-picker-value-bg-color: rgba(0, 0, 0, 0.05); + --f7-color-picker-group-bg-color: rgba(0, 0, 0, 0.05); + --f7-color-picker-group-value-bg-color: #fff; +} +:root .theme-dark, +:root.theme-dark { + --f7-color-picker-sheet-bg-color: #121212; + --f7-color-picker-popup-bg-color: #121212; + --f7-color-picker-value-bg-color: rgba(255, 255, 255, 0.1); + --f7-color-picker-group-bg-color: #000; + --f7-color-picker-group-value-bg-color: rgba(255, 255, 255, 0.12); +} +.color-picker { + overflow: hidden; + width: 100%; + display: flex; + flex-direction: column; +} +.color-picker.color-picker-inline, +.color-picker-popover .color-picker, +.color-picker-popup .color-picker { + position: relative; +} +.color-picker-sheet-modal { + background: var(--f7-color-picker-sheet-bg-color); +} +.color-picker-sheet-modal:before { + z-index: 600; +} +.color-picker-sheet-modal .sheet-modal-inner { + margin-bottom: var(--f7-safe-area-bottom); +} +.color-picker-popup .page { + background: var(--f7-color-picker-popup-bg-color); +} +.color-picker-popup .page-content { + padding-bottom: var(--f7-safe-area-bottom); +} +.color-picker-popover .color-picker, +.color-picker-popup .color-picker, +.color-picker-page .color-picker { + height: 100%; +} +.color-picker-popover .color-picker .toolbar, +.color-picker-popup .color-picker .toolbar, +.color-picker-page .color-picker .toolbar { + position: absolute; +} +.color-picker-popover { + width: var(--f7-color-picker-popover-width); + max-width: 90vw; + max-height: 80vh; +} +.color-picker-popover .color-picker { + max-height: 80vh; +} +.color-picker-popover .toolbar-top { + border-top-left-radius: var(--f7-popover-border-radius); + border-top-right-radius: var(--f7-popover-border-radius); +} +.color-picker-popover .color-picker-module-palette { + overflow: hidden; + flex-shrink: 0; +} +.color-picker-popover .color-picker-module-palette:first-child { + border-top-left-radius: var(--f7-popover-border-radius); + border-top-right-radius: var(--f7-popover-border-radius); +} +.color-picker-popover .color-picker-module-palette:last-child { + border-bottom-left-radius: var(--f7-popover-border-radius); + border-bottom-right-radius: var(--f7-popover-border-radius); +} +.color-picker-popover .color-picker-module-palette:first-child:last-child { + border-radius: var(--f7-popover-border-radius); +} +.color-picker-popover .toolbar ~ .page-content .color-picker-module-palette:first-child { + border-top-left-radius: 0; + border-top-right-radius: 0; +} +.color-picker-popup .page-content, +.color-picker-popover .page-content, +.color-picker-sheet-modal .page-content, +.color-picker-page .page-content { + display: flex; + justify-content: flex-start; + align-items: stretch; + flex-direction: column; + overflow-x: hidden; +} +.color-picker-module { + margin-top: 5px; +} +.color-picker-module:last-child { + margin-bottom: 5px; +} +.color-picker-module-sb-spectrum, +.color-picker-module-hs-spectrum { + margin-left: 10px; + margin-right: 10px; +} +.color-picker-module-sb-spectrum:first-child, +.color-picker-module-hs-spectrum:first-child { + margin-top: 10px; +} +.color-picker-module-sb-spectrum .color-picker-sb-spectrum, +.color-picker-module-hs-spectrum .color-picker-sb-spectrum, +.color-picker-module-sb-spectrum .color-picker-hs-spectrum, +.color-picker-module-hs-spectrum .color-picker-hs-spectrum { + border-radius: 4px; + height: var(--f7-color-picker-sb-spectrum-height); +} +.color-picker-sb-spectrum { + background-color: #000; + background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0) 0%, #000 100%), linear-gradient(to left, rgba(255, 255, 255, 0) 0%, #fff 100%); + position: relative; +} +.color-picker-hs-spectrum { + position: relative; + background-image: linear-gradient(to right, hsl(0, 100%, 50%), hsl(60, 100%, 50%), hsl(120, 100%, 50%), hsl(180, 100%, 50%), hsl(240, 100%, 50%), hsl(300, 100%, 50%), hsl(0, 100%, 50%)); +} +.color-picker-hs-spectrum:after { + content: ''; + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + background-image: linear-gradient(to bottom, rgba(255, 255, 255, 0), #ffffff); +} +.color-picker-sb-spectrum-handle, +.color-picker-hs-spectrum-handle { + width: 4px; + height: 4px; + position: absolute; + left: -2px; + top: -2px; + z-index: 1; +} +.color-picker-sb-spectrum-handle:after, +.color-picker-hs-spectrum-handle:after { + background-color: inherit; + content: ''; + position: absolute; + width: var(--f7-color-picker-sb-spectrum-handle-size); + height: var(--f7-color-picker-sb-spectrum-handle-size); + border: 1px solid #fff; + border-radius: 50%; + box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.5); + box-sizing: border-box; + left: 50%; + top: 50%; + transform: translate(-50%, -50%); + transition: 150ms; + transition-property: transform; + transform-origin: center; +} +.color-picker-sb-spectrum-handle.color-picker-sb-spectrum-handle-pressed:after, +.color-picker-hs-spectrum-handle.color-picker-sb-spectrum-handle-pressed:after, +.color-picker-sb-spectrum-handle.color-picker-hs-spectrum-handle-pressed:after, +.color-picker-hs-spectrum-handle.color-picker-hs-spectrum-handle-pressed:after { + transform: scale(1.5) translate(-33.333%, -33.333%); +} +.color-picker-module-wheel { + margin-left: 10px; + margin-right: 10px; +} +.color-picker-wheel { + position: relative; + width: var(--f7-color-picker-wheel-width); + max-width: 100%; + height: auto; + font-size: 0; + margin-left: auto; + margin-right: auto; +} +.color-picker-wheel svg { + width: 100%; + height: auto; +} +.color-picker-wheel .color-picker-wheel-handle { + width: calc(100% / 6); + height: calc(100% / 6); + position: absolute; + box-sizing: border-box; + border: 2px solid #fff; + box-shadow: 0px 0px 5px rgba(0, 0, 0, 0.5); + background: red; + border-radius: 50%; + left: 0; + top: 0; +} +.color-picker-wheel .color-picker-sb-spectrum { + width: 45%; + height: 45%; + left: 50%; + top: 50%; + transform: translate3d(-50%, -50%, 0); + position: absolute; +} +.color-picker-slider-wrap { + display: flex; + align-items: center; + margin-bottom: 2px; +} +.color-picker-slider-wrap + .color-picker-slider-wrap { + margin-top: 5px; +} +.color-picker-hex-wrap { + justify-content: space-between; + display: flex; + align-items: center; +} +.color-picker-slider-label, +.color-picker-hex-label { + font-size: var(--f7-color-picker-label-font-size); + width: var(--f7-color-picker-label-size); + flex-shrink: 0; + margin-right: 12px; +} +.color-picker-hex-label { + width: auto; +} +.color-picker-bar-value, +.color-picker-slider-value, +.color-picker-hex-value { + width: var(--f7-color-picker-value-width); + height: var(--f7-color-picker-value-height); + background: var(--f7-color-picker-value-bg-color); + border-radius: var(--f7-color-picker-value-border-radius); + text-align: center; + font-size: var(--f7-color-picker-value-font-size); + display: flex; + justify-content: center; + align-items: center; + flex-shrink: 0; + margin-left: 10px; +} +.color-picker-bar-value input, +.color-picker-slider-value input, +.color-picker-hex-value input { + width: 100%; + height: 100%; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + border: none; + outline: 0; + background: transparent; + color: inherit; + font-family: inherit; + font-size: inherit; + text-align: center; + display: block; + border-radius: 4px; +} +.color-picker-bar-value input::-webkit-inner-spin-button, +.color-picker-slider-value input::-webkit-inner-spin-button, +.color-picker-hex-value input::-webkit-inner-spin-button, +.color-picker-bar-value input::-webkit-outer-spin-button, +.color-picker-slider-value input::-webkit-outer-spin-button, +.color-picker-hex-value input::-webkit-outer-spin-button { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + margin: 0; + display: none; +} +.color-picker-hex-value { + width: var(--f7-color-picker-hex-value-width); +} +.color-picker-hex-value:first-child { + margin-left: auto; +} +.color-picker-slider { + --f7-range-bar-active-bg-color: transparent; + --f7-range-bar-size: var(--f7-color-picker-slider-size); + --f7-range-bar-border-radius: var(--f7-color-picker-slider-size); + --f7-range-knob-size: var(--f7-color-picker-slider-knob-size); + --f7-range-knob-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3); +} +.color-picker-slider .range-knob { + transition-duration: 200ms; + transition-property: transform; +} +.color-picker-slider .range-knob:after { + width: 30px; + height: 30px; + margin-left: -16px; + margin-top: -16px; +} +.color-picker-slider .range-knob-active-state .range-knob { + transform: scale(1.5); +} +.md .color-picker-slider.range-slider-min:not(.range-slider-dual) .range-knob { + background: var(--f7-range-knob-color) !important; + border: none; +} +.color-picker-module-rgb-bars { + display: flex; + justify-content: space-around; + justify-content: space-evenly; + align-items: stretch; + height: 100%; + min-height: var(--f7-color-picker-bar-min-height); + padding-bottom: 10px; + padding-top: 10px; + box-sizing: border-box; +} +.color-picker-bar-wrap { + display: flex; + align-items: center; + flex-direction: column-reverse; +} +.color-picker-bar { + --f7-range-bar-active-bg-color: transparent; + --f7-range-bar-size: var(--f7-color-picker-bar-size); + --f7-range-bar-border-radius: 2px; + --f7-range-knob-size: 6px; + --f7-range-knob-box-shadow: 0 0px 3px rgba(0, 0, 0, 0.3); + --f7-range-knob-color: #fff; +} +.color-picker-bar .range-knob { + transition-duration: 0ms; + transition-property: transform; + border-radius: 3px; +} +.color-picker-bar .range-knob-wrap { + height: 6px; + width: calc(var(--f7-color-picker-bar-size) - 4px); + margin-left: calc(-0.5 * (var(--f7-color-picker-bar-size) - 4px)); +} +.color-picker-bar .range-knob-active-state .range-knob { + transform: scale(1); +} +.md .color-picker-bar.range-slider-min:not(.range-slider-dual) .range-knob { + background: var(--f7-range-knob-color) !important; + border: none; +} +.color-picker-bar-label { + font-size: var(--f7-color-picker-label-size); + margin-top: 12px; + line-height: 1; + height: var(--f7-color-picker-label-height); + flex-shrink: 0; +} +.color-picker-bar-value { + margin-left: 0; + margin-bottom: 10px; +} +.color-picker-slider-alpha { + --f7-range-knob-color: #fff; +} +.color-picker-slider-alpha .range-bar { + background-image: linear-gradient(to right, rgba(0, 0, 0, 0), #000), linear-gradient(to right, rgba(255, 255, 255, 0.2) 50%, rgba(0, 0, 0, 0.2) 50%), linear-gradient(to left, rgba(255, 255, 255, 0.2) 50%, rgba(0, 0, 0, 0.2) 50%); + background-size: 100% 100%, 6px 3px, 6px 3px; + background-position: 0 0, 0px 3px, 0 0; + background-repeat: repeat-y, repeat-x, repeat-x; +} +.color-picker-slider-hue .range-bar { + background-image: linear-gradient(to right, hsl(0, 100%, 50%), hsl(60, 100%, 50%), hsl(120, 100%, 50%), hsl(180, 100%, 50%), hsl(240, 100%, 50%), hsl(300, 100%, 50%), hsl(0, 100%, 50%)); +} +.color-picker-slider-brightness .range-bar { + background-image: linear-gradient(to right, #000, #fff); +} +.color-picker-module-palette { + margin-top: 16px; +} +.color-picker-module-palette:first-child { + margin-top: 0; +} +.color-picker-module-palette:last-child { + margin-bottom: 0; +} +.color-picker-module-palette:first-child:last-child { + margin: 0; +} +.color-picker-palette { + display: flex; + flex-wrap: wrap; +} +.color-picker-palette-row { + width: 100%; + display: flex; + flex-wrap: nowrap; +} +.color-picker-palette-row .color-picker-palette-value { + width: 100%; +} +.color-picker-palette-value { + width: var(--f7-color-picker-palette-value-width); + height: var(--f7-color-picker-palette-value-height); + cursor: pointer; +} +.color-picker-module-initial-current-colors, +.color-picker-module-current-color { + margin-left: 10px; + margin-right: 10px; + border-radius: var(--f7-color-picker-initial-current-color-border-radius); + overflow: hidden; + flex-shrink: 0; +} +.color-picker-initial-color, +.color-picker-current-color { + height: var(--f7-color-picker-initial-current-color-height); +} +.color-picker-initial-current-colors { + display: flex; +} +.color-picker-initial-current-colors .color-picker-initial-color, +.color-picker-initial-current-colors .color-picker-current-color { + width: 50%; +} +.color-picker-module-rgb-sliders, +.color-picker-module-hsb-sliders, +.color-picker-module-alpha-slider, +.color-picker-module-hue-slider, +.color-picker-module-brightness-slider, +.color-picker-module-hex { + margin-left: 10px; + margin-right: 10px; +} +.color-picker-grouped-modules .color-picker-module-rgb-sliders, +.color-picker-grouped-modules .color-picker-module-hsb-sliders, +.color-picker-grouped-modules .color-picker-module-alpha-slider, +.color-picker-grouped-modules .color-picker-module-hue-slider, +.color-picker-grouped-modules .color-picker-module-brightness-slider, +.color-picker-grouped-modules .color-picker-module-hex { + background: var(--f7-color-picker-group-bg-color); + padding: 5px; + border-radius: 4px; + margin-top: 16px; + margin-left: 5px; + margin-right: 5px; +} +.color-picker-grouped-modules .color-picker-module-rgb-sliders:last-child, +.color-picker-grouped-modules .color-picker-module-hsb-sliders:last-child, +.color-picker-grouped-modules .color-picker-module-alpha-slider:last-child, +.color-picker-grouped-modules .color-picker-module-hue-slider:last-child, +.color-picker-grouped-modules .color-picker-module-brightness-slider:last-child, +.color-picker-grouped-modules .color-picker-module-hex:last-child { + margin-bottom: 16px; +} +.color-picker-grouped-modules .color-picker-slider-value, +.color-picker-grouped-modules .color-picker-hex-value { + background: var(--f7-color-picker-group-value-bg-color); +} +.color-picker-grouped-modules .color-picker-slider-label, +.color-picker-grouped-modules .color-picker-hex-label { + margin-left: 5px; +} +.color-picker-grouped-modules .color-picker-module-rgb-sliders .range-slider:first-child, +.color-picker-grouped-modules .color-picker-module-hsb-sliders .range-slider:first-child, +.color-picker-grouped-modules .color-picker-module-alpha-slider .range-slider:first-child, +.color-picker-grouped-modules .color-picker-module-hue-slider .range-slider:first-child, +.color-picker-grouped-modules .color-picker-module-brightness-slider .range-slider:first-child { + margin-left: 5px; +} +.color-picker-grouped-modules .color-picker-module-rgb-sliders .range-slider:last-child, +.color-picker-grouped-modules .color-picker-module-hsb-sliders .range-slider:last-child, +.color-picker-grouped-modules .color-picker-module-alpha-slider .range-slider:last-child, +.color-picker-grouped-modules .color-picker-module-hue-slider .range-slider:last-child, +.color-picker-grouped-modules .color-picker-module-brightness-slider .range-slider:last-child { + margin-right: 5px; +} +/* === Treeview === */ +:root { + --f7-treeview-item-padding-left: 16px; + --f7-treeview-item-padding-right: 16px; + --f7-treeview-toggle-size: 24px; + --f7-treeview-children-offset: 29px; + --f7-treeview-label-font-weight: 400; + --f7-treeview-label-text-color: inherit; + /* + --f7-treeview-selectable-selected-bg-color: rgba(var(--f7-theme-color-rgb), 0.2); + */ + --f7-treeview-toggle-color: rgba(0, 0, 0, 0.5); + --f7-treeview-toggle-hover-bg-color: rgba(0, 0, 0, 0.1); + --f7-treeview-toggle-pressed-bg-color: rgba(0, 0, 0, 0.15); + --f7-treeview-icon-color: rgba(0, 0, 0, 0.5); + --f7-treeview-selectable-hover-bg-color: rgba(0, 0, 0, 0.1); + --f7-treeview-link-hover-bg-color: rgba(0, 0, 0, 0.1); + --f7-treeview-link-pressed-bg-color: rgba(0, 0, 0, 0.15); +} +:root .theme-dark, +:root.theme-dark { + --f7-treeview-toggle-color: rgba(255, 255, 255, 0.5); + --f7-treeview-toggle-hover-bg-color: rgba(255, 255, 255, 0.03); + --f7-treeview-toggle-pressed-bg-color: rgba(255, 255, 255, 0.1); + --f7-treeview-icon-color: rgba(255, 255, 255, 0.75); + --f7-treeview-selectable-hover-bg-color: rgba(255, 255, 255, 0.03); + --f7-treeview-link-hover-bg-color: rgba(255, 255, 255, 0.03); + --f7-treeview-link-pressed-bg-color: rgba(255, 255, 255, 0.11); +} +.ios { + --f7-treeview-item-height: 34px; + --f7-treeview-label-font-size: 17px; + --f7-treeview-icon-size: 24px; +} +.md { + --f7-treeview-item-height: 34px; + --f7-treeview-label-font-size: 16px; + --f7-treeview-icon-size: 24px; +} +.aurora { + --f7-treeview-item-height: 28px; + --f7-treeview-label-font-size: 14px; + --f7-treeview-icon-size: 20px; +} +.treeview-item-root { + padding-left: var(--f7-treeview-item-padding-left); + padding-right: var(--f7-treeview-item-padding-right); + min-height: var(--f7-treeview-item-height); + display: flex; + align-items: center; + justify-content: flex-start; +} +.treeview-item-content { + display: flex; + justify-content: flex-start; + align-items: center; +} +.treeview-item-content > i, +.treeview-item-content > .f7-icons, +.treeview-item-content > .material-icons { + font-size: var(--f7-treeview-icon-size); + color: var(--f7-treeview-icon-color); +} +.treeview-item-content:first-child { + margin-left: calc(var(--f7-treeview-toggle-size) + 5px); +} +.treeview-item-content > * + * { + margin-left: 5px; +} +.treeview-item-label { + font-size: var(--f7-treeview-label-font-size); + font-weight: var(--f7-treeview-label-font-weight); + color: var(--f7-treeview-label-text-color); +} +.treeview-toggle { + width: var(--f7-treeview-toggle-size); + height: var(--f7-treeview-toggle-size); + cursor: pointer; + border-radius: 4px; + background-color: rgba(0, 0, 0, 0); + transition-duration: 200ms; + position: relative; + margin-right: 5px; +} +.treeview-toggle.active-state { + background-color: var(--f7-treeview-toggle-pressed-bg-color); +} +.treeview-toggle:after { + transition-duration: 200ms; + content: ''; + position: absolute; + left: 50%; + top: 50%; + width: 0; + height: 0; + border-top: 5px solid transparent; + border-bottom: 5px solid transparent; + transform: translate(-50%, -50%); + border-left: 6px solid var(--f7-treeview-toggle-color); +} +.treeview-toggle-hidden { + opacity: 0; + pointer-events: none; + visibility: hidden; +} +.treeview-preloader { + --f7-preloader-size: var(--f7-treeview-toggle-size); + margin-right: calc(-1 * var(--f7-treeview-toggle-size)); +} +.treeview-item-children { + display: none; +} +.treeview-item-opened > .treeview-item-children { + display: block; +} +.treeview-item-opened > .treeview-item-root .treeview-toggle:after { + transform: translate(-50%, -50%) rotate(90deg); +} +a.treeview-item-root { + color: var(--f7-treeview-label-text-color); +} +.treeview-item-selectable > .treeview-item-root, +.treeview-item-selectable.treeview-item-root { + cursor: pointer; + transition-duration: 150ms; +} +a.treeview-item-root { + transition-duration: 150ms; +} +a.treeview-item-root.active-state { + background: var(--f7-treeview-link-pressed-bg-color); +} +.treeview-item-toggle > .treeview-item-root, +.treeview-item-toggle.treeview-item-root { + cursor: pointer; +} +.treeview-item-selected > .treeview-item-root, +.treeview-item-selected.treeview-item-root { + background: var(--f7-treeview-selectable-selected-bg-color, rgba(var(--f7-theme-color-rgb), 0.2)); +} +.treeview-item .treeview-item .treeview-item-root { + padding-left: calc(var(--f7-treeview-item-padding-left) + var(--f7-treeview-children-offset) * 1); +} +.treeview-item .treeview-item .treeview-item .treeview-item-root { + padding-left: calc(var(--f7-treeview-item-padding-left) + var(--f7-treeview-children-offset) * 2); +} +.treeview-item .treeview-item .treeview-item .treeview-item .treeview-item-root { + padding-left: calc(var(--f7-treeview-item-padding-left) + var(--f7-treeview-children-offset) * 3); +} +.treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item-root { + padding-left: calc(var(--f7-treeview-item-padding-left) + var(--f7-treeview-children-offset) * 4); +} +.treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item-root { + padding-left: calc(var(--f7-treeview-item-padding-left) + var(--f7-treeview-children-offset) * 5); +} +.treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item-root { + padding-left: calc(var(--f7-treeview-item-padding-left) + var(--f7-treeview-children-offset) * 6); +} +.treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item-root { + padding-left: calc(var(--f7-treeview-item-padding-left) + var(--f7-treeview-children-offset) * 7); +} +.treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item-root { + padding-left: calc(var(--f7-treeview-item-padding-left) + var(--f7-treeview-children-offset) * 8); +} +.treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item-root { + padding-left: calc(var(--f7-treeview-item-padding-left) + var(--f7-treeview-children-offset) * 9); +} +.treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item-root { + padding-left: calc(var(--f7-treeview-item-padding-left) + var(--f7-treeview-children-offset) * 10); +} +.aurora .treeview-toggle:hover { + background-color: var(--f7-treeview-toggle-hover-bg-color); +} +.aurora .treeview-toggle.active-state { + background-color: var(--f7-treeview-toggle-pressed-bg-color); +} +.aurora .treeview-item-selectable > .treeview-item-root:hover, +.aurora .treeview-item-selectable.treeview-item-root:hover { + background: var(--f7-treeview-selectable-hover-bg-color); +} +.aurora a.treeview-item-root:hover { + background: var(--f7-treeview-link-hover-bg-color); +} +.aurora a.treeview-item-root.active-state { + background: var(--f7-treeview-link-pressed-bg-color); +} +.aurora .treeview-item-selected > .treeview-item-root:hover, +.aurora .treeview-item-selected.treeview-item-root:hover { + background: var(--f7-treeview-selectable-selected-bg-color, rgba(var(--f7-theme-color-rgb), 0.2)); +} +/* === Stepper === */ +:root { + --f7-text-editor-font-size: inherit; + --f7-text-editor-font-weight: inherit; + --f7-text-editor-border-width: 1px; + --f7-text-editor-height: 250px; + --f7-text-editor-margin: 16px; + --f7-text-editor-padding: 8px; + --f7-text-editor-button-bg-color: transparent; + --f7-text-editor-button-size: 28px; + --f7-text-editor-button-icon-size: 20px; + --f7-text-editor-button-margin: 2px; + --f7-text-editor-button-border-radius: 2px; + --f7-text-editor-text-color: #000; + --f7-text-editor-bg-color: #fff; + --f7-text-editor-border-color: rgba(0, 0, 0, 0.1); + --f7-text-editor-toolbar-bg-color: #fff; + --f7-text-editor-button-text-color: #333; + --f7-text-editor-button-divider-color: rgba(0, 0, 0, 0.15); + --f7-text-editor-placeholder-color: rgba(0, 0, 0, 0.35); +} +:root .theme-dark, +:root.theme-dark { + --f7-text-editor-bg-color: #121212; + --f7-text-editor-border-color: rgba(255, 255, 255, 0.1); + --f7-text-editor-toolbar-bg-color: #202020; + --f7-text-editor-text-color: #fff; + --f7-text-editor-placeholder-color: rgba(255, 255, 255, 0.35); + --f7-text-editor-button-text-color: #fff; + --f7-text-editor-button-divider-color: rgba(255, 255, 255, 0.15); +} +.ios { + --f7-text-editor-toolbar-padding: 6px; + --f7-text-editor-toolbar-border-color: rgba(0, 0, 0, 0.25); +} +.ios .theme-dark, +.ios.theme-dark { + --f7-text-editor-toolbar-bg-color: #121212; + --f7-text-editor-toolbar-border-color: rgba(255, 255, 255, 0.1); +} +.md { + --f7-text-editor-toolbar-padding: 8px; + --f7-text-editor-toolbar-box-shadow: 0px 2px 3px -1px rgba(0, 0, 0, 0.25); +} +.aurora { + --f7-text-editor-toolbar-padding: 3px; + --f7-text-editor-toolbar-border-color: rgba(0, 0, 0, 0.25); +} +.aurora .theme-dark, +.aurora.theme-dark { + --f7-text-editor-toolbar-border-color: rgba(255, 255, 255, 0.1); +} +.text-editor { + margin: var(--f7-text-editor-margin); + background-color: var(--f7-text-editor-bg-color); + display: block; + position: relative; + border: var(--f7-text-editor-border-width) solid var(--f7-text-editor-border-color); + display: flex; + flex-direction: column; + align-items: stretch; + height: var(--f7-text-editor-height); + box-sizing: border-box; +} +.text-editor.text-editor-resizable { + height: auto; +} +.text-editor-toolbar { + display: flex; + flex-wrap: wrap; + background: var(--f7-text-editor-toolbar-bg-color); + z-index: 100; + position: relative; + position: -webkit-sticky; + position: sticky; + left: 0; + top: 0; + padding: var(--f7-text-editor-toolbar-padding); + flex-shrink: 0; + box-shadow: var(--f7-text-editor-toolbar-box-shadow); + box-sizing: border-box; +} +.text-editor-toolbar:after { + content: ''; + position: absolute; + background-color: var(--f7-text-editor-toolbar-border-color); + display: block; + z-index: 15; + top: auto; + right: auto; + bottom: 0; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 100%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +button.text-editor-button { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + border: none; + padding: 0; + margin: 0; + outline: 0; + font-family: inherit; + background: transparent; + cursor: pointer; + box-shadow: none; + border-radius: var(--f7-text-editor-button-border-radius); + position: relative; + z-index: 1; + display: flex; + width: auto; + overflow: hidden; + width: var(--f7-text-editor-button-size); + height: var(--f7-text-editor-button-size); + align-items: center; + justify-content: center; + margin: var(--f7-text-editor-button-margin); + box-sizing: border-box; + color: var(--f7-text-editor-button-text-color); + background-color: var(--f7-text-editor-button-bg-color); + flex-shrink: 0; +} +button.text-editor-button i { + font-size: var(--f7-text-editor-button-icon-size); + font-style: normal; +} +button.text-editor-button i sup, +button.text-editor-button i sub { + font-size: 60%; +} +.text-editor-button-divider { + width: 1px; + background: var(--f7-text-editor-button-divider-color); + margin: 0 2px; + flex-shrink: 0; +} +.text-editor-content { + -webkit-user-modify: read-write; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + border: none; + outline: 0; + height: 100%; + -webkit-user-select: text; + -moz-user-select: text; + user-select: text; + padding: var(--f7-text-editor-padding); + overflow: auto; + flex-shrink: 10; + box-sizing: border-box; + color: var(--f7-text-editor-text-color); + font-size: var(--f7-text-editor-font-size); + font-weight: var(--f7-text-editor-font-weight); +} +.text-editor-content .text-editor-placeholder { + pointer-events: none; + color: var(--f7-text-editor-placeholder-color); +} +.text-editor-content img { + max-width: 100%; +} +.text-editor-content a { + pointer-events: none; +} +.text-editor-popover { + z-index: 12500; + width: auto; + max-width: 80vw; +} +.text-editor-popover .popover-inner { + display: flex; + flex-wrap: wrap; + padding: 3px; +} +.text-editor-keyboard-toolbar { + position: absolute; + z-index: 6000; + --f7-safe-area-bottom: 0px; +} +.text-editor-keyboard-toolbar .toolbar-inner { + justify-content: flex-start !important; + overflow: auto; + -webkit-overflow-scrolling: touch; +} +.text-editor-keyboard-toolbar .toolbar-inner::-webkit-scrollbar { + display: none; +} +.text-editor-keyboard-toolbar .toolbar-inner .text-editor-button-divider { + height: 100%; +} +.item-input .text-editor { + border: none; + margin: 0; + background-color: var(--f7-input-bg-color, transparent); +} +.item-input .text-editor-content { + padding-top: var(--f7-textarea-padding-vertical); + padding-bottom: var(--f7-textarea-padding-vertical); + padding-left: var(--f7-input-padding-left); + padding-right: var(--f7-input-padding-right); + color: var(--f7-input-text-color); + font-size: var(--f7-input-font-size); +} +.item-input .text-editor-toolbar { + box-shadow: none; +} +.item-input .text-editor-toolbar:after { + display: none !important; +} +.item-input-outline .text-editor-content { + border-radius: var(--f7-input-outline-border-radius); + padding-left: var(--f7-input-outline-padding-horizontal); + padding-right: var(--f7-input-outline-padding-horizontal); +} +.ios button.text-editor-button { + transition: opacity 300ms; +} +.ios button.text-editor-button.active-state { + opacity: 0.3; + transition-duration: 0ms; +} +.md button.text-editor-button:before { + content: ''; + width: 152%; + height: 152%; + position: absolute; + left: -26%; + top: -26%; + background-image: radial-gradient(circle at center, var(--f7-link-highlight-color) 66%, rgba(255, 255, 255, 0) 66%); + background-repeat: no-repeat; + background-position: center; + background-size: 100% 100%; + opacity: 0; + pointer-events: none; + transition-duration: 600ms; +} +.md button.text-editor-button.active-state:before { + opacity: 1; + transition-duration: 150ms; +} +.md .text-editor-keyboard-toolbar .toolbar-inner { + padding-left: 8px; + padding-right: 8px; +} +.aurora button.text-editor-button { + transition: opacity 300ms; +} +.aurora button.text-editor-button.active-state { + opacity: 0.3; + transition-duration: 0ms; +} +/* === Elevation === */ +:root { + --f7-elevation-0: 0px 0px 0px 0px rgba(0, 0, 0, 0); + --f7-elevation-1: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), + 0px 1px 1px 0px rgba(0, 0, 0, 0.14), + 0px 1px 3px 0px rgba(0, 0, 0, 0.12); + --f7-elevation-2: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), + 0px 2px 2px 0px rgba(0, 0, 0, 0.14), + 0px 1px 5px 0px rgba(0, 0, 0, 0.12); + --f7-elevation-3: 0px 3px 3px -2px rgba(0, 0, 0, 0.2), + 0px 3px 4px 0px rgba(0, 0, 0, 0.14), + 0px 1px 8px 0px rgba(0, 0, 0, 0.12); + --f7-elevation-4: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), + 0px 4px 5px 0px rgba(0, 0, 0, 0.14), + 0px 1px 10px 0px rgba(0, 0, 0, 0.12); + --f7-elevation-5: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), + 0px 5px 8px 0px rgba(0, 0, 0, 0.14), + 0px 1px 14px 0px rgba(0, 0, 0, 0.12); + --f7-elevation-6: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), + 0px 6px 10px 0px rgba(0, 0, 0, 0.14), + 0px 1px 18px 0px rgba(0, 0, 0, 0.12); + --f7-elevation-7: 0px 4px 5px -2px rgba(0, 0, 0, 0.2), + 0px 7px 10px 1px rgba(0, 0, 0, 0.14), + 0px 2px 16px 1px rgba(0, 0, 0, 0.12); + --f7-elevation-8: 0px 5px 5px -3px rgba(0, 0, 0, 0.2), + 0px 8px 10px 1px rgba(0, 0, 0, 0.14), + 0px 3px 14px 2px rgba(0, 0, 0, 0.12); + --f7-elevation-9: 0px 5px 6px -3px rgba(0, 0, 0, 0.2), + 0px 9px 12px 1px rgba(0, 0, 0, 0.14), + 0px 3px 16px 2px rgba(0, 0, 0, 0.12); + --f7-elevation-10: 0px 6px 6px -3px rgba(0, 0, 0, 0.2), + 0px 10px 14px 1px rgba(0, 0, 0, 0.14), + 0px 4px 18px 3px rgba(0, 0, 0, 0.12); + --f7-elevation-11: 0px 6px 7px -4px rgba(0, 0, 0, 0.2), + 0px 11px 15px 1px rgba(0, 0, 0, 0.14), + 0px 4px 20px 3px rgba(0, 0, 0, 0.12); + --f7-elevation-12: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), + 0px 12px 17px 2px rgba(0, 0, 0, 0.14), + 0px 5px 22px 4px rgba(0, 0, 0, 0.12); + --f7-elevation-13: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), + 0px 13px 19px 2px rgba(0, 0, 0, 0.14), + 0px 5px 24px 4px rgba(0, 0, 0, 0.12); + --f7-elevation-14: 0px 7px 9px -4px rgba(0, 0, 0, 0.2), + 0px 14px 21px 2px rgba(0, 0, 0, 0.14), + 0px 5px 26px 4px rgba(0, 0, 0, 0.12); + --f7-elevation-15: 0px 8px 9px -5px rgba(0, 0, 0, 0.2), + 0px 15px 22px 2px rgba(0, 0, 0, 0.14), + 0px 6px 28px 5px rgba(0, 0, 0, 0.12); + --f7-elevation-16: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), + 0px 16px 24px 2px rgba(0, 0, 0, 0.14), + 0px 6px 30px 5px rgba(0, 0, 0, 0.12); + --f7-elevation-17: 0px 8px 11px -5px rgba(0, 0, 0, 0.2), + 0px 17px 26px 2px rgba(0, 0, 0, 0.14), + 0px 6px 32px 5px rgba(0, 0, 0, 0.12); + --f7-elevation-18: 0px 9px 11px -5px rgba(0, 0, 0, 0.2), + 0px 18px 28px 2px rgba(0, 0, 0, 0.14), + 0px 7px 34px 6px rgba(0, 0, 0, 0.12); + --f7-elevation-19: 0px 9px 12px -6px rgba(0, 0, 0, 0.2), + 0px 19px 29px 2px rgba(0, 0, 0, 0.14), + 0px 7px 36px 6px rgba(0, 0, 0, 0.12); + --f7-elevation-20: 0px 10px 13px -6px rgba(0, 0, 0, 0.2), + 0px 20px 31px 3px rgba(0, 0, 0, 0.14), + 0px 8px 38px 7px rgba(0, 0, 0, 0.12); + --f7-elevation-21: 0px 10px 13px -6px rgba(0, 0, 0, 0.2), + 0px 21px 33px 3px rgba(0, 0, 0, 0.14), + 0px 8px 40px 7px rgba(0, 0, 0, 0.12); + --f7-elevation-22: 0px 10px 14px -6px rgba(0, 0, 0, 0.2), + 0px 22px 35px 3px rgba(0, 0, 0, 0.14), + 0px 8px 42px 7px rgba(0, 0, 0, 0.12); + --f7-elevation-23: 0px 11px 14px -7px rgba(0, 0, 0, 0.2), + 0px 23px 36px 3px rgba(0, 0, 0, 0.14), + 0px 9px 44px 8px rgba(0, 0, 0, 0.12); + --f7-elevation-24: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), + 0px 24px 38px 3px rgba(0, 0, 0, 0.14), + 0px 9px 46px 8px rgba(0, 0, 0, 0.12); +} +.elevation-0 { + box-shadow: var(--f7-elevation-0) !important; +} +.elevation-1 { + box-shadow: var(--f7-elevation-1) !important; +} +.elevation-2 { + box-shadow: var(--f7-elevation-2) !important; +} +.elevation-3 { + box-shadow: var(--f7-elevation-3) !important; +} +.elevation-4 { + box-shadow: var(--f7-elevation-4) !important; +} +.elevation-5 { + box-shadow: var(--f7-elevation-5) !important; +} +.elevation-6 { + box-shadow: var(--f7-elevation-6) !important; +} +.elevation-7 { + box-shadow: var(--f7-elevation-7) !important; +} +.elevation-8 { + box-shadow: var(--f7-elevation-8) !important; +} +.elevation-9 { + box-shadow: var(--f7-elevation-9) !important; +} +.elevation-10 { + box-shadow: var(--f7-elevation-10) !important; +} +.elevation-11 { + box-shadow: var(--f7-elevation-11) !important; +} +.elevation-12 { + box-shadow: var(--f7-elevation-12) !important; +} +.elevation-13 { + box-shadow: var(--f7-elevation-13) !important; +} +.elevation-14 { + box-shadow: var(--f7-elevation-14) !important; +} +.elevation-15 { + box-shadow: var(--f7-elevation-15) !important; +} +.elevation-16 { + box-shadow: var(--f7-elevation-16) !important; +} +.elevation-17 { + box-shadow: var(--f7-elevation-17) !important; +} +.elevation-18 { + box-shadow: var(--f7-elevation-18) !important; +} +.elevation-19 { + box-shadow: var(--f7-elevation-19) !important; +} +.elevation-20 { + box-shadow: var(--f7-elevation-20) !important; +} +.elevation-21 { + box-shadow: var(--f7-elevation-21) !important; +} +.elevation-22 { + box-shadow: var(--f7-elevation-22) !important; +} +.elevation-23 { + box-shadow: var(--f7-elevation-23) !important; +} +.elevation-24 { + box-shadow: var(--f7-elevation-24) !important; +} +.device-desktop .elevation-hover-0:hover { + box-shadow: var(--f7-elevation-0) !important; +} +.device-desktop .elevation-hover-1:hover { + box-shadow: var(--f7-elevation-1) !important; +} +.device-desktop .elevation-hover-2:hover { + box-shadow: var(--f7-elevation-2) !important; +} +.device-desktop .elevation-hover-3:hover { + box-shadow: var(--f7-elevation-3) !important; +} +.device-desktop .elevation-hover-4:hover { + box-shadow: var(--f7-elevation-4) !important; +} +.device-desktop .elevation-hover-5:hover { + box-shadow: var(--f7-elevation-5) !important; +} +.device-desktop .elevation-hover-6:hover { + box-shadow: var(--f7-elevation-6) !important; +} +.device-desktop .elevation-hover-7:hover { + box-shadow: var(--f7-elevation-7) !important; +} +.device-desktop .elevation-hover-8:hover { + box-shadow: var(--f7-elevation-8) !important; +} +.device-desktop .elevation-hover-9:hover { + box-shadow: var(--f7-elevation-9) !important; +} +.device-desktop .elevation-hover-10:hover { + box-shadow: var(--f7-elevation-10) !important; +} +.device-desktop .elevation-hover-11:hover { + box-shadow: var(--f7-elevation-11) !important; +} +.device-desktop .elevation-hover-12:hover { + box-shadow: var(--f7-elevation-12) !important; +} +.device-desktop .elevation-hover-13:hover { + box-shadow: var(--f7-elevation-13) !important; +} +.device-desktop .elevation-hover-14:hover { + box-shadow: var(--f7-elevation-14) !important; +} +.device-desktop .elevation-hover-15:hover { + box-shadow: var(--f7-elevation-15) !important; +} +.device-desktop .elevation-hover-16:hover { + box-shadow: var(--f7-elevation-16) !important; +} +.device-desktop .elevation-hover-17:hover { + box-shadow: var(--f7-elevation-17) !important; +} +.device-desktop .elevation-hover-18:hover { + box-shadow: var(--f7-elevation-18) !important; +} +.device-desktop .elevation-hover-19:hover { + box-shadow: var(--f7-elevation-19) !important; +} +.device-desktop .elevation-hover-20:hover { + box-shadow: var(--f7-elevation-20) !important; +} +.device-desktop .elevation-hover-21:hover { + box-shadow: var(--f7-elevation-21) !important; +} +.device-desktop .elevation-hover-22:hover { + box-shadow: var(--f7-elevation-22) !important; +} +.device-desktop .elevation-hover-23:hover { + box-shadow: var(--f7-elevation-23) !important; +} +.device-desktop .elevation-hover-24:hover { + box-shadow: var(--f7-elevation-24) !important; +} +.active-state.elevation-pressed-0, +.device-desktop .active-state.elevation-pressed-0 { + box-shadow: var(--f7-elevation-0) !important; +} +.active-state.elevation-pressed-1, +.device-desktop .active-state.elevation-pressed-1 { + box-shadow: var(--f7-elevation-1) !important; +} +.active-state.elevation-pressed-2, +.device-desktop .active-state.elevation-pressed-2 { + box-shadow: var(--f7-elevation-2) !important; +} +.active-state.elevation-pressed-3, +.device-desktop .active-state.elevation-pressed-3 { + box-shadow: var(--f7-elevation-3) !important; +} +.active-state.elevation-pressed-4, +.device-desktop .active-state.elevation-pressed-4 { + box-shadow: var(--f7-elevation-4) !important; +} +.active-state.elevation-pressed-5, +.device-desktop .active-state.elevation-pressed-5 { + box-shadow: var(--f7-elevation-5) !important; +} +.active-state.elevation-pressed-6, +.device-desktop .active-state.elevation-pressed-6 { + box-shadow: var(--f7-elevation-6) !important; +} +.active-state.elevation-pressed-7, +.device-desktop .active-state.elevation-pressed-7 { + box-shadow: var(--f7-elevation-7) !important; +} +.active-state.elevation-pressed-8, +.device-desktop .active-state.elevation-pressed-8 { + box-shadow: var(--f7-elevation-8) !important; +} +.active-state.elevation-pressed-9, +.device-desktop .active-state.elevation-pressed-9 { + box-shadow: var(--f7-elevation-9) !important; +} +.active-state.elevation-pressed-10, +.device-desktop .active-state.elevation-pressed-10 { + box-shadow: var(--f7-elevation-10) !important; +} +.active-state.elevation-pressed-11, +.device-desktop .active-state.elevation-pressed-11 { + box-shadow: var(--f7-elevation-11) !important; +} +.active-state.elevation-pressed-12, +.device-desktop .active-state.elevation-pressed-12 { + box-shadow: var(--f7-elevation-12) !important; +} +.active-state.elevation-pressed-13, +.device-desktop .active-state.elevation-pressed-13 { + box-shadow: var(--f7-elevation-13) !important; +} +.active-state.elevation-pressed-14, +.device-desktop .active-state.elevation-pressed-14 { + box-shadow: var(--f7-elevation-14) !important; +} +.active-state.elevation-pressed-15, +.device-desktop .active-state.elevation-pressed-15 { + box-shadow: var(--f7-elevation-15) !important; +} +.active-state.elevation-pressed-16, +.device-desktop .active-state.elevation-pressed-16 { + box-shadow: var(--f7-elevation-16) !important; +} +.active-state.elevation-pressed-17, +.device-desktop .active-state.elevation-pressed-17 { + box-shadow: var(--f7-elevation-17) !important; +} +.active-state.elevation-pressed-18, +.device-desktop .active-state.elevation-pressed-18 { + box-shadow: var(--f7-elevation-18) !important; +} +.active-state.elevation-pressed-19, +.device-desktop .active-state.elevation-pressed-19 { + box-shadow: var(--f7-elevation-19) !important; +} +.active-state.elevation-pressed-20, +.device-desktop .active-state.elevation-pressed-20 { + box-shadow: var(--f7-elevation-20) !important; +} +.active-state.elevation-pressed-21, +.device-desktop .active-state.elevation-pressed-21 { + box-shadow: var(--f7-elevation-21) !important; +} +.active-state.elevation-pressed-22, +.device-desktop .active-state.elevation-pressed-22 { + box-shadow: var(--f7-elevation-22) !important; +} +.active-state.elevation-pressed-23, +.device-desktop .active-state.elevation-pressed-23 { + box-shadow: var(--f7-elevation-23) !important; +} +.active-state.elevation-pressed-24, +.device-desktop .active-state.elevation-pressed-24 { + box-shadow: var(--f7-elevation-24) !important; +} +.elevation-transition-100 { + transition-duration: 100ms; + transition-property: box-shadow; +} +.elevation-transition, +.elevation-transition-200 { + transition-duration: 200ms; + transition-property: box-shadow; +} +.elevation-transition-300 { + transition-duration: 300ms; + transition-property: box-shadow; +} +.elevation-transition-400 { + transition-duration: 400ms; + transition-property: box-shadow; +} +.elevation-transition-500 { + transition-duration: 500ms; + transition-property: box-shadow; +} +/* === Typography === */ +:root { + --f7-typography-padding: 16px; + --f7-typography-margin: 16px; +} +.display-flex { + display: flex !important; +} +.display-block { + display: block !important; +} +.display-inline-flex { + display: inline-flex !important; +} +.display-inline-block { + display: inline-block !important; +} +.display-inline { + display: inline !important; +} +.display-none { + display: none !important; +} +.flex-shrink-0 { + flex-shrink: 0 !important; +} +.flex-shrink-1 { + flex-shrink: 1 !important; +} +.flex-shrink-2 { + flex-shrink: 2 !important; +} +.flex-shrink-3 { + flex-shrink: 3 !important; +} +.flex-shrink-4 { + flex-shrink: 4 !important; +} +.flex-shrink-5 { + flex-shrink: 5 !important; +} +.flex-shrink-6 { + flex-shrink: 6 !important; +} +.flex-shrink-7 { + flex-shrink: 7 !important; +} +.flex-shrink-8 { + flex-shrink: 8 !important; +} +.flex-shrink-9 { + flex-shrink: 9 !important; +} +.flex-shrink-10 { + flex-shrink: 10 !important; +} +.flex-direction-row { + flex-direction: row !important; +} +.flex-direction-row-reverse { + flex-direction: row-reverse !important; +} +.flex-direction-column { + flex-direction: column !important; +} +.flex-direction-column-reverse { + flex-direction: column-reverse !important; +} +.justify-content-flex-start { + justify-content: flex-start !important; +} +.justify-content-center { + justify-content: center !important; +} +.justify-content-flex-end { + justify-content: flex-end !important; +} +.justify-content-space-between { + justify-content: space-between !important; +} +.justify-content-space-around { + justify-content: space-around !important; +} +.justify-content-space-evenly { + justify-content: space-evenly !important; +} +.justify-content-stretch { + justify-content: stretch !important; +} +.justify-content-start { + justify-content: start !important; +} +.justify-content-end { + justify-content: end !important; +} +.justify-content-left { + justify-content: left !important; +} +.justify-content-right { + justify-content: right !important; +} +.align-content-flex-start { + align-content: flex-start !important; +} +.align-content-flex-end { + align-content: flex-end !important; +} +.align-content-center { + align-content: center !important; +} +.align-content-space-between { + align-content: space-between !important; +} +.align-content-space-around { + align-content: space-around !important; +} +.align-content-stretch { + align-content: stretch !important; +} +.align-items-baseline { + align-items: baseline !important; +} +.align-items-flex-start { + align-items: flex-start !important; +} +.align-items-flex-end { + align-items: flex-end !important; +} +.align-items-center { + align-items: center !important; +} +.align-items-stretch { + align-items: stretch !important; +} +.align-self-flex-start { + align-self: flex-start !important; +} +.align-self-flex-end { + align-self: flex-end !important; +} +.align-self-center { + align-self: center !important; +} +.align-self-stretch { + align-self: stretch !important; +} +.text-align-left { + text-align: left !important; +} +.text-align-center { + text-align: center !important; +} +.text-align-right { + text-align: right !important; +} +.text-align-justify { + text-align: justify !important; +} +.float-left { + float: left !important; +} +.float-right { + float: right !important; +} +.float-none { + float: none !important; +} +.vertical-align-bottom { + vertical-align: bottom !important; +} +.vertical-align-middle { + vertical-align: middle !important; +} +.vertical-align-top { + vertical-align: top !important; +} +.no-padding { + padding: 0 !important; +} +.no-padding-left { + padding-left: 0 !important; +} +.no-padding-right { + padding-right: 0 !important; +} +.no-padding-horizontal { + padding-left: 0 !important; + padding-right: 0 !important; +} +.no-padding-top { + padding-top: 0 !important; +} +.no-padding-bottom { + padding-bottom: 0 !important; +} +.no-padding-vertical { + padding-top: 0 !important; + padding-bottom: 0 !important; +} +.no-margin { + margin: 0 !important; +} +.no-margin-left { + margin-left: 0 !important; +} +.no-margin-right { + margin-right: 0 !important; +} +.no-margin-horizontal { + margin-left: 0 !important; + margin-right: 0 !important; +} +.no-margin-top { + margin-top: 0 !important; +} +.no-margin-bottom { + margin-bottom: 0 !important; +} +.no-margin-vertical { + margin-top: 0 !important; + margin-bottom: 0 !important; +} +.width-auto { + width: auto !important; +} +.width-100 { + width: 100% !important; +} +.padding { + padding: var(--f7-typography-padding) !important; +} +.padding-half { + padding: calc(var(--f7-typography-padding) / 2) !important; +} +.padding-top { + padding-top: var(--f7-typography-padding) !important; +} +.padding-top-half { + padding-top: calc(var(--f7-typography-padding) / 2) !important; +} +.padding-bottom { + padding-bottom: var(--f7-typography-padding) !important; +} +.padding-bottom-half { + padding-bottom: calc(var(--f7-typography-padding) / 2) !important; +} +.padding-left { + padding-left: var(--f7-typography-padding) !important; +} +.padding-left-half { + padding-left: calc(var(--f7-typography-padding) / 2) !important; +} +.padding-right { + padding-right: var(--f7-typography-padding) !important; +} +.padding-right-half { + padding-right: calc(var(--f7-typography-padding) / 2) !important; +} +.padding-vertical { + padding-top: var(--f7-typography-padding) !important; + padding-bottom: var(--f7-typography-padding) !important; +} +.padding-vertical-half { + padding-top: calc(var(--f7-typography-padding) / 2) !important; + padding-bottom: calc(var(--f7-typography-padding) / 2) !important; +} +.padding-horizontal { + padding-left: var(--f7-typography-padding) !important; + padding-right: var(--f7-typography-padding) !important; +} +.padding-horizontal-half { + padding-left: calc(var(--f7-typography-padding) / 2) !important; + padding-right: calc(var(--f7-typography-padding) / 2) !important; +} +.margin { + margin: var(--f7-typography-margin) !important; +} +.margin-half { + margin: calc(var(--f7-typography-margin) / 2) !important; +} +.margin-top { + margin-top: var(--f7-typography-margin) !important; +} +.margin-top-half { + margin-top: calc(var(--f7-typography-margin) / 2) !important; +} +.margin-bottom { + margin-bottom: var(--f7-typography-margin) !important; +} +.margin-bottom-half { + margin-bottom: calc(var(--f7-typography-margin) / 2) !important; +} +.margin-left { + margin-left: var(--f7-typography-margin) !important; +} +.margin-left-half { + margin-left: calc(var(--f7-typography-margin) / 2) !important; +} +.margin-right { + margin-right: var(--f7-typography-margin) !important; +} +.margin-right-half { + margin-right: calc(var(--f7-typography-margin) / 2) !important; +} +.margin-vertical { + margin-top: var(--f7-typography-margin) !important; + margin-bottom: var(--f7-typography-margin) !important; +} +.margin-vertical-half { + margin-top: calc(var(--f7-typography-margin) / 2) !important; + margin-bottom: calc(var(--f7-typography-margin) / 2) !important; +} +.margin-horizontal { + margin-left: var(--f7-typography-margin) !important; + margin-right: var(--f7-typography-margin) !important; +} +.margin-horizontal-half { + margin-left: calc(var(--f7-typography-margin) / 2) !important; + margin-right: calc(var(--f7-typography-margin) / 2) !important; +} +[class*="text-color-"] { + color: var(--f7-theme-color-text-color) !important; +} +[class*="bg-color-"] { + background-color: var(--f7-theme-color-bg-color) !important; +} +[class*="border-color-"] { + border-color: var(--f7-theme-color-border-color) !important; +} +iframe#viAd { + z-index: 12900 !important; + background: #000 !important; +} +.vi-overlay { + background: rgba(0, 0, 0, 0.85); + z-index: 13100; + position: absolute; + left: 0%; + top: 0%; + width: 100%; + height: 100%; + border-radius: 3px; + display: flex; + justify-content: center; + flex-direction: column; + align-items: center; + align-content: center; + text-align: center; + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; +} +@supports ((-webkit-backdrop-filter: blur(10px)) or (backdrop-filter: blur(10px))) { + .vi-overlay { + background: rgba(0, 0, 0, 0.65); + -webkit-backdrop-filter: blur(10px); + backdrop-filter: blur(10px); + } +} +.vi-overlay .vi-overlay-text { + text-align: center; + color: #fff; + max-width: 80%; +} +.vi-overlay .vi-overlay-text + .vi-overlay-play-button { + margin-top: 15px; +} +.vi-overlay .vi-overlay-play-button { + width: 44px; + height: 44px; + border-radius: 50%; + border: 2px solid #fff; + position: relative; +} +.vi-overlay .vi-overlay-play-button.active-state { + opacity: 0.55; +} +.vi-overlay .vi-overlay-play-button:before { + content: ''; + width: 0; + height: 0; + border-top: 8px solid transparent; + border-bottom: 8px solid transparent; + border-left: 14px solid #fff; + position: absolute; + left: 50%; + top: 50%; + margin-left: 2px; + transform: translate(-50%, -50%); +} diff --git a/public/Framework7/5/css/framework7.bundle.min.css b/public/Framework7/5/css/framework7.bundle.min.css new file mode 100644 index 0000000..2a52213 --- /dev/null +++ b/public/Framework7/5/css/framework7.bundle.min.css @@ -0,0 +1,13 @@ +/** + * Framework7 5.7.14 + * Full featured mobile HTML framework for building iOS & Android apps + * https://framework7.io/ + * + * Copyright 2014-2020 Vladimir Kharlampidi + * + * Released under the MIT License + * + * Released on: November 9, 2020 + */ + +:root{--f7-theme-color:#007aff;--f7-theme-color-rgb:0,122,255;--f7-theme-color-shade:#0066d6;--f7-theme-color-tint:#298fff;--f7-safe-area-left:0px;--f7-safe-area-right:0px;--f7-safe-area-top:0px;--f7-safe-area-bottom:0px;--f7-safe-area-outer-left:0px;--f7-safe-area-outer-right:0px;--f7-device-pixel-ratio:1}@supports (left:env(safe-area-inset-left)){:root{--f7-safe-area-top:env(safe-area-inset-top);--f7-safe-area-bottom:env(safe-area-inset-bottom)}:root .ios-edges,:root .ios-left-edge,:root .panel-left,:root .popup,:root .safe-area-left,:root .safe-areas,:root .sheet-modal{--f7-safe-area-left:env(safe-area-inset-left);--f7-safe-area-outer-left:env(safe-area-inset-left)}:root .ios-edges,:root .ios-right-edge,:root .panel-right,:root .popup,:root .safe-area-right,:root .safe-areas,:root .sheet-modal{--f7-safe-area-right:env(safe-area-inset-right);--f7-safe-area-outer-right:env(safe-area-inset-right)}:root .no-ios-edges,:root .no-ios-left-edge,:root .no-safe-area-left,:root .no-safe-areas{--f7-safe-area-left:0px;--f7-safe-area-outer-left:0px}:root .no-ios-edges,:root .no-ios-right-edge,:root .no-safe-area-right,:root .no-safe-areas{--f7-safe-area-right:0px;--f7-safe-area-outer-right:0px}}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:2dppx){:root{--f7-device-pixel-ratio:2}}@media (-webkit-min-device-pixel-ratio:3),(min-resolution:3dppx){:root{--f7-device-pixel-ratio:3}}:root{--f7-font-size:14px;--f7-bars-bg-image:none;--f7-bars-translucent-opacity:0.8;--f7-bars-translucent-blur:20px;--f7-bars-shadow-bottom-image:linear-gradient(to bottom, rgba(0, 0, 0, 0.25) 0%, rgba(0, 0, 0, 0.08) 40%, rgba(0, 0, 0, 0.04) 50%, rgba(0, 0, 0, 0) 90%, rgba(0, 0, 0, 0) 100%);--f7-bars-shadow-top-image:linear-gradient(to top, rgba(0, 0, 0, 0.25) 0%, rgba(0, 0, 0, 0.08) 40%, rgba(0, 0, 0, 0.04) 50%, rgba(0, 0, 0, 0) 90%, rgba(0, 0, 0, 0) 100%);--f7-bars-text-color:#000;--f7-bars-bg-color:#f7f7f8;--f7-bars-bg-color-rgb:247,247,248}:root .theme-dark,:root.theme-dark{--f7-bars-text-color:#fff}.ios{--f7-font-family:-apple-system,SF Pro Text,SF UI Text,system-ui,Helvetica Neue,Helvetica,Arial,sans-serif;--f7-line-height:1.4;--f7-text-color:#000;--f7-bars-border-color:rgba(0, 0, 0, 0.25)}.ios .theme-dark,.ios.theme-dark{--f7-text-color:#fff;--f7-bars-bg-color:#121212;--f7-bars-bg-color-rgb:22,22,22;--f7-bars-border-color:rgba(255, 255, 255, 0.16)}.md{--f7-font-family:Roboto,system-ui,Noto,Helvetica,Arial,sans-serif;--f7-line-height:1.5;--f7-bars-border-color:transparent;--f7-text-color:#212121}.md .theme-dark,.md.theme-dark{--f7-text-color:rgba(255, 255, 255, 0.87);--f7-bars-bg-color:#202020}.aurora{--f7-font-family:-apple-system,system-ui,Helvetica,Arial,sans-serif;--f7-line-height:1.5;--f7-text-color:#000;--f7-bars-border-color:rgba(0, 0, 0, 0.2)}.aurora .theme-dark,.aurora.theme-dark{--f7-text-color:#fff;--f7-bars-bg-color:#202020;--f7-bars-border-color:rgba(255, 255, 255, 0.1)}.text-color-primary{--f7-theme-color-text-color:var(--f7-theme-color)}.bg-color-primary{--f7-theme-color-bg-color:var(--f7-theme-color)}.border-color-primary{--f7-theme-color-border-color:var(--f7-theme-color)}.ripple-color-primary{--f7-theme-color-ripple-color:rgba(var(--f7-theme-color-rgb), 0.3)}:root{--f7-color-red:#ff3b30;--f7-color-red-rgb:255,59,48;--f7-color-red-shade:#ff1407;--f7-color-red-tint:#ff6259;--f7-color-green:#4cd964;--f7-color-green-rgb:76,217,100;--f7-color-green-shade:#2cd048;--f7-color-green-tint:#6ee081;--f7-color-blue:#2196f3;--f7-color-blue-rgb:33,150,243;--f7-color-blue-shade:#0c82df;--f7-color-blue-tint:#48a8f5;--f7-color-pink:#ff2d55;--f7-color-pink-rgb:255,45,85;--f7-color-pink-shade:#ff0434;--f7-color-pink-tint:#ff5676;--f7-color-yellow:#ffcc00;--f7-color-yellow-rgb:255,204,0;--f7-color-yellow-shade:#d6ab00;--f7-color-yellow-tint:#ffd429;--f7-color-orange:#ff9500;--f7-color-orange-rgb:255,149,0;--f7-color-orange-shade:#d67d00;--f7-color-orange-tint:#ffa629;--f7-color-purple:#9c27b0;--f7-color-purple-rgb:156,39,176;--f7-color-purple-shade:#7e208f;--f7-color-purple-tint:#b92fd1;--f7-color-deeppurple:#673ab7;--f7-color-deeppurple-rgb:103,58,183;--f7-color-deeppurple-shade:#563098;--f7-color-deeppurple-tint:#7c52c8;--f7-color-lightblue:#5ac8fa;--f7-color-lightblue-rgb:90,200,250;--f7-color-lightblue-shade:#32bbf9;--f7-color-lightblue-tint:#82d5fb;--f7-color-teal:#009688;--f7-color-teal-rgb:0,150,136;--f7-color-teal-shade:#006d63;--f7-color-teal-tint:#00bfad;--f7-color-lime:#cddc39;--f7-color-lime-rgb:205,220,57;--f7-color-lime-shade:#bac923;--f7-color-lime-tint:#d6e25c;--f7-color-deeporange:#ff6b22;--f7-color-deeporange-rgb:255,107,34;--f7-color-deeporange-shade:#f85200;--f7-color-deeporange-tint:#ff864b;--f7-color-gray:#8e8e93;--f7-color-gray-rgb:142,142,147;--f7-color-gray-shade:#79797f;--f7-color-gray-tint:#a3a3a7;--f7-color-white:#ffffff;--f7-color-white-rgb:255,255,255;--f7-color-white-shade:#ebebeb;--f7-color-white-tint:#ffffff;--f7-color-black:#000000;--f7-color-black-rgb:0,0,0;--f7-color-black-shade:#000000;--f7-color-black-tint:#141414}.color-theme-red{--f7-theme-color:#ff3b30;--f7-theme-color-rgb:255,59,48;--f7-theme-color-shade:#ff1407;--f7-theme-color-tint:#ff6259}.color-theme-green{--f7-theme-color:#4cd964;--f7-theme-color-rgb:76,217,100;--f7-theme-color-shade:#2cd048;--f7-theme-color-tint:#6ee081}.color-theme-blue{--f7-theme-color:#2196f3;--f7-theme-color-rgb:33,150,243;--f7-theme-color-shade:#0c82df;--f7-theme-color-tint:#48a8f5}.color-theme-pink{--f7-theme-color:#ff2d55;--f7-theme-color-rgb:255,45,85;--f7-theme-color-shade:#ff0434;--f7-theme-color-tint:#ff5676}.color-theme-yellow{--f7-theme-color:#ffcc00;--f7-theme-color-rgb:255,204,0;--f7-theme-color-shade:#d6ab00;--f7-theme-color-tint:#ffd429}.color-theme-orange{--f7-theme-color:#ff9500;--f7-theme-color-rgb:255,149,0;--f7-theme-color-shade:#d67d00;--f7-theme-color-tint:#ffa629}.color-theme-purple{--f7-theme-color:#9c27b0;--f7-theme-color-rgb:156,39,176;--f7-theme-color-shade:#7e208f;--f7-theme-color-tint:#b92fd1}.color-theme-deeppurple{--f7-theme-color:#673ab7;--f7-theme-color-rgb:103,58,183;--f7-theme-color-shade:#563098;--f7-theme-color-tint:#7c52c8}.color-theme-lightblue{--f7-theme-color:#5ac8fa;--f7-theme-color-rgb:90,200,250;--f7-theme-color-shade:#32bbf9;--f7-theme-color-tint:#82d5fb}.color-theme-teal{--f7-theme-color:#009688;--f7-theme-color-rgb:0,150,136;--f7-theme-color-shade:#006d63;--f7-theme-color-tint:#00bfad}.color-theme-lime{--f7-theme-color:#cddc39;--f7-theme-color-rgb:205,220,57;--f7-theme-color-shade:#bac923;--f7-theme-color-tint:#d6e25c}.color-theme-deeporange{--f7-theme-color:#ff6b22;--f7-theme-color-rgb:255,107,34;--f7-theme-color-shade:#f85200;--f7-theme-color-tint:#ff864b}.color-theme-gray{--f7-theme-color:#8e8e93;--f7-theme-color-rgb:142,142,147;--f7-theme-color-shade:#79797f;--f7-theme-color-tint:#a3a3a7}.color-theme-white{--f7-theme-color:#ffffff;--f7-theme-color-rgb:255,255,255;--f7-theme-color-shade:#ebebeb;--f7-theme-color-tint:#ffffff}.color-theme-black{--f7-theme-color:#000000;--f7-theme-color-rgb:0,0,0;--f7-theme-color-shade:#000000;--f7-theme-color-tint:#141414}.color-red{--f7-theme-color:#ff3b30;--f7-theme-color-rgb:255,59,48;--f7-theme-color-shade:#ff1407;--f7-theme-color-tint:#ff6259}.text-color-red{--f7-theme-color-text-color:#ff3b30}.bg-color-red{--f7-theme-color-bg-color:#ff3b30}.border-color-red{--f7-theme-color-border-color:#ff3b30}.ripple-color-red,.ripple-red{--f7-theme-color-ripple-color:rgba(255, 59, 48, 0.3)}.color-green{--f7-theme-color:#4cd964;--f7-theme-color-rgb:76,217,100;--f7-theme-color-shade:#2cd048;--f7-theme-color-tint:#6ee081}.text-color-green{--f7-theme-color-text-color:#4cd964}.bg-color-green{--f7-theme-color-bg-color:#4cd964}.border-color-green{--f7-theme-color-border-color:#4cd964}.ripple-color-green,.ripple-green{--f7-theme-color-ripple-color:rgba(76, 217, 100, 0.3)}.color-blue{--f7-theme-color:#2196f3;--f7-theme-color-rgb:33,150,243;--f7-theme-color-shade:#0c82df;--f7-theme-color-tint:#48a8f5}.text-color-blue{--f7-theme-color-text-color:#2196f3}.bg-color-blue{--f7-theme-color-bg-color:#2196f3}.border-color-blue{--f7-theme-color-border-color:#2196f3}.ripple-blue,.ripple-color-blue{--f7-theme-color-ripple-color:rgba(33, 150, 243, 0.3)}.color-pink{--f7-theme-color:#ff2d55;--f7-theme-color-rgb:255,45,85;--f7-theme-color-shade:#ff0434;--f7-theme-color-tint:#ff5676}.text-color-pink{--f7-theme-color-text-color:#ff2d55}.bg-color-pink{--f7-theme-color-bg-color:#ff2d55}.border-color-pink{--f7-theme-color-border-color:#ff2d55}.ripple-color-pink,.ripple-pink{--f7-theme-color-ripple-color:rgba(255, 45, 85, 0.3)}.color-yellow{--f7-theme-color:#ffcc00;--f7-theme-color-rgb:255,204,0;--f7-theme-color-shade:#d6ab00;--f7-theme-color-tint:#ffd429}.text-color-yellow{--f7-theme-color-text-color:#ffcc00}.bg-color-yellow{--f7-theme-color-bg-color:#ffcc00}.border-color-yellow{--f7-theme-color-border-color:#ffcc00}.ripple-color-yellow,.ripple-yellow{--f7-theme-color-ripple-color:rgba(255, 204, 0, 0.3)}.color-orange{--f7-theme-color:#ff9500;--f7-theme-color-rgb:255,149,0;--f7-theme-color-shade:#d67d00;--f7-theme-color-tint:#ffa629}.text-color-orange{--f7-theme-color-text-color:#ff9500}.bg-color-orange{--f7-theme-color-bg-color:#ff9500}.border-color-orange{--f7-theme-color-border-color:#ff9500}.ripple-color-orange,.ripple-orange{--f7-theme-color-ripple-color:rgba(255, 149, 0, 0.3)}.color-purple{--f7-theme-color:#9c27b0;--f7-theme-color-rgb:156,39,176;--f7-theme-color-shade:#7e208f;--f7-theme-color-tint:#b92fd1}.text-color-purple{--f7-theme-color-text-color:#9c27b0}.bg-color-purple{--f7-theme-color-bg-color:#9c27b0}.border-color-purple{--f7-theme-color-border-color:#9c27b0}.ripple-color-purple,.ripple-purple{--f7-theme-color-ripple-color:rgba(156, 39, 176, 0.3)}.color-deeppurple{--f7-theme-color:#673ab7;--f7-theme-color-rgb:103,58,183;--f7-theme-color-shade:#563098;--f7-theme-color-tint:#7c52c8}.text-color-deeppurple{--f7-theme-color-text-color:#673ab7}.bg-color-deeppurple{--f7-theme-color-bg-color:#673ab7}.border-color-deeppurple{--f7-theme-color-border-color:#673ab7}.ripple-color-deeppurple,.ripple-deeppurple{--f7-theme-color-ripple-color:rgba(103, 58, 183, 0.3)}.color-lightblue{--f7-theme-color:#5ac8fa;--f7-theme-color-rgb:90,200,250;--f7-theme-color-shade:#32bbf9;--f7-theme-color-tint:#82d5fb}.text-color-lightblue{--f7-theme-color-text-color:#5ac8fa}.bg-color-lightblue{--f7-theme-color-bg-color:#5ac8fa}.border-color-lightblue{--f7-theme-color-border-color:#5ac8fa}.ripple-color-lightblue,.ripple-lightblue{--f7-theme-color-ripple-color:rgba(90, 200, 250, 0.3)}.color-teal{--f7-theme-color:#009688;--f7-theme-color-rgb:0,150,136;--f7-theme-color-shade:#006d63;--f7-theme-color-tint:#00bfad}.text-color-teal{--f7-theme-color-text-color:#009688}.bg-color-teal{--f7-theme-color-bg-color:#009688}.border-color-teal{--f7-theme-color-border-color:#009688}.ripple-color-teal,.ripple-teal{--f7-theme-color-ripple-color:rgba(0, 150, 136, 0.3)}.color-lime{--f7-theme-color:#cddc39;--f7-theme-color-rgb:205,220,57;--f7-theme-color-shade:#bac923;--f7-theme-color-tint:#d6e25c}.text-color-lime{--f7-theme-color-text-color:#cddc39}.bg-color-lime{--f7-theme-color-bg-color:#cddc39}.border-color-lime{--f7-theme-color-border-color:#cddc39}.ripple-color-lime,.ripple-lime{--f7-theme-color-ripple-color:rgba(205, 220, 57, 0.3)}.color-deeporange{--f7-theme-color:#ff6b22;--f7-theme-color-rgb:255,107,34;--f7-theme-color-shade:#f85200;--f7-theme-color-tint:#ff864b}.text-color-deeporange{--f7-theme-color-text-color:#ff6b22}.bg-color-deeporange{--f7-theme-color-bg-color:#ff6b22}.border-color-deeporange{--f7-theme-color-border-color:#ff6b22}.ripple-color-deeporange,.ripple-deeporange{--f7-theme-color-ripple-color:rgba(255, 107, 34, 0.3)}.color-gray{--f7-theme-color:#8e8e93;--f7-theme-color-rgb:142,142,147;--f7-theme-color-shade:#79797f;--f7-theme-color-tint:#a3a3a7}.text-color-gray{--f7-theme-color-text-color:#8e8e93}.bg-color-gray{--f7-theme-color-bg-color:#8e8e93}.border-color-gray{--f7-theme-color-border-color:#8e8e93}.ripple-color-gray,.ripple-gray{--f7-theme-color-ripple-color:rgba(142, 142, 147, 0.3)}.color-white{--f7-theme-color:#ffffff;--f7-theme-color-rgb:255,255,255;--f7-theme-color-shade:#ebebeb;--f7-theme-color-tint:#ffffff}.text-color-white{--f7-theme-color-text-color:#ffffff}.bg-color-white{--f7-theme-color-bg-color:#ffffff}.border-color-white{--f7-theme-color-border-color:#ffffff}.ripple-color-white,.ripple-white{--f7-theme-color-ripple-color:rgba(255, 255, 255, 0.3)}.color-black{--f7-theme-color:#000000;--f7-theme-color-rgb:0,0,0;--f7-theme-color-shade:#000000;--f7-theme-color-tint:#141414}.text-color-black{--f7-theme-color-text-color:#000000}.bg-color-black{--f7-theme-color-bg-color:#000000}.border-color-black{--f7-theme-color-border-color:#000000}.ripple-black,.ripple-color-black{--f7-theme-color-ripple-color:rgba(0, 0, 0, 0.3)}@font-face{font-family:framework7-core-icons;src:url("data:application/font-woff;charset=utf-8;base64, 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") format("woff");font-weight:400;font-style:normal}@font-face{font-family:framework7-skeleton;src:url("data:application/font-woff;charset=utf-8;base64, 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") format("woff");font-weight:300,400,500,600,700;font-style:normal,italic}.framework7-root,body,html{position:relative;height:100%;width:100%;overflow-x:hidden}body{margin:0;padding:0;width:100%;background:#fff;overflow:hidden;-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;font-family:var(--f7-font-family);font-size:var(--f7-font-size);line-height:var(--f7-line-height);color:var(--f7-text-color)}.theme-dark body,body.theme-dark{background:#000}.theme-dark{color:var(--f7-text-color)}.framework7-root{overflow:hidden;box-sizing:border-box}.framework7-initializing *,.framework7-initializing :after,.framework7-initializing :before{transition-duration:0s!important}.device-android,.device-ios{cursor:pointer}.device-ios{touch-action:manipulation}@media (width:1024px) and (height:691px) and (orientation:landscape){.framework7-root,body,html{height:671px}}@media (width:1024px) and (height:692px) and (orientation:landscape){.framework7-root,body,html{height:672px}}*{-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none}a,input,select,textarea{outline:0}a{cursor:pointer;text-decoration:none;color:var(--f7-theme-color)}.item-link,.link{cursor:pointer}p{margin:1em 0}.disabled{opacity:.55!important;pointer-events:none!important}html.device-full-viewport,html.device-full-viewport body{height:100vh}.ios .aurora-only,.ios .if-aurora,.ios .if-md,.ios .if-not-ios,.ios .md-only,.ios .not-ios{display:none!important}@media (width:1024px) and (height:691px) and (orientation:landscape){.ios,.ios .framework7-root,.ios body{height:671px}}@media (width:1024px) and (height:692px) and (orientation:landscape){.ios,.ios .framework7-root,.ios body{height:672px}}.md .aurora-only,.md .if-aurora,.md .if-ios,.md .if-not-md,.md .ios-only,.md .not-md{display:none!important}.aurora .if-ios,.aurora .if-md,.aurora .if-not-aurora,.aurora .ios-only,.aurora .md-only,.aurora .not-aurora{display:none!important}.view,.views{position:relative;height:100%;z-index:5000;overflow:hidden;box-sizing:border-box}.framework7-root>.view,.framework7-root>.views{height:calc(100% - var(--f7-appbar-app-offset,0px))}.view-resize-handler{width:6px;height:100%;position:absolute;left:var(--f7-page-master-width);margin-left:-3px;top:0;cursor:col-resize;z-index:1000;display:none}.view-master-detail .view-resize-handler{display:block}:root{--f7-page-master-width:320px;--f7-page-master-border-color:rgba(0, 0, 0, 0.1);--f7-page-master-border-width:1px;--f7-page-swipeback-transition-duration:300ms;--f7-page-parallax-transition-duration:500ms;--f7-page-cover-transition-duration:450ms;--f7-page-dive-transition-duration:500ms;--f7-page-fade-transition-duration:500ms;--f7-page-flip-transition-duration:700ms;--f7-page-push-transition-duration:500ms}.ios{--f7-page-transition-duration:400ms;--f7-page-bg-color:#efeff4}.ios .theme-dark,.ios.theme-dark{--f7-page-bg-color:#000}.md{--f7-page-transition-duration:250ms;--f7-page-bg-color:#fff}.md .theme-dark,.md.theme-dark{--f7-page-bg-color:#121212}.aurora{--f7-page-transition-duration:400ms;--f7-page-bg-color:#f3f3f3}.aurora .theme-dark,.aurora.theme-dark{--f7-page-bg-color:#121212}.theme-dark{--f7-page-master-border-color:rgba(255, 255, 255, 0.1)}.pages{position:relative;width:100%;height:100%;overflow:hidden}.page{box-sizing:border-box;position:absolute;left:0;top:0;width:100%;height:100%;transform:none;background-color:var(--f7-page-bg-color);z-index:1}.page.stacked{display:none}.page-with-navbar-large-collapsed{--f7-navbar-large-collapse-progress:1}.page-previous{pointer-events:none}.page-content{overflow:auto;-webkit-overflow-scrolling:touch;box-sizing:border-box;height:100%;position:relative;z-index:1;padding-top:calc(var(--f7-page-navbar-offset,0px) + var(--f7-page-toolbar-top-offset,0px) + var(--f7-page-subnavbar-offset,0px) + var(--f7-page-searchbar-offset,0px) + var(--f7-page-content-extra-padding-top,0px));padding-bottom:calc(var(--f7-page-toolbar-bottom-offset,0px) + var(--f7-safe-area-bottom) + var(--f7-page-content-extra-padding-bottom,0px))}.page-transitioning,.page-transitioning .page-opacity-effect,.page-transitioning .page-shadow-effect{transition-duration:var(--f7-page-transition-duration)}.page-transitioning-swipeback,.page-transitioning-swipeback .page-opacity-effect,.page-transitioning-swipeback .page-shadow-effect{transition-duration:var(--f7-page-swipeback-transition-duration)}.router-transition-backward .page-current,.router-transition-backward .page-next,.router-transition-backward .page-previous:not(.stacked),.router-transition-forward .page-current,.router-transition-forward .page-next,.router-transition-forward .page-previous:not(.stacked){pointer-events:none}.page-shadow-effect{position:absolute;top:0;width:16px;bottom:0;z-index:-1;content:'';opacity:0;right:100%;background:linear-gradient(to right,rgba(0,0,0,0) 0%,rgba(0,0,0,0) 10%,rgba(0,0,0,.01) 50%,rgba(0,0,0,.2) 100%)}.page-opacity-effect{position:absolute;left:0;top:0;background:rgba(0,0,0,.1);width:100%;bottom:0;content:'';opacity:0;z-index:10000}.ios .page-previous{transform:translate3d(-20%,0,0)}.ios .page-next{transform:translate3d(100%,0,0)}.ios .page-previous .page-opacity-effect{opacity:1}.ios .page-previous:after{opacity:1}.ios .page-current .page-shadow-effect{opacity:1}.ios .router-transition-forward .page-next{animation:ios-page-next-to-current var(--f7-page-transition-duration) forwards}.ios .router-transition-forward .page-next:before{position:absolute;top:0;width:16px;bottom:0;z-index:-1;content:'';opacity:0;right:100%;background:linear-gradient(to right,rgba(0,0,0,0) 0%,rgba(0,0,0,0) 10%,rgba(0,0,0,.01) 50%,rgba(0,0,0,.2) 100%);animation:ios-page-element-fade-in var(--f7-page-transition-duration) forwards}.ios .router-transition-forward .page-current{animation:ios-page-current-to-previous var(--f7-page-transition-duration) forwards}.ios .router-transition-forward .page-current:after{position:absolute;left:0;top:0;background:rgba(0,0,0,.1);width:100%;bottom:0;content:'';opacity:0;z-index:10000;animation:ios-page-element-fade-in var(--f7-page-transition-duration) forwards}.ios .router-transition-backward .page-previous{animation:ios-page-previous-to-current var(--f7-page-transition-duration) forwards}.ios .router-transition-backward .page-previous:after{position:absolute;left:0;top:0;background:rgba(0,0,0,.1);width:100%;bottom:0;content:'';opacity:0;z-index:10000;animation:ios-page-element-fade-out var(--f7-page-transition-duration) forwards}.ios .router-transition-backward .page-current{animation:ios-page-current-to-next var(--f7-page-transition-duration) forwards}.ios .router-transition-backward .page-current:before{position:absolute;top:0;width:16px;bottom:0;z-index:-1;content:'';opacity:0;right:100%;background:linear-gradient(to right,rgba(0,0,0,0) 0%,rgba(0,0,0,0) 10%,rgba(0,0,0,.01) 50%,rgba(0,0,0,.2) 100%);animation:ios-page-element-fade-out var(--f7-page-transition-duration) forwards}@keyframes ios-page-next-to-current{from{transform:translate3d(100%,0,0)}to{transform:translate3d(0%,0,0)}}@keyframes ios-page-previous-to-current{from{transform:translate3d(-20%,0,0)}to{transform:translate3d(0%,0,0)}}@keyframes ios-page-current-to-previous{from{transform:translate3d(0,0,0)}to{transform:translate3d(-20%,0,0)}}@keyframes ios-page-current-to-next{from{transform:translate3d(0,0,0)}to{transform:translate3d(100%,0,0)}}@keyframes ios-page-element-fade-in{from{opacity:0}to{opacity:1}}@keyframes ios-page-element-fade-out{from{opacity:1}to{opacity:0}}.md .page-next{transform:translate3d(0,56px,0);opacity:0;pointer-events:none}.md .page-next.page-next-on-right{transform:translate3d(100%,0,0)}.md .router-transition-forward .page-next{animation:md-page-next-to-current var(--f7-page-transition-duration) forwards}.md .router-transition-forward .page-current{animation:none}.md .router-transition-backward .page-current{animation:md-page-current-to-next var(--f7-page-transition-duration) forwards}.md .router-transition-backward .page-previous{animation:none}@keyframes md-page-next-to-current{from{transform:translate3d(0,56px,0);opacity:0}to{transform:translate3d(0,0px,0);opacity:1}}@keyframes md-page-current-to-next{from{transform:translate3d(0,0,0);opacity:1}to{transform:translate3d(0,56px,0);opacity:0}}.aurora .page-next{pointer-events:none;transform:translate3d(100%,0px,0)}.aurora .page-next.page-next-on-right{transform:translate3d(100%,0,0)}.aurora .page-previous .page-opacity-effect{opacity:1}.aurora .page-previous:after{opacity:1}.aurora .router-transition-forward .page-next{animation:aurora-page-next-to-current var(--f7-page-transition-duration) forwards}.aurora .router-transition-forward .page-current{animation:none}.aurora .router-transition-forward .page-current:after{position:absolute;left:0;top:0;background:rgba(0,0,0,.1);width:100%;bottom:0;content:'';opacity:0;z-index:10000;animation:aurora-page-element-fade-in var(--f7-page-transition-duration) forwards}.aurora .router-transition-backward .page-current{animation:aurora-page-current-to-next var(--f7-page-transition-duration) forwards}.aurora .router-transition-backward .page-previous{animation:none}.aurora .router-transition-backward .page-previous:after{position:absolute;left:0;top:0;background:rgba(0,0,0,.1);width:100%;bottom:0;content:'';opacity:0;z-index:10000;animation:aurora-page-element-fade-out var(--f7-page-transition-duration) forwards}@keyframes aurora-page-next-to-current{from{transform:translate3d(100%,0,0)}to{transform:translate3d(0,0px,0)}}@keyframes aurora-page-current-to-next{from{transform:translate3d(0,0,0)}to{transform:translate3d(100%,0,0)}}@keyframes aurora-page-element-fade-in{from{opacity:0}to{opacity:1}}@keyframes aurora-page-element-fade-out{from{opacity:1}to{opacity:0}}.view:not(.view-master-detail) .page-master-stacked{display:none}.view:not(.view-master-detail) .navbar-master-stacked{display:none}.view-master-detail .navbar-master,.view-master-detail .page-master{width:var(--f7-page-master-width);--f7-safe-area-right:0px;--f7-safe-area-outer-right:0px;border-right:var(--f7-page-master-border-width) solid var(--f7-page-master-border-color)}.view-master-detail .navbar-master-detail,.view-master-detail .page-master-detail{width:calc(100% - var(--f7-page-master-width));--f7-safe-area-left:0px;--f7-safe-area-outer-left:0px;left:var(--f7-page-master-width)}.view-master-detail .page-master{z-index:2;transform:none;pointer-events:auto}.view-master-detail .page-master:after,.view-master-detail .page-master:before{display:none}.view-master-detail.router-transition .page-master{animation:none}.aurora .router-transition-custom .page-next,.aurora .router-transition-custom .page-previous,.ios .router-transition-custom .page-next,.ios .router-transition-custom .page-previous,.md .router-transition-custom .page-next,.md .router-transition-custom .page-previous{opacity:1;transform:none}.router-transition-f7-circle-backward:after,.router-transition-f7-circle-forward:after{content:'';position:absolute;left:50%;top:50%;width:100vmax;height:100vmax;margin-left:-50vmax;margin-top:-50vmax;background:var(--f7-page-bg-color);z-index:100}.router-transition-f7-circle-forward:after{transform:scale(0);border-radius:50%;animation:f7-circle-circle-in .4s forwards}.router-transition-f7-circle-forward .page-next{opacity:0!important;transform:scale(.9)!important;animation:f7-circle-next-to-current .3s forwards;animation-delay:.3s;z-index:150}.router-transition-f7-circle-backward:after{animation:f7-circle-circle-out .3s forwards;animation-delay:350ms}.router-transition-f7-circle-backward .page-current{animation:f7-circle-current-to-next .7s forwards;z-index:150}@keyframes f7-circle-circle-in{from{transform:scale(0);border-radius:50%}50%{border-radius:50%}to{transform:scale(1);border-radius:0%}}@keyframes f7-circle-circle-out{from{transform:scale(1);border-radius:0%}50%{border-radius:50%}to{transform:scale(0);border-radius:50%}}@keyframes f7-circle-next-to-current{from{transform:scale(.9);opacity:0}40%{transform:scale(1.035);opacity:1}to{transform:scale(1);opacity:1}}@keyframes f7-circle-current-to-next{from{transform:scale(1);opacity:1}34%{transform:scale(1.035);opacity:1}57%{transform:scale(.9);opacity:0}to{transform:scale(.9);opacity:0}}.router-transition-f7-cover-v-backward,.router-transition-f7-cover-v-forward{background:#000;perspective:1200px}.router-transition-f7-cover-v-forward .page-next{animation:f7-cover-v-next-to-current var(--f7-page-cover-transition-duration) forwards}.router-transition-f7-cover-v-forward .page-current{animation:f7-cover-v-current-to-prev var(--f7-page-cover-transition-duration) forwards}.router-transition-f7-cover-v-backward .page-current{animation:f7-cover-v-current-to-next var(--f7-page-cover-transition-duration) forwards}.router-transition-f7-cover-v-backward .page-previous{animation:f7-cover-v-prev-to-current var(--f7-page-cover-transition-duration) forwards}@keyframes f7-cover-v-next-to-current{from{transform:translateY(100%)}to{transform:translateY(0%)}}@keyframes f7-cover-v-current-to-next{from{transform:translateY(0%)}to{transform:translateY(100%)}}@keyframes f7-cover-v-current-to-prev{from{transform:translateZ(0);opacity:1}to{transform:translateZ(-300px);opacity:.5}}@keyframes f7-cover-v-prev-to-current{from{transform:translateZ(-300px);opacity:.5}to{transform:translateZ(0);opacity:1}}.router-transition-f7-cover-backward,.router-transition-f7-cover-forward{background:#000;perspective:1200px}.router-transition-f7-cover-forward .page-next{animation:f7-cover-next-to-current var(--f7-page-cover-transition-duration) forwards}.router-transition-f7-cover-forward .page-current{animation:f7-cover-current-to-prev var(--f7-page-cover-transition-duration) forwards}.router-transition-f7-cover-backward .page-current{animation:f7-cover-current-to-next var(--f7-page-cover-transition-duration) forwards}.router-transition-f7-cover-backward .page-previous{animation:f7-cover-prev-to-current var(--f7-page-cover-transition-duration) forwards}@keyframes f7-cover-next-to-current{from{transform:translateX(100%)}to{transform:translateX(0%)}}@keyframes f7-cover-current-to-next{from{transform:translateX(0%)}to{transform:translateX(100%)}}@keyframes f7-cover-current-to-prev{from{transform:translateZ(0);opacity:1}to{transform:translateZ(-300px);opacity:.5}}@keyframes f7-cover-prev-to-current{from{transform:translateZ(-300px);opacity:.5}to{transform:translateZ(0);opacity:1}}.router-transition-f7-dive-backward,.router-transition-f7-dive-forward{background:var(--f7-page-bg-color);perspective:1200px}.router-transition-f7-dive-forward .page-next{animation:f7-dive-next-to-current var(--f7-page-dive-transition-duration) forwards}.router-transition-f7-dive-forward .page-current{animation:f7-dive-current-to-prev var(--f7-page-dive-transition-duration) forwards}.router-transition-f7-dive-backward .page-current{animation:f7-dive-current-to-next var(--f7-page-dive-transition-duration) forwards}.router-transition-f7-dive-backward .page-previous{animation:f7-dive-prev-to-current var(--f7-page-dive-transition-duration) forwards}@keyframes f7-dive-next-to-current{from{opacity:0;transform:translateZ(-150px)}50%{opacity:0}to{opacity:1;transform:translateZ(0px)}}@keyframes f7-dive-current-to-next{from{opacity:1;transform:translateZ(0px)}50%{opacity:0}to{opacity:0;transform:translateZ(-150px)}}@keyframes f7-dive-current-to-prev{from{transform:translateZ(0px);opacity:1}50%{opacity:0}to{opacity:0;transform:translateZ(150px)}}@keyframes f7-dive-prev-to-current{from{opacity:0;transform:translateZ(150px)}50%{opacity:0}to{opacity:1;transform:translateZ(0px)}}.router-transition-f7-fade-backward,.router-transition-f7-fade-forward{background:var(--f7-page-bg-color)}.router-transition-f7-fade-forward .page-next{opacity:0!important;animation:f7-fade-in var(--f7-page-fade-transition-duration) forwards}.router-transition-f7-fade-forward .page-current{animation:f7-fade-out var(--f7-page-fade-transition-duration) forwards}.router-transition-f7-fade-backward .page-current{animation:f7-fade-out var(--f7-page-fade-transition-duration) forwards}.router-transition-f7-fade-backward .page-previous{animation:f7-fade-in var(--f7-page-fade-transition-duration) forwards}@keyframes f7-fade-in{from{opacity:0}50%{opacity:0}to{opacity:1}}@keyframes f7-fade-out{from{opacity:1}50%{opacity:0}to{opacity:0}}.router-transition-f7-flip-backward,.router-transition-f7-flip-forward{background:#000;perspective:1200px}.router-transition-f7-flip-backward .page,.router-transition-f7-flip-forward .page{-webkit-backface-visibility:hidden;backface-visibility:hidden}.router-transition-f7-flip-forward .page-next{animation:f7-flip-next-to-current var(--f7-page-flip-transition-duration) forwards}.router-transition-f7-flip-forward .page-current{animation:f7-flip-current-to-prev var(--f7-page-flip-transition-duration) forwards}.router-transition-f7-flip-backward .page-current{animation:f7-flip-current-to-next var(--f7-page-flip-transition-duration) forwards}.router-transition-f7-flip-backward .page-previous{animation:f7-flip-prev-to-current var(--f7-page-flip-transition-duration) forwards}@keyframes f7-flip-next-to-current{from{border-radius:30px;transform:translateZ(-100vmax) rotateY(180deg)}to{border-radius:0;transform:translateZ(0px) rotateY(0deg)}}@keyframes f7-flip-current-to-next{from{border-radius:0px;transform:translateZ(0px) rotateY(0deg)}to{border-radius:30px;transform:translateZ(-100vmax) rotateY(180deg)}}@keyframes f7-flip-current-to-prev{from{border-radius:0px;transform:translateZ(0px) rotateY(0deg)}to{border-radius:30px;transform:translateZ(-100vmax) rotateY(-180deg)}}@keyframes f7-flip-prev-to-current{from{border-radius:30px;transform:translateZ(-100vmax) rotateY(-180deg)}to{border-radius:0px;transform:translateZ(0px) rotateY(0deg)}}.router-transition-f7-parallax-forward .page-next{animation:f7-parallax-next-to-current var(--f7-page-parallax-transition-duration) forwards}.router-transition-f7-parallax-forward .page-current{animation:f7-parallax-current-to-prev var(--f7-page-parallax-transition-duration) forwards}.router-transition-f7-parallax-backward .page-current{animation:f7-parallax-current-to-next var(--f7-page-parallax-transition-duration) forwards}.router-transition-f7-parallax-backward .page-previous{animation:f7-parallax-prev-to-current var(--f7-page-parallax-transition-duration) forwards}@keyframes f7-parallax-next-to-current{from{transform:translateX(100%)}to{transform:translateX(0%)}}@keyframes f7-parallax-current-to-next{from{transform:translateX(0%)}to{transform:translateX(100%)}}@keyframes f7-parallax-current-to-prev{from{transform:translateX(0%)}to{transform:translateX(-20%)}}@keyframes f7-parallax-prev-to-current{from{transform:translateX(-20%)}to{transform:translateX(0%)}}.router-transition-f7-push-forward .page-next{animation:f7-push-next-to-current var(--f7-page-push-transition-duration) forwards}.router-transition-f7-push-forward .page-current{animation:f7-push-current-to-prev var(--f7-page-push-transition-duration) forwards}.router-transition-f7-push-backward .page-current{animation:f7-push-current-to-next var(--f7-page-push-transition-duration) forwards}.router-transition-f7-push-backward .page-previous{animation:f7-push-prev-to-current var(--f7-page-push-transition-duration) forwards}@keyframes f7-push-next-to-current{from{transform:translateX(100%)}to{transform:translateX(0%)}}@keyframes f7-push-current-to-next{from{transform:translateX(0%)}to{transform:translateX(100%)}}@keyframes f7-push-current-to-prev{from{transform:translateX(0%)}to{transform:translateX(-100%)}}@keyframes f7-push-prev-to-current{from{transform:translateX(-100%)}to{transform:translateX(0%)}}:root{--f7-link-highlight-black:rgba(0, 0, 0, 0.1);--f7-link-highlight-white:rgba(255, 255, 255, 0.15);--f7-link-highlight-color:var(--f7-link-highlight-black)}.theme-dark{--f7-link-highlight-color:var(--f7-link-highlight-white)}.link,.tab-link{display:inline-flex;align-items:center;align-content:center;justify-content:center;position:relative;box-sizing:border-box;z-index:1}.link i+i,.link i+span,.link span+i,.link span+span{margin-left:4px}.ios .link{transition:opacity .3s}.ios .link.active-state{opacity:.3;transition-duration:0s}.aurora .link{transition:opacity .3s}.aurora .link.active-state{opacity:.3;transition-duration:0s}:root{--f7-navbar-hide-show-transition-duration:400ms;--f7-navbar-title-line-height:1.2;--f7-navbar-title-font-size:inherit;--f7-navbar-subtitle-text-align:inherit;--f7-navbar-large-title-line-height:1.2;--f7-navbar-large-title-text-color:inherit;--f7-navbar-large-title-padding-left:16px;--f7-navbar-large-title-padding-right:16px}.ios{--f7-navbar-height:44px;--f7-navbar-tablet-height:44px;--f7-navbar-font-size:17px;--f7-navbar-inner-padding-left:8px;--f7-navbar-inner-padding-right:8px;--f7-navbar-title-font-weight:600;--f7-navbar-title-margin-left:0;--f7-navbar-title-margin-right:0;--f7-navbar-title-text-align:center;--f7-navbar-subtitle-font-size:10px;--f7-navbar-subtitle-line-height:1;--f7-navbar-shadow-image:none;--f7-navbar-large-title-height:52px;--f7-navbar-large-title-font-size:34px;--f7-navbar-large-title-font-weight:700;--f7-navbar-large-title-letter-spacing:-0.03em;--f7-navbar-large-title-padding-vertical:6px;--f7-navbar-subtitle-text-color:rgba(0, 0, 0, 0.55)}.ios .theme-dark,.ios.theme-dark{--f7-navbar-subtitle-text-color:rgba(255, 255, 255, 0.55)}.md{--f7-navbar-height:56px;--f7-navbar-tablet-height:64px;--f7-navbar-font-size:20px;--f7-navbar-inner-padding-left:0px;--f7-navbar-inner-padding-right:0px;--f7-navbar-title-font-weight:500;--f7-navbar-title-margin-left:16px;--f7-navbar-title-margin-right:16px;--f7-navbar-title-text-align:left;--f7-navbar-subtitle-font-size:14px;--f7-navbar-subtitle-line-height:1.2;--f7-navbar-shadow-image:var(--f7-bars-shadow-bottom-image);--f7-navbar-large-title-font-size:34px;--f7-navbar-large-title-height:56px;--f7-navbar-large-title-font-weight:500;--f7-navbar-large-title-letter-spacing:0;--f7-navbar-large-title-padding-vertical:8px;--f7-navbar-subtitle-text-color:rgba(0, 0, 0, 0.85)}.md .theme-dark,.md.theme-dark{--f7-navbar-subtitle-text-color:rgba(255, 255, 255, 0.85)}.aurora{--f7-navbar-height:38px;--f7-navbar-tablet-height:38px;--f7-navbar-font-size:14px;--f7-navbar-inner-padding-left:16px;--f7-navbar-inner-padding-right:16px;--f7-navbar-title-font-weight:600;--f7-navbar-title-margin-left:0;--f7-navbar-title-margin-right:0;--f7-navbar-title-text-align:center;--f7-navbar-subtitle-font-size:12px;--f7-navbar-subtitle-line-height:1;--f7-navbar-shadow-image:none;--f7-navbar-large-title-height:38px;--f7-navbar-large-title-font-size:26px;--f7-navbar-large-title-font-weight:bold;--f7-navbar-large-title-letter-spacing:-0.03em;--f7-navbar-large-title-padding-vertical:4px;--f7-navbar-link-height:auto;--f7-navbar-link-line-height:inherit;--f7-navbar-subtitle-text-color:rgba(0, 0, 0, 0.6)}.aurora .theme-dark,.aurora.theme-dark{--f7-navbar-subtitle-text-color:rgba(255, 255, 255, 0.5)}.navbar,.navbars{z-index:500;left:0;top:0;width:100%}.navbars{position:absolute}.navbars .navbar{z-index:auto}.navbar{--f7-navbar-large-collapse-progress:0;position:relative;-webkit-backface-visibility:hidden;backface-visibility:hidden;box-sizing:border-box;margin:0;height:calc(var(--f7-navbar-height) + var(--f7-safe-area-top));color:var(--f7-navbar-text-color,var(--f7-bars-text-color));font-size:var(--f7-navbar-font-size)}.navbar.stacked{display:none}.navbar b{font-weight:500}.navbar a{color:var(--f7-navbar-link-color,var(--f7-bars-link-color,var(--f7-theme-color)))}.navbar a.link{display:flex;justify-content:flex-start;line-height:var(--f7-navbar-link-line-height,var(--f7-navbar-height));height:var(--f7-navbar-link-height,var(--f7-navbar-height))}.navbar .left,.navbar .right,.navbar .title{position:relative;z-index:10}.navbar .title{position:relative;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-shrink:10;font-weight:var(--f7-navbar-title-font-weight);display:inline-block;line-height:var(--f7-navbar-title-line-height);text-align:var(--f7-navbar-title-text-align);font-size:var(--f7-navbar-title-font-size);margin-left:var(--f7-navbar-title-margin-left);margin-right:var(--f7-navbar-title-margin-left)}.navbar .subtitle{display:block;color:var(--f7-navbar-subtitle-text-color);font-weight:400;font-size:var(--f7-navbar-subtitle-font-size);line-height:var(--f7-navbar-subtitle-line-height);text-align:var(--f7-navbar-subtitle-text-align)}.navbar .left,.navbar .right{flex-shrink:0;display:flex;justify-content:flex-start;align-items:center}.navbar .right:first-child{position:absolute;height:100%}.navbar .no-border .navbar-bg:after,.navbar .no-hairline .navbar-bg:after,.navbar.no-border .navbar-bg:after,.navbar.no-hairline .navbar-bg:after{display:none!important}.navbar .no-border .title-large:after,.navbar .no-hairline .title-large:after,.navbar.no-border .title-large:after,.navbar.no-hairline .title-large:after{display:none!important}.navbar .no-shadow .navbar-bg:before,.navbar.no-shadow .navbar-bg:before{display:none!important}.navbar-hidden .navbar .navbar-bg:before,.navbar.navbar-hidden .navbar-bg:before{opacity:0!important}.navbar-bg{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:0;background:var(--f7-navbar-bg-color);background-image:var(--f7-navbar-bg-image,var(--f7-bars-bg-image));background-color:var(--f7-navbar-bg-color,var(--f7-bars-bg-color));transition-property:transform}@supports ((-webkit-backdrop-filter:blur(20px)) or (backdrop-filter:blur(20px))){.ios-translucent-bars .navbar-bg{background-color:rgba(var(--f7-navbar-bg-color-rgb,var(--f7-bars-bg-color-rgb)),var(--f7-bars-translucent-opacity));-webkit-backdrop-filter:saturate(180%) blur(var(--f7-bars-translucent-blur));backdrop-filter:saturate(180%) blur(var(--f7-bars-translucent-blur))}}.navbar-bg:after,.navbar-bg:before{-webkit-backface-visibility:hidden;backface-visibility:hidden}.navbar-bg:after{content:'';position:absolute;background-color:var(--f7-navbar-border-color,var(--f7-bars-border-color));display:block;z-index:15;top:auto;right:auto;bottom:0;left:0;height:1px;width:100%;transform-origin:50% 100%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.navbar-bg:before{content:'';position:absolute;right:0;width:100%;top:100%;bottom:auto;height:8px;pointer-events:none;background:var(--f7-navbar-shadow-image)}.navbar-bg:after{z-index:1}@media (min-width:768px) and (min-height:600px){:root{--f7-navbar-height:var(--f7-navbar-tablet-height)}}.navbar-transitioning,.navbar-transitioning .left,.navbar-transitioning .navbar-bg,.navbar-transitioning .navbar-bg:before,.navbar-transitioning .right,.navbar-transitioning .subnavbar,.navbar-transitioning .title,.navbar-transitioning .title-large-text{transition-duration:var(--f7-navbar-hide-show-transition-duration)}.navbar-page-transitioning{transition-duration:var(--f7-page-swipeback-transition-duration)!important}.navbar-page-transitioning .navbar-bg,.navbar-page-transitioning .title-large-text{transition-duration:var(--f7-page-swipeback-transition-duration)!important}.navbar-hidden{transform:translate3d(0,calc(-1 * var(--f7-navbar-height)),0)}.navbar-hidden .navbar-inner{pointer-events:none}.navbar-hidden .navbar-inner>.left,.navbar-hidden .navbar-inner>.right,.navbar-hidden .navbar-inner>.title{opacity:0!important}.navbar-hidden .subnavbar{pointer-events:auto}.navbar-hidden-statusbar{transform:translate3d(0,calc(-1 * var(--f7-navbar-height) - var(--f7-safe-area-top)),0)}.navbar-large-hidden .navbar-large{--f7-navbar-large-collapse-progress:1}.navbar-inner{position:absolute;left:0;bottom:0;width:100%;height:100%;display:flex;align-items:center;box-sizing:border-box;padding:var(--f7-safe-area-top) calc(var(--f7-navbar-inner-padding-right) + var(--f7-safe-area-right)) 0 calc(var(--f7-navbar-inner-padding-left) + var(--f7-safe-area-left));transform:translate3d(0,0,0);z-index:10}.navbars>.navbar,.page>.navbar,.view>.navbar,.views>.navbar{position:absolute}.navbar-transparent:not(.navbar-large):not(.navbar-transparent-visible):not(.with-searchbar-expandable-enabled) .navbar-bg,.navbar-transparent:not(.navbar-large):not(.navbar-transparent-visible):not(.with-searchbar-expandable-enabled) .title{opacity:0}.navbar-large .navbar-bg{height:calc(100% + var(--f7-navbar-large-title-height));transform:translate3d(0px,calc(-1 * var(--f7-navbar-large-collapse-progress) * var(--f7-navbar-large-title-height)),0)}.navbar-large-transparent .navbar-bg,.navbar-large.navbar-transparent .navbar-bg{opacity:var(--f7-navbar-large-collapse-progress);height:100%;transform:none}.ios .router-navbar-transition-from-large .navbar-bg,.ios .router-navbar-transition-to-large .navbar-bg,.navbar-bg.ios-swipeback-navbar-bg-large,.navbar-large-transparent .navbar-bg.ios-swipeback-navbar-bg-large,.navbar-large.navbar-transparent .navbar-bg.ios-swipeback-navbar-bg-large{height:calc(100% + var(--f7-navbar-large-title-height));transform:translate3d(0px,calc(-1 * var(--f7-navbar-large-collapse-progress) * var(--f7-navbar-large-title-height)),0)}.ios .navbar:not(.navbar-large) .navbar-bg{--f7-navbar-large-collapse-progress:1}.navbar-large .title{opacity:var(--f7-navbar-large-collapse-progress)}.navbar-large-collapsed{--f7-navbar-large-collapse-progress:1}.navbar-large-collapsed .title-large{pointer-events:none}.navbar .title-large{box-sizing:border-box;position:absolute;left:0;right:0;top:100%;display:flex;align-items:flex-end;white-space:nowrap;overflow:hidden;height:var(--f7-navbar-large-title-height);z-index:5}.navbar .title-large-text{text-overflow:ellipsis;white-space:nowrap;color:var(--f7-navbar-large-title-text-color);letter-spacing:var(--f7-navbar-large-title-letter-spacing);font-size:var(--f7-navbar-large-title-font-size);font-weight:var(--f7-navbar-large-title-font-weight);line-height:var(--f7-navbar-large-title-line-height);padding-left:calc(var(--f7-navbar-large-title-padding-left) + var(--f7-safe-area-left));padding-right:calc(var(--f7-navbar-large-title-padding-right) + var(--f7-safe-area-right));padding-top:var(--f7-navbar-large-title-padding-vertical);padding-bottom:var(--f7-navbar-large-title-padding-vertical);box-sizing:border-box;overflow:hidden;width:100%;transform:translate3d(0px,calc(-1 * var(--f7-navbar-large-collapse-progress) * var(--f7-navbar-large-title-height)),0);transform-origin:calc(var(--f7-navbar-large-title-padding-left) + var(--f7-safe-area-left)) center}.navbar-no-title-large-transition .title-large-text{transition-duration:0s}.navbars~*,.navbar~*{--f7-page-navbar-offset:calc(var(--f7-navbar-height) + var(--f7-safe-area-top))}.navbars~* .page-with-navbar-large,.navbars~.page-with-navbar-large,.navbar~* .page-with-navbar-large,.navbar~.page-with-navbar-large,.page-with-navbar-large .navbar~*{--f7-page-navbar-offset:calc(var(--f7-navbar-height) + var(--f7-navbar-large-title-height) + var(--f7-safe-area-top))}.page.no-navbar,.page.no-navbar .navbar~*{--f7-page-navbar-offset:var(--f7-safe-area-top)}.ios{--f7-navbarLeftTextOffset:calc(4px + 12px + var(--f7-navbar-inner-padding-left));--f7-navbarTitleLargeOffset:var(--f7-navbar-large-title-padding-left);--f7-navbar-large-transparent-bg-center:translateX(0);--f7-navbar-large-bg-center-top:translateX(0) translateY(calc(-1 * var(--f7-navbar-large-title-height)));--f7-navbar-large-bg-center-bottom:translateX(0) translateY(0);--f7-navbar-large-transparent-bg-left:translateX(-100%);--f7-navbar-large-bg-left-top:translateX(-100%) translateY(calc(-1 * var(--f7-navbar-large-title-height)));--f7-navbar-large-bg-left-bottom:translateX(-100%) translateY(0);--f7-navbar-large-bg-right-top:translateX(100%) translateY(calc(-1 * var(--f7-navbar-large-title-height)));--f7-navbar-large-bg-right-bottom:translateX(100%) translateY(0)}.ios .navbar a.icon-only{width:44px;margin:0;justify-content:center}.ios .navbar .left a+a,.ios .navbar .right a+a{margin-left:16px}.ios .navbar b{font-weight:600}.ios .navbar .left{margin-right:10px}.ios .navbar .right{margin-left:10px}.ios .navbar .right:first-child{right:calc(8px + var(--f7-safe-area-right))}.ios .navbar-inner{justify-content:space-between}.ios .navbar-inner-left-title{justify-content:flex-start}.ios .navbar-inner-left-title .right{margin-left:auto}.ios .navbar-inner-left-title .title{text-align:left;margin-right:10px}.ios .navbar-next .fading,.ios .navbar-next .left,.ios .navbar-next .right,.ios .navbar-next .subnavbar,.ios .navbar-next .title,.ios .view-master-detail .navbar-previous:not(.navbar-master) .fading,.ios .view-master-detail .navbar-previous:not(.navbar-master) .left,.ios .view-master-detail .navbar-previous:not(.navbar-master) .right,.ios .view-master-detail .navbar-previous:not(.navbar-master) .subnavbar,.ios .view-master-detail .navbar-previous:not(.navbar-master) .title,.ios .view:not(.view-master-detail) .navbar-previous .fading,.ios .view:not(.view-master-detail) .navbar-previous .left,.ios .view:not(.view-master-detail) .navbar-previous .right,.ios .view:not(.view-master-detail) .navbar-previous .subnavbar,.ios .view:not(.view-master-detail) .navbar-previous .title{opacity:0}.ios .view-master-detail .navbar-previous:not(.navbar-master),.ios .view:not(.view-master-detail) .navbar-previous{pointer-events:none}.ios .view-master-detail .navbar-previous:not(.navbar-master) .title-large,.ios .view:not(.view-master-detail) .navbar-previous .title-large{opacity:0;transition-duration:0s}.ios .view-master-detail .navbar-previous:not(.navbar-master) .title-large .title-large-text,.ios .view:not(.view-master-detail) .navbar-previous .title-large .title-large-text{transform:scale(.5);transition-duration:0s}.ios .view-master-detail .navbar-previous:not(.navbar-master) .sliding .subnavbar,.ios .view-master-detail .navbar-previous:not(.navbar-master) .subnavbar.sliding,.ios .view:not(.view-master-detail) .navbar-previous .sliding .subnavbar,.ios .view:not(.view-master-detail) .navbar-previous .subnavbar.sliding{opacity:1;transform:translate3d(-100%,0,0)}.ios .view-master-detail .navbar-previous:not(.navbar-master) .navbar-bg,.ios .view:not(.view-master-detail) .navbar-previous .navbar-bg{transform:translateX(-100%)}.ios .navbar-next{pointer-events:none}.ios .navbar-next .navbar-bg{transform:translateX(100%)}.ios .navbar-next .title-large .title-large-text{transition-duration:0s;transform:translateX(100%) translateY(calc(-1 * var(--f7-navbar-large-title-height)))}.ios .navbar-next .sliding .subnavbar,.ios .navbar-next .subnavbar.sliding{opacity:1;transform:translate3d(100%,0,0)}.ios .router-transition .navbar,.ios .router-transition .navbar-bg{transition-duration:var(--f7-page-transition-duration)}.ios .router-transition .navbar-bg{animation-duration:var(--f7-page-transition-duration);animation-fill-mode:forwards}.ios .router-transition .title-large,.ios .router-transition .title-large-text{transition-duration:0s}.ios .router-transition .navbar-current .left,.ios .router-transition .navbar-current .right,.ios .router-transition .navbar-current .subnavbar,.ios .router-transition .navbar-current .title{animation:ios-navbar-element-fade-out var(--f7-page-transition-duration) forwards}.ios .router-transition .navbar-current .sliding .left,.ios .router-transition .navbar-current .sliding .left .icon+span,.ios .router-transition .navbar-current .sliding .right,.ios .router-transition .navbar-current .sliding .title,.ios .router-transition .navbar-current .sliding.left,.ios .router-transition .navbar-current .sliding.left .icon+span,.ios .router-transition .navbar-current .sliding.right,.ios .router-transition .navbar-current .sliding.title{transition-duration:var(--f7-page-transition-duration);opacity:0!important;animation:none}.ios .router-transition .navbar-current .sliding .subnavbar,.ios .router-transition .navbar-current .sliding.subnavbar{transition-duration:var(--f7-page-transition-duration);animation:none;opacity:1}.ios .router-transition-backward .navbar-previous .left,.ios .router-transition-backward .navbar-previous .right,.ios .router-transition-backward .navbar-previous .subnavbar,.ios .router-transition-backward .navbar-previous .title,.ios .router-transition-forward .navbar-next .left,.ios .router-transition-forward .navbar-next .right,.ios .router-transition-forward .navbar-next .subnavbar,.ios .router-transition-forward .navbar-next .title{animation:ios-navbar-element-fade-in var(--f7-page-transition-duration) forwards}.ios .router-transition-backward .navbar-previous .sliding .left,.ios .router-transition-backward .navbar-previous .sliding .left .icon+span,.ios .router-transition-backward .navbar-previous .sliding .right,.ios .router-transition-backward .navbar-previous .sliding .subnavbar,.ios .router-transition-backward .navbar-previous .sliding .title,.ios .router-transition-backward .navbar-previous .sliding.left,.ios .router-transition-backward .navbar-previous .sliding.left .icon+span,.ios .router-transition-backward .navbar-previous .sliding.right,.ios .router-transition-backward .navbar-previous .sliding.title,.ios .router-transition-forward .navbar-next .sliding .left,.ios .router-transition-forward .navbar-next .sliding .left .icon+span,.ios .router-transition-forward .navbar-next .sliding .right,.ios .router-transition-forward .navbar-next .sliding .subnavbar,.ios .router-transition-forward .navbar-next .sliding .title,.ios .router-transition-forward .navbar-next .sliding.left,.ios .router-transition-forward .navbar-next .sliding.left .icon+span,.ios .router-transition-forward .navbar-next .sliding.right,.ios .router-transition-forward .navbar-next .sliding.title{transition-duration:var(--f7-page-transition-duration);animation:none;transform:translate3d(0,0,0)!important;opacity:1!important}.ios .router-transition-backward .navbar-previous.navbar-transparent:not(.navbar-large):not(.navbar-transparent-visible) .title,.ios .router-transition-forward .navbar-next.navbar-transparent:not(.navbar-large):not(.navbar-transparent-visible) .title{animation:none}.ios .router-transition-backward .navbar-previous.navbar-transparent:not(.navbar-large):not(.navbar-transparent-visible) .sliding .title,.ios .router-transition-backward .navbar-previous.navbar-transparent:not(.navbar-large):not(.navbar-transparent-visible) .sliding.title,.ios .router-transition-forward .navbar-next.navbar-transparent:not(.navbar-large):not(.navbar-transparent-visible) .sliding .title,.ios .router-transition-forward .navbar-next.navbar-transparent:not(.navbar-large):not(.navbar-transparent-visible) .sliding.title{opacity:0!important}.ios .router-transition-backward .navbar-previous.with-searchbar-expandable-enabled .left,.ios .router-transition-backward .navbar-previous.with-searchbar-expandable-enabled .right,.ios .router-transition-backward .navbar-previous.with-searchbar-expandable-enabled .subnavbar,.ios .router-transition-backward .navbar-previous.with-searchbar-expandable-enabled .title,.ios .router-transition-backward .navbar-previous.with-searchbar-expandable-enabled-no-transition .left,.ios .router-transition-backward .navbar-previous.with-searchbar-expandable-enabled-no-transition .right,.ios .router-transition-backward .navbar-previous.with-searchbar-expandable-enabled-no-transition .subnavbar,.ios .router-transition-backward .navbar-previous.with-searchbar-expandable-enabled-no-transition .title{animation:none}.ios .router-transition-forward .navbar-current.router-navbar-transition-from-large.router-navbar-transition-to-large .title-large,.ios .router-transition-forward .navbar-current.router-navbar-transition-from-large:not(.router-navbar-transition-to-large) .title-large{overflow:visible}.ios .router-transition-forward .navbar-current.router-navbar-transition-from-large.router-navbar-transition-to-large .title-large .title-large-text,.ios .router-transition-forward .navbar-current.router-navbar-transition-from-large:not(.router-navbar-transition-to-large) .title-large .title-large-text{animation:ios-navbar-large-title-text-slide-up var(--f7-page-transition-duration) forwards,ios-navbar-large-title-text-fade-out var(--f7-page-transition-duration) forwards}.ios .router-transition-forward .navbar-next.router-navbar-transition-from-large .left .back span{animation:ios-navbar-back-text-next-to-current var(--f7-page-transition-duration) forwards;transition:none;transform-origin:left center}.ios .router-transition-forward .navbar-next.router-navbar-transition-from-large.router-navbar-transition-to-large .title-large{overflow:visible}.ios .router-transition-forward .navbar-next.router-navbar-transition-from-large.router-navbar-transition-to-large .title-large .title-large-text{animation:ios-navbar-large-title-text-slide-left var(--f7-page-transition-duration) forwards}.ios .router-transition-forward .navbar-next.router-navbar-transition-to-large:not(.router-navbar-transition-from-large) .title-large .title-large-text{animation:ios-navbar-large-title-text-slide-left var(--f7-page-transition-duration) forwards}.ios .router-transition-forward .navbar-current.navbar-large:not(.navbar-large-collapsed) .title,.ios .router-transition-forward .navbar-next.navbar-large:not(.navbar-large-collapsed) .title{animation:none;opacity:0!important;transition-duration:0}.ios .router-transition-backward .navbar-current.router-navbar-transition-to-large .left .back span{animation:ios-navbar-back-text-current-to-previous var(--f7-page-transition-duration) forwards;transition:none;transform-origin:left center}.ios .router-transition-backward .navbar-current.router-navbar-transition-from-large.router-navbar-transition-to-large .title-large{overflow:visible}.ios .router-transition-backward .navbar-current.router-navbar-transition-from-large.router-navbar-transition-to-large .title-large .title-large-text{animation:ios-navbar-large-title-text-slide-right var(--f7-page-transition-duration) forwards}.ios .router-transition-backward .navbar-current.router-navbar-transition-from-large:not(.router-navbar-transition-to-large) .title-large .title-large-text{animation:ios-navbar-large-title-text-slide-right var(--f7-page-transition-duration) forwards}.ios .router-transition-backward .navbar-current.router-navbar-transition-to-large:not(.router-navbar-transition-from-large) .title-large{opacity:0}.ios .router-transition-backward .navbar-previous.router-navbar-transition-from-large.router-navbar-transition-to-large .title-large,.ios .router-transition-backward .navbar-previous.router-navbar-transition-to-large:not(.router-navbar-transition-from-large) .title-large{overflow:visible;opacity:1}.ios .router-transition-backward .navbar-previous.router-navbar-transition-from-large.router-navbar-transition-to-large .title-large .title-large-text,.ios .router-transition-backward .navbar-previous.router-navbar-transition-to-large:not(.router-navbar-transition-from-large) .title-large .title-large-text{animation:ios-navbar-large-title-text-slide-down var(--f7-page-transition-duration) forwards,ios-navbar-large-title-text-fade-in var(--f7-page-transition-duration) forwards}.ios .router-transition-backward .navbar-current.navbar-large:not(.navbar-large-collapsed) .title,.ios .router-transition-backward .navbar-previous.navbar-large:not(.navbar-large-collapsed) .title{animation:none;opacity:0!important;transition-duration:0}.ios .router-transition-forward .navbar-current .navbar-bg{animation-name:ios-navbar-bg-from-cb-to-lb}.ios .router-transition-forward .navbar-current.router-navbar-transition-from-large.router-navbar-transition-to-large .navbar-bg{animation-name:ios-navbar-bg-from-cb-to-lb}.ios .router-transition-forward .navbar-current.router-navbar-transition-from-large:not(.router-navbar-transition-to-large) .navbar-bg{animation-name:ios-navbar-bg-from-cb-to-lt}.ios .router-transition-forward .navbar-current:not(.router-navbar-transition-from-large).router-navbar-transition-to-large .navbar-bg{animation-name:ios-navbar-bg-from-ct-to-lb}.ios .router-transition-forward .navbar-current.navbar-large-collapsed:not(.router-navbar-transition-to-large) .navbar-bg{animation-name:ios-navbar-bg-from-ct-to-lt}.ios .router-transition-forward .navbar-current.navbar-large-collapsed.navbar-large-transparent:not(.router-navbar-transition-to-large) .navbar-bg,.ios .router-transition-forward .navbar-current.navbar-large-collapsed.navbar-large.navbar-transparent:not(.router-navbar-transition-to-large) .navbar-bg{animation-name:ios-navbar-transparent-bg-from-c-to-l}.ios .router-transition-forward .navbar-next .navbar-bg{animation-name:ios-navbar-bg-from-rb-to-cb}.ios .router-transition-forward .navbar-next.router-navbar-transition-from-large.router-navbar-transition-to-large .navbar-bg{animation-name:ios-navbar-bg-from-rb-to-cb}.ios .router-transition-forward .navbar-next.router-navbar-transition-from-large:not(.router-navbar-transition-to-large) .navbar-bg{animation-name:ios-navbar-bg-from-rb-to-ct}.ios .router-transition-forward .navbar-next:not(.router-navbar-transition-from-large).router-navbar-transition-to-large .navbar-bg{animation-name:ios-navbar-bg-from-rt-to-cb}.ios .router-transition-backward .navbar-current .navbar-bg{animation-name:ios-navbar-bg-from-cb-to-rb}.ios .router-transition-backward .navbar-current:not(.router-navbar-transition-from-large).router-navbar-transition-to-large .navbar-bg{animation-name:ios-navbar-bg-from-ct-to-rb}.ios .router-transition-backward .navbar-current.router-navbar-transition-from-large:not(.router-navbar-transition-to-large) .navbar-bg{animation-name:ios-navbar-bg-from-cb-to-rt}.ios .router-transition-backward .navbar-current.navbar-large-collapsed .navbar-bg{animation-name:ios-navbar-bg-from-ct-to-rt}.ios .router-transition-backward .navbar-current.navbar-large-collapsed.navbar-large-transparent .navbar-bg,.ios .router-transition-backward .navbar-current.navbar-large-collapsed.navbar-large.navbar-transparent .navbar-bg{animation-name:ios-navbar-bg-from-cb-to-rb}.ios .router-transition-backward .navbar-current.navbar-large-collapsed.router-navbar-transition-to-large .navbar-bg{animation-name:ios-navbar-bg-from-ct-to-rb}.ios .router-transition-backward .navbar-previous .navbar-bg{animation-name:ios-navbar-bg-from-lb-to-cb}.ios .router-transition-backward .navbar-previous:not(.router-navbar-transition-from-large).router-navbar-transition-to-large .navbar-bg{animation-name:ios-navbar-bg-from-lt-to-cb}.ios .router-transition-backward .navbar-previous.router-navbar-transition-from-large:not(.router-navbar-transition-to-large) .navbar-bg{animation-name:ios-navbar-bg-from-lb-to-ct}.ios .router-transition-backward .navbar-previous.navbar-large-collapsed .navbar-bg{animation-name:ios-navbar-bg-from-lt-to-ct}.ios .router-transition-backward .navbar-previous.navbar-large-collapsed.navbar-large-transparent .navbar-bg,.ios .router-transition-backward .navbar-previous.navbar-large-collapsed.navbar-large.navbar-transparent .navbar-bg{animation-name:ios-navbar-transparent-bg-from-l-to-c}.ios .router-transition-backward .navbar-previous.navbar-large-collapsed.navbar-large-transparent.router-navbar-transition-from-large .navbar-bg,.ios .router-transition-backward .navbar-previous.navbar-large-collapsed.navbar-large.navbar-transparent.router-navbar-transition-from-large .navbar-bg{animation-name:ios-navbar-bg-from-lb-to-ct}.view-master-detail .navbars{z-index:auto}.view-master-detail .page-master{z-index:525}.view-master-detail .navbar-master .navbar-bg,.view-master-detail .navbar-master .navbar-inner{z-index:550}.view-master-detail .navbar-master-detail .navbar-bg,.view-master-detail .navbar-master-detail .navbar-inner{z-index:500}.view-master-detail .navbar-master.navbar-previous{pointer-events:auto}.view-master-detail .navbar-master.navbar-previous .left,.view-master-detail .navbar-master.navbar-previous .right,.view-master-detail .navbar-master.navbar-previous .subnavbar,.view-master-detail .navbar-master.navbar-previous:not(.navbar-large) .title{opacity:1}.view-master-detail.router-transition .navbar-master .fading,.view-master-detail.router-transition .navbar-master .left,.view-master-detail.router-transition .navbar-master .left .icon+span,.view-master-detail.router-transition .navbar-master .right,.view-master-detail.router-transition .navbar-master .subnavbar,.view-master-detail.router-transition .navbar-master:not(.navbar-large) .title{opacity:1!important;transition-duration:0s;transform:none!important;animation:none!important}.view-master-detail.router-transition .navbar-master .navbar-bg{transition-duration:0s;animation:none!important}.view-master-detail.router-transition .navbar-master.navbar-large .title{opacity:calc(-1 + 2 * var(--f7-navbar-large-collapse-progress))!important;transition-duration:0s;transform:none!important;animation:none!important}.view-master-detail.router-transition .navbar-master.navbar-large .title-large,.view-master-detail.router-transition .navbar-master.navbar-large .title-large-text{transition-duration:0s;animation:none!important}.view-master-detail.router-transition .navbar-master.navbar-large-transparent .navbar-bg,.view-master-detail.router-transition .navbar-master.navbar-large.navbar-transparent .navbar-bg{height:100%!important;opacity:var(--f7-navbar-large-collapse-progress)!important}@keyframes ios-navbar-element-fade-in{0%{opacity:0}25%{opacity:0}to{opacity:1}}@keyframes ios-navbar-element-fade-out{from{opacity:1}75%{opacity:0}to{opacity:0}}@keyframes ios-navbar-large-title-text-slide-up{0%{transform:translateX(0px) translateY(0%) scale(1)}100%{transform:translateX(calc(var(--f7-navbarLeftTextOffset) - var(--f7-navbarTitleLargeOffset))) translateY(calc(-1 * var(--f7-navbar-large-title-height) + var(--f7-navbar-large-title-padding-vertical))) scale(.5)}}@keyframes ios-navbar-large-title-text-slide-down{0%{transform:translateX(calc(var(--f7-navbarLeftTextOffset) - var(--f7-navbarTitleLargeOffset))) translateY(calc(-1 * var(--f7-navbar-large-title-height) + var(--f7-navbar-large-title-padding-vertical)/ 2)) scale(.5)}100%{transform:translateX(0px) translateY(0%) scale(1)}}@keyframes ios-navbar-large-title-text-slide-left{0%{transform:translateX(100%)}100%{transform:translateX(0%)}}@keyframes ios-navbar-large-title-text-slide-right{0%{transform:translateX(0%)}100%{transform:translateX(100%)}}@keyframes ios-navbar-large-title-text-fade-out{0%{opacity:1}80%{opacity:0}100%{opacity:0}}@keyframes ios-navbar-large-title-text-fade-in{0%{opacity:0}20%{opacity:0}100%{opacity:1}}@keyframes ios-navbar-back-text-current-to-previous{0%{opacity:1;transform:translateY(0px) translateX(0px) scale(1)}80%{opacity:0}100%{opacity:0;transform:translateX(calc(var(--f7-navbarTitleLargeOffset) - var(--f7-navbarLeftTextOffset))) translateY(calc(1 * var(--f7-navbar-large-title-height) - var(--f7-navbar-large-title-padding-vertical)/ 2)) scale(2)}}@keyframes ios-navbar-back-text-next-to-current{0%{opacity:0;transform:translateX(calc(var(--f7-navbarTitleLargeOffset) - var(--f7-navbarLeftTextOffset))) translateY(calc(1 * var(--f7-navbar-large-title-height) + var(--f7-navbar-large-title-padding-vertical)/ 2)) scale(2)}20%{opacity:0}100%{opacity:1;transform:translateX(0px) translateY(0px) scale(1)}}@keyframes ios-navbar-bg-from-cb-to-lb{from{transform:var(--f7-navbar-large-bg-center-bottom)}to{transform:var(--f7-navbar-large-bg-left-bottom)}}@keyframes ios-navbar-bg-from-cb-to-lt{from{transform:var(--f7-navbar-large-bg-center-bottom)}to{transform:var(--f7-navbar-large-bg-left-top)}}@keyframes ios-navbar-bg-from-ct-to-lb{from{transform:var(--f7-navbar-large-bg-center-top)}to{transform:var(--f7-navbar-large-bg-left-bottom)}}@keyframes ios-navbar-bg-from-ct-to-lt{from{transform:var(--f7-navbar-large-bg-center-top)}to{transform:var(--f7-navbar-large-bg-left-top)}}@keyframes ios-navbar-bg-from-rb-to-cb{from{transform:var(--f7-navbar-large-bg-right-bottom)}to{transform:var(--f7-navbar-large-bg-center-bottom)}}@keyframes ios-navbar-bg-from-rb-to-ct{from{transform:var(--f7-navbar-large-bg-right-bottom)}to{transform:var(--f7-navbar-large-bg-center-top)}}@keyframes ios-navbar-bg-from-rt-to-cb{from{transform:var(--f7-navbar-large-bg-right-top)}to{transform:var(--f7-navbar-large-bg-center-bottom)}}@keyframes ios-navbar-bg-from-cb-to-rb{from{transform:var(--f7-navbar-large-bg-center-bottom)}to{transform:var(--f7-navbar-large-bg-right-bottom)}}@keyframes ios-navbar-bg-from-ct-to-rb{from{transform:var(--f7-navbar-large-bg-center-top)}to{transform:var(--f7-navbar-large-bg-right-bottom)}}@keyframes ios-navbar-bg-from-cb-to-rt{from{transform:var(--f7-navbar-large-bg-center-bottom)}to{transform:var(--f7-navbar-large-bg-right-top)}}@keyframes ios-navbar-bg-from-ct-to-rt{from{transform:var(--f7-navbar-large-bg-center-top)}to{transform:var(--f7-navbar-large-bg-right-top)}}@keyframes ios-navbar-bg-from-lb-to-cb{from{transform:var(--f7-navbar-large-bg-left-bottom)}to{transform:var(--f7-navbar-large-bg-center-bottom)}}@keyframes ios-navbar-bg-from-lt-to-cb{from{transform:var(--f7-navbar-large-bg-left-top)}to{transform:var(--f7-navbar-large-bg-center-bottom)}}@keyframes ios-navbar-bg-from-lb-to-ct{from{transform:var(--f7-navbar-large-bg-left-bottom)}to{transform:var(--f7-navbar-large-bg-center-top)}}@keyframes ios-navbar-bg-from-lt-to-ct{from{transform:var(--f7-navbar-large-bg-left-top)}to{transform:var(--f7-navbar-large-bg-center-top)}}@keyframes ios-navbar-transparent-bg-from-l-to-c{from{transform:var(--f7-navbar-large-transparent-bg-left)}to{transform:var(--f7-navbar-large-transparent-bg-center)}}@keyframes ios-navbar-transparent-bg-from-c-to-l{from{transform:var(--f7-navbar-large-transparent-bg-center)}to{transform:var(--f7-navbar-large-transparent-bg-left)}}.md .navbar a.link{padding:0 16px;min-width:48px}.md .navbar a.link:before{content:'';width:152%;height:152%;position:absolute;left:-26%;top:-26%;background-image:radial-gradient(circle at center,var(--f7-link-highlight-color) 66%,rgba(255,255,255,0) 66%);background-repeat:no-repeat;background-position:center;background-size:100% 100%;opacity:0;pointer-events:none;transition-duration:.6s}.md .navbar a.link.active-state:before{opacity:1;transition-duration:150ms}.md .navbar a.icon-only{min-width:0;flex-shrink:0;width:56px}.md .navbar .right{margin-left:auto}.md .navbar .right:first-child{right:var(--f7-safe-area-right)}.md .navbar-inner{justify-content:flex-start;overflow:hidden}.md .navbar-large:not(.navbar-large-collapsed) .navbar-inner{overflow:visible}.md .page.page-with-subnavbar .navbar-inner{overflow:visible}.md .navbar-inner-centered-title{justify-content:space-between}.md .navbar-inner-centered-title .right{margin-left:0}.md .navbar-inner-centered-title .title{text-align:center}.aurora .navbar a.icon-only{margin:0;justify-content:center}.aurora .navbar .left a+a,.aurora .navbar .right a+a{margin-left:10px}.aurora .navbar b{font-weight:700}.aurora .navbar .left{margin-right:10px}.aurora .navbar .right{margin-left:10px}.aurora .navbar .right:first-child{right:calc(16px + var(--f7-safe-area-right))}.aurora .navbar-inner{justify-content:space-between}.aurora .navbar-inner-left-title{justify-content:flex-start}.aurora .navbar-inner-left-title .right{margin-left:auto}.aurora .navbar-inner-left-title .title{text-align:left;margin-right:10px}:root{--f7-tabbar-link-active-bg-color:transparent;--f7-tabbar-label-text-transform:none;--f7-toolbar-hide-show-transition-duration:400ms}.ios{--f7-toolbar-height:44px;--f7-toolbar-font-size:17px;--f7-toolbar-inner-padding-left:8px;--f7-toolbar-inner-padding-right:8px;--f7-tabbar-labels-height:50px;--f7-tabbar-labels-tablet-height:50px;--f7-toolbar-top-shadow-image:none;--f7-toolbar-bottom-shadow-image:none;--f7-tabbar-icon-size:28px;--f7-tabbar-link-text-transform:none;--f7-tabbar-link-font-weight:400;--f7-tabbar-link-letter-spacing:0;--f7-tabbar-label-font-size:12px;--f7-tabbar-label-tablet-font-size:14px;--f7-tabbar-label-font-weight:500;--f7-tabbar-label-letter-spacing:0.01;--f7-tabbar-link-inactive-color:rgba(0, 0, 0, 0.4)}.ios .theme-dark,.ios.theme-dark{--f7-tabbar-link-inactive-color:rgba(255, 255, 255, 0.54)}.md{--f7-toolbar-height:48px;--f7-toolbar-font-size:14px;--f7-toolbar-inner-padding-left:0px;--f7-toolbar-inner-padding-right:0px;--f7-tabbar-labels-height:56px;--f7-tabbar-labels-tablet-height:56px;--f7-toolbar-top-shadow-image:var(--f7-bars-shadow-bottom-image);--f7-toolbar-bottom-shadow-image:var(--f7-bars-shadow-top-image);--f7-tabbar-icon-size:24px;--f7-tabbar-link-text-transform:uppercase;--f7-tabbar-link-font-weight:500;--f7-tabbar-link-letter-spacing:0.03em;--f7-tabbar-label-font-size:14px;--f7-tabbar-label-tablet-font-size:14px;--f7-tabbar-label-font-weight:400;--f7-tabbar-label-letter-spacing:0;--f7-tabbar-link-inactive-color:rgba(0, 0, 0, 0.54)}.md .theme-dark,.md.theme-dark{--f7-tabbar-link-inactive-color:rgba(255, 255, 255, 0.54)}.aurora{--f7-toolbar-height:38px;--f7-toolbar-font-size:14px;--f7-toolbar-inner-padding-left:16px;--f7-toolbar-inner-padding-right:16px;--f7-toolbar-link-height:auto;--f7-toolbar-link-line-height:inherit;--f7-tabbar-labels-height:44px;--f7-tabbar-labels-tablet-height:44px;--f7-tabbar-link-inactive-bg-color:rgba(0, 0, 0, 0.2);--f7-toolbar-top-shadow-image:none;--f7-toolbar-bottom-shadow-image:none;--f7-tabbar-icon-size:18px;--f7-tabbar-link-text-transform:none;--f7-tabbar-link-font-weight:400;--f7-tabbar-link-letter-spacing:0;--f7-tabbar-label-font-size:12px;--f7-tabbar-label-tablet-font-size:12px;--f7-tabbar-label-font-weight:500;--f7-tabbar-label-letter-spacing:0.01;--f7-tabbar-link-inactive-color:rgba(0, 0, 0, 0.5)}.aurora .theme-dark,.aurora.theme-dark{--f7-tabbar-link-inactive-color:rgba(255, 255, 255, 0.5)}.toolbar{width:100%;position:relative;margin:0;transform:translate3d(0,0,0);-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:600;box-sizing:border-box;left:0;height:var(--f7-toolbar-height);background-image:var(--f7-toolbar-bg-image,var(--f7-bars-bg-image));background-color:var(--f7-toolbar-bg-color,var(--f7-bars-bg-color));color:var(--f7-toolbar-text-color,var(--f7-bars-text-color));font-size:var(--f7-toolbar-font-size)}@supports ((-webkit-backdrop-filter:blur(20px)) or (backdrop-filter:blur(20px))){.ios-translucent-bars .toolbar{background-color:rgba(var(--f7-toolbar-bg-color-rgb,var(--f7-bars-bg-color-rgb)),var(--f7-bars-translucent-opacity));-webkit-backdrop-filter:saturate(180%) blur(var(--f7-bars-translucent-blur));backdrop-filter:saturate(180%) blur(var(--f7-bars-translucent-blur))}}.toolbar b{font-weight:600}.toolbar a{color:var(--f7-toolbar-link-color,var(--f7-bars-link-color,var(--f7-theme-color)));box-sizing:border-box;flex-shrink:1;position:relative;white-space:nowrap;text-overflow:ellipsis}.toolbar .link{display:flex;line-height:var(--f7-toolbar-link-line-height,var(--f7-toolbar-height));height:var(--f7-toolbar-link-height,var(--f7-toolbar-height))}.toolbar i.icon{display:block}.toolbar:after,.toolbar:before{-webkit-backface-visibility:hidden;backface-visibility:hidden}.page>.toolbar,.view>.toolbar,.views>.toolbar{position:absolute}.aurora .toolbar-top-aurora,.ios .toolbar-top-ios,.md .toolbar-top-md,.toolbar-top{top:0}.aurora .toolbar-top-aurora .tab-link-highlight,.ios .toolbar-top-ios .tab-link-highlight,.md .toolbar-top-md .tab-link-highlight,.toolbar-top .tab-link-highlight{bottom:0}.aurora .toolbar-top-aurora.no-border:after,.aurora .toolbar-top-aurora.no-hairline:after,.ios .toolbar-top-ios.no-border:after,.ios .toolbar-top-ios.no-hairline:after,.md .toolbar-top-md.no-border:after,.md .toolbar-top-md.no-hairline:after,.toolbar-top.no-border:after,.toolbar-top.no-hairline:after{display:none!important}.aurora .toolbar-top-aurora.no-shadow:before,.aurora .toolbar-top-aurora.toolbar-hidden:before,.ios .toolbar-top-ios.no-shadow:before,.ios .toolbar-top-ios.toolbar-hidden:before,.md .toolbar-top-md.no-shadow:before,.md .toolbar-top-md.toolbar-hidden:before,.toolbar-top.no-shadow:before,.toolbar-top.toolbar-hidden:before{display:none!important}.aurora .toolbar-top-aurora:after,.aurora .toolbar-top-aurora:before,.ios .toolbar-top-ios:after,.ios .toolbar-top-ios:before,.md .toolbar-top-md:after,.md .toolbar-top-md:before,.toolbar-top:after,.toolbar-top:before{-webkit-backface-visibility:hidden;backface-visibility:hidden}.aurora .toolbar-top-aurora:after,.ios .toolbar-top-ios:after,.md .toolbar-top-md:after,.toolbar-top:after{content:'';position:absolute;background-color:var(--f7-toolbar-border-color,var(--f7-bars-border-color));display:block;z-index:15;top:auto;right:auto;bottom:0;left:0;height:1px;width:100%;transform-origin:50% 100%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.aurora .toolbar-top-aurora:before,.ios .toolbar-top-ios:before,.md .toolbar-top-md:before,.toolbar-top:before{content:'';position:absolute;right:0;width:100%;top:100%;bottom:auto;height:8px;pointer-events:none;background:var(--f7-toolbar-top-shadow-image)}.aurora .toolbar-bottom-aurora,.ios .toolbar-bottom-ios,.md .toolbar-bottom-md,.toolbar-bottom{bottom:0;height:calc(var(--f7-toolbar-height) + var(--f7-safe-area-bottom))}.aurora .toolbar-bottom-aurora .tab-link-highlight,.ios .toolbar-bottom-ios .tab-link-highlight,.md .toolbar-bottom-md .tab-link-highlight,.toolbar-bottom .tab-link-highlight{top:0}.aurora .toolbar-bottom-aurora .toolbar-inner,.ios .toolbar-bottom-ios .toolbar-inner,.md .toolbar-bottom-md .toolbar-inner,.toolbar-bottom .toolbar-inner{height:auto;top:0;bottom:var(--f7-safe-area-bottom)}.aurora .toolbar-bottom-aurora.no-border:before,.aurora .toolbar-bottom-aurora.no-hairline:before,.ios .toolbar-bottom-ios.no-border:before,.ios .toolbar-bottom-ios.no-hairline:before,.md .toolbar-bottom-md.no-border:before,.md .toolbar-bottom-md.no-hairline:before,.toolbar-bottom.no-border:before,.toolbar-bottom.no-hairline:before{display:none!important}.aurora .toolbar-bottom-aurora.no-shadow:after,.aurora .toolbar-bottom-aurora.toolbar-hidden:after,.ios .toolbar-bottom-ios.no-shadow:after,.ios .toolbar-bottom-ios.toolbar-hidden:after,.md .toolbar-bottom-md.no-shadow:after,.md .toolbar-bottom-md.toolbar-hidden:after,.toolbar-bottom.no-shadow:after,.toolbar-bottom.toolbar-hidden:after{display:none!important}.aurora .toolbar-bottom-aurora:before,.ios .toolbar-bottom-ios:before,.md .toolbar-bottom-md:before,.toolbar-bottom:before{content:'';position:absolute;background-color:var(--f7-toolbar-border-color,var(--f7-bars-border-color));display:block;z-index:15;top:0;right:auto;bottom:auto;left:0;height:1px;width:100%;transform-origin:50% 0%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.aurora .toolbar-bottom-aurora:after,.ios .toolbar-bottom-ios:after,.md .toolbar-bottom-md:after,.toolbar-bottom:after{content:'';position:absolute;right:0;width:100%;bottom:100%;height:8px;top:auto;pointer-events:none;background:var(--f7-toolbar-bottom-shadow-image);transform:translate3d(0,0,0)}.toolbar-inner{position:absolute;left:0;top:0;width:100%;height:100%;display:flex;justify-content:space-between;box-sizing:border-box;align-items:center;align-content:center;overflow:hidden;padding:0 calc(var(--f7-toolbar-inner-padding-right) + var(--f7-safe-area-right)) 0 calc(var(--f7-toolbar-inner-padding-left) + var(--f7-safe-area-left))}.views>.tabbar,.views>.tabbar-labels{z-index:5001}.tabbar a,.tabbar-labels a{color:var(--f7-tabbar-link-inactive-color)}.tabbar .tab-link:not(.tab-link-active),.tabbar-labels .tab-link:not(.tab-link-active){background-color:var(--f7-tabbar-link-inactive-bg-color,transparent)}.tabbar .link,.tabbar-labels .link{line-height:1.4}.tabbar .link,.tabbar .tab-link,.tabbar-labels .link,.tabbar-labels .tab-link{height:100%;width:100%;box-sizing:border-box;display:flex;justify-content:center;align-items:center;flex-direction:column;text-transform:var(--f7-tabbar-link-text-transform);font-weight:var(--f7-tabbar-link-font-weight);letter-spacing:var(--f7-tabbar-link-letter-spacing);overflow:hidden}.tabbar .tab-link-active,.tabbar-labels .tab-link-active{color:var(--f7-tabbar-link-active-color,var(--f7-theme-color));background-color:var(--f7-tabbar-link-active-bg-color,transparent)}.tabbar i.icon,.tabbar-labels i.icon{font-size:var(--f7-tabbar-icon-size);height:var(--f7-tabbar-icon-size);line-height:var(--f7-tabbar-icon-size)}.tabbar-labels{--f7-toolbar-height:var(--f7-tabbar-labels-height)}.tabbar-labels .link,.tabbar-labels .tab-link{height:100%;justify-content:space-between;align-items:center}.tabbar-labels .tabbar-label{display:block;line-height:1;margin:0;position:relative;text-overflow:ellipsis;white-space:nowrap;font-size:var(--f7-tabbar-label-font-size);text-transform:var(--f7-tabbar-label-text-transform);font-weight:var(--f7-tabbar-label-font-weight);letter-spacing:var(--f7-tabbar-label-letter-spacing)}@media (min-width:768px) and (min-height:600px){:root{--f7-tabbar-labels-height:var(--f7-tabbar-labels-tablet-height);--f7-tabbar-label-font-size:var(--f7-tabbar-label-tablet-font-size)}}.tabbar-scrollable .toolbar-inner{justify-content:flex-start;overflow:auto;-webkit-overflow-scrolling:touch}.tabbar-scrollable .toolbar-inner::-webkit-scrollbar{display:none!important;width:0!important;height:0!important;-webkit-appearance:none;opacity:0!important}.tabbar-scrollable .link,.tabbar-scrollable .tab-link{width:auto;flex-shrink:0}.navbar-transitioning+.toolbar,.navbar-transitioning~* .toolbar,.toolbar-transitioning{transition-duration:var(--f7-toolbar-hide-show-transition-duration)}.aurora .toolbar-bottom-aurora~*,.ios .toolbar-bottom-ios~*,.md .toolbar-bottom-md~*,.toolbar-bottom~*{--f7-page-toolbar-bottom-offset:var(--f7-toolbar-height)}.aurora .toolbar-bottom-aurora.tabbar-labels~*,.ios .toolbar-bottom-ios.tabbar-labels~*,.md .toolbar-bottom-md.tabbar-labels~*,.toolbar-bottom.tabbar-labels~*{--f7-page-toolbar-bottom-offset:var(--f7-tabbar-labels-height)}.aurora .toolbar-bottom-aurora.toolbar-hidden,.ios .toolbar-bottom-ios.toolbar-hidden,.md .toolbar-bottom-md.toolbar-hidden,.toolbar-bottom.toolbar-hidden{transform:translate3d(0,100%,0)}.aurora .toolbar-top-aurora~*,.ios .toolbar-top-ios~*,.md .toolbar-top-md~*,.toolbar-top~*{--f7-page-toolbar-top-offset:var(--f7-toolbar-height)}.aurora .toolbar-top-aurora.tabbar-labels~*,.ios .toolbar-top-ios.tabbar-labels~*,.md .toolbar-top-md.tabbar-labels~*,.toolbar-top.tabbar-labels~*{--f7-page-toolbar-top-offset:var(--f7-tabbar-labels-height)}.aurora .toolbar-top-aurora.toolbar-hidden,.ios .toolbar-top-ios.toolbar-hidden,.md .toolbar-top-md.toolbar-hidden,.toolbar-top.toolbar-hidden{transform:translate3d(0,-100%,0)}.aurora .navbar~* .toolbar-top-aurora,.aurora .navbar~.page:not(.no-navbar) .toolbar-top-aurora,.aurora .navbar~.toolbar-top-aurora,.ios .navbars~* .toolbar-top-ios,.ios .navbars~.page:not(.no-navbar) .toolbar-top-ios,.ios .navbars~.toolbar-top-ios,.ios .navbar~* .toolbar-top-ios,.ios .navbar~.page:not(.no-navbar) .toolbar-top-ios,.ios .navbar~.toolbar-top-ios,.md .navbar~* .toolbar-top-md,.md .navbar~.page:not(.no-navbar) .toolbar-top-md,.md .navbar~.toolbar-top-md,.navbars~* .toolbar-top,.navbars~.page:not(.no-navbar) .toolbar-top,.navbars~.toolbar-top,.navbar~* .toolbar-top,.navbar~.page:not(.no-navbar) .toolbar-top,.navbar~.toolbar-top{top:calc(var(--f7-navbar-height) + var(--f7-safe-area-top))}.aurora .navbar~* .toolbar-top-aurora.toolbar-hidden,.aurora .navbar~.page:not(.no-navbar) .toolbar-top-aurora.toolbar-hidden,.aurora .navbar~.toolbar-top-aurora.toolbar-hidden,.ios .navbars~* .toolbar-top-ios.toolbar-hidden,.ios .navbars~.page:not(.no-navbar) .toolbar-top-ios.toolbar-hidden,.ios .navbars~.toolbar-top-ios.toolbar-hidden,.ios .navbar~* .toolbar-top-ios.toolbar-hidden,.ios .navbar~.page:not(.no-navbar) .toolbar-top-ios.toolbar-hidden,.ios .navbar~.toolbar-top-ios.toolbar-hidden,.md .navbar~* .toolbar-top-md.toolbar-hidden,.md .navbar~.page:not(.no-navbar) .toolbar-top-md.toolbar-hidden,.md .navbar~.toolbar-top-md.toolbar-hidden,.navbars~* .toolbar-top.toolbar-hidden,.navbars~.page:not(.no-navbar) .toolbar-top.toolbar-hidden,.navbars~.toolbar-top.toolbar-hidden,.navbar~* .toolbar-top.toolbar-hidden,.navbar~.page:not(.no-navbar) .toolbar-top.toolbar-hidden,.navbar~.toolbar-top.toolbar-hidden{transform:translate3d(0,calc(-1 * (var(--f7-navbar-height) + var(--f7-toolbar-height) + var(--f7-safe-area-top))),0)}.aurora .navbar~* .toolbar-top-aurora.toolbar-hidden.tabbar-labels,.aurora .navbar~.page:not(.no-navbar) .toolbar-top-aurora.toolbar-hidden.tabbar-labels,.aurora .navbar~.toolbar-top-aurora.toolbar-hidden.tabbar-labels,.ios .navbars~* .toolbar-top-ios.toolbar-hidden.tabbar-labels,.ios .navbars~.page:not(.no-navbar) .toolbar-top-ios.toolbar-hidden.tabbar-labels,.ios .navbars~.toolbar-top-ios.toolbar-hidden.tabbar-labels,.ios .navbar~* .toolbar-top-ios.toolbar-hidden.tabbar-labels,.ios .navbar~.page:not(.no-navbar) .toolbar-top-ios.toolbar-hidden.tabbar-labels,.ios .navbar~.toolbar-top-ios.toolbar-hidden.tabbar-labels,.md .navbar~* .toolbar-top-md.toolbar-hidden.tabbar-labels,.md .navbar~.page:not(.no-navbar) .toolbar-top-md.toolbar-hidden.tabbar-labels,.md .navbar~.toolbar-top-md.toolbar-hidden.tabbar-labels,.navbars~* .toolbar-top.toolbar-hidden.tabbar-labels,.navbars~.page:not(.no-navbar) .toolbar-top.toolbar-hidden.tabbar-labels,.navbars~.toolbar-top.toolbar-hidden.tabbar-labels,.navbar~* .toolbar-top.toolbar-hidden.tabbar-labels,.navbar~.page:not(.no-navbar) .toolbar-top.toolbar-hidden.tabbar-labels,.navbar~.toolbar-top.toolbar-hidden.tabbar-labels{transform:translate3d(0,calc(-1 * (var(--f7-navbar-height) + var(--f7-tabbar-labels-height) + var(--f7-safe-area-top))),0)}.aurora .navbar-hidden+.toolbar-top-aurora:not(.toolbar-hidden),.aurora .navbar-hidden~* .toolbar-top-aurora:not(.toolbar-hidden),.ios .navbar-hidden+.toolbar-top-ios:not(.toolbar-hidden),.ios .navbar-hidden~* .toolbar-top-ios:not(.toolbar-hidden),.md .navbar-hidden+.toolbar-top-md:not(.toolbar-hidden),.md .navbar-hidden~* .toolbar-top-md:not(.toolbar-hidden),.navbar-hidden+.toolbar-top:not(.toolbar-hidden),.navbar-hidden~* .toolbar-top:not(.toolbar-hidden){transform:translate3d(0,calc(0px - var(--f7-navbar-height)),0)}.aurora .navbar-large-hidden~* .toolbar-top-aurora:not(.toolbar-hidden),.ios .navbar-large-hidden+.toolbar-top-ios:not(.toolbar-hidden),.ios .navbar-large-hidden~* .toolbar-top-ios:not(.toolbar-hidden),.md .navbar-large-hidden+.toolbar-top-md:not(.toolbar-hidden),.md .navbar-large-hidden~* .toolbar-top-md:not(.toolbar-hidden),.navbar-large-hidden+.toolbar-top:not(.toolbar-hidden),.navbar-large-hidden~* .toolbar-top:not(.toolbar-hidden){transform:translate3d(0,calc(0px - var(--f7-navbar-height) - var(--f7-navbar-large-title-height)),0)}.ios .toolbar a.icon-only{min-height:var(--f7-toolbar-height);display:flex;justify-content:center;align-items:center;margin:0;min-width:44px}.ios .tabbar-labels .link,.ios .tabbar-labels .tab-link{padding-top:4px;padding-bottom:4px}.ios .tabbar-labels .link i+span,.ios .tabbar-labels .tab-link i+span{margin:0}@media (min-width:768px) and (min-height:600px){.ios .tabbar .link,.ios .tabbar .tab-link,.ios .tabbar-labels .link,.ios .tabbar-labels .tab-link{justify-content:center;flex-direction:row}.ios .tabbar .link i+span,.ios .tabbar .tab-link i+span,.ios .tabbar-labels .link i+span,.ios .tabbar-labels .tab-link i+span{margin-left:5px}}.ios .tabbar-scrollable .toolbar-inner{justify-content:flex-start}.ios .tabbar-scrollable .link,.ios .tabbar-scrollable .tab-link{padding:0 8px}.md .toolbar .link{justify-content:center;padding:0 16px;min-width:48px}.md .toolbar .link:before{content:'';width:152%;height:152%;position:absolute;left:-26%;top:-26%;background-image:radial-gradient(circle at center,var(--f7-link-highlight-color) 66%,rgba(255,255,255,0) 66%);background-repeat:no-repeat;background-position:center;background-size:100% 100%;opacity:0;pointer-events:none;transition-duration:.6s}.md .toolbar .link.active-state:before{opacity:1;transition-duration:150ms}.md .toolbar a.icon-only{min-width:0;flex-shrink:0}.md .tabbar .link,.md .tabbar .tab-link,.md .tabbar-labels .link,.md .tabbar-labels .tab-link{padding-left:0;padding-right:0}.md .tabbar a.icon-only,.md .tabbar-labels a.icon-only{flex-shrink:initial}.md .tabbar .tab-link,.md .tabbar-labels .tab-link{transition-duration:.3s;overflow:hidden;position:relative}.md .tabbar .tab-link-highlight,.md .tabbar-labels .tab-link-highlight{position:absolute;height:2px;background:var(--f7-tabbar-link-active-border-color,var(--f7-theme-color));transition-duration:.3s;left:0}.md .tabbar-labels .link,.md .tabbar-labels .tab-link{padding-top:7px;padding-bottom:7px}.md .tabbar-label{max-width:100%;overflow:hidden;line-height:1.2}.md .tabbar-scrollable .toolbar-inner{overflow:auto}.md .tabbar-scrollable .link,.md .tabbar-scrollable .tab-link{padding:0 16px}.aurora .toolbar a.icon-only{min-height:var(--f7-toolbar-height);display:flex;justify-content:center;align-items:center;margin:0}.aurora .tabbar .toolbar-inner,.aurora .tabbar-labels .toolbar-inner{padding-left:0;padding-right:0}.aurora .tabbar .link,.aurora .tabbar .tab-link,.aurora .tabbar-labels .link,.aurora .tabbar-labels .tab-link{transition-duration:.2s}.aurora .tabbar-labels .link,.aurora .tabbar-labels .tab-link{padding-top:5px;padding-bottom:5px}.aurora .tabbar-labels .link i+span,.aurora .tabbar-labels .tab-link i+span{margin:0}.aurora .tabbar-scrollable .toolbar-inner{justify-content:flex-start}.aurora .tabbar-scrollable .link,.aurora .tabbar-scrollable .tab-link{padding:0 16px}:root{--f7-subnavbar-title-line-height:1.2}.ios{--f7-subnavbar-height:44px;--f7-subnavbar-inner-padding-left:8px;--f7-subnavbar-inner-padding-right:8px;--f7-subnavbar-title-font-size:34px;--f7-subnavbar-title-font-weight:700;--f7-subnavbar-title-letter-spacing:-0.03em;--f7-subnavbar-title-margin-left:8px;--f7-subnavbar-shadow-image:none}.md{--f7-subnavbar-height:48px;--f7-subnavbar-inner-padding-left:16px;--f7-subnavbar-inner-padding-right:16px;--f7-subnavbar-title-font-size:20px;--f7-subnavbar-title-font-weight:500;--f7-subnavbar-title-letter-spacing:0;--f7-subnavbar-title-margin-left:0px;--f7-subnavbar-shadow-image:var(--f7-bars-shadow-bottom-image)}.aurora{--f7-subnavbar-height:38px;--f7-subnavbar-inner-padding-left:16px;--f7-subnavbar-inner-padding-right:16px;--f7-subnavbar-title-font-size:26px;--f7-subnavbar-title-font-weight:bold;--f7-subnavbar-title-letter-spacing:-0.03em;--f7-subnavbar-title-margin-left:0px;--f7-subnavbar-shadow-image:none;--f7-subnavbar-link-height:auto;--f7-subnavbar-link-line-height:inherit}.subnavbar{width:100%;position:absolute;left:0;top:0;z-index:600;box-sizing:border-box;display:flex;justify-content:space-between;align-items:center;background-image:var(--f7-subnavbar-bg-image,var(--f7-bars-bg-image));background-color:var(--f7-subnavbar-bg-color,var(--f7-bars-bg-color));color:var(--f7-subnavbar-text-color,var(--f7-bars-text-color))}@supports ((-webkit-backdrop-filter:blur(20px)) or (backdrop-filter:blur(20px))){.ios-translucent-bars .subnavbar{background-color:rgba(var(--f7-subnavbar-bg-color-rgb,var(--f7-bars-bg-color-rgb)),var(--f7-bars-translucent-opacity));-webkit-backdrop-filter:saturate(180%) blur(var(--f7-bars-translucent-blur));backdrop-filter:saturate(180%) blur(var(--f7-bars-translucent-blur))}}.subnavbar .subnavbar-title{position:relative;overflow:hidden;text-overflow:ellpsis;white-space:nowrap;font-size:var(--f7-subnavbar-title-font-size);font-weight:var(--f7-subnavbar-title-font-weight);text-align:left;display:inline-block;line-height:var(--f7-subnavbar-title-line-height);letter-spacing:var(--f7-subnavbar-title-letter-spacing);margin-left:var(--f7-subnavbar-title-margin-left)}.subnavbar .left,.subnavbar .right{flex-shrink:0;display:flex;justify-content:flex-start;align-items:center}.subnavbar .right:first-child{position:absolute;height:100%}.subnavbar a{color:var(--f7-subnavbar-link-color,var(--f7-bars-link-color,var(--f7-theme-color)))}.subnavbar a.link{line-height:var(--f7-subnavbar-link-line-height,var(--f7-subnavbar-height));height:var(--f7-subnavbar-link-height,var(--f7-subnavbar-height))}.subnavbar a.icon-only{min-width:var(--f7-subnavbar-height)}.subnavbar.no-border:after,.subnavbar.no-hairline:after{display:none!important}.subnavbar.navbar-hidden:before,.subnavbar.no-shadow:before{display:none!important}.subnavbar:after,.subnavbar:before{-webkit-backface-visibility:hidden;backface-visibility:hidden}.subnavbar:after{content:'';position:absolute;background-color:var(--f7-subnavbar-border-color,var(--f7-bars-border-color));display:block;z-index:15;top:auto;right:auto;bottom:0;left:0;height:1px;width:100%;transform-origin:50% 100%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.subnavbar:before{content:'';position:absolute;right:0;width:100%;top:100%;bottom:auto;height:8px;pointer-events:none;background:var(--f7-subnavbar-shadow-image)}.subnavbar-inner{width:100%;height:100%;display:flex;align-items:center;box-sizing:border-box;justify-content:space-between;overflow:hidden;padding:0 calc(var(--f7-subnavbar-inner-padding-left) + var(--f7-safe-area-right)) 0 calc(var(--f7-subnavbar-inner-padding-right) + var(--f7-safe-area-left))}.subnavbar-inner.stacked{display:none}.navbar .subnavbar{top:100%}.page>.subnavbar,.view>.subnavbar,.views>.subnavbar{position:absolute}.navbars~* .subnavbar,.navbars~.page-with-subnavbar:not(.no-navbar) .subnavbar,.navbars~.subnavbar,.navbar~* .subnavbar,.navbar~.page-with-subnavbar:not(.no-navbar) .subnavbar,.navbar~.subnavbar,.page-with-subnavbar .navbar~* .subnavbar,.page-with-subnavbar .navbar~.subnavbar{top:calc(var(--f7-navbar-height) + var(--f7-safe-area-top))}.navbar .title-large~.subnavbar,.navbars~.page-with-navbar-large:not(.no-navbar) .subnavbar,.navbar~.page-with-navbar-large:not(.no-navbar) .subnavbar,.page-with-subnavbar.page-with-navbar-large .navbar~* .subnavbar,.page-with-subnavbar.page-with-navbar-large .navbar~.subnavbar{top:calc(var(--f7-navbar-height) + var(--f7-navbar-large-title-height) + var(--f7-safe-area-top));transform:translate3d(0,calc(-1 * var(--f7-navbar-large-collapse-progress) * var(--f7-navbar-large-title-height)),0)}.page-with-subnavbar,.subnavbar~*{--f7-page-subnavbar-offset:var(--f7-subnavbar-height)}.ios .subnavbar{height:calc(var(--f7-subnavbar-height) + 1px);margin-top:-1px;padding-top:1px}.ios .subnavbar .title{align-self:flex-start;flex-shrink:10}.ios .subnavbar .left a+a,.ios .subnavbar .right a+a{margin-left:16px}.ios .subnavbar .left{margin-right:10px}.ios .subnavbar .right{margin-left:10px}.ios .subnavbar .right:first-child{right:8px}.ios .subnavbar a.link{justify-content:flex-start}.ios .subnavbar a.icon-only{justify-content:center;margin:0}.md .subnavbar{height:var(--f7-subnavbar-height)}.md .subnavbar .right{margin-left:auto}.md .subnavbar .right:first-child{right:16px}.md .subnavbar a.link{justify-content:center;padding:0 16px}.md .subnavbar a.link:before{content:'';width:152%;height:152%;position:absolute;left:-26%;top:-26%;background-image:radial-gradient(circle at center,var(--f7-link-highlight-color) 66%,rgba(255,255,255,0) 66%);background-repeat:no-repeat;background-position:center;background-size:100% 100%;opacity:0;pointer-events:none;transition-duration:.6s}.md .subnavbar a.link.active-state:before{opacity:1;transition-duration:150ms}.md .subnavbar a.icon-only{flex-shrink:0}.md .subnavbar-inner>a.link:first-child{margin-left:calc(-1 * var(--f7-subnavbar-inner-padding-left))}.md .subnavbar-inner>a.link:last-child{margin-right:calc(-1 * var(--f7-subnavbar-inner-padding-right))}.aurora .subnavbar{height:calc(var(--f7-subnavbar-height) + 1px);margin-top:-1px;padding-top:1px}.aurora .subnavbar .title{align-self:flex-start;flex-shrink:10}.aurora .subnavbar .left a+a,.aurora .subnavbar .right a+a{margin-left:10px}.aurora .subnavbar .left{margin-right:10px}.aurora .subnavbar .right{margin-left:10px}.aurora .subnavbar .right:first-child{right:16px}.aurora .subnavbar a.link{justify-content:flex-start}.aurora .subnavbar a.icon-only{justify-content:center;margin:0}:root{--f7-block-padding-horizontal:16px;--f7-block-padding-vertical:16px;--f7-block-font-size:inherit;--f7-block-text-color:inherit;--f7-block-header-margin:10px;--f7-block-footer-margin:10px;--f7-block-header-font-size:14px;--f7-block-footer-font-size:14px;--f7-block-title-text-transform:none;--f7-block-title-white-space:nowrap;--f7-block-title-medium-text-transform:none;--f7-block-title-large-text-transform:none;--f7-block-inset-side-margin:16px;--f7-block-title-medium-text-color:#000;--f7-block-title-large-text-color:#000;--f7-block-strong-bg-color:#fff}:root .theme-dark,:root.theme-dark{--f7-block-title-text-color:#fff;--f7-block-strong-border-color:rgba(255, 255, 255, 0.15);--f7-block-title-medium-text-color:#fff;--f7-block-title-large-text-color:#fff;--f7-block-strong-bg-color:#1c1c1d}.ios{--f7-block-margin-vertical:35px;--f7-block-strong-border-color:rgba(0, 0, 0, 0.22);--f7-block-title-text-color:#000;--f7-block-title-font-size:16px;--f7-block-title-font-weight:600;--f7-block-title-line-height:20px;--f7-block-title-margin-bottom:10px;--f7-block-title-medium-font-size:22px;--f7-block-title-medium-font-weight:bold;--f7-block-title-medium-line-height:1.4;--f7-block-title-large-font-size:30px;--f7-block-title-large-font-weight:bold;--f7-block-title-large-line-height:1.3;--f7-block-inset-border-radius:8px;--f7-block-strong-text-color:#000;--f7-block-header-text-color:rgba(0, 0, 0, 0.45);--f7-block-footer-text-color:rgba(0, 0, 0, 0.45)}.ios .theme-dark,.ios.theme-dark{--f7-block-header-text-color:rgba(255, 255, 255, 0.55);--f7-block-footer-text-color:rgba(255, 255, 255, 0.55);--f7-block-strong-text-color:#fff}.md{--f7-block-margin-vertical:32px;--f7-block-strong-text-color:inherit;--f7-block-strong-border-color:rgba(0, 0, 0, 0.12);--f7-block-title-font-size:inherit;--f7-block-title-text-color:rgba(0, 0, 0, 0.54);--f7-block-title-font-weight:500;--f7-block-title-line-height:16px;--f7-block-title-margin-bottom:16px;--f7-block-title-medium-font-size:24px;--f7-block-title-medium-font-weight:500;--f7-block-title-medium-line-height:1.3;--f7-block-title-large-font-size:34px;--f7-block-title-large-font-weight:500;--f7-block-title-large-line-height:1.2;--f7-block-inset-border-radius:4px;--f7-block-header-text-color:rgba(0, 0, 0, 0.54);--f7-block-footer-text-color:rgba(0, 0, 0, 0.54)}.md .theme-dark,.md.theme-dark{--f7-block-header-text-color:rgba(255, 255, 255, 0.54);--f7-block-footer-text-color:rgba(255, 255, 255, 0.54)}.aurora{--f7-block-margin-vertical:15px;--f7-block-strong-border-color:rgba(0, 0, 0, 0.12);--f7-block-title-font-size:inherit;--f7-block-title-text-color:rgba(0, 0, 0, 0.7);--f7-block-title-font-weight:600;--f7-block-title-line-height:1.5;--f7-block-title-margin-bottom:5px;--f7-block-title-medium-font-size:20px;--f7-block-title-medium-font-weight:600;--f7-block-title-medium-line-height:1.4;--f7-block-title-large-font-size:28px;--f7-block-title-large-font-weight:bold;--f7-block-title-large-line-height:1.3;--f7-block-inset-border-radius:4px;--f7-block-strong-text-color:inherit;--f7-block-header-text-color:rgba(0, 0, 0, 0.6);--f7-block-footer-text-color:rgba(0, 0, 0, 0.6)}.aurora .theme-dark,.aurora.theme-dark{--f7-block-header-text-color:rgba(255, 255, 255, 0.54);--f7-block-footer-text-color:rgba(255, 255, 255, 0.54);--f7-block-strong-text-color:#fff}.block{box-sizing:border-box;position:relative;z-index:1;color:var(--f7-block-text-color);margin:var(--f7-block-margin-vertical) 0;padding-top:0;padding-bottom:0;padding-left:calc(var(--f7-block-padding-horizontal) + var(--f7-safe-area-left));padding-right:calc(var(--f7-block-padding-horizontal) + var(--f7-safe-area-right));font-size:var(--f7-block-font-size)}.aurora .block.no-hairlines-aurora ul:after,.aurora .block.no-hairlines-aurora ul:before,.aurora .block.no-hairlines-aurora:after,.aurora .block.no-hairlines-aurora:before,.block.no-hairlines ul:after,.block.no-hairlines ul:before,.block.no-hairlines:after,.block.no-hairlines:before,.ios .block.no-hairlines-ios ul:after,.ios .block.no-hairlines-ios ul:before,.ios .block.no-hairlines-ios:after,.ios .block.no-hairlines-ios:before,.md .block.no-hairlines-md ul:after,.md .block.no-hairlines-md ul:before,.md .block.no-hairlines-md:after,.md .block.no-hairlines-md:before{display:none!important}.aurora .block.no-hairline-top-aurora ul:before,.aurora .block.no-hairline-top-aurora:before,.block.no-hairline-top ul:before,.block.no-hairline-top:before,.ios .block.no-hairline-top-ios ul:before,.ios .block.no-hairline-top-ios:before,.md .block.no-hairline-top-md ul:before,.md .block.no-hairline-top-md:before{display:none!important}.aurora .block.no-hairline-bottom-aurora ul:after,.aurora .block.no-hairline-bottom-aurora:after,.block.no-hairline-bottom ul:after,.block.no-hairline-bottom:after,.ios .block.no-hairline-bottom-ios ul:after,.ios .block.no-hairline-bottom-ios:after,.md .block.no-hairline-bottom-md ul:after,.md .block.no-hairline-bottom-md:after{display:none!important}.block>h1:first-child,.block>h2:first-child,.block>h3:first-child,.block>h4:first-child,.block>p:first-child{margin-top:0}.block>h1:last-child,.block>h2:last-child,.block>h3:last-child,.block>h4:last-child,.block>p:last-child{margin-bottom:0}.block-strong{color:var(--f7-block-strong-text-color);padding-top:var(--f7-block-padding-vertical);padding-bottom:var(--f7-block-padding-vertical);background-color:var(--f7-block-strong-bg-color)}.block-strong:before{content:'';position:absolute;background-color:var(--f7-block-strong-border-color);display:block;z-index:15;top:0;right:auto;bottom:auto;left:0;height:1px;width:100%;transform-origin:50% 0%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.block-strong:after{content:'';position:absolute;background-color:var(--f7-block-strong-border-color);display:block;z-index:15;top:auto;right:auto;bottom:0;left:0;height:1px;width:100%;transform-origin:50% 100%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.block-title{position:relative;overflow:hidden;margin:0;white-space:var(--f7-block-title-white-space);text-overflow:ellipsis;text-transform:var(--f7-block-title-text-transform);color:var(--f7-block-title-text-color);font-size:var(--f7-block-title-font-size,inherit);font-weight:var(--f7-block-title-font-weight);line-height:var(--f7-block-title-line-height);margin-top:var(--f7-block-margin-vertical);margin-bottom:var(--f7-block-title-margin-bottom);margin-left:calc(var(--f7-block-padding-horizontal) + var(--f7-safe-area-left));margin-right:calc(var(--f7-block-padding-horizontal) + var(--f7-safe-area-right))}.block-title+.block,.block-title+.block-header,.block-title+.card,.block-title+.list,.block-title+.timeline{margin-top:0px}.block-title-medium{font-size:var(--f7-block-title-medium-font-size);text-transform:var(--f7-block-title-medium-text-transform);color:var(--f7-block-title-medium-text-color);font-weight:var(--f7-block-title-medium-font-weight);line-height:var(--f7-block-title-medium-line-height)}.block-title-large{font-size:var(--f7-block-title-large-font-size);text-transform:var(--f7-block-title-large-text-transform);color:var(--f7-block-title-large-text-color);font-weight:var(--f7-block-title-large-font-weight);line-height:var(--f7-block-title-large-line-height)}.block>.block-title:first-child,.list>.block-title:first-child{margin-top:0;margin-left:0;margin-right:0}.block-header{color:var(--f7-block-header-text-color);font-size:var(--f7-block-header-font-size);margin-bottom:var(--f7-block-header-margin);margin-top:var(--f7-block-margin-vertical)}.block-header+.block,.block-header+.card,.block-header+.list,.block-header+.timeline{margin-top:var(--f7-block-header-margin)}.block-footer{color:var(--f7-block-footer-text-color);font-size:var(--f7-block-footer-font-size);margin-top:var(--f7-block-footer-margin);margin-bottom:var(--f7-block-margin-vertical)}.block-footer,.block-header{padding-top:0;padding-bottom:0;padding-left:calc(var(--f7-block-padding-horizontal) + var(--f7-safe-area-left));padding-right:calc(var(--f7-block-padding-horizontal) + var(--f7-safe-area-right))}.block-footer h1:first-child,.block-footer h2:first-child,.block-footer h3:first-child,.block-footer h4:first-child,.block-footer p:first-child,.block-footer ul:first-child,.block-header h1:first-child,.block-header h2:first-child,.block-header h3:first-child,.block-header h4:first-child,.block-header p:first-child,.block-header ul:first-child{margin-top:0}.block-footer h1:last-child,.block-footer h2:last-child,.block-footer h3:last-child,.block-footer h4:last-child,.block-footer p:last-child,.block-footer ul:last-child,.block-header h1:last-child,.block-header h2:last-child,.block-header h3:last-child,.block-header h4:last-child,.block-header p:last-child,.block-header ul:last-child{margin-bottom:0}.block-footer h1:first-child:last-child,.block-footer h2:first-child:last-child,.block-footer h3:first-child:last-child,.block-footer h4:first-child:last-child,.block-footer p:first-child:last-child,.block-footer ul:first-child:last-child,.block-header h1:first-child:last-child,.block-header h2:first-child:last-child,.block-header h3:first-child:last-child,.block-header h4:first-child:last-child,.block-header p:first-child:last-child,.block-header ul:first-child:last-child{margin-top:0;margin-bottom:0}.block .block-header,.card .block-header,.list .block-header,.timeline .block-header{margin-top:0}.block .block-footer,.card .block-footer,.list .block-footer,.timeline .block-footer{margin-bottom:0}.block+.block-footer,.card+.block-footer,.list+.block-footer,.timeline+.block-footer{margin-top:calc(-1 * (var(--f7-block-margin-vertical) - var(--f7-block-footer-margin)))}.block+.block-footer{margin-top:calc(-1 * (var(--f7-block-margin-vertical) - var(--f7-block-footer-margin)));margin-bottom:var(--f7-block-margin-vertical)}.block .block-footer,.block .block-header{padding:0}.block.inset{border-radius:var(--f7-block-inset-border-radius);margin-left:calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-left));margin-right:calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-right));--f7-safe-area-left:0px;--f7-safe-area-right:0px}.block-strong.inset:after,.block-strong.inset:before{display:none!important}@media (min-width:480px){.block.xsmall-inset{border-radius:var(--f7-block-inset-border-radius);margin-left:calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-left));margin-right:calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-right));--f7-safe-area-left:0px;--f7-safe-area-right:0px}.block-strong.xsmall-inset:after,.block-strong.xsmall-inset:before{display:none!important}}@media (min-width:568px){.block.small-inset{border-radius:var(--f7-block-inset-border-radius);margin-left:calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-left));margin-right:calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-right));--f7-safe-area-left:0px;--f7-safe-area-right:0px}.block-strong.small-inset:after,.block-strong.small-inset:before{display:none!important}}@media (min-width:768px){.block.medium-inset{border-radius:var(--f7-block-inset-border-radius);margin-left:calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-left));margin-right:calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-right));--f7-safe-area-left:0px;--f7-safe-area-right:0px}.block-strong.medium-inset:after,.block-strong.medium-inset:before{display:none!important}}@media (min-width:1024px){.block.large-inset{border-radius:var(--f7-block-inset-border-radius);margin-left:calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-left));margin-right:calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-right));--f7-safe-area-left:0px;--f7-safe-area-right:0px}.block-strong.large-inset:after,.block-strong.large-inset:before{display:none!important}}@media (min-width:1200px){.block.xlarge-inset{border-radius:var(--f7-block-inset-border-radius);margin-left:calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-left));margin-right:calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-right));--f7-safe-area-left:0px;--f7-safe-area-right:0px}.block-strong.xlarge-inset:after,.block-strong.xlarge-inset:before{display:none!important}}:root{--f7-list-inset-side-margin:16px;--f7-list-item-cell-margin:16px;--f7-list-item-padding-horizontal:16px;--f7-list-media-item-padding-horizontal:16px;--f7-list-item-text-max-lines:2;--f7-list-chevron-icon-font-size:20px;--f7-list-item-title-font-size:inherit;--f7-list-item-title-font-weight:400;--f7-list-item-title-text-color:inherit;--f7-list-item-title-line-height:inherit;--f7-list-item-title-white-space:nowrap;--f7-list-item-subtitle-font-weight:400;--f7-list-item-subtitle-text-color:inherit;--f7-list-item-subtitle-line-height:inherit;--f7-list-item-text-font-weight:400;--f7-list-item-after-font-weight:400;--f7-list-item-header-text-color:inherit;--f7-list-item-header-font-size:12px;--f7-list-item-header-font-weight:400;--f7-list-item-header-line-height:1.2;--f7-list-item-footer-font-size:12px;--f7-list-item-footer-font-weight:400;--f7-list-item-footer-line-height:1.2;--f7-list-button-font-size:inherit;--f7-list-button-font-weight:400;--f7-list-item-divider-line-height:inherit;--f7-list-group-title-line-height:inherit;--f7-list-bg-color:#fff;--f7-list-chevron-icon-color:rgba(0, 0, 0, 0.2)}:root .theme-dark,:root.theme-dark{--f7-list-button-border-color:rgba(255, 255, 255, 0.15);--f7-list-bg-color:#1c1c1d;--f7-list-border-color:rgba(255, 255, 255, 0.15);--f7-list-item-border-color:rgba(255, 255, 255, 0.15);--f7-list-item-divider-border-color:rgba(255, 255, 255, 0.15);--f7-list-item-divider-bg-color:#232323;--f7-list-group-title-bg-color:#232323;--f7-list-chevron-icon-color:rgba(255, 255, 255, 0.3)}.ios{--f7-list-in-list-padding-left:30px;--f7-list-inset-border-radius:8px;--f7-list-margin-vertical:35px;--f7-list-font-size:17px;--f7-list-chevron-icon-area:20px;--f7-list-border-color:rgba(0, 0, 0, 0.22);--f7-list-item-border-color:rgba(0, 0, 0, 0.22);--f7-list-link-pressed-bg-color:rgba(0, 0, 0, 0.15);--f7-list-item-subtitle-font-size:15px;--f7-list-item-text-font-size:15px;--f7-list-item-text-line-height:21px;--f7-list-item-after-font-size:inherit;--f7-list-item-after-line-height:inherit;--f7-list-item-after-padding:5px;--f7-list-item-min-height:44px;--f7-list-item-media-margin:16px;--f7-list-item-media-icons-margin:5px;--f7-list-item-padding-vertical:8px;--f7-list-media-item-padding-vertical:10px;--f7-list-media-item-title-font-weight:600;--f7-list-button-text-align:center;--f7-list-button-border-color:rgba(0, 0, 0, 0.22);--f7-list-item-divider-height:31px;--f7-list-item-divider-font-size:inherit;--f7-list-item-divider-font-weight:400;--f7-list-item-divider-bg-color:rgba(0, 0, 0, 0.03);--f7-list-item-divider-border-color:rgba(0, 0, 0, 0.22);--f7-list-group-title-height:31px;--f7-list-group-title-font-size:inherit;--f7-list-group-title-font-weight:400;--f7-list-group-title-bg-color:#f7f7f7;--f7-list-item-after-text-color:rgba(0, 0, 0, 0.45);--f7-list-item-footer-text-color:rgba(0, 0, 0, 0.45);--f7-list-item-text-text-color:rgba(0, 0, 0, 0.45);--f7-list-item-divider-text-color:rgba(0, 0, 0, 0.45);--f7-list-group-title-text-color:rgba(0, 0, 0, 0.45);--f7-list-button-pressed-bg-color:rgba(0, 0, 0, 0.15)}.ios .theme-dark,.ios.theme-dark{--f7-list-item-after-text-color:rgba(255, 255, 255, 0.55);--f7-list-item-header-text-color:rgba(255, 255, 255, 0.55);--f7-list-item-footer-text-color:rgba(255, 255, 255, 0.55);--f7-list-item-text-text-color:rgba(255, 255, 255, 0.55);--f7-list-item-divider-text-color:rgba(255, 255, 255, 0.55);--f7-list-group-title-text-color:rgba(255, 255, 255, 0.55);--f7-list-link-pressed-bg-color:rgba(255, 255, 255, 0.08);--f7-list-button-pressed-bg-color:rgba(255, 255, 255, 0.08)}.md{--f7-list-in-list-padding-left:40px;--f7-list-inset-border-radius:4px;--f7-list-margin-vertical:32px;--f7-list-font-size:16px;--f7-list-chevron-icon-area:26px;--f7-list-border-color:rgba(0, 0, 0, 0.12);--f7-list-item-border-color:rgba(0, 0, 0, 0.12);--f7-list-item-subtitle-font-size:14px;--f7-list-item-text-font-size:14px;--f7-list-item-text-line-height:20px;--f7-list-item-after-font-size:14px;--f7-list-item-after-line-height:inherit;--f7-list-item-after-padding:8px;--f7-list-item-min-height:48px;--f7-list-item-media-margin:16px;--f7-list-item-media-icons-margin:8px;--f7-list-item-padding-vertical:8px;--f7-list-media-item-padding-vertical:14px;--f7-list-button-text-align:left;--f7-list-button-border-color:transparent;--f7-list-item-divider-height:48px;--f7-list-item-divider-font-size:14px;--f7-list-item-divider-font-weight:400;--f7-list-item-divider-bg-color:#f4f4f4;--f7-list-item-divider-border-color:transparent;--f7-list-group-title-height:48px;--f7-list-group-title-font-size:14px;--f7-list-group-title-font-weight:400;--f7-list-group-title-bg-color:#f4f4f4;--f7-list-link-pressed-bg-color:rgba(0, 0, 0, 0.1);--f7-list-item-text-text-color:rgba(0, 0, 0, 0.54);--f7-list-item-after-text-color:rgba(0, 0, 0, 0.54);--f7-list-item-footer-text-color:rgba(0, 0, 0, 0.5);--f7-list-button-text-color:#212121;--f7-list-button-pressed-bg-color:rgba(0, 0, 0, 0.1);--f7-list-item-divider-text-color:rgba(0, 0, 0, 0.54);--f7-list-group-title-text-color:rgba(0, 0, 0, 0.54)}.md .theme-dark,.md.theme-dark{--f7-list-button-text-color:#fff;--f7-list-item-divider-text-color:#fff;--f7-list-group-title-text-color:#fff;--f7-list-link-pressed-bg-color:rgba(255, 255, 255, 0.05);--f7-list-button-pressed-bg-color:rgba(255, 255, 255, 0.05);--f7-list-item-text-text-color:rgba(255, 255, 255, 0.54);--f7-list-item-after-text-color:rgba(255, 255, 255, 0.54);--f7-list-item-footer-text-color:rgba(255, 255, 255, 0.54)}.aurora{--f7-list-in-list-padding-left:16px;--f7-list-inset-border-radius:4px;--f7-list-margin-vertical:15px;--f7-list-font-size:14px;--f7-list-chevron-icon-area:15px;--f7-list-chevron-icon-font-size:16px;--f7-list-border-color:rgba(0, 0, 0, 0.12);--f7-list-item-border-color:rgba(0, 0, 0, 0.12);--f7-list-item-title-line-height:1.3;--f7-list-item-subtitle-font-size:14px;--f7-list-item-subtitle-line-height:1.3;--f7-list-item-text-font-size:12px;--f7-list-item-text-line-height:16px;--f7-list-item-after-font-size:13px;--f7-list-item-after-line-height:1.2;--f7-list-item-after-padding:5px;--f7-list-item-min-height:32px;--f7-list-item-media-margin:10px;--f7-list-item-media-icons-margin:5px;--f7-list-item-padding-vertical:5px;--f7-list-media-item-padding-vertical:5px;--f7-list-media-item-title-font-weight:600;--f7-list-button-text-align:center;--f7-list-button-border-color:rgba(0, 0, 0, 0.12);--f7-list-item-divider-height:19px;--f7-list-item-divider-font-size:inherit;--f7-list-item-divider-font-weight:500;--f7-list-item-divider-bg-color:rgba(0, 0, 0, 0.03);--f7-list-item-divider-border-color:transparent;--f7-list-group-title-height:19px;--f7-list-group-title-font-size:inherit;--f7-list-group-title-font-weight:500;--f7-list-group-title-bg-color:#f7f7f7;--f7-list-link-pressed-bg-color:rgba(0, 0, 0, 0.1);--f7-list-link-hover-bg-color:rgba(0, 0, 0, 0.03);--f7-list-item-text-text-color:rgba(0, 0, 0, 0.6);--f7-list-item-after-text-color:rgba(0, 0, 0, 0.5);--f7-list-item-footer-text-color:rgba(0, 0, 0, 0.6);--f7-list-button-pressed-bg-color:rgba(0, 0, 0, 0.1);--f7-list-button-hover-bg-color:rgba(0, 0, 0, 0.03);--f7-list-item-divider-text-color:rgba(0, 0, 0, 0.6);--f7-list-group-title-text-color:rgba(0, 0, 0, 0.6)}.aurora .theme-dark,.aurora.theme-dark{--f7-list-item-text-text-color:rgba(255, 255, 255, 0.54);--f7-list-item-after-text-color:rgba(255, 255, 255, 0.54);--f7-list-item-footer-text-color:rgba(255, 255, 255, 0.54);--f7-list-item-divider-text-color:rgba(255, 255, 255, 0.6);--f7-list-group-title-text-color:rgba(255, 255, 255, 0.6);--f7-list-link-pressed-bg-color:rgba(255, 255, 255, 0.05);--f7-list-link-hover-bg-color:rgba(255, 255, 255, 0.03);--f7-list-button-pressed-bg-color:rgba(255, 255, 255, 0.05);--f7-list-button-hover-bg-color:rgba(255, 255, 255, 0.03)}:root{--f7-list-chevron-icon-left:'chevron_left';--f7-list-chevron-icon-right:'chevron_right'}.aurora{--f7-list-chevron-icon-left:'chevron_left_aurora';--f7-list-chevron-icon-right:'chevron_right_aurora'}.list{position:relative;z-index:1;font-size:var(--f7-list-font-size);margin:var(--f7-list-margin-vertical) 0}.list ul{list-style:none;margin:0;padding:0;position:relative;background:var(--f7-list-bg-color)}.list ul:before{content:'';position:absolute;background-color:var(--f7-list-border-color);display:block;z-index:15;top:0;right:auto;bottom:auto;left:0;height:1px;width:100%;transform-origin:50% 0%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.list ul:after{content:'';position:absolute;background-color:var(--f7-list-border-color);display:block;z-index:15;top:auto;right:auto;bottom:0;left:0;height:1px;width:100%;transform-origin:50% 100%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.list ul ul{padding-left:calc(var(--f7-list-item-padding-horizontal) + var(--f7-list-in-list-padding-left))}.list ul ul:after,.list ul ul:before{display:none!important}.list li{position:relative;box-sizing:border-box}.list .item-media{display:flex;flex-shrink:0;flex-wrap:nowrap;align-items:center;box-sizing:border-box;padding-bottom:var(--f7-list-item-padding-vertical);padding-top:var(--f7-list-item-padding-vertical)}.list .item-media+.item-inner{margin-left:var(--f7-list-item-media-margin)}.list .item-media i+i,.list .item-media i+img{margin-left:var(--f7-list-item-media-icons-margin)}.list .item-after{padding-left:var(--f7-list-item-after-padding)}.list .item-inner{position:relative;width:100%;min-width:0;display:flex;justify-content:space-between;box-sizing:border-box;align-items:center;align-self:stretch;padding-top:var(--f7-list-item-padding-vertical);padding-bottom:var(--f7-list-item-padding-vertical);min-height:var(--f7-list-item-min-height);padding-right:calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-right))}.list .item-title{min-width:0;flex-shrink:1;white-space:var(--f7-list-item-title-white-space);position:relative;overflow:hidden;text-overflow:ellipsis;max-width:100%;font-size:var(--f7-list-item-title-font-size);font-weight:var(--f7-list-item-title-font-weight);color:var(--f7-list-item-title-text-color);line-height:var(--f7-list-item-title-line-height)}.list .item-after{white-space:nowrap;flex-shrink:0;display:flex;font-size:var(--f7-list-item-after-font-size);font-weight:var(--f7-list-item-after-font-weight);color:var(--f7-list-item-after-text-color);line-height:var(--f7-list-item-after-line-height);margin-left:auto}.list .item-footer,.list .item-header{white-space:normal}.list .item-header{color:var(--f7-list-item-header-text-color);font-size:var(--f7-list-item-header-font-size);font-weight:var(--f7-list-item-header-font-weight);line-height:var(--f7-list-item-header-line-height)}.list .item-footer{color:var(--f7-list-item-footer-text-color);font-size:var(--f7-list-item-footer-font-size);font-weight:var(--f7-list-item-footer-font-weight);line-height:var(--f7-list-item-footer-line-height)}.list .item-link,.list .list-button{transition-duration:.3s;transition-property:background-color;display:block;position:relative;overflow:hidden;z-index:0}.list .item-link{color:inherit}.list .item-link.active-state{background-color:var(--f7-list-link-pressed-bg-color)}.list .item-link .item-inner{padding-right:calc(var(--f7-list-chevron-icon-area) + var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-right))}.list .item-content{display:flex;justify-content:space-between;box-sizing:border-box;align-items:center;min-height:var(--f7-list-item-min-height);padding-left:calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-left))}.list .item-subtitle{position:relative;overflow:hidden;white-space:nowrap;max-width:100%;text-overflow:ellipsis;font-size:var(--f7-list-item-subtitle-font-size);font-weight:var(--f7-list-item-subtitle-font-weight);color:var(--f7-list-item-subtitle-text-color);line-height:var(--f7-list-item-subtitle-line-height)}.list .item-text{position:relative;overflow:hidden;text-overflow:ellipsis;-webkit-line-clamp:var(--f7-list-item-text-max-lines);-webkit-box-orient:vertical;display:-webkit-box;font-size:var(--f7-list-item-text-font-size);font-weight:var(--f7-list-item-text-font-weight);color:var(--f7-list-item-text-text-color);line-height:var(--f7-list-item-text-line-height);max-height:calc(var(--f7-list-item-text-line-height) * var(--f7-list-item-text-max-lines))}.list .item-title-row{position:relative;display:flex;justify-content:space-between;box-sizing:border-box}.list .item-title-row .item-after{align-self:center}.list .item-row{display:flex;justify-content:space-between;box-sizing:border-box}.list .item-cell{display:block;align-self:center;box-sizing:border-box;width:100%;min-width:0;margin-left:var(--f7-list-item-cell-margin);flex-shrink:1}.list .item-cell:first-child{margin-left:0}.list .ripple-wave+.item-cell{margin-left:0}.list li:last-child .list-button:after{display:none!important}.list li:last-child li:last-child>.item-content>.item-inner:after,.list li:last-child li:last-child>.item-inner:after,.list li:last-child li:last-child>.item-link>.item-content>.item-inner:after,.list li:last-child li:last-child>.swipeout-content>.item-content>.item-inner:after,.list li:last-child>.item-content>.item-inner:after,.list li:last-child>.item-inner:after,.list li:last-child>.item-link>.item-content>.item-inner:after,.list li:last-child>.swipeout-content>.item-content>.item-inner:after{display:none!important}.list li li:last-child .item-inner:after,.list li:last-child li .item-inner:after{content:'';position:absolute;background-color:var(--f7-list-item-border-color);display:block;z-index:15;top:auto;right:auto;bottom:0;left:0;height:1px;width:100%;transform-origin:50% 100%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.aurora .list.no-hairlines-aurora ul:after,.aurora .list.no-hairlines-aurora ul:before,.aurora .list.no-hairlines-aurora:after,.aurora .list.no-hairlines-aurora:before,.ios .list.no-hairlines-ios ul:after,.ios .list.no-hairlines-ios ul:before,.ios .list.no-hairlines-ios:after,.ios .list.no-hairlines-ios:before,.list.no-hairlines ul:after,.list.no-hairlines ul:before,.list.no-hairlines:after,.list.no-hairlines:before,.md .list.no-hairlines-md ul:after,.md .list.no-hairlines-md ul:before,.md .list.no-hairlines-md:after,.md .list.no-hairlines-md:before{display:none!important}.aurora .list.no-hairline-top-aurora ul:before,.aurora .list.no-hairline-top-aurora:before,.ios .list.no-hairline-top-ios ul:before,.ios .list.no-hairline-top-ios:before,.list.no-hairline-top ul:before,.list.no-hairline-top:before,.md .list.no-hairline-top-md ul:before,.md .list.no-hairline-top-md:before{display:none!important}.aurora .list.no-hairline-bottom-aurora ul:after,.aurora .list.no-hairline-bottom-aurora:after,.ios .list.no-hairline-bottom-ios ul:after,.ios .list.no-hairline-bottom-ios:after,.list.no-hairline-bottom ul:after,.list.no-hairline-bottom:after,.md .list.no-hairline-bottom-md ul:after,.md .list.no-hairline-bottom-md:after{display:none!important}.aurora .list.no-hairlines-between-aurora .item-divider:after,.aurora .list.no-hairlines-between-aurora .item-inner:after,.aurora .list.no-hairlines-between-aurora .list-button:after,.aurora .list.no-hairlines-between-aurora .list-group-title:after,.ios .list.no-hairlines-between-ios .item-divider:after,.ios .list.no-hairlines-between-ios .item-inner:after,.ios .list.no-hairlines-between-ios .list-button:after,.ios .list.no-hairlines-between-ios .list-group-title:after,.list.no-hairlines-between .item-divider:after,.list.no-hairlines-between .item-inner:after,.list.no-hairlines-between .list-button:after,.list.no-hairlines-between .list-group-title:after,.md .list.no-hairlines-between-md .item-divider:after,.md .list.no-hairlines-between-md .item-inner:after,.md .list.no-hairlines-between-md .list-button:after,.md .list.no-hairlines-between-md .list-group-title:after{display:none!important}.aurora .list.no-hairlines-between-aurora.simple-list li:after,.ios .list.no-hairlines-between-ios.simple-list li:after,.list.no-hairlines-between.simple-list li:after,.md .list.no-hairlines-between-md.simple-list li:after{display:none!important}.aurora .list.no-hairlines-between-aurora.links-list a:after,.ios .list.no-hairlines-between-ios.links-list a:after,.list.no-hairlines-between.links-list a:after,.md .list.no-hairlines-between-md.links-list a:after{display:none!important}.list-button{padding:0 var(--f7-list-item-padding-horizontal);line-height:var(--f7-list-item-min-height);color:var(--f7-list-button-text-color,var(--f7-theme-color));font-size:var(--f7-list-button-font-size);font-weight:var(--f7-list-button-font-weight);text-align:var(--f7-list-button-text-align)}.list-button:after{content:'';position:absolute;background-color:var(--f7-list-button-border-color);display:block;z-index:15;top:auto;right:auto;bottom:0;left:0;height:1px;width:100%;transform-origin:50% 100%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.list-button.active-state{background-color:var(--f7-list-button-pressed-bg-color)}.list-button[class*=color-]{--f7-list-button-text-color:var(--f7-theme-color)}.simple-list li{position:relative;white-space:nowrap;text-overflow:ellipsis;max-width:100%;box-sizing:border-box;display:flex;justify-content:space-between;align-items:center;align-content:center;line-height:var(--f7-list-item-min-height);height:var(--f7-list-item-min-height);padding-left:calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-left));padding-right:calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-right))}.simple-list li:after{left:var(--f7-list-item-padding-horizontal);width:auto;left:calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-left));right:0}.simple-list li:last-child:after{display:none!important}.links-list li{z-index:1}.links-list a{transition-duration:.3s;transition-property:background-color;display:block;position:relative;overflow:hidden;display:flex;align-items:center;align-content:center;justify-content:space-between;box-sizing:border-box;white-space:nowrap;text-overflow:ellipsis;max-width:100%;height:var(--f7-list-item-min-height);color:inherit}.links-list a .ripple-wave{z-index:0}.links-list a:after{width:auto}.links-list a.active-state{background-color:var(--f7-list-link-pressed-bg-color)}.links-list a{padding-left:calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-left));padding-right:calc(var(--f7-list-chevron-icon-area) + var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-right))}.links-list a:after{left:calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-left));right:0}.links-list li:last-child a:after{display:none!important}.links-list a:after,.list .item-inner:after,.simple-list li:after{content:'';position:absolute;background-color:var(--f7-list-item-border-color);display:block;z-index:15;top:auto;right:auto;bottom:0;left:0;height:1px;width:100%;transform-origin:50% 100%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.media-list,li.media-item{--f7-list-item-padding-vertical:var(--f7-list-media-item-padding-vertical);--f7-list-item-padding-horizontal:var(--f7-list-media-item-padding-horizontal)}.media-list .item-title,li.media-item .item-title{font-weight:var(--f7-list-media-item-title-font-weight,var(--f7-list-item-title-font-weight,inherit))}.media-list .item-inner,li.media-item .item-inner{display:block;align-self:stretch}.media-list .item-media,li.media-item .item-media{align-self:flex-start}.media-list .item-media img,li.media-item .item-media img{display:block}.media-list .item-link .item-inner,li.media-item .item-link .item-inner{padding-right:calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-right))}.media-list .item-link .item-title-row,li.media-item .item-link .item-title-row{padding-right:calc(var(--f7-list-chevron-icon-area))}.media-list .chevron-center .item-link .item-inner,.media-list .item-link.chevron-center .item-inner,.media-list.chevron-center .item-link .item-inner,li.media-item .chevron-center .item-link .item-inner,li.media-item .item-link.chevron-center .item-inner,li.media-item.chevron-center .item-link .item-inner{padding-right:calc(var(--f7-list-chevron-icon-area) + var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-right))}.media-list .chevron-center .item-title-row,.media-list.chevron-center .item-title-row,li.media-item .chevron-center .item-title-row,li.media-item.chevron-center .item-title-row{padding-right:0}.links-list a:before,.list .item-link .item-inner:before,.media-list .chevron-center .item-link .item-inner:before,.media-list .item-link .item-title-row:before,.media-list .item-link.chevron-center .item-inner:before,.media-list.chevron-center .item-link .item-inner:before,li.media-item .chevron-center .item-link .item-inner:before,li.media-item .item-link .item-title-row:before,li.media-item .item-link.chevron-center .item-inner:before,li.media-item.chevron-center .item-link .item-inner:before{font-family:framework7-core-icons;font-weight:400;font-style:normal;line-height:1;letter-spacing:normal;text-transform:none;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;font-feature-settings:"liga";text-align:center;display:block;width:100%;height:100%;font-size:20px;position:absolute;top:50%;width:8px;height:14px;margin-top:-7px;font-size:var(--f7-list-chevron-icon-font-size);line-height:14px;color:var(--f7-list-chevron-icon-color);pointer-events:none;right:calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-right));content:var(--f7-list-chevron-icon-right)}.media-list .chevron-center .item-title-row:before,.media-list.chevron-center .item-title-row:before,li.media-item .chevron-center .item-title-row:before,li.media-item.chevron-center .item-title-row:before{display:none}.media-list .item-link .item-inner:before,li.media-item .item-link .item-inner:before{display:none}.media-list .item-link .item-title-row:before,li.media-item .item-link .item-title-row:before{right:0}.list-group ul:after,.list-group ul:before{z-index:25!important}.list-group+.list-group ul:before{display:none!important}.item-divider,li.item-divider,li.list-group-title{white-space:nowrap;position:relative;max-width:100%;text-overflow:ellipsis;overflow:hidden;z-index:15;padding-top:0;padding-bottom:0;padding-left:calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-left));padding-right:calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-right));box-sizing:border-box;display:flex;align-items:center;align-content:center}.item-divider:after,li.item-divider:after,li.list-group-title:after{display:none!important}.item-divider,li.item-divider{margin-top:-1px;height:var(--f7-list-item-divider-height);color:var(--f7-list-item-divider-text-color);font-size:var(--f7-list-item-divider-font-size);font-weight:var(--f7-list-item-divider-font-weight);background-color:var(--f7-list-item-divider-bg-color);line-height:var(--f7-list-item-divider-line-height)}.item-divider:before,li.item-divider:before{content:'';position:absolute;background-color:var(--f7-list-item-divider-border-color);display:block;z-index:15;top:0;right:auto;bottom:auto;left:0;height:1px;width:100%;transform-origin:50% 0%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.list li.list-group-title,li.list-group-title{position:relative;position:-webkit-sticky;position:sticky;top:0;margin-top:0;z-index:20;height:var(--f7-list-group-title-height);color:var(--f7-list-group-title-text-color);font-size:var(--f7-list-group-title-font-size);font-weight:var(--f7-list-group-title-font-weight);background-color:var(--f7-list-group-title-bg-color);line-height:var(--f7-list-group-title-line-height)}.page-with-navbar-large .list li.list-group-title,.page-with-navbar-large li.list-group-title{top:calc(-1 * var(--f7-navbar-large-title-height))}.list.inset{margin-left:calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-left));margin-right:calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-right));border-radius:var(--f7-list-inset-border-radius);--f7-safe-area-left:0px;--f7-safe-area-right:0px}.list.inset .block-title{margin-left:0;margin-right:0}.list.inset ul{border-radius:var(--f7-list-inset-border-radius)}.list.inset ul:after,.list.inset ul:before{display:none!important}.list.inset li.swipeout:first-child,.list.inset li:first-child>a{border-radius:var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius) 0 0}.list.inset li.swipeout:last-child,.list.inset li:last-child>a{border-radius:0 0 var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius)}.list.inset li.swipeout:first-child:last-child,.list.inset li:first-child:last-child>a{border-radius:var(--f7-list-inset-border-radius)}@media (min-width:480px){.list.xsmall-inset{margin-left:calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-left));margin-right:calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-right));border-radius:var(--f7-list-inset-border-radius);--f7-safe-area-left:0px;--f7-safe-area-right:0px}.list.xsmall-inset .block-title{margin-left:0;margin-right:0}.list.xsmall-inset ul{border-radius:var(--f7-list-inset-border-radius)}.list.xsmall-inset ul:after,.list.xsmall-inset ul:before{display:none!important}.list.xsmall-inset li:first-child>a{border-radius:var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius) 0 0}.list.xsmall-inset li:last-child>a{border-radius:0 0 var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius)}.list.xsmall-inset li:first-child:last-child>a{border-radius:var(--f7-list-inset-border-radius)}}@media (min-width:568px){.list.small-inset{margin-left:calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-left));margin-right:calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-right));border-radius:var(--f7-list-inset-border-radius);--f7-safe-area-left:0px;--f7-safe-area-right:0px}.list.small-inset .block-title{margin-left:0;margin-right:0}.list.small-inset ul{border-radius:var(--f7-list-inset-border-radius)}.list.small-inset ul:after,.list.small-inset ul:before{display:none!important}.list.small-inset li:first-child>a{border-radius:var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius) 0 0}.list.small-inset li:last-child>a{border-radius:0 0 var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius)}.list.small-inset li:first-child:last-child>a{border-radius:var(--f7-list-inset-border-radius)}}@media (min-width:768px){.list.medium-inset{margin-left:calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-left));margin-right:calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-right));border-radius:var(--f7-list-inset-border-radius);--f7-safe-area-left:0px;--f7-safe-area-right:0px}.list.medium-inset .block-title{margin-left:0;margin-right:0}.list.medium-inset ul{border-radius:var(--f7-list-inset-border-radius)}.list.medium-inset ul:after,.list.medium-inset ul:before{display:none!important}.list.medium-inset li:first-child>a{border-radius:var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius) 0 0}.list.medium-inset li:last-child>a{border-radius:0 0 var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius)}.list.medium-inset li:first-child:last-child>a{border-radius:var(--f7-list-inset-border-radius)}}@media (min-width:1024px){.list.large-inset{margin-left:calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-left));margin-right:calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-right));border-radius:var(--f7-list-inset-border-radius);--f7-safe-area-left:0px;--f7-safe-area-right:0px}.list.large-inset .block-title{margin-left:0;margin-right:0}.list.large-inset ul{border-radius:var(--f7-list-inset-border-radius)}.list.large-inset ul:after,.list.large-inset ul:before{display:none!important}.list.large-inset li:first-child>a{border-radius:var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius) 0 0}.list.large-inset li:last-child>a{border-radius:0 0 var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius)}.list.large-inset li:first-child:last-child>a{border-radius:var(--f7-list-inset-border-radius)}}@media (min-width:1200px){.list.xlarge-inset{margin-left:calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-left));margin-right:calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-right));border-radius:var(--f7-list-inset-border-radius);--f7-safe-area-left:0px;--f7-safe-area-right:0px}.list.xlarge-inset .block-title{margin-left:0;margin-right:0}.list.xlarge-inset ul{border-radius:var(--f7-list-inset-border-radius)}.list.xlarge-inset ul:after,.list.xlarge-inset ul:before{display:none!important}.list.xlarge-inset li:first-child>a{border-radius:var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius) 0 0}.list.xlarge-inset li:last-child>a{border-radius:0 0 var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius)}.list.xlarge-inset li:first-child:last-child>a{border-radius:var(--f7-list-inset-border-radius)}}.list .no-chevron,.list.no-chevron{--f7-list-chevron-icon-color:transparent;--f7-list-chevron-icon-area:0px}.ios .item-link.active-state .item-inner:after,.ios .links-list a.active-state:after,.ios .list-button.active-state:after{background-color:transparent}.ios .links-list a.active-state,.ios .list .item-link.active-state,.ios .list .list-button.active-state{transition-duration:0s}.md .list .item-media{min-width:40px}.aurora .list .item-media{min-width:18px}.aurora .links-list a,.aurora .list .item-link,.aurora .list .list-button{transition-duration:0s}.aurora.device-desktop .links-list a:hover:not(.active-state):not(.no-hover),.aurora.device-desktop .list .item-link:hover:not(.active-state):not(.no-hover){background:var(--f7-list-link-hover-bg-color)}.aurora.device-desktop .list .list-button:hover:not(.active-state):not(.no-hover){background:var(--f7-list-button-hover-bg-color)}:root{--f7-badge-text-color:#fff;--f7-badge-bg-color:#8e8e93;--f7-badge-padding:0 4px;--f7-badge-in-icon-size:16px;--f7-badge-in-icon-font-size:10px;--f7-badge-font-weight:normal;--f7-badge-font-size:12px}.ios{--f7-badge-size:20px}.md{--f7-badge-size:18px}.aurora{--f7-badge-size:18px;--f7-badge-font-weight:600;--f7-badge-in-icon-size:15px}.badge{display:inline-flex;align-items:center;align-content:center;justify-content:center;color:var(--f7-badge-text-color);background:var(--f7-badge-bg-color);position:relative;box-sizing:border-box;text-align:center;vertical-align:middle;font-weight:var(--f7-badge-font-weight);font-size:var(--f7-badge-font-size);border-radius:var(--f7-badge-size);padding:var(--f7-badge-padding);height:var(--f7-badge-size);min-width:var(--f7-badge-size)}.f7-icons .badge,.framework7-icons .badge,.icon .badge,.material-icons .badge{position:absolute;left:100%;margin-left:-10px;top:-2px;font-family:var(--f7-font-family);--f7-badge-font-size:var(--f7-badge-in-icon-font-size);--f7-badge-size:var(--f7-badge-in-icon-size)}.badge[class*=color-]{--f7-badge-bg-color:var(--f7-theme-color)}:root{--f7-button-min-width:32px;--f7-button-bg-color:transparent;--f7-button-border-width:0px;--f7-button-outline-border-width:2px;--f7-button-raised-box-shadow:0 1px 3px rgba(0, 0, 0, 0.12),0 1px 2px rgba(0,0,0,0.24);--f7-button-raised-pressed-box-shadow:0 3px 6px rgba(0, 0, 0, 0.16),0 3px 6px rgba(0,0,0,0.23);--f7-segmented-raised-divider-color:rgba(0, 0, 0, 0.1);--f7-segmented-strong-padding:2px;--f7-segmented-strong-between-buttons:4px;--f7-segmented-strong-button-font-weight:500;--f7-segmented-strong-button-active-box-shadow:0px 2px 2px rgba(0, 0, 0, 0.25);--f7-segmented-strong-bg-color:rgba(0, 0, 0, 0.07);--f7-segmented-strong-button-text-color:#000;--f7-segmented-strong-button-pressed-bg-color:rgba(0, 0, 0, 0.07);--f7-segmented-strong-button-hover-bg-color:rgba(0, 0, 0, 0.04);--f7-segmented-strong-button-active-text-color:#000;--f7-segmented-strong-button-active-bg-color:#fff}:root .theme-dark,:root.theme-dark{--f7-segmented-strong-bg-color:rgba(255, 255, 255, 0.1);--f7-segmented-strong-button-pressed-bg-color:rgba(255, 255, 255, 0.04);--f7-segmented-strong-button-hover-bg-color:rgba(255, 255, 255, 0.02);--f7-segmented-strong-button-active-bg-color:rgba(255, 255, 255, 0.14);--f7-segmented-strong-button-text-color:#fff;--f7-segmented-strong-button-active-text-color:#fff}.ios{--f7-button-font-size:13px;--f7-button-height:28px;--f7-button-padding-horizontal:10px;--f7-button-border-radius:5px;--f7-button-font-weight:600;--f7-button-letter-spacing:0;--f7-button-text-transform:uppercase;--f7-button-large-height:44px;--f7-button-large-font-size:17px;--f7-button-large-font-weight:500;--f7-button-large-text-transform:none;--f7-button-small-height:26px;--f7-button-small-font-size:13px;--f7-button-small-font-weight:600;--f7-button-small-text-transform:uppercase;--f7-button-small-outline-border-width:2px;--f7-segmented-strong-button-text-transform:none;--f7-segmented-strong-button-active-font-weight:600}.md{--f7-button-font-size:14px;--f7-button-height:36px;--f7-button-padding-horizontal:8px;--f7-button-border-radius:4px;--f7-button-font-weight:500;--f7-button-letter-spacing:0.03em;--f7-button-text-transform:uppercase;--f7-button-large-height:48px;--f7-button-large-font-size:14px;--f7-button-large-font-weight:500;--f7-button-large-text-transform:uppercase;--f7-button-small-height:28px;--f7-button-small-font-size:12px;--f7-button-small-font-weight:500;--f7-button-small-text-transform:uppercase;--f7-button-small-outline-border-width:2px;--f7-segmented-strong-button-text-transform:uppercase;--f7-segmented-strong-button-active-font-weight:500;--f7-button-pressed-bg-color:rgba(0, 0, 0, 0.1)}.md .theme-dark,.md.theme-dark{--f7-button-pressed-bg-color:rgba(255, 255, 255, 0.1)}.aurora{--f7-button-font-size:14px;--f7-button-height:28px;--f7-button-min-width:24px;--f7-button-padding-horizontal:10px;--f7-button-border-radius:4px;--f7-button-font-weight:500;--f7-button-letter-spacing:0.02;--f7-button-text-transform:none;--f7-button-large-height:34px;--f7-button-large-font-size:14px;--f7-button-large-font-weight:600;--f7-button-large-text-transform:none;--f7-button-small-height:24px;--f7-button-small-font-size:12px;--f7-button-small-font-weight:600;--f7-button-small-text-transform:none;--f7-button-small-outline-border-width:1px;--f7-segmented-strong-button-text-transform:none;--f7-segmented-strong-button-active-font-weight:600}button{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%}.button{text-decoration:none;text-align:center;display:block;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:0 0;margin:0;white-space:nowrap;text-overflow:ellipsis;position:relative;overflow:hidden;font-family:inherit;cursor:pointer;outline:0;box-sizing:border-box;vertical-align:middle;justify-content:center;align-items:center;border:var(--f7-button-border-width,0px) solid var(--f7-button-border-color,var(--f7-theme-color));font-size:var(--f7-button-font-size);color:var(--f7-button-text-color,var(--f7-theme-color));height:var(--f7-button-height);line-height:calc(var(--f7-button-height) - var(--f7-button-border-width,0) * 2);padding:var(--f7-button-padding-vertical,0px) var(--f7-button-padding-horizontal);border-radius:var(--f7-button-border-radius);min-width:var(--f7-button-min-width);font-weight:var(--f7-button-font-weight);letter-spacing:var(--f7-button-letter-spacing);text-transform:var(--f7-button-text-transform);background-color:var(--f7-button-bg-color);box-shadow:var(--f7-button-box-shadow)}.button.active-state{background-color:var(--f7-button-pressed-bg-color,rgba(var(--f7-theme-color-rgb),.15));color:var(--f7-button-pressed-text-color,var(--f7-button-text-color,var(--f7-theme-color)))}input[type=button].button,input[type=submit].button{width:100%}.button>i+i,.button>i+span,.button>span+i,.button>span+span{margin-left:4px}.appbar .button,.navbar .button,.searchbar .button,.subnavbar .button,.toolbar .button{color:var(--f7-button-text-color,var(--f7-theme-color))}.aurora .button-round-aurora,.button-round,.ios .button-round-ios,.md .button-round-md{--f7-button-border-radius:var(--f7-button-height)}.aurora .button-fill-aurora,.button-active,.button-fill,.button.tab-link-active,.ios .button-fill-ios,.md .button-fill-md{--f7-button-bg-color:var(--f7-button-fill-bg-color, var(--f7-theme-color));--f7-button-text-color:var(--f7-button-fill-text-color, #fff);--f7-touch-ripple-color:var(--f7-touch-ripple-white)}.aurora .button-fill-aurora,.button-fill,.ios .button-fill-ios,.md .button-fill-md{--f7-button-pressed-bg-color:var(--f7-button-fill-pressed-bg-color)}.button-active,.button.tab-link-active{--f7-button-pressed-bg-color:var(--f7-button-bg-color)}.aurora .button-outline-aurora,.button-outline,.ios .button-outline-ios,.md .button-outline-md{--f7-button-border-color:var(--f7-button-outline-border-color, var(--f7-theme-color));--f7-button-border-width:var(--f7-button-outline-border-width)}.aurora .button-large-aurora,.button-large,.ios .button-large-ios,.md .button-large-md{--f7-button-height:var(--f7-button-large-height);--f7-button-font-size:var(--f7-button-large-font-size);--f7-button-font-weight:var(--f7-button-large-font-weight);--f7-button-text-transform:var(--f7-button-large-text-transform)}.aurora .button-small-aurora,.button-small,.ios .button-small-ios,.md .button-small-md{--f7-button-outline-border-width:var(--f7-button-small-outline-border-width);--f7-button-height:var(--f7-button-small-height);--f7-button-font-size:var(--f7-button-small-font-size);--f7-button-font-weight:var(--f7-button-small-font-weight);--f7-button-text-transform:var(--f7-button-small-text-transform)}.ios .button-small-ios.button-fill,.ios .button-small.button-fill,.ios .button-small.button-fill-ios{--f7-button-border-width:var(--f7-button-small-outline-border-width);--f7-button-pressed-text-color:var(--f7-theme-color);--f7-button-pressed-bg-color:transparent}.segmented{align-self:center;display:flex;flex-wrap:nowrap;border-radius:var(--f7-button-border-radius);box-shadow:var(--f7-button-box-shadow);box-sizing:border-box}.segmented .button,.segmented button{width:100%;flex-shrink:1;min-width:0;border-radius:0}.segmented .button:first-child{border-radius:var(--f7-button-border-radius) 0 0 var(--f7-button-border-radius)}.segmented .button:not(.button-outline):first-child{border-left:none}.segmented .button.button-outline:nth-child(n+2){border-left:none}.segmented .button:last-child{border-radius:0 var(--f7-button-border-radius) var(--f7-button-border-radius) 0}.segmented .button-round:first-child{border-radius:var(--f7-button-height) 0 0 var(--f7-button-height)}.segmented .button-round:last-child{border-radius:0 var(--f7-button-height) var(--f7-button-height) 0}.segmented .button:first-child:last-child{border-radius:var(--f7-button-border-radius)}.aurora .segmented-raised-aurora,.ios .segmented-raised-ios,.md .segmented-raised-md,.segmented-raised{box-shadow:var(--f7-button-raised-box-shadow)}.aurora .segmented-raised-aurora .button:not(.button-outline),.ios .segmented-raised-ios .button:not(.button-outline),.md .segmented-raised-md .button:not(.button-outline),.segmented-raised .button:not(.button-outline){border-left:1px solid var(--f7-segmented-raised-divider-color)}.aurora .button-raised-aurora,.button-raised,.ios .button-raised-ios,.md .button-raised-md{--f7-button-box-shadow:var(--f7-button-raised-box-shadow)}.aurora .button-raised-aurora.active-state,.button-raised.active-state,.ios .button-raised-ios.active-state,.md .button-raised-md.active-state{--f7-button-box-shadow:var(--f7-button-raised-pressed-box-shadow)}.aurora .segmented-strong-aurora,.ios .segmented-strong-ios,.md .segmented-strong-md,.segmented-strong{--f7-button-bg-color:transparent;--f7-button-hover-bg-color:var(--f7-segmented-strong-button-hover-bg-color);--f7-button-text-color:var(--f7-segmented-strong-button-text-color);--f7-button-font-weight:var(--f7-segmented-strong-button-font-weight);--f7-button-text-transform:var(--f7-segmented-strong-button-text-transform);--f7-button-pressed-bg-color:var(--f7-segmented-strong-button-pressed-bg-color);position:relative;background:var(--f7-segmented-strong-bg-color);border-radius:calc(var(--f7-button-border-radius) + 2px);box-shadow:none;padding:var(--f7-segmented-strong-padding);overflow:hidden}.aurora .segmented-strong-aurora .button,.ios .segmented-strong-ios .button,.md .segmented-strong-md .button,.segmented-strong .button{z-index:1;transform:translate3d(0,0,0)}.aurora .segmented-strong-aurora .button,.aurora .segmented-strong-aurora .button:first-child,.aurora .segmented-strong-aurora .button:last-child,.ios .segmented-strong-ios .button,.ios .segmented-strong-ios .button:first-child,.ios .segmented-strong-ios .button:last-child,.md .segmented-strong-md .button,.md .segmented-strong-md .button:first-child,.md .segmented-strong-md .button:last-child,.segmented-strong .button,.segmented-strong .button:first-child,.segmented-strong .button:last-child{border-radius:var(--f7-button-border-radius)}.aurora .segmented-strong-aurora .button+.button,.ios .segmented-strong-ios .button+.button,.md .segmented-strong-md .button+.button,.segmented-strong .button+.button{margin-left:var(--f7-segmented-strong-between-buttons)}.aurora .segmented-strong-aurora .button.button-active,.aurora .segmented-strong-aurora .button.tab-link-active,.ios .segmented-strong-ios .button.button-active,.ios .segmented-strong-ios .button.tab-link-active,.md .segmented-strong-md .button.button-active,.md .segmented-strong-md .button.tab-link-active,.segmented-strong .button.button-active,.segmented-strong .button.tab-link-active{--f7-button-hover-bg-color:transparent;--f7-button-bg-color:transparent;--f7-button-text-color:var(--f7-segmented-strong-button-active-text-color);--f7-button-font-weight:var(--f7-segmented-strong-button-active-font-weight)}.aurora .segmented-strong-aurora .segmented-highlight,.ios .segmented-strong-ios .segmented-highlight,.md .segmented-strong-md .segmented-highlight,.segmented-strong .segmented-highlight{--f7-segmented-highlight-num:1;--f7-segmented-highlight-active:0;--f7-segmented-highlight-padding:calc(var(--f7-segmented-strong-padding) * 2);--f7-segmented-highlight-between:var(--f7-segmented-strong-between-buttons);--f7-segmented-highlight-width:calc((100% - var(--f7-segmented-highlight-padding) - var(--f7-segmented-highlight-between) * (var(--f7-segmented-highlight-num) - 1)) / var(--f7-segmented-highlight-num));position:absolute;background-color:var(--f7-segmented-strong-button-active-bg-color);border-radius:var(--f7-button-border-radius);box-shadow:var(--f7-segmented-strong-button-active-box-shadow);left:var(--f7-segmented-strong-padding);top:var(--f7-segmented-strong-padding);height:calc(100% - var(--f7-segmented-strong-padding) * 2);width:var(--f7-segmented-highlight-width);z-index:0;transform:translateX(calc(var(--f7-segmented-highlight-active) * 100% + var(--f7-segmented-highlight-active) * var(--f7-segmented-highlight-between)));transition:.2s}.button:nth-child(2)~.segmented-highlight{--f7-segmented-highlight-num:2}.button:nth-child(3)~.segmented-highlight{--f7-segmented-highlight-num:3}.button:nth-child(4)~.segmented-highlight{--f7-segmented-highlight-num:4}.button:nth-child(5)~.segmented-highlight{--f7-segmented-highlight-num:5}.button:nth-child(6)~.segmented-highlight{--f7-segmented-highlight-num:6}.button:nth-child(7)~.segmented-highlight{--f7-segmented-highlight-num:7}.button:nth-child(8)~.segmented-highlight{--f7-segmented-highlight-num:8}.button:nth-child(9)~.segmented-highlight{--f7-segmented-highlight-num:9}.button:nth-child(10)~.segmented-highlight{--f7-segmented-highlight-num:10}.button-active:nth-child(2)~.segmented-highlight,.tab-link-active:nth-child(2)~.segmented-highlight{--f7-segmented-highlight-active:1}.button-active:nth-child(3)~.segmented-highlight,.tab-link-active:nth-child(3)~.segmented-highlight{--f7-segmented-highlight-active:2}.button-active:nth-child(4)~.segmented-highlight,.tab-link-active:nth-child(4)~.segmented-highlight{--f7-segmented-highlight-active:3}.button-active:nth-child(5)~.segmented-highlight,.tab-link-active:nth-child(5)~.segmented-highlight{--f7-segmented-highlight-active:4}.button-active:nth-child(6)~.segmented-highlight,.tab-link-active:nth-child(6)~.segmented-highlight{--f7-segmented-highlight-active:5}.button-active:nth-child(7)~.segmented-highlight,.tab-link-active:nth-child(7)~.segmented-highlight{--f7-segmented-highlight-active:6}.button-active:nth-child(8)~.segmented-highlight,.tab-link-active:nth-child(8)~.segmented-highlight{--f7-segmented-highlight-active:7}.button-active:nth-child(9)~.segmented-highlight,.tab-link-active:nth-child(9)~.segmented-highlight{--f7-segmented-highlight-active:8}.button-active:nth-child(10)~.segmented-highlight,.tab-link-active:nth-child(10)~.segmented-highlight{--f7-segmented-highlight-active:9}.aurora .segmented-round-aurora,.ios .segmented-round-ios,.md .segmented-round-md,.segmented-round{border-radius:var(--f7-button-height)}.aurora .segmented-round-aurora .segmented-highlight,.ios .segmented-round-ios .segmented-highlight,.md .segmented-round-md .segmented-highlight,.segmented-round .segmented-highlight{border-radius:var(--f7-button-height)}.subnavbar .segmented{width:100%}.ios .button{transition-duration:.1s}.ios .button-fill,.ios .button-fill-ios{--f7-button-pressed-bg-color:var(--f7-button-fill-pressed-bg-color, var(--f7-theme-color-tint))}.ios .button-small,.ios .button-small-ios{transition-duration:.2s}.md .button{transition-duration:.3s;transform:translate3d(0,0,0)}.md .button-fill,.md .button-fill-md{--f7-button-pressed-bg-color:var(--f7-button-fill-pressed-bg-color, var(--f7-theme-color-shade))}.aurora .button{transition-duration:.1s;transform:translate3d(0,0,0)}.aurora.device-desktop .button:not(.active-state):not(.no-hover):hover{background-color:var(--f7-button-hover-bg-color,rgba(var(--f7-theme-color-rgb),.07))}.aurora .button-fill,.aurora .button-fill-aurora{--f7-button-pressed-bg-color:var(--f7-button-fill-pressed-bg-color, var(--f7-theme-color-shade))}.aurora .button-active,.aurora .button-fill,.aurora .button-fill-aurora,.aurora .button.tab-link-active{--f7-button-hover-bg-color:var(--f7-button-fill-hover-bg-color, var(--f7-theme-color-tint))}:root{--f7-touch-ripple-black:rgba(0, 0, 0, 0.1);--f7-touch-ripple-white:rgba(255, 255, 255, 0.3);--f7-touch-ripple-color:var(--f7-touch-ripple-black)}.theme-dark{--f7-touch-ripple-color:var(--f7-touch-ripple-white)}.actions-button,.button,.checkbox,.dialog-button,.fab a,.item-link,.link,.list-button,.radio,.ripple,.speed-dial-buttons a,.tab-link{-webkit-user-select:none;-moz-user-select:none;user-select:none}.ripple-wave{left:0;top:0;position:absolute!important;border-radius:50%;pointer-events:none;z-index:-1;padding:0;margin:0;font-size:0;transform:translate3d(0px,0px,0) scale(0);transition-duration:1.4s;background-color:var(--f7-touch-ripple-color)}.ripple-wave.ripple-wave-fill{transition-duration:.3s;opacity:.35}.ripple-wave.ripple-wave-out{transition-duration:.6s;opacity:0}.button-fill .ripple-wave,.menu .ripple-wave,.picker-calendar-day .ripple-wave{z-index:1}.checkbox .ripple-wave,.data-table .sortable-cell .ripple-wave,.radio .ripple-wave{z-index:0}[class*=ripple-color-]{--f7-touch-ripple-color:var(--f7-theme-color-ripple-color)}.f7-icons,.material-icons{width:1em;height:1em}i.icon{display:inline-block;vertical-align:middle;background-size:100% auto;background-position:center;background-repeat:no-repeat;font-style:normal;position:relative}.icon-back:after,.icon-forward:after,.icon-next:after,.icon-prev:after{font-family:framework7-core-icons;font-weight:400;font-style:normal;line-height:1;letter-spacing:normal;text-transform:none;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;font-feature-settings:"liga";text-align:center;display:block;width:100%;height:100%;font-size:20px}.icon[class*=color-]{color:var(--f7-theme-color)}.ios .icon-back,.ios .icon-forward,.ios .icon-next,.ios .icon-prev{width:12px;height:20px;line-height:20px}.ios .icon-back:after,.ios .icon-forward:after,.ios .icon-next:after,.ios .icon-prev:after{line-height:inherit}.ios .icon-next:after,.ios .icon-prev:after{font-size:16px}.ios .icon-back:after,.ios .icon-prev:after{content:'chevron_left_ios'}.ios .icon-forward:after,.ios .icon-next:after{content:'chevron_right_ios'}.md .icon-back,.md .icon-forward,.md .icon-next,.md .icon-prev{width:24px;height:24px}.md .icon-back:after,.md .icon-forward:after,.md .icon-next:after,.md .icon-prev:after{line-height:1.2}.md .icon-back:after{content:'arrow_left_md'}.md .icon-forward:after{content:'arrow_right_md'}.md .icon-next:after{content:'chevron_right_md'}.md .icon-prev:after{content:'chevron_left_md'}.aurora .f7-icons,.aurora .material-icons{font-size:18px}.aurora .icon-back,.aurora .icon-forward,.aurora .icon-next,.aurora .icon-prev{width:9px;height:14px;line-height:14px}.aurora .icon-back:after,.aurora .icon-forward:after,.aurora .icon-next:after,.aurora .icon-prev:after{line-height:inherit}.aurora .icon-back:after,.aurora .icon-prev:after{content:'chevron_left_aurora'}.aurora .icon-forward:after,.aurora .icon-next:after{content:'chevron_right_aurora'}.custom-modal-backdrop{z-index:10500}.actions-backdrop,.custom-modal-backdrop,.dialog-backdrop,.fab-backdrop,.popover-backdrop,.popup-backdrop,.preloader-backdrop,.sheet-backdrop{position:absolute;left:0;top:0;width:100%;height:100%;background:rgba(0,0,0,.4);z-index:13000;visibility:hidden;opacity:0;transition-duration:.4s}.actions-backdrop.not-animated,.custom-modal-backdrop.not-animated,.dialog-backdrop.not-animated,.fab-backdrop.not-animated,.popover-backdrop.not-animated,.popup-backdrop.not-animated,.preloader-backdrop.not-animated,.sheet-backdrop.not-animated{transition-duration:0s}.actions-backdrop.backdrop-in,.custom-modal-backdrop.backdrop-in,.dialog-backdrop.backdrop-in,.fab-backdrop.backdrop-in,.popover-backdrop.backdrop-in,.popup-backdrop.backdrop-in,.preloader-backdrop.backdrop-in,.sheet-backdrop.backdrop-in{visibility:visible;opacity:1}:root{--f7-appbar-shadow-image:none}.ios{--f7-appbar-height:44px;--f7-appbar-inner-padding-left:8px;--f7-appbar-inner-padding-right:8px}.md{--f7-appbar-height:48px;--f7-appbar-inner-padding-left:16px;--f7-appbar-inner-padding-right:16px}.aurora{--f7-appbar-height:38px;--f7-appbar-inner-padding-left:16px;--f7-appbar-inner-padding-right:16px}.appbar{position:relative;left:0;top:0;width:100%;z-index:500;-webkit-backface-visibility:hidden;backface-visibility:hidden;box-sizing:border-box;margin:0;transform:translate3d(0,0,0);height:calc(var(--f7-appbar-height) + var(--f7-safe-area-top));background-image:var(--f7-appbar-bg-image,var(--f7-bars-bg-image));background-color:var(--f7-appbar-bg-color,var(--f7-bars-bg-color));color:var(--f7-appbar-text-color,var(--f7-bars-text-color));font-size:var(--f7-appbar-font-size);z-index:7000}@supports ((-webkit-backdrop-filter:blur(20px)) or (backdrop-filter:blur(20px))){.ios-translucent-bars .appbar{background-color:rgba(var(--f7-appbar-bg-color-rgb,var(--f7-bars-bg-color-rgb)),var(--f7-bars-translucent-opacity));-webkit-backdrop-filter:saturate(180%) blur(var(--f7-bars-translucent-blur));backdrop-filter:saturate(180%) blur(var(--f7-bars-translucent-blur))}}.appbar .panel~.appbar{z-index:5500}.appbar a{color:var(--f7-appbar-link-color,var(--f7-bars-link-color,var(--f7-theme-color)))}.appbar a.link{display:flex;justify-content:flex-start;line-height:var(--f7-appbar-link-line-height,var(--f7-appbar-height));height:var(--f7-appbar-link-height,var(--f7-appbar-height))}.appbar .center,.appbar .left,.appbar .right{display:flex;align-items:center}.appbar.no-border:after,.appbar.no-hairline:after{display:none!important}.appbar.no-border .title-large:after,.appbar.no-hairline .title-large:after{display:none!important}.appbar.no-shadow:before{display:none!important}.appbar:after,.appbar:before{-webkit-backface-visibility:hidden;backface-visibility:hidden}.appbar:after{content:'';position:absolute;background-color:var(--f7-appbar-border-color,var(--f7-bars-border-color));display:block;z-index:15;top:auto;right:auto;bottom:0;left:0;height:1px;width:100%;transform-origin:50% 100%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.appbar:before{content:'';position:absolute;right:0;width:100%;top:100%;bottom:auto;height:8px;pointer-events:none;background:var(--f7-appbar-shadow-image)}.appbar:after{z-index:1}.appbar~*{--f7-appbar-app-offset:calc(var(--f7-appbar-height) + var(--f7-appbar-extra-offset, 0px) + var(--f7-safe-area-top))}.appbar~.appbar,.appbar~.view,.appbar~.views{--f7-safe-area-top:0px}.appbar~.panel .page,.appbar~.panel .page-content,.appbar~.panel .view{--f7-safe-area-top:0px}.appbar-inner{position:absolute;left:0;top:var(--f7-safe-area-top);width:100%;height:var(--f7-appbar-height);display:flex;align-items:center;justify-content:space-between;box-sizing:border-box;padding:0 calc(var(--f7-appbar-inner-padding-right) + var(--f7-safe-area-right)) 0 calc(var(--f7-appbar-inner-padding-left) + var(--f7-safe-area-left))}.appbar-inner.stacked{display:none}:root{--f7-dialog-button-text-color:var(--f7-theme-color);--f7-dialog-button-text-align:center;--f7-dialog-input-bg-color:#fff}:root .theme-dark,:root.theme-dark{--f7-dialog-text-color:#fff}.ios{--f7-dialog-box-shadow:none;--f7-dialog-width:270px;--f7-dialog-inner-padding:16px;--f7-dialog-border-radius:13px;--f7-dialog-text-align:center;--f7-dialog-font-size:14px;--f7-dialog-title-text-color:inherit;--f7-dialog-title-font-size:18px;--f7-dialog-title-font-weight:600;--f7-dialog-title-line-height:inherit;--f7-dialog-button-font-size:17px;--f7-dialog-button-height:44px;--f7-dialog-button-letter-spacing:0;--f7-dialog-button-font-weight:400;--f7-dialog-button-text-transform:none;--f7-dialog-input-border-radius:4px;--f7-dialog-input-font-size:14px;--f7-dialog-input-height:32px;--f7-dialog-input-border-width:1px;--f7-dialog-input-placeholder-color:#a9a9a9;--f7-dialog-preloader-size:34px;--f7-dialog-bg-color:rgba(255, 255, 255, 0.95);--f7-dialog-bg-color-rgb:255,255,255;--f7-dialog-text-color:#000;--f7-dialog-button-pressed-bg-color:rgba(0, 0, 0, 0.1);--f7-dialog-input-border-color:rgba(0, 0, 0, 0.3);--f7-dialog-border-divider-color:rgba(0, 0, 0, 0.2)}.ios .theme-dark,.ios.theme-dark{--f7-dialog-bg-color:rgba(45, 45, 45, 0.95);--f7-dialog-bg-color-rgb:45,45,45;--f7-dialog-button-pressed-bg-color:rgba(0, 0, 0, 0.2);--f7-dialog-border-divider-color:rgba(255, 255, 255, 0.15);--f7-dialog-input-border-color:rgba(255, 255, 255, 0.15);--f7-dialog-input-bg-color:rgba(0, 0, 0, 0.5)}.md{--f7-dialog-box-shadow:var(--f7-elevation-24);--f7-dialog-width:280px;--f7-dialog-inner-padding:24px;--f7-dialog-border-radius:4px;--f7-dialog-text-align:left;--f7-dialog-font-size:16px;--f7-dialog-title-font-size:20px;--f7-dialog-title-font-weight:500;--f7-dialog-title-line-height:1.3;--f7-dialog-button-font-size:14px;--f7-dialog-button-height:36px;--f7-dialog-button-letter-spacing:0.03em;--f7-dialog-button-font-weight:500;--f7-dialog-button-text-transform:uppercase;--f7-dialog-input-border-radius:0px;--f7-dialog-input-font-size:16px;--f7-dialog-input-height:36px;--f7-dialog-input-border-color:transparent;--f7-dialog-input-border-width:0px;--f7-dialog-preloader-size:32px;--f7-dialog-bg-color:#fff;--f7-dialog-text-color:rgba(0, 0, 0, 0.54);--f7-dialog-title-text-color:#212121;--f7-dialog-button-pressed-bg-color:rgba(0, 0, 0, 0.1);--f7-dialog-input-placeholder-color:rgba(0, 0, 0, 0.35)}.md .theme-dark,.md.theme-dark{--f7-dialog-bg-color:#1c1c1d;--f7-dialog-title-text-color:#fff;--f7-dialog-button-pressed-bg-color:rgba(255, 255, 255, 0.1);--f7-dialog-input-bg-color:transparent;--f7-dialog-input-placeholder-color:rgba(255, 255, 255, 0.54)}.aurora{--f7-dialog-box-shadow:0 0 20px 0 rgba(0, 0, 0, 0.15),0 25px 30px 0 rgba(0,0,0,0.35);--f7-dialog-width:300px;--f7-dialog-inner-padding:20px;--f7-dialog-border-radius:4px;--f7-dialog-text-align:left;--f7-dialog-font-size:14px;--f7-dialog-title-font-size:14px;--f7-dialog-title-font-weight:700;--f7-dialog-title-line-height:inherit;--f7-dialog-button-font-size:13px;--f7-dialog-button-height:28px;--f7-dialog-button-letter-spacing:0;--f7-dialog-button-font-weight:500;--f7-dialog-button-text-transform:none;--f7-dialog-input-border-radius:4px;--f7-dialog-input-font-size:13px;--f7-dialog-input-height:24px;--f7-dialog-input-border-width:1px;--f7-dialog-preloader-size:24px;--f7-dialog-bg-color:#fff;--f7-dialog-title-text-color:inherit;--f7-dialog-text-color:#000;--f7-dialog-button-text-color:#fff;--f7-dialog-input-border-color:rgba(0, 0, 0, 0.12);--f7-dialog-input-placeholder-color:rgba(0, 0, 0, 0.32)}.aurora .theme-dark,.aurora.theme-dark{--f7-dialog-bg-color:#1c1c1d;--f7-dialog-title-text-color:#fff;--f7-dialog-input-bg-color:rgba(0, 0, 0, 0.25);--f7-dialog-input-placeholder-color:rgba(255, 255, 255, 0.54);--f7-dialog-input-border-color:rgba(255, 255, 255, 0.15)}.dialog{position:absolute;z-index:13500;left:50%;margin-top:0;top:50%;overflow:hidden;opacity:0;transform:translate3d(0,-50%,0) scale(1.185);transition-property:transform,opacity;display:none;transition-duration:.4s;box-shadow:var(--f7-dialog-box-shadow);width:var(--f7-dialog-width);margin-left:calc(-1 * var(--f7-dialog-width)/ 2);border-radius:var(--f7-dialog-border-radius);text-align:var(--f7-dialog-text-align);color:var(--f7-dialog-text-color);font-size:var(--f7-dialog-font-size);background:var(--f7-dialog-bg-color);will-change:transform,opacity}@supports ((-webkit-backdrop-filter:blur(20px)) or (backdrop-filter:blur(20px))){.ios-translucent-modals .dialog{background-color:rgba(var(--f7-dialog-bg-color-rgb),.8);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}}.dialog.modal-in{opacity:1;transform:translate3d(0,-50%,0) scale(1)}.dialog.modal-out{opacity:0;z-index:13499}.dialog.not-animated{transition-duration:0s}.dialog-inner{position:relative;padding:var(--f7-dialog-inner-padding)}.dialog-title{color:var(--f7-dialog-title-text-color);font-size:var(--f7-dialog-title-font-size);font-weight:var(--f7-dialog-title-font-weight);line-height:var(--f7-dialog-title-line-height)}.dialog-buttons{position:relative;display:flex}.dialog-buttons-vertical .dialog-buttons{display:block;height:auto!important}.dialog-button{box-sizing:border-box;overflow:hidden;position:relative;white-space:nowrap;text-overflow:ellipsis;color:var(--f7-dialog-button-text-color);font-size:var(--f7-dialog-button-font-size);height:var(--f7-dialog-button-height);line-height:var(--f7-dialog-button-height);letter-spacing:var(--f7-dialog-button-letter-spacing);text-align:var(--f7-dialog-button-text-align);font-weight:var(--f7-dialog-button-font-weight);text-transform:var(--f7-dialog-button-text-transform);display:block;cursor:pointer}.dialog-button.active-state{background-color:var(--f7-dialog-button-pressed-bg-color)}.dialog-no-buttons .dialog-buttons{display:none}.dialog-input-field{position:relative}input.dialog-input[type]{box-sizing:border-box;margin:0;margin-top:15px;border-radius:var(--f7-dialog-input-border-radius);-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;display:block;font-family:inherit;box-shadow:none;font-size:var(--f7-dialog-input-font-size);height:var(--f7-dialog-input-height);background-color:var(--f7-dialog-input-bg-color);border:var(--f7-dialog-input-border-width) solid var(--f7-dialog-input-border-color)}input.dialog-input[type]::-webkit-input-placeholder{color:var(--f7-dialog-input-placeholder-color)}input.dialog-input[type]::placeholder{color:var(--f7-dialog-input-placeholder-color)}.dialog-input-double input.dialog-input{border-radius:var(--f7-dialog-input-border-radius) var(--f7-dialog-input-border-radius) 0 0}.dialog-input-double+.dialog-input-double input.dialog-input{border-radius:0 0 var(--f7-dialog-input-border-radius) var(--f7-dialog-input-border-radius)}.dialog-preloader .preloader{--f7-preloader-size:var(--f7-dialog-preloader-size)}html.with-modal-dialog .page-content{overflow:hidden;-webkit-overflow-scrolling:auto}.ios .dialog.modal-out{transform:translate3d(0,-50%,0) scale(1)}.ios .dialog-inner{border-radius:var(--f7-dialog-border-radius) var(--f7-dialog-border-radius) 0 0}.ios .dialog-inner:after{content:'';position:absolute;background-color:var(--f7-dialog-border-divider-color);display:block;z-index:15;top:auto;right:auto;bottom:0;left:0;height:1px;width:100%;transform-origin:50% 100%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.ios .dialog-title+.dialog-text{margin-top:5px}.ios .dialog-buttons{height:44px;justify-content:center}.ios .dialog-button{width:100%;padding:0 5px;-webkit-box-flex:1;-ms-flex:1}.ios .dialog-button:after{content:'';position:absolute;background-color:var(--f7-dialog-border-divider-color);display:block;z-index:15;top:0;right:0;bottom:auto;left:auto;width:1px;height:100%;transform-origin:100% 50%;transform:scaleX(calc(1 / var(--f7-device-pixel-ratio)))}.ios .dialog-button:first-child{border-radius:0 0 0 var(--f7-dialog-border-radius)}.ios .dialog-button:last-child{border-radius:0 0 var(--f7-dialog-border-radius) 0}.ios .dialog-button:last-child:after{display:none!important}.ios .dialog-button:first-child:last-child{border-radius:0 0 var(--f7-dialog-border-radius) var(--f7-dialog-border-radius)}.ios .dialog-button.dialog-button-bold{font-weight:500}.ios .dialog-button[class*=color-]{--f7-dialog-button-text-color:var(--f7-theme-color)}.ios .dialog-buttons-vertical .dialog-buttons{height:auto}.ios .dialog-buttons-vertical .dialog-button{border-radius:0}.ios .dialog-buttons-vertical .dialog-button:after{content:'';position:absolute;background-color:var(--f7-dialog-border-divider-color);display:block;z-index:15;top:auto;right:auto;bottom:0;left:0;height:1px;width:100%;transform-origin:50% 100%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.ios .dialog-buttons-vertical .dialog-button:last-child{border-radius:0 0 var(--f7-dialog-border-radius) var(--f7-dialog-border-radius)}.ios .dialog-buttons-vertical .dialog-button:last-child:after{display:none!important}.ios .dialog-no-buttons .dialog-inner{border-radius:var(--f7-dialog-border-radius)}.ios .dialog-no-buttons .dialog-inner:after{display:none!important}.ios .dialog-input-field{margin-top:15px}.ios .dialog-input{padding:0 5px}.ios .dialog-input+.dialog-input{margin-top:5px}.ios .dialog-input-double+.dialog-input-double{margin-top:0}.ios .dialog-input-double+.dialog-input-double .dialog-input{border-top:0;margin-top:0}.ios .dialog-preloader .dialog-text~.preloader,.ios .dialog-preloader .dialog-title~.preloader{margin-top:15px}.ios .dialog-progress .dialog-text~.progressbar,.ios .dialog-progress .dialog-text~.progressbar-infinite,.ios .dialog-progress .dialog-title~.progressbar,.ios .dialog-progress .dialog-title~.progressbar-infinite{margin-top:15px}.md .dialog.modal-out{transform:translate3d(0,-50%,0) scale(.815)}.md .dialog-title+.dialog-text{margin-top:20px}.md .dialog-text{line-height:1.5}.md .dialog-buttons{height:48px;padding:6px 8px;overflow:hidden;box-sizing:border-box;justify-content:flex-end}.md .dialog-button{border-radius:4px;min-width:64px;padding:0 8px;border:none;transition-duration:.3s;transform:translate3d(0,0,0)}.md .dialog-button.dialog-button-bold{font-weight:700}.md .dialog-button+.dialog-button{margin-left:4px}.md .dialog-button[class*=color-]{--f7-dialog-button-text-color:var(--f7-theme-color)}.md .dialog-buttons-vertical .dialog-buttons{padding:0 0 8px 0}.md .dialog-buttons-vertical .dialog-button{margin-left:0;text-align:right;height:48px;line-height:48px;border-radius:0;padding-left:16px;padding-right:16px}.md .dialog-input{padding:0;transition-duration:.2s;position:relative}.md .dialog-input+.dialog-input{margin-top:16px}.md .dialog-preloader .dialog-inner,.md .dialog-preloader .dialog-title,.md .dialog-progress .dialog-inner,.md .dialog-progress .dialog-title{text-align:center}.md .dialog-preloader .dialog-text~.preloader,.md .dialog-preloader .dialog-title~.preloader{margin-top:20px}.md .dialog-progress .dialog-text~.progressbar,.md .dialog-progress .dialog-text~.progressbar-infinite,.md .dialog-progress .dialog-title~.progressbar,.md .dialog-progress .dialog-title~.progressbar-infinite{margin-top:16px}.aurora .dialog.modal-out{transform:translate3d(0,-50%,0) scale(.815)}.aurora .dialog-title+.dialog-text{margin-top:10px}.aurora .dialog-text{line-height:1.5}.aurora .dialog-buttons{padding:var(--f7-dialog-inner-padding);padding-top:0;overflow:hidden;box-sizing:border-box;justify-content:flex-end}.aurora .dialog-button{border-radius:4px;min-width:64px;padding:0 10px;border:none;transition-duration:.3s;transform:translate3d(0,0,0);background:var(--f7-theme-color)}.aurora .dialog-button.dialog-button-bold{font-weight:600}.aurora .dialog-button+.dialog-button{margin-left:16px}.aurora .dialog-button.active-state{background-color:var(--f7-dialog-button-pressed-bg-color,var(--f7-theme-color-shade))}.aurora.device-desktop .dialog-button:not(.active-state):not(.no-hover):hover{background-color:var(--f7-dialog-button-hover-bg-color,var(--f7-theme-color-tint))}.aurora .dialog-buttons-vertical .dialog-buttons{display:flex;flex-direction:column;align-items:flex-end}.aurora .dialog-buttons-vertical .dialog-button{margin-left:0;flex-shrink:0}.aurora .dialog-buttons-vertical .dialog-button+.dialog-button{margin-top:5px}.aurora .dialog-input-field{margin-top:10px}.aurora .dialog-input-field input.dialog-input{margin-top:0}.aurora .dialog-input{padding:0 4px;transition-duration:.2s;position:relative}.aurora .dialog-input+.dialog-input{margin-top:10px}.aurora .dialog-input-double+.dialog-input-double{margin-top:0}.aurora .dialog-input-double+.dialog-input-double .dialog-input{border-top:0;margin-top:0}.aurora .dialog-preloader .dialog-inner,.aurora .dialog-preloader .dialog-title,.aurora .dialog-progress .dialog-inner,.aurora .dialog-progress .dialog-title{text-align:center}.aurora .dialog-preloader .dialog-text~.preloader,.aurora .dialog-preloader .dialog-title~.preloader{margin-top:10px}.aurora .dialog-progress .dialog-text~.progressbar,.aurora .dialog-progress .dialog-text~.progressbar-infinite,.aurora .dialog-progress .dialog-title~.progressbar,.aurora .dialog-progress .dialog-title~.progressbar-infinite{margin-top:15px}:root{--f7-popup-border-radius:0px;--f7-popup-tablet-width:630px;--f7-popup-tablet-height:630px;--f7-popup-transition-duration:400ms;--f7-popup-push-border-radius:10px;--f7-popup-push-offset:var(--f7-safe-area-top)}.ios{--f7-popup-tablet-border-radius:5px;--f7-popup-box-shadow:none}.md{--f7-popup-tablet-border-radius:4px;--f7-popup-box-shadow:0px 20px 44px rgba(0, 0, 0, 0.5)}.aurora{--f7-popup-tablet-border-radius:4px;--f7-popup-box-shadow:0px 20px 44px rgba(0, 0, 0, 0.5)}.popup-backdrop{z-index:10500}.popup{position:absolute;left:0;top:0px;width:100%;height:100%;display:none;box-sizing:border-box;transition-property:transform;transform:translate3d(0,100vh,0);background:#fff;z-index:11000;overflow:hidden;border-radius:var(--f7-popup-border-radius)}.popup.theme-dark,.theme-dark .popup{background:#000}.popup.modal-in,.popup.modal-out{transition-duration:var(--f7-popup-transition-duration)}.popup.not-animated{transition-duration:0s}.popup.modal-in{display:block;transform:translate3d(0,0,0)}.popup.modal-out{transform:translate3d(0,100vh,0)}.popup.swipe-close-to-top.modal-out{transform:translate3d(0,-100vh,0)}@media (min-width:630px) and (min-height:630px){.popup:not(.popup-tablet-fullscreen){--f7-safe-area-top:0px;--f7-safe-area-bottom:0px;width:var(--f7-popup-tablet-width);height:var(--f7-popup-tablet-height);left:50%;top:50%;margin-left:calc(-1 * var(--f7-popup-tablet-width)/ 2);margin-top:calc(-1 * var(--f7-popup-tablet-height)/ 2);transform:translate3d(0,100vh,0);box-shadow:var(--f7-popup-box-shadow);border-radius:var(--f7-popup-tablet-border-radius,var(--f7-popup-border-radius))}.popup:not(.popup-tablet-fullscreen).modal-in{transform:translate3d(0,0,0)}.popup:not(.popup-tablet-fullscreen).modal-out{transform:translate3d(0,100vh,0)}.popup:not(.popup-tablet-fullscreen).swipe-close-to-top.modal-out{transform:translate3d(0,-100vh,0)}.popup:not(.popup-tablet-fullscreen).popup-behind{transform:translate3d(0,0,0) scale(.9)}}html.with-modal-popup .framework7-root>.panel .page-content,html.with-modal-popup .framework7-root>.view .page-content,html.with-modal-popup .framework7-root>.views .page-content{overflow:hidden;-webkit-overflow-scrolling:auto}html.with-modal-popup-push .popup-push,html.with-modal-popup-push-closing .popup-push{top:calc(var(--f7-popup-push-offset) + 10px);height:calc(100% - var(--f7-popup-push-offset) - 10px);border-radius:var(--f7-popup-push-border-radius) var(--f7-popup-push-border-radius) 0 0;--f7-safe-area-top:0px}html.with-modal-popup-push .popup-push .page,html.with-modal-popup-push .popup-push .view,html.with-modal-popup-push-closing .popup-push .page,html.with-modal-popup-push-closing .popup-push .view{--f7-safe-area-top:0px}html.with-modal-popup-push .framework7-root,html.with-modal-popup-push-closing .framework7-root{background:#000}html.with-modal-popup-push .framework7-root>.view,html.with-modal-popup-push .framework7-root>.views,html.with-modal-popup-push-closing .framework7-root>.view,html.with-modal-popup-push-closing .framework7-root>.views{transition-duration:var(--f7-popup-transition-duration)}html.with-modal-popup-push .framework7-root>.view.theme-dark:after,html.with-modal-popup-push .framework7-root>.views.theme-dark:after,html.with-modal-popup-push .theme-dark .framework7-root>.view:after,html.with-modal-popup-push .theme-dark .framework7-root>.views:after,html.with-modal-popup-push .theme-dark.framework7-root>.view:after,html.with-modal-popup-push .theme-dark.framework7-root>.views:after,html.with-modal-popup-push-closing .framework7-root>.view.theme-dark:after,html.with-modal-popup-push-closing .framework7-root>.views.theme-dark:after,html.with-modal-popup-push-closing .theme-dark .framework7-root>.view:after,html.with-modal-popup-push-closing .theme-dark .framework7-root>.views:after,html.with-modal-popup-push-closing .theme-dark.framework7-root>.view:after,html.with-modal-popup-push-closing .theme-dark.framework7-root>.views:after,html.with-modal-popup-push-closing.theme-dark .framework7-root>.view:after,html.with-modal-popup-push-closing.theme-dark .framework7-root>.views:after,html.with-modal-popup-push.theme-dark .framework7-root>.view:after,html.with-modal-popup-push.theme-dark .framework7-root>.views:after{content:'';position:absolute;pointer-events:none;left:0;top:0;width:100%;height:100%;background:rgba(255,255,255,.1);z-index:13000;border-radius:var(--f7-popup-push-border-radius) var(--f7-popup-push-border-radius) 0 0;opacity:1;animation:popup-dark-push-overlay-fade-in var(--f7-popup-transition-duration) forwards}html.with-modal-popup-push .framework7-root>.view,html.with-modal-popup-push .framework7-root>.views{border-radius:var(--f7-popup-push-border-radius) var(--f7-popup-push-border-radius) 0 0;transform:translate3d(0,0,0px) scale(var(--f7-popup-push-scale,1))!important}html.with-modal-popup-push .popup:after{content:'';pointer-events:none;position:absolute;left:0;top:0;width:100%;height:100%;background:rgba(0,0,0,.4);z-index:13000;transition-duration:var(--f7-popup-transition-duration);border-radius:var(--f7-popup-push-border-radius) var(--f7-popup-push-border-radius) 0 0;opacity:0}html.with-modal-popup-push .theme-dark .popup:after,html.with-modal-popup-push .theme-dark.popup:after,html.with-modal-popup-push.theme-dark .popup:after{background:rgba(255,255,255,.05)}html.with-modal-popup-push .popup-behind{transform:translate3d(0,0px,0px) scale(var(--f7-popup-push-scale,1))}html.with-modal-popup-push .popup-behind:not(.popup-push){border-radius:var(--f7-popup-push-border-radius) var(--f7-popup-push-border-radius) 0 0}html.with-modal-popup-push .popup-behind.popup-push{transform:translate3d(0,calc(0px - var(--f7-popup-push-offset) - 10px),0px) scale(var(--f7-popup-push-scale,1))}html.with-modal-popup-push .popup-behind:after{opacity:1;pointer-events:auto}html.with-modal-popup-push-closing .framework7-root>.view.theme-dark:after,html.with-modal-popup-push-closing .framework7-root>.views.theme-dark:after,html.with-modal-popup-push-closing .theme-dark .framework7-root>.view:after,html.with-modal-popup-push-closing .theme-dark .framework7-root>.views:after,html.with-modal-popup-push-closing .theme-dark.framework7-root>.view:after,html.with-modal-popup-push-closing .theme-dark.framework7-root>.views:after,html.with-modal-popup-push-closing.theme-dark .framework7-root>.view:after,html.with-modal-popup-push-closing.theme-dark .framework7-root>.views:after{animation:popup-dark-push-overlay-fade-out var(--f7-popup-transition-duration) forwards}@keyframes popup-dark-push-overlay-fade-in{from{opacity:0}to{opacity:1}}@keyframes popup-dark-push-overlay-fade-out{from{opacity:1}to{opacity:0}}:root{--f7-login-screen-blocks-max-width:480px;--f7-login-screen-title-text-align:center;--f7-login-screen-title-text-color:inherit;--f7-login-screen-title-letter-spacing:0;--f7-login-screen-title-font-weight:600;--f7-login-screen-title-font-size:28px;--f7-login-screen-content-bg-color:#fff;--f7-login-screen-bg-color:#fff}:root .theme-dark,:root.theme-dark{--f7-login-screen-bg-color:#121212;--f7-login-screen-content-bg-color:#121212}.ios{--f7-login-screen-blocks-margin-vertical:25px}.ios .theme-dark,.ios.theme-dark{--f7-login-screen-bg-color:#000;--f7-login-screen-content-bg-color:#000}.md{--f7-login-screen-blocks-margin-vertical:24px}.aurora{--f7-login-screen-blocks-margin-vertical:15px}.login-screen{position:absolute;left:0;top:0;width:100%;height:100%;display:none;box-sizing:border-box;transition-property:transform;transform:translate3d(0,100vh,0);background:var(--f7-login-screen-bg-color);z-index:11000}.login-screen.modal-in,.login-screen.modal-out{transition-duration:.4s}.login-screen.not-animated{transition-duration:0s}.login-screen.modal-in{display:block;transform:translate3d(0,0,0)}.login-screen.modal-out{transform:translate3d(0,100%,0)}.login-screen .page,.login-screen-content,.login-screen-page{background:var(--f7-login-screen-content-bg-color)}.login-screen-content .list-button,.login-screen-page .list-button{text-align:center;color:var(--f7-login-screen-list-button-text-color,var(--f7-theme-color))}.login-screen-content .block,.login-screen-content .list,.login-screen-content .login-screen-title,.login-screen-page .block,.login-screen-page .list,.login-screen-page .login-screen-title{margin:var(--f7-login-screen-blocks-margin-vertical) auto}.login-screen-content .block,.login-screen-content .block-footer,.login-screen-content .block-header,.login-screen-content .list,.login-screen-content .login-screen-title,.login-screen-page .block,.login-screen-page .block-footer,.login-screen-page .block-header,.login-screen-page .list,.login-screen-page .login-screen-title{max-width:var(--f7-login-screen-blocks-max-width)}.login-screen-content .list ul,.login-screen-page .list ul{background:0 0}.login-screen-content .list ul:after,.login-screen-content .list ul:before,.login-screen-page .list ul:after,.login-screen-page .list ul:before{display:none!important}.login-screen-content .block-footer,.login-screen-content .block-header,.login-screen-page .block-footer,.login-screen-page .block-header{text-align:center;margin-left:auto;margin-right:auto}.login-screen-title{text-align:var(--f7-login-screen-title-text-align);font-size:var(--f7-login-screen-title-font-size);font-weight:var(--f7-login-screen-title-font-weight);color:var(--f7-login-screen-title-text-color);letter-spacing:var(--f7-login-screen-title-letter-spacing)}.login-screen-page,.login-screen>.page,.login-screen>.view>.page{display:flex;flex-direction:column}.login-screen-page .login-screen-content,.login-screen-page .page-content,.login-screen>.page .login-screen-content,.login-screen>.page .page-content,.login-screen>.view>.page .login-screen-content,.login-screen>.view>.page .page-content{margin-top:auto;margin-bottom:auto;height:auto;max-height:100%;width:100%}.theme-dark .login-screen-content .block-strong,.theme-dark .login-screen-content .list ul,.theme-dark .login-screen-page .block-strong,.theme-dark .login-screen-page .list ul,.theme-dark.login-screen-page .block-strong,.theme-dark.login-screen-page .list ul{background-color:transparent}:root{--f7-popover-width:260px}.ios{--f7-popover-border-radius:13px;--f7-popover-box-shadow:none;--f7-popover-actions-icon-size:28px;--f7-popover-bg-color:rgba(255, 255, 255, 0.95);--f7-popover-actions-label-text-color:rgba(0, 0, 0, 0.45)}.ios .theme-dark,.ios.theme-dark{--f7-popover-bg-color:rgba(30, 30, 30, 0.95);--f7-popover-actions-label-text-color:rgba(255, 255, 255, 0.55)}.md{--f7-popover-border-radius:4px;--f7-popover-box-shadow:var(--f7-elevation-8);--f7-popover-actions-icon-size:24px;--f7-popover-bg-color:#fff;--f7-popover-actions-label-text-color:rgba(0, 0, 0, 0.54)}.md .theme-dark,.md.theme-dark{--f7-popover-bg-color:#1c1c1d;--f7-popover-actions-label-text-color:rgba(255, 255, 255, 0.54)}.aurora{--f7-popover-width:200px;--f7-popover-border-radius:4px;--f7-popover-box-shadow:0 0 3px 0 rgba(0, 0, 0, 0.1),0 5px 11px 0 rgba(0,0,0,0.28);--f7-popover-actions-icon-size:24px;--f7-popover-bg-color:#fff;--f7-popover-actions-label-text-color:rgba(0, 0, 0, 0.6)}.aurora .theme-dark,.aurora.theme-dark{--f7-popover-bg-color:#1c1c1d;--f7-popover-actions-label-text-color:rgba(255, 255, 255, 0.6)}.popover{width:var(--f7-popover-width);z-index:13500;margin:0;top:0;opacity:0;left:0;position:absolute;display:none;transition-duration:.3s;background-color:var(--f7-popover-bg-color);border-radius:var(--f7-popover-border-radius);box-shadow:var(--f7-popover-box-shadow);will-change:transform,opacity}.popover .list{margin:0}.popover .list ul{background:0 0}.popover .list:first-child ul:before{display:none!important}.popover .list:last-child ul:after{display:none!important}.popover .list:first-child ul{border-radius:var(--f7-popover-border-radius) var(--f7-popover-border-radius) 0 0}.popover .list:first-child li:first-child,.popover .list:first-child li:first-child a,.popover .list:first-child li:first-child>label{border-radius:var(--f7-popover-border-radius) var(--f7-popover-border-radius) 0 0}.popover .list:last-child ul{border-radius:0 0 var(--f7-popover-border-radius) var(--f7-popover-border-radius)}.popover .list:last-child li:last-child,.popover .list:last-child li:last-child a,.popover .list:last-child li:last-child>label{border-radius:0 0 var(--f7-popover-border-radius) var(--f7-popover-border-radius)}.popover .list:first-child:last-child li:first-child:last-child,.popover .list:first-child:last-child li:first-child:last-child a,.popover .list:first-child:last-child li:first-child:last-child>label,.popover .list:first-child:last-child ul{border-radius:var(--f7-popover-border-radius)}.popover .list+.list{margin-top:var(--f7-list-margin-vertical)}.popover.modal-in{opacity:1}.popover.not-animated{transition-duration:0s}.popover-inner{overflow:auto;-webkit-overflow-scrolling:touch}.popover-from-actions .item-link i.icon{width:var(--f7-popover-actions-icon-size);height:var(--f7-popover-actions-icon-size);font-size:var(--f7-popover-actions-icon-size)}.popover-from-actions-bold{font-weight:600}.popover-from-actions-label{line-height:1.3;position:relative;display:flex;align-items:center;padding:var(--f7-actions-label-padding);color:var(--f7-popover-actions-label-text-color);font-size:var(--f7-actions-label-font-size);justify-content:var(--f7-actions-label-justify-content)}.popover-from-actions-label:after{content:'';position:absolute;background-color:var(--f7-list-item-border-color);display:block;z-index:15;top:auto;right:auto;bottom:0;left:0;height:1px;width:100%;transform-origin:50% 100%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.popover-from-actions-label:last-child:after{display:none!important}.ios .popover{transform:none;transition-property:opacity}.ios .popover-angle{width:26px;height:26px;position:absolute;left:-26px;top:0;z-index:100;overflow:hidden}.ios .popover-angle:after{content:'';background:var(--f7-popover-bg-color);width:26px;height:26px;position:absolute;left:0;top:0;border-radius:3px;transform:rotate(45deg)}.ios .popover-angle.on-left{left:-26px}.ios .popover-angle.on-left:after{left:19px;top:0}.ios .popover-angle.on-right{left:100%}.ios .popover-angle.on-right:after{left:-19px;top:0}.ios .popover-angle.on-top{left:0;top:-26px}.ios .popover-angle.on-top:after{left:0;top:19px}.ios .popover-angle.on-bottom{left:0;top:100%}.ios .popover-angle.on-bottom:after{left:0;top:-19px}.md .popover{transform:scale(.85,.6);transition-property:opacity,transform}.md .popover.modal-in{opacity:1;transform:scale(1)}.md .popover.modal-out{opacity:0;transform:scale(1)}.md .popover-on-top{transform-origin:center bottom}.md .popover-on-top.popover-on-right{transform-origin:left bottom}.md .popover-on-top.popover-on-left{transform-origin:right bottom}.md .popover-on-middle{transform-origin:center center}.md .popover-on-middle.popover-on-right{transform-origin:left center}.md .popover-on-middle.popover-on-left{transform-origin:right center}.md .popover-on-bottom{transform-origin:center top}.md .popover-on-bottom.popover-on-right{transform-origin:left top}.md .popover-on-bottom.popover-on-left{transform-origin:right top}.aurora .popover{transform:none;transition-property:opacity}.aurora .popover-angle{width:18px;height:18px;position:absolute;left:-18px;top:0;z-index:100;overflow:hidden}.aurora .popover-angle:after{content:'';background:var(--f7-popover-bg-color);width:18px;height:18px;position:absolute;left:0;top:0;border-radius:2px;transform:rotate(45deg)}.aurora .popover-angle.on-left{left:-18px}.aurora .popover-angle.on-left:after{left:13px;top:0}.aurora .popover-angle.on-right{left:100%}.aurora .popover-angle.on-right:after{left:-13px;top:0}.aurora .popover-angle.on-top{left:0;top:-18px}.aurora .popover-angle.on-top:after{left:0;top:13px}.aurora .popover-angle.on-bottom{left:0;top:100%}.aurora .popover-angle.on-bottom:after{left:0;top:-13px}:root{--f7-actions-grid-button-font-size:12px;--f7-actions-grid-button-text-color:#757575}:root .theme-dark,:root.theme-dark{--f7-actions-label-text-color:rgba(255, 255, 255, 0.55)}.ios{--f7-actions-border-radius:13px;--f7-actions-button-padding:0px;--f7-actions-button-text-align:center;--f7-actions-button-height:57px;--f7-actions-button-height-landscape:44px;--f7-actions-button-font-size:20px;--f7-actions-button-icon-size:28px;--f7-actions-button-justify-content:center;--f7-actions-label-padding:8px 10px;--f7-actions-label-font-size:13px;--f7-actions-label-justify-content:center;--f7-actions-group-border-color:transparent;--f7-actions-group-margin:8px;--f7-actions-grid-button-icon-size:48px;--f7-actions-bg-color:rgba(255, 255, 255, 0.95);--f7-actions-bg-color-rgb:255,255,255;--f7-actions-button-border-color:rgba(0, 0, 0, 0.2);--f7-actions-button-pressed-bg-color:rgba(230, 230, 230, 0.9);--f7-actions-button-pressed-bg-color-rgb:230,230,230;--f7-actions-label-text-color:#8a8a8a}.ios .theme-dark,.ios.theme-dark{--f7-actions-bg-color:rgba(45, 45, 45, 0.95);--f7-actions-bg-color-rgb:45,45,45;--f7-actions-button-border-color:rgba(255, 255, 255, 0.15);--f7-actions-button-pressed-bg-color:rgba(50, 50, 50, 0.9);--f7-actions-button-pressed-bg-color-rgb:50,50,50}.md{--f7-actions-border-radius:0px;--f7-actions-button-border-color:transparent;--f7-actions-button-padding:0 16px;--f7-actions-button-text-align:left;--f7-actions-button-height:48px;--f7-actions-button-height-landscape:48px;--f7-actions-button-font-size:16px;--f7-actions-button-icon-size:24px;--f7-actions-button-justify-content:space-between;--f7-actions-label-padding:12px 16px;--f7-actions-label-font-size:16px;--f7-actions-label-justify-content:flex-start;--f7-actions-group-margin:0px;--f7-actions-grid-button-icon-size:48px;--f7-actions-bg-color:#fff;--f7-actions-button-text-color:rgba(0, 0, 0, 0.87);--f7-actions-button-pressed-bg-color:#e5e5e5;--f7-actions-label-text-color:rgba(0, 0, 0, 0.54);--f7-actions-group-border-color:rgba(0, 0, 0, 0.12)}.md .theme-dark,.md.theme-dark{--f7-actions-bg-color:#202020;--f7-actions-button-text-color:#fff;--f7-actions-button-pressed-bg-color:#2e2e2e;--f7-actions-group-border-color:rgba(255, 255, 255, 0.15)}.aurora{--f7-actions-border-radius:4px;--f7-actions-button-padding:0 16px;--f7-actions-button-text-align:center;--f7-actions-button-height:32px;--f7-actions-button-height-landscape:32px;--f7-actions-button-font-size:14px;--f7-actions-button-icon-size:18px;--f7-actions-button-justify-content:space-between;--f7-actions-label-padding:10px 16px;--f7-actions-label-font-size:12px;--f7-actions-label-justify-content:center;--f7-actions-group-margin:16px;--f7-actions-grid-button-icon-size:32px;--f7-actions-bg-color:#fff;--f7-actions-button-border-color:rgba(0, 0, 0, 0.12);--f7-actions-button-pressed-bg-color:#e5e5e5;--f7-actions-label-text-color:rgba(0, 0, 0, 0.5);--f7-actions-group-border-color:rgba(0, 0, 0, 0.1)}.aurora .theme-dark,.aurora.theme-dark{--f7-actions-bg-color:#202020;--f7-actions-button-text-color:#fff;--f7-actions-button-border-color:rgba(255, 255, 255, 0.15);--f7-actions-button-pressed-bg-color:#2e2e2e;--f7-actions-group-border-color:rgba(255, 255, 255, 0.15)}.actions-modal{position:absolute;left:0;bottom:0;z-index:13500;width:100%;transform:translate3d(0,100%,0);display:none;max-height:100%;overflow:auto;-webkit-overflow-scrolling:touch;transition-property:transform;will-change:transform}.actions-modal.modal-in,.actions-modal.modal-out{transition-duration:.3s}.actions-modal.not-animated{transition-duration:0s}.actions-modal.modal-in{transform:translate3d(0,calc(-1 * var(--f7-safe-area-bottom)),0)}.actions-modal.modal-out{z-index:13499;transform:translate3d(0,100%,0)}@media (min-width:496px){.actions-modal{width:480px;left:50%;margin-left:-240px}}@media (orientation:landscape){.actions-modal{--f7-actions-button-height:var(--f7-actions-button-height-landscape)}}.actions-group{overflow:hidden;position:relative;margin:var(--f7-actions-group-margin);border-radius:var(--f7-actions-border-radius);transform:translate3d(0,0,0)}.actions-group:after{content:'';position:absolute;background-color:var(--f7-actions-group-border-color);display:block;z-index:15;top:auto;right:auto;bottom:0;left:0;height:1px;width:100%;transform-origin:50% 100%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.actions-group:last-child:after{display:none!important}.actions-button,.actions-label{width:100%;font-weight:400;margin:0;box-sizing:border-box;display:block;position:relative;overflow:hidden;text-align:var(--f7-actions-button-text-align);background:var(--f7-actions-bg-color)}@supports ((-webkit-backdrop-filter:blur(20px)) or (backdrop-filter:blur(20px))){.ios-translucent-modals .actions-button,.ios-translucent-modals .actions-label{background-color:rgba(var(--f7-actions-bg-color-rgb),.8);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}}.actions-button:after,.actions-label:after{content:'';position:absolute;background-color:var(--f7-actions-button-border-color);display:block;z-index:15;top:auto;right:auto;bottom:0;left:0;height:1px;width:100%;transform-origin:50% 100%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.actions-button:first-child,.actions-label:first-child{border-radius:var(--f7-actions-border-radius) var(--f7-actions-border-radius) 0 0}.actions-button:last-child,.actions-label:last-child{border-radius:0 0 var(--f7-actions-border-radius) var(--f7-actions-border-radius)}.actions-button:last-child:after,.actions-label:last-child:after{display:none!important}.actions-button:first-child:last-child,.actions-label:first-child:last-child{border-radius:var(--f7-actions-border-radius)}.actions-button a,.actions-label a{text-decoration:none;color:inherit;display:block}.actions-button b,.actions-button.actions-button-bold,.actions-label b,.actions-label.actions-button-bold{font-weight:600}.actions-button{cursor:pointer;display:flex;color:var(--f7-actions-button-text-color,var(--f7-theme-color));font-size:var(--f7-actions-button-font-size);height:var(--f7-actions-button-height);line-height:var(--f7-actions-button-height);padding:var(--f7-actions-button-padding);justify-content:var(--f7-actions-button-justify-content);z-index:10}.actions-button.active-state{background-color:var(--f7-actions-button-pressed-bg-color)!important}.actions-button[class*=color-]{color:var(--f7-theme-color)}@supports ((-webkit-backdrop-filter:blur(20px)) or (backdrop-filter:blur(20px))){.ios-translucent-modals .actions-button.active-state{background-color:rgba(var(--f7-actions-button-pressed-bg-color-rgb),.8);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}}.actions-button-media{flex-shrink:0;display:flex;align-items:center}.actions-button-media i.icon{width:var(--f7-actions-button-icon-size);height:var(--f7-actions-button-icon-size);font-size:var(--f7-actions-button-icon-size)}.actions-button a,.actions-button-text{position:relative;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.actions-button-text{width:100%;flex-shrink:1;text-align:var(--f7-actions-button-text-align)}.actions-label{line-height:1.3;display:flex;align-items:center;font-size:var(--f7-actions-label-font-size);color:var(--f7-actions-label-text-color);padding:var(--f7-actions-label-padding);justify-content:var(--f7-actions-label-justify-content);min-height:var(--f7-actions-label-min-height,var(--f7-actions-button-height))}.actions-label[class*=" color-"]{--f7-actions-label-text-color:var(--f7-theme-color)}.actions-grid .actions-group{display:flex;flex-wrap:wrap;justify-content:flex-start;border-radius:0;background:var(--f7-actions-bg-color);margin-top:0}.actions-grid .actions-group:first-child{border-radius:var(--f7-actions-border-radius) var(--f7-actions-border-radius) 0 0}.actions-grid .actions-group:last-child{border-radius:0 0 var(--f7-actions-border-radius) var(--f7-actions-border-radius)}.actions-grid .actions-group:first-child:last-child{border-radius:var(--f7-actions-border-radius)}.actions-grid .actions-group:not(:last-child){margin-bottom:0}.actions-grid .actions-button,.actions-grid .actions-label{border-radius:0!important;background:0 0}.actions-grid .actions-button{width:33.33333333%;display:block;color:var(--f7-actions-grid-button-text-color);height:auto;line-height:1;padding:16px}.actions-grid .actions-button:after{display:none!important}.actions-grid .actions-button-media{margin-left:auto!important;margin-right:auto!important;width:var(--f7-actions-grid-button-icon-size);height:var(--f7-actions-grid-button-icon-size)}.actions-grid .actions-button-media i.icon{width:var(--f7-actions-grid-button-icon-size);height:var(--f7-actions-grid-button-icon-size);font-size:var(--f7-actions-grid-button-icon-size)}.actions-grid .actions-button-text{margin-left:0!important;text-align:center!important;margin-top:8px;line-height:1.33em;height:1.33em;font-size:var(--f7-actions-grid-button-font-size)}@supports ((-webkit-backdrop-filter:blur(20px)) or (backdrop-filter:blur(20px))){.ios-translucent-modals .actions-grid .actions-group{background-color:rgba(var(--f7-actions-bg-color-rgb),.8);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}}.ios .actions-button-media{margin-left:16px}.ios .actions-button-media+.actions-button-text{text-align:left;margin-left:16px}.md .actions-button{transition-duration:.3s}.md .actions-button-media{min-width:40px}.md .actions-button-media+.actions-button-text{margin-left:16px}.aurora .actions-button-media{margin-left:16px}.aurora .actions-button-media+.actions-button-text{text-align:left;margin-left:16px}:root{--f7-sheet-height:260px;--f7-sheet-border-color:transparent;--f7-sheet-transition-duration:300ms;--f7-sheet-push-border-radius:10px;--f7-sheet-push-offset:var(--f7-safe-area-top);--f7-sheet-bg-color:#fff}:root .theme-dark,:root.theme-dark{--f7-sheet-bg-color:#202020}.ios{--f7-sheet-border-color:var(--f7-bars-border-color)}.sheet-backdrop{z-index:11000}.sheet-modal{position:absolute;left:0;bottom:0;width:100%;height:var(--f7-sheet-height);display:none;box-sizing:border-box;transition-property:transform;transform:translate3d(0,100%,0);background:var(--f7-sheet-bg-color);z-index:12500;will-change:transform,opacity}.sheet-modal.modal-in,.sheet-modal.modal-out{transition-duration:var(--f7-sheet-transition-duration)}.sheet-modal.not-animated{transition-duration:0s}.sheet-modal.modal-in{display:block;transform:translate3d(0,0,0)}.sheet-modal.modal-in-swipe-step{display:block;transform:translate3d(0,var(--f7-sheet-swipe-step,0),0)}.sheet-modal.modal-out{transform:translate3d(0,100%,0)}.sheet-modal .sheet-modal-inner{height:100%;position:relative;overflow:hidden}.sheet-modal .toolbar{--f7-safe-area-bottom:0px;position:relative;width:100%}.sheet-modal .toolbar:after,.sheet-modal .toolbar:before{display:none}.sheet-modal .toolbar+.sheet-modal-inner{height:calc(100% - var(--f7-toolbar-height))}.sheet-modal .toolbar+.sheet-modal-inner .page-content{--f7-page-toolbar-top-offset:0px;--f7-page-toolbar-bottom-offset:0px}.sheet-modal-top:after{content:'';position:absolute;background-color:var(--f7-sheet-border-color);display:block;z-index:15;top:auto;right:auto;bottom:0;left:0;height:1px;width:100%;transform-origin:50% 100%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.sheet-modal-top:after{z-index:700;-webkit-backface-visibility:hidden;backface-visibility:hidden;transform-style:preserve-3d}.sheet-modal-bottom,.sheet-modal:not(.sheet-modal-top){--f7-safe-area-top:0px}.sheet-modal-bottom:before,.sheet-modal:not(.sheet-modal-top):before{content:'';position:absolute;background-color:var(--f7-sheet-border-color);display:block;z-index:15;top:0;right:auto;bottom:auto;left:0;height:1px;width:100%;transform-origin:50% 0%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.sheet-modal-bottom:before,.sheet-modal:not(.sheet-modal-top):before{z-index:700;-webkit-backface-visibility:hidden;backface-visibility:hidden;transform-style:preserve-3d}.sheet-modal-top{--f7-safe-area-bottom:0px;bottom:auto;top:0;transform:translate3d(0,-100%,0)}.sheet-modal-top.modal-out{transform:translate3d(0,-100%,0)}.sheet-modal-top .toolbar-bottom{position:absolute}.sheet-modal-top .page-content{padding-top:var(--f7-safe-area-top)}html.with-modal-sheet-push .sheet-modal-push,html.with-modal-sheet-push-closing .sheet-modal-push{--f7-sheet-border-color:transparent;border-radius:var(--f7-sheet-push-border-radius) var(--f7-sheet-push-border-radius) 0 0;overflow:hidden}html.with-modal-sheet-push .sheet-modal-push .page,html.with-modal-sheet-push .sheet-modal-push .view,html.with-modal-sheet-push-closing .sheet-modal-push .page,html.with-modal-sheet-push-closing .sheet-modal-push .view{--f7-safe-area-top:0px}html.with-modal-sheet-push .sheet-modal-push.sheet-modal-top,html.with-modal-sheet-push-closing .sheet-modal-push.sheet-modal-top{border-radius:0 0 var(--f7-sheet-push-border-radius) var(--f7-sheet-push-border-radius)}html.with-modal-sheet-push .framework7-root,html.with-modal-sheet-push-closing .framework7-root{background:#000}html.with-modal-sheet-push .framework7-root>.view,html.with-modal-sheet-push .framework7-root>.views,html.with-modal-sheet-push-closing .framework7-root>.view,html.with-modal-sheet-push-closing .framework7-root>.views{transition-duration:var(--f7-sheet-transition-duration)}html.with-modal-sheet-push .framework7-root>.view.theme-dark:after,html.with-modal-sheet-push .framework7-root>.views.theme-dark:after,html.with-modal-sheet-push .theme-dark .framework7-root>.view:after,html.with-modal-sheet-push .theme-dark .framework7-root>.views:after,html.with-modal-sheet-push .theme-dark.framework7-root>.view:after,html.with-modal-sheet-push .theme-dark.framework7-root>.views:after,html.with-modal-sheet-push-closing .framework7-root>.view.theme-dark:after,html.with-modal-sheet-push-closing .framework7-root>.views.theme-dark:after,html.with-modal-sheet-push-closing .theme-dark .framework7-root>.view:after,html.with-modal-sheet-push-closing .theme-dark .framework7-root>.views:after,html.with-modal-sheet-push-closing .theme-dark.framework7-root>.view:after,html.with-modal-sheet-push-closing .theme-dark.framework7-root>.views:after,html.with-modal-sheet-push-closing.theme-dark .framework7-root>.view:after,html.with-modal-sheet-push-closing.theme-dark .framework7-root>.views:after,html.with-modal-sheet-push.theme-dark .framework7-root>.view:after,html.with-modal-sheet-push.theme-dark .framework7-root>.views:after{content:'';position:absolute;pointer-events:none;left:0;top:0;width:100%;height:100%;background:rgba(255,255,255,.1);z-index:13000;border-radius:var(--f7-sheet-push-border-radius) var(--f7-sheet-push-border-radius) 0 0;opacity:1;animation:sheet-dark-push-overlay-fade-in var(--f7-sheet-transition-duration) forwards}html.with-modal-sheet-push .framework7-root>.view,html.with-modal-sheet-push .framework7-root>.views{border-radius:var(--f7-sheet-push-border-radius);transform:translate3d(0,0,0px) scale(var(--f7-sheet-push-scale,1))!important}html.with-modal-sheet-push-closing .framework7-root>.view.theme-dark:after,html.with-modal-sheet-push-closing .framework7-root>.views.theme-dark:after,html.with-modal-sheet-push-closing .theme-dark .framework7-root>.view:after,html.with-modal-sheet-push-closing .theme-dark .framework7-root>.views:after,html.with-modal-sheet-push-closing .theme-dark.framework7-root>.view:after,html.with-modal-sheet-push-closing .theme-dark.framework7-root>.views:after,html.with-modal-sheet-push-closing.theme-dark .framework7-root>.view:after,html.with-modal-sheet-push-closing.theme-dark .framework7-root>.views:after{animation:sheet-dark-push-overlay-fade-out var(--f7-sheet-transition-duration) forwards}@keyframes sheet-dark-push-overlay-fade-in{from{opacity:0}to{opacity:1}}@keyframes sheet-dark-push-overlay-fade-out{from{opacity:1}to{opacity:0}}.md .sheet-modal .toolbar a.link:not(.tab-link){flex-shrink:0}:root{--f7-toast-text-color:#fff;--f7-toast-font-size:14px;--f7-toast-icon-size:48px;--f7-toast-max-width:568px}.ios{--f7-toast-bg-color:rgba(0, 0, 0, 0.75);--f7-toast-bg-color-rgb:0,0,0;--f7-toast-padding-horizontal:16px;--f7-toast-padding-vertical:12px;--f7-toast-border-radius:8px;--f7-toast-button-min-width:64px}.md{--f7-toast-bg-color:#323232;--f7-toast-padding-horizontal:24px;--f7-toast-padding-vertical:14px;--f7-toast-border-radius:4px;--f7-toast-button-min-width:64px}.aurora{--f7-toast-bg-color:rgba(0, 0, 0, 0.85);--f7-toast-padding-horizontal:10px;--f7-toast-padding-vertical:10px;--f7-toast-border-radius:4px;--f7-toast-button-min-width:32px}.toast{--f7-touch-ripple-color:var(--f7-touch-ripple-white);transition-property:transform,opacity;position:absolute;max-width:var(--f7-toast-max-width);z-index:20000;color:var(--f7-toast-text-color);font-size:var(--f7-toast-font-size);box-sizing:border-box;background-color:var(--f7-toast-bg-color);opacity:0}@supports ((-webkit-backdrop-filter:blur(20px)) or (backdrop-filter:blur(20px))){.ios-translucent-modals .toast{background-color:rgba(var(--f7-toast-bg-color-rgb),.8);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}}.toast.modal-in{opacity:1}.toast .toast-content{display:flex;justify-content:space-between;align-items:center;box-sizing:border-box;padding:var(--f7-toast-padding-vertical) var(--f7-toast-padding-horizontal)}.toast .toast-text{line-height:20px;flex-shrink:1;min-width:0}.toast .toast-button{flex-shrink:0;min-width:var(--f7-toast-button-min-width);margin-top:-8px;margin-bottom:-8px}.toast.toast-with-icon .toast-content{display:block;text-align:center}.toast.toast-with-icon .toast-text{text-align:center}.toast.toast-with-icon .toast-icon .f7-icons,.toast.toast-with-icon .toast-icon .material-icons{font-size:var(--f7-toast-icon-size)}.toast.toast-center{top:50%}.toast.toast-top{margin-top:var(--f7-safe-area-top)}.ios .toast{transition-duration:.3s;width:100%;left:0}.ios .toast.toast-top{top:0;transform:translate3d(0,-100%,0)}.ios .toast.toast-top.modal-in{transform:translate3d(0,0%,0)}.ios .toast.toast-center{width:auto;left:50%;border-radius:var(--f7-toast-border-radius);transform:translate3d(-50%,-50%,0)}.ios .toast.toast-center.modal-in{transform:translate3d(-50%,-50%,0)}.ios .toast.toast-bottom{bottom:0;transform:translate3d(0,100%,0)}.ios .toast.toast-bottom.modal-in{transform:translate3d(0,0%,0)}@media (max-width:568px){.ios .toast.toast-top{margin-top:0}.ios .toast.toast-top .toast-content{padding-top:calc(var(--f7-toast-padding-vertical) + var(--f7-safe-area-top))}.ios .toast.toast-bottom .toast-content{padding-bottom:calc(var(--f7-toast-padding-vertical) + var(--f7-safe-area-bottom))}}@media (min-width:569px){.ios .toast{left:50%;margin-left:calc(-1 * var(--f7-toast-max-width)/ 2);border-radius:var(--f7-toast-border-radius)}.ios .toast.toast-top{top:16px}.ios .toast.toast-center{margin-left:0}.ios .toast.toast-bottom{margin-bottom:calc(16px + var(--f7-safe-area-bottom))}}@media (min-width:1024px){.ios .toast{margin-left:0;width:auto}.ios .toast.toast-horizontal-left{left:16px}.ios .toast.toast-horizontal-right{left:auto;right:16px}.ios .toast.toast-horizontal-center{left:50%;width:var(--f7-toast-max-width);margin-left:calc(-1 * var(--f7-toast-max-width)/ 2)}}.ios .toast-button{margin-left:16px;margin-right:calc(-1 * var(--f7-button-padding-horizontal))}.md .toast{transition-duration:.2s;border-radius:var(--f7-toast-border-radius);width:calc(100% - 16px);transform:scale(.9);left:8px}.md .toast.modal-in{transform:scale(1)}.md .toast.modal-out{transform:scale(1)}.md .toast.toast-top{top:8px}.md .toast.toast-center{left:50%;width:auto;transform:scale(.9) translate3d(-55%,-55%,0)}.md .toast.toast-center.modal-in{transform:scale(1) translate3d(-50%,-50%,0)}.md .toast.toast-center.modal-out{transform:scale(1) translate3d(-50%,-50%,0)}.md .toast.toast-bottom{bottom:calc(8px + var(--f7-safe-area-bottom))}@media (min-width:584px){.md .toast{left:50%;margin-left:calc(-1 * var(--f7-toast-max-width)/ 2)}.md .toast.toast-center{margin-left:0}}@media (min-width:1024px){.md .toast{margin-left:0;width:auto}.md .toast.toast-horizontal-left{left:24px}.md .toast.toast-horizontal-right{left:auto;right:24px}.md .toast.toast-horizontal-center{left:50%;width:var(--f7-toast-max-width);margin-left:calc(-1 * var(--f7-toast-max-width)/ 2)}.md .toast.toast-bottom{bottom:calc(24px + var(--f7-safe-area-bottom))}.md .toast.toast-top{top:24px}}.md .toast-button{margin-left:16px;margin-right:-8px}.aurora .toast{transition-duration:.2s;border-radius:var(--f7-toast-border-radius);left:10px;width:calc(100% - 20px);transform:scale(.9)}.aurora .toast.modal-in{transform:scale(1)}.aurora .toast.modal-out{transform:scale(1)}.aurora .toast.toast-top{top:10px}.aurora .toast.toast-center{left:50%;width:auto;transform:scale(.9) translate3d(-55%,-55%,0)}.aurora .toast.toast-center.modal-in{transform:scale(1) translate3d(-50%,-50%,0)}.aurora .toast.toast-center.modal-out{transform:scale(1) translate3d(-50%,-50%,0)}.aurora .toast.toast-bottom{bottom:calc(10px + var(--f7-safe-area-bottom))}@media (min-width:584px){.aurora .toast{left:50%;margin-left:calc(-1 * var(--f7-toast-max-width)/ 2)}.aurora .toast.toast-center{margin-left:0}}@media (min-width:1024px){.aurora .toast{margin-left:0;width:auto}.aurora .toast.toast-horizontal-left{left:10px}.aurora .toast.toast-horizontal-right{left:auto;right:10px}.aurora .toast.toast-horizontal-center{left:50%;width:var(--f7-toast-max-width);margin-left:calc(-1 * var(--f7-toast-max-width)/ 2)}}.aurora .toast-button{margin-left:10px}:root{--f7-preloader-modal-padding:8px;--f7-preloader-modal-bg-color:rgba(0, 0, 0, 0.8)}.ios{--f7-preloader-color:#6c6c6c;--f7-preloader-size:20px;--f7-preloader-modal-preloader-size:34px;--f7-preloader-modal-border-radius:5px}.md{--f7-preloader-color:#757575;--f7-preloader-size:32px;--f7-preloader-modal-preloader-size:32px;--f7-preloader-modal-border-radius:4px}.aurora{--f7-preloader-color:#757575;--f7-preloader-size:24px;--f7-preloader-modal-preloader-size:24px;--f7-preloader-modal-border-radius:4px}.preloader{display:inline-block;vertical-align:middle;width:var(--f7-preloader-size);height:var(--f7-preloader-size);font-size:0;position:relative}.preloader-backdrop{visibility:visible;opacity:0;background:0 0;z-index:14000}.preloader-modal{position:absolute;left:50%;top:50%;padding:var(--f7-preloader-modal-padding);background:var(--f7-preloader-modal-bg-color);z-index:14500;transform:translateX(-50%) translateY(-50%);border-radius:var(--f7-preloader-modal-border-radius)}.preloader-modal .preloader{--f7-preloader-size:var(--f7-preloader-modal-preloader-size);display:block!important}.with-modal-preloader .page-content,.with-modal-preloader.page-content,html.with-modal-preloader .page-content{overflow:hidden;-webkit-overflow-scrolling:auto}.preloader[class*=color-]{--f7-preloader-color:var(--f7-theme-color)}.ios .preloader{animation:ios-preloader-spin 1s steps(12,end) infinite}.ios .preloader .preloader-inner-line{display:block;width:7.15%;height:28.5%;border-radius:100px;background:var(--f7-preloader-color);position:absolute;left:50%;top:50%;transform-origin:center 175%}.ios .preloader .preloader-inner-line:nth-child(1){transform:translate(-50%,-175%) rotate(0deg);opacity:.27}.ios .preloader .preloader-inner-line:nth-child(2){transform:translate(-50%,-175%) rotate(30deg);opacity:.32272727}.ios .preloader .preloader-inner-line:nth-child(3){transform:translate(-50%,-175%) rotate(60deg);opacity:.37545455}.ios .preloader .preloader-inner-line:nth-child(4){transform:translate(-50%,-175%) rotate(90deg);opacity:.42818182}.ios .preloader .preloader-inner-line:nth-child(5){transform:translate(-50%,-175%) rotate(120deg);opacity:.48090909}.ios .preloader .preloader-inner-line:nth-child(6){transform:translate(-50%,-175%) rotate(150deg);opacity:.53363636}.ios .preloader .preloader-inner-line:nth-child(7){transform:translate(-50%,-175%) rotate(180deg);opacity:.58636364}.ios .preloader .preloader-inner-line:nth-child(8){transform:translate(-50%,-175%) rotate(210deg);opacity:.63909091}.ios .preloader .preloader-inner-line:nth-child(9){transform:translate(-50%,-175%) rotate(240deg);opacity:.69181818}.ios .preloader .preloader-inner-line:nth-child(10){transform:translate(-50%,-175%) rotate(270deg);opacity:.74454545}.ios .preloader .preloader-inner-line:nth-child(11){transform:translate(-50%,-175%) rotate(300deg);opacity:.79727273}.ios .preloader .preloader-inner-line:nth-child(12){transform:translate(-50%,-175%) rotate(330deg);opacity:.85}@keyframes ios-preloader-spin{100%{transform:rotate(360deg)}}.md .preloader{animation:md-preloader-outer 3.3s linear infinite}@keyframes md-preloader-outer{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.md .preloader-inner{position:relative;display:block;width:100%;height:100%;animation:md-preloader-inner-rotate 5.25s cubic-bezier(.35,0,.25,1) infinite}.md .preloader-inner .preloader-inner-gap{position:absolute;width:2px;left:50%;margin-left:-1px;top:0;bottom:0;box-sizing:border-box;border-top:4px solid var(--f7-preloader-color)}.md .preloader-inner .preloader-inner-left,.md .preloader-inner .preloader-inner-right{position:absolute;top:0;height:100%;width:50%;overflow:hidden}.md .preloader-inner .preloader-inner-half-circle{position:absolute;top:0;height:100%;width:200%;box-sizing:border-box;border:4px solid var(--f7-preloader-color);border-bottom-color:transparent!important;border-radius:50%;animation-iteration-count:infinite;animation-duration:1.3125s;animation-timing-function:cubic-bezier(.35,0,.25,1)}.md .preloader-inner .preloader-inner-left{left:0}.md .preloader-inner .preloader-inner-left .preloader-inner-half-circle{left:0;border-right-color:transparent!important;animation-name:md-preloader-left-rotate}.md .preloader-inner .preloader-inner-right{right:0}.md .preloader-inner .preloader-inner-right .preloader-inner-half-circle{right:0;border-left-color:transparent!important;animation-name:md-preloader-right-rotate}.md .preloader.color-multi .preloader-inner-left .preloader-inner-half-circle{animation-name:md-preloader-left-rotate-multicolor}.md .preloader.color-multi .preloader-inner-right .preloader-inner-half-circle{animation-name:md-preloader-right-rotate-multicolor}@keyframes md-preloader-left-rotate{0%,100%{transform:rotate(130deg)}50%{transform:rotate(-5deg)}}@keyframes md-preloader-right-rotate{0%,100%{transform:rotate(-130deg)}50%{transform:rotate(5deg)}}@keyframes md-preloader-inner-rotate{12.5%{transform:rotate(135deg)}25%{transform:rotate(270deg)}37.5%{transform:rotate(405deg)}50%{transform:rotate(540deg)}62.5%{transform:rotate(675deg)}75%{transform:rotate(810deg)}87.5%{transform:rotate(945deg)}100%{transform:rotate(1080deg)}}@keyframes md-preloader-left-rotate-multicolor{0%,100%{border-left-color:#4285f4;transform:rotate(130deg)}75%{border-left-color:#1b9a59;border-top-color:#1b9a59}50%{border-left-color:#f7c223;border-top-color:#f7c223;transform:rotate(-5deg)}25%{border-left-color:#de3e35;border-top-color:#de3e35}}@keyframes md-preloader-right-rotate-multicolor{0%,100%{border-right-color:#4285f4;transform:rotate(-130deg)}75%{border-right-color:#1b9a59;border-top-color:#1b9a59}50%{border-right-color:#f7c223;border-top-color:#f7c223;transform:rotate(5deg)}25%{border-top-color:#de3e35;border-right-color:#de3e35}}.aurora .preloader-inner{position:absolute;left:0;top:0;width:100%;height:100%}.aurora .preloader-inner-circle{width:100%;height:100%;position:absolute;left:0;top:0;border-radius:50%;border:calc(var(--f7-preloader-size)/ 8) solid var(--f7-preloader-color);border-top-color:transparent;box-sizing:border-box;animation:aurora-preloader-rotate 1s linear infinite}.aurora .preloader.color-multi .preloader-inner-circle{animation:aurora-preloader-rotate 1s linear infinite,aurora-preloader-multicolor 2s linear infinite}@keyframes aurora-preloader-rotate{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@keyframes aurora-preloader-multicolor{0%,100%{border-color:#2196f3;border-top-color:transparent}25%{border-color:#ff3b30;border-top-color:transparent}50%{border-color:#4cd964;border-top-color:transparent}75%{border-color:#ff9500;border-top-color:transparent}}.ios{--f7-progressbar-height:2px;--f7-progressbar-border-radius:2px;--f7-progressbar-bg-color:rgba(0, 0, 0, 0.3)}.ios .theme-dark,.ios.theme-dark{--f7-progressbar-bg-color:rgba(255, 255, 255, 0.3)}.md{--f7-progressbar-height:4px;--f7-progressbar-border-radius:0px}.aurora{--f7-progressbar-height:6px;--f7-progressbar-border-radius:3px;--f7-progressbar-bg-color:#dbdbdb}.aurora .theme-dark,.aurora.theme-dark{--f7-progressbar-bg-color:#444}.progressbar,.progressbar-infinite{width:100%;overflow:hidden;position:relative;display:block;transform-style:preserve-3d;background:var(--f7-progressbar-bg-color,rgba(var(--f7-theme-color-rgb),.5));transform-origin:center top;height:var(--f7-progressbar-height);border-radius:var(--f7-progressbar-border-radius)}.progressbar{vertical-align:middle}.progressbar span{background-color:var(--f7-progressbar-progress-color,var(--f7-theme-color));width:100%;height:100%;position:absolute;left:0;top:0;transform:translate3d(-100%,0,0);transition-duration:150ms}.progressbar-infinite{z-index:15000}.progressbar-infinite:after,.progressbar-infinite:before{content:'';position:absolute;left:0;top:0;width:100%;height:100%;transform-origin:left center;transform:translate3d(0,0,0);display:block;background-color:var(--f7-progressbar-progress-color,var(--f7-theme-color))}.progressbar-infinite.color-multi{background:0 0!important}.progressbar-in{animation:progressbar-in 150ms forwards}.progressbar-out{animation:progressbar-out 150ms forwards}.framework7-root>.progressbar,.framework7-root>.progressbar-infinite,.page>.progressbar,.page>.progressbar-infinite,.panel>.progressbar,.panel>.progressbar-infinite,.popup>.progressbar,.popup>.progressbar-infinite,.view>.progressbar,.view>.progressbar-infinite,.views>.progressbar,.views>.progressbar-infinite,body>.progressbar,body>.progressbar-infinite{position:absolute;left:0;top:0;z-index:15000;border-radius:0!important;transform-origin:center top!important}@keyframes progressbar-in{from{opacity:0;transform:scaleY(0)}to{opacity:1;transform:scaleY(1)}}@keyframes progressbar-out{from{opacity:1;transform:scaleY(1)}to{opacity:0;transform:scaleY(0)}}.ios .progressbar-infinite:before{animation:ios-progressbar-infinite 1s linear infinite}.ios .progressbar-infinite:after{display:none}.ios .progressbar-infinite.color-multi:before{width:400%;background-image:linear-gradient(to right,#4cd964,#5ac8fa,#007aff,#34aadc,#5856d6,#ff2d55,#5856d6,#34aadc,#007aff,#5ac8fa,#4cd964);background-size:25% 100%;background-repeat:repeat-x;animation:ios-progressbar-infinite-multicolor 3s linear infinite}@keyframes ios-progressbar-infinite{0%{transform:translate3d(-100%,0,0)}100%{transform:translate3d(100%,0,0)}}@keyframes ios-progressbar-infinite-multicolor{0%{transform:translate3d(0%,0,0)}100%{transform:translate3d(-50%,0,0)}}.md .progressbar-infinite:before{animation:md-progressbar-infinite-1 2s linear infinite}.md .progressbar-infinite:after{animation:md-progressbar-infinite-2 2s linear infinite}.md .progressbar-infinite.color-multi:before{background:0 0;animation:md-progressbar-infinite-multicolor-bg 3s step-end infinite}.md .progressbar-infinite.color-multi:after{background:0 0;animation:md-progressbar-infinite-multicolor-fill 3s linear infinite;transform-origin:center center}@keyframes md-progressbar-infinite-1{0%{transform:translateX(-10%) scaleX(.1)}25%{transform:translateX(30%) scaleX(.6)}50%{transform:translateX(100%) scaleX(1)}100%{transform:translateX(100%) scaleX(1)}}@keyframes md-progressbar-infinite-2{0%{transform:translateX(-100%) scaleX(1)}40%{transform:translateX(-100%) scaleX(1)}75%{transform:translateX(60%) scaleX(.35)}90%{transform:translateX(100%) scaleX(.1)}100%{transform:translateX(100%) scaleX(.1)}}@keyframes md-progressbar-infinite-multicolor-bg{0%{background-color:#4caf50}25%{background-color:#f44336}50%{background-color:#2196f3}75%{background-color:#ffeb3b}}@keyframes md-progressbar-infinite-multicolor-fill{0%{transform:scaleX(0);background-color:#f44336}24.9%{transform:scaleX(1);background-color:#f44336}25%{transform:scaleX(0);background-color:#2196f3}49.9%{transform:scaleX(1);background-color:#2196f3}50%{transform:scaleX(0);background-color:#ffeb3b}74.9%{transform:scaleX(1);background-color:#ffeb3b}75%{transform:scaleX(0);background-color:#4caf50}100%{transform:scaleX(1);background-color:#4caf50}}.aurora .progressbar,.aurora .progressbar span,.aurora .progressbar-infinite,.aurora .progressbar-infinite:before{box-shadow:0px 0px 0px 1px rgba(0,0,0,.05) inset}.aurora .progressbar-infinite:before{animation:aurora-progressbar-infinite 1s linear infinite}.aurora .progressbar-infinite:after{display:none}.aurora .progressbar-infinite.color-multi:before{width:400%;background-image:linear-gradient(to right,#4cd964,#5ac8fa,#007aff,#34aadc,#5856d6,#ff2d55,#5856d6,#34aadc,#007aff,#5ac8fa,#4cd964);background-size:25% 100%;background-repeat:repeat-x;animation:aurora-progressbar-infinite-multicolor 3s linear infinite}@keyframes aurora-progressbar-infinite{0%{transform:translate3d(-100%,0,0)}100%{transform:translate3d(100%,0,0)}}@keyframes aurora-progressbar-infinite-multicolor{0%{transform:translate3d(0%,0,0)}100%{transform:translate3d(-50%,0,0)}}:root{--f7-sortable-handler-color:rgba(0, 0, 0, 0.22);--f7-sortable-sorting-item-bg-color:rgba(255, 255, 255, 0.8)}:root .theme-dark,:root.theme-dark{--f7-sortable-sorting-item-bg-color:rgba(50, 50, 50, 0.8);--f7-sortable-handler-color:rgba(255, 255, 255, 0.55)}.ios{--f7-sortable-handler-width:36px;--f7-sortable-sorting-item-box-shadow:0px 2px 8px rgba(0, 0, 0, 0.6)}.md{--f7-sortable-handler-width:42px;--f7-sortable-sorting-item-box-shadow:var(--f7-elevation-2)}.aurora{--f7-sortable-handler-width:32px;--f7-sortable-sorting-item-box-shadow:var(--f7-elevation-2)}.sortable .sortable-handler{width:var(--f7-sortable-handler-width);height:100%;position:absolute;top:0;z-index:10;opacity:0;pointer-events:none;cursor:move;transition-duration:.3s;display:flex;align-items:center;justify-content:center;overflow:hidden;right:var(--f7-safe-area-right)}.sortable .sortable-handler:after{font-family:framework7-core-icons;font-weight:400;font-style:normal;line-height:1;letter-spacing:normal;text-transform:none;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;font-feature-settings:"liga";text-align:center;display:block;width:100%;height:100%;font-size:20px;transition-duration:.3s;transform:translateX(10px);color:var(--f7-sortable-handler-color);overflow:hidden;height:20px;width:18px}.sortable li.sorting{z-index:50;background:var(--f7-sortable-sorting-item-bg-color);transition-duration:0s;box-shadow:var(--f7-sortable-sorting-item-box-shadow)}.sortable li.sorting .item-inner:after{display:none!important}.sortable-opposite .sortable-handler{left:var(--f7-safe-area-right);right:auto}.sortable-opposite .sortable-handler:after{transform:translateX(-10px)}.sortable-opposite .item-content,.sortable-opposite.links-list li a,.sortable.simple-list li,.sortable:not(.sortable-opposite) .item-inner{transition-duration:.3s;transition-property:all}.sortable-sorting li{transition-duration:.3s}.sortable-enabled li:not(.no-sorting):not(.disallow-sorting) .sortable-handler{pointer-events:auto;opacity:1}.sortable-enabled li:not(.no-sorting):not(.disallow-sorting) .sortable-handler:after{transform:translateX(0px)}.sortable-enabled:not(.sortable-opposite) li:not(.no-sorting):not(.disallow-sorting) .item-link .item-inner:before,.sortable-enabled:not(.sortable-opposite) li:not(.no-sorting):not(.disallow-sorting) .item-link .item-title-row:before,.sortable-enabled:not(.sortable-opposite).links-list li:not(.no-sorting):not(.disallow-sorting)>a:before{display:none}.links-list.sortable-enabled:not(.sortable-opposite) li:not(.no-sorting):not(.disallow-sorting) a,.no-chevron .sortable-enabled:not(.sortable-opposite) li:not(.no-sorting):not(.disallow-sorting) .item-link .item-inner,.simple-list.sortable-enabled:not(.sortable-opposite) li:not(.no-sorting):not(.disallow-sorting),.sortable-enabled :not(.sortable-opposite).no-chevron .item-link .item-inner,.sortable-enabled.no-chevron:not(.sortable-opposite) li:not(.no-sorting):not(.disallow-sorting) .item-link .item-inner,.sortable-enabled:not(.sortable-opposite) li:not(.no-sorting):not(.disallow-sorting) .item-inner,.sortable-enabled:not(.sortable-opposite) li:not(.no-sorting):not(.disallow-sorting) .item-link .item-inner,.sortable-enabled:not(.sortable-opposite) li:not(.no-sorting):not(.disallow-sorting) .item-link.no-chevron .item-inner{padding-right:calc(var(--f7-sortable-handler-width) + var(--f7-safe-area-right))}.links-list.sortable-opposite.sortable-enabled li:not(.no-sorting):not(.disallow-sorting) a,.simple-list.sortable-opposite.sortable-enabled li:not(.no-sorting):not(.disallow-sorting),.sortable-opposite.sortable-enabled li:not(.no-sorting):not(.disallow-sorting) .item-content{padding-left:calc(var(--f7-sortable-handler-width) + var(--f7-safe-area-right))}.ios .sortable-handler:after{content:'sort_ios'}.md .sortable-handler:after{content:'sort_md'}.aurora .sortable-handler:after{content:'sort_md';font-size:16px;height:16px}:root{--f7-swipeout-button-text-color:#fff;--f7-swipeout-delete-button-bg-color:#ff3b30;--f7-swipeout-button-font-size:inherit;--f7-swipeout-button-font-weight:inherit;--f7-swipeout-button-bg-color:rgba(0, 0, 0, 0.22)}:root .theme-dark,:root.theme-dark{--f7-swipeout-button-bg-color:rgba(255, 255, 255, 0.55)}.ios{--f7-swipeout-button-padding:0 30px}.md{--f7-swipeout-button-padding:0 24px}.aurora{--f7-swipeout-button-padding:0 12px;--f7-swipeout-button-font-weight:500}.swipeout{overflow:hidden;transform-style:preserve-3d}.swipeout-deleting{transition-duration:.3s}.swipeout-deleting .swipeout-content{transform:translateX(-100%)}.swipeout-transitioning .swipeout-actions-left a,.swipeout-transitioning .swipeout-actions-right a,.swipeout-transitioning .swipeout-content,.swipeout-transitioning .swipeout-overswipe{transition-duration:.3s;transition-property:transform,left}.swipeout-content{position:relative;z-index:10}.swipeout-overswipe{transition-duration:.2s;transition-property:left}.swipeout-actions-left,.swipeout-actions-right{position:absolute;top:0;height:100%;display:flex;direction:ltr}.swipeout-actions-left>a,.swipeout-actions-left>button,.swipeout-actions-left>div,.swipeout-actions-left>span,.swipeout-actions-right>a,.swipeout-actions-right>button,.swipeout-actions-right>div,.swipeout-actions-right>span{color:var(--f7-swipeout-button-text-color);background:var(--f7-swipeout-button-bg-color);padding:var(--f7-swipeout-button-padding);display:flex;align-items:center;position:relative;left:0;font-size:var(--f7-swipeout-button-font-size);font-weight:var(--f7-swipeout-button-font-weight)}.swipeout-actions-left>a:after,.swipeout-actions-left>button:after,.swipeout-actions-left>div:after,.swipeout-actions-left>span:after,.swipeout-actions-right>a:after,.swipeout-actions-right>button:after,.swipeout-actions-right>div:after,.swipeout-actions-right>span:after{content:'';position:absolute;top:0;width:600%;height:100%;background:inherit;z-index:-1;transform:translate3d(0,0,0);pointer-events:none}.swipeout-actions-left .swipeout-delete,.swipeout-actions-right .swipeout-delete{background:var(--f7-swipeout-delete-button-bg-color)}.swipeout-actions-right{right:0%;transform:translateX(100%)}.swipeout-actions-right>a:after,.swipeout-actions-right>button:after,.swipeout-actions-right>div:after,.swipeout-actions-right>span:after{left:100%;margin-left:-1px}.swipeout-actions-left{left:0%;transform:translateX(-100%)}.swipeout-actions-left>a:after,.swipeout-actions-left>button:after,.swipeout-actions-left>div:after,.swipeout-actions-left>span:after{right:100%;margin-right:-1px}.swipeout-actions-left [class*=color-],.swipeout-actions-right [class*=color-]{--f7-swipeout-button-bg-color:var(--f7-theme-color)}:root{--f7-accordion-chevron-icon-down:'chevron_down';--f7-accordion-chevron-icon-up:'chevron_up'}.aurora{--f7-accordion-chevron-icon-down:'chevron_down_aurora';--f7-accordion-chevron-icon-up:'chevron_up_aurora'}.accordion-item-toggle{cursor:pointer}.list.accordion-list .accordion-item-toggle{transition-duration:.3s;position:relative;overflow:hidden}.list.accordion-list .accordion-item-toggle.active-state{transition-duration:.3s;background-color:var(--f7-list-link-pressed-bg-color)}.list.accordion-list .accordion-item-toggle.active-state>.item-inner:after{background-color:transparent}.list.accordion-list .accordion-item-toggle .item-inner{transition-duration:.3s;transition-property:background-color}.list.accordion-list .accordion-item-toggle .item-inner:after{transition-duration:.3s}.list.accordion-list .accordion-item-toggle .ripple-wave{z-index:0}.accordion-item .item-link .item-inner:after{transition-duration:.3s}.accordion-item .block,.accordion-item .list{margin-top:0;margin-bottom:0}.accordion-item .block>h1:first-child,.accordion-item .block>h2:first-child,.accordion-item .block>h3:first-child,.accordion-item .block>h4:first-child,.accordion-item .block>p:first-child{margin-top:10px}.accordion-item .block>h1:last-child,.accordion-item .block>h2:last-child,.accordion-item .block>h3:last-child,.accordion-item .block>h4:last-child,.accordion-item .block>p:last-child{margin-bottom:10px}.accordion-item-opened .accordion-item-toggle .item-inner:after,.accordion-item-opened>.item-link .item-inner:after{background-color:transparent}.list li.accordion-item ul{padding-left:0}.accordion-item-content{position:relative;overflow:hidden;height:0;font-size:14px;transition-duration:.3s}.accordion-item-opened>.accordion-item-content{height:auto}html.device-android-4 .accordion-item-content{transform:none}.list .accordion-item-toggle .item-inner:before{font-family:framework7-core-icons;font-weight:400;font-style:normal;line-height:1;letter-spacing:normal;text-transform:none;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;font-feature-settings:"liga";text-align:center;display:block;width:100%;height:100%;font-size:20px;position:absolute;top:50%;font-size:var(--f7-list-chevron-icon-font-size);color:var(--f7-list-chevron-icon-color);pointer-events:none;right:calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-right))}.list:not(.accordion-opposite) .accordion-item-toggle .item-inner{padding-right:calc(var(--f7-list-chevron-icon-area) + var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-right))}.accordion-opposite .accordion-item-toggle .item-inner,.accordion-opposite .accordion-item-toggle.item-link .item-inner,.accordion-opposite .accordion-item>.item-link>.item-content>.item-inner,.accordion-opposite .accordion-item>.item-link>.item-inner{padding-right:calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-right))}.accordion-opposite .accordion-item>.item-link>.item-title-row{padding-right:0}.accordion-opposite .accordion-item-toggle .item-inner:before,.accordion-opposite .accordion-item-toggle.item-link .item-inner:before,.accordion-opposite .accordion-item>.item-link .item-title-row:before,.accordion-opposite .accordion-item>.item-link>.item-content>.item-inner:before,.accordion-opposite .accordion-item>.item-link>.item-inner:before{display:none}.accordion-opposite .accordion-item-toggle.item-content,.accordion-opposite .accordion-item-toggle>.item-content,.accordion-opposite .accordion-item>.item-content,.accordion-opposite .accordion-item>.item-link>.item-content,.accordion-opposite.links-list .accordion-item>a{position:relative;padding-left:calc(var(--f7-list-chevron-icon-area) + var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-left))}.accordion-opposite .accordion-item-toggle.item-content:before,.accordion-opposite .accordion-item-toggle>.item-content:before,.accordion-opposite .accordion-item>.item-content:before,.accordion-opposite .accordion-item>.item-link>.item-content:before,.accordion-opposite.links-list .accordion-item>a:before{font-family:framework7-core-icons;font-weight:400;font-style:normal;line-height:1;letter-spacing:normal;text-transform:none;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;font-feature-settings:"liga";text-align:center;display:block;width:100%;height:100%;font-size:20px;position:absolute;top:50%;font-size:var(--f7-list-chevron-icon-font-size);color:var(--f7-list-chevron-icon-color);pointer-events:none;content:var(--f7-accordion-chevron-icon-down);width:14px;height:8px;margin-top:-4px;line-height:8px;transform:translateX(-50%);left:calc((var(--f7-list-chevron-icon-area) + var(--f7-list-item-padding-horizontal))/ 2 + var(--f7-safe-area-left))}.list .accordion-item-toggle.active-state{background-color:var(--f7-list-link-pressed-bg-color)}.accordion-item.media-item .accordion-item-toggle .item-title-row:before,.accordion-item.media-item>.item-link .item-title-row:before,.links-list .accordion-item>a:before,.list .accordion-item-toggle .item-inner:before,.list:not(.media-list) .accordion-item:not(.media-item) .accordion-item-toggle .item-inner:before,.list:not(.media-list) .accordion-item:not(.media-item)>.item-link .item-inner:before,.media-list .accordion-item .accordion-item-toggle .item-title-row:before,.media-list .accordion-item>.item-link .item-title-row:before{content:var(--f7-accordion-chevron-icon-down);width:14px;height:8px;margin-top:-4px;line-height:8px}.accordion-item-opened.media-item .accordion-item-toggle .item-title-row:before,.accordion-item-opened.media-item>.item-link .item-title-row:before,.accordion-opposite .accordion-item-opened .accordion-item-toggle.item-content:before,.accordion-opposite .accordion-item-opened .accordion-item-toggle>.item-content:before,.accordion-opposite .accordion-item-opened>.item-content:before,.accordion-opposite .accordion-item-opened>.item-link>.item-content:before,.accordion-opposite .links-list .accordion-item-opened>a:before,.links-list .accordion-item-opened>a:before,.list .accordion-item-toggle.accordion-item-opened .item-inner:before,.list:not(.media-list) .accordion-item-opened:not(.media-item) .accordion-item-toggle .item-inner:before,.list:not(.media-list) .accordion-item-opened:not(.media-item)>.item-link .item-inner:before,.media-list .accordion-item-opened .accordion-item-toggle .item-title-row:before,.media-list .accordion-item-opened>.item-link .item-title-row:before{content:var(--f7-accordion-chevron-icon-up);width:14px;height:8px;margin-top:-4px;line-height:8px}:root .theme-dark,:root.theme-dark{--f7-contacts-list-title-text-color:#fff}.ios{--f7-contacts-list-title-font-size:inherit;--f7-contacts-list-title-font-weight:600;--f7-contacts-list-title-height:22px;--f7-contacts-list-title-text-color:#000;--f7-contacts-list-title-bg-color:#f7f7f7}.ios .theme-dark,.ios.theme-dark{--f7-contacts-list-title-bg-color:#323234}.md{--f7-contacts-list-title-font-size:20px;--f7-contacts-list-title-font-weight:500;--f7-contacts-list-title-height:48px;--f7-contacts-list-title-bg-color:transparent}.aurora{--f7-contacts-list-title-font-weight:600;--f7-contacts-list-title-text-color:#000}.contacts-list{--f7-list-margin-vertical:0px}.contacts-list .list-group-title,.contacts-list li.list-group-title{background-color:var(--f7-contacts-list-title-bg-color,var(--f7-list-group-title-bg-color));font-weight:var(--f7-contacts-list-title-font-weight,var(--f7-list-group-title-font-weight));font-size:var(--f7-contacts-list-title-font-size,var(--f7-list-group-title-font-size));color:var(--f7-contacts-list-title-text-color,var(--f7-theme-color));line-height:var(--f7-contacts-list-title-height,var(--f7-list-group-title-height));height:var(--f7-contacts-list-title-height,var(--f7-list-group-title-height))}.contacts-list .list-group:first-child ul:before{display:none!important}.contacts-list .list-group:last-child ul:after{display:none!important}.md .contacts-list .list-group-title{pointer-events:none;overflow:visible;width:56px}.md .contacts-list .list-group-title+li{margin-top:calc(var(--f7-contacts-list-title-height) * -1)}.md .contacts-list li:not(.list-group-title){padding-left:56px}:root{--f7-list-index-width:16px;--f7-list-index-font-size:11px;--f7-list-index-font-weight:600;--f7-list-index-item-height:14px;--f7-list-index-label-text-color:#fff;--f7-list-index-label-font-weight:500}.ios{--f7-list-index-label-size:44px;--f7-list-index-label-font-size:17px;--f7-list-index-skip-dot-size:6px}.md{--f7-list-index-label-size:56px;--f7-list-index-label-font-size:20px;--f7-list-index-skip-dot-size:4px}.aurora{--f7-list-index-font-size:12px;--f7-list-index-label-size:32px;--f7-list-index-label-font-size:12px;--f7-list-index-label-font-weight:600;--f7-list-index-skip-dot-size:4px}.list-index{position:absolute;top:0;bottom:0;text-align:center;z-index:10;width:var(--f7-list-index-width);cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;right:var(--f7-safe-area-right)}.list-index:before{content:'';position:absolute;width:20px;top:0;right:100%;height:100%}.list-index ul{color:var(--f7-list-index-text-color,var(--f7-theme-color));font-size:var(--f7-list-index-font-size);font-weight:var(--f7-list-index-font-weight);list-style:none;margin:0;padding:0;display:flex;flex-direction:column;justify-content:center;align-items:center;flex-shrink:0;height:100%;width:100%;position:relative}.list-index li{margin:0;padding:0;list-style:none;position:relative;height:var(--f7-list-index-item-height);line-height:var(--f7-list-index-item-height);flex-shrink:0;display:block;width:100%}.list-index .list-index-skip-placeholder:after{content:'';position:absolute;left:50%;top:50%;border-radius:50%;width:var(--f7-list-index-skip-dot-size);height:var(--f7-list-index-skip-dot-size);margin-left:calc(-1 * var(--f7-list-index-skip-dot-size)/ 2);margin-top:calc(-1 * var(--f7-list-index-skip-dot-size)/ 2);background:var(--f7-list-index-text-color,var(--f7-theme-color))}.list-index .list-index-label{position:absolute;bottom:0;right:100%;text-align:center;background-color:var(--f7-list-index-label-bg-color,var(--f7-theme-color));color:var(--f7-list-index-label-text-color);width:var(--f7-list-index-label-size);height:var(--f7-list-index-label-size);line-height:var(--f7-list-index-label-size);font-size:var(--f7-list-index-label-font-size);font-weight:var(--f7-list-index-label-font-weight)}.navbars~.page>.list-index,.navbar~.list-index,.navbar~.page>.list-index{top:var(--f7-navbar-height)}.ios .navbars~.toolbar-top-ios .md .navbar~.toolbar-top-md~.list-index,.ios .navbar~.toolbar-top-ios~.list-index,.navbars~.toolbar-top~.list-index,.navbar~.toolbar-top~.list-index{top:calc(var(--f7-navbar-height) + var(--f7-toolbar-height))}.ios .navbars~.toolbar-top-ios .md .navbar~.toolbar-top-md.tabbar-labels~.list-index,.ios .navbar~.toolbar-top-ios.tabbar-labels~.list-index,.navbars~.toolbar-top.tabbar-labels~.list-index,.navbar~.toolbar-top.tabbar-labels~.list-index{top:calc(var(--f7-navbar-height) + var(--f7-tabbar-labels-height))}.navbars~.subnavbar~.list-index,.navbar~.subnavbar~.list-index,.page-with-subnavbar .navbar~.list-index{top:calc(var(--f7-navbar-height) + var(--f7-subnavbar-height))}.ios .toolbar-bottom-ios~* .page>.list-index,.ios .toolbar-bottom-ios~.list-index,.ios .toolbar-bottom-ios~.page>.list-index,.md .toolbar-bottom-md~* .page>.list-index,.md .toolbar-bottom-md~.list-index,.md .toolbar-bottom-md~.page>.list-index,.toolbar-bottom~* .page>.list-index,.toolbar-bottom~.list-index,.toolbar-bottom~.page>.list-index{bottom:calc(var(--f7-toolbar-height) + var(--f7-safe-area-bottom))}.ios .toolbar-bottom-ios.tabbar-labels~* .page>.list-index,.ios .toolbar-bottom-ios.tabbar-labels~.list-index,.ios .toolbar-bottom-ios.tabbar-labels~.page>.list-index,.md .toolbar-bottom-md.tabbar-labels~* .page>.list-index,.md .toolbar-bottom-md.tabbar-labels~.list-index,.md .toolbar-bottom-md.tabbar-labels~.page>.list-index,.toolbar-bottom.tabbar-labels~* .page>.list-index,.toolbar-bottom.tabbar-labels~.list-index,.toolbar-bottom.tabbar-labels~.page>.list-index{bottom:calc(var(--f7-tabbar-labels-height) + var(--f7-safe-area-bottom))}.ios .list-index .list-index-label{margin-bottom:calc(-1 * var(--f7-list-index-label-size)/ 2);margin-right:calc(var(--f7-list-index-width) - 1px);border-radius:50%}.ios .list-index .list-index-label:before{position:absolute;width:100%;height:100%;border-radius:50% 0% 50% 50%;content:'';background-color:inherit;left:0;top:0;transform:rotate(45deg);z-index:-1}.md .list-index .list-index-label{border-radius:50% 50% 0 50%}.aurora .list-index .list-index-label{margin-bottom:calc(-1 * var(--f7-list-index-label-size)/ 2);margin-right:calc(var(--f7-list-index-width) - 1px);border-radius:50%}.aurora .list-index .list-index-label:before{position:absolute;width:100%;height:100%;border-radius:50% 1px 50% 50%;content:'';background-color:inherit;left:0;top:0;transform:rotate(45deg);z-index:-1}:root{--f7-timeline-inner-block-margin-vertical:16px;--f7-timeline-divider-margin-horizontal:16px;--f7-timeline-horizontal-date-height:34px;--f7-timeline-year-height:24px;--f7-timeline-year-font-weight:inherit;--f7-timeline-month-height:24px;--f7-timeline-month-font-size:inherit;--f7-timeline-month-font-weight:inherit;--f7-timeline-item-text-font-weight:inherit;--f7-timeline-item-subtitle-font-weight:inherit;--f7-timeline-item-inner-bg-color:#fff}:root .theme-dark,:root.theme-dark{--f7-timeline-item-inner-bg-color:#1c1c1d;--f7-timeline-horizontal-item-border-color:rgba(255, 255, 255, 0.15);--f7-timeline-horizontal-item-date-border-color:rgba(255, 255, 255, 0.15)}.ios{--f7-timeline-padding-horizontal:16px;--f7-timeline-margin-vertical:35px;--f7-timeline-item-inner-border-radius:7px;--f7-timeline-item-inner-box-shadow:none;--f7-timeline-item-time-font-size:13px;--f7-timeline-item-title-font-size:17px;--f7-timeline-item-title-line-height:inherit;--f7-timeline-item-title-font-weight:600;--f7-timeline-item-subtitle-font-size:15px;--f7-timeline-item-subtitle-line-height:inherit;--f7-timeline-item-text-font-size:inherit;--f7-timeline-item-text-color:inherit;--f7-timeline-item-text-line-height:inherit;--f7-timeline-year-font-size:16px;--f7-timeline-horizontal-item-padding:10px;--f7-timeline-horizontal-item-date-shadow-image:none;--f7-timeline-item-time-text-color:rgba(0, 0, 0, 0.45);--f7-timeline-horizontal-item-border-color:rgba(0, 0, 0, 0.22);--f7-timeline-horizontal-item-date-border-color:rgba(0, 0, 0, 0.22)}.ios .theme-dark,.ios.theme-dark{--f7-timeline-item-time-text-color:rgba(255, 255, 255, 0.55)}.md{--f7-timeline-padding-horizontal:16px;--f7-timeline-margin-vertical:32px;--f7-timeline-item-inner-border-radius:4px;--f7-timeline-item-inner-box-shadow:var(--f7-elevation-1);--f7-timeline-item-time-font-size:13px;--f7-timeline-item-title-font-size:16px;--f7-timeline-item-title-line-height:inherit;--f7-timeline-item-title-font-weight:400;--f7-timeline-item-subtitle-font-size:inherit;--f7-timeline-item-subtitle-line-height:inherit;--f7-timeline-item-text-font-size:inherit;--f7-timeline-item-text-line-height:inherit;--f7-timeline-item-text-color:inherit;--f7-timeline-year-font-size:16px;--f7-timeline-horizontal-item-padding:12px;--f7-timeline-horizontal-item-date-shadow-image:var(--f7-bars-shadow-bottom-image);--f7-timeline-item-time-text-color:rgba(0, 0, 0, 0.54);--f7-timeline-horizontal-item-border-color:rgba(0, 0, 0, 0.12);--f7-timeline-horizontal-item-date-border-color:transparent}.md .theme-dark,.md.theme-dark{--f7-timeline-item-time-text-color:rgba(255, 255, 255, 0.54)}.aurora{--f7-timeline-padding-horizontal:10px;--f7-timeline-margin-vertical:15px;--f7-timeline-item-inner-border-radius:4px;--f7-timeline-item-inner-box-shadow:0px 1px 2px rgba(0, 0, 0, 0.15);--f7-timeline-item-time-font-size:12px;--f7-timeline-item-title-font-size:14px;--f7-timeline-item-title-line-height:1.3;--f7-timeline-item-title-font-weight:600;--f7-timeline-item-subtitle-font-size:14px;--f7-timeline-item-subtitle-line-height:1.3;--f7-timeline-item-text-font-size:12px;--f7-timeline-item-text-line-height:1.33;--f7-timeline-year-font-size:14px;--f7-timeline-year-font-weight:500;--f7-timeline-horizontal-item-padding:10px;--f7-timeline-horizontal-item-date-shadow-image:none;--f7-timeline-item-time-text-color:rgba(0, 0, 0, 0.5);--f7-timeline-item-text-color:rgba(0, 0, 0, 0.6);--f7-timeline-horizontal-item-border-color:rgba(0, 0, 0, 0.2);--f7-timeline-horizontal-item-date-border-color:rgba(0, 0, 0, 0.2)}.aurora .theme-dark,.aurora.theme-dark{--f7-timeline-item-time-text-color:rgba(255, 255, 255, 0.54);--f7-timeline-item-text-color:rgba(255, 255, 255, 0.54)}.timeline{box-sizing:border-box;margin:var(--f7-timeline-margin-vertical) 0;padding:0 var(--f7-timeline-padding-horizontal);padding-top:0;padding-bottom:0;padding-left:calc(var(--f7-timeline-padding-horizontal) + var(--f7-safe-area-left));padding-right:calc(var(--f7-timeline-padding-horizontal) + var(--f7-safe-area-right))}.block-strong .timeline{padding:0;margin:0}.timeline-item{display:flex;justify-content:flex-start;overflow:hidden;box-sizing:border-box;position:relative;padding:2px 0px var(--f7-timeline-padding-horizontal)}.timeline-item:last-child{padding-bottom:2px}.timeline-item-date{flex-shrink:0;width:50px;text-align:right;box-sizing:border-box}.timeline-item-date small{font-size:10px}.timeline-item-content{margin:2px;min-width:0;position:relative;flex-shrink:10}.timeline-item-content .block,.timeline-item-content .card,.timeline-item-content .list,.timeline-item-content.block,.timeline-item-content.card,.timeline-item-content.list{margin:0;width:100%}.timeline-item-content .block+.block,.timeline-item-content .block+.card,.timeline-item-content .block+.list,.timeline-item-content .card+.block,.timeline-item-content .card+.card,.timeline-item-content .card+.list,.timeline-item-content .list+.block,.timeline-item-content .list+.card,.timeline-item-content .list+.list{margin:var(--f7-timeline-inner-block-margin-vertical) 0 0}.timeline-item-content h1:first-child,.timeline-item-content h2:first-child,.timeline-item-content h3:first-child,.timeline-item-content h4:first-child,.timeline-item-content ol:first-child,.timeline-item-content p:first-child,.timeline-item-content ul:first-child{margin-top:0}.timeline-item-content h1:last-child,.timeline-item-content h2:last-child,.timeline-item-content h3:last-child,.timeline-item-content h4:last-child,.timeline-item-content ol:last-child,.timeline-item-content p:last-child,.timeline-item-content ul:last-child{margin-bottom:0}.timeline-item-inner{background:var(--f7-timeline-item-inner-bg-color);box-sizing:border-box;border-radius:var(--f7-timeline-item-inner-border-radius);padding:8px var(--f7-timeline-padding-horizontal);box-shadow:var(--f7-timeline-item-inner-box-shadow)}.timeline-item-inner+.timeline-item-inner{margin-top:var(--f7-timeline-inner-block-margin-vertical)}.timeline-item-inner .block{padding:0;color:inherit}.timeline-item-inner .block-strong{padding-left:0;padding-right:0;margin:0}.timeline-item-inner .block-strong:after,.timeline-item-inner .block-strong:before{display:none!important}.timeline-item-inner .list ul:after,.timeline-item-inner .list ul:before{display:none!important}.timeline-item-divider{width:1px;position:relative;width:10px;height:10px;background:#bbb;border-radius:50%;flex-shrink:0;margin:3px var(--f7-timeline-divider-margin-horizontal) 0}.timeline-item-divider:after,.timeline-item-divider:before{content:' ';width:1px;height:100vh;position:absolute;left:50%;background:inherit;transform:translate3d(-50%,0,0)}.timeline-item-divider:after{top:100%}.timeline-item-divider:before{bottom:100%}.timeline-item:last-child .timeline-item-divider:after{display:none}.timeline-item:first-child .timeline-item-divider:before{display:none}.timeline-item-time{font-size:var(--f7-timeline-item-time-font-size);margin-top:var(--f7-timeline-inner-block-margin-vertical);color:var(--f7-timeline-item-time-text-color)}.timeline-item-time:first-child,.timeline-item-time:last-child{margin-top:0}.timeline-item-title+.timeline-item-time{margin-top:0}.timeline-item-title{font-size:var(--f7-timeline-item-title-font-size);font-weight:var(--f7-timeline-item-title-font-weight);line-height:var(--f7-timeline-item-title-line-height)}.timeline-item-subtitle{font-size:var(--f7-timeline-item-subtitle-font-size);font-weight:var(--f7-timeline-item-subtitle-font-weight);line-height:var(--f7-timeline-item-subtitle-line-height)}.timeline-item-text{color:var(--f7-timeline-item-text-color);font-size:var(--f7-timeline-item-text-font-size);font-weight:var(--f7-timeline-item-text-font-weight);line-height:var(--f7-timeline-item-text-line-height)}.timeline-sides .timeline-item,.timeline-sides .timeline-item-right{margin-left:calc(50% - (var(--f7-timeline-divider-margin-horizontal) * 2 + 10px)/ 2 - 50px);margin-right:0}.timeline-sides .timeline-item .timeline-item-date,.timeline-sides .timeline-item-right .timeline-item-date{text-align:right}.timeline-sides .timeline-item-left,.timeline-sides .timeline-item:not(.timeline-item-right):nth-child(2n){flex-direction:row-reverse;margin-right:calc(50% - (var(--f7-timeline-divider-margin-horizontal) * 2 + 10px)/ 2 - 50px);margin-left:0}.timeline-sides .timeline-item-left .timeline-item-date,.timeline-sides .timeline-item:not(.timeline-item-right):nth-child(2n) .timeline-item-date{text-align:left}@media (min-width:480px){.xsmall-sides .timeline-item,.xsmall-sides .timeline-item-right{margin-left:calc(50% - (var(--f7-timeline-divider-margin-horizontal) * 2 + 10px)/ 2 - 50px);margin-right:0}.xsmall-sides .timeline-item .timeline-item-date,.xsmall-sides .timeline-item-right .timeline-item-date{text-align:right}.xsmall-sides .timeline-item-left,.xsmall-sides .timeline-item:not(.timeline-item-right):nth-child(2n){flex-direction:row-reverse;margin-right:calc(50% - (var(--f7-timeline-divider-margin-horizontal) * 2 + 10px)/ 2 - 50px);margin-left:0}.xsmall-sides .timeline-item-left .timeline-item-date,.xsmall-sides .timeline-item:not(.timeline-item-right):nth-child(2n) .timeline-item-date{text-align:left}}@media (min-width:568px){.small-sides .timeline-item,.small-sides .timeline-item-right{margin-left:calc(50% - (var(--f7-timeline-divider-margin-horizontal) * 2 + 10px)/ 2 - 50px);margin-right:0}.small-sides .timeline-item .timeline-item-date,.small-sides .timeline-item-right .timeline-item-date{text-align:right}.small-sides .timeline-item-left,.small-sides .timeline-item:not(.timeline-item-right):nth-child(2n){flex-direction:row-reverse;margin-right:calc(50% - (var(--f7-timeline-divider-margin-horizontal) * 2 + 10px)/ 2 - 50px);margin-left:0}.small-sides .timeline-item-left .timeline-item-date,.small-sides .timeline-item:not(.timeline-item-right):nth-child(2n) .timeline-item-date{text-align:left}}@media (min-width:768px){.medium-sides .timeline-item,.medium-sides .timeline-item-right{margin-left:calc(50% - (var(--f7-timeline-divider-margin-horizontal) * 2 + 10px)/ 2 - 50px);margin-right:0}.medium-sides .timeline-item .timeline-item-date,.medium-sides .timeline-item-right .timeline-item-date{text-align:right}.medium-sides .timeline-item-left,.medium-sides .timeline-item:not(.timeline-item-right):nth-child(2n){flex-direction:row-reverse;margin-right:calc(50% - (var(--f7-timeline-divider-margin-horizontal) * 2 + 10px)/ 2 - 50px);margin-left:0}.medium-sides .timeline-item-left .timeline-item-date,.medium-sides .timeline-item:not(.timeline-item-right):nth-child(2n) .timeline-item-date{text-align:left}}@media (min-width:1024px){.large-sides .timeline-item,.large-sides .timeline-item-right{margin-left:calc(50% - (var(--f7-timeline-divider-margin-horizontal) * 2 + 10px)/ 2 - 50px);margin-right:0}.large-sides .timeline-item .timeline-item-date,.large-sides .timeline-item-right .timeline-item-date{text-align:right}.large-sides .timeline-item-left,.large-sides .timeline-item:not(.timeline-item-right):nth-child(2n){flex-direction:row-reverse;margin-right:calc(50% - (var(--f7-timeline-divider-margin-horizontal) * 2 + 10px)/ 2 - 50px);margin-left:0}.large-sides .timeline-item-left .timeline-item-date,.large-sides .timeline-item:not(.timeline-item-right):nth-child(2n) .timeline-item-date{text-align:left}}@media (min-width:1200px){.xlarge-sides .timeline-item,.xlarge-sides .timeline-item-right{margin-left:calc(50% - (var(--f7-timeline-divider-margin-horizontal) * 2 + 10px)/ 2 - 50px);margin-right:0}.xlarge-sides .timeline-item .timeline-item-date,.xlarge-sides .timeline-item-right .timeline-item-date{text-align:right}.xlarge-sides .timeline-item-left,.xlarge-sides .timeline-item:not(.timeline-item-right):nth-child(2n){flex-direction:row-reverse;margin-right:calc(50% - (var(--f7-timeline-divider-margin-horizontal) * 2 + 10px)/ 2 - 50px);margin-left:0}.xlarge-sides .timeline-item-left .timeline-item-date,.xlarge-sides .timeline-item:not(.timeline-item-right):nth-child(2n) .timeline-item-date{text-align:left}}.timeline-horizontal{height:100%;display:flex;padding:0;margin:0;position:relative;padding-left:var(--f7-safe-area-left);padding-right:0}.timeline-horizontal .timeline-item{display:block;width:33.33333333vw;margin:0;padding:0;flex-shrink:0;position:relative;height:100%;padding-top:var(--f7-timeline-horizontal-date-height)!important;padding-bottom:var(--f7-timeline-horizontal-item-padding)}.timeline-horizontal .timeline-item:after{content:'';position:absolute;background-color:var(--f7-timeline-horizontal-item-border-color);display:block;z-index:15;top:0;right:0;bottom:auto;left:auto;width:1px;height:100%;transform-origin:100% 50%;transform:scaleX(calc(1 / var(--f7-device-pixel-ratio)))}.timeline-horizontal .timeline-item-date{padding:0px var(--f7-timeline-horizontal-item-padding);width:auto;line-height:var(--f7-timeline-horizontal-date-height);position:absolute;left:0;top:0;width:100%;height:var(--f7-timeline-horizontal-date-height);background-color:var(--f7-bars-bg-color);color:var(--f7-bars-text-color);text-align:left}@supports ((-webkit-backdrop-filter:blur(20px)) or (backdrop-filter:blur(20px))){.ios-translucent-bars .timeline-horizontal .timeline-item-date{background-color:rgba(var(--f7-bars-bg-color-rgb),var(--f7-bars-translucent-opacity));-webkit-backdrop-filter:saturate(180%) blur(var(--f7-bars-translucent-blur));backdrop-filter:saturate(180%) blur(var(--f7-bars-translucent-blur))}}.timeline-horizontal .timeline-item-date:after{content:'';position:absolute;background-color:var(--f7-timeline-horizontal-item-date-border-color);display:block;z-index:15;top:auto;right:auto;bottom:0;left:0;height:1px;width:100%;transform-origin:50% 100%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.timeline-horizontal .timeline-item-date:before{content:'';position:absolute;right:0;width:100%;top:100%;bottom:auto;height:8px;pointer-events:none;background:var(--f7-timeline-horizontal-item-date-shadow-image)}.timeline-horizontal.no-shadow .timeline-item-date:before{display:none}.timeline-horizontal .timeline-item-content{padding:var(--f7-timeline-horizontal-item-padding);height:calc(100% - var(--f7-timeline-horizontal-item-padding));overflow:auto;-webkit-overflow-scrolling:touch;margin:0}.timeline-horizontal .timeline-item-divider{display:none}.timeline-horizontal .timeline-month:last-child .timeline-item:last-child:after,.timeline-horizontal>.timeline-item:last-child:after{display:none!important}.timeline-horizontal.col-5 .timeline-item{width:5vw}.timeline-horizontal.col-10 .timeline-item{width:10vw}.timeline-horizontal.col-15 .timeline-item{width:15vw}.timeline-horizontal.col-20 .timeline-item{width:20vw}.timeline-horizontal.col-25 .timeline-item{width:25vw}.timeline-horizontal.col-30 .timeline-item{width:30vw}.timeline-horizontal.col-33 .timeline-item{width:33.333333333333336vw}.timeline-horizontal.col-35 .timeline-item{width:35vw}.timeline-horizontal.col-40 .timeline-item{width:40vw}.timeline-horizontal.col-45 .timeline-item{width:45vw}.timeline-horizontal.col-50 .timeline-item{width:50vw}.timeline-horizontal.col-55 .timeline-item{width:55vw}.timeline-horizontal.col-60 .timeline-item{width:60vw}.timeline-horizontal.col-65 .timeline-item{width:65vw}.timeline-horizontal.col-66 .timeline-item{width:66.66666666666666vw}.timeline-horizontal.col-70 .timeline-item{width:70vw}.timeline-horizontal.col-75 .timeline-item{width:75vw}.timeline-horizontal.col-80 .timeline-item{width:80vw}.timeline-horizontal.col-85 .timeline-item{width:85vw}.timeline-horizontal.col-90 .timeline-item{width:90vw}.timeline-horizontal.col-95 .timeline-item{width:95vw}.timeline-horizontal.col-100 .timeline-item{width:100vw}@media (min-width:768px){.timeline-horizontal.tablet-5 .timeline-item{width:5vw}.timeline-horizontal.tablet-10 .timeline-item{width:10vw}.timeline-horizontal.tablet-15 .timeline-item{width:15vw}.timeline-horizontal.tablet-20 .timeline-item{width:20vw}.timeline-horizontal.tablet-25 .timeline-item{width:25vw}.timeline-horizontal.tablet-30 .timeline-item{width:30vw}.timeline-horizontal.tablet-33 .timeline-item{width:33.333333333333336vw}.timeline-horizontal.tablet-35 .timeline-item{width:35vw}.timeline-horizontal.tablet-40 .timeline-item{width:40vw}.timeline-horizontal.tablet-45 .timeline-item{width:45vw}.timeline-horizontal.tablet-50 .timeline-item{width:50vw}.timeline-horizontal.tablet-55 .timeline-item{width:55vw}.timeline-horizontal.tablet-60 .timeline-item{width:60vw}.timeline-horizontal.tablet-65 .timeline-item{width:65vw}.timeline-horizontal.tablet-66 .timeline-item{width:66.66666666666666vw}.timeline-horizontal.tablet-70 .timeline-item{width:70vw}.timeline-horizontal.tablet-75 .timeline-item{width:75vw}.timeline-horizontal.tablet-80 .timeline-item{width:80vw}.timeline-horizontal.tablet-85 .timeline-item{width:85vw}.timeline-horizontal.tablet-90 .timeline-item{width:90vw}.timeline-horizontal.tablet-95 .timeline-item{width:95vw}.timeline-horizontal.tablet-100 .timeline-item{width:100vw}}.timeline-year{padding-top:var(--f7-timeline-year-height)}.timeline-year:after{content:'';position:absolute;background-color:var(--f7-timeline-horizontal-item-border-color);display:block;z-index:15;top:0;right:0;bottom:auto;left:auto;width:1px;height:100%;transform-origin:100% 50%;transform:scaleX(calc(1 / var(--f7-device-pixel-ratio)))}.timeline-year:last-child:after{display:none!important}.timeline-month{padding-top:var(--f7-timeline-month-height)}.timeline-month .timeline-item:before{content:'';position:absolute;background-color:var(--f7-timeline-horizontal-item-border-color);display:block;z-index:15;top:0;right:auto;bottom:auto;left:0;height:1px;width:100%;transform-origin:50% 0%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.timeline-month,.timeline-year{display:flex;flex-shrink:0;position:relative;box-sizing:border-box;height:100%}.timeline-year-title{line-height:var(--f7-timeline-year-height);height:var(--f7-timeline-year-height);font-size:var(--f7-timeline-year-font-size);font-weight:var(--f7-timeline-year-font-weight)}.timeline-month-title{line-height:var(--f7-timeline-month-height);height:var(--f7-timeline-month-height);font-size:var(--f7-timeline-month-font-size);font-weight:var(--f7-timeline-month-font-weight)}.timeline-month-title,.timeline-year-title{position:absolute;left:0;top:0;width:100%;box-sizing:border-box;padding:0 var(--f7-timeline-horizontal-item-padding);background-color:var(--f7-bars-bg-color);color:var(--f7-bars-text-color)}@supports ((-webkit-backdrop-filter:blur(20px)) or (backdrop-filter:blur(20px))){.ios-translucent-bars .timeline-month-title,.ios-translucent-bars .timeline-year-title{background-color:rgba(var(--f7-bars-bg-color-rgb),var(--f7-bars-translucent-opacity));-webkit-backdrop-filter:saturate(180%) blur(var(--f7-bars-translucent-blur));backdrop-filter:saturate(180%) blur(var(--f7-bars-translucent-blur))}}.timeline-month-title span,.timeline-year-title span{display:inline-block;position:-webkit-sticky;position:sticky;left:calc(var(--f7-timeline-horizontal-item-padding) + var(--f7-safe-area-left))}.timeline-month-title span{margin-top:-2px}.timeline-year:first-child .timeline-month:first-child .timeline-month-title,.timeline-year:first-child .timeline-year-title,.timeline-year:first-child .timeline-year-title+.timeline-month .timeline-month-title{left:calc(var(--f7-safe-area-left) * -1);right:0;width:auto}.timeline-horizontal .timeline-item:first-child,.timeline-year:first-child .timeline-month:first-child .timeline-item:first-child,.timeline-year:first-child .timeline-year-title+.timeline-month .timeline-item:first-child,.timeline-year:first-child .timeline-year-title+.timeline-month .timeline-month-title+.timeline-item{overflow:visible}.timeline-horizontal .timeline-item:first-child .timeline-item-date,.timeline-year:first-child .timeline-month:first-child .timeline-item:first-child .timeline-item-date,.timeline-year:first-child .timeline-year-title+.timeline-month .timeline-item:first-child .timeline-item-date,.timeline-year:first-child .timeline-year-title+.timeline-month .timeline-month-title+.timeline-item .timeline-item-date{width:auto;padding-left:calc(var(--f7-timeline-horizontal-item-padding) + var(--f7-safe-area-left));left:calc(0px - var(--f7-safe-area-left));right:0}.timeline-year:last-child .timeline-month:last-child .timeline-month-title,.timeline-year:last-child .timeline-year-title{width:auto;right:calc(0px - var(--f7-safe-area-right))}.timeline-horizontal .timeline-item:last-child,.timeline-year:last-child .timeline-month:last-child .timeline-item:last-child{overflow:visible}.timeline-horizontal .timeline-item:last-child .timeline-item-date,.timeline-year:last-child .timeline-month:last-child .timeline-item:last-child .timeline-item-date{width:auto;right:calc(0px - var(--f7-safe-area-right));left:0}.ios .block-strong .timeline-item-inner{border-radius:3px;border:1px solid rgba(0,0,0,.1)}.ios .timeline-year-title span{margin-top:3px}.md .timeline-year-title span{margin-top:2px}.aurora .timeline-year-title span{margin-top:2px}.tabs .tab{display:none}.tabs .tab-active{display:block}.tabs-animated-wrap{position:relative;width:100%;overflow:hidden;height:100%}.tabs-animated-wrap>.tabs{display:flex;height:100%;transition-duration:.3s}.tabs-animated-wrap>.tabs>.tab{width:100%;display:block;flex-shrink:0}.tabs-animated-wrap.not-animated>.tabs{transition-duration:0s}.tabs-swipeable-wrap{height:100%}.tabs-swipeable-wrap>.tabs{height:100%}.tabs-swipeable-wrap>.tabs>.tab{display:block}.page>.tabs{height:100%}:root{--f7-panel-width:260px;--f7-panel-bg-color:#fff}.ios{--f7-panel-collapsed-width:58px;--f7-panel-backdrop-bg-color:rgba(0, 0, 0, 0);--f7-panel-transition-duration:400ms;--f7-panel-shadow:transparent}.md{--f7-panel-collapsed-width:60px;--f7-panel-backdrop-bg-color:rgba(0, 0, 0, 0.3);--f7-panel-transition-duration:300ms;--f7-panel-shadow:rgba(0, 0, 0, 0.2) 0%,rgba(0, 0, 0, 0.07) 30%,rgba(0, 0, 0, 0.03) 40%,rgba(0, 0, 0, 0) 60%,rgba(0, 0, 0, 0) 100%}.aurora{--f7-panel-collapsed-width:44px;--f7-panel-backdrop-bg-color:rgba(0, 0, 0, 0.2);--f7-panel-transition-duration:400ms;--f7-panel-shadow:transparent}.panel-backdrop{position:absolute;left:0;top:var(--f7-appbar-app-offset,0px);width:100%;height:calc(100% - var(--f7-appbar-app-offset,0px));opacity:0;z-index:5999;visibility:hidden;pointer-events:none;transform:translate3d(0,0,0);background-color:var(--f7-panel-backdrop-bg-color);transition-property:transform,opacity;transition-duration:var(--f7-panel-transition-duration)}.panel-backdrop .with-panel,.panel-backdrop .with-panel-closing{visibility:visible}.panel-backdrop.not-animated{transition-duration:0s!important}.panel{z-index:1000;box-sizing:border-box;position:absolute;top:var(--f7-appbar-app-offset,0px);height:calc(100% - var(--f7-appbar-app-offset,0px));transform:translate3d(0,0,0);width:var(--f7-panel-width);background-color:var(--f7-panel-bg-color);overflow:visible;transition-property:transform;transition-duration:var(--f7-panel-transition-duration)}.panel:not(.panel-in):not(.panel-out):not(.panel-in-breakpoint):not(.panel-in-collapsed):not(.panel-in-swipe){display:none}.panel:after{pointer-events:none;opacity:0;z-index:5999;position:absolute;content:'';top:0;width:20px;height:100%;transition-property:transform,opacity;transition-duration:var(--f7-panel-transition-duration)}.panel.not-animated,.panel.not-animated:after{transition-duration:0s!important}.panel.panel-reveal.not-animated~.view,.panel.panel-reveal.not-animated~.views{transition-duration:0s!important}.panel.panel-resizing{-webkit-user-select:none;-moz-user-select:none;user-select:none}.panel.panel-resizing,.panel.panel-resizing:after,.panel.panel-resizing~.view,.panel.panel-resizing~.views{transition-duration:0s!important}.panel-cover{z-index:6000}.panel-left{left:0;width:var(--f7-panel-left-width,var(--f7-panel-width))}.panel-left.panel-cover{transform:translate3d(calc(-1 * var(--f7-panel-left-width,var(--f7-panel-width))),0,0)}.panel-left.panel-cover:after{left:100%;background:linear-gradient(to right,var(--f7-panel-shadow))}html.with-panel-left-cover .panel-left.panel-cover:after{opacity:1}.panel-left.panel-reveal:after{right:0;transform:translate3d(calc(-1 * var(--f7-panel-left-width,var(--f7-panel-width))),0,0);background:linear-gradient(to left,var(--f7-panel-shadow))}html.with-panel-left-reveal .panel-left.panel-reveal:after{opacity:1;transform:translate3d(0,0,0)}.panel-right{right:0;width:var(--f7-panel-right-width,var(--f7-panel-width))}.panel-right.panel-cover{transform:translate3d(var(--f7-panel-right-width,var(--f7-panel-width)),0,0)}.panel-right.panel-cover:after{right:100%;background:linear-gradient(to left,var(--f7-panel-shadow))}html.with-panel-right-cover .panel-right.panel-cover:after{opacity:1}.panel-right.panel-reveal:after{left:0;background:linear-gradient(to right,var(--f7-panel-shadow));transform:translate3d(var(--f7-panel-right-width,var(--f7-panel-width)),0,0)}html.with-panel-right-reveal .panel-right.panel-reveal:after{opacity:1;transform:translate3d(0,0,0)}.panel-in-breakpoint{transform:translate3d(0,0,0)!important;transition-duration:0s}.panel-in-breakpoint:after{display:none}.panel-in-breakpoint.panel-cover{z-index:5900}html.with-panel-closing .framework7-root>.view,html.with-panel-closing .views,html.with-panel-left-reveal .framework7-root>.view,html.with-panel-left-reveal .views,html.with-panel-right-reveal .framework7-root>.view,html.with-panel-right-reveal .views{transition-duration:var(--f7-panel-transition-duration);transition-property:transform}html.with-panel-closing .panel-backdrop-in,html.with-panel-left-reveal .panel-backdrop-in,html.with-panel-right-reveal .panel-backdrop-in{visibility:visible;pointer-events:auto;opacity:0}html.with-panel .framework7-root>.view .page-content,html.with-panel .framework7-root>.views .page-content{overflow:hidden;-webkit-overflow-scrolling:auto}html.with-panel-left-cover .panel-backdrop-in,html.with-panel-right-cover .panel-backdrop-in{visibility:visible;pointer-events:auto;opacity:1}html.with-panel-left-reveal .framework7-root>.view,html.with-panel-left-reveal .panel-backdrop-in,html.with-panel-left-reveal .views{transform:translate3d(var(--f7-panel-left-width,var(--f7-panel-width)),0,0)}html.with-panel-right-reveal .framework7-root>.view,html.with-panel-right-reveal .panel-backdrop-in,html.with-panel-right-reveal .views{transform:translate3d(calc(-1 * var(--f7-panel-right-width,var(--f7-panel-width))),0,0)}html.with-panel-left-cover .panel-left{transform:translate3d(0px,0,0)}html.with-panel-right-cover .panel-right{transform:translate3d(0px,0,0)}.panel-resize-handler{position:absolute;top:0;height:100%;width:6px;cursor:col-resize;z-index:6000;display:none}.panel-resizable .panel-resize-handler{display:block}.panel-left.panel-cover .panel-resize-handler{right:-3px}.panel-left.panel-reveal .panel-resize-handler{right:0}.panel-right.panel-cover .panel-resize-handler{left:-3px}.panel-right.panel-reveal .panel-resize-handler{left:0}.panel-left.panel-in-collapsed~.view,.panel-left.panel-in-collapsed~.views{margin-left:var(--f7-panel-left-collapsed-width,var(--f7-panel-collapsed-width))}html.with-panel-left-reveal .panel-left.panel-in-collapsed~.view,html.with-panel-left-reveal .panel-left.panel-in-collapsed~.views{transform:translate3d(calc(var(--f7-panel-left-width,var(--f7-panel-width)) - var(--f7-panel-left-collapsed-width,var(--f7-panel-collapsed-width))),0,0)}.panel-right.panel-in-collapsed~.view,.panel-right.panel-in-collapsed~.views{margin-right:var(--f7-panel-right-collapsed-width,var(--f7-panel-collapsed-width))}html.with-panel-right-reveal .panel-right.panel-in-collapsed~.view,html.with-panel-right-reveal .panel-right.panel-in-collapsed~.views{transform:translate3d(calc(var(--f7-panel-right-collapsed-width,var(--f7-panel-collapsed-width)) - var(--f7-panel-right-width,var(--f7-panel-width))),0,0)}html.with-modal-popup-push .framework7-root,html.with-modal-popup-push-closing .framework7-root{--f7-panelPushScale:var(--f7-popup-push-scale);--f7-panelPushTransitionDuration:var(--f7-popup-transition-duration);--f7-panelPushBorderRadius:var(--f7-popup-push-border-radius)}html.with-modal-sheet-push .framework7-root,html.with-modal-sheet-push-closing .framework7-root{--f7-panelPushScale:var(--f7-sheet-push-scale);--f7-panelPushTransitionDuration:var(--f7-sheet-transition-duration);--f7-panelPushBorderRadius:var(--f7-sheet-push-border-radius)}html.with-modal-popup-push .framework7-root>.panel-in,html.with-modal-popup-push .framework7-root>.panel-out,html.with-modal-sheet-push .framework7-root>.panel-in,html.with-modal-sheet-push .framework7-root>.panel-out{transition-duration:var(--f7-panelPushTransitionDuration)}html.with-modal-popup-push .framework7-root>.panel-in.panel-reveal.panel-left,html.with-modal-popup-push .framework7-root>.panel-out.panel-reveal.panel-left,html.with-modal-sheet-push .framework7-root>.panel-in.panel-reveal.panel-left,html.with-modal-sheet-push .framework7-root>.panel-out.panel-reveal.panel-left{transform:scale(var(--f7-panelPushScale,1));transform-origin:50vw center;border-top-left-radius:var(--f7-panelPushBorderRadius)}html.with-modal-popup-push .framework7-root>.panel-in.panel-reveal.panel-left .view,html.with-modal-popup-push .framework7-root>.panel-out.panel-reveal.panel-left .view,html.with-modal-sheet-push .framework7-root>.panel-in.panel-reveal.panel-left .view,html.with-modal-sheet-push .framework7-root>.panel-out.panel-reveal.panel-left .view{border-top-left-radius:var(--f7-panelPushBorderRadius)}html.with-modal-popup-push .framework7-root>.panel-in.panel-reveal.panel-right,html.with-modal-popup-push .framework7-root>.panel-out.panel-reveal.panel-right,html.with-modal-sheet-push .framework7-root>.panel-in.panel-reveal.panel-right,html.with-modal-sheet-push .framework7-root>.panel-out.panel-reveal.panel-right{transform:scale(var(--f7-panelPushScale,1));transform-origin:calc(var(--f7-panel-left-width,var(--f7-panel-width)) - 50vw) center;border-top-right-radius:var(--f7-panelPushBorderRadius)}html.with-modal-popup-push .framework7-root>.panel-in.panel-reveal.panel-right .view,html.with-modal-popup-push .framework7-root>.panel-out.panel-reveal.panel-right .view,html.with-modal-sheet-push .framework7-root>.panel-in.panel-reveal.panel-right .view,html.with-modal-sheet-push .framework7-root>.panel-out.panel-reveal.panel-right .view{border-top-right-radius:var(--f7-panelPushBorderRadius)}html.with-modal-popup-push .framework7-root>.panel-in.panel-cover.panel-left,html.with-modal-popup-push .framework7-root>.panel-out.panel-cover.panel-left,html.with-modal-sheet-push .framework7-root>.panel-in.panel-cover.panel-left,html.with-modal-sheet-push .framework7-root>.panel-out.panel-cover.panel-left{transform:translate3d(calc(-1 * var(--f7-panel-left-width,var(--f7-panel-width))),0,0px)}html.with-modal-popup-push .framework7-root>.panel-in.panel-cover.panel-right,html.with-modal-popup-push .framework7-root>.panel-out.panel-cover.panel-right,html.with-modal-sheet-push .framework7-root>.panel-in.panel-cover.panel-right,html.with-modal-sheet-push .framework7-root>.panel-out.panel-cover.panel-right{transform:translate3d(var(--f7-panel-right-width,var(--f7-panel-width)),0,0px)}html.with-modal-popup-push-closing .framework7-root>.panel-in,html.with-modal-sheet-push-closing .framework7-root>.panel-in{transition-duration:var(--f7-panelPushTransitionDuration)}html.with-modal-popup-push-closing .framework7-root>.panel-in.panel-reveal.panel-left,html.with-modal-sheet-push-closing .framework7-root>.panel-in.panel-reveal.panel-left{transform-origin:50vw center}html.with-modal-popup-push-closing .framework7-root>.panel-in.panel-reveal.panel-right,html.with-modal-sheet-push-closing .framework7-root>.panel-in.panel-reveal.panel-right{transform-origin:calc(var(--f7-panel-right-width,var(--f7-panel-width)) - 50vw) center}:root{--f7-card-content-padding-horizontal:16px;--f7-card-content-padding-vertical:16px;--f7-card-border-radius:4px;--f7-card-font-size:inherit;--f7-card-header-text-color:inherit;--f7-card-header-font-weight:400;--f7-card-header-padding-horizontal:16px;--f7-card-footer-font-weight:400;--f7-card-footer-font-size:inherit;--f7-card-footer-padding-horizontal:16px;--f7-card-expandable-font-size:16px;--f7-card-expandable-tablet-width:670px;--f7-card-expandable-tablet-height:670px;--f7-card-bg-color:#fff;--f7-card-outline-border-color:rgba(0, 0, 0, 0.12);--f7-card-header-border-color:rgba(0, 0, 0, 0.1);--f7-card-footer-border-color:rgba(0, 0, 0, 0.1);--f7-card-expandable-bg-color:#fff}:root .theme-dark,:root.theme-dark{--f7-card-bg-color:#1c1c1d;--f7-card-expandable-bg-color:#1c1c1d;--f7-card-outline-border-color:rgba(255, 255, 255, 0.15);--f7-card-header-border-color:rgba(255, 255, 255, 0.15);--f7-card-footer-border-color:rgba(255, 255, 255, 0.15);--f7-card-footer-text-color:rgba(255, 255, 255, 0.55)}.ios{--f7-card-margin-horizontal:10px;--f7-card-margin-vertical:10px;--f7-card-box-shadow:0px 1px 2px rgba(0, 0, 0, 0.2);--f7-card-header-font-size:17px;--f7-card-header-padding-vertical:10px;--f7-card-header-min-height:44px;--f7-card-footer-text-color:rgba(0, 0, 0, 0.45);--f7-card-footer-padding-vertical:10px;--f7-card-footer-min-height:44px;--f7-card-expandable-margin-horizontal:20px;--f7-card-expandable-margin-vertical:30px;--f7-card-expandable-box-shadow:0px 20px 40px rgba(0, 0, 0, 0.3);--f7-card-expandable-border-radius:15px;--f7-card-expandable-tablet-border-radius:5px;--f7-card-expandable-header-font-size:27px;--f7-card-expandable-header-font-weight:bold}.md{--f7-card-margin-horizontal:8px;--f7-card-margin-vertical:8px;--f7-card-box-shadow:var(--f7-elevation-1);--f7-card-header-font-size:16px;--f7-card-header-padding-vertical:4px;--f7-card-header-min-height:48px;--f7-card-footer-text-color:rgba(0, 0, 0, 0.54);--f7-card-footer-padding-vertical:4px;--f7-card-footer-min-height:48px;--f7-card-expandable-margin-horizontal:12px;--f7-card-expandable-margin-vertical:24px;--f7-card-expandable-box-shadow:var(--f7-elevation-10);--f7-card-expandable-border-radius:8px;--f7-card-expandable-tablet-border-radius:4px;--f7-card-expandable-header-font-size:24px;--f7-card-expandable-header-font-weight:500}.aurora{--f7-card-margin-horizontal:10px;--f7-card-margin-vertical:10px;--f7-card-box-shadow:0px 1px 2px rgba(0, 0, 0, 0.15);--f7-card-header-font-size:14px;--f7-card-header-font-weight:bold;--f7-card-header-padding-vertical:10px;--f7-card-header-min-height:38px;--f7-card-footer-text-color:rgba(0, 0, 0, 0.6);--f7-card-footer-padding-vertical:10px;--f7-card-footer-min-height:38px;--f7-card-expandable-margin-horizontal:10px;--f7-card-expandable-margin-vertical:20px;--f7-card-expandable-box-shadow:0px 5px 10px rgba(0, 0, 0, 0.15);--f7-card-expandable-border-radius:15px;--f7-card-expandable-tablet-border-radius:5px;--f7-card-expandable-header-font-size:27px;--f7-card-expandable-header-font-weight:bold}.card .list>ul:after,.card .list>ul:before,.cards-list>ul:after,.cards-list>ul:before{display:none!important}.card .list ul,.cards-list ul{background:0 0}.card{background:var(--f7-card-bg-color);position:relative;border-radius:var(--f7-card-border-radius);font-size:var(--f7-card-font-size);margin-top:var(--f7-card-margin-vertical);margin-bottom:var(--f7-card-margin-vertical);margin-left:calc(var(--f7-card-margin-horizontal) + var(--f7-safe-area-left));margin-right:calc(var(--f7-card-margin-horizontal) + var(--f7-safe-area-right));box-shadow:var(--f7-card-box-shadow)}.card .block,.card .list{margin:0}.row:not(.no-gap) .col>.card{margin-left:0;margin-right:0}.card.no-shadow{box-shadow:none}.aurora .card-outline-aurora,.card-outline,.ios .card-outline-ios,.md .card-outline-md{box-shadow:none;border:1px solid var(--f7-card-outline-border-color)}.aurora .card-outline-aurora.no-border,.aurora .card-outline-aurora.no-hairlines,.card-outline.no-border,.card-outline.no-hairlines,.ios .card-outline-ios.no-border,.ios .card-outline-ios.no-hairlines,.md .card-outline-md.no-border,.md .card-outline-md.no-hairlines{border:none}.card-content{position:relative}.card-content-padding{position:relative;padding:var(--f7-card-content-padding-vertical) var(--f7-card-content-padding-horizontal)}.card-content-padding>.block,.card-content-padding>.list{margin:calc(-1 * var(--f7-card-content-padding-vertical)) calc(-1 * var(--f7-card-content-padding-horizontal))}.card-content-padding>p:first-child{margin-top:0}.card-content-padding>p:last-child{margin-bottom:0}.card-header{min-height:var(--f7-card-header-min-height);color:var(--f7-card-header-text-color);font-size:var(--f7-card-header-font-size);font-weight:var(--f7-card-header-font-weight);padding:var(--f7-card-header-padding-vertical) var(--f7-card-header-padding-horizontal)}.card-footer{min-height:var(--f7-card-footer-min-height);color:var(--f7-card-footer-text-color);font-size:var(--f7-card-footer-font-size);font-weight:var(--f7-card-footer-font-weight);padding:var(--f7-card-footer-padding-vertical) var(--f7-card-footer-padding-horizontal)}.card-footer a.link{overflow:hidden}.card-footer,.card-header{position:relative;box-sizing:border-box;display:flex;justify-content:space-between;align-items:center}.card-footer[valign=top],.card-header[valign=top]{align-items:flex-start}.card-footer[valign=bottom],.card-header[valign=bottom]{align-items:flex-end}.card-footer a.link,.card-header a.link{position:relative}.card-footer a.link i.icon,.card-header a.link i.icon{display:block}.card-footer a.icon-only,.card-header a.icon-only{display:flex;justify-content:center;align-items:center;margin:0}.card-header{border-radius:var(--f7-card-border-radius) var(--f7-card-border-radius) 0 0}.card-header:after{content:'';position:absolute;background-color:var(--f7-card-header-border-color);display:block;z-index:15;top:auto;right:auto;bottom:0;left:0;height:1px;width:100%;transform-origin:50% 100%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.card-header.no-hairline:after{display:none!important}.card-footer{border-radius:0 0 var(--f7-card-border-radius) var(--f7-card-border-radius)}.card-footer:before{content:'';position:absolute;background-color:var(--f7-card-footer-border-color);display:block;z-index:15;top:0;right:auto;bottom:auto;left:0;height:1px;width:100%;transform-origin:50% 0%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.card-footer.no-hairline:before{display:none!important}.card-expandable{overflow:hidden;height:300px;background:var(--f7-card-expandable-bg-color);position:relative;transform-origin:center center;transition-property:transform,border-radius;border-radius:var(--f7-card-expandable-border-radius);z-index:2;transition-duration:.2s;margin-left:calc(var(--f7-card-expandable-margin-horizontal) + var(--f7-safe-area-left));margin-right:calc(var(--f7-card-expandable-margin-horizontal) + var(--f7-safe-area-right));margin-top:var(--f7-card-expandable-margin-vertical);margin-bottom:var(--f7-card-expandable-margin-vertical);box-shadow:var(--f7-card-expandable-box-shadow);font-size:var(--f7-card-expandable-font-size)}.card-expandable:not(.card-opened){-webkit-user-select:none;-moz-user-select:none;user-select:none}.card-expandable.card-no-transition{transition-duration:0s}.card-expandable.card-expandable-animate-width .card-content{transition-property:width,transform;width:100%}.card-expandable.active-state{transform:scale(.97) translate3d(0,0,0)}.card-expandable .card-opened-fade-in,.card-expandable .card-opened-fade-out{transition-duration:.4s}.card-expandable .card-opened-fade-in{opacity:0;pointer-events:none}.card-expandable .card-content{position:absolute;top:0;width:100vw;height:100vh;transform-origin:center top;overflow:hidden;transition-property:transform;box-sizing:border-box;pointer-events:none;left:0}.card-expandable .card-content .card-content-padding{padding-left:calc(var(--f7-safe-area-left) + var(--f7-card-content-padding-horizontal));padding-right:calc(var(--f7-safe-area-right) + var(--f7-card-content-padding-horizontal))}.card-expandable.card-opened{transition-duration:0s}.card-expandable.card-closing,.card-expandable.card-opening,.card-expandable.card-transitioning{transition-duration:.4s}.card-expandable.card-opening .card-content{transition-duration:.3s}.card-expandable.card-closing .card-content{transition-duration:.5s}.card-expandable.card-closing,.card-expandable.card-opened,.card-expandable.card-opening{z-index:300}.card-expandable.card-opened,.card-expandable.card-opening{border-radius:0}.card-expandable.card-opened .card-opened-fade-in,.card-expandable.card-opening .card-opened-fade-in{opacity:1;pointer-events:auto}.card-expandable.card-opened .card-opened-fade-out,.card-expandable.card-opening .card-opened-fade-out{opacity:0;pointer-events:none}.card-expandable.card-opened .card-content{overflow:auto;-webkit-overflow-scrolling:touch;pointer-events:auto}.card-expandable .card-header{font-size:var(--f7-card-expandable-header-font-size);font-weight:var(--f7-card-expandable-header-font-weight)}.card-expandable .card-header:after{display:none!important}.card-prevent-open{pointer-events:auto}.card-expandable-size{width:0;height:0;position:absolute;left:0;top:0;opacity:0;pointer-events:none;visibility:hidden}@media (min-width:768px) and (min-height:670px){.card-expandable:not(.card-tablet-fullscreen){max-width:var(--f7-card-expandable-tablet-width)}.card-expandable:not(.card-tablet-fullscreen).card-opened,.card-expandable:not(.card-tablet-fullscreen).card-opening{border-radius:var(--f7-card-expandable-tablet-border-radius)}.card-expandable:not(.card-tablet-fullscreen):not(.card-expandable-animate-width) .card-content{width:var(--f7-card-expandable-tablet-width)}.card-expandable:not(.card-tablet-fullscreen) .card-expandable-size{width:var(--f7-card-expandable-tablet-width);height:var(--f7-card-expandable-tablet-height)}}.page.page-with-card-opened .page-content{overflow:hidden}.card-backdrop{position:fixed;left:0;top:0;width:100%;height:100%;z-index:299;pointer-events:none;background:rgba(0,0,0,.2);opacity:0}.card-backdrop-in{animation:card-backdrop-fade-in .4s forwards;pointer-events:auto}.card-backdrop-out{animation:card-backdrop-fade-out .4s forwards}@supports ((-webkit-backdrop-filter:blur(15px)) or (backdrop-filter:blur(15px))){.card-backdrop{background:0 0;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px)}}@keyframes card-backdrop-fade-in{from{opacity:0}to{opacity:1}}@keyframes card-backdrop-fade-out{from{opacity:1}to{opacity:0}}:root{--f7-chip-font-size:13px;--f7-chip-font-weight:normal;--f7-chip-media-font-size:16px;--f7-chip-bg-color:rgba(0, 0, 0, 0.12);--f7-chip-outline-border-color:rgba(0, 0, 0, 0.12);--f7-chip-delete-button-color:#000}:root .theme-dark,:root.theme-dark{--f7-chip-delete-button-color:#fff;--f7-chip-bg-color:#333;--f7-chip-outline-border-color:rgba(255, 255, 255, 0.12)}.ios{--f7-chip-height:24px;--f7-chip-padding-horizontal:10px;--f7-chip-text-color:#000}.ios .theme-dark,.ios.theme-dark{--f7-chip-text-color:#fff}.md{--f7-chip-height:32px;--f7-chip-padding-horizontal:12px;--f7-chip-text-color:rgba(0, 0, 0, 0.87)}.md .theme-dark,.md.theme-dark{--f7-chip-text-color:rgba(255, 255, 255, 0.87)}.aurora{--f7-chip-height:20px;--f7-chip-padding-horizontal:10px;--f7-chip-font-size:12px;--f7-chip-media-font-size:14px;--f7-chip-text-color:#000}.aurora .theme-dark,.aurora.theme-dark{--f7-chip-text-color:#fff}.chip{padding-left:var(--f7-chip-padding-horizontal);padding-right:var(--f7-chip-padding-horizontal);font-weight:var(--f7-chip-font-weight);display:inline-flex;box-sizing:border-box;vertical-align:middle;align-items:center;margin:2px 0;background-color:var(--f7-chip-bg-color);font-size:var(--f7-chip-font-size);color:var(--f7-chip-text-color);height:var(--f7-chip-height);line-height:var(--f7-chip-height);border-radius:var(--f7-chip-height);position:relative}.chip-media{border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;height:var(--f7-chip-height);width:var(--f7-chip-height);border-radius:var(--f7-chip-height);text-align:center;line-height:var(--f7-chip-height);box-sizing:border-box;color:#fff;font-size:var(--f7-chip-media-font-size);vertical-align:middle;margin-left:calc(-1 * var(--f7-chip-padding-horizontal))}.chip-media i.icon{font-size:calc(var(--f7-chip-height) - 8px);height:calc(var(--f7-chip-height) - 8px)}.chip-media img{max-width:100%;max-height:100%;width:auto;height:auto;border-radius:50%;display:block}.chip-media+.chip-label{margin-left:4px}.chip-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;position:relative;flex-shrink:1;min-width:0}.chip-delete{text-align:center;cursor:pointer;flex-shrink:0;background-repeat:no-repeat;width:24px;height:24px;color:var(--f7-chip-delete-button-color);opacity:.54;position:relative}.chip-delete:after{font-family:framework7-core-icons;font-weight:400;font-style:normal;line-height:1;letter-spacing:normal;text-transform:none;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;font-feature-settings:"liga";text-align:center;display:block;width:100%;height:100%;font-size:20px;content:'delete_round_ios';line-height:24px}.chip .chip-delete.active-state{opacity:1}.aurora .chip-outline-aurora,.chip-outline,.ios .chip-outline-ios,.md .chip-outline-md{border:1px solid var(--f7-chip-outline-border-color);background:0 0}.chip[class*=color-]{--f7-chip-bg-color:var(--f7-theme-color);--f7-chip-text-color:#fff}.aurora .chip-outline-aurora[class*=color-],.chip-outline[class*=color-],.ios .chip-outline-ios[class*=color-],.md .chip-outline-md[class*=color-]{--f7-chip-outline-border-color:var(--f7-theme-color);--f7-chip-text-color:var(--f7-theme-color)}.ios .chip-delete{margin-right:calc(-1 * var(--f7-chip-padding-horizontal))}.ios .chip-delete:after{font-size:10px}.md .chip-label+.chip-delete{margin-left:4px}.md .chip-delete{margin-right:calc(-1 * var(--f7-chip-padding-horizontal) + 4px)}.md .chip-delete:after{font-size:12px}.aurora .chip-delete{margin-right:calc(-1 * var(--f7-chip-padding-horizontal))}.aurora .chip-delete:after{font-size:10px}:root{--f7-input-bg-color:transparent;--f7-label-font-weight:400;--f7-label-line-height:1.3;--f7-input-padding-left:0px;--f7-input-padding-right:0px;--f7-input-error-text-color:#ff3b30;--f7-input-error-font-size:12px;--f7-input-error-line-height:1.4;--f7-input-error-font-weight:400;--f7-input-info-font-size:12px;--f7-input-info-line-height:1.4;--f7-input-outline-height:40px;--f7-input-outline-border-radius:4px;--f7-input-outline-padding-horizontal:12px;--f7-textarea-height:100px;--f7-input-outline-border-color:#999}:root .theme-dark,:root.theme-dark{--f7-input-outline-border-color:#444}.ios{--f7-input-height:44px;--f7-input-font-size:17px;--f7-input-placeholder-color:#a9a9a9;--f7-textarea-padding-vertical:11px;--f7-label-font-size:12px;--f7-label-text-color:inherit;--f7-floating-label-scale:calc(17 / 12);--f7-inline-label-font-size:17px;--f7-inline-label-line-height:1.4;--f7-inline-label-padding-top:3px;--f7-input-clear-button-size:14px;--f7-input-text-color:#000000;--f7-input-info-text-color:rgba(0, 0, 0, 0.45);--f7-input-clear-button-color:rgba(0, 0, 0, 0.45)}.ios .theme-dark,.ios.theme-dark{--f7-input-text-color:#fff;--f7-input-info-text-color:rgba(255, 255, 255, 0.55);--f7-input-clear-button-color:rgba(255, 255, 255, 0.5)}.md{--f7-input-height:36px;--f7-input-font-size:16px;--f7-textarea-padding-vertical:7px;--f7-label-font-size:12px;--f7-floating-label-scale:calc(16 / 12);--f7-inline-label-font-size:16px;--f7-inline-label-line-height:1.5;--f7-inline-label-padding-top:7px;--f7-input-clear-button-size:18px;--f7-input-clear-button-color:#aaa;--f7-input-text-color:#212121;--f7-input-placeholder-color:rgba(0, 0, 0, 0.35);--f7-label-text-color:rgba(0, 0, 0, 0.65);--f7-input-info-text-color:rgba(0, 0, 0, 0.45)}.md .theme-dark,.md.theme-dark{--f7-input-text-color:rgba(255, 255, 255, 0.87);--f7-input-placeholder-color:rgba(255, 255, 255, 0.35);--f7-label-text-color:rgba(255, 255, 255, 0.54);--f7-input-info-text-color:rgba(255, 255, 255, 0.45)}.aurora{--f7-input-height:24px;--f7-input-font-size:13px;--f7-textarea-padding-vertical:2px;--f7-label-font-size:11px;--f7-label-text-color:inherit;--f7-floating-label-scale:calc(13 / 11);--f7-inline-label-font-size:14px;--f7-inline-label-line-height:1.4;--f7-inline-label-padding-top:1px;--f7-input-clear-button-size:14px;--f7-input-outline-height:32px;--f7-input-outline-padding-horizontal:8px;--f7-input-text-color:#000000;--f7-input-placeholder-color:rgba(0, 0, 0, 0.32);--f7-input-clear-button-color:#666;--f7-input-info-text-color:rgba(0, 0, 0, 0.5)}.aurora .theme-dark,.aurora.theme-dark{--f7-input-text-color:#fff;--f7-input-clear-button-color:#aaa;--f7-input-placeholder-color:rgba(255, 255, 255, 0.35);--f7-input-info-text-color:rgba(255, 255, 255, 0.45)}input[type=date],input[type=datetime-local],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],select,textarea{box-sizing:border-box;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;box-shadow:none;border-radius:0;outline:0;display:block;padding:0;margin:0;font-family:inherit;background:0 0;resize:none;font-size:inherit;color:inherit}.textarea-resizable-shadow{opacity:0;position:absolute;z-index:-1000;pointer-events:none;left:-1000px;top:-1000px;visibility:hidden}.list input[type=date],.list input[type=datetime-local],.list input[type=email],.list input[type=month],.list input[type=number],.list input[type=password],.list input[type=search],.list input[type=tel],.list input[type=text],.list input[type=time],.list input[type=url],.list select{width:100%;height:var(--f7-input-height);color:var(--f7-input-text-color);font-size:var(--f7-input-font-size);background-color:var(--f7-input-bg-color,transparent);padding-left:var(--f7-input-padding-left);padding-right:var(--f7-input-padding-right)}.list input[type=date]::-webkit-input-placeholder,.list input[type=datetime-local]::-webkit-input-placeholder,.list input[type=email]::-webkit-input-placeholder,.list input[type=month]::-webkit-input-placeholder,.list input[type=number]::-webkit-input-placeholder,.list input[type=password]::-webkit-input-placeholder,.list input[type=search]::-webkit-input-placeholder,.list input[type=tel]::-webkit-input-placeholder,.list input[type=text]::-webkit-input-placeholder,.list input[type=time]::-webkit-input-placeholder,.list input[type=url]::-webkit-input-placeholder,.list select::-webkit-input-placeholder{color:var(--f7-input-placeholder-color)}.list input[type=date]::placeholder,.list input[type=datetime-local]::placeholder,.list input[type=email]::placeholder,.list input[type=month]::placeholder,.list input[type=number]::placeholder,.list input[type=password]::placeholder,.list input[type=search]::placeholder,.list input[type=tel]::placeholder,.list input[type=text]::placeholder,.list input[type=time]::placeholder,.list input[type=url]::placeholder,.list select::placeholder{color:var(--f7-input-placeholder-color)}.list textarea{width:100%;color:var(--f7-input-text-color);font-size:var(--f7-input-font-size);resize:none;line-height:1.4;height:var(--f7-textarea-height);background-color:var(--f7-input-bg-color,transparent);padding-top:var(--f7-textarea-padding-vertical);padding-bottom:var(--f7-textarea-padding-vertical);padding-left:var(--f7-input-padding-left);padding-right:var(--f7-input-padding-right)}.list textarea::-webkit-input-placeholder{color:var(--f7-input-placeholder-color)}.list textarea::placeholder{color:var(--f7-input-placeholder-color)}.list textarea.resizable{height:var(--f7-input-height)}.list input[type=datetime-local]{max-width:50vw}.list input[type=date],.list input[type=datetime-local],.list input[type=month],.list input[type=time]{line-height:var(--f7-input-height)}.list .item-floating-label,.list .item-label{width:100%;vertical-align:top;flex-shrink:0;font-size:var(--f7-label-font-size);font-weight:var(--f7-label-font-weight);line-height:var(--f7-label-line-height);color:var(--f7-label-text-color);transition-duration:.2s;transition-property:transform,color}.list .item-floating-label{--label-height:calc(var(--f7-label-font-size) * var(--f7-label-line-height));transform:scale(var(--f7-floating-label-scale)) translateY(calc((var(--f7-input-height)/ 2 + 50%)/ var(--f7-floating-label-scale)));color:var(--f7-input-placeholder-color);width:auto;max-width:calc(100% / var(--f7-floating-label-scale));pointer-events:none;left:var(--f7-input-padding-left);transform-origin:left center}.list .item-floating-label~.item-input-wrap input::-webkit-input-placeholder,.list .item-floating-label~.item-input-wrap textarea::-webkit-input-placeholder{opacity:0;transition-duration:.1s}.list .item-floating-label~.item-input-wrap input::placeholder,.list .item-floating-label~.item-input-wrap textarea::placeholder{opacity:0;transition-duration:.1s}.list .item-floating-label~.item-input-wrap input.input-focused::-webkit-input-placeholder,.list .item-floating-label~.item-input-wrap textarea.input-focused::-webkit-input-placeholder{opacity:1;transition-duration:.3s}.list .item-floating-label~.item-input-wrap input.input-focused::placeholder,.list .item-floating-label~.item-input-wrap textarea.input-focused::placeholder{opacity:1;transition-duration:.3s}.list .item-input-with-value .item-floating-label{color:var(--f7-label-text-color)}.list .item-input-focused .item-floating-label,.list .item-input-with-value .item-floating-label{transform:scale(1) translateY(0)}.list .item-input-wrap{width:100%;flex-shrink:1;position:relative}.item-input .item-inner{display:flex;flex-direction:column;align-items:flex-start}.input-error-message,.item-input-error-message{font-size:var(--f7-input-error-font-size);line-height:var(--f7-input-error-line-height);color:var(--f7-input-error-text-color);font-weight:var(--f7-input-error-font-weight);display:none;box-sizing:border-box}.input-info,.item-input-info{font-size:var(--f7-input-info-font-size);line-height:var(--f7-input-info-line-height);color:var(--f7-input-info-text-color)}.input-invalid .input-error-message,.input-invalid .item-input-error-message,.item-input-invalid .input-error-message,.item-input-invalid .item-input-error-message{display:block}.input-invalid .input-info,.input-invalid .item-input-info,.item-input-invalid .input-info,.item-input-invalid .item-input-info{display:none}.inline-label .item-inner,.inline-labels .item-inner{display:flex;align-items:center;flex-direction:row}.inline-label .item-floating-label,.inline-label .item-label,.inline-labels .item-floating-label,.inline-labels .item-label{padding-top:var(--f7-inline-label-padding-top);align-self:flex-start;width:35%;font-size:var(--f7-inline-label-font-size);line-height:var(--f7-inline-label-line-height)}.inline-label .item-floating-label+.item-input-wrap,.inline-label .item-label+.item-input-wrap,.inline-labels .item-floating-label+.item-input-wrap,.inline-labels .item-label+.item-input-wrap{margin-left:8px}.input{position:relative}.input input,.input select,.input textarea{width:100%}.input-clear-button{opacity:0;pointer-events:none;visibility:hidden;transition-duration:.1s;position:absolute;top:50%;border:none;padding:0;margin:0;outline:0;z-index:1;cursor:pointer;background:0 0;width:var(--f7-input-clear-button-size);height:var(--f7-input-clear-button-size);margin-top:calc(-1 * var(--f7-input-clear-button-size)/ 2);color:var(--f7-input-clear-button-color);right:0}.input-clear-button:after{font-family:framework7-core-icons;font-weight:400;font-style:normal;line-height:1;letter-spacing:normal;text-transform:none;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;font-feature-settings:"liga";text-align:center;display:block;width:100%;height:100%;font-size:20px}.input-clear-button:before{position:absolute;content:'';left:50%;top:50%}.item-input-wrap .input-clear-button{top:calc(var(--f7-input-height)/ 2)}.input-clear-button.active-state{opacity:.75!important}.input-with-value .input-clear-button,.input-with-value~.input-clear-button,.item-input-with-value .input-clear-button{opacity:1;pointer-events:auto;visibility:visible}.input-dropdown,.input-dropdown-wrap{position:relative}.input-dropdown-wrap:before,.input-dropdown:before{content:'';pointer-events:none;position:absolute;top:50%;margin-top:-2px;width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid #727272;right:6px}.input-dropdown input,.input-dropdown select,.input-dropdown textarea,.input-dropdown-wrap input,.input-dropdown-wrap select,.input-dropdown-wrap textarea{padding-right:calc(20px + var(--f7-input-padding-right))}.input-outline:after,.item-input-outline .item-input-wrap:after{content:'';position:absolute;left:0;top:0;width:100%;height:100%;box-sizing:border-box;border:1px solid var(--f7-input-outline-border-color);border-radius:var(--f7-input-outline-border-radius);transition-duration:.2s;pointer-events:none}.input-outline.input-focused:after,.item-input-outline.item-input-focused .item-input-wrap:after{border-width:2px;border-color:var(--f7-input-outline-focused-border-color,var(--f7-theme-color))}.input-outline.input-invalid:after,.item-input-outline.item-input-invalid .item-input-wrap:after{border-width:2px;border-color:var(--f7-input-outline-invalid-border-color,var(--f7-input-error-text-color))}.input-outline input,.input-outline select,.input-outline textarea,.item-input-outline input,.item-input-outline select,.item-input-outline textarea,.list .item-input-outline input,.list .item-input-outline select,.list .item-input-outline textarea{border-radius:var(--f7-input-outline-border-radius);padding-left:var(--f7-input-outline-padding-horizontal);padding-right:var(--f7-input-outline-padding-horizontal)}.input-outline.input-dropdown:before,.item-input-outline .input-dropdown-wrap:before{right:8px}.input-outline.input-dropdown input,.input-outline.input-dropdown select,.input-outline.input-dropdown textarea,.item-input-outline .input-dropdown-wrap input,.item-input-outline .input-dropdown-wrap select,.item-input-outline .input-dropdown-wrap textarea{padding-right:20px}.input-outline .input-clear-button,.item-input-outline .input-clear-button{right:8px}.item-input-outline{--f7-input-height:var(--f7-input-outline-height)}.item-input-outline .item-inner:after{display:none!important}.item-input-outline .item-label{left:var(--f7-input-outline-padding-horizontal)}.inline-label .item-input-outline .item-label,.inline-labels .item-input-outline .item-label,.item-input-outline .inline-label .item-label,.item-input-outline .inline-label.item-label{left:0}.item-input-outline .item-floating-label{left:calc(var(--f7-input-outline-padding-horizontal) - 4px);padding-left:4px;padding-right:4px;background:var(--f7-page-bg-color);z-index:10;margin-top:calc(-.5 * (var(--f7-label-font-size) * var(--f7-label-line-height)))}.item-input-outline.item-input-focused .item-floating-label,.item-input-outline.item-input-with-value .item-floating-label{transform:scale(1) translateY(50%)}.item-input-outline .item-input-error-message,.item-input-outline .item-input-info{padding-left:var(--f7-input-outline-padding-horizontal)}.block-strong .item-input-outline .item-floating-label{background:var(--f7-block-strong-bg-color)}.list .item-input-outline .item-floating-label{background:var(--f7-list-bg-color)}.theme-dark option{background-color:var(--f7-page-bg-color)}.ios .item-floating-label+.item-input-wrap,.ios .item-label+.item-input-wrap{margin-top:0}.ios .item-input-focused .item-floating-label{color:var(--f7-label-text-color)}.ios .item-input .item-media{align-self:flex-start}.ios .item-input-wrap{margin-top:calc(-1 * var(--f7-list-item-padding-vertical));margin-bottom:calc(-1 * var(--f7-list-item-padding-vertical))}.ios .inline-label .item-floating-label+.item-input-wrap,.ios .inline-label .item-label+.item-input-wrap,.ios .inline-labels .item-floating-label+.item-input-wrap,.ios .inline-labels .item-label+.item-input-wrap{margin-top:calc(-1 * var(--f7-list-item-padding-vertical))}.ios .inline-label .item-input-wrap,.ios .inline-labels .item-input-wrap{margin-top:calc(-1 * var(--f7-list-item-padding-vertical))}.ios .input-error-message,.ios .input-info,.ios .item-input-error-message,.ios .item-input-info{position:relative;margin-bottom:6px;margin-top:-8px}.ios .item-input-focused .item-floating-label,.ios .item-input-focused .item-label{color:var(--f7-label-focused-text-color,var(--f7-label-text-color))}.ios .item-input-focused .item-inner:after{background:var(--f7-input-focused-border-color,var(--f7-list-item-border-color))}.ios .item-input-invalid .item-floating-label,.ios .item-input-invalid .item-label{color:var(--f7-label-invalid-text-color,var(--f7-label-text-color))}.ios .item-input-invalid .item-inner:after{background:var(--f7-input-invalid-border-color,var(--f7-list-item-border-color))}.ios .input-invalid input,.ios .input-invalid select,.ios .input-invalid textarea,.ios .item-input-invalid input,.ios .item-input-invalid select,.ios .item-input-invalid textarea{color:var(--f7-input-invalid-text-color,var(--f7-input-error-text-color))}.ios .input-clear-button:after{content:'delete_round_ios';font-size:calc(var(--f7-input-clear-button-size)/ (14 / 10));line-height:1.4}.ios .input-clear-button:before{width:44px;height:44px;margin-left:-22px;margin-top:-22px}.ios .input-outline .item-input-wrap,.ios .item-input-outline .item-input-wrap{margin-top:0;margin-bottom:0}.ios .input-outline .input-error-message,.ios .input-outline .input-info,.ios .input-outline .item-input-error-message,.ios .input-outline .item-input-info,.ios .item-input-outline .input-error-message,.ios .item-input-outline .input-info,.ios .item-input-outline .item-input-error-message,.ios .item-input-outline .item-input-info{margin-top:0;white-space:normal;overflow:hidden;text-overflow:ellipsis}.ios .input-outline .input-info,.ios .input-outline .item-input-info,.ios .item-input-outline .input-info,.ios .item-input-outline .item-input-info{margin-bottom:calc(-1 * var(--f7-input-info-font-size) * var(--f7-input-info-line-height))}.ios .input-outline .input-error-message,.ios .input-outline .item-input-error-message,.ios .item-input-outline .input-error-message,.ios .item-input-outline .item-input-error-message{margin-bottom:calc(-1 * var(--f7-input-error-font-size) * var(--f7-input-error-line-height))}.ios .input-outline.input-with-info .item-input-wrap,.ios .input-outline.item-input-with-info .item-input-wrap,.ios .item-input-outline.input-with-info .item-input-wrap,.ios .item-input-outline.item-input-with-info .item-input-wrap{margin-bottom:calc(var(--f7-input-info-font-size) * var(--f7-input-info-line-height))}.ios .input-outline.input-with-error-message .item-input-wrap,.ios .input-outline.item-input-with-error-message .item-input-wrap,.ios .item-input-outline.input-with-error-message .item-input-wrap,.ios .item-input-outline.item-input-with-error-message .item-input-wrap{margin-bottom:calc(var(--f7-input-error-font-size) * var(--f7-input-error-line-height))}.md .input:not(.input-outline):after,.md .item-input:not(.item-input-outline) .item-input-wrap:after{content:'';position:absolute;background-color:var(--f7-list-item-border-color);display:block;z-index:15;top:auto;right:auto;bottom:0;left:0;height:1px;width:100%;transform-origin:50% 100%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.md .input:not(.input-outline):after,.md .item-input:not(.item-input-outline) .item-input-wrap:after{transition-duration:.2s}.md .item-input-wrap{min-height:var(--f7-input-height)}.md .item-input .item-media{align-self:flex-end}.md .item-input .item-inner:after{display:none!important}.md .inline-label .item-media,.md .inline-labels .item-media{align-self:flex-start;padding-top:14px}.md .input-with-error-message,.md .input-with-info,.md .item-input-with-error-message,.md .item-input-with-info{padding-bottom:20px}.md .input-error-message,.md .input-info,.md .item-input-error-message,.md .item-input-info{position:absolute;top:100%;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:100%;left:0}.md .item-input-focused .item-floating-label,.md .item-input-focused .item-label{color:var(--f7-label-focused-text-color,var(--f7-theme-color))}.md .input-focused:not(.input-outline):after,.md .item-input-focused:not(.item-input-outline) .item-input-wrap:after{background:var(--f7-input-focused-border-color,var(--f7-theme-color))}.md .input-focused:not(.input-outline):after,.md .input-invalid:not(.input-outline):after,.md .item-input-focused:not(.item-input-outline) .item-input-wrap:after,.md .item-input-invalid:not(.item-input-outline) .item-input-wrap:after{transform:scaleY(2)!important}.md .input-invalid:not(.input-outline):after,.md .item-input-invalid:not(.item-input-outline) .item-input-wrap:after{background:var(--f7-input-invalid-border-color,var(--f7-input-error-text-color))}.md .item-input-invalid .item-floating-label,.md .item-input-invalid .item-label{color:var(--f7-label-invalid-text-color,var(--f7-input-error-text-color))}.md .input-invalid input,.md .input-invalid select,.md .input-invalid textarea,.md .item-input-invalid input,.md .item-input-invalid select,.md .item-input-invalid textarea{color:var(--f7-input-invalid-text-color,var(--f7-input-text-color))}.md .input-clear-button:after{font-size:calc(var(--f7-input-clear-button-size)/ (24 / 20));content:'delete_round_md';line-height:1.2}.md .input-clear-button:before{width:48px;height:48px;margin-left:-24px;margin-top:-24px}.aurora .item-floating-label+.item-input-wrap,.aurora .item-label+.item-input-wrap{margin-top:0}.aurora .item-input-focused .item-floating-label{color:var(--f7-label-text-color)}.aurora .item-input .item-media{align-self:flex-start}.aurora .input-error-message,.aurora .input-info,.aurora .item-input-error-message,.aurora .item-input-info{position:relative}.aurora .item-input-focused .item-floating-label,.aurora .item-input-focused .item-label{color:var(--f7-label-focused-text-color,var(--f7-label-text-color))}.aurora .item-input-focused .item-inner:after{background:var(--f7-input-focused-border-color,var(--f7-list-item-border-color))}.aurora .item-input-invalid .item-floating-label,.aurora .item-input-invalid .item-label{color:var(--f7-label-invalid-text-color,var(--f7-label-text-color))}.aurora .item-input-invalid .item-inner:after{background:var(--f7-input-invalid-border-color,var(--f7-list-item-border-color))}.aurora .input-invalid input,.aurora .input-invalid select,.aurora .input-invalid textarea,.aurora .item-input-invalid input,.aurora .item-input-invalid select,.aurora .item-input-invalid textarea{color:var(--f7-input-invalid-text-color,var(--f7-input-error-text-color))}.aurora .input-clear-button:after{content:'delete_round_ios';font-size:calc(var(--f7-input-clear-button-size)/ (14 / 10));line-height:1.4}.aurora .input-clear-button:before{width:28px;height:28px;margin-left:-14px;margin-top:-14px}.aurora .input-outline .item-input-wrap,.aurora .item-input-outline .item-input-wrap{margin-top:0;margin-bottom:0}.aurora .input-outline .input-error-message,.aurora .input-outline .input-info,.aurora .input-outline .item-input-error-message,.aurora .input-outline .item-input-info,.aurora .item-input-outline .input-error-message,.aurora .item-input-outline .input-info,.aurora .item-input-outline .item-input-error-message,.aurora .item-input-outline .item-input-info{margin-top:0;white-space:normal;overflow:hidden;text-overflow:ellipsis}.aurora .input-outline .input-info,.aurora .input-outline .item-input-info,.aurora .item-input-outline .input-info,.aurora .item-input-outline .item-input-info{margin-bottom:calc(-1 * var(--f7-input-info-font-size) * var(--f7-input-info-line-height))}.aurora .input-outline .input-error-message,.aurora .input-outline .item-input-error-message,.aurora .item-input-outline .input-error-message,.aurora .item-input-outline .item-input-error-message{margin-bottom:calc(-1 * var(--f7-input-error-font-size) * var(--f7-input-error-line-height))}.aurora .input-outline.input-with-info .item-input-wrap,.aurora .input-outline.item-input-with-info .item-input-wrap,.aurora .item-input-outline.input-with-info .item-input-wrap,.aurora .item-input-outline.item-input-with-info .item-input-wrap{margin-bottom:calc(var(--f7-input-info-font-size) * var(--f7-input-info-line-height))}.aurora .input-outline.input-with-error-message .item-input-wrap,.aurora .input-outline.item-input-with-error-message .item-input-wrap,.aurora .item-input-outline.input-with-error-message .item-input-wrap,.aurora .item-input-outline.item-input-with-error-message .item-input-wrap{margin-bottom:calc(var(--f7-input-error-font-size) * var(--f7-input-error-line-height))}:root{--f7-checkbox-icon-color:#fff}:root .theme-dark,:root.theme-dark{--f7-checkbox-inactive-color:rgba(255, 255, 255, 0.3)}.ios{--f7-checkbox-size:22px;--f7-checkbox-border-radius:50%;--f7-checkbox-border-width:1px;--f7-checkbox-extra-margin:0px;--f7-checkbox-inactive-color:#c7c7cc}.md{--f7-checkbox-size:18px;--f7-checkbox-border-radius:2px;--f7-checkbox-border-width:2px;--f7-checkbox-extra-margin:22px;--f7-checkbox-inactive-color:#6d6d6d}.aurora{--f7-checkbox-size:14px;--f7-checkbox-border-radius:2px;--f7-checkbox-border-width:1px;--f7-checkbox-extra-margin:0px;--f7-checkbox-inactive-color:#888}.checkbox{position:relative;display:inline-block;vertical-align:middle;z-index:1;background-color:transparent;--f7-touch-ripple-color:rgba(var(--f7-theme-color-rgb), 0.5)}.checkbox i,.icon-checkbox{flex-shrink:0;border:var(--f7-checkbox-border-width) solid var(--f7-checkbox-inactive-color);width:var(--f7-checkbox-size);height:var(--f7-checkbox-size);border-radius:var(--f7-checkbox-border-radius);box-sizing:border-box;position:relative;display:block}.checkbox i:after,.icon-checkbox:after{font-family:framework7-core-icons;font-weight:400;font-style:normal;line-height:1;letter-spacing:normal;text-transform:none;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;font-feature-settings:"liga";text-align:center;display:block;width:100%;height:100%;font-size:20px;width:var(--f7-checkbox-size);height:var(--f7-checkbox-size);line-height:var(--f7-checkbox-size);top:calc(0px - var(--f7-checkbox-border-width));opacity:0;color:var(--f7-checkbox-icon-color);position:relative;transition-property:opacity;left:calc(0px - var(--f7-checkbox-border-width))}.checkbox input[type=checkbox]:not(:checked)~i:after,label.item-checkbox input[type=checkbox]:not(:checked)~* .icon-checkbox:after,label.item-checkbox input[type=checkbox]:not(:checked)~.icon-checkbox:after{font-size:0}.checkbox input[type=checkbox]:checked~i,.checkbox input[type=checkbox]:indeterminate~i,label.item-checkbox input[type=checkbox]:checked~* .icon-checkbox,label.item-checkbox input[type=checkbox]:checked~.icon-checkbox,label.item-checkbox input[type=checkbox]:indeterminate~* .icon-checkbox,label.item-checkbox input[type=checkbox]:indeterminate~.icon-checkbox{border-color:var(--f7-checkbox-active-color,var(--f7-theme-color));background-color:var(--f7-checkbox-active-color,var(--f7-theme-color))}.checkbox input[type=checkbox]:checked~i:after,.checkbox input[type=checkbox]:indeterminate~i:after,label.item-checkbox input[type=checkbox]:checked~* .icon-checkbox:after,label.item-checkbox input[type=checkbox]:checked~.icon-checkbox:after,label.item-checkbox input[type=checkbox]:indeterminate~* .icon-checkbox:after,label.item-checkbox input[type=checkbox]:indeterminate~.icon-checkbox:after{opacity:1}.checkbox input[type=checkbox]:indeterminate~i:after,label.item-checkbox input[type=checkbox]:indeterminate~* .icon-checkbox:after,label.item-checkbox input[type=checkbox]:indeterminate~.icon-checkbox:after{font-size:0;content:'';position:absolute;top:50%;width:70%;background:#fff;height:2px;border-radius:2px;margin-top:-1px;transition:0s;left:15%}.checkbox,label.item-checkbox{cursor:pointer}.checkbox input[type=checkbox],.checkbox input[type=radio],label.item-checkbox input[type=checkbox],label.item-checkbox input[type=radio]{display:none}label.item-checkbox{transition-duration:.3s}label.item-checkbox .item-content .item-media,label.item-checkbox.item-content .item-media{align-self:center}label.item-checkbox>.icon-checkbox{margin-right:calc(var(--f7-list-item-media-margin) + var(--f7-checkbox-extra-margin))}label.item-checkbox.active-state{background-color:var(--f7-list-link-pressed-bg-color)}label.item-checkbox.active-state:after{background-color:transparent}.disabled label.item-checkbox,label.item-checkbox.disabled{opacity:.55;pointer-events:none;opacity:.55!important;pointer-events:none!important}.ios .checkbox i:after,.ios .icon-checkbox:after{content:'checkbox_ios';font-size:21px}.ios label.item-checkbox.active-state{transition-duration:0s}.ios .checkbox input[type=checkbox]:indeterminate~i:after,.ios label.item-checkbox input[type=checkbox]:indeterminate~* .icon-checkbox:after,.ios label.item-checkbox input[type=checkbox]:indeterminate~.icon-checkbox:after{height:1px;margin-top:0px}.md .checkbox i,.md .icon-checkbox{transition-duration:.2s}.md .checkbox i:after,.md .icon-checkbox:after{content:'checkbox_md';transition-duration:.2s;font-size:15px}.md label.item-checkbox{position:relative;overflow:hidden;z-index:0}.aurora .checkbox i,.aurora .icon-checkbox{transition-duration:150ms}.aurora .checkbox i:after,.aurora .icon-checkbox:after{content:'checkbox_aurora';transition-duration:150ms;font-size:19px}.aurora .checkbox i:before,.aurora .icon-checkbox:before{content:'';position:absolute;left:0;top:0;width:100%;height:100%;background:rgba(0,0,0,.1);opacity:0;transition-duration:150ms}.aurora .checkbox.active-state i:before{opacity:1}.aurora label.item-checkbox{position:relative;overflow:hidden;z-index:0}:root{--f7-radio-border-radius:50%}:root .theme-dark,:root.theme-dark{--f7-radio-inactive-color:rgba(255, 255, 255, 0.3)}.ios{--f7-radio-size:22px;--f7-radio-border-width:1px;--f7-radio-extra-margin:0px;--f7-radio-inactive-color:#c7c7cc}.md{--f7-radio-size:20px;--f7-radio-border-width:2px;--f7-radio-extra-margin:22px;--f7-radio-inactive-color:#6d6d6d}.aurora{--f7-radio-size:16px;--f7-radio-border-width:1px;--f7-radio-extra-margin:0px;--f7-radio-inactive-color:#888}.radio{position:relative;display:inline-block;vertical-align:middle;z-index:1;--f7-touch-ripple-color:rgba(var(--f7-theme-color-rgb), 0.5)}.icon-radio{width:var(--f7-radio-size);height:var(--f7-radio-size);border-radius:var(--f7-radio-border-radius);position:relative;box-sizing:border-box;display:block;flex-shrink:0}.aurora .icon-radio,.md .icon-radio,.radio .icon-radio{border:var(--f7-radio-border-width) solid var(--f7-radio-inactive-color)}.radio,label.item-radio{cursor:pointer}.radio input[type=checkbox],.radio input[type=radio],label.item-radio input[type=checkbox],label.item-radio input[type=radio]{display:none}label.item-radio{transition-duration:.3s}label.item-radio .item-content .item-media,label.item-radio.item-content .item-media{align-self:center}label.item-radio.active-state{background-color:var(--f7-list-link-pressed-bg-color)}label.item-radio.active-state:after{background-color:transparent}.disabled label.item-radio,label.item-radio.disabled{opacity:.55;pointer-events:none;opacity:.55!important;pointer-events:none!important}.ios .icon-radio:after{font-family:framework7-core-icons;font-weight:400;font-style:normal;line-height:1;letter-spacing:normal;text-transform:none;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;font-feature-settings:"liga";text-align:center;display:block;width:100%;height:100%;width:calc(var(--f7-radio-size) - var(--f7-radio-border-width) * 2);height:calc(var(--f7-radio-size) - var(--f7-radio-border-width) * 2);line-height:calc(var(--f7-radio-size) - var(--f7-radio-border-width) * 2 + 1px);font-size:20px;content:'radio_ios';color:var(--f7-radio-active-color,var(--f7-theme-color));opacity:0}.ios .radio input[type=radio]:checked~.icon-radio:after,.ios label.item-radio input[type=radio]:checked~* .icon-radio:after,.ios label.item-radio input[type=radio]:checked~.icon-radio:after{opacity:1}.ios .radio input[type=radio]:checked~.icon-radio{border-color:var(--f7-radio-active-color,var(--f7-theme-color))}.ios label.item-radio:not(.item-radio-icon-start) input[type=radio]~.icon-radio{position:absolute;top:50%;margin-top:-11px;right:calc(var(--f7-safe-area-right) + 10px)}.ios label.item-radio:not(.item-radio-icon-start) .item-inner{padding-right:calc(var(--f7-safe-area-right) + 36px)}.ios label.item-radio-icon-start>.icon-radio{margin-right:calc(var(--f7-list-item-media-margin) + var(--f7-checkbox-extra-margin))}.ios label.item-radio.active-state{transition-duration:0s}.md .icon-radio{transition-duration:.2s}.md .icon-radio:after{content:'';position:absolute;width:10px;height:10px;left:50%;top:50%;margin-left:-5px;margin-top:-5px;background-color:var(--f7-radio-active-color,var(--f7-theme-color));border-radius:50%;transform:scale(0);transition-duration:.2s}.md .radio input[type=radio]:checked~.icon-radio,.md label.item-radio input[type=radio]:checked~* .icon-radio,.md label.item-radio input[type=radio]:checked~.icon-radio{border-color:var(--f7-radio-active-color,var(--f7-theme-color))}.md .radio input[type=radio]:checked~.icon-radio:after,.md label.item-radio input[type=radio]:checked~* .icon-radio:after,.md label.item-radio input[type=radio]:checked~.icon-radio:after{background-color:var(--f7-radio-active-color,var(--f7-theme-color));transform:scale(1)}.md label.item-radio{position:relative;overflow:hidden;z-index:0}.md label.item-radio:not(.item-radio-icon-end)>.icon-radio{margin-right:calc(var(--f7-list-item-media-margin) + var(--f7-radio-extra-margin))}.md label.item-radio-icon-end input[type=radio]~.icon-radio{position:absolute;top:50%;margin-top:-10px;right:calc(var(--f7-safe-area-right) + 16px)}.md label.item-radio-icon-end .item-inner{padding-right:calc(var(--f7-safe-area-right) + 52px)}.aurora .icon-radio{transition-duration:150ms;overflow:hidden}.aurora .icon-radio:after{content:'';position:absolute;width:6px;height:6px;left:50%;top:50%;margin-left:-3px;margin-top:-3px;background-color:#fff;border-radius:50%;transform:scale(0);transition-duration:150ms}.aurora .icon-radio:before{content:'';position:absolute;left:0;top:0;width:100%;height:100%;background:rgba(0,0,0,.1);opacity:0;transition-duration:150ms}.aurora .radio.active-state i:before{opacity:1}.aurora .radio input[type=radio]:checked~.icon-radio,.aurora label.item-radio input[type=radio]:checked~* .icon-radio,.aurora label.item-radio input[type=radio]:checked~.icon-radio{border-color:var(--f7-radio-active-color,var(--f7-theme-color));background-color:var(--f7-radio-active-color,var(--f7-theme-color))}.aurora .radio input[type=radio]:checked~.icon-radio:after,.aurora label.item-radio input[type=radio]:checked~* .icon-radio:after,.aurora label.item-radio input[type=radio]:checked~.icon-radio:after{transform:scale(1)}.aurora label.item-radio{position:relative;overflow:hidden;z-index:0}.aurora label.item-radio:not(.item-radio-icon-end)>.icon-radio{margin-right:calc(var(--f7-list-item-media-margin) + var(--f7-radio-extra-margin))}.aurora label.item-radio-icon-end input[type=radio]~.icon-radio{position:absolute;top:50%;margin-top:-8px;right:calc(var(--f7-safe-area-right) + 16px)}.aurora label.item-radio-icon-end .item-inner{padding-right:calc(var(--f7-safe-area-right) + 48px)}:root{--f7-toggle-handle-color:#fff}:root .theme-dark,:root.theme-dark{--f7-toggle-inactive-color:#555}.ios{--f7-toggle-width:52px;--f7-toggle-height:32px;--f7-toggle-border-color:#e5e5e5;--f7-toggle-inactive-color:#fff}.ios .theme-dark,.ios.theme-dark{--f7-toggle-border-color:#555}.md{--f7-toggle-width:36px;--f7-toggle-height:14px;--f7-toggle-inactive-color:#b0afaf}.aurora{--f7-toggle-width:40px;--f7-toggle-height:20px;--f7-toggle-inactive-color:#aaa}.toggle,.toggle-icon{width:var(--f7-toggle-width);height:var(--f7-toggle-height);border-radius:var(--f7-toggle-height)}.toggle{display:inline-block;vertical-align:middle;position:relative;box-sizing:border-box;align-self:center;-webkit-user-select:none;-moz-user-select:none;user-select:none}.toggle input[type=checkbox]{display:none}.toggle input[disabled]~.toggle-icon{pointer-events:none}.toggle-icon{z-index:0;margin:0;padding:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;position:relative;transition:.3s;box-sizing:border-box;display:block;cursor:pointer}.toggle-icon:after,.toggle-icon:before{content:''}.toggle-icon:after{background:var(--f7-toggle-handle-color);position:absolute;z-index:2;transform:translateX(0px);transition-duration:.3s}.ios .toggle input[type=checkbox]:checked+.toggle-icon{background:var(--f7-toggle-active-color,var(--f7-theme-color))}.ios .toggle input[type=checkbox]:checked+.toggle-icon:before{transform:scale(0)}.ios .toggle input[type=checkbox]:checked+.toggle-icon:after{transform:translateX(calc(var(--f7-toggle-width) - var(--f7-toggle-height)))}.ios .toggle-icon{background:var(--f7-toggle-border-color)}.ios .toggle-icon:before{position:absolute;left:2px;top:2px;width:calc(var(--f7-toggle-width) - 4px);height:calc(var(--f7-toggle-height) - 4px);border-radius:var(--f7-toggle-height);box-sizing:border-box;background:var(--f7-toggle-inactive-color);z-index:1;transition-duration:.3s;transform:scale(1)}.ios .toggle-icon:after{height:calc(var(--f7-toggle-height) - 4px);width:calc(var(--f7-toggle-height) - 4px);top:2px;left:2px;box-shadow:0 2px 4px rgba(0,0,0,.3);border-radius:calc(var(--f7-toggle-height) - 4px)}.ios .toggle-active-state input[type=checkbox]:not(:checked)+.toggle-icon:before{transform:scale(0)}.ios .toggle-active-state input[type=checkbox]+.toggle-icon:after{width:calc(var(--f7-toggle-height) + 4px)}.ios .toggle-active-state input[type=checkbox]:checked+.toggle-icon:after{transform:translateX(calc(var(--f7-toggle-width) - var(--f7-toggle-height) - 8px))}.md .toggle input[type=checkbox]:checked+.toggle-icon{background:var(--f7-toggle-active-color,rgba(var(--f7-theme-color-rgb),.5))}.md .toggle input[type=checkbox]:checked+.toggle-icon:after{transform:translateX(calc(var(--f7-toggle-width) - var(--f7-toggle-height) - 6px));background:var(--f7-toggle-active-color,var(--f7-theme-color))}.md .toggle-icon{background:var(--f7-toggle-inactive-color)}.md .toggle-icon:after{height:calc(var(--f7-toggle-height) + 6px);width:calc(var(--f7-toggle-height) + 6px);top:-3px;box-shadow:0 2px 5px rgba(0,0,0,.4);border-radius:var(--f7-toggle-height);left:0}.aurora .toggle input[type=checkbox]:checked+.toggle-icon{background:var(--f7-toggle-active-color,var(--f7-theme-color))}.aurora .toggle input[type=checkbox]:checked+.toggle-icon:after{transform:translateX(calc(var(--f7-toggle-width) - var(--f7-toggle-height)))}.aurora .toggle-icon{background:var(--f7-toggle-inactive-color)}.aurora .toggle-icon:after{height:calc(var(--f7-toggle-height) - 4px);width:calc(var(--f7-toggle-height) - 4px);top:2px;left:2px;border-radius:calc(var(--f7-toggle-height) - 4px)}:root{--f7-range-scale-step-height:5px;--f7-range-scale-text-color:#666;--f7-range-scale-substep-width:1px;--f7-range-scale-substep-height:4px}.ios{--f7-range-size:28px;--f7-range-bar-bg-color:#b7b8b7;--f7-range-bar-size:1px;--f7-range-bar-border-radius:2px;--f7-range-knob-size:28px;--f7-range-knob-color:#fff;--f7-range-knob-box-shadow:0 2px 4px rgba(0, 0, 0, 0.3);--f7-range-label-size:20px;--f7-range-label-text-color:#000;--f7-range-label-bg-color:#fff;--f7-range-label-font-size:12px;--f7-range-label-font-weight:normal;--f7-range-label-border-radius:5px;--f7-range-label-padding:0px;--f7-range-scale-step-width:1px;--f7-range-scale-font-size:12px;--f7-range-scale-font-weight:400;--f7-range-scale-label-offset:4px}.md{--f7-range-size:20px;--f7-range-bar-bg-color:#b9b9b9;--f7-range-bar-size:2px;--f7-range-bar-border-radius:0px;--f7-range-knob-size:12px;--f7-range-knob-box-shadow:none;--f7-range-label-size:26px;--f7-range-label-font-weight:normal;--f7-range-label-text-color:#fff;--f7-range-label-font-size:10px;--f7-range-label-border-radius:50%;--f7-range-label-padding:0px;--f7-range-scale-step-width:2px;--f7-range-scale-font-size:12px;--f7-range-scale-font-weight:400;--f7-range-scale-label-offset:4px}.aurora{--f7-range-size:20px;--f7-range-bar-bg-color:#c7c7c7;--f7-range-bar-size:2px;--f7-range-bar-border-radius:2px;--f7-range-knob-size:16px;--f7-range-knob-box-shadow:none;--f7-range-label-size:20px;--f7-range-label-text-color:#fff;--f7-range-label-font-size:10px;--f7-range-label-font-weight:600;--f7-range-label-border-radius:4px;--f7-range-label-padding:0px 4px;--f7-range-scale-step-width:2px;--f7-range-scale-font-size:11px;--f7-range-scale-font-weight:500;--f7-range-scale-label-offset:2px}.range-slider{display:block;position:relative;align-self:center;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.range-slider input[type=range]{display:none}.range-slider.range-slider-horizontal{width:100%;height:var(--f7-range-size);touch-action:pan-y}.range-slider.range-slider-vertical{height:100%;width:var(--f7-range-size);touch-action:pan-x}.range-bar{position:absolute;overflow:hidden;background:var(--f7-range-bar-bg-color);border-radius:var(--f7-range-bar-border-radius)}.range-slider-vertical .range-bar{left:50%;top:0;height:100%;width:var(--f7-range-bar-size);margin-left:calc(-1 * var(--f7-range-bar-size)/ 2)}.range-slider-horizontal .range-bar{left:0;top:50%;width:100%;height:var(--f7-range-bar-size);margin-top:calc(-1 * var(--f7-range-bar-size)/ 2)}.range-bar-active{position:absolute;background:var(--f7-range-bar-active-bg-color,var(--f7-theme-color))}.range-slider-horizontal .range-bar-active{left:0;top:0;height:100%}.range-slider-vertical .range-bar-active{left:0;bottom:0;width:100%}.range-slider-vertical-reversed .range-bar-active{top:0;bottom:auto}.range-knob-wrap{z-index:20;position:absolute;height:var(--f7-range-knob-size);width:var(--f7-range-knob-size)}.range-slider-horizontal .range-knob-wrap{top:50%;margin-top:calc(-1 * var(--f7-range-knob-size)/ 2);margin-left:calc(-1 * var(--f7-range-knob-size)/ 2);left:0}.range-slider-vertical .range-knob-wrap{left:50%;margin-left:calc(-1 * var(--f7-range-knob-size)/ 2);bottom:0;margin-bottom:calc(-1 * var(--f7-range-knob-size)/ 2)}.range-slider-vertical-reversed .range-knob-wrap{bottom:auto;top:0;margin-bottom:0;margin-top:calc(-1 * var(--f7-range-knob-size)/ 2)}.range-knob{box-sizing:border-box;border-radius:50%;position:absolute;left:0;top:0;width:100%;height:100%;z-index:1;background:var(--f7-range-knob-color,var(--f7-range-knob-bg-color,var(--f7-theme-color)));box-shadow:var(--f7-range-knob-box-shadow)}.range-knob:after{content:'';position:absolute;left:50%;top:50%;width:44px;height:44px;margin-left:-22px;margin-top:-22px}.range-knob-label{position:absolute;left:50%;bottom:100%;text-align:center;transition-duration:120ms;transition-property:transform;box-sizing:border-box;transform:translateY(100%) scale(0);height:var(--f7-range-label-size);line-height:var(--f7-range-label-size);min-width:var(--f7-range-label-size);color:var(--f7-range-label-text-color);background-color:var(--f7-range-label-bg-color,var(--f7-theme-color));font-size:var(--f7-range-label-font-size);font-weight:var(--f7-range-label-font-weight);border-radius:var(--f7-range-label-border-radius);padding:var(--f7-range-label-padding)}.range-knob-active-state .range-knob-label{transform:translateY(0%) scale(1)}.range-scale{position:absolute}.range-slider-horizontal .range-scale{top:50%;left:0;width:100%;margin-top:calc(var(--f7-range-bar-size)/ 2)}.range-slider-vertical .range-scale{right:50%;top:0;height:100%;margin-right:calc(var(--f7-range-bar-size)/ 2)}.range-scale-step{position:absolute;box-sizing:border-box;display:flex;font-size:var(--f7-range-scale-font-size);font-weight:var(--f7-range-scale-font-weight);color:var(--f7-range-scale-text-color,var(--f7-range-bar-bg-color));line-height:1}.range-scale-step:before{content:'';position:absolute;background:var(--f7-range-scale-step-bg-color,var(--f7-range-bar-bg-color))}.range-slider-horizontal .range-scale-step{justify-content:center;align-items:flex-start;width:var(--f7-range-scale-step-width);height:var(--f7-range-scale-step-height);padding-top:calc(var(--f7-range-scale-step-height) + var(--f7-range-scale-label-offset));top:0;margin-left:calc(-1 * var(--f7-range-scale-step-width)/ 2)}.range-slider-horizontal .range-scale-step:before{left:0;top:0;width:100%;height:var(--f7-range-scale-step-height)}.range-slider-horizontal .range-scale-step:first-child{margin-left:0}.range-slider-horizontal .range-scale-step:last-child{margin-left:calc(-1 * var(--f7-range-scale-step-width))}.range-slider-vertical .range-scale-step{line-height:1;justify-content:flex-end;align-items:center;height:var(--f7-range-scale-step-width);width:var(--f7-range-scale-step-height);padding-right:calc(var(--f7-range-scale-step-height) + var(--f7-range-scale-label-offset));right:0;margin-bottom:calc(-1 * var(--f7-range-scale-step-width)/ 2)}.range-slider-vertical .range-scale-step:first-child{margin-bottom:0}.range-slider-vertical .range-scale-step:last-child{margin-bottom:calc(-1 * var(--f7-range-scale-step-width))}.range-slider-vertical .range-scale-step:before{right:0;top:0;height:100%;width:var(--f7-range-scale-step-height)}.range-scale-substep{--f7-range-scale-step-bg-color:var(--f7-range-scale-substep-bg-color, var(--f7-range-bar-bg-color));--f7-range-scale-step-width:var(--f7-range-scale-substep-width);--f7-range-scale-step-height:var(--f7-range-scale-substep-height)}.ios .range-knob-label{margin-bottom:6px;transform:translateX(-50%) translateY(100%) scale(0)}.ios .range-knob-active-state .range-knob-label{transform:translateX(-50%) translateY(0%) scale(1)}.md .range-knob{transition-duration:.2s;transition-property:transform,background-color}.md .range-knob-active-state .range-knob{transform:scale(1.5)}.md .range-slider-min:not(.range-slider-dual) .range-knob{background:#fff!important;border:2px solid var(--f7-range-bar-bg-color)}.md .range-knob-label{width:var(--f7-range-label-size);margin-left:calc(-1 * var(--f7-range-label-size)/ 2);margin-bottom:8px}.md .range-knob-label:before{content:'';left:50%;top:0px;margin-left:calc(-1 * var(--f7-range-label-size)/ 2);position:absolute;z-index:-1;width:var(--f7-range-label-size);height:var(--f7-range-label-size);background:var(--f7-range-label-bg-color,var(--f7-theme-color));transform:rotate(-45deg);border-radius:50% 50% 50% 0}.md .range-knob-active-state .range-knob-label{transform:translateY(0%) scale(1)}.md .range-slider-label .range-knob-active-state .range-knob{transform:scale(0)}.aurora .range-knob-label{margin-bottom:6px;transform:translateX(-50%) translateY(100%) scale(0)}.aurora .range-knob-active-state .range-knob-label{transform:translateX(-50%) translateY(0%) scale(1)}:root{--f7-stepper-fill-button-text-color:#fff;--f7-stepper-raised-box-shadow:0 1px 3px rgba(0, 0, 0, 0.12),0 1px 2px rgba(0,0,0,0.24);--f7-stepper-value-font-weight:500;--f7-stepper-border-width:2px}.ios{--f7-stepper-height:28px;--f7-stepper-border-radius:5px;--f7-stepper-large-height:44px;--f7-stepper-small-height:26px;--f7-stepper-small-border-width:2px;--f7-stepper-value-font-size:17px}.md{--f7-stepper-height:36px;--f7-stepper-border-radius:4px;--f7-stepper-large-height:48px;--f7-stepper-small-border-width:2px;--f7-stepper-small-height:28px;--f7-stepper-value-font-size:14px;--f7-stepper-button-pressed-bg-color:rgba(0, 0, 0, 0.1)}.md .theme-dark,.md.theme-dark{--f7-stepper-button-pressed-bg-color:rgba(255, 255, 255, 0.1)}.aurora{--f7-stepper-height:28px;--f7-stepper-border-radius:4px;--f7-stepper-large-height:34px;--f7-stepper-small-border-width:1px;--f7-stepper-small-height:22px;--f7-stepper-value-font-size:14px}.stepper{display:inline-flex;align-items:stretch;height:var(--f7-stepper-height);border-radius:var(--f7-stepper-border-radius)}.stepper-button,.stepper-button-minus,.stepper-button-plus{background-color:var(--f7-stepper-button-bg-color);width:40px;border-radius:var(--f7-stepper-border-radius);border:var(--f7-stepper-border-width) solid var(--f7-theme-color);color:var(--f7-stepper-button-text-color,var(--f7-theme-color));line-height:calc(var(--f7-stepper-height) - var(--f7-stepper-border-width,0px));text-align:center;display:flex;justify-content:center;align-content:center;align-items:center;flex-shrink:0;box-sizing:border-box;position:relative;cursor:pointer}.stepper-button-minus.active-state,.stepper-button-plus.active-state,.stepper-button.active-state{background-color:var(--f7-stepper-button-pressed-bg-color,rgba(var(--f7-theme-color-rgb),.15));color:var(--f7-stepper-button-pressed-text-color,var(--f7-stepper-button-text-color,var(--f7-theme-color)))}.stepper-button-minus:first-child,.stepper-button-plus:first-child,.stepper-button:first-child{border-radius:var(--f7-stepper-border-radius) 0 0 var(--f7-stepper-border-radius)}.stepper-button-minus:last-child,.stepper-button-plus:last-child,.stepper-button:last-child{border-radius:0 var(--f7-stepper-border-radius) var(--f7-stepper-border-radius) 0}.stepper-button .icon,.stepper-button-minus .icon,.stepper-button-plus .icon{pointer-events:none}.stepper-button+.stepper-button,.stepper-button+.stepper-button-minus,.stepper-button+.stepper-button-plus,.stepper-button-minus+.stepper-button,.stepper-button-minus+.stepper-button-minus,.stepper-button-minus+.stepper-button-plus,.stepper-button-plus+.stepper-button,.stepper-button-plus+.stepper-button-minus,.stepper-button-plus+.stepper-button-plus{border-left:none}.stepper-button-minus,.stepper-button-plus{-webkit-user-select:none;-moz-user-select:none;user-select:none}.stepper-button-minus:after,.stepper-button-minus:before,.stepper-button-plus:after,.stepper-button-plus:before{content:'';position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background-color:var(--f7-stepper-button-text-color,var(--f7-theme-color));border-radius:2px}.stepper-button-minus:after,.stepper-button-plus:after{width:15px;height:2px}.stepper-button-plus:before{height:15px;width:2px}.stepper-value{display:flex;align-content:center;align-items:center;justify-content:center}.stepper-input-wrap,.stepper-value{flex-shrink:1;text-align:center;border-top:var(--f7-stepper-border-width) solid var(--f7-theme-color);border-bottom:var(--f7-stepper-border-width) solid var(--f7-theme-color)}.stepper .stepper-input-wrap input,.stepper-value{width:45px;color:var(--f7-stepper-value-text-color,var(--f7-theme-color));font-size:var(--f7-stepper-value-font-size);font-weight:var(--f7-stepper-value-font-weight);text-align:center}.stepper .stepper-input-wrap input{height:100%}.aurora .stepper-round-aurora,.ios .stepper-round-ios,.md .stepper-round-md,.stepper-round{--f7-stepper-border-radius:var(--f7-stepper-height)}.aurora .stepper-fill-aurora,.ios .stepper-fill-ios,.md .stepper-fill-md,.stepper-fill{--f7-stepper-button-bg-color:var(--f7-stepper-fill-button-bg-color, var(--f7-theme-color));--f7-stepper-button-text-color:var(--f7-stepper-fill-button-text-color);--f7-touch-ripple-color:var(--f7-touch-ripple-white)}.aurora .stepper-fill-aurora .stepper-button+.stepper-button,.aurora .stepper-fill-aurora .stepper-button-minus+.stepper-button-plus,.aurora .stepper-raised-aurora .stepper-button+.stepper-button,.aurora .stepper-raised-aurora .stepper-button-minus+.stepper-button-plus,.ios .stepper-fill-ios .stepper-button+.stepper-button,.ios .stepper-fill-ios .stepper-button-minus+.stepper-button-plus,.ios .stepper-raised-ios .stepper-button+.stepper-button,.ios .stepper-raised-ios .stepper-button-minus+.stepper-button-plus,.md .stepper-fill-md .stepper-button+.stepper-button,.md .stepper-fill-md .stepper-button-minus+.stepper-button-plus,.md .stepper-raised-md .stepper-button+.stepper-button,.md .stepper-raised-md .stepper-button-minus+.stepper-button-plus,.stepper-fill .stepper-button+.stepper-button,.stepper-fill .stepper-button-minus+.stepper-button-plus,.stepper-raised .stepper-button+.stepper-button,.stepper-raised .stepper-button-minus+.stepper-button-plus{border-left:1px solid rgba(0,0,0,.1)}.aurora .stepper-fill-aurora .stepper-button+.stepper-button.active-state,.aurora .stepper-fill-aurora .stepper-button-minus+.stepper-button-plus.active-state,.ios .stepper-fill-ios .stepper-button+.stepper-button.active-state,.ios .stepper-fill-ios .stepper-button-minus+.stepper-button-plus.active-state,.md .stepper-fill-md .stepper-button+.stepper-button.active-state,.md .stepper-fill-md .stepper-button-minus+.stepper-button-plus.active-state,.stepper-fill .stepper-button+.stepper-button.active-state,.stepper-fill .stepper-button-minus+.stepper-button-plus.active-state{border-left-color:var(--f7-stepper-button-pressed-bg-color)}.aurora .stepper-raised-aurora:not(.stepper-fill-aurora):not(.stepper-fill) .stepper-input-wrap,.aurora .stepper-raised-aurora:not(.stepper-fill-aurora):not(.stepper-fill) .stepper-value,.ios .stepper-raised-ios:not(.stepper-fill-ios):not(.stepper-fill) .stepper-input-wrap,.ios .stepper-raised-ios:not(.stepper-fill-ios):not(.stepper-fill) .stepper-value,.md .stepper-raised-md:not(.stepper-fill-md):not(.stepper-fill) .stepper-input-wrap,.md .stepper-raised-md:not(.stepper-fill-md):not(.stepper-fill) .stepper-value,.stepper-raised:not(.stepper-fill) .stepper-input-wrap,.stepper-raised:not(.stepper-fill) .stepper-value{border-left:1px solid rgba(0,0,0,.1);border-right:1px solid rgba(0,0,0,.1)}.aurora .stepper-large-aurora,.ios .stepper-large-ios,.md .stepper-large-md,.stepper-large{--f7-stepper-height:var(--f7-stepper-large-height)}.aurora .stepper-small-aurora,.ios .stepper-small-ios,.md .stepper-small-md,.stepper-small{--f7-stepper-border-width:var(--f7-stepper-small-border-width);--f7-stepper-height:var(--f7-stepper-small-height)}.ios .stepper-fill.stepper-small,.ios .stepper-fill.stepper-small-ios{--f7-stepper-button-pressed-bg-color:transparent;--f7-stepper-button-pressed-text-color:var(--f7-theme-color)}.aurora .stepper-raised-aurora,.ios .stepper-raised-ios,.md .stepper-raised-md,.stepper-raised{--f7-stepper-border-width:0;box-shadow:var(--f7-stepper-raised-box-shadow)}.ios .stepper-button .f7-icons,.ios .stepper-button-minus .f7-icons,.ios .stepper-button-plus .f7-icons{font-size:22px}.ios .stepper-fill,.ios .stepper-fill-ios{--f7-stepper-button-pressed-bg-color:var(--f7-stepper-fill-button-pressed-bg-color, var(--f7-theme-color-tint))}.ios .stepper-small-ios.stepper-raised,.ios .stepper-small-ios.stepper-raised-ios,.ios .stepper-small.stepper-raised,.ios .stepper-small.stepper-raised-ios{--f7-stepper-border-width:0px}.ios .stepper-small .stepper-button,.ios .stepper-small .stepper-button-minus,.ios .stepper-small .stepper-button-plus,.ios .stepper-small-ios .stepper-button,.ios .stepper-small-ios .stepper-button-minus,.ios .stepper-small-ios .stepper-button-plus{transition-duration:.2s}.ios .stepper-small .stepper-button-minus.active-state:after,.ios .stepper-small .stepper-button-minus.active-state:before,.ios .stepper-small .stepper-button-plus.active-state:after,.ios .stepper-small .stepper-button-plus.active-state:before,.ios .stepper-small .stepper-button.active-state:after,.ios .stepper-small .stepper-button.active-state:before,.ios .stepper-small-ios .stepper-button-minus.active-state:after,.ios .stepper-small-ios .stepper-button-minus.active-state:before,.ios .stepper-small-ios .stepper-button-plus.active-state:after,.ios .stepper-small-ios .stepper-button-plus.active-state:before,.ios .stepper-small-ios .stepper-button.active-state:after,.ios .stepper-small-ios .stepper-button.active-state:before{transition-duration:.2s;background-color:var(--f7-theme-color)}.md .stepper-button,.md .stepper-button-minus,.md .stepper-button-plus{transition-duration:.3s;transform:translate3d(0,0,0);overflow:hidden}.md .stepper-fill,.md .stepper-fill-md{--f7-stepper-button-pressed-bg-color:var(--f7-stepper-fill-button-pressed-bg-color, var(--f7-theme-color-shade))}.aurora .stepper-button,.aurora .stepper-button-minus,.aurora .stepper-button-plus{transition-duration:.1s;transform:translate3d(0,0,0);overflow:hidden}.aurora.device-desktop .stepper-button-minus:not(.active-state):not(.no-hover):hover,.aurora.device-desktop .stepper-button-plus:not(.active-state):not(.no-hover):hover,.aurora.device-desktop .stepper-button:not(.active-state):not(.no-hover):hover{background-color:var(--f7-stepper-button-hover-bg-color,rgba(var(--f7-theme-color-rgb),.07))}.aurora .stepper-fill,.aurora .stepper-fill-aurora{--f7-stepper-button-hover-bg-color:var(--f7-stepper-button-fill-hover-bg-color, var(--f7-theme-color-tint));--f7-stepper-button-pressed-bg-color:var(--f7-stepper-fill-button-pressed-bg-color, var(--f7-theme-color-shade))}.smart-select select{display:none}.smart-select .item-after{max-width:70%;overflow:hidden;text-overflow:ellipsis;position:relative;display:block}.smart-select-sheet .list ul,.smart-select-sheet .page,.smart-select-sheet .sheet-modal-inner{background:var(--f7-smart-select-sheet-bg,var(--f7-list-bg-color))}.smart-select-sheet .toolbar:after{content:'';position:absolute;background-color:var(--f7-smart-select-sheet-toolbar-border-color,var(--f7-bars-border-color));display:block;z-index:15;top:auto;right:auto;bottom:0;left:0;height:1px;width:100%;transform-origin:50% 100%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.smart-select-sheet .toolbar:after{display:block}.smart-select-sheet .list{margin:0}.smart-select-sheet .list ul:after,.smart-select-sheet .list ul:before{display:none!important}.smart-select-popover .popover-inner{max-height:40vh}:root{--f7-grid-gap:16px;--f7-grid-row-gap:0px;--f7-grid-resize-handler-bg-color:rgba(0, 0, 0, 0.35)}:root .theme-dark,:root.theme-dark{--f7-grid-resize-handler-bg-color:rgba(255, 255, 255, 0.35)}.row{display:flex;justify-content:space-between;flex-wrap:wrap;align-items:flex-start;--f7-cols-per-row:1}.row+.row{margin-top:var(--f7-grid-row-gap)}.row>.col,.row>[class*=col-]{box-sizing:border-box;width:calc((100% - var(--f7-grid-gap) * (var(--f7-cols-per-row) - 1))/ var(--f7-cols-per-row))}.row>.col.resizable,.row>[class*=col-].resizable{position:relative}.row.resizable{position:relative}.row.no-gap{--f7-grid-gap:0px;--f7-grid-row-gap:0px}.row .col-5{--f7-cols-per-row:20}.row .col-10{--f7-cols-per-row:10}.row .col-15{--f7-cols-per-row:6.66666667}.row .col-20{--f7-cols-per-row:5}.row .col-25{--f7-cols-per-row:4}.row .col-30{--f7-cols-per-row:3.33333333}.row .col-33{--f7-cols-per-row:3}.row .col-35{--f7-cols-per-row:2.85714286}.row .col-40{--f7-cols-per-row:2.5}.row .col-45{--f7-cols-per-row:2.22222222}.row .col-50{--f7-cols-per-row:2}.row .col-55{--f7-cols-per-row:1.81818182}.row .col-60{--f7-cols-per-row:1.66666667}.row .col-65{--f7-cols-per-row:1.53846154}.row .col-66{--f7-cols-per-row:1.5}.row .col-70{--f7-cols-per-row:1.42857143}.row .col-75{--f7-cols-per-row:1.33333333}.row .col-80{--f7-cols-per-row:1.25}.row .col-85{--f7-cols-per-row:1.17647059}.row .col-90{--f7-cols-per-row:1.11111111}.row .col-95{--f7-cols-per-row:1.05263158}.row .col-100{--f7-cols-per-row:1}.row .col:nth-last-of-type(1),.row .col:nth-last-of-type(1)~.col{--f7-cols-per-row:1}.row .col:nth-last-of-type(2),.row .col:nth-last-of-type(2)~.col{--f7-cols-per-row:2}.row .col:nth-last-of-type(3),.row .col:nth-last-of-type(3)~.col{--f7-cols-per-row:3}.row .col:nth-last-of-type(4),.row .col:nth-last-of-type(4)~.col{--f7-cols-per-row:4}.row .col:nth-last-of-type(5),.row .col:nth-last-of-type(5)~.col{--f7-cols-per-row:5}.row .col:nth-last-of-type(6),.row .col:nth-last-of-type(6)~.col{--f7-cols-per-row:6}.row .col:nth-last-of-type(7),.row .col:nth-last-of-type(7)~.col{--f7-cols-per-row:7}.row .col:nth-last-of-type(8),.row .col:nth-last-of-type(8)~.col{--f7-cols-per-row:8}.row .col:nth-last-of-type(9),.row .col:nth-last-of-type(9)~.col{--f7-cols-per-row:9}.row .col:nth-last-of-type(10),.row .col:nth-last-of-type(10)~.col{--f7-cols-per-row:10}.row .col:nth-last-of-type(11),.row .col:nth-last-of-type(11)~.col{--f7-cols-per-row:11}.row .col:nth-last-of-type(12),.row .col:nth-last-of-type(12)~.col{--f7-cols-per-row:12}.row .col:nth-last-of-type(13),.row .col:nth-last-of-type(13)~.col{--f7-cols-per-row:13}.row .col:nth-last-of-type(14),.row .col:nth-last-of-type(14)~.col{--f7-cols-per-row:14}.row .col:nth-last-of-type(15),.row .col:nth-last-of-type(15)~.col{--f7-cols-per-row:15}.row .col:nth-last-of-type(16),.row .col:nth-last-of-type(16)~.col{--f7-cols-per-row:16}.row .col:nth-last-of-type(17),.row .col:nth-last-of-type(17)~.col{--f7-cols-per-row:17}.row .col:nth-last-of-type(18),.row .col:nth-last-of-type(18)~.col{--f7-cols-per-row:18}.row .col:nth-last-of-type(19),.row .col:nth-last-of-type(19)~.col{--f7-cols-per-row:19}.row .col:nth-last-of-type(20),.row .col:nth-last-of-type(20)~.col{--f7-cols-per-row:20}.row .col:nth-last-of-type(21),.row .col:nth-last-of-type(21)~.col{--f7-cols-per-row:21}.row .col:nth-last-of-type(22),.row .col:nth-last-of-type(22)~.col{--f7-cols-per-row:22}@media (min-width:480px){.row .xsmall-5{--f7-cols-per-row:20}.row .xsmall-10{--f7-cols-per-row:10}.row .xsmall-15{--f7-cols-per-row:6.66666667}.row .xsmall-20{--f7-cols-per-row:5}.row .xsmall-25{--f7-cols-per-row:4}.row .xsmall-30{--f7-cols-per-row:3.33333333}.row .xsmall-33{--f7-cols-per-row:3}.row .xsmall-35{--f7-cols-per-row:2.85714286}.row .xsmall-40{--f7-cols-per-row:2.5}.row .xsmall-45{--f7-cols-per-row:2.22222222}.row .xsmall-50{--f7-cols-per-row:2}.row .xsmall-55{--f7-cols-per-row:1.81818182}.row .xsmall-60{--f7-cols-per-row:1.66666667}.row .xsmall-65{--f7-cols-per-row:1.53846154}.row .xsmall-66{--f7-cols-per-row:1.5}.row .xsmall-70{--f7-cols-per-row:1.42857143}.row .xsmall-75{--f7-cols-per-row:1.33333333}.row .xsmall-80{--f7-cols-per-row:1.25}.row .xsmall-85{--f7-cols-per-row:1.17647059}.row .xsmall-90{--f7-cols-per-row:1.11111111}.row .xsmall-95{--f7-cols-per-row:1.05263158}.row .xsmall-100{--f7-cols-per-row:1}.row .xsmall-auto:nth-last-of-type(1),.row .xsmall-auto:nth-last-of-type(1)~.xsmall-auto{--f7-cols-per-row:1}.row .xsmall-auto:nth-last-of-type(2),.row .xsmall-auto:nth-last-of-type(2)~.xsmall-auto{--f7-cols-per-row:2}.row .xsmall-auto:nth-last-of-type(3),.row .xsmall-auto:nth-last-of-type(3)~.xsmall-auto{--f7-cols-per-row:3}.row .xsmall-auto:nth-last-of-type(4),.row .xsmall-auto:nth-last-of-type(4)~.xsmall-auto{--f7-cols-per-row:4}.row .xsmall-auto:nth-last-of-type(5),.row .xsmall-auto:nth-last-of-type(5)~.xsmall-auto{--f7-cols-per-row:5}.row .xsmall-auto:nth-last-of-type(6),.row .xsmall-auto:nth-last-of-type(6)~.xsmall-auto{--f7-cols-per-row:6}.row .xsmall-auto:nth-last-of-type(7),.row .xsmall-auto:nth-last-of-type(7)~.xsmall-auto{--f7-cols-per-row:7}.row .xsmall-auto:nth-last-of-type(8),.row .xsmall-auto:nth-last-of-type(8)~.xsmall-auto{--f7-cols-per-row:8}.row .xsmall-auto:nth-last-of-type(9),.row .xsmall-auto:nth-last-of-type(9)~.xsmall-auto{--f7-cols-per-row:9}.row .xsmall-auto:nth-last-of-type(10),.row .xsmall-auto:nth-last-of-type(10)~.xsmall-auto{--f7-cols-per-row:10}.row .xsmall-auto:nth-last-of-type(11),.row .xsmall-auto:nth-last-of-type(11)~.xsmall-auto{--f7-cols-per-row:11}.row .xsmall-auto:nth-last-of-type(12),.row .xsmall-auto:nth-last-of-type(12)~.xsmall-auto{--f7-cols-per-row:12}.row .xsmall-auto:nth-last-of-type(13),.row .xsmall-auto:nth-last-of-type(13)~.xsmall-auto{--f7-cols-per-row:13}.row .xsmall-auto:nth-last-of-type(14),.row .xsmall-auto:nth-last-of-type(14)~.xsmall-auto{--f7-cols-per-row:14}.row .xsmall-auto:nth-last-of-type(15),.row .xsmall-auto:nth-last-of-type(15)~.xsmall-auto{--f7-cols-per-row:15}.row .xsmall-auto:nth-last-of-type(16),.row .xsmall-auto:nth-last-of-type(16)~.xsmall-auto{--f7-cols-per-row:16}.row .xsmall-auto:nth-last-of-type(17),.row .xsmall-auto:nth-last-of-type(17)~.xsmall-auto{--f7-cols-per-row:17}.row .xsmall-auto:nth-last-of-type(18),.row .xsmall-auto:nth-last-of-type(18)~.xsmall-auto{--f7-cols-per-row:18}.row .xsmall-auto:nth-last-of-type(19),.row .xsmall-auto:nth-last-of-type(19)~.xsmall-auto{--f7-cols-per-row:19}.row .xsmall-auto:nth-last-of-type(20),.row .xsmall-auto:nth-last-of-type(20)~.xsmall-auto{--f7-cols-per-row:20}.row .xsmall-auto:nth-last-of-type(21),.row .xsmall-auto:nth-last-of-type(21)~.xsmall-auto{--f7-cols-per-row:21}.row .xsmall-auto:nth-last-of-type(22),.row .xsmall-auto:nth-last-of-type(22)~.xsmall-auto{--f7-cols-per-row:22}}@media (min-width:568px){.row .small-5{--f7-cols-per-row:20}.row .small-10{--f7-cols-per-row:10}.row .small-15{--f7-cols-per-row:6.66666667}.row .small-20{--f7-cols-per-row:5}.row .small-25{--f7-cols-per-row:4}.row .small-30{--f7-cols-per-row:3.33333333}.row .small-33{--f7-cols-per-row:3}.row .small-35{--f7-cols-per-row:2.85714286}.row .small-40{--f7-cols-per-row:2.5}.row .small-45{--f7-cols-per-row:2.22222222}.row .small-50{--f7-cols-per-row:2}.row .small-55{--f7-cols-per-row:1.81818182}.row .small-60{--f7-cols-per-row:1.66666667}.row .small-65{--f7-cols-per-row:1.53846154}.row .small-66{--f7-cols-per-row:1.5}.row .small-70{--f7-cols-per-row:1.42857143}.row .small-75{--f7-cols-per-row:1.33333333}.row .small-80{--f7-cols-per-row:1.25}.row .small-85{--f7-cols-per-row:1.17647059}.row .small-90{--f7-cols-per-row:1.11111111}.row .small-95{--f7-cols-per-row:1.05263158}.row .small-100{--f7-cols-per-row:1}.row .small-auto:nth-last-of-type(1),.row .small-auto:nth-last-of-type(1)~.small-auto{--f7-cols-per-row:1}.row .small-auto:nth-last-of-type(2),.row .small-auto:nth-last-of-type(2)~.small-auto{--f7-cols-per-row:2}.row .small-auto:nth-last-of-type(3),.row .small-auto:nth-last-of-type(3)~.small-auto{--f7-cols-per-row:3}.row .small-auto:nth-last-of-type(4),.row .small-auto:nth-last-of-type(4)~.small-auto{--f7-cols-per-row:4}.row .small-auto:nth-last-of-type(5),.row .small-auto:nth-last-of-type(5)~.small-auto{--f7-cols-per-row:5}.row .small-auto:nth-last-of-type(6),.row .small-auto:nth-last-of-type(6)~.small-auto{--f7-cols-per-row:6}.row .small-auto:nth-last-of-type(7),.row .small-auto:nth-last-of-type(7)~.small-auto{--f7-cols-per-row:7}.row .small-auto:nth-last-of-type(8),.row .small-auto:nth-last-of-type(8)~.small-auto{--f7-cols-per-row:8}.row .small-auto:nth-last-of-type(9),.row .small-auto:nth-last-of-type(9)~.small-auto{--f7-cols-per-row:9}.row .small-auto:nth-last-of-type(10),.row .small-auto:nth-last-of-type(10)~.small-auto{--f7-cols-per-row:10}.row .small-auto:nth-last-of-type(11),.row .small-auto:nth-last-of-type(11)~.small-auto{--f7-cols-per-row:11}.row .small-auto:nth-last-of-type(12),.row .small-auto:nth-last-of-type(12)~.small-auto{--f7-cols-per-row:12}.row .small-auto:nth-last-of-type(13),.row .small-auto:nth-last-of-type(13)~.small-auto{--f7-cols-per-row:13}.row .small-auto:nth-last-of-type(14),.row .small-auto:nth-last-of-type(14)~.small-auto{--f7-cols-per-row:14}.row .small-auto:nth-last-of-type(15),.row .small-auto:nth-last-of-type(15)~.small-auto{--f7-cols-per-row:15}.row .small-auto:nth-last-of-type(16),.row .small-auto:nth-last-of-type(16)~.small-auto{--f7-cols-per-row:16}.row .small-auto:nth-last-of-type(17),.row .small-auto:nth-last-of-type(17)~.small-auto{--f7-cols-per-row:17}.row .small-auto:nth-last-of-type(18),.row .small-auto:nth-last-of-type(18)~.small-auto{--f7-cols-per-row:18}.row .small-auto:nth-last-of-type(19),.row .small-auto:nth-last-of-type(19)~.small-auto{--f7-cols-per-row:19}.row .small-auto:nth-last-of-type(20),.row .small-auto:nth-last-of-type(20)~.small-auto{--f7-cols-per-row:20}.row .small-auto:nth-last-of-type(21),.row .small-auto:nth-last-of-type(21)~.small-auto{--f7-cols-per-row:21}.row .small-auto:nth-last-of-type(22),.row .small-auto:nth-last-of-type(22)~.small-auto{--f7-cols-per-row:22}}@media (min-width:768px){.row .medium-5{--f7-cols-per-row:20}.row .medium-10{--f7-cols-per-row:10}.row .medium-15{--f7-cols-per-row:6.66666667}.row .medium-20{--f7-cols-per-row:5}.row .medium-25{--f7-cols-per-row:4}.row .medium-30{--f7-cols-per-row:3.33333333}.row .medium-33{--f7-cols-per-row:3}.row .medium-35{--f7-cols-per-row:2.85714286}.row .medium-40{--f7-cols-per-row:2.5}.row .medium-45{--f7-cols-per-row:2.22222222}.row .medium-50{--f7-cols-per-row:2}.row .medium-55{--f7-cols-per-row:1.81818182}.row .medium-60{--f7-cols-per-row:1.66666667}.row .medium-65{--f7-cols-per-row:1.53846154}.row .medium-66{--f7-cols-per-row:1.5}.row .medium-70{--f7-cols-per-row:1.42857143}.row .medium-75{--f7-cols-per-row:1.33333333}.row .medium-80{--f7-cols-per-row:1.25}.row .medium-85{--f7-cols-per-row:1.17647059}.row .medium-90{--f7-cols-per-row:1.11111111}.row .medium-95{--f7-cols-per-row:1.05263158}.row .medium-100{--f7-cols-per-row:1}.row .medium-auto:nth-last-of-type(1),.row .medium-auto:nth-last-of-type(1)~.medium-auto{--f7-cols-per-row:1}.row .medium-auto:nth-last-of-type(2),.row .medium-auto:nth-last-of-type(2)~.medium-auto{--f7-cols-per-row:2}.row .medium-auto:nth-last-of-type(3),.row .medium-auto:nth-last-of-type(3)~.medium-auto{--f7-cols-per-row:3}.row .medium-auto:nth-last-of-type(4),.row .medium-auto:nth-last-of-type(4)~.medium-auto{--f7-cols-per-row:4}.row .medium-auto:nth-last-of-type(5),.row .medium-auto:nth-last-of-type(5)~.medium-auto{--f7-cols-per-row:5}.row .medium-auto:nth-last-of-type(6),.row .medium-auto:nth-last-of-type(6)~.medium-auto{--f7-cols-per-row:6}.row .medium-auto:nth-last-of-type(7),.row .medium-auto:nth-last-of-type(7)~.medium-auto{--f7-cols-per-row:7}.row .medium-auto:nth-last-of-type(8),.row .medium-auto:nth-last-of-type(8)~.medium-auto{--f7-cols-per-row:8}.row .medium-auto:nth-last-of-type(9),.row .medium-auto:nth-last-of-type(9)~.medium-auto{--f7-cols-per-row:9}.row .medium-auto:nth-last-of-type(10),.row .medium-auto:nth-last-of-type(10)~.medium-auto{--f7-cols-per-row:10}.row .medium-auto:nth-last-of-type(11),.row .medium-auto:nth-last-of-type(11)~.medium-auto{--f7-cols-per-row:11}.row .medium-auto:nth-last-of-type(12),.row .medium-auto:nth-last-of-type(12)~.medium-auto{--f7-cols-per-row:12}.row .medium-auto:nth-last-of-type(13),.row .medium-auto:nth-last-of-type(13)~.medium-auto{--f7-cols-per-row:13}.row .medium-auto:nth-last-of-type(14),.row .medium-auto:nth-last-of-type(14)~.medium-auto{--f7-cols-per-row:14}.row .medium-auto:nth-last-of-type(15),.row .medium-auto:nth-last-of-type(15)~.medium-auto{--f7-cols-per-row:15}.row .medium-auto:nth-last-of-type(16),.row .medium-auto:nth-last-of-type(16)~.medium-auto{--f7-cols-per-row:16}.row .medium-auto:nth-last-of-type(17),.row .medium-auto:nth-last-of-type(17)~.medium-auto{--f7-cols-per-row:17}.row .medium-auto:nth-last-of-type(18),.row .medium-auto:nth-last-of-type(18)~.medium-auto{--f7-cols-per-row:18}.row .medium-auto:nth-last-of-type(19),.row .medium-auto:nth-last-of-type(19)~.medium-auto{--f7-cols-per-row:19}.row .medium-auto:nth-last-of-type(20),.row .medium-auto:nth-last-of-type(20)~.medium-auto{--f7-cols-per-row:20}.row .medium-auto:nth-last-of-type(21),.row .medium-auto:nth-last-of-type(21)~.medium-auto{--f7-cols-per-row:21}.row .medium-auto:nth-last-of-type(22),.row .medium-auto:nth-last-of-type(22)~.medium-auto{--f7-cols-per-row:22}}@media (min-width:1024px){.row .large-5{--f7-cols-per-row:20}.row .large-10{--f7-cols-per-row:10}.row .large-15{--f7-cols-per-row:6.66666667}.row .large-20{--f7-cols-per-row:5}.row .large-25{--f7-cols-per-row:4}.row .large-30{--f7-cols-per-row:3.33333333}.row .large-33{--f7-cols-per-row:3}.row .large-35{--f7-cols-per-row:2.85714286}.row .large-40{--f7-cols-per-row:2.5}.row .large-45{--f7-cols-per-row:2.22222222}.row .large-50{--f7-cols-per-row:2}.row .large-55{--f7-cols-per-row:1.81818182}.row .large-60{--f7-cols-per-row:1.66666667}.row .large-65{--f7-cols-per-row:1.53846154}.row .large-66{--f7-cols-per-row:1.5}.row .large-70{--f7-cols-per-row:1.42857143}.row .large-75{--f7-cols-per-row:1.33333333}.row .large-80{--f7-cols-per-row:1.25}.row .large-85{--f7-cols-per-row:1.17647059}.row .large-90{--f7-cols-per-row:1.11111111}.row .large-95{--f7-cols-per-row:1.05263158}.row .large-100{--f7-cols-per-row:1}.row .large-auto:nth-last-of-type(1),.row .large-auto:nth-last-of-type(1)~.large-auto{--f7-cols-per-row:1}.row .large-auto:nth-last-of-type(2),.row .large-auto:nth-last-of-type(2)~.large-auto{--f7-cols-per-row:2}.row .large-auto:nth-last-of-type(3),.row .large-auto:nth-last-of-type(3)~.large-auto{--f7-cols-per-row:3}.row .large-auto:nth-last-of-type(4),.row .large-auto:nth-last-of-type(4)~.large-auto{--f7-cols-per-row:4}.row .large-auto:nth-last-of-type(5),.row .large-auto:nth-last-of-type(5)~.large-auto{--f7-cols-per-row:5}.row .large-auto:nth-last-of-type(6),.row .large-auto:nth-last-of-type(6)~.large-auto{--f7-cols-per-row:6}.row .large-auto:nth-last-of-type(7),.row .large-auto:nth-last-of-type(7)~.large-auto{--f7-cols-per-row:7}.row .large-auto:nth-last-of-type(8),.row .large-auto:nth-last-of-type(8)~.large-auto{--f7-cols-per-row:8}.row .large-auto:nth-last-of-type(9),.row .large-auto:nth-last-of-type(9)~.large-auto{--f7-cols-per-row:9}.row .large-auto:nth-last-of-type(10),.row .large-auto:nth-last-of-type(10)~.large-auto{--f7-cols-per-row:10}.row .large-auto:nth-last-of-type(11),.row .large-auto:nth-last-of-type(11)~.large-auto{--f7-cols-per-row:11}.row .large-auto:nth-last-of-type(12),.row .large-auto:nth-last-of-type(12)~.large-auto{--f7-cols-per-row:12}.row .large-auto:nth-last-of-type(13),.row .large-auto:nth-last-of-type(13)~.large-auto{--f7-cols-per-row:13}.row .large-auto:nth-last-of-type(14),.row .large-auto:nth-last-of-type(14)~.large-auto{--f7-cols-per-row:14}.row .large-auto:nth-last-of-type(15),.row .large-auto:nth-last-of-type(15)~.large-auto{--f7-cols-per-row:15}.row .large-auto:nth-last-of-type(16),.row .large-auto:nth-last-of-type(16)~.large-auto{--f7-cols-per-row:16}.row .large-auto:nth-last-of-type(17),.row .large-auto:nth-last-of-type(17)~.large-auto{--f7-cols-per-row:17}.row .large-auto:nth-last-of-type(18),.row .large-auto:nth-last-of-type(18)~.large-auto{--f7-cols-per-row:18}.row .large-auto:nth-last-of-type(19),.row .large-auto:nth-last-of-type(19)~.large-auto{--f7-cols-per-row:19}.row .large-auto:nth-last-of-type(20),.row .large-auto:nth-last-of-type(20)~.large-auto{--f7-cols-per-row:20}.row .large-auto:nth-last-of-type(21),.row .large-auto:nth-last-of-type(21)~.large-auto{--f7-cols-per-row:21}.row .large-auto:nth-last-of-type(22),.row .large-auto:nth-last-of-type(22)~.large-auto{--f7-cols-per-row:22}}@media (min-width:1200px){.row .xlarge-5{--f7-cols-per-row:20}.row .xlarge-10{--f7-cols-per-row:10}.row .xlarge-15{--f7-cols-per-row:6.66666667}.row .xlarge-20{--f7-cols-per-row:5}.row .xlarge-25{--f7-cols-per-row:4}.row .xlarge-30{--f7-cols-per-row:3.33333333}.row .xlarge-33{--f7-cols-per-row:3}.row .xlarge-35{--f7-cols-per-row:2.85714286}.row .xlarge-40{--f7-cols-per-row:2.5}.row .xlarge-45{--f7-cols-per-row:2.22222222}.row .xlarge-50{--f7-cols-per-row:2}.row .xlarge-55{--f7-cols-per-row:1.81818182}.row .xlarge-60{--f7-cols-per-row:1.66666667}.row .xlarge-65{--f7-cols-per-row:1.53846154}.row .xlarge-66{--f7-cols-per-row:1.5}.row .xlarge-70{--f7-cols-per-row:1.42857143}.row .xlarge-75{--f7-cols-per-row:1.33333333}.row .xlarge-80{--f7-cols-per-row:1.25}.row .xlarge-85{--f7-cols-per-row:1.17647059}.row .xlarge-90{--f7-cols-per-row:1.11111111}.row .xlarge-95{--f7-cols-per-row:1.05263158}.row .xlarge-100{--f7-cols-per-row:1}.row .xlarge-auto:nth-last-of-type(1),.row .xlarge-auto:nth-last-of-type(1)~.xlarge-auto{--f7-cols-per-row:1}.row .xlarge-auto:nth-last-of-type(2),.row .xlarge-auto:nth-last-of-type(2)~.xlarge-auto{--f7-cols-per-row:2}.row .xlarge-auto:nth-last-of-type(3),.row .xlarge-auto:nth-last-of-type(3)~.xlarge-auto{--f7-cols-per-row:3}.row .xlarge-auto:nth-last-of-type(4),.row .xlarge-auto:nth-last-of-type(4)~.xlarge-auto{--f7-cols-per-row:4}.row .xlarge-auto:nth-last-of-type(5),.row .xlarge-auto:nth-last-of-type(5)~.xlarge-auto{--f7-cols-per-row:5}.row .xlarge-auto:nth-last-of-type(6),.row .xlarge-auto:nth-last-of-type(6)~.xlarge-auto{--f7-cols-per-row:6}.row .xlarge-auto:nth-last-of-type(7),.row .xlarge-auto:nth-last-of-type(7)~.xlarge-auto{--f7-cols-per-row:7}.row .xlarge-auto:nth-last-of-type(8),.row .xlarge-auto:nth-last-of-type(8)~.xlarge-auto{--f7-cols-per-row:8}.row .xlarge-auto:nth-last-of-type(9),.row .xlarge-auto:nth-last-of-type(9)~.xlarge-auto{--f7-cols-per-row:9}.row .xlarge-auto:nth-last-of-type(10),.row .xlarge-auto:nth-last-of-type(10)~.xlarge-auto{--f7-cols-per-row:10}.row .xlarge-auto:nth-last-of-type(11),.row .xlarge-auto:nth-last-of-type(11)~.xlarge-auto{--f7-cols-per-row:11}.row .xlarge-auto:nth-last-of-type(12),.row .xlarge-auto:nth-last-of-type(12)~.xlarge-auto{--f7-cols-per-row:12}.row .xlarge-auto:nth-last-of-type(13),.row .xlarge-auto:nth-last-of-type(13)~.xlarge-auto{--f7-cols-per-row:13}.row .xlarge-auto:nth-last-of-type(14),.row .xlarge-auto:nth-last-of-type(14)~.xlarge-auto{--f7-cols-per-row:14}.row .xlarge-auto:nth-last-of-type(15),.row .xlarge-auto:nth-last-of-type(15)~.xlarge-auto{--f7-cols-per-row:15}.row .xlarge-auto:nth-last-of-type(16),.row .xlarge-auto:nth-last-of-type(16)~.xlarge-auto{--f7-cols-per-row:16}.row .xlarge-auto:nth-last-of-type(17),.row .xlarge-auto:nth-last-of-type(17)~.xlarge-auto{--f7-cols-per-row:17}.row .xlarge-auto:nth-last-of-type(18),.row .xlarge-auto:nth-last-of-type(18)~.xlarge-auto{--f7-cols-per-row:18}.row .xlarge-auto:nth-last-of-type(19),.row .xlarge-auto:nth-last-of-type(19)~.xlarge-auto{--f7-cols-per-row:19}.row .xlarge-auto:nth-last-of-type(20),.row .xlarge-auto:nth-last-of-type(20)~.xlarge-auto{--f7-cols-per-row:20}.row .xlarge-auto:nth-last-of-type(21),.row .xlarge-auto:nth-last-of-type(21)~.xlarge-auto{--f7-cols-per-row:21}.row .xlarge-auto:nth-last-of-type(22),.row .xlarge-auto:nth-last-of-type(22)~.xlarge-auto{--f7-cols-per-row:22}}.row .resize-handler{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;z-index:100}.row .resize-handler:before{content:'';position:absolute}.row .resize-handler:after{content:'';position:absolute;border-radius:4px;background:var(--f7-grid-resize-handler-bg-color)}.row>.resize-handler{width:100%;height:var(--f7-grid-row-gap);left:0;top:100%;cursor:row-resize}.row>.resize-handler:before{left:0%;top:50%;height:12px;width:100%;min-height:var(--f7-grid-row-gap);transform:translateY(-50%)}.row>.resize-handler:after{height:4px;margin-top:-2px;width:80%;max-width:20px;left:50%;top:50%;transform:translateX(-50%)}.col>.resize-handler,[class*=col-]>.resize-handler{width:var(--f7-grid-gap);left:100%;top:0;height:100%;cursor:col-resize}.col>.resize-handler:before,[class*=col-]>.resize-handler:before{left:50%;top:0;height:100%;width:12px;min-width:var(--f7-grid-gap);transform:translateX(-50%)}.col>.resize-handler:after,[class*=col-]>.resize-handler:after{width:4px;margin-left:-2px;height:80%;max-height:20px;border-radius:4px;left:50%;top:50%;transform:translateY(-50%)}.row .col:last-child>.resize-handler,.row .col:last-of-type>.resize-handler,.row [class*=col-]:last-child>.resize-handler,.row [class*=col-]:last-of-type>.resize-handler,.row:last-child>.resize-handler,.row:last-of-type>.resize-handler{display:none}:root{--f7-calendar-height:340px;--f7-calendar-sheet-landscape-height:220px;--f7-calendar-popover-width:320px;--f7-calendar-popover-height:320px;--f7-calendar-modal-height:420px;--f7-calendar-modal-max-width:380px;--f7-calendar-modal-border-radius:4px;--f7-calendar-footer-padding:0 8px;--f7-calendar-week-header-font-size:11px;--f7-calendar-selected-text-color:#fff;--f7-calendar-prev-next-text-color:#b8b8b8;--f7-calendar-disabled-text-color:#d4d4d4;--f7-calendar-event-dot-size:4px;--f7-calendar-day-text-color:#000;--f7-calendar-sheet-bg-color:#fff;--f7-calendar-modal-bg-color:#fff;--f7-calendar-picker-bg-color:#fff;--f7-calendar-picker-pressed-bg-color:rgba(0, 0, 0, 0.1);--f7-calendar-picker-hover-bg-color:rgba(0, 0, 0, 0.03)}:root .theme-dark,:root.theme-dark{--f7-calendar-sheet-border-color:var(--f7-bars-border-color);--f7-calendar-modal-bg-color:#121212;--f7-calendar-sheet-bg-color:#121212;--f7-calendar-picker-bg-color:#1c1c1d;--f7-calendar-picker-pressed-bg-color:rgba(255, 255, 255, 0.08);--f7-calendar-picker-hover-bg-color:rgba(255, 255, 255, 0.03)}.ios{--f7-calendar-sheet-border-color:#929499;--f7-calendar-header-height:44px;--f7-calendar-header-font-size:17px;--f7-calendar-header-font-weight:600;--f7-calendar-header-padding:0 8px;--f7-calendar-footer-height:44px;--f7-calendar-footer-font-size:17px;--f7-calendar-week-header-height:18px;--f7-calendar-day-font-size:15px;--f7-calendar-day-size:30px;--f7-calendar-picker-font-size:17px;--f7-calendar-time-selector-font-size:17px;--f7-calendar-row-border-color:rgba(0, 0, 0, 0.25);--f7-calendar-today-text-color:#000;--f7-calendar-today-bg-color:#e3e3e3}.ios .theme-dark,.ios.theme-dark{--f7-calendar-row-border-color:var(--f7-bars-border-color);--f7-calendar-day-text-color:#fff;--f7-calendar-today-text-color:#fff;--f7-calendar-today-bg-color:#333}.md{--f7-calendar-sheet-border-color:#ccc;--f7-calendar-header-height:56px;--f7-calendar-header-font-size:20px;--f7-calendar-header-font-weight:400;--f7-calendar-header-padding:0 24px;--f7-calendar-footer-height:48px;--f7-calendar-footer-font-size:14px;--f7-calendar-week-header-height:24px;--f7-calendar-row-border-color:transparent;--f7-calendar-day-font-size:14px;--f7-calendar-today-bg-color:none;--f7-calendar-day-size:32px;--f7-calendar-picker-font-size:14px;--f7-calendar-time-selector-font-size:14px}.md .theme-dark,.md.theme-dark{--f7-calendar-day-text-color:rgba(255, 255, 255, 0.87)}.aurora{--f7-calendar-sheet-border-color:#ccc;--f7-calendar-header-height:38px;--f7-calendar-header-font-size:14px;--f7-calendar-header-font-weight:600;--f7-calendar-header-padding:0 8px;--f7-calendar-footer-height:38px;--f7-calendar-footer-font-size:14px;--f7-calendar-week-header-height:18px;--f7-calendar-day-font-size:13px;--f7-calendar-day-size:30px;--f7-calendar-picker-font-size:14px;--f7-calendar-time-selector-font-size:14px;--f7-calendar-row-border-color:#e3e3e3;--f7-calendar-today-text-color:#000;--f7-calendar-today-bg-color:#e3e3e3}.aurora .theme-dark,.aurora.theme-dark{--f7-calendar-row-border-color:var(--f7-bars-border-color);--f7-calendar-day-text-color:#fff;--f7-calendar-today-text-color:#fff;--f7-calendar-today-bg-color:#333}.calendar{overflow:hidden;height:var(--f7-calendar-height);width:100%;display:flex;flex-direction:column}.calendar.modal-in{display:flex}@media (orientation:landscape) and (max-height:415px){.calendar.calendar-sheet{height:var(--f7-calendar-sheet-landscape-height)}.calendar.calendar-modal{height:calc(100vh - var(--f7-navbar-height))}}.calendar.calendar-inline,.calendar.calendar-popover .calendar{position:relative}.calendar-sheet{--f7-sheet-border-color:var(--f7-calendar-sheet-border-color);background:var(--f7-calendar-sheet-bg-color);padding-bottom:var(--f7-safe-area-bottom);height:calc(var(--f7-calendar-height) + var(--f7-safe-area-bottom))}.calendar-sheet:before{z-index:600}.calendar-modal .toolbar:before,.calendar-popover .toolbar:before,.calendar-sheet .toolbar:before{display:none}.calendar-popover{width:var(--f7-calendar-popover-width)}.calendar-popover .calendar-header,.calendar-popover .toolbar-top{border-radius:var(--f7-popover-border-radius) var(--f7-popover-border-radius) 0 0}.calendar-popover .calendar-header+.toolbar-top{border-radius:0}.calendar-popover .calendar-footer,.calendar-popover .toolbar-bottom{border-radius:0 0 var(--f7-popover-border-radius) var(--f7-popover-border-radius)}.calendar-popover .calendar{height:var(--f7-calendar-popover-height);position:relative;z-index:1}.calendar-popover .calendar-month-picker,.calendar-popover .calendar-time-picker,.calendar-popover .calendar-year-picker{border-radius:var(--f7-popover-border-radius)}.calendar-header{width:100%;position:relative;overflow:hidden;flex-shrink:0;white-space:nowrap;text-overflow:ellipsis;box-sizing:border-box;padding:var(--f7-calendar-header-padding);background-color:var(--f7-calendar-header-bg-color,var(--f7-bars-bg-color));color:var(--f7-calendar-header-text-color,var(--f7-bars-text-color));height:var(--f7-calendar-header-height);line-height:var(--f7-calendar-header-height);font-size:var(--f7-calendar-header-font-size);font-weight:var(--f7-calendar-header-font-weight)}.calendar-header a{color:var(--f7-calendar-header-link-color,var(--f7-bars-link-color,var(--f7-theme-color)))}.calendar-footer{width:100%;flex-shrink:0;padding:var(--f7-calendar-footer-padding);background-color:var(--f7-calendar-footer-bg-color,var(--f7-bars-bg-color));color:var(--f7-calendar-footer-text-color,var(--f7-bars-text-color));height:var(--f7-calendar-footer-height);font-size:var(--f7-calendar-header-font-size);display:flex;justify-content:flex-end;box-sizing:border-box;align-items:center;position:relative}.calendar-footer a{color:var(--f7-calendar-footer-link-color,var(--f7-bars-link-color,var(--f7-theme-color)))}.calendar-footer:before{content:'';position:absolute;background-color:var(--f7-calendar-footer-border-color,var(--f7-bars-border-color));display:block;z-index:15;top:0;right:auto;bottom:auto;left:0;height:1px;width:100%;transform-origin:50% 0%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.calendar-modal{position:absolute;height:var(--f7-calendar-modal-height);overflow:hidden;top:50%;left:50%;min-width:300px;max-width:var(--f7-calendar-modal-max-width);transform:translate3d(-50%,100vh,0);transition-property:transform;display:flex;z-index:13500;background:var(--f7-calendar-modal-bg-color);width:90%;border-radius:var(--f7-calendar-modal-border-radius);box-shadow:var(--f7-elevation-24)}.calendar-modal.modal-in,.calendar-modal.modal-out{transition-duration:.4s}.calendar-modal.modal-in{transform:translate3d(-50%,-50%,0)}.calendar-modal.modal-out{transform:translate3d(-50%,100vh,0)}.calendar-week-header{display:flex;box-sizing:border-box;position:relative;font-size:var(--f7-calendar-week-header-font-size);background-color:var(--f7-calendar-week-header-bg-color,var(--f7-bars-bg-color));color:var(--f7-calendar-week-header-text-color,var(--f7-bars-text-color));height:var(--f7-calendar-week-header-height);padding-left:var(--f7-safe-area-left);padding-right:var(--f7-safe-area-right)}.calendar-week-header .calendar-week-day{flex-shrink:1;width:calc(100% / 7);text-align:center;line-height:var(--f7-calendar-week-header-height)}.calendar-months{width:100%;height:100%;overflow:hidden;position:relative;flex-shrink:10}.calendar-months-wrapper{position:relative;width:100%;height:100%;transition:.3s}.calendar-month{display:flex;flex-direction:column;width:100%;height:100%;position:absolute;left:0;top:0}.calendar-row{height:16.66666667%;height:calc(100% / 6);display:flex;flex-shrink:1;width:100%;position:relative;box-sizing:border-box;padding-left:var(--f7-safe-area-left);padding-right:var(--f7-safe-area-right)}.calendar-row:before{content:'';position:absolute;background-color:var(--f7-calendar-row-border-color);display:block;z-index:15;top:0;right:auto;bottom:auto;left:0;height:1px;width:100%;transform-origin:50% 0%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.calendar-modal .calendar-months:first-child .calendar-row:first-child:before,.calendar-popover .calendar-months:first-child .calendar-row:first-child:before{display:none!important}.calendar-day{flex-shrink:1;display:flex;justify-content:center;align-items:center;box-sizing:border-box;width:14.28571429%;width:calc(100% / 7);text-align:center;cursor:pointer;z-index:20;color:var(--f7-calendar-day-text-color);height:100%;font-size:var(--f7-calendar-day-font-size)}.calendar-day.calendar-day-today .calendar-day-number{color:var(--f7-calendar-today-text-color,var(--f7-theme-color));background-color:var(--f7-calendar-today-bg-color)}.calendar-day.calendar-day-next,.calendar-day.calendar-day-prev{color:var(--f7-calendar-prev-next-text-color)}.calendar-day.calendar-day-disabled{color:var(--f7-calendar-disabled-text-color);cursor:auto}.calendar-day.calendar-day-selected .calendar-day-number{color:var(--f7-calendar-selected-text-color);background-color:var(--f7-calendar-selected-bg-color,var(--f7-theme-color))}.calendar-day .calendar-day-number{display:inline-block;border-radius:50%;position:relative;width:var(--f7-calendar-day-size);height:var(--f7-calendar-day-size);line-height:var(--f7-calendar-day-size)}.calendar-day .calendar-day-events{position:absolute;display:flex;left:0;width:100%;top:100%;align-items:center;justify-content:center;margin-top:1px}.calendar-day .calendar-day-event{width:var(--f7-calendar-event-dot-size);height:var(--f7-calendar-event-dot-size);border-radius:calc(var(--f7-calendar-event-dot-size)/ 2);background-color:var(--f7-calendar-event-bg-color)}.calendar-day .calendar-day-event+.calendar-day-event{margin-left:2px}.calendar-range .calendar-day.calendar-day-selected{align-items:stretch;align-content:stretch}.calendar-range .calendar-day.calendar-day-selected .calendar-day-number{width:100%;border-radius:0;height:auto;text-align:center;display:flex;align-items:center;justify-content:center}.calendar-month-selector,.calendar-year-selector{display:flex;justify-content:space-between;align-items:center;width:50%;max-width:200px;flex-shrink:10;margin-left:auto;margin-right:auto}.calendar-month-selector .calendar-day-number,.calendar-year-selector .calendar-day-number{flex-shrink:1;position:relative;overflow:hidden;text-overflow:ellipsis}.calendar-month-selector a.icon-only,.calendar-year-selector a.icon-only{min-width:36px}.calendar-month-picker,.calendar-time-picker,.calendar-year-picker{position:absolute;width:100%;height:100%;left:0px;top:0px;background:var(--f7-calendar-picker-bg-color);z-index:1000;-webkit-user-select:none;-moz-user-select:none;user-select:none}.calendar-month-picker,.calendar-year-picker{flex-wrap:wrap;font-size:var(--f7-calendar-picker-font-size);display:flex}.calendar-month-picker-item,.calendar-year-picker-item{display:flex;justify-content:center;align-items:center;position:relative;overflow:hidden;cursor:pointer;transition-duration:.1s;box-sizing:border-box}.calendar-month-picker-item span,.calendar-year-picker-item span{white-space:nowrap;text-overflow:ellipsis;box-sizing:border-box;position:relative;overflow:hidden;pointer-events:none}.device-desktop.aurora .calendar-month-picker-item:hover,.device-desktop.aurora .calendar-year-picker-item:hover{background-color:var(--f7-calendar-picker-hover-bg-color)}.calendar-month-picker-item.active-state,.calendar-year-picker-item.active-state,.device-desktop.aurora .calendar-month-picker-item.active-state,.device-desktop.aurora .calendar-year-picker-item.active-state{background:var(--f7-calendar-picker-pressed-bg-color)}.calendar-month-picker-item{padding:5px}.calendar-month-picker-item:after{content:'';position:absolute;background-color:var(--f7-calendar-row-border-color);display:block;z-index:15;top:auto;right:auto;bottom:0;left:0;height:1px;width:100%;transform-origin:50% 100%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.calendar-month-picker-item:before{content:'';position:absolute;background-color:var(--f7-calendar-row-border-color);display:block;z-index:15;top:0;right:auto;bottom:auto;left:0;width:1px;height:100%;transform-origin:0% 50%;transform:scaleX(calc(1 / var(--f7-device-pixel-ratio)))}.sheet-modal .calendar-month-picker-item{width:25%;height:calc(100% / 3)}.sheet-modal .calendar-month-picker-item:nth-child(4n+1):before{display:none!important}.sheet-modal .calendar-month-picker-item:nth-child(n+9):after{display:none!important}.calendar-modal .calendar-month-picker-item,.popover .calendar-month-picker-item{width:calc(100% / 3);height:25%}.calendar-modal .calendar-month-picker-item:nth-child(3n+1):before,.popover .calendar-month-picker-item:nth-child(3n+1):before{display:none!important}.calendar-modal .calendar-month-picker-item:nth-child(n+10):after,.popover .calendar-month-picker-item:nth-child(n+10):after{display:none!important}.calendar-month-picker-item-current,.calendar-year-picker-item-current{color:var(--f7-calendar-picker-selected-text-color,var(--f7-theme-color))}.calendar-year-picker{overflow:auto;--webkit-overflow-scrolling:touch}.calendar-year-picker-item{height:34px;line-height:34px;width:100%}.calendar-year-picker-item:after{content:'';position:absolute;background-color:var(--f7-calendar-row-border-color);display:block;z-index:15;top:auto;right:auto;bottom:0;left:0;height:1px;width:100%;transform-origin:50% 100%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.calendar-time-selector{flex-shrink:0;font-size:var(--f7-calendar-time-selector-font-size);position:relative}.calendar-time-selector:before{content:'';position:absolute;background-color:var(--f7-calendar-row-border-color);display:block;z-index:15;top:0;right:auto;bottom:auto;left:0;height:1px;width:100%;transform-origin:50% 0%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.calendar-time-selector a{overflow:hidden;position:relative;justify-content:center;align-items:center;display:flex;width:100%;height:44px}.calendar-time-picker{--f7-picker-popover-height:100%;--f7-picker-inline-height:100%;--f7-picker-item-selected-text-color:var(--f7-theme-color)}.calendar-time-picker .toolbar{flex-shrink:0;top:0!important}.calendar-time-picker .picker{height:100%;display:flex;flex-direction:column}:root{--f7-picker-height:260px;--f7-picker-inline-height:200px;--f7-picker-popover-height:200px;--f7-picker-popover-width:280px;--f7-picker-landscape-height:200px;--f7-picker-item-height:36px;--f7-picker-item-selected-text-color:#000}:root .theme-dark,:root.theme-dark{--f7-picker-item-selected-text-color:#fff}.ios{--f7-picker-column-font-size:20px;--f7-picker-sheet-bg-color:#cfd5da;--f7-picker-divider-text-color:#000;--f7-picker-item-text-color:rgba(0, 0, 0, 0.45);--f7-picker-item-selected-border-color:rgba(0, 0, 0, 0.22)}.ios .theme-dark,.ios.theme-dark{--f7-picker-sheet-bg-color:#1c1c1d;--f7-picker-divider-text-color:#fff;--f7-picker-item-text-color:rgba(255, 255, 255, 0.55);--f7-picker-item-selected-border-color:rgba(255, 255, 255, 0.06)}.md{--f7-picker-column-font-size:20px;--f7-picker-divider-text-color:rgba(0, 0, 0, 0.87);--f7-picker-item-text-color:rgba(0, 0, 0, 0.54);--f7-picker-item-selected-border-color:rgba(0, 0, 0, 0.15)}.md .theme-dark,.md.theme-dark{--f7-picker-item-text-color:rgba(255, 255, 255, 0.54);--f7-picker-divider-text-color:rgba(255, 255, 255, 0.87);--f7-picker-item-selected-border-color:rgba(255, 255, 255, 0.15)}.aurora{--f7-picker-column-font-size:16px;--f7-picker-item-height:28px;--f7-picker-item-text-color:#888;--f7-picker-divider-text-color:#000;--f7-picker-item-selected-border-color:rgba(0, 0, 0, 0.12)}.aurora .theme-dark,.aurora.theme-dark{--f7-picker-divider-text-color:#fff;--f7-picker-item-selected-border-color:rgba(255, 255, 255, 0.06)}.picker{width:100%;height:var(--f7-picker-height)}.picker.picker-inline{height:var(--f7-picker-inline-height)}.popover .picker{height:var(--f7-picker-popover-height)}@media (orientation:landscape) and (max-height:415px){.picker:not(.picker-inline){height:var(--f7-picker-landscape-height)}}.picker.sheet-modal{background:var(--f7-picker-sheet-bg-color,var(--f7-sheet-bg-color))}.picker-popover{width:var(--f7-picker-popover-width)}.picker-popover .toolbar{background:0 0;border-radius:var(--f7-popover-border-radius) var(--f7-popover-border-radius) 0 0}.picker-popover .toolbar:before{display:none!important}.picker-popover .toolbar+.picker-columns{height:calc(100% - var(--f7-toolbar-height))}.picker-columns{display:flex;overflow:hidden;justify-content:center;padding:0;text-align:right;height:100%;position:relative;-webkit-mask-box-image:linear-gradient(to top,transparent,transparent 5%,#fff 20%,#fff 80%,transparent 95%,transparent);font-size:var(--f7-picker-column-font-size)}.picker-column{position:relative;max-height:100%}.picker-column.picker-column-first:before,.picker-column.picker-column-last:after{height:100%;width:100vw;position:absolute;content:'';top:0}.picker-column.picker-column-first:before{right:100%}.picker-column.picker-column-last:after{left:100%}.picker-column.picker-column-left{text-align:left}.picker-column.picker-column-center{text-align:center}.picker-column.picker-column-right{text-align:right}.picker-column.picker-column-divider{display:flex;align-items:center;color:var(--f7-picker-divider-text-color)}.picker-items{transition:.3s;transition-timing-function:ease-out}.picker-item{height:var(--f7-picker-item-height);line-height:var(--f7-picker-item-height);white-space:nowrap;position:relative;overflow:hidden;text-overflow:ellipsis;left:0;top:0;width:100%;box-sizing:border-box;transition:.3s;color:var(--f7-picker-item-text-color);cursor:pointer}.picker-item span{padding:0 10px}.picker-column-absolute .picker-item{position:absolute}.picker-item.picker-item-far{pointer-events:none}.picker-item.picker-item-selected{color:var(--f7-picker-item-selected-text-color);transform:translate3d(0,0,0) rotateX(0deg)}.picker-center-highlight{height:var(--f7-picker-item-height);box-sizing:border-box;position:absolute;left:0;width:100%;top:50%;margin-top:calc(-1 * var(--f7-picker-item-height)/ 2);pointer-events:none}.picker-center-highlight:before{content:'';position:absolute;background-color:var(--f7-picker-item-selected-border-color);display:block;z-index:15;top:0;right:auto;bottom:auto;left:0;height:1px;width:100%;transform-origin:50% 0%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.picker-center-highlight:after{content:'';position:absolute;background-color:var(--f7-picker-item-selected-border-color);display:block;z-index:15;top:auto;right:auto;bottom:0;left:0;height:1px;width:100%;transform-origin:50% 100%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.picker-3d .picker-columns{overflow:hidden;perspective:1200px}.picker-3d .picker-column,.picker-3d .picker-item,.picker-3d .picker-items{transform-style:preserve-3d}.picker-3d .picker-column{overflow:visible}.picker-3d .picker-item{transform-origin:center center -110px;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition-timing-function:ease-out}.infinite-scroll-preloader{margin-left:auto;margin-right:auto;text-align:center}.infinite-scroll-preloader.preloader{display:block}.ios .infinite-scroll-preloader{margin-top:35px;margin-bottom:35px}.ios .infinite-scroll-preloader .preloader,.ios .infinite-scroll-preloader.preloader{width:27px;height:27px}.md .infinite-scroll-preloader{margin-top:32px;margin-bottom:32px}.aurora .infinite-scroll-preloader{margin-top:15px;margin-bottom:15px}.ios{--f7-ptr-preloader-size:28px;--f7-ptr-size:44px}.md{--f7-ptr-preloader-size:22px;--f7-ptr-size:40px}.aurora{--f7-ptr-preloader-size:20px;--f7-ptr-size:38px}.ptr-preloader{position:relative;top:var(--f7-ptr-top,0);height:var(--f7-ptr-size)}.ptr-preloader .preloader{position:absolute;left:50%;width:var(--f7-ptr-preloader-size);height:var(--f7-ptr-preloader-size);margin-left:calc(-1 * var(--f7-ptr-preloader-size)/ 2);margin-top:calc(-1 * var(--f7-ptr-preloader-size)/ 2);top:50%;visibility:hidden}.ptr-bottom .ptr-preloader{top:auto;bottom:0;position:fixed}.ptr-with-navbar-large-transparent .ptr-preloader,.ptr-with-navbar-transparent .ptr-preloader{top:calc(-1 * var(--f7-page-navbar-offset,0px) + var(--f7-safe-area-top))}.ios .ptr-preloader{margin-top:calc(-1 * var(--f7-ptr-size));width:100%;left:0}.ios .ptr-arrow{position:absolute;left:50%;top:50%;background:no-repeat center;z-index:10;transform:rotate(0deg) translate3d(0,0,0);transition-duration:.3s;transition-property:transform,opacity;width:12px;height:20px;margin-left:-6px;margin-top:-10px;visibility:visible;color:var(--f7-preloader-color)}.ios .ptr-arrow:after{font-family:framework7-core-icons;font-weight:400;font-style:normal;line-height:1;letter-spacing:normal;text-transform:none;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;font-feature-settings:"liga";text-align:center;display:block;width:100%;height:100%;font-size:20px;width:12px;height:20px;line-height:20px;font-size:10px;content:'ptr_arrow_ios'}.ios .ptr-content:not(.ptr-refreshing) .ptr-preloader .preloader{animation:none}.ios .ptr-refreshing,.ios .ptr-transitioning{transition-duration:.3s;transition-property:transform}.ios .ptr-refreshing{transform:translate3d(0,var(--f7-ptr-size),0)}.ios .ptr-refreshing .ptr-arrow{visibility:hidden}.ios .ptr-refreshing .ptr-preloader .preloader{visibility:visible}.ios .ptr-pull-up .ptr-arrow{transform:rotate(180deg) translate3d(0,0,0)}.ios .ptr-no-navbar,.ios .ptr-with-navbar-large-transparent,.ios .ptr-with-navbar-transparent{margin-top:calc(-1 * var(--f7-ptr-size));height:calc(100% + var(--f7-ptr-size))}.ios .ptr-no-navbar .ptr-preloader,.ios .ptr-with-navbar-large-transparent .ptr-preloader,.ios .ptr-with-navbar-transparent .ptr-preloader{margin-top:0}.ios .ptr-bottom .ptr-preloader{margin-top:0;margin-bottom:calc(-1 * var(--f7-ptr-size))}.ios .ptr-bottom.ptr-refreshing>*,.ios .ptr-bottom.ptr-transitioning>*{transition-duration:.3s;transition-property:transform}.ios .ptr-bottom.ptr-refreshing{transform:none}.ios .ptr-bottom.ptr-refreshing>*{transform:translate3d(0,calc(-1 * var(--f7-ptr-size)),0)}.ios .ptr-bottom .ptr-arrow{transform:rotate(180deg) translate3d(0,0,0)}.ios .ptr-bottom.ptr-pull-up .ptr-arrow{transform:rotate(0deg) translate3d(0,0,0)}.ios .ptr-with-navbar-large-transparent .ptr-preloader .preloader,.ios .ptr-with-navbar-large-transparent .ptr-preloader .ptr-arrow,.ios .ptr-with-navbar-transparent .ptr-preloader .preloader,.ios .ptr-with-navbar-transparent .ptr-preloader .ptr-arrow{opacity:0;transition-duration:.3s;transition-property:transform,opacity}.ios .ptr-with-navbar-large-transparent.ptr-pull-down .ptr-preloader .preloader,.ios .ptr-with-navbar-large-transparent.ptr-pull-down .ptr-preloader .ptr-arrow,.ios .ptr-with-navbar-large-transparent.ptr-pull-up .ptr-preloader .preloader,.ios .ptr-with-navbar-large-transparent.ptr-pull-up .ptr-preloader .ptr-arrow,.ios .ptr-with-navbar-large-transparent.ptr-refreshing .ptr-preloader .preloader,.ios .ptr-with-navbar-large-transparent.ptr-refreshing .ptr-preloader .ptr-arrow,.ios .ptr-with-navbar-transparent.ptr-pull-down .ptr-preloader .preloader,.ios .ptr-with-navbar-transparent.ptr-pull-down .ptr-preloader .ptr-arrow,.ios .ptr-with-navbar-transparent.ptr-pull-up .ptr-preloader .preloader,.ios .ptr-with-navbar-transparent.ptr-pull-up .ptr-preloader .ptr-arrow,.ios .ptr-with-navbar-transparent.ptr-refreshing .ptr-preloader .preloader,.ios .ptr-with-navbar-transparent.ptr-refreshing .ptr-preloader .ptr-arrow{opacity:1}.ios .ptr-with-navbar-large-transparent.ptr-closing .ptr-preloader .preloader,.ios .ptr-with-navbar-large-transparent.ptr-closing .ptr-preloader .ptr-arrow,.ios .ptr-with-navbar-transparent.ptr-closing .ptr-preloader .preloader,.ios .ptr-with-navbar-transparent.ptr-closing .ptr-preloader .ptr-arrow{opacity:0;transition-duration:.3s}.md{--f7-ptr-top:-4px}.md .ptr-preloader{width:var(--f7-ptr-size);border-radius:50%;background:#fff;margin-top:calc(-1 * var(--f7-ptr-size));z-index:100;box-shadow:var(--f7-elevation-1);left:50%;margin-left:calc(-1 * var(--f7-ptr-size)/ 2)}.md .ptr-preloader .preloader .preloader-inner-gap,.md .ptr-preloader .preloader .preloader-inner-half-circle{border-width:3px}.md .ptr-arrow{width:22px;height:22px;box-sizing:border-box;border:3px solid var(--f7-preloader-color);position:absolute;left:50%;top:50%;margin-left:-11px;margin-top:-11px;border-left-color:transparent;border-radius:50%;opacity:1;transform:rotate(150deg)}.md .ptr-arrow:after{content:'';width:0px;height:0px;position:absolute;left:-5px;bottom:0px;border-bottom-width:6px;border-bottom-style:solid;border-bottom-color:inherit;border-left:5px solid transparent;border-right:5px solid transparent;transform:rotate(-40deg)}.md .ptr-content:not(.ptr-refreshing):not(.ptr-pull-up) .ptr-preloader .preloader,.md .ptr-content:not(.ptr-refreshing):not(.ptr-pull-up) .ptr-preloader .preloader *{animation:none}.md .ptr-pull-up .ptr-preloader .preloader,.md .ptr-refreshing .ptr-preloader .preloader{visibility:visible}.md .ptr-pull-up .ptr-arrow,.md .ptr-refreshing .ptr-arrow{visibility:hidden}.md .ptr-refreshing .ptr-preloader{transform:translate3d(0,66px,0)}.md .ptr-transitioning .ptr-arrow{transition:.3s}.md .ptr-pull-up .ptr-arrow{transition:.4s;transform:rotate(620deg)!important;opacity:0}.md .ptr-refreshing .ptr-preloader,.md .ptr-transitioning .ptr-preloader{transition-duration:.3s;transition-property:transform,opacity}.md .ptr-bottom .ptr-preloader{margin-top:0;margin-bottom:calc(-1 * var(--f7-ptr-size) - 4px)}.md .ptr-bottom.ptr-refreshing .ptr-preloader{transform:translate3d(0,-66px,0)}.md .ptr-with-navbar-large-transparent .ptr-preloader,.md .ptr-with-navbar-transparent .ptr-preloader{opacity:0}.md .ptr-with-navbar-large-transparent.ptr-pull-down .ptr-preloader,.md .ptr-with-navbar-large-transparent.ptr-pull-up .ptr-preloader,.md .ptr-with-navbar-large-transparent.ptr-refreshing .ptr-preloader,.md .ptr-with-navbar-transparent.ptr-pull-down .ptr-preloader,.md .ptr-with-navbar-transparent.ptr-pull-up .ptr-preloader,.md .ptr-with-navbar-transparent.ptr-refreshing .ptr-preloader{opacity:1}.md .ptr-with-navbar-large-transparent.ptr-closing .ptr-preloader,.md .ptr-with-navbar-transparent.ptr-closing .ptr-preloader{opacity:0;transition-duration:.3s}.aurora .ptr-preloader{margin-top:calc(-1 * var(--f7-ptr-size));width:100%;left:0}.aurora .ptr-arrow{position:absolute;left:50%;top:50%;background:no-repeat center;z-index:10;transform:rotate(0deg) translate3d(0,0,0);transition-duration:.3s;transition-property:transform,opacity;width:12px;height:20px;margin-left:-6px;margin-top:-10px;visibility:visible;color:var(--f7-preloader-color)}.aurora .ptr-arrow:after{font-family:framework7-core-icons;font-weight:400;font-style:normal;line-height:1;letter-spacing:normal;text-transform:none;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;font-feature-settings:"liga";text-align:center;display:block;width:100%;height:100%;font-size:20px;width:12px;height:20px;line-height:20px;font-size:8px;content:'ptr_arrow_ios'}.aurora .ptr-content:not(.ptr-refreshing) .ptr-preloader .preloader{animation:none}.aurora .ptr-refreshing,.aurora .ptr-transitioning{transition-duration:.3s;transition-property:transform}.aurora .ptr-refreshing{transform:translate3d(0,var(--f7-ptr-size),0)}.aurora .ptr-refreshing .ptr-arrow{visibility:hidden}.aurora .ptr-refreshing .ptr-preloader .preloader{visibility:visible}.aurora .ptr-pull-up .ptr-arrow{transform:rotate(180deg) translate3d(0,0,0)}.aurora .ptr-no-navbar,.aurora .ptr-with-navbar-large-transparent,.aurora .ptr-with-navbar-transparent{margin-top:calc(-1 * var(--f7-ptr-size));height:calc(100% + var(--f7-ptr-size))}.aurora .ptr-no-navbar .ptr-preloader,.aurora .ptr-with-navbar-large-transparent .ptr-preloader,.aurora .ptr-with-navbar-transparent .ptr-preloader{margin-top:0}.aurora .ptr-bottom .ptr-preloader{margin-top:0;margin-bottom:calc(-1 * var(--f7-ptr-size))}.aurora .ptr-bottom.ptr-refreshing>*,.aurora .ptr-bottom.ptr-transitioning>*{transition-duration:.3s;transition-property:transform}.aurora .ptr-bottom.ptr-refreshing{transform:none}.aurora .ptr-bottom.ptr-refreshing>*{transform:translate3d(0,calc(-1 * var(--f7-ptr-size)),0)}.aurora .ptr-bottom .ptr-arrow{transform:rotate(180deg) translate3d(0,0,0)}.aurora .ptr-bottom.ptr-pull-up .ptr-arrow{transform:rotate(0deg) translate3d(0,0,0)}.aurora .ptr-with-navbar-large-transparent .ptr-preloader .preloader,.aurora .ptr-with-navbar-large-transparent .ptr-preloader .ptr-arrow,.aurora .ptr-with-navbar-transparent .ptr-preloader .preloader,.aurora .ptr-with-navbar-transparent .ptr-preloader .ptr-arrow{opacity:0;transition-duration:.3s;transition-property:transform,opacity}.aurora .ptr-with-navbar-large-transparent.ptr-pull-down .ptr-preloader .preloader,.aurora .ptr-with-navbar-large-transparent.ptr-pull-down .ptr-preloader .ptr-arrow,.aurora .ptr-with-navbar-large-transparent.ptr-pull-up .ptr-preloader .preloader,.aurora .ptr-with-navbar-large-transparent.ptr-pull-up .ptr-preloader .ptr-arrow,.aurora .ptr-with-navbar-large-transparent.ptr-refreshing .ptr-preloader .preloader,.aurora .ptr-with-navbar-large-transparent.ptr-refreshing .ptr-preloader .ptr-arrow,.aurora .ptr-with-navbar-transparent.ptr-pull-down .ptr-preloader .preloader,.aurora .ptr-with-navbar-transparent.ptr-pull-down .ptr-preloader .ptr-arrow,.aurora .ptr-with-navbar-transparent.ptr-pull-up .ptr-preloader .preloader,.aurora .ptr-with-navbar-transparent.ptr-pull-up .ptr-preloader .ptr-arrow,.aurora .ptr-with-navbar-transparent.ptr-refreshing .ptr-preloader .preloader,.aurora .ptr-with-navbar-transparent.ptr-refreshing .ptr-preloader .ptr-arrow{opacity:1}.aurora .ptr-with-navbar-large-transparent.ptr-closing .ptr-preloader .preloader,.aurora .ptr-with-navbar-large-transparent.ptr-closing .ptr-preloader .ptr-arrow,.aurora .ptr-with-navbar-transparent.ptr-closing .ptr-preloader .preloader,.aurora .ptr-with-navbar-transparent.ptr-closing .ptr-preloader .ptr-arrow{opacity:0;transition-duration:.3s}.lazy-loaded.lazy-fade-in{animation:lazyFadeIn .6s}@keyframes lazyFadeIn{from{opacity:0}to{opacity:1}}:root{--f7-table-head-font-size:12px;--f7-table-body-font-size:14px;--f7-table-footer-font-size:12px;--f7-table-input-height:24px;--f7-table-input-font-size:14px;--f7-table-collapsible-cell-padding:16px;--f7-table-link-icon-only-icon-size:20px;--f7-table-sortable-icon-color:#000}:root .theme-dark,:root.theme-dark{--f7-table-cell-border-color:rgba(255, 255, 255, 0.15);--f7-table-sortable-icon-color:#fff;--f7-table-input-text-color:#fff}.ios{--f7-table-head-font-weight:600;--f7-table-head-cell-height:44px;--f7-table-head-icon-size:18px;--f7-table-body-cell-height:44px;--f7-table-cell-padding-vertical:0px;--f7-table-cell-padding-horizontal:16px;--f7-table-edge-cell-padding-horizontal:16px;--f7-table-label-cell-padding-horizontal:16px;--f7-table-checkbox-cell-width:22px;--f7-table-title-font-size:17px;--f7-table-title-font-weight:600;--f7-table-card-header-height:64px;--f7-table-footer-height:44px;--f7-table-head-text-color:rgba(0, 0, 0, 0.45);--f7-table-cell-border-color:rgba(0, 0, 0, 0.22);--f7-table-selected-row-bg-color:rgba(0, 0, 0, 0.03);--f7-table-footer-text-color:rgba(0, 0, 0, 0.45);--f7-table-input-text-color:#000}.ios .theme-dark,.ios.theme-dark{--f7-table-head-text-color:rgba(255, 255, 255, 0.55);--f7-table-footer-text-color:rgba(255, 255, 255, 0.55);--f7-table-selected-row-bg-color:rgba(255, 255, 255, 0.08)}.md{--f7-table-head-font-weight:500;--f7-table-head-cell-height:56px;--f7-table-head-icon-size:16px;--f7-table-body-cell-height:48px;--f7-table-cell-padding-vertical:0px;--f7-table-cell-padding-horizontal:28px;--f7-table-edge-cell-padding-horizontal:24px;--f7-table-label-cell-padding-horizontal:24px;--f7-table-checkbox-cell-width:18px;--f7-table-title-font-size:20px;--f7-table-title-font-weight:400;--f7-table-card-header-height:64px;--f7-table-footer-height:56px;--f7-table-head-text-color:rgba(0, 0, 0, 0.54);--f7-table-cell-border-color:rgba(0, 0, 0, 0.12);--f7-table-actions-cell-link-color:rgba(0, 0, 0, 0.54);--f7-table-selected-row-bg-color:#f5f5f5;--f7-table-actions-link-color:rgba(0, 0, 0, 0.54);--f7-table-footer-text-color:rgba(0, 0, 0, 0.54);--f7-table-input-text-color:#212121}.md .theme-dark,.md.theme-dark{--f7-table-head-text-color:rgba(255, 255, 255, 0.54);--f7-table-footer-text-color:rgba(255, 255, 255, 0.54);--f7-table-selected-row-bg-color:rgba(255, 255, 255, 0.05);--f7-table-actions-cell-link-color:rgba(255, 255, 255, 0.54);--f7-table-actions-link-color:rgba(255, 255, 255, 0.54)}.aurora{--f7-table-link-icon-only-icon-size:18px;--f7-table-head-font-weight:400;--f7-table-head-cell-height:32px;--f7-table-head-icon-size:18px;--f7-table-body-cell-height:32px;--f7-table-cell-padding-vertical:5px;--f7-table-cell-padding-horizontal:10px;--f7-table-edge-cell-padding-horizontal:16px;--f7-table-label-cell-padding-horizontal:16px;--f7-table-checkbox-cell-width:22px;--f7-table-title-font-size:14px;--f7-table-title-font-weight:600;--f7-table-card-header-height:42px;--f7-table-footer-height:32px;--f7-table-head-text-color:rgba(0, 0, 0, 0.6);--f7-table-cell-border-color:rgba(0, 0, 0, 0.12);--f7-table-selected-row-bg-color:rgba(0, 0, 0, 0.03);--f7-table-footer-text-color:rgba(0, 0, 0, 0.5);--f7-table-input-text-color:#000}.aurora .theme-dark,.aurora.theme-dark{--f7-table-selected-row-bg-color:rgba(255, 255, 255, 0.03);--f7-table-head-text-color:rgba(255, 255, 255, 0.54);--f7-table-footer-text-color:rgba(255, 255, 255, 0.54)}.data-table{overflow-x:auto}.data-table table,table.data-table{width:100%;border:none;padding:0;margin:0;border-collapse:collapse;text-align:left}.data-table thead td,.data-table thead th{font-size:var(--f7-table-head-font-size);font-weight:var(--f7-table-head-font-weight);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;line-height:16px;height:var(--f7-table-head-cell-height)}.data-table thead td:not(.sortable-cell-active),.data-table thead th:not(.sortable-cell-active){color:var(--f7-table-head-text-color)}.data-table thead i.f7-icons,.data-table thead i.icon,.data-table thead i.material-icons{vertical-align:top;font-size:var(--f7-table-head-icon-size)}.data-table tbody{font-size:var(--f7-table-body-font-size)}.data-table tbody td,.data-table tbody th{height:var(--f7-table-body-cell-height)}.data-table tbody tr.data-table-row-selected,.device-desktop .data-table tbody tr:hover{background:var(--f7-table-selected-row-bg-color)}.data-table tbody td:before,.data-table tbody th:before{content:'';position:absolute;background-color:var(--f7-table-cell-border-color);display:block;z-index:15;top:0;right:auto;bottom:auto;left:0;height:1px;width:100%;transform-origin:50% 0%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.data-table td,.data-table th{--f7-table-cell-padding-left:var(--f7-table-cell-padding-horizontal);--f7-table-cell-padding-right:var(--f7-table-cell-padding-horizontal);padding-top:var(--f7-table-cell-padding-vertical);padding-bottom:var(--f7-table-cell-padding-vertical);padding-left:var(--f7-table-cell-padding-left);padding-right:var(--f7-table-cell-padding-right);position:relative;box-sizing:border-box}.data-table td:first-child,.data-table th:first-child{--f7-table-cell-padding-left:var(--f7-table-edge-cell-padding-horizontal)}.data-table td:last-child,.data-table th:last-child{--f7-table-cell-padding-right:var(--f7-table-edge-cell-padding-horizontal)}.data-table td.label-cell,.data-table th.label-cell{--f7-table-cell-padding-left:var(--f7-table-label-cell-padding-horizontal);--f7-table-cell-padding-right:var(--f7-table-label-cell-padding-horizontal)}.data-table td.numeric-cell,.data-table th.numeric-cell{text-align:right}.data-table td.checkbox-cell,.data-table th.checkbox-cell{overflow:visible;width:var(--f7-table-checkbox-cell-width)}.data-table td.checkbox-cell label+span,.data-table th.checkbox-cell label+span{margin-left:8px}.data-table td.checkbox-cell:first-child,.data-table th.checkbox-cell:first-child{padding-right:calc(var(--f7-table-cell-padding-right)/ 2)}.data-table td.checkbox-cell:first-child+td,.data-table td.checkbox-cell:first-child+th,.data-table th.checkbox-cell:first-child+td,.data-table th.checkbox-cell:first-child+th{padding-left:calc(var(--f7-table-cell-padding-left)/ 2)}.data-table td.checkbox-cell:last-child,.data-table th.checkbox-cell:last-child{padding-left:calc(var(--f7-table-cell-padding-left)/ 2)}.data-table td.actions-cell,.data-table th.actions-cell{text-align:right;white-space:nowrap}.data-table td.actions-cell a.link,.data-table th.actions-cell a.link{color:var(--f7-table-actions-cell-link-color,var(--f7-theme-color))}.card .data-table td a.icon-only,.card .data-table th a.icon-only,.card.data-table td a.icon-only,.card.data-table th a.icon-only,.data-table td a.icon-only,.data-table th a.icon-only{display:inline-block;vertical-align:middle;text-align:center;font-size:0;min-width:0}.card .data-table td a.icon-only i,.card .data-table th a.icon-only i,.card.data-table td a.icon-only i,.card.data-table th a.icon-only i,.data-table td a.icon-only i,.data-table th a.icon-only i{font-size:var(--f7-table-link-icon-only-icon-size);vertical-align:middle}.data-table .sortable-cell:not(.input-cell){cursor:pointer;position:relative}.data-table .sortable-cell.input-cell .table-head-label{cursor:pointer;position:relative}.data-table .sortable-cell.numeric-cell.input-cell>.table-head-label:before,.data-table .sortable-cell.numeric-cell:not(.input-cell):before,.data-table .sortable-cell:not(.numeric-cell).input-cell>.table-head-label:after,.data-table .sortable-cell:not(.numeric-cell):not(.input-cell):after{content:'arrow_bottom_md';font-family:framework7-core-icons;font-weight:400;font-style:normal;line-height:1;letter-spacing:normal;text-transform:none;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;font-feature-settings:"liga";text-align:center;display:block;width:100%;height:100%;font-size:20px;display:inline-block;vertical-align:top;width:16px;height:16px;color:var(--f7-table-sortable-icon-color);font-size:13px;line-height:16px;transition-duration:.3s;transform:rotate(0);opacity:0}.device-desktop .data-table .sortable-cell:not(.sortable-cell-active) .table-head-label:hover:after,.device-desktop .data-table .sortable-cell:not(.sortable-cell-active) .table-head-label:hover:before,.device-desktop .data-table .sortable-cell:not(.sortable-cell-active):hover:after,.device-desktop .data-table .sortable-cell:not(.sortable-cell-active):hover:before{opacity:.54}.data-table .sortable-cell.sortable-cell-active .table-head-label:after,.data-table .sortable-cell.sortable-cell-active .table-head-label:before,.data-table .sortable-cell.sortable-cell-active:after,.data-table .sortable-cell.sortable-cell-active:before{opacity:.87!important}.data-table .sortable-cell.sortable-desc:after,.data-table .sortable-cell.sortable-desc:before,.data-table .table-head-label:after,.data-table .table-head-label:before{transform:rotate(180deg)!important}.card .data-table .card-footer,.card .data-table .card-header,.data-table.card .card-footer,.data-table.card .card-header{padding-left:var(--f7-table-edge-cell-padding-horizontal);padding-right:var(--f7-table-edge-cell-padding-horizontal)}.card .data-table .card-header,.data-table.card .card-header{min-height:var(--f7-table-card-header-height)}.card .data-table .card-content,.data-table.card .card-content{overflow-x:auto}.card .data-table .card-footer,.data-table.card .card-footer{min-height:var(--f7-table-footer-height)}.data-table .data-table-title{font-size:var(--f7-table-title-font-size);font-weight:var(--f7-table-title-font-weight)}.data-table .data-table-actions,.data-table .data-table-links{display:flex}.data-table .data-table-links .button{min-width:64px}.data-table .data-table-actions{margin-left:auto;align-items:center}.data-table .data-table-actions a.link{color:var(--f7-table-actions-link-color,var(--f7-theme-color));min-width:0}.data-table .data-table-actions a.link.icon-only{line-height:1;justify-content:center;padding:0}.data-table .data-table-header,.data-table .data-table-header-selected{display:flex;justify-content:space-between;align-items:center;width:100%}.data-table .card-header>.data-table-header,.data-table .card-header>.data-table-header-selected{padding-top:var(--f7-card-header-padding-vertical);padding-bottom:var(--f7-card-header-padding-vertical);height:100%;padding-left:var(--f7-table-edge-cell-padding-horizontal);padding-right:var(--f7-table-edge-cell-padding-horizontal);margin-left:calc(-1 * var(--f7-table-edge-cell-padding-horizontal));margin-right:calc(-1 * var(--f7-table-edge-cell-padding-horizontal))}.data-table .data-table-header-selected{background:rgba(var(--f7-theme-color-rgb),.1);display:none}.data-table.data-table-has-checked .data-table-header{display:none}.data-table.data-table-has-checked .data-table-header-selected{display:flex}.data-table .data-table-title-selected{font-size:14px;color:var(--f7-theme-color)}.data-table .data-table-footer{display:flex;align-items:center;box-sizing:border-box;position:relative;font-size:var(--f7-table-footer-font-size);overflow:hidden;min-height:var(--f7-table-footer-height);color:var(--f7-table-footer-text-color);justify-content:flex-end}.data-table .data-table-footer:before{content:'';position:absolute;background-color:var(--f7-table-cell-border-color);display:block;z-index:15;top:0;right:auto;bottom:auto;left:0;height:1px;width:100%;transform-origin:50% 0%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.data-table .data-table-pagination,.data-table .data-table-rows-select{display:flex;align-items:center}.data-table .input-cell{padding-top:8px;padding-bottom:8px;height:auto;vertical-align:top}.data-table .input-cell .table-head-label+.input{margin-top:4px}.data-table .input-cell .input{height:var(--f7-table-input-height)}.data-table .input-cell .input input,.data-table .input-cell .input select,.data-table .input-cell .input textarea{height:var(--f7-table-input-height);color:var(--f7-table-input-text-color);font-size:var(--f7-table-input-font-size)}@media (max-width:480px) and (orientation:portrait){.data-table.data-table-collapsible thead{display:none}.data-table.data-table-collapsible tbody,.data-table.data-table-collapsible td,.data-table.data-table-collapsible tr{display:block}.data-table.data-table-collapsible tr{position:relative}.data-table.data-table-collapsible tr:before{content:'';position:absolute;background-color:var(--f7-table-cell-border-color);display:block;z-index:15;top:0;right:auto;bottom:auto;left:0;height:1px;width:100%;transform-origin:50% 0%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.data-table.data-table-collapsible tr:hover{background-color:inherit}.data-table.data-table-collapsible td{--f7-table-cell-padding-left:var(--f7-table-collapsible-cell-padding);--f7-table-cell-padding-right:var(--f7-table-collapsible-cell-padding);height:auto;min-height:var(--f7-table-body-cell-height);display:flex;align-content:center;align-items:center;justify-content:flex-start;text-align:left}.data-table.data-table-collapsible td:before{display:none!important}.data-table.data-table-collapsible td:not(.checkbox-cell):before{width:40%;display:block!important;content:attr(data-collapsible-title);position:relative;height:auto;background:0 0!important;transform:none!important;font-size:var(--f7-table-head-font-size);font-weight:var(--f7-table-head-font-weight);color:var(--f7-table-head-text-color);margin-right:16px;flex-shrink:0}.data-table.data-table-collapsible td.checkbox-cell{position:absolute;top:0;left:0}.data-table.data-table-collapsible td.checkbox-cell+td{padding-left:16px}.data-table.data-table-collapsible td.checkbox-cell~td{margin-left:32px}}.data-table .xsmall-landscape-only,.data-table .xsmall-only{display:none}@media (min-width:480px){.data-table .xsmall-only{display:table-cell}}@media (min-width:480px) and (orientation:landscape){.data-table .xsmall-landscape-only{display:table-cell}}.data-table .small-landscape-only,.data-table .small-only{display:none}@media (min-width:568px){.data-table .small-only{display:table-cell}}@media (min-width:568px) and (orientation:landscape){.data-table .small-landscape-only{display:table-cell}}.data-table .medium-landscape-only,.data-table .medium-only{display:none}@media (min-width:768px){.data-table .medium-only{display:table-cell}}@media (min-width:768px) and (orientation:landscape){.data-table .medium-landscape-only{display:table-cell}}.data-table .large-landscape-only,.data-table .large-only{display:none}@media (min-width:1024px){.data-table .large-only{display:table-cell}}@media (min-width:1024px) and (orientation:landscape){.data-table .large-landscape-only{display:table-cell}}.data-table .xlarge-landscape-only,.data-table .xlarge-only{display:none}@media (min-width:1200px){.data-table .xlarge-only{display:table-cell}}@media (min-width:1200px) and (orientation:landscape){.data-table .xlarge-landscape-only{display:table-cell}}.ios .data-table td.actions-cell a.link+a.link,.ios .data-table th.actions-cell a.link+a.link{margin-left:16px}.ios .sortable-cell:not(.numeric-cell):after{margin-left:5px}.ios .sortable-cell.numeric-cell:before{margin-right:5px}.ios .data-table-actions .button+.button,.ios .data-table-actions a.link+a.link,.ios .data-table-links .button+.button,.ios .data-table-links a.link+a.link{margin-left:16px}.ios .data-table-actions a.link.icon-only{width:44px;height:44px}.ios .data-table-pagination a.link,.ios .data-table-rows-select a.link{width:44px;height:44px}.ios .data-table-rows-select+.data-table-pagination{margin-left:30px}.ios .data-table-rows-select .input{margin-left:20px}.ios .data-table-pagination-label{margin-right:16px}.md .data-table td.actions-cell a.link+a.link,.md .data-table th.actions-cell a.link+a.link{margin-left:24px}.md .data-table td.actions-cell a.icon-only,.md .data-table th.actions-cell a.icon-only{width:24px;height:24px;line-height:24px}.md .sortable-cell:not(.numeric-cell):after{margin-left:8px}.md .sortable-cell.numeric-cell:before{margin-right:8px}.md .data-table-actions .button+.button,.md .data-table-actions a.link+a.link,.md .data-table-links .button+.button,.md .data-table-links a.link+a.link{margin-left:24px}.md .data-table-actions a.link.icon-only{width:24px;height:24px;overflow:visible}.md .data-table-actions a.link.icon-only.active-state{background:0 0}.md .data-table-pagination a.link,.md .data-table-rows-select a.link{width:48px;height:48px}.md .data-table-pagination a.link:before,.md .data-table-rows-select a.link:before{content:'';width:152%;height:152%;position:absolute;left:-26%;top:-26%;background-image:radial-gradient(circle at center,var(--f7-link-highlight-color) 66%,rgba(255,255,255,0) 66%);background-repeat:no-repeat;background-position:center;background-size:100% 100%;opacity:0;pointer-events:none;transition-duration:.6s}.md .data-table-pagination a.link.active-state:before,.md .data-table-rows-select a.link.active-state:before{opacity:1;transition-duration:150ms}.md .data-table-rows-select+.data-table-pagination{margin-left:32px}.md .data-table-rows-select .input{margin-left:24px}.md .data-table-pagination-label{margin-right:20px}.md .input-cell .input-clear-button{transform:scale(.8)}.aurora .data-table td.actions-cell a.link+a.link,.aurora .data-table th.actions-cell a.link+a.link{margin-left:10px}.aurora .sortable-cell:not(.numeric-cell):after{margin-left:5px}.aurora .sortable-cell.numeric-cell:before{margin-right:5px}.aurora .data-table-actions .button+.button,.aurora .data-table-actions a.link+a.link,.aurora .data-table-links .button+.button,.aurora .data-table-links a.link+a.link{margin-left:10px}.aurora .data-table-pagination a.link,.aurora .data-table-rows-select a.link{width:32px;height:32px}.aurora .data-table-rows-select+.data-table-pagination{margin-left:16px}.aurora .data-table-rows-select .input{margin-left:10px}.aurora .data-table-pagination-label{margin-right:10px}:root{--f7-fab-margin:16px;--f7-fab-text-color:#fff;--f7-fab-extended-text-font-size:14px;--f7-fab-extended-text-padding:0 20px;--f7-fab-label-bg-color:#fff;--f7-fab-label-text-color:#333;--f7-fab-label-border-radius:4px;--f7-fab-label-padding:4px 12px;--f7-fab-button-size:40px}.ios{--f7-fab-size:50px;--f7-fab-box-shadow:0px 2px 4px rgba(0, 0, 0, 0.4);--f7-fab-extended-size:50px;--f7-fab-extended-text-font-weight:600;--f7-fab-extended-text-letter-spacing:0;--f7-fab-label-box-shadow:0px 1px 2px rgba(0, 0, 0, 0.4);--f7-fab-label-font-size:inherit}.md{--f7-fab-size:56px;--f7-fab-box-shadow:var(--f7-elevation-6);--f7-fab-extended-size:48px;--f7-fab-extended-text-font-weight:500;--f7-fab-extended-text-letter-spacing:0.03em;--f7-fab-label-box-shadow:var(--f7-elevation-3);--f7-fab-label-font-size:inherit}.aurora{--f7-fab-size:40px;--f7-fab-box-shadow:0px 2px 4px rgba(0, 0, 0, 0.4);--f7-fab-extended-size:38px;--f7-fab-extended-text-font-weight:500;--f7-fab-extended-text-letter-spacing:0;--f7-fab-label-box-shadow:0px 1px 2px rgba(0, 0, 0, 0.4);--f7-fab-label-font-size:12px}.fab-backdrop{z-index:1400}.fab{position:absolute;z-index:1500}.fab a{--f7-touch-ripple-color:var(--f7-touch-ripple-white)}.fab-left-bottom,.fab-left-center,.fab-left-top{left:calc(var(--f7-fab-margin) + var(--f7-safe-area-left))}.fab-right-bottom,.fab-right-center,.fab-right-top{right:calc(var(--f7-fab-margin) + var(--f7-safe-area-right))}.fab-center-top,.fab-left-top,.fab-right-top{top:var(--f7-fab-margin)}.fab-center-bottom,.fab-left-bottom,.fab-right-bottom{bottom:calc(var(--f7-fab-margin) + var(--f7-safe-area-bottom))}.fab-center-bottom,.fab-center-center,.fab-center-top{left:50%;transform:translateX(-50%)}.fab-center-center,.fab-left-center,.fab-right-center{top:50%;transform:translateY(-50%)}.fab-center-center{top:50%;left:50%;transform:translateX(-50%) translateY(-50%)}.fab-buttons a,.fab>a{background-color:var(--f7-fab-bg-color,var(--f7-theme-color));width:var(--f7-fab-size);height:var(--f7-fab-size);box-shadow:var(--f7-fab-box-shadow);border-radius:calc(var(--f7-fab-size)/ 2);position:relative;transition-duration:.3s;display:flex;align-items:center;justify-content:center;overflow:hidden;z-index:1;color:var(--f7-fab-text-color)}.fab-buttons a.active-state,.fab>a.active-state{background-color:var(--f7-fab-pressed-bg-color,var(--f7-theme-color-shade))}.fab>a i{position:absolute;left:50%;top:50%;transform:translate3d(-50%,-50%,0) rotate(0deg) scale(1);transition:.3s}.fab>a i+i{transform:translate3d(-50%,-50%,0) rotate(-90deg) scale(.5);opacity:0}.fab-buttons a{border-radius:calc(var(--f7-fab-button-size)/ 2);width:var(--f7-fab-button-size);height:var(--f7-fab-button-size)}.fab-buttons{display:flex;visibility:hidden;pointer-events:none;position:absolute}.fab-buttons a{opacity:0}.fab-opened:not(.fab-morph)>a i{transform:translate3d(-50%,-50%,0) rotate(90deg) scale(.5);opacity:0}.fab-opened:not(.fab-morph)>a i+i{transform:translate3d(-50%,-50%,0) rotate(0deg) scale(1);opacity:1}.fab-opened .fab-buttons{visibility:visible;pointer-events:auto}.fab-opened .fab-buttons a{opacity:1;transform:translate3d(0,0px,0) scale(1)!important}.fab-opened .fab-buttons a:nth-child(2){transition-delay:50ms}.fab-opened .fab-buttons a:nth-child(3){transition-delay:.1s}.fab-opened .fab-buttons a:nth-child(4){transition-delay:150ms}.fab-opened .fab-buttons a:nth-child(5){transition-delay:.2s}.fab-opened .fab-buttons a:nth-child(6){transition-delay:250ms}.fab-buttons-bottom,.fab-buttons-top{left:50%;width:var(--f7-fab-button-size);margin-left:calc(-1 * var(--f7-fab-button-size)/ 2)}.fab-buttons-top{bottom:100%;margin-bottom:16px;flex-direction:column-reverse}.fab-buttons-top a{transform:translate3d(0,8px,0) scale(.3);transform-origin:center bottom}.fab-buttons-top a+a{margin-bottom:16px}.fab-buttons-bottom{top:100%;margin-top:16px;flex-direction:column}.fab-buttons-bottom a{transform:translate3d(0,-8px,0) scale(.3);transform-origin:center top}.fab-buttons-bottom a+a{margin-top:16px}.fab-buttons-left,.fab-buttons-right{top:50%;height:var(--f7-fab-button-size);margin-top:calc(-1 * var(--f7-fab-button-size)/ 2)}.fab-buttons-left{right:100%;margin-right:16px;flex-direction:row-reverse}.fab-buttons-left a{transform:translate3d(8px,0px,0) scale(.3);transform-origin:right center}.fab-buttons-left a+a{margin-right:16px}.fab-buttons-right{left:100%;margin-left:16px}.fab-buttons-right a{transform:translate3d(-8px,0,0) scale(.3);transform-origin:left center}.fab-buttons-right a+a{margin-left:16px}.fab-buttons-center{left:0%;top:0%;width:100%;height:100%}.fab-buttons-center a{position:absolute}.fab-buttons-center a:nth-child(1){left:50%;margin-left:calc(-1 * var(--f7-fab-button-size)/ 2);bottom:100%;margin-bottom:16px;transform:translateY(-8px) scale(.3);transform-origin:center bottom}.fab-buttons-center a:nth-child(2){left:100%;margin-top:calc(-1 * var(--f7-fab-button-size)/ 2);top:50%;margin-left:16px;transform:translateX(-8px) scale(.3);transform-origin:left center}.fab-buttons-center a:nth-child(3){left:50%;margin-left:calc(-1 * var(--f7-fab-button-size)/ 2);top:100%;margin-top:16px;transform:translateY(8px) scale(.3);transform-origin:center top}.fab-buttons-center a:nth-child(4){right:100%;margin-top:calc(-1 * var(--f7-fab-button-size)/ 2);top:50%;margin-right:16px;transform:translateX(8px) scale(.3);transform-origin:right center}.fab-morph{border-radius:calc(var(--f7-fab-size)/ 2);background:var(--f7-fab-bg-color,var(--f7-theme-color));box-shadow:var(--f7-fab-box-shadow)}.fab-morph>a{box-shadow:none;background:0 0!important}.fab-opened.fab-morph>a i{opacity:0}.fab-morph,.fab-morph-target,.fab-morph>a{transition-duration:250ms}.fab-morph-target:not(.fab-morph-target-visible){display:none}.fab-extended{width:auto;min-width:var(--f7-fab-extended-size)}.fab-extended>a{width:100%;height:var(--f7-fab-extended-size)}.fab-extended>a i{left:calc(var(--f7-fab-extended-size)/ 2)}.fab-extended i~.fab-text{padding-left:var(--f7-fab-extended-size)}.fab-extended>a{width:100%!important}.fab-text{box-sizing:border-box;font-size:var(--f7-fab-extended-text-font-size);padding:var(--f7-fab-extended-text-padding);font-weight:var(--f7-fab-extended-text-font-weight);letter-spacing:var(--f7-fab-extended-text-letter-spacing);text-transform:uppercase}.fab-label-button{overflow:visible!important}.fab-label{position:absolute;top:50%;padding:var(--f7-fab-label-padding);border-radius:var(--f7-fab-label-border-radius);background:var(--f7-fab-label-bg-color);color:var(--f7-fab-label-text-color);box-shadow:var(--f7-fab-label-box-shadow);white-space:nowrap;transform:translateY(-50%);pointer-events:none;font-size:var(--f7-fab-label-font-size)}.fab-right-bottom .fab-label,.fab-right-center .fab-label,.fab-right-top .fab-label{right:100%;margin-right:8px}.fab-left-bottom .fab-label,.fab-left-center .fab-label,.fab-left-top .fab-label{left:100%;margin-left:8px}.navbars~* .fab-center-top,.navbars~* .fab-left-top,.navbars~* .fab-right-top,.navbars~.fab-center-top,.navbars~.fab-left-top,.navbars~.fab-right-top,.navbar~* .fab-center-top,.navbar~* .fab-left-top,.navbar~* .fab-right-top,.navbar~.fab-center-top,.navbar~.fab-left-top,.navbar~.fab-right-top{margin-top:calc(var(--f7-navbar-height) + var(--f7-safe-area-top))}.ios .toolbar-top-ios~* .fab-center-top,.ios .toolbar-top-ios~* .fab-left-top,.ios .toolbar-top-ios~* .fab-right-top,.ios .toolbar-top-ios~.fab-center-top,.ios .toolbar-top-ios~.fab-left-top,.ios .toolbar-top-ios~.fab-right-top,.md .toolbar-top-md~* .fab-center-top,.md .toolbar-top-md~* .fab-left-top,.md .toolbar-top-md~* .fab-right-top,.md .toolbar-top-md~.fab-center-top,.md .toolbar-top-md~.fab-left-top,.md .toolbar-top-md~.fab-right-top,.toolbar-top~* .fab-center-top,.toolbar-top~* .fab-left-top,.toolbar-top~* .fab-right-top,.toolbar-top~.fab-center-top,.toolbar-top~.fab-left-top,.toolbar-top~.fab-right-top{margin-top:var(--f7-toolbar-height)}.ios .toolbar-bottom-ios~* .fab-center-bottom,.ios .toolbar-bottom-ios~* .fab-left-bottom,.ios .toolbar-bottom-ios~* .fab-right-bottom,.ios .toolbar-bottom-ios~.fab-center-bottom,.ios .toolbar-bottom-ios~.fab-left-bottom,.ios .toolbar-bottom-ios~.fab-right-bottom,.md .toolbar-bottom-md~* .fab-center-bottom,.md .toolbar-bottom-md~* .fab-left-bottom,.md .toolbar-bottom-md~* .fab-right-bottom,.md .toolbar-bottom-md~.fab-center-bottom,.md .toolbar-bottom-md~.fab-left-bottom,.md .toolbar-bottom-md~.fab-right-bottom,.toolbar-bottom~* .fab-center-bottom,.toolbar-bottom~* .fab-left-bottom,.toolbar-bottom~* .fab-right-bottom,.toolbar-bottom~.fab-center-bottom,.toolbar-bottom~.fab-left-bottom,.toolbar-bottom~.fab-right-bottom{margin-bottom:var(--f7-toolbar-height)}.ios .tabbar-labels.toolbar-bottom-ios~* .fab-center-bottom,.ios .tabbar-labels.toolbar-bottom-ios~* .fab-left-bottom,.ios .tabbar-labels.toolbar-bottom-ios~* .fab-right-bottom,.ios .tabbar-labels.toolbar-bottom-ios~.fab-center-bottom,.ios .tabbar-labels.toolbar-bottom-ios~.fab-left-bottom,.ios .tabbar-labels.toolbar-bottom-ios~.fab-right-bottom,.md .tabbar-labels.toolbar-bottom-md~* .fab-center-bottom,.md .tabbar-labels.toolbar-bottom-md~* .fab-left-bottom,.md .tabbar-labels.toolbar-bottom-md~* .fab-right-bottom,.md .tabbar-labels.toolbar-bottom-md~.fab-center-bottom,.md .tabbar-labels.toolbar-bottom-md~.fab-left-bottom,.md .tabbar-labels.toolbar-bottom-md~.fab-right-bottom,.tabbar-labels.toolbar-bottom~* .fab-center-bottom,.tabbar-labels.toolbar-bottom~* .fab-left-bottom,.tabbar-labels.toolbar-bottom~* .fab-right-bottom,.tabbar-labels.toolbar-bottom~.fab-center-bottom,.tabbar-labels.toolbar-bottom~.fab-left-bottom,.tabbar-labels.toolbar-bottom~.fab-right-bottom{margin-bottom:var(--f7-tabbar-labels-height)}.ios .tabbar-labels.toolbar-top-ios~* .fab-center-bottom,.ios .tabbar-labels.toolbar-top-ios~* .fab-left-bottom,.ios .tabbar-labels.toolbar-top-ios~* .fab-right-bottom,.ios .tabbar-labels.toolbar-top-ios~.fab-center-bottom,.ios .tabbar-labels.toolbar-top-ios~.fab-left-bottom,.ios .tabbar-labels.toolbar-top-ios~.fab-right-bottom,.md .tabbar-labels.toolbar-top-md~* .fab-center-bottom,.md .tabbar-labels.toolbar-top-md~* .fab-left-bottom,.md .tabbar-labels.toolbar-top-md~* .fab-right-bottom,.md .tabbar-labels.toolbar-top-md~.fab-center-bottom,.md .tabbar-labels.toolbar-top-md~.fab-left-bottom,.md .tabbar-labels.toolbar-top-md~.fab-right-bottom,.tabbar-labels.toolbar-top~* .fab-center-bottom,.tabbar-labels.toolbar-top~* .fab-left-bottom,.tabbar-labels.toolbar-top~* .fab-right-bottom,.tabbar-labels.toolbar-top~.fab-center-bottom,.tabbar-labels.toolbar-top~.fab-left-bottom,.tabbar-labels.toolbar-top~.fab-right-bottom{margin-top:var(--f7-tabbar-labels-height)}.messagebar~* .fab-center-bottom,.messagebar~* .fab-left-bottom,.messagebar~* .fab-right-bottom,.messagebar~.fab-center-bottom,.messagebar~.fab-left-bottom,.messagebar~.fab-right-bottom{margin-bottom:var(--f7-messagebar-height)}.ios .navbar+.toolbar-top-ios~* .fab-center-top,.ios .navbar+.toolbar-top-ios~* .fab-left-top,.ios .navbar+.toolbar-top-ios~* .fab-right-top,.ios .navbar+.toolbar-top-ios~.fab-center-top,.ios .navbar+.toolbar-top-ios~.fab-left-top,.ios .navbar+.toolbar-top-ios~.fab-right-top,.md .navbar+.toolbar-top-ios~* .fab-center-top,.md .navbar+.toolbar-top-ios~* .fab-left-top,.md .navbar+.toolbar-top-ios~* .fab-right-top,.md .navbar+.toolbar-top-ios~.fab-center-top,.md .navbar+.toolbar-top-ios~.fab-left-top,.md .navbar+.toolbar-top-ios~.fab-right-top,.navbar+.toolbar-top~* .fab-center-top,.navbar+.toolbar-top~* .fab-left-top,.navbar+.toolbar-top~* .fab-right-top,.navbar+.toolbar-top~.fab-center-top,.navbar+.toolbar-top~.fab-left-top,.navbar+.toolbar-top~.fab-right-top{margin-top:calc(var(--f7-toolbar-height) + var(--f7-navbar-height) + var(--f7-safe-area-top))}.ios .navbar+.toolbar-top-ios.tabbar-labels~* .fab-center-top,.ios .navbar+.toolbar-top-ios.tabbar-labels~* .fab-left-top,.ios .navbar+.toolbar-top-ios.tabbar-labels~* .fab-right-top,.ios .navbar+.toolbar-top-ios.tabbar-labels~.fab-center-top,.ios .navbar+.toolbar-top-ios.tabbar-labels~.fab-left-top,.ios .navbar+.toolbar-top-ios.tabbar-labels~.fab-right-top,.md .navbar+.toolbar-top-ios.tabbar-labels~* .fab-center-top,.md .navbar+.toolbar-top-ios.tabbar-labels~* .fab-left-top,.md .navbar+.toolbar-top-ios.tabbar-labels~* .fab-right-top,.md .navbar+.toolbar-top-ios.tabbar-labels~.fab-center-top,.md .navbar+.toolbar-top-ios.tabbar-labels~.fab-left-top,.md .navbar+.toolbar-top-ios.tabbar-labels~.fab-right-top,.navbar+.toolbar-top.tabbar-labels~* .fab-center-top,.navbar+.toolbar-top.tabbar-labels~* .fab-left-top,.navbar+.toolbar-top.tabbar-labels~* .fab-right-top,.navbar+.toolbar-top.tabbar-labels~.fab-center-top,.navbar+.toolbar-top.tabbar-labels~.fab-left-top,.navbar+.toolbar-top.tabbar-labels~.fab-right-top{margin-top:calc(var(--f7-tabbar-labels-height) + var(--f7-navbar-height) + var(--f7-safe-area-top))}.ios .navbars+.toolbar-top-ios~* .fab-center-top,.ios .navbars+.toolbar-top-ios~* .fab-left-top,.ios .navbars+.toolbar-top-ios~* .fab-right-top,.ios .navbars+.toolbar-top-ios~.fab-center-top,.ios .navbars+.toolbar-top-ios~.fab-left-top,.ios .navbars+.toolbar-top-ios~.fab-right-top,.navbars+.toolbar-top~* .fab-center-top,.navbars+.toolbar-top~* .fab-left-top,.navbars+.toolbar-top~* .fab-right-top,.navbars+.toolbar-top~.fab-center-top,.navbars+.toolbar-top~.fab-left-top,.navbars+.toolbar-top~.fab-right-top{margin-top:calc(var(--f7-toolbar-height) + var(--f7-navbar-height) + var(--f7-safe-area-top))}.ios .navbars+.toolbar-top-ios.tabbar-labels~* .fab-center-top,.ios .navbars+.toolbar-top-ios.tabbar-labels~* .fab-left-top,.ios .navbars+.toolbar-top-ios.tabbar-labels~* .fab-right-top,.ios .navbars+.toolbar-top-ios.tabbar-labels~.fab-center-top,.ios .navbars+.toolbar-top-ios.tabbar-labels~.fab-left-top,.ios .navbars+.toolbar-top-ios.tabbar-labels~.fab-right-top,.navbars+.toolbar-top.tabbar-labels~* .fab-center-top,.navbars+.toolbar-top.tabbar-labels~* .fab-left-top,.navbars+.toolbar-top.tabbar-labels~* .fab-right-top,.navbars+.toolbar-top.tabbar-labels~.fab-center-top,.navbars+.toolbar-top.tabbar-labels~.fab-left-top,.navbars+.toolbar-top.tabbar-labels~.fab-right-top{margin-top:calc(var(--f7-tabbar-labels-height) + var(--f7-navbar-height) + var(--f7-safe-area-top))}.ios .fab-buttons a.active-state,.ios .fab>a.active-state{transition-duration:0s}:root{--f7-searchbar-input-border-width:0px;--f7-searchbar-input-border-color:transparent;--f7-searchbar-input-text-color:#000;--f7-searchbar-placeholder-color:rgba(0, 0, 0, 0.4)}:root .theme-dark,:root.theme-dark{--f7-searchbar-input-text-color:#fff;--f7-searchbar-placeholder-color:rgba(255, 255, 255, 0.4)}.ios{--f7-searchbar-height:44px;--f7-searchbar-inner-padding-left:8px;--f7-searchbar-inner-padding-right:8px;--f7-searchbar-input-font-size:17px;--f7-searchbar-input-border-radius:8px;--f7-searchbar-input-height:32px;--f7-searchbar-input-padding-horizontal:28px;--f7-searchbar-backdrop-bg-color:rgba(0, 0, 0, 0.4);--f7-searchbar-shadow-image:none;--f7-searchbar-in-page-content-margin:0px;--f7-searchbar-in-page-content-box-shadow:none;--f7-searchbar-in-page-content-border-radius:0;--f7-searchbar-in-page-content-input-border-radius:0;--f7-searchbar-search-icon-color:rgba(0, 0, 0, 0.4);--f7-searchbar-input-bg-color:#e4e4e4}.ios .theme-dark,.ios.theme-dark{--f7-searchbar-search-icon-color:rgba(255, 255, 255, 0.4);--f7-searchbar-input-bg-color:#2a2a2a}.md{--f7-searchbar-border-color:transparent;--f7-searchbar-height:48px;--f7-searchbar-inner-padding-left:0px;--f7-searchbar-inner-padding-right:0px;--f7-searchbar-link-color:#737373;--f7-searchbar-search-icon-color:#737373;--f7-searchbar-input-font-size:20px;--f7-searchbar-input-border-radius:0px;--f7-searchbar-input-height:100%;--f7-searchbar-input-padding-horizontal:48px;--f7-searchbar-inline-input-padding-horizontal:24px;--f7-searchbar-input-clear-button-color:#737373;--f7-searchbar-backdrop-bg-color:rgba(0, 0, 0, 0.25);--f7-searchbar-shadow-image:var(--f7-bars-shadow-bottom-image);--f7-searchbar-in-page-content-margin:8px;--f7-searchbar-in-page-content-box-shadow:var(--f7-elevation-1);--f7-searchbar-in-page-content-border-radius:4px;--f7-searchbar-in-page-content-input-border-radius:4px;--f7-searchbar-bg-color:#fff;--f7-searchbar-input-bg-color:#fff}.md .theme-dark,.md.theme-dark{--f7-searchbar-bg-color:#202020;--f7-searchbar-input-bg-color:#202020}.aurora{--f7-searchbar-height:38px;--f7-searchbar-inner-padding-left:8px;--f7-searchbar-inner-padding-right:8px;--f7-searchbar-input-font-size:13px;--f7-searchbar-input-border-radius:4px;--f7-searchbar-input-height:24px;--f7-searchbar-input-padding-horizontal:24px;--f7-searchbar-backdrop-bg-color:rgba(0, 0, 0, 0.4);--f7-searchbar-shadow-image:none;--f7-searchbar-in-page-content-margin:0px;--f7-searchbar-in-page-content-box-shadow:none;--f7-searchbar-in-page-content-border-radius:0;--f7-searchbar-search-icon-color:rgba(0, 0, 0, 0.4);--f7-searchbar-input-bg-color:#fff}.aurora .theme-dark,.aurora.theme-dark{--f7-searchbar-input-bg-color:#333;--f7-searchbar-search-icon-color:rgba(255, 255, 255, 0.4)}.searchbar{width:100%;position:relative;z-index:200;height:var(--f7-searchbar-height);background-image:var(--f7-searchbar-bg-image,var(--f7-bars-bg-image));background-color:var(--f7-searchbar-bg-color,var(--f7-bars-bg-color))}@supports ((-webkit-backdrop-filter:blur(20px)) or (backdrop-filter:blur(20px))){.ios-translucent-bars .searchbar{background-color:rgba(var(--f7-searchbar-bg-color-rgb,var(--f7-bars-bg-color-rgb)),var(--f7-bars-translucent-opacity));-webkit-backdrop-filter:saturate(180%) blur(var(--f7-bars-translucent-blur));backdrop-filter:saturate(180%) blur(var(--f7-bars-translucent-blur))}}.ios .subnavbar .searchbar{background-color:transparent;-webkit-backdrop-filter:none;backdrop-filter:none}.ios .subnavbar .searchbar:after{display:none!important}.searchbar.no-border:after,.searchbar.no-hairline:after{display:none!important}.searchbar.no-shadow:before{display:none!important}.searchbar:after{content:'';position:absolute;background-color:var(--f7-searchbar-border-color,var(--f7-bars-border-color));display:block;z-index:15;top:auto;right:auto;bottom:0;left:0;height:1px;width:100%;transform-origin:50% 100%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.page>.searchbar:not(.searchbar-inline){z-index:600}.page>.searchbar:not(.searchbar-inline):before{content:'';position:absolute;right:0;width:100%;top:100%;bottom:auto;height:8px;pointer-events:none;background:var(--f7-searchbar-shadow-image)}.searchbar input[type=search],.searchbar input[type=text]{box-sizing:border-box;width:100%;height:100%;display:block;border:var(--f7-searchbar-input-border-width) solid var(--f7-searchbar-input-border-color);-webkit-appearance:none;-moz-appearance:none;appearance:none;font-family:inherit;font-weight:400;color:var(--f7-searchbar-input-text-color);font-size:var(--f7-searchbar-input-font-size);background-color:var(--f7-searchbar-input-bg-color);border-radius:var(--f7-searchbar-input-border-radius);position:relative;padding:0;padding-left:calc(var(--f7-searchbar-input-padding-horizontal) + var(--f7-searchbar-input-extra-padding-left,0px));padding-right:calc(var(--f7-searchbar-input-padding-horizontal) + var(--f7-searchbar-input-extra-padding-right,0px))}.searchbar input[type=search]::-webkit-input-placeholder,.searchbar input[type=text]::-webkit-input-placeholder{color:var(--f7-searchbar-placeholder-color);opacity:1}.searchbar input[type=search]::placeholder,.searchbar input[type=text]::placeholder{color:var(--f7-searchbar-placeholder-color);opacity:1}.searchbar input::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none}.searchbar .searchbar-input-wrap{flex-shrink:1;width:100%;height:var(--f7-searchbar-input-height);position:relative}.searchbar a{color:var(--f7-searchbar-link-color,var(--f7-bars-link-color,var(--f7-theme-color)))}.page>.searchbar:not(.searchbar-inline){position:absolute;left:0;top:0}.page-content .searchbar:not(.searchbar-inline){border-radius:var(--f7-searchbar-in-page-content-border-radius);margin:var(--f7-searchbar-in-page-content-margin);width:auto;box-shadow:var(--f7-searchbar-in-page-content-box-shadow)}.page-content .searchbar:not(.searchbar-inline) .searchbar-inner,.page-content .searchbar:not(.searchbar-inline) input[type=search],.page-content .searchbar:not(.searchbar-inline) input[type=text]{border-radius:var(--f7-searchbar-in-page-content-input-border-radius,var(--f7-searchbar-input-border-radius))}.searchbar .input-clear-button{color:var(--f7-searchbar-input-clear-button-color,var(--f7-input-clear-button-color))}.searchbar-expandable{--f7-searchbar-expandable-size:var(--f7-searchbar-height);position:absolute;transition-duration:.3s;pointer-events:none}.navbar .searchbar-expandable{background:0 0}.navbar .searchbar-expandable:after{display:none!important}.navbar .searchbar.searchbar-expandable{--f7-searchbar-expandable-size:var(--f7-navbar-height)}.toolbar .searchbar.searchbar-expandable{--f7-searchbar-expandable-size:var(--f7-toolbar-height)}.subnavbar .searchbar.searchbar-expandable{--f7-searchbar-expandable-size:var(--f7-subnavbar-height)}.tabbar-labels .searchbar.searchbar-expandable{--f7-searchbar-expandable-size:var(--f7-tabbar-labels-height)}.searchbar-inner{position:absolute;left:0;top:0;width:100%;height:100%;display:flex;align-items:center;box-sizing:border-box;padding:0 calc(var(--f7-searchbar-inner-padding-right) + var(--f7-safe-area-right)) 0 calc(var(--f7-searchbar-inner-padding-left) + var(--f7-safe-area-left))}.searchbar-disable-button{cursor:pointer;pointer-events:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:0 0;border:none;outline:0;padding:0;margin:0;width:auto;opacity:0}.searchbar-icon{pointer-events:none;background-position:center;background-repeat:no-repeat}.searchbar-icon:after{color:var(--f7-searchbar-search-icon-color);font-family:framework7-core-icons;font-weight:400;font-style:normal;line-height:1;letter-spacing:normal;text-transform:none;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;font-feature-settings:"liga";text-align:center;display:block;width:100%;height:100%;font-size:20px}.searchbar-backdrop{position:absolute;left:0;top:0;width:100%;height:100%;z-index:100;opacity:0;pointer-events:none;transition-duration:.3s;transform:translate3d(0,0,0);background:var(--f7-searchbar-backdrop-bg-color)}.searchbar-backdrop.searchbar-backdrop-in{opacity:1;pointer-events:auto}.page-content>.searchbar-backdrop{position:fixed}.searchbar-not-found{display:none}.hidden-by-searchbar,.list .hidden-by-searchbar,.list li.hidden-by-searchbar,.list.li.hidden-by-searchbar{display:none!important}.navbar.with-searchbar-expandable-enabled-no-transition{--f7-navbar-large-collapse-progress:1}.navbar.with-searchbar-expandable-enabled{--f7-navbar-large-collapse-progress:1}.navbar.with-searchbar-expandable-enabled .navbar-bg,.navbar.with-searchbar-expandable-enabled .title-large,.navbar.with-searchbar-expandable-enabled .title-large-text{transition-duration:.3s}.navbar.with-searchbar-expandable-closing .navbar-bg,.navbar.with-searchbar-expandable-closing .title-large,.navbar.with-searchbar-expandable-closing .title-large-text{transition-duration:.3s}.page-content.with-searchbar-expandable-enabled{height:calc(100% + var(--f7-navbar-large-title-height));transform:translateY(calc(-1 * var(--f7-navbar-large-title-height)));transition-duration:.3s;transition-property:transform}.page-content.with-searchbar-expandable-closing{transition-duration:.3s}.navbars~.page:not(.no-navbar)>.searchbar,.navbar~.page:not(.no-navbar)>.searchbar,.page>.navbar~.searchbar{top:calc(var(--f7-navbar-height) + var(--f7-safe-area-top))}.navbars~.page-with-navbar-large:not(.no-navbar) .searchbar,.navbar~.page-with-navbar-large:not(.no-navbar) .searchbar,.page-with-navbar-large .navbar~* .searchbar,.page-with-navbar-large .navbar~.searchbar{top:calc(var(--f7-navbar-height) + var(--f7-navbar-large-title-height) + var(--f7-safe-area-top));transform:translate3d(0,calc(-1 * var(--f7-navbar-large-collapse-progress) * var(--f7-navbar-large-title-height)),0)}.navbars~.page-with-navbar-large:not(.no-navbar) .page-content .searchbar,.page-with-navbar-large .page-content .searchbar{top:0;transform:none}.searchbar~*{--f7-page-searchbar-offset:var(--f7-searchbar-height)}.aurora .page>.toolbar-top-aurora~.searchbar,.ios .page>.toolbar-top-ios~.searchbar,.md .page>.toolbar-top-md~.searchbar,.page>.toolbar-top~.searchbar{top:var(--f7-toolbar-height)}.aurora .page>.tabbar-labels.toolbar-top-aurora~.searchbar,.ios .page>.tabbar-labels.toolbar-top-ios~.searchbar,.md .page>.tabbar-labels.toolbar-top-md~.searchbar,.page>.tabbar-labels.toolbar-top~.searchbar{top:var(--f7-tabbar-labels-height)}.aurora .page>.navbar~.toolbar-top-aurora~.searchbar,.ios .page>.navbar~.toolbar-top-ios~.searchbar,.md .page>.navbar~.toolbar-top-md~.searchbar,.page>.navbar~.toolbar-top~.searchbar{top:calc(var(--f7-navbar-height) + var(--f7-toolbar-height) + var(--f7-safe-area-top))}.aurora .page>.navbar~.tabbar-labels.toolbar-top-aurora~.searchbar,.ios .page>.navbar~.tabbar-labels.toolbar-top-ios~.searchbar,.md .page>.navbar~.tabbar-labels.toolbar-top-md~.searchbar,.page>.navbar~.tabbar-labels.toolbar-top~.searchbar{top:calc(var(--f7-navbar-height) + var(--f7-tabbar-labels-height) + var(--f7-safe-area-top))}.searchbar.searchbar-inline{width:auto;height:auto;background-color:transparent;background-image:none}.searchbar.searchbar-inline:after,.searchbar.searchbar-inline:before{display:none!important}.searchbar.searchbar-inline .searchbar-input-wrap{height:var(--f7-searchbar-inline-input-height,var(--f7-searchbar-input-height))}.searchbar.searchbar-inline .searchbar-inner{padding:0;position:static;width:auto;height:auto}.searchbar.searchbar-inline input[type=search],.searchbar.searchbar-inline input[type=text]{font-size:var(--f7-searchbar-inline-input-font-size,var(--f7-searchbar-input-font-size));padding-left:calc(var(--f7-searchbar-inline-input-padding-horizontal,var(--f7-searchbar-input-padding-horizontal)) + var(--f7-searchbar-input-extra-padding-left,0px));padding-right:calc(var(--f7-searchbar-inline-input-padding-horizontal,var(--f7-searchbar-input-padding-horizontal)) + var(--f7-searchbar-input-extra-padding-right,0px))}.ios .searchbar input[type=search],.ios .searchbar input[type=text]{z-index:30}.ios .searchbar .input-clear-button{z-index:40;right:7px}.ios .searchbar-icon{width:13px;height:13px;position:absolute;top:50%;margin-top:-6px;z-index:40;left:8px}.ios .searchbar-icon:after{content:'search_ios';line-height:13px}.ios .searchbar-disable-button{font-size:17px;flex-shrink:0;transform:translate3d(0,0,0);transition-duration:.3s;color:var(--f7-searchbar-link-color,var(--f7-bars-link-color,var(--f7-theme-color)));display:none}.ios .searchbar-disable-button.active-state{transition-duration:0s;opacity:.3!important}.ios .searchbar-enabled .searchbar-disable-button{pointer-events:auto;opacity:1;margin-left:8px}.ios .searchbar:not(.searchbar-enabled) .searchbar-disable-button{transition-duration:.3s!important}.ios .searchbar-expandable{left:0;bottom:0;opacity:1;width:100%;height:0%;transform:translate3d(0,0,0);overflow:hidden}.ios .searchbar-expandable .searchbar-disable-button{margin-left:8px;opacity:1;display:block}.ios .searchbar-expandable .searchbar-inner{height:var(--f7-searchbar-expandable-size)}.ios .navbar.with-searchbar-expandable-closing .navbar-bg,.ios .navbar.with-searchbar-expandable-enabled .navbar-bg{transition-property:transform,opacity}.ios .navbar.with-searchbar-expandable-closing .left,.ios .navbar.with-searchbar-expandable-closing .navbar-bg,.ios .navbar.with-searchbar-expandable-closing .right,.ios .navbar.with-searchbar-expandable-closing .title,.ios .navbar.with-searchbar-expandable-enabled .left,.ios .navbar.with-searchbar-expandable-enabled .navbar-bg,.ios .navbar.with-searchbar-expandable-enabled .right,.ios .navbar.with-searchbar-expandable-enabled .title{transition-duration:.3s}.ios .navbar.with-searchbar-expandable-enabled .left,.ios .navbar.with-searchbar-expandable-enabled .right,.ios .navbar.with-searchbar-expandable-enabled .title,.ios .navbar.with-searchbar-expandable-enabled-no-transition .left,.ios .navbar.with-searchbar-expandable-enabled-no-transition .right,.ios .navbar.with-searchbar-expandable-enabled-no-transition .title{transform:translateY(calc(-1 * var(--f7-navbar-height)));opacity:0!important}.ios .searchbar-expandable.searchbar-enabled{opacity:1;height:var(--f7-searchbar-expandable-size);pointer-events:auto}.md .searchbar-disable-button,.md .searchbar-icon{position:absolute;left:calc(-4px + var(--f7-safe-area-left));top:50%;transition-duration:.3s}.md .searchbar-icon{width:24px;height:24px;margin-left:12px;margin-top:-12px}.md .searchbar-icon:after{content:'search_md';line-height:1.2}.md .searchbar-disable-button{width:48px;height:48px;transform:rotate(-90deg) scale(.5);font-size:0!important;display:block;margin-top:-24px;color:var(--f7-searchbar-link-color,var(--f7-bars-link-color,var(--f7-theme-color)))}.md .searchbar-disable-button:before{content:'';width:152%;height:152%;position:absolute;left:-26%;top:-26%;background-image:radial-gradient(circle at center,var(--f7-link-highlight-color) 66%,rgba(255,255,255,0) 66%);background-repeat:no-repeat;background-position:center;background-size:100% 100%;opacity:0;pointer-events:none;transition-duration:.6s}.md .searchbar-disable-button.active-state:before{opacity:1;transition-duration:150ms}.md .searchbar-disable-button:after{font-family:framework7-core-icons;font-weight:400;font-style:normal;line-height:1;letter-spacing:normal;text-transform:none;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;font-feature-settings:"liga";text-align:center;display:block;width:100%;height:100%;font-size:20px;line-height:48px;content:"arrow_left_md"}.md .searchbar-enabled:not(.searchbar-enabled-no-disable-button) .searchbar-disable-button{transform:rotate(0deg) scale(1);pointer-events:auto;opacity:1}.md .searchbar-enabled:not(.searchbar-enabled-no-disable-button) .searchbar-icon{opacity:0;transform:rotate(90deg) scale(.5)}.md .searchbar{--f7-searchbar-input-extra-padding-left:16px}.md .searchbar .input-clear-button{width:48px;height:48px;margin-top:-24px;right:0}.md .searchbar .input-clear-button:before{content:'';width:152%;height:152%;position:absolute;left:-26%;top:-26%;background-image:radial-gradient(circle at center,var(--f7-link-highlight-color) 66%,rgba(255,255,255,0) 66%);background-repeat:no-repeat;background-position:center;background-size:100% 100%;opacity:0;pointer-events:none;transition-duration:.6s}.md .searchbar .input-clear-button.active-state:before{opacity:1;transition-duration:150ms}.md .searchbar .input-clear-button:after{line-height:48px;content:'delete_md';opacity:1}.md .searchbar .input-clear-button:before{margin-left:0;margin-top:0}.md .page>.searchbar,.md .searchbar-expandable,.md .subnavbar .searchbar{--f7-searchbar-input-extra-padding-left:24px}.md .page>.searchbar .searchbar-disable-button,.md .page>.searchbar .searchbar-icon,.md .searchbar-expandable .searchbar-disable-button,.md .searchbar-expandable .searchbar-icon,.md .subnavbar .searchbar .searchbar-disable-button,.md .subnavbar .searchbar .searchbar-icon{left:calc(-4px + 8px + var(--f7-safe-area-left))}.md .searchbar-expandable{height:var(--f7-searchbar-expandable-size);opacity:0;bottom:0;border-radius:calc(var(--f7-searchbar-expandable-size));width:calc(var(--f7-searchbar-expandable-size));margin-top:calc(var(--f7-searchbar-expandable-size) * -1 / 2);transform:translate3d(0px,0px,0px);left:100%;margin-left:calc(var(--f7-searchbar-expandable-size) * -1)}.md .searchbar-expandable.searchbar-enabled{width:100%;border-radius:0;opacity:1;pointer-events:auto;margin-top:0;left:0;margin-left:0}.aurora .searchbar input[type=search],.aurora .searchbar input[type=text]{z-index:30}.aurora .searchbar .input-clear-button{z-index:40;right:4px}.aurora .searchbar-icon{width:13px;height:13px;position:absolute;top:50%;margin-top:-6px;z-index:40;left:6px}.aurora .searchbar-icon:after{content:'search_aurora';line-height:13px}.aurora .searchbar-disable-button{font-size:14px;flex-shrink:0;transform:translate3d(0,0,0);transition-duration:.3s;color:var(--f7-searchbar-link-color,var(--f7-bars-link-color,var(--f7-theme-color)));display:none}.aurora .searchbar-disable-button.active-state{transition-duration:0s;opacity:.3!important}.aurora .searchbar-enabled .searchbar-disable-button{pointer-events:auto;opacity:1;margin-left:8px}.aurora .searchbar:not(.searchbar-enabled) .searchbar-disable-button{transition-duration:.3s!important}.aurora .searchbar-expandable{left:0;top:auto;bottom:0;opacity:0;width:100%;transform:translate3d(0,0,0);overflow:hidden}.aurora .searchbar-expandable .searchbar-disable-button{margin-left:8px;opacity:1;display:block}.aurora .searchbar-expandable .searchbar-inner{height:var(--f7-searchbar-expandable-size)}.aurora .searchbar-expandable.searchbar-enabled{opacity:1;pointer-events:auto}:root{--f7-message-text-header-text-color:inherit;--f7-message-text-header-opacity:0.65;--f7-message-text-header-font-size:12px;--f7-message-text-footer-text-color:inherit;--f7-message-text-footer-opacity:0.65;--f7-message-text-footer-font-size:12px;--f7-message-bubble-line-height:1.2;--f7-message-header-font-size:12px;--f7-message-footer-font-size:11px;--f7-message-name-font-size:12px;--f7-message-name-font-weight:inherit;--f7-message-avatar-border-radius:50%;--f7-messages-title-font-weight:inherit;--f7-message-sent-text-color:#fff;--f7-messages-content-bg-color:#fff;--f7-message-typing-indicator-bg-color:#000;--f7-message-received-bg-color:#e5e5ea;--f7-message-received-text-color:#000}:root .theme-dark,:root.theme-dark{--f7-messages-title-text-color:rgba(255, 255, 255, 0.54);--f7-message-header-text-color:rgba(255, 255, 255, 0.54);--f7-message-name-text-color:rgba(255, 255, 255, 0.54);--f7-message-footer-text-color:rgba(255, 255, 255, 0.54);--f7-messages-content-bg-color:transparent;--f7-message-received-bg-color:#252525;--f7-message-received-text-color:#fff;--f7-message-typing-indicator-bg-color:#fff}.ios{--f7-messages-title-text-color:rgba(0, 0, 0, 0.45);--f7-messages-title-font-size:11px;--f7-message-header-text-color:rgba(0, 0, 0, 0.45);--f7-message-footer-text-color:rgba(0, 0, 0, 0.45);--f7-message-name-text-color:rgba(0, 0, 0, 0.45);--f7-message-avatar-size:29px;--f7-message-margin:10px;--f7-message-bubble-min-height:32px;--f7-message-bubble-font-size:17px;--f7-message-bubble-border-radius:16px;--f7-message-bubble-padding-vertical:6px;--f7-message-bubble-padding-horizontal:16px;--f7-message-typing-indicator-opacity:0.35}.md{--f7-messages-title-font-size:12px;--f7-message-avatar-size:32px;--f7-message-margin:16px;--f7-message-bubble-min-height:32px;--f7-message-bubble-font-size:16px;--f7-message-bubble-border-radius:4px;--f7-message-bubble-padding-vertical:6px;--f7-message-bubble-padding-horizontal:8px;--f7-message-typing-indicator-opacity:0.6;--f7-messages-title-text-color:rgba(0, 0, 0, 0.51);--f7-message-header-text-color:rgba(0, 0, 0, 0.51);--f7-message-footer-text-color:rgba(0, 0, 0, 0.51);--f7-message-name-text-color:rgba(0, 0, 0, 0.51)}.aurora{--f7-messages-title-font-size:12px;--f7-message-avatar-size:24px;--f7-message-margin:10px;--f7-message-bubble-min-height:28px;--f7-message-bubble-font-size:13px;--f7-message-bubble-line-height:1.4;--f7-message-bubble-border-radius:14px;--f7-message-bubble-padding-vertical:5px;--f7-message-bubble-padding-horizontal:10px;--f7-message-typing-indicator-opacity:0.5;--f7-messages-title-text-color:rgba(0, 0, 0, 0.51);--f7-message-header-text-color:rgba(0, 0, 0, 0.51);--f7-message-footer-text-color:rgba(0, 0, 0, 0.51);--f7-message-name-text-color:rgba(0, 0, 0, 0.51)}.messages,.messages-content{background:var(--f7-messages-content-bg-color)}.messages{display:flex;flex-direction:column;min-height:100%;position:relative;z-index:1}.message,.messages-title{margin-top:var(--f7-message-margin)}.message:last-child,.messages-title:last-child{margin-bottom:var(--f7-message-margin)}.messages-title{text-align:center;width:100%;line-height:1;color:var(--f7-messages-title-text-color);font-size:var(--f7-messages-title-font-size);font-weight:var(--f7-messages-title-font-weight)}.message{max-width:70%;box-sizing:border-box;display:flex;align-items:flex-end;position:relative;z-index:1;transform:translate3d(0,0,0)}.message-avatar{border-radius:var(--f7-message-avatar-border-radius);position:relative;background-size:cover;align-self:flex-end;flex-shrink:0;width:var(--f7-message-avatar-size);height:var(--f7-message-avatar-size)}.message-content{position:relative;display:flex;flex-direction:column}.message-footer,.message-header,.message-name{line-height:1}.message-header{color:var(--f7-message-header-text-color);font-size:var(--f7-message-header-font-size)}.message-footer{color:var(--f7-message-footer-text-color);font-size:var(--f7-message-footer-font-size);margin-bottom:-1em}.message-name{color:var(--f7-message-name-text-color);font-size:var(--f7-message-name-font-size);font-weight:var(--f7-message-name-font-weight)}.message-bubble{box-sizing:border-box;word-break:break-word;display:flex;flex-direction:column;position:relative;line-height:var(--f7-message-bubble-line-height);font-size:var(--f7-message-bubble-font-size);border-radius:var(--f7-message-bubble-border-radius);padding:var(--f7-message-bubble-padding-vertical) var(--f7-message-bubble-padding-horizontal);min-height:var(--f7-message-bubble-min-height)}.message-image img{display:block;max-width:100%;height:auto;width:auto}.message-text-footer,.message-text-header{line-height:1}.message-text-header{color:var(--f7-message-text-header-text-color);opacity:var(--f7-message-text-header-opacity);font-size:var(--f7-message-text-header-font-size)}.message-text-footer{color:var(--f7-message-text-footer-text-color);opacity:var(--f7-message-text-footer-opacity);font-size:var(--f7-message-text-footer-font-size)}.message-text{text-align:left}.message-sent{text-align:right;flex-direction:row-reverse;align-self:flex-end}.message-sent .message-bubble{color:var(--f7-message-sent-text-color);background:var(--f7-message-sent-bg-color,var(--f7-theme-color))}.message-sent .message-content{align-items:flex-end}.message-sent.message-tail .message-bubble{border-radius:var(--f7-message-bubble-border-radius) var(--f7-message-bubble-border-radius) 0 var(--f7-message-bubble-border-radius)}.message-received{flex-direction:row}.message-received .message-bubble{color:var(--f7-message-received-text-color);background:var(--f7-message-received-bg-color)}.message-received .message-content{align-items:flex-start}.message-received.message-tail .message-bubble{border-radius:var(--f7-message-bubble-border-radius) var(--f7-message-bubble-border-radius) var(--f7-message-bubble-border-radius) 0}.message:not(.message-last) .message-avatar{opacity:0}.message:not(.message-first) .message-name{display:none}.message.message-same-name .message-name{display:none}.message.message-same-header .message-header{display:none}.message.message-same-footer .message-footer{display:none}.message-appear-from-bottom{animation:message-appear-from-bottom .3s}.message-appear-from-top{animation:message-appear-from-top .3s}.message-typing-indicator{display:inline-block;font-size:0;vertical-align:middle}.message-typing-indicator>div{display:inline-block;position:relative;background:var(--f7-message-typing-indicator-bg-color);opacity:var(--f7-message-typing-indicator-opacity);vertical-align:middle;border-radius:50%}@keyframes message-appear-from-bottom{from{transform:translate3d(0,100%,0)}to{transform:translate3d(0,0,0)}}@keyframes message-appear-from-top{from{transform:translate3d(0,-100%,0)}to{transform:translate3d(0,0,0)}}.ios .message-footer b,.ios .message-header b,.ios .message-name b,.ios .messages-title b{font-weight:600}.ios .message-header,.ios .message-name{margin-bottom:3px}.ios .message-footer{margin-top:3px}.ios .message-bubble{min-width:48px}.ios .message-image{margin:var(--f7-message-bubble-padding-vertical) calc(-1 * var(--f7-message-bubble-padding-horizontal))}.ios .message-image:first-child{margin-top:calc(-1 * var(--f7-message-bubble-padding-vertical))}.ios .message-image:first-child img{border-top-left-radius:var(--f7-message-bubble-border-radius);border-top-right-radius:var(--f7-message-bubble-border-radius)}.ios .message-image:last-child{margin-bottom:calc(-1 * var(--f7-message-bubble-padding-vertical))}.ios .message-image:last-child img{border-bottom-left-radius:var(--f7-message-bubble-border-radius);border-bottom-right-radius:var(--f7-message-bubble-border-radius)}.ios .message-text-header{margin-bottom:3px}.ios .message-text-footer{margin-top:3px}.ios .message-received{margin-left:calc(10px + var(--f7-safe-area-left))}.ios .message-received .message-footer,.ios .message-received .message-header,.ios .message-received .message-name{margin-left:var(--f7-message-bubble-padding-horizontal)}.ios .message-received .message-bubble{padding-left:calc(var(--f7-message-bubble-padding-horizontal) + 6px);-webkit-mask-box-image:url("data:image/svg+xml;charset=utf-8,") 50% 42% 46% 56%}.ios .message-received .message-image{margin-left:calc(-1 * (var(--f7-message-bubble-padding-horizontal) + 6px))}.ios .message-received.message-tail:not(.message-typing) .message-bubble{-webkit-mask-box-image:url("data:image/svg+xml;charset=utf-8,") 50% 42% 46% 56%}.ios .message-received.message-tail:not(.message-typing) .message-bubble .message-image:last-child img{border-bottom-left-radius:0px}.ios .message-sent{margin-right:calc(10px + var(--f7-safe-area-right))}.ios .message-sent .message-footer,.ios .message-sent .message-header,.ios .message-sent .message-name{margin-right:var(--f7-message-bubble-padding-horizontal)}.ios .message-sent .message-bubble{padding-right:calc(var(--f7-message-bubble-padding-horizontal) + 6px);-webkit-mask-box-image:url("data:image/svg+xml;charset=utf-8,") 50% 56% 46% 42%}.ios .message-sent .message-image{margin-right:calc(-1 * (var(--f7-message-bubble-padding-horizontal) + 6px))}.ios .message-sent.message-tail .message-bubble{-webkit-mask-box-image:url("data:image/svg+xml;charset=utf-8,") 50% 56% 46% 42%}.ios .message-sent.message-tail .message-bubble .message-image:last-child img{border-bottom-right-radius:0px}.ios .message+.message:not(.message-first){margin-top:1px}.ios .message-received.message-typing .message-content:after,.ios .message-received.message-typing .message-content:before{content:'';position:absolute;background:var(--f7-message-received-bg-color);border-radius:50%}.ios .message-received.message-typing .message-content:after{width:11px;height:11px;left:4px;bottom:0px}.ios .message-received.message-typing .message-content:before{width:6px;height:6px;left:-1px;bottom:-4px}.ios .message-typing-indicator>div{width:9px;height:9px}.ios .message-typing-indicator>div+div{margin-left:4px}.ios .message-typing-indicator>div:nth-child(1){animation:ios-message-typing-indicator .9s infinite}.ios .message-typing-indicator>div:nth-child(2){animation:ios-message-typing-indicator .9s 150ms infinite}.ios .message-typing-indicator>div:nth-child(3){animation:ios-message-typing-indicator .9s .3s infinite}@keyframes ios-message-typing-indicator{0%{opacity:.35}25%{opacity:.2}50%{opacity:.2}}.md .message-footer b,.md .message-header b,.md .message-name b,.md .messages-title b{font-weight:500}.md .message-header,.md .message-name{margin-bottom:2px}.md .message-footer{margin-top:2px}.md .message-text-header{margin-bottom:4px}.md .message-text-footer{margin-top:4px}.md .message-received.message-tail .message-bubble:before,.md .message-sent.message-tail .message-bubble:before{position:absolute;content:'';bottom:0;width:0;height:0}.md .message-received{margin-left:calc(8px + var(--f7-safe-area-left))}.md .message-received .message-avatar+.message-content{margin-left:var(--f7-message-bubble-padding-horizontal)}.md .message-received.message-tail .message-bubble:before{border-left:8px solid transparent;border-right:0 solid transparent;border-bottom:8px solid var(--f7-message-received-bg-color);right:100%}.md .message-sent{margin-right:calc(8px + var(--f7-safe-area-right))}.md .message-sent .message-avatar+.message-content{margin-right:var(--f7-message-bubble-padding-horizontal)}.md .message-sent.message-tail .message-bubble:before{border-left:0 solid transparent;border-right:8px solid transparent;border-bottom:8px solid var(--f7-message-sent-bg-color,var(--f7-theme-color));left:100%}.md .message+.message:not(.message-first){margin-top:8px}.md .message-typing-indicator>div{width:6px;height:6px}.md .message-typing-indicator>div+div{margin-left:6px}.md .message-typing-indicator>div:nth-child(1){animation:md-message-typing-indicator .9s infinite}.md .message-typing-indicator>div:nth-child(2){animation:md-message-typing-indicator .9s 150ms infinite}.md .message-typing-indicator>div:nth-child(3){animation:md-message-typing-indicator .9s .3s infinite}@keyframes md-message-typing-indicator{0%{transform:translateY(0%)}25%{transform:translateY(-5px)}50%{transform:translateY(0%)}}.aurora .message-footer b,.aurora .message-header b,.aurora .message-name b,.aurora .messages-title b{font-weight:500}.aurora .message-header,.aurora .message-name{margin-bottom:2px}.aurora .message-footer{margin-top:2px}.aurora .message-text-header{margin-bottom:2px}.aurora .message-text-footer{margin-top:2px}.aurora .message-received.message-tail .message-bubble:before,.aurora .message-sent.message-tail .message-bubble:before{position:absolute;content:'';bottom:0;width:0;height:0}.aurora .message-image{margin:var(--f7-message-bubble-padding-vertical) calc(-1 * var(--f7-message-bubble-padding-horizontal) + 4px)}.aurora .message-image:first-child{margin-top:calc(-1 * var(--f7-message-bubble-padding-vertical) + 4px)}.aurora .message-image:first-child img{border-top-left-radius:var(--f7-message-bubble-border-radius);border-top-right-radius:var(--f7-message-bubble-border-radius)}.aurora .message-image:last-child{margin-bottom:calc(-1 * var(--f7-message-bubble-padding-vertical) + 4px)}.aurora .message-image:last-child img{border-bottom-left-radius:var(--f7-message-bubble-border-radius);border-bottom-right-radius:var(--f7-message-bubble-border-radius)}.aurora .message-received{margin-left:calc(16px + var(--f7-safe-area-left))}.aurora .message-received .message-avatar+.message-content{margin-left:5px}.aurora .message-received .message-footer,.aurora .message-received .message-header,.aurora .message-received .message-name{margin-left:var(--f7-message-bubble-padding-horizontal)}.aurora .message-received.message-tail .message-bubble:before{border-left:6px solid transparent;border-right:0 solid transparent;border-bottom:6px solid var(--f7-message-received-bg-color);right:100%;transform:translate(2px,0px) rotate(-15deg);transform-origin:right bottom}.aurora .message-sent{margin-right:calc(16px + var(--f7-safe-area-right))}.aurora .message-sent .message-avatar+.message-content{margin-right:5px}.aurora .message-sent .message-footer,.aurora .message-sent .message-header,.aurora .message-sent .message-name{margin-right:var(--f7-message-bubble-padding-horizontal)}.aurora .message-sent.message-tail .message-bubble:before{border-left:0 solid transparent;border-right:6px solid transparent;border-bottom:6px solid var(--f7-message-sent-bg-color,var(--f7-theme-color));left:100%;transform:translate(-2px,0px) rotate(15deg);transform-origin:left bottom}.aurora .message+.message:not(.message-first){margin-top:5px}.aurora .message-typing-indicator>div{width:6px;height:6px}.aurora .message-typing-indicator>div+div{margin-left:4px}.aurora .message-typing-indicator>div:nth-child(1){animation:aurora-message-typing-indicator .9s infinite}.aurora .message-typing-indicator>div:nth-child(2){animation:aurora-message-typing-indicator .9s 150ms infinite}.aurora .message-typing-indicator>div:nth-child(3){animation:aurora-message-typing-indicator .9s .3s infinite}@keyframes aurora-message-typing-indicator{0%{transform:translateY(0%)}50%{transform:translateY(-5px)}100%{transform:translateY(0%)}}:root{--f7-messagebar-shadow-image:none;--f7-messagebar-textarea-bg-color:transparent;--f7-messagebar-attachments-height:155px;--f7-messagebar-attachment-height:155px;--f7-messagebar-attachment-landscape-height:120px;--f7-messagebar-sheet-height:252px;--f7-messagebar-sheet-landscape-height:192px;--f7-messagebar-bg-color:#fff;--f7-messagebar-bg-color-rgb:255,255,255}:root .theme-dark,:root.theme-dark{--f7-messagebar-bg-color:var(--f7-bars-bg-color);--f7-messagebar-bg-color-rgb:var(--f7-bars-bg-color-rgb)}.ios{--f7-messagebar-height:44px;--f7-messagebar-font-size:17px;--f7-messagebar-border-color:transparent;--f7-messagebar-textarea-border-radius:17px;--f7-messagebar-textarea-padding:6px 16px;--f7-messagebar-textarea-height:34px;--f7-messagebar-textarea-font-size:17px;--f7-messagebar-textarea-line-height:20px;--f7-messagebar-sheet-bg-color:#d1d5da;--f7-messagebar-attachment-border-radius:12px;--f7-messagebar-textarea-text-color:#000;--f7-messagebar-textarea-border:1px solid #c8c8cd;--f7-messagebar-attachments-border-color:#c8c8cd}.ios .theme-dark,.ios.theme-dark{--f7-messagebar-textarea-text-color:#fff;--f7-messagebar-textarea-border:1px solid var(--f7-bars-border-color);--f7-messagebar-attachments-border-color:var(--f7-bars-border-color)}.md{--f7-messagebar-height:48px;--f7-messagebar-font-size:16px;--f7-messagebar-textarea-border-radius:0px;--f7-messagebar-textarea-padding:5px 8px;--f7-messagebar-textarea-height:32px;--f7-messagebar-textarea-font-size:16px;--f7-messagebar-textarea-line-height:22px;--f7-messagebar-textarea-border:1px solid transparent;--f7-messagebar-sheet-bg-color:#fff;--f7-messagebar-attachment-border-radius:4px;--f7-messagebar-link-color:#333;--f7-messagebar-border-color:#d1d1d1;--f7-messagebar-textarea-text-color:#333;--f7-messagebar-attachments-border-color:#ddd}.md .theme-dark,.md.theme-dark{--f7-messagebar-border-color:transparent;--f7-messagebar-link-color:rgba(255, 255, 255, 0.87);--f7-messagebar-textarea-text-color:rgba(255, 255, 255, 0.87);--f7-messagebar-attachments-border-color:rgba(255, 255, 255, 0.2)}.aurora{--f7-messagebar-height:38px;--f7-messagebar-font-size:14px;--f7-messagebar-border-color:transparent;--f7-messagebar-textarea-border-radius:12px;--f7-messagebar-textarea-padding:3px 10px;--f7-messagebar-textarea-height:24px;--f7-messagebar-textarea-font-size:13px;--f7-messagebar-textarea-line-height:16px;--f7-messagebar-sheet-bg-color:#fff;--f7-messagebar-attachment-border-radius:12px;--f7-messagebar-textarea-text-color:#000;--f7-messagebar-textarea-border:1px solid #c8c8cd;--f7-messagebar-attachments-border-color:#c8c8cd}.aurora .theme-dark,.aurora.theme-dark{--f7-messagebar-textarea-text-color:#fff;--f7-messagebar-textarea-border:1px solid var(--f7-bars-border-color);--f7-messagebar-attachments-border-color:var(--f7-bars-border-color)}.messagebar{transform:translate3d(0,0,0);background:var(--f7-messagebar-bg-color);height:auto;min-height:var(--f7-messagebar-height);font-size:var(--f7-messagebar-font-size);padding-bottom:var(--f7-safe-area-bottom);bottom:0}.messagebar:before{content:'';position:absolute;background-color:var(--f7-messagebar-border-color);display:block;z-index:15;top:0;right:auto;bottom:auto;left:0;height:1px;width:100%;transform-origin:50% 0%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.messagebar:after{content:'';position:absolute;right:0;width:100%;bottom:100%;height:8px;top:auto;pointer-events:none;background:var(--f7-messagebar-shadow-image);transform:translate3d(0,0,0)}@supports ((-webkit-backdrop-filter:blur(20px)) or (backdrop-filter:blur(20px))){.ios-translucent-bars .messagebar{background-color:rgba(var(--f7-messagebar-bg-color-rgb),var(--f7-bars-translucent-opacity));-webkit-backdrop-filter:saturate(180%) blur(var(--f7-bars-translucent-blur));backdrop-filter:saturate(180%) blur(var(--f7-bars-translucent-blur))}}.messagebar.no-border:before,.messagebar.no-hairline:before{display:none!important}.messagebar.no-shadow:after,.messagebar.toolbar-hidden:after{display:none!important}.messagebar .toolbar-inner{top:auto;position:relative;height:auto;bottom:auto;padding-left:calc(var(--f7-messagebar-inner-padding-left,var(--f7-toolbar-inner-padding-left)) + var(--f7-safe-area-left));padding-right:calc(var(--f7-messagebar-inner-padding-right,var(--f7-toolbar-inner-padding-right)) + var(--f7-safe-area-right))}.messagebar.messagebar-sheet-visible>.toolbar-inner{bottom:0}.messagebar .messagebar-area{width:100%;flex-shrink:1;overflow:hidden;position:relative}.messagebar textarea{width:100%;flex-shrink:1;background-color:var(--f7-messagebar-textarea-bg-color);border-radius:var(--f7-messagebar-textarea-border-radius);padding:var(--f7-messagebar-textarea-padding);height:var(--f7-messagebar-textarea-height);color:var(--f7-messagebar-textarea-text-color);font-size:var(--f7-messagebar-textarea-font-size);line-height:var(--f7-messagebar-textarea-line-height);border:var(--f7-messagebar-textarea-border)}.messagebar a.link{align-self:flex-end;flex-shrink:0;color:var(--f7-messagebar-link-color,var(--f7-theme-color))}.messagebar-attachments{width:100%;overflow:auto;-webkit-overflow-scrolling:touch;font-size:0;white-space:nowrap;box-sizing:border-box;position:relative}.messagebar:not(.messagebar-attachments-visible) .messagebar-attachments{display:none}.messagebar-attachment{background-size:cover;background-position:center;background-repeat:no-repeat;display:inline-block;vertical-align:middle;white-space:normal;height:var(--f7-messagebar-attachment-height);position:relative;border-radius:var(--f7-messagebar-attachment-border-radius)}@media (orientation:landscape){.messagebar-attachment{height:var(--f7-messagebar-attachment-landscape-height)}}.messagebar-attachment img{display:block;width:auto;height:100%;border-radius:var(--f7-messagebar-attachment-border-radius)}.messagebar-attachment+.messagebar-attachment{margin-left:8px}.messagebar-sheet{overflow:auto;-webkit-overflow-scrolling:touch;display:flex;flex-wrap:wrap;flex-direction:column;align-content:flex-start;height:var(--f7-messagebar-sheet-height);background-color:var(--f7-messagebar-sheet-bg-color);padding-left:var(--f7-safe-area-left);padding-right:var(--f7-safe-area-right)}@media (orientation:landscape){.messagebar-sheet{height:var(--f7-messagebar-sheet-landscape-height)}}.messagebar-sheet-image,.messagebar-sheet-item{box-sizing:border-box;flex-shrink:0;margin-top:1px;position:relative;overflow:hidden;height:calc((var(--f7-messagebar-sheet-height) - 2px)/ 2);width:calc((var(--f7-messagebar-sheet-height) - 2px)/ 2);margin-left:1px}@media (orientation:landscape){.messagebar-sheet-image,.messagebar-sheet-item{width:calc((var(--f7-messagebar-sheet-landscape-height) - 2px)/ 2);height:calc((var(--f7-messagebar-sheet-landscape-height) - 2px)/ 2)}}.messagebar-sheet-image .icon-checkbox,.messagebar-sheet-image .icon-radio,.messagebar-sheet-item .icon-checkbox,.messagebar-sheet-item .icon-radio{position:absolute;right:8px;bottom:8px}.messagebar-sheet-image{background-size:cover;background-position:center;background-repeat:no-repeat}.messagebar-attachment-delete{display:block;position:absolute;border-radius:50%;box-sizing:border-box;cursor:pointer;box-shadow:0px 0px 2px rgba(0,0,0,.2)}.messagebar-attachment-delete:after,.messagebar-attachment-delete:before{position:absolute;content:'';left:50%;top:50%}.messagebar-attachment-delete:after{transform:rotate(45deg)}.messagebar-attachment-delete:before{transform:rotate(-45deg)}.messagebar:not(.messagebar-sheet-visible) .messagebar-sheet{display:none}.messagebar~*{--f7-page-toolbar-bottom-offset:var(--f7-messagebar-height)}.ios .messagebar a.link.icon-only:first-child{margin-left:-8px}.ios .messagebar a.link.icon-only:last-child{margin-right:-8px}.ios .messagebar a.link:not(.icon-only)+.messagebar-area{margin-left:8px}.ios .messagebar .messagebar-area+a.link:not(.icon-only){margin-left:8px}.ios .messagebar-area{margin-top:5px;margin-bottom:5px}.ios .messagebar-attachments{padding:5px;border-radius:var(--f7-messagebar-textarea-border-radius) var(--f7-messagebar-textarea-border-radius) 0 0;border:1px solid var(--f7-messagebar-attachments-border-color);border-bottom:none}.ios .messagebar-attachments-visible .messagebar-attachments+textarea{border-radius:0 0 var(--f7-messagebar-textarea-border-radius) var(--f7-messagebar-textarea-border-radius)}.ios .messagebar-attachment{font-size:14px}.ios .messagebar-attachment-delete{right:5px;top:5px;width:20px;height:20px;background:#7d7e80;border:2px solid #fff}.ios .messagebar-attachment-delete:after,.ios .messagebar-attachment-delete:before{width:10px;height:2px;background:#fff;margin-left:-5px;margin-top:-1px}.md .messagebar-attachments{padding:8px;border-bottom:1px solid var(--f7-messagebar-attachments-border-color)}.md .messagebar-area{margin-top:8px;margin-bottom:8px}.md .messagebar-sheet-image .icon-checkbox,.md .messagebar-sheet-item .icon-checkbox{border-color:#fff;background:rgba(255,255,255,.25);box-shadow:0px 0px 10px rgba(0,0,0,.5)}.md .messagebar-attachment-delete{right:8px;top:8px;width:24px;height:24px;background-color:var(--f7-theme-color);border-radius:4px}.md .messagebar-attachment-delete:after,.md .messagebar-attachment-delete:before{width:14px;height:2px;background:#fff;margin-left:-7px;margin-top:-1px}.aurora .messagebar a.link+.messagebar-area{margin-left:5px}.aurora .messagebar .messagebar-area+a.link{margin-left:5px}.aurora .messagebar-area{margin-top:5px;margin-bottom:5px}.aurora .messagebar-sheet-image .icon-checkbox,.aurora .messagebar-sheet-item .icon-checkbox{background:rgba(255,255,255,.25)}.aurora .messagebar-attachments{padding:5px;border-radius:var(--f7-messagebar-textarea-border-radius) var(--f7-messagebar-textarea-border-radius) 0 0;border:1px solid var(--f7-messagebar-attachments-border-color);border-bottom:none}.aurora .messagebar-attachments-visible .messagebar-attachments+textarea{border-radius:0 0 var(--f7-messagebar-textarea-border-radius) var(--f7-messagebar-textarea-border-radius)}.aurora .messagebar-attachment{font-size:14px}.aurora .messagebar-attachment-delete{right:5px;top:5px;width:14px;height:14px;background:grey}.aurora .messagebar-attachment-delete:after,.aurora .messagebar-attachment-delete:before{width:8px;height:1px;background:#fff;margin-left:-4px;margin-top:-1px}@font-face{font-family:swiper-icons;src:url("data:application/font-woff;charset=utf-8;base64, d09GRgABAAAAAAZgABAAAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAGRAAAABoAAAAci6qHkUdERUYAAAWgAAAAIwAAACQAYABXR1BPUwAABhQAAAAuAAAANuAY7+xHU1VCAAAFxAAAAFAAAABm2fPczU9TLzIAAAHcAAAASgAAAGBP9V5RY21hcAAAAkQAAACIAAABYt6F0cBjdnQgAAACzAAAAAQAAAAEABEBRGdhc3AAAAWYAAAACAAAAAj//wADZ2x5ZgAAAywAAADMAAAD2MHtryVoZWFkAAABbAAAADAAAAA2E2+eoWhoZWEAAAGcAAAAHwAAACQC9gDzaG10eAAAAigAAAAZAAAArgJkABFsb2NhAAAC0AAAAFoAAABaFQAUGG1heHAAAAG8AAAAHwAAACAAcABAbmFtZQAAA/gAAAE5AAACXvFdBwlwb3N0AAAFNAAAAGIAAACE5s74hXjaY2BkYGAAYpf5Hu/j+W2+MnAzMYDAzaX6QjD6/4//Bxj5GA8AuRwMYGkAPywL13jaY2BkYGA88P8Agx4j+/8fQDYfA1AEBWgDAIB2BOoAeNpjYGRgYNBh4GdgYgABEMnIABJzYNADCQAACWgAsQB42mNgYfzCOIGBlYGB0YcxjYGBwR1Kf2WQZGhhYGBiYGVmgAFGBiQQkOaawtDAoMBQxXjg/wEGPcYDDA4wNUA2CCgwsAAAO4EL6gAAeNpj2M0gyAACqxgGNWBkZ2D4/wMA+xkDdgAAAHjaY2BgYGaAYBkGRgYQiAHyGMF8FgYHIM3DwMHABGQrMOgyWDLEM1T9/w8UBfEMgLzE////P/5//f/V/xv+r4eaAAeMbAxwIUYmIMHEgKYAYjUcsDAwsLKxc3BycfPw8jEQA/gZBASFhEVExcQlJKWkZWTl5BUUlZRVVNXUNTQZBgMAAMR+E+gAEQFEAAAAKgAqACoANAA+AEgAUgBcAGYAcAB6AIQAjgCYAKIArAC2AMAAygDUAN4A6ADyAPwBBgEQARoBJAEuATgBQgFMAVYBYAFqAXQBfgGIAZIBnAGmAbIBzgHsAAB42u2NMQ6CUAyGW568x9AneYYgm4MJbhKFaExIOAVX8ApewSt4Bic4AfeAid3VOBixDxfPYEza5O+Xfi04YADggiUIULCuEJK8VhO4bSvpdnktHI5QCYtdi2sl8ZnXaHlqUrNKzdKcT8cjlq+rwZSvIVczNiezsfnP/uznmfPFBNODM2K7MTQ45YEAZqGP81AmGGcF3iPqOop0r1SPTaTbVkfUe4HXj97wYE+yNwWYxwWu4v1ugWHgo3S1XdZEVqWM7ET0cfnLGxWfkgR42o2PvWrDMBSFj/IHLaF0zKjRgdiVMwScNRAoWUoH78Y2icB/yIY09An6AH2Bdu/UB+yxopYshQiEvnvu0dURgDt8QeC8PDw7Fpji3fEA4z/PEJ6YOB5hKh4dj3EvXhxPqH/SKUY3rJ7srZ4FZnh1PMAtPhwP6fl2PMJMPDgeQ4rY8YT6Gzao0eAEA409DuggmTnFnOcSCiEiLMgxCiTI6Cq5DZUd3Qmp10vO0LaLTd2cjN4fOumlc7lUYbSQcZFkutRG7g6JKZKy0RmdLY680CDnEJ+UMkpFFe1RN7nxdVpXrC4aTtnaurOnYercZg2YVmLN/d/gczfEimrE/fs/bOuq29Zmn8tloORaXgZgGa78yO9/cnXm2BpaGvq25Dv9S4E9+5SIc9PqupJKhYFSSl47+Qcr1mYNAAAAeNptw0cKwkAAAMDZJA8Q7OUJvkLsPfZ6zFVERPy8qHh2YER+3i/BP83vIBLLySsoKimrqKqpa2hp6+jq6RsYGhmbmJqZSy0sraxtbO3sHRydnEMU4uR6yx7JJXveP7WrDycAAAAAAAH//wACeNpjYGRgYOABYhkgZgJCZgZNBkYGLQZtIJsFLMYAAAw3ALgAeNolizEKgDAQBCchRbC2sFER0YD6qVQiBCv/H9ezGI6Z5XBAw8CBK/m5iQQVauVbXLnOrMZv2oLdKFa8Pjuru2hJzGabmOSLzNMzvutpB3N42mNgZGBg4GKQYzBhYMxJLMlj4GBgAYow/P/PAJJhLM6sSoWKfWCAAwDAjgbRAAB42mNgYGBkAIIbCZo5IPrmUn0hGA0AO8EFTQAA") format("woff");font-weight:400;font-style:normal}:root{--swiper-theme-color:#007aff}.swiper-container{margin-left:auto;margin-right:auto;position:relative;overflow:hidden;list-style:none;padding:0;z-index:1}.swiper-container-vertical>.swiper-wrapper{flex-direction:column}.swiper-wrapper{position:relative;width:100%;height:100%;z-index:1;display:flex;transition-property:transform;box-sizing:content-box}.swiper-container-android .swiper-slide,.swiper-wrapper{transform:translate3d(0px,0,0)}.swiper-container-multirow>.swiper-wrapper{flex-wrap:wrap}.swiper-container-multirow-column>.swiper-wrapper{flex-wrap:wrap;flex-direction:column}.swiper-container-free-mode>.swiper-wrapper{transition-timing-function:ease-out;margin:0 auto}.swiper-slide{flex-shrink:0;width:100%;height:100%;position:relative;transition-property:transform}.swiper-slide-invisible-blank{visibility:hidden}.swiper-container-autoheight,.swiper-container-autoheight .swiper-slide{height:auto}.swiper-container-autoheight .swiper-wrapper{align-items:flex-start;transition-property:transform,height}.swiper-container-3d{perspective:1200px}.swiper-container-3d .swiper-cube-shadow,.swiper-container-3d .swiper-slide,.swiper-container-3d .swiper-slide-shadow-bottom,.swiper-container-3d .swiper-slide-shadow-left,.swiper-container-3d .swiper-slide-shadow-right,.swiper-container-3d .swiper-slide-shadow-top,.swiper-container-3d .swiper-wrapper{transform-style:preserve-3d}.swiper-container-3d .swiper-slide-shadow-bottom,.swiper-container-3d .swiper-slide-shadow-left,.swiper-container-3d .swiper-slide-shadow-right,.swiper-container-3d .swiper-slide-shadow-top{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:10}.swiper-container-3d .swiper-slide-shadow-left{background-image:linear-gradient(to left,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-container-3d .swiper-slide-shadow-right{background-image:linear-gradient(to right,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-container-3d .swiper-slide-shadow-top{background-image:linear-gradient(to top,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-container-3d .swiper-slide-shadow-bottom{background-image:linear-gradient(to bottom,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-container-css-mode>.swiper-wrapper{overflow:auto;scrollbar-width:none;-ms-overflow-style:none}.swiper-container-css-mode>.swiper-wrapper::-webkit-scrollbar{display:none}.swiper-container-css-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:start start}.swiper-container-horizontal.swiper-container-css-mode>.swiper-wrapper{scroll-snap-type:x mandatory}.swiper-container-vertical.swiper-container-css-mode>.swiper-wrapper{scroll-snap-type:y mandatory}.swiper-container .swiper-notification{position:absolute;left:0;top:0;pointer-events:none;opacity:0;z-index:-1000}.swiper-container-cube{overflow:visible}.swiper-container-cube .swiper-slide{pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1;visibility:hidden;transform-origin:0 0;width:100%;height:100%}.swiper-container-cube .swiper-slide .swiper-slide{pointer-events:none}.swiper-container-cube.swiper-container-rtl .swiper-slide{transform-origin:100% 0}.swiper-container-cube .swiper-slide-active,.swiper-container-cube .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-container-cube .swiper-slide-active,.swiper-container-cube .swiper-slide-next,.swiper-container-cube .swiper-slide-next+.swiper-slide,.swiper-container-cube .swiper-slide-prev{pointer-events:auto;visibility:visible}.swiper-container-cube .swiper-slide-shadow-bottom,.swiper-container-cube .swiper-slide-shadow-left,.swiper-container-cube .swiper-slide-shadow-right,.swiper-container-cube .swiper-slide-shadow-top{z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-container-cube .swiper-cube-shadow{position:absolute;left:0;bottom:0px;width:100%;height:100%;background:#000;opacity:.6;-webkit-filter:blur(50px);filter:blur(50px);z-index:0}.swiper-container-fade.swiper-container-free-mode .swiper-slide{transition-timing-function:ease-out}.swiper-container-fade .swiper-slide{pointer-events:none;transition-property:opacity}.swiper-container-fade .swiper-slide .swiper-slide{pointer-events:none}.swiper-container-fade .swiper-slide-active,.swiper-container-fade .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-container-flip{overflow:visible}.swiper-container-flip .swiper-slide{pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1}.swiper-container-flip .swiper-slide .swiper-slide{pointer-events:none}.swiper-container-flip .swiper-slide-active,.swiper-container-flip .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-container-flip .swiper-slide-shadow-bottom,.swiper-container-flip .swiper-slide-shadow-left,.swiper-container-flip .swiper-slide-shadow-right,.swiper-container-flip .swiper-slide-shadow-top{z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-lazy-preloader{width:42px;height:42px;position:absolute;left:50%;top:50%;margin-left:-21px;margin-top:-21px;z-index:10;transform-origin:50%;animation:swiper-preloader-spin 1s infinite linear;box-sizing:border-box;border:4px solid var(--swiper-preloader-color,var(--swiper-theme-color));border-radius:50%;border-top-color:transparent}.swiper-lazy-preloader-white{--swiper-preloader-color:#fff}.swiper-lazy-preloader-black{--swiper-preloader-color:#000}@keyframes swiper-preloader-spin{100%{transform:rotate(360deg)}}:root{--swiper-navigation-size:44px}.swiper-button-next,.swiper-button-prev{position:absolute;top:50%;width:calc(var(--swiper-navigation-size)/ 44 * 27);height:var(--swiper-navigation-size);margin-top:calc(-1 * var(--swiper-navigation-size)/ 2);z-index:10;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--swiper-navigation-color,var(--swiper-theme-color))}.swiper-button-next.swiper-button-disabled,.swiper-button-prev.swiper-button-disabled{opacity:.35;cursor:auto;pointer-events:none}.swiper-button-next:after,.swiper-button-prev:after{font-family:swiper-icons;font-size:var(--swiper-navigation-size);text-transform:none!important;letter-spacing:0;text-transform:none;font-variant:initial;line-height:1}.swiper-button-prev,.swiper-container-rtl .swiper-button-next{left:10px;right:auto}.swiper-button-prev:after,.swiper-container-rtl .swiper-button-next:after{content:'prev'}.swiper-button-next,.swiper-container-rtl .swiper-button-prev{right:10px;left:auto}.swiper-button-next:after,.swiper-container-rtl .swiper-button-prev:after{content:'next'}.swiper-button-lock{display:none}.swiper-pagination{position:absolute;text-align:center;transition:.3s opacity;transform:translate3d(0,0,0);z-index:10}.swiper-pagination.swiper-pagination-hidden{opacity:0}.swiper-container-horizontal>.swiper-pagination-bullets,.swiper-pagination-custom,.swiper-pagination-fraction{bottom:10px;left:0;width:100%}.swiper-pagination-bullets-dynamic{overflow:hidden;font-size:0}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transform:scale(.33);position:relative}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev{transform:scale(.33)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next{transform:scale(.33)}.swiper-pagination-bullet{width:8px;height:8px;display:inline-block;border-radius:100%;background:#000;opacity:.2}button.swiper-pagination-bullet{border:none;margin:0;padding:0;box-shadow:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.swiper-pagination-clickable .swiper-pagination-bullet{cursor:pointer}.swiper-pagination-bullet-active{opacity:1;background:var(--swiper-pagination-color,var(--swiper-theme-color))}.swiper-container-vertical>.swiper-pagination-bullets{right:10px;top:50%;transform:translate3d(0px,-50%,0)}.swiper-container-vertical>.swiper-pagination-bullets .swiper-pagination-bullet{margin:6px 0;display:block}.swiper-container-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{top:50%;transform:translateY(-50%);width:8px}.swiper-container-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{display:inline-block;transition:.2s transform,.2s top}.swiper-container-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet{margin:0 4px}.swiper-container-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{left:50%;transform:translateX(-50%);white-space:nowrap}.swiper-container-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s left}.swiper-container-horizontal.swiper-container-rtl>.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s right}.swiper-pagination-progressbar{background:rgba(0,0,0,.25);position:absolute}.swiper-pagination-progressbar .swiper-pagination-progressbar-fill{background:var(--swiper-pagination-color,var(--swiper-theme-color));position:absolute;left:0;top:0;width:100%;height:100%;transform:scale(0);transform-origin:left top}.swiper-container-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill{transform-origin:right top}.swiper-container-horizontal>.swiper-pagination-progressbar,.swiper-container-vertical>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite{width:100%;height:4px;left:0;top:0}.swiper-container-horizontal>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,.swiper-container-vertical>.swiper-pagination-progressbar{width:4px;height:100%;left:0;top:0}.swiper-pagination-lock{display:none}.swiper-scrollbar{border-radius:10px;position:relative;-ms-touch-action:none;background:rgba(0,0,0,.1)}.swiper-container-horizontal>.swiper-scrollbar{position:absolute;left:1%;bottom:3px;z-index:50;height:5px;width:98%}.swiper-container-vertical>.swiper-scrollbar{position:absolute;right:3px;top:1%;z-index:50;width:5px;height:98%}.swiper-scrollbar-drag{height:100%;width:100%;position:relative;background:rgba(0,0,0,.5);border-radius:10px;left:0;top:0}.swiper-scrollbar-cursor-drag{cursor:move}.swiper-scrollbar-lock{display:none}.swiper-zoom-container{width:100%;height:100%;display:flex;justify-content:center;align-items:center;text-align:center}.swiper-zoom-container>canvas,.swiper-zoom-container>img,.swiper-zoom-container>svg{max-width:100%;max-height:100%;object-fit:contain}.swiper-slide-zoomed{cursor:move}:root{--swiper-theme-color:var(--f7-theme-color)}:root{--f7-photobrowser-bg-color:#fff;--f7-photobrowser-bars-bg-image:none;--f7-photobrowser-caption-font-size:14px;--f7-photobrowser-caption-light-text-color:#000;--f7-photobrowser-caption-light-bg-color:rgba(255, 255, 255, 0.8);--f7-photobrowser-caption-dark-text-color:#fff;--f7-photobrowser-caption-dark-bg-color:rgba(0, 0, 0, 0.8);--f7-photobrowser-exposed-bg-color:#000;--f7-photobrowser-dark-bg-color:#000;--f7-photobrowser-dark-bars-bg-color:rgba(27, 27, 27, 0.8);--f7-photobrowser-dark-bars-text-color:#fff;--f7-photobrowser-dark-bars-link-color:#fff}.photo-browser{position:absolute;left:0;top:0;width:100%;height:100%;z-index:400}.photo-browser-standalone.modal-in{transition-duration:0s;animation:photo-browser-in .4s}.photo-browser-standalone.modal-out{transition-duration:0s;animation:photo-browser-out .4s!important}.photo-browser-standalone.modal-out.swipe-close-to-bottom,.photo-browser-standalone.modal-out.swipe-close-to-top{animation:none!important}.photo-browser-standalone.photo-browser-transitioning{transition:.4s;transition-property:transform;animation:none!important}.photo-browser-popup.modal-out.swipe-close-to-bottom,.photo-browser-popup.modal-out.swipe-close-to-top{transition-duration:.3s}.photo-browser-popup.modal-out.swipe-close-to-bottom{transform:translate3d(0,100vh,0)}.photo-browser-popup.modal-out.swipe-close-to-top{transform:translate3d(0,-100vh,0)}.photo-browser-page{background:0 0}.photo-browser-page .toolbar{transform:none}.photo-browser-popup{background:0 0}.photo-browser-of{margin:0 5px}.photo-browser-captions{pointer-events:none;position:absolute;left:0;width:100%;bottom:var(--f7-safe-area-bottom);z-index:10;opacity:1;transition:.4s}.photo-browser-captions.photo-browser-captions-exposed{opacity:0}.toolbar~.photo-browser-captions{bottom:calc(var(--f7-toolbar-height) + var(--f7-safe-area-bottom));transform:translate3d(0,0px,0)}.toolbar~.photo-browser-captions.photo-browser-captions-exposed{transform:translate3d(0,0px,0)}.photo-browser-caption{box-sizing:border-box;transition:.3s;position:absolute;bottom:0;left:0;opacity:0;padding:4px 5px;width:100%;text-align:center;font-size:var(--f7-photobrowser-caption-font-size)}.photo-browser-caption:empty{display:none}.photo-browser-caption.photo-browser-caption-active{opacity:1}.photo-browser-captions-light .photo-browser-caption{color:var(--f7-photobrowser-caption-light-text-color);background:var(--f7-photobrowser-caption-light-bg-color)}.photo-browser-captions-dark .photo-browser-caption{color:var(--f7-photobrowser-caption-dark-text-color);background:var(--f7-photobrowser-caption-dark-bg-color)}.photo-browser-swiper-container{position:absolute;left:0;top:0;width:100%;height:100%;overflow:hidden;background:var(--f7-photobrowser-bg-color);transition:.4s;transition-property:background-color}.photo-browser-next.swiper-button-disabled,.photo-browser-prev.swiper-button-disabled{opacity:.3;pointer-events:none}.photo-browser-slide{width:100%;height:100%;position:relative;overflow:hidden;display:flex;justify-content:center;align-items:center;flex-shrink:0;box-sizing:border-box}.photo-browser-slide span.swiper-zoom-container{display:none}.photo-browser-slide img{width:auto;height:auto;max-width:100%;max-height:100%;display:none}.photo-browser-slide.swiper-slide-active span.swiper-zoom-container,.photo-browser-slide.swiper-slide-next span.swiper-zoom-container,.photo-browser-slide.swiper-slide-prev span.swiper-zoom-container{display:flex}.photo-browser-slide.swiper-slide-active img,.photo-browser-slide.swiper-slide-next img,.photo-browser-slide.swiper-slide-prev img{display:inline}.photo-browser-slide.swiper-slide-active.photo-browser-slide-lazy .preloader,.photo-browser-slide.swiper-slide-next.photo-browser-slide-lazy .preloader,.photo-browser-slide.swiper-slide-prev.photo-browser-slide-lazy .preloader{display:block}.photo-browser-slide iframe{width:100%;height:100%}.photo-browser-slide .preloader{display:none;position:absolute;width:42px;height:42px;margin-left:-21px;margin-top:-21px;left:50%;top:50%}.navbar-photo-browser .navbar-bg,.photo-browser-page .navbar-bg,.photo-browser-page .toolbar{background-color:var(--f7-photobrowser-bars-bg-color,rgba(var(--f7-bars-bg-color-rgb),.95));background-image:var(--f7-photobrowser-bars-bg-image)}.photo-browser-page .navbar,.photo-browser-page .toolbar{transition:.4s;color:var(--f7-photobrowser-bars-text-color,var(--f7-bars-text-color))}.photo-browser-page .navbar a,.photo-browser-page .toolbar a{color:var(--f7-photobrowser-bars-link-color,var(--f7-bars-link-color,var(--f7-theme-color)))}.photo-browser-exposed .navbar,.photo-browser-exposed .toolbar{opacity:0;visibility:hidden;pointer-events:none}.photo-browser-exposed .toolbar~.photo-browser-captions{transform:translate3d(0,var(--f7-toolbar-height),0)}.photo-browser-exposed .photo-browser-swiper-container{background:var(--f7-photobrowser-exposed-bg-color)}.photo-browser-exposed .photo-browser-caption{color:var(--f7-photobrowser-caption-dark-text-color);background:var(--f7-photobrowser-caption-dark-bg-color)}.view.with-photo-browser-page-exposed .navbar{opacity:0;pointer-events:none}.navbar-photo-browser-dark .navbar-bg,.photo-browser-page-dark .navbar-bg,.photo-browser-page-dark .toolbar{background:var(--f7-photobrowser-dark-bars-bg-color)}.navbar-photo-browser-dark .navbar-bg:after,.navbar-photo-browser-dark .navbar-bg:before,.photo-browser-page-dark .navbar-bg:after,.photo-browser-page-dark .navbar-bg:before,.photo-browser-page-dark .toolbar:after,.photo-browser-page-dark .toolbar:before{display:none!important}.navbar-photo-browser-dark,.photo-browser-dark .navbar,.photo-browser-dark .toolbar,.photo-browser-dark-page .navbar,.photo-browser-dark-page .toolbar{--f7-touch-ripple-color:var(--f7-touch-ripple-white);--f7-link-highlight-color:var(--f7-link-highlight-white);color:var(--f7-photobrowser-dark-bars-text-color)}.navbar-photo-browser-dark a,.photo-browser-dark .navbar a,.photo-browser-dark .toolbar a,.photo-browser-dark-page .navbar a,.photo-browser-dark-page .toolbar a{color:var(--f7-photobrowser-dark-bars-link-color)}.photo-browser-dark .photo-browser-swiper-container,.photo-browser-page-dark .photo-browser-swiper-container{background:var(--f7-photobrowser-dark-bg-color)}@keyframes photo-browser-in{0%{transform:translate3d(0,0,0) scale(.5);opacity:0}50%{transform:translate3d(0,0,0) scale(1.05);opacity:1}100%{transform:translate3d(0,0,0) scale(1);opacity:1}}@keyframes photo-browser-out{0%{transform:translate3d(0,0,0) scale(1);opacity:1}50%{transform:translate3d(0,0,0) scale(1.05);opacity:1}100%{transform:translate3d(0,0,0) scale(.5);opacity:0}}:root{--f7-notification-max-width:568px;--f7-notification-subtitle-text-transform:none;--f7-notification-subtitle-line-height:1.35;--f7-notification-text-text-transform:none;--f7-notification-text-font-weight:400}:root .theme-dark,:root.theme-dark{--f7-notification-subtitle-color:#fff}.ios{--f7-notification-margin:8px;--f7-notification-padding:10px;--f7-notification-border-radius:12px;--f7-notification-box-shadow:0px 5px 25px -10px rgba(0, 0, 0, 0.7);--f7-notification-icon-size:20px;--f7-notification-title-font-size:13px;--f7-notification-title-text-transform:uppercase;--f7-notification-title-line-height:1.4;--f7-notification-title-font-weight:400;--f7-notification-title-letter-spacing:0.02em;--f7-notification-title-right-font-size:13px;--f7-notification-subtitle-font-size:15px;--f7-notification-subtitle-font-weight:600;--f7-notification-text-font-size:15px;--f7-notification-text-line-height:1.2;--f7-notification-bg-color:rgba(250, 250, 250, 0.95);--f7-notification-bg-color-rgb:255,255,255;--f7-notification-title-color:#000;--f7-notification-title-right-color:rgba(0, 0, 0, 0.45);--f7-notification-subtitle-color:#000;--f7-notification-text-color:#000}.ios .theme-dark,.ios.theme-dark{--f7-notification-bg-color:rgba(30, 30, 30, 0.95);--f7-notification-bg-color-rgb:30,30,30;--f7-notification-title-color:#fff;--f7-notification-text-color:#fff;--f7-notification-title-right-color:rgba(255, 255, 255, 0.55)}.md{--f7-notification-margin:0px;--f7-notification-padding:16px;--f7-notification-border-radius:0px;--f7-notification-box-shadow:0 2px 4px rgba(0, 0, 0, 0.22),0 1px 2px rgba(0, 0, 0, 0.24);--f7-notification-icon-size:16px;--f7-notification-title-color:var(--f7-theme-color);--f7-notification-title-font-size:12px;--f7-notification-title-text-transform:none;--f7-notification-title-line-height:1;--f7-notification-title-font-weight:400;--f7-notification-title-right-font-size:12px;--f7-notification-subtitle-font-size:14px;--f7-notification-subtitle-font-weight:400;--f7-notification-text-font-size:14px;--f7-notification-text-line-height:1.35;--f7-notification-bg-color:#fff;--f7-notification-title-right-color:rgba(0, 0, 0, 0.54);--f7-notification-subtitle-color:#212121;--f7-notification-text-color:rgba(0, 0, 0, 0.54)}.md .theme-dark,.md.theme-dark{--f7-notification-bg-color:#242424;--f7-notification-title-right-color:rgba(255, 255, 255, 0.54);--f7-notification-text-color:rgba(255, 255, 255, 0.54)}.aurora{--f7-notification-margin:10px;--f7-notification-padding:10px;--f7-notification-border-radius:4px;--f7-notification-box-shadow:0px 5px 25px -10px rgba(0, 0, 0, 0.7);--f7-notification-icon-size:18px;--f7-notification-title-font-size:13px;--f7-notification-title-text-transform:uppercase;--f7-notification-title-line-height:1.4;--f7-notification-title-font-weight:500;--f7-notification-title-letter-spacing:0.02em;--f7-notification-title-right-font-size:13px;--f7-notification-subtitle-font-size:12px;--f7-notification-subtitle-font-weight:600;--f7-notification-text-font-size:12px;--f7-notification-text-line-height:1.2;--f7-notification-bg-color:#fff;--f7-notification-title-color:#000;--f7-notification-title-right-color:rgba(255, 255, 255, 0.6);--f7-notification-subtitle-color:#000;--f7-notification-text-color:#000}.aurora .theme-dark,.aurora.theme-dark{--f7-notification-bg-color:#242424;--f7-notification-title-color:#fff;--f7-notification-text-color:#fff;--f7-notification-title-right-color:rgba(255, 255, 255, 0.54)}.notification{--f7-link-highlight-color:var(--f7-link-highlight-black);--f7-touch-ripple-color:var(--f7-touch-ripple-black);position:absolute;left:var(--f7-notification-margin);top:var(--f7-notification-margin);width:calc(100% - var(--f7-notification-margin) * 2);z-index:20000;font-size:14px;margin:0;border:none;display:none;box-sizing:border-box;transition-property:transform;direction:ltr;max-width:var(--f7-notification-max-width);padding:var(--f7-notification-padding);border-radius:var(--f7-notification-border-radius);box-shadow:var(--f7-notification-box-shadow);background:var(--f7-notification-bg-color);margin-top:var(--f7-safe-area-top)}@supports ((-webkit-backdrop-filter:blur(20px)) or (backdrop-filter:blur(20px))){.ios-translucent-modals .notification{background-color:rgba(var(--f7-notification-bg-color-rgb),.8);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}}@media (min-width:568px){.notification{left:50%;width:var(--f7-notification-max-width);margin-left:calc(-1 * var(--f7-notification-max-width)/ 2)}}.notification-title{color:var(--f7-notification-title-color,var(--f7-theme-color));font-size:var(--f7-notification-title-font-size);text-transform:var(--f7-notification-title-text-transform);line-height:var(--f7-notification-title-line-height);font-weight:var(--f7-notification-title-font-weight);letter-spacing:var(--f7-notification-title-letter-spacing)}.notification-subtitle{color:var(--f7-notification-subtitle-color);font-size:var(--f7-notification-subtitle-font-size);text-transform:var(--f7-notification-subtitle-text-transform);line-height:var(--f7-notification-subtitle-line-height);font-weight:var(--f7-notification-subtitle-font-weight)}.notification-text{color:var(--f7-notification-text-color);font-size:var(--f7-notification-text-font-size);text-transform:var(--f7-notification-text-text-transform);line-height:var(--f7-notification-text-line-height);font-weight:var(--f7-notification-text-font-weight)}.notification-title-right-text{color:var(--f7-notification-title-right-color);font-size:var(--f7-notification-title-right-font-size)}.notification-icon{font-size:0;line-height:var(--f7-notification-icon-size)}.notification-icon,.notification-icon i{width:var(--f7-notification-icon-size)!important;height:var(--f7-notification-icon-size)!important}.notification-icon i{font-size:var(--f7-notification-icon-size)}.notification-icon img{height:var(--f7-notification-icon-size)}.notification-header{display:flex;justify-content:flex-start;align-items:center}.notification-close-button{margin-left:auto;cursor:pointer;position:relative}.notification-close-button:after{font-family:framework7-core-icons;font-weight:400;font-style:normal;line-height:1;letter-spacing:normal;text-transform:none;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;font-feature-settings:"liga";display:block;width:100%;height:100%;font-size:20px;position:absolute;left:50%;top:50%;text-align:center}.ios .notification{transition-duration:450ms;transform:translate3d(0%,-200%,0)}.ios .notification.modal-in{transform:translate3d(0%,0%,0);opacity:1}.ios .notification.modal-out{transform:translate3d(0%,-200%,0)}.ios .notification-icon{margin-right:8px}.ios .notification-header+.notification-content{margin-top:10px}.ios .notification-title-right-text{margin-right:6px;margin-left:auto}.ios .notification-title-right-text+.notification-close-button{margin-left:10px}.ios .notification-close-button{font-size:14px;width:20px;height:20px;opacity:.3;transition-duration:.3s}.ios .notification-close-button.active-state{transition-duration:0s;opacity:.1}.ios .notification-close-button:after{color:#000;content:'notification_close_ios';font-size:.65em;line-height:44px;width:44px;height:44px;margin-left:-22px;margin-top:-22px}.ios .theme-dark .notification-close-button:after,.ios.theme-dark .notification-close-button:after{color:#fff}.md .notification{transform:translate3d(0,-150%,0)}.md .notification.modal-in{transition-duration:0s;animation:notification-md-in .4s ease-out;transform:translate3d(0,0%,0)}.md .notification.modal-in.notification-transitioning{transition-duration:.2s}.md .notification.modal-out{animation:none;transition-duration:.2s;transition-timing-function:ease-in;transform:translate3d(0,-150%,0)}.md .notification-icon{margin-right:8px}.md .notification-subtitle+.notification-text{margin-top:2px}.md .notification-header+.notification-content{margin-top:6px}.md .notification-title-right-text{margin-left:4px}.md .notification-title-right-text:before{content:'';width:3px;height:3px;border-radius:50%;display:inline-block;vertical-align:middle;margin-right:4px;background:var(--f7-notification-title-right-color)}.md .notification-close-button{width:16px;height:16px;transition-duration:.3s}.md .notification-close-button:before{content:'';width:152%;height:152%;position:absolute;left:-26%;top:-26%;background-image:radial-gradient(circle at center,var(--f7-link-highlight-color) 66%,rgba(255,255,255,0) 66%);background-repeat:no-repeat;background-position:center;background-size:100% 100%;opacity:0;pointer-events:none;transition-duration:.6s}.md .notification-close-button.active-state:before{opacity:1;transition-duration:150ms}.md .notification-close-button:after,.md .notification-close-button:before{width:48px;height:48px;left:50%;top:50%;margin-left:-24px;margin-top:-24px}.md .notification-close-button:after{color:#737373;content:'delete_md';line-height:48px;font-size:14px}@keyframes notification-md-in{0%{transform:translate3d(0,-150%,0)}50%{transform:translate3d(0,10%,0)}100%{transform:translate3d(0,0%,0)}}.aurora .notification{transition-duration:450ms;transform:translate3d(0%,-200%,0)}.aurora .notification.modal-in{transform:translate3d(0%,0%,0);opacity:1}.aurora .notification.modal-out{transform:translate3d(0%,-200%,0)}.aurora .notification-icon{margin-right:10px}.aurora .notification-header+.notification-content{margin-top:10px}.aurora .notification-title-right-text{margin-right:0px;margin-left:auto}.aurora .notification-title-right-text+.notification-close-button{margin-left:10px}.aurora .notification-close-button{font-size:14px;width:16px;height:16px;opacity:.4;transition-duration:.3s}.aurora .notification-close-button.active-state{transition-duration:0s;opacity:.6}.aurora .notification-close-button:after{color:#000;content:'notification_close_ios';font-size:.5em;line-height:38px;width:38px;height:38px;margin-left:-19px;margin-top:-19px}.aurora .theme-dark .notification-close-button:after,.aurora.theme-dark .notification-close-button:after{color:#fff}:root{--f7-autocomplete-dropdown-placeholder-color:#a9a9a9;--f7-autocomplete-dropdown-preloader-size:20px;--f7-autocomplete-dropdown-bg-color:#fff}:root .theme-dark,:root.theme-dark{--f7-autocomplete-dropdown-bg-color:#1c1c1d}.ios{--f7-autocomplete-dropdown-box-shadow:0px 3px 3px rgba(0, 0, 0, 0.2);--f7-autocomplete-dropdown-text-matching-font-weight:600;--f7-autocomplete-dropdown-font-size:var(--f7-list-font-size);--f7-autocomplete-dropdown-text-color:#000;--f7-autocomplete-dropdown-text-matching-color:#000}.ios .theme-dark,.ios.theme-dark{--f7-autocomplete-dropdown-text-color:#fff;--f7-autocomplete-dropdown-text-matching-color:#fff}.md{--f7-autocomplete-dropdown-box-shadow:0 2px 2px rgba(0, 0, 0, 0.25);--f7-autocomplete-dropdown-text-matching-font-weight:400;--f7-autocomplete-dropdown-font-size:var(--f7-list-font-size);--f7-autocomplete-dropdown-text-color:rgba(0, 0, 0, 0.54);--f7-autocomplete-dropdown-text-matching-color:#212121}.md .theme-dark,.md.theme-dark{--f7-autocomplete-dropdown-text-color:rgba(255, 255, 255, 0.54);--f7-autocomplete-dropdown-text-matching-color:rgba(255, 255, 255, 0.87)}.aurora{--f7-autocomplete-dropdown-box-shadow:0px 1px 2px rgba(0, 0, 0, 0.2);--f7-autocomplete-dropdown-text-matching-font-weight:700;--f7-autocomplete-dropdown-font-size:13px;--f7-autocomplete-dropdown-text-color:#000;--f7-autocomplete-dropdown-text-matching-color:#000}.aurora .theme-dark,.aurora.theme-dark{--f7-autocomplete-dropdown-text-color:#fff;--f7-autocomplete-dropdown-text-matching-color:#fff}.autocomplete-page .autocomplete-found{display:block}.autocomplete-page .autocomplete-not-found{display:none}.autocomplete-page .autocomplete-values{display:block}.autocomplete-page .list ul:empty{display:none}.autocomplete-preloader:not(.autocomplete-preloader-visible){visibility:hidden}.autocomplete-preloader:not(.autocomplete-preloader-visible),.autocomplete-preloader:not(.autocomplete-preloader-visible) *{animation:none}.autocomplete-dropdown{background:var(--f7-autocomplete-dropdown-bg-color);box-shadow:var(--f7-autocomplete-dropdown-box-shadow);box-sizing:border-box;position:absolute;z-index:500;width:100%;left:0}.autocomplete-dropdown .autocomplete-dropdown-inner{position:relative;overflow:auto;-webkit-overflow-scrolling:touch;height:100%;z-index:1}.autocomplete-dropdown .autocomplete-preloader{display:none;position:absolute;bottom:100%;width:var(--f7-autocomplete-dropdown-preloader-size);height:var(--f7-autocomplete-dropdown-preloader-size)}.autocomplete-dropdown .autocomplete-preloader-visible{display:block}.autocomplete-dropdown .autocomplete-dropdown-placeholder{color:var(--f7-autocomplete-dropdown-placeholder-color)}.autocomplete-dropdown .list{margin:0;color:var(--f7-autocomplete-dropdown-text-color);font-size:var(--f7-autocomplete-dropdown-font-size)}.autocomplete-dropdown .list b{color:var(--f7-autocomplete-dropdown-text-matching-color);font-weight:var(--f7-autocomplete-dropdown-text-matching-font-weight)}.autocomplete-dropdown .list ul{background:0 0!important}.autocomplete-dropdown .list ul:after,.autocomplete-dropdown .list ul:before{display:none!important}.autocomplete-dropdown .autocomplete-dropdown-selected{background:var(--f7-autocomplete-dropdown-selected-bg-color,rgba(var(--f7-theme-color-rgb),.2))}.searchbar-input-wrap .autocomplete-dropdown{background-color:var(--f7-searchbar-input-bg-color,var(--f7-searchbar-bg-color));border-radius:var(--f7-searchbar-input-border-radius)}.searchbar-input-wrap .autocomplete-dropdown .autocomplete-dropdown-placeholder{color:var(--f7-searchbar-placeholder-color)}.searchbar-input-wrap .autocomplete-dropdown li:last-child{border-radius:0 0 var(--f7-searchbar-input-border-radius) var(--f7-searchbar-input-border-radius);position:relative;overflow:hidden}.searchbar-input-wrap .autocomplete-dropdown .item-content{padding-left:calc(var(--f7-searchbar-input-padding-horizontal) + var(--f7-searchbar-input-extra-padding-left))}.list .item-content-dropdown-expanded .item-title.item-label{width:0;flex-shrink:10;overflow:hidden}.list .item-content-dropdown-expanded .item-title.item-label+.item-input-wrap{margin-left:0}.list .item-content-dropdown-expanded .item-input-wrap{width:100%}.ios .autocomplete-dropdown .autocomplete-preloader{right:16px;margin-bottom:12px}.ios .searchbar-input-wrap .autocomplete-dropdown{margin-top:calc(-1 * var(--f7-searchbar-input-height));top:100%;z-index:20}.ios .searchbar-input-wrap .autocomplete-dropdown .autocomplete-dropdown-inner{padding-top:var(--f7-searchbar-input-height)}.md .autocomplete-page .navbar .autocomplete-preloader{margin-right:8px}.md .autocomplete-popup .navbar .autocomplete-preloader{margin-left:8px;margin-right:16px}.md .autocomplete-dropdown .autocomplete-preloader{right:16px;margin-bottom:8px}.md .autocomplete-dropdown .autocomplete-preloader .preloader-inner-gap,.md .autocomplete-dropdown .autocomplete-preloader .preloader-inner-half-circle{border-width:3px}.aurora .autocomplete-dropdown .autocomplete-preloader{right:16px;margin-bottom:2px}.aurora .searchbar-input-wrap .autocomplete-dropdown{margin-top:calc(-1 * var(--f7-searchbar-input-height));top:100%;z-index:20}.aurora .searchbar-input-wrap .autocomplete-dropdown .autocomplete-dropdown-inner{padding-top:var(--f7-searchbar-input-height)}:root{--f7-tooltip-bg-color:rgba(0, 0, 0, 0.87);--f7-tooltip-text-color:#fff;--f7-tooltip-border-radius:4px;--f7-tooltip-padding:8px 16px;--f7-tooltip-font-size:14px;--f7-tooltip-font-weight:500;--f7-tooltip-desktop-padding:6px 8px;--f7-tooltip-desktop-font-size:12px}.tooltip{position:absolute;z-index:20000;background:var(--f7-tooltip-bg-color);border-radius:var(--f7-tooltip-border-radius);padding:var(--f7-tooltip-padding);color:var(--f7-tooltip-text-color);font-size:var(--f7-tooltip-font-size);font-weight:var(--f7-tooltip-font-weight);box-sizing:border-box;line-height:1.2;opacity:0;transform:scale(.9);transition-duration:150ms;transition-property:opacity,transform;z-index:99000}.tooltip.tooltip-in{transform:scale(1);opacity:1}.tooltip.tooltip-out{opacity:0;transform:scale(1)}.device-desktop .tooltip{font-size:var(--f7-tooltip-desktop-font-size);padding:var(--f7-tooltip-desktop-padding)}.gauge{position:relative;text-align:center;margin-left:auto;margin-right:auto;display:inline-block}.gauge svg,.gauge-svg{max-width:100%;height:auto}.gauge svg circle,.gauge svg path,.gauge-svg circle,.gauge-svg path{transition-duration:.4s}:root{--f7-skeleton-color:#ccc}.theme-dark{--f7-skeleton-color:#515151}.skeleton-text{font-family:framework7-skeleton!important}.skeleton-text,.skeleton-text *{color:var(--f7-skeleton-color)!important;font-weight:400!important;font-style:normal!important;letter-spacing:-.015em!important}.skeleton-block{height:1em;background:var(--f7-skeleton-color)!important;width:100%}.skeleton-effect-fade{animation:skeleton-effect-fade 1s infinite}.skeleton-effect-blink{-webkit-mask-image:linear-gradient(to right,transparent 0%,#000 25%,#000 75%,transparent 100%);mask-image:linear-gradient(to right,transparent 0%,#000 25%,#000 75%,transparent 100%);-webkit-mask-size:200% 100%;mask-size:200% 100%;-webkit-mask-repeat:repeat;mask-repeat:repeat;-webkit-mask-position:50% top;mask-position:50% top;animation:skeleton-effect-blink 1s infinite}.skeleton-effect-pulse{animation:skeleton-effect-pulse 1s infinite}@keyframes skeleton-effect-fade{0%{opacity:1}50%{opacity:.2}100%{opacity:1}}@keyframes skeleton-effect-blink{0%{-webkit-mask-position:50% top;mask-position:50% top}100%{-webkit-mask-position:-150% top;mask-position:-150% top}}@keyframes skeleton-effect-pulse{0%{transform:scale(1)}40%{transform:scale(1)}50%{transform:scale(.975)}100%{transform:scale(1)}}:root{--f7-menu-text-color:#fff;--f7-menu-font-size:16px;--f7-menu-font-weight:500;--f7-menu-line-height:1.2;--f7-menu-bg-color:rgba(0, 0, 0, 0.9);--f7-menu-item-pressed-bg-color:rgba(20, 20, 20, 0.9);--f7-menu-item-padding-horizontal:12px;--f7-menu-item-spacing:6px;--f7-menu-item-height:40px;--f7-menu-item-dropdown-icon-color:rgba(255, 255, 255, 0.4);--f7-menu-item-border-radius:8px;--f7-menu-dropdown-item-height:28px;--f7-menu-dropdown-divider-color:rgba(255, 255, 255, 0.2);--f7-menu-dropdown-padding-vertical:6px}.aurora{--f7-menu-font-size:13px;--f7-menu-item-height:28px;--f7-menu-dropdown-item-height:24px;--f7-menu-item-border-radius:5px;--f7-menu-item-padding-horizontal:10px}.menu{z-index:1000;position:relative;transform:translate3d(0,0,0);--f7-touch-ripple-color:var(--f7-touch-ripple-white)}.menu-inner{display:flex;justify-content:flex-start;align-items:flex-start;padding-left:var(--f7-menu-item-spacing);padding-right:var(--f7-menu-item-spacing)}.menu-inner:after{content:'';width:var(--f7-menu-item-spacing);height:100%;flex-shrink:0}.menu-item{height:var(--f7-menu-item-height);min-width:var(--f7-menu-item-height);flex-shrink:0;background:var(--f7-menu-bg-color);color:var(--f7-menu-text-color);border-radius:var(--f7-menu-item-border-radius);position:relative;box-sizing:border-box;font-size:var(--f7-menu-font-size);font-weight:var(--f7-menu-font-weight);cursor:pointer;margin-left:var(--f7-menu-item-spacing)}.menu-item:first-child{margin-left:0}.menu-item.active-state:not(.menu-item-dropdown-opened){background-color:rgba(0,0,0,.7)}.menu-item.icon-only{padding-left:0;padding-right:0}.menu-item-content{display:flex;justify-content:center;align-items:center;padding:0 var(--f7-menu-item-padding-horizontal);height:100%;box-sizing:border-box;width:100%;overflow:hidden;border-radius:var(--f7-menu-item-border-radius);position:relative}.icon-only .menu-item-content,.menu-item-content.icon-only{padding-left:0;padding-right:0}.menu-item-dropdown .menu-item-content:after{content:'';position:absolute;width:20px;height:2px;left:50%;transform:translateX(-50%);bottom:4px;background:var(--f7-menu-item-dropdown-icon-color);border-radius:4px}.menu-dropdown{opacity:0;visibility:hidden;pointer-events:none;cursor:auto;height:10px;background:var(--f7-menu-bg-color);position:relative}.menu-dropdown-content{position:absolute;top:100%;border-radius:var(--f7-menu-dropdown-border-radius,var(--f7-menu-item-border-radius));padding-top:var(--f7-menu-dropdown-padding-vertical);padding-bottom:var(--f7-menu-dropdown-padding-vertical);box-sizing:border-box;background:var(--f7-menu-bg-color);overflow:auto;-webkit-overflow-scrolling:touch;min-width:calc(100% + 24px)}.menu-dropdown-item,.menu-dropdown-link{display:flex;justify-content:space-between;align-items:center;padding-left:var(--f7-menu-item-padding-horizontal);padding-right:var(--f7-menu-item-padding-horizontal);min-height:var(--f7-menu-dropdown-item-height);line-height:var(--f7-menu-line-height);font-size:var(--f7-menu-font-size);color:var(--f7-menu-text-color);font-weight:var(--f7-menu-font-weight);white-space:nowrap;min-width:100px}.menu-dropdown-item i,.menu-dropdown-item i.f7-icons,.menu-dropdown-item i.icon,.menu-dropdown-item i.material-icons,.menu-dropdown-link i,.menu-dropdown-link i.f7-icons,.menu-dropdown-link i.icon,.menu-dropdown-link i.material-icons{font-size:20px}.menu-dropdown-link.active-state{background:var(--f7-menu-dropdown-pressed-bg-color,var(--f7-theme-color));color:var(--f7-menu-text-color)}.menu-dropdown-divider{height:1px;margin-top:2px;margin-bottom:2px;background:var(--f7-menu-dropdown-divider-color)}.menu-item-dropdown-opened{border-bottom-left-radius:0px;border-bottom-right-radius:0px}.menu-item-dropdown-opened .menu-item-content:after{opacity:0}.menu-item-dropdown-opened .menu-dropdown{opacity:1;visibility:visible;pointer-events:auto}.menu-dropdown-center:after,.menu-dropdown-left:after,.menu-item-dropdown-center .menu-dropdown:after,.menu-item-dropdown-left .menu-dropdown:after{content:'';position:absolute;left:100%;bottom:0;width:var(--f7-menu-item-border-radius);height:var(--f7-menu-item-border-radius);background-image:radial-gradient(ellipse at 100% 0%,transparent 0%,transparent 70%,var(--f7-menu-bg-color) 72%)}.menu-dropdown-center:before,.menu-dropdown-right:before,.menu-item-dropdown-center .menu-dropdown:before,.menu-item-dropdown-right .menu-dropdown:before{content:'';position:absolute;right:100%;bottom:0;width:var(--f7-menu-item-border-radius);height:var(--f7-menu-item-border-radius);background-image:radial-gradient(ellipse at 0% 0%,transparent 0%,transparent 70%,var(--f7-menu-bg-color) 72%)}.menu-dropdown-left .menu-dropdown-content,.menu-item-dropdown-left .menu-dropdown-content{left:0;border-top-left-radius:0px}.menu-dropdown-right .menu-dropdown-content,.menu-item-dropdown-right .menu-dropdown-content{right:0;border-top-right-radius:0px}.menu-dropdown-center .menu-dropdown-content,.menu-item-dropdown-center .menu-dropdown-content{left:50%;min-width:calc(100% + 24px + 24px);transform:translateX(-50%)}:root{--f7-color-picker-popover-width:350px;--f7-color-picker-slider-size:6px;--f7-color-picker-slider-knob-size:16px;--f7-color-picker-bar-size:50px;--f7-color-picker-bar-min-height:260px;--f7-color-picker-value-width:64px;--f7-color-picker-value-height:32px;--f7-color-picker-value-font-size:16px;--f7-color-picker-value-border-radius:4px;--f7-color-picker-hex-value-width:84px;--f7-color-picker-label-font-size:14px;--f7-color-picker-label-width:10px;--f7-color-picker-label-height:14px;--f7-color-picker-sb-spectrum-height:260px;--f7-color-picker-sb-spectrum-handle-size:16px;--f7-color-picker-wheel-width:330px;--f7-color-picker-palette-value-width:36px;--f7-color-picker-palette-value-height:36px;--f7-color-picker-initial-current-color-height:40px;--f7-color-picker-initial-current-color-border-radius:4px;--f7-color-picker-sheet-bg-color:#fff;--f7-color-picker-popup-bg-color:#fff;--f7-color-picker-value-bg-color:rgba(0, 0, 0, 0.05);--f7-color-picker-group-bg-color:rgba(0, 0, 0, 0.05);--f7-color-picker-group-value-bg-color:#fff}:root .theme-dark,:root.theme-dark{--f7-color-picker-sheet-bg-color:#121212;--f7-color-picker-popup-bg-color:#121212;--f7-color-picker-value-bg-color:rgba(255, 255, 255, 0.1);--f7-color-picker-group-bg-color:#000;--f7-color-picker-group-value-bg-color:rgba(255, 255, 255, 0.12)}.color-picker{overflow:hidden;width:100%;display:flex;flex-direction:column}.color-picker-popover .color-picker,.color-picker-popup .color-picker,.color-picker.color-picker-inline{position:relative}.color-picker-sheet-modal{background:var(--f7-color-picker-sheet-bg-color)}.color-picker-sheet-modal:before{z-index:600}.color-picker-sheet-modal .sheet-modal-inner{margin-bottom:var(--f7-safe-area-bottom)}.color-picker-popup .page{background:var(--f7-color-picker-popup-bg-color)}.color-picker-popup .page-content{padding-bottom:var(--f7-safe-area-bottom)}.color-picker-page .color-picker,.color-picker-popover .color-picker,.color-picker-popup .color-picker{height:100%}.color-picker-page .color-picker .toolbar,.color-picker-popover .color-picker .toolbar,.color-picker-popup .color-picker .toolbar{position:absolute}.color-picker-popover{width:var(--f7-color-picker-popover-width);max-width:90vw;max-height:80vh}.color-picker-popover .color-picker{max-height:80vh}.color-picker-popover .toolbar-top{border-top-left-radius:var(--f7-popover-border-radius);border-top-right-radius:var(--f7-popover-border-radius)}.color-picker-popover .color-picker-module-palette{overflow:hidden;flex-shrink:0}.color-picker-popover .color-picker-module-palette:first-child{border-top-left-radius:var(--f7-popover-border-radius);border-top-right-radius:var(--f7-popover-border-radius)}.color-picker-popover .color-picker-module-palette:last-child{border-bottom-left-radius:var(--f7-popover-border-radius);border-bottom-right-radius:var(--f7-popover-border-radius)}.color-picker-popover .color-picker-module-palette:first-child:last-child{border-radius:var(--f7-popover-border-radius)}.color-picker-popover .toolbar~.page-content .color-picker-module-palette:first-child{border-top-left-radius:0;border-top-right-radius:0}.color-picker-page .page-content,.color-picker-popover .page-content,.color-picker-popup .page-content,.color-picker-sheet-modal .page-content{display:flex;justify-content:flex-start;align-items:stretch;flex-direction:column;overflow-x:hidden}.color-picker-module{margin-top:5px}.color-picker-module:last-child{margin-bottom:5px}.color-picker-module-hs-spectrum,.color-picker-module-sb-spectrum{margin-left:10px;margin-right:10px}.color-picker-module-hs-spectrum:first-child,.color-picker-module-sb-spectrum:first-child{margin-top:10px}.color-picker-module-hs-spectrum .color-picker-hs-spectrum,.color-picker-module-hs-spectrum .color-picker-sb-spectrum,.color-picker-module-sb-spectrum .color-picker-hs-spectrum,.color-picker-module-sb-spectrum .color-picker-sb-spectrum{border-radius:4px;height:var(--f7-color-picker-sb-spectrum-height)}.color-picker-sb-spectrum{background-color:#000;background-image:linear-gradient(to bottom,rgba(0,0,0,0) 0%,#000 100%),linear-gradient(to left,rgba(255,255,255,0) 0%,#fff 100%);position:relative}.color-picker-hs-spectrum{position:relative;background-image:linear-gradient(to right,red,#feff00,#0f0,#00feff,#00f,#ff00fe,red)}.color-picker-hs-spectrum:after{content:'';position:absolute;left:0;top:0;width:100%;height:100%;background-image:linear-gradient(to bottom,rgba(255,255,255,0),#fff)}.color-picker-hs-spectrum-handle,.color-picker-sb-spectrum-handle{width:4px;height:4px;position:absolute;left:-2px;top:-2px;z-index:1}.color-picker-hs-spectrum-handle:after,.color-picker-sb-spectrum-handle:after{background-color:inherit;content:'';position:absolute;width:var(--f7-color-picker-sb-spectrum-handle-size);height:var(--f7-color-picker-sb-spectrum-handle-size);border:1px solid #fff;border-radius:50%;box-shadow:0px 0px 2px rgba(0,0,0,.5);box-sizing:border-box;left:50%;top:50%;transform:translate(-50%,-50%);transition:150ms;transition-property:transform;transform-origin:center}.color-picker-hs-spectrum-handle.color-picker-hs-spectrum-handle-pressed:after,.color-picker-hs-spectrum-handle.color-picker-sb-spectrum-handle-pressed:after,.color-picker-sb-spectrum-handle.color-picker-hs-spectrum-handle-pressed:after,.color-picker-sb-spectrum-handle.color-picker-sb-spectrum-handle-pressed:after{transform:scale(1.5) translate(-33.333%,-33.333%)}.color-picker-module-wheel{margin-left:10px;margin-right:10px}.color-picker-wheel{position:relative;width:var(--f7-color-picker-wheel-width);max-width:100%;height:auto;font-size:0;margin-left:auto;margin-right:auto}.color-picker-wheel svg{width:100%;height:auto}.color-picker-wheel .color-picker-wheel-handle{width:calc(100% / 6);height:calc(100% / 6);position:absolute;box-sizing:border-box;border:2px solid #fff;box-shadow:0px 0px 5px rgba(0,0,0,.5);background:red;border-radius:50%;left:0;top:0}.color-picker-wheel .color-picker-sb-spectrum{width:45%;height:45%;left:50%;top:50%;transform:translate3d(-50%,-50%,0);position:absolute}.color-picker-slider-wrap{display:flex;align-items:center;margin-bottom:2px}.color-picker-slider-wrap+.color-picker-slider-wrap{margin-top:5px}.color-picker-hex-wrap{justify-content:space-between;display:flex;align-items:center}.color-picker-hex-label,.color-picker-slider-label{font-size:var(--f7-color-picker-label-font-size);width:var(--f7-color-picker-label-size);flex-shrink:0;margin-right:12px}.color-picker-hex-label{width:auto}.color-picker-bar-value,.color-picker-hex-value,.color-picker-slider-value{width:var(--f7-color-picker-value-width);height:var(--f7-color-picker-value-height);background:var(--f7-color-picker-value-bg-color);border-radius:var(--f7-color-picker-value-border-radius);text-align:center;font-size:var(--f7-color-picker-value-font-size);display:flex;justify-content:center;align-items:center;flex-shrink:0;margin-left:10px}.color-picker-bar-value input,.color-picker-hex-value input,.color-picker-slider-value input{width:100%;height:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;outline:0;background:0 0;color:inherit;font-family:inherit;font-size:inherit;text-align:center;display:block;border-radius:4px}.color-picker-bar-value input::-webkit-inner-spin-button,.color-picker-bar-value input::-webkit-outer-spin-button,.color-picker-hex-value input::-webkit-inner-spin-button,.color-picker-hex-value input::-webkit-outer-spin-button,.color-picker-slider-value input::-webkit-inner-spin-button,.color-picker-slider-value input::-webkit-outer-spin-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;margin:0;display:none}.color-picker-hex-value{width:var(--f7-color-picker-hex-value-width)}.color-picker-hex-value:first-child{margin-left:auto}.color-picker-slider{--f7-range-bar-active-bg-color:transparent;--f7-range-bar-size:var(--f7-color-picker-slider-size);--f7-range-bar-border-radius:var(--f7-color-picker-slider-size);--f7-range-knob-size:var(--f7-color-picker-slider-knob-size);--f7-range-knob-box-shadow:0 1px 2px rgba(0, 0, 0, 0.3)}.color-picker-slider .range-knob{transition-duration:.2s;transition-property:transform}.color-picker-slider .range-knob:after{width:30px;height:30px;margin-left:-16px;margin-top:-16px}.color-picker-slider .range-knob-active-state .range-knob{transform:scale(1.5)}.md .color-picker-slider.range-slider-min:not(.range-slider-dual) .range-knob{background:var(--f7-range-knob-color)!important;border:none}.color-picker-module-rgb-bars{display:flex;justify-content:space-around;justify-content:space-evenly;align-items:stretch;height:100%;min-height:var(--f7-color-picker-bar-min-height);padding-bottom:10px;padding-top:10px;box-sizing:border-box}.color-picker-bar-wrap{display:flex;align-items:center;flex-direction:column-reverse}.color-picker-bar{--f7-range-bar-active-bg-color:transparent;--f7-range-bar-size:var(--f7-color-picker-bar-size);--f7-range-bar-border-radius:2px;--f7-range-knob-size:6px;--f7-range-knob-box-shadow:0 0px 3px rgba(0, 0, 0, 0.3);--f7-range-knob-color:#fff}.color-picker-bar .range-knob{transition-duration:0s;transition-property:transform;border-radius:3px}.color-picker-bar .range-knob-wrap{height:6px;width:calc(var(--f7-color-picker-bar-size) - 4px);margin-left:calc(-.5 * (var(--f7-color-picker-bar-size) - 4px))}.color-picker-bar .range-knob-active-state .range-knob{transform:scale(1)}.md .color-picker-bar.range-slider-min:not(.range-slider-dual) .range-knob{background:var(--f7-range-knob-color)!important;border:none}.color-picker-bar-label{font-size:var(--f7-color-picker-label-size);margin-top:12px;line-height:1;height:var(--f7-color-picker-label-height);flex-shrink:0}.color-picker-bar-value{margin-left:0;margin-bottom:10px}.color-picker-slider-alpha{--f7-range-knob-color:#fff}.color-picker-slider-alpha .range-bar{background-image:linear-gradient(to right,rgba(0,0,0,0),#000),linear-gradient(to right,rgba(255,255,255,.2) 50%,rgba(0,0,0,.2) 50%),linear-gradient(to left,rgba(255,255,255,.2) 50%,rgba(0,0,0,.2) 50%);background-size:100% 100%,6px 3px,6px 3px;background-position:0 0,0px 3px,0 0;background-repeat:repeat-y,repeat-x,repeat-x}.color-picker-slider-hue .range-bar{background-image:linear-gradient(to right,red,#feff00,#0f0,#00feff,#00f,#ff00fe,red)}.color-picker-slider-brightness .range-bar{background-image:linear-gradient(to right,#000,#fff)}.color-picker-module-palette{margin-top:16px}.color-picker-module-palette:first-child{margin-top:0}.color-picker-module-palette:last-child{margin-bottom:0}.color-picker-module-palette:first-child:last-child{margin:0}.color-picker-palette{display:flex;flex-wrap:wrap}.color-picker-palette-row{width:100%;display:flex;flex-wrap:nowrap}.color-picker-palette-row .color-picker-palette-value{width:100%}.color-picker-palette-value{width:var(--f7-color-picker-palette-value-width);height:var(--f7-color-picker-palette-value-height);cursor:pointer}.color-picker-module-current-color,.color-picker-module-initial-current-colors{margin-left:10px;margin-right:10px;border-radius:var(--f7-color-picker-initial-current-color-border-radius);overflow:hidden;flex-shrink:0}.color-picker-current-color,.color-picker-initial-color{height:var(--f7-color-picker-initial-current-color-height)}.color-picker-initial-current-colors{display:flex}.color-picker-initial-current-colors .color-picker-current-color,.color-picker-initial-current-colors .color-picker-initial-color{width:50%}.color-picker-module-alpha-slider,.color-picker-module-brightness-slider,.color-picker-module-hex,.color-picker-module-hsb-sliders,.color-picker-module-hue-slider,.color-picker-module-rgb-sliders{margin-left:10px;margin-right:10px}.color-picker-grouped-modules .color-picker-module-alpha-slider,.color-picker-grouped-modules .color-picker-module-brightness-slider,.color-picker-grouped-modules .color-picker-module-hex,.color-picker-grouped-modules .color-picker-module-hsb-sliders,.color-picker-grouped-modules .color-picker-module-hue-slider,.color-picker-grouped-modules .color-picker-module-rgb-sliders{background:var(--f7-color-picker-group-bg-color);padding:5px;border-radius:4px;margin-top:16px;margin-left:5px;margin-right:5px}.color-picker-grouped-modules .color-picker-module-alpha-slider:last-child,.color-picker-grouped-modules .color-picker-module-brightness-slider:last-child,.color-picker-grouped-modules .color-picker-module-hex:last-child,.color-picker-grouped-modules .color-picker-module-hsb-sliders:last-child,.color-picker-grouped-modules .color-picker-module-hue-slider:last-child,.color-picker-grouped-modules .color-picker-module-rgb-sliders:last-child{margin-bottom:16px}.color-picker-grouped-modules .color-picker-hex-value,.color-picker-grouped-modules .color-picker-slider-value{background:var(--f7-color-picker-group-value-bg-color)}.color-picker-grouped-modules .color-picker-hex-label,.color-picker-grouped-modules .color-picker-slider-label{margin-left:5px}.color-picker-grouped-modules .color-picker-module-alpha-slider .range-slider:first-child,.color-picker-grouped-modules .color-picker-module-brightness-slider .range-slider:first-child,.color-picker-grouped-modules .color-picker-module-hsb-sliders .range-slider:first-child,.color-picker-grouped-modules .color-picker-module-hue-slider .range-slider:first-child,.color-picker-grouped-modules .color-picker-module-rgb-sliders .range-slider:first-child{margin-left:5px}.color-picker-grouped-modules .color-picker-module-alpha-slider .range-slider:last-child,.color-picker-grouped-modules .color-picker-module-brightness-slider .range-slider:last-child,.color-picker-grouped-modules .color-picker-module-hsb-sliders .range-slider:last-child,.color-picker-grouped-modules .color-picker-module-hue-slider .range-slider:last-child,.color-picker-grouped-modules .color-picker-module-rgb-sliders .range-slider:last-child{margin-right:5px}:root{--f7-treeview-item-padding-left:16px;--f7-treeview-item-padding-right:16px;--f7-treeview-toggle-size:24px;--f7-treeview-children-offset:29px;--f7-treeview-label-font-weight:400;--f7-treeview-label-text-color:inherit;--f7-treeview-toggle-color:rgba(0, 0, 0, 0.5);--f7-treeview-toggle-hover-bg-color:rgba(0, 0, 0, 0.1);--f7-treeview-toggle-pressed-bg-color:rgba(0, 0, 0, 0.15);--f7-treeview-icon-color:rgba(0, 0, 0, 0.5);--f7-treeview-selectable-hover-bg-color:rgba(0, 0, 0, 0.1);--f7-treeview-link-hover-bg-color:rgba(0, 0, 0, 0.1);--f7-treeview-link-pressed-bg-color:rgba(0, 0, 0, 0.15)}:root .theme-dark,:root.theme-dark{--f7-treeview-toggle-color:rgba(255, 255, 255, 0.5);--f7-treeview-toggle-hover-bg-color:rgba(255, 255, 255, 0.03);--f7-treeview-toggle-pressed-bg-color:rgba(255, 255, 255, 0.1);--f7-treeview-icon-color:rgba(255, 255, 255, 0.75);--f7-treeview-selectable-hover-bg-color:rgba(255, 255, 255, 0.03);--f7-treeview-link-hover-bg-color:rgba(255, 255, 255, 0.03);--f7-treeview-link-pressed-bg-color:rgba(255, 255, 255, 0.11)}.ios{--f7-treeview-item-height:34px;--f7-treeview-label-font-size:17px;--f7-treeview-icon-size:24px}.md{--f7-treeview-item-height:34px;--f7-treeview-label-font-size:16px;--f7-treeview-icon-size:24px}.aurora{--f7-treeview-item-height:28px;--f7-treeview-label-font-size:14px;--f7-treeview-icon-size:20px}.treeview-item-root{padding-left:var(--f7-treeview-item-padding-left);padding-right:var(--f7-treeview-item-padding-right);min-height:var(--f7-treeview-item-height);display:flex;align-items:center;justify-content:flex-start}.treeview-item-content{display:flex;justify-content:flex-start;align-items:center}.treeview-item-content>.f7-icons,.treeview-item-content>.material-icons,.treeview-item-content>i{font-size:var(--f7-treeview-icon-size);color:var(--f7-treeview-icon-color)}.treeview-item-content:first-child{margin-left:calc(var(--f7-treeview-toggle-size) + 5px)}.treeview-item-content>*+*{margin-left:5px}.treeview-item-label{font-size:var(--f7-treeview-label-font-size);font-weight:var(--f7-treeview-label-font-weight);color:var(--f7-treeview-label-text-color)}.treeview-toggle{width:var(--f7-treeview-toggle-size);height:var(--f7-treeview-toggle-size);cursor:pointer;border-radius:4px;background-color:rgba(0,0,0,0);transition-duration:.2s;position:relative;margin-right:5px}.treeview-toggle.active-state{background-color:var(--f7-treeview-toggle-pressed-bg-color)}.treeview-toggle:after{transition-duration:.2s;content:'';position:absolute;left:50%;top:50%;width:0;height:0;border-top:5px solid transparent;border-bottom:5px solid transparent;transform:translate(-50%,-50%);border-left:6px solid var(--f7-treeview-toggle-color)}.treeview-toggle-hidden{opacity:0;pointer-events:none;visibility:hidden}.treeview-preloader{--f7-preloader-size:var(--f7-treeview-toggle-size);margin-right:calc(-1 * var(--f7-treeview-toggle-size))}.treeview-item-children{display:none}.treeview-item-opened>.treeview-item-children{display:block}.treeview-item-opened>.treeview-item-root .treeview-toggle:after{transform:translate(-50%,-50%) rotate(90deg)}a.treeview-item-root{color:var(--f7-treeview-label-text-color)}.treeview-item-selectable.treeview-item-root,.treeview-item-selectable>.treeview-item-root{cursor:pointer;transition-duration:150ms}a.treeview-item-root{transition-duration:150ms}a.treeview-item-root.active-state{background:var(--f7-treeview-link-pressed-bg-color)}.treeview-item-toggle.treeview-item-root,.treeview-item-toggle>.treeview-item-root{cursor:pointer}.treeview-item-selected.treeview-item-root,.treeview-item-selected>.treeview-item-root{background:var(--f7-treeview-selectable-selected-bg-color,rgba(var(--f7-theme-color-rgb),.2))}.treeview-item .treeview-item .treeview-item-root{padding-left:calc(var(--f7-treeview-item-padding-left) + var(--f7-treeview-children-offset) * 1)}.treeview-item .treeview-item .treeview-item .treeview-item-root{padding-left:calc(var(--f7-treeview-item-padding-left) + var(--f7-treeview-children-offset) * 2)}.treeview-item .treeview-item .treeview-item .treeview-item .treeview-item-root{padding-left:calc(var(--f7-treeview-item-padding-left) + var(--f7-treeview-children-offset) * 3)}.treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item-root{padding-left:calc(var(--f7-treeview-item-padding-left) + var(--f7-treeview-children-offset) * 4)}.treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item-root{padding-left:calc(var(--f7-treeview-item-padding-left) + var(--f7-treeview-children-offset) * 5)}.treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item-root{padding-left:calc(var(--f7-treeview-item-padding-left) + var(--f7-treeview-children-offset) * 6)}.treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item-root{padding-left:calc(var(--f7-treeview-item-padding-left) + var(--f7-treeview-children-offset) * 7)}.treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item-root{padding-left:calc(var(--f7-treeview-item-padding-left) + var(--f7-treeview-children-offset) * 8)}.treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item-root{padding-left:calc(var(--f7-treeview-item-padding-left) + var(--f7-treeview-children-offset) * 9)}.treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item-root{padding-left:calc(var(--f7-treeview-item-padding-left) + var(--f7-treeview-children-offset) * 10)}.aurora .treeview-toggle:hover{background-color:var(--f7-treeview-toggle-hover-bg-color)}.aurora .treeview-toggle.active-state{background-color:var(--f7-treeview-toggle-pressed-bg-color)}.aurora .treeview-item-selectable.treeview-item-root:hover,.aurora .treeview-item-selectable>.treeview-item-root:hover{background:var(--f7-treeview-selectable-hover-bg-color)}.aurora a.treeview-item-root:hover{background:var(--f7-treeview-link-hover-bg-color)}.aurora a.treeview-item-root.active-state{background:var(--f7-treeview-link-pressed-bg-color)}.aurora .treeview-item-selected.treeview-item-root:hover,.aurora .treeview-item-selected>.treeview-item-root:hover{background:var(--f7-treeview-selectable-selected-bg-color,rgba(var(--f7-theme-color-rgb),.2))}:root{--f7-text-editor-font-size:inherit;--f7-text-editor-font-weight:inherit;--f7-text-editor-border-width:1px;--f7-text-editor-height:250px;--f7-text-editor-margin:16px;--f7-text-editor-padding:8px;--f7-text-editor-button-bg-color:transparent;--f7-text-editor-button-size:28px;--f7-text-editor-button-icon-size:20px;--f7-text-editor-button-margin:2px;--f7-text-editor-button-border-radius:2px;--f7-text-editor-text-color:#000;--f7-text-editor-bg-color:#fff;--f7-text-editor-border-color:rgba(0, 0, 0, 0.1);--f7-text-editor-toolbar-bg-color:#fff;--f7-text-editor-button-text-color:#333;--f7-text-editor-button-divider-color:rgba(0, 0, 0, 0.15);--f7-text-editor-placeholder-color:rgba(0, 0, 0, 0.35)}:root .theme-dark,:root.theme-dark{--f7-text-editor-bg-color:#121212;--f7-text-editor-border-color:rgba(255, 255, 255, 0.1);--f7-text-editor-toolbar-bg-color:#202020;--f7-text-editor-text-color:#fff;--f7-text-editor-placeholder-color:rgba(255, 255, 255, 0.35);--f7-text-editor-button-text-color:#fff;--f7-text-editor-button-divider-color:rgba(255, 255, 255, 0.15)}.ios{--f7-text-editor-toolbar-padding:6px;--f7-text-editor-toolbar-border-color:rgba(0, 0, 0, 0.25)}.ios .theme-dark,.ios.theme-dark{--f7-text-editor-toolbar-bg-color:#121212;--f7-text-editor-toolbar-border-color:rgba(255, 255, 255, 0.1)}.md{--f7-text-editor-toolbar-padding:8px;--f7-text-editor-toolbar-box-shadow:0px 2px 3px -1px rgba(0, 0, 0, 0.25)}.aurora{--f7-text-editor-toolbar-padding:3px;--f7-text-editor-toolbar-border-color:rgba(0, 0, 0, 0.25)}.aurora .theme-dark,.aurora.theme-dark{--f7-text-editor-toolbar-border-color:rgba(255, 255, 255, 0.1)}.text-editor{margin:var(--f7-text-editor-margin);background-color:var(--f7-text-editor-bg-color);display:block;position:relative;border:var(--f7-text-editor-border-width) solid var(--f7-text-editor-border-color);display:flex;flex-direction:column;align-items:stretch;height:var(--f7-text-editor-height);box-sizing:border-box}.text-editor.text-editor-resizable{height:auto}.text-editor-toolbar{display:flex;flex-wrap:wrap;background:var(--f7-text-editor-toolbar-bg-color);z-index:100;position:relative;position:-webkit-sticky;position:sticky;left:0;top:0;padding:var(--f7-text-editor-toolbar-padding);flex-shrink:0;box-shadow:var(--f7-text-editor-toolbar-box-shadow);box-sizing:border-box}.text-editor-toolbar:after{content:'';position:absolute;background-color:var(--f7-text-editor-toolbar-border-color);display:block;z-index:15;top:auto;right:auto;bottom:0;left:0;height:1px;width:100%;transform-origin:50% 100%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}button.text-editor-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;padding:0;margin:0;outline:0;font-family:inherit;background:0 0;cursor:pointer;box-shadow:none;border-radius:var(--f7-text-editor-button-border-radius);position:relative;z-index:1;display:flex;width:auto;overflow:hidden;width:var(--f7-text-editor-button-size);height:var(--f7-text-editor-button-size);align-items:center;justify-content:center;margin:var(--f7-text-editor-button-margin);box-sizing:border-box;color:var(--f7-text-editor-button-text-color);background-color:var(--f7-text-editor-button-bg-color);flex-shrink:0}button.text-editor-button i{font-size:var(--f7-text-editor-button-icon-size);font-style:normal}button.text-editor-button i sub,button.text-editor-button i sup{font-size:60%}.text-editor-button-divider{width:1px;background:var(--f7-text-editor-button-divider-color);margin:0 2px;flex-shrink:0}.text-editor-content{-webkit-user-modify:read-write;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;outline:0;height:100%;-webkit-user-select:text;-moz-user-select:text;user-select:text;padding:var(--f7-text-editor-padding);overflow:auto;flex-shrink:10;box-sizing:border-box;color:var(--f7-text-editor-text-color);font-size:var(--f7-text-editor-font-size);font-weight:var(--f7-text-editor-font-weight)}.text-editor-content .text-editor-placeholder{pointer-events:none;color:var(--f7-text-editor-placeholder-color)}.text-editor-content img{max-width:100%}.text-editor-content a{pointer-events:none}.text-editor-popover{z-index:12500;width:auto;max-width:80vw}.text-editor-popover .popover-inner{display:flex;flex-wrap:wrap;padding:3px}.text-editor-keyboard-toolbar{position:absolute;z-index:6000;--f7-safe-area-bottom:0px}.text-editor-keyboard-toolbar .toolbar-inner{justify-content:flex-start!important;overflow:auto;-webkit-overflow-scrolling:touch}.text-editor-keyboard-toolbar .toolbar-inner::-webkit-scrollbar{display:none}.text-editor-keyboard-toolbar .toolbar-inner .text-editor-button-divider{height:100%}.item-input .text-editor{border:none;margin:0;background-color:var(--f7-input-bg-color,transparent)}.item-input .text-editor-content{padding-top:var(--f7-textarea-padding-vertical);padding-bottom:var(--f7-textarea-padding-vertical);padding-left:var(--f7-input-padding-left);padding-right:var(--f7-input-padding-right);color:var(--f7-input-text-color);font-size:var(--f7-input-font-size)}.item-input .text-editor-toolbar{box-shadow:none}.item-input .text-editor-toolbar:after{display:none!important}.item-input-outline .text-editor-content{border-radius:var(--f7-input-outline-border-radius);padding-left:var(--f7-input-outline-padding-horizontal);padding-right:var(--f7-input-outline-padding-horizontal)}.ios button.text-editor-button{transition:opacity .3s}.ios button.text-editor-button.active-state{opacity:.3;transition-duration:0s}.md button.text-editor-button:before{content:'';width:152%;height:152%;position:absolute;left:-26%;top:-26%;background-image:radial-gradient(circle at center,var(--f7-link-highlight-color) 66%,rgba(255,255,255,0) 66%);background-repeat:no-repeat;background-position:center;background-size:100% 100%;opacity:0;pointer-events:none;transition-duration:.6s}.md button.text-editor-button.active-state:before{opacity:1;transition-duration:150ms}.md .text-editor-keyboard-toolbar .toolbar-inner{padding-left:8px;padding-right:8px}.aurora button.text-editor-button{transition:opacity .3s}.aurora button.text-editor-button.active-state{opacity:.3;transition-duration:0s}:root{--f7-elevation-0:0px 0px 0px 0px rgba(0, 0, 0, 0);--f7-elevation-1:0px 2px 1px -1px rgba(0, 0, 0, 0.2),0px 1px 1px 0px rgba(0, 0, 0, 0.14),0px 1px 3px 0px rgba(0, 0, 0, 0.12);--f7-elevation-2:0px 3px 1px -2px rgba(0, 0, 0, 0.2),0px 2px 2px 0px rgba(0, 0, 0, 0.14),0px 1px 5px 0px rgba(0, 0, 0, 0.12);--f7-elevation-3:0px 3px 3px -2px rgba(0, 0, 0, 0.2),0px 3px 4px 0px rgba(0, 0, 0, 0.14),0px 1px 8px 0px rgba(0, 0, 0, 0.12);--f7-elevation-4:0px 2px 4px -1px rgba(0, 0, 0, 0.2),0px 4px 5px 0px rgba(0, 0, 0, 0.14),0px 1px 10px 0px rgba(0, 0, 0, 0.12);--f7-elevation-5:0px 3px 5px -1px rgba(0, 0, 0, 0.2),0px 5px 8px 0px rgba(0, 0, 0, 0.14),0px 1px 14px 0px rgba(0, 0, 0, 0.12);--f7-elevation-6:0px 3px 5px -1px rgba(0, 0, 0, 0.2),0px 6px 10px 0px rgba(0, 0, 0, 0.14),0px 1px 18px 0px rgba(0, 0, 0, 0.12);--f7-elevation-7:0px 4px 5px -2px rgba(0, 0, 0, 0.2),0px 7px 10px 1px rgba(0, 0, 0, 0.14),0px 2px 16px 1px rgba(0, 0, 0, 0.12);--f7-elevation-8:0px 5px 5px -3px rgba(0, 0, 0, 0.2),0px 8px 10px 1px rgba(0, 0, 0, 0.14),0px 3px 14px 2px rgba(0, 0, 0, 0.12);--f7-elevation-9:0px 5px 6px -3px rgba(0, 0, 0, 0.2),0px 9px 12px 1px rgba(0, 0, 0, 0.14),0px 3px 16px 2px rgba(0, 0, 0, 0.12);--f7-elevation-10:0px 6px 6px -3px rgba(0, 0, 0, 0.2),0px 10px 14px 1px rgba(0, 0, 0, 0.14),0px 4px 18px 3px rgba(0, 0, 0, 0.12);--f7-elevation-11:0px 6px 7px -4px rgba(0, 0, 0, 0.2),0px 11px 15px 1px rgba(0, 0, 0, 0.14),0px 4px 20px 3px rgba(0, 0, 0, 0.12);--f7-elevation-12:0px 7px 8px -4px rgba(0, 0, 0, 0.2),0px 12px 17px 2px rgba(0, 0, 0, 0.14),0px 5px 22px 4px rgba(0, 0, 0, 0.12);--f7-elevation-13:0px 7px 8px -4px rgba(0, 0, 0, 0.2),0px 13px 19px 2px rgba(0, 0, 0, 0.14),0px 5px 24px 4px rgba(0, 0, 0, 0.12);--f7-elevation-14:0px 7px 9px -4px rgba(0, 0, 0, 0.2),0px 14px 21px 2px rgba(0, 0, 0, 0.14),0px 5px 26px 4px rgba(0, 0, 0, 0.12);--f7-elevation-15:0px 8px 9px -5px rgba(0, 0, 0, 0.2),0px 15px 22px 2px rgba(0, 0, 0, 0.14),0px 6px 28px 5px rgba(0, 0, 0, 0.12);--f7-elevation-16:0px 8px 10px -5px rgba(0, 0, 0, 0.2),0px 16px 24px 2px rgba(0, 0, 0, 0.14),0px 6px 30px 5px rgba(0, 0, 0, 0.12);--f7-elevation-17:0px 8px 11px -5px rgba(0, 0, 0, 0.2),0px 17px 26px 2px rgba(0, 0, 0, 0.14),0px 6px 32px 5px rgba(0, 0, 0, 0.12);--f7-elevation-18:0px 9px 11px -5px rgba(0, 0, 0, 0.2),0px 18px 28px 2px rgba(0, 0, 0, 0.14),0px 7px 34px 6px rgba(0, 0, 0, 0.12);--f7-elevation-19:0px 9px 12px -6px rgba(0, 0, 0, 0.2),0px 19px 29px 2px rgba(0, 0, 0, 0.14),0px 7px 36px 6px rgba(0, 0, 0, 0.12);--f7-elevation-20:0px 10px 13px -6px rgba(0, 0, 0, 0.2),0px 20px 31px 3px rgba(0, 0, 0, 0.14),0px 8px 38px 7px rgba(0, 0, 0, 0.12);--f7-elevation-21:0px 10px 13px -6px rgba(0, 0, 0, 0.2),0px 21px 33px 3px rgba(0, 0, 0, 0.14),0px 8px 40px 7px rgba(0, 0, 0, 0.12);--f7-elevation-22:0px 10px 14px -6px rgba(0, 0, 0, 0.2),0px 22px 35px 3px rgba(0, 0, 0, 0.14),0px 8px 42px 7px rgba(0, 0, 0, 0.12);--f7-elevation-23:0px 11px 14px -7px rgba(0, 0, 0, 0.2),0px 23px 36px 3px rgba(0, 0, 0, 0.14),0px 9px 44px 8px rgba(0, 0, 0, 0.12);--f7-elevation-24:0px 11px 15px -7px rgba(0, 0, 0, 0.2),0px 24px 38px 3px rgba(0, 0, 0, 0.14),0px 9px 46px 8px rgba(0, 0, 0, 0.12)}.elevation-0{box-shadow:var(--f7-elevation-0)!important}.elevation-1{box-shadow:var(--f7-elevation-1)!important}.elevation-2{box-shadow:var(--f7-elevation-2)!important}.elevation-3{box-shadow:var(--f7-elevation-3)!important}.elevation-4{box-shadow:var(--f7-elevation-4)!important}.elevation-5{box-shadow:var(--f7-elevation-5)!important}.elevation-6{box-shadow:var(--f7-elevation-6)!important}.elevation-7{box-shadow:var(--f7-elevation-7)!important}.elevation-8{box-shadow:var(--f7-elevation-8)!important}.elevation-9{box-shadow:var(--f7-elevation-9)!important}.elevation-10{box-shadow:var(--f7-elevation-10)!important}.elevation-11{box-shadow:var(--f7-elevation-11)!important}.elevation-12{box-shadow:var(--f7-elevation-12)!important}.elevation-13{box-shadow:var(--f7-elevation-13)!important}.elevation-14{box-shadow:var(--f7-elevation-14)!important}.elevation-15{box-shadow:var(--f7-elevation-15)!important}.elevation-16{box-shadow:var(--f7-elevation-16)!important}.elevation-17{box-shadow:var(--f7-elevation-17)!important}.elevation-18{box-shadow:var(--f7-elevation-18)!important}.elevation-19{box-shadow:var(--f7-elevation-19)!important}.elevation-20{box-shadow:var(--f7-elevation-20)!important}.elevation-21{box-shadow:var(--f7-elevation-21)!important}.elevation-22{box-shadow:var(--f7-elevation-22)!important}.elevation-23{box-shadow:var(--f7-elevation-23)!important}.elevation-24{box-shadow:var(--f7-elevation-24)!important}.device-desktop .elevation-hover-0:hover{box-shadow:var(--f7-elevation-0)!important}.device-desktop .elevation-hover-1:hover{box-shadow:var(--f7-elevation-1)!important}.device-desktop .elevation-hover-2:hover{box-shadow:var(--f7-elevation-2)!important}.device-desktop .elevation-hover-3:hover{box-shadow:var(--f7-elevation-3)!important}.device-desktop .elevation-hover-4:hover{box-shadow:var(--f7-elevation-4)!important}.device-desktop .elevation-hover-5:hover{box-shadow:var(--f7-elevation-5)!important}.device-desktop .elevation-hover-6:hover{box-shadow:var(--f7-elevation-6)!important}.device-desktop .elevation-hover-7:hover{box-shadow:var(--f7-elevation-7)!important}.device-desktop .elevation-hover-8:hover{box-shadow:var(--f7-elevation-8)!important}.device-desktop .elevation-hover-9:hover{box-shadow:var(--f7-elevation-9)!important}.device-desktop .elevation-hover-10:hover{box-shadow:var(--f7-elevation-10)!important}.device-desktop .elevation-hover-11:hover{box-shadow:var(--f7-elevation-11)!important}.device-desktop .elevation-hover-12:hover{box-shadow:var(--f7-elevation-12)!important}.device-desktop .elevation-hover-13:hover{box-shadow:var(--f7-elevation-13)!important}.device-desktop .elevation-hover-14:hover{box-shadow:var(--f7-elevation-14)!important}.device-desktop .elevation-hover-15:hover{box-shadow:var(--f7-elevation-15)!important}.device-desktop .elevation-hover-16:hover{box-shadow:var(--f7-elevation-16)!important}.device-desktop .elevation-hover-17:hover{box-shadow:var(--f7-elevation-17)!important}.device-desktop .elevation-hover-18:hover{box-shadow:var(--f7-elevation-18)!important}.device-desktop .elevation-hover-19:hover{box-shadow:var(--f7-elevation-19)!important}.device-desktop .elevation-hover-20:hover{box-shadow:var(--f7-elevation-20)!important}.device-desktop .elevation-hover-21:hover{box-shadow:var(--f7-elevation-21)!important}.device-desktop .elevation-hover-22:hover{box-shadow:var(--f7-elevation-22)!important}.device-desktop .elevation-hover-23:hover{box-shadow:var(--f7-elevation-23)!important}.device-desktop .elevation-hover-24:hover{box-shadow:var(--f7-elevation-24)!important}.active-state.elevation-pressed-0,.device-desktop .active-state.elevation-pressed-0{box-shadow:var(--f7-elevation-0)!important}.active-state.elevation-pressed-1,.device-desktop .active-state.elevation-pressed-1{box-shadow:var(--f7-elevation-1)!important}.active-state.elevation-pressed-2,.device-desktop .active-state.elevation-pressed-2{box-shadow:var(--f7-elevation-2)!important}.active-state.elevation-pressed-3,.device-desktop .active-state.elevation-pressed-3{box-shadow:var(--f7-elevation-3)!important}.active-state.elevation-pressed-4,.device-desktop .active-state.elevation-pressed-4{box-shadow:var(--f7-elevation-4)!important}.active-state.elevation-pressed-5,.device-desktop .active-state.elevation-pressed-5{box-shadow:var(--f7-elevation-5)!important}.active-state.elevation-pressed-6,.device-desktop .active-state.elevation-pressed-6{box-shadow:var(--f7-elevation-6)!important}.active-state.elevation-pressed-7,.device-desktop .active-state.elevation-pressed-7{box-shadow:var(--f7-elevation-7)!important}.active-state.elevation-pressed-8,.device-desktop .active-state.elevation-pressed-8{box-shadow:var(--f7-elevation-8)!important}.active-state.elevation-pressed-9,.device-desktop .active-state.elevation-pressed-9{box-shadow:var(--f7-elevation-9)!important}.active-state.elevation-pressed-10,.device-desktop .active-state.elevation-pressed-10{box-shadow:var(--f7-elevation-10)!important}.active-state.elevation-pressed-11,.device-desktop .active-state.elevation-pressed-11{box-shadow:var(--f7-elevation-11)!important}.active-state.elevation-pressed-12,.device-desktop .active-state.elevation-pressed-12{box-shadow:var(--f7-elevation-12)!important}.active-state.elevation-pressed-13,.device-desktop .active-state.elevation-pressed-13{box-shadow:var(--f7-elevation-13)!important}.active-state.elevation-pressed-14,.device-desktop .active-state.elevation-pressed-14{box-shadow:var(--f7-elevation-14)!important}.active-state.elevation-pressed-15,.device-desktop .active-state.elevation-pressed-15{box-shadow:var(--f7-elevation-15)!important}.active-state.elevation-pressed-16,.device-desktop .active-state.elevation-pressed-16{box-shadow:var(--f7-elevation-16)!important}.active-state.elevation-pressed-17,.device-desktop .active-state.elevation-pressed-17{box-shadow:var(--f7-elevation-17)!important}.active-state.elevation-pressed-18,.device-desktop .active-state.elevation-pressed-18{box-shadow:var(--f7-elevation-18)!important}.active-state.elevation-pressed-19,.device-desktop .active-state.elevation-pressed-19{box-shadow:var(--f7-elevation-19)!important}.active-state.elevation-pressed-20,.device-desktop .active-state.elevation-pressed-20{box-shadow:var(--f7-elevation-20)!important}.active-state.elevation-pressed-21,.device-desktop .active-state.elevation-pressed-21{box-shadow:var(--f7-elevation-21)!important}.active-state.elevation-pressed-22,.device-desktop .active-state.elevation-pressed-22{box-shadow:var(--f7-elevation-22)!important}.active-state.elevation-pressed-23,.device-desktop .active-state.elevation-pressed-23{box-shadow:var(--f7-elevation-23)!important}.active-state.elevation-pressed-24,.device-desktop .active-state.elevation-pressed-24{box-shadow:var(--f7-elevation-24)!important}.elevation-transition-100{transition-duration:.1s;transition-property:box-shadow}.elevation-transition,.elevation-transition-200{transition-duration:.2s;transition-property:box-shadow}.elevation-transition-300{transition-duration:.3s;transition-property:box-shadow}.elevation-transition-400{transition-duration:.4s;transition-property:box-shadow}.elevation-transition-500{transition-duration:.5s;transition-property:box-shadow}:root{--f7-typography-padding:16px;--f7-typography-margin:16px}.display-flex{display:flex!important}.display-block{display:block!important}.display-inline-flex{display:inline-flex!important}.display-inline-block{display:inline-block!important}.display-inline{display:inline!important}.display-none{display:none!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.flex-shrink-2{flex-shrink:2!important}.flex-shrink-3{flex-shrink:3!important}.flex-shrink-4{flex-shrink:4!important}.flex-shrink-5{flex-shrink:5!important}.flex-shrink-6{flex-shrink:6!important}.flex-shrink-7{flex-shrink:7!important}.flex-shrink-8{flex-shrink:8!important}.flex-shrink-9{flex-shrink:9!important}.flex-shrink-10{flex-shrink:10!important}.flex-direction-row{flex-direction:row!important}.flex-direction-row-reverse{flex-direction:row-reverse!important}.flex-direction-column{flex-direction:column!important}.flex-direction-column-reverse{flex-direction:column-reverse!important}.justify-content-flex-start{justify-content:flex-start!important}.justify-content-center{justify-content:center!important}.justify-content-flex-end{justify-content:flex-end!important}.justify-content-space-between{justify-content:space-between!important}.justify-content-space-around{justify-content:space-around!important}.justify-content-space-evenly{justify-content:space-evenly!important}.justify-content-stretch{justify-content:stretch!important}.justify-content-start{justify-content:start!important}.justify-content-end{justify-content:end!important}.justify-content-left{justify-content:left!important}.justify-content-right{justify-content:right!important}.align-content-flex-start{align-content:flex-start!important}.align-content-flex-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-space-between{align-content:space-between!important}.align-content-space-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-items-baseline{align-items:baseline!important}.align-items-flex-start{align-items:flex-start!important}.align-items-flex-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-stretch{align-items:stretch!important}.align-self-flex-start{align-self:flex-start!important}.align-self-flex-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-stretch{align-self:stretch!important}.text-align-left{text-align:left!important}.text-align-center{text-align:center!important}.text-align-right{text-align:right!important}.text-align-justify{text-align:justify!important}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}.vertical-align-bottom{vertical-align:bottom!important}.vertical-align-middle{vertical-align:middle!important}.vertical-align-top{vertical-align:top!important}.no-padding{padding:0!important}.no-padding-left{padding-left:0!important}.no-padding-right{padding-right:0!important}.no-padding-horizontal{padding-left:0!important;padding-right:0!important}.no-padding-top{padding-top:0!important}.no-padding-bottom{padding-bottom:0!important}.no-padding-vertical{padding-top:0!important;padding-bottom:0!important}.no-margin{margin:0!important}.no-margin-left{margin-left:0!important}.no-margin-right{margin-right:0!important}.no-margin-horizontal{margin-left:0!important;margin-right:0!important}.no-margin-top{margin-top:0!important}.no-margin-bottom{margin-bottom:0!important}.no-margin-vertical{margin-top:0!important;margin-bottom:0!important}.width-auto{width:auto!important}.width-100{width:100%!important}.padding{padding:var(--f7-typography-padding)!important}.padding-half{padding:calc(var(--f7-typography-padding)/ 2)!important}.padding-top{padding-top:var(--f7-typography-padding)!important}.padding-top-half{padding-top:calc(var(--f7-typography-padding)/ 2)!important}.padding-bottom{padding-bottom:var(--f7-typography-padding)!important}.padding-bottom-half{padding-bottom:calc(var(--f7-typography-padding)/ 2)!important}.padding-left{padding-left:var(--f7-typography-padding)!important}.padding-left-half{padding-left:calc(var(--f7-typography-padding)/ 2)!important}.padding-right{padding-right:var(--f7-typography-padding)!important}.padding-right-half{padding-right:calc(var(--f7-typography-padding)/ 2)!important}.padding-vertical{padding-top:var(--f7-typography-padding)!important;padding-bottom:var(--f7-typography-padding)!important}.padding-vertical-half{padding-top:calc(var(--f7-typography-padding)/ 2)!important;padding-bottom:calc(var(--f7-typography-padding)/ 2)!important}.padding-horizontal{padding-left:var(--f7-typography-padding)!important;padding-right:var(--f7-typography-padding)!important}.padding-horizontal-half{padding-left:calc(var(--f7-typography-padding)/ 2)!important;padding-right:calc(var(--f7-typography-padding)/ 2)!important}.margin{margin:var(--f7-typography-margin)!important}.margin-half{margin:calc(var(--f7-typography-margin)/ 2)!important}.margin-top{margin-top:var(--f7-typography-margin)!important}.margin-top-half{margin-top:calc(var(--f7-typography-margin)/ 2)!important}.margin-bottom{margin-bottom:var(--f7-typography-margin)!important}.margin-bottom-half{margin-bottom:calc(var(--f7-typography-margin)/ 2)!important}.margin-left{margin-left:var(--f7-typography-margin)!important}.margin-left-half{margin-left:calc(var(--f7-typography-margin)/ 2)!important}.margin-right{margin-right:var(--f7-typography-margin)!important}.margin-right-half{margin-right:calc(var(--f7-typography-margin)/ 2)!important}.margin-vertical{margin-top:var(--f7-typography-margin)!important;margin-bottom:var(--f7-typography-margin)!important}.margin-vertical-half{margin-top:calc(var(--f7-typography-margin)/ 2)!important;margin-bottom:calc(var(--f7-typography-margin)/ 2)!important}.margin-horizontal{margin-left:var(--f7-typography-margin)!important;margin-right:var(--f7-typography-margin)!important}.margin-horizontal-half{margin-left:calc(var(--f7-typography-margin)/ 2)!important;margin-right:calc(var(--f7-typography-margin)/ 2)!important}[class*=text-color-]{color:var(--f7-theme-color-text-color)!important}[class*=bg-color-]{background-color:var(--f7-theme-color-bg-color)!important}[class*=border-color-]{border-color:var(--f7-theme-color-border-color)!important}iframe#viAd{z-index:12900!important;background:#000!important}.vi-overlay{background:rgba(0,0,0,.85);z-index:13100;position:absolute;left:0%;top:0%;width:100%;height:100%;border-radius:3px;display:flex;justify-content:center;flex-direction:column;align-items:center;align-content:center;text-align:center;-webkit-user-select:none;-moz-user-select:none;user-select:none}@supports ((-webkit-backdrop-filter:blur(10px)) or (backdrop-filter:blur(10px))){.vi-overlay{background:rgba(0,0,0,.65);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}}.vi-overlay .vi-overlay-text{text-align:center;color:#fff;max-width:80%}.vi-overlay .vi-overlay-text+.vi-overlay-play-button{margin-top:15px}.vi-overlay .vi-overlay-play-button{width:44px;height:44px;border-radius:50%;border:2px solid #fff;position:relative}.vi-overlay .vi-overlay-play-button.active-state{opacity:.55}.vi-overlay .vi-overlay-play-button:before{content:'';width:0;height:0;border-top:8px solid transparent;border-bottom:8px solid transparent;border-left:14px solid #fff;position:absolute;left:50%;top:50%;margin-left:2px;transform:translate(-50%,-50%)} \ No newline at end of file diff --git a/public/Framework7/5/css/framework7.bundle.rtl.css b/public/Framework7/5/css/framework7.bundle.rtl.css new file mode 100644 index 0000000..edb5621 --- /dev/null +++ b/public/Framework7/5/css/framework7.bundle.rtl.css @@ -0,0 +1,21821 @@ +/** + * Framework7 5.7.14 + * Full featured mobile HTML framework for building iOS & Android apps + * https://framework7.io/ + * + * Copyright 2014-2020 Vladimir Kharlampidi + * + * Released under the MIT License + * + * Released on: November 9, 2020 + */ + +/*==================== + Core + ==================== */ +:root { + --f7-theme-color: #007aff; + --f7-theme-color-rgb: 0, 122, 255; + --f7-theme-color-shade: #0066d6; + --f7-theme-color-tint: #298fff; + --f7-safe-area-left: 0px; + --f7-safe-area-right: 0px; + --f7-safe-area-top: 0px; + --f7-safe-area-bottom: 0px; + --f7-safe-area-outer-left: 0px; + --f7-safe-area-outer-right: 0px; + --f7-device-pixel-ratio: 1; +} +@supports (left: env(safe-area-inset-left)) { + :root { + --f7-safe-area-top: env(safe-area-inset-top); + --f7-safe-area-bottom: env(safe-area-inset-bottom); + } + :root .ios-left-edge, + :root .ios-edges, + :root .safe-area-left, + :root .safe-areas, + :root .popup, + :root .sheet-modal, + :root .panel-left { + --f7-safe-area-left: env(safe-area-inset-left); + --f7-safe-area-outer-left: env(safe-area-inset-left); + } + :root .ios-right-edge, + :root .ios-edges, + :root .safe-area-right, + :root .safe-areas, + :root .popup, + :root .sheet-modal, + :root .panel-right { + --f7-safe-area-right: env(safe-area-inset-right); + --f7-safe-area-outer-right: env(safe-area-inset-right); + } + :root .no-safe-areas, + :root .no-safe-area-left, + :root .no-ios-edges, + :root .no-ios-left-edge { + --f7-safe-area-left: 0px; + --f7-safe-area-outer-left: 0px; + } + :root .no-safe-areas, + :root .no-safe-area-right, + :root .no-ios-edges, + :root .no-ios-right-edge { + --f7-safe-area-right: 0px; + --f7-safe-area-outer-right: 0px; + } +} +@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) { + :root { + --f7-device-pixel-ratio: 2; + } +} +@media (-webkit-min-device-pixel-ratio: 3), (min-resolution: 3dppx) { + :root { + --f7-device-pixel-ratio: 3; + } +} +/*==================== + Fonts & Bars + ==================== */ +:root { + --f7-font-size: 14px; + /* + --f7-bars-link-color: var(--f7-theme-color); + */ + --f7-bars-bg-image: none; + --f7-bars-translucent-opacity: 0.8; + --f7-bars-translucent-blur: 20px; + --f7-bars-shadow-bottom-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.25) 0%, rgba(0, 0, 0, 0.08) 40%, rgba(0, 0, 0, 0.04) 50%, rgba(0, 0, 0, 0) 90%, rgba(0, 0, 0, 0) 100%); + --f7-bars-shadow-top-image: linear-gradient(to top, rgba(0, 0, 0, 0.25) 0%, rgba(0, 0, 0, 0.08) 40%, rgba(0, 0, 0, 0.04) 50%, rgba(0, 0, 0, 0) 90%, rgba(0, 0, 0, 0) 100%); + --f7-bars-text-color: #000; + --f7-bars-bg-color: #f7f7f8; + --f7-bars-bg-color-rgb: 247, 247, 248; +} +:root .theme-dark, +:root.theme-dark { + --f7-bars-text-color: #fff; +} +.ios { + --f7-font-family: -apple-system, SF Pro Text, SF UI Text, system-ui, Helvetica Neue, Helvetica, Arial, sans-serif; + --f7-line-height: 1.4; + --f7-text-color: #000; + --f7-bars-border-color: rgba(0, 0, 0, 0.25); +} +.ios .theme-dark, +.ios.theme-dark { + --f7-text-color: #fff; + --f7-bars-bg-color: #121212; + --f7-bars-bg-color-rgb: 22, 22, 22; + --f7-bars-border-color: rgba(255, 255, 255, 0.16); +} +.md { + --f7-font-family: Roboto, system-ui, Noto, Helvetica, Arial, sans-serif; + --f7-line-height: 1.5; + --f7-bars-border-color: transparent; + --f7-text-color: #212121; +} +.md .theme-dark, +.md.theme-dark { + --f7-text-color: rgba(255, 255, 255, 0.87); + --f7-bars-bg-color: #202020; +} +.aurora { + --f7-font-family: -apple-system, system-ui, Helvetica, Arial, sans-serif; + --f7-line-height: 1.5; + --f7-text-color: #000; + --f7-bars-border-color: rgba(0, 0, 0, 0.2); +} +.aurora .theme-dark, +.aurora.theme-dark { + --f7-text-color: #fff; + --f7-bars-bg-color: #202020; + --f7-bars-border-color: rgba(255, 255, 255, 0.1); +} +/*==================== + Color Themes + ==================== */ +.text-color-primary { + --f7-theme-color-text-color: var(--f7-theme-color); +} +.bg-color-primary { + --f7-theme-color-bg-color: var(--f7-theme-color); +} +.border-color-primary { + --f7-theme-color-border-color: var(--f7-theme-color); +} +.ripple-color-primary { + --f7-theme-color-ripple-color: rgba(var(--f7-theme-color-rgb), 0.3); +} +:root { + --f7-color-red: #ff3b30; + --f7-color-red-rgb: 255, 59, 48; + --f7-color-red-shade: #ff1407; + --f7-color-red-tint: #ff6259; + --f7-color-green: #4cd964; + --f7-color-green-rgb: 76, 217, 100; + --f7-color-green-shade: #2cd048; + --f7-color-green-tint: #6ee081; + --f7-color-blue: #2196f3; + --f7-color-blue-rgb: 33, 150, 243; + --f7-color-blue-shade: #0c82df; + --f7-color-blue-tint: #48a8f5; + --f7-color-pink: #ff2d55; + --f7-color-pink-rgb: 255, 45, 85; + --f7-color-pink-shade: #ff0434; + --f7-color-pink-tint: #ff5676; + --f7-color-yellow: #ffcc00; + --f7-color-yellow-rgb: 255, 204, 0; + --f7-color-yellow-shade: #d6ab00; + --f7-color-yellow-tint: #ffd429; + --f7-color-orange: #ff9500; + --f7-color-orange-rgb: 255, 149, 0; + --f7-color-orange-shade: #d67d00; + --f7-color-orange-tint: #ffa629; + --f7-color-purple: #9c27b0; + --f7-color-purple-rgb: 156, 39, 176; + --f7-color-purple-shade: #7e208f; + --f7-color-purple-tint: #b92fd1; + --f7-color-deeppurple: #673ab7; + --f7-color-deeppurple-rgb: 103, 58, 183; + --f7-color-deeppurple-shade: #563098; + --f7-color-deeppurple-tint: #7c52c8; + --f7-color-lightblue: #5ac8fa; + --f7-color-lightblue-rgb: 90, 200, 250; + --f7-color-lightblue-shade: #32bbf9; + --f7-color-lightblue-tint: #82d5fb; + --f7-color-teal: #009688; + --f7-color-teal-rgb: 0, 150, 136; + --f7-color-teal-shade: #006d63; + --f7-color-teal-tint: #00bfad; + --f7-color-lime: #cddc39; + --f7-color-lime-rgb: 205, 220, 57; + --f7-color-lime-shade: #bac923; + --f7-color-lime-tint: #d6e25c; + --f7-color-deeporange: #ff6b22; + --f7-color-deeporange-rgb: 255, 107, 34; + --f7-color-deeporange-shade: #f85200; + --f7-color-deeporange-tint: #ff864b; + --f7-color-gray: #8e8e93; + --f7-color-gray-rgb: 142, 142, 147; + --f7-color-gray-shade: #79797f; + --f7-color-gray-tint: #a3a3a7; + --f7-color-white: #ffffff; + --f7-color-white-rgb: 255, 255, 255; + --f7-color-white-shade: #ebebeb; + --f7-color-white-tint: #ffffff; + --f7-color-black: #000000; + --f7-color-black-rgb: 0, 0, 0; + --f7-color-black-shade: #000000; + --f7-color-black-tint: #141414; +} +.color-theme-red { + --f7-theme-color: #ff3b30; + --f7-theme-color-rgb: 255, 59, 48; + --f7-theme-color-shade: #ff1407; + --f7-theme-color-tint: #ff6259; +} +.color-theme-green { + --f7-theme-color: #4cd964; + --f7-theme-color-rgb: 76, 217, 100; + --f7-theme-color-shade: #2cd048; + --f7-theme-color-tint: #6ee081; +} +.color-theme-blue { + --f7-theme-color: #2196f3; + --f7-theme-color-rgb: 33, 150, 243; + --f7-theme-color-shade: #0c82df; + --f7-theme-color-tint: #48a8f5; +} +.color-theme-pink { + --f7-theme-color: #ff2d55; + --f7-theme-color-rgb: 255, 45, 85; + --f7-theme-color-shade: #ff0434; + --f7-theme-color-tint: #ff5676; +} +.color-theme-yellow { + --f7-theme-color: #ffcc00; + --f7-theme-color-rgb: 255, 204, 0; + --f7-theme-color-shade: #d6ab00; + --f7-theme-color-tint: #ffd429; +} +.color-theme-orange { + --f7-theme-color: #ff9500; + --f7-theme-color-rgb: 255, 149, 0; + --f7-theme-color-shade: #d67d00; + --f7-theme-color-tint: #ffa629; +} +.color-theme-purple { + --f7-theme-color: #9c27b0; + --f7-theme-color-rgb: 156, 39, 176; + --f7-theme-color-shade: #7e208f; + --f7-theme-color-tint: #b92fd1; +} +.color-theme-deeppurple { + --f7-theme-color: #673ab7; + --f7-theme-color-rgb: 103, 58, 183; + --f7-theme-color-shade: #563098; + --f7-theme-color-tint: #7c52c8; +} +.color-theme-lightblue { + --f7-theme-color: #5ac8fa; + --f7-theme-color-rgb: 90, 200, 250; + --f7-theme-color-shade: #32bbf9; + --f7-theme-color-tint: #82d5fb; +} +.color-theme-teal { + --f7-theme-color: #009688; + --f7-theme-color-rgb: 0, 150, 136; + --f7-theme-color-shade: #006d63; + --f7-theme-color-tint: #00bfad; +} +.color-theme-lime { + --f7-theme-color: #cddc39; + --f7-theme-color-rgb: 205, 220, 57; + --f7-theme-color-shade: #bac923; + --f7-theme-color-tint: #d6e25c; +} +.color-theme-deeporange { + --f7-theme-color: #ff6b22; + --f7-theme-color-rgb: 255, 107, 34; + --f7-theme-color-shade: #f85200; + --f7-theme-color-tint: #ff864b; +} +.color-theme-gray { + --f7-theme-color: #8e8e93; + --f7-theme-color-rgb: 142, 142, 147; + --f7-theme-color-shade: #79797f; + --f7-theme-color-tint: #a3a3a7; +} +.color-theme-white { + --f7-theme-color: #ffffff; + --f7-theme-color-rgb: 255, 255, 255; + --f7-theme-color-shade: #ebebeb; + --f7-theme-color-tint: #ffffff; +} +.color-theme-black { + --f7-theme-color: #000000; + --f7-theme-color-rgb: 0, 0, 0; + --f7-theme-color-shade: #000000; + --f7-theme-color-tint: #141414; +} +.color-red { + --f7-theme-color: #ff3b30; + --f7-theme-color-rgb: 255, 59, 48; + --f7-theme-color-shade: #ff1407; + --f7-theme-color-tint: #ff6259; +} +.text-color-red { + --f7-theme-color-text-color: #ff3b30; +} +.bg-color-red { + --f7-theme-color-bg-color: #ff3b30; +} +.border-color-red { + --f7-theme-color-border-color: #ff3b30; +} +.ripple-color-red, +.ripple-red { + --f7-theme-color-ripple-color: rgba(255, 59, 48, 0.3); +} +.color-green { + --f7-theme-color: #4cd964; + --f7-theme-color-rgb: 76, 217, 100; + --f7-theme-color-shade: #2cd048; + --f7-theme-color-tint: #6ee081; +} +.text-color-green { + --f7-theme-color-text-color: #4cd964; +} +.bg-color-green { + --f7-theme-color-bg-color: #4cd964; +} +.border-color-green { + --f7-theme-color-border-color: #4cd964; +} +.ripple-color-green, +.ripple-green { + --f7-theme-color-ripple-color: rgba(76, 217, 100, 0.3); +} +.color-blue { + --f7-theme-color: #2196f3; + --f7-theme-color-rgb: 33, 150, 243; + --f7-theme-color-shade: #0c82df; + --f7-theme-color-tint: #48a8f5; +} +.text-color-blue { + --f7-theme-color-text-color: #2196f3; +} +.bg-color-blue { + --f7-theme-color-bg-color: #2196f3; +} +.border-color-blue { + --f7-theme-color-border-color: #2196f3; +} +.ripple-color-blue, +.ripple-blue { + --f7-theme-color-ripple-color: rgba(33, 150, 243, 0.3); +} +.color-pink { + --f7-theme-color: #ff2d55; + --f7-theme-color-rgb: 255, 45, 85; + --f7-theme-color-shade: #ff0434; + --f7-theme-color-tint: #ff5676; +} +.text-color-pink { + --f7-theme-color-text-color: #ff2d55; +} +.bg-color-pink { + --f7-theme-color-bg-color: #ff2d55; +} +.border-color-pink { + --f7-theme-color-border-color: #ff2d55; +} +.ripple-color-pink, +.ripple-pink { + --f7-theme-color-ripple-color: rgba(255, 45, 85, 0.3); +} +.color-yellow { + --f7-theme-color: #ffcc00; + --f7-theme-color-rgb: 255, 204, 0; + --f7-theme-color-shade: #d6ab00; + --f7-theme-color-tint: #ffd429; +} +.text-color-yellow { + --f7-theme-color-text-color: #ffcc00; +} +.bg-color-yellow { + --f7-theme-color-bg-color: #ffcc00; +} +.border-color-yellow { + --f7-theme-color-border-color: #ffcc00; +} +.ripple-color-yellow, +.ripple-yellow { + --f7-theme-color-ripple-color: rgba(255, 204, 0, 0.3); +} +.color-orange { + --f7-theme-color: #ff9500; + --f7-theme-color-rgb: 255, 149, 0; + --f7-theme-color-shade: #d67d00; + --f7-theme-color-tint: #ffa629; +} +.text-color-orange { + --f7-theme-color-text-color: #ff9500; +} +.bg-color-orange { + --f7-theme-color-bg-color: #ff9500; +} +.border-color-orange { + --f7-theme-color-border-color: #ff9500; +} +.ripple-color-orange, +.ripple-orange { + --f7-theme-color-ripple-color: rgba(255, 149, 0, 0.3); +} +.color-purple { + --f7-theme-color: #9c27b0; + --f7-theme-color-rgb: 156, 39, 176; + --f7-theme-color-shade: #7e208f; + --f7-theme-color-tint: #b92fd1; +} +.text-color-purple { + --f7-theme-color-text-color: #9c27b0; +} +.bg-color-purple { + --f7-theme-color-bg-color: #9c27b0; +} +.border-color-purple { + --f7-theme-color-border-color: #9c27b0; +} +.ripple-color-purple, +.ripple-purple { + --f7-theme-color-ripple-color: rgba(156, 39, 176, 0.3); +} +.color-deeppurple { + --f7-theme-color: #673ab7; + --f7-theme-color-rgb: 103, 58, 183; + --f7-theme-color-shade: #563098; + --f7-theme-color-tint: #7c52c8; +} +.text-color-deeppurple { + --f7-theme-color-text-color: #673ab7; +} +.bg-color-deeppurple { + --f7-theme-color-bg-color: #673ab7; +} +.border-color-deeppurple { + --f7-theme-color-border-color: #673ab7; +} +.ripple-color-deeppurple, +.ripple-deeppurple { + --f7-theme-color-ripple-color: rgba(103, 58, 183, 0.3); +} +.color-lightblue { + --f7-theme-color: #5ac8fa; + --f7-theme-color-rgb: 90, 200, 250; + --f7-theme-color-shade: #32bbf9; + --f7-theme-color-tint: #82d5fb; +} +.text-color-lightblue { + --f7-theme-color-text-color: #5ac8fa; +} +.bg-color-lightblue { + --f7-theme-color-bg-color: #5ac8fa; +} +.border-color-lightblue { + --f7-theme-color-border-color: #5ac8fa; +} +.ripple-color-lightblue, +.ripple-lightblue { + --f7-theme-color-ripple-color: rgba(90, 200, 250, 0.3); +} +.color-teal { + --f7-theme-color: #009688; + --f7-theme-color-rgb: 0, 150, 136; + --f7-theme-color-shade: #006d63; + --f7-theme-color-tint: #00bfad; +} +.text-color-teal { + --f7-theme-color-text-color: #009688; +} +.bg-color-teal { + --f7-theme-color-bg-color: #009688; +} +.border-color-teal { + --f7-theme-color-border-color: #009688; +} +.ripple-color-teal, +.ripple-teal { + --f7-theme-color-ripple-color: rgba(0, 150, 136, 0.3); +} +.color-lime { + --f7-theme-color: #cddc39; + --f7-theme-color-rgb: 205, 220, 57; + --f7-theme-color-shade: #bac923; + --f7-theme-color-tint: #d6e25c; +} +.text-color-lime { + --f7-theme-color-text-color: #cddc39; +} +.bg-color-lime { + --f7-theme-color-bg-color: #cddc39; +} +.border-color-lime { + --f7-theme-color-border-color: #cddc39; +} +.ripple-color-lime, +.ripple-lime { + --f7-theme-color-ripple-color: rgba(205, 220, 57, 0.3); +} +.color-deeporange { + --f7-theme-color: #ff6b22; + --f7-theme-color-rgb: 255, 107, 34; + --f7-theme-color-shade: #f85200; + --f7-theme-color-tint: #ff864b; +} +.text-color-deeporange { + --f7-theme-color-text-color: #ff6b22; +} +.bg-color-deeporange { + --f7-theme-color-bg-color: #ff6b22; +} +.border-color-deeporange { + --f7-theme-color-border-color: #ff6b22; +} +.ripple-color-deeporange, +.ripple-deeporange { + --f7-theme-color-ripple-color: rgba(255, 107, 34, 0.3); +} +.color-gray { + --f7-theme-color: #8e8e93; + --f7-theme-color-rgb: 142, 142, 147; + --f7-theme-color-shade: #79797f; + --f7-theme-color-tint: #a3a3a7; +} +.text-color-gray { + --f7-theme-color-text-color: #8e8e93; +} +.bg-color-gray { + --f7-theme-color-bg-color: #8e8e93; +} +.border-color-gray { + --f7-theme-color-border-color: #8e8e93; +} +.ripple-color-gray, +.ripple-gray { + --f7-theme-color-ripple-color: rgba(142, 142, 147, 0.3); +} +.color-white { + --f7-theme-color: #ffffff; + --f7-theme-color-rgb: 255, 255, 255; + --f7-theme-color-shade: #ebebeb; + --f7-theme-color-tint: #ffffff; +} +.text-color-white { + --f7-theme-color-text-color: #ffffff; +} +.bg-color-white { + --f7-theme-color-bg-color: #ffffff; +} +.border-color-white { + --f7-theme-color-border-color: #ffffff; +} +.ripple-color-white, +.ripple-white { + --f7-theme-color-ripple-color: rgba(255, 255, 255, 0.3); +} +.color-black { + --f7-theme-color: #000000; + --f7-theme-color-rgb: 0, 0, 0; + --f7-theme-color-shade: #000000; + --f7-theme-color-tint: #141414; +} +.text-color-black { + --f7-theme-color-text-color: #000000; +} +.bg-color-black { + --f7-theme-color-bg-color: #000000; +} +.border-color-black { + --f7-theme-color-border-color: #000000; +} +.ripple-color-black, +.ripple-black { + --f7-theme-color-ripple-color: rgba(0, 0, 0, 0.3); +} +@font-face { + font-family: 'framework7-core-icons'; + src: url("data:application/font-woff;charset=utf-8;base64, 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") format("woff"); + font-weight: 400; + font-style: normal; +} +@font-face { + font-family: 'framework7-skeleton'; + src: url("data:application/font-woff;charset=utf-8;base64, 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") format("woff"); + font-weight: 300, 400, 500, 600, 700; + font-style: normal, italic; +} +html { + direction: rtl; +} +html, +body, +.framework7-root { + position: relative; + height: 100%; + width: 100%; + overflow-x: hidden; +} +body { + margin: 0; + padding: 0; + width: 100%; + background: #fff; + overflow: hidden; + -webkit-text-size-adjust: 100%; + -webkit-font-smoothing: antialiased; + font-family: var(--f7-font-family); + font-size: var(--f7-font-size); + line-height: var(--f7-line-height); + color: var(--f7-text-color); +} +.theme-dark body, +body.theme-dark { + background: #000; +} +.theme-dark { + color: var(--f7-text-color); +} +.framework7-root { + overflow: hidden; + box-sizing: border-box; +} +.framework7-initializing *, +.framework7-initializing *:before, +.framework7-initializing *:after { + transition-duration: 0ms !important; +} +.device-ios, +.device-android { + cursor: pointer; +} +.device-ios { + touch-action: manipulation; +} +@media (width: 1024px) and (height: 691px) and (orientation: landscape) { + html, + body, + .framework7-root { + height: 671px; + } +} +@media (width: 1024px) and (height: 692px) and (orientation: landscape) { + html, + body, + .framework7-root { + height: 672px; + } +} +* { + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); + -webkit-touch-callout: none; +} +a, +input, +textarea, +select { + outline: 0; +} +a { + cursor: pointer; + text-decoration: none; + color: var(--f7-theme-color); +} +.link, +.item-link { + cursor: pointer; +} +p { + margin: 1em 0; +} +.disabled { + opacity: 0.55 !important; + pointer-events: none !important; +} +html.device-full-viewport, +html.device-full-viewport body { + height: 100vh; +} +.ios .md-only, +.ios .if-md, +.ios .aurora-only, +.ios .if-aurora, +.ios .if-not-ios, +.ios .not-ios { + display: none !important; +} +@media (width: 1024px) and (height: 691px) and (orientation: landscape) { + .ios, + .ios body, + .ios .framework7-root { + height: 671px; + } +} +@media (width: 1024px) and (height: 692px) and (orientation: landscape) { + .ios, + .ios body, + .ios .framework7-root { + height: 672px; + } +} +.md .ios-only, +.md .if-ios, +.md .aurora-only, +.md .if-aurora, +.md .if-not-md, +.md .not-md { + display: none !important; +} +.aurora .ios-only, +.aurora .if-ios, +.aurora .md-only, +.aurora .if-md, +.aurora .if-not-aurora, +.aurora .not-aurora { + display: none !important; +} +/* === Statusbar === */ +/* === Views === */ +.views, +.view { + position: relative; + height: 100%; + z-index: 5000; + overflow: hidden; + box-sizing: border-box; +} +.framework7-root > .view, +.framework7-root > .views { + height: calc(100% - var(--f7-appbar-app-offset, 0px)); +} +.view-resize-handler { + width: 6px; + height: 100%; + position: absolute; + left: var(--f7-page-master-width); + margin-left: -3px; + top: 0; + cursor: col-resize; + z-index: 1000; + display: none; +} +.view-master-detail .view-resize-handler { + display: block; +} +/* === Pages === */ +:root { + --f7-page-master-width: 320px; + --f7-page-master-border-color: rgba(0, 0, 0, 0.1); + --f7-page-master-border-width: 1px; + --f7-page-swipeback-transition-duration: 300ms; + --f7-page-parallax-transition-duration: 500ms; + --f7-page-cover-transition-duration: 450ms; + --f7-page-dive-transition-duration: 500ms; + --f7-page-fade-transition-duration: 500ms; + --f7-page-flip-transition-duration: 700ms; + --f7-page-push-transition-duration: 500ms; + /* + --f7-page-content-extra-padding-top: 0px; + --f7-page-content-extra-padding-bottom: 0px; + */ +} +.ios { + --f7-page-transition-duration: 400ms; + --f7-page-bg-color: #efeff4; +} +.ios .theme-dark, +.ios.theme-dark { + --f7-page-bg-color: #000; +} +.md { + --f7-page-transition-duration: 250ms; + --f7-page-bg-color: #fff; +} +.md .theme-dark, +.md.theme-dark { + --f7-page-bg-color: #121212; +} +.aurora { + --f7-page-transition-duration: 400ms; + --f7-page-bg-color: #f3f3f3; +} +.aurora .theme-dark, +.aurora.theme-dark { + --f7-page-bg-color: #121212; +} +.theme-dark { + --f7-page-master-border-color: rgba(255, 255, 255, 0.1); +} +.pages { + position: relative; + width: 100%; + height: 100%; + overflow: hidden; +} +.page { + box-sizing: border-box; + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + transform: none; + background-color: var(--f7-page-bg-color); + z-index: 1; +} +.page.stacked { + display: none; +} +.page-with-navbar-large-collapsed { + --f7-navbar-large-collapse-progress: 1; +} +.page-previous { + pointer-events: none; +} +.page-content { + overflow: auto; + -webkit-overflow-scrolling: touch; + box-sizing: border-box; + height: 100%; + position: relative; + z-index: 1; + padding-top: calc(var(--f7-page-navbar-offset, 0px) + var(--f7-page-toolbar-top-offset, 0px) + var(--f7-page-subnavbar-offset, 0px) + var(--f7-page-searchbar-offset, 0px) + var(--f7-page-content-extra-padding-top, 0px)); + padding-bottom: calc(var(--f7-page-toolbar-bottom-offset, 0px) + var(--f7-safe-area-bottom) + var(--f7-page-content-extra-padding-bottom, 0px)); +} +.page-transitioning, +.page-transitioning .page-shadow-effect, +.page-transitioning .page-opacity-effect { + transition-duration: var(--f7-page-transition-duration); +} +.page-transitioning-swipeback, +.page-transitioning-swipeback .page-shadow-effect, +.page-transitioning-swipeback .page-opacity-effect { + transition-duration: var(--f7-page-swipeback-transition-duration); +} +.router-transition-forward .page-next, +.router-transition-backward .page-next, +.router-transition-forward .page-current, +.router-transition-backward .page-current, +.router-transition-forward .page-previous:not(.stacked), +.router-transition-backward .page-previous:not(.stacked) { + pointer-events: none; +} +.page-shadow-effect { + position: absolute; + top: 0; + width: 16px; + bottom: 0; + z-index: -1; + content: ''; + opacity: 0; + left: 100%; + background: linear-gradient(to left, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 10%, rgba(0, 0, 0, 0.01) 50%, rgba(0, 0, 0, 0.2) 100%); +} +.page-opacity-effect { + position: absolute; + left: 0; + top: 0; + background: rgba(0, 0, 0, 0.1); + width: 100%; + bottom: 0; + content: ''; + opacity: 0; + z-index: 10000; +} +.ios .page-previous { + transform: translate3d(20%, 0, 0); +} +.ios .page-next { + transform: translate3d(-100%, 0, 0); +} +.ios .page-previous .page-opacity-effect { + opacity: 1; +} +.ios .page-previous:after { + opacity: 1; +} +.ios .page-current .page-shadow-effect { + opacity: 1; +} +.ios .router-transition-forward .page-next { + animation: ios-page-next-to-current var(--f7-page-transition-duration) forwards; +} +.ios .router-transition-forward .page-next:before { + position: absolute; + top: 0; + width: 16px; + bottom: 0; + z-index: -1; + content: ''; + opacity: 0; + left: 100%; + background: linear-gradient(to left, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 10%, rgba(0, 0, 0, 0.01) 50%, rgba(0, 0, 0, 0.2) 100%); + animation: ios-page-element-fade-in var(--f7-page-transition-duration) forwards; +} +.ios .router-transition-forward .page-current { + animation: ios-page-current-to-previous var(--f7-page-transition-duration) forwards; +} +.ios .router-transition-forward .page-current:after { + position: absolute; + left: 0; + top: 0; + background: rgba(0, 0, 0, 0.1); + width: 100%; + bottom: 0; + content: ''; + opacity: 0; + z-index: 10000; + animation: ios-page-element-fade-in var(--f7-page-transition-duration) forwards; +} +.ios .router-transition-backward .page-previous { + animation: ios-page-previous-to-current var(--f7-page-transition-duration) forwards; +} +.ios .router-transition-backward .page-previous:after { + position: absolute; + left: 0; + top: 0; + background: rgba(0, 0, 0, 0.1); + width: 100%; + bottom: 0; + content: ''; + opacity: 0; + z-index: 10000; + animation: ios-page-element-fade-out var(--f7-page-transition-duration) forwards; +} +.ios .router-transition-backward .page-current { + animation: ios-page-current-to-next var(--f7-page-transition-duration) forwards; +} +.ios .router-transition-backward .page-current:before { + position: absolute; + top: 0; + width: 16px; + bottom: 0; + z-index: -1; + content: ''; + opacity: 0; + left: 100%; + background: linear-gradient(to left, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 10%, rgba(0, 0, 0, 0.01) 50%, rgba(0, 0, 0, 0.2) 100%); + animation: ios-page-element-fade-out var(--f7-page-transition-duration) forwards; +} +@keyframes ios-page-next-to-current { + from { + transform: translate3d(-100%, 0, 0); + } + to { + transform: translate3d(0%, 0, 0); + } +} +@keyframes ios-page-previous-to-current { + from { + transform: translate3d(20%, 0, 0); + } + to { + transform: translate3d(0%, 0, 0); + } +} +@keyframes ios-page-current-to-previous { + from { + transform: translate3d(0, 0, 0); + } + to { + transform: translate3d(20%, 0, 0); + } +} +@keyframes ios-page-current-to-next { + from { + transform: translate3d(0, 0, 0); + } + to { + transform: translate3d(-100%, 0, 0); + } +} +@keyframes ios-page-element-fade-in { + from { + opacity: 0; + } + to { + opacity: 1; + } +} +@keyframes ios-page-element-fade-out { + from { + opacity: 1; + } + to { + opacity: 0; + } +} +.md .page-next { + transform: translate3d(0, 56px, 0); + opacity: 0; + pointer-events: none; +} +.md .page-next.page-next-on-right { + transform: translate3d(-100%, 0, 0); +} +.md .router-transition-forward .page-next { + animation: md-page-next-to-current var(--f7-page-transition-duration) forwards; +} +.md .router-transition-forward .page-current { + animation: none; +} +.md .router-transition-backward .page-current { + animation: md-page-current-to-next var(--f7-page-transition-duration) forwards; +} +.md .router-transition-backward .page-previous { + animation: none; +} +@keyframes md-page-next-to-current { + from { + transform: translate3d(0, 56px, 0); + opacity: 0; + } + to { + transform: translate3d(0, 0px, 0); + opacity: 1; + } +} +@keyframes md-page-current-to-next { + from { + transform: translate3d(0, 0, 0); + opacity: 1; + } + to { + transform: translate3d(0, 56px, 0); + opacity: 0; + } +} +.aurora .page-next { + pointer-events: none; + transform: translate3d(-100%, 0px, 0); +} +.aurora .page-next.page-next-on-right { + transform: translate3d(-100%, 0, 0); +} +.aurora .page-previous .page-opacity-effect { + opacity: 1; +} +.aurora .page-previous:after { + opacity: 1; +} +.aurora .router-transition-forward .page-next { + animation: aurora-page-next-to-current var(--f7-page-transition-duration) forwards; +} +.aurora .router-transition-forward .page-current { + animation: none; +} +.aurora .router-transition-forward .page-current:after { + position: absolute; + left: 0; + top: 0; + background: rgba(0, 0, 0, 0.1); + width: 100%; + bottom: 0; + content: ''; + opacity: 0; + z-index: 10000; + animation: aurora-page-element-fade-in var(--f7-page-transition-duration) forwards; +} +.aurora .router-transition-backward .page-current { + animation: aurora-page-current-to-next var(--f7-page-transition-duration) forwards; +} +.aurora .router-transition-backward .page-previous { + animation: none; +} +.aurora .router-transition-backward .page-previous:after { + position: absolute; + left: 0; + top: 0; + background: rgba(0, 0, 0, 0.1); + width: 100%; + bottom: 0; + content: ''; + opacity: 0; + z-index: 10000; + animation: aurora-page-element-fade-out var(--f7-page-transition-duration) forwards; +} +@keyframes aurora-page-next-to-current { + from { + transform: translate3d(-100%, 0, 0); + } + to { + transform: translate3d(0, 0px, 0); + } +} +@keyframes aurora-page-current-to-next { + from { + transform: translate3d(0, 0, 0); + } + to { + transform: translate3d(-100%, 0, 0); + } +} +@keyframes aurora-page-element-fade-in { + from { + opacity: 0; + } + to { + opacity: 1; + } +} +@keyframes aurora-page-element-fade-out { + from { + opacity: 1; + } + to { + opacity: 0; + } +} +.view:not(.view-master-detail) .page-master-stacked { + display: none; +} +.view:not(.view-master-detail) .navbar-master-stacked { + display: none; +} +.view-master-detail .page-master, +.view-master-detail .navbar-master { + width: var(--f7-page-master-width); + left: auto; + right: 0; + --f7-safe-area-left: 0px; + --f7-safe-area-outer-left: 0px; + border-left: var(--f7-page-master-border-width) solid var(--f7-page-master-border-color); +} +.view-master-detail .page-master-detail, +.view-master-detail .navbar-master-detail { + width: calc(100% - var(--f7-page-master-width)); + --f7-safe-area-right: 0px; + --f7-safe-area-outer-right: 0px; + right: var(--f7-page-master-width); +} +.view-master-detail .page-master { + z-index: 2; + transform: none; + pointer-events: auto; +} +.view-master-detail .page-master:before, +.view-master-detail .page-master:after { + display: none; +} +.view-master-detail.router-transition .page-master { + animation: none; +} +.md .router-transition-custom .page-previous, +.ios .router-transition-custom .page-previous, +.aurora .router-transition-custom .page-previous, +.md .router-transition-custom .page-next, +.ios .router-transition-custom .page-next, +.aurora .router-transition-custom .page-next { + opacity: 1; + transform: none; +} +.router-transition-f7-circle-forward:after, +.router-transition-f7-circle-backward:after { + content: ''; + position: absolute; + left: 50%; + top: 50%; + width: 100vmax; + height: 100vmax; + margin-left: -50vmax; + margin-top: -50vmax; + background: var(--f7-page-bg-color); + z-index: 100; +} +.router-transition-f7-circle-forward:after { + transform: scale(0); + border-radius: 50%; + animation: f7-circle-circle-in 400ms forwards; +} +.router-transition-f7-circle-forward .page-next { + opacity: 0 !important; + transform: scale(0.9) !important; + animation: f7-circle-next-to-current 300ms forwards; + animation-delay: 300ms; + z-index: 150; +} +.router-transition-f7-circle-backward:after { + animation: f7-circle-circle-out 300ms forwards; + animation-delay: 350ms; +} +.router-transition-f7-circle-backward .page-current { + animation: f7-circle-current-to-next 700ms forwards; + z-index: 150; +} +@keyframes f7-circle-circle-in { + from { + transform: scale(0); + border-radius: 50%; + } + 50% { + border-radius: 50%; + } + to { + transform: scale(1); + border-radius: 0%; + } +} +@keyframes f7-circle-circle-out { + from { + transform: scale(1); + border-radius: 0%; + } + 50% { + border-radius: 50%; + } + to { + transform: scale(0); + border-radius: 50%; + } +} +@keyframes f7-circle-next-to-current { + from { + transform: scale(0.9); + opacity: 0; + } + 40% { + transform: scale(1.035); + opacity: 1; + } + to { + transform: scale(1); + opacity: 1; + } +} +@keyframes f7-circle-current-to-next { + from { + transform: scale(1); + opacity: 1; + } + 34% { + transform: scale(1.035); + opacity: 1; + } + 57% { + transform: scale(0.9); + opacity: 0; + } + to { + transform: scale(0.9); + opacity: 0; + } +} +.router-transition-f7-cover-v-forward, +.router-transition-f7-cover-v-backward { + background: #000; + perspective: 1200px; +} +.router-transition-f7-cover-v-forward .page-next { + animation: f7-cover-v-next-to-current var(--f7-page-cover-transition-duration) forwards; +} +.router-transition-f7-cover-v-forward .page-current { + animation: f7-cover-v-current-to-prev var(--f7-page-cover-transition-duration) forwards; +} +.router-transition-f7-cover-v-backward .page-current { + animation: f7-cover-v-current-to-next var(--f7-page-cover-transition-duration) forwards; +} +.router-transition-f7-cover-v-backward .page-previous { + animation: f7-cover-v-prev-to-current var(--f7-page-cover-transition-duration) forwards; +} +@keyframes f7-cover-v-next-to-current { + from { + transform: translateY(100%); + } + to { + transform: translateY(0%); + } +} +@keyframes f7-cover-v-current-to-next { + from { + transform: translateY(0%); + } + to { + transform: translateY(100%); + } +} +@keyframes f7-cover-v-current-to-prev { + from { + transform: translateZ(0); + opacity: 1; + } + to { + transform: translateZ(-300px); + opacity: 0.5; + } +} +@keyframes f7-cover-v-prev-to-current { + from { + transform: translateZ(-300px); + opacity: 0.5; + } + to { + transform: translateZ(0); + opacity: 1; + } +} +.router-transition-f7-cover-forward, +.router-transition-f7-cover-backward { + background: #000; + perspective: 1200px; +} +.router-transition-f7-cover-forward .page-next { + animation: f7-cover-next-to-current var(--f7-page-cover-transition-duration) forwards; +} +.router-transition-f7-cover-forward .page-current { + animation: f7-cover-current-to-prev var(--f7-page-cover-transition-duration) forwards; +} +.router-transition-f7-cover-backward .page-current { + animation: f7-cover-current-to-next var(--f7-page-cover-transition-duration) forwards; +} +.router-transition-f7-cover-backward .page-previous { + animation: f7-cover-prev-to-current var(--f7-page-cover-transition-duration) forwards; +} +@keyframes f7-cover-next-to-current { + from { + transform: translateX(-100%); + } + to { + transform: translateX(0%); + } +} +@keyframes f7-cover-current-to-next { + from { + transform: translateX(0%); + } + to { + transform: translateX(-100%); + } +} +@keyframes f7-cover-current-to-prev { + from { + transform: translateZ(0); + opacity: 1; + } + to { + transform: translateZ(-300px); + opacity: 0.5; + } +} +@keyframes f7-cover-prev-to-current { + from { + transform: translateZ(-300px); + opacity: 0.5; + } + to { + transform: translateZ(0); + opacity: 1; + } +} +.router-transition-f7-dive-forward, +.router-transition-f7-dive-backward { + background: var(--f7-page-bg-color); + perspective: 1200px; +} +.router-transition-f7-dive-forward .page-next { + animation: f7-dive-next-to-current var(--f7-page-dive-transition-duration) forwards; +} +.router-transition-f7-dive-forward .page-current { + animation: f7-dive-current-to-prev var(--f7-page-dive-transition-duration) forwards; +} +.router-transition-f7-dive-backward .page-current { + animation: f7-dive-current-to-next var(--f7-page-dive-transition-duration) forwards; +} +.router-transition-f7-dive-backward .page-previous { + animation: f7-dive-prev-to-current var(--f7-page-dive-transition-duration) forwards; +} +@keyframes f7-dive-next-to-current { + from { + opacity: 0; + transform: translateZ(-150px); + } + 50% { + opacity: 0; + } + to { + opacity: 1; + transform: translateZ(0px); + } +} +@keyframes f7-dive-current-to-next { + from { + opacity: 1; + transform: translateZ(0px); + } + 50% { + opacity: 0; + } + to { + opacity: 0; + transform: translateZ(-150px); + } +} +@keyframes f7-dive-current-to-prev { + from { + transform: translateZ(0px); + opacity: 1; + } + 50% { + opacity: 0; + } + to { + opacity: 0; + transform: translateZ(150px); + } +} +@keyframes f7-dive-prev-to-current { + from { + opacity: 0; + transform: translateZ(150px); + } + 50% { + opacity: 0; + } + to { + opacity: 1; + transform: translateZ(0px); + } +} +.router-transition-f7-fade-forward, +.router-transition-f7-fade-backward { + background: var(--f7-page-bg-color); +} +.router-transition-f7-fade-forward .page-next { + opacity: 0 !important; + animation: f7-fade-in var(--f7-page-fade-transition-duration) forwards; +} +.router-transition-f7-fade-forward .page-current { + animation: f7-fade-out var(--f7-page-fade-transition-duration) forwards; +} +.router-transition-f7-fade-backward .page-current { + animation: f7-fade-out var(--f7-page-fade-transition-duration) forwards; +} +.router-transition-f7-fade-backward .page-previous { + animation: f7-fade-in var(--f7-page-fade-transition-duration) forwards; +} +@keyframes f7-fade-in { + from { + opacity: 0; + } + 50% { + opacity: 0; + } + to { + opacity: 1; + } +} +@keyframes f7-fade-out { + from { + opacity: 1; + } + 50% { + opacity: 0; + } + to { + opacity: 0; + } +} +.router-transition-f7-flip-forward, +.router-transition-f7-flip-backward { + background: #000; + perspective: 1200px; +} +.router-transition-f7-flip-forward .page, +.router-transition-f7-flip-backward .page { + -webkit-backface-visibility: hidden; + backface-visibility: hidden; +} +.router-transition-f7-flip-forward .page-next { + animation: f7-flip-next-to-current var(--f7-page-flip-transition-duration) forwards; +} +.router-transition-f7-flip-forward .page-current { + animation: f7-flip-current-to-prev var(--f7-page-flip-transition-duration) forwards; +} +.router-transition-f7-flip-backward .page-current { + animation: f7-flip-current-to-next var(--f7-page-flip-transition-duration) forwards; +} +.router-transition-f7-flip-backward .page-previous { + animation: f7-flip-prev-to-current var(--f7-page-flip-transition-duration) forwards; +} +@keyframes f7-flip-next-to-current { + from { + border-radius: 30px; + transform: translateZ(-100vmax) rotateY(-180deg); + } + to { + border-radius: 0; + transform: translateZ(0px) rotateY(0deg); + } +} +@keyframes f7-flip-current-to-next { + from { + border-radius: 0px; + transform: translateZ(0px) rotateY(0deg); + } + to { + border-radius: 30px; + transform: translateZ(-100vmax) rotateY(-180deg); + } +} +@keyframes f7-flip-current-to-prev { + from { + border-radius: 0px; + transform: translateZ(0px) rotateY(0deg); + } + to { + border-radius: 30px; + transform: translateZ(-100vmax) rotateY(180deg); + } +} +@keyframes f7-flip-prev-to-current { + from { + border-radius: 30px; + transform: translateZ(-100vmax) rotateY(180deg); + } + to { + border-radius: 0px; + transform: translateZ(0px) rotateY(0deg); + } +} +.router-transition-f7-parallax-forward .page-next { + animation: f7-parallax-next-to-current var(--f7-page-parallax-transition-duration) forwards; +} +.router-transition-f7-parallax-forward .page-current { + animation: f7-parallax-current-to-prev var(--f7-page-parallax-transition-duration) forwards; +} +.router-transition-f7-parallax-backward .page-current { + animation: f7-parallax-current-to-next var(--f7-page-parallax-transition-duration) forwards; +} +.router-transition-f7-parallax-backward .page-previous { + animation: f7-parallax-prev-to-current var(--f7-page-parallax-transition-duration) forwards; +} +@keyframes f7-parallax-next-to-current { + from { + transform: translateX(-100%); + } + to { + transform: translateX(0%); + } +} +@keyframes f7-parallax-current-to-next { + from { + transform: translateX(0%); + } + to { + transform: translateX(-100%); + } +} +@keyframes f7-parallax-current-to-prev { + from { + transform: translateX(0%); + } + to { + transform: translateX(20%); + } +} +@keyframes f7-parallax-prev-to-current { + from { + transform: translateX(20%); + } + to { + transform: translateX(0%); + } +} +.router-transition-f7-push-forward .page-next { + animation: f7-push-next-to-current var(--f7-page-push-transition-duration) forwards; +} +.router-transition-f7-push-forward .page-current { + animation: f7-push-current-to-prev var(--f7-page-push-transition-duration) forwards; +} +.router-transition-f7-push-backward .page-current { + animation: f7-push-current-to-next var(--f7-page-push-transition-duration) forwards; +} +.router-transition-f7-push-backward .page-previous { + animation: f7-push-prev-to-current var(--f7-page-push-transition-duration) forwards; +} +@keyframes f7-push-next-to-current { + from { + transform: translateX(-100%); + } + to { + transform: translateX(0%); + } +} +@keyframes f7-push-current-to-next { + from { + transform: translateX(0%); + } + to { + transform: translateX(-100%); + } +} +@keyframes f7-push-current-to-prev { + from { + transform: translateX(0%); + } + to { + transform: translateX(100%); + } +} +@keyframes f7-push-prev-to-current { + from { + transform: translateX(100%); + } + to { + transform: translateX(0%); + } +} +/* === Link === */ +:root { + --f7-link-highlight-black: rgba(0, 0, 0, 0.1); + --f7-link-highlight-white: rgba(255, 255, 255, 0.15); + --f7-link-highlight-color: var(--f7-link-highlight-black); +} +.theme-dark { + --f7-link-highlight-color: var(--f7-link-highlight-white); +} +.link, +.tab-link { + display: inline-flex; + align-items: center; + align-content: center; + justify-content: center; + position: relative; + box-sizing: border-box; + z-index: 1; +} +.link i + span, +.link i + i, +.link span + i, +.link span + span { + margin-right: 4px; +} +.ios .link { + transition: opacity 300ms; +} +.ios .link.active-state { + opacity: 0.3; + transition-duration: 0ms; +} +.aurora .link { + transition: opacity 300ms; +} +.aurora .link.active-state { + opacity: 0.3; + transition-duration: 0ms; +} +/* === Navbar === */ +:root { + /* + --f7-navbar-bg-color: var(--f7-bars-bg-color); + --f7-navbar-bg-color-rgb: var(--f7-bars-bg-color-rgb); + --f7-navbar-bg-image: var(--f7-bars-bg-image); + --f7-navbar-border-color: var(--f7-bars-border-color); + --f7-navbar-link-color: var(--f7-bars-link-color); + --f7-navbar-text-color: var(--f7-bars-text-color); + */ + --f7-navbar-hide-show-transition-duration: 400ms; + --f7-navbar-title-line-height: 1.2; + --f7-navbar-title-font-size: inherit; + --f7-navbar-subtitle-text-align: inherit; + --f7-navbar-large-title-line-height: 1.2; + --f7-navbar-large-title-text-color: inherit; + --f7-navbar-large-title-padding-left: 16px; + --f7-navbar-large-title-padding-right: 16px; +} +.ios { + --f7-navbar-height: 44px; + --f7-navbar-tablet-height: 44px; + --f7-navbar-font-size: 17px; + --f7-navbar-inner-padding-left: 8px; + --f7-navbar-inner-padding-right: 8px; + --f7-navbar-title-font-weight: 600; + --f7-navbar-title-margin-left: 0; + --f7-navbar-title-margin-right: 0; + --f7-navbar-title-text-align: center; + --f7-navbar-subtitle-font-size: 10px; + --f7-navbar-subtitle-line-height: 1; + --f7-navbar-shadow-image: none; + --f7-navbar-large-title-height: 52px; + --f7-navbar-large-title-font-size: 34px; + --f7-navbar-large-title-font-weight: 700; + --f7-navbar-large-title-letter-spacing: -0.03em; + --f7-navbar-large-title-padding-vertical: 6px; + /* + --f7-navbar-link-height: var(--f7-navbar-height); + --f7-navbar-link-line-height: var(--f7-navbar-height); + */ + --f7-navbar-subtitle-text-color: rgba(0, 0, 0, 0.55); +} +.ios .theme-dark, +.ios.theme-dark { + --f7-navbar-subtitle-text-color: rgba(255, 255, 255, 0.55); +} +.md { + --f7-navbar-height: 56px; + --f7-navbar-tablet-height: 64px; + --f7-navbar-font-size: 20px; + --f7-navbar-inner-padding-left: 0px; + --f7-navbar-inner-padding-right: 0px; + --f7-navbar-title-font-weight: 500; + --f7-navbar-title-margin-left: 16px; + --f7-navbar-title-margin-right: 16px; + --f7-navbar-title-text-align: left; + --f7-navbar-subtitle-font-size: 14px; + --f7-navbar-subtitle-line-height: 1.2; + --f7-navbar-shadow-image: var(--f7-bars-shadow-bottom-image); + --f7-navbar-large-title-font-size: 34px; + --f7-navbar-large-title-height: 56px; + --f7-navbar-large-title-font-weight: 500; + --f7-navbar-large-title-letter-spacing: 0; + --f7-navbar-large-title-padding-vertical: 8px; + /* + --f7-navbar-link-height: var(--f7-navbar-height); + --f7-navbar-link-line-height: var(--f7-navbar-height); + */ + --f7-navbar-subtitle-text-color: rgba(0, 0, 0, 0.85); +} +.md .theme-dark, +.md.theme-dark { + --f7-navbar-subtitle-text-color: rgba(255, 255, 255, 0.85); +} +.aurora { + --f7-navbar-height: 38px; + --f7-navbar-tablet-height: 38px; + --f7-navbar-font-size: 14px; + --f7-navbar-inner-padding-left: 16px; + --f7-navbar-inner-padding-right: 16px; + --f7-navbar-title-font-weight: 600; + --f7-navbar-title-margin-left: 0; + --f7-navbar-title-margin-right: 0; + --f7-navbar-title-text-align: center; + --f7-navbar-subtitle-font-size: 12px; + --f7-navbar-subtitle-line-height: 1; + --f7-navbar-shadow-image: none; + --f7-navbar-large-title-height: 38px; + --f7-navbar-large-title-font-size: 26px; + --f7-navbar-large-title-font-weight: bold; + --f7-navbar-large-title-letter-spacing: -0.03em; + --f7-navbar-large-title-padding-vertical: 4px; + --f7-navbar-link-height: auto; + --f7-navbar-link-line-height: inherit; + --f7-navbar-subtitle-text-color: rgba(0, 0, 0, 0.6); +} +.aurora .theme-dark, +.aurora.theme-dark { + --f7-navbar-subtitle-text-color: rgba(255, 255, 255, 0.5); +} +.navbars, +.navbar { + z-index: 500; + left: 0; + top: 0; + width: 100%; +} +.navbars { + position: absolute; +} +.navbars .navbar { + z-index: auto; +} +.navbar { + --f7-navbar-large-collapse-progress: 0; + position: relative; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + box-sizing: border-box; + margin: 0; + height: calc(var(--f7-navbar-height) + var(--f7-safe-area-top)); + color: var(--f7-navbar-text-color, var(--f7-bars-text-color)); + font-size: var(--f7-navbar-font-size); +} +.navbar.stacked { + display: none; +} +.navbar b { + font-weight: 500; +} +.navbar a { + color: var(--f7-navbar-link-color, var(--f7-bars-link-color, var(--f7-theme-color))); +} +.navbar a.link { + display: flex; + justify-content: flex-start; + line-height: var(--f7-navbar-link-line-height, var(--f7-navbar-height)); + height: var(--f7-navbar-link-height, var(--f7-navbar-height)); +} +.navbar .title, +.navbar .left, +.navbar .right { + position: relative; + z-index: 10; +} +.navbar .title { + position: relative; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + flex-shrink: 10; + font-weight: var(--f7-navbar-title-font-weight); + display: inline-block; + line-height: var(--f7-navbar-title-line-height); + text-align: var(--f7-navbar-title-text-align); + font-size: var(--f7-navbar-title-font-size); + margin-right: var(--f7-navbar-title-margin-left); + margin-left: var(--f7-navbar-title-margin-left); +} +.navbar .subtitle { + display: block; + color: var(--f7-navbar-subtitle-text-color); + font-weight: normal; + font-size: var(--f7-navbar-subtitle-font-size); + line-height: var(--f7-navbar-subtitle-line-height); + text-align: var(--f7-navbar-subtitle-text-align); +} +.navbar .left, +.navbar .right { + flex-shrink: 0; + display: flex; + justify-content: flex-start; + align-items: center; +} +.navbar .right:first-child { + position: absolute; + height: 100%; +} +.navbar.no-hairline .navbar-bg:after, +.navbar.no-border .navbar-bg:after, +.navbar .no-hairline .navbar-bg:after, +.navbar .no-border .navbar-bg:after { + display: none !important; +} +.navbar.no-hairline .title-large:after, +.navbar.no-border .title-large:after, +.navbar .no-hairline .title-large:after, +.navbar .no-border .title-large:after { + display: none !important; +} +.navbar.no-shadow .navbar-bg:before, +.navbar .no-shadow .navbar-bg:before { + display: none !important; +} +.navbar.navbar-hidden .navbar-bg:before, +.navbar-hidden .navbar .navbar-bg:before { + opacity: 0 !important; +} +.navbar-bg { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + pointer-events: none; + z-index: 0; + background: var(--f7-navbar-bg-color); + background-image: var(--f7-navbar-bg-image, var(--f7-bars-bg-image)); + background-color: var(--f7-navbar-bg-color, var(--f7-bars-bg-color)); + transition-property: transform; +} +@supports ((-webkit-backdrop-filter: blur(20px)) or (backdrop-filter: blur(20px))) { + .ios-translucent-bars .navbar-bg { + background-color: rgba(var(--f7-navbar-bg-color-rgb, var(--f7-bars-bg-color-rgb)), var(--f7-bars-translucent-opacity)); + -webkit-backdrop-filter: saturate(180%) blur(var(--f7-bars-translucent-blur)); + backdrop-filter: saturate(180%) blur(var(--f7-bars-translucent-blur)); + } +} +.navbar-bg:after, +.navbar-bg:before { + -webkit-backface-visibility: hidden; + backface-visibility: hidden; +} +.navbar-bg:after { + content: ''; + position: absolute; + background-color: var(--f7-navbar-border-color, var(--f7-bars-border-color)); + display: block; + z-index: 15; + top: auto; + right: auto; + bottom: 0; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 100%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +.navbar-bg:before { + content: ''; + position: absolute; + right: 0; + width: 100%; + top: 100%; + bottom: auto; + height: 8px; + pointer-events: none; + background: var(--f7-navbar-shadow-image); +} +.navbar-bg:after { + z-index: 1; +} +@media (min-width: 768px) and (min-height: 600px) { + :root { + --f7-navbar-height: var(--f7-navbar-tablet-height); + } +} +.navbar-transitioning, +.navbar-transitioning .left, +.navbar-transitioning .title, +.navbar-transitioning .right, +.navbar-transitioning .title-large-text, +.navbar-transitioning .navbar-bg, +.navbar-transitioning .subnavbar, +.navbar-transitioning .navbar-bg:before { + transition-duration: var(--f7-navbar-hide-show-transition-duration); +} +.navbar-page-transitioning { + transition-duration: var(--f7-page-swipeback-transition-duration) !important; +} +.navbar-page-transitioning .title-large-text, +.navbar-page-transitioning .navbar-bg { + transition-duration: var(--f7-page-swipeback-transition-duration) !important; +} +.navbar-hidden { + transform: translate3d(0, calc(-1 * var(--f7-navbar-height)), 0); +} +.navbar-hidden .navbar-inner { + pointer-events: none; +} +.navbar-hidden .navbar-inner > .left, +.navbar-hidden .navbar-inner > .title, +.navbar-hidden .navbar-inner > .right { + opacity: 0 !important; +} +.navbar-hidden .subnavbar { + pointer-events: auto; +} +.navbar-hidden-statusbar { + transform: translate3d(0, calc(-1 * var(--f7-navbar-height) - var(--f7-safe-area-top)), 0); +} +.navbar-large-hidden .navbar-large { + --f7-navbar-large-collapse-progress: 1; +} +.navbar-inner { + position: absolute; + left: 0; + bottom: 0; + width: 100%; + height: 100%; + display: flex; + align-items: center; + box-sizing: border-box; + padding: var(--f7-safe-area-top) calc(var(--f7-navbar-inner-padding-right) + var(--f7-safe-area-right)) 0 calc(var(--f7-navbar-inner-padding-left) + var(--f7-safe-area-left)); + transform: translate3d(0, 0, 0); + z-index: 10; +} +.views > .navbar, +.view > .navbar, +.page > .navbar, +.navbars > .navbar { + position: absolute; +} +.navbar-transparent:not(.navbar-large):not(.navbar-transparent-visible):not(.with-searchbar-expandable-enabled) .navbar-bg, +.navbar-transparent:not(.navbar-large):not(.navbar-transparent-visible):not(.with-searchbar-expandable-enabled) .title { + opacity: 0; +} +.navbar-large .navbar-bg { + height: calc(100% + var(--f7-navbar-large-title-height)); + transform: translate3d(0px, calc(-1 * var(--f7-navbar-large-collapse-progress) * var(--f7-navbar-large-title-height)), 0); +} +.navbar-large-transparent .navbar-bg, +.navbar-large.navbar-transparent .navbar-bg { + opacity: var(--f7-navbar-large-collapse-progress); + height: 100%; + transform: none; +} +.ios .router-navbar-transition-to-large .navbar-bg, +.ios .router-navbar-transition-from-large .navbar-bg, +.navbar-bg.ios-swipeback-navbar-bg-large, +.navbar-large-transparent .navbar-bg.ios-swipeback-navbar-bg-large, +.navbar-large.navbar-transparent .navbar-bg.ios-swipeback-navbar-bg-large { + height: calc(100% + var(--f7-navbar-large-title-height)); + transform: translate3d(0px, calc(-1 * var(--f7-navbar-large-collapse-progress) * var(--f7-navbar-large-title-height)), 0); +} +.ios .navbar:not(.navbar-large) .navbar-bg { + --f7-navbar-large-collapse-progress: 1; +} +.navbar-large .title { + opacity: var(--f7-navbar-large-collapse-progress); +} +.navbar-large-collapsed { + --f7-navbar-large-collapse-progress: 1; +} +.navbar-large-collapsed .title-large { + pointer-events: none; +} +.navbar .title-large { + box-sizing: border-box; + position: absolute; + left: 0; + right: 0; + top: 100%; + display: flex; + align-items: flex-end; + white-space: nowrap; + overflow: hidden; + height: var(--f7-navbar-large-title-height); + z-index: 5; +} +.navbar .title-large-text { + text-overflow: ellipsis; + white-space: nowrap; + color: var(--f7-navbar-large-title-text-color); + letter-spacing: var(--f7-navbar-large-title-letter-spacing); + font-size: var(--f7-navbar-large-title-font-size); + font-weight: var(--f7-navbar-large-title-font-weight); + line-height: var(--f7-navbar-large-title-line-height); + padding-left: calc(var(--f7-navbar-large-title-padding-left) + var(--f7-safe-area-left)); + padding-right: calc(var(--f7-navbar-large-title-padding-right) + var(--f7-safe-area-right)); + padding-top: var(--f7-navbar-large-title-padding-vertical); + padding-bottom: var(--f7-navbar-large-title-padding-vertical); + box-sizing: border-box; + overflow: hidden; + width: 100%; + transform: translate3d(0px, calc(-1 * var(--f7-navbar-large-collapse-progress) * var(--f7-navbar-large-title-height)), 0); + transform-origin: calc(100% - var(--f7-navbar-large-title-padding-left) - var(--f7-safe-area-left)) center; +} +.navbar-no-title-large-transition .title-large-text { + transition-duration: 0ms; +} +.navbar ~ *, +.navbars ~ * { + --f7-page-navbar-offset: calc(var(--f7-navbar-height) + var(--f7-safe-area-top)); +} +.navbar ~ * .page-with-navbar-large, +.navbar ~ .page-with-navbar-large, +.navbars ~ * .page-with-navbar-large, +.navbars ~ .page-with-navbar-large, +.page-with-navbar-large .navbar ~ * { + --f7-page-navbar-offset: calc(var(--f7-navbar-height) + var(--f7-navbar-large-title-height) + var(--f7-safe-area-top)); +} +.page.no-navbar, +.page.no-navbar .navbar ~ * { + --f7-page-navbar-offset: var(--f7-safe-area-top); +} +.ios { + --f7-navbarLeftTextOffset: calc(4px + 12px + var(--f7-navbar-inner-padding-left)); + --f7-navbarTitleLargeOffset: var(--f7-navbar-large-title-padding-left); + --f7-navbar-large-transparent-bg-center: translateX(0); + --f7-navbar-large-bg-center-top: translateX(0) translateY(calc(-1 * var(--f7-navbar-large-title-height))); + --f7-navbar-large-bg-center-bottom: translateX(0) translateY(0); + --f7-navbar-large-transparent-bg-left: translateX(100%); + --f7-navbar-large-bg-left-top: translateX(100%) translateY(calc(-1 * var(--f7-navbar-large-title-height))); + --f7-navbar-large-bg-left-bottom: translateX(100%) translateY(0); + --f7-navbar-large-bg-right-top: translateX(-100%) translateY(calc(-1 * var(--f7-navbar-large-title-height))); + --f7-navbar-large-bg-right-bottom: translateX(-100%) translateY(0); +} +.ios .navbar a.icon-only { + width: 44px; + margin: 0; + justify-content: center; +} +.ios .navbar .left a + a, +.ios .navbar .right a + a { + margin-right: 16px; +} +.ios .navbar b { + font-weight: 600; +} +.ios .navbar .left { + margin-left: 10px; +} +.ios .navbar .right { + margin-right: 10px; +} +.ios .navbar .right:first-child { + left: calc(8px + var(--f7-safe-area-left)); +} +.ios .navbar-inner { + justify-content: space-between; +} +.ios .navbar-inner-left-title { + justify-content: flex-start; +} +.ios .navbar-inner-left-title .right { + margin-right: auto; +} +.ios .navbar-inner-left-title .title { + text-align: left; + margin-left: 10px; +} +.ios .view-master-detail .navbar-previous:not(.navbar-master) .left, +.ios .view:not(.view-master-detail) .navbar-previous .left, +.ios .navbar-next .left, +.ios .view-master-detail .navbar-previous:not(.navbar-master) .title, +.ios .view:not(.view-master-detail) .navbar-previous .title, +.ios .navbar-next .title, +.ios .view-master-detail .navbar-previous:not(.navbar-master) .right, +.ios .view:not(.view-master-detail) .navbar-previous .right, +.ios .navbar-next .right, +.ios .view-master-detail .navbar-previous:not(.navbar-master) .subnavbar, +.ios .view:not(.view-master-detail) .navbar-previous .subnavbar, +.ios .navbar-next .subnavbar, +.ios .view-master-detail .navbar-previous:not(.navbar-master) .fading, +.ios .view:not(.view-master-detail) .navbar-previous .fading, +.ios .navbar-next .fading { + opacity: 0; +} +.ios .view-master-detail .navbar-previous:not(.navbar-master), +.ios .view:not(.view-master-detail) .navbar-previous { + pointer-events: none; +} +.ios .view-master-detail .navbar-previous:not(.navbar-master) .title-large, +.ios .view:not(.view-master-detail) .navbar-previous .title-large { + opacity: 0; + transition-duration: 0ms; +} +.ios .view-master-detail .navbar-previous:not(.navbar-master) .title-large .title-large-text, +.ios .view:not(.view-master-detail) .navbar-previous .title-large .title-large-text { + transform: scale(0.5); + transition-duration: 0ms; +} +.ios .view-master-detail .navbar-previous:not(.navbar-master) .subnavbar.sliding, +.ios .view:not(.view-master-detail) .navbar-previous .subnavbar.sliding, +.ios .view-master-detail .navbar-previous:not(.navbar-master) .sliding .subnavbar, +.ios .view:not(.view-master-detail) .navbar-previous .sliding .subnavbar { + opacity: 1; + transform: translate3d(100%, 0, 0); +} +.ios .view:not(.view-master-detail) .navbar-previous .navbar-bg, +.ios .view-master-detail .navbar-previous:not(.navbar-master) .navbar-bg { + transform: translateX(-100%); +} +.ios .navbar-next { + pointer-events: none; +} +.ios .navbar-next .navbar-bg { + transform: translateX(-100%); +} +.ios .navbar-next .title-large .title-large-text { + transition-duration: 0ms; + transform: translateX(-100%) translateY(calc(-1 * var(--f7-navbar-large-title-height))); +} +.ios .navbar-next .subnavbar.sliding, +.ios .navbar-next .sliding .subnavbar { + opacity: 1; + transform: translate3d(-100%, 0, 0); +} +.ios .router-transition .navbar, +.ios .router-transition .navbar-bg { + transition-duration: var(--f7-page-transition-duration); +} +.ios .router-transition .navbar-bg { + animation-duration: var(--f7-page-transition-duration); + animation-fill-mode: forwards; +} +.ios .router-transition .title-large, +.ios .router-transition .title-large-text { + transition-duration: 0ms; +} +.ios .router-transition .navbar-current .left, +.ios .router-transition .navbar-current .title, +.ios .router-transition .navbar-current .right, +.ios .router-transition .navbar-current .subnavbar { + animation: ios-navbar-element-fade-out var(--f7-page-transition-duration) forwards; +} +.ios .router-transition .navbar-current .sliding.left, +.ios .router-transition .navbar-current .sliding.left .icon + span, +.ios .router-transition .navbar-current .sliding.title, +.ios .router-transition .navbar-current .sliding.right, +.ios .router-transition .navbar-current .sliding .left, +.ios .router-transition .navbar-current .sliding .left .icon + span, +.ios .router-transition .navbar-current .sliding .title, +.ios .router-transition .navbar-current .sliding .right { + transition-duration: var(--f7-page-transition-duration); + opacity: 0 !important; + animation: none; +} +.ios .router-transition .navbar-current .sliding .subnavbar, +.ios .router-transition .navbar-current .sliding.subnavbar { + transition-duration: var(--f7-page-transition-duration); + animation: none; + opacity: 1; +} +.ios .router-transition-forward .navbar-next .left, +.ios .router-transition-backward .navbar-previous .left, +.ios .router-transition-forward .navbar-next .title, +.ios .router-transition-backward .navbar-previous .title, +.ios .router-transition-forward .navbar-next .right, +.ios .router-transition-backward .navbar-previous .right, +.ios .router-transition-forward .navbar-next .subnavbar, +.ios .router-transition-backward .navbar-previous .subnavbar { + animation: ios-navbar-element-fade-in var(--f7-page-transition-duration) forwards; +} +.ios .router-transition-forward .navbar-next .sliding.left, +.ios .router-transition-backward .navbar-previous .sliding.left, +.ios .router-transition-forward .navbar-next .sliding.left .icon + span, +.ios .router-transition-backward .navbar-previous .sliding.left .icon + span, +.ios .router-transition-forward .navbar-next .sliding.title, +.ios .router-transition-backward .navbar-previous .sliding.title, +.ios .router-transition-forward .navbar-next .sliding.right, +.ios .router-transition-backward .navbar-previous .sliding.right, +.ios .router-transition-forward .navbar-next .sliding .left, +.ios .router-transition-backward .navbar-previous .sliding .left, +.ios .router-transition-forward .navbar-next .sliding .left .icon + span, +.ios .router-transition-backward .navbar-previous .sliding .left .icon + span, +.ios .router-transition-forward .navbar-next .sliding .title, +.ios .router-transition-backward .navbar-previous .sliding .title, +.ios .router-transition-forward .navbar-next .sliding .right, +.ios .router-transition-backward .navbar-previous .sliding .right, +.ios .router-transition-forward .navbar-next .sliding .subnavbar, +.ios .router-transition-backward .navbar-previous .sliding .subnavbar { + transition-duration: var(--f7-page-transition-duration); + animation: none; + transform: translate3d(0, 0, 0) !important; + opacity: 1 !important; +} +.ios .router-transition-forward .navbar-next.navbar-transparent:not(.navbar-large):not(.navbar-transparent-visible) .title, +.ios .router-transition-backward .navbar-previous.navbar-transparent:not(.navbar-large):not(.navbar-transparent-visible) .title { + animation: none; +} +.ios .router-transition-forward .navbar-next.navbar-transparent:not(.navbar-large):not(.navbar-transparent-visible) .sliding.title, +.ios .router-transition-backward .navbar-previous.navbar-transparent:not(.navbar-large):not(.navbar-transparent-visible) .sliding.title, +.ios .router-transition-forward .navbar-next.navbar-transparent:not(.navbar-large):not(.navbar-transparent-visible) .sliding .title, +.ios .router-transition-backward .navbar-previous.navbar-transparent:not(.navbar-large):not(.navbar-transparent-visible) .sliding .title { + opacity: 0 !important; +} +.ios .router-transition-backward .navbar-previous.with-searchbar-expandable-enabled-no-transition .left, +.ios .router-transition-backward .navbar-previous.with-searchbar-expandable-enabled .left, +.ios .router-transition-backward .navbar-previous.with-searchbar-expandable-enabled-no-transition .title, +.ios .router-transition-backward .navbar-previous.with-searchbar-expandable-enabled .title, +.ios .router-transition-backward .navbar-previous.with-searchbar-expandable-enabled-no-transition .right, +.ios .router-transition-backward .navbar-previous.with-searchbar-expandable-enabled .right, +.ios .router-transition-backward .navbar-previous.with-searchbar-expandable-enabled-no-transition .subnavbar, +.ios .router-transition-backward .navbar-previous.with-searchbar-expandable-enabled .subnavbar { + animation: none; +} +.ios .router-transition-forward .navbar-current.router-navbar-transition-from-large.router-navbar-transition-to-large .title-large, +.ios .router-transition-forward .navbar-current.router-navbar-transition-from-large:not(.router-navbar-transition-to-large) .title-large { + overflow: visible; +} +.ios .router-transition-forward .navbar-current.router-navbar-transition-from-large.router-navbar-transition-to-large .title-large .title-large-text, +.ios .router-transition-forward .navbar-current.router-navbar-transition-from-large:not(.router-navbar-transition-to-large) .title-large .title-large-text { + animation: ios-navbar-large-title-text-slide-up var(--f7-page-transition-duration) forwards, ios-navbar-large-title-text-fade-out var(--f7-page-transition-duration) forwards; +} +.ios .router-transition-forward .navbar-next.router-navbar-transition-from-large .left .back span { + animation: ios-navbar-back-text-next-to-current var(--f7-page-transition-duration) forwards; + transition: none; + transform-origin: right center; +} +.ios .router-transition-forward .navbar-next.router-navbar-transition-from-large.router-navbar-transition-to-large .title-large { + overflow: visible; +} +.ios .router-transition-forward .navbar-next.router-navbar-transition-from-large.router-navbar-transition-to-large .title-large .title-large-text { + animation: ios-navbar-large-title-text-slide-left var(--f7-page-transition-duration) forwards; +} +.ios .router-transition-forward .navbar-next.router-navbar-transition-to-large:not(.router-navbar-transition-from-large) .title-large .title-large-text { + animation: ios-navbar-large-title-text-slide-left var(--f7-page-transition-duration) forwards; +} +.ios .router-transition-forward .navbar-next.navbar-large:not(.navbar-large-collapsed) .title, +.ios .router-transition-forward .navbar-current.navbar-large:not(.navbar-large-collapsed) .title { + animation: none; + opacity: 0 !important; + transition-duration: 0; +} +.ios .router-transition-backward .navbar-current.router-navbar-transition-to-large .left .back span { + animation: ios-navbar-back-text-current-to-previous var(--f7-page-transition-duration) forwards; + transition: none; + transform-origin: right center; +} +.ios .router-transition-backward .navbar-current.router-navbar-transition-from-large.router-navbar-transition-to-large .title-large { + overflow: visible; +} +.ios .router-transition-backward .navbar-current.router-navbar-transition-from-large.router-navbar-transition-to-large .title-large .title-large-text { + animation: ios-navbar-large-title-text-slide-right var(--f7-page-transition-duration) forwards; +} +.ios .router-transition-backward .navbar-current.router-navbar-transition-from-large:not(.router-navbar-transition-to-large) .title-large .title-large-text { + animation: ios-navbar-large-title-text-slide-right var(--f7-page-transition-duration) forwards; +} +.ios .router-transition-backward .navbar-current.router-navbar-transition-to-large:not(.router-navbar-transition-from-large) .title-large { + opacity: 0; +} +.ios .router-transition-backward .navbar-previous.router-navbar-transition-from-large.router-navbar-transition-to-large .title-large, +.ios .router-transition-backward .navbar-previous.router-navbar-transition-to-large:not(.router-navbar-transition-from-large) .title-large { + overflow: visible; + opacity: 1; +} +.ios .router-transition-backward .navbar-previous.router-navbar-transition-from-large.router-navbar-transition-to-large .title-large .title-large-text, +.ios .router-transition-backward .navbar-previous.router-navbar-transition-to-large:not(.router-navbar-transition-from-large) .title-large .title-large-text { + animation: ios-navbar-large-title-text-slide-down var(--f7-page-transition-duration) forwards, ios-navbar-large-title-text-fade-in var(--f7-page-transition-duration) forwards; +} +.ios .router-transition-backward .navbar-current.navbar-large:not(.navbar-large-collapsed) .title, +.ios .router-transition-backward .navbar-previous.navbar-large:not(.navbar-large-collapsed) .title { + animation: none; + opacity: 0 !important; + transition-duration: 0; +} +.ios .router-transition-forward .navbar-current .navbar-bg { + animation-name: ios-navbar-bg-from-cb-to-lb; +} +.ios .router-transition-forward .navbar-current.router-navbar-transition-from-large.router-navbar-transition-to-large .navbar-bg { + animation-name: ios-navbar-bg-from-cb-to-lb; +} +.ios .router-transition-forward .navbar-current.router-navbar-transition-from-large:not(.router-navbar-transition-to-large) .navbar-bg { + animation-name: ios-navbar-bg-from-cb-to-lt; +} +.ios .router-transition-forward .navbar-current:not(.router-navbar-transition-from-large).router-navbar-transition-to-large .navbar-bg { + animation-name: ios-navbar-bg-from-ct-to-lb; +} +.ios .router-transition-forward .navbar-current.navbar-large-collapsed:not(.router-navbar-transition-to-large) .navbar-bg { + animation-name: ios-navbar-bg-from-ct-to-lt; +} +.ios .router-transition-forward .navbar-current.navbar-large-collapsed.navbar-large-transparent:not(.router-navbar-transition-to-large) .navbar-bg, +.ios .router-transition-forward .navbar-current.navbar-large-collapsed.navbar-large.navbar-transparent:not(.router-navbar-transition-to-large) .navbar-bg { + animation-name: ios-navbar-transparent-bg-from-c-to-l; +} +.ios .router-transition-forward .navbar-next .navbar-bg { + animation-name: ios-navbar-bg-from-rb-to-cb; +} +.ios .router-transition-forward .navbar-next.router-navbar-transition-from-large.router-navbar-transition-to-large .navbar-bg { + animation-name: ios-navbar-bg-from-rb-to-cb; +} +.ios .router-transition-forward .navbar-next.router-navbar-transition-from-large:not(.router-navbar-transition-to-large) .navbar-bg { + animation-name: ios-navbar-bg-from-rb-to-ct; +} +.ios .router-transition-forward .navbar-next:not(.router-navbar-transition-from-large).router-navbar-transition-to-large .navbar-bg { + animation-name: ios-navbar-bg-from-rt-to-cb; +} +.ios .router-transition-backward .navbar-current .navbar-bg { + animation-name: ios-navbar-bg-from-cb-to-rb; +} +.ios .router-transition-backward .navbar-current:not(.router-navbar-transition-from-large).router-navbar-transition-to-large .navbar-bg { + animation-name: ios-navbar-bg-from-ct-to-rb; +} +.ios .router-transition-backward .navbar-current.router-navbar-transition-from-large:not(.router-navbar-transition-to-large) .navbar-bg { + animation-name: ios-navbar-bg-from-cb-to-rt; +} +.ios .router-transition-backward .navbar-current.navbar-large-collapsed .navbar-bg { + animation-name: ios-navbar-bg-from-ct-to-rt; +} +.ios .router-transition-backward .navbar-current.navbar-large-collapsed.navbar-large-transparent .navbar-bg, +.ios .router-transition-backward .navbar-current.navbar-large-collapsed.navbar-large.navbar-transparent .navbar-bg { + animation-name: ios-navbar-bg-from-cb-to-rb; +} +.ios .router-transition-backward .navbar-current.navbar-large-collapsed.router-navbar-transition-to-large .navbar-bg { + animation-name: ios-navbar-bg-from-ct-to-rb; +} +.ios .router-transition-backward .navbar-previous .navbar-bg { + animation-name: ios-navbar-bg-from-lb-to-cb; +} +.ios .router-transition-backward .navbar-previous:not(.router-navbar-transition-from-large).router-navbar-transition-to-large .navbar-bg { + animation-name: ios-navbar-bg-from-lt-to-cb; +} +.ios .router-transition-backward .navbar-previous.router-navbar-transition-from-large:not(.router-navbar-transition-to-large) .navbar-bg { + animation-name: ios-navbar-bg-from-lb-to-ct; +} +.ios .router-transition-backward .navbar-previous.navbar-large-collapsed .navbar-bg { + animation-name: ios-navbar-bg-from-lt-to-ct; +} +.ios .router-transition-backward .navbar-previous.navbar-large-collapsed.navbar-large-transparent .navbar-bg, +.ios .router-transition-backward .navbar-previous.navbar-large-collapsed.navbar-large.navbar-transparent .navbar-bg { + animation-name: ios-navbar-transparent-bg-from-l-to-c; +} +.ios .router-transition-backward .navbar-previous.navbar-large-collapsed.navbar-large-transparent.router-navbar-transition-from-large .navbar-bg, +.ios .router-transition-backward .navbar-previous.navbar-large-collapsed.navbar-large.navbar-transparent.router-navbar-transition-from-large .navbar-bg { + animation-name: ios-navbar-bg-from-lb-to-ct; +} +.view-master-detail .navbars { + z-index: auto; +} +.view-master-detail .page-master { + z-index: 525; +} +.view-master-detail .navbar-master .navbar-inner, +.view-master-detail .navbar-master .navbar-bg { + z-index: 550; +} +.view-master-detail .navbar-master-detail .navbar-inner, +.view-master-detail .navbar-master-detail .navbar-bg { + z-index: 500; +} +.view-master-detail .navbar-master.navbar-previous { + pointer-events: auto; +} +.view-master-detail .navbar-master.navbar-previous .left, +.view-master-detail .navbar-master.navbar-previous:not(.navbar-large) .title, +.view-master-detail .navbar-master.navbar-previous .right, +.view-master-detail .navbar-master.navbar-previous .subnavbar { + opacity: 1; +} +.view-master-detail.router-transition .navbar-master .left, +.view-master-detail.router-transition .navbar-master .left .icon + span, +.view-master-detail.router-transition .navbar-master:not(.navbar-large) .title, +.view-master-detail.router-transition .navbar-master .right, +.view-master-detail.router-transition .navbar-master .subnavbar, +.view-master-detail.router-transition .navbar-master .fading { + opacity: 1 !important; + transition-duration: 0ms; + transform: none !important; + animation: none !important; +} +.view-master-detail.router-transition .navbar-master .navbar-bg { + transition-duration: 0ms; + animation: none !important; +} +.view-master-detail.router-transition .navbar-master.navbar-large .title { + opacity: calc(-1 + 2 * var(--f7-navbar-large-collapse-progress)) !important; + transition-duration: 0ms; + transform: none !important; + animation: none !important; +} +.view-master-detail.router-transition .navbar-master.navbar-large .title-large, +.view-master-detail.router-transition .navbar-master.navbar-large .title-large-text { + transition-duration: 0ms; + animation: none !important; +} +.view-master-detail.router-transition .navbar-master.navbar-large-transparent .navbar-bg, +.view-master-detail.router-transition .navbar-master.navbar-large.navbar-transparent .navbar-bg { + height: 100% !important; + opacity: var(--f7-navbar-large-collapse-progress) !important; +} +@keyframes ios-navbar-element-fade-in { + 0% { + opacity: 0; + } + 25% { + opacity: 0; + } + to { + opacity: 1; + } +} +@keyframes ios-navbar-element-fade-out { + from { + opacity: 1; + } + 75% { + opacity: 0; + } + to { + opacity: 0; + } +} +@keyframes ios-navbar-large-title-text-slide-up { + 0% { + transform: translateX(0px) translateY(0%) scale(1); + } + 100% { + transform: translateX(calc(-1 * (var(--f7-navbarLeftTextOffset) - var(--f7-navbarTitleLargeOffset)))) translateY(calc(-1 * var(--f7-navbar-large-title-height) + var(--f7-navbar-large-title-padding-vertical))) scale(0.5); + } +} +@keyframes ios-navbar-large-title-text-slide-down { + 0% { + transform: translateX(calc(-1 * (var(--f7-navbarLeftTextOffset) - var(--f7-navbarTitleLargeOffset)))) translateY(calc(-1 * var(--f7-navbar-large-title-height) + var(--f7-navbar-large-title-padding-vertical) / 2)) scale(0.5); + } + 100% { + transform: translateX(0px) translateY(0%) scale(1); + } +} +@keyframes ios-navbar-large-title-text-slide-left { + 0% { + transform: translateX(-100%); + } + 100% { + transform: translateX(0%); + } +} +@keyframes ios-navbar-large-title-text-slide-right { + 0% { + transform: translateX(0%); + } + 100% { + transform: translateX(-100%); + } +} +@keyframes ios-navbar-large-title-text-fade-out { + 0% { + opacity: 1; + } + 80% { + opacity: 0; + } + 100% { + opacity: 0; + } +} +@keyframes ios-navbar-large-title-text-fade-in { + 0% { + opacity: 0; + } + 20% { + opacity: 0; + } + 100% { + opacity: 1; + } +} +@keyframes ios-navbar-back-text-current-to-previous { + 0% { + opacity: 1; + transform: translateY(0px) translateX(0px) scale(1); + } + 80% { + opacity: 0; + } + 100% { + opacity: 0; + transform: translateX(calc(-1 * (var(--f7-navbarTitleLargeOffset) - var(--f7-navbarLeftTextOffset)))) translateY(calc(1 * var(--f7-navbar-large-title-height) - var(--f7-navbar-large-title-padding-vertical) / 2)) scale(2); + } +} +@keyframes ios-navbar-back-text-next-to-current { + 0% { + opacity: 0; + transform: translateX(calc(-1 * (var(--f7-navbarTitleLargeOffset) - var(--f7-navbarLeftTextOffset)))) translateY(calc(1 * var(--f7-navbar-large-title-height) + var(--f7-navbar-large-title-padding-vertical) / 2)) scale(2); + } + 20% { + opacity: 0; + } + 100% { + opacity: 1; + transform: translateX(0px) translateY(0px) scale(1); + } +} +@keyframes ios-navbar-bg-from-cb-to-lb { + from { + transform: var(--f7-navbar-large-bg-center-bottom); + } + to { + transform: var(--f7-navbar-large-bg-left-bottom); + } +} +@keyframes ios-navbar-bg-from-cb-to-lt { + from { + transform: var(--f7-navbar-large-bg-center-bottom); + } + to { + transform: var(--f7-navbar-large-bg-left-top); + } +} +@keyframes ios-navbar-bg-from-ct-to-lb { + from { + transform: var(--f7-navbar-large-bg-center-top); + } + to { + transform: var(--f7-navbar-large-bg-left-bottom); + } +} +@keyframes ios-navbar-bg-from-ct-to-lt { + from { + transform: var(--f7-navbar-large-bg-center-top); + } + to { + transform: var(--f7-navbar-large-bg-left-top); + } +} +@keyframes ios-navbar-bg-from-rb-to-cb { + from { + transform: var(--f7-navbar-large-bg-right-bottom); + } + to { + transform: var(--f7-navbar-large-bg-center-bottom); + } +} +@keyframes ios-navbar-bg-from-rb-to-ct { + from { + transform: var(--f7-navbar-large-bg-right-bottom); + } + to { + transform: var(--f7-navbar-large-bg-center-top); + } +} +@keyframes ios-navbar-bg-from-rt-to-cb { + from { + transform: var(--f7-navbar-large-bg-right-top); + } + to { + transform: var(--f7-navbar-large-bg-center-bottom); + } +} +@keyframes ios-navbar-bg-from-cb-to-rb { + from { + transform: var(--f7-navbar-large-bg-center-bottom); + } + to { + transform: var(--f7-navbar-large-bg-right-bottom); + } +} +@keyframes ios-navbar-bg-from-ct-to-rb { + from { + transform: var(--f7-navbar-large-bg-center-top); + } + to { + transform: var(--f7-navbar-large-bg-right-bottom); + } +} +@keyframes ios-navbar-bg-from-cb-to-rt { + from { + transform: var(--f7-navbar-large-bg-center-bottom); + } + to { + transform: var(--f7-navbar-large-bg-right-top); + } +} +@keyframes ios-navbar-bg-from-ct-to-rt { + from { + transform: var(--f7-navbar-large-bg-center-top); + } + to { + transform: var(--f7-navbar-large-bg-right-top); + } +} +@keyframes ios-navbar-bg-from-lb-to-cb { + from { + transform: var(--f7-navbar-large-bg-left-bottom); + } + to { + transform: var(--f7-navbar-large-bg-center-bottom); + } +} +@keyframes ios-navbar-bg-from-lt-to-cb { + from { + transform: var(--f7-navbar-large-bg-left-top); + } + to { + transform: var(--f7-navbar-large-bg-center-bottom); + } +} +@keyframes ios-navbar-bg-from-lb-to-ct { + from { + transform: var(--f7-navbar-large-bg-left-bottom); + } + to { + transform: var(--f7-navbar-large-bg-center-top); + } +} +@keyframes ios-navbar-bg-from-lt-to-ct { + from { + transform: var(--f7-navbar-large-bg-left-top); + } + to { + transform: var(--f7-navbar-large-bg-center-top); + } +} +@keyframes ios-navbar-transparent-bg-from-l-to-c { + from { + transform: var(--f7-navbar-large-transparent-bg-left); + } + to { + transform: var(--f7-navbar-large-transparent-bg-center); + } +} +@keyframes ios-navbar-transparent-bg-from-c-to-l { + from { + transform: var(--f7-navbar-large-transparent-bg-center); + } + to { + transform: var(--f7-navbar-large-transparent-bg-left); + } +} +.md .navbar a.link { + padding: 0 16px; + min-width: 48px; +} +.md .navbar a.link:before { + content: ''; + width: 152%; + height: 152%; + position: absolute; + left: -26%; + top: -26%; + background-image: radial-gradient(circle at center, var(--f7-link-highlight-color) 66%, rgba(255, 255, 255, 0) 66%); + background-repeat: no-repeat; + background-position: center; + background-size: 100% 100%; + opacity: 0; + pointer-events: none; + transition-duration: 600ms; +} +.md .navbar a.link.active-state:before { + opacity: 1; + transition-duration: 150ms; +} +.md .navbar a.icon-only { + min-width: 0; + flex-shrink: 0; + width: 56px; +} +.md .navbar .right { + margin-right: auto; +} +.md .navbar .right:first-child { + left: var(--f7-safe-area-left); +} +.md .navbar-inner { + justify-content: flex-start; + overflow: hidden; +} +.md .navbar-large:not(.navbar-large-collapsed) .navbar-inner { + overflow: visible; +} +.md .page.page-with-subnavbar .navbar-inner { + overflow: visible; +} +.md .navbar-inner-centered-title { + justify-content: space-between; +} +.md .navbar-inner-centered-title .right { + margin-right: 0; +} +.md .navbar-inner-centered-title .title { + text-align: center; +} +.aurora .navbar a.icon-only { + margin: 0; + justify-content: center; +} +.aurora .navbar .left a + a, +.aurora .navbar .right a + a { + margin-right: 10px; +} +.aurora .navbar b { + font-weight: bold; +} +.aurora .navbar .left { + margin-left: 10px; +} +.aurora .navbar .right { + margin-right: 10px; +} +.aurora .navbar .right:first-child { + left: calc(16px + var(--f7-safe-area-left)); +} +.aurora .navbar-inner { + justify-content: space-between; +} +.aurora .navbar-inner-left-title { + justify-content: flex-start; +} +.aurora .navbar-inner-left-title .right { + margin-right: auto; +} +.aurora .navbar-inner-left-title .title { + text-align: left; + margin-left: 10px; +} +/* === Toolbar === */ +:root { + /* + --f7-toolbar-bg-color: var(--f7-bars-bg-color); + --f7-toolbar-bg-color-rgb: var(--f7-bars-bg-color-rgb); + --f7-toolbar-bg-image: var(--f7-bars-bg-image); + --f7-toolbar-border-color: var(--f7-bars-border-color); + --f7-toolbar-link-color: var(--f7-bars-link-color); + --f7-toolbar-text-color: var(--f7-bars-text-color); + --f7-tabbar-link-active-color: var(--f7-theme-color); + */ + --f7-tabbar-link-active-bg-color: transparent; + --f7-tabbar-label-text-transform: none; + --f7-toolbar-hide-show-transition-duration: 400ms; +} +.ios { + --f7-toolbar-height: 44px; + --f7-toolbar-font-size: 17px; + --f7-toolbar-inner-padding-left: 8px; + --f7-toolbar-inner-padding-right: 8px; + /* + --f7-toolbar-link-height: var(--f7-toolbar-height); + --f7-toolbar-link-line-height: var(--f7-toolbar-height); + */ + --f7-tabbar-labels-height: 50px; + --f7-tabbar-labels-tablet-height: 50px; + --f7-toolbar-top-shadow-image: none; + --f7-toolbar-bottom-shadow-image: none; + --f7-tabbar-icon-size: 28px; + --f7-tabbar-link-text-transform: none; + --f7-tabbar-link-font-weight: 400; + --f7-tabbar-link-letter-spacing: 0; + --f7-tabbar-label-font-size: 12px; + --f7-tabbar-label-tablet-font-size: 14px; + --f7-tabbar-label-font-weight: 500; + --f7-tabbar-label-letter-spacing: 0.01; + --f7-tabbar-link-inactive-color: rgba(0, 0, 0, 0.4); +} +.ios .theme-dark, +.ios.theme-dark { + --f7-tabbar-link-inactive-color: rgba(255, 255, 255, 0.54); +} +.md { + --f7-toolbar-height: 48px; + --f7-toolbar-font-size: 14px; + --f7-toolbar-inner-padding-left: 0px; + --f7-toolbar-inner-padding-right: 0px; + /* + --f7-toolbar-link-height: var(--f7-toolbar-height); + --f7-toolbar-link-line-height: var(--f7-toolbar-height); + */ + --f7-tabbar-labels-height: 56px; + --f7-tabbar-labels-tablet-height: 56px; + /* + --f7-tabbar-link-active-border-color: var(--f7-theme-color); + */ + --f7-toolbar-top-shadow-image: var(--f7-bars-shadow-bottom-image); + --f7-toolbar-bottom-shadow-image: var(--f7-bars-shadow-top-image); + --f7-tabbar-icon-size: 24px; + --f7-tabbar-link-text-transform: uppercase; + --f7-tabbar-link-font-weight: 500; + --f7-tabbar-link-letter-spacing: 0.03em; + --f7-tabbar-label-font-size: 14px; + --f7-tabbar-label-tablet-font-size: 14px; + --f7-tabbar-label-font-weight: 400; + --f7-tabbar-label-letter-spacing: 0; + --f7-tabbar-link-inactive-color: rgba(0, 0, 0, 0.54); +} +.md .theme-dark, +.md.theme-dark { + --f7-tabbar-link-inactive-color: rgba(255, 255, 255, 0.54); +} +.aurora { + --f7-toolbar-height: 38px; + --f7-toolbar-font-size: 14px; + --f7-toolbar-inner-padding-left: 16px; + --f7-toolbar-inner-padding-right: 16px; + --f7-toolbar-link-height: auto; + --f7-toolbar-link-line-height: inherit; + --f7-tabbar-labels-height: 44px; + --f7-tabbar-labels-tablet-height: 44px; + --f7-tabbar-link-inactive-bg-color: rgba(0, 0, 0, 0.2); + --f7-toolbar-top-shadow-image: none; + --f7-toolbar-bottom-shadow-image: none; + --f7-tabbar-icon-size: 18px; + --f7-tabbar-link-text-transform: none; + --f7-tabbar-link-font-weight: 400; + --f7-tabbar-link-letter-spacing: 0; + --f7-tabbar-label-font-size: 12px; + --f7-tabbar-label-tablet-font-size: 12px; + --f7-tabbar-label-font-weight: 500; + --f7-tabbar-label-letter-spacing: 0.01; + --f7-tabbar-link-inactive-color: rgba(0, 0, 0, 0.5); +} +.aurora .theme-dark, +.aurora.theme-dark { + --f7-tabbar-link-inactive-color: rgba(255, 255, 255, 0.5); +} +.toolbar { + width: 100%; + position: relative; + margin: 0; + transform: translate3d(0, 0, 0); + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + z-index: 600; + box-sizing: border-box; + left: 0; + height: var(--f7-toolbar-height); + background-image: var(--f7-toolbar-bg-image, var(--f7-bars-bg-image)); + background-color: var(--f7-toolbar-bg-color, var(--f7-bars-bg-color)); + color: var(--f7-toolbar-text-color, var(--f7-bars-text-color)); + font-size: var(--f7-toolbar-font-size); +} +@supports ((-webkit-backdrop-filter: blur(20px)) or (backdrop-filter: blur(20px))) { + .ios-translucent-bars .toolbar { + background-color: rgba(var(--f7-toolbar-bg-color-rgb, var(--f7-bars-bg-color-rgb)), var(--f7-bars-translucent-opacity)); + -webkit-backdrop-filter: saturate(180%) blur(var(--f7-bars-translucent-blur)); + backdrop-filter: saturate(180%) blur(var(--f7-bars-translucent-blur)); + } +} +.toolbar b { + font-weight: 600; +} +.toolbar a { + color: var(--f7-toolbar-link-color, var(--f7-bars-link-color, var(--f7-theme-color))); + box-sizing: border-box; + flex-shrink: 1; + position: relative; + white-space: nowrap; + text-overflow: ellipsis; +} +.toolbar .link { + display: flex; + line-height: var(--f7-toolbar-link-line-height, var(--f7-toolbar-height)); + height: var(--f7-toolbar-link-height, var(--f7-toolbar-height)); +} +.toolbar i.icon { + display: block; +} +.toolbar:after, +.toolbar:before { + -webkit-backface-visibility: hidden; + backface-visibility: hidden; +} +.views > .toolbar, +.view > .toolbar, +.page > .toolbar { + position: absolute; +} +.toolbar-top, +.ios .toolbar-top-ios, +.md .toolbar-top-md, +.aurora .toolbar-top-aurora { + top: 0; +} +.toolbar-top .tab-link-highlight, +.ios .toolbar-top-ios .tab-link-highlight, +.md .toolbar-top-md .tab-link-highlight, +.aurora .toolbar-top-aurora .tab-link-highlight { + bottom: 0; +} +.toolbar-top.no-hairline:after, +.ios .toolbar-top-ios.no-hairline:after, +.md .toolbar-top-md.no-hairline:after, +.aurora .toolbar-top-aurora.no-hairline:after, +.toolbar-top.no-border:after, +.ios .toolbar-top-ios.no-border:after, +.md .toolbar-top-md.no-border:after, +.aurora .toolbar-top-aurora.no-border:after { + display: none !important; +} +.toolbar-top.no-shadow:before, +.ios .toolbar-top-ios.no-shadow:before, +.md .toolbar-top-md.no-shadow:before, +.aurora .toolbar-top-aurora.no-shadow:before, +.toolbar-top.toolbar-hidden:before, +.ios .toolbar-top-ios.toolbar-hidden:before, +.md .toolbar-top-md.toolbar-hidden:before, +.aurora .toolbar-top-aurora.toolbar-hidden:before { + display: none !important; +} +.toolbar-top:after, +.ios .toolbar-top-ios:after, +.md .toolbar-top-md:after, +.aurora .toolbar-top-aurora:after, +.toolbar-top:before, +.ios .toolbar-top-ios:before, +.md .toolbar-top-md:before, +.aurora .toolbar-top-aurora:before { + -webkit-backface-visibility: hidden; + backface-visibility: hidden; +} +.toolbar-top:after, +.ios .toolbar-top-ios:after, +.md .toolbar-top-md:after, +.aurora .toolbar-top-aurora:after { + content: ''; + position: absolute; + background-color: var(--f7-toolbar-border-color, var(--f7-bars-border-color)); + display: block; + z-index: 15; + top: auto; + right: auto; + bottom: 0; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 100%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +.toolbar-top:before, +.ios .toolbar-top-ios:before, +.md .toolbar-top-md:before, +.aurora .toolbar-top-aurora:before { + content: ''; + position: absolute; + right: 0; + width: 100%; + top: 100%; + bottom: auto; + height: 8px; + pointer-events: none; + background: var(--f7-toolbar-top-shadow-image); +} +.toolbar-bottom, +.ios .toolbar-bottom-ios, +.md .toolbar-bottom-md, +.aurora .toolbar-bottom-aurora { + bottom: 0; + height: calc(var(--f7-toolbar-height) + var(--f7-safe-area-bottom)); +} +.toolbar-bottom .tab-link-highlight, +.ios .toolbar-bottom-ios .tab-link-highlight, +.md .toolbar-bottom-md .tab-link-highlight, +.aurora .toolbar-bottom-aurora .tab-link-highlight { + top: 0; +} +.toolbar-bottom .toolbar-inner, +.ios .toolbar-bottom-ios .toolbar-inner, +.md .toolbar-bottom-md .toolbar-inner, +.aurora .toolbar-bottom-aurora .toolbar-inner { + height: auto; + top: 0; + bottom: var(--f7-safe-area-bottom); +} +.toolbar-bottom.no-hairline:before, +.ios .toolbar-bottom-ios.no-hairline:before, +.md .toolbar-bottom-md.no-hairline:before, +.aurora .toolbar-bottom-aurora.no-hairline:before, +.toolbar-bottom.no-border:before, +.ios .toolbar-bottom-ios.no-border:before, +.md .toolbar-bottom-md.no-border:before, +.aurora .toolbar-bottom-aurora.no-border:before { + display: none !important; +} +.toolbar-bottom.no-shadow:after, +.ios .toolbar-bottom-ios.no-shadow:after, +.md .toolbar-bottom-md.no-shadow:after, +.aurora .toolbar-bottom-aurora.no-shadow:after, +.toolbar-bottom.toolbar-hidden:after, +.ios .toolbar-bottom-ios.toolbar-hidden:after, +.md .toolbar-bottom-md.toolbar-hidden:after, +.aurora .toolbar-bottom-aurora.toolbar-hidden:after { + display: none !important; +} +.toolbar-bottom:before, +.ios .toolbar-bottom-ios:before, +.md .toolbar-bottom-md:before, +.aurora .toolbar-bottom-aurora:before { + content: ''; + position: absolute; + background-color: var(--f7-toolbar-border-color, var(--f7-bars-border-color)); + display: block; + z-index: 15; + top: 0; + right: auto; + bottom: auto; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 0%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +.toolbar-bottom:after, +.ios .toolbar-bottom-ios:after, +.md .toolbar-bottom-md:after, +.aurora .toolbar-bottom-aurora:after { + content: ''; + position: absolute; + right: 0; + width: 100%; + bottom: 100%; + height: 8px; + top: auto; + pointer-events: none; + background: var(--f7-toolbar-bottom-shadow-image); + transform: translate3d(0, 0, 0); +} +.toolbar-inner { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + display: flex; + justify-content: space-between; + box-sizing: border-box; + align-items: center; + align-content: center; + overflow: hidden; + padding: 0 calc(var(--f7-toolbar-inner-padding-right) + var(--f7-safe-area-right)) 0 calc(var(--f7-toolbar-inner-padding-left) + var(--f7-safe-area-left)); +} +.views > .tabbar, +.views > .tabbar-labels { + z-index: 5001; +} +.tabbar a, +.tabbar-labels a { + color: var(--f7-tabbar-link-inactive-color); +} +.tabbar .tab-link:not(.tab-link-active), +.tabbar-labels .tab-link:not(.tab-link-active) { + background-color: var(--f7-tabbar-link-inactive-bg-color, transparent); +} +.tabbar .link, +.tabbar-labels .link { + line-height: 1.4; +} +.tabbar .tab-link, +.tabbar-labels .tab-link, +.tabbar .link, +.tabbar-labels .link { + height: 100%; + width: 100%; + box-sizing: border-box; + display: flex; + justify-content: center; + align-items: center; + flex-direction: column; + text-transform: var(--f7-tabbar-link-text-transform); + font-weight: var(--f7-tabbar-link-font-weight); + letter-spacing: var(--f7-tabbar-link-letter-spacing); + overflow: hidden; +} +.tabbar .tab-link-active, +.tabbar-labels .tab-link-active { + color: var(--f7-tabbar-link-active-color, var(--f7-theme-color)); + background-color: var(--f7-tabbar-link-active-bg-color, transparent); +} +.tabbar i.icon, +.tabbar-labels i.icon { + font-size: var(--f7-tabbar-icon-size); + height: var(--f7-tabbar-icon-size); + line-height: var(--f7-tabbar-icon-size); +} +.tabbar-labels { + --f7-toolbar-height: var(--f7-tabbar-labels-height); +} +.tabbar-labels .tab-link, +.tabbar-labels .link { + height: 100%; + justify-content: space-between; + align-items: center; +} +.tabbar-labels .tabbar-label { + display: block; + line-height: 1; + margin: 0; + position: relative; + text-overflow: ellipsis; + white-space: nowrap; + font-size: var(--f7-tabbar-label-font-size); + text-transform: var(--f7-tabbar-label-text-transform); + font-weight: var(--f7-tabbar-label-font-weight); + letter-spacing: var(--f7-tabbar-label-letter-spacing); +} +@media (min-width: 768px) and (min-height: 600px) { + :root { + --f7-tabbar-labels-height: var(--f7-tabbar-labels-tablet-height); + --f7-tabbar-label-font-size: var(--f7-tabbar-label-tablet-font-size); + } +} +.tabbar-scrollable .toolbar-inner { + justify-content: flex-start; + overflow: auto; + -webkit-overflow-scrolling: touch; +} +.tabbar-scrollable .toolbar-inner::-webkit-scrollbar { + display: none !important; + width: 0 !important; + height: 0 !important; + -webkit-appearance: none; + opacity: 0 !important; +} +.tabbar-scrollable .tab-link, +.tabbar-scrollable .link { + width: auto; + flex-shrink: 0; +} +.toolbar-transitioning, +.navbar-transitioning + .toolbar, +.navbar-transitioning ~ * .toolbar { + transition-duration: var(--f7-toolbar-hide-show-transition-duration); +} +.toolbar-bottom ~ *, +.ios .toolbar-bottom-ios ~ *, +.md .toolbar-bottom-md ~ *, +.aurora .toolbar-bottom-aurora ~ * { + --f7-page-toolbar-bottom-offset: var(--f7-toolbar-height); +} +.toolbar-bottom.tabbar-labels ~ *, +.ios .toolbar-bottom-ios.tabbar-labels ~ *, +.md .toolbar-bottom-md.tabbar-labels ~ *, +.aurora .toolbar-bottom-aurora.tabbar-labels ~ * { + --f7-page-toolbar-bottom-offset: var(--f7-tabbar-labels-height); +} +.toolbar-bottom.toolbar-hidden, +.ios .toolbar-bottom-ios.toolbar-hidden, +.md .toolbar-bottom-md.toolbar-hidden, +.aurora .toolbar-bottom-aurora.toolbar-hidden { + transform: translate3d(0, 100%, 0); +} +.toolbar-top ~ *, +.ios .toolbar-top-ios ~ *, +.md .toolbar-top-md ~ *, +.aurora .toolbar-top-aurora ~ * { + --f7-page-toolbar-top-offset: var(--f7-toolbar-height); +} +.toolbar-top.tabbar-labels ~ *, +.ios .toolbar-top-ios.tabbar-labels ~ *, +.md .toolbar-top-md.tabbar-labels ~ *, +.aurora .toolbar-top-aurora.tabbar-labels ~ * { + --f7-page-toolbar-top-offset: var(--f7-tabbar-labels-height); +} +.toolbar-top.toolbar-hidden, +.ios .toolbar-top-ios.toolbar-hidden, +.md .toolbar-top-md.toolbar-hidden, +.aurora .toolbar-top-aurora.toolbar-hidden { + transform: translate3d(0, -100%, 0); +} +.navbar ~ .toolbar-top, +.navbars ~ .toolbar-top, +.ios .navbar ~ .toolbar-top-ios, +.ios .navbars ~ .toolbar-top-ios, +.md .navbar ~ .toolbar-top-md, +.aurora .navbar ~ .toolbar-top-aurora, +.navbar ~ * .toolbar-top, +.navbars ~ * .toolbar-top, +.ios .navbar ~ * .toolbar-top-ios, +.ios .navbars ~ * .toolbar-top-ios, +.md .navbar ~ * .toolbar-top-md, +.aurora .navbar ~ * .toolbar-top-aurora, +.navbar ~ .page:not(.no-navbar) .toolbar-top, +.navbars ~ .page:not(.no-navbar) .toolbar-top, +.ios .navbar ~ .page:not(.no-navbar) .toolbar-top-ios, +.ios .navbars ~ .page:not(.no-navbar) .toolbar-top-ios, +.md .navbar ~ .page:not(.no-navbar) .toolbar-top-md, +.aurora .navbar ~ .page:not(.no-navbar) .toolbar-top-aurora { + top: calc(var(--f7-navbar-height) + var(--f7-safe-area-top)); +} +.navbar ~ .toolbar-top.toolbar-hidden, +.navbars ~ .toolbar-top.toolbar-hidden, +.ios .navbar ~ .toolbar-top-ios.toolbar-hidden, +.ios .navbars ~ .toolbar-top-ios.toolbar-hidden, +.md .navbar ~ .toolbar-top-md.toolbar-hidden, +.aurora .navbar ~ .toolbar-top-aurora.toolbar-hidden, +.navbar ~ * .toolbar-top.toolbar-hidden, +.navbars ~ * .toolbar-top.toolbar-hidden, +.ios .navbar ~ * .toolbar-top-ios.toolbar-hidden, +.ios .navbars ~ * .toolbar-top-ios.toolbar-hidden, +.md .navbar ~ * .toolbar-top-md.toolbar-hidden, +.aurora .navbar ~ * .toolbar-top-aurora.toolbar-hidden, +.navbar ~ .page:not(.no-navbar) .toolbar-top.toolbar-hidden, +.navbars ~ .page:not(.no-navbar) .toolbar-top.toolbar-hidden, +.ios .navbar ~ .page:not(.no-navbar) .toolbar-top-ios.toolbar-hidden, +.ios .navbars ~ .page:not(.no-navbar) .toolbar-top-ios.toolbar-hidden, +.md .navbar ~ .page:not(.no-navbar) .toolbar-top-md.toolbar-hidden, +.aurora .navbar ~ .page:not(.no-navbar) .toolbar-top-aurora.toolbar-hidden { + transform: translate3d(0, calc(-1 * (var(--f7-navbar-height) + var(--f7-toolbar-height) + var(--f7-safe-area-top))), 0); +} +.navbar ~ .toolbar-top.toolbar-hidden.tabbar-labels, +.navbars ~ .toolbar-top.toolbar-hidden.tabbar-labels, +.ios .navbar ~ .toolbar-top-ios.toolbar-hidden.tabbar-labels, +.ios .navbars ~ .toolbar-top-ios.toolbar-hidden.tabbar-labels, +.md .navbar ~ .toolbar-top-md.toolbar-hidden.tabbar-labels, +.aurora .navbar ~ .toolbar-top-aurora.toolbar-hidden.tabbar-labels, +.navbar ~ * .toolbar-top.toolbar-hidden.tabbar-labels, +.navbars ~ * .toolbar-top.toolbar-hidden.tabbar-labels, +.ios .navbar ~ * .toolbar-top-ios.toolbar-hidden.tabbar-labels, +.ios .navbars ~ * .toolbar-top-ios.toolbar-hidden.tabbar-labels, +.md .navbar ~ * .toolbar-top-md.toolbar-hidden.tabbar-labels, +.aurora .navbar ~ * .toolbar-top-aurora.toolbar-hidden.tabbar-labels, +.navbar ~ .page:not(.no-navbar) .toolbar-top.toolbar-hidden.tabbar-labels, +.navbars ~ .page:not(.no-navbar) .toolbar-top.toolbar-hidden.tabbar-labels, +.ios .navbar ~ .page:not(.no-navbar) .toolbar-top-ios.toolbar-hidden.tabbar-labels, +.ios .navbars ~ .page:not(.no-navbar) .toolbar-top-ios.toolbar-hidden.tabbar-labels, +.md .navbar ~ .page:not(.no-navbar) .toolbar-top-md.toolbar-hidden.tabbar-labels, +.aurora .navbar ~ .page:not(.no-navbar) .toolbar-top-aurora.toolbar-hidden.tabbar-labels { + transform: translate3d(0, calc(-1 * (var(--f7-navbar-height) + var(--f7-tabbar-labels-height) + var(--f7-safe-area-top))), 0); +} +.navbar-hidden + .toolbar-top:not(.toolbar-hidden), +.ios .navbar-hidden + .toolbar-top-ios:not(.toolbar-hidden), +.md .navbar-hidden + .toolbar-top-md:not(.toolbar-hidden), +.aurora .navbar-hidden + .toolbar-top-aurora:not(.toolbar-hidden), +.navbar-hidden ~ * .toolbar-top:not(.toolbar-hidden), +.ios .navbar-hidden ~ * .toolbar-top-ios:not(.toolbar-hidden), +.md .navbar-hidden ~ * .toolbar-top-md:not(.toolbar-hidden), +.aurora .navbar-hidden ~ * .toolbar-top-aurora:not(.toolbar-hidden) { + transform: translate3d(0, calc(0px - var(--f7-navbar-height)), 0); +} +.navbar-large-hidden + .toolbar-top:not(.toolbar-hidden), +.ios .navbar-large-hidden + .toolbar-top-ios:not(.toolbar-hidden), +.md .navbar-large-hidden + .toolbar-top-md:not(.toolbar-hidden), +.navbar-large-hidden ~ * .toolbar-top:not(.toolbar-hidden), +.ios .navbar-large-hidden ~ * .toolbar-top-ios:not(.toolbar-hidden), +.md .navbar-large-hidden ~ * .toolbar-top-md:not(.toolbar-hidden), +.aurora .navbar-large-hidden ~ * .toolbar-top-aurora:not(.toolbar-hidden) { + transform: translate3d(0, calc(0px - var(--f7-navbar-height) - var(--f7-navbar-large-title-height)), 0); +} +.ios .toolbar a.icon-only { + min-height: var(--f7-toolbar-height); + display: flex; + justify-content: center; + align-items: center; + margin: 0; + min-width: 44px; +} +.ios .tabbar-labels .tab-link, +.ios .tabbar-labels .link { + padding-top: 4px; + padding-bottom: 4px; +} +.ios .tabbar-labels .tab-link i + span, +.ios .tabbar-labels .link i + span { + margin: 0; +} +@media (min-width: 768px) and (min-height: 600px) { + .ios .tabbar .tab-link, + .ios .tabbar-labels .tab-link, + .ios .tabbar .link, + .ios .tabbar-labels .link { + justify-content: center; + flex-direction: row; + } + .ios .tabbar .tab-link i + span, + .ios .tabbar-labels .tab-link i + span, + .ios .tabbar .link i + span, + .ios .tabbar-labels .link i + span { + margin-left: 5px; + } +} +.ios .tabbar-scrollable .toolbar-inner { + justify-content: flex-start; +} +.ios .tabbar-scrollable .tab-link, +.ios .tabbar-scrollable .link { + padding: 0 8px; +} +.md .toolbar .link { + justify-content: center; + padding: 0 16px; + min-width: 48px; +} +.md .toolbar .link:before { + content: ''; + width: 152%; + height: 152%; + position: absolute; + left: -26%; + top: -26%; + background-image: radial-gradient(circle at center, var(--f7-link-highlight-color) 66%, rgba(255, 255, 255, 0) 66%); + background-repeat: no-repeat; + background-position: center; + background-size: 100% 100%; + opacity: 0; + pointer-events: none; + transition-duration: 600ms; +} +.md .toolbar .link.active-state:before { + opacity: 1; + transition-duration: 150ms; +} +.md .toolbar a.icon-only { + min-width: 0; + flex-shrink: 0; +} +.md .tabbar .tab-link, +.md .tabbar-labels .tab-link, +.md .tabbar .link, +.md .tabbar-labels .link { + padding-left: 0; + padding-right: 0; +} +.md .tabbar a.icon-only, +.md .tabbar-labels a.icon-only { + flex-shrink: initial; +} +.md .tabbar .tab-link, +.md .tabbar-labels .tab-link { + transition-duration: 300ms; + overflow: hidden; + position: relative; +} +.md .tabbar .tab-link-highlight, +.md .tabbar-labels .tab-link-highlight { + position: absolute; + left: 0; + height: 2px; + background: var(--f7-tabbar-link-active-border-color, var(--f7-theme-color)); + transition-duration: 300ms; + right: 0; +} +.md .tabbar-labels .tab-link, +.md .tabbar-labels .link { + padding-top: 7px; + padding-bottom: 7px; +} +.md .tabbar-label { + max-width: 100%; + overflow: hidden; + line-height: 1.2; +} +.md .tabbar-scrollable .toolbar-inner { + overflow: auto; +} +.md .tabbar-scrollable .tab-link, +.md .tabbar-scrollable .link { + padding: 0 16px; +} +.aurora .toolbar a.icon-only { + min-height: var(--f7-toolbar-height); + display: flex; + justify-content: center; + align-items: center; + margin: 0; +} +.aurora .tabbar .toolbar-inner, +.aurora .tabbar-labels .toolbar-inner { + padding-left: 0; + padding-right: 0; +} +.aurora .tabbar .tab-link, +.aurora .tabbar-labels .tab-link, +.aurora .tabbar .link, +.aurora .tabbar-labels .link { + transition-duration: 200ms; +} +.aurora .tabbar-labels .tab-link, +.aurora .tabbar-labels .link { + padding-top: 5px; + padding-bottom: 5px; +} +.aurora .tabbar-labels .tab-link i + span, +.aurora .tabbar-labels .link i + span { + margin: 0; +} +.aurora .tabbar-scrollable .toolbar-inner { + justify-content: flex-start; +} +.aurora .tabbar-scrollable .tab-link, +.aurora .tabbar-scrollable .link { + padding: 0 16px; +} +/* === Subnavbar === */ +:root { + /* + --f7-subnavbar-bg-image: var(--f7-bars-bg-image); + --f7-subnavbar-bg-color: var(--f7-bars-bg-color); + --f7-subnavbar-bg-color-rgb: var(--f7-bars-bg-color-rgb); + --f7-subnavbar-border-color: var(--f7-bars-border-color); + --f7-subnavbar-link-color: var(--f7-bars-link-color); + --f7-subnavbar-text-color: var(--f7-bars-text-color); + */ + --f7-subnavbar-title-line-height: 1.2; +} +.ios { + --f7-subnavbar-height: 44px; + --f7-subnavbar-inner-padding-left: 8px; + --f7-subnavbar-inner-padding-right: 8px; + --f7-subnavbar-title-font-size: 34px; + --f7-subnavbar-title-font-weight: 700; + --f7-subnavbar-title-letter-spacing: -0.03em; + --f7-subnavbar-title-margin-left: 8px; + --f7-subnavbar-shadow-image: none; + /* + --f7-subnavbar-link-height: var(--f7-subnavbar-height); + --f7-subnavbar-link-line-height: var(--f7-subnavbar-height); + */ +} +.md { + --f7-subnavbar-height: 48px; + --f7-subnavbar-inner-padding-left: 16px; + --f7-subnavbar-inner-padding-right: 16px; + --f7-subnavbar-title-font-size: 20px; + --f7-subnavbar-title-font-weight: 500; + --f7-subnavbar-title-letter-spacing: 0; + --f7-subnavbar-title-margin-left: 0px; + --f7-subnavbar-shadow-image: var(--f7-bars-shadow-bottom-image); + /* + --f7-subnavbar-link-height: var(--f7-subnavbar-height); + --f7-subnavbar-link-line-height: var(--f7-subnavbar-height); + */ +} +.aurora { + --f7-subnavbar-height: 38px; + --f7-subnavbar-inner-padding-left: 16px; + --f7-subnavbar-inner-padding-right: 16px; + --f7-subnavbar-title-font-size: 26px; + --f7-subnavbar-title-font-weight: bold; + --f7-subnavbar-title-letter-spacing: -0.03em; + --f7-subnavbar-title-margin-left: 0px; + --f7-subnavbar-shadow-image: none; + --f7-subnavbar-link-height: auto; + --f7-subnavbar-link-line-height: inherit; +} +.subnavbar { + width: 100%; + position: absolute; + left: 0; + top: 0; + z-index: 600; + box-sizing: border-box; + display: flex; + justify-content: space-between; + align-items: center; + background-image: var(--f7-subnavbar-bg-image, var(--f7-bars-bg-image)); + background-color: var(--f7-subnavbar-bg-color, var(--f7-bars-bg-color)); + color: var(--f7-subnavbar-text-color, var(--f7-bars-text-color)); +} +@supports ((-webkit-backdrop-filter: blur(20px)) or (backdrop-filter: blur(20px))) { + .ios-translucent-bars .subnavbar { + background-color: rgba(var(--f7-subnavbar-bg-color-rgb, var(--f7-bars-bg-color-rgb)), var(--f7-bars-translucent-opacity)); + -webkit-backdrop-filter: saturate(180%) blur(var(--f7-bars-translucent-blur)); + backdrop-filter: saturate(180%) blur(var(--f7-bars-translucent-blur)); + } +} +.subnavbar .subnavbar-title { + position: relative; + overflow: hidden; + text-overflow: ellpsis; + white-space: nowrap; + font-size: var(--f7-subnavbar-title-font-size); + font-weight: var(--f7-subnavbar-title-font-weight); + text-align: left; + display: inline-block; + line-height: var(--f7-subnavbar-title-line-height); + letter-spacing: var(--f7-subnavbar-title-letter-spacing); + margin-right: var(--f7-subnavbar-title-margin-left); +} +.subnavbar .left, +.subnavbar .right { + flex-shrink: 0; + display: flex; + justify-content: flex-start; + align-items: center; +} +.subnavbar .right:first-child { + position: absolute; + height: 100%; +} +.subnavbar a { + color: var(--f7-subnavbar-link-color, var(--f7-bars-link-color, var(--f7-theme-color))); +} +.subnavbar a.link { + line-height: var(--f7-subnavbar-link-line-height, var(--f7-subnavbar-height)); + height: var(--f7-subnavbar-link-height, var(--f7-subnavbar-height)); +} +.subnavbar a.icon-only { + min-width: var(--f7-subnavbar-height); +} +.subnavbar.no-hairline:after, +.subnavbar.no-border:after { + display: none !important; +} +.subnavbar.no-shadow:before, +.subnavbar.navbar-hidden:before { + display: none !important; +} +.subnavbar:after, +.subnavbar:before { + -webkit-backface-visibility: hidden; + backface-visibility: hidden; +} +.subnavbar:after { + content: ''; + position: absolute; + background-color: var(--f7-subnavbar-border-color, var(--f7-bars-border-color)); + display: block; + z-index: 15; + top: auto; + right: auto; + bottom: 0; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 100%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +.subnavbar:before { + content: ''; + position: absolute; + right: 0; + width: 100%; + top: 100%; + bottom: auto; + height: 8px; + pointer-events: none; + background: var(--f7-subnavbar-shadow-image); +} +.subnavbar-inner { + width: 100%; + height: 100%; + display: flex; + align-items: center; + box-sizing: border-box; + justify-content: space-between; + overflow: hidden; + padding: 0 calc(var(--f7-subnavbar-inner-padding-left) + var(--f7-safe-area-right)) 0 calc(var(--f7-subnavbar-inner-padding-right) + var(--f7-safe-area-left)); +} +.subnavbar-inner.stacked { + display: none; +} +.navbar .subnavbar { + top: 100%; +} +.views > .subnavbar, +.view > .subnavbar, +.page > .subnavbar { + position: absolute; +} +.navbar ~ * .subnavbar, +.navbars ~ * .subnavbar, +.page-with-subnavbar .navbar ~ .subnavbar, +.page-with-subnavbar .navbar ~ * .subnavbar, +.navbar ~ .page-with-subnavbar:not(.no-navbar) .subnavbar, +.navbar ~ .subnavbar, +.navbars ~ .page-with-subnavbar:not(.no-navbar) .subnavbar, +.navbars ~ .subnavbar { + top: calc(var(--f7-navbar-height) + var(--f7-safe-area-top)); +} +.navbar ~ .page-with-navbar-large:not(.no-navbar) .subnavbar, +.navbars ~ .page-with-navbar-large:not(.no-navbar) .subnavbar, +.page-with-subnavbar.page-with-navbar-large .navbar ~ .subnavbar, +.page-with-subnavbar.page-with-navbar-large .navbar ~ * .subnavbar, +.navbar .title-large ~ .subnavbar { + top: calc(var(--f7-navbar-height) + var(--f7-navbar-large-title-height) + var(--f7-safe-area-top)); + transform: translate3d(0, calc(-1 * var(--f7-navbar-large-collapse-progress) * var(--f7-navbar-large-title-height)), 0); +} +.page-with-subnavbar, +.subnavbar ~ * { + --f7-page-subnavbar-offset: var(--f7-subnavbar-height); +} +.ios .subnavbar { + height: calc(var(--f7-subnavbar-height) + 1px); + margin-top: -1px; + padding-top: 1px; +} +.ios .subnavbar .title { + align-self: flex-start; + flex-shrink: 10; +} +.ios .subnavbar .left a + a, +.ios .subnavbar .right a + a { + margin-right: 16px; +} +.ios .subnavbar .left { + margin-left: 10px; +} +.ios .subnavbar .right { + margin-right: 10px; +} +.ios .subnavbar .right:first-child { + left: 8px; +} +.ios .subnavbar a.link { + justify-content: flex-start; +} +.ios .subnavbar a.icon-only { + justify-content: center; + margin: 0; +} +.md .subnavbar { + height: var(--f7-subnavbar-height); +} +.md .subnavbar .right { + margin-right: auto; +} +.md .subnavbar .right:first-child { + left: 16px; +} +.md .subnavbar a.link { + justify-content: center; + padding: 0 16px; +} +.md .subnavbar a.link:before { + content: ''; + width: 152%; + height: 152%; + position: absolute; + left: -26%; + top: -26%; + background-image: radial-gradient(circle at center, var(--f7-link-highlight-color) 66%, rgba(255, 255, 255, 0) 66%); + background-repeat: no-repeat; + background-position: center; + background-size: 100% 100%; + opacity: 0; + pointer-events: none; + transition-duration: 600ms; +} +.md .subnavbar a.link.active-state:before { + opacity: 1; + transition-duration: 150ms; +} +.md .subnavbar a.icon-only { + flex-shrink: 0; +} +.md .subnavbar-inner > a.link:first-child { + margin-right: calc(-1 * var(--f7-subnavbar-inner-padding-right)); +} +.md .subnavbar-inner > a.link:last-child { + margin-left: calc(-1 * var(--f7-subnavbar-inner-padding-left)); +} +.aurora .subnavbar { + height: calc(var(--f7-subnavbar-height) + 1px); + margin-top: -1px; + padding-top: 1px; +} +.aurora .subnavbar .title { + align-self: flex-start; + flex-shrink: 10; +} +.aurora .subnavbar .left a + a, +.aurora .subnavbar .right a + a { + margin-right: 10px; +} +.aurora .subnavbar .left { + margin-left: 10px; +} +.aurora .subnavbar .right { + margin-right: 10px; +} +.aurora .subnavbar .right:first-child { + left: 16px; +} +.aurora .subnavbar a.link { + justify-content: flex-start; +} +.aurora .subnavbar a.icon-only { + justify-content: center; + margin: 0; +} +/* === Content Block === */ +:root { + --f7-block-padding-horizontal: 16px; + --f7-block-padding-vertical: 16px; + --f7-block-font-size: inherit; + --f7-block-text-color: inherit; + --f7-block-header-margin: 10px; + --f7-block-footer-margin: 10px; + --f7-block-header-font-size: 14px; + --f7-block-footer-font-size: 14px; + --f7-block-title-text-transform: none; + --f7-block-title-white-space: nowrap; + --f7-block-title-medium-text-transform: none; + --f7-block-title-large-text-transform: none; + --f7-block-inset-side-margin: 16px; + --f7-block-title-medium-text-color: #000; + --f7-block-title-large-text-color: #000; + --f7-block-strong-bg-color: #fff; +} +:root .theme-dark, +:root.theme-dark { + --f7-block-title-text-color: #fff; + --f7-block-strong-border-color: rgba(255, 255, 255, 0.15); + --f7-block-title-medium-text-color: #fff; + --f7-block-title-large-text-color: #fff; + --f7-block-strong-bg-color: #1c1c1d; +} +.ios { + --f7-block-margin-vertical: 35px; + --f7-block-strong-border-color: rgba(0, 0, 0, 0.22); + --f7-block-title-text-color: #000; + --f7-block-title-font-size: 16px; + --f7-block-title-font-weight: 600; + --f7-block-title-line-height: 20px; + --f7-block-title-margin-bottom: 10px; + --f7-block-title-medium-font-size: 22px; + --f7-block-title-medium-font-weight: bold; + --f7-block-title-medium-line-height: 1.4; + --f7-block-title-large-font-size: 30px; + --f7-block-title-large-font-weight: bold; + --f7-block-title-large-line-height: 1.3; + --f7-block-inset-border-radius: 8px; + --f7-block-strong-text-color: #000; + --f7-block-header-text-color: rgba(0, 0, 0, 0.45); + --f7-block-footer-text-color: rgba(0, 0, 0, 0.45); +} +.ios .theme-dark, +.ios.theme-dark { + --f7-block-header-text-color: rgba(255, 255, 255, 0.55); + --f7-block-footer-text-color: rgba(255, 255, 255, 0.55); + --f7-block-strong-text-color: #fff; +} +.md { + --f7-block-margin-vertical: 32px; + --f7-block-strong-text-color: inherit; + --f7-block-strong-border-color: rgba(0, 0, 0, 0.12); + --f7-block-title-font-size: inherit; + --f7-block-title-text-color: rgba(0, 0, 0, 0.54); + --f7-block-title-font-weight: 500; + --f7-block-title-line-height: 16px; + --f7-block-title-margin-bottom: 16px; + --f7-block-title-medium-font-size: 24px; + --f7-block-title-medium-font-weight: 500; + --f7-block-title-medium-line-height: 1.3; + --f7-block-title-large-font-size: 34px; + --f7-block-title-large-font-weight: 500; + --f7-block-title-large-line-height: 1.2; + --f7-block-inset-border-radius: 4px; + --f7-block-header-text-color: rgba(0, 0, 0, 0.54); + --f7-block-footer-text-color: rgba(0, 0, 0, 0.54); +} +.md .theme-dark, +.md.theme-dark { + --f7-block-header-text-color: rgba(255, 255, 255, 0.54); + --f7-block-footer-text-color: rgba(255, 255, 255, 0.54); +} +.aurora { + --f7-block-margin-vertical: 15px; + --f7-block-strong-border-color: rgba(0, 0, 0, 0.12); + --f7-block-title-font-size: inherit; + --f7-block-title-text-color: rgba(0, 0, 0, 0.7); + --f7-block-title-font-weight: 600; + --f7-block-title-line-height: 1.5; + --f7-block-title-margin-bottom: 5px; + --f7-block-title-medium-font-size: 20px; + --f7-block-title-medium-font-weight: 600; + --f7-block-title-medium-line-height: 1.4; + --f7-block-title-large-font-size: 28px; + --f7-block-title-large-font-weight: bold; + --f7-block-title-large-line-height: 1.3; + --f7-block-inset-border-radius: 4px; + --f7-block-strong-text-color: inherit; + --f7-block-header-text-color: rgba(0, 0, 0, 0.6); + --f7-block-footer-text-color: rgba(0, 0, 0, 0.6); +} +.aurora .theme-dark, +.aurora.theme-dark { + --f7-block-header-text-color: rgba(255, 255, 255, 0.54); + --f7-block-footer-text-color: rgba(255, 255, 255, 0.54); + --f7-block-strong-text-color: #fff; +} +.block { + box-sizing: border-box; + position: relative; + z-index: 1; + color: var(--f7-block-text-color); + margin: var(--f7-block-margin-vertical) 0; + padding-top: 0; + padding-bottom: 0; + padding-left: calc(var(--f7-block-padding-horizontal) + var(--f7-safe-area-left)); + padding-right: calc(var(--f7-block-padding-horizontal) + var(--f7-safe-area-right)); + font-size: var(--f7-block-font-size); +} +.block.no-hairlines:before, +.block.no-hairlines ul:before, +.md .block.no-hairlines-md:before, +.md .block.no-hairlines-md ul:before, +.ios .block.no-hairlines-ios:before, +.ios .block.no-hairlines-ios ul:before, +.aurora .block.no-hairlines-aurora:before, +.aurora .block.no-hairlines-aurora ul:before, +.block.no-hairlines:after, +.block.no-hairlines ul:after, +.md .block.no-hairlines-md:after, +.md .block.no-hairlines-md ul:after, +.ios .block.no-hairlines-ios:after, +.ios .block.no-hairlines-ios ul:after, +.aurora .block.no-hairlines-aurora:after, +.aurora .block.no-hairlines-aurora ul:after { + display: none !important; +} +.block.no-hairline-top:before, +.block.no-hairline-top ul:before, +.md .block.no-hairline-top-md:before, +.md .block.no-hairline-top-md ul:before, +.ios .block.no-hairline-top-ios:before, +.ios .block.no-hairline-top-ios ul:before, +.aurora .block.no-hairline-top-aurora:before, +.aurora .block.no-hairline-top-aurora ul:before { + display: none !important; +} +.block.no-hairline-bottom:after, +.block.no-hairline-bottom ul:after, +.md .block.no-hairline-bottom-md:after, +.md .block.no-hairline-bottom-md ul:after, +.ios .block.no-hairline-bottom-ios:after, +.ios .block.no-hairline-bottom-ios ul:after, +.aurora .block.no-hairline-bottom-aurora:after, +.aurora .block.no-hairline-bottom-aurora ul:after { + display: none !important; +} +.block > h1:first-child, +.block > h2:first-child, +.block > h3:first-child, +.block > h4:first-child, +.block > p:first-child { + margin-top: 0; +} +.block > h1:last-child, +.block > h2:last-child, +.block > h3:last-child, +.block > h4:last-child, +.block > p:last-child { + margin-bottom: 0; +} +.block-strong { + color: var(--f7-block-strong-text-color); + padding-top: var(--f7-block-padding-vertical); + padding-bottom: var(--f7-block-padding-vertical); + background-color: var(--f7-block-strong-bg-color); +} +.block-strong:before { + content: ''; + position: absolute; + background-color: var(--f7-block-strong-border-color); + display: block; + z-index: 15; + top: 0; + right: auto; + bottom: auto; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 0%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +.block-strong:after { + content: ''; + position: absolute; + background-color: var(--f7-block-strong-border-color); + display: block; + z-index: 15; + top: auto; + right: auto; + bottom: 0; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 100%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +.block-title { + position: relative; + overflow: hidden; + margin: 0; + white-space: var(--f7-block-title-white-space); + text-overflow: ellipsis; + text-transform: var(--f7-block-title-text-transform); + color: var(--f7-block-title-text-color); + font-size: var(--f7-block-title-font-size, inherit); + font-weight: var(--f7-block-title-font-weight); + line-height: var(--f7-block-title-line-height); + margin-top: var(--f7-block-margin-vertical); + margin-bottom: var(--f7-block-title-margin-bottom); + margin-left: calc(var(--f7-block-padding-horizontal) + var(--f7-safe-area-left)); + margin-right: calc(var(--f7-block-padding-horizontal) + var(--f7-safe-area-right)); +} +.block-title + .list, +.block-title + .block, +.block-title + .card, +.block-title + .timeline, +.block-title + .block-header { + margin-top: 0px; +} +.block-title-medium { + font-size: var(--f7-block-title-medium-font-size); + text-transform: var(--f7-block-title-medium-text-transform); + color: var(--f7-block-title-medium-text-color); + font-weight: var(--f7-block-title-medium-font-weight); + line-height: var(--f7-block-title-medium-line-height); +} +.block-title-large { + font-size: var(--f7-block-title-large-font-size); + text-transform: var(--f7-block-title-large-text-transform); + color: var(--f7-block-title-large-text-color); + font-weight: var(--f7-block-title-large-font-weight); + line-height: var(--f7-block-title-large-line-height); +} +.block > .block-title:first-child, +.list > .block-title:first-child { + margin-top: 0; + margin-left: 0; + margin-right: 0; +} +.block-header { + color: var(--f7-block-header-text-color); + font-size: var(--f7-block-header-font-size); + margin-bottom: var(--f7-block-header-margin); + margin-top: var(--f7-block-margin-vertical); +} +.block-header + .list, +.block-header + .block, +.block-header + .card, +.block-header + .timeline { + margin-top: var(--f7-block-header-margin); +} +.block-footer { + color: var(--f7-block-footer-text-color); + font-size: var(--f7-block-footer-font-size); + margin-top: var(--f7-block-footer-margin); + margin-bottom: var(--f7-block-margin-vertical); +} +.block-footer, +.block-header { + padding-top: 0; + padding-bottom: 0; + padding-left: calc(var(--f7-block-padding-horizontal) + var(--f7-safe-area-left)); + padding-right: calc(var(--f7-block-padding-horizontal) + var(--f7-safe-area-right)); +} +.block-footer ul:first-child, +.block-header ul:first-child, +.block-footer p:first-child, +.block-header p:first-child, +.block-footer h1:first-child, +.block-header h1:first-child, +.block-footer h2:first-child, +.block-header h2:first-child, +.block-footer h3:first-child, +.block-header h3:first-child, +.block-footer h4:first-child, +.block-header h4:first-child { + margin-top: 0; +} +.block-footer ul:last-child, +.block-header ul:last-child, +.block-footer p:last-child, +.block-header p:last-child, +.block-footer h1:last-child, +.block-header h1:last-child, +.block-footer h2:last-child, +.block-header h2:last-child, +.block-footer h3:last-child, +.block-header h3:last-child, +.block-footer h4:last-child, +.block-header h4:last-child { + margin-bottom: 0; +} +.block-footer ul:first-child:last-child, +.block-header ul:first-child:last-child, +.block-footer p:first-child:last-child, +.block-header p:first-child:last-child, +.block-footer h1:first-child:last-child, +.block-header h1:first-child:last-child, +.block-footer h2:first-child:last-child, +.block-header h2:first-child:last-child, +.block-footer h3:first-child:last-child, +.block-header h3:first-child:last-child, +.block-footer h4:first-child:last-child, +.block-header h4:first-child:last-child { + margin-top: 0; + margin-bottom: 0; +} +.list .block-header, +.block .block-header, +.card .block-header, +.timeline .block-header { + margin-top: 0; +} +.list .block-footer, +.block .block-footer, +.card .block-footer, +.timeline .block-footer { + margin-bottom: 0; +} +.list + .block-footer, +.block + .block-footer, +.card + .block-footer, +.timeline + .block-footer { + margin-top: calc(-1 * (var(--f7-block-margin-vertical) - var(--f7-block-footer-margin))); +} +.block + .block-footer { + margin-top: calc(-1 * (var(--f7-block-margin-vertical) - var(--f7-block-footer-margin))); + margin-bottom: var(--f7-block-margin-vertical); +} +.block .block-header, +.block .block-footer { + padding: 0; +} +.block.inset { + border-radius: var(--f7-block-inset-border-radius); + margin-left: calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-left)); + margin-right: calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-right)); + --f7-safe-area-left: 0px; + --f7-safe-area-right: 0px; +} +.block-strong.inset:before, +.block-strong.inset:after { + display: none !important; +} +@media (min-width: 480px) { + .block.xsmall-inset { + border-radius: var(--f7-block-inset-border-radius); + margin-left: calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-left)); + margin-right: calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-right)); + --f7-safe-area-left: 0px; + --f7-safe-area-right: 0px; + } + .block-strong.xsmall-inset:before, + .block-strong.xsmall-inset:after { + display: none !important; + } +} +@media (min-width: 568px) { + .block.small-inset { + border-radius: var(--f7-block-inset-border-radius); + margin-left: calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-left)); + margin-right: calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-right)); + --f7-safe-area-left: 0px; + --f7-safe-area-right: 0px; + } + .block-strong.small-inset:before, + .block-strong.small-inset:after { + display: none !important; + } +} +@media (min-width: 768px) { + .block.medium-inset { + border-radius: var(--f7-block-inset-border-radius); + margin-left: calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-left)); + margin-right: calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-right)); + --f7-safe-area-left: 0px; + --f7-safe-area-right: 0px; + } + .block-strong.medium-inset:before, + .block-strong.medium-inset:after { + display: none !important; + } +} +@media (min-width: 1024px) { + .block.large-inset { + border-radius: var(--f7-block-inset-border-radius); + margin-left: calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-left)); + margin-right: calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-right)); + --f7-safe-area-left: 0px; + --f7-safe-area-right: 0px; + } + .block-strong.large-inset:before, + .block-strong.large-inset:after { + display: none !important; + } +} +@media (min-width: 1200px) { + .block.xlarge-inset { + border-radius: var(--f7-block-inset-border-radius); + margin-left: calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-left)); + margin-right: calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-right)); + --f7-safe-area-left: 0px; + --f7-safe-area-right: 0px; + } + .block-strong.xlarge-inset:before, + .block-strong.xlarge-inset:after { + display: none !important; + } +} +/* === List View === */ +:root { + --f7-list-inset-side-margin: 16px; + --f7-list-item-cell-margin: 16px; + --f7-list-item-padding-horizontal: 16px; + --f7-list-media-item-padding-horizontal: 16px; + --f7-list-item-text-max-lines: 2; + --f7-list-chevron-icon-font-size: 20px; + --f7-list-item-title-font-size: inherit; + --f7-list-item-title-font-weight: 400; + --f7-list-item-title-text-color: inherit; + --f7-list-item-title-line-height: inherit; + --f7-list-item-title-white-space: nowrap; + --f7-list-item-subtitle-font-weight: 400; + --f7-list-item-subtitle-text-color: inherit; + --f7-list-item-subtitle-line-height: inherit; + --f7-list-item-text-font-weight: 400; + --f7-list-item-after-font-weight: 400; + --f7-list-item-header-text-color: inherit; + --f7-list-item-header-font-size: 12px; + --f7-list-item-header-font-weight: 400; + --f7-list-item-header-line-height: 1.2; + --f7-list-item-footer-font-size: 12px; + --f7-list-item-footer-font-weight: 400; + --f7-list-item-footer-line-height: 1.2; + --f7-list-button-font-size: inherit; + --f7-list-button-font-weight: 400; + --f7-list-item-divider-line-height: inherit; + --f7-list-group-title-line-height: inherit; + --f7-list-bg-color: #fff; + --f7-list-chevron-icon-color: rgba(0, 0, 0, 0.2); +} +:root .theme-dark, +:root.theme-dark { + --f7-list-button-border-color: rgba(255, 255, 255, 0.15); + --f7-list-bg-color: #1c1c1d; + --f7-list-border-color: rgba(255, 255, 255, 0.15); + --f7-list-item-border-color: rgba(255, 255, 255, 0.15); + --f7-list-item-divider-border-color: rgba(255, 255, 255, 0.15); + --f7-list-item-divider-bg-color: #232323; + --f7-list-group-title-bg-color: #232323; + --f7-list-chevron-icon-color: rgba(255, 255, 255, 0.3); +} +.ios { + --f7-list-in-list-padding-left: 30px; + --f7-list-inset-border-radius: 8px; + --f7-list-margin-vertical: 35px; + --f7-list-font-size: 17px; + --f7-list-chevron-icon-area: 20px; + --f7-list-border-color: rgba(0, 0, 0, 0.22); + --f7-list-item-border-color: rgba(0, 0, 0, 0.22); + --f7-list-link-pressed-bg-color: rgba(0, 0, 0, 0.15); + --f7-list-item-subtitle-font-size: 15px; + --f7-list-item-text-font-size: 15px; + --f7-list-item-text-line-height: 21px; + --f7-list-item-after-font-size: inherit; + --f7-list-item-after-line-height: inherit; + --f7-list-item-after-padding: 5px; + --f7-list-item-min-height: 44px; + --f7-list-item-media-margin: 16px; + --f7-list-item-media-icons-margin: 5px; + --f7-list-item-padding-vertical: 8px; + --f7-list-media-item-padding-vertical: 10px; + --f7-list-media-item-title-font-weight: 600; + /* + --f7-list-button-text-color: var(--f7-theme-color); + */ + --f7-list-button-text-align: center; + --f7-list-button-border-color: rgba(0, 0, 0, 0.22); + --f7-list-item-divider-height: 31px; + --f7-list-item-divider-font-size: inherit; + --f7-list-item-divider-font-weight: 400; + --f7-list-item-divider-bg-color: rgba(0, 0, 0, 0.03); + --f7-list-item-divider-border-color: rgba(0, 0, 0, 0.22); + --f7-list-group-title-height: 31px; + --f7-list-group-title-font-size: inherit; + --f7-list-group-title-font-weight: 400; + --f7-list-group-title-bg-color: #f7f7f7; + --f7-list-item-after-text-color: rgba(0, 0, 0, 0.45); + --f7-list-item-footer-text-color: rgba(0, 0, 0, 0.45); + --f7-list-item-text-text-color: rgba(0, 0, 0, 0.45); + --f7-list-item-divider-text-color: rgba(0, 0, 0, 0.45); + --f7-list-group-title-text-color: rgba(0, 0, 0, 0.45); + --f7-list-button-pressed-bg-color: rgba(0, 0, 0, 0.15); +} +.ios .theme-dark, +.ios.theme-dark { + --f7-list-item-after-text-color: rgba(255, 255, 255, 0.55); + --f7-list-item-header-text-color: rgba(255, 255, 255, 0.55); + --f7-list-item-footer-text-color: rgba(255, 255, 255, 0.55); + --f7-list-item-text-text-color: rgba(255, 255, 255, 0.55); + --f7-list-item-divider-text-color: rgba(255, 255, 255, 0.55); + --f7-list-group-title-text-color: rgba(255, 255, 255, 0.55); + --f7-list-link-pressed-bg-color: rgba(255, 255, 255, 0.08); + --f7-list-button-pressed-bg-color: rgba(255, 255, 255, 0.08); +} +.md { + --f7-list-in-list-padding-left: 40px; + --f7-list-inset-border-radius: 4px; + --f7-list-margin-vertical: 32px; + --f7-list-font-size: 16px; + --f7-list-chevron-icon-area: 26px; + --f7-list-border-color: rgba(0, 0, 0, 0.12); + --f7-list-item-border-color: rgba(0, 0, 0, 0.12); + --f7-list-item-subtitle-font-size: 14px; + --f7-list-item-text-font-size: 14px; + --f7-list-item-text-line-height: 20px; + --f7-list-item-after-font-size: 14px; + --f7-list-item-after-line-height: inherit; + --f7-list-item-after-padding: 8px; + --f7-list-item-min-height: 48px; + --f7-list-item-media-margin: 16px; + --f7-list-item-media-icons-margin: 8px; + --f7-list-item-padding-vertical: 8px; + --f7-list-media-item-padding-vertical: 14px; + /* + --f7-list-media-item-title-font-weight: var(--f7-list-item-title-font-weight); + */ + --f7-list-button-text-align: left; + --f7-list-button-border-color: transparent; + --f7-list-item-divider-height: 48px; + --f7-list-item-divider-font-size: 14px; + --f7-list-item-divider-font-weight: 400; + --f7-list-item-divider-bg-color: #f4f4f4; + --f7-list-item-divider-border-color: transparent; + --f7-list-group-title-height: 48px; + --f7-list-group-title-font-size: 14px; + --f7-list-group-title-font-weight: 400; + --f7-list-group-title-bg-color: #f4f4f4; + --f7-list-link-pressed-bg-color: rgba(0, 0, 0, 0.1); + --f7-list-item-text-text-color: rgba(0, 0, 0, 0.54); + --f7-list-item-after-text-color: rgba(0, 0, 0, 0.54); + --f7-list-item-footer-text-color: rgba(0, 0, 0, 0.5); + --f7-list-button-text-color: #212121; + --f7-list-button-pressed-bg-color: rgba(0, 0, 0, 0.1); + --f7-list-item-divider-text-color: rgba(0, 0, 0, 0.54); + --f7-list-group-title-text-color: rgba(0, 0, 0, 0.54); +} +.md .theme-dark, +.md.theme-dark { + --f7-list-button-text-color: #fff; + --f7-list-item-divider-text-color: #fff; + --f7-list-group-title-text-color: #fff; + --f7-list-link-pressed-bg-color: rgba(255, 255, 255, 0.05); + --f7-list-button-pressed-bg-color: rgba(255, 255, 255, 0.05); + --f7-list-item-text-text-color: rgba(255, 255, 255, 0.54); + --f7-list-item-after-text-color: rgba(255, 255, 255, 0.54); + --f7-list-item-footer-text-color: rgba(255, 255, 255, 0.54); +} +.aurora { + --f7-list-in-list-padding-left: 16px; + --f7-list-inset-border-radius: 4px; + --f7-list-margin-vertical: 15px; + --f7-list-font-size: 14px; + --f7-list-chevron-icon-area: 15px; + --f7-list-chevron-icon-font-size: 16px; + --f7-list-border-color: rgba(0, 0, 0, 0.12); + --f7-list-item-border-color: rgba(0, 0, 0, 0.12); + --f7-list-item-title-line-height: 1.3; + --f7-list-item-subtitle-font-size: 14px; + --f7-list-item-subtitle-line-height: 1.3; + --f7-list-item-text-font-size: 12px; + --f7-list-item-text-line-height: 16px; + --f7-list-item-after-font-size: 13px; + --f7-list-item-after-line-height: 1.2; + --f7-list-item-after-padding: 5px; + --f7-list-item-min-height: 32px; + --f7-list-item-media-margin: 10px; + --f7-list-item-media-icons-margin: 5px; + --f7-list-item-padding-vertical: 5px; + --f7-list-media-item-padding-vertical: 5px; + --f7-list-media-item-title-font-weight: 600; + /* + --f7-list-button-text-color: var(--f7-theme-color); + */ + --f7-list-button-text-align: center; + --f7-list-button-border-color: rgba(0, 0, 0, 0.12); + --f7-list-item-divider-height: 19px; + --f7-list-item-divider-font-size: inherit; + --f7-list-item-divider-font-weight: 500; + --f7-list-item-divider-bg-color: rgba(0, 0, 0, 0.03); + --f7-list-item-divider-border-color: transparent; + --f7-list-group-title-height: 19px; + --f7-list-group-title-font-size: inherit; + --f7-list-group-title-font-weight: 500; + --f7-list-group-title-bg-color: #f7f7f7; + --f7-list-link-pressed-bg-color: rgba(0, 0, 0, 0.1); + --f7-list-link-hover-bg-color: rgba(0, 0, 0, 0.03); + --f7-list-item-text-text-color: rgba(0, 0, 0, 0.6); + --f7-list-item-after-text-color: rgba(0, 0, 0, 0.5); + --f7-list-item-footer-text-color: rgba(0, 0, 0, 0.6); + --f7-list-button-pressed-bg-color: rgba(0, 0, 0, 0.1); + --f7-list-button-hover-bg-color: rgba(0, 0, 0, 0.03); + --f7-list-item-divider-text-color: rgba(0, 0, 0, 0.6); + --f7-list-group-title-text-color: rgba(0, 0, 0, 0.6); +} +.aurora .theme-dark, +.aurora.theme-dark { + --f7-list-item-text-text-color: rgba(255, 255, 255, 0.54); + --f7-list-item-after-text-color: rgba(255, 255, 255, 0.54); + --f7-list-item-footer-text-color: rgba(255, 255, 255, 0.54); + --f7-list-item-divider-text-color: rgba(255, 255, 255, 0.6); + --f7-list-group-title-text-color: rgba(255, 255, 255, 0.6); + --f7-list-link-pressed-bg-color: rgba(255, 255, 255, 0.05); + --f7-list-link-hover-bg-color: rgba(255, 255, 255, 0.03); + --f7-list-button-pressed-bg-color: rgba(255, 255, 255, 0.05); + --f7-list-button-hover-bg-color: rgba(255, 255, 255, 0.03); +} +:root { + --f7-list-chevron-icon-left: 'chevron_left'; + --f7-list-chevron-icon-right: 'chevron_right'; +} +.aurora { + --f7-list-chevron-icon-left: 'chevron_left_aurora'; + --f7-list-chevron-icon-right: 'chevron_right_aurora'; +} +.list { + position: relative; + z-index: 1; + font-size: var(--f7-list-font-size); + margin: var(--f7-list-margin-vertical) 0; +} +.list ul { + list-style: none; + margin: 0; + padding: 0; + position: relative; + background: var(--f7-list-bg-color); +} +.list ul:before { + content: ''; + position: absolute; + background-color: var(--f7-list-border-color); + display: block; + z-index: 15; + top: 0; + right: auto; + bottom: auto; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 0%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +.list ul:after { + content: ''; + position: absolute; + background-color: var(--f7-list-border-color); + display: block; + z-index: 15; + top: auto; + right: auto; + bottom: 0; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 100%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +.list ul ul { + padding-right: calc(var(--f7-list-item-padding-horizontal) + var(--f7-list-in-list-padding-left)); +} +.list ul ul:before, +.list ul ul:after { + display: none !important; +} +.list li { + position: relative; + box-sizing: border-box; +} +.list .item-media { + display: flex; + flex-shrink: 0; + flex-wrap: nowrap; + align-items: center; + box-sizing: border-box; + padding-bottom: var(--f7-list-item-padding-vertical); + padding-top: var(--f7-list-item-padding-vertical); +} +.list .item-media + .item-inner { + margin-right: var(--f7-list-item-media-margin); +} +.list .item-media i + i, +.list .item-media i + img { + margin-right: var(--f7-list-item-media-icons-margin); +} +.list .item-after { + padding-right: var(--f7-list-item-after-padding); +} +.list .item-inner { + position: relative; + width: 100%; + min-width: 0; + display: flex; + justify-content: space-between; + box-sizing: border-box; + align-items: center; + align-self: stretch; + padding-top: var(--f7-list-item-padding-vertical); + padding-bottom: var(--f7-list-item-padding-vertical); + min-height: var(--f7-list-item-min-height); + padding-left: calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-left)); +} +.list .item-title { + min-width: 0; + flex-shrink: 1; + white-space: var(--f7-list-item-title-white-space); + position: relative; + overflow: hidden; + text-overflow: ellipsis; + max-width: 100%; + font-size: var(--f7-list-item-title-font-size); + font-weight: var(--f7-list-item-title-font-weight); + color: var(--f7-list-item-title-text-color); + line-height: var(--f7-list-item-title-line-height); +} +.list .item-after { + white-space: nowrap; + flex-shrink: 0; + display: flex; + font-size: var(--f7-list-item-after-font-size); + font-weight: var(--f7-list-item-after-font-weight); + color: var(--f7-list-item-after-text-color); + line-height: var(--f7-list-item-after-line-height); + margin-right: auto; +} +.list .item-header, +.list .item-footer { + white-space: normal; +} +.list .item-header { + color: var(--f7-list-item-header-text-color); + font-size: var(--f7-list-item-header-font-size); + font-weight: var(--f7-list-item-header-font-weight); + line-height: var(--f7-list-item-header-line-height); +} +.list .item-footer { + color: var(--f7-list-item-footer-text-color); + font-size: var(--f7-list-item-footer-font-size); + font-weight: var(--f7-list-item-footer-font-weight); + line-height: var(--f7-list-item-footer-line-height); +} +.list .item-link, +.list .list-button { + transition-duration: 300ms; + transition-property: background-color; + display: block; + position: relative; + overflow: hidden; + z-index: 0; +} +.list .item-link { + color: inherit; +} +.list .item-link.active-state { + background-color: var(--f7-list-link-pressed-bg-color); +} +.list .item-link .item-inner { + padding-left: calc(var(--f7-list-chevron-icon-area) + var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-left)); +} +.list .item-content { + display: flex; + justify-content: space-between; + box-sizing: border-box; + align-items: center; + min-height: var(--f7-list-item-min-height); + padding-right: calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-right)); +} +.list .item-subtitle { + position: relative; + overflow: hidden; + white-space: nowrap; + max-width: 100%; + text-overflow: ellipsis; + font-size: var(--f7-list-item-subtitle-font-size); + font-weight: var(--f7-list-item-subtitle-font-weight); + color: var(--f7-list-item-subtitle-text-color); + line-height: var(--f7-list-item-subtitle-line-height); +} +.list .item-text { + position: relative; + overflow: hidden; + text-overflow: ellipsis; + /* autoprefixer: ignore next */ + -webkit-line-clamp: var(--f7-list-item-text-max-lines); + /* autoprefixer: ignore next */ + -webkit-box-orient: vertical; + display: -webkit-box; + font-size: var(--f7-list-item-text-font-size); + font-weight: var(--f7-list-item-text-font-weight); + color: var(--f7-list-item-text-text-color); + line-height: var(--f7-list-item-text-line-height); + max-height: calc(var(--f7-list-item-text-line-height) * var(--f7-list-item-text-max-lines)); +} +.list .item-title-row { + position: relative; + display: flex; + justify-content: space-between; + box-sizing: border-box; +} +.list .item-title-row .item-after { + align-self: center; +} +.list .item-row { + display: flex; + justify-content: space-between; + box-sizing: border-box; +} +.list .item-cell { + display: block; + align-self: center; + box-sizing: border-box; + width: 100%; + min-width: 0; + margin-right: var(--f7-list-item-cell-margin); + flex-shrink: 1; +} +.list .item-cell:first-child { + margin-right: 0; +} +.list li:last-child .list-button:after { + display: none !important; +} +.list li:last-child > .item-inner:after, +.list li:last-child li:last-child > .item-inner:after, +.list li:last-child > .item-content > .item-inner:after, +.list li:last-child li:last-child > .item-content > .item-inner:after, +.list li:last-child > .swipeout-content > .item-content > .item-inner:after, +.list li:last-child li:last-child > .swipeout-content > .item-content > .item-inner:after, +.list li:last-child > .item-link > .item-content > .item-inner:after, +.list li:last-child li:last-child > .item-link > .item-content > .item-inner:after { + display: none !important; +} +.list li li:last-child .item-inner:after, +.list li:last-child li .item-inner:after { + content: ''; + position: absolute; + background-color: var(--f7-list-item-border-color); + display: block; + z-index: 15; + top: auto; + right: auto; + bottom: 0; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 100%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +.list.no-hairlines:before, +.list.no-hairlines ul:before, +.md .list.no-hairlines-md:before, +.md .list.no-hairlines-md ul:before, +.ios .list.no-hairlines-ios:before, +.ios .list.no-hairlines-ios ul:before, +.aurora .list.no-hairlines-aurora:before, +.aurora .list.no-hairlines-aurora ul:before, +.list.no-hairlines:after, +.list.no-hairlines ul:after, +.md .list.no-hairlines-md:after, +.md .list.no-hairlines-md ul:after, +.ios .list.no-hairlines-ios:after, +.ios .list.no-hairlines-ios ul:after, +.aurora .list.no-hairlines-aurora:after, +.aurora .list.no-hairlines-aurora ul:after { + display: none !important; +} +.list.no-hairline-top:before, +.list.no-hairline-top ul:before, +.md .list.no-hairline-top-md:before, +.md .list.no-hairline-top-md ul:before, +.ios .list.no-hairline-top-ios:before, +.ios .list.no-hairline-top-ios ul:before, +.aurora .list.no-hairline-top-aurora:before, +.aurora .list.no-hairline-top-aurora ul:before { + display: none !important; +} +.list.no-hairline-bottom:after, +.list.no-hairline-bottom ul:after, +.md .list.no-hairline-bottom-md:after, +.md .list.no-hairline-bottom-md ul:after, +.ios .list.no-hairline-bottom-ios:after, +.ios .list.no-hairline-bottom-ios ul:after, +.aurora .list.no-hairline-bottom-aurora:after, +.aurora .list.no-hairline-bottom-aurora ul:after { + display: none !important; +} +.list.no-hairlines-between .item-inner:after, +.md .list.no-hairlines-between-md .item-inner:after, +.ios .list.no-hairlines-between-ios .item-inner:after, +.aurora .list.no-hairlines-between-aurora .item-inner:after, +.list.no-hairlines-between .list-button:after, +.md .list.no-hairlines-between-md .list-button:after, +.ios .list.no-hairlines-between-ios .list-button:after, +.aurora .list.no-hairlines-between-aurora .list-button:after, +.list.no-hairlines-between .item-divider:after, +.md .list.no-hairlines-between-md .item-divider:after, +.ios .list.no-hairlines-between-ios .item-divider:after, +.aurora .list.no-hairlines-between-aurora .item-divider:after, +.list.no-hairlines-between .list-group-title:after, +.md .list.no-hairlines-between-md .list-group-title:after, +.ios .list.no-hairlines-between-ios .list-group-title:after, +.aurora .list.no-hairlines-between-aurora .list-group-title:after, +.list.no-hairlines-between .list-group-title:after, +.md .list.no-hairlines-between-md .list-group-title:after, +.ios .list.no-hairlines-between-ios .list-group-title:after, +.aurora .list.no-hairlines-between-aurora .list-group-title:after { + display: none !important; +} +.list.no-hairlines-between.simple-list li:after, +.md .list.no-hairlines-between-md.simple-list li:after, +.ios .list.no-hairlines-between-ios.simple-list li:after, +.aurora .list.no-hairlines-between-aurora.simple-list li:after { + display: none !important; +} +.list.no-hairlines-between.links-list a:after, +.md .list.no-hairlines-between-md.links-list a:after, +.ios .list.no-hairlines-between-ios.links-list a:after, +.aurora .list.no-hairlines-between-aurora.links-list a:after { + display: none !important; +} +.list-button { + padding: 0 var(--f7-list-item-padding-horizontal); + line-height: var(--f7-list-item-min-height); + color: var(--f7-list-button-text-color, var(--f7-theme-color)); + font-size: var(--f7-list-button-font-size); + font-weight: var(--f7-list-button-font-weight); + text-align: var(--f7-list-button-text-align); +} +.list-button:after { + content: ''; + position: absolute; + background-color: var(--f7-list-button-border-color); + display: block; + z-index: 15; + top: auto; + right: auto; + bottom: 0; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 100%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +.list-button.active-state { + background-color: var(--f7-list-button-pressed-bg-color); +} +.list-button[class*="color-"] { + --f7-list-button-text-color: var(--f7-theme-color); +} +.simple-list li { + position: relative; + white-space: nowrap; + text-overflow: ellipsis; + max-width: 100%; + box-sizing: border-box; + display: flex; + justify-content: space-between; + align-items: center; + align-content: center; + line-height: var(--f7-list-item-min-height); + height: var(--f7-list-item-min-height); + padding-left: calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-left)); + padding-right: calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-right)); +} +.simple-list li:after { + left: var(--f7-list-item-padding-horizontal); + right: 0; + width: auto; + right: calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-right)); + left: 0; +} +.simple-list li:last-child:after { + display: none !important; +} +.links-list li { + z-index: 1; +} +.links-list a { + transition-duration: 300ms; + transition-property: background-color; + display: block; + position: relative; + overflow: hidden; + display: flex; + align-items: center; + align-content: center; + justify-content: space-between; + box-sizing: border-box; + white-space: nowrap; + text-overflow: ellipsis; + max-width: 100%; + height: var(--f7-list-item-min-height); + color: inherit; +} +.links-list a .ripple-wave { + z-index: 0; +} +.links-list a:after { + width: auto; +} +.links-list a.active-state { + background-color: var(--f7-list-link-pressed-bg-color); +} +.links-list a { + padding-right: calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-right)); + padding-left: calc(var(--f7-list-chevron-icon-area) + var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-left)); +} +.links-list a:after { + right: calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-right)); + left: 0; +} +.links-list li:last-child a:after { + display: none !important; +} +.simple-list li:after, +.links-list a:after, +.list .item-inner:after { + content: ''; + position: absolute; + background-color: var(--f7-list-item-border-color); + display: block; + z-index: 15; + top: auto; + right: auto; + bottom: 0; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 100%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +.media-list, +li.media-item { + --f7-list-item-padding-vertical: var(--f7-list-media-item-padding-vertical); + --f7-list-item-padding-horizontal: var(--f7-list-media-item-padding-horizontal); +} +.media-list .item-title, +li.media-item .item-title { + font-weight: var(--f7-list-media-item-title-font-weight, var(--f7-list-item-title-font-weight, inherit)); +} +.media-list .item-inner, +li.media-item .item-inner { + display: block; + align-self: stretch; +} +.media-list .item-media, +li.media-item .item-media { + align-self: flex-start; +} +.media-list .item-media img, +li.media-item .item-media img { + display: block; +} +.media-list .item-link .item-inner, +li.media-item .item-link .item-inner { + padding-left: calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-left)); +} +.media-list .item-link .item-title-row, +li.media-item .item-link .item-title-row { + padding-left: calc(var(--f7-list-chevron-icon-area)); +} +.media-list.chevron-center .item-link .item-inner, +.media-list .chevron-center .item-link .item-inner, +.media-list .item-link.chevron-center .item-inner, +li.media-item.chevron-center .item-link .item-inner, +li.media-item .item-link.chevron-center .item-inner, +li.media-item .chevron-center .item-link .item-inner { + padding-left: calc(var(--f7-list-chevron-icon-area) + var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-left)); +} +.media-list.chevron-center .item-title-row, +.media-list .chevron-center .item-title-row, +li.media-item.chevron-center .item-title-row, +li.media-item .chevron-center .item-title-row { + padding-left: 0; +} +.list .item-link .item-inner:before, +.links-list a:before, +.media-list .item-link .item-title-row:before, +li.media-item .item-link .item-title-row:before, +.media-list.chevron-center .item-link .item-inner:before, +.media-list .chevron-center .item-link .item-inner:before, +.media-list .item-link.chevron-center .item-inner:before, +li.media-item.chevron-center .item-link .item-inner:before, +li.media-item .chevron-center .item-link .item-inner:before, +li.media-item .item-link.chevron-center .item-inner:before { + font-family: 'framework7-core-icons'; + font-weight: normal; + font-style: normal; + line-height: 1; + letter-spacing: normal; + text-transform: none; + white-space: nowrap; + word-wrap: normal; + direction: ltr; + -webkit-font-smoothing: antialiased; + text-rendering: optimizeLegibility; + -moz-osx-font-smoothing: grayscale; + font-feature-settings: "liga"; + text-align: center; + display: block; + width: 100%; + height: 100%; + font-size: 20px; + position: absolute; + top: 50%; + width: 8px; + height: 14px; + margin-top: -7px; + font-size: var(--f7-list-chevron-icon-font-size); + line-height: 14px; + color: var(--f7-list-chevron-icon-color); + pointer-events: none; + left: calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-left)); + content: var(--f7-list-chevron-icon-left); +} +.media-list.chevron-center .item-title-row:before, +.media-list .chevron-center .item-title-row:before, +li.media-item.chevron-center .item-title-row:before, +li.media-item .chevron-center .item-title-row:before { + display: none; +} +.media-list .item-link .item-inner:before, +li.media-item .item-link .item-inner:before { + display: none; +} +.media-list .item-link .item-title-row:before, +li.media-item .item-link .item-title-row:before { + left: 0; +} +.list-group ul:after, +.list-group ul:before { + z-index: 25 !important; +} +.list-group + .list-group ul:before { + display: none !important; +} +li.item-divider, +.item-divider, +li.list-group-title { + white-space: nowrap; + position: relative; + max-width: 100%; + text-overflow: ellipsis; + overflow: hidden; + z-index: 15; + padding-top: 0; + padding-bottom: 0; + padding-left: calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-left)); + padding-right: calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-right)); + box-sizing: border-box; + display: flex; + align-items: center; + align-content: center; +} +li.item-divider:after, +.item-divider:after, +li.list-group-title:after { + display: none !important; +} +li.item-divider, +.item-divider { + margin-top: -1px; + height: var(--f7-list-item-divider-height); + color: var(--f7-list-item-divider-text-color); + font-size: var(--f7-list-item-divider-font-size); + font-weight: var(--f7-list-item-divider-font-weight); + background-color: var(--f7-list-item-divider-bg-color); + line-height: var(--f7-list-item-divider-line-height); +} +li.item-divider:before, +.item-divider:before { + content: ''; + position: absolute; + background-color: var(--f7-list-item-divider-border-color); + display: block; + z-index: 15; + top: 0; + right: auto; + bottom: auto; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 0%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +li.list-group-title, +.list li.list-group-title { + position: relative; + position: -webkit-sticky; + position: sticky; + top: 0; + margin-top: 0; + z-index: 20; + height: var(--f7-list-group-title-height); + color: var(--f7-list-group-title-text-color); + font-size: var(--f7-list-group-title-font-size); + font-weight: var(--f7-list-group-title-font-weight); + background-color: var(--f7-list-group-title-bg-color); + line-height: var(--f7-list-group-title-line-height); +} +.page-with-navbar-large li.list-group-title, +.page-with-navbar-large .list li.list-group-title { + top: calc(-1 * var(--f7-navbar-large-title-height)); +} +.list.inset { + margin-left: calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-left)); + margin-right: calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-right)); + border-radius: var(--f7-list-inset-border-radius); + --f7-safe-area-left: 0px; + --f7-safe-area-right: 0px; +} +.list.inset .block-title { + margin-left: 0; + margin-right: 0; +} +.list.inset ul { + border-radius: var(--f7-list-inset-border-radius); +} +.list.inset ul:before, +.list.inset ul:after { + display: none !important; +} +.list.inset li.swipeout:first-child, +.list.inset li:first-child > a { + border-radius: var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius) 0 0; +} +.list.inset li.swipeout:last-child, +.list.inset li:last-child > a { + border-radius: 0 0 var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius); +} +.list.inset li.swipeout:first-child:last-child, +.list.inset li:first-child:last-child > a { + border-radius: var(--f7-list-inset-border-radius); +} +@media (min-width: 480px) { + .list.xsmall-inset { + margin-left: calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-left)); + margin-right: calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-right)); + border-radius: var(--f7-list-inset-border-radius); + --f7-safe-area-left: 0px; + --f7-safe-area-right: 0px; + } + .list.xsmall-inset .block-title { + margin-left: 0; + margin-right: 0; + } + .list.xsmall-inset ul { + border-radius: var(--f7-list-inset-border-radius); + } + .list.xsmall-inset ul:before, + .list.xsmall-inset ul:after { + display: none !important; + } + .list.xsmall-inset li:first-child > a { + border-radius: var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius) 0 0; + } + .list.xsmall-inset li:last-child > a { + border-radius: 0 0 var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius); + } + .list.xsmall-inset li:first-child:last-child > a { + border-radius: var(--f7-list-inset-border-radius); + } +} +@media (min-width: 568px) { + .list.small-inset { + margin-left: calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-left)); + margin-right: calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-right)); + border-radius: var(--f7-list-inset-border-radius); + --f7-safe-area-left: 0px; + --f7-safe-area-right: 0px; + } + .list.small-inset .block-title { + margin-left: 0; + margin-right: 0; + } + .list.small-inset ul { + border-radius: var(--f7-list-inset-border-radius); + } + .list.small-inset ul:before, + .list.small-inset ul:after { + display: none !important; + } + .list.small-inset li:first-child > a { + border-radius: var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius) 0 0; + } + .list.small-inset li:last-child > a { + border-radius: 0 0 var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius); + } + .list.small-inset li:first-child:last-child > a { + border-radius: var(--f7-list-inset-border-radius); + } +} +@media (min-width: 768px) { + .list.medium-inset { + margin-left: calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-left)); + margin-right: calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-right)); + border-radius: var(--f7-list-inset-border-radius); + --f7-safe-area-left: 0px; + --f7-safe-area-right: 0px; + } + .list.medium-inset .block-title { + margin-left: 0; + margin-right: 0; + } + .list.medium-inset ul { + border-radius: var(--f7-list-inset-border-radius); + } + .list.medium-inset ul:before, + .list.medium-inset ul:after { + display: none !important; + } + .list.medium-inset li:first-child > a { + border-radius: var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius) 0 0; + } + .list.medium-inset li:last-child > a { + border-radius: 0 0 var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius); + } + .list.medium-inset li:first-child:last-child > a { + border-radius: var(--f7-list-inset-border-radius); + } +} +@media (min-width: 1024px) { + .list.large-inset { + margin-left: calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-left)); + margin-right: calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-right)); + border-radius: var(--f7-list-inset-border-radius); + --f7-safe-area-left: 0px; + --f7-safe-area-right: 0px; + } + .list.large-inset .block-title { + margin-left: 0; + margin-right: 0; + } + .list.large-inset ul { + border-radius: var(--f7-list-inset-border-radius); + } + .list.large-inset ul:before, + .list.large-inset ul:after { + display: none !important; + } + .list.large-inset li:first-child > a { + border-radius: var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius) 0 0; + } + .list.large-inset li:last-child > a { + border-radius: 0 0 var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius); + } + .list.large-inset li:first-child:last-child > a { + border-radius: var(--f7-list-inset-border-radius); + } +} +@media (min-width: 1200px) { + .list.xlarge-inset { + margin-left: calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-left)); + margin-right: calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-right)); + border-radius: var(--f7-list-inset-border-radius); + --f7-safe-area-left: 0px; + --f7-safe-area-right: 0px; + } + .list.xlarge-inset .block-title { + margin-left: 0; + margin-right: 0; + } + .list.xlarge-inset ul { + border-radius: var(--f7-list-inset-border-radius); + } + .list.xlarge-inset ul:before, + .list.xlarge-inset ul:after { + display: none !important; + } + .list.xlarge-inset li:first-child > a { + border-radius: var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius) 0 0; + } + .list.xlarge-inset li:last-child > a { + border-radius: 0 0 var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius); + } + .list.xlarge-inset li:first-child:last-child > a { + border-radius: var(--f7-list-inset-border-radius); + } +} +.list.no-chevron, +.list .no-chevron { + --f7-list-chevron-icon-color: transparent; + --f7-list-chevron-icon-area: 0px; +} +.ios .item-link.active-state .item-inner:after, +.ios .list-button.active-state:after, +.ios .links-list a.active-state:after { + background-color: transparent; +} +.ios .links-list a.active-state, +.ios .list .item-link.active-state, +.ios .list .list-button.active-state { + transition-duration: 0ms; +} +.md .list .item-media { + min-width: 40px; +} +.aurora .list .item-media { + min-width: 18px; +} +.aurora .links-list a, +.aurora .list .item-link, +.aurora .list .list-button { + transition-duration: 0ms; +} +.aurora.device-desktop .links-list a:hover:not(.active-state):not(.no-hover), +.aurora.device-desktop .list .item-link:hover:not(.active-state):not(.no-hover) { + background: var(--f7-list-link-hover-bg-color); +} +.aurora.device-desktop .list .list-button:hover:not(.active-state):not(.no-hover) { + background: var(--f7-list-button-hover-bg-color); +} +/* === Badge === */ +:root { + --f7-badge-text-color: #fff; + --f7-badge-bg-color: #8e8e93; + --f7-badge-padding: 0 4px; + --f7-badge-in-icon-size: 16px; + --f7-badge-in-icon-font-size: 10px; + --f7-badge-font-weight: normal; + --f7-badge-font-size: 12px; +} +.ios { + --f7-badge-size: 20px; +} +.md { + --f7-badge-size: 18px; +} +.aurora { + --f7-badge-size: 18px; + --f7-badge-font-weight: 600; + --f7-badge-in-icon-size: 15px; +} +.badge { + display: inline-flex; + align-items: center; + align-content: center; + justify-content: center; + color: var(--f7-badge-text-color); + background: var(--f7-badge-bg-color); + position: relative; + box-sizing: border-box; + text-align: center; + vertical-align: middle; + font-weight: var(--f7-badge-font-weight); + font-size: var(--f7-badge-font-size); + border-radius: var(--f7-badge-size); + padding: var(--f7-badge-padding); + height: var(--f7-badge-size); + min-width: var(--f7-badge-size); +} +.icon .badge, +.f7-icons .badge, +.framework7-icons .badge, +.material-icons .badge { + position: absolute; + left: 100%; + margin-left: -10px; + top: -2px; + font-family: var(--f7-font-family); + --f7-badge-font-size: var(--f7-badge-in-icon-font-size); + --f7-badge-size: var(--f7-badge-in-icon-size); +} +.badge[class*="color-"] { + --f7-badge-bg-color: var(--f7-theme-color); +} +:root { + --f7-button-min-width: 32px; + --f7-button-bg-color: transparent; + --f7-button-border-width: 0px; + /* + --f7-button-text-color: var(--f7-theme-color); + --f7-button-pressed-text-color: var(--f7-button-text-color, var(--f7-theme-color)); + --f7-button-border-color: var(--f7-theme-color); + --f7-button-fill-text-color: #fff; + --f7-button-fill-bg-color: var(--f7-theme-color); + --f7-button-outline-border-color: var(--f7-theme-color); + */ + --f7-button-outline-border-width: 2px; + --f7-button-raised-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0,0,0,0.24); + --f7-button-raised-pressed-box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0,0,0,0.23); + --f7-segmented-raised-divider-color: rgba(0, 0, 0, 0.1); + --f7-segmented-strong-padding: 2px; + --f7-segmented-strong-between-buttons: 4px; + --f7-segmented-strong-button-font-weight: 500; + --f7-segmented-strong-button-active-box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.25); + --f7-segmented-strong-bg-color: rgba(0, 0, 0, 0.07); + --f7-segmented-strong-button-text-color: #000; + --f7-segmented-strong-button-pressed-bg-color: rgba(0, 0, 0, 0.07); + --f7-segmented-strong-button-hover-bg-color: rgba(0, 0, 0, 0.04); + --f7-segmented-strong-button-active-text-color: #000; + --f7-segmented-strong-button-active-bg-color: #fff; +} +:root .theme-dark, +:root.theme-dark { + --f7-segmented-strong-bg-color: rgba(255, 255, 255, 0.1); + --f7-segmented-strong-button-pressed-bg-color: rgba(255, 255, 255, 0.04); + --f7-segmented-strong-button-hover-bg-color: rgba(255, 255, 255, 0.02); + --f7-segmented-strong-button-active-bg-color: rgba(255, 255, 255, 0.14); + --f7-segmented-strong-button-text-color: #fff; + --f7-segmented-strong-button-active-text-color: #fff; +} +.ios { + --f7-button-font-size: 13px; + --f7-button-height: 28px; + --f7-button-padding-horizontal: 10px; + --f7-button-border-radius: 5px; + --f7-button-font-weight: 600; + --f7-button-letter-spacing: 0; + --f7-button-text-transform: uppercase; + /* + --f7-button-pressed-bg-color: rgba(var(--f7-theme-color-rgb), .15); + --f7-button-fill-pressed-bg-color: var(--f7-theme-color-tint); + */ + --f7-button-large-height: 44px; + --f7-button-large-font-size: 17px; + --f7-button-large-font-weight: 500; + --f7-button-large-text-transform: none; + --f7-button-small-height: 26px; + --f7-button-small-font-size: 13px; + --f7-button-small-font-weight: 600; + --f7-button-small-text-transform: uppercase; + --f7-button-small-outline-border-width: 2px; + --f7-segmented-strong-button-text-transform: none; + --f7-segmented-strong-button-active-font-weight: 600; +} +.md { + --f7-button-font-size: 14px; + --f7-button-height: 36px; + --f7-button-padding-horizontal: 8px; + --f7-button-border-radius: 4px; + --f7-button-font-weight: 500; + --f7-button-letter-spacing: 0.03em; + --f7-button-text-transform: uppercase; + /* + --f7-button-fill-pressed-bg-color: var(--f7-theme-color-shade); + */ + --f7-button-large-height: 48px; + --f7-button-large-font-size: 14px; + --f7-button-large-font-weight: 500; + --f7-button-large-text-transform: uppercase; + --f7-button-small-height: 28px; + --f7-button-small-font-size: 12px; + --f7-button-small-font-weight: 500; + --f7-button-small-text-transform: uppercase; + --f7-button-small-outline-border-width: 2px; + --f7-segmented-strong-button-text-transform: uppercase; + --f7-segmented-strong-button-active-font-weight: 500; + --f7-button-pressed-bg-color: rgba(0, 0, 0, 0.1); +} +.md .theme-dark, +.md.theme-dark { + --f7-button-pressed-bg-color: rgba(255, 255, 255, 0.1); +} +.aurora { + /* + --f7-button-hover-bg-color: rgba(var(--f7-theme-color-rgb), .07); + --f7-button-fill-hover-bg-color: var(--f7-theme-color-tint); + */ + --f7-button-font-size: 14px; + --f7-button-height: 28px; + --f7-button-min-width: 24px; + --f7-button-padding-horizontal: 10px; + --f7-button-border-radius: 4px; + --f7-button-font-weight: 500; + --f7-button-letter-spacing: 0.02; + --f7-button-text-transform: none; + /* + --f7-button-pressed-bg-color: rgba(var(--f7-theme-color-rgb), .15); + --f7-button-fill-pressed-bg-color: var(--f7-theme-color-shade); + */ + --f7-button-large-height: 34px; + --f7-button-large-font-size: 14px; + --f7-button-large-font-weight: 600; + --f7-button-large-text-transform: none; + --f7-button-small-height: 24px; + --f7-button-small-font-size: 12px; + --f7-button-small-font-weight: 600; + --f7-button-small-text-transform: none; + --f7-button-small-outline-border-width: 1px; + --f7-segmented-strong-button-text-transform: none; + --f7-segmented-strong-button-active-font-weight: 600; +} +button { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + width: 100%; +} +.button { + text-decoration: none; + text-align: center; + display: block; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + background: none; + margin: 0; + white-space: nowrap; + text-overflow: ellipsis; + position: relative; + overflow: hidden; + font-family: inherit; + cursor: pointer; + outline: 0; + box-sizing: border-box; + vertical-align: middle; + justify-content: center; + align-items: center; + border: var(--f7-button-border-width, 0px) solid var(--f7-button-border-color, var(--f7-theme-color)); + font-size: var(--f7-button-font-size); + color: var(--f7-button-text-color, var(--f7-theme-color)); + height: var(--f7-button-height); + line-height: calc(var(--f7-button-height) - var(--f7-button-border-width, 0) * 2); + padding: var(--f7-button-padding-vertical, 0px) var(--f7-button-padding-horizontal); + border-radius: var(--f7-button-border-radius); + min-width: var(--f7-button-min-width); + font-weight: var(--f7-button-font-weight); + letter-spacing: var(--f7-button-letter-spacing); + text-transform: var(--f7-button-text-transform); + background-color: var(--f7-button-bg-color); + box-shadow: var(--f7-button-box-shadow); +} +.button.active-state { + background-color: var(--f7-button-pressed-bg-color, rgba(var(--f7-theme-color-rgb), 0.15)); + color: var(--f7-button-pressed-text-color, var(--f7-button-text-color, var(--f7-theme-color))); +} +input[type="submit"].button, +input[type="button"].button { + width: 100%; +} +.button > i + span, +.button > span + span, +.button > span + i, +.button > i + i { + margin-right: 4px; +} +.subnavbar .button, +.navbar .button, +.toolbar .button, +.searchbar .button, +.appbar .button { + color: var(--f7-button-text-color, var(--f7-theme-color)); +} +.button-round, +.ios .button-round-ios, +.md .button-round-md, +.aurora .button-round-aurora { + --f7-button-border-radius: var(--f7-button-height); +} +.button-fill, +.ios .button-fill-ios, +.md .button-fill-md, +.aurora .button-fill-aurora, +.button-active, +.button.tab-link-active { + --f7-button-bg-color: var(--f7-button-fill-bg-color, var(--f7-theme-color)); + --f7-button-text-color: var(--f7-button-fill-text-color, #fff); + --f7-touch-ripple-color: var(--f7-touch-ripple-white); +} +.button-fill, +.ios .button-fill-ios, +.md .button-fill-md, +.aurora .button-fill-aurora { + --f7-button-pressed-bg-color: var(--f7-button-fill-pressed-bg-color); +} +.button-active, +.button.tab-link-active { + --f7-button-pressed-bg-color: var(--f7-button-bg-color); +} +.button-outline, +.ios .button-outline-ios, +.md .button-outline-md, +.aurora .button-outline-aurora { + --f7-button-border-color: var(--f7-button-outline-border-color, var(--f7-theme-color)); + --f7-button-border-width: var(--f7-button-outline-border-width); +} +.button-large, +.ios .button-large-ios, +.md .button-large-md, +.aurora .button-large-aurora { + --f7-button-height: var(--f7-button-large-height); + --f7-button-font-size: var(--f7-button-large-font-size); + --f7-button-font-weight: var(--f7-button-large-font-weight); + --f7-button-text-transform: var(--f7-button-large-text-transform); +} +.button-small, +.ios .button-small-ios, +.md .button-small-md, +.aurora .button-small-aurora { + --f7-button-outline-border-width: var(--f7-button-small-outline-border-width); + --f7-button-height: var(--f7-button-small-height); + --f7-button-font-size: var(--f7-button-small-font-size); + --f7-button-font-weight: var(--f7-button-small-font-weight); + --f7-button-text-transform: var(--f7-button-small-text-transform); +} +.ios .button-small.button-fill, +.ios .button-small-ios.button-fill, +.ios .button-small.button-fill-ios { + --f7-button-border-width: var(--f7-button-small-outline-border-width); + --f7-button-pressed-text-color: var(--f7-theme-color); + --f7-button-pressed-bg-color: transparent; +} +.segmented { + align-self: center; + display: flex; + flex-wrap: nowrap; + border-radius: var(--f7-button-border-radius); + box-shadow: var(--f7-button-box-shadow); + box-sizing: border-box; +} +.segmented .button, +.segmented button { + width: 100%; + flex-shrink: 1; + min-width: 0; + border-radius: 0; +} +.segmented .button:first-child { + border-radius: 0 var(--f7-button-border-radius) var(--f7-button-border-radius) 0; +} +.segmented .button:not(.button-outline):first-child { + border-right: none; +} +.segmented .button.button-outline:nth-child(n + 2) { + border-right: none; +} +.segmented .button:last-child { + border-radius: var(--f7-button-border-radius) 0 0 var(--f7-button-border-radius); +} +.segmented .button-round:first-child { + border-radius: 0 var(--f7-button-height) var(--f7-button-height) 0; +} +.segmented .button-round:last-child { + border-radius: var(--f7-button-height) 0 0 var(--f7-button-height); +} +.segmented .button:first-child:last-child { + border-radius: var(--f7-button-border-radius); +} +.segmented-raised, +.ios .segmented-raised-ios, +.md .segmented-raised-md, +.aurora .segmented-raised-aurora { + box-shadow: var(--f7-button-raised-box-shadow); +} +.segmented-raised .button:not(.button-outline), +.ios .segmented-raised-ios .button:not(.button-outline), +.md .segmented-raised-md .button:not(.button-outline), +.aurora .segmented-raised-aurora .button:not(.button-outline) { + border-right: 1px solid var(--f7-segmented-raised-divider-color); +} +.button-raised, +.ios .button-raised-ios, +.md .button-raised-md, +.aurora .button-raised-aurora { + --f7-button-box-shadow: var(--f7-button-raised-box-shadow); +} +.button-raised.active-state, +.ios .button-raised-ios.active-state, +.md .button-raised-md.active-state, +.aurora .button-raised-aurora.active-state { + --f7-button-box-shadow: var(--f7-button-raised-pressed-box-shadow); +} +.segmented-strong, +.ios .segmented-strong-ios, +.md .segmented-strong-md, +.aurora .segmented-strong-aurora { + --f7-button-bg-color: transparent; + --f7-button-hover-bg-color: var(--f7-segmented-strong-button-hover-bg-color); + --f7-button-text-color: var(--f7-segmented-strong-button-text-color); + --f7-button-font-weight: var(--f7-segmented-strong-button-font-weight); + --f7-button-text-transform: var(--f7-segmented-strong-button-text-transform); + --f7-button-pressed-bg-color: var(--f7-segmented-strong-button-pressed-bg-color); + position: relative; + background: var(--f7-segmented-strong-bg-color); + border-radius: calc(var(--f7-button-border-radius) + 2px); + box-shadow: none; + padding: var(--f7-segmented-strong-padding); + overflow: hidden; +} +.segmented-strong .button, +.ios .segmented-strong-ios .button, +.md .segmented-strong-md .button, +.aurora .segmented-strong-aurora .button { + z-index: 1; + transform: translate3d(0, 0, 0); +} +.segmented-strong .button, +.ios .segmented-strong-ios .button, +.md .segmented-strong-md .button, +.aurora .segmented-strong-aurora .button, +.segmented-strong .button:first-child, +.ios .segmented-strong-ios .button:first-child, +.md .segmented-strong-md .button:first-child, +.aurora .segmented-strong-aurora .button:first-child, +.segmented-strong .button:last-child, +.ios .segmented-strong-ios .button:last-child, +.md .segmented-strong-md .button:last-child, +.aurora .segmented-strong-aurora .button:last-child { + border-radius: var(--f7-button-border-radius); +} +.segmented-strong .button + .button, +.ios .segmented-strong-ios .button + .button, +.md .segmented-strong-md .button + .button, +.aurora .segmented-strong-aurora .button + .button { + margin-right: var(--f7-segmented-strong-between-buttons); +} +.segmented-strong .button.button-active, +.ios .segmented-strong-ios .button.button-active, +.md .segmented-strong-md .button.button-active, +.aurora .segmented-strong-aurora .button.button-active, +.segmented-strong .button.tab-link-active, +.ios .segmented-strong-ios .button.tab-link-active, +.md .segmented-strong-md .button.tab-link-active, +.aurora .segmented-strong-aurora .button.tab-link-active { + --f7-button-hover-bg-color: transparent; + --f7-button-bg-color: transparent; + --f7-button-text-color: var(--f7-segmented-strong-button-active-text-color); + --f7-button-font-weight: var(--f7-segmented-strong-button-active-font-weight); +} +.segmented-strong .segmented-highlight, +.ios .segmented-strong-ios .segmented-highlight, +.md .segmented-strong-md .segmented-highlight, +.aurora .segmented-strong-aurora .segmented-highlight { + --f7-segmented-highlight-num: 1; + --f7-segmented-highlight-active: 0; + --f7-segmented-highlight-padding: calc(var(--f7-segmented-strong-padding) * 2); + --f7-segmented-highlight-between: var(--f7-segmented-strong-between-buttons); + --f7-segmented-highlight-width: calc((100% - var(--f7-segmented-highlight-padding) - var(--f7-segmented-highlight-between) * (var(--f7-segmented-highlight-num) - 1)) / var(--f7-segmented-highlight-num)); + position: absolute; + background-color: var(--f7-segmented-strong-button-active-bg-color); + border-radius: var(--f7-button-border-radius); + box-shadow: var(--f7-segmented-strong-button-active-box-shadow); + left: var(--f7-segmented-strong-padding); + top: var(--f7-segmented-strong-padding); + height: calc(100% - var(--f7-segmented-strong-padding) * 2); + width: var(--f7-segmented-highlight-width); + z-index: 0; + transform: translateX(calc(var(--f7-segmented-highlight-active) * 100% + var(--f7-segmented-highlight-active) * var(--f7-segmented-highlight-between))); + transition: 200ms; +} +.button:nth-child(2) ~ .segmented-highlight { + --f7-segmented-highlight-num: 2; +} +.button:nth-child(3) ~ .segmented-highlight { + --f7-segmented-highlight-num: 3; +} +.button:nth-child(4) ~ .segmented-highlight { + --f7-segmented-highlight-num: 4; +} +.button:nth-child(5) ~ .segmented-highlight { + --f7-segmented-highlight-num: 5; +} +.button:nth-child(6) ~ .segmented-highlight { + --f7-segmented-highlight-num: 6; +} +.button:nth-child(7) ~ .segmented-highlight { + --f7-segmented-highlight-num: 7; +} +.button:nth-child(8) ~ .segmented-highlight { + --f7-segmented-highlight-num: 8; +} +.button:nth-child(9) ~ .segmented-highlight { + --f7-segmented-highlight-num: 9; +} +.button:nth-child(10) ~ .segmented-highlight { + --f7-segmented-highlight-num: 10; +} +.button-active:nth-child(2) ~ .segmented-highlight, +.tab-link-active:nth-child(2) ~ .segmented-highlight { + --f7-segmented-highlight-active: 1; +} +.button-active:nth-child(3) ~ .segmented-highlight, +.tab-link-active:nth-child(3) ~ .segmented-highlight { + --f7-segmented-highlight-active: 2; +} +.button-active:nth-child(4) ~ .segmented-highlight, +.tab-link-active:nth-child(4) ~ .segmented-highlight { + --f7-segmented-highlight-active: 3; +} +.button-active:nth-child(5) ~ .segmented-highlight, +.tab-link-active:nth-child(5) ~ .segmented-highlight { + --f7-segmented-highlight-active: 4; +} +.button-active:nth-child(6) ~ .segmented-highlight, +.tab-link-active:nth-child(6) ~ .segmented-highlight { + --f7-segmented-highlight-active: 5; +} +.button-active:nth-child(7) ~ .segmented-highlight, +.tab-link-active:nth-child(7) ~ .segmented-highlight { + --f7-segmented-highlight-active: 6; +} +.button-active:nth-child(8) ~ .segmented-highlight, +.tab-link-active:nth-child(8) ~ .segmented-highlight { + --f7-segmented-highlight-active: 7; +} +.button-active:nth-child(9) ~ .segmented-highlight, +.tab-link-active:nth-child(9) ~ .segmented-highlight { + --f7-segmented-highlight-active: 8; +} +.button-active:nth-child(10) ~ .segmented-highlight, +.tab-link-active:nth-child(10) ~ .segmented-highlight { + --f7-segmented-highlight-active: 9; +} +.segmented-round, +.ios .segmented-round-ios, +.md .segmented-round-md, +.aurora .segmented-round-aurora { + border-radius: var(--f7-button-height); +} +.segmented-round .segmented-highlight, +.ios .segmented-round-ios .segmented-highlight, +.md .segmented-round-md .segmented-highlight, +.aurora .segmented-round-aurora .segmented-highlight { + border-radius: var(--f7-button-height); +} +.subnavbar .segmented { + width: 100%; +} +.ios .button { + transition-duration: 100ms; +} +.ios .button-fill, +.ios .button-fill-ios { + --f7-button-pressed-bg-color: var(--f7-button-fill-pressed-bg-color, var(--f7-theme-color-tint)); +} +.ios .button-small, +.ios .button-small-ios { + transition-duration: 200ms; +} +.md .button { + transition-duration: 300ms; + transform: translate3d(0, 0, 0); +} +.md .button-fill, +.md .button-fill-md { + --f7-button-pressed-bg-color: var(--f7-button-fill-pressed-bg-color, var(--f7-theme-color-shade)); +} +.aurora .button { + transition-duration: 100ms; + transform: translate3d(0, 0, 0); +} +.aurora.device-desktop .button:not(.active-state):not(.no-hover):hover { + background-color: var(--f7-button-hover-bg-color, rgba(var(--f7-theme-color-rgb), 0.07)); +} +.aurora .button-fill, +.aurora .button-fill-aurora { + --f7-button-pressed-bg-color: var(--f7-button-fill-pressed-bg-color, var(--f7-theme-color-shade)); +} +.aurora .button-fill, +.aurora .button-active, +.aurora .button.tab-link-active, +.aurora .button-fill-aurora { + --f7-button-hover-bg-color: var(--f7-button-fill-hover-bg-color, var(--f7-theme-color-tint)); +} +/* === Touch Ripple === */ +:root { + --f7-touch-ripple-black: rgba(0, 0, 0, 0.1); + --f7-touch-ripple-white: rgba(255, 255, 255, 0.3); + --f7-touch-ripple-color: var(--f7-touch-ripple-black); +} +.theme-dark { + --f7-touch-ripple-color: var(--f7-touch-ripple-white); +} +.ripple, +.fab a, +.link, +.item-link, +.list-button, +.button, +.dialog-button, +.tab-link, +.radio, +.checkbox, +.actions-button, +.speed-dial-buttons a { + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; +} +.ripple-wave { + left: 0; + top: 0; + position: absolute !important; + border-radius: 50%; + pointer-events: none; + z-index: -1; + padding: 0; + margin: 0; + font-size: 0; + transform: translate3d(0px, 0px, 0) scale(0); + transition-duration: 1400ms; + background-color: var(--f7-touch-ripple-color); +} +.ripple-wave.ripple-wave-fill { + transition-duration: 300ms; + opacity: 0.35; +} +.ripple-wave.ripple-wave-out { + transition-duration: 600ms; + opacity: 0; +} +.button-fill .ripple-wave, +.picker-calendar-day .ripple-wave, +.menu .ripple-wave { + z-index: 1; +} +.checkbox .ripple-wave, +.radio .ripple-wave, +.data-table .sortable-cell .ripple-wave { + z-index: 0; +} +[class*="ripple-color-"] { + --f7-touch-ripple-color: var(--f7-theme-color-ripple-color); +} +/* === Icon === */ +.f7-icons, +.material-icons { + width: 1em; + height: 1em; +} +i.icon { + display: inline-block; + vertical-align: middle; + background-size: 100% auto; + background-position: center; + background-repeat: no-repeat; + font-style: normal; + position: relative; +} +.icon-back:after, +.icon-prev:after, +.icon-forward:after, +.icon-next:after { + font-family: 'framework7-core-icons'; + font-weight: normal; + font-style: normal; + line-height: 1; + letter-spacing: normal; + text-transform: none; + white-space: nowrap; + word-wrap: normal; + direction: ltr; + -webkit-font-smoothing: antialiased; + text-rendering: optimizeLegibility; + -moz-osx-font-smoothing: grayscale; + font-feature-settings: "liga"; + text-align: center; + display: block; + width: 100%; + height: 100%; + font-size: 20px; +} +.icon[class*="color-"] { + color: var(--f7-theme-color); +} +.ios .icon-back, +.ios .icon-prev, +.ios .icon-forward, +.ios .icon-next { + width: 12px; + height: 20px; + line-height: 20px; +} +.ios .icon-back:after, +.ios .icon-prev:after, +.ios .icon-forward:after, +.ios .icon-next:after { + line-height: inherit; +} +.ios .icon-prev:after, +.ios .icon-next:after { + font-size: 16px; +} +.ios .icon-back:after, +.ios .icon-prev:after { + content: 'chevron_right_ios'; +} +.ios .icon-forward:after, +.ios .icon-next:after { + content: 'chevron_left_ios'; +} +.md .icon-back, +.md .icon-forward, +.md .icon-next, +.md .icon-prev { + width: 24px; + height: 24px; +} +.md .icon-back:after, +.md .icon-forward:after, +.md .icon-next:after, +.md .icon-prev:after { + line-height: 1.2; +} +.md .icon-back:after { + content: 'arrow_right_md'; +} +.md .icon-forward:after { + content: 'arrow_left_md'; +} +.md .icon-next:after { + content: 'chevron_left_md'; +} +.md .icon-prev:after { + content: 'chevron_right_md'; +} +.aurora .f7-icons, +.aurora .material-icons { + font-size: 18px; +} +.aurora .icon-back, +.aurora .icon-prev, +.aurora .icon-forward, +.aurora .icon-next { + width: 9px; + height: 14px; + line-height: 14px; +} +.aurora .icon-back:after, +.aurora .icon-prev:after, +.aurora .icon-forward:after, +.aurora .icon-next:after { + line-height: inherit; +} +.aurora .icon-back:after, +.aurora .icon-prev:after { + content: 'chevron_right_aurora'; +} +.aurora .icon-forward:after, +.aurora .icon-next:after { + content: 'chevron_left_aurora'; +} +.custom-modal-backdrop { + z-index: 10500; +} +.custom-modal-backdrop, +.actions-backdrop, +.dialog-backdrop, +.popover-backdrop, +.popup-backdrop, +.preloader-backdrop, +.sheet-backdrop, +.fab-backdrop { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + background: rgba(0, 0, 0, 0.4); + z-index: 13000; + visibility: hidden; + opacity: 0; + transition-duration: 400ms; +} +.custom-modal-backdrop.not-animated, +.actions-backdrop.not-animated, +.dialog-backdrop.not-animated, +.popover-backdrop.not-animated, +.popup-backdrop.not-animated, +.preloader-backdrop.not-animated, +.sheet-backdrop.not-animated, +.fab-backdrop.not-animated { + transition-duration: 0ms; +} +.custom-modal-backdrop.backdrop-in, +.actions-backdrop.backdrop-in, +.dialog-backdrop.backdrop-in, +.popover-backdrop.backdrop-in, +.popup-backdrop.backdrop-in, +.preloader-backdrop.backdrop-in, +.sheet-backdrop.backdrop-in, +.fab-backdrop.backdrop-in { + visibility: visible; + opacity: 1; +} +/* === Appbar === */ +:root { + /* + --f7-appbar-offset: var(--f7-appbar-height); + --f7-appbar-extra-offset: 0px; + --f7-appbar-bg-color: var(--f7-bars-bg-color); + --f7-appbar-bg-color-rgb: var(--f7-bars-bg-color-rgb); + --f7-appbar-bg-image: var(--f7-bars-bg-image); + --f7-appbar-border-color: var(--f7-bars-border-color); + --f7-appbar-link-color: var(--f7-bars-link-color); + --f7-appbar-text-color: var(--f7-bars-text-color); + */ + --f7-appbar-shadow-image: none; +} +.ios { + --f7-appbar-height: 44px; + --f7-appbar-inner-padding-left: 8px; + --f7-appbar-inner-padding-right: 8px; +} +.md { + --f7-appbar-height: 48px; + --f7-appbar-inner-padding-left: 16px; + --f7-appbar-inner-padding-right: 16px; +} +.aurora { + --f7-appbar-height: 38px; + --f7-appbar-inner-padding-left: 16px; + --f7-appbar-inner-padding-right: 16px; +} +.appbar { + position: relative; + left: 0; + top: 0; + width: 100%; + z-index: 500; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + box-sizing: border-box; + margin: 0; + transform: translate3d(0, 0, 0); + height: calc(var(--f7-appbar-height) + var(--f7-safe-area-top)); + background-image: var(--f7-appbar-bg-image, var(--f7-bars-bg-image)); + background-color: var(--f7-appbar-bg-color, var(--f7-bars-bg-color)); + color: var(--f7-appbar-text-color, var(--f7-bars-text-color)); + font-size: var(--f7-appbar-font-size); + z-index: 7000; +} +@supports ((-webkit-backdrop-filter: blur(20px)) or (backdrop-filter: blur(20px))) { + .ios-translucent-bars .appbar { + background-color: rgba(var(--f7-appbar-bg-color-rgb, var(--f7-bars-bg-color-rgb)), var(--f7-bars-translucent-opacity)); + -webkit-backdrop-filter: saturate(180%) blur(var(--f7-bars-translucent-blur)); + backdrop-filter: saturate(180%) blur(var(--f7-bars-translucent-blur)); + } +} +.appbar .panel ~ .appbar { + z-index: 5500; +} +.appbar a { + color: var(--f7-appbar-link-color, var(--f7-bars-link-color, var(--f7-theme-color))); +} +.appbar a.link { + display: flex; + justify-content: flex-start; + line-height: var(--f7-appbar-link-line-height, var(--f7-appbar-height)); + height: var(--f7-appbar-link-height, var(--f7-appbar-height)); +} +.appbar .left, +.appbar .center, +.appbar .right { + display: flex; + align-items: center; +} +.appbar.no-hairline:after, +.appbar.no-border:after { + display: none !important; +} +.appbar.no-hairline .title-large:after, +.appbar.no-border .title-large:after { + display: none !important; +} +.appbar.no-shadow:before { + display: none !important; +} +.appbar:after, +.appbar:before { + -webkit-backface-visibility: hidden; + backface-visibility: hidden; +} +.appbar:after { + content: ''; + position: absolute; + background-color: var(--f7-appbar-border-color, var(--f7-bars-border-color)); + display: block; + z-index: 15; + top: auto; + right: auto; + bottom: 0; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 100%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +.appbar:before { + content: ''; + position: absolute; + right: 0; + width: 100%; + top: 100%; + bottom: auto; + height: 8px; + pointer-events: none; + background: var(--f7-appbar-shadow-image); +} +.appbar:after { + z-index: 1; +} +.appbar ~ * { + --f7-appbar-app-offset: calc(var(--f7-appbar-height) + var(--f7-appbar-extra-offset, 0px) + var(--f7-safe-area-top)); +} +.appbar ~ .views, +.appbar ~ .view, +.appbar ~ .appbar { + --f7-safe-area-top: 0px; +} +.appbar ~ .panel .view, +.appbar ~ .panel .page, +.appbar ~ .panel .page-content { + --f7-safe-area-top: 0px; +} +.appbar-inner { + position: absolute; + left: 0; + top: var(--f7-safe-area-top); + width: 100%; + height: var(--f7-appbar-height); + display: flex; + align-items: center; + justify-content: space-between; + box-sizing: border-box; + padding: 0 calc(var(--f7-appbar-inner-padding-right) + var(--f7-safe-area-right)) 0 calc(var(--f7-appbar-inner-padding-left) + var(--f7-safe-area-left)); +} +.appbar-inner.stacked { + display: none; +} +/* === Dialog === */ +:root { + --f7-dialog-button-text-color: var(--f7-theme-color); + --f7-dialog-button-text-align: center; + --f7-dialog-input-bg-color: #fff; +} +:root .theme-dark, +:root.theme-dark { + --f7-dialog-text-color: #fff; +} +.ios { + --f7-dialog-box-shadow: none; + --f7-dialog-width: 270px; + --f7-dialog-inner-padding: 16px; + --f7-dialog-border-radius: 13px; + --f7-dialog-text-align: center; + --f7-dialog-font-size: 14px; + --f7-dialog-title-text-color: inherit; + --f7-dialog-title-font-size: 18px; + --f7-dialog-title-font-weight: 600; + --f7-dialog-title-line-height: inherit; + --f7-dialog-button-font-size: 17px; + --f7-dialog-button-height: 44px; + --f7-dialog-button-letter-spacing: 0; + --f7-dialog-button-font-weight: 400; + --f7-dialog-button-text-transform: none; + --f7-dialog-input-border-radius: 4px; + --f7-dialog-input-font-size: 14px; + --f7-dialog-input-height: 32px; + --f7-dialog-input-border-width: 1px; + --f7-dialog-input-placeholder-color: #a9a9a9; + --f7-dialog-preloader-size: 34px; + --f7-dialog-bg-color: rgba(255, 255, 255, 0.95); + --f7-dialog-bg-color-rgb: 255, 255, 255; + --f7-dialog-text-color: #000; + --f7-dialog-button-pressed-bg-color: rgba(0, 0, 0, 0.1); + --f7-dialog-input-border-color: rgba(0, 0, 0, 0.3); + --f7-dialog-border-divider-color: rgba(0, 0, 0, 0.2); +} +.ios .theme-dark, +.ios.theme-dark { + --f7-dialog-bg-color: rgba(45, 45, 45, 0.95); + --f7-dialog-bg-color-rgb: 45, 45, 45; + --f7-dialog-button-pressed-bg-color: rgba(0, 0, 0, 0.2); + --f7-dialog-border-divider-color: rgba(255, 255, 255, 0.15); + --f7-dialog-input-border-color: rgba(255, 255, 255, 0.15); + --f7-dialog-input-bg-color: rgba(0, 0, 0, 0.5); +} +.md { + --f7-dialog-box-shadow: var(--f7-elevation-24); + --f7-dialog-width: 280px; + --f7-dialog-inner-padding: 24px; + --f7-dialog-border-radius: 4px; + --f7-dialog-text-align: right; + --f7-dialog-font-size: 16px; + --f7-dialog-title-font-size: 20px; + --f7-dialog-title-font-weight: 500; + --f7-dialog-title-line-height: 1.3; + --f7-dialog-button-font-size: 14px; + --f7-dialog-button-height: 36px; + --f7-dialog-button-letter-spacing: 0.03em; + --f7-dialog-button-font-weight: 500; + --f7-dialog-button-text-transform: uppercase; + --f7-dialog-input-border-radius: 0px; + --f7-dialog-input-font-size: 16px; + --f7-dialog-input-height: 36px; + --f7-dialog-input-border-color: transparent; + --f7-dialog-input-border-width: 0px; + --f7-dialog-preloader-size: 32px; + --f7-dialog-bg-color: #fff; + --f7-dialog-text-color: rgba(0, 0, 0, 0.54); + --f7-dialog-title-text-color: #212121; + --f7-dialog-button-pressed-bg-color: rgba(0, 0, 0, 0.1); + --f7-dialog-input-placeholder-color: rgba(0, 0, 0, 0.35); +} +.md .theme-dark, +.md.theme-dark { + --f7-dialog-bg-color: #1c1c1d; + --f7-dialog-title-text-color: #fff; + --f7-dialog-button-pressed-bg-color: rgba(255, 255, 255, 0.1); + --f7-dialog-input-bg-color: transparent; + --f7-dialog-input-placeholder-color: rgba(255, 255, 255, 0.54); +} +.aurora { + --f7-dialog-box-shadow: 0 0 20px 0 rgba(0, 0, 0, 0.15), 0 25px 30px 0 rgba(0,0,0,0.35); + --f7-dialog-width: 300px; + --f7-dialog-inner-padding: 20px; + --f7-dialog-border-radius: 4px; + --f7-dialog-text-align: right; + --f7-dialog-font-size: 14px; + --f7-dialog-title-font-size: 14px; + --f7-dialog-title-font-weight: 700; + --f7-dialog-title-line-height: inherit; + --f7-dialog-button-font-size: 13px; + --f7-dialog-button-height: 28px; + --f7-dialog-button-letter-spacing: 0; + --f7-dialog-button-font-weight: 500; + --f7-dialog-button-text-transform: none; + /* + --f7-dialog-button-pressed-bg-color: var(--f7-theme-color-shade); + --f7-dialog-button-hover-bg-color: var(--f7-theme-color-tint); + */ + --f7-dialog-input-border-radius: 4px; + --f7-dialog-input-font-size: 13px; + --f7-dialog-input-height: 24px; + --f7-dialog-input-border-width: 1px; + --f7-dialog-preloader-size: 24px; + --f7-dialog-bg-color: #fff; + --f7-dialog-title-text-color: inherit; + --f7-dialog-text-color: #000; + --f7-dialog-button-text-color: #fff; + --f7-dialog-input-border-color: rgba(0, 0, 0, 0.12); + --f7-dialog-input-placeholder-color: rgba(0, 0, 0, 0.32); +} +.aurora .theme-dark, +.aurora.theme-dark { + --f7-dialog-bg-color: #1c1c1d; + --f7-dialog-title-text-color: #fff; + --f7-dialog-input-bg-color: rgba(0, 0, 0, 0.25); + --f7-dialog-input-placeholder-color: rgba(255, 255, 255, 0.54); + --f7-dialog-input-border-color: rgba(255, 255, 255, 0.15); +} +.dialog { + position: absolute; + z-index: 13500; + left: 50%; + margin-top: 0; + top: 50%; + overflow: hidden; + opacity: 0; + transform: translate3d(0, -50%, 0) scale(1.185); + transition-property: transform, opacity; + display: none; + transition-duration: 400ms; + box-shadow: var(--f7-dialog-box-shadow); + width: var(--f7-dialog-width); + margin-left: calc(-1 * var(--f7-dialog-width) / 2); + border-radius: var(--f7-dialog-border-radius); + text-align: var(--f7-dialog-text-align); + color: var(--f7-dialog-text-color); + font-size: var(--f7-dialog-font-size); + background: var(--f7-dialog-bg-color); + will-change: transform, opacity; +} +@supports ((-webkit-backdrop-filter: blur(20px)) or (backdrop-filter: blur(20px))) { + .ios-translucent-modals .dialog { + background-color: rgba(var(--f7-dialog-bg-color-rgb), 0.8); + -webkit-backdrop-filter: saturate(180%) blur(20px); + backdrop-filter: saturate(180%) blur(20px); + } +} +.dialog.modal-in { + opacity: 1; + transform: translate3d(0, -50%, 0) scale(1); +} +.dialog.modal-out { + opacity: 0; + z-index: 13499; +} +.dialog.not-animated { + transition-duration: 0ms; +} +.dialog-inner { + position: relative; + padding: var(--f7-dialog-inner-padding); +} +.dialog-title { + color: var(--f7-dialog-title-text-color); + font-size: var(--f7-dialog-title-font-size); + font-weight: var(--f7-dialog-title-font-weight); + line-height: var(--f7-dialog-title-line-height); +} +.dialog-buttons { + position: relative; + display: flex; + flex-direction: row-reverse; +} +.dialog-buttons-vertical .dialog-buttons { + display: block; + height: auto !important; +} +.dialog-button { + box-sizing: border-box; + overflow: hidden; + position: relative; + white-space: nowrap; + text-overflow: ellipsis; + color: var(--f7-dialog-button-text-color); + font-size: var(--f7-dialog-button-font-size); + height: var(--f7-dialog-button-height); + line-height: var(--f7-dialog-button-height); + letter-spacing: var(--f7-dialog-button-letter-spacing); + text-align: var(--f7-dialog-button-text-align); + font-weight: var(--f7-dialog-button-font-weight); + text-transform: var(--f7-dialog-button-text-transform); + display: block; + cursor: pointer; +} +.dialog-button.active-state { + background-color: var(--f7-dialog-button-pressed-bg-color); +} +.dialog-no-buttons .dialog-buttons { + display: none; +} +.dialog-input-field { + position: relative; +} +input.dialog-input[type] { + box-sizing: border-box; + margin: 0; + margin-top: 15px; + border-radius: var(--f7-dialog-input-border-radius); + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + width: 100%; + display: block; + font-family: inherit; + box-shadow: none; + font-size: var(--f7-dialog-input-font-size); + height: var(--f7-dialog-input-height); + background-color: var(--f7-dialog-input-bg-color); + border: var(--f7-dialog-input-border-width) solid var(--f7-dialog-input-border-color); +} +input.dialog-input[type]::-webkit-input-placeholder { + color: var(--f7-dialog-input-placeholder-color); +} +input.dialog-input[type]::placeholder { + color: var(--f7-dialog-input-placeholder-color); +} +.dialog-input-double input.dialog-input { + border-radius: var(--f7-dialog-input-border-radius) var(--f7-dialog-input-border-radius) 0 0; +} +.dialog-input-double + .dialog-input-double input.dialog-input { + border-radius: 0 0 var(--f7-dialog-input-border-radius) var(--f7-dialog-input-border-radius); +} +.dialog-preloader .preloader { + --f7-preloader-size: var(--f7-dialog-preloader-size); +} +html.with-modal-dialog .page-content { + overflow: hidden; + -webkit-overflow-scrolling: auto; +} +.ios .dialog.modal-out { + transform: translate3d(0, -50%, 0) scale(1); +} +.ios .dialog-inner { + border-radius: var(--f7-dialog-border-radius) var(--f7-dialog-border-radius) 0 0; +} +.ios .dialog-inner:after { + content: ''; + position: absolute; + background-color: var(--f7-dialog-border-divider-color); + display: block; + z-index: 15; + top: auto; + right: auto; + bottom: 0; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 100%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +.ios .dialog-title + .dialog-text { + margin-top: 5px; +} +.ios .dialog-buttons { + height: 44px; + justify-content: center; +} +.ios .dialog-button { + width: 100%; + padding: 0 5px; + -webkit-box-flex: 1; + -ms-flex: 1; +} +.ios .dialog-button:after { + content: ''; + position: absolute; + background-color: var(--f7-dialog-border-divider-color); + display: block; + z-index: 15; + top: 0; + right: 0; + bottom: auto; + left: auto; + width: 1px; + height: 100%; + transform-origin: 100% 50%; + transform: scaleX(calc(1 / var(--f7-device-pixel-ratio))); +} +.ios .dialog-button:first-child { + border-radius: 0 0 0 var(--f7-dialog-border-radius); +} +.ios .dialog-button:last-child { + border-radius: 0 0 var(--f7-dialog-border-radius) 0; +} +.ios .dialog-button:last-child:after { + display: none !important; +} +.ios .dialog-button:first-child:last-child { + border-radius: 0 0 var(--f7-dialog-border-radius) var(--f7-dialog-border-radius); +} +.ios .dialog-button.dialog-button-bold { + font-weight: 500; +} +.ios .dialog-button[class*="color-"] { + --f7-dialog-button-text-color: var(--f7-theme-color); +} +.ios .dialog-buttons-vertical .dialog-buttons { + height: auto; +} +.ios .dialog-buttons-vertical .dialog-button { + border-radius: 0; +} +.ios .dialog-buttons-vertical .dialog-button:after { + content: ''; + position: absolute; + background-color: var(--f7-dialog-border-divider-color); + display: block; + z-index: 15; + top: auto; + right: auto; + bottom: 0; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 100%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +.ios .dialog-buttons-vertical .dialog-button:last-child { + border-radius: 0 0 var(--f7-dialog-border-radius) var(--f7-dialog-border-radius); +} +.ios .dialog-buttons-vertical .dialog-button:last-child:after { + display: none !important; +} +.ios .dialog-no-buttons .dialog-inner { + border-radius: var(--f7-dialog-border-radius); +} +.ios .dialog-no-buttons .dialog-inner:after { + display: none !important; +} +.ios .dialog-input-field { + margin-top: 15px; +} +.ios .dialog-input { + padding: 0 5px; +} +.ios .dialog-input + .dialog-input { + margin-top: 5px; +} +.ios .dialog-input-double + .dialog-input-double { + margin-top: 0; +} +.ios .dialog-input-double + .dialog-input-double .dialog-input { + border-top: 0; + margin-top: 0; +} +.ios .dialog-preloader .dialog-title ~ .preloader, +.ios .dialog-preloader .dialog-text ~ .preloader { + margin-top: 15px; +} +.ios .dialog-progress .dialog-title ~ .progressbar, +.ios .dialog-progress .dialog-text ~ .progressbar, +.ios .dialog-progress .dialog-title ~ .progressbar-infinite, +.ios .dialog-progress .dialog-text ~ .progressbar-infinite { + margin-top: 15px; +} +.md .dialog.modal-out { + transform: translate3d(0, -50%, 0) scale(0.815); +} +.md .dialog-title + .dialog-text { + margin-top: 20px; +} +.md .dialog-text { + line-height: 1.5; +} +.md .dialog-buttons { + height: 48px; + padding: 6px 8px; + overflow: hidden; + box-sizing: border-box; + justify-content: flex-end; +} +.md .dialog-button { + border-radius: 4px; + min-width: 64px; + padding: 0 8px; + border: none; + transition-duration: 300ms; + transform: translate3d(0, 0, 0); +} +.md .dialog-button.dialog-button-bold { + font-weight: 700; +} +.md .dialog-button + .dialog-button { + margin-left: 4px; +} +.md .dialog-button[class*="color-"] { + --f7-dialog-button-text-color: var(--f7-theme-color); +} +.md .dialog-buttons-vertical .dialog-buttons { + padding: 0 0 8px 0; +} +.md .dialog-buttons-vertical .dialog-button { + margin-left: 0; + text-align: right; + height: 48px; + line-height: 48px; + border-radius: 0; + padding-left: 16px; + padding-right: 16px; +} +.md .dialog-input { + padding: 0; + transition-duration: 200ms; + position: relative; +} +.md .dialog-input + .dialog-input { + margin-top: 16px; +} +.md .dialog-preloader .dialog-title, +.md .dialog-progress .dialog-title, +.md .dialog-preloader .dialog-inner, +.md .dialog-progress .dialog-inner { + text-align: center; +} +.md .dialog-preloader .dialog-title ~ .preloader, +.md .dialog-preloader .dialog-text ~ .preloader { + margin-top: 20px; +} +.md .dialog-progress .dialog-title ~ .progressbar, +.md .dialog-progress .dialog-text ~ .progressbar, +.md .dialog-progress .dialog-title ~ .progressbar-infinite, +.md .dialog-progress .dialog-text ~ .progressbar-infinite { + margin-top: 16px; +} +.aurora .dialog.modal-out { + transform: translate3d(0, -50%, 0) scale(0.815); +} +.aurora .dialog-title + .dialog-text { + margin-top: 10px; +} +.aurora .dialog-text { + line-height: 1.5; +} +.aurora .dialog-buttons { + padding: var(--f7-dialog-inner-padding); + padding-top: 0; + overflow: hidden; + box-sizing: border-box; + justify-content: flex-end; +} +.aurora .dialog-button { + border-radius: 4px; + min-width: 64px; + padding: 0 10px; + border: none; + transition-duration: 300ms; + transform: translate3d(0, 0, 0); + background: var(--f7-theme-color); +} +.aurora .dialog-button.dialog-button-bold { + font-weight: 600; +} +.aurora .dialog-button + .dialog-button { + margin-left: 16px; +} +.aurora .dialog-button.active-state { + background-color: var(--f7-dialog-button-pressed-bg-color, var(--f7-theme-color-shade)); +} +.aurora.device-desktop .dialog-button:not(.active-state):not(.no-hover):hover { + background-color: var(--f7-dialog-button-hover-bg-color, var(--f7-theme-color-tint)); +} +.aurora .dialog-buttons-vertical .dialog-buttons { + display: flex; + flex-direction: column; + align-items: flex-end; +} +.aurora .dialog-buttons-vertical .dialog-button { + margin-left: 0; + flex-shrink: 0; +} +.aurora .dialog-buttons-vertical .dialog-button + .dialog-button { + margin-top: 5px; +} +.aurora .dialog-input-field { + margin-top: 10px; +} +.aurora .dialog-input-field input.dialog-input { + margin-top: 0; +} +.aurora .dialog-input { + padding: 0 4px; + transition-duration: 200ms; + position: relative; +} +.aurora .dialog-input + .dialog-input { + margin-top: 10px; +} +.aurora .dialog-input-double + .dialog-input-double { + margin-top: 0; +} +.aurora .dialog-input-double + .dialog-input-double .dialog-input { + border-top: 0; + margin-top: 0; +} +.aurora .dialog-preloader .dialog-title, +.aurora .dialog-progress .dialog-title, +.aurora .dialog-preloader .dialog-inner, +.aurora .dialog-progress .dialog-inner { + text-align: center; +} +.aurora .dialog-preloader .dialog-title ~ .preloader, +.aurora .dialog-preloader .dialog-text ~ .preloader { + margin-top: 10px; +} +.aurora .dialog-progress .dialog-title ~ .progressbar, +.aurora .dialog-progress .dialog-text ~ .progressbar, +.aurora .dialog-progress .dialog-title ~ .progressbar-infinite, +.aurora .dialog-progress .dialog-text ~ .progressbar-infinite { + margin-top: 15px; +} +/* === Popup === */ +:root { + --f7-popup-border-radius: 0px; + --f7-popup-tablet-width: 630px; + --f7-popup-tablet-height: 630px; + --f7-popup-transition-duration: 400ms; + --f7-popup-push-border-radius: 10px; + --f7-popup-push-offset: var(--f7-safe-area-top); + /* + --f7-popup-tablet-border-radius: var(--f7-popup-border-radius); + */ +} +.ios { + --f7-popup-tablet-border-radius: 5px; + --f7-popup-box-shadow: none; +} +.md { + --f7-popup-tablet-border-radius: 4px; + --f7-popup-box-shadow: 0px 20px 44px rgba(0, 0, 0, 0.5); +} +.aurora { + --f7-popup-tablet-border-radius: 4px; + --f7-popup-box-shadow: 0px 20px 44px rgba(0, 0, 0, 0.5); +} +.popup-backdrop { + z-index: 10500; +} +.popup { + position: absolute; + left: 0; + top: 0px; + width: 100%; + height: 100%; + display: none; + box-sizing: border-box; + transition-property: transform; + transform: translate3d(0, 100vh, 0); + background: #fff; + z-index: 11000; + overflow: hidden; + border-radius: var(--f7-popup-border-radius); +} +.theme-dark .popup, +.popup.theme-dark { + background: #000; +} +.popup.modal-in, +.popup.modal-out { + transition-duration: var(--f7-popup-transition-duration); +} +.popup.not-animated { + transition-duration: 0ms; +} +.popup.modal-in { + display: block; + transform: translate3d(0, 0, 0); +} +.popup.modal-out { + transform: translate3d(0, 100vh, 0); +} +.popup.swipe-close-to-top.modal-out { + transform: translate3d(0, -100vh, 0); +} +@media (min-width: 630px) and (min-height: 630px) { + .popup:not(.popup-tablet-fullscreen) { + --f7-safe-area-top: 0px; + --f7-safe-area-bottom: 0px; + width: var(--f7-popup-tablet-width); + height: var(--f7-popup-tablet-height); + left: 50%; + top: 50%; + margin-left: calc(-1 * var(--f7-popup-tablet-width) / 2); + margin-top: calc(-1 * var(--f7-popup-tablet-height) / 2); + transform: translate3d(0, 100vh, 0); + box-shadow: var(--f7-popup-box-shadow); + border-radius: var(--f7-popup-tablet-border-radius, var(--f7-popup-border-radius)); + } + .popup:not(.popup-tablet-fullscreen).modal-in { + transform: translate3d(0, 0, 0); + } + .popup:not(.popup-tablet-fullscreen).modal-out { + transform: translate3d(0, 100vh, 0); + } + .popup:not(.popup-tablet-fullscreen).swipe-close-to-top.modal-out { + transform: translate3d(0, -100vh, 0); + } + .popup:not(.popup-tablet-fullscreen).popup-behind { + transform: translate3d(0, 0, 0) scale(0.9); + } +} +html.with-modal-popup .framework7-root > .views .page-content, +html.with-modal-popup .framework7-root > .view .page-content, +html.with-modal-popup .framework7-root > .panel .page-content { + overflow: hidden; + -webkit-overflow-scrolling: auto; +} +html.with-modal-popup-push .popup-push, +html.with-modal-popup-push-closing .popup-push { + top: calc(var(--f7-popup-push-offset) + 10px); + height: calc(100% - var(--f7-popup-push-offset) - 10px); + border-radius: var(--f7-popup-push-border-radius) var(--f7-popup-push-border-radius) 0 0; + --f7-safe-area-top: 0px; +} +html.with-modal-popup-push .popup-push .view, +html.with-modal-popup-push-closing .popup-push .view, +html.with-modal-popup-push .popup-push .page, +html.with-modal-popup-push-closing .popup-push .page { + --f7-safe-area-top: 0px; +} +html.with-modal-popup-push .framework7-root, +html.with-modal-popup-push-closing .framework7-root { + background: #000; +} +html.with-modal-popup-push .framework7-root > .views, +html.with-modal-popup-push-closing .framework7-root > .views, +html.with-modal-popup-push .framework7-root > .view, +html.with-modal-popup-push-closing .framework7-root > .view { + transition-duration: var(--f7-popup-transition-duration); +} +html.with-modal-popup-push.theme-dark .framework7-root > .views:after, +html.with-modal-popup-push-closing.theme-dark .framework7-root > .views:after, +html.with-modal-popup-push.theme-dark .framework7-root > .view:after, +html.with-modal-popup-push-closing.theme-dark .framework7-root > .view:after, +html.with-modal-popup-push .theme-dark .framework7-root > .views:after, +html.with-modal-popup-push-closing .theme-dark .framework7-root > .views:after, +html.with-modal-popup-push .theme-dark .framework7-root > .view:after, +html.with-modal-popup-push-closing .theme-dark .framework7-root > .view:after, +html.with-modal-popup-push .theme-dark.framework7-root > .views:after, +html.with-modal-popup-push-closing .theme-dark.framework7-root > .views:after, +html.with-modal-popup-push .theme-dark.framework7-root > .view:after, +html.with-modal-popup-push-closing .theme-dark.framework7-root > .view:after, +html.with-modal-popup-push .framework7-root > .views.theme-dark:after, +html.with-modal-popup-push-closing .framework7-root > .views.theme-dark:after, +html.with-modal-popup-push .framework7-root > .view.theme-dark:after, +html.with-modal-popup-push-closing .framework7-root > .view.theme-dark:after { + content: ''; + position: absolute; + pointer-events: none; + left: 0; + top: 0; + width: 100%; + height: 100%; + background: rgba(255, 255, 255, 0.1); + z-index: 13000; + border-radius: var(--f7-popup-push-border-radius) var(--f7-popup-push-border-radius) 0 0; + opacity: 1; + animation: popup-dark-push-overlay-fade-in var(--f7-popup-transition-duration) forwards; +} +html.with-modal-popup-push .framework7-root > .views, +html.with-modal-popup-push .framework7-root > .view { + border-radius: var(--f7-popup-push-border-radius) var(--f7-popup-push-border-radius) 0 0; + transform: translate3d(0, 0, 0px) scale(var(--f7-popup-push-scale, 1)) !important; +} +html.with-modal-popup-push .popup:after { + content: ''; + pointer-events: none; + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + background: rgba(0, 0, 0, 0.4); + z-index: 13000; + transition-duration: var(--f7-popup-transition-duration); + border-radius: var(--f7-popup-push-border-radius) var(--f7-popup-push-border-radius) 0 0; + opacity: 0; +} +html.with-modal-popup-push.theme-dark .popup:after, +html.with-modal-popup-push .theme-dark .popup:after, +html.with-modal-popup-push .theme-dark.popup:after { + background: rgba(255, 255, 255, 0.05); +} +html.with-modal-popup-push .popup-behind { + transform: translate3d(0, 0px, 0px) scale(var(--f7-popup-push-scale, 1)); +} +html.with-modal-popup-push .popup-behind:not(.popup-push) { + border-radius: var(--f7-popup-push-border-radius) var(--f7-popup-push-border-radius) 0 0; +} +html.with-modal-popup-push .popup-behind.popup-push { + transform: translate3d(0, calc(0px - var(--f7-popup-push-offset) - 10px), 0px) scale(var(--f7-popup-push-scale, 1)); +} +html.with-modal-popup-push .popup-behind:after { + opacity: 1; + pointer-events: auto; +} +html.with-modal-popup-push-closing.theme-dark .framework7-root > .views:after, +html.with-modal-popup-push-closing.theme-dark .framework7-root > .view:after, +html.with-modal-popup-push-closing .theme-dark .framework7-root > .views:after, +html.with-modal-popup-push-closing .theme-dark .framework7-root > .view:after, +html.with-modal-popup-push-closing .theme-dark.framework7-root > .views:after, +html.with-modal-popup-push-closing .theme-dark.framework7-root > .view:after, +html.with-modal-popup-push-closing .framework7-root > .views.theme-dark:after, +html.with-modal-popup-push-closing .framework7-root > .view.theme-dark:after { + animation: popup-dark-push-overlay-fade-out var(--f7-popup-transition-duration) forwards; +} +@keyframes popup-dark-push-overlay-fade-in { + from { + opacity: 0; + } + to { + opacity: 1; + } +} +@keyframes popup-dark-push-overlay-fade-out { + from { + opacity: 1; + } + to { + opacity: 0; + } +} +/* === Login Screen === */ +:root { + --f7-login-screen-blocks-max-width: 480px; + /* + --f7-login-screen-list-button-text-color: var(--f7-theme-color); + */ + --f7-login-screen-title-text-align: center; + --f7-login-screen-title-text-color: inherit; + --f7-login-screen-title-letter-spacing: 0; + --f7-login-screen-title-font-weight: 600; + --f7-login-screen-title-font-size: 28px; + --f7-login-screen-content-bg-color: #fff; + --f7-login-screen-bg-color: #fff; +} +:root .theme-dark, +:root.theme-dark { + --f7-login-screen-bg-color: #121212; + --f7-login-screen-content-bg-color: #121212; +} +.ios { + --f7-login-screen-blocks-margin-vertical: 25px; +} +.ios .theme-dark, +.ios.theme-dark { + --f7-login-screen-bg-color: #000; + --f7-login-screen-content-bg-color: #000; +} +.md { + --f7-login-screen-blocks-margin-vertical: 24px; +} +.aurora { + --f7-login-screen-blocks-margin-vertical: 15px; +} +.login-screen { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + display: none; + box-sizing: border-box; + transition-property: transform; + transform: translate3d(0, 100vh, 0); + background: var(--f7-login-screen-bg-color); + z-index: 11000; +} +.login-screen.modal-in, +.login-screen.modal-out { + transition-duration: 400ms; +} +.login-screen.not-animated { + transition-duration: 0ms; +} +.login-screen.modal-in { + display: block; + transform: translate3d(0, 0, 0); +} +.login-screen.modal-out { + transform: translate3d(0, 100%, 0); +} +.login-screen-content, +.login-screen-page, +.login-screen .page { + background: var(--f7-login-screen-content-bg-color); +} +.login-screen-content .list-button, +.login-screen-page .list-button { + text-align: center; + color: var(--f7-login-screen-list-button-text-color, var(--f7-theme-color)); +} +.login-screen-content .login-screen-title, +.login-screen-page .login-screen-title, +.login-screen-content .list, +.login-screen-page .list, +.login-screen-content .block, +.login-screen-page .block { + margin: var(--f7-login-screen-blocks-margin-vertical) auto; +} +.login-screen-content .login-screen-title, +.login-screen-page .login-screen-title, +.login-screen-content .list, +.login-screen-page .list, +.login-screen-content .block, +.login-screen-page .block, +.login-screen-content .block-footer, +.login-screen-page .block-footer, +.login-screen-content .block-header, +.login-screen-page .block-header { + max-width: var(--f7-login-screen-blocks-max-width); +} +.login-screen-content .list ul, +.login-screen-page .list ul { + background: none; +} +.login-screen-content .list ul:before, +.login-screen-page .list ul:before, +.login-screen-content .list ul:after, +.login-screen-page .list ul:after { + display: none !important; +} +.login-screen-content .block-footer, +.login-screen-page .block-footer, +.login-screen-content .block-header, +.login-screen-page .block-header { + text-align: center; + margin-left: auto; + margin-right: auto; +} +.login-screen-title { + text-align: var(--f7-login-screen-title-text-align); + font-size: var(--f7-login-screen-title-font-size); + font-weight: var(--f7-login-screen-title-font-weight); + color: var(--f7-login-screen-title-text-color); + letter-spacing: var(--f7-login-screen-title-letter-spacing); +} +.login-screen-page, +.login-screen > .view > .page, +.login-screen > .page { + display: flex; + flex-direction: column; +} +.login-screen-page .page-content, +.login-screen > .view > .page .page-content, +.login-screen > .page .page-content, +.login-screen-page .login-screen-content, +.login-screen > .view > .page .login-screen-content, +.login-screen > .page .login-screen-content { + margin-top: auto; + margin-bottom: auto; + height: auto; + max-height: 100%; + width: 100%; +} +.theme-dark .login-screen-content .list ul, +.theme-dark .login-screen-content .block-strong, +.theme-dark .login-screen-page .list ul, +.theme-dark .login-screen-page .block-strong, +.theme-dark.login-screen-page .list ul, +.theme-dark.login-screen-page .block-strong { + background-color: transparent; +} +/* === Popover === */ +:root { + --f7-popover-width: 260px; +} +.ios { + --f7-popover-border-radius: 13px; + --f7-popover-box-shadow: none; + --f7-popover-actions-icon-size: 28px; + --f7-popover-bg-color: rgba(255, 255, 255, 0.95); + --f7-popover-actions-label-text-color: rgba(0, 0, 0, 0.45); +} +.ios .theme-dark, +.ios.theme-dark { + --f7-popover-bg-color: rgba(30, 30, 30, 0.95); + --f7-popover-actions-label-text-color: rgba(255, 255, 255, 0.55); +} +.md { + --f7-popover-border-radius: 4px; + --f7-popover-box-shadow: var(--f7-elevation-8); + --f7-popover-actions-icon-size: 24px; + --f7-popover-bg-color: #fff; + --f7-popover-actions-label-text-color: rgba(0, 0, 0, 0.54); +} +.md .theme-dark, +.md.theme-dark { + --f7-popover-bg-color: #1c1c1d; + --f7-popover-actions-label-text-color: rgba(255, 255, 255, 0.54); +} +.aurora { + --f7-popover-width: 200px; + --f7-popover-border-radius: 4px; + --f7-popover-box-shadow: 0 0 3px 0 rgba(0, 0, 0, 0.1), 0 5px 11px 0 rgba(0,0,0,0.28); + --f7-popover-actions-icon-size: 24px; + --f7-popover-bg-color: #fff; + --f7-popover-actions-label-text-color: rgba(0, 0, 0, 0.6); +} +.aurora .theme-dark, +.aurora.theme-dark { + --f7-popover-bg-color: #1c1c1d; + --f7-popover-actions-label-text-color: rgba(255, 255, 255, 0.6); +} +.popover { + width: var(--f7-popover-width); + z-index: 13500; + margin: 0; + top: 0; + opacity: 0; + left: 0; + position: absolute; + display: none; + transition-duration: 300ms; + background-color: var(--f7-popover-bg-color); + border-radius: var(--f7-popover-border-radius); + box-shadow: var(--f7-popover-box-shadow); + will-change: transform, opacity; +} +.popover .list { + margin: 0; +} +.popover .list ul { + background: none; +} +.popover .list:first-child ul:before { + display: none !important; +} +.popover .list:last-child ul:after { + display: none !important; +} +.popover .list:first-child ul { + border-radius: var(--f7-popover-border-radius) var(--f7-popover-border-radius) 0 0; +} +.popover .list:first-child li:first-child, +.popover .list:first-child li:first-child a, +.popover .list:first-child li:first-child > label { + border-radius: var(--f7-popover-border-radius) var(--f7-popover-border-radius) 0 0; +} +.popover .list:last-child ul { + border-radius: 0 0 var(--f7-popover-border-radius) var(--f7-popover-border-radius); +} +.popover .list:last-child li:last-child, +.popover .list:last-child li:last-child a, +.popover .list:last-child li:last-child > label { + border-radius: 0 0 var(--f7-popover-border-radius) var(--f7-popover-border-radius); +} +.popover .list:first-child:last-child li:first-child:last-child, +.popover .list:first-child:last-child li:first-child:last-child a, +.popover .list:first-child:last-child li:first-child:last-child > label, +.popover .list:first-child:last-child ul { + border-radius: var(--f7-popover-border-radius); +} +.popover .list + .list { + margin-top: var(--f7-list-margin-vertical); +} +.popover.modal-in { + opacity: 1; +} +.popover.not-animated { + transition-duration: 0ms; +} +.popover-inner { + overflow: auto; + -webkit-overflow-scrolling: touch; +} +.popover-from-actions .item-link i.icon { + width: var(--f7-popover-actions-icon-size); + height: var(--f7-popover-actions-icon-size); + font-size: var(--f7-popover-actions-icon-size); +} +.popover-from-actions-bold { + font-weight: 600; +} +.popover-from-actions-label { + line-height: 1.3; + position: relative; + display: flex; + align-items: center; + padding: var(--f7-actions-label-padding); + color: var(--f7-popover-actions-label-text-color); + font-size: var(--f7-actions-label-font-size); + justify-content: var(--f7-actions-label-justify-content); +} +.popover-from-actions-label:after { + content: ''; + position: absolute; + background-color: var(--f7-list-item-border-color); + display: block; + z-index: 15; + top: auto; + right: auto; + bottom: 0; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 100%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +.popover-from-actions-label:last-child:after { + display: none !important; +} +.ios .popover { + transform: none; + transition-property: opacity; +} +.ios .popover-angle { + width: 26px; + height: 26px; + position: absolute; + left: -26px; + top: 0; + z-index: 100; + overflow: hidden; +} +.ios .popover-angle:after { + content: ''; + background: var(--f7-popover-bg-color); + width: 26px; + height: 26px; + position: absolute; + left: 0; + top: 0; + border-radius: 3px; + transform: rotate(45deg); +} +.ios .popover-angle.on-left { + left: -26px; +} +.ios .popover-angle.on-left:after { + left: 19px; + top: 0; +} +.ios .popover-angle.on-right { + left: 100%; +} +.ios .popover-angle.on-right:after { + left: -19px; + top: 0; +} +.ios .popover-angle.on-top { + left: 0; + top: -26px; +} +.ios .popover-angle.on-top:after { + left: 0; + top: 19px; +} +.ios .popover-angle.on-bottom { + left: 0; + top: 100%; +} +.ios .popover-angle.on-bottom:after { + left: 0; + top: -19px; +} +.md .popover { + transform: scale(0.85, 0.6); + transition-property: opacity, transform; +} +.md .popover.modal-in { + opacity: 1; + transform: scale(1); +} +.md .popover.modal-out { + opacity: 0; + transform: scale(1); +} +.md .popover-on-top { + transform-origin: center bottom; +} +.md .popover-on-top.popover-on-right { + transform-origin: left bottom; +} +.md .popover-on-top.popover-on-left { + transform-origin: right bottom; +} +.md .popover-on-middle { + transform-origin: center center; +} +.md .popover-on-middle.popover-on-right { + transform-origin: left center; +} +.md .popover-on-middle.popover-on-left { + transform-origin: right center; +} +.md .popover-on-bottom { + transform-origin: center top; +} +.md .popover-on-bottom.popover-on-right { + transform-origin: left top; +} +.md .popover-on-bottom.popover-on-left { + transform-origin: right top; +} +.aurora .popover { + transform: none; + transition-property: opacity; +} +.aurora .popover-angle { + width: 18px; + height: 18px; + position: absolute; + left: -18px; + top: 0; + z-index: 100; + overflow: hidden; +} +.aurora .popover-angle:after { + content: ''; + background: var(--f7-popover-bg-color); + width: 18px; + height: 18px; + position: absolute; + left: 0; + top: 0; + border-radius: 2px; + transform: rotate(45deg); +} +.aurora .popover-angle.on-left { + left: -18px; +} +.aurora .popover-angle.on-left:after { + left: 13px; + top: 0; +} +.aurora .popover-angle.on-right { + left: 100%; +} +.aurora .popover-angle.on-right:after { + left: -13px; + top: 0; +} +.aurora .popover-angle.on-top { + left: 0; + top: -18px; +} +.aurora .popover-angle.on-top:after { + left: 0; + top: 13px; +} +.aurora .popover-angle.on-bottom { + left: 0; + top: 100%; +} +.aurora .popover-angle.on-bottom:after { + left: 0; + top: -13px; +} +/* === Actions === */ +:root { + --f7-actions-grid-button-font-size: 12px; + --f7-actions-grid-button-text-color: #757575; +} +:root .theme-dark, +:root.theme-dark { + --f7-actions-label-text-color: rgba(255, 255, 255, 0.55); +} +.ios { + --f7-actions-border-radius: 13px; + /* + --f7-actions-button-text-color: var(--f7-theme-color); + */ + --f7-actions-button-padding: 0px; + --f7-actions-button-text-align: center; + --f7-actions-button-height: 57px; + --f7-actions-button-height-landscape: 44px; + --f7-actions-button-font-size: 20px; + --f7-actions-button-icon-size: 28px; + --f7-actions-button-justify-content: center; + --f7-actions-label-padding: 8px 10px; + --f7-actions-label-font-size: 13px; + --f7-actions-label-justify-content: center; + --f7-actions-group-border-color: transparent; + --f7-actions-group-margin: 8px; + --f7-actions-grid-button-icon-size: 48px; + --f7-actions-bg-color: rgba(255, 255, 255, 0.95); + --f7-actions-bg-color-rgb: 255, 255, 255; + --f7-actions-button-border-color: rgba(0, 0, 0, 0.2); + --f7-actions-button-pressed-bg-color: rgba(230, 230, 230, 0.9); + --f7-actions-button-pressed-bg-color-rgb: 230, 230, 230; + --f7-actions-label-text-color: #8a8a8a; +} +.ios .theme-dark, +.ios.theme-dark { + --f7-actions-bg-color: rgba(45, 45, 45, 0.95); + --f7-actions-bg-color-rgb: 45, 45, 45; + --f7-actions-button-border-color: rgba(255, 255, 255, 0.15); + --f7-actions-button-pressed-bg-color: rgba(50, 50, 50, 0.9); + --f7-actions-button-pressed-bg-color-rgb: 50, 50, 50; +} +.md { + --f7-actions-border-radius: 0px; + --f7-actions-button-border-color: transparent; + --f7-actions-button-padding: 0 16px; + --f7-actions-button-text-align: left; + --f7-actions-button-height: 48px; + --f7-actions-button-height-landscape: 48px; + --f7-actions-button-font-size: 16px; + --f7-actions-button-icon-size: 24px; + --f7-actions-button-justify-content: space-between; + --f7-actions-label-padding: 12px 16px; + --f7-actions-label-font-size: 16px; + --f7-actions-label-justify-content: flex-start; + --f7-actions-group-margin: 0px; + --f7-actions-grid-button-icon-size: 48px; + --f7-actions-bg-color: #fff; + --f7-actions-button-text-color: rgba(0, 0, 0, 0.87); + --f7-actions-button-pressed-bg-color: #e5e5e5; + --f7-actions-label-text-color: rgba(0, 0, 0, 0.54); + --f7-actions-group-border-color: rgba(0, 0, 0, 0.12); +} +.md .theme-dark, +.md.theme-dark { + --f7-actions-bg-color: #202020; + --f7-actions-button-text-color: #fff; + --f7-actions-button-pressed-bg-color: #2e2e2e; + --f7-actions-group-border-color: rgba(255, 255, 255, 0.15); +} +.aurora { + --f7-actions-border-radius: 4px; + --f7-actions-button-padding: 0 16px; + --f7-actions-button-text-align: center; + --f7-actions-button-height: 32px; + --f7-actions-button-height-landscape: 32px; + --f7-actions-button-font-size: 14px; + --f7-actions-button-icon-size: 18px; + --f7-actions-button-justify-content: space-between; + --f7-actions-label-padding: 10px 16px; + --f7-actions-label-font-size: 12px; + --f7-actions-label-justify-content: center; + --f7-actions-group-margin: 16px; + --f7-actions-grid-button-icon-size: 32px; + --f7-actions-bg-color: #fff; + --f7-actions-button-border-color: rgba(0, 0, 0, 0.12); + /* + --f7-actions-button-text-color: var(--f7-theme-color); + */ + --f7-actions-button-pressed-bg-color: #e5e5e5; + --f7-actions-label-text-color: rgba(0, 0, 0, 0.5); + --f7-actions-group-border-color: rgba(0, 0, 0, 0.1); +} +.aurora .theme-dark, +.aurora.theme-dark { + --f7-actions-bg-color: #202020; + --f7-actions-button-text-color: #fff; + --f7-actions-button-border-color: rgba(255, 255, 255, 0.15); + --f7-actions-button-pressed-bg-color: #2e2e2e; + --f7-actions-group-border-color: rgba(255, 255, 255, 0.15); +} +.actions-modal { + position: absolute; + left: 0; + bottom: 0; + z-index: 13500; + width: 100%; + transform: translate3d(0, 100%, 0); + display: none; + max-height: 100%; + overflow: auto; + -webkit-overflow-scrolling: touch; + transition-property: transform; + will-change: transform; +} +.actions-modal.modal-in, +.actions-modal.modal-out { + transition-duration: 300ms; +} +.actions-modal.not-animated { + transition-duration: 0ms; +} +.actions-modal.modal-in { + transform: translate3d(0, calc(-1 * var(--f7-safe-area-bottom)), 0); +} +.actions-modal.modal-out { + z-index: 13499; + transform: translate3d(0, 100%, 0); +} +@media (min-width: 496px) { + .actions-modal { + width: 480px; + left: 50%; + margin-left: -240px; + } +} +@media (orientation: landscape) { + .actions-modal { + --f7-actions-button-height: var(--f7-actions-button-height-landscape); + } +} +.actions-group { + overflow: hidden; + position: relative; + margin: var(--f7-actions-group-margin); + border-radius: var(--f7-actions-border-radius); + transform: translate3d(0, 0, 0); +} +.actions-group:after { + content: ''; + position: absolute; + background-color: var(--f7-actions-group-border-color); + display: block; + z-index: 15; + top: auto; + right: auto; + bottom: 0; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 100%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +.actions-group:last-child:after { + display: none !important; +} +.actions-button, +.actions-label { + width: 100%; + font-weight: normal; + margin: 0; + box-sizing: border-box; + display: block; + position: relative; + overflow: hidden; + text-align: var(--f7-actions-button-text-align); + background: var(--f7-actions-bg-color); +} +@supports ((-webkit-backdrop-filter: blur(20px)) or (backdrop-filter: blur(20px))) { + .ios-translucent-modals .actions-button, + .ios-translucent-modals .actions-label { + background-color: rgba(var(--f7-actions-bg-color-rgb), 0.8); + -webkit-backdrop-filter: saturate(180%) blur(20px); + backdrop-filter: saturate(180%) blur(20px); + } +} +.actions-button:after, +.actions-label:after { + content: ''; + position: absolute; + background-color: var(--f7-actions-button-border-color); + display: block; + z-index: 15; + top: auto; + right: auto; + bottom: 0; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 100%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +.actions-button:first-child, +.actions-label:first-child { + border-radius: var(--f7-actions-border-radius) var(--f7-actions-border-radius) 0 0; +} +.actions-button:last-child, +.actions-label:last-child { + border-radius: 0 0 var(--f7-actions-border-radius) var(--f7-actions-border-radius); +} +.actions-button:last-child:after, +.actions-label:last-child:after { + display: none !important; +} +.actions-button:first-child:last-child, +.actions-label:first-child:last-child { + border-radius: var(--f7-actions-border-radius); +} +.actions-button a, +.actions-label a { + text-decoration: none; + color: inherit; + display: block; +} +.actions-button b, +.actions-label b, +.actions-button.actions-button-bold, +.actions-label.actions-button-bold { + font-weight: 600; +} +.actions-button { + cursor: pointer; + display: flex; + color: var(--f7-actions-button-text-color, var(--f7-theme-color)); + font-size: var(--f7-actions-button-font-size); + height: var(--f7-actions-button-height); + line-height: var(--f7-actions-button-height); + padding: var(--f7-actions-button-padding); + justify-content: var(--f7-actions-button-justify-content); + z-index: 10; +} +.actions-button.active-state { + background-color: var(--f7-actions-button-pressed-bg-color) !important; +} +.actions-button[class*="color-"] { + color: var(--f7-theme-color); +} +@supports ((-webkit-backdrop-filter: blur(20px)) or (backdrop-filter: blur(20px))) { + .ios-translucent-modals .actions-button.active-state { + background-color: rgba(var(--f7-actions-button-pressed-bg-color-rgb), 0.8); + -webkit-backdrop-filter: saturate(180%) blur(20px); + backdrop-filter: saturate(180%) blur(20px); + } +} +.actions-button-media { + flex-shrink: 0; + display: flex; + align-items: center; +} +.actions-button-media i.icon { + width: var(--f7-actions-button-icon-size); + height: var(--f7-actions-button-icon-size); + font-size: var(--f7-actions-button-icon-size); +} +.actions-button a, +.actions-button-text { + position: relative; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} +.actions-button-text { + width: 100%; + flex-shrink: 1; + text-align: var(--f7-actions-button-text-align); +} +.actions-label { + line-height: 1.3; + display: flex; + align-items: center; + font-size: var(--f7-actions-label-font-size); + color: var(--f7-actions-label-text-color); + padding: var(--f7-actions-label-padding); + justify-content: var(--f7-actions-label-justify-content); + min-height: var(--f7-actions-label-min-height, var(--f7-actions-button-height)); +} +.actions-label[class*=" color-"] { + --f7-actions-label-text-color: var(--f7-theme-color); +} +.actions-grid .actions-group { + display: flex; + flex-wrap: wrap; + justify-content: flex-start; + border-radius: 0; + background: var(--f7-actions-bg-color); + margin-top: 0; +} +.actions-grid .actions-group:first-child { + border-radius: var(--f7-actions-border-radius) var(--f7-actions-border-radius) 0 0; +} +.actions-grid .actions-group:last-child { + border-radius: 0 0 var(--f7-actions-border-radius) var(--f7-actions-border-radius); +} +.actions-grid .actions-group:first-child:last-child { + border-radius: var(--f7-actions-border-radius); +} +.actions-grid .actions-group:not(:last-child) { + margin-bottom: 0; +} +.actions-grid .actions-button, +.actions-grid .actions-label { + border-radius: 0 !important; + background: none; +} +.actions-grid .actions-button { + width: 33.33333333%; + display: block; + color: var(--f7-actions-grid-button-text-color); + height: auto; + line-height: 1; + padding: 16px; +} +.actions-grid .actions-button:after { + display: none !important; +} +.actions-grid .actions-button-media { + margin-left: auto !important; + margin-right: auto !important; + width: var(--f7-actions-grid-button-icon-size); + height: var(--f7-actions-grid-button-icon-size); +} +.actions-grid .actions-button-media i.icon { + width: var(--f7-actions-grid-button-icon-size); + height: var(--f7-actions-grid-button-icon-size); + font-size: var(--f7-actions-grid-button-icon-size); +} +.actions-grid .actions-button-text { + margin-left: 0 !important; + text-align: center !important; + margin-top: 8px; + line-height: 1.33em; + height: 1.33em; + font-size: var(--f7-actions-grid-button-font-size); +} +@supports ((-webkit-backdrop-filter: blur(20px)) or (backdrop-filter: blur(20px))) { + .ios-translucent-modals .actions-grid .actions-group { + background-color: rgba(var(--f7-actions-bg-color-rgb), 0.8); + -webkit-backdrop-filter: saturate(180%) blur(20px); + backdrop-filter: saturate(180%) blur(20px); + } +} +.ios .actions-button-media { + margin-left: 16px; +} +.ios .actions-button-media + .actions-button-text { + text-align: left; + margin-left: 16px; +} +.md .actions-button { + transition-duration: 300ms; +} +.md .actions-button-media { + min-width: 40px; +} +.md .actions-button-media + .actions-button-text { + margin-left: 16px; +} +.aurora .actions-button-media { + margin-left: 16px; +} +.aurora .actions-button-media + .actions-button-text { + text-align: left; + margin-left: 16px; +} +/* === Sheet Modal === */ +:root { + --f7-sheet-height: 260px; + --f7-sheet-border-color: transparent; + --f7-sheet-transition-duration: 300ms; + --f7-sheet-push-border-radius: 10px; + --f7-sheet-push-offset: var(--f7-safe-area-top); + --f7-sheet-bg-color: #fff; +} +:root .theme-dark, +:root.theme-dark { + --f7-sheet-bg-color: #202020; +} +.ios { + --f7-sheet-border-color: var(--f7-bars-border-color); +} +.sheet-backdrop { + z-index: 11000; +} +.sheet-modal { + position: absolute; + left: 0; + bottom: 0; + width: 100%; + height: var(--f7-sheet-height); + display: none; + box-sizing: border-box; + transition-property: transform; + transform: translate3d(0, 100%, 0); + background: var(--f7-sheet-bg-color); + z-index: 12500; + will-change: transform, opacity; +} +.sheet-modal.modal-in, +.sheet-modal.modal-out { + transition-duration: var(--f7-sheet-transition-duration); +} +.sheet-modal.not-animated { + transition-duration: 0ms; +} +.sheet-modal.modal-in { + display: block; + transform: translate3d(0, 0, 0); +} +.sheet-modal.modal-in-swipe-step { + display: block; + transform: translate3d(0, var(--f7-sheet-swipe-step, 0), 0); +} +.sheet-modal.modal-out { + transform: translate3d(0, 100%, 0); +} +.sheet-modal .sheet-modal-inner { + height: 100%; + position: relative; + overflow: hidden; +} +.sheet-modal .toolbar { + --f7-safe-area-bottom: 0px; + position: relative; + width: 100%; +} +.sheet-modal .toolbar:after, +.sheet-modal .toolbar:before { + display: none; +} +.sheet-modal .toolbar + .sheet-modal-inner { + height: calc(100% - var(--f7-toolbar-height)); +} +.sheet-modal .toolbar + .sheet-modal-inner .page-content { + --f7-page-toolbar-top-offset: 0px; + --f7-page-toolbar-bottom-offset: 0px; +} +.sheet-modal-top:after { + content: ''; + position: absolute; + background-color: var(--f7-sheet-border-color); + display: block; + z-index: 15; + top: auto; + right: auto; + bottom: 0; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 100%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +.sheet-modal-top:after { + z-index: 700; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + transform-style: preserve-3d; +} +.sheet-modal-bottom, +.sheet-modal:not(.sheet-modal-top) { + --f7-safe-area-top: 0px; +} +.sheet-modal-bottom:before, +.sheet-modal:not(.sheet-modal-top):before { + content: ''; + position: absolute; + background-color: var(--f7-sheet-border-color); + display: block; + z-index: 15; + top: 0; + right: auto; + bottom: auto; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 0%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +.sheet-modal-bottom:before, +.sheet-modal:not(.sheet-modal-top):before { + z-index: 700; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + transform-style: preserve-3d; +} +.sheet-modal-top { + --f7-safe-area-bottom: 0px; + bottom: auto; + top: 0; + transform: translate3d(0, -100%, 0); +} +.sheet-modal-top.modal-out { + transform: translate3d(0, -100%, 0); +} +.sheet-modal-top .toolbar-bottom { + position: absolute; +} +.sheet-modal-top .page-content { + padding-top: var(--f7-safe-area-top); +} +html.with-modal-sheet-push .sheet-modal-push, +html.with-modal-sheet-push-closing .sheet-modal-push { + --f7-sheet-border-color: transparent; + border-radius: var(--f7-sheet-push-border-radius) var(--f7-sheet-push-border-radius) 0 0; + overflow: hidden; +} +html.with-modal-sheet-push .sheet-modal-push .view, +html.with-modal-sheet-push-closing .sheet-modal-push .view, +html.with-modal-sheet-push .sheet-modal-push .page, +html.with-modal-sheet-push-closing .sheet-modal-push .page { + --f7-safe-area-top: 0px; +} +html.with-modal-sheet-push .sheet-modal-push.sheet-modal-top, +html.with-modal-sheet-push-closing .sheet-modal-push.sheet-modal-top { + border-radius: 0 0 var(--f7-sheet-push-border-radius) var(--f7-sheet-push-border-radius); +} +html.with-modal-sheet-push .framework7-root, +html.with-modal-sheet-push-closing .framework7-root { + background: #000; +} +html.with-modal-sheet-push .framework7-root > .views, +html.with-modal-sheet-push-closing .framework7-root > .views, +html.with-modal-sheet-push .framework7-root > .view, +html.with-modal-sheet-push-closing .framework7-root > .view { + transition-duration: var(--f7-sheet-transition-duration); +} +html.with-modal-sheet-push.theme-dark .framework7-root > .views:after, +html.with-modal-sheet-push-closing.theme-dark .framework7-root > .views:after, +html.with-modal-sheet-push.theme-dark .framework7-root > .view:after, +html.with-modal-sheet-push-closing.theme-dark .framework7-root > .view:after, +html.with-modal-sheet-push .theme-dark .framework7-root > .views:after, +html.with-modal-sheet-push-closing .theme-dark .framework7-root > .views:after, +html.with-modal-sheet-push .theme-dark .framework7-root > .view:after, +html.with-modal-sheet-push-closing .theme-dark .framework7-root > .view:after, +html.with-modal-sheet-push .theme-dark.framework7-root > .views:after, +html.with-modal-sheet-push-closing .theme-dark.framework7-root > .views:after, +html.with-modal-sheet-push .theme-dark.framework7-root > .view:after, +html.with-modal-sheet-push-closing .theme-dark.framework7-root > .view:after, +html.with-modal-sheet-push .framework7-root > .views.theme-dark:after, +html.with-modal-sheet-push-closing .framework7-root > .views.theme-dark:after, +html.with-modal-sheet-push .framework7-root > .view.theme-dark:after, +html.with-modal-sheet-push-closing .framework7-root > .view.theme-dark:after { + content: ''; + position: absolute; + pointer-events: none; + left: 0; + top: 0; + width: 100%; + height: 100%; + background: rgba(255, 255, 255, 0.1); + z-index: 13000; + border-radius: var(--f7-sheet-push-border-radius) var(--f7-sheet-push-border-radius) 0 0; + opacity: 1; + animation: sheet-dark-push-overlay-fade-in var(--f7-sheet-transition-duration) forwards; +} +html.with-modal-sheet-push .framework7-root > .views, +html.with-modal-sheet-push .framework7-root > .view { + border-radius: var(--f7-sheet-push-border-radius); + transform: translate3d(0, 0, 0px) scale(var(--f7-sheet-push-scale, 1)) !important; +} +html.with-modal-sheet-push-closing.theme-dark .framework7-root > .views:after, +html.with-modal-sheet-push-closing.theme-dark .framework7-root > .view:after, +html.with-modal-sheet-push-closing .theme-dark .framework7-root > .views:after, +html.with-modal-sheet-push-closing .theme-dark .framework7-root > .view:after, +html.with-modal-sheet-push-closing .theme-dark.framework7-root > .views:after, +html.with-modal-sheet-push-closing .theme-dark.framework7-root > .view:after, +html.with-modal-sheet-push-closing .framework7-root > .views.theme-dark:after, +html.with-modal-sheet-push-closing .framework7-root > .view.theme-dark:after { + animation: sheet-dark-push-overlay-fade-out var(--f7-sheet-transition-duration) forwards; +} +@keyframes sheet-dark-push-overlay-fade-in { + from { + opacity: 0; + } + to { + opacity: 1; + } +} +@keyframes sheet-dark-push-overlay-fade-out { + from { + opacity: 1; + } + to { + opacity: 0; + } +} +.md .sheet-modal .toolbar a.link:not(.tab-link) { + flex-shrink: 0; +} +/* === Toast === */ +:root { + --f7-toast-text-color: #fff; + --f7-toast-font-size: 14px; + --f7-toast-icon-size: 48px; + --f7-toast-max-width: 568px; +} +.ios { + --f7-toast-bg-color: rgba(0, 0, 0, 0.75); + --f7-toast-bg-color-rgb: 0, 0, 0; + --f7-toast-padding-horizontal: 16px; + --f7-toast-padding-vertical: 12px; + --f7-toast-border-radius: 8px; + --f7-toast-button-min-width: 64px; +} +.md { + --f7-toast-bg-color: #323232; + --f7-toast-padding-horizontal: 24px; + --f7-toast-padding-vertical: 14px; + --f7-toast-border-radius: 4px; + --f7-toast-button-min-width: 64px; +} +.aurora { + --f7-toast-bg-color: rgba(0, 0, 0, 0.85); + --f7-toast-padding-horizontal: 10px; + --f7-toast-padding-vertical: 10px; + --f7-toast-border-radius: 4px; + --f7-toast-button-min-width: 32px; +} +.toast { + --f7-touch-ripple-color: var(--f7-touch-ripple-white); + transition-property: transform, opacity; + position: absolute; + max-width: var(--f7-toast-max-width); + z-index: 20000; + color: var(--f7-toast-text-color); + font-size: var(--f7-toast-font-size); + box-sizing: border-box; + background-color: var(--f7-toast-bg-color); + opacity: 0; +} +@supports ((-webkit-backdrop-filter: blur(20px)) or (backdrop-filter: blur(20px))) { + .ios-translucent-modals .toast { + background-color: rgba(var(--f7-toast-bg-color-rgb), 0.8); + -webkit-backdrop-filter: saturate(180%) blur(20px); + backdrop-filter: saturate(180%) blur(20px); + } +} +.toast.modal-in { + opacity: 1; +} +.toast .toast-content { + display: flex; + justify-content: space-between; + align-items: center; + box-sizing: border-box; + padding: var(--f7-toast-padding-vertical) var(--f7-toast-padding-horizontal); +} +.toast .toast-text { + line-height: 20px; + flex-shrink: 1; + min-width: 0; +} +.toast .toast-button { + flex-shrink: 0; + min-width: var(--f7-toast-button-min-width); + margin-top: -8px; + margin-bottom: -8px; +} +.toast.toast-with-icon .toast-content { + display: block; + text-align: center; +} +.toast.toast-with-icon .toast-text { + text-align: center; +} +.toast.toast-with-icon .toast-icon .f7-icons, +.toast.toast-with-icon .toast-icon .material-icons { + font-size: var(--f7-toast-icon-size); +} +.toast.toast-center { + top: 50%; +} +.toast.toast-top { + margin-top: var(--f7-safe-area-top); +} +.ios .toast { + transition-duration: 300ms; + width: 100%; + left: 0; +} +.ios .toast.toast-top { + top: 0; + transform: translate3d(0, -100%, 0); +} +.ios .toast.toast-top.modal-in { + transform: translate3d(0, 0%, 0); +} +.ios .toast.toast-center { + width: auto; + left: 50%; + border-radius: var(--f7-toast-border-radius); + transform: translate3d(-50%, -50%, 0); +} +.ios .toast.toast-center.modal-in { + transform: translate3d(-50%, -50%, 0); +} +.ios .toast.toast-bottom { + bottom: 0; + transform: translate3d(0, 100%, 0); +} +.ios .toast.toast-bottom.modal-in { + transform: translate3d(0, 0%, 0); +} +@media (max-width: 568px) { + .ios .toast.toast-top { + margin-top: 0; + } + .ios .toast.toast-top .toast-content { + padding-top: calc(var(--f7-toast-padding-vertical) + var(--f7-safe-area-top)); + } + .ios .toast.toast-bottom .toast-content { + padding-bottom: calc(var(--f7-toast-padding-vertical) + var(--f7-safe-area-bottom)); + } +} +@media (min-width: 569px) { + .ios .toast { + left: 50%; + margin-left: calc(-1 * var(--f7-toast-max-width) / 2); + border-radius: var(--f7-toast-border-radius); + } + .ios .toast.toast-top { + top: 16px; + } + .ios .toast.toast-center { + margin-left: 0; + } + .ios .toast.toast-bottom { + margin-bottom: calc(16px + var(--f7-safe-area-bottom)); + } +} +@media (min-width: 1024px) { + .ios .toast { + margin-left: 0; + width: auto; + } + .ios .toast.toast-horizontal-left { + left: 16px; + } + .ios .toast.toast-horizontal-right { + left: auto; + right: 16px; + } + .ios .toast.toast-horizontal-center { + left: 50%; + width: var(--f7-toast-max-width); + margin-left: calc(-1 * var(--f7-toast-max-width) / 2); + } +} +.ios .toast-button { + margin-right: 16px; + margin-left: calc(-1 * var(--f7-button-padding-horizontal)); +} +.md .toast { + transition-duration: 200ms; + border-radius: var(--f7-toast-border-radius); + width: calc(100% - 16px); + transform: scale(0.9); + left: 8px; +} +.md .toast.modal-in { + transform: scale(1); +} +.md .toast.modal-out { + transform: scale(1); +} +.md .toast.toast-top { + top: 8px; +} +.md .toast.toast-center { + left: 50%; + width: auto; + transform: scale(0.9) translate3d(-55%, -55%, 0); +} +.md .toast.toast-center.modal-in { + transform: scale(1) translate3d(-50%, -50%, 0); +} +.md .toast.toast-center.modal-out { + transform: scale(1) translate3d(-50%, -50%, 0); +} +.md .toast.toast-bottom { + bottom: calc(8px + var(--f7-safe-area-bottom)); +} +@media (min-width: 584px) { + .md .toast { + left: 50%; + margin-left: calc(-1 * var(--f7-toast-max-width) / 2); + } + .md .toast.toast-center { + margin-left: 0; + } +} +@media (min-width: 1024px) { + .md .toast { + margin-left: 0; + width: auto; + } + .md .toast.toast-horizontal-left { + left: 24px; + } + .md .toast.toast-horizontal-right { + left: auto; + right: 24px; + } + .md .toast.toast-horizontal-center { + left: 50%; + width: var(--f7-toast-max-width); + margin-left: calc(-1 * var(--f7-toast-max-width) / 2); + } + .md .toast.toast-bottom { + bottom: calc(24px + var(--f7-safe-area-bottom)); + } + .md .toast.toast-top { + top: 24px; + } +} +.md .toast-button { + margin-right: 16px; + margin-left: -8px; +} +.aurora .toast { + transition-duration: 200ms; + border-radius: var(--f7-toast-border-radius); + left: 10px; + width: calc(100% - 20px); + transform: scale(0.9); +} +.aurora .toast.modal-in { + transform: scale(1); +} +.aurora .toast.modal-out { + transform: scale(1); +} +.aurora .toast.toast-top { + top: 10px; +} +.aurora .toast.toast-center { + left: 50%; + width: auto; + transform: scale(0.9) translate3d(-55%, -55%, 0); +} +.aurora .toast.toast-center.modal-in { + transform: scale(1) translate3d(-50%, -50%, 0); +} +.aurora .toast.toast-center.modal-out { + transform: scale(1) translate3d(-50%, -50%, 0); +} +.aurora .toast.toast-bottom { + bottom: calc(10px + var(--f7-safe-area-bottom)); +} +@media (min-width: 584px) { + .aurora .toast { + left: 50%; + margin-left: calc(-1 * var(--f7-toast-max-width) / 2); + } + .aurora .toast.toast-center { + margin-left: 0; + } +} +@media (min-width: 1024px) { + .aurora .toast { + margin-left: 0; + width: auto; + } + .aurora .toast.toast-horizontal-left { + left: 10px; + } + .aurora .toast.toast-horizontal-right { + left: auto; + right: 10px; + } + .aurora .toast.toast-horizontal-center { + left: 50%; + width: var(--f7-toast-max-width); + margin-left: calc(-1 * var(--f7-toast-max-width) / 2); + } +} +.aurora .toast-button { + margin-right: 10px; +} +/* === Preloader === */ +:root { + --f7-preloader-modal-padding: 8px; + --f7-preloader-modal-bg-color: rgba(0, 0, 0, 0.8); +} +.ios { + --f7-preloader-color: #6c6c6c; + --f7-preloader-size: 20px; + --f7-preloader-modal-preloader-size: 34px; + --f7-preloader-modal-border-radius: 5px; +} +.md { + --f7-preloader-color: #757575; + --f7-preloader-size: 32px; + --f7-preloader-modal-preloader-size: 32px; + --f7-preloader-modal-border-radius: 4px; +} +.aurora { + --f7-preloader-color: #757575; + --f7-preloader-size: 24px; + --f7-preloader-modal-preloader-size: 24px; + --f7-preloader-modal-border-radius: 4px; +} +.preloader { + display: inline-block; + vertical-align: middle; + width: var(--f7-preloader-size); + height: var(--f7-preloader-size); + font-size: 0; + position: relative; +} +/* === Preloader Modal === */ +.preloader-backdrop { + visibility: visible; + opacity: 0; + background: none; + z-index: 14000; +} +.preloader-modal { + position: absolute; + left: 50%; + top: 50%; + padding: var(--f7-preloader-modal-padding); + background: var(--f7-preloader-modal-bg-color); + z-index: 14500; + transform: translateX(-50%) translateY(-50%); + border-radius: var(--f7-preloader-modal-border-radius); +} +.preloader-modal .preloader { + --f7-preloader-size: var(--f7-preloader-modal-preloader-size); + display: block !important; +} +html.with-modal-preloader .page-content, +.with-modal-preloader .page-content, +.with-modal-preloader.page-content { + overflow: hidden; + -webkit-overflow-scrolling: auto; +} +.preloader[class*="color-"] { + --f7-preloader-color: var(--f7-theme-color); +} +.ios .preloader { + animation: ios-preloader-spin 1s steps(12, end) infinite; +} +.ios .preloader .preloader-inner-line { + display: block; + width: 7.15%; + height: 28.5%; + border-radius: 100px; + background: var(--f7-preloader-color); + position: absolute; + left: 50%; + top: 50%; + transform-origin: center 175%; +} +.ios .preloader .preloader-inner-line:nth-child(1) { + transform: translate(-50%, -175%) rotate(0deg); + opacity: 0.27; +} +.ios .preloader .preloader-inner-line:nth-child(2) { + transform: translate(-50%, -175%) rotate(30deg); + opacity: 0.32272727; +} +.ios .preloader .preloader-inner-line:nth-child(3) { + transform: translate(-50%, -175%) rotate(60deg); + opacity: 0.37545455; +} +.ios .preloader .preloader-inner-line:nth-child(4) { + transform: translate(-50%, -175%) rotate(90deg); + opacity: 0.42818182; +} +.ios .preloader .preloader-inner-line:nth-child(5) { + transform: translate(-50%, -175%) rotate(120deg); + opacity: 0.48090909; +} +.ios .preloader .preloader-inner-line:nth-child(6) { + transform: translate(-50%, -175%) rotate(150deg); + opacity: 0.53363636; +} +.ios .preloader .preloader-inner-line:nth-child(7) { + transform: translate(-50%, -175%) rotate(180deg); + opacity: 0.58636364; +} +.ios .preloader .preloader-inner-line:nth-child(8) { + transform: translate(-50%, -175%) rotate(210deg); + opacity: 0.63909091; +} +.ios .preloader .preloader-inner-line:nth-child(9) { + transform: translate(-50%, -175%) rotate(240deg); + opacity: 0.69181818; +} +.ios .preloader .preloader-inner-line:nth-child(10) { + transform: translate(-50%, -175%) rotate(270deg); + opacity: 0.74454545; +} +.ios .preloader .preloader-inner-line:nth-child(11) { + transform: translate(-50%, -175%) rotate(300deg); + opacity: 0.79727273; +} +.ios .preloader .preloader-inner-line:nth-child(12) { + transform: translate(-50%, -175%) rotate(330deg); + opacity: 0.85; +} +@keyframes ios-preloader-spin { + 100% { + transform: rotate(360deg); + } +} +.md .preloader { + animation: md-preloader-outer 3300ms linear infinite; +} +@keyframes md-preloader-outer { + 0% { + transform: rotate(0); + } + 100% { + transform: rotate(360deg); + } +} +.md .preloader-inner { + position: relative; + display: block; + width: 100%; + height: 100%; + animation: md-preloader-inner-rotate 5.25s cubic-bezier(0.35, 0, 0.25, 1) infinite; +} +.md .preloader-inner .preloader-inner-gap { + position: absolute; + width: 2px; + left: 50%; + margin-left: -1px; + top: 0; + bottom: 0; + box-sizing: border-box; + border-top: 4px solid var(--f7-preloader-color); +} +.md .preloader-inner .preloader-inner-left, +.md .preloader-inner .preloader-inner-right { + position: absolute; + top: 0; + height: 100%; + width: 50%; + overflow: hidden; +} +.md .preloader-inner .preloader-inner-half-circle { + position: absolute; + top: 0; + height: 100%; + width: 200%; + box-sizing: border-box; + border: 4px solid var(--f7-preloader-color); + border-bottom-color: transparent !important; + border-radius: 50%; + animation-iteration-count: infinite; + animation-duration: 1.3125s; + animation-timing-function: cubic-bezier(0.35, 0, 0.25, 1); +} +.md .preloader-inner .preloader-inner-left { + left: 0; +} +.md .preloader-inner .preloader-inner-left .preloader-inner-half-circle { + left: 0; + border-right-color: transparent !important; + animation-name: md-preloader-left-rotate; +} +.md .preloader-inner .preloader-inner-right { + right: 0; +} +.md .preloader-inner .preloader-inner-right .preloader-inner-half-circle { + right: 0; + border-left-color: transparent !important; + animation-name: md-preloader-right-rotate; +} +.md .preloader.color-multi .preloader-inner-left .preloader-inner-half-circle { + animation-name: md-preloader-left-rotate-multicolor; +} +.md .preloader.color-multi .preloader-inner-right .preloader-inner-half-circle { + animation-name: md-preloader-right-rotate-multicolor; +} +@keyframes md-preloader-left-rotate { + 0%, + 100% { + transform: rotate(130deg); + } + 50% { + transform: rotate(-5deg); + } +} +@keyframes md-preloader-right-rotate { + 0%, + 100% { + transform: rotate(-130deg); + } + 50% { + transform: rotate(5deg); + } +} +@keyframes md-preloader-inner-rotate { + 12.5% { + transform: rotate(135deg); + } + 25% { + transform: rotate(270deg); + } + 37.5% { + transform: rotate(405deg); + } + 50% { + transform: rotate(540deg); + } + 62.5% { + transform: rotate(675deg); + } + 75% { + transform: rotate(810deg); + } + 87.5% { + transform: rotate(945deg); + } + 100% { + transform: rotate(1080deg); + } +} +@keyframes md-preloader-left-rotate-multicolor { + 0%, + 100% { + border-left-color: #4285F4; + transform: rotate(130deg); + } + 75% { + border-left-color: #1B9A59; + border-top-color: #1B9A59; + } + 50% { + border-left-color: #F7C223; + border-top-color: #F7C223; + transform: rotate(-5deg); + } + 25% { + border-left-color: #DE3E35; + border-top-color: #DE3E35; + } +} +@keyframes md-preloader-right-rotate-multicolor { + 0%, + 100% { + border-right-color: #4285F4; + transform: rotate(-130deg); + } + 75% { + border-right-color: #1B9A59; + border-top-color: #1B9A59; + } + 50% { + border-right-color: #F7C223; + border-top-color: #F7C223; + transform: rotate(5deg); + } + 25% { + border-top-color: #DE3E35; + border-right-color: #DE3E35; + } +} +.aurora .preloader-inner { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; +} +.aurora .preloader-inner-circle { + width: 100%; + height: 100%; + position: absolute; + left: 0; + top: 0; + border-radius: 50%; + border: calc(var(--f7-preloader-size) / 8) solid var(--f7-preloader-color); + border-top-color: transparent; + box-sizing: border-box; + animation: aurora-preloader-rotate 1s linear infinite; +} +.aurora .preloader.color-multi .preloader-inner-circle { + animation: aurora-preloader-rotate 1s linear infinite, aurora-preloader-multicolor 2s linear infinite; +} +@keyframes aurora-preloader-rotate { + 0% { + transform: rotate(0deg); + } + 100% { + transform: rotate(360deg); + } +} +@keyframes aurora-preloader-multicolor { + 0%, + 100% { + border-color: #2196f3; + border-top-color: transparent; + } + 25% { + border-color: #ff3b30; + border-top-color: transparent; + } + 50% { + border-color: #4cd964; + border-top-color: transparent; + } + 75% { + border-color: #ff9500; + border-top-color: transparent; + } +} +/* === Progressbar === */ +:root { + /* + --f7-progressbar-progress-color: var(--f7-theme-color); + */ +} +.ios { + --f7-progressbar-height: 2px; + --f7-progressbar-border-radius: 2px; + --f7-progressbar-bg-color: rgba(0, 0, 0, 0.3); +} +.ios .theme-dark, +.ios.theme-dark { + --f7-progressbar-bg-color: rgba(255, 255, 255, 0.3); +} +.md { + /* + --f7-progressbar-bg-color: rgba(var(--f7-theme-color-rgb), 0.5); + */ + --f7-progressbar-height: 4px; + --f7-progressbar-border-radius: 0px; +} +.aurora { + --f7-progressbar-height: 6px; + --f7-progressbar-border-radius: 3px; + --f7-progressbar-bg-color: #dbdbdb; +} +.aurora .theme-dark, +.aurora.theme-dark { + --f7-progressbar-bg-color: #444; +} +.progressbar, +.progressbar-infinite { + width: 100%; + overflow: hidden; + position: relative; + display: block; + transform-style: preserve-3d; + background: var(--f7-progressbar-bg-color, rgba(var(--f7-theme-color-rgb), 0.5)); + transform-origin: center top; + height: var(--f7-progressbar-height); + border-radius: var(--f7-progressbar-border-radius); +} +.progressbar { + vertical-align: middle; +} +.progressbar span { + background-color: var(--f7-progressbar-progress-color, var(--f7-theme-color)); + width: 100%; + height: 100%; + position: absolute; + left: 0; + top: 0; + transform: translate3d(-100%, 0, 0); + transition-duration: 150ms; +} +.progressbar-infinite { + z-index: 15000; +} +.progressbar-infinite:before, +.progressbar-infinite:after { + content: ''; + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + transform-origin: left center; + transform: translate3d(0, 0, 0); + display: block; + background-color: var(--f7-progressbar-progress-color, var(--f7-theme-color)); +} +.progressbar-infinite.color-multi { + background: none !important; +} +.progressbar-in { + animation: progressbar-in 150ms forwards; +} +.progressbar-out { + animation: progressbar-out 150ms forwards; +} +body > .progressbar, +.view > .progressbar, +.views > .progressbar, +.page > .progressbar, +.panel > .progressbar, +.popup > .progressbar, +.framework7-root > .progressbar, +body > .progressbar-infinite, +.view > .progressbar-infinite, +.views > .progressbar-infinite, +.page > .progressbar-infinite, +.panel > .progressbar-infinite, +.popup > .progressbar-infinite, +.framework7-root > .progressbar-infinite { + position: absolute; + left: 0; + top: 0; + z-index: 15000; + border-radius: 0 !important; + transform-origin: center top !important; +} +@keyframes progressbar-in { + from { + opacity: 0; + transform: scaleY(0); + } + to { + opacity: 1; + transform: scaleY(1); + } +} +@keyframes progressbar-out { + from { + opacity: 1; + transform: scaleY(1); + } + to { + opacity: 0; + transform: scaleY(0); + } +} +.ios .progressbar-infinite:before { + animation: ios-progressbar-infinite 1s linear infinite; +} +.ios .progressbar-infinite:after { + display: none; +} +.ios .progressbar-infinite.color-multi:before { + width: 400%; + background-image: linear-gradient(to right, #4cd964, #5ac8fa, #007aff, #34aadc, #5856d6, #ff2d55, #5856d6, #34aadc, #007aff, #5ac8fa, #4cd964); + background-size: 25% 100%; + background-repeat: repeat-x; + animation: ios-progressbar-infinite-multicolor 3s linear infinite; +} +@keyframes ios-progressbar-infinite { + 0% { + transform: translate3d(-100%, 0, 0); + } + 100% { + transform: translate3d(100%, 0, 0); + } +} +@keyframes ios-progressbar-infinite-multicolor { + 0% { + transform: translate3d(0%, 0, 0); + } + 100% { + transform: translate3d(-50%, 0, 0); + } +} +.md .progressbar-infinite:before { + animation: md-progressbar-infinite-1 2s linear infinite; +} +.md .progressbar-infinite:after { + animation: md-progressbar-infinite-2 2s linear infinite; +} +.md .progressbar-infinite.color-multi:before { + background: none; + animation: md-progressbar-infinite-multicolor-bg 3s step-end infinite; +} +.md .progressbar-infinite.color-multi:after { + background: none; + animation: md-progressbar-infinite-multicolor-fill 3s linear infinite; + transform-origin: center center; +} +@keyframes md-progressbar-infinite-1 { + 0% { + transform: translateX(-10%) scaleX(0.1); + } + 25% { + transform: translateX(30%) scaleX(0.6); + } + 50% { + transform: translateX(100%) scaleX(1); + } + 100% { + transform: translateX(100%) scaleX(1); + } +} +@keyframes md-progressbar-infinite-2 { + 0% { + transform: translateX(-100%) scaleX(1); + } + 40% { + transform: translateX(-100%) scaleX(1); + } + 75% { + transform: translateX(60%) scaleX(0.35); + } + 90% { + transform: translateX(100%) scaleX(0.1); + } + 100% { + transform: translateX(100%) scaleX(0.1); + } +} +@keyframes md-progressbar-infinite-multicolor-bg { + 0% { + background-color: #4caf50; + } + 25% { + background-color: #f44336; + } + 50% { + background-color: #2196f3; + } + 75% { + background-color: #ffeb3b; + } +} +@keyframes md-progressbar-infinite-multicolor-fill { + 0% { + transform: scaleX(0); + background-color: #f44336; + } + 24.9% { + transform: scaleX(1); + background-color: #f44336; + } + 25% { + transform: scaleX(0); + background-color: #2196f3; + } + 49.9% { + transform: scaleX(1); + background-color: #2196f3; + } + 50% { + transform: scaleX(0); + background-color: #ffeb3b; + } + 74.9% { + transform: scaleX(1); + background-color: #ffeb3b; + } + 75% { + transform: scaleX(0); + background-color: #4caf50; + } + 100% { + transform: scaleX(1); + background-color: #4caf50; + } +} +.aurora .progressbar, +.aurora .progressbar-infinite, +.aurora .progressbar span, +.aurora .progressbar-infinite:before { + box-shadow: 0px 0px 0px 1px rgba(0, 0, 0, 0.05) inset; +} +.aurora .progressbar-infinite:before { + animation: aurora-progressbar-infinite 1s linear infinite; +} +.aurora .progressbar-infinite:after { + display: none; +} +.aurora .progressbar-infinite.color-multi:before { + width: 400%; + background-image: linear-gradient(to right, #4cd964, #5ac8fa, #007aff, #34aadc, #5856d6, #ff2d55, #5856d6, #34aadc, #007aff, #5ac8fa, #4cd964); + background-size: 25% 100%; + background-repeat: repeat-x; + animation: aurora-progressbar-infinite-multicolor 3s linear infinite; +} +@keyframes aurora-progressbar-infinite { + 0% { + transform: translate3d(-100%, 0, 0); + } + 100% { + transform: translate3d(100%, 0, 0); + } +} +@keyframes aurora-progressbar-infinite-multicolor { + 0% { + transform: translate3d(0%, 0, 0); + } + 100% { + transform: translate3d(-50%, 0, 0); + } +} +/* === Sortable === */ +:root { + --f7-sortable-handler-color: rgba(0, 0, 0, 0.22); + --f7-sortable-sorting-item-bg-color: rgba(255, 255, 255, 0.8); +} +:root .theme-dark, +:root.theme-dark { + --f7-sortable-sorting-item-bg-color: rgba(50, 50, 50, 0.8); + --f7-sortable-handler-color: rgba(255, 255, 255, 0.55); +} +.ios { + --f7-sortable-handler-width: 36px; + --f7-sortable-sorting-item-box-shadow: 0px 2px 8px rgba(0, 0, 0, 0.6); +} +.md { + --f7-sortable-handler-width: 42px; + --f7-sortable-sorting-item-box-shadow: var(--f7-elevation-2); +} +.aurora { + --f7-sortable-handler-width: 32px; + --f7-sortable-sorting-item-box-shadow: var(--f7-elevation-2); +} +.sortable .sortable-handler { + width: var(--f7-sortable-handler-width); + height: 100%; + position: absolute; + top: 0; + z-index: 10; + opacity: 0; + pointer-events: none; + cursor: move; + transition-duration: 300ms; + display: flex; + align-items: center; + justify-content: center; + overflow: hidden; + left: var(--f7-safe-area-left); +} +.sortable .sortable-handler:after { + font-family: 'framework7-core-icons'; + font-weight: normal; + font-style: normal; + line-height: 1; + letter-spacing: normal; + text-transform: none; + white-space: nowrap; + word-wrap: normal; + direction: ltr; + -webkit-font-smoothing: antialiased; + text-rendering: optimizeLegibility; + -moz-osx-font-smoothing: grayscale; + font-feature-settings: "liga"; + text-align: center; + display: block; + width: 100%; + height: 100%; + font-size: 20px; + transition-duration: 300ms; + transform: translateX(10px); + color: var(--f7-sortable-handler-color); + overflow: hidden; + height: 20px; + width: 18px; +} +.sortable li.sorting { + z-index: 50; + background: var(--f7-sortable-sorting-item-bg-color); + transition-duration: 0ms; + box-shadow: var(--f7-sortable-sorting-item-box-shadow); +} +.sortable li.sorting .item-inner:after { + display: none !important; +} +.sortable-opposite .sortable-handler { + right: var(--f7-safe-area-left); + left: auto; +} +.sortable-opposite .sortable-handler:after { + transform: translateX(-10px); +} +.sortable:not(.sortable-opposite) .item-inner, +.sortable-opposite .item-content, +.sortable.simple-list li, +.sortable-opposite.links-list li a { + transition-duration: 300ms; + transition-property: all; +} +.sortable-sorting li { + transition-duration: 300ms; +} +.sortable-enabled li:not(.no-sorting):not(.disallow-sorting) .sortable-handler { + pointer-events: auto; + opacity: 1; +} +.sortable-enabled li:not(.no-sorting):not(.disallow-sorting) .sortable-handler:after { + transform: translateX(0px); +} +.sortable-enabled:not(.sortable-opposite) li:not(.no-sorting):not(.disallow-sorting) .item-link .item-inner:before, +.sortable-enabled:not(.sortable-opposite) li:not(.no-sorting):not(.disallow-sorting) .item-link .item-title-row:before, +.sortable-enabled:not(.sortable-opposite).links-list li:not(.no-sorting):not(.disallow-sorting) > a:before { + display: none; +} +.sortable-enabled:not(.sortable-opposite) li:not(.no-sorting):not(.disallow-sorting) .item-inner, +.sortable-enabled:not(.sortable-opposite) li:not(.no-sorting):not(.disallow-sorting) .item-link .item-inner, +.sortable-enabled:not(.sortable-opposite) li:not(.no-sorting):not(.disallow-sorting) .item-link.no-chevron .item-inner, +.sortable-enabled.no-chevron:not(.sortable-opposite) li:not(.no-sorting):not(.disallow-sorting) .item-link .item-inner, +.sortable-enabled :not(.sortable-opposite).no-chevron .item-link .item-inner, +.no-chevron .sortable-enabled:not(.sortable-opposite) li:not(.no-sorting):not(.disallow-sorting) .item-link .item-inner, +.simple-list.sortable-enabled:not(.sortable-opposite) li:not(.no-sorting):not(.disallow-sorting), +.links-list.sortable-enabled:not(.sortable-opposite) li:not(.no-sorting):not(.disallow-sorting) a { + padding-left: calc(var(--f7-sortable-handler-width) + var(--f7-safe-area-right)); +} +.sortable-opposite.sortable-enabled li:not(.no-sorting):not(.disallow-sorting) .item-content, +.simple-list.sortable-opposite.sortable-enabled li:not(.no-sorting):not(.disallow-sorting), +.links-list.sortable-opposite.sortable-enabled li:not(.no-sorting):not(.disallow-sorting) a { + padding-right: calc(var(--f7-sortable-handler-width) + var(--f7-safe-area-right)); +} +.ios .sortable-handler:after { + content: 'sort_ios'; +} +.md .sortable-handler:after { + content: 'sort_md'; +} +.aurora .sortable-handler:after { + content: 'sort_md'; + font-size: 16px; + height: 16px; +} +/* === Swipeout === */ +:root { + --f7-swipeout-button-text-color: #fff; + --f7-swipeout-delete-button-bg-color: #ff3b30; + --f7-swipeout-button-font-size: inherit; + --f7-swipeout-button-font-weight: inherit; + --f7-swipeout-button-bg-color: rgba(0, 0, 0, 0.22); +} +:root .theme-dark, +:root.theme-dark { + --f7-swipeout-button-bg-color: rgba(255, 255, 255, 0.55); +} +.ios { + --f7-swipeout-button-padding: 0 30px; +} +.md { + --f7-swipeout-button-padding: 0 24px; +} +.aurora { + --f7-swipeout-button-padding: 0 12px; + --f7-swipeout-button-font-weight: 500; +} +.swipeout { + overflow: hidden; + transform-style: preserve-3d; +} +.swipeout-deleting { + transition-duration: 300ms; +} +.swipeout-deleting .swipeout-content { + transform: translateX(-100%); +} +.swipeout-transitioning .swipeout-content, +.swipeout-transitioning .swipeout-actions-right a, +.swipeout-transitioning .swipeout-actions-left a, +.swipeout-transitioning .swipeout-overswipe { + transition-duration: 300ms; + transition-property: transform, left; +} +.swipeout-content { + position: relative; + z-index: 10; +} +.swipeout-overswipe { + transition-duration: 200ms; + transition-property: left; +} +.swipeout-actions-left, +.swipeout-actions-right { + position: absolute; + top: 0; + height: 100%; + display: flex; + direction: ltr; +} +.swipeout-actions-left > a, +.swipeout-actions-right > a, +.swipeout-actions-left > button, +.swipeout-actions-right > button, +.swipeout-actions-left > span, +.swipeout-actions-right > span, +.swipeout-actions-left > div, +.swipeout-actions-right > div { + color: var(--f7-swipeout-button-text-color); + background: var(--f7-swipeout-button-bg-color); + padding: var(--f7-swipeout-button-padding); + display: flex; + align-items: center; + position: relative; + left: 0; + font-size: var(--f7-swipeout-button-font-size); + font-weight: var(--f7-swipeout-button-font-weight); +} +.swipeout-actions-left > a:after, +.swipeout-actions-right > a:after, +.swipeout-actions-left > button:after, +.swipeout-actions-right > button:after, +.swipeout-actions-left > span:after, +.swipeout-actions-right > span:after, +.swipeout-actions-left > div:after, +.swipeout-actions-right > div:after { + content: ''; + position: absolute; + top: 0; + width: 600%; + height: 100%; + background: inherit; + z-index: -1; + transform: translate3d(0, 0, 0); + pointer-events: none; +} +.swipeout-actions-left .swipeout-delete, +.swipeout-actions-right .swipeout-delete { + background: var(--f7-swipeout-delete-button-bg-color); +} +.swipeout-actions-right { + right: 0%; + transform: translateX(100%); +} +.swipeout-actions-right > a:after, +.swipeout-actions-right > button:after, +.swipeout-actions-right > span:after, +.swipeout-actions-right > div:after { + left: 100%; + margin-left: -1px; +} +.swipeout-actions-left { + left: 0%; + transform: translateX(-100%); +} +.swipeout-actions-left > a:after, +.swipeout-actions-left > button:after, +.swipeout-actions-left > span:after, +.swipeout-actions-left > div:after { + right: 100%; + margin-right: -1px; +} +.swipeout-actions-left [class*="color-"], +.swipeout-actions-right [class*="color-"] { + --f7-swipeout-button-bg-color: var(--f7-theme-color); +} +/* === Accordion === */ +:root { + --f7-accordion-chevron-icon-down: 'chevron_down'; + --f7-accordion-chevron-icon-up: 'chevron_up'; +} +.aurora { + --f7-accordion-chevron-icon-down: 'chevron_down_aurora'; + --f7-accordion-chevron-icon-up: 'chevron_up_aurora'; +} +.accordion-item-toggle { + cursor: pointer; +} +.list.accordion-list .accordion-item-toggle { + transition-duration: 300ms; + position: relative; + overflow: hidden; +} +.list.accordion-list .accordion-item-toggle.active-state { + transition-duration: 300ms; + background-color: var(--f7-list-link-pressed-bg-color); +} +.list.accordion-list .accordion-item-toggle.active-state > .item-inner:after { + background-color: transparent; +} +.list.accordion-list .accordion-item-toggle .item-inner { + transition-duration: 300ms; + transition-property: background-color; +} +.list.accordion-list .accordion-item-toggle .item-inner:after { + transition-duration: 300ms; +} +.list.accordion-list .accordion-item-toggle .ripple-wave { + z-index: 0; +} +.accordion-item .item-link .item-inner:after { + transition-duration: 300ms; +} +.accordion-item .list, +.accordion-item .block { + margin-top: 0; + margin-bottom: 0; +} +.accordion-item .block > h1:first-child, +.accordion-item .block > h2:first-child, +.accordion-item .block > h3:first-child, +.accordion-item .block > h4:first-child, +.accordion-item .block > p:first-child { + margin-top: 10px; +} +.accordion-item .block > h1:last-child, +.accordion-item .block > h2:last-child, +.accordion-item .block > h3:last-child, +.accordion-item .block > h4:last-child, +.accordion-item .block > p:last-child { + margin-bottom: 10px; +} +.accordion-item-opened .accordion-item-toggle .item-inner:after, +.accordion-item-opened > .item-link .item-inner:after { + background-color: transparent; +} +.list li.accordion-item ul { + padding-right: 0; +} +.accordion-item-content { + position: relative; + overflow: hidden; + height: 0; + font-size: 14px; + transition-duration: 300ms; +} +.accordion-item-opened > .accordion-item-content { + height: auto; +} +html.device-android-4 .accordion-item-content { + transform: none; +} +.list .accordion-item-toggle .item-inner:before { + font-family: 'framework7-core-icons'; + font-weight: normal; + font-style: normal; + line-height: 1; + letter-spacing: normal; + text-transform: none; + white-space: nowrap; + word-wrap: normal; + direction: ltr; + -webkit-font-smoothing: antialiased; + text-rendering: optimizeLegibility; + -moz-osx-font-smoothing: grayscale; + font-feature-settings: "liga"; + text-align: center; + display: block; + width: 100%; + height: 100%; + font-size: 20px; + position: absolute; + top: 50%; + font-size: var(--f7-list-chevron-icon-font-size); + color: var(--f7-list-chevron-icon-color); + pointer-events: none; + left: calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-left)); +} +.list:not(.accordion-opposite) .accordion-item-toggle .item-inner { + padding-left: calc(var(--f7-list-chevron-icon-area) + var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-left)); +} +.accordion-opposite .accordion-item-toggle.item-link .item-inner, +.accordion-opposite .accordion-item-toggle .item-inner, +.accordion-opposite .accordion-item > .item-link > .item-inner, +.accordion-opposite .accordion-item > .item-link > .item-content > .item-inner { + padding-left: calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-left)); +} +.accordion-opposite .accordion-item > .item-link > .item-title-row { + padding-right: 0; +} +.accordion-opposite .accordion-item-toggle.item-link .item-inner:before, +.accordion-opposite .accordion-item-toggle .item-inner:before, +.accordion-opposite .accordion-item > .item-link > .item-inner:before, +.accordion-opposite .accordion-item > .item-link > .item-content > .item-inner:before, +.accordion-opposite .accordion-item > .item-link .item-title-row:before { + display: none; +} +.accordion-opposite .accordion-item-toggle > .item-content, +.accordion-opposite .accordion-item-toggle.item-content, +.accordion-opposite .accordion-item > .item-content, +.accordion-opposite .accordion-item > .item-link > .item-content, +.accordion-opposite.links-list .accordion-item > a { + position: relative; + padding-right: calc(var(--f7-list-chevron-icon-area) + var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-left)); +} +.accordion-opposite .accordion-item-toggle > .item-content:before, +.accordion-opposite .accordion-item-toggle.item-content:before, +.accordion-opposite .accordion-item > .item-content:before, +.accordion-opposite .accordion-item > .item-link > .item-content:before, +.accordion-opposite.links-list .accordion-item > a:before { + font-family: 'framework7-core-icons'; + font-weight: normal; + font-style: normal; + line-height: 1; + letter-spacing: normal; + text-transform: none; + white-space: nowrap; + word-wrap: normal; + direction: ltr; + -webkit-font-smoothing: antialiased; + text-rendering: optimizeLegibility; + -moz-osx-font-smoothing: grayscale; + font-feature-settings: "liga"; + text-align: center; + display: block; + width: 100%; + height: 100%; + font-size: 20px; + position: absolute; + top: 50%; + font-size: var(--f7-list-chevron-icon-font-size); + color: var(--f7-list-chevron-icon-color); + pointer-events: none; + content: var(--f7-accordion-chevron-icon-down); + width: 14px; + height: 8px; + margin-top: -4px; + line-height: 8px; + transform: translateX(-50%); + right: calc((var(--f7-list-chevron-icon-area) + var(--f7-list-item-padding-horizontal)) / 2 + var(--f7-safe-area-right)); +} +.list .accordion-item-toggle.active-state { + background-color: var(--f7-list-link-pressed-bg-color); +} +.list .accordion-item-toggle .item-inner:before, +.list:not(.media-list) .accordion-item:not(.media-item) .accordion-item-toggle .item-inner:before, +.list:not(.media-list) .accordion-item:not(.media-item) > .item-link .item-inner:before, +.media-list .accordion-item .accordion-item-toggle .item-title-row:before, +.media-list .accordion-item > .item-link .item-title-row:before, +.accordion-item.media-item .accordion-item-toggle .item-title-row:before, +.accordion-item.media-item > .item-link .item-title-row:before, +.links-list .accordion-item > a:before { + content: var(--f7-accordion-chevron-icon-down); + width: 14px; + height: 8px; + margin-top: -4px; + line-height: 8px; +} +.list .accordion-item-toggle.accordion-item-opened .item-inner:before, +.list:not(.media-list) .accordion-item-opened:not(.media-item) .accordion-item-toggle .item-inner:before, +.list:not(.media-list) .accordion-item-opened:not(.media-item) > .item-link .item-inner:before, +.media-list .accordion-item-opened .accordion-item-toggle .item-title-row:before, +.media-list .accordion-item-opened > .item-link .item-title-row:before, +.accordion-item-opened.media-item .accordion-item-toggle .item-title-row:before, +.accordion-item-opened.media-item > .item-link .item-title-row:before, +.links-list .accordion-item-opened > a:before, +.accordion-opposite .accordion-item-opened .accordion-item-toggle > .item-content:before, +.accordion-opposite .accordion-item-opened .accordion-item-toggle.item-content:before, +.accordion-opposite .accordion-item-opened > .item-content:before, +.accordion-opposite .accordion-item-opened > .item-link > .item-content:before, +.accordion-opposite .links-list .accordion-item-opened > a:before { + content: var(--f7-accordion-chevron-icon-up); + width: 14px; + height: 8px; + margin-top: -4px; + line-height: 8px; +} +/* === Contacts === */ +:root .theme-dark, +:root.theme-dark { + --f7-contacts-list-title-text-color: #fff; +} +.ios { + --f7-contacts-list-title-font-size: inherit; + --f7-contacts-list-title-font-weight: 600; + --f7-contacts-list-title-height: 22px; + --f7-contacts-list-title-text-color: #000; + --f7-contacts-list-title-bg-color: #f7f7f7; +} +.ios .theme-dark, +.ios.theme-dark { + --f7-contacts-list-title-bg-color: #323234; +} +.md { + --f7-contacts-list-title-font-size: 20px; + --f7-contacts-list-title-font-weight: 500; + /* + --f7-contacts-list-title-text-color: var(--f7-theme-color); + */ + --f7-contacts-list-title-height: 48px; + --f7-contacts-list-title-bg-color: transparent; +} +.aurora { + --f7-contacts-list-title-font-weight: 600; + --f7-contacts-list-title-text-color: #000; + /* + --f7-contacts-list-title-bg-color: var(--f7-list-group-title-bg-color); + --f7-contacts-list-title-font-size: var(--f7-list-group-title-font-size); + --f7-contacts-list-title-line-height: var(--f7-list-group-title-height); + --f7-contacts-list-title-height: var(--f7-list-group-title-height); + */ +} +.contacts-list { + --f7-list-margin-vertical: 0px; +} +.contacts-list .list-group-title, +.contacts-list li.list-group-title { + background-color: var(--f7-contacts-list-title-bg-color, var(--f7-list-group-title-bg-color)); + font-weight: var(--f7-contacts-list-title-font-weight, var(--f7-list-group-title-font-weight)); + font-size: var(--f7-contacts-list-title-font-size, var(--f7-list-group-title-font-size)); + color: var(--f7-contacts-list-title-text-color, var(--f7-theme-color)); + line-height: var(--f7-contacts-list-title-height, var(--f7-list-group-title-height)); + height: var(--f7-contacts-list-title-height, var(--f7-list-group-title-height)); +} +.contacts-list .list-group:first-child ul:before { + display: none !important; +} +.contacts-list .list-group:last-child ul:after { + display: none !important; +} +.md .contacts-list .list-group-title { + pointer-events: none; + overflow: visible; + width: 56px; +} +.md .contacts-list .list-group-title + li { + margin-top: calc(var(--f7-contacts-list-title-height) * -1); +} +.md .contacts-list li:not(.list-group-title) { + padding-right: 56px; +} +/* === Virtual List === */ +/* === Indexed List === */ +:root { + --f7-list-index-width: 16px; + --f7-list-index-font-size: 11px; + --f7-list-index-font-weight: 600; + /* --f7-list-index-text-color: var(--f7-theme-color); */ + --f7-list-index-item-height: 14px; + --f7-list-index-label-text-color: #fff; + /* --f7-list-index-label-bg-color: var(--f7-theme-color); */ + --f7-list-index-label-font-weight: 500; +} +.ios { + --f7-list-index-label-size: 44px; + --f7-list-index-label-font-size: 17px; + --f7-list-index-skip-dot-size: 6px; +} +.md { + --f7-list-index-label-size: 56px; + --f7-list-index-label-font-size: 20px; + --f7-list-index-skip-dot-size: 4px; +} +.aurora { + --f7-list-index-font-size: 12px; + --f7-list-index-label-size: 32px; + --f7-list-index-label-font-size: 12px; + --f7-list-index-label-font-weight: 600; + --f7-list-index-skip-dot-size: 4px; +} +.list-index { + position: absolute; + top: 0; + bottom: 0; + text-align: center; + z-index: 10; + width: var(--f7-list-index-width); + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; + left: var(--f7-safe-area-left); +} +.list-index:before { + content: ''; + position: absolute; + width: 20px; + top: 0; + right: 100%; + height: 100%; +} +.list-index ul { + color: var(--f7-list-index-text-color, var(--f7-theme-color)); + font-size: var(--f7-list-index-font-size); + font-weight: var(--f7-list-index-font-weight); + list-style: none; + margin: 0; + padding: 0; + display: flex; + flex-direction: column; + justify-content: center; + align-items: center; + flex-shrink: 0; + height: 100%; + width: 100%; + position: relative; +} +.list-index li { + margin: 0; + padding: 0; + list-style: none; + position: relative; + height: var(--f7-list-index-item-height); + line-height: var(--f7-list-index-item-height); + flex-shrink: 0; + display: block; + width: 100%; +} +.list-index .list-index-skip-placeholder:after { + content: ''; + position: absolute; + left: 50%; + top: 50%; + border-radius: 50%; + width: var(--f7-list-index-skip-dot-size); + height: var(--f7-list-index-skip-dot-size); + margin-left: calc(-1 * var(--f7-list-index-skip-dot-size) / 2); + margin-top: calc(-1 * var(--f7-list-index-skip-dot-size) / 2); + background: var(--f7-list-index-text-color, var(--f7-theme-color)); +} +.list-index .list-index-label { + position: absolute; + bottom: 0; + right: 100%; + text-align: center; + background-color: var(--f7-list-index-label-bg-color, var(--f7-theme-color)); + color: var(--f7-list-index-label-text-color); + width: var(--f7-list-index-label-size); + height: var(--f7-list-index-label-size); + line-height: var(--f7-list-index-label-size); + font-size: var(--f7-list-index-label-font-size); + font-weight: var(--f7-list-index-label-font-weight); +} +.navbar ~ .page > .list-index, +.navbars ~ .page > .list-index, +.navbar ~ .list-index { + top: var(--f7-navbar-height); +} +.navbar ~ .toolbar-top ~ .list-index, +.navbars ~ .toolbar-top ~ .list-index, +.ios .navbar ~ .toolbar-top-ios ~ .list-index, +.ios .navbars ~ .toolbar-top-ios .md .navbar ~ .toolbar-top-md ~ .list-index { + top: calc(var(--f7-navbar-height) + var(--f7-toolbar-height)); +} +.navbar ~ .toolbar-top.tabbar-labels ~ .list-index, +.navbars ~ .toolbar-top.tabbar-labels ~ .list-index, +.ios .navbar ~ .toolbar-top-ios.tabbar-labels ~ .list-index, +.ios .navbars ~ .toolbar-top-ios .md .navbar ~ .toolbar-top-md.tabbar-labels ~ .list-index { + top: calc(var(--f7-navbar-height) + var(--f7-tabbar-labels-height)); +} +.navbar ~ .subnavbar ~ .list-index, +.navbars ~ .subnavbar ~ .list-index, +.page-with-subnavbar .navbar ~ .list-index { + top: calc(var(--f7-navbar-height) + var(--f7-subnavbar-height)); +} +.toolbar-bottom ~ .page > .list-index, +.ios .toolbar-bottom-ios ~ .page > .list-index, +.md .toolbar-bottom-md ~ .page > .list-index, +.toolbar-bottom ~ * .page > .list-index, +.ios .toolbar-bottom-ios ~ * .page > .list-index, +.md .toolbar-bottom-md ~ * .page > .list-index, +.toolbar-bottom ~ .list-index, +.ios .toolbar-bottom-ios ~ .list-index, +.md .toolbar-bottom-md ~ .list-index { + bottom: calc(var(--f7-toolbar-height) + var(--f7-safe-area-bottom)); +} +.toolbar-bottom.tabbar-labels ~ .page > .list-index, +.ios .toolbar-bottom-ios.tabbar-labels ~ .page > .list-index, +.md .toolbar-bottom-md.tabbar-labels ~ .page > .list-index, +.toolbar-bottom.tabbar-labels ~ * .page > .list-index, +.ios .toolbar-bottom-ios.tabbar-labels ~ * .page > .list-index, +.md .toolbar-bottom-md.tabbar-labels ~ * .page > .list-index, +.toolbar-bottom.tabbar-labels ~ .list-index, +.ios .toolbar-bottom-ios.tabbar-labels ~ .list-index, +.md .toolbar-bottom-md.tabbar-labels ~ .list-index { + bottom: calc(var(--f7-tabbar-labels-height) + var(--f7-safe-area-bottom)); +} +.ios .list-index .list-index-label { + margin-bottom: calc(-1 * var(--f7-list-index-label-size) / 2); + margin-right: calc(var(--f7-list-index-width) - 1px); + border-radius: 50%; +} +.ios .list-index .list-index-label:before { + position: absolute; + width: 100%; + height: 100%; + border-radius: 50% 0% 50% 50%; + content: ''; + background-color: inherit; + left: 0; + top: 0; + transform: rotate(45deg); + z-index: -1; +} +.md .list-index .list-index-label { + border-radius: 50% 50% 0 50%; +} +.aurora .list-index .list-index-label { + margin-bottom: calc(-1 * var(--f7-list-index-label-size) / 2); + margin-right: calc(var(--f7-list-index-width) - 1px); + border-radius: 50%; +} +.aurora .list-index .list-index-label:before { + position: absolute; + width: 100%; + height: 100%; + border-radius: 50% 1px 50% 50%; + content: ''; + background-color: inherit; + left: 0; + top: 0; + transform: rotate(45deg); + z-index: -1; +} +/* === Timeline === */ +:root { + --f7-timeline-inner-block-margin-vertical: 16px; + --f7-timeline-divider-margin-horizontal: 16px; + --f7-timeline-horizontal-date-height: 34px; + --f7-timeline-year-height: 24px; + --f7-timeline-year-font-weight: inherit; + --f7-timeline-month-height: 24px; + --f7-timeline-month-font-size: inherit; + --f7-timeline-month-font-weight: inherit; + --f7-timeline-item-text-font-weight: inherit; + --f7-timeline-item-subtitle-font-weight: inherit; + --f7-timeline-item-inner-bg-color: #fff; +} +:root .theme-dark, +:root.theme-dark { + --f7-timeline-item-inner-bg-color: #1c1c1d; + --f7-timeline-horizontal-item-border-color: rgba(255, 255, 255, 0.15); + --f7-timeline-horizontal-item-date-border-color: rgba(255, 255, 255, 0.15); +} +.ios { + --f7-timeline-padding-horizontal: 16px; + --f7-timeline-margin-vertical: 35px; + --f7-timeline-item-inner-border-radius: 7px; + --f7-timeline-item-inner-box-shadow: none; + --f7-timeline-item-time-font-size: 13px; + --f7-timeline-item-title-font-size: 17px; + --f7-timeline-item-title-line-height: inherit; + --f7-timeline-item-title-font-weight: 600; + --f7-timeline-item-subtitle-font-size: 15px; + --f7-timeline-item-subtitle-line-height: inherit; + --f7-timeline-item-text-font-size: inherit; + --f7-timeline-item-text-color: inherit; + --f7-timeline-item-text-line-height: inherit; + --f7-timeline-year-font-size: 16px; + --f7-timeline-horizontal-item-padding: 10px; + --f7-timeline-horizontal-item-date-shadow-image: none; + --f7-timeline-item-time-text-color: rgba(0, 0, 0, 0.45); + --f7-timeline-horizontal-item-border-color: rgba(0, 0, 0, 0.22); + --f7-timeline-horizontal-item-date-border-color: rgba(0, 0, 0, 0.22); +} +.ios .theme-dark, +.ios.theme-dark { + --f7-timeline-item-time-text-color: rgba(255, 255, 255, 0.55); +} +.md { + --f7-timeline-padding-horizontal: 16px; + --f7-timeline-margin-vertical: 32px; + --f7-timeline-item-inner-border-radius: 4px; + --f7-timeline-item-inner-box-shadow: var(--f7-elevation-1); + --f7-timeline-item-time-font-size: 13px; + --f7-timeline-item-title-font-size: 16px; + --f7-timeline-item-title-line-height: inherit; + --f7-timeline-item-title-font-weight: 400; + --f7-timeline-item-subtitle-font-size: inherit; + --f7-timeline-item-subtitle-line-height: inherit; + --f7-timeline-item-text-font-size: inherit; + --f7-timeline-item-text-line-height: inherit; + --f7-timeline-item-text-color: inherit; + --f7-timeline-year-font-size: 16px; + --f7-timeline-horizontal-item-padding: 12px; + --f7-timeline-horizontal-item-date-shadow-image: var(--f7-bars-shadow-bottom-image); + --f7-timeline-item-time-text-color: rgba(0, 0, 0, 0.54); + --f7-timeline-horizontal-item-border-color: rgba(0, 0, 0, 0.12); + --f7-timeline-horizontal-item-date-border-color: transparent; +} +.md .theme-dark, +.md.theme-dark { + --f7-timeline-item-time-text-color: rgba(255, 255, 255, 0.54); +} +.aurora { + --f7-timeline-padding-horizontal: 10px; + --f7-timeline-margin-vertical: 15px; + --f7-timeline-item-inner-border-radius: 4px; + --f7-timeline-item-inner-box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.15); + --f7-timeline-item-time-font-size: 12px; + --f7-timeline-item-title-font-size: 14px; + --f7-timeline-item-title-line-height: 1.3; + --f7-timeline-item-title-font-weight: 600; + --f7-timeline-item-subtitle-font-size: 14px; + --f7-timeline-item-subtitle-line-height: 1.3; + --f7-timeline-item-text-font-size: 12px; + --f7-timeline-item-text-line-height: 1.33; + --f7-timeline-year-font-size: 14px; + --f7-timeline-year-font-weight: 500; + --f7-timeline-horizontal-item-padding: 10px; + --f7-timeline-horizontal-item-date-shadow-image: none; + --f7-timeline-item-time-text-color: rgba(0, 0, 0, 0.5); + --f7-timeline-item-text-color: rgba(0, 0, 0, 0.6); + --f7-timeline-horizontal-item-border-color: rgba(0, 0, 0, 0.2); + --f7-timeline-horizontal-item-date-border-color: rgba(0, 0, 0, 0.2); +} +.aurora .theme-dark, +.aurora.theme-dark { + --f7-timeline-item-time-text-color: rgba(255, 255, 255, 0.54); + --f7-timeline-item-text-color: rgba(255, 255, 255, 0.54); +} +.timeline { + box-sizing: border-box; + margin: var(--f7-timeline-margin-vertical) 0; + padding: 0 var(--f7-timeline-padding-horizontal); + padding-top: 0; + padding-bottom: 0; + padding-left: calc(var(--f7-timeline-padding-horizontal) + var(--f7-safe-area-left)); + padding-right: calc(var(--f7-timeline-padding-horizontal) + var(--f7-safe-area-right)); +} +.block-strong .timeline { + padding: 0; + margin: 0; +} +.timeline-item { + display: flex; + justify-content: flex-start; + overflow: hidden; + box-sizing: border-box; + position: relative; + padding: 2px 0px var(--f7-timeline-padding-horizontal); +} +.timeline-item:last-child { + padding-bottom: 2px; +} +.timeline-item-date { + flex-shrink: 0; + width: 50px; + text-align: right; + box-sizing: border-box; +} +.timeline-item-date small { + font-size: 10px; +} +.timeline-item-content { + margin: 2px; + min-width: 0; + position: relative; + flex-shrink: 10; +} +.timeline-item-content .card, +.timeline-item-content.card, +.timeline-item-content .list, +.timeline-item-content.list, +.timeline-item-content .block, +.timeline-item-content.block { + margin: 0; + width: 100%; +} +.timeline-item-content .card + .card, +.timeline-item-content .list + .card, +.timeline-item-content .block + .card, +.timeline-item-content .card + .list, +.timeline-item-content .list + .list, +.timeline-item-content .block + .list, +.timeline-item-content .card + .block, +.timeline-item-content .list + .block, +.timeline-item-content .block + .block { + margin: var(--f7-timeline-inner-block-margin-vertical) 0 0; +} +.timeline-item-content p:first-child, +.timeline-item-content ul:first-child, +.timeline-item-content ol:first-child, +.timeline-item-content h1:first-child, +.timeline-item-content h2:first-child, +.timeline-item-content h3:first-child, +.timeline-item-content h4:first-child { + margin-top: 0; +} +.timeline-item-content p:last-child, +.timeline-item-content ul:last-child, +.timeline-item-content ol:last-child, +.timeline-item-content h1:last-child, +.timeline-item-content h2:last-child, +.timeline-item-content h3:last-child, +.timeline-item-content h4:last-child { + margin-bottom: 0; +} +.timeline-item-inner { + background: var(--f7-timeline-item-inner-bg-color); + box-sizing: border-box; + border-radius: var(--f7-timeline-item-inner-border-radius); + padding: 8px var(--f7-timeline-padding-horizontal); + box-shadow: var(--f7-timeline-item-inner-box-shadow); +} +.timeline-item-inner + .timeline-item-inner { + margin-top: var(--f7-timeline-inner-block-margin-vertical); +} +.timeline-item-inner .block { + padding: 0; + color: inherit; +} +.timeline-item-inner .block-strong { + padding-left: 0; + padding-right: 0; + margin: 0; +} +.timeline-item-inner .block-strong:before, +.timeline-item-inner .block-strong:after { + display: none !important; +} +.timeline-item-inner .list ul:before, +.timeline-item-inner .list ul:after { + display: none !important; +} +.timeline-item-divider { + width: 1px; + position: relative; + width: 10px; + height: 10px; + background: #bbb; + border-radius: 50%; + flex-shrink: 0; + margin: 3px var(--f7-timeline-divider-margin-horizontal) 0; +} +.timeline-item-divider:after, +.timeline-item-divider:before { + content: ' '; + width: 1px; + height: 100vh; + position: absolute; + left: 50%; + background: inherit; + transform: translate3d(-50%, 0, 0); +} +.timeline-item-divider:after { + top: 100%; +} +.timeline-item-divider:before { + bottom: 100%; +} +.timeline-item:last-child .timeline-item-divider:after { + display: none; +} +.timeline-item:first-child .timeline-item-divider:before { + display: none; +} +.timeline-item-time { + font-size: var(--f7-timeline-item-time-font-size); + margin-top: var(--f7-timeline-inner-block-margin-vertical); + color: var(--f7-timeline-item-time-text-color); +} +.timeline-item-time:first-child, +.timeline-item-time:last-child { + margin-top: 0; +} +.timeline-item-title + .timeline-item-time { + margin-top: 0; +} +.timeline-item-title { + font-size: var(--f7-timeline-item-title-font-size); + font-weight: var(--f7-timeline-item-title-font-weight); + line-height: var(--f7-timeline-item-title-line-height); +} +.timeline-item-subtitle { + font-size: var(--f7-timeline-item-subtitle-font-size); + font-weight: var(--f7-timeline-item-subtitle-font-weight); + line-height: var(--f7-timeline-item-subtitle-line-height); +} +.timeline-item-text { + color: var(--f7-timeline-item-text-color); + font-size: var(--f7-timeline-item-text-font-size); + font-weight: var(--f7-timeline-item-text-font-weight); + line-height: var(--f7-timeline-item-text-line-height); +} +.timeline-sides .timeline-item-right, +.timeline-sides .timeline-item { + margin-right: calc(50% - (var(--f7-timeline-divider-margin-horizontal) * 2 + 10px) / 2 - 50px); + margin-left: 0; +} +.timeline-sides .timeline-item-right .timeline-item-date, +.timeline-sides .timeline-item .timeline-item-date { + text-align: left; +} +.timeline-sides .timeline-item-left, +.timeline-sides .timeline-item:not(.timeline-item-right):nth-child(2n) { + flex-direction: row-reverse; + margin-left: calc(50% - (var(--f7-timeline-divider-margin-horizontal) * 2 + 10px) / 2 - 50px); + margin-right: 0; +} +.timeline-sides .timeline-item-left .timeline-item-date, +.timeline-sides .timeline-item:not(.timeline-item-right):nth-child(2n) .timeline-item-date { + text-align: right; +} +@media (min-width: 480px) { + .xsmall-sides .timeline-item-right, + .xsmall-sides .timeline-item { + margin-right: calc(50% - (var(--f7-timeline-divider-margin-horizontal) * 2 + 10px) / 2 - 50px); + margin-left: 0; + } + .xsmall-sides .timeline-item-right .timeline-item-date, + .xsmall-sides .timeline-item .timeline-item-date { + text-align: left; + } + .xsmall-sides .timeline-item-left, + .xsmall-sides .timeline-item:not(.timeline-item-right):nth-child(2n) { + flex-direction: row-reverse; + margin-left: calc(50% - (var(--f7-timeline-divider-margin-horizontal) * 2 + 10px) / 2 - 50px); + margin-right: 0; + } + .xsmall-sides .timeline-item-left .timeline-item-date, + .xsmall-sides .timeline-item:not(.timeline-item-right):nth-child(2n) .timeline-item-date { + text-align: right; + } +} +@media (min-width: 568px) { + .small-sides .timeline-item-right, + .small-sides .timeline-item { + margin-right: calc(50% - (var(--f7-timeline-divider-margin-horizontal) * 2 + 10px) / 2 - 50px); + margin-left: 0; + } + .small-sides .timeline-item-right .timeline-item-date, + .small-sides .timeline-item .timeline-item-date { + text-align: left; + } + .small-sides .timeline-item-left, + .small-sides .timeline-item:not(.timeline-item-right):nth-child(2n) { + flex-direction: row-reverse; + margin-left: calc(50% - (var(--f7-timeline-divider-margin-horizontal) * 2 + 10px) / 2 - 50px); + margin-right: 0; + } + .small-sides .timeline-item-left .timeline-item-date, + .small-sides .timeline-item:not(.timeline-item-right):nth-child(2n) .timeline-item-date { + text-align: right; + } +} +@media (min-width: 768px) { + .medium-sides .timeline-item-right, + .medium-sides .timeline-item { + margin-right: calc(50% - (var(--f7-timeline-divider-margin-horizontal) * 2 + 10px) / 2 - 50px); + margin-left: 0; + } + .medium-sides .timeline-item-right .timeline-item-date, + .medium-sides .timeline-item .timeline-item-date { + text-align: left; + } + .medium-sides .timeline-item-left, + .medium-sides .timeline-item:not(.timeline-item-right):nth-child(2n) { + flex-direction: row-reverse; + margin-left: calc(50% - (var(--f7-timeline-divider-margin-horizontal) * 2 + 10px) / 2 - 50px); + margin-right: 0; + } + .medium-sides .timeline-item-left .timeline-item-date, + .medium-sides .timeline-item:not(.timeline-item-right):nth-child(2n) .timeline-item-date { + text-align: right; + } +} +@media (min-width: 1024px) { + .large-sides .timeline-item-right, + .large-sides .timeline-item { + margin-right: calc(50% - (var(--f7-timeline-divider-margin-horizontal) * 2 + 10px) / 2 - 50px); + margin-left: 0; + } + .large-sides .timeline-item-right .timeline-item-date, + .large-sides .timeline-item .timeline-item-date { + text-align: left; + } + .large-sides .timeline-item-left, + .large-sides .timeline-item:not(.timeline-item-right):nth-child(2n) { + flex-direction: row-reverse; + margin-left: calc(50% - (var(--f7-timeline-divider-margin-horizontal) * 2 + 10px) / 2 - 50px); + margin-right: 0; + } + .large-sides .timeline-item-left .timeline-item-date, + .large-sides .timeline-item:not(.timeline-item-right):nth-child(2n) .timeline-item-date { + text-align: right; + } +} +@media (min-width: 1200px) { + .xlarge-sides .timeline-item-right, + .xlarge-sides .timeline-item { + margin-right: calc(50% - (var(--f7-timeline-divider-margin-horizontal) * 2 + 10px) / 2 - 50px); + margin-left: 0; + } + .xlarge-sides .timeline-item-right .timeline-item-date, + .xlarge-sides .timeline-item .timeline-item-date { + text-align: left; + } + .xlarge-sides .timeline-item-left, + .xlarge-sides .timeline-item:not(.timeline-item-right):nth-child(2n) { + flex-direction: row-reverse; + margin-left: calc(50% - (var(--f7-timeline-divider-margin-horizontal) * 2 + 10px) / 2 - 50px); + margin-right: 0; + } + .xlarge-sides .timeline-item-left .timeline-item-date, + .xlarge-sides .timeline-item:not(.timeline-item-right):nth-child(2n) .timeline-item-date { + text-align: right; + } +} +.timeline-horizontal { + height: 100%; + display: flex; + padding: 0; + margin: 0; + position: relative; + padding-left: var(--f7-safe-area-left); + padding-right: 0; +} +.timeline-horizontal .timeline-item { + display: block; + width: 33.33333333vw; + margin: 0; + padding: 0; + flex-shrink: 0; + position: relative; + height: 100%; + padding-top: var(--f7-timeline-horizontal-date-height) !important; + padding-bottom: var(--f7-timeline-horizontal-item-padding); +} +.timeline-horizontal .timeline-item:after { + content: ''; + position: absolute; + background-color: var(--f7-timeline-horizontal-item-border-color); + display: block; + z-index: 15; + top: 0; + right: 0; + bottom: auto; + left: auto; + width: 1px; + height: 100%; + transform-origin: 100% 50%; + transform: scaleX(calc(1 / var(--f7-device-pixel-ratio))); +} +.timeline-horizontal .timeline-item-date { + padding: 0px var(--f7-timeline-horizontal-item-padding); + width: auto; + text-align: left; + line-height: var(--f7-timeline-horizontal-date-height); + position: absolute; + left: 0; + top: 0; + width: 100%; + height: var(--f7-timeline-horizontal-date-height); + background-color: var(--f7-bars-bg-color); + color: var(--f7-bars-text-color); + text-align: right; +} +@supports ((-webkit-backdrop-filter: blur(20px)) or (backdrop-filter: blur(20px))) { + .ios-translucent-bars .timeline-horizontal .timeline-item-date { + background-color: rgba(var(--f7-bars-bg-color-rgb), var(--f7-bars-translucent-opacity)); + -webkit-backdrop-filter: saturate(180%) blur(var(--f7-bars-translucent-blur)); + backdrop-filter: saturate(180%) blur(var(--f7-bars-translucent-blur)); + } +} +.timeline-horizontal .timeline-item-date:after { + content: ''; + position: absolute; + background-color: var(--f7-timeline-horizontal-item-date-border-color); + display: block; + z-index: 15; + top: auto; + right: auto; + bottom: 0; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 100%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +.timeline-horizontal .timeline-item-date:before { + content: ''; + position: absolute; + right: 0; + width: 100%; + top: 100%; + bottom: auto; + height: 8px; + pointer-events: none; + background: var(--f7-timeline-horizontal-item-date-shadow-image); +} +.timeline-horizontal.no-shadow .timeline-item-date:before { + display: none; +} +.timeline-horizontal .timeline-item-content { + padding: var(--f7-timeline-horizontal-item-padding); + height: calc(100% - var(--f7-timeline-horizontal-item-padding)); + overflow: auto; + -webkit-overflow-scrolling: touch; + margin: 0; +} +.timeline-horizontal .timeline-item-divider { + display: none; +} +.timeline-horizontal > .timeline-item:last-child:after, +.timeline-horizontal .timeline-month:last-child .timeline-item:last-child:after { + display: none !important; +} +.timeline-horizontal.col-5 .timeline-item { + width: 5vw; +} +.timeline-horizontal.col-10 .timeline-item { + width: 10vw; +} +.timeline-horizontal.col-15 .timeline-item { + width: 15vw; +} +.timeline-horizontal.col-20 .timeline-item { + width: 20vw; +} +.timeline-horizontal.col-25 .timeline-item { + width: 25vw; +} +.timeline-horizontal.col-30 .timeline-item { + width: 30vw; +} +.timeline-horizontal.col-33 .timeline-item { + width: 33.333333333333336vw; +} +.timeline-horizontal.col-35 .timeline-item { + width: 35vw; +} +.timeline-horizontal.col-40 .timeline-item { + width: 40vw; +} +.timeline-horizontal.col-45 .timeline-item { + width: 45vw; +} +.timeline-horizontal.col-50 .timeline-item { + width: 50vw; +} +.timeline-horizontal.col-55 .timeline-item { + width: 55vw; +} +.timeline-horizontal.col-60 .timeline-item { + width: 60vw; +} +.timeline-horizontal.col-65 .timeline-item { + width: 65vw; +} +.timeline-horizontal.col-66 .timeline-item { + width: 66.66666666666666vw; +} +.timeline-horizontal.col-70 .timeline-item { + width: 70vw; +} +.timeline-horizontal.col-75 .timeline-item { + width: 75vw; +} +.timeline-horizontal.col-80 .timeline-item { + width: 80vw; +} +.timeline-horizontal.col-85 .timeline-item { + width: 85vw; +} +.timeline-horizontal.col-90 .timeline-item { + width: 90vw; +} +.timeline-horizontal.col-95 .timeline-item { + width: 95vw; +} +.timeline-horizontal.col-100 .timeline-item { + width: 100vw; +} +@media (min-width: 768px) { + .timeline-horizontal.tablet-5 .timeline-item { + width: 5vw; + } + .timeline-horizontal.tablet-10 .timeline-item { + width: 10vw; + } + .timeline-horizontal.tablet-15 .timeline-item { + width: 15vw; + } + .timeline-horizontal.tablet-20 .timeline-item { + width: 20vw; + } + .timeline-horizontal.tablet-25 .timeline-item { + width: 25vw; + } + .timeline-horizontal.tablet-30 .timeline-item { + width: 30vw; + } + .timeline-horizontal.tablet-33 .timeline-item { + width: 33.333333333333336vw; + } + .timeline-horizontal.tablet-35 .timeline-item { + width: 35vw; + } + .timeline-horizontal.tablet-40 .timeline-item { + width: 40vw; + } + .timeline-horizontal.tablet-45 .timeline-item { + width: 45vw; + } + .timeline-horizontal.tablet-50 .timeline-item { + width: 50vw; + } + .timeline-horizontal.tablet-55 .timeline-item { + width: 55vw; + } + .timeline-horizontal.tablet-60 .timeline-item { + width: 60vw; + } + .timeline-horizontal.tablet-65 .timeline-item { + width: 65vw; + } + .timeline-horizontal.tablet-66 .timeline-item { + width: 66.66666666666666vw; + } + .timeline-horizontal.tablet-70 .timeline-item { + width: 70vw; + } + .timeline-horizontal.tablet-75 .timeline-item { + width: 75vw; + } + .timeline-horizontal.tablet-80 .timeline-item { + width: 80vw; + } + .timeline-horizontal.tablet-85 .timeline-item { + width: 85vw; + } + .timeline-horizontal.tablet-90 .timeline-item { + width: 90vw; + } + .timeline-horizontal.tablet-95 .timeline-item { + width: 95vw; + } + .timeline-horizontal.tablet-100 .timeline-item { + width: 100vw; + } +} +.timeline-year { + padding-top: var(--f7-timeline-year-height); +} +.timeline-year:after { + content: ''; + position: absolute; + background-color: var(--f7-timeline-horizontal-item-border-color); + display: block; + z-index: 15; + top: 0; + right: 0; + bottom: auto; + left: auto; + width: 1px; + height: 100%; + transform-origin: 100% 50%; + transform: scaleX(calc(1 / var(--f7-device-pixel-ratio))); +} +.timeline-year:last-child:after { + display: none !important; +} +.timeline-month { + padding-top: var(--f7-timeline-month-height); +} +.timeline-month .timeline-item:before { + content: ''; + position: absolute; + background-color: var(--f7-timeline-horizontal-item-border-color); + display: block; + z-index: 15; + top: 0; + right: auto; + bottom: auto; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 0%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +.timeline-year, +.timeline-month { + display: flex; + flex-shrink: 0; + position: relative; + box-sizing: border-box; + height: 100%; +} +.timeline-year-title { + line-height: var(--f7-timeline-year-height); + height: var(--f7-timeline-year-height); + font-size: var(--f7-timeline-year-font-size); + font-weight: var(--f7-timeline-year-font-weight); +} +.timeline-month-title { + line-height: var(--f7-timeline-month-height); + height: var(--f7-timeline-month-height); + font-size: var(--f7-timeline-month-font-size); + font-weight: var(--f7-timeline-month-font-weight); +} +.timeline-year-title, +.timeline-month-title { + position: absolute; + left: 0; + top: 0; + width: 100%; + box-sizing: border-box; + padding: 0 var(--f7-timeline-horizontal-item-padding); + background-color: var(--f7-bars-bg-color); + color: var(--f7-bars-text-color); +} +@supports ((-webkit-backdrop-filter: blur(20px)) or (backdrop-filter: blur(20px))) { + .ios-translucent-bars .timeline-year-title, + .ios-translucent-bars .timeline-month-title { + background-color: rgba(var(--f7-bars-bg-color-rgb), var(--f7-bars-translucent-opacity)); + -webkit-backdrop-filter: saturate(180%) blur(var(--f7-bars-translucent-blur)); + backdrop-filter: saturate(180%) blur(var(--f7-bars-translucent-blur)); + } +} +.timeline-year-title span, +.timeline-month-title span { + display: inline-block; + position: -webkit-sticky; + position: sticky; + right: calc(var(--f7-timeline-horizontal-item-padding) + var(--f7-safe-area-right)); +} +.timeline-month-title span { + margin-top: -2px; +} +.timeline-year:first-child .timeline-year-title, +.timeline-year:first-child .timeline-month:first-child .timeline-month-title, +.timeline-year:first-child .timeline-year-title + .timeline-month .timeline-month-title { + left: calc(var(--f7-safe-area-left) * -1); + right: 0; + width: auto; +} +.timeline-horizontal .timeline-item:first-child, +.timeline-year:first-child .timeline-month:first-child .timeline-item:first-child, +.timeline-year:first-child .timeline-year-title + .timeline-month .timeline-item:first-child, +.timeline-year:first-child .timeline-year-title + .timeline-month .timeline-month-title + .timeline-item { + overflow: visible; +} +.timeline-horizontal .timeline-item:first-child .timeline-item-date, +.timeline-year:first-child .timeline-month:first-child .timeline-item:first-child .timeline-item-date, +.timeline-year:first-child .timeline-year-title + .timeline-month .timeline-item:first-child .timeline-item-date, +.timeline-year:first-child .timeline-year-title + .timeline-month .timeline-month-title + .timeline-item .timeline-item-date { + width: auto; + padding-left: calc(var(--f7-timeline-horizontal-item-padding) + var(--f7-safe-area-left)); + left: calc(0px - var(--f7-safe-area-left)); + right: 0; +} +.timeline-year:last-child .timeline-year-title, +.timeline-year:last-child .timeline-month:last-child .timeline-month-title { + width: auto; + right: calc(0px - var(--f7-safe-area-right)); +} +.timeline-horizontal .timeline-item:last-child, +.timeline-year:last-child .timeline-month:last-child .timeline-item:last-child { + overflow: visible; +} +.timeline-horizontal .timeline-item:last-child .timeline-item-date, +.timeline-year:last-child .timeline-month:last-child .timeline-item:last-child .timeline-item-date { + width: auto; + right: calc(0px - var(--f7-safe-area-right)); + left: 0; +} +.ios .block-strong .timeline-item-inner { + border-radius: 3px; + border: 1px solid rgba(0, 0, 0, 0.1); +} +.ios .timeline-year-title span { + margin-top: 3px; +} +.md .timeline-year-title span { + margin-top: 2px; +} +.aurora .timeline-year-title span { + margin-top: 2px; +} +/* === Tabs === */ +.tabs .tab { + display: none; +} +.tabs .tab-active { + display: block; +} +.tabs-animated-wrap { + position: relative; + width: 100%; + overflow: hidden; + height: 100%; +} +.tabs-animated-wrap > .tabs { + display: flex; + height: 100%; + transition-duration: 300ms; +} +.tabs-animated-wrap > .tabs > .tab { + width: 100%; + display: block; + flex-shrink: 0; +} +.tabs-animated-wrap.not-animated > .tabs { + transition-duration: 0ms; +} +.tabs-swipeable-wrap { + height: 100%; +} +.tabs-swipeable-wrap > .tabs { + height: 100%; +} +.tabs-swipeable-wrap > .tabs > .tab { + display: block; +} +.page > .tabs { + height: 100%; +} +/* === Panels === */ +:root { + --f7-panel-width: 260px; + /* + --f7-panel-left-width: var(--f7-panel-width); + --f7-panel-right-width: var(--f7-panel-width); + --f7-panel-left-collapsed-width: var(--f7-panel-collapsed-width); + --f7-panel-right-collapsed-width: var(--f7-panel-collapsed-width); + */ + --f7-panel-bg-color: #fff; +} +.ios { + --f7-panel-collapsed-width: 58px; + --f7-panel-backdrop-bg-color: rgba(0, 0, 0, 0); + --f7-panel-transition-duration: 400ms; + --f7-panel-shadow: transparent; +} +.md { + --f7-panel-collapsed-width: 60px; + --f7-panel-backdrop-bg-color: rgba(0, 0, 0, 0.3); + --f7-panel-transition-duration: 300ms; + --f7-panel-shadow: rgba(0, 0, 0, 0.2) 0%, + rgba(0, 0, 0, 0.07) 30%, + rgba(0, 0, 0, 0.03) 40%, + rgba(0, 0, 0, 0) 60%, + rgba(0, 0, 0, 0) 100%; +} +.aurora { + --f7-panel-collapsed-width: 44px; + --f7-panel-backdrop-bg-color: rgba(0, 0, 0, 0.2); + --f7-panel-transition-duration: 400ms; + --f7-panel-shadow: transparent; +} +.panel-backdrop { + position: absolute; + left: 0; + top: var(--f7-appbar-app-offset, 0px); + width: 100%; + height: calc(100% - var(--f7-appbar-app-offset, 0px)); + opacity: 0; + z-index: 5999; + visibility: hidden; + pointer-events: none; + transform: translate3d(0, 0, 0); + background-color: var(--f7-panel-backdrop-bg-color); + transition-property: transform, opacity; + transition-duration: var(--f7-panel-transition-duration); +} +.panel-backdrop .with-panel, +.panel-backdrop .with-panel-closing { + visibility: visible; +} +.panel-backdrop.not-animated { + transition-duration: 0ms !important; +} +.panel { + z-index: 1000; + box-sizing: border-box; + position: absolute; + top: var(--f7-appbar-app-offset, 0px); + height: calc(100% - var(--f7-appbar-app-offset, 0px)); + transform: translate3d(0, 0, 0); + width: var(--f7-panel-width); + background-color: var(--f7-panel-bg-color); + overflow: visible; + transition-property: transform; + transition-duration: var(--f7-panel-transition-duration); +} +.panel:not(.panel-in):not(.panel-out):not(.panel-in-breakpoint):not(.panel-in-collapsed):not(.panel-in-swipe) { + display: none; +} +.panel:after { + pointer-events: none; + opacity: 0; + z-index: 5999; + position: absolute; + content: ''; + top: 0; + width: 20px; + height: 100%; + transition-property: transform, opacity; + transition-duration: var(--f7-panel-transition-duration); +} +.panel.not-animated, +.panel.not-animated:after { + transition-duration: 0ms !important; +} +.panel.panel-reveal.not-animated ~ .views, +.panel.panel-reveal.not-animated ~ .view { + transition-duration: 0ms !important; +} +.panel.panel-resizing { + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; +} +.panel.panel-resizing, +.panel.panel-resizing:after, +.panel.panel-resizing ~ .views, +.panel.panel-resizing ~ .view { + transition-duration: 0ms !important; +} +.panel-cover { + z-index: 6000; +} +.panel-left { + left: 0; + width: var(--f7-panel-left-width, var(--f7-panel-width)); +} +.panel-left.panel-cover { + transform: translate3d(calc(-1 * var(--f7-panel-left-width, var(--f7-panel-width))), 0, 0); +} +.panel-left.panel-cover:after { + left: 100%; + background: linear-gradient(to right, var(--f7-panel-shadow)); +} +html.with-panel-left-cover .panel-left.panel-cover:after { + opacity: 1; +} +.panel-left.panel-reveal:after { + right: 0; + transform: translate3d(calc(-1 * var(--f7-panel-left-width, var(--f7-panel-width))), 0, 0); + background: linear-gradient(to left, var(--f7-panel-shadow)); +} +html.with-panel-left-reveal .panel-left.panel-reveal:after { + opacity: 1; + transform: translate3d(0, 0, 0); +} +.panel-right { + right: 0; + width: var(--f7-panel-right-width, var(--f7-panel-width)); +} +.panel-right.panel-cover { + transform: translate3d(var(--f7-panel-right-width, var(--f7-panel-width)), 0, 0); +} +.panel-right.panel-cover:after { + right: 100%; + background: linear-gradient(to left, var(--f7-panel-shadow)); +} +html.with-panel-right-cover .panel-right.panel-cover:after { + opacity: 1; +} +.panel-right.panel-reveal:after { + left: 0; + background: linear-gradient(to right, var(--f7-panel-shadow)); + transform: translate3d(var(--f7-panel-right-width, var(--f7-panel-width)), 0, 0); +} +html.with-panel-right-reveal .panel-right.panel-reveal:after { + opacity: 1; + transform: translate3d(0, 0, 0); +} +.panel-in-breakpoint { + transform: translate3d(0, 0, 0) !important; + transition-duration: 0ms; +} +.panel-in-breakpoint:after { + display: none; +} +.panel-in-breakpoint.panel-cover { + z-index: 5900; +} +html.with-panel-left-reveal .views, +html.with-panel-right-reveal .views, +html.with-panel-closing .views, +html.with-panel-left-reveal .framework7-root > .view, +html.with-panel-right-reveal .framework7-root > .view, +html.with-panel-closing .framework7-root > .view { + transition-duration: var(--f7-panel-transition-duration); + transition-property: transform; +} +html.with-panel-left-reveal .panel-backdrop-in, +html.with-panel-right-reveal .panel-backdrop-in, +html.with-panel-closing .panel-backdrop-in { + visibility: visible; + pointer-events: auto; + opacity: 0; +} +html.with-panel .framework7-root > .views .page-content, +html.with-panel .framework7-root > .view .page-content { + overflow: hidden; + -webkit-overflow-scrolling: auto; +} +html.with-panel-left-cover .panel-backdrop-in, +html.with-panel-right-cover .panel-backdrop-in { + visibility: visible; + pointer-events: auto; + opacity: 1; +} +html.with-panel-left-reveal .views, +html.with-panel-left-reveal .framework7-root > .view, +html.with-panel-left-reveal .panel-backdrop-in { + transform: translate3d(var(--f7-panel-left-width, var(--f7-panel-width)), 0, 0); +} +html.with-panel-right-reveal .views, +html.with-panel-right-reveal .framework7-root > .view, +html.with-panel-right-reveal .panel-backdrop-in { + transform: translate3d(calc(-1 * var(--f7-panel-right-width, var(--f7-panel-width))), 0, 0); +} +html.with-panel-left-cover .panel-left { + transform: translate3d(0px, 0, 0); +} +html.with-panel-right-cover .panel-right { + transform: translate3d(0px, 0, 0); +} +.panel-resize-handler { + position: absolute; + top: 0; + height: 100%; + width: 6px; + cursor: col-resize; + z-index: 6000; + display: none; +} +.panel-resizable .panel-resize-handler { + display: block; +} +.panel-left.panel-cover .panel-resize-handler { + right: -3px; +} +.panel-left.panel-reveal .panel-resize-handler { + right: 0; +} +.panel-right.panel-cover .panel-resize-handler { + left: -3px; +} +.panel-right.panel-reveal .panel-resize-handler { + left: 0; +} +.panel-left.panel-in-collapsed ~ .views, +.panel-left.panel-in-collapsed ~ .view { + margin-left: var(--f7-panel-left-collapsed-width, var(--f7-panel-collapsed-width)); +} +html.with-panel-left-reveal .panel-left.panel-in-collapsed ~ .views, +html.with-panel-left-reveal .panel-left.panel-in-collapsed ~ .view { + transform: translate3d(calc(var(--f7-panel-left-width, var(--f7-panel-width)) - var(--f7-panel-left-collapsed-width, var(--f7-panel-collapsed-width))), 0, 0); +} +.panel-right.panel-in-collapsed ~ .views, +.panel-right.panel-in-collapsed ~ .view { + margin-right: var(--f7-panel-right-collapsed-width, var(--f7-panel-collapsed-width)); +} +html.with-panel-right-reveal .panel-right.panel-in-collapsed ~ .views, +html.with-panel-right-reveal .panel-right.panel-in-collapsed ~ .view { + transform: translate3d(calc(var(--f7-panel-right-collapsed-width, var(--f7-panel-collapsed-width)) - var(--f7-panel-right-width, var(--f7-panel-width))), 0, 0); +} +html.with-modal-popup-push .framework7-root, +html.with-modal-popup-push-closing .framework7-root { + --f7-panelPushScale: var(--f7-popup-push-scale); + --f7-panelPushTransitionDuration: var(--f7-popup-transition-duration); + --f7-panelPushBorderRadius: var(--f7-popup-push-border-radius); +} +html.with-modal-sheet-push .framework7-root, +html.with-modal-sheet-push-closing .framework7-root { + --f7-panelPushScale: var(--f7-sheet-push-scale); + --f7-panelPushTransitionDuration: var(--f7-sheet-transition-duration); + --f7-panelPushBorderRadius: var(--f7-sheet-push-border-radius); +} +html.with-modal-popup-push .framework7-root > .panel-in, +html.with-modal-sheet-push .framework7-root > .panel-in, +html.with-modal-popup-push .framework7-root > .panel-out, +html.with-modal-sheet-push .framework7-root > .panel-out { + transition-duration: var(--f7-panelPushTransitionDuration); +} +html.with-modal-popup-push .framework7-root > .panel-in.panel-reveal.panel-left, +html.with-modal-sheet-push .framework7-root > .panel-in.panel-reveal.panel-left, +html.with-modal-popup-push .framework7-root > .panel-out.panel-reveal.panel-left, +html.with-modal-sheet-push .framework7-root > .panel-out.panel-reveal.panel-left { + transform: scale(var(--f7-panelPushScale, 1)); + transform-origin: 50vw center; + border-top-left-radius: var(--f7-panelPushBorderRadius); +} +html.with-modal-popup-push .framework7-root > .panel-in.panel-reveal.panel-left .view, +html.with-modal-sheet-push .framework7-root > .panel-in.panel-reveal.panel-left .view, +html.with-modal-popup-push .framework7-root > .panel-out.panel-reveal.panel-left .view, +html.with-modal-sheet-push .framework7-root > .panel-out.panel-reveal.panel-left .view { + border-top-left-radius: var(--f7-panelPushBorderRadius); +} +html.with-modal-popup-push .framework7-root > .panel-in.panel-reveal.panel-right, +html.with-modal-sheet-push .framework7-root > .panel-in.panel-reveal.panel-right, +html.with-modal-popup-push .framework7-root > .panel-out.panel-reveal.panel-right, +html.with-modal-sheet-push .framework7-root > .panel-out.panel-reveal.panel-right { + transform: scale(var(--f7-panelPushScale, 1)); + transform-origin: calc(var(--f7-panel-left-width, var(--f7-panel-width)) - 50vw) center; + border-top-right-radius: var(--f7-panelPushBorderRadius); +} +html.with-modal-popup-push .framework7-root > .panel-in.panel-reveal.panel-right .view, +html.with-modal-sheet-push .framework7-root > .panel-in.panel-reveal.panel-right .view, +html.with-modal-popup-push .framework7-root > .panel-out.panel-reveal.panel-right .view, +html.with-modal-sheet-push .framework7-root > .panel-out.panel-reveal.panel-right .view { + border-top-right-radius: var(--f7-panelPushBorderRadius); +} +html.with-modal-popup-push .framework7-root > .panel-in.panel-cover.panel-left, +html.with-modal-sheet-push .framework7-root > .panel-in.panel-cover.panel-left, +html.with-modal-popup-push .framework7-root > .panel-out.panel-cover.panel-left, +html.with-modal-sheet-push .framework7-root > .panel-out.panel-cover.panel-left { + transform: translate3d(calc(-1 * var(--f7-panel-left-width, var(--f7-panel-width))), 0, 0px); +} +html.with-modal-popup-push .framework7-root > .panel-in.panel-cover.panel-right, +html.with-modal-sheet-push .framework7-root > .panel-in.panel-cover.panel-right, +html.with-modal-popup-push .framework7-root > .panel-out.panel-cover.panel-right, +html.with-modal-sheet-push .framework7-root > .panel-out.panel-cover.panel-right { + transform: translate3d(var(--f7-panel-right-width, var(--f7-panel-width)), 0, 0px); +} +html.with-modal-popup-push-closing .framework7-root > .panel-in, +html.with-modal-sheet-push-closing .framework7-root > .panel-in { + transition-duration: var(--f7-panelPushTransitionDuration); +} +html.with-modal-popup-push-closing .framework7-root > .panel-in.panel-reveal.panel-left, +html.with-modal-sheet-push-closing .framework7-root > .panel-in.panel-reveal.panel-left { + transform-origin: 50vw center; +} +html.with-modal-popup-push-closing .framework7-root > .panel-in.panel-reveal.panel-right, +html.with-modal-sheet-push-closing .framework7-root > .panel-in.panel-reveal.panel-right { + transform-origin: calc(var(--f7-panel-right-width, var(--f7-panel-width)) - 50vw) center; +} +/* === Card === */ +:root { + --f7-card-content-padding-horizontal: 16px; + --f7-card-content-padding-vertical: 16px; + --f7-card-border-radius: 4px; + --f7-card-font-size: inherit; + --f7-card-header-text-color: inherit; + --f7-card-header-font-weight: 400; + --f7-card-header-padding-horizontal: 16px; + --f7-card-footer-font-weight: 400; + --f7-card-footer-font-size: inherit; + --f7-card-footer-padding-horizontal: 16px; + --f7-card-expandable-font-size: 16px; + --f7-card-expandable-tablet-width: 670px; + --f7-card-expandable-tablet-height: 670px; + --f7-card-bg-color: #fff; + --f7-card-outline-border-color: rgba(0, 0, 0, 0.12); + --f7-card-header-border-color: rgba(0, 0, 0, 0.1); + --f7-card-footer-border-color: rgba(0, 0, 0, 0.1); + --f7-card-expandable-bg-color: #fff; +} +:root .theme-dark, +:root.theme-dark { + --f7-card-bg-color: #1c1c1d; + --f7-card-expandable-bg-color: #1c1c1d; + --f7-card-outline-border-color: rgba(255, 255, 255, 0.15); + --f7-card-header-border-color: rgba(255, 255, 255, 0.15); + --f7-card-footer-border-color: rgba(255, 255, 255, 0.15); + --f7-card-footer-text-color: rgba(255, 255, 255, 0.55); +} +.ios { + --f7-card-margin-horizontal: 10px; + --f7-card-margin-vertical: 10px; + --f7-card-box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.2); + --f7-card-header-font-size: 17px; + --f7-card-header-padding-vertical: 10px; + --f7-card-header-min-height: 44px; + --f7-card-footer-text-color: rgba(0, 0, 0, 0.45); + --f7-card-footer-padding-vertical: 10px; + --f7-card-footer-min-height: 44px; + --f7-card-expandable-margin-horizontal: 20px; + --f7-card-expandable-margin-vertical: 30px; + --f7-card-expandable-box-shadow: 0px 20px 40px rgba(0, 0, 0, 0.3); + --f7-card-expandable-border-radius: 15px; + --f7-card-expandable-tablet-border-radius: 5px; + --f7-card-expandable-header-font-size: 27px; + --f7-card-expandable-header-font-weight: bold; +} +.md { + --f7-card-margin-horizontal: 8px; + --f7-card-margin-vertical: 8px; + --f7-card-box-shadow: var(--f7-elevation-1); + --f7-card-header-font-size: 16px; + --f7-card-header-padding-vertical: 4px; + --f7-card-header-min-height: 48px; + --f7-card-footer-text-color: rgba(0, 0, 0, 0.54); + --f7-card-footer-padding-vertical: 4px; + --f7-card-footer-min-height: 48px; + --f7-card-expandable-margin-horizontal: 12px; + --f7-card-expandable-margin-vertical: 24px; + --f7-card-expandable-box-shadow: var(--f7-elevation-10); + --f7-card-expandable-border-radius: 8px; + --f7-card-expandable-tablet-border-radius: 4px; + --f7-card-expandable-header-font-size: 24px; + --f7-card-expandable-header-font-weight: 500; +} +.aurora { + --f7-card-margin-horizontal: 10px; + --f7-card-margin-vertical: 10px; + --f7-card-box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.15); + --f7-card-header-font-size: 14px; + --f7-card-header-font-weight: bold; + --f7-card-header-padding-vertical: 10px; + --f7-card-header-min-height: 38px; + --f7-card-footer-text-color: rgba(0, 0, 0, 0.6); + --f7-card-footer-padding-vertical: 10px; + --f7-card-footer-min-height: 38px; + --f7-card-expandable-margin-horizontal: 10px; + --f7-card-expandable-margin-vertical: 20px; + --f7-card-expandable-box-shadow: 0px 5px 10px rgba(0, 0, 0, 0.15); + --f7-card-expandable-border-radius: 15px; + --f7-card-expandable-tablet-border-radius: 5px; + --f7-card-expandable-header-font-size: 27px; + --f7-card-expandable-header-font-weight: bold; +} +.cards-list > ul:before, +.card .list > ul:before, +.cards-list > ul:after, +.card .list > ul:after { + display: none !important; +} +.cards-list ul, +.card .list ul { + background: none; +} +.card { + background: var(--f7-card-bg-color); + position: relative; + border-radius: var(--f7-card-border-radius); + font-size: var(--f7-card-font-size); + margin-top: var(--f7-card-margin-vertical); + margin-bottom: var(--f7-card-margin-vertical); + margin-left: calc(var(--f7-card-margin-horizontal) + var(--f7-safe-area-left)); + margin-right: calc(var(--f7-card-margin-horizontal) + var(--f7-safe-area-right)); + box-shadow: var(--f7-card-box-shadow); +} +.card .list, +.card .block { + margin: 0; +} +.row:not(.no-gap) .col > .card { + margin-left: 0; + margin-right: 0; +} +.card.no-shadow { + box-shadow: none; +} +.card-outline, +.ios .card-outline-ios, +.md .card-outline-md, +.aurora .card-outline-aurora { + box-shadow: none; + border: 1px solid var(--f7-card-outline-border-color); +} +.card-outline.no-border, +.ios .card-outline-ios.no-border, +.md .card-outline-md.no-border, +.aurora .card-outline-aurora.no-border, +.card-outline.no-hairlines, +.ios .card-outline-ios.no-hairlines, +.md .card-outline-md.no-hairlines, +.aurora .card-outline-aurora.no-hairlines { + border: none; +} +.card-content { + position: relative; +} +.card-content-padding { + position: relative; + padding: var(--f7-card-content-padding-vertical) var(--f7-card-content-padding-horizontal); +} +.card-content-padding > .list, +.card-content-padding > .block { + margin: calc(-1 * var(--f7-card-content-padding-vertical)) calc(-1 * var(--f7-card-content-padding-horizontal)); +} +.card-content-padding > p:first-child { + margin-top: 0; +} +.card-content-padding > p:last-child { + margin-bottom: 0; +} +.card-header { + min-height: var(--f7-card-header-min-height); + color: var(--f7-card-header-text-color); + font-size: var(--f7-card-header-font-size); + font-weight: var(--f7-card-header-font-weight); + padding: var(--f7-card-header-padding-vertical) var(--f7-card-header-padding-horizontal); +} +.card-footer { + min-height: var(--f7-card-footer-min-height); + color: var(--f7-card-footer-text-color); + font-size: var(--f7-card-footer-font-size); + font-weight: var(--f7-card-footer-font-weight); + padding: var(--f7-card-footer-padding-vertical) var(--f7-card-footer-padding-horizontal); +} +.card-footer a.link { + overflow: hidden; +} +.card-header, +.card-footer { + position: relative; + box-sizing: border-box; + display: flex; + justify-content: space-between; + align-items: center; +} +.card-header[valign="top"], +.card-footer[valign="top"] { + align-items: flex-start; +} +.card-header[valign="bottom"], +.card-footer[valign="bottom"] { + align-items: flex-end; +} +.card-header a.link, +.card-footer a.link { + position: relative; +} +.card-header a.link i.icon, +.card-footer a.link i.icon { + display: block; +} +.card-header a.icon-only, +.card-footer a.icon-only { + display: flex; + justify-content: center; + align-items: center; + margin: 0; +} +.card-header { + border-radius: var(--f7-card-border-radius) var(--f7-card-border-radius) 0 0; +} +.card-header:after { + content: ''; + position: absolute; + background-color: var(--f7-card-header-border-color); + display: block; + z-index: 15; + top: auto; + right: auto; + bottom: 0; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 100%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +.card-header.no-hairline:after { + display: none !important; +} +.card-footer { + border-radius: 0 0 var(--f7-card-border-radius) var(--f7-card-border-radius); +} +.card-footer:before { + content: ''; + position: absolute; + background-color: var(--f7-card-footer-border-color); + display: block; + z-index: 15; + top: 0; + right: auto; + bottom: auto; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 0%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +.card-footer.no-hairline:before { + display: none !important; +} +.card-expandable { + overflow: hidden; + height: 300px; + background: var(--f7-card-expandable-bg-color); + position: relative; + transform-origin: center center; + transition-property: transform, border-radius; + border-radius: var(--f7-card-expandable-border-radius); + z-index: 2; + transition-duration: 200ms; + margin-left: calc(var(--f7-card-expandable-margin-horizontal) + var(--f7-safe-area-left)); + margin-right: calc(var(--f7-card-expandable-margin-horizontal) + var(--f7-safe-area-right)); + margin-top: var(--f7-card-expandable-margin-vertical); + margin-bottom: var(--f7-card-expandable-margin-vertical); + box-shadow: var(--f7-card-expandable-box-shadow); + font-size: var(--f7-card-expandable-font-size); +} +.card-expandable:not(.card-opened) { + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; +} +.card-expandable.card-no-transition { + transition-duration: 0ms; +} +.card-expandable.card-expandable-animate-width .card-content { + transition-property: width, transform; + width: 100%; +} +.card-expandable.active-state { + transform: scale(0.97) translate3d(0, 0, 0); +} +.card-expandable .card-opened-fade-in, +.card-expandable .card-opened-fade-out { + transition-duration: 400ms; +} +.card-expandable .card-opened-fade-in { + opacity: 0; + pointer-events: none; +} +.card-expandable .card-content { + position: absolute; + top: 0; + width: 100vw; + height: 100vh; + transform-origin: center top; + overflow: hidden; + transition-property: transform; + box-sizing: border-box; + pointer-events: none; + right: 0; +} +.card-expandable .card-content .card-content-padding { + padding-left: calc(var(--f7-safe-area-left) + var(--f7-card-content-padding-horizontal)); + padding-right: calc(var(--f7-safe-area-right) + var(--f7-card-content-padding-horizontal)); +} +.card-expandable.card-opened { + transition-duration: 0ms; +} +.card-expandable.card-opening, +.card-expandable.card-closing, +.card-expandable.card-transitioning { + transition-duration: 400ms; +} +.card-expandable.card-opening .card-content { + transition-duration: 300ms; +} +.card-expandable.card-closing .card-content { + transition-duration: 500ms; +} +.card-expandable.card-opening, +.card-expandable.card-opened, +.card-expandable.card-closing { + z-index: 300; +} +.card-expandable.card-opening, +.card-expandable.card-opened { + border-radius: 0; +} +.card-expandable.card-opening .card-opened-fade-in, +.card-expandable.card-opened .card-opened-fade-in { + opacity: 1; + pointer-events: auto; +} +.card-expandable.card-opening .card-opened-fade-out, +.card-expandable.card-opened .card-opened-fade-out { + opacity: 0; + pointer-events: none; +} +.card-expandable.card-opened .card-content { + overflow: auto; + -webkit-overflow-scrolling: touch; + pointer-events: auto; +} +.card-expandable .card-header { + font-size: var(--f7-card-expandable-header-font-size); + font-weight: var(--f7-card-expandable-header-font-weight); +} +.card-expandable .card-header:after { + display: none !important; +} +.card-prevent-open { + pointer-events: auto; +} +.card-expandable-size { + width: 0; + height: 0; + position: absolute; + left: 0; + top: 0; + opacity: 0; + pointer-events: none; + visibility: hidden; +} +@media (min-width: 768px) and (min-height: 670px) { + .card-expandable:not(.card-tablet-fullscreen) { + max-width: var(--f7-card-expandable-tablet-width); + } + .card-expandable:not(.card-tablet-fullscreen).card-opened, + .card-expandable:not(.card-tablet-fullscreen).card-opening { + border-radius: var(--f7-card-expandable-tablet-border-radius); + } + .card-expandable:not(.card-tablet-fullscreen):not(.card-expandable-animate-width) .card-content { + width: var(--f7-card-expandable-tablet-width); + } + .card-expandable:not(.card-tablet-fullscreen) .card-expandable-size { + width: var(--f7-card-expandable-tablet-width); + height: var(--f7-card-expandable-tablet-height); + } +} +.page.page-with-card-opened .page-content { + overflow: hidden; +} +.card-backdrop { + position: fixed; + left: 0; + top: 0; + width: 100%; + height: 100%; + z-index: 299; + pointer-events: none; + background: rgba(0, 0, 0, 0.2); + opacity: 0; +} +.card-backdrop-in { + animation: card-backdrop-fade-in 400ms forwards; + pointer-events: auto; +} +.card-backdrop-out { + animation: card-backdrop-fade-out 400ms forwards; +} +@supports ((-webkit-backdrop-filter: blur(15px)) or (backdrop-filter: blur(15px))) { + .card-backdrop { + background: transparent; + -webkit-backdrop-filter: blur(15px); + backdrop-filter: blur(15px); + } +} +@keyframes card-backdrop-fade-in { + from { + opacity: 0; + } + to { + opacity: 1; + } +} +@keyframes card-backdrop-fade-out { + from { + opacity: 1; + } + to { + opacity: 0; + } +} +/* === Chips === */ +:root { + --f7-chip-font-size: 13px; + --f7-chip-font-weight: normal; + --f7-chip-media-font-size: 16px; + --f7-chip-bg-color: rgba(0, 0, 0, 0.12); + --f7-chip-outline-border-color: rgba(0, 0, 0, 0.12); + --f7-chip-delete-button-color: #000; +} +:root .theme-dark, +:root.theme-dark { + --f7-chip-delete-button-color: #fff; + --f7-chip-bg-color: #333; + --f7-chip-outline-border-color: rgba(255, 255, 255, 0.12); +} +.ios { + --f7-chip-height: 24px; + --f7-chip-padding-horizontal: 10px; + --f7-chip-text-color: #000; +} +.ios .theme-dark, +.ios.theme-dark { + --f7-chip-text-color: #fff; +} +.md { + --f7-chip-height: 32px; + --f7-chip-padding-horizontal: 12px; + --f7-chip-text-color: rgba(0, 0, 0, 0.87); +} +.md .theme-dark, +.md.theme-dark { + --f7-chip-text-color: rgba(255, 255, 255, 0.87); +} +.aurora { + --f7-chip-height: 20px; + --f7-chip-padding-horizontal: 10px; + --f7-chip-font-size: 12px; + --f7-chip-media-font-size: 14px; + --f7-chip-text-color: #000; +} +.aurora .theme-dark, +.aurora.theme-dark { + --f7-chip-text-color: #fff; +} +.chip { + padding-left: var(--f7-chip-padding-horizontal); + padding-right: var(--f7-chip-padding-horizontal); + font-weight: var(--f7-chip-font-weight); + display: inline-flex; + box-sizing: border-box; + vertical-align: middle; + align-items: center; + margin: 2px 0; + background-color: var(--f7-chip-bg-color); + font-size: var(--f7-chip-font-size); + color: var(--f7-chip-text-color); + height: var(--f7-chip-height); + line-height: var(--f7-chip-height); + border-radius: var(--f7-chip-height); + position: relative; +} +.chip-media { + border-radius: 50%; + flex-shrink: 0; + display: flex; + align-items: center; + justify-content: center; + height: var(--f7-chip-height); + width: var(--f7-chip-height); + border-radius: var(--f7-chip-height); + text-align: center; + line-height: var(--f7-chip-height); + box-sizing: border-box; + color: #fff; + font-size: var(--f7-chip-media-font-size); + vertical-align: middle; + margin-right: calc(-1 * var(--f7-chip-padding-horizontal)); +} +.chip-media i.icon { + font-size: calc(var(--f7-chip-height) - 8px); + height: calc(var(--f7-chip-height) - 8px); +} +.chip-media img { + max-width: 100%; + max-height: 100%; + width: auto; + height: auto; + border-radius: 50%; + display: block; +} +.chip-media + .chip-label { + margin-right: 4px; +} +.chip-label { + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + position: relative; + flex-shrink: 1; + min-width: 0; +} +.chip-delete { + text-align: center; + cursor: pointer; + flex-shrink: 0; + background-repeat: no-repeat; + width: 24px; + height: 24px; + color: var(--f7-chip-delete-button-color); + opacity: 0.54; + position: relative; +} +.chip-delete:after { + font-family: 'framework7-core-icons'; + font-weight: normal; + font-style: normal; + line-height: 1; + letter-spacing: normal; + text-transform: none; + white-space: nowrap; + word-wrap: normal; + direction: ltr; + -webkit-font-smoothing: antialiased; + text-rendering: optimizeLegibility; + -moz-osx-font-smoothing: grayscale; + font-feature-settings: "liga"; + text-align: center; + display: block; + width: 100%; + height: 100%; + font-size: 20px; + content: 'delete_round_ios'; + line-height: 24px; +} +.chip .chip-delete.active-state { + opacity: 1; +} +.chip-outline, +.ios .chip-outline-ios, +.md .chip-outline-md, +.aurora .chip-outline-aurora { + border: 1px solid var(--f7-chip-outline-border-color); + background: none; +} +.chip[class*="color-"] { + --f7-chip-bg-color: var(--f7-theme-color); + --f7-chip-text-color: #fff; +} +.chip-outline[class*="color-"], +.ios .chip-outline-ios[class*="color-"], +.md .chip-outline-md[class*="color-"], +.aurora .chip-outline-aurora[class*="color-"] { + --f7-chip-outline-border-color: var(--f7-theme-color); + --f7-chip-text-color: var(--f7-theme-color); +} +.ios .chip-delete { + margin-left: calc(-1 * var(--f7-chip-padding-horizontal)); +} +.ios .chip-delete:after { + font-size: 10px; +} +.md .chip-label + .chip-delete { + margin-right: 4px; +} +.md .chip-delete { + margin-left: calc(-1 * var(--f7-chip-padding-horizontal) + 4px); +} +.md .chip-delete:after { + font-size: 12px; +} +.aurora .chip-delete { + margin-left: calc(-1 * var(--f7-chip-padding-horizontal)); +} +.aurora .chip-delete:after { + font-size: 10px; +} +/* === Form === */ +/* === Input === */ +:root { + --f7-input-bg-color: transparent; + --f7-label-font-weight: 400; + --f7-label-line-height: 1.3; + --f7-input-padding-left: 0px; + --f7-input-padding-right: 0px; + --f7-input-error-text-color: #ff3b30; + --f7-input-error-font-size: 12px; + --f7-input-error-line-height: 1.4; + --f7-input-error-font-weight: 400; + --f7-input-info-font-size: 12px; + --f7-input-info-line-height: 1.4; + --f7-input-outline-height: 40px; + --f7-input-outline-border-radius: 4px; + --f7-input-outline-padding-horizontal: 12px; + --f7-textarea-height: 100px; + /* + --f7-input-outline-focused-border-color: var(--f7-theme-color); + --f7-input-outline-invalid-border-color: var(--f7-input-error-text-color); + */ + --f7-input-outline-border-color: #999; +} +:root .theme-dark, +:root.theme-dark { + --f7-input-outline-border-color: #444; +} +.ios { + --f7-input-height: 44px; + --f7-input-font-size: 17px; + --f7-input-placeholder-color: #a9a9a9; + --f7-textarea-padding-vertical: 11px; + /* + --f7-input-focused-border-color: var(--f7-list-item-border-color); + --f7-input-invalid-border-color: var(--f7-list-item-border-color); + --f7-input-invalid-text-color: var(--f7-input-error-text-color); + */ + --f7-label-font-size: 12px; + --f7-label-text-color: inherit; + /* + --f7-label-focused-text-color: var(--f7-label-text-color); + --f7-label-invalid-text-color: var(--f7-label-text-color); + */ + --f7-floating-label-scale: calc(17 / 12); + --f7-inline-label-font-size: 17px; + --f7-inline-label-line-height: 1.4; + --f7-inline-label-padding-top: 3px; + --f7-input-clear-button-size: 14px; + --f7-input-text-color: #000000; + --f7-input-info-text-color: rgba(0, 0, 0, 0.45); + --f7-input-clear-button-color: rgba(0, 0, 0, 0.45); +} +.ios .theme-dark, +.ios.theme-dark { + --f7-input-text-color: #fff; + --f7-input-info-text-color: rgba(255, 255, 255, 0.55); + --f7-input-clear-button-color: rgba(255, 255, 255, 0.5); +} +.md { + --f7-input-height: 36px; + --f7-input-font-size: 16px; + --f7-textarea-padding-vertical: 7px; + /* + --f7-input-focused-border-color: var(--f7-theme-color); + --f7-input-invalid-border-color: var(--f7-input-error-text-color); + --f7-input-invalid-text-color: var(--f7-input-text-color); + */ + --f7-label-font-size: 12px; + /* + --f7-label-focused-text-color: var(--f7-theme-color); + --f7-label-invalid-text-color: var(--f7-input-error-text-color ); + */ + --f7-floating-label-scale: calc(16 / 12); + --f7-inline-label-font-size: 16px; + --f7-inline-label-line-height: 1.5; + --f7-inline-label-padding-top: 7px; + --f7-input-clear-button-size: 18px; + --f7-input-clear-button-color: #aaa; + --f7-input-text-color: #212121; + --f7-input-placeholder-color: rgba(0, 0, 0, 0.35); + --f7-label-text-color: rgba(0, 0, 0, 0.65); + --f7-input-info-text-color: rgba(0, 0, 0, 0.45); +} +.md .theme-dark, +.md.theme-dark { + --f7-input-text-color: rgba(255, 255, 255, 0.87); + --f7-input-placeholder-color: rgba(255, 255, 255, 0.35); + --f7-label-text-color: rgba(255, 255, 255, 0.54); + --f7-input-info-text-color: rgba(255, 255, 255, 0.45); +} +.aurora { + --f7-input-height: 24px; + --f7-input-font-size: 13px; + --f7-textarea-padding-vertical: 2px; + /* + --f7-input-focused-border-color: var(--f7-list-item-border-color); + --f7-input-invalid-border-color: var(--f7-list-item-border-color); + --f7-input-invalid-text-color: var(--f7-input-error-text-color); + */ + --f7-label-font-size: 11px; + --f7-label-text-color: inherit; + /* + --f7-label-focused-text-color: var(--f7-label-text-color); + --f7-label-invalid-text-color: var(--f7-label-text-color); + */ + --f7-floating-label-scale: calc(13 / 11); + --f7-inline-label-font-size: 14px; + --f7-inline-label-line-height: 1.4; + --f7-inline-label-padding-top: 1px; + --f7-input-clear-button-size: 14px; + --f7-input-outline-height: 32px; + --f7-input-outline-padding-horizontal: 8px; + --f7-input-text-color: #000000; + --f7-input-placeholder-color: rgba(0, 0, 0, 0.32); + --f7-input-clear-button-color: #666; + --f7-input-info-text-color: rgba(0, 0, 0, 0.5); +} +.aurora .theme-dark, +.aurora.theme-dark { + --f7-input-text-color: #fff; + --f7-input-clear-button-color: #aaa; + --f7-input-placeholder-color: rgba(255, 255, 255, 0.35); + --f7-input-info-text-color: rgba(255, 255, 255, 0.45); +} +input[type="text"], +input[type="password"], +input[type="search"], +input[type="email"], +input[type="tel"], +input[type="url"], +input[type="date"], +input[type='month'], +input[type="datetime-local"], +input[type="time"], +input[type="number"], +select, +textarea { + box-sizing: border-box; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + border: none; + box-shadow: none; + border-radius: 0; + outline: 0; + display: block; + padding: 0; + margin: 0; + font-family: inherit; + background: none; + resize: none; + font-size: inherit; + color: inherit; +} +.textarea-resizable-shadow { + opacity: 0; + position: absolute; + z-index: -1000; + pointer-events: none; + left: -1000px; + top: -1000px; + visibility: hidden; +} +.list input[type="text"], +.list input[type="password"], +.list input[type="search"], +.list input[type="email"], +.list input[type="tel"], +.list input[type="url"], +.list input[type="date"], +.list input[type='month'], +.list input[type="datetime-local"], +.list input[type="time"], +.list input[type="number"], +.list select { + width: 100%; + height: var(--f7-input-height); + color: var(--f7-input-text-color); + font-size: var(--f7-input-font-size); + background-color: var(--f7-input-bg-color, transparent); + padding-left: var(--f7-input-padding-left); + padding-right: var(--f7-input-padding-right); +} +.list input[type="text"]::-webkit-input-placeholder, .list input[type="password"]::-webkit-input-placeholder, .list input[type="search"]::-webkit-input-placeholder, .list input[type="email"]::-webkit-input-placeholder, .list input[type="tel"]::-webkit-input-placeholder, .list input[type="url"]::-webkit-input-placeholder, .list input[type="date"]::-webkit-input-placeholder, .list input[type='month']::-webkit-input-placeholder, .list input[type="datetime-local"]::-webkit-input-placeholder, .list input[type="time"]::-webkit-input-placeholder, .list input[type="number"]::-webkit-input-placeholder, .list select::-webkit-input-placeholder { + color: var(--f7-input-placeholder-color); +} +.list input[type="text"]::placeholder, +.list input[type="password"]::placeholder, +.list input[type="search"]::placeholder, +.list input[type="email"]::placeholder, +.list input[type="tel"]::placeholder, +.list input[type="url"]::placeholder, +.list input[type="date"]::placeholder, +.list input[type='month']::placeholder, +.list input[type="datetime-local"]::placeholder, +.list input[type="time"]::placeholder, +.list input[type="number"]::placeholder, +.list select::placeholder { + color: var(--f7-input-placeholder-color); +} +.list textarea { + width: 100%; + color: var(--f7-input-text-color); + font-size: var(--f7-input-font-size); + resize: none; + line-height: 1.4; + height: var(--f7-textarea-height); + background-color: var(--f7-input-bg-color, transparent); + padding-top: var(--f7-textarea-padding-vertical); + padding-bottom: var(--f7-textarea-padding-vertical); + padding-left: var(--f7-input-padding-left); + padding-right: var(--f7-input-padding-right); +} +.list textarea::-webkit-input-placeholder { + color: var(--f7-input-placeholder-color); +} +.list textarea::placeholder { + color: var(--f7-input-placeholder-color); +} +.list textarea.resizable { + height: var(--f7-input-height); +} +.list input[type="datetime-local"] { + max-width: 50vw; +} +.list input[type="time"], +.list input[type="date"], +.list input[type='month'], +.list input[type="datetime-local"] { + line-height: var(--f7-input-height); +} +.list input[type="date"], +.list input[type='month'], +.list input[type="datetime-local"] { + text-align: right; + flex-direction: row-reverse; + width: auto; +} +.list .item-label, +.list .item-floating-label { + width: 100%; + vertical-align: top; + flex-shrink: 0; + font-size: var(--f7-label-font-size); + font-weight: var(--f7-label-font-weight); + line-height: var(--f7-label-line-height); + color: var(--f7-label-text-color); + transition-duration: 200ms; + transition-property: transform, color; +} +.list .item-floating-label { + --label-height: calc(var(--f7-label-font-size) * var(--f7-label-line-height)); + transform: scale(var(--f7-floating-label-scale)) translateY(calc((var(--f7-input-height) / 2 + 50%) / var(--f7-floating-label-scale))); + color: var(--f7-input-placeholder-color); + width: auto; + max-width: calc(100% / var(--f7-floating-label-scale)); + pointer-events: none; + right: var(--f7-input-padding-right); + transform-origin: right center; +} +.list .item-floating-label ~ .item-input-wrap input::-webkit-input-placeholder, .list .item-floating-label ~ .item-input-wrap textarea::-webkit-input-placeholder { + opacity: 0; + transition-duration: 100ms; +} +.list .item-floating-label ~ .item-input-wrap input::placeholder, +.list .item-floating-label ~ .item-input-wrap textarea::placeholder { + opacity: 0; + transition-duration: 100ms; +} +.list .item-floating-label ~ .item-input-wrap input.input-focused::-webkit-input-placeholder, .list .item-floating-label ~ .item-input-wrap textarea.input-focused::-webkit-input-placeholder { + opacity: 1; + transition-duration: 300ms; +} +.list .item-floating-label ~ .item-input-wrap input.input-focused::placeholder, +.list .item-floating-label ~ .item-input-wrap textarea.input-focused::placeholder { + opacity: 1; + transition-duration: 300ms; +} +.list .item-input-with-value .item-floating-label { + color: var(--f7-label-text-color); +} +.list .item-input-with-value .item-floating-label, +.list .item-input-focused .item-floating-label { + transform: scale(1) translateY(0); +} +.list .item-input-wrap { + width: 100%; + flex-shrink: 1; + position: relative; +} +.item-input .item-inner { + display: flex; + flex-direction: column; + align-items: flex-start; +} +.item-input-error-message, +.input-error-message { + font-size: var(--f7-input-error-font-size); + line-height: var(--f7-input-error-line-height); + color: var(--f7-input-error-text-color); + font-weight: var(--f7-input-error-font-weight); + display: none; + box-sizing: border-box; +} +.item-input-info, +.input-info { + font-size: var(--f7-input-info-font-size); + line-height: var(--f7-input-info-line-height); + color: var(--f7-input-info-text-color); +} +.item-input-invalid .item-input-error-message, +.input-invalid .item-input-error-message, +.item-input-invalid .input-error-message, +.input-invalid .input-error-message { + display: block; +} +.item-input-invalid .item-input-info, +.input-invalid .item-input-info, +.item-input-invalid .input-info, +.input-invalid .input-info { + display: none; +} +.inline-labels .item-inner, +.inline-label .item-inner { + display: flex; + align-items: center; + flex-direction: row; +} +.inline-labels .item-label, +.inline-label .item-label, +.inline-labels .item-floating-label, +.inline-label .item-floating-label { + padding-top: var(--f7-inline-label-padding-top); + align-self: flex-start; + width: 35%; + font-size: var(--f7-inline-label-font-size); + line-height: var(--f7-inline-label-line-height); +} +.inline-labels .item-label + .item-input-wrap, +.inline-label .item-label + .item-input-wrap, +.inline-labels .item-floating-label + .item-input-wrap, +.inline-label .item-floating-label + .item-input-wrap { + margin-right: 8px; +} +.input { + position: relative; +} +.input input, +.input select, +.input textarea { + width: 100%; +} +.input-clear-button { + opacity: 0; + pointer-events: none; + visibility: hidden; + transition-duration: 100ms; + position: absolute; + top: 50%; + border: none; + padding: 0; + margin: 0; + outline: 0; + z-index: 1; + cursor: pointer; + background: none; + width: var(--f7-input-clear-button-size); + height: var(--f7-input-clear-button-size); + margin-top: calc(-1 * var(--f7-input-clear-button-size) / 2); + color: var(--f7-input-clear-button-color); + left: 0; +} +.input-clear-button:after { + font-family: 'framework7-core-icons'; + font-weight: normal; + font-style: normal; + line-height: 1; + letter-spacing: normal; + text-transform: none; + white-space: nowrap; + word-wrap: normal; + direction: ltr; + -webkit-font-smoothing: antialiased; + text-rendering: optimizeLegibility; + -moz-osx-font-smoothing: grayscale; + font-feature-settings: "liga"; + text-align: center; + display: block; + width: 100%; + height: 100%; + font-size: 20px; +} +.input-clear-button:before { + position: absolute; + content: ''; + left: 50%; + top: 50%; +} +.item-input-wrap .input-clear-button { + top: calc(var(--f7-input-height) / 2); +} +.input-clear-button.active-state { + opacity: 0.75 !important; +} +.input-with-value ~ .input-clear-button, +.item-input-with-value .input-clear-button, +.input-with-value .input-clear-button { + opacity: 1; + pointer-events: auto; + visibility: visible; +} +.input-dropdown-wrap, +.input-dropdown { + position: relative; +} +.input-dropdown-wrap:before, +.input-dropdown:before { + content: ''; + pointer-events: none; + position: absolute; + top: 50%; + margin-top: -2px; + width: 0; + height: 0; + border-left: 4px solid transparent; + border-right: 4px solid transparent; + border-top: 5px solid #727272; + left: 6px; +} +.input-dropdown-wrap select, +.input-dropdown select, +.input-dropdown-wrap input, +.input-dropdown input, +.input-dropdown-wrap textarea, +.input-dropdown textarea { + padding-left: calc(20px + var(--f7-input-padding-left)); +} +.input-outline:after, +.item-input-outline .item-input-wrap:after { + content: ''; + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + box-sizing: border-box; + border: 1px solid var(--f7-input-outline-border-color); + border-radius: var(--f7-input-outline-border-radius); + transition-duration: 200ms; + pointer-events: none; +} +.input-outline.input-focused:after, +.item-input-outline.item-input-focused .item-input-wrap:after { + border-width: 2px; + border-color: var(--f7-input-outline-focused-border-color, var(--f7-theme-color)); +} +.input-outline.input-invalid:after, +.item-input-outline.item-input-invalid .item-input-wrap:after { + border-width: 2px; + border-color: var(--f7-input-outline-invalid-border-color, var(--f7-input-error-text-color)); +} +.input-outline input, +.item-input-outline input, +.list .item-input-outline input, +.input-outline textarea, +.item-input-outline textarea, +.list .item-input-outline textarea, +.input-outline select, +.item-input-outline select, +.list .item-input-outline select { + border-radius: var(--f7-input-outline-border-radius); + padding-left: var(--f7-input-outline-padding-horizontal); + padding-right: var(--f7-input-outline-padding-horizontal); +} +.input-outline.input-dropdown:before, +.item-input-outline .input-dropdown-wrap:before { + left: 8px; +} +.input-outline.input-dropdown input, +.item-input-outline .input-dropdown-wrap input, +.input-outline.input-dropdown textarea, +.item-input-outline .input-dropdown-wrap textarea, +.input-outline.input-dropdown select, +.item-input-outline .input-dropdown-wrap select { + padding-left: 20px; +} +.input-outline .input-clear-button, +.item-input-outline .input-clear-button { + left: 8px; +} +.item-input-outline { + --f7-input-height: var(--f7-input-outline-height); +} +.item-input-outline .item-inner:after { + display: none !important; +} +.item-input-outline .item-label { + right: var(--f7-input-outline-padding-horizontal); +} +.inline-labels .item-input-outline .item-label, +.inline-label .item-input-outline .item-label, +.item-input-outline .inline-label .item-label, +.item-input-outline .inline-label.item-label { + right: 0; +} +.item-input-outline .item-floating-label { + right: calc(var(--f7-input-outline-padding-horizontal) - 4px); + padding-left: 4px; + padding-right: 4px; + background: var(--f7-page-bg-color); + z-index: 10; + margin-top: calc(-0.5 * (var(--f7-label-font-size) * var(--f7-label-line-height))); +} +.item-input-outline.item-input-with-value .item-floating-label, +.item-input-outline.item-input-focused .item-floating-label { + transform: scale(1) translateY(50%); +} +.item-input-outline .item-input-info, +.item-input-outline .item-input-error-message { + padding-right: var(--f7-input-outline-padding-horizontal); +} +.block-strong .item-input-outline .item-floating-label { + background: var(--f7-block-strong-bg-color); +} +.list .item-input-outline .item-floating-label { + background: var(--f7-list-bg-color); +} +.theme-dark option { + background-color: var(--f7-page-bg-color); +} +.ios .item-label + .item-input-wrap, +.ios .item-floating-label + .item-input-wrap { + margin-top: 0; +} +.ios .item-input-focused .item-floating-label { + color: var(--f7-label-text-color); +} +.ios .item-input .item-media { + align-self: flex-start; +} +.ios .item-input-wrap { + margin-top: calc(-1 * var(--f7-list-item-padding-vertical)); + margin-bottom: calc(-1 * var(--f7-list-item-padding-vertical)); +} +.ios .inline-labels .item-label + .item-input-wrap, +.ios .inline-label .item-label + .item-input-wrap, +.ios .inline-labels .item-floating-label + .item-input-wrap, +.ios .inline-label .item-floating-label + .item-input-wrap { + margin-top: calc(-1 * var(--f7-list-item-padding-vertical)); +} +.ios .inline-labels .item-input-wrap, +.ios .inline-label .item-input-wrap { + margin-top: calc(-1 * var(--f7-list-item-padding-vertical)); +} +.ios .item-input-error-message, +.ios .item-input-info, +.ios .input-error-message, +.ios .input-info { + position: relative; + margin-bottom: 6px; + margin-top: -8px; +} +.ios .item-input-focused .item-label, +.ios .item-input-focused .item-floating-label { + color: var(--f7-label-focused-text-color, var(--f7-label-text-color)); +} +.ios .item-input-focused .item-inner:after { + background: var(--f7-input-focused-border-color, var(--f7-list-item-border-color)); +} +.ios .item-input-invalid .item-label, +.ios .item-input-invalid .item-floating-label { + color: var(--f7-label-invalid-text-color, var(--f7-label-text-color)); +} +.ios .item-input-invalid .item-inner:after { + background: var(--f7-input-invalid-border-color, var(--f7-list-item-border-color)); +} +.ios .item-input-invalid input, +.ios .input-invalid input, +.ios .item-input-invalid select, +.ios .input-invalid select, +.ios .item-input-invalid textarea, +.ios .input-invalid textarea { + color: var(--f7-input-invalid-text-color, var(--f7-input-error-text-color)); +} +.ios .input-clear-button:after { + content: 'delete_round_ios'; + font-size: calc(var(--f7-input-clear-button-size) / (14 / 10)); + line-height: 1.4; +} +.ios .input-clear-button:before { + width: 44px; + height: 44px; + margin-left: -22px; + margin-top: -22px; +} +.ios .item-input-outline .item-input-wrap, +.ios .input-outline .item-input-wrap { + margin-top: 0; + margin-bottom: 0; +} +.ios .item-input-outline .item-input-error-message, +.ios .input-outline .item-input-error-message, +.ios .item-input-outline .item-input-info, +.ios .input-outline .item-input-info, +.ios .item-input-outline .input-error-message, +.ios .input-outline .input-error-message, +.ios .item-input-outline .input-info, +.ios .input-outline .input-info { + margin-top: 0; + white-space: normal; + overflow: hidden; + text-overflow: ellipsis; +} +.ios .item-input-outline .item-input-info, +.ios .input-outline .item-input-info, +.ios .item-input-outline .input-info, +.ios .input-outline .input-info { + margin-bottom: calc(-1 * var(--f7-input-info-font-size) * var(--f7-input-info-line-height)); +} +.ios .item-input-outline .item-input-error-message, +.ios .input-outline .item-input-error-message, +.ios .item-input-outline .input-error-message, +.ios .input-outline .input-error-message { + margin-bottom: calc(-1 * var(--f7-input-error-font-size) * var(--f7-input-error-line-height)); +} +.ios .item-input-outline.item-input-with-info .item-input-wrap, +.ios .input-outline.item-input-with-info .item-input-wrap, +.ios .item-input-outline.input-with-info .item-input-wrap, +.ios .input-outline.input-with-info .item-input-wrap { + margin-bottom: calc(var(--f7-input-info-font-size) * var(--f7-input-info-line-height)); +} +.ios .item-input-outline.item-input-with-error-message .item-input-wrap, +.ios .input-outline.item-input-with-error-message .item-input-wrap, +.ios .item-input-outline.input-with-error-message .item-input-wrap, +.ios .input-outline.input-with-error-message .item-input-wrap { + margin-bottom: calc(var(--f7-input-error-font-size) * var(--f7-input-error-line-height)); +} +.md .item-input:not(.item-input-outline) .item-input-wrap:after, +.md .input:not(.input-outline):after { + content: ''; + position: absolute; + background-color: var(--f7-list-item-border-color); + display: block; + z-index: 15; + top: auto; + right: auto; + bottom: 0; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 100%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +.md .item-input:not(.item-input-outline) .item-input-wrap:after, +.md .input:not(.input-outline):after { + transition-duration: 200ms; +} +.md .item-input-wrap { + min-height: var(--f7-input-height); +} +.md .item-input .item-media { + align-self: flex-end; +} +.md .item-input .item-inner:after { + display: none !important; +} +.md .inline-labels .item-media, +.md .inline-label .item-media { + align-self: flex-start; + padding-top: 14px; +} +.md .item-input-with-error-message, +.md .item-input-with-info, +.md .input-with-error-message, +.md .input-with-info { + padding-bottom: 20px; +} +.md .item-input-error-message, +.md .item-input-info, +.md .input-error-message, +.md .input-info { + position: absolute; + top: 100%; + margin-top: 4px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + width: 100%; + right: 0; +} +.md .item-input-focused .item-label, +.md .item-input-focused .item-floating-label { + color: var(--f7-label-focused-text-color, var(--f7-theme-color)); +} +.md .item-input-focused:not(.item-input-outline) .item-input-wrap:after, +.md .input-focused:not(.input-outline):after { + background: var(--f7-input-focused-border-color, var(--f7-theme-color)); +} +.md .item-input-invalid:not(.item-input-outline) .item-input-wrap:after, +.md .item-input-focused:not(.item-input-outline) .item-input-wrap:after, +.md .input-invalid:not(.input-outline):after, +.md .input-focused:not(.input-outline):after { + transform: scaleY(2) !important; +} +.md .item-input-invalid:not(.item-input-outline) .item-input-wrap:after, +.md .input-invalid:not(.input-outline):after { + background: var(--f7-input-invalid-border-color, var(--f7-input-error-text-color)); +} +.md .item-input-invalid .item-label, +.md .item-input-invalid .item-floating-label { + color: var(--f7-label-invalid-text-color, var(--f7-input-error-text-color)); +} +.md .item-input-invalid input, +.md .input-invalid input, +.md .item-input-invalid select, +.md .input-invalid select, +.md .item-input-invalid textarea, +.md .input-invalid textarea { + color: var(--f7-input-invalid-text-color, var(--f7-input-text-color)); +} +.md .input-clear-button:after { + font-size: calc(var(--f7-input-clear-button-size) / (24 / 20)); + content: 'delete_round_md'; + line-height: 1.2; +} +.md .input-clear-button:before { + width: 48px; + height: 48px; + margin-left: -24px; + margin-top: -24px; +} +.aurora .item-label + .item-input-wrap, +.aurora .item-floating-label + .item-input-wrap { + margin-top: 0; +} +.aurora .item-input-focused .item-floating-label { + color: var(--f7-label-text-color); +} +.aurora .item-input .item-media { + align-self: flex-start; +} +.aurora .item-input-error-message, +.aurora .item-input-info, +.aurora .input-error-message, +.aurora .input-info { + position: relative; +} +.aurora .item-input-focused .item-label, +.aurora .item-input-focused .item-floating-label { + color: var(--f7-label-focused-text-color, var(--f7-label-text-color)); +} +.aurora .item-input-focused .item-inner:after { + background: var(--f7-input-focused-border-color, var(--f7-list-item-border-color)); +} +.aurora .item-input-invalid .item-label, +.aurora .item-input-invalid .item-floating-label { + color: var(--f7-label-invalid-text-color, var(--f7-label-text-color)); +} +.aurora .item-input-invalid .item-inner:after { + background: var(--f7-input-invalid-border-color, var(--f7-list-item-border-color)); +} +.aurora .item-input-invalid input, +.aurora .input-invalid input, +.aurora .item-input-invalid select, +.aurora .input-invalid select, +.aurora .item-input-invalid textarea, +.aurora .input-invalid textarea { + color: var(--f7-input-invalid-text-color, var(--f7-input-error-text-color)); +} +.aurora .input-clear-button:after { + content: 'delete_round_ios'; + font-size: calc(var(--f7-input-clear-button-size) / (14 / 10)); + line-height: 1.4; +} +.aurora .input-clear-button:before { + width: 28px; + height: 28px; + margin-left: -14px; + margin-top: -14px; +} +.aurora .item-input-outline .item-input-wrap, +.aurora .input-outline .item-input-wrap { + margin-top: 0; + margin-bottom: 0; +} +.aurora .item-input-outline .item-input-error-message, +.aurora .input-outline .item-input-error-message, +.aurora .item-input-outline .item-input-info, +.aurora .input-outline .item-input-info, +.aurora .item-input-outline .input-error-message, +.aurora .input-outline .input-error-message, +.aurora .item-input-outline .input-info, +.aurora .input-outline .input-info { + margin-top: 0; + white-space: normal; + overflow: hidden; + text-overflow: ellipsis; +} +.aurora .item-input-outline .item-input-info, +.aurora .input-outline .item-input-info, +.aurora .item-input-outline .input-info, +.aurora .input-outline .input-info { + margin-bottom: calc(-1 * var(--f7-input-info-font-size) * var(--f7-input-info-line-height)); +} +.aurora .item-input-outline .item-input-error-message, +.aurora .input-outline .item-input-error-message, +.aurora .item-input-outline .input-error-message, +.aurora .input-outline .input-error-message { + margin-bottom: calc(-1 * var(--f7-input-error-font-size) * var(--f7-input-error-line-height)); +} +.aurora .item-input-outline.item-input-with-info .item-input-wrap, +.aurora .input-outline.item-input-with-info .item-input-wrap, +.aurora .item-input-outline.input-with-info .item-input-wrap, +.aurora .input-outline.input-with-info .item-input-wrap { + margin-bottom: calc(var(--f7-input-info-font-size) * var(--f7-input-info-line-height)); +} +.aurora .item-input-outline.item-input-with-error-message .item-input-wrap, +.aurora .input-outline.item-input-with-error-message .item-input-wrap, +.aurora .item-input-outline.input-with-error-message .item-input-wrap, +.aurora .input-outline.input-with-error-message .item-input-wrap { + margin-bottom: calc(var(--f7-input-error-font-size) * var(--f7-input-error-line-height)); +} +/* === Checkbox === */ +:root { + /* --f7-checkbox-active-color: var(--f7-theme-color); */ + --f7-checkbox-icon-color: #fff; +} +:root .theme-dark, +:root.theme-dark { + --f7-checkbox-inactive-color: rgba(255, 255, 255, 0.3); +} +.ios { + --f7-checkbox-size: 22px; + --f7-checkbox-border-radius: 50%; + --f7-checkbox-border-width: 1px; + --f7-checkbox-extra-margin: 0px; + --f7-checkbox-inactive-color: #c7c7cc; +} +.md { + --f7-checkbox-size: 18px; + --f7-checkbox-border-radius: 2px; + --f7-checkbox-border-width: 2px; + --f7-checkbox-extra-margin: 22px; + --f7-checkbox-inactive-color: #6d6d6d; +} +.aurora { + --f7-checkbox-size: 14px; + --f7-checkbox-border-radius: 2px; + --f7-checkbox-border-width: 1px; + --f7-checkbox-extra-margin: 0px; + --f7-checkbox-inactive-color: #888; +} +.checkbox { + position: relative; + display: inline-block; + vertical-align: middle; + z-index: 1; + background-color: transparent; + --f7-touch-ripple-color: rgba(var(--f7-theme-color-rgb), 0.5); +} +.icon-checkbox, +.checkbox i { + flex-shrink: 0; + border: var(--f7-checkbox-border-width) solid var(--f7-checkbox-inactive-color); + width: var(--f7-checkbox-size); + height: var(--f7-checkbox-size); + border-radius: var(--f7-checkbox-border-radius); + box-sizing: border-box; + position: relative; + display: block; +} +.icon-checkbox:after, +.checkbox i:after { + font-family: 'framework7-core-icons'; + font-weight: normal; + font-style: normal; + line-height: 1; + letter-spacing: normal; + text-transform: none; + white-space: nowrap; + word-wrap: normal; + direction: ltr; + -webkit-font-smoothing: antialiased; + text-rendering: optimizeLegibility; + -moz-osx-font-smoothing: grayscale; + font-feature-settings: "liga"; + text-align: center; + display: block; + width: 100%; + height: 100%; + font-size: 20px; + width: var(--f7-checkbox-size); + height: var(--f7-checkbox-size); + line-height: var(--f7-checkbox-size); + top: calc(0px - var(--f7-checkbox-border-width)); + opacity: 0; + color: var(--f7-checkbox-icon-color); + position: relative; + transition-property: opacity; + right: calc(0px - var(--f7-checkbox-border-width)); +} +label.item-checkbox input[type="checkbox"]:not(:checked) ~ .icon-checkbox:after, +label.item-checkbox input[type="checkbox"]:not(:checked) ~ * .icon-checkbox:after, +.checkbox input[type="checkbox"]:not(:checked) ~ i:after { + font-size: 0; +} +label.item-checkbox input[type="checkbox"]:checked ~ .icon-checkbox, +label.item-checkbox input[type="checkbox"]:checked ~ * .icon-checkbox, +.checkbox input[type="checkbox"]:checked ~ i, +label.item-checkbox input[type="checkbox"]:indeterminate ~ .icon-checkbox, +label.item-checkbox input[type="checkbox"]:indeterminate ~ * .icon-checkbox, +.checkbox input[type="checkbox"]:indeterminate ~ i { + border-color: var(--f7-checkbox-active-color, var(--f7-theme-color)); + background-color: var(--f7-checkbox-active-color, var(--f7-theme-color)); +} +label.item-checkbox input[type="checkbox"]:checked ~ .icon-checkbox:after, +label.item-checkbox input[type="checkbox"]:checked ~ * .icon-checkbox:after, +.checkbox input[type="checkbox"]:checked ~ i:after, +label.item-checkbox input[type="checkbox"]:indeterminate ~ .icon-checkbox:after, +label.item-checkbox input[type="checkbox"]:indeterminate ~ * .icon-checkbox:after, +.checkbox input[type="checkbox"]:indeterminate ~ i:after { + opacity: 1; +} +label.item-checkbox input[type="checkbox"]:indeterminate ~ .icon-checkbox:after, +label.item-checkbox input[type="checkbox"]:indeterminate ~ * .icon-checkbox:after, +.checkbox input[type="checkbox"]:indeterminate ~ i:after { + font-size: 0; + content: ''; + position: absolute; + top: 50%; + width: 70%; + background: #fff; + height: 2px; + border-radius: 2px; + margin-top: -1px; + transition: 0ms; + right: 15%; +} +label.item-checkbox, +.checkbox { + cursor: pointer; +} +label.item-checkbox input[type="checkbox"], +.checkbox input[type="checkbox"], +label.item-checkbox input[type="radio"], +.checkbox input[type="radio"] { + display: none; +} +label.item-checkbox { + transition-duration: 300ms; +} +label.item-checkbox .item-content .item-media, +label.item-checkbox.item-content .item-media { + align-self: center; +} +label.item-checkbox > .icon-checkbox { + margin-left: calc(var(--f7-list-item-media-margin) + var(--f7-checkbox-extra-margin)); +} +label.item-checkbox.active-state { + background-color: var(--f7-list-link-pressed-bg-color); +} +label.item-checkbox.active-state:after { + background-color: transparent; +} +label.item-checkbox.disabled, +.disabled label.item-checkbox { + opacity: 0.55; + pointer-events: none; + opacity: 0.55 !important; + pointer-events: none !important; +} +.ios .icon-checkbox:after, +.ios .checkbox i:after { + content: 'checkbox_ios'; + font-size: 21px; +} +.ios label.item-checkbox.active-state { + transition-duration: 0ms; +} +.ios label.item-checkbox input[type="checkbox"]:indeterminate ~ .icon-checkbox:after, +.ios label.item-checkbox input[type="checkbox"]:indeterminate ~ * .icon-checkbox:after, +.ios .checkbox input[type="checkbox"]:indeterminate ~ i:after { + height: 1px; + margin-top: 0px; +} +.md .icon-checkbox, +.md .checkbox i { + transition-duration: 200ms; +} +.md .icon-checkbox:after, +.md .checkbox i:after { + content: 'checkbox_md'; + transition-duration: 200ms; + font-size: 15px; +} +.md label.item-checkbox { + position: relative; + overflow: hidden; + z-index: 0; +} +.aurora .icon-checkbox, +.aurora .checkbox i { + transition-duration: 150ms; +} +.aurora .icon-checkbox:after, +.aurora .checkbox i:after { + content: 'checkbox_aurora'; + transition-duration: 150ms; + font-size: 19px; +} +.aurora .icon-checkbox:before, +.aurora .checkbox i:before { + content: ''; + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + background: rgba(0, 0, 0, 0.1); + opacity: 0; + transition-duration: 150ms; +} +.aurora .checkbox.active-state i:before { + opacity: 1; +} +.aurora label.item-checkbox { + position: relative; + overflow: hidden; + z-index: 0; +} +/* === Radio === */ +:root { + /* + --f7-radio-active-color: var(--f7-theme-color); + */ + --f7-radio-border-radius: 50%; +} +:root .theme-dark, +:root.theme-dark { + --f7-radio-inactive-color: rgba(255, 255, 255, 0.3); +} +.ios { + --f7-radio-size: 22px; + --f7-radio-border-width: 1px; + --f7-radio-extra-margin: 0px; + --f7-radio-inactive-color: #c7c7cc; +} +.md { + --f7-radio-size: 20px; + --f7-radio-border-width: 2px; + --f7-radio-extra-margin: 22px; + --f7-radio-inactive-color: #6d6d6d; +} +.aurora { + --f7-radio-size: 16px; + --f7-radio-border-width: 1px; + --f7-radio-extra-margin: 0px; + --f7-radio-inactive-color: #888; +} +.radio { + position: relative; + display: inline-block; + vertical-align: middle; + z-index: 1; + --f7-touch-ripple-color: rgba(var(--f7-theme-color-rgb), 0.5); +} +.icon-radio { + width: var(--f7-radio-size); + height: var(--f7-radio-size); + border-radius: var(--f7-radio-border-radius); + position: relative; + box-sizing: border-box; + display: block; + flex-shrink: 0; +} +.radio .icon-radio, +.md .icon-radio, +.aurora .icon-radio { + border: var(--f7-radio-border-width) solid var(--f7-radio-inactive-color); +} +label.item-radio, +.radio { + cursor: pointer; +} +label.item-radio input[type="checkbox"], +.radio input[type="checkbox"], +label.item-radio input[type="radio"], +.radio input[type="radio"] { + display: none; +} +label.item-radio { + transition-duration: 300ms; +} +label.item-radio .item-content .item-media, +label.item-radio.item-content .item-media { + align-self: center; +} +label.item-radio.active-state { + background-color: var(--f7-list-link-pressed-bg-color); +} +label.item-radio.active-state:after { + background-color: transparent; +} +label.item-radio.disabled, +.disabled label.item-radio { + opacity: 0.55; + pointer-events: none; + opacity: 0.55 !important; + pointer-events: none !important; +} +.ios .icon-radio:after { + font-family: 'framework7-core-icons'; + font-weight: normal; + font-style: normal; + line-height: 1; + letter-spacing: normal; + text-transform: none; + white-space: nowrap; + word-wrap: normal; + direction: ltr; + -webkit-font-smoothing: antialiased; + text-rendering: optimizeLegibility; + -moz-osx-font-smoothing: grayscale; + font-feature-settings: "liga"; + text-align: center; + display: block; + width: 100%; + height: 100%; + width: calc(var(--f7-radio-size) - var(--f7-radio-border-width) * 2); + height: calc(var(--f7-radio-size) - var(--f7-radio-border-width) * 2); + line-height: calc(var(--f7-radio-size) - var(--f7-radio-border-width) * 2 + 1px); + font-size: 20px; + content: 'radio_ios'; + color: var(--f7-radio-active-color, var(--f7-theme-color)); + opacity: 0; +} +.ios label.item-radio input[type="radio"]:checked ~ .icon-radio:after, +.ios label.item-radio input[type="radio"]:checked ~ * .icon-radio:after, +.ios .radio input[type="radio"]:checked ~ .icon-radio:after { + opacity: 1; +} +.ios .radio input[type="radio"]:checked ~ .icon-radio { + border-color: var(--f7-radio-active-color, var(--f7-theme-color)); +} +.ios label.item-radio:not(.item-radio-icon-start) input[type="radio"] ~ .icon-radio { + position: absolute; + top: 50%; + margin-top: -11px; + left: calc(var(--f7-safe-area-left) + 10px); +} +.ios label.item-radio:not(.item-radio-icon-start) .item-inner { + padding-left: calc(var(--f7-safe-area-left) + 36px); +} +.ios label.item-radio-icon-start > .icon-radio { + margin-left: calc(var(--f7-list-item-media-margin) + var(--f7-checkbox-extra-margin)); +} +.ios label.item-radio.active-state { + transition-duration: 0ms; +} +.md .icon-radio { + transition-duration: 200ms; +} +.md .icon-radio:after { + content: ''; + position: absolute; + width: 10px; + height: 10px; + left: 50%; + top: 50%; + margin-left: -5px; + margin-top: -5px; + background-color: var(--f7-radio-active-color, var(--f7-theme-color)); + border-radius: 50%; + transform: scale(0); + transition-duration: 200ms; +} +.md label.item-radio input[type="radio"]:checked ~ .icon-radio, +.md label.item-radio input[type="radio"]:checked ~ * .icon-radio, +.md .radio input[type="radio"]:checked ~ .icon-radio { + border-color: var(--f7-radio-active-color, var(--f7-theme-color)); +} +.md label.item-radio input[type="radio"]:checked ~ .icon-radio:after, +.md label.item-radio input[type="radio"]:checked ~ * .icon-radio:after, +.md .radio input[type="radio"]:checked ~ .icon-radio:after { + background-color: var(--f7-radio-active-color, var(--f7-theme-color)); + transform: scale(1); +} +.md label.item-radio { + position: relative; + overflow: hidden; + z-index: 0; +} +.md label.item-radio:not(.item-radio-icon-end) > .icon-radio { + margin-left: calc(var(--f7-list-item-media-margin) + var(--f7-radio-extra-margin)); +} +.md label.item-radio-icon-end input[type="radio"] ~ .icon-radio { + position: absolute; + top: 50%; + margin-top: -10px; + left: calc(var(--f7-safe-area-left) + 16px); +} +.md label.item-radio-icon-end .item-inner { + padding-left: calc(var(--f7-safe-area-left) + 52px); +} +.aurora .icon-radio { + transition-duration: 150ms; + overflow: hidden; +} +.aurora .icon-radio:after { + content: ''; + position: absolute; + width: 6px; + height: 6px; + left: 50%; + top: 50%; + margin-left: -3px; + margin-top: -3px; + background-color: #fff; + border-radius: 50%; + transform: scale(0); + transition-duration: 150ms; +} +.aurora .icon-radio:before { + content: ''; + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + background: rgba(0, 0, 0, 0.1); + opacity: 0; + transition-duration: 150ms; +} +.aurora .radio.active-state i:before { + opacity: 1; +} +.aurora label.item-radio input[type="radio"]:checked ~ .icon-radio, +.aurora label.item-radio input[type="radio"]:checked ~ * .icon-radio, +.aurora .radio input[type="radio"]:checked ~ .icon-radio { + border-color: var(--f7-radio-active-color, var(--f7-theme-color)); + background-color: var(--f7-radio-active-color, var(--f7-theme-color)); +} +.aurora label.item-radio input[type="radio"]:checked ~ .icon-radio:after, +.aurora label.item-radio input[type="radio"]:checked ~ * .icon-radio:after, +.aurora .radio input[type="radio"]:checked ~ .icon-radio:after { + transform: scale(1); +} +.aurora label.item-radio { + position: relative; + overflow: hidden; + z-index: 0; +} +.aurora label.item-radio:not(.item-radio-icon-end) > .icon-radio { + margin-left: calc(var(--f7-list-item-media-margin) + var(--f7-radio-extra-margin)); +} +.aurora label.item-radio-icon-end input[type="radio"] ~ .icon-radio { + position: absolute; + top: 50%; + margin-top: -8px; + left: calc(var(--f7-safe-area-left) + 16px); +} +.aurora label.item-radio-icon-end .item-inner { + padding-left: calc(var(--f7-safe-area-left) + 48px); +} +/* === Toggle === */ +:root { + --f7-toggle-handle-color: #fff; +} +:root .theme-dark, +:root.theme-dark { + --f7-toggle-inactive-color: #555; +} +.ios { + --f7-toggle-width: 52px; + --f7-toggle-height: 32px; + --f7-toggle-border-color: #e5e5e5; + --f7-toggle-inactive-color: #fff; +} +.ios .theme-dark, +.ios.theme-dark { + --f7-toggle-border-color: #555; +} +.md { + --f7-toggle-width: 36px; + --f7-toggle-height: 14px; + --f7-toggle-inactive-color: #b0afaf; +} +.aurora { + --f7-toggle-width: 40px; + --f7-toggle-height: 20px; + --f7-toggle-inactive-color: #aaa; +} +.toggle, +.toggle-icon { + width: var(--f7-toggle-width); + height: var(--f7-toggle-height); + border-radius: var(--f7-toggle-height); +} +.toggle { + display: inline-block; + vertical-align: middle; + position: relative; + box-sizing: border-box; + align-self: center; + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; +} +.toggle input[type="checkbox"] { + display: none; +} +.toggle input[disabled] ~ .toggle-icon { + pointer-events: none; +} +.toggle-icon { + z-index: 0; + margin: 0; + padding: 0; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + border: none; + position: relative; + transition: 300ms; + box-sizing: border-box; + display: block; + cursor: pointer; +} +.toggle-icon:before, +.toggle-icon:after { + content: ''; +} +.toggle-icon:after { + background: var(--f7-toggle-handle-color); + position: absolute; + z-index: 2; + transform: translateX(0px); + transition-duration: 300ms; +} +.ios .toggle input[type="checkbox"]:checked + .toggle-icon { + background: var(--f7-toggle-active-color, var(--f7-theme-color)); +} +.ios .toggle input[type="checkbox"]:checked + .toggle-icon:before { + transform: scale(0); +} +.ios .toggle input[type="checkbox"]:checked + .toggle-icon:after { + transform: translateX(calc(-1 * (var(--f7-toggle-width) - var(--f7-toggle-height)))); +} +.ios .toggle-icon { + background: var(--f7-toggle-border-color); +} +.ios .toggle-icon:before { + position: absolute; + right: 2px; + top: 2px; + width: calc(var(--f7-toggle-width) - 4px); + height: calc(var(--f7-toggle-height) - 4px); + border-radius: var(--f7-toggle-height); + box-sizing: border-box; + background: var(--f7-toggle-inactive-color); + z-index: 1; + transition-duration: 300ms; + transform: scale(1); +} +.ios .toggle-icon:after { + height: calc(var(--f7-toggle-height) - 4px); + width: calc(var(--f7-toggle-height) - 4px); + top: 2px; + right: 2px; + box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3); + border-radius: calc(var(--f7-toggle-height) - 4px); +} +.ios .toggle-active-state input[type="checkbox"]:not(:checked) + .toggle-icon:before { + transform: scale(0); +} +.ios .toggle-active-state input[type="checkbox"] + .toggle-icon:after { + width: calc(var(--f7-toggle-height) + 4px); +} +.ios .toggle-active-state input[type="checkbox"]:checked + .toggle-icon:after { + transform: translateX(calc(-1 * (var(--f7-toggle-width) - var(--f7-toggle-height) - 8px))); +} +.md .toggle input[type="checkbox"]:checked + .toggle-icon { + background: var(--f7-toggle-active-color, rgba(var(--f7-theme-color-rgb), 0.5)); +} +.md .toggle input[type="checkbox"]:checked + .toggle-icon:after { + transform: translateX(calc(-1 * (var(--f7-toggle-width) - var(--f7-toggle-height) - 6px))); + background: var(--f7-toggle-active-color, var(--f7-theme-color)); +} +.md .toggle-icon { + background: var(--f7-toggle-inactive-color); +} +.md .toggle-icon:after { + height: calc(var(--f7-toggle-height) + 6px); + width: calc(var(--f7-toggle-height) + 6px); + top: -3px; + box-shadow: 0 2px 5px rgba(0, 0, 0, 0.4); + border-radius: var(--f7-toggle-height); + right: 0; +} +.aurora .toggle input[type="checkbox"]:checked + .toggle-icon { + background: var(--f7-toggle-active-color, var(--f7-theme-color)); +} +.aurora .toggle input[type="checkbox"]:checked + .toggle-icon:after { + transform: translateX(calc(-1 * (var(--f7-toggle-width) - var(--f7-toggle-height)))); +} +.aurora .toggle-icon { + background: var(--f7-toggle-inactive-color); +} +.aurora .toggle-icon:after { + height: calc(var(--f7-toggle-height) - 4px); + width: calc(var(--f7-toggle-height) - 4px); + top: 2px; + right: 2px; + border-radius: calc(var(--f7-toggle-height) - 4px); +} +/* === Range Slider === */ +:root { + /* + --f7-range-bar-active-bg-color: var(--f7-theme-color); + --f7-range-scale-bg-color: var(--f7-range-bar-bg-color); + --f7-range-scale-substep-bg-color: var(--f7-range-bar-bg-color); + */ + --f7-range-scale-step-height: 5px; + --f7-range-scale-text-color: #666; + --f7-range-scale-substep-width: 1px; + --f7-range-scale-substep-height: 4px; +} +.ios { + --f7-range-size: 28px; + --f7-range-bar-bg-color: #b7b8b7; + --f7-range-bar-size: 1px; + --f7-range-bar-border-radius: 2px; + --f7-range-knob-size: 28px; + --f7-range-knob-color: #fff; + --f7-range-knob-box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3); + --f7-range-label-size: 20px; + --f7-range-label-text-color: #000; + --f7-range-label-bg-color: #fff; + --f7-range-label-font-size: 12px; + --f7-range-label-font-weight: normal; + --f7-range-label-border-radius: 5px; + --f7-range-label-padding: 0px; + --f7-range-scale-step-width: 1px; + --f7-range-scale-font-size: 12px; + --f7-range-scale-font-weight: 400; + --f7-range-scale-label-offset: 4px; +} +.md { + --f7-range-size: 20px; + --f7-range-bar-bg-color: #b9b9b9; + --f7-range-bar-size: 2px; + --f7-range-bar-border-radius: 0px; + --f7-range-knob-size: 12px; + /* + --f7-range-knob-color: var(--f7-theme-color); + */ + --f7-range-knob-box-shadow: none; + --f7-range-label-size: 26px; + --f7-range-label-font-weight: normal; + --f7-range-label-text-color: #fff; + /* + --f7-range-label-bg-color: var(--f7-theme-color); + */ + --f7-range-label-font-size: 10px; + --f7-range-label-border-radius: 50%; + --f7-range-label-padding: 0px; + --f7-range-scale-step-width: 2px; + --f7-range-scale-font-size: 12px; + --f7-range-scale-font-weight: 400; + --f7-range-scale-label-offset: 4px; +} +.aurora { + --f7-range-size: 20px; + --f7-range-bar-bg-color: #c7c7c7; + --f7-range-bar-size: 2px; + --f7-range-bar-border-radius: 2px; + --f7-range-knob-size: 16px; + /* + --f7-range-knob-color: var(--f7-theme-color); + */ + --f7-range-knob-box-shadow: none; + --f7-range-label-size: 20px; + --f7-range-label-text-color: #fff; + /* + --f7-range-label-bg-color: var(--f7-theme-color); + */ + --f7-range-label-font-size: 10px; + --f7-range-label-font-weight: 600; + --f7-range-label-border-radius: 4px; + --f7-range-label-padding: 0px 4px; + --f7-range-scale-step-width: 2px; + --f7-range-scale-font-size: 11px; + --f7-range-scale-font-weight: 500; + --f7-range-scale-label-offset: 2px; +} +.range-slider { + display: block; + position: relative; + align-self: center; + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; +} +.range-slider input[type="range"] { + display: none; +} +.range-slider.range-slider-horizontal { + width: 100%; + height: var(--f7-range-size); + touch-action: pan-y; +} +.range-slider.range-slider-vertical { + height: 100%; + width: var(--f7-range-size); + touch-action: pan-x; +} +.range-bar { + position: absolute; + overflow: hidden; + background: var(--f7-range-bar-bg-color); + border-radius: var(--f7-range-bar-border-radius); +} +.range-slider-vertical .range-bar { + left: 50%; + top: 0; + height: 100%; + width: var(--f7-range-bar-size); + margin-left: calc(-1 * var(--f7-range-bar-size) / 2); +} +.range-slider-horizontal .range-bar { + left: 0; + top: 50%; + width: 100%; + height: var(--f7-range-bar-size); + margin-top: calc(-1 * var(--f7-range-bar-size) / 2); +} +.range-bar-active { + position: absolute; + background: var(--f7-range-bar-active-bg-color, var(--f7-theme-color)); +} +.range-slider-horizontal .range-bar-active { + right: 0; + top: 0; + height: 100%; +} +.range-slider-vertical .range-bar-active { + left: 0; + bottom: 0; + width: 100%; +} +.range-slider-vertical-reversed .range-bar-active { + top: 0; + bottom: auto; +} +.range-knob-wrap { + z-index: 20; + position: absolute; + height: var(--f7-range-knob-size); + width: var(--f7-range-knob-size); +} +.range-slider-horizontal .range-knob-wrap { + top: 50%; + margin-top: calc(-1 * var(--f7-range-knob-size) / 2); + margin-right: calc(-1 * var(--f7-range-knob-size) / 2); + right: 0; +} +.range-slider-vertical .range-knob-wrap { + left: 50%; + margin-left: calc(-1 * var(--f7-range-knob-size) / 2); + bottom: 0; + margin-bottom: calc(-1 * var(--f7-range-knob-size) / 2); +} +.range-slider-vertical-reversed .range-knob-wrap { + bottom: auto; + top: 0; + margin-bottom: 0; + margin-top: calc(-1 * var(--f7-range-knob-size) / 2); +} +.range-knob { + box-sizing: border-box; + border-radius: 50%; + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + z-index: 1; + background: var(--f7-range-knob-color, var(--f7-range-knob-bg-color, var(--f7-theme-color))); + box-shadow: var(--f7-range-knob-box-shadow); +} +.range-knob:after { + content: ''; + position: absolute; + left: 50%; + top: 50%; + width: 44px; + height: 44px; + margin-left: -22px; + margin-top: -22px; +} +.range-knob-label { + position: absolute; + left: 50%; + bottom: 100%; + text-align: center; + transition-duration: 120ms; + transition-property: transform; + box-sizing: border-box; + transform: translateY(100%) scale(0); + height: var(--f7-range-label-size); + line-height: var(--f7-range-label-size); + min-width: var(--f7-range-label-size); + color: var(--f7-range-label-text-color); + background-color: var(--f7-range-label-bg-color, var(--f7-theme-color)); + font-size: var(--f7-range-label-font-size); + font-weight: var(--f7-range-label-font-weight); + border-radius: var(--f7-range-label-border-radius); + padding: var(--f7-range-label-padding); +} +.range-knob-active-state .range-knob-label { + transform: translateY(0%) scale(1); +} +.range-scale { + position: absolute; +} +.range-slider-horizontal .range-scale { + top: 50%; + left: 0; + width: 100%; + margin-top: calc(var(--f7-range-bar-size) / 2); +} +.range-slider-vertical .range-scale { + right: 50%; + top: 0; + height: 100%; + margin-right: calc(var(--f7-range-bar-size) / 2); +} +.range-scale-step { + position: absolute; + box-sizing: border-box; + display: flex; + font-size: var(--f7-range-scale-font-size); + font-weight: var(--f7-range-scale-font-weight); + color: var(--f7-range-scale-text-color, var(--f7-range-bar-bg-color)); + line-height: 1; +} +.range-scale-step:before { + content: ''; + position: absolute; + background: var(--f7-range-scale-step-bg-color, var(--f7-range-bar-bg-color)); +} +.range-slider-horizontal .range-scale-step { + justify-content: center; + align-items: flex-start; + width: var(--f7-range-scale-step-width); + height: var(--f7-range-scale-step-height); + padding-top: calc(var(--f7-range-scale-step-height) + var(--f7-range-scale-label-offset)); + top: 0; + margin-right: calc(-1 * var(--f7-range-scale-step-width) / 2); +} +.range-slider-horizontal .range-scale-step:before { + left: 0; + top: 0; + width: 100%; + height: var(--f7-range-scale-step-height); +} +.range-slider-horizontal .range-scale-step:first-child { + margin-right: 0; +} +.range-slider-horizontal .range-scale-step:last-child { + margin-right: calc(-1 * var(--f7-range-scale-step-width)); +} +.range-slider-vertical .range-scale-step { + line-height: 1; + justify-content: flex-end; + align-items: center; + height: var(--f7-range-scale-step-width); + width: var(--f7-range-scale-step-height); + padding-right: calc(var(--f7-range-scale-step-height) + var(--f7-range-scale-label-offset)); + right: 0; + margin-bottom: calc(-1 * var(--f7-range-scale-step-width) / 2); +} +.range-slider-vertical .range-scale-step:first-child { + margin-bottom: 0; +} +.range-slider-vertical .range-scale-step:last-child { + margin-bottom: calc(-1 * var(--f7-range-scale-step-width)); +} +.range-slider-vertical .range-scale-step:before { + right: 0; + top: 0; + height: 100%; + width: var(--f7-range-scale-step-height); +} +.range-scale-substep { + --f7-range-scale-step-bg-color: var(--f7-range-scale-substep-bg-color, var(--f7-range-bar-bg-color)); + --f7-range-scale-step-width: var(--f7-range-scale-substep-width); + --f7-range-scale-step-height: var(--f7-range-scale-substep-height); +} +.ios .range-knob-label { + margin-bottom: 6px; + transform: translateX(-50%) translateY(100%) scale(0); +} +.ios .range-knob-active-state .range-knob-label { + transform: translateX(-50%) translateY(0%) scale(1); +} +.md .range-knob { + transition-duration: 200ms; + transition-property: transform, background-color; +} +.md .range-knob-active-state .range-knob { + transform: scale(1.5); +} +.md .range-slider-min:not(.range-slider-dual) .range-knob { + background: #fff !important; + border: 2px solid var(--f7-range-bar-bg-color); +} +.md .range-knob-label { + width: var(--f7-range-label-size); + margin-left: calc(-1 * var(--f7-range-label-size) / 2); + margin-bottom: 8px; +} +.md .range-knob-label:before { + content: ''; + left: 50%; + top: 0px; + margin-left: calc(-1 * var(--f7-range-label-size) / 2); + position: absolute; + z-index: -1; + width: var(--f7-range-label-size); + height: var(--f7-range-label-size); + background: var(--f7-range-label-bg-color, var(--f7-theme-color)); + transform: rotate(-45deg); + border-radius: 50% 50% 50% 0; +} +.md .range-knob-active-state .range-knob-label { + transform: translateY(0%) scale(1); +} +.md .range-slider-label .range-knob-active-state .range-knob { + transform: scale(0); +} +.aurora .range-knob-label { + margin-bottom: 6px; + transform: translateX(-50%) translateY(100%) scale(0); +} +.aurora .range-knob-active-state .range-knob-label { + transform: translateX(-50%) translateY(0%) scale(1); +} +/* === Stepper === */ +:root { + /* + --f7-stepper-button-text-color: var(--f7-theme-color); + --f7-stepper-button-pressed-text-color: var(--f7-button-text-color, var(--f7-theme-color)); + --f7-stepper-value-text-color: var(--f7-theme-color); + */ + --f7-stepper-fill-button-text-color: #fff; + /* + --f7-stepper-fill-button-bg-color: var(--f7-theme-color); + */ + --f7-stepper-raised-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0,0,0,0.24); + --f7-stepper-value-font-weight: 500; + --f7-stepper-border-width: 2px; +} +.ios { + --f7-stepper-height: 28px; + --f7-stepper-border-radius: 5px; + /* + --f7-stepper-button-pressed-bg-color: rgba(var(--f7-theme-color-rgb), .15); + --f7-stepper-fill-button-pressed-bg-color: var(--f7-theme-color-tint); + */ + --f7-stepper-large-height: 44px; + --f7-stepper-small-height: 26px; + --f7-stepper-small-border-width: 2px; + --f7-stepper-value-font-size: 17px; +} +.md { + --f7-stepper-height: 36px; + --f7-stepper-border-radius: 4px; + /* + --f7-stepper-fill-button-pressed-bg-color: var(--f7-theme-color-shade); + */ + --f7-stepper-large-height: 48px; + --f7-stepper-small-border-width: 2px; + --f7-stepper-small-height: 28px; + --f7-stepper-value-font-size: 14px; + --f7-stepper-button-pressed-bg-color: rgba(0, 0, 0, 0.1); +} +.md .theme-dark, +.md.theme-dark { + --f7-stepper-button-pressed-bg-color: rgba(255, 255, 255, 0.1); +} +.aurora { + /* + --f7-stepper-button-hover-bg-color: rgba(var(--f7-theme-color-rgb), .07); + --f7-stepper-button-fill-hover-bg-color: var(--f7-theme-color-tint); + */ + --f7-stepper-height: 28px; + --f7-stepper-border-radius: 4px; + /* + --f7-stepper-button-pressed-bg-color: rgba(var(--f7-theme-color-rgb), .15); + --f7-stepper-fill-button-pressed-bg-color: var(--f7-theme-color-shade); + */ + --f7-stepper-large-height: 34px; + --f7-stepper-small-border-width: 1px; + --f7-stepper-small-height: 22px; + --f7-stepper-value-font-size: 14px; +} +.stepper { + display: inline-flex; + align-items: stretch; + height: var(--f7-stepper-height); + border-radius: var(--f7-stepper-border-radius); + flex-direction: row-reverse; +} +.stepper-button, +.stepper-button-minus, +.stepper-button-plus { + background-color: var(--f7-stepper-button-bg-color); + width: 40px; + border-radius: var(--f7-stepper-border-radius); + border: var(--f7-stepper-border-width) solid var(--f7-theme-color); + color: var(--f7-stepper-button-text-color, var(--f7-theme-color)); + line-height: calc(var(--f7-stepper-height) - var(--f7-stepper-border-width, 0px)); + text-align: center; + display: flex; + justify-content: center; + align-content: center; + align-items: center; + flex-shrink: 0; + box-sizing: border-box; + position: relative; + cursor: pointer; +} +.stepper-button.active-state, +.stepper-button-minus.active-state, +.stepper-button-plus.active-state { + background-color: var(--f7-stepper-button-pressed-bg-color, rgba(var(--f7-theme-color-rgb), 0.15)); + color: var(--f7-stepper-button-pressed-text-color, var(--f7-stepper-button-text-color, var(--f7-theme-color))); +} +.stepper-button:first-child, +.stepper-button-minus:first-child, +.stepper-button-plus:first-child { + border-radius: var(--f7-stepper-border-radius) 0 0 var(--f7-stepper-border-radius); +} +.stepper-button:last-child, +.stepper-button-minus:last-child, +.stepper-button-plus:last-child { + border-radius: 0 var(--f7-stepper-border-radius) var(--f7-stepper-border-radius) 0; +} +.stepper-button .icon, +.stepper-button-minus .icon, +.stepper-button-plus .icon { + pointer-events: none; +} +.stepper-button + .stepper-button, +.stepper-button-minus + .stepper-button, +.stepper-button-plus + .stepper-button, +.stepper-button + .stepper-button-minus, +.stepper-button-minus + .stepper-button-minus, +.stepper-button-plus + .stepper-button-minus, +.stepper-button + .stepper-button-plus, +.stepper-button-minus + .stepper-button-plus, +.stepper-button-plus + .stepper-button-plus { + border-left: none; +} +.stepper-button-plus, +.stepper-button-minus { + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; +} +.stepper-button-plus:after, +.stepper-button-minus:after, +.stepper-button-plus:before, +.stepper-button-minus:before { + content: ''; + position: absolute; + left: 50%; + top: 50%; + transform: translate(-50%, -50%); + background-color: var(--f7-stepper-button-text-color, var(--f7-theme-color)); + border-radius: 2px; +} +.stepper-button-plus:after, +.stepper-button-minus:after { + width: 15px; + height: 2px; +} +.stepper-button-plus:before { + height: 15px; + width: 2px; +} +.stepper-value { + display: flex; + align-content: center; + align-items: center; + justify-content: center; +} +.stepper-input-wrap, +.stepper-value { + flex-shrink: 1; + text-align: center; + border-top: var(--f7-stepper-border-width) solid var(--f7-theme-color); + border-bottom: var(--f7-stepper-border-width) solid var(--f7-theme-color); +} +.stepper .stepper-input-wrap input, +.stepper-value { + width: 45px; + color: var(--f7-stepper-value-text-color, var(--f7-theme-color)); + font-size: var(--f7-stepper-value-font-size); + font-weight: var(--f7-stepper-value-font-weight); + text-align: center; +} +.stepper .stepper-input-wrap input { + height: 100%; +} +.stepper-round, +.ios .stepper-round-ios, +.md .stepper-round-md, +.aurora .stepper-round-aurora { + --f7-stepper-border-radius: var(--f7-stepper-height); +} +.stepper-fill, +.ios .stepper-fill-ios, +.md .stepper-fill-md, +.aurora .stepper-fill-aurora { + --f7-stepper-button-bg-color: var(--f7-stepper-fill-button-bg-color, var(--f7-theme-color)); + --f7-stepper-button-text-color: var(--f7-stepper-fill-button-text-color); + --f7-touch-ripple-color: var(--f7-touch-ripple-white); +} +.stepper-fill .stepper-button + .stepper-button, +.ios .stepper-fill-ios .stepper-button + .stepper-button, +.md .stepper-fill-md .stepper-button + .stepper-button, +.aurora .stepper-fill-aurora .stepper-button + .stepper-button, +.stepper-raised .stepper-button + .stepper-button, +.ios .stepper-raised-ios .stepper-button + .stepper-button, +.md .stepper-raised-md .stepper-button + .stepper-button, +.aurora .stepper-raised-aurora .stepper-button + .stepper-button, +.stepper-fill .stepper-button-minus + .stepper-button-plus, +.ios .stepper-fill-ios .stepper-button-minus + .stepper-button-plus, +.md .stepper-fill-md .stepper-button-minus + .stepper-button-plus, +.aurora .stepper-fill-aurora .stepper-button-minus + .stepper-button-plus, +.stepper-raised .stepper-button-minus + .stepper-button-plus, +.ios .stepper-raised-ios .stepper-button-minus + .stepper-button-plus, +.md .stepper-raised-md .stepper-button-minus + .stepper-button-plus, +.aurora .stepper-raised-aurora .stepper-button-minus + .stepper-button-plus { + border-left: 1px solid rgba(0, 0, 0, 0.1); +} +.stepper-fill .stepper-button + .stepper-button.active-state, +.ios .stepper-fill-ios .stepper-button + .stepper-button.active-state, +.md .stepper-fill-md .stepper-button + .stepper-button.active-state, +.aurora .stepper-fill-aurora .stepper-button + .stepper-button.active-state, +.stepper-fill .stepper-button-minus + .stepper-button-plus.active-state, +.ios .stepper-fill-ios .stepper-button-minus + .stepper-button-plus.active-state, +.md .stepper-fill-md .stepper-button-minus + .stepper-button-plus.active-state, +.aurora .stepper-fill-aurora .stepper-button-minus + .stepper-button-plus.active-state { + border-left-color: var(--f7-stepper-button-pressed-bg-color); +} +.stepper-raised:not(.stepper-fill) .stepper-input-wrap, +.ios .stepper-raised-ios:not(.stepper-fill-ios):not(.stepper-fill) .stepper-input-wrap, +.md .stepper-raised-md:not(.stepper-fill-md):not(.stepper-fill) .stepper-input-wrap, +.aurora .stepper-raised-aurora:not(.stepper-fill-aurora):not(.stepper-fill) .stepper-input-wrap, +.stepper-raised:not(.stepper-fill) .stepper-value, +.ios .stepper-raised-ios:not(.stepper-fill-ios):not(.stepper-fill) .stepper-value, +.md .stepper-raised-md:not(.stepper-fill-md):not(.stepper-fill) .stepper-value, +.aurora .stepper-raised-aurora:not(.stepper-fill-aurora):not(.stepper-fill) .stepper-value { + border-left: 1px solid rgba(0, 0, 0, 0.1); + border-right: 1px solid rgba(0, 0, 0, 0.1); +} +.stepper-large, +.ios .stepper-large-ios, +.md .stepper-large-md, +.aurora .stepper-large-aurora { + --f7-stepper-height: var(--f7-stepper-large-height); +} +.stepper-small, +.ios .stepper-small-ios, +.md .stepper-small-md, +.aurora .stepper-small-aurora { + --f7-stepper-border-width: var(--f7-stepper-small-border-width); + --f7-stepper-height: var(--f7-stepper-small-height); +} +.ios .stepper-fill.stepper-small-ios, +.ios .stepper-fill.stepper-small { + --f7-stepper-button-pressed-bg-color: transparent; + --f7-stepper-button-pressed-text-color: var(--f7-theme-color); +} +.stepper-raised, +.ios .stepper-raised-ios, +.md .stepper-raised-md, +.aurora .stepper-raised-aurora { + --f7-stepper-border-width: 0; + box-shadow: var(--f7-stepper-raised-box-shadow); +} +.ios .stepper-button .f7-icons, +.ios .stepper-button-minus .f7-icons, +.ios .stepper-button-plus .f7-icons { + font-size: 22px; +} +.ios .stepper-fill, +.ios .stepper-fill-ios { + --f7-stepper-button-pressed-bg-color: var(--f7-stepper-fill-button-pressed-bg-color, var(--f7-theme-color-tint)); +} +.ios .stepper-small.stepper-raised, +.ios .stepper-small-ios.stepper-raised, +.ios .stepper-small.stepper-raised-ios, +.ios .stepper-small-ios.stepper-raised-ios { + --f7-stepper-border-width: 0px; +} +.ios .stepper-small .stepper-button, +.ios .stepper-small-ios .stepper-button, +.ios .stepper-small .stepper-button-minus, +.ios .stepper-small-ios .stepper-button-minus, +.ios .stepper-small .stepper-button-plus, +.ios .stepper-small-ios .stepper-button-plus { + transition-duration: 200ms; +} +.ios .stepper-small .stepper-button.active-state:after, +.ios .stepper-small-ios .stepper-button.active-state:after, +.ios .stepper-small .stepper-button-minus.active-state:after, +.ios .stepper-small-ios .stepper-button-minus.active-state:after, +.ios .stepper-small .stepper-button-plus.active-state:after, +.ios .stepper-small-ios .stepper-button-plus.active-state:after, +.ios .stepper-small .stepper-button.active-state:before, +.ios .stepper-small-ios .stepper-button.active-state:before, +.ios .stepper-small .stepper-button-minus.active-state:before, +.ios .stepper-small-ios .stepper-button-minus.active-state:before, +.ios .stepper-small .stepper-button-plus.active-state:before, +.ios .stepper-small-ios .stepper-button-plus.active-state:before { + transition-duration: 200ms; + background-color: var(--f7-theme-color); +} +.md .stepper-button, +.md .stepper-button-minus, +.md .stepper-button-plus { + transition-duration: 300ms; + transform: translate3d(0, 0, 0); + overflow: hidden; +} +.md .stepper-fill, +.md .stepper-fill-md { + --f7-stepper-button-pressed-bg-color: var(--f7-stepper-fill-button-pressed-bg-color, var(--f7-theme-color-shade)); +} +.aurora .stepper-button, +.aurora .stepper-button-minus, +.aurora .stepper-button-plus { + transition-duration: 100ms; + transform: translate3d(0, 0, 0); + overflow: hidden; +} +.aurora.device-desktop .stepper-button:not(.active-state):not(.no-hover):hover, +.aurora.device-desktop .stepper-button-minus:not(.active-state):not(.no-hover):hover, +.aurora.device-desktop .stepper-button-plus:not(.active-state):not(.no-hover):hover { + background-color: var(--f7-stepper-button-hover-bg-color, rgba(var(--f7-theme-color-rgb), 0.07)); +} +.aurora .stepper-fill, +.aurora .stepper-fill-aurora { + --f7-stepper-button-hover-bg-color: var(--f7-stepper-button-fill-hover-bg-color, var(--f7-theme-color-tint)); + --f7-stepper-button-pressed-bg-color: var(--f7-stepper-fill-button-pressed-bg-color, var(--f7-theme-color-shade)); +} +/* === Smart Select === */ +.smart-select :root { + /* + --f7-smart-select-sheet-bg: var(--f7-list-bg-color); + --f7-smart-select-sheet-toolbar-border-color: var(--f7-bars-border-color); + */ +} +.smart-select select { + display: none; +} +.smart-select .item-after { + max-width: 70%; + overflow: hidden; + text-overflow: ellipsis; + position: relative; + display: block; +} +.smart-select-sheet .page, +.smart-select-sheet .sheet-modal-inner, +.smart-select-sheet .list ul { + background: var(--f7-smart-select-sheet-bg, var(--f7-list-bg-color)); +} +.smart-select-sheet .toolbar:after { + content: ''; + position: absolute; + background-color: var(--f7-smart-select-sheet-toolbar-border-color, var(--f7-bars-border-color)); + display: block; + z-index: 15; + top: auto; + right: auto; + bottom: 0; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 100%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +.smart-select-sheet .toolbar:after { + display: block; +} +.smart-select-sheet .list { + margin: 0; +} +.smart-select-sheet .list ul:before, +.smart-select-sheet .list ul:after { + display: none !important; +} +.smart-select-popover .popover-inner { + max-height: 40vh; +} +/* === Grid === */ +:root { + --f7-grid-gap: 16px; + --f7-grid-row-gap: 0px; + --f7-grid-resize-handler-bg-color: rgba(0, 0, 0, 0.35); +} +:root .theme-dark, +:root.theme-dark { + --f7-grid-resize-handler-bg-color: rgba(255, 255, 255, 0.35); +} +.row { + display: flex; + justify-content: space-between; + flex-wrap: wrap; + align-items: flex-start; + --f7-cols-per-row: 1; +} +.row + .row { + margin-top: var(--f7-grid-row-gap); +} +.row > [class*="col-"], +.row > .col { + box-sizing: border-box; + width: calc((100% - var(--f7-grid-gap) * (var(--f7-cols-per-row) - 1)) / var(--f7-cols-per-row)); +} +.row > [class*="col-"].resizable, +.row > .col.resizable { + position: relative; +} +.row.resizable { + position: relative; +} +.row.no-gap { + --f7-grid-gap: 0px; + --f7-grid-row-gap: 0px; +} +.row .col-5 { + --f7-cols-per-row: 20; +} +.row .col-10 { + --f7-cols-per-row: 10; +} +.row .col-15 { + --f7-cols-per-row: 6.66666667; +} +.row .col-20 { + --f7-cols-per-row: 5; +} +.row .col-25 { + --f7-cols-per-row: 4; +} +.row .col-30 { + --f7-cols-per-row: 3.33333333; +} +.row .col-33 { + --f7-cols-per-row: 3; +} +.row .col-35 { + --f7-cols-per-row: 2.85714286; +} +.row .col-40 { + --f7-cols-per-row: 2.5; +} +.row .col-45 { + --f7-cols-per-row: 2.22222222; +} +.row .col-50 { + --f7-cols-per-row: 2; +} +.row .col-55 { + --f7-cols-per-row: 1.81818182; +} +.row .col-60 { + --f7-cols-per-row: 1.66666667; +} +.row .col-65 { + --f7-cols-per-row: 1.53846154; +} +.row .col-66 { + --f7-cols-per-row: 1.5; +} +.row .col-70 { + --f7-cols-per-row: 1.42857143; +} +.row .col-75 { + --f7-cols-per-row: 1.33333333; +} +.row .col-80 { + --f7-cols-per-row: 1.25; +} +.row .col-85 { + --f7-cols-per-row: 1.17647059; +} +.row .col-90 { + --f7-cols-per-row: 1.11111111; +} +.row .col-95 { + --f7-cols-per-row: 1.05263158; +} +.row .col-100 { + --f7-cols-per-row: 1; +} +.row .col:nth-last-of-type(1), +.row .col:nth-last-of-type(1) ~ .col { + --f7-cols-per-row: 1; +} +.row .col:nth-last-of-type(2), +.row .col:nth-last-of-type(2) ~ .col { + --f7-cols-per-row: 2; +} +.row .col:nth-last-of-type(3), +.row .col:nth-last-of-type(3) ~ .col { + --f7-cols-per-row: 3; +} +.row .col:nth-last-of-type(4), +.row .col:nth-last-of-type(4) ~ .col { + --f7-cols-per-row: 4; +} +.row .col:nth-last-of-type(5), +.row .col:nth-last-of-type(5) ~ .col { + --f7-cols-per-row: 5; +} +.row .col:nth-last-of-type(6), +.row .col:nth-last-of-type(6) ~ .col { + --f7-cols-per-row: 6; +} +.row .col:nth-last-of-type(7), +.row .col:nth-last-of-type(7) ~ .col { + --f7-cols-per-row: 7; +} +.row .col:nth-last-of-type(8), +.row .col:nth-last-of-type(8) ~ .col { + --f7-cols-per-row: 8; +} +.row .col:nth-last-of-type(9), +.row .col:nth-last-of-type(9) ~ .col { + --f7-cols-per-row: 9; +} +.row .col:nth-last-of-type(10), +.row .col:nth-last-of-type(10) ~ .col { + --f7-cols-per-row: 10; +} +.row .col:nth-last-of-type(11), +.row .col:nth-last-of-type(11) ~ .col { + --f7-cols-per-row: 11; +} +.row .col:nth-last-of-type(12), +.row .col:nth-last-of-type(12) ~ .col { + --f7-cols-per-row: 12; +} +.row .col:nth-last-of-type(13), +.row .col:nth-last-of-type(13) ~ .col { + --f7-cols-per-row: 13; +} +.row .col:nth-last-of-type(14), +.row .col:nth-last-of-type(14) ~ .col { + --f7-cols-per-row: 14; +} +.row .col:nth-last-of-type(15), +.row .col:nth-last-of-type(15) ~ .col { + --f7-cols-per-row: 15; +} +.row .col:nth-last-of-type(16), +.row .col:nth-last-of-type(16) ~ .col { + --f7-cols-per-row: 16; +} +.row .col:nth-last-of-type(17), +.row .col:nth-last-of-type(17) ~ .col { + --f7-cols-per-row: 17; +} +.row .col:nth-last-of-type(18), +.row .col:nth-last-of-type(18) ~ .col { + --f7-cols-per-row: 18; +} +.row .col:nth-last-of-type(19), +.row .col:nth-last-of-type(19) ~ .col { + --f7-cols-per-row: 19; +} +.row .col:nth-last-of-type(20), +.row .col:nth-last-of-type(20) ~ .col { + --f7-cols-per-row: 20; +} +.row .col:nth-last-of-type(21), +.row .col:nth-last-of-type(21) ~ .col { + --f7-cols-per-row: 21; +} +.row .col:nth-last-of-type(22), +.row .col:nth-last-of-type(22) ~ .col { + --f7-cols-per-row: 22; +} +@media (min-width: 480px) { + .row .xsmall-5 { + --f7-cols-per-row: 20; + } + .row .xsmall-10 { + --f7-cols-per-row: 10; + } + .row .xsmall-15 { + --f7-cols-per-row: 6.66666667; + } + .row .xsmall-20 { + --f7-cols-per-row: 5; + } + .row .xsmall-25 { + --f7-cols-per-row: 4; + } + .row .xsmall-30 { + --f7-cols-per-row: 3.33333333; + } + .row .xsmall-33 { + --f7-cols-per-row: 3; + } + .row .xsmall-35 { + --f7-cols-per-row: 2.85714286; + } + .row .xsmall-40 { + --f7-cols-per-row: 2.5; + } + .row .xsmall-45 { + --f7-cols-per-row: 2.22222222; + } + .row .xsmall-50 { + --f7-cols-per-row: 2; + } + .row .xsmall-55 { + --f7-cols-per-row: 1.81818182; + } + .row .xsmall-60 { + --f7-cols-per-row: 1.66666667; + } + .row .xsmall-65 { + --f7-cols-per-row: 1.53846154; + } + .row .xsmall-66 { + --f7-cols-per-row: 1.5; + } + .row .xsmall-70 { + --f7-cols-per-row: 1.42857143; + } + .row .xsmall-75 { + --f7-cols-per-row: 1.33333333; + } + .row .xsmall-80 { + --f7-cols-per-row: 1.25; + } + .row .xsmall-85 { + --f7-cols-per-row: 1.17647059; + } + .row .xsmall-90 { + --f7-cols-per-row: 1.11111111; + } + .row .xsmall-95 { + --f7-cols-per-row: 1.05263158; + } + .row .xsmall-100 { + --f7-cols-per-row: 1; + } + .row .xsmall-auto:nth-last-of-type(1), + .row .xsmall-auto:nth-last-of-type(1) ~ .xsmall-auto { + --f7-cols-per-row: 1; + } + .row .xsmall-auto:nth-last-of-type(2), + .row .xsmall-auto:nth-last-of-type(2) ~ .xsmall-auto { + --f7-cols-per-row: 2; + } + .row .xsmall-auto:nth-last-of-type(3), + .row .xsmall-auto:nth-last-of-type(3) ~ .xsmall-auto { + --f7-cols-per-row: 3; + } + .row .xsmall-auto:nth-last-of-type(4), + .row .xsmall-auto:nth-last-of-type(4) ~ .xsmall-auto { + --f7-cols-per-row: 4; + } + .row .xsmall-auto:nth-last-of-type(5), + .row .xsmall-auto:nth-last-of-type(5) ~ .xsmall-auto { + --f7-cols-per-row: 5; + } + .row .xsmall-auto:nth-last-of-type(6), + .row .xsmall-auto:nth-last-of-type(6) ~ .xsmall-auto { + --f7-cols-per-row: 6; + } + .row .xsmall-auto:nth-last-of-type(7), + .row .xsmall-auto:nth-last-of-type(7) ~ .xsmall-auto { + --f7-cols-per-row: 7; + } + .row .xsmall-auto:nth-last-of-type(8), + .row .xsmall-auto:nth-last-of-type(8) ~ .xsmall-auto { + --f7-cols-per-row: 8; + } + .row .xsmall-auto:nth-last-of-type(9), + .row .xsmall-auto:nth-last-of-type(9) ~ .xsmall-auto { + --f7-cols-per-row: 9; + } + .row .xsmall-auto:nth-last-of-type(10), + .row .xsmall-auto:nth-last-of-type(10) ~ .xsmall-auto { + --f7-cols-per-row: 10; + } + .row .xsmall-auto:nth-last-of-type(11), + .row .xsmall-auto:nth-last-of-type(11) ~ .xsmall-auto { + --f7-cols-per-row: 11; + } + .row .xsmall-auto:nth-last-of-type(12), + .row .xsmall-auto:nth-last-of-type(12) ~ .xsmall-auto { + --f7-cols-per-row: 12; + } + .row .xsmall-auto:nth-last-of-type(13), + .row .xsmall-auto:nth-last-of-type(13) ~ .xsmall-auto { + --f7-cols-per-row: 13; + } + .row .xsmall-auto:nth-last-of-type(14), + .row .xsmall-auto:nth-last-of-type(14) ~ .xsmall-auto { + --f7-cols-per-row: 14; + } + .row .xsmall-auto:nth-last-of-type(15), + .row .xsmall-auto:nth-last-of-type(15) ~ .xsmall-auto { + --f7-cols-per-row: 15; + } + .row .xsmall-auto:nth-last-of-type(16), + .row .xsmall-auto:nth-last-of-type(16) ~ .xsmall-auto { + --f7-cols-per-row: 16; + } + .row .xsmall-auto:nth-last-of-type(17), + .row .xsmall-auto:nth-last-of-type(17) ~ .xsmall-auto { + --f7-cols-per-row: 17; + } + .row .xsmall-auto:nth-last-of-type(18), + .row .xsmall-auto:nth-last-of-type(18) ~ .xsmall-auto { + --f7-cols-per-row: 18; + } + .row .xsmall-auto:nth-last-of-type(19), + .row .xsmall-auto:nth-last-of-type(19) ~ .xsmall-auto { + --f7-cols-per-row: 19; + } + .row .xsmall-auto:nth-last-of-type(20), + .row .xsmall-auto:nth-last-of-type(20) ~ .xsmall-auto { + --f7-cols-per-row: 20; + } + .row .xsmall-auto:nth-last-of-type(21), + .row .xsmall-auto:nth-last-of-type(21) ~ .xsmall-auto { + --f7-cols-per-row: 21; + } + .row .xsmall-auto:nth-last-of-type(22), + .row .xsmall-auto:nth-last-of-type(22) ~ .xsmall-auto { + --f7-cols-per-row: 22; + } +} +@media (min-width: 568px) { + .row .small-5 { + --f7-cols-per-row: 20; + } + .row .small-10 { + --f7-cols-per-row: 10; + } + .row .small-15 { + --f7-cols-per-row: 6.66666667; + } + .row .small-20 { + --f7-cols-per-row: 5; + } + .row .small-25 { + --f7-cols-per-row: 4; + } + .row .small-30 { + --f7-cols-per-row: 3.33333333; + } + .row .small-33 { + --f7-cols-per-row: 3; + } + .row .small-35 { + --f7-cols-per-row: 2.85714286; + } + .row .small-40 { + --f7-cols-per-row: 2.5; + } + .row .small-45 { + --f7-cols-per-row: 2.22222222; + } + .row .small-50 { + --f7-cols-per-row: 2; + } + .row .small-55 { + --f7-cols-per-row: 1.81818182; + } + .row .small-60 { + --f7-cols-per-row: 1.66666667; + } + .row .small-65 { + --f7-cols-per-row: 1.53846154; + } + .row .small-66 { + --f7-cols-per-row: 1.5; + } + .row .small-70 { + --f7-cols-per-row: 1.42857143; + } + .row .small-75 { + --f7-cols-per-row: 1.33333333; + } + .row .small-80 { + --f7-cols-per-row: 1.25; + } + .row .small-85 { + --f7-cols-per-row: 1.17647059; + } + .row .small-90 { + --f7-cols-per-row: 1.11111111; + } + .row .small-95 { + --f7-cols-per-row: 1.05263158; + } + .row .small-100 { + --f7-cols-per-row: 1; + } + .row .small-auto:nth-last-of-type(1), + .row .small-auto:nth-last-of-type(1) ~ .small-auto { + --f7-cols-per-row: 1; + } + .row .small-auto:nth-last-of-type(2), + .row .small-auto:nth-last-of-type(2) ~ .small-auto { + --f7-cols-per-row: 2; + } + .row .small-auto:nth-last-of-type(3), + .row .small-auto:nth-last-of-type(3) ~ .small-auto { + --f7-cols-per-row: 3; + } + .row .small-auto:nth-last-of-type(4), + .row .small-auto:nth-last-of-type(4) ~ .small-auto { + --f7-cols-per-row: 4; + } + .row .small-auto:nth-last-of-type(5), + .row .small-auto:nth-last-of-type(5) ~ .small-auto { + --f7-cols-per-row: 5; + } + .row .small-auto:nth-last-of-type(6), + .row .small-auto:nth-last-of-type(6) ~ .small-auto { + --f7-cols-per-row: 6; + } + .row .small-auto:nth-last-of-type(7), + .row .small-auto:nth-last-of-type(7) ~ .small-auto { + --f7-cols-per-row: 7; + } + .row .small-auto:nth-last-of-type(8), + .row .small-auto:nth-last-of-type(8) ~ .small-auto { + --f7-cols-per-row: 8; + } + .row .small-auto:nth-last-of-type(9), + .row .small-auto:nth-last-of-type(9) ~ .small-auto { + --f7-cols-per-row: 9; + } + .row .small-auto:nth-last-of-type(10), + .row .small-auto:nth-last-of-type(10) ~ .small-auto { + --f7-cols-per-row: 10; + } + .row .small-auto:nth-last-of-type(11), + .row .small-auto:nth-last-of-type(11) ~ .small-auto { + --f7-cols-per-row: 11; + } + .row .small-auto:nth-last-of-type(12), + .row .small-auto:nth-last-of-type(12) ~ .small-auto { + --f7-cols-per-row: 12; + } + .row .small-auto:nth-last-of-type(13), + .row .small-auto:nth-last-of-type(13) ~ .small-auto { + --f7-cols-per-row: 13; + } + .row .small-auto:nth-last-of-type(14), + .row .small-auto:nth-last-of-type(14) ~ .small-auto { + --f7-cols-per-row: 14; + } + .row .small-auto:nth-last-of-type(15), + .row .small-auto:nth-last-of-type(15) ~ .small-auto { + --f7-cols-per-row: 15; + } + .row .small-auto:nth-last-of-type(16), + .row .small-auto:nth-last-of-type(16) ~ .small-auto { + --f7-cols-per-row: 16; + } + .row .small-auto:nth-last-of-type(17), + .row .small-auto:nth-last-of-type(17) ~ .small-auto { + --f7-cols-per-row: 17; + } + .row .small-auto:nth-last-of-type(18), + .row .small-auto:nth-last-of-type(18) ~ .small-auto { + --f7-cols-per-row: 18; + } + .row .small-auto:nth-last-of-type(19), + .row .small-auto:nth-last-of-type(19) ~ .small-auto { + --f7-cols-per-row: 19; + } + .row .small-auto:nth-last-of-type(20), + .row .small-auto:nth-last-of-type(20) ~ .small-auto { + --f7-cols-per-row: 20; + } + .row .small-auto:nth-last-of-type(21), + .row .small-auto:nth-last-of-type(21) ~ .small-auto { + --f7-cols-per-row: 21; + } + .row .small-auto:nth-last-of-type(22), + .row .small-auto:nth-last-of-type(22) ~ .small-auto { + --f7-cols-per-row: 22; + } +} +@media (min-width: 768px) { + .row .medium-5 { + --f7-cols-per-row: 20; + } + .row .medium-10 { + --f7-cols-per-row: 10; + } + .row .medium-15 { + --f7-cols-per-row: 6.66666667; + } + .row .medium-20 { + --f7-cols-per-row: 5; + } + .row .medium-25 { + --f7-cols-per-row: 4; + } + .row .medium-30 { + --f7-cols-per-row: 3.33333333; + } + .row .medium-33 { + --f7-cols-per-row: 3; + } + .row .medium-35 { + --f7-cols-per-row: 2.85714286; + } + .row .medium-40 { + --f7-cols-per-row: 2.5; + } + .row .medium-45 { + --f7-cols-per-row: 2.22222222; + } + .row .medium-50 { + --f7-cols-per-row: 2; + } + .row .medium-55 { + --f7-cols-per-row: 1.81818182; + } + .row .medium-60 { + --f7-cols-per-row: 1.66666667; + } + .row .medium-65 { + --f7-cols-per-row: 1.53846154; + } + .row .medium-66 { + --f7-cols-per-row: 1.5; + } + .row .medium-70 { + --f7-cols-per-row: 1.42857143; + } + .row .medium-75 { + --f7-cols-per-row: 1.33333333; + } + .row .medium-80 { + --f7-cols-per-row: 1.25; + } + .row .medium-85 { + --f7-cols-per-row: 1.17647059; + } + .row .medium-90 { + --f7-cols-per-row: 1.11111111; + } + .row .medium-95 { + --f7-cols-per-row: 1.05263158; + } + .row .medium-100 { + --f7-cols-per-row: 1; + } + .row .medium-auto:nth-last-of-type(1), + .row .medium-auto:nth-last-of-type(1) ~ .medium-auto { + --f7-cols-per-row: 1; + } + .row .medium-auto:nth-last-of-type(2), + .row .medium-auto:nth-last-of-type(2) ~ .medium-auto { + --f7-cols-per-row: 2; + } + .row .medium-auto:nth-last-of-type(3), + .row .medium-auto:nth-last-of-type(3) ~ .medium-auto { + --f7-cols-per-row: 3; + } + .row .medium-auto:nth-last-of-type(4), + .row .medium-auto:nth-last-of-type(4) ~ .medium-auto { + --f7-cols-per-row: 4; + } + .row .medium-auto:nth-last-of-type(5), + .row .medium-auto:nth-last-of-type(5) ~ .medium-auto { + --f7-cols-per-row: 5; + } + .row .medium-auto:nth-last-of-type(6), + .row .medium-auto:nth-last-of-type(6) ~ .medium-auto { + --f7-cols-per-row: 6; + } + .row .medium-auto:nth-last-of-type(7), + .row .medium-auto:nth-last-of-type(7) ~ .medium-auto { + --f7-cols-per-row: 7; + } + .row .medium-auto:nth-last-of-type(8), + .row .medium-auto:nth-last-of-type(8) ~ .medium-auto { + --f7-cols-per-row: 8; + } + .row .medium-auto:nth-last-of-type(9), + .row .medium-auto:nth-last-of-type(9) ~ .medium-auto { + --f7-cols-per-row: 9; + } + .row .medium-auto:nth-last-of-type(10), + .row .medium-auto:nth-last-of-type(10) ~ .medium-auto { + --f7-cols-per-row: 10; + } + .row .medium-auto:nth-last-of-type(11), + .row .medium-auto:nth-last-of-type(11) ~ .medium-auto { + --f7-cols-per-row: 11; + } + .row .medium-auto:nth-last-of-type(12), + .row .medium-auto:nth-last-of-type(12) ~ .medium-auto { + --f7-cols-per-row: 12; + } + .row .medium-auto:nth-last-of-type(13), + .row .medium-auto:nth-last-of-type(13) ~ .medium-auto { + --f7-cols-per-row: 13; + } + .row .medium-auto:nth-last-of-type(14), + .row .medium-auto:nth-last-of-type(14) ~ .medium-auto { + --f7-cols-per-row: 14; + } + .row .medium-auto:nth-last-of-type(15), + .row .medium-auto:nth-last-of-type(15) ~ .medium-auto { + --f7-cols-per-row: 15; + } + .row .medium-auto:nth-last-of-type(16), + .row .medium-auto:nth-last-of-type(16) ~ .medium-auto { + --f7-cols-per-row: 16; + } + .row .medium-auto:nth-last-of-type(17), + .row .medium-auto:nth-last-of-type(17) ~ .medium-auto { + --f7-cols-per-row: 17; + } + .row .medium-auto:nth-last-of-type(18), + .row .medium-auto:nth-last-of-type(18) ~ .medium-auto { + --f7-cols-per-row: 18; + } + .row .medium-auto:nth-last-of-type(19), + .row .medium-auto:nth-last-of-type(19) ~ .medium-auto { + --f7-cols-per-row: 19; + } + .row .medium-auto:nth-last-of-type(20), + .row .medium-auto:nth-last-of-type(20) ~ .medium-auto { + --f7-cols-per-row: 20; + } + .row .medium-auto:nth-last-of-type(21), + .row .medium-auto:nth-last-of-type(21) ~ .medium-auto { + --f7-cols-per-row: 21; + } + .row .medium-auto:nth-last-of-type(22), + .row .medium-auto:nth-last-of-type(22) ~ .medium-auto { + --f7-cols-per-row: 22; + } +} +@media (min-width: 1024px) { + .row .large-5 { + --f7-cols-per-row: 20; + } + .row .large-10 { + --f7-cols-per-row: 10; + } + .row .large-15 { + --f7-cols-per-row: 6.66666667; + } + .row .large-20 { + --f7-cols-per-row: 5; + } + .row .large-25 { + --f7-cols-per-row: 4; + } + .row .large-30 { + --f7-cols-per-row: 3.33333333; + } + .row .large-33 { + --f7-cols-per-row: 3; + } + .row .large-35 { + --f7-cols-per-row: 2.85714286; + } + .row .large-40 { + --f7-cols-per-row: 2.5; + } + .row .large-45 { + --f7-cols-per-row: 2.22222222; + } + .row .large-50 { + --f7-cols-per-row: 2; + } + .row .large-55 { + --f7-cols-per-row: 1.81818182; + } + .row .large-60 { + --f7-cols-per-row: 1.66666667; + } + .row .large-65 { + --f7-cols-per-row: 1.53846154; + } + .row .large-66 { + --f7-cols-per-row: 1.5; + } + .row .large-70 { + --f7-cols-per-row: 1.42857143; + } + .row .large-75 { + --f7-cols-per-row: 1.33333333; + } + .row .large-80 { + --f7-cols-per-row: 1.25; + } + .row .large-85 { + --f7-cols-per-row: 1.17647059; + } + .row .large-90 { + --f7-cols-per-row: 1.11111111; + } + .row .large-95 { + --f7-cols-per-row: 1.05263158; + } + .row .large-100 { + --f7-cols-per-row: 1; + } + .row .large-auto:nth-last-of-type(1), + .row .large-auto:nth-last-of-type(1) ~ .large-auto { + --f7-cols-per-row: 1; + } + .row .large-auto:nth-last-of-type(2), + .row .large-auto:nth-last-of-type(2) ~ .large-auto { + --f7-cols-per-row: 2; + } + .row .large-auto:nth-last-of-type(3), + .row .large-auto:nth-last-of-type(3) ~ .large-auto { + --f7-cols-per-row: 3; + } + .row .large-auto:nth-last-of-type(4), + .row .large-auto:nth-last-of-type(4) ~ .large-auto { + --f7-cols-per-row: 4; + } + .row .large-auto:nth-last-of-type(5), + .row .large-auto:nth-last-of-type(5) ~ .large-auto { + --f7-cols-per-row: 5; + } + .row .large-auto:nth-last-of-type(6), + .row .large-auto:nth-last-of-type(6) ~ .large-auto { + --f7-cols-per-row: 6; + } + .row .large-auto:nth-last-of-type(7), + .row .large-auto:nth-last-of-type(7) ~ .large-auto { + --f7-cols-per-row: 7; + } + .row .large-auto:nth-last-of-type(8), + .row .large-auto:nth-last-of-type(8) ~ .large-auto { + --f7-cols-per-row: 8; + } + .row .large-auto:nth-last-of-type(9), + .row .large-auto:nth-last-of-type(9) ~ .large-auto { + --f7-cols-per-row: 9; + } + .row .large-auto:nth-last-of-type(10), + .row .large-auto:nth-last-of-type(10) ~ .large-auto { + --f7-cols-per-row: 10; + } + .row .large-auto:nth-last-of-type(11), + .row .large-auto:nth-last-of-type(11) ~ .large-auto { + --f7-cols-per-row: 11; + } + .row .large-auto:nth-last-of-type(12), + .row .large-auto:nth-last-of-type(12) ~ .large-auto { + --f7-cols-per-row: 12; + } + .row .large-auto:nth-last-of-type(13), + .row .large-auto:nth-last-of-type(13) ~ .large-auto { + --f7-cols-per-row: 13; + } + .row .large-auto:nth-last-of-type(14), + .row .large-auto:nth-last-of-type(14) ~ .large-auto { + --f7-cols-per-row: 14; + } + .row .large-auto:nth-last-of-type(15), + .row .large-auto:nth-last-of-type(15) ~ .large-auto { + --f7-cols-per-row: 15; + } + .row .large-auto:nth-last-of-type(16), + .row .large-auto:nth-last-of-type(16) ~ .large-auto { + --f7-cols-per-row: 16; + } + .row .large-auto:nth-last-of-type(17), + .row .large-auto:nth-last-of-type(17) ~ .large-auto { + --f7-cols-per-row: 17; + } + .row .large-auto:nth-last-of-type(18), + .row .large-auto:nth-last-of-type(18) ~ .large-auto { + --f7-cols-per-row: 18; + } + .row .large-auto:nth-last-of-type(19), + .row .large-auto:nth-last-of-type(19) ~ .large-auto { + --f7-cols-per-row: 19; + } + .row .large-auto:nth-last-of-type(20), + .row .large-auto:nth-last-of-type(20) ~ .large-auto { + --f7-cols-per-row: 20; + } + .row .large-auto:nth-last-of-type(21), + .row .large-auto:nth-last-of-type(21) ~ .large-auto { + --f7-cols-per-row: 21; + } + .row .large-auto:nth-last-of-type(22), + .row .large-auto:nth-last-of-type(22) ~ .large-auto { + --f7-cols-per-row: 22; + } +} +@media (min-width: 1200px) { + .row .xlarge-5 { + --f7-cols-per-row: 20; + } + .row .xlarge-10 { + --f7-cols-per-row: 10; + } + .row .xlarge-15 { + --f7-cols-per-row: 6.66666667; + } + .row .xlarge-20 { + --f7-cols-per-row: 5; + } + .row .xlarge-25 { + --f7-cols-per-row: 4; + } + .row .xlarge-30 { + --f7-cols-per-row: 3.33333333; + } + .row .xlarge-33 { + --f7-cols-per-row: 3; + } + .row .xlarge-35 { + --f7-cols-per-row: 2.85714286; + } + .row .xlarge-40 { + --f7-cols-per-row: 2.5; + } + .row .xlarge-45 { + --f7-cols-per-row: 2.22222222; + } + .row .xlarge-50 { + --f7-cols-per-row: 2; + } + .row .xlarge-55 { + --f7-cols-per-row: 1.81818182; + } + .row .xlarge-60 { + --f7-cols-per-row: 1.66666667; + } + .row .xlarge-65 { + --f7-cols-per-row: 1.53846154; + } + .row .xlarge-66 { + --f7-cols-per-row: 1.5; + } + .row .xlarge-70 { + --f7-cols-per-row: 1.42857143; + } + .row .xlarge-75 { + --f7-cols-per-row: 1.33333333; + } + .row .xlarge-80 { + --f7-cols-per-row: 1.25; + } + .row .xlarge-85 { + --f7-cols-per-row: 1.17647059; + } + .row .xlarge-90 { + --f7-cols-per-row: 1.11111111; + } + .row .xlarge-95 { + --f7-cols-per-row: 1.05263158; + } + .row .xlarge-100 { + --f7-cols-per-row: 1; + } + .row .xlarge-auto:nth-last-of-type(1), + .row .xlarge-auto:nth-last-of-type(1) ~ .xlarge-auto { + --f7-cols-per-row: 1; + } + .row .xlarge-auto:nth-last-of-type(2), + .row .xlarge-auto:nth-last-of-type(2) ~ .xlarge-auto { + --f7-cols-per-row: 2; + } + .row .xlarge-auto:nth-last-of-type(3), + .row .xlarge-auto:nth-last-of-type(3) ~ .xlarge-auto { + --f7-cols-per-row: 3; + } + .row .xlarge-auto:nth-last-of-type(4), + .row .xlarge-auto:nth-last-of-type(4) ~ .xlarge-auto { + --f7-cols-per-row: 4; + } + .row .xlarge-auto:nth-last-of-type(5), + .row .xlarge-auto:nth-last-of-type(5) ~ .xlarge-auto { + --f7-cols-per-row: 5; + } + .row .xlarge-auto:nth-last-of-type(6), + .row .xlarge-auto:nth-last-of-type(6) ~ .xlarge-auto { + --f7-cols-per-row: 6; + } + .row .xlarge-auto:nth-last-of-type(7), + .row .xlarge-auto:nth-last-of-type(7) ~ .xlarge-auto { + --f7-cols-per-row: 7; + } + .row .xlarge-auto:nth-last-of-type(8), + .row .xlarge-auto:nth-last-of-type(8) ~ .xlarge-auto { + --f7-cols-per-row: 8; + } + .row .xlarge-auto:nth-last-of-type(9), + .row .xlarge-auto:nth-last-of-type(9) ~ .xlarge-auto { + --f7-cols-per-row: 9; + } + .row .xlarge-auto:nth-last-of-type(10), + .row .xlarge-auto:nth-last-of-type(10) ~ .xlarge-auto { + --f7-cols-per-row: 10; + } + .row .xlarge-auto:nth-last-of-type(11), + .row .xlarge-auto:nth-last-of-type(11) ~ .xlarge-auto { + --f7-cols-per-row: 11; + } + .row .xlarge-auto:nth-last-of-type(12), + .row .xlarge-auto:nth-last-of-type(12) ~ .xlarge-auto { + --f7-cols-per-row: 12; + } + .row .xlarge-auto:nth-last-of-type(13), + .row .xlarge-auto:nth-last-of-type(13) ~ .xlarge-auto { + --f7-cols-per-row: 13; + } + .row .xlarge-auto:nth-last-of-type(14), + .row .xlarge-auto:nth-last-of-type(14) ~ .xlarge-auto { + --f7-cols-per-row: 14; + } + .row .xlarge-auto:nth-last-of-type(15), + .row .xlarge-auto:nth-last-of-type(15) ~ .xlarge-auto { + --f7-cols-per-row: 15; + } + .row .xlarge-auto:nth-last-of-type(16), + .row .xlarge-auto:nth-last-of-type(16) ~ .xlarge-auto { + --f7-cols-per-row: 16; + } + .row .xlarge-auto:nth-last-of-type(17), + .row .xlarge-auto:nth-last-of-type(17) ~ .xlarge-auto { + --f7-cols-per-row: 17; + } + .row .xlarge-auto:nth-last-of-type(18), + .row .xlarge-auto:nth-last-of-type(18) ~ .xlarge-auto { + --f7-cols-per-row: 18; + } + .row .xlarge-auto:nth-last-of-type(19), + .row .xlarge-auto:nth-last-of-type(19) ~ .xlarge-auto { + --f7-cols-per-row: 19; + } + .row .xlarge-auto:nth-last-of-type(20), + .row .xlarge-auto:nth-last-of-type(20) ~ .xlarge-auto { + --f7-cols-per-row: 20; + } + .row .xlarge-auto:nth-last-of-type(21), + .row .xlarge-auto:nth-last-of-type(21) ~ .xlarge-auto { + --f7-cols-per-row: 21; + } + .row .xlarge-auto:nth-last-of-type(22), + .row .xlarge-auto:nth-last-of-type(22) ~ .xlarge-auto { + --f7-cols-per-row: 22; + } +} +.row .resize-handler { + position: absolute; + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; + z-index: 100; +} +.row .resize-handler:before { + content: ''; + position: absolute; +} +.row .resize-handler:after { + content: ''; + position: absolute; + border-radius: 4px; + background: var(--f7-grid-resize-handler-bg-color); +} +.row > .resize-handler { + width: 100%; + height: var(--f7-grid-row-gap); + left: 0; + top: 100%; + cursor: row-resize; +} +.row > .resize-handler:before { + left: 0%; + top: 50%; + height: 12px; + width: 100%; + min-height: var(--f7-grid-row-gap); + transform: translateY(-50%); +} +.row > .resize-handler:after { + height: 4px; + margin-top: -2px; + width: 80%; + max-width: 20px; + left: 50%; + top: 50%; + transform: translateX(-50%); +} +[class*="col-"] > .resize-handler, +.col > .resize-handler { + width: var(--f7-grid-gap); + left: 100%; + top: 0; + height: 100%; + cursor: col-resize; +} +[class*="col-"] > .resize-handler:before, +.col > .resize-handler:before { + left: 50%; + top: 0; + height: 100%; + width: 12px; + min-width: var(--f7-grid-gap); + transform: translateX(-50%); +} +[class*="col-"] > .resize-handler:after, +.col > .resize-handler:after { + width: 4px; + margin-left: -2px; + height: 80%; + max-height: 20px; + border-radius: 4px; + left: 50%; + top: 50%; + transform: translateY(-50%); +} +.row:last-child > .resize-handler, +.row:last-of-type > .resize-handler, +.row [class*="col-"]:last-child > .resize-handler, +.row [class*="col-"]:last-of-type > .resize-handler, +.row .col:last-child > .resize-handler, +.row .col:last-of-type > .resize-handler { + display: none; +} +/* === Calendar/Datepicker === */ +:root { + --f7-calendar-height: 340px; + --f7-calendar-sheet-landscape-height: 220px; + --f7-calendar-popover-width: 320px; + --f7-calendar-popover-height: 320px; + --f7-calendar-modal-height: 420px; + --f7-calendar-modal-max-width: 380px; + --f7-calendar-modal-border-radius: 4px; + /* + --f7-calendar-header-bg-color: var(--f7-bars-bg-color); + --f7-calendar-header-link-color: var(--f7-bars-link-color); + --f7-calendar-header-text-color: var(--f7-bars-text-color); + --f7-calendar-footer-bg-color: var(--f7-bars-bg-color); + --f7-calendar-footer-border-color: var(--f7-bars-border-color); + --f7-calendar-footer-link-color: var(--f7-bars-link-color); + --f7-calendar-footer-text-color: var(--f7-bars-text-color); + --f7-calendar-week-header-bg-color: var(--f7-bars-bg-color); + --f7-calendar-week-header-text-color: var(--f7-bars-text-color); + */ + --f7-calendar-footer-padding: 0 8px; + --f7-calendar-week-header-font-size: 11px; + --f7-calendar-selected-text-color: #fff; + /* + --f7-calendar-selected-bg-color: var(--f7-theme-color); + */ + --f7-calendar-prev-next-text-color: #b8b8b8; + --f7-calendar-disabled-text-color: #d4d4d4; + --f7-calendar-event-dot-size: 4px; + /* + --f7-calendar-event-bg-color: var(--f7-theme-color); + */ + /* + --f7-calendar-picker-selected-text-color: var(--f7-theme-color); + */ + --f7-calendar-day-text-color: #000; + --f7-calendar-sheet-bg-color: #fff; + --f7-calendar-modal-bg-color: #fff; + --f7-calendar-picker-bg-color: #fff; + --f7-calendar-picker-pressed-bg-color: rgba(0, 0, 0, 0.1); + --f7-calendar-picker-hover-bg-color: rgba(0, 0, 0, 0.03); +} +:root .theme-dark, +:root.theme-dark { + --f7-calendar-sheet-border-color: var(--f7-bars-border-color); + --f7-calendar-modal-bg-color: #121212; + --f7-calendar-sheet-bg-color: #121212; + --f7-calendar-picker-bg-color: #1c1c1d; + --f7-calendar-picker-pressed-bg-color: rgba(255, 255, 255, 0.08); + --f7-calendar-picker-hover-bg-color: rgba(255, 255, 255, 0.03); +} +.ios { + --f7-calendar-sheet-border-color: #929499; + --f7-calendar-header-height: 44px; + --f7-calendar-header-font-size: 17px; + --f7-calendar-header-font-weight: 600; + --f7-calendar-header-padding: 0 8px; + --f7-calendar-footer-height: 44px; + --f7-calendar-footer-font-size: 17px; + --f7-calendar-week-header-height: 18px; + --f7-calendar-day-font-size: 15px; + --f7-calendar-day-size: 30px; + --f7-calendar-picker-font-size: 17px; + --f7-calendar-time-selector-font-size: 17px; + --f7-calendar-row-border-color: rgba(0, 0, 0, 0.25); + --f7-calendar-today-text-color: #000; + --f7-calendar-today-bg-color: #e3e3e3; +} +.ios .theme-dark, +.ios.theme-dark { + --f7-calendar-row-border-color: var(--f7-bars-border-color); + --f7-calendar-day-text-color: #fff; + --f7-calendar-today-text-color: #fff; + --f7-calendar-today-bg-color: #333; +} +.md { + --f7-calendar-sheet-border-color: #ccc; + --f7-calendar-header-height: 56px; + --f7-calendar-header-font-size: 20px; + --f7-calendar-header-font-weight: 400; + --f7-calendar-header-padding: 0 24px; + --f7-calendar-footer-height: 48px; + --f7-calendar-footer-font-size: 14px; + --f7-calendar-week-header-height: 24px; + --f7-calendar-row-border-color: transparent; + --f7-calendar-day-font-size: 14px; + /* + --f7-calendar-today-text-color: var(--f7-theme-color); + */ + --f7-calendar-today-bg-color: none; + --f7-calendar-day-size: 32px; + --f7-calendar-picker-font-size: 14px; + --f7-calendar-time-selector-font-size: 14px; +} +.md .theme-dark, +.md.theme-dark { + --f7-calendar-day-text-color: rgba(255, 255, 255, 0.87); +} +.aurora { + --f7-calendar-sheet-border-color: #ccc; + --f7-calendar-header-height: 38px; + --f7-calendar-header-font-size: 14px; + --f7-calendar-header-font-weight: 600; + --f7-calendar-header-padding: 0 8px; + --f7-calendar-footer-height: 38px; + --f7-calendar-footer-font-size: 14px; + --f7-calendar-week-header-height: 18px; + --f7-calendar-day-font-size: 13px; + --f7-calendar-day-size: 30px; + --f7-calendar-picker-font-size: 14px; + --f7-calendar-time-selector-font-size: 14px; + --f7-calendar-row-border-color: #e3e3e3; + --f7-calendar-today-text-color: #000; + --f7-calendar-today-bg-color: #e3e3e3; +} +.aurora .theme-dark, +.aurora.theme-dark { + --f7-calendar-row-border-color: var(--f7-bars-border-color); + --f7-calendar-day-text-color: #fff; + --f7-calendar-today-text-color: #fff; + --f7-calendar-today-bg-color: #333; +} +.calendar { + overflow: hidden; + height: var(--f7-calendar-height); + width: 100%; + display: flex; + flex-direction: column; +} +.calendar.modal-in { + display: flex; +} +@media (orientation: landscape) and (max-height: 415px) { + .calendar.calendar-sheet { + height: var(--f7-calendar-sheet-landscape-height); + } + .calendar.calendar-modal { + height: calc(100vh - var(--f7-navbar-height)); + } +} +.calendar.calendar-inline, +.calendar.calendar-popover .calendar { + position: relative; +} +.calendar-sheet { + --f7-sheet-border-color: var(--f7-calendar-sheet-border-color); + background: var(--f7-calendar-sheet-bg-color); + padding-bottom: var(--f7-safe-area-bottom); + height: calc(var(--f7-calendar-height) + var(--f7-safe-area-bottom)); +} +.calendar-sheet:before { + z-index: 600; +} +.calendar-sheet .toolbar:before, +.calendar-modal .toolbar:before, +.calendar-popover .toolbar:before { + display: none; +} +.calendar-popover { + width: var(--f7-calendar-popover-width); +} +.calendar-popover .toolbar-top, +.calendar-popover .calendar-header { + border-radius: var(--f7-popover-border-radius) var(--f7-popover-border-radius) 0 0; +} +.calendar-popover .calendar-header + .toolbar-top { + border-radius: 0; +} +.calendar-popover .toolbar-bottom, +.calendar-popover .calendar-footer { + border-radius: 0 0 var(--f7-popover-border-radius) var(--f7-popover-border-radius); +} +.calendar-popover .calendar { + height: var(--f7-calendar-popover-height); + position: relative; + z-index: 1; +} +.calendar-popover .calendar-month-picker, +.calendar-popover .calendar-year-picker, +.calendar-popover .calendar-time-picker { + border-radius: var(--f7-popover-border-radius); +} +.calendar-header { + width: 100%; + position: relative; + overflow: hidden; + flex-shrink: 0; + white-space: nowrap; + text-overflow: ellipsis; + box-sizing: border-box; + padding: var(--f7-calendar-header-padding); + background-color: var(--f7-calendar-header-bg-color, var(--f7-bars-bg-color)); + color: var(--f7-calendar-header-text-color, var(--f7-bars-text-color)); + height: var(--f7-calendar-header-height); + line-height: var(--f7-calendar-header-height); + font-size: var(--f7-calendar-header-font-size); + font-weight: var(--f7-calendar-header-font-weight); +} +.calendar-header a { + color: var(--f7-calendar-header-link-color, var(--f7-bars-link-color, var(--f7-theme-color))); +} +.calendar-footer { + width: 100%; + flex-shrink: 0; + padding: var(--f7-calendar-footer-padding); + background-color: var(--f7-calendar-footer-bg-color, var(--f7-bars-bg-color)); + color: var(--f7-calendar-footer-text-color, var(--f7-bars-text-color)); + height: var(--f7-calendar-footer-height); + font-size: var(--f7-calendar-header-font-size); + display: flex; + justify-content: flex-end; + box-sizing: border-box; + align-items: center; + position: relative; +} +.calendar-footer a { + color: var(--f7-calendar-footer-link-color, var(--f7-bars-link-color, var(--f7-theme-color))); +} +.calendar-footer:before { + content: ''; + position: absolute; + background-color: var(--f7-calendar-footer-border-color, var(--f7-bars-border-color)); + display: block; + z-index: 15; + top: 0; + right: auto; + bottom: auto; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 0%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +.calendar-modal { + position: absolute; + height: var(--f7-calendar-modal-height); + overflow: hidden; + top: 50%; + left: 50%; + min-width: 300px; + max-width: var(--f7-calendar-modal-max-width); + transform: translate3d(-50%, 100vh, 0); + transition-property: transform; + display: flex; + z-index: 13500; + background: var(--f7-calendar-modal-bg-color); + width: 90%; + border-radius: var(--f7-calendar-modal-border-radius); + box-shadow: var(--f7-elevation-24); +} +.calendar-modal.modal-in, +.calendar-modal.modal-out { + transition-duration: 400ms; +} +.calendar-modal.modal-in { + transform: translate3d(-50%, -50%, 0); +} +.calendar-modal.modal-out { + transform: translate3d(-50%, 100vh, 0); +} +.calendar-week-header { + display: flex; + box-sizing: border-box; + position: relative; + font-size: var(--f7-calendar-week-header-font-size); + background-color: var(--f7-calendar-week-header-bg-color, var(--f7-bars-bg-color)); + color: var(--f7-calendar-week-header-text-color, var(--f7-bars-text-color)); + height: var(--f7-calendar-week-header-height); + padding-left: var(--f7-safe-area-left); + padding-right: var(--f7-safe-area-right); +} +.calendar-week-header .calendar-week-day { + flex-shrink: 1; + width: calc(100% / 7); + text-align: center; + line-height: var(--f7-calendar-week-header-height); +} +.calendar-months { + width: 100%; + height: 100%; + overflow: hidden; + position: relative; + flex-shrink: 10; +} +.calendar-months-wrapper { + position: relative; + width: 100%; + height: 100%; + transition: 300ms; +} +.calendar-month { + display: flex; + flex-direction: column; + width: 100%; + height: 100%; + position: absolute; + left: 0; + top: 0; +} +.calendar-row { + height: 16.66666667%; + height: calc(100% / 6); + display: flex; + flex-shrink: 1; + width: 100%; + position: relative; + box-sizing: border-box; + padding-left: var(--f7-safe-area-left); + padding-right: var(--f7-safe-area-right); +} +.calendar-row:before { + content: ''; + position: absolute; + background-color: var(--f7-calendar-row-border-color); + display: block; + z-index: 15; + top: 0; + right: auto; + bottom: auto; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 0%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +.calendar-modal .calendar-months:first-child .calendar-row:first-child:before, +.calendar-popover .calendar-months:first-child .calendar-row:first-child:before { + display: none !important; +} +.calendar-day { + flex-shrink: 1; + display: flex; + justify-content: center; + align-items: center; + box-sizing: border-box; + width: 14.28571429%; + width: calc(100% / 7); + text-align: center; + cursor: pointer; + z-index: 20; + color: var(--f7-calendar-day-text-color); + height: 100%; + font-size: var(--f7-calendar-day-font-size); +} +.calendar-day.calendar-day-today .calendar-day-number { + color: var(--f7-calendar-today-text-color, var(--f7-theme-color)); + background-color: var(--f7-calendar-today-bg-color); +} +.calendar-day.calendar-day-prev, +.calendar-day.calendar-day-next { + color: var(--f7-calendar-prev-next-text-color); +} +.calendar-day.calendar-day-disabled { + color: var(--f7-calendar-disabled-text-color); + cursor: auto; +} +.calendar-day.calendar-day-selected .calendar-day-number { + color: var(--f7-calendar-selected-text-color); + background-color: var(--f7-calendar-selected-bg-color, var(--f7-theme-color)); +} +.calendar-day .calendar-day-number { + display: inline-block; + border-radius: 50%; + position: relative; + width: var(--f7-calendar-day-size); + height: var(--f7-calendar-day-size); + line-height: var(--f7-calendar-day-size); +} +.calendar-day .calendar-day-events { + position: absolute; + display: flex; + left: 0; + width: 100%; + top: 100%; + align-items: center; + justify-content: center; + margin-top: 1px; +} +.calendar-day .calendar-day-event { + width: var(--f7-calendar-event-dot-size); + height: var(--f7-calendar-event-dot-size); + border-radius: calc(var(--f7-calendar-event-dot-size) / 2); + background-color: var(--f7-calendar-event-bg-color); +} +.calendar-day .calendar-day-event + .calendar-day-event { + margin-left: 2px; +} +.calendar-range .calendar-day.calendar-day-selected { + align-items: stretch; + align-content: stretch; +} +.calendar-range .calendar-day.calendar-day-selected .calendar-day-number { + width: 100%; + border-radius: 0; + height: auto; + text-align: center; + display: flex; + align-items: center; + justify-content: center; +} +.calendar-month-selector, +.calendar-year-selector { + display: flex; + justify-content: space-between; + align-items: center; + width: 50%; + max-width: 200px; + flex-shrink: 10; + margin-left: auto; + margin-right: auto; +} +.calendar-month-selector .calendar-day-number, +.calendar-year-selector .calendar-day-number { + flex-shrink: 1; + position: relative; + overflow: hidden; + text-overflow: ellipsis; +} +.calendar-month-selector a.icon-only, +.calendar-year-selector a.icon-only { + min-width: 36px; +} +.calendar-month-picker, +.calendar-year-picker, +.calendar-time-picker { + position: absolute; + width: 100%; + height: 100%; + left: 0px; + top: 0px; + background: var(--f7-calendar-picker-bg-color); + z-index: 1000; + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; +} +.calendar-month-picker, +.calendar-year-picker { + flex-wrap: wrap; + font-size: var(--f7-calendar-picker-font-size); + display: flex; +} +.calendar-month-picker-item, +.calendar-year-picker-item { + display: flex; + justify-content: center; + align-items: center; + position: relative; + overflow: hidden; + cursor: pointer; + transition-duration: 100ms; + box-sizing: border-box; +} +.calendar-month-picker-item span, +.calendar-year-picker-item span { + white-space: nowrap; + text-overflow: ellipsis; + box-sizing: border-box; + position: relative; + overflow: hidden; + pointer-events: none; +} +.device-desktop.aurora .calendar-month-picker-item:hover, +.device-desktop.aurora .calendar-year-picker-item:hover { + background-color: var(--f7-calendar-picker-hover-bg-color); +} +.calendar-month-picker-item.active-state, +.calendar-year-picker-item.active-state, +.device-desktop.aurora .calendar-month-picker-item.active-state, +.device-desktop.aurora .calendar-year-picker-item.active-state { + background: var(--f7-calendar-picker-pressed-bg-color); +} +.calendar-month-picker-item { + padding: 5px; +} +.calendar-month-picker-item:after { + content: ''; + position: absolute; + background-color: var(--f7-calendar-row-border-color); + display: block; + z-index: 15; + top: auto; + right: auto; + bottom: 0; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 100%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +.calendar-month-picker-item:before { + content: ''; + position: absolute; + background-color: var(--f7-calendar-row-border-color); + display: block; + z-index: 15; + top: 0; + right: auto; + bottom: auto; + left: 0; + width: 1px; + height: 100%; + transform-origin: 0% 50%; + transform: scaleX(calc(1 / var(--f7-device-pixel-ratio))); +} +.sheet-modal .calendar-month-picker-item { + width: 25%; + height: calc(100% / 3); +} +.sheet-modal .calendar-month-picker-item:nth-child(4n + 1):before { + display: none !important; +} +.sheet-modal .calendar-month-picker-item:nth-child(n + 9):after { + display: none !important; +} +.popover .calendar-month-picker-item, +.calendar-modal .calendar-month-picker-item { + width: calc(100% / 3); + height: 25%; +} +.popover .calendar-month-picker-item:nth-child(3n + 1):before, +.calendar-modal .calendar-month-picker-item:nth-child(3n + 1):before { + display: none !important; +} +.popover .calendar-month-picker-item:nth-child(n + 10):after, +.calendar-modal .calendar-month-picker-item:nth-child(n + 10):after { + display: none !important; +} +.calendar-month-picker-item-current, +.calendar-year-picker-item-current { + color: var(--f7-calendar-picker-selected-text-color, var(--f7-theme-color)); +} +.calendar-year-picker { + overflow: auto; + --webkit-overflow-scrolling: touch; +} +.calendar-year-picker-item { + height: 34px; + line-height: 34px; + width: 100%; +} +.calendar-year-picker-item:after { + content: ''; + position: absolute; + background-color: var(--f7-calendar-row-border-color); + display: block; + z-index: 15; + top: auto; + right: auto; + bottom: 0; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 100%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +.calendar-time-selector { + flex-shrink: 0; + font-size: var(--f7-calendar-time-selector-font-size); + position: relative; +} +.calendar-time-selector:before { + content: ''; + position: absolute; + background-color: var(--f7-calendar-row-border-color); + display: block; + z-index: 15; + top: 0; + right: auto; + bottom: auto; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 0%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +.calendar-time-selector a { + overflow: hidden; + position: relative; + justify-content: center; + align-items: center; + display: flex; + width: 100%; + height: 44px; +} +.calendar-time-picker { + --f7-picker-popover-height: 100%; + --f7-picker-inline-height: 100%; + --f7-picker-item-selected-text-color: var(--f7-theme-color); +} +.calendar-time-picker .toolbar { + flex-shrink: 0; + top: 0 !important; +} +.calendar-time-picker .picker { + height: 100%; + display: flex; + flex-direction: column; +} +/* === Picker === */ +:root { + --f7-picker-height: 260px; + --f7-picker-inline-height: 200px; + --f7-picker-popover-height: 200px; + --f7-picker-popover-width: 280px; + --f7-picker-landscape-height: 200px; + --f7-picker-item-height: 36px; + --f7-picker-item-selected-text-color: #000; +} +:root .theme-dark, +:root.theme-dark { + --f7-picker-item-selected-text-color: #fff; +} +.ios { + --f7-picker-column-font-size: 20px; + --f7-picker-sheet-bg-color: #cfd5da; + --f7-picker-divider-text-color: #000; + --f7-picker-item-text-color: rgba(0, 0, 0, 0.45); + --f7-picker-item-selected-border-color: rgba(0, 0, 0, 0.22); +} +.ios .theme-dark, +.ios.theme-dark { + --f7-picker-sheet-bg-color: #1c1c1d; + --f7-picker-divider-text-color: #fff; + --f7-picker-item-text-color: rgba(255, 255, 255, 0.55); + --f7-picker-item-selected-border-color: rgba(255, 255, 255, 0.06); +} +.md { + /* + --f7-picker-sheet-bg-color: var(--f7-sheet-bg-color); + */ + --f7-picker-column-font-size: 20px; + --f7-picker-divider-text-color: rgba(0, 0, 0, 0.87); + --f7-picker-item-text-color: rgba(0, 0, 0, 0.54); + --f7-picker-item-selected-border-color: rgba(0, 0, 0, 0.15); +} +.md .theme-dark, +.md.theme-dark { + --f7-picker-item-text-color: rgba(255, 255, 255, 0.54); + --f7-picker-divider-text-color: rgba(255, 255, 255, 0.87); + --f7-picker-item-selected-border-color: rgba(255, 255, 255, 0.15); +} +.aurora { + /* + --f7-picker-sheet-bg-color: var(--f7-sheet-bg-color); + */ + --f7-picker-column-font-size: 16px; + --f7-picker-item-height: 28px; + --f7-picker-item-text-color: #888; + --f7-picker-divider-text-color: #000; + --f7-picker-item-selected-border-color: rgba(0, 0, 0, 0.12); +} +.aurora .theme-dark, +.aurora.theme-dark { + --f7-picker-divider-text-color: #fff; + --f7-picker-item-selected-border-color: rgba(255, 255, 255, 0.06); +} +.picker { + width: 100%; + height: var(--f7-picker-height); +} +.picker.picker-inline { + height: var(--f7-picker-inline-height); +} +.popover .picker { + height: var(--f7-picker-popover-height); +} +@media (orientation: landscape) and (max-height: 415px) { + .picker:not(.picker-inline) { + height: var(--f7-picker-landscape-height); + } +} +.picker.sheet-modal { + background: var(--f7-picker-sheet-bg-color, var(--f7-sheet-bg-color)); +} +.picker-popover { + width: var(--f7-picker-popover-width); +} +.picker-popover .toolbar { + background: none; + border-radius: var(--f7-popover-border-radius) var(--f7-popover-border-radius) 0 0; +} +.picker-popover .toolbar:before { + display: none !important; +} +.picker-popover .toolbar + .picker-columns { + height: calc(100% - var(--f7-toolbar-height)); +} +.picker-columns { + display: flex; + overflow: hidden; + justify-content: center; + padding: 0; + text-align: right; + height: 100%; + position: relative; + -webkit-mask-box-image: linear-gradient(to top, transparent, transparent 5%, white 20%, white 80%, transparent 95%, transparent); + font-size: var(--f7-picker-column-font-size); +} +.picker-column { + position: relative; + max-height: 100%; +} +.picker-column.picker-column-first:before, +.picker-column.picker-column-last:after { + height: 100%; + width: 100vw; + position: absolute; + content: ''; + top: 0; +} +.picker-column.picker-column-first:before { + left: 100%; +} +.picker-column.picker-column-last:after { + right: 100%; +} +.picker-column.picker-column-left { + text-align: left; +} +.picker-column.picker-column-center { + text-align: center; +} +.picker-column.picker-column-right { + text-align: right; +} +.picker-column.picker-column-divider { + display: flex; + align-items: center; + color: var(--f7-picker-divider-text-color); +} +.picker-items { + transition: 300ms; + transition-timing-function: ease-out; +} +.picker-item { + height: var(--f7-picker-item-height); + line-height: var(--f7-picker-item-height); + white-space: nowrap; + position: relative; + overflow: hidden; + text-overflow: ellipsis; + left: 0; + top: 0; + width: 100%; + box-sizing: border-box; + transition: 300ms; + color: var(--f7-picker-item-text-color); + cursor: pointer; +} +.picker-item span { + padding: 0 10px; +} +.picker-column-absolute .picker-item { + position: absolute; +} +.picker-item.picker-item-far { + pointer-events: none; +} +.picker-item.picker-item-selected { + color: var(--f7-picker-item-selected-text-color); + transform: translate3d(0, 0, 0) rotateX(0deg); +} +.picker-center-highlight { + height: var(--f7-picker-item-height); + box-sizing: border-box; + position: absolute; + left: 0; + width: 100%; + top: 50%; + margin-top: calc(-1 * var(--f7-picker-item-height) / 2); + pointer-events: none; +} +.picker-center-highlight:before { + content: ''; + position: absolute; + background-color: var(--f7-picker-item-selected-border-color); + display: block; + z-index: 15; + top: 0; + right: auto; + bottom: auto; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 0%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +.picker-center-highlight:after { + content: ''; + position: absolute; + background-color: var(--f7-picker-item-selected-border-color); + display: block; + z-index: 15; + top: auto; + right: auto; + bottom: 0; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 100%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +.picker-3d .picker-columns { + overflow: hidden; + perspective: 1200px; +} +.picker-3d .picker-column, +.picker-3d .picker-items, +.picker-3d .picker-item { + transform-style: preserve-3d; +} +.picker-3d .picker-column { + overflow: visible; +} +.picker-3d .picker-item { + transform-origin: center center -110px; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + transition-timing-function: ease-out; +} +/* === Infinite === */ +.infinite-scroll-preloader { + margin-left: auto; + margin-right: auto; + text-align: center; +} +.infinite-scroll-preloader.preloader { + display: block; +} +.ios .infinite-scroll-preloader { + margin-top: 35px; + margin-bottom: 35px; +} +.ios .infinite-scroll-preloader .preloader, +.ios .infinite-scroll-preloader.preloader { + width: 27px; + height: 27px; +} +.md .infinite-scroll-preloader { + margin-top: 32px; + margin-bottom: 32px; +} +.aurora .infinite-scroll-preloader { + margin-top: 15px; + margin-bottom: 15px; +} +/* === PTR === */ +.ios { + --f7-ptr-preloader-size: 28px; + --f7-ptr-size: 44px; +} +.md { + --f7-ptr-preloader-size: 22px; + --f7-ptr-size: 40px; +} +.aurora { + --f7-ptr-preloader-size: 20px; + --f7-ptr-size: 38px; +} +.ptr-preloader { + position: relative; + top: var(--f7-ptr-top, 0); + height: var(--f7-ptr-size); +} +.ptr-preloader .preloader { + position: absolute; + left: 50%; + width: var(--f7-ptr-preloader-size); + height: var(--f7-ptr-preloader-size); + margin-left: calc(-1 * var(--f7-ptr-preloader-size) / 2); + margin-top: calc(-1 * var(--f7-ptr-preloader-size) / 2); + top: 50%; + visibility: hidden; +} +.ptr-bottom .ptr-preloader { + top: auto; + bottom: 0; + position: fixed; +} +.ptr-with-navbar-large-transparent .ptr-preloader, +.ptr-with-navbar-transparent .ptr-preloader { + top: calc(-1 * var(--f7-page-navbar-offset, 0px) + var(--f7-safe-area-top)); +} +.ios .ptr-preloader { + margin-top: calc(-1 * var(--f7-ptr-size)); + width: 100%; + left: 0; +} +.ios .ptr-arrow { + position: absolute; + left: 50%; + top: 50%; + background: no-repeat center; + z-index: 10; + transform: rotate(0deg) translate3d(0, 0, 0); + transition-duration: 300ms; + transition-property: transform, opacity; + width: 12px; + height: 20px; + margin-left: -6px; + margin-top: -10px; + visibility: visible; + color: var(--f7-preloader-color); +} +.ios .ptr-arrow:after { + font-family: 'framework7-core-icons'; + font-weight: normal; + font-style: normal; + line-height: 1; + letter-spacing: normal; + text-transform: none; + white-space: nowrap; + word-wrap: normal; + direction: ltr; + -webkit-font-smoothing: antialiased; + text-rendering: optimizeLegibility; + -moz-osx-font-smoothing: grayscale; + font-feature-settings: "liga"; + text-align: center; + display: block; + width: 100%; + height: 100%; + font-size: 20px; + width: 12px; + height: 20px; + line-height: 20px; + font-size: 10px; + content: 'ptr_arrow_ios'; +} +.ios .ptr-content:not(.ptr-refreshing) .ptr-preloader .preloader { + animation: none; +} +.ios .ptr-transitioning, +.ios .ptr-refreshing { + transition-duration: 300ms; + transition-property: transform; +} +.ios .ptr-refreshing { + transform: translate3d(0, var(--f7-ptr-size), 0); +} +.ios .ptr-refreshing .ptr-arrow { + visibility: hidden; +} +.ios .ptr-refreshing .ptr-preloader .preloader { + visibility: visible; +} +.ios .ptr-pull-up .ptr-arrow { + transform: rotate(180deg) translate3d(0, 0, 0); +} +.ios .ptr-no-navbar, +.ios .ptr-with-navbar-large-transparent, +.ios .ptr-with-navbar-transparent { + margin-top: calc(-1 * var(--f7-ptr-size)); + height: calc(100% + var(--f7-ptr-size)); +} +.ios .ptr-no-navbar .ptr-preloader, +.ios .ptr-with-navbar-large-transparent .ptr-preloader, +.ios .ptr-with-navbar-transparent .ptr-preloader { + margin-top: 0; +} +.ios .ptr-bottom .ptr-preloader { + margin-top: 0; + margin-bottom: calc(-1 * var(--f7-ptr-size)); +} +.ios .ptr-bottom.ptr-transitioning > *, +.ios .ptr-bottom.ptr-refreshing > * { + transition-duration: 300ms; + transition-property: transform; +} +.ios .ptr-bottom.ptr-refreshing { + transform: none; +} +.ios .ptr-bottom.ptr-refreshing > * { + transform: translate3d(0, calc(-1 * var(--f7-ptr-size)), 0); +} +.ios .ptr-bottom .ptr-arrow { + transform: rotate(180deg) translate3d(0, 0, 0); +} +.ios .ptr-bottom.ptr-pull-up .ptr-arrow { + transform: rotate(0deg) translate3d(0, 0, 0); +} +.ios .ptr-with-navbar-large-transparent .ptr-preloader .preloader, +.ios .ptr-with-navbar-transparent .ptr-preloader .preloader, +.ios .ptr-with-navbar-large-transparent .ptr-preloader .ptr-arrow, +.ios .ptr-with-navbar-transparent .ptr-preloader .ptr-arrow { + opacity: 0; + transition-duration: 300ms; + transition-property: transform, opacity; +} +.ios .ptr-with-navbar-large-transparent.ptr-pull-down .ptr-preloader .preloader, +.ios .ptr-with-navbar-transparent.ptr-pull-down .ptr-preloader .preloader, +.ios .ptr-with-navbar-large-transparent.ptr-pull-up .ptr-preloader .preloader, +.ios .ptr-with-navbar-transparent.ptr-pull-up .ptr-preloader .preloader, +.ios .ptr-with-navbar-large-transparent.ptr-refreshing .ptr-preloader .preloader, +.ios .ptr-with-navbar-transparent.ptr-refreshing .ptr-preloader .preloader, +.ios .ptr-with-navbar-large-transparent.ptr-pull-down .ptr-preloader .ptr-arrow, +.ios .ptr-with-navbar-transparent.ptr-pull-down .ptr-preloader .ptr-arrow, +.ios .ptr-with-navbar-large-transparent.ptr-pull-up .ptr-preloader .ptr-arrow, +.ios .ptr-with-navbar-transparent.ptr-pull-up .ptr-preloader .ptr-arrow, +.ios .ptr-with-navbar-large-transparent.ptr-refreshing .ptr-preloader .ptr-arrow, +.ios .ptr-with-navbar-transparent.ptr-refreshing .ptr-preloader .ptr-arrow { + opacity: 1; +} +.ios .ptr-with-navbar-large-transparent.ptr-closing .ptr-preloader .preloader, +.ios .ptr-with-navbar-transparent.ptr-closing .ptr-preloader .preloader, +.ios .ptr-with-navbar-large-transparent.ptr-closing .ptr-preloader .ptr-arrow, +.ios .ptr-with-navbar-transparent.ptr-closing .ptr-preloader .ptr-arrow { + opacity: 0; + transition-duration: 300ms; +} +.md { + --f7-ptr-top: -4px; +} +.md .ptr-preloader { + width: var(--f7-ptr-size); + border-radius: 50%; + background: #fff; + margin-top: calc(-1 * var(--f7-ptr-size)); + z-index: 100; + box-shadow: var(--f7-elevation-1); + right: 50%; + margin-right: calc(-1 * var(--f7-ptr-size) / 2); +} +.md .ptr-preloader .preloader .preloader-inner-gap, +.md .ptr-preloader .preloader .preloader-inner-half-circle { + border-width: 3px; +} +.md .ptr-arrow { + width: 22px; + height: 22px; + box-sizing: border-box; + border: 3px solid var(--f7-preloader-color); + position: absolute; + left: 50%; + top: 50%; + margin-left: -11px; + margin-top: -11px; + border-left-color: transparent; + border-radius: 50%; + opacity: 1; + transform: rotate(150deg); +} +.md .ptr-arrow:after { + content: ''; + width: 0px; + height: 0px; + position: absolute; + left: -5px; + bottom: 0px; + border-bottom-width: 6px; + border-bottom-style: solid; + border-bottom-color: inherit; + border-left: 5px solid transparent; + border-right: 5px solid transparent; + transform: rotate(-40deg); +} +.md .ptr-content:not(.ptr-refreshing):not(.ptr-pull-up) .ptr-preloader .preloader, +.md .ptr-content:not(.ptr-refreshing):not(.ptr-pull-up) .ptr-preloader .preloader * { + animation: none; +} +.md .ptr-refreshing .ptr-preloader .preloader, +.md .ptr-pull-up .ptr-preloader .preloader { + visibility: visible; +} +.md .ptr-refreshing .ptr-arrow, +.md .ptr-pull-up .ptr-arrow { + visibility: hidden; +} +.md .ptr-refreshing .ptr-preloader { + transform: translate3d(0, 66px, 0); +} +.md .ptr-transitioning .ptr-arrow { + transition: 300ms; +} +.md .ptr-pull-up .ptr-arrow { + transition: 400ms; + transform: rotate(620deg) !important; + opacity: 0; +} +.md .ptr-transitioning .ptr-preloader, +.md .ptr-refreshing .ptr-preloader { + transition-duration: 300ms; + transition-property: transform, opacity; +} +.md .ptr-bottom .ptr-preloader { + margin-top: 0; + margin-bottom: calc(-1 * var(--f7-ptr-size) - 4px); +} +.md .ptr-bottom.ptr-refreshing .ptr-preloader { + transform: translate3d(0, -66px, 0); +} +.md .ptr-with-navbar-large-transparent .ptr-preloader, +.md .ptr-with-navbar-transparent .ptr-preloader { + opacity: 0; +} +.md .ptr-with-navbar-large-transparent.ptr-pull-down .ptr-preloader, +.md .ptr-with-navbar-transparent.ptr-pull-down .ptr-preloader, +.md .ptr-with-navbar-large-transparent.ptr-pull-up .ptr-preloader, +.md .ptr-with-navbar-transparent.ptr-pull-up .ptr-preloader, +.md .ptr-with-navbar-large-transparent.ptr-refreshing .ptr-preloader, +.md .ptr-with-navbar-transparent.ptr-refreshing .ptr-preloader { + opacity: 1; +} +.md .ptr-with-navbar-large-transparent.ptr-closing .ptr-preloader, +.md .ptr-with-navbar-transparent.ptr-closing .ptr-preloader { + opacity: 0; + transition-duration: 300ms; +} +.aurora .ptr-preloader { + margin-top: calc(-1 * var(--f7-ptr-size)); + width: 100%; + left: 0; +} +.aurora .ptr-arrow { + position: absolute; + left: 50%; + top: 50%; + background: no-repeat center; + z-index: 10; + transform: rotate(0deg) translate3d(0, 0, 0); + transition-duration: 300ms; + transition-property: transform, opacity; + width: 12px; + height: 20px; + margin-left: -6px; + margin-top: -10px; + visibility: visible; + color: var(--f7-preloader-color); +} +.aurora .ptr-arrow:after { + font-family: 'framework7-core-icons'; + font-weight: normal; + font-style: normal; + line-height: 1; + letter-spacing: normal; + text-transform: none; + white-space: nowrap; + word-wrap: normal; + direction: ltr; + -webkit-font-smoothing: antialiased; + text-rendering: optimizeLegibility; + -moz-osx-font-smoothing: grayscale; + font-feature-settings: "liga"; + text-align: center; + display: block; + width: 100%; + height: 100%; + font-size: 20px; + width: 12px; + height: 20px; + line-height: 20px; + font-size: 8px; + content: 'ptr_arrow_ios'; +} +.aurora .ptr-content:not(.ptr-refreshing) .ptr-preloader .preloader { + animation: none; +} +.aurora .ptr-transitioning, +.aurora .ptr-refreshing { + transition-duration: 300ms; + transition-property: transform; +} +.aurora .ptr-refreshing { + transform: translate3d(0, var(--f7-ptr-size), 0); +} +.aurora .ptr-refreshing .ptr-arrow { + visibility: hidden; +} +.aurora .ptr-refreshing .ptr-preloader .preloader { + visibility: visible; +} +.aurora .ptr-pull-up .ptr-arrow { + transform: rotate(180deg) translate3d(0, 0, 0); +} +.aurora .ptr-no-navbar, +.aurora .ptr-with-navbar-large-transparent, +.aurora .ptr-with-navbar-transparent { + margin-top: calc(-1 * var(--f7-ptr-size)); + height: calc(100% + var(--f7-ptr-size)); +} +.aurora .ptr-no-navbar .ptr-preloader, +.aurora .ptr-with-navbar-large-transparent .ptr-preloader, +.aurora .ptr-with-navbar-transparent .ptr-preloader { + margin-top: 0; +} +.aurora .ptr-bottom .ptr-preloader { + margin-top: 0; + margin-bottom: calc(-1 * var(--f7-ptr-size)); +} +.aurora .ptr-bottom.ptr-transitioning > *, +.aurora .ptr-bottom.ptr-refreshing > * { + transition-duration: 300ms; + transition-property: transform; +} +.aurora .ptr-bottom.ptr-refreshing { + transform: none; +} +.aurora .ptr-bottom.ptr-refreshing > * { + transform: translate3d(0, calc(-1 * var(--f7-ptr-size)), 0); +} +.aurora .ptr-bottom .ptr-arrow { + transform: rotate(180deg) translate3d(0, 0, 0); +} +.aurora .ptr-bottom.ptr-pull-up .ptr-arrow { + transform: rotate(0deg) translate3d(0, 0, 0); +} +.aurora .ptr-with-navbar-large-transparent .ptr-preloader .preloader, +.aurora .ptr-with-navbar-transparent .ptr-preloader .preloader, +.aurora .ptr-with-navbar-large-transparent .ptr-preloader .ptr-arrow, +.aurora .ptr-with-navbar-transparent .ptr-preloader .ptr-arrow { + opacity: 0; + transition-duration: 300ms; + transition-property: transform, opacity; +} +.aurora .ptr-with-navbar-large-transparent.ptr-pull-down .ptr-preloader .preloader, +.aurora .ptr-with-navbar-transparent.ptr-pull-down .ptr-preloader .preloader, +.aurora .ptr-with-navbar-large-transparent.ptr-pull-up .ptr-preloader .preloader, +.aurora .ptr-with-navbar-transparent.ptr-pull-up .ptr-preloader .preloader, +.aurora .ptr-with-navbar-large-transparent.ptr-refreshing .ptr-preloader .preloader, +.aurora .ptr-with-navbar-transparent.ptr-refreshing .ptr-preloader .preloader, +.aurora .ptr-with-navbar-large-transparent.ptr-pull-down .ptr-preloader .ptr-arrow, +.aurora .ptr-with-navbar-transparent.ptr-pull-down .ptr-preloader .ptr-arrow, +.aurora .ptr-with-navbar-large-transparent.ptr-pull-up .ptr-preloader .ptr-arrow, +.aurora .ptr-with-navbar-transparent.ptr-pull-up .ptr-preloader .ptr-arrow, +.aurora .ptr-with-navbar-large-transparent.ptr-refreshing .ptr-preloader .ptr-arrow, +.aurora .ptr-with-navbar-transparent.ptr-refreshing .ptr-preloader .ptr-arrow { + opacity: 1; +} +.aurora .ptr-with-navbar-large-transparent.ptr-closing .ptr-preloader .preloader, +.aurora .ptr-with-navbar-transparent.ptr-closing .ptr-preloader .preloader, +.aurora .ptr-with-navbar-large-transparent.ptr-closing .ptr-preloader .ptr-arrow, +.aurora .ptr-with-navbar-transparent.ptr-closing .ptr-preloader .ptr-arrow { + opacity: 0; + transition-duration: 300ms; +} +/* === Images Lazy Loading === */ +.lazy-loaded.lazy-fade-in { + animation: lazyFadeIn 600ms; +} +@keyframes lazyFadeIn { + from { + opacity: 0; + } + to { + opacity: 1; + } +} +/* === Data Table === */ +:root { + --f7-table-head-font-size: 12px; + --f7-table-body-font-size: 14px; + --f7-table-footer-font-size: 12px; + --f7-table-input-height: 24px; + --f7-table-input-font-size: 14px; + --f7-table-collapsible-cell-padding: 16px; + --f7-table-link-icon-only-icon-size: 20px; + --f7-table-sortable-icon-color: #000; +} +:root .theme-dark, +:root.theme-dark { + --f7-table-cell-border-color: rgba(255, 255, 255, 0.15); + --f7-table-sortable-icon-color: #fff; + --f7-table-input-text-color: #fff; +} +.ios { + --f7-table-head-font-weight: 600; + --f7-table-head-cell-height: 44px; + --f7-table-head-icon-size: 18px; + --f7-table-body-cell-height: 44px; + --f7-table-cell-padding-vertical: 0px; + --f7-table-cell-padding-horizontal: 16px; + --f7-table-edge-cell-padding-horizontal: 16px; + --f7-table-label-cell-padding-horizontal: 16px; + --f7-table-checkbox-cell-width: 22px; + /* --f7-table-actions-cell-link-color: var(--f7-theme-color); */ + /* --f7-table-actions-link-color: var(--f7-theme-color); */ + --f7-table-title-font-size: 17px; + --f7-table-title-font-weight: 600; + --f7-table-card-header-height: 64px; + --f7-table-footer-height: 44px; + --f7-table-head-text-color: rgba(0, 0, 0, 0.45); + --f7-table-cell-border-color: rgba(0, 0, 0, 0.22); + --f7-table-selected-row-bg-color: rgba(0, 0, 0, 0.03); + --f7-table-footer-text-color: rgba(0, 0, 0, 0.45); + --f7-table-input-text-color: #000; +} +.ios .theme-dark, +.ios.theme-dark { + --f7-table-head-text-color: rgba(255, 255, 255, 0.55); + --f7-table-footer-text-color: rgba(255, 255, 255, 0.55); + --f7-table-selected-row-bg-color: rgba(255, 255, 255, 0.08); +} +.md { + --f7-table-head-font-weight: 500; + --f7-table-head-cell-height: 56px; + --f7-table-head-icon-size: 16px; + --f7-table-body-cell-height: 48px; + --f7-table-cell-padding-vertical: 0px; + --f7-table-cell-padding-horizontal: 28px; + --f7-table-edge-cell-padding-horizontal: 24px; + --f7-table-label-cell-padding-horizontal: 24px; + --f7-table-checkbox-cell-width: 18px; + --f7-table-title-font-size: 20px; + --f7-table-title-font-weight: 400; + --f7-table-card-header-height: 64px; + --f7-table-footer-height: 56px; + --f7-table-head-text-color: rgba(0, 0, 0, 0.54); + --f7-table-cell-border-color: rgba(0, 0, 0, 0.12); + --f7-table-actions-cell-link-color: rgba(0, 0, 0, 0.54); + --f7-table-selected-row-bg-color: #f5f5f5; + --f7-table-actions-link-color: rgba(0, 0, 0, 0.54); + --f7-table-footer-text-color: rgba(0, 0, 0, 0.54); + --f7-table-input-text-color: #212121; +} +.md .theme-dark, +.md.theme-dark { + --f7-table-head-text-color: rgba(255, 255, 255, 0.54); + --f7-table-footer-text-color: rgba(255, 255, 255, 0.54); + --f7-table-selected-row-bg-color: rgba(255, 255, 255, 0.05); + --f7-table-actions-cell-link-color: rgba(255, 255, 255, 0.54); + --f7-table-actions-link-color: rgba(255, 255, 255, 0.54); +} +.aurora { + --f7-table-link-icon-only-icon-size: 18px; + --f7-table-head-font-weight: 400; + --f7-table-head-cell-height: 32px; + --f7-table-head-icon-size: 18px; + --f7-table-body-cell-height: 32px; + --f7-table-cell-padding-vertical: 5px; + --f7-table-cell-padding-horizontal: 10px; + --f7-table-edge-cell-padding-horizontal: 16px; + --f7-table-label-cell-padding-horizontal: 16px; + --f7-table-checkbox-cell-width: 22px; + /* --f7-table-actions-cell-link-color: var(--f7-theme-color); */ + /* --f7-table-actions-link-color: var(--f7-theme-color); */ + --f7-table-title-font-size: 14px; + --f7-table-title-font-weight: 600; + --f7-table-card-header-height: 42px; + --f7-table-footer-height: 32px; + --f7-table-head-text-color: rgba(0, 0, 0, 0.6); + --f7-table-cell-border-color: rgba(0, 0, 0, 0.12); + --f7-table-selected-row-bg-color: rgba(0, 0, 0, 0.03); + --f7-table-footer-text-color: rgba(0, 0, 0, 0.5); + --f7-table-input-text-color: #000; +} +.aurora .theme-dark, +.aurora.theme-dark { + --f7-table-selected-row-bg-color: rgba(255, 255, 255, 0.03); + --f7-table-head-text-color: rgba(255, 255, 255, 0.54); + --f7-table-footer-text-color: rgba(255, 255, 255, 0.54); +} +.data-table { + overflow-x: auto; +} +.data-table table, +table.data-table { + width: 100%; + border: none; + padding: 0; + margin: 0; + border-collapse: collapse; + text-align: right; +} +.data-table thead th, +.data-table thead td { + font-size: var(--f7-table-head-font-size); + font-weight: var(--f7-table-head-font-weight); + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; + line-height: 16px; + height: var(--f7-table-head-cell-height); +} +.data-table thead th:not(.sortable-cell-active), +.data-table thead td:not(.sortable-cell-active) { + color: var(--f7-table-head-text-color); +} +.data-table thead i.icon, +.data-table thead i.f7-icons, +.data-table thead i.material-icons { + vertical-align: top; + font-size: var(--f7-table-head-icon-size); +} +.data-table tbody { + font-size: var(--f7-table-body-font-size); +} +.data-table tbody th, +.data-table tbody td { + height: var(--f7-table-body-cell-height); +} +.data-table tbody tr.data-table-row-selected, +.device-desktop .data-table tbody tr:hover { + background: var(--f7-table-selected-row-bg-color); +} +.data-table tbody td:before, +.data-table tbody th:before { + content: ''; + position: absolute; + background-color: var(--f7-table-cell-border-color); + display: block; + z-index: 15; + top: 0; + right: auto; + bottom: auto; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 0%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +.data-table th, +.data-table td { + --f7-table-cell-padding-left: var(--f7-table-cell-padding-horizontal); + --f7-table-cell-padding-right: var(--f7-table-cell-padding-horizontal); + padding-top: var(--f7-table-cell-padding-vertical); + padding-bottom: var(--f7-table-cell-padding-vertical); + padding-left: var(--f7-table-cell-padding-left); + padding-right: var(--f7-table-cell-padding-right); + position: relative; + box-sizing: border-box; +} +.data-table th:first-child, +.data-table td:first-child { + --f7-table-cell-padding-right: var(--f7-table-edge-cell-padding-horizontal); +} +.data-table th:last-child, +.data-table td:last-child { + --f7-table-cell-padding-left: var(--f7-table-edge-cell-padding-horizontal); +} +.data-table th.label-cell, +.data-table td.label-cell { + --f7-table-cell-padding-left: var(--f7-table-label-cell-padding-horizontal); + --f7-table-cell-padding-right: var(--f7-table-label-cell-padding-horizontal); +} +.data-table th.numeric-cell, +.data-table td.numeric-cell { + text-align: left; +} +.data-table th.checkbox-cell, +.data-table td.checkbox-cell { + overflow: visible; + width: var(--f7-table-checkbox-cell-width); +} +.data-table th.checkbox-cell label + span, +.data-table td.checkbox-cell label + span { + margin-right: 8px; +} +.data-table th.checkbox-cell:first-child, +.data-table td.checkbox-cell:first-child { + padding-left: calc(var(--f7-table-cell-padding-left) / 2); +} +.data-table th.checkbox-cell:first-child + td, +.data-table td.checkbox-cell:first-child + td, +.data-table th.checkbox-cell:first-child + th, +.data-table td.checkbox-cell:first-child + th { + padding-right: calc(var(--f7-table-cell-padding-right) / 2); +} +.data-table th.checkbox-cell:last-child, +.data-table td.checkbox-cell:last-child { + padding-right: calc(var(--f7-table-cell-padding-right) / 2); +} +.data-table th.actions-cell, +.data-table td.actions-cell { + text-align: left; + white-space: nowrap; +} +.data-table th.actions-cell a.link, +.data-table td.actions-cell a.link { + color: var(--f7-table-actions-cell-link-color, var(--f7-theme-color)); +} +.data-table th a.icon-only, +.data-table td a.icon-only, +.card .data-table th a.icon-only, +.card .data-table td a.icon-only, +.card.data-table th a.icon-only, +.card.data-table td a.icon-only { + display: inline-block; + vertical-align: middle; + text-align: center; + font-size: 0; + min-width: 0; +} +.data-table th a.icon-only i, +.data-table td a.icon-only i, +.card .data-table th a.icon-only i, +.card .data-table td a.icon-only i, +.card.data-table th a.icon-only i, +.card.data-table td a.icon-only i { + font-size: var(--f7-table-link-icon-only-icon-size); + vertical-align: middle; +} +.data-table .sortable-cell:not(.input-cell) { + cursor: pointer; + position: relative; +} +.data-table .sortable-cell.input-cell .table-head-label { + cursor: pointer; + position: relative; +} +.data-table .sortable-cell:not(.numeric-cell):not(.input-cell):after, +.data-table .sortable-cell.numeric-cell:not(.input-cell):before, +.data-table .sortable-cell:not(.numeric-cell).input-cell > .table-head-label:after, +.data-table .sortable-cell.numeric-cell.input-cell > .table-head-label:before { + content: 'arrow_bottom_md'; + font-family: 'framework7-core-icons'; + font-weight: normal; + font-style: normal; + line-height: 1; + letter-spacing: normal; + text-transform: none; + white-space: nowrap; + word-wrap: normal; + direction: ltr; + -webkit-font-smoothing: antialiased; + text-rendering: optimizeLegibility; + -moz-osx-font-smoothing: grayscale; + font-feature-settings: "liga"; + text-align: center; + display: block; + width: 100%; + height: 100%; + font-size: 20px; + display: inline-block; + vertical-align: top; + width: 16px; + height: 16px; + color: var(--f7-table-sortable-icon-color); + font-size: 13px; + line-height: 16px; + transition-duration: 300ms; + transform: rotate(0); + opacity: 0; +} +.device-desktop .data-table .sortable-cell:not(.sortable-cell-active):hover:after, +.device-desktop .data-table .sortable-cell:not(.sortable-cell-active) .table-head-label:hover:after, +.device-desktop .data-table .sortable-cell:not(.sortable-cell-active):hover:before, +.device-desktop .data-table .sortable-cell:not(.sortable-cell-active) .table-head-label:hover:before { + opacity: 0.54; +} +.data-table .sortable-cell.sortable-cell-active:after, +.data-table .sortable-cell.sortable-cell-active .table-head-label:after, +.data-table .sortable-cell.sortable-cell-active:before, +.data-table .sortable-cell.sortable-cell-active .table-head-label:before { + opacity: 0.87 !important; +} +.data-table .sortable-cell.sortable-desc:after, +.data-table .sortable-cell.sortable-desc:after, +.data-table .table-head-label:after, +.data-table .sortable-cell.sortable-desc:before, +.data-table .sortable-cell.sortable-desc:before, +.data-table .table-head-label:before { + transform: rotate(180deg) !important; +} +.data-table.card .card-header, +.card .data-table .card-header, +.data-table.card .card-footer, +.card .data-table .card-footer { + padding-left: var(--f7-table-edge-cell-padding-horizontal); + padding-right: var(--f7-table-edge-cell-padding-horizontal); +} +.data-table.card .card-header, +.card .data-table .card-header { + min-height: var(--f7-table-card-header-height); +} +.data-table.card .card-content, +.card .data-table .card-content { + overflow-x: auto; +} +.data-table.card .card-footer, +.card .data-table .card-footer { + min-height: var(--f7-table-footer-height); +} +.data-table .data-table-title { + font-size: var(--f7-table-title-font-size); + font-weight: var(--f7-table-title-font-weight); +} +.data-table .data-table-links, +.data-table .data-table-actions { + display: flex; +} +.data-table .data-table-links .button { + min-width: 64px; +} +.data-table .data-table-actions { + margin-right: auto; + align-items: center; +} +.data-table .data-table-actions a.link { + color: var(--f7-table-actions-link-color, var(--f7-theme-color)); + min-width: 0; +} +.data-table .data-table-actions a.link.icon-only { + line-height: 1; + justify-content: center; + padding: 0; +} +.data-table .data-table-header, +.data-table .data-table-header-selected { + display: flex; + justify-content: space-between; + align-items: center; + width: 100%; +} +.data-table .card-header > .data-table-header, +.data-table .card-header > .data-table-header-selected { + padding-top: var(--f7-card-header-padding-vertical); + padding-bottom: var(--f7-card-header-padding-vertical); + height: 100%; + padding-right: var(--f7-table-edge-cell-padding-horizontal); + padding-left: var(--f7-table-edge-cell-padding-horizontal); + margin-right: calc(-1 * var(--f7-table-edge-cell-padding-horizontal)); + margin-left: calc(-1 * var(--f7-table-edge-cell-padding-horizontal)); +} +.data-table .data-table-header-selected { + background: rgba(var(--f7-theme-color-rgb), 0.1); + display: none; +} +.data-table.data-table-has-checked .data-table-header { + display: none; +} +.data-table.data-table-has-checked .data-table-header-selected { + display: flex; +} +.data-table .data-table-title-selected { + font-size: 14px; + color: var(--f7-theme-color); +} +.data-table .data-table-footer { + display: flex; + align-items: center; + box-sizing: border-box; + position: relative; + font-size: var(--f7-table-footer-font-size); + overflow: hidden; + min-height: var(--f7-table-footer-height); + color: var(--f7-table-footer-text-color); + justify-content: flex-start; +} +.data-table .data-table-footer:before { + content: ''; + position: absolute; + background-color: var(--f7-table-cell-border-color); + display: block; + z-index: 15; + top: 0; + right: auto; + bottom: auto; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 0%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +.data-table .data-table-rows-select, +.data-table .data-table-pagination { + display: flex; + align-items: center; +} +.data-table .input-cell { + padding-top: 8px; + padding-bottom: 8px; + height: auto; + vertical-align: top; +} +.data-table .input-cell .table-head-label + .input { + margin-top: 4px; +} +.data-table .input-cell .input { + height: var(--f7-table-input-height); +} +.data-table .input-cell .input input, +.data-table .input-cell .input textarea, +.data-table .input-cell .input select { + height: var(--f7-table-input-height); + color: var(--f7-table-input-text-color); + font-size: var(--f7-table-input-font-size); +} +@media (max-width: 480px) and (orientation: portrait) { + .data-table.data-table-collapsible thead { + display: none; + } + .data-table.data-table-collapsible tbody, + .data-table.data-table-collapsible tr, + .data-table.data-table-collapsible td { + display: block; + } + .data-table.data-table-collapsible tr { + position: relative; + } + .data-table.data-table-collapsible tr:before { + content: ''; + position: absolute; + background-color: var(--f7-table-cell-border-color); + display: block; + z-index: 15; + top: 0; + right: auto; + bottom: auto; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 0%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); + } + .data-table.data-table-collapsible tr:hover { + background-color: inherit; + } + .data-table.data-table-collapsible td { + --f7-table-cell-padding-left: var(--f7-table-collapsible-cell-padding); + --f7-table-cell-padding-right: var(--f7-table-collapsible-cell-padding); + height: auto; + min-height: var(--f7-table-body-cell-height); + display: flex; + align-content: center; + align-items: center; + justify-content: flex-start; + text-align: right; + } + .data-table.data-table-collapsible td:before { + display: none !important; + } + .data-table.data-table-collapsible td:not(.checkbox-cell):before { + width: 40%; + display: block !important; + content: attr(data-collapsible-title); + position: relative; + height: auto; + background: none !important; + transform: none !important; + font-size: var(--f7-table-head-font-size); + font-weight: var(--f7-table-head-font-weight); + color: var(--f7-table-head-text-color); + margin-left: 16px; + flex-shrink: 0; + } + .data-table.data-table-collapsible td.checkbox-cell { + position: absolute; + top: 0; + right: 0; + } + .data-table.data-table-collapsible td.checkbox-cell + td { + padding-right: 16px; + } + .data-table.data-table-collapsible td.checkbox-cell ~ td { + margin-right: 32px; + } +} +.data-table .xsmall-only, +.data-table .xsmall-landscape-only { + display: none; +} +@media (min-width: 480px) { + .data-table .xsmall-only { + display: table-cell; + } +} +@media (min-width: 480px) and (orientation: landscape) { + .data-table .xsmall-landscape-only { + display: table-cell; + } +} +.data-table .small-only, +.data-table .small-landscape-only { + display: none; +} +@media (min-width: 568px) { + .data-table .small-only { + display: table-cell; + } +} +@media (min-width: 568px) and (orientation: landscape) { + .data-table .small-landscape-only { + display: table-cell; + } +} +.data-table .medium-only, +.data-table .medium-landscape-only { + display: none; +} +@media (min-width: 768px) { + .data-table .medium-only { + display: table-cell; + } +} +@media (min-width: 768px) and (orientation: landscape) { + .data-table .medium-landscape-only { + display: table-cell; + } +} +.data-table .large-only, +.data-table .large-landscape-only { + display: none; +} +@media (min-width: 1024px) { + .data-table .large-only { + display: table-cell; + } +} +@media (min-width: 1024px) and (orientation: landscape) { + .data-table .large-landscape-only { + display: table-cell; + } +} +.data-table .xlarge-only, +.data-table .xlarge-landscape-only { + display: none; +} +@media (min-width: 1200px) { + .data-table .xlarge-only { + display: table-cell; + } +} +@media (min-width: 1200px) and (orientation: landscape) { + .data-table .xlarge-landscape-only { + display: table-cell; + } +} +.ios .data-table th.actions-cell a.link + a.link, +.ios .data-table td.actions-cell a.link + a.link { + margin-right: 16px; +} +.ios .sortable-cell:not(.numeric-cell):after { + margin-right: 5px; +} +.ios .sortable-cell.numeric-cell:before { + margin-left: 5px; +} +.ios .data-table-links a.link + a.link, +.ios .data-table-actions a.link + a.link, +.ios .data-table-links .button + .button, +.ios .data-table-actions .button + .button { + margin-right: 16px; +} +.ios .data-table-actions a.link.icon-only { + width: 44px; + height: 44px; +} +.ios .data-table-rows-select a.link, +.ios .data-table-pagination a.link { + width: 44px; + height: 44px; +} +.ios .data-table-rows-select + .data-table-pagination { + margin-right: 30px; +} +.ios .data-table-rows-select .input { + margin-right: 20px; +} +.ios .data-table-pagination-label { + margin-left: 16px; +} +.md .data-table th.actions-cell a.link + a.link, +.md .data-table td.actions-cell a.link + a.link { + margin-right: 24px; +} +.md .data-table th.actions-cell a.icon-only, +.md .data-table td.actions-cell a.icon-only { + width: 24px; + height: 24px; + line-height: 24px; +} +.md .sortable-cell:not(.numeric-cell):after { + margin-right: 8px; +} +.md .sortable-cell.numeric-cell:before { + margin-left: 8px; +} +.md .data-table-links a.link + a.link, +.md .data-table-actions a.link + a.link, +.md .data-table-links .button + .button, +.md .data-table-actions .button + .button { + margin-right: 24px; +} +.md .data-table-actions a.link.icon-only { + width: 24px; + height: 24px; + overflow: visible; +} +.md .data-table-actions a.link.icon-only.active-state { + background: none; +} +.md .data-table-rows-select a.link, +.md .data-table-pagination a.link { + width: 48px; + height: 48px; +} +.md .data-table-rows-select a.link:before, +.md .data-table-pagination a.link:before { + content: ''; + width: 152%; + height: 152%; + position: absolute; + left: -26%; + top: -26%; + background-image: radial-gradient(circle at center, var(--f7-link-highlight-color) 66%, rgba(255, 255, 255, 0) 66%); + background-repeat: no-repeat; + background-position: center; + background-size: 100% 100%; + opacity: 0; + pointer-events: none; + transition-duration: 600ms; +} +.md .data-table-rows-select a.link.active-state:before, +.md .data-table-pagination a.link.active-state:before { + opacity: 1; + transition-duration: 150ms; +} +.md .data-table-rows-select + .data-table-pagination { + margin-right: 32px; +} +.md .data-table-rows-select .input { + margin-right: 24px; +} +.md .data-table-pagination-label { + margin-left: 20px; +} +.md .input-cell .input-clear-button { + transform: scale(0.8); +} +.aurora .data-table th.actions-cell a.link + a.link, +.aurora .data-table td.actions-cell a.link + a.link { + margin-right: 10px; +} +.aurora .sortable-cell:not(.numeric-cell):after { + margin-right: 5px; +} +.aurora .sortable-cell.numeric-cell:before { + margin-left: 5px; +} +.aurora .data-table-links a.link + a.link, +.aurora .data-table-actions a.link + a.link, +.aurora .data-table-links .button + .button, +.aurora .data-table-actions .button + .button { + margin-right: 10px; +} +.aurora .data-table-rows-select a.link, +.aurora .data-table-pagination a.link { + width: 32px; + height: 32px; +} +.aurora .data-table-rows-select + .data-table-pagination { + margin-right: 16px; +} +.aurora .data-table-rows-select .input { + margin-right: 10px; +} +.aurora .data-table-pagination-label { + margin-left: 10px; +} +/* === FAB === */ +:root { + --f7-fab-margin: 16px; + --f7-fab-text-color: #fff; + --f7-fab-extended-text-font-size: 14px; + --f7-fab-extended-text-padding: 0 20px; + --f7-fab-label-bg-color: #fff; + --f7-fab-label-text-color: #333; + --f7-fab-label-border-radius: 4px; + --f7-fab-label-padding: 4px 12px; + --f7-fab-button-size: 40px; + /* --f7-fab-pressed-bg-color: var(--f7-theme-color-shade); */ +} +.ios { + --f7-fab-size: 50px; + --f7-fab-box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.4); + --f7-fab-extended-size: 50px; + --f7-fab-extended-text-font-weight: 600; + --f7-fab-extended-text-letter-spacing: 0; + --f7-fab-label-box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.4); + --f7-fab-label-font-size: inherit; +} +.md { + --f7-fab-size: 56px; + --f7-fab-box-shadow: var(--f7-elevation-6); + --f7-fab-extended-size: 48px; + --f7-fab-extended-text-font-weight: 500; + --f7-fab-extended-text-letter-spacing: 0.03em; + --f7-fab-label-box-shadow: var(--f7-elevation-3); + --f7-fab-label-font-size: inherit; +} +.aurora { + --f7-fab-size: 40px; + --f7-fab-box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.4); + --f7-fab-extended-size: 38px; + --f7-fab-extended-text-font-weight: 500; + --f7-fab-extended-text-letter-spacing: 0; + --f7-fab-label-box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.4); + --f7-fab-label-font-size: 12px; +} +.fab-backdrop { + z-index: 1400; +} +.fab { + position: absolute; + z-index: 1500; +} +.fab a { + --f7-touch-ripple-color: var(--f7-touch-ripple-white); +} +.fab-left-top, +.fab-left-center, +.fab-left-bottom { + left: calc(var(--f7-fab-margin) + var(--f7-safe-area-left)); +} +.fab-right-top, +.fab-right-center, +.fab-right-bottom { + right: calc(var(--f7-fab-margin) + var(--f7-safe-area-right)); +} +.fab-left-top, +.fab-center-top, +.fab-right-top { + top: var(--f7-fab-margin); +} +.fab-left-bottom, +.fab-center-bottom, +.fab-right-bottom { + bottom: calc(var(--f7-fab-margin) + var(--f7-safe-area-bottom)); +} +.fab-center-top, +.fab-center-center, +.fab-center-bottom { + left: 50%; + transform: translateX(-50%); +} +.fab-left-center, +.fab-center-center, +.fab-right-center { + top: 50%; + transform: translateY(-50%); +} +.fab-center-center { + top: 50%; + left: 50%; + transform: translateX(-50%) translateY(-50%); +} +.fab > a, +.fab-buttons a { + background-color: var(--f7-fab-bg-color, var(--f7-theme-color)); + width: var(--f7-fab-size); + height: var(--f7-fab-size); + box-shadow: var(--f7-fab-box-shadow); + border-radius: calc(var(--f7-fab-size) / 2); + position: relative; + transition-duration: 300ms; + display: flex; + align-items: center; + justify-content: center; + overflow: hidden; + z-index: 1; + color: var(--f7-fab-text-color); +} +.fab > a.active-state, +.fab-buttons a.active-state { + background-color: var(--f7-fab-pressed-bg-color, var(--f7-theme-color-shade)); +} +.fab > a i { + position: absolute; + left: 50%; + top: 50%; + transform: translate3d(-50%, -50%, 0) rotate(0deg) scale(1); + transition: 300ms; +} +.fab > a i + i { + transform: translate3d(-50%, -50%, 0) rotate(-90deg) scale(0.5); + opacity: 0; +} +.fab-buttons a { + border-radius: calc(var(--f7-fab-button-size) / 2); + width: var(--f7-fab-button-size); + height: var(--f7-fab-button-size); +} +.fab-buttons { + display: flex; + visibility: hidden; + pointer-events: none; + position: absolute; +} +.fab-buttons a { + opacity: 0; +} +.fab-opened:not(.fab-morph) > a i { + transform: translate3d(-50%, -50%, 0) rotate(90deg) scale(0.5); + opacity: 0; +} +.fab-opened:not(.fab-morph) > a i + i { + transform: translate3d(-50%, -50%, 0) rotate(0deg) scale(1); + opacity: 1; +} +.fab-opened .fab-buttons { + visibility: visible; + pointer-events: auto; +} +.fab-opened .fab-buttons a { + opacity: 1; + transform: translate3d(0, 0px, 0) scale(1) !important; +} +.fab-opened .fab-buttons a:nth-child(2) { + transition-delay: 50ms; +} +.fab-opened .fab-buttons a:nth-child(3) { + transition-delay: 100ms; +} +.fab-opened .fab-buttons a:nth-child(4) { + transition-delay: 150ms; +} +.fab-opened .fab-buttons a:nth-child(5) { + transition-delay: 200ms; +} +.fab-opened .fab-buttons a:nth-child(6) { + transition-delay: 250ms; +} +.fab-buttons-top, +.fab-buttons-bottom { + left: 50%; + width: var(--f7-fab-button-size); + margin-left: calc(-1 * var(--f7-fab-button-size) / 2); +} +.fab-buttons-top { + bottom: 100%; + margin-bottom: 16px; + flex-direction: column-reverse; +} +.fab-buttons-top a { + transform: translate3d(0, 8px, 0) scale(0.3); + transform-origin: center bottom; +} +.fab-buttons-top a + a { + margin-bottom: 16px; +} +.fab-buttons-bottom { + top: 100%; + margin-top: 16px; + flex-direction: column; +} +.fab-buttons-bottom a { + transform: translate3d(0, -8px, 0) scale(0.3); + transform-origin: center top; +} +.fab-buttons-bottom a + a { + margin-top: 16px; +} +.fab-buttons-left, +.fab-buttons-right { + top: 50%; + height: var(--f7-fab-button-size); + margin-top: calc(-1 * var(--f7-fab-button-size) / 2); +} +.fab-buttons-left { + right: 100%; + margin-right: 16px; +} +.fab-buttons-left a { + transform: translate3d(8px, 0px, 0) scale(0.3); + transform-origin: right center; +} +.fab-buttons-left a + a { + margin-right: 16px; +} +.fab-buttons-right { + left: 100%; + margin-left: 16px; + flex-direction: row-reverse; +} +.fab-buttons-right a { + transform: translate3d(-8px, 0, 0) scale(0.3); + transform-origin: left center; +} +.fab-buttons-right a + a { + margin-left: 16px; +} +.fab-buttons-center { + left: 0%; + top: 0%; + width: 100%; + height: 100%; +} +.fab-buttons-center a { + position: absolute; +} +.fab-buttons-center a:nth-child(1) { + left: 50%; + margin-left: calc(-1 * var(--f7-fab-button-size) / 2); + bottom: 100%; + margin-bottom: 16px; + transform: translateY(-8px) scale(0.3); + transform-origin: center bottom; +} +.fab-buttons-center a:nth-child(2) { + left: 100%; + margin-top: calc(-1 * var(--f7-fab-button-size) / 2); + top: 50%; + margin-left: 16px; + transform: translateX(-8px) scale(0.3); + transform-origin: left center; +} +.fab-buttons-center a:nth-child(3) { + left: 50%; + margin-left: calc(-1 * var(--f7-fab-button-size) / 2); + top: 100%; + margin-top: 16px; + transform: translateY(8px) scale(0.3); + transform-origin: center top; +} +.fab-buttons-center a:nth-child(4) { + right: 100%; + margin-top: calc(-1 * var(--f7-fab-button-size) / 2); + top: 50%; + margin-right: 16px; + transform: translateX(8px) scale(0.3); + transform-origin: right center; +} +.fab-morph { + border-radius: calc(var(--f7-fab-size) / 2); + background: var(--f7-fab-bg-color, var(--f7-theme-color)); + box-shadow: var(--f7-fab-box-shadow); +} +.fab-morph > a { + box-shadow: none; + background: none !important; +} +.fab-opened.fab-morph > a i { + opacity: 0; +} +.fab-morph, +.fab-morph > a, +.fab-morph-target { + transition-duration: 250ms; +} +.fab-morph-target:not(.fab-morph-target-visible) { + display: none; +} +.fab-extended { + width: auto; + min-width: var(--f7-fab-extended-size); +} +.fab-extended > a { + width: 100%; + height: var(--f7-fab-extended-size); +} +.fab-extended > a i { + left: calc(var(--f7-fab-extended-size) / 2); +} +.fab-extended i ~ .fab-text { + padding-left: var(--f7-fab-extended-size); +} +.fab-extended > a { + width: 100% !important; +} +.fab-text { + box-sizing: border-box; + font-size: var(--f7-fab-extended-text-font-size); + padding: var(--f7-fab-extended-text-padding); + font-weight: var(--f7-fab-extended-text-font-weight); + letter-spacing: var(--f7-fab-extended-text-letter-spacing); + text-transform: uppercase; +} +.fab-label-button { + overflow: visible !important; +} +.fab-label { + position: absolute; + top: 50%; + padding: var(--f7-fab-label-padding); + border-radius: var(--f7-fab-label-border-radius); + background: var(--f7-fab-label-bg-color); + color: var(--f7-fab-label-text-color); + box-shadow: var(--f7-fab-label-box-shadow); + white-space: nowrap; + transform: translateY(-50%); + pointer-events: none; + font-size: var(--f7-fab-label-font-size); +} +.fab-right-top .fab-label, +.fab-right-center .fab-label, +.fab-right-bottom .fab-label { + right: 100%; + margin-right: 8px; +} +.fab-left-top .fab-label, +.fab-left-center .fab-label, +.fab-left-bottom .fab-label { + left: 100%; + margin-left: 8px; +} +.navbar ~ * .fab-left-top, +.navbar ~ * .fab-center-top, +.navbar ~ * .fab-right-top, +.navbar ~ .fab-left-top, +.navbar ~ .fab-center-top, +.navbar ~ .fab-right-top, +.navbars ~ * .fab-left-top, +.navbars ~ * .fab-center-top, +.navbars ~ * .fab-right-top, +.navbars ~ .fab-left-top, +.navbars ~ .fab-center-top, +.navbars ~ .fab-right-top { + margin-top: calc(var(--f7-navbar-height) + var(--f7-safe-area-top)); +} +.toolbar-top ~ * .fab-left-top, +.toolbar-top ~ * .fab-center-top, +.toolbar-top ~ * .fab-right-top, +.toolbar-top ~ .fab-left-top, +.toolbar-top ~ .fab-center-top, +.toolbar-top ~ .fab-right-top, +.ios .toolbar-top-ios ~ * .fab-left-top, +.ios .toolbar-top-ios ~ * .fab-center-top, +.ios .toolbar-top-ios ~ * .fab-right-top, +.ios .toolbar-top-ios ~ .fab-left-top, +.ios .toolbar-top-ios ~ .fab-center-top, +.ios .toolbar-top-ios ~ .fab-right-top, +.md .toolbar-top-md ~ * .fab-left-top, +.md .toolbar-top-md ~ * .fab-center-top, +.md .toolbar-top-md ~ * .fab-right-top, +.md .toolbar-top-md ~ .fab-left-top, +.md .toolbar-top-md ~ .fab-center-top, +.md .toolbar-top-md ~ .fab-right-top { + margin-top: var(--f7-toolbar-height); +} +.toolbar-bottom ~ * .fab-left-bottom, +.toolbar-bottom ~ * .fab-center-bottom, +.toolbar-bottom ~ * .fab-right-bottom, +.toolbar-bottom ~ .fab-left-bottom, +.toolbar-bottom ~ .fab-center-bottom, +.toolbar-bottom ~ .fab-right-bottom, +.ios .toolbar-bottom-ios ~ * .fab-left-bottom, +.ios .toolbar-bottom-ios ~ * .fab-center-bottom, +.ios .toolbar-bottom-ios ~ * .fab-right-bottom, +.ios .toolbar-bottom-ios ~ .fab-left-bottom, +.ios .toolbar-bottom-ios ~ .fab-center-bottom, +.ios .toolbar-bottom-ios ~ .fab-right-bottom, +.md .toolbar-bottom-md ~ * .fab-left-bottom, +.md .toolbar-bottom-md ~ * .fab-center-bottom, +.md .toolbar-bottom-md ~ * .fab-right-bottom, +.md .toolbar-bottom-md ~ .fab-left-bottom, +.md .toolbar-bottom-md ~ .fab-center-bottom, +.md .toolbar-bottom-md ~ .fab-right-bottom { + margin-bottom: var(--f7-toolbar-height); +} +.tabbar-labels.toolbar-bottom ~ * .fab-left-bottom, +.tabbar-labels.toolbar-bottom ~ * .fab-center-bottom, +.tabbar-labels.toolbar-bottom ~ * .fab-right-bottom, +.tabbar-labels.toolbar-bottom ~ .fab-left-bottom, +.tabbar-labels.toolbar-bottom ~ .fab-center-bottom, +.tabbar-labels.toolbar-bottom ~ .fab-right-bottom, +.ios .tabbar-labels.toolbar-bottom-ios ~ * .fab-left-bottom, +.ios .tabbar-labels.toolbar-bottom-ios ~ * .fab-center-bottom, +.ios .tabbar-labels.toolbar-bottom-ios ~ * .fab-right-bottom, +.ios .tabbar-labels.toolbar-bottom-ios ~ .fab-left-bottom, +.ios .tabbar-labels.toolbar-bottom-ios ~ .fab-center-bottom, +.ios .tabbar-labels.toolbar-bottom-ios ~ .fab-right-bottom, +.md .tabbar-labels.toolbar-bottom-md ~ * .fab-left-bottom, +.md .tabbar-labels.toolbar-bottom-md ~ * .fab-center-bottom, +.md .tabbar-labels.toolbar-bottom-md ~ * .fab-right-bottom, +.md .tabbar-labels.toolbar-bottom-md ~ .fab-left-bottom, +.md .tabbar-labels.toolbar-bottom-md ~ .fab-center-bottom, +.md .tabbar-labels.toolbar-bottom-md ~ .fab-right-bottom { + margin-bottom: var(--f7-tabbar-labels-height); +} +.tabbar-labels.toolbar-top ~ * .fab-left-bottom, +.tabbar-labels.toolbar-top ~ * .fab-center-bottom, +.tabbar-labels.toolbar-top ~ * .fab-right-bottom, +.tabbar-labels.toolbar-top ~ .fab-left-bottom, +.tabbar-labels.toolbar-top ~ .fab-center-bottom, +.tabbar-labels.toolbar-top ~ .fab-right-bottom, +.ios .tabbar-labels.toolbar-top-ios ~ * .fab-left-bottom, +.ios .tabbar-labels.toolbar-top-ios ~ * .fab-center-bottom, +.ios .tabbar-labels.toolbar-top-ios ~ * .fab-right-bottom, +.ios .tabbar-labels.toolbar-top-ios ~ .fab-left-bottom, +.ios .tabbar-labels.toolbar-top-ios ~ .fab-center-bottom, +.ios .tabbar-labels.toolbar-top-ios ~ .fab-right-bottom, +.md .tabbar-labels.toolbar-top-md ~ * .fab-left-bottom, +.md .tabbar-labels.toolbar-top-md ~ * .fab-center-bottom, +.md .tabbar-labels.toolbar-top-md ~ * .fab-right-bottom, +.md .tabbar-labels.toolbar-top-md ~ .fab-left-bottom, +.md .tabbar-labels.toolbar-top-md ~ .fab-center-bottom, +.md .tabbar-labels.toolbar-top-md ~ .fab-right-bottom { + margin-top: var(--f7-tabbar-labels-height); +} +.messagebar ~ * .fab-left-bottom, +.messagebar ~ * .fab-center-bottom, +.messagebar ~ * .fab-right-bottom, +.messagebar ~ .fab-left-bottom, +.messagebar ~ .fab-center-bottom, +.messagebar ~ .fab-right-bottom { + margin-bottom: var(--f7-messagebar-height); +} +.navbar + .toolbar-top ~ * .fab-left-top, +.ios .navbar + .toolbar-top-ios ~ * .fab-left-top, +.md .navbar + .toolbar-top-ios ~ * .fab-left-top, +.navbar + .toolbar-top ~ * .fab-center-top, +.ios .navbar + .toolbar-top-ios ~ * .fab-center-top, +.md .navbar + .toolbar-top-ios ~ * .fab-center-top, +.navbar + .toolbar-top ~ * .fab-right-top, +.ios .navbar + .toolbar-top-ios ~ * .fab-right-top, +.md .navbar + .toolbar-top-ios ~ * .fab-right-top, +.navbar + .toolbar-top ~ .fab-left-top, +.ios .navbar + .toolbar-top-ios ~ .fab-left-top, +.md .navbar + .toolbar-top-ios ~ .fab-left-top, +.navbar + .toolbar-top ~ .fab-center-top, +.ios .navbar + .toolbar-top-ios ~ .fab-center-top, +.md .navbar + .toolbar-top-ios ~ .fab-center-top, +.navbar + .toolbar-top ~ .fab-right-top, +.ios .navbar + .toolbar-top-ios ~ .fab-right-top, +.md .navbar + .toolbar-top-ios ~ .fab-right-top { + margin-top: calc(var(--f7-toolbar-height) + var(--f7-navbar-height) + var(--f7-safe-area-top)); +} +.navbar + .toolbar-top.tabbar-labels ~ * .fab-left-top, +.ios .navbar + .toolbar-top-ios.tabbar-labels ~ * .fab-left-top, +.md .navbar + .toolbar-top-ios.tabbar-labels ~ * .fab-left-top, +.navbar + .toolbar-top.tabbar-labels ~ * .fab-center-top, +.ios .navbar + .toolbar-top-ios.tabbar-labels ~ * .fab-center-top, +.md .navbar + .toolbar-top-ios.tabbar-labels ~ * .fab-center-top, +.navbar + .toolbar-top.tabbar-labels ~ * .fab-right-top, +.ios .navbar + .toolbar-top-ios.tabbar-labels ~ * .fab-right-top, +.md .navbar + .toolbar-top-ios.tabbar-labels ~ * .fab-right-top, +.navbar + .toolbar-top.tabbar-labels ~ .fab-left-top, +.ios .navbar + .toolbar-top-ios.tabbar-labels ~ .fab-left-top, +.md .navbar + .toolbar-top-ios.tabbar-labels ~ .fab-left-top, +.navbar + .toolbar-top.tabbar-labels ~ .fab-center-top, +.ios .navbar + .toolbar-top-ios.tabbar-labels ~ .fab-center-top, +.md .navbar + .toolbar-top-ios.tabbar-labels ~ .fab-center-top, +.navbar + .toolbar-top.tabbar-labels ~ .fab-right-top, +.ios .navbar + .toolbar-top-ios.tabbar-labels ~ .fab-right-top, +.md .navbar + .toolbar-top-ios.tabbar-labels ~ .fab-right-top { + margin-top: calc(var(--f7-tabbar-labels-height) + var(--f7-navbar-height) + var(--f7-safe-area-top)); +} +.navbars + .toolbar-top ~ * .fab-left-top, +.ios .navbars + .toolbar-top-ios ~ * .fab-left-top, +.navbars + .toolbar-top ~ * .fab-center-top, +.ios .navbars + .toolbar-top-ios ~ * .fab-center-top, +.navbars + .toolbar-top ~ * .fab-right-top, +.ios .navbars + .toolbar-top-ios ~ * .fab-right-top, +.navbars + .toolbar-top ~ .fab-left-top, +.ios .navbars + .toolbar-top-ios ~ .fab-left-top, +.navbars + .toolbar-top ~ .fab-center-top, +.ios .navbars + .toolbar-top-ios ~ .fab-center-top, +.navbars + .toolbar-top ~ .fab-right-top, +.ios .navbars + .toolbar-top-ios ~ .fab-right-top { + margin-top: calc(var(--f7-toolbar-height) + var(--f7-navbar-height) + var(--f7-safe-area-top)); +} +.navbars + .toolbar-top.tabbar-labels ~ * .fab-left-top, +.ios .navbars + .toolbar-top-ios.tabbar-labels ~ * .fab-left-top, +.navbars + .toolbar-top.tabbar-labels ~ * .fab-center-top, +.ios .navbars + .toolbar-top-ios.tabbar-labels ~ * .fab-center-top, +.navbars + .toolbar-top.tabbar-labels ~ * .fab-right-top, +.ios .navbars + .toolbar-top-ios.tabbar-labels ~ * .fab-right-top, +.navbars + .toolbar-top.tabbar-labels ~ .fab-left-top, +.ios .navbars + .toolbar-top-ios.tabbar-labels ~ .fab-left-top, +.navbars + .toolbar-top.tabbar-labels ~ .fab-center-top, +.ios .navbars + .toolbar-top-ios.tabbar-labels ~ .fab-center-top, +.navbars + .toolbar-top.tabbar-labels ~ .fab-right-top, +.ios .navbars + .toolbar-top-ios.tabbar-labels ~ .fab-right-top { + margin-top: calc(var(--f7-tabbar-labels-height) + var(--f7-navbar-height) + var(--f7-safe-area-top)); +} +.ios .fab > a.active-state, +.ios .fab-buttons a.active-state { + transition-duration: 0ms; +} +/* === Searchbar === */ +:root { + /* + --f7-searchbar-link-color: var(--f7-bars-link-color); + --f7-searchbar-inline-input-font-size: var(--f7-searchbar-input-font-size); + --f7-searchbar-inline-input-height: var(--f7-searchbar-input-height); + */ + --f7-searchbar-input-border-width: 0px; + --f7-searchbar-input-border-color: transparent; + --f7-searchbar-input-text-color: #000; + --f7-searchbar-placeholder-color: rgba(0, 0, 0, 0.4); +} +:root .theme-dark, +:root.theme-dark { + --f7-searchbar-input-text-color: #fff; + --f7-searchbar-placeholder-color: rgba(255, 255, 255, 0.4); +} +.ios { + /* + --f7-searchbar-bg-image: var(--f7-bars-bg-image); + --f7-searchbar-bg-color: var(--f7-bars-bg-color); + --f7-searchbar-bg-color-rgb: var(--f7-bars-bg-color-rgb); + --f7-searchbar-border-color: var(--f7-bars-border-color); + */ + --f7-searchbar-height: 44px; + --f7-searchbar-inner-padding-left: 8px; + --f7-searchbar-inner-padding-right: 8px; + /* + --f7-searchbar-link-color: var(--f7-bars-link-color, var(--f7-theme-color)); + */ + --f7-searchbar-input-font-size: 17px; + --f7-searchbar-input-border-radius: 8px; + --f7-searchbar-input-height: 32px; + --f7-searchbar-input-padding-horizontal: 28px; + /* + --f7-searchbar-inline-input-padding-horizontal: var(--f7-searchbar-input-padding-horizontal); + --f7-searchbar-input-clear-button-color: var(--f7-input-clear-button-color); + */ + --f7-searchbar-backdrop-bg-color: rgba(0, 0, 0, 0.4); + --f7-searchbar-shadow-image: none; + --f7-searchbar-in-page-content-margin: 0px; + --f7-searchbar-in-page-content-box-shadow: none; + --f7-searchbar-in-page-content-border-radius: 0; + --f7-searchbar-in-page-content-input-border-radius: 0; + --f7-searchbar-search-icon-color: rgba(0, 0, 0, 0.4); + --f7-searchbar-input-bg-color: #e4e4e4; +} +.ios .theme-dark, +.ios.theme-dark { + --f7-searchbar-search-icon-color: rgba(255, 255, 255, 0.4); + --f7-searchbar-input-bg-color: #2a2a2a; +} +.md { + --f7-searchbar-border-color: transparent; + --f7-searchbar-height: 48px; + --f7-searchbar-inner-padding-left: 0px; + --f7-searchbar-inner-padding-right: 0px; + --f7-searchbar-link-color: #737373; + --f7-searchbar-search-icon-color: #737373; + --f7-searchbar-input-font-size: 20px; + --f7-searchbar-input-border-radius: 0px; + --f7-searchbar-input-height: 100%; + --f7-searchbar-input-padding-horizontal: 48px; + --f7-searchbar-inline-input-padding-horizontal: 24px; + --f7-searchbar-input-clear-button-color: #737373; + --f7-searchbar-backdrop-bg-color: rgba(0, 0, 0, 0.25); + --f7-searchbar-shadow-image: var(--f7-bars-shadow-bottom-image); + --f7-searchbar-in-page-content-margin: 8px; + --f7-searchbar-in-page-content-box-shadow: var(--f7-elevation-1); + --f7-searchbar-in-page-content-border-radius: 4px; + --f7-searchbar-in-page-content-input-border-radius: 4px; + --f7-searchbar-bg-color: #fff; + --f7-searchbar-input-bg-color: #fff; +} +.md .theme-dark, +.md.theme-dark { + --f7-searchbar-bg-color: #202020; + --f7-searchbar-input-bg-color: #202020; +} +.aurora { + /* + --f7-searchbar-bg-image: var(--f7-bars-bg-image); + --f7-searchbar-bg-color: var(--f7-bars-bg-color); + --f7-searchbar-border-color: var(--f7-bars-border-color); + */ + --f7-searchbar-height: 38px; + --f7-searchbar-inner-padding-left: 8px; + --f7-searchbar-inner-padding-right: 8px; + /* + --f7-searchbar-link-color: var(--f7-bars-link-color, var(--f7-theme-color)); + */ + --f7-searchbar-input-font-size: 13px; + --f7-searchbar-input-border-radius: 4px; + --f7-searchbar-input-height: 24px; + --f7-searchbar-input-padding-horizontal: 24px; + /* + --f7-searchbar-inline-input-padding-horizontal: var(--f7-searchbar-input-padding-horizontal; + --f7-searchbar-input-clear-button-color: var(--f7-input-clear-button-color); + */ + --f7-searchbar-backdrop-bg-color: rgba(0, 0, 0, 0.4); + --f7-searchbar-shadow-image: none; + --f7-searchbar-in-page-content-margin: 0px; + --f7-searchbar-in-page-content-box-shadow: none; + --f7-searchbar-in-page-content-border-radius: 0; + /* + --f7-searchbar-in-page-content-input-border-radius: var(--f7-searchbar-input-border-radius); + */ + --f7-searchbar-search-icon-color: rgba(0, 0, 0, 0.4); + --f7-searchbar-input-bg-color: #fff; +} +.aurora .theme-dark, +.aurora.theme-dark { + --f7-searchbar-input-bg-color: #333; + --f7-searchbar-search-icon-color: rgba(255, 255, 255, 0.4); +} +.searchbar { + width: 100%; + position: relative; + z-index: 200; + height: var(--f7-searchbar-height); + background-image: var(--f7-searchbar-bg-image, var(--f7-bars-bg-image)); + background-color: var(--f7-searchbar-bg-color, var(--f7-bars-bg-color)); +} +@supports ((-webkit-backdrop-filter: blur(20px)) or (backdrop-filter: blur(20px))) { + .ios-translucent-bars .searchbar { + background-color: rgba(var(--f7-searchbar-bg-color-rgb, var(--f7-bars-bg-color-rgb)), var(--f7-bars-translucent-opacity)); + -webkit-backdrop-filter: saturate(180%) blur(var(--f7-bars-translucent-blur)); + backdrop-filter: saturate(180%) blur(var(--f7-bars-translucent-blur)); + } +} +.ios .subnavbar .searchbar { + background-color: transparent; + -webkit-backdrop-filter: none; + backdrop-filter: none; +} +.ios .subnavbar .searchbar:after { + display: none !important; +} +.searchbar.no-hairline:after, +.searchbar.no-border:after { + display: none !important; +} +.searchbar.no-shadow:before { + display: none !important; +} +.searchbar:after { + content: ''; + position: absolute; + background-color: var(--f7-searchbar-border-color, var(--f7-bars-border-color)); + display: block; + z-index: 15; + top: auto; + right: auto; + bottom: 0; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 100%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +.page > .searchbar:not(.searchbar-inline) { + z-index: 600; +} +.page > .searchbar:not(.searchbar-inline):before { + content: ''; + position: absolute; + right: 0; + width: 100%; + top: 100%; + bottom: auto; + height: 8px; + pointer-events: none; + background: var(--f7-searchbar-shadow-image); +} +.searchbar input[type="text"], +.searchbar input[type="search"] { + box-sizing: border-box; + width: 100%; + height: 100%; + display: block; + border: var(--f7-searchbar-input-border-width) solid var(--f7-searchbar-input-border-color); + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + font-family: inherit; + font-weight: normal; + color: var(--f7-searchbar-input-text-color); + font-size: var(--f7-searchbar-input-font-size); + background-color: var(--f7-searchbar-input-bg-color); + border-radius: var(--f7-searchbar-input-border-radius); + position: relative; + padding: 0; + padding-left: calc(var(--f7-searchbar-input-padding-horizontal) + var(--f7-searchbar-input-extra-padding-right, 0px)); + padding-right: calc(var(--f7-searchbar-input-padding-horizontal) + var(--f7-searchbar-input-extra-padding-left, 0px)); +} +.searchbar input[type="text"]::-webkit-input-placeholder, .searchbar input[type="search"]::-webkit-input-placeholder { + color: var(--f7-searchbar-placeholder-color); + opacity: 1; +} +.searchbar input[type="text"]::placeholder, +.searchbar input[type="search"]::placeholder { + color: var(--f7-searchbar-placeholder-color); + opacity: 1; +} +.searchbar input::-webkit-search-cancel-button { + -webkit-appearance: none; + appearance: none; +} +.searchbar .searchbar-input-wrap { + flex-shrink: 1; + width: 100%; + height: var(--f7-searchbar-input-height); + position: relative; +} +.searchbar a { + color: var(--f7-searchbar-link-color, var(--f7-bars-link-color, var(--f7-theme-color))); +} +.page > .searchbar:not(.searchbar-inline) { + position: absolute; + left: 0; + top: 0; +} +.page-content .searchbar:not(.searchbar-inline) { + border-radius: var(--f7-searchbar-in-page-content-border-radius); + margin: var(--f7-searchbar-in-page-content-margin); + width: auto; + box-shadow: var(--f7-searchbar-in-page-content-box-shadow); +} +.page-content .searchbar:not(.searchbar-inline) .searchbar-inner, +.page-content .searchbar:not(.searchbar-inline) input[type="text"], +.page-content .searchbar:not(.searchbar-inline) input[type="search"] { + border-radius: var(--f7-searchbar-in-page-content-input-border-radius, var(--f7-searchbar-input-border-radius)); +} +.searchbar .input-clear-button { + color: var(--f7-searchbar-input-clear-button-color, var(--f7-input-clear-button-color)); +} +.searchbar-expandable { + --f7-searchbar-expandable-size: var(--f7-searchbar-height); + position: absolute; + transition-duration: 300ms; + pointer-events: none; +} +.navbar .searchbar-expandable { + background: transparent; +} +.navbar .searchbar-expandable:after { + display: none !important; +} +.navbar .searchbar.searchbar-expandable { + --f7-searchbar-expandable-size: var(--f7-navbar-height); +} +.toolbar .searchbar.searchbar-expandable { + --f7-searchbar-expandable-size: var(--f7-toolbar-height); +} +.subnavbar .searchbar.searchbar-expandable { + --f7-searchbar-expandable-size: var(--f7-subnavbar-height); +} +.tabbar-labels .searchbar.searchbar-expandable { + --f7-searchbar-expandable-size: var(--f7-tabbar-labels-height); +} +.searchbar-inner { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + display: flex; + align-items: center; + box-sizing: border-box; + padding: 0 calc(var(--f7-searchbar-inner-padding-right) + var(--f7-safe-area-right)) 0 calc(var(--f7-searchbar-inner-padding-left) + var(--f7-safe-area-left)); +} +.searchbar-disable-button { + cursor: pointer; + pointer-events: none; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + background: none; + border: none; + outline: 0; + padding: 0; + margin: 0; + width: auto; + opacity: 0; +} +.searchbar-icon { + pointer-events: none; + background-position: center; + background-repeat: no-repeat; +} +.searchbar-icon:after { + color: var(--f7-searchbar-search-icon-color); + font-family: 'framework7-core-icons'; + font-weight: normal; + font-style: normal; + line-height: 1; + letter-spacing: normal; + text-transform: none; + white-space: nowrap; + word-wrap: normal; + direction: ltr; + -webkit-font-smoothing: antialiased; + text-rendering: optimizeLegibility; + -moz-osx-font-smoothing: grayscale; + font-feature-settings: "liga"; + text-align: center; + display: block; + width: 100%; + height: 100%; + font-size: 20px; +} +.searchbar-backdrop { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + z-index: 100; + opacity: 0; + pointer-events: none; + transition-duration: 300ms; + transform: translate3d(0, 0, 0); + background: var(--f7-searchbar-backdrop-bg-color); +} +.searchbar-backdrop.searchbar-backdrop-in { + opacity: 1; + pointer-events: auto; +} +.page-content > .searchbar-backdrop { + position: fixed; +} +.searchbar-not-found { + display: none; +} +.hidden-by-searchbar, +.list .hidden-by-searchbar, +.list.li.hidden-by-searchbar, +.list li.hidden-by-searchbar { + display: none !important; +} +.navbar.with-searchbar-expandable-enabled-no-transition, +.navbar.with-searchbar-expandable-enabled-no-transition { + --f7-navbar-large-collapse-progress: 1; +} +.navbar.with-searchbar-expandable-enabled, +.navbar.with-searchbar-expandable-enabled { + --f7-navbar-large-collapse-progress: 1; +} +.navbar.with-searchbar-expandable-enabled .navbar-bg, +.navbar.with-searchbar-expandable-enabled .navbar-bg, +.navbar.with-searchbar-expandable-enabled .title-large, +.navbar.with-searchbar-expandable-enabled .title-large, +.navbar.with-searchbar-expandable-enabled .title-large-text, +.navbar.with-searchbar-expandable-enabled .title-large-text { + transition-duration: 300ms; +} +.navbar.with-searchbar-expandable-closing .navbar-bg, +.navbar.with-searchbar-expandable-closing .navbar-bg, +.navbar.with-searchbar-expandable-closing .title-large, +.navbar.with-searchbar-expandable-closing .title-large, +.navbar.with-searchbar-expandable-closing .title-large-text, +.navbar.with-searchbar-expandable-closing .title-large-text { + transition-duration: 300ms; +} +.page-content.with-searchbar-expandable-enabled { + height: calc(100% + var(--f7-navbar-large-title-height)); + transform: translateY(calc(-1 * var(--f7-navbar-large-title-height))); + transition-duration: 300ms; + transition-property: transform; +} +.page-content.with-searchbar-expandable-closing { + transition-duration: 300ms; +} +.navbar ~ .page:not(.no-navbar) > .searchbar, +.navbars ~ .page:not(.no-navbar) > .searchbar, +.page > .navbar ~ .searchbar { + top: calc(var(--f7-navbar-height) + var(--f7-safe-area-top)); +} +.navbar ~ .page-with-navbar-large:not(.no-navbar) .searchbar, +.navbars ~ .page-with-navbar-large:not(.no-navbar) .searchbar, +.page-with-navbar-large .navbar ~ .searchbar, +.page-with-navbar-large .navbar ~ * .searchbar { + top: calc(var(--f7-navbar-height) + var(--f7-navbar-large-title-height) + var(--f7-safe-area-top)); + transform: translate3d(0, calc(-1 * var(--f7-navbar-large-collapse-progress) * var(--f7-navbar-large-title-height)), 0); +} +.navbars ~ .page-with-navbar-large:not(.no-navbar) .page-content .searchbar, +.page-with-navbar-large .page-content .searchbar { + top: 0; + transform: none; +} +.searchbar ~ * { + --f7-page-searchbar-offset: var(--f7-searchbar-height); +} +.page > .toolbar-top ~ .searchbar, +.ios .page > .toolbar-top-ios ~ .searchbar, +.md .page > .toolbar-top-md ~ .searchbar, +.aurora .page > .toolbar-top-aurora ~ .searchbar { + top: var(--f7-toolbar-height); +} +.page > .tabbar-labels.toolbar-top ~ .searchbar, +.ios .page > .tabbar-labels.toolbar-top-ios ~ .searchbar, +.md .page > .tabbar-labels.toolbar-top-md ~ .searchbar, +.aurora .page > .tabbar-labels.toolbar-top-aurora ~ .searchbar { + top: var(--f7-tabbar-labels-height); +} +.page > .navbar ~ .toolbar-top ~ .searchbar, +.ios .page > .navbar ~ .toolbar-top-ios ~ .searchbar, +.md .page > .navbar ~ .toolbar-top-md ~ .searchbar, +.aurora .page > .navbar ~ .toolbar-top-aurora ~ .searchbar { + top: calc(var(--f7-navbar-height) + var(--f7-toolbar-height) + var(--f7-safe-area-top)); +} +.page > .navbar ~ .tabbar-labels.toolbar-top ~ .searchbar, +.ios .page > .navbar ~ .tabbar-labels.toolbar-top-ios ~ .searchbar, +.md .page > .navbar ~ .tabbar-labels.toolbar-top-md ~ .searchbar, +.aurora .page > .navbar ~ .tabbar-labels.toolbar-top-aurora ~ .searchbar { + top: calc(var(--f7-navbar-height) + var(--f7-tabbar-labels-height) + var(--f7-safe-area-top)); +} +.searchbar.searchbar-inline { + width: auto; + height: auto; + background-color: transparent; + background-image: none; +} +.searchbar.searchbar-inline:after, +.searchbar.searchbar-inline:before { + display: none !important; +} +.searchbar.searchbar-inline .searchbar-input-wrap { + height: var(--f7-searchbar-inline-input-height, var(--f7-searchbar-input-height)); +} +.searchbar.searchbar-inline .searchbar-inner { + padding: 0; + position: static; + width: auto; + height: auto; +} +.searchbar.searchbar-inline input[type="text"], +.searchbar.searchbar-inline input[type="search"] { + font-size: var(--f7-searchbar-inline-input-font-size, var(--f7-searchbar-input-font-size)); + padding-left: calc(var(--f7-searchbar-inline-input-padding-horizontal, var(--f7-searchbar-input-padding-horizontal)) + var(--f7-searchbar-input-extra-padding-right, 0px)); + padding-right: calc(var(--f7-searchbar-inline-input-padding-horizontal, var(--f7-searchbar-input-padding-horizontal)) + var(--f7-searchbar-input-extra-padding-left, 0px)); +} +.ios .searchbar input[type="search"], +.ios .searchbar input[type="text"] { + z-index: 30; +} +.ios .searchbar .input-clear-button { + z-index: 40; + left: 7px; +} +.ios .searchbar-icon { + width: 13px; + height: 13px; + position: absolute; + top: 50%; + margin-top: -6px; + z-index: 40; + right: 8px; +} +.ios .searchbar-icon:after { + content: 'search_ios'; + line-height: 13px; +} +.ios .searchbar-disable-button { + font-size: 17px; + flex-shrink: 0; + transform: translate3d(0, 0, 0); + transition-duration: 300ms; + color: var(--f7-searchbar-link-color, var(--f7-bars-link-color, var(--f7-theme-color))); + display: none; +} +.ios .searchbar-disable-button.active-state { + transition-duration: 0ms; + opacity: 0.3 !important; +} +.ios .searchbar-enabled .searchbar-disable-button { + pointer-events: auto; + opacity: 1; + margin-right: 8px; +} +.ios .searchbar:not(.searchbar-enabled) .searchbar-disable-button { + transition-duration: 300ms !important; +} +.ios .searchbar-expandable { + right: 0; + bottom: 0; + opacity: 1; + width: 100%; + height: 0%; + transform: translate3d(0, 0, 0); + overflow: hidden; +} +.ios .searchbar-expandable .searchbar-disable-button { + margin-right: 8px; + opacity: 1; + display: block; +} +.ios .searchbar-expandable .searchbar-inner { + height: var(--f7-searchbar-expandable-size); +} +.ios .navbar.with-searchbar-expandable-enabled .navbar-bg, +.ios .navbar.with-searchbar-expandable-closing .navbar-bg { + transition-property: transform, opacity; +} +.ios .navbar.with-searchbar-expandable-enabled .navbar-bg, +.ios .navbar.with-searchbar-expandable-closing .navbar-bg, +.ios .navbar.with-searchbar-expandable-enabled .left, +.ios .navbar.with-searchbar-expandable-closing .left, +.ios .navbar.with-searchbar-expandable-enabled .title, +.ios .navbar.with-searchbar-expandable-closing .title, +.ios .navbar.with-searchbar-expandable-enabled .right, +.ios .navbar.with-searchbar-expandable-closing .right { + transition-duration: 300ms; +} +.ios .navbar.with-searchbar-expandable-enabled .left, +.ios .navbar.with-searchbar-expandable-enabled-no-transition .left, +.ios .navbar.with-searchbar-expandable-enabled .title, +.ios .navbar.with-searchbar-expandable-enabled-no-transition .title, +.ios .navbar.with-searchbar-expandable-enabled .right, +.ios .navbar.with-searchbar-expandable-enabled-no-transition .right { + transform: translateY(calc(-1 * var(--f7-navbar-height))); + opacity: 0 !important; +} +.ios .searchbar-expandable.searchbar-enabled { + opacity: 1; + height: var(--f7-searchbar-expandable-size); + pointer-events: auto; +} +.md .searchbar-icon, +.md .searchbar-disable-button { + position: absolute; + right: calc(-4px + var(--f7-safe-area-right)); + top: 50%; + transition-duration: 300ms; +} +.md .searchbar-icon { + width: 24px; + height: 24px; + margin-left: 12px; + margin-top: -12px; +} +.md .searchbar-icon:after { + content: 'search_md'; + line-height: 1.2; +} +.md .searchbar-disable-button { + width: 48px; + height: 48px; + transform: rotate(-90deg) scale(0.5); + font-size: 0 !important; + display: block; + margin-top: -24px; + color: var(--f7-searchbar-link-color, var(--f7-bars-link-color, var(--f7-theme-color))); +} +.md .searchbar-disable-button:before { + content: ''; + width: 152%; + height: 152%; + position: absolute; + left: -26%; + top: -26%; + background-image: radial-gradient(circle at center, var(--f7-link-highlight-color) 66%, rgba(255, 255, 255, 0) 66%); + background-repeat: no-repeat; + background-position: center; + background-size: 100% 100%; + opacity: 0; + pointer-events: none; + transition-duration: 600ms; +} +.md .searchbar-disable-button.active-state:before { + opacity: 1; + transition-duration: 150ms; +} +.md .searchbar-disable-button:after { + font-family: 'framework7-core-icons'; + font-weight: normal; + font-style: normal; + line-height: 1; + letter-spacing: normal; + text-transform: none; + white-space: nowrap; + word-wrap: normal; + direction: ltr; + -webkit-font-smoothing: antialiased; + text-rendering: optimizeLegibility; + -moz-osx-font-smoothing: grayscale; + font-feature-settings: "liga"; + text-align: center; + display: block; + width: 100%; + height: 100%; + font-size: 20px; + line-height: 48px; + content: "arrow_right_md"; +} +.md .searchbar-enabled:not(.searchbar-enabled-no-disable-button) .searchbar-disable-button { + transform: rotate(0deg) scale(1); + pointer-events: auto; + opacity: 1; +} +.md .searchbar-enabled:not(.searchbar-enabled-no-disable-button) .searchbar-icon { + opacity: 0; + transform: rotate(90deg) scale(0.5); +} +.md .searchbar { + --f7-searchbar-input-extra-padding-left: 16px; +} +.md .searchbar .input-clear-button { + width: 48px; + height: 48px; + margin-top: -24px; + left: 0; +} +.md .searchbar .input-clear-button:before { + content: ''; + width: 152%; + height: 152%; + position: absolute; + left: -26%; + top: -26%; + background-image: radial-gradient(circle at center, var(--f7-link-highlight-color) 66%, rgba(255, 255, 255, 0) 66%); + background-repeat: no-repeat; + background-position: center; + background-size: 100% 100%; + opacity: 0; + pointer-events: none; + transition-duration: 600ms; +} +.md .searchbar .input-clear-button.active-state:before { + opacity: 1; + transition-duration: 150ms; +} +.md .searchbar .input-clear-button:after { + line-height: 48px; + content: 'delete_md'; + opacity: 1; +} +.md .searchbar .input-clear-button:before { + margin-left: 0; + margin-top: 0; +} +.md .page > .searchbar, +.md .subnavbar .searchbar, +.md .searchbar-expandable { + --f7-searchbar-input-extra-padding-left: 24px; +} +.md .page > .searchbar .searchbar-icon, +.md .subnavbar .searchbar .searchbar-icon, +.md .searchbar-expandable .searchbar-icon, +.md .page > .searchbar .searchbar-disable-button, +.md .subnavbar .searchbar .searchbar-disable-button, +.md .searchbar-expandable .searchbar-disable-button { + right: calc(-4px + 8px + var(--f7-safe-area-right)); +} +.md .searchbar-expandable { + height: var(--f7-searchbar-expandable-size); + opacity: 0; + bottom: 0; + border-radius: calc(var(--f7-searchbar-expandable-size)); + width: calc(var(--f7-searchbar-expandable-size)); + margin-top: calc(var(--f7-searchbar-expandable-size) * -1 / 2); + transform: translate3d(0px, 0px, 0px); + right: 100%; + margin-right: calc(var(--f7-searchbar-expandable-size) * -1); +} +.md .searchbar-expandable.searchbar-enabled { + width: 100%; + border-radius: 0; + opacity: 1; + pointer-events: auto; + margin-top: 0; + right: 0; + margin-right: 0; +} +.aurora .searchbar input[type="search"], +.aurora .searchbar input[type="text"] { + z-index: 30; +} +.aurora .searchbar .input-clear-button { + z-index: 40; + left: 4px; +} +.aurora .searchbar-icon { + width: 13px; + height: 13px; + position: absolute; + top: 50%; + margin-top: -6px; + z-index: 40; + right: 6px; +} +.aurora .searchbar-icon:after { + content: 'search_aurora'; + line-height: 13px; +} +.aurora .searchbar-disable-button { + font-size: 14px; + flex-shrink: 0; + transform: translate3d(0, 0, 0); + transition-duration: 300ms; + color: var(--f7-searchbar-link-color, var(--f7-bars-link-color, var(--f7-theme-color))); + display: none; +} +.aurora .searchbar-disable-button.active-state { + transition-duration: 0ms; + opacity: 0.3 !important; +} +.aurora .searchbar-enabled .searchbar-disable-button { + pointer-events: auto; + opacity: 1; + margin-right: 8px; +} +.aurora .searchbar:not(.searchbar-enabled) .searchbar-disable-button { + transition-duration: 300ms !important; +} +.aurora .searchbar-expandable { + right: 0; + top: auto; + bottom: 0; + opacity: 0; + width: 100%; + transform: translate3d(0, 0, 0); + overflow: hidden; +} +.aurora .searchbar-expandable .searchbar-disable-button { + margin-right: 8px; + opacity: 1; + display: block; +} +.aurora .searchbar-expandable .searchbar-inner { + height: var(--f7-searchbar-expandable-size); +} +.aurora .searchbar-expandable.searchbar-enabled { + opacity: 1; + pointer-events: auto; +} +/* === Messages === */ +:root { + --f7-message-text-header-text-color: inherit; + --f7-message-text-header-opacity: 0.65; + --f7-message-text-header-font-size: 12px; + --f7-message-text-footer-text-color: inherit; + --f7-message-text-footer-opacity: 0.65; + --f7-message-text-footer-font-size: 12px; + --f7-message-bubble-line-height: 1.2; + --f7-message-header-font-size: 12px; + --f7-message-footer-font-size: 11px; + --f7-message-name-font-size: 12px; + --f7-message-name-font-weight: inherit; + --f7-message-avatar-border-radius: 50%; + --f7-messages-title-font-weight: inherit; + /* + --f7-message-sent-bg-color: var(--f7-theme-color); + */ + --f7-message-sent-text-color: #fff; + --f7-messages-content-bg-color: #fff; + --f7-message-typing-indicator-bg-color: #000; + --f7-message-received-bg-color: #e5e5ea; + --f7-message-received-text-color: #000; +} +:root .theme-dark, +:root.theme-dark { + --f7-messages-title-text-color: rgba(255, 255, 255, 0.54); + --f7-message-header-text-color: rgba(255, 255, 255, 0.54); + --f7-message-name-text-color: rgba(255, 255, 255, 0.54); + --f7-message-footer-text-color: rgba(255, 255, 255, 0.54); + --f7-messages-content-bg-color: transparent; + --f7-message-received-bg-color: #252525; + --f7-message-received-text-color: #fff; + --f7-message-typing-indicator-bg-color: #fff; +} +.ios { + --f7-messages-title-text-color: rgba(0, 0, 0, 0.45); + --f7-messages-title-font-size: 11px; + --f7-message-header-text-color: rgba(0, 0, 0, 0.45); + --f7-message-footer-text-color: rgba(0, 0, 0, 0.45); + --f7-message-name-text-color: rgba(0, 0, 0, 0.45); + --f7-message-avatar-size: 29px; + --f7-message-margin: 10px; + --f7-message-bubble-min-height: 32px; + --f7-message-bubble-font-size: 17px; + --f7-message-bubble-border-radius: 16px; + --f7-message-bubble-padding-vertical: 6px; + --f7-message-bubble-padding-horizontal: 16px; + --f7-message-typing-indicator-opacity: 0.35; +} +.md { + --f7-messages-title-font-size: 12px; + --f7-message-avatar-size: 32px; + --f7-message-margin: 16px; + --f7-message-bubble-min-height: 32px; + --f7-message-bubble-font-size: 16px; + --f7-message-bubble-border-radius: 4px; + --f7-message-bubble-padding-vertical: 6px; + --f7-message-bubble-padding-horizontal: 8px; + --f7-message-typing-indicator-opacity: 0.6; + --f7-messages-title-text-color: rgba(0, 0, 0, 0.51); + --f7-message-header-text-color: rgba(0, 0, 0, 0.51); + --f7-message-footer-text-color: rgba(0, 0, 0, 0.51); + --f7-message-name-text-color: rgba(0, 0, 0, 0.51); +} +.aurora { + --f7-messages-title-font-size: 12px; + --f7-message-avatar-size: 24px; + --f7-message-margin: 10px; + --f7-message-bubble-min-height: 28px; + --f7-message-bubble-font-size: 13px; + --f7-message-bubble-line-height: 1.4; + --f7-message-bubble-border-radius: 14px; + --f7-message-bubble-padding-vertical: 5px; + --f7-message-bubble-padding-horizontal: 10px; + --f7-message-typing-indicator-opacity: 0.5; + --f7-messages-title-text-color: rgba(0, 0, 0, 0.51); + --f7-message-header-text-color: rgba(0, 0, 0, 0.51); + --f7-message-footer-text-color: rgba(0, 0, 0, 0.51); + --f7-message-name-text-color: rgba(0, 0, 0, 0.51); +} +.messages-content, +.messages { + background: var(--f7-messages-content-bg-color); +} +.messages { + display: flex; + flex-direction: column; + min-height: 100%; + position: relative; + z-index: 1; +} +.messages-title, +.message { + margin-top: var(--f7-message-margin); +} +.messages-title:last-child, +.message:last-child { + margin-bottom: var(--f7-message-margin); +} +.messages-title { + text-align: center; + width: 100%; + line-height: 1; + color: var(--f7-messages-title-text-color); + font-size: var(--f7-messages-title-font-size); + font-weight: var(--f7-messages-title-font-weight); +} +.message { + max-width: 70%; + box-sizing: border-box; + display: flex; + align-items: flex-end; + position: relative; + z-index: 1; + transform: translate3d(0, 0, 0); +} +.message-avatar { + border-radius: var(--f7-message-avatar-border-radius); + position: relative; + background-size: cover; + align-self: flex-end; + flex-shrink: 0; + width: var(--f7-message-avatar-size); + height: var(--f7-message-avatar-size); +} +.message-content { + position: relative; + display: flex; + flex-direction: column; +} +.message-header, +.message-footer, +.message-name { + line-height: 1; +} +.message-header { + color: var(--f7-message-header-text-color); + font-size: var(--f7-message-header-font-size); +} +.message-footer { + color: var(--f7-message-footer-text-color); + font-size: var(--f7-message-footer-font-size); + margin-bottom: -1em; +} +.message-name { + color: var(--f7-message-name-text-color); + font-size: var(--f7-message-name-font-size); + font-weight: var(--f7-message-name-font-weight); +} +.message-bubble { + box-sizing: border-box; + word-break: break-word; + display: flex; + flex-direction: column; + position: relative; + line-height: var(--f7-message-bubble-line-height); + font-size: var(--f7-message-bubble-font-size); + border-radius: var(--f7-message-bubble-border-radius); + padding: var(--f7-message-bubble-padding-vertical) var(--f7-message-bubble-padding-horizontal); + min-height: var(--f7-message-bubble-min-height); +} +.message-image img { + display: block; + max-width: 100%; + height: auto; + width: auto; +} +.message-text-header, +.message-text-footer { + line-height: 1; +} +.message-text-header { + color: var(--f7-message-text-header-text-color); + opacity: var(--f7-message-text-header-opacity); + font-size: var(--f7-message-text-header-font-size); +} +.message-text-footer { + color: var(--f7-message-text-footer-text-color); + opacity: var(--f7-message-text-footer-opacity); + font-size: var(--f7-message-text-footer-font-size); +} +.message-text { + text-align: left; +} +.message-sent { + text-align: right; + flex-direction: row; + align-self: flex-start; +} +.message-sent .message-bubble { + color: var(--f7-message-sent-text-color); + background: var(--f7-message-sent-bg-color, var(--f7-theme-color)); +} +.message-sent .message-content { + align-items: flex-start; +} +.message-sent.message-tail .message-bubble { + border-radius: var(--f7-message-bubble-border-radius) var(--f7-message-bubble-border-radius) 0 var(--f7-message-bubble-border-radius); +} +.message-received { + flex-direction: row-reverse; + align-self: flex-end; +} +.message-received .message-bubble { + color: var(--f7-message-received-text-color); + background: var(--f7-message-received-bg-color); +} +.message-received .message-content { + align-items: flex-end; +} +.message-received.message-tail .message-bubble { + border-radius: var(--f7-message-bubble-border-radius) var(--f7-message-bubble-border-radius) var(--f7-message-bubble-border-radius) 0; +} +.message:not(.message-last) .message-avatar { + opacity: 0; +} +.message:not(.message-first) .message-name { + display: none; +} +.message.message-same-name .message-name { + display: none; +} +.message.message-same-header .message-header { + display: none; +} +.message.message-same-footer .message-footer { + display: none; +} +.message-appear-from-bottom { + animation: message-appear-from-bottom 300ms; +} +.message-appear-from-top { + animation: message-appear-from-top 300ms; +} +.message-typing-indicator { + display: inline-block; + font-size: 0; + vertical-align: middle; +} +.message-typing-indicator > div { + display: inline-block; + position: relative; + background: var(--f7-message-typing-indicator-bg-color); + opacity: var(--f7-message-typing-indicator-opacity); + vertical-align: middle; + border-radius: 50%; +} +@keyframes message-appear-from-bottom { + from { + transform: translate3d(0, 100%, 0); + } + to { + transform: translate3d(0, 0, 0); + } +} +@keyframes message-appear-from-top { + from { + transform: translate3d(0, -100%, 0); + } + to { + transform: translate3d(0, 0, 0); + } +} +.ios .messages-title b, +.ios .message-header b, +.ios .message-footer b, +.ios .message-name b { + font-weight: 600; +} +.ios .message-header, +.ios .message-name { + margin-bottom: 3px; +} +.ios .message-footer { + margin-top: 3px; +} +.ios .message-bubble { + min-width: 48px; +} +.ios .message-image { + margin: var(--f7-message-bubble-padding-vertical) calc(-1 * var(--f7-message-bubble-padding-horizontal)); +} +.ios .message-image:first-child { + margin-top: calc(-1 * var(--f7-message-bubble-padding-vertical)); +} +.ios .message-image:first-child img { + border-top-left-radius: var(--f7-message-bubble-border-radius); + border-top-right-radius: var(--f7-message-bubble-border-radius); +} +.ios .message-image:last-child { + margin-bottom: calc(-1 * var(--f7-message-bubble-padding-vertical)); +} +.ios .message-image:last-child img { + border-bottom-left-radius: var(--f7-message-bubble-border-radius); + border-bottom-right-radius: var(--f7-message-bubble-border-radius); +} +.ios .message-text-header { + margin-bottom: 3px; +} +.ios .message-text-footer { + margin-top: 3px; +} +.ios .message-received { + margin-left: calc(10px + var(--f7-safe-area-left)); +} +.ios .message-received .message-header, +.ios .message-received .message-footer, +.ios .message-received .message-name { + margin-left: var(--f7-message-bubble-padding-horizontal); +} +.ios .message-received .message-bubble { + padding-left: calc(var(--f7-message-bubble-padding-horizontal) + 6px); + -webkit-mask-box-image: url("data:image/svg+xml;charset=utf-8,") 50% 42% 46% 56%; +} +.ios .message-received .message-image { + margin-left: calc(-1 * (var(--f7-message-bubble-padding-horizontal) + 6px)); +} +.ios .message-received.message-tail:not(.message-typing) .message-bubble { + -webkit-mask-box-image: url("data:image/svg+xml;charset=utf-8,") 50% 42% 46% 56%; +} +.ios .message-received.message-tail:not(.message-typing) .message-bubble .message-image:last-child img { + border-bottom-left-radius: 0px; +} +.ios .message-sent { + margin-right: calc(10px + var(--f7-safe-area-right)); +} +.ios .message-sent .message-header, +.ios .message-sent .message-footer, +.ios .message-sent .message-name { + margin-right: var(--f7-message-bubble-padding-horizontal); +} +.ios .message-sent .message-bubble { + padding-right: calc(var(--f7-message-bubble-padding-horizontal) + 6px); + -webkit-mask-box-image: url("data:image/svg+xml;charset=utf-8,") 50% 56% 46% 42%; +} +.ios .message-sent .message-image { + margin-right: calc(-1 * (var(--f7-message-bubble-padding-horizontal) + 6px)); +} +.ios .message-sent.message-tail .message-bubble { + -webkit-mask-box-image: url("data:image/svg+xml;charset=utf-8,") 50% 56% 46% 42%; +} +.ios .message-sent.message-tail .message-bubble .message-image:last-child img { + border-bottom-right-radius: 0px; +} +.ios .message + .message:not(.message-first) { + margin-top: 1px; +} +.ios .message-received.message-typing .message-content:after, +.ios .message-received.message-typing .message-content:before { + content: ''; + position: absolute; + background: var(--f7-message-received-bg-color); + border-radius: 50%; +} +.ios .message-received.message-typing .message-content:after { + width: 11px; + height: 11px; + left: 4px; + bottom: 0px; +} +.ios .message-received.message-typing .message-content:before { + width: 6px; + height: 6px; + left: -1px; + bottom: -4px; +} +.ios .message-typing-indicator > div { + width: 9px; + height: 9px; +} +.ios .message-typing-indicator > div + div { + margin-right: 4px; +} +.ios .message-typing-indicator > div:nth-child(1) { + animation: ios-message-typing-indicator 900ms infinite; +} +.ios .message-typing-indicator > div:nth-child(2) { + animation: ios-message-typing-indicator 900ms 150ms infinite; +} +.ios .message-typing-indicator > div:nth-child(3) { + animation: ios-message-typing-indicator 900ms 300ms infinite; +} +@keyframes ios-message-typing-indicator { + 0% { + opacity: 0.35; + } + 25% { + opacity: 0.2; + } + 50% { + opacity: 0.2; + } +} +.md .messages-title b, +.md .message-header b, +.md .message-footer b, +.md .message-name b { + font-weight: 500; +} +.md .message-header, +.md .message-name { + margin-bottom: 2px; +} +.md .message-footer { + margin-top: 2px; +} +.md .message-text-header { + margin-bottom: 4px; +} +.md .message-text-footer { + margin-top: 4px; +} +.md .message-received.message-tail .message-bubble:before, +.md .message-sent.message-tail .message-bubble:before { + position: absolute; + content: ''; + bottom: 0; + width: 0; + height: 0; +} +.md .message-received { + margin-left: calc(8px + var(--f7-safe-area-left)); +} +.md .message-received .message-avatar + .message-content { + margin-left: var(--f7-message-bubble-padding-horizontal); +} +.md .message-received.message-tail .message-bubble:before { + border-left: 8px solid transparent; + border-right: 0 solid transparent; + border-bottom: 8px solid var(--f7-message-received-bg-color); + right: 100%; +} +.md .message-sent { + margin-right: calc(8px + var(--f7-safe-area-right)); +} +.md .message-sent .message-avatar + .message-content { + margin-right: var(--f7-message-bubble-padding-horizontal); +} +.md .message-sent.message-tail .message-bubble:before { + border-left: 0 solid transparent; + border-right: 8px solid transparent; + border-bottom: 8px solid var(--f7-message-sent-bg-color, var(--f7-theme-color)); + left: 100%; +} +.md .message + .message:not(.message-first) { + margin-top: 8px; +} +.md .message-typing-indicator > div { + width: 6px; + height: 6px; +} +.md .message-typing-indicator > div + div { + margin-right: 6px; +} +.md .message-typing-indicator > div:nth-child(1) { + animation: md-message-typing-indicator 900ms infinite; +} +.md .message-typing-indicator > div:nth-child(2) { + animation: md-message-typing-indicator 900ms 150ms infinite; +} +.md .message-typing-indicator > div:nth-child(3) { + animation: md-message-typing-indicator 900ms 300ms infinite; +} +@keyframes md-message-typing-indicator { + 0% { + transform: translateY(0%); + } + 25% { + transform: translateY(-5px); + } + 50% { + transform: translateY(0%); + } +} +.aurora .messages-title b, +.aurora .message-header b, +.aurora .message-footer b, +.aurora .message-name b { + font-weight: 500; +} +.aurora .message-header, +.aurora .message-name { + margin-bottom: 2px; +} +.aurora .message-footer { + margin-top: 2px; +} +.aurora .message-text-header { + margin-bottom: 2px; +} +.aurora .message-text-footer { + margin-top: 2px; +} +.aurora .message-received.message-tail .message-bubble:before, +.aurora .message-sent.message-tail .message-bubble:before { + position: absolute; + content: ''; + bottom: 0; + width: 0; + height: 0; +} +.aurora .message-image { + margin: var(--f7-message-bubble-padding-vertical) calc(-1 * var(--f7-message-bubble-padding-horizontal) + 4px); +} +.aurora .message-image:first-child { + margin-top: calc(-1 * var(--f7-message-bubble-padding-vertical) + 4px); +} +.aurora .message-image:first-child img { + border-top-left-radius: var(--f7-message-bubble-border-radius); + border-top-right-radius: var(--f7-message-bubble-border-radius); +} +.aurora .message-image:last-child { + margin-bottom: calc(-1 * var(--f7-message-bubble-padding-vertical) + 4px); +} +.aurora .message-image:last-child img { + border-bottom-left-radius: var(--f7-message-bubble-border-radius); + border-bottom-right-radius: var(--f7-message-bubble-border-radius); +} +.aurora .message-received { + margin-left: calc(16px + var(--f7-safe-area-left)); +} +.aurora .message-received .message-avatar + .message-content { + margin-left: 5px; +} +.aurora .message-received .message-header, +.aurora .message-received .message-footer, +.aurora .message-received .message-name { + margin-left: var(--f7-message-bubble-padding-horizontal); +} +.aurora .message-received.message-tail .message-bubble:before { + border-left: 6px solid transparent; + border-right: 0 solid transparent; + border-bottom: 6px solid var(--f7-message-received-bg-color); + right: 100%; + transform: translate(2px, 0px) rotate(-15deg); + transform-origin: right bottom; +} +.aurora .message-sent { + margin-right: calc(16px + var(--f7-safe-area-right)); +} +.aurora .message-sent .message-avatar + .message-content { + margin-right: 5px; +} +.aurora .message-sent .message-header, +.aurora .message-sent .message-footer, +.aurora .message-sent .message-name { + margin-right: var(--f7-message-bubble-padding-horizontal); +} +.aurora .message-sent.message-tail .message-bubble:before { + border-left: 0 solid transparent; + border-right: 6px solid transparent; + border-bottom: 6px solid var(--f7-message-sent-bg-color, var(--f7-theme-color)); + left: 100%; + transform: translate(-2px, 0px) rotate(15deg); + transform-origin: left bottom; +} +.aurora .message + .message:not(.message-first) { + margin-top: 5px; +} +.aurora .message-typing-indicator > div { + width: 6px; + height: 6px; +} +.aurora .message-typing-indicator > div + div { + margin-right: 4px; +} +.aurora .message-typing-indicator > div:nth-child(1) { + animation: aurora-message-typing-indicator 900ms infinite; +} +.aurora .message-typing-indicator > div:nth-child(2) { + animation: aurora-message-typing-indicator 900ms 150ms infinite; +} +.aurora .message-typing-indicator > div:nth-child(3) { + animation: aurora-message-typing-indicator 900ms 300ms infinite; +} +@keyframes aurora-message-typing-indicator { + 0% { + transform: translateY(0%); + } + 50% { + transform: translateY(-5px); + } + 100% { + transform: translateY(0%); + } +} +/* === Messagebar === */ +:root { + --f7-messagebar-shadow-image: none; + --f7-messagebar-textarea-bg-color: transparent; + --f7-messagebar-attachments-height: 155px; + --f7-messagebar-attachment-height: 155px; + --f7-messagebar-attachment-landscape-height: 120px; + --f7-messagebar-sheet-height: 252px; + --f7-messagebar-sheet-landscape-height: 192px; + /* + --f7-messagebar-inner-padding-left: var(--f7-toolbar-inner-padding-left); + --f7-messagebar-inner-padding-right: var(--f7-toolbar-inner-padding-right); + */ + --f7-messagebar-bg-color: #fff; + --f7-messagebar-bg-color-rgb: 255, 255, 255; +} +:root .theme-dark, +:root.theme-dark { + --f7-messagebar-bg-color: var(--f7-bars-bg-color); + --f7-messagebar-bg-color-rgb: var(--f7-bars-bg-color-rgb); +} +.ios { + --f7-messagebar-height: 44px; + --f7-messagebar-font-size: 17px; + /* + --f7-messagebar-link-color: var(--f7-theme-color); + */ + --f7-messagebar-border-color: transparent; + --f7-messagebar-textarea-border-radius: 17px; + --f7-messagebar-textarea-padding: 6px 16px; + --f7-messagebar-textarea-height: 34px; + --f7-messagebar-textarea-font-size: 17px; + --f7-messagebar-textarea-line-height: 20px; + --f7-messagebar-sheet-bg-color: #d1d5da; + --f7-messagebar-attachment-border-radius: 12px; + --f7-messagebar-textarea-text-color: #000; + --f7-messagebar-textarea-border: 1px solid #c8c8cd; + --f7-messagebar-attachments-border-color: #c8c8cd; +} +.ios .theme-dark, +.ios.theme-dark { + --f7-messagebar-textarea-text-color: #fff; + --f7-messagebar-textarea-border: 1px solid var(--f7-bars-border-color); + --f7-messagebar-attachments-border-color: var(--f7-bars-border-color); +} +.md { + --f7-messagebar-height: 48px; + --f7-messagebar-font-size: 16px; + --f7-messagebar-textarea-border-radius: 0px; + --f7-messagebar-textarea-padding: 5px 8px; + --f7-messagebar-textarea-height: 32px; + --f7-messagebar-textarea-font-size: 16px; + --f7-messagebar-textarea-line-height: 22px; + --f7-messagebar-textarea-border: 1px solid transparent; + --f7-messagebar-sheet-bg-color: #fff; + --f7-messagebar-attachment-border-radius: 4px; + --f7-messagebar-link-color: #333; + --f7-messagebar-border-color: #d1d1d1; + --f7-messagebar-textarea-text-color: #333; + --f7-messagebar-attachments-border-color: #ddd; +} +.md .theme-dark, +.md.theme-dark { + --f7-messagebar-border-color: transparent; + --f7-messagebar-link-color: rgba(255, 255, 255, 0.87); + --f7-messagebar-textarea-text-color: rgba(255, 255, 255, 0.87); + --f7-messagebar-attachments-border-color: rgba(255, 255, 255, 0.2); +} +.aurora { + --f7-messagebar-height: 38px; + --f7-messagebar-font-size: 14px; + /* + --f7-messagebar-link-color: var(--f7-theme-color); + */ + --f7-messagebar-border-color: transparent; + --f7-messagebar-textarea-border-radius: 12px; + --f7-messagebar-textarea-padding: 3px 10px; + --f7-messagebar-textarea-height: 24px; + --f7-messagebar-textarea-font-size: 13px; + --f7-messagebar-textarea-line-height: 16px; + --f7-messagebar-sheet-bg-color: #fff; + --f7-messagebar-attachment-border-radius: 12px; + --f7-messagebar-textarea-text-color: #000; + --f7-messagebar-textarea-border: 1px solid #c8c8cd; + --f7-messagebar-attachments-border-color: #c8c8cd; +} +.aurora .theme-dark, +.aurora.theme-dark { + --f7-messagebar-textarea-text-color: #fff; + --f7-messagebar-textarea-border: 1px solid var(--f7-bars-border-color); + --f7-messagebar-attachments-border-color: var(--f7-bars-border-color); +} +.messagebar { + transform: translate3d(0, 0, 0); + background: var(--f7-messagebar-bg-color); + height: auto; + min-height: var(--f7-messagebar-height); + font-size: var(--f7-messagebar-font-size); + padding-bottom: var(--f7-safe-area-bottom); + bottom: 0; +} +.messagebar:before { + content: ''; + position: absolute; + background-color: var(--f7-messagebar-border-color); + display: block; + z-index: 15; + top: 0; + right: auto; + bottom: auto; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 0%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +.messagebar:after { + content: ''; + position: absolute; + right: 0; + width: 100%; + bottom: 100%; + height: 8px; + top: auto; + pointer-events: none; + background: var(--f7-messagebar-shadow-image); + transform: translate3d(0, 0, 0); +} +@supports ((-webkit-backdrop-filter: blur(20px)) or (backdrop-filter: blur(20px))) { + .ios-translucent-bars .messagebar { + background-color: rgba(var(--f7-messagebar-bg-color-rgb), var(--f7-bars-translucent-opacity)); + -webkit-backdrop-filter: saturate(180%) blur(var(--f7-bars-translucent-blur)); + backdrop-filter: saturate(180%) blur(var(--f7-bars-translucent-blur)); + } +} +.messagebar.no-hairline:before, +.messagebar.no-border:before { + display: none !important; +} +.messagebar.no-shadow:after, +.messagebar.toolbar-hidden:after { + display: none !important; +} +.messagebar .toolbar-inner { + top: auto; + position: relative; + height: auto; + bottom: auto; + padding-left: calc(var(--f7-messagebar-inner-padding-left, var(--f7-toolbar-inner-padding-left)) + var(--f7-safe-area-left)); + padding-right: calc(var(--f7-messagebar-inner-padding-right, var(--f7-toolbar-inner-padding-right)) + var(--f7-safe-area-right)); + flex-direction: row-reverse; +} +.messagebar.messagebar-sheet-visible > .toolbar-inner { + bottom: 0; +} +.messagebar .messagebar-area { + width: 100%; + flex-shrink: 1; + overflow: hidden; + position: relative; +} +.messagebar textarea { + width: 100%; + flex-shrink: 1; + background-color: var(--f7-messagebar-textarea-bg-color); + border-radius: var(--f7-messagebar-textarea-border-radius); + padding: var(--f7-messagebar-textarea-padding); + height: var(--f7-messagebar-textarea-height); + color: var(--f7-messagebar-textarea-text-color); + font-size: var(--f7-messagebar-textarea-font-size); + line-height: var(--f7-messagebar-textarea-line-height); + border: var(--f7-messagebar-textarea-border); +} +.messagebar a.link { + align-self: flex-end; + flex-shrink: 0; + color: var(--f7-messagebar-link-color, var(--f7-theme-color)); +} +.messagebar-attachments { + width: 100%; + overflow: auto; + -webkit-overflow-scrolling: touch; + font-size: 0; + white-space: nowrap; + box-sizing: border-box; + position: relative; +} +.messagebar:not(.messagebar-attachments-visible) .messagebar-attachments { + display: none; +} +.messagebar-attachment { + background-size: cover; + background-position: center; + background-repeat: no-repeat; + display: inline-block; + vertical-align: middle; + white-space: normal; + height: var(--f7-messagebar-attachment-height); + position: relative; + border-radius: var(--f7-messagebar-attachment-border-radius); +} +@media (orientation: landscape) { + .messagebar-attachment { + height: var(--f7-messagebar-attachment-landscape-height); + } +} +.messagebar-attachment img { + display: block; + width: auto; + height: 100%; + border-radius: var(--f7-messagebar-attachment-border-radius); +} +.messagebar-attachment + .messagebar-attachment { + margin-right: 8px; +} +.messagebar-sheet { + overflow: auto; + -webkit-overflow-scrolling: touch; + display: flex; + flex-wrap: wrap; + flex-direction: column; + align-content: flex-start; + height: var(--f7-messagebar-sheet-height); + background-color: var(--f7-messagebar-sheet-bg-color); + padding-left: var(--f7-safe-area-left); + padding-right: var(--f7-safe-area-right); +} +@media (orientation: landscape) { + .messagebar-sheet { + height: var(--f7-messagebar-sheet-landscape-height); + } +} +.messagebar-sheet-image, +.messagebar-sheet-item { + box-sizing: border-box; + flex-shrink: 0; + margin-top: 1px; + position: relative; + overflow: hidden; + height: calc((var(--f7-messagebar-sheet-height) - 2px) / 2); + width: calc((var(--f7-messagebar-sheet-height) - 2px) / 2); + margin-right: 1px; +} +@media (orientation: landscape) { + .messagebar-sheet-image, + .messagebar-sheet-item { + width: calc((var(--f7-messagebar-sheet-landscape-height) - 2px) / 2); + height: calc((var(--f7-messagebar-sheet-landscape-height) - 2px) / 2); + } +} +.messagebar-sheet-image .icon-checkbox, +.messagebar-sheet-item .icon-checkbox, +.messagebar-sheet-image .icon-radio, +.messagebar-sheet-item .icon-radio { + position: absolute; + right: 8px; + bottom: 8px; +} +.messagebar-sheet-image { + background-size: cover; + background-position: center; + background-repeat: no-repeat; +} +.messagebar-attachment-delete { + display: block; + position: absolute; + border-radius: 50%; + box-sizing: border-box; + cursor: pointer; + box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.2); +} +.messagebar-attachment-delete:after, +.messagebar-attachment-delete:before { + position: absolute; + content: ''; + left: 50%; + top: 50%; +} +.messagebar-attachment-delete:after { + transform: rotate(45deg); +} +.messagebar-attachment-delete:before { + transform: rotate(-45deg); +} +.messagebar:not(.messagebar-sheet-visible) .messagebar-sheet { + display: none; +} +.messagebar ~ * { + --f7-page-toolbar-bottom-offset: var(--f7-messagebar-height); +} +.ios .messagebar a.link.icon-only:first-child { + margin-left: -8px; +} +.ios .messagebar a.link.icon-only:last-child { + margin-right: -8px; +} +.ios .messagebar a.link:not(.icon-only) + .messagebar-area { + margin-left: 8px; +} +.ios .messagebar .messagebar-area + a.link:not(.icon-only) { + margin-left: 8px; +} +.ios .messagebar-area { + margin-top: 5px; + margin-bottom: 5px; +} +.ios .messagebar-attachments { + padding: 5px; + border-radius: var(--f7-messagebar-textarea-border-radius) var(--f7-messagebar-textarea-border-radius) 0 0; + border: 1px solid var(--f7-messagebar-attachments-border-color); + border-bottom: none; +} +.ios .messagebar-attachments-visible .messagebar-attachments + textarea { + border-radius: 0 0 var(--f7-messagebar-textarea-border-radius) var(--f7-messagebar-textarea-border-radius); +} +.ios .messagebar-attachment { + font-size: 14px; +} +.ios .messagebar-attachment-delete { + right: 5px; + top: 5px; + width: 20px; + height: 20px; + background: #7d7e80; + border: 2px solid #fff; +} +.ios .messagebar-attachment-delete:after, +.ios .messagebar-attachment-delete:before { + width: 10px; + height: 2px; + background: #fff; + margin-left: -5px; + margin-top: -1px; +} +.md .messagebar-attachments { + padding: 8px; + border-bottom: 1px solid var(--f7-messagebar-attachments-border-color); +} +.md .messagebar-area { + margin-top: 8px; + margin-bottom: 8px; +} +.md .messagebar-sheet-image .icon-checkbox, +.md .messagebar-sheet-item .icon-checkbox { + border-color: #fff; + background: rgba(255, 255, 255, 0.25); + box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.5); +} +.md .messagebar-attachment-delete { + right: 8px; + top: 8px; + width: 24px; + height: 24px; + background-color: var(--f7-theme-color); + border-radius: 4px; +} +.md .messagebar-attachment-delete:after, +.md .messagebar-attachment-delete:before { + width: 14px; + height: 2px; + background: #fff; + margin-left: -7px; + margin-top: -1px; +} +.aurora .messagebar a.link + .messagebar-area { + margin-left: 5px; +} +.aurora .messagebar .messagebar-area + a.link { + margin-left: 5px; +} +.aurora .messagebar-area { + margin-top: 5px; + margin-bottom: 5px; +} +.aurora .messagebar-sheet-image .icon-checkbox, +.aurora .messagebar-sheet-item .icon-checkbox { + background: rgba(255, 255, 255, 0.25); +} +.aurora .messagebar-attachments { + padding: 5px; + border-radius: var(--f7-messagebar-textarea-border-radius) var(--f7-messagebar-textarea-border-radius) 0 0; + border: 1px solid var(--f7-messagebar-attachments-border-color); + border-bottom: none; +} +.aurora .messagebar-attachments-visible .messagebar-attachments + textarea { + border-radius: 0 0 var(--f7-messagebar-textarea-border-radius) var(--f7-messagebar-textarea-border-radius); +} +.aurora .messagebar-attachment { + font-size: 14px; +} +.aurora .messagebar-attachment-delete { + right: 5px; + top: 5px; + width: 14px; + height: 14px; + background: #808080; +} +.aurora .messagebar-attachment-delete:after, +.aurora .messagebar-attachment-delete:before { + width: 8px; + height: 1px; + background: #fff; + margin-left: -4px; + margin-top: -1px; +} +/* === Swiper === */ +@font-face { + font-family: 'swiper-icons'; + src: url("data:application/font-woff;charset=utf-8;base64, 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") format("woff"); + font-weight: 400; + font-style: normal; +} +:root { + --swiper-theme-color: #007aff; +} +.swiper-container { + margin-left: auto; + margin-right: auto; + position: relative; + overflow: hidden; + list-style: none; + padding: 0; + /* Fix of Webkit flickering */ + z-index: 1; +} +.swiper-container-vertical > .swiper-wrapper { + flex-direction: column; +} +.swiper-wrapper { + position: relative; + width: 100%; + height: 100%; + z-index: 1; + display: flex; + transition-property: transform; + box-sizing: content-box; +} +.swiper-container-android .swiper-slide, +.swiper-wrapper { + transform: translate3d(0px, 0, 0); +} +.swiper-container-multirow > .swiper-wrapper { + flex-wrap: wrap; +} +.swiper-container-multirow-column > .swiper-wrapper { + flex-wrap: wrap; + flex-direction: column; +} +.swiper-container-free-mode > .swiper-wrapper { + transition-timing-function: ease-out; + margin: 0 auto; +} +.swiper-slide { + flex-shrink: 0; + width: 100%; + height: 100%; + position: relative; + transition-property: transform; +} +.swiper-slide-invisible-blank { + visibility: hidden; +} +/* Auto Height */ +.swiper-container-autoheight, +.swiper-container-autoheight .swiper-slide { + height: auto; +} +.swiper-container-autoheight .swiper-wrapper { + align-items: flex-start; + transition-property: transform, height; +} +/* 3D Effects */ +.swiper-container-3d { + perspective: 1200px; +} +.swiper-container-3d .swiper-wrapper, +.swiper-container-3d .swiper-slide, +.swiper-container-3d .swiper-slide-shadow-left, +.swiper-container-3d .swiper-slide-shadow-right, +.swiper-container-3d .swiper-slide-shadow-top, +.swiper-container-3d .swiper-slide-shadow-bottom, +.swiper-container-3d .swiper-cube-shadow { + transform-style: preserve-3d; +} +.swiper-container-3d .swiper-slide-shadow-left, +.swiper-container-3d .swiper-slide-shadow-right, +.swiper-container-3d .swiper-slide-shadow-top, +.swiper-container-3d .swiper-slide-shadow-bottom { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + pointer-events: none; + z-index: 10; +} +.swiper-container-3d .swiper-slide-shadow-left { + background-image: linear-gradient(to left, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); +} +.swiper-container-3d .swiper-slide-shadow-right { + background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); +} +.swiper-container-3d .swiper-slide-shadow-top { + background-image: linear-gradient(to top, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); +} +.swiper-container-3d .swiper-slide-shadow-bottom { + background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.5), rgba(0, 0, 0, 0)); +} +/* CSS Mode */ +.swiper-container-css-mode > .swiper-wrapper { + overflow: auto; + scrollbar-width: none; + /* For Firefox */ + -ms-overflow-style: none; + /* For Internet Explorer and Edge */ +} +.swiper-container-css-mode > .swiper-wrapper::-webkit-scrollbar { + display: none; +} +.swiper-container-css-mode > .swiper-wrapper > .swiper-slide { + scroll-snap-align: start start; +} +.swiper-container-horizontal.swiper-container-css-mode > .swiper-wrapper { + scroll-snap-type: x mandatory; +} +.swiper-container-vertical.swiper-container-css-mode > .swiper-wrapper { + scroll-snap-type: y mandatory; +} +/* a11y */ +.swiper-container .swiper-notification { + position: absolute; + left: 0; + top: 0; + pointer-events: none; + opacity: 0; + z-index: -1000; +} +.swiper-container-cube { + overflow: visible; +} +.swiper-container-cube .swiper-slide { + pointer-events: none; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + z-index: 1; + visibility: hidden; + transform-origin: 0 0; + width: 100%; + height: 100%; +} +.swiper-container-cube .swiper-slide .swiper-slide { + pointer-events: none; +} +.swiper-container-cube.swiper-container-rtl .swiper-slide { + transform-origin: 100% 0; +} +.swiper-container-cube .swiper-slide-active, +.swiper-container-cube .swiper-slide-active .swiper-slide-active { + pointer-events: auto; +} +.swiper-container-cube .swiper-slide-active, +.swiper-container-cube .swiper-slide-next, +.swiper-container-cube .swiper-slide-prev, +.swiper-container-cube .swiper-slide-next + .swiper-slide { + pointer-events: auto; + visibility: visible; +} +.swiper-container-cube .swiper-slide-shadow-top, +.swiper-container-cube .swiper-slide-shadow-bottom, +.swiper-container-cube .swiper-slide-shadow-left, +.swiper-container-cube .swiper-slide-shadow-right { + z-index: 0; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; +} +.swiper-container-cube .swiper-cube-shadow { + position: absolute; + left: 0; + bottom: 0px; + width: 100%; + height: 100%; + background: #000; + opacity: 0.6; + -webkit-filter: blur(50px); + filter: blur(50px); + z-index: 0; +} +.swiper-container-fade.swiper-container-free-mode .swiper-slide { + transition-timing-function: ease-out; +} +.swiper-container-fade .swiper-slide { + pointer-events: none; + transition-property: opacity; +} +.swiper-container-fade .swiper-slide .swiper-slide { + pointer-events: none; +} +.swiper-container-fade .swiper-slide-active, +.swiper-container-fade .swiper-slide-active .swiper-slide-active { + pointer-events: auto; +} +.swiper-container-flip { + overflow: visible; +} +.swiper-container-flip .swiper-slide { + pointer-events: none; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + z-index: 1; +} +.swiper-container-flip .swiper-slide .swiper-slide { + pointer-events: none; +} +.swiper-container-flip .swiper-slide-active, +.swiper-container-flip .swiper-slide-active .swiper-slide-active { + pointer-events: auto; +} +.swiper-container-flip .swiper-slide-shadow-top, +.swiper-container-flip .swiper-slide-shadow-bottom, +.swiper-container-flip .swiper-slide-shadow-left, +.swiper-container-flip .swiper-slide-shadow-right { + z-index: 0; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; +} +/* Preloader */ +:root { + /* + --swiper-preloader-color: var(--swiper-theme-color); + */ +} +.swiper-lazy-preloader { + width: 42px; + height: 42px; + position: absolute; + left: 50%; + top: 50%; + margin-left: -21px; + margin-top: -21px; + z-index: 10; + transform-origin: 50%; + animation: swiper-preloader-spin 1s infinite linear; + box-sizing: border-box; + border: 4px solid var(--swiper-preloader-color, var(--swiper-theme-color)); + border-radius: 50%; + border-top-color: transparent; +} +.swiper-lazy-preloader-white { + --swiper-preloader-color: #fff; +} +.swiper-lazy-preloader-black { + --swiper-preloader-color: #000; +} +@keyframes swiper-preloader-spin { + 100% { + transform: rotate(360deg); + } +} +:root { + --swiper-navigation-size: 44px; + /* + --swiper-navigation-color: var(--swiper-theme-color); + */ +} +.swiper-button-prev, +.swiper-button-next { + position: absolute; + top: 50%; + width: calc(var(--swiper-navigation-size) / 44 * 27); + height: var(--swiper-navigation-size); + margin-top: calc(-1 * var(--swiper-navigation-size) / 2); + z-index: 10; + cursor: pointer; + display: flex; + align-items: center; + justify-content: center; + color: var(--swiper-navigation-color, var(--swiper-theme-color)); +} +.swiper-button-prev.swiper-button-disabled, +.swiper-button-next.swiper-button-disabled { + opacity: 0.35; + cursor: auto; + pointer-events: none; +} +.swiper-button-prev:after, +.swiper-button-next:after { + font-family: swiper-icons; + font-size: var(--swiper-navigation-size); + text-transform: none !important; + letter-spacing: 0; + text-transform: none; + font-variant: initial; + line-height: 1; +} +.swiper-button-prev, +.swiper-container-rtl .swiper-button-next { + left: 10px; + right: auto; +} +.swiper-button-prev:after, +.swiper-container-rtl .swiper-button-next:after { + content: 'prev'; +} +.swiper-button-next, +.swiper-container-rtl .swiper-button-prev { + right: 10px; + left: auto; +} +.swiper-button-next:after, +.swiper-container-rtl .swiper-button-prev:after { + content: 'next'; +} +.swiper-button-lock { + display: none; +} +:root { + /* + --swiper-pagination-color: var(--swiper-theme-color); + */ +} +.swiper-pagination { + position: absolute; + text-align: center; + transition: 300ms opacity; + transform: translate3d(0, 0, 0); + z-index: 10; +} +.swiper-pagination.swiper-pagination-hidden { + opacity: 0; +} +/* Common Styles */ +.swiper-pagination-fraction, +.swiper-pagination-custom, +.swiper-container-horizontal > .swiper-pagination-bullets { + bottom: 10px; + left: 0; + width: 100%; +} +/* Bullets */ +.swiper-pagination-bullets-dynamic { + overflow: hidden; + font-size: 0; +} +.swiper-pagination-bullets-dynamic .swiper-pagination-bullet { + transform: scale(0.33); + position: relative; +} +.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active { + transform: scale(1); +} +.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main { + transform: scale(1); +} +.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev { + transform: scale(0.66); +} +.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev { + transform: scale(0.33); +} +.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next { + transform: scale(0.66); +} +.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next { + transform: scale(0.33); +} +.swiper-pagination-bullet { + width: 8px; + height: 8px; + display: inline-block; + border-radius: 100%; + background: #000; + opacity: 0.2; +} +button.swiper-pagination-bullet { + border: none; + margin: 0; + padding: 0; + box-shadow: none; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; +} +.swiper-pagination-clickable .swiper-pagination-bullet { + cursor: pointer; +} +.swiper-pagination-bullet-active { + opacity: 1; + background: var(--swiper-pagination-color, var(--swiper-theme-color)); +} +.swiper-container-vertical > .swiper-pagination-bullets { + right: 10px; + top: 50%; + transform: translate3d(0px, -50%, 0); +} +.swiper-container-vertical > .swiper-pagination-bullets .swiper-pagination-bullet { + margin: 6px 0; + display: block; +} +.swiper-container-vertical > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic { + top: 50%; + transform: translateY(-50%); + width: 8px; +} +.swiper-container-vertical > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet { + display: inline-block; + transition: 200ms transform, 200ms top; +} +.swiper-container-horizontal > .swiper-pagination-bullets .swiper-pagination-bullet { + margin: 0 4px; +} +.swiper-container-horizontal > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic { + left: 50%; + transform: translateX(-50%); + white-space: nowrap; +} +.swiper-container-horizontal > .swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet { + transition: 200ms transform, 200ms left; +} +.swiper-container-horizontal.swiper-container-rtl > .swiper-pagination-bullets-dynamic .swiper-pagination-bullet { + transition: 200ms transform, 200ms right; +} +/* Progress */ +.swiper-pagination-progressbar { + background: rgba(0, 0, 0, 0.25); + position: absolute; +} +.swiper-pagination-progressbar .swiper-pagination-progressbar-fill { + background: var(--swiper-pagination-color, var(--swiper-theme-color)); + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + transform: scale(0); + transform-origin: left top; +} +.swiper-container-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill { + transform-origin: right top; +} +.swiper-container-horizontal > .swiper-pagination-progressbar, +.swiper-container-vertical > .swiper-pagination-progressbar.swiper-pagination-progressbar-opposite { + width: 100%; + height: 4px; + left: 0; + top: 0; +} +.swiper-container-vertical > .swiper-pagination-progressbar, +.swiper-container-horizontal > .swiper-pagination-progressbar.swiper-pagination-progressbar-opposite { + width: 4px; + height: 100%; + left: 0; + top: 0; +} +.swiper-pagination-lock { + display: none; +} +/* Scrollbar */ +.swiper-scrollbar { + border-radius: 10px; + position: relative; + -ms-touch-action: none; + background: rgba(0, 0, 0, 0.1); +} +.swiper-container-horizontal > .swiper-scrollbar { + position: absolute; + left: 1%; + bottom: 3px; + z-index: 50; + height: 5px; + width: 98%; +} +.swiper-container-vertical > .swiper-scrollbar { + position: absolute; + right: 3px; + top: 1%; + z-index: 50; + width: 5px; + height: 98%; +} +.swiper-scrollbar-drag { + height: 100%; + width: 100%; + position: relative; + background: rgba(0, 0, 0, 0.5); + border-radius: 10px; + left: 0; + top: 0; +} +.swiper-scrollbar-cursor-drag { + cursor: move; +} +.swiper-scrollbar-lock { + display: none; +} +.swiper-zoom-container { + width: 100%; + height: 100%; + display: flex; + justify-content: center; + align-items: center; + text-align: center; +} +.swiper-zoom-container > img, +.swiper-zoom-container > svg, +.swiper-zoom-container > canvas { + max-width: 100%; + max-height: 100%; + object-fit: contain; +} +.swiper-slide-zoomed { + cursor: move; +} +:root { + --swiper-theme-color: var(--f7-theme-color); +} +/* === Photo Browser === */ +:root { + --f7-photobrowser-bg-color: #fff; + --f7-photobrowser-bars-bg-image: none; + /* + --f7-photobrowser-bars-bg-color: rgba(var(--f7-bars-bg-color-rgb), 0.95); + --f7-photobrowser-bars-text-color: var(--f7-bars-text-color); + --f7-photobrowser-bars-link-color: var(--f7-bars-link-color); + */ + --f7-photobrowser-caption-font-size: 14px; + --f7-photobrowser-caption-light-text-color: #000; + --f7-photobrowser-caption-light-bg-color: rgba(255, 255, 255, 0.8); + --f7-photobrowser-caption-dark-text-color: #fff; + --f7-photobrowser-caption-dark-bg-color: rgba(0, 0, 0, 0.8); + --f7-photobrowser-exposed-bg-color: #000; + --f7-photobrowser-dark-bg-color: #000; + --f7-photobrowser-dark-bars-bg-color: rgba(27, 27, 27, 0.8); + --f7-photobrowser-dark-bars-text-color: #fff; + --f7-photobrowser-dark-bars-link-color: #fff; +} +.photo-browser { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + z-index: 400; +} +.photo-browser-standalone.modal-in { + transition-duration: 0ms; + animation: photo-browser-in 400ms; +} +.photo-browser-standalone.modal-out { + transition-duration: 0ms; + animation: photo-browser-out 400ms !important; +} +.photo-browser-standalone.modal-out.swipe-close-to-bottom, +.photo-browser-standalone.modal-out.swipe-close-to-top { + animation: none !important; +} +.photo-browser-standalone.photo-browser-transitioning { + transition: 400ms; + transition-property: transform; + animation: none !important; +} +.photo-browser-popup.modal-out.swipe-close-to-bottom, +.photo-browser-popup.modal-out.swipe-close-to-top { + transition-duration: 300ms; +} +.photo-browser-popup.modal-out.swipe-close-to-bottom { + transform: translate3d(0, 100vh, 0); +} +.photo-browser-popup.modal-out.swipe-close-to-top { + transform: translate3d(0, -100vh, 0); +} +.photo-browser-page { + background: none; +} +.photo-browser-page .toolbar { + transform: none; +} +.photo-browser-popup { + background: none; +} +.photo-browser-of { + margin: 0 5px; +} +.photo-browser-captions { + pointer-events: none; + position: absolute; + left: 0; + width: 100%; + bottom: var(--f7-safe-area-bottom); + z-index: 10; + opacity: 1; + transition: 400ms; +} +.photo-browser-captions.photo-browser-captions-exposed { + opacity: 0; +} +.toolbar ~ .photo-browser-captions { + bottom: calc(var(--f7-toolbar-height) + var(--f7-safe-area-bottom)); + transform: translate3d(0, 0px, 0); +} +.toolbar ~ .photo-browser-captions.photo-browser-captions-exposed { + transform: translate3d(0, 0px, 0); +} +.photo-browser-caption { + box-sizing: border-box; + transition: 300ms; + position: absolute; + bottom: 0; + left: 0; + opacity: 0; + padding: 4px 5px; + width: 100%; + text-align: center; + font-size: var(--f7-photobrowser-caption-font-size); +} +.photo-browser-caption:empty { + display: none; +} +.photo-browser-caption.photo-browser-caption-active { + opacity: 1; +} +.photo-browser-captions-light .photo-browser-caption { + color: var(--f7-photobrowser-caption-light-text-color); + background: var(--f7-photobrowser-caption-light-bg-color); +} +.photo-browser-captions-dark .photo-browser-caption { + color: var(--f7-photobrowser-caption-dark-text-color); + background: var(--f7-photobrowser-caption-dark-bg-color); +} +.photo-browser-swiper-container { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + overflow: hidden; + background: var(--f7-photobrowser-bg-color); + transition: 400ms; + transition-property: background-color; +} +.photo-browser-prev.swiper-button-disabled, +.photo-browser-next.swiper-button-disabled { + opacity: 0.3; + pointer-events: none; +} +.photo-browser-slide { + width: 100%; + height: 100%; + position: relative; + overflow: hidden; + display: flex; + justify-content: center; + align-items: center; + flex-shrink: 0; + box-sizing: border-box; +} +.photo-browser-slide span.swiper-zoom-container { + display: none; +} +.photo-browser-slide img { + width: auto; + height: auto; + max-width: 100%; + max-height: 100%; + display: none; +} +.photo-browser-slide.swiper-slide-active span.swiper-zoom-container, +.photo-browser-slide.swiper-slide-next span.swiper-zoom-container, +.photo-browser-slide.swiper-slide-prev span.swiper-zoom-container { + display: flex; +} +.photo-browser-slide.swiper-slide-active img, +.photo-browser-slide.swiper-slide-next img, +.photo-browser-slide.swiper-slide-prev img { + display: inline; +} +.photo-browser-slide.swiper-slide-active.photo-browser-slide-lazy .preloader, +.photo-browser-slide.swiper-slide-next.photo-browser-slide-lazy .preloader, +.photo-browser-slide.swiper-slide-prev.photo-browser-slide-lazy .preloader { + display: block; +} +.photo-browser-slide iframe { + width: 100%; + height: 100%; +} +.photo-browser-slide .preloader { + display: none; + position: absolute; + width: 42px; + height: 42px; + margin-left: -21px; + margin-top: -21px; + left: 50%; + top: 50%; +} +.photo-browser-page .navbar-bg, +.navbar-photo-browser .navbar-bg, +.photo-browser-page .toolbar { + background-color: var(--f7-photobrowser-bars-bg-color, rgba(var(--f7-bars-bg-color-rgb), 0.95)); + background-image: var(--f7-photobrowser-bars-bg-image); +} +.photo-browser-page .navbar, +.photo-browser-page .toolbar { + transition: 400ms; + color: var(--f7-photobrowser-bars-text-color, var(--f7-bars-text-color)); +} +.photo-browser-page .navbar a, +.photo-browser-page .toolbar a { + color: var(--f7-photobrowser-bars-link-color, var(--f7-bars-link-color, var(--f7-theme-color))); +} +.photo-browser-exposed .navbar, +.photo-browser-exposed .toolbar { + opacity: 0; + visibility: hidden; + pointer-events: none; +} +.photo-browser-exposed .toolbar ~ .photo-browser-captions { + transform: translate3d(0, var(--f7-toolbar-height), 0); +} +.photo-browser-exposed .photo-browser-swiper-container { + background: var(--f7-photobrowser-exposed-bg-color); +} +.photo-browser-exposed .photo-browser-caption { + color: var(--f7-photobrowser-caption-dark-text-color); + background: var(--f7-photobrowser-caption-dark-bg-color); +} +.view.with-photo-browser-page-exposed .navbar { + opacity: 0; + pointer-events: none; +} +.photo-browser-page-dark .navbar-bg, +.navbar-photo-browser-dark .navbar-bg, +.photo-browser-page-dark .toolbar { + background: var(--f7-photobrowser-dark-bars-bg-color); +} +.photo-browser-page-dark .navbar-bg:before, +.navbar-photo-browser-dark .navbar-bg:before, +.photo-browser-page-dark .toolbar:before, +.photo-browser-page-dark .navbar-bg:after, +.navbar-photo-browser-dark .navbar-bg:after, +.photo-browser-page-dark .toolbar:after { + display: none !important; +} +.navbar-photo-browser-dark, +.photo-browser-dark .navbar, +.photo-browser-dark .toolbar, +.photo-browser-dark-page .navbar, +.photo-browser-dark-page .toolbar { + --f7-touch-ripple-color: var(--f7-touch-ripple-white); + --f7-link-highlight-color: var(--f7-link-highlight-white); + color: var(--f7-photobrowser-dark-bars-text-color); +} +.navbar-photo-browser-dark a, +.photo-browser-dark .navbar a, +.photo-browser-dark .toolbar a, +.photo-browser-dark-page .navbar a, +.photo-browser-dark-page .toolbar a { + color: var(--f7-photobrowser-dark-bars-link-color); +} +.photo-browser-dark .photo-browser-swiper-container, +.photo-browser-page-dark .photo-browser-swiper-container { + background: var(--f7-photobrowser-dark-bg-color); +} +@keyframes photo-browser-in { + 0% { + transform: translate3d(0, 0, 0) scale(0.5); + opacity: 0; + } + 50% { + transform: translate3d(0, 0, 0) scale(1.05); + opacity: 1; + } + 100% { + transform: translate3d(0, 0, 0) scale(1); + opacity: 1; + } +} +@keyframes photo-browser-out { + 0% { + transform: translate3d(0, 0, 0) scale(1); + opacity: 1; + } + 50% { + transform: translate3d(0, 0, 0) scale(1.05); + opacity: 1; + } + 100% { + transform: translate3d(0, 0, 0) scale(0.5); + opacity: 0; + } +} +/* === Notifications === */ +:root { + --f7-notification-max-width: 568px; + --f7-notification-subtitle-text-transform: none; + --f7-notification-subtitle-line-height: 1.35; + --f7-notification-text-text-transform: none; + --f7-notification-text-font-weight: 400; +} +:root .theme-dark, +:root.theme-dark { + --f7-notification-subtitle-color: #fff; +} +.ios { + --f7-notification-margin: 8px; + --f7-notification-padding: 10px; + --f7-notification-border-radius: 12px; + --f7-notification-box-shadow: 0px 5px 25px -10px rgba(0, 0, 0, 0.7); + --f7-notification-icon-size: 20px; + --f7-notification-title-font-size: 13px; + --f7-notification-title-text-transform: uppercase; + --f7-notification-title-line-height: 1.4; + --f7-notification-title-font-weight: 400; + --f7-notification-title-letter-spacing: 0.02em; + --f7-notification-title-right-font-size: 13px; + --f7-notification-subtitle-font-size: 15px; + --f7-notification-subtitle-font-weight: 600; + --f7-notification-text-font-size: 15px; + --f7-notification-text-line-height: 1.2; + --f7-notification-bg-color: rgba(250, 250, 250, 0.95); + --f7-notification-bg-color-rgb: 255, 255, 255; + --f7-notification-title-color: #000; + --f7-notification-title-right-color: rgba(0, 0, 0, 0.45); + --f7-notification-subtitle-color: #000; + --f7-notification-text-color: #000; +} +.ios .theme-dark, +.ios.theme-dark { + --f7-notification-bg-color: rgba(30, 30, 30, 0.95); + --f7-notification-bg-color-rgb: 30, 30, 30; + --f7-notification-title-color: #fff; + --f7-notification-text-color: #fff; + --f7-notification-title-right-color: rgba(255, 255, 255, 0.55); +} +.md { + --f7-notification-margin: 0px; + --f7-notification-padding: 16px; + --f7-notification-border-radius: 0px; + --f7-notification-box-shadow: 0 2px 4px rgba(0, 0, 0, 0.22), 0 1px 2px rgba(0, 0, 0, 0.24); + --f7-notification-icon-size: 16px; + --f7-notification-title-color: var(--f7-theme-color); + --f7-notification-title-font-size: 12px; + --f7-notification-title-text-transform: none; + --f7-notification-title-line-height: 1; + --f7-notification-title-font-weight: 400; + --f7-notification-title-right-font-size: 12px; + --f7-notification-subtitle-font-size: 14px; + --f7-notification-subtitle-font-weight: 400; + --f7-notification-text-font-size: 14px; + --f7-notification-text-line-height: 1.35; + --f7-notification-bg-color: #fff; + --f7-notification-title-right-color: rgba(0, 0, 0, 0.54); + --f7-notification-subtitle-color: #212121; + --f7-notification-text-color: rgba(0, 0, 0, 0.54); +} +.md .theme-dark, +.md.theme-dark { + --f7-notification-bg-color: #242424; + --f7-notification-title-right-color: rgba(255, 255, 255, 0.54); + --f7-notification-text-color: rgba(255, 255, 255, 0.54); +} +.aurora { + --f7-notification-margin: 10px; + --f7-notification-padding: 10px; + --f7-notification-border-radius: 4px; + --f7-notification-box-shadow: 0px 5px 25px -10px rgba(0, 0, 0, 0.7); + --f7-notification-icon-size: 18px; + --f7-notification-title-font-size: 13px; + --f7-notification-title-text-transform: uppercase; + --f7-notification-title-line-height: 1.4; + --f7-notification-title-font-weight: 500; + --f7-notification-title-letter-spacing: 0.02em; + --f7-notification-title-right-font-size: 13px; + --f7-notification-subtitle-font-size: 12px; + --f7-notification-subtitle-font-weight: 600; + --f7-notification-text-font-size: 12px; + --f7-notification-text-line-height: 1.2; + --f7-notification-bg-color: #fff; + --f7-notification-title-color: #000; + --f7-notification-title-right-color: rgba(255, 255, 255, 0.6); + --f7-notification-subtitle-color: #000; + --f7-notification-text-color: #000; +} +.aurora .theme-dark, +.aurora.theme-dark { + --f7-notification-bg-color: #242424; + --f7-notification-title-color: #fff; + --f7-notification-text-color: #fff; + --f7-notification-title-right-color: rgba(255, 255, 255, 0.54); +} +.notification { + --f7-link-highlight-color: var(--f7-link-highlight-black); + --f7-touch-ripple-color: var(--f7-touch-ripple-black); + position: absolute; + left: var(--f7-notification-margin); + top: var(--f7-notification-margin); + width: calc(100% - var(--f7-notification-margin) * 2); + z-index: 20000; + font-size: 14px; + margin: 0; + border: none; + display: none; + box-sizing: border-box; + transition-property: transform; + direction: ltr; + max-width: var(--f7-notification-max-width); + padding: var(--f7-notification-padding); + border-radius: var(--f7-notification-border-radius); + box-shadow: var(--f7-notification-box-shadow); + background: var(--f7-notification-bg-color); + margin-top: var(--f7-safe-area-top); +} +@supports ((-webkit-backdrop-filter: blur(20px)) or (backdrop-filter: blur(20px))) { + .ios-translucent-modals .notification { + background-color: rgba(var(--f7-notification-bg-color-rgb), 0.8); + -webkit-backdrop-filter: saturate(180%) blur(20px); + backdrop-filter: saturate(180%) blur(20px); + } +} +@media (min-width: 568px) { + .notification { + left: 50%; + width: var(--f7-notification-max-width); + margin-left: calc(-1 * var(--f7-notification-max-width) / 2); + } +} +.notification-title { + color: var(--f7-notification-title-color, var(--f7-theme-color)); + font-size: var(--f7-notification-title-font-size); + text-transform: var(--f7-notification-title-text-transform); + line-height: var(--f7-notification-title-line-height); + font-weight: var(--f7-notification-title-font-weight); + letter-spacing: var(--f7-notification-title-letter-spacing); +} +.notification-subtitle { + color: var(--f7-notification-subtitle-color); + font-size: var(--f7-notification-subtitle-font-size); + text-transform: var(--f7-notification-subtitle-text-transform); + line-height: var(--f7-notification-subtitle-line-height); + font-weight: var(--f7-notification-subtitle-font-weight); +} +.notification-text { + color: var(--f7-notification-text-color); + font-size: var(--f7-notification-text-font-size); + text-transform: var(--f7-notification-text-text-transform); + line-height: var(--f7-notification-text-line-height); + font-weight: var(--f7-notification-text-font-weight); +} +.notification-title-right-text { + color: var(--f7-notification-title-right-color); + font-size: var(--f7-notification-title-right-font-size); +} +.notification-icon { + font-size: 0; + line-height: var(--f7-notification-icon-size); +} +.notification-icon i, +.notification-icon { + width: var(--f7-notification-icon-size) !important; + height: var(--f7-notification-icon-size) !important; +} +.notification-icon i { + font-size: var(--f7-notification-icon-size); +} +.notification-icon img { + height: var(--f7-notification-icon-size); +} +.notification-header { + display: flex; + justify-content: flex-start; + align-items: center; +} +.notification-close-button { + margin-left: auto; + cursor: pointer; + position: relative; +} +.notification-close-button:after { + font-family: 'framework7-core-icons'; + font-weight: normal; + font-style: normal; + line-height: 1; + letter-spacing: normal; + text-transform: none; + white-space: nowrap; + word-wrap: normal; + direction: ltr; + -webkit-font-smoothing: antialiased; + text-rendering: optimizeLegibility; + -moz-osx-font-smoothing: grayscale; + font-feature-settings: "liga"; + display: block; + width: 100%; + height: 100%; + font-size: 20px; + position: absolute; + left: 50%; + top: 50%; + text-align: center; +} +.ios .notification { + transition-duration: 450ms; + transform: translate3d(0%, -200%, 0); +} +.ios .notification.modal-in { + transform: translate3d(0%, 0%, 0); + opacity: 1; +} +.ios .notification.modal-out { + transform: translate3d(0%, -200%, 0); +} +.ios .notification-icon { + margin-right: 8px; +} +.ios .notification-header + .notification-content { + margin-top: 10px; +} +.ios .notification-title-right-text { + margin-right: 6px; + margin-left: auto; +} +.ios .notification-title-right-text + .notification-close-button { + margin-left: 10px; +} +.ios .notification-close-button { + font-size: 14px; + width: 20px; + height: 20px; + opacity: 0.3; + transition-duration: 300ms; +} +.ios .notification-close-button.active-state { + transition-duration: 0ms; + opacity: 0.1; +} +.ios .notification-close-button:after { + color: #000; + content: 'notification_close_ios'; + font-size: 0.65em; + line-height: 44px; + width: 44px; + height: 44px; + margin-left: -22px; + margin-top: -22px; +} +.ios .theme-dark .notification-close-button:after, +.ios.theme-dark .notification-close-button:after { + color: #fff; +} +.md .notification { + transform: translate3d(0, -150%, 0); +} +.md .notification.modal-in { + transition-duration: 0ms; + animation: notification-md-in 400ms ease-out; + transform: translate3d(0, 0%, 0); +} +.md .notification.modal-in.notification-transitioning { + transition-duration: 200ms; +} +.md .notification.modal-out { + animation: none; + transition-duration: 200ms; + transition-timing-function: ease-in; + transform: translate3d(0, -150%, 0); +} +.md .notification-icon { + margin-right: 8px; +} +.md .notification-subtitle + .notification-text { + margin-top: 2px; +} +.md .notification-header + .notification-content { + margin-top: 6px; +} +.md .notification-title-right-text { + margin-left: 4px; +} +.md .notification-title-right-text:before { + content: ''; + width: 3px; + height: 3px; + border-radius: 50%; + display: inline-block; + vertical-align: middle; + margin-right: 4px; + background: var(--f7-notification-title-right-color); +} +.md .notification-close-button { + width: 16px; + height: 16px; + transition-duration: 300ms; +} +.md .notification-close-button:before { + content: ''; + width: 152%; + height: 152%; + position: absolute; + left: -26%; + top: -26%; + background-image: radial-gradient(circle at center, var(--f7-link-highlight-color) 66%, rgba(255, 255, 255, 0) 66%); + background-repeat: no-repeat; + background-position: center; + background-size: 100% 100%; + opacity: 0; + pointer-events: none; + transition-duration: 600ms; +} +.md .notification-close-button.active-state:before { + opacity: 1; + transition-duration: 150ms; +} +.md .notification-close-button:before, +.md .notification-close-button:after { + width: 48px; + height: 48px; + left: 50%; + top: 50%; + margin-left: -24px; + margin-top: -24px; +} +.md .notification-close-button:after { + color: #737373; + content: 'delete_md'; + line-height: 48px; + font-size: 14px; +} +@keyframes notification-md-in { + 0% { + transform: translate3d(0, -150%, 0); + } + 50% { + transform: translate3d(0, 10%, 0); + } + 100% { + transform: translate3d(0, 0%, 0); + } +} +.aurora .notification { + transition-duration: 450ms; + transform: translate3d(0%, -200%, 0); +} +.aurora .notification.modal-in { + transform: translate3d(0%, 0%, 0); + opacity: 1; +} +.aurora .notification.modal-out { + transform: translate3d(0%, -200%, 0); +} +.aurora .notification-icon { + margin-right: 10px; +} +.aurora .notification-header + .notification-content { + margin-top: 10px; +} +.aurora .notification-title-right-text { + margin-right: 0px; + margin-left: auto; +} +.aurora .notification-title-right-text + .notification-close-button { + margin-left: 10px; +} +.aurora .notification-close-button { + font-size: 14px; + width: 16px; + height: 16px; + opacity: 0.4; + transition-duration: 300ms; +} +.aurora .notification-close-button.active-state { + transition-duration: 0ms; + opacity: 0.6; +} +.aurora .notification-close-button:after { + color: #000; + content: 'notification_close_ios'; + font-size: 0.5em; + line-height: 38px; + width: 38px; + height: 38px; + margin-left: -19px; + margin-top: -19px; +} +.aurora .theme-dark .notification-close-button:after, +.aurora.theme-dark .notification-close-button:after { + color: #fff; +} +/* === Autocomplete === */ +:root { + --f7-autocomplete-dropdown-placeholder-color: #a9a9a9; + --f7-autocomplete-dropdown-preloader-size: 20px; + /* + --f7-autocomplete-dropdown-selected-bg-color: rgba(var(--f7-theme-color-rgb), 0.2); + */ + --f7-autocomplete-dropdown-bg-color: #fff; +} +:root .theme-dark, +:root.theme-dark { + --f7-autocomplete-dropdown-bg-color: #1c1c1d; +} +.ios { + --f7-autocomplete-dropdown-box-shadow: 0px 3px 3px rgba(0, 0, 0, 0.2); + --f7-autocomplete-dropdown-text-matching-font-weight: 600; + --f7-autocomplete-dropdown-font-size: var(--f7-list-font-size); + --f7-autocomplete-dropdown-text-color: #000; + --f7-autocomplete-dropdown-text-matching-color: #000; +} +.ios .theme-dark, +.ios.theme-dark { + --f7-autocomplete-dropdown-text-color: #fff; + --f7-autocomplete-dropdown-text-matching-color: #fff; +} +.md { + --f7-autocomplete-dropdown-box-shadow: 0 2px 2px rgba(0, 0, 0, 0.25); + --f7-autocomplete-dropdown-text-matching-font-weight: 400; + --f7-autocomplete-dropdown-font-size: var(--f7-list-font-size); + --f7-autocomplete-dropdown-text-color: rgba(0, 0, 0, 0.54); + --f7-autocomplete-dropdown-text-matching-color: #212121; +} +.md .theme-dark, +.md.theme-dark { + --f7-autocomplete-dropdown-text-color: rgba(255, 255, 255, 0.54); + --f7-autocomplete-dropdown-text-matching-color: rgba(255, 255, 255, 0.87); +} +.aurora { + --f7-autocomplete-dropdown-box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.2); + --f7-autocomplete-dropdown-text-matching-font-weight: 700; + --f7-autocomplete-dropdown-font-size: 13px; + --f7-autocomplete-dropdown-text-color: #000; + --f7-autocomplete-dropdown-text-matching-color: #000; +} +.aurora .theme-dark, +.aurora.theme-dark { + --f7-autocomplete-dropdown-text-color: #fff; + --f7-autocomplete-dropdown-text-matching-color: #fff; +} +.autocomplete-page .autocomplete-found { + display: block; +} +.autocomplete-page .autocomplete-not-found { + display: none; +} +.autocomplete-page .autocomplete-values { + display: block; +} +.autocomplete-page .list ul:empty { + display: none; +} +.autocomplete-preloader:not(.autocomplete-preloader-visible) { + visibility: hidden; +} +.autocomplete-preloader:not(.autocomplete-preloader-visible), +.autocomplete-preloader:not(.autocomplete-preloader-visible) * { + animation: none; +} +.autocomplete-dropdown { + background: var(--f7-autocomplete-dropdown-bg-color); + box-shadow: var(--f7-autocomplete-dropdown-box-shadow); + box-sizing: border-box; + position: absolute; + z-index: 500; + width: 100%; + right: 0; +} +.autocomplete-dropdown .autocomplete-dropdown-inner { + position: relative; + overflow: auto; + -webkit-overflow-scrolling: touch; + height: 100%; + z-index: 1; +} +.autocomplete-dropdown .autocomplete-preloader { + display: none; + position: absolute; + bottom: 100%; + width: var(--f7-autocomplete-dropdown-preloader-size); + height: var(--f7-autocomplete-dropdown-preloader-size); +} +.autocomplete-dropdown .autocomplete-preloader-visible { + display: block; +} +.autocomplete-dropdown .autocomplete-dropdown-placeholder { + color: var(--f7-autocomplete-dropdown-placeholder-color); +} +.autocomplete-dropdown .list { + margin: 0; + color: var(--f7-autocomplete-dropdown-text-color); + font-size: var(--f7-autocomplete-dropdown-font-size); +} +.autocomplete-dropdown .list b { + color: var(--f7-autocomplete-dropdown-text-matching-color); + font-weight: var(--f7-autocomplete-dropdown-text-matching-font-weight); +} +.autocomplete-dropdown .list ul { + background: none !important; +} +.autocomplete-dropdown .list ul:before, +.autocomplete-dropdown .list ul:after { + display: none !important; +} +.autocomplete-dropdown .autocomplete-dropdown-selected { + background: var(--f7-autocomplete-dropdown-selected-bg-color, rgba(var(--f7-theme-color-rgb), 0.2)); +} +.searchbar-input-wrap .autocomplete-dropdown { + background-color: var(--f7-searchbar-input-bg-color, var(--f7-searchbar-bg-color)); + border-radius: var(--f7-searchbar-input-border-radius); +} +.searchbar-input-wrap .autocomplete-dropdown .autocomplete-dropdown-placeholder { + color: var(--f7-searchbar-placeholder-color); +} +.searchbar-input-wrap .autocomplete-dropdown li:last-child { + border-radius: 0 0 var(--f7-searchbar-input-border-radius) var(--f7-searchbar-input-border-radius); + position: relative; + overflow: hidden; +} +.searchbar-input-wrap .autocomplete-dropdown .item-content { + padding-right: calc(var(--f7-searchbar-input-padding-horizontal) + var(--f7-searchbar-input-extra-padding-left)); +} +.list .item-content-dropdown-expanded .item-title.item-label { + width: 0; + flex-shrink: 10; + overflow: hidden; +} +.list .item-content-dropdown-expanded .item-title.item-label + .item-input-wrap { + margin-right: 0; +} +.list .item-content-dropdown-expanded .item-input-wrap { + width: 100%; +} +.ios .autocomplete-dropdown .autocomplete-preloader { + left: 16px; + margin-bottom: 12px; +} +.ios .searchbar-input-wrap .autocomplete-dropdown { + margin-top: calc(-1 * var(--f7-searchbar-input-height)); + top: 100%; + z-index: 20; +} +.ios .searchbar-input-wrap .autocomplete-dropdown .autocomplete-dropdown-inner { + padding-top: var(--f7-searchbar-input-height); +} +.md .autocomplete-page .navbar .autocomplete-preloader { + margin-left: 8px; +} +.md .autocomplete-popup .navbar .autocomplete-preloader { + margin-right: 8px; + margin-left: 16px; +} +.md .autocomplete-dropdown .autocomplete-preloader { + left: 16px; + margin-bottom: 8px; +} +.md .autocomplete-dropdown .autocomplete-preloader .preloader-inner-gap, +.md .autocomplete-dropdown .autocomplete-preloader .preloader-inner-half-circle { + border-width: 3px; +} +.aurora .autocomplete-dropdown .autocomplete-preloader { + left: 16px; + margin-bottom: 2px; +} +.aurora .searchbar-input-wrap .autocomplete-dropdown { + margin-top: calc(-1 * var(--f7-searchbar-input-height)); + top: 100%; + z-index: 20; +} +.aurora .searchbar-input-wrap .autocomplete-dropdown .autocomplete-dropdown-inner { + padding-top: var(--f7-searchbar-input-height); +} +/* === Tooltip === */ +:root { + --f7-tooltip-bg-color: rgba(0, 0, 0, 0.87); + --f7-tooltip-text-color: #fff; + --f7-tooltip-border-radius: 4px; + --f7-tooltip-padding: 8px 16px; + --f7-tooltip-font-size: 14px; + --f7-tooltip-font-weight: 500; + --f7-tooltip-desktop-padding: 6px 8px; + --f7-tooltip-desktop-font-size: 12px; +} +.tooltip { + position: absolute; + z-index: 20000; + background: var(--f7-tooltip-bg-color); + border-radius: var(--f7-tooltip-border-radius); + padding: var(--f7-tooltip-padding); + color: var(--f7-tooltip-text-color); + font-size: var(--f7-tooltip-font-size); + font-weight: var(--f7-tooltip-font-weight); + box-sizing: border-box; + line-height: 1.2; + opacity: 0; + transform: scale(0.9); + transition-duration: 150ms; + transition-property: opacity, transform; + z-index: 99000; +} +.tooltip.tooltip-in { + transform: scale(1); + opacity: 1; +} +.tooltip.tooltip-out { + opacity: 0; + transform: scale(1); +} +.device-desktop .tooltip { + font-size: var(--f7-tooltip-desktop-font-size); + padding: var(--f7-tooltip-desktop-padding); +} +/* === Gauge === */ +.gauge { + position: relative; + text-align: center; + margin-left: auto; + margin-right: auto; + display: inline-block; +} +.gauge-svg, +.gauge svg { + max-width: 100%; + height: auto; +} +.gauge-svg circle, +.gauge svg circle, +.gauge-svg path, +.gauge svg path { + transition-duration: 400ms; +} +/* === Skeleton === */ +:root { + --f7-skeleton-color: #ccc; +} +.theme-dark { + --f7-skeleton-color: #515151; +} +.skeleton-text { + font-family: 'framework7-skeleton' !important; +} +.skeleton-text, +.skeleton-text * { + color: var(--f7-skeleton-color) !important; + font-weight: normal !important; + font-style: normal !important; + letter-spacing: -0.015em !important; +} +.skeleton-block { + height: 1em; + background: var(--f7-skeleton-color) !important; + width: 100%; +} +.skeleton-effect-fade { + animation: skeleton-effect-fade 1s infinite; +} +.skeleton-effect-blink { + -webkit-mask-image: linear-gradient(to right, transparent 0%, black 25%, black 75%, transparent 100%); + mask-image: linear-gradient(to right, transparent 0%, black 25%, black 75%, transparent 100%); + -webkit-mask-size: 200% 100%; + mask-size: 200% 100%; + -webkit-mask-repeat: repeat; + mask-repeat: repeat; + -webkit-mask-position: 50% top; + mask-position: 50% top; + animation: skeleton-effect-blink 1s infinite; +} +.skeleton-effect-pulse { + animation: skeleton-effect-pulse 1s infinite; +} +@keyframes skeleton-effect-fade { + 0% { + opacity: 1; + } + 50% { + opacity: 0.2; + } + 100% { + opacity: 1; + } +} +@keyframes skeleton-effect-blink { + 0% { + -webkit-mask-position: 50% top; + mask-position: 50% top; + } + 100% { + -webkit-mask-position: -150% top; + mask-position: -150% top; + } +} +@keyframes skeleton-effect-pulse { + 0% { + transform: scale(1); + } + 40% { + transform: scale(1); + } + 50% { + transform: scale(0.975); + } + 100% { + transform: scale(1); + } +} +/* === Menu === */ +:root { + --f7-menu-text-color: #fff; + --f7-menu-font-size: 16px; + --f7-menu-font-weight: 500; + --f7-menu-line-height: 1.2; + --f7-menu-bg-color: rgba(0, 0, 0, 0.9); + --f7-menu-item-pressed-bg-color: rgba(20, 20, 20, 0.9); + --f7-menu-item-padding-horizontal: 12px; + --f7-menu-item-spacing: 6px; + --f7-menu-item-height: 40px; + --f7-menu-item-dropdown-icon-color: rgba(255, 255, 255, 0.4); + --f7-menu-item-border-radius: 8px; + /* + --f7-menu-dropdown-pressed-bg-color: var(--f7-theme-color); + */ + --f7-menu-dropdown-item-height: 28px; + --f7-menu-dropdown-divider-color: rgba(255, 255, 255, 0.2); + --f7-menu-dropdown-padding-vertical: 6px; + /* + --f7-menu-dropdown-border-radius: var(--f7-menu-item-border-radius); + */ +} +.aurora { + --f7-menu-font-size: 13px; + --f7-menu-item-height: 28px; + --f7-menu-dropdown-item-height: 24px; + --f7-menu-item-border-radius: 5px; + --f7-menu-item-padding-horizontal: 10px; +} +.menu { + z-index: 1000; + position: relative; + transform: translate3d(0, 0, 0); + --f7-touch-ripple-color: var(--f7-touch-ripple-white); +} +.menu-inner { + display: flex; + justify-content: flex-start; + align-items: flex-start; + padding-left: var(--f7-menu-item-spacing); + padding-right: var(--f7-menu-item-spacing); +} +.menu-inner:after { + content: ''; + width: var(--f7-menu-item-spacing); + height: 100%; + flex-shrink: 0; +} +.menu-item { + height: var(--f7-menu-item-height); + min-width: var(--f7-menu-item-height); + flex-shrink: 0; + background: var(--f7-menu-bg-color); + color: var(--f7-menu-text-color); + border-radius: var(--f7-menu-item-border-radius); + position: relative; + box-sizing: border-box; + font-size: var(--f7-menu-font-size); + font-weight: var(--f7-menu-font-weight); + cursor: pointer; + margin-right: var(--f7-menu-item-spacing); +} +.menu-item:first-child { + margin-right: 0; +} +.menu-item.active-state:not(.menu-item-dropdown-opened) { + background-color: rgba(0, 0, 0, 0.7); +} +.menu-item.icon-only { + padding-left: 0; + padding-right: 0; +} +.menu-item-content { + display: flex; + justify-content: center; + align-items: center; + padding: 0 var(--f7-menu-item-padding-horizontal); + height: 100%; + box-sizing: border-box; + width: 100%; + overflow: hidden; + border-radius: var(--f7-menu-item-border-radius); + position: relative; +} +.menu-item-content.icon-only, +.icon-only .menu-item-content { + padding-left: 0; + padding-right: 0; +} +.menu-item-dropdown .menu-item-content:after { + content: ''; + position: absolute; + width: 20px; + height: 2px; + left: 50%; + transform: translateX(-50%); + bottom: 4px; + background: var(--f7-menu-item-dropdown-icon-color); + border-radius: 4px; +} +.menu-dropdown { + opacity: 0; + visibility: hidden; + pointer-events: none; + cursor: auto; + height: 10px; + background: var(--f7-menu-bg-color); + position: relative; +} +.menu-dropdown-content { + position: absolute; + top: 100%; + border-radius: var(--f7-menu-dropdown-border-radius, var(--f7-menu-item-border-radius)); + padding-top: var(--f7-menu-dropdown-padding-vertical); + padding-bottom: var(--f7-menu-dropdown-padding-vertical); + box-sizing: border-box; + background: var(--f7-menu-bg-color); + overflow: auto; + -webkit-overflow-scrolling: touch; + min-width: calc(100% + 24px); +} +.menu-dropdown-link, +.menu-dropdown-item { + display: flex; + justify-content: space-between; + align-items: center; + padding-left: var(--f7-menu-item-padding-horizontal); + padding-right: var(--f7-menu-item-padding-horizontal); + min-height: var(--f7-menu-dropdown-item-height); + line-height: var(--f7-menu-line-height); + font-size: var(--f7-menu-font-size); + color: var(--f7-menu-text-color); + font-weight: var(--f7-menu-font-weight); + white-space: nowrap; + min-width: 100px; +} +.menu-dropdown-link i, +.menu-dropdown-item i, +.menu-dropdown-link i.icon, +.menu-dropdown-item i.icon, +.menu-dropdown-link i.f7-icons, +.menu-dropdown-item i.f7-icons, +.menu-dropdown-link i.material-icons, +.menu-dropdown-item i.material-icons { + font-size: 20px; +} +.menu-dropdown-link.active-state { + background: var(--f7-menu-dropdown-pressed-bg-color, var(--f7-theme-color)); + color: var(--f7-menu-text-color); +} +.menu-dropdown-divider { + height: 1px; + margin-top: 2px; + margin-bottom: 2px; + background: var(--f7-menu-dropdown-divider-color); +} +.menu-item-dropdown-opened { + border-bottom-left-radius: 0px; + border-bottom-right-radius: 0px; +} +.menu-item-dropdown-opened .menu-item-content:after { + opacity: 0; +} +.menu-item-dropdown-opened .menu-dropdown { + opacity: 1; + visibility: visible; + pointer-events: auto; +} +.menu-item-dropdown-left .menu-dropdown:after, +.menu-item-dropdown-center .menu-dropdown:after, +.menu-dropdown-left:after, +.menu-dropdown-center:after { + content: ''; + position: absolute; + left: 100%; + bottom: 0; + width: var(--f7-menu-item-border-radius); + height: var(--f7-menu-item-border-radius); + background-image: radial-gradient(ellipse at 100% 0%, transparent 0%, transparent 70%, var(--f7-menu-bg-color) 72%); +} +.menu-item-dropdown-right .menu-dropdown:before, +.menu-item-dropdown-center .menu-dropdown:before, +.menu-dropdown-right:before, +.menu-dropdown-center:before { + content: ''; + position: absolute; + right: 100%; + bottom: 0; + width: var(--f7-menu-item-border-radius); + height: var(--f7-menu-item-border-radius); + background-image: radial-gradient(ellipse at 0% 0%, transparent 0%, transparent 70%, var(--f7-menu-bg-color) 72%); +} +.menu-item-dropdown-left .menu-dropdown-content, +.menu-dropdown-left .menu-dropdown-content { + left: 0; + border-top-left-radius: 0px; +} +.menu-item-dropdown-right .menu-dropdown-content, +.menu-dropdown-right .menu-dropdown-content { + right: 0; + border-top-right-radius: 0px; +} +.menu-item-dropdown-center .menu-dropdown-content, +.menu-dropdown-center .menu-dropdown-content { + left: 50%; + min-width: calc(100% + 24px + 24px); + transform: translateX(-50%); +} +/* === Color Picker === */ +:root { + --f7-color-picker-popover-width: 350px; + --f7-color-picker-slider-size: 6px; + --f7-color-picker-slider-knob-size: 16px; + --f7-color-picker-bar-size: 50px; + --f7-color-picker-bar-min-height: 260px; + --f7-color-picker-value-width: 64px; + --f7-color-picker-value-height: 32px; + --f7-color-picker-value-font-size: 16px; + --f7-color-picker-value-border-radius: 4px; + --f7-color-picker-hex-value-width: 84px; + --f7-color-picker-label-font-size: 14px; + --f7-color-picker-label-width: 10px; + --f7-color-picker-label-height: 14px; + --f7-color-picker-sb-spectrum-height: 260px; + --f7-color-picker-sb-spectrum-handle-size: 16px; + --f7-color-picker-wheel-width: 330px; + --f7-color-picker-palette-value-width: 36px; + --f7-color-picker-palette-value-height: 36px; + --f7-color-picker-initial-current-color-height: 40px; + --f7-color-picker-initial-current-color-border-radius: 4px; + --f7-color-picker-sheet-bg-color: #fff; + --f7-color-picker-popup-bg-color: #fff; + --f7-color-picker-value-bg-color: rgba(0, 0, 0, 0.05); + --f7-color-picker-group-bg-color: rgba(0, 0, 0, 0.05); + --f7-color-picker-group-value-bg-color: #fff; +} +:root .theme-dark, +:root.theme-dark { + --f7-color-picker-sheet-bg-color: #121212; + --f7-color-picker-popup-bg-color: #121212; + --f7-color-picker-value-bg-color: rgba(255, 255, 255, 0.1); + --f7-color-picker-group-bg-color: #000; + --f7-color-picker-group-value-bg-color: rgba(255, 255, 255, 0.12); +} +.color-picker { + overflow: hidden; + width: 100%; + display: flex; + flex-direction: column; +} +.color-picker.color-picker-inline, +.color-picker-popover .color-picker, +.color-picker-popup .color-picker { + position: relative; +} +.color-picker-sheet-modal { + background: var(--f7-color-picker-sheet-bg-color); +} +.color-picker-sheet-modal:before { + z-index: 600; +} +.color-picker-sheet-modal .sheet-modal-inner { + margin-bottom: var(--f7-safe-area-bottom); +} +.color-picker-popup .page { + background: var(--f7-color-picker-popup-bg-color); +} +.color-picker-popup .page-content { + padding-bottom: var(--f7-safe-area-bottom); +} +.color-picker-popover .color-picker, +.color-picker-popup .color-picker, +.color-picker-page .color-picker { + height: 100%; +} +.color-picker-popover .color-picker .toolbar, +.color-picker-popup .color-picker .toolbar, +.color-picker-page .color-picker .toolbar { + position: absolute; +} +.color-picker-popover { + width: var(--f7-color-picker-popover-width); + max-width: 90vw; + max-height: 80vh; +} +.color-picker-popover .color-picker { + max-height: 80vh; +} +.color-picker-popover .toolbar-top { + border-top-left-radius: var(--f7-popover-border-radius); + border-top-right-radius: var(--f7-popover-border-radius); +} +.color-picker-popover .color-picker-module-palette { + overflow: hidden; + flex-shrink: 0; +} +.color-picker-popover .color-picker-module-palette:first-child { + border-top-left-radius: var(--f7-popover-border-radius); + border-top-right-radius: var(--f7-popover-border-radius); +} +.color-picker-popover .color-picker-module-palette:last-child { + border-bottom-left-radius: var(--f7-popover-border-radius); + border-bottom-right-radius: var(--f7-popover-border-radius); +} +.color-picker-popover .color-picker-module-palette:first-child:last-child { + border-radius: var(--f7-popover-border-radius); +} +.color-picker-popover .toolbar ~ .page-content .color-picker-module-palette:first-child { + border-top-left-radius: 0; + border-top-right-radius: 0; +} +.color-picker-popup .page-content, +.color-picker-popover .page-content, +.color-picker-sheet-modal .page-content, +.color-picker-page .page-content { + display: flex; + justify-content: flex-start; + align-items: stretch; + flex-direction: column; + overflow-x: hidden; +} +.color-picker-module { + margin-top: 5px; +} +.color-picker-module:last-child { + margin-bottom: 5px; +} +.color-picker-module-sb-spectrum, +.color-picker-module-hs-spectrum { + margin-left: 10px; + margin-right: 10px; +} +.color-picker-module-sb-spectrum:first-child, +.color-picker-module-hs-spectrum:first-child { + margin-top: 10px; +} +.color-picker-module-sb-spectrum .color-picker-sb-spectrum, +.color-picker-module-hs-spectrum .color-picker-sb-spectrum, +.color-picker-module-sb-spectrum .color-picker-hs-spectrum, +.color-picker-module-hs-spectrum .color-picker-hs-spectrum { + border-radius: 4px; + height: var(--f7-color-picker-sb-spectrum-height); +} +.color-picker-sb-spectrum { + background-color: #000; + background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0) 0%, #000 100%), linear-gradient(to left, rgba(255, 255, 255, 0) 0%, #fff 100%); + position: relative; +} +.color-picker-hs-spectrum { + position: relative; + background-image: linear-gradient(to right, hsl(0, 100%, 50%), hsl(60, 100%, 50%), hsl(120, 100%, 50%), hsl(180, 100%, 50%), hsl(240, 100%, 50%), hsl(300, 100%, 50%), hsl(0, 100%, 50%)); +} +.color-picker-hs-spectrum:after { + content: ''; + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + background-image: linear-gradient(to bottom, rgba(255, 255, 255, 0), #ffffff); +} +.color-picker-sb-spectrum-handle, +.color-picker-hs-spectrum-handle { + width: 4px; + height: 4px; + position: absolute; + left: -2px; + top: -2px; + z-index: 1; +} +.color-picker-sb-spectrum-handle:after, +.color-picker-hs-spectrum-handle:after { + background-color: inherit; + content: ''; + position: absolute; + width: var(--f7-color-picker-sb-spectrum-handle-size); + height: var(--f7-color-picker-sb-spectrum-handle-size); + border: 1px solid #fff; + border-radius: 50%; + box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.5); + box-sizing: border-box; + left: 50%; + top: 50%; + transform: translate(-50%, -50%); + transition: 150ms; + transition-property: transform; + transform-origin: center; +} +.color-picker-sb-spectrum-handle.color-picker-sb-spectrum-handle-pressed:after, +.color-picker-hs-spectrum-handle.color-picker-sb-spectrum-handle-pressed:after, +.color-picker-sb-spectrum-handle.color-picker-hs-spectrum-handle-pressed:after, +.color-picker-hs-spectrum-handle.color-picker-hs-spectrum-handle-pressed:after { + transform: scale(1.5) translate(-33.333%, -33.333%); +} +.color-picker-module-wheel { + margin-left: 10px; + margin-right: 10px; +} +.color-picker-wheel { + position: relative; + width: var(--f7-color-picker-wheel-width); + max-width: 100%; + height: auto; + font-size: 0; + margin-left: auto; + margin-right: auto; +} +.color-picker-wheel svg { + width: 100%; + height: auto; +} +.color-picker-wheel .color-picker-wheel-handle { + width: calc(100% / 6); + height: calc(100% / 6); + position: absolute; + box-sizing: border-box; + border: 2px solid #fff; + box-shadow: 0px 0px 5px rgba(0, 0, 0, 0.5); + background: red; + border-radius: 50%; + left: 0; + top: 0; +} +.color-picker-wheel .color-picker-sb-spectrum { + width: 45%; + height: 45%; + left: 50%; + top: 50%; + transform: translate3d(-50%, -50%, 0); + position: absolute; +} +.color-picker-slider-wrap { + display: flex; + align-items: center; + margin-bottom: 2px; +} +.color-picker-slider-wrap + .color-picker-slider-wrap { + margin-top: 5px; +} +.color-picker-hex-wrap { + justify-content: space-between; + display: flex; + align-items: center; +} +.color-picker-slider-label, +.color-picker-hex-label { + font-size: var(--f7-color-picker-label-font-size); + width: var(--f7-color-picker-label-size); + flex-shrink: 0; + margin-left: 12px; +} +.color-picker-hex-label { + width: auto; +} +.color-picker-bar-value, +.color-picker-slider-value, +.color-picker-hex-value { + width: var(--f7-color-picker-value-width); + height: var(--f7-color-picker-value-height); + background: var(--f7-color-picker-value-bg-color); + border-radius: var(--f7-color-picker-value-border-radius); + text-align: center; + font-size: var(--f7-color-picker-value-font-size); + display: flex; + justify-content: center; + align-items: center; + flex-shrink: 0; + margin-right: 10px; +} +.color-picker-bar-value input, +.color-picker-slider-value input, +.color-picker-hex-value input { + width: 100%; + height: 100%; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + border: none; + outline: 0; + background: transparent; + color: inherit; + font-family: inherit; + font-size: inherit; + text-align: center; + display: block; + border-radius: 4px; +} +.color-picker-bar-value input::-webkit-inner-spin-button, +.color-picker-slider-value input::-webkit-inner-spin-button, +.color-picker-hex-value input::-webkit-inner-spin-button, +.color-picker-bar-value input::-webkit-outer-spin-button, +.color-picker-slider-value input::-webkit-outer-spin-button, +.color-picker-hex-value input::-webkit-outer-spin-button { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + margin: 0; + display: none; +} +.color-picker-hex-value { + width: var(--f7-color-picker-hex-value-width); +} +.color-picker-hex-value:first-child { + margin-right: auto; +} +.color-picker-slider { + --f7-range-bar-active-bg-color: transparent; + --f7-range-bar-size: var(--f7-color-picker-slider-size); + --f7-range-bar-border-radius: var(--f7-color-picker-slider-size); + --f7-range-knob-size: var(--f7-color-picker-slider-knob-size); + --f7-range-knob-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.3); +} +.color-picker-slider .range-knob { + transition-duration: 200ms; + transition-property: transform; +} +.color-picker-slider .range-knob:after { + width: 30px; + height: 30px; + margin-left: -16px; + margin-top: -16px; +} +.color-picker-slider .range-knob-active-state .range-knob { + transform: scale(1.5); +} +.md .color-picker-slider.range-slider-min:not(.range-slider-dual) .range-knob { + background: var(--f7-range-knob-color) !important; + border: none; +} +.color-picker-module-rgb-bars { + display: flex; + justify-content: space-around; + justify-content: space-evenly; + align-items: stretch; + height: 100%; + min-height: var(--f7-color-picker-bar-min-height); + padding-bottom: 10px; + padding-top: 10px; + box-sizing: border-box; +} +.color-picker-bar-wrap { + display: flex; + align-items: center; + flex-direction: column-reverse; +} +.color-picker-bar { + --f7-range-bar-active-bg-color: transparent; + --f7-range-bar-size: var(--f7-color-picker-bar-size); + --f7-range-bar-border-radius: 2px; + --f7-range-knob-size: 6px; + --f7-range-knob-box-shadow: 0 0px 3px rgba(0, 0, 0, 0.3); + --f7-range-knob-color: #fff; +} +.color-picker-bar .range-knob { + transition-duration: 0ms; + transition-property: transform; + border-radius: 3px; +} +.color-picker-bar .range-knob-wrap { + height: 6px; + width: calc(var(--f7-color-picker-bar-size) - 4px); + margin-left: calc(-0.5 * (var(--f7-color-picker-bar-size) - 4px)); +} +.color-picker-bar .range-knob-active-state .range-knob { + transform: scale(1); +} +.md .color-picker-bar.range-slider-min:not(.range-slider-dual) .range-knob { + background: var(--f7-range-knob-color) !important; + border: none; +} +.color-picker-bar-label { + font-size: var(--f7-color-picker-label-size); + margin-top: 12px; + line-height: 1; + height: var(--f7-color-picker-label-height); + flex-shrink: 0; +} +.color-picker-bar-value { + margin-left: 0; + margin-bottom: 10px; +} +.color-picker-slider-alpha { + --f7-range-knob-color: #fff; +} +.color-picker-slider-alpha .range-bar { + background-image: linear-gradient(to left, rgba(0, 0, 0, 0), #000), linear-gradient(to right, rgba(255, 255, 255, 0.2) 50%, rgba(0, 0, 0, 0.2) 50%), linear-gradient(to left, rgba(255, 255, 255, 0.2) 50%, rgba(0, 0, 0, 0.2) 50%); + background-size: 100% 100%, 6px 3px, 6px 3px; + background-position: 0 0, 0px 3px, 0 0; + background-repeat: repeat-y, repeat-x, repeat-x; +} +.color-picker-slider-hue .range-bar { + background-image: linear-gradient(to left, hsl(0, 100%, 50%), hsl(60, 100%, 50%), hsl(120, 100%, 50%), hsl(180, 100%, 50%), hsl(240, 100%, 50%), hsl(300, 100%, 50%), hsl(0, 100%, 50%)); +} +.color-picker-slider-brightness .range-bar { + background-image: linear-gradient(to left, #000, #fff); +} +.color-picker-module-palette { + margin-top: 16px; +} +.color-picker-module-palette:first-child { + margin-top: 0; +} +.color-picker-module-palette:last-child { + margin-bottom: 0; +} +.color-picker-module-palette:first-child:last-child { + margin: 0; +} +.color-picker-palette { + display: flex; + flex-wrap: wrap; +} +.color-picker-palette-row { + width: 100%; + display: flex; + flex-wrap: nowrap; +} +.color-picker-palette-row .color-picker-palette-value { + width: 100%; +} +.color-picker-palette-value { + width: var(--f7-color-picker-palette-value-width); + height: var(--f7-color-picker-palette-value-height); + cursor: pointer; +} +.color-picker-module-initial-current-colors, +.color-picker-module-current-color { + margin-left: 10px; + margin-right: 10px; + border-radius: var(--f7-color-picker-initial-current-color-border-radius); + overflow: hidden; + flex-shrink: 0; +} +.color-picker-initial-color, +.color-picker-current-color { + height: var(--f7-color-picker-initial-current-color-height); +} +.color-picker-initial-current-colors { + display: flex; +} +.color-picker-initial-current-colors .color-picker-initial-color, +.color-picker-initial-current-colors .color-picker-current-color { + width: 50%; +} +.color-picker-module-rgb-sliders, +.color-picker-module-hsb-sliders, +.color-picker-module-alpha-slider, +.color-picker-module-hue-slider, +.color-picker-module-brightness-slider, +.color-picker-module-hex { + margin-left: 10px; + margin-right: 10px; +} +.color-picker-grouped-modules .color-picker-module-rgb-sliders, +.color-picker-grouped-modules .color-picker-module-hsb-sliders, +.color-picker-grouped-modules .color-picker-module-alpha-slider, +.color-picker-grouped-modules .color-picker-module-hue-slider, +.color-picker-grouped-modules .color-picker-module-brightness-slider, +.color-picker-grouped-modules .color-picker-module-hex { + background: var(--f7-color-picker-group-bg-color); + padding: 5px; + border-radius: 4px; + margin-top: 16px; + margin-left: 5px; + margin-right: 5px; +} +.color-picker-grouped-modules .color-picker-module-rgb-sliders:last-child, +.color-picker-grouped-modules .color-picker-module-hsb-sliders:last-child, +.color-picker-grouped-modules .color-picker-module-alpha-slider:last-child, +.color-picker-grouped-modules .color-picker-module-hue-slider:last-child, +.color-picker-grouped-modules .color-picker-module-brightness-slider:last-child, +.color-picker-grouped-modules .color-picker-module-hex:last-child { + margin-bottom: 16px; +} +.color-picker-grouped-modules .color-picker-slider-value, +.color-picker-grouped-modules .color-picker-hex-value { + background: var(--f7-color-picker-group-value-bg-color); +} +.color-picker-grouped-modules .color-picker-slider-label, +.color-picker-grouped-modules .color-picker-hex-label { + margin-right: 5px; +} +.color-picker-grouped-modules .color-picker-module-rgb-sliders .range-slider:first-child, +.color-picker-grouped-modules .color-picker-module-hsb-sliders .range-slider:first-child, +.color-picker-grouped-modules .color-picker-module-alpha-slider .range-slider:first-child, +.color-picker-grouped-modules .color-picker-module-hue-slider .range-slider:first-child, +.color-picker-grouped-modules .color-picker-module-brightness-slider .range-slider:first-child { + margin-right: 5px; +} +.color-picker-grouped-modules .color-picker-module-rgb-sliders .range-slider:last-child, +.color-picker-grouped-modules .color-picker-module-hsb-sliders .range-slider:last-child, +.color-picker-grouped-modules .color-picker-module-alpha-slider .range-slider:last-child, +.color-picker-grouped-modules .color-picker-module-hue-slider .range-slider:last-child, +.color-picker-grouped-modules .color-picker-module-brightness-slider .range-slider:last-child { + margin-left: 5px; +} +/* === Treeview === */ +:root { + --f7-treeview-item-padding-left: 16px; + --f7-treeview-item-padding-right: 16px; + --f7-treeview-toggle-size: 24px; + --f7-treeview-children-offset: 29px; + --f7-treeview-label-font-weight: 400; + --f7-treeview-label-text-color: inherit; + /* + --f7-treeview-selectable-selected-bg-color: rgba(var(--f7-theme-color-rgb), 0.2); + */ + --f7-treeview-toggle-color: rgba(0, 0, 0, 0.5); + --f7-treeview-toggle-hover-bg-color: rgba(0, 0, 0, 0.1); + --f7-treeview-toggle-pressed-bg-color: rgba(0, 0, 0, 0.15); + --f7-treeview-icon-color: rgba(0, 0, 0, 0.5); + --f7-treeview-selectable-hover-bg-color: rgba(0, 0, 0, 0.1); + --f7-treeview-link-hover-bg-color: rgba(0, 0, 0, 0.1); + --f7-treeview-link-pressed-bg-color: rgba(0, 0, 0, 0.15); +} +:root .theme-dark, +:root.theme-dark { + --f7-treeview-toggle-color: rgba(255, 255, 255, 0.5); + --f7-treeview-toggle-hover-bg-color: rgba(255, 255, 255, 0.03); + --f7-treeview-toggle-pressed-bg-color: rgba(255, 255, 255, 0.1); + --f7-treeview-icon-color: rgba(255, 255, 255, 0.75); + --f7-treeview-selectable-hover-bg-color: rgba(255, 255, 255, 0.03); + --f7-treeview-link-hover-bg-color: rgba(255, 255, 255, 0.03); + --f7-treeview-link-pressed-bg-color: rgba(255, 255, 255, 0.11); +} +.ios { + --f7-treeview-item-height: 34px; + --f7-treeview-label-font-size: 17px; + --f7-treeview-icon-size: 24px; +} +.md { + --f7-treeview-item-height: 34px; + --f7-treeview-label-font-size: 16px; + --f7-treeview-icon-size: 24px; +} +.aurora { + --f7-treeview-item-height: 28px; + --f7-treeview-label-font-size: 14px; + --f7-treeview-icon-size: 20px; +} +.treeview-item-root { + padding-right: var(--f7-treeview-item-padding-left); + padding-left: var(--f7-treeview-item-padding-right); + min-height: var(--f7-treeview-item-height); + display: flex; + align-items: center; + justify-content: flex-start; +} +.treeview-item-content { + display: flex; + justify-content: flex-start; + align-items: center; +} +.treeview-item-content > i, +.treeview-item-content > .f7-icons, +.treeview-item-content > .material-icons { + font-size: var(--f7-treeview-icon-size); + color: var(--f7-treeview-icon-color); +} +.treeview-item-content:first-child { + margin-right: calc(var(--f7-treeview-toggle-size) + 5px); +} +.treeview-item-content > * + * { + margin-right: 5px; +} +.treeview-item-label { + font-size: var(--f7-treeview-label-font-size); + font-weight: var(--f7-treeview-label-font-weight); + color: var(--f7-treeview-label-text-color); +} +.treeview-toggle { + width: var(--f7-treeview-toggle-size); + height: var(--f7-treeview-toggle-size); + cursor: pointer; + border-radius: 4px; + background-color: rgba(0, 0, 0, 0); + transition-duration: 200ms; + position: relative; + margin-left: 5px; +} +.treeview-toggle.active-state { + background-color: var(--f7-treeview-toggle-pressed-bg-color); +} +.treeview-toggle:after { + transition-duration: 200ms; + content: ''; + position: absolute; + left: 50%; + top: 50%; + width: 0; + height: 0; + border-top: 5px solid transparent; + border-bottom: 5px solid transparent; + transform: translate(-50%, -50%); + border-right: 6px solid var(--f7-treeview-toggle-color); +} +.treeview-toggle-hidden { + opacity: 0; + pointer-events: none; + visibility: hidden; +} +.treeview-preloader { + --f7-preloader-size: var(--f7-treeview-toggle-size); + margin-left: calc(-1 * var(--f7-treeview-toggle-size)); +} +.treeview-item-children { + display: none; +} +.treeview-item-opened > .treeview-item-children { + display: block; +} +.treeview-item-opened > .treeview-item-root .treeview-toggle:after { + transform: translate(-50%, -50%) rotate(-90deg); +} +a.treeview-item-root { + color: var(--f7-treeview-label-text-color); +} +.treeview-item-selectable > .treeview-item-root, +.treeview-item-selectable.treeview-item-root { + cursor: pointer; + transition-duration: 150ms; +} +a.treeview-item-root { + transition-duration: 150ms; +} +a.treeview-item-root.active-state { + background: var(--f7-treeview-link-pressed-bg-color); +} +.treeview-item-toggle > .treeview-item-root, +.treeview-item-toggle.treeview-item-root { + cursor: pointer; +} +.treeview-item-selected > .treeview-item-root, +.treeview-item-selected.treeview-item-root { + background: var(--f7-treeview-selectable-selected-bg-color, rgba(var(--f7-theme-color-rgb), 0.2)); +} +.treeview-item .treeview-item .treeview-item-root { + padding-right: calc(var(--f7-treeview-item-padding-left) + var(--f7-treeview-children-offset) * 1); +} +.treeview-item .treeview-item .treeview-item .treeview-item-root { + padding-right: calc(var(--f7-treeview-item-padding-left) + var(--f7-treeview-children-offset) * 2); +} +.treeview-item .treeview-item .treeview-item .treeview-item .treeview-item-root { + padding-right: calc(var(--f7-treeview-item-padding-left) + var(--f7-treeview-children-offset) * 3); +} +.treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item-root { + padding-right: calc(var(--f7-treeview-item-padding-left) + var(--f7-treeview-children-offset) * 4); +} +.treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item-root { + padding-right: calc(var(--f7-treeview-item-padding-left) + var(--f7-treeview-children-offset) * 5); +} +.treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item-root { + padding-right: calc(var(--f7-treeview-item-padding-left) + var(--f7-treeview-children-offset) * 6); +} +.treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item-root { + padding-right: calc(var(--f7-treeview-item-padding-left) + var(--f7-treeview-children-offset) * 7); +} +.treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item-root { + padding-right: calc(var(--f7-treeview-item-padding-left) + var(--f7-treeview-children-offset) * 8); +} +.treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item-root { + padding-right: calc(var(--f7-treeview-item-padding-left) + var(--f7-treeview-children-offset) * 9); +} +.treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item-root { + padding-right: calc(var(--f7-treeview-item-padding-left) + var(--f7-treeview-children-offset) * 10); +} +.aurora .treeview-toggle:hover { + background-color: var(--f7-treeview-toggle-hover-bg-color); +} +.aurora .treeview-toggle.active-state { + background-color: var(--f7-treeview-toggle-pressed-bg-color); +} +.aurora .treeview-item-selectable > .treeview-item-root:hover, +.aurora .treeview-item-selectable.treeview-item-root:hover { + background: var(--f7-treeview-selectable-hover-bg-color); +} +.aurora a.treeview-item-root:hover { + background: var(--f7-treeview-link-hover-bg-color); +} +.aurora a.treeview-item-root.active-state { + background: var(--f7-treeview-link-pressed-bg-color); +} +.aurora .treeview-item-selected > .treeview-item-root:hover, +.aurora .treeview-item-selected.treeview-item-root:hover { + background: var(--f7-treeview-selectable-selected-bg-color, rgba(var(--f7-theme-color-rgb), 0.2)); +} +/* === Stepper === */ +:root { + --f7-text-editor-font-size: inherit; + --f7-text-editor-font-weight: inherit; + --f7-text-editor-border-width: 1px; + --f7-text-editor-height: 250px; + --f7-text-editor-margin: 16px; + --f7-text-editor-padding: 8px; + --f7-text-editor-button-bg-color: transparent; + --f7-text-editor-button-size: 28px; + --f7-text-editor-button-icon-size: 20px; + --f7-text-editor-button-margin: 2px; + --f7-text-editor-button-border-radius: 2px; + --f7-text-editor-text-color: #000; + --f7-text-editor-bg-color: #fff; + --f7-text-editor-border-color: rgba(0, 0, 0, 0.1); + --f7-text-editor-toolbar-bg-color: #fff; + --f7-text-editor-button-text-color: #333; + --f7-text-editor-button-divider-color: rgba(0, 0, 0, 0.15); + --f7-text-editor-placeholder-color: rgba(0, 0, 0, 0.35); +} +:root .theme-dark, +:root.theme-dark { + --f7-text-editor-bg-color: #121212; + --f7-text-editor-border-color: rgba(255, 255, 255, 0.1); + --f7-text-editor-toolbar-bg-color: #202020; + --f7-text-editor-text-color: #fff; + --f7-text-editor-placeholder-color: rgba(255, 255, 255, 0.35); + --f7-text-editor-button-text-color: #fff; + --f7-text-editor-button-divider-color: rgba(255, 255, 255, 0.15); +} +.ios { + --f7-text-editor-toolbar-padding: 6px; + --f7-text-editor-toolbar-border-color: rgba(0, 0, 0, 0.25); +} +.ios .theme-dark, +.ios.theme-dark { + --f7-text-editor-toolbar-bg-color: #121212; + --f7-text-editor-toolbar-border-color: rgba(255, 255, 255, 0.1); +} +.md { + --f7-text-editor-toolbar-padding: 8px; + --f7-text-editor-toolbar-box-shadow: 0px 2px 3px -1px rgba(0, 0, 0, 0.25); +} +.aurora { + --f7-text-editor-toolbar-padding: 3px; + --f7-text-editor-toolbar-border-color: rgba(0, 0, 0, 0.25); +} +.aurora .theme-dark, +.aurora.theme-dark { + --f7-text-editor-toolbar-border-color: rgba(255, 255, 255, 0.1); +} +.text-editor { + margin: var(--f7-text-editor-margin); + background-color: var(--f7-text-editor-bg-color); + display: block; + position: relative; + border: var(--f7-text-editor-border-width) solid var(--f7-text-editor-border-color); + display: flex; + flex-direction: column; + align-items: stretch; + height: var(--f7-text-editor-height); + box-sizing: border-box; +} +.text-editor.text-editor-resizable { + height: auto; +} +.text-editor-toolbar { + display: flex; + flex-wrap: wrap; + background: var(--f7-text-editor-toolbar-bg-color); + z-index: 100; + position: relative; + position: -webkit-sticky; + position: sticky; + left: 0; + top: 0; + padding: var(--f7-text-editor-toolbar-padding); + flex-shrink: 0; + box-shadow: var(--f7-text-editor-toolbar-box-shadow); + box-sizing: border-box; +} +.text-editor-toolbar:after { + content: ''; + position: absolute; + background-color: var(--f7-text-editor-toolbar-border-color); + display: block; + z-index: 15; + top: auto; + right: auto; + bottom: 0; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 100%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +button.text-editor-button { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + border: none; + padding: 0; + margin: 0; + outline: 0; + font-family: inherit; + background: transparent; + cursor: pointer; + box-shadow: none; + border-radius: var(--f7-text-editor-button-border-radius); + position: relative; + z-index: 1; + display: flex; + width: auto; + overflow: hidden; + width: var(--f7-text-editor-button-size); + height: var(--f7-text-editor-button-size); + align-items: center; + justify-content: center; + margin: var(--f7-text-editor-button-margin); + box-sizing: border-box; + color: var(--f7-text-editor-button-text-color); + background-color: var(--f7-text-editor-button-bg-color); + flex-shrink: 0; +} +button.text-editor-button i { + font-size: var(--f7-text-editor-button-icon-size); + font-style: normal; +} +button.text-editor-button i sup, +button.text-editor-button i sub { + font-size: 60%; +} +.text-editor-button-divider { + width: 1px; + background: var(--f7-text-editor-button-divider-color); + margin: 0 2px; + flex-shrink: 0; +} +.text-editor-content { + -webkit-user-modify: read-write; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + border: none; + outline: 0; + height: 100%; + -webkit-user-select: text; + -moz-user-select: text; + user-select: text; + padding: var(--f7-text-editor-padding); + overflow: auto; + flex-shrink: 10; + box-sizing: border-box; + color: var(--f7-text-editor-text-color); + font-size: var(--f7-text-editor-font-size); + font-weight: var(--f7-text-editor-font-weight); +} +.text-editor-content .text-editor-placeholder { + pointer-events: none; + color: var(--f7-text-editor-placeholder-color); +} +.text-editor-content img { + max-width: 100%; +} +.text-editor-content a { + pointer-events: none; +} +.text-editor-popover { + z-index: 12500; + width: auto; + max-width: 80vw; +} +.text-editor-popover .popover-inner { + display: flex; + flex-wrap: wrap; + padding: 3px; +} +.text-editor-keyboard-toolbar { + position: absolute; + z-index: 6000; + --f7-safe-area-bottom: 0px; +} +.text-editor-keyboard-toolbar .toolbar-inner { + justify-content: flex-start !important; + overflow: auto; + -webkit-overflow-scrolling: touch; +} +.text-editor-keyboard-toolbar .toolbar-inner::-webkit-scrollbar { + display: none; +} +.text-editor-keyboard-toolbar .toolbar-inner .text-editor-button-divider { + height: 100%; +} +.item-input .text-editor { + border: none; + margin: 0; + background-color: var(--f7-input-bg-color, transparent); +} +.item-input .text-editor-content { + padding-top: var(--f7-textarea-padding-vertical); + padding-bottom: var(--f7-textarea-padding-vertical); + padding-left: var(--f7-input-padding-left); + padding-right: var(--f7-input-padding-right); + color: var(--f7-input-text-color); + font-size: var(--f7-input-font-size); +} +.item-input .text-editor-toolbar { + box-shadow: none; +} +.item-input .text-editor-toolbar:after { + display: none !important; +} +.item-input-outline .text-editor-content { + border-radius: var(--f7-input-outline-border-radius); + padding-left: var(--f7-input-outline-padding-horizontal); + padding-right: var(--f7-input-outline-padding-horizontal); +} +.ios button.text-editor-button { + transition: opacity 300ms; +} +.ios button.text-editor-button.active-state { + opacity: 0.3; + transition-duration: 0ms; +} +.md button.text-editor-button:before { + content: ''; + width: 152%; + height: 152%; + position: absolute; + left: -26%; + top: -26%; + background-image: radial-gradient(circle at center, var(--f7-link-highlight-color) 66%, rgba(255, 255, 255, 0) 66%); + background-repeat: no-repeat; + background-position: center; + background-size: 100% 100%; + opacity: 0; + pointer-events: none; + transition-duration: 600ms; +} +.md button.text-editor-button.active-state:before { + opacity: 1; + transition-duration: 150ms; +} +.md .text-editor-keyboard-toolbar .toolbar-inner { + padding-left: 8px; + padding-right: 8px; +} +.aurora button.text-editor-button { + transition: opacity 300ms; +} +.aurora button.text-editor-button.active-state { + opacity: 0.3; + transition-duration: 0ms; +} +/* === Elevation === */ +:root { + --f7-elevation-0: 0px 0px 0px 0px rgba(0, 0, 0, 0); + --f7-elevation-1: 0px 2px 1px -1px rgba(0, 0, 0, 0.2), + 0px 1px 1px 0px rgba(0, 0, 0, 0.14), + 0px 1px 3px 0px rgba(0, 0, 0, 0.12); + --f7-elevation-2: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), + 0px 2px 2px 0px rgba(0, 0, 0, 0.14), + 0px 1px 5px 0px rgba(0, 0, 0, 0.12); + --f7-elevation-3: 0px 3px 3px -2px rgba(0, 0, 0, 0.2), + 0px 3px 4px 0px rgba(0, 0, 0, 0.14), + 0px 1px 8px 0px rgba(0, 0, 0, 0.12); + --f7-elevation-4: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), + 0px 4px 5px 0px rgba(0, 0, 0, 0.14), + 0px 1px 10px 0px rgba(0, 0, 0, 0.12); + --f7-elevation-5: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), + 0px 5px 8px 0px rgba(0, 0, 0, 0.14), + 0px 1px 14px 0px rgba(0, 0, 0, 0.12); + --f7-elevation-6: 0px 3px 5px -1px rgba(0, 0, 0, 0.2), + 0px 6px 10px 0px rgba(0, 0, 0, 0.14), + 0px 1px 18px 0px rgba(0, 0, 0, 0.12); + --f7-elevation-7: 0px 4px 5px -2px rgba(0, 0, 0, 0.2), + 0px 7px 10px 1px rgba(0, 0, 0, 0.14), + 0px 2px 16px 1px rgba(0, 0, 0, 0.12); + --f7-elevation-8: 0px 5px 5px -3px rgba(0, 0, 0, 0.2), + 0px 8px 10px 1px rgba(0, 0, 0, 0.14), + 0px 3px 14px 2px rgba(0, 0, 0, 0.12); + --f7-elevation-9: 0px 5px 6px -3px rgba(0, 0, 0, 0.2), + 0px 9px 12px 1px rgba(0, 0, 0, 0.14), + 0px 3px 16px 2px rgba(0, 0, 0, 0.12); + --f7-elevation-10: 0px 6px 6px -3px rgba(0, 0, 0, 0.2), + 0px 10px 14px 1px rgba(0, 0, 0, 0.14), + 0px 4px 18px 3px rgba(0, 0, 0, 0.12); + --f7-elevation-11: 0px 6px 7px -4px rgba(0, 0, 0, 0.2), + 0px 11px 15px 1px rgba(0, 0, 0, 0.14), + 0px 4px 20px 3px rgba(0, 0, 0, 0.12); + --f7-elevation-12: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), + 0px 12px 17px 2px rgba(0, 0, 0, 0.14), + 0px 5px 22px 4px rgba(0, 0, 0, 0.12); + --f7-elevation-13: 0px 7px 8px -4px rgba(0, 0, 0, 0.2), + 0px 13px 19px 2px rgba(0, 0, 0, 0.14), + 0px 5px 24px 4px rgba(0, 0, 0, 0.12); + --f7-elevation-14: 0px 7px 9px -4px rgba(0, 0, 0, 0.2), + 0px 14px 21px 2px rgba(0, 0, 0, 0.14), + 0px 5px 26px 4px rgba(0, 0, 0, 0.12); + --f7-elevation-15: 0px 8px 9px -5px rgba(0, 0, 0, 0.2), + 0px 15px 22px 2px rgba(0, 0, 0, 0.14), + 0px 6px 28px 5px rgba(0, 0, 0, 0.12); + --f7-elevation-16: 0px 8px 10px -5px rgba(0, 0, 0, 0.2), + 0px 16px 24px 2px rgba(0, 0, 0, 0.14), + 0px 6px 30px 5px rgba(0, 0, 0, 0.12); + --f7-elevation-17: 0px 8px 11px -5px rgba(0, 0, 0, 0.2), + 0px 17px 26px 2px rgba(0, 0, 0, 0.14), + 0px 6px 32px 5px rgba(0, 0, 0, 0.12); + --f7-elevation-18: 0px 9px 11px -5px rgba(0, 0, 0, 0.2), + 0px 18px 28px 2px rgba(0, 0, 0, 0.14), + 0px 7px 34px 6px rgba(0, 0, 0, 0.12); + --f7-elevation-19: 0px 9px 12px -6px rgba(0, 0, 0, 0.2), + 0px 19px 29px 2px rgba(0, 0, 0, 0.14), + 0px 7px 36px 6px rgba(0, 0, 0, 0.12); + --f7-elevation-20: 0px 10px 13px -6px rgba(0, 0, 0, 0.2), + 0px 20px 31px 3px rgba(0, 0, 0, 0.14), + 0px 8px 38px 7px rgba(0, 0, 0, 0.12); + --f7-elevation-21: 0px 10px 13px -6px rgba(0, 0, 0, 0.2), + 0px 21px 33px 3px rgba(0, 0, 0, 0.14), + 0px 8px 40px 7px rgba(0, 0, 0, 0.12); + --f7-elevation-22: 0px 10px 14px -6px rgba(0, 0, 0, 0.2), + 0px 22px 35px 3px rgba(0, 0, 0, 0.14), + 0px 8px 42px 7px rgba(0, 0, 0, 0.12); + --f7-elevation-23: 0px 11px 14px -7px rgba(0, 0, 0, 0.2), + 0px 23px 36px 3px rgba(0, 0, 0, 0.14), + 0px 9px 44px 8px rgba(0, 0, 0, 0.12); + --f7-elevation-24: 0px 11px 15px -7px rgba(0, 0, 0, 0.2), + 0px 24px 38px 3px rgba(0, 0, 0, 0.14), + 0px 9px 46px 8px rgba(0, 0, 0, 0.12); +} +.elevation-0 { + box-shadow: var(--f7-elevation-0) !important; +} +.elevation-1 { + box-shadow: var(--f7-elevation-1) !important; +} +.elevation-2 { + box-shadow: var(--f7-elevation-2) !important; +} +.elevation-3 { + box-shadow: var(--f7-elevation-3) !important; +} +.elevation-4 { + box-shadow: var(--f7-elevation-4) !important; +} +.elevation-5 { + box-shadow: var(--f7-elevation-5) !important; +} +.elevation-6 { + box-shadow: var(--f7-elevation-6) !important; +} +.elevation-7 { + box-shadow: var(--f7-elevation-7) !important; +} +.elevation-8 { + box-shadow: var(--f7-elevation-8) !important; +} +.elevation-9 { + box-shadow: var(--f7-elevation-9) !important; +} +.elevation-10 { + box-shadow: var(--f7-elevation-10) !important; +} +.elevation-11 { + box-shadow: var(--f7-elevation-11) !important; +} +.elevation-12 { + box-shadow: var(--f7-elevation-12) !important; +} +.elevation-13 { + box-shadow: var(--f7-elevation-13) !important; +} +.elevation-14 { + box-shadow: var(--f7-elevation-14) !important; +} +.elevation-15 { + box-shadow: var(--f7-elevation-15) !important; +} +.elevation-16 { + box-shadow: var(--f7-elevation-16) !important; +} +.elevation-17 { + box-shadow: var(--f7-elevation-17) !important; +} +.elevation-18 { + box-shadow: var(--f7-elevation-18) !important; +} +.elevation-19 { + box-shadow: var(--f7-elevation-19) !important; +} +.elevation-20 { + box-shadow: var(--f7-elevation-20) !important; +} +.elevation-21 { + box-shadow: var(--f7-elevation-21) !important; +} +.elevation-22 { + box-shadow: var(--f7-elevation-22) !important; +} +.elevation-23 { + box-shadow: var(--f7-elevation-23) !important; +} +.elevation-24 { + box-shadow: var(--f7-elevation-24) !important; +} +.device-desktop .elevation-hover-0:hover { + box-shadow: var(--f7-elevation-0) !important; +} +.device-desktop .elevation-hover-1:hover { + box-shadow: var(--f7-elevation-1) !important; +} +.device-desktop .elevation-hover-2:hover { + box-shadow: var(--f7-elevation-2) !important; +} +.device-desktop .elevation-hover-3:hover { + box-shadow: var(--f7-elevation-3) !important; +} +.device-desktop .elevation-hover-4:hover { + box-shadow: var(--f7-elevation-4) !important; +} +.device-desktop .elevation-hover-5:hover { + box-shadow: var(--f7-elevation-5) !important; +} +.device-desktop .elevation-hover-6:hover { + box-shadow: var(--f7-elevation-6) !important; +} +.device-desktop .elevation-hover-7:hover { + box-shadow: var(--f7-elevation-7) !important; +} +.device-desktop .elevation-hover-8:hover { + box-shadow: var(--f7-elevation-8) !important; +} +.device-desktop .elevation-hover-9:hover { + box-shadow: var(--f7-elevation-9) !important; +} +.device-desktop .elevation-hover-10:hover { + box-shadow: var(--f7-elevation-10) !important; +} +.device-desktop .elevation-hover-11:hover { + box-shadow: var(--f7-elevation-11) !important; +} +.device-desktop .elevation-hover-12:hover { + box-shadow: var(--f7-elevation-12) !important; +} +.device-desktop .elevation-hover-13:hover { + box-shadow: var(--f7-elevation-13) !important; +} +.device-desktop .elevation-hover-14:hover { + box-shadow: var(--f7-elevation-14) !important; +} +.device-desktop .elevation-hover-15:hover { + box-shadow: var(--f7-elevation-15) !important; +} +.device-desktop .elevation-hover-16:hover { + box-shadow: var(--f7-elevation-16) !important; +} +.device-desktop .elevation-hover-17:hover { + box-shadow: var(--f7-elevation-17) !important; +} +.device-desktop .elevation-hover-18:hover { + box-shadow: var(--f7-elevation-18) !important; +} +.device-desktop .elevation-hover-19:hover { + box-shadow: var(--f7-elevation-19) !important; +} +.device-desktop .elevation-hover-20:hover { + box-shadow: var(--f7-elevation-20) !important; +} +.device-desktop .elevation-hover-21:hover { + box-shadow: var(--f7-elevation-21) !important; +} +.device-desktop .elevation-hover-22:hover { + box-shadow: var(--f7-elevation-22) !important; +} +.device-desktop .elevation-hover-23:hover { + box-shadow: var(--f7-elevation-23) !important; +} +.device-desktop .elevation-hover-24:hover { + box-shadow: var(--f7-elevation-24) !important; +} +.active-state.elevation-pressed-0, +.device-desktop .active-state.elevation-pressed-0 { + box-shadow: var(--f7-elevation-0) !important; +} +.active-state.elevation-pressed-1, +.device-desktop .active-state.elevation-pressed-1 { + box-shadow: var(--f7-elevation-1) !important; +} +.active-state.elevation-pressed-2, +.device-desktop .active-state.elevation-pressed-2 { + box-shadow: var(--f7-elevation-2) !important; +} +.active-state.elevation-pressed-3, +.device-desktop .active-state.elevation-pressed-3 { + box-shadow: var(--f7-elevation-3) !important; +} +.active-state.elevation-pressed-4, +.device-desktop .active-state.elevation-pressed-4 { + box-shadow: var(--f7-elevation-4) !important; +} +.active-state.elevation-pressed-5, +.device-desktop .active-state.elevation-pressed-5 { + box-shadow: var(--f7-elevation-5) !important; +} +.active-state.elevation-pressed-6, +.device-desktop .active-state.elevation-pressed-6 { + box-shadow: var(--f7-elevation-6) !important; +} +.active-state.elevation-pressed-7, +.device-desktop .active-state.elevation-pressed-7 { + box-shadow: var(--f7-elevation-7) !important; +} +.active-state.elevation-pressed-8, +.device-desktop .active-state.elevation-pressed-8 { + box-shadow: var(--f7-elevation-8) !important; +} +.active-state.elevation-pressed-9, +.device-desktop .active-state.elevation-pressed-9 { + box-shadow: var(--f7-elevation-9) !important; +} +.active-state.elevation-pressed-10, +.device-desktop .active-state.elevation-pressed-10 { + box-shadow: var(--f7-elevation-10) !important; +} +.active-state.elevation-pressed-11, +.device-desktop .active-state.elevation-pressed-11 { + box-shadow: var(--f7-elevation-11) !important; +} +.active-state.elevation-pressed-12, +.device-desktop .active-state.elevation-pressed-12 { + box-shadow: var(--f7-elevation-12) !important; +} +.active-state.elevation-pressed-13, +.device-desktop .active-state.elevation-pressed-13 { + box-shadow: var(--f7-elevation-13) !important; +} +.active-state.elevation-pressed-14, +.device-desktop .active-state.elevation-pressed-14 { + box-shadow: var(--f7-elevation-14) !important; +} +.active-state.elevation-pressed-15, +.device-desktop .active-state.elevation-pressed-15 { + box-shadow: var(--f7-elevation-15) !important; +} +.active-state.elevation-pressed-16, +.device-desktop .active-state.elevation-pressed-16 { + box-shadow: var(--f7-elevation-16) !important; +} +.active-state.elevation-pressed-17, +.device-desktop .active-state.elevation-pressed-17 { + box-shadow: var(--f7-elevation-17) !important; +} +.active-state.elevation-pressed-18, +.device-desktop .active-state.elevation-pressed-18 { + box-shadow: var(--f7-elevation-18) !important; +} +.active-state.elevation-pressed-19, +.device-desktop .active-state.elevation-pressed-19 { + box-shadow: var(--f7-elevation-19) !important; +} +.active-state.elevation-pressed-20, +.device-desktop .active-state.elevation-pressed-20 { + box-shadow: var(--f7-elevation-20) !important; +} +.active-state.elevation-pressed-21, +.device-desktop .active-state.elevation-pressed-21 { + box-shadow: var(--f7-elevation-21) !important; +} +.active-state.elevation-pressed-22, +.device-desktop .active-state.elevation-pressed-22 { + box-shadow: var(--f7-elevation-22) !important; +} +.active-state.elevation-pressed-23, +.device-desktop .active-state.elevation-pressed-23 { + box-shadow: var(--f7-elevation-23) !important; +} +.active-state.elevation-pressed-24, +.device-desktop .active-state.elevation-pressed-24 { + box-shadow: var(--f7-elevation-24) !important; +} +.elevation-transition-100 { + transition-duration: 100ms; + transition-property: box-shadow; +} +.elevation-transition, +.elevation-transition-200 { + transition-duration: 200ms; + transition-property: box-shadow; +} +.elevation-transition-300 { + transition-duration: 300ms; + transition-property: box-shadow; +} +.elevation-transition-400 { + transition-duration: 400ms; + transition-property: box-shadow; +} +.elevation-transition-500 { + transition-duration: 500ms; + transition-property: box-shadow; +} +/* === Typography === */ +:root { + --f7-typography-padding: 16px; + --f7-typography-margin: 16px; +} +.display-flex { + display: flex !important; +} +.display-block { + display: block !important; +} +.display-inline-flex { + display: inline-flex !important; +} +.display-inline-block { + display: inline-block !important; +} +.display-inline { + display: inline !important; +} +.display-none { + display: none !important; +} +.flex-shrink-0 { + flex-shrink: 0 !important; +} +.flex-shrink-1 { + flex-shrink: 1 !important; +} +.flex-shrink-2 { + flex-shrink: 2 !important; +} +.flex-shrink-3 { + flex-shrink: 3 !important; +} +.flex-shrink-4 { + flex-shrink: 4 !important; +} +.flex-shrink-5 { + flex-shrink: 5 !important; +} +.flex-shrink-6 { + flex-shrink: 6 !important; +} +.flex-shrink-7 { + flex-shrink: 7 !important; +} +.flex-shrink-8 { + flex-shrink: 8 !important; +} +.flex-shrink-9 { + flex-shrink: 9 !important; +} +.flex-shrink-10 { + flex-shrink: 10 !important; +} +.flex-direction-row { + flex-direction: row !important; +} +.flex-direction-row-reverse { + flex-direction: row-reverse !important; +} +.flex-direction-column { + flex-direction: column !important; +} +.flex-direction-column-reverse { + flex-direction: column-reverse !important; +} +.justify-content-flex-start { + justify-content: flex-start !important; +} +.justify-content-center { + justify-content: center !important; +} +.justify-content-flex-end { + justify-content: flex-end !important; +} +.justify-content-space-between { + justify-content: space-between !important; +} +.justify-content-space-around { + justify-content: space-around !important; +} +.justify-content-space-evenly { + justify-content: space-evenly !important; +} +.justify-content-stretch { + justify-content: stretch !important; +} +.justify-content-start { + justify-content: start !important; +} +.justify-content-end { + justify-content: end !important; +} +.justify-content-left { + justify-content: left !important; +} +.justify-content-right { + justify-content: right !important; +} +.align-content-flex-start { + align-content: flex-start !important; +} +.align-content-flex-end { + align-content: flex-end !important; +} +.align-content-center { + align-content: center !important; +} +.align-content-space-between { + align-content: space-between !important; +} +.align-content-space-around { + align-content: space-around !important; +} +.align-content-stretch { + align-content: stretch !important; +} +.align-items-baseline { + align-items: baseline !important; +} +.align-items-flex-start { + align-items: flex-start !important; +} +.align-items-flex-end { + align-items: flex-end !important; +} +.align-items-center { + align-items: center !important; +} +.align-items-stretch { + align-items: stretch !important; +} +.align-self-flex-start { + align-self: flex-start !important; +} +.align-self-flex-end { + align-self: flex-end !important; +} +.align-self-center { + align-self: center !important; +} +.align-self-stretch { + align-self: stretch !important; +} +.text-align-left { + text-align: left !important; +} +.text-align-center { + text-align: center !important; +} +.text-align-right { + text-align: right !important; +} +.text-align-justify { + text-align: justify !important; +} +.float-left { + float: left !important; +} +.float-right { + float: right !important; +} +.float-none { + float: none !important; +} +.vertical-align-bottom { + vertical-align: bottom !important; +} +.vertical-align-middle { + vertical-align: middle !important; +} +.vertical-align-top { + vertical-align: top !important; +} +.no-padding { + padding: 0 !important; +} +.no-padding-left { + padding-left: 0 !important; +} +.no-padding-right { + padding-right: 0 !important; +} +.no-padding-horizontal { + padding-left: 0 !important; + padding-right: 0 !important; +} +.no-padding-top { + padding-top: 0 !important; +} +.no-padding-bottom { + padding-bottom: 0 !important; +} +.no-padding-vertical { + padding-top: 0 !important; + padding-bottom: 0 !important; +} +.no-margin { + margin: 0 !important; +} +.no-margin-left { + margin-left: 0 !important; +} +.no-margin-right { + margin-right: 0 !important; +} +.no-margin-horizontal { + margin-left: 0 !important; + margin-right: 0 !important; +} +.no-margin-top { + margin-top: 0 !important; +} +.no-margin-bottom { + margin-bottom: 0 !important; +} +.no-margin-vertical { + margin-top: 0 !important; + margin-bottom: 0 !important; +} +.width-auto { + width: auto !important; +} +.width-100 { + width: 100% !important; +} +.padding { + padding: var(--f7-typography-padding) !important; +} +.padding-half { + padding: calc(var(--f7-typography-padding) / 2) !important; +} +.padding-top { + padding-top: var(--f7-typography-padding) !important; +} +.padding-top-half { + padding-top: calc(var(--f7-typography-padding) / 2) !important; +} +.padding-bottom { + padding-bottom: var(--f7-typography-padding) !important; +} +.padding-bottom-half { + padding-bottom: calc(var(--f7-typography-padding) / 2) !important; +} +.padding-left { + padding-left: var(--f7-typography-padding) !important; +} +.padding-left-half { + padding-left: calc(var(--f7-typography-padding) / 2) !important; +} +.padding-right { + padding-right: var(--f7-typography-padding) !important; +} +.padding-right-half { + padding-right: calc(var(--f7-typography-padding) / 2) !important; +} +.padding-vertical { + padding-top: var(--f7-typography-padding) !important; + padding-bottom: var(--f7-typography-padding) !important; +} +.padding-vertical-half { + padding-top: calc(var(--f7-typography-padding) / 2) !important; + padding-bottom: calc(var(--f7-typography-padding) / 2) !important; +} +.padding-horizontal { + padding-left: var(--f7-typography-padding) !important; + padding-right: var(--f7-typography-padding) !important; +} +.padding-horizontal-half { + padding-left: calc(var(--f7-typography-padding) / 2) !important; + padding-right: calc(var(--f7-typography-padding) / 2) !important; +} +.margin { + margin: var(--f7-typography-margin) !important; +} +.margin-half { + margin: calc(var(--f7-typography-margin) / 2) !important; +} +.margin-top { + margin-top: var(--f7-typography-margin) !important; +} +.margin-top-half { + margin-top: calc(var(--f7-typography-margin) / 2) !important; +} +.margin-bottom { + margin-bottom: var(--f7-typography-margin) !important; +} +.margin-bottom-half { + margin-bottom: calc(var(--f7-typography-margin) / 2) !important; +} +.margin-left { + margin-left: var(--f7-typography-margin) !important; +} +.margin-left-half { + margin-left: calc(var(--f7-typography-margin) / 2) !important; +} +.margin-right { + margin-right: var(--f7-typography-margin) !important; +} +.margin-right-half { + margin-right: calc(var(--f7-typography-margin) / 2) !important; +} +.margin-vertical { + margin-top: var(--f7-typography-margin) !important; + margin-bottom: var(--f7-typography-margin) !important; +} +.margin-vertical-half { + margin-top: calc(var(--f7-typography-margin) / 2) !important; + margin-bottom: calc(var(--f7-typography-margin) / 2) !important; +} +.margin-horizontal { + margin-left: var(--f7-typography-margin) !important; + margin-right: var(--f7-typography-margin) !important; +} +.margin-horizontal-half { + margin-left: calc(var(--f7-typography-margin) / 2) !important; + margin-right: calc(var(--f7-typography-margin) / 2) !important; +} +[class*="text-color-"] { + color: var(--f7-theme-color-text-color) !important; +} +[class*="bg-color-"] { + background-color: var(--f7-theme-color-bg-color) !important; +} +[class*="border-color-"] { + border-color: var(--f7-theme-color-border-color) !important; +} +iframe#viAd { + z-index: 12900 !important; + background: #000 !important; +} +.vi-overlay { + background: rgba(0, 0, 0, 0.85); + z-index: 13100; + position: absolute; + left: 0%; + top: 0%; + width: 100%; + height: 100%; + border-radius: 3px; + display: flex; + justify-content: center; + flex-direction: column; + align-items: center; + align-content: center; + text-align: center; + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; +} +@supports ((-webkit-backdrop-filter: blur(10px)) or (backdrop-filter: blur(10px))) { + .vi-overlay { + background: rgba(0, 0, 0, 0.65); + -webkit-backdrop-filter: blur(10px); + backdrop-filter: blur(10px); + } +} +.vi-overlay .vi-overlay-text { + text-align: center; + color: #fff; + max-width: 80%; +} +.vi-overlay .vi-overlay-text + .vi-overlay-play-button { + margin-top: 15px; +} +.vi-overlay .vi-overlay-play-button { + width: 44px; + height: 44px; + border-radius: 50%; + border: 2px solid #fff; + position: relative; +} +.vi-overlay .vi-overlay-play-button.active-state { + opacity: 0.55; +} +.vi-overlay .vi-overlay-play-button:before { + content: ''; + width: 0; + height: 0; + border-top: 8px solid transparent; + border-bottom: 8px solid transparent; + border-left: 14px solid #fff; + position: absolute; + left: 50%; + top: 50%; + margin-left: 2px; + transform: translate(-50%, -50%); +} diff --git a/public/Framework7/5/css/framework7.bundle.rtl.min.css b/public/Framework7/5/css/framework7.bundle.rtl.min.css new file mode 100644 index 0000000..44ffef6 --- /dev/null +++ b/public/Framework7/5/css/framework7.bundle.rtl.min.css @@ -0,0 +1,13 @@ +/** + * Framework7 5.7.14 + * Full featured mobile HTML framework for building iOS & Android apps + * https://framework7.io/ + * + * Copyright 2014-2020 Vladimir Kharlampidi + * + * Released under the MIT License + * + * Released on: November 9, 2020 + */ + +:root{--f7-theme-color:#007aff;--f7-theme-color-rgb:0,122,255;--f7-theme-color-shade:#0066d6;--f7-theme-color-tint:#298fff;--f7-safe-area-left:0px;--f7-safe-area-right:0px;--f7-safe-area-top:0px;--f7-safe-area-bottom:0px;--f7-safe-area-outer-left:0px;--f7-safe-area-outer-right:0px;--f7-device-pixel-ratio:1}@supports (left:env(safe-area-inset-left)){:root{--f7-safe-area-top:env(safe-area-inset-top);--f7-safe-area-bottom:env(safe-area-inset-bottom)}:root .ios-edges,:root .ios-left-edge,:root .panel-left,:root .popup,:root .safe-area-left,:root .safe-areas,:root .sheet-modal{--f7-safe-area-left:env(safe-area-inset-left);--f7-safe-area-outer-left:env(safe-area-inset-left)}:root .ios-edges,:root .ios-right-edge,:root .panel-right,:root .popup,:root .safe-area-right,:root .safe-areas,:root .sheet-modal{--f7-safe-area-right:env(safe-area-inset-right);--f7-safe-area-outer-right:env(safe-area-inset-right)}:root .no-ios-edges,:root .no-ios-left-edge,:root .no-safe-area-left,:root .no-safe-areas{--f7-safe-area-left:0px;--f7-safe-area-outer-left:0px}:root .no-ios-edges,:root .no-ios-right-edge,:root .no-safe-area-right,:root .no-safe-areas{--f7-safe-area-right:0px;--f7-safe-area-outer-right:0px}}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:2dppx){:root{--f7-device-pixel-ratio:2}}@media (-webkit-min-device-pixel-ratio:3),(min-resolution:3dppx){:root{--f7-device-pixel-ratio:3}}:root{--f7-font-size:14px;--f7-bars-bg-image:none;--f7-bars-translucent-opacity:0.8;--f7-bars-translucent-blur:20px;--f7-bars-shadow-bottom-image:linear-gradient(to bottom, rgba(0, 0, 0, 0.25) 0%, rgba(0, 0, 0, 0.08) 40%, rgba(0, 0, 0, 0.04) 50%, rgba(0, 0, 0, 0) 90%, rgba(0, 0, 0, 0) 100%);--f7-bars-shadow-top-image:linear-gradient(to top, rgba(0, 0, 0, 0.25) 0%, rgba(0, 0, 0, 0.08) 40%, rgba(0, 0, 0, 0.04) 50%, rgba(0, 0, 0, 0) 90%, rgba(0, 0, 0, 0) 100%);--f7-bars-text-color:#000;--f7-bars-bg-color:#f7f7f8;--f7-bars-bg-color-rgb:247,247,248}:root .theme-dark,:root.theme-dark{--f7-bars-text-color:#fff}.ios{--f7-font-family:-apple-system,SF Pro Text,SF UI Text,system-ui,Helvetica Neue,Helvetica,Arial,sans-serif;--f7-line-height:1.4;--f7-text-color:#000;--f7-bars-border-color:rgba(0, 0, 0, 0.25)}.ios .theme-dark,.ios.theme-dark{--f7-text-color:#fff;--f7-bars-bg-color:#121212;--f7-bars-bg-color-rgb:22,22,22;--f7-bars-border-color:rgba(255, 255, 255, 0.16)}.md{--f7-font-family:Roboto,system-ui,Noto,Helvetica,Arial,sans-serif;--f7-line-height:1.5;--f7-bars-border-color:transparent;--f7-text-color:#212121}.md .theme-dark,.md.theme-dark{--f7-text-color:rgba(255, 255, 255, 0.87);--f7-bars-bg-color:#202020}.aurora{--f7-font-family:-apple-system,system-ui,Helvetica,Arial,sans-serif;--f7-line-height:1.5;--f7-text-color:#000;--f7-bars-border-color:rgba(0, 0, 0, 0.2)}.aurora .theme-dark,.aurora.theme-dark{--f7-text-color:#fff;--f7-bars-bg-color:#202020;--f7-bars-border-color:rgba(255, 255, 255, 0.1)}.text-color-primary{--f7-theme-color-text-color:var(--f7-theme-color)}.bg-color-primary{--f7-theme-color-bg-color:var(--f7-theme-color)}.border-color-primary{--f7-theme-color-border-color:var(--f7-theme-color)}.ripple-color-primary{--f7-theme-color-ripple-color:rgba(var(--f7-theme-color-rgb), 0.3)}:root{--f7-color-red:#ff3b30;--f7-color-red-rgb:255,59,48;--f7-color-red-shade:#ff1407;--f7-color-red-tint:#ff6259;--f7-color-green:#4cd964;--f7-color-green-rgb:76,217,100;--f7-color-green-shade:#2cd048;--f7-color-green-tint:#6ee081;--f7-color-blue:#2196f3;--f7-color-blue-rgb:33,150,243;--f7-color-blue-shade:#0c82df;--f7-color-blue-tint:#48a8f5;--f7-color-pink:#ff2d55;--f7-color-pink-rgb:255,45,85;--f7-color-pink-shade:#ff0434;--f7-color-pink-tint:#ff5676;--f7-color-yellow:#ffcc00;--f7-color-yellow-rgb:255,204,0;--f7-color-yellow-shade:#d6ab00;--f7-color-yellow-tint:#ffd429;--f7-color-orange:#ff9500;--f7-color-orange-rgb:255,149,0;--f7-color-orange-shade:#d67d00;--f7-color-orange-tint:#ffa629;--f7-color-purple:#9c27b0;--f7-color-purple-rgb:156,39,176;--f7-color-purple-shade:#7e208f;--f7-color-purple-tint:#b92fd1;--f7-color-deeppurple:#673ab7;--f7-color-deeppurple-rgb:103,58,183;--f7-color-deeppurple-shade:#563098;--f7-color-deeppurple-tint:#7c52c8;--f7-color-lightblue:#5ac8fa;--f7-color-lightblue-rgb:90,200,250;--f7-color-lightblue-shade:#32bbf9;--f7-color-lightblue-tint:#82d5fb;--f7-color-teal:#009688;--f7-color-teal-rgb:0,150,136;--f7-color-teal-shade:#006d63;--f7-color-teal-tint:#00bfad;--f7-color-lime:#cddc39;--f7-color-lime-rgb:205,220,57;--f7-color-lime-shade:#bac923;--f7-color-lime-tint:#d6e25c;--f7-color-deeporange:#ff6b22;--f7-color-deeporange-rgb:255,107,34;--f7-color-deeporange-shade:#f85200;--f7-color-deeporange-tint:#ff864b;--f7-color-gray:#8e8e93;--f7-color-gray-rgb:142,142,147;--f7-color-gray-shade:#79797f;--f7-color-gray-tint:#a3a3a7;--f7-color-white:#ffffff;--f7-color-white-rgb:255,255,255;--f7-color-white-shade:#ebebeb;--f7-color-white-tint:#ffffff;--f7-color-black:#000000;--f7-color-black-rgb:0,0,0;--f7-color-black-shade:#000000;--f7-color-black-tint:#141414}.color-theme-red{--f7-theme-color:#ff3b30;--f7-theme-color-rgb:255,59,48;--f7-theme-color-shade:#ff1407;--f7-theme-color-tint:#ff6259}.color-theme-green{--f7-theme-color:#4cd964;--f7-theme-color-rgb:76,217,100;--f7-theme-color-shade:#2cd048;--f7-theme-color-tint:#6ee081}.color-theme-blue{--f7-theme-color:#2196f3;--f7-theme-color-rgb:33,150,243;--f7-theme-color-shade:#0c82df;--f7-theme-color-tint:#48a8f5}.color-theme-pink{--f7-theme-color:#ff2d55;--f7-theme-color-rgb:255,45,85;--f7-theme-color-shade:#ff0434;--f7-theme-color-tint:#ff5676}.color-theme-yellow{--f7-theme-color:#ffcc00;--f7-theme-color-rgb:255,204,0;--f7-theme-color-shade:#d6ab00;--f7-theme-color-tint:#ffd429}.color-theme-orange{--f7-theme-color:#ff9500;--f7-theme-color-rgb:255,149,0;--f7-theme-color-shade:#d67d00;--f7-theme-color-tint:#ffa629}.color-theme-purple{--f7-theme-color:#9c27b0;--f7-theme-color-rgb:156,39,176;--f7-theme-color-shade:#7e208f;--f7-theme-color-tint:#b92fd1}.color-theme-deeppurple{--f7-theme-color:#673ab7;--f7-theme-color-rgb:103,58,183;--f7-theme-color-shade:#563098;--f7-theme-color-tint:#7c52c8}.color-theme-lightblue{--f7-theme-color:#5ac8fa;--f7-theme-color-rgb:90,200,250;--f7-theme-color-shade:#32bbf9;--f7-theme-color-tint:#82d5fb}.color-theme-teal{--f7-theme-color:#009688;--f7-theme-color-rgb:0,150,136;--f7-theme-color-shade:#006d63;--f7-theme-color-tint:#00bfad}.color-theme-lime{--f7-theme-color:#cddc39;--f7-theme-color-rgb:205,220,57;--f7-theme-color-shade:#bac923;--f7-theme-color-tint:#d6e25c}.color-theme-deeporange{--f7-theme-color:#ff6b22;--f7-theme-color-rgb:255,107,34;--f7-theme-color-shade:#f85200;--f7-theme-color-tint:#ff864b}.color-theme-gray{--f7-theme-color:#8e8e93;--f7-theme-color-rgb:142,142,147;--f7-theme-color-shade:#79797f;--f7-theme-color-tint:#a3a3a7}.color-theme-white{--f7-theme-color:#ffffff;--f7-theme-color-rgb:255,255,255;--f7-theme-color-shade:#ebebeb;--f7-theme-color-tint:#ffffff}.color-theme-black{--f7-theme-color:#000000;--f7-theme-color-rgb:0,0,0;--f7-theme-color-shade:#000000;--f7-theme-color-tint:#141414}.color-red{--f7-theme-color:#ff3b30;--f7-theme-color-rgb:255,59,48;--f7-theme-color-shade:#ff1407;--f7-theme-color-tint:#ff6259}.text-color-red{--f7-theme-color-text-color:#ff3b30}.bg-color-red{--f7-theme-color-bg-color:#ff3b30}.border-color-red{--f7-theme-color-border-color:#ff3b30}.ripple-color-red,.ripple-red{--f7-theme-color-ripple-color:rgba(255, 59, 48, 0.3)}.color-green{--f7-theme-color:#4cd964;--f7-theme-color-rgb:76,217,100;--f7-theme-color-shade:#2cd048;--f7-theme-color-tint:#6ee081}.text-color-green{--f7-theme-color-text-color:#4cd964}.bg-color-green{--f7-theme-color-bg-color:#4cd964}.border-color-green{--f7-theme-color-border-color:#4cd964}.ripple-color-green,.ripple-green{--f7-theme-color-ripple-color:rgba(76, 217, 100, 0.3)}.color-blue{--f7-theme-color:#2196f3;--f7-theme-color-rgb:33,150,243;--f7-theme-color-shade:#0c82df;--f7-theme-color-tint:#48a8f5}.text-color-blue{--f7-theme-color-text-color:#2196f3}.bg-color-blue{--f7-theme-color-bg-color:#2196f3}.border-color-blue{--f7-theme-color-border-color:#2196f3}.ripple-blue,.ripple-color-blue{--f7-theme-color-ripple-color:rgba(33, 150, 243, 0.3)}.color-pink{--f7-theme-color:#ff2d55;--f7-theme-color-rgb:255,45,85;--f7-theme-color-shade:#ff0434;--f7-theme-color-tint:#ff5676}.text-color-pink{--f7-theme-color-text-color:#ff2d55}.bg-color-pink{--f7-theme-color-bg-color:#ff2d55}.border-color-pink{--f7-theme-color-border-color:#ff2d55}.ripple-color-pink,.ripple-pink{--f7-theme-color-ripple-color:rgba(255, 45, 85, 0.3)}.color-yellow{--f7-theme-color:#ffcc00;--f7-theme-color-rgb:255,204,0;--f7-theme-color-shade:#d6ab00;--f7-theme-color-tint:#ffd429}.text-color-yellow{--f7-theme-color-text-color:#ffcc00}.bg-color-yellow{--f7-theme-color-bg-color:#ffcc00}.border-color-yellow{--f7-theme-color-border-color:#ffcc00}.ripple-color-yellow,.ripple-yellow{--f7-theme-color-ripple-color:rgba(255, 204, 0, 0.3)}.color-orange{--f7-theme-color:#ff9500;--f7-theme-color-rgb:255,149,0;--f7-theme-color-shade:#d67d00;--f7-theme-color-tint:#ffa629}.text-color-orange{--f7-theme-color-text-color:#ff9500}.bg-color-orange{--f7-theme-color-bg-color:#ff9500}.border-color-orange{--f7-theme-color-border-color:#ff9500}.ripple-color-orange,.ripple-orange{--f7-theme-color-ripple-color:rgba(255, 149, 0, 0.3)}.color-purple{--f7-theme-color:#9c27b0;--f7-theme-color-rgb:156,39,176;--f7-theme-color-shade:#7e208f;--f7-theme-color-tint:#b92fd1}.text-color-purple{--f7-theme-color-text-color:#9c27b0}.bg-color-purple{--f7-theme-color-bg-color:#9c27b0}.border-color-purple{--f7-theme-color-border-color:#9c27b0}.ripple-color-purple,.ripple-purple{--f7-theme-color-ripple-color:rgba(156, 39, 176, 0.3)}.color-deeppurple{--f7-theme-color:#673ab7;--f7-theme-color-rgb:103,58,183;--f7-theme-color-shade:#563098;--f7-theme-color-tint:#7c52c8}.text-color-deeppurple{--f7-theme-color-text-color:#673ab7}.bg-color-deeppurple{--f7-theme-color-bg-color:#673ab7}.border-color-deeppurple{--f7-theme-color-border-color:#673ab7}.ripple-color-deeppurple,.ripple-deeppurple{--f7-theme-color-ripple-color:rgba(103, 58, 183, 0.3)}.color-lightblue{--f7-theme-color:#5ac8fa;--f7-theme-color-rgb:90,200,250;--f7-theme-color-shade:#32bbf9;--f7-theme-color-tint:#82d5fb}.text-color-lightblue{--f7-theme-color-text-color:#5ac8fa}.bg-color-lightblue{--f7-theme-color-bg-color:#5ac8fa}.border-color-lightblue{--f7-theme-color-border-color:#5ac8fa}.ripple-color-lightblue,.ripple-lightblue{--f7-theme-color-ripple-color:rgba(90, 200, 250, 0.3)}.color-teal{--f7-theme-color:#009688;--f7-theme-color-rgb:0,150,136;--f7-theme-color-shade:#006d63;--f7-theme-color-tint:#00bfad}.text-color-teal{--f7-theme-color-text-color:#009688}.bg-color-teal{--f7-theme-color-bg-color:#009688}.border-color-teal{--f7-theme-color-border-color:#009688}.ripple-color-teal,.ripple-teal{--f7-theme-color-ripple-color:rgba(0, 150, 136, 0.3)}.color-lime{--f7-theme-color:#cddc39;--f7-theme-color-rgb:205,220,57;--f7-theme-color-shade:#bac923;--f7-theme-color-tint:#d6e25c}.text-color-lime{--f7-theme-color-text-color:#cddc39}.bg-color-lime{--f7-theme-color-bg-color:#cddc39}.border-color-lime{--f7-theme-color-border-color:#cddc39}.ripple-color-lime,.ripple-lime{--f7-theme-color-ripple-color:rgba(205, 220, 57, 0.3)}.color-deeporange{--f7-theme-color:#ff6b22;--f7-theme-color-rgb:255,107,34;--f7-theme-color-shade:#f85200;--f7-theme-color-tint:#ff864b}.text-color-deeporange{--f7-theme-color-text-color:#ff6b22}.bg-color-deeporange{--f7-theme-color-bg-color:#ff6b22}.border-color-deeporange{--f7-theme-color-border-color:#ff6b22}.ripple-color-deeporange,.ripple-deeporange{--f7-theme-color-ripple-color:rgba(255, 107, 34, 0.3)}.color-gray{--f7-theme-color:#8e8e93;--f7-theme-color-rgb:142,142,147;--f7-theme-color-shade:#79797f;--f7-theme-color-tint:#a3a3a7}.text-color-gray{--f7-theme-color-text-color:#8e8e93}.bg-color-gray{--f7-theme-color-bg-color:#8e8e93}.border-color-gray{--f7-theme-color-border-color:#8e8e93}.ripple-color-gray,.ripple-gray{--f7-theme-color-ripple-color:rgba(142, 142, 147, 0.3)}.color-white{--f7-theme-color:#ffffff;--f7-theme-color-rgb:255,255,255;--f7-theme-color-shade:#ebebeb;--f7-theme-color-tint:#ffffff}.text-color-white{--f7-theme-color-text-color:#ffffff}.bg-color-white{--f7-theme-color-bg-color:#ffffff}.border-color-white{--f7-theme-color-border-color:#ffffff}.ripple-color-white,.ripple-white{--f7-theme-color-ripple-color:rgba(255, 255, 255, 0.3)}.color-black{--f7-theme-color:#000000;--f7-theme-color-rgb:0,0,0;--f7-theme-color-shade:#000000;--f7-theme-color-tint:#141414}.text-color-black{--f7-theme-color-text-color:#000000}.bg-color-black{--f7-theme-color-bg-color:#000000}.border-color-black{--f7-theme-color-border-color:#000000}.ripple-black,.ripple-color-black{--f7-theme-color-ripple-color:rgba(0, 0, 0, 0.3)}@font-face{font-family:framework7-core-icons;src:url("data:application/font-woff;charset=utf-8;base64, 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") format("woff");font-weight:400;font-style:normal}@font-face{font-family:framework7-skeleton;src:url("data:application/font-woff;charset=utf-8;base64, d09GRgABAAAAAAYQAA0AAAAAEcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAF9AAAABkAAAAciVvoDU9TLzIAAAGcAAAASwAAAGBRtV1jY21hcAAAAfwAAAC8AAABamglddJjdnQgAAACuAAAAAQAAAAEABEBRGdhc3AAAAXsAAAACAAAAAj //wADZ2x5ZgAAA2wAAACUAAAJjHCzhiRoZWFkAAABMAAAAC4AAAA2ERr/HWhoZWEAAAFgAAAAGgAAACQC8ADFaG10eAAAAegAAAATAAAAtAMAABFsb2NhAAACvAAAAK4AAACuaNBmhG1heHAAAAF8AAAAHwAAACAAmgA5bmFtZQAABAAAAAFQAAACuLf6wytwb3N0AAAFUAAAAJkAAADOCKMIc3jaY2BkYGAA4lUx8ibx/DZfGbiZGEDgRu39AAT9/wAjA+MBIJeDASwNACBICpsAAHjaY2BkYGA88P8Agx6QAQSMYIQCWABQZgK3AAB42mNgZGBgCGPgYGBiAAEQycgAEnNg0AMJAAANJwDUAHjaY2BhZGCcwMDKwMDow5jGwMDgDqW/MkgytDAwMDGwcjLAACMDEghIc01haGBQYKhlPPD/AIMe4wEGB5gaxgNAHgNQjhEA6dgLvQB42mNkYBBkAAJGKB4KAAAOfQAVAHjaY2BgYGaAYBkGRgYQSAHyGMF8FgYPIM3HwMHAxMDGoMSgxWDNEMsQz1D7/z9QXIFBjUGHwRHIT/z////j/w/+3/9/6//N/zeg5iABRjYGuCAjE5BgQlcAdAILK5DBxs7BycXAzcPLxy8gKCQsIiomLiEpBVYjLSMrJ6+gqKSsoqqmrqGppa2jq6dvYGhkbGJqZs5gwWBpZW1ja2fv4Ojk7OLq5u7h6eXt4+vnHxAYFBwSyjDgAABJLiG7ABEBRAAAACoAKgAqADgARgBUAGIAcAB+AIwAmgCoALYAxADYAOYA9AECARABHgEsAToBSAFWAWQBcgGAAY4BnAGqAbgBxgHUAeIB8AH+AgwCGgIoAjYCRAJSAmACbgJ8AooCmAKmArQCwgLQAt4C8gMAAw4DHAMqAzgDRgNUA2IDcAN+A4wDmgOoA7YDxAPSA+AD7gP8BAoEGAQmBDQEQgRQBF4EbAR6BIgEnASqBLgExgAAeNpjYGIQZGBgmMkYysDMwM6gt5GRQd9mEzsLw1ujjWysd2w2MTMBmQwbmUHCrCDhTexsjH9sNjGCxI0FjQXVjQWVBTvK09IYQ/+tFmQ0BprGyMDw/wAjA+MBoJkMooKKgowMDkwM/xgYRuVwyjEhybFDZBXBKv4zQFVBVI6G36jcqNyo3GiZMSo3Kjes8hQAx51w5njapZC9agJBFIXP+EfSBMEXmEoU3GVcBNFWsLEJKbYKhEUnOrjryrggkgfIQ6RMnzZVHiBNijxM6pydHUiRFAEXLvebc8+duXcBXOEFAtXXw41ngQ6ePddwgXfPdYRCeW6gIx49N9EWb55b1L/oFI1Lnq5dV8kCXTx4rqGNV8913OLTcwNdcee5CSmePLeof2CGHHucYGGwxgYFJGdeos8cQWGICQbkGCkSrOjKGJbKgu6EVOoZ7zCuilm+P1mz3hSyt+zLSA0nAxmnycpkxsrFJrFpku3Nis57NpetGkcOYbHFGAEOzJqXao6SY0ebTTJ9zO12HBy2OtVFTvGX66c0d0LhsuVO2m0ScheJKeN/z1beESuRi+pPYJ7vinlu11pGoZJT+cdwVEdBFJSbn7djzLql1/iBlBsidLlcBrG2B8MHlRqGSil51nPfEi6AO3jaXc5ZM4IBAEbhp9RF1FhCRbmyVNYskSXG0CaEQvaf2j/LN112bt6Zc/HOETZiOJAJJmSc15ENmxARFTNpSlzCtBmz5iTNW7AoJR08LFmWlbNi1Zp1G/IKijZt2bZj156SfQcOHSk7dqLi1JlzF6ouXbl241ZNXUNTy522ew8edTx59qKrF3S9edf34dOXbz9+/f0DgycTFgAAAAAAAAH//wACeNpjYGBgZACCGwmaOWC69n4AjAYARC0G1wAAAA==") format("woff");font-weight:300,400,500,600,700;font-style:normal,italic}html{direction:rtl}.framework7-root,body,html{position:relative;height:100%;width:100%;overflow-x:hidden}body{margin:0;padding:0;width:100%;background:#fff;overflow:hidden;-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;font-family:var(--f7-font-family);font-size:var(--f7-font-size);line-height:var(--f7-line-height);color:var(--f7-text-color)}.theme-dark body,body.theme-dark{background:#000}.theme-dark{color:var(--f7-text-color)}.framework7-root{overflow:hidden;box-sizing:border-box}.framework7-initializing *,.framework7-initializing :after,.framework7-initializing :before{transition-duration:0s!important}.device-android,.device-ios{cursor:pointer}.device-ios{touch-action:manipulation}@media (width:1024px) and (height:691px) and (orientation:landscape){.framework7-root,body,html{height:671px}}@media (width:1024px) and (height:692px) and (orientation:landscape){.framework7-root,body,html{height:672px}}*{-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none}a,input,select,textarea{outline:0}a{cursor:pointer;text-decoration:none;color:var(--f7-theme-color)}.item-link,.link{cursor:pointer}p{margin:1em 0}.disabled{opacity:.55!important;pointer-events:none!important}html.device-full-viewport,html.device-full-viewport body{height:100vh}.ios .aurora-only,.ios .if-aurora,.ios .if-md,.ios .if-not-ios,.ios .md-only,.ios .not-ios{display:none!important}@media (width:1024px) and (height:691px) and (orientation:landscape){.ios,.ios .framework7-root,.ios body{height:671px}}@media (width:1024px) and (height:692px) and (orientation:landscape){.ios,.ios .framework7-root,.ios body{height:672px}}.md .aurora-only,.md .if-aurora,.md .if-ios,.md .if-not-md,.md .ios-only,.md .not-md{display:none!important}.aurora .if-ios,.aurora .if-md,.aurora .if-not-aurora,.aurora .ios-only,.aurora .md-only,.aurora .not-aurora{display:none!important}.view,.views{position:relative;height:100%;z-index:5000;overflow:hidden;box-sizing:border-box}.framework7-root>.view,.framework7-root>.views{height:calc(100% - var(--f7-appbar-app-offset,0px))}.view-resize-handler{width:6px;height:100%;position:absolute;left:var(--f7-page-master-width);margin-left:-3px;top:0;cursor:col-resize;z-index:1000;display:none}.view-master-detail .view-resize-handler{display:block}:root{--f7-page-master-width:320px;--f7-page-master-border-color:rgba(0, 0, 0, 0.1);--f7-page-master-border-width:1px;--f7-page-swipeback-transition-duration:300ms;--f7-page-parallax-transition-duration:500ms;--f7-page-cover-transition-duration:450ms;--f7-page-dive-transition-duration:500ms;--f7-page-fade-transition-duration:500ms;--f7-page-flip-transition-duration:700ms;--f7-page-push-transition-duration:500ms}.ios{--f7-page-transition-duration:400ms;--f7-page-bg-color:#efeff4}.ios .theme-dark,.ios.theme-dark{--f7-page-bg-color:#000}.md{--f7-page-transition-duration:250ms;--f7-page-bg-color:#fff}.md .theme-dark,.md.theme-dark{--f7-page-bg-color:#121212}.aurora{--f7-page-transition-duration:400ms;--f7-page-bg-color:#f3f3f3}.aurora .theme-dark,.aurora.theme-dark{--f7-page-bg-color:#121212}.theme-dark{--f7-page-master-border-color:rgba(255, 255, 255, 0.1)}.pages{position:relative;width:100%;height:100%;overflow:hidden}.page{box-sizing:border-box;position:absolute;left:0;top:0;width:100%;height:100%;transform:none;background-color:var(--f7-page-bg-color);z-index:1}.page.stacked{display:none}.page-with-navbar-large-collapsed{--f7-navbar-large-collapse-progress:1}.page-previous{pointer-events:none}.page-content{overflow:auto;-webkit-overflow-scrolling:touch;box-sizing:border-box;height:100%;position:relative;z-index:1;padding-top:calc(var(--f7-page-navbar-offset,0px) + var(--f7-page-toolbar-top-offset,0px) + var(--f7-page-subnavbar-offset,0px) + var(--f7-page-searchbar-offset,0px) + var(--f7-page-content-extra-padding-top,0px));padding-bottom:calc(var(--f7-page-toolbar-bottom-offset,0px) + var(--f7-safe-area-bottom) + var(--f7-page-content-extra-padding-bottom,0px))}.page-transitioning,.page-transitioning .page-opacity-effect,.page-transitioning .page-shadow-effect{transition-duration:var(--f7-page-transition-duration)}.page-transitioning-swipeback,.page-transitioning-swipeback .page-opacity-effect,.page-transitioning-swipeback .page-shadow-effect{transition-duration:var(--f7-page-swipeback-transition-duration)}.router-transition-backward .page-current,.router-transition-backward .page-next,.router-transition-backward .page-previous:not(.stacked),.router-transition-forward .page-current,.router-transition-forward .page-next,.router-transition-forward .page-previous:not(.stacked){pointer-events:none}.page-shadow-effect{position:absolute;top:0;width:16px;bottom:0;z-index:-1;content:'';opacity:0;left:100%;background:linear-gradient(to left,rgba(0,0,0,0) 0%,rgba(0,0,0,0) 10%,rgba(0,0,0,.01) 50%,rgba(0,0,0,.2) 100%)}.page-opacity-effect{position:absolute;left:0;top:0;background:rgba(0,0,0,.1);width:100%;bottom:0;content:'';opacity:0;z-index:10000}.ios .page-previous{transform:translate3d(20%,0,0)}.ios .page-next{transform:translate3d(-100%,0,0)}.ios .page-previous .page-opacity-effect{opacity:1}.ios .page-previous:after{opacity:1}.ios .page-current .page-shadow-effect{opacity:1}.ios .router-transition-forward .page-next{animation:ios-page-next-to-current var(--f7-page-transition-duration) forwards}.ios .router-transition-forward .page-next:before{position:absolute;top:0;width:16px;bottom:0;z-index:-1;content:'';opacity:0;left:100%;background:linear-gradient(to left,rgba(0,0,0,0) 0%,rgba(0,0,0,0) 10%,rgba(0,0,0,.01) 50%,rgba(0,0,0,.2) 100%);animation:ios-page-element-fade-in var(--f7-page-transition-duration) forwards}.ios .router-transition-forward .page-current{animation:ios-page-current-to-previous var(--f7-page-transition-duration) forwards}.ios .router-transition-forward .page-current:after{position:absolute;left:0;top:0;background:rgba(0,0,0,.1);width:100%;bottom:0;content:'';opacity:0;z-index:10000;animation:ios-page-element-fade-in var(--f7-page-transition-duration) forwards}.ios .router-transition-backward .page-previous{animation:ios-page-previous-to-current var(--f7-page-transition-duration) forwards}.ios .router-transition-backward .page-previous:after{position:absolute;left:0;top:0;background:rgba(0,0,0,.1);width:100%;bottom:0;content:'';opacity:0;z-index:10000;animation:ios-page-element-fade-out var(--f7-page-transition-duration) forwards}.ios .router-transition-backward .page-current{animation:ios-page-current-to-next var(--f7-page-transition-duration) forwards}.ios .router-transition-backward .page-current:before{position:absolute;top:0;width:16px;bottom:0;z-index:-1;content:'';opacity:0;left:100%;background:linear-gradient(to left,rgba(0,0,0,0) 0%,rgba(0,0,0,0) 10%,rgba(0,0,0,.01) 50%,rgba(0,0,0,.2) 100%);animation:ios-page-element-fade-out var(--f7-page-transition-duration) forwards}@keyframes ios-page-next-to-current{from{transform:translate3d(-100%,0,0)}to{transform:translate3d(0%,0,0)}}@keyframes ios-page-previous-to-current{from{transform:translate3d(20%,0,0)}to{transform:translate3d(0%,0,0)}}@keyframes ios-page-current-to-previous{from{transform:translate3d(0,0,0)}to{transform:translate3d(20%,0,0)}}@keyframes ios-page-current-to-next{from{transform:translate3d(0,0,0)}to{transform:translate3d(-100%,0,0)}}@keyframes ios-page-element-fade-in{from{opacity:0}to{opacity:1}}@keyframes ios-page-element-fade-out{from{opacity:1}to{opacity:0}}.md .page-next{transform:translate3d(0,56px,0);opacity:0;pointer-events:none}.md .page-next.page-next-on-right{transform:translate3d(-100%,0,0)}.md .router-transition-forward .page-next{animation:md-page-next-to-current var(--f7-page-transition-duration) forwards}.md .router-transition-forward .page-current{animation:none}.md .router-transition-backward .page-current{animation:md-page-current-to-next var(--f7-page-transition-duration) forwards}.md .router-transition-backward .page-previous{animation:none}@keyframes md-page-next-to-current{from{transform:translate3d(0,56px,0);opacity:0}to{transform:translate3d(0,0px,0);opacity:1}}@keyframes md-page-current-to-next{from{transform:translate3d(0,0,0);opacity:1}to{transform:translate3d(0,56px,0);opacity:0}}.aurora .page-next{pointer-events:none;transform:translate3d(-100%,0px,0)}.aurora .page-next.page-next-on-right{transform:translate3d(-100%,0,0)}.aurora .page-previous .page-opacity-effect{opacity:1}.aurora .page-previous:after{opacity:1}.aurora .router-transition-forward .page-next{animation:aurora-page-next-to-current var(--f7-page-transition-duration) forwards}.aurora .router-transition-forward .page-current{animation:none}.aurora .router-transition-forward .page-current:after{position:absolute;left:0;top:0;background:rgba(0,0,0,.1);width:100%;bottom:0;content:'';opacity:0;z-index:10000;animation:aurora-page-element-fade-in var(--f7-page-transition-duration) forwards}.aurora .router-transition-backward .page-current{animation:aurora-page-current-to-next var(--f7-page-transition-duration) forwards}.aurora .router-transition-backward .page-previous{animation:none}.aurora .router-transition-backward .page-previous:after{position:absolute;left:0;top:0;background:rgba(0,0,0,.1);width:100%;bottom:0;content:'';opacity:0;z-index:10000;animation:aurora-page-element-fade-out var(--f7-page-transition-duration) forwards}@keyframes aurora-page-next-to-current{from{transform:translate3d(-100%,0,0)}to{transform:translate3d(0,0px,0)}}@keyframes aurora-page-current-to-next{from{transform:translate3d(0,0,0)}to{transform:translate3d(-100%,0,0)}}@keyframes aurora-page-element-fade-in{from{opacity:0}to{opacity:1}}@keyframes aurora-page-element-fade-out{from{opacity:1}to{opacity:0}}.view:not(.view-master-detail) .page-master-stacked{display:none}.view:not(.view-master-detail) .navbar-master-stacked{display:none}.view-master-detail .navbar-master,.view-master-detail .page-master{width:var(--f7-page-master-width);left:auto;right:0;--f7-safe-area-left:0px;--f7-safe-area-outer-left:0px;border-left:var(--f7-page-master-border-width) solid var(--f7-page-master-border-color)}.view-master-detail .navbar-master-detail,.view-master-detail .page-master-detail{width:calc(100% - var(--f7-page-master-width));--f7-safe-area-right:0px;--f7-safe-area-outer-right:0px;right:var(--f7-page-master-width)}.view-master-detail .page-master{z-index:2;transform:none;pointer-events:auto}.view-master-detail .page-master:after,.view-master-detail .page-master:before{display:none}.view-master-detail.router-transition .page-master{animation:none}.aurora .router-transition-custom .page-next,.aurora .router-transition-custom .page-previous,.ios .router-transition-custom .page-next,.ios .router-transition-custom .page-previous,.md .router-transition-custom .page-next,.md .router-transition-custom .page-previous{opacity:1;transform:none}.router-transition-f7-circle-backward:after,.router-transition-f7-circle-forward:after{content:'';position:absolute;left:50%;top:50%;width:100vmax;height:100vmax;margin-left:-50vmax;margin-top:-50vmax;background:var(--f7-page-bg-color);z-index:100}.router-transition-f7-circle-forward:after{transform:scale(0);border-radius:50%;animation:f7-circle-circle-in .4s forwards}.router-transition-f7-circle-forward .page-next{opacity:0!important;transform:scale(.9)!important;animation:f7-circle-next-to-current .3s forwards;animation-delay:.3s;z-index:150}.router-transition-f7-circle-backward:after{animation:f7-circle-circle-out .3s forwards;animation-delay:350ms}.router-transition-f7-circle-backward .page-current{animation:f7-circle-current-to-next .7s forwards;z-index:150}@keyframes f7-circle-circle-in{from{transform:scale(0);border-radius:50%}50%{border-radius:50%}to{transform:scale(1);border-radius:0%}}@keyframes f7-circle-circle-out{from{transform:scale(1);border-radius:0%}50%{border-radius:50%}to{transform:scale(0);border-radius:50%}}@keyframes f7-circle-next-to-current{from{transform:scale(.9);opacity:0}40%{transform:scale(1.035);opacity:1}to{transform:scale(1);opacity:1}}@keyframes f7-circle-current-to-next{from{transform:scale(1);opacity:1}34%{transform:scale(1.035);opacity:1}57%{transform:scale(.9);opacity:0}to{transform:scale(.9);opacity:0}}.router-transition-f7-cover-v-backward,.router-transition-f7-cover-v-forward{background:#000;perspective:1200px}.router-transition-f7-cover-v-forward .page-next{animation:f7-cover-v-next-to-current var(--f7-page-cover-transition-duration) forwards}.router-transition-f7-cover-v-forward .page-current{animation:f7-cover-v-current-to-prev var(--f7-page-cover-transition-duration) forwards}.router-transition-f7-cover-v-backward .page-current{animation:f7-cover-v-current-to-next var(--f7-page-cover-transition-duration) forwards}.router-transition-f7-cover-v-backward .page-previous{animation:f7-cover-v-prev-to-current var(--f7-page-cover-transition-duration) forwards}@keyframes f7-cover-v-next-to-current{from{transform:translateY(100%)}to{transform:translateY(0%)}}@keyframes f7-cover-v-current-to-next{from{transform:translateY(0%)}to{transform:translateY(100%)}}@keyframes f7-cover-v-current-to-prev{from{transform:translateZ(0);opacity:1}to{transform:translateZ(-300px);opacity:.5}}@keyframes f7-cover-v-prev-to-current{from{transform:translateZ(-300px);opacity:.5}to{transform:translateZ(0);opacity:1}}.router-transition-f7-cover-backward,.router-transition-f7-cover-forward{background:#000;perspective:1200px}.router-transition-f7-cover-forward .page-next{animation:f7-cover-next-to-current var(--f7-page-cover-transition-duration) forwards}.router-transition-f7-cover-forward .page-current{animation:f7-cover-current-to-prev var(--f7-page-cover-transition-duration) forwards}.router-transition-f7-cover-backward .page-current{animation:f7-cover-current-to-next var(--f7-page-cover-transition-duration) forwards}.router-transition-f7-cover-backward .page-previous{animation:f7-cover-prev-to-current var(--f7-page-cover-transition-duration) forwards}@keyframes f7-cover-next-to-current{from{transform:translateX(-100%)}to{transform:translateX(0%)}}@keyframes f7-cover-current-to-next{from{transform:translateX(0%)}to{transform:translateX(-100%)}}@keyframes f7-cover-current-to-prev{from{transform:translateZ(0);opacity:1}to{transform:translateZ(-300px);opacity:.5}}@keyframes f7-cover-prev-to-current{from{transform:translateZ(-300px);opacity:.5}to{transform:translateZ(0);opacity:1}}.router-transition-f7-dive-backward,.router-transition-f7-dive-forward{background:var(--f7-page-bg-color);perspective:1200px}.router-transition-f7-dive-forward .page-next{animation:f7-dive-next-to-current var(--f7-page-dive-transition-duration) forwards}.router-transition-f7-dive-forward .page-current{animation:f7-dive-current-to-prev var(--f7-page-dive-transition-duration) forwards}.router-transition-f7-dive-backward .page-current{animation:f7-dive-current-to-next var(--f7-page-dive-transition-duration) forwards}.router-transition-f7-dive-backward .page-previous{animation:f7-dive-prev-to-current var(--f7-page-dive-transition-duration) forwards}@keyframes f7-dive-next-to-current{from{opacity:0;transform:translateZ(-150px)}50%{opacity:0}to{opacity:1;transform:translateZ(0px)}}@keyframes f7-dive-current-to-next{from{opacity:1;transform:translateZ(0px)}50%{opacity:0}to{opacity:0;transform:translateZ(-150px)}}@keyframes f7-dive-current-to-prev{from{transform:translateZ(0px);opacity:1}50%{opacity:0}to{opacity:0;transform:translateZ(150px)}}@keyframes f7-dive-prev-to-current{from{opacity:0;transform:translateZ(150px)}50%{opacity:0}to{opacity:1;transform:translateZ(0px)}}.router-transition-f7-fade-backward,.router-transition-f7-fade-forward{background:var(--f7-page-bg-color)}.router-transition-f7-fade-forward .page-next{opacity:0!important;animation:f7-fade-in var(--f7-page-fade-transition-duration) forwards}.router-transition-f7-fade-forward .page-current{animation:f7-fade-out var(--f7-page-fade-transition-duration) forwards}.router-transition-f7-fade-backward .page-current{animation:f7-fade-out var(--f7-page-fade-transition-duration) forwards}.router-transition-f7-fade-backward .page-previous{animation:f7-fade-in var(--f7-page-fade-transition-duration) forwards}@keyframes f7-fade-in{from{opacity:0}50%{opacity:0}to{opacity:1}}@keyframes f7-fade-out{from{opacity:1}50%{opacity:0}to{opacity:0}}.router-transition-f7-flip-backward,.router-transition-f7-flip-forward{background:#000;perspective:1200px}.router-transition-f7-flip-backward .page,.router-transition-f7-flip-forward .page{-webkit-backface-visibility:hidden;backface-visibility:hidden}.router-transition-f7-flip-forward .page-next{animation:f7-flip-next-to-current var(--f7-page-flip-transition-duration) forwards}.router-transition-f7-flip-forward .page-current{animation:f7-flip-current-to-prev var(--f7-page-flip-transition-duration) forwards}.router-transition-f7-flip-backward .page-current{animation:f7-flip-current-to-next var(--f7-page-flip-transition-duration) forwards}.router-transition-f7-flip-backward .page-previous{animation:f7-flip-prev-to-current var(--f7-page-flip-transition-duration) forwards}@keyframes f7-flip-next-to-current{from{border-radius:30px;transform:translateZ(-100vmax) rotateY(-180deg)}to{border-radius:0;transform:translateZ(0px) rotateY(0deg)}}@keyframes f7-flip-current-to-next{from{border-radius:0px;transform:translateZ(0px) rotateY(0deg)}to{border-radius:30px;transform:translateZ(-100vmax) rotateY(-180deg)}}@keyframes f7-flip-current-to-prev{from{border-radius:0px;transform:translateZ(0px) rotateY(0deg)}to{border-radius:30px;transform:translateZ(-100vmax) rotateY(180deg)}}@keyframes f7-flip-prev-to-current{from{border-radius:30px;transform:translateZ(-100vmax) rotateY(180deg)}to{border-radius:0px;transform:translateZ(0px) rotateY(0deg)}}.router-transition-f7-parallax-forward .page-next{animation:f7-parallax-next-to-current var(--f7-page-parallax-transition-duration) forwards}.router-transition-f7-parallax-forward .page-current{animation:f7-parallax-current-to-prev var(--f7-page-parallax-transition-duration) forwards}.router-transition-f7-parallax-backward .page-current{animation:f7-parallax-current-to-next var(--f7-page-parallax-transition-duration) forwards}.router-transition-f7-parallax-backward .page-previous{animation:f7-parallax-prev-to-current var(--f7-page-parallax-transition-duration) forwards}@keyframes f7-parallax-next-to-current{from{transform:translateX(-100%)}to{transform:translateX(0%)}}@keyframes f7-parallax-current-to-next{from{transform:translateX(0%)}to{transform:translateX(-100%)}}@keyframes f7-parallax-current-to-prev{from{transform:translateX(0%)}to{transform:translateX(20%)}}@keyframes f7-parallax-prev-to-current{from{transform:translateX(20%)}to{transform:translateX(0%)}}.router-transition-f7-push-forward .page-next{animation:f7-push-next-to-current var(--f7-page-push-transition-duration) forwards}.router-transition-f7-push-forward .page-current{animation:f7-push-current-to-prev var(--f7-page-push-transition-duration) forwards}.router-transition-f7-push-backward .page-current{animation:f7-push-current-to-next var(--f7-page-push-transition-duration) forwards}.router-transition-f7-push-backward .page-previous{animation:f7-push-prev-to-current var(--f7-page-push-transition-duration) forwards}@keyframes f7-push-next-to-current{from{transform:translateX(-100%)}to{transform:translateX(0%)}}@keyframes f7-push-current-to-next{from{transform:translateX(0%)}to{transform:translateX(-100%)}}@keyframes f7-push-current-to-prev{from{transform:translateX(0%)}to{transform:translateX(100%)}}@keyframes f7-push-prev-to-current{from{transform:translateX(100%)}to{transform:translateX(0%)}}:root{--f7-link-highlight-black:rgba(0, 0, 0, 0.1);--f7-link-highlight-white:rgba(255, 255, 255, 0.15);--f7-link-highlight-color:var(--f7-link-highlight-black)}.theme-dark{--f7-link-highlight-color:var(--f7-link-highlight-white)}.link,.tab-link{display:inline-flex;align-items:center;align-content:center;justify-content:center;position:relative;box-sizing:border-box;z-index:1}.link i+i,.link i+span,.link span+i,.link span+span{margin-right:4px}.ios .link{transition:opacity .3s}.ios .link.active-state{opacity:.3;transition-duration:0s}.aurora .link{transition:opacity .3s}.aurora .link.active-state{opacity:.3;transition-duration:0s}:root{--f7-navbar-hide-show-transition-duration:400ms;--f7-navbar-title-line-height:1.2;--f7-navbar-title-font-size:inherit;--f7-navbar-subtitle-text-align:inherit;--f7-navbar-large-title-line-height:1.2;--f7-navbar-large-title-text-color:inherit;--f7-navbar-large-title-padding-left:16px;--f7-navbar-large-title-padding-right:16px}.ios{--f7-navbar-height:44px;--f7-navbar-tablet-height:44px;--f7-navbar-font-size:17px;--f7-navbar-inner-padding-left:8px;--f7-navbar-inner-padding-right:8px;--f7-navbar-title-font-weight:600;--f7-navbar-title-margin-left:0;--f7-navbar-title-margin-right:0;--f7-navbar-title-text-align:center;--f7-navbar-subtitle-font-size:10px;--f7-navbar-subtitle-line-height:1;--f7-navbar-shadow-image:none;--f7-navbar-large-title-height:52px;--f7-navbar-large-title-font-size:34px;--f7-navbar-large-title-font-weight:700;--f7-navbar-large-title-letter-spacing:-0.03em;--f7-navbar-large-title-padding-vertical:6px;--f7-navbar-subtitle-text-color:rgba(0, 0, 0, 0.55)}.ios .theme-dark,.ios.theme-dark{--f7-navbar-subtitle-text-color:rgba(255, 255, 255, 0.55)}.md{--f7-navbar-height:56px;--f7-navbar-tablet-height:64px;--f7-navbar-font-size:20px;--f7-navbar-inner-padding-left:0px;--f7-navbar-inner-padding-right:0px;--f7-navbar-title-font-weight:500;--f7-navbar-title-margin-left:16px;--f7-navbar-title-margin-right:16px;--f7-navbar-title-text-align:left;--f7-navbar-subtitle-font-size:14px;--f7-navbar-subtitle-line-height:1.2;--f7-navbar-shadow-image:var(--f7-bars-shadow-bottom-image);--f7-navbar-large-title-font-size:34px;--f7-navbar-large-title-height:56px;--f7-navbar-large-title-font-weight:500;--f7-navbar-large-title-letter-spacing:0;--f7-navbar-large-title-padding-vertical:8px;--f7-navbar-subtitle-text-color:rgba(0, 0, 0, 0.85)}.md .theme-dark,.md.theme-dark{--f7-navbar-subtitle-text-color:rgba(255, 255, 255, 0.85)}.aurora{--f7-navbar-height:38px;--f7-navbar-tablet-height:38px;--f7-navbar-font-size:14px;--f7-navbar-inner-padding-left:16px;--f7-navbar-inner-padding-right:16px;--f7-navbar-title-font-weight:600;--f7-navbar-title-margin-left:0;--f7-navbar-title-margin-right:0;--f7-navbar-title-text-align:center;--f7-navbar-subtitle-font-size:12px;--f7-navbar-subtitle-line-height:1;--f7-navbar-shadow-image:none;--f7-navbar-large-title-height:38px;--f7-navbar-large-title-font-size:26px;--f7-navbar-large-title-font-weight:bold;--f7-navbar-large-title-letter-spacing:-0.03em;--f7-navbar-large-title-padding-vertical:4px;--f7-navbar-link-height:auto;--f7-navbar-link-line-height:inherit;--f7-navbar-subtitle-text-color:rgba(0, 0, 0, 0.6)}.aurora .theme-dark,.aurora.theme-dark{--f7-navbar-subtitle-text-color:rgba(255, 255, 255, 0.5)}.navbar,.navbars{z-index:500;left:0;top:0;width:100%}.navbars{position:absolute}.navbars .navbar{z-index:auto}.navbar{--f7-navbar-large-collapse-progress:0;position:relative;-webkit-backface-visibility:hidden;backface-visibility:hidden;box-sizing:border-box;margin:0;height:calc(var(--f7-navbar-height) + var(--f7-safe-area-top));color:var(--f7-navbar-text-color,var(--f7-bars-text-color));font-size:var(--f7-navbar-font-size)}.navbar.stacked{display:none}.navbar b{font-weight:500}.navbar a{color:var(--f7-navbar-link-color,var(--f7-bars-link-color,var(--f7-theme-color)))}.navbar a.link{display:flex;justify-content:flex-start;line-height:var(--f7-navbar-link-line-height,var(--f7-navbar-height));height:var(--f7-navbar-link-height,var(--f7-navbar-height))}.navbar .left,.navbar .right,.navbar .title{position:relative;z-index:10}.navbar .title{position:relative;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-shrink:10;font-weight:var(--f7-navbar-title-font-weight);display:inline-block;line-height:var(--f7-navbar-title-line-height);text-align:var(--f7-navbar-title-text-align);font-size:var(--f7-navbar-title-font-size);margin-right:var(--f7-navbar-title-margin-left);margin-left:var(--f7-navbar-title-margin-left)}.navbar .subtitle{display:block;color:var(--f7-navbar-subtitle-text-color);font-weight:400;font-size:var(--f7-navbar-subtitle-font-size);line-height:var(--f7-navbar-subtitle-line-height);text-align:var(--f7-navbar-subtitle-text-align)}.navbar .left,.navbar .right{flex-shrink:0;display:flex;justify-content:flex-start;align-items:center}.navbar .right:first-child{position:absolute;height:100%}.navbar .no-border .navbar-bg:after,.navbar .no-hairline .navbar-bg:after,.navbar.no-border .navbar-bg:after,.navbar.no-hairline .navbar-bg:after{display:none!important}.navbar .no-border .title-large:after,.navbar .no-hairline .title-large:after,.navbar.no-border .title-large:after,.navbar.no-hairline .title-large:after{display:none!important}.navbar .no-shadow .navbar-bg:before,.navbar.no-shadow .navbar-bg:before{display:none!important}.navbar-hidden .navbar .navbar-bg:before,.navbar.navbar-hidden .navbar-bg:before{opacity:0!important}.navbar-bg{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:0;background:var(--f7-navbar-bg-color);background-image:var(--f7-navbar-bg-image,var(--f7-bars-bg-image));background-color:var(--f7-navbar-bg-color,var(--f7-bars-bg-color));transition-property:transform}@supports ((-webkit-backdrop-filter:blur(20px)) or (backdrop-filter:blur(20px))){.ios-translucent-bars .navbar-bg{background-color:rgba(var(--f7-navbar-bg-color-rgb,var(--f7-bars-bg-color-rgb)),var(--f7-bars-translucent-opacity));-webkit-backdrop-filter:saturate(180%) blur(var(--f7-bars-translucent-blur));backdrop-filter:saturate(180%) blur(var(--f7-bars-translucent-blur))}}.navbar-bg:after,.navbar-bg:before{-webkit-backface-visibility:hidden;backface-visibility:hidden}.navbar-bg:after{content:'';position:absolute;background-color:var(--f7-navbar-border-color,var(--f7-bars-border-color));display:block;z-index:15;top:auto;right:auto;bottom:0;left:0;height:1px;width:100%;transform-origin:50% 100%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.navbar-bg:before{content:'';position:absolute;right:0;width:100%;top:100%;bottom:auto;height:8px;pointer-events:none;background:var(--f7-navbar-shadow-image)}.navbar-bg:after{z-index:1}@media (min-width:768px) and (min-height:600px){:root{--f7-navbar-height:var(--f7-navbar-tablet-height)}}.navbar-transitioning,.navbar-transitioning .left,.navbar-transitioning .navbar-bg,.navbar-transitioning .navbar-bg:before,.navbar-transitioning .right,.navbar-transitioning .subnavbar,.navbar-transitioning .title,.navbar-transitioning .title-large-text{transition-duration:var(--f7-navbar-hide-show-transition-duration)}.navbar-page-transitioning{transition-duration:var(--f7-page-swipeback-transition-duration)!important}.navbar-page-transitioning .navbar-bg,.navbar-page-transitioning .title-large-text{transition-duration:var(--f7-page-swipeback-transition-duration)!important}.navbar-hidden{transform:translate3d(0,calc(-1 * var(--f7-navbar-height)),0)}.navbar-hidden .navbar-inner{pointer-events:none}.navbar-hidden .navbar-inner>.left,.navbar-hidden .navbar-inner>.right,.navbar-hidden .navbar-inner>.title{opacity:0!important}.navbar-hidden .subnavbar{pointer-events:auto}.navbar-hidden-statusbar{transform:translate3d(0,calc(-1 * var(--f7-navbar-height) - var(--f7-safe-area-top)),0)}.navbar-large-hidden .navbar-large{--f7-navbar-large-collapse-progress:1}.navbar-inner{position:absolute;left:0;bottom:0;width:100%;height:100%;display:flex;align-items:center;box-sizing:border-box;padding:var(--f7-safe-area-top) calc(var(--f7-navbar-inner-padding-right) + var(--f7-safe-area-right)) 0 calc(var(--f7-navbar-inner-padding-left) + var(--f7-safe-area-left));transform:translate3d(0,0,0);z-index:10}.navbars>.navbar,.page>.navbar,.view>.navbar,.views>.navbar{position:absolute}.navbar-transparent:not(.navbar-large):not(.navbar-transparent-visible):not(.with-searchbar-expandable-enabled) .navbar-bg,.navbar-transparent:not(.navbar-large):not(.navbar-transparent-visible):not(.with-searchbar-expandable-enabled) .title{opacity:0}.navbar-large .navbar-bg{height:calc(100% + var(--f7-navbar-large-title-height));transform:translate3d(0px,calc(-1 * var(--f7-navbar-large-collapse-progress) * var(--f7-navbar-large-title-height)),0)}.navbar-large-transparent .navbar-bg,.navbar-large.navbar-transparent .navbar-bg{opacity:var(--f7-navbar-large-collapse-progress);height:100%;transform:none}.ios .router-navbar-transition-from-large .navbar-bg,.ios .router-navbar-transition-to-large .navbar-bg,.navbar-bg.ios-swipeback-navbar-bg-large,.navbar-large-transparent .navbar-bg.ios-swipeback-navbar-bg-large,.navbar-large.navbar-transparent .navbar-bg.ios-swipeback-navbar-bg-large{height:calc(100% + var(--f7-navbar-large-title-height));transform:translate3d(0px,calc(-1 * var(--f7-navbar-large-collapse-progress) * var(--f7-navbar-large-title-height)),0)}.ios .navbar:not(.navbar-large) .navbar-bg{--f7-navbar-large-collapse-progress:1}.navbar-large .title{opacity:var(--f7-navbar-large-collapse-progress)}.navbar-large-collapsed{--f7-navbar-large-collapse-progress:1}.navbar-large-collapsed .title-large{pointer-events:none}.navbar .title-large{box-sizing:border-box;position:absolute;left:0;right:0;top:100%;display:flex;align-items:flex-end;white-space:nowrap;overflow:hidden;height:var(--f7-navbar-large-title-height);z-index:5}.navbar .title-large-text{text-overflow:ellipsis;white-space:nowrap;color:var(--f7-navbar-large-title-text-color);letter-spacing:var(--f7-navbar-large-title-letter-spacing);font-size:var(--f7-navbar-large-title-font-size);font-weight:var(--f7-navbar-large-title-font-weight);line-height:var(--f7-navbar-large-title-line-height);padding-left:calc(var(--f7-navbar-large-title-padding-left) + var(--f7-safe-area-left));padding-right:calc(var(--f7-navbar-large-title-padding-right) + var(--f7-safe-area-right));padding-top:var(--f7-navbar-large-title-padding-vertical);padding-bottom:var(--f7-navbar-large-title-padding-vertical);box-sizing:border-box;overflow:hidden;width:100%;transform:translate3d(0px,calc(-1 * var(--f7-navbar-large-collapse-progress) * var(--f7-navbar-large-title-height)),0);transform-origin:calc(100% - var(--f7-navbar-large-title-padding-left) - var(--f7-safe-area-left)) center}.navbar-no-title-large-transition .title-large-text{transition-duration:0s}.navbars~*,.navbar~*{--f7-page-navbar-offset:calc(var(--f7-navbar-height) + var(--f7-safe-area-top))}.navbars~* .page-with-navbar-large,.navbars~.page-with-navbar-large,.navbar~* .page-with-navbar-large,.navbar~.page-with-navbar-large,.page-with-navbar-large .navbar~*{--f7-page-navbar-offset:calc(var(--f7-navbar-height) + var(--f7-navbar-large-title-height) + var(--f7-safe-area-top))}.page.no-navbar,.page.no-navbar .navbar~*{--f7-page-navbar-offset:var(--f7-safe-area-top)}.ios{--f7-navbarLeftTextOffset:calc(4px + 12px + var(--f7-navbar-inner-padding-left));--f7-navbarTitleLargeOffset:var(--f7-navbar-large-title-padding-left);--f7-navbar-large-transparent-bg-center:translateX(0);--f7-navbar-large-bg-center-top:translateX(0) translateY(calc(-1 * var(--f7-navbar-large-title-height)));--f7-navbar-large-bg-center-bottom:translateX(0) translateY(0);--f7-navbar-large-transparent-bg-left:translateX(100%);--f7-navbar-large-bg-left-top:translateX(100%) translateY(calc(-1 * var(--f7-navbar-large-title-height)));--f7-navbar-large-bg-left-bottom:translateX(100%) translateY(0);--f7-navbar-large-bg-right-top:translateX(-100%) translateY(calc(-1 * var(--f7-navbar-large-title-height)));--f7-navbar-large-bg-right-bottom:translateX(-100%) translateY(0)}.ios .navbar a.icon-only{width:44px;margin:0;justify-content:center}.ios .navbar .left a+a,.ios .navbar .right a+a{margin-right:16px}.ios .navbar b{font-weight:600}.ios .navbar .left{margin-left:10px}.ios .navbar .right{margin-right:10px}.ios .navbar .right:first-child{left:calc(8px + var(--f7-safe-area-left))}.ios .navbar-inner{justify-content:space-between}.ios .navbar-inner-left-title{justify-content:flex-start}.ios .navbar-inner-left-title .right{margin-right:auto}.ios .navbar-inner-left-title .title{text-align:left;margin-left:10px}.ios .navbar-next .fading,.ios .navbar-next .left,.ios .navbar-next .right,.ios .navbar-next .subnavbar,.ios .navbar-next .title,.ios .view-master-detail .navbar-previous:not(.navbar-master) .fading,.ios .view-master-detail .navbar-previous:not(.navbar-master) .left,.ios .view-master-detail .navbar-previous:not(.navbar-master) .right,.ios .view-master-detail .navbar-previous:not(.navbar-master) .subnavbar,.ios .view-master-detail .navbar-previous:not(.navbar-master) .title,.ios .view:not(.view-master-detail) .navbar-previous .fading,.ios .view:not(.view-master-detail) .navbar-previous .left,.ios .view:not(.view-master-detail) .navbar-previous .right,.ios .view:not(.view-master-detail) .navbar-previous .subnavbar,.ios .view:not(.view-master-detail) .navbar-previous .title{opacity:0}.ios .view-master-detail .navbar-previous:not(.navbar-master),.ios .view:not(.view-master-detail) .navbar-previous{pointer-events:none}.ios .view-master-detail .navbar-previous:not(.navbar-master) .title-large,.ios .view:not(.view-master-detail) .navbar-previous .title-large{opacity:0;transition-duration:0s}.ios .view-master-detail .navbar-previous:not(.navbar-master) .title-large .title-large-text,.ios .view:not(.view-master-detail) .navbar-previous .title-large .title-large-text{transform:scale(.5);transition-duration:0s}.ios .view-master-detail .navbar-previous:not(.navbar-master) .sliding .subnavbar,.ios .view-master-detail .navbar-previous:not(.navbar-master) .subnavbar.sliding,.ios .view:not(.view-master-detail) .navbar-previous .sliding .subnavbar,.ios .view:not(.view-master-detail) .navbar-previous .subnavbar.sliding{opacity:1;transform:translate3d(100%,0,0)}.ios .view-master-detail .navbar-previous:not(.navbar-master) .navbar-bg,.ios .view:not(.view-master-detail) .navbar-previous .navbar-bg{transform:translateX(-100%)}.ios .navbar-next{pointer-events:none}.ios .navbar-next .navbar-bg{transform:translateX(-100%)}.ios .navbar-next .title-large .title-large-text{transition-duration:0s;transform:translateX(-100%) translateY(calc(-1 * var(--f7-navbar-large-title-height)))}.ios .navbar-next .sliding .subnavbar,.ios .navbar-next .subnavbar.sliding{opacity:1;transform:translate3d(-100%,0,0)}.ios .router-transition .navbar,.ios .router-transition .navbar-bg{transition-duration:var(--f7-page-transition-duration)}.ios .router-transition .navbar-bg{animation-duration:var(--f7-page-transition-duration);animation-fill-mode:forwards}.ios .router-transition .title-large,.ios .router-transition .title-large-text{transition-duration:0s}.ios .router-transition .navbar-current .left,.ios .router-transition .navbar-current .right,.ios .router-transition .navbar-current .subnavbar,.ios .router-transition .navbar-current .title{animation:ios-navbar-element-fade-out var(--f7-page-transition-duration) forwards}.ios .router-transition .navbar-current .sliding .left,.ios .router-transition .navbar-current .sliding .left .icon+span,.ios .router-transition .navbar-current .sliding .right,.ios .router-transition .navbar-current .sliding .title,.ios .router-transition .navbar-current .sliding.left,.ios .router-transition .navbar-current .sliding.left .icon+span,.ios .router-transition .navbar-current .sliding.right,.ios .router-transition .navbar-current .sliding.title{transition-duration:var(--f7-page-transition-duration);opacity:0!important;animation:none}.ios .router-transition .navbar-current .sliding .subnavbar,.ios .router-transition .navbar-current .sliding.subnavbar{transition-duration:var(--f7-page-transition-duration);animation:none;opacity:1}.ios .router-transition-backward .navbar-previous .left,.ios .router-transition-backward .navbar-previous .right,.ios .router-transition-backward .navbar-previous .subnavbar,.ios .router-transition-backward .navbar-previous .title,.ios .router-transition-forward .navbar-next .left,.ios .router-transition-forward .navbar-next .right,.ios .router-transition-forward .navbar-next .subnavbar,.ios .router-transition-forward .navbar-next .title{animation:ios-navbar-element-fade-in var(--f7-page-transition-duration) forwards}.ios .router-transition-backward .navbar-previous .sliding .left,.ios .router-transition-backward .navbar-previous .sliding .left .icon+span,.ios .router-transition-backward .navbar-previous .sliding .right,.ios .router-transition-backward .navbar-previous .sliding .subnavbar,.ios .router-transition-backward .navbar-previous .sliding .title,.ios .router-transition-backward .navbar-previous .sliding.left,.ios .router-transition-backward .navbar-previous .sliding.left .icon+span,.ios .router-transition-backward .navbar-previous .sliding.right,.ios .router-transition-backward .navbar-previous .sliding.title,.ios .router-transition-forward .navbar-next .sliding .left,.ios .router-transition-forward .navbar-next .sliding .left .icon+span,.ios .router-transition-forward .navbar-next .sliding .right,.ios .router-transition-forward .navbar-next .sliding .subnavbar,.ios .router-transition-forward .navbar-next .sliding .title,.ios .router-transition-forward .navbar-next .sliding.left,.ios .router-transition-forward .navbar-next .sliding.left .icon+span,.ios .router-transition-forward .navbar-next .sliding.right,.ios .router-transition-forward .navbar-next .sliding.title{transition-duration:var(--f7-page-transition-duration);animation:none;transform:translate3d(0,0,0)!important;opacity:1!important}.ios .router-transition-backward .navbar-previous.navbar-transparent:not(.navbar-large):not(.navbar-transparent-visible) .title,.ios .router-transition-forward .navbar-next.navbar-transparent:not(.navbar-large):not(.navbar-transparent-visible) .title{animation:none}.ios .router-transition-backward .navbar-previous.navbar-transparent:not(.navbar-large):not(.navbar-transparent-visible) .sliding .title,.ios .router-transition-backward .navbar-previous.navbar-transparent:not(.navbar-large):not(.navbar-transparent-visible) .sliding.title,.ios .router-transition-forward .navbar-next.navbar-transparent:not(.navbar-large):not(.navbar-transparent-visible) .sliding .title,.ios .router-transition-forward .navbar-next.navbar-transparent:not(.navbar-large):not(.navbar-transparent-visible) .sliding.title{opacity:0!important}.ios .router-transition-backward .navbar-previous.with-searchbar-expandable-enabled .left,.ios .router-transition-backward .navbar-previous.with-searchbar-expandable-enabled .right,.ios .router-transition-backward .navbar-previous.with-searchbar-expandable-enabled .subnavbar,.ios .router-transition-backward .navbar-previous.with-searchbar-expandable-enabled .title,.ios .router-transition-backward .navbar-previous.with-searchbar-expandable-enabled-no-transition .left,.ios .router-transition-backward .navbar-previous.with-searchbar-expandable-enabled-no-transition .right,.ios .router-transition-backward .navbar-previous.with-searchbar-expandable-enabled-no-transition .subnavbar,.ios .router-transition-backward .navbar-previous.with-searchbar-expandable-enabled-no-transition .title{animation:none}.ios .router-transition-forward .navbar-current.router-navbar-transition-from-large.router-navbar-transition-to-large .title-large,.ios .router-transition-forward .navbar-current.router-navbar-transition-from-large:not(.router-navbar-transition-to-large) .title-large{overflow:visible}.ios .router-transition-forward .navbar-current.router-navbar-transition-from-large.router-navbar-transition-to-large .title-large .title-large-text,.ios .router-transition-forward .navbar-current.router-navbar-transition-from-large:not(.router-navbar-transition-to-large) .title-large .title-large-text{animation:ios-navbar-large-title-text-slide-up var(--f7-page-transition-duration) forwards,ios-navbar-large-title-text-fade-out var(--f7-page-transition-duration) forwards}.ios .router-transition-forward .navbar-next.router-navbar-transition-from-large .left .back span{animation:ios-navbar-back-text-next-to-current var(--f7-page-transition-duration) forwards;transition:none;transform-origin:right center}.ios .router-transition-forward .navbar-next.router-navbar-transition-from-large.router-navbar-transition-to-large .title-large{overflow:visible}.ios .router-transition-forward .navbar-next.router-navbar-transition-from-large.router-navbar-transition-to-large .title-large .title-large-text{animation:ios-navbar-large-title-text-slide-left var(--f7-page-transition-duration) forwards}.ios .router-transition-forward .navbar-next.router-navbar-transition-to-large:not(.router-navbar-transition-from-large) .title-large .title-large-text{animation:ios-navbar-large-title-text-slide-left var(--f7-page-transition-duration) forwards}.ios .router-transition-forward .navbar-current.navbar-large:not(.navbar-large-collapsed) .title,.ios .router-transition-forward .navbar-next.navbar-large:not(.navbar-large-collapsed) .title{animation:none;opacity:0!important;transition-duration:0}.ios .router-transition-backward .navbar-current.router-navbar-transition-to-large .left .back span{animation:ios-navbar-back-text-current-to-previous var(--f7-page-transition-duration) forwards;transition:none;transform-origin:right center}.ios .router-transition-backward .navbar-current.router-navbar-transition-from-large.router-navbar-transition-to-large .title-large{overflow:visible}.ios .router-transition-backward .navbar-current.router-navbar-transition-from-large.router-navbar-transition-to-large .title-large .title-large-text{animation:ios-navbar-large-title-text-slide-right var(--f7-page-transition-duration) forwards}.ios .router-transition-backward .navbar-current.router-navbar-transition-from-large:not(.router-navbar-transition-to-large) .title-large .title-large-text{animation:ios-navbar-large-title-text-slide-right var(--f7-page-transition-duration) forwards}.ios .router-transition-backward .navbar-current.router-navbar-transition-to-large:not(.router-navbar-transition-from-large) .title-large{opacity:0}.ios .router-transition-backward .navbar-previous.router-navbar-transition-from-large.router-navbar-transition-to-large .title-large,.ios .router-transition-backward .navbar-previous.router-navbar-transition-to-large:not(.router-navbar-transition-from-large) .title-large{overflow:visible;opacity:1}.ios .router-transition-backward .navbar-previous.router-navbar-transition-from-large.router-navbar-transition-to-large .title-large .title-large-text,.ios .router-transition-backward .navbar-previous.router-navbar-transition-to-large:not(.router-navbar-transition-from-large) .title-large .title-large-text{animation:ios-navbar-large-title-text-slide-down var(--f7-page-transition-duration) forwards,ios-navbar-large-title-text-fade-in var(--f7-page-transition-duration) forwards}.ios .router-transition-backward .navbar-current.navbar-large:not(.navbar-large-collapsed) .title,.ios .router-transition-backward .navbar-previous.navbar-large:not(.navbar-large-collapsed) .title{animation:none;opacity:0!important;transition-duration:0}.ios .router-transition-forward .navbar-current .navbar-bg{animation-name:ios-navbar-bg-from-cb-to-lb}.ios .router-transition-forward .navbar-current.router-navbar-transition-from-large.router-navbar-transition-to-large .navbar-bg{animation-name:ios-navbar-bg-from-cb-to-lb}.ios .router-transition-forward .navbar-current.router-navbar-transition-from-large:not(.router-navbar-transition-to-large) .navbar-bg{animation-name:ios-navbar-bg-from-cb-to-lt}.ios .router-transition-forward .navbar-current:not(.router-navbar-transition-from-large).router-navbar-transition-to-large .navbar-bg{animation-name:ios-navbar-bg-from-ct-to-lb}.ios .router-transition-forward .navbar-current.navbar-large-collapsed:not(.router-navbar-transition-to-large) .navbar-bg{animation-name:ios-navbar-bg-from-ct-to-lt}.ios .router-transition-forward .navbar-current.navbar-large-collapsed.navbar-large-transparent:not(.router-navbar-transition-to-large) .navbar-bg,.ios .router-transition-forward .navbar-current.navbar-large-collapsed.navbar-large.navbar-transparent:not(.router-navbar-transition-to-large) .navbar-bg{animation-name:ios-navbar-transparent-bg-from-c-to-l}.ios .router-transition-forward .navbar-next .navbar-bg{animation-name:ios-navbar-bg-from-rb-to-cb}.ios .router-transition-forward .navbar-next.router-navbar-transition-from-large.router-navbar-transition-to-large .navbar-bg{animation-name:ios-navbar-bg-from-rb-to-cb}.ios .router-transition-forward .navbar-next.router-navbar-transition-from-large:not(.router-navbar-transition-to-large) .navbar-bg{animation-name:ios-navbar-bg-from-rb-to-ct}.ios .router-transition-forward .navbar-next:not(.router-navbar-transition-from-large).router-navbar-transition-to-large .navbar-bg{animation-name:ios-navbar-bg-from-rt-to-cb}.ios .router-transition-backward .navbar-current .navbar-bg{animation-name:ios-navbar-bg-from-cb-to-rb}.ios .router-transition-backward .navbar-current:not(.router-navbar-transition-from-large).router-navbar-transition-to-large .navbar-bg{animation-name:ios-navbar-bg-from-ct-to-rb}.ios .router-transition-backward .navbar-current.router-navbar-transition-from-large:not(.router-navbar-transition-to-large) .navbar-bg{animation-name:ios-navbar-bg-from-cb-to-rt}.ios .router-transition-backward .navbar-current.navbar-large-collapsed .navbar-bg{animation-name:ios-navbar-bg-from-ct-to-rt}.ios .router-transition-backward .navbar-current.navbar-large-collapsed.navbar-large-transparent .navbar-bg,.ios .router-transition-backward .navbar-current.navbar-large-collapsed.navbar-large.navbar-transparent .navbar-bg{animation-name:ios-navbar-bg-from-cb-to-rb}.ios .router-transition-backward .navbar-current.navbar-large-collapsed.router-navbar-transition-to-large .navbar-bg{animation-name:ios-navbar-bg-from-ct-to-rb}.ios .router-transition-backward .navbar-previous .navbar-bg{animation-name:ios-navbar-bg-from-lb-to-cb}.ios .router-transition-backward .navbar-previous:not(.router-navbar-transition-from-large).router-navbar-transition-to-large .navbar-bg{animation-name:ios-navbar-bg-from-lt-to-cb}.ios .router-transition-backward .navbar-previous.router-navbar-transition-from-large:not(.router-navbar-transition-to-large) .navbar-bg{animation-name:ios-navbar-bg-from-lb-to-ct}.ios .router-transition-backward .navbar-previous.navbar-large-collapsed .navbar-bg{animation-name:ios-navbar-bg-from-lt-to-ct}.ios .router-transition-backward .navbar-previous.navbar-large-collapsed.navbar-large-transparent .navbar-bg,.ios .router-transition-backward .navbar-previous.navbar-large-collapsed.navbar-large.navbar-transparent .navbar-bg{animation-name:ios-navbar-transparent-bg-from-l-to-c}.ios .router-transition-backward .navbar-previous.navbar-large-collapsed.navbar-large-transparent.router-navbar-transition-from-large .navbar-bg,.ios .router-transition-backward .navbar-previous.navbar-large-collapsed.navbar-large.navbar-transparent.router-navbar-transition-from-large .navbar-bg{animation-name:ios-navbar-bg-from-lb-to-ct}.view-master-detail .navbars{z-index:auto}.view-master-detail .page-master{z-index:525}.view-master-detail .navbar-master .navbar-bg,.view-master-detail .navbar-master .navbar-inner{z-index:550}.view-master-detail .navbar-master-detail .navbar-bg,.view-master-detail .navbar-master-detail .navbar-inner{z-index:500}.view-master-detail .navbar-master.navbar-previous{pointer-events:auto}.view-master-detail .navbar-master.navbar-previous .left,.view-master-detail .navbar-master.navbar-previous .right,.view-master-detail .navbar-master.navbar-previous .subnavbar,.view-master-detail .navbar-master.navbar-previous:not(.navbar-large) .title{opacity:1}.view-master-detail.router-transition .navbar-master .fading,.view-master-detail.router-transition .navbar-master .left,.view-master-detail.router-transition .navbar-master .left .icon+span,.view-master-detail.router-transition .navbar-master .right,.view-master-detail.router-transition .navbar-master .subnavbar,.view-master-detail.router-transition .navbar-master:not(.navbar-large) .title{opacity:1!important;transition-duration:0s;transform:none!important;animation:none!important}.view-master-detail.router-transition .navbar-master .navbar-bg{transition-duration:0s;animation:none!important}.view-master-detail.router-transition .navbar-master.navbar-large .title{opacity:calc(-1 + 2 * var(--f7-navbar-large-collapse-progress))!important;transition-duration:0s;transform:none!important;animation:none!important}.view-master-detail.router-transition .navbar-master.navbar-large .title-large,.view-master-detail.router-transition .navbar-master.navbar-large .title-large-text{transition-duration:0s;animation:none!important}.view-master-detail.router-transition .navbar-master.navbar-large-transparent .navbar-bg,.view-master-detail.router-transition .navbar-master.navbar-large.navbar-transparent .navbar-bg{height:100%!important;opacity:var(--f7-navbar-large-collapse-progress)!important}@keyframes ios-navbar-element-fade-in{0%{opacity:0}25%{opacity:0}to{opacity:1}}@keyframes ios-navbar-element-fade-out{from{opacity:1}75%{opacity:0}to{opacity:0}}@keyframes ios-navbar-large-title-text-slide-up{0%{transform:translateX(0px) translateY(0%) scale(1)}100%{transform:translateX(calc(-1 * (var(--f7-navbarLeftTextOffset) - var(--f7-navbarTitleLargeOffset)))) translateY(calc(-1 * var(--f7-navbar-large-title-height) + var(--f7-navbar-large-title-padding-vertical))) scale(.5)}}@keyframes ios-navbar-large-title-text-slide-down{0%{transform:translateX(calc(-1 * (var(--f7-navbarLeftTextOffset) - var(--f7-navbarTitleLargeOffset)))) translateY(calc(-1 * var(--f7-navbar-large-title-height) + var(--f7-navbar-large-title-padding-vertical)/ 2)) scale(.5)}100%{transform:translateX(0px) translateY(0%) scale(1)}}@keyframes ios-navbar-large-title-text-slide-left{0%{transform:translateX(-100%)}100%{transform:translateX(0%)}}@keyframes ios-navbar-large-title-text-slide-right{0%{transform:translateX(0%)}100%{transform:translateX(-100%)}}@keyframes ios-navbar-large-title-text-fade-out{0%{opacity:1}80%{opacity:0}100%{opacity:0}}@keyframes ios-navbar-large-title-text-fade-in{0%{opacity:0}20%{opacity:0}100%{opacity:1}}@keyframes ios-navbar-back-text-current-to-previous{0%{opacity:1;transform:translateY(0px) translateX(0px) scale(1)}80%{opacity:0}100%{opacity:0;transform:translateX(calc(-1 * (var(--f7-navbarTitleLargeOffset) - var(--f7-navbarLeftTextOffset)))) translateY(calc(1 * var(--f7-navbar-large-title-height) - var(--f7-navbar-large-title-padding-vertical)/ 2)) scale(2)}}@keyframes ios-navbar-back-text-next-to-current{0%{opacity:0;transform:translateX(calc(-1 * (var(--f7-navbarTitleLargeOffset) - var(--f7-navbarLeftTextOffset)))) translateY(calc(1 * var(--f7-navbar-large-title-height) + var(--f7-navbar-large-title-padding-vertical)/ 2)) scale(2)}20%{opacity:0}100%{opacity:1;transform:translateX(0px) translateY(0px) scale(1)}}@keyframes ios-navbar-bg-from-cb-to-lb{from{transform:var(--f7-navbar-large-bg-center-bottom)}to{transform:var(--f7-navbar-large-bg-left-bottom)}}@keyframes ios-navbar-bg-from-cb-to-lt{from{transform:var(--f7-navbar-large-bg-center-bottom)}to{transform:var(--f7-navbar-large-bg-left-top)}}@keyframes ios-navbar-bg-from-ct-to-lb{from{transform:var(--f7-navbar-large-bg-center-top)}to{transform:var(--f7-navbar-large-bg-left-bottom)}}@keyframes ios-navbar-bg-from-ct-to-lt{from{transform:var(--f7-navbar-large-bg-center-top)}to{transform:var(--f7-navbar-large-bg-left-top)}}@keyframes ios-navbar-bg-from-rb-to-cb{from{transform:var(--f7-navbar-large-bg-right-bottom)}to{transform:var(--f7-navbar-large-bg-center-bottom)}}@keyframes ios-navbar-bg-from-rb-to-ct{from{transform:var(--f7-navbar-large-bg-right-bottom)}to{transform:var(--f7-navbar-large-bg-center-top)}}@keyframes ios-navbar-bg-from-rt-to-cb{from{transform:var(--f7-navbar-large-bg-right-top)}to{transform:var(--f7-navbar-large-bg-center-bottom)}}@keyframes ios-navbar-bg-from-cb-to-rb{from{transform:var(--f7-navbar-large-bg-center-bottom)}to{transform:var(--f7-navbar-large-bg-right-bottom)}}@keyframes ios-navbar-bg-from-ct-to-rb{from{transform:var(--f7-navbar-large-bg-center-top)}to{transform:var(--f7-navbar-large-bg-right-bottom)}}@keyframes ios-navbar-bg-from-cb-to-rt{from{transform:var(--f7-navbar-large-bg-center-bottom)}to{transform:var(--f7-navbar-large-bg-right-top)}}@keyframes ios-navbar-bg-from-ct-to-rt{from{transform:var(--f7-navbar-large-bg-center-top)}to{transform:var(--f7-navbar-large-bg-right-top)}}@keyframes ios-navbar-bg-from-lb-to-cb{from{transform:var(--f7-navbar-large-bg-left-bottom)}to{transform:var(--f7-navbar-large-bg-center-bottom)}}@keyframes ios-navbar-bg-from-lt-to-cb{from{transform:var(--f7-navbar-large-bg-left-top)}to{transform:var(--f7-navbar-large-bg-center-bottom)}}@keyframes ios-navbar-bg-from-lb-to-ct{from{transform:var(--f7-navbar-large-bg-left-bottom)}to{transform:var(--f7-navbar-large-bg-center-top)}}@keyframes ios-navbar-bg-from-lt-to-ct{from{transform:var(--f7-navbar-large-bg-left-top)}to{transform:var(--f7-navbar-large-bg-center-top)}}@keyframes ios-navbar-transparent-bg-from-l-to-c{from{transform:var(--f7-navbar-large-transparent-bg-left)}to{transform:var(--f7-navbar-large-transparent-bg-center)}}@keyframes ios-navbar-transparent-bg-from-c-to-l{from{transform:var(--f7-navbar-large-transparent-bg-center)}to{transform:var(--f7-navbar-large-transparent-bg-left)}}.md .navbar a.link{padding:0 16px;min-width:48px}.md .navbar a.link:before{content:'';width:152%;height:152%;position:absolute;left:-26%;top:-26%;background-image:radial-gradient(circle at center,var(--f7-link-highlight-color) 66%,rgba(255,255,255,0) 66%);background-repeat:no-repeat;background-position:center;background-size:100% 100%;opacity:0;pointer-events:none;transition-duration:.6s}.md .navbar a.link.active-state:before{opacity:1;transition-duration:150ms}.md .navbar a.icon-only{min-width:0;flex-shrink:0;width:56px}.md .navbar .right{margin-right:auto}.md .navbar .right:first-child{left:var(--f7-safe-area-left)}.md .navbar-inner{justify-content:flex-start;overflow:hidden}.md .navbar-large:not(.navbar-large-collapsed) .navbar-inner{overflow:visible}.md .page.page-with-subnavbar .navbar-inner{overflow:visible}.md .navbar-inner-centered-title{justify-content:space-between}.md .navbar-inner-centered-title .right{margin-right:0}.md .navbar-inner-centered-title .title{text-align:center}.aurora .navbar a.icon-only{margin:0;justify-content:center}.aurora .navbar .left a+a,.aurora .navbar .right a+a{margin-right:10px}.aurora .navbar b{font-weight:700}.aurora .navbar .left{margin-left:10px}.aurora .navbar .right{margin-right:10px}.aurora .navbar .right:first-child{left:calc(16px + var(--f7-safe-area-left))}.aurora .navbar-inner{justify-content:space-between}.aurora .navbar-inner-left-title{justify-content:flex-start}.aurora .navbar-inner-left-title .right{margin-right:auto}.aurora .navbar-inner-left-title .title{text-align:left;margin-left:10px}:root{--f7-tabbar-link-active-bg-color:transparent;--f7-tabbar-label-text-transform:none;--f7-toolbar-hide-show-transition-duration:400ms}.ios{--f7-toolbar-height:44px;--f7-toolbar-font-size:17px;--f7-toolbar-inner-padding-left:8px;--f7-toolbar-inner-padding-right:8px;--f7-tabbar-labels-height:50px;--f7-tabbar-labels-tablet-height:50px;--f7-toolbar-top-shadow-image:none;--f7-toolbar-bottom-shadow-image:none;--f7-tabbar-icon-size:28px;--f7-tabbar-link-text-transform:none;--f7-tabbar-link-font-weight:400;--f7-tabbar-link-letter-spacing:0;--f7-tabbar-label-font-size:12px;--f7-tabbar-label-tablet-font-size:14px;--f7-tabbar-label-font-weight:500;--f7-tabbar-label-letter-spacing:0.01;--f7-tabbar-link-inactive-color:rgba(0, 0, 0, 0.4)}.ios .theme-dark,.ios.theme-dark{--f7-tabbar-link-inactive-color:rgba(255, 255, 255, 0.54)}.md{--f7-toolbar-height:48px;--f7-toolbar-font-size:14px;--f7-toolbar-inner-padding-left:0px;--f7-toolbar-inner-padding-right:0px;--f7-tabbar-labels-height:56px;--f7-tabbar-labels-tablet-height:56px;--f7-toolbar-top-shadow-image:var(--f7-bars-shadow-bottom-image);--f7-toolbar-bottom-shadow-image:var(--f7-bars-shadow-top-image);--f7-tabbar-icon-size:24px;--f7-tabbar-link-text-transform:uppercase;--f7-tabbar-link-font-weight:500;--f7-tabbar-link-letter-spacing:0.03em;--f7-tabbar-label-font-size:14px;--f7-tabbar-label-tablet-font-size:14px;--f7-tabbar-label-font-weight:400;--f7-tabbar-label-letter-spacing:0;--f7-tabbar-link-inactive-color:rgba(0, 0, 0, 0.54)}.md .theme-dark,.md.theme-dark{--f7-tabbar-link-inactive-color:rgba(255, 255, 255, 0.54)}.aurora{--f7-toolbar-height:38px;--f7-toolbar-font-size:14px;--f7-toolbar-inner-padding-left:16px;--f7-toolbar-inner-padding-right:16px;--f7-toolbar-link-height:auto;--f7-toolbar-link-line-height:inherit;--f7-tabbar-labels-height:44px;--f7-tabbar-labels-tablet-height:44px;--f7-tabbar-link-inactive-bg-color:rgba(0, 0, 0, 0.2);--f7-toolbar-top-shadow-image:none;--f7-toolbar-bottom-shadow-image:none;--f7-tabbar-icon-size:18px;--f7-tabbar-link-text-transform:none;--f7-tabbar-link-font-weight:400;--f7-tabbar-link-letter-spacing:0;--f7-tabbar-label-font-size:12px;--f7-tabbar-label-tablet-font-size:12px;--f7-tabbar-label-font-weight:500;--f7-tabbar-label-letter-spacing:0.01;--f7-tabbar-link-inactive-color:rgba(0, 0, 0, 0.5)}.aurora .theme-dark,.aurora.theme-dark{--f7-tabbar-link-inactive-color:rgba(255, 255, 255, 0.5)}.toolbar{width:100%;position:relative;margin:0;transform:translate3d(0,0,0);-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:600;box-sizing:border-box;left:0;height:var(--f7-toolbar-height);background-image:var(--f7-toolbar-bg-image,var(--f7-bars-bg-image));background-color:var(--f7-toolbar-bg-color,var(--f7-bars-bg-color));color:var(--f7-toolbar-text-color,var(--f7-bars-text-color));font-size:var(--f7-toolbar-font-size)}@supports ((-webkit-backdrop-filter:blur(20px)) or (backdrop-filter:blur(20px))){.ios-translucent-bars .toolbar{background-color:rgba(var(--f7-toolbar-bg-color-rgb,var(--f7-bars-bg-color-rgb)),var(--f7-bars-translucent-opacity));-webkit-backdrop-filter:saturate(180%) blur(var(--f7-bars-translucent-blur));backdrop-filter:saturate(180%) blur(var(--f7-bars-translucent-blur))}}.toolbar b{font-weight:600}.toolbar a{color:var(--f7-toolbar-link-color,var(--f7-bars-link-color,var(--f7-theme-color)));box-sizing:border-box;flex-shrink:1;position:relative;white-space:nowrap;text-overflow:ellipsis}.toolbar .link{display:flex;line-height:var(--f7-toolbar-link-line-height,var(--f7-toolbar-height));height:var(--f7-toolbar-link-height,var(--f7-toolbar-height))}.toolbar i.icon{display:block}.toolbar:after,.toolbar:before{-webkit-backface-visibility:hidden;backface-visibility:hidden}.page>.toolbar,.view>.toolbar,.views>.toolbar{position:absolute}.aurora .toolbar-top-aurora,.ios .toolbar-top-ios,.md .toolbar-top-md,.toolbar-top{top:0}.aurora .toolbar-top-aurora .tab-link-highlight,.ios .toolbar-top-ios .tab-link-highlight,.md .toolbar-top-md .tab-link-highlight,.toolbar-top .tab-link-highlight{bottom:0}.aurora .toolbar-top-aurora.no-border:after,.aurora .toolbar-top-aurora.no-hairline:after,.ios .toolbar-top-ios.no-border:after,.ios .toolbar-top-ios.no-hairline:after,.md .toolbar-top-md.no-border:after,.md .toolbar-top-md.no-hairline:after,.toolbar-top.no-border:after,.toolbar-top.no-hairline:after{display:none!important}.aurora .toolbar-top-aurora.no-shadow:before,.aurora .toolbar-top-aurora.toolbar-hidden:before,.ios .toolbar-top-ios.no-shadow:before,.ios .toolbar-top-ios.toolbar-hidden:before,.md .toolbar-top-md.no-shadow:before,.md .toolbar-top-md.toolbar-hidden:before,.toolbar-top.no-shadow:before,.toolbar-top.toolbar-hidden:before{display:none!important}.aurora .toolbar-top-aurora:after,.aurora .toolbar-top-aurora:before,.ios .toolbar-top-ios:after,.ios .toolbar-top-ios:before,.md .toolbar-top-md:after,.md .toolbar-top-md:before,.toolbar-top:after,.toolbar-top:before{-webkit-backface-visibility:hidden;backface-visibility:hidden}.aurora .toolbar-top-aurora:after,.ios .toolbar-top-ios:after,.md .toolbar-top-md:after,.toolbar-top:after{content:'';position:absolute;background-color:var(--f7-toolbar-border-color,var(--f7-bars-border-color));display:block;z-index:15;top:auto;right:auto;bottom:0;left:0;height:1px;width:100%;transform-origin:50% 100%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.aurora .toolbar-top-aurora:before,.ios .toolbar-top-ios:before,.md .toolbar-top-md:before,.toolbar-top:before{content:'';position:absolute;right:0;width:100%;top:100%;bottom:auto;height:8px;pointer-events:none;background:var(--f7-toolbar-top-shadow-image)}.aurora .toolbar-bottom-aurora,.ios .toolbar-bottom-ios,.md .toolbar-bottom-md,.toolbar-bottom{bottom:0;height:calc(var(--f7-toolbar-height) + var(--f7-safe-area-bottom))}.aurora .toolbar-bottom-aurora .tab-link-highlight,.ios .toolbar-bottom-ios .tab-link-highlight,.md .toolbar-bottom-md .tab-link-highlight,.toolbar-bottom .tab-link-highlight{top:0}.aurora .toolbar-bottom-aurora .toolbar-inner,.ios .toolbar-bottom-ios .toolbar-inner,.md .toolbar-bottom-md .toolbar-inner,.toolbar-bottom .toolbar-inner{height:auto;top:0;bottom:var(--f7-safe-area-bottom)}.aurora .toolbar-bottom-aurora.no-border:before,.aurora .toolbar-bottom-aurora.no-hairline:before,.ios .toolbar-bottom-ios.no-border:before,.ios .toolbar-bottom-ios.no-hairline:before,.md .toolbar-bottom-md.no-border:before,.md .toolbar-bottom-md.no-hairline:before,.toolbar-bottom.no-border:before,.toolbar-bottom.no-hairline:before{display:none!important}.aurora .toolbar-bottom-aurora.no-shadow:after,.aurora .toolbar-bottom-aurora.toolbar-hidden:after,.ios .toolbar-bottom-ios.no-shadow:after,.ios .toolbar-bottom-ios.toolbar-hidden:after,.md .toolbar-bottom-md.no-shadow:after,.md .toolbar-bottom-md.toolbar-hidden:after,.toolbar-bottom.no-shadow:after,.toolbar-bottom.toolbar-hidden:after{display:none!important}.aurora .toolbar-bottom-aurora:before,.ios .toolbar-bottom-ios:before,.md .toolbar-bottom-md:before,.toolbar-bottom:before{content:'';position:absolute;background-color:var(--f7-toolbar-border-color,var(--f7-bars-border-color));display:block;z-index:15;top:0;right:auto;bottom:auto;left:0;height:1px;width:100%;transform-origin:50% 0%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.aurora .toolbar-bottom-aurora:after,.ios .toolbar-bottom-ios:after,.md .toolbar-bottom-md:after,.toolbar-bottom:after{content:'';position:absolute;right:0;width:100%;bottom:100%;height:8px;top:auto;pointer-events:none;background:var(--f7-toolbar-bottom-shadow-image);transform:translate3d(0,0,0)}.toolbar-inner{position:absolute;left:0;top:0;width:100%;height:100%;display:flex;justify-content:space-between;box-sizing:border-box;align-items:center;align-content:center;overflow:hidden;padding:0 calc(var(--f7-toolbar-inner-padding-right) + var(--f7-safe-area-right)) 0 calc(var(--f7-toolbar-inner-padding-left) + var(--f7-safe-area-left))}.views>.tabbar,.views>.tabbar-labels{z-index:5001}.tabbar a,.tabbar-labels a{color:var(--f7-tabbar-link-inactive-color)}.tabbar .tab-link:not(.tab-link-active),.tabbar-labels .tab-link:not(.tab-link-active){background-color:var(--f7-tabbar-link-inactive-bg-color,transparent)}.tabbar .link,.tabbar-labels .link{line-height:1.4}.tabbar .link,.tabbar .tab-link,.tabbar-labels .link,.tabbar-labels .tab-link{height:100%;width:100%;box-sizing:border-box;display:flex;justify-content:center;align-items:center;flex-direction:column;text-transform:var(--f7-tabbar-link-text-transform);font-weight:var(--f7-tabbar-link-font-weight);letter-spacing:var(--f7-tabbar-link-letter-spacing);overflow:hidden}.tabbar .tab-link-active,.tabbar-labels .tab-link-active{color:var(--f7-tabbar-link-active-color,var(--f7-theme-color));background-color:var(--f7-tabbar-link-active-bg-color,transparent)}.tabbar i.icon,.tabbar-labels i.icon{font-size:var(--f7-tabbar-icon-size);height:var(--f7-tabbar-icon-size);line-height:var(--f7-tabbar-icon-size)}.tabbar-labels{--f7-toolbar-height:var(--f7-tabbar-labels-height)}.tabbar-labels .link,.tabbar-labels .tab-link{height:100%;justify-content:space-between;align-items:center}.tabbar-labels .tabbar-label{display:block;line-height:1;margin:0;position:relative;text-overflow:ellipsis;white-space:nowrap;font-size:var(--f7-tabbar-label-font-size);text-transform:var(--f7-tabbar-label-text-transform);font-weight:var(--f7-tabbar-label-font-weight);letter-spacing:var(--f7-tabbar-label-letter-spacing)}@media (min-width:768px) and (min-height:600px){:root{--f7-tabbar-labels-height:var(--f7-tabbar-labels-tablet-height);--f7-tabbar-label-font-size:var(--f7-tabbar-label-tablet-font-size)}}.tabbar-scrollable .toolbar-inner{justify-content:flex-start;overflow:auto;-webkit-overflow-scrolling:touch}.tabbar-scrollable .toolbar-inner::-webkit-scrollbar{display:none!important;width:0!important;height:0!important;-webkit-appearance:none;opacity:0!important}.tabbar-scrollable .link,.tabbar-scrollable .tab-link{width:auto;flex-shrink:0}.navbar-transitioning+.toolbar,.navbar-transitioning~* .toolbar,.toolbar-transitioning{transition-duration:var(--f7-toolbar-hide-show-transition-duration)}.aurora .toolbar-bottom-aurora~*,.ios .toolbar-bottom-ios~*,.md .toolbar-bottom-md~*,.toolbar-bottom~*{--f7-page-toolbar-bottom-offset:var(--f7-toolbar-height)}.aurora .toolbar-bottom-aurora.tabbar-labels~*,.ios .toolbar-bottom-ios.tabbar-labels~*,.md .toolbar-bottom-md.tabbar-labels~*,.toolbar-bottom.tabbar-labels~*{--f7-page-toolbar-bottom-offset:var(--f7-tabbar-labels-height)}.aurora .toolbar-bottom-aurora.toolbar-hidden,.ios .toolbar-bottom-ios.toolbar-hidden,.md .toolbar-bottom-md.toolbar-hidden,.toolbar-bottom.toolbar-hidden{transform:translate3d(0,100%,0)}.aurora .toolbar-top-aurora~*,.ios .toolbar-top-ios~*,.md .toolbar-top-md~*,.toolbar-top~*{--f7-page-toolbar-top-offset:var(--f7-toolbar-height)}.aurora .toolbar-top-aurora.tabbar-labels~*,.ios .toolbar-top-ios.tabbar-labels~*,.md .toolbar-top-md.tabbar-labels~*,.toolbar-top.tabbar-labels~*{--f7-page-toolbar-top-offset:var(--f7-tabbar-labels-height)}.aurora .toolbar-top-aurora.toolbar-hidden,.ios .toolbar-top-ios.toolbar-hidden,.md .toolbar-top-md.toolbar-hidden,.toolbar-top.toolbar-hidden{transform:translate3d(0,-100%,0)}.aurora .navbar~* .toolbar-top-aurora,.aurora .navbar~.page:not(.no-navbar) .toolbar-top-aurora,.aurora .navbar~.toolbar-top-aurora,.ios .navbars~* .toolbar-top-ios,.ios .navbars~.page:not(.no-navbar) .toolbar-top-ios,.ios .navbars~.toolbar-top-ios,.ios .navbar~* .toolbar-top-ios,.ios .navbar~.page:not(.no-navbar) .toolbar-top-ios,.ios .navbar~.toolbar-top-ios,.md .navbar~* .toolbar-top-md,.md .navbar~.page:not(.no-navbar) .toolbar-top-md,.md .navbar~.toolbar-top-md,.navbars~* .toolbar-top,.navbars~.page:not(.no-navbar) .toolbar-top,.navbars~.toolbar-top,.navbar~* .toolbar-top,.navbar~.page:not(.no-navbar) .toolbar-top,.navbar~.toolbar-top{top:calc(var(--f7-navbar-height) + var(--f7-safe-area-top))}.aurora .navbar~* .toolbar-top-aurora.toolbar-hidden,.aurora .navbar~.page:not(.no-navbar) .toolbar-top-aurora.toolbar-hidden,.aurora .navbar~.toolbar-top-aurora.toolbar-hidden,.ios .navbars~* .toolbar-top-ios.toolbar-hidden,.ios .navbars~.page:not(.no-navbar) .toolbar-top-ios.toolbar-hidden,.ios .navbars~.toolbar-top-ios.toolbar-hidden,.ios .navbar~* .toolbar-top-ios.toolbar-hidden,.ios .navbar~.page:not(.no-navbar) .toolbar-top-ios.toolbar-hidden,.ios .navbar~.toolbar-top-ios.toolbar-hidden,.md .navbar~* .toolbar-top-md.toolbar-hidden,.md .navbar~.page:not(.no-navbar) .toolbar-top-md.toolbar-hidden,.md .navbar~.toolbar-top-md.toolbar-hidden,.navbars~* .toolbar-top.toolbar-hidden,.navbars~.page:not(.no-navbar) .toolbar-top.toolbar-hidden,.navbars~.toolbar-top.toolbar-hidden,.navbar~* .toolbar-top.toolbar-hidden,.navbar~.page:not(.no-navbar) .toolbar-top.toolbar-hidden,.navbar~.toolbar-top.toolbar-hidden{transform:translate3d(0,calc(-1 * (var(--f7-navbar-height) + var(--f7-toolbar-height) + var(--f7-safe-area-top))),0)}.aurora .navbar~* .toolbar-top-aurora.toolbar-hidden.tabbar-labels,.aurora .navbar~.page:not(.no-navbar) .toolbar-top-aurora.toolbar-hidden.tabbar-labels,.aurora .navbar~.toolbar-top-aurora.toolbar-hidden.tabbar-labels,.ios .navbars~* .toolbar-top-ios.toolbar-hidden.tabbar-labels,.ios .navbars~.page:not(.no-navbar) .toolbar-top-ios.toolbar-hidden.tabbar-labels,.ios .navbars~.toolbar-top-ios.toolbar-hidden.tabbar-labels,.ios .navbar~* .toolbar-top-ios.toolbar-hidden.tabbar-labels,.ios .navbar~.page:not(.no-navbar) .toolbar-top-ios.toolbar-hidden.tabbar-labels,.ios .navbar~.toolbar-top-ios.toolbar-hidden.tabbar-labels,.md .navbar~* .toolbar-top-md.toolbar-hidden.tabbar-labels,.md .navbar~.page:not(.no-navbar) .toolbar-top-md.toolbar-hidden.tabbar-labels,.md .navbar~.toolbar-top-md.toolbar-hidden.tabbar-labels,.navbars~* .toolbar-top.toolbar-hidden.tabbar-labels,.navbars~.page:not(.no-navbar) .toolbar-top.toolbar-hidden.tabbar-labels,.navbars~.toolbar-top.toolbar-hidden.tabbar-labels,.navbar~* .toolbar-top.toolbar-hidden.tabbar-labels,.navbar~.page:not(.no-navbar) .toolbar-top.toolbar-hidden.tabbar-labels,.navbar~.toolbar-top.toolbar-hidden.tabbar-labels{transform:translate3d(0,calc(-1 * (var(--f7-navbar-height) + var(--f7-tabbar-labels-height) + var(--f7-safe-area-top))),0)}.aurora .navbar-hidden+.toolbar-top-aurora:not(.toolbar-hidden),.aurora .navbar-hidden~* .toolbar-top-aurora:not(.toolbar-hidden),.ios .navbar-hidden+.toolbar-top-ios:not(.toolbar-hidden),.ios .navbar-hidden~* .toolbar-top-ios:not(.toolbar-hidden),.md .navbar-hidden+.toolbar-top-md:not(.toolbar-hidden),.md .navbar-hidden~* .toolbar-top-md:not(.toolbar-hidden),.navbar-hidden+.toolbar-top:not(.toolbar-hidden),.navbar-hidden~* .toolbar-top:not(.toolbar-hidden){transform:translate3d(0,calc(0px - var(--f7-navbar-height)),0)}.aurora .navbar-large-hidden~* .toolbar-top-aurora:not(.toolbar-hidden),.ios .navbar-large-hidden+.toolbar-top-ios:not(.toolbar-hidden),.ios .navbar-large-hidden~* .toolbar-top-ios:not(.toolbar-hidden),.md .navbar-large-hidden+.toolbar-top-md:not(.toolbar-hidden),.md .navbar-large-hidden~* .toolbar-top-md:not(.toolbar-hidden),.navbar-large-hidden+.toolbar-top:not(.toolbar-hidden),.navbar-large-hidden~* .toolbar-top:not(.toolbar-hidden){transform:translate3d(0,calc(0px - var(--f7-navbar-height) - var(--f7-navbar-large-title-height)),0)}.ios .toolbar a.icon-only{min-height:var(--f7-toolbar-height);display:flex;justify-content:center;align-items:center;margin:0;min-width:44px}.ios .tabbar-labels .link,.ios .tabbar-labels .tab-link{padding-top:4px;padding-bottom:4px}.ios .tabbar-labels .link i+span,.ios .tabbar-labels .tab-link i+span{margin:0}@media (min-width:768px) and (min-height:600px){.ios .tabbar .link,.ios .tabbar .tab-link,.ios .tabbar-labels .link,.ios .tabbar-labels .tab-link{justify-content:center;flex-direction:row}.ios .tabbar .link i+span,.ios .tabbar .tab-link i+span,.ios .tabbar-labels .link i+span,.ios .tabbar-labels .tab-link i+span{margin-left:5px}}.ios .tabbar-scrollable .toolbar-inner{justify-content:flex-start}.ios .tabbar-scrollable .link,.ios .tabbar-scrollable .tab-link{padding:0 8px}.md .toolbar .link{justify-content:center;padding:0 16px;min-width:48px}.md .toolbar .link:before{content:'';width:152%;height:152%;position:absolute;left:-26%;top:-26%;background-image:radial-gradient(circle at center,var(--f7-link-highlight-color) 66%,rgba(255,255,255,0) 66%);background-repeat:no-repeat;background-position:center;background-size:100% 100%;opacity:0;pointer-events:none;transition-duration:.6s}.md .toolbar .link.active-state:before{opacity:1;transition-duration:150ms}.md .toolbar a.icon-only{min-width:0;flex-shrink:0}.md .tabbar .link,.md .tabbar .tab-link,.md .tabbar-labels .link,.md .tabbar-labels .tab-link{padding-left:0;padding-right:0}.md .tabbar a.icon-only,.md .tabbar-labels a.icon-only{flex-shrink:initial}.md .tabbar .tab-link,.md .tabbar-labels .tab-link{transition-duration:.3s;overflow:hidden;position:relative}.md .tabbar .tab-link-highlight,.md .tabbar-labels .tab-link-highlight{position:absolute;left:0;height:2px;background:var(--f7-tabbar-link-active-border-color,var(--f7-theme-color));transition-duration:.3s;right:0}.md .tabbar-labels .link,.md .tabbar-labels .tab-link{padding-top:7px;padding-bottom:7px}.md .tabbar-label{max-width:100%;overflow:hidden;line-height:1.2}.md .tabbar-scrollable .toolbar-inner{overflow:auto}.md .tabbar-scrollable .link,.md .tabbar-scrollable .tab-link{padding:0 16px}.aurora .toolbar a.icon-only{min-height:var(--f7-toolbar-height);display:flex;justify-content:center;align-items:center;margin:0}.aurora .tabbar .toolbar-inner,.aurora .tabbar-labels .toolbar-inner{padding-left:0;padding-right:0}.aurora .tabbar .link,.aurora .tabbar .tab-link,.aurora .tabbar-labels .link,.aurora .tabbar-labels .tab-link{transition-duration:.2s}.aurora .tabbar-labels .link,.aurora .tabbar-labels .tab-link{padding-top:5px;padding-bottom:5px}.aurora .tabbar-labels .link i+span,.aurora .tabbar-labels .tab-link i+span{margin:0}.aurora .tabbar-scrollable .toolbar-inner{justify-content:flex-start}.aurora .tabbar-scrollable .link,.aurora .tabbar-scrollable .tab-link{padding:0 16px}:root{--f7-subnavbar-title-line-height:1.2}.ios{--f7-subnavbar-height:44px;--f7-subnavbar-inner-padding-left:8px;--f7-subnavbar-inner-padding-right:8px;--f7-subnavbar-title-font-size:34px;--f7-subnavbar-title-font-weight:700;--f7-subnavbar-title-letter-spacing:-0.03em;--f7-subnavbar-title-margin-left:8px;--f7-subnavbar-shadow-image:none}.md{--f7-subnavbar-height:48px;--f7-subnavbar-inner-padding-left:16px;--f7-subnavbar-inner-padding-right:16px;--f7-subnavbar-title-font-size:20px;--f7-subnavbar-title-font-weight:500;--f7-subnavbar-title-letter-spacing:0;--f7-subnavbar-title-margin-left:0px;--f7-subnavbar-shadow-image:var(--f7-bars-shadow-bottom-image)}.aurora{--f7-subnavbar-height:38px;--f7-subnavbar-inner-padding-left:16px;--f7-subnavbar-inner-padding-right:16px;--f7-subnavbar-title-font-size:26px;--f7-subnavbar-title-font-weight:bold;--f7-subnavbar-title-letter-spacing:-0.03em;--f7-subnavbar-title-margin-left:0px;--f7-subnavbar-shadow-image:none;--f7-subnavbar-link-height:auto;--f7-subnavbar-link-line-height:inherit}.subnavbar{width:100%;position:absolute;left:0;top:0;z-index:600;box-sizing:border-box;display:flex;justify-content:space-between;align-items:center;background-image:var(--f7-subnavbar-bg-image,var(--f7-bars-bg-image));background-color:var(--f7-subnavbar-bg-color,var(--f7-bars-bg-color));color:var(--f7-subnavbar-text-color,var(--f7-bars-text-color))}@supports ((-webkit-backdrop-filter:blur(20px)) or (backdrop-filter:blur(20px))){.ios-translucent-bars .subnavbar{background-color:rgba(var(--f7-subnavbar-bg-color-rgb,var(--f7-bars-bg-color-rgb)),var(--f7-bars-translucent-opacity));-webkit-backdrop-filter:saturate(180%) blur(var(--f7-bars-translucent-blur));backdrop-filter:saturate(180%) blur(var(--f7-bars-translucent-blur))}}.subnavbar .subnavbar-title{position:relative;overflow:hidden;text-overflow:ellpsis;white-space:nowrap;font-size:var(--f7-subnavbar-title-font-size);font-weight:var(--f7-subnavbar-title-font-weight);text-align:left;display:inline-block;line-height:var(--f7-subnavbar-title-line-height);letter-spacing:var(--f7-subnavbar-title-letter-spacing);margin-right:var(--f7-subnavbar-title-margin-left)}.subnavbar .left,.subnavbar .right{flex-shrink:0;display:flex;justify-content:flex-start;align-items:center}.subnavbar .right:first-child{position:absolute;height:100%}.subnavbar a{color:var(--f7-subnavbar-link-color,var(--f7-bars-link-color,var(--f7-theme-color)))}.subnavbar a.link{line-height:var(--f7-subnavbar-link-line-height,var(--f7-subnavbar-height));height:var(--f7-subnavbar-link-height,var(--f7-subnavbar-height))}.subnavbar a.icon-only{min-width:var(--f7-subnavbar-height)}.subnavbar.no-border:after,.subnavbar.no-hairline:after{display:none!important}.subnavbar.navbar-hidden:before,.subnavbar.no-shadow:before{display:none!important}.subnavbar:after,.subnavbar:before{-webkit-backface-visibility:hidden;backface-visibility:hidden}.subnavbar:after{content:'';position:absolute;background-color:var(--f7-subnavbar-border-color,var(--f7-bars-border-color));display:block;z-index:15;top:auto;right:auto;bottom:0;left:0;height:1px;width:100%;transform-origin:50% 100%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.subnavbar:before{content:'';position:absolute;right:0;width:100%;top:100%;bottom:auto;height:8px;pointer-events:none;background:var(--f7-subnavbar-shadow-image)}.subnavbar-inner{width:100%;height:100%;display:flex;align-items:center;box-sizing:border-box;justify-content:space-between;overflow:hidden;padding:0 calc(var(--f7-subnavbar-inner-padding-left) + var(--f7-safe-area-right)) 0 calc(var(--f7-subnavbar-inner-padding-right) + var(--f7-safe-area-left))}.subnavbar-inner.stacked{display:none}.navbar .subnavbar{top:100%}.page>.subnavbar,.view>.subnavbar,.views>.subnavbar{position:absolute}.navbars~* .subnavbar,.navbars~.page-with-subnavbar:not(.no-navbar) .subnavbar,.navbars~.subnavbar,.navbar~* .subnavbar,.navbar~.page-with-subnavbar:not(.no-navbar) .subnavbar,.navbar~.subnavbar,.page-with-subnavbar .navbar~* .subnavbar,.page-with-subnavbar .navbar~.subnavbar{top:calc(var(--f7-navbar-height) + var(--f7-safe-area-top))}.navbar .title-large~.subnavbar,.navbars~.page-with-navbar-large:not(.no-navbar) .subnavbar,.navbar~.page-with-navbar-large:not(.no-navbar) .subnavbar,.page-with-subnavbar.page-with-navbar-large .navbar~* .subnavbar,.page-with-subnavbar.page-with-navbar-large .navbar~.subnavbar{top:calc(var(--f7-navbar-height) + var(--f7-navbar-large-title-height) + var(--f7-safe-area-top));transform:translate3d(0,calc(-1 * var(--f7-navbar-large-collapse-progress) * var(--f7-navbar-large-title-height)),0)}.page-with-subnavbar,.subnavbar~*{--f7-page-subnavbar-offset:var(--f7-subnavbar-height)}.ios .subnavbar{height:calc(var(--f7-subnavbar-height) + 1px);margin-top:-1px;padding-top:1px}.ios .subnavbar .title{align-self:flex-start;flex-shrink:10}.ios .subnavbar .left a+a,.ios .subnavbar .right a+a{margin-right:16px}.ios .subnavbar .left{margin-left:10px}.ios .subnavbar .right{margin-right:10px}.ios .subnavbar .right:first-child{left:8px}.ios .subnavbar a.link{justify-content:flex-start}.ios .subnavbar a.icon-only{justify-content:center;margin:0}.md .subnavbar{height:var(--f7-subnavbar-height)}.md .subnavbar .right{margin-right:auto}.md .subnavbar .right:first-child{left:16px}.md .subnavbar a.link{justify-content:center;padding:0 16px}.md .subnavbar a.link:before{content:'';width:152%;height:152%;position:absolute;left:-26%;top:-26%;background-image:radial-gradient(circle at center,var(--f7-link-highlight-color) 66%,rgba(255,255,255,0) 66%);background-repeat:no-repeat;background-position:center;background-size:100% 100%;opacity:0;pointer-events:none;transition-duration:.6s}.md .subnavbar a.link.active-state:before{opacity:1;transition-duration:150ms}.md .subnavbar a.icon-only{flex-shrink:0}.md .subnavbar-inner>a.link:first-child{margin-right:calc(-1 * var(--f7-subnavbar-inner-padding-right))}.md .subnavbar-inner>a.link:last-child{margin-left:calc(-1 * var(--f7-subnavbar-inner-padding-left))}.aurora .subnavbar{height:calc(var(--f7-subnavbar-height) + 1px);margin-top:-1px;padding-top:1px}.aurora .subnavbar .title{align-self:flex-start;flex-shrink:10}.aurora .subnavbar .left a+a,.aurora .subnavbar .right a+a{margin-right:10px}.aurora .subnavbar .left{margin-left:10px}.aurora .subnavbar .right{margin-right:10px}.aurora .subnavbar .right:first-child{left:16px}.aurora .subnavbar a.link{justify-content:flex-start}.aurora .subnavbar a.icon-only{justify-content:center;margin:0}:root{--f7-block-padding-horizontal:16px;--f7-block-padding-vertical:16px;--f7-block-font-size:inherit;--f7-block-text-color:inherit;--f7-block-header-margin:10px;--f7-block-footer-margin:10px;--f7-block-header-font-size:14px;--f7-block-footer-font-size:14px;--f7-block-title-text-transform:none;--f7-block-title-white-space:nowrap;--f7-block-title-medium-text-transform:none;--f7-block-title-large-text-transform:none;--f7-block-inset-side-margin:16px;--f7-block-title-medium-text-color:#000;--f7-block-title-large-text-color:#000;--f7-block-strong-bg-color:#fff}:root .theme-dark,:root.theme-dark{--f7-block-title-text-color:#fff;--f7-block-strong-border-color:rgba(255, 255, 255, 0.15);--f7-block-title-medium-text-color:#fff;--f7-block-title-large-text-color:#fff;--f7-block-strong-bg-color:#1c1c1d}.ios{--f7-block-margin-vertical:35px;--f7-block-strong-border-color:rgba(0, 0, 0, 0.22);--f7-block-title-text-color:#000;--f7-block-title-font-size:16px;--f7-block-title-font-weight:600;--f7-block-title-line-height:20px;--f7-block-title-margin-bottom:10px;--f7-block-title-medium-font-size:22px;--f7-block-title-medium-font-weight:bold;--f7-block-title-medium-line-height:1.4;--f7-block-title-large-font-size:30px;--f7-block-title-large-font-weight:bold;--f7-block-title-large-line-height:1.3;--f7-block-inset-border-radius:8px;--f7-block-strong-text-color:#000;--f7-block-header-text-color:rgba(0, 0, 0, 0.45);--f7-block-footer-text-color:rgba(0, 0, 0, 0.45)}.ios .theme-dark,.ios.theme-dark{--f7-block-header-text-color:rgba(255, 255, 255, 0.55);--f7-block-footer-text-color:rgba(255, 255, 255, 0.55);--f7-block-strong-text-color:#fff}.md{--f7-block-margin-vertical:32px;--f7-block-strong-text-color:inherit;--f7-block-strong-border-color:rgba(0, 0, 0, 0.12);--f7-block-title-font-size:inherit;--f7-block-title-text-color:rgba(0, 0, 0, 0.54);--f7-block-title-font-weight:500;--f7-block-title-line-height:16px;--f7-block-title-margin-bottom:16px;--f7-block-title-medium-font-size:24px;--f7-block-title-medium-font-weight:500;--f7-block-title-medium-line-height:1.3;--f7-block-title-large-font-size:34px;--f7-block-title-large-font-weight:500;--f7-block-title-large-line-height:1.2;--f7-block-inset-border-radius:4px;--f7-block-header-text-color:rgba(0, 0, 0, 0.54);--f7-block-footer-text-color:rgba(0, 0, 0, 0.54)}.md .theme-dark,.md.theme-dark{--f7-block-header-text-color:rgba(255, 255, 255, 0.54);--f7-block-footer-text-color:rgba(255, 255, 255, 0.54)}.aurora{--f7-block-margin-vertical:15px;--f7-block-strong-border-color:rgba(0, 0, 0, 0.12);--f7-block-title-font-size:inherit;--f7-block-title-text-color:rgba(0, 0, 0, 0.7);--f7-block-title-font-weight:600;--f7-block-title-line-height:1.5;--f7-block-title-margin-bottom:5px;--f7-block-title-medium-font-size:20px;--f7-block-title-medium-font-weight:600;--f7-block-title-medium-line-height:1.4;--f7-block-title-large-font-size:28px;--f7-block-title-large-font-weight:bold;--f7-block-title-large-line-height:1.3;--f7-block-inset-border-radius:4px;--f7-block-strong-text-color:inherit;--f7-block-header-text-color:rgba(0, 0, 0, 0.6);--f7-block-footer-text-color:rgba(0, 0, 0, 0.6)}.aurora .theme-dark,.aurora.theme-dark{--f7-block-header-text-color:rgba(255, 255, 255, 0.54);--f7-block-footer-text-color:rgba(255, 255, 255, 0.54);--f7-block-strong-text-color:#fff}.block{box-sizing:border-box;position:relative;z-index:1;color:var(--f7-block-text-color);margin:var(--f7-block-margin-vertical) 0;padding-top:0;padding-bottom:0;padding-left:calc(var(--f7-block-padding-horizontal) + var(--f7-safe-area-left));padding-right:calc(var(--f7-block-padding-horizontal) + var(--f7-safe-area-right));font-size:var(--f7-block-font-size)}.aurora .block.no-hairlines-aurora ul:after,.aurora .block.no-hairlines-aurora ul:before,.aurora .block.no-hairlines-aurora:after,.aurora .block.no-hairlines-aurora:before,.block.no-hairlines ul:after,.block.no-hairlines ul:before,.block.no-hairlines:after,.block.no-hairlines:before,.ios .block.no-hairlines-ios ul:after,.ios .block.no-hairlines-ios ul:before,.ios .block.no-hairlines-ios:after,.ios .block.no-hairlines-ios:before,.md .block.no-hairlines-md ul:after,.md .block.no-hairlines-md ul:before,.md .block.no-hairlines-md:after,.md .block.no-hairlines-md:before{display:none!important}.aurora .block.no-hairline-top-aurora ul:before,.aurora .block.no-hairline-top-aurora:before,.block.no-hairline-top ul:before,.block.no-hairline-top:before,.ios .block.no-hairline-top-ios ul:before,.ios .block.no-hairline-top-ios:before,.md .block.no-hairline-top-md ul:before,.md .block.no-hairline-top-md:before{display:none!important}.aurora .block.no-hairline-bottom-aurora ul:after,.aurora .block.no-hairline-bottom-aurora:after,.block.no-hairline-bottom ul:after,.block.no-hairline-bottom:after,.ios .block.no-hairline-bottom-ios ul:after,.ios .block.no-hairline-bottom-ios:after,.md .block.no-hairline-bottom-md ul:after,.md .block.no-hairline-bottom-md:after{display:none!important}.block>h1:first-child,.block>h2:first-child,.block>h3:first-child,.block>h4:first-child,.block>p:first-child{margin-top:0}.block>h1:last-child,.block>h2:last-child,.block>h3:last-child,.block>h4:last-child,.block>p:last-child{margin-bottom:0}.block-strong{color:var(--f7-block-strong-text-color);padding-top:var(--f7-block-padding-vertical);padding-bottom:var(--f7-block-padding-vertical);background-color:var(--f7-block-strong-bg-color)}.block-strong:before{content:'';position:absolute;background-color:var(--f7-block-strong-border-color);display:block;z-index:15;top:0;right:auto;bottom:auto;left:0;height:1px;width:100%;transform-origin:50% 0%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.block-strong:after{content:'';position:absolute;background-color:var(--f7-block-strong-border-color);display:block;z-index:15;top:auto;right:auto;bottom:0;left:0;height:1px;width:100%;transform-origin:50% 100%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.block-title{position:relative;overflow:hidden;margin:0;white-space:var(--f7-block-title-white-space);text-overflow:ellipsis;text-transform:var(--f7-block-title-text-transform);color:var(--f7-block-title-text-color);font-size:var(--f7-block-title-font-size,inherit);font-weight:var(--f7-block-title-font-weight);line-height:var(--f7-block-title-line-height);margin-top:var(--f7-block-margin-vertical);margin-bottom:var(--f7-block-title-margin-bottom);margin-left:calc(var(--f7-block-padding-horizontal) + var(--f7-safe-area-left));margin-right:calc(var(--f7-block-padding-horizontal) + var(--f7-safe-area-right))}.block-title+.block,.block-title+.block-header,.block-title+.card,.block-title+.list,.block-title+.timeline{margin-top:0px}.block-title-medium{font-size:var(--f7-block-title-medium-font-size);text-transform:var(--f7-block-title-medium-text-transform);color:var(--f7-block-title-medium-text-color);font-weight:var(--f7-block-title-medium-font-weight);line-height:var(--f7-block-title-medium-line-height)}.block-title-large{font-size:var(--f7-block-title-large-font-size);text-transform:var(--f7-block-title-large-text-transform);color:var(--f7-block-title-large-text-color);font-weight:var(--f7-block-title-large-font-weight);line-height:var(--f7-block-title-large-line-height)}.block>.block-title:first-child,.list>.block-title:first-child{margin-top:0;margin-left:0;margin-right:0}.block-header{color:var(--f7-block-header-text-color);font-size:var(--f7-block-header-font-size);margin-bottom:var(--f7-block-header-margin);margin-top:var(--f7-block-margin-vertical)}.block-header+.block,.block-header+.card,.block-header+.list,.block-header+.timeline{margin-top:var(--f7-block-header-margin)}.block-footer{color:var(--f7-block-footer-text-color);font-size:var(--f7-block-footer-font-size);margin-top:var(--f7-block-footer-margin);margin-bottom:var(--f7-block-margin-vertical)}.block-footer,.block-header{padding-top:0;padding-bottom:0;padding-left:calc(var(--f7-block-padding-horizontal) + var(--f7-safe-area-left));padding-right:calc(var(--f7-block-padding-horizontal) + var(--f7-safe-area-right))}.block-footer h1:first-child,.block-footer h2:first-child,.block-footer h3:first-child,.block-footer h4:first-child,.block-footer p:first-child,.block-footer ul:first-child,.block-header h1:first-child,.block-header h2:first-child,.block-header h3:first-child,.block-header h4:first-child,.block-header p:first-child,.block-header ul:first-child{margin-top:0}.block-footer h1:last-child,.block-footer h2:last-child,.block-footer h3:last-child,.block-footer h4:last-child,.block-footer p:last-child,.block-footer ul:last-child,.block-header h1:last-child,.block-header h2:last-child,.block-header h3:last-child,.block-header h4:last-child,.block-header p:last-child,.block-header ul:last-child{margin-bottom:0}.block-footer h1:first-child:last-child,.block-footer h2:first-child:last-child,.block-footer h3:first-child:last-child,.block-footer h4:first-child:last-child,.block-footer p:first-child:last-child,.block-footer ul:first-child:last-child,.block-header h1:first-child:last-child,.block-header h2:first-child:last-child,.block-header h3:first-child:last-child,.block-header h4:first-child:last-child,.block-header p:first-child:last-child,.block-header ul:first-child:last-child{margin-top:0;margin-bottom:0}.block .block-header,.card .block-header,.list .block-header,.timeline .block-header{margin-top:0}.block .block-footer,.card .block-footer,.list .block-footer,.timeline .block-footer{margin-bottom:0}.block+.block-footer,.card+.block-footer,.list+.block-footer,.timeline+.block-footer{margin-top:calc(-1 * (var(--f7-block-margin-vertical) - var(--f7-block-footer-margin)))}.block+.block-footer{margin-top:calc(-1 * (var(--f7-block-margin-vertical) - var(--f7-block-footer-margin)));margin-bottom:var(--f7-block-margin-vertical)}.block .block-footer,.block .block-header{padding:0}.block.inset{border-radius:var(--f7-block-inset-border-radius);margin-left:calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-left));margin-right:calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-right));--f7-safe-area-left:0px;--f7-safe-area-right:0px}.block-strong.inset:after,.block-strong.inset:before{display:none!important}@media (min-width:480px){.block.xsmall-inset{border-radius:var(--f7-block-inset-border-radius);margin-left:calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-left));margin-right:calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-right));--f7-safe-area-left:0px;--f7-safe-area-right:0px}.block-strong.xsmall-inset:after,.block-strong.xsmall-inset:before{display:none!important}}@media (min-width:568px){.block.small-inset{border-radius:var(--f7-block-inset-border-radius);margin-left:calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-left));margin-right:calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-right));--f7-safe-area-left:0px;--f7-safe-area-right:0px}.block-strong.small-inset:after,.block-strong.small-inset:before{display:none!important}}@media (min-width:768px){.block.medium-inset{border-radius:var(--f7-block-inset-border-radius);margin-left:calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-left));margin-right:calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-right));--f7-safe-area-left:0px;--f7-safe-area-right:0px}.block-strong.medium-inset:after,.block-strong.medium-inset:before{display:none!important}}@media (min-width:1024px){.block.large-inset{border-radius:var(--f7-block-inset-border-radius);margin-left:calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-left));margin-right:calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-right));--f7-safe-area-left:0px;--f7-safe-area-right:0px}.block-strong.large-inset:after,.block-strong.large-inset:before{display:none!important}}@media (min-width:1200px){.block.xlarge-inset{border-radius:var(--f7-block-inset-border-radius);margin-left:calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-left));margin-right:calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-right));--f7-safe-area-left:0px;--f7-safe-area-right:0px}.block-strong.xlarge-inset:after,.block-strong.xlarge-inset:before{display:none!important}}:root{--f7-list-inset-side-margin:16px;--f7-list-item-cell-margin:16px;--f7-list-item-padding-horizontal:16px;--f7-list-media-item-padding-horizontal:16px;--f7-list-item-text-max-lines:2;--f7-list-chevron-icon-font-size:20px;--f7-list-item-title-font-size:inherit;--f7-list-item-title-font-weight:400;--f7-list-item-title-text-color:inherit;--f7-list-item-title-line-height:inherit;--f7-list-item-title-white-space:nowrap;--f7-list-item-subtitle-font-weight:400;--f7-list-item-subtitle-text-color:inherit;--f7-list-item-subtitle-line-height:inherit;--f7-list-item-text-font-weight:400;--f7-list-item-after-font-weight:400;--f7-list-item-header-text-color:inherit;--f7-list-item-header-font-size:12px;--f7-list-item-header-font-weight:400;--f7-list-item-header-line-height:1.2;--f7-list-item-footer-font-size:12px;--f7-list-item-footer-font-weight:400;--f7-list-item-footer-line-height:1.2;--f7-list-button-font-size:inherit;--f7-list-button-font-weight:400;--f7-list-item-divider-line-height:inherit;--f7-list-group-title-line-height:inherit;--f7-list-bg-color:#fff;--f7-list-chevron-icon-color:rgba(0, 0, 0, 0.2)}:root .theme-dark,:root.theme-dark{--f7-list-button-border-color:rgba(255, 255, 255, 0.15);--f7-list-bg-color:#1c1c1d;--f7-list-border-color:rgba(255, 255, 255, 0.15);--f7-list-item-border-color:rgba(255, 255, 255, 0.15);--f7-list-item-divider-border-color:rgba(255, 255, 255, 0.15);--f7-list-item-divider-bg-color:#232323;--f7-list-group-title-bg-color:#232323;--f7-list-chevron-icon-color:rgba(255, 255, 255, 0.3)}.ios{--f7-list-in-list-padding-left:30px;--f7-list-inset-border-radius:8px;--f7-list-margin-vertical:35px;--f7-list-font-size:17px;--f7-list-chevron-icon-area:20px;--f7-list-border-color:rgba(0, 0, 0, 0.22);--f7-list-item-border-color:rgba(0, 0, 0, 0.22);--f7-list-link-pressed-bg-color:rgba(0, 0, 0, 0.15);--f7-list-item-subtitle-font-size:15px;--f7-list-item-text-font-size:15px;--f7-list-item-text-line-height:21px;--f7-list-item-after-font-size:inherit;--f7-list-item-after-line-height:inherit;--f7-list-item-after-padding:5px;--f7-list-item-min-height:44px;--f7-list-item-media-margin:16px;--f7-list-item-media-icons-margin:5px;--f7-list-item-padding-vertical:8px;--f7-list-media-item-padding-vertical:10px;--f7-list-media-item-title-font-weight:600;--f7-list-button-text-align:center;--f7-list-button-border-color:rgba(0, 0, 0, 0.22);--f7-list-item-divider-height:31px;--f7-list-item-divider-font-size:inherit;--f7-list-item-divider-font-weight:400;--f7-list-item-divider-bg-color:rgba(0, 0, 0, 0.03);--f7-list-item-divider-border-color:rgba(0, 0, 0, 0.22);--f7-list-group-title-height:31px;--f7-list-group-title-font-size:inherit;--f7-list-group-title-font-weight:400;--f7-list-group-title-bg-color:#f7f7f7;--f7-list-item-after-text-color:rgba(0, 0, 0, 0.45);--f7-list-item-footer-text-color:rgba(0, 0, 0, 0.45);--f7-list-item-text-text-color:rgba(0, 0, 0, 0.45);--f7-list-item-divider-text-color:rgba(0, 0, 0, 0.45);--f7-list-group-title-text-color:rgba(0, 0, 0, 0.45);--f7-list-button-pressed-bg-color:rgba(0, 0, 0, 0.15)}.ios .theme-dark,.ios.theme-dark{--f7-list-item-after-text-color:rgba(255, 255, 255, 0.55);--f7-list-item-header-text-color:rgba(255, 255, 255, 0.55);--f7-list-item-footer-text-color:rgba(255, 255, 255, 0.55);--f7-list-item-text-text-color:rgba(255, 255, 255, 0.55);--f7-list-item-divider-text-color:rgba(255, 255, 255, 0.55);--f7-list-group-title-text-color:rgba(255, 255, 255, 0.55);--f7-list-link-pressed-bg-color:rgba(255, 255, 255, 0.08);--f7-list-button-pressed-bg-color:rgba(255, 255, 255, 0.08)}.md{--f7-list-in-list-padding-left:40px;--f7-list-inset-border-radius:4px;--f7-list-margin-vertical:32px;--f7-list-font-size:16px;--f7-list-chevron-icon-area:26px;--f7-list-border-color:rgba(0, 0, 0, 0.12);--f7-list-item-border-color:rgba(0, 0, 0, 0.12);--f7-list-item-subtitle-font-size:14px;--f7-list-item-text-font-size:14px;--f7-list-item-text-line-height:20px;--f7-list-item-after-font-size:14px;--f7-list-item-after-line-height:inherit;--f7-list-item-after-padding:8px;--f7-list-item-min-height:48px;--f7-list-item-media-margin:16px;--f7-list-item-media-icons-margin:8px;--f7-list-item-padding-vertical:8px;--f7-list-media-item-padding-vertical:14px;--f7-list-button-text-align:left;--f7-list-button-border-color:transparent;--f7-list-item-divider-height:48px;--f7-list-item-divider-font-size:14px;--f7-list-item-divider-font-weight:400;--f7-list-item-divider-bg-color:#f4f4f4;--f7-list-item-divider-border-color:transparent;--f7-list-group-title-height:48px;--f7-list-group-title-font-size:14px;--f7-list-group-title-font-weight:400;--f7-list-group-title-bg-color:#f4f4f4;--f7-list-link-pressed-bg-color:rgba(0, 0, 0, 0.1);--f7-list-item-text-text-color:rgba(0, 0, 0, 0.54);--f7-list-item-after-text-color:rgba(0, 0, 0, 0.54);--f7-list-item-footer-text-color:rgba(0, 0, 0, 0.5);--f7-list-button-text-color:#212121;--f7-list-button-pressed-bg-color:rgba(0, 0, 0, 0.1);--f7-list-item-divider-text-color:rgba(0, 0, 0, 0.54);--f7-list-group-title-text-color:rgba(0, 0, 0, 0.54)}.md .theme-dark,.md.theme-dark{--f7-list-button-text-color:#fff;--f7-list-item-divider-text-color:#fff;--f7-list-group-title-text-color:#fff;--f7-list-link-pressed-bg-color:rgba(255, 255, 255, 0.05);--f7-list-button-pressed-bg-color:rgba(255, 255, 255, 0.05);--f7-list-item-text-text-color:rgba(255, 255, 255, 0.54);--f7-list-item-after-text-color:rgba(255, 255, 255, 0.54);--f7-list-item-footer-text-color:rgba(255, 255, 255, 0.54)}.aurora{--f7-list-in-list-padding-left:16px;--f7-list-inset-border-radius:4px;--f7-list-margin-vertical:15px;--f7-list-font-size:14px;--f7-list-chevron-icon-area:15px;--f7-list-chevron-icon-font-size:16px;--f7-list-border-color:rgba(0, 0, 0, 0.12);--f7-list-item-border-color:rgba(0, 0, 0, 0.12);--f7-list-item-title-line-height:1.3;--f7-list-item-subtitle-font-size:14px;--f7-list-item-subtitle-line-height:1.3;--f7-list-item-text-font-size:12px;--f7-list-item-text-line-height:16px;--f7-list-item-after-font-size:13px;--f7-list-item-after-line-height:1.2;--f7-list-item-after-padding:5px;--f7-list-item-min-height:32px;--f7-list-item-media-margin:10px;--f7-list-item-media-icons-margin:5px;--f7-list-item-padding-vertical:5px;--f7-list-media-item-padding-vertical:5px;--f7-list-media-item-title-font-weight:600;--f7-list-button-text-align:center;--f7-list-button-border-color:rgba(0, 0, 0, 0.12);--f7-list-item-divider-height:19px;--f7-list-item-divider-font-size:inherit;--f7-list-item-divider-font-weight:500;--f7-list-item-divider-bg-color:rgba(0, 0, 0, 0.03);--f7-list-item-divider-border-color:transparent;--f7-list-group-title-height:19px;--f7-list-group-title-font-size:inherit;--f7-list-group-title-font-weight:500;--f7-list-group-title-bg-color:#f7f7f7;--f7-list-link-pressed-bg-color:rgba(0, 0, 0, 0.1);--f7-list-link-hover-bg-color:rgba(0, 0, 0, 0.03);--f7-list-item-text-text-color:rgba(0, 0, 0, 0.6);--f7-list-item-after-text-color:rgba(0, 0, 0, 0.5);--f7-list-item-footer-text-color:rgba(0, 0, 0, 0.6);--f7-list-button-pressed-bg-color:rgba(0, 0, 0, 0.1);--f7-list-button-hover-bg-color:rgba(0, 0, 0, 0.03);--f7-list-item-divider-text-color:rgba(0, 0, 0, 0.6);--f7-list-group-title-text-color:rgba(0, 0, 0, 0.6)}.aurora .theme-dark,.aurora.theme-dark{--f7-list-item-text-text-color:rgba(255, 255, 255, 0.54);--f7-list-item-after-text-color:rgba(255, 255, 255, 0.54);--f7-list-item-footer-text-color:rgba(255, 255, 255, 0.54);--f7-list-item-divider-text-color:rgba(255, 255, 255, 0.6);--f7-list-group-title-text-color:rgba(255, 255, 255, 0.6);--f7-list-link-pressed-bg-color:rgba(255, 255, 255, 0.05);--f7-list-link-hover-bg-color:rgba(255, 255, 255, 0.03);--f7-list-button-pressed-bg-color:rgba(255, 255, 255, 0.05);--f7-list-button-hover-bg-color:rgba(255, 255, 255, 0.03)}:root{--f7-list-chevron-icon-left:'chevron_left';--f7-list-chevron-icon-right:'chevron_right'}.aurora{--f7-list-chevron-icon-left:'chevron_left_aurora';--f7-list-chevron-icon-right:'chevron_right_aurora'}.list{position:relative;z-index:1;font-size:var(--f7-list-font-size);margin:var(--f7-list-margin-vertical) 0}.list ul{list-style:none;margin:0;padding:0;position:relative;background:var(--f7-list-bg-color)}.list ul:before{content:'';position:absolute;background-color:var(--f7-list-border-color);display:block;z-index:15;top:0;right:auto;bottom:auto;left:0;height:1px;width:100%;transform-origin:50% 0%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.list ul:after{content:'';position:absolute;background-color:var(--f7-list-border-color);display:block;z-index:15;top:auto;right:auto;bottom:0;left:0;height:1px;width:100%;transform-origin:50% 100%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.list ul ul{padding-right:calc(var(--f7-list-item-padding-horizontal) + var(--f7-list-in-list-padding-left))}.list ul ul:after,.list ul ul:before{display:none!important}.list li{position:relative;box-sizing:border-box}.list .item-media{display:flex;flex-shrink:0;flex-wrap:nowrap;align-items:center;box-sizing:border-box;padding-bottom:var(--f7-list-item-padding-vertical);padding-top:var(--f7-list-item-padding-vertical)}.list .item-media+.item-inner{margin-right:var(--f7-list-item-media-margin)}.list .item-media i+i,.list .item-media i+img{margin-right:var(--f7-list-item-media-icons-margin)}.list .item-after{padding-right:var(--f7-list-item-after-padding)}.list .item-inner{position:relative;width:100%;min-width:0;display:flex;justify-content:space-between;box-sizing:border-box;align-items:center;align-self:stretch;padding-top:var(--f7-list-item-padding-vertical);padding-bottom:var(--f7-list-item-padding-vertical);min-height:var(--f7-list-item-min-height);padding-left:calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-left))}.list .item-title{min-width:0;flex-shrink:1;white-space:var(--f7-list-item-title-white-space);position:relative;overflow:hidden;text-overflow:ellipsis;max-width:100%;font-size:var(--f7-list-item-title-font-size);font-weight:var(--f7-list-item-title-font-weight);color:var(--f7-list-item-title-text-color);line-height:var(--f7-list-item-title-line-height)}.list .item-after{white-space:nowrap;flex-shrink:0;display:flex;font-size:var(--f7-list-item-after-font-size);font-weight:var(--f7-list-item-after-font-weight);color:var(--f7-list-item-after-text-color);line-height:var(--f7-list-item-after-line-height);margin-right:auto}.list .item-footer,.list .item-header{white-space:normal}.list .item-header{color:var(--f7-list-item-header-text-color);font-size:var(--f7-list-item-header-font-size);font-weight:var(--f7-list-item-header-font-weight);line-height:var(--f7-list-item-header-line-height)}.list .item-footer{color:var(--f7-list-item-footer-text-color);font-size:var(--f7-list-item-footer-font-size);font-weight:var(--f7-list-item-footer-font-weight);line-height:var(--f7-list-item-footer-line-height)}.list .item-link,.list .list-button{transition-duration:.3s;transition-property:background-color;display:block;position:relative;overflow:hidden;z-index:0}.list .item-link{color:inherit}.list .item-link.active-state{background-color:var(--f7-list-link-pressed-bg-color)}.list .item-link .item-inner{padding-left:calc(var(--f7-list-chevron-icon-area) + var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-left))}.list .item-content{display:flex;justify-content:space-between;box-sizing:border-box;align-items:center;min-height:var(--f7-list-item-min-height);padding-right:calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-right))}.list .item-subtitle{position:relative;overflow:hidden;white-space:nowrap;max-width:100%;text-overflow:ellipsis;font-size:var(--f7-list-item-subtitle-font-size);font-weight:var(--f7-list-item-subtitle-font-weight);color:var(--f7-list-item-subtitle-text-color);line-height:var(--f7-list-item-subtitle-line-height)}.list .item-text{position:relative;overflow:hidden;text-overflow:ellipsis;-webkit-line-clamp:var(--f7-list-item-text-max-lines);-webkit-box-orient:vertical;display:-webkit-box;font-size:var(--f7-list-item-text-font-size);font-weight:var(--f7-list-item-text-font-weight);color:var(--f7-list-item-text-text-color);line-height:var(--f7-list-item-text-line-height);max-height:calc(var(--f7-list-item-text-line-height) * var(--f7-list-item-text-max-lines))}.list .item-title-row{position:relative;display:flex;justify-content:space-between;box-sizing:border-box}.list .item-title-row .item-after{align-self:center}.list .item-row{display:flex;justify-content:space-between;box-sizing:border-box}.list .item-cell{display:block;align-self:center;box-sizing:border-box;width:100%;min-width:0;margin-right:var(--f7-list-item-cell-margin);flex-shrink:1}.list .item-cell:first-child{margin-right:0}.list li:last-child .list-button:after{display:none!important}.list li:last-child li:last-child>.item-content>.item-inner:after,.list li:last-child li:last-child>.item-inner:after,.list li:last-child li:last-child>.item-link>.item-content>.item-inner:after,.list li:last-child li:last-child>.swipeout-content>.item-content>.item-inner:after,.list li:last-child>.item-content>.item-inner:after,.list li:last-child>.item-inner:after,.list li:last-child>.item-link>.item-content>.item-inner:after,.list li:last-child>.swipeout-content>.item-content>.item-inner:after{display:none!important}.list li li:last-child .item-inner:after,.list li:last-child li .item-inner:after{content:'';position:absolute;background-color:var(--f7-list-item-border-color);display:block;z-index:15;top:auto;right:auto;bottom:0;left:0;height:1px;width:100%;transform-origin:50% 100%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.aurora .list.no-hairlines-aurora ul:after,.aurora .list.no-hairlines-aurora ul:before,.aurora .list.no-hairlines-aurora:after,.aurora .list.no-hairlines-aurora:before,.ios .list.no-hairlines-ios ul:after,.ios .list.no-hairlines-ios ul:before,.ios .list.no-hairlines-ios:after,.ios .list.no-hairlines-ios:before,.list.no-hairlines ul:after,.list.no-hairlines ul:before,.list.no-hairlines:after,.list.no-hairlines:before,.md .list.no-hairlines-md ul:after,.md .list.no-hairlines-md ul:before,.md .list.no-hairlines-md:after,.md .list.no-hairlines-md:before{display:none!important}.aurora .list.no-hairline-top-aurora ul:before,.aurora .list.no-hairline-top-aurora:before,.ios .list.no-hairline-top-ios ul:before,.ios .list.no-hairline-top-ios:before,.list.no-hairline-top ul:before,.list.no-hairline-top:before,.md .list.no-hairline-top-md ul:before,.md .list.no-hairline-top-md:before{display:none!important}.aurora .list.no-hairline-bottom-aurora ul:after,.aurora .list.no-hairline-bottom-aurora:after,.ios .list.no-hairline-bottom-ios ul:after,.ios .list.no-hairline-bottom-ios:after,.list.no-hairline-bottom ul:after,.list.no-hairline-bottom:after,.md .list.no-hairline-bottom-md ul:after,.md .list.no-hairline-bottom-md:after{display:none!important}.aurora .list.no-hairlines-between-aurora .item-divider:after,.aurora .list.no-hairlines-between-aurora .item-inner:after,.aurora .list.no-hairlines-between-aurora .list-button:after,.aurora .list.no-hairlines-between-aurora .list-group-title:after,.ios .list.no-hairlines-between-ios .item-divider:after,.ios .list.no-hairlines-between-ios .item-inner:after,.ios .list.no-hairlines-between-ios .list-button:after,.ios .list.no-hairlines-between-ios .list-group-title:after,.list.no-hairlines-between .item-divider:after,.list.no-hairlines-between .item-inner:after,.list.no-hairlines-between .list-button:after,.list.no-hairlines-between .list-group-title:after,.md .list.no-hairlines-between-md .item-divider:after,.md .list.no-hairlines-between-md .item-inner:after,.md .list.no-hairlines-between-md .list-button:after,.md .list.no-hairlines-between-md .list-group-title:after{display:none!important}.aurora .list.no-hairlines-between-aurora.simple-list li:after,.ios .list.no-hairlines-between-ios.simple-list li:after,.list.no-hairlines-between.simple-list li:after,.md .list.no-hairlines-between-md.simple-list li:after{display:none!important}.aurora .list.no-hairlines-between-aurora.links-list a:after,.ios .list.no-hairlines-between-ios.links-list a:after,.list.no-hairlines-between.links-list a:after,.md .list.no-hairlines-between-md.links-list a:after{display:none!important}.list-button{padding:0 var(--f7-list-item-padding-horizontal);line-height:var(--f7-list-item-min-height);color:var(--f7-list-button-text-color,var(--f7-theme-color));font-size:var(--f7-list-button-font-size);font-weight:var(--f7-list-button-font-weight);text-align:var(--f7-list-button-text-align)}.list-button:after{content:'';position:absolute;background-color:var(--f7-list-button-border-color);display:block;z-index:15;top:auto;right:auto;bottom:0;left:0;height:1px;width:100%;transform-origin:50% 100%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.list-button.active-state{background-color:var(--f7-list-button-pressed-bg-color)}.list-button[class*=color-]{--f7-list-button-text-color:var(--f7-theme-color)}.simple-list li{position:relative;white-space:nowrap;text-overflow:ellipsis;max-width:100%;box-sizing:border-box;display:flex;justify-content:space-between;align-items:center;align-content:center;line-height:var(--f7-list-item-min-height);height:var(--f7-list-item-min-height);padding-left:calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-left));padding-right:calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-right))}.simple-list li:after{left:var(--f7-list-item-padding-horizontal);right:0;width:auto;right:calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-right));left:0}.simple-list li:last-child:after{display:none!important}.links-list li{z-index:1}.links-list a{transition-duration:.3s;transition-property:background-color;display:block;position:relative;overflow:hidden;display:flex;align-items:center;align-content:center;justify-content:space-between;box-sizing:border-box;white-space:nowrap;text-overflow:ellipsis;max-width:100%;height:var(--f7-list-item-min-height);color:inherit}.links-list a .ripple-wave{z-index:0}.links-list a:after{width:auto}.links-list a.active-state{background-color:var(--f7-list-link-pressed-bg-color)}.links-list a{padding-right:calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-right));padding-left:calc(var(--f7-list-chevron-icon-area) + var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-left))}.links-list a:after{right:calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-right));left:0}.links-list li:last-child a:after{display:none!important}.links-list a:after,.list .item-inner:after,.simple-list li:after{content:'';position:absolute;background-color:var(--f7-list-item-border-color);display:block;z-index:15;top:auto;right:auto;bottom:0;left:0;height:1px;width:100%;transform-origin:50% 100%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.media-list,li.media-item{--f7-list-item-padding-vertical:var(--f7-list-media-item-padding-vertical);--f7-list-item-padding-horizontal:var(--f7-list-media-item-padding-horizontal)}.media-list .item-title,li.media-item .item-title{font-weight:var(--f7-list-media-item-title-font-weight,var(--f7-list-item-title-font-weight,inherit))}.media-list .item-inner,li.media-item .item-inner{display:block;align-self:stretch}.media-list .item-media,li.media-item .item-media{align-self:flex-start}.media-list .item-media img,li.media-item .item-media img{display:block}.media-list .item-link .item-inner,li.media-item .item-link .item-inner{padding-left:calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-left))}.media-list .item-link .item-title-row,li.media-item .item-link .item-title-row{padding-left:calc(var(--f7-list-chevron-icon-area))}.media-list .chevron-center .item-link .item-inner,.media-list .item-link.chevron-center .item-inner,.media-list.chevron-center .item-link .item-inner,li.media-item .chevron-center .item-link .item-inner,li.media-item .item-link.chevron-center .item-inner,li.media-item.chevron-center .item-link .item-inner{padding-left:calc(var(--f7-list-chevron-icon-area) + var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-left))}.media-list .chevron-center .item-title-row,.media-list.chevron-center .item-title-row,li.media-item .chevron-center .item-title-row,li.media-item.chevron-center .item-title-row{padding-left:0}.links-list a:before,.list .item-link .item-inner:before,.media-list .chevron-center .item-link .item-inner:before,.media-list .item-link .item-title-row:before,.media-list .item-link.chevron-center .item-inner:before,.media-list.chevron-center .item-link .item-inner:before,li.media-item .chevron-center .item-link .item-inner:before,li.media-item .item-link .item-title-row:before,li.media-item .item-link.chevron-center .item-inner:before,li.media-item.chevron-center .item-link .item-inner:before{font-family:framework7-core-icons;font-weight:400;font-style:normal;line-height:1;letter-spacing:normal;text-transform:none;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;font-feature-settings:"liga";text-align:center;display:block;width:100%;height:100%;font-size:20px;position:absolute;top:50%;width:8px;height:14px;margin-top:-7px;font-size:var(--f7-list-chevron-icon-font-size);line-height:14px;color:var(--f7-list-chevron-icon-color);pointer-events:none;left:calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-left));content:var(--f7-list-chevron-icon-left)}.media-list .chevron-center .item-title-row:before,.media-list.chevron-center .item-title-row:before,li.media-item .chevron-center .item-title-row:before,li.media-item.chevron-center .item-title-row:before{display:none}.media-list .item-link .item-inner:before,li.media-item .item-link .item-inner:before{display:none}.media-list .item-link .item-title-row:before,li.media-item .item-link .item-title-row:before{left:0}.list-group ul:after,.list-group ul:before{z-index:25!important}.list-group+.list-group ul:before{display:none!important}.item-divider,li.item-divider,li.list-group-title{white-space:nowrap;position:relative;max-width:100%;text-overflow:ellipsis;overflow:hidden;z-index:15;padding-top:0;padding-bottom:0;padding-left:calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-left));padding-right:calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-right));box-sizing:border-box;display:flex;align-items:center;align-content:center}.item-divider:after,li.item-divider:after,li.list-group-title:after{display:none!important}.item-divider,li.item-divider{margin-top:-1px;height:var(--f7-list-item-divider-height);color:var(--f7-list-item-divider-text-color);font-size:var(--f7-list-item-divider-font-size);font-weight:var(--f7-list-item-divider-font-weight);background-color:var(--f7-list-item-divider-bg-color);line-height:var(--f7-list-item-divider-line-height)}.item-divider:before,li.item-divider:before{content:'';position:absolute;background-color:var(--f7-list-item-divider-border-color);display:block;z-index:15;top:0;right:auto;bottom:auto;left:0;height:1px;width:100%;transform-origin:50% 0%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.list li.list-group-title,li.list-group-title{position:relative;position:-webkit-sticky;position:sticky;top:0;margin-top:0;z-index:20;height:var(--f7-list-group-title-height);color:var(--f7-list-group-title-text-color);font-size:var(--f7-list-group-title-font-size);font-weight:var(--f7-list-group-title-font-weight);background-color:var(--f7-list-group-title-bg-color);line-height:var(--f7-list-group-title-line-height)}.page-with-navbar-large .list li.list-group-title,.page-with-navbar-large li.list-group-title{top:calc(-1 * var(--f7-navbar-large-title-height))}.list.inset{margin-left:calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-left));margin-right:calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-right));border-radius:var(--f7-list-inset-border-radius);--f7-safe-area-left:0px;--f7-safe-area-right:0px}.list.inset .block-title{margin-left:0;margin-right:0}.list.inset ul{border-radius:var(--f7-list-inset-border-radius)}.list.inset ul:after,.list.inset ul:before{display:none!important}.list.inset li.swipeout:first-child,.list.inset li:first-child>a{border-radius:var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius) 0 0}.list.inset li.swipeout:last-child,.list.inset li:last-child>a{border-radius:0 0 var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius)}.list.inset li.swipeout:first-child:last-child,.list.inset li:first-child:last-child>a{border-radius:var(--f7-list-inset-border-radius)}@media (min-width:480px){.list.xsmall-inset{margin-left:calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-left));margin-right:calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-right));border-radius:var(--f7-list-inset-border-radius);--f7-safe-area-left:0px;--f7-safe-area-right:0px}.list.xsmall-inset .block-title{margin-left:0;margin-right:0}.list.xsmall-inset ul{border-radius:var(--f7-list-inset-border-radius)}.list.xsmall-inset ul:after,.list.xsmall-inset ul:before{display:none!important}.list.xsmall-inset li:first-child>a{border-radius:var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius) 0 0}.list.xsmall-inset li:last-child>a{border-radius:0 0 var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius)}.list.xsmall-inset li:first-child:last-child>a{border-radius:var(--f7-list-inset-border-radius)}}@media (min-width:568px){.list.small-inset{margin-left:calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-left));margin-right:calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-right));border-radius:var(--f7-list-inset-border-radius);--f7-safe-area-left:0px;--f7-safe-area-right:0px}.list.small-inset .block-title{margin-left:0;margin-right:0}.list.small-inset ul{border-radius:var(--f7-list-inset-border-radius)}.list.small-inset ul:after,.list.small-inset ul:before{display:none!important}.list.small-inset li:first-child>a{border-radius:var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius) 0 0}.list.small-inset li:last-child>a{border-radius:0 0 var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius)}.list.small-inset li:first-child:last-child>a{border-radius:var(--f7-list-inset-border-radius)}}@media (min-width:768px){.list.medium-inset{margin-left:calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-left));margin-right:calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-right));border-radius:var(--f7-list-inset-border-radius);--f7-safe-area-left:0px;--f7-safe-area-right:0px}.list.medium-inset .block-title{margin-left:0;margin-right:0}.list.medium-inset ul{border-radius:var(--f7-list-inset-border-radius)}.list.medium-inset ul:after,.list.medium-inset ul:before{display:none!important}.list.medium-inset li:first-child>a{border-radius:var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius) 0 0}.list.medium-inset li:last-child>a{border-radius:0 0 var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius)}.list.medium-inset li:first-child:last-child>a{border-radius:var(--f7-list-inset-border-radius)}}@media (min-width:1024px){.list.large-inset{margin-left:calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-left));margin-right:calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-right));border-radius:var(--f7-list-inset-border-radius);--f7-safe-area-left:0px;--f7-safe-area-right:0px}.list.large-inset .block-title{margin-left:0;margin-right:0}.list.large-inset ul{border-radius:var(--f7-list-inset-border-radius)}.list.large-inset ul:after,.list.large-inset ul:before{display:none!important}.list.large-inset li:first-child>a{border-radius:var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius) 0 0}.list.large-inset li:last-child>a{border-radius:0 0 var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius)}.list.large-inset li:first-child:last-child>a{border-radius:var(--f7-list-inset-border-radius)}}@media (min-width:1200px){.list.xlarge-inset{margin-left:calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-left));margin-right:calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-right));border-radius:var(--f7-list-inset-border-radius);--f7-safe-area-left:0px;--f7-safe-area-right:0px}.list.xlarge-inset .block-title{margin-left:0;margin-right:0}.list.xlarge-inset ul{border-radius:var(--f7-list-inset-border-radius)}.list.xlarge-inset ul:after,.list.xlarge-inset ul:before{display:none!important}.list.xlarge-inset li:first-child>a{border-radius:var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius) 0 0}.list.xlarge-inset li:last-child>a{border-radius:0 0 var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius)}.list.xlarge-inset li:first-child:last-child>a{border-radius:var(--f7-list-inset-border-radius)}}.list .no-chevron,.list.no-chevron{--f7-list-chevron-icon-color:transparent;--f7-list-chevron-icon-area:0px}.ios .item-link.active-state .item-inner:after,.ios .links-list a.active-state:after,.ios .list-button.active-state:after{background-color:transparent}.ios .links-list a.active-state,.ios .list .item-link.active-state,.ios .list .list-button.active-state{transition-duration:0s}.md .list .item-media{min-width:40px}.aurora .list .item-media{min-width:18px}.aurora .links-list a,.aurora .list .item-link,.aurora .list .list-button{transition-duration:0s}.aurora.device-desktop .links-list a:hover:not(.active-state):not(.no-hover),.aurora.device-desktop .list .item-link:hover:not(.active-state):not(.no-hover){background:var(--f7-list-link-hover-bg-color)}.aurora.device-desktop .list .list-button:hover:not(.active-state):not(.no-hover){background:var(--f7-list-button-hover-bg-color)}:root{--f7-badge-text-color:#fff;--f7-badge-bg-color:#8e8e93;--f7-badge-padding:0 4px;--f7-badge-in-icon-size:16px;--f7-badge-in-icon-font-size:10px;--f7-badge-font-weight:normal;--f7-badge-font-size:12px}.ios{--f7-badge-size:20px}.md{--f7-badge-size:18px}.aurora{--f7-badge-size:18px;--f7-badge-font-weight:600;--f7-badge-in-icon-size:15px}.badge{display:inline-flex;align-items:center;align-content:center;justify-content:center;color:var(--f7-badge-text-color);background:var(--f7-badge-bg-color);position:relative;box-sizing:border-box;text-align:center;vertical-align:middle;font-weight:var(--f7-badge-font-weight);font-size:var(--f7-badge-font-size);border-radius:var(--f7-badge-size);padding:var(--f7-badge-padding);height:var(--f7-badge-size);min-width:var(--f7-badge-size)}.f7-icons .badge,.framework7-icons .badge,.icon .badge,.material-icons .badge{position:absolute;left:100%;margin-left:-10px;top:-2px;font-family:var(--f7-font-family);--f7-badge-font-size:var(--f7-badge-in-icon-font-size);--f7-badge-size:var(--f7-badge-in-icon-size)}.badge[class*=color-]{--f7-badge-bg-color:var(--f7-theme-color)}:root{--f7-button-min-width:32px;--f7-button-bg-color:transparent;--f7-button-border-width:0px;--f7-button-outline-border-width:2px;--f7-button-raised-box-shadow:0 1px 3px rgba(0, 0, 0, 0.12),0 1px 2px rgba(0,0,0,0.24);--f7-button-raised-pressed-box-shadow:0 3px 6px rgba(0, 0, 0, 0.16),0 3px 6px rgba(0,0,0,0.23);--f7-segmented-raised-divider-color:rgba(0, 0, 0, 0.1);--f7-segmented-strong-padding:2px;--f7-segmented-strong-between-buttons:4px;--f7-segmented-strong-button-font-weight:500;--f7-segmented-strong-button-active-box-shadow:0px 2px 2px rgba(0, 0, 0, 0.25);--f7-segmented-strong-bg-color:rgba(0, 0, 0, 0.07);--f7-segmented-strong-button-text-color:#000;--f7-segmented-strong-button-pressed-bg-color:rgba(0, 0, 0, 0.07);--f7-segmented-strong-button-hover-bg-color:rgba(0, 0, 0, 0.04);--f7-segmented-strong-button-active-text-color:#000;--f7-segmented-strong-button-active-bg-color:#fff}:root .theme-dark,:root.theme-dark{--f7-segmented-strong-bg-color:rgba(255, 255, 255, 0.1);--f7-segmented-strong-button-pressed-bg-color:rgba(255, 255, 255, 0.04);--f7-segmented-strong-button-hover-bg-color:rgba(255, 255, 255, 0.02);--f7-segmented-strong-button-active-bg-color:rgba(255, 255, 255, 0.14);--f7-segmented-strong-button-text-color:#fff;--f7-segmented-strong-button-active-text-color:#fff}.ios{--f7-button-font-size:13px;--f7-button-height:28px;--f7-button-padding-horizontal:10px;--f7-button-border-radius:5px;--f7-button-font-weight:600;--f7-button-letter-spacing:0;--f7-button-text-transform:uppercase;--f7-button-large-height:44px;--f7-button-large-font-size:17px;--f7-button-large-font-weight:500;--f7-button-large-text-transform:none;--f7-button-small-height:26px;--f7-button-small-font-size:13px;--f7-button-small-font-weight:600;--f7-button-small-text-transform:uppercase;--f7-button-small-outline-border-width:2px;--f7-segmented-strong-button-text-transform:none;--f7-segmented-strong-button-active-font-weight:600}.md{--f7-button-font-size:14px;--f7-button-height:36px;--f7-button-padding-horizontal:8px;--f7-button-border-radius:4px;--f7-button-font-weight:500;--f7-button-letter-spacing:0.03em;--f7-button-text-transform:uppercase;--f7-button-large-height:48px;--f7-button-large-font-size:14px;--f7-button-large-font-weight:500;--f7-button-large-text-transform:uppercase;--f7-button-small-height:28px;--f7-button-small-font-size:12px;--f7-button-small-font-weight:500;--f7-button-small-text-transform:uppercase;--f7-button-small-outline-border-width:2px;--f7-segmented-strong-button-text-transform:uppercase;--f7-segmented-strong-button-active-font-weight:500;--f7-button-pressed-bg-color:rgba(0, 0, 0, 0.1)}.md .theme-dark,.md.theme-dark{--f7-button-pressed-bg-color:rgba(255, 255, 255, 0.1)}.aurora{--f7-button-font-size:14px;--f7-button-height:28px;--f7-button-min-width:24px;--f7-button-padding-horizontal:10px;--f7-button-border-radius:4px;--f7-button-font-weight:500;--f7-button-letter-spacing:0.02;--f7-button-text-transform:none;--f7-button-large-height:34px;--f7-button-large-font-size:14px;--f7-button-large-font-weight:600;--f7-button-large-text-transform:none;--f7-button-small-height:24px;--f7-button-small-font-size:12px;--f7-button-small-font-weight:600;--f7-button-small-text-transform:none;--f7-button-small-outline-border-width:1px;--f7-segmented-strong-button-text-transform:none;--f7-segmented-strong-button-active-font-weight:600}button{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%}.button{text-decoration:none;text-align:center;display:block;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:0 0;margin:0;white-space:nowrap;text-overflow:ellipsis;position:relative;overflow:hidden;font-family:inherit;cursor:pointer;outline:0;box-sizing:border-box;vertical-align:middle;justify-content:center;align-items:center;border:var(--f7-button-border-width,0px) solid var(--f7-button-border-color,var(--f7-theme-color));font-size:var(--f7-button-font-size);color:var(--f7-button-text-color,var(--f7-theme-color));height:var(--f7-button-height);line-height:calc(var(--f7-button-height) - var(--f7-button-border-width,0) * 2);padding:var(--f7-button-padding-vertical,0px) var(--f7-button-padding-horizontal);border-radius:var(--f7-button-border-radius);min-width:var(--f7-button-min-width);font-weight:var(--f7-button-font-weight);letter-spacing:var(--f7-button-letter-spacing);text-transform:var(--f7-button-text-transform);background-color:var(--f7-button-bg-color);box-shadow:var(--f7-button-box-shadow)}.button.active-state{background-color:var(--f7-button-pressed-bg-color,rgba(var(--f7-theme-color-rgb),.15));color:var(--f7-button-pressed-text-color,var(--f7-button-text-color,var(--f7-theme-color)))}input[type=button].button,input[type=submit].button{width:100%}.button>i+i,.button>i+span,.button>span+i,.button>span+span{margin-right:4px}.appbar .button,.navbar .button,.searchbar .button,.subnavbar .button,.toolbar .button{color:var(--f7-button-text-color,var(--f7-theme-color))}.aurora .button-round-aurora,.button-round,.ios .button-round-ios,.md .button-round-md{--f7-button-border-radius:var(--f7-button-height)}.aurora .button-fill-aurora,.button-active,.button-fill,.button.tab-link-active,.ios .button-fill-ios,.md .button-fill-md{--f7-button-bg-color:var(--f7-button-fill-bg-color, var(--f7-theme-color));--f7-button-text-color:var(--f7-button-fill-text-color, #fff);--f7-touch-ripple-color:var(--f7-touch-ripple-white)}.aurora .button-fill-aurora,.button-fill,.ios .button-fill-ios,.md .button-fill-md{--f7-button-pressed-bg-color:var(--f7-button-fill-pressed-bg-color)}.button-active,.button.tab-link-active{--f7-button-pressed-bg-color:var(--f7-button-bg-color)}.aurora .button-outline-aurora,.button-outline,.ios .button-outline-ios,.md .button-outline-md{--f7-button-border-color:var(--f7-button-outline-border-color, var(--f7-theme-color));--f7-button-border-width:var(--f7-button-outline-border-width)}.aurora .button-large-aurora,.button-large,.ios .button-large-ios,.md .button-large-md{--f7-button-height:var(--f7-button-large-height);--f7-button-font-size:var(--f7-button-large-font-size);--f7-button-font-weight:var(--f7-button-large-font-weight);--f7-button-text-transform:var(--f7-button-large-text-transform)}.aurora .button-small-aurora,.button-small,.ios .button-small-ios,.md .button-small-md{--f7-button-outline-border-width:var(--f7-button-small-outline-border-width);--f7-button-height:var(--f7-button-small-height);--f7-button-font-size:var(--f7-button-small-font-size);--f7-button-font-weight:var(--f7-button-small-font-weight);--f7-button-text-transform:var(--f7-button-small-text-transform)}.ios .button-small-ios.button-fill,.ios .button-small.button-fill,.ios .button-small.button-fill-ios{--f7-button-border-width:var(--f7-button-small-outline-border-width);--f7-button-pressed-text-color:var(--f7-theme-color);--f7-button-pressed-bg-color:transparent}.segmented{align-self:center;display:flex;flex-wrap:nowrap;border-radius:var(--f7-button-border-radius);box-shadow:var(--f7-button-box-shadow);box-sizing:border-box}.segmented .button,.segmented button{width:100%;flex-shrink:1;min-width:0;border-radius:0}.segmented .button:first-child{border-radius:0 var(--f7-button-border-radius) var(--f7-button-border-radius) 0}.segmented .button:not(.button-outline):first-child{border-right:none}.segmented .button.button-outline:nth-child(n+2){border-right:none}.segmented .button:last-child{border-radius:var(--f7-button-border-radius) 0 0 var(--f7-button-border-radius)}.segmented .button-round:first-child{border-radius:0 var(--f7-button-height) var(--f7-button-height) 0}.segmented .button-round:last-child{border-radius:var(--f7-button-height) 0 0 var(--f7-button-height)}.segmented .button:first-child:last-child{border-radius:var(--f7-button-border-radius)}.aurora .segmented-raised-aurora,.ios .segmented-raised-ios,.md .segmented-raised-md,.segmented-raised{box-shadow:var(--f7-button-raised-box-shadow)}.aurora .segmented-raised-aurora .button:not(.button-outline),.ios .segmented-raised-ios .button:not(.button-outline),.md .segmented-raised-md .button:not(.button-outline),.segmented-raised .button:not(.button-outline){border-right:1px solid var(--f7-segmented-raised-divider-color)}.aurora .button-raised-aurora,.button-raised,.ios .button-raised-ios,.md .button-raised-md{--f7-button-box-shadow:var(--f7-button-raised-box-shadow)}.aurora .button-raised-aurora.active-state,.button-raised.active-state,.ios .button-raised-ios.active-state,.md .button-raised-md.active-state{--f7-button-box-shadow:var(--f7-button-raised-pressed-box-shadow)}.aurora .segmented-strong-aurora,.ios .segmented-strong-ios,.md .segmented-strong-md,.segmented-strong{--f7-button-bg-color:transparent;--f7-button-hover-bg-color:var(--f7-segmented-strong-button-hover-bg-color);--f7-button-text-color:var(--f7-segmented-strong-button-text-color);--f7-button-font-weight:var(--f7-segmented-strong-button-font-weight);--f7-button-text-transform:var(--f7-segmented-strong-button-text-transform);--f7-button-pressed-bg-color:var(--f7-segmented-strong-button-pressed-bg-color);position:relative;background:var(--f7-segmented-strong-bg-color);border-radius:calc(var(--f7-button-border-radius) + 2px);box-shadow:none;padding:var(--f7-segmented-strong-padding);overflow:hidden}.aurora .segmented-strong-aurora .button,.ios .segmented-strong-ios .button,.md .segmented-strong-md .button,.segmented-strong .button{z-index:1;transform:translate3d(0,0,0)}.aurora .segmented-strong-aurora .button,.aurora .segmented-strong-aurora .button:first-child,.aurora .segmented-strong-aurora .button:last-child,.ios .segmented-strong-ios .button,.ios .segmented-strong-ios .button:first-child,.ios .segmented-strong-ios .button:last-child,.md .segmented-strong-md .button,.md .segmented-strong-md .button:first-child,.md .segmented-strong-md .button:last-child,.segmented-strong .button,.segmented-strong .button:first-child,.segmented-strong .button:last-child{border-radius:var(--f7-button-border-radius)}.aurora .segmented-strong-aurora .button+.button,.ios .segmented-strong-ios .button+.button,.md .segmented-strong-md .button+.button,.segmented-strong .button+.button{margin-right:var(--f7-segmented-strong-between-buttons)}.aurora .segmented-strong-aurora .button.button-active,.aurora .segmented-strong-aurora .button.tab-link-active,.ios .segmented-strong-ios .button.button-active,.ios .segmented-strong-ios .button.tab-link-active,.md .segmented-strong-md .button.button-active,.md .segmented-strong-md .button.tab-link-active,.segmented-strong .button.button-active,.segmented-strong .button.tab-link-active{--f7-button-hover-bg-color:transparent;--f7-button-bg-color:transparent;--f7-button-text-color:var(--f7-segmented-strong-button-active-text-color);--f7-button-font-weight:var(--f7-segmented-strong-button-active-font-weight)}.aurora .segmented-strong-aurora .segmented-highlight,.ios .segmented-strong-ios .segmented-highlight,.md .segmented-strong-md .segmented-highlight,.segmented-strong .segmented-highlight{--f7-segmented-highlight-num:1;--f7-segmented-highlight-active:0;--f7-segmented-highlight-padding:calc(var(--f7-segmented-strong-padding) * 2);--f7-segmented-highlight-between:var(--f7-segmented-strong-between-buttons);--f7-segmented-highlight-width:calc((100% - var(--f7-segmented-highlight-padding) - var(--f7-segmented-highlight-between) * (var(--f7-segmented-highlight-num) - 1)) / var(--f7-segmented-highlight-num));position:absolute;background-color:var(--f7-segmented-strong-button-active-bg-color);border-radius:var(--f7-button-border-radius);box-shadow:var(--f7-segmented-strong-button-active-box-shadow);left:var(--f7-segmented-strong-padding);top:var(--f7-segmented-strong-padding);height:calc(100% - var(--f7-segmented-strong-padding) * 2);width:var(--f7-segmented-highlight-width);z-index:0;transform:translateX(calc(var(--f7-segmented-highlight-active) * 100% + var(--f7-segmented-highlight-active) * var(--f7-segmented-highlight-between)));transition:.2s}.button:nth-child(2)~.segmented-highlight{--f7-segmented-highlight-num:2}.button:nth-child(3)~.segmented-highlight{--f7-segmented-highlight-num:3}.button:nth-child(4)~.segmented-highlight{--f7-segmented-highlight-num:4}.button:nth-child(5)~.segmented-highlight{--f7-segmented-highlight-num:5}.button:nth-child(6)~.segmented-highlight{--f7-segmented-highlight-num:6}.button:nth-child(7)~.segmented-highlight{--f7-segmented-highlight-num:7}.button:nth-child(8)~.segmented-highlight{--f7-segmented-highlight-num:8}.button:nth-child(9)~.segmented-highlight{--f7-segmented-highlight-num:9}.button:nth-child(10)~.segmented-highlight{--f7-segmented-highlight-num:10}.button-active:nth-child(2)~.segmented-highlight,.tab-link-active:nth-child(2)~.segmented-highlight{--f7-segmented-highlight-active:1}.button-active:nth-child(3)~.segmented-highlight,.tab-link-active:nth-child(3)~.segmented-highlight{--f7-segmented-highlight-active:2}.button-active:nth-child(4)~.segmented-highlight,.tab-link-active:nth-child(4)~.segmented-highlight{--f7-segmented-highlight-active:3}.button-active:nth-child(5)~.segmented-highlight,.tab-link-active:nth-child(5)~.segmented-highlight{--f7-segmented-highlight-active:4}.button-active:nth-child(6)~.segmented-highlight,.tab-link-active:nth-child(6)~.segmented-highlight{--f7-segmented-highlight-active:5}.button-active:nth-child(7)~.segmented-highlight,.tab-link-active:nth-child(7)~.segmented-highlight{--f7-segmented-highlight-active:6}.button-active:nth-child(8)~.segmented-highlight,.tab-link-active:nth-child(8)~.segmented-highlight{--f7-segmented-highlight-active:7}.button-active:nth-child(9)~.segmented-highlight,.tab-link-active:nth-child(9)~.segmented-highlight{--f7-segmented-highlight-active:8}.button-active:nth-child(10)~.segmented-highlight,.tab-link-active:nth-child(10)~.segmented-highlight{--f7-segmented-highlight-active:9}.aurora .segmented-round-aurora,.ios .segmented-round-ios,.md .segmented-round-md,.segmented-round{border-radius:var(--f7-button-height)}.aurora .segmented-round-aurora .segmented-highlight,.ios .segmented-round-ios .segmented-highlight,.md .segmented-round-md .segmented-highlight,.segmented-round .segmented-highlight{border-radius:var(--f7-button-height)}.subnavbar .segmented{width:100%}.ios .button{transition-duration:.1s}.ios .button-fill,.ios .button-fill-ios{--f7-button-pressed-bg-color:var(--f7-button-fill-pressed-bg-color, var(--f7-theme-color-tint))}.ios .button-small,.ios .button-small-ios{transition-duration:.2s}.md .button{transition-duration:.3s;transform:translate3d(0,0,0)}.md .button-fill,.md .button-fill-md{--f7-button-pressed-bg-color:var(--f7-button-fill-pressed-bg-color, var(--f7-theme-color-shade))}.aurora .button{transition-duration:.1s;transform:translate3d(0,0,0)}.aurora.device-desktop .button:not(.active-state):not(.no-hover):hover{background-color:var(--f7-button-hover-bg-color,rgba(var(--f7-theme-color-rgb),.07))}.aurora .button-fill,.aurora .button-fill-aurora{--f7-button-pressed-bg-color:var(--f7-button-fill-pressed-bg-color, var(--f7-theme-color-shade))}.aurora .button-active,.aurora .button-fill,.aurora .button-fill-aurora,.aurora .button.tab-link-active{--f7-button-hover-bg-color:var(--f7-button-fill-hover-bg-color, var(--f7-theme-color-tint))}:root{--f7-touch-ripple-black:rgba(0, 0, 0, 0.1);--f7-touch-ripple-white:rgba(255, 255, 255, 0.3);--f7-touch-ripple-color:var(--f7-touch-ripple-black)}.theme-dark{--f7-touch-ripple-color:var(--f7-touch-ripple-white)}.actions-button,.button,.checkbox,.dialog-button,.fab a,.item-link,.link,.list-button,.radio,.ripple,.speed-dial-buttons a,.tab-link{-webkit-user-select:none;-moz-user-select:none;user-select:none}.ripple-wave{left:0;top:0;position:absolute!important;border-radius:50%;pointer-events:none;z-index:-1;padding:0;margin:0;font-size:0;transform:translate3d(0px,0px,0) scale(0);transition-duration:1.4s;background-color:var(--f7-touch-ripple-color)}.ripple-wave.ripple-wave-fill{transition-duration:.3s;opacity:.35}.ripple-wave.ripple-wave-out{transition-duration:.6s;opacity:0}.button-fill .ripple-wave,.menu .ripple-wave,.picker-calendar-day .ripple-wave{z-index:1}.checkbox .ripple-wave,.data-table .sortable-cell .ripple-wave,.radio .ripple-wave{z-index:0}[class*=ripple-color-]{--f7-touch-ripple-color:var(--f7-theme-color-ripple-color)}.f7-icons,.material-icons{width:1em;height:1em}i.icon{display:inline-block;vertical-align:middle;background-size:100% auto;background-position:center;background-repeat:no-repeat;font-style:normal;position:relative}.icon-back:after,.icon-forward:after,.icon-next:after,.icon-prev:after{font-family:framework7-core-icons;font-weight:400;font-style:normal;line-height:1;letter-spacing:normal;text-transform:none;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;font-feature-settings:"liga";text-align:center;display:block;width:100%;height:100%;font-size:20px}.icon[class*=color-]{color:var(--f7-theme-color)}.ios .icon-back,.ios .icon-forward,.ios .icon-next,.ios .icon-prev{width:12px;height:20px;line-height:20px}.ios .icon-back:after,.ios .icon-forward:after,.ios .icon-next:after,.ios .icon-prev:after{line-height:inherit}.ios .icon-next:after,.ios .icon-prev:after{font-size:16px}.ios .icon-back:after,.ios .icon-prev:after{content:'chevron_right_ios'}.ios .icon-forward:after,.ios .icon-next:after{content:'chevron_left_ios'}.md .icon-back,.md .icon-forward,.md .icon-next,.md .icon-prev{width:24px;height:24px}.md .icon-back:after,.md .icon-forward:after,.md .icon-next:after,.md .icon-prev:after{line-height:1.2}.md .icon-back:after{content:'arrow_right_md'}.md .icon-forward:after{content:'arrow_left_md'}.md .icon-next:after{content:'chevron_left_md'}.md .icon-prev:after{content:'chevron_right_md'}.aurora .f7-icons,.aurora .material-icons{font-size:18px}.aurora .icon-back,.aurora .icon-forward,.aurora .icon-next,.aurora .icon-prev{width:9px;height:14px;line-height:14px}.aurora .icon-back:after,.aurora .icon-forward:after,.aurora .icon-next:after,.aurora .icon-prev:after{line-height:inherit}.aurora .icon-back:after,.aurora .icon-prev:after{content:'chevron_right_aurora'}.aurora .icon-forward:after,.aurora .icon-next:after{content:'chevron_left_aurora'}.custom-modal-backdrop{z-index:10500}.actions-backdrop,.custom-modal-backdrop,.dialog-backdrop,.fab-backdrop,.popover-backdrop,.popup-backdrop,.preloader-backdrop,.sheet-backdrop{position:absolute;left:0;top:0;width:100%;height:100%;background:rgba(0,0,0,.4);z-index:13000;visibility:hidden;opacity:0;transition-duration:.4s}.actions-backdrop.not-animated,.custom-modal-backdrop.not-animated,.dialog-backdrop.not-animated,.fab-backdrop.not-animated,.popover-backdrop.not-animated,.popup-backdrop.not-animated,.preloader-backdrop.not-animated,.sheet-backdrop.not-animated{transition-duration:0s}.actions-backdrop.backdrop-in,.custom-modal-backdrop.backdrop-in,.dialog-backdrop.backdrop-in,.fab-backdrop.backdrop-in,.popover-backdrop.backdrop-in,.popup-backdrop.backdrop-in,.preloader-backdrop.backdrop-in,.sheet-backdrop.backdrop-in{visibility:visible;opacity:1}:root{--f7-appbar-shadow-image:none}.ios{--f7-appbar-height:44px;--f7-appbar-inner-padding-left:8px;--f7-appbar-inner-padding-right:8px}.md{--f7-appbar-height:48px;--f7-appbar-inner-padding-left:16px;--f7-appbar-inner-padding-right:16px}.aurora{--f7-appbar-height:38px;--f7-appbar-inner-padding-left:16px;--f7-appbar-inner-padding-right:16px}.appbar{position:relative;left:0;top:0;width:100%;z-index:500;-webkit-backface-visibility:hidden;backface-visibility:hidden;box-sizing:border-box;margin:0;transform:translate3d(0,0,0);height:calc(var(--f7-appbar-height) + var(--f7-safe-area-top));background-image:var(--f7-appbar-bg-image,var(--f7-bars-bg-image));background-color:var(--f7-appbar-bg-color,var(--f7-bars-bg-color));color:var(--f7-appbar-text-color,var(--f7-bars-text-color));font-size:var(--f7-appbar-font-size);z-index:7000}@supports ((-webkit-backdrop-filter:blur(20px)) or (backdrop-filter:blur(20px))){.ios-translucent-bars .appbar{background-color:rgba(var(--f7-appbar-bg-color-rgb,var(--f7-bars-bg-color-rgb)),var(--f7-bars-translucent-opacity));-webkit-backdrop-filter:saturate(180%) blur(var(--f7-bars-translucent-blur));backdrop-filter:saturate(180%) blur(var(--f7-bars-translucent-blur))}}.appbar .panel~.appbar{z-index:5500}.appbar a{color:var(--f7-appbar-link-color,var(--f7-bars-link-color,var(--f7-theme-color)))}.appbar a.link{display:flex;justify-content:flex-start;line-height:var(--f7-appbar-link-line-height,var(--f7-appbar-height));height:var(--f7-appbar-link-height,var(--f7-appbar-height))}.appbar .center,.appbar .left,.appbar .right{display:flex;align-items:center}.appbar.no-border:after,.appbar.no-hairline:after{display:none!important}.appbar.no-border .title-large:after,.appbar.no-hairline .title-large:after{display:none!important}.appbar.no-shadow:before{display:none!important}.appbar:after,.appbar:before{-webkit-backface-visibility:hidden;backface-visibility:hidden}.appbar:after{content:'';position:absolute;background-color:var(--f7-appbar-border-color,var(--f7-bars-border-color));display:block;z-index:15;top:auto;right:auto;bottom:0;left:0;height:1px;width:100%;transform-origin:50% 100%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.appbar:before{content:'';position:absolute;right:0;width:100%;top:100%;bottom:auto;height:8px;pointer-events:none;background:var(--f7-appbar-shadow-image)}.appbar:after{z-index:1}.appbar~*{--f7-appbar-app-offset:calc(var(--f7-appbar-height) + var(--f7-appbar-extra-offset, 0px) + var(--f7-safe-area-top))}.appbar~.appbar,.appbar~.view,.appbar~.views{--f7-safe-area-top:0px}.appbar~.panel .page,.appbar~.panel .page-content,.appbar~.panel .view{--f7-safe-area-top:0px}.appbar-inner{position:absolute;left:0;top:var(--f7-safe-area-top);width:100%;height:var(--f7-appbar-height);display:flex;align-items:center;justify-content:space-between;box-sizing:border-box;padding:0 calc(var(--f7-appbar-inner-padding-right) + var(--f7-safe-area-right)) 0 calc(var(--f7-appbar-inner-padding-left) + var(--f7-safe-area-left))}.appbar-inner.stacked{display:none}:root{--f7-dialog-button-text-color:var(--f7-theme-color);--f7-dialog-button-text-align:center;--f7-dialog-input-bg-color:#fff}:root .theme-dark,:root.theme-dark{--f7-dialog-text-color:#fff}.ios{--f7-dialog-box-shadow:none;--f7-dialog-width:270px;--f7-dialog-inner-padding:16px;--f7-dialog-border-radius:13px;--f7-dialog-text-align:center;--f7-dialog-font-size:14px;--f7-dialog-title-text-color:inherit;--f7-dialog-title-font-size:18px;--f7-dialog-title-font-weight:600;--f7-dialog-title-line-height:inherit;--f7-dialog-button-font-size:17px;--f7-dialog-button-height:44px;--f7-dialog-button-letter-spacing:0;--f7-dialog-button-font-weight:400;--f7-dialog-button-text-transform:none;--f7-dialog-input-border-radius:4px;--f7-dialog-input-font-size:14px;--f7-dialog-input-height:32px;--f7-dialog-input-border-width:1px;--f7-dialog-input-placeholder-color:#a9a9a9;--f7-dialog-preloader-size:34px;--f7-dialog-bg-color:rgba(255, 255, 255, 0.95);--f7-dialog-bg-color-rgb:255,255,255;--f7-dialog-text-color:#000;--f7-dialog-button-pressed-bg-color:rgba(0, 0, 0, 0.1);--f7-dialog-input-border-color:rgba(0, 0, 0, 0.3);--f7-dialog-border-divider-color:rgba(0, 0, 0, 0.2)}.ios .theme-dark,.ios.theme-dark{--f7-dialog-bg-color:rgba(45, 45, 45, 0.95);--f7-dialog-bg-color-rgb:45,45,45;--f7-dialog-button-pressed-bg-color:rgba(0, 0, 0, 0.2);--f7-dialog-border-divider-color:rgba(255, 255, 255, 0.15);--f7-dialog-input-border-color:rgba(255, 255, 255, 0.15);--f7-dialog-input-bg-color:rgba(0, 0, 0, 0.5)}.md{--f7-dialog-box-shadow:var(--f7-elevation-24);--f7-dialog-width:280px;--f7-dialog-inner-padding:24px;--f7-dialog-border-radius:4px;--f7-dialog-text-align:right;--f7-dialog-font-size:16px;--f7-dialog-title-font-size:20px;--f7-dialog-title-font-weight:500;--f7-dialog-title-line-height:1.3;--f7-dialog-button-font-size:14px;--f7-dialog-button-height:36px;--f7-dialog-button-letter-spacing:0.03em;--f7-dialog-button-font-weight:500;--f7-dialog-button-text-transform:uppercase;--f7-dialog-input-border-radius:0px;--f7-dialog-input-font-size:16px;--f7-dialog-input-height:36px;--f7-dialog-input-border-color:transparent;--f7-dialog-input-border-width:0px;--f7-dialog-preloader-size:32px;--f7-dialog-bg-color:#fff;--f7-dialog-text-color:rgba(0, 0, 0, 0.54);--f7-dialog-title-text-color:#212121;--f7-dialog-button-pressed-bg-color:rgba(0, 0, 0, 0.1);--f7-dialog-input-placeholder-color:rgba(0, 0, 0, 0.35)}.md .theme-dark,.md.theme-dark{--f7-dialog-bg-color:#1c1c1d;--f7-dialog-title-text-color:#fff;--f7-dialog-button-pressed-bg-color:rgba(255, 255, 255, 0.1);--f7-dialog-input-bg-color:transparent;--f7-dialog-input-placeholder-color:rgba(255, 255, 255, 0.54)}.aurora{--f7-dialog-box-shadow:0 0 20px 0 rgba(0, 0, 0, 0.15),0 25px 30px 0 rgba(0,0,0,0.35);--f7-dialog-width:300px;--f7-dialog-inner-padding:20px;--f7-dialog-border-radius:4px;--f7-dialog-text-align:right;--f7-dialog-font-size:14px;--f7-dialog-title-font-size:14px;--f7-dialog-title-font-weight:700;--f7-dialog-title-line-height:inherit;--f7-dialog-button-font-size:13px;--f7-dialog-button-height:28px;--f7-dialog-button-letter-spacing:0;--f7-dialog-button-font-weight:500;--f7-dialog-button-text-transform:none;--f7-dialog-input-border-radius:4px;--f7-dialog-input-font-size:13px;--f7-dialog-input-height:24px;--f7-dialog-input-border-width:1px;--f7-dialog-preloader-size:24px;--f7-dialog-bg-color:#fff;--f7-dialog-title-text-color:inherit;--f7-dialog-text-color:#000;--f7-dialog-button-text-color:#fff;--f7-dialog-input-border-color:rgba(0, 0, 0, 0.12);--f7-dialog-input-placeholder-color:rgba(0, 0, 0, 0.32)}.aurora .theme-dark,.aurora.theme-dark{--f7-dialog-bg-color:#1c1c1d;--f7-dialog-title-text-color:#fff;--f7-dialog-input-bg-color:rgba(0, 0, 0, 0.25);--f7-dialog-input-placeholder-color:rgba(255, 255, 255, 0.54);--f7-dialog-input-border-color:rgba(255, 255, 255, 0.15)}.dialog{position:absolute;z-index:13500;left:50%;margin-top:0;top:50%;overflow:hidden;opacity:0;transform:translate3d(0,-50%,0) scale(1.185);transition-property:transform,opacity;display:none;transition-duration:.4s;box-shadow:var(--f7-dialog-box-shadow);width:var(--f7-dialog-width);margin-left:calc(-1 * var(--f7-dialog-width)/ 2);border-radius:var(--f7-dialog-border-radius);text-align:var(--f7-dialog-text-align);color:var(--f7-dialog-text-color);font-size:var(--f7-dialog-font-size);background:var(--f7-dialog-bg-color);will-change:transform,opacity}@supports ((-webkit-backdrop-filter:blur(20px)) or (backdrop-filter:blur(20px))){.ios-translucent-modals .dialog{background-color:rgba(var(--f7-dialog-bg-color-rgb),.8);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}}.dialog.modal-in{opacity:1;transform:translate3d(0,-50%,0) scale(1)}.dialog.modal-out{opacity:0;z-index:13499}.dialog.not-animated{transition-duration:0s}.dialog-inner{position:relative;padding:var(--f7-dialog-inner-padding)}.dialog-title{color:var(--f7-dialog-title-text-color);font-size:var(--f7-dialog-title-font-size);font-weight:var(--f7-dialog-title-font-weight);line-height:var(--f7-dialog-title-line-height)}.dialog-buttons{position:relative;display:flex;flex-direction:row-reverse}.dialog-buttons-vertical .dialog-buttons{display:block;height:auto!important}.dialog-button{box-sizing:border-box;overflow:hidden;position:relative;white-space:nowrap;text-overflow:ellipsis;color:var(--f7-dialog-button-text-color);font-size:var(--f7-dialog-button-font-size);height:var(--f7-dialog-button-height);line-height:var(--f7-dialog-button-height);letter-spacing:var(--f7-dialog-button-letter-spacing);text-align:var(--f7-dialog-button-text-align);font-weight:var(--f7-dialog-button-font-weight);text-transform:var(--f7-dialog-button-text-transform);display:block;cursor:pointer}.dialog-button.active-state{background-color:var(--f7-dialog-button-pressed-bg-color)}.dialog-no-buttons .dialog-buttons{display:none}.dialog-input-field{position:relative}input.dialog-input[type]{box-sizing:border-box;margin:0;margin-top:15px;border-radius:var(--f7-dialog-input-border-radius);-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%;display:block;font-family:inherit;box-shadow:none;font-size:var(--f7-dialog-input-font-size);height:var(--f7-dialog-input-height);background-color:var(--f7-dialog-input-bg-color);border:var(--f7-dialog-input-border-width) solid var(--f7-dialog-input-border-color)}input.dialog-input[type]::-webkit-input-placeholder{color:var(--f7-dialog-input-placeholder-color)}input.dialog-input[type]::placeholder{color:var(--f7-dialog-input-placeholder-color)}.dialog-input-double input.dialog-input{border-radius:var(--f7-dialog-input-border-radius) var(--f7-dialog-input-border-radius) 0 0}.dialog-input-double+.dialog-input-double input.dialog-input{border-radius:0 0 var(--f7-dialog-input-border-radius) var(--f7-dialog-input-border-radius)}.dialog-preloader .preloader{--f7-preloader-size:var(--f7-dialog-preloader-size)}html.with-modal-dialog .page-content{overflow:hidden;-webkit-overflow-scrolling:auto}.ios .dialog.modal-out{transform:translate3d(0,-50%,0) scale(1)}.ios .dialog-inner{border-radius:var(--f7-dialog-border-radius) var(--f7-dialog-border-radius) 0 0}.ios .dialog-inner:after{content:'';position:absolute;background-color:var(--f7-dialog-border-divider-color);display:block;z-index:15;top:auto;right:auto;bottom:0;left:0;height:1px;width:100%;transform-origin:50% 100%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.ios .dialog-title+.dialog-text{margin-top:5px}.ios .dialog-buttons{height:44px;justify-content:center}.ios .dialog-button{width:100%;padding:0 5px;-webkit-box-flex:1;-ms-flex:1}.ios .dialog-button:after{content:'';position:absolute;background-color:var(--f7-dialog-border-divider-color);display:block;z-index:15;top:0;right:0;bottom:auto;left:auto;width:1px;height:100%;transform-origin:100% 50%;transform:scaleX(calc(1 / var(--f7-device-pixel-ratio)))}.ios .dialog-button:first-child{border-radius:0 0 0 var(--f7-dialog-border-radius)}.ios .dialog-button:last-child{border-radius:0 0 var(--f7-dialog-border-radius) 0}.ios .dialog-button:last-child:after{display:none!important}.ios .dialog-button:first-child:last-child{border-radius:0 0 var(--f7-dialog-border-radius) var(--f7-dialog-border-radius)}.ios .dialog-button.dialog-button-bold{font-weight:500}.ios .dialog-button[class*=color-]{--f7-dialog-button-text-color:var(--f7-theme-color)}.ios .dialog-buttons-vertical .dialog-buttons{height:auto}.ios .dialog-buttons-vertical .dialog-button{border-radius:0}.ios .dialog-buttons-vertical .dialog-button:after{content:'';position:absolute;background-color:var(--f7-dialog-border-divider-color);display:block;z-index:15;top:auto;right:auto;bottom:0;left:0;height:1px;width:100%;transform-origin:50% 100%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.ios .dialog-buttons-vertical .dialog-button:last-child{border-radius:0 0 var(--f7-dialog-border-radius) var(--f7-dialog-border-radius)}.ios .dialog-buttons-vertical .dialog-button:last-child:after{display:none!important}.ios .dialog-no-buttons .dialog-inner{border-radius:var(--f7-dialog-border-radius)}.ios .dialog-no-buttons .dialog-inner:after{display:none!important}.ios .dialog-input-field{margin-top:15px}.ios .dialog-input{padding:0 5px}.ios .dialog-input+.dialog-input{margin-top:5px}.ios .dialog-input-double+.dialog-input-double{margin-top:0}.ios .dialog-input-double+.dialog-input-double .dialog-input{border-top:0;margin-top:0}.ios .dialog-preloader .dialog-text~.preloader,.ios .dialog-preloader .dialog-title~.preloader{margin-top:15px}.ios .dialog-progress .dialog-text~.progressbar,.ios .dialog-progress .dialog-text~.progressbar-infinite,.ios .dialog-progress .dialog-title~.progressbar,.ios .dialog-progress .dialog-title~.progressbar-infinite{margin-top:15px}.md .dialog.modal-out{transform:translate3d(0,-50%,0) scale(.815)}.md .dialog-title+.dialog-text{margin-top:20px}.md .dialog-text{line-height:1.5}.md .dialog-buttons{height:48px;padding:6px 8px;overflow:hidden;box-sizing:border-box;justify-content:flex-end}.md .dialog-button{border-radius:4px;min-width:64px;padding:0 8px;border:none;transition-duration:.3s;transform:translate3d(0,0,0)}.md .dialog-button.dialog-button-bold{font-weight:700}.md .dialog-button+.dialog-button{margin-left:4px}.md .dialog-button[class*=color-]{--f7-dialog-button-text-color:var(--f7-theme-color)}.md .dialog-buttons-vertical .dialog-buttons{padding:0 0 8px 0}.md .dialog-buttons-vertical .dialog-button{margin-left:0;text-align:right;height:48px;line-height:48px;border-radius:0;padding-left:16px;padding-right:16px}.md .dialog-input{padding:0;transition-duration:.2s;position:relative}.md .dialog-input+.dialog-input{margin-top:16px}.md .dialog-preloader .dialog-inner,.md .dialog-preloader .dialog-title,.md .dialog-progress .dialog-inner,.md .dialog-progress .dialog-title{text-align:center}.md .dialog-preloader .dialog-text~.preloader,.md .dialog-preloader .dialog-title~.preloader{margin-top:20px}.md .dialog-progress .dialog-text~.progressbar,.md .dialog-progress .dialog-text~.progressbar-infinite,.md .dialog-progress .dialog-title~.progressbar,.md .dialog-progress .dialog-title~.progressbar-infinite{margin-top:16px}.aurora .dialog.modal-out{transform:translate3d(0,-50%,0) scale(.815)}.aurora .dialog-title+.dialog-text{margin-top:10px}.aurora .dialog-text{line-height:1.5}.aurora .dialog-buttons{padding:var(--f7-dialog-inner-padding);padding-top:0;overflow:hidden;box-sizing:border-box;justify-content:flex-end}.aurora .dialog-button{border-radius:4px;min-width:64px;padding:0 10px;border:none;transition-duration:.3s;transform:translate3d(0,0,0);background:var(--f7-theme-color)}.aurora .dialog-button.dialog-button-bold{font-weight:600}.aurora .dialog-button+.dialog-button{margin-left:16px}.aurora .dialog-button.active-state{background-color:var(--f7-dialog-button-pressed-bg-color,var(--f7-theme-color-shade))}.aurora.device-desktop .dialog-button:not(.active-state):not(.no-hover):hover{background-color:var(--f7-dialog-button-hover-bg-color,var(--f7-theme-color-tint))}.aurora .dialog-buttons-vertical .dialog-buttons{display:flex;flex-direction:column;align-items:flex-end}.aurora .dialog-buttons-vertical .dialog-button{margin-left:0;flex-shrink:0}.aurora .dialog-buttons-vertical .dialog-button+.dialog-button{margin-top:5px}.aurora .dialog-input-field{margin-top:10px}.aurora .dialog-input-field input.dialog-input{margin-top:0}.aurora .dialog-input{padding:0 4px;transition-duration:.2s;position:relative}.aurora .dialog-input+.dialog-input{margin-top:10px}.aurora .dialog-input-double+.dialog-input-double{margin-top:0}.aurora .dialog-input-double+.dialog-input-double .dialog-input{border-top:0;margin-top:0}.aurora .dialog-preloader .dialog-inner,.aurora .dialog-preloader .dialog-title,.aurora .dialog-progress .dialog-inner,.aurora .dialog-progress .dialog-title{text-align:center}.aurora .dialog-preloader .dialog-text~.preloader,.aurora .dialog-preloader .dialog-title~.preloader{margin-top:10px}.aurora .dialog-progress .dialog-text~.progressbar,.aurora .dialog-progress .dialog-text~.progressbar-infinite,.aurora .dialog-progress .dialog-title~.progressbar,.aurora .dialog-progress .dialog-title~.progressbar-infinite{margin-top:15px}:root{--f7-popup-border-radius:0px;--f7-popup-tablet-width:630px;--f7-popup-tablet-height:630px;--f7-popup-transition-duration:400ms;--f7-popup-push-border-radius:10px;--f7-popup-push-offset:var(--f7-safe-area-top)}.ios{--f7-popup-tablet-border-radius:5px;--f7-popup-box-shadow:none}.md{--f7-popup-tablet-border-radius:4px;--f7-popup-box-shadow:0px 20px 44px rgba(0, 0, 0, 0.5)}.aurora{--f7-popup-tablet-border-radius:4px;--f7-popup-box-shadow:0px 20px 44px rgba(0, 0, 0, 0.5)}.popup-backdrop{z-index:10500}.popup{position:absolute;left:0;top:0px;width:100%;height:100%;display:none;box-sizing:border-box;transition-property:transform;transform:translate3d(0,100vh,0);background:#fff;z-index:11000;overflow:hidden;border-radius:var(--f7-popup-border-radius)}.popup.theme-dark,.theme-dark .popup{background:#000}.popup.modal-in,.popup.modal-out{transition-duration:var(--f7-popup-transition-duration)}.popup.not-animated{transition-duration:0s}.popup.modal-in{display:block;transform:translate3d(0,0,0)}.popup.modal-out{transform:translate3d(0,100vh,0)}.popup.swipe-close-to-top.modal-out{transform:translate3d(0,-100vh,0)}@media (min-width:630px) and (min-height:630px){.popup:not(.popup-tablet-fullscreen){--f7-safe-area-top:0px;--f7-safe-area-bottom:0px;width:var(--f7-popup-tablet-width);height:var(--f7-popup-tablet-height);left:50%;top:50%;margin-left:calc(-1 * var(--f7-popup-tablet-width)/ 2);margin-top:calc(-1 * var(--f7-popup-tablet-height)/ 2);transform:translate3d(0,100vh,0);box-shadow:var(--f7-popup-box-shadow);border-radius:var(--f7-popup-tablet-border-radius,var(--f7-popup-border-radius))}.popup:not(.popup-tablet-fullscreen).modal-in{transform:translate3d(0,0,0)}.popup:not(.popup-tablet-fullscreen).modal-out{transform:translate3d(0,100vh,0)}.popup:not(.popup-tablet-fullscreen).swipe-close-to-top.modal-out{transform:translate3d(0,-100vh,0)}.popup:not(.popup-tablet-fullscreen).popup-behind{transform:translate3d(0,0,0) scale(.9)}}html.with-modal-popup .framework7-root>.panel .page-content,html.with-modal-popup .framework7-root>.view .page-content,html.with-modal-popup .framework7-root>.views .page-content{overflow:hidden;-webkit-overflow-scrolling:auto}html.with-modal-popup-push .popup-push,html.with-modal-popup-push-closing .popup-push{top:calc(var(--f7-popup-push-offset) + 10px);height:calc(100% - var(--f7-popup-push-offset) - 10px);border-radius:var(--f7-popup-push-border-radius) var(--f7-popup-push-border-radius) 0 0;--f7-safe-area-top:0px}html.with-modal-popup-push .popup-push .page,html.with-modal-popup-push .popup-push .view,html.with-modal-popup-push-closing .popup-push .page,html.with-modal-popup-push-closing .popup-push .view{--f7-safe-area-top:0px}html.with-modal-popup-push .framework7-root,html.with-modal-popup-push-closing .framework7-root{background:#000}html.with-modal-popup-push .framework7-root>.view,html.with-modal-popup-push .framework7-root>.views,html.with-modal-popup-push-closing .framework7-root>.view,html.with-modal-popup-push-closing .framework7-root>.views{transition-duration:var(--f7-popup-transition-duration)}html.with-modal-popup-push .framework7-root>.view.theme-dark:after,html.with-modal-popup-push .framework7-root>.views.theme-dark:after,html.with-modal-popup-push .theme-dark .framework7-root>.view:after,html.with-modal-popup-push .theme-dark .framework7-root>.views:after,html.with-modal-popup-push .theme-dark.framework7-root>.view:after,html.with-modal-popup-push .theme-dark.framework7-root>.views:after,html.with-modal-popup-push-closing .framework7-root>.view.theme-dark:after,html.with-modal-popup-push-closing .framework7-root>.views.theme-dark:after,html.with-modal-popup-push-closing .theme-dark .framework7-root>.view:after,html.with-modal-popup-push-closing .theme-dark .framework7-root>.views:after,html.with-modal-popup-push-closing .theme-dark.framework7-root>.view:after,html.with-modal-popup-push-closing .theme-dark.framework7-root>.views:after,html.with-modal-popup-push-closing.theme-dark .framework7-root>.view:after,html.with-modal-popup-push-closing.theme-dark .framework7-root>.views:after,html.with-modal-popup-push.theme-dark .framework7-root>.view:after,html.with-modal-popup-push.theme-dark .framework7-root>.views:after{content:'';position:absolute;pointer-events:none;left:0;top:0;width:100%;height:100%;background:rgba(255,255,255,.1);z-index:13000;border-radius:var(--f7-popup-push-border-radius) var(--f7-popup-push-border-radius) 0 0;opacity:1;animation:popup-dark-push-overlay-fade-in var(--f7-popup-transition-duration) forwards}html.with-modal-popup-push .framework7-root>.view,html.with-modal-popup-push .framework7-root>.views{border-radius:var(--f7-popup-push-border-radius) var(--f7-popup-push-border-radius) 0 0;transform:translate3d(0,0,0px) scale(var(--f7-popup-push-scale,1))!important}html.with-modal-popup-push .popup:after{content:'';pointer-events:none;position:absolute;left:0;top:0;width:100%;height:100%;background:rgba(0,0,0,.4);z-index:13000;transition-duration:var(--f7-popup-transition-duration);border-radius:var(--f7-popup-push-border-radius) var(--f7-popup-push-border-radius) 0 0;opacity:0}html.with-modal-popup-push .theme-dark .popup:after,html.with-modal-popup-push .theme-dark.popup:after,html.with-modal-popup-push.theme-dark .popup:after{background:rgba(255,255,255,.05)}html.with-modal-popup-push .popup-behind{transform:translate3d(0,0px,0px) scale(var(--f7-popup-push-scale,1))}html.with-modal-popup-push .popup-behind:not(.popup-push){border-radius:var(--f7-popup-push-border-radius) var(--f7-popup-push-border-radius) 0 0}html.with-modal-popup-push .popup-behind.popup-push{transform:translate3d(0,calc(0px - var(--f7-popup-push-offset) - 10px),0px) scale(var(--f7-popup-push-scale,1))}html.with-modal-popup-push .popup-behind:after{opacity:1;pointer-events:auto}html.with-modal-popup-push-closing .framework7-root>.view.theme-dark:after,html.with-modal-popup-push-closing .framework7-root>.views.theme-dark:after,html.with-modal-popup-push-closing .theme-dark .framework7-root>.view:after,html.with-modal-popup-push-closing .theme-dark .framework7-root>.views:after,html.with-modal-popup-push-closing .theme-dark.framework7-root>.view:after,html.with-modal-popup-push-closing .theme-dark.framework7-root>.views:after,html.with-modal-popup-push-closing.theme-dark .framework7-root>.view:after,html.with-modal-popup-push-closing.theme-dark .framework7-root>.views:after{animation:popup-dark-push-overlay-fade-out var(--f7-popup-transition-duration) forwards}@keyframes popup-dark-push-overlay-fade-in{from{opacity:0}to{opacity:1}}@keyframes popup-dark-push-overlay-fade-out{from{opacity:1}to{opacity:0}}:root{--f7-login-screen-blocks-max-width:480px;--f7-login-screen-title-text-align:center;--f7-login-screen-title-text-color:inherit;--f7-login-screen-title-letter-spacing:0;--f7-login-screen-title-font-weight:600;--f7-login-screen-title-font-size:28px;--f7-login-screen-content-bg-color:#fff;--f7-login-screen-bg-color:#fff}:root .theme-dark,:root.theme-dark{--f7-login-screen-bg-color:#121212;--f7-login-screen-content-bg-color:#121212}.ios{--f7-login-screen-blocks-margin-vertical:25px}.ios .theme-dark,.ios.theme-dark{--f7-login-screen-bg-color:#000;--f7-login-screen-content-bg-color:#000}.md{--f7-login-screen-blocks-margin-vertical:24px}.aurora{--f7-login-screen-blocks-margin-vertical:15px}.login-screen{position:absolute;left:0;top:0;width:100%;height:100%;display:none;box-sizing:border-box;transition-property:transform;transform:translate3d(0,100vh,0);background:var(--f7-login-screen-bg-color);z-index:11000}.login-screen.modal-in,.login-screen.modal-out{transition-duration:.4s}.login-screen.not-animated{transition-duration:0s}.login-screen.modal-in{display:block;transform:translate3d(0,0,0)}.login-screen.modal-out{transform:translate3d(0,100%,0)}.login-screen .page,.login-screen-content,.login-screen-page{background:var(--f7-login-screen-content-bg-color)}.login-screen-content .list-button,.login-screen-page .list-button{text-align:center;color:var(--f7-login-screen-list-button-text-color,var(--f7-theme-color))}.login-screen-content .block,.login-screen-content .list,.login-screen-content .login-screen-title,.login-screen-page .block,.login-screen-page .list,.login-screen-page .login-screen-title{margin:var(--f7-login-screen-blocks-margin-vertical) auto}.login-screen-content .block,.login-screen-content .block-footer,.login-screen-content .block-header,.login-screen-content .list,.login-screen-content .login-screen-title,.login-screen-page .block,.login-screen-page .block-footer,.login-screen-page .block-header,.login-screen-page .list,.login-screen-page .login-screen-title{max-width:var(--f7-login-screen-blocks-max-width)}.login-screen-content .list ul,.login-screen-page .list ul{background:0 0}.login-screen-content .list ul:after,.login-screen-content .list ul:before,.login-screen-page .list ul:after,.login-screen-page .list ul:before{display:none!important}.login-screen-content .block-footer,.login-screen-content .block-header,.login-screen-page .block-footer,.login-screen-page .block-header{text-align:center;margin-left:auto;margin-right:auto}.login-screen-title{text-align:var(--f7-login-screen-title-text-align);font-size:var(--f7-login-screen-title-font-size);font-weight:var(--f7-login-screen-title-font-weight);color:var(--f7-login-screen-title-text-color);letter-spacing:var(--f7-login-screen-title-letter-spacing)}.login-screen-page,.login-screen>.page,.login-screen>.view>.page{display:flex;flex-direction:column}.login-screen-page .login-screen-content,.login-screen-page .page-content,.login-screen>.page .login-screen-content,.login-screen>.page .page-content,.login-screen>.view>.page .login-screen-content,.login-screen>.view>.page .page-content{margin-top:auto;margin-bottom:auto;height:auto;max-height:100%;width:100%}.theme-dark .login-screen-content .block-strong,.theme-dark .login-screen-content .list ul,.theme-dark .login-screen-page .block-strong,.theme-dark .login-screen-page .list ul,.theme-dark.login-screen-page .block-strong,.theme-dark.login-screen-page .list ul{background-color:transparent}:root{--f7-popover-width:260px}.ios{--f7-popover-border-radius:13px;--f7-popover-box-shadow:none;--f7-popover-actions-icon-size:28px;--f7-popover-bg-color:rgba(255, 255, 255, 0.95);--f7-popover-actions-label-text-color:rgba(0, 0, 0, 0.45)}.ios .theme-dark,.ios.theme-dark{--f7-popover-bg-color:rgba(30, 30, 30, 0.95);--f7-popover-actions-label-text-color:rgba(255, 255, 255, 0.55)}.md{--f7-popover-border-radius:4px;--f7-popover-box-shadow:var(--f7-elevation-8);--f7-popover-actions-icon-size:24px;--f7-popover-bg-color:#fff;--f7-popover-actions-label-text-color:rgba(0, 0, 0, 0.54)}.md .theme-dark,.md.theme-dark{--f7-popover-bg-color:#1c1c1d;--f7-popover-actions-label-text-color:rgba(255, 255, 255, 0.54)}.aurora{--f7-popover-width:200px;--f7-popover-border-radius:4px;--f7-popover-box-shadow:0 0 3px 0 rgba(0, 0, 0, 0.1),0 5px 11px 0 rgba(0,0,0,0.28);--f7-popover-actions-icon-size:24px;--f7-popover-bg-color:#fff;--f7-popover-actions-label-text-color:rgba(0, 0, 0, 0.6)}.aurora .theme-dark,.aurora.theme-dark{--f7-popover-bg-color:#1c1c1d;--f7-popover-actions-label-text-color:rgba(255, 255, 255, 0.6)}.popover{width:var(--f7-popover-width);z-index:13500;margin:0;top:0;opacity:0;left:0;position:absolute;display:none;transition-duration:.3s;background-color:var(--f7-popover-bg-color);border-radius:var(--f7-popover-border-radius);box-shadow:var(--f7-popover-box-shadow);will-change:transform,opacity}.popover .list{margin:0}.popover .list ul{background:0 0}.popover .list:first-child ul:before{display:none!important}.popover .list:last-child ul:after{display:none!important}.popover .list:first-child ul{border-radius:var(--f7-popover-border-radius) var(--f7-popover-border-radius) 0 0}.popover .list:first-child li:first-child,.popover .list:first-child li:first-child a,.popover .list:first-child li:first-child>label{border-radius:var(--f7-popover-border-radius) var(--f7-popover-border-radius) 0 0}.popover .list:last-child ul{border-radius:0 0 var(--f7-popover-border-radius) var(--f7-popover-border-radius)}.popover .list:last-child li:last-child,.popover .list:last-child li:last-child a,.popover .list:last-child li:last-child>label{border-radius:0 0 var(--f7-popover-border-radius) var(--f7-popover-border-radius)}.popover .list:first-child:last-child li:first-child:last-child,.popover .list:first-child:last-child li:first-child:last-child a,.popover .list:first-child:last-child li:first-child:last-child>label,.popover .list:first-child:last-child ul{border-radius:var(--f7-popover-border-radius)}.popover .list+.list{margin-top:var(--f7-list-margin-vertical)}.popover.modal-in{opacity:1}.popover.not-animated{transition-duration:0s}.popover-inner{overflow:auto;-webkit-overflow-scrolling:touch}.popover-from-actions .item-link i.icon{width:var(--f7-popover-actions-icon-size);height:var(--f7-popover-actions-icon-size);font-size:var(--f7-popover-actions-icon-size)}.popover-from-actions-bold{font-weight:600}.popover-from-actions-label{line-height:1.3;position:relative;display:flex;align-items:center;padding:var(--f7-actions-label-padding);color:var(--f7-popover-actions-label-text-color);font-size:var(--f7-actions-label-font-size);justify-content:var(--f7-actions-label-justify-content)}.popover-from-actions-label:after{content:'';position:absolute;background-color:var(--f7-list-item-border-color);display:block;z-index:15;top:auto;right:auto;bottom:0;left:0;height:1px;width:100%;transform-origin:50% 100%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.popover-from-actions-label:last-child:after{display:none!important}.ios .popover{transform:none;transition-property:opacity}.ios .popover-angle{width:26px;height:26px;position:absolute;left:-26px;top:0;z-index:100;overflow:hidden}.ios .popover-angle:after{content:'';background:var(--f7-popover-bg-color);width:26px;height:26px;position:absolute;left:0;top:0;border-radius:3px;transform:rotate(45deg)}.ios .popover-angle.on-left{left:-26px}.ios .popover-angle.on-left:after{left:19px;top:0}.ios .popover-angle.on-right{left:100%}.ios .popover-angle.on-right:after{left:-19px;top:0}.ios .popover-angle.on-top{left:0;top:-26px}.ios .popover-angle.on-top:after{left:0;top:19px}.ios .popover-angle.on-bottom{left:0;top:100%}.ios .popover-angle.on-bottom:after{left:0;top:-19px}.md .popover{transform:scale(.85,.6);transition-property:opacity,transform}.md .popover.modal-in{opacity:1;transform:scale(1)}.md .popover.modal-out{opacity:0;transform:scale(1)}.md .popover-on-top{transform-origin:center bottom}.md .popover-on-top.popover-on-right{transform-origin:left bottom}.md .popover-on-top.popover-on-left{transform-origin:right bottom}.md .popover-on-middle{transform-origin:center center}.md .popover-on-middle.popover-on-right{transform-origin:left center}.md .popover-on-middle.popover-on-left{transform-origin:right center}.md .popover-on-bottom{transform-origin:center top}.md .popover-on-bottom.popover-on-right{transform-origin:left top}.md .popover-on-bottom.popover-on-left{transform-origin:right top}.aurora .popover{transform:none;transition-property:opacity}.aurora .popover-angle{width:18px;height:18px;position:absolute;left:-18px;top:0;z-index:100;overflow:hidden}.aurora .popover-angle:after{content:'';background:var(--f7-popover-bg-color);width:18px;height:18px;position:absolute;left:0;top:0;border-radius:2px;transform:rotate(45deg)}.aurora .popover-angle.on-left{left:-18px}.aurora .popover-angle.on-left:after{left:13px;top:0}.aurora .popover-angle.on-right{left:100%}.aurora .popover-angle.on-right:after{left:-13px;top:0}.aurora .popover-angle.on-top{left:0;top:-18px}.aurora .popover-angle.on-top:after{left:0;top:13px}.aurora .popover-angle.on-bottom{left:0;top:100%}.aurora .popover-angle.on-bottom:after{left:0;top:-13px}:root{--f7-actions-grid-button-font-size:12px;--f7-actions-grid-button-text-color:#757575}:root .theme-dark,:root.theme-dark{--f7-actions-label-text-color:rgba(255, 255, 255, 0.55)}.ios{--f7-actions-border-radius:13px;--f7-actions-button-padding:0px;--f7-actions-button-text-align:center;--f7-actions-button-height:57px;--f7-actions-button-height-landscape:44px;--f7-actions-button-font-size:20px;--f7-actions-button-icon-size:28px;--f7-actions-button-justify-content:center;--f7-actions-label-padding:8px 10px;--f7-actions-label-font-size:13px;--f7-actions-label-justify-content:center;--f7-actions-group-border-color:transparent;--f7-actions-group-margin:8px;--f7-actions-grid-button-icon-size:48px;--f7-actions-bg-color:rgba(255, 255, 255, 0.95);--f7-actions-bg-color-rgb:255,255,255;--f7-actions-button-border-color:rgba(0, 0, 0, 0.2);--f7-actions-button-pressed-bg-color:rgba(230, 230, 230, 0.9);--f7-actions-button-pressed-bg-color-rgb:230,230,230;--f7-actions-label-text-color:#8a8a8a}.ios .theme-dark,.ios.theme-dark{--f7-actions-bg-color:rgba(45, 45, 45, 0.95);--f7-actions-bg-color-rgb:45,45,45;--f7-actions-button-border-color:rgba(255, 255, 255, 0.15);--f7-actions-button-pressed-bg-color:rgba(50, 50, 50, 0.9);--f7-actions-button-pressed-bg-color-rgb:50,50,50}.md{--f7-actions-border-radius:0px;--f7-actions-button-border-color:transparent;--f7-actions-button-padding:0 16px;--f7-actions-button-text-align:left;--f7-actions-button-height:48px;--f7-actions-button-height-landscape:48px;--f7-actions-button-font-size:16px;--f7-actions-button-icon-size:24px;--f7-actions-button-justify-content:space-between;--f7-actions-label-padding:12px 16px;--f7-actions-label-font-size:16px;--f7-actions-label-justify-content:flex-start;--f7-actions-group-margin:0px;--f7-actions-grid-button-icon-size:48px;--f7-actions-bg-color:#fff;--f7-actions-button-text-color:rgba(0, 0, 0, 0.87);--f7-actions-button-pressed-bg-color:#e5e5e5;--f7-actions-label-text-color:rgba(0, 0, 0, 0.54);--f7-actions-group-border-color:rgba(0, 0, 0, 0.12)}.md .theme-dark,.md.theme-dark{--f7-actions-bg-color:#202020;--f7-actions-button-text-color:#fff;--f7-actions-button-pressed-bg-color:#2e2e2e;--f7-actions-group-border-color:rgba(255, 255, 255, 0.15)}.aurora{--f7-actions-border-radius:4px;--f7-actions-button-padding:0 16px;--f7-actions-button-text-align:center;--f7-actions-button-height:32px;--f7-actions-button-height-landscape:32px;--f7-actions-button-font-size:14px;--f7-actions-button-icon-size:18px;--f7-actions-button-justify-content:space-between;--f7-actions-label-padding:10px 16px;--f7-actions-label-font-size:12px;--f7-actions-label-justify-content:center;--f7-actions-group-margin:16px;--f7-actions-grid-button-icon-size:32px;--f7-actions-bg-color:#fff;--f7-actions-button-border-color:rgba(0, 0, 0, 0.12);--f7-actions-button-pressed-bg-color:#e5e5e5;--f7-actions-label-text-color:rgba(0, 0, 0, 0.5);--f7-actions-group-border-color:rgba(0, 0, 0, 0.1)}.aurora .theme-dark,.aurora.theme-dark{--f7-actions-bg-color:#202020;--f7-actions-button-text-color:#fff;--f7-actions-button-border-color:rgba(255, 255, 255, 0.15);--f7-actions-button-pressed-bg-color:#2e2e2e;--f7-actions-group-border-color:rgba(255, 255, 255, 0.15)}.actions-modal{position:absolute;left:0;bottom:0;z-index:13500;width:100%;transform:translate3d(0,100%,0);display:none;max-height:100%;overflow:auto;-webkit-overflow-scrolling:touch;transition-property:transform;will-change:transform}.actions-modal.modal-in,.actions-modal.modal-out{transition-duration:.3s}.actions-modal.not-animated{transition-duration:0s}.actions-modal.modal-in{transform:translate3d(0,calc(-1 * var(--f7-safe-area-bottom)),0)}.actions-modal.modal-out{z-index:13499;transform:translate3d(0,100%,0)}@media (min-width:496px){.actions-modal{width:480px;left:50%;margin-left:-240px}}@media (orientation:landscape){.actions-modal{--f7-actions-button-height:var(--f7-actions-button-height-landscape)}}.actions-group{overflow:hidden;position:relative;margin:var(--f7-actions-group-margin);border-radius:var(--f7-actions-border-radius);transform:translate3d(0,0,0)}.actions-group:after{content:'';position:absolute;background-color:var(--f7-actions-group-border-color);display:block;z-index:15;top:auto;right:auto;bottom:0;left:0;height:1px;width:100%;transform-origin:50% 100%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.actions-group:last-child:after{display:none!important}.actions-button,.actions-label{width:100%;font-weight:400;margin:0;box-sizing:border-box;display:block;position:relative;overflow:hidden;text-align:var(--f7-actions-button-text-align);background:var(--f7-actions-bg-color)}@supports ((-webkit-backdrop-filter:blur(20px)) or (backdrop-filter:blur(20px))){.ios-translucent-modals .actions-button,.ios-translucent-modals .actions-label{background-color:rgba(var(--f7-actions-bg-color-rgb),.8);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}}.actions-button:after,.actions-label:after{content:'';position:absolute;background-color:var(--f7-actions-button-border-color);display:block;z-index:15;top:auto;right:auto;bottom:0;left:0;height:1px;width:100%;transform-origin:50% 100%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.actions-button:first-child,.actions-label:first-child{border-radius:var(--f7-actions-border-radius) var(--f7-actions-border-radius) 0 0}.actions-button:last-child,.actions-label:last-child{border-radius:0 0 var(--f7-actions-border-radius) var(--f7-actions-border-radius)}.actions-button:last-child:after,.actions-label:last-child:after{display:none!important}.actions-button:first-child:last-child,.actions-label:first-child:last-child{border-radius:var(--f7-actions-border-radius)}.actions-button a,.actions-label a{text-decoration:none;color:inherit;display:block}.actions-button b,.actions-button.actions-button-bold,.actions-label b,.actions-label.actions-button-bold{font-weight:600}.actions-button{cursor:pointer;display:flex;color:var(--f7-actions-button-text-color,var(--f7-theme-color));font-size:var(--f7-actions-button-font-size);height:var(--f7-actions-button-height);line-height:var(--f7-actions-button-height);padding:var(--f7-actions-button-padding);justify-content:var(--f7-actions-button-justify-content);z-index:10}.actions-button.active-state{background-color:var(--f7-actions-button-pressed-bg-color)!important}.actions-button[class*=color-]{color:var(--f7-theme-color)}@supports ((-webkit-backdrop-filter:blur(20px)) or (backdrop-filter:blur(20px))){.ios-translucent-modals .actions-button.active-state{background-color:rgba(var(--f7-actions-button-pressed-bg-color-rgb),.8);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}}.actions-button-media{flex-shrink:0;display:flex;align-items:center}.actions-button-media i.icon{width:var(--f7-actions-button-icon-size);height:var(--f7-actions-button-icon-size);font-size:var(--f7-actions-button-icon-size)}.actions-button a,.actions-button-text{position:relative;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.actions-button-text{width:100%;flex-shrink:1;text-align:var(--f7-actions-button-text-align)}.actions-label{line-height:1.3;display:flex;align-items:center;font-size:var(--f7-actions-label-font-size);color:var(--f7-actions-label-text-color);padding:var(--f7-actions-label-padding);justify-content:var(--f7-actions-label-justify-content);min-height:var(--f7-actions-label-min-height,var(--f7-actions-button-height))}.actions-label[class*=" color-"]{--f7-actions-label-text-color:var(--f7-theme-color)}.actions-grid .actions-group{display:flex;flex-wrap:wrap;justify-content:flex-start;border-radius:0;background:var(--f7-actions-bg-color);margin-top:0}.actions-grid .actions-group:first-child{border-radius:var(--f7-actions-border-radius) var(--f7-actions-border-radius) 0 0}.actions-grid .actions-group:last-child{border-radius:0 0 var(--f7-actions-border-radius) var(--f7-actions-border-radius)}.actions-grid .actions-group:first-child:last-child{border-radius:var(--f7-actions-border-radius)}.actions-grid .actions-group:not(:last-child){margin-bottom:0}.actions-grid .actions-button,.actions-grid .actions-label{border-radius:0!important;background:0 0}.actions-grid .actions-button{width:33.33333333%;display:block;color:var(--f7-actions-grid-button-text-color);height:auto;line-height:1;padding:16px}.actions-grid .actions-button:after{display:none!important}.actions-grid .actions-button-media{margin-left:auto!important;margin-right:auto!important;width:var(--f7-actions-grid-button-icon-size);height:var(--f7-actions-grid-button-icon-size)}.actions-grid .actions-button-media i.icon{width:var(--f7-actions-grid-button-icon-size);height:var(--f7-actions-grid-button-icon-size);font-size:var(--f7-actions-grid-button-icon-size)}.actions-grid .actions-button-text{margin-left:0!important;text-align:center!important;margin-top:8px;line-height:1.33em;height:1.33em;font-size:var(--f7-actions-grid-button-font-size)}@supports ((-webkit-backdrop-filter:blur(20px)) or (backdrop-filter:blur(20px))){.ios-translucent-modals .actions-grid .actions-group{background-color:rgba(var(--f7-actions-bg-color-rgb),.8);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}}.ios .actions-button-media{margin-left:16px}.ios .actions-button-media+.actions-button-text{text-align:left;margin-left:16px}.md .actions-button{transition-duration:.3s}.md .actions-button-media{min-width:40px}.md .actions-button-media+.actions-button-text{margin-left:16px}.aurora .actions-button-media{margin-left:16px}.aurora .actions-button-media+.actions-button-text{text-align:left;margin-left:16px}:root{--f7-sheet-height:260px;--f7-sheet-border-color:transparent;--f7-sheet-transition-duration:300ms;--f7-sheet-push-border-radius:10px;--f7-sheet-push-offset:var(--f7-safe-area-top);--f7-sheet-bg-color:#fff}:root .theme-dark,:root.theme-dark{--f7-sheet-bg-color:#202020}.ios{--f7-sheet-border-color:var(--f7-bars-border-color)}.sheet-backdrop{z-index:11000}.sheet-modal{position:absolute;left:0;bottom:0;width:100%;height:var(--f7-sheet-height);display:none;box-sizing:border-box;transition-property:transform;transform:translate3d(0,100%,0);background:var(--f7-sheet-bg-color);z-index:12500;will-change:transform,opacity}.sheet-modal.modal-in,.sheet-modal.modal-out{transition-duration:var(--f7-sheet-transition-duration)}.sheet-modal.not-animated{transition-duration:0s}.sheet-modal.modal-in{display:block;transform:translate3d(0,0,0)}.sheet-modal.modal-in-swipe-step{display:block;transform:translate3d(0,var(--f7-sheet-swipe-step,0),0)}.sheet-modal.modal-out{transform:translate3d(0,100%,0)}.sheet-modal .sheet-modal-inner{height:100%;position:relative;overflow:hidden}.sheet-modal .toolbar{--f7-safe-area-bottom:0px;position:relative;width:100%}.sheet-modal .toolbar:after,.sheet-modal .toolbar:before{display:none}.sheet-modal .toolbar+.sheet-modal-inner{height:calc(100% - var(--f7-toolbar-height))}.sheet-modal .toolbar+.sheet-modal-inner .page-content{--f7-page-toolbar-top-offset:0px;--f7-page-toolbar-bottom-offset:0px}.sheet-modal-top:after{content:'';position:absolute;background-color:var(--f7-sheet-border-color);display:block;z-index:15;top:auto;right:auto;bottom:0;left:0;height:1px;width:100%;transform-origin:50% 100%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.sheet-modal-top:after{z-index:700;-webkit-backface-visibility:hidden;backface-visibility:hidden;transform-style:preserve-3d}.sheet-modal-bottom,.sheet-modal:not(.sheet-modal-top){--f7-safe-area-top:0px}.sheet-modal-bottom:before,.sheet-modal:not(.sheet-modal-top):before{content:'';position:absolute;background-color:var(--f7-sheet-border-color);display:block;z-index:15;top:0;right:auto;bottom:auto;left:0;height:1px;width:100%;transform-origin:50% 0%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.sheet-modal-bottom:before,.sheet-modal:not(.sheet-modal-top):before{z-index:700;-webkit-backface-visibility:hidden;backface-visibility:hidden;transform-style:preserve-3d}.sheet-modal-top{--f7-safe-area-bottom:0px;bottom:auto;top:0;transform:translate3d(0,-100%,0)}.sheet-modal-top.modal-out{transform:translate3d(0,-100%,0)}.sheet-modal-top .toolbar-bottom{position:absolute}.sheet-modal-top .page-content{padding-top:var(--f7-safe-area-top)}html.with-modal-sheet-push .sheet-modal-push,html.with-modal-sheet-push-closing .sheet-modal-push{--f7-sheet-border-color:transparent;border-radius:var(--f7-sheet-push-border-radius) var(--f7-sheet-push-border-radius) 0 0;overflow:hidden}html.with-modal-sheet-push .sheet-modal-push .page,html.with-modal-sheet-push .sheet-modal-push .view,html.with-modal-sheet-push-closing .sheet-modal-push .page,html.with-modal-sheet-push-closing .sheet-modal-push .view{--f7-safe-area-top:0px}html.with-modal-sheet-push .sheet-modal-push.sheet-modal-top,html.with-modal-sheet-push-closing .sheet-modal-push.sheet-modal-top{border-radius:0 0 var(--f7-sheet-push-border-radius) var(--f7-sheet-push-border-radius)}html.with-modal-sheet-push .framework7-root,html.with-modal-sheet-push-closing .framework7-root{background:#000}html.with-modal-sheet-push .framework7-root>.view,html.with-modal-sheet-push .framework7-root>.views,html.with-modal-sheet-push-closing .framework7-root>.view,html.with-modal-sheet-push-closing .framework7-root>.views{transition-duration:var(--f7-sheet-transition-duration)}html.with-modal-sheet-push .framework7-root>.view.theme-dark:after,html.with-modal-sheet-push .framework7-root>.views.theme-dark:after,html.with-modal-sheet-push .theme-dark .framework7-root>.view:after,html.with-modal-sheet-push .theme-dark .framework7-root>.views:after,html.with-modal-sheet-push .theme-dark.framework7-root>.view:after,html.with-modal-sheet-push .theme-dark.framework7-root>.views:after,html.with-modal-sheet-push-closing .framework7-root>.view.theme-dark:after,html.with-modal-sheet-push-closing .framework7-root>.views.theme-dark:after,html.with-modal-sheet-push-closing .theme-dark .framework7-root>.view:after,html.with-modal-sheet-push-closing .theme-dark .framework7-root>.views:after,html.with-modal-sheet-push-closing .theme-dark.framework7-root>.view:after,html.with-modal-sheet-push-closing .theme-dark.framework7-root>.views:after,html.with-modal-sheet-push-closing.theme-dark .framework7-root>.view:after,html.with-modal-sheet-push-closing.theme-dark .framework7-root>.views:after,html.with-modal-sheet-push.theme-dark .framework7-root>.view:after,html.with-modal-sheet-push.theme-dark .framework7-root>.views:after{content:'';position:absolute;pointer-events:none;left:0;top:0;width:100%;height:100%;background:rgba(255,255,255,.1);z-index:13000;border-radius:var(--f7-sheet-push-border-radius) var(--f7-sheet-push-border-radius) 0 0;opacity:1;animation:sheet-dark-push-overlay-fade-in var(--f7-sheet-transition-duration) forwards}html.with-modal-sheet-push .framework7-root>.view,html.with-modal-sheet-push .framework7-root>.views{border-radius:var(--f7-sheet-push-border-radius);transform:translate3d(0,0,0px) scale(var(--f7-sheet-push-scale,1))!important}html.with-modal-sheet-push-closing .framework7-root>.view.theme-dark:after,html.with-modal-sheet-push-closing .framework7-root>.views.theme-dark:after,html.with-modal-sheet-push-closing .theme-dark .framework7-root>.view:after,html.with-modal-sheet-push-closing .theme-dark .framework7-root>.views:after,html.with-modal-sheet-push-closing .theme-dark.framework7-root>.view:after,html.with-modal-sheet-push-closing .theme-dark.framework7-root>.views:after,html.with-modal-sheet-push-closing.theme-dark .framework7-root>.view:after,html.with-modal-sheet-push-closing.theme-dark .framework7-root>.views:after{animation:sheet-dark-push-overlay-fade-out var(--f7-sheet-transition-duration) forwards}@keyframes sheet-dark-push-overlay-fade-in{from{opacity:0}to{opacity:1}}@keyframes sheet-dark-push-overlay-fade-out{from{opacity:1}to{opacity:0}}.md .sheet-modal .toolbar a.link:not(.tab-link){flex-shrink:0}:root{--f7-toast-text-color:#fff;--f7-toast-font-size:14px;--f7-toast-icon-size:48px;--f7-toast-max-width:568px}.ios{--f7-toast-bg-color:rgba(0, 0, 0, 0.75);--f7-toast-bg-color-rgb:0,0,0;--f7-toast-padding-horizontal:16px;--f7-toast-padding-vertical:12px;--f7-toast-border-radius:8px;--f7-toast-button-min-width:64px}.md{--f7-toast-bg-color:#323232;--f7-toast-padding-horizontal:24px;--f7-toast-padding-vertical:14px;--f7-toast-border-radius:4px;--f7-toast-button-min-width:64px}.aurora{--f7-toast-bg-color:rgba(0, 0, 0, 0.85);--f7-toast-padding-horizontal:10px;--f7-toast-padding-vertical:10px;--f7-toast-border-radius:4px;--f7-toast-button-min-width:32px}.toast{--f7-touch-ripple-color:var(--f7-touch-ripple-white);transition-property:transform,opacity;position:absolute;max-width:var(--f7-toast-max-width);z-index:20000;color:var(--f7-toast-text-color);font-size:var(--f7-toast-font-size);box-sizing:border-box;background-color:var(--f7-toast-bg-color);opacity:0}@supports ((-webkit-backdrop-filter:blur(20px)) or (backdrop-filter:blur(20px))){.ios-translucent-modals .toast{background-color:rgba(var(--f7-toast-bg-color-rgb),.8);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}}.toast.modal-in{opacity:1}.toast .toast-content{display:flex;justify-content:space-between;align-items:center;box-sizing:border-box;padding:var(--f7-toast-padding-vertical) var(--f7-toast-padding-horizontal)}.toast .toast-text{line-height:20px;flex-shrink:1;min-width:0}.toast .toast-button{flex-shrink:0;min-width:var(--f7-toast-button-min-width);margin-top:-8px;margin-bottom:-8px}.toast.toast-with-icon .toast-content{display:block;text-align:center}.toast.toast-with-icon .toast-text{text-align:center}.toast.toast-with-icon .toast-icon .f7-icons,.toast.toast-with-icon .toast-icon .material-icons{font-size:var(--f7-toast-icon-size)}.toast.toast-center{top:50%}.toast.toast-top{margin-top:var(--f7-safe-area-top)}.ios .toast{transition-duration:.3s;width:100%;left:0}.ios .toast.toast-top{top:0;transform:translate3d(0,-100%,0)}.ios .toast.toast-top.modal-in{transform:translate3d(0,0%,0)}.ios .toast.toast-center{width:auto;left:50%;border-radius:var(--f7-toast-border-radius);transform:translate3d(-50%,-50%,0)}.ios .toast.toast-center.modal-in{transform:translate3d(-50%,-50%,0)}.ios .toast.toast-bottom{bottom:0;transform:translate3d(0,100%,0)}.ios .toast.toast-bottom.modal-in{transform:translate3d(0,0%,0)}@media (max-width:568px){.ios .toast.toast-top{margin-top:0}.ios .toast.toast-top .toast-content{padding-top:calc(var(--f7-toast-padding-vertical) + var(--f7-safe-area-top))}.ios .toast.toast-bottom .toast-content{padding-bottom:calc(var(--f7-toast-padding-vertical) + var(--f7-safe-area-bottom))}}@media (min-width:569px){.ios .toast{left:50%;margin-left:calc(-1 * var(--f7-toast-max-width)/ 2);border-radius:var(--f7-toast-border-radius)}.ios .toast.toast-top{top:16px}.ios .toast.toast-center{margin-left:0}.ios .toast.toast-bottom{margin-bottom:calc(16px + var(--f7-safe-area-bottom))}}@media (min-width:1024px){.ios .toast{margin-left:0;width:auto}.ios .toast.toast-horizontal-left{left:16px}.ios .toast.toast-horizontal-right{left:auto;right:16px}.ios .toast.toast-horizontal-center{left:50%;width:var(--f7-toast-max-width);margin-left:calc(-1 * var(--f7-toast-max-width)/ 2)}}.ios .toast-button{margin-right:16px;margin-left:calc(-1 * var(--f7-button-padding-horizontal))}.md .toast{transition-duration:.2s;border-radius:var(--f7-toast-border-radius);width:calc(100% - 16px);transform:scale(.9);left:8px}.md .toast.modal-in{transform:scale(1)}.md .toast.modal-out{transform:scale(1)}.md .toast.toast-top{top:8px}.md .toast.toast-center{left:50%;width:auto;transform:scale(.9) translate3d(-55%,-55%,0)}.md .toast.toast-center.modal-in{transform:scale(1) translate3d(-50%,-50%,0)}.md .toast.toast-center.modal-out{transform:scale(1) translate3d(-50%,-50%,0)}.md .toast.toast-bottom{bottom:calc(8px + var(--f7-safe-area-bottom))}@media (min-width:584px){.md .toast{left:50%;margin-left:calc(-1 * var(--f7-toast-max-width)/ 2)}.md .toast.toast-center{margin-left:0}}@media (min-width:1024px){.md .toast{margin-left:0;width:auto}.md .toast.toast-horizontal-left{left:24px}.md .toast.toast-horizontal-right{left:auto;right:24px}.md .toast.toast-horizontal-center{left:50%;width:var(--f7-toast-max-width);margin-left:calc(-1 * var(--f7-toast-max-width)/ 2)}.md .toast.toast-bottom{bottom:calc(24px + var(--f7-safe-area-bottom))}.md .toast.toast-top{top:24px}}.md .toast-button{margin-right:16px;margin-left:-8px}.aurora .toast{transition-duration:.2s;border-radius:var(--f7-toast-border-radius);left:10px;width:calc(100% - 20px);transform:scale(.9)}.aurora .toast.modal-in{transform:scale(1)}.aurora .toast.modal-out{transform:scale(1)}.aurora .toast.toast-top{top:10px}.aurora .toast.toast-center{left:50%;width:auto;transform:scale(.9) translate3d(-55%,-55%,0)}.aurora .toast.toast-center.modal-in{transform:scale(1) translate3d(-50%,-50%,0)}.aurora .toast.toast-center.modal-out{transform:scale(1) translate3d(-50%,-50%,0)}.aurora .toast.toast-bottom{bottom:calc(10px + var(--f7-safe-area-bottom))}@media (min-width:584px){.aurora .toast{left:50%;margin-left:calc(-1 * var(--f7-toast-max-width)/ 2)}.aurora .toast.toast-center{margin-left:0}}@media (min-width:1024px){.aurora .toast{margin-left:0;width:auto}.aurora .toast.toast-horizontal-left{left:10px}.aurora .toast.toast-horizontal-right{left:auto;right:10px}.aurora .toast.toast-horizontal-center{left:50%;width:var(--f7-toast-max-width);margin-left:calc(-1 * var(--f7-toast-max-width)/ 2)}}.aurora .toast-button{margin-right:10px}:root{--f7-preloader-modal-padding:8px;--f7-preloader-modal-bg-color:rgba(0, 0, 0, 0.8)}.ios{--f7-preloader-color:#6c6c6c;--f7-preloader-size:20px;--f7-preloader-modal-preloader-size:34px;--f7-preloader-modal-border-radius:5px}.md{--f7-preloader-color:#757575;--f7-preloader-size:32px;--f7-preloader-modal-preloader-size:32px;--f7-preloader-modal-border-radius:4px}.aurora{--f7-preloader-color:#757575;--f7-preloader-size:24px;--f7-preloader-modal-preloader-size:24px;--f7-preloader-modal-border-radius:4px}.preloader{display:inline-block;vertical-align:middle;width:var(--f7-preloader-size);height:var(--f7-preloader-size);font-size:0;position:relative}.preloader-backdrop{visibility:visible;opacity:0;background:0 0;z-index:14000}.preloader-modal{position:absolute;left:50%;top:50%;padding:var(--f7-preloader-modal-padding);background:var(--f7-preloader-modal-bg-color);z-index:14500;transform:translateX(-50%) translateY(-50%);border-radius:var(--f7-preloader-modal-border-radius)}.preloader-modal .preloader{--f7-preloader-size:var(--f7-preloader-modal-preloader-size);display:block!important}.with-modal-preloader .page-content,.with-modal-preloader.page-content,html.with-modal-preloader .page-content{overflow:hidden;-webkit-overflow-scrolling:auto}.preloader[class*=color-]{--f7-preloader-color:var(--f7-theme-color)}.ios .preloader{animation:ios-preloader-spin 1s steps(12,end) infinite}.ios .preloader .preloader-inner-line{display:block;width:7.15%;height:28.5%;border-radius:100px;background:var(--f7-preloader-color);position:absolute;left:50%;top:50%;transform-origin:center 175%}.ios .preloader .preloader-inner-line:nth-child(1){transform:translate(-50%,-175%) rotate(0deg);opacity:.27}.ios .preloader .preloader-inner-line:nth-child(2){transform:translate(-50%,-175%) rotate(30deg);opacity:.32272727}.ios .preloader .preloader-inner-line:nth-child(3){transform:translate(-50%,-175%) rotate(60deg);opacity:.37545455}.ios .preloader .preloader-inner-line:nth-child(4){transform:translate(-50%,-175%) rotate(90deg);opacity:.42818182}.ios .preloader .preloader-inner-line:nth-child(5){transform:translate(-50%,-175%) rotate(120deg);opacity:.48090909}.ios .preloader .preloader-inner-line:nth-child(6){transform:translate(-50%,-175%) rotate(150deg);opacity:.53363636}.ios .preloader .preloader-inner-line:nth-child(7){transform:translate(-50%,-175%) rotate(180deg);opacity:.58636364}.ios .preloader .preloader-inner-line:nth-child(8){transform:translate(-50%,-175%) rotate(210deg);opacity:.63909091}.ios .preloader .preloader-inner-line:nth-child(9){transform:translate(-50%,-175%) rotate(240deg);opacity:.69181818}.ios .preloader .preloader-inner-line:nth-child(10){transform:translate(-50%,-175%) rotate(270deg);opacity:.74454545}.ios .preloader .preloader-inner-line:nth-child(11){transform:translate(-50%,-175%) rotate(300deg);opacity:.79727273}.ios .preloader .preloader-inner-line:nth-child(12){transform:translate(-50%,-175%) rotate(330deg);opacity:.85}@keyframes ios-preloader-spin{100%{transform:rotate(360deg)}}.md .preloader{animation:md-preloader-outer 3.3s linear infinite}@keyframes md-preloader-outer{0%{transform:rotate(0)}100%{transform:rotate(360deg)}}.md .preloader-inner{position:relative;display:block;width:100%;height:100%;animation:md-preloader-inner-rotate 5.25s cubic-bezier(.35,0,.25,1) infinite}.md .preloader-inner .preloader-inner-gap{position:absolute;width:2px;left:50%;margin-left:-1px;top:0;bottom:0;box-sizing:border-box;border-top:4px solid var(--f7-preloader-color)}.md .preloader-inner .preloader-inner-left,.md .preloader-inner .preloader-inner-right{position:absolute;top:0;height:100%;width:50%;overflow:hidden}.md .preloader-inner .preloader-inner-half-circle{position:absolute;top:0;height:100%;width:200%;box-sizing:border-box;border:4px solid var(--f7-preloader-color);border-bottom-color:transparent!important;border-radius:50%;animation-iteration-count:infinite;animation-duration:1.3125s;animation-timing-function:cubic-bezier(.35,0,.25,1)}.md .preloader-inner .preloader-inner-left{left:0}.md .preloader-inner .preloader-inner-left .preloader-inner-half-circle{left:0;border-right-color:transparent!important;animation-name:md-preloader-left-rotate}.md .preloader-inner .preloader-inner-right{right:0}.md .preloader-inner .preloader-inner-right .preloader-inner-half-circle{right:0;border-left-color:transparent!important;animation-name:md-preloader-right-rotate}.md .preloader.color-multi .preloader-inner-left .preloader-inner-half-circle{animation-name:md-preloader-left-rotate-multicolor}.md .preloader.color-multi .preloader-inner-right .preloader-inner-half-circle{animation-name:md-preloader-right-rotate-multicolor}@keyframes md-preloader-left-rotate{0%,100%{transform:rotate(130deg)}50%{transform:rotate(-5deg)}}@keyframes md-preloader-right-rotate{0%,100%{transform:rotate(-130deg)}50%{transform:rotate(5deg)}}@keyframes md-preloader-inner-rotate{12.5%{transform:rotate(135deg)}25%{transform:rotate(270deg)}37.5%{transform:rotate(405deg)}50%{transform:rotate(540deg)}62.5%{transform:rotate(675deg)}75%{transform:rotate(810deg)}87.5%{transform:rotate(945deg)}100%{transform:rotate(1080deg)}}@keyframes md-preloader-left-rotate-multicolor{0%,100%{border-left-color:#4285f4;transform:rotate(130deg)}75%{border-left-color:#1b9a59;border-top-color:#1b9a59}50%{border-left-color:#f7c223;border-top-color:#f7c223;transform:rotate(-5deg)}25%{border-left-color:#de3e35;border-top-color:#de3e35}}@keyframes md-preloader-right-rotate-multicolor{0%,100%{border-right-color:#4285f4;transform:rotate(-130deg)}75%{border-right-color:#1b9a59;border-top-color:#1b9a59}50%{border-right-color:#f7c223;border-top-color:#f7c223;transform:rotate(5deg)}25%{border-top-color:#de3e35;border-right-color:#de3e35}}.aurora .preloader-inner{position:absolute;left:0;top:0;width:100%;height:100%}.aurora .preloader-inner-circle{width:100%;height:100%;position:absolute;left:0;top:0;border-radius:50%;border:calc(var(--f7-preloader-size)/ 8) solid var(--f7-preloader-color);border-top-color:transparent;box-sizing:border-box;animation:aurora-preloader-rotate 1s linear infinite}.aurora .preloader.color-multi .preloader-inner-circle{animation:aurora-preloader-rotate 1s linear infinite,aurora-preloader-multicolor 2s linear infinite}@keyframes aurora-preloader-rotate{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@keyframes aurora-preloader-multicolor{0%,100%{border-color:#2196f3;border-top-color:transparent}25%{border-color:#ff3b30;border-top-color:transparent}50%{border-color:#4cd964;border-top-color:transparent}75%{border-color:#ff9500;border-top-color:transparent}}.ios{--f7-progressbar-height:2px;--f7-progressbar-border-radius:2px;--f7-progressbar-bg-color:rgba(0, 0, 0, 0.3)}.ios .theme-dark,.ios.theme-dark{--f7-progressbar-bg-color:rgba(255, 255, 255, 0.3)}.md{--f7-progressbar-height:4px;--f7-progressbar-border-radius:0px}.aurora{--f7-progressbar-height:6px;--f7-progressbar-border-radius:3px;--f7-progressbar-bg-color:#dbdbdb}.aurora .theme-dark,.aurora.theme-dark{--f7-progressbar-bg-color:#444}.progressbar,.progressbar-infinite{width:100%;overflow:hidden;position:relative;display:block;transform-style:preserve-3d;background:var(--f7-progressbar-bg-color,rgba(var(--f7-theme-color-rgb),.5));transform-origin:center top;height:var(--f7-progressbar-height);border-radius:var(--f7-progressbar-border-radius)}.progressbar{vertical-align:middle}.progressbar span{background-color:var(--f7-progressbar-progress-color,var(--f7-theme-color));width:100%;height:100%;position:absolute;left:0;top:0;transform:translate3d(-100%,0,0);transition-duration:150ms}.progressbar-infinite{z-index:15000}.progressbar-infinite:after,.progressbar-infinite:before{content:'';position:absolute;left:0;top:0;width:100%;height:100%;transform-origin:left center;transform:translate3d(0,0,0);display:block;background-color:var(--f7-progressbar-progress-color,var(--f7-theme-color))}.progressbar-infinite.color-multi{background:0 0!important}.progressbar-in{animation:progressbar-in 150ms forwards}.progressbar-out{animation:progressbar-out 150ms forwards}.framework7-root>.progressbar,.framework7-root>.progressbar-infinite,.page>.progressbar,.page>.progressbar-infinite,.panel>.progressbar,.panel>.progressbar-infinite,.popup>.progressbar,.popup>.progressbar-infinite,.view>.progressbar,.view>.progressbar-infinite,.views>.progressbar,.views>.progressbar-infinite,body>.progressbar,body>.progressbar-infinite{position:absolute;left:0;top:0;z-index:15000;border-radius:0!important;transform-origin:center top!important}@keyframes progressbar-in{from{opacity:0;transform:scaleY(0)}to{opacity:1;transform:scaleY(1)}}@keyframes progressbar-out{from{opacity:1;transform:scaleY(1)}to{opacity:0;transform:scaleY(0)}}.ios .progressbar-infinite:before{animation:ios-progressbar-infinite 1s linear infinite}.ios .progressbar-infinite:after{display:none}.ios .progressbar-infinite.color-multi:before{width:400%;background-image:linear-gradient(to right,#4cd964,#5ac8fa,#007aff,#34aadc,#5856d6,#ff2d55,#5856d6,#34aadc,#007aff,#5ac8fa,#4cd964);background-size:25% 100%;background-repeat:repeat-x;animation:ios-progressbar-infinite-multicolor 3s linear infinite}@keyframes ios-progressbar-infinite{0%{transform:translate3d(-100%,0,0)}100%{transform:translate3d(100%,0,0)}}@keyframes ios-progressbar-infinite-multicolor{0%{transform:translate3d(0%,0,0)}100%{transform:translate3d(-50%,0,0)}}.md .progressbar-infinite:before{animation:md-progressbar-infinite-1 2s linear infinite}.md .progressbar-infinite:after{animation:md-progressbar-infinite-2 2s linear infinite}.md .progressbar-infinite.color-multi:before{background:0 0;animation:md-progressbar-infinite-multicolor-bg 3s step-end infinite}.md .progressbar-infinite.color-multi:after{background:0 0;animation:md-progressbar-infinite-multicolor-fill 3s linear infinite;transform-origin:center center}@keyframes md-progressbar-infinite-1{0%{transform:translateX(-10%) scaleX(.1)}25%{transform:translateX(30%) scaleX(.6)}50%{transform:translateX(100%) scaleX(1)}100%{transform:translateX(100%) scaleX(1)}}@keyframes md-progressbar-infinite-2{0%{transform:translateX(-100%) scaleX(1)}40%{transform:translateX(-100%) scaleX(1)}75%{transform:translateX(60%) scaleX(.35)}90%{transform:translateX(100%) scaleX(.1)}100%{transform:translateX(100%) scaleX(.1)}}@keyframes md-progressbar-infinite-multicolor-bg{0%{background-color:#4caf50}25%{background-color:#f44336}50%{background-color:#2196f3}75%{background-color:#ffeb3b}}@keyframes md-progressbar-infinite-multicolor-fill{0%{transform:scaleX(0);background-color:#f44336}24.9%{transform:scaleX(1);background-color:#f44336}25%{transform:scaleX(0);background-color:#2196f3}49.9%{transform:scaleX(1);background-color:#2196f3}50%{transform:scaleX(0);background-color:#ffeb3b}74.9%{transform:scaleX(1);background-color:#ffeb3b}75%{transform:scaleX(0);background-color:#4caf50}100%{transform:scaleX(1);background-color:#4caf50}}.aurora .progressbar,.aurora .progressbar span,.aurora .progressbar-infinite,.aurora .progressbar-infinite:before{box-shadow:0px 0px 0px 1px rgba(0,0,0,.05) inset}.aurora .progressbar-infinite:before{animation:aurora-progressbar-infinite 1s linear infinite}.aurora .progressbar-infinite:after{display:none}.aurora .progressbar-infinite.color-multi:before{width:400%;background-image:linear-gradient(to right,#4cd964,#5ac8fa,#007aff,#34aadc,#5856d6,#ff2d55,#5856d6,#34aadc,#007aff,#5ac8fa,#4cd964);background-size:25% 100%;background-repeat:repeat-x;animation:aurora-progressbar-infinite-multicolor 3s linear infinite}@keyframes aurora-progressbar-infinite{0%{transform:translate3d(-100%,0,0)}100%{transform:translate3d(100%,0,0)}}@keyframes aurora-progressbar-infinite-multicolor{0%{transform:translate3d(0%,0,0)}100%{transform:translate3d(-50%,0,0)}}:root{--f7-sortable-handler-color:rgba(0, 0, 0, 0.22);--f7-sortable-sorting-item-bg-color:rgba(255, 255, 255, 0.8)}:root .theme-dark,:root.theme-dark{--f7-sortable-sorting-item-bg-color:rgba(50, 50, 50, 0.8);--f7-sortable-handler-color:rgba(255, 255, 255, 0.55)}.ios{--f7-sortable-handler-width:36px;--f7-sortable-sorting-item-box-shadow:0px 2px 8px rgba(0, 0, 0, 0.6)}.md{--f7-sortable-handler-width:42px;--f7-sortable-sorting-item-box-shadow:var(--f7-elevation-2)}.aurora{--f7-sortable-handler-width:32px;--f7-sortable-sorting-item-box-shadow:var(--f7-elevation-2)}.sortable .sortable-handler{width:var(--f7-sortable-handler-width);height:100%;position:absolute;top:0;z-index:10;opacity:0;pointer-events:none;cursor:move;transition-duration:.3s;display:flex;align-items:center;justify-content:center;overflow:hidden;left:var(--f7-safe-area-left)}.sortable .sortable-handler:after{font-family:framework7-core-icons;font-weight:400;font-style:normal;line-height:1;letter-spacing:normal;text-transform:none;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;font-feature-settings:"liga";text-align:center;display:block;width:100%;height:100%;font-size:20px;transition-duration:.3s;transform:translateX(10px);color:var(--f7-sortable-handler-color);overflow:hidden;height:20px;width:18px}.sortable li.sorting{z-index:50;background:var(--f7-sortable-sorting-item-bg-color);transition-duration:0s;box-shadow:var(--f7-sortable-sorting-item-box-shadow)}.sortable li.sorting .item-inner:after{display:none!important}.sortable-opposite .sortable-handler{right:var(--f7-safe-area-left);left:auto}.sortable-opposite .sortable-handler:after{transform:translateX(-10px)}.sortable-opposite .item-content,.sortable-opposite.links-list li a,.sortable.simple-list li,.sortable:not(.sortable-opposite) .item-inner{transition-duration:.3s;transition-property:all}.sortable-sorting li{transition-duration:.3s}.sortable-enabled li:not(.no-sorting):not(.disallow-sorting) .sortable-handler{pointer-events:auto;opacity:1}.sortable-enabled li:not(.no-sorting):not(.disallow-sorting) .sortable-handler:after{transform:translateX(0px)}.sortable-enabled:not(.sortable-opposite) li:not(.no-sorting):not(.disallow-sorting) .item-link .item-inner:before,.sortable-enabled:not(.sortable-opposite) li:not(.no-sorting):not(.disallow-sorting) .item-link .item-title-row:before,.sortable-enabled:not(.sortable-opposite).links-list li:not(.no-sorting):not(.disallow-sorting)>a:before{display:none}.links-list.sortable-enabled:not(.sortable-opposite) li:not(.no-sorting):not(.disallow-sorting) a,.no-chevron .sortable-enabled:not(.sortable-opposite) li:not(.no-sorting):not(.disallow-sorting) .item-link .item-inner,.simple-list.sortable-enabled:not(.sortable-opposite) li:not(.no-sorting):not(.disallow-sorting),.sortable-enabled :not(.sortable-opposite).no-chevron .item-link .item-inner,.sortable-enabled.no-chevron:not(.sortable-opposite) li:not(.no-sorting):not(.disallow-sorting) .item-link .item-inner,.sortable-enabled:not(.sortable-opposite) li:not(.no-sorting):not(.disallow-sorting) .item-inner,.sortable-enabled:not(.sortable-opposite) li:not(.no-sorting):not(.disallow-sorting) .item-link .item-inner,.sortable-enabled:not(.sortable-opposite) li:not(.no-sorting):not(.disallow-sorting) .item-link.no-chevron .item-inner{padding-left:calc(var(--f7-sortable-handler-width) + var(--f7-safe-area-right))}.links-list.sortable-opposite.sortable-enabled li:not(.no-sorting):not(.disallow-sorting) a,.simple-list.sortable-opposite.sortable-enabled li:not(.no-sorting):not(.disallow-sorting),.sortable-opposite.sortable-enabled li:not(.no-sorting):not(.disallow-sorting) .item-content{padding-right:calc(var(--f7-sortable-handler-width) + var(--f7-safe-area-right))}.ios .sortable-handler:after{content:'sort_ios'}.md .sortable-handler:after{content:'sort_md'}.aurora .sortable-handler:after{content:'sort_md';font-size:16px;height:16px}:root{--f7-swipeout-button-text-color:#fff;--f7-swipeout-delete-button-bg-color:#ff3b30;--f7-swipeout-button-font-size:inherit;--f7-swipeout-button-font-weight:inherit;--f7-swipeout-button-bg-color:rgba(0, 0, 0, 0.22)}:root .theme-dark,:root.theme-dark{--f7-swipeout-button-bg-color:rgba(255, 255, 255, 0.55)}.ios{--f7-swipeout-button-padding:0 30px}.md{--f7-swipeout-button-padding:0 24px}.aurora{--f7-swipeout-button-padding:0 12px;--f7-swipeout-button-font-weight:500}.swipeout{overflow:hidden;transform-style:preserve-3d}.swipeout-deleting{transition-duration:.3s}.swipeout-deleting .swipeout-content{transform:translateX(-100%)}.swipeout-transitioning .swipeout-actions-left a,.swipeout-transitioning .swipeout-actions-right a,.swipeout-transitioning .swipeout-content,.swipeout-transitioning .swipeout-overswipe{transition-duration:.3s;transition-property:transform,left}.swipeout-content{position:relative;z-index:10}.swipeout-overswipe{transition-duration:.2s;transition-property:left}.swipeout-actions-left,.swipeout-actions-right{position:absolute;top:0;height:100%;display:flex;direction:ltr}.swipeout-actions-left>a,.swipeout-actions-left>button,.swipeout-actions-left>div,.swipeout-actions-left>span,.swipeout-actions-right>a,.swipeout-actions-right>button,.swipeout-actions-right>div,.swipeout-actions-right>span{color:var(--f7-swipeout-button-text-color);background:var(--f7-swipeout-button-bg-color);padding:var(--f7-swipeout-button-padding);display:flex;align-items:center;position:relative;left:0;font-size:var(--f7-swipeout-button-font-size);font-weight:var(--f7-swipeout-button-font-weight)}.swipeout-actions-left>a:after,.swipeout-actions-left>button:after,.swipeout-actions-left>div:after,.swipeout-actions-left>span:after,.swipeout-actions-right>a:after,.swipeout-actions-right>button:after,.swipeout-actions-right>div:after,.swipeout-actions-right>span:after{content:'';position:absolute;top:0;width:600%;height:100%;background:inherit;z-index:-1;transform:translate3d(0,0,0);pointer-events:none}.swipeout-actions-left .swipeout-delete,.swipeout-actions-right .swipeout-delete{background:var(--f7-swipeout-delete-button-bg-color)}.swipeout-actions-right{right:0%;transform:translateX(100%)}.swipeout-actions-right>a:after,.swipeout-actions-right>button:after,.swipeout-actions-right>div:after,.swipeout-actions-right>span:after{left:100%;margin-left:-1px}.swipeout-actions-left{left:0%;transform:translateX(-100%)}.swipeout-actions-left>a:after,.swipeout-actions-left>button:after,.swipeout-actions-left>div:after,.swipeout-actions-left>span:after{right:100%;margin-right:-1px}.swipeout-actions-left [class*=color-],.swipeout-actions-right [class*=color-]{--f7-swipeout-button-bg-color:var(--f7-theme-color)}:root{--f7-accordion-chevron-icon-down:'chevron_down';--f7-accordion-chevron-icon-up:'chevron_up'}.aurora{--f7-accordion-chevron-icon-down:'chevron_down_aurora';--f7-accordion-chevron-icon-up:'chevron_up_aurora'}.accordion-item-toggle{cursor:pointer}.list.accordion-list .accordion-item-toggle{transition-duration:.3s;position:relative;overflow:hidden}.list.accordion-list .accordion-item-toggle.active-state{transition-duration:.3s;background-color:var(--f7-list-link-pressed-bg-color)}.list.accordion-list .accordion-item-toggle.active-state>.item-inner:after{background-color:transparent}.list.accordion-list .accordion-item-toggle .item-inner{transition-duration:.3s;transition-property:background-color}.list.accordion-list .accordion-item-toggle .item-inner:after{transition-duration:.3s}.list.accordion-list .accordion-item-toggle .ripple-wave{z-index:0}.accordion-item .item-link .item-inner:after{transition-duration:.3s}.accordion-item .block,.accordion-item .list{margin-top:0;margin-bottom:0}.accordion-item .block>h1:first-child,.accordion-item .block>h2:first-child,.accordion-item .block>h3:first-child,.accordion-item .block>h4:first-child,.accordion-item .block>p:first-child{margin-top:10px}.accordion-item .block>h1:last-child,.accordion-item .block>h2:last-child,.accordion-item .block>h3:last-child,.accordion-item .block>h4:last-child,.accordion-item .block>p:last-child{margin-bottom:10px}.accordion-item-opened .accordion-item-toggle .item-inner:after,.accordion-item-opened>.item-link .item-inner:after{background-color:transparent}.list li.accordion-item ul{padding-right:0}.accordion-item-content{position:relative;overflow:hidden;height:0;font-size:14px;transition-duration:.3s}.accordion-item-opened>.accordion-item-content{height:auto}html.device-android-4 .accordion-item-content{transform:none}.list .accordion-item-toggle .item-inner:before{font-family:framework7-core-icons;font-weight:400;font-style:normal;line-height:1;letter-spacing:normal;text-transform:none;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;font-feature-settings:"liga";text-align:center;display:block;width:100%;height:100%;font-size:20px;position:absolute;top:50%;font-size:var(--f7-list-chevron-icon-font-size);color:var(--f7-list-chevron-icon-color);pointer-events:none;left:calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-left))}.list:not(.accordion-opposite) .accordion-item-toggle .item-inner{padding-left:calc(var(--f7-list-chevron-icon-area) + var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-left))}.accordion-opposite .accordion-item-toggle .item-inner,.accordion-opposite .accordion-item-toggle.item-link .item-inner,.accordion-opposite .accordion-item>.item-link>.item-content>.item-inner,.accordion-opposite .accordion-item>.item-link>.item-inner{padding-left:calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-left))}.accordion-opposite .accordion-item>.item-link>.item-title-row{padding-right:0}.accordion-opposite .accordion-item-toggle .item-inner:before,.accordion-opposite .accordion-item-toggle.item-link .item-inner:before,.accordion-opposite .accordion-item>.item-link .item-title-row:before,.accordion-opposite .accordion-item>.item-link>.item-content>.item-inner:before,.accordion-opposite .accordion-item>.item-link>.item-inner:before{display:none}.accordion-opposite .accordion-item-toggle.item-content,.accordion-opposite .accordion-item-toggle>.item-content,.accordion-opposite .accordion-item>.item-content,.accordion-opposite .accordion-item>.item-link>.item-content,.accordion-opposite.links-list .accordion-item>a{position:relative;padding-right:calc(var(--f7-list-chevron-icon-area) + var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-left))}.accordion-opposite .accordion-item-toggle.item-content:before,.accordion-opposite .accordion-item-toggle>.item-content:before,.accordion-opposite .accordion-item>.item-content:before,.accordion-opposite .accordion-item>.item-link>.item-content:before,.accordion-opposite.links-list .accordion-item>a:before{font-family:framework7-core-icons;font-weight:400;font-style:normal;line-height:1;letter-spacing:normal;text-transform:none;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;font-feature-settings:"liga";text-align:center;display:block;width:100%;height:100%;font-size:20px;position:absolute;top:50%;font-size:var(--f7-list-chevron-icon-font-size);color:var(--f7-list-chevron-icon-color);pointer-events:none;content:var(--f7-accordion-chevron-icon-down);width:14px;height:8px;margin-top:-4px;line-height:8px;transform:translateX(-50%);right:calc((var(--f7-list-chevron-icon-area) + var(--f7-list-item-padding-horizontal))/ 2 + var(--f7-safe-area-right))}.list .accordion-item-toggle.active-state{background-color:var(--f7-list-link-pressed-bg-color)}.accordion-item.media-item .accordion-item-toggle .item-title-row:before,.accordion-item.media-item>.item-link .item-title-row:before,.links-list .accordion-item>a:before,.list .accordion-item-toggle .item-inner:before,.list:not(.media-list) .accordion-item:not(.media-item) .accordion-item-toggle .item-inner:before,.list:not(.media-list) .accordion-item:not(.media-item)>.item-link .item-inner:before,.media-list .accordion-item .accordion-item-toggle .item-title-row:before,.media-list .accordion-item>.item-link .item-title-row:before{content:var(--f7-accordion-chevron-icon-down);width:14px;height:8px;margin-top:-4px;line-height:8px}.accordion-item-opened.media-item .accordion-item-toggle .item-title-row:before,.accordion-item-opened.media-item>.item-link .item-title-row:before,.accordion-opposite .accordion-item-opened .accordion-item-toggle.item-content:before,.accordion-opposite .accordion-item-opened .accordion-item-toggle>.item-content:before,.accordion-opposite .accordion-item-opened>.item-content:before,.accordion-opposite .accordion-item-opened>.item-link>.item-content:before,.accordion-opposite .links-list .accordion-item-opened>a:before,.links-list .accordion-item-opened>a:before,.list .accordion-item-toggle.accordion-item-opened .item-inner:before,.list:not(.media-list) .accordion-item-opened:not(.media-item) .accordion-item-toggle .item-inner:before,.list:not(.media-list) .accordion-item-opened:not(.media-item)>.item-link .item-inner:before,.media-list .accordion-item-opened .accordion-item-toggle .item-title-row:before,.media-list .accordion-item-opened>.item-link .item-title-row:before{content:var(--f7-accordion-chevron-icon-up);width:14px;height:8px;margin-top:-4px;line-height:8px}:root .theme-dark,:root.theme-dark{--f7-contacts-list-title-text-color:#fff}.ios{--f7-contacts-list-title-font-size:inherit;--f7-contacts-list-title-font-weight:600;--f7-contacts-list-title-height:22px;--f7-contacts-list-title-text-color:#000;--f7-contacts-list-title-bg-color:#f7f7f7}.ios .theme-dark,.ios.theme-dark{--f7-contacts-list-title-bg-color:#323234}.md{--f7-contacts-list-title-font-size:20px;--f7-contacts-list-title-font-weight:500;--f7-contacts-list-title-height:48px;--f7-contacts-list-title-bg-color:transparent}.aurora{--f7-contacts-list-title-font-weight:600;--f7-contacts-list-title-text-color:#000}.contacts-list{--f7-list-margin-vertical:0px}.contacts-list .list-group-title,.contacts-list li.list-group-title{background-color:var(--f7-contacts-list-title-bg-color,var(--f7-list-group-title-bg-color));font-weight:var(--f7-contacts-list-title-font-weight,var(--f7-list-group-title-font-weight));font-size:var(--f7-contacts-list-title-font-size,var(--f7-list-group-title-font-size));color:var(--f7-contacts-list-title-text-color,var(--f7-theme-color));line-height:var(--f7-contacts-list-title-height,var(--f7-list-group-title-height));height:var(--f7-contacts-list-title-height,var(--f7-list-group-title-height))}.contacts-list .list-group:first-child ul:before{display:none!important}.contacts-list .list-group:last-child ul:after{display:none!important}.md .contacts-list .list-group-title{pointer-events:none;overflow:visible;width:56px}.md .contacts-list .list-group-title+li{margin-top:calc(var(--f7-contacts-list-title-height) * -1)}.md .contacts-list li:not(.list-group-title){padding-right:56px}:root{--f7-list-index-width:16px;--f7-list-index-font-size:11px;--f7-list-index-font-weight:600;--f7-list-index-item-height:14px;--f7-list-index-label-text-color:#fff;--f7-list-index-label-font-weight:500}.ios{--f7-list-index-label-size:44px;--f7-list-index-label-font-size:17px;--f7-list-index-skip-dot-size:6px}.md{--f7-list-index-label-size:56px;--f7-list-index-label-font-size:20px;--f7-list-index-skip-dot-size:4px}.aurora{--f7-list-index-font-size:12px;--f7-list-index-label-size:32px;--f7-list-index-label-font-size:12px;--f7-list-index-label-font-weight:600;--f7-list-index-skip-dot-size:4px}.list-index{position:absolute;top:0;bottom:0;text-align:center;z-index:10;width:var(--f7-list-index-width);cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;left:var(--f7-safe-area-left)}.list-index:before{content:'';position:absolute;width:20px;top:0;right:100%;height:100%}.list-index ul{color:var(--f7-list-index-text-color,var(--f7-theme-color));font-size:var(--f7-list-index-font-size);font-weight:var(--f7-list-index-font-weight);list-style:none;margin:0;padding:0;display:flex;flex-direction:column;justify-content:center;align-items:center;flex-shrink:0;height:100%;width:100%;position:relative}.list-index li{margin:0;padding:0;list-style:none;position:relative;height:var(--f7-list-index-item-height);line-height:var(--f7-list-index-item-height);flex-shrink:0;display:block;width:100%}.list-index .list-index-skip-placeholder:after{content:'';position:absolute;left:50%;top:50%;border-radius:50%;width:var(--f7-list-index-skip-dot-size);height:var(--f7-list-index-skip-dot-size);margin-left:calc(-1 * var(--f7-list-index-skip-dot-size)/ 2);margin-top:calc(-1 * var(--f7-list-index-skip-dot-size)/ 2);background:var(--f7-list-index-text-color,var(--f7-theme-color))}.list-index .list-index-label{position:absolute;bottom:0;right:100%;text-align:center;background-color:var(--f7-list-index-label-bg-color,var(--f7-theme-color));color:var(--f7-list-index-label-text-color);width:var(--f7-list-index-label-size);height:var(--f7-list-index-label-size);line-height:var(--f7-list-index-label-size);font-size:var(--f7-list-index-label-font-size);font-weight:var(--f7-list-index-label-font-weight)}.navbars~.page>.list-index,.navbar~.list-index,.navbar~.page>.list-index{top:var(--f7-navbar-height)}.ios .navbars~.toolbar-top-ios .md .navbar~.toolbar-top-md~.list-index,.ios .navbar~.toolbar-top-ios~.list-index,.navbars~.toolbar-top~.list-index,.navbar~.toolbar-top~.list-index{top:calc(var(--f7-navbar-height) + var(--f7-toolbar-height))}.ios .navbars~.toolbar-top-ios .md .navbar~.toolbar-top-md.tabbar-labels~.list-index,.ios .navbar~.toolbar-top-ios.tabbar-labels~.list-index,.navbars~.toolbar-top.tabbar-labels~.list-index,.navbar~.toolbar-top.tabbar-labels~.list-index{top:calc(var(--f7-navbar-height) + var(--f7-tabbar-labels-height))}.navbars~.subnavbar~.list-index,.navbar~.subnavbar~.list-index,.page-with-subnavbar .navbar~.list-index{top:calc(var(--f7-navbar-height) + var(--f7-subnavbar-height))}.ios .toolbar-bottom-ios~* .page>.list-index,.ios .toolbar-bottom-ios~.list-index,.ios .toolbar-bottom-ios~.page>.list-index,.md .toolbar-bottom-md~* .page>.list-index,.md .toolbar-bottom-md~.list-index,.md .toolbar-bottom-md~.page>.list-index,.toolbar-bottom~* .page>.list-index,.toolbar-bottom~.list-index,.toolbar-bottom~.page>.list-index{bottom:calc(var(--f7-toolbar-height) + var(--f7-safe-area-bottom))}.ios .toolbar-bottom-ios.tabbar-labels~* .page>.list-index,.ios .toolbar-bottom-ios.tabbar-labels~.list-index,.ios .toolbar-bottom-ios.tabbar-labels~.page>.list-index,.md .toolbar-bottom-md.tabbar-labels~* .page>.list-index,.md .toolbar-bottom-md.tabbar-labels~.list-index,.md .toolbar-bottom-md.tabbar-labels~.page>.list-index,.toolbar-bottom.tabbar-labels~* .page>.list-index,.toolbar-bottom.tabbar-labels~.list-index,.toolbar-bottom.tabbar-labels~.page>.list-index{bottom:calc(var(--f7-tabbar-labels-height) + var(--f7-safe-area-bottom))}.ios .list-index .list-index-label{margin-bottom:calc(-1 * var(--f7-list-index-label-size)/ 2);margin-right:calc(var(--f7-list-index-width) - 1px);border-radius:50%}.ios .list-index .list-index-label:before{position:absolute;width:100%;height:100%;border-radius:50% 0% 50% 50%;content:'';background-color:inherit;left:0;top:0;transform:rotate(45deg);z-index:-1}.md .list-index .list-index-label{border-radius:50% 50% 0 50%}.aurora .list-index .list-index-label{margin-bottom:calc(-1 * var(--f7-list-index-label-size)/ 2);margin-right:calc(var(--f7-list-index-width) - 1px);border-radius:50%}.aurora .list-index .list-index-label:before{position:absolute;width:100%;height:100%;border-radius:50% 1px 50% 50%;content:'';background-color:inherit;left:0;top:0;transform:rotate(45deg);z-index:-1}:root{--f7-timeline-inner-block-margin-vertical:16px;--f7-timeline-divider-margin-horizontal:16px;--f7-timeline-horizontal-date-height:34px;--f7-timeline-year-height:24px;--f7-timeline-year-font-weight:inherit;--f7-timeline-month-height:24px;--f7-timeline-month-font-size:inherit;--f7-timeline-month-font-weight:inherit;--f7-timeline-item-text-font-weight:inherit;--f7-timeline-item-subtitle-font-weight:inherit;--f7-timeline-item-inner-bg-color:#fff}:root .theme-dark,:root.theme-dark{--f7-timeline-item-inner-bg-color:#1c1c1d;--f7-timeline-horizontal-item-border-color:rgba(255, 255, 255, 0.15);--f7-timeline-horizontal-item-date-border-color:rgba(255, 255, 255, 0.15)}.ios{--f7-timeline-padding-horizontal:16px;--f7-timeline-margin-vertical:35px;--f7-timeline-item-inner-border-radius:7px;--f7-timeline-item-inner-box-shadow:none;--f7-timeline-item-time-font-size:13px;--f7-timeline-item-title-font-size:17px;--f7-timeline-item-title-line-height:inherit;--f7-timeline-item-title-font-weight:600;--f7-timeline-item-subtitle-font-size:15px;--f7-timeline-item-subtitle-line-height:inherit;--f7-timeline-item-text-font-size:inherit;--f7-timeline-item-text-color:inherit;--f7-timeline-item-text-line-height:inherit;--f7-timeline-year-font-size:16px;--f7-timeline-horizontal-item-padding:10px;--f7-timeline-horizontal-item-date-shadow-image:none;--f7-timeline-item-time-text-color:rgba(0, 0, 0, 0.45);--f7-timeline-horizontal-item-border-color:rgba(0, 0, 0, 0.22);--f7-timeline-horizontal-item-date-border-color:rgba(0, 0, 0, 0.22)}.ios .theme-dark,.ios.theme-dark{--f7-timeline-item-time-text-color:rgba(255, 255, 255, 0.55)}.md{--f7-timeline-padding-horizontal:16px;--f7-timeline-margin-vertical:32px;--f7-timeline-item-inner-border-radius:4px;--f7-timeline-item-inner-box-shadow:var(--f7-elevation-1);--f7-timeline-item-time-font-size:13px;--f7-timeline-item-title-font-size:16px;--f7-timeline-item-title-line-height:inherit;--f7-timeline-item-title-font-weight:400;--f7-timeline-item-subtitle-font-size:inherit;--f7-timeline-item-subtitle-line-height:inherit;--f7-timeline-item-text-font-size:inherit;--f7-timeline-item-text-line-height:inherit;--f7-timeline-item-text-color:inherit;--f7-timeline-year-font-size:16px;--f7-timeline-horizontal-item-padding:12px;--f7-timeline-horizontal-item-date-shadow-image:var(--f7-bars-shadow-bottom-image);--f7-timeline-item-time-text-color:rgba(0, 0, 0, 0.54);--f7-timeline-horizontal-item-border-color:rgba(0, 0, 0, 0.12);--f7-timeline-horizontal-item-date-border-color:transparent}.md .theme-dark,.md.theme-dark{--f7-timeline-item-time-text-color:rgba(255, 255, 255, 0.54)}.aurora{--f7-timeline-padding-horizontal:10px;--f7-timeline-margin-vertical:15px;--f7-timeline-item-inner-border-radius:4px;--f7-timeline-item-inner-box-shadow:0px 1px 2px rgba(0, 0, 0, 0.15);--f7-timeline-item-time-font-size:12px;--f7-timeline-item-title-font-size:14px;--f7-timeline-item-title-line-height:1.3;--f7-timeline-item-title-font-weight:600;--f7-timeline-item-subtitle-font-size:14px;--f7-timeline-item-subtitle-line-height:1.3;--f7-timeline-item-text-font-size:12px;--f7-timeline-item-text-line-height:1.33;--f7-timeline-year-font-size:14px;--f7-timeline-year-font-weight:500;--f7-timeline-horizontal-item-padding:10px;--f7-timeline-horizontal-item-date-shadow-image:none;--f7-timeline-item-time-text-color:rgba(0, 0, 0, 0.5);--f7-timeline-item-text-color:rgba(0, 0, 0, 0.6);--f7-timeline-horizontal-item-border-color:rgba(0, 0, 0, 0.2);--f7-timeline-horizontal-item-date-border-color:rgba(0, 0, 0, 0.2)}.aurora .theme-dark,.aurora.theme-dark{--f7-timeline-item-time-text-color:rgba(255, 255, 255, 0.54);--f7-timeline-item-text-color:rgba(255, 255, 255, 0.54)}.timeline{box-sizing:border-box;margin:var(--f7-timeline-margin-vertical) 0;padding:0 var(--f7-timeline-padding-horizontal);padding-top:0;padding-bottom:0;padding-left:calc(var(--f7-timeline-padding-horizontal) + var(--f7-safe-area-left));padding-right:calc(var(--f7-timeline-padding-horizontal) + var(--f7-safe-area-right))}.block-strong .timeline{padding:0;margin:0}.timeline-item{display:flex;justify-content:flex-start;overflow:hidden;box-sizing:border-box;position:relative;padding:2px 0px var(--f7-timeline-padding-horizontal)}.timeline-item:last-child{padding-bottom:2px}.timeline-item-date{flex-shrink:0;width:50px;text-align:right;box-sizing:border-box}.timeline-item-date small{font-size:10px}.timeline-item-content{margin:2px;min-width:0;position:relative;flex-shrink:10}.timeline-item-content .block,.timeline-item-content .card,.timeline-item-content .list,.timeline-item-content.block,.timeline-item-content.card,.timeline-item-content.list{margin:0;width:100%}.timeline-item-content .block+.block,.timeline-item-content .block+.card,.timeline-item-content .block+.list,.timeline-item-content .card+.block,.timeline-item-content .card+.card,.timeline-item-content .card+.list,.timeline-item-content .list+.block,.timeline-item-content .list+.card,.timeline-item-content .list+.list{margin:var(--f7-timeline-inner-block-margin-vertical) 0 0}.timeline-item-content h1:first-child,.timeline-item-content h2:first-child,.timeline-item-content h3:first-child,.timeline-item-content h4:first-child,.timeline-item-content ol:first-child,.timeline-item-content p:first-child,.timeline-item-content ul:first-child{margin-top:0}.timeline-item-content h1:last-child,.timeline-item-content h2:last-child,.timeline-item-content h3:last-child,.timeline-item-content h4:last-child,.timeline-item-content ol:last-child,.timeline-item-content p:last-child,.timeline-item-content ul:last-child{margin-bottom:0}.timeline-item-inner{background:var(--f7-timeline-item-inner-bg-color);box-sizing:border-box;border-radius:var(--f7-timeline-item-inner-border-radius);padding:8px var(--f7-timeline-padding-horizontal);box-shadow:var(--f7-timeline-item-inner-box-shadow)}.timeline-item-inner+.timeline-item-inner{margin-top:var(--f7-timeline-inner-block-margin-vertical)}.timeline-item-inner .block{padding:0;color:inherit}.timeline-item-inner .block-strong{padding-left:0;padding-right:0;margin:0}.timeline-item-inner .block-strong:after,.timeline-item-inner .block-strong:before{display:none!important}.timeline-item-inner .list ul:after,.timeline-item-inner .list ul:before{display:none!important}.timeline-item-divider{width:1px;position:relative;width:10px;height:10px;background:#bbb;border-radius:50%;flex-shrink:0;margin:3px var(--f7-timeline-divider-margin-horizontal) 0}.timeline-item-divider:after,.timeline-item-divider:before{content:' ';width:1px;height:100vh;position:absolute;left:50%;background:inherit;transform:translate3d(-50%,0,0)}.timeline-item-divider:after{top:100%}.timeline-item-divider:before{bottom:100%}.timeline-item:last-child .timeline-item-divider:after{display:none}.timeline-item:first-child .timeline-item-divider:before{display:none}.timeline-item-time{font-size:var(--f7-timeline-item-time-font-size);margin-top:var(--f7-timeline-inner-block-margin-vertical);color:var(--f7-timeline-item-time-text-color)}.timeline-item-time:first-child,.timeline-item-time:last-child{margin-top:0}.timeline-item-title+.timeline-item-time{margin-top:0}.timeline-item-title{font-size:var(--f7-timeline-item-title-font-size);font-weight:var(--f7-timeline-item-title-font-weight);line-height:var(--f7-timeline-item-title-line-height)}.timeline-item-subtitle{font-size:var(--f7-timeline-item-subtitle-font-size);font-weight:var(--f7-timeline-item-subtitle-font-weight);line-height:var(--f7-timeline-item-subtitle-line-height)}.timeline-item-text{color:var(--f7-timeline-item-text-color);font-size:var(--f7-timeline-item-text-font-size);font-weight:var(--f7-timeline-item-text-font-weight);line-height:var(--f7-timeline-item-text-line-height)}.timeline-sides .timeline-item,.timeline-sides .timeline-item-right{margin-right:calc(50% - (var(--f7-timeline-divider-margin-horizontal) * 2 + 10px)/ 2 - 50px);margin-left:0}.timeline-sides .timeline-item .timeline-item-date,.timeline-sides .timeline-item-right .timeline-item-date{text-align:left}.timeline-sides .timeline-item-left,.timeline-sides .timeline-item:not(.timeline-item-right):nth-child(2n){flex-direction:row-reverse;margin-left:calc(50% - (var(--f7-timeline-divider-margin-horizontal) * 2 + 10px)/ 2 - 50px);margin-right:0}.timeline-sides .timeline-item-left .timeline-item-date,.timeline-sides .timeline-item:not(.timeline-item-right):nth-child(2n) .timeline-item-date{text-align:right}@media (min-width:480px){.xsmall-sides .timeline-item,.xsmall-sides .timeline-item-right{margin-right:calc(50% - (var(--f7-timeline-divider-margin-horizontal) * 2 + 10px)/ 2 - 50px);margin-left:0}.xsmall-sides .timeline-item .timeline-item-date,.xsmall-sides .timeline-item-right .timeline-item-date{text-align:left}.xsmall-sides .timeline-item-left,.xsmall-sides .timeline-item:not(.timeline-item-right):nth-child(2n){flex-direction:row-reverse;margin-left:calc(50% - (var(--f7-timeline-divider-margin-horizontal) * 2 + 10px)/ 2 - 50px);margin-right:0}.xsmall-sides .timeline-item-left .timeline-item-date,.xsmall-sides .timeline-item:not(.timeline-item-right):nth-child(2n) .timeline-item-date{text-align:right}}@media (min-width:568px){.small-sides .timeline-item,.small-sides .timeline-item-right{margin-right:calc(50% - (var(--f7-timeline-divider-margin-horizontal) * 2 + 10px)/ 2 - 50px);margin-left:0}.small-sides .timeline-item .timeline-item-date,.small-sides .timeline-item-right .timeline-item-date{text-align:left}.small-sides .timeline-item-left,.small-sides .timeline-item:not(.timeline-item-right):nth-child(2n){flex-direction:row-reverse;margin-left:calc(50% - (var(--f7-timeline-divider-margin-horizontal) * 2 + 10px)/ 2 - 50px);margin-right:0}.small-sides .timeline-item-left .timeline-item-date,.small-sides .timeline-item:not(.timeline-item-right):nth-child(2n) .timeline-item-date{text-align:right}}@media (min-width:768px){.medium-sides .timeline-item,.medium-sides .timeline-item-right{margin-right:calc(50% - (var(--f7-timeline-divider-margin-horizontal) * 2 + 10px)/ 2 - 50px);margin-left:0}.medium-sides .timeline-item .timeline-item-date,.medium-sides .timeline-item-right .timeline-item-date{text-align:left}.medium-sides .timeline-item-left,.medium-sides .timeline-item:not(.timeline-item-right):nth-child(2n){flex-direction:row-reverse;margin-left:calc(50% - (var(--f7-timeline-divider-margin-horizontal) * 2 + 10px)/ 2 - 50px);margin-right:0}.medium-sides .timeline-item-left .timeline-item-date,.medium-sides .timeline-item:not(.timeline-item-right):nth-child(2n) .timeline-item-date{text-align:right}}@media (min-width:1024px){.large-sides .timeline-item,.large-sides .timeline-item-right{margin-right:calc(50% - (var(--f7-timeline-divider-margin-horizontal) * 2 + 10px)/ 2 - 50px);margin-left:0}.large-sides .timeline-item .timeline-item-date,.large-sides .timeline-item-right .timeline-item-date{text-align:left}.large-sides .timeline-item-left,.large-sides .timeline-item:not(.timeline-item-right):nth-child(2n){flex-direction:row-reverse;margin-left:calc(50% - (var(--f7-timeline-divider-margin-horizontal) * 2 + 10px)/ 2 - 50px);margin-right:0}.large-sides .timeline-item-left .timeline-item-date,.large-sides .timeline-item:not(.timeline-item-right):nth-child(2n) .timeline-item-date{text-align:right}}@media (min-width:1200px){.xlarge-sides .timeline-item,.xlarge-sides .timeline-item-right{margin-right:calc(50% - (var(--f7-timeline-divider-margin-horizontal) * 2 + 10px)/ 2 - 50px);margin-left:0}.xlarge-sides .timeline-item .timeline-item-date,.xlarge-sides .timeline-item-right .timeline-item-date{text-align:left}.xlarge-sides .timeline-item-left,.xlarge-sides .timeline-item:not(.timeline-item-right):nth-child(2n){flex-direction:row-reverse;margin-left:calc(50% - (var(--f7-timeline-divider-margin-horizontal) * 2 + 10px)/ 2 - 50px);margin-right:0}.xlarge-sides .timeline-item-left .timeline-item-date,.xlarge-sides .timeline-item:not(.timeline-item-right):nth-child(2n) .timeline-item-date{text-align:right}}.timeline-horizontal{height:100%;display:flex;padding:0;margin:0;position:relative;padding-left:var(--f7-safe-area-left);padding-right:0}.timeline-horizontal .timeline-item{display:block;width:33.33333333vw;margin:0;padding:0;flex-shrink:0;position:relative;height:100%;padding-top:var(--f7-timeline-horizontal-date-height)!important;padding-bottom:var(--f7-timeline-horizontal-item-padding)}.timeline-horizontal .timeline-item:after{content:'';position:absolute;background-color:var(--f7-timeline-horizontal-item-border-color);display:block;z-index:15;top:0;right:0;bottom:auto;left:auto;width:1px;height:100%;transform-origin:100% 50%;transform:scaleX(calc(1 / var(--f7-device-pixel-ratio)))}.timeline-horizontal .timeline-item-date{padding:0px var(--f7-timeline-horizontal-item-padding);width:auto;text-align:left;line-height:var(--f7-timeline-horizontal-date-height);position:absolute;left:0;top:0;width:100%;height:var(--f7-timeline-horizontal-date-height);background-color:var(--f7-bars-bg-color);color:var(--f7-bars-text-color);text-align:right}@supports ((-webkit-backdrop-filter:blur(20px)) or (backdrop-filter:blur(20px))){.ios-translucent-bars .timeline-horizontal .timeline-item-date{background-color:rgba(var(--f7-bars-bg-color-rgb),var(--f7-bars-translucent-opacity));-webkit-backdrop-filter:saturate(180%) blur(var(--f7-bars-translucent-blur));backdrop-filter:saturate(180%) blur(var(--f7-bars-translucent-blur))}}.timeline-horizontal .timeline-item-date:after{content:'';position:absolute;background-color:var(--f7-timeline-horizontal-item-date-border-color);display:block;z-index:15;top:auto;right:auto;bottom:0;left:0;height:1px;width:100%;transform-origin:50% 100%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.timeline-horizontal .timeline-item-date:before{content:'';position:absolute;right:0;width:100%;top:100%;bottom:auto;height:8px;pointer-events:none;background:var(--f7-timeline-horizontal-item-date-shadow-image)}.timeline-horizontal.no-shadow .timeline-item-date:before{display:none}.timeline-horizontal .timeline-item-content{padding:var(--f7-timeline-horizontal-item-padding);height:calc(100% - var(--f7-timeline-horizontal-item-padding));overflow:auto;-webkit-overflow-scrolling:touch;margin:0}.timeline-horizontal .timeline-item-divider{display:none}.timeline-horizontal .timeline-month:last-child .timeline-item:last-child:after,.timeline-horizontal>.timeline-item:last-child:after{display:none!important}.timeline-horizontal.col-5 .timeline-item{width:5vw}.timeline-horizontal.col-10 .timeline-item{width:10vw}.timeline-horizontal.col-15 .timeline-item{width:15vw}.timeline-horizontal.col-20 .timeline-item{width:20vw}.timeline-horizontal.col-25 .timeline-item{width:25vw}.timeline-horizontal.col-30 .timeline-item{width:30vw}.timeline-horizontal.col-33 .timeline-item{width:33.333333333333336vw}.timeline-horizontal.col-35 .timeline-item{width:35vw}.timeline-horizontal.col-40 .timeline-item{width:40vw}.timeline-horizontal.col-45 .timeline-item{width:45vw}.timeline-horizontal.col-50 .timeline-item{width:50vw}.timeline-horizontal.col-55 .timeline-item{width:55vw}.timeline-horizontal.col-60 .timeline-item{width:60vw}.timeline-horizontal.col-65 .timeline-item{width:65vw}.timeline-horizontal.col-66 .timeline-item{width:66.66666666666666vw}.timeline-horizontal.col-70 .timeline-item{width:70vw}.timeline-horizontal.col-75 .timeline-item{width:75vw}.timeline-horizontal.col-80 .timeline-item{width:80vw}.timeline-horizontal.col-85 .timeline-item{width:85vw}.timeline-horizontal.col-90 .timeline-item{width:90vw}.timeline-horizontal.col-95 .timeline-item{width:95vw}.timeline-horizontal.col-100 .timeline-item{width:100vw}@media (min-width:768px){.timeline-horizontal.tablet-5 .timeline-item{width:5vw}.timeline-horizontal.tablet-10 .timeline-item{width:10vw}.timeline-horizontal.tablet-15 .timeline-item{width:15vw}.timeline-horizontal.tablet-20 .timeline-item{width:20vw}.timeline-horizontal.tablet-25 .timeline-item{width:25vw}.timeline-horizontal.tablet-30 .timeline-item{width:30vw}.timeline-horizontal.tablet-33 .timeline-item{width:33.333333333333336vw}.timeline-horizontal.tablet-35 .timeline-item{width:35vw}.timeline-horizontal.tablet-40 .timeline-item{width:40vw}.timeline-horizontal.tablet-45 .timeline-item{width:45vw}.timeline-horizontal.tablet-50 .timeline-item{width:50vw}.timeline-horizontal.tablet-55 .timeline-item{width:55vw}.timeline-horizontal.tablet-60 .timeline-item{width:60vw}.timeline-horizontal.tablet-65 .timeline-item{width:65vw}.timeline-horizontal.tablet-66 .timeline-item{width:66.66666666666666vw}.timeline-horizontal.tablet-70 .timeline-item{width:70vw}.timeline-horizontal.tablet-75 .timeline-item{width:75vw}.timeline-horizontal.tablet-80 .timeline-item{width:80vw}.timeline-horizontal.tablet-85 .timeline-item{width:85vw}.timeline-horizontal.tablet-90 .timeline-item{width:90vw}.timeline-horizontal.tablet-95 .timeline-item{width:95vw}.timeline-horizontal.tablet-100 .timeline-item{width:100vw}}.timeline-year{padding-top:var(--f7-timeline-year-height)}.timeline-year:after{content:'';position:absolute;background-color:var(--f7-timeline-horizontal-item-border-color);display:block;z-index:15;top:0;right:0;bottom:auto;left:auto;width:1px;height:100%;transform-origin:100% 50%;transform:scaleX(calc(1 / var(--f7-device-pixel-ratio)))}.timeline-year:last-child:after{display:none!important}.timeline-month{padding-top:var(--f7-timeline-month-height)}.timeline-month .timeline-item:before{content:'';position:absolute;background-color:var(--f7-timeline-horizontal-item-border-color);display:block;z-index:15;top:0;right:auto;bottom:auto;left:0;height:1px;width:100%;transform-origin:50% 0%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.timeline-month,.timeline-year{display:flex;flex-shrink:0;position:relative;box-sizing:border-box;height:100%}.timeline-year-title{line-height:var(--f7-timeline-year-height);height:var(--f7-timeline-year-height);font-size:var(--f7-timeline-year-font-size);font-weight:var(--f7-timeline-year-font-weight)}.timeline-month-title{line-height:var(--f7-timeline-month-height);height:var(--f7-timeline-month-height);font-size:var(--f7-timeline-month-font-size);font-weight:var(--f7-timeline-month-font-weight)}.timeline-month-title,.timeline-year-title{position:absolute;left:0;top:0;width:100%;box-sizing:border-box;padding:0 var(--f7-timeline-horizontal-item-padding);background-color:var(--f7-bars-bg-color);color:var(--f7-bars-text-color)}@supports ((-webkit-backdrop-filter:blur(20px)) or (backdrop-filter:blur(20px))){.ios-translucent-bars .timeline-month-title,.ios-translucent-bars .timeline-year-title{background-color:rgba(var(--f7-bars-bg-color-rgb),var(--f7-bars-translucent-opacity));-webkit-backdrop-filter:saturate(180%) blur(var(--f7-bars-translucent-blur));backdrop-filter:saturate(180%) blur(var(--f7-bars-translucent-blur))}}.timeline-month-title span,.timeline-year-title span{display:inline-block;position:-webkit-sticky;position:sticky;right:calc(var(--f7-timeline-horizontal-item-padding) + var(--f7-safe-area-right))}.timeline-month-title span{margin-top:-2px}.timeline-year:first-child .timeline-month:first-child .timeline-month-title,.timeline-year:first-child .timeline-year-title,.timeline-year:first-child .timeline-year-title+.timeline-month .timeline-month-title{left:calc(var(--f7-safe-area-left) * -1);right:0;width:auto}.timeline-horizontal .timeline-item:first-child,.timeline-year:first-child .timeline-month:first-child .timeline-item:first-child,.timeline-year:first-child .timeline-year-title+.timeline-month .timeline-item:first-child,.timeline-year:first-child .timeline-year-title+.timeline-month .timeline-month-title+.timeline-item{overflow:visible}.timeline-horizontal .timeline-item:first-child .timeline-item-date,.timeline-year:first-child .timeline-month:first-child .timeline-item:first-child .timeline-item-date,.timeline-year:first-child .timeline-year-title+.timeline-month .timeline-item:first-child .timeline-item-date,.timeline-year:first-child .timeline-year-title+.timeline-month .timeline-month-title+.timeline-item .timeline-item-date{width:auto;padding-left:calc(var(--f7-timeline-horizontal-item-padding) + var(--f7-safe-area-left));left:calc(0px - var(--f7-safe-area-left));right:0}.timeline-year:last-child .timeline-month:last-child .timeline-month-title,.timeline-year:last-child .timeline-year-title{width:auto;right:calc(0px - var(--f7-safe-area-right))}.timeline-horizontal .timeline-item:last-child,.timeline-year:last-child .timeline-month:last-child .timeline-item:last-child{overflow:visible}.timeline-horizontal .timeline-item:last-child .timeline-item-date,.timeline-year:last-child .timeline-month:last-child .timeline-item:last-child .timeline-item-date{width:auto;right:calc(0px - var(--f7-safe-area-right));left:0}.ios .block-strong .timeline-item-inner{border-radius:3px;border:1px solid rgba(0,0,0,.1)}.ios .timeline-year-title span{margin-top:3px}.md .timeline-year-title span{margin-top:2px}.aurora .timeline-year-title span{margin-top:2px}.tabs .tab{display:none}.tabs .tab-active{display:block}.tabs-animated-wrap{position:relative;width:100%;overflow:hidden;height:100%}.tabs-animated-wrap>.tabs{display:flex;height:100%;transition-duration:.3s}.tabs-animated-wrap>.tabs>.tab{width:100%;display:block;flex-shrink:0}.tabs-animated-wrap.not-animated>.tabs{transition-duration:0s}.tabs-swipeable-wrap{height:100%}.tabs-swipeable-wrap>.tabs{height:100%}.tabs-swipeable-wrap>.tabs>.tab{display:block}.page>.tabs{height:100%}:root{--f7-panel-width:260px;--f7-panel-bg-color:#fff}.ios{--f7-panel-collapsed-width:58px;--f7-panel-backdrop-bg-color:rgba(0, 0, 0, 0);--f7-panel-transition-duration:400ms;--f7-panel-shadow:transparent}.md{--f7-panel-collapsed-width:60px;--f7-panel-backdrop-bg-color:rgba(0, 0, 0, 0.3);--f7-panel-transition-duration:300ms;--f7-panel-shadow:rgba(0, 0, 0, 0.2) 0%,rgba(0, 0, 0, 0.07) 30%,rgba(0, 0, 0, 0.03) 40%,rgba(0, 0, 0, 0) 60%,rgba(0, 0, 0, 0) 100%}.aurora{--f7-panel-collapsed-width:44px;--f7-panel-backdrop-bg-color:rgba(0, 0, 0, 0.2);--f7-panel-transition-duration:400ms;--f7-panel-shadow:transparent}.panel-backdrop{position:absolute;left:0;top:var(--f7-appbar-app-offset,0px);width:100%;height:calc(100% - var(--f7-appbar-app-offset,0px));opacity:0;z-index:5999;visibility:hidden;pointer-events:none;transform:translate3d(0,0,0);background-color:var(--f7-panel-backdrop-bg-color);transition-property:transform,opacity;transition-duration:var(--f7-panel-transition-duration)}.panel-backdrop .with-panel,.panel-backdrop .with-panel-closing{visibility:visible}.panel-backdrop.not-animated{transition-duration:0s!important}.panel{z-index:1000;box-sizing:border-box;position:absolute;top:var(--f7-appbar-app-offset,0px);height:calc(100% - var(--f7-appbar-app-offset,0px));transform:translate3d(0,0,0);width:var(--f7-panel-width);background-color:var(--f7-panel-bg-color);overflow:visible;transition-property:transform;transition-duration:var(--f7-panel-transition-duration)}.panel:not(.panel-in):not(.panel-out):not(.panel-in-breakpoint):not(.panel-in-collapsed):not(.panel-in-swipe){display:none}.panel:after{pointer-events:none;opacity:0;z-index:5999;position:absolute;content:'';top:0;width:20px;height:100%;transition-property:transform,opacity;transition-duration:var(--f7-panel-transition-duration)}.panel.not-animated,.panel.not-animated:after{transition-duration:0s!important}.panel.panel-reveal.not-animated~.view,.panel.panel-reveal.not-animated~.views{transition-duration:0s!important}.panel.panel-resizing{-webkit-user-select:none;-moz-user-select:none;user-select:none}.panel.panel-resizing,.panel.panel-resizing:after,.panel.panel-resizing~.view,.panel.panel-resizing~.views{transition-duration:0s!important}.panel-cover{z-index:6000}.panel-left{left:0;width:var(--f7-panel-left-width,var(--f7-panel-width))}.panel-left.panel-cover{transform:translate3d(calc(-1 * var(--f7-panel-left-width,var(--f7-panel-width))),0,0)}.panel-left.panel-cover:after{left:100%;background:linear-gradient(to right,var(--f7-panel-shadow))}html.with-panel-left-cover .panel-left.panel-cover:after{opacity:1}.panel-left.panel-reveal:after{right:0;transform:translate3d(calc(-1 * var(--f7-panel-left-width,var(--f7-panel-width))),0,0);background:linear-gradient(to left,var(--f7-panel-shadow))}html.with-panel-left-reveal .panel-left.panel-reveal:after{opacity:1;transform:translate3d(0,0,0)}.panel-right{right:0;width:var(--f7-panel-right-width,var(--f7-panel-width))}.panel-right.panel-cover{transform:translate3d(var(--f7-panel-right-width,var(--f7-panel-width)),0,0)}.panel-right.panel-cover:after{right:100%;background:linear-gradient(to left,var(--f7-panel-shadow))}html.with-panel-right-cover .panel-right.panel-cover:after{opacity:1}.panel-right.panel-reveal:after{left:0;background:linear-gradient(to right,var(--f7-panel-shadow));transform:translate3d(var(--f7-panel-right-width,var(--f7-panel-width)),0,0)}html.with-panel-right-reveal .panel-right.panel-reveal:after{opacity:1;transform:translate3d(0,0,0)}.panel-in-breakpoint{transform:translate3d(0,0,0)!important;transition-duration:0s}.panel-in-breakpoint:after{display:none}.panel-in-breakpoint.panel-cover{z-index:5900}html.with-panel-closing .framework7-root>.view,html.with-panel-closing .views,html.with-panel-left-reveal .framework7-root>.view,html.with-panel-left-reveal .views,html.with-panel-right-reveal .framework7-root>.view,html.with-panel-right-reveal .views{transition-duration:var(--f7-panel-transition-duration);transition-property:transform}html.with-panel-closing .panel-backdrop-in,html.with-panel-left-reveal .panel-backdrop-in,html.with-panel-right-reveal .panel-backdrop-in{visibility:visible;pointer-events:auto;opacity:0}html.with-panel .framework7-root>.view .page-content,html.with-panel .framework7-root>.views .page-content{overflow:hidden;-webkit-overflow-scrolling:auto}html.with-panel-left-cover .panel-backdrop-in,html.with-panel-right-cover .panel-backdrop-in{visibility:visible;pointer-events:auto;opacity:1}html.with-panel-left-reveal .framework7-root>.view,html.with-panel-left-reveal .panel-backdrop-in,html.with-panel-left-reveal .views{transform:translate3d(var(--f7-panel-left-width,var(--f7-panel-width)),0,0)}html.with-panel-right-reveal .framework7-root>.view,html.with-panel-right-reveal .panel-backdrop-in,html.with-panel-right-reveal .views{transform:translate3d(calc(-1 * var(--f7-panel-right-width,var(--f7-panel-width))),0,0)}html.with-panel-left-cover .panel-left{transform:translate3d(0px,0,0)}html.with-panel-right-cover .panel-right{transform:translate3d(0px,0,0)}.panel-resize-handler{position:absolute;top:0;height:100%;width:6px;cursor:col-resize;z-index:6000;display:none}.panel-resizable .panel-resize-handler{display:block}.panel-left.panel-cover .panel-resize-handler{right:-3px}.panel-left.panel-reveal .panel-resize-handler{right:0}.panel-right.panel-cover .panel-resize-handler{left:-3px}.panel-right.panel-reveal .panel-resize-handler{left:0}.panel-left.panel-in-collapsed~.view,.panel-left.panel-in-collapsed~.views{margin-left:var(--f7-panel-left-collapsed-width,var(--f7-panel-collapsed-width))}html.with-panel-left-reveal .panel-left.panel-in-collapsed~.view,html.with-panel-left-reveal .panel-left.panel-in-collapsed~.views{transform:translate3d(calc(var(--f7-panel-left-width,var(--f7-panel-width)) - var(--f7-panel-left-collapsed-width,var(--f7-panel-collapsed-width))),0,0)}.panel-right.panel-in-collapsed~.view,.panel-right.panel-in-collapsed~.views{margin-right:var(--f7-panel-right-collapsed-width,var(--f7-panel-collapsed-width))}html.with-panel-right-reveal .panel-right.panel-in-collapsed~.view,html.with-panel-right-reveal .panel-right.panel-in-collapsed~.views{transform:translate3d(calc(var(--f7-panel-right-collapsed-width,var(--f7-panel-collapsed-width)) - var(--f7-panel-right-width,var(--f7-panel-width))),0,0)}html.with-modal-popup-push .framework7-root,html.with-modal-popup-push-closing .framework7-root{--f7-panelPushScale:var(--f7-popup-push-scale);--f7-panelPushTransitionDuration:var(--f7-popup-transition-duration);--f7-panelPushBorderRadius:var(--f7-popup-push-border-radius)}html.with-modal-sheet-push .framework7-root,html.with-modal-sheet-push-closing .framework7-root{--f7-panelPushScale:var(--f7-sheet-push-scale);--f7-panelPushTransitionDuration:var(--f7-sheet-transition-duration);--f7-panelPushBorderRadius:var(--f7-sheet-push-border-radius)}html.with-modal-popup-push .framework7-root>.panel-in,html.with-modal-popup-push .framework7-root>.panel-out,html.with-modal-sheet-push .framework7-root>.panel-in,html.with-modal-sheet-push .framework7-root>.panel-out{transition-duration:var(--f7-panelPushTransitionDuration)}html.with-modal-popup-push .framework7-root>.panel-in.panel-reveal.panel-left,html.with-modal-popup-push .framework7-root>.panel-out.panel-reveal.panel-left,html.with-modal-sheet-push .framework7-root>.panel-in.panel-reveal.panel-left,html.with-modal-sheet-push .framework7-root>.panel-out.panel-reveal.panel-left{transform:scale(var(--f7-panelPushScale,1));transform-origin:50vw center;border-top-left-radius:var(--f7-panelPushBorderRadius)}html.with-modal-popup-push .framework7-root>.panel-in.panel-reveal.panel-left .view,html.with-modal-popup-push .framework7-root>.panel-out.panel-reveal.panel-left .view,html.with-modal-sheet-push .framework7-root>.panel-in.panel-reveal.panel-left .view,html.with-modal-sheet-push .framework7-root>.panel-out.panel-reveal.panel-left .view{border-top-left-radius:var(--f7-panelPushBorderRadius)}html.with-modal-popup-push .framework7-root>.panel-in.panel-reveal.panel-right,html.with-modal-popup-push .framework7-root>.panel-out.panel-reveal.panel-right,html.with-modal-sheet-push .framework7-root>.panel-in.panel-reveal.panel-right,html.with-modal-sheet-push .framework7-root>.panel-out.panel-reveal.panel-right{transform:scale(var(--f7-panelPushScale,1));transform-origin:calc(var(--f7-panel-left-width,var(--f7-panel-width)) - 50vw) center;border-top-right-radius:var(--f7-panelPushBorderRadius)}html.with-modal-popup-push .framework7-root>.panel-in.panel-reveal.panel-right .view,html.with-modal-popup-push .framework7-root>.panel-out.panel-reveal.panel-right .view,html.with-modal-sheet-push .framework7-root>.panel-in.panel-reveal.panel-right .view,html.with-modal-sheet-push .framework7-root>.panel-out.panel-reveal.panel-right .view{border-top-right-radius:var(--f7-panelPushBorderRadius)}html.with-modal-popup-push .framework7-root>.panel-in.panel-cover.panel-left,html.with-modal-popup-push .framework7-root>.panel-out.panel-cover.panel-left,html.with-modal-sheet-push .framework7-root>.panel-in.panel-cover.panel-left,html.with-modal-sheet-push .framework7-root>.panel-out.panel-cover.panel-left{transform:translate3d(calc(-1 * var(--f7-panel-left-width,var(--f7-panel-width))),0,0px)}html.with-modal-popup-push .framework7-root>.panel-in.panel-cover.panel-right,html.with-modal-popup-push .framework7-root>.panel-out.panel-cover.panel-right,html.with-modal-sheet-push .framework7-root>.panel-in.panel-cover.panel-right,html.with-modal-sheet-push .framework7-root>.panel-out.panel-cover.panel-right{transform:translate3d(var(--f7-panel-right-width,var(--f7-panel-width)),0,0px)}html.with-modal-popup-push-closing .framework7-root>.panel-in,html.with-modal-sheet-push-closing .framework7-root>.panel-in{transition-duration:var(--f7-panelPushTransitionDuration)}html.with-modal-popup-push-closing .framework7-root>.panel-in.panel-reveal.panel-left,html.with-modal-sheet-push-closing .framework7-root>.panel-in.panel-reveal.panel-left{transform-origin:50vw center}html.with-modal-popup-push-closing .framework7-root>.panel-in.panel-reveal.panel-right,html.with-modal-sheet-push-closing .framework7-root>.panel-in.panel-reveal.panel-right{transform-origin:calc(var(--f7-panel-right-width,var(--f7-panel-width)) - 50vw) center}:root{--f7-card-content-padding-horizontal:16px;--f7-card-content-padding-vertical:16px;--f7-card-border-radius:4px;--f7-card-font-size:inherit;--f7-card-header-text-color:inherit;--f7-card-header-font-weight:400;--f7-card-header-padding-horizontal:16px;--f7-card-footer-font-weight:400;--f7-card-footer-font-size:inherit;--f7-card-footer-padding-horizontal:16px;--f7-card-expandable-font-size:16px;--f7-card-expandable-tablet-width:670px;--f7-card-expandable-tablet-height:670px;--f7-card-bg-color:#fff;--f7-card-outline-border-color:rgba(0, 0, 0, 0.12);--f7-card-header-border-color:rgba(0, 0, 0, 0.1);--f7-card-footer-border-color:rgba(0, 0, 0, 0.1);--f7-card-expandable-bg-color:#fff}:root .theme-dark,:root.theme-dark{--f7-card-bg-color:#1c1c1d;--f7-card-expandable-bg-color:#1c1c1d;--f7-card-outline-border-color:rgba(255, 255, 255, 0.15);--f7-card-header-border-color:rgba(255, 255, 255, 0.15);--f7-card-footer-border-color:rgba(255, 255, 255, 0.15);--f7-card-footer-text-color:rgba(255, 255, 255, 0.55)}.ios{--f7-card-margin-horizontal:10px;--f7-card-margin-vertical:10px;--f7-card-box-shadow:0px 1px 2px rgba(0, 0, 0, 0.2);--f7-card-header-font-size:17px;--f7-card-header-padding-vertical:10px;--f7-card-header-min-height:44px;--f7-card-footer-text-color:rgba(0, 0, 0, 0.45);--f7-card-footer-padding-vertical:10px;--f7-card-footer-min-height:44px;--f7-card-expandable-margin-horizontal:20px;--f7-card-expandable-margin-vertical:30px;--f7-card-expandable-box-shadow:0px 20px 40px rgba(0, 0, 0, 0.3);--f7-card-expandable-border-radius:15px;--f7-card-expandable-tablet-border-radius:5px;--f7-card-expandable-header-font-size:27px;--f7-card-expandable-header-font-weight:bold}.md{--f7-card-margin-horizontal:8px;--f7-card-margin-vertical:8px;--f7-card-box-shadow:var(--f7-elevation-1);--f7-card-header-font-size:16px;--f7-card-header-padding-vertical:4px;--f7-card-header-min-height:48px;--f7-card-footer-text-color:rgba(0, 0, 0, 0.54);--f7-card-footer-padding-vertical:4px;--f7-card-footer-min-height:48px;--f7-card-expandable-margin-horizontal:12px;--f7-card-expandable-margin-vertical:24px;--f7-card-expandable-box-shadow:var(--f7-elevation-10);--f7-card-expandable-border-radius:8px;--f7-card-expandable-tablet-border-radius:4px;--f7-card-expandable-header-font-size:24px;--f7-card-expandable-header-font-weight:500}.aurora{--f7-card-margin-horizontal:10px;--f7-card-margin-vertical:10px;--f7-card-box-shadow:0px 1px 2px rgba(0, 0, 0, 0.15);--f7-card-header-font-size:14px;--f7-card-header-font-weight:bold;--f7-card-header-padding-vertical:10px;--f7-card-header-min-height:38px;--f7-card-footer-text-color:rgba(0, 0, 0, 0.6);--f7-card-footer-padding-vertical:10px;--f7-card-footer-min-height:38px;--f7-card-expandable-margin-horizontal:10px;--f7-card-expandable-margin-vertical:20px;--f7-card-expandable-box-shadow:0px 5px 10px rgba(0, 0, 0, 0.15);--f7-card-expandable-border-radius:15px;--f7-card-expandable-tablet-border-radius:5px;--f7-card-expandable-header-font-size:27px;--f7-card-expandable-header-font-weight:bold}.card .list>ul:after,.card .list>ul:before,.cards-list>ul:after,.cards-list>ul:before{display:none!important}.card .list ul,.cards-list ul{background:0 0}.card{background:var(--f7-card-bg-color);position:relative;border-radius:var(--f7-card-border-radius);font-size:var(--f7-card-font-size);margin-top:var(--f7-card-margin-vertical);margin-bottom:var(--f7-card-margin-vertical);margin-left:calc(var(--f7-card-margin-horizontal) + var(--f7-safe-area-left));margin-right:calc(var(--f7-card-margin-horizontal) + var(--f7-safe-area-right));box-shadow:var(--f7-card-box-shadow)}.card .block,.card .list{margin:0}.row:not(.no-gap) .col>.card{margin-left:0;margin-right:0}.card.no-shadow{box-shadow:none}.aurora .card-outline-aurora,.card-outline,.ios .card-outline-ios,.md .card-outline-md{box-shadow:none;border:1px solid var(--f7-card-outline-border-color)}.aurora .card-outline-aurora.no-border,.aurora .card-outline-aurora.no-hairlines,.card-outline.no-border,.card-outline.no-hairlines,.ios .card-outline-ios.no-border,.ios .card-outline-ios.no-hairlines,.md .card-outline-md.no-border,.md .card-outline-md.no-hairlines{border:none}.card-content{position:relative}.card-content-padding{position:relative;padding:var(--f7-card-content-padding-vertical) var(--f7-card-content-padding-horizontal)}.card-content-padding>.block,.card-content-padding>.list{margin:calc(-1 * var(--f7-card-content-padding-vertical)) calc(-1 * var(--f7-card-content-padding-horizontal))}.card-content-padding>p:first-child{margin-top:0}.card-content-padding>p:last-child{margin-bottom:0}.card-header{min-height:var(--f7-card-header-min-height);color:var(--f7-card-header-text-color);font-size:var(--f7-card-header-font-size);font-weight:var(--f7-card-header-font-weight);padding:var(--f7-card-header-padding-vertical) var(--f7-card-header-padding-horizontal)}.card-footer{min-height:var(--f7-card-footer-min-height);color:var(--f7-card-footer-text-color);font-size:var(--f7-card-footer-font-size);font-weight:var(--f7-card-footer-font-weight);padding:var(--f7-card-footer-padding-vertical) var(--f7-card-footer-padding-horizontal)}.card-footer a.link{overflow:hidden}.card-footer,.card-header{position:relative;box-sizing:border-box;display:flex;justify-content:space-between;align-items:center}.card-footer[valign=top],.card-header[valign=top]{align-items:flex-start}.card-footer[valign=bottom],.card-header[valign=bottom]{align-items:flex-end}.card-footer a.link,.card-header a.link{position:relative}.card-footer a.link i.icon,.card-header a.link i.icon{display:block}.card-footer a.icon-only,.card-header a.icon-only{display:flex;justify-content:center;align-items:center;margin:0}.card-header{border-radius:var(--f7-card-border-radius) var(--f7-card-border-radius) 0 0}.card-header:after{content:'';position:absolute;background-color:var(--f7-card-header-border-color);display:block;z-index:15;top:auto;right:auto;bottom:0;left:0;height:1px;width:100%;transform-origin:50% 100%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.card-header.no-hairline:after{display:none!important}.card-footer{border-radius:0 0 var(--f7-card-border-radius) var(--f7-card-border-radius)}.card-footer:before{content:'';position:absolute;background-color:var(--f7-card-footer-border-color);display:block;z-index:15;top:0;right:auto;bottom:auto;left:0;height:1px;width:100%;transform-origin:50% 0%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.card-footer.no-hairline:before{display:none!important}.card-expandable{overflow:hidden;height:300px;background:var(--f7-card-expandable-bg-color);position:relative;transform-origin:center center;transition-property:transform,border-radius;border-radius:var(--f7-card-expandable-border-radius);z-index:2;transition-duration:.2s;margin-left:calc(var(--f7-card-expandable-margin-horizontal) + var(--f7-safe-area-left));margin-right:calc(var(--f7-card-expandable-margin-horizontal) + var(--f7-safe-area-right));margin-top:var(--f7-card-expandable-margin-vertical);margin-bottom:var(--f7-card-expandable-margin-vertical);box-shadow:var(--f7-card-expandable-box-shadow);font-size:var(--f7-card-expandable-font-size)}.card-expandable:not(.card-opened){-webkit-user-select:none;-moz-user-select:none;user-select:none}.card-expandable.card-no-transition{transition-duration:0s}.card-expandable.card-expandable-animate-width .card-content{transition-property:width,transform;width:100%}.card-expandable.active-state{transform:scale(.97) translate3d(0,0,0)}.card-expandable .card-opened-fade-in,.card-expandable .card-opened-fade-out{transition-duration:.4s}.card-expandable .card-opened-fade-in{opacity:0;pointer-events:none}.card-expandable .card-content{position:absolute;top:0;width:100vw;height:100vh;transform-origin:center top;overflow:hidden;transition-property:transform;box-sizing:border-box;pointer-events:none;right:0}.card-expandable .card-content .card-content-padding{padding-left:calc(var(--f7-safe-area-left) + var(--f7-card-content-padding-horizontal));padding-right:calc(var(--f7-safe-area-right) + var(--f7-card-content-padding-horizontal))}.card-expandable.card-opened{transition-duration:0s}.card-expandable.card-closing,.card-expandable.card-opening,.card-expandable.card-transitioning{transition-duration:.4s}.card-expandable.card-opening .card-content{transition-duration:.3s}.card-expandable.card-closing .card-content{transition-duration:.5s}.card-expandable.card-closing,.card-expandable.card-opened,.card-expandable.card-opening{z-index:300}.card-expandable.card-opened,.card-expandable.card-opening{border-radius:0}.card-expandable.card-opened .card-opened-fade-in,.card-expandable.card-opening .card-opened-fade-in{opacity:1;pointer-events:auto}.card-expandable.card-opened .card-opened-fade-out,.card-expandable.card-opening .card-opened-fade-out{opacity:0;pointer-events:none}.card-expandable.card-opened .card-content{overflow:auto;-webkit-overflow-scrolling:touch;pointer-events:auto}.card-expandable .card-header{font-size:var(--f7-card-expandable-header-font-size);font-weight:var(--f7-card-expandable-header-font-weight)}.card-expandable .card-header:after{display:none!important}.card-prevent-open{pointer-events:auto}.card-expandable-size{width:0;height:0;position:absolute;left:0;top:0;opacity:0;pointer-events:none;visibility:hidden}@media (min-width:768px) and (min-height:670px){.card-expandable:not(.card-tablet-fullscreen){max-width:var(--f7-card-expandable-tablet-width)}.card-expandable:not(.card-tablet-fullscreen).card-opened,.card-expandable:not(.card-tablet-fullscreen).card-opening{border-radius:var(--f7-card-expandable-tablet-border-radius)}.card-expandable:not(.card-tablet-fullscreen):not(.card-expandable-animate-width) .card-content{width:var(--f7-card-expandable-tablet-width)}.card-expandable:not(.card-tablet-fullscreen) .card-expandable-size{width:var(--f7-card-expandable-tablet-width);height:var(--f7-card-expandable-tablet-height)}}.page.page-with-card-opened .page-content{overflow:hidden}.card-backdrop{position:fixed;left:0;top:0;width:100%;height:100%;z-index:299;pointer-events:none;background:rgba(0,0,0,.2);opacity:0}.card-backdrop-in{animation:card-backdrop-fade-in .4s forwards;pointer-events:auto}.card-backdrop-out{animation:card-backdrop-fade-out .4s forwards}@supports ((-webkit-backdrop-filter:blur(15px)) or (backdrop-filter:blur(15px))){.card-backdrop{background:0 0;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px)}}@keyframes card-backdrop-fade-in{from{opacity:0}to{opacity:1}}@keyframes card-backdrop-fade-out{from{opacity:1}to{opacity:0}}:root{--f7-chip-font-size:13px;--f7-chip-font-weight:normal;--f7-chip-media-font-size:16px;--f7-chip-bg-color:rgba(0, 0, 0, 0.12);--f7-chip-outline-border-color:rgba(0, 0, 0, 0.12);--f7-chip-delete-button-color:#000}:root .theme-dark,:root.theme-dark{--f7-chip-delete-button-color:#fff;--f7-chip-bg-color:#333;--f7-chip-outline-border-color:rgba(255, 255, 255, 0.12)}.ios{--f7-chip-height:24px;--f7-chip-padding-horizontal:10px;--f7-chip-text-color:#000}.ios .theme-dark,.ios.theme-dark{--f7-chip-text-color:#fff}.md{--f7-chip-height:32px;--f7-chip-padding-horizontal:12px;--f7-chip-text-color:rgba(0, 0, 0, 0.87)}.md .theme-dark,.md.theme-dark{--f7-chip-text-color:rgba(255, 255, 255, 0.87)}.aurora{--f7-chip-height:20px;--f7-chip-padding-horizontal:10px;--f7-chip-font-size:12px;--f7-chip-media-font-size:14px;--f7-chip-text-color:#000}.aurora .theme-dark,.aurora.theme-dark{--f7-chip-text-color:#fff}.chip{padding-left:var(--f7-chip-padding-horizontal);padding-right:var(--f7-chip-padding-horizontal);font-weight:var(--f7-chip-font-weight);display:inline-flex;box-sizing:border-box;vertical-align:middle;align-items:center;margin:2px 0;background-color:var(--f7-chip-bg-color);font-size:var(--f7-chip-font-size);color:var(--f7-chip-text-color);height:var(--f7-chip-height);line-height:var(--f7-chip-height);border-radius:var(--f7-chip-height);position:relative}.chip-media{border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;height:var(--f7-chip-height);width:var(--f7-chip-height);border-radius:var(--f7-chip-height);text-align:center;line-height:var(--f7-chip-height);box-sizing:border-box;color:#fff;font-size:var(--f7-chip-media-font-size);vertical-align:middle;margin-right:calc(-1 * var(--f7-chip-padding-horizontal))}.chip-media i.icon{font-size:calc(var(--f7-chip-height) - 8px);height:calc(var(--f7-chip-height) - 8px)}.chip-media img{max-width:100%;max-height:100%;width:auto;height:auto;border-radius:50%;display:block}.chip-media+.chip-label{margin-right:4px}.chip-label{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;position:relative;flex-shrink:1;min-width:0}.chip-delete{text-align:center;cursor:pointer;flex-shrink:0;background-repeat:no-repeat;width:24px;height:24px;color:var(--f7-chip-delete-button-color);opacity:.54;position:relative}.chip-delete:after{font-family:framework7-core-icons;font-weight:400;font-style:normal;line-height:1;letter-spacing:normal;text-transform:none;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;font-feature-settings:"liga";text-align:center;display:block;width:100%;height:100%;font-size:20px;content:'delete_round_ios';line-height:24px}.chip .chip-delete.active-state{opacity:1}.aurora .chip-outline-aurora,.chip-outline,.ios .chip-outline-ios,.md .chip-outline-md{border:1px solid var(--f7-chip-outline-border-color);background:0 0}.chip[class*=color-]{--f7-chip-bg-color:var(--f7-theme-color);--f7-chip-text-color:#fff}.aurora .chip-outline-aurora[class*=color-],.chip-outline[class*=color-],.ios .chip-outline-ios[class*=color-],.md .chip-outline-md[class*=color-]{--f7-chip-outline-border-color:var(--f7-theme-color);--f7-chip-text-color:var(--f7-theme-color)}.ios .chip-delete{margin-left:calc(-1 * var(--f7-chip-padding-horizontal))}.ios .chip-delete:after{font-size:10px}.md .chip-label+.chip-delete{margin-right:4px}.md .chip-delete{margin-left:calc(-1 * var(--f7-chip-padding-horizontal) + 4px)}.md .chip-delete:after{font-size:12px}.aurora .chip-delete{margin-left:calc(-1 * var(--f7-chip-padding-horizontal))}.aurora .chip-delete:after{font-size:10px}:root{--f7-input-bg-color:transparent;--f7-label-font-weight:400;--f7-label-line-height:1.3;--f7-input-padding-left:0px;--f7-input-padding-right:0px;--f7-input-error-text-color:#ff3b30;--f7-input-error-font-size:12px;--f7-input-error-line-height:1.4;--f7-input-error-font-weight:400;--f7-input-info-font-size:12px;--f7-input-info-line-height:1.4;--f7-input-outline-height:40px;--f7-input-outline-border-radius:4px;--f7-input-outline-padding-horizontal:12px;--f7-textarea-height:100px;--f7-input-outline-border-color:#999}:root .theme-dark,:root.theme-dark{--f7-input-outline-border-color:#444}.ios{--f7-input-height:44px;--f7-input-font-size:17px;--f7-input-placeholder-color:#a9a9a9;--f7-textarea-padding-vertical:11px;--f7-label-font-size:12px;--f7-label-text-color:inherit;--f7-floating-label-scale:calc(17 / 12);--f7-inline-label-font-size:17px;--f7-inline-label-line-height:1.4;--f7-inline-label-padding-top:3px;--f7-input-clear-button-size:14px;--f7-input-text-color:#000000;--f7-input-info-text-color:rgba(0, 0, 0, 0.45);--f7-input-clear-button-color:rgba(0, 0, 0, 0.45)}.ios .theme-dark,.ios.theme-dark{--f7-input-text-color:#fff;--f7-input-info-text-color:rgba(255, 255, 255, 0.55);--f7-input-clear-button-color:rgba(255, 255, 255, 0.5)}.md{--f7-input-height:36px;--f7-input-font-size:16px;--f7-textarea-padding-vertical:7px;--f7-label-font-size:12px;--f7-floating-label-scale:calc(16 / 12);--f7-inline-label-font-size:16px;--f7-inline-label-line-height:1.5;--f7-inline-label-padding-top:7px;--f7-input-clear-button-size:18px;--f7-input-clear-button-color:#aaa;--f7-input-text-color:#212121;--f7-input-placeholder-color:rgba(0, 0, 0, 0.35);--f7-label-text-color:rgba(0, 0, 0, 0.65);--f7-input-info-text-color:rgba(0, 0, 0, 0.45)}.md .theme-dark,.md.theme-dark{--f7-input-text-color:rgba(255, 255, 255, 0.87);--f7-input-placeholder-color:rgba(255, 255, 255, 0.35);--f7-label-text-color:rgba(255, 255, 255, 0.54);--f7-input-info-text-color:rgba(255, 255, 255, 0.45)}.aurora{--f7-input-height:24px;--f7-input-font-size:13px;--f7-textarea-padding-vertical:2px;--f7-label-font-size:11px;--f7-label-text-color:inherit;--f7-floating-label-scale:calc(13 / 11);--f7-inline-label-font-size:14px;--f7-inline-label-line-height:1.4;--f7-inline-label-padding-top:1px;--f7-input-clear-button-size:14px;--f7-input-outline-height:32px;--f7-input-outline-padding-horizontal:8px;--f7-input-text-color:#000000;--f7-input-placeholder-color:rgba(0, 0, 0, 0.32);--f7-input-clear-button-color:#666;--f7-input-info-text-color:rgba(0, 0, 0, 0.5)}.aurora .theme-dark,.aurora.theme-dark{--f7-input-text-color:#fff;--f7-input-clear-button-color:#aaa;--f7-input-placeholder-color:rgba(255, 255, 255, 0.35);--f7-input-info-text-color:rgba(255, 255, 255, 0.45)}input[type=date],input[type=datetime-local],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],select,textarea{box-sizing:border-box;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;box-shadow:none;border-radius:0;outline:0;display:block;padding:0;margin:0;font-family:inherit;background:0 0;resize:none;font-size:inherit;color:inherit}.textarea-resizable-shadow{opacity:0;position:absolute;z-index:-1000;pointer-events:none;left:-1000px;top:-1000px;visibility:hidden}.list input[type=date],.list input[type=datetime-local],.list input[type=email],.list input[type=month],.list input[type=number],.list input[type=password],.list input[type=search],.list input[type=tel],.list input[type=text],.list input[type=time],.list input[type=url],.list select{width:100%;height:var(--f7-input-height);color:var(--f7-input-text-color);font-size:var(--f7-input-font-size);background-color:var(--f7-input-bg-color,transparent);padding-left:var(--f7-input-padding-left);padding-right:var(--f7-input-padding-right)}.list input[type=date]::-webkit-input-placeholder,.list input[type=datetime-local]::-webkit-input-placeholder,.list input[type=email]::-webkit-input-placeholder,.list input[type=month]::-webkit-input-placeholder,.list input[type=number]::-webkit-input-placeholder,.list input[type=password]::-webkit-input-placeholder,.list input[type=search]::-webkit-input-placeholder,.list input[type=tel]::-webkit-input-placeholder,.list input[type=text]::-webkit-input-placeholder,.list input[type=time]::-webkit-input-placeholder,.list input[type=url]::-webkit-input-placeholder,.list select::-webkit-input-placeholder{color:var(--f7-input-placeholder-color)}.list input[type=date]::placeholder,.list input[type=datetime-local]::placeholder,.list input[type=email]::placeholder,.list input[type=month]::placeholder,.list input[type=number]::placeholder,.list input[type=password]::placeholder,.list input[type=search]::placeholder,.list input[type=tel]::placeholder,.list input[type=text]::placeholder,.list input[type=time]::placeholder,.list input[type=url]::placeholder,.list select::placeholder{color:var(--f7-input-placeholder-color)}.list textarea{width:100%;color:var(--f7-input-text-color);font-size:var(--f7-input-font-size);resize:none;line-height:1.4;height:var(--f7-textarea-height);background-color:var(--f7-input-bg-color,transparent);padding-top:var(--f7-textarea-padding-vertical);padding-bottom:var(--f7-textarea-padding-vertical);padding-left:var(--f7-input-padding-left);padding-right:var(--f7-input-padding-right)}.list textarea::-webkit-input-placeholder{color:var(--f7-input-placeholder-color)}.list textarea::placeholder{color:var(--f7-input-placeholder-color)}.list textarea.resizable{height:var(--f7-input-height)}.list input[type=datetime-local]{max-width:50vw}.list input[type=date],.list input[type=datetime-local],.list input[type=month],.list input[type=time]{line-height:var(--f7-input-height)}.list input[type=date],.list input[type=datetime-local],.list input[type=month]{text-align:right;flex-direction:row-reverse;width:auto}.list .item-floating-label,.list .item-label{width:100%;vertical-align:top;flex-shrink:0;font-size:var(--f7-label-font-size);font-weight:var(--f7-label-font-weight);line-height:var(--f7-label-line-height);color:var(--f7-label-text-color);transition-duration:.2s;transition-property:transform,color}.list .item-floating-label{--label-height:calc(var(--f7-label-font-size) * var(--f7-label-line-height));transform:scale(var(--f7-floating-label-scale)) translateY(calc((var(--f7-input-height)/ 2 + 50%)/ var(--f7-floating-label-scale)));color:var(--f7-input-placeholder-color);width:auto;max-width:calc(100% / var(--f7-floating-label-scale));pointer-events:none;right:var(--f7-input-padding-right);transform-origin:right center}.list .item-floating-label~.item-input-wrap input::-webkit-input-placeholder,.list .item-floating-label~.item-input-wrap textarea::-webkit-input-placeholder{opacity:0;transition-duration:.1s}.list .item-floating-label~.item-input-wrap input::placeholder,.list .item-floating-label~.item-input-wrap textarea::placeholder{opacity:0;transition-duration:.1s}.list .item-floating-label~.item-input-wrap input.input-focused::-webkit-input-placeholder,.list .item-floating-label~.item-input-wrap textarea.input-focused::-webkit-input-placeholder{opacity:1;transition-duration:.3s}.list .item-floating-label~.item-input-wrap input.input-focused::placeholder,.list .item-floating-label~.item-input-wrap textarea.input-focused::placeholder{opacity:1;transition-duration:.3s}.list .item-input-with-value .item-floating-label{color:var(--f7-label-text-color)}.list .item-input-focused .item-floating-label,.list .item-input-with-value .item-floating-label{transform:scale(1) translateY(0)}.list .item-input-wrap{width:100%;flex-shrink:1;position:relative}.item-input .item-inner{display:flex;flex-direction:column;align-items:flex-start}.input-error-message,.item-input-error-message{font-size:var(--f7-input-error-font-size);line-height:var(--f7-input-error-line-height);color:var(--f7-input-error-text-color);font-weight:var(--f7-input-error-font-weight);display:none;box-sizing:border-box}.input-info,.item-input-info{font-size:var(--f7-input-info-font-size);line-height:var(--f7-input-info-line-height);color:var(--f7-input-info-text-color)}.input-invalid .input-error-message,.input-invalid .item-input-error-message,.item-input-invalid .input-error-message,.item-input-invalid .item-input-error-message{display:block}.input-invalid .input-info,.input-invalid .item-input-info,.item-input-invalid .input-info,.item-input-invalid .item-input-info{display:none}.inline-label .item-inner,.inline-labels .item-inner{display:flex;align-items:center;flex-direction:row}.inline-label .item-floating-label,.inline-label .item-label,.inline-labels .item-floating-label,.inline-labels .item-label{padding-top:var(--f7-inline-label-padding-top);align-self:flex-start;width:35%;font-size:var(--f7-inline-label-font-size);line-height:var(--f7-inline-label-line-height)}.inline-label .item-floating-label+.item-input-wrap,.inline-label .item-label+.item-input-wrap,.inline-labels .item-floating-label+.item-input-wrap,.inline-labels .item-label+.item-input-wrap{margin-right:8px}.input{position:relative}.input input,.input select,.input textarea{width:100%}.input-clear-button{opacity:0;pointer-events:none;visibility:hidden;transition-duration:.1s;position:absolute;top:50%;border:none;padding:0;margin:0;outline:0;z-index:1;cursor:pointer;background:0 0;width:var(--f7-input-clear-button-size);height:var(--f7-input-clear-button-size);margin-top:calc(-1 * var(--f7-input-clear-button-size)/ 2);color:var(--f7-input-clear-button-color);left:0}.input-clear-button:after{font-family:framework7-core-icons;font-weight:400;font-style:normal;line-height:1;letter-spacing:normal;text-transform:none;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;font-feature-settings:"liga";text-align:center;display:block;width:100%;height:100%;font-size:20px}.input-clear-button:before{position:absolute;content:'';left:50%;top:50%}.item-input-wrap .input-clear-button{top:calc(var(--f7-input-height)/ 2)}.input-clear-button.active-state{opacity:.75!important}.input-with-value .input-clear-button,.input-with-value~.input-clear-button,.item-input-with-value .input-clear-button{opacity:1;pointer-events:auto;visibility:visible}.input-dropdown,.input-dropdown-wrap{position:relative}.input-dropdown-wrap:before,.input-dropdown:before{content:'';pointer-events:none;position:absolute;top:50%;margin-top:-2px;width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-top:5px solid #727272;left:6px}.input-dropdown input,.input-dropdown select,.input-dropdown textarea,.input-dropdown-wrap input,.input-dropdown-wrap select,.input-dropdown-wrap textarea{padding-left:calc(20px + var(--f7-input-padding-left))}.input-outline:after,.item-input-outline .item-input-wrap:after{content:'';position:absolute;left:0;top:0;width:100%;height:100%;box-sizing:border-box;border:1px solid var(--f7-input-outline-border-color);border-radius:var(--f7-input-outline-border-radius);transition-duration:.2s;pointer-events:none}.input-outline.input-focused:after,.item-input-outline.item-input-focused .item-input-wrap:after{border-width:2px;border-color:var(--f7-input-outline-focused-border-color,var(--f7-theme-color))}.input-outline.input-invalid:after,.item-input-outline.item-input-invalid .item-input-wrap:after{border-width:2px;border-color:var(--f7-input-outline-invalid-border-color,var(--f7-input-error-text-color))}.input-outline input,.input-outline select,.input-outline textarea,.item-input-outline input,.item-input-outline select,.item-input-outline textarea,.list .item-input-outline input,.list .item-input-outline select,.list .item-input-outline textarea{border-radius:var(--f7-input-outline-border-radius);padding-left:var(--f7-input-outline-padding-horizontal);padding-right:var(--f7-input-outline-padding-horizontal)}.input-outline.input-dropdown:before,.item-input-outline .input-dropdown-wrap:before{left:8px}.input-outline.input-dropdown input,.input-outline.input-dropdown select,.input-outline.input-dropdown textarea,.item-input-outline .input-dropdown-wrap input,.item-input-outline .input-dropdown-wrap select,.item-input-outline .input-dropdown-wrap textarea{padding-left:20px}.input-outline .input-clear-button,.item-input-outline .input-clear-button{left:8px}.item-input-outline{--f7-input-height:var(--f7-input-outline-height)}.item-input-outline .item-inner:after{display:none!important}.item-input-outline .item-label{right:var(--f7-input-outline-padding-horizontal)}.inline-label .item-input-outline .item-label,.inline-labels .item-input-outline .item-label,.item-input-outline .inline-label .item-label,.item-input-outline .inline-label.item-label{right:0}.item-input-outline .item-floating-label{right:calc(var(--f7-input-outline-padding-horizontal) - 4px);padding-left:4px;padding-right:4px;background:var(--f7-page-bg-color);z-index:10;margin-top:calc(-.5 * (var(--f7-label-font-size) * var(--f7-label-line-height)))}.item-input-outline.item-input-focused .item-floating-label,.item-input-outline.item-input-with-value .item-floating-label{transform:scale(1) translateY(50%)}.item-input-outline .item-input-error-message,.item-input-outline .item-input-info{padding-right:var(--f7-input-outline-padding-horizontal)}.block-strong .item-input-outline .item-floating-label{background:var(--f7-block-strong-bg-color)}.list .item-input-outline .item-floating-label{background:var(--f7-list-bg-color)}.theme-dark option{background-color:var(--f7-page-bg-color)}.ios .item-floating-label+.item-input-wrap,.ios .item-label+.item-input-wrap{margin-top:0}.ios .item-input-focused .item-floating-label{color:var(--f7-label-text-color)}.ios .item-input .item-media{align-self:flex-start}.ios .item-input-wrap{margin-top:calc(-1 * var(--f7-list-item-padding-vertical));margin-bottom:calc(-1 * var(--f7-list-item-padding-vertical))}.ios .inline-label .item-floating-label+.item-input-wrap,.ios .inline-label .item-label+.item-input-wrap,.ios .inline-labels .item-floating-label+.item-input-wrap,.ios .inline-labels .item-label+.item-input-wrap{margin-top:calc(-1 * var(--f7-list-item-padding-vertical))}.ios .inline-label .item-input-wrap,.ios .inline-labels .item-input-wrap{margin-top:calc(-1 * var(--f7-list-item-padding-vertical))}.ios .input-error-message,.ios .input-info,.ios .item-input-error-message,.ios .item-input-info{position:relative;margin-bottom:6px;margin-top:-8px}.ios .item-input-focused .item-floating-label,.ios .item-input-focused .item-label{color:var(--f7-label-focused-text-color,var(--f7-label-text-color))}.ios .item-input-focused .item-inner:after{background:var(--f7-input-focused-border-color,var(--f7-list-item-border-color))}.ios .item-input-invalid .item-floating-label,.ios .item-input-invalid .item-label{color:var(--f7-label-invalid-text-color,var(--f7-label-text-color))}.ios .item-input-invalid .item-inner:after{background:var(--f7-input-invalid-border-color,var(--f7-list-item-border-color))}.ios .input-invalid input,.ios .input-invalid select,.ios .input-invalid textarea,.ios .item-input-invalid input,.ios .item-input-invalid select,.ios .item-input-invalid textarea{color:var(--f7-input-invalid-text-color,var(--f7-input-error-text-color))}.ios .input-clear-button:after{content:'delete_round_ios';font-size:calc(var(--f7-input-clear-button-size)/ (14 / 10));line-height:1.4}.ios .input-clear-button:before{width:44px;height:44px;margin-left:-22px;margin-top:-22px}.ios .input-outline .item-input-wrap,.ios .item-input-outline .item-input-wrap{margin-top:0;margin-bottom:0}.ios .input-outline .input-error-message,.ios .input-outline .input-info,.ios .input-outline .item-input-error-message,.ios .input-outline .item-input-info,.ios .item-input-outline .input-error-message,.ios .item-input-outline .input-info,.ios .item-input-outline .item-input-error-message,.ios .item-input-outline .item-input-info{margin-top:0;white-space:normal;overflow:hidden;text-overflow:ellipsis}.ios .input-outline .input-info,.ios .input-outline .item-input-info,.ios .item-input-outline .input-info,.ios .item-input-outline .item-input-info{margin-bottom:calc(-1 * var(--f7-input-info-font-size) * var(--f7-input-info-line-height))}.ios .input-outline .input-error-message,.ios .input-outline .item-input-error-message,.ios .item-input-outline .input-error-message,.ios .item-input-outline .item-input-error-message{margin-bottom:calc(-1 * var(--f7-input-error-font-size) * var(--f7-input-error-line-height))}.ios .input-outline.input-with-info .item-input-wrap,.ios .input-outline.item-input-with-info .item-input-wrap,.ios .item-input-outline.input-with-info .item-input-wrap,.ios .item-input-outline.item-input-with-info .item-input-wrap{margin-bottom:calc(var(--f7-input-info-font-size) * var(--f7-input-info-line-height))}.ios .input-outline.input-with-error-message .item-input-wrap,.ios .input-outline.item-input-with-error-message .item-input-wrap,.ios .item-input-outline.input-with-error-message .item-input-wrap,.ios .item-input-outline.item-input-with-error-message .item-input-wrap{margin-bottom:calc(var(--f7-input-error-font-size) * var(--f7-input-error-line-height))}.md .input:not(.input-outline):after,.md .item-input:not(.item-input-outline) .item-input-wrap:after{content:'';position:absolute;background-color:var(--f7-list-item-border-color);display:block;z-index:15;top:auto;right:auto;bottom:0;left:0;height:1px;width:100%;transform-origin:50% 100%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.md .input:not(.input-outline):after,.md .item-input:not(.item-input-outline) .item-input-wrap:after{transition-duration:.2s}.md .item-input-wrap{min-height:var(--f7-input-height)}.md .item-input .item-media{align-self:flex-end}.md .item-input .item-inner:after{display:none!important}.md .inline-label .item-media,.md .inline-labels .item-media{align-self:flex-start;padding-top:14px}.md .input-with-error-message,.md .input-with-info,.md .item-input-with-error-message,.md .item-input-with-info{padding-bottom:20px}.md .input-error-message,.md .input-info,.md .item-input-error-message,.md .item-input-info{position:absolute;top:100%;margin-top:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:100%;right:0}.md .item-input-focused .item-floating-label,.md .item-input-focused .item-label{color:var(--f7-label-focused-text-color,var(--f7-theme-color))}.md .input-focused:not(.input-outline):after,.md .item-input-focused:not(.item-input-outline) .item-input-wrap:after{background:var(--f7-input-focused-border-color,var(--f7-theme-color))}.md .input-focused:not(.input-outline):after,.md .input-invalid:not(.input-outline):after,.md .item-input-focused:not(.item-input-outline) .item-input-wrap:after,.md .item-input-invalid:not(.item-input-outline) .item-input-wrap:after{transform:scaleY(2)!important}.md .input-invalid:not(.input-outline):after,.md .item-input-invalid:not(.item-input-outline) .item-input-wrap:after{background:var(--f7-input-invalid-border-color,var(--f7-input-error-text-color))}.md .item-input-invalid .item-floating-label,.md .item-input-invalid .item-label{color:var(--f7-label-invalid-text-color,var(--f7-input-error-text-color))}.md .input-invalid input,.md .input-invalid select,.md .input-invalid textarea,.md .item-input-invalid input,.md .item-input-invalid select,.md .item-input-invalid textarea{color:var(--f7-input-invalid-text-color,var(--f7-input-text-color))}.md .input-clear-button:after{font-size:calc(var(--f7-input-clear-button-size)/ (24 / 20));content:'delete_round_md';line-height:1.2}.md .input-clear-button:before{width:48px;height:48px;margin-left:-24px;margin-top:-24px}.aurora .item-floating-label+.item-input-wrap,.aurora .item-label+.item-input-wrap{margin-top:0}.aurora .item-input-focused .item-floating-label{color:var(--f7-label-text-color)}.aurora .item-input .item-media{align-self:flex-start}.aurora .input-error-message,.aurora .input-info,.aurora .item-input-error-message,.aurora .item-input-info{position:relative}.aurora .item-input-focused .item-floating-label,.aurora .item-input-focused .item-label{color:var(--f7-label-focused-text-color,var(--f7-label-text-color))}.aurora .item-input-focused .item-inner:after{background:var(--f7-input-focused-border-color,var(--f7-list-item-border-color))}.aurora .item-input-invalid .item-floating-label,.aurora .item-input-invalid .item-label{color:var(--f7-label-invalid-text-color,var(--f7-label-text-color))}.aurora .item-input-invalid .item-inner:after{background:var(--f7-input-invalid-border-color,var(--f7-list-item-border-color))}.aurora .input-invalid input,.aurora .input-invalid select,.aurora .input-invalid textarea,.aurora .item-input-invalid input,.aurora .item-input-invalid select,.aurora .item-input-invalid textarea{color:var(--f7-input-invalid-text-color,var(--f7-input-error-text-color))}.aurora .input-clear-button:after{content:'delete_round_ios';font-size:calc(var(--f7-input-clear-button-size)/ (14 / 10));line-height:1.4}.aurora .input-clear-button:before{width:28px;height:28px;margin-left:-14px;margin-top:-14px}.aurora .input-outline .item-input-wrap,.aurora .item-input-outline .item-input-wrap{margin-top:0;margin-bottom:0}.aurora .input-outline .input-error-message,.aurora .input-outline .input-info,.aurora .input-outline .item-input-error-message,.aurora .input-outline .item-input-info,.aurora .item-input-outline .input-error-message,.aurora .item-input-outline .input-info,.aurora .item-input-outline .item-input-error-message,.aurora .item-input-outline .item-input-info{margin-top:0;white-space:normal;overflow:hidden;text-overflow:ellipsis}.aurora .input-outline .input-info,.aurora .input-outline .item-input-info,.aurora .item-input-outline .input-info,.aurora .item-input-outline .item-input-info{margin-bottom:calc(-1 * var(--f7-input-info-font-size) * var(--f7-input-info-line-height))}.aurora .input-outline .input-error-message,.aurora .input-outline .item-input-error-message,.aurora .item-input-outline .input-error-message,.aurora .item-input-outline .item-input-error-message{margin-bottom:calc(-1 * var(--f7-input-error-font-size) * var(--f7-input-error-line-height))}.aurora .input-outline.input-with-info .item-input-wrap,.aurora .input-outline.item-input-with-info .item-input-wrap,.aurora .item-input-outline.input-with-info .item-input-wrap,.aurora .item-input-outline.item-input-with-info .item-input-wrap{margin-bottom:calc(var(--f7-input-info-font-size) * var(--f7-input-info-line-height))}.aurora .input-outline.input-with-error-message .item-input-wrap,.aurora .input-outline.item-input-with-error-message .item-input-wrap,.aurora .item-input-outline.input-with-error-message .item-input-wrap,.aurora .item-input-outline.item-input-with-error-message .item-input-wrap{margin-bottom:calc(var(--f7-input-error-font-size) * var(--f7-input-error-line-height))}:root{--f7-checkbox-icon-color:#fff}:root .theme-dark,:root.theme-dark{--f7-checkbox-inactive-color:rgba(255, 255, 255, 0.3)}.ios{--f7-checkbox-size:22px;--f7-checkbox-border-radius:50%;--f7-checkbox-border-width:1px;--f7-checkbox-extra-margin:0px;--f7-checkbox-inactive-color:#c7c7cc}.md{--f7-checkbox-size:18px;--f7-checkbox-border-radius:2px;--f7-checkbox-border-width:2px;--f7-checkbox-extra-margin:22px;--f7-checkbox-inactive-color:#6d6d6d}.aurora{--f7-checkbox-size:14px;--f7-checkbox-border-radius:2px;--f7-checkbox-border-width:1px;--f7-checkbox-extra-margin:0px;--f7-checkbox-inactive-color:#888}.checkbox{position:relative;display:inline-block;vertical-align:middle;z-index:1;background-color:transparent;--f7-touch-ripple-color:rgba(var(--f7-theme-color-rgb), 0.5)}.checkbox i,.icon-checkbox{flex-shrink:0;border:var(--f7-checkbox-border-width) solid var(--f7-checkbox-inactive-color);width:var(--f7-checkbox-size);height:var(--f7-checkbox-size);border-radius:var(--f7-checkbox-border-radius);box-sizing:border-box;position:relative;display:block}.checkbox i:after,.icon-checkbox:after{font-family:framework7-core-icons;font-weight:400;font-style:normal;line-height:1;letter-spacing:normal;text-transform:none;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;font-feature-settings:"liga";text-align:center;display:block;width:100%;height:100%;font-size:20px;width:var(--f7-checkbox-size);height:var(--f7-checkbox-size);line-height:var(--f7-checkbox-size);top:calc(0px - var(--f7-checkbox-border-width));opacity:0;color:var(--f7-checkbox-icon-color);position:relative;transition-property:opacity;right:calc(0px - var(--f7-checkbox-border-width))}.checkbox input[type=checkbox]:not(:checked)~i:after,label.item-checkbox input[type=checkbox]:not(:checked)~* .icon-checkbox:after,label.item-checkbox input[type=checkbox]:not(:checked)~.icon-checkbox:after{font-size:0}.checkbox input[type=checkbox]:checked~i,.checkbox input[type=checkbox]:indeterminate~i,label.item-checkbox input[type=checkbox]:checked~* .icon-checkbox,label.item-checkbox input[type=checkbox]:checked~.icon-checkbox,label.item-checkbox input[type=checkbox]:indeterminate~* .icon-checkbox,label.item-checkbox input[type=checkbox]:indeterminate~.icon-checkbox{border-color:var(--f7-checkbox-active-color,var(--f7-theme-color));background-color:var(--f7-checkbox-active-color,var(--f7-theme-color))}.checkbox input[type=checkbox]:checked~i:after,.checkbox input[type=checkbox]:indeterminate~i:after,label.item-checkbox input[type=checkbox]:checked~* .icon-checkbox:after,label.item-checkbox input[type=checkbox]:checked~.icon-checkbox:after,label.item-checkbox input[type=checkbox]:indeterminate~* .icon-checkbox:after,label.item-checkbox input[type=checkbox]:indeterminate~.icon-checkbox:after{opacity:1}.checkbox input[type=checkbox]:indeterminate~i:after,label.item-checkbox input[type=checkbox]:indeterminate~* .icon-checkbox:after,label.item-checkbox input[type=checkbox]:indeterminate~.icon-checkbox:after{font-size:0;content:'';position:absolute;top:50%;width:70%;background:#fff;height:2px;border-radius:2px;margin-top:-1px;transition:0s;right:15%}.checkbox,label.item-checkbox{cursor:pointer}.checkbox input[type=checkbox],.checkbox input[type=radio],label.item-checkbox input[type=checkbox],label.item-checkbox input[type=radio]{display:none}label.item-checkbox{transition-duration:.3s}label.item-checkbox .item-content .item-media,label.item-checkbox.item-content .item-media{align-self:center}label.item-checkbox>.icon-checkbox{margin-left:calc(var(--f7-list-item-media-margin) + var(--f7-checkbox-extra-margin))}label.item-checkbox.active-state{background-color:var(--f7-list-link-pressed-bg-color)}label.item-checkbox.active-state:after{background-color:transparent}.disabled label.item-checkbox,label.item-checkbox.disabled{opacity:.55;pointer-events:none;opacity:.55!important;pointer-events:none!important}.ios .checkbox i:after,.ios .icon-checkbox:after{content:'checkbox_ios';font-size:21px}.ios label.item-checkbox.active-state{transition-duration:0s}.ios .checkbox input[type=checkbox]:indeterminate~i:after,.ios label.item-checkbox input[type=checkbox]:indeterminate~* .icon-checkbox:after,.ios label.item-checkbox input[type=checkbox]:indeterminate~.icon-checkbox:after{height:1px;margin-top:0px}.md .checkbox i,.md .icon-checkbox{transition-duration:.2s}.md .checkbox i:after,.md .icon-checkbox:after{content:'checkbox_md';transition-duration:.2s;font-size:15px}.md label.item-checkbox{position:relative;overflow:hidden;z-index:0}.aurora .checkbox i,.aurora .icon-checkbox{transition-duration:150ms}.aurora .checkbox i:after,.aurora .icon-checkbox:after{content:'checkbox_aurora';transition-duration:150ms;font-size:19px}.aurora .checkbox i:before,.aurora .icon-checkbox:before{content:'';position:absolute;left:0;top:0;width:100%;height:100%;background:rgba(0,0,0,.1);opacity:0;transition-duration:150ms}.aurora .checkbox.active-state i:before{opacity:1}.aurora label.item-checkbox{position:relative;overflow:hidden;z-index:0}:root{--f7-radio-border-radius:50%}:root .theme-dark,:root.theme-dark{--f7-radio-inactive-color:rgba(255, 255, 255, 0.3)}.ios{--f7-radio-size:22px;--f7-radio-border-width:1px;--f7-radio-extra-margin:0px;--f7-radio-inactive-color:#c7c7cc}.md{--f7-radio-size:20px;--f7-radio-border-width:2px;--f7-radio-extra-margin:22px;--f7-radio-inactive-color:#6d6d6d}.aurora{--f7-radio-size:16px;--f7-radio-border-width:1px;--f7-radio-extra-margin:0px;--f7-radio-inactive-color:#888}.radio{position:relative;display:inline-block;vertical-align:middle;z-index:1;--f7-touch-ripple-color:rgba(var(--f7-theme-color-rgb), 0.5)}.icon-radio{width:var(--f7-radio-size);height:var(--f7-radio-size);border-radius:var(--f7-radio-border-radius);position:relative;box-sizing:border-box;display:block;flex-shrink:0}.aurora .icon-radio,.md .icon-radio,.radio .icon-radio{border:var(--f7-radio-border-width) solid var(--f7-radio-inactive-color)}.radio,label.item-radio{cursor:pointer}.radio input[type=checkbox],.radio input[type=radio],label.item-radio input[type=checkbox],label.item-radio input[type=radio]{display:none}label.item-radio{transition-duration:.3s}label.item-radio .item-content .item-media,label.item-radio.item-content .item-media{align-self:center}label.item-radio.active-state{background-color:var(--f7-list-link-pressed-bg-color)}label.item-radio.active-state:after{background-color:transparent}.disabled label.item-radio,label.item-radio.disabled{opacity:.55;pointer-events:none;opacity:.55!important;pointer-events:none!important}.ios .icon-radio:after{font-family:framework7-core-icons;font-weight:400;font-style:normal;line-height:1;letter-spacing:normal;text-transform:none;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;font-feature-settings:"liga";text-align:center;display:block;width:100%;height:100%;width:calc(var(--f7-radio-size) - var(--f7-radio-border-width) * 2);height:calc(var(--f7-radio-size) - var(--f7-radio-border-width) * 2);line-height:calc(var(--f7-radio-size) - var(--f7-radio-border-width) * 2 + 1px);font-size:20px;content:'radio_ios';color:var(--f7-radio-active-color,var(--f7-theme-color));opacity:0}.ios .radio input[type=radio]:checked~.icon-radio:after,.ios label.item-radio input[type=radio]:checked~* .icon-radio:after,.ios label.item-radio input[type=radio]:checked~.icon-radio:after{opacity:1}.ios .radio input[type=radio]:checked~.icon-radio{border-color:var(--f7-radio-active-color,var(--f7-theme-color))}.ios label.item-radio:not(.item-radio-icon-start) input[type=radio]~.icon-radio{position:absolute;top:50%;margin-top:-11px;left:calc(var(--f7-safe-area-left) + 10px)}.ios label.item-radio:not(.item-radio-icon-start) .item-inner{padding-left:calc(var(--f7-safe-area-left) + 36px)}.ios label.item-radio-icon-start>.icon-radio{margin-left:calc(var(--f7-list-item-media-margin) + var(--f7-checkbox-extra-margin))}.ios label.item-radio.active-state{transition-duration:0s}.md .icon-radio{transition-duration:.2s}.md .icon-radio:after{content:'';position:absolute;width:10px;height:10px;left:50%;top:50%;margin-left:-5px;margin-top:-5px;background-color:var(--f7-radio-active-color,var(--f7-theme-color));border-radius:50%;transform:scale(0);transition-duration:.2s}.md .radio input[type=radio]:checked~.icon-radio,.md label.item-radio input[type=radio]:checked~* .icon-radio,.md label.item-radio input[type=radio]:checked~.icon-radio{border-color:var(--f7-radio-active-color,var(--f7-theme-color))}.md .radio input[type=radio]:checked~.icon-radio:after,.md label.item-radio input[type=radio]:checked~* .icon-radio:after,.md label.item-radio input[type=radio]:checked~.icon-radio:after{background-color:var(--f7-radio-active-color,var(--f7-theme-color));transform:scale(1)}.md label.item-radio{position:relative;overflow:hidden;z-index:0}.md label.item-radio:not(.item-radio-icon-end)>.icon-radio{margin-left:calc(var(--f7-list-item-media-margin) + var(--f7-radio-extra-margin))}.md label.item-radio-icon-end input[type=radio]~.icon-radio{position:absolute;top:50%;margin-top:-10px;left:calc(var(--f7-safe-area-left) + 16px)}.md label.item-radio-icon-end .item-inner{padding-left:calc(var(--f7-safe-area-left) + 52px)}.aurora .icon-radio{transition-duration:150ms;overflow:hidden}.aurora .icon-radio:after{content:'';position:absolute;width:6px;height:6px;left:50%;top:50%;margin-left:-3px;margin-top:-3px;background-color:#fff;border-radius:50%;transform:scale(0);transition-duration:150ms}.aurora .icon-radio:before{content:'';position:absolute;left:0;top:0;width:100%;height:100%;background:rgba(0,0,0,.1);opacity:0;transition-duration:150ms}.aurora .radio.active-state i:before{opacity:1}.aurora .radio input[type=radio]:checked~.icon-radio,.aurora label.item-radio input[type=radio]:checked~* .icon-radio,.aurora label.item-radio input[type=radio]:checked~.icon-radio{border-color:var(--f7-radio-active-color,var(--f7-theme-color));background-color:var(--f7-radio-active-color,var(--f7-theme-color))}.aurora .radio input[type=radio]:checked~.icon-radio:after,.aurora label.item-radio input[type=radio]:checked~* .icon-radio:after,.aurora label.item-radio input[type=radio]:checked~.icon-radio:after{transform:scale(1)}.aurora label.item-radio{position:relative;overflow:hidden;z-index:0}.aurora label.item-radio:not(.item-radio-icon-end)>.icon-radio{margin-left:calc(var(--f7-list-item-media-margin) + var(--f7-radio-extra-margin))}.aurora label.item-radio-icon-end input[type=radio]~.icon-radio{position:absolute;top:50%;margin-top:-8px;left:calc(var(--f7-safe-area-left) + 16px)}.aurora label.item-radio-icon-end .item-inner{padding-left:calc(var(--f7-safe-area-left) + 48px)}:root{--f7-toggle-handle-color:#fff}:root .theme-dark,:root.theme-dark{--f7-toggle-inactive-color:#555}.ios{--f7-toggle-width:52px;--f7-toggle-height:32px;--f7-toggle-border-color:#e5e5e5;--f7-toggle-inactive-color:#fff}.ios .theme-dark,.ios.theme-dark{--f7-toggle-border-color:#555}.md{--f7-toggle-width:36px;--f7-toggle-height:14px;--f7-toggle-inactive-color:#b0afaf}.aurora{--f7-toggle-width:40px;--f7-toggle-height:20px;--f7-toggle-inactive-color:#aaa}.toggle,.toggle-icon{width:var(--f7-toggle-width);height:var(--f7-toggle-height);border-radius:var(--f7-toggle-height)}.toggle{display:inline-block;vertical-align:middle;position:relative;box-sizing:border-box;align-self:center;-webkit-user-select:none;-moz-user-select:none;user-select:none}.toggle input[type=checkbox]{display:none}.toggle input[disabled]~.toggle-icon{pointer-events:none}.toggle-icon{z-index:0;margin:0;padding:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;position:relative;transition:.3s;box-sizing:border-box;display:block;cursor:pointer}.toggle-icon:after,.toggle-icon:before{content:''}.toggle-icon:after{background:var(--f7-toggle-handle-color);position:absolute;z-index:2;transform:translateX(0px);transition-duration:.3s}.ios .toggle input[type=checkbox]:checked+.toggle-icon{background:var(--f7-toggle-active-color,var(--f7-theme-color))}.ios .toggle input[type=checkbox]:checked+.toggle-icon:before{transform:scale(0)}.ios .toggle input[type=checkbox]:checked+.toggle-icon:after{transform:translateX(calc(-1 * (var(--f7-toggle-width) - var(--f7-toggle-height))))}.ios .toggle-icon{background:var(--f7-toggle-border-color)}.ios .toggle-icon:before{position:absolute;right:2px;top:2px;width:calc(var(--f7-toggle-width) - 4px);height:calc(var(--f7-toggle-height) - 4px);border-radius:var(--f7-toggle-height);box-sizing:border-box;background:var(--f7-toggle-inactive-color);z-index:1;transition-duration:.3s;transform:scale(1)}.ios .toggle-icon:after{height:calc(var(--f7-toggle-height) - 4px);width:calc(var(--f7-toggle-height) - 4px);top:2px;right:2px;box-shadow:0 2px 4px rgba(0,0,0,.3);border-radius:calc(var(--f7-toggle-height) - 4px)}.ios .toggle-active-state input[type=checkbox]:not(:checked)+.toggle-icon:before{transform:scale(0)}.ios .toggle-active-state input[type=checkbox]+.toggle-icon:after{width:calc(var(--f7-toggle-height) + 4px)}.ios .toggle-active-state input[type=checkbox]:checked+.toggle-icon:after{transform:translateX(calc(-1 * (var(--f7-toggle-width) - var(--f7-toggle-height) - 8px)))}.md .toggle input[type=checkbox]:checked+.toggle-icon{background:var(--f7-toggle-active-color,rgba(var(--f7-theme-color-rgb),.5))}.md .toggle input[type=checkbox]:checked+.toggle-icon:after{transform:translateX(calc(-1 * (var(--f7-toggle-width) - var(--f7-toggle-height) - 6px)));background:var(--f7-toggle-active-color,var(--f7-theme-color))}.md .toggle-icon{background:var(--f7-toggle-inactive-color)}.md .toggle-icon:after{height:calc(var(--f7-toggle-height) + 6px);width:calc(var(--f7-toggle-height) + 6px);top:-3px;box-shadow:0 2px 5px rgba(0,0,0,.4);border-radius:var(--f7-toggle-height);right:0}.aurora .toggle input[type=checkbox]:checked+.toggle-icon{background:var(--f7-toggle-active-color,var(--f7-theme-color))}.aurora .toggle input[type=checkbox]:checked+.toggle-icon:after{transform:translateX(calc(-1 * (var(--f7-toggle-width) - var(--f7-toggle-height))))}.aurora .toggle-icon{background:var(--f7-toggle-inactive-color)}.aurora .toggle-icon:after{height:calc(var(--f7-toggle-height) - 4px);width:calc(var(--f7-toggle-height) - 4px);top:2px;right:2px;border-radius:calc(var(--f7-toggle-height) - 4px)}:root{--f7-range-scale-step-height:5px;--f7-range-scale-text-color:#666;--f7-range-scale-substep-width:1px;--f7-range-scale-substep-height:4px}.ios{--f7-range-size:28px;--f7-range-bar-bg-color:#b7b8b7;--f7-range-bar-size:1px;--f7-range-bar-border-radius:2px;--f7-range-knob-size:28px;--f7-range-knob-color:#fff;--f7-range-knob-box-shadow:0 2px 4px rgba(0, 0, 0, 0.3);--f7-range-label-size:20px;--f7-range-label-text-color:#000;--f7-range-label-bg-color:#fff;--f7-range-label-font-size:12px;--f7-range-label-font-weight:normal;--f7-range-label-border-radius:5px;--f7-range-label-padding:0px;--f7-range-scale-step-width:1px;--f7-range-scale-font-size:12px;--f7-range-scale-font-weight:400;--f7-range-scale-label-offset:4px}.md{--f7-range-size:20px;--f7-range-bar-bg-color:#b9b9b9;--f7-range-bar-size:2px;--f7-range-bar-border-radius:0px;--f7-range-knob-size:12px;--f7-range-knob-box-shadow:none;--f7-range-label-size:26px;--f7-range-label-font-weight:normal;--f7-range-label-text-color:#fff;--f7-range-label-font-size:10px;--f7-range-label-border-radius:50%;--f7-range-label-padding:0px;--f7-range-scale-step-width:2px;--f7-range-scale-font-size:12px;--f7-range-scale-font-weight:400;--f7-range-scale-label-offset:4px}.aurora{--f7-range-size:20px;--f7-range-bar-bg-color:#c7c7c7;--f7-range-bar-size:2px;--f7-range-bar-border-radius:2px;--f7-range-knob-size:16px;--f7-range-knob-box-shadow:none;--f7-range-label-size:20px;--f7-range-label-text-color:#fff;--f7-range-label-font-size:10px;--f7-range-label-font-weight:600;--f7-range-label-border-radius:4px;--f7-range-label-padding:0px 4px;--f7-range-scale-step-width:2px;--f7-range-scale-font-size:11px;--f7-range-scale-font-weight:500;--f7-range-scale-label-offset:2px}.range-slider{display:block;position:relative;align-self:center;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.range-slider input[type=range]{display:none}.range-slider.range-slider-horizontal{width:100%;height:var(--f7-range-size);touch-action:pan-y}.range-slider.range-slider-vertical{height:100%;width:var(--f7-range-size);touch-action:pan-x}.range-bar{position:absolute;overflow:hidden;background:var(--f7-range-bar-bg-color);border-radius:var(--f7-range-bar-border-radius)}.range-slider-vertical .range-bar{left:50%;top:0;height:100%;width:var(--f7-range-bar-size);margin-left:calc(-1 * var(--f7-range-bar-size)/ 2)}.range-slider-horizontal .range-bar{left:0;top:50%;width:100%;height:var(--f7-range-bar-size);margin-top:calc(-1 * var(--f7-range-bar-size)/ 2)}.range-bar-active{position:absolute;background:var(--f7-range-bar-active-bg-color,var(--f7-theme-color))}.range-slider-horizontal .range-bar-active{right:0;top:0;height:100%}.range-slider-vertical .range-bar-active{left:0;bottom:0;width:100%}.range-slider-vertical-reversed .range-bar-active{top:0;bottom:auto}.range-knob-wrap{z-index:20;position:absolute;height:var(--f7-range-knob-size);width:var(--f7-range-knob-size)}.range-slider-horizontal .range-knob-wrap{top:50%;margin-top:calc(-1 * var(--f7-range-knob-size)/ 2);margin-right:calc(-1 * var(--f7-range-knob-size)/ 2);right:0}.range-slider-vertical .range-knob-wrap{left:50%;margin-left:calc(-1 * var(--f7-range-knob-size)/ 2);bottom:0;margin-bottom:calc(-1 * var(--f7-range-knob-size)/ 2)}.range-slider-vertical-reversed .range-knob-wrap{bottom:auto;top:0;margin-bottom:0;margin-top:calc(-1 * var(--f7-range-knob-size)/ 2)}.range-knob{box-sizing:border-box;border-radius:50%;position:absolute;left:0;top:0;width:100%;height:100%;z-index:1;background:var(--f7-range-knob-color,var(--f7-range-knob-bg-color,var(--f7-theme-color)));box-shadow:var(--f7-range-knob-box-shadow)}.range-knob:after{content:'';position:absolute;left:50%;top:50%;width:44px;height:44px;margin-left:-22px;margin-top:-22px}.range-knob-label{position:absolute;left:50%;bottom:100%;text-align:center;transition-duration:120ms;transition-property:transform;box-sizing:border-box;transform:translateY(100%) scale(0);height:var(--f7-range-label-size);line-height:var(--f7-range-label-size);min-width:var(--f7-range-label-size);color:var(--f7-range-label-text-color);background-color:var(--f7-range-label-bg-color,var(--f7-theme-color));font-size:var(--f7-range-label-font-size);font-weight:var(--f7-range-label-font-weight);border-radius:var(--f7-range-label-border-radius);padding:var(--f7-range-label-padding)}.range-knob-active-state .range-knob-label{transform:translateY(0%) scale(1)}.range-scale{position:absolute}.range-slider-horizontal .range-scale{top:50%;left:0;width:100%;margin-top:calc(var(--f7-range-bar-size)/ 2)}.range-slider-vertical .range-scale{right:50%;top:0;height:100%;margin-right:calc(var(--f7-range-bar-size)/ 2)}.range-scale-step{position:absolute;box-sizing:border-box;display:flex;font-size:var(--f7-range-scale-font-size);font-weight:var(--f7-range-scale-font-weight);color:var(--f7-range-scale-text-color,var(--f7-range-bar-bg-color));line-height:1}.range-scale-step:before{content:'';position:absolute;background:var(--f7-range-scale-step-bg-color,var(--f7-range-bar-bg-color))}.range-slider-horizontal .range-scale-step{justify-content:center;align-items:flex-start;width:var(--f7-range-scale-step-width);height:var(--f7-range-scale-step-height);padding-top:calc(var(--f7-range-scale-step-height) + var(--f7-range-scale-label-offset));top:0;margin-right:calc(-1 * var(--f7-range-scale-step-width)/ 2)}.range-slider-horizontal .range-scale-step:before{left:0;top:0;width:100%;height:var(--f7-range-scale-step-height)}.range-slider-horizontal .range-scale-step:first-child{margin-right:0}.range-slider-horizontal .range-scale-step:last-child{margin-right:calc(-1 * var(--f7-range-scale-step-width))}.range-slider-vertical .range-scale-step{line-height:1;justify-content:flex-end;align-items:center;height:var(--f7-range-scale-step-width);width:var(--f7-range-scale-step-height);padding-right:calc(var(--f7-range-scale-step-height) + var(--f7-range-scale-label-offset));right:0;margin-bottom:calc(-1 * var(--f7-range-scale-step-width)/ 2)}.range-slider-vertical .range-scale-step:first-child{margin-bottom:0}.range-slider-vertical .range-scale-step:last-child{margin-bottom:calc(-1 * var(--f7-range-scale-step-width))}.range-slider-vertical .range-scale-step:before{right:0;top:0;height:100%;width:var(--f7-range-scale-step-height)}.range-scale-substep{--f7-range-scale-step-bg-color:var(--f7-range-scale-substep-bg-color, var(--f7-range-bar-bg-color));--f7-range-scale-step-width:var(--f7-range-scale-substep-width);--f7-range-scale-step-height:var(--f7-range-scale-substep-height)}.ios .range-knob-label{margin-bottom:6px;transform:translateX(-50%) translateY(100%) scale(0)}.ios .range-knob-active-state .range-knob-label{transform:translateX(-50%) translateY(0%) scale(1)}.md .range-knob{transition-duration:.2s;transition-property:transform,background-color}.md .range-knob-active-state .range-knob{transform:scale(1.5)}.md .range-slider-min:not(.range-slider-dual) .range-knob{background:#fff!important;border:2px solid var(--f7-range-bar-bg-color)}.md .range-knob-label{width:var(--f7-range-label-size);margin-left:calc(-1 * var(--f7-range-label-size)/ 2);margin-bottom:8px}.md .range-knob-label:before{content:'';left:50%;top:0px;margin-left:calc(-1 * var(--f7-range-label-size)/ 2);position:absolute;z-index:-1;width:var(--f7-range-label-size);height:var(--f7-range-label-size);background:var(--f7-range-label-bg-color,var(--f7-theme-color));transform:rotate(-45deg);border-radius:50% 50% 50% 0}.md .range-knob-active-state .range-knob-label{transform:translateY(0%) scale(1)}.md .range-slider-label .range-knob-active-state .range-knob{transform:scale(0)}.aurora .range-knob-label{margin-bottom:6px;transform:translateX(-50%) translateY(100%) scale(0)}.aurora .range-knob-active-state .range-knob-label{transform:translateX(-50%) translateY(0%) scale(1)}:root{--f7-stepper-fill-button-text-color:#fff;--f7-stepper-raised-box-shadow:0 1px 3px rgba(0, 0, 0, 0.12),0 1px 2px rgba(0,0,0,0.24);--f7-stepper-value-font-weight:500;--f7-stepper-border-width:2px}.ios{--f7-stepper-height:28px;--f7-stepper-border-radius:5px;--f7-stepper-large-height:44px;--f7-stepper-small-height:26px;--f7-stepper-small-border-width:2px;--f7-stepper-value-font-size:17px}.md{--f7-stepper-height:36px;--f7-stepper-border-radius:4px;--f7-stepper-large-height:48px;--f7-stepper-small-border-width:2px;--f7-stepper-small-height:28px;--f7-stepper-value-font-size:14px;--f7-stepper-button-pressed-bg-color:rgba(0, 0, 0, 0.1)}.md .theme-dark,.md.theme-dark{--f7-stepper-button-pressed-bg-color:rgba(255, 255, 255, 0.1)}.aurora{--f7-stepper-height:28px;--f7-stepper-border-radius:4px;--f7-stepper-large-height:34px;--f7-stepper-small-border-width:1px;--f7-stepper-small-height:22px;--f7-stepper-value-font-size:14px}.stepper{display:inline-flex;align-items:stretch;height:var(--f7-stepper-height);border-radius:var(--f7-stepper-border-radius);flex-direction:row-reverse}.stepper-button,.stepper-button-minus,.stepper-button-plus{background-color:var(--f7-stepper-button-bg-color);width:40px;border-radius:var(--f7-stepper-border-radius);border:var(--f7-stepper-border-width) solid var(--f7-theme-color);color:var(--f7-stepper-button-text-color,var(--f7-theme-color));line-height:calc(var(--f7-stepper-height) - var(--f7-stepper-border-width,0px));text-align:center;display:flex;justify-content:center;align-content:center;align-items:center;flex-shrink:0;box-sizing:border-box;position:relative;cursor:pointer}.stepper-button-minus.active-state,.stepper-button-plus.active-state,.stepper-button.active-state{background-color:var(--f7-stepper-button-pressed-bg-color,rgba(var(--f7-theme-color-rgb),.15));color:var(--f7-stepper-button-pressed-text-color,var(--f7-stepper-button-text-color,var(--f7-theme-color)))}.stepper-button-minus:first-child,.stepper-button-plus:first-child,.stepper-button:first-child{border-radius:var(--f7-stepper-border-radius) 0 0 var(--f7-stepper-border-radius)}.stepper-button-minus:last-child,.stepper-button-plus:last-child,.stepper-button:last-child{border-radius:0 var(--f7-stepper-border-radius) var(--f7-stepper-border-radius) 0}.stepper-button .icon,.stepper-button-minus .icon,.stepper-button-plus .icon{pointer-events:none}.stepper-button+.stepper-button,.stepper-button+.stepper-button-minus,.stepper-button+.stepper-button-plus,.stepper-button-minus+.stepper-button,.stepper-button-minus+.stepper-button-minus,.stepper-button-minus+.stepper-button-plus,.stepper-button-plus+.stepper-button,.stepper-button-plus+.stepper-button-minus,.stepper-button-plus+.stepper-button-plus{border-left:none}.stepper-button-minus,.stepper-button-plus{-webkit-user-select:none;-moz-user-select:none;user-select:none}.stepper-button-minus:after,.stepper-button-minus:before,.stepper-button-plus:after,.stepper-button-plus:before{content:'';position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background-color:var(--f7-stepper-button-text-color,var(--f7-theme-color));border-radius:2px}.stepper-button-minus:after,.stepper-button-plus:after{width:15px;height:2px}.stepper-button-plus:before{height:15px;width:2px}.stepper-value{display:flex;align-content:center;align-items:center;justify-content:center}.stepper-input-wrap,.stepper-value{flex-shrink:1;text-align:center;border-top:var(--f7-stepper-border-width) solid var(--f7-theme-color);border-bottom:var(--f7-stepper-border-width) solid var(--f7-theme-color)}.stepper .stepper-input-wrap input,.stepper-value{width:45px;color:var(--f7-stepper-value-text-color,var(--f7-theme-color));font-size:var(--f7-stepper-value-font-size);font-weight:var(--f7-stepper-value-font-weight);text-align:center}.stepper .stepper-input-wrap input{height:100%}.aurora .stepper-round-aurora,.ios .stepper-round-ios,.md .stepper-round-md,.stepper-round{--f7-stepper-border-radius:var(--f7-stepper-height)}.aurora .stepper-fill-aurora,.ios .stepper-fill-ios,.md .stepper-fill-md,.stepper-fill{--f7-stepper-button-bg-color:var(--f7-stepper-fill-button-bg-color, var(--f7-theme-color));--f7-stepper-button-text-color:var(--f7-stepper-fill-button-text-color);--f7-touch-ripple-color:var(--f7-touch-ripple-white)}.aurora .stepper-fill-aurora .stepper-button+.stepper-button,.aurora .stepper-fill-aurora .stepper-button-minus+.stepper-button-plus,.aurora .stepper-raised-aurora .stepper-button+.stepper-button,.aurora .stepper-raised-aurora .stepper-button-minus+.stepper-button-plus,.ios .stepper-fill-ios .stepper-button+.stepper-button,.ios .stepper-fill-ios .stepper-button-minus+.stepper-button-plus,.ios .stepper-raised-ios .stepper-button+.stepper-button,.ios .stepper-raised-ios .stepper-button-minus+.stepper-button-plus,.md .stepper-fill-md .stepper-button+.stepper-button,.md .stepper-fill-md .stepper-button-minus+.stepper-button-plus,.md .stepper-raised-md .stepper-button+.stepper-button,.md .stepper-raised-md .stepper-button-minus+.stepper-button-plus,.stepper-fill .stepper-button+.stepper-button,.stepper-fill .stepper-button-minus+.stepper-button-plus,.stepper-raised .stepper-button+.stepper-button,.stepper-raised .stepper-button-minus+.stepper-button-plus{border-left:1px solid rgba(0,0,0,.1)}.aurora .stepper-fill-aurora .stepper-button+.stepper-button.active-state,.aurora .stepper-fill-aurora .stepper-button-minus+.stepper-button-plus.active-state,.ios .stepper-fill-ios .stepper-button+.stepper-button.active-state,.ios .stepper-fill-ios .stepper-button-minus+.stepper-button-plus.active-state,.md .stepper-fill-md .stepper-button+.stepper-button.active-state,.md .stepper-fill-md .stepper-button-minus+.stepper-button-plus.active-state,.stepper-fill .stepper-button+.stepper-button.active-state,.stepper-fill .stepper-button-minus+.stepper-button-plus.active-state{border-left-color:var(--f7-stepper-button-pressed-bg-color)}.aurora .stepper-raised-aurora:not(.stepper-fill-aurora):not(.stepper-fill) .stepper-input-wrap,.aurora .stepper-raised-aurora:not(.stepper-fill-aurora):not(.stepper-fill) .stepper-value,.ios .stepper-raised-ios:not(.stepper-fill-ios):not(.stepper-fill) .stepper-input-wrap,.ios .stepper-raised-ios:not(.stepper-fill-ios):not(.stepper-fill) .stepper-value,.md .stepper-raised-md:not(.stepper-fill-md):not(.stepper-fill) .stepper-input-wrap,.md .stepper-raised-md:not(.stepper-fill-md):not(.stepper-fill) .stepper-value,.stepper-raised:not(.stepper-fill) .stepper-input-wrap,.stepper-raised:not(.stepper-fill) .stepper-value{border-left:1px solid rgba(0,0,0,.1);border-right:1px solid rgba(0,0,0,.1)}.aurora .stepper-large-aurora,.ios .stepper-large-ios,.md .stepper-large-md,.stepper-large{--f7-stepper-height:var(--f7-stepper-large-height)}.aurora .stepper-small-aurora,.ios .stepper-small-ios,.md .stepper-small-md,.stepper-small{--f7-stepper-border-width:var(--f7-stepper-small-border-width);--f7-stepper-height:var(--f7-stepper-small-height)}.ios .stepper-fill.stepper-small,.ios .stepper-fill.stepper-small-ios{--f7-stepper-button-pressed-bg-color:transparent;--f7-stepper-button-pressed-text-color:var(--f7-theme-color)}.aurora .stepper-raised-aurora,.ios .stepper-raised-ios,.md .stepper-raised-md,.stepper-raised{--f7-stepper-border-width:0;box-shadow:var(--f7-stepper-raised-box-shadow)}.ios .stepper-button .f7-icons,.ios .stepper-button-minus .f7-icons,.ios .stepper-button-plus .f7-icons{font-size:22px}.ios .stepper-fill,.ios .stepper-fill-ios{--f7-stepper-button-pressed-bg-color:var(--f7-stepper-fill-button-pressed-bg-color, var(--f7-theme-color-tint))}.ios .stepper-small-ios.stepper-raised,.ios .stepper-small-ios.stepper-raised-ios,.ios .stepper-small.stepper-raised,.ios .stepper-small.stepper-raised-ios{--f7-stepper-border-width:0px}.ios .stepper-small .stepper-button,.ios .stepper-small .stepper-button-minus,.ios .stepper-small .stepper-button-plus,.ios .stepper-small-ios .stepper-button,.ios .stepper-small-ios .stepper-button-minus,.ios .stepper-small-ios .stepper-button-plus{transition-duration:.2s}.ios .stepper-small .stepper-button-minus.active-state:after,.ios .stepper-small .stepper-button-minus.active-state:before,.ios .stepper-small .stepper-button-plus.active-state:after,.ios .stepper-small .stepper-button-plus.active-state:before,.ios .stepper-small .stepper-button.active-state:after,.ios .stepper-small .stepper-button.active-state:before,.ios .stepper-small-ios .stepper-button-minus.active-state:after,.ios .stepper-small-ios .stepper-button-minus.active-state:before,.ios .stepper-small-ios .stepper-button-plus.active-state:after,.ios .stepper-small-ios .stepper-button-plus.active-state:before,.ios .stepper-small-ios .stepper-button.active-state:after,.ios .stepper-small-ios .stepper-button.active-state:before{transition-duration:.2s;background-color:var(--f7-theme-color)}.md .stepper-button,.md .stepper-button-minus,.md .stepper-button-plus{transition-duration:.3s;transform:translate3d(0,0,0);overflow:hidden}.md .stepper-fill,.md .stepper-fill-md{--f7-stepper-button-pressed-bg-color:var(--f7-stepper-fill-button-pressed-bg-color, var(--f7-theme-color-shade))}.aurora .stepper-button,.aurora .stepper-button-minus,.aurora .stepper-button-plus{transition-duration:.1s;transform:translate3d(0,0,0);overflow:hidden}.aurora.device-desktop .stepper-button-minus:not(.active-state):not(.no-hover):hover,.aurora.device-desktop .stepper-button-plus:not(.active-state):not(.no-hover):hover,.aurora.device-desktop .stepper-button:not(.active-state):not(.no-hover):hover{background-color:var(--f7-stepper-button-hover-bg-color,rgba(var(--f7-theme-color-rgb),.07))}.aurora .stepper-fill,.aurora .stepper-fill-aurora{--f7-stepper-button-hover-bg-color:var(--f7-stepper-button-fill-hover-bg-color, var(--f7-theme-color-tint));--f7-stepper-button-pressed-bg-color:var(--f7-stepper-fill-button-pressed-bg-color, var(--f7-theme-color-shade))}.smart-select select{display:none}.smart-select .item-after{max-width:70%;overflow:hidden;text-overflow:ellipsis;position:relative;display:block}.smart-select-sheet .list ul,.smart-select-sheet .page,.smart-select-sheet .sheet-modal-inner{background:var(--f7-smart-select-sheet-bg,var(--f7-list-bg-color))}.smart-select-sheet .toolbar:after{content:'';position:absolute;background-color:var(--f7-smart-select-sheet-toolbar-border-color,var(--f7-bars-border-color));display:block;z-index:15;top:auto;right:auto;bottom:0;left:0;height:1px;width:100%;transform-origin:50% 100%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.smart-select-sheet .toolbar:after{display:block}.smart-select-sheet .list{margin:0}.smart-select-sheet .list ul:after,.smart-select-sheet .list ul:before{display:none!important}.smart-select-popover .popover-inner{max-height:40vh}:root{--f7-grid-gap:16px;--f7-grid-row-gap:0px;--f7-grid-resize-handler-bg-color:rgba(0, 0, 0, 0.35)}:root .theme-dark,:root.theme-dark{--f7-grid-resize-handler-bg-color:rgba(255, 255, 255, 0.35)}.row{display:flex;justify-content:space-between;flex-wrap:wrap;align-items:flex-start;--f7-cols-per-row:1}.row+.row{margin-top:var(--f7-grid-row-gap)}.row>.col,.row>[class*=col-]{box-sizing:border-box;width:calc((100% - var(--f7-grid-gap) * (var(--f7-cols-per-row) - 1))/ var(--f7-cols-per-row))}.row>.col.resizable,.row>[class*=col-].resizable{position:relative}.row.resizable{position:relative}.row.no-gap{--f7-grid-gap:0px;--f7-grid-row-gap:0px}.row .col-5{--f7-cols-per-row:20}.row .col-10{--f7-cols-per-row:10}.row .col-15{--f7-cols-per-row:6.66666667}.row .col-20{--f7-cols-per-row:5}.row .col-25{--f7-cols-per-row:4}.row .col-30{--f7-cols-per-row:3.33333333}.row .col-33{--f7-cols-per-row:3}.row .col-35{--f7-cols-per-row:2.85714286}.row .col-40{--f7-cols-per-row:2.5}.row .col-45{--f7-cols-per-row:2.22222222}.row .col-50{--f7-cols-per-row:2}.row .col-55{--f7-cols-per-row:1.81818182}.row .col-60{--f7-cols-per-row:1.66666667}.row .col-65{--f7-cols-per-row:1.53846154}.row .col-66{--f7-cols-per-row:1.5}.row .col-70{--f7-cols-per-row:1.42857143}.row .col-75{--f7-cols-per-row:1.33333333}.row .col-80{--f7-cols-per-row:1.25}.row .col-85{--f7-cols-per-row:1.17647059}.row .col-90{--f7-cols-per-row:1.11111111}.row .col-95{--f7-cols-per-row:1.05263158}.row .col-100{--f7-cols-per-row:1}.row .col:nth-last-of-type(1),.row .col:nth-last-of-type(1)~.col{--f7-cols-per-row:1}.row .col:nth-last-of-type(2),.row .col:nth-last-of-type(2)~.col{--f7-cols-per-row:2}.row .col:nth-last-of-type(3),.row .col:nth-last-of-type(3)~.col{--f7-cols-per-row:3}.row .col:nth-last-of-type(4),.row .col:nth-last-of-type(4)~.col{--f7-cols-per-row:4}.row .col:nth-last-of-type(5),.row .col:nth-last-of-type(5)~.col{--f7-cols-per-row:5}.row .col:nth-last-of-type(6),.row .col:nth-last-of-type(6)~.col{--f7-cols-per-row:6}.row .col:nth-last-of-type(7),.row .col:nth-last-of-type(7)~.col{--f7-cols-per-row:7}.row .col:nth-last-of-type(8),.row .col:nth-last-of-type(8)~.col{--f7-cols-per-row:8}.row .col:nth-last-of-type(9),.row .col:nth-last-of-type(9)~.col{--f7-cols-per-row:9}.row .col:nth-last-of-type(10),.row .col:nth-last-of-type(10)~.col{--f7-cols-per-row:10}.row .col:nth-last-of-type(11),.row .col:nth-last-of-type(11)~.col{--f7-cols-per-row:11}.row .col:nth-last-of-type(12),.row .col:nth-last-of-type(12)~.col{--f7-cols-per-row:12}.row .col:nth-last-of-type(13),.row .col:nth-last-of-type(13)~.col{--f7-cols-per-row:13}.row .col:nth-last-of-type(14),.row .col:nth-last-of-type(14)~.col{--f7-cols-per-row:14}.row .col:nth-last-of-type(15),.row .col:nth-last-of-type(15)~.col{--f7-cols-per-row:15}.row .col:nth-last-of-type(16),.row .col:nth-last-of-type(16)~.col{--f7-cols-per-row:16}.row .col:nth-last-of-type(17),.row .col:nth-last-of-type(17)~.col{--f7-cols-per-row:17}.row .col:nth-last-of-type(18),.row .col:nth-last-of-type(18)~.col{--f7-cols-per-row:18}.row .col:nth-last-of-type(19),.row .col:nth-last-of-type(19)~.col{--f7-cols-per-row:19}.row .col:nth-last-of-type(20),.row .col:nth-last-of-type(20)~.col{--f7-cols-per-row:20}.row .col:nth-last-of-type(21),.row .col:nth-last-of-type(21)~.col{--f7-cols-per-row:21}.row .col:nth-last-of-type(22),.row .col:nth-last-of-type(22)~.col{--f7-cols-per-row:22}@media (min-width:480px){.row .xsmall-5{--f7-cols-per-row:20}.row .xsmall-10{--f7-cols-per-row:10}.row .xsmall-15{--f7-cols-per-row:6.66666667}.row .xsmall-20{--f7-cols-per-row:5}.row .xsmall-25{--f7-cols-per-row:4}.row .xsmall-30{--f7-cols-per-row:3.33333333}.row .xsmall-33{--f7-cols-per-row:3}.row .xsmall-35{--f7-cols-per-row:2.85714286}.row .xsmall-40{--f7-cols-per-row:2.5}.row .xsmall-45{--f7-cols-per-row:2.22222222}.row .xsmall-50{--f7-cols-per-row:2}.row .xsmall-55{--f7-cols-per-row:1.81818182}.row .xsmall-60{--f7-cols-per-row:1.66666667}.row .xsmall-65{--f7-cols-per-row:1.53846154}.row .xsmall-66{--f7-cols-per-row:1.5}.row .xsmall-70{--f7-cols-per-row:1.42857143}.row .xsmall-75{--f7-cols-per-row:1.33333333}.row .xsmall-80{--f7-cols-per-row:1.25}.row .xsmall-85{--f7-cols-per-row:1.17647059}.row .xsmall-90{--f7-cols-per-row:1.11111111}.row .xsmall-95{--f7-cols-per-row:1.05263158}.row .xsmall-100{--f7-cols-per-row:1}.row .xsmall-auto:nth-last-of-type(1),.row .xsmall-auto:nth-last-of-type(1)~.xsmall-auto{--f7-cols-per-row:1}.row .xsmall-auto:nth-last-of-type(2),.row .xsmall-auto:nth-last-of-type(2)~.xsmall-auto{--f7-cols-per-row:2}.row .xsmall-auto:nth-last-of-type(3),.row .xsmall-auto:nth-last-of-type(3)~.xsmall-auto{--f7-cols-per-row:3}.row .xsmall-auto:nth-last-of-type(4),.row .xsmall-auto:nth-last-of-type(4)~.xsmall-auto{--f7-cols-per-row:4}.row .xsmall-auto:nth-last-of-type(5),.row .xsmall-auto:nth-last-of-type(5)~.xsmall-auto{--f7-cols-per-row:5}.row .xsmall-auto:nth-last-of-type(6),.row .xsmall-auto:nth-last-of-type(6)~.xsmall-auto{--f7-cols-per-row:6}.row .xsmall-auto:nth-last-of-type(7),.row .xsmall-auto:nth-last-of-type(7)~.xsmall-auto{--f7-cols-per-row:7}.row .xsmall-auto:nth-last-of-type(8),.row .xsmall-auto:nth-last-of-type(8)~.xsmall-auto{--f7-cols-per-row:8}.row .xsmall-auto:nth-last-of-type(9),.row .xsmall-auto:nth-last-of-type(9)~.xsmall-auto{--f7-cols-per-row:9}.row .xsmall-auto:nth-last-of-type(10),.row .xsmall-auto:nth-last-of-type(10)~.xsmall-auto{--f7-cols-per-row:10}.row .xsmall-auto:nth-last-of-type(11),.row .xsmall-auto:nth-last-of-type(11)~.xsmall-auto{--f7-cols-per-row:11}.row .xsmall-auto:nth-last-of-type(12),.row .xsmall-auto:nth-last-of-type(12)~.xsmall-auto{--f7-cols-per-row:12}.row .xsmall-auto:nth-last-of-type(13),.row .xsmall-auto:nth-last-of-type(13)~.xsmall-auto{--f7-cols-per-row:13}.row .xsmall-auto:nth-last-of-type(14),.row .xsmall-auto:nth-last-of-type(14)~.xsmall-auto{--f7-cols-per-row:14}.row .xsmall-auto:nth-last-of-type(15),.row .xsmall-auto:nth-last-of-type(15)~.xsmall-auto{--f7-cols-per-row:15}.row .xsmall-auto:nth-last-of-type(16),.row .xsmall-auto:nth-last-of-type(16)~.xsmall-auto{--f7-cols-per-row:16}.row .xsmall-auto:nth-last-of-type(17),.row .xsmall-auto:nth-last-of-type(17)~.xsmall-auto{--f7-cols-per-row:17}.row .xsmall-auto:nth-last-of-type(18),.row .xsmall-auto:nth-last-of-type(18)~.xsmall-auto{--f7-cols-per-row:18}.row .xsmall-auto:nth-last-of-type(19),.row .xsmall-auto:nth-last-of-type(19)~.xsmall-auto{--f7-cols-per-row:19}.row .xsmall-auto:nth-last-of-type(20),.row .xsmall-auto:nth-last-of-type(20)~.xsmall-auto{--f7-cols-per-row:20}.row .xsmall-auto:nth-last-of-type(21),.row .xsmall-auto:nth-last-of-type(21)~.xsmall-auto{--f7-cols-per-row:21}.row .xsmall-auto:nth-last-of-type(22),.row .xsmall-auto:nth-last-of-type(22)~.xsmall-auto{--f7-cols-per-row:22}}@media (min-width:568px){.row .small-5{--f7-cols-per-row:20}.row .small-10{--f7-cols-per-row:10}.row .small-15{--f7-cols-per-row:6.66666667}.row .small-20{--f7-cols-per-row:5}.row .small-25{--f7-cols-per-row:4}.row .small-30{--f7-cols-per-row:3.33333333}.row .small-33{--f7-cols-per-row:3}.row .small-35{--f7-cols-per-row:2.85714286}.row .small-40{--f7-cols-per-row:2.5}.row .small-45{--f7-cols-per-row:2.22222222}.row .small-50{--f7-cols-per-row:2}.row .small-55{--f7-cols-per-row:1.81818182}.row .small-60{--f7-cols-per-row:1.66666667}.row .small-65{--f7-cols-per-row:1.53846154}.row .small-66{--f7-cols-per-row:1.5}.row .small-70{--f7-cols-per-row:1.42857143}.row .small-75{--f7-cols-per-row:1.33333333}.row .small-80{--f7-cols-per-row:1.25}.row .small-85{--f7-cols-per-row:1.17647059}.row .small-90{--f7-cols-per-row:1.11111111}.row .small-95{--f7-cols-per-row:1.05263158}.row .small-100{--f7-cols-per-row:1}.row .small-auto:nth-last-of-type(1),.row .small-auto:nth-last-of-type(1)~.small-auto{--f7-cols-per-row:1}.row .small-auto:nth-last-of-type(2),.row .small-auto:nth-last-of-type(2)~.small-auto{--f7-cols-per-row:2}.row .small-auto:nth-last-of-type(3),.row .small-auto:nth-last-of-type(3)~.small-auto{--f7-cols-per-row:3}.row .small-auto:nth-last-of-type(4),.row .small-auto:nth-last-of-type(4)~.small-auto{--f7-cols-per-row:4}.row .small-auto:nth-last-of-type(5),.row .small-auto:nth-last-of-type(5)~.small-auto{--f7-cols-per-row:5}.row .small-auto:nth-last-of-type(6),.row .small-auto:nth-last-of-type(6)~.small-auto{--f7-cols-per-row:6}.row .small-auto:nth-last-of-type(7),.row .small-auto:nth-last-of-type(7)~.small-auto{--f7-cols-per-row:7}.row .small-auto:nth-last-of-type(8),.row .small-auto:nth-last-of-type(8)~.small-auto{--f7-cols-per-row:8}.row .small-auto:nth-last-of-type(9),.row .small-auto:nth-last-of-type(9)~.small-auto{--f7-cols-per-row:9}.row .small-auto:nth-last-of-type(10),.row .small-auto:nth-last-of-type(10)~.small-auto{--f7-cols-per-row:10}.row .small-auto:nth-last-of-type(11),.row .small-auto:nth-last-of-type(11)~.small-auto{--f7-cols-per-row:11}.row .small-auto:nth-last-of-type(12),.row .small-auto:nth-last-of-type(12)~.small-auto{--f7-cols-per-row:12}.row .small-auto:nth-last-of-type(13),.row .small-auto:nth-last-of-type(13)~.small-auto{--f7-cols-per-row:13}.row .small-auto:nth-last-of-type(14),.row .small-auto:nth-last-of-type(14)~.small-auto{--f7-cols-per-row:14}.row .small-auto:nth-last-of-type(15),.row .small-auto:nth-last-of-type(15)~.small-auto{--f7-cols-per-row:15}.row .small-auto:nth-last-of-type(16),.row .small-auto:nth-last-of-type(16)~.small-auto{--f7-cols-per-row:16}.row .small-auto:nth-last-of-type(17),.row .small-auto:nth-last-of-type(17)~.small-auto{--f7-cols-per-row:17}.row .small-auto:nth-last-of-type(18),.row .small-auto:nth-last-of-type(18)~.small-auto{--f7-cols-per-row:18}.row .small-auto:nth-last-of-type(19),.row .small-auto:nth-last-of-type(19)~.small-auto{--f7-cols-per-row:19}.row .small-auto:nth-last-of-type(20),.row .small-auto:nth-last-of-type(20)~.small-auto{--f7-cols-per-row:20}.row .small-auto:nth-last-of-type(21),.row .small-auto:nth-last-of-type(21)~.small-auto{--f7-cols-per-row:21}.row .small-auto:nth-last-of-type(22),.row .small-auto:nth-last-of-type(22)~.small-auto{--f7-cols-per-row:22}}@media (min-width:768px){.row .medium-5{--f7-cols-per-row:20}.row .medium-10{--f7-cols-per-row:10}.row .medium-15{--f7-cols-per-row:6.66666667}.row .medium-20{--f7-cols-per-row:5}.row .medium-25{--f7-cols-per-row:4}.row .medium-30{--f7-cols-per-row:3.33333333}.row .medium-33{--f7-cols-per-row:3}.row .medium-35{--f7-cols-per-row:2.85714286}.row .medium-40{--f7-cols-per-row:2.5}.row .medium-45{--f7-cols-per-row:2.22222222}.row .medium-50{--f7-cols-per-row:2}.row .medium-55{--f7-cols-per-row:1.81818182}.row .medium-60{--f7-cols-per-row:1.66666667}.row .medium-65{--f7-cols-per-row:1.53846154}.row .medium-66{--f7-cols-per-row:1.5}.row .medium-70{--f7-cols-per-row:1.42857143}.row .medium-75{--f7-cols-per-row:1.33333333}.row .medium-80{--f7-cols-per-row:1.25}.row .medium-85{--f7-cols-per-row:1.17647059}.row .medium-90{--f7-cols-per-row:1.11111111}.row .medium-95{--f7-cols-per-row:1.05263158}.row .medium-100{--f7-cols-per-row:1}.row .medium-auto:nth-last-of-type(1),.row .medium-auto:nth-last-of-type(1)~.medium-auto{--f7-cols-per-row:1}.row .medium-auto:nth-last-of-type(2),.row .medium-auto:nth-last-of-type(2)~.medium-auto{--f7-cols-per-row:2}.row .medium-auto:nth-last-of-type(3),.row .medium-auto:nth-last-of-type(3)~.medium-auto{--f7-cols-per-row:3}.row .medium-auto:nth-last-of-type(4),.row .medium-auto:nth-last-of-type(4)~.medium-auto{--f7-cols-per-row:4}.row .medium-auto:nth-last-of-type(5),.row .medium-auto:nth-last-of-type(5)~.medium-auto{--f7-cols-per-row:5}.row .medium-auto:nth-last-of-type(6),.row .medium-auto:nth-last-of-type(6)~.medium-auto{--f7-cols-per-row:6}.row .medium-auto:nth-last-of-type(7),.row .medium-auto:nth-last-of-type(7)~.medium-auto{--f7-cols-per-row:7}.row .medium-auto:nth-last-of-type(8),.row .medium-auto:nth-last-of-type(8)~.medium-auto{--f7-cols-per-row:8}.row .medium-auto:nth-last-of-type(9),.row .medium-auto:nth-last-of-type(9)~.medium-auto{--f7-cols-per-row:9}.row .medium-auto:nth-last-of-type(10),.row .medium-auto:nth-last-of-type(10)~.medium-auto{--f7-cols-per-row:10}.row .medium-auto:nth-last-of-type(11),.row .medium-auto:nth-last-of-type(11)~.medium-auto{--f7-cols-per-row:11}.row .medium-auto:nth-last-of-type(12),.row .medium-auto:nth-last-of-type(12)~.medium-auto{--f7-cols-per-row:12}.row .medium-auto:nth-last-of-type(13),.row .medium-auto:nth-last-of-type(13)~.medium-auto{--f7-cols-per-row:13}.row .medium-auto:nth-last-of-type(14),.row .medium-auto:nth-last-of-type(14)~.medium-auto{--f7-cols-per-row:14}.row .medium-auto:nth-last-of-type(15),.row .medium-auto:nth-last-of-type(15)~.medium-auto{--f7-cols-per-row:15}.row .medium-auto:nth-last-of-type(16),.row .medium-auto:nth-last-of-type(16)~.medium-auto{--f7-cols-per-row:16}.row .medium-auto:nth-last-of-type(17),.row .medium-auto:nth-last-of-type(17)~.medium-auto{--f7-cols-per-row:17}.row .medium-auto:nth-last-of-type(18),.row .medium-auto:nth-last-of-type(18)~.medium-auto{--f7-cols-per-row:18}.row .medium-auto:nth-last-of-type(19),.row .medium-auto:nth-last-of-type(19)~.medium-auto{--f7-cols-per-row:19}.row .medium-auto:nth-last-of-type(20),.row .medium-auto:nth-last-of-type(20)~.medium-auto{--f7-cols-per-row:20}.row .medium-auto:nth-last-of-type(21),.row .medium-auto:nth-last-of-type(21)~.medium-auto{--f7-cols-per-row:21}.row .medium-auto:nth-last-of-type(22),.row .medium-auto:nth-last-of-type(22)~.medium-auto{--f7-cols-per-row:22}}@media (min-width:1024px){.row .large-5{--f7-cols-per-row:20}.row .large-10{--f7-cols-per-row:10}.row .large-15{--f7-cols-per-row:6.66666667}.row .large-20{--f7-cols-per-row:5}.row .large-25{--f7-cols-per-row:4}.row .large-30{--f7-cols-per-row:3.33333333}.row .large-33{--f7-cols-per-row:3}.row .large-35{--f7-cols-per-row:2.85714286}.row .large-40{--f7-cols-per-row:2.5}.row .large-45{--f7-cols-per-row:2.22222222}.row .large-50{--f7-cols-per-row:2}.row .large-55{--f7-cols-per-row:1.81818182}.row .large-60{--f7-cols-per-row:1.66666667}.row .large-65{--f7-cols-per-row:1.53846154}.row .large-66{--f7-cols-per-row:1.5}.row .large-70{--f7-cols-per-row:1.42857143}.row .large-75{--f7-cols-per-row:1.33333333}.row .large-80{--f7-cols-per-row:1.25}.row .large-85{--f7-cols-per-row:1.17647059}.row .large-90{--f7-cols-per-row:1.11111111}.row .large-95{--f7-cols-per-row:1.05263158}.row .large-100{--f7-cols-per-row:1}.row .large-auto:nth-last-of-type(1),.row .large-auto:nth-last-of-type(1)~.large-auto{--f7-cols-per-row:1}.row .large-auto:nth-last-of-type(2),.row .large-auto:nth-last-of-type(2)~.large-auto{--f7-cols-per-row:2}.row .large-auto:nth-last-of-type(3),.row .large-auto:nth-last-of-type(3)~.large-auto{--f7-cols-per-row:3}.row .large-auto:nth-last-of-type(4),.row .large-auto:nth-last-of-type(4)~.large-auto{--f7-cols-per-row:4}.row .large-auto:nth-last-of-type(5),.row .large-auto:nth-last-of-type(5)~.large-auto{--f7-cols-per-row:5}.row .large-auto:nth-last-of-type(6),.row .large-auto:nth-last-of-type(6)~.large-auto{--f7-cols-per-row:6}.row .large-auto:nth-last-of-type(7),.row .large-auto:nth-last-of-type(7)~.large-auto{--f7-cols-per-row:7}.row .large-auto:nth-last-of-type(8),.row .large-auto:nth-last-of-type(8)~.large-auto{--f7-cols-per-row:8}.row .large-auto:nth-last-of-type(9),.row .large-auto:nth-last-of-type(9)~.large-auto{--f7-cols-per-row:9}.row .large-auto:nth-last-of-type(10),.row .large-auto:nth-last-of-type(10)~.large-auto{--f7-cols-per-row:10}.row .large-auto:nth-last-of-type(11),.row .large-auto:nth-last-of-type(11)~.large-auto{--f7-cols-per-row:11}.row .large-auto:nth-last-of-type(12),.row .large-auto:nth-last-of-type(12)~.large-auto{--f7-cols-per-row:12}.row .large-auto:nth-last-of-type(13),.row .large-auto:nth-last-of-type(13)~.large-auto{--f7-cols-per-row:13}.row .large-auto:nth-last-of-type(14),.row .large-auto:nth-last-of-type(14)~.large-auto{--f7-cols-per-row:14}.row .large-auto:nth-last-of-type(15),.row .large-auto:nth-last-of-type(15)~.large-auto{--f7-cols-per-row:15}.row .large-auto:nth-last-of-type(16),.row .large-auto:nth-last-of-type(16)~.large-auto{--f7-cols-per-row:16}.row .large-auto:nth-last-of-type(17),.row .large-auto:nth-last-of-type(17)~.large-auto{--f7-cols-per-row:17}.row .large-auto:nth-last-of-type(18),.row .large-auto:nth-last-of-type(18)~.large-auto{--f7-cols-per-row:18}.row .large-auto:nth-last-of-type(19),.row .large-auto:nth-last-of-type(19)~.large-auto{--f7-cols-per-row:19}.row .large-auto:nth-last-of-type(20),.row .large-auto:nth-last-of-type(20)~.large-auto{--f7-cols-per-row:20}.row .large-auto:nth-last-of-type(21),.row .large-auto:nth-last-of-type(21)~.large-auto{--f7-cols-per-row:21}.row .large-auto:nth-last-of-type(22),.row .large-auto:nth-last-of-type(22)~.large-auto{--f7-cols-per-row:22}}@media (min-width:1200px){.row .xlarge-5{--f7-cols-per-row:20}.row .xlarge-10{--f7-cols-per-row:10}.row .xlarge-15{--f7-cols-per-row:6.66666667}.row .xlarge-20{--f7-cols-per-row:5}.row .xlarge-25{--f7-cols-per-row:4}.row .xlarge-30{--f7-cols-per-row:3.33333333}.row .xlarge-33{--f7-cols-per-row:3}.row .xlarge-35{--f7-cols-per-row:2.85714286}.row .xlarge-40{--f7-cols-per-row:2.5}.row .xlarge-45{--f7-cols-per-row:2.22222222}.row .xlarge-50{--f7-cols-per-row:2}.row .xlarge-55{--f7-cols-per-row:1.81818182}.row .xlarge-60{--f7-cols-per-row:1.66666667}.row .xlarge-65{--f7-cols-per-row:1.53846154}.row .xlarge-66{--f7-cols-per-row:1.5}.row .xlarge-70{--f7-cols-per-row:1.42857143}.row .xlarge-75{--f7-cols-per-row:1.33333333}.row .xlarge-80{--f7-cols-per-row:1.25}.row .xlarge-85{--f7-cols-per-row:1.17647059}.row .xlarge-90{--f7-cols-per-row:1.11111111}.row .xlarge-95{--f7-cols-per-row:1.05263158}.row .xlarge-100{--f7-cols-per-row:1}.row .xlarge-auto:nth-last-of-type(1),.row .xlarge-auto:nth-last-of-type(1)~.xlarge-auto{--f7-cols-per-row:1}.row .xlarge-auto:nth-last-of-type(2),.row .xlarge-auto:nth-last-of-type(2)~.xlarge-auto{--f7-cols-per-row:2}.row .xlarge-auto:nth-last-of-type(3),.row .xlarge-auto:nth-last-of-type(3)~.xlarge-auto{--f7-cols-per-row:3}.row .xlarge-auto:nth-last-of-type(4),.row .xlarge-auto:nth-last-of-type(4)~.xlarge-auto{--f7-cols-per-row:4}.row .xlarge-auto:nth-last-of-type(5),.row .xlarge-auto:nth-last-of-type(5)~.xlarge-auto{--f7-cols-per-row:5}.row .xlarge-auto:nth-last-of-type(6),.row .xlarge-auto:nth-last-of-type(6)~.xlarge-auto{--f7-cols-per-row:6}.row .xlarge-auto:nth-last-of-type(7),.row .xlarge-auto:nth-last-of-type(7)~.xlarge-auto{--f7-cols-per-row:7}.row .xlarge-auto:nth-last-of-type(8),.row .xlarge-auto:nth-last-of-type(8)~.xlarge-auto{--f7-cols-per-row:8}.row .xlarge-auto:nth-last-of-type(9),.row .xlarge-auto:nth-last-of-type(9)~.xlarge-auto{--f7-cols-per-row:9}.row .xlarge-auto:nth-last-of-type(10),.row .xlarge-auto:nth-last-of-type(10)~.xlarge-auto{--f7-cols-per-row:10}.row .xlarge-auto:nth-last-of-type(11),.row .xlarge-auto:nth-last-of-type(11)~.xlarge-auto{--f7-cols-per-row:11}.row .xlarge-auto:nth-last-of-type(12),.row .xlarge-auto:nth-last-of-type(12)~.xlarge-auto{--f7-cols-per-row:12}.row .xlarge-auto:nth-last-of-type(13),.row .xlarge-auto:nth-last-of-type(13)~.xlarge-auto{--f7-cols-per-row:13}.row .xlarge-auto:nth-last-of-type(14),.row .xlarge-auto:nth-last-of-type(14)~.xlarge-auto{--f7-cols-per-row:14}.row .xlarge-auto:nth-last-of-type(15),.row .xlarge-auto:nth-last-of-type(15)~.xlarge-auto{--f7-cols-per-row:15}.row .xlarge-auto:nth-last-of-type(16),.row .xlarge-auto:nth-last-of-type(16)~.xlarge-auto{--f7-cols-per-row:16}.row .xlarge-auto:nth-last-of-type(17),.row .xlarge-auto:nth-last-of-type(17)~.xlarge-auto{--f7-cols-per-row:17}.row .xlarge-auto:nth-last-of-type(18),.row .xlarge-auto:nth-last-of-type(18)~.xlarge-auto{--f7-cols-per-row:18}.row .xlarge-auto:nth-last-of-type(19),.row .xlarge-auto:nth-last-of-type(19)~.xlarge-auto{--f7-cols-per-row:19}.row .xlarge-auto:nth-last-of-type(20),.row .xlarge-auto:nth-last-of-type(20)~.xlarge-auto{--f7-cols-per-row:20}.row .xlarge-auto:nth-last-of-type(21),.row .xlarge-auto:nth-last-of-type(21)~.xlarge-auto{--f7-cols-per-row:21}.row .xlarge-auto:nth-last-of-type(22),.row .xlarge-auto:nth-last-of-type(22)~.xlarge-auto{--f7-cols-per-row:22}}.row .resize-handler{position:absolute;-webkit-user-select:none;-moz-user-select:none;user-select:none;z-index:100}.row .resize-handler:before{content:'';position:absolute}.row .resize-handler:after{content:'';position:absolute;border-radius:4px;background:var(--f7-grid-resize-handler-bg-color)}.row>.resize-handler{width:100%;height:var(--f7-grid-row-gap);left:0;top:100%;cursor:row-resize}.row>.resize-handler:before{left:0%;top:50%;height:12px;width:100%;min-height:var(--f7-grid-row-gap);transform:translateY(-50%)}.row>.resize-handler:after{height:4px;margin-top:-2px;width:80%;max-width:20px;left:50%;top:50%;transform:translateX(-50%)}.col>.resize-handler,[class*=col-]>.resize-handler{width:var(--f7-grid-gap);left:100%;top:0;height:100%;cursor:col-resize}.col>.resize-handler:before,[class*=col-]>.resize-handler:before{left:50%;top:0;height:100%;width:12px;min-width:var(--f7-grid-gap);transform:translateX(-50%)}.col>.resize-handler:after,[class*=col-]>.resize-handler:after{width:4px;margin-left:-2px;height:80%;max-height:20px;border-radius:4px;left:50%;top:50%;transform:translateY(-50%)}.row .col:last-child>.resize-handler,.row .col:last-of-type>.resize-handler,.row [class*=col-]:last-child>.resize-handler,.row [class*=col-]:last-of-type>.resize-handler,.row:last-child>.resize-handler,.row:last-of-type>.resize-handler{display:none}:root{--f7-calendar-height:340px;--f7-calendar-sheet-landscape-height:220px;--f7-calendar-popover-width:320px;--f7-calendar-popover-height:320px;--f7-calendar-modal-height:420px;--f7-calendar-modal-max-width:380px;--f7-calendar-modal-border-radius:4px;--f7-calendar-footer-padding:0 8px;--f7-calendar-week-header-font-size:11px;--f7-calendar-selected-text-color:#fff;--f7-calendar-prev-next-text-color:#b8b8b8;--f7-calendar-disabled-text-color:#d4d4d4;--f7-calendar-event-dot-size:4px;--f7-calendar-day-text-color:#000;--f7-calendar-sheet-bg-color:#fff;--f7-calendar-modal-bg-color:#fff;--f7-calendar-picker-bg-color:#fff;--f7-calendar-picker-pressed-bg-color:rgba(0, 0, 0, 0.1);--f7-calendar-picker-hover-bg-color:rgba(0, 0, 0, 0.03)}:root .theme-dark,:root.theme-dark{--f7-calendar-sheet-border-color:var(--f7-bars-border-color);--f7-calendar-modal-bg-color:#121212;--f7-calendar-sheet-bg-color:#121212;--f7-calendar-picker-bg-color:#1c1c1d;--f7-calendar-picker-pressed-bg-color:rgba(255, 255, 255, 0.08);--f7-calendar-picker-hover-bg-color:rgba(255, 255, 255, 0.03)}.ios{--f7-calendar-sheet-border-color:#929499;--f7-calendar-header-height:44px;--f7-calendar-header-font-size:17px;--f7-calendar-header-font-weight:600;--f7-calendar-header-padding:0 8px;--f7-calendar-footer-height:44px;--f7-calendar-footer-font-size:17px;--f7-calendar-week-header-height:18px;--f7-calendar-day-font-size:15px;--f7-calendar-day-size:30px;--f7-calendar-picker-font-size:17px;--f7-calendar-time-selector-font-size:17px;--f7-calendar-row-border-color:rgba(0, 0, 0, 0.25);--f7-calendar-today-text-color:#000;--f7-calendar-today-bg-color:#e3e3e3}.ios .theme-dark,.ios.theme-dark{--f7-calendar-row-border-color:var(--f7-bars-border-color);--f7-calendar-day-text-color:#fff;--f7-calendar-today-text-color:#fff;--f7-calendar-today-bg-color:#333}.md{--f7-calendar-sheet-border-color:#ccc;--f7-calendar-header-height:56px;--f7-calendar-header-font-size:20px;--f7-calendar-header-font-weight:400;--f7-calendar-header-padding:0 24px;--f7-calendar-footer-height:48px;--f7-calendar-footer-font-size:14px;--f7-calendar-week-header-height:24px;--f7-calendar-row-border-color:transparent;--f7-calendar-day-font-size:14px;--f7-calendar-today-bg-color:none;--f7-calendar-day-size:32px;--f7-calendar-picker-font-size:14px;--f7-calendar-time-selector-font-size:14px}.md .theme-dark,.md.theme-dark{--f7-calendar-day-text-color:rgba(255, 255, 255, 0.87)}.aurora{--f7-calendar-sheet-border-color:#ccc;--f7-calendar-header-height:38px;--f7-calendar-header-font-size:14px;--f7-calendar-header-font-weight:600;--f7-calendar-header-padding:0 8px;--f7-calendar-footer-height:38px;--f7-calendar-footer-font-size:14px;--f7-calendar-week-header-height:18px;--f7-calendar-day-font-size:13px;--f7-calendar-day-size:30px;--f7-calendar-picker-font-size:14px;--f7-calendar-time-selector-font-size:14px;--f7-calendar-row-border-color:#e3e3e3;--f7-calendar-today-text-color:#000;--f7-calendar-today-bg-color:#e3e3e3}.aurora .theme-dark,.aurora.theme-dark{--f7-calendar-row-border-color:var(--f7-bars-border-color);--f7-calendar-day-text-color:#fff;--f7-calendar-today-text-color:#fff;--f7-calendar-today-bg-color:#333}.calendar{overflow:hidden;height:var(--f7-calendar-height);width:100%;display:flex;flex-direction:column}.calendar.modal-in{display:flex}@media (orientation:landscape) and (max-height:415px){.calendar.calendar-sheet{height:var(--f7-calendar-sheet-landscape-height)}.calendar.calendar-modal{height:calc(100vh - var(--f7-navbar-height))}}.calendar.calendar-inline,.calendar.calendar-popover .calendar{position:relative}.calendar-sheet{--f7-sheet-border-color:var(--f7-calendar-sheet-border-color);background:var(--f7-calendar-sheet-bg-color);padding-bottom:var(--f7-safe-area-bottom);height:calc(var(--f7-calendar-height) + var(--f7-safe-area-bottom))}.calendar-sheet:before{z-index:600}.calendar-modal .toolbar:before,.calendar-popover .toolbar:before,.calendar-sheet .toolbar:before{display:none}.calendar-popover{width:var(--f7-calendar-popover-width)}.calendar-popover .calendar-header,.calendar-popover .toolbar-top{border-radius:var(--f7-popover-border-radius) var(--f7-popover-border-radius) 0 0}.calendar-popover .calendar-header+.toolbar-top{border-radius:0}.calendar-popover .calendar-footer,.calendar-popover .toolbar-bottom{border-radius:0 0 var(--f7-popover-border-radius) var(--f7-popover-border-radius)}.calendar-popover .calendar{height:var(--f7-calendar-popover-height);position:relative;z-index:1}.calendar-popover .calendar-month-picker,.calendar-popover .calendar-time-picker,.calendar-popover .calendar-year-picker{border-radius:var(--f7-popover-border-radius)}.calendar-header{width:100%;position:relative;overflow:hidden;flex-shrink:0;white-space:nowrap;text-overflow:ellipsis;box-sizing:border-box;padding:var(--f7-calendar-header-padding);background-color:var(--f7-calendar-header-bg-color,var(--f7-bars-bg-color));color:var(--f7-calendar-header-text-color,var(--f7-bars-text-color));height:var(--f7-calendar-header-height);line-height:var(--f7-calendar-header-height);font-size:var(--f7-calendar-header-font-size);font-weight:var(--f7-calendar-header-font-weight)}.calendar-header a{color:var(--f7-calendar-header-link-color,var(--f7-bars-link-color,var(--f7-theme-color)))}.calendar-footer{width:100%;flex-shrink:0;padding:var(--f7-calendar-footer-padding);background-color:var(--f7-calendar-footer-bg-color,var(--f7-bars-bg-color));color:var(--f7-calendar-footer-text-color,var(--f7-bars-text-color));height:var(--f7-calendar-footer-height);font-size:var(--f7-calendar-header-font-size);display:flex;justify-content:flex-end;box-sizing:border-box;align-items:center;position:relative}.calendar-footer a{color:var(--f7-calendar-footer-link-color,var(--f7-bars-link-color,var(--f7-theme-color)))}.calendar-footer:before{content:'';position:absolute;background-color:var(--f7-calendar-footer-border-color,var(--f7-bars-border-color));display:block;z-index:15;top:0;right:auto;bottom:auto;left:0;height:1px;width:100%;transform-origin:50% 0%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.calendar-modal{position:absolute;height:var(--f7-calendar-modal-height);overflow:hidden;top:50%;left:50%;min-width:300px;max-width:var(--f7-calendar-modal-max-width);transform:translate3d(-50%,100vh,0);transition-property:transform;display:flex;z-index:13500;background:var(--f7-calendar-modal-bg-color);width:90%;border-radius:var(--f7-calendar-modal-border-radius);box-shadow:var(--f7-elevation-24)}.calendar-modal.modal-in,.calendar-modal.modal-out{transition-duration:.4s}.calendar-modal.modal-in{transform:translate3d(-50%,-50%,0)}.calendar-modal.modal-out{transform:translate3d(-50%,100vh,0)}.calendar-week-header{display:flex;box-sizing:border-box;position:relative;font-size:var(--f7-calendar-week-header-font-size);background-color:var(--f7-calendar-week-header-bg-color,var(--f7-bars-bg-color));color:var(--f7-calendar-week-header-text-color,var(--f7-bars-text-color));height:var(--f7-calendar-week-header-height);padding-left:var(--f7-safe-area-left);padding-right:var(--f7-safe-area-right)}.calendar-week-header .calendar-week-day{flex-shrink:1;width:calc(100% / 7);text-align:center;line-height:var(--f7-calendar-week-header-height)}.calendar-months{width:100%;height:100%;overflow:hidden;position:relative;flex-shrink:10}.calendar-months-wrapper{position:relative;width:100%;height:100%;transition:.3s}.calendar-month{display:flex;flex-direction:column;width:100%;height:100%;position:absolute;left:0;top:0}.calendar-row{height:16.66666667%;height:calc(100% / 6);display:flex;flex-shrink:1;width:100%;position:relative;box-sizing:border-box;padding-left:var(--f7-safe-area-left);padding-right:var(--f7-safe-area-right)}.calendar-row:before{content:'';position:absolute;background-color:var(--f7-calendar-row-border-color);display:block;z-index:15;top:0;right:auto;bottom:auto;left:0;height:1px;width:100%;transform-origin:50% 0%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.calendar-modal .calendar-months:first-child .calendar-row:first-child:before,.calendar-popover .calendar-months:first-child .calendar-row:first-child:before{display:none!important}.calendar-day{flex-shrink:1;display:flex;justify-content:center;align-items:center;box-sizing:border-box;width:14.28571429%;width:calc(100% / 7);text-align:center;cursor:pointer;z-index:20;color:var(--f7-calendar-day-text-color);height:100%;font-size:var(--f7-calendar-day-font-size)}.calendar-day.calendar-day-today .calendar-day-number{color:var(--f7-calendar-today-text-color,var(--f7-theme-color));background-color:var(--f7-calendar-today-bg-color)}.calendar-day.calendar-day-next,.calendar-day.calendar-day-prev{color:var(--f7-calendar-prev-next-text-color)}.calendar-day.calendar-day-disabled{color:var(--f7-calendar-disabled-text-color);cursor:auto}.calendar-day.calendar-day-selected .calendar-day-number{color:var(--f7-calendar-selected-text-color);background-color:var(--f7-calendar-selected-bg-color,var(--f7-theme-color))}.calendar-day .calendar-day-number{display:inline-block;border-radius:50%;position:relative;width:var(--f7-calendar-day-size);height:var(--f7-calendar-day-size);line-height:var(--f7-calendar-day-size)}.calendar-day .calendar-day-events{position:absolute;display:flex;left:0;width:100%;top:100%;align-items:center;justify-content:center;margin-top:1px}.calendar-day .calendar-day-event{width:var(--f7-calendar-event-dot-size);height:var(--f7-calendar-event-dot-size);border-radius:calc(var(--f7-calendar-event-dot-size)/ 2);background-color:var(--f7-calendar-event-bg-color)}.calendar-day .calendar-day-event+.calendar-day-event{margin-left:2px}.calendar-range .calendar-day.calendar-day-selected{align-items:stretch;align-content:stretch}.calendar-range .calendar-day.calendar-day-selected .calendar-day-number{width:100%;border-radius:0;height:auto;text-align:center;display:flex;align-items:center;justify-content:center}.calendar-month-selector,.calendar-year-selector{display:flex;justify-content:space-between;align-items:center;width:50%;max-width:200px;flex-shrink:10;margin-left:auto;margin-right:auto}.calendar-month-selector .calendar-day-number,.calendar-year-selector .calendar-day-number{flex-shrink:1;position:relative;overflow:hidden;text-overflow:ellipsis}.calendar-month-selector a.icon-only,.calendar-year-selector a.icon-only{min-width:36px}.calendar-month-picker,.calendar-time-picker,.calendar-year-picker{position:absolute;width:100%;height:100%;left:0px;top:0px;background:var(--f7-calendar-picker-bg-color);z-index:1000;-webkit-user-select:none;-moz-user-select:none;user-select:none}.calendar-month-picker,.calendar-year-picker{flex-wrap:wrap;font-size:var(--f7-calendar-picker-font-size);display:flex}.calendar-month-picker-item,.calendar-year-picker-item{display:flex;justify-content:center;align-items:center;position:relative;overflow:hidden;cursor:pointer;transition-duration:.1s;box-sizing:border-box}.calendar-month-picker-item span,.calendar-year-picker-item span{white-space:nowrap;text-overflow:ellipsis;box-sizing:border-box;position:relative;overflow:hidden;pointer-events:none}.device-desktop.aurora .calendar-month-picker-item:hover,.device-desktop.aurora .calendar-year-picker-item:hover{background-color:var(--f7-calendar-picker-hover-bg-color)}.calendar-month-picker-item.active-state,.calendar-year-picker-item.active-state,.device-desktop.aurora .calendar-month-picker-item.active-state,.device-desktop.aurora .calendar-year-picker-item.active-state{background:var(--f7-calendar-picker-pressed-bg-color)}.calendar-month-picker-item{padding:5px}.calendar-month-picker-item:after{content:'';position:absolute;background-color:var(--f7-calendar-row-border-color);display:block;z-index:15;top:auto;right:auto;bottom:0;left:0;height:1px;width:100%;transform-origin:50% 100%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.calendar-month-picker-item:before{content:'';position:absolute;background-color:var(--f7-calendar-row-border-color);display:block;z-index:15;top:0;right:auto;bottom:auto;left:0;width:1px;height:100%;transform-origin:0% 50%;transform:scaleX(calc(1 / var(--f7-device-pixel-ratio)))}.sheet-modal .calendar-month-picker-item{width:25%;height:calc(100% / 3)}.sheet-modal .calendar-month-picker-item:nth-child(4n+1):before{display:none!important}.sheet-modal .calendar-month-picker-item:nth-child(n+9):after{display:none!important}.calendar-modal .calendar-month-picker-item,.popover .calendar-month-picker-item{width:calc(100% / 3);height:25%}.calendar-modal .calendar-month-picker-item:nth-child(3n+1):before,.popover .calendar-month-picker-item:nth-child(3n+1):before{display:none!important}.calendar-modal .calendar-month-picker-item:nth-child(n+10):after,.popover .calendar-month-picker-item:nth-child(n+10):after{display:none!important}.calendar-month-picker-item-current,.calendar-year-picker-item-current{color:var(--f7-calendar-picker-selected-text-color,var(--f7-theme-color))}.calendar-year-picker{overflow:auto;--webkit-overflow-scrolling:touch}.calendar-year-picker-item{height:34px;line-height:34px;width:100%}.calendar-year-picker-item:after{content:'';position:absolute;background-color:var(--f7-calendar-row-border-color);display:block;z-index:15;top:auto;right:auto;bottom:0;left:0;height:1px;width:100%;transform-origin:50% 100%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.calendar-time-selector{flex-shrink:0;font-size:var(--f7-calendar-time-selector-font-size);position:relative}.calendar-time-selector:before{content:'';position:absolute;background-color:var(--f7-calendar-row-border-color);display:block;z-index:15;top:0;right:auto;bottom:auto;left:0;height:1px;width:100%;transform-origin:50% 0%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.calendar-time-selector a{overflow:hidden;position:relative;justify-content:center;align-items:center;display:flex;width:100%;height:44px}.calendar-time-picker{--f7-picker-popover-height:100%;--f7-picker-inline-height:100%;--f7-picker-item-selected-text-color:var(--f7-theme-color)}.calendar-time-picker .toolbar{flex-shrink:0;top:0!important}.calendar-time-picker .picker{height:100%;display:flex;flex-direction:column}:root{--f7-picker-height:260px;--f7-picker-inline-height:200px;--f7-picker-popover-height:200px;--f7-picker-popover-width:280px;--f7-picker-landscape-height:200px;--f7-picker-item-height:36px;--f7-picker-item-selected-text-color:#000}:root .theme-dark,:root.theme-dark{--f7-picker-item-selected-text-color:#fff}.ios{--f7-picker-column-font-size:20px;--f7-picker-sheet-bg-color:#cfd5da;--f7-picker-divider-text-color:#000;--f7-picker-item-text-color:rgba(0, 0, 0, 0.45);--f7-picker-item-selected-border-color:rgba(0, 0, 0, 0.22)}.ios .theme-dark,.ios.theme-dark{--f7-picker-sheet-bg-color:#1c1c1d;--f7-picker-divider-text-color:#fff;--f7-picker-item-text-color:rgba(255, 255, 255, 0.55);--f7-picker-item-selected-border-color:rgba(255, 255, 255, 0.06)}.md{--f7-picker-column-font-size:20px;--f7-picker-divider-text-color:rgba(0, 0, 0, 0.87);--f7-picker-item-text-color:rgba(0, 0, 0, 0.54);--f7-picker-item-selected-border-color:rgba(0, 0, 0, 0.15)}.md .theme-dark,.md.theme-dark{--f7-picker-item-text-color:rgba(255, 255, 255, 0.54);--f7-picker-divider-text-color:rgba(255, 255, 255, 0.87);--f7-picker-item-selected-border-color:rgba(255, 255, 255, 0.15)}.aurora{--f7-picker-column-font-size:16px;--f7-picker-item-height:28px;--f7-picker-item-text-color:#888;--f7-picker-divider-text-color:#000;--f7-picker-item-selected-border-color:rgba(0, 0, 0, 0.12)}.aurora .theme-dark,.aurora.theme-dark{--f7-picker-divider-text-color:#fff;--f7-picker-item-selected-border-color:rgba(255, 255, 255, 0.06)}.picker{width:100%;height:var(--f7-picker-height)}.picker.picker-inline{height:var(--f7-picker-inline-height)}.popover .picker{height:var(--f7-picker-popover-height)}@media (orientation:landscape) and (max-height:415px){.picker:not(.picker-inline){height:var(--f7-picker-landscape-height)}}.picker.sheet-modal{background:var(--f7-picker-sheet-bg-color,var(--f7-sheet-bg-color))}.picker-popover{width:var(--f7-picker-popover-width)}.picker-popover .toolbar{background:0 0;border-radius:var(--f7-popover-border-radius) var(--f7-popover-border-radius) 0 0}.picker-popover .toolbar:before{display:none!important}.picker-popover .toolbar+.picker-columns{height:calc(100% - var(--f7-toolbar-height))}.picker-columns{display:flex;overflow:hidden;justify-content:center;padding:0;text-align:right;height:100%;position:relative;-webkit-mask-box-image:linear-gradient(to top,transparent,transparent 5%,#fff 20%,#fff 80%,transparent 95%,transparent);font-size:var(--f7-picker-column-font-size)}.picker-column{position:relative;max-height:100%}.picker-column.picker-column-first:before,.picker-column.picker-column-last:after{height:100%;width:100vw;position:absolute;content:'';top:0}.picker-column.picker-column-first:before{left:100%}.picker-column.picker-column-last:after{right:100%}.picker-column.picker-column-left{text-align:left}.picker-column.picker-column-center{text-align:center}.picker-column.picker-column-right{text-align:right}.picker-column.picker-column-divider{display:flex;align-items:center;color:var(--f7-picker-divider-text-color)}.picker-items{transition:.3s;transition-timing-function:ease-out}.picker-item{height:var(--f7-picker-item-height);line-height:var(--f7-picker-item-height);white-space:nowrap;position:relative;overflow:hidden;text-overflow:ellipsis;left:0;top:0;width:100%;box-sizing:border-box;transition:.3s;color:var(--f7-picker-item-text-color);cursor:pointer}.picker-item span{padding:0 10px}.picker-column-absolute .picker-item{position:absolute}.picker-item.picker-item-far{pointer-events:none}.picker-item.picker-item-selected{color:var(--f7-picker-item-selected-text-color);transform:translate3d(0,0,0) rotateX(0deg)}.picker-center-highlight{height:var(--f7-picker-item-height);box-sizing:border-box;position:absolute;left:0;width:100%;top:50%;margin-top:calc(-1 * var(--f7-picker-item-height)/ 2);pointer-events:none}.picker-center-highlight:before{content:'';position:absolute;background-color:var(--f7-picker-item-selected-border-color);display:block;z-index:15;top:0;right:auto;bottom:auto;left:0;height:1px;width:100%;transform-origin:50% 0%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.picker-center-highlight:after{content:'';position:absolute;background-color:var(--f7-picker-item-selected-border-color);display:block;z-index:15;top:auto;right:auto;bottom:0;left:0;height:1px;width:100%;transform-origin:50% 100%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.picker-3d .picker-columns{overflow:hidden;perspective:1200px}.picker-3d .picker-column,.picker-3d .picker-item,.picker-3d .picker-items{transform-style:preserve-3d}.picker-3d .picker-column{overflow:visible}.picker-3d .picker-item{transform-origin:center center -110px;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition-timing-function:ease-out}.infinite-scroll-preloader{margin-left:auto;margin-right:auto;text-align:center}.infinite-scroll-preloader.preloader{display:block}.ios .infinite-scroll-preloader{margin-top:35px;margin-bottom:35px}.ios .infinite-scroll-preloader .preloader,.ios .infinite-scroll-preloader.preloader{width:27px;height:27px}.md .infinite-scroll-preloader{margin-top:32px;margin-bottom:32px}.aurora .infinite-scroll-preloader{margin-top:15px;margin-bottom:15px}.ios{--f7-ptr-preloader-size:28px;--f7-ptr-size:44px}.md{--f7-ptr-preloader-size:22px;--f7-ptr-size:40px}.aurora{--f7-ptr-preloader-size:20px;--f7-ptr-size:38px}.ptr-preloader{position:relative;top:var(--f7-ptr-top,0);height:var(--f7-ptr-size)}.ptr-preloader .preloader{position:absolute;left:50%;width:var(--f7-ptr-preloader-size);height:var(--f7-ptr-preloader-size);margin-left:calc(-1 * var(--f7-ptr-preloader-size)/ 2);margin-top:calc(-1 * var(--f7-ptr-preloader-size)/ 2);top:50%;visibility:hidden}.ptr-bottom .ptr-preloader{top:auto;bottom:0;position:fixed}.ptr-with-navbar-large-transparent .ptr-preloader,.ptr-with-navbar-transparent .ptr-preloader{top:calc(-1 * var(--f7-page-navbar-offset,0px) + var(--f7-safe-area-top))}.ios .ptr-preloader{margin-top:calc(-1 * var(--f7-ptr-size));width:100%;left:0}.ios .ptr-arrow{position:absolute;left:50%;top:50%;background:no-repeat center;z-index:10;transform:rotate(0deg) translate3d(0,0,0);transition-duration:.3s;transition-property:transform,opacity;width:12px;height:20px;margin-left:-6px;margin-top:-10px;visibility:visible;color:var(--f7-preloader-color)}.ios .ptr-arrow:after{font-family:framework7-core-icons;font-weight:400;font-style:normal;line-height:1;letter-spacing:normal;text-transform:none;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;font-feature-settings:"liga";text-align:center;display:block;width:100%;height:100%;font-size:20px;width:12px;height:20px;line-height:20px;font-size:10px;content:'ptr_arrow_ios'}.ios .ptr-content:not(.ptr-refreshing) .ptr-preloader .preloader{animation:none}.ios .ptr-refreshing,.ios .ptr-transitioning{transition-duration:.3s;transition-property:transform}.ios .ptr-refreshing{transform:translate3d(0,var(--f7-ptr-size),0)}.ios .ptr-refreshing .ptr-arrow{visibility:hidden}.ios .ptr-refreshing .ptr-preloader .preloader{visibility:visible}.ios .ptr-pull-up .ptr-arrow{transform:rotate(180deg) translate3d(0,0,0)}.ios .ptr-no-navbar,.ios .ptr-with-navbar-large-transparent,.ios .ptr-with-navbar-transparent{margin-top:calc(-1 * var(--f7-ptr-size));height:calc(100% + var(--f7-ptr-size))}.ios .ptr-no-navbar .ptr-preloader,.ios .ptr-with-navbar-large-transparent .ptr-preloader,.ios .ptr-with-navbar-transparent .ptr-preloader{margin-top:0}.ios .ptr-bottom .ptr-preloader{margin-top:0;margin-bottom:calc(-1 * var(--f7-ptr-size))}.ios .ptr-bottom.ptr-refreshing>*,.ios .ptr-bottom.ptr-transitioning>*{transition-duration:.3s;transition-property:transform}.ios .ptr-bottom.ptr-refreshing{transform:none}.ios .ptr-bottom.ptr-refreshing>*{transform:translate3d(0,calc(-1 * var(--f7-ptr-size)),0)}.ios .ptr-bottom .ptr-arrow{transform:rotate(180deg) translate3d(0,0,0)}.ios .ptr-bottom.ptr-pull-up .ptr-arrow{transform:rotate(0deg) translate3d(0,0,0)}.ios .ptr-with-navbar-large-transparent .ptr-preloader .preloader,.ios .ptr-with-navbar-large-transparent .ptr-preloader .ptr-arrow,.ios .ptr-with-navbar-transparent .ptr-preloader .preloader,.ios .ptr-with-navbar-transparent .ptr-preloader .ptr-arrow{opacity:0;transition-duration:.3s;transition-property:transform,opacity}.ios .ptr-with-navbar-large-transparent.ptr-pull-down .ptr-preloader .preloader,.ios .ptr-with-navbar-large-transparent.ptr-pull-down .ptr-preloader .ptr-arrow,.ios .ptr-with-navbar-large-transparent.ptr-pull-up .ptr-preloader .preloader,.ios .ptr-with-navbar-large-transparent.ptr-pull-up .ptr-preloader .ptr-arrow,.ios .ptr-with-navbar-large-transparent.ptr-refreshing .ptr-preloader .preloader,.ios .ptr-with-navbar-large-transparent.ptr-refreshing .ptr-preloader .ptr-arrow,.ios .ptr-with-navbar-transparent.ptr-pull-down .ptr-preloader .preloader,.ios .ptr-with-navbar-transparent.ptr-pull-down .ptr-preloader .ptr-arrow,.ios .ptr-with-navbar-transparent.ptr-pull-up .ptr-preloader .preloader,.ios .ptr-with-navbar-transparent.ptr-pull-up .ptr-preloader .ptr-arrow,.ios .ptr-with-navbar-transparent.ptr-refreshing .ptr-preloader .preloader,.ios .ptr-with-navbar-transparent.ptr-refreshing .ptr-preloader .ptr-arrow{opacity:1}.ios .ptr-with-navbar-large-transparent.ptr-closing .ptr-preloader .preloader,.ios .ptr-with-navbar-large-transparent.ptr-closing .ptr-preloader .ptr-arrow,.ios .ptr-with-navbar-transparent.ptr-closing .ptr-preloader .preloader,.ios .ptr-with-navbar-transparent.ptr-closing .ptr-preloader .ptr-arrow{opacity:0;transition-duration:.3s}.md{--f7-ptr-top:-4px}.md .ptr-preloader{width:var(--f7-ptr-size);border-radius:50%;background:#fff;margin-top:calc(-1 * var(--f7-ptr-size));z-index:100;box-shadow:var(--f7-elevation-1);right:50%;margin-right:calc(-1 * var(--f7-ptr-size)/ 2)}.md .ptr-preloader .preloader .preloader-inner-gap,.md .ptr-preloader .preloader .preloader-inner-half-circle{border-width:3px}.md .ptr-arrow{width:22px;height:22px;box-sizing:border-box;border:3px solid var(--f7-preloader-color);position:absolute;left:50%;top:50%;margin-left:-11px;margin-top:-11px;border-left-color:transparent;border-radius:50%;opacity:1;transform:rotate(150deg)}.md .ptr-arrow:after{content:'';width:0px;height:0px;position:absolute;left:-5px;bottom:0px;border-bottom-width:6px;border-bottom-style:solid;border-bottom-color:inherit;border-left:5px solid transparent;border-right:5px solid transparent;transform:rotate(-40deg)}.md .ptr-content:not(.ptr-refreshing):not(.ptr-pull-up) .ptr-preloader .preloader,.md .ptr-content:not(.ptr-refreshing):not(.ptr-pull-up) .ptr-preloader .preloader *{animation:none}.md .ptr-pull-up .ptr-preloader .preloader,.md .ptr-refreshing .ptr-preloader .preloader{visibility:visible}.md .ptr-pull-up .ptr-arrow,.md .ptr-refreshing .ptr-arrow{visibility:hidden}.md .ptr-refreshing .ptr-preloader{transform:translate3d(0,66px,0)}.md .ptr-transitioning .ptr-arrow{transition:.3s}.md .ptr-pull-up .ptr-arrow{transition:.4s;transform:rotate(620deg)!important;opacity:0}.md .ptr-refreshing .ptr-preloader,.md .ptr-transitioning .ptr-preloader{transition-duration:.3s;transition-property:transform,opacity}.md .ptr-bottom .ptr-preloader{margin-top:0;margin-bottom:calc(-1 * var(--f7-ptr-size) - 4px)}.md .ptr-bottom.ptr-refreshing .ptr-preloader{transform:translate3d(0,-66px,0)}.md .ptr-with-navbar-large-transparent .ptr-preloader,.md .ptr-with-navbar-transparent .ptr-preloader{opacity:0}.md .ptr-with-navbar-large-transparent.ptr-pull-down .ptr-preloader,.md .ptr-with-navbar-large-transparent.ptr-pull-up .ptr-preloader,.md .ptr-with-navbar-large-transparent.ptr-refreshing .ptr-preloader,.md .ptr-with-navbar-transparent.ptr-pull-down .ptr-preloader,.md .ptr-with-navbar-transparent.ptr-pull-up .ptr-preloader,.md .ptr-with-navbar-transparent.ptr-refreshing .ptr-preloader{opacity:1}.md .ptr-with-navbar-large-transparent.ptr-closing .ptr-preloader,.md .ptr-with-navbar-transparent.ptr-closing .ptr-preloader{opacity:0;transition-duration:.3s}.aurora .ptr-preloader{margin-top:calc(-1 * var(--f7-ptr-size));width:100%;left:0}.aurora .ptr-arrow{position:absolute;left:50%;top:50%;background:no-repeat center;z-index:10;transform:rotate(0deg) translate3d(0,0,0);transition-duration:.3s;transition-property:transform,opacity;width:12px;height:20px;margin-left:-6px;margin-top:-10px;visibility:visible;color:var(--f7-preloader-color)}.aurora .ptr-arrow:after{font-family:framework7-core-icons;font-weight:400;font-style:normal;line-height:1;letter-spacing:normal;text-transform:none;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;font-feature-settings:"liga";text-align:center;display:block;width:100%;height:100%;font-size:20px;width:12px;height:20px;line-height:20px;font-size:8px;content:'ptr_arrow_ios'}.aurora .ptr-content:not(.ptr-refreshing) .ptr-preloader .preloader{animation:none}.aurora .ptr-refreshing,.aurora .ptr-transitioning{transition-duration:.3s;transition-property:transform}.aurora .ptr-refreshing{transform:translate3d(0,var(--f7-ptr-size),0)}.aurora .ptr-refreshing .ptr-arrow{visibility:hidden}.aurora .ptr-refreshing .ptr-preloader .preloader{visibility:visible}.aurora .ptr-pull-up .ptr-arrow{transform:rotate(180deg) translate3d(0,0,0)}.aurora .ptr-no-navbar,.aurora .ptr-with-navbar-large-transparent,.aurora .ptr-with-navbar-transparent{margin-top:calc(-1 * var(--f7-ptr-size));height:calc(100% + var(--f7-ptr-size))}.aurora .ptr-no-navbar .ptr-preloader,.aurora .ptr-with-navbar-large-transparent .ptr-preloader,.aurora .ptr-with-navbar-transparent .ptr-preloader{margin-top:0}.aurora .ptr-bottom .ptr-preloader{margin-top:0;margin-bottom:calc(-1 * var(--f7-ptr-size))}.aurora .ptr-bottom.ptr-refreshing>*,.aurora .ptr-bottom.ptr-transitioning>*{transition-duration:.3s;transition-property:transform}.aurora .ptr-bottom.ptr-refreshing{transform:none}.aurora .ptr-bottom.ptr-refreshing>*{transform:translate3d(0,calc(-1 * var(--f7-ptr-size)),0)}.aurora .ptr-bottom .ptr-arrow{transform:rotate(180deg) translate3d(0,0,0)}.aurora .ptr-bottom.ptr-pull-up .ptr-arrow{transform:rotate(0deg) translate3d(0,0,0)}.aurora .ptr-with-navbar-large-transparent .ptr-preloader .preloader,.aurora .ptr-with-navbar-large-transparent .ptr-preloader .ptr-arrow,.aurora .ptr-with-navbar-transparent .ptr-preloader .preloader,.aurora .ptr-with-navbar-transparent .ptr-preloader .ptr-arrow{opacity:0;transition-duration:.3s;transition-property:transform,opacity}.aurora .ptr-with-navbar-large-transparent.ptr-pull-down .ptr-preloader .preloader,.aurora .ptr-with-navbar-large-transparent.ptr-pull-down .ptr-preloader .ptr-arrow,.aurora .ptr-with-navbar-large-transparent.ptr-pull-up .ptr-preloader .preloader,.aurora .ptr-with-navbar-large-transparent.ptr-pull-up .ptr-preloader .ptr-arrow,.aurora .ptr-with-navbar-large-transparent.ptr-refreshing .ptr-preloader .preloader,.aurora .ptr-with-navbar-large-transparent.ptr-refreshing .ptr-preloader .ptr-arrow,.aurora .ptr-with-navbar-transparent.ptr-pull-down .ptr-preloader .preloader,.aurora .ptr-with-navbar-transparent.ptr-pull-down .ptr-preloader .ptr-arrow,.aurora .ptr-with-navbar-transparent.ptr-pull-up .ptr-preloader .preloader,.aurora .ptr-with-navbar-transparent.ptr-pull-up .ptr-preloader .ptr-arrow,.aurora .ptr-with-navbar-transparent.ptr-refreshing .ptr-preloader .preloader,.aurora .ptr-with-navbar-transparent.ptr-refreshing .ptr-preloader .ptr-arrow{opacity:1}.aurora .ptr-with-navbar-large-transparent.ptr-closing .ptr-preloader .preloader,.aurora .ptr-with-navbar-large-transparent.ptr-closing .ptr-preloader .ptr-arrow,.aurora .ptr-with-navbar-transparent.ptr-closing .ptr-preloader .preloader,.aurora .ptr-with-navbar-transparent.ptr-closing .ptr-preloader .ptr-arrow{opacity:0;transition-duration:.3s}.lazy-loaded.lazy-fade-in{animation:lazyFadeIn .6s}@keyframes lazyFadeIn{from{opacity:0}to{opacity:1}}:root{--f7-table-head-font-size:12px;--f7-table-body-font-size:14px;--f7-table-footer-font-size:12px;--f7-table-input-height:24px;--f7-table-input-font-size:14px;--f7-table-collapsible-cell-padding:16px;--f7-table-link-icon-only-icon-size:20px;--f7-table-sortable-icon-color:#000}:root .theme-dark,:root.theme-dark{--f7-table-cell-border-color:rgba(255, 255, 255, 0.15);--f7-table-sortable-icon-color:#fff;--f7-table-input-text-color:#fff}.ios{--f7-table-head-font-weight:600;--f7-table-head-cell-height:44px;--f7-table-head-icon-size:18px;--f7-table-body-cell-height:44px;--f7-table-cell-padding-vertical:0px;--f7-table-cell-padding-horizontal:16px;--f7-table-edge-cell-padding-horizontal:16px;--f7-table-label-cell-padding-horizontal:16px;--f7-table-checkbox-cell-width:22px;--f7-table-title-font-size:17px;--f7-table-title-font-weight:600;--f7-table-card-header-height:64px;--f7-table-footer-height:44px;--f7-table-head-text-color:rgba(0, 0, 0, 0.45);--f7-table-cell-border-color:rgba(0, 0, 0, 0.22);--f7-table-selected-row-bg-color:rgba(0, 0, 0, 0.03);--f7-table-footer-text-color:rgba(0, 0, 0, 0.45);--f7-table-input-text-color:#000}.ios .theme-dark,.ios.theme-dark{--f7-table-head-text-color:rgba(255, 255, 255, 0.55);--f7-table-footer-text-color:rgba(255, 255, 255, 0.55);--f7-table-selected-row-bg-color:rgba(255, 255, 255, 0.08)}.md{--f7-table-head-font-weight:500;--f7-table-head-cell-height:56px;--f7-table-head-icon-size:16px;--f7-table-body-cell-height:48px;--f7-table-cell-padding-vertical:0px;--f7-table-cell-padding-horizontal:28px;--f7-table-edge-cell-padding-horizontal:24px;--f7-table-label-cell-padding-horizontal:24px;--f7-table-checkbox-cell-width:18px;--f7-table-title-font-size:20px;--f7-table-title-font-weight:400;--f7-table-card-header-height:64px;--f7-table-footer-height:56px;--f7-table-head-text-color:rgba(0, 0, 0, 0.54);--f7-table-cell-border-color:rgba(0, 0, 0, 0.12);--f7-table-actions-cell-link-color:rgba(0, 0, 0, 0.54);--f7-table-selected-row-bg-color:#f5f5f5;--f7-table-actions-link-color:rgba(0, 0, 0, 0.54);--f7-table-footer-text-color:rgba(0, 0, 0, 0.54);--f7-table-input-text-color:#212121}.md .theme-dark,.md.theme-dark{--f7-table-head-text-color:rgba(255, 255, 255, 0.54);--f7-table-footer-text-color:rgba(255, 255, 255, 0.54);--f7-table-selected-row-bg-color:rgba(255, 255, 255, 0.05);--f7-table-actions-cell-link-color:rgba(255, 255, 255, 0.54);--f7-table-actions-link-color:rgba(255, 255, 255, 0.54)}.aurora{--f7-table-link-icon-only-icon-size:18px;--f7-table-head-font-weight:400;--f7-table-head-cell-height:32px;--f7-table-head-icon-size:18px;--f7-table-body-cell-height:32px;--f7-table-cell-padding-vertical:5px;--f7-table-cell-padding-horizontal:10px;--f7-table-edge-cell-padding-horizontal:16px;--f7-table-label-cell-padding-horizontal:16px;--f7-table-checkbox-cell-width:22px;--f7-table-title-font-size:14px;--f7-table-title-font-weight:600;--f7-table-card-header-height:42px;--f7-table-footer-height:32px;--f7-table-head-text-color:rgba(0, 0, 0, 0.6);--f7-table-cell-border-color:rgba(0, 0, 0, 0.12);--f7-table-selected-row-bg-color:rgba(0, 0, 0, 0.03);--f7-table-footer-text-color:rgba(0, 0, 0, 0.5);--f7-table-input-text-color:#000}.aurora .theme-dark,.aurora.theme-dark{--f7-table-selected-row-bg-color:rgba(255, 255, 255, 0.03);--f7-table-head-text-color:rgba(255, 255, 255, 0.54);--f7-table-footer-text-color:rgba(255, 255, 255, 0.54)}.data-table{overflow-x:auto}.data-table table,table.data-table{width:100%;border:none;padding:0;margin:0;border-collapse:collapse;text-align:right}.data-table thead td,.data-table thead th{font-size:var(--f7-table-head-font-size);font-weight:var(--f7-table-head-font-weight);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;line-height:16px;height:var(--f7-table-head-cell-height)}.data-table thead td:not(.sortable-cell-active),.data-table thead th:not(.sortable-cell-active){color:var(--f7-table-head-text-color)}.data-table thead i.f7-icons,.data-table thead i.icon,.data-table thead i.material-icons{vertical-align:top;font-size:var(--f7-table-head-icon-size)}.data-table tbody{font-size:var(--f7-table-body-font-size)}.data-table tbody td,.data-table tbody th{height:var(--f7-table-body-cell-height)}.data-table tbody tr.data-table-row-selected,.device-desktop .data-table tbody tr:hover{background:var(--f7-table-selected-row-bg-color)}.data-table tbody td:before,.data-table tbody th:before{content:'';position:absolute;background-color:var(--f7-table-cell-border-color);display:block;z-index:15;top:0;right:auto;bottom:auto;left:0;height:1px;width:100%;transform-origin:50% 0%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.data-table td,.data-table th{--f7-table-cell-padding-left:var(--f7-table-cell-padding-horizontal);--f7-table-cell-padding-right:var(--f7-table-cell-padding-horizontal);padding-top:var(--f7-table-cell-padding-vertical);padding-bottom:var(--f7-table-cell-padding-vertical);padding-left:var(--f7-table-cell-padding-left);padding-right:var(--f7-table-cell-padding-right);position:relative;box-sizing:border-box}.data-table td:first-child,.data-table th:first-child{--f7-table-cell-padding-right:var(--f7-table-edge-cell-padding-horizontal)}.data-table td:last-child,.data-table th:last-child{--f7-table-cell-padding-left:var(--f7-table-edge-cell-padding-horizontal)}.data-table td.label-cell,.data-table th.label-cell{--f7-table-cell-padding-left:var(--f7-table-label-cell-padding-horizontal);--f7-table-cell-padding-right:var(--f7-table-label-cell-padding-horizontal)}.data-table td.numeric-cell,.data-table th.numeric-cell{text-align:left}.data-table td.checkbox-cell,.data-table th.checkbox-cell{overflow:visible;width:var(--f7-table-checkbox-cell-width)}.data-table td.checkbox-cell label+span,.data-table th.checkbox-cell label+span{margin-right:8px}.data-table td.checkbox-cell:first-child,.data-table th.checkbox-cell:first-child{padding-left:calc(var(--f7-table-cell-padding-left)/ 2)}.data-table td.checkbox-cell:first-child+td,.data-table td.checkbox-cell:first-child+th,.data-table th.checkbox-cell:first-child+td,.data-table th.checkbox-cell:first-child+th{padding-right:calc(var(--f7-table-cell-padding-right)/ 2)}.data-table td.checkbox-cell:last-child,.data-table th.checkbox-cell:last-child{padding-right:calc(var(--f7-table-cell-padding-right)/ 2)}.data-table td.actions-cell,.data-table th.actions-cell{text-align:left;white-space:nowrap}.data-table td.actions-cell a.link,.data-table th.actions-cell a.link{color:var(--f7-table-actions-cell-link-color,var(--f7-theme-color))}.card .data-table td a.icon-only,.card .data-table th a.icon-only,.card.data-table td a.icon-only,.card.data-table th a.icon-only,.data-table td a.icon-only,.data-table th a.icon-only{display:inline-block;vertical-align:middle;text-align:center;font-size:0;min-width:0}.card .data-table td a.icon-only i,.card .data-table th a.icon-only i,.card.data-table td a.icon-only i,.card.data-table th a.icon-only i,.data-table td a.icon-only i,.data-table th a.icon-only i{font-size:var(--f7-table-link-icon-only-icon-size);vertical-align:middle}.data-table .sortable-cell:not(.input-cell){cursor:pointer;position:relative}.data-table .sortable-cell.input-cell .table-head-label{cursor:pointer;position:relative}.data-table .sortable-cell.numeric-cell.input-cell>.table-head-label:before,.data-table .sortable-cell.numeric-cell:not(.input-cell):before,.data-table .sortable-cell:not(.numeric-cell).input-cell>.table-head-label:after,.data-table .sortable-cell:not(.numeric-cell):not(.input-cell):after{content:'arrow_bottom_md';font-family:framework7-core-icons;font-weight:400;font-style:normal;line-height:1;letter-spacing:normal;text-transform:none;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;font-feature-settings:"liga";text-align:center;display:block;width:100%;height:100%;font-size:20px;display:inline-block;vertical-align:top;width:16px;height:16px;color:var(--f7-table-sortable-icon-color);font-size:13px;line-height:16px;transition-duration:.3s;transform:rotate(0);opacity:0}.device-desktop .data-table .sortable-cell:not(.sortable-cell-active) .table-head-label:hover:after,.device-desktop .data-table .sortable-cell:not(.sortable-cell-active) .table-head-label:hover:before,.device-desktop .data-table .sortable-cell:not(.sortable-cell-active):hover:after,.device-desktop .data-table .sortable-cell:not(.sortable-cell-active):hover:before{opacity:.54}.data-table .sortable-cell.sortable-cell-active .table-head-label:after,.data-table .sortable-cell.sortable-cell-active .table-head-label:before,.data-table .sortable-cell.sortable-cell-active:after,.data-table .sortable-cell.sortable-cell-active:before{opacity:.87!important}.data-table .sortable-cell.sortable-desc:after,.data-table .sortable-cell.sortable-desc:before,.data-table .table-head-label:after,.data-table .table-head-label:before{transform:rotate(180deg)!important}.card .data-table .card-footer,.card .data-table .card-header,.data-table.card .card-footer,.data-table.card .card-header{padding-left:var(--f7-table-edge-cell-padding-horizontal);padding-right:var(--f7-table-edge-cell-padding-horizontal)}.card .data-table .card-header,.data-table.card .card-header{min-height:var(--f7-table-card-header-height)}.card .data-table .card-content,.data-table.card .card-content{overflow-x:auto}.card .data-table .card-footer,.data-table.card .card-footer{min-height:var(--f7-table-footer-height)}.data-table .data-table-title{font-size:var(--f7-table-title-font-size);font-weight:var(--f7-table-title-font-weight)}.data-table .data-table-actions,.data-table .data-table-links{display:flex}.data-table .data-table-links .button{min-width:64px}.data-table .data-table-actions{margin-right:auto;align-items:center}.data-table .data-table-actions a.link{color:var(--f7-table-actions-link-color,var(--f7-theme-color));min-width:0}.data-table .data-table-actions a.link.icon-only{line-height:1;justify-content:center;padding:0}.data-table .data-table-header,.data-table .data-table-header-selected{display:flex;justify-content:space-between;align-items:center;width:100%}.data-table .card-header>.data-table-header,.data-table .card-header>.data-table-header-selected{padding-top:var(--f7-card-header-padding-vertical);padding-bottom:var(--f7-card-header-padding-vertical);height:100%;padding-right:var(--f7-table-edge-cell-padding-horizontal);padding-left:var(--f7-table-edge-cell-padding-horizontal);margin-right:calc(-1 * var(--f7-table-edge-cell-padding-horizontal));margin-left:calc(-1 * var(--f7-table-edge-cell-padding-horizontal))}.data-table .data-table-header-selected{background:rgba(var(--f7-theme-color-rgb),.1);display:none}.data-table.data-table-has-checked .data-table-header{display:none}.data-table.data-table-has-checked .data-table-header-selected{display:flex}.data-table .data-table-title-selected{font-size:14px;color:var(--f7-theme-color)}.data-table .data-table-footer{display:flex;align-items:center;box-sizing:border-box;position:relative;font-size:var(--f7-table-footer-font-size);overflow:hidden;min-height:var(--f7-table-footer-height);color:var(--f7-table-footer-text-color);justify-content:flex-start}.data-table .data-table-footer:before{content:'';position:absolute;background-color:var(--f7-table-cell-border-color);display:block;z-index:15;top:0;right:auto;bottom:auto;left:0;height:1px;width:100%;transform-origin:50% 0%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.data-table .data-table-pagination,.data-table .data-table-rows-select{display:flex;align-items:center}.data-table .input-cell{padding-top:8px;padding-bottom:8px;height:auto;vertical-align:top}.data-table .input-cell .table-head-label+.input{margin-top:4px}.data-table .input-cell .input{height:var(--f7-table-input-height)}.data-table .input-cell .input input,.data-table .input-cell .input select,.data-table .input-cell .input textarea{height:var(--f7-table-input-height);color:var(--f7-table-input-text-color);font-size:var(--f7-table-input-font-size)}@media (max-width:480px) and (orientation:portrait){.data-table.data-table-collapsible thead{display:none}.data-table.data-table-collapsible tbody,.data-table.data-table-collapsible td,.data-table.data-table-collapsible tr{display:block}.data-table.data-table-collapsible tr{position:relative}.data-table.data-table-collapsible tr:before{content:'';position:absolute;background-color:var(--f7-table-cell-border-color);display:block;z-index:15;top:0;right:auto;bottom:auto;left:0;height:1px;width:100%;transform-origin:50% 0%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.data-table.data-table-collapsible tr:hover{background-color:inherit}.data-table.data-table-collapsible td{--f7-table-cell-padding-left:var(--f7-table-collapsible-cell-padding);--f7-table-cell-padding-right:var(--f7-table-collapsible-cell-padding);height:auto;min-height:var(--f7-table-body-cell-height);display:flex;align-content:center;align-items:center;justify-content:flex-start;text-align:right}.data-table.data-table-collapsible td:before{display:none!important}.data-table.data-table-collapsible td:not(.checkbox-cell):before{width:40%;display:block!important;content:attr(data-collapsible-title);position:relative;height:auto;background:0 0!important;transform:none!important;font-size:var(--f7-table-head-font-size);font-weight:var(--f7-table-head-font-weight);color:var(--f7-table-head-text-color);margin-left:16px;flex-shrink:0}.data-table.data-table-collapsible td.checkbox-cell{position:absolute;top:0;right:0}.data-table.data-table-collapsible td.checkbox-cell+td{padding-right:16px}.data-table.data-table-collapsible td.checkbox-cell~td{margin-right:32px}}.data-table .xsmall-landscape-only,.data-table .xsmall-only{display:none}@media (min-width:480px){.data-table .xsmall-only{display:table-cell}}@media (min-width:480px) and (orientation:landscape){.data-table .xsmall-landscape-only{display:table-cell}}.data-table .small-landscape-only,.data-table .small-only{display:none}@media (min-width:568px){.data-table .small-only{display:table-cell}}@media (min-width:568px) and (orientation:landscape){.data-table .small-landscape-only{display:table-cell}}.data-table .medium-landscape-only,.data-table .medium-only{display:none}@media (min-width:768px){.data-table .medium-only{display:table-cell}}@media (min-width:768px) and (orientation:landscape){.data-table .medium-landscape-only{display:table-cell}}.data-table .large-landscape-only,.data-table .large-only{display:none}@media (min-width:1024px){.data-table .large-only{display:table-cell}}@media (min-width:1024px) and (orientation:landscape){.data-table .large-landscape-only{display:table-cell}}.data-table .xlarge-landscape-only,.data-table .xlarge-only{display:none}@media (min-width:1200px){.data-table .xlarge-only{display:table-cell}}@media (min-width:1200px) and (orientation:landscape){.data-table .xlarge-landscape-only{display:table-cell}}.ios .data-table td.actions-cell a.link+a.link,.ios .data-table th.actions-cell a.link+a.link{margin-right:16px}.ios .sortable-cell:not(.numeric-cell):after{margin-right:5px}.ios .sortable-cell.numeric-cell:before{margin-left:5px}.ios .data-table-actions .button+.button,.ios .data-table-actions a.link+a.link,.ios .data-table-links .button+.button,.ios .data-table-links a.link+a.link{margin-right:16px}.ios .data-table-actions a.link.icon-only{width:44px;height:44px}.ios .data-table-pagination a.link,.ios .data-table-rows-select a.link{width:44px;height:44px}.ios .data-table-rows-select+.data-table-pagination{margin-right:30px}.ios .data-table-rows-select .input{margin-right:20px}.ios .data-table-pagination-label{margin-left:16px}.md .data-table td.actions-cell a.link+a.link,.md .data-table th.actions-cell a.link+a.link{margin-right:24px}.md .data-table td.actions-cell a.icon-only,.md .data-table th.actions-cell a.icon-only{width:24px;height:24px;line-height:24px}.md .sortable-cell:not(.numeric-cell):after{margin-right:8px}.md .sortable-cell.numeric-cell:before{margin-left:8px}.md .data-table-actions .button+.button,.md .data-table-actions a.link+a.link,.md .data-table-links .button+.button,.md .data-table-links a.link+a.link{margin-right:24px}.md .data-table-actions a.link.icon-only{width:24px;height:24px;overflow:visible}.md .data-table-actions a.link.icon-only.active-state{background:0 0}.md .data-table-pagination a.link,.md .data-table-rows-select a.link{width:48px;height:48px}.md .data-table-pagination a.link:before,.md .data-table-rows-select a.link:before{content:'';width:152%;height:152%;position:absolute;left:-26%;top:-26%;background-image:radial-gradient(circle at center,var(--f7-link-highlight-color) 66%,rgba(255,255,255,0) 66%);background-repeat:no-repeat;background-position:center;background-size:100% 100%;opacity:0;pointer-events:none;transition-duration:.6s}.md .data-table-pagination a.link.active-state:before,.md .data-table-rows-select a.link.active-state:before{opacity:1;transition-duration:150ms}.md .data-table-rows-select+.data-table-pagination{margin-right:32px}.md .data-table-rows-select .input{margin-right:24px}.md .data-table-pagination-label{margin-left:20px}.md .input-cell .input-clear-button{transform:scale(.8)}.aurora .data-table td.actions-cell a.link+a.link,.aurora .data-table th.actions-cell a.link+a.link{margin-right:10px}.aurora .sortable-cell:not(.numeric-cell):after{margin-right:5px}.aurora .sortable-cell.numeric-cell:before{margin-left:5px}.aurora .data-table-actions .button+.button,.aurora .data-table-actions a.link+a.link,.aurora .data-table-links .button+.button,.aurora .data-table-links a.link+a.link{margin-right:10px}.aurora .data-table-pagination a.link,.aurora .data-table-rows-select a.link{width:32px;height:32px}.aurora .data-table-rows-select+.data-table-pagination{margin-right:16px}.aurora .data-table-rows-select .input{margin-right:10px}.aurora .data-table-pagination-label{margin-left:10px}:root{--f7-fab-margin:16px;--f7-fab-text-color:#fff;--f7-fab-extended-text-font-size:14px;--f7-fab-extended-text-padding:0 20px;--f7-fab-label-bg-color:#fff;--f7-fab-label-text-color:#333;--f7-fab-label-border-radius:4px;--f7-fab-label-padding:4px 12px;--f7-fab-button-size:40px}.ios{--f7-fab-size:50px;--f7-fab-box-shadow:0px 2px 4px rgba(0, 0, 0, 0.4);--f7-fab-extended-size:50px;--f7-fab-extended-text-font-weight:600;--f7-fab-extended-text-letter-spacing:0;--f7-fab-label-box-shadow:0px 1px 2px rgba(0, 0, 0, 0.4);--f7-fab-label-font-size:inherit}.md{--f7-fab-size:56px;--f7-fab-box-shadow:var(--f7-elevation-6);--f7-fab-extended-size:48px;--f7-fab-extended-text-font-weight:500;--f7-fab-extended-text-letter-spacing:0.03em;--f7-fab-label-box-shadow:var(--f7-elevation-3);--f7-fab-label-font-size:inherit}.aurora{--f7-fab-size:40px;--f7-fab-box-shadow:0px 2px 4px rgba(0, 0, 0, 0.4);--f7-fab-extended-size:38px;--f7-fab-extended-text-font-weight:500;--f7-fab-extended-text-letter-spacing:0;--f7-fab-label-box-shadow:0px 1px 2px rgba(0, 0, 0, 0.4);--f7-fab-label-font-size:12px}.fab-backdrop{z-index:1400}.fab{position:absolute;z-index:1500}.fab a{--f7-touch-ripple-color:var(--f7-touch-ripple-white)}.fab-left-bottom,.fab-left-center,.fab-left-top{left:calc(var(--f7-fab-margin) + var(--f7-safe-area-left))}.fab-right-bottom,.fab-right-center,.fab-right-top{right:calc(var(--f7-fab-margin) + var(--f7-safe-area-right))}.fab-center-top,.fab-left-top,.fab-right-top{top:var(--f7-fab-margin)}.fab-center-bottom,.fab-left-bottom,.fab-right-bottom{bottom:calc(var(--f7-fab-margin) + var(--f7-safe-area-bottom))}.fab-center-bottom,.fab-center-center,.fab-center-top{left:50%;transform:translateX(-50%)}.fab-center-center,.fab-left-center,.fab-right-center{top:50%;transform:translateY(-50%)}.fab-center-center{top:50%;left:50%;transform:translateX(-50%) translateY(-50%)}.fab-buttons a,.fab>a{background-color:var(--f7-fab-bg-color,var(--f7-theme-color));width:var(--f7-fab-size);height:var(--f7-fab-size);box-shadow:var(--f7-fab-box-shadow);border-radius:calc(var(--f7-fab-size)/ 2);position:relative;transition-duration:.3s;display:flex;align-items:center;justify-content:center;overflow:hidden;z-index:1;color:var(--f7-fab-text-color)}.fab-buttons a.active-state,.fab>a.active-state{background-color:var(--f7-fab-pressed-bg-color,var(--f7-theme-color-shade))}.fab>a i{position:absolute;left:50%;top:50%;transform:translate3d(-50%,-50%,0) rotate(0deg) scale(1);transition:.3s}.fab>a i+i{transform:translate3d(-50%,-50%,0) rotate(-90deg) scale(.5);opacity:0}.fab-buttons a{border-radius:calc(var(--f7-fab-button-size)/ 2);width:var(--f7-fab-button-size);height:var(--f7-fab-button-size)}.fab-buttons{display:flex;visibility:hidden;pointer-events:none;position:absolute}.fab-buttons a{opacity:0}.fab-opened:not(.fab-morph)>a i{transform:translate3d(-50%,-50%,0) rotate(90deg) scale(.5);opacity:0}.fab-opened:not(.fab-morph)>a i+i{transform:translate3d(-50%,-50%,0) rotate(0deg) scale(1);opacity:1}.fab-opened .fab-buttons{visibility:visible;pointer-events:auto}.fab-opened .fab-buttons a{opacity:1;transform:translate3d(0,0px,0) scale(1)!important}.fab-opened .fab-buttons a:nth-child(2){transition-delay:50ms}.fab-opened .fab-buttons a:nth-child(3){transition-delay:.1s}.fab-opened .fab-buttons a:nth-child(4){transition-delay:150ms}.fab-opened .fab-buttons a:nth-child(5){transition-delay:.2s}.fab-opened .fab-buttons a:nth-child(6){transition-delay:250ms}.fab-buttons-bottom,.fab-buttons-top{left:50%;width:var(--f7-fab-button-size);margin-left:calc(-1 * var(--f7-fab-button-size)/ 2)}.fab-buttons-top{bottom:100%;margin-bottom:16px;flex-direction:column-reverse}.fab-buttons-top a{transform:translate3d(0,8px,0) scale(.3);transform-origin:center bottom}.fab-buttons-top a+a{margin-bottom:16px}.fab-buttons-bottom{top:100%;margin-top:16px;flex-direction:column}.fab-buttons-bottom a{transform:translate3d(0,-8px,0) scale(.3);transform-origin:center top}.fab-buttons-bottom a+a{margin-top:16px}.fab-buttons-left,.fab-buttons-right{top:50%;height:var(--f7-fab-button-size);margin-top:calc(-1 * var(--f7-fab-button-size)/ 2)}.fab-buttons-left{right:100%;margin-right:16px}.fab-buttons-left a{transform:translate3d(8px,0px,0) scale(.3);transform-origin:right center}.fab-buttons-left a+a{margin-right:16px}.fab-buttons-right{left:100%;margin-left:16px;flex-direction:row-reverse}.fab-buttons-right a{transform:translate3d(-8px,0,0) scale(.3);transform-origin:left center}.fab-buttons-right a+a{margin-left:16px}.fab-buttons-center{left:0%;top:0%;width:100%;height:100%}.fab-buttons-center a{position:absolute}.fab-buttons-center a:nth-child(1){left:50%;margin-left:calc(-1 * var(--f7-fab-button-size)/ 2);bottom:100%;margin-bottom:16px;transform:translateY(-8px) scale(.3);transform-origin:center bottom}.fab-buttons-center a:nth-child(2){left:100%;margin-top:calc(-1 * var(--f7-fab-button-size)/ 2);top:50%;margin-left:16px;transform:translateX(-8px) scale(.3);transform-origin:left center}.fab-buttons-center a:nth-child(3){left:50%;margin-left:calc(-1 * var(--f7-fab-button-size)/ 2);top:100%;margin-top:16px;transform:translateY(8px) scale(.3);transform-origin:center top}.fab-buttons-center a:nth-child(4){right:100%;margin-top:calc(-1 * var(--f7-fab-button-size)/ 2);top:50%;margin-right:16px;transform:translateX(8px) scale(.3);transform-origin:right center}.fab-morph{border-radius:calc(var(--f7-fab-size)/ 2);background:var(--f7-fab-bg-color,var(--f7-theme-color));box-shadow:var(--f7-fab-box-shadow)}.fab-morph>a{box-shadow:none;background:0 0!important}.fab-opened.fab-morph>a i{opacity:0}.fab-morph,.fab-morph-target,.fab-morph>a{transition-duration:250ms}.fab-morph-target:not(.fab-morph-target-visible){display:none}.fab-extended{width:auto;min-width:var(--f7-fab-extended-size)}.fab-extended>a{width:100%;height:var(--f7-fab-extended-size)}.fab-extended>a i{left:calc(var(--f7-fab-extended-size)/ 2)}.fab-extended i~.fab-text{padding-left:var(--f7-fab-extended-size)}.fab-extended>a{width:100%!important}.fab-text{box-sizing:border-box;font-size:var(--f7-fab-extended-text-font-size);padding:var(--f7-fab-extended-text-padding);font-weight:var(--f7-fab-extended-text-font-weight);letter-spacing:var(--f7-fab-extended-text-letter-spacing);text-transform:uppercase}.fab-label-button{overflow:visible!important}.fab-label{position:absolute;top:50%;padding:var(--f7-fab-label-padding);border-radius:var(--f7-fab-label-border-radius);background:var(--f7-fab-label-bg-color);color:var(--f7-fab-label-text-color);box-shadow:var(--f7-fab-label-box-shadow);white-space:nowrap;transform:translateY(-50%);pointer-events:none;font-size:var(--f7-fab-label-font-size)}.fab-right-bottom .fab-label,.fab-right-center .fab-label,.fab-right-top .fab-label{right:100%;margin-right:8px}.fab-left-bottom .fab-label,.fab-left-center .fab-label,.fab-left-top .fab-label{left:100%;margin-left:8px}.navbars~* .fab-center-top,.navbars~* .fab-left-top,.navbars~* .fab-right-top,.navbars~.fab-center-top,.navbars~.fab-left-top,.navbars~.fab-right-top,.navbar~* .fab-center-top,.navbar~* .fab-left-top,.navbar~* .fab-right-top,.navbar~.fab-center-top,.navbar~.fab-left-top,.navbar~.fab-right-top{margin-top:calc(var(--f7-navbar-height) + var(--f7-safe-area-top))}.ios .toolbar-top-ios~* .fab-center-top,.ios .toolbar-top-ios~* .fab-left-top,.ios .toolbar-top-ios~* .fab-right-top,.ios .toolbar-top-ios~.fab-center-top,.ios .toolbar-top-ios~.fab-left-top,.ios .toolbar-top-ios~.fab-right-top,.md .toolbar-top-md~* .fab-center-top,.md .toolbar-top-md~* .fab-left-top,.md .toolbar-top-md~* .fab-right-top,.md .toolbar-top-md~.fab-center-top,.md .toolbar-top-md~.fab-left-top,.md .toolbar-top-md~.fab-right-top,.toolbar-top~* .fab-center-top,.toolbar-top~* .fab-left-top,.toolbar-top~* .fab-right-top,.toolbar-top~.fab-center-top,.toolbar-top~.fab-left-top,.toolbar-top~.fab-right-top{margin-top:var(--f7-toolbar-height)}.ios .toolbar-bottom-ios~* .fab-center-bottom,.ios .toolbar-bottom-ios~* .fab-left-bottom,.ios .toolbar-bottom-ios~* .fab-right-bottom,.ios .toolbar-bottom-ios~.fab-center-bottom,.ios .toolbar-bottom-ios~.fab-left-bottom,.ios .toolbar-bottom-ios~.fab-right-bottom,.md .toolbar-bottom-md~* .fab-center-bottom,.md .toolbar-bottom-md~* .fab-left-bottom,.md .toolbar-bottom-md~* .fab-right-bottom,.md .toolbar-bottom-md~.fab-center-bottom,.md .toolbar-bottom-md~.fab-left-bottom,.md .toolbar-bottom-md~.fab-right-bottom,.toolbar-bottom~* .fab-center-bottom,.toolbar-bottom~* .fab-left-bottom,.toolbar-bottom~* .fab-right-bottom,.toolbar-bottom~.fab-center-bottom,.toolbar-bottom~.fab-left-bottom,.toolbar-bottom~.fab-right-bottom{margin-bottom:var(--f7-toolbar-height)}.ios .tabbar-labels.toolbar-bottom-ios~* .fab-center-bottom,.ios .tabbar-labels.toolbar-bottom-ios~* .fab-left-bottom,.ios .tabbar-labels.toolbar-bottom-ios~* .fab-right-bottom,.ios .tabbar-labels.toolbar-bottom-ios~.fab-center-bottom,.ios .tabbar-labels.toolbar-bottom-ios~.fab-left-bottom,.ios .tabbar-labels.toolbar-bottom-ios~.fab-right-bottom,.md .tabbar-labels.toolbar-bottom-md~* .fab-center-bottom,.md .tabbar-labels.toolbar-bottom-md~* .fab-left-bottom,.md .tabbar-labels.toolbar-bottom-md~* .fab-right-bottom,.md .tabbar-labels.toolbar-bottom-md~.fab-center-bottom,.md .tabbar-labels.toolbar-bottom-md~.fab-left-bottom,.md .tabbar-labels.toolbar-bottom-md~.fab-right-bottom,.tabbar-labels.toolbar-bottom~* .fab-center-bottom,.tabbar-labels.toolbar-bottom~* .fab-left-bottom,.tabbar-labels.toolbar-bottom~* .fab-right-bottom,.tabbar-labels.toolbar-bottom~.fab-center-bottom,.tabbar-labels.toolbar-bottom~.fab-left-bottom,.tabbar-labels.toolbar-bottom~.fab-right-bottom{margin-bottom:var(--f7-tabbar-labels-height)}.ios .tabbar-labels.toolbar-top-ios~* .fab-center-bottom,.ios .tabbar-labels.toolbar-top-ios~* .fab-left-bottom,.ios .tabbar-labels.toolbar-top-ios~* .fab-right-bottom,.ios .tabbar-labels.toolbar-top-ios~.fab-center-bottom,.ios .tabbar-labels.toolbar-top-ios~.fab-left-bottom,.ios .tabbar-labels.toolbar-top-ios~.fab-right-bottom,.md .tabbar-labels.toolbar-top-md~* .fab-center-bottom,.md .tabbar-labels.toolbar-top-md~* .fab-left-bottom,.md .tabbar-labels.toolbar-top-md~* .fab-right-bottom,.md .tabbar-labels.toolbar-top-md~.fab-center-bottom,.md .tabbar-labels.toolbar-top-md~.fab-left-bottom,.md .tabbar-labels.toolbar-top-md~.fab-right-bottom,.tabbar-labels.toolbar-top~* .fab-center-bottom,.tabbar-labels.toolbar-top~* .fab-left-bottom,.tabbar-labels.toolbar-top~* .fab-right-bottom,.tabbar-labels.toolbar-top~.fab-center-bottom,.tabbar-labels.toolbar-top~.fab-left-bottom,.tabbar-labels.toolbar-top~.fab-right-bottom{margin-top:var(--f7-tabbar-labels-height)}.messagebar~* .fab-center-bottom,.messagebar~* .fab-left-bottom,.messagebar~* .fab-right-bottom,.messagebar~.fab-center-bottom,.messagebar~.fab-left-bottom,.messagebar~.fab-right-bottom{margin-bottom:var(--f7-messagebar-height)}.ios .navbar+.toolbar-top-ios~* .fab-center-top,.ios .navbar+.toolbar-top-ios~* .fab-left-top,.ios .navbar+.toolbar-top-ios~* .fab-right-top,.ios .navbar+.toolbar-top-ios~.fab-center-top,.ios .navbar+.toolbar-top-ios~.fab-left-top,.ios .navbar+.toolbar-top-ios~.fab-right-top,.md .navbar+.toolbar-top-ios~* .fab-center-top,.md .navbar+.toolbar-top-ios~* .fab-left-top,.md .navbar+.toolbar-top-ios~* .fab-right-top,.md .navbar+.toolbar-top-ios~.fab-center-top,.md .navbar+.toolbar-top-ios~.fab-left-top,.md .navbar+.toolbar-top-ios~.fab-right-top,.navbar+.toolbar-top~* .fab-center-top,.navbar+.toolbar-top~* .fab-left-top,.navbar+.toolbar-top~* .fab-right-top,.navbar+.toolbar-top~.fab-center-top,.navbar+.toolbar-top~.fab-left-top,.navbar+.toolbar-top~.fab-right-top{margin-top:calc(var(--f7-toolbar-height) + var(--f7-navbar-height) + var(--f7-safe-area-top))}.ios .navbar+.toolbar-top-ios.tabbar-labels~* .fab-center-top,.ios .navbar+.toolbar-top-ios.tabbar-labels~* .fab-left-top,.ios .navbar+.toolbar-top-ios.tabbar-labels~* .fab-right-top,.ios .navbar+.toolbar-top-ios.tabbar-labels~.fab-center-top,.ios .navbar+.toolbar-top-ios.tabbar-labels~.fab-left-top,.ios .navbar+.toolbar-top-ios.tabbar-labels~.fab-right-top,.md .navbar+.toolbar-top-ios.tabbar-labels~* .fab-center-top,.md .navbar+.toolbar-top-ios.tabbar-labels~* .fab-left-top,.md .navbar+.toolbar-top-ios.tabbar-labels~* .fab-right-top,.md .navbar+.toolbar-top-ios.tabbar-labels~.fab-center-top,.md .navbar+.toolbar-top-ios.tabbar-labels~.fab-left-top,.md .navbar+.toolbar-top-ios.tabbar-labels~.fab-right-top,.navbar+.toolbar-top.tabbar-labels~* .fab-center-top,.navbar+.toolbar-top.tabbar-labels~* .fab-left-top,.navbar+.toolbar-top.tabbar-labels~* .fab-right-top,.navbar+.toolbar-top.tabbar-labels~.fab-center-top,.navbar+.toolbar-top.tabbar-labels~.fab-left-top,.navbar+.toolbar-top.tabbar-labels~.fab-right-top{margin-top:calc(var(--f7-tabbar-labels-height) + var(--f7-navbar-height) + var(--f7-safe-area-top))}.ios .navbars+.toolbar-top-ios~* .fab-center-top,.ios .navbars+.toolbar-top-ios~* .fab-left-top,.ios .navbars+.toolbar-top-ios~* .fab-right-top,.ios .navbars+.toolbar-top-ios~.fab-center-top,.ios .navbars+.toolbar-top-ios~.fab-left-top,.ios .navbars+.toolbar-top-ios~.fab-right-top,.navbars+.toolbar-top~* .fab-center-top,.navbars+.toolbar-top~* .fab-left-top,.navbars+.toolbar-top~* .fab-right-top,.navbars+.toolbar-top~.fab-center-top,.navbars+.toolbar-top~.fab-left-top,.navbars+.toolbar-top~.fab-right-top{margin-top:calc(var(--f7-toolbar-height) + var(--f7-navbar-height) + var(--f7-safe-area-top))}.ios .navbars+.toolbar-top-ios.tabbar-labels~* .fab-center-top,.ios .navbars+.toolbar-top-ios.tabbar-labels~* .fab-left-top,.ios .navbars+.toolbar-top-ios.tabbar-labels~* .fab-right-top,.ios .navbars+.toolbar-top-ios.tabbar-labels~.fab-center-top,.ios .navbars+.toolbar-top-ios.tabbar-labels~.fab-left-top,.ios .navbars+.toolbar-top-ios.tabbar-labels~.fab-right-top,.navbars+.toolbar-top.tabbar-labels~* .fab-center-top,.navbars+.toolbar-top.tabbar-labels~* .fab-left-top,.navbars+.toolbar-top.tabbar-labels~* .fab-right-top,.navbars+.toolbar-top.tabbar-labels~.fab-center-top,.navbars+.toolbar-top.tabbar-labels~.fab-left-top,.navbars+.toolbar-top.tabbar-labels~.fab-right-top{margin-top:calc(var(--f7-tabbar-labels-height) + var(--f7-navbar-height) + var(--f7-safe-area-top))}.ios .fab-buttons a.active-state,.ios .fab>a.active-state{transition-duration:0s}:root{--f7-searchbar-input-border-width:0px;--f7-searchbar-input-border-color:transparent;--f7-searchbar-input-text-color:#000;--f7-searchbar-placeholder-color:rgba(0, 0, 0, 0.4)}:root .theme-dark,:root.theme-dark{--f7-searchbar-input-text-color:#fff;--f7-searchbar-placeholder-color:rgba(255, 255, 255, 0.4)}.ios{--f7-searchbar-height:44px;--f7-searchbar-inner-padding-left:8px;--f7-searchbar-inner-padding-right:8px;--f7-searchbar-input-font-size:17px;--f7-searchbar-input-border-radius:8px;--f7-searchbar-input-height:32px;--f7-searchbar-input-padding-horizontal:28px;--f7-searchbar-backdrop-bg-color:rgba(0, 0, 0, 0.4);--f7-searchbar-shadow-image:none;--f7-searchbar-in-page-content-margin:0px;--f7-searchbar-in-page-content-box-shadow:none;--f7-searchbar-in-page-content-border-radius:0;--f7-searchbar-in-page-content-input-border-radius:0;--f7-searchbar-search-icon-color:rgba(0, 0, 0, 0.4);--f7-searchbar-input-bg-color:#e4e4e4}.ios .theme-dark,.ios.theme-dark{--f7-searchbar-search-icon-color:rgba(255, 255, 255, 0.4);--f7-searchbar-input-bg-color:#2a2a2a}.md{--f7-searchbar-border-color:transparent;--f7-searchbar-height:48px;--f7-searchbar-inner-padding-left:0px;--f7-searchbar-inner-padding-right:0px;--f7-searchbar-link-color:#737373;--f7-searchbar-search-icon-color:#737373;--f7-searchbar-input-font-size:20px;--f7-searchbar-input-border-radius:0px;--f7-searchbar-input-height:100%;--f7-searchbar-input-padding-horizontal:48px;--f7-searchbar-inline-input-padding-horizontal:24px;--f7-searchbar-input-clear-button-color:#737373;--f7-searchbar-backdrop-bg-color:rgba(0, 0, 0, 0.25);--f7-searchbar-shadow-image:var(--f7-bars-shadow-bottom-image);--f7-searchbar-in-page-content-margin:8px;--f7-searchbar-in-page-content-box-shadow:var(--f7-elevation-1);--f7-searchbar-in-page-content-border-radius:4px;--f7-searchbar-in-page-content-input-border-radius:4px;--f7-searchbar-bg-color:#fff;--f7-searchbar-input-bg-color:#fff}.md .theme-dark,.md.theme-dark{--f7-searchbar-bg-color:#202020;--f7-searchbar-input-bg-color:#202020}.aurora{--f7-searchbar-height:38px;--f7-searchbar-inner-padding-left:8px;--f7-searchbar-inner-padding-right:8px;--f7-searchbar-input-font-size:13px;--f7-searchbar-input-border-radius:4px;--f7-searchbar-input-height:24px;--f7-searchbar-input-padding-horizontal:24px;--f7-searchbar-backdrop-bg-color:rgba(0, 0, 0, 0.4);--f7-searchbar-shadow-image:none;--f7-searchbar-in-page-content-margin:0px;--f7-searchbar-in-page-content-box-shadow:none;--f7-searchbar-in-page-content-border-radius:0;--f7-searchbar-search-icon-color:rgba(0, 0, 0, 0.4);--f7-searchbar-input-bg-color:#fff}.aurora .theme-dark,.aurora.theme-dark{--f7-searchbar-input-bg-color:#333;--f7-searchbar-search-icon-color:rgba(255, 255, 255, 0.4)}.searchbar{width:100%;position:relative;z-index:200;height:var(--f7-searchbar-height);background-image:var(--f7-searchbar-bg-image,var(--f7-bars-bg-image));background-color:var(--f7-searchbar-bg-color,var(--f7-bars-bg-color))}@supports ((-webkit-backdrop-filter:blur(20px)) or (backdrop-filter:blur(20px))){.ios-translucent-bars .searchbar{background-color:rgba(var(--f7-searchbar-bg-color-rgb,var(--f7-bars-bg-color-rgb)),var(--f7-bars-translucent-opacity));-webkit-backdrop-filter:saturate(180%) blur(var(--f7-bars-translucent-blur));backdrop-filter:saturate(180%) blur(var(--f7-bars-translucent-blur))}}.ios .subnavbar .searchbar{background-color:transparent;-webkit-backdrop-filter:none;backdrop-filter:none}.ios .subnavbar .searchbar:after{display:none!important}.searchbar.no-border:after,.searchbar.no-hairline:after{display:none!important}.searchbar.no-shadow:before{display:none!important}.searchbar:after{content:'';position:absolute;background-color:var(--f7-searchbar-border-color,var(--f7-bars-border-color));display:block;z-index:15;top:auto;right:auto;bottom:0;left:0;height:1px;width:100%;transform-origin:50% 100%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.page>.searchbar:not(.searchbar-inline){z-index:600}.page>.searchbar:not(.searchbar-inline):before{content:'';position:absolute;right:0;width:100%;top:100%;bottom:auto;height:8px;pointer-events:none;background:var(--f7-searchbar-shadow-image)}.searchbar input[type=search],.searchbar input[type=text]{box-sizing:border-box;width:100%;height:100%;display:block;border:var(--f7-searchbar-input-border-width) solid var(--f7-searchbar-input-border-color);-webkit-appearance:none;-moz-appearance:none;appearance:none;font-family:inherit;font-weight:400;color:var(--f7-searchbar-input-text-color);font-size:var(--f7-searchbar-input-font-size);background-color:var(--f7-searchbar-input-bg-color);border-radius:var(--f7-searchbar-input-border-radius);position:relative;padding:0;padding-left:calc(var(--f7-searchbar-input-padding-horizontal) + var(--f7-searchbar-input-extra-padding-right,0px));padding-right:calc(var(--f7-searchbar-input-padding-horizontal) + var(--f7-searchbar-input-extra-padding-left,0px))}.searchbar input[type=search]::-webkit-input-placeholder,.searchbar input[type=text]::-webkit-input-placeholder{color:var(--f7-searchbar-placeholder-color);opacity:1}.searchbar input[type=search]::placeholder,.searchbar input[type=text]::placeholder{color:var(--f7-searchbar-placeholder-color);opacity:1}.searchbar input::-webkit-search-cancel-button{-webkit-appearance:none;appearance:none}.searchbar .searchbar-input-wrap{flex-shrink:1;width:100%;height:var(--f7-searchbar-input-height);position:relative}.searchbar a{color:var(--f7-searchbar-link-color,var(--f7-bars-link-color,var(--f7-theme-color)))}.page>.searchbar:not(.searchbar-inline){position:absolute;left:0;top:0}.page-content .searchbar:not(.searchbar-inline){border-radius:var(--f7-searchbar-in-page-content-border-radius);margin:var(--f7-searchbar-in-page-content-margin);width:auto;box-shadow:var(--f7-searchbar-in-page-content-box-shadow)}.page-content .searchbar:not(.searchbar-inline) .searchbar-inner,.page-content .searchbar:not(.searchbar-inline) input[type=search],.page-content .searchbar:not(.searchbar-inline) input[type=text]{border-radius:var(--f7-searchbar-in-page-content-input-border-radius,var(--f7-searchbar-input-border-radius))}.searchbar .input-clear-button{color:var(--f7-searchbar-input-clear-button-color,var(--f7-input-clear-button-color))}.searchbar-expandable{--f7-searchbar-expandable-size:var(--f7-searchbar-height);position:absolute;transition-duration:.3s;pointer-events:none}.navbar .searchbar-expandable{background:0 0}.navbar .searchbar-expandable:after{display:none!important}.navbar .searchbar.searchbar-expandable{--f7-searchbar-expandable-size:var(--f7-navbar-height)}.toolbar .searchbar.searchbar-expandable{--f7-searchbar-expandable-size:var(--f7-toolbar-height)}.subnavbar .searchbar.searchbar-expandable{--f7-searchbar-expandable-size:var(--f7-subnavbar-height)}.tabbar-labels .searchbar.searchbar-expandable{--f7-searchbar-expandable-size:var(--f7-tabbar-labels-height)}.searchbar-inner{position:absolute;left:0;top:0;width:100%;height:100%;display:flex;align-items:center;box-sizing:border-box;padding:0 calc(var(--f7-searchbar-inner-padding-right) + var(--f7-safe-area-right)) 0 calc(var(--f7-searchbar-inner-padding-left) + var(--f7-safe-area-left))}.searchbar-disable-button{cursor:pointer;pointer-events:none;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:0 0;border:none;outline:0;padding:0;margin:0;width:auto;opacity:0}.searchbar-icon{pointer-events:none;background-position:center;background-repeat:no-repeat}.searchbar-icon:after{color:var(--f7-searchbar-search-icon-color);font-family:framework7-core-icons;font-weight:400;font-style:normal;line-height:1;letter-spacing:normal;text-transform:none;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;font-feature-settings:"liga";text-align:center;display:block;width:100%;height:100%;font-size:20px}.searchbar-backdrop{position:absolute;left:0;top:0;width:100%;height:100%;z-index:100;opacity:0;pointer-events:none;transition-duration:.3s;transform:translate3d(0,0,0);background:var(--f7-searchbar-backdrop-bg-color)}.searchbar-backdrop.searchbar-backdrop-in{opacity:1;pointer-events:auto}.page-content>.searchbar-backdrop{position:fixed}.searchbar-not-found{display:none}.hidden-by-searchbar,.list .hidden-by-searchbar,.list li.hidden-by-searchbar,.list.li.hidden-by-searchbar{display:none!important}.navbar.with-searchbar-expandable-enabled-no-transition{--f7-navbar-large-collapse-progress:1}.navbar.with-searchbar-expandable-enabled{--f7-navbar-large-collapse-progress:1}.navbar.with-searchbar-expandable-enabled .navbar-bg,.navbar.with-searchbar-expandable-enabled .title-large,.navbar.with-searchbar-expandable-enabled .title-large-text{transition-duration:.3s}.navbar.with-searchbar-expandable-closing .navbar-bg,.navbar.with-searchbar-expandable-closing .title-large,.navbar.with-searchbar-expandable-closing .title-large-text{transition-duration:.3s}.page-content.with-searchbar-expandable-enabled{height:calc(100% + var(--f7-navbar-large-title-height));transform:translateY(calc(-1 * var(--f7-navbar-large-title-height)));transition-duration:.3s;transition-property:transform}.page-content.with-searchbar-expandable-closing{transition-duration:.3s}.navbars~.page:not(.no-navbar)>.searchbar,.navbar~.page:not(.no-navbar)>.searchbar,.page>.navbar~.searchbar{top:calc(var(--f7-navbar-height) + var(--f7-safe-area-top))}.navbars~.page-with-navbar-large:not(.no-navbar) .searchbar,.navbar~.page-with-navbar-large:not(.no-navbar) .searchbar,.page-with-navbar-large .navbar~* .searchbar,.page-with-navbar-large .navbar~.searchbar{top:calc(var(--f7-navbar-height) + var(--f7-navbar-large-title-height) + var(--f7-safe-area-top));transform:translate3d(0,calc(-1 * var(--f7-navbar-large-collapse-progress) * var(--f7-navbar-large-title-height)),0)}.navbars~.page-with-navbar-large:not(.no-navbar) .page-content .searchbar,.page-with-navbar-large .page-content .searchbar{top:0;transform:none}.searchbar~*{--f7-page-searchbar-offset:var(--f7-searchbar-height)}.aurora .page>.toolbar-top-aurora~.searchbar,.ios .page>.toolbar-top-ios~.searchbar,.md .page>.toolbar-top-md~.searchbar,.page>.toolbar-top~.searchbar{top:var(--f7-toolbar-height)}.aurora .page>.tabbar-labels.toolbar-top-aurora~.searchbar,.ios .page>.tabbar-labels.toolbar-top-ios~.searchbar,.md .page>.tabbar-labels.toolbar-top-md~.searchbar,.page>.tabbar-labels.toolbar-top~.searchbar{top:var(--f7-tabbar-labels-height)}.aurora .page>.navbar~.toolbar-top-aurora~.searchbar,.ios .page>.navbar~.toolbar-top-ios~.searchbar,.md .page>.navbar~.toolbar-top-md~.searchbar,.page>.navbar~.toolbar-top~.searchbar{top:calc(var(--f7-navbar-height) + var(--f7-toolbar-height) + var(--f7-safe-area-top))}.aurora .page>.navbar~.tabbar-labels.toolbar-top-aurora~.searchbar,.ios .page>.navbar~.tabbar-labels.toolbar-top-ios~.searchbar,.md .page>.navbar~.tabbar-labels.toolbar-top-md~.searchbar,.page>.navbar~.tabbar-labels.toolbar-top~.searchbar{top:calc(var(--f7-navbar-height) + var(--f7-tabbar-labels-height) + var(--f7-safe-area-top))}.searchbar.searchbar-inline{width:auto;height:auto;background-color:transparent;background-image:none}.searchbar.searchbar-inline:after,.searchbar.searchbar-inline:before{display:none!important}.searchbar.searchbar-inline .searchbar-input-wrap{height:var(--f7-searchbar-inline-input-height,var(--f7-searchbar-input-height))}.searchbar.searchbar-inline .searchbar-inner{padding:0;position:static;width:auto;height:auto}.searchbar.searchbar-inline input[type=search],.searchbar.searchbar-inline input[type=text]{font-size:var(--f7-searchbar-inline-input-font-size,var(--f7-searchbar-input-font-size));padding-left:calc(var(--f7-searchbar-inline-input-padding-horizontal,var(--f7-searchbar-input-padding-horizontal)) + var(--f7-searchbar-input-extra-padding-right,0px));padding-right:calc(var(--f7-searchbar-inline-input-padding-horizontal,var(--f7-searchbar-input-padding-horizontal)) + var(--f7-searchbar-input-extra-padding-left,0px))}.ios .searchbar input[type=search],.ios .searchbar input[type=text]{z-index:30}.ios .searchbar .input-clear-button{z-index:40;left:7px}.ios .searchbar-icon{width:13px;height:13px;position:absolute;top:50%;margin-top:-6px;z-index:40;right:8px}.ios .searchbar-icon:after{content:'search_ios';line-height:13px}.ios .searchbar-disable-button{font-size:17px;flex-shrink:0;transform:translate3d(0,0,0);transition-duration:.3s;color:var(--f7-searchbar-link-color,var(--f7-bars-link-color,var(--f7-theme-color)));display:none}.ios .searchbar-disable-button.active-state{transition-duration:0s;opacity:.3!important}.ios .searchbar-enabled .searchbar-disable-button{pointer-events:auto;opacity:1;margin-right:8px}.ios .searchbar:not(.searchbar-enabled) .searchbar-disable-button{transition-duration:.3s!important}.ios .searchbar-expandable{right:0;bottom:0;opacity:1;width:100%;height:0%;transform:translate3d(0,0,0);overflow:hidden}.ios .searchbar-expandable .searchbar-disable-button{margin-right:8px;opacity:1;display:block}.ios .searchbar-expandable .searchbar-inner{height:var(--f7-searchbar-expandable-size)}.ios .navbar.with-searchbar-expandable-closing .navbar-bg,.ios .navbar.with-searchbar-expandable-enabled .navbar-bg{transition-property:transform,opacity}.ios .navbar.with-searchbar-expandable-closing .left,.ios .navbar.with-searchbar-expandable-closing .navbar-bg,.ios .navbar.with-searchbar-expandable-closing .right,.ios .navbar.with-searchbar-expandable-closing .title,.ios .navbar.with-searchbar-expandable-enabled .left,.ios .navbar.with-searchbar-expandable-enabled .navbar-bg,.ios .navbar.with-searchbar-expandable-enabled .right,.ios .navbar.with-searchbar-expandable-enabled .title{transition-duration:.3s}.ios .navbar.with-searchbar-expandable-enabled .left,.ios .navbar.with-searchbar-expandable-enabled .right,.ios .navbar.with-searchbar-expandable-enabled .title,.ios .navbar.with-searchbar-expandable-enabled-no-transition .left,.ios .navbar.with-searchbar-expandable-enabled-no-transition .right,.ios .navbar.with-searchbar-expandable-enabled-no-transition .title{transform:translateY(calc(-1 * var(--f7-navbar-height)));opacity:0!important}.ios .searchbar-expandable.searchbar-enabled{opacity:1;height:var(--f7-searchbar-expandable-size);pointer-events:auto}.md .searchbar-disable-button,.md .searchbar-icon{position:absolute;right:calc(-4px + var(--f7-safe-area-right));top:50%;transition-duration:.3s}.md .searchbar-icon{width:24px;height:24px;margin-left:12px;margin-top:-12px}.md .searchbar-icon:after{content:'search_md';line-height:1.2}.md .searchbar-disable-button{width:48px;height:48px;transform:rotate(-90deg) scale(.5);font-size:0!important;display:block;margin-top:-24px;color:var(--f7-searchbar-link-color,var(--f7-bars-link-color,var(--f7-theme-color)))}.md .searchbar-disable-button:before{content:'';width:152%;height:152%;position:absolute;left:-26%;top:-26%;background-image:radial-gradient(circle at center,var(--f7-link-highlight-color) 66%,rgba(255,255,255,0) 66%);background-repeat:no-repeat;background-position:center;background-size:100% 100%;opacity:0;pointer-events:none;transition-duration:.6s}.md .searchbar-disable-button.active-state:before{opacity:1;transition-duration:150ms}.md .searchbar-disable-button:after{font-family:framework7-core-icons;font-weight:400;font-style:normal;line-height:1;letter-spacing:normal;text-transform:none;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;font-feature-settings:"liga";text-align:center;display:block;width:100%;height:100%;font-size:20px;line-height:48px;content:"arrow_right_md"}.md .searchbar-enabled:not(.searchbar-enabled-no-disable-button) .searchbar-disable-button{transform:rotate(0deg) scale(1);pointer-events:auto;opacity:1}.md .searchbar-enabled:not(.searchbar-enabled-no-disable-button) .searchbar-icon{opacity:0;transform:rotate(90deg) scale(.5)}.md .searchbar{--f7-searchbar-input-extra-padding-left:16px}.md .searchbar .input-clear-button{width:48px;height:48px;margin-top:-24px;left:0}.md .searchbar .input-clear-button:before{content:'';width:152%;height:152%;position:absolute;left:-26%;top:-26%;background-image:radial-gradient(circle at center,var(--f7-link-highlight-color) 66%,rgba(255,255,255,0) 66%);background-repeat:no-repeat;background-position:center;background-size:100% 100%;opacity:0;pointer-events:none;transition-duration:.6s}.md .searchbar .input-clear-button.active-state:before{opacity:1;transition-duration:150ms}.md .searchbar .input-clear-button:after{line-height:48px;content:'delete_md';opacity:1}.md .searchbar .input-clear-button:before{margin-left:0;margin-top:0}.md .page>.searchbar,.md .searchbar-expandable,.md .subnavbar .searchbar{--f7-searchbar-input-extra-padding-left:24px}.md .page>.searchbar .searchbar-disable-button,.md .page>.searchbar .searchbar-icon,.md .searchbar-expandable .searchbar-disable-button,.md .searchbar-expandable .searchbar-icon,.md .subnavbar .searchbar .searchbar-disable-button,.md .subnavbar .searchbar .searchbar-icon{right:calc(-4px + 8px + var(--f7-safe-area-right))}.md .searchbar-expandable{height:var(--f7-searchbar-expandable-size);opacity:0;bottom:0;border-radius:calc(var(--f7-searchbar-expandable-size));width:calc(var(--f7-searchbar-expandable-size));margin-top:calc(var(--f7-searchbar-expandable-size) * -1 / 2);transform:translate3d(0px,0px,0px);right:100%;margin-right:calc(var(--f7-searchbar-expandable-size) * -1)}.md .searchbar-expandable.searchbar-enabled{width:100%;border-radius:0;opacity:1;pointer-events:auto;margin-top:0;right:0;margin-right:0}.aurora .searchbar input[type=search],.aurora .searchbar input[type=text]{z-index:30}.aurora .searchbar .input-clear-button{z-index:40;left:4px}.aurora .searchbar-icon{width:13px;height:13px;position:absolute;top:50%;margin-top:-6px;z-index:40;right:6px}.aurora .searchbar-icon:after{content:'search_aurora';line-height:13px}.aurora .searchbar-disable-button{font-size:14px;flex-shrink:0;transform:translate3d(0,0,0);transition-duration:.3s;color:var(--f7-searchbar-link-color,var(--f7-bars-link-color,var(--f7-theme-color)));display:none}.aurora .searchbar-disable-button.active-state{transition-duration:0s;opacity:.3!important}.aurora .searchbar-enabled .searchbar-disable-button{pointer-events:auto;opacity:1;margin-right:8px}.aurora .searchbar:not(.searchbar-enabled) .searchbar-disable-button{transition-duration:.3s!important}.aurora .searchbar-expandable{right:0;top:auto;bottom:0;opacity:0;width:100%;transform:translate3d(0,0,0);overflow:hidden}.aurora .searchbar-expandable .searchbar-disable-button{margin-right:8px;opacity:1;display:block}.aurora .searchbar-expandable .searchbar-inner{height:var(--f7-searchbar-expandable-size)}.aurora .searchbar-expandable.searchbar-enabled{opacity:1;pointer-events:auto}:root{--f7-message-text-header-text-color:inherit;--f7-message-text-header-opacity:0.65;--f7-message-text-header-font-size:12px;--f7-message-text-footer-text-color:inherit;--f7-message-text-footer-opacity:0.65;--f7-message-text-footer-font-size:12px;--f7-message-bubble-line-height:1.2;--f7-message-header-font-size:12px;--f7-message-footer-font-size:11px;--f7-message-name-font-size:12px;--f7-message-name-font-weight:inherit;--f7-message-avatar-border-radius:50%;--f7-messages-title-font-weight:inherit;--f7-message-sent-text-color:#fff;--f7-messages-content-bg-color:#fff;--f7-message-typing-indicator-bg-color:#000;--f7-message-received-bg-color:#e5e5ea;--f7-message-received-text-color:#000}:root .theme-dark,:root.theme-dark{--f7-messages-title-text-color:rgba(255, 255, 255, 0.54);--f7-message-header-text-color:rgba(255, 255, 255, 0.54);--f7-message-name-text-color:rgba(255, 255, 255, 0.54);--f7-message-footer-text-color:rgba(255, 255, 255, 0.54);--f7-messages-content-bg-color:transparent;--f7-message-received-bg-color:#252525;--f7-message-received-text-color:#fff;--f7-message-typing-indicator-bg-color:#fff}.ios{--f7-messages-title-text-color:rgba(0, 0, 0, 0.45);--f7-messages-title-font-size:11px;--f7-message-header-text-color:rgba(0, 0, 0, 0.45);--f7-message-footer-text-color:rgba(0, 0, 0, 0.45);--f7-message-name-text-color:rgba(0, 0, 0, 0.45);--f7-message-avatar-size:29px;--f7-message-margin:10px;--f7-message-bubble-min-height:32px;--f7-message-bubble-font-size:17px;--f7-message-bubble-border-radius:16px;--f7-message-bubble-padding-vertical:6px;--f7-message-bubble-padding-horizontal:16px;--f7-message-typing-indicator-opacity:0.35}.md{--f7-messages-title-font-size:12px;--f7-message-avatar-size:32px;--f7-message-margin:16px;--f7-message-bubble-min-height:32px;--f7-message-bubble-font-size:16px;--f7-message-bubble-border-radius:4px;--f7-message-bubble-padding-vertical:6px;--f7-message-bubble-padding-horizontal:8px;--f7-message-typing-indicator-opacity:0.6;--f7-messages-title-text-color:rgba(0, 0, 0, 0.51);--f7-message-header-text-color:rgba(0, 0, 0, 0.51);--f7-message-footer-text-color:rgba(0, 0, 0, 0.51);--f7-message-name-text-color:rgba(0, 0, 0, 0.51)}.aurora{--f7-messages-title-font-size:12px;--f7-message-avatar-size:24px;--f7-message-margin:10px;--f7-message-bubble-min-height:28px;--f7-message-bubble-font-size:13px;--f7-message-bubble-line-height:1.4;--f7-message-bubble-border-radius:14px;--f7-message-bubble-padding-vertical:5px;--f7-message-bubble-padding-horizontal:10px;--f7-message-typing-indicator-opacity:0.5;--f7-messages-title-text-color:rgba(0, 0, 0, 0.51);--f7-message-header-text-color:rgba(0, 0, 0, 0.51);--f7-message-footer-text-color:rgba(0, 0, 0, 0.51);--f7-message-name-text-color:rgba(0, 0, 0, 0.51)}.messages,.messages-content{background:var(--f7-messages-content-bg-color)}.messages{display:flex;flex-direction:column;min-height:100%;position:relative;z-index:1}.message,.messages-title{margin-top:var(--f7-message-margin)}.message:last-child,.messages-title:last-child{margin-bottom:var(--f7-message-margin)}.messages-title{text-align:center;width:100%;line-height:1;color:var(--f7-messages-title-text-color);font-size:var(--f7-messages-title-font-size);font-weight:var(--f7-messages-title-font-weight)}.message{max-width:70%;box-sizing:border-box;display:flex;align-items:flex-end;position:relative;z-index:1;transform:translate3d(0,0,0)}.message-avatar{border-radius:var(--f7-message-avatar-border-radius);position:relative;background-size:cover;align-self:flex-end;flex-shrink:0;width:var(--f7-message-avatar-size);height:var(--f7-message-avatar-size)}.message-content{position:relative;display:flex;flex-direction:column}.message-footer,.message-header,.message-name{line-height:1}.message-header{color:var(--f7-message-header-text-color);font-size:var(--f7-message-header-font-size)}.message-footer{color:var(--f7-message-footer-text-color);font-size:var(--f7-message-footer-font-size);margin-bottom:-1em}.message-name{color:var(--f7-message-name-text-color);font-size:var(--f7-message-name-font-size);font-weight:var(--f7-message-name-font-weight)}.message-bubble{box-sizing:border-box;word-break:break-word;display:flex;flex-direction:column;position:relative;line-height:var(--f7-message-bubble-line-height);font-size:var(--f7-message-bubble-font-size);border-radius:var(--f7-message-bubble-border-radius);padding:var(--f7-message-bubble-padding-vertical) var(--f7-message-bubble-padding-horizontal);min-height:var(--f7-message-bubble-min-height)}.message-image img{display:block;max-width:100%;height:auto;width:auto}.message-text-footer,.message-text-header{line-height:1}.message-text-header{color:var(--f7-message-text-header-text-color);opacity:var(--f7-message-text-header-opacity);font-size:var(--f7-message-text-header-font-size)}.message-text-footer{color:var(--f7-message-text-footer-text-color);opacity:var(--f7-message-text-footer-opacity);font-size:var(--f7-message-text-footer-font-size)}.message-text{text-align:left}.message-sent{text-align:right;flex-direction:row;align-self:flex-start}.message-sent .message-bubble{color:var(--f7-message-sent-text-color);background:var(--f7-message-sent-bg-color,var(--f7-theme-color))}.message-sent .message-content{align-items:flex-start}.message-sent.message-tail .message-bubble{border-radius:var(--f7-message-bubble-border-radius) var(--f7-message-bubble-border-radius) 0 var(--f7-message-bubble-border-radius)}.message-received{flex-direction:row-reverse;align-self:flex-end}.message-received .message-bubble{color:var(--f7-message-received-text-color);background:var(--f7-message-received-bg-color)}.message-received .message-content{align-items:flex-end}.message-received.message-tail .message-bubble{border-radius:var(--f7-message-bubble-border-radius) var(--f7-message-bubble-border-radius) var(--f7-message-bubble-border-radius) 0}.message:not(.message-last) .message-avatar{opacity:0}.message:not(.message-first) .message-name{display:none}.message.message-same-name .message-name{display:none}.message.message-same-header .message-header{display:none}.message.message-same-footer .message-footer{display:none}.message-appear-from-bottom{animation:message-appear-from-bottom .3s}.message-appear-from-top{animation:message-appear-from-top .3s}.message-typing-indicator{display:inline-block;font-size:0;vertical-align:middle}.message-typing-indicator>div{display:inline-block;position:relative;background:var(--f7-message-typing-indicator-bg-color);opacity:var(--f7-message-typing-indicator-opacity);vertical-align:middle;border-radius:50%}@keyframes message-appear-from-bottom{from{transform:translate3d(0,100%,0)}to{transform:translate3d(0,0,0)}}@keyframes message-appear-from-top{from{transform:translate3d(0,-100%,0)}to{transform:translate3d(0,0,0)}}.ios .message-footer b,.ios .message-header b,.ios .message-name b,.ios .messages-title b{font-weight:600}.ios .message-header,.ios .message-name{margin-bottom:3px}.ios .message-footer{margin-top:3px}.ios .message-bubble{min-width:48px}.ios .message-image{margin:var(--f7-message-bubble-padding-vertical) calc(-1 * var(--f7-message-bubble-padding-horizontal))}.ios .message-image:first-child{margin-top:calc(-1 * var(--f7-message-bubble-padding-vertical))}.ios .message-image:first-child img{border-top-left-radius:var(--f7-message-bubble-border-radius);border-top-right-radius:var(--f7-message-bubble-border-radius)}.ios .message-image:last-child{margin-bottom:calc(-1 * var(--f7-message-bubble-padding-vertical))}.ios .message-image:last-child img{border-bottom-left-radius:var(--f7-message-bubble-border-radius);border-bottom-right-radius:var(--f7-message-bubble-border-radius)}.ios .message-text-header{margin-bottom:3px}.ios .message-text-footer{margin-top:3px}.ios .message-received{margin-left:calc(10px + var(--f7-safe-area-left))}.ios .message-received .message-footer,.ios .message-received .message-header,.ios .message-received .message-name{margin-left:var(--f7-message-bubble-padding-horizontal)}.ios .message-received .message-bubble{padding-left:calc(var(--f7-message-bubble-padding-horizontal) + 6px);-webkit-mask-box-image:url("data:image/svg+xml;charset=utf-8,") 50% 42% 46% 56%}.ios .message-received .message-image{margin-left:calc(-1 * (var(--f7-message-bubble-padding-horizontal) + 6px))}.ios .message-received.message-tail:not(.message-typing) .message-bubble{-webkit-mask-box-image:url("data:image/svg+xml;charset=utf-8,") 50% 42% 46% 56%}.ios .message-received.message-tail:not(.message-typing) .message-bubble .message-image:last-child img{border-bottom-left-radius:0px}.ios .message-sent{margin-right:calc(10px + var(--f7-safe-area-right))}.ios .message-sent .message-footer,.ios .message-sent .message-header,.ios .message-sent .message-name{margin-right:var(--f7-message-bubble-padding-horizontal)}.ios .message-sent .message-bubble{padding-right:calc(var(--f7-message-bubble-padding-horizontal) + 6px);-webkit-mask-box-image:url("data:image/svg+xml;charset=utf-8,") 50% 56% 46% 42%}.ios .message-sent .message-image{margin-right:calc(-1 * (var(--f7-message-bubble-padding-horizontal) + 6px))}.ios .message-sent.message-tail .message-bubble{-webkit-mask-box-image:url("data:image/svg+xml;charset=utf-8,") 50% 56% 46% 42%}.ios .message-sent.message-tail .message-bubble .message-image:last-child img{border-bottom-right-radius:0px}.ios .message+.message:not(.message-first){margin-top:1px}.ios .message-received.message-typing .message-content:after,.ios .message-received.message-typing .message-content:before{content:'';position:absolute;background:var(--f7-message-received-bg-color);border-radius:50%}.ios .message-received.message-typing .message-content:after{width:11px;height:11px;left:4px;bottom:0px}.ios .message-received.message-typing .message-content:before{width:6px;height:6px;left:-1px;bottom:-4px}.ios .message-typing-indicator>div{width:9px;height:9px}.ios .message-typing-indicator>div+div{margin-right:4px}.ios .message-typing-indicator>div:nth-child(1){animation:ios-message-typing-indicator .9s infinite}.ios .message-typing-indicator>div:nth-child(2){animation:ios-message-typing-indicator .9s 150ms infinite}.ios .message-typing-indicator>div:nth-child(3){animation:ios-message-typing-indicator .9s .3s infinite}@keyframes ios-message-typing-indicator{0%{opacity:.35}25%{opacity:.2}50%{opacity:.2}}.md .message-footer b,.md .message-header b,.md .message-name b,.md .messages-title b{font-weight:500}.md .message-header,.md .message-name{margin-bottom:2px}.md .message-footer{margin-top:2px}.md .message-text-header{margin-bottom:4px}.md .message-text-footer{margin-top:4px}.md .message-received.message-tail .message-bubble:before,.md .message-sent.message-tail .message-bubble:before{position:absolute;content:'';bottom:0;width:0;height:0}.md .message-received{margin-left:calc(8px + var(--f7-safe-area-left))}.md .message-received .message-avatar+.message-content{margin-left:var(--f7-message-bubble-padding-horizontal)}.md .message-received.message-tail .message-bubble:before{border-left:8px solid transparent;border-right:0 solid transparent;border-bottom:8px solid var(--f7-message-received-bg-color);right:100%}.md .message-sent{margin-right:calc(8px + var(--f7-safe-area-right))}.md .message-sent .message-avatar+.message-content{margin-right:var(--f7-message-bubble-padding-horizontal)}.md .message-sent.message-tail .message-bubble:before{border-left:0 solid transparent;border-right:8px solid transparent;border-bottom:8px solid var(--f7-message-sent-bg-color,var(--f7-theme-color));left:100%}.md .message+.message:not(.message-first){margin-top:8px}.md .message-typing-indicator>div{width:6px;height:6px}.md .message-typing-indicator>div+div{margin-right:6px}.md .message-typing-indicator>div:nth-child(1){animation:md-message-typing-indicator .9s infinite}.md .message-typing-indicator>div:nth-child(2){animation:md-message-typing-indicator .9s 150ms infinite}.md .message-typing-indicator>div:nth-child(3){animation:md-message-typing-indicator .9s .3s infinite}@keyframes md-message-typing-indicator{0%{transform:translateY(0%)}25%{transform:translateY(-5px)}50%{transform:translateY(0%)}}.aurora .message-footer b,.aurora .message-header b,.aurora .message-name b,.aurora .messages-title b{font-weight:500}.aurora .message-header,.aurora .message-name{margin-bottom:2px}.aurora .message-footer{margin-top:2px}.aurora .message-text-header{margin-bottom:2px}.aurora .message-text-footer{margin-top:2px}.aurora .message-received.message-tail .message-bubble:before,.aurora .message-sent.message-tail .message-bubble:before{position:absolute;content:'';bottom:0;width:0;height:0}.aurora .message-image{margin:var(--f7-message-bubble-padding-vertical) calc(-1 * var(--f7-message-bubble-padding-horizontal) + 4px)}.aurora .message-image:first-child{margin-top:calc(-1 * var(--f7-message-bubble-padding-vertical) + 4px)}.aurora .message-image:first-child img{border-top-left-radius:var(--f7-message-bubble-border-radius);border-top-right-radius:var(--f7-message-bubble-border-radius)}.aurora .message-image:last-child{margin-bottom:calc(-1 * var(--f7-message-bubble-padding-vertical) + 4px)}.aurora .message-image:last-child img{border-bottom-left-radius:var(--f7-message-bubble-border-radius);border-bottom-right-radius:var(--f7-message-bubble-border-radius)}.aurora .message-received{margin-left:calc(16px + var(--f7-safe-area-left))}.aurora .message-received .message-avatar+.message-content{margin-left:5px}.aurora .message-received .message-footer,.aurora .message-received .message-header,.aurora .message-received .message-name{margin-left:var(--f7-message-bubble-padding-horizontal)}.aurora .message-received.message-tail .message-bubble:before{border-left:6px solid transparent;border-right:0 solid transparent;border-bottom:6px solid var(--f7-message-received-bg-color);right:100%;transform:translate(2px,0px) rotate(-15deg);transform-origin:right bottom}.aurora .message-sent{margin-right:calc(16px + var(--f7-safe-area-right))}.aurora .message-sent .message-avatar+.message-content{margin-right:5px}.aurora .message-sent .message-footer,.aurora .message-sent .message-header,.aurora .message-sent .message-name{margin-right:var(--f7-message-bubble-padding-horizontal)}.aurora .message-sent.message-tail .message-bubble:before{border-left:0 solid transparent;border-right:6px solid transparent;border-bottom:6px solid var(--f7-message-sent-bg-color,var(--f7-theme-color));left:100%;transform:translate(-2px,0px) rotate(15deg);transform-origin:left bottom}.aurora .message+.message:not(.message-first){margin-top:5px}.aurora .message-typing-indicator>div{width:6px;height:6px}.aurora .message-typing-indicator>div+div{margin-right:4px}.aurora .message-typing-indicator>div:nth-child(1){animation:aurora-message-typing-indicator .9s infinite}.aurora .message-typing-indicator>div:nth-child(2){animation:aurora-message-typing-indicator .9s 150ms infinite}.aurora .message-typing-indicator>div:nth-child(3){animation:aurora-message-typing-indicator .9s .3s infinite}@keyframes aurora-message-typing-indicator{0%{transform:translateY(0%)}50%{transform:translateY(-5px)}100%{transform:translateY(0%)}}:root{--f7-messagebar-shadow-image:none;--f7-messagebar-textarea-bg-color:transparent;--f7-messagebar-attachments-height:155px;--f7-messagebar-attachment-height:155px;--f7-messagebar-attachment-landscape-height:120px;--f7-messagebar-sheet-height:252px;--f7-messagebar-sheet-landscape-height:192px;--f7-messagebar-bg-color:#fff;--f7-messagebar-bg-color-rgb:255,255,255}:root .theme-dark,:root.theme-dark{--f7-messagebar-bg-color:var(--f7-bars-bg-color);--f7-messagebar-bg-color-rgb:var(--f7-bars-bg-color-rgb)}.ios{--f7-messagebar-height:44px;--f7-messagebar-font-size:17px;--f7-messagebar-border-color:transparent;--f7-messagebar-textarea-border-radius:17px;--f7-messagebar-textarea-padding:6px 16px;--f7-messagebar-textarea-height:34px;--f7-messagebar-textarea-font-size:17px;--f7-messagebar-textarea-line-height:20px;--f7-messagebar-sheet-bg-color:#d1d5da;--f7-messagebar-attachment-border-radius:12px;--f7-messagebar-textarea-text-color:#000;--f7-messagebar-textarea-border:1px solid #c8c8cd;--f7-messagebar-attachments-border-color:#c8c8cd}.ios .theme-dark,.ios.theme-dark{--f7-messagebar-textarea-text-color:#fff;--f7-messagebar-textarea-border:1px solid var(--f7-bars-border-color);--f7-messagebar-attachments-border-color:var(--f7-bars-border-color)}.md{--f7-messagebar-height:48px;--f7-messagebar-font-size:16px;--f7-messagebar-textarea-border-radius:0px;--f7-messagebar-textarea-padding:5px 8px;--f7-messagebar-textarea-height:32px;--f7-messagebar-textarea-font-size:16px;--f7-messagebar-textarea-line-height:22px;--f7-messagebar-textarea-border:1px solid transparent;--f7-messagebar-sheet-bg-color:#fff;--f7-messagebar-attachment-border-radius:4px;--f7-messagebar-link-color:#333;--f7-messagebar-border-color:#d1d1d1;--f7-messagebar-textarea-text-color:#333;--f7-messagebar-attachments-border-color:#ddd}.md .theme-dark,.md.theme-dark{--f7-messagebar-border-color:transparent;--f7-messagebar-link-color:rgba(255, 255, 255, 0.87);--f7-messagebar-textarea-text-color:rgba(255, 255, 255, 0.87);--f7-messagebar-attachments-border-color:rgba(255, 255, 255, 0.2)}.aurora{--f7-messagebar-height:38px;--f7-messagebar-font-size:14px;--f7-messagebar-border-color:transparent;--f7-messagebar-textarea-border-radius:12px;--f7-messagebar-textarea-padding:3px 10px;--f7-messagebar-textarea-height:24px;--f7-messagebar-textarea-font-size:13px;--f7-messagebar-textarea-line-height:16px;--f7-messagebar-sheet-bg-color:#fff;--f7-messagebar-attachment-border-radius:12px;--f7-messagebar-textarea-text-color:#000;--f7-messagebar-textarea-border:1px solid #c8c8cd;--f7-messagebar-attachments-border-color:#c8c8cd}.aurora .theme-dark,.aurora.theme-dark{--f7-messagebar-textarea-text-color:#fff;--f7-messagebar-textarea-border:1px solid var(--f7-bars-border-color);--f7-messagebar-attachments-border-color:var(--f7-bars-border-color)}.messagebar{transform:translate3d(0,0,0);background:var(--f7-messagebar-bg-color);height:auto;min-height:var(--f7-messagebar-height);font-size:var(--f7-messagebar-font-size);padding-bottom:var(--f7-safe-area-bottom);bottom:0}.messagebar:before{content:'';position:absolute;background-color:var(--f7-messagebar-border-color);display:block;z-index:15;top:0;right:auto;bottom:auto;left:0;height:1px;width:100%;transform-origin:50% 0%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.messagebar:after{content:'';position:absolute;right:0;width:100%;bottom:100%;height:8px;top:auto;pointer-events:none;background:var(--f7-messagebar-shadow-image);transform:translate3d(0,0,0)}@supports ((-webkit-backdrop-filter:blur(20px)) or (backdrop-filter:blur(20px))){.ios-translucent-bars .messagebar{background-color:rgba(var(--f7-messagebar-bg-color-rgb),var(--f7-bars-translucent-opacity));-webkit-backdrop-filter:saturate(180%) blur(var(--f7-bars-translucent-blur));backdrop-filter:saturate(180%) blur(var(--f7-bars-translucent-blur))}}.messagebar.no-border:before,.messagebar.no-hairline:before{display:none!important}.messagebar.no-shadow:after,.messagebar.toolbar-hidden:after{display:none!important}.messagebar .toolbar-inner{top:auto;position:relative;height:auto;bottom:auto;padding-left:calc(var(--f7-messagebar-inner-padding-left,var(--f7-toolbar-inner-padding-left)) + var(--f7-safe-area-left));padding-right:calc(var(--f7-messagebar-inner-padding-right,var(--f7-toolbar-inner-padding-right)) + var(--f7-safe-area-right));flex-direction:row-reverse}.messagebar.messagebar-sheet-visible>.toolbar-inner{bottom:0}.messagebar .messagebar-area{width:100%;flex-shrink:1;overflow:hidden;position:relative}.messagebar textarea{width:100%;flex-shrink:1;background-color:var(--f7-messagebar-textarea-bg-color);border-radius:var(--f7-messagebar-textarea-border-radius);padding:var(--f7-messagebar-textarea-padding);height:var(--f7-messagebar-textarea-height);color:var(--f7-messagebar-textarea-text-color);font-size:var(--f7-messagebar-textarea-font-size);line-height:var(--f7-messagebar-textarea-line-height);border:var(--f7-messagebar-textarea-border)}.messagebar a.link{align-self:flex-end;flex-shrink:0;color:var(--f7-messagebar-link-color,var(--f7-theme-color))}.messagebar-attachments{width:100%;overflow:auto;-webkit-overflow-scrolling:touch;font-size:0;white-space:nowrap;box-sizing:border-box;position:relative}.messagebar:not(.messagebar-attachments-visible) .messagebar-attachments{display:none}.messagebar-attachment{background-size:cover;background-position:center;background-repeat:no-repeat;display:inline-block;vertical-align:middle;white-space:normal;height:var(--f7-messagebar-attachment-height);position:relative;border-radius:var(--f7-messagebar-attachment-border-radius)}@media (orientation:landscape){.messagebar-attachment{height:var(--f7-messagebar-attachment-landscape-height)}}.messagebar-attachment img{display:block;width:auto;height:100%;border-radius:var(--f7-messagebar-attachment-border-radius)}.messagebar-attachment+.messagebar-attachment{margin-right:8px}.messagebar-sheet{overflow:auto;-webkit-overflow-scrolling:touch;display:flex;flex-wrap:wrap;flex-direction:column;align-content:flex-start;height:var(--f7-messagebar-sheet-height);background-color:var(--f7-messagebar-sheet-bg-color);padding-left:var(--f7-safe-area-left);padding-right:var(--f7-safe-area-right)}@media (orientation:landscape){.messagebar-sheet{height:var(--f7-messagebar-sheet-landscape-height)}}.messagebar-sheet-image,.messagebar-sheet-item{box-sizing:border-box;flex-shrink:0;margin-top:1px;position:relative;overflow:hidden;height:calc((var(--f7-messagebar-sheet-height) - 2px)/ 2);width:calc((var(--f7-messagebar-sheet-height) - 2px)/ 2);margin-right:1px}@media (orientation:landscape){.messagebar-sheet-image,.messagebar-sheet-item{width:calc((var(--f7-messagebar-sheet-landscape-height) - 2px)/ 2);height:calc((var(--f7-messagebar-sheet-landscape-height) - 2px)/ 2)}}.messagebar-sheet-image .icon-checkbox,.messagebar-sheet-image .icon-radio,.messagebar-sheet-item .icon-checkbox,.messagebar-sheet-item .icon-radio{position:absolute;right:8px;bottom:8px}.messagebar-sheet-image{background-size:cover;background-position:center;background-repeat:no-repeat}.messagebar-attachment-delete{display:block;position:absolute;border-radius:50%;box-sizing:border-box;cursor:pointer;box-shadow:0px 0px 2px rgba(0,0,0,.2)}.messagebar-attachment-delete:after,.messagebar-attachment-delete:before{position:absolute;content:'';left:50%;top:50%}.messagebar-attachment-delete:after{transform:rotate(45deg)}.messagebar-attachment-delete:before{transform:rotate(-45deg)}.messagebar:not(.messagebar-sheet-visible) .messagebar-sheet{display:none}.messagebar~*{--f7-page-toolbar-bottom-offset:var(--f7-messagebar-height)}.ios .messagebar a.link.icon-only:first-child{margin-left:-8px}.ios .messagebar a.link.icon-only:last-child{margin-right:-8px}.ios .messagebar a.link:not(.icon-only)+.messagebar-area{margin-left:8px}.ios .messagebar .messagebar-area+a.link:not(.icon-only){margin-left:8px}.ios .messagebar-area{margin-top:5px;margin-bottom:5px}.ios .messagebar-attachments{padding:5px;border-radius:var(--f7-messagebar-textarea-border-radius) var(--f7-messagebar-textarea-border-radius) 0 0;border:1px solid var(--f7-messagebar-attachments-border-color);border-bottom:none}.ios .messagebar-attachments-visible .messagebar-attachments+textarea{border-radius:0 0 var(--f7-messagebar-textarea-border-radius) var(--f7-messagebar-textarea-border-radius)}.ios .messagebar-attachment{font-size:14px}.ios .messagebar-attachment-delete{right:5px;top:5px;width:20px;height:20px;background:#7d7e80;border:2px solid #fff}.ios .messagebar-attachment-delete:after,.ios .messagebar-attachment-delete:before{width:10px;height:2px;background:#fff;margin-left:-5px;margin-top:-1px}.md .messagebar-attachments{padding:8px;border-bottom:1px solid var(--f7-messagebar-attachments-border-color)}.md .messagebar-area{margin-top:8px;margin-bottom:8px}.md .messagebar-sheet-image .icon-checkbox,.md .messagebar-sheet-item .icon-checkbox{border-color:#fff;background:rgba(255,255,255,.25);box-shadow:0px 0px 10px rgba(0,0,0,.5)}.md .messagebar-attachment-delete{right:8px;top:8px;width:24px;height:24px;background-color:var(--f7-theme-color);border-radius:4px}.md .messagebar-attachment-delete:after,.md .messagebar-attachment-delete:before{width:14px;height:2px;background:#fff;margin-left:-7px;margin-top:-1px}.aurora .messagebar a.link+.messagebar-area{margin-left:5px}.aurora .messagebar .messagebar-area+a.link{margin-left:5px}.aurora .messagebar-area{margin-top:5px;margin-bottom:5px}.aurora .messagebar-sheet-image .icon-checkbox,.aurora .messagebar-sheet-item .icon-checkbox{background:rgba(255,255,255,.25)}.aurora .messagebar-attachments{padding:5px;border-radius:var(--f7-messagebar-textarea-border-radius) var(--f7-messagebar-textarea-border-radius) 0 0;border:1px solid var(--f7-messagebar-attachments-border-color);border-bottom:none}.aurora .messagebar-attachments-visible .messagebar-attachments+textarea{border-radius:0 0 var(--f7-messagebar-textarea-border-radius) var(--f7-messagebar-textarea-border-radius)}.aurora .messagebar-attachment{font-size:14px}.aurora .messagebar-attachment-delete{right:5px;top:5px;width:14px;height:14px;background:grey}.aurora .messagebar-attachment-delete:after,.aurora .messagebar-attachment-delete:before{width:8px;height:1px;background:#fff;margin-left:-4px;margin-top:-1px}@font-face{font-family:swiper-icons;src:url("data:application/font-woff;charset=utf-8;base64, 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") format("woff");font-weight:400;font-style:normal}:root{--swiper-theme-color:#007aff}.swiper-container{margin-left:auto;margin-right:auto;position:relative;overflow:hidden;list-style:none;padding:0;z-index:1}.swiper-container-vertical>.swiper-wrapper{flex-direction:column}.swiper-wrapper{position:relative;width:100%;height:100%;z-index:1;display:flex;transition-property:transform;box-sizing:content-box}.swiper-container-android .swiper-slide,.swiper-wrapper{transform:translate3d(0px,0,0)}.swiper-container-multirow>.swiper-wrapper{flex-wrap:wrap}.swiper-container-multirow-column>.swiper-wrapper{flex-wrap:wrap;flex-direction:column}.swiper-container-free-mode>.swiper-wrapper{transition-timing-function:ease-out;margin:0 auto}.swiper-slide{flex-shrink:0;width:100%;height:100%;position:relative;transition-property:transform}.swiper-slide-invisible-blank{visibility:hidden}.swiper-container-autoheight,.swiper-container-autoheight .swiper-slide{height:auto}.swiper-container-autoheight .swiper-wrapper{align-items:flex-start;transition-property:transform,height}.swiper-container-3d{perspective:1200px}.swiper-container-3d .swiper-cube-shadow,.swiper-container-3d .swiper-slide,.swiper-container-3d .swiper-slide-shadow-bottom,.swiper-container-3d .swiper-slide-shadow-left,.swiper-container-3d .swiper-slide-shadow-right,.swiper-container-3d .swiper-slide-shadow-top,.swiper-container-3d .swiper-wrapper{transform-style:preserve-3d}.swiper-container-3d .swiper-slide-shadow-bottom,.swiper-container-3d .swiper-slide-shadow-left,.swiper-container-3d .swiper-slide-shadow-right,.swiper-container-3d .swiper-slide-shadow-top{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:10}.swiper-container-3d .swiper-slide-shadow-left{background-image:linear-gradient(to left,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-container-3d .swiper-slide-shadow-right{background-image:linear-gradient(to right,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-container-3d .swiper-slide-shadow-top{background-image:linear-gradient(to top,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-container-3d .swiper-slide-shadow-bottom{background-image:linear-gradient(to bottom,rgba(0,0,0,.5),rgba(0,0,0,0))}.swiper-container-css-mode>.swiper-wrapper{overflow:auto;scrollbar-width:none;-ms-overflow-style:none}.swiper-container-css-mode>.swiper-wrapper::-webkit-scrollbar{display:none}.swiper-container-css-mode>.swiper-wrapper>.swiper-slide{scroll-snap-align:start start}.swiper-container-horizontal.swiper-container-css-mode>.swiper-wrapper{scroll-snap-type:x mandatory}.swiper-container-vertical.swiper-container-css-mode>.swiper-wrapper{scroll-snap-type:y mandatory}.swiper-container .swiper-notification{position:absolute;left:0;top:0;pointer-events:none;opacity:0;z-index:-1000}.swiper-container-cube{overflow:visible}.swiper-container-cube .swiper-slide{pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1;visibility:hidden;transform-origin:0 0;width:100%;height:100%}.swiper-container-cube .swiper-slide .swiper-slide{pointer-events:none}.swiper-container-cube.swiper-container-rtl .swiper-slide{transform-origin:100% 0}.swiper-container-cube .swiper-slide-active,.swiper-container-cube .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-container-cube .swiper-slide-active,.swiper-container-cube .swiper-slide-next,.swiper-container-cube .swiper-slide-next+.swiper-slide,.swiper-container-cube .swiper-slide-prev{pointer-events:auto;visibility:visible}.swiper-container-cube .swiper-slide-shadow-bottom,.swiper-container-cube .swiper-slide-shadow-left,.swiper-container-cube .swiper-slide-shadow-right,.swiper-container-cube .swiper-slide-shadow-top{z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-container-cube .swiper-cube-shadow{position:absolute;left:0;bottom:0px;width:100%;height:100%;background:#000;opacity:.6;-webkit-filter:blur(50px);filter:blur(50px);z-index:0}.swiper-container-fade.swiper-container-free-mode .swiper-slide{transition-timing-function:ease-out}.swiper-container-fade .swiper-slide{pointer-events:none;transition-property:opacity}.swiper-container-fade .swiper-slide .swiper-slide{pointer-events:none}.swiper-container-fade .swiper-slide-active,.swiper-container-fade .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-container-flip{overflow:visible}.swiper-container-flip .swiper-slide{pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:1}.swiper-container-flip .swiper-slide .swiper-slide{pointer-events:none}.swiper-container-flip .swiper-slide-active,.swiper-container-flip .swiper-slide-active .swiper-slide-active{pointer-events:auto}.swiper-container-flip .swiper-slide-shadow-bottom,.swiper-container-flip .swiper-slide-shadow-left,.swiper-container-flip .swiper-slide-shadow-right,.swiper-container-flip .swiper-slide-shadow-top{z-index:0;-webkit-backface-visibility:hidden;backface-visibility:hidden}.swiper-lazy-preloader{width:42px;height:42px;position:absolute;left:50%;top:50%;margin-left:-21px;margin-top:-21px;z-index:10;transform-origin:50%;animation:swiper-preloader-spin 1s infinite linear;box-sizing:border-box;border:4px solid var(--swiper-preloader-color,var(--swiper-theme-color));border-radius:50%;border-top-color:transparent}.swiper-lazy-preloader-white{--swiper-preloader-color:#fff}.swiper-lazy-preloader-black{--swiper-preloader-color:#000}@keyframes swiper-preloader-spin{100%{transform:rotate(360deg)}}:root{--swiper-navigation-size:44px}.swiper-button-next,.swiper-button-prev{position:absolute;top:50%;width:calc(var(--swiper-navigation-size)/ 44 * 27);height:var(--swiper-navigation-size);margin-top:calc(-1 * var(--swiper-navigation-size)/ 2);z-index:10;cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--swiper-navigation-color,var(--swiper-theme-color))}.swiper-button-next.swiper-button-disabled,.swiper-button-prev.swiper-button-disabled{opacity:.35;cursor:auto;pointer-events:none}.swiper-button-next:after,.swiper-button-prev:after{font-family:swiper-icons;font-size:var(--swiper-navigation-size);text-transform:none!important;letter-spacing:0;text-transform:none;font-variant:initial;line-height:1}.swiper-button-prev,.swiper-container-rtl .swiper-button-next{left:10px;right:auto}.swiper-button-prev:after,.swiper-container-rtl .swiper-button-next:after{content:'prev'}.swiper-button-next,.swiper-container-rtl .swiper-button-prev{right:10px;left:auto}.swiper-button-next:after,.swiper-container-rtl .swiper-button-prev:after{content:'next'}.swiper-button-lock{display:none}.swiper-pagination{position:absolute;text-align:center;transition:.3s opacity;transform:translate3d(0,0,0);z-index:10}.swiper-pagination.swiper-pagination-hidden{opacity:0}.swiper-container-horizontal>.swiper-pagination-bullets,.swiper-pagination-custom,.swiper-pagination-fraction{bottom:10px;left:0;width:100%}.swiper-pagination-bullets-dynamic{overflow:hidden;font-size:0}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transform:scale(.33);position:relative}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-main{transform:scale(1)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-prev-prev{transform:scale(.33)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next{transform:scale(.66)}.swiper-pagination-bullets-dynamic .swiper-pagination-bullet-active-next-next{transform:scale(.33)}.swiper-pagination-bullet{width:8px;height:8px;display:inline-block;border-radius:100%;background:#000;opacity:.2}button.swiper-pagination-bullet{border:none;margin:0;padding:0;box-shadow:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.swiper-pagination-clickable .swiper-pagination-bullet{cursor:pointer}.swiper-pagination-bullet-active{opacity:1;background:var(--swiper-pagination-color,var(--swiper-theme-color))}.swiper-container-vertical>.swiper-pagination-bullets{right:10px;top:50%;transform:translate3d(0px,-50%,0)}.swiper-container-vertical>.swiper-pagination-bullets .swiper-pagination-bullet{margin:6px 0;display:block}.swiper-container-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{top:50%;transform:translateY(-50%);width:8px}.swiper-container-vertical>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{display:inline-block;transition:.2s transform,.2s top}.swiper-container-horizontal>.swiper-pagination-bullets .swiper-pagination-bullet{margin:0 4px}.swiper-container-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic{left:50%;transform:translateX(-50%);white-space:nowrap}.swiper-container-horizontal>.swiper-pagination-bullets.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s left}.swiper-container-horizontal.swiper-container-rtl>.swiper-pagination-bullets-dynamic .swiper-pagination-bullet{transition:.2s transform,.2s right}.swiper-pagination-progressbar{background:rgba(0,0,0,.25);position:absolute}.swiper-pagination-progressbar .swiper-pagination-progressbar-fill{background:var(--swiper-pagination-color,var(--swiper-theme-color));position:absolute;left:0;top:0;width:100%;height:100%;transform:scale(0);transform-origin:left top}.swiper-container-rtl .swiper-pagination-progressbar .swiper-pagination-progressbar-fill{transform-origin:right top}.swiper-container-horizontal>.swiper-pagination-progressbar,.swiper-container-vertical>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite{width:100%;height:4px;left:0;top:0}.swiper-container-horizontal>.swiper-pagination-progressbar.swiper-pagination-progressbar-opposite,.swiper-container-vertical>.swiper-pagination-progressbar{width:4px;height:100%;left:0;top:0}.swiper-pagination-lock{display:none}.swiper-scrollbar{border-radius:10px;position:relative;-ms-touch-action:none;background:rgba(0,0,0,.1)}.swiper-container-horizontal>.swiper-scrollbar{position:absolute;left:1%;bottom:3px;z-index:50;height:5px;width:98%}.swiper-container-vertical>.swiper-scrollbar{position:absolute;right:3px;top:1%;z-index:50;width:5px;height:98%}.swiper-scrollbar-drag{height:100%;width:100%;position:relative;background:rgba(0,0,0,.5);border-radius:10px;left:0;top:0}.swiper-scrollbar-cursor-drag{cursor:move}.swiper-scrollbar-lock{display:none}.swiper-zoom-container{width:100%;height:100%;display:flex;justify-content:center;align-items:center;text-align:center}.swiper-zoom-container>canvas,.swiper-zoom-container>img,.swiper-zoom-container>svg{max-width:100%;max-height:100%;object-fit:contain}.swiper-slide-zoomed{cursor:move}:root{--swiper-theme-color:var(--f7-theme-color)}:root{--f7-photobrowser-bg-color:#fff;--f7-photobrowser-bars-bg-image:none;--f7-photobrowser-caption-font-size:14px;--f7-photobrowser-caption-light-text-color:#000;--f7-photobrowser-caption-light-bg-color:rgba(255, 255, 255, 0.8);--f7-photobrowser-caption-dark-text-color:#fff;--f7-photobrowser-caption-dark-bg-color:rgba(0, 0, 0, 0.8);--f7-photobrowser-exposed-bg-color:#000;--f7-photobrowser-dark-bg-color:#000;--f7-photobrowser-dark-bars-bg-color:rgba(27, 27, 27, 0.8);--f7-photobrowser-dark-bars-text-color:#fff;--f7-photobrowser-dark-bars-link-color:#fff}.photo-browser{position:absolute;left:0;top:0;width:100%;height:100%;z-index:400}.photo-browser-standalone.modal-in{transition-duration:0s;animation:photo-browser-in .4s}.photo-browser-standalone.modal-out{transition-duration:0s;animation:photo-browser-out .4s!important}.photo-browser-standalone.modal-out.swipe-close-to-bottom,.photo-browser-standalone.modal-out.swipe-close-to-top{animation:none!important}.photo-browser-standalone.photo-browser-transitioning{transition:.4s;transition-property:transform;animation:none!important}.photo-browser-popup.modal-out.swipe-close-to-bottom,.photo-browser-popup.modal-out.swipe-close-to-top{transition-duration:.3s}.photo-browser-popup.modal-out.swipe-close-to-bottom{transform:translate3d(0,100vh,0)}.photo-browser-popup.modal-out.swipe-close-to-top{transform:translate3d(0,-100vh,0)}.photo-browser-page{background:0 0}.photo-browser-page .toolbar{transform:none}.photo-browser-popup{background:0 0}.photo-browser-of{margin:0 5px}.photo-browser-captions{pointer-events:none;position:absolute;left:0;width:100%;bottom:var(--f7-safe-area-bottom);z-index:10;opacity:1;transition:.4s}.photo-browser-captions.photo-browser-captions-exposed{opacity:0}.toolbar~.photo-browser-captions{bottom:calc(var(--f7-toolbar-height) + var(--f7-safe-area-bottom));transform:translate3d(0,0px,0)}.toolbar~.photo-browser-captions.photo-browser-captions-exposed{transform:translate3d(0,0px,0)}.photo-browser-caption{box-sizing:border-box;transition:.3s;position:absolute;bottom:0;left:0;opacity:0;padding:4px 5px;width:100%;text-align:center;font-size:var(--f7-photobrowser-caption-font-size)}.photo-browser-caption:empty{display:none}.photo-browser-caption.photo-browser-caption-active{opacity:1}.photo-browser-captions-light .photo-browser-caption{color:var(--f7-photobrowser-caption-light-text-color);background:var(--f7-photobrowser-caption-light-bg-color)}.photo-browser-captions-dark .photo-browser-caption{color:var(--f7-photobrowser-caption-dark-text-color);background:var(--f7-photobrowser-caption-dark-bg-color)}.photo-browser-swiper-container{position:absolute;left:0;top:0;width:100%;height:100%;overflow:hidden;background:var(--f7-photobrowser-bg-color);transition:.4s;transition-property:background-color}.photo-browser-next.swiper-button-disabled,.photo-browser-prev.swiper-button-disabled{opacity:.3;pointer-events:none}.photo-browser-slide{width:100%;height:100%;position:relative;overflow:hidden;display:flex;justify-content:center;align-items:center;flex-shrink:0;box-sizing:border-box}.photo-browser-slide span.swiper-zoom-container{display:none}.photo-browser-slide img{width:auto;height:auto;max-width:100%;max-height:100%;display:none}.photo-browser-slide.swiper-slide-active span.swiper-zoom-container,.photo-browser-slide.swiper-slide-next span.swiper-zoom-container,.photo-browser-slide.swiper-slide-prev span.swiper-zoom-container{display:flex}.photo-browser-slide.swiper-slide-active img,.photo-browser-slide.swiper-slide-next img,.photo-browser-slide.swiper-slide-prev img{display:inline}.photo-browser-slide.swiper-slide-active.photo-browser-slide-lazy .preloader,.photo-browser-slide.swiper-slide-next.photo-browser-slide-lazy .preloader,.photo-browser-slide.swiper-slide-prev.photo-browser-slide-lazy .preloader{display:block}.photo-browser-slide iframe{width:100%;height:100%}.photo-browser-slide .preloader{display:none;position:absolute;width:42px;height:42px;margin-left:-21px;margin-top:-21px;left:50%;top:50%}.navbar-photo-browser .navbar-bg,.photo-browser-page .navbar-bg,.photo-browser-page .toolbar{background-color:var(--f7-photobrowser-bars-bg-color,rgba(var(--f7-bars-bg-color-rgb),.95));background-image:var(--f7-photobrowser-bars-bg-image)}.photo-browser-page .navbar,.photo-browser-page .toolbar{transition:.4s;color:var(--f7-photobrowser-bars-text-color,var(--f7-bars-text-color))}.photo-browser-page .navbar a,.photo-browser-page .toolbar a{color:var(--f7-photobrowser-bars-link-color,var(--f7-bars-link-color,var(--f7-theme-color)))}.photo-browser-exposed .navbar,.photo-browser-exposed .toolbar{opacity:0;visibility:hidden;pointer-events:none}.photo-browser-exposed .toolbar~.photo-browser-captions{transform:translate3d(0,var(--f7-toolbar-height),0)}.photo-browser-exposed .photo-browser-swiper-container{background:var(--f7-photobrowser-exposed-bg-color)}.photo-browser-exposed .photo-browser-caption{color:var(--f7-photobrowser-caption-dark-text-color);background:var(--f7-photobrowser-caption-dark-bg-color)}.view.with-photo-browser-page-exposed .navbar{opacity:0;pointer-events:none}.navbar-photo-browser-dark .navbar-bg,.photo-browser-page-dark .navbar-bg,.photo-browser-page-dark .toolbar{background:var(--f7-photobrowser-dark-bars-bg-color)}.navbar-photo-browser-dark .navbar-bg:after,.navbar-photo-browser-dark .navbar-bg:before,.photo-browser-page-dark .navbar-bg:after,.photo-browser-page-dark .navbar-bg:before,.photo-browser-page-dark .toolbar:after,.photo-browser-page-dark .toolbar:before{display:none!important}.navbar-photo-browser-dark,.photo-browser-dark .navbar,.photo-browser-dark .toolbar,.photo-browser-dark-page .navbar,.photo-browser-dark-page .toolbar{--f7-touch-ripple-color:var(--f7-touch-ripple-white);--f7-link-highlight-color:var(--f7-link-highlight-white);color:var(--f7-photobrowser-dark-bars-text-color)}.navbar-photo-browser-dark a,.photo-browser-dark .navbar a,.photo-browser-dark .toolbar a,.photo-browser-dark-page .navbar a,.photo-browser-dark-page .toolbar a{color:var(--f7-photobrowser-dark-bars-link-color)}.photo-browser-dark .photo-browser-swiper-container,.photo-browser-page-dark .photo-browser-swiper-container{background:var(--f7-photobrowser-dark-bg-color)}@keyframes photo-browser-in{0%{transform:translate3d(0,0,0) scale(.5);opacity:0}50%{transform:translate3d(0,0,0) scale(1.05);opacity:1}100%{transform:translate3d(0,0,0) scale(1);opacity:1}}@keyframes photo-browser-out{0%{transform:translate3d(0,0,0) scale(1);opacity:1}50%{transform:translate3d(0,0,0) scale(1.05);opacity:1}100%{transform:translate3d(0,0,0) scale(.5);opacity:0}}:root{--f7-notification-max-width:568px;--f7-notification-subtitle-text-transform:none;--f7-notification-subtitle-line-height:1.35;--f7-notification-text-text-transform:none;--f7-notification-text-font-weight:400}:root .theme-dark,:root.theme-dark{--f7-notification-subtitle-color:#fff}.ios{--f7-notification-margin:8px;--f7-notification-padding:10px;--f7-notification-border-radius:12px;--f7-notification-box-shadow:0px 5px 25px -10px rgba(0, 0, 0, 0.7);--f7-notification-icon-size:20px;--f7-notification-title-font-size:13px;--f7-notification-title-text-transform:uppercase;--f7-notification-title-line-height:1.4;--f7-notification-title-font-weight:400;--f7-notification-title-letter-spacing:0.02em;--f7-notification-title-right-font-size:13px;--f7-notification-subtitle-font-size:15px;--f7-notification-subtitle-font-weight:600;--f7-notification-text-font-size:15px;--f7-notification-text-line-height:1.2;--f7-notification-bg-color:rgba(250, 250, 250, 0.95);--f7-notification-bg-color-rgb:255,255,255;--f7-notification-title-color:#000;--f7-notification-title-right-color:rgba(0, 0, 0, 0.45);--f7-notification-subtitle-color:#000;--f7-notification-text-color:#000}.ios .theme-dark,.ios.theme-dark{--f7-notification-bg-color:rgba(30, 30, 30, 0.95);--f7-notification-bg-color-rgb:30,30,30;--f7-notification-title-color:#fff;--f7-notification-text-color:#fff;--f7-notification-title-right-color:rgba(255, 255, 255, 0.55)}.md{--f7-notification-margin:0px;--f7-notification-padding:16px;--f7-notification-border-radius:0px;--f7-notification-box-shadow:0 2px 4px rgba(0, 0, 0, 0.22),0 1px 2px rgba(0, 0, 0, 0.24);--f7-notification-icon-size:16px;--f7-notification-title-color:var(--f7-theme-color);--f7-notification-title-font-size:12px;--f7-notification-title-text-transform:none;--f7-notification-title-line-height:1;--f7-notification-title-font-weight:400;--f7-notification-title-right-font-size:12px;--f7-notification-subtitle-font-size:14px;--f7-notification-subtitle-font-weight:400;--f7-notification-text-font-size:14px;--f7-notification-text-line-height:1.35;--f7-notification-bg-color:#fff;--f7-notification-title-right-color:rgba(0, 0, 0, 0.54);--f7-notification-subtitle-color:#212121;--f7-notification-text-color:rgba(0, 0, 0, 0.54)}.md .theme-dark,.md.theme-dark{--f7-notification-bg-color:#242424;--f7-notification-title-right-color:rgba(255, 255, 255, 0.54);--f7-notification-text-color:rgba(255, 255, 255, 0.54)}.aurora{--f7-notification-margin:10px;--f7-notification-padding:10px;--f7-notification-border-radius:4px;--f7-notification-box-shadow:0px 5px 25px -10px rgba(0, 0, 0, 0.7);--f7-notification-icon-size:18px;--f7-notification-title-font-size:13px;--f7-notification-title-text-transform:uppercase;--f7-notification-title-line-height:1.4;--f7-notification-title-font-weight:500;--f7-notification-title-letter-spacing:0.02em;--f7-notification-title-right-font-size:13px;--f7-notification-subtitle-font-size:12px;--f7-notification-subtitle-font-weight:600;--f7-notification-text-font-size:12px;--f7-notification-text-line-height:1.2;--f7-notification-bg-color:#fff;--f7-notification-title-color:#000;--f7-notification-title-right-color:rgba(255, 255, 255, 0.6);--f7-notification-subtitle-color:#000;--f7-notification-text-color:#000}.aurora .theme-dark,.aurora.theme-dark{--f7-notification-bg-color:#242424;--f7-notification-title-color:#fff;--f7-notification-text-color:#fff;--f7-notification-title-right-color:rgba(255, 255, 255, 0.54)}.notification{--f7-link-highlight-color:var(--f7-link-highlight-black);--f7-touch-ripple-color:var(--f7-touch-ripple-black);position:absolute;left:var(--f7-notification-margin);top:var(--f7-notification-margin);width:calc(100% - var(--f7-notification-margin) * 2);z-index:20000;font-size:14px;margin:0;border:none;display:none;box-sizing:border-box;transition-property:transform;direction:ltr;max-width:var(--f7-notification-max-width);padding:var(--f7-notification-padding);border-radius:var(--f7-notification-border-radius);box-shadow:var(--f7-notification-box-shadow);background:var(--f7-notification-bg-color);margin-top:var(--f7-safe-area-top)}@supports ((-webkit-backdrop-filter:blur(20px)) or (backdrop-filter:blur(20px))){.ios-translucent-modals .notification{background-color:rgba(var(--f7-notification-bg-color-rgb),.8);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}}@media (min-width:568px){.notification{left:50%;width:var(--f7-notification-max-width);margin-left:calc(-1 * var(--f7-notification-max-width)/ 2)}}.notification-title{color:var(--f7-notification-title-color,var(--f7-theme-color));font-size:var(--f7-notification-title-font-size);text-transform:var(--f7-notification-title-text-transform);line-height:var(--f7-notification-title-line-height);font-weight:var(--f7-notification-title-font-weight);letter-spacing:var(--f7-notification-title-letter-spacing)}.notification-subtitle{color:var(--f7-notification-subtitle-color);font-size:var(--f7-notification-subtitle-font-size);text-transform:var(--f7-notification-subtitle-text-transform);line-height:var(--f7-notification-subtitle-line-height);font-weight:var(--f7-notification-subtitle-font-weight)}.notification-text{color:var(--f7-notification-text-color);font-size:var(--f7-notification-text-font-size);text-transform:var(--f7-notification-text-text-transform);line-height:var(--f7-notification-text-line-height);font-weight:var(--f7-notification-text-font-weight)}.notification-title-right-text{color:var(--f7-notification-title-right-color);font-size:var(--f7-notification-title-right-font-size)}.notification-icon{font-size:0;line-height:var(--f7-notification-icon-size)}.notification-icon,.notification-icon i{width:var(--f7-notification-icon-size)!important;height:var(--f7-notification-icon-size)!important}.notification-icon i{font-size:var(--f7-notification-icon-size)}.notification-icon img{height:var(--f7-notification-icon-size)}.notification-header{display:flex;justify-content:flex-start;align-items:center}.notification-close-button{margin-left:auto;cursor:pointer;position:relative}.notification-close-button:after{font-family:framework7-core-icons;font-weight:400;font-style:normal;line-height:1;letter-spacing:normal;text-transform:none;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;font-feature-settings:"liga";display:block;width:100%;height:100%;font-size:20px;position:absolute;left:50%;top:50%;text-align:center}.ios .notification{transition-duration:450ms;transform:translate3d(0%,-200%,0)}.ios .notification.modal-in{transform:translate3d(0%,0%,0);opacity:1}.ios .notification.modal-out{transform:translate3d(0%,-200%,0)}.ios .notification-icon{margin-right:8px}.ios .notification-header+.notification-content{margin-top:10px}.ios .notification-title-right-text{margin-right:6px;margin-left:auto}.ios .notification-title-right-text+.notification-close-button{margin-left:10px}.ios .notification-close-button{font-size:14px;width:20px;height:20px;opacity:.3;transition-duration:.3s}.ios .notification-close-button.active-state{transition-duration:0s;opacity:.1}.ios .notification-close-button:after{color:#000;content:'notification_close_ios';font-size:.65em;line-height:44px;width:44px;height:44px;margin-left:-22px;margin-top:-22px}.ios .theme-dark .notification-close-button:after,.ios.theme-dark .notification-close-button:after{color:#fff}.md .notification{transform:translate3d(0,-150%,0)}.md .notification.modal-in{transition-duration:0s;animation:notification-md-in .4s ease-out;transform:translate3d(0,0%,0)}.md .notification.modal-in.notification-transitioning{transition-duration:.2s}.md .notification.modal-out{animation:none;transition-duration:.2s;transition-timing-function:ease-in;transform:translate3d(0,-150%,0)}.md .notification-icon{margin-right:8px}.md .notification-subtitle+.notification-text{margin-top:2px}.md .notification-header+.notification-content{margin-top:6px}.md .notification-title-right-text{margin-left:4px}.md .notification-title-right-text:before{content:'';width:3px;height:3px;border-radius:50%;display:inline-block;vertical-align:middle;margin-right:4px;background:var(--f7-notification-title-right-color)}.md .notification-close-button{width:16px;height:16px;transition-duration:.3s}.md .notification-close-button:before{content:'';width:152%;height:152%;position:absolute;left:-26%;top:-26%;background-image:radial-gradient(circle at center,var(--f7-link-highlight-color) 66%,rgba(255,255,255,0) 66%);background-repeat:no-repeat;background-position:center;background-size:100% 100%;opacity:0;pointer-events:none;transition-duration:.6s}.md .notification-close-button.active-state:before{opacity:1;transition-duration:150ms}.md .notification-close-button:after,.md .notification-close-button:before{width:48px;height:48px;left:50%;top:50%;margin-left:-24px;margin-top:-24px}.md .notification-close-button:after{color:#737373;content:'delete_md';line-height:48px;font-size:14px}@keyframes notification-md-in{0%{transform:translate3d(0,-150%,0)}50%{transform:translate3d(0,10%,0)}100%{transform:translate3d(0,0%,0)}}.aurora .notification{transition-duration:450ms;transform:translate3d(0%,-200%,0)}.aurora .notification.modal-in{transform:translate3d(0%,0%,0);opacity:1}.aurora .notification.modal-out{transform:translate3d(0%,-200%,0)}.aurora .notification-icon{margin-right:10px}.aurora .notification-header+.notification-content{margin-top:10px}.aurora .notification-title-right-text{margin-right:0px;margin-left:auto}.aurora .notification-title-right-text+.notification-close-button{margin-left:10px}.aurora .notification-close-button{font-size:14px;width:16px;height:16px;opacity:.4;transition-duration:.3s}.aurora .notification-close-button.active-state{transition-duration:0s;opacity:.6}.aurora .notification-close-button:after{color:#000;content:'notification_close_ios';font-size:.5em;line-height:38px;width:38px;height:38px;margin-left:-19px;margin-top:-19px}.aurora .theme-dark .notification-close-button:after,.aurora.theme-dark .notification-close-button:after{color:#fff}:root{--f7-autocomplete-dropdown-placeholder-color:#a9a9a9;--f7-autocomplete-dropdown-preloader-size:20px;--f7-autocomplete-dropdown-bg-color:#fff}:root .theme-dark,:root.theme-dark{--f7-autocomplete-dropdown-bg-color:#1c1c1d}.ios{--f7-autocomplete-dropdown-box-shadow:0px 3px 3px rgba(0, 0, 0, 0.2);--f7-autocomplete-dropdown-text-matching-font-weight:600;--f7-autocomplete-dropdown-font-size:var(--f7-list-font-size);--f7-autocomplete-dropdown-text-color:#000;--f7-autocomplete-dropdown-text-matching-color:#000}.ios .theme-dark,.ios.theme-dark{--f7-autocomplete-dropdown-text-color:#fff;--f7-autocomplete-dropdown-text-matching-color:#fff}.md{--f7-autocomplete-dropdown-box-shadow:0 2px 2px rgba(0, 0, 0, 0.25);--f7-autocomplete-dropdown-text-matching-font-weight:400;--f7-autocomplete-dropdown-font-size:var(--f7-list-font-size);--f7-autocomplete-dropdown-text-color:rgba(0, 0, 0, 0.54);--f7-autocomplete-dropdown-text-matching-color:#212121}.md .theme-dark,.md.theme-dark{--f7-autocomplete-dropdown-text-color:rgba(255, 255, 255, 0.54);--f7-autocomplete-dropdown-text-matching-color:rgba(255, 255, 255, 0.87)}.aurora{--f7-autocomplete-dropdown-box-shadow:0px 1px 2px rgba(0, 0, 0, 0.2);--f7-autocomplete-dropdown-text-matching-font-weight:700;--f7-autocomplete-dropdown-font-size:13px;--f7-autocomplete-dropdown-text-color:#000;--f7-autocomplete-dropdown-text-matching-color:#000}.aurora .theme-dark,.aurora.theme-dark{--f7-autocomplete-dropdown-text-color:#fff;--f7-autocomplete-dropdown-text-matching-color:#fff}.autocomplete-page .autocomplete-found{display:block}.autocomplete-page .autocomplete-not-found{display:none}.autocomplete-page .autocomplete-values{display:block}.autocomplete-page .list ul:empty{display:none}.autocomplete-preloader:not(.autocomplete-preloader-visible){visibility:hidden}.autocomplete-preloader:not(.autocomplete-preloader-visible),.autocomplete-preloader:not(.autocomplete-preloader-visible) *{animation:none}.autocomplete-dropdown{background:var(--f7-autocomplete-dropdown-bg-color);box-shadow:var(--f7-autocomplete-dropdown-box-shadow);box-sizing:border-box;position:absolute;z-index:500;width:100%;right:0}.autocomplete-dropdown .autocomplete-dropdown-inner{position:relative;overflow:auto;-webkit-overflow-scrolling:touch;height:100%;z-index:1}.autocomplete-dropdown .autocomplete-preloader{display:none;position:absolute;bottom:100%;width:var(--f7-autocomplete-dropdown-preloader-size);height:var(--f7-autocomplete-dropdown-preloader-size)}.autocomplete-dropdown .autocomplete-preloader-visible{display:block}.autocomplete-dropdown .autocomplete-dropdown-placeholder{color:var(--f7-autocomplete-dropdown-placeholder-color)}.autocomplete-dropdown .list{margin:0;color:var(--f7-autocomplete-dropdown-text-color);font-size:var(--f7-autocomplete-dropdown-font-size)}.autocomplete-dropdown .list b{color:var(--f7-autocomplete-dropdown-text-matching-color);font-weight:var(--f7-autocomplete-dropdown-text-matching-font-weight)}.autocomplete-dropdown .list ul{background:0 0!important}.autocomplete-dropdown .list ul:after,.autocomplete-dropdown .list ul:before{display:none!important}.autocomplete-dropdown .autocomplete-dropdown-selected{background:var(--f7-autocomplete-dropdown-selected-bg-color,rgba(var(--f7-theme-color-rgb),.2))}.searchbar-input-wrap .autocomplete-dropdown{background-color:var(--f7-searchbar-input-bg-color,var(--f7-searchbar-bg-color));border-radius:var(--f7-searchbar-input-border-radius)}.searchbar-input-wrap .autocomplete-dropdown .autocomplete-dropdown-placeholder{color:var(--f7-searchbar-placeholder-color)}.searchbar-input-wrap .autocomplete-dropdown li:last-child{border-radius:0 0 var(--f7-searchbar-input-border-radius) var(--f7-searchbar-input-border-radius);position:relative;overflow:hidden}.searchbar-input-wrap .autocomplete-dropdown .item-content{padding-right:calc(var(--f7-searchbar-input-padding-horizontal) + var(--f7-searchbar-input-extra-padding-left))}.list .item-content-dropdown-expanded .item-title.item-label{width:0;flex-shrink:10;overflow:hidden}.list .item-content-dropdown-expanded .item-title.item-label+.item-input-wrap{margin-right:0}.list .item-content-dropdown-expanded .item-input-wrap{width:100%}.ios .autocomplete-dropdown .autocomplete-preloader{left:16px;margin-bottom:12px}.ios .searchbar-input-wrap .autocomplete-dropdown{margin-top:calc(-1 * var(--f7-searchbar-input-height));top:100%;z-index:20}.ios .searchbar-input-wrap .autocomplete-dropdown .autocomplete-dropdown-inner{padding-top:var(--f7-searchbar-input-height)}.md .autocomplete-page .navbar .autocomplete-preloader{margin-left:8px}.md .autocomplete-popup .navbar .autocomplete-preloader{margin-right:8px;margin-left:16px}.md .autocomplete-dropdown .autocomplete-preloader{left:16px;margin-bottom:8px}.md .autocomplete-dropdown .autocomplete-preloader .preloader-inner-gap,.md .autocomplete-dropdown .autocomplete-preloader .preloader-inner-half-circle{border-width:3px}.aurora .autocomplete-dropdown .autocomplete-preloader{left:16px;margin-bottom:2px}.aurora .searchbar-input-wrap .autocomplete-dropdown{margin-top:calc(-1 * var(--f7-searchbar-input-height));top:100%;z-index:20}.aurora .searchbar-input-wrap .autocomplete-dropdown .autocomplete-dropdown-inner{padding-top:var(--f7-searchbar-input-height)}:root{--f7-tooltip-bg-color:rgba(0, 0, 0, 0.87);--f7-tooltip-text-color:#fff;--f7-tooltip-border-radius:4px;--f7-tooltip-padding:8px 16px;--f7-tooltip-font-size:14px;--f7-tooltip-font-weight:500;--f7-tooltip-desktop-padding:6px 8px;--f7-tooltip-desktop-font-size:12px}.tooltip{position:absolute;z-index:20000;background:var(--f7-tooltip-bg-color);border-radius:var(--f7-tooltip-border-radius);padding:var(--f7-tooltip-padding);color:var(--f7-tooltip-text-color);font-size:var(--f7-tooltip-font-size);font-weight:var(--f7-tooltip-font-weight);box-sizing:border-box;line-height:1.2;opacity:0;transform:scale(.9);transition-duration:150ms;transition-property:opacity,transform;z-index:99000}.tooltip.tooltip-in{transform:scale(1);opacity:1}.tooltip.tooltip-out{opacity:0;transform:scale(1)}.device-desktop .tooltip{font-size:var(--f7-tooltip-desktop-font-size);padding:var(--f7-tooltip-desktop-padding)}.gauge{position:relative;text-align:center;margin-left:auto;margin-right:auto;display:inline-block}.gauge svg,.gauge-svg{max-width:100%;height:auto}.gauge svg circle,.gauge svg path,.gauge-svg circle,.gauge-svg path{transition-duration:.4s}:root{--f7-skeleton-color:#ccc}.theme-dark{--f7-skeleton-color:#515151}.skeleton-text{font-family:framework7-skeleton!important}.skeleton-text,.skeleton-text *{color:var(--f7-skeleton-color)!important;font-weight:400!important;font-style:normal!important;letter-spacing:-.015em!important}.skeleton-block{height:1em;background:var(--f7-skeleton-color)!important;width:100%}.skeleton-effect-fade{animation:skeleton-effect-fade 1s infinite}.skeleton-effect-blink{-webkit-mask-image:linear-gradient(to right,transparent 0%,#000 25%,#000 75%,transparent 100%);mask-image:linear-gradient(to right,transparent 0%,#000 25%,#000 75%,transparent 100%);-webkit-mask-size:200% 100%;mask-size:200% 100%;-webkit-mask-repeat:repeat;mask-repeat:repeat;-webkit-mask-position:50% top;mask-position:50% top;animation:skeleton-effect-blink 1s infinite}.skeleton-effect-pulse{animation:skeleton-effect-pulse 1s infinite}@keyframes skeleton-effect-fade{0%{opacity:1}50%{opacity:.2}100%{opacity:1}}@keyframes skeleton-effect-blink{0%{-webkit-mask-position:50% top;mask-position:50% top}100%{-webkit-mask-position:-150% top;mask-position:-150% top}}@keyframes skeleton-effect-pulse{0%{transform:scale(1)}40%{transform:scale(1)}50%{transform:scale(.975)}100%{transform:scale(1)}}:root{--f7-menu-text-color:#fff;--f7-menu-font-size:16px;--f7-menu-font-weight:500;--f7-menu-line-height:1.2;--f7-menu-bg-color:rgba(0, 0, 0, 0.9);--f7-menu-item-pressed-bg-color:rgba(20, 20, 20, 0.9);--f7-menu-item-padding-horizontal:12px;--f7-menu-item-spacing:6px;--f7-menu-item-height:40px;--f7-menu-item-dropdown-icon-color:rgba(255, 255, 255, 0.4);--f7-menu-item-border-radius:8px;--f7-menu-dropdown-item-height:28px;--f7-menu-dropdown-divider-color:rgba(255, 255, 255, 0.2);--f7-menu-dropdown-padding-vertical:6px}.aurora{--f7-menu-font-size:13px;--f7-menu-item-height:28px;--f7-menu-dropdown-item-height:24px;--f7-menu-item-border-radius:5px;--f7-menu-item-padding-horizontal:10px}.menu{z-index:1000;position:relative;transform:translate3d(0,0,0);--f7-touch-ripple-color:var(--f7-touch-ripple-white)}.menu-inner{display:flex;justify-content:flex-start;align-items:flex-start;padding-left:var(--f7-menu-item-spacing);padding-right:var(--f7-menu-item-spacing)}.menu-inner:after{content:'';width:var(--f7-menu-item-spacing);height:100%;flex-shrink:0}.menu-item{height:var(--f7-menu-item-height);min-width:var(--f7-menu-item-height);flex-shrink:0;background:var(--f7-menu-bg-color);color:var(--f7-menu-text-color);border-radius:var(--f7-menu-item-border-radius);position:relative;box-sizing:border-box;font-size:var(--f7-menu-font-size);font-weight:var(--f7-menu-font-weight);cursor:pointer;margin-right:var(--f7-menu-item-spacing)}.menu-item:first-child{margin-right:0}.menu-item.active-state:not(.menu-item-dropdown-opened){background-color:rgba(0,0,0,.7)}.menu-item.icon-only{padding-left:0;padding-right:0}.menu-item-content{display:flex;justify-content:center;align-items:center;padding:0 var(--f7-menu-item-padding-horizontal);height:100%;box-sizing:border-box;width:100%;overflow:hidden;border-radius:var(--f7-menu-item-border-radius);position:relative}.icon-only .menu-item-content,.menu-item-content.icon-only{padding-left:0;padding-right:0}.menu-item-dropdown .menu-item-content:after{content:'';position:absolute;width:20px;height:2px;left:50%;transform:translateX(-50%);bottom:4px;background:var(--f7-menu-item-dropdown-icon-color);border-radius:4px}.menu-dropdown{opacity:0;visibility:hidden;pointer-events:none;cursor:auto;height:10px;background:var(--f7-menu-bg-color);position:relative}.menu-dropdown-content{position:absolute;top:100%;border-radius:var(--f7-menu-dropdown-border-radius,var(--f7-menu-item-border-radius));padding-top:var(--f7-menu-dropdown-padding-vertical);padding-bottom:var(--f7-menu-dropdown-padding-vertical);box-sizing:border-box;background:var(--f7-menu-bg-color);overflow:auto;-webkit-overflow-scrolling:touch;min-width:calc(100% + 24px)}.menu-dropdown-item,.menu-dropdown-link{display:flex;justify-content:space-between;align-items:center;padding-left:var(--f7-menu-item-padding-horizontal);padding-right:var(--f7-menu-item-padding-horizontal);min-height:var(--f7-menu-dropdown-item-height);line-height:var(--f7-menu-line-height);font-size:var(--f7-menu-font-size);color:var(--f7-menu-text-color);font-weight:var(--f7-menu-font-weight);white-space:nowrap;min-width:100px}.menu-dropdown-item i,.menu-dropdown-item i.f7-icons,.menu-dropdown-item i.icon,.menu-dropdown-item i.material-icons,.menu-dropdown-link i,.menu-dropdown-link i.f7-icons,.menu-dropdown-link i.icon,.menu-dropdown-link i.material-icons{font-size:20px}.menu-dropdown-link.active-state{background:var(--f7-menu-dropdown-pressed-bg-color,var(--f7-theme-color));color:var(--f7-menu-text-color)}.menu-dropdown-divider{height:1px;margin-top:2px;margin-bottom:2px;background:var(--f7-menu-dropdown-divider-color)}.menu-item-dropdown-opened{border-bottom-left-radius:0px;border-bottom-right-radius:0px}.menu-item-dropdown-opened .menu-item-content:after{opacity:0}.menu-item-dropdown-opened .menu-dropdown{opacity:1;visibility:visible;pointer-events:auto}.menu-dropdown-center:after,.menu-dropdown-left:after,.menu-item-dropdown-center .menu-dropdown:after,.menu-item-dropdown-left .menu-dropdown:after{content:'';position:absolute;left:100%;bottom:0;width:var(--f7-menu-item-border-radius);height:var(--f7-menu-item-border-radius);background-image:radial-gradient(ellipse at 100% 0%,transparent 0%,transparent 70%,var(--f7-menu-bg-color) 72%)}.menu-dropdown-center:before,.menu-dropdown-right:before,.menu-item-dropdown-center .menu-dropdown:before,.menu-item-dropdown-right .menu-dropdown:before{content:'';position:absolute;right:100%;bottom:0;width:var(--f7-menu-item-border-radius);height:var(--f7-menu-item-border-radius);background-image:radial-gradient(ellipse at 0% 0%,transparent 0%,transparent 70%,var(--f7-menu-bg-color) 72%)}.menu-dropdown-left .menu-dropdown-content,.menu-item-dropdown-left .menu-dropdown-content{left:0;border-top-left-radius:0px}.menu-dropdown-right .menu-dropdown-content,.menu-item-dropdown-right .menu-dropdown-content{right:0;border-top-right-radius:0px}.menu-dropdown-center .menu-dropdown-content,.menu-item-dropdown-center .menu-dropdown-content{left:50%;min-width:calc(100% + 24px + 24px);transform:translateX(-50%)}:root{--f7-color-picker-popover-width:350px;--f7-color-picker-slider-size:6px;--f7-color-picker-slider-knob-size:16px;--f7-color-picker-bar-size:50px;--f7-color-picker-bar-min-height:260px;--f7-color-picker-value-width:64px;--f7-color-picker-value-height:32px;--f7-color-picker-value-font-size:16px;--f7-color-picker-value-border-radius:4px;--f7-color-picker-hex-value-width:84px;--f7-color-picker-label-font-size:14px;--f7-color-picker-label-width:10px;--f7-color-picker-label-height:14px;--f7-color-picker-sb-spectrum-height:260px;--f7-color-picker-sb-spectrum-handle-size:16px;--f7-color-picker-wheel-width:330px;--f7-color-picker-palette-value-width:36px;--f7-color-picker-palette-value-height:36px;--f7-color-picker-initial-current-color-height:40px;--f7-color-picker-initial-current-color-border-radius:4px;--f7-color-picker-sheet-bg-color:#fff;--f7-color-picker-popup-bg-color:#fff;--f7-color-picker-value-bg-color:rgba(0, 0, 0, 0.05);--f7-color-picker-group-bg-color:rgba(0, 0, 0, 0.05);--f7-color-picker-group-value-bg-color:#fff}:root .theme-dark,:root.theme-dark{--f7-color-picker-sheet-bg-color:#121212;--f7-color-picker-popup-bg-color:#121212;--f7-color-picker-value-bg-color:rgba(255, 255, 255, 0.1);--f7-color-picker-group-bg-color:#000;--f7-color-picker-group-value-bg-color:rgba(255, 255, 255, 0.12)}.color-picker{overflow:hidden;width:100%;display:flex;flex-direction:column}.color-picker-popover .color-picker,.color-picker-popup .color-picker,.color-picker.color-picker-inline{position:relative}.color-picker-sheet-modal{background:var(--f7-color-picker-sheet-bg-color)}.color-picker-sheet-modal:before{z-index:600}.color-picker-sheet-modal .sheet-modal-inner{margin-bottom:var(--f7-safe-area-bottom)}.color-picker-popup .page{background:var(--f7-color-picker-popup-bg-color)}.color-picker-popup .page-content{padding-bottom:var(--f7-safe-area-bottom)}.color-picker-page .color-picker,.color-picker-popover .color-picker,.color-picker-popup .color-picker{height:100%}.color-picker-page .color-picker .toolbar,.color-picker-popover .color-picker .toolbar,.color-picker-popup .color-picker .toolbar{position:absolute}.color-picker-popover{width:var(--f7-color-picker-popover-width);max-width:90vw;max-height:80vh}.color-picker-popover .color-picker{max-height:80vh}.color-picker-popover .toolbar-top{border-top-left-radius:var(--f7-popover-border-radius);border-top-right-radius:var(--f7-popover-border-radius)}.color-picker-popover .color-picker-module-palette{overflow:hidden;flex-shrink:0}.color-picker-popover .color-picker-module-palette:first-child{border-top-left-radius:var(--f7-popover-border-radius);border-top-right-radius:var(--f7-popover-border-radius)}.color-picker-popover .color-picker-module-palette:last-child{border-bottom-left-radius:var(--f7-popover-border-radius);border-bottom-right-radius:var(--f7-popover-border-radius)}.color-picker-popover .color-picker-module-palette:first-child:last-child{border-radius:var(--f7-popover-border-radius)}.color-picker-popover .toolbar~.page-content .color-picker-module-palette:first-child{border-top-left-radius:0;border-top-right-radius:0}.color-picker-page .page-content,.color-picker-popover .page-content,.color-picker-popup .page-content,.color-picker-sheet-modal .page-content{display:flex;justify-content:flex-start;align-items:stretch;flex-direction:column;overflow-x:hidden}.color-picker-module{margin-top:5px}.color-picker-module:last-child{margin-bottom:5px}.color-picker-module-hs-spectrum,.color-picker-module-sb-spectrum{margin-left:10px;margin-right:10px}.color-picker-module-hs-spectrum:first-child,.color-picker-module-sb-spectrum:first-child{margin-top:10px}.color-picker-module-hs-spectrum .color-picker-hs-spectrum,.color-picker-module-hs-spectrum .color-picker-sb-spectrum,.color-picker-module-sb-spectrum .color-picker-hs-spectrum,.color-picker-module-sb-spectrum .color-picker-sb-spectrum{border-radius:4px;height:var(--f7-color-picker-sb-spectrum-height)}.color-picker-sb-spectrum{background-color:#000;background-image:linear-gradient(to bottom,rgba(0,0,0,0) 0%,#000 100%),linear-gradient(to left,rgba(255,255,255,0) 0%,#fff 100%);position:relative}.color-picker-hs-spectrum{position:relative;background-image:linear-gradient(to right,red,#feff00,#0f0,#00feff,#00f,#ff00fe,red)}.color-picker-hs-spectrum:after{content:'';position:absolute;left:0;top:0;width:100%;height:100%;background-image:linear-gradient(to bottom,rgba(255,255,255,0),#fff)}.color-picker-hs-spectrum-handle,.color-picker-sb-spectrum-handle{width:4px;height:4px;position:absolute;left:-2px;top:-2px;z-index:1}.color-picker-hs-spectrum-handle:after,.color-picker-sb-spectrum-handle:after{background-color:inherit;content:'';position:absolute;width:var(--f7-color-picker-sb-spectrum-handle-size);height:var(--f7-color-picker-sb-spectrum-handle-size);border:1px solid #fff;border-radius:50%;box-shadow:0px 0px 2px rgba(0,0,0,.5);box-sizing:border-box;left:50%;top:50%;transform:translate(-50%,-50%);transition:150ms;transition-property:transform;transform-origin:center}.color-picker-hs-spectrum-handle.color-picker-hs-spectrum-handle-pressed:after,.color-picker-hs-spectrum-handle.color-picker-sb-spectrum-handle-pressed:after,.color-picker-sb-spectrum-handle.color-picker-hs-spectrum-handle-pressed:after,.color-picker-sb-spectrum-handle.color-picker-sb-spectrum-handle-pressed:after{transform:scale(1.5) translate(-33.333%,-33.333%)}.color-picker-module-wheel{margin-left:10px;margin-right:10px}.color-picker-wheel{position:relative;width:var(--f7-color-picker-wheel-width);max-width:100%;height:auto;font-size:0;margin-left:auto;margin-right:auto}.color-picker-wheel svg{width:100%;height:auto}.color-picker-wheel .color-picker-wheel-handle{width:calc(100% / 6);height:calc(100% / 6);position:absolute;box-sizing:border-box;border:2px solid #fff;box-shadow:0px 0px 5px rgba(0,0,0,.5);background:red;border-radius:50%;left:0;top:0}.color-picker-wheel .color-picker-sb-spectrum{width:45%;height:45%;left:50%;top:50%;transform:translate3d(-50%,-50%,0);position:absolute}.color-picker-slider-wrap{display:flex;align-items:center;margin-bottom:2px}.color-picker-slider-wrap+.color-picker-slider-wrap{margin-top:5px}.color-picker-hex-wrap{justify-content:space-between;display:flex;align-items:center}.color-picker-hex-label,.color-picker-slider-label{font-size:var(--f7-color-picker-label-font-size);width:var(--f7-color-picker-label-size);flex-shrink:0;margin-left:12px}.color-picker-hex-label{width:auto}.color-picker-bar-value,.color-picker-hex-value,.color-picker-slider-value{width:var(--f7-color-picker-value-width);height:var(--f7-color-picker-value-height);background:var(--f7-color-picker-value-bg-color);border-radius:var(--f7-color-picker-value-border-radius);text-align:center;font-size:var(--f7-color-picker-value-font-size);display:flex;justify-content:center;align-items:center;flex-shrink:0;margin-right:10px}.color-picker-bar-value input,.color-picker-hex-value input,.color-picker-slider-value input{width:100%;height:100%;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;outline:0;background:0 0;color:inherit;font-family:inherit;font-size:inherit;text-align:center;display:block;border-radius:4px}.color-picker-bar-value input::-webkit-inner-spin-button,.color-picker-bar-value input::-webkit-outer-spin-button,.color-picker-hex-value input::-webkit-inner-spin-button,.color-picker-hex-value input::-webkit-outer-spin-button,.color-picker-slider-value input::-webkit-inner-spin-button,.color-picker-slider-value input::-webkit-outer-spin-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;margin:0;display:none}.color-picker-hex-value{width:var(--f7-color-picker-hex-value-width)}.color-picker-hex-value:first-child{margin-right:auto}.color-picker-slider{--f7-range-bar-active-bg-color:transparent;--f7-range-bar-size:var(--f7-color-picker-slider-size);--f7-range-bar-border-radius:var(--f7-color-picker-slider-size);--f7-range-knob-size:var(--f7-color-picker-slider-knob-size);--f7-range-knob-box-shadow:0 1px 2px rgba(0, 0, 0, 0.3)}.color-picker-slider .range-knob{transition-duration:.2s;transition-property:transform}.color-picker-slider .range-knob:after{width:30px;height:30px;margin-left:-16px;margin-top:-16px}.color-picker-slider .range-knob-active-state .range-knob{transform:scale(1.5)}.md .color-picker-slider.range-slider-min:not(.range-slider-dual) .range-knob{background:var(--f7-range-knob-color)!important;border:none}.color-picker-module-rgb-bars{display:flex;justify-content:space-around;justify-content:space-evenly;align-items:stretch;height:100%;min-height:var(--f7-color-picker-bar-min-height);padding-bottom:10px;padding-top:10px;box-sizing:border-box}.color-picker-bar-wrap{display:flex;align-items:center;flex-direction:column-reverse}.color-picker-bar{--f7-range-bar-active-bg-color:transparent;--f7-range-bar-size:var(--f7-color-picker-bar-size);--f7-range-bar-border-radius:2px;--f7-range-knob-size:6px;--f7-range-knob-box-shadow:0 0px 3px rgba(0, 0, 0, 0.3);--f7-range-knob-color:#fff}.color-picker-bar .range-knob{transition-duration:0s;transition-property:transform;border-radius:3px}.color-picker-bar .range-knob-wrap{height:6px;width:calc(var(--f7-color-picker-bar-size) - 4px);margin-left:calc(-.5 * (var(--f7-color-picker-bar-size) - 4px))}.color-picker-bar .range-knob-active-state .range-knob{transform:scale(1)}.md .color-picker-bar.range-slider-min:not(.range-slider-dual) .range-knob{background:var(--f7-range-knob-color)!important;border:none}.color-picker-bar-label{font-size:var(--f7-color-picker-label-size);margin-top:12px;line-height:1;height:var(--f7-color-picker-label-height);flex-shrink:0}.color-picker-bar-value{margin-left:0;margin-bottom:10px}.color-picker-slider-alpha{--f7-range-knob-color:#fff}.color-picker-slider-alpha .range-bar{background-image:linear-gradient(to left,rgba(0,0,0,0),#000),linear-gradient(to right,rgba(255,255,255,.2) 50%,rgba(0,0,0,.2) 50%),linear-gradient(to left,rgba(255,255,255,.2) 50%,rgba(0,0,0,.2) 50%);background-size:100% 100%,6px 3px,6px 3px;background-position:0 0,0px 3px,0 0;background-repeat:repeat-y,repeat-x,repeat-x}.color-picker-slider-hue .range-bar{background-image:linear-gradient(to left,red,#feff00,#0f0,#00feff,#00f,#ff00fe,red)}.color-picker-slider-brightness .range-bar{background-image:linear-gradient(to left,#000,#fff)}.color-picker-module-palette{margin-top:16px}.color-picker-module-palette:first-child{margin-top:0}.color-picker-module-palette:last-child{margin-bottom:0}.color-picker-module-palette:first-child:last-child{margin:0}.color-picker-palette{display:flex;flex-wrap:wrap}.color-picker-palette-row{width:100%;display:flex;flex-wrap:nowrap}.color-picker-palette-row .color-picker-palette-value{width:100%}.color-picker-palette-value{width:var(--f7-color-picker-palette-value-width);height:var(--f7-color-picker-palette-value-height);cursor:pointer}.color-picker-module-current-color,.color-picker-module-initial-current-colors{margin-left:10px;margin-right:10px;border-radius:var(--f7-color-picker-initial-current-color-border-radius);overflow:hidden;flex-shrink:0}.color-picker-current-color,.color-picker-initial-color{height:var(--f7-color-picker-initial-current-color-height)}.color-picker-initial-current-colors{display:flex}.color-picker-initial-current-colors .color-picker-current-color,.color-picker-initial-current-colors .color-picker-initial-color{width:50%}.color-picker-module-alpha-slider,.color-picker-module-brightness-slider,.color-picker-module-hex,.color-picker-module-hsb-sliders,.color-picker-module-hue-slider,.color-picker-module-rgb-sliders{margin-left:10px;margin-right:10px}.color-picker-grouped-modules .color-picker-module-alpha-slider,.color-picker-grouped-modules .color-picker-module-brightness-slider,.color-picker-grouped-modules .color-picker-module-hex,.color-picker-grouped-modules .color-picker-module-hsb-sliders,.color-picker-grouped-modules .color-picker-module-hue-slider,.color-picker-grouped-modules .color-picker-module-rgb-sliders{background:var(--f7-color-picker-group-bg-color);padding:5px;border-radius:4px;margin-top:16px;margin-left:5px;margin-right:5px}.color-picker-grouped-modules .color-picker-module-alpha-slider:last-child,.color-picker-grouped-modules .color-picker-module-brightness-slider:last-child,.color-picker-grouped-modules .color-picker-module-hex:last-child,.color-picker-grouped-modules .color-picker-module-hsb-sliders:last-child,.color-picker-grouped-modules .color-picker-module-hue-slider:last-child,.color-picker-grouped-modules .color-picker-module-rgb-sliders:last-child{margin-bottom:16px}.color-picker-grouped-modules .color-picker-hex-value,.color-picker-grouped-modules .color-picker-slider-value{background:var(--f7-color-picker-group-value-bg-color)}.color-picker-grouped-modules .color-picker-hex-label,.color-picker-grouped-modules .color-picker-slider-label{margin-right:5px}.color-picker-grouped-modules .color-picker-module-alpha-slider .range-slider:first-child,.color-picker-grouped-modules .color-picker-module-brightness-slider .range-slider:first-child,.color-picker-grouped-modules .color-picker-module-hsb-sliders .range-slider:first-child,.color-picker-grouped-modules .color-picker-module-hue-slider .range-slider:first-child,.color-picker-grouped-modules .color-picker-module-rgb-sliders .range-slider:first-child{margin-right:5px}.color-picker-grouped-modules .color-picker-module-alpha-slider .range-slider:last-child,.color-picker-grouped-modules .color-picker-module-brightness-slider .range-slider:last-child,.color-picker-grouped-modules .color-picker-module-hsb-sliders .range-slider:last-child,.color-picker-grouped-modules .color-picker-module-hue-slider .range-slider:last-child,.color-picker-grouped-modules .color-picker-module-rgb-sliders .range-slider:last-child{margin-left:5px}:root{--f7-treeview-item-padding-left:16px;--f7-treeview-item-padding-right:16px;--f7-treeview-toggle-size:24px;--f7-treeview-children-offset:29px;--f7-treeview-label-font-weight:400;--f7-treeview-label-text-color:inherit;--f7-treeview-toggle-color:rgba(0, 0, 0, 0.5);--f7-treeview-toggle-hover-bg-color:rgba(0, 0, 0, 0.1);--f7-treeview-toggle-pressed-bg-color:rgba(0, 0, 0, 0.15);--f7-treeview-icon-color:rgba(0, 0, 0, 0.5);--f7-treeview-selectable-hover-bg-color:rgba(0, 0, 0, 0.1);--f7-treeview-link-hover-bg-color:rgba(0, 0, 0, 0.1);--f7-treeview-link-pressed-bg-color:rgba(0, 0, 0, 0.15)}:root .theme-dark,:root.theme-dark{--f7-treeview-toggle-color:rgba(255, 255, 255, 0.5);--f7-treeview-toggle-hover-bg-color:rgba(255, 255, 255, 0.03);--f7-treeview-toggle-pressed-bg-color:rgba(255, 255, 255, 0.1);--f7-treeview-icon-color:rgba(255, 255, 255, 0.75);--f7-treeview-selectable-hover-bg-color:rgba(255, 255, 255, 0.03);--f7-treeview-link-hover-bg-color:rgba(255, 255, 255, 0.03);--f7-treeview-link-pressed-bg-color:rgba(255, 255, 255, 0.11)}.ios{--f7-treeview-item-height:34px;--f7-treeview-label-font-size:17px;--f7-treeview-icon-size:24px}.md{--f7-treeview-item-height:34px;--f7-treeview-label-font-size:16px;--f7-treeview-icon-size:24px}.aurora{--f7-treeview-item-height:28px;--f7-treeview-label-font-size:14px;--f7-treeview-icon-size:20px}.treeview-item-root{padding-right:var(--f7-treeview-item-padding-left);padding-left:var(--f7-treeview-item-padding-right);min-height:var(--f7-treeview-item-height);display:flex;align-items:center;justify-content:flex-start}.treeview-item-content{display:flex;justify-content:flex-start;align-items:center}.treeview-item-content>.f7-icons,.treeview-item-content>.material-icons,.treeview-item-content>i{font-size:var(--f7-treeview-icon-size);color:var(--f7-treeview-icon-color)}.treeview-item-content:first-child{margin-right:calc(var(--f7-treeview-toggle-size) + 5px)}.treeview-item-content>*+*{margin-right:5px}.treeview-item-label{font-size:var(--f7-treeview-label-font-size);font-weight:var(--f7-treeview-label-font-weight);color:var(--f7-treeview-label-text-color)}.treeview-toggle{width:var(--f7-treeview-toggle-size);height:var(--f7-treeview-toggle-size);cursor:pointer;border-radius:4px;background-color:rgba(0,0,0,0);transition-duration:.2s;position:relative;margin-left:5px}.treeview-toggle.active-state{background-color:var(--f7-treeview-toggle-pressed-bg-color)}.treeview-toggle:after{transition-duration:.2s;content:'';position:absolute;left:50%;top:50%;width:0;height:0;border-top:5px solid transparent;border-bottom:5px solid transparent;transform:translate(-50%,-50%);border-right:6px solid var(--f7-treeview-toggle-color)}.treeview-toggle-hidden{opacity:0;pointer-events:none;visibility:hidden}.treeview-preloader{--f7-preloader-size:var(--f7-treeview-toggle-size);margin-left:calc(-1 * var(--f7-treeview-toggle-size))}.treeview-item-children{display:none}.treeview-item-opened>.treeview-item-children{display:block}.treeview-item-opened>.treeview-item-root .treeview-toggle:after{transform:translate(-50%,-50%) rotate(-90deg)}a.treeview-item-root{color:var(--f7-treeview-label-text-color)}.treeview-item-selectable.treeview-item-root,.treeview-item-selectable>.treeview-item-root{cursor:pointer;transition-duration:150ms}a.treeview-item-root{transition-duration:150ms}a.treeview-item-root.active-state{background:var(--f7-treeview-link-pressed-bg-color)}.treeview-item-toggle.treeview-item-root,.treeview-item-toggle>.treeview-item-root{cursor:pointer}.treeview-item-selected.treeview-item-root,.treeview-item-selected>.treeview-item-root{background:var(--f7-treeview-selectable-selected-bg-color,rgba(var(--f7-theme-color-rgb),.2))}.treeview-item .treeview-item .treeview-item-root{padding-right:calc(var(--f7-treeview-item-padding-left) + var(--f7-treeview-children-offset) * 1)}.treeview-item .treeview-item .treeview-item .treeview-item-root{padding-right:calc(var(--f7-treeview-item-padding-left) + var(--f7-treeview-children-offset) * 2)}.treeview-item .treeview-item .treeview-item .treeview-item .treeview-item-root{padding-right:calc(var(--f7-treeview-item-padding-left) + var(--f7-treeview-children-offset) * 3)}.treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item-root{padding-right:calc(var(--f7-treeview-item-padding-left) + var(--f7-treeview-children-offset) * 4)}.treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item-root{padding-right:calc(var(--f7-treeview-item-padding-left) + var(--f7-treeview-children-offset) * 5)}.treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item-root{padding-right:calc(var(--f7-treeview-item-padding-left) + var(--f7-treeview-children-offset) * 6)}.treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item-root{padding-right:calc(var(--f7-treeview-item-padding-left) + var(--f7-treeview-children-offset) * 7)}.treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item-root{padding-right:calc(var(--f7-treeview-item-padding-left) + var(--f7-treeview-children-offset) * 8)}.treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item-root{padding-right:calc(var(--f7-treeview-item-padding-left) + var(--f7-treeview-children-offset) * 9)}.treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item .treeview-item-root{padding-right:calc(var(--f7-treeview-item-padding-left) + var(--f7-treeview-children-offset) * 10)}.aurora .treeview-toggle:hover{background-color:var(--f7-treeview-toggle-hover-bg-color)}.aurora .treeview-toggle.active-state{background-color:var(--f7-treeview-toggle-pressed-bg-color)}.aurora .treeview-item-selectable.treeview-item-root:hover,.aurora .treeview-item-selectable>.treeview-item-root:hover{background:var(--f7-treeview-selectable-hover-bg-color)}.aurora a.treeview-item-root:hover{background:var(--f7-treeview-link-hover-bg-color)}.aurora a.treeview-item-root.active-state{background:var(--f7-treeview-link-pressed-bg-color)}.aurora .treeview-item-selected.treeview-item-root:hover,.aurora .treeview-item-selected>.treeview-item-root:hover{background:var(--f7-treeview-selectable-selected-bg-color,rgba(var(--f7-theme-color-rgb),.2))}:root{--f7-text-editor-font-size:inherit;--f7-text-editor-font-weight:inherit;--f7-text-editor-border-width:1px;--f7-text-editor-height:250px;--f7-text-editor-margin:16px;--f7-text-editor-padding:8px;--f7-text-editor-button-bg-color:transparent;--f7-text-editor-button-size:28px;--f7-text-editor-button-icon-size:20px;--f7-text-editor-button-margin:2px;--f7-text-editor-button-border-radius:2px;--f7-text-editor-text-color:#000;--f7-text-editor-bg-color:#fff;--f7-text-editor-border-color:rgba(0, 0, 0, 0.1);--f7-text-editor-toolbar-bg-color:#fff;--f7-text-editor-button-text-color:#333;--f7-text-editor-button-divider-color:rgba(0, 0, 0, 0.15);--f7-text-editor-placeholder-color:rgba(0, 0, 0, 0.35)}:root .theme-dark,:root.theme-dark{--f7-text-editor-bg-color:#121212;--f7-text-editor-border-color:rgba(255, 255, 255, 0.1);--f7-text-editor-toolbar-bg-color:#202020;--f7-text-editor-text-color:#fff;--f7-text-editor-placeholder-color:rgba(255, 255, 255, 0.35);--f7-text-editor-button-text-color:#fff;--f7-text-editor-button-divider-color:rgba(255, 255, 255, 0.15)}.ios{--f7-text-editor-toolbar-padding:6px;--f7-text-editor-toolbar-border-color:rgba(0, 0, 0, 0.25)}.ios .theme-dark,.ios.theme-dark{--f7-text-editor-toolbar-bg-color:#121212;--f7-text-editor-toolbar-border-color:rgba(255, 255, 255, 0.1)}.md{--f7-text-editor-toolbar-padding:8px;--f7-text-editor-toolbar-box-shadow:0px 2px 3px -1px rgba(0, 0, 0, 0.25)}.aurora{--f7-text-editor-toolbar-padding:3px;--f7-text-editor-toolbar-border-color:rgba(0, 0, 0, 0.25)}.aurora .theme-dark,.aurora.theme-dark{--f7-text-editor-toolbar-border-color:rgba(255, 255, 255, 0.1)}.text-editor{margin:var(--f7-text-editor-margin);background-color:var(--f7-text-editor-bg-color);display:block;position:relative;border:var(--f7-text-editor-border-width) solid var(--f7-text-editor-border-color);display:flex;flex-direction:column;align-items:stretch;height:var(--f7-text-editor-height);box-sizing:border-box}.text-editor.text-editor-resizable{height:auto}.text-editor-toolbar{display:flex;flex-wrap:wrap;background:var(--f7-text-editor-toolbar-bg-color);z-index:100;position:relative;position:-webkit-sticky;position:sticky;left:0;top:0;padding:var(--f7-text-editor-toolbar-padding);flex-shrink:0;box-shadow:var(--f7-text-editor-toolbar-box-shadow);box-sizing:border-box}.text-editor-toolbar:after{content:'';position:absolute;background-color:var(--f7-text-editor-toolbar-border-color);display:block;z-index:15;top:auto;right:auto;bottom:0;left:0;height:1px;width:100%;transform-origin:50% 100%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}button.text-editor-button{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;padding:0;margin:0;outline:0;font-family:inherit;background:0 0;cursor:pointer;box-shadow:none;border-radius:var(--f7-text-editor-button-border-radius);position:relative;z-index:1;display:flex;width:auto;overflow:hidden;width:var(--f7-text-editor-button-size);height:var(--f7-text-editor-button-size);align-items:center;justify-content:center;margin:var(--f7-text-editor-button-margin);box-sizing:border-box;color:var(--f7-text-editor-button-text-color);background-color:var(--f7-text-editor-button-bg-color);flex-shrink:0}button.text-editor-button i{font-size:var(--f7-text-editor-button-icon-size);font-style:normal}button.text-editor-button i sub,button.text-editor-button i sup{font-size:60%}.text-editor-button-divider{width:1px;background:var(--f7-text-editor-button-divider-color);margin:0 2px;flex-shrink:0}.text-editor-content{-webkit-user-modify:read-write;-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;outline:0;height:100%;-webkit-user-select:text;-moz-user-select:text;user-select:text;padding:var(--f7-text-editor-padding);overflow:auto;flex-shrink:10;box-sizing:border-box;color:var(--f7-text-editor-text-color);font-size:var(--f7-text-editor-font-size);font-weight:var(--f7-text-editor-font-weight)}.text-editor-content .text-editor-placeholder{pointer-events:none;color:var(--f7-text-editor-placeholder-color)}.text-editor-content img{max-width:100%}.text-editor-content a{pointer-events:none}.text-editor-popover{z-index:12500;width:auto;max-width:80vw}.text-editor-popover .popover-inner{display:flex;flex-wrap:wrap;padding:3px}.text-editor-keyboard-toolbar{position:absolute;z-index:6000;--f7-safe-area-bottom:0px}.text-editor-keyboard-toolbar .toolbar-inner{justify-content:flex-start!important;overflow:auto;-webkit-overflow-scrolling:touch}.text-editor-keyboard-toolbar .toolbar-inner::-webkit-scrollbar{display:none}.text-editor-keyboard-toolbar .toolbar-inner .text-editor-button-divider{height:100%}.item-input .text-editor{border:none;margin:0;background-color:var(--f7-input-bg-color,transparent)}.item-input .text-editor-content{padding-top:var(--f7-textarea-padding-vertical);padding-bottom:var(--f7-textarea-padding-vertical);padding-left:var(--f7-input-padding-left);padding-right:var(--f7-input-padding-right);color:var(--f7-input-text-color);font-size:var(--f7-input-font-size)}.item-input .text-editor-toolbar{box-shadow:none}.item-input .text-editor-toolbar:after{display:none!important}.item-input-outline .text-editor-content{border-radius:var(--f7-input-outline-border-radius);padding-left:var(--f7-input-outline-padding-horizontal);padding-right:var(--f7-input-outline-padding-horizontal)}.ios button.text-editor-button{transition:opacity .3s}.ios button.text-editor-button.active-state{opacity:.3;transition-duration:0s}.md button.text-editor-button:before{content:'';width:152%;height:152%;position:absolute;left:-26%;top:-26%;background-image:radial-gradient(circle at center,var(--f7-link-highlight-color) 66%,rgba(255,255,255,0) 66%);background-repeat:no-repeat;background-position:center;background-size:100% 100%;opacity:0;pointer-events:none;transition-duration:.6s}.md button.text-editor-button.active-state:before{opacity:1;transition-duration:150ms}.md .text-editor-keyboard-toolbar .toolbar-inner{padding-left:8px;padding-right:8px}.aurora button.text-editor-button{transition:opacity .3s}.aurora button.text-editor-button.active-state{opacity:.3;transition-duration:0s}:root{--f7-elevation-0:0px 0px 0px 0px rgba(0, 0, 0, 0);--f7-elevation-1:0px 2px 1px -1px rgba(0, 0, 0, 0.2),0px 1px 1px 0px rgba(0, 0, 0, 0.14),0px 1px 3px 0px rgba(0, 0, 0, 0.12);--f7-elevation-2:0px 3px 1px -2px rgba(0, 0, 0, 0.2),0px 2px 2px 0px rgba(0, 0, 0, 0.14),0px 1px 5px 0px rgba(0, 0, 0, 0.12);--f7-elevation-3:0px 3px 3px -2px rgba(0, 0, 0, 0.2),0px 3px 4px 0px rgba(0, 0, 0, 0.14),0px 1px 8px 0px rgba(0, 0, 0, 0.12);--f7-elevation-4:0px 2px 4px -1px rgba(0, 0, 0, 0.2),0px 4px 5px 0px rgba(0, 0, 0, 0.14),0px 1px 10px 0px rgba(0, 0, 0, 0.12);--f7-elevation-5:0px 3px 5px -1px rgba(0, 0, 0, 0.2),0px 5px 8px 0px rgba(0, 0, 0, 0.14),0px 1px 14px 0px rgba(0, 0, 0, 0.12);--f7-elevation-6:0px 3px 5px -1px rgba(0, 0, 0, 0.2),0px 6px 10px 0px rgba(0, 0, 0, 0.14),0px 1px 18px 0px rgba(0, 0, 0, 0.12);--f7-elevation-7:0px 4px 5px -2px rgba(0, 0, 0, 0.2),0px 7px 10px 1px rgba(0, 0, 0, 0.14),0px 2px 16px 1px rgba(0, 0, 0, 0.12);--f7-elevation-8:0px 5px 5px -3px rgba(0, 0, 0, 0.2),0px 8px 10px 1px rgba(0, 0, 0, 0.14),0px 3px 14px 2px rgba(0, 0, 0, 0.12);--f7-elevation-9:0px 5px 6px -3px rgba(0, 0, 0, 0.2),0px 9px 12px 1px rgba(0, 0, 0, 0.14),0px 3px 16px 2px rgba(0, 0, 0, 0.12);--f7-elevation-10:0px 6px 6px -3px rgba(0, 0, 0, 0.2),0px 10px 14px 1px rgba(0, 0, 0, 0.14),0px 4px 18px 3px rgba(0, 0, 0, 0.12);--f7-elevation-11:0px 6px 7px -4px rgba(0, 0, 0, 0.2),0px 11px 15px 1px rgba(0, 0, 0, 0.14),0px 4px 20px 3px rgba(0, 0, 0, 0.12);--f7-elevation-12:0px 7px 8px -4px rgba(0, 0, 0, 0.2),0px 12px 17px 2px rgba(0, 0, 0, 0.14),0px 5px 22px 4px rgba(0, 0, 0, 0.12);--f7-elevation-13:0px 7px 8px -4px rgba(0, 0, 0, 0.2),0px 13px 19px 2px rgba(0, 0, 0, 0.14),0px 5px 24px 4px rgba(0, 0, 0, 0.12);--f7-elevation-14:0px 7px 9px -4px rgba(0, 0, 0, 0.2),0px 14px 21px 2px rgba(0, 0, 0, 0.14),0px 5px 26px 4px rgba(0, 0, 0, 0.12);--f7-elevation-15:0px 8px 9px -5px rgba(0, 0, 0, 0.2),0px 15px 22px 2px rgba(0, 0, 0, 0.14),0px 6px 28px 5px rgba(0, 0, 0, 0.12);--f7-elevation-16:0px 8px 10px -5px rgba(0, 0, 0, 0.2),0px 16px 24px 2px rgba(0, 0, 0, 0.14),0px 6px 30px 5px rgba(0, 0, 0, 0.12);--f7-elevation-17:0px 8px 11px -5px rgba(0, 0, 0, 0.2),0px 17px 26px 2px rgba(0, 0, 0, 0.14),0px 6px 32px 5px rgba(0, 0, 0, 0.12);--f7-elevation-18:0px 9px 11px -5px rgba(0, 0, 0, 0.2),0px 18px 28px 2px rgba(0, 0, 0, 0.14),0px 7px 34px 6px rgba(0, 0, 0, 0.12);--f7-elevation-19:0px 9px 12px -6px rgba(0, 0, 0, 0.2),0px 19px 29px 2px rgba(0, 0, 0, 0.14),0px 7px 36px 6px rgba(0, 0, 0, 0.12);--f7-elevation-20:0px 10px 13px -6px rgba(0, 0, 0, 0.2),0px 20px 31px 3px rgba(0, 0, 0, 0.14),0px 8px 38px 7px rgba(0, 0, 0, 0.12);--f7-elevation-21:0px 10px 13px -6px rgba(0, 0, 0, 0.2),0px 21px 33px 3px rgba(0, 0, 0, 0.14),0px 8px 40px 7px rgba(0, 0, 0, 0.12);--f7-elevation-22:0px 10px 14px -6px rgba(0, 0, 0, 0.2),0px 22px 35px 3px rgba(0, 0, 0, 0.14),0px 8px 42px 7px rgba(0, 0, 0, 0.12);--f7-elevation-23:0px 11px 14px -7px rgba(0, 0, 0, 0.2),0px 23px 36px 3px rgba(0, 0, 0, 0.14),0px 9px 44px 8px rgba(0, 0, 0, 0.12);--f7-elevation-24:0px 11px 15px -7px rgba(0, 0, 0, 0.2),0px 24px 38px 3px rgba(0, 0, 0, 0.14),0px 9px 46px 8px rgba(0, 0, 0, 0.12)}.elevation-0{box-shadow:var(--f7-elevation-0)!important}.elevation-1{box-shadow:var(--f7-elevation-1)!important}.elevation-2{box-shadow:var(--f7-elevation-2)!important}.elevation-3{box-shadow:var(--f7-elevation-3)!important}.elevation-4{box-shadow:var(--f7-elevation-4)!important}.elevation-5{box-shadow:var(--f7-elevation-5)!important}.elevation-6{box-shadow:var(--f7-elevation-6)!important}.elevation-7{box-shadow:var(--f7-elevation-7)!important}.elevation-8{box-shadow:var(--f7-elevation-8)!important}.elevation-9{box-shadow:var(--f7-elevation-9)!important}.elevation-10{box-shadow:var(--f7-elevation-10)!important}.elevation-11{box-shadow:var(--f7-elevation-11)!important}.elevation-12{box-shadow:var(--f7-elevation-12)!important}.elevation-13{box-shadow:var(--f7-elevation-13)!important}.elevation-14{box-shadow:var(--f7-elevation-14)!important}.elevation-15{box-shadow:var(--f7-elevation-15)!important}.elevation-16{box-shadow:var(--f7-elevation-16)!important}.elevation-17{box-shadow:var(--f7-elevation-17)!important}.elevation-18{box-shadow:var(--f7-elevation-18)!important}.elevation-19{box-shadow:var(--f7-elevation-19)!important}.elevation-20{box-shadow:var(--f7-elevation-20)!important}.elevation-21{box-shadow:var(--f7-elevation-21)!important}.elevation-22{box-shadow:var(--f7-elevation-22)!important}.elevation-23{box-shadow:var(--f7-elevation-23)!important}.elevation-24{box-shadow:var(--f7-elevation-24)!important}.device-desktop .elevation-hover-0:hover{box-shadow:var(--f7-elevation-0)!important}.device-desktop .elevation-hover-1:hover{box-shadow:var(--f7-elevation-1)!important}.device-desktop .elevation-hover-2:hover{box-shadow:var(--f7-elevation-2)!important}.device-desktop .elevation-hover-3:hover{box-shadow:var(--f7-elevation-3)!important}.device-desktop .elevation-hover-4:hover{box-shadow:var(--f7-elevation-4)!important}.device-desktop .elevation-hover-5:hover{box-shadow:var(--f7-elevation-5)!important}.device-desktop .elevation-hover-6:hover{box-shadow:var(--f7-elevation-6)!important}.device-desktop .elevation-hover-7:hover{box-shadow:var(--f7-elevation-7)!important}.device-desktop .elevation-hover-8:hover{box-shadow:var(--f7-elevation-8)!important}.device-desktop .elevation-hover-9:hover{box-shadow:var(--f7-elevation-9)!important}.device-desktop .elevation-hover-10:hover{box-shadow:var(--f7-elevation-10)!important}.device-desktop .elevation-hover-11:hover{box-shadow:var(--f7-elevation-11)!important}.device-desktop .elevation-hover-12:hover{box-shadow:var(--f7-elevation-12)!important}.device-desktop .elevation-hover-13:hover{box-shadow:var(--f7-elevation-13)!important}.device-desktop .elevation-hover-14:hover{box-shadow:var(--f7-elevation-14)!important}.device-desktop .elevation-hover-15:hover{box-shadow:var(--f7-elevation-15)!important}.device-desktop .elevation-hover-16:hover{box-shadow:var(--f7-elevation-16)!important}.device-desktop .elevation-hover-17:hover{box-shadow:var(--f7-elevation-17)!important}.device-desktop .elevation-hover-18:hover{box-shadow:var(--f7-elevation-18)!important}.device-desktop .elevation-hover-19:hover{box-shadow:var(--f7-elevation-19)!important}.device-desktop .elevation-hover-20:hover{box-shadow:var(--f7-elevation-20)!important}.device-desktop .elevation-hover-21:hover{box-shadow:var(--f7-elevation-21)!important}.device-desktop .elevation-hover-22:hover{box-shadow:var(--f7-elevation-22)!important}.device-desktop .elevation-hover-23:hover{box-shadow:var(--f7-elevation-23)!important}.device-desktop .elevation-hover-24:hover{box-shadow:var(--f7-elevation-24)!important}.active-state.elevation-pressed-0,.device-desktop .active-state.elevation-pressed-0{box-shadow:var(--f7-elevation-0)!important}.active-state.elevation-pressed-1,.device-desktop .active-state.elevation-pressed-1{box-shadow:var(--f7-elevation-1)!important}.active-state.elevation-pressed-2,.device-desktop .active-state.elevation-pressed-2{box-shadow:var(--f7-elevation-2)!important}.active-state.elevation-pressed-3,.device-desktop .active-state.elevation-pressed-3{box-shadow:var(--f7-elevation-3)!important}.active-state.elevation-pressed-4,.device-desktop .active-state.elevation-pressed-4{box-shadow:var(--f7-elevation-4)!important}.active-state.elevation-pressed-5,.device-desktop .active-state.elevation-pressed-5{box-shadow:var(--f7-elevation-5)!important}.active-state.elevation-pressed-6,.device-desktop .active-state.elevation-pressed-6{box-shadow:var(--f7-elevation-6)!important}.active-state.elevation-pressed-7,.device-desktop .active-state.elevation-pressed-7{box-shadow:var(--f7-elevation-7)!important}.active-state.elevation-pressed-8,.device-desktop .active-state.elevation-pressed-8{box-shadow:var(--f7-elevation-8)!important}.active-state.elevation-pressed-9,.device-desktop .active-state.elevation-pressed-9{box-shadow:var(--f7-elevation-9)!important}.active-state.elevation-pressed-10,.device-desktop .active-state.elevation-pressed-10{box-shadow:var(--f7-elevation-10)!important}.active-state.elevation-pressed-11,.device-desktop .active-state.elevation-pressed-11{box-shadow:var(--f7-elevation-11)!important}.active-state.elevation-pressed-12,.device-desktop .active-state.elevation-pressed-12{box-shadow:var(--f7-elevation-12)!important}.active-state.elevation-pressed-13,.device-desktop .active-state.elevation-pressed-13{box-shadow:var(--f7-elevation-13)!important}.active-state.elevation-pressed-14,.device-desktop .active-state.elevation-pressed-14{box-shadow:var(--f7-elevation-14)!important}.active-state.elevation-pressed-15,.device-desktop .active-state.elevation-pressed-15{box-shadow:var(--f7-elevation-15)!important}.active-state.elevation-pressed-16,.device-desktop .active-state.elevation-pressed-16{box-shadow:var(--f7-elevation-16)!important}.active-state.elevation-pressed-17,.device-desktop .active-state.elevation-pressed-17{box-shadow:var(--f7-elevation-17)!important}.active-state.elevation-pressed-18,.device-desktop .active-state.elevation-pressed-18{box-shadow:var(--f7-elevation-18)!important}.active-state.elevation-pressed-19,.device-desktop .active-state.elevation-pressed-19{box-shadow:var(--f7-elevation-19)!important}.active-state.elevation-pressed-20,.device-desktop .active-state.elevation-pressed-20{box-shadow:var(--f7-elevation-20)!important}.active-state.elevation-pressed-21,.device-desktop .active-state.elevation-pressed-21{box-shadow:var(--f7-elevation-21)!important}.active-state.elevation-pressed-22,.device-desktop .active-state.elevation-pressed-22{box-shadow:var(--f7-elevation-22)!important}.active-state.elevation-pressed-23,.device-desktop .active-state.elevation-pressed-23{box-shadow:var(--f7-elevation-23)!important}.active-state.elevation-pressed-24,.device-desktop .active-state.elevation-pressed-24{box-shadow:var(--f7-elevation-24)!important}.elevation-transition-100{transition-duration:.1s;transition-property:box-shadow}.elevation-transition,.elevation-transition-200{transition-duration:.2s;transition-property:box-shadow}.elevation-transition-300{transition-duration:.3s;transition-property:box-shadow}.elevation-transition-400{transition-duration:.4s;transition-property:box-shadow}.elevation-transition-500{transition-duration:.5s;transition-property:box-shadow}:root{--f7-typography-padding:16px;--f7-typography-margin:16px}.display-flex{display:flex!important}.display-block{display:block!important}.display-inline-flex{display:inline-flex!important}.display-inline-block{display:inline-block!important}.display-inline{display:inline!important}.display-none{display:none!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.flex-shrink-2{flex-shrink:2!important}.flex-shrink-3{flex-shrink:3!important}.flex-shrink-4{flex-shrink:4!important}.flex-shrink-5{flex-shrink:5!important}.flex-shrink-6{flex-shrink:6!important}.flex-shrink-7{flex-shrink:7!important}.flex-shrink-8{flex-shrink:8!important}.flex-shrink-9{flex-shrink:9!important}.flex-shrink-10{flex-shrink:10!important}.flex-direction-row{flex-direction:row!important}.flex-direction-row-reverse{flex-direction:row-reverse!important}.flex-direction-column{flex-direction:column!important}.flex-direction-column-reverse{flex-direction:column-reverse!important}.justify-content-flex-start{justify-content:flex-start!important}.justify-content-center{justify-content:center!important}.justify-content-flex-end{justify-content:flex-end!important}.justify-content-space-between{justify-content:space-between!important}.justify-content-space-around{justify-content:space-around!important}.justify-content-space-evenly{justify-content:space-evenly!important}.justify-content-stretch{justify-content:stretch!important}.justify-content-start{justify-content:start!important}.justify-content-end{justify-content:end!important}.justify-content-left{justify-content:left!important}.justify-content-right{justify-content:right!important}.align-content-flex-start{align-content:flex-start!important}.align-content-flex-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-space-between{align-content:space-between!important}.align-content-space-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-items-baseline{align-items:baseline!important}.align-items-flex-start{align-items:flex-start!important}.align-items-flex-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-stretch{align-items:stretch!important}.align-self-flex-start{align-self:flex-start!important}.align-self-flex-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-stretch{align-self:stretch!important}.text-align-left{text-align:left!important}.text-align-center{text-align:center!important}.text-align-right{text-align:right!important}.text-align-justify{text-align:justify!important}.float-left{float:left!important}.float-right{float:right!important}.float-none{float:none!important}.vertical-align-bottom{vertical-align:bottom!important}.vertical-align-middle{vertical-align:middle!important}.vertical-align-top{vertical-align:top!important}.no-padding{padding:0!important}.no-padding-left{padding-left:0!important}.no-padding-right{padding-right:0!important}.no-padding-horizontal{padding-left:0!important;padding-right:0!important}.no-padding-top{padding-top:0!important}.no-padding-bottom{padding-bottom:0!important}.no-padding-vertical{padding-top:0!important;padding-bottom:0!important}.no-margin{margin:0!important}.no-margin-left{margin-left:0!important}.no-margin-right{margin-right:0!important}.no-margin-horizontal{margin-left:0!important;margin-right:0!important}.no-margin-top{margin-top:0!important}.no-margin-bottom{margin-bottom:0!important}.no-margin-vertical{margin-top:0!important;margin-bottom:0!important}.width-auto{width:auto!important}.width-100{width:100%!important}.padding{padding:var(--f7-typography-padding)!important}.padding-half{padding:calc(var(--f7-typography-padding)/ 2)!important}.padding-top{padding-top:var(--f7-typography-padding)!important}.padding-top-half{padding-top:calc(var(--f7-typography-padding)/ 2)!important}.padding-bottom{padding-bottom:var(--f7-typography-padding)!important}.padding-bottom-half{padding-bottom:calc(var(--f7-typography-padding)/ 2)!important}.padding-left{padding-left:var(--f7-typography-padding)!important}.padding-left-half{padding-left:calc(var(--f7-typography-padding)/ 2)!important}.padding-right{padding-right:var(--f7-typography-padding)!important}.padding-right-half{padding-right:calc(var(--f7-typography-padding)/ 2)!important}.padding-vertical{padding-top:var(--f7-typography-padding)!important;padding-bottom:var(--f7-typography-padding)!important}.padding-vertical-half{padding-top:calc(var(--f7-typography-padding)/ 2)!important;padding-bottom:calc(var(--f7-typography-padding)/ 2)!important}.padding-horizontal{padding-left:var(--f7-typography-padding)!important;padding-right:var(--f7-typography-padding)!important}.padding-horizontal-half{padding-left:calc(var(--f7-typography-padding)/ 2)!important;padding-right:calc(var(--f7-typography-padding)/ 2)!important}.margin{margin:var(--f7-typography-margin)!important}.margin-half{margin:calc(var(--f7-typography-margin)/ 2)!important}.margin-top{margin-top:var(--f7-typography-margin)!important}.margin-top-half{margin-top:calc(var(--f7-typography-margin)/ 2)!important}.margin-bottom{margin-bottom:var(--f7-typography-margin)!important}.margin-bottom-half{margin-bottom:calc(var(--f7-typography-margin)/ 2)!important}.margin-left{margin-left:var(--f7-typography-margin)!important}.margin-left-half{margin-left:calc(var(--f7-typography-margin)/ 2)!important}.margin-right{margin-right:var(--f7-typography-margin)!important}.margin-right-half{margin-right:calc(var(--f7-typography-margin)/ 2)!important}.margin-vertical{margin-top:var(--f7-typography-margin)!important;margin-bottom:var(--f7-typography-margin)!important}.margin-vertical-half{margin-top:calc(var(--f7-typography-margin)/ 2)!important;margin-bottom:calc(var(--f7-typography-margin)/ 2)!important}.margin-horizontal{margin-left:var(--f7-typography-margin)!important;margin-right:var(--f7-typography-margin)!important}.margin-horizontal-half{margin-left:calc(var(--f7-typography-margin)/ 2)!important;margin-right:calc(var(--f7-typography-margin)/ 2)!important}[class*=text-color-]{color:var(--f7-theme-color-text-color)!important}[class*=bg-color-]{background-color:var(--f7-theme-color-bg-color)!important}[class*=border-color-]{border-color:var(--f7-theme-color-border-color)!important}iframe#viAd{z-index:12900!important;background:#000!important}.vi-overlay{background:rgba(0,0,0,.85);z-index:13100;position:absolute;left:0%;top:0%;width:100%;height:100%;border-radius:3px;display:flex;justify-content:center;flex-direction:column;align-items:center;align-content:center;text-align:center;-webkit-user-select:none;-moz-user-select:none;user-select:none}@supports ((-webkit-backdrop-filter:blur(10px)) or (backdrop-filter:blur(10px))){.vi-overlay{background:rgba(0,0,0,.65);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}}.vi-overlay .vi-overlay-text{text-align:center;color:#fff;max-width:80%}.vi-overlay .vi-overlay-text+.vi-overlay-play-button{margin-top:15px}.vi-overlay .vi-overlay-play-button{width:44px;height:44px;border-radius:50%;border:2px solid #fff;position:relative}.vi-overlay .vi-overlay-play-button.active-state{opacity:.55}.vi-overlay .vi-overlay-play-button:before{content:'';width:0;height:0;border-top:8px solid transparent;border-bottom:8px solid transparent;border-left:14px solid #fff;position:absolute;left:50%;top:50%;margin-left:2px;transform:translate(-50%,-50%)} \ No newline at end of file diff --git a/public/Framework7/5/css/framework7.css b/public/Framework7/5/css/framework7.css new file mode 100644 index 0000000..b400a30 --- /dev/null +++ b/public/Framework7/5/css/framework7.css @@ -0,0 +1,5893 @@ +/** + * Framework7 5.7.14 + * Full featured mobile HTML framework for building iOS & Android apps + * https://framework7.io/ + * + * Copyright 2014-2020 Vladimir Kharlampidi + * + * Released under the MIT License + * + * Released on: November 9, 2020 + */ + +/*==================== + Core + ==================== */ +:root { + --f7-theme-color: #007aff; + --f7-theme-color-rgb: 0, 122, 255; + --f7-theme-color-shade: #0066d6; + --f7-theme-color-tint: #298fff; + --f7-safe-area-left: 0px; + --f7-safe-area-right: 0px; + --f7-safe-area-top: 0px; + --f7-safe-area-bottom: 0px; + --f7-safe-area-outer-left: 0px; + --f7-safe-area-outer-right: 0px; + --f7-device-pixel-ratio: 1; +} +@supports (left: env(safe-area-inset-left)) { + :root { + --f7-safe-area-top: env(safe-area-inset-top); + --f7-safe-area-bottom: env(safe-area-inset-bottom); + } + :root .ios-left-edge, + :root .ios-edges, + :root .safe-area-left, + :root .safe-areas, + :root .popup, + :root .sheet-modal, + :root .panel-left { + --f7-safe-area-left: env(safe-area-inset-left); + --f7-safe-area-outer-left: env(safe-area-inset-left); + } + :root .ios-right-edge, + :root .ios-edges, + :root .safe-area-right, + :root .safe-areas, + :root .popup, + :root .sheet-modal, + :root .panel-right { + --f7-safe-area-right: env(safe-area-inset-right); + --f7-safe-area-outer-right: env(safe-area-inset-right); + } + :root .no-safe-areas, + :root .no-safe-area-left, + :root .no-ios-edges, + :root .no-ios-left-edge { + --f7-safe-area-left: 0px; + --f7-safe-area-outer-left: 0px; + } + :root .no-safe-areas, + :root .no-safe-area-right, + :root .no-ios-edges, + :root .no-ios-right-edge { + --f7-safe-area-right: 0px; + --f7-safe-area-outer-right: 0px; + } +} +@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) { + :root { + --f7-device-pixel-ratio: 2; + } +} +@media (-webkit-min-device-pixel-ratio: 3), (min-resolution: 3dppx) { + :root { + --f7-device-pixel-ratio: 3; + } +} +/*==================== + Fonts & Bars + ==================== */ +:root { + --f7-font-size: 14px; + /* + --f7-bars-link-color: var(--f7-theme-color); + */ + --f7-bars-bg-image: none; + --f7-bars-translucent-opacity: 0.8; + --f7-bars-translucent-blur: 20px; + --f7-bars-shadow-bottom-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.25) 0%, rgba(0, 0, 0, 0.08) 40%, rgba(0, 0, 0, 0.04) 50%, rgba(0, 0, 0, 0) 90%, rgba(0, 0, 0, 0) 100%); + --f7-bars-shadow-top-image: linear-gradient(to top, rgba(0, 0, 0, 0.25) 0%, rgba(0, 0, 0, 0.08) 40%, rgba(0, 0, 0, 0.04) 50%, rgba(0, 0, 0, 0) 90%, rgba(0, 0, 0, 0) 100%); + --f7-bars-text-color: #000; + --f7-bars-bg-color: #f7f7f8; + --f7-bars-bg-color-rgb: 247, 247, 248; +} +:root .theme-dark, +:root.theme-dark { + --f7-bars-text-color: #fff; +} +.ios { + --f7-font-family: -apple-system, SF Pro Text, SF UI Text, system-ui, Helvetica Neue, Helvetica, Arial, sans-serif; + --f7-line-height: 1.4; + --f7-text-color: #000; + --f7-bars-border-color: rgba(0, 0, 0, 0.25); +} +.ios .theme-dark, +.ios.theme-dark { + --f7-text-color: #fff; + --f7-bars-bg-color: #121212; + --f7-bars-bg-color-rgb: 22, 22, 22; + --f7-bars-border-color: rgba(255, 255, 255, 0.16); +} +.md { + --f7-font-family: Roboto, system-ui, Noto, Helvetica, Arial, sans-serif; + --f7-line-height: 1.5; + --f7-bars-border-color: transparent; + --f7-text-color: #212121; +} +.md .theme-dark, +.md.theme-dark { + --f7-text-color: rgba(255, 255, 255, 0.87); + --f7-bars-bg-color: #202020; +} +.aurora { + --f7-font-family: -apple-system, system-ui, Helvetica, Arial, sans-serif; + --f7-line-height: 1.5; + --f7-text-color: #000; + --f7-bars-border-color: rgba(0, 0, 0, 0.2); +} +.aurora .theme-dark, +.aurora.theme-dark { + --f7-text-color: #fff; + --f7-bars-bg-color: #202020; + --f7-bars-border-color: rgba(255, 255, 255, 0.1); +} +/*==================== + Color Themes + ==================== */ +.text-color-primary { + --f7-theme-color-text-color: var(--f7-theme-color); +} +.bg-color-primary { + --f7-theme-color-bg-color: var(--f7-theme-color); +} +.border-color-primary { + --f7-theme-color-border-color: var(--f7-theme-color); +} +.ripple-color-primary { + --f7-theme-color-ripple-color: rgba(var(--f7-theme-color-rgb), 0.3); +} +:root { + --f7-color-red: #ff3b30; + --f7-color-red-rgb: 255, 59, 48; + --f7-color-red-shade: #ff1407; + --f7-color-red-tint: #ff6259; + --f7-color-green: #4cd964; + --f7-color-green-rgb: 76, 217, 100; + --f7-color-green-shade: #2cd048; + --f7-color-green-tint: #6ee081; + --f7-color-blue: #2196f3; + --f7-color-blue-rgb: 33, 150, 243; + --f7-color-blue-shade: #0c82df; + --f7-color-blue-tint: #48a8f5; + --f7-color-pink: #ff2d55; + --f7-color-pink-rgb: 255, 45, 85; + --f7-color-pink-shade: #ff0434; + --f7-color-pink-tint: #ff5676; + --f7-color-yellow: #ffcc00; + --f7-color-yellow-rgb: 255, 204, 0; + --f7-color-yellow-shade: #d6ab00; + --f7-color-yellow-tint: #ffd429; + --f7-color-orange: #ff9500; + --f7-color-orange-rgb: 255, 149, 0; + --f7-color-orange-shade: #d67d00; + --f7-color-orange-tint: #ffa629; + --f7-color-purple: #9c27b0; + --f7-color-purple-rgb: 156, 39, 176; + --f7-color-purple-shade: #7e208f; + --f7-color-purple-tint: #b92fd1; + --f7-color-deeppurple: #673ab7; + --f7-color-deeppurple-rgb: 103, 58, 183; + --f7-color-deeppurple-shade: #563098; + --f7-color-deeppurple-tint: #7c52c8; + --f7-color-lightblue: #5ac8fa; + --f7-color-lightblue-rgb: 90, 200, 250; + --f7-color-lightblue-shade: #32bbf9; + --f7-color-lightblue-tint: #82d5fb; + --f7-color-teal: #009688; + --f7-color-teal-rgb: 0, 150, 136; + --f7-color-teal-shade: #006d63; + --f7-color-teal-tint: #00bfad; + --f7-color-lime: #cddc39; + --f7-color-lime-rgb: 205, 220, 57; + --f7-color-lime-shade: #bac923; + --f7-color-lime-tint: #d6e25c; + --f7-color-deeporange: #ff6b22; + --f7-color-deeporange-rgb: 255, 107, 34; + --f7-color-deeporange-shade: #f85200; + --f7-color-deeporange-tint: #ff864b; + --f7-color-gray: #8e8e93; + --f7-color-gray-rgb: 142, 142, 147; + --f7-color-gray-shade: #79797f; + --f7-color-gray-tint: #a3a3a7; + --f7-color-white: #ffffff; + --f7-color-white-rgb: 255, 255, 255; + --f7-color-white-shade: #ebebeb; + --f7-color-white-tint: #ffffff; + --f7-color-black: #000000; + --f7-color-black-rgb: 0, 0, 0; + --f7-color-black-shade: #000000; + --f7-color-black-tint: #141414; +} +.color-theme-red { + --f7-theme-color: #ff3b30; + --f7-theme-color-rgb: 255, 59, 48; + --f7-theme-color-shade: #ff1407; + --f7-theme-color-tint: #ff6259; +} +.color-theme-green { + --f7-theme-color: #4cd964; + --f7-theme-color-rgb: 76, 217, 100; + --f7-theme-color-shade: #2cd048; + --f7-theme-color-tint: #6ee081; +} +.color-theme-blue { + --f7-theme-color: #2196f3; + --f7-theme-color-rgb: 33, 150, 243; + --f7-theme-color-shade: #0c82df; + --f7-theme-color-tint: #48a8f5; +} +.color-theme-pink { + --f7-theme-color: #ff2d55; + --f7-theme-color-rgb: 255, 45, 85; + --f7-theme-color-shade: #ff0434; + --f7-theme-color-tint: #ff5676; +} +.color-theme-yellow { + --f7-theme-color: #ffcc00; + --f7-theme-color-rgb: 255, 204, 0; + --f7-theme-color-shade: #d6ab00; + --f7-theme-color-tint: #ffd429; +} +.color-theme-orange { + --f7-theme-color: #ff9500; + --f7-theme-color-rgb: 255, 149, 0; + --f7-theme-color-shade: #d67d00; + --f7-theme-color-tint: #ffa629; +} +.color-theme-purple { + --f7-theme-color: #9c27b0; + --f7-theme-color-rgb: 156, 39, 176; + --f7-theme-color-shade: #7e208f; + --f7-theme-color-tint: #b92fd1; +} +.color-theme-deeppurple { + --f7-theme-color: #673ab7; + --f7-theme-color-rgb: 103, 58, 183; + --f7-theme-color-shade: #563098; + --f7-theme-color-tint: #7c52c8; +} +.color-theme-lightblue { + --f7-theme-color: #5ac8fa; + --f7-theme-color-rgb: 90, 200, 250; + --f7-theme-color-shade: #32bbf9; + --f7-theme-color-tint: #82d5fb; +} +.color-theme-teal { + --f7-theme-color: #009688; + --f7-theme-color-rgb: 0, 150, 136; + --f7-theme-color-shade: #006d63; + --f7-theme-color-tint: #00bfad; +} +.color-theme-lime { + --f7-theme-color: #cddc39; + --f7-theme-color-rgb: 205, 220, 57; + --f7-theme-color-shade: #bac923; + --f7-theme-color-tint: #d6e25c; +} +.color-theme-deeporange { + --f7-theme-color: #ff6b22; + --f7-theme-color-rgb: 255, 107, 34; + --f7-theme-color-shade: #f85200; + --f7-theme-color-tint: #ff864b; +} +.color-theme-gray { + --f7-theme-color: #8e8e93; + --f7-theme-color-rgb: 142, 142, 147; + --f7-theme-color-shade: #79797f; + --f7-theme-color-tint: #a3a3a7; +} +.color-theme-white { + --f7-theme-color: #ffffff; + --f7-theme-color-rgb: 255, 255, 255; + --f7-theme-color-shade: #ebebeb; + --f7-theme-color-tint: #ffffff; +} +.color-theme-black { + --f7-theme-color: #000000; + --f7-theme-color-rgb: 0, 0, 0; + --f7-theme-color-shade: #000000; + --f7-theme-color-tint: #141414; +} +.color-red { + --f7-theme-color: #ff3b30; + --f7-theme-color-rgb: 255, 59, 48; + --f7-theme-color-shade: #ff1407; + --f7-theme-color-tint: #ff6259; +} +.text-color-red { + --f7-theme-color-text-color: #ff3b30; +} +.bg-color-red { + --f7-theme-color-bg-color: #ff3b30; +} +.border-color-red { + --f7-theme-color-border-color: #ff3b30; +} +.ripple-color-red, +.ripple-red { + --f7-theme-color-ripple-color: rgba(255, 59, 48, 0.3); +} +.color-green { + --f7-theme-color: #4cd964; + --f7-theme-color-rgb: 76, 217, 100; + --f7-theme-color-shade: #2cd048; + --f7-theme-color-tint: #6ee081; +} +.text-color-green { + --f7-theme-color-text-color: #4cd964; +} +.bg-color-green { + --f7-theme-color-bg-color: #4cd964; +} +.border-color-green { + --f7-theme-color-border-color: #4cd964; +} +.ripple-color-green, +.ripple-green { + --f7-theme-color-ripple-color: rgba(76, 217, 100, 0.3); +} +.color-blue { + --f7-theme-color: #2196f3; + --f7-theme-color-rgb: 33, 150, 243; + --f7-theme-color-shade: #0c82df; + --f7-theme-color-tint: #48a8f5; +} +.text-color-blue { + --f7-theme-color-text-color: #2196f3; +} +.bg-color-blue { + --f7-theme-color-bg-color: #2196f3; +} +.border-color-blue { + --f7-theme-color-border-color: #2196f3; +} +.ripple-color-blue, +.ripple-blue { + --f7-theme-color-ripple-color: rgba(33, 150, 243, 0.3); +} +.color-pink { + --f7-theme-color: #ff2d55; + --f7-theme-color-rgb: 255, 45, 85; + --f7-theme-color-shade: #ff0434; + --f7-theme-color-tint: #ff5676; +} +.text-color-pink { + --f7-theme-color-text-color: #ff2d55; +} +.bg-color-pink { + --f7-theme-color-bg-color: #ff2d55; +} +.border-color-pink { + --f7-theme-color-border-color: #ff2d55; +} +.ripple-color-pink, +.ripple-pink { + --f7-theme-color-ripple-color: rgba(255, 45, 85, 0.3); +} +.color-yellow { + --f7-theme-color: #ffcc00; + --f7-theme-color-rgb: 255, 204, 0; + --f7-theme-color-shade: #d6ab00; + --f7-theme-color-tint: #ffd429; +} +.text-color-yellow { + --f7-theme-color-text-color: #ffcc00; +} +.bg-color-yellow { + --f7-theme-color-bg-color: #ffcc00; +} +.border-color-yellow { + --f7-theme-color-border-color: #ffcc00; +} +.ripple-color-yellow, +.ripple-yellow { + --f7-theme-color-ripple-color: rgba(255, 204, 0, 0.3); +} +.color-orange { + --f7-theme-color: #ff9500; + --f7-theme-color-rgb: 255, 149, 0; + --f7-theme-color-shade: #d67d00; + --f7-theme-color-tint: #ffa629; +} +.text-color-orange { + --f7-theme-color-text-color: #ff9500; +} +.bg-color-orange { + --f7-theme-color-bg-color: #ff9500; +} +.border-color-orange { + --f7-theme-color-border-color: #ff9500; +} +.ripple-color-orange, +.ripple-orange { + --f7-theme-color-ripple-color: rgba(255, 149, 0, 0.3); +} +.color-purple { + --f7-theme-color: #9c27b0; + --f7-theme-color-rgb: 156, 39, 176; + --f7-theme-color-shade: #7e208f; + --f7-theme-color-tint: #b92fd1; +} +.text-color-purple { + --f7-theme-color-text-color: #9c27b0; +} +.bg-color-purple { + --f7-theme-color-bg-color: #9c27b0; +} +.border-color-purple { + --f7-theme-color-border-color: #9c27b0; +} +.ripple-color-purple, +.ripple-purple { + --f7-theme-color-ripple-color: rgba(156, 39, 176, 0.3); +} +.color-deeppurple { + --f7-theme-color: #673ab7; + --f7-theme-color-rgb: 103, 58, 183; + --f7-theme-color-shade: #563098; + --f7-theme-color-tint: #7c52c8; +} +.text-color-deeppurple { + --f7-theme-color-text-color: #673ab7; +} +.bg-color-deeppurple { + --f7-theme-color-bg-color: #673ab7; +} +.border-color-deeppurple { + --f7-theme-color-border-color: #673ab7; +} +.ripple-color-deeppurple, +.ripple-deeppurple { + --f7-theme-color-ripple-color: rgba(103, 58, 183, 0.3); +} +.color-lightblue { + --f7-theme-color: #5ac8fa; + --f7-theme-color-rgb: 90, 200, 250; + --f7-theme-color-shade: #32bbf9; + --f7-theme-color-tint: #82d5fb; +} +.text-color-lightblue { + --f7-theme-color-text-color: #5ac8fa; +} +.bg-color-lightblue { + --f7-theme-color-bg-color: #5ac8fa; +} +.border-color-lightblue { + --f7-theme-color-border-color: #5ac8fa; +} +.ripple-color-lightblue, +.ripple-lightblue { + --f7-theme-color-ripple-color: rgba(90, 200, 250, 0.3); +} +.color-teal { + --f7-theme-color: #009688; + --f7-theme-color-rgb: 0, 150, 136; + --f7-theme-color-shade: #006d63; + --f7-theme-color-tint: #00bfad; +} +.text-color-teal { + --f7-theme-color-text-color: #009688; +} +.bg-color-teal { + --f7-theme-color-bg-color: #009688; +} +.border-color-teal { + --f7-theme-color-border-color: #009688; +} +.ripple-color-teal, +.ripple-teal { + --f7-theme-color-ripple-color: rgba(0, 150, 136, 0.3); +} +.color-lime { + --f7-theme-color: #cddc39; + --f7-theme-color-rgb: 205, 220, 57; + --f7-theme-color-shade: #bac923; + --f7-theme-color-tint: #d6e25c; +} +.text-color-lime { + --f7-theme-color-text-color: #cddc39; +} +.bg-color-lime { + --f7-theme-color-bg-color: #cddc39; +} +.border-color-lime { + --f7-theme-color-border-color: #cddc39; +} +.ripple-color-lime, +.ripple-lime { + --f7-theme-color-ripple-color: rgba(205, 220, 57, 0.3); +} +.color-deeporange { + --f7-theme-color: #ff6b22; + --f7-theme-color-rgb: 255, 107, 34; + --f7-theme-color-shade: #f85200; + --f7-theme-color-tint: #ff864b; +} +.text-color-deeporange { + --f7-theme-color-text-color: #ff6b22; +} +.bg-color-deeporange { + --f7-theme-color-bg-color: #ff6b22; +} +.border-color-deeporange { + --f7-theme-color-border-color: #ff6b22; +} +.ripple-color-deeporange, +.ripple-deeporange { + --f7-theme-color-ripple-color: rgba(255, 107, 34, 0.3); +} +.color-gray { + --f7-theme-color: #8e8e93; + --f7-theme-color-rgb: 142, 142, 147; + --f7-theme-color-shade: #79797f; + --f7-theme-color-tint: #a3a3a7; +} +.text-color-gray { + --f7-theme-color-text-color: #8e8e93; +} +.bg-color-gray { + --f7-theme-color-bg-color: #8e8e93; +} +.border-color-gray { + --f7-theme-color-border-color: #8e8e93; +} +.ripple-color-gray, +.ripple-gray { + --f7-theme-color-ripple-color: rgba(142, 142, 147, 0.3); +} +.color-white { + --f7-theme-color: #ffffff; + --f7-theme-color-rgb: 255, 255, 255; + --f7-theme-color-shade: #ebebeb; + --f7-theme-color-tint: #ffffff; +} +.text-color-white { + --f7-theme-color-text-color: #ffffff; +} +.bg-color-white { + --f7-theme-color-bg-color: #ffffff; +} +.border-color-white { + --f7-theme-color-border-color: #ffffff; +} +.ripple-color-white, +.ripple-white { + --f7-theme-color-ripple-color: rgba(255, 255, 255, 0.3); +} +.color-black { + --f7-theme-color: #000000; + --f7-theme-color-rgb: 0, 0, 0; + --f7-theme-color-shade: #000000; + --f7-theme-color-tint: #141414; +} +.text-color-black { + --f7-theme-color-text-color: #000000; +} +.bg-color-black { + --f7-theme-color-bg-color: #000000; +} +.border-color-black { + --f7-theme-color-border-color: #000000; +} +.ripple-color-black, +.ripple-black { + --f7-theme-color-ripple-color: rgba(0, 0, 0, 0.3); +} +@font-face { + font-family: 'framework7-core-icons'; + src: url("data:application/font-woff;charset=utf-8;base64, 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") format("woff"); + font-weight: 400; + font-style: normal; +} +@font-face { + font-family: 'framework7-skeleton'; + src: url("data:application/font-woff;charset=utf-8;base64, d09GRgABAAAAAAYQAA0AAAAAEcQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAAF9AAAABkAAAAciVvoDU9TLzIAAAGcAAAASwAAAGBRtV1jY21hcAAAAfwAAAC8AAABamglddJjdnQgAAACuAAAAAQAAAAEABEBRGdhc3AAAAXsAAAACAAAAAj //wADZ2x5ZgAAA2wAAACUAAAJjHCzhiRoZWFkAAABMAAAAC4AAAA2ERr/HWhoZWEAAAFgAAAAGgAAACQC8ADFaG10eAAAAegAAAATAAAAtAMAABFsb2NhAAACvAAAAK4AAACuaNBmhG1heHAAAAF8AAAAHwAAACAAmgA5bmFtZQAABAAAAAFQAAACuLf6wytwb3N0AAAFUAAAAJkAAADOCKMIc3jaY2BkYGAA4lUx8ibx/DZfGbiZGEDgRu39AAT9/wAjA+MBIJeDASwNACBICpsAAHjaY2BkYGA88P8Agx6QAQSMYIQCWABQZgK3AAB42mNgZGBgCGPgYGBiAAEQycgAEnNg0AMJAAANJwDUAHjaY2BhZGCcwMDKwMDow5jGwMDgDqW/MkgytDAwMDGwcjLAACMDEghIc01haGBQYKhlPPD/AIMe4wEGB5gaxgNAHgNQjhEA6dgLvQB42mNkYBBkAAJGKB4KAAAOfQAVAHjaY2BgYGaAYBkGRgYQSAHyGMF8FgYPIM3HwMHAxMDGoMSgxWDNEMsQz1D7/z9QXIFBjUGHwRHIT/z////j/w/+3/9/6//N/zeg5iABRjYGuCAjE5BgQlcAdAILK5DBxs7BycXAzcPLxy8gKCQsIiomLiEpBVYjLSMrJ6+gqKSsoqqmrqGppa2jq6dvYGhkbGJqZs5gwWBpZW1ja2fv4Ojk7OLq5u7h6eXt4+vnHxAYFBwSyjDgAABJLiG7ABEBRAAAACoAKgAqADgARgBUAGIAcAB+AIwAmgCoALYAxADYAOYA9AECARABHgEsAToBSAFWAWQBcgGAAY4BnAGqAbgBxgHUAeIB8AH+AgwCGgIoAjYCRAJSAmACbgJ8AooCmAKmArQCwgLQAt4C8gMAAw4DHAMqAzgDRgNUA2IDcAN+A4wDmgOoA7YDxAPSA+AD7gP8BAoEGAQmBDQEQgRQBF4EbAR6BIgEnASqBLgExgAAeNpjYGIQZGBgmMkYysDMwM6gt5GRQd9mEzsLw1ujjWysd2w2MTMBmQwbmUHCrCDhTexsjH9sNjGCxI0FjQXVjQWVBTvK09IYQ/+tFmQ0BprGyMDw/wAjA+MBoJkMooKKgowMDkwM/xgYRuVwyjEhybFDZBXBKv4zQFVBVI6G36jcqNyo3GiZMSo3Kjes8hQAx51w5njapZC9agJBFIXP+EfSBMEXmEoU3GVcBNFWsLEJKbYKhEUnOrjryrggkgfIQ6RMnzZVHiBNijxM6pydHUiRFAEXLvebc8+duXcBXOEFAtXXw41ngQ6ePddwgXfPdYRCeW6gIx49N9EWb55b1L/oFI1Lnq5dV8kCXTx4rqGNV8913OLTcwNdcee5CSmePLeof2CGHHucYGGwxgYFJGdeos8cQWGICQbkGCkSrOjKGJbKgu6EVOoZ7zCuilm+P1mz3hSyt+zLSA0nAxmnycpkxsrFJrFpku3Nis57NpetGkcOYbHFGAEOzJqXao6SY0ebTTJ9zO12HBy2OtVFTvGX66c0d0LhsuVO2m0ScheJKeN/z1beESuRi+pPYJ7vinlu11pGoZJT+cdwVEdBFJSbn7djzLql1/iBlBsidLlcBrG2B8MHlRqGSil51nPfEi6AO3jaXc5ZM4IBAEbhp9RF1FhCRbmyVNYskSXG0CaEQvaf2j/LN112bt6Zc/HOETZiOJAJJmSc15ENmxARFTNpSlzCtBmz5iTNW7AoJR08LFmWlbNi1Zp1G/IKijZt2bZj156SfQcOHSk7dqLi1JlzF6ouXbl241ZNXUNTy522ew8edTx59qKrF3S9edf34dOXbz9+/f0DgycTFgAAAAAAAAH//wACeNpjYGBgZACCGwmaOWC69n4AjAYARC0G1wAAAA==") format("woff"); + font-weight: 300, 400, 500, 600, 700; + font-style: normal, italic; +} +html, +body, +.framework7-root { + position: relative; + height: 100%; + width: 100%; + overflow-x: hidden; +} +body { + margin: 0; + padding: 0; + width: 100%; + background: #fff; + overflow: hidden; + -webkit-text-size-adjust: 100%; + -webkit-font-smoothing: antialiased; + font-family: var(--f7-font-family); + font-size: var(--f7-font-size); + line-height: var(--f7-line-height); + color: var(--f7-text-color); +} +.theme-dark body, +body.theme-dark { + background: #000; +} +.theme-dark { + color: var(--f7-text-color); +} +.framework7-root { + overflow: hidden; + box-sizing: border-box; +} +.framework7-initializing *, +.framework7-initializing *:before, +.framework7-initializing *:after { + transition-duration: 0ms !important; +} +.device-ios, +.device-android { + cursor: pointer; +} +.device-ios { + touch-action: manipulation; +} +@media (width: 1024px) and (height: 691px) and (orientation: landscape) { + html, + body, + .framework7-root { + height: 671px; + } +} +@media (width: 1024px) and (height: 692px) and (orientation: landscape) { + html, + body, + .framework7-root { + height: 672px; + } +} +* { + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); + -webkit-touch-callout: none; +} +a, +input, +textarea, +select { + outline: 0; +} +a { + cursor: pointer; + text-decoration: none; + color: var(--f7-theme-color); +} +.link, +.item-link { + cursor: pointer; +} +p { + margin: 1em 0; +} +.disabled { + opacity: 0.55 !important; + pointer-events: none !important; +} +html.device-full-viewport, +html.device-full-viewport body { + height: 100vh; +} +.ios .md-only, +.ios .if-md, +.ios .aurora-only, +.ios .if-aurora, +.ios .if-not-ios, +.ios .not-ios { + display: none !important; +} +@media (width: 1024px) and (height: 691px) and (orientation: landscape) { + .ios, + .ios body, + .ios .framework7-root { + height: 671px; + } +} +@media (width: 1024px) and (height: 692px) and (orientation: landscape) { + .ios, + .ios body, + .ios .framework7-root { + height: 672px; + } +} +.md .ios-only, +.md .if-ios, +.md .aurora-only, +.md .if-aurora, +.md .if-not-md, +.md .not-md { + display: none !important; +} +.aurora .ios-only, +.aurora .if-ios, +.aurora .md-only, +.aurora .if-md, +.aurora .if-not-aurora, +.aurora .not-aurora { + display: none !important; +} +/* === Statusbar === */ +/* === Views === */ +.views, +.view { + position: relative; + height: 100%; + z-index: 5000; + overflow: hidden; + box-sizing: border-box; +} +.framework7-root > .view, +.framework7-root > .views { + height: calc(100% - var(--f7-appbar-app-offset, 0px)); +} +.view-resize-handler { + width: 6px; + height: 100%; + position: absolute; + left: var(--f7-page-master-width); + margin-left: -3px; + top: 0; + cursor: col-resize; + z-index: 1000; + display: none; +} +.view-master-detail .view-resize-handler { + display: block; +} +/* === Pages === */ +:root { + --f7-page-master-width: 320px; + --f7-page-master-border-color: rgba(0, 0, 0, 0.1); + --f7-page-master-border-width: 1px; + --f7-page-swipeback-transition-duration: 300ms; + --f7-page-parallax-transition-duration: 500ms; + --f7-page-cover-transition-duration: 450ms; + --f7-page-dive-transition-duration: 500ms; + --f7-page-fade-transition-duration: 500ms; + --f7-page-flip-transition-duration: 700ms; + --f7-page-push-transition-duration: 500ms; + /* + --f7-page-content-extra-padding-top: 0px; + --f7-page-content-extra-padding-bottom: 0px; + */ +} +.ios { + --f7-page-transition-duration: 400ms; + --f7-page-bg-color: #efeff4; +} +.ios .theme-dark, +.ios.theme-dark { + --f7-page-bg-color: #000; +} +.md { + --f7-page-transition-duration: 250ms; + --f7-page-bg-color: #fff; +} +.md .theme-dark, +.md.theme-dark { + --f7-page-bg-color: #121212; +} +.aurora { + --f7-page-transition-duration: 400ms; + --f7-page-bg-color: #f3f3f3; +} +.aurora .theme-dark, +.aurora.theme-dark { + --f7-page-bg-color: #121212; +} +.theme-dark { + --f7-page-master-border-color: rgba(255, 255, 255, 0.1); +} +.pages { + position: relative; + width: 100%; + height: 100%; + overflow: hidden; +} +.page { + box-sizing: border-box; + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + transform: none; + background-color: var(--f7-page-bg-color); + z-index: 1; +} +.page.stacked { + display: none; +} +.page-with-navbar-large-collapsed { + --f7-navbar-large-collapse-progress: 1; +} +.page-previous { + pointer-events: none; +} +.page-content { + overflow: auto; + -webkit-overflow-scrolling: touch; + box-sizing: border-box; + height: 100%; + position: relative; + z-index: 1; + padding-top: calc(var(--f7-page-navbar-offset, 0px) + var(--f7-page-toolbar-top-offset, 0px) + var(--f7-page-subnavbar-offset, 0px) + var(--f7-page-searchbar-offset, 0px) + var(--f7-page-content-extra-padding-top, 0px)); + padding-bottom: calc(var(--f7-page-toolbar-bottom-offset, 0px) + var(--f7-safe-area-bottom) + var(--f7-page-content-extra-padding-bottom, 0px)); +} +.page-transitioning, +.page-transitioning .page-shadow-effect, +.page-transitioning .page-opacity-effect { + transition-duration: var(--f7-page-transition-duration); +} +.page-transitioning-swipeback, +.page-transitioning-swipeback .page-shadow-effect, +.page-transitioning-swipeback .page-opacity-effect { + transition-duration: var(--f7-page-swipeback-transition-duration); +} +.router-transition-forward .page-next, +.router-transition-backward .page-next, +.router-transition-forward .page-current, +.router-transition-backward .page-current, +.router-transition-forward .page-previous:not(.stacked), +.router-transition-backward .page-previous:not(.stacked) { + pointer-events: none; +} +.page-shadow-effect { + position: absolute; + top: 0; + width: 16px; + bottom: 0; + z-index: -1; + content: ''; + opacity: 0; + right: 100%; + background: linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 10%, rgba(0, 0, 0, 0.01) 50%, rgba(0, 0, 0, 0.2) 100%); +} +.page-opacity-effect { + position: absolute; + left: 0; + top: 0; + background: rgba(0, 0, 0, 0.1); + width: 100%; + bottom: 0; + content: ''; + opacity: 0; + z-index: 10000; +} +.ios .page-previous { + transform: translate3d(-20%, 0, 0); +} +.ios .page-next { + transform: translate3d(100%, 0, 0); +} +.ios .page-previous .page-opacity-effect { + opacity: 1; +} +.ios .page-previous:after { + opacity: 1; +} +.ios .page-current .page-shadow-effect { + opacity: 1; +} +.ios .router-transition-forward .page-next { + animation: ios-page-next-to-current var(--f7-page-transition-duration) forwards; +} +.ios .router-transition-forward .page-next:before { + position: absolute; + top: 0; + width: 16px; + bottom: 0; + z-index: -1; + content: ''; + opacity: 0; + right: 100%; + background: linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 10%, rgba(0, 0, 0, 0.01) 50%, rgba(0, 0, 0, 0.2) 100%); + animation: ios-page-element-fade-in var(--f7-page-transition-duration) forwards; +} +.ios .router-transition-forward .page-current { + animation: ios-page-current-to-previous var(--f7-page-transition-duration) forwards; +} +.ios .router-transition-forward .page-current:after { + position: absolute; + left: 0; + top: 0; + background: rgba(0, 0, 0, 0.1); + width: 100%; + bottom: 0; + content: ''; + opacity: 0; + z-index: 10000; + animation: ios-page-element-fade-in var(--f7-page-transition-duration) forwards; +} +.ios .router-transition-backward .page-previous { + animation: ios-page-previous-to-current var(--f7-page-transition-duration) forwards; +} +.ios .router-transition-backward .page-previous:after { + position: absolute; + left: 0; + top: 0; + background: rgba(0, 0, 0, 0.1); + width: 100%; + bottom: 0; + content: ''; + opacity: 0; + z-index: 10000; + animation: ios-page-element-fade-out var(--f7-page-transition-duration) forwards; +} +.ios .router-transition-backward .page-current { + animation: ios-page-current-to-next var(--f7-page-transition-duration) forwards; +} +.ios .router-transition-backward .page-current:before { + position: absolute; + top: 0; + width: 16px; + bottom: 0; + z-index: -1; + content: ''; + opacity: 0; + right: 100%; + background: linear-gradient(to right, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 10%, rgba(0, 0, 0, 0.01) 50%, rgba(0, 0, 0, 0.2) 100%); + animation: ios-page-element-fade-out var(--f7-page-transition-duration) forwards; +} +@keyframes ios-page-next-to-current { + from { + transform: translate3d(100%, 0, 0); + } + to { + transform: translate3d(0%, 0, 0); + } +} +@keyframes ios-page-previous-to-current { + from { + transform: translate3d(-20%, 0, 0); + } + to { + transform: translate3d(0%, 0, 0); + } +} +@keyframes ios-page-current-to-previous { + from { + transform: translate3d(0, 0, 0); + } + to { + transform: translate3d(-20%, 0, 0); + } +} +@keyframes ios-page-current-to-next { + from { + transform: translate3d(0, 0, 0); + } + to { + transform: translate3d(100%, 0, 0); + } +} +@keyframes ios-page-element-fade-in { + from { + opacity: 0; + } + to { + opacity: 1; + } +} +@keyframes ios-page-element-fade-out { + from { + opacity: 1; + } + to { + opacity: 0; + } +} +.md .page-next { + transform: translate3d(0, 56px, 0); + opacity: 0; + pointer-events: none; +} +.md .page-next.page-next-on-right { + transform: translate3d(100%, 0, 0); +} +.md .router-transition-forward .page-next { + animation: md-page-next-to-current var(--f7-page-transition-duration) forwards; +} +.md .router-transition-forward .page-current { + animation: none; +} +.md .router-transition-backward .page-current { + animation: md-page-current-to-next var(--f7-page-transition-duration) forwards; +} +.md .router-transition-backward .page-previous { + animation: none; +} +@keyframes md-page-next-to-current { + from { + transform: translate3d(0, 56px, 0); + opacity: 0; + } + to { + transform: translate3d(0, 0px, 0); + opacity: 1; + } +} +@keyframes md-page-current-to-next { + from { + transform: translate3d(0, 0, 0); + opacity: 1; + } + to { + transform: translate3d(0, 56px, 0); + opacity: 0; + } +} +.aurora .page-next { + pointer-events: none; + transform: translate3d(100%, 0px, 0); +} +.aurora .page-next.page-next-on-right { + transform: translate3d(100%, 0, 0); +} +.aurora .page-previous .page-opacity-effect { + opacity: 1; +} +.aurora .page-previous:after { + opacity: 1; +} +.aurora .router-transition-forward .page-next { + animation: aurora-page-next-to-current var(--f7-page-transition-duration) forwards; +} +.aurora .router-transition-forward .page-current { + animation: none; +} +.aurora .router-transition-forward .page-current:after { + position: absolute; + left: 0; + top: 0; + background: rgba(0, 0, 0, 0.1); + width: 100%; + bottom: 0; + content: ''; + opacity: 0; + z-index: 10000; + animation: aurora-page-element-fade-in var(--f7-page-transition-duration) forwards; +} +.aurora .router-transition-backward .page-current { + animation: aurora-page-current-to-next var(--f7-page-transition-duration) forwards; +} +.aurora .router-transition-backward .page-previous { + animation: none; +} +.aurora .router-transition-backward .page-previous:after { + position: absolute; + left: 0; + top: 0; + background: rgba(0, 0, 0, 0.1); + width: 100%; + bottom: 0; + content: ''; + opacity: 0; + z-index: 10000; + animation: aurora-page-element-fade-out var(--f7-page-transition-duration) forwards; +} +@keyframes aurora-page-next-to-current { + from { + transform: translate3d(100%, 0, 0); + } + to { + transform: translate3d(0, 0px, 0); + } +} +@keyframes aurora-page-current-to-next { + from { + transform: translate3d(0, 0, 0); + } + to { + transform: translate3d(100%, 0, 0); + } +} +@keyframes aurora-page-element-fade-in { + from { + opacity: 0; + } + to { + opacity: 1; + } +} +@keyframes aurora-page-element-fade-out { + from { + opacity: 1; + } + to { + opacity: 0; + } +} +.view:not(.view-master-detail) .page-master-stacked { + display: none; +} +.view:not(.view-master-detail) .navbar-master-stacked { + display: none; +} +.view-master-detail .page-master, +.view-master-detail .navbar-master { + width: var(--f7-page-master-width); + --f7-safe-area-right: 0px; + --f7-safe-area-outer-right: 0px; + border-right: var(--f7-page-master-border-width) solid var(--f7-page-master-border-color); +} +.view-master-detail .page-master-detail, +.view-master-detail .navbar-master-detail { + width: calc(100% - var(--f7-page-master-width)); + --f7-safe-area-left: 0px; + --f7-safe-area-outer-left: 0px; + left: var(--f7-page-master-width); +} +.view-master-detail .page-master { + z-index: 2; + transform: none; + pointer-events: auto; +} +.view-master-detail .page-master:before, +.view-master-detail .page-master:after { + display: none; +} +.view-master-detail.router-transition .page-master { + animation: none; +} +.md .router-transition-custom .page-previous, +.ios .router-transition-custom .page-previous, +.aurora .router-transition-custom .page-previous, +.md .router-transition-custom .page-next, +.ios .router-transition-custom .page-next, +.aurora .router-transition-custom .page-next { + opacity: 1; + transform: none; +} +.router-transition-f7-circle-forward:after, +.router-transition-f7-circle-backward:after { + content: ''; + position: absolute; + left: 50%; + top: 50%; + width: 100vmax; + height: 100vmax; + margin-left: -50vmax; + margin-top: -50vmax; + background: var(--f7-page-bg-color); + z-index: 100; +} +.router-transition-f7-circle-forward:after { + transform: scale(0); + border-radius: 50%; + animation: f7-circle-circle-in 400ms forwards; +} +.router-transition-f7-circle-forward .page-next { + opacity: 0 !important; + transform: scale(0.9) !important; + animation: f7-circle-next-to-current 300ms forwards; + animation-delay: 300ms; + z-index: 150; +} +.router-transition-f7-circle-backward:after { + animation: f7-circle-circle-out 300ms forwards; + animation-delay: 350ms; +} +.router-transition-f7-circle-backward .page-current { + animation: f7-circle-current-to-next 700ms forwards; + z-index: 150; +} +@keyframes f7-circle-circle-in { + from { + transform: scale(0); + border-radius: 50%; + } + 50% { + border-radius: 50%; + } + to { + transform: scale(1); + border-radius: 0%; + } +} +@keyframes f7-circle-circle-out { + from { + transform: scale(1); + border-radius: 0%; + } + 50% { + border-radius: 50%; + } + to { + transform: scale(0); + border-radius: 50%; + } +} +@keyframes f7-circle-next-to-current { + from { + transform: scale(0.9); + opacity: 0; + } + 40% { + transform: scale(1.035); + opacity: 1; + } + to { + transform: scale(1); + opacity: 1; + } +} +@keyframes f7-circle-current-to-next { + from { + transform: scale(1); + opacity: 1; + } + 34% { + transform: scale(1.035); + opacity: 1; + } + 57% { + transform: scale(0.9); + opacity: 0; + } + to { + transform: scale(0.9); + opacity: 0; + } +} +.router-transition-f7-cover-v-forward, +.router-transition-f7-cover-v-backward { + background: #000; + perspective: 1200px; +} +.router-transition-f7-cover-v-forward .page-next { + animation: f7-cover-v-next-to-current var(--f7-page-cover-transition-duration) forwards; +} +.router-transition-f7-cover-v-forward .page-current { + animation: f7-cover-v-current-to-prev var(--f7-page-cover-transition-duration) forwards; +} +.router-transition-f7-cover-v-backward .page-current { + animation: f7-cover-v-current-to-next var(--f7-page-cover-transition-duration) forwards; +} +.router-transition-f7-cover-v-backward .page-previous { + animation: f7-cover-v-prev-to-current var(--f7-page-cover-transition-duration) forwards; +} +@keyframes f7-cover-v-next-to-current { + from { + transform: translateY(100%); + } + to { + transform: translateY(0%); + } +} +@keyframes f7-cover-v-current-to-next { + from { + transform: translateY(0%); + } + to { + transform: translateY(100%); + } +} +@keyframes f7-cover-v-current-to-prev { + from { + transform: translateZ(0); + opacity: 1; + } + to { + transform: translateZ(-300px); + opacity: 0.5; + } +} +@keyframes f7-cover-v-prev-to-current { + from { + transform: translateZ(-300px); + opacity: 0.5; + } + to { + transform: translateZ(0); + opacity: 1; + } +} +.router-transition-f7-cover-forward, +.router-transition-f7-cover-backward { + background: #000; + perspective: 1200px; +} +.router-transition-f7-cover-forward .page-next { + animation: f7-cover-next-to-current var(--f7-page-cover-transition-duration) forwards; +} +.router-transition-f7-cover-forward .page-current { + animation: f7-cover-current-to-prev var(--f7-page-cover-transition-duration) forwards; +} +.router-transition-f7-cover-backward .page-current { + animation: f7-cover-current-to-next var(--f7-page-cover-transition-duration) forwards; +} +.router-transition-f7-cover-backward .page-previous { + animation: f7-cover-prev-to-current var(--f7-page-cover-transition-duration) forwards; +} +@keyframes f7-cover-next-to-current { + from { + transform: translateX(100%); + } + to { + transform: translateX(0%); + } +} +@keyframes f7-cover-current-to-next { + from { + transform: translateX(0%); + } + to { + transform: translateX(100%); + } +} +@keyframes f7-cover-current-to-prev { + from { + transform: translateZ(0); + opacity: 1; + } + to { + transform: translateZ(-300px); + opacity: 0.5; + } +} +@keyframes f7-cover-prev-to-current { + from { + transform: translateZ(-300px); + opacity: 0.5; + } + to { + transform: translateZ(0); + opacity: 1; + } +} +.router-transition-f7-dive-forward, +.router-transition-f7-dive-backward { + background: var(--f7-page-bg-color); + perspective: 1200px; +} +.router-transition-f7-dive-forward .page-next { + animation: f7-dive-next-to-current var(--f7-page-dive-transition-duration) forwards; +} +.router-transition-f7-dive-forward .page-current { + animation: f7-dive-current-to-prev var(--f7-page-dive-transition-duration) forwards; +} +.router-transition-f7-dive-backward .page-current { + animation: f7-dive-current-to-next var(--f7-page-dive-transition-duration) forwards; +} +.router-transition-f7-dive-backward .page-previous { + animation: f7-dive-prev-to-current var(--f7-page-dive-transition-duration) forwards; +} +@keyframes f7-dive-next-to-current { + from { + opacity: 0; + transform: translateZ(-150px); + } + 50% { + opacity: 0; + } + to { + opacity: 1; + transform: translateZ(0px); + } +} +@keyframes f7-dive-current-to-next { + from { + opacity: 1; + transform: translateZ(0px); + } + 50% { + opacity: 0; + } + to { + opacity: 0; + transform: translateZ(-150px); + } +} +@keyframes f7-dive-current-to-prev { + from { + transform: translateZ(0px); + opacity: 1; + } + 50% { + opacity: 0; + } + to { + opacity: 0; + transform: translateZ(150px); + } +} +@keyframes f7-dive-prev-to-current { + from { + opacity: 0; + transform: translateZ(150px); + } + 50% { + opacity: 0; + } + to { + opacity: 1; + transform: translateZ(0px); + } +} +.router-transition-f7-fade-forward, +.router-transition-f7-fade-backward { + background: var(--f7-page-bg-color); +} +.router-transition-f7-fade-forward .page-next { + opacity: 0 !important; + animation: f7-fade-in var(--f7-page-fade-transition-duration) forwards; +} +.router-transition-f7-fade-forward .page-current { + animation: f7-fade-out var(--f7-page-fade-transition-duration) forwards; +} +.router-transition-f7-fade-backward .page-current { + animation: f7-fade-out var(--f7-page-fade-transition-duration) forwards; +} +.router-transition-f7-fade-backward .page-previous { + animation: f7-fade-in var(--f7-page-fade-transition-duration) forwards; +} +@keyframes f7-fade-in { + from { + opacity: 0; + } + 50% { + opacity: 0; + } + to { + opacity: 1; + } +} +@keyframes f7-fade-out { + from { + opacity: 1; + } + 50% { + opacity: 0; + } + to { + opacity: 0; + } +} +.router-transition-f7-flip-forward, +.router-transition-f7-flip-backward { + background: #000; + perspective: 1200px; +} +.router-transition-f7-flip-forward .page, +.router-transition-f7-flip-backward .page { + -webkit-backface-visibility: hidden; + backface-visibility: hidden; +} +.router-transition-f7-flip-forward .page-next { + animation: f7-flip-next-to-current var(--f7-page-flip-transition-duration) forwards; +} +.router-transition-f7-flip-forward .page-current { + animation: f7-flip-current-to-prev var(--f7-page-flip-transition-duration) forwards; +} +.router-transition-f7-flip-backward .page-current { + animation: f7-flip-current-to-next var(--f7-page-flip-transition-duration) forwards; +} +.router-transition-f7-flip-backward .page-previous { + animation: f7-flip-prev-to-current var(--f7-page-flip-transition-duration) forwards; +} +@keyframes f7-flip-next-to-current { + from { + border-radius: 30px; + transform: translateZ(-100vmax) rotateY(180deg); + } + to { + border-radius: 0; + transform: translateZ(0px) rotateY(0deg); + } +} +@keyframes f7-flip-current-to-next { + from { + border-radius: 0px; + transform: translateZ(0px) rotateY(0deg); + } + to { + border-radius: 30px; + transform: translateZ(-100vmax) rotateY(180deg); + } +} +@keyframes f7-flip-current-to-prev { + from { + border-radius: 0px; + transform: translateZ(0px) rotateY(0deg); + } + to { + border-radius: 30px; + transform: translateZ(-100vmax) rotateY(-180deg); + } +} +@keyframes f7-flip-prev-to-current { + from { + border-radius: 30px; + transform: translateZ(-100vmax) rotateY(-180deg); + } + to { + border-radius: 0px; + transform: translateZ(0px) rotateY(0deg); + } +} +.router-transition-f7-parallax-forward .page-next { + animation: f7-parallax-next-to-current var(--f7-page-parallax-transition-duration) forwards; +} +.router-transition-f7-parallax-forward .page-current { + animation: f7-parallax-current-to-prev var(--f7-page-parallax-transition-duration) forwards; +} +.router-transition-f7-parallax-backward .page-current { + animation: f7-parallax-current-to-next var(--f7-page-parallax-transition-duration) forwards; +} +.router-transition-f7-parallax-backward .page-previous { + animation: f7-parallax-prev-to-current var(--f7-page-parallax-transition-duration) forwards; +} +@keyframes f7-parallax-next-to-current { + from { + transform: translateX(100%); + } + to { + transform: translateX(0%); + } +} +@keyframes f7-parallax-current-to-next { + from { + transform: translateX(0%); + } + to { + transform: translateX(100%); + } +} +@keyframes f7-parallax-current-to-prev { + from { + transform: translateX(0%); + } + to { + transform: translateX(-20%); + } +} +@keyframes f7-parallax-prev-to-current { + from { + transform: translateX(-20%); + } + to { + transform: translateX(0%); + } +} +.router-transition-f7-push-forward .page-next { + animation: f7-push-next-to-current var(--f7-page-push-transition-duration) forwards; +} +.router-transition-f7-push-forward .page-current { + animation: f7-push-current-to-prev var(--f7-page-push-transition-duration) forwards; +} +.router-transition-f7-push-backward .page-current { + animation: f7-push-current-to-next var(--f7-page-push-transition-duration) forwards; +} +.router-transition-f7-push-backward .page-previous { + animation: f7-push-prev-to-current var(--f7-page-push-transition-duration) forwards; +} +@keyframes f7-push-next-to-current { + from { + transform: translateX(100%); + } + to { + transform: translateX(0%); + } +} +@keyframes f7-push-current-to-next { + from { + transform: translateX(0%); + } + to { + transform: translateX(100%); + } +} +@keyframes f7-push-current-to-prev { + from { + transform: translateX(0%); + } + to { + transform: translateX(-100%); + } +} +@keyframes f7-push-prev-to-current { + from { + transform: translateX(-100%); + } + to { + transform: translateX(0%); + } +} +/* === Link === */ +:root { + --f7-link-highlight-black: rgba(0, 0, 0, 0.1); + --f7-link-highlight-white: rgba(255, 255, 255, 0.15); + --f7-link-highlight-color: var(--f7-link-highlight-black); +} +.theme-dark { + --f7-link-highlight-color: var(--f7-link-highlight-white); +} +.link, +.tab-link { + display: inline-flex; + align-items: center; + align-content: center; + justify-content: center; + position: relative; + box-sizing: border-box; + z-index: 1; +} +.link i + span, +.link i + i, +.link span + i, +.link span + span { + margin-left: 4px; +} +.ios .link { + transition: opacity 300ms; +} +.ios .link.active-state { + opacity: 0.3; + transition-duration: 0ms; +} +.aurora .link { + transition: opacity 300ms; +} +.aurora .link.active-state { + opacity: 0.3; + transition-duration: 0ms; +} +/* === Navbar === */ +:root { + /* + --f7-navbar-bg-color: var(--f7-bars-bg-color); + --f7-navbar-bg-color-rgb: var(--f7-bars-bg-color-rgb); + --f7-navbar-bg-image: var(--f7-bars-bg-image); + --f7-navbar-border-color: var(--f7-bars-border-color); + --f7-navbar-link-color: var(--f7-bars-link-color); + --f7-navbar-text-color: var(--f7-bars-text-color); + */ + --f7-navbar-hide-show-transition-duration: 400ms; + --f7-navbar-title-line-height: 1.2; + --f7-navbar-title-font-size: inherit; + --f7-navbar-subtitle-text-align: inherit; + --f7-navbar-large-title-line-height: 1.2; + --f7-navbar-large-title-text-color: inherit; + --f7-navbar-large-title-padding-left: 16px; + --f7-navbar-large-title-padding-right: 16px; +} +.ios { + --f7-navbar-height: 44px; + --f7-navbar-tablet-height: 44px; + --f7-navbar-font-size: 17px; + --f7-navbar-inner-padding-left: 8px; + --f7-navbar-inner-padding-right: 8px; + --f7-navbar-title-font-weight: 600; + --f7-navbar-title-margin-left: 0; + --f7-navbar-title-margin-right: 0; + --f7-navbar-title-text-align: center; + --f7-navbar-subtitle-font-size: 10px; + --f7-navbar-subtitle-line-height: 1; + --f7-navbar-shadow-image: none; + --f7-navbar-large-title-height: 52px; + --f7-navbar-large-title-font-size: 34px; + --f7-navbar-large-title-font-weight: 700; + --f7-navbar-large-title-letter-spacing: -0.03em; + --f7-navbar-large-title-padding-vertical: 6px; + /* + --f7-navbar-link-height: var(--f7-navbar-height); + --f7-navbar-link-line-height: var(--f7-navbar-height); + */ + --f7-navbar-subtitle-text-color: rgba(0, 0, 0, 0.55); +} +.ios .theme-dark, +.ios.theme-dark { + --f7-navbar-subtitle-text-color: rgba(255, 255, 255, 0.55); +} +.md { + --f7-navbar-height: 56px; + --f7-navbar-tablet-height: 64px; + --f7-navbar-font-size: 20px; + --f7-navbar-inner-padding-left: 0px; + --f7-navbar-inner-padding-right: 0px; + --f7-navbar-title-font-weight: 500; + --f7-navbar-title-margin-left: 16px; + --f7-navbar-title-margin-right: 16px; + --f7-navbar-title-text-align: left; + --f7-navbar-subtitle-font-size: 14px; + --f7-navbar-subtitle-line-height: 1.2; + --f7-navbar-shadow-image: var(--f7-bars-shadow-bottom-image); + --f7-navbar-large-title-font-size: 34px; + --f7-navbar-large-title-height: 56px; + --f7-navbar-large-title-font-weight: 500; + --f7-navbar-large-title-letter-spacing: 0; + --f7-navbar-large-title-padding-vertical: 8px; + /* + --f7-navbar-link-height: var(--f7-navbar-height); + --f7-navbar-link-line-height: var(--f7-navbar-height); + */ + --f7-navbar-subtitle-text-color: rgba(0, 0, 0, 0.85); +} +.md .theme-dark, +.md.theme-dark { + --f7-navbar-subtitle-text-color: rgba(255, 255, 255, 0.85); +} +.aurora { + --f7-navbar-height: 38px; + --f7-navbar-tablet-height: 38px; + --f7-navbar-font-size: 14px; + --f7-navbar-inner-padding-left: 16px; + --f7-navbar-inner-padding-right: 16px; + --f7-navbar-title-font-weight: 600; + --f7-navbar-title-margin-left: 0; + --f7-navbar-title-margin-right: 0; + --f7-navbar-title-text-align: center; + --f7-navbar-subtitle-font-size: 12px; + --f7-navbar-subtitle-line-height: 1; + --f7-navbar-shadow-image: none; + --f7-navbar-large-title-height: 38px; + --f7-navbar-large-title-font-size: 26px; + --f7-navbar-large-title-font-weight: bold; + --f7-navbar-large-title-letter-spacing: -0.03em; + --f7-navbar-large-title-padding-vertical: 4px; + --f7-navbar-link-height: auto; + --f7-navbar-link-line-height: inherit; + --f7-navbar-subtitle-text-color: rgba(0, 0, 0, 0.6); +} +.aurora .theme-dark, +.aurora.theme-dark { + --f7-navbar-subtitle-text-color: rgba(255, 255, 255, 0.5); +} +.navbars, +.navbar { + z-index: 500; + left: 0; + top: 0; + width: 100%; +} +.navbars { + position: absolute; +} +.navbars .navbar { + z-index: auto; +} +.navbar { + --f7-navbar-large-collapse-progress: 0; + position: relative; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + box-sizing: border-box; + margin: 0; + height: calc(var(--f7-navbar-height) + var(--f7-safe-area-top)); + color: var(--f7-navbar-text-color, var(--f7-bars-text-color)); + font-size: var(--f7-navbar-font-size); +} +.navbar.stacked { + display: none; +} +.navbar b { + font-weight: 500; +} +.navbar a { + color: var(--f7-navbar-link-color, var(--f7-bars-link-color, var(--f7-theme-color))); +} +.navbar a.link { + display: flex; + justify-content: flex-start; + line-height: var(--f7-navbar-link-line-height, var(--f7-navbar-height)); + height: var(--f7-navbar-link-height, var(--f7-navbar-height)); +} +.navbar .title, +.navbar .left, +.navbar .right { + position: relative; + z-index: 10; +} +.navbar .title { + position: relative; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + flex-shrink: 10; + font-weight: var(--f7-navbar-title-font-weight); + display: inline-block; + line-height: var(--f7-navbar-title-line-height); + text-align: var(--f7-navbar-title-text-align); + font-size: var(--f7-navbar-title-font-size); + margin-left: var(--f7-navbar-title-margin-left); + margin-right: var(--f7-navbar-title-margin-left); +} +.navbar .subtitle { + display: block; + color: var(--f7-navbar-subtitle-text-color); + font-weight: normal; + font-size: var(--f7-navbar-subtitle-font-size); + line-height: var(--f7-navbar-subtitle-line-height); + text-align: var(--f7-navbar-subtitle-text-align); +} +.navbar .left, +.navbar .right { + flex-shrink: 0; + display: flex; + justify-content: flex-start; + align-items: center; +} +.navbar .right:first-child { + position: absolute; + height: 100%; +} +.navbar.no-hairline .navbar-bg:after, +.navbar.no-border .navbar-bg:after, +.navbar .no-hairline .navbar-bg:after, +.navbar .no-border .navbar-bg:after { + display: none !important; +} +.navbar.no-hairline .title-large:after, +.navbar.no-border .title-large:after, +.navbar .no-hairline .title-large:after, +.navbar .no-border .title-large:after { + display: none !important; +} +.navbar.no-shadow .navbar-bg:before, +.navbar .no-shadow .navbar-bg:before { + display: none !important; +} +.navbar.navbar-hidden .navbar-bg:before, +.navbar-hidden .navbar .navbar-bg:before { + opacity: 0 !important; +} +.navbar-bg { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + pointer-events: none; + z-index: 0; + background: var(--f7-navbar-bg-color); + background-image: var(--f7-navbar-bg-image, var(--f7-bars-bg-image)); + background-color: var(--f7-navbar-bg-color, var(--f7-bars-bg-color)); + transition-property: transform; +} +@supports ((-webkit-backdrop-filter: blur(20px)) or (backdrop-filter: blur(20px))) { + .ios-translucent-bars .navbar-bg { + background-color: rgba(var(--f7-navbar-bg-color-rgb, var(--f7-bars-bg-color-rgb)), var(--f7-bars-translucent-opacity)); + -webkit-backdrop-filter: saturate(180%) blur(var(--f7-bars-translucent-blur)); + backdrop-filter: saturate(180%) blur(var(--f7-bars-translucent-blur)); + } +} +.navbar-bg:after, +.navbar-bg:before { + -webkit-backface-visibility: hidden; + backface-visibility: hidden; +} +.navbar-bg:after { + content: ''; + position: absolute; + background-color: var(--f7-navbar-border-color, var(--f7-bars-border-color)); + display: block; + z-index: 15; + top: auto; + right: auto; + bottom: 0; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 100%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +.navbar-bg:before { + content: ''; + position: absolute; + right: 0; + width: 100%; + top: 100%; + bottom: auto; + height: 8px; + pointer-events: none; + background: var(--f7-navbar-shadow-image); +} +.navbar-bg:after { + z-index: 1; +} +@media (min-width: 768px) and (min-height: 600px) { + :root { + --f7-navbar-height: var(--f7-navbar-tablet-height); + } +} +.navbar-transitioning, +.navbar-transitioning .left, +.navbar-transitioning .title, +.navbar-transitioning .right, +.navbar-transitioning .title-large-text, +.navbar-transitioning .navbar-bg, +.navbar-transitioning .subnavbar, +.navbar-transitioning .navbar-bg:before { + transition-duration: var(--f7-navbar-hide-show-transition-duration); +} +.navbar-page-transitioning { + transition-duration: var(--f7-page-swipeback-transition-duration) !important; +} +.navbar-page-transitioning .title-large-text, +.navbar-page-transitioning .navbar-bg { + transition-duration: var(--f7-page-swipeback-transition-duration) !important; +} +.navbar-hidden { + transform: translate3d(0, calc(-1 * var(--f7-navbar-height)), 0); +} +.navbar-hidden .navbar-inner { + pointer-events: none; +} +.navbar-hidden .navbar-inner > .left, +.navbar-hidden .navbar-inner > .title, +.navbar-hidden .navbar-inner > .right { + opacity: 0 !important; +} +.navbar-hidden .subnavbar { + pointer-events: auto; +} +.navbar-hidden-statusbar { + transform: translate3d(0, calc(-1 * var(--f7-navbar-height) - var(--f7-safe-area-top)), 0); +} +.navbar-large-hidden .navbar-large { + --f7-navbar-large-collapse-progress: 1; +} +.navbar-inner { + position: absolute; + left: 0; + bottom: 0; + width: 100%; + height: 100%; + display: flex; + align-items: center; + box-sizing: border-box; + padding: var(--f7-safe-area-top) calc(var(--f7-navbar-inner-padding-right) + var(--f7-safe-area-right)) 0 calc(var(--f7-navbar-inner-padding-left) + var(--f7-safe-area-left)); + transform: translate3d(0, 0, 0); + z-index: 10; +} +.views > .navbar, +.view > .navbar, +.page > .navbar, +.navbars > .navbar { + position: absolute; +} +.navbar-transparent:not(.navbar-large):not(.navbar-transparent-visible):not(.with-searchbar-expandable-enabled) .navbar-bg, +.navbar-transparent:not(.navbar-large):not(.navbar-transparent-visible):not(.with-searchbar-expandable-enabled) .title { + opacity: 0; +} +.navbar-large .navbar-bg { + height: calc(100% + var(--f7-navbar-large-title-height)); + transform: translate3d(0px, calc(-1 * var(--f7-navbar-large-collapse-progress) * var(--f7-navbar-large-title-height)), 0); +} +.navbar-large-transparent .navbar-bg, +.navbar-large.navbar-transparent .navbar-bg { + opacity: var(--f7-navbar-large-collapse-progress); + height: 100%; + transform: none; +} +.ios .router-navbar-transition-to-large .navbar-bg, +.ios .router-navbar-transition-from-large .navbar-bg, +.navbar-bg.ios-swipeback-navbar-bg-large, +.navbar-large-transparent .navbar-bg.ios-swipeback-navbar-bg-large, +.navbar-large.navbar-transparent .navbar-bg.ios-swipeback-navbar-bg-large { + height: calc(100% + var(--f7-navbar-large-title-height)); + transform: translate3d(0px, calc(-1 * var(--f7-navbar-large-collapse-progress) * var(--f7-navbar-large-title-height)), 0); +} +.ios .navbar:not(.navbar-large) .navbar-bg { + --f7-navbar-large-collapse-progress: 1; +} +.navbar-large .title { + opacity: var(--f7-navbar-large-collapse-progress); +} +.navbar-large-collapsed { + --f7-navbar-large-collapse-progress: 1; +} +.navbar-large-collapsed .title-large { + pointer-events: none; +} +.navbar .title-large { + box-sizing: border-box; + position: absolute; + left: 0; + right: 0; + top: 100%; + display: flex; + align-items: flex-end; + white-space: nowrap; + overflow: hidden; + height: var(--f7-navbar-large-title-height); + z-index: 5; +} +.navbar .title-large-text { + text-overflow: ellipsis; + white-space: nowrap; + color: var(--f7-navbar-large-title-text-color); + letter-spacing: var(--f7-navbar-large-title-letter-spacing); + font-size: var(--f7-navbar-large-title-font-size); + font-weight: var(--f7-navbar-large-title-font-weight); + line-height: var(--f7-navbar-large-title-line-height); + padding-left: calc(var(--f7-navbar-large-title-padding-left) + var(--f7-safe-area-left)); + padding-right: calc(var(--f7-navbar-large-title-padding-right) + var(--f7-safe-area-right)); + padding-top: var(--f7-navbar-large-title-padding-vertical); + padding-bottom: var(--f7-navbar-large-title-padding-vertical); + box-sizing: border-box; + overflow: hidden; + width: 100%; + transform: translate3d(0px, calc(-1 * var(--f7-navbar-large-collapse-progress) * var(--f7-navbar-large-title-height)), 0); + transform-origin: calc(var(--f7-navbar-large-title-padding-left) + var(--f7-safe-area-left)) center; +} +.navbar-no-title-large-transition .title-large-text { + transition-duration: 0ms; +} +.navbar ~ *, +.navbars ~ * { + --f7-page-navbar-offset: calc(var(--f7-navbar-height) + var(--f7-safe-area-top)); +} +.navbar ~ * .page-with-navbar-large, +.navbar ~ .page-with-navbar-large, +.navbars ~ * .page-with-navbar-large, +.navbars ~ .page-with-navbar-large, +.page-with-navbar-large .navbar ~ * { + --f7-page-navbar-offset: calc(var(--f7-navbar-height) + var(--f7-navbar-large-title-height) + var(--f7-safe-area-top)); +} +.page.no-navbar, +.page.no-navbar .navbar ~ * { + --f7-page-navbar-offset: var(--f7-safe-area-top); +} +.ios { + --f7-navbarLeftTextOffset: calc(4px + 12px + var(--f7-navbar-inner-padding-left)); + --f7-navbarTitleLargeOffset: var(--f7-navbar-large-title-padding-left); + --f7-navbar-large-transparent-bg-center: translateX(0); + --f7-navbar-large-bg-center-top: translateX(0) translateY(calc(-1 * var(--f7-navbar-large-title-height))); + --f7-navbar-large-bg-center-bottom: translateX(0) translateY(0); + --f7-navbar-large-transparent-bg-left: translateX(-100%); + --f7-navbar-large-bg-left-top: translateX(-100%) translateY(calc(-1 * var(--f7-navbar-large-title-height))); + --f7-navbar-large-bg-left-bottom: translateX(-100%) translateY(0); + --f7-navbar-large-bg-right-top: translateX(100%) translateY(calc(-1 * var(--f7-navbar-large-title-height))); + --f7-navbar-large-bg-right-bottom: translateX(100%) translateY(0); +} +.ios .navbar a.icon-only { + width: 44px; + margin: 0; + justify-content: center; +} +.ios .navbar .left a + a, +.ios .navbar .right a + a { + margin-left: 16px; +} +.ios .navbar b { + font-weight: 600; +} +.ios .navbar .left { + margin-right: 10px; +} +.ios .navbar .right { + margin-left: 10px; +} +.ios .navbar .right:first-child { + right: calc(8px + var(--f7-safe-area-right)); +} +.ios .navbar-inner { + justify-content: space-between; +} +.ios .navbar-inner-left-title { + justify-content: flex-start; +} +.ios .navbar-inner-left-title .right { + margin-left: auto; +} +.ios .navbar-inner-left-title .title { + text-align: left; + margin-right: 10px; +} +.ios .view-master-detail .navbar-previous:not(.navbar-master) .left, +.ios .view:not(.view-master-detail) .navbar-previous .left, +.ios .navbar-next .left, +.ios .view-master-detail .navbar-previous:not(.navbar-master) .title, +.ios .view:not(.view-master-detail) .navbar-previous .title, +.ios .navbar-next .title, +.ios .view-master-detail .navbar-previous:not(.navbar-master) .right, +.ios .view:not(.view-master-detail) .navbar-previous .right, +.ios .navbar-next .right, +.ios .view-master-detail .navbar-previous:not(.navbar-master) .subnavbar, +.ios .view:not(.view-master-detail) .navbar-previous .subnavbar, +.ios .navbar-next .subnavbar, +.ios .view-master-detail .navbar-previous:not(.navbar-master) .fading, +.ios .view:not(.view-master-detail) .navbar-previous .fading, +.ios .navbar-next .fading { + opacity: 0; +} +.ios .view-master-detail .navbar-previous:not(.navbar-master), +.ios .view:not(.view-master-detail) .navbar-previous { + pointer-events: none; +} +.ios .view-master-detail .navbar-previous:not(.navbar-master) .title-large, +.ios .view:not(.view-master-detail) .navbar-previous .title-large { + opacity: 0; + transition-duration: 0ms; +} +.ios .view-master-detail .navbar-previous:not(.navbar-master) .title-large .title-large-text, +.ios .view:not(.view-master-detail) .navbar-previous .title-large .title-large-text { + transform: scale(0.5); + transition-duration: 0ms; +} +.ios .view-master-detail .navbar-previous:not(.navbar-master) .subnavbar.sliding, +.ios .view:not(.view-master-detail) .navbar-previous .subnavbar.sliding, +.ios .view-master-detail .navbar-previous:not(.navbar-master) .sliding .subnavbar, +.ios .view:not(.view-master-detail) .navbar-previous .sliding .subnavbar { + opacity: 1; + transform: translate3d(-100%, 0, 0); +} +.ios .view:not(.view-master-detail) .navbar-previous .navbar-bg, +.ios .view-master-detail .navbar-previous:not(.navbar-master) .navbar-bg { + transform: translateX(-100%); +} +.ios .navbar-next { + pointer-events: none; +} +.ios .navbar-next .navbar-bg { + transform: translateX(100%); +} +.ios .navbar-next .title-large .title-large-text { + transition-duration: 0ms; + transform: translateX(100%) translateY(calc(-1 * var(--f7-navbar-large-title-height))); +} +.ios .navbar-next .subnavbar.sliding, +.ios .navbar-next .sliding .subnavbar { + opacity: 1; + transform: translate3d(100%, 0, 0); +} +.ios .router-transition .navbar, +.ios .router-transition .navbar-bg { + transition-duration: var(--f7-page-transition-duration); +} +.ios .router-transition .navbar-bg { + animation-duration: var(--f7-page-transition-duration); + animation-fill-mode: forwards; +} +.ios .router-transition .title-large, +.ios .router-transition .title-large-text { + transition-duration: 0ms; +} +.ios .router-transition .navbar-current .left, +.ios .router-transition .navbar-current .title, +.ios .router-transition .navbar-current .right, +.ios .router-transition .navbar-current .subnavbar { + animation: ios-navbar-element-fade-out var(--f7-page-transition-duration) forwards; +} +.ios .router-transition .navbar-current .sliding.left, +.ios .router-transition .navbar-current .sliding.left .icon + span, +.ios .router-transition .navbar-current .sliding.title, +.ios .router-transition .navbar-current .sliding.right, +.ios .router-transition .navbar-current .sliding .left, +.ios .router-transition .navbar-current .sliding .left .icon + span, +.ios .router-transition .navbar-current .sliding .title, +.ios .router-transition .navbar-current .sliding .right { + transition-duration: var(--f7-page-transition-duration); + opacity: 0 !important; + animation: none; +} +.ios .router-transition .navbar-current .sliding .subnavbar, +.ios .router-transition .navbar-current .sliding.subnavbar { + transition-duration: var(--f7-page-transition-duration); + animation: none; + opacity: 1; +} +.ios .router-transition-forward .navbar-next .left, +.ios .router-transition-backward .navbar-previous .left, +.ios .router-transition-forward .navbar-next .title, +.ios .router-transition-backward .navbar-previous .title, +.ios .router-transition-forward .navbar-next .right, +.ios .router-transition-backward .navbar-previous .right, +.ios .router-transition-forward .navbar-next .subnavbar, +.ios .router-transition-backward .navbar-previous .subnavbar { + animation: ios-navbar-element-fade-in var(--f7-page-transition-duration) forwards; +} +.ios .router-transition-forward .navbar-next .sliding.left, +.ios .router-transition-backward .navbar-previous .sliding.left, +.ios .router-transition-forward .navbar-next .sliding.left .icon + span, +.ios .router-transition-backward .navbar-previous .sliding.left .icon + span, +.ios .router-transition-forward .navbar-next .sliding.title, +.ios .router-transition-backward .navbar-previous .sliding.title, +.ios .router-transition-forward .navbar-next .sliding.right, +.ios .router-transition-backward .navbar-previous .sliding.right, +.ios .router-transition-forward .navbar-next .sliding .left, +.ios .router-transition-backward .navbar-previous .sliding .left, +.ios .router-transition-forward .navbar-next .sliding .left .icon + span, +.ios .router-transition-backward .navbar-previous .sliding .left .icon + span, +.ios .router-transition-forward .navbar-next .sliding .title, +.ios .router-transition-backward .navbar-previous .sliding .title, +.ios .router-transition-forward .navbar-next .sliding .right, +.ios .router-transition-backward .navbar-previous .sliding .right, +.ios .router-transition-forward .navbar-next .sliding .subnavbar, +.ios .router-transition-backward .navbar-previous .sliding .subnavbar { + transition-duration: var(--f7-page-transition-duration); + animation: none; + transform: translate3d(0, 0, 0) !important; + opacity: 1 !important; +} +.ios .router-transition-forward .navbar-next.navbar-transparent:not(.navbar-large):not(.navbar-transparent-visible) .title, +.ios .router-transition-backward .navbar-previous.navbar-transparent:not(.navbar-large):not(.navbar-transparent-visible) .title { + animation: none; +} +.ios .router-transition-forward .navbar-next.navbar-transparent:not(.navbar-large):not(.navbar-transparent-visible) .sliding.title, +.ios .router-transition-backward .navbar-previous.navbar-transparent:not(.navbar-large):not(.navbar-transparent-visible) .sliding.title, +.ios .router-transition-forward .navbar-next.navbar-transparent:not(.navbar-large):not(.navbar-transparent-visible) .sliding .title, +.ios .router-transition-backward .navbar-previous.navbar-transparent:not(.navbar-large):not(.navbar-transparent-visible) .sliding .title { + opacity: 0 !important; +} +.ios .router-transition-backward .navbar-previous.with-searchbar-expandable-enabled-no-transition .left, +.ios .router-transition-backward .navbar-previous.with-searchbar-expandable-enabled .left, +.ios .router-transition-backward .navbar-previous.with-searchbar-expandable-enabled-no-transition .title, +.ios .router-transition-backward .navbar-previous.with-searchbar-expandable-enabled .title, +.ios .router-transition-backward .navbar-previous.with-searchbar-expandable-enabled-no-transition .right, +.ios .router-transition-backward .navbar-previous.with-searchbar-expandable-enabled .right, +.ios .router-transition-backward .navbar-previous.with-searchbar-expandable-enabled-no-transition .subnavbar, +.ios .router-transition-backward .navbar-previous.with-searchbar-expandable-enabled .subnavbar { + animation: none; +} +.ios .router-transition-forward .navbar-current.router-navbar-transition-from-large.router-navbar-transition-to-large .title-large, +.ios .router-transition-forward .navbar-current.router-navbar-transition-from-large:not(.router-navbar-transition-to-large) .title-large { + overflow: visible; +} +.ios .router-transition-forward .navbar-current.router-navbar-transition-from-large.router-navbar-transition-to-large .title-large .title-large-text, +.ios .router-transition-forward .navbar-current.router-navbar-transition-from-large:not(.router-navbar-transition-to-large) .title-large .title-large-text { + animation: ios-navbar-large-title-text-slide-up var(--f7-page-transition-duration) forwards, ios-navbar-large-title-text-fade-out var(--f7-page-transition-duration) forwards; +} +.ios .router-transition-forward .navbar-next.router-navbar-transition-from-large .left .back span { + animation: ios-navbar-back-text-next-to-current var(--f7-page-transition-duration) forwards; + transition: none; + transform-origin: left center; +} +.ios .router-transition-forward .navbar-next.router-navbar-transition-from-large.router-navbar-transition-to-large .title-large { + overflow: visible; +} +.ios .router-transition-forward .navbar-next.router-navbar-transition-from-large.router-navbar-transition-to-large .title-large .title-large-text { + animation: ios-navbar-large-title-text-slide-left var(--f7-page-transition-duration) forwards; +} +.ios .router-transition-forward .navbar-next.router-navbar-transition-to-large:not(.router-navbar-transition-from-large) .title-large .title-large-text { + animation: ios-navbar-large-title-text-slide-left var(--f7-page-transition-duration) forwards; +} +.ios .router-transition-forward .navbar-next.navbar-large:not(.navbar-large-collapsed) .title, +.ios .router-transition-forward .navbar-current.navbar-large:not(.navbar-large-collapsed) .title { + animation: none; + opacity: 0 !important; + transition-duration: 0; +} +.ios .router-transition-backward .navbar-current.router-navbar-transition-to-large .left .back span { + animation: ios-navbar-back-text-current-to-previous var(--f7-page-transition-duration) forwards; + transition: none; + transform-origin: left center; +} +.ios .router-transition-backward .navbar-current.router-navbar-transition-from-large.router-navbar-transition-to-large .title-large { + overflow: visible; +} +.ios .router-transition-backward .navbar-current.router-navbar-transition-from-large.router-navbar-transition-to-large .title-large .title-large-text { + animation: ios-navbar-large-title-text-slide-right var(--f7-page-transition-duration) forwards; +} +.ios .router-transition-backward .navbar-current.router-navbar-transition-from-large:not(.router-navbar-transition-to-large) .title-large .title-large-text { + animation: ios-navbar-large-title-text-slide-right var(--f7-page-transition-duration) forwards; +} +.ios .router-transition-backward .navbar-current.router-navbar-transition-to-large:not(.router-navbar-transition-from-large) .title-large { + opacity: 0; +} +.ios .router-transition-backward .navbar-previous.router-navbar-transition-from-large.router-navbar-transition-to-large .title-large, +.ios .router-transition-backward .navbar-previous.router-navbar-transition-to-large:not(.router-navbar-transition-from-large) .title-large { + overflow: visible; + opacity: 1; +} +.ios .router-transition-backward .navbar-previous.router-navbar-transition-from-large.router-navbar-transition-to-large .title-large .title-large-text, +.ios .router-transition-backward .navbar-previous.router-navbar-transition-to-large:not(.router-navbar-transition-from-large) .title-large .title-large-text { + animation: ios-navbar-large-title-text-slide-down var(--f7-page-transition-duration) forwards, ios-navbar-large-title-text-fade-in var(--f7-page-transition-duration) forwards; +} +.ios .router-transition-backward .navbar-current.navbar-large:not(.navbar-large-collapsed) .title, +.ios .router-transition-backward .navbar-previous.navbar-large:not(.navbar-large-collapsed) .title { + animation: none; + opacity: 0 !important; + transition-duration: 0; +} +.ios .router-transition-forward .navbar-current .navbar-bg { + animation-name: ios-navbar-bg-from-cb-to-lb; +} +.ios .router-transition-forward .navbar-current.router-navbar-transition-from-large.router-navbar-transition-to-large .navbar-bg { + animation-name: ios-navbar-bg-from-cb-to-lb; +} +.ios .router-transition-forward .navbar-current.router-navbar-transition-from-large:not(.router-navbar-transition-to-large) .navbar-bg { + animation-name: ios-navbar-bg-from-cb-to-lt; +} +.ios .router-transition-forward .navbar-current:not(.router-navbar-transition-from-large).router-navbar-transition-to-large .navbar-bg { + animation-name: ios-navbar-bg-from-ct-to-lb; +} +.ios .router-transition-forward .navbar-current.navbar-large-collapsed:not(.router-navbar-transition-to-large) .navbar-bg { + animation-name: ios-navbar-bg-from-ct-to-lt; +} +.ios .router-transition-forward .navbar-current.navbar-large-collapsed.navbar-large-transparent:not(.router-navbar-transition-to-large) .navbar-bg, +.ios .router-transition-forward .navbar-current.navbar-large-collapsed.navbar-large.navbar-transparent:not(.router-navbar-transition-to-large) .navbar-bg { + animation-name: ios-navbar-transparent-bg-from-c-to-l; +} +.ios .router-transition-forward .navbar-next .navbar-bg { + animation-name: ios-navbar-bg-from-rb-to-cb; +} +.ios .router-transition-forward .navbar-next.router-navbar-transition-from-large.router-navbar-transition-to-large .navbar-bg { + animation-name: ios-navbar-bg-from-rb-to-cb; +} +.ios .router-transition-forward .navbar-next.router-navbar-transition-from-large:not(.router-navbar-transition-to-large) .navbar-bg { + animation-name: ios-navbar-bg-from-rb-to-ct; +} +.ios .router-transition-forward .navbar-next:not(.router-navbar-transition-from-large).router-navbar-transition-to-large .navbar-bg { + animation-name: ios-navbar-bg-from-rt-to-cb; +} +.ios .router-transition-backward .navbar-current .navbar-bg { + animation-name: ios-navbar-bg-from-cb-to-rb; +} +.ios .router-transition-backward .navbar-current:not(.router-navbar-transition-from-large).router-navbar-transition-to-large .navbar-bg { + animation-name: ios-navbar-bg-from-ct-to-rb; +} +.ios .router-transition-backward .navbar-current.router-navbar-transition-from-large:not(.router-navbar-transition-to-large) .navbar-bg { + animation-name: ios-navbar-bg-from-cb-to-rt; +} +.ios .router-transition-backward .navbar-current.navbar-large-collapsed .navbar-bg { + animation-name: ios-navbar-bg-from-ct-to-rt; +} +.ios .router-transition-backward .navbar-current.navbar-large-collapsed.navbar-large-transparent .navbar-bg, +.ios .router-transition-backward .navbar-current.navbar-large-collapsed.navbar-large.navbar-transparent .navbar-bg { + animation-name: ios-navbar-bg-from-cb-to-rb; +} +.ios .router-transition-backward .navbar-current.navbar-large-collapsed.router-navbar-transition-to-large .navbar-bg { + animation-name: ios-navbar-bg-from-ct-to-rb; +} +.ios .router-transition-backward .navbar-previous .navbar-bg { + animation-name: ios-navbar-bg-from-lb-to-cb; +} +.ios .router-transition-backward .navbar-previous:not(.router-navbar-transition-from-large).router-navbar-transition-to-large .navbar-bg { + animation-name: ios-navbar-bg-from-lt-to-cb; +} +.ios .router-transition-backward .navbar-previous.router-navbar-transition-from-large:not(.router-navbar-transition-to-large) .navbar-bg { + animation-name: ios-navbar-bg-from-lb-to-ct; +} +.ios .router-transition-backward .navbar-previous.navbar-large-collapsed .navbar-bg { + animation-name: ios-navbar-bg-from-lt-to-ct; +} +.ios .router-transition-backward .navbar-previous.navbar-large-collapsed.navbar-large-transparent .navbar-bg, +.ios .router-transition-backward .navbar-previous.navbar-large-collapsed.navbar-large.navbar-transparent .navbar-bg { + animation-name: ios-navbar-transparent-bg-from-l-to-c; +} +.ios .router-transition-backward .navbar-previous.navbar-large-collapsed.navbar-large-transparent.router-navbar-transition-from-large .navbar-bg, +.ios .router-transition-backward .navbar-previous.navbar-large-collapsed.navbar-large.navbar-transparent.router-navbar-transition-from-large .navbar-bg { + animation-name: ios-navbar-bg-from-lb-to-ct; +} +.view-master-detail .navbars { + z-index: auto; +} +.view-master-detail .page-master { + z-index: 525; +} +.view-master-detail .navbar-master .navbar-inner, +.view-master-detail .navbar-master .navbar-bg { + z-index: 550; +} +.view-master-detail .navbar-master-detail .navbar-inner, +.view-master-detail .navbar-master-detail .navbar-bg { + z-index: 500; +} +.view-master-detail .navbar-master.navbar-previous { + pointer-events: auto; +} +.view-master-detail .navbar-master.navbar-previous .left, +.view-master-detail .navbar-master.navbar-previous:not(.navbar-large) .title, +.view-master-detail .navbar-master.navbar-previous .right, +.view-master-detail .navbar-master.navbar-previous .subnavbar { + opacity: 1; +} +.view-master-detail.router-transition .navbar-master .left, +.view-master-detail.router-transition .navbar-master .left .icon + span, +.view-master-detail.router-transition .navbar-master:not(.navbar-large) .title, +.view-master-detail.router-transition .navbar-master .right, +.view-master-detail.router-transition .navbar-master .subnavbar, +.view-master-detail.router-transition .navbar-master .fading { + opacity: 1 !important; + transition-duration: 0ms; + transform: none !important; + animation: none !important; +} +.view-master-detail.router-transition .navbar-master .navbar-bg { + transition-duration: 0ms; + animation: none !important; +} +.view-master-detail.router-transition .navbar-master.navbar-large .title { + opacity: calc(-1 + 2 * var(--f7-navbar-large-collapse-progress)) !important; + transition-duration: 0ms; + transform: none !important; + animation: none !important; +} +.view-master-detail.router-transition .navbar-master.navbar-large .title-large, +.view-master-detail.router-transition .navbar-master.navbar-large .title-large-text { + transition-duration: 0ms; + animation: none !important; +} +.view-master-detail.router-transition .navbar-master.navbar-large-transparent .navbar-bg, +.view-master-detail.router-transition .navbar-master.navbar-large.navbar-transparent .navbar-bg { + height: 100% !important; + opacity: var(--f7-navbar-large-collapse-progress) !important; +} +@keyframes ios-navbar-element-fade-in { + 0% { + opacity: 0; + } + 25% { + opacity: 0; + } + to { + opacity: 1; + } +} +@keyframes ios-navbar-element-fade-out { + from { + opacity: 1; + } + 75% { + opacity: 0; + } + to { + opacity: 0; + } +} +@keyframes ios-navbar-large-title-text-slide-up { + 0% { + transform: translateX(0px) translateY(0%) scale(1); + } + 100% { + transform: translateX(calc(var(--f7-navbarLeftTextOffset) - var(--f7-navbarTitleLargeOffset))) translateY(calc(-1 * var(--f7-navbar-large-title-height) + var(--f7-navbar-large-title-padding-vertical))) scale(0.5); + } +} +@keyframes ios-navbar-large-title-text-slide-down { + 0% { + transform: translateX(calc(var(--f7-navbarLeftTextOffset) - var(--f7-navbarTitleLargeOffset))) translateY(calc(-1 * var(--f7-navbar-large-title-height) + var(--f7-navbar-large-title-padding-vertical) / 2)) scale(0.5); + } + 100% { + transform: translateX(0px) translateY(0%) scale(1); + } +} +@keyframes ios-navbar-large-title-text-slide-left { + 0% { + transform: translateX(100%); + } + 100% { + transform: translateX(0%); + } +} +@keyframes ios-navbar-large-title-text-slide-right { + 0% { + transform: translateX(0%); + } + 100% { + transform: translateX(100%); + } +} +@keyframes ios-navbar-large-title-text-fade-out { + 0% { + opacity: 1; + } + 80% { + opacity: 0; + } + 100% { + opacity: 0; + } +} +@keyframes ios-navbar-large-title-text-fade-in { + 0% { + opacity: 0; + } + 20% { + opacity: 0; + } + 100% { + opacity: 1; + } +} +@keyframes ios-navbar-back-text-current-to-previous { + 0% { + opacity: 1; + transform: translateY(0px) translateX(0px) scale(1); + } + 80% { + opacity: 0; + } + 100% { + opacity: 0; + transform: translateX(calc(var(--f7-navbarTitleLargeOffset) - var(--f7-navbarLeftTextOffset))) translateY(calc(1 * var(--f7-navbar-large-title-height) - var(--f7-navbar-large-title-padding-vertical) / 2)) scale(2); + } +} +@keyframes ios-navbar-back-text-next-to-current { + 0% { + opacity: 0; + transform: translateX(calc(var(--f7-navbarTitleLargeOffset) - var(--f7-navbarLeftTextOffset))) translateY(calc(1 * var(--f7-navbar-large-title-height) + var(--f7-navbar-large-title-padding-vertical) / 2)) scale(2); + } + 20% { + opacity: 0; + } + 100% { + opacity: 1; + transform: translateX(0px) translateY(0px) scale(1); + } +} +@keyframes ios-navbar-bg-from-cb-to-lb { + from { + transform: var(--f7-navbar-large-bg-center-bottom); + } + to { + transform: var(--f7-navbar-large-bg-left-bottom); + } +} +@keyframes ios-navbar-bg-from-cb-to-lt { + from { + transform: var(--f7-navbar-large-bg-center-bottom); + } + to { + transform: var(--f7-navbar-large-bg-left-top); + } +} +@keyframes ios-navbar-bg-from-ct-to-lb { + from { + transform: var(--f7-navbar-large-bg-center-top); + } + to { + transform: var(--f7-navbar-large-bg-left-bottom); + } +} +@keyframes ios-navbar-bg-from-ct-to-lt { + from { + transform: var(--f7-navbar-large-bg-center-top); + } + to { + transform: var(--f7-navbar-large-bg-left-top); + } +} +@keyframes ios-navbar-bg-from-rb-to-cb { + from { + transform: var(--f7-navbar-large-bg-right-bottom); + } + to { + transform: var(--f7-navbar-large-bg-center-bottom); + } +} +@keyframes ios-navbar-bg-from-rb-to-ct { + from { + transform: var(--f7-navbar-large-bg-right-bottom); + } + to { + transform: var(--f7-navbar-large-bg-center-top); + } +} +@keyframes ios-navbar-bg-from-rt-to-cb { + from { + transform: var(--f7-navbar-large-bg-right-top); + } + to { + transform: var(--f7-navbar-large-bg-center-bottom); + } +} +@keyframes ios-navbar-bg-from-cb-to-rb { + from { + transform: var(--f7-navbar-large-bg-center-bottom); + } + to { + transform: var(--f7-navbar-large-bg-right-bottom); + } +} +@keyframes ios-navbar-bg-from-ct-to-rb { + from { + transform: var(--f7-navbar-large-bg-center-top); + } + to { + transform: var(--f7-navbar-large-bg-right-bottom); + } +} +@keyframes ios-navbar-bg-from-cb-to-rt { + from { + transform: var(--f7-navbar-large-bg-center-bottom); + } + to { + transform: var(--f7-navbar-large-bg-right-top); + } +} +@keyframes ios-navbar-bg-from-ct-to-rt { + from { + transform: var(--f7-navbar-large-bg-center-top); + } + to { + transform: var(--f7-navbar-large-bg-right-top); + } +} +@keyframes ios-navbar-bg-from-lb-to-cb { + from { + transform: var(--f7-navbar-large-bg-left-bottom); + } + to { + transform: var(--f7-navbar-large-bg-center-bottom); + } +} +@keyframes ios-navbar-bg-from-lt-to-cb { + from { + transform: var(--f7-navbar-large-bg-left-top); + } + to { + transform: var(--f7-navbar-large-bg-center-bottom); + } +} +@keyframes ios-navbar-bg-from-lb-to-ct { + from { + transform: var(--f7-navbar-large-bg-left-bottom); + } + to { + transform: var(--f7-navbar-large-bg-center-top); + } +} +@keyframes ios-navbar-bg-from-lt-to-ct { + from { + transform: var(--f7-navbar-large-bg-left-top); + } + to { + transform: var(--f7-navbar-large-bg-center-top); + } +} +@keyframes ios-navbar-transparent-bg-from-l-to-c { + from { + transform: var(--f7-navbar-large-transparent-bg-left); + } + to { + transform: var(--f7-navbar-large-transparent-bg-center); + } +} +@keyframes ios-navbar-transparent-bg-from-c-to-l { + from { + transform: var(--f7-navbar-large-transparent-bg-center); + } + to { + transform: var(--f7-navbar-large-transparent-bg-left); + } +} +.md .navbar a.link { + padding: 0 16px; + min-width: 48px; +} +.md .navbar a.link:before { + content: ''; + width: 152%; + height: 152%; + position: absolute; + left: -26%; + top: -26%; + background-image: radial-gradient(circle at center, var(--f7-link-highlight-color) 66%, rgba(255, 255, 255, 0) 66%); + background-repeat: no-repeat; + background-position: center; + background-size: 100% 100%; + opacity: 0; + pointer-events: none; + transition-duration: 600ms; +} +.md .navbar a.link.active-state:before { + opacity: 1; + transition-duration: 150ms; +} +.md .navbar a.icon-only { + min-width: 0; + flex-shrink: 0; + width: 56px; +} +.md .navbar .right { + margin-left: auto; +} +.md .navbar .right:first-child { + right: var(--f7-safe-area-right); +} +.md .navbar-inner { + justify-content: flex-start; + overflow: hidden; +} +.md .navbar-large:not(.navbar-large-collapsed) .navbar-inner { + overflow: visible; +} +.md .page.page-with-subnavbar .navbar-inner { + overflow: visible; +} +.md .navbar-inner-centered-title { + justify-content: space-between; +} +.md .navbar-inner-centered-title .right { + margin-left: 0; +} +.md .navbar-inner-centered-title .title { + text-align: center; +} +.aurora .navbar a.icon-only { + margin: 0; + justify-content: center; +} +.aurora .navbar .left a + a, +.aurora .navbar .right a + a { + margin-left: 10px; +} +.aurora .navbar b { + font-weight: bold; +} +.aurora .navbar .left { + margin-right: 10px; +} +.aurora .navbar .right { + margin-left: 10px; +} +.aurora .navbar .right:first-child { + right: calc(16px + var(--f7-safe-area-right)); +} +.aurora .navbar-inner { + justify-content: space-between; +} +.aurora .navbar-inner-left-title { + justify-content: flex-start; +} +.aurora .navbar-inner-left-title .right { + margin-left: auto; +} +.aurora .navbar-inner-left-title .title { + text-align: left; + margin-right: 10px; +} +/* === Toolbar === */ +:root { + /* + --f7-toolbar-bg-color: var(--f7-bars-bg-color); + --f7-toolbar-bg-color-rgb: var(--f7-bars-bg-color-rgb); + --f7-toolbar-bg-image: var(--f7-bars-bg-image); + --f7-toolbar-border-color: var(--f7-bars-border-color); + --f7-toolbar-link-color: var(--f7-bars-link-color); + --f7-toolbar-text-color: var(--f7-bars-text-color); + --f7-tabbar-link-active-color: var(--f7-theme-color); + */ + --f7-tabbar-link-active-bg-color: transparent; + --f7-tabbar-label-text-transform: none; + --f7-toolbar-hide-show-transition-duration: 400ms; +} +.ios { + --f7-toolbar-height: 44px; + --f7-toolbar-font-size: 17px; + --f7-toolbar-inner-padding-left: 8px; + --f7-toolbar-inner-padding-right: 8px; + /* + --f7-toolbar-link-height: var(--f7-toolbar-height); + --f7-toolbar-link-line-height: var(--f7-toolbar-height); + */ + --f7-tabbar-labels-height: 50px; + --f7-tabbar-labels-tablet-height: 50px; + --f7-toolbar-top-shadow-image: none; + --f7-toolbar-bottom-shadow-image: none; + --f7-tabbar-icon-size: 28px; + --f7-tabbar-link-text-transform: none; + --f7-tabbar-link-font-weight: 400; + --f7-tabbar-link-letter-spacing: 0; + --f7-tabbar-label-font-size: 12px; + --f7-tabbar-label-tablet-font-size: 14px; + --f7-tabbar-label-font-weight: 500; + --f7-tabbar-label-letter-spacing: 0.01; + --f7-tabbar-link-inactive-color: rgba(0, 0, 0, 0.4); +} +.ios .theme-dark, +.ios.theme-dark { + --f7-tabbar-link-inactive-color: rgba(255, 255, 255, 0.54); +} +.md { + --f7-toolbar-height: 48px; + --f7-toolbar-font-size: 14px; + --f7-toolbar-inner-padding-left: 0px; + --f7-toolbar-inner-padding-right: 0px; + /* + --f7-toolbar-link-height: var(--f7-toolbar-height); + --f7-toolbar-link-line-height: var(--f7-toolbar-height); + */ + --f7-tabbar-labels-height: 56px; + --f7-tabbar-labels-tablet-height: 56px; + /* + --f7-tabbar-link-active-border-color: var(--f7-theme-color); + */ + --f7-toolbar-top-shadow-image: var(--f7-bars-shadow-bottom-image); + --f7-toolbar-bottom-shadow-image: var(--f7-bars-shadow-top-image); + --f7-tabbar-icon-size: 24px; + --f7-tabbar-link-text-transform: uppercase; + --f7-tabbar-link-font-weight: 500; + --f7-tabbar-link-letter-spacing: 0.03em; + --f7-tabbar-label-font-size: 14px; + --f7-tabbar-label-tablet-font-size: 14px; + --f7-tabbar-label-font-weight: 400; + --f7-tabbar-label-letter-spacing: 0; + --f7-tabbar-link-inactive-color: rgba(0, 0, 0, 0.54); +} +.md .theme-dark, +.md.theme-dark { + --f7-tabbar-link-inactive-color: rgba(255, 255, 255, 0.54); +} +.aurora { + --f7-toolbar-height: 38px; + --f7-toolbar-font-size: 14px; + --f7-toolbar-inner-padding-left: 16px; + --f7-toolbar-inner-padding-right: 16px; + --f7-toolbar-link-height: auto; + --f7-toolbar-link-line-height: inherit; + --f7-tabbar-labels-height: 44px; + --f7-tabbar-labels-tablet-height: 44px; + --f7-tabbar-link-inactive-bg-color: rgba(0, 0, 0, 0.2); + --f7-toolbar-top-shadow-image: none; + --f7-toolbar-bottom-shadow-image: none; + --f7-tabbar-icon-size: 18px; + --f7-tabbar-link-text-transform: none; + --f7-tabbar-link-font-weight: 400; + --f7-tabbar-link-letter-spacing: 0; + --f7-tabbar-label-font-size: 12px; + --f7-tabbar-label-tablet-font-size: 12px; + --f7-tabbar-label-font-weight: 500; + --f7-tabbar-label-letter-spacing: 0.01; + --f7-tabbar-link-inactive-color: rgba(0, 0, 0, 0.5); +} +.aurora .theme-dark, +.aurora.theme-dark { + --f7-tabbar-link-inactive-color: rgba(255, 255, 255, 0.5); +} +.toolbar { + width: 100%; + position: relative; + margin: 0; + transform: translate3d(0, 0, 0); + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + z-index: 600; + box-sizing: border-box; + left: 0; + height: var(--f7-toolbar-height); + background-image: var(--f7-toolbar-bg-image, var(--f7-bars-bg-image)); + background-color: var(--f7-toolbar-bg-color, var(--f7-bars-bg-color)); + color: var(--f7-toolbar-text-color, var(--f7-bars-text-color)); + font-size: var(--f7-toolbar-font-size); +} +@supports ((-webkit-backdrop-filter: blur(20px)) or (backdrop-filter: blur(20px))) { + .ios-translucent-bars .toolbar { + background-color: rgba(var(--f7-toolbar-bg-color-rgb, var(--f7-bars-bg-color-rgb)), var(--f7-bars-translucent-opacity)); + -webkit-backdrop-filter: saturate(180%) blur(var(--f7-bars-translucent-blur)); + backdrop-filter: saturate(180%) blur(var(--f7-bars-translucent-blur)); + } +} +.toolbar b { + font-weight: 600; +} +.toolbar a { + color: var(--f7-toolbar-link-color, var(--f7-bars-link-color, var(--f7-theme-color))); + box-sizing: border-box; + flex-shrink: 1; + position: relative; + white-space: nowrap; + text-overflow: ellipsis; +} +.toolbar .link { + display: flex; + line-height: var(--f7-toolbar-link-line-height, var(--f7-toolbar-height)); + height: var(--f7-toolbar-link-height, var(--f7-toolbar-height)); +} +.toolbar i.icon { + display: block; +} +.toolbar:after, +.toolbar:before { + -webkit-backface-visibility: hidden; + backface-visibility: hidden; +} +.views > .toolbar, +.view > .toolbar, +.page > .toolbar { + position: absolute; +} +.toolbar-top, +.ios .toolbar-top-ios, +.md .toolbar-top-md, +.aurora .toolbar-top-aurora { + top: 0; +} +.toolbar-top .tab-link-highlight, +.ios .toolbar-top-ios .tab-link-highlight, +.md .toolbar-top-md .tab-link-highlight, +.aurora .toolbar-top-aurora .tab-link-highlight { + bottom: 0; +} +.toolbar-top.no-hairline:after, +.ios .toolbar-top-ios.no-hairline:after, +.md .toolbar-top-md.no-hairline:after, +.aurora .toolbar-top-aurora.no-hairline:after, +.toolbar-top.no-border:after, +.ios .toolbar-top-ios.no-border:after, +.md .toolbar-top-md.no-border:after, +.aurora .toolbar-top-aurora.no-border:after { + display: none !important; +} +.toolbar-top.no-shadow:before, +.ios .toolbar-top-ios.no-shadow:before, +.md .toolbar-top-md.no-shadow:before, +.aurora .toolbar-top-aurora.no-shadow:before, +.toolbar-top.toolbar-hidden:before, +.ios .toolbar-top-ios.toolbar-hidden:before, +.md .toolbar-top-md.toolbar-hidden:before, +.aurora .toolbar-top-aurora.toolbar-hidden:before { + display: none !important; +} +.toolbar-top:after, +.ios .toolbar-top-ios:after, +.md .toolbar-top-md:after, +.aurora .toolbar-top-aurora:after, +.toolbar-top:before, +.ios .toolbar-top-ios:before, +.md .toolbar-top-md:before, +.aurora .toolbar-top-aurora:before { + -webkit-backface-visibility: hidden; + backface-visibility: hidden; +} +.toolbar-top:after, +.ios .toolbar-top-ios:after, +.md .toolbar-top-md:after, +.aurora .toolbar-top-aurora:after { + content: ''; + position: absolute; + background-color: var(--f7-toolbar-border-color, var(--f7-bars-border-color)); + display: block; + z-index: 15; + top: auto; + right: auto; + bottom: 0; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 100%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +.toolbar-top:before, +.ios .toolbar-top-ios:before, +.md .toolbar-top-md:before, +.aurora .toolbar-top-aurora:before { + content: ''; + position: absolute; + right: 0; + width: 100%; + top: 100%; + bottom: auto; + height: 8px; + pointer-events: none; + background: var(--f7-toolbar-top-shadow-image); +} +.toolbar-bottom, +.ios .toolbar-bottom-ios, +.md .toolbar-bottom-md, +.aurora .toolbar-bottom-aurora { + bottom: 0; + height: calc(var(--f7-toolbar-height) + var(--f7-safe-area-bottom)); +} +.toolbar-bottom .tab-link-highlight, +.ios .toolbar-bottom-ios .tab-link-highlight, +.md .toolbar-bottom-md .tab-link-highlight, +.aurora .toolbar-bottom-aurora .tab-link-highlight { + top: 0; +} +.toolbar-bottom .toolbar-inner, +.ios .toolbar-bottom-ios .toolbar-inner, +.md .toolbar-bottom-md .toolbar-inner, +.aurora .toolbar-bottom-aurora .toolbar-inner { + height: auto; + top: 0; + bottom: var(--f7-safe-area-bottom); +} +.toolbar-bottom.no-hairline:before, +.ios .toolbar-bottom-ios.no-hairline:before, +.md .toolbar-bottom-md.no-hairline:before, +.aurora .toolbar-bottom-aurora.no-hairline:before, +.toolbar-bottom.no-border:before, +.ios .toolbar-bottom-ios.no-border:before, +.md .toolbar-bottom-md.no-border:before, +.aurora .toolbar-bottom-aurora.no-border:before { + display: none !important; +} +.toolbar-bottom.no-shadow:after, +.ios .toolbar-bottom-ios.no-shadow:after, +.md .toolbar-bottom-md.no-shadow:after, +.aurora .toolbar-bottom-aurora.no-shadow:after, +.toolbar-bottom.toolbar-hidden:after, +.ios .toolbar-bottom-ios.toolbar-hidden:after, +.md .toolbar-bottom-md.toolbar-hidden:after, +.aurora .toolbar-bottom-aurora.toolbar-hidden:after { + display: none !important; +} +.toolbar-bottom:before, +.ios .toolbar-bottom-ios:before, +.md .toolbar-bottom-md:before, +.aurora .toolbar-bottom-aurora:before { + content: ''; + position: absolute; + background-color: var(--f7-toolbar-border-color, var(--f7-bars-border-color)); + display: block; + z-index: 15; + top: 0; + right: auto; + bottom: auto; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 0%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +.toolbar-bottom:after, +.ios .toolbar-bottom-ios:after, +.md .toolbar-bottom-md:after, +.aurora .toolbar-bottom-aurora:after { + content: ''; + position: absolute; + right: 0; + width: 100%; + bottom: 100%; + height: 8px; + top: auto; + pointer-events: none; + background: var(--f7-toolbar-bottom-shadow-image); + transform: translate3d(0, 0, 0); +} +.toolbar-inner { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + display: flex; + justify-content: space-between; + box-sizing: border-box; + align-items: center; + align-content: center; + overflow: hidden; + padding: 0 calc(var(--f7-toolbar-inner-padding-right) + var(--f7-safe-area-right)) 0 calc(var(--f7-toolbar-inner-padding-left) + var(--f7-safe-area-left)); +} +.views > .tabbar, +.views > .tabbar-labels { + z-index: 5001; +} +.tabbar a, +.tabbar-labels a { + color: var(--f7-tabbar-link-inactive-color); +} +.tabbar .tab-link:not(.tab-link-active), +.tabbar-labels .tab-link:not(.tab-link-active) { + background-color: var(--f7-tabbar-link-inactive-bg-color, transparent); +} +.tabbar .link, +.tabbar-labels .link { + line-height: 1.4; +} +.tabbar .tab-link, +.tabbar-labels .tab-link, +.tabbar .link, +.tabbar-labels .link { + height: 100%; + width: 100%; + box-sizing: border-box; + display: flex; + justify-content: center; + align-items: center; + flex-direction: column; + text-transform: var(--f7-tabbar-link-text-transform); + font-weight: var(--f7-tabbar-link-font-weight); + letter-spacing: var(--f7-tabbar-link-letter-spacing); + overflow: hidden; +} +.tabbar .tab-link-active, +.tabbar-labels .tab-link-active { + color: var(--f7-tabbar-link-active-color, var(--f7-theme-color)); + background-color: var(--f7-tabbar-link-active-bg-color, transparent); +} +.tabbar i.icon, +.tabbar-labels i.icon { + font-size: var(--f7-tabbar-icon-size); + height: var(--f7-tabbar-icon-size); + line-height: var(--f7-tabbar-icon-size); +} +.tabbar-labels { + --f7-toolbar-height: var(--f7-tabbar-labels-height); +} +.tabbar-labels .tab-link, +.tabbar-labels .link { + height: 100%; + justify-content: space-between; + align-items: center; +} +.tabbar-labels .tabbar-label { + display: block; + line-height: 1; + margin: 0; + position: relative; + text-overflow: ellipsis; + white-space: nowrap; + font-size: var(--f7-tabbar-label-font-size); + text-transform: var(--f7-tabbar-label-text-transform); + font-weight: var(--f7-tabbar-label-font-weight); + letter-spacing: var(--f7-tabbar-label-letter-spacing); +} +@media (min-width: 768px) and (min-height: 600px) { + :root { + --f7-tabbar-labels-height: var(--f7-tabbar-labels-tablet-height); + --f7-tabbar-label-font-size: var(--f7-tabbar-label-tablet-font-size); + } +} +.tabbar-scrollable .toolbar-inner { + justify-content: flex-start; + overflow: auto; + -webkit-overflow-scrolling: touch; +} +.tabbar-scrollable .toolbar-inner::-webkit-scrollbar { + display: none !important; + width: 0 !important; + height: 0 !important; + -webkit-appearance: none; + opacity: 0 !important; +} +.tabbar-scrollable .tab-link, +.tabbar-scrollable .link { + width: auto; + flex-shrink: 0; +} +.toolbar-transitioning, +.navbar-transitioning + .toolbar, +.navbar-transitioning ~ * .toolbar { + transition-duration: var(--f7-toolbar-hide-show-transition-duration); +} +.toolbar-bottom ~ *, +.ios .toolbar-bottom-ios ~ *, +.md .toolbar-bottom-md ~ *, +.aurora .toolbar-bottom-aurora ~ * { + --f7-page-toolbar-bottom-offset: var(--f7-toolbar-height); +} +.toolbar-bottom.tabbar-labels ~ *, +.ios .toolbar-bottom-ios.tabbar-labels ~ *, +.md .toolbar-bottom-md.tabbar-labels ~ *, +.aurora .toolbar-bottom-aurora.tabbar-labels ~ * { + --f7-page-toolbar-bottom-offset: var(--f7-tabbar-labels-height); +} +.toolbar-bottom.toolbar-hidden, +.ios .toolbar-bottom-ios.toolbar-hidden, +.md .toolbar-bottom-md.toolbar-hidden, +.aurora .toolbar-bottom-aurora.toolbar-hidden { + transform: translate3d(0, 100%, 0); +} +.toolbar-top ~ *, +.ios .toolbar-top-ios ~ *, +.md .toolbar-top-md ~ *, +.aurora .toolbar-top-aurora ~ * { + --f7-page-toolbar-top-offset: var(--f7-toolbar-height); +} +.toolbar-top.tabbar-labels ~ *, +.ios .toolbar-top-ios.tabbar-labels ~ *, +.md .toolbar-top-md.tabbar-labels ~ *, +.aurora .toolbar-top-aurora.tabbar-labels ~ * { + --f7-page-toolbar-top-offset: var(--f7-tabbar-labels-height); +} +.toolbar-top.toolbar-hidden, +.ios .toolbar-top-ios.toolbar-hidden, +.md .toolbar-top-md.toolbar-hidden, +.aurora .toolbar-top-aurora.toolbar-hidden { + transform: translate3d(0, -100%, 0); +} +.navbar ~ .toolbar-top, +.navbars ~ .toolbar-top, +.ios .navbar ~ .toolbar-top-ios, +.ios .navbars ~ .toolbar-top-ios, +.md .navbar ~ .toolbar-top-md, +.aurora .navbar ~ .toolbar-top-aurora, +.navbar ~ * .toolbar-top, +.navbars ~ * .toolbar-top, +.ios .navbar ~ * .toolbar-top-ios, +.ios .navbars ~ * .toolbar-top-ios, +.md .navbar ~ * .toolbar-top-md, +.aurora .navbar ~ * .toolbar-top-aurora, +.navbar ~ .page:not(.no-navbar) .toolbar-top, +.navbars ~ .page:not(.no-navbar) .toolbar-top, +.ios .navbar ~ .page:not(.no-navbar) .toolbar-top-ios, +.ios .navbars ~ .page:not(.no-navbar) .toolbar-top-ios, +.md .navbar ~ .page:not(.no-navbar) .toolbar-top-md, +.aurora .navbar ~ .page:not(.no-navbar) .toolbar-top-aurora { + top: calc(var(--f7-navbar-height) + var(--f7-safe-area-top)); +} +.navbar ~ .toolbar-top.toolbar-hidden, +.navbars ~ .toolbar-top.toolbar-hidden, +.ios .navbar ~ .toolbar-top-ios.toolbar-hidden, +.ios .navbars ~ .toolbar-top-ios.toolbar-hidden, +.md .navbar ~ .toolbar-top-md.toolbar-hidden, +.aurora .navbar ~ .toolbar-top-aurora.toolbar-hidden, +.navbar ~ * .toolbar-top.toolbar-hidden, +.navbars ~ * .toolbar-top.toolbar-hidden, +.ios .navbar ~ * .toolbar-top-ios.toolbar-hidden, +.ios .navbars ~ * .toolbar-top-ios.toolbar-hidden, +.md .navbar ~ * .toolbar-top-md.toolbar-hidden, +.aurora .navbar ~ * .toolbar-top-aurora.toolbar-hidden, +.navbar ~ .page:not(.no-navbar) .toolbar-top.toolbar-hidden, +.navbars ~ .page:not(.no-navbar) .toolbar-top.toolbar-hidden, +.ios .navbar ~ .page:not(.no-navbar) .toolbar-top-ios.toolbar-hidden, +.ios .navbars ~ .page:not(.no-navbar) .toolbar-top-ios.toolbar-hidden, +.md .navbar ~ .page:not(.no-navbar) .toolbar-top-md.toolbar-hidden, +.aurora .navbar ~ .page:not(.no-navbar) .toolbar-top-aurora.toolbar-hidden { + transform: translate3d(0, calc(-1 * (var(--f7-navbar-height) + var(--f7-toolbar-height) + var(--f7-safe-area-top))), 0); +} +.navbar ~ .toolbar-top.toolbar-hidden.tabbar-labels, +.navbars ~ .toolbar-top.toolbar-hidden.tabbar-labels, +.ios .navbar ~ .toolbar-top-ios.toolbar-hidden.tabbar-labels, +.ios .navbars ~ .toolbar-top-ios.toolbar-hidden.tabbar-labels, +.md .navbar ~ .toolbar-top-md.toolbar-hidden.tabbar-labels, +.aurora .navbar ~ .toolbar-top-aurora.toolbar-hidden.tabbar-labels, +.navbar ~ * .toolbar-top.toolbar-hidden.tabbar-labels, +.navbars ~ * .toolbar-top.toolbar-hidden.tabbar-labels, +.ios .navbar ~ * .toolbar-top-ios.toolbar-hidden.tabbar-labels, +.ios .navbars ~ * .toolbar-top-ios.toolbar-hidden.tabbar-labels, +.md .navbar ~ * .toolbar-top-md.toolbar-hidden.tabbar-labels, +.aurora .navbar ~ * .toolbar-top-aurora.toolbar-hidden.tabbar-labels, +.navbar ~ .page:not(.no-navbar) .toolbar-top.toolbar-hidden.tabbar-labels, +.navbars ~ .page:not(.no-navbar) .toolbar-top.toolbar-hidden.tabbar-labels, +.ios .navbar ~ .page:not(.no-navbar) .toolbar-top-ios.toolbar-hidden.tabbar-labels, +.ios .navbars ~ .page:not(.no-navbar) .toolbar-top-ios.toolbar-hidden.tabbar-labels, +.md .navbar ~ .page:not(.no-navbar) .toolbar-top-md.toolbar-hidden.tabbar-labels, +.aurora .navbar ~ .page:not(.no-navbar) .toolbar-top-aurora.toolbar-hidden.tabbar-labels { + transform: translate3d(0, calc(-1 * (var(--f7-navbar-height) + var(--f7-tabbar-labels-height) + var(--f7-safe-area-top))), 0); +} +.navbar-hidden + .toolbar-top:not(.toolbar-hidden), +.ios .navbar-hidden + .toolbar-top-ios:not(.toolbar-hidden), +.md .navbar-hidden + .toolbar-top-md:not(.toolbar-hidden), +.aurora .navbar-hidden + .toolbar-top-aurora:not(.toolbar-hidden), +.navbar-hidden ~ * .toolbar-top:not(.toolbar-hidden), +.ios .navbar-hidden ~ * .toolbar-top-ios:not(.toolbar-hidden), +.md .navbar-hidden ~ * .toolbar-top-md:not(.toolbar-hidden), +.aurora .navbar-hidden ~ * .toolbar-top-aurora:not(.toolbar-hidden) { + transform: translate3d(0, calc(0px - var(--f7-navbar-height)), 0); +} +.navbar-large-hidden + .toolbar-top:not(.toolbar-hidden), +.ios .navbar-large-hidden + .toolbar-top-ios:not(.toolbar-hidden), +.md .navbar-large-hidden + .toolbar-top-md:not(.toolbar-hidden), +.navbar-large-hidden ~ * .toolbar-top:not(.toolbar-hidden), +.ios .navbar-large-hidden ~ * .toolbar-top-ios:not(.toolbar-hidden), +.md .navbar-large-hidden ~ * .toolbar-top-md:not(.toolbar-hidden), +.aurora .navbar-large-hidden ~ * .toolbar-top-aurora:not(.toolbar-hidden) { + transform: translate3d(0, calc(0px - var(--f7-navbar-height) - var(--f7-navbar-large-title-height)), 0); +} +.ios .toolbar a.icon-only { + min-height: var(--f7-toolbar-height); + display: flex; + justify-content: center; + align-items: center; + margin: 0; + min-width: 44px; +} +.ios .tabbar-labels .tab-link, +.ios .tabbar-labels .link { + padding-top: 4px; + padding-bottom: 4px; +} +.ios .tabbar-labels .tab-link i + span, +.ios .tabbar-labels .link i + span { + margin: 0; +} +@media (min-width: 768px) and (min-height: 600px) { + .ios .tabbar .tab-link, + .ios .tabbar-labels .tab-link, + .ios .tabbar .link, + .ios .tabbar-labels .link { + justify-content: center; + flex-direction: row; + } + .ios .tabbar .tab-link i + span, + .ios .tabbar-labels .tab-link i + span, + .ios .tabbar .link i + span, + .ios .tabbar-labels .link i + span { + margin-left: 5px; + } +} +.ios .tabbar-scrollable .toolbar-inner { + justify-content: flex-start; +} +.ios .tabbar-scrollable .tab-link, +.ios .tabbar-scrollable .link { + padding: 0 8px; +} +.md .toolbar .link { + justify-content: center; + padding: 0 16px; + min-width: 48px; +} +.md .toolbar .link:before { + content: ''; + width: 152%; + height: 152%; + position: absolute; + left: -26%; + top: -26%; + background-image: radial-gradient(circle at center, var(--f7-link-highlight-color) 66%, rgba(255, 255, 255, 0) 66%); + background-repeat: no-repeat; + background-position: center; + background-size: 100% 100%; + opacity: 0; + pointer-events: none; + transition-duration: 600ms; +} +.md .toolbar .link.active-state:before { + opacity: 1; + transition-duration: 150ms; +} +.md .toolbar a.icon-only { + min-width: 0; + flex-shrink: 0; +} +.md .tabbar .tab-link, +.md .tabbar-labels .tab-link, +.md .tabbar .link, +.md .tabbar-labels .link { + padding-left: 0; + padding-right: 0; +} +.md .tabbar a.icon-only, +.md .tabbar-labels a.icon-only { + flex-shrink: initial; +} +.md .tabbar .tab-link, +.md .tabbar-labels .tab-link { + transition-duration: 300ms; + overflow: hidden; + position: relative; +} +.md .tabbar .tab-link-highlight, +.md .tabbar-labels .tab-link-highlight { + position: absolute; + height: 2px; + background: var(--f7-tabbar-link-active-border-color, var(--f7-theme-color)); + transition-duration: 300ms; + left: 0; +} +.md .tabbar-labels .tab-link, +.md .tabbar-labels .link { + padding-top: 7px; + padding-bottom: 7px; +} +.md .tabbar-label { + max-width: 100%; + overflow: hidden; + line-height: 1.2; +} +.md .tabbar-scrollable .toolbar-inner { + overflow: auto; +} +.md .tabbar-scrollable .tab-link, +.md .tabbar-scrollable .link { + padding: 0 16px; +} +.aurora .toolbar a.icon-only { + min-height: var(--f7-toolbar-height); + display: flex; + justify-content: center; + align-items: center; + margin: 0; +} +.aurora .tabbar .toolbar-inner, +.aurora .tabbar-labels .toolbar-inner { + padding-left: 0; + padding-right: 0; +} +.aurora .tabbar .tab-link, +.aurora .tabbar-labels .tab-link, +.aurora .tabbar .link, +.aurora .tabbar-labels .link { + transition-duration: 200ms; +} +.aurora .tabbar-labels .tab-link, +.aurora .tabbar-labels .link { + padding-top: 5px; + padding-bottom: 5px; +} +.aurora .tabbar-labels .tab-link i + span, +.aurora .tabbar-labels .link i + span { + margin: 0; +} +.aurora .tabbar-scrollable .toolbar-inner { + justify-content: flex-start; +} +.aurora .tabbar-scrollable .tab-link, +.aurora .tabbar-scrollable .link { + padding: 0 16px; +} +/* === Subnavbar === */ +:root { + /* + --f7-subnavbar-bg-image: var(--f7-bars-bg-image); + --f7-subnavbar-bg-color: var(--f7-bars-bg-color); + --f7-subnavbar-bg-color-rgb: var(--f7-bars-bg-color-rgb); + --f7-subnavbar-border-color: var(--f7-bars-border-color); + --f7-subnavbar-link-color: var(--f7-bars-link-color); + --f7-subnavbar-text-color: var(--f7-bars-text-color); + */ + --f7-subnavbar-title-line-height: 1.2; +} +.ios { + --f7-subnavbar-height: 44px; + --f7-subnavbar-inner-padding-left: 8px; + --f7-subnavbar-inner-padding-right: 8px; + --f7-subnavbar-title-font-size: 34px; + --f7-subnavbar-title-font-weight: 700; + --f7-subnavbar-title-letter-spacing: -0.03em; + --f7-subnavbar-title-margin-left: 8px; + --f7-subnavbar-shadow-image: none; + /* + --f7-subnavbar-link-height: var(--f7-subnavbar-height); + --f7-subnavbar-link-line-height: var(--f7-subnavbar-height); + */ +} +.md { + --f7-subnavbar-height: 48px; + --f7-subnavbar-inner-padding-left: 16px; + --f7-subnavbar-inner-padding-right: 16px; + --f7-subnavbar-title-font-size: 20px; + --f7-subnavbar-title-font-weight: 500; + --f7-subnavbar-title-letter-spacing: 0; + --f7-subnavbar-title-margin-left: 0px; + --f7-subnavbar-shadow-image: var(--f7-bars-shadow-bottom-image); + /* + --f7-subnavbar-link-height: var(--f7-subnavbar-height); + --f7-subnavbar-link-line-height: var(--f7-subnavbar-height); + */ +} +.aurora { + --f7-subnavbar-height: 38px; + --f7-subnavbar-inner-padding-left: 16px; + --f7-subnavbar-inner-padding-right: 16px; + --f7-subnavbar-title-font-size: 26px; + --f7-subnavbar-title-font-weight: bold; + --f7-subnavbar-title-letter-spacing: -0.03em; + --f7-subnavbar-title-margin-left: 0px; + --f7-subnavbar-shadow-image: none; + --f7-subnavbar-link-height: auto; + --f7-subnavbar-link-line-height: inherit; +} +.subnavbar { + width: 100%; + position: absolute; + left: 0; + top: 0; + z-index: 600; + box-sizing: border-box; + display: flex; + justify-content: space-between; + align-items: center; + background-image: var(--f7-subnavbar-bg-image, var(--f7-bars-bg-image)); + background-color: var(--f7-subnavbar-bg-color, var(--f7-bars-bg-color)); + color: var(--f7-subnavbar-text-color, var(--f7-bars-text-color)); +} +@supports ((-webkit-backdrop-filter: blur(20px)) or (backdrop-filter: blur(20px))) { + .ios-translucent-bars .subnavbar { + background-color: rgba(var(--f7-subnavbar-bg-color-rgb, var(--f7-bars-bg-color-rgb)), var(--f7-bars-translucent-opacity)); + -webkit-backdrop-filter: saturate(180%) blur(var(--f7-bars-translucent-blur)); + backdrop-filter: saturate(180%) blur(var(--f7-bars-translucent-blur)); + } +} +.subnavbar .subnavbar-title { + position: relative; + overflow: hidden; + text-overflow: ellpsis; + white-space: nowrap; + font-size: var(--f7-subnavbar-title-font-size); + font-weight: var(--f7-subnavbar-title-font-weight); + text-align: left; + display: inline-block; + line-height: var(--f7-subnavbar-title-line-height); + letter-spacing: var(--f7-subnavbar-title-letter-spacing); + margin-left: var(--f7-subnavbar-title-margin-left); +} +.subnavbar .left, +.subnavbar .right { + flex-shrink: 0; + display: flex; + justify-content: flex-start; + align-items: center; +} +.subnavbar .right:first-child { + position: absolute; + height: 100%; +} +.subnavbar a { + color: var(--f7-subnavbar-link-color, var(--f7-bars-link-color, var(--f7-theme-color))); +} +.subnavbar a.link { + line-height: var(--f7-subnavbar-link-line-height, var(--f7-subnavbar-height)); + height: var(--f7-subnavbar-link-height, var(--f7-subnavbar-height)); +} +.subnavbar a.icon-only { + min-width: var(--f7-subnavbar-height); +} +.subnavbar.no-hairline:after, +.subnavbar.no-border:after { + display: none !important; +} +.subnavbar.no-shadow:before, +.subnavbar.navbar-hidden:before { + display: none !important; +} +.subnavbar:after, +.subnavbar:before { + -webkit-backface-visibility: hidden; + backface-visibility: hidden; +} +.subnavbar:after { + content: ''; + position: absolute; + background-color: var(--f7-subnavbar-border-color, var(--f7-bars-border-color)); + display: block; + z-index: 15; + top: auto; + right: auto; + bottom: 0; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 100%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +.subnavbar:before { + content: ''; + position: absolute; + right: 0; + width: 100%; + top: 100%; + bottom: auto; + height: 8px; + pointer-events: none; + background: var(--f7-subnavbar-shadow-image); +} +.subnavbar-inner { + width: 100%; + height: 100%; + display: flex; + align-items: center; + box-sizing: border-box; + justify-content: space-between; + overflow: hidden; + padding: 0 calc(var(--f7-subnavbar-inner-padding-left) + var(--f7-safe-area-right)) 0 calc(var(--f7-subnavbar-inner-padding-right) + var(--f7-safe-area-left)); +} +.subnavbar-inner.stacked { + display: none; +} +.navbar .subnavbar { + top: 100%; +} +.views > .subnavbar, +.view > .subnavbar, +.page > .subnavbar { + position: absolute; +} +.navbar ~ * .subnavbar, +.navbars ~ * .subnavbar, +.page-with-subnavbar .navbar ~ .subnavbar, +.page-with-subnavbar .navbar ~ * .subnavbar, +.navbar ~ .page-with-subnavbar:not(.no-navbar) .subnavbar, +.navbar ~ .subnavbar, +.navbars ~ .page-with-subnavbar:not(.no-navbar) .subnavbar, +.navbars ~ .subnavbar { + top: calc(var(--f7-navbar-height) + var(--f7-safe-area-top)); +} +.navbar ~ .page-with-navbar-large:not(.no-navbar) .subnavbar, +.navbars ~ .page-with-navbar-large:not(.no-navbar) .subnavbar, +.page-with-subnavbar.page-with-navbar-large .navbar ~ .subnavbar, +.page-with-subnavbar.page-with-navbar-large .navbar ~ * .subnavbar, +.navbar .title-large ~ .subnavbar { + top: calc(var(--f7-navbar-height) + var(--f7-navbar-large-title-height) + var(--f7-safe-area-top)); + transform: translate3d(0, calc(-1 * var(--f7-navbar-large-collapse-progress) * var(--f7-navbar-large-title-height)), 0); +} +.page-with-subnavbar, +.subnavbar ~ * { + --f7-page-subnavbar-offset: var(--f7-subnavbar-height); +} +.ios .subnavbar { + height: calc(var(--f7-subnavbar-height) + 1px); + margin-top: -1px; + padding-top: 1px; +} +.ios .subnavbar .title { + align-self: flex-start; + flex-shrink: 10; +} +.ios .subnavbar .left a + a, +.ios .subnavbar .right a + a { + margin-left: 16px; +} +.ios .subnavbar .left { + margin-right: 10px; +} +.ios .subnavbar .right { + margin-left: 10px; +} +.ios .subnavbar .right:first-child { + right: 8px; +} +.ios .subnavbar a.link { + justify-content: flex-start; +} +.ios .subnavbar a.icon-only { + justify-content: center; + margin: 0; +} +.md .subnavbar { + height: var(--f7-subnavbar-height); +} +.md .subnavbar .right { + margin-left: auto; +} +.md .subnavbar .right:first-child { + right: 16px; +} +.md .subnavbar a.link { + justify-content: center; + padding: 0 16px; +} +.md .subnavbar a.link:before { + content: ''; + width: 152%; + height: 152%; + position: absolute; + left: -26%; + top: -26%; + background-image: radial-gradient(circle at center, var(--f7-link-highlight-color) 66%, rgba(255, 255, 255, 0) 66%); + background-repeat: no-repeat; + background-position: center; + background-size: 100% 100%; + opacity: 0; + pointer-events: none; + transition-duration: 600ms; +} +.md .subnavbar a.link.active-state:before { + opacity: 1; + transition-duration: 150ms; +} +.md .subnavbar a.icon-only { + flex-shrink: 0; +} +.md .subnavbar-inner > a.link:first-child { + margin-left: calc(-1 * var(--f7-subnavbar-inner-padding-left)); +} +.md .subnavbar-inner > a.link:last-child { + margin-right: calc(-1 * var(--f7-subnavbar-inner-padding-right)); +} +.aurora .subnavbar { + height: calc(var(--f7-subnavbar-height) + 1px); + margin-top: -1px; + padding-top: 1px; +} +.aurora .subnavbar .title { + align-self: flex-start; + flex-shrink: 10; +} +.aurora .subnavbar .left a + a, +.aurora .subnavbar .right a + a { + margin-left: 10px; +} +.aurora .subnavbar .left { + margin-right: 10px; +} +.aurora .subnavbar .right { + margin-left: 10px; +} +.aurora .subnavbar .right:first-child { + right: 16px; +} +.aurora .subnavbar a.link { + justify-content: flex-start; +} +.aurora .subnavbar a.icon-only { + justify-content: center; + margin: 0; +} +/* === Content Block === */ +:root { + --f7-block-padding-horizontal: 16px; + --f7-block-padding-vertical: 16px; + --f7-block-font-size: inherit; + --f7-block-text-color: inherit; + --f7-block-header-margin: 10px; + --f7-block-footer-margin: 10px; + --f7-block-header-font-size: 14px; + --f7-block-footer-font-size: 14px; + --f7-block-title-text-transform: none; + --f7-block-title-white-space: nowrap; + --f7-block-title-medium-text-transform: none; + --f7-block-title-large-text-transform: none; + --f7-block-inset-side-margin: 16px; + --f7-block-title-medium-text-color: #000; + --f7-block-title-large-text-color: #000; + --f7-block-strong-bg-color: #fff; +} +:root .theme-dark, +:root.theme-dark { + --f7-block-title-text-color: #fff; + --f7-block-strong-border-color: rgba(255, 255, 255, 0.15); + --f7-block-title-medium-text-color: #fff; + --f7-block-title-large-text-color: #fff; + --f7-block-strong-bg-color: #1c1c1d; +} +.ios { + --f7-block-margin-vertical: 35px; + --f7-block-strong-border-color: rgba(0, 0, 0, 0.22); + --f7-block-title-text-color: #000; + --f7-block-title-font-size: 16px; + --f7-block-title-font-weight: 600; + --f7-block-title-line-height: 20px; + --f7-block-title-margin-bottom: 10px; + --f7-block-title-medium-font-size: 22px; + --f7-block-title-medium-font-weight: bold; + --f7-block-title-medium-line-height: 1.4; + --f7-block-title-large-font-size: 30px; + --f7-block-title-large-font-weight: bold; + --f7-block-title-large-line-height: 1.3; + --f7-block-inset-border-radius: 8px; + --f7-block-strong-text-color: #000; + --f7-block-header-text-color: rgba(0, 0, 0, 0.45); + --f7-block-footer-text-color: rgba(0, 0, 0, 0.45); +} +.ios .theme-dark, +.ios.theme-dark { + --f7-block-header-text-color: rgba(255, 255, 255, 0.55); + --f7-block-footer-text-color: rgba(255, 255, 255, 0.55); + --f7-block-strong-text-color: #fff; +} +.md { + --f7-block-margin-vertical: 32px; + --f7-block-strong-text-color: inherit; + --f7-block-strong-border-color: rgba(0, 0, 0, 0.12); + --f7-block-title-font-size: inherit; + --f7-block-title-text-color: rgba(0, 0, 0, 0.54); + --f7-block-title-font-weight: 500; + --f7-block-title-line-height: 16px; + --f7-block-title-margin-bottom: 16px; + --f7-block-title-medium-font-size: 24px; + --f7-block-title-medium-font-weight: 500; + --f7-block-title-medium-line-height: 1.3; + --f7-block-title-large-font-size: 34px; + --f7-block-title-large-font-weight: 500; + --f7-block-title-large-line-height: 1.2; + --f7-block-inset-border-radius: 4px; + --f7-block-header-text-color: rgba(0, 0, 0, 0.54); + --f7-block-footer-text-color: rgba(0, 0, 0, 0.54); +} +.md .theme-dark, +.md.theme-dark { + --f7-block-header-text-color: rgba(255, 255, 255, 0.54); + --f7-block-footer-text-color: rgba(255, 255, 255, 0.54); +} +.aurora { + --f7-block-margin-vertical: 15px; + --f7-block-strong-border-color: rgba(0, 0, 0, 0.12); + --f7-block-title-font-size: inherit; + --f7-block-title-text-color: rgba(0, 0, 0, 0.7); + --f7-block-title-font-weight: 600; + --f7-block-title-line-height: 1.5; + --f7-block-title-margin-bottom: 5px; + --f7-block-title-medium-font-size: 20px; + --f7-block-title-medium-font-weight: 600; + --f7-block-title-medium-line-height: 1.4; + --f7-block-title-large-font-size: 28px; + --f7-block-title-large-font-weight: bold; + --f7-block-title-large-line-height: 1.3; + --f7-block-inset-border-radius: 4px; + --f7-block-strong-text-color: inherit; + --f7-block-header-text-color: rgba(0, 0, 0, 0.6); + --f7-block-footer-text-color: rgba(0, 0, 0, 0.6); +} +.aurora .theme-dark, +.aurora.theme-dark { + --f7-block-header-text-color: rgba(255, 255, 255, 0.54); + --f7-block-footer-text-color: rgba(255, 255, 255, 0.54); + --f7-block-strong-text-color: #fff; +} +.block { + box-sizing: border-box; + position: relative; + z-index: 1; + color: var(--f7-block-text-color); + margin: var(--f7-block-margin-vertical) 0; + padding-top: 0; + padding-bottom: 0; + padding-left: calc(var(--f7-block-padding-horizontal) + var(--f7-safe-area-left)); + padding-right: calc(var(--f7-block-padding-horizontal) + var(--f7-safe-area-right)); + font-size: var(--f7-block-font-size); +} +.block.no-hairlines:before, +.block.no-hairlines ul:before, +.md .block.no-hairlines-md:before, +.md .block.no-hairlines-md ul:before, +.ios .block.no-hairlines-ios:before, +.ios .block.no-hairlines-ios ul:before, +.aurora .block.no-hairlines-aurora:before, +.aurora .block.no-hairlines-aurora ul:before, +.block.no-hairlines:after, +.block.no-hairlines ul:after, +.md .block.no-hairlines-md:after, +.md .block.no-hairlines-md ul:after, +.ios .block.no-hairlines-ios:after, +.ios .block.no-hairlines-ios ul:after, +.aurora .block.no-hairlines-aurora:after, +.aurora .block.no-hairlines-aurora ul:after { + display: none !important; +} +.block.no-hairline-top:before, +.block.no-hairline-top ul:before, +.md .block.no-hairline-top-md:before, +.md .block.no-hairline-top-md ul:before, +.ios .block.no-hairline-top-ios:before, +.ios .block.no-hairline-top-ios ul:before, +.aurora .block.no-hairline-top-aurora:before, +.aurora .block.no-hairline-top-aurora ul:before { + display: none !important; +} +.block.no-hairline-bottom:after, +.block.no-hairline-bottom ul:after, +.md .block.no-hairline-bottom-md:after, +.md .block.no-hairline-bottom-md ul:after, +.ios .block.no-hairline-bottom-ios:after, +.ios .block.no-hairline-bottom-ios ul:after, +.aurora .block.no-hairline-bottom-aurora:after, +.aurora .block.no-hairline-bottom-aurora ul:after { + display: none !important; +} +.block > h1:first-child, +.block > h2:first-child, +.block > h3:first-child, +.block > h4:first-child, +.block > p:first-child { + margin-top: 0; +} +.block > h1:last-child, +.block > h2:last-child, +.block > h3:last-child, +.block > h4:last-child, +.block > p:last-child { + margin-bottom: 0; +} +.block-strong { + color: var(--f7-block-strong-text-color); + padding-top: var(--f7-block-padding-vertical); + padding-bottom: var(--f7-block-padding-vertical); + background-color: var(--f7-block-strong-bg-color); +} +.block-strong:before { + content: ''; + position: absolute; + background-color: var(--f7-block-strong-border-color); + display: block; + z-index: 15; + top: 0; + right: auto; + bottom: auto; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 0%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +.block-strong:after { + content: ''; + position: absolute; + background-color: var(--f7-block-strong-border-color); + display: block; + z-index: 15; + top: auto; + right: auto; + bottom: 0; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 100%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +.block-title { + position: relative; + overflow: hidden; + margin: 0; + white-space: var(--f7-block-title-white-space); + text-overflow: ellipsis; + text-transform: var(--f7-block-title-text-transform); + color: var(--f7-block-title-text-color); + font-size: var(--f7-block-title-font-size, inherit); + font-weight: var(--f7-block-title-font-weight); + line-height: var(--f7-block-title-line-height); + margin-top: var(--f7-block-margin-vertical); + margin-bottom: var(--f7-block-title-margin-bottom); + margin-left: calc(var(--f7-block-padding-horizontal) + var(--f7-safe-area-left)); + margin-right: calc(var(--f7-block-padding-horizontal) + var(--f7-safe-area-right)); +} +.block-title + .list, +.block-title + .block, +.block-title + .card, +.block-title + .timeline, +.block-title + .block-header { + margin-top: 0px; +} +.block-title-medium { + font-size: var(--f7-block-title-medium-font-size); + text-transform: var(--f7-block-title-medium-text-transform); + color: var(--f7-block-title-medium-text-color); + font-weight: var(--f7-block-title-medium-font-weight); + line-height: var(--f7-block-title-medium-line-height); +} +.block-title-large { + font-size: var(--f7-block-title-large-font-size); + text-transform: var(--f7-block-title-large-text-transform); + color: var(--f7-block-title-large-text-color); + font-weight: var(--f7-block-title-large-font-weight); + line-height: var(--f7-block-title-large-line-height); +} +.block > .block-title:first-child, +.list > .block-title:first-child { + margin-top: 0; + margin-left: 0; + margin-right: 0; +} +.block-header { + color: var(--f7-block-header-text-color); + font-size: var(--f7-block-header-font-size); + margin-bottom: var(--f7-block-header-margin); + margin-top: var(--f7-block-margin-vertical); +} +.block-header + .list, +.block-header + .block, +.block-header + .card, +.block-header + .timeline { + margin-top: var(--f7-block-header-margin); +} +.block-footer { + color: var(--f7-block-footer-text-color); + font-size: var(--f7-block-footer-font-size); + margin-top: var(--f7-block-footer-margin); + margin-bottom: var(--f7-block-margin-vertical); +} +.block-footer, +.block-header { + padding-top: 0; + padding-bottom: 0; + padding-left: calc(var(--f7-block-padding-horizontal) + var(--f7-safe-area-left)); + padding-right: calc(var(--f7-block-padding-horizontal) + var(--f7-safe-area-right)); +} +.block-footer ul:first-child, +.block-header ul:first-child, +.block-footer p:first-child, +.block-header p:first-child, +.block-footer h1:first-child, +.block-header h1:first-child, +.block-footer h2:first-child, +.block-header h2:first-child, +.block-footer h3:first-child, +.block-header h3:first-child, +.block-footer h4:first-child, +.block-header h4:first-child { + margin-top: 0; +} +.block-footer ul:last-child, +.block-header ul:last-child, +.block-footer p:last-child, +.block-header p:last-child, +.block-footer h1:last-child, +.block-header h1:last-child, +.block-footer h2:last-child, +.block-header h2:last-child, +.block-footer h3:last-child, +.block-header h3:last-child, +.block-footer h4:last-child, +.block-header h4:last-child { + margin-bottom: 0; +} +.block-footer ul:first-child:last-child, +.block-header ul:first-child:last-child, +.block-footer p:first-child:last-child, +.block-header p:first-child:last-child, +.block-footer h1:first-child:last-child, +.block-header h1:first-child:last-child, +.block-footer h2:first-child:last-child, +.block-header h2:first-child:last-child, +.block-footer h3:first-child:last-child, +.block-header h3:first-child:last-child, +.block-footer h4:first-child:last-child, +.block-header h4:first-child:last-child { + margin-top: 0; + margin-bottom: 0; +} +.list .block-header, +.block .block-header, +.card .block-header, +.timeline .block-header { + margin-top: 0; +} +.list .block-footer, +.block .block-footer, +.card .block-footer, +.timeline .block-footer { + margin-bottom: 0; +} +.list + .block-footer, +.block + .block-footer, +.card + .block-footer, +.timeline + .block-footer { + margin-top: calc(-1 * (var(--f7-block-margin-vertical) - var(--f7-block-footer-margin))); +} +.block + .block-footer { + margin-top: calc(-1 * (var(--f7-block-margin-vertical) - var(--f7-block-footer-margin))); + margin-bottom: var(--f7-block-margin-vertical); +} +.block .block-header, +.block .block-footer { + padding: 0; +} +.block.inset { + border-radius: var(--f7-block-inset-border-radius); + margin-left: calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-left)); + margin-right: calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-right)); + --f7-safe-area-left: 0px; + --f7-safe-area-right: 0px; +} +.block-strong.inset:before, +.block-strong.inset:after { + display: none !important; +} +@media (min-width: 480px) { + .block.xsmall-inset { + border-radius: var(--f7-block-inset-border-radius); + margin-left: calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-left)); + margin-right: calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-right)); + --f7-safe-area-left: 0px; + --f7-safe-area-right: 0px; + } + .block-strong.xsmall-inset:before, + .block-strong.xsmall-inset:after { + display: none !important; + } +} +@media (min-width: 568px) { + .block.small-inset { + border-radius: var(--f7-block-inset-border-radius); + margin-left: calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-left)); + margin-right: calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-right)); + --f7-safe-area-left: 0px; + --f7-safe-area-right: 0px; + } + .block-strong.small-inset:before, + .block-strong.small-inset:after { + display: none !important; + } +} +@media (min-width: 768px) { + .block.medium-inset { + border-radius: var(--f7-block-inset-border-radius); + margin-left: calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-left)); + margin-right: calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-right)); + --f7-safe-area-left: 0px; + --f7-safe-area-right: 0px; + } + .block-strong.medium-inset:before, + .block-strong.medium-inset:after { + display: none !important; + } +} +@media (min-width: 1024px) { + .block.large-inset { + border-radius: var(--f7-block-inset-border-radius); + margin-left: calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-left)); + margin-right: calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-right)); + --f7-safe-area-left: 0px; + --f7-safe-area-right: 0px; + } + .block-strong.large-inset:before, + .block-strong.large-inset:after { + display: none !important; + } +} +@media (min-width: 1200px) { + .block.xlarge-inset { + border-radius: var(--f7-block-inset-border-radius); + margin-left: calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-left)); + margin-right: calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-right)); + --f7-safe-area-left: 0px; + --f7-safe-area-right: 0px; + } + .block-strong.xlarge-inset:before, + .block-strong.xlarge-inset:after { + display: none !important; + } +} +/* === List View === */ +:root { + --f7-list-inset-side-margin: 16px; + --f7-list-item-cell-margin: 16px; + --f7-list-item-padding-horizontal: 16px; + --f7-list-media-item-padding-horizontal: 16px; + --f7-list-item-text-max-lines: 2; + --f7-list-chevron-icon-font-size: 20px; + --f7-list-item-title-font-size: inherit; + --f7-list-item-title-font-weight: 400; + --f7-list-item-title-text-color: inherit; + --f7-list-item-title-line-height: inherit; + --f7-list-item-title-white-space: nowrap; + --f7-list-item-subtitle-font-weight: 400; + --f7-list-item-subtitle-text-color: inherit; + --f7-list-item-subtitle-line-height: inherit; + --f7-list-item-text-font-weight: 400; + --f7-list-item-after-font-weight: 400; + --f7-list-item-header-text-color: inherit; + --f7-list-item-header-font-size: 12px; + --f7-list-item-header-font-weight: 400; + --f7-list-item-header-line-height: 1.2; + --f7-list-item-footer-font-size: 12px; + --f7-list-item-footer-font-weight: 400; + --f7-list-item-footer-line-height: 1.2; + --f7-list-button-font-size: inherit; + --f7-list-button-font-weight: 400; + --f7-list-item-divider-line-height: inherit; + --f7-list-group-title-line-height: inherit; + --f7-list-bg-color: #fff; + --f7-list-chevron-icon-color: rgba(0, 0, 0, 0.2); +} +:root .theme-dark, +:root.theme-dark { + --f7-list-button-border-color: rgba(255, 255, 255, 0.15); + --f7-list-bg-color: #1c1c1d; + --f7-list-border-color: rgba(255, 255, 255, 0.15); + --f7-list-item-border-color: rgba(255, 255, 255, 0.15); + --f7-list-item-divider-border-color: rgba(255, 255, 255, 0.15); + --f7-list-item-divider-bg-color: #232323; + --f7-list-group-title-bg-color: #232323; + --f7-list-chevron-icon-color: rgba(255, 255, 255, 0.3); +} +.ios { + --f7-list-in-list-padding-left: 30px; + --f7-list-inset-border-radius: 8px; + --f7-list-margin-vertical: 35px; + --f7-list-font-size: 17px; + --f7-list-chevron-icon-area: 20px; + --f7-list-border-color: rgba(0, 0, 0, 0.22); + --f7-list-item-border-color: rgba(0, 0, 0, 0.22); + --f7-list-link-pressed-bg-color: rgba(0, 0, 0, 0.15); + --f7-list-item-subtitle-font-size: 15px; + --f7-list-item-text-font-size: 15px; + --f7-list-item-text-line-height: 21px; + --f7-list-item-after-font-size: inherit; + --f7-list-item-after-line-height: inherit; + --f7-list-item-after-padding: 5px; + --f7-list-item-min-height: 44px; + --f7-list-item-media-margin: 16px; + --f7-list-item-media-icons-margin: 5px; + --f7-list-item-padding-vertical: 8px; + --f7-list-media-item-padding-vertical: 10px; + --f7-list-media-item-title-font-weight: 600; + /* + --f7-list-button-text-color: var(--f7-theme-color); + */ + --f7-list-button-text-align: center; + --f7-list-button-border-color: rgba(0, 0, 0, 0.22); + --f7-list-item-divider-height: 31px; + --f7-list-item-divider-font-size: inherit; + --f7-list-item-divider-font-weight: 400; + --f7-list-item-divider-bg-color: rgba(0, 0, 0, 0.03); + --f7-list-item-divider-border-color: rgba(0, 0, 0, 0.22); + --f7-list-group-title-height: 31px; + --f7-list-group-title-font-size: inherit; + --f7-list-group-title-font-weight: 400; + --f7-list-group-title-bg-color: #f7f7f7; + --f7-list-item-after-text-color: rgba(0, 0, 0, 0.45); + --f7-list-item-footer-text-color: rgba(0, 0, 0, 0.45); + --f7-list-item-text-text-color: rgba(0, 0, 0, 0.45); + --f7-list-item-divider-text-color: rgba(0, 0, 0, 0.45); + --f7-list-group-title-text-color: rgba(0, 0, 0, 0.45); + --f7-list-button-pressed-bg-color: rgba(0, 0, 0, 0.15); +} +.ios .theme-dark, +.ios.theme-dark { + --f7-list-item-after-text-color: rgba(255, 255, 255, 0.55); + --f7-list-item-header-text-color: rgba(255, 255, 255, 0.55); + --f7-list-item-footer-text-color: rgba(255, 255, 255, 0.55); + --f7-list-item-text-text-color: rgba(255, 255, 255, 0.55); + --f7-list-item-divider-text-color: rgba(255, 255, 255, 0.55); + --f7-list-group-title-text-color: rgba(255, 255, 255, 0.55); + --f7-list-link-pressed-bg-color: rgba(255, 255, 255, 0.08); + --f7-list-button-pressed-bg-color: rgba(255, 255, 255, 0.08); +} +.md { + --f7-list-in-list-padding-left: 40px; + --f7-list-inset-border-radius: 4px; + --f7-list-margin-vertical: 32px; + --f7-list-font-size: 16px; + --f7-list-chevron-icon-area: 26px; + --f7-list-border-color: rgba(0, 0, 0, 0.12); + --f7-list-item-border-color: rgba(0, 0, 0, 0.12); + --f7-list-item-subtitle-font-size: 14px; + --f7-list-item-text-font-size: 14px; + --f7-list-item-text-line-height: 20px; + --f7-list-item-after-font-size: 14px; + --f7-list-item-after-line-height: inherit; + --f7-list-item-after-padding: 8px; + --f7-list-item-min-height: 48px; + --f7-list-item-media-margin: 16px; + --f7-list-item-media-icons-margin: 8px; + --f7-list-item-padding-vertical: 8px; + --f7-list-media-item-padding-vertical: 14px; + /* + --f7-list-media-item-title-font-weight: var(--f7-list-item-title-font-weight); + */ + --f7-list-button-text-align: left; + --f7-list-button-border-color: transparent; + --f7-list-item-divider-height: 48px; + --f7-list-item-divider-font-size: 14px; + --f7-list-item-divider-font-weight: 400; + --f7-list-item-divider-bg-color: #f4f4f4; + --f7-list-item-divider-border-color: transparent; + --f7-list-group-title-height: 48px; + --f7-list-group-title-font-size: 14px; + --f7-list-group-title-font-weight: 400; + --f7-list-group-title-bg-color: #f4f4f4; + --f7-list-link-pressed-bg-color: rgba(0, 0, 0, 0.1); + --f7-list-item-text-text-color: rgba(0, 0, 0, 0.54); + --f7-list-item-after-text-color: rgba(0, 0, 0, 0.54); + --f7-list-item-footer-text-color: rgba(0, 0, 0, 0.5); + --f7-list-button-text-color: #212121; + --f7-list-button-pressed-bg-color: rgba(0, 0, 0, 0.1); + --f7-list-item-divider-text-color: rgba(0, 0, 0, 0.54); + --f7-list-group-title-text-color: rgba(0, 0, 0, 0.54); +} +.md .theme-dark, +.md.theme-dark { + --f7-list-button-text-color: #fff; + --f7-list-item-divider-text-color: #fff; + --f7-list-group-title-text-color: #fff; + --f7-list-link-pressed-bg-color: rgba(255, 255, 255, 0.05); + --f7-list-button-pressed-bg-color: rgba(255, 255, 255, 0.05); + --f7-list-item-text-text-color: rgba(255, 255, 255, 0.54); + --f7-list-item-after-text-color: rgba(255, 255, 255, 0.54); + --f7-list-item-footer-text-color: rgba(255, 255, 255, 0.54); +} +.aurora { + --f7-list-in-list-padding-left: 16px; + --f7-list-inset-border-radius: 4px; + --f7-list-margin-vertical: 15px; + --f7-list-font-size: 14px; + --f7-list-chevron-icon-area: 15px; + --f7-list-chevron-icon-font-size: 16px; + --f7-list-border-color: rgba(0, 0, 0, 0.12); + --f7-list-item-border-color: rgba(0, 0, 0, 0.12); + --f7-list-item-title-line-height: 1.3; + --f7-list-item-subtitle-font-size: 14px; + --f7-list-item-subtitle-line-height: 1.3; + --f7-list-item-text-font-size: 12px; + --f7-list-item-text-line-height: 16px; + --f7-list-item-after-font-size: 13px; + --f7-list-item-after-line-height: 1.2; + --f7-list-item-after-padding: 5px; + --f7-list-item-min-height: 32px; + --f7-list-item-media-margin: 10px; + --f7-list-item-media-icons-margin: 5px; + --f7-list-item-padding-vertical: 5px; + --f7-list-media-item-padding-vertical: 5px; + --f7-list-media-item-title-font-weight: 600; + /* + --f7-list-button-text-color: var(--f7-theme-color); + */ + --f7-list-button-text-align: center; + --f7-list-button-border-color: rgba(0, 0, 0, 0.12); + --f7-list-item-divider-height: 19px; + --f7-list-item-divider-font-size: inherit; + --f7-list-item-divider-font-weight: 500; + --f7-list-item-divider-bg-color: rgba(0, 0, 0, 0.03); + --f7-list-item-divider-border-color: transparent; + --f7-list-group-title-height: 19px; + --f7-list-group-title-font-size: inherit; + --f7-list-group-title-font-weight: 500; + --f7-list-group-title-bg-color: #f7f7f7; + --f7-list-link-pressed-bg-color: rgba(0, 0, 0, 0.1); + --f7-list-link-hover-bg-color: rgba(0, 0, 0, 0.03); + --f7-list-item-text-text-color: rgba(0, 0, 0, 0.6); + --f7-list-item-after-text-color: rgba(0, 0, 0, 0.5); + --f7-list-item-footer-text-color: rgba(0, 0, 0, 0.6); + --f7-list-button-pressed-bg-color: rgba(0, 0, 0, 0.1); + --f7-list-button-hover-bg-color: rgba(0, 0, 0, 0.03); + --f7-list-item-divider-text-color: rgba(0, 0, 0, 0.6); + --f7-list-group-title-text-color: rgba(0, 0, 0, 0.6); +} +.aurora .theme-dark, +.aurora.theme-dark { + --f7-list-item-text-text-color: rgba(255, 255, 255, 0.54); + --f7-list-item-after-text-color: rgba(255, 255, 255, 0.54); + --f7-list-item-footer-text-color: rgba(255, 255, 255, 0.54); + --f7-list-item-divider-text-color: rgba(255, 255, 255, 0.6); + --f7-list-group-title-text-color: rgba(255, 255, 255, 0.6); + --f7-list-link-pressed-bg-color: rgba(255, 255, 255, 0.05); + --f7-list-link-hover-bg-color: rgba(255, 255, 255, 0.03); + --f7-list-button-pressed-bg-color: rgba(255, 255, 255, 0.05); + --f7-list-button-hover-bg-color: rgba(255, 255, 255, 0.03); +} +:root { + --f7-list-chevron-icon-left: 'chevron_left'; + --f7-list-chevron-icon-right: 'chevron_right'; +} +.aurora { + --f7-list-chevron-icon-left: 'chevron_left_aurora'; + --f7-list-chevron-icon-right: 'chevron_right_aurora'; +} +.list { + position: relative; + z-index: 1; + font-size: var(--f7-list-font-size); + margin: var(--f7-list-margin-vertical) 0; +} +.list ul { + list-style: none; + margin: 0; + padding: 0; + position: relative; + background: var(--f7-list-bg-color); +} +.list ul:before { + content: ''; + position: absolute; + background-color: var(--f7-list-border-color); + display: block; + z-index: 15; + top: 0; + right: auto; + bottom: auto; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 0%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +.list ul:after { + content: ''; + position: absolute; + background-color: var(--f7-list-border-color); + display: block; + z-index: 15; + top: auto; + right: auto; + bottom: 0; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 100%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +.list ul ul { + padding-left: calc(var(--f7-list-item-padding-horizontal) + var(--f7-list-in-list-padding-left)); +} +.list ul ul:before, +.list ul ul:after { + display: none !important; +} +.list li { + position: relative; + box-sizing: border-box; +} +.list .item-media { + display: flex; + flex-shrink: 0; + flex-wrap: nowrap; + align-items: center; + box-sizing: border-box; + padding-bottom: var(--f7-list-item-padding-vertical); + padding-top: var(--f7-list-item-padding-vertical); +} +.list .item-media + .item-inner { + margin-left: var(--f7-list-item-media-margin); +} +.list .item-media i + i, +.list .item-media i + img { + margin-left: var(--f7-list-item-media-icons-margin); +} +.list .item-after { + padding-left: var(--f7-list-item-after-padding); +} +.list .item-inner { + position: relative; + width: 100%; + min-width: 0; + display: flex; + justify-content: space-between; + box-sizing: border-box; + align-items: center; + align-self: stretch; + padding-top: var(--f7-list-item-padding-vertical); + padding-bottom: var(--f7-list-item-padding-vertical); + min-height: var(--f7-list-item-min-height); + padding-right: calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-right)); +} +.list .item-title { + min-width: 0; + flex-shrink: 1; + white-space: var(--f7-list-item-title-white-space); + position: relative; + overflow: hidden; + text-overflow: ellipsis; + max-width: 100%; + font-size: var(--f7-list-item-title-font-size); + font-weight: var(--f7-list-item-title-font-weight); + color: var(--f7-list-item-title-text-color); + line-height: var(--f7-list-item-title-line-height); +} +.list .item-after { + white-space: nowrap; + flex-shrink: 0; + display: flex; + font-size: var(--f7-list-item-after-font-size); + font-weight: var(--f7-list-item-after-font-weight); + color: var(--f7-list-item-after-text-color); + line-height: var(--f7-list-item-after-line-height); + margin-left: auto; +} +.list .item-header, +.list .item-footer { + white-space: normal; +} +.list .item-header { + color: var(--f7-list-item-header-text-color); + font-size: var(--f7-list-item-header-font-size); + font-weight: var(--f7-list-item-header-font-weight); + line-height: var(--f7-list-item-header-line-height); +} +.list .item-footer { + color: var(--f7-list-item-footer-text-color); + font-size: var(--f7-list-item-footer-font-size); + font-weight: var(--f7-list-item-footer-font-weight); + line-height: var(--f7-list-item-footer-line-height); +} +.list .item-link, +.list .list-button { + transition-duration: 300ms; + transition-property: background-color; + display: block; + position: relative; + overflow: hidden; + z-index: 0; +} +.list .item-link { + color: inherit; +} +.list .item-link.active-state { + background-color: var(--f7-list-link-pressed-bg-color); +} +.list .item-link .item-inner { + padding-right: calc(var(--f7-list-chevron-icon-area) + var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-right)); +} +.list .item-content { + display: flex; + justify-content: space-between; + box-sizing: border-box; + align-items: center; + min-height: var(--f7-list-item-min-height); + padding-left: calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-left)); +} +.list .item-subtitle { + position: relative; + overflow: hidden; + white-space: nowrap; + max-width: 100%; + text-overflow: ellipsis; + font-size: var(--f7-list-item-subtitle-font-size); + font-weight: var(--f7-list-item-subtitle-font-weight); + color: var(--f7-list-item-subtitle-text-color); + line-height: var(--f7-list-item-subtitle-line-height); +} +.list .item-text { + position: relative; + overflow: hidden; + text-overflow: ellipsis; + /* autoprefixer: ignore next */ + -webkit-line-clamp: var(--f7-list-item-text-max-lines); + /* autoprefixer: ignore next */ + -webkit-box-orient: vertical; + display: -webkit-box; + font-size: var(--f7-list-item-text-font-size); + font-weight: var(--f7-list-item-text-font-weight); + color: var(--f7-list-item-text-text-color); + line-height: var(--f7-list-item-text-line-height); + max-height: calc(var(--f7-list-item-text-line-height) * var(--f7-list-item-text-max-lines)); +} +.list .item-title-row { + position: relative; + display: flex; + justify-content: space-between; + box-sizing: border-box; +} +.list .item-title-row .item-after { + align-self: center; +} +.list .item-row { + display: flex; + justify-content: space-between; + box-sizing: border-box; +} +.list .item-cell { + display: block; + align-self: center; + box-sizing: border-box; + width: 100%; + min-width: 0; + margin-left: var(--f7-list-item-cell-margin); + flex-shrink: 1; +} +.list .item-cell:first-child { + margin-left: 0; +} +.list .ripple-wave + .item-cell { + margin-left: 0; +} +.list li:last-child .list-button:after { + display: none !important; +} +.list li:last-child > .item-inner:after, +.list li:last-child li:last-child > .item-inner:after, +.list li:last-child > .item-content > .item-inner:after, +.list li:last-child li:last-child > .item-content > .item-inner:after, +.list li:last-child > .swipeout-content > .item-content > .item-inner:after, +.list li:last-child li:last-child > .swipeout-content > .item-content > .item-inner:after, +.list li:last-child > .item-link > .item-content > .item-inner:after, +.list li:last-child li:last-child > .item-link > .item-content > .item-inner:after { + display: none !important; +} +.list li li:last-child .item-inner:after, +.list li:last-child li .item-inner:after { + content: ''; + position: absolute; + background-color: var(--f7-list-item-border-color); + display: block; + z-index: 15; + top: auto; + right: auto; + bottom: 0; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 100%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +.list.no-hairlines:before, +.list.no-hairlines ul:before, +.md .list.no-hairlines-md:before, +.md .list.no-hairlines-md ul:before, +.ios .list.no-hairlines-ios:before, +.ios .list.no-hairlines-ios ul:before, +.aurora .list.no-hairlines-aurora:before, +.aurora .list.no-hairlines-aurora ul:before, +.list.no-hairlines:after, +.list.no-hairlines ul:after, +.md .list.no-hairlines-md:after, +.md .list.no-hairlines-md ul:after, +.ios .list.no-hairlines-ios:after, +.ios .list.no-hairlines-ios ul:after, +.aurora .list.no-hairlines-aurora:after, +.aurora .list.no-hairlines-aurora ul:after { + display: none !important; +} +.list.no-hairline-top:before, +.list.no-hairline-top ul:before, +.md .list.no-hairline-top-md:before, +.md .list.no-hairline-top-md ul:before, +.ios .list.no-hairline-top-ios:before, +.ios .list.no-hairline-top-ios ul:before, +.aurora .list.no-hairline-top-aurora:before, +.aurora .list.no-hairline-top-aurora ul:before { + display: none !important; +} +.list.no-hairline-bottom:after, +.list.no-hairline-bottom ul:after, +.md .list.no-hairline-bottom-md:after, +.md .list.no-hairline-bottom-md ul:after, +.ios .list.no-hairline-bottom-ios:after, +.ios .list.no-hairline-bottom-ios ul:after, +.aurora .list.no-hairline-bottom-aurora:after, +.aurora .list.no-hairline-bottom-aurora ul:after { + display: none !important; +} +.list.no-hairlines-between .item-inner:after, +.md .list.no-hairlines-between-md .item-inner:after, +.ios .list.no-hairlines-between-ios .item-inner:after, +.aurora .list.no-hairlines-between-aurora .item-inner:after, +.list.no-hairlines-between .list-button:after, +.md .list.no-hairlines-between-md .list-button:after, +.ios .list.no-hairlines-between-ios .list-button:after, +.aurora .list.no-hairlines-between-aurora .list-button:after, +.list.no-hairlines-between .item-divider:after, +.md .list.no-hairlines-between-md .item-divider:after, +.ios .list.no-hairlines-between-ios .item-divider:after, +.aurora .list.no-hairlines-between-aurora .item-divider:after, +.list.no-hairlines-between .list-group-title:after, +.md .list.no-hairlines-between-md .list-group-title:after, +.ios .list.no-hairlines-between-ios .list-group-title:after, +.aurora .list.no-hairlines-between-aurora .list-group-title:after, +.list.no-hairlines-between .list-group-title:after, +.md .list.no-hairlines-between-md .list-group-title:after, +.ios .list.no-hairlines-between-ios .list-group-title:after, +.aurora .list.no-hairlines-between-aurora .list-group-title:after { + display: none !important; +} +.list.no-hairlines-between.simple-list li:after, +.md .list.no-hairlines-between-md.simple-list li:after, +.ios .list.no-hairlines-between-ios.simple-list li:after, +.aurora .list.no-hairlines-between-aurora.simple-list li:after { + display: none !important; +} +.list.no-hairlines-between.links-list a:after, +.md .list.no-hairlines-between-md.links-list a:after, +.ios .list.no-hairlines-between-ios.links-list a:after, +.aurora .list.no-hairlines-between-aurora.links-list a:after { + display: none !important; +} +.list-button { + padding: 0 var(--f7-list-item-padding-horizontal); + line-height: var(--f7-list-item-min-height); + color: var(--f7-list-button-text-color, var(--f7-theme-color)); + font-size: var(--f7-list-button-font-size); + font-weight: var(--f7-list-button-font-weight); + text-align: var(--f7-list-button-text-align); +} +.list-button:after { + content: ''; + position: absolute; + background-color: var(--f7-list-button-border-color); + display: block; + z-index: 15; + top: auto; + right: auto; + bottom: 0; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 100%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +.list-button.active-state { + background-color: var(--f7-list-button-pressed-bg-color); +} +.list-button[class*="color-"] { + --f7-list-button-text-color: var(--f7-theme-color); +} +.simple-list li { + position: relative; + white-space: nowrap; + text-overflow: ellipsis; + max-width: 100%; + box-sizing: border-box; + display: flex; + justify-content: space-between; + align-items: center; + align-content: center; + line-height: var(--f7-list-item-min-height); + height: var(--f7-list-item-min-height); + padding-left: calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-left)); + padding-right: calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-right)); +} +.simple-list li:after { + left: var(--f7-list-item-padding-horizontal); + width: auto; + left: calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-left)); + right: 0; +} +.simple-list li:last-child:after { + display: none !important; +} +.links-list li { + z-index: 1; +} +.links-list a { + transition-duration: 300ms; + transition-property: background-color; + display: block; + position: relative; + overflow: hidden; + display: flex; + align-items: center; + align-content: center; + justify-content: space-between; + box-sizing: border-box; + white-space: nowrap; + text-overflow: ellipsis; + max-width: 100%; + height: var(--f7-list-item-min-height); + color: inherit; +} +.links-list a .ripple-wave { + z-index: 0; +} +.links-list a:after { + width: auto; +} +.links-list a.active-state { + background-color: var(--f7-list-link-pressed-bg-color); +} +.links-list a { + padding-left: calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-left)); + padding-right: calc(var(--f7-list-chevron-icon-area) + var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-right)); +} +.links-list a:after { + left: calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-left)); + right: 0; +} +.links-list li:last-child a:after { + display: none !important; +} +.simple-list li:after, +.links-list a:after, +.list .item-inner:after { + content: ''; + position: absolute; + background-color: var(--f7-list-item-border-color); + display: block; + z-index: 15; + top: auto; + right: auto; + bottom: 0; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 100%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +.media-list, +li.media-item { + --f7-list-item-padding-vertical: var(--f7-list-media-item-padding-vertical); + --f7-list-item-padding-horizontal: var(--f7-list-media-item-padding-horizontal); +} +.media-list .item-title, +li.media-item .item-title { + font-weight: var(--f7-list-media-item-title-font-weight, var(--f7-list-item-title-font-weight, inherit)); +} +.media-list .item-inner, +li.media-item .item-inner { + display: block; + align-self: stretch; +} +.media-list .item-media, +li.media-item .item-media { + align-self: flex-start; +} +.media-list .item-media img, +li.media-item .item-media img { + display: block; +} +.media-list .item-link .item-inner, +li.media-item .item-link .item-inner { + padding-right: calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-right)); +} +.media-list .item-link .item-title-row, +li.media-item .item-link .item-title-row { + padding-right: calc(var(--f7-list-chevron-icon-area)); +} +.media-list.chevron-center .item-link .item-inner, +.media-list .chevron-center .item-link .item-inner, +.media-list .item-link.chevron-center .item-inner, +li.media-item.chevron-center .item-link .item-inner, +li.media-item .item-link.chevron-center .item-inner, +li.media-item .chevron-center .item-link .item-inner { + padding-right: calc(var(--f7-list-chevron-icon-area) + var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-right)); +} +.media-list.chevron-center .item-title-row, +.media-list .chevron-center .item-title-row, +li.media-item.chevron-center .item-title-row, +li.media-item .chevron-center .item-title-row { + padding-right: 0; +} +.list .item-link .item-inner:before, +.links-list a:before, +.media-list .item-link .item-title-row:before, +li.media-item .item-link .item-title-row:before, +.media-list.chevron-center .item-link .item-inner:before, +.media-list .chevron-center .item-link .item-inner:before, +.media-list .item-link.chevron-center .item-inner:before, +li.media-item.chevron-center .item-link .item-inner:before, +li.media-item .chevron-center .item-link .item-inner:before, +li.media-item .item-link.chevron-center .item-inner:before { + font-family: 'framework7-core-icons'; + font-weight: normal; + font-style: normal; + line-height: 1; + letter-spacing: normal; + text-transform: none; + white-space: nowrap; + word-wrap: normal; + direction: ltr; + -webkit-font-smoothing: antialiased; + text-rendering: optimizeLegibility; + -moz-osx-font-smoothing: grayscale; + font-feature-settings: "liga"; + text-align: center; + display: block; + width: 100%; + height: 100%; + font-size: 20px; + position: absolute; + top: 50%; + width: 8px; + height: 14px; + margin-top: -7px; + font-size: var(--f7-list-chevron-icon-font-size); + line-height: 14px; + color: var(--f7-list-chevron-icon-color); + pointer-events: none; + right: calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-right)); + content: var(--f7-list-chevron-icon-right); +} +.media-list.chevron-center .item-title-row:before, +.media-list .chevron-center .item-title-row:before, +li.media-item.chevron-center .item-title-row:before, +li.media-item .chevron-center .item-title-row:before { + display: none; +} +.media-list .item-link .item-inner:before, +li.media-item .item-link .item-inner:before { + display: none; +} +.media-list .item-link .item-title-row:before, +li.media-item .item-link .item-title-row:before { + right: 0; +} +.list-group ul:after, +.list-group ul:before { + z-index: 25 !important; +} +.list-group + .list-group ul:before { + display: none !important; +} +li.item-divider, +.item-divider, +li.list-group-title { + white-space: nowrap; + position: relative; + max-width: 100%; + text-overflow: ellipsis; + overflow: hidden; + z-index: 15; + padding-top: 0; + padding-bottom: 0; + padding-left: calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-left)); + padding-right: calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-right)); + box-sizing: border-box; + display: flex; + align-items: center; + align-content: center; +} +li.item-divider:after, +.item-divider:after, +li.list-group-title:after { + display: none !important; +} +li.item-divider, +.item-divider { + margin-top: -1px; + height: var(--f7-list-item-divider-height); + color: var(--f7-list-item-divider-text-color); + font-size: var(--f7-list-item-divider-font-size); + font-weight: var(--f7-list-item-divider-font-weight); + background-color: var(--f7-list-item-divider-bg-color); + line-height: var(--f7-list-item-divider-line-height); +} +li.item-divider:before, +.item-divider:before { + content: ''; + position: absolute; + background-color: var(--f7-list-item-divider-border-color); + display: block; + z-index: 15; + top: 0; + right: auto; + bottom: auto; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 0%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +li.list-group-title, +.list li.list-group-title { + position: relative; + position: -webkit-sticky; + position: sticky; + top: 0; + margin-top: 0; + z-index: 20; + height: var(--f7-list-group-title-height); + color: var(--f7-list-group-title-text-color); + font-size: var(--f7-list-group-title-font-size); + font-weight: var(--f7-list-group-title-font-weight); + background-color: var(--f7-list-group-title-bg-color); + line-height: var(--f7-list-group-title-line-height); +} +.page-with-navbar-large li.list-group-title, +.page-with-navbar-large .list li.list-group-title { + top: calc(-1 * var(--f7-navbar-large-title-height)); +} +.list.inset { + margin-left: calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-left)); + margin-right: calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-right)); + border-radius: var(--f7-list-inset-border-radius); + --f7-safe-area-left: 0px; + --f7-safe-area-right: 0px; +} +.list.inset .block-title { + margin-left: 0; + margin-right: 0; +} +.list.inset ul { + border-radius: var(--f7-list-inset-border-radius); +} +.list.inset ul:before, +.list.inset ul:after { + display: none !important; +} +.list.inset li.swipeout:first-child, +.list.inset li:first-child > a { + border-radius: var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius) 0 0; +} +.list.inset li.swipeout:last-child, +.list.inset li:last-child > a { + border-radius: 0 0 var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius); +} +.list.inset li.swipeout:first-child:last-child, +.list.inset li:first-child:last-child > a { + border-radius: var(--f7-list-inset-border-radius); +} +@media (min-width: 480px) { + .list.xsmall-inset { + margin-left: calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-left)); + margin-right: calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-right)); + border-radius: var(--f7-list-inset-border-radius); + --f7-safe-area-left: 0px; + --f7-safe-area-right: 0px; + } + .list.xsmall-inset .block-title { + margin-left: 0; + margin-right: 0; + } + .list.xsmall-inset ul { + border-radius: var(--f7-list-inset-border-radius); + } + .list.xsmall-inset ul:before, + .list.xsmall-inset ul:after { + display: none !important; + } + .list.xsmall-inset li:first-child > a { + border-radius: var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius) 0 0; + } + .list.xsmall-inset li:last-child > a { + border-radius: 0 0 var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius); + } + .list.xsmall-inset li:first-child:last-child > a { + border-radius: var(--f7-list-inset-border-radius); + } +} +@media (min-width: 568px) { + .list.small-inset { + margin-left: calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-left)); + margin-right: calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-right)); + border-radius: var(--f7-list-inset-border-radius); + --f7-safe-area-left: 0px; + --f7-safe-area-right: 0px; + } + .list.small-inset .block-title { + margin-left: 0; + margin-right: 0; + } + .list.small-inset ul { + border-radius: var(--f7-list-inset-border-radius); + } + .list.small-inset ul:before, + .list.small-inset ul:after { + display: none !important; + } + .list.small-inset li:first-child > a { + border-radius: var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius) 0 0; + } + .list.small-inset li:last-child > a { + border-radius: 0 0 var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius); + } + .list.small-inset li:first-child:last-child > a { + border-radius: var(--f7-list-inset-border-radius); + } +} +@media (min-width: 768px) { + .list.medium-inset { + margin-left: calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-left)); + margin-right: calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-right)); + border-radius: var(--f7-list-inset-border-radius); + --f7-safe-area-left: 0px; + --f7-safe-area-right: 0px; + } + .list.medium-inset .block-title { + margin-left: 0; + margin-right: 0; + } + .list.medium-inset ul { + border-radius: var(--f7-list-inset-border-radius); + } + .list.medium-inset ul:before, + .list.medium-inset ul:after { + display: none !important; + } + .list.medium-inset li:first-child > a { + border-radius: var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius) 0 0; + } + .list.medium-inset li:last-child > a { + border-radius: 0 0 var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius); + } + .list.medium-inset li:first-child:last-child > a { + border-radius: var(--f7-list-inset-border-radius); + } +} +@media (min-width: 1024px) { + .list.large-inset { + margin-left: calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-left)); + margin-right: calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-right)); + border-radius: var(--f7-list-inset-border-radius); + --f7-safe-area-left: 0px; + --f7-safe-area-right: 0px; + } + .list.large-inset .block-title { + margin-left: 0; + margin-right: 0; + } + .list.large-inset ul { + border-radius: var(--f7-list-inset-border-radius); + } + .list.large-inset ul:before, + .list.large-inset ul:after { + display: none !important; + } + .list.large-inset li:first-child > a { + border-radius: var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius) 0 0; + } + .list.large-inset li:last-child > a { + border-radius: 0 0 var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius); + } + .list.large-inset li:first-child:last-child > a { + border-radius: var(--f7-list-inset-border-radius); + } +} +@media (min-width: 1200px) { + .list.xlarge-inset { + margin-left: calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-left)); + margin-right: calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-right)); + border-radius: var(--f7-list-inset-border-radius); + --f7-safe-area-left: 0px; + --f7-safe-area-right: 0px; + } + .list.xlarge-inset .block-title { + margin-left: 0; + margin-right: 0; + } + .list.xlarge-inset ul { + border-radius: var(--f7-list-inset-border-radius); + } + .list.xlarge-inset ul:before, + .list.xlarge-inset ul:after { + display: none !important; + } + .list.xlarge-inset li:first-child > a { + border-radius: var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius) 0 0; + } + .list.xlarge-inset li:last-child > a { + border-radius: 0 0 var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius); + } + .list.xlarge-inset li:first-child:last-child > a { + border-radius: var(--f7-list-inset-border-radius); + } +} +.list.no-chevron, +.list .no-chevron { + --f7-list-chevron-icon-color: transparent; + --f7-list-chevron-icon-area: 0px; +} +.ios .item-link.active-state .item-inner:after, +.ios .list-button.active-state:after, +.ios .links-list a.active-state:after { + background-color: transparent; +} +.ios .links-list a.active-state, +.ios .list .item-link.active-state, +.ios .list .list-button.active-state { + transition-duration: 0ms; +} +.md .list .item-media { + min-width: 40px; +} +.aurora .list .item-media { + min-width: 18px; +} +.aurora .links-list a, +.aurora .list .item-link, +.aurora .list .list-button { + transition-duration: 0ms; +} +.aurora.device-desktop .links-list a:hover:not(.active-state):not(.no-hover), +.aurora.device-desktop .list .item-link:hover:not(.active-state):not(.no-hover) { + background: var(--f7-list-link-hover-bg-color); +} +.aurora.device-desktop .list .list-button:hover:not(.active-state):not(.no-hover) { + background: var(--f7-list-button-hover-bg-color); +} +/* === Badge === */ +:root { + --f7-badge-text-color: #fff; + --f7-badge-bg-color: #8e8e93; + --f7-badge-padding: 0 4px; + --f7-badge-in-icon-size: 16px; + --f7-badge-in-icon-font-size: 10px; + --f7-badge-font-weight: normal; + --f7-badge-font-size: 12px; +} +.ios { + --f7-badge-size: 20px; +} +.md { + --f7-badge-size: 18px; +} +.aurora { + --f7-badge-size: 18px; + --f7-badge-font-weight: 600; + --f7-badge-in-icon-size: 15px; +} +.badge { + display: inline-flex; + align-items: center; + align-content: center; + justify-content: center; + color: var(--f7-badge-text-color); + background: var(--f7-badge-bg-color); + position: relative; + box-sizing: border-box; + text-align: center; + vertical-align: middle; + font-weight: var(--f7-badge-font-weight); + font-size: var(--f7-badge-font-size); + border-radius: var(--f7-badge-size); + padding: var(--f7-badge-padding); + height: var(--f7-badge-size); + min-width: var(--f7-badge-size); +} +.icon .badge, +.f7-icons .badge, +.framework7-icons .badge, +.material-icons .badge { + position: absolute; + left: 100%; + margin-left: -10px; + top: -2px; + font-family: var(--f7-font-family); + --f7-badge-font-size: var(--f7-badge-in-icon-font-size); + --f7-badge-size: var(--f7-badge-in-icon-size); +} +.badge[class*="color-"] { + --f7-badge-bg-color: var(--f7-theme-color); +} +:root { + --f7-button-min-width: 32px; + --f7-button-bg-color: transparent; + --f7-button-border-width: 0px; + /* + --f7-button-text-color: var(--f7-theme-color); + --f7-button-pressed-text-color: var(--f7-button-text-color, var(--f7-theme-color)); + --f7-button-border-color: var(--f7-theme-color); + --f7-button-fill-text-color: #fff; + --f7-button-fill-bg-color: var(--f7-theme-color); + --f7-button-outline-border-color: var(--f7-theme-color); + */ + --f7-button-outline-border-width: 2px; + --f7-button-raised-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0,0,0,0.24); + --f7-button-raised-pressed-box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0,0,0,0.23); + --f7-segmented-raised-divider-color: rgba(0, 0, 0, 0.1); + --f7-segmented-strong-padding: 2px; + --f7-segmented-strong-between-buttons: 4px; + --f7-segmented-strong-button-font-weight: 500; + --f7-segmented-strong-button-active-box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.25); + --f7-segmented-strong-bg-color: rgba(0, 0, 0, 0.07); + --f7-segmented-strong-button-text-color: #000; + --f7-segmented-strong-button-pressed-bg-color: rgba(0, 0, 0, 0.07); + --f7-segmented-strong-button-hover-bg-color: rgba(0, 0, 0, 0.04); + --f7-segmented-strong-button-active-text-color: #000; + --f7-segmented-strong-button-active-bg-color: #fff; +} +:root .theme-dark, +:root.theme-dark { + --f7-segmented-strong-bg-color: rgba(255, 255, 255, 0.1); + --f7-segmented-strong-button-pressed-bg-color: rgba(255, 255, 255, 0.04); + --f7-segmented-strong-button-hover-bg-color: rgba(255, 255, 255, 0.02); + --f7-segmented-strong-button-active-bg-color: rgba(255, 255, 255, 0.14); + --f7-segmented-strong-button-text-color: #fff; + --f7-segmented-strong-button-active-text-color: #fff; +} +.ios { + --f7-button-font-size: 13px; + --f7-button-height: 28px; + --f7-button-padding-horizontal: 10px; + --f7-button-border-radius: 5px; + --f7-button-font-weight: 600; + --f7-button-letter-spacing: 0; + --f7-button-text-transform: uppercase; + /* + --f7-button-pressed-bg-color: rgba(var(--f7-theme-color-rgb), .15); + --f7-button-fill-pressed-bg-color: var(--f7-theme-color-tint); + */ + --f7-button-large-height: 44px; + --f7-button-large-font-size: 17px; + --f7-button-large-font-weight: 500; + --f7-button-large-text-transform: none; + --f7-button-small-height: 26px; + --f7-button-small-font-size: 13px; + --f7-button-small-font-weight: 600; + --f7-button-small-text-transform: uppercase; + --f7-button-small-outline-border-width: 2px; + --f7-segmented-strong-button-text-transform: none; + --f7-segmented-strong-button-active-font-weight: 600; +} +.md { + --f7-button-font-size: 14px; + --f7-button-height: 36px; + --f7-button-padding-horizontal: 8px; + --f7-button-border-radius: 4px; + --f7-button-font-weight: 500; + --f7-button-letter-spacing: 0.03em; + --f7-button-text-transform: uppercase; + /* + --f7-button-fill-pressed-bg-color: var(--f7-theme-color-shade); + */ + --f7-button-large-height: 48px; + --f7-button-large-font-size: 14px; + --f7-button-large-font-weight: 500; + --f7-button-large-text-transform: uppercase; + --f7-button-small-height: 28px; + --f7-button-small-font-size: 12px; + --f7-button-small-font-weight: 500; + --f7-button-small-text-transform: uppercase; + --f7-button-small-outline-border-width: 2px; + --f7-segmented-strong-button-text-transform: uppercase; + --f7-segmented-strong-button-active-font-weight: 500; + --f7-button-pressed-bg-color: rgba(0, 0, 0, 0.1); +} +.md .theme-dark, +.md.theme-dark { + --f7-button-pressed-bg-color: rgba(255, 255, 255, 0.1); +} +.aurora { + /* + --f7-button-hover-bg-color: rgba(var(--f7-theme-color-rgb), .07); + --f7-button-fill-hover-bg-color: var(--f7-theme-color-tint); + */ + --f7-button-font-size: 14px; + --f7-button-height: 28px; + --f7-button-min-width: 24px; + --f7-button-padding-horizontal: 10px; + --f7-button-border-radius: 4px; + --f7-button-font-weight: 500; + --f7-button-letter-spacing: 0.02; + --f7-button-text-transform: none; + /* + --f7-button-pressed-bg-color: rgba(var(--f7-theme-color-rgb), .15); + --f7-button-fill-pressed-bg-color: var(--f7-theme-color-shade); + */ + --f7-button-large-height: 34px; + --f7-button-large-font-size: 14px; + --f7-button-large-font-weight: 600; + --f7-button-large-text-transform: none; + --f7-button-small-height: 24px; + --f7-button-small-font-size: 12px; + --f7-button-small-font-weight: 600; + --f7-button-small-text-transform: none; + --f7-button-small-outline-border-width: 1px; + --f7-segmented-strong-button-text-transform: none; + --f7-segmented-strong-button-active-font-weight: 600; +} +button { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + width: 100%; +} +.button { + text-decoration: none; + text-align: center; + display: block; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + background: none; + margin: 0; + white-space: nowrap; + text-overflow: ellipsis; + position: relative; + overflow: hidden; + font-family: inherit; + cursor: pointer; + outline: 0; + box-sizing: border-box; + vertical-align: middle; + justify-content: center; + align-items: center; + border: var(--f7-button-border-width, 0px) solid var(--f7-button-border-color, var(--f7-theme-color)); + font-size: var(--f7-button-font-size); + color: var(--f7-button-text-color, var(--f7-theme-color)); + height: var(--f7-button-height); + line-height: calc(var(--f7-button-height) - var(--f7-button-border-width, 0) * 2); + padding: var(--f7-button-padding-vertical, 0px) var(--f7-button-padding-horizontal); + border-radius: var(--f7-button-border-radius); + min-width: var(--f7-button-min-width); + font-weight: var(--f7-button-font-weight); + letter-spacing: var(--f7-button-letter-spacing); + text-transform: var(--f7-button-text-transform); + background-color: var(--f7-button-bg-color); + box-shadow: var(--f7-button-box-shadow); +} +.button.active-state { + background-color: var(--f7-button-pressed-bg-color, rgba(var(--f7-theme-color-rgb), 0.15)); + color: var(--f7-button-pressed-text-color, var(--f7-button-text-color, var(--f7-theme-color))); +} +input[type="submit"].button, +input[type="button"].button { + width: 100%; +} +.button > i + span, +.button > span + span, +.button > span + i, +.button > i + i { + margin-left: 4px; +} +.subnavbar .button, +.navbar .button, +.toolbar .button, +.searchbar .button, +.appbar .button { + color: var(--f7-button-text-color, var(--f7-theme-color)); +} +.button-round, +.ios .button-round-ios, +.md .button-round-md, +.aurora .button-round-aurora { + --f7-button-border-radius: var(--f7-button-height); +} +.button-fill, +.ios .button-fill-ios, +.md .button-fill-md, +.aurora .button-fill-aurora, +.button-active, +.button.tab-link-active { + --f7-button-bg-color: var(--f7-button-fill-bg-color, var(--f7-theme-color)); + --f7-button-text-color: var(--f7-button-fill-text-color, #fff); + --f7-touch-ripple-color: var(--f7-touch-ripple-white); +} +.button-fill, +.ios .button-fill-ios, +.md .button-fill-md, +.aurora .button-fill-aurora { + --f7-button-pressed-bg-color: var(--f7-button-fill-pressed-bg-color); +} +.button-active, +.button.tab-link-active { + --f7-button-pressed-bg-color: var(--f7-button-bg-color); +} +.button-outline, +.ios .button-outline-ios, +.md .button-outline-md, +.aurora .button-outline-aurora { + --f7-button-border-color: var(--f7-button-outline-border-color, var(--f7-theme-color)); + --f7-button-border-width: var(--f7-button-outline-border-width); +} +.button-large, +.ios .button-large-ios, +.md .button-large-md, +.aurora .button-large-aurora { + --f7-button-height: var(--f7-button-large-height); + --f7-button-font-size: var(--f7-button-large-font-size); + --f7-button-font-weight: var(--f7-button-large-font-weight); + --f7-button-text-transform: var(--f7-button-large-text-transform); +} +.button-small, +.ios .button-small-ios, +.md .button-small-md, +.aurora .button-small-aurora { + --f7-button-outline-border-width: var(--f7-button-small-outline-border-width); + --f7-button-height: var(--f7-button-small-height); + --f7-button-font-size: var(--f7-button-small-font-size); + --f7-button-font-weight: var(--f7-button-small-font-weight); + --f7-button-text-transform: var(--f7-button-small-text-transform); +} +.ios .button-small.button-fill, +.ios .button-small-ios.button-fill, +.ios .button-small.button-fill-ios { + --f7-button-border-width: var(--f7-button-small-outline-border-width); + --f7-button-pressed-text-color: var(--f7-theme-color); + --f7-button-pressed-bg-color: transparent; +} +.segmented { + align-self: center; + display: flex; + flex-wrap: nowrap; + border-radius: var(--f7-button-border-radius); + box-shadow: var(--f7-button-box-shadow); + box-sizing: border-box; +} +.segmented .button, +.segmented button { + width: 100%; + flex-shrink: 1; + min-width: 0; + border-radius: 0; +} +.segmented .button:first-child { + border-radius: var(--f7-button-border-radius) 0 0 var(--f7-button-border-radius); +} +.segmented .button:not(.button-outline):first-child { + border-left: none; +} +.segmented .button.button-outline:nth-child(n + 2) { + border-left: none; +} +.segmented .button:last-child { + border-radius: 0 var(--f7-button-border-radius) var(--f7-button-border-radius) 0; +} +.segmented .button-round:first-child { + border-radius: var(--f7-button-height) 0 0 var(--f7-button-height); +} +.segmented .button-round:last-child { + border-radius: 0 var(--f7-button-height) var(--f7-button-height) 0; +} +.segmented .button:first-child:last-child { + border-radius: var(--f7-button-border-radius); +} +.segmented-raised, +.ios .segmented-raised-ios, +.md .segmented-raised-md, +.aurora .segmented-raised-aurora { + box-shadow: var(--f7-button-raised-box-shadow); +} +.segmented-raised .button:not(.button-outline), +.ios .segmented-raised-ios .button:not(.button-outline), +.md .segmented-raised-md .button:not(.button-outline), +.aurora .segmented-raised-aurora .button:not(.button-outline) { + border-left: 1px solid var(--f7-segmented-raised-divider-color); +} +.button-raised, +.ios .button-raised-ios, +.md .button-raised-md, +.aurora .button-raised-aurora { + --f7-button-box-shadow: var(--f7-button-raised-box-shadow); +} +.button-raised.active-state, +.ios .button-raised-ios.active-state, +.md .button-raised-md.active-state, +.aurora .button-raised-aurora.active-state { + --f7-button-box-shadow: var(--f7-button-raised-pressed-box-shadow); +} +.segmented-strong, +.ios .segmented-strong-ios, +.md .segmented-strong-md, +.aurora .segmented-strong-aurora { + --f7-button-bg-color: transparent; + --f7-button-hover-bg-color: var(--f7-segmented-strong-button-hover-bg-color); + --f7-button-text-color: var(--f7-segmented-strong-button-text-color); + --f7-button-font-weight: var(--f7-segmented-strong-button-font-weight); + --f7-button-text-transform: var(--f7-segmented-strong-button-text-transform); + --f7-button-pressed-bg-color: var(--f7-segmented-strong-button-pressed-bg-color); + position: relative; + background: var(--f7-segmented-strong-bg-color); + border-radius: calc(var(--f7-button-border-radius) + 2px); + box-shadow: none; + padding: var(--f7-segmented-strong-padding); + overflow: hidden; +} +.segmented-strong .button, +.ios .segmented-strong-ios .button, +.md .segmented-strong-md .button, +.aurora .segmented-strong-aurora .button { + z-index: 1; + transform: translate3d(0, 0, 0); +} +.segmented-strong .button, +.ios .segmented-strong-ios .button, +.md .segmented-strong-md .button, +.aurora .segmented-strong-aurora .button, +.segmented-strong .button:first-child, +.ios .segmented-strong-ios .button:first-child, +.md .segmented-strong-md .button:first-child, +.aurora .segmented-strong-aurora .button:first-child, +.segmented-strong .button:last-child, +.ios .segmented-strong-ios .button:last-child, +.md .segmented-strong-md .button:last-child, +.aurora .segmented-strong-aurora .button:last-child { + border-radius: var(--f7-button-border-radius); +} +.segmented-strong .button + .button, +.ios .segmented-strong-ios .button + .button, +.md .segmented-strong-md .button + .button, +.aurora .segmented-strong-aurora .button + .button { + margin-left: var(--f7-segmented-strong-between-buttons); +} +.segmented-strong .button.button-active, +.ios .segmented-strong-ios .button.button-active, +.md .segmented-strong-md .button.button-active, +.aurora .segmented-strong-aurora .button.button-active, +.segmented-strong .button.tab-link-active, +.ios .segmented-strong-ios .button.tab-link-active, +.md .segmented-strong-md .button.tab-link-active, +.aurora .segmented-strong-aurora .button.tab-link-active { + --f7-button-hover-bg-color: transparent; + --f7-button-bg-color: transparent; + --f7-button-text-color: var(--f7-segmented-strong-button-active-text-color); + --f7-button-font-weight: var(--f7-segmented-strong-button-active-font-weight); +} +.segmented-strong .segmented-highlight, +.ios .segmented-strong-ios .segmented-highlight, +.md .segmented-strong-md .segmented-highlight, +.aurora .segmented-strong-aurora .segmented-highlight { + --f7-segmented-highlight-num: 1; + --f7-segmented-highlight-active: 0; + --f7-segmented-highlight-padding: calc(var(--f7-segmented-strong-padding) * 2); + --f7-segmented-highlight-between: var(--f7-segmented-strong-between-buttons); + --f7-segmented-highlight-width: calc((100% - var(--f7-segmented-highlight-padding) - var(--f7-segmented-highlight-between) * (var(--f7-segmented-highlight-num) - 1)) / var(--f7-segmented-highlight-num)); + position: absolute; + background-color: var(--f7-segmented-strong-button-active-bg-color); + border-radius: var(--f7-button-border-radius); + box-shadow: var(--f7-segmented-strong-button-active-box-shadow); + left: var(--f7-segmented-strong-padding); + top: var(--f7-segmented-strong-padding); + height: calc(100% - var(--f7-segmented-strong-padding) * 2); + width: var(--f7-segmented-highlight-width); + z-index: 0; + transform: translateX(calc(var(--f7-segmented-highlight-active) * 100% + var(--f7-segmented-highlight-active) * var(--f7-segmented-highlight-between))); + transition: 200ms; +} +.button:nth-child(2) ~ .segmented-highlight { + --f7-segmented-highlight-num: 2; +} +.button:nth-child(3) ~ .segmented-highlight { + --f7-segmented-highlight-num: 3; +} +.button:nth-child(4) ~ .segmented-highlight { + --f7-segmented-highlight-num: 4; +} +.button:nth-child(5) ~ .segmented-highlight { + --f7-segmented-highlight-num: 5; +} +.button:nth-child(6) ~ .segmented-highlight { + --f7-segmented-highlight-num: 6; +} +.button:nth-child(7) ~ .segmented-highlight { + --f7-segmented-highlight-num: 7; +} +.button:nth-child(8) ~ .segmented-highlight { + --f7-segmented-highlight-num: 8; +} +.button:nth-child(9) ~ .segmented-highlight { + --f7-segmented-highlight-num: 9; +} +.button:nth-child(10) ~ .segmented-highlight { + --f7-segmented-highlight-num: 10; +} +.button-active:nth-child(2) ~ .segmented-highlight, +.tab-link-active:nth-child(2) ~ .segmented-highlight { + --f7-segmented-highlight-active: 1; +} +.button-active:nth-child(3) ~ .segmented-highlight, +.tab-link-active:nth-child(3) ~ .segmented-highlight { + --f7-segmented-highlight-active: 2; +} +.button-active:nth-child(4) ~ .segmented-highlight, +.tab-link-active:nth-child(4) ~ .segmented-highlight { + --f7-segmented-highlight-active: 3; +} +.button-active:nth-child(5) ~ .segmented-highlight, +.tab-link-active:nth-child(5) ~ .segmented-highlight { + --f7-segmented-highlight-active: 4; +} +.button-active:nth-child(6) ~ .segmented-highlight, +.tab-link-active:nth-child(6) ~ .segmented-highlight { + --f7-segmented-highlight-active: 5; +} +.button-active:nth-child(7) ~ .segmented-highlight, +.tab-link-active:nth-child(7) ~ .segmented-highlight { + --f7-segmented-highlight-active: 6; +} +.button-active:nth-child(8) ~ .segmented-highlight, +.tab-link-active:nth-child(8) ~ .segmented-highlight { + --f7-segmented-highlight-active: 7; +} +.button-active:nth-child(9) ~ .segmented-highlight, +.tab-link-active:nth-child(9) ~ .segmented-highlight { + --f7-segmented-highlight-active: 8; +} +.button-active:nth-child(10) ~ .segmented-highlight, +.tab-link-active:nth-child(10) ~ .segmented-highlight { + --f7-segmented-highlight-active: 9; +} +.segmented-round, +.ios .segmented-round-ios, +.md .segmented-round-md, +.aurora .segmented-round-aurora { + border-radius: var(--f7-button-height); +} +.segmented-round .segmented-highlight, +.ios .segmented-round-ios .segmented-highlight, +.md .segmented-round-md .segmented-highlight, +.aurora .segmented-round-aurora .segmented-highlight { + border-radius: var(--f7-button-height); +} +.subnavbar .segmented { + width: 100%; +} +.ios .button { + transition-duration: 100ms; +} +.ios .button-fill, +.ios .button-fill-ios { + --f7-button-pressed-bg-color: var(--f7-button-fill-pressed-bg-color, var(--f7-theme-color-tint)); +} +.ios .button-small, +.ios .button-small-ios { + transition-duration: 200ms; +} +.md .button { + transition-duration: 300ms; + transform: translate3d(0, 0, 0); +} +.md .button-fill, +.md .button-fill-md { + --f7-button-pressed-bg-color: var(--f7-button-fill-pressed-bg-color, var(--f7-theme-color-shade)); +} +.aurora .button { + transition-duration: 100ms; + transform: translate3d(0, 0, 0); +} +.aurora.device-desktop .button:not(.active-state):not(.no-hover):hover { + background-color: var(--f7-button-hover-bg-color, rgba(var(--f7-theme-color-rgb), 0.07)); +} +.aurora .button-fill, +.aurora .button-fill-aurora { + --f7-button-pressed-bg-color: var(--f7-button-fill-pressed-bg-color, var(--f7-theme-color-shade)); +} +.aurora .button-fill, +.aurora .button-active, +.aurora .button.tab-link-active, +.aurora .button-fill-aurora { + --f7-button-hover-bg-color: var(--f7-button-fill-hover-bg-color, var(--f7-theme-color-tint)); +} +/* === Touch Ripple === */ +:root { + --f7-touch-ripple-black: rgba(0, 0, 0, 0.1); + --f7-touch-ripple-white: rgba(255, 255, 255, 0.3); + --f7-touch-ripple-color: var(--f7-touch-ripple-black); +} +.theme-dark { + --f7-touch-ripple-color: var(--f7-touch-ripple-white); +} +.ripple, +.fab a, +.link, +.item-link, +.list-button, +.button, +.dialog-button, +.tab-link, +.radio, +.checkbox, +.actions-button, +.speed-dial-buttons a { + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; +} +.ripple-wave { + left: 0; + top: 0; + position: absolute !important; + border-radius: 50%; + pointer-events: none; + z-index: -1; + padding: 0; + margin: 0; + font-size: 0; + transform: translate3d(0px, 0px, 0) scale(0); + transition-duration: 1400ms; + background-color: var(--f7-touch-ripple-color); +} +.ripple-wave.ripple-wave-fill { + transition-duration: 300ms; + opacity: 0.35; +} +.ripple-wave.ripple-wave-out { + transition-duration: 600ms; + opacity: 0; +} +.button-fill .ripple-wave, +.picker-calendar-day .ripple-wave, +.menu .ripple-wave { + z-index: 1; +} +.checkbox .ripple-wave, +.radio .ripple-wave, +.data-table .sortable-cell .ripple-wave { + z-index: 0; +} +[class*="ripple-color-"] { + --f7-touch-ripple-color: var(--f7-theme-color-ripple-color); +} +/* === Icon === */ +.f7-icons, +.material-icons { + width: 1em; + height: 1em; +} +i.icon { + display: inline-block; + vertical-align: middle; + background-size: 100% auto; + background-position: center; + background-repeat: no-repeat; + font-style: normal; + position: relative; +} +.icon-back:after, +.icon-prev:after, +.icon-forward:after, +.icon-next:after { + font-family: 'framework7-core-icons'; + font-weight: normal; + font-style: normal; + line-height: 1; + letter-spacing: normal; + text-transform: none; + white-space: nowrap; + word-wrap: normal; + direction: ltr; + -webkit-font-smoothing: antialiased; + text-rendering: optimizeLegibility; + -moz-osx-font-smoothing: grayscale; + font-feature-settings: "liga"; + text-align: center; + display: block; + width: 100%; + height: 100%; + font-size: 20px; +} +.icon[class*="color-"] { + color: var(--f7-theme-color); +} +.ios .icon-back, +.ios .icon-prev, +.ios .icon-forward, +.ios .icon-next { + width: 12px; + height: 20px; + line-height: 20px; +} +.ios .icon-back:after, +.ios .icon-prev:after, +.ios .icon-forward:after, +.ios .icon-next:after { + line-height: inherit; +} +.ios .icon-prev:after, +.ios .icon-next:after { + font-size: 16px; +} +.ios .icon-back:after, +.ios .icon-prev:after { + content: 'chevron_left_ios'; +} +.ios .icon-forward:after, +.ios .icon-next:after { + content: 'chevron_right_ios'; +} +.md .icon-back, +.md .icon-forward, +.md .icon-next, +.md .icon-prev { + width: 24px; + height: 24px; +} +.md .icon-back:after, +.md .icon-forward:after, +.md .icon-next:after, +.md .icon-prev:after { + line-height: 1.2; +} +.md .icon-back:after { + content: 'arrow_left_md'; +} +.md .icon-forward:after { + content: 'arrow_right_md'; +} +.md .icon-next:after { + content: 'chevron_right_md'; +} +.md .icon-prev:after { + content: 'chevron_left_md'; +} +.aurora .f7-icons, +.aurora .material-icons { + font-size: 18px; +} +.aurora .icon-back, +.aurora .icon-prev, +.aurora .icon-forward, +.aurora .icon-next { + width: 9px; + height: 14px; + line-height: 14px; +} +.aurora .icon-back:after, +.aurora .icon-prev:after, +.aurora .icon-forward:after, +.aurora .icon-next:after { + line-height: inherit; +} +.aurora .icon-back:after, +.aurora .icon-prev:after { + content: 'chevron_left_aurora'; +} +.aurora .icon-forward:after, +.aurora .icon-next:after { + content: 'chevron_right_aurora'; +} +.custom-modal-backdrop { + z-index: 10500; +} +.custom-modal-backdrop, +.actions-backdrop, +.dialog-backdrop, +.popover-backdrop, +.popup-backdrop, +.preloader-backdrop, +.sheet-backdrop, +.fab-backdrop { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + background: rgba(0, 0, 0, 0.4); + z-index: 13000; + visibility: hidden; + opacity: 0; + transition-duration: 400ms; +} +.custom-modal-backdrop.not-animated, +.actions-backdrop.not-animated, +.dialog-backdrop.not-animated, +.popover-backdrop.not-animated, +.popup-backdrop.not-animated, +.preloader-backdrop.not-animated, +.sheet-backdrop.not-animated, +.fab-backdrop.not-animated { + transition-duration: 0ms; +} +.custom-modal-backdrop.backdrop-in, +.actions-backdrop.backdrop-in, +.dialog-backdrop.backdrop-in, +.popover-backdrop.backdrop-in, +.popup-backdrop.backdrop-in, +.preloader-backdrop.backdrop-in, +.sheet-backdrop.backdrop-in, +.fab-backdrop.backdrop-in { + visibility: visible; + opacity: 1; +} diff --git a/public/Framework7/5/css/framework7.min.css b/public/Framework7/5/css/framework7.min.css new file mode 100644 index 0000000..99a368a --- /dev/null +++ b/public/Framework7/5/css/framework7.min.css @@ -0,0 +1,13 @@ +/** + * Framework7 5.7.14 + * Full featured mobile HTML framework for building iOS & Android apps + * https://framework7.io/ + * + * Copyright 2014-2020 Vladimir Kharlampidi + * + * Released under the MIT License + * + * Released on: November 9, 2020 + */ + +:root{--f7-theme-color:#007aff;--f7-theme-color-rgb:0,122,255;--f7-theme-color-shade:#0066d6;--f7-theme-color-tint:#298fff;--f7-safe-area-left:0px;--f7-safe-area-right:0px;--f7-safe-area-top:0px;--f7-safe-area-bottom:0px;--f7-safe-area-outer-left:0px;--f7-safe-area-outer-right:0px;--f7-device-pixel-ratio:1}@supports (left:env(safe-area-inset-left)){:root{--f7-safe-area-top:env(safe-area-inset-top);--f7-safe-area-bottom:env(safe-area-inset-bottom)}:root .ios-edges,:root .ios-left-edge,:root .panel-left,:root .popup,:root .safe-area-left,:root .safe-areas,:root .sheet-modal{--f7-safe-area-left:env(safe-area-inset-left);--f7-safe-area-outer-left:env(safe-area-inset-left)}:root .ios-edges,:root .ios-right-edge,:root .panel-right,:root .popup,:root .safe-area-right,:root .safe-areas,:root .sheet-modal{--f7-safe-area-right:env(safe-area-inset-right);--f7-safe-area-outer-right:env(safe-area-inset-right)}:root .no-ios-edges,:root .no-ios-left-edge,:root .no-safe-area-left,:root .no-safe-areas{--f7-safe-area-left:0px;--f7-safe-area-outer-left:0px}:root .no-ios-edges,:root .no-ios-right-edge,:root .no-safe-area-right,:root .no-safe-areas{--f7-safe-area-right:0px;--f7-safe-area-outer-right:0px}}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:2dppx){:root{--f7-device-pixel-ratio:2}}@media (-webkit-min-device-pixel-ratio:3),(min-resolution:3dppx){:root{--f7-device-pixel-ratio:3}}:root{--f7-font-size:14px;--f7-bars-bg-image:none;--f7-bars-translucent-opacity:0.8;--f7-bars-translucent-blur:20px;--f7-bars-shadow-bottom-image:linear-gradient(to bottom, rgba(0, 0, 0, 0.25) 0%, rgba(0, 0, 0, 0.08) 40%, rgba(0, 0, 0, 0.04) 50%, rgba(0, 0, 0, 0) 90%, rgba(0, 0, 0, 0) 100%);--f7-bars-shadow-top-image:linear-gradient(to top, rgba(0, 0, 0, 0.25) 0%, rgba(0, 0, 0, 0.08) 40%, rgba(0, 0, 0, 0.04) 50%, rgba(0, 0, 0, 0) 90%, rgba(0, 0, 0, 0) 100%);--f7-bars-text-color:#000;--f7-bars-bg-color:#f7f7f8;--f7-bars-bg-color-rgb:247,247,248}:root .theme-dark,:root.theme-dark{--f7-bars-text-color:#fff}.ios{--f7-font-family:-apple-system,SF Pro Text,SF UI Text,system-ui,Helvetica Neue,Helvetica,Arial,sans-serif;--f7-line-height:1.4;--f7-text-color:#000;--f7-bars-border-color:rgba(0, 0, 0, 0.25)}.ios .theme-dark,.ios.theme-dark{--f7-text-color:#fff;--f7-bars-bg-color:#121212;--f7-bars-bg-color-rgb:22,22,22;--f7-bars-border-color:rgba(255, 255, 255, 0.16)}.md{--f7-font-family:Roboto,system-ui,Noto,Helvetica,Arial,sans-serif;--f7-line-height:1.5;--f7-bars-border-color:transparent;--f7-text-color:#212121}.md .theme-dark,.md.theme-dark{--f7-text-color:rgba(255, 255, 255, 0.87);--f7-bars-bg-color:#202020}.aurora{--f7-font-family:-apple-system,system-ui,Helvetica,Arial,sans-serif;--f7-line-height:1.5;--f7-text-color:#000;--f7-bars-border-color:rgba(0, 0, 0, 0.2)}.aurora .theme-dark,.aurora.theme-dark{--f7-text-color:#fff;--f7-bars-bg-color:#202020;--f7-bars-border-color:rgba(255, 255, 255, 0.1)}.text-color-primary{--f7-theme-color-text-color:var(--f7-theme-color)}.bg-color-primary{--f7-theme-color-bg-color:var(--f7-theme-color)}.border-color-primary{--f7-theme-color-border-color:var(--f7-theme-color)}.ripple-color-primary{--f7-theme-color-ripple-color:rgba(var(--f7-theme-color-rgb), 0.3)}:root{--f7-color-red:#ff3b30;--f7-color-red-rgb:255,59,48;--f7-color-red-shade:#ff1407;--f7-color-red-tint:#ff6259;--f7-color-green:#4cd964;--f7-color-green-rgb:76,217,100;--f7-color-green-shade:#2cd048;--f7-color-green-tint:#6ee081;--f7-color-blue:#2196f3;--f7-color-blue-rgb:33,150,243;--f7-color-blue-shade:#0c82df;--f7-color-blue-tint:#48a8f5;--f7-color-pink:#ff2d55;--f7-color-pink-rgb:255,45,85;--f7-color-pink-shade:#ff0434;--f7-color-pink-tint:#ff5676;--f7-color-yellow:#ffcc00;--f7-color-yellow-rgb:255,204,0;--f7-color-yellow-shade:#d6ab00;--f7-color-yellow-tint:#ffd429;--f7-color-orange:#ff9500;--f7-color-orange-rgb:255,149,0;--f7-color-orange-shade:#d67d00;--f7-color-orange-tint:#ffa629;--f7-color-purple:#9c27b0;--f7-color-purple-rgb:156,39,176;--f7-color-purple-shade:#7e208f;--f7-color-purple-tint:#b92fd1;--f7-color-deeppurple:#673ab7;--f7-color-deeppurple-rgb:103,58,183;--f7-color-deeppurple-shade:#563098;--f7-color-deeppurple-tint:#7c52c8;--f7-color-lightblue:#5ac8fa;--f7-color-lightblue-rgb:90,200,250;--f7-color-lightblue-shade:#32bbf9;--f7-color-lightblue-tint:#82d5fb;--f7-color-teal:#009688;--f7-color-teal-rgb:0,150,136;--f7-color-teal-shade:#006d63;--f7-color-teal-tint:#00bfad;--f7-color-lime:#cddc39;--f7-color-lime-rgb:205,220,57;--f7-color-lime-shade:#bac923;--f7-color-lime-tint:#d6e25c;--f7-color-deeporange:#ff6b22;--f7-color-deeporange-rgb:255,107,34;--f7-color-deeporange-shade:#f85200;--f7-color-deeporange-tint:#ff864b;--f7-color-gray:#8e8e93;--f7-color-gray-rgb:142,142,147;--f7-color-gray-shade:#79797f;--f7-color-gray-tint:#a3a3a7;--f7-color-white:#ffffff;--f7-color-white-rgb:255,255,255;--f7-color-white-shade:#ebebeb;--f7-color-white-tint:#ffffff;--f7-color-black:#000000;--f7-color-black-rgb:0,0,0;--f7-color-black-shade:#000000;--f7-color-black-tint:#141414}.color-theme-red{--f7-theme-color:#ff3b30;--f7-theme-color-rgb:255,59,48;--f7-theme-color-shade:#ff1407;--f7-theme-color-tint:#ff6259}.color-theme-green{--f7-theme-color:#4cd964;--f7-theme-color-rgb:76,217,100;--f7-theme-color-shade:#2cd048;--f7-theme-color-tint:#6ee081}.color-theme-blue{--f7-theme-color:#2196f3;--f7-theme-color-rgb:33,150,243;--f7-theme-color-shade:#0c82df;--f7-theme-color-tint:#48a8f5}.color-theme-pink{--f7-theme-color:#ff2d55;--f7-theme-color-rgb:255,45,85;--f7-theme-color-shade:#ff0434;--f7-theme-color-tint:#ff5676}.color-theme-yellow{--f7-theme-color:#ffcc00;--f7-theme-color-rgb:255,204,0;--f7-theme-color-shade:#d6ab00;--f7-theme-color-tint:#ffd429}.color-theme-orange{--f7-theme-color:#ff9500;--f7-theme-color-rgb:255,149,0;--f7-theme-color-shade:#d67d00;--f7-theme-color-tint:#ffa629}.color-theme-purple{--f7-theme-color:#9c27b0;--f7-theme-color-rgb:156,39,176;--f7-theme-color-shade:#7e208f;--f7-theme-color-tint:#b92fd1}.color-theme-deeppurple{--f7-theme-color:#673ab7;--f7-theme-color-rgb:103,58,183;--f7-theme-color-shade:#563098;--f7-theme-color-tint:#7c52c8}.color-theme-lightblue{--f7-theme-color:#5ac8fa;--f7-theme-color-rgb:90,200,250;--f7-theme-color-shade:#32bbf9;--f7-theme-color-tint:#82d5fb}.color-theme-teal{--f7-theme-color:#009688;--f7-theme-color-rgb:0,150,136;--f7-theme-color-shade:#006d63;--f7-theme-color-tint:#00bfad}.color-theme-lime{--f7-theme-color:#cddc39;--f7-theme-color-rgb:205,220,57;--f7-theme-color-shade:#bac923;--f7-theme-color-tint:#d6e25c}.color-theme-deeporange{--f7-theme-color:#ff6b22;--f7-theme-color-rgb:255,107,34;--f7-theme-color-shade:#f85200;--f7-theme-color-tint:#ff864b}.color-theme-gray{--f7-theme-color:#8e8e93;--f7-theme-color-rgb:142,142,147;--f7-theme-color-shade:#79797f;--f7-theme-color-tint:#a3a3a7}.color-theme-white{--f7-theme-color:#ffffff;--f7-theme-color-rgb:255,255,255;--f7-theme-color-shade:#ebebeb;--f7-theme-color-tint:#ffffff}.color-theme-black{--f7-theme-color:#000000;--f7-theme-color-rgb:0,0,0;--f7-theme-color-shade:#000000;--f7-theme-color-tint:#141414}.color-red{--f7-theme-color:#ff3b30;--f7-theme-color-rgb:255,59,48;--f7-theme-color-shade:#ff1407;--f7-theme-color-tint:#ff6259}.text-color-red{--f7-theme-color-text-color:#ff3b30}.bg-color-red{--f7-theme-color-bg-color:#ff3b30}.border-color-red{--f7-theme-color-border-color:#ff3b30}.ripple-color-red,.ripple-red{--f7-theme-color-ripple-color:rgba(255, 59, 48, 0.3)}.color-green{--f7-theme-color:#4cd964;--f7-theme-color-rgb:76,217,100;--f7-theme-color-shade:#2cd048;--f7-theme-color-tint:#6ee081}.text-color-green{--f7-theme-color-text-color:#4cd964}.bg-color-green{--f7-theme-color-bg-color:#4cd964}.border-color-green{--f7-theme-color-border-color:#4cd964}.ripple-color-green,.ripple-green{--f7-theme-color-ripple-color:rgba(76, 217, 100, 0.3)}.color-blue{--f7-theme-color:#2196f3;--f7-theme-color-rgb:33,150,243;--f7-theme-color-shade:#0c82df;--f7-theme-color-tint:#48a8f5}.text-color-blue{--f7-theme-color-text-color:#2196f3}.bg-color-blue{--f7-theme-color-bg-color:#2196f3}.border-color-blue{--f7-theme-color-border-color:#2196f3}.ripple-blue,.ripple-color-blue{--f7-theme-color-ripple-color:rgba(33, 150, 243, 0.3)}.color-pink{--f7-theme-color:#ff2d55;--f7-theme-color-rgb:255,45,85;--f7-theme-color-shade:#ff0434;--f7-theme-color-tint:#ff5676}.text-color-pink{--f7-theme-color-text-color:#ff2d55}.bg-color-pink{--f7-theme-color-bg-color:#ff2d55}.border-color-pink{--f7-theme-color-border-color:#ff2d55}.ripple-color-pink,.ripple-pink{--f7-theme-color-ripple-color:rgba(255, 45, 85, 0.3)}.color-yellow{--f7-theme-color:#ffcc00;--f7-theme-color-rgb:255,204,0;--f7-theme-color-shade:#d6ab00;--f7-theme-color-tint:#ffd429}.text-color-yellow{--f7-theme-color-text-color:#ffcc00}.bg-color-yellow{--f7-theme-color-bg-color:#ffcc00}.border-color-yellow{--f7-theme-color-border-color:#ffcc00}.ripple-color-yellow,.ripple-yellow{--f7-theme-color-ripple-color:rgba(255, 204, 0, 0.3)}.color-orange{--f7-theme-color:#ff9500;--f7-theme-color-rgb:255,149,0;--f7-theme-color-shade:#d67d00;--f7-theme-color-tint:#ffa629}.text-color-orange{--f7-theme-color-text-color:#ff9500}.bg-color-orange{--f7-theme-color-bg-color:#ff9500}.border-color-orange{--f7-theme-color-border-color:#ff9500}.ripple-color-orange,.ripple-orange{--f7-theme-color-ripple-color:rgba(255, 149, 0, 0.3)}.color-purple{--f7-theme-color:#9c27b0;--f7-theme-color-rgb:156,39,176;--f7-theme-color-shade:#7e208f;--f7-theme-color-tint:#b92fd1}.text-color-purple{--f7-theme-color-text-color:#9c27b0}.bg-color-purple{--f7-theme-color-bg-color:#9c27b0}.border-color-purple{--f7-theme-color-border-color:#9c27b0}.ripple-color-purple,.ripple-purple{--f7-theme-color-ripple-color:rgba(156, 39, 176, 0.3)}.color-deeppurple{--f7-theme-color:#673ab7;--f7-theme-color-rgb:103,58,183;--f7-theme-color-shade:#563098;--f7-theme-color-tint:#7c52c8}.text-color-deeppurple{--f7-theme-color-text-color:#673ab7}.bg-color-deeppurple{--f7-theme-color-bg-color:#673ab7}.border-color-deeppurple{--f7-theme-color-border-color:#673ab7}.ripple-color-deeppurple,.ripple-deeppurple{--f7-theme-color-ripple-color:rgba(103, 58, 183, 0.3)}.color-lightblue{--f7-theme-color:#5ac8fa;--f7-theme-color-rgb:90,200,250;--f7-theme-color-shade:#32bbf9;--f7-theme-color-tint:#82d5fb}.text-color-lightblue{--f7-theme-color-text-color:#5ac8fa}.bg-color-lightblue{--f7-theme-color-bg-color:#5ac8fa}.border-color-lightblue{--f7-theme-color-border-color:#5ac8fa}.ripple-color-lightblue,.ripple-lightblue{--f7-theme-color-ripple-color:rgba(90, 200, 250, 0.3)}.color-teal{--f7-theme-color:#009688;--f7-theme-color-rgb:0,150,136;--f7-theme-color-shade:#006d63;--f7-theme-color-tint:#00bfad}.text-color-teal{--f7-theme-color-text-color:#009688}.bg-color-teal{--f7-theme-color-bg-color:#009688}.border-color-teal{--f7-theme-color-border-color:#009688}.ripple-color-teal,.ripple-teal{--f7-theme-color-ripple-color:rgba(0, 150, 136, 0.3)}.color-lime{--f7-theme-color:#cddc39;--f7-theme-color-rgb:205,220,57;--f7-theme-color-shade:#bac923;--f7-theme-color-tint:#d6e25c}.text-color-lime{--f7-theme-color-text-color:#cddc39}.bg-color-lime{--f7-theme-color-bg-color:#cddc39}.border-color-lime{--f7-theme-color-border-color:#cddc39}.ripple-color-lime,.ripple-lime{--f7-theme-color-ripple-color:rgba(205, 220, 57, 0.3)}.color-deeporange{--f7-theme-color:#ff6b22;--f7-theme-color-rgb:255,107,34;--f7-theme-color-shade:#f85200;--f7-theme-color-tint:#ff864b}.text-color-deeporange{--f7-theme-color-text-color:#ff6b22}.bg-color-deeporange{--f7-theme-color-bg-color:#ff6b22}.border-color-deeporange{--f7-theme-color-border-color:#ff6b22}.ripple-color-deeporange,.ripple-deeporange{--f7-theme-color-ripple-color:rgba(255, 107, 34, 0.3)}.color-gray{--f7-theme-color:#8e8e93;--f7-theme-color-rgb:142,142,147;--f7-theme-color-shade:#79797f;--f7-theme-color-tint:#a3a3a7}.text-color-gray{--f7-theme-color-text-color:#8e8e93}.bg-color-gray{--f7-theme-color-bg-color:#8e8e93}.border-color-gray{--f7-theme-color-border-color:#8e8e93}.ripple-color-gray,.ripple-gray{--f7-theme-color-ripple-color:rgba(142, 142, 147, 0.3)}.color-white{--f7-theme-color:#ffffff;--f7-theme-color-rgb:255,255,255;--f7-theme-color-shade:#ebebeb;--f7-theme-color-tint:#ffffff}.text-color-white{--f7-theme-color-text-color:#ffffff}.bg-color-white{--f7-theme-color-bg-color:#ffffff}.border-color-white{--f7-theme-color-border-color:#ffffff}.ripple-color-white,.ripple-white{--f7-theme-color-ripple-color:rgba(255, 255, 255, 0.3)}.color-black{--f7-theme-color:#000000;--f7-theme-color-rgb:0,0,0;--f7-theme-color-shade:#000000;--f7-theme-color-tint:#141414}.text-color-black{--f7-theme-color-text-color:#000000}.bg-color-black{--f7-theme-color-bg-color:#000000}.border-color-black{--f7-theme-color-border-color:#000000}.ripple-black,.ripple-color-black{--f7-theme-color-ripple-color:rgba(0, 0, 0, 0.3)}@font-face{font-family:framework7-core-icons;src:url("data:application/font-woff;charset=utf-8;base64, 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") format("woff");font-weight:400;font-style:normal}@font-face{font-family:framework7-skeleton;src:url("data:application/font-woff;charset=utf-8;base64, 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") format("woff");font-weight:300,400,500,600,700;font-style:normal,italic}.framework7-root,body,html{position:relative;height:100%;width:100%;overflow-x:hidden}body{margin:0;padding:0;width:100%;background:#fff;overflow:hidden;-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;font-family:var(--f7-font-family);font-size:var(--f7-font-size);line-height:var(--f7-line-height);color:var(--f7-text-color)}.theme-dark body,body.theme-dark{background:#000}.theme-dark{color:var(--f7-text-color)}.framework7-root{overflow:hidden;box-sizing:border-box}.framework7-initializing *,.framework7-initializing :after,.framework7-initializing :before{transition-duration:0s!important}.device-android,.device-ios{cursor:pointer}.device-ios{touch-action:manipulation}@media (width:1024px) and (height:691px) and (orientation:landscape){.framework7-root,body,html{height:671px}}@media (width:1024px) and (height:692px) and (orientation:landscape){.framework7-root,body,html{height:672px}}*{-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none}a,input,select,textarea{outline:0}a{cursor:pointer;text-decoration:none;color:var(--f7-theme-color)}.item-link,.link{cursor:pointer}p{margin:1em 0}.disabled{opacity:.55!important;pointer-events:none!important}html.device-full-viewport,html.device-full-viewport body{height:100vh}.ios .aurora-only,.ios .if-aurora,.ios .if-md,.ios .if-not-ios,.ios .md-only,.ios .not-ios{display:none!important}@media (width:1024px) and (height:691px) and (orientation:landscape){.ios,.ios .framework7-root,.ios body{height:671px}}@media (width:1024px) and (height:692px) and (orientation:landscape){.ios,.ios .framework7-root,.ios body{height:672px}}.md .aurora-only,.md .if-aurora,.md .if-ios,.md .if-not-md,.md .ios-only,.md .not-md{display:none!important}.aurora .if-ios,.aurora .if-md,.aurora .if-not-aurora,.aurora .ios-only,.aurora .md-only,.aurora .not-aurora{display:none!important}.view,.views{position:relative;height:100%;z-index:5000;overflow:hidden;box-sizing:border-box}.framework7-root>.view,.framework7-root>.views{height:calc(100% - var(--f7-appbar-app-offset,0px))}.view-resize-handler{width:6px;height:100%;position:absolute;left:var(--f7-page-master-width);margin-left:-3px;top:0;cursor:col-resize;z-index:1000;display:none}.view-master-detail .view-resize-handler{display:block}:root{--f7-page-master-width:320px;--f7-page-master-border-color:rgba(0, 0, 0, 0.1);--f7-page-master-border-width:1px;--f7-page-swipeback-transition-duration:300ms;--f7-page-parallax-transition-duration:500ms;--f7-page-cover-transition-duration:450ms;--f7-page-dive-transition-duration:500ms;--f7-page-fade-transition-duration:500ms;--f7-page-flip-transition-duration:700ms;--f7-page-push-transition-duration:500ms}.ios{--f7-page-transition-duration:400ms;--f7-page-bg-color:#efeff4}.ios .theme-dark,.ios.theme-dark{--f7-page-bg-color:#000}.md{--f7-page-transition-duration:250ms;--f7-page-bg-color:#fff}.md .theme-dark,.md.theme-dark{--f7-page-bg-color:#121212}.aurora{--f7-page-transition-duration:400ms;--f7-page-bg-color:#f3f3f3}.aurora .theme-dark,.aurora.theme-dark{--f7-page-bg-color:#121212}.theme-dark{--f7-page-master-border-color:rgba(255, 255, 255, 0.1)}.pages{position:relative;width:100%;height:100%;overflow:hidden}.page{box-sizing:border-box;position:absolute;left:0;top:0;width:100%;height:100%;transform:none;background-color:var(--f7-page-bg-color);z-index:1}.page.stacked{display:none}.page-with-navbar-large-collapsed{--f7-navbar-large-collapse-progress:1}.page-previous{pointer-events:none}.page-content{overflow:auto;-webkit-overflow-scrolling:touch;box-sizing:border-box;height:100%;position:relative;z-index:1;padding-top:calc(var(--f7-page-navbar-offset,0px) + var(--f7-page-toolbar-top-offset,0px) + var(--f7-page-subnavbar-offset,0px) + var(--f7-page-searchbar-offset,0px) + var(--f7-page-content-extra-padding-top,0px));padding-bottom:calc(var(--f7-page-toolbar-bottom-offset,0px) + var(--f7-safe-area-bottom) + var(--f7-page-content-extra-padding-bottom,0px))}.page-transitioning,.page-transitioning .page-opacity-effect,.page-transitioning .page-shadow-effect{transition-duration:var(--f7-page-transition-duration)}.page-transitioning-swipeback,.page-transitioning-swipeback .page-opacity-effect,.page-transitioning-swipeback .page-shadow-effect{transition-duration:var(--f7-page-swipeback-transition-duration)}.router-transition-backward .page-current,.router-transition-backward .page-next,.router-transition-backward .page-previous:not(.stacked),.router-transition-forward .page-current,.router-transition-forward .page-next,.router-transition-forward .page-previous:not(.stacked){pointer-events:none}.page-shadow-effect{position:absolute;top:0;width:16px;bottom:0;z-index:-1;content:'';opacity:0;right:100%;background:linear-gradient(to right,rgba(0,0,0,0) 0%,rgba(0,0,0,0) 10%,rgba(0,0,0,.01) 50%,rgba(0,0,0,.2) 100%)}.page-opacity-effect{position:absolute;left:0;top:0;background:rgba(0,0,0,.1);width:100%;bottom:0;content:'';opacity:0;z-index:10000}.ios .page-previous{transform:translate3d(-20%,0,0)}.ios .page-next{transform:translate3d(100%,0,0)}.ios .page-previous .page-opacity-effect{opacity:1}.ios .page-previous:after{opacity:1}.ios .page-current .page-shadow-effect{opacity:1}.ios .router-transition-forward .page-next{animation:ios-page-next-to-current var(--f7-page-transition-duration) forwards}.ios .router-transition-forward .page-next:before{position:absolute;top:0;width:16px;bottom:0;z-index:-1;content:'';opacity:0;right:100%;background:linear-gradient(to right,rgba(0,0,0,0) 0%,rgba(0,0,0,0) 10%,rgba(0,0,0,.01) 50%,rgba(0,0,0,.2) 100%);animation:ios-page-element-fade-in var(--f7-page-transition-duration) forwards}.ios .router-transition-forward .page-current{animation:ios-page-current-to-previous var(--f7-page-transition-duration) forwards}.ios .router-transition-forward .page-current:after{position:absolute;left:0;top:0;background:rgba(0,0,0,.1);width:100%;bottom:0;content:'';opacity:0;z-index:10000;animation:ios-page-element-fade-in var(--f7-page-transition-duration) forwards}.ios .router-transition-backward .page-previous{animation:ios-page-previous-to-current var(--f7-page-transition-duration) forwards}.ios .router-transition-backward .page-previous:after{position:absolute;left:0;top:0;background:rgba(0,0,0,.1);width:100%;bottom:0;content:'';opacity:0;z-index:10000;animation:ios-page-element-fade-out var(--f7-page-transition-duration) forwards}.ios .router-transition-backward .page-current{animation:ios-page-current-to-next var(--f7-page-transition-duration) forwards}.ios .router-transition-backward .page-current:before{position:absolute;top:0;width:16px;bottom:0;z-index:-1;content:'';opacity:0;right:100%;background:linear-gradient(to right,rgba(0,0,0,0) 0%,rgba(0,0,0,0) 10%,rgba(0,0,0,.01) 50%,rgba(0,0,0,.2) 100%);animation:ios-page-element-fade-out var(--f7-page-transition-duration) forwards}@keyframes ios-page-next-to-current{from{transform:translate3d(100%,0,0)}to{transform:translate3d(0%,0,0)}}@keyframes ios-page-previous-to-current{from{transform:translate3d(-20%,0,0)}to{transform:translate3d(0%,0,0)}}@keyframes ios-page-current-to-previous{from{transform:translate3d(0,0,0)}to{transform:translate3d(-20%,0,0)}}@keyframes ios-page-current-to-next{from{transform:translate3d(0,0,0)}to{transform:translate3d(100%,0,0)}}@keyframes ios-page-element-fade-in{from{opacity:0}to{opacity:1}}@keyframes ios-page-element-fade-out{from{opacity:1}to{opacity:0}}.md .page-next{transform:translate3d(0,56px,0);opacity:0;pointer-events:none}.md .page-next.page-next-on-right{transform:translate3d(100%,0,0)}.md .router-transition-forward .page-next{animation:md-page-next-to-current var(--f7-page-transition-duration) forwards}.md .router-transition-forward .page-current{animation:none}.md .router-transition-backward .page-current{animation:md-page-current-to-next var(--f7-page-transition-duration) forwards}.md .router-transition-backward .page-previous{animation:none}@keyframes md-page-next-to-current{from{transform:translate3d(0,56px,0);opacity:0}to{transform:translate3d(0,0px,0);opacity:1}}@keyframes md-page-current-to-next{from{transform:translate3d(0,0,0);opacity:1}to{transform:translate3d(0,56px,0);opacity:0}}.aurora .page-next{pointer-events:none;transform:translate3d(100%,0px,0)}.aurora .page-next.page-next-on-right{transform:translate3d(100%,0,0)}.aurora .page-previous .page-opacity-effect{opacity:1}.aurora .page-previous:after{opacity:1}.aurora .router-transition-forward .page-next{animation:aurora-page-next-to-current var(--f7-page-transition-duration) forwards}.aurora .router-transition-forward .page-current{animation:none}.aurora .router-transition-forward .page-current:after{position:absolute;left:0;top:0;background:rgba(0,0,0,.1);width:100%;bottom:0;content:'';opacity:0;z-index:10000;animation:aurora-page-element-fade-in var(--f7-page-transition-duration) forwards}.aurora .router-transition-backward .page-current{animation:aurora-page-current-to-next var(--f7-page-transition-duration) forwards}.aurora .router-transition-backward .page-previous{animation:none}.aurora .router-transition-backward .page-previous:after{position:absolute;left:0;top:0;background:rgba(0,0,0,.1);width:100%;bottom:0;content:'';opacity:0;z-index:10000;animation:aurora-page-element-fade-out var(--f7-page-transition-duration) forwards}@keyframes aurora-page-next-to-current{from{transform:translate3d(100%,0,0)}to{transform:translate3d(0,0px,0)}}@keyframes aurora-page-current-to-next{from{transform:translate3d(0,0,0)}to{transform:translate3d(100%,0,0)}}@keyframes aurora-page-element-fade-in{from{opacity:0}to{opacity:1}}@keyframes aurora-page-element-fade-out{from{opacity:1}to{opacity:0}}.view:not(.view-master-detail) .page-master-stacked{display:none}.view:not(.view-master-detail) .navbar-master-stacked{display:none}.view-master-detail .navbar-master,.view-master-detail .page-master{width:var(--f7-page-master-width);--f7-safe-area-right:0px;--f7-safe-area-outer-right:0px;border-right:var(--f7-page-master-border-width) solid var(--f7-page-master-border-color)}.view-master-detail .navbar-master-detail,.view-master-detail .page-master-detail{width:calc(100% - var(--f7-page-master-width));--f7-safe-area-left:0px;--f7-safe-area-outer-left:0px;left:var(--f7-page-master-width)}.view-master-detail .page-master{z-index:2;transform:none;pointer-events:auto}.view-master-detail .page-master:after,.view-master-detail .page-master:before{display:none}.view-master-detail.router-transition .page-master{animation:none}.aurora .router-transition-custom .page-next,.aurora .router-transition-custom .page-previous,.ios .router-transition-custom .page-next,.ios .router-transition-custom .page-previous,.md .router-transition-custom .page-next,.md .router-transition-custom .page-previous{opacity:1;transform:none}.router-transition-f7-circle-backward:after,.router-transition-f7-circle-forward:after{content:'';position:absolute;left:50%;top:50%;width:100vmax;height:100vmax;margin-left:-50vmax;margin-top:-50vmax;background:var(--f7-page-bg-color);z-index:100}.router-transition-f7-circle-forward:after{transform:scale(0);border-radius:50%;animation:f7-circle-circle-in .4s forwards}.router-transition-f7-circle-forward .page-next{opacity:0!important;transform:scale(.9)!important;animation:f7-circle-next-to-current .3s forwards;animation-delay:.3s;z-index:150}.router-transition-f7-circle-backward:after{animation:f7-circle-circle-out .3s forwards;animation-delay:350ms}.router-transition-f7-circle-backward .page-current{animation:f7-circle-current-to-next .7s forwards;z-index:150}@keyframes f7-circle-circle-in{from{transform:scale(0);border-radius:50%}50%{border-radius:50%}to{transform:scale(1);border-radius:0%}}@keyframes f7-circle-circle-out{from{transform:scale(1);border-radius:0%}50%{border-radius:50%}to{transform:scale(0);border-radius:50%}}@keyframes f7-circle-next-to-current{from{transform:scale(.9);opacity:0}40%{transform:scale(1.035);opacity:1}to{transform:scale(1);opacity:1}}@keyframes f7-circle-current-to-next{from{transform:scale(1);opacity:1}34%{transform:scale(1.035);opacity:1}57%{transform:scale(.9);opacity:0}to{transform:scale(.9);opacity:0}}.router-transition-f7-cover-v-backward,.router-transition-f7-cover-v-forward{background:#000;perspective:1200px}.router-transition-f7-cover-v-forward .page-next{animation:f7-cover-v-next-to-current var(--f7-page-cover-transition-duration) forwards}.router-transition-f7-cover-v-forward .page-current{animation:f7-cover-v-current-to-prev var(--f7-page-cover-transition-duration) forwards}.router-transition-f7-cover-v-backward .page-current{animation:f7-cover-v-current-to-next var(--f7-page-cover-transition-duration) forwards}.router-transition-f7-cover-v-backward .page-previous{animation:f7-cover-v-prev-to-current var(--f7-page-cover-transition-duration) forwards}@keyframes f7-cover-v-next-to-current{from{transform:translateY(100%)}to{transform:translateY(0%)}}@keyframes f7-cover-v-current-to-next{from{transform:translateY(0%)}to{transform:translateY(100%)}}@keyframes f7-cover-v-current-to-prev{from{transform:translateZ(0);opacity:1}to{transform:translateZ(-300px);opacity:.5}}@keyframes f7-cover-v-prev-to-current{from{transform:translateZ(-300px);opacity:.5}to{transform:translateZ(0);opacity:1}}.router-transition-f7-cover-backward,.router-transition-f7-cover-forward{background:#000;perspective:1200px}.router-transition-f7-cover-forward .page-next{animation:f7-cover-next-to-current var(--f7-page-cover-transition-duration) forwards}.router-transition-f7-cover-forward .page-current{animation:f7-cover-current-to-prev var(--f7-page-cover-transition-duration) forwards}.router-transition-f7-cover-backward .page-current{animation:f7-cover-current-to-next var(--f7-page-cover-transition-duration) forwards}.router-transition-f7-cover-backward .page-previous{animation:f7-cover-prev-to-current var(--f7-page-cover-transition-duration) forwards}@keyframes f7-cover-next-to-current{from{transform:translateX(100%)}to{transform:translateX(0%)}}@keyframes f7-cover-current-to-next{from{transform:translateX(0%)}to{transform:translateX(100%)}}@keyframes f7-cover-current-to-prev{from{transform:translateZ(0);opacity:1}to{transform:translateZ(-300px);opacity:.5}}@keyframes f7-cover-prev-to-current{from{transform:translateZ(-300px);opacity:.5}to{transform:translateZ(0);opacity:1}}.router-transition-f7-dive-backward,.router-transition-f7-dive-forward{background:var(--f7-page-bg-color);perspective:1200px}.router-transition-f7-dive-forward .page-next{animation:f7-dive-next-to-current var(--f7-page-dive-transition-duration) forwards}.router-transition-f7-dive-forward .page-current{animation:f7-dive-current-to-prev var(--f7-page-dive-transition-duration) forwards}.router-transition-f7-dive-backward .page-current{animation:f7-dive-current-to-next var(--f7-page-dive-transition-duration) forwards}.router-transition-f7-dive-backward .page-previous{animation:f7-dive-prev-to-current var(--f7-page-dive-transition-duration) forwards}@keyframes f7-dive-next-to-current{from{opacity:0;transform:translateZ(-150px)}50%{opacity:0}to{opacity:1;transform:translateZ(0px)}}@keyframes f7-dive-current-to-next{from{opacity:1;transform:translateZ(0px)}50%{opacity:0}to{opacity:0;transform:translateZ(-150px)}}@keyframes f7-dive-current-to-prev{from{transform:translateZ(0px);opacity:1}50%{opacity:0}to{opacity:0;transform:translateZ(150px)}}@keyframes f7-dive-prev-to-current{from{opacity:0;transform:translateZ(150px)}50%{opacity:0}to{opacity:1;transform:translateZ(0px)}}.router-transition-f7-fade-backward,.router-transition-f7-fade-forward{background:var(--f7-page-bg-color)}.router-transition-f7-fade-forward .page-next{opacity:0!important;animation:f7-fade-in var(--f7-page-fade-transition-duration) forwards}.router-transition-f7-fade-forward .page-current{animation:f7-fade-out var(--f7-page-fade-transition-duration) forwards}.router-transition-f7-fade-backward .page-current{animation:f7-fade-out var(--f7-page-fade-transition-duration) forwards}.router-transition-f7-fade-backward .page-previous{animation:f7-fade-in var(--f7-page-fade-transition-duration) forwards}@keyframes f7-fade-in{from{opacity:0}50%{opacity:0}to{opacity:1}}@keyframes f7-fade-out{from{opacity:1}50%{opacity:0}to{opacity:0}}.router-transition-f7-flip-backward,.router-transition-f7-flip-forward{background:#000;perspective:1200px}.router-transition-f7-flip-backward .page,.router-transition-f7-flip-forward .page{-webkit-backface-visibility:hidden;backface-visibility:hidden}.router-transition-f7-flip-forward .page-next{animation:f7-flip-next-to-current var(--f7-page-flip-transition-duration) forwards}.router-transition-f7-flip-forward .page-current{animation:f7-flip-current-to-prev var(--f7-page-flip-transition-duration) forwards}.router-transition-f7-flip-backward .page-current{animation:f7-flip-current-to-next var(--f7-page-flip-transition-duration) forwards}.router-transition-f7-flip-backward .page-previous{animation:f7-flip-prev-to-current var(--f7-page-flip-transition-duration) forwards}@keyframes f7-flip-next-to-current{from{border-radius:30px;transform:translateZ(-100vmax) rotateY(180deg)}to{border-radius:0;transform:translateZ(0px) rotateY(0deg)}}@keyframes f7-flip-current-to-next{from{border-radius:0px;transform:translateZ(0px) rotateY(0deg)}to{border-radius:30px;transform:translateZ(-100vmax) rotateY(180deg)}}@keyframes f7-flip-current-to-prev{from{border-radius:0px;transform:translateZ(0px) rotateY(0deg)}to{border-radius:30px;transform:translateZ(-100vmax) rotateY(-180deg)}}@keyframes f7-flip-prev-to-current{from{border-radius:30px;transform:translateZ(-100vmax) rotateY(-180deg)}to{border-radius:0px;transform:translateZ(0px) rotateY(0deg)}}.router-transition-f7-parallax-forward .page-next{animation:f7-parallax-next-to-current var(--f7-page-parallax-transition-duration) forwards}.router-transition-f7-parallax-forward .page-current{animation:f7-parallax-current-to-prev var(--f7-page-parallax-transition-duration) forwards}.router-transition-f7-parallax-backward .page-current{animation:f7-parallax-current-to-next var(--f7-page-parallax-transition-duration) forwards}.router-transition-f7-parallax-backward .page-previous{animation:f7-parallax-prev-to-current var(--f7-page-parallax-transition-duration) forwards}@keyframes f7-parallax-next-to-current{from{transform:translateX(100%)}to{transform:translateX(0%)}}@keyframes f7-parallax-current-to-next{from{transform:translateX(0%)}to{transform:translateX(100%)}}@keyframes f7-parallax-current-to-prev{from{transform:translateX(0%)}to{transform:translateX(-20%)}}@keyframes f7-parallax-prev-to-current{from{transform:translateX(-20%)}to{transform:translateX(0%)}}.router-transition-f7-push-forward .page-next{animation:f7-push-next-to-current var(--f7-page-push-transition-duration) forwards}.router-transition-f7-push-forward .page-current{animation:f7-push-current-to-prev var(--f7-page-push-transition-duration) forwards}.router-transition-f7-push-backward .page-current{animation:f7-push-current-to-next var(--f7-page-push-transition-duration) forwards}.router-transition-f7-push-backward .page-previous{animation:f7-push-prev-to-current var(--f7-page-push-transition-duration) forwards}@keyframes f7-push-next-to-current{from{transform:translateX(100%)}to{transform:translateX(0%)}}@keyframes f7-push-current-to-next{from{transform:translateX(0%)}to{transform:translateX(100%)}}@keyframes f7-push-current-to-prev{from{transform:translateX(0%)}to{transform:translateX(-100%)}}@keyframes f7-push-prev-to-current{from{transform:translateX(-100%)}to{transform:translateX(0%)}}:root{--f7-link-highlight-black:rgba(0, 0, 0, 0.1);--f7-link-highlight-white:rgba(255, 255, 255, 0.15);--f7-link-highlight-color:var(--f7-link-highlight-black)}.theme-dark{--f7-link-highlight-color:var(--f7-link-highlight-white)}.link,.tab-link{display:inline-flex;align-items:center;align-content:center;justify-content:center;position:relative;box-sizing:border-box;z-index:1}.link i+i,.link i+span,.link span+i,.link span+span{margin-left:4px}.ios .link{transition:opacity .3s}.ios .link.active-state{opacity:.3;transition-duration:0s}.aurora .link{transition:opacity .3s}.aurora .link.active-state{opacity:.3;transition-duration:0s}:root{--f7-navbar-hide-show-transition-duration:400ms;--f7-navbar-title-line-height:1.2;--f7-navbar-title-font-size:inherit;--f7-navbar-subtitle-text-align:inherit;--f7-navbar-large-title-line-height:1.2;--f7-navbar-large-title-text-color:inherit;--f7-navbar-large-title-padding-left:16px;--f7-navbar-large-title-padding-right:16px}.ios{--f7-navbar-height:44px;--f7-navbar-tablet-height:44px;--f7-navbar-font-size:17px;--f7-navbar-inner-padding-left:8px;--f7-navbar-inner-padding-right:8px;--f7-navbar-title-font-weight:600;--f7-navbar-title-margin-left:0;--f7-navbar-title-margin-right:0;--f7-navbar-title-text-align:center;--f7-navbar-subtitle-font-size:10px;--f7-navbar-subtitle-line-height:1;--f7-navbar-shadow-image:none;--f7-navbar-large-title-height:52px;--f7-navbar-large-title-font-size:34px;--f7-navbar-large-title-font-weight:700;--f7-navbar-large-title-letter-spacing:-0.03em;--f7-navbar-large-title-padding-vertical:6px;--f7-navbar-subtitle-text-color:rgba(0, 0, 0, 0.55)}.ios .theme-dark,.ios.theme-dark{--f7-navbar-subtitle-text-color:rgba(255, 255, 255, 0.55)}.md{--f7-navbar-height:56px;--f7-navbar-tablet-height:64px;--f7-navbar-font-size:20px;--f7-navbar-inner-padding-left:0px;--f7-navbar-inner-padding-right:0px;--f7-navbar-title-font-weight:500;--f7-navbar-title-margin-left:16px;--f7-navbar-title-margin-right:16px;--f7-navbar-title-text-align:left;--f7-navbar-subtitle-font-size:14px;--f7-navbar-subtitle-line-height:1.2;--f7-navbar-shadow-image:var(--f7-bars-shadow-bottom-image);--f7-navbar-large-title-font-size:34px;--f7-navbar-large-title-height:56px;--f7-navbar-large-title-font-weight:500;--f7-navbar-large-title-letter-spacing:0;--f7-navbar-large-title-padding-vertical:8px;--f7-navbar-subtitle-text-color:rgba(0, 0, 0, 0.85)}.md .theme-dark,.md.theme-dark{--f7-navbar-subtitle-text-color:rgba(255, 255, 255, 0.85)}.aurora{--f7-navbar-height:38px;--f7-navbar-tablet-height:38px;--f7-navbar-font-size:14px;--f7-navbar-inner-padding-left:16px;--f7-navbar-inner-padding-right:16px;--f7-navbar-title-font-weight:600;--f7-navbar-title-margin-left:0;--f7-navbar-title-margin-right:0;--f7-navbar-title-text-align:center;--f7-navbar-subtitle-font-size:12px;--f7-navbar-subtitle-line-height:1;--f7-navbar-shadow-image:none;--f7-navbar-large-title-height:38px;--f7-navbar-large-title-font-size:26px;--f7-navbar-large-title-font-weight:bold;--f7-navbar-large-title-letter-spacing:-0.03em;--f7-navbar-large-title-padding-vertical:4px;--f7-navbar-link-height:auto;--f7-navbar-link-line-height:inherit;--f7-navbar-subtitle-text-color:rgba(0, 0, 0, 0.6)}.aurora .theme-dark,.aurora.theme-dark{--f7-navbar-subtitle-text-color:rgba(255, 255, 255, 0.5)}.navbar,.navbars{z-index:500;left:0;top:0;width:100%}.navbars{position:absolute}.navbars .navbar{z-index:auto}.navbar{--f7-navbar-large-collapse-progress:0;position:relative;-webkit-backface-visibility:hidden;backface-visibility:hidden;box-sizing:border-box;margin:0;height:calc(var(--f7-navbar-height) + var(--f7-safe-area-top));color:var(--f7-navbar-text-color,var(--f7-bars-text-color));font-size:var(--f7-navbar-font-size)}.navbar.stacked{display:none}.navbar b{font-weight:500}.navbar a{color:var(--f7-navbar-link-color,var(--f7-bars-link-color,var(--f7-theme-color)))}.navbar a.link{display:flex;justify-content:flex-start;line-height:var(--f7-navbar-link-line-height,var(--f7-navbar-height));height:var(--f7-navbar-link-height,var(--f7-navbar-height))}.navbar .left,.navbar .right,.navbar .title{position:relative;z-index:10}.navbar .title{position:relative;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-shrink:10;font-weight:var(--f7-navbar-title-font-weight);display:inline-block;line-height:var(--f7-navbar-title-line-height);text-align:var(--f7-navbar-title-text-align);font-size:var(--f7-navbar-title-font-size);margin-left:var(--f7-navbar-title-margin-left);margin-right:var(--f7-navbar-title-margin-left)}.navbar .subtitle{display:block;color:var(--f7-navbar-subtitle-text-color);font-weight:400;font-size:var(--f7-navbar-subtitle-font-size);line-height:var(--f7-navbar-subtitle-line-height);text-align:var(--f7-navbar-subtitle-text-align)}.navbar .left,.navbar .right{flex-shrink:0;display:flex;justify-content:flex-start;align-items:center}.navbar .right:first-child{position:absolute;height:100%}.navbar .no-border .navbar-bg:after,.navbar .no-hairline .navbar-bg:after,.navbar.no-border .navbar-bg:after,.navbar.no-hairline .navbar-bg:after{display:none!important}.navbar .no-border .title-large:after,.navbar .no-hairline .title-large:after,.navbar.no-border .title-large:after,.navbar.no-hairline .title-large:after{display:none!important}.navbar .no-shadow .navbar-bg:before,.navbar.no-shadow .navbar-bg:before{display:none!important}.navbar-hidden .navbar .navbar-bg:before,.navbar.navbar-hidden .navbar-bg:before{opacity:0!important}.navbar-bg{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:0;background:var(--f7-navbar-bg-color);background-image:var(--f7-navbar-bg-image,var(--f7-bars-bg-image));background-color:var(--f7-navbar-bg-color,var(--f7-bars-bg-color));transition-property:transform}@supports ((-webkit-backdrop-filter:blur(20px)) or (backdrop-filter:blur(20px))){.ios-translucent-bars .navbar-bg{background-color:rgba(var(--f7-navbar-bg-color-rgb,var(--f7-bars-bg-color-rgb)),var(--f7-bars-translucent-opacity));-webkit-backdrop-filter:saturate(180%) blur(var(--f7-bars-translucent-blur));backdrop-filter:saturate(180%) blur(var(--f7-bars-translucent-blur))}}.navbar-bg:after,.navbar-bg:before{-webkit-backface-visibility:hidden;backface-visibility:hidden}.navbar-bg:after{content:'';position:absolute;background-color:var(--f7-navbar-border-color,var(--f7-bars-border-color));display:block;z-index:15;top:auto;right:auto;bottom:0;left:0;height:1px;width:100%;transform-origin:50% 100%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.navbar-bg:before{content:'';position:absolute;right:0;width:100%;top:100%;bottom:auto;height:8px;pointer-events:none;background:var(--f7-navbar-shadow-image)}.navbar-bg:after{z-index:1}@media (min-width:768px) and (min-height:600px){:root{--f7-navbar-height:var(--f7-navbar-tablet-height)}}.navbar-transitioning,.navbar-transitioning .left,.navbar-transitioning .navbar-bg,.navbar-transitioning .navbar-bg:before,.navbar-transitioning .right,.navbar-transitioning .subnavbar,.navbar-transitioning .title,.navbar-transitioning .title-large-text{transition-duration:var(--f7-navbar-hide-show-transition-duration)}.navbar-page-transitioning{transition-duration:var(--f7-page-swipeback-transition-duration)!important}.navbar-page-transitioning .navbar-bg,.navbar-page-transitioning .title-large-text{transition-duration:var(--f7-page-swipeback-transition-duration)!important}.navbar-hidden{transform:translate3d(0,calc(-1 * var(--f7-navbar-height)),0)}.navbar-hidden .navbar-inner{pointer-events:none}.navbar-hidden .navbar-inner>.left,.navbar-hidden .navbar-inner>.right,.navbar-hidden .navbar-inner>.title{opacity:0!important}.navbar-hidden .subnavbar{pointer-events:auto}.navbar-hidden-statusbar{transform:translate3d(0,calc(-1 * var(--f7-navbar-height) - var(--f7-safe-area-top)),0)}.navbar-large-hidden .navbar-large{--f7-navbar-large-collapse-progress:1}.navbar-inner{position:absolute;left:0;bottom:0;width:100%;height:100%;display:flex;align-items:center;box-sizing:border-box;padding:var(--f7-safe-area-top) calc(var(--f7-navbar-inner-padding-right) + var(--f7-safe-area-right)) 0 calc(var(--f7-navbar-inner-padding-left) + var(--f7-safe-area-left));transform:translate3d(0,0,0);z-index:10}.navbars>.navbar,.page>.navbar,.view>.navbar,.views>.navbar{position:absolute}.navbar-transparent:not(.navbar-large):not(.navbar-transparent-visible):not(.with-searchbar-expandable-enabled) .navbar-bg,.navbar-transparent:not(.navbar-large):not(.navbar-transparent-visible):not(.with-searchbar-expandable-enabled) .title{opacity:0}.navbar-large .navbar-bg{height:calc(100% + var(--f7-navbar-large-title-height));transform:translate3d(0px,calc(-1 * var(--f7-navbar-large-collapse-progress) * var(--f7-navbar-large-title-height)),0)}.navbar-large-transparent .navbar-bg,.navbar-large.navbar-transparent .navbar-bg{opacity:var(--f7-navbar-large-collapse-progress);height:100%;transform:none}.ios .router-navbar-transition-from-large .navbar-bg,.ios .router-navbar-transition-to-large .navbar-bg,.navbar-bg.ios-swipeback-navbar-bg-large,.navbar-large-transparent .navbar-bg.ios-swipeback-navbar-bg-large,.navbar-large.navbar-transparent .navbar-bg.ios-swipeback-navbar-bg-large{height:calc(100% + var(--f7-navbar-large-title-height));transform:translate3d(0px,calc(-1 * var(--f7-navbar-large-collapse-progress) * var(--f7-navbar-large-title-height)),0)}.ios .navbar:not(.navbar-large) .navbar-bg{--f7-navbar-large-collapse-progress:1}.navbar-large .title{opacity:var(--f7-navbar-large-collapse-progress)}.navbar-large-collapsed{--f7-navbar-large-collapse-progress:1}.navbar-large-collapsed .title-large{pointer-events:none}.navbar .title-large{box-sizing:border-box;position:absolute;left:0;right:0;top:100%;display:flex;align-items:flex-end;white-space:nowrap;overflow:hidden;height:var(--f7-navbar-large-title-height);z-index:5}.navbar .title-large-text{text-overflow:ellipsis;white-space:nowrap;color:var(--f7-navbar-large-title-text-color);letter-spacing:var(--f7-navbar-large-title-letter-spacing);font-size:var(--f7-navbar-large-title-font-size);font-weight:var(--f7-navbar-large-title-font-weight);line-height:var(--f7-navbar-large-title-line-height);padding-left:calc(var(--f7-navbar-large-title-padding-left) + var(--f7-safe-area-left));padding-right:calc(var(--f7-navbar-large-title-padding-right) + var(--f7-safe-area-right));padding-top:var(--f7-navbar-large-title-padding-vertical);padding-bottom:var(--f7-navbar-large-title-padding-vertical);box-sizing:border-box;overflow:hidden;width:100%;transform:translate3d(0px,calc(-1 * var(--f7-navbar-large-collapse-progress) * var(--f7-navbar-large-title-height)),0);transform-origin:calc(var(--f7-navbar-large-title-padding-left) + var(--f7-safe-area-left)) center}.navbar-no-title-large-transition .title-large-text{transition-duration:0s}.navbars~*,.navbar~*{--f7-page-navbar-offset:calc(var(--f7-navbar-height) + var(--f7-safe-area-top))}.navbars~* .page-with-navbar-large,.navbars~.page-with-navbar-large,.navbar~* .page-with-navbar-large,.navbar~.page-with-navbar-large,.page-with-navbar-large .navbar~*{--f7-page-navbar-offset:calc(var(--f7-navbar-height) + var(--f7-navbar-large-title-height) + var(--f7-safe-area-top))}.page.no-navbar,.page.no-navbar .navbar~*{--f7-page-navbar-offset:var(--f7-safe-area-top)}.ios{--f7-navbarLeftTextOffset:calc(4px + 12px + var(--f7-navbar-inner-padding-left));--f7-navbarTitleLargeOffset:var(--f7-navbar-large-title-padding-left);--f7-navbar-large-transparent-bg-center:translateX(0);--f7-navbar-large-bg-center-top:translateX(0) translateY(calc(-1 * var(--f7-navbar-large-title-height)));--f7-navbar-large-bg-center-bottom:translateX(0) translateY(0);--f7-navbar-large-transparent-bg-left:translateX(-100%);--f7-navbar-large-bg-left-top:translateX(-100%) translateY(calc(-1 * var(--f7-navbar-large-title-height)));--f7-navbar-large-bg-left-bottom:translateX(-100%) translateY(0);--f7-navbar-large-bg-right-top:translateX(100%) translateY(calc(-1 * var(--f7-navbar-large-title-height)));--f7-navbar-large-bg-right-bottom:translateX(100%) translateY(0)}.ios .navbar a.icon-only{width:44px;margin:0;justify-content:center}.ios .navbar .left a+a,.ios .navbar .right a+a{margin-left:16px}.ios .navbar b{font-weight:600}.ios .navbar .left{margin-right:10px}.ios .navbar .right{margin-left:10px}.ios .navbar .right:first-child{right:calc(8px + var(--f7-safe-area-right))}.ios .navbar-inner{justify-content:space-between}.ios .navbar-inner-left-title{justify-content:flex-start}.ios .navbar-inner-left-title .right{margin-left:auto}.ios .navbar-inner-left-title .title{text-align:left;margin-right:10px}.ios .navbar-next .fading,.ios .navbar-next .left,.ios .navbar-next .right,.ios .navbar-next .subnavbar,.ios .navbar-next .title,.ios .view-master-detail .navbar-previous:not(.navbar-master) .fading,.ios .view-master-detail .navbar-previous:not(.navbar-master) .left,.ios .view-master-detail .navbar-previous:not(.navbar-master) .right,.ios .view-master-detail .navbar-previous:not(.navbar-master) .subnavbar,.ios .view-master-detail .navbar-previous:not(.navbar-master) .title,.ios .view:not(.view-master-detail) .navbar-previous .fading,.ios .view:not(.view-master-detail) .navbar-previous .left,.ios .view:not(.view-master-detail) .navbar-previous .right,.ios .view:not(.view-master-detail) .navbar-previous .subnavbar,.ios .view:not(.view-master-detail) .navbar-previous .title{opacity:0}.ios .view-master-detail .navbar-previous:not(.navbar-master),.ios .view:not(.view-master-detail) .navbar-previous{pointer-events:none}.ios .view-master-detail .navbar-previous:not(.navbar-master) .title-large,.ios .view:not(.view-master-detail) .navbar-previous .title-large{opacity:0;transition-duration:0s}.ios .view-master-detail .navbar-previous:not(.navbar-master) .title-large .title-large-text,.ios .view:not(.view-master-detail) .navbar-previous .title-large .title-large-text{transform:scale(.5);transition-duration:0s}.ios .view-master-detail .navbar-previous:not(.navbar-master) .sliding .subnavbar,.ios .view-master-detail .navbar-previous:not(.navbar-master) .subnavbar.sliding,.ios .view:not(.view-master-detail) .navbar-previous .sliding .subnavbar,.ios .view:not(.view-master-detail) .navbar-previous .subnavbar.sliding{opacity:1;transform:translate3d(-100%,0,0)}.ios .view-master-detail .navbar-previous:not(.navbar-master) .navbar-bg,.ios .view:not(.view-master-detail) .navbar-previous .navbar-bg{transform:translateX(-100%)}.ios .navbar-next{pointer-events:none}.ios .navbar-next .navbar-bg{transform:translateX(100%)}.ios .navbar-next .title-large .title-large-text{transition-duration:0s;transform:translateX(100%) translateY(calc(-1 * var(--f7-navbar-large-title-height)))}.ios .navbar-next .sliding .subnavbar,.ios .navbar-next .subnavbar.sliding{opacity:1;transform:translate3d(100%,0,0)}.ios .router-transition .navbar,.ios .router-transition .navbar-bg{transition-duration:var(--f7-page-transition-duration)}.ios .router-transition .navbar-bg{animation-duration:var(--f7-page-transition-duration);animation-fill-mode:forwards}.ios .router-transition .title-large,.ios .router-transition .title-large-text{transition-duration:0s}.ios .router-transition .navbar-current .left,.ios .router-transition .navbar-current .right,.ios .router-transition .navbar-current .subnavbar,.ios .router-transition .navbar-current .title{animation:ios-navbar-element-fade-out var(--f7-page-transition-duration) forwards}.ios .router-transition .navbar-current .sliding .left,.ios .router-transition .navbar-current .sliding .left .icon+span,.ios .router-transition .navbar-current .sliding .right,.ios .router-transition .navbar-current .sliding .title,.ios .router-transition .navbar-current .sliding.left,.ios .router-transition .navbar-current .sliding.left .icon+span,.ios .router-transition .navbar-current .sliding.right,.ios .router-transition .navbar-current .sliding.title{transition-duration:var(--f7-page-transition-duration);opacity:0!important;animation:none}.ios .router-transition .navbar-current .sliding .subnavbar,.ios .router-transition .navbar-current .sliding.subnavbar{transition-duration:var(--f7-page-transition-duration);animation:none;opacity:1}.ios .router-transition-backward .navbar-previous .left,.ios .router-transition-backward .navbar-previous .right,.ios .router-transition-backward .navbar-previous .subnavbar,.ios .router-transition-backward .navbar-previous .title,.ios .router-transition-forward .navbar-next .left,.ios .router-transition-forward .navbar-next .right,.ios .router-transition-forward .navbar-next .subnavbar,.ios .router-transition-forward .navbar-next .title{animation:ios-navbar-element-fade-in var(--f7-page-transition-duration) forwards}.ios .router-transition-backward .navbar-previous .sliding .left,.ios .router-transition-backward .navbar-previous .sliding .left .icon+span,.ios .router-transition-backward .navbar-previous .sliding .right,.ios .router-transition-backward .navbar-previous .sliding .subnavbar,.ios .router-transition-backward .navbar-previous .sliding .title,.ios .router-transition-backward .navbar-previous .sliding.left,.ios .router-transition-backward .navbar-previous .sliding.left .icon+span,.ios .router-transition-backward .navbar-previous .sliding.right,.ios .router-transition-backward .navbar-previous .sliding.title,.ios .router-transition-forward .navbar-next .sliding .left,.ios .router-transition-forward .navbar-next .sliding .left .icon+span,.ios .router-transition-forward .navbar-next .sliding .right,.ios .router-transition-forward .navbar-next .sliding .subnavbar,.ios .router-transition-forward .navbar-next .sliding .title,.ios .router-transition-forward .navbar-next .sliding.left,.ios .router-transition-forward .navbar-next .sliding.left .icon+span,.ios .router-transition-forward .navbar-next .sliding.right,.ios .router-transition-forward .navbar-next .sliding.title{transition-duration:var(--f7-page-transition-duration);animation:none;transform:translate3d(0,0,0)!important;opacity:1!important}.ios .router-transition-backward .navbar-previous.navbar-transparent:not(.navbar-large):not(.navbar-transparent-visible) .title,.ios .router-transition-forward .navbar-next.navbar-transparent:not(.navbar-large):not(.navbar-transparent-visible) .title{animation:none}.ios .router-transition-backward .navbar-previous.navbar-transparent:not(.navbar-large):not(.navbar-transparent-visible) .sliding .title,.ios .router-transition-backward .navbar-previous.navbar-transparent:not(.navbar-large):not(.navbar-transparent-visible) .sliding.title,.ios .router-transition-forward .navbar-next.navbar-transparent:not(.navbar-large):not(.navbar-transparent-visible) .sliding .title,.ios .router-transition-forward .navbar-next.navbar-transparent:not(.navbar-large):not(.navbar-transparent-visible) .sliding.title{opacity:0!important}.ios .router-transition-backward .navbar-previous.with-searchbar-expandable-enabled .left,.ios .router-transition-backward .navbar-previous.with-searchbar-expandable-enabled .right,.ios .router-transition-backward .navbar-previous.with-searchbar-expandable-enabled .subnavbar,.ios .router-transition-backward .navbar-previous.with-searchbar-expandable-enabled .title,.ios .router-transition-backward .navbar-previous.with-searchbar-expandable-enabled-no-transition .left,.ios .router-transition-backward .navbar-previous.with-searchbar-expandable-enabled-no-transition .right,.ios .router-transition-backward .navbar-previous.with-searchbar-expandable-enabled-no-transition .subnavbar,.ios .router-transition-backward .navbar-previous.with-searchbar-expandable-enabled-no-transition .title{animation:none}.ios .router-transition-forward .navbar-current.router-navbar-transition-from-large.router-navbar-transition-to-large .title-large,.ios .router-transition-forward .navbar-current.router-navbar-transition-from-large:not(.router-navbar-transition-to-large) .title-large{overflow:visible}.ios .router-transition-forward .navbar-current.router-navbar-transition-from-large.router-navbar-transition-to-large .title-large .title-large-text,.ios .router-transition-forward .navbar-current.router-navbar-transition-from-large:not(.router-navbar-transition-to-large) .title-large .title-large-text{animation:ios-navbar-large-title-text-slide-up var(--f7-page-transition-duration) forwards,ios-navbar-large-title-text-fade-out var(--f7-page-transition-duration) forwards}.ios .router-transition-forward .navbar-next.router-navbar-transition-from-large .left .back span{animation:ios-navbar-back-text-next-to-current var(--f7-page-transition-duration) forwards;transition:none;transform-origin:left center}.ios .router-transition-forward .navbar-next.router-navbar-transition-from-large.router-navbar-transition-to-large .title-large{overflow:visible}.ios .router-transition-forward .navbar-next.router-navbar-transition-from-large.router-navbar-transition-to-large .title-large .title-large-text{animation:ios-navbar-large-title-text-slide-left var(--f7-page-transition-duration) forwards}.ios .router-transition-forward .navbar-next.router-navbar-transition-to-large:not(.router-navbar-transition-from-large) .title-large .title-large-text{animation:ios-navbar-large-title-text-slide-left var(--f7-page-transition-duration) forwards}.ios .router-transition-forward .navbar-current.navbar-large:not(.navbar-large-collapsed) .title,.ios .router-transition-forward .navbar-next.navbar-large:not(.navbar-large-collapsed) .title{animation:none;opacity:0!important;transition-duration:0}.ios .router-transition-backward .navbar-current.router-navbar-transition-to-large .left .back span{animation:ios-navbar-back-text-current-to-previous var(--f7-page-transition-duration) forwards;transition:none;transform-origin:left center}.ios .router-transition-backward .navbar-current.router-navbar-transition-from-large.router-navbar-transition-to-large .title-large{overflow:visible}.ios .router-transition-backward .navbar-current.router-navbar-transition-from-large.router-navbar-transition-to-large .title-large .title-large-text{animation:ios-navbar-large-title-text-slide-right var(--f7-page-transition-duration) forwards}.ios .router-transition-backward .navbar-current.router-navbar-transition-from-large:not(.router-navbar-transition-to-large) .title-large .title-large-text{animation:ios-navbar-large-title-text-slide-right var(--f7-page-transition-duration) forwards}.ios .router-transition-backward .navbar-current.router-navbar-transition-to-large:not(.router-navbar-transition-from-large) .title-large{opacity:0}.ios .router-transition-backward .navbar-previous.router-navbar-transition-from-large.router-navbar-transition-to-large .title-large,.ios .router-transition-backward .navbar-previous.router-navbar-transition-to-large:not(.router-navbar-transition-from-large) .title-large{overflow:visible;opacity:1}.ios .router-transition-backward .navbar-previous.router-navbar-transition-from-large.router-navbar-transition-to-large .title-large .title-large-text,.ios .router-transition-backward .navbar-previous.router-navbar-transition-to-large:not(.router-navbar-transition-from-large) .title-large .title-large-text{animation:ios-navbar-large-title-text-slide-down var(--f7-page-transition-duration) forwards,ios-navbar-large-title-text-fade-in var(--f7-page-transition-duration) forwards}.ios .router-transition-backward .navbar-current.navbar-large:not(.navbar-large-collapsed) .title,.ios .router-transition-backward .navbar-previous.navbar-large:not(.navbar-large-collapsed) .title{animation:none;opacity:0!important;transition-duration:0}.ios .router-transition-forward .navbar-current .navbar-bg{animation-name:ios-navbar-bg-from-cb-to-lb}.ios .router-transition-forward .navbar-current.router-navbar-transition-from-large.router-navbar-transition-to-large .navbar-bg{animation-name:ios-navbar-bg-from-cb-to-lb}.ios .router-transition-forward .navbar-current.router-navbar-transition-from-large:not(.router-navbar-transition-to-large) .navbar-bg{animation-name:ios-navbar-bg-from-cb-to-lt}.ios .router-transition-forward .navbar-current:not(.router-navbar-transition-from-large).router-navbar-transition-to-large .navbar-bg{animation-name:ios-navbar-bg-from-ct-to-lb}.ios .router-transition-forward .navbar-current.navbar-large-collapsed:not(.router-navbar-transition-to-large) .navbar-bg{animation-name:ios-navbar-bg-from-ct-to-lt}.ios .router-transition-forward .navbar-current.navbar-large-collapsed.navbar-large-transparent:not(.router-navbar-transition-to-large) .navbar-bg,.ios .router-transition-forward .navbar-current.navbar-large-collapsed.navbar-large.navbar-transparent:not(.router-navbar-transition-to-large) .navbar-bg{animation-name:ios-navbar-transparent-bg-from-c-to-l}.ios .router-transition-forward .navbar-next .navbar-bg{animation-name:ios-navbar-bg-from-rb-to-cb}.ios .router-transition-forward .navbar-next.router-navbar-transition-from-large.router-navbar-transition-to-large .navbar-bg{animation-name:ios-navbar-bg-from-rb-to-cb}.ios .router-transition-forward .navbar-next.router-navbar-transition-from-large:not(.router-navbar-transition-to-large) .navbar-bg{animation-name:ios-navbar-bg-from-rb-to-ct}.ios .router-transition-forward .navbar-next:not(.router-navbar-transition-from-large).router-navbar-transition-to-large .navbar-bg{animation-name:ios-navbar-bg-from-rt-to-cb}.ios .router-transition-backward .navbar-current .navbar-bg{animation-name:ios-navbar-bg-from-cb-to-rb}.ios .router-transition-backward .navbar-current:not(.router-navbar-transition-from-large).router-navbar-transition-to-large .navbar-bg{animation-name:ios-navbar-bg-from-ct-to-rb}.ios .router-transition-backward .navbar-current.router-navbar-transition-from-large:not(.router-navbar-transition-to-large) .navbar-bg{animation-name:ios-navbar-bg-from-cb-to-rt}.ios .router-transition-backward .navbar-current.navbar-large-collapsed .navbar-bg{animation-name:ios-navbar-bg-from-ct-to-rt}.ios .router-transition-backward .navbar-current.navbar-large-collapsed.navbar-large-transparent .navbar-bg,.ios .router-transition-backward .navbar-current.navbar-large-collapsed.navbar-large.navbar-transparent .navbar-bg{animation-name:ios-navbar-bg-from-cb-to-rb}.ios .router-transition-backward .navbar-current.navbar-large-collapsed.router-navbar-transition-to-large .navbar-bg{animation-name:ios-navbar-bg-from-ct-to-rb}.ios .router-transition-backward .navbar-previous .navbar-bg{animation-name:ios-navbar-bg-from-lb-to-cb}.ios .router-transition-backward .navbar-previous:not(.router-navbar-transition-from-large).router-navbar-transition-to-large .navbar-bg{animation-name:ios-navbar-bg-from-lt-to-cb}.ios .router-transition-backward .navbar-previous.router-navbar-transition-from-large:not(.router-navbar-transition-to-large) .navbar-bg{animation-name:ios-navbar-bg-from-lb-to-ct}.ios .router-transition-backward .navbar-previous.navbar-large-collapsed .navbar-bg{animation-name:ios-navbar-bg-from-lt-to-ct}.ios .router-transition-backward .navbar-previous.navbar-large-collapsed.navbar-large-transparent .navbar-bg,.ios .router-transition-backward .navbar-previous.navbar-large-collapsed.navbar-large.navbar-transparent .navbar-bg{animation-name:ios-navbar-transparent-bg-from-l-to-c}.ios .router-transition-backward .navbar-previous.navbar-large-collapsed.navbar-large-transparent.router-navbar-transition-from-large .navbar-bg,.ios .router-transition-backward .navbar-previous.navbar-large-collapsed.navbar-large.navbar-transparent.router-navbar-transition-from-large .navbar-bg{animation-name:ios-navbar-bg-from-lb-to-ct}.view-master-detail .navbars{z-index:auto}.view-master-detail .page-master{z-index:525}.view-master-detail .navbar-master .navbar-bg,.view-master-detail .navbar-master .navbar-inner{z-index:550}.view-master-detail .navbar-master-detail .navbar-bg,.view-master-detail .navbar-master-detail .navbar-inner{z-index:500}.view-master-detail .navbar-master.navbar-previous{pointer-events:auto}.view-master-detail .navbar-master.navbar-previous .left,.view-master-detail .navbar-master.navbar-previous .right,.view-master-detail .navbar-master.navbar-previous .subnavbar,.view-master-detail .navbar-master.navbar-previous:not(.navbar-large) .title{opacity:1}.view-master-detail.router-transition .navbar-master .fading,.view-master-detail.router-transition .navbar-master .left,.view-master-detail.router-transition .navbar-master .left .icon+span,.view-master-detail.router-transition .navbar-master .right,.view-master-detail.router-transition .navbar-master .subnavbar,.view-master-detail.router-transition .navbar-master:not(.navbar-large) .title{opacity:1!important;transition-duration:0s;transform:none!important;animation:none!important}.view-master-detail.router-transition .navbar-master .navbar-bg{transition-duration:0s;animation:none!important}.view-master-detail.router-transition .navbar-master.navbar-large .title{opacity:calc(-1 + 2 * var(--f7-navbar-large-collapse-progress))!important;transition-duration:0s;transform:none!important;animation:none!important}.view-master-detail.router-transition .navbar-master.navbar-large .title-large,.view-master-detail.router-transition .navbar-master.navbar-large .title-large-text{transition-duration:0s;animation:none!important}.view-master-detail.router-transition .navbar-master.navbar-large-transparent .navbar-bg,.view-master-detail.router-transition .navbar-master.navbar-large.navbar-transparent .navbar-bg{height:100%!important;opacity:var(--f7-navbar-large-collapse-progress)!important}@keyframes ios-navbar-element-fade-in{0%{opacity:0}25%{opacity:0}to{opacity:1}}@keyframes ios-navbar-element-fade-out{from{opacity:1}75%{opacity:0}to{opacity:0}}@keyframes ios-navbar-large-title-text-slide-up{0%{transform:translateX(0px) translateY(0%) scale(1)}100%{transform:translateX(calc(var(--f7-navbarLeftTextOffset) - var(--f7-navbarTitleLargeOffset))) translateY(calc(-1 * var(--f7-navbar-large-title-height) + var(--f7-navbar-large-title-padding-vertical))) scale(.5)}}@keyframes ios-navbar-large-title-text-slide-down{0%{transform:translateX(calc(var(--f7-navbarLeftTextOffset) - var(--f7-navbarTitleLargeOffset))) translateY(calc(-1 * var(--f7-navbar-large-title-height) + var(--f7-navbar-large-title-padding-vertical)/ 2)) scale(.5)}100%{transform:translateX(0px) translateY(0%) scale(1)}}@keyframes ios-navbar-large-title-text-slide-left{0%{transform:translateX(100%)}100%{transform:translateX(0%)}}@keyframes ios-navbar-large-title-text-slide-right{0%{transform:translateX(0%)}100%{transform:translateX(100%)}}@keyframes ios-navbar-large-title-text-fade-out{0%{opacity:1}80%{opacity:0}100%{opacity:0}}@keyframes ios-navbar-large-title-text-fade-in{0%{opacity:0}20%{opacity:0}100%{opacity:1}}@keyframes ios-navbar-back-text-current-to-previous{0%{opacity:1;transform:translateY(0px) translateX(0px) scale(1)}80%{opacity:0}100%{opacity:0;transform:translateX(calc(var(--f7-navbarTitleLargeOffset) - var(--f7-navbarLeftTextOffset))) translateY(calc(1 * var(--f7-navbar-large-title-height) - var(--f7-navbar-large-title-padding-vertical)/ 2)) scale(2)}}@keyframes ios-navbar-back-text-next-to-current{0%{opacity:0;transform:translateX(calc(var(--f7-navbarTitleLargeOffset) - var(--f7-navbarLeftTextOffset))) translateY(calc(1 * var(--f7-navbar-large-title-height) + var(--f7-navbar-large-title-padding-vertical)/ 2)) scale(2)}20%{opacity:0}100%{opacity:1;transform:translateX(0px) translateY(0px) scale(1)}}@keyframes ios-navbar-bg-from-cb-to-lb{from{transform:var(--f7-navbar-large-bg-center-bottom)}to{transform:var(--f7-navbar-large-bg-left-bottom)}}@keyframes ios-navbar-bg-from-cb-to-lt{from{transform:var(--f7-navbar-large-bg-center-bottom)}to{transform:var(--f7-navbar-large-bg-left-top)}}@keyframes ios-navbar-bg-from-ct-to-lb{from{transform:var(--f7-navbar-large-bg-center-top)}to{transform:var(--f7-navbar-large-bg-left-bottom)}}@keyframes ios-navbar-bg-from-ct-to-lt{from{transform:var(--f7-navbar-large-bg-center-top)}to{transform:var(--f7-navbar-large-bg-left-top)}}@keyframes ios-navbar-bg-from-rb-to-cb{from{transform:var(--f7-navbar-large-bg-right-bottom)}to{transform:var(--f7-navbar-large-bg-center-bottom)}}@keyframes ios-navbar-bg-from-rb-to-ct{from{transform:var(--f7-navbar-large-bg-right-bottom)}to{transform:var(--f7-navbar-large-bg-center-top)}}@keyframes ios-navbar-bg-from-rt-to-cb{from{transform:var(--f7-navbar-large-bg-right-top)}to{transform:var(--f7-navbar-large-bg-center-bottom)}}@keyframes ios-navbar-bg-from-cb-to-rb{from{transform:var(--f7-navbar-large-bg-center-bottom)}to{transform:var(--f7-navbar-large-bg-right-bottom)}}@keyframes ios-navbar-bg-from-ct-to-rb{from{transform:var(--f7-navbar-large-bg-center-top)}to{transform:var(--f7-navbar-large-bg-right-bottom)}}@keyframes ios-navbar-bg-from-cb-to-rt{from{transform:var(--f7-navbar-large-bg-center-bottom)}to{transform:var(--f7-navbar-large-bg-right-top)}}@keyframes ios-navbar-bg-from-ct-to-rt{from{transform:var(--f7-navbar-large-bg-center-top)}to{transform:var(--f7-navbar-large-bg-right-top)}}@keyframes ios-navbar-bg-from-lb-to-cb{from{transform:var(--f7-navbar-large-bg-left-bottom)}to{transform:var(--f7-navbar-large-bg-center-bottom)}}@keyframes ios-navbar-bg-from-lt-to-cb{from{transform:var(--f7-navbar-large-bg-left-top)}to{transform:var(--f7-navbar-large-bg-center-bottom)}}@keyframes ios-navbar-bg-from-lb-to-ct{from{transform:var(--f7-navbar-large-bg-left-bottom)}to{transform:var(--f7-navbar-large-bg-center-top)}}@keyframes ios-navbar-bg-from-lt-to-ct{from{transform:var(--f7-navbar-large-bg-left-top)}to{transform:var(--f7-navbar-large-bg-center-top)}}@keyframes ios-navbar-transparent-bg-from-l-to-c{from{transform:var(--f7-navbar-large-transparent-bg-left)}to{transform:var(--f7-navbar-large-transparent-bg-center)}}@keyframes ios-navbar-transparent-bg-from-c-to-l{from{transform:var(--f7-navbar-large-transparent-bg-center)}to{transform:var(--f7-navbar-large-transparent-bg-left)}}.md .navbar a.link{padding:0 16px;min-width:48px}.md .navbar a.link:before{content:'';width:152%;height:152%;position:absolute;left:-26%;top:-26%;background-image:radial-gradient(circle at center,var(--f7-link-highlight-color) 66%,rgba(255,255,255,0) 66%);background-repeat:no-repeat;background-position:center;background-size:100% 100%;opacity:0;pointer-events:none;transition-duration:.6s}.md .navbar a.link.active-state:before{opacity:1;transition-duration:150ms}.md .navbar a.icon-only{min-width:0;flex-shrink:0;width:56px}.md .navbar .right{margin-left:auto}.md .navbar .right:first-child{right:var(--f7-safe-area-right)}.md .navbar-inner{justify-content:flex-start;overflow:hidden}.md .navbar-large:not(.navbar-large-collapsed) .navbar-inner{overflow:visible}.md .page.page-with-subnavbar .navbar-inner{overflow:visible}.md .navbar-inner-centered-title{justify-content:space-between}.md .navbar-inner-centered-title .right{margin-left:0}.md .navbar-inner-centered-title .title{text-align:center}.aurora .navbar a.icon-only{margin:0;justify-content:center}.aurora .navbar .left a+a,.aurora .navbar .right a+a{margin-left:10px}.aurora .navbar b{font-weight:700}.aurora .navbar .left{margin-right:10px}.aurora .navbar .right{margin-left:10px}.aurora .navbar .right:first-child{right:calc(16px + var(--f7-safe-area-right))}.aurora .navbar-inner{justify-content:space-between}.aurora .navbar-inner-left-title{justify-content:flex-start}.aurora .navbar-inner-left-title .right{margin-left:auto}.aurora .navbar-inner-left-title .title{text-align:left;margin-right:10px}:root{--f7-tabbar-link-active-bg-color:transparent;--f7-tabbar-label-text-transform:none;--f7-toolbar-hide-show-transition-duration:400ms}.ios{--f7-toolbar-height:44px;--f7-toolbar-font-size:17px;--f7-toolbar-inner-padding-left:8px;--f7-toolbar-inner-padding-right:8px;--f7-tabbar-labels-height:50px;--f7-tabbar-labels-tablet-height:50px;--f7-toolbar-top-shadow-image:none;--f7-toolbar-bottom-shadow-image:none;--f7-tabbar-icon-size:28px;--f7-tabbar-link-text-transform:none;--f7-tabbar-link-font-weight:400;--f7-tabbar-link-letter-spacing:0;--f7-tabbar-label-font-size:12px;--f7-tabbar-label-tablet-font-size:14px;--f7-tabbar-label-font-weight:500;--f7-tabbar-label-letter-spacing:0.01;--f7-tabbar-link-inactive-color:rgba(0, 0, 0, 0.4)}.ios .theme-dark,.ios.theme-dark{--f7-tabbar-link-inactive-color:rgba(255, 255, 255, 0.54)}.md{--f7-toolbar-height:48px;--f7-toolbar-font-size:14px;--f7-toolbar-inner-padding-left:0px;--f7-toolbar-inner-padding-right:0px;--f7-tabbar-labels-height:56px;--f7-tabbar-labels-tablet-height:56px;--f7-toolbar-top-shadow-image:var(--f7-bars-shadow-bottom-image);--f7-toolbar-bottom-shadow-image:var(--f7-bars-shadow-top-image);--f7-tabbar-icon-size:24px;--f7-tabbar-link-text-transform:uppercase;--f7-tabbar-link-font-weight:500;--f7-tabbar-link-letter-spacing:0.03em;--f7-tabbar-label-font-size:14px;--f7-tabbar-label-tablet-font-size:14px;--f7-tabbar-label-font-weight:400;--f7-tabbar-label-letter-spacing:0;--f7-tabbar-link-inactive-color:rgba(0, 0, 0, 0.54)}.md .theme-dark,.md.theme-dark{--f7-tabbar-link-inactive-color:rgba(255, 255, 255, 0.54)}.aurora{--f7-toolbar-height:38px;--f7-toolbar-font-size:14px;--f7-toolbar-inner-padding-left:16px;--f7-toolbar-inner-padding-right:16px;--f7-toolbar-link-height:auto;--f7-toolbar-link-line-height:inherit;--f7-tabbar-labels-height:44px;--f7-tabbar-labels-tablet-height:44px;--f7-tabbar-link-inactive-bg-color:rgba(0, 0, 0, 0.2);--f7-toolbar-top-shadow-image:none;--f7-toolbar-bottom-shadow-image:none;--f7-tabbar-icon-size:18px;--f7-tabbar-link-text-transform:none;--f7-tabbar-link-font-weight:400;--f7-tabbar-link-letter-spacing:0;--f7-tabbar-label-font-size:12px;--f7-tabbar-label-tablet-font-size:12px;--f7-tabbar-label-font-weight:500;--f7-tabbar-label-letter-spacing:0.01;--f7-tabbar-link-inactive-color:rgba(0, 0, 0, 0.5)}.aurora .theme-dark,.aurora.theme-dark{--f7-tabbar-link-inactive-color:rgba(255, 255, 255, 0.5)}.toolbar{width:100%;position:relative;margin:0;transform:translate3d(0,0,0);-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:600;box-sizing:border-box;left:0;height:var(--f7-toolbar-height);background-image:var(--f7-toolbar-bg-image,var(--f7-bars-bg-image));background-color:var(--f7-toolbar-bg-color,var(--f7-bars-bg-color));color:var(--f7-toolbar-text-color,var(--f7-bars-text-color));font-size:var(--f7-toolbar-font-size)}@supports ((-webkit-backdrop-filter:blur(20px)) or (backdrop-filter:blur(20px))){.ios-translucent-bars .toolbar{background-color:rgba(var(--f7-toolbar-bg-color-rgb,var(--f7-bars-bg-color-rgb)),var(--f7-bars-translucent-opacity));-webkit-backdrop-filter:saturate(180%) blur(var(--f7-bars-translucent-blur));backdrop-filter:saturate(180%) blur(var(--f7-bars-translucent-blur))}}.toolbar b{font-weight:600}.toolbar a{color:var(--f7-toolbar-link-color,var(--f7-bars-link-color,var(--f7-theme-color)));box-sizing:border-box;flex-shrink:1;position:relative;white-space:nowrap;text-overflow:ellipsis}.toolbar .link{display:flex;line-height:var(--f7-toolbar-link-line-height,var(--f7-toolbar-height));height:var(--f7-toolbar-link-height,var(--f7-toolbar-height))}.toolbar i.icon{display:block}.toolbar:after,.toolbar:before{-webkit-backface-visibility:hidden;backface-visibility:hidden}.page>.toolbar,.view>.toolbar,.views>.toolbar{position:absolute}.aurora .toolbar-top-aurora,.ios .toolbar-top-ios,.md .toolbar-top-md,.toolbar-top{top:0}.aurora .toolbar-top-aurora .tab-link-highlight,.ios .toolbar-top-ios .tab-link-highlight,.md .toolbar-top-md .tab-link-highlight,.toolbar-top .tab-link-highlight{bottom:0}.aurora .toolbar-top-aurora.no-border:after,.aurora .toolbar-top-aurora.no-hairline:after,.ios .toolbar-top-ios.no-border:after,.ios .toolbar-top-ios.no-hairline:after,.md .toolbar-top-md.no-border:after,.md .toolbar-top-md.no-hairline:after,.toolbar-top.no-border:after,.toolbar-top.no-hairline:after{display:none!important}.aurora .toolbar-top-aurora.no-shadow:before,.aurora .toolbar-top-aurora.toolbar-hidden:before,.ios .toolbar-top-ios.no-shadow:before,.ios .toolbar-top-ios.toolbar-hidden:before,.md .toolbar-top-md.no-shadow:before,.md .toolbar-top-md.toolbar-hidden:before,.toolbar-top.no-shadow:before,.toolbar-top.toolbar-hidden:before{display:none!important}.aurora .toolbar-top-aurora:after,.aurora .toolbar-top-aurora:before,.ios .toolbar-top-ios:after,.ios .toolbar-top-ios:before,.md .toolbar-top-md:after,.md .toolbar-top-md:before,.toolbar-top:after,.toolbar-top:before{-webkit-backface-visibility:hidden;backface-visibility:hidden}.aurora .toolbar-top-aurora:after,.ios .toolbar-top-ios:after,.md .toolbar-top-md:after,.toolbar-top:after{content:'';position:absolute;background-color:var(--f7-toolbar-border-color,var(--f7-bars-border-color));display:block;z-index:15;top:auto;right:auto;bottom:0;left:0;height:1px;width:100%;transform-origin:50% 100%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.aurora .toolbar-top-aurora:before,.ios .toolbar-top-ios:before,.md .toolbar-top-md:before,.toolbar-top:before{content:'';position:absolute;right:0;width:100%;top:100%;bottom:auto;height:8px;pointer-events:none;background:var(--f7-toolbar-top-shadow-image)}.aurora .toolbar-bottom-aurora,.ios .toolbar-bottom-ios,.md .toolbar-bottom-md,.toolbar-bottom{bottom:0;height:calc(var(--f7-toolbar-height) + var(--f7-safe-area-bottom))}.aurora .toolbar-bottom-aurora .tab-link-highlight,.ios .toolbar-bottom-ios .tab-link-highlight,.md .toolbar-bottom-md .tab-link-highlight,.toolbar-bottom .tab-link-highlight{top:0}.aurora .toolbar-bottom-aurora .toolbar-inner,.ios .toolbar-bottom-ios .toolbar-inner,.md .toolbar-bottom-md .toolbar-inner,.toolbar-bottom .toolbar-inner{height:auto;top:0;bottom:var(--f7-safe-area-bottom)}.aurora .toolbar-bottom-aurora.no-border:before,.aurora .toolbar-bottom-aurora.no-hairline:before,.ios .toolbar-bottom-ios.no-border:before,.ios .toolbar-bottom-ios.no-hairline:before,.md .toolbar-bottom-md.no-border:before,.md .toolbar-bottom-md.no-hairline:before,.toolbar-bottom.no-border:before,.toolbar-bottom.no-hairline:before{display:none!important}.aurora .toolbar-bottom-aurora.no-shadow:after,.aurora .toolbar-bottom-aurora.toolbar-hidden:after,.ios .toolbar-bottom-ios.no-shadow:after,.ios .toolbar-bottom-ios.toolbar-hidden:after,.md .toolbar-bottom-md.no-shadow:after,.md .toolbar-bottom-md.toolbar-hidden:after,.toolbar-bottom.no-shadow:after,.toolbar-bottom.toolbar-hidden:after{display:none!important}.aurora .toolbar-bottom-aurora:before,.ios .toolbar-bottom-ios:before,.md .toolbar-bottom-md:before,.toolbar-bottom:before{content:'';position:absolute;background-color:var(--f7-toolbar-border-color,var(--f7-bars-border-color));display:block;z-index:15;top:0;right:auto;bottom:auto;left:0;height:1px;width:100%;transform-origin:50% 0%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.aurora .toolbar-bottom-aurora:after,.ios .toolbar-bottom-ios:after,.md .toolbar-bottom-md:after,.toolbar-bottom:after{content:'';position:absolute;right:0;width:100%;bottom:100%;height:8px;top:auto;pointer-events:none;background:var(--f7-toolbar-bottom-shadow-image);transform:translate3d(0,0,0)}.toolbar-inner{position:absolute;left:0;top:0;width:100%;height:100%;display:flex;justify-content:space-between;box-sizing:border-box;align-items:center;align-content:center;overflow:hidden;padding:0 calc(var(--f7-toolbar-inner-padding-right) + var(--f7-safe-area-right)) 0 calc(var(--f7-toolbar-inner-padding-left) + var(--f7-safe-area-left))}.views>.tabbar,.views>.tabbar-labels{z-index:5001}.tabbar a,.tabbar-labels a{color:var(--f7-tabbar-link-inactive-color)}.tabbar .tab-link:not(.tab-link-active),.tabbar-labels .tab-link:not(.tab-link-active){background-color:var(--f7-tabbar-link-inactive-bg-color,transparent)}.tabbar .link,.tabbar-labels .link{line-height:1.4}.tabbar .link,.tabbar .tab-link,.tabbar-labels .link,.tabbar-labels .tab-link{height:100%;width:100%;box-sizing:border-box;display:flex;justify-content:center;align-items:center;flex-direction:column;text-transform:var(--f7-tabbar-link-text-transform);font-weight:var(--f7-tabbar-link-font-weight);letter-spacing:var(--f7-tabbar-link-letter-spacing);overflow:hidden}.tabbar .tab-link-active,.tabbar-labels .tab-link-active{color:var(--f7-tabbar-link-active-color,var(--f7-theme-color));background-color:var(--f7-tabbar-link-active-bg-color,transparent)}.tabbar i.icon,.tabbar-labels i.icon{font-size:var(--f7-tabbar-icon-size);height:var(--f7-tabbar-icon-size);line-height:var(--f7-tabbar-icon-size)}.tabbar-labels{--f7-toolbar-height:var(--f7-tabbar-labels-height)}.tabbar-labels .link,.tabbar-labels .tab-link{height:100%;justify-content:space-between;align-items:center}.tabbar-labels .tabbar-label{display:block;line-height:1;margin:0;position:relative;text-overflow:ellipsis;white-space:nowrap;font-size:var(--f7-tabbar-label-font-size);text-transform:var(--f7-tabbar-label-text-transform);font-weight:var(--f7-tabbar-label-font-weight);letter-spacing:var(--f7-tabbar-label-letter-spacing)}@media (min-width:768px) and (min-height:600px){:root{--f7-tabbar-labels-height:var(--f7-tabbar-labels-tablet-height);--f7-tabbar-label-font-size:var(--f7-tabbar-label-tablet-font-size)}}.tabbar-scrollable .toolbar-inner{justify-content:flex-start;overflow:auto;-webkit-overflow-scrolling:touch}.tabbar-scrollable .toolbar-inner::-webkit-scrollbar{display:none!important;width:0!important;height:0!important;-webkit-appearance:none;opacity:0!important}.tabbar-scrollable .link,.tabbar-scrollable .tab-link{width:auto;flex-shrink:0}.navbar-transitioning+.toolbar,.navbar-transitioning~* .toolbar,.toolbar-transitioning{transition-duration:var(--f7-toolbar-hide-show-transition-duration)}.aurora .toolbar-bottom-aurora~*,.ios .toolbar-bottom-ios~*,.md .toolbar-bottom-md~*,.toolbar-bottom~*{--f7-page-toolbar-bottom-offset:var(--f7-toolbar-height)}.aurora .toolbar-bottom-aurora.tabbar-labels~*,.ios .toolbar-bottom-ios.tabbar-labels~*,.md .toolbar-bottom-md.tabbar-labels~*,.toolbar-bottom.tabbar-labels~*{--f7-page-toolbar-bottom-offset:var(--f7-tabbar-labels-height)}.aurora .toolbar-bottom-aurora.toolbar-hidden,.ios .toolbar-bottom-ios.toolbar-hidden,.md .toolbar-bottom-md.toolbar-hidden,.toolbar-bottom.toolbar-hidden{transform:translate3d(0,100%,0)}.aurora .toolbar-top-aurora~*,.ios .toolbar-top-ios~*,.md .toolbar-top-md~*,.toolbar-top~*{--f7-page-toolbar-top-offset:var(--f7-toolbar-height)}.aurora .toolbar-top-aurora.tabbar-labels~*,.ios .toolbar-top-ios.tabbar-labels~*,.md .toolbar-top-md.tabbar-labels~*,.toolbar-top.tabbar-labels~*{--f7-page-toolbar-top-offset:var(--f7-tabbar-labels-height)}.aurora .toolbar-top-aurora.toolbar-hidden,.ios .toolbar-top-ios.toolbar-hidden,.md .toolbar-top-md.toolbar-hidden,.toolbar-top.toolbar-hidden{transform:translate3d(0,-100%,0)}.aurora .navbar~* .toolbar-top-aurora,.aurora .navbar~.page:not(.no-navbar) .toolbar-top-aurora,.aurora .navbar~.toolbar-top-aurora,.ios .navbars~* .toolbar-top-ios,.ios .navbars~.page:not(.no-navbar) .toolbar-top-ios,.ios .navbars~.toolbar-top-ios,.ios .navbar~* .toolbar-top-ios,.ios .navbar~.page:not(.no-navbar) .toolbar-top-ios,.ios .navbar~.toolbar-top-ios,.md .navbar~* .toolbar-top-md,.md .navbar~.page:not(.no-navbar) .toolbar-top-md,.md .navbar~.toolbar-top-md,.navbars~* .toolbar-top,.navbars~.page:not(.no-navbar) .toolbar-top,.navbars~.toolbar-top,.navbar~* .toolbar-top,.navbar~.page:not(.no-navbar) .toolbar-top,.navbar~.toolbar-top{top:calc(var(--f7-navbar-height) + var(--f7-safe-area-top))}.aurora .navbar~* .toolbar-top-aurora.toolbar-hidden,.aurora .navbar~.page:not(.no-navbar) .toolbar-top-aurora.toolbar-hidden,.aurora .navbar~.toolbar-top-aurora.toolbar-hidden,.ios .navbars~* .toolbar-top-ios.toolbar-hidden,.ios .navbars~.page:not(.no-navbar) .toolbar-top-ios.toolbar-hidden,.ios .navbars~.toolbar-top-ios.toolbar-hidden,.ios .navbar~* .toolbar-top-ios.toolbar-hidden,.ios .navbar~.page:not(.no-navbar) .toolbar-top-ios.toolbar-hidden,.ios .navbar~.toolbar-top-ios.toolbar-hidden,.md .navbar~* .toolbar-top-md.toolbar-hidden,.md .navbar~.page:not(.no-navbar) .toolbar-top-md.toolbar-hidden,.md .navbar~.toolbar-top-md.toolbar-hidden,.navbars~* .toolbar-top.toolbar-hidden,.navbars~.page:not(.no-navbar) .toolbar-top.toolbar-hidden,.navbars~.toolbar-top.toolbar-hidden,.navbar~* .toolbar-top.toolbar-hidden,.navbar~.page:not(.no-navbar) .toolbar-top.toolbar-hidden,.navbar~.toolbar-top.toolbar-hidden{transform:translate3d(0,calc(-1 * (var(--f7-navbar-height) + var(--f7-toolbar-height) + var(--f7-safe-area-top))),0)}.aurora .navbar~* .toolbar-top-aurora.toolbar-hidden.tabbar-labels,.aurora .navbar~.page:not(.no-navbar) .toolbar-top-aurora.toolbar-hidden.tabbar-labels,.aurora .navbar~.toolbar-top-aurora.toolbar-hidden.tabbar-labels,.ios .navbars~* .toolbar-top-ios.toolbar-hidden.tabbar-labels,.ios .navbars~.page:not(.no-navbar) .toolbar-top-ios.toolbar-hidden.tabbar-labels,.ios .navbars~.toolbar-top-ios.toolbar-hidden.tabbar-labels,.ios .navbar~* .toolbar-top-ios.toolbar-hidden.tabbar-labels,.ios .navbar~.page:not(.no-navbar) .toolbar-top-ios.toolbar-hidden.tabbar-labels,.ios .navbar~.toolbar-top-ios.toolbar-hidden.tabbar-labels,.md .navbar~* .toolbar-top-md.toolbar-hidden.tabbar-labels,.md .navbar~.page:not(.no-navbar) .toolbar-top-md.toolbar-hidden.tabbar-labels,.md .navbar~.toolbar-top-md.toolbar-hidden.tabbar-labels,.navbars~* .toolbar-top.toolbar-hidden.tabbar-labels,.navbars~.page:not(.no-navbar) .toolbar-top.toolbar-hidden.tabbar-labels,.navbars~.toolbar-top.toolbar-hidden.tabbar-labels,.navbar~* .toolbar-top.toolbar-hidden.tabbar-labels,.navbar~.page:not(.no-navbar) .toolbar-top.toolbar-hidden.tabbar-labels,.navbar~.toolbar-top.toolbar-hidden.tabbar-labels{transform:translate3d(0,calc(-1 * (var(--f7-navbar-height) + var(--f7-tabbar-labels-height) + var(--f7-safe-area-top))),0)}.aurora .navbar-hidden+.toolbar-top-aurora:not(.toolbar-hidden),.aurora .navbar-hidden~* .toolbar-top-aurora:not(.toolbar-hidden),.ios .navbar-hidden+.toolbar-top-ios:not(.toolbar-hidden),.ios .navbar-hidden~* .toolbar-top-ios:not(.toolbar-hidden),.md .navbar-hidden+.toolbar-top-md:not(.toolbar-hidden),.md .navbar-hidden~* .toolbar-top-md:not(.toolbar-hidden),.navbar-hidden+.toolbar-top:not(.toolbar-hidden),.navbar-hidden~* .toolbar-top:not(.toolbar-hidden){transform:translate3d(0,calc(0px - var(--f7-navbar-height)),0)}.aurora .navbar-large-hidden~* .toolbar-top-aurora:not(.toolbar-hidden),.ios .navbar-large-hidden+.toolbar-top-ios:not(.toolbar-hidden),.ios .navbar-large-hidden~* .toolbar-top-ios:not(.toolbar-hidden),.md .navbar-large-hidden+.toolbar-top-md:not(.toolbar-hidden),.md .navbar-large-hidden~* .toolbar-top-md:not(.toolbar-hidden),.navbar-large-hidden+.toolbar-top:not(.toolbar-hidden),.navbar-large-hidden~* .toolbar-top:not(.toolbar-hidden){transform:translate3d(0,calc(0px - var(--f7-navbar-height) - var(--f7-navbar-large-title-height)),0)}.ios .toolbar a.icon-only{min-height:var(--f7-toolbar-height);display:flex;justify-content:center;align-items:center;margin:0;min-width:44px}.ios .tabbar-labels .link,.ios .tabbar-labels .tab-link{padding-top:4px;padding-bottom:4px}.ios .tabbar-labels .link i+span,.ios .tabbar-labels .tab-link i+span{margin:0}@media (min-width:768px) and (min-height:600px){.ios .tabbar .link,.ios .tabbar .tab-link,.ios .tabbar-labels .link,.ios .tabbar-labels .tab-link{justify-content:center;flex-direction:row}.ios .tabbar .link i+span,.ios .tabbar .tab-link i+span,.ios .tabbar-labels .link i+span,.ios .tabbar-labels .tab-link i+span{margin-left:5px}}.ios .tabbar-scrollable .toolbar-inner{justify-content:flex-start}.ios .tabbar-scrollable .link,.ios .tabbar-scrollable .tab-link{padding:0 8px}.md .toolbar .link{justify-content:center;padding:0 16px;min-width:48px}.md .toolbar .link:before{content:'';width:152%;height:152%;position:absolute;left:-26%;top:-26%;background-image:radial-gradient(circle at center,var(--f7-link-highlight-color) 66%,rgba(255,255,255,0) 66%);background-repeat:no-repeat;background-position:center;background-size:100% 100%;opacity:0;pointer-events:none;transition-duration:.6s}.md .toolbar .link.active-state:before{opacity:1;transition-duration:150ms}.md .toolbar a.icon-only{min-width:0;flex-shrink:0}.md .tabbar .link,.md .tabbar .tab-link,.md .tabbar-labels .link,.md .tabbar-labels .tab-link{padding-left:0;padding-right:0}.md .tabbar a.icon-only,.md .tabbar-labels a.icon-only{flex-shrink:initial}.md .tabbar .tab-link,.md .tabbar-labels .tab-link{transition-duration:.3s;overflow:hidden;position:relative}.md .tabbar .tab-link-highlight,.md .tabbar-labels .tab-link-highlight{position:absolute;height:2px;background:var(--f7-tabbar-link-active-border-color,var(--f7-theme-color));transition-duration:.3s;left:0}.md .tabbar-labels .link,.md .tabbar-labels .tab-link{padding-top:7px;padding-bottom:7px}.md .tabbar-label{max-width:100%;overflow:hidden;line-height:1.2}.md .tabbar-scrollable .toolbar-inner{overflow:auto}.md .tabbar-scrollable .link,.md .tabbar-scrollable .tab-link{padding:0 16px}.aurora .toolbar a.icon-only{min-height:var(--f7-toolbar-height);display:flex;justify-content:center;align-items:center;margin:0}.aurora .tabbar .toolbar-inner,.aurora .tabbar-labels .toolbar-inner{padding-left:0;padding-right:0}.aurora .tabbar .link,.aurora .tabbar .tab-link,.aurora .tabbar-labels .link,.aurora .tabbar-labels .tab-link{transition-duration:.2s}.aurora .tabbar-labels .link,.aurora .tabbar-labels .tab-link{padding-top:5px;padding-bottom:5px}.aurora .tabbar-labels .link i+span,.aurora .tabbar-labels .tab-link i+span{margin:0}.aurora .tabbar-scrollable .toolbar-inner{justify-content:flex-start}.aurora .tabbar-scrollable .link,.aurora .tabbar-scrollable .tab-link{padding:0 16px}:root{--f7-subnavbar-title-line-height:1.2}.ios{--f7-subnavbar-height:44px;--f7-subnavbar-inner-padding-left:8px;--f7-subnavbar-inner-padding-right:8px;--f7-subnavbar-title-font-size:34px;--f7-subnavbar-title-font-weight:700;--f7-subnavbar-title-letter-spacing:-0.03em;--f7-subnavbar-title-margin-left:8px;--f7-subnavbar-shadow-image:none}.md{--f7-subnavbar-height:48px;--f7-subnavbar-inner-padding-left:16px;--f7-subnavbar-inner-padding-right:16px;--f7-subnavbar-title-font-size:20px;--f7-subnavbar-title-font-weight:500;--f7-subnavbar-title-letter-spacing:0;--f7-subnavbar-title-margin-left:0px;--f7-subnavbar-shadow-image:var(--f7-bars-shadow-bottom-image)}.aurora{--f7-subnavbar-height:38px;--f7-subnavbar-inner-padding-left:16px;--f7-subnavbar-inner-padding-right:16px;--f7-subnavbar-title-font-size:26px;--f7-subnavbar-title-font-weight:bold;--f7-subnavbar-title-letter-spacing:-0.03em;--f7-subnavbar-title-margin-left:0px;--f7-subnavbar-shadow-image:none;--f7-subnavbar-link-height:auto;--f7-subnavbar-link-line-height:inherit}.subnavbar{width:100%;position:absolute;left:0;top:0;z-index:600;box-sizing:border-box;display:flex;justify-content:space-between;align-items:center;background-image:var(--f7-subnavbar-bg-image,var(--f7-bars-bg-image));background-color:var(--f7-subnavbar-bg-color,var(--f7-bars-bg-color));color:var(--f7-subnavbar-text-color,var(--f7-bars-text-color))}@supports ((-webkit-backdrop-filter:blur(20px)) or (backdrop-filter:blur(20px))){.ios-translucent-bars .subnavbar{background-color:rgba(var(--f7-subnavbar-bg-color-rgb,var(--f7-bars-bg-color-rgb)),var(--f7-bars-translucent-opacity));-webkit-backdrop-filter:saturate(180%) blur(var(--f7-bars-translucent-blur));backdrop-filter:saturate(180%) blur(var(--f7-bars-translucent-blur))}}.subnavbar .subnavbar-title{position:relative;overflow:hidden;text-overflow:ellpsis;white-space:nowrap;font-size:var(--f7-subnavbar-title-font-size);font-weight:var(--f7-subnavbar-title-font-weight);text-align:left;display:inline-block;line-height:var(--f7-subnavbar-title-line-height);letter-spacing:var(--f7-subnavbar-title-letter-spacing);margin-left:var(--f7-subnavbar-title-margin-left)}.subnavbar .left,.subnavbar .right{flex-shrink:0;display:flex;justify-content:flex-start;align-items:center}.subnavbar .right:first-child{position:absolute;height:100%}.subnavbar a{color:var(--f7-subnavbar-link-color,var(--f7-bars-link-color,var(--f7-theme-color)))}.subnavbar a.link{line-height:var(--f7-subnavbar-link-line-height,var(--f7-subnavbar-height));height:var(--f7-subnavbar-link-height,var(--f7-subnavbar-height))}.subnavbar a.icon-only{min-width:var(--f7-subnavbar-height)}.subnavbar.no-border:after,.subnavbar.no-hairline:after{display:none!important}.subnavbar.navbar-hidden:before,.subnavbar.no-shadow:before{display:none!important}.subnavbar:after,.subnavbar:before{-webkit-backface-visibility:hidden;backface-visibility:hidden}.subnavbar:after{content:'';position:absolute;background-color:var(--f7-subnavbar-border-color,var(--f7-bars-border-color));display:block;z-index:15;top:auto;right:auto;bottom:0;left:0;height:1px;width:100%;transform-origin:50% 100%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.subnavbar:before{content:'';position:absolute;right:0;width:100%;top:100%;bottom:auto;height:8px;pointer-events:none;background:var(--f7-subnavbar-shadow-image)}.subnavbar-inner{width:100%;height:100%;display:flex;align-items:center;box-sizing:border-box;justify-content:space-between;overflow:hidden;padding:0 calc(var(--f7-subnavbar-inner-padding-left) + var(--f7-safe-area-right)) 0 calc(var(--f7-subnavbar-inner-padding-right) + var(--f7-safe-area-left))}.subnavbar-inner.stacked{display:none}.navbar .subnavbar{top:100%}.page>.subnavbar,.view>.subnavbar,.views>.subnavbar{position:absolute}.navbars~* .subnavbar,.navbars~.page-with-subnavbar:not(.no-navbar) .subnavbar,.navbars~.subnavbar,.navbar~* .subnavbar,.navbar~.page-with-subnavbar:not(.no-navbar) .subnavbar,.navbar~.subnavbar,.page-with-subnavbar .navbar~* .subnavbar,.page-with-subnavbar .navbar~.subnavbar{top:calc(var(--f7-navbar-height) + var(--f7-safe-area-top))}.navbar .title-large~.subnavbar,.navbars~.page-with-navbar-large:not(.no-navbar) .subnavbar,.navbar~.page-with-navbar-large:not(.no-navbar) .subnavbar,.page-with-subnavbar.page-with-navbar-large .navbar~* .subnavbar,.page-with-subnavbar.page-with-navbar-large .navbar~.subnavbar{top:calc(var(--f7-navbar-height) + var(--f7-navbar-large-title-height) + var(--f7-safe-area-top));transform:translate3d(0,calc(-1 * var(--f7-navbar-large-collapse-progress) * var(--f7-navbar-large-title-height)),0)}.page-with-subnavbar,.subnavbar~*{--f7-page-subnavbar-offset:var(--f7-subnavbar-height)}.ios .subnavbar{height:calc(var(--f7-subnavbar-height) + 1px);margin-top:-1px;padding-top:1px}.ios .subnavbar .title{align-self:flex-start;flex-shrink:10}.ios .subnavbar .left a+a,.ios .subnavbar .right a+a{margin-left:16px}.ios .subnavbar .left{margin-right:10px}.ios .subnavbar .right{margin-left:10px}.ios .subnavbar .right:first-child{right:8px}.ios .subnavbar a.link{justify-content:flex-start}.ios .subnavbar a.icon-only{justify-content:center;margin:0}.md .subnavbar{height:var(--f7-subnavbar-height)}.md .subnavbar .right{margin-left:auto}.md .subnavbar .right:first-child{right:16px}.md .subnavbar a.link{justify-content:center;padding:0 16px}.md .subnavbar a.link:before{content:'';width:152%;height:152%;position:absolute;left:-26%;top:-26%;background-image:radial-gradient(circle at center,var(--f7-link-highlight-color) 66%,rgba(255,255,255,0) 66%);background-repeat:no-repeat;background-position:center;background-size:100% 100%;opacity:0;pointer-events:none;transition-duration:.6s}.md .subnavbar a.link.active-state:before{opacity:1;transition-duration:150ms}.md .subnavbar a.icon-only{flex-shrink:0}.md .subnavbar-inner>a.link:first-child{margin-left:calc(-1 * var(--f7-subnavbar-inner-padding-left))}.md .subnavbar-inner>a.link:last-child{margin-right:calc(-1 * var(--f7-subnavbar-inner-padding-right))}.aurora .subnavbar{height:calc(var(--f7-subnavbar-height) + 1px);margin-top:-1px;padding-top:1px}.aurora .subnavbar .title{align-self:flex-start;flex-shrink:10}.aurora .subnavbar .left a+a,.aurora .subnavbar .right a+a{margin-left:10px}.aurora .subnavbar .left{margin-right:10px}.aurora .subnavbar .right{margin-left:10px}.aurora .subnavbar .right:first-child{right:16px}.aurora .subnavbar a.link{justify-content:flex-start}.aurora .subnavbar a.icon-only{justify-content:center;margin:0}:root{--f7-block-padding-horizontal:16px;--f7-block-padding-vertical:16px;--f7-block-font-size:inherit;--f7-block-text-color:inherit;--f7-block-header-margin:10px;--f7-block-footer-margin:10px;--f7-block-header-font-size:14px;--f7-block-footer-font-size:14px;--f7-block-title-text-transform:none;--f7-block-title-white-space:nowrap;--f7-block-title-medium-text-transform:none;--f7-block-title-large-text-transform:none;--f7-block-inset-side-margin:16px;--f7-block-title-medium-text-color:#000;--f7-block-title-large-text-color:#000;--f7-block-strong-bg-color:#fff}:root .theme-dark,:root.theme-dark{--f7-block-title-text-color:#fff;--f7-block-strong-border-color:rgba(255, 255, 255, 0.15);--f7-block-title-medium-text-color:#fff;--f7-block-title-large-text-color:#fff;--f7-block-strong-bg-color:#1c1c1d}.ios{--f7-block-margin-vertical:35px;--f7-block-strong-border-color:rgba(0, 0, 0, 0.22);--f7-block-title-text-color:#000;--f7-block-title-font-size:16px;--f7-block-title-font-weight:600;--f7-block-title-line-height:20px;--f7-block-title-margin-bottom:10px;--f7-block-title-medium-font-size:22px;--f7-block-title-medium-font-weight:bold;--f7-block-title-medium-line-height:1.4;--f7-block-title-large-font-size:30px;--f7-block-title-large-font-weight:bold;--f7-block-title-large-line-height:1.3;--f7-block-inset-border-radius:8px;--f7-block-strong-text-color:#000;--f7-block-header-text-color:rgba(0, 0, 0, 0.45);--f7-block-footer-text-color:rgba(0, 0, 0, 0.45)}.ios .theme-dark,.ios.theme-dark{--f7-block-header-text-color:rgba(255, 255, 255, 0.55);--f7-block-footer-text-color:rgba(255, 255, 255, 0.55);--f7-block-strong-text-color:#fff}.md{--f7-block-margin-vertical:32px;--f7-block-strong-text-color:inherit;--f7-block-strong-border-color:rgba(0, 0, 0, 0.12);--f7-block-title-font-size:inherit;--f7-block-title-text-color:rgba(0, 0, 0, 0.54);--f7-block-title-font-weight:500;--f7-block-title-line-height:16px;--f7-block-title-margin-bottom:16px;--f7-block-title-medium-font-size:24px;--f7-block-title-medium-font-weight:500;--f7-block-title-medium-line-height:1.3;--f7-block-title-large-font-size:34px;--f7-block-title-large-font-weight:500;--f7-block-title-large-line-height:1.2;--f7-block-inset-border-radius:4px;--f7-block-header-text-color:rgba(0, 0, 0, 0.54);--f7-block-footer-text-color:rgba(0, 0, 0, 0.54)}.md .theme-dark,.md.theme-dark{--f7-block-header-text-color:rgba(255, 255, 255, 0.54);--f7-block-footer-text-color:rgba(255, 255, 255, 0.54)}.aurora{--f7-block-margin-vertical:15px;--f7-block-strong-border-color:rgba(0, 0, 0, 0.12);--f7-block-title-font-size:inherit;--f7-block-title-text-color:rgba(0, 0, 0, 0.7);--f7-block-title-font-weight:600;--f7-block-title-line-height:1.5;--f7-block-title-margin-bottom:5px;--f7-block-title-medium-font-size:20px;--f7-block-title-medium-font-weight:600;--f7-block-title-medium-line-height:1.4;--f7-block-title-large-font-size:28px;--f7-block-title-large-font-weight:bold;--f7-block-title-large-line-height:1.3;--f7-block-inset-border-radius:4px;--f7-block-strong-text-color:inherit;--f7-block-header-text-color:rgba(0, 0, 0, 0.6);--f7-block-footer-text-color:rgba(0, 0, 0, 0.6)}.aurora .theme-dark,.aurora.theme-dark{--f7-block-header-text-color:rgba(255, 255, 255, 0.54);--f7-block-footer-text-color:rgba(255, 255, 255, 0.54);--f7-block-strong-text-color:#fff}.block{box-sizing:border-box;position:relative;z-index:1;color:var(--f7-block-text-color);margin:var(--f7-block-margin-vertical) 0;padding-top:0;padding-bottom:0;padding-left:calc(var(--f7-block-padding-horizontal) + var(--f7-safe-area-left));padding-right:calc(var(--f7-block-padding-horizontal) + var(--f7-safe-area-right));font-size:var(--f7-block-font-size)}.aurora .block.no-hairlines-aurora ul:after,.aurora .block.no-hairlines-aurora ul:before,.aurora .block.no-hairlines-aurora:after,.aurora .block.no-hairlines-aurora:before,.block.no-hairlines ul:after,.block.no-hairlines ul:before,.block.no-hairlines:after,.block.no-hairlines:before,.ios .block.no-hairlines-ios ul:after,.ios .block.no-hairlines-ios ul:before,.ios .block.no-hairlines-ios:after,.ios .block.no-hairlines-ios:before,.md .block.no-hairlines-md ul:after,.md .block.no-hairlines-md ul:before,.md .block.no-hairlines-md:after,.md .block.no-hairlines-md:before{display:none!important}.aurora .block.no-hairline-top-aurora ul:before,.aurora .block.no-hairline-top-aurora:before,.block.no-hairline-top ul:before,.block.no-hairline-top:before,.ios .block.no-hairline-top-ios ul:before,.ios .block.no-hairline-top-ios:before,.md .block.no-hairline-top-md ul:before,.md .block.no-hairline-top-md:before{display:none!important}.aurora .block.no-hairline-bottom-aurora ul:after,.aurora .block.no-hairline-bottom-aurora:after,.block.no-hairline-bottom ul:after,.block.no-hairline-bottom:after,.ios .block.no-hairline-bottom-ios ul:after,.ios .block.no-hairline-bottom-ios:after,.md .block.no-hairline-bottom-md ul:after,.md .block.no-hairline-bottom-md:after{display:none!important}.block>h1:first-child,.block>h2:first-child,.block>h3:first-child,.block>h4:first-child,.block>p:first-child{margin-top:0}.block>h1:last-child,.block>h2:last-child,.block>h3:last-child,.block>h4:last-child,.block>p:last-child{margin-bottom:0}.block-strong{color:var(--f7-block-strong-text-color);padding-top:var(--f7-block-padding-vertical);padding-bottom:var(--f7-block-padding-vertical);background-color:var(--f7-block-strong-bg-color)}.block-strong:before{content:'';position:absolute;background-color:var(--f7-block-strong-border-color);display:block;z-index:15;top:0;right:auto;bottom:auto;left:0;height:1px;width:100%;transform-origin:50% 0%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.block-strong:after{content:'';position:absolute;background-color:var(--f7-block-strong-border-color);display:block;z-index:15;top:auto;right:auto;bottom:0;left:0;height:1px;width:100%;transform-origin:50% 100%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.block-title{position:relative;overflow:hidden;margin:0;white-space:var(--f7-block-title-white-space);text-overflow:ellipsis;text-transform:var(--f7-block-title-text-transform);color:var(--f7-block-title-text-color);font-size:var(--f7-block-title-font-size,inherit);font-weight:var(--f7-block-title-font-weight);line-height:var(--f7-block-title-line-height);margin-top:var(--f7-block-margin-vertical);margin-bottom:var(--f7-block-title-margin-bottom);margin-left:calc(var(--f7-block-padding-horizontal) + var(--f7-safe-area-left));margin-right:calc(var(--f7-block-padding-horizontal) + var(--f7-safe-area-right))}.block-title+.block,.block-title+.block-header,.block-title+.card,.block-title+.list,.block-title+.timeline{margin-top:0px}.block-title-medium{font-size:var(--f7-block-title-medium-font-size);text-transform:var(--f7-block-title-medium-text-transform);color:var(--f7-block-title-medium-text-color);font-weight:var(--f7-block-title-medium-font-weight);line-height:var(--f7-block-title-medium-line-height)}.block-title-large{font-size:var(--f7-block-title-large-font-size);text-transform:var(--f7-block-title-large-text-transform);color:var(--f7-block-title-large-text-color);font-weight:var(--f7-block-title-large-font-weight);line-height:var(--f7-block-title-large-line-height)}.block>.block-title:first-child,.list>.block-title:first-child{margin-top:0;margin-left:0;margin-right:0}.block-header{color:var(--f7-block-header-text-color);font-size:var(--f7-block-header-font-size);margin-bottom:var(--f7-block-header-margin);margin-top:var(--f7-block-margin-vertical)}.block-header+.block,.block-header+.card,.block-header+.list,.block-header+.timeline{margin-top:var(--f7-block-header-margin)}.block-footer{color:var(--f7-block-footer-text-color);font-size:var(--f7-block-footer-font-size);margin-top:var(--f7-block-footer-margin);margin-bottom:var(--f7-block-margin-vertical)}.block-footer,.block-header{padding-top:0;padding-bottom:0;padding-left:calc(var(--f7-block-padding-horizontal) + var(--f7-safe-area-left));padding-right:calc(var(--f7-block-padding-horizontal) + var(--f7-safe-area-right))}.block-footer h1:first-child,.block-footer h2:first-child,.block-footer h3:first-child,.block-footer h4:first-child,.block-footer p:first-child,.block-footer ul:first-child,.block-header h1:first-child,.block-header h2:first-child,.block-header h3:first-child,.block-header h4:first-child,.block-header p:first-child,.block-header ul:first-child{margin-top:0}.block-footer h1:last-child,.block-footer h2:last-child,.block-footer h3:last-child,.block-footer h4:last-child,.block-footer p:last-child,.block-footer ul:last-child,.block-header h1:last-child,.block-header h2:last-child,.block-header h3:last-child,.block-header h4:last-child,.block-header p:last-child,.block-header ul:last-child{margin-bottom:0}.block-footer h1:first-child:last-child,.block-footer h2:first-child:last-child,.block-footer h3:first-child:last-child,.block-footer h4:first-child:last-child,.block-footer p:first-child:last-child,.block-footer ul:first-child:last-child,.block-header h1:first-child:last-child,.block-header h2:first-child:last-child,.block-header h3:first-child:last-child,.block-header h4:first-child:last-child,.block-header p:first-child:last-child,.block-header ul:first-child:last-child{margin-top:0;margin-bottom:0}.block .block-header,.card .block-header,.list .block-header,.timeline .block-header{margin-top:0}.block .block-footer,.card .block-footer,.list .block-footer,.timeline .block-footer{margin-bottom:0}.block+.block-footer,.card+.block-footer,.list+.block-footer,.timeline+.block-footer{margin-top:calc(-1 * (var(--f7-block-margin-vertical) - var(--f7-block-footer-margin)))}.block+.block-footer{margin-top:calc(-1 * (var(--f7-block-margin-vertical) - var(--f7-block-footer-margin)));margin-bottom:var(--f7-block-margin-vertical)}.block .block-footer,.block .block-header{padding:0}.block.inset{border-radius:var(--f7-block-inset-border-radius);margin-left:calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-left));margin-right:calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-right));--f7-safe-area-left:0px;--f7-safe-area-right:0px}.block-strong.inset:after,.block-strong.inset:before{display:none!important}@media (min-width:480px){.block.xsmall-inset{border-radius:var(--f7-block-inset-border-radius);margin-left:calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-left));margin-right:calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-right));--f7-safe-area-left:0px;--f7-safe-area-right:0px}.block-strong.xsmall-inset:after,.block-strong.xsmall-inset:before{display:none!important}}@media (min-width:568px){.block.small-inset{border-radius:var(--f7-block-inset-border-radius);margin-left:calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-left));margin-right:calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-right));--f7-safe-area-left:0px;--f7-safe-area-right:0px}.block-strong.small-inset:after,.block-strong.small-inset:before{display:none!important}}@media (min-width:768px){.block.medium-inset{border-radius:var(--f7-block-inset-border-radius);margin-left:calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-left));margin-right:calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-right));--f7-safe-area-left:0px;--f7-safe-area-right:0px}.block-strong.medium-inset:after,.block-strong.medium-inset:before{display:none!important}}@media (min-width:1024px){.block.large-inset{border-radius:var(--f7-block-inset-border-radius);margin-left:calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-left));margin-right:calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-right));--f7-safe-area-left:0px;--f7-safe-area-right:0px}.block-strong.large-inset:after,.block-strong.large-inset:before{display:none!important}}@media (min-width:1200px){.block.xlarge-inset{border-radius:var(--f7-block-inset-border-radius);margin-left:calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-left));margin-right:calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-right));--f7-safe-area-left:0px;--f7-safe-area-right:0px}.block-strong.xlarge-inset:after,.block-strong.xlarge-inset:before{display:none!important}}:root{--f7-list-inset-side-margin:16px;--f7-list-item-cell-margin:16px;--f7-list-item-padding-horizontal:16px;--f7-list-media-item-padding-horizontal:16px;--f7-list-item-text-max-lines:2;--f7-list-chevron-icon-font-size:20px;--f7-list-item-title-font-size:inherit;--f7-list-item-title-font-weight:400;--f7-list-item-title-text-color:inherit;--f7-list-item-title-line-height:inherit;--f7-list-item-title-white-space:nowrap;--f7-list-item-subtitle-font-weight:400;--f7-list-item-subtitle-text-color:inherit;--f7-list-item-subtitle-line-height:inherit;--f7-list-item-text-font-weight:400;--f7-list-item-after-font-weight:400;--f7-list-item-header-text-color:inherit;--f7-list-item-header-font-size:12px;--f7-list-item-header-font-weight:400;--f7-list-item-header-line-height:1.2;--f7-list-item-footer-font-size:12px;--f7-list-item-footer-font-weight:400;--f7-list-item-footer-line-height:1.2;--f7-list-button-font-size:inherit;--f7-list-button-font-weight:400;--f7-list-item-divider-line-height:inherit;--f7-list-group-title-line-height:inherit;--f7-list-bg-color:#fff;--f7-list-chevron-icon-color:rgba(0, 0, 0, 0.2)}:root .theme-dark,:root.theme-dark{--f7-list-button-border-color:rgba(255, 255, 255, 0.15);--f7-list-bg-color:#1c1c1d;--f7-list-border-color:rgba(255, 255, 255, 0.15);--f7-list-item-border-color:rgba(255, 255, 255, 0.15);--f7-list-item-divider-border-color:rgba(255, 255, 255, 0.15);--f7-list-item-divider-bg-color:#232323;--f7-list-group-title-bg-color:#232323;--f7-list-chevron-icon-color:rgba(255, 255, 255, 0.3)}.ios{--f7-list-in-list-padding-left:30px;--f7-list-inset-border-radius:8px;--f7-list-margin-vertical:35px;--f7-list-font-size:17px;--f7-list-chevron-icon-area:20px;--f7-list-border-color:rgba(0, 0, 0, 0.22);--f7-list-item-border-color:rgba(0, 0, 0, 0.22);--f7-list-link-pressed-bg-color:rgba(0, 0, 0, 0.15);--f7-list-item-subtitle-font-size:15px;--f7-list-item-text-font-size:15px;--f7-list-item-text-line-height:21px;--f7-list-item-after-font-size:inherit;--f7-list-item-after-line-height:inherit;--f7-list-item-after-padding:5px;--f7-list-item-min-height:44px;--f7-list-item-media-margin:16px;--f7-list-item-media-icons-margin:5px;--f7-list-item-padding-vertical:8px;--f7-list-media-item-padding-vertical:10px;--f7-list-media-item-title-font-weight:600;--f7-list-button-text-align:center;--f7-list-button-border-color:rgba(0, 0, 0, 0.22);--f7-list-item-divider-height:31px;--f7-list-item-divider-font-size:inherit;--f7-list-item-divider-font-weight:400;--f7-list-item-divider-bg-color:rgba(0, 0, 0, 0.03);--f7-list-item-divider-border-color:rgba(0, 0, 0, 0.22);--f7-list-group-title-height:31px;--f7-list-group-title-font-size:inherit;--f7-list-group-title-font-weight:400;--f7-list-group-title-bg-color:#f7f7f7;--f7-list-item-after-text-color:rgba(0, 0, 0, 0.45);--f7-list-item-footer-text-color:rgba(0, 0, 0, 0.45);--f7-list-item-text-text-color:rgba(0, 0, 0, 0.45);--f7-list-item-divider-text-color:rgba(0, 0, 0, 0.45);--f7-list-group-title-text-color:rgba(0, 0, 0, 0.45);--f7-list-button-pressed-bg-color:rgba(0, 0, 0, 0.15)}.ios .theme-dark,.ios.theme-dark{--f7-list-item-after-text-color:rgba(255, 255, 255, 0.55);--f7-list-item-header-text-color:rgba(255, 255, 255, 0.55);--f7-list-item-footer-text-color:rgba(255, 255, 255, 0.55);--f7-list-item-text-text-color:rgba(255, 255, 255, 0.55);--f7-list-item-divider-text-color:rgba(255, 255, 255, 0.55);--f7-list-group-title-text-color:rgba(255, 255, 255, 0.55);--f7-list-link-pressed-bg-color:rgba(255, 255, 255, 0.08);--f7-list-button-pressed-bg-color:rgba(255, 255, 255, 0.08)}.md{--f7-list-in-list-padding-left:40px;--f7-list-inset-border-radius:4px;--f7-list-margin-vertical:32px;--f7-list-font-size:16px;--f7-list-chevron-icon-area:26px;--f7-list-border-color:rgba(0, 0, 0, 0.12);--f7-list-item-border-color:rgba(0, 0, 0, 0.12);--f7-list-item-subtitle-font-size:14px;--f7-list-item-text-font-size:14px;--f7-list-item-text-line-height:20px;--f7-list-item-after-font-size:14px;--f7-list-item-after-line-height:inherit;--f7-list-item-after-padding:8px;--f7-list-item-min-height:48px;--f7-list-item-media-margin:16px;--f7-list-item-media-icons-margin:8px;--f7-list-item-padding-vertical:8px;--f7-list-media-item-padding-vertical:14px;--f7-list-button-text-align:left;--f7-list-button-border-color:transparent;--f7-list-item-divider-height:48px;--f7-list-item-divider-font-size:14px;--f7-list-item-divider-font-weight:400;--f7-list-item-divider-bg-color:#f4f4f4;--f7-list-item-divider-border-color:transparent;--f7-list-group-title-height:48px;--f7-list-group-title-font-size:14px;--f7-list-group-title-font-weight:400;--f7-list-group-title-bg-color:#f4f4f4;--f7-list-link-pressed-bg-color:rgba(0, 0, 0, 0.1);--f7-list-item-text-text-color:rgba(0, 0, 0, 0.54);--f7-list-item-after-text-color:rgba(0, 0, 0, 0.54);--f7-list-item-footer-text-color:rgba(0, 0, 0, 0.5);--f7-list-button-text-color:#212121;--f7-list-button-pressed-bg-color:rgba(0, 0, 0, 0.1);--f7-list-item-divider-text-color:rgba(0, 0, 0, 0.54);--f7-list-group-title-text-color:rgba(0, 0, 0, 0.54)}.md .theme-dark,.md.theme-dark{--f7-list-button-text-color:#fff;--f7-list-item-divider-text-color:#fff;--f7-list-group-title-text-color:#fff;--f7-list-link-pressed-bg-color:rgba(255, 255, 255, 0.05);--f7-list-button-pressed-bg-color:rgba(255, 255, 255, 0.05);--f7-list-item-text-text-color:rgba(255, 255, 255, 0.54);--f7-list-item-after-text-color:rgba(255, 255, 255, 0.54);--f7-list-item-footer-text-color:rgba(255, 255, 255, 0.54)}.aurora{--f7-list-in-list-padding-left:16px;--f7-list-inset-border-radius:4px;--f7-list-margin-vertical:15px;--f7-list-font-size:14px;--f7-list-chevron-icon-area:15px;--f7-list-chevron-icon-font-size:16px;--f7-list-border-color:rgba(0, 0, 0, 0.12);--f7-list-item-border-color:rgba(0, 0, 0, 0.12);--f7-list-item-title-line-height:1.3;--f7-list-item-subtitle-font-size:14px;--f7-list-item-subtitle-line-height:1.3;--f7-list-item-text-font-size:12px;--f7-list-item-text-line-height:16px;--f7-list-item-after-font-size:13px;--f7-list-item-after-line-height:1.2;--f7-list-item-after-padding:5px;--f7-list-item-min-height:32px;--f7-list-item-media-margin:10px;--f7-list-item-media-icons-margin:5px;--f7-list-item-padding-vertical:5px;--f7-list-media-item-padding-vertical:5px;--f7-list-media-item-title-font-weight:600;--f7-list-button-text-align:center;--f7-list-button-border-color:rgba(0, 0, 0, 0.12);--f7-list-item-divider-height:19px;--f7-list-item-divider-font-size:inherit;--f7-list-item-divider-font-weight:500;--f7-list-item-divider-bg-color:rgba(0, 0, 0, 0.03);--f7-list-item-divider-border-color:transparent;--f7-list-group-title-height:19px;--f7-list-group-title-font-size:inherit;--f7-list-group-title-font-weight:500;--f7-list-group-title-bg-color:#f7f7f7;--f7-list-link-pressed-bg-color:rgba(0, 0, 0, 0.1);--f7-list-link-hover-bg-color:rgba(0, 0, 0, 0.03);--f7-list-item-text-text-color:rgba(0, 0, 0, 0.6);--f7-list-item-after-text-color:rgba(0, 0, 0, 0.5);--f7-list-item-footer-text-color:rgba(0, 0, 0, 0.6);--f7-list-button-pressed-bg-color:rgba(0, 0, 0, 0.1);--f7-list-button-hover-bg-color:rgba(0, 0, 0, 0.03);--f7-list-item-divider-text-color:rgba(0, 0, 0, 0.6);--f7-list-group-title-text-color:rgba(0, 0, 0, 0.6)}.aurora .theme-dark,.aurora.theme-dark{--f7-list-item-text-text-color:rgba(255, 255, 255, 0.54);--f7-list-item-after-text-color:rgba(255, 255, 255, 0.54);--f7-list-item-footer-text-color:rgba(255, 255, 255, 0.54);--f7-list-item-divider-text-color:rgba(255, 255, 255, 0.6);--f7-list-group-title-text-color:rgba(255, 255, 255, 0.6);--f7-list-link-pressed-bg-color:rgba(255, 255, 255, 0.05);--f7-list-link-hover-bg-color:rgba(255, 255, 255, 0.03);--f7-list-button-pressed-bg-color:rgba(255, 255, 255, 0.05);--f7-list-button-hover-bg-color:rgba(255, 255, 255, 0.03)}:root{--f7-list-chevron-icon-left:'chevron_left';--f7-list-chevron-icon-right:'chevron_right'}.aurora{--f7-list-chevron-icon-left:'chevron_left_aurora';--f7-list-chevron-icon-right:'chevron_right_aurora'}.list{position:relative;z-index:1;font-size:var(--f7-list-font-size);margin:var(--f7-list-margin-vertical) 0}.list ul{list-style:none;margin:0;padding:0;position:relative;background:var(--f7-list-bg-color)}.list ul:before{content:'';position:absolute;background-color:var(--f7-list-border-color);display:block;z-index:15;top:0;right:auto;bottom:auto;left:0;height:1px;width:100%;transform-origin:50% 0%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.list ul:after{content:'';position:absolute;background-color:var(--f7-list-border-color);display:block;z-index:15;top:auto;right:auto;bottom:0;left:0;height:1px;width:100%;transform-origin:50% 100%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.list ul ul{padding-left:calc(var(--f7-list-item-padding-horizontal) + var(--f7-list-in-list-padding-left))}.list ul ul:after,.list ul ul:before{display:none!important}.list li{position:relative;box-sizing:border-box}.list .item-media{display:flex;flex-shrink:0;flex-wrap:nowrap;align-items:center;box-sizing:border-box;padding-bottom:var(--f7-list-item-padding-vertical);padding-top:var(--f7-list-item-padding-vertical)}.list .item-media+.item-inner{margin-left:var(--f7-list-item-media-margin)}.list .item-media i+i,.list .item-media i+img{margin-left:var(--f7-list-item-media-icons-margin)}.list .item-after{padding-left:var(--f7-list-item-after-padding)}.list .item-inner{position:relative;width:100%;min-width:0;display:flex;justify-content:space-between;box-sizing:border-box;align-items:center;align-self:stretch;padding-top:var(--f7-list-item-padding-vertical);padding-bottom:var(--f7-list-item-padding-vertical);min-height:var(--f7-list-item-min-height);padding-right:calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-right))}.list .item-title{min-width:0;flex-shrink:1;white-space:var(--f7-list-item-title-white-space);position:relative;overflow:hidden;text-overflow:ellipsis;max-width:100%;font-size:var(--f7-list-item-title-font-size);font-weight:var(--f7-list-item-title-font-weight);color:var(--f7-list-item-title-text-color);line-height:var(--f7-list-item-title-line-height)}.list .item-after{white-space:nowrap;flex-shrink:0;display:flex;font-size:var(--f7-list-item-after-font-size);font-weight:var(--f7-list-item-after-font-weight);color:var(--f7-list-item-after-text-color);line-height:var(--f7-list-item-after-line-height);margin-left:auto}.list .item-footer,.list .item-header{white-space:normal}.list .item-header{color:var(--f7-list-item-header-text-color);font-size:var(--f7-list-item-header-font-size);font-weight:var(--f7-list-item-header-font-weight);line-height:var(--f7-list-item-header-line-height)}.list .item-footer{color:var(--f7-list-item-footer-text-color);font-size:var(--f7-list-item-footer-font-size);font-weight:var(--f7-list-item-footer-font-weight);line-height:var(--f7-list-item-footer-line-height)}.list .item-link,.list .list-button{transition-duration:.3s;transition-property:background-color;display:block;position:relative;overflow:hidden;z-index:0}.list .item-link{color:inherit}.list .item-link.active-state{background-color:var(--f7-list-link-pressed-bg-color)}.list .item-link .item-inner{padding-right:calc(var(--f7-list-chevron-icon-area) + var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-right))}.list .item-content{display:flex;justify-content:space-between;box-sizing:border-box;align-items:center;min-height:var(--f7-list-item-min-height);padding-left:calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-left))}.list .item-subtitle{position:relative;overflow:hidden;white-space:nowrap;max-width:100%;text-overflow:ellipsis;font-size:var(--f7-list-item-subtitle-font-size);font-weight:var(--f7-list-item-subtitle-font-weight);color:var(--f7-list-item-subtitle-text-color);line-height:var(--f7-list-item-subtitle-line-height)}.list .item-text{position:relative;overflow:hidden;text-overflow:ellipsis;-webkit-line-clamp:var(--f7-list-item-text-max-lines);-webkit-box-orient:vertical;display:-webkit-box;font-size:var(--f7-list-item-text-font-size);font-weight:var(--f7-list-item-text-font-weight);color:var(--f7-list-item-text-text-color);line-height:var(--f7-list-item-text-line-height);max-height:calc(var(--f7-list-item-text-line-height) * var(--f7-list-item-text-max-lines))}.list .item-title-row{position:relative;display:flex;justify-content:space-between;box-sizing:border-box}.list .item-title-row .item-after{align-self:center}.list .item-row{display:flex;justify-content:space-between;box-sizing:border-box}.list .item-cell{display:block;align-self:center;box-sizing:border-box;width:100%;min-width:0;margin-left:var(--f7-list-item-cell-margin);flex-shrink:1}.list .item-cell:first-child{margin-left:0}.list .ripple-wave+.item-cell{margin-left:0}.list li:last-child .list-button:after{display:none!important}.list li:last-child li:last-child>.item-content>.item-inner:after,.list li:last-child li:last-child>.item-inner:after,.list li:last-child li:last-child>.item-link>.item-content>.item-inner:after,.list li:last-child li:last-child>.swipeout-content>.item-content>.item-inner:after,.list li:last-child>.item-content>.item-inner:after,.list li:last-child>.item-inner:after,.list li:last-child>.item-link>.item-content>.item-inner:after,.list li:last-child>.swipeout-content>.item-content>.item-inner:after{display:none!important}.list li li:last-child .item-inner:after,.list li:last-child li .item-inner:after{content:'';position:absolute;background-color:var(--f7-list-item-border-color);display:block;z-index:15;top:auto;right:auto;bottom:0;left:0;height:1px;width:100%;transform-origin:50% 100%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.aurora .list.no-hairlines-aurora ul:after,.aurora .list.no-hairlines-aurora ul:before,.aurora .list.no-hairlines-aurora:after,.aurora .list.no-hairlines-aurora:before,.ios .list.no-hairlines-ios ul:after,.ios .list.no-hairlines-ios ul:before,.ios .list.no-hairlines-ios:after,.ios .list.no-hairlines-ios:before,.list.no-hairlines ul:after,.list.no-hairlines ul:before,.list.no-hairlines:after,.list.no-hairlines:before,.md .list.no-hairlines-md ul:after,.md .list.no-hairlines-md ul:before,.md .list.no-hairlines-md:after,.md .list.no-hairlines-md:before{display:none!important}.aurora .list.no-hairline-top-aurora ul:before,.aurora .list.no-hairline-top-aurora:before,.ios .list.no-hairline-top-ios ul:before,.ios .list.no-hairline-top-ios:before,.list.no-hairline-top ul:before,.list.no-hairline-top:before,.md .list.no-hairline-top-md ul:before,.md .list.no-hairline-top-md:before{display:none!important}.aurora .list.no-hairline-bottom-aurora ul:after,.aurora .list.no-hairline-bottom-aurora:after,.ios .list.no-hairline-bottom-ios ul:after,.ios .list.no-hairline-bottom-ios:after,.list.no-hairline-bottom ul:after,.list.no-hairline-bottom:after,.md .list.no-hairline-bottom-md ul:after,.md .list.no-hairline-bottom-md:after{display:none!important}.aurora .list.no-hairlines-between-aurora .item-divider:after,.aurora .list.no-hairlines-between-aurora .item-inner:after,.aurora .list.no-hairlines-between-aurora .list-button:after,.aurora .list.no-hairlines-between-aurora .list-group-title:after,.ios .list.no-hairlines-between-ios .item-divider:after,.ios .list.no-hairlines-between-ios .item-inner:after,.ios .list.no-hairlines-between-ios .list-button:after,.ios .list.no-hairlines-between-ios .list-group-title:after,.list.no-hairlines-between .item-divider:after,.list.no-hairlines-between .item-inner:after,.list.no-hairlines-between .list-button:after,.list.no-hairlines-between .list-group-title:after,.md .list.no-hairlines-between-md .item-divider:after,.md .list.no-hairlines-between-md .item-inner:after,.md .list.no-hairlines-between-md .list-button:after,.md .list.no-hairlines-between-md .list-group-title:after{display:none!important}.aurora .list.no-hairlines-between-aurora.simple-list li:after,.ios .list.no-hairlines-between-ios.simple-list li:after,.list.no-hairlines-between.simple-list li:after,.md .list.no-hairlines-between-md.simple-list li:after{display:none!important}.aurora .list.no-hairlines-between-aurora.links-list a:after,.ios .list.no-hairlines-between-ios.links-list a:after,.list.no-hairlines-between.links-list a:after,.md .list.no-hairlines-between-md.links-list a:after{display:none!important}.list-button{padding:0 var(--f7-list-item-padding-horizontal);line-height:var(--f7-list-item-min-height);color:var(--f7-list-button-text-color,var(--f7-theme-color));font-size:var(--f7-list-button-font-size);font-weight:var(--f7-list-button-font-weight);text-align:var(--f7-list-button-text-align)}.list-button:after{content:'';position:absolute;background-color:var(--f7-list-button-border-color);display:block;z-index:15;top:auto;right:auto;bottom:0;left:0;height:1px;width:100%;transform-origin:50% 100%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.list-button.active-state{background-color:var(--f7-list-button-pressed-bg-color)}.list-button[class*=color-]{--f7-list-button-text-color:var(--f7-theme-color)}.simple-list li{position:relative;white-space:nowrap;text-overflow:ellipsis;max-width:100%;box-sizing:border-box;display:flex;justify-content:space-between;align-items:center;align-content:center;line-height:var(--f7-list-item-min-height);height:var(--f7-list-item-min-height);padding-left:calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-left));padding-right:calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-right))}.simple-list li:after{left:var(--f7-list-item-padding-horizontal);width:auto;left:calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-left));right:0}.simple-list li:last-child:after{display:none!important}.links-list li{z-index:1}.links-list a{transition-duration:.3s;transition-property:background-color;display:block;position:relative;overflow:hidden;display:flex;align-items:center;align-content:center;justify-content:space-between;box-sizing:border-box;white-space:nowrap;text-overflow:ellipsis;max-width:100%;height:var(--f7-list-item-min-height);color:inherit}.links-list a .ripple-wave{z-index:0}.links-list a:after{width:auto}.links-list a.active-state{background-color:var(--f7-list-link-pressed-bg-color)}.links-list a{padding-left:calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-left));padding-right:calc(var(--f7-list-chevron-icon-area) + var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-right))}.links-list a:after{left:calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-left));right:0}.links-list li:last-child a:after{display:none!important}.links-list a:after,.list .item-inner:after,.simple-list li:after{content:'';position:absolute;background-color:var(--f7-list-item-border-color);display:block;z-index:15;top:auto;right:auto;bottom:0;left:0;height:1px;width:100%;transform-origin:50% 100%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.media-list,li.media-item{--f7-list-item-padding-vertical:var(--f7-list-media-item-padding-vertical);--f7-list-item-padding-horizontal:var(--f7-list-media-item-padding-horizontal)}.media-list .item-title,li.media-item .item-title{font-weight:var(--f7-list-media-item-title-font-weight,var(--f7-list-item-title-font-weight,inherit))}.media-list .item-inner,li.media-item .item-inner{display:block;align-self:stretch}.media-list .item-media,li.media-item .item-media{align-self:flex-start}.media-list .item-media img,li.media-item .item-media img{display:block}.media-list .item-link .item-inner,li.media-item .item-link .item-inner{padding-right:calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-right))}.media-list .item-link .item-title-row,li.media-item .item-link .item-title-row{padding-right:calc(var(--f7-list-chevron-icon-area))}.media-list .chevron-center .item-link .item-inner,.media-list .item-link.chevron-center .item-inner,.media-list.chevron-center .item-link .item-inner,li.media-item .chevron-center .item-link .item-inner,li.media-item .item-link.chevron-center .item-inner,li.media-item.chevron-center .item-link .item-inner{padding-right:calc(var(--f7-list-chevron-icon-area) + var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-right))}.media-list .chevron-center .item-title-row,.media-list.chevron-center .item-title-row,li.media-item .chevron-center .item-title-row,li.media-item.chevron-center .item-title-row{padding-right:0}.links-list a:before,.list .item-link .item-inner:before,.media-list .chevron-center .item-link .item-inner:before,.media-list .item-link .item-title-row:before,.media-list .item-link.chevron-center .item-inner:before,.media-list.chevron-center .item-link .item-inner:before,li.media-item .chevron-center .item-link .item-inner:before,li.media-item .item-link .item-title-row:before,li.media-item .item-link.chevron-center .item-inner:before,li.media-item.chevron-center .item-link .item-inner:before{font-family:framework7-core-icons;font-weight:400;font-style:normal;line-height:1;letter-spacing:normal;text-transform:none;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;font-feature-settings:"liga";text-align:center;display:block;width:100%;height:100%;font-size:20px;position:absolute;top:50%;width:8px;height:14px;margin-top:-7px;font-size:var(--f7-list-chevron-icon-font-size);line-height:14px;color:var(--f7-list-chevron-icon-color);pointer-events:none;right:calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-right));content:var(--f7-list-chevron-icon-right)}.media-list .chevron-center .item-title-row:before,.media-list.chevron-center .item-title-row:before,li.media-item .chevron-center .item-title-row:before,li.media-item.chevron-center .item-title-row:before{display:none}.media-list .item-link .item-inner:before,li.media-item .item-link .item-inner:before{display:none}.media-list .item-link .item-title-row:before,li.media-item .item-link .item-title-row:before{right:0}.list-group ul:after,.list-group ul:before{z-index:25!important}.list-group+.list-group ul:before{display:none!important}.item-divider,li.item-divider,li.list-group-title{white-space:nowrap;position:relative;max-width:100%;text-overflow:ellipsis;overflow:hidden;z-index:15;padding-top:0;padding-bottom:0;padding-left:calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-left));padding-right:calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-right));box-sizing:border-box;display:flex;align-items:center;align-content:center}.item-divider:after,li.item-divider:after,li.list-group-title:after{display:none!important}.item-divider,li.item-divider{margin-top:-1px;height:var(--f7-list-item-divider-height);color:var(--f7-list-item-divider-text-color);font-size:var(--f7-list-item-divider-font-size);font-weight:var(--f7-list-item-divider-font-weight);background-color:var(--f7-list-item-divider-bg-color);line-height:var(--f7-list-item-divider-line-height)}.item-divider:before,li.item-divider:before{content:'';position:absolute;background-color:var(--f7-list-item-divider-border-color);display:block;z-index:15;top:0;right:auto;bottom:auto;left:0;height:1px;width:100%;transform-origin:50% 0%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.list li.list-group-title,li.list-group-title{position:relative;position:-webkit-sticky;position:sticky;top:0;margin-top:0;z-index:20;height:var(--f7-list-group-title-height);color:var(--f7-list-group-title-text-color);font-size:var(--f7-list-group-title-font-size);font-weight:var(--f7-list-group-title-font-weight);background-color:var(--f7-list-group-title-bg-color);line-height:var(--f7-list-group-title-line-height)}.page-with-navbar-large .list li.list-group-title,.page-with-navbar-large li.list-group-title{top:calc(-1 * var(--f7-navbar-large-title-height))}.list.inset{margin-left:calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-left));margin-right:calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-right));border-radius:var(--f7-list-inset-border-radius);--f7-safe-area-left:0px;--f7-safe-area-right:0px}.list.inset .block-title{margin-left:0;margin-right:0}.list.inset ul{border-radius:var(--f7-list-inset-border-radius)}.list.inset ul:after,.list.inset ul:before{display:none!important}.list.inset li.swipeout:first-child,.list.inset li:first-child>a{border-radius:var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius) 0 0}.list.inset li.swipeout:last-child,.list.inset li:last-child>a{border-radius:0 0 var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius)}.list.inset li.swipeout:first-child:last-child,.list.inset li:first-child:last-child>a{border-radius:var(--f7-list-inset-border-radius)}@media (min-width:480px){.list.xsmall-inset{margin-left:calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-left));margin-right:calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-right));border-radius:var(--f7-list-inset-border-radius);--f7-safe-area-left:0px;--f7-safe-area-right:0px}.list.xsmall-inset .block-title{margin-left:0;margin-right:0}.list.xsmall-inset ul{border-radius:var(--f7-list-inset-border-radius)}.list.xsmall-inset ul:after,.list.xsmall-inset ul:before{display:none!important}.list.xsmall-inset li:first-child>a{border-radius:var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius) 0 0}.list.xsmall-inset li:last-child>a{border-radius:0 0 var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius)}.list.xsmall-inset li:first-child:last-child>a{border-radius:var(--f7-list-inset-border-radius)}}@media (min-width:568px){.list.small-inset{margin-left:calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-left));margin-right:calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-right));border-radius:var(--f7-list-inset-border-radius);--f7-safe-area-left:0px;--f7-safe-area-right:0px}.list.small-inset .block-title{margin-left:0;margin-right:0}.list.small-inset ul{border-radius:var(--f7-list-inset-border-radius)}.list.small-inset ul:after,.list.small-inset ul:before{display:none!important}.list.small-inset li:first-child>a{border-radius:var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius) 0 0}.list.small-inset li:last-child>a{border-radius:0 0 var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius)}.list.small-inset li:first-child:last-child>a{border-radius:var(--f7-list-inset-border-radius)}}@media (min-width:768px){.list.medium-inset{margin-left:calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-left));margin-right:calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-right));border-radius:var(--f7-list-inset-border-radius);--f7-safe-area-left:0px;--f7-safe-area-right:0px}.list.medium-inset .block-title{margin-left:0;margin-right:0}.list.medium-inset ul{border-radius:var(--f7-list-inset-border-radius)}.list.medium-inset ul:after,.list.medium-inset ul:before{display:none!important}.list.medium-inset li:first-child>a{border-radius:var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius) 0 0}.list.medium-inset li:last-child>a{border-radius:0 0 var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius)}.list.medium-inset li:first-child:last-child>a{border-radius:var(--f7-list-inset-border-radius)}}@media (min-width:1024px){.list.large-inset{margin-left:calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-left));margin-right:calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-right));border-radius:var(--f7-list-inset-border-radius);--f7-safe-area-left:0px;--f7-safe-area-right:0px}.list.large-inset .block-title{margin-left:0;margin-right:0}.list.large-inset ul{border-radius:var(--f7-list-inset-border-radius)}.list.large-inset ul:after,.list.large-inset ul:before{display:none!important}.list.large-inset li:first-child>a{border-radius:var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius) 0 0}.list.large-inset li:last-child>a{border-radius:0 0 var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius)}.list.large-inset li:first-child:last-child>a{border-radius:var(--f7-list-inset-border-radius)}}@media (min-width:1200px){.list.xlarge-inset{margin-left:calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-left));margin-right:calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-right));border-radius:var(--f7-list-inset-border-radius);--f7-safe-area-left:0px;--f7-safe-area-right:0px}.list.xlarge-inset .block-title{margin-left:0;margin-right:0}.list.xlarge-inset ul{border-radius:var(--f7-list-inset-border-radius)}.list.xlarge-inset ul:after,.list.xlarge-inset ul:before{display:none!important}.list.xlarge-inset li:first-child>a{border-radius:var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius) 0 0}.list.xlarge-inset li:last-child>a{border-radius:0 0 var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius)}.list.xlarge-inset li:first-child:last-child>a{border-radius:var(--f7-list-inset-border-radius)}}.list .no-chevron,.list.no-chevron{--f7-list-chevron-icon-color:transparent;--f7-list-chevron-icon-area:0px}.ios .item-link.active-state .item-inner:after,.ios .links-list a.active-state:after,.ios .list-button.active-state:after{background-color:transparent}.ios .links-list a.active-state,.ios .list .item-link.active-state,.ios .list .list-button.active-state{transition-duration:0s}.md .list .item-media{min-width:40px}.aurora .list .item-media{min-width:18px}.aurora .links-list a,.aurora .list .item-link,.aurora .list .list-button{transition-duration:0s}.aurora.device-desktop .links-list a:hover:not(.active-state):not(.no-hover),.aurora.device-desktop .list .item-link:hover:not(.active-state):not(.no-hover){background:var(--f7-list-link-hover-bg-color)}.aurora.device-desktop .list .list-button:hover:not(.active-state):not(.no-hover){background:var(--f7-list-button-hover-bg-color)}:root{--f7-badge-text-color:#fff;--f7-badge-bg-color:#8e8e93;--f7-badge-padding:0 4px;--f7-badge-in-icon-size:16px;--f7-badge-in-icon-font-size:10px;--f7-badge-font-weight:normal;--f7-badge-font-size:12px}.ios{--f7-badge-size:20px}.md{--f7-badge-size:18px}.aurora{--f7-badge-size:18px;--f7-badge-font-weight:600;--f7-badge-in-icon-size:15px}.badge{display:inline-flex;align-items:center;align-content:center;justify-content:center;color:var(--f7-badge-text-color);background:var(--f7-badge-bg-color);position:relative;box-sizing:border-box;text-align:center;vertical-align:middle;font-weight:var(--f7-badge-font-weight);font-size:var(--f7-badge-font-size);border-radius:var(--f7-badge-size);padding:var(--f7-badge-padding);height:var(--f7-badge-size);min-width:var(--f7-badge-size)}.f7-icons .badge,.framework7-icons .badge,.icon .badge,.material-icons .badge{position:absolute;left:100%;margin-left:-10px;top:-2px;font-family:var(--f7-font-family);--f7-badge-font-size:var(--f7-badge-in-icon-font-size);--f7-badge-size:var(--f7-badge-in-icon-size)}.badge[class*=color-]{--f7-badge-bg-color:var(--f7-theme-color)}:root{--f7-button-min-width:32px;--f7-button-bg-color:transparent;--f7-button-border-width:0px;--f7-button-outline-border-width:2px;--f7-button-raised-box-shadow:0 1px 3px rgba(0, 0, 0, 0.12),0 1px 2px rgba(0,0,0,0.24);--f7-button-raised-pressed-box-shadow:0 3px 6px rgba(0, 0, 0, 0.16),0 3px 6px rgba(0,0,0,0.23);--f7-segmented-raised-divider-color:rgba(0, 0, 0, 0.1);--f7-segmented-strong-padding:2px;--f7-segmented-strong-between-buttons:4px;--f7-segmented-strong-button-font-weight:500;--f7-segmented-strong-button-active-box-shadow:0px 2px 2px rgba(0, 0, 0, 0.25);--f7-segmented-strong-bg-color:rgba(0, 0, 0, 0.07);--f7-segmented-strong-button-text-color:#000;--f7-segmented-strong-button-pressed-bg-color:rgba(0, 0, 0, 0.07);--f7-segmented-strong-button-hover-bg-color:rgba(0, 0, 0, 0.04);--f7-segmented-strong-button-active-text-color:#000;--f7-segmented-strong-button-active-bg-color:#fff}:root .theme-dark,:root.theme-dark{--f7-segmented-strong-bg-color:rgba(255, 255, 255, 0.1);--f7-segmented-strong-button-pressed-bg-color:rgba(255, 255, 255, 0.04);--f7-segmented-strong-button-hover-bg-color:rgba(255, 255, 255, 0.02);--f7-segmented-strong-button-active-bg-color:rgba(255, 255, 255, 0.14);--f7-segmented-strong-button-text-color:#fff;--f7-segmented-strong-button-active-text-color:#fff}.ios{--f7-button-font-size:13px;--f7-button-height:28px;--f7-button-padding-horizontal:10px;--f7-button-border-radius:5px;--f7-button-font-weight:600;--f7-button-letter-spacing:0;--f7-button-text-transform:uppercase;--f7-button-large-height:44px;--f7-button-large-font-size:17px;--f7-button-large-font-weight:500;--f7-button-large-text-transform:none;--f7-button-small-height:26px;--f7-button-small-font-size:13px;--f7-button-small-font-weight:600;--f7-button-small-text-transform:uppercase;--f7-button-small-outline-border-width:2px;--f7-segmented-strong-button-text-transform:none;--f7-segmented-strong-button-active-font-weight:600}.md{--f7-button-font-size:14px;--f7-button-height:36px;--f7-button-padding-horizontal:8px;--f7-button-border-radius:4px;--f7-button-font-weight:500;--f7-button-letter-spacing:0.03em;--f7-button-text-transform:uppercase;--f7-button-large-height:48px;--f7-button-large-font-size:14px;--f7-button-large-font-weight:500;--f7-button-large-text-transform:uppercase;--f7-button-small-height:28px;--f7-button-small-font-size:12px;--f7-button-small-font-weight:500;--f7-button-small-text-transform:uppercase;--f7-button-small-outline-border-width:2px;--f7-segmented-strong-button-text-transform:uppercase;--f7-segmented-strong-button-active-font-weight:500;--f7-button-pressed-bg-color:rgba(0, 0, 0, 0.1)}.md .theme-dark,.md.theme-dark{--f7-button-pressed-bg-color:rgba(255, 255, 255, 0.1)}.aurora{--f7-button-font-size:14px;--f7-button-height:28px;--f7-button-min-width:24px;--f7-button-padding-horizontal:10px;--f7-button-border-radius:4px;--f7-button-font-weight:500;--f7-button-letter-spacing:0.02;--f7-button-text-transform:none;--f7-button-large-height:34px;--f7-button-large-font-size:14px;--f7-button-large-font-weight:600;--f7-button-large-text-transform:none;--f7-button-small-height:24px;--f7-button-small-font-size:12px;--f7-button-small-font-weight:600;--f7-button-small-text-transform:none;--f7-button-small-outline-border-width:1px;--f7-segmented-strong-button-text-transform:none;--f7-segmented-strong-button-active-font-weight:600}button{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%}.button{text-decoration:none;text-align:center;display:block;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:0 0;margin:0;white-space:nowrap;text-overflow:ellipsis;position:relative;overflow:hidden;font-family:inherit;cursor:pointer;outline:0;box-sizing:border-box;vertical-align:middle;justify-content:center;align-items:center;border:var(--f7-button-border-width,0px) solid var(--f7-button-border-color,var(--f7-theme-color));font-size:var(--f7-button-font-size);color:var(--f7-button-text-color,var(--f7-theme-color));height:var(--f7-button-height);line-height:calc(var(--f7-button-height) - var(--f7-button-border-width,0) * 2);padding:var(--f7-button-padding-vertical,0px) var(--f7-button-padding-horizontal);border-radius:var(--f7-button-border-radius);min-width:var(--f7-button-min-width);font-weight:var(--f7-button-font-weight);letter-spacing:var(--f7-button-letter-spacing);text-transform:var(--f7-button-text-transform);background-color:var(--f7-button-bg-color);box-shadow:var(--f7-button-box-shadow)}.button.active-state{background-color:var(--f7-button-pressed-bg-color,rgba(var(--f7-theme-color-rgb),.15));color:var(--f7-button-pressed-text-color,var(--f7-button-text-color,var(--f7-theme-color)))}input[type=button].button,input[type=submit].button{width:100%}.button>i+i,.button>i+span,.button>span+i,.button>span+span{margin-left:4px}.appbar .button,.navbar .button,.searchbar .button,.subnavbar .button,.toolbar .button{color:var(--f7-button-text-color,var(--f7-theme-color))}.aurora .button-round-aurora,.button-round,.ios .button-round-ios,.md .button-round-md{--f7-button-border-radius:var(--f7-button-height)}.aurora .button-fill-aurora,.button-active,.button-fill,.button.tab-link-active,.ios .button-fill-ios,.md .button-fill-md{--f7-button-bg-color:var(--f7-button-fill-bg-color, var(--f7-theme-color));--f7-button-text-color:var(--f7-button-fill-text-color, #fff);--f7-touch-ripple-color:var(--f7-touch-ripple-white)}.aurora .button-fill-aurora,.button-fill,.ios .button-fill-ios,.md .button-fill-md{--f7-button-pressed-bg-color:var(--f7-button-fill-pressed-bg-color)}.button-active,.button.tab-link-active{--f7-button-pressed-bg-color:var(--f7-button-bg-color)}.aurora .button-outline-aurora,.button-outline,.ios .button-outline-ios,.md .button-outline-md{--f7-button-border-color:var(--f7-button-outline-border-color, var(--f7-theme-color));--f7-button-border-width:var(--f7-button-outline-border-width)}.aurora .button-large-aurora,.button-large,.ios .button-large-ios,.md .button-large-md{--f7-button-height:var(--f7-button-large-height);--f7-button-font-size:var(--f7-button-large-font-size);--f7-button-font-weight:var(--f7-button-large-font-weight);--f7-button-text-transform:var(--f7-button-large-text-transform)}.aurora .button-small-aurora,.button-small,.ios .button-small-ios,.md .button-small-md{--f7-button-outline-border-width:var(--f7-button-small-outline-border-width);--f7-button-height:var(--f7-button-small-height);--f7-button-font-size:var(--f7-button-small-font-size);--f7-button-font-weight:var(--f7-button-small-font-weight);--f7-button-text-transform:var(--f7-button-small-text-transform)}.ios .button-small-ios.button-fill,.ios .button-small.button-fill,.ios .button-small.button-fill-ios{--f7-button-border-width:var(--f7-button-small-outline-border-width);--f7-button-pressed-text-color:var(--f7-theme-color);--f7-button-pressed-bg-color:transparent}.segmented{align-self:center;display:flex;flex-wrap:nowrap;border-radius:var(--f7-button-border-radius);box-shadow:var(--f7-button-box-shadow);box-sizing:border-box}.segmented .button,.segmented button{width:100%;flex-shrink:1;min-width:0;border-radius:0}.segmented .button:first-child{border-radius:var(--f7-button-border-radius) 0 0 var(--f7-button-border-radius)}.segmented .button:not(.button-outline):first-child{border-left:none}.segmented .button.button-outline:nth-child(n+2){border-left:none}.segmented .button:last-child{border-radius:0 var(--f7-button-border-radius) var(--f7-button-border-radius) 0}.segmented .button-round:first-child{border-radius:var(--f7-button-height) 0 0 var(--f7-button-height)}.segmented .button-round:last-child{border-radius:0 var(--f7-button-height) var(--f7-button-height) 0}.segmented .button:first-child:last-child{border-radius:var(--f7-button-border-radius)}.aurora .segmented-raised-aurora,.ios .segmented-raised-ios,.md .segmented-raised-md,.segmented-raised{box-shadow:var(--f7-button-raised-box-shadow)}.aurora .segmented-raised-aurora .button:not(.button-outline),.ios .segmented-raised-ios .button:not(.button-outline),.md .segmented-raised-md .button:not(.button-outline),.segmented-raised .button:not(.button-outline){border-left:1px solid var(--f7-segmented-raised-divider-color)}.aurora .button-raised-aurora,.button-raised,.ios .button-raised-ios,.md .button-raised-md{--f7-button-box-shadow:var(--f7-button-raised-box-shadow)}.aurora .button-raised-aurora.active-state,.button-raised.active-state,.ios .button-raised-ios.active-state,.md .button-raised-md.active-state{--f7-button-box-shadow:var(--f7-button-raised-pressed-box-shadow)}.aurora .segmented-strong-aurora,.ios .segmented-strong-ios,.md .segmented-strong-md,.segmented-strong{--f7-button-bg-color:transparent;--f7-button-hover-bg-color:var(--f7-segmented-strong-button-hover-bg-color);--f7-button-text-color:var(--f7-segmented-strong-button-text-color);--f7-button-font-weight:var(--f7-segmented-strong-button-font-weight);--f7-button-text-transform:var(--f7-segmented-strong-button-text-transform);--f7-button-pressed-bg-color:var(--f7-segmented-strong-button-pressed-bg-color);position:relative;background:var(--f7-segmented-strong-bg-color);border-radius:calc(var(--f7-button-border-radius) + 2px);box-shadow:none;padding:var(--f7-segmented-strong-padding);overflow:hidden}.aurora .segmented-strong-aurora .button,.ios .segmented-strong-ios .button,.md .segmented-strong-md .button,.segmented-strong .button{z-index:1;transform:translate3d(0,0,0)}.aurora .segmented-strong-aurora .button,.aurora .segmented-strong-aurora .button:first-child,.aurora .segmented-strong-aurora .button:last-child,.ios .segmented-strong-ios .button,.ios .segmented-strong-ios .button:first-child,.ios .segmented-strong-ios .button:last-child,.md .segmented-strong-md .button,.md .segmented-strong-md .button:first-child,.md .segmented-strong-md .button:last-child,.segmented-strong .button,.segmented-strong .button:first-child,.segmented-strong .button:last-child{border-radius:var(--f7-button-border-radius)}.aurora .segmented-strong-aurora .button+.button,.ios .segmented-strong-ios .button+.button,.md .segmented-strong-md .button+.button,.segmented-strong .button+.button{margin-left:var(--f7-segmented-strong-between-buttons)}.aurora .segmented-strong-aurora .button.button-active,.aurora .segmented-strong-aurora .button.tab-link-active,.ios .segmented-strong-ios .button.button-active,.ios .segmented-strong-ios .button.tab-link-active,.md .segmented-strong-md .button.button-active,.md .segmented-strong-md .button.tab-link-active,.segmented-strong .button.button-active,.segmented-strong .button.tab-link-active{--f7-button-hover-bg-color:transparent;--f7-button-bg-color:transparent;--f7-button-text-color:var(--f7-segmented-strong-button-active-text-color);--f7-button-font-weight:var(--f7-segmented-strong-button-active-font-weight)}.aurora .segmented-strong-aurora .segmented-highlight,.ios .segmented-strong-ios .segmented-highlight,.md .segmented-strong-md .segmented-highlight,.segmented-strong .segmented-highlight{--f7-segmented-highlight-num:1;--f7-segmented-highlight-active:0;--f7-segmented-highlight-padding:calc(var(--f7-segmented-strong-padding) * 2);--f7-segmented-highlight-between:var(--f7-segmented-strong-between-buttons);--f7-segmented-highlight-width:calc((100% - var(--f7-segmented-highlight-padding) - var(--f7-segmented-highlight-between) * (var(--f7-segmented-highlight-num) - 1)) / var(--f7-segmented-highlight-num));position:absolute;background-color:var(--f7-segmented-strong-button-active-bg-color);border-radius:var(--f7-button-border-radius);box-shadow:var(--f7-segmented-strong-button-active-box-shadow);left:var(--f7-segmented-strong-padding);top:var(--f7-segmented-strong-padding);height:calc(100% - var(--f7-segmented-strong-padding) * 2);width:var(--f7-segmented-highlight-width);z-index:0;transform:translateX(calc(var(--f7-segmented-highlight-active) * 100% + var(--f7-segmented-highlight-active) * var(--f7-segmented-highlight-between)));transition:.2s}.button:nth-child(2)~.segmented-highlight{--f7-segmented-highlight-num:2}.button:nth-child(3)~.segmented-highlight{--f7-segmented-highlight-num:3}.button:nth-child(4)~.segmented-highlight{--f7-segmented-highlight-num:4}.button:nth-child(5)~.segmented-highlight{--f7-segmented-highlight-num:5}.button:nth-child(6)~.segmented-highlight{--f7-segmented-highlight-num:6}.button:nth-child(7)~.segmented-highlight{--f7-segmented-highlight-num:7}.button:nth-child(8)~.segmented-highlight{--f7-segmented-highlight-num:8}.button:nth-child(9)~.segmented-highlight{--f7-segmented-highlight-num:9}.button:nth-child(10)~.segmented-highlight{--f7-segmented-highlight-num:10}.button-active:nth-child(2)~.segmented-highlight,.tab-link-active:nth-child(2)~.segmented-highlight{--f7-segmented-highlight-active:1}.button-active:nth-child(3)~.segmented-highlight,.tab-link-active:nth-child(3)~.segmented-highlight{--f7-segmented-highlight-active:2}.button-active:nth-child(4)~.segmented-highlight,.tab-link-active:nth-child(4)~.segmented-highlight{--f7-segmented-highlight-active:3}.button-active:nth-child(5)~.segmented-highlight,.tab-link-active:nth-child(5)~.segmented-highlight{--f7-segmented-highlight-active:4}.button-active:nth-child(6)~.segmented-highlight,.tab-link-active:nth-child(6)~.segmented-highlight{--f7-segmented-highlight-active:5}.button-active:nth-child(7)~.segmented-highlight,.tab-link-active:nth-child(7)~.segmented-highlight{--f7-segmented-highlight-active:6}.button-active:nth-child(8)~.segmented-highlight,.tab-link-active:nth-child(8)~.segmented-highlight{--f7-segmented-highlight-active:7}.button-active:nth-child(9)~.segmented-highlight,.tab-link-active:nth-child(9)~.segmented-highlight{--f7-segmented-highlight-active:8}.button-active:nth-child(10)~.segmented-highlight,.tab-link-active:nth-child(10)~.segmented-highlight{--f7-segmented-highlight-active:9}.aurora .segmented-round-aurora,.ios .segmented-round-ios,.md .segmented-round-md,.segmented-round{border-radius:var(--f7-button-height)}.aurora .segmented-round-aurora .segmented-highlight,.ios .segmented-round-ios .segmented-highlight,.md .segmented-round-md .segmented-highlight,.segmented-round .segmented-highlight{border-radius:var(--f7-button-height)}.subnavbar .segmented{width:100%}.ios .button{transition-duration:.1s}.ios .button-fill,.ios .button-fill-ios{--f7-button-pressed-bg-color:var(--f7-button-fill-pressed-bg-color, var(--f7-theme-color-tint))}.ios .button-small,.ios .button-small-ios{transition-duration:.2s}.md .button{transition-duration:.3s;transform:translate3d(0,0,0)}.md .button-fill,.md .button-fill-md{--f7-button-pressed-bg-color:var(--f7-button-fill-pressed-bg-color, var(--f7-theme-color-shade))}.aurora .button{transition-duration:.1s;transform:translate3d(0,0,0)}.aurora.device-desktop .button:not(.active-state):not(.no-hover):hover{background-color:var(--f7-button-hover-bg-color,rgba(var(--f7-theme-color-rgb),.07))}.aurora .button-fill,.aurora .button-fill-aurora{--f7-button-pressed-bg-color:var(--f7-button-fill-pressed-bg-color, var(--f7-theme-color-shade))}.aurora .button-active,.aurora .button-fill,.aurora .button-fill-aurora,.aurora .button.tab-link-active{--f7-button-hover-bg-color:var(--f7-button-fill-hover-bg-color, var(--f7-theme-color-tint))}:root{--f7-touch-ripple-black:rgba(0, 0, 0, 0.1);--f7-touch-ripple-white:rgba(255, 255, 255, 0.3);--f7-touch-ripple-color:var(--f7-touch-ripple-black)}.theme-dark{--f7-touch-ripple-color:var(--f7-touch-ripple-white)}.actions-button,.button,.checkbox,.dialog-button,.fab a,.item-link,.link,.list-button,.radio,.ripple,.speed-dial-buttons a,.tab-link{-webkit-user-select:none;-moz-user-select:none;user-select:none}.ripple-wave{left:0;top:0;position:absolute!important;border-radius:50%;pointer-events:none;z-index:-1;padding:0;margin:0;font-size:0;transform:translate3d(0px,0px,0) scale(0);transition-duration:1.4s;background-color:var(--f7-touch-ripple-color)}.ripple-wave.ripple-wave-fill{transition-duration:.3s;opacity:.35}.ripple-wave.ripple-wave-out{transition-duration:.6s;opacity:0}.button-fill .ripple-wave,.menu .ripple-wave,.picker-calendar-day .ripple-wave{z-index:1}.checkbox .ripple-wave,.data-table .sortable-cell .ripple-wave,.radio .ripple-wave{z-index:0}[class*=ripple-color-]{--f7-touch-ripple-color:var(--f7-theme-color-ripple-color)}.f7-icons,.material-icons{width:1em;height:1em}i.icon{display:inline-block;vertical-align:middle;background-size:100% auto;background-position:center;background-repeat:no-repeat;font-style:normal;position:relative}.icon-back:after,.icon-forward:after,.icon-next:after,.icon-prev:after{font-family:framework7-core-icons;font-weight:400;font-style:normal;line-height:1;letter-spacing:normal;text-transform:none;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;font-feature-settings:"liga";text-align:center;display:block;width:100%;height:100%;font-size:20px}.icon[class*=color-]{color:var(--f7-theme-color)}.ios .icon-back,.ios .icon-forward,.ios .icon-next,.ios .icon-prev{width:12px;height:20px;line-height:20px}.ios .icon-back:after,.ios .icon-forward:after,.ios .icon-next:after,.ios .icon-prev:after{line-height:inherit}.ios .icon-next:after,.ios .icon-prev:after{font-size:16px}.ios .icon-back:after,.ios .icon-prev:after{content:'chevron_left_ios'}.ios .icon-forward:after,.ios .icon-next:after{content:'chevron_right_ios'}.md .icon-back,.md .icon-forward,.md .icon-next,.md .icon-prev{width:24px;height:24px}.md .icon-back:after,.md .icon-forward:after,.md .icon-next:after,.md .icon-prev:after{line-height:1.2}.md .icon-back:after{content:'arrow_left_md'}.md .icon-forward:after{content:'arrow_right_md'}.md .icon-next:after{content:'chevron_right_md'}.md .icon-prev:after{content:'chevron_left_md'}.aurora .f7-icons,.aurora .material-icons{font-size:18px}.aurora .icon-back,.aurora .icon-forward,.aurora .icon-next,.aurora .icon-prev{width:9px;height:14px;line-height:14px}.aurora .icon-back:after,.aurora .icon-forward:after,.aurora .icon-next:after,.aurora .icon-prev:after{line-height:inherit}.aurora .icon-back:after,.aurora .icon-prev:after{content:'chevron_left_aurora'}.aurora .icon-forward:after,.aurora .icon-next:after{content:'chevron_right_aurora'}.custom-modal-backdrop{z-index:10500}.actions-backdrop,.custom-modal-backdrop,.dialog-backdrop,.fab-backdrop,.popover-backdrop,.popup-backdrop,.preloader-backdrop,.sheet-backdrop{position:absolute;left:0;top:0;width:100%;height:100%;background:rgba(0,0,0,.4);z-index:13000;visibility:hidden;opacity:0;transition-duration:.4s}.actions-backdrop.not-animated,.custom-modal-backdrop.not-animated,.dialog-backdrop.not-animated,.fab-backdrop.not-animated,.popover-backdrop.not-animated,.popup-backdrop.not-animated,.preloader-backdrop.not-animated,.sheet-backdrop.not-animated{transition-duration:0s}.actions-backdrop.backdrop-in,.custom-modal-backdrop.backdrop-in,.dialog-backdrop.backdrop-in,.fab-backdrop.backdrop-in,.popover-backdrop.backdrop-in,.popup-backdrop.backdrop-in,.preloader-backdrop.backdrop-in,.sheet-backdrop.backdrop-in{visibility:visible;opacity:1} \ No newline at end of file diff --git a/public/Framework7/5/css/framework7.rtl.css b/public/Framework7/5/css/framework7.rtl.css new file mode 100644 index 0000000..8b7a290 --- /dev/null +++ b/public/Framework7/5/css/framework7.rtl.css @@ -0,0 +1,5897 @@ +/** + * Framework7 5.7.14 + * Full featured mobile HTML framework for building iOS & Android apps + * https://framework7.io/ + * + * Copyright 2014-2020 Vladimir Kharlampidi + * + * Released under the MIT License + * + * Released on: November 9, 2020 + */ + +/*==================== + Core + ==================== */ +:root { + --f7-theme-color: #007aff; + --f7-theme-color-rgb: 0, 122, 255; + --f7-theme-color-shade: #0066d6; + --f7-theme-color-tint: #298fff; + --f7-safe-area-left: 0px; + --f7-safe-area-right: 0px; + --f7-safe-area-top: 0px; + --f7-safe-area-bottom: 0px; + --f7-safe-area-outer-left: 0px; + --f7-safe-area-outer-right: 0px; + --f7-device-pixel-ratio: 1; +} +@supports (left: env(safe-area-inset-left)) { + :root { + --f7-safe-area-top: env(safe-area-inset-top); + --f7-safe-area-bottom: env(safe-area-inset-bottom); + } + :root .ios-left-edge, + :root .ios-edges, + :root .safe-area-left, + :root .safe-areas, + :root .popup, + :root .sheet-modal, + :root .panel-left { + --f7-safe-area-left: env(safe-area-inset-left); + --f7-safe-area-outer-left: env(safe-area-inset-left); + } + :root .ios-right-edge, + :root .ios-edges, + :root .safe-area-right, + :root .safe-areas, + :root .popup, + :root .sheet-modal, + :root .panel-right { + --f7-safe-area-right: env(safe-area-inset-right); + --f7-safe-area-outer-right: env(safe-area-inset-right); + } + :root .no-safe-areas, + :root .no-safe-area-left, + :root .no-ios-edges, + :root .no-ios-left-edge { + --f7-safe-area-left: 0px; + --f7-safe-area-outer-left: 0px; + } + :root .no-safe-areas, + :root .no-safe-area-right, + :root .no-ios-edges, + :root .no-ios-right-edge { + --f7-safe-area-right: 0px; + --f7-safe-area-outer-right: 0px; + } +} +@media (-webkit-min-device-pixel-ratio: 2), (min-resolution: 2dppx) { + :root { + --f7-device-pixel-ratio: 2; + } +} +@media (-webkit-min-device-pixel-ratio: 3), (min-resolution: 3dppx) { + :root { + --f7-device-pixel-ratio: 3; + } +} +/*==================== + Fonts & Bars + ==================== */ +:root { + --f7-font-size: 14px; + /* + --f7-bars-link-color: var(--f7-theme-color); + */ + --f7-bars-bg-image: none; + --f7-bars-translucent-opacity: 0.8; + --f7-bars-translucent-blur: 20px; + --f7-bars-shadow-bottom-image: linear-gradient(to bottom, rgba(0, 0, 0, 0.25) 0%, rgba(0, 0, 0, 0.08) 40%, rgba(0, 0, 0, 0.04) 50%, rgba(0, 0, 0, 0) 90%, rgba(0, 0, 0, 0) 100%); + --f7-bars-shadow-top-image: linear-gradient(to top, rgba(0, 0, 0, 0.25) 0%, rgba(0, 0, 0, 0.08) 40%, rgba(0, 0, 0, 0.04) 50%, rgba(0, 0, 0, 0) 90%, rgba(0, 0, 0, 0) 100%); + --f7-bars-text-color: #000; + --f7-bars-bg-color: #f7f7f8; + --f7-bars-bg-color-rgb: 247, 247, 248; +} +:root .theme-dark, +:root.theme-dark { + --f7-bars-text-color: #fff; +} +.ios { + --f7-font-family: -apple-system, SF Pro Text, SF UI Text, system-ui, Helvetica Neue, Helvetica, Arial, sans-serif; + --f7-line-height: 1.4; + --f7-text-color: #000; + --f7-bars-border-color: rgba(0, 0, 0, 0.25); +} +.ios .theme-dark, +.ios.theme-dark { + --f7-text-color: #fff; + --f7-bars-bg-color: #121212; + --f7-bars-bg-color-rgb: 22, 22, 22; + --f7-bars-border-color: rgba(255, 255, 255, 0.16); +} +.md { + --f7-font-family: Roboto, system-ui, Noto, Helvetica, Arial, sans-serif; + --f7-line-height: 1.5; + --f7-bars-border-color: transparent; + --f7-text-color: #212121; +} +.md .theme-dark, +.md.theme-dark { + --f7-text-color: rgba(255, 255, 255, 0.87); + --f7-bars-bg-color: #202020; +} +.aurora { + --f7-font-family: -apple-system, system-ui, Helvetica, Arial, sans-serif; + --f7-line-height: 1.5; + --f7-text-color: #000; + --f7-bars-border-color: rgba(0, 0, 0, 0.2); +} +.aurora .theme-dark, +.aurora.theme-dark { + --f7-text-color: #fff; + --f7-bars-bg-color: #202020; + --f7-bars-border-color: rgba(255, 255, 255, 0.1); +} +/*==================== + Color Themes + ==================== */ +.text-color-primary { + --f7-theme-color-text-color: var(--f7-theme-color); +} +.bg-color-primary { + --f7-theme-color-bg-color: var(--f7-theme-color); +} +.border-color-primary { + --f7-theme-color-border-color: var(--f7-theme-color); +} +.ripple-color-primary { + --f7-theme-color-ripple-color: rgba(var(--f7-theme-color-rgb), 0.3); +} +:root { + --f7-color-red: #ff3b30; + --f7-color-red-rgb: 255, 59, 48; + --f7-color-red-shade: #ff1407; + --f7-color-red-tint: #ff6259; + --f7-color-green: #4cd964; + --f7-color-green-rgb: 76, 217, 100; + --f7-color-green-shade: #2cd048; + --f7-color-green-tint: #6ee081; + --f7-color-blue: #2196f3; + --f7-color-blue-rgb: 33, 150, 243; + --f7-color-blue-shade: #0c82df; + --f7-color-blue-tint: #48a8f5; + --f7-color-pink: #ff2d55; + --f7-color-pink-rgb: 255, 45, 85; + --f7-color-pink-shade: #ff0434; + --f7-color-pink-tint: #ff5676; + --f7-color-yellow: #ffcc00; + --f7-color-yellow-rgb: 255, 204, 0; + --f7-color-yellow-shade: #d6ab00; + --f7-color-yellow-tint: #ffd429; + --f7-color-orange: #ff9500; + --f7-color-orange-rgb: 255, 149, 0; + --f7-color-orange-shade: #d67d00; + --f7-color-orange-tint: #ffa629; + --f7-color-purple: #9c27b0; + --f7-color-purple-rgb: 156, 39, 176; + --f7-color-purple-shade: #7e208f; + --f7-color-purple-tint: #b92fd1; + --f7-color-deeppurple: #673ab7; + --f7-color-deeppurple-rgb: 103, 58, 183; + --f7-color-deeppurple-shade: #563098; + --f7-color-deeppurple-tint: #7c52c8; + --f7-color-lightblue: #5ac8fa; + --f7-color-lightblue-rgb: 90, 200, 250; + --f7-color-lightblue-shade: #32bbf9; + --f7-color-lightblue-tint: #82d5fb; + --f7-color-teal: #009688; + --f7-color-teal-rgb: 0, 150, 136; + --f7-color-teal-shade: #006d63; + --f7-color-teal-tint: #00bfad; + --f7-color-lime: #cddc39; + --f7-color-lime-rgb: 205, 220, 57; + --f7-color-lime-shade: #bac923; + --f7-color-lime-tint: #d6e25c; + --f7-color-deeporange: #ff6b22; + --f7-color-deeporange-rgb: 255, 107, 34; + --f7-color-deeporange-shade: #f85200; + --f7-color-deeporange-tint: #ff864b; + --f7-color-gray: #8e8e93; + --f7-color-gray-rgb: 142, 142, 147; + --f7-color-gray-shade: #79797f; + --f7-color-gray-tint: #a3a3a7; + --f7-color-white: #ffffff; + --f7-color-white-rgb: 255, 255, 255; + --f7-color-white-shade: #ebebeb; + --f7-color-white-tint: #ffffff; + --f7-color-black: #000000; + --f7-color-black-rgb: 0, 0, 0; + --f7-color-black-shade: #000000; + --f7-color-black-tint: #141414; +} +.color-theme-red { + --f7-theme-color: #ff3b30; + --f7-theme-color-rgb: 255, 59, 48; + --f7-theme-color-shade: #ff1407; + --f7-theme-color-tint: #ff6259; +} +.color-theme-green { + --f7-theme-color: #4cd964; + --f7-theme-color-rgb: 76, 217, 100; + --f7-theme-color-shade: #2cd048; + --f7-theme-color-tint: #6ee081; +} +.color-theme-blue { + --f7-theme-color: #2196f3; + --f7-theme-color-rgb: 33, 150, 243; + --f7-theme-color-shade: #0c82df; + --f7-theme-color-tint: #48a8f5; +} +.color-theme-pink { + --f7-theme-color: #ff2d55; + --f7-theme-color-rgb: 255, 45, 85; + --f7-theme-color-shade: #ff0434; + --f7-theme-color-tint: #ff5676; +} +.color-theme-yellow { + --f7-theme-color: #ffcc00; + --f7-theme-color-rgb: 255, 204, 0; + --f7-theme-color-shade: #d6ab00; + --f7-theme-color-tint: #ffd429; +} +.color-theme-orange { + --f7-theme-color: #ff9500; + --f7-theme-color-rgb: 255, 149, 0; + --f7-theme-color-shade: #d67d00; + --f7-theme-color-tint: #ffa629; +} +.color-theme-purple { + --f7-theme-color: #9c27b0; + --f7-theme-color-rgb: 156, 39, 176; + --f7-theme-color-shade: #7e208f; + --f7-theme-color-tint: #b92fd1; +} +.color-theme-deeppurple { + --f7-theme-color: #673ab7; + --f7-theme-color-rgb: 103, 58, 183; + --f7-theme-color-shade: #563098; + --f7-theme-color-tint: #7c52c8; +} +.color-theme-lightblue { + --f7-theme-color: #5ac8fa; + --f7-theme-color-rgb: 90, 200, 250; + --f7-theme-color-shade: #32bbf9; + --f7-theme-color-tint: #82d5fb; +} +.color-theme-teal { + --f7-theme-color: #009688; + --f7-theme-color-rgb: 0, 150, 136; + --f7-theme-color-shade: #006d63; + --f7-theme-color-tint: #00bfad; +} +.color-theme-lime { + --f7-theme-color: #cddc39; + --f7-theme-color-rgb: 205, 220, 57; + --f7-theme-color-shade: #bac923; + --f7-theme-color-tint: #d6e25c; +} +.color-theme-deeporange { + --f7-theme-color: #ff6b22; + --f7-theme-color-rgb: 255, 107, 34; + --f7-theme-color-shade: #f85200; + --f7-theme-color-tint: #ff864b; +} +.color-theme-gray { + --f7-theme-color: #8e8e93; + --f7-theme-color-rgb: 142, 142, 147; + --f7-theme-color-shade: #79797f; + --f7-theme-color-tint: #a3a3a7; +} +.color-theme-white { + --f7-theme-color: #ffffff; + --f7-theme-color-rgb: 255, 255, 255; + --f7-theme-color-shade: #ebebeb; + --f7-theme-color-tint: #ffffff; +} +.color-theme-black { + --f7-theme-color: #000000; + --f7-theme-color-rgb: 0, 0, 0; + --f7-theme-color-shade: #000000; + --f7-theme-color-tint: #141414; +} +.color-red { + --f7-theme-color: #ff3b30; + --f7-theme-color-rgb: 255, 59, 48; + --f7-theme-color-shade: #ff1407; + --f7-theme-color-tint: #ff6259; +} +.text-color-red { + --f7-theme-color-text-color: #ff3b30; +} +.bg-color-red { + --f7-theme-color-bg-color: #ff3b30; +} +.border-color-red { + --f7-theme-color-border-color: #ff3b30; +} +.ripple-color-red, +.ripple-red { + --f7-theme-color-ripple-color: rgba(255, 59, 48, 0.3); +} +.color-green { + --f7-theme-color: #4cd964; + --f7-theme-color-rgb: 76, 217, 100; + --f7-theme-color-shade: #2cd048; + --f7-theme-color-tint: #6ee081; +} +.text-color-green { + --f7-theme-color-text-color: #4cd964; +} +.bg-color-green { + --f7-theme-color-bg-color: #4cd964; +} +.border-color-green { + --f7-theme-color-border-color: #4cd964; +} +.ripple-color-green, +.ripple-green { + --f7-theme-color-ripple-color: rgba(76, 217, 100, 0.3); +} +.color-blue { + --f7-theme-color: #2196f3; + --f7-theme-color-rgb: 33, 150, 243; + --f7-theme-color-shade: #0c82df; + --f7-theme-color-tint: #48a8f5; +} +.text-color-blue { + --f7-theme-color-text-color: #2196f3; +} +.bg-color-blue { + --f7-theme-color-bg-color: #2196f3; +} +.border-color-blue { + --f7-theme-color-border-color: #2196f3; +} +.ripple-color-blue, +.ripple-blue { + --f7-theme-color-ripple-color: rgba(33, 150, 243, 0.3); +} +.color-pink { + --f7-theme-color: #ff2d55; + --f7-theme-color-rgb: 255, 45, 85; + --f7-theme-color-shade: #ff0434; + --f7-theme-color-tint: #ff5676; +} +.text-color-pink { + --f7-theme-color-text-color: #ff2d55; +} +.bg-color-pink { + --f7-theme-color-bg-color: #ff2d55; +} +.border-color-pink { + --f7-theme-color-border-color: #ff2d55; +} +.ripple-color-pink, +.ripple-pink { + --f7-theme-color-ripple-color: rgba(255, 45, 85, 0.3); +} +.color-yellow { + --f7-theme-color: #ffcc00; + --f7-theme-color-rgb: 255, 204, 0; + --f7-theme-color-shade: #d6ab00; + --f7-theme-color-tint: #ffd429; +} +.text-color-yellow { + --f7-theme-color-text-color: #ffcc00; +} +.bg-color-yellow { + --f7-theme-color-bg-color: #ffcc00; +} +.border-color-yellow { + --f7-theme-color-border-color: #ffcc00; +} +.ripple-color-yellow, +.ripple-yellow { + --f7-theme-color-ripple-color: rgba(255, 204, 0, 0.3); +} +.color-orange { + --f7-theme-color: #ff9500; + --f7-theme-color-rgb: 255, 149, 0; + --f7-theme-color-shade: #d67d00; + --f7-theme-color-tint: #ffa629; +} +.text-color-orange { + --f7-theme-color-text-color: #ff9500; +} +.bg-color-orange { + --f7-theme-color-bg-color: #ff9500; +} +.border-color-orange { + --f7-theme-color-border-color: #ff9500; +} +.ripple-color-orange, +.ripple-orange { + --f7-theme-color-ripple-color: rgba(255, 149, 0, 0.3); +} +.color-purple { + --f7-theme-color: #9c27b0; + --f7-theme-color-rgb: 156, 39, 176; + --f7-theme-color-shade: #7e208f; + --f7-theme-color-tint: #b92fd1; +} +.text-color-purple { + --f7-theme-color-text-color: #9c27b0; +} +.bg-color-purple { + --f7-theme-color-bg-color: #9c27b0; +} +.border-color-purple { + --f7-theme-color-border-color: #9c27b0; +} +.ripple-color-purple, +.ripple-purple { + --f7-theme-color-ripple-color: rgba(156, 39, 176, 0.3); +} +.color-deeppurple { + --f7-theme-color: #673ab7; + --f7-theme-color-rgb: 103, 58, 183; + --f7-theme-color-shade: #563098; + --f7-theme-color-tint: #7c52c8; +} +.text-color-deeppurple { + --f7-theme-color-text-color: #673ab7; +} +.bg-color-deeppurple { + --f7-theme-color-bg-color: #673ab7; +} +.border-color-deeppurple { + --f7-theme-color-border-color: #673ab7; +} +.ripple-color-deeppurple, +.ripple-deeppurple { + --f7-theme-color-ripple-color: rgba(103, 58, 183, 0.3); +} +.color-lightblue { + --f7-theme-color: #5ac8fa; + --f7-theme-color-rgb: 90, 200, 250; + --f7-theme-color-shade: #32bbf9; + --f7-theme-color-tint: #82d5fb; +} +.text-color-lightblue { + --f7-theme-color-text-color: #5ac8fa; +} +.bg-color-lightblue { + --f7-theme-color-bg-color: #5ac8fa; +} +.border-color-lightblue { + --f7-theme-color-border-color: #5ac8fa; +} +.ripple-color-lightblue, +.ripple-lightblue { + --f7-theme-color-ripple-color: rgba(90, 200, 250, 0.3); +} +.color-teal { + --f7-theme-color: #009688; + --f7-theme-color-rgb: 0, 150, 136; + --f7-theme-color-shade: #006d63; + --f7-theme-color-tint: #00bfad; +} +.text-color-teal { + --f7-theme-color-text-color: #009688; +} +.bg-color-teal { + --f7-theme-color-bg-color: #009688; +} +.border-color-teal { + --f7-theme-color-border-color: #009688; +} +.ripple-color-teal, +.ripple-teal { + --f7-theme-color-ripple-color: rgba(0, 150, 136, 0.3); +} +.color-lime { + --f7-theme-color: #cddc39; + --f7-theme-color-rgb: 205, 220, 57; + --f7-theme-color-shade: #bac923; + --f7-theme-color-tint: #d6e25c; +} +.text-color-lime { + --f7-theme-color-text-color: #cddc39; +} +.bg-color-lime { + --f7-theme-color-bg-color: #cddc39; +} +.border-color-lime { + --f7-theme-color-border-color: #cddc39; +} +.ripple-color-lime, +.ripple-lime { + --f7-theme-color-ripple-color: rgba(205, 220, 57, 0.3); +} +.color-deeporange { + --f7-theme-color: #ff6b22; + --f7-theme-color-rgb: 255, 107, 34; + --f7-theme-color-shade: #f85200; + --f7-theme-color-tint: #ff864b; +} +.text-color-deeporange { + --f7-theme-color-text-color: #ff6b22; +} +.bg-color-deeporange { + --f7-theme-color-bg-color: #ff6b22; +} +.border-color-deeporange { + --f7-theme-color-border-color: #ff6b22; +} +.ripple-color-deeporange, +.ripple-deeporange { + --f7-theme-color-ripple-color: rgba(255, 107, 34, 0.3); +} +.color-gray { + --f7-theme-color: #8e8e93; + --f7-theme-color-rgb: 142, 142, 147; + --f7-theme-color-shade: #79797f; + --f7-theme-color-tint: #a3a3a7; +} +.text-color-gray { + --f7-theme-color-text-color: #8e8e93; +} +.bg-color-gray { + --f7-theme-color-bg-color: #8e8e93; +} +.border-color-gray { + --f7-theme-color-border-color: #8e8e93; +} +.ripple-color-gray, +.ripple-gray { + --f7-theme-color-ripple-color: rgba(142, 142, 147, 0.3); +} +.color-white { + --f7-theme-color: #ffffff; + --f7-theme-color-rgb: 255, 255, 255; + --f7-theme-color-shade: #ebebeb; + --f7-theme-color-tint: #ffffff; +} +.text-color-white { + --f7-theme-color-text-color: #ffffff; +} +.bg-color-white { + --f7-theme-color-bg-color: #ffffff; +} +.border-color-white { + --f7-theme-color-border-color: #ffffff; +} +.ripple-color-white, +.ripple-white { + --f7-theme-color-ripple-color: rgba(255, 255, 255, 0.3); +} +.color-black { + --f7-theme-color: #000000; + --f7-theme-color-rgb: 0, 0, 0; + --f7-theme-color-shade: #000000; + --f7-theme-color-tint: #141414; +} +.text-color-black { + --f7-theme-color-text-color: #000000; +} +.bg-color-black { + --f7-theme-color-bg-color: #000000; +} +.border-color-black { + --f7-theme-color-border-color: #000000; +} +.ripple-color-black, +.ripple-black { + --f7-theme-color-ripple-color: rgba(0, 0, 0, 0.3); +} +@font-face { + font-family: 'framework7-core-icons'; + src: url("data:application/font-woff;charset=utf-8;base64, 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") format("woff"); + font-weight: 400; + font-style: normal; +} +@font-face { + font-family: 'framework7-skeleton'; + src: url("data:application/font-woff;charset=utf-8;base64, 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") format("woff"); + font-weight: 300, 400, 500, 600, 700; + font-style: normal, italic; +} +html { + direction: rtl; +} +html, +body, +.framework7-root { + position: relative; + height: 100%; + width: 100%; + overflow-x: hidden; +} +body { + margin: 0; + padding: 0; + width: 100%; + background: #fff; + overflow: hidden; + -webkit-text-size-adjust: 100%; + -webkit-font-smoothing: antialiased; + font-family: var(--f7-font-family); + font-size: var(--f7-font-size); + line-height: var(--f7-line-height); + color: var(--f7-text-color); +} +.theme-dark body, +body.theme-dark { + background: #000; +} +.theme-dark { + color: var(--f7-text-color); +} +.framework7-root { + overflow: hidden; + box-sizing: border-box; +} +.framework7-initializing *, +.framework7-initializing *:before, +.framework7-initializing *:after { + transition-duration: 0ms !important; +} +.device-ios, +.device-android { + cursor: pointer; +} +.device-ios { + touch-action: manipulation; +} +@media (width: 1024px) and (height: 691px) and (orientation: landscape) { + html, + body, + .framework7-root { + height: 671px; + } +} +@media (width: 1024px) and (height: 692px) and (orientation: landscape) { + html, + body, + .framework7-root { + height: 672px; + } +} +* { + -webkit-tap-highlight-color: rgba(0, 0, 0, 0); + -webkit-touch-callout: none; +} +a, +input, +textarea, +select { + outline: 0; +} +a { + cursor: pointer; + text-decoration: none; + color: var(--f7-theme-color); +} +.link, +.item-link { + cursor: pointer; +} +p { + margin: 1em 0; +} +.disabled { + opacity: 0.55 !important; + pointer-events: none !important; +} +html.device-full-viewport, +html.device-full-viewport body { + height: 100vh; +} +.ios .md-only, +.ios .if-md, +.ios .aurora-only, +.ios .if-aurora, +.ios .if-not-ios, +.ios .not-ios { + display: none !important; +} +@media (width: 1024px) and (height: 691px) and (orientation: landscape) { + .ios, + .ios body, + .ios .framework7-root { + height: 671px; + } +} +@media (width: 1024px) and (height: 692px) and (orientation: landscape) { + .ios, + .ios body, + .ios .framework7-root { + height: 672px; + } +} +.md .ios-only, +.md .if-ios, +.md .aurora-only, +.md .if-aurora, +.md .if-not-md, +.md .not-md { + display: none !important; +} +.aurora .ios-only, +.aurora .if-ios, +.aurora .md-only, +.aurora .if-md, +.aurora .if-not-aurora, +.aurora .not-aurora { + display: none !important; +} +/* === Statusbar === */ +/* === Views === */ +.views, +.view { + position: relative; + height: 100%; + z-index: 5000; + overflow: hidden; + box-sizing: border-box; +} +.framework7-root > .view, +.framework7-root > .views { + height: calc(100% - var(--f7-appbar-app-offset, 0px)); +} +.view-resize-handler { + width: 6px; + height: 100%; + position: absolute; + left: var(--f7-page-master-width); + margin-left: -3px; + top: 0; + cursor: col-resize; + z-index: 1000; + display: none; +} +.view-master-detail .view-resize-handler { + display: block; +} +/* === Pages === */ +:root { + --f7-page-master-width: 320px; + --f7-page-master-border-color: rgba(0, 0, 0, 0.1); + --f7-page-master-border-width: 1px; + --f7-page-swipeback-transition-duration: 300ms; + --f7-page-parallax-transition-duration: 500ms; + --f7-page-cover-transition-duration: 450ms; + --f7-page-dive-transition-duration: 500ms; + --f7-page-fade-transition-duration: 500ms; + --f7-page-flip-transition-duration: 700ms; + --f7-page-push-transition-duration: 500ms; + /* + --f7-page-content-extra-padding-top: 0px; + --f7-page-content-extra-padding-bottom: 0px; + */ +} +.ios { + --f7-page-transition-duration: 400ms; + --f7-page-bg-color: #efeff4; +} +.ios .theme-dark, +.ios.theme-dark { + --f7-page-bg-color: #000; +} +.md { + --f7-page-transition-duration: 250ms; + --f7-page-bg-color: #fff; +} +.md .theme-dark, +.md.theme-dark { + --f7-page-bg-color: #121212; +} +.aurora { + --f7-page-transition-duration: 400ms; + --f7-page-bg-color: #f3f3f3; +} +.aurora .theme-dark, +.aurora.theme-dark { + --f7-page-bg-color: #121212; +} +.theme-dark { + --f7-page-master-border-color: rgba(255, 255, 255, 0.1); +} +.pages { + position: relative; + width: 100%; + height: 100%; + overflow: hidden; +} +.page { + box-sizing: border-box; + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + transform: none; + background-color: var(--f7-page-bg-color); + z-index: 1; +} +.page.stacked { + display: none; +} +.page-with-navbar-large-collapsed { + --f7-navbar-large-collapse-progress: 1; +} +.page-previous { + pointer-events: none; +} +.page-content { + overflow: auto; + -webkit-overflow-scrolling: touch; + box-sizing: border-box; + height: 100%; + position: relative; + z-index: 1; + padding-top: calc(var(--f7-page-navbar-offset, 0px) + var(--f7-page-toolbar-top-offset, 0px) + var(--f7-page-subnavbar-offset, 0px) + var(--f7-page-searchbar-offset, 0px) + var(--f7-page-content-extra-padding-top, 0px)); + padding-bottom: calc(var(--f7-page-toolbar-bottom-offset, 0px) + var(--f7-safe-area-bottom) + var(--f7-page-content-extra-padding-bottom, 0px)); +} +.page-transitioning, +.page-transitioning .page-shadow-effect, +.page-transitioning .page-opacity-effect { + transition-duration: var(--f7-page-transition-duration); +} +.page-transitioning-swipeback, +.page-transitioning-swipeback .page-shadow-effect, +.page-transitioning-swipeback .page-opacity-effect { + transition-duration: var(--f7-page-swipeback-transition-duration); +} +.router-transition-forward .page-next, +.router-transition-backward .page-next, +.router-transition-forward .page-current, +.router-transition-backward .page-current, +.router-transition-forward .page-previous:not(.stacked), +.router-transition-backward .page-previous:not(.stacked) { + pointer-events: none; +} +.page-shadow-effect { + position: absolute; + top: 0; + width: 16px; + bottom: 0; + z-index: -1; + content: ''; + opacity: 0; + left: 100%; + background: linear-gradient(to left, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 10%, rgba(0, 0, 0, 0.01) 50%, rgba(0, 0, 0, 0.2) 100%); +} +.page-opacity-effect { + position: absolute; + left: 0; + top: 0; + background: rgba(0, 0, 0, 0.1); + width: 100%; + bottom: 0; + content: ''; + opacity: 0; + z-index: 10000; +} +.ios .page-previous { + transform: translate3d(20%, 0, 0); +} +.ios .page-next { + transform: translate3d(-100%, 0, 0); +} +.ios .page-previous .page-opacity-effect { + opacity: 1; +} +.ios .page-previous:after { + opacity: 1; +} +.ios .page-current .page-shadow-effect { + opacity: 1; +} +.ios .router-transition-forward .page-next { + animation: ios-page-next-to-current var(--f7-page-transition-duration) forwards; +} +.ios .router-transition-forward .page-next:before { + position: absolute; + top: 0; + width: 16px; + bottom: 0; + z-index: -1; + content: ''; + opacity: 0; + left: 100%; + background: linear-gradient(to left, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 10%, rgba(0, 0, 0, 0.01) 50%, rgba(0, 0, 0, 0.2) 100%); + animation: ios-page-element-fade-in var(--f7-page-transition-duration) forwards; +} +.ios .router-transition-forward .page-current { + animation: ios-page-current-to-previous var(--f7-page-transition-duration) forwards; +} +.ios .router-transition-forward .page-current:after { + position: absolute; + left: 0; + top: 0; + background: rgba(0, 0, 0, 0.1); + width: 100%; + bottom: 0; + content: ''; + opacity: 0; + z-index: 10000; + animation: ios-page-element-fade-in var(--f7-page-transition-duration) forwards; +} +.ios .router-transition-backward .page-previous { + animation: ios-page-previous-to-current var(--f7-page-transition-duration) forwards; +} +.ios .router-transition-backward .page-previous:after { + position: absolute; + left: 0; + top: 0; + background: rgba(0, 0, 0, 0.1); + width: 100%; + bottom: 0; + content: ''; + opacity: 0; + z-index: 10000; + animation: ios-page-element-fade-out var(--f7-page-transition-duration) forwards; +} +.ios .router-transition-backward .page-current { + animation: ios-page-current-to-next var(--f7-page-transition-duration) forwards; +} +.ios .router-transition-backward .page-current:before { + position: absolute; + top: 0; + width: 16px; + bottom: 0; + z-index: -1; + content: ''; + opacity: 0; + left: 100%; + background: linear-gradient(to left, rgba(0, 0, 0, 0) 0%, rgba(0, 0, 0, 0) 10%, rgba(0, 0, 0, 0.01) 50%, rgba(0, 0, 0, 0.2) 100%); + animation: ios-page-element-fade-out var(--f7-page-transition-duration) forwards; +} +@keyframes ios-page-next-to-current { + from { + transform: translate3d(-100%, 0, 0); + } + to { + transform: translate3d(0%, 0, 0); + } +} +@keyframes ios-page-previous-to-current { + from { + transform: translate3d(20%, 0, 0); + } + to { + transform: translate3d(0%, 0, 0); + } +} +@keyframes ios-page-current-to-previous { + from { + transform: translate3d(0, 0, 0); + } + to { + transform: translate3d(20%, 0, 0); + } +} +@keyframes ios-page-current-to-next { + from { + transform: translate3d(0, 0, 0); + } + to { + transform: translate3d(-100%, 0, 0); + } +} +@keyframes ios-page-element-fade-in { + from { + opacity: 0; + } + to { + opacity: 1; + } +} +@keyframes ios-page-element-fade-out { + from { + opacity: 1; + } + to { + opacity: 0; + } +} +.md .page-next { + transform: translate3d(0, 56px, 0); + opacity: 0; + pointer-events: none; +} +.md .page-next.page-next-on-right { + transform: translate3d(-100%, 0, 0); +} +.md .router-transition-forward .page-next { + animation: md-page-next-to-current var(--f7-page-transition-duration) forwards; +} +.md .router-transition-forward .page-current { + animation: none; +} +.md .router-transition-backward .page-current { + animation: md-page-current-to-next var(--f7-page-transition-duration) forwards; +} +.md .router-transition-backward .page-previous { + animation: none; +} +@keyframes md-page-next-to-current { + from { + transform: translate3d(0, 56px, 0); + opacity: 0; + } + to { + transform: translate3d(0, 0px, 0); + opacity: 1; + } +} +@keyframes md-page-current-to-next { + from { + transform: translate3d(0, 0, 0); + opacity: 1; + } + to { + transform: translate3d(0, 56px, 0); + opacity: 0; + } +} +.aurora .page-next { + pointer-events: none; + transform: translate3d(-100%, 0px, 0); +} +.aurora .page-next.page-next-on-right { + transform: translate3d(-100%, 0, 0); +} +.aurora .page-previous .page-opacity-effect { + opacity: 1; +} +.aurora .page-previous:after { + opacity: 1; +} +.aurora .router-transition-forward .page-next { + animation: aurora-page-next-to-current var(--f7-page-transition-duration) forwards; +} +.aurora .router-transition-forward .page-current { + animation: none; +} +.aurora .router-transition-forward .page-current:after { + position: absolute; + left: 0; + top: 0; + background: rgba(0, 0, 0, 0.1); + width: 100%; + bottom: 0; + content: ''; + opacity: 0; + z-index: 10000; + animation: aurora-page-element-fade-in var(--f7-page-transition-duration) forwards; +} +.aurora .router-transition-backward .page-current { + animation: aurora-page-current-to-next var(--f7-page-transition-duration) forwards; +} +.aurora .router-transition-backward .page-previous { + animation: none; +} +.aurora .router-transition-backward .page-previous:after { + position: absolute; + left: 0; + top: 0; + background: rgba(0, 0, 0, 0.1); + width: 100%; + bottom: 0; + content: ''; + opacity: 0; + z-index: 10000; + animation: aurora-page-element-fade-out var(--f7-page-transition-duration) forwards; +} +@keyframes aurora-page-next-to-current { + from { + transform: translate3d(-100%, 0, 0); + } + to { + transform: translate3d(0, 0px, 0); + } +} +@keyframes aurora-page-current-to-next { + from { + transform: translate3d(0, 0, 0); + } + to { + transform: translate3d(-100%, 0, 0); + } +} +@keyframes aurora-page-element-fade-in { + from { + opacity: 0; + } + to { + opacity: 1; + } +} +@keyframes aurora-page-element-fade-out { + from { + opacity: 1; + } + to { + opacity: 0; + } +} +.view:not(.view-master-detail) .page-master-stacked { + display: none; +} +.view:not(.view-master-detail) .navbar-master-stacked { + display: none; +} +.view-master-detail .page-master, +.view-master-detail .navbar-master { + width: var(--f7-page-master-width); + left: auto; + right: 0; + --f7-safe-area-left: 0px; + --f7-safe-area-outer-left: 0px; + border-left: var(--f7-page-master-border-width) solid var(--f7-page-master-border-color); +} +.view-master-detail .page-master-detail, +.view-master-detail .navbar-master-detail { + width: calc(100% - var(--f7-page-master-width)); + --f7-safe-area-right: 0px; + --f7-safe-area-outer-right: 0px; + right: var(--f7-page-master-width); +} +.view-master-detail .page-master { + z-index: 2; + transform: none; + pointer-events: auto; +} +.view-master-detail .page-master:before, +.view-master-detail .page-master:after { + display: none; +} +.view-master-detail.router-transition .page-master { + animation: none; +} +.md .router-transition-custom .page-previous, +.ios .router-transition-custom .page-previous, +.aurora .router-transition-custom .page-previous, +.md .router-transition-custom .page-next, +.ios .router-transition-custom .page-next, +.aurora .router-transition-custom .page-next { + opacity: 1; + transform: none; +} +.router-transition-f7-circle-forward:after, +.router-transition-f7-circle-backward:after { + content: ''; + position: absolute; + left: 50%; + top: 50%; + width: 100vmax; + height: 100vmax; + margin-left: -50vmax; + margin-top: -50vmax; + background: var(--f7-page-bg-color); + z-index: 100; +} +.router-transition-f7-circle-forward:after { + transform: scale(0); + border-radius: 50%; + animation: f7-circle-circle-in 400ms forwards; +} +.router-transition-f7-circle-forward .page-next { + opacity: 0 !important; + transform: scale(0.9) !important; + animation: f7-circle-next-to-current 300ms forwards; + animation-delay: 300ms; + z-index: 150; +} +.router-transition-f7-circle-backward:after { + animation: f7-circle-circle-out 300ms forwards; + animation-delay: 350ms; +} +.router-transition-f7-circle-backward .page-current { + animation: f7-circle-current-to-next 700ms forwards; + z-index: 150; +} +@keyframes f7-circle-circle-in { + from { + transform: scale(0); + border-radius: 50%; + } + 50% { + border-radius: 50%; + } + to { + transform: scale(1); + border-radius: 0%; + } +} +@keyframes f7-circle-circle-out { + from { + transform: scale(1); + border-radius: 0%; + } + 50% { + border-radius: 50%; + } + to { + transform: scale(0); + border-radius: 50%; + } +} +@keyframes f7-circle-next-to-current { + from { + transform: scale(0.9); + opacity: 0; + } + 40% { + transform: scale(1.035); + opacity: 1; + } + to { + transform: scale(1); + opacity: 1; + } +} +@keyframes f7-circle-current-to-next { + from { + transform: scale(1); + opacity: 1; + } + 34% { + transform: scale(1.035); + opacity: 1; + } + 57% { + transform: scale(0.9); + opacity: 0; + } + to { + transform: scale(0.9); + opacity: 0; + } +} +.router-transition-f7-cover-v-forward, +.router-transition-f7-cover-v-backward { + background: #000; + perspective: 1200px; +} +.router-transition-f7-cover-v-forward .page-next { + animation: f7-cover-v-next-to-current var(--f7-page-cover-transition-duration) forwards; +} +.router-transition-f7-cover-v-forward .page-current { + animation: f7-cover-v-current-to-prev var(--f7-page-cover-transition-duration) forwards; +} +.router-transition-f7-cover-v-backward .page-current { + animation: f7-cover-v-current-to-next var(--f7-page-cover-transition-duration) forwards; +} +.router-transition-f7-cover-v-backward .page-previous { + animation: f7-cover-v-prev-to-current var(--f7-page-cover-transition-duration) forwards; +} +@keyframes f7-cover-v-next-to-current { + from { + transform: translateY(100%); + } + to { + transform: translateY(0%); + } +} +@keyframes f7-cover-v-current-to-next { + from { + transform: translateY(0%); + } + to { + transform: translateY(100%); + } +} +@keyframes f7-cover-v-current-to-prev { + from { + transform: translateZ(0); + opacity: 1; + } + to { + transform: translateZ(-300px); + opacity: 0.5; + } +} +@keyframes f7-cover-v-prev-to-current { + from { + transform: translateZ(-300px); + opacity: 0.5; + } + to { + transform: translateZ(0); + opacity: 1; + } +} +.router-transition-f7-cover-forward, +.router-transition-f7-cover-backward { + background: #000; + perspective: 1200px; +} +.router-transition-f7-cover-forward .page-next { + animation: f7-cover-next-to-current var(--f7-page-cover-transition-duration) forwards; +} +.router-transition-f7-cover-forward .page-current { + animation: f7-cover-current-to-prev var(--f7-page-cover-transition-duration) forwards; +} +.router-transition-f7-cover-backward .page-current { + animation: f7-cover-current-to-next var(--f7-page-cover-transition-duration) forwards; +} +.router-transition-f7-cover-backward .page-previous { + animation: f7-cover-prev-to-current var(--f7-page-cover-transition-duration) forwards; +} +@keyframes f7-cover-next-to-current { + from { + transform: translateX(-100%); + } + to { + transform: translateX(0%); + } +} +@keyframes f7-cover-current-to-next { + from { + transform: translateX(0%); + } + to { + transform: translateX(-100%); + } +} +@keyframes f7-cover-current-to-prev { + from { + transform: translateZ(0); + opacity: 1; + } + to { + transform: translateZ(-300px); + opacity: 0.5; + } +} +@keyframes f7-cover-prev-to-current { + from { + transform: translateZ(-300px); + opacity: 0.5; + } + to { + transform: translateZ(0); + opacity: 1; + } +} +.router-transition-f7-dive-forward, +.router-transition-f7-dive-backward { + background: var(--f7-page-bg-color); + perspective: 1200px; +} +.router-transition-f7-dive-forward .page-next { + animation: f7-dive-next-to-current var(--f7-page-dive-transition-duration) forwards; +} +.router-transition-f7-dive-forward .page-current { + animation: f7-dive-current-to-prev var(--f7-page-dive-transition-duration) forwards; +} +.router-transition-f7-dive-backward .page-current { + animation: f7-dive-current-to-next var(--f7-page-dive-transition-duration) forwards; +} +.router-transition-f7-dive-backward .page-previous { + animation: f7-dive-prev-to-current var(--f7-page-dive-transition-duration) forwards; +} +@keyframes f7-dive-next-to-current { + from { + opacity: 0; + transform: translateZ(-150px); + } + 50% { + opacity: 0; + } + to { + opacity: 1; + transform: translateZ(0px); + } +} +@keyframes f7-dive-current-to-next { + from { + opacity: 1; + transform: translateZ(0px); + } + 50% { + opacity: 0; + } + to { + opacity: 0; + transform: translateZ(-150px); + } +} +@keyframes f7-dive-current-to-prev { + from { + transform: translateZ(0px); + opacity: 1; + } + 50% { + opacity: 0; + } + to { + opacity: 0; + transform: translateZ(150px); + } +} +@keyframes f7-dive-prev-to-current { + from { + opacity: 0; + transform: translateZ(150px); + } + 50% { + opacity: 0; + } + to { + opacity: 1; + transform: translateZ(0px); + } +} +.router-transition-f7-fade-forward, +.router-transition-f7-fade-backward { + background: var(--f7-page-bg-color); +} +.router-transition-f7-fade-forward .page-next { + opacity: 0 !important; + animation: f7-fade-in var(--f7-page-fade-transition-duration) forwards; +} +.router-transition-f7-fade-forward .page-current { + animation: f7-fade-out var(--f7-page-fade-transition-duration) forwards; +} +.router-transition-f7-fade-backward .page-current { + animation: f7-fade-out var(--f7-page-fade-transition-duration) forwards; +} +.router-transition-f7-fade-backward .page-previous { + animation: f7-fade-in var(--f7-page-fade-transition-duration) forwards; +} +@keyframes f7-fade-in { + from { + opacity: 0; + } + 50% { + opacity: 0; + } + to { + opacity: 1; + } +} +@keyframes f7-fade-out { + from { + opacity: 1; + } + 50% { + opacity: 0; + } + to { + opacity: 0; + } +} +.router-transition-f7-flip-forward, +.router-transition-f7-flip-backward { + background: #000; + perspective: 1200px; +} +.router-transition-f7-flip-forward .page, +.router-transition-f7-flip-backward .page { + -webkit-backface-visibility: hidden; + backface-visibility: hidden; +} +.router-transition-f7-flip-forward .page-next { + animation: f7-flip-next-to-current var(--f7-page-flip-transition-duration) forwards; +} +.router-transition-f7-flip-forward .page-current { + animation: f7-flip-current-to-prev var(--f7-page-flip-transition-duration) forwards; +} +.router-transition-f7-flip-backward .page-current { + animation: f7-flip-current-to-next var(--f7-page-flip-transition-duration) forwards; +} +.router-transition-f7-flip-backward .page-previous { + animation: f7-flip-prev-to-current var(--f7-page-flip-transition-duration) forwards; +} +@keyframes f7-flip-next-to-current { + from { + border-radius: 30px; + transform: translateZ(-100vmax) rotateY(-180deg); + } + to { + border-radius: 0; + transform: translateZ(0px) rotateY(0deg); + } +} +@keyframes f7-flip-current-to-next { + from { + border-radius: 0px; + transform: translateZ(0px) rotateY(0deg); + } + to { + border-radius: 30px; + transform: translateZ(-100vmax) rotateY(-180deg); + } +} +@keyframes f7-flip-current-to-prev { + from { + border-radius: 0px; + transform: translateZ(0px) rotateY(0deg); + } + to { + border-radius: 30px; + transform: translateZ(-100vmax) rotateY(180deg); + } +} +@keyframes f7-flip-prev-to-current { + from { + border-radius: 30px; + transform: translateZ(-100vmax) rotateY(180deg); + } + to { + border-radius: 0px; + transform: translateZ(0px) rotateY(0deg); + } +} +.router-transition-f7-parallax-forward .page-next { + animation: f7-parallax-next-to-current var(--f7-page-parallax-transition-duration) forwards; +} +.router-transition-f7-parallax-forward .page-current { + animation: f7-parallax-current-to-prev var(--f7-page-parallax-transition-duration) forwards; +} +.router-transition-f7-parallax-backward .page-current { + animation: f7-parallax-current-to-next var(--f7-page-parallax-transition-duration) forwards; +} +.router-transition-f7-parallax-backward .page-previous { + animation: f7-parallax-prev-to-current var(--f7-page-parallax-transition-duration) forwards; +} +@keyframes f7-parallax-next-to-current { + from { + transform: translateX(-100%); + } + to { + transform: translateX(0%); + } +} +@keyframes f7-parallax-current-to-next { + from { + transform: translateX(0%); + } + to { + transform: translateX(-100%); + } +} +@keyframes f7-parallax-current-to-prev { + from { + transform: translateX(0%); + } + to { + transform: translateX(20%); + } +} +@keyframes f7-parallax-prev-to-current { + from { + transform: translateX(20%); + } + to { + transform: translateX(0%); + } +} +.router-transition-f7-push-forward .page-next { + animation: f7-push-next-to-current var(--f7-page-push-transition-duration) forwards; +} +.router-transition-f7-push-forward .page-current { + animation: f7-push-current-to-prev var(--f7-page-push-transition-duration) forwards; +} +.router-transition-f7-push-backward .page-current { + animation: f7-push-current-to-next var(--f7-page-push-transition-duration) forwards; +} +.router-transition-f7-push-backward .page-previous { + animation: f7-push-prev-to-current var(--f7-page-push-transition-duration) forwards; +} +@keyframes f7-push-next-to-current { + from { + transform: translateX(-100%); + } + to { + transform: translateX(0%); + } +} +@keyframes f7-push-current-to-next { + from { + transform: translateX(0%); + } + to { + transform: translateX(-100%); + } +} +@keyframes f7-push-current-to-prev { + from { + transform: translateX(0%); + } + to { + transform: translateX(100%); + } +} +@keyframes f7-push-prev-to-current { + from { + transform: translateX(100%); + } + to { + transform: translateX(0%); + } +} +/* === Link === */ +:root { + --f7-link-highlight-black: rgba(0, 0, 0, 0.1); + --f7-link-highlight-white: rgba(255, 255, 255, 0.15); + --f7-link-highlight-color: var(--f7-link-highlight-black); +} +.theme-dark { + --f7-link-highlight-color: var(--f7-link-highlight-white); +} +.link, +.tab-link { + display: inline-flex; + align-items: center; + align-content: center; + justify-content: center; + position: relative; + box-sizing: border-box; + z-index: 1; +} +.link i + span, +.link i + i, +.link span + i, +.link span + span { + margin-right: 4px; +} +.ios .link { + transition: opacity 300ms; +} +.ios .link.active-state { + opacity: 0.3; + transition-duration: 0ms; +} +.aurora .link { + transition: opacity 300ms; +} +.aurora .link.active-state { + opacity: 0.3; + transition-duration: 0ms; +} +/* === Navbar === */ +:root { + /* + --f7-navbar-bg-color: var(--f7-bars-bg-color); + --f7-navbar-bg-color-rgb: var(--f7-bars-bg-color-rgb); + --f7-navbar-bg-image: var(--f7-bars-bg-image); + --f7-navbar-border-color: var(--f7-bars-border-color); + --f7-navbar-link-color: var(--f7-bars-link-color); + --f7-navbar-text-color: var(--f7-bars-text-color); + */ + --f7-navbar-hide-show-transition-duration: 400ms; + --f7-navbar-title-line-height: 1.2; + --f7-navbar-title-font-size: inherit; + --f7-navbar-subtitle-text-align: inherit; + --f7-navbar-large-title-line-height: 1.2; + --f7-navbar-large-title-text-color: inherit; + --f7-navbar-large-title-padding-left: 16px; + --f7-navbar-large-title-padding-right: 16px; +} +.ios { + --f7-navbar-height: 44px; + --f7-navbar-tablet-height: 44px; + --f7-navbar-font-size: 17px; + --f7-navbar-inner-padding-left: 8px; + --f7-navbar-inner-padding-right: 8px; + --f7-navbar-title-font-weight: 600; + --f7-navbar-title-margin-left: 0; + --f7-navbar-title-margin-right: 0; + --f7-navbar-title-text-align: center; + --f7-navbar-subtitle-font-size: 10px; + --f7-navbar-subtitle-line-height: 1; + --f7-navbar-shadow-image: none; + --f7-navbar-large-title-height: 52px; + --f7-navbar-large-title-font-size: 34px; + --f7-navbar-large-title-font-weight: 700; + --f7-navbar-large-title-letter-spacing: -0.03em; + --f7-navbar-large-title-padding-vertical: 6px; + /* + --f7-navbar-link-height: var(--f7-navbar-height); + --f7-navbar-link-line-height: var(--f7-navbar-height); + */ + --f7-navbar-subtitle-text-color: rgba(0, 0, 0, 0.55); +} +.ios .theme-dark, +.ios.theme-dark { + --f7-navbar-subtitle-text-color: rgba(255, 255, 255, 0.55); +} +.md { + --f7-navbar-height: 56px; + --f7-navbar-tablet-height: 64px; + --f7-navbar-font-size: 20px; + --f7-navbar-inner-padding-left: 0px; + --f7-navbar-inner-padding-right: 0px; + --f7-navbar-title-font-weight: 500; + --f7-navbar-title-margin-left: 16px; + --f7-navbar-title-margin-right: 16px; + --f7-navbar-title-text-align: left; + --f7-navbar-subtitle-font-size: 14px; + --f7-navbar-subtitle-line-height: 1.2; + --f7-navbar-shadow-image: var(--f7-bars-shadow-bottom-image); + --f7-navbar-large-title-font-size: 34px; + --f7-navbar-large-title-height: 56px; + --f7-navbar-large-title-font-weight: 500; + --f7-navbar-large-title-letter-spacing: 0; + --f7-navbar-large-title-padding-vertical: 8px; + /* + --f7-navbar-link-height: var(--f7-navbar-height); + --f7-navbar-link-line-height: var(--f7-navbar-height); + */ + --f7-navbar-subtitle-text-color: rgba(0, 0, 0, 0.85); +} +.md .theme-dark, +.md.theme-dark { + --f7-navbar-subtitle-text-color: rgba(255, 255, 255, 0.85); +} +.aurora { + --f7-navbar-height: 38px; + --f7-navbar-tablet-height: 38px; + --f7-navbar-font-size: 14px; + --f7-navbar-inner-padding-left: 16px; + --f7-navbar-inner-padding-right: 16px; + --f7-navbar-title-font-weight: 600; + --f7-navbar-title-margin-left: 0; + --f7-navbar-title-margin-right: 0; + --f7-navbar-title-text-align: center; + --f7-navbar-subtitle-font-size: 12px; + --f7-navbar-subtitle-line-height: 1; + --f7-navbar-shadow-image: none; + --f7-navbar-large-title-height: 38px; + --f7-navbar-large-title-font-size: 26px; + --f7-navbar-large-title-font-weight: bold; + --f7-navbar-large-title-letter-spacing: -0.03em; + --f7-navbar-large-title-padding-vertical: 4px; + --f7-navbar-link-height: auto; + --f7-navbar-link-line-height: inherit; + --f7-navbar-subtitle-text-color: rgba(0, 0, 0, 0.6); +} +.aurora .theme-dark, +.aurora.theme-dark { + --f7-navbar-subtitle-text-color: rgba(255, 255, 255, 0.5); +} +.navbars, +.navbar { + z-index: 500; + left: 0; + top: 0; + width: 100%; +} +.navbars { + position: absolute; +} +.navbars .navbar { + z-index: auto; +} +.navbar { + --f7-navbar-large-collapse-progress: 0; + position: relative; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + box-sizing: border-box; + margin: 0; + height: calc(var(--f7-navbar-height) + var(--f7-safe-area-top)); + color: var(--f7-navbar-text-color, var(--f7-bars-text-color)); + font-size: var(--f7-navbar-font-size); +} +.navbar.stacked { + display: none; +} +.navbar b { + font-weight: 500; +} +.navbar a { + color: var(--f7-navbar-link-color, var(--f7-bars-link-color, var(--f7-theme-color))); +} +.navbar a.link { + display: flex; + justify-content: flex-start; + line-height: var(--f7-navbar-link-line-height, var(--f7-navbar-height)); + height: var(--f7-navbar-link-height, var(--f7-navbar-height)); +} +.navbar .title, +.navbar .left, +.navbar .right { + position: relative; + z-index: 10; +} +.navbar .title { + position: relative; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; + flex-shrink: 10; + font-weight: var(--f7-navbar-title-font-weight); + display: inline-block; + line-height: var(--f7-navbar-title-line-height); + text-align: var(--f7-navbar-title-text-align); + font-size: var(--f7-navbar-title-font-size); + margin-right: var(--f7-navbar-title-margin-left); + margin-left: var(--f7-navbar-title-margin-left); +} +.navbar .subtitle { + display: block; + color: var(--f7-navbar-subtitle-text-color); + font-weight: normal; + font-size: var(--f7-navbar-subtitle-font-size); + line-height: var(--f7-navbar-subtitle-line-height); + text-align: var(--f7-navbar-subtitle-text-align); +} +.navbar .left, +.navbar .right { + flex-shrink: 0; + display: flex; + justify-content: flex-start; + align-items: center; +} +.navbar .right:first-child { + position: absolute; + height: 100%; +} +.navbar.no-hairline .navbar-bg:after, +.navbar.no-border .navbar-bg:after, +.navbar .no-hairline .navbar-bg:after, +.navbar .no-border .navbar-bg:after { + display: none !important; +} +.navbar.no-hairline .title-large:after, +.navbar.no-border .title-large:after, +.navbar .no-hairline .title-large:after, +.navbar .no-border .title-large:after { + display: none !important; +} +.navbar.no-shadow .navbar-bg:before, +.navbar .no-shadow .navbar-bg:before { + display: none !important; +} +.navbar.navbar-hidden .navbar-bg:before, +.navbar-hidden .navbar .navbar-bg:before { + opacity: 0 !important; +} +.navbar-bg { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + pointer-events: none; + z-index: 0; + background: var(--f7-navbar-bg-color); + background-image: var(--f7-navbar-bg-image, var(--f7-bars-bg-image)); + background-color: var(--f7-navbar-bg-color, var(--f7-bars-bg-color)); + transition-property: transform; +} +@supports ((-webkit-backdrop-filter: blur(20px)) or (backdrop-filter: blur(20px))) { + .ios-translucent-bars .navbar-bg { + background-color: rgba(var(--f7-navbar-bg-color-rgb, var(--f7-bars-bg-color-rgb)), var(--f7-bars-translucent-opacity)); + -webkit-backdrop-filter: saturate(180%) blur(var(--f7-bars-translucent-blur)); + backdrop-filter: saturate(180%) blur(var(--f7-bars-translucent-blur)); + } +} +.navbar-bg:after, +.navbar-bg:before { + -webkit-backface-visibility: hidden; + backface-visibility: hidden; +} +.navbar-bg:after { + content: ''; + position: absolute; + background-color: var(--f7-navbar-border-color, var(--f7-bars-border-color)); + display: block; + z-index: 15; + top: auto; + right: auto; + bottom: 0; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 100%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +.navbar-bg:before { + content: ''; + position: absolute; + right: 0; + width: 100%; + top: 100%; + bottom: auto; + height: 8px; + pointer-events: none; + background: var(--f7-navbar-shadow-image); +} +.navbar-bg:after { + z-index: 1; +} +@media (min-width: 768px) and (min-height: 600px) { + :root { + --f7-navbar-height: var(--f7-navbar-tablet-height); + } +} +.navbar-transitioning, +.navbar-transitioning .left, +.navbar-transitioning .title, +.navbar-transitioning .right, +.navbar-transitioning .title-large-text, +.navbar-transitioning .navbar-bg, +.navbar-transitioning .subnavbar, +.navbar-transitioning .navbar-bg:before { + transition-duration: var(--f7-navbar-hide-show-transition-duration); +} +.navbar-page-transitioning { + transition-duration: var(--f7-page-swipeback-transition-duration) !important; +} +.navbar-page-transitioning .title-large-text, +.navbar-page-transitioning .navbar-bg { + transition-duration: var(--f7-page-swipeback-transition-duration) !important; +} +.navbar-hidden { + transform: translate3d(0, calc(-1 * var(--f7-navbar-height)), 0); +} +.navbar-hidden .navbar-inner { + pointer-events: none; +} +.navbar-hidden .navbar-inner > .left, +.navbar-hidden .navbar-inner > .title, +.navbar-hidden .navbar-inner > .right { + opacity: 0 !important; +} +.navbar-hidden .subnavbar { + pointer-events: auto; +} +.navbar-hidden-statusbar { + transform: translate3d(0, calc(-1 * var(--f7-navbar-height) - var(--f7-safe-area-top)), 0); +} +.navbar-large-hidden .navbar-large { + --f7-navbar-large-collapse-progress: 1; +} +.navbar-inner { + position: absolute; + left: 0; + bottom: 0; + width: 100%; + height: 100%; + display: flex; + align-items: center; + box-sizing: border-box; + padding: var(--f7-safe-area-top) calc(var(--f7-navbar-inner-padding-right) + var(--f7-safe-area-right)) 0 calc(var(--f7-navbar-inner-padding-left) + var(--f7-safe-area-left)); + transform: translate3d(0, 0, 0); + z-index: 10; +} +.views > .navbar, +.view > .navbar, +.page > .navbar, +.navbars > .navbar { + position: absolute; +} +.navbar-transparent:not(.navbar-large):not(.navbar-transparent-visible):not(.with-searchbar-expandable-enabled) .navbar-bg, +.navbar-transparent:not(.navbar-large):not(.navbar-transparent-visible):not(.with-searchbar-expandable-enabled) .title { + opacity: 0; +} +.navbar-large .navbar-bg { + height: calc(100% + var(--f7-navbar-large-title-height)); + transform: translate3d(0px, calc(-1 * var(--f7-navbar-large-collapse-progress) * var(--f7-navbar-large-title-height)), 0); +} +.navbar-large-transparent .navbar-bg, +.navbar-large.navbar-transparent .navbar-bg { + opacity: var(--f7-navbar-large-collapse-progress); + height: 100%; + transform: none; +} +.ios .router-navbar-transition-to-large .navbar-bg, +.ios .router-navbar-transition-from-large .navbar-bg, +.navbar-bg.ios-swipeback-navbar-bg-large, +.navbar-large-transparent .navbar-bg.ios-swipeback-navbar-bg-large, +.navbar-large.navbar-transparent .navbar-bg.ios-swipeback-navbar-bg-large { + height: calc(100% + var(--f7-navbar-large-title-height)); + transform: translate3d(0px, calc(-1 * var(--f7-navbar-large-collapse-progress) * var(--f7-navbar-large-title-height)), 0); +} +.ios .navbar:not(.navbar-large) .navbar-bg { + --f7-navbar-large-collapse-progress: 1; +} +.navbar-large .title { + opacity: var(--f7-navbar-large-collapse-progress); +} +.navbar-large-collapsed { + --f7-navbar-large-collapse-progress: 1; +} +.navbar-large-collapsed .title-large { + pointer-events: none; +} +.navbar .title-large { + box-sizing: border-box; + position: absolute; + left: 0; + right: 0; + top: 100%; + display: flex; + align-items: flex-end; + white-space: nowrap; + overflow: hidden; + height: var(--f7-navbar-large-title-height); + z-index: 5; +} +.navbar .title-large-text { + text-overflow: ellipsis; + white-space: nowrap; + color: var(--f7-navbar-large-title-text-color); + letter-spacing: var(--f7-navbar-large-title-letter-spacing); + font-size: var(--f7-navbar-large-title-font-size); + font-weight: var(--f7-navbar-large-title-font-weight); + line-height: var(--f7-navbar-large-title-line-height); + padding-left: calc(var(--f7-navbar-large-title-padding-left) + var(--f7-safe-area-left)); + padding-right: calc(var(--f7-navbar-large-title-padding-right) + var(--f7-safe-area-right)); + padding-top: var(--f7-navbar-large-title-padding-vertical); + padding-bottom: var(--f7-navbar-large-title-padding-vertical); + box-sizing: border-box; + overflow: hidden; + width: 100%; + transform: translate3d(0px, calc(-1 * var(--f7-navbar-large-collapse-progress) * var(--f7-navbar-large-title-height)), 0); + transform-origin: calc(100% - var(--f7-navbar-large-title-padding-left) - var(--f7-safe-area-left)) center; +} +.navbar-no-title-large-transition .title-large-text { + transition-duration: 0ms; +} +.navbar ~ *, +.navbars ~ * { + --f7-page-navbar-offset: calc(var(--f7-navbar-height) + var(--f7-safe-area-top)); +} +.navbar ~ * .page-with-navbar-large, +.navbar ~ .page-with-navbar-large, +.navbars ~ * .page-with-navbar-large, +.navbars ~ .page-with-navbar-large, +.page-with-navbar-large .navbar ~ * { + --f7-page-navbar-offset: calc(var(--f7-navbar-height) + var(--f7-navbar-large-title-height) + var(--f7-safe-area-top)); +} +.page.no-navbar, +.page.no-navbar .navbar ~ * { + --f7-page-navbar-offset: var(--f7-safe-area-top); +} +.ios { + --f7-navbarLeftTextOffset: calc(4px + 12px + var(--f7-navbar-inner-padding-left)); + --f7-navbarTitleLargeOffset: var(--f7-navbar-large-title-padding-left); + --f7-navbar-large-transparent-bg-center: translateX(0); + --f7-navbar-large-bg-center-top: translateX(0) translateY(calc(-1 * var(--f7-navbar-large-title-height))); + --f7-navbar-large-bg-center-bottom: translateX(0) translateY(0); + --f7-navbar-large-transparent-bg-left: translateX(100%); + --f7-navbar-large-bg-left-top: translateX(100%) translateY(calc(-1 * var(--f7-navbar-large-title-height))); + --f7-navbar-large-bg-left-bottom: translateX(100%) translateY(0); + --f7-navbar-large-bg-right-top: translateX(-100%) translateY(calc(-1 * var(--f7-navbar-large-title-height))); + --f7-navbar-large-bg-right-bottom: translateX(-100%) translateY(0); +} +.ios .navbar a.icon-only { + width: 44px; + margin: 0; + justify-content: center; +} +.ios .navbar .left a + a, +.ios .navbar .right a + a { + margin-right: 16px; +} +.ios .navbar b { + font-weight: 600; +} +.ios .navbar .left { + margin-left: 10px; +} +.ios .navbar .right { + margin-right: 10px; +} +.ios .navbar .right:first-child { + left: calc(8px + var(--f7-safe-area-left)); +} +.ios .navbar-inner { + justify-content: space-between; +} +.ios .navbar-inner-left-title { + justify-content: flex-start; +} +.ios .navbar-inner-left-title .right { + margin-right: auto; +} +.ios .navbar-inner-left-title .title { + text-align: left; + margin-left: 10px; +} +.ios .view-master-detail .navbar-previous:not(.navbar-master) .left, +.ios .view:not(.view-master-detail) .navbar-previous .left, +.ios .navbar-next .left, +.ios .view-master-detail .navbar-previous:not(.navbar-master) .title, +.ios .view:not(.view-master-detail) .navbar-previous .title, +.ios .navbar-next .title, +.ios .view-master-detail .navbar-previous:not(.navbar-master) .right, +.ios .view:not(.view-master-detail) .navbar-previous .right, +.ios .navbar-next .right, +.ios .view-master-detail .navbar-previous:not(.navbar-master) .subnavbar, +.ios .view:not(.view-master-detail) .navbar-previous .subnavbar, +.ios .navbar-next .subnavbar, +.ios .view-master-detail .navbar-previous:not(.navbar-master) .fading, +.ios .view:not(.view-master-detail) .navbar-previous .fading, +.ios .navbar-next .fading { + opacity: 0; +} +.ios .view-master-detail .navbar-previous:not(.navbar-master), +.ios .view:not(.view-master-detail) .navbar-previous { + pointer-events: none; +} +.ios .view-master-detail .navbar-previous:not(.navbar-master) .title-large, +.ios .view:not(.view-master-detail) .navbar-previous .title-large { + opacity: 0; + transition-duration: 0ms; +} +.ios .view-master-detail .navbar-previous:not(.navbar-master) .title-large .title-large-text, +.ios .view:not(.view-master-detail) .navbar-previous .title-large .title-large-text { + transform: scale(0.5); + transition-duration: 0ms; +} +.ios .view-master-detail .navbar-previous:not(.navbar-master) .subnavbar.sliding, +.ios .view:not(.view-master-detail) .navbar-previous .subnavbar.sliding, +.ios .view-master-detail .navbar-previous:not(.navbar-master) .sliding .subnavbar, +.ios .view:not(.view-master-detail) .navbar-previous .sliding .subnavbar { + opacity: 1; + transform: translate3d(100%, 0, 0); +} +.ios .view:not(.view-master-detail) .navbar-previous .navbar-bg, +.ios .view-master-detail .navbar-previous:not(.navbar-master) .navbar-bg { + transform: translateX(-100%); +} +.ios .navbar-next { + pointer-events: none; +} +.ios .navbar-next .navbar-bg { + transform: translateX(-100%); +} +.ios .navbar-next .title-large .title-large-text { + transition-duration: 0ms; + transform: translateX(-100%) translateY(calc(-1 * var(--f7-navbar-large-title-height))); +} +.ios .navbar-next .subnavbar.sliding, +.ios .navbar-next .sliding .subnavbar { + opacity: 1; + transform: translate3d(-100%, 0, 0); +} +.ios .router-transition .navbar, +.ios .router-transition .navbar-bg { + transition-duration: var(--f7-page-transition-duration); +} +.ios .router-transition .navbar-bg { + animation-duration: var(--f7-page-transition-duration); + animation-fill-mode: forwards; +} +.ios .router-transition .title-large, +.ios .router-transition .title-large-text { + transition-duration: 0ms; +} +.ios .router-transition .navbar-current .left, +.ios .router-transition .navbar-current .title, +.ios .router-transition .navbar-current .right, +.ios .router-transition .navbar-current .subnavbar { + animation: ios-navbar-element-fade-out var(--f7-page-transition-duration) forwards; +} +.ios .router-transition .navbar-current .sliding.left, +.ios .router-transition .navbar-current .sliding.left .icon + span, +.ios .router-transition .navbar-current .sliding.title, +.ios .router-transition .navbar-current .sliding.right, +.ios .router-transition .navbar-current .sliding .left, +.ios .router-transition .navbar-current .sliding .left .icon + span, +.ios .router-transition .navbar-current .sliding .title, +.ios .router-transition .navbar-current .sliding .right { + transition-duration: var(--f7-page-transition-duration); + opacity: 0 !important; + animation: none; +} +.ios .router-transition .navbar-current .sliding .subnavbar, +.ios .router-transition .navbar-current .sliding.subnavbar { + transition-duration: var(--f7-page-transition-duration); + animation: none; + opacity: 1; +} +.ios .router-transition-forward .navbar-next .left, +.ios .router-transition-backward .navbar-previous .left, +.ios .router-transition-forward .navbar-next .title, +.ios .router-transition-backward .navbar-previous .title, +.ios .router-transition-forward .navbar-next .right, +.ios .router-transition-backward .navbar-previous .right, +.ios .router-transition-forward .navbar-next .subnavbar, +.ios .router-transition-backward .navbar-previous .subnavbar { + animation: ios-navbar-element-fade-in var(--f7-page-transition-duration) forwards; +} +.ios .router-transition-forward .navbar-next .sliding.left, +.ios .router-transition-backward .navbar-previous .sliding.left, +.ios .router-transition-forward .navbar-next .sliding.left .icon + span, +.ios .router-transition-backward .navbar-previous .sliding.left .icon + span, +.ios .router-transition-forward .navbar-next .sliding.title, +.ios .router-transition-backward .navbar-previous .sliding.title, +.ios .router-transition-forward .navbar-next .sliding.right, +.ios .router-transition-backward .navbar-previous .sliding.right, +.ios .router-transition-forward .navbar-next .sliding .left, +.ios .router-transition-backward .navbar-previous .sliding .left, +.ios .router-transition-forward .navbar-next .sliding .left .icon + span, +.ios .router-transition-backward .navbar-previous .sliding .left .icon + span, +.ios .router-transition-forward .navbar-next .sliding .title, +.ios .router-transition-backward .navbar-previous .sliding .title, +.ios .router-transition-forward .navbar-next .sliding .right, +.ios .router-transition-backward .navbar-previous .sliding .right, +.ios .router-transition-forward .navbar-next .sliding .subnavbar, +.ios .router-transition-backward .navbar-previous .sliding .subnavbar { + transition-duration: var(--f7-page-transition-duration); + animation: none; + transform: translate3d(0, 0, 0) !important; + opacity: 1 !important; +} +.ios .router-transition-forward .navbar-next.navbar-transparent:not(.navbar-large):not(.navbar-transparent-visible) .title, +.ios .router-transition-backward .navbar-previous.navbar-transparent:not(.navbar-large):not(.navbar-transparent-visible) .title { + animation: none; +} +.ios .router-transition-forward .navbar-next.navbar-transparent:not(.navbar-large):not(.navbar-transparent-visible) .sliding.title, +.ios .router-transition-backward .navbar-previous.navbar-transparent:not(.navbar-large):not(.navbar-transparent-visible) .sliding.title, +.ios .router-transition-forward .navbar-next.navbar-transparent:not(.navbar-large):not(.navbar-transparent-visible) .sliding .title, +.ios .router-transition-backward .navbar-previous.navbar-transparent:not(.navbar-large):not(.navbar-transparent-visible) .sliding .title { + opacity: 0 !important; +} +.ios .router-transition-backward .navbar-previous.with-searchbar-expandable-enabled-no-transition .left, +.ios .router-transition-backward .navbar-previous.with-searchbar-expandable-enabled .left, +.ios .router-transition-backward .navbar-previous.with-searchbar-expandable-enabled-no-transition .title, +.ios .router-transition-backward .navbar-previous.with-searchbar-expandable-enabled .title, +.ios .router-transition-backward .navbar-previous.with-searchbar-expandable-enabled-no-transition .right, +.ios .router-transition-backward .navbar-previous.with-searchbar-expandable-enabled .right, +.ios .router-transition-backward .navbar-previous.with-searchbar-expandable-enabled-no-transition .subnavbar, +.ios .router-transition-backward .navbar-previous.with-searchbar-expandable-enabled .subnavbar { + animation: none; +} +.ios .router-transition-forward .navbar-current.router-navbar-transition-from-large.router-navbar-transition-to-large .title-large, +.ios .router-transition-forward .navbar-current.router-navbar-transition-from-large:not(.router-navbar-transition-to-large) .title-large { + overflow: visible; +} +.ios .router-transition-forward .navbar-current.router-navbar-transition-from-large.router-navbar-transition-to-large .title-large .title-large-text, +.ios .router-transition-forward .navbar-current.router-navbar-transition-from-large:not(.router-navbar-transition-to-large) .title-large .title-large-text { + animation: ios-navbar-large-title-text-slide-up var(--f7-page-transition-duration) forwards, ios-navbar-large-title-text-fade-out var(--f7-page-transition-duration) forwards; +} +.ios .router-transition-forward .navbar-next.router-navbar-transition-from-large .left .back span { + animation: ios-navbar-back-text-next-to-current var(--f7-page-transition-duration) forwards; + transition: none; + transform-origin: right center; +} +.ios .router-transition-forward .navbar-next.router-navbar-transition-from-large.router-navbar-transition-to-large .title-large { + overflow: visible; +} +.ios .router-transition-forward .navbar-next.router-navbar-transition-from-large.router-navbar-transition-to-large .title-large .title-large-text { + animation: ios-navbar-large-title-text-slide-left var(--f7-page-transition-duration) forwards; +} +.ios .router-transition-forward .navbar-next.router-navbar-transition-to-large:not(.router-navbar-transition-from-large) .title-large .title-large-text { + animation: ios-navbar-large-title-text-slide-left var(--f7-page-transition-duration) forwards; +} +.ios .router-transition-forward .navbar-next.navbar-large:not(.navbar-large-collapsed) .title, +.ios .router-transition-forward .navbar-current.navbar-large:not(.navbar-large-collapsed) .title { + animation: none; + opacity: 0 !important; + transition-duration: 0; +} +.ios .router-transition-backward .navbar-current.router-navbar-transition-to-large .left .back span { + animation: ios-navbar-back-text-current-to-previous var(--f7-page-transition-duration) forwards; + transition: none; + transform-origin: right center; +} +.ios .router-transition-backward .navbar-current.router-navbar-transition-from-large.router-navbar-transition-to-large .title-large { + overflow: visible; +} +.ios .router-transition-backward .navbar-current.router-navbar-transition-from-large.router-navbar-transition-to-large .title-large .title-large-text { + animation: ios-navbar-large-title-text-slide-right var(--f7-page-transition-duration) forwards; +} +.ios .router-transition-backward .navbar-current.router-navbar-transition-from-large:not(.router-navbar-transition-to-large) .title-large .title-large-text { + animation: ios-navbar-large-title-text-slide-right var(--f7-page-transition-duration) forwards; +} +.ios .router-transition-backward .navbar-current.router-navbar-transition-to-large:not(.router-navbar-transition-from-large) .title-large { + opacity: 0; +} +.ios .router-transition-backward .navbar-previous.router-navbar-transition-from-large.router-navbar-transition-to-large .title-large, +.ios .router-transition-backward .navbar-previous.router-navbar-transition-to-large:not(.router-navbar-transition-from-large) .title-large { + overflow: visible; + opacity: 1; +} +.ios .router-transition-backward .navbar-previous.router-navbar-transition-from-large.router-navbar-transition-to-large .title-large .title-large-text, +.ios .router-transition-backward .navbar-previous.router-navbar-transition-to-large:not(.router-navbar-transition-from-large) .title-large .title-large-text { + animation: ios-navbar-large-title-text-slide-down var(--f7-page-transition-duration) forwards, ios-navbar-large-title-text-fade-in var(--f7-page-transition-duration) forwards; +} +.ios .router-transition-backward .navbar-current.navbar-large:not(.navbar-large-collapsed) .title, +.ios .router-transition-backward .navbar-previous.navbar-large:not(.navbar-large-collapsed) .title { + animation: none; + opacity: 0 !important; + transition-duration: 0; +} +.ios .router-transition-forward .navbar-current .navbar-bg { + animation-name: ios-navbar-bg-from-cb-to-lb; +} +.ios .router-transition-forward .navbar-current.router-navbar-transition-from-large.router-navbar-transition-to-large .navbar-bg { + animation-name: ios-navbar-bg-from-cb-to-lb; +} +.ios .router-transition-forward .navbar-current.router-navbar-transition-from-large:not(.router-navbar-transition-to-large) .navbar-bg { + animation-name: ios-navbar-bg-from-cb-to-lt; +} +.ios .router-transition-forward .navbar-current:not(.router-navbar-transition-from-large).router-navbar-transition-to-large .navbar-bg { + animation-name: ios-navbar-bg-from-ct-to-lb; +} +.ios .router-transition-forward .navbar-current.navbar-large-collapsed:not(.router-navbar-transition-to-large) .navbar-bg { + animation-name: ios-navbar-bg-from-ct-to-lt; +} +.ios .router-transition-forward .navbar-current.navbar-large-collapsed.navbar-large-transparent:not(.router-navbar-transition-to-large) .navbar-bg, +.ios .router-transition-forward .navbar-current.navbar-large-collapsed.navbar-large.navbar-transparent:not(.router-navbar-transition-to-large) .navbar-bg { + animation-name: ios-navbar-transparent-bg-from-c-to-l; +} +.ios .router-transition-forward .navbar-next .navbar-bg { + animation-name: ios-navbar-bg-from-rb-to-cb; +} +.ios .router-transition-forward .navbar-next.router-navbar-transition-from-large.router-navbar-transition-to-large .navbar-bg { + animation-name: ios-navbar-bg-from-rb-to-cb; +} +.ios .router-transition-forward .navbar-next.router-navbar-transition-from-large:not(.router-navbar-transition-to-large) .navbar-bg { + animation-name: ios-navbar-bg-from-rb-to-ct; +} +.ios .router-transition-forward .navbar-next:not(.router-navbar-transition-from-large).router-navbar-transition-to-large .navbar-bg { + animation-name: ios-navbar-bg-from-rt-to-cb; +} +.ios .router-transition-backward .navbar-current .navbar-bg { + animation-name: ios-navbar-bg-from-cb-to-rb; +} +.ios .router-transition-backward .navbar-current:not(.router-navbar-transition-from-large).router-navbar-transition-to-large .navbar-bg { + animation-name: ios-navbar-bg-from-ct-to-rb; +} +.ios .router-transition-backward .navbar-current.router-navbar-transition-from-large:not(.router-navbar-transition-to-large) .navbar-bg { + animation-name: ios-navbar-bg-from-cb-to-rt; +} +.ios .router-transition-backward .navbar-current.navbar-large-collapsed .navbar-bg { + animation-name: ios-navbar-bg-from-ct-to-rt; +} +.ios .router-transition-backward .navbar-current.navbar-large-collapsed.navbar-large-transparent .navbar-bg, +.ios .router-transition-backward .navbar-current.navbar-large-collapsed.navbar-large.navbar-transparent .navbar-bg { + animation-name: ios-navbar-bg-from-cb-to-rb; +} +.ios .router-transition-backward .navbar-current.navbar-large-collapsed.router-navbar-transition-to-large .navbar-bg { + animation-name: ios-navbar-bg-from-ct-to-rb; +} +.ios .router-transition-backward .navbar-previous .navbar-bg { + animation-name: ios-navbar-bg-from-lb-to-cb; +} +.ios .router-transition-backward .navbar-previous:not(.router-navbar-transition-from-large).router-navbar-transition-to-large .navbar-bg { + animation-name: ios-navbar-bg-from-lt-to-cb; +} +.ios .router-transition-backward .navbar-previous.router-navbar-transition-from-large:not(.router-navbar-transition-to-large) .navbar-bg { + animation-name: ios-navbar-bg-from-lb-to-ct; +} +.ios .router-transition-backward .navbar-previous.navbar-large-collapsed .navbar-bg { + animation-name: ios-navbar-bg-from-lt-to-ct; +} +.ios .router-transition-backward .navbar-previous.navbar-large-collapsed.navbar-large-transparent .navbar-bg, +.ios .router-transition-backward .navbar-previous.navbar-large-collapsed.navbar-large.navbar-transparent .navbar-bg { + animation-name: ios-navbar-transparent-bg-from-l-to-c; +} +.ios .router-transition-backward .navbar-previous.navbar-large-collapsed.navbar-large-transparent.router-navbar-transition-from-large .navbar-bg, +.ios .router-transition-backward .navbar-previous.navbar-large-collapsed.navbar-large.navbar-transparent.router-navbar-transition-from-large .navbar-bg { + animation-name: ios-navbar-bg-from-lb-to-ct; +} +.view-master-detail .navbars { + z-index: auto; +} +.view-master-detail .page-master { + z-index: 525; +} +.view-master-detail .navbar-master .navbar-inner, +.view-master-detail .navbar-master .navbar-bg { + z-index: 550; +} +.view-master-detail .navbar-master-detail .navbar-inner, +.view-master-detail .navbar-master-detail .navbar-bg { + z-index: 500; +} +.view-master-detail .navbar-master.navbar-previous { + pointer-events: auto; +} +.view-master-detail .navbar-master.navbar-previous .left, +.view-master-detail .navbar-master.navbar-previous:not(.navbar-large) .title, +.view-master-detail .navbar-master.navbar-previous .right, +.view-master-detail .navbar-master.navbar-previous .subnavbar { + opacity: 1; +} +.view-master-detail.router-transition .navbar-master .left, +.view-master-detail.router-transition .navbar-master .left .icon + span, +.view-master-detail.router-transition .navbar-master:not(.navbar-large) .title, +.view-master-detail.router-transition .navbar-master .right, +.view-master-detail.router-transition .navbar-master .subnavbar, +.view-master-detail.router-transition .navbar-master .fading { + opacity: 1 !important; + transition-duration: 0ms; + transform: none !important; + animation: none !important; +} +.view-master-detail.router-transition .navbar-master .navbar-bg { + transition-duration: 0ms; + animation: none !important; +} +.view-master-detail.router-transition .navbar-master.navbar-large .title { + opacity: calc(-1 + 2 * var(--f7-navbar-large-collapse-progress)) !important; + transition-duration: 0ms; + transform: none !important; + animation: none !important; +} +.view-master-detail.router-transition .navbar-master.navbar-large .title-large, +.view-master-detail.router-transition .navbar-master.navbar-large .title-large-text { + transition-duration: 0ms; + animation: none !important; +} +.view-master-detail.router-transition .navbar-master.navbar-large-transparent .navbar-bg, +.view-master-detail.router-transition .navbar-master.navbar-large.navbar-transparent .navbar-bg { + height: 100% !important; + opacity: var(--f7-navbar-large-collapse-progress) !important; +} +@keyframes ios-navbar-element-fade-in { + 0% { + opacity: 0; + } + 25% { + opacity: 0; + } + to { + opacity: 1; + } +} +@keyframes ios-navbar-element-fade-out { + from { + opacity: 1; + } + 75% { + opacity: 0; + } + to { + opacity: 0; + } +} +@keyframes ios-navbar-large-title-text-slide-up { + 0% { + transform: translateX(0px) translateY(0%) scale(1); + } + 100% { + transform: translateX(calc(-1 * (var(--f7-navbarLeftTextOffset) - var(--f7-navbarTitleLargeOffset)))) translateY(calc(-1 * var(--f7-navbar-large-title-height) + var(--f7-navbar-large-title-padding-vertical))) scale(0.5); + } +} +@keyframes ios-navbar-large-title-text-slide-down { + 0% { + transform: translateX(calc(-1 * (var(--f7-navbarLeftTextOffset) - var(--f7-navbarTitleLargeOffset)))) translateY(calc(-1 * var(--f7-navbar-large-title-height) + var(--f7-navbar-large-title-padding-vertical) / 2)) scale(0.5); + } + 100% { + transform: translateX(0px) translateY(0%) scale(1); + } +} +@keyframes ios-navbar-large-title-text-slide-left { + 0% { + transform: translateX(-100%); + } + 100% { + transform: translateX(0%); + } +} +@keyframes ios-navbar-large-title-text-slide-right { + 0% { + transform: translateX(0%); + } + 100% { + transform: translateX(-100%); + } +} +@keyframes ios-navbar-large-title-text-fade-out { + 0% { + opacity: 1; + } + 80% { + opacity: 0; + } + 100% { + opacity: 0; + } +} +@keyframes ios-navbar-large-title-text-fade-in { + 0% { + opacity: 0; + } + 20% { + opacity: 0; + } + 100% { + opacity: 1; + } +} +@keyframes ios-navbar-back-text-current-to-previous { + 0% { + opacity: 1; + transform: translateY(0px) translateX(0px) scale(1); + } + 80% { + opacity: 0; + } + 100% { + opacity: 0; + transform: translateX(calc(-1 * (var(--f7-navbarTitleLargeOffset) - var(--f7-navbarLeftTextOffset)))) translateY(calc(1 * var(--f7-navbar-large-title-height) - var(--f7-navbar-large-title-padding-vertical) / 2)) scale(2); + } +} +@keyframes ios-navbar-back-text-next-to-current { + 0% { + opacity: 0; + transform: translateX(calc(-1 * (var(--f7-navbarTitleLargeOffset) - var(--f7-navbarLeftTextOffset)))) translateY(calc(1 * var(--f7-navbar-large-title-height) + var(--f7-navbar-large-title-padding-vertical) / 2)) scale(2); + } + 20% { + opacity: 0; + } + 100% { + opacity: 1; + transform: translateX(0px) translateY(0px) scale(1); + } +} +@keyframes ios-navbar-bg-from-cb-to-lb { + from { + transform: var(--f7-navbar-large-bg-center-bottom); + } + to { + transform: var(--f7-navbar-large-bg-left-bottom); + } +} +@keyframes ios-navbar-bg-from-cb-to-lt { + from { + transform: var(--f7-navbar-large-bg-center-bottom); + } + to { + transform: var(--f7-navbar-large-bg-left-top); + } +} +@keyframes ios-navbar-bg-from-ct-to-lb { + from { + transform: var(--f7-navbar-large-bg-center-top); + } + to { + transform: var(--f7-navbar-large-bg-left-bottom); + } +} +@keyframes ios-navbar-bg-from-ct-to-lt { + from { + transform: var(--f7-navbar-large-bg-center-top); + } + to { + transform: var(--f7-navbar-large-bg-left-top); + } +} +@keyframes ios-navbar-bg-from-rb-to-cb { + from { + transform: var(--f7-navbar-large-bg-right-bottom); + } + to { + transform: var(--f7-navbar-large-bg-center-bottom); + } +} +@keyframes ios-navbar-bg-from-rb-to-ct { + from { + transform: var(--f7-navbar-large-bg-right-bottom); + } + to { + transform: var(--f7-navbar-large-bg-center-top); + } +} +@keyframes ios-navbar-bg-from-rt-to-cb { + from { + transform: var(--f7-navbar-large-bg-right-top); + } + to { + transform: var(--f7-navbar-large-bg-center-bottom); + } +} +@keyframes ios-navbar-bg-from-cb-to-rb { + from { + transform: var(--f7-navbar-large-bg-center-bottom); + } + to { + transform: var(--f7-navbar-large-bg-right-bottom); + } +} +@keyframes ios-navbar-bg-from-ct-to-rb { + from { + transform: var(--f7-navbar-large-bg-center-top); + } + to { + transform: var(--f7-navbar-large-bg-right-bottom); + } +} +@keyframes ios-navbar-bg-from-cb-to-rt { + from { + transform: var(--f7-navbar-large-bg-center-bottom); + } + to { + transform: var(--f7-navbar-large-bg-right-top); + } +} +@keyframes ios-navbar-bg-from-ct-to-rt { + from { + transform: var(--f7-navbar-large-bg-center-top); + } + to { + transform: var(--f7-navbar-large-bg-right-top); + } +} +@keyframes ios-navbar-bg-from-lb-to-cb { + from { + transform: var(--f7-navbar-large-bg-left-bottom); + } + to { + transform: var(--f7-navbar-large-bg-center-bottom); + } +} +@keyframes ios-navbar-bg-from-lt-to-cb { + from { + transform: var(--f7-navbar-large-bg-left-top); + } + to { + transform: var(--f7-navbar-large-bg-center-bottom); + } +} +@keyframes ios-navbar-bg-from-lb-to-ct { + from { + transform: var(--f7-navbar-large-bg-left-bottom); + } + to { + transform: var(--f7-navbar-large-bg-center-top); + } +} +@keyframes ios-navbar-bg-from-lt-to-ct { + from { + transform: var(--f7-navbar-large-bg-left-top); + } + to { + transform: var(--f7-navbar-large-bg-center-top); + } +} +@keyframes ios-navbar-transparent-bg-from-l-to-c { + from { + transform: var(--f7-navbar-large-transparent-bg-left); + } + to { + transform: var(--f7-navbar-large-transparent-bg-center); + } +} +@keyframes ios-navbar-transparent-bg-from-c-to-l { + from { + transform: var(--f7-navbar-large-transparent-bg-center); + } + to { + transform: var(--f7-navbar-large-transparent-bg-left); + } +} +.md .navbar a.link { + padding: 0 16px; + min-width: 48px; +} +.md .navbar a.link:before { + content: ''; + width: 152%; + height: 152%; + position: absolute; + left: -26%; + top: -26%; + background-image: radial-gradient(circle at center, var(--f7-link-highlight-color) 66%, rgba(255, 255, 255, 0) 66%); + background-repeat: no-repeat; + background-position: center; + background-size: 100% 100%; + opacity: 0; + pointer-events: none; + transition-duration: 600ms; +} +.md .navbar a.link.active-state:before { + opacity: 1; + transition-duration: 150ms; +} +.md .navbar a.icon-only { + min-width: 0; + flex-shrink: 0; + width: 56px; +} +.md .navbar .right { + margin-right: auto; +} +.md .navbar .right:first-child { + left: var(--f7-safe-area-left); +} +.md .navbar-inner { + justify-content: flex-start; + overflow: hidden; +} +.md .navbar-large:not(.navbar-large-collapsed) .navbar-inner { + overflow: visible; +} +.md .page.page-with-subnavbar .navbar-inner { + overflow: visible; +} +.md .navbar-inner-centered-title { + justify-content: space-between; +} +.md .navbar-inner-centered-title .right { + margin-right: 0; +} +.md .navbar-inner-centered-title .title { + text-align: center; +} +.aurora .navbar a.icon-only { + margin: 0; + justify-content: center; +} +.aurora .navbar .left a + a, +.aurora .navbar .right a + a { + margin-right: 10px; +} +.aurora .navbar b { + font-weight: bold; +} +.aurora .navbar .left { + margin-left: 10px; +} +.aurora .navbar .right { + margin-right: 10px; +} +.aurora .navbar .right:first-child { + left: calc(16px + var(--f7-safe-area-left)); +} +.aurora .navbar-inner { + justify-content: space-between; +} +.aurora .navbar-inner-left-title { + justify-content: flex-start; +} +.aurora .navbar-inner-left-title .right { + margin-right: auto; +} +.aurora .navbar-inner-left-title .title { + text-align: left; + margin-left: 10px; +} +/* === Toolbar === */ +:root { + /* + --f7-toolbar-bg-color: var(--f7-bars-bg-color); + --f7-toolbar-bg-color-rgb: var(--f7-bars-bg-color-rgb); + --f7-toolbar-bg-image: var(--f7-bars-bg-image); + --f7-toolbar-border-color: var(--f7-bars-border-color); + --f7-toolbar-link-color: var(--f7-bars-link-color); + --f7-toolbar-text-color: var(--f7-bars-text-color); + --f7-tabbar-link-active-color: var(--f7-theme-color); + */ + --f7-tabbar-link-active-bg-color: transparent; + --f7-tabbar-label-text-transform: none; + --f7-toolbar-hide-show-transition-duration: 400ms; +} +.ios { + --f7-toolbar-height: 44px; + --f7-toolbar-font-size: 17px; + --f7-toolbar-inner-padding-left: 8px; + --f7-toolbar-inner-padding-right: 8px; + /* + --f7-toolbar-link-height: var(--f7-toolbar-height); + --f7-toolbar-link-line-height: var(--f7-toolbar-height); + */ + --f7-tabbar-labels-height: 50px; + --f7-tabbar-labels-tablet-height: 50px; + --f7-toolbar-top-shadow-image: none; + --f7-toolbar-bottom-shadow-image: none; + --f7-tabbar-icon-size: 28px; + --f7-tabbar-link-text-transform: none; + --f7-tabbar-link-font-weight: 400; + --f7-tabbar-link-letter-spacing: 0; + --f7-tabbar-label-font-size: 12px; + --f7-tabbar-label-tablet-font-size: 14px; + --f7-tabbar-label-font-weight: 500; + --f7-tabbar-label-letter-spacing: 0.01; + --f7-tabbar-link-inactive-color: rgba(0, 0, 0, 0.4); +} +.ios .theme-dark, +.ios.theme-dark { + --f7-tabbar-link-inactive-color: rgba(255, 255, 255, 0.54); +} +.md { + --f7-toolbar-height: 48px; + --f7-toolbar-font-size: 14px; + --f7-toolbar-inner-padding-left: 0px; + --f7-toolbar-inner-padding-right: 0px; + /* + --f7-toolbar-link-height: var(--f7-toolbar-height); + --f7-toolbar-link-line-height: var(--f7-toolbar-height); + */ + --f7-tabbar-labels-height: 56px; + --f7-tabbar-labels-tablet-height: 56px; + /* + --f7-tabbar-link-active-border-color: var(--f7-theme-color); + */ + --f7-toolbar-top-shadow-image: var(--f7-bars-shadow-bottom-image); + --f7-toolbar-bottom-shadow-image: var(--f7-bars-shadow-top-image); + --f7-tabbar-icon-size: 24px; + --f7-tabbar-link-text-transform: uppercase; + --f7-tabbar-link-font-weight: 500; + --f7-tabbar-link-letter-spacing: 0.03em; + --f7-tabbar-label-font-size: 14px; + --f7-tabbar-label-tablet-font-size: 14px; + --f7-tabbar-label-font-weight: 400; + --f7-tabbar-label-letter-spacing: 0; + --f7-tabbar-link-inactive-color: rgba(0, 0, 0, 0.54); +} +.md .theme-dark, +.md.theme-dark { + --f7-tabbar-link-inactive-color: rgba(255, 255, 255, 0.54); +} +.aurora { + --f7-toolbar-height: 38px; + --f7-toolbar-font-size: 14px; + --f7-toolbar-inner-padding-left: 16px; + --f7-toolbar-inner-padding-right: 16px; + --f7-toolbar-link-height: auto; + --f7-toolbar-link-line-height: inherit; + --f7-tabbar-labels-height: 44px; + --f7-tabbar-labels-tablet-height: 44px; + --f7-tabbar-link-inactive-bg-color: rgba(0, 0, 0, 0.2); + --f7-toolbar-top-shadow-image: none; + --f7-toolbar-bottom-shadow-image: none; + --f7-tabbar-icon-size: 18px; + --f7-tabbar-link-text-transform: none; + --f7-tabbar-link-font-weight: 400; + --f7-tabbar-link-letter-spacing: 0; + --f7-tabbar-label-font-size: 12px; + --f7-tabbar-label-tablet-font-size: 12px; + --f7-tabbar-label-font-weight: 500; + --f7-tabbar-label-letter-spacing: 0.01; + --f7-tabbar-link-inactive-color: rgba(0, 0, 0, 0.5); +} +.aurora .theme-dark, +.aurora.theme-dark { + --f7-tabbar-link-inactive-color: rgba(255, 255, 255, 0.5); +} +.toolbar { + width: 100%; + position: relative; + margin: 0; + transform: translate3d(0, 0, 0); + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + z-index: 600; + box-sizing: border-box; + left: 0; + height: var(--f7-toolbar-height); + background-image: var(--f7-toolbar-bg-image, var(--f7-bars-bg-image)); + background-color: var(--f7-toolbar-bg-color, var(--f7-bars-bg-color)); + color: var(--f7-toolbar-text-color, var(--f7-bars-text-color)); + font-size: var(--f7-toolbar-font-size); +} +@supports ((-webkit-backdrop-filter: blur(20px)) or (backdrop-filter: blur(20px))) { + .ios-translucent-bars .toolbar { + background-color: rgba(var(--f7-toolbar-bg-color-rgb, var(--f7-bars-bg-color-rgb)), var(--f7-bars-translucent-opacity)); + -webkit-backdrop-filter: saturate(180%) blur(var(--f7-bars-translucent-blur)); + backdrop-filter: saturate(180%) blur(var(--f7-bars-translucent-blur)); + } +} +.toolbar b { + font-weight: 600; +} +.toolbar a { + color: var(--f7-toolbar-link-color, var(--f7-bars-link-color, var(--f7-theme-color))); + box-sizing: border-box; + flex-shrink: 1; + position: relative; + white-space: nowrap; + text-overflow: ellipsis; +} +.toolbar .link { + display: flex; + line-height: var(--f7-toolbar-link-line-height, var(--f7-toolbar-height)); + height: var(--f7-toolbar-link-height, var(--f7-toolbar-height)); +} +.toolbar i.icon { + display: block; +} +.toolbar:after, +.toolbar:before { + -webkit-backface-visibility: hidden; + backface-visibility: hidden; +} +.views > .toolbar, +.view > .toolbar, +.page > .toolbar { + position: absolute; +} +.toolbar-top, +.ios .toolbar-top-ios, +.md .toolbar-top-md, +.aurora .toolbar-top-aurora { + top: 0; +} +.toolbar-top .tab-link-highlight, +.ios .toolbar-top-ios .tab-link-highlight, +.md .toolbar-top-md .tab-link-highlight, +.aurora .toolbar-top-aurora .tab-link-highlight { + bottom: 0; +} +.toolbar-top.no-hairline:after, +.ios .toolbar-top-ios.no-hairline:after, +.md .toolbar-top-md.no-hairline:after, +.aurora .toolbar-top-aurora.no-hairline:after, +.toolbar-top.no-border:after, +.ios .toolbar-top-ios.no-border:after, +.md .toolbar-top-md.no-border:after, +.aurora .toolbar-top-aurora.no-border:after { + display: none !important; +} +.toolbar-top.no-shadow:before, +.ios .toolbar-top-ios.no-shadow:before, +.md .toolbar-top-md.no-shadow:before, +.aurora .toolbar-top-aurora.no-shadow:before, +.toolbar-top.toolbar-hidden:before, +.ios .toolbar-top-ios.toolbar-hidden:before, +.md .toolbar-top-md.toolbar-hidden:before, +.aurora .toolbar-top-aurora.toolbar-hidden:before { + display: none !important; +} +.toolbar-top:after, +.ios .toolbar-top-ios:after, +.md .toolbar-top-md:after, +.aurora .toolbar-top-aurora:after, +.toolbar-top:before, +.ios .toolbar-top-ios:before, +.md .toolbar-top-md:before, +.aurora .toolbar-top-aurora:before { + -webkit-backface-visibility: hidden; + backface-visibility: hidden; +} +.toolbar-top:after, +.ios .toolbar-top-ios:after, +.md .toolbar-top-md:after, +.aurora .toolbar-top-aurora:after { + content: ''; + position: absolute; + background-color: var(--f7-toolbar-border-color, var(--f7-bars-border-color)); + display: block; + z-index: 15; + top: auto; + right: auto; + bottom: 0; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 100%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +.toolbar-top:before, +.ios .toolbar-top-ios:before, +.md .toolbar-top-md:before, +.aurora .toolbar-top-aurora:before { + content: ''; + position: absolute; + right: 0; + width: 100%; + top: 100%; + bottom: auto; + height: 8px; + pointer-events: none; + background: var(--f7-toolbar-top-shadow-image); +} +.toolbar-bottom, +.ios .toolbar-bottom-ios, +.md .toolbar-bottom-md, +.aurora .toolbar-bottom-aurora { + bottom: 0; + height: calc(var(--f7-toolbar-height) + var(--f7-safe-area-bottom)); +} +.toolbar-bottom .tab-link-highlight, +.ios .toolbar-bottom-ios .tab-link-highlight, +.md .toolbar-bottom-md .tab-link-highlight, +.aurora .toolbar-bottom-aurora .tab-link-highlight { + top: 0; +} +.toolbar-bottom .toolbar-inner, +.ios .toolbar-bottom-ios .toolbar-inner, +.md .toolbar-bottom-md .toolbar-inner, +.aurora .toolbar-bottom-aurora .toolbar-inner { + height: auto; + top: 0; + bottom: var(--f7-safe-area-bottom); +} +.toolbar-bottom.no-hairline:before, +.ios .toolbar-bottom-ios.no-hairline:before, +.md .toolbar-bottom-md.no-hairline:before, +.aurora .toolbar-bottom-aurora.no-hairline:before, +.toolbar-bottom.no-border:before, +.ios .toolbar-bottom-ios.no-border:before, +.md .toolbar-bottom-md.no-border:before, +.aurora .toolbar-bottom-aurora.no-border:before { + display: none !important; +} +.toolbar-bottom.no-shadow:after, +.ios .toolbar-bottom-ios.no-shadow:after, +.md .toolbar-bottom-md.no-shadow:after, +.aurora .toolbar-bottom-aurora.no-shadow:after, +.toolbar-bottom.toolbar-hidden:after, +.ios .toolbar-bottom-ios.toolbar-hidden:after, +.md .toolbar-bottom-md.toolbar-hidden:after, +.aurora .toolbar-bottom-aurora.toolbar-hidden:after { + display: none !important; +} +.toolbar-bottom:before, +.ios .toolbar-bottom-ios:before, +.md .toolbar-bottom-md:before, +.aurora .toolbar-bottom-aurora:before { + content: ''; + position: absolute; + background-color: var(--f7-toolbar-border-color, var(--f7-bars-border-color)); + display: block; + z-index: 15; + top: 0; + right: auto; + bottom: auto; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 0%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +.toolbar-bottom:after, +.ios .toolbar-bottom-ios:after, +.md .toolbar-bottom-md:after, +.aurora .toolbar-bottom-aurora:after { + content: ''; + position: absolute; + right: 0; + width: 100%; + bottom: 100%; + height: 8px; + top: auto; + pointer-events: none; + background: var(--f7-toolbar-bottom-shadow-image); + transform: translate3d(0, 0, 0); +} +.toolbar-inner { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + display: flex; + justify-content: space-between; + box-sizing: border-box; + align-items: center; + align-content: center; + overflow: hidden; + padding: 0 calc(var(--f7-toolbar-inner-padding-right) + var(--f7-safe-area-right)) 0 calc(var(--f7-toolbar-inner-padding-left) + var(--f7-safe-area-left)); +} +.views > .tabbar, +.views > .tabbar-labels { + z-index: 5001; +} +.tabbar a, +.tabbar-labels a { + color: var(--f7-tabbar-link-inactive-color); +} +.tabbar .tab-link:not(.tab-link-active), +.tabbar-labels .tab-link:not(.tab-link-active) { + background-color: var(--f7-tabbar-link-inactive-bg-color, transparent); +} +.tabbar .link, +.tabbar-labels .link { + line-height: 1.4; +} +.tabbar .tab-link, +.tabbar-labels .tab-link, +.tabbar .link, +.tabbar-labels .link { + height: 100%; + width: 100%; + box-sizing: border-box; + display: flex; + justify-content: center; + align-items: center; + flex-direction: column; + text-transform: var(--f7-tabbar-link-text-transform); + font-weight: var(--f7-tabbar-link-font-weight); + letter-spacing: var(--f7-tabbar-link-letter-spacing); + overflow: hidden; +} +.tabbar .tab-link-active, +.tabbar-labels .tab-link-active { + color: var(--f7-tabbar-link-active-color, var(--f7-theme-color)); + background-color: var(--f7-tabbar-link-active-bg-color, transparent); +} +.tabbar i.icon, +.tabbar-labels i.icon { + font-size: var(--f7-tabbar-icon-size); + height: var(--f7-tabbar-icon-size); + line-height: var(--f7-tabbar-icon-size); +} +.tabbar-labels { + --f7-toolbar-height: var(--f7-tabbar-labels-height); +} +.tabbar-labels .tab-link, +.tabbar-labels .link { + height: 100%; + justify-content: space-between; + align-items: center; +} +.tabbar-labels .tabbar-label { + display: block; + line-height: 1; + margin: 0; + position: relative; + text-overflow: ellipsis; + white-space: nowrap; + font-size: var(--f7-tabbar-label-font-size); + text-transform: var(--f7-tabbar-label-text-transform); + font-weight: var(--f7-tabbar-label-font-weight); + letter-spacing: var(--f7-tabbar-label-letter-spacing); +} +@media (min-width: 768px) and (min-height: 600px) { + :root { + --f7-tabbar-labels-height: var(--f7-tabbar-labels-tablet-height); + --f7-tabbar-label-font-size: var(--f7-tabbar-label-tablet-font-size); + } +} +.tabbar-scrollable .toolbar-inner { + justify-content: flex-start; + overflow: auto; + -webkit-overflow-scrolling: touch; +} +.tabbar-scrollable .toolbar-inner::-webkit-scrollbar { + display: none !important; + width: 0 !important; + height: 0 !important; + -webkit-appearance: none; + opacity: 0 !important; +} +.tabbar-scrollable .tab-link, +.tabbar-scrollable .link { + width: auto; + flex-shrink: 0; +} +.toolbar-transitioning, +.navbar-transitioning + .toolbar, +.navbar-transitioning ~ * .toolbar { + transition-duration: var(--f7-toolbar-hide-show-transition-duration); +} +.toolbar-bottom ~ *, +.ios .toolbar-bottom-ios ~ *, +.md .toolbar-bottom-md ~ *, +.aurora .toolbar-bottom-aurora ~ * { + --f7-page-toolbar-bottom-offset: var(--f7-toolbar-height); +} +.toolbar-bottom.tabbar-labels ~ *, +.ios .toolbar-bottom-ios.tabbar-labels ~ *, +.md .toolbar-bottom-md.tabbar-labels ~ *, +.aurora .toolbar-bottom-aurora.tabbar-labels ~ * { + --f7-page-toolbar-bottom-offset: var(--f7-tabbar-labels-height); +} +.toolbar-bottom.toolbar-hidden, +.ios .toolbar-bottom-ios.toolbar-hidden, +.md .toolbar-bottom-md.toolbar-hidden, +.aurora .toolbar-bottom-aurora.toolbar-hidden { + transform: translate3d(0, 100%, 0); +} +.toolbar-top ~ *, +.ios .toolbar-top-ios ~ *, +.md .toolbar-top-md ~ *, +.aurora .toolbar-top-aurora ~ * { + --f7-page-toolbar-top-offset: var(--f7-toolbar-height); +} +.toolbar-top.tabbar-labels ~ *, +.ios .toolbar-top-ios.tabbar-labels ~ *, +.md .toolbar-top-md.tabbar-labels ~ *, +.aurora .toolbar-top-aurora.tabbar-labels ~ * { + --f7-page-toolbar-top-offset: var(--f7-tabbar-labels-height); +} +.toolbar-top.toolbar-hidden, +.ios .toolbar-top-ios.toolbar-hidden, +.md .toolbar-top-md.toolbar-hidden, +.aurora .toolbar-top-aurora.toolbar-hidden { + transform: translate3d(0, -100%, 0); +} +.navbar ~ .toolbar-top, +.navbars ~ .toolbar-top, +.ios .navbar ~ .toolbar-top-ios, +.ios .navbars ~ .toolbar-top-ios, +.md .navbar ~ .toolbar-top-md, +.aurora .navbar ~ .toolbar-top-aurora, +.navbar ~ * .toolbar-top, +.navbars ~ * .toolbar-top, +.ios .navbar ~ * .toolbar-top-ios, +.ios .navbars ~ * .toolbar-top-ios, +.md .navbar ~ * .toolbar-top-md, +.aurora .navbar ~ * .toolbar-top-aurora, +.navbar ~ .page:not(.no-navbar) .toolbar-top, +.navbars ~ .page:not(.no-navbar) .toolbar-top, +.ios .navbar ~ .page:not(.no-navbar) .toolbar-top-ios, +.ios .navbars ~ .page:not(.no-navbar) .toolbar-top-ios, +.md .navbar ~ .page:not(.no-navbar) .toolbar-top-md, +.aurora .navbar ~ .page:not(.no-navbar) .toolbar-top-aurora { + top: calc(var(--f7-navbar-height) + var(--f7-safe-area-top)); +} +.navbar ~ .toolbar-top.toolbar-hidden, +.navbars ~ .toolbar-top.toolbar-hidden, +.ios .navbar ~ .toolbar-top-ios.toolbar-hidden, +.ios .navbars ~ .toolbar-top-ios.toolbar-hidden, +.md .navbar ~ .toolbar-top-md.toolbar-hidden, +.aurora .navbar ~ .toolbar-top-aurora.toolbar-hidden, +.navbar ~ * .toolbar-top.toolbar-hidden, +.navbars ~ * .toolbar-top.toolbar-hidden, +.ios .navbar ~ * .toolbar-top-ios.toolbar-hidden, +.ios .navbars ~ * .toolbar-top-ios.toolbar-hidden, +.md .navbar ~ * .toolbar-top-md.toolbar-hidden, +.aurora .navbar ~ * .toolbar-top-aurora.toolbar-hidden, +.navbar ~ .page:not(.no-navbar) .toolbar-top.toolbar-hidden, +.navbars ~ .page:not(.no-navbar) .toolbar-top.toolbar-hidden, +.ios .navbar ~ .page:not(.no-navbar) .toolbar-top-ios.toolbar-hidden, +.ios .navbars ~ .page:not(.no-navbar) .toolbar-top-ios.toolbar-hidden, +.md .navbar ~ .page:not(.no-navbar) .toolbar-top-md.toolbar-hidden, +.aurora .navbar ~ .page:not(.no-navbar) .toolbar-top-aurora.toolbar-hidden { + transform: translate3d(0, calc(-1 * (var(--f7-navbar-height) + var(--f7-toolbar-height) + var(--f7-safe-area-top))), 0); +} +.navbar ~ .toolbar-top.toolbar-hidden.tabbar-labels, +.navbars ~ .toolbar-top.toolbar-hidden.tabbar-labels, +.ios .navbar ~ .toolbar-top-ios.toolbar-hidden.tabbar-labels, +.ios .navbars ~ .toolbar-top-ios.toolbar-hidden.tabbar-labels, +.md .navbar ~ .toolbar-top-md.toolbar-hidden.tabbar-labels, +.aurora .navbar ~ .toolbar-top-aurora.toolbar-hidden.tabbar-labels, +.navbar ~ * .toolbar-top.toolbar-hidden.tabbar-labels, +.navbars ~ * .toolbar-top.toolbar-hidden.tabbar-labels, +.ios .navbar ~ * .toolbar-top-ios.toolbar-hidden.tabbar-labels, +.ios .navbars ~ * .toolbar-top-ios.toolbar-hidden.tabbar-labels, +.md .navbar ~ * .toolbar-top-md.toolbar-hidden.tabbar-labels, +.aurora .navbar ~ * .toolbar-top-aurora.toolbar-hidden.tabbar-labels, +.navbar ~ .page:not(.no-navbar) .toolbar-top.toolbar-hidden.tabbar-labels, +.navbars ~ .page:not(.no-navbar) .toolbar-top.toolbar-hidden.tabbar-labels, +.ios .navbar ~ .page:not(.no-navbar) .toolbar-top-ios.toolbar-hidden.tabbar-labels, +.ios .navbars ~ .page:not(.no-navbar) .toolbar-top-ios.toolbar-hidden.tabbar-labels, +.md .navbar ~ .page:not(.no-navbar) .toolbar-top-md.toolbar-hidden.tabbar-labels, +.aurora .navbar ~ .page:not(.no-navbar) .toolbar-top-aurora.toolbar-hidden.tabbar-labels { + transform: translate3d(0, calc(-1 * (var(--f7-navbar-height) + var(--f7-tabbar-labels-height) + var(--f7-safe-area-top))), 0); +} +.navbar-hidden + .toolbar-top:not(.toolbar-hidden), +.ios .navbar-hidden + .toolbar-top-ios:not(.toolbar-hidden), +.md .navbar-hidden + .toolbar-top-md:not(.toolbar-hidden), +.aurora .navbar-hidden + .toolbar-top-aurora:not(.toolbar-hidden), +.navbar-hidden ~ * .toolbar-top:not(.toolbar-hidden), +.ios .navbar-hidden ~ * .toolbar-top-ios:not(.toolbar-hidden), +.md .navbar-hidden ~ * .toolbar-top-md:not(.toolbar-hidden), +.aurora .navbar-hidden ~ * .toolbar-top-aurora:not(.toolbar-hidden) { + transform: translate3d(0, calc(0px - var(--f7-navbar-height)), 0); +} +.navbar-large-hidden + .toolbar-top:not(.toolbar-hidden), +.ios .navbar-large-hidden + .toolbar-top-ios:not(.toolbar-hidden), +.md .navbar-large-hidden + .toolbar-top-md:not(.toolbar-hidden), +.navbar-large-hidden ~ * .toolbar-top:not(.toolbar-hidden), +.ios .navbar-large-hidden ~ * .toolbar-top-ios:not(.toolbar-hidden), +.md .navbar-large-hidden ~ * .toolbar-top-md:not(.toolbar-hidden), +.aurora .navbar-large-hidden ~ * .toolbar-top-aurora:not(.toolbar-hidden) { + transform: translate3d(0, calc(0px - var(--f7-navbar-height) - var(--f7-navbar-large-title-height)), 0); +} +.ios .toolbar a.icon-only { + min-height: var(--f7-toolbar-height); + display: flex; + justify-content: center; + align-items: center; + margin: 0; + min-width: 44px; +} +.ios .tabbar-labels .tab-link, +.ios .tabbar-labels .link { + padding-top: 4px; + padding-bottom: 4px; +} +.ios .tabbar-labels .tab-link i + span, +.ios .tabbar-labels .link i + span { + margin: 0; +} +@media (min-width: 768px) and (min-height: 600px) { + .ios .tabbar .tab-link, + .ios .tabbar-labels .tab-link, + .ios .tabbar .link, + .ios .tabbar-labels .link { + justify-content: center; + flex-direction: row; + } + .ios .tabbar .tab-link i + span, + .ios .tabbar-labels .tab-link i + span, + .ios .tabbar .link i + span, + .ios .tabbar-labels .link i + span { + margin-left: 5px; + } +} +.ios .tabbar-scrollable .toolbar-inner { + justify-content: flex-start; +} +.ios .tabbar-scrollable .tab-link, +.ios .tabbar-scrollable .link { + padding: 0 8px; +} +.md .toolbar .link { + justify-content: center; + padding: 0 16px; + min-width: 48px; +} +.md .toolbar .link:before { + content: ''; + width: 152%; + height: 152%; + position: absolute; + left: -26%; + top: -26%; + background-image: radial-gradient(circle at center, var(--f7-link-highlight-color) 66%, rgba(255, 255, 255, 0) 66%); + background-repeat: no-repeat; + background-position: center; + background-size: 100% 100%; + opacity: 0; + pointer-events: none; + transition-duration: 600ms; +} +.md .toolbar .link.active-state:before { + opacity: 1; + transition-duration: 150ms; +} +.md .toolbar a.icon-only { + min-width: 0; + flex-shrink: 0; +} +.md .tabbar .tab-link, +.md .tabbar-labels .tab-link, +.md .tabbar .link, +.md .tabbar-labels .link { + padding-left: 0; + padding-right: 0; +} +.md .tabbar a.icon-only, +.md .tabbar-labels a.icon-only { + flex-shrink: initial; +} +.md .tabbar .tab-link, +.md .tabbar-labels .tab-link { + transition-duration: 300ms; + overflow: hidden; + position: relative; +} +.md .tabbar .tab-link-highlight, +.md .tabbar-labels .tab-link-highlight { + position: absolute; + left: 0; + height: 2px; + background: var(--f7-tabbar-link-active-border-color, var(--f7-theme-color)); + transition-duration: 300ms; + right: 0; +} +.md .tabbar-labels .tab-link, +.md .tabbar-labels .link { + padding-top: 7px; + padding-bottom: 7px; +} +.md .tabbar-label { + max-width: 100%; + overflow: hidden; + line-height: 1.2; +} +.md .tabbar-scrollable .toolbar-inner { + overflow: auto; +} +.md .tabbar-scrollable .tab-link, +.md .tabbar-scrollable .link { + padding: 0 16px; +} +.aurora .toolbar a.icon-only { + min-height: var(--f7-toolbar-height); + display: flex; + justify-content: center; + align-items: center; + margin: 0; +} +.aurora .tabbar .toolbar-inner, +.aurora .tabbar-labels .toolbar-inner { + padding-left: 0; + padding-right: 0; +} +.aurora .tabbar .tab-link, +.aurora .tabbar-labels .tab-link, +.aurora .tabbar .link, +.aurora .tabbar-labels .link { + transition-duration: 200ms; +} +.aurora .tabbar-labels .tab-link, +.aurora .tabbar-labels .link { + padding-top: 5px; + padding-bottom: 5px; +} +.aurora .tabbar-labels .tab-link i + span, +.aurora .tabbar-labels .link i + span { + margin: 0; +} +.aurora .tabbar-scrollable .toolbar-inner { + justify-content: flex-start; +} +.aurora .tabbar-scrollable .tab-link, +.aurora .tabbar-scrollable .link { + padding: 0 16px; +} +/* === Subnavbar === */ +:root { + /* + --f7-subnavbar-bg-image: var(--f7-bars-bg-image); + --f7-subnavbar-bg-color: var(--f7-bars-bg-color); + --f7-subnavbar-bg-color-rgb: var(--f7-bars-bg-color-rgb); + --f7-subnavbar-border-color: var(--f7-bars-border-color); + --f7-subnavbar-link-color: var(--f7-bars-link-color); + --f7-subnavbar-text-color: var(--f7-bars-text-color); + */ + --f7-subnavbar-title-line-height: 1.2; +} +.ios { + --f7-subnavbar-height: 44px; + --f7-subnavbar-inner-padding-left: 8px; + --f7-subnavbar-inner-padding-right: 8px; + --f7-subnavbar-title-font-size: 34px; + --f7-subnavbar-title-font-weight: 700; + --f7-subnavbar-title-letter-spacing: -0.03em; + --f7-subnavbar-title-margin-left: 8px; + --f7-subnavbar-shadow-image: none; + /* + --f7-subnavbar-link-height: var(--f7-subnavbar-height); + --f7-subnavbar-link-line-height: var(--f7-subnavbar-height); + */ +} +.md { + --f7-subnavbar-height: 48px; + --f7-subnavbar-inner-padding-left: 16px; + --f7-subnavbar-inner-padding-right: 16px; + --f7-subnavbar-title-font-size: 20px; + --f7-subnavbar-title-font-weight: 500; + --f7-subnavbar-title-letter-spacing: 0; + --f7-subnavbar-title-margin-left: 0px; + --f7-subnavbar-shadow-image: var(--f7-bars-shadow-bottom-image); + /* + --f7-subnavbar-link-height: var(--f7-subnavbar-height); + --f7-subnavbar-link-line-height: var(--f7-subnavbar-height); + */ +} +.aurora { + --f7-subnavbar-height: 38px; + --f7-subnavbar-inner-padding-left: 16px; + --f7-subnavbar-inner-padding-right: 16px; + --f7-subnavbar-title-font-size: 26px; + --f7-subnavbar-title-font-weight: bold; + --f7-subnavbar-title-letter-spacing: -0.03em; + --f7-subnavbar-title-margin-left: 0px; + --f7-subnavbar-shadow-image: none; + --f7-subnavbar-link-height: auto; + --f7-subnavbar-link-line-height: inherit; +} +.subnavbar { + width: 100%; + position: absolute; + left: 0; + top: 0; + z-index: 600; + box-sizing: border-box; + display: flex; + justify-content: space-between; + align-items: center; + background-image: var(--f7-subnavbar-bg-image, var(--f7-bars-bg-image)); + background-color: var(--f7-subnavbar-bg-color, var(--f7-bars-bg-color)); + color: var(--f7-subnavbar-text-color, var(--f7-bars-text-color)); +} +@supports ((-webkit-backdrop-filter: blur(20px)) or (backdrop-filter: blur(20px))) { + .ios-translucent-bars .subnavbar { + background-color: rgba(var(--f7-subnavbar-bg-color-rgb, var(--f7-bars-bg-color-rgb)), var(--f7-bars-translucent-opacity)); + -webkit-backdrop-filter: saturate(180%) blur(var(--f7-bars-translucent-blur)); + backdrop-filter: saturate(180%) blur(var(--f7-bars-translucent-blur)); + } +} +.subnavbar .subnavbar-title { + position: relative; + overflow: hidden; + text-overflow: ellpsis; + white-space: nowrap; + font-size: var(--f7-subnavbar-title-font-size); + font-weight: var(--f7-subnavbar-title-font-weight); + text-align: left; + display: inline-block; + line-height: var(--f7-subnavbar-title-line-height); + letter-spacing: var(--f7-subnavbar-title-letter-spacing); + margin-right: var(--f7-subnavbar-title-margin-left); +} +.subnavbar .left, +.subnavbar .right { + flex-shrink: 0; + display: flex; + justify-content: flex-start; + align-items: center; +} +.subnavbar .right:first-child { + position: absolute; + height: 100%; +} +.subnavbar a { + color: var(--f7-subnavbar-link-color, var(--f7-bars-link-color, var(--f7-theme-color))); +} +.subnavbar a.link { + line-height: var(--f7-subnavbar-link-line-height, var(--f7-subnavbar-height)); + height: var(--f7-subnavbar-link-height, var(--f7-subnavbar-height)); +} +.subnavbar a.icon-only { + min-width: var(--f7-subnavbar-height); +} +.subnavbar.no-hairline:after, +.subnavbar.no-border:after { + display: none !important; +} +.subnavbar.no-shadow:before, +.subnavbar.navbar-hidden:before { + display: none !important; +} +.subnavbar:after, +.subnavbar:before { + -webkit-backface-visibility: hidden; + backface-visibility: hidden; +} +.subnavbar:after { + content: ''; + position: absolute; + background-color: var(--f7-subnavbar-border-color, var(--f7-bars-border-color)); + display: block; + z-index: 15; + top: auto; + right: auto; + bottom: 0; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 100%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +.subnavbar:before { + content: ''; + position: absolute; + right: 0; + width: 100%; + top: 100%; + bottom: auto; + height: 8px; + pointer-events: none; + background: var(--f7-subnavbar-shadow-image); +} +.subnavbar-inner { + width: 100%; + height: 100%; + display: flex; + align-items: center; + box-sizing: border-box; + justify-content: space-between; + overflow: hidden; + padding: 0 calc(var(--f7-subnavbar-inner-padding-left) + var(--f7-safe-area-right)) 0 calc(var(--f7-subnavbar-inner-padding-right) + var(--f7-safe-area-left)); +} +.subnavbar-inner.stacked { + display: none; +} +.navbar .subnavbar { + top: 100%; +} +.views > .subnavbar, +.view > .subnavbar, +.page > .subnavbar { + position: absolute; +} +.navbar ~ * .subnavbar, +.navbars ~ * .subnavbar, +.page-with-subnavbar .navbar ~ .subnavbar, +.page-with-subnavbar .navbar ~ * .subnavbar, +.navbar ~ .page-with-subnavbar:not(.no-navbar) .subnavbar, +.navbar ~ .subnavbar, +.navbars ~ .page-with-subnavbar:not(.no-navbar) .subnavbar, +.navbars ~ .subnavbar { + top: calc(var(--f7-navbar-height) + var(--f7-safe-area-top)); +} +.navbar ~ .page-with-navbar-large:not(.no-navbar) .subnavbar, +.navbars ~ .page-with-navbar-large:not(.no-navbar) .subnavbar, +.page-with-subnavbar.page-with-navbar-large .navbar ~ .subnavbar, +.page-with-subnavbar.page-with-navbar-large .navbar ~ * .subnavbar, +.navbar .title-large ~ .subnavbar { + top: calc(var(--f7-navbar-height) + var(--f7-navbar-large-title-height) + var(--f7-safe-area-top)); + transform: translate3d(0, calc(-1 * var(--f7-navbar-large-collapse-progress) * var(--f7-navbar-large-title-height)), 0); +} +.page-with-subnavbar, +.subnavbar ~ * { + --f7-page-subnavbar-offset: var(--f7-subnavbar-height); +} +.ios .subnavbar { + height: calc(var(--f7-subnavbar-height) + 1px); + margin-top: -1px; + padding-top: 1px; +} +.ios .subnavbar .title { + align-self: flex-start; + flex-shrink: 10; +} +.ios .subnavbar .left a + a, +.ios .subnavbar .right a + a { + margin-right: 16px; +} +.ios .subnavbar .left { + margin-left: 10px; +} +.ios .subnavbar .right { + margin-right: 10px; +} +.ios .subnavbar .right:first-child { + left: 8px; +} +.ios .subnavbar a.link { + justify-content: flex-start; +} +.ios .subnavbar a.icon-only { + justify-content: center; + margin: 0; +} +.md .subnavbar { + height: var(--f7-subnavbar-height); +} +.md .subnavbar .right { + margin-right: auto; +} +.md .subnavbar .right:first-child { + left: 16px; +} +.md .subnavbar a.link { + justify-content: center; + padding: 0 16px; +} +.md .subnavbar a.link:before { + content: ''; + width: 152%; + height: 152%; + position: absolute; + left: -26%; + top: -26%; + background-image: radial-gradient(circle at center, var(--f7-link-highlight-color) 66%, rgba(255, 255, 255, 0) 66%); + background-repeat: no-repeat; + background-position: center; + background-size: 100% 100%; + opacity: 0; + pointer-events: none; + transition-duration: 600ms; +} +.md .subnavbar a.link.active-state:before { + opacity: 1; + transition-duration: 150ms; +} +.md .subnavbar a.icon-only { + flex-shrink: 0; +} +.md .subnavbar-inner > a.link:first-child { + margin-right: calc(-1 * var(--f7-subnavbar-inner-padding-right)); +} +.md .subnavbar-inner > a.link:last-child { + margin-left: calc(-1 * var(--f7-subnavbar-inner-padding-left)); +} +.aurora .subnavbar { + height: calc(var(--f7-subnavbar-height) + 1px); + margin-top: -1px; + padding-top: 1px; +} +.aurora .subnavbar .title { + align-self: flex-start; + flex-shrink: 10; +} +.aurora .subnavbar .left a + a, +.aurora .subnavbar .right a + a { + margin-right: 10px; +} +.aurora .subnavbar .left { + margin-left: 10px; +} +.aurora .subnavbar .right { + margin-right: 10px; +} +.aurora .subnavbar .right:first-child { + left: 16px; +} +.aurora .subnavbar a.link { + justify-content: flex-start; +} +.aurora .subnavbar a.icon-only { + justify-content: center; + margin: 0; +} +/* === Content Block === */ +:root { + --f7-block-padding-horizontal: 16px; + --f7-block-padding-vertical: 16px; + --f7-block-font-size: inherit; + --f7-block-text-color: inherit; + --f7-block-header-margin: 10px; + --f7-block-footer-margin: 10px; + --f7-block-header-font-size: 14px; + --f7-block-footer-font-size: 14px; + --f7-block-title-text-transform: none; + --f7-block-title-white-space: nowrap; + --f7-block-title-medium-text-transform: none; + --f7-block-title-large-text-transform: none; + --f7-block-inset-side-margin: 16px; + --f7-block-title-medium-text-color: #000; + --f7-block-title-large-text-color: #000; + --f7-block-strong-bg-color: #fff; +} +:root .theme-dark, +:root.theme-dark { + --f7-block-title-text-color: #fff; + --f7-block-strong-border-color: rgba(255, 255, 255, 0.15); + --f7-block-title-medium-text-color: #fff; + --f7-block-title-large-text-color: #fff; + --f7-block-strong-bg-color: #1c1c1d; +} +.ios { + --f7-block-margin-vertical: 35px; + --f7-block-strong-border-color: rgba(0, 0, 0, 0.22); + --f7-block-title-text-color: #000; + --f7-block-title-font-size: 16px; + --f7-block-title-font-weight: 600; + --f7-block-title-line-height: 20px; + --f7-block-title-margin-bottom: 10px; + --f7-block-title-medium-font-size: 22px; + --f7-block-title-medium-font-weight: bold; + --f7-block-title-medium-line-height: 1.4; + --f7-block-title-large-font-size: 30px; + --f7-block-title-large-font-weight: bold; + --f7-block-title-large-line-height: 1.3; + --f7-block-inset-border-radius: 8px; + --f7-block-strong-text-color: #000; + --f7-block-header-text-color: rgba(0, 0, 0, 0.45); + --f7-block-footer-text-color: rgba(0, 0, 0, 0.45); +} +.ios .theme-dark, +.ios.theme-dark { + --f7-block-header-text-color: rgba(255, 255, 255, 0.55); + --f7-block-footer-text-color: rgba(255, 255, 255, 0.55); + --f7-block-strong-text-color: #fff; +} +.md { + --f7-block-margin-vertical: 32px; + --f7-block-strong-text-color: inherit; + --f7-block-strong-border-color: rgba(0, 0, 0, 0.12); + --f7-block-title-font-size: inherit; + --f7-block-title-text-color: rgba(0, 0, 0, 0.54); + --f7-block-title-font-weight: 500; + --f7-block-title-line-height: 16px; + --f7-block-title-margin-bottom: 16px; + --f7-block-title-medium-font-size: 24px; + --f7-block-title-medium-font-weight: 500; + --f7-block-title-medium-line-height: 1.3; + --f7-block-title-large-font-size: 34px; + --f7-block-title-large-font-weight: 500; + --f7-block-title-large-line-height: 1.2; + --f7-block-inset-border-radius: 4px; + --f7-block-header-text-color: rgba(0, 0, 0, 0.54); + --f7-block-footer-text-color: rgba(0, 0, 0, 0.54); +} +.md .theme-dark, +.md.theme-dark { + --f7-block-header-text-color: rgba(255, 255, 255, 0.54); + --f7-block-footer-text-color: rgba(255, 255, 255, 0.54); +} +.aurora { + --f7-block-margin-vertical: 15px; + --f7-block-strong-border-color: rgba(0, 0, 0, 0.12); + --f7-block-title-font-size: inherit; + --f7-block-title-text-color: rgba(0, 0, 0, 0.7); + --f7-block-title-font-weight: 600; + --f7-block-title-line-height: 1.5; + --f7-block-title-margin-bottom: 5px; + --f7-block-title-medium-font-size: 20px; + --f7-block-title-medium-font-weight: 600; + --f7-block-title-medium-line-height: 1.4; + --f7-block-title-large-font-size: 28px; + --f7-block-title-large-font-weight: bold; + --f7-block-title-large-line-height: 1.3; + --f7-block-inset-border-radius: 4px; + --f7-block-strong-text-color: inherit; + --f7-block-header-text-color: rgba(0, 0, 0, 0.6); + --f7-block-footer-text-color: rgba(0, 0, 0, 0.6); +} +.aurora .theme-dark, +.aurora.theme-dark { + --f7-block-header-text-color: rgba(255, 255, 255, 0.54); + --f7-block-footer-text-color: rgba(255, 255, 255, 0.54); + --f7-block-strong-text-color: #fff; +} +.block { + box-sizing: border-box; + position: relative; + z-index: 1; + color: var(--f7-block-text-color); + margin: var(--f7-block-margin-vertical) 0; + padding-top: 0; + padding-bottom: 0; + padding-left: calc(var(--f7-block-padding-horizontal) + var(--f7-safe-area-left)); + padding-right: calc(var(--f7-block-padding-horizontal) + var(--f7-safe-area-right)); + font-size: var(--f7-block-font-size); +} +.block.no-hairlines:before, +.block.no-hairlines ul:before, +.md .block.no-hairlines-md:before, +.md .block.no-hairlines-md ul:before, +.ios .block.no-hairlines-ios:before, +.ios .block.no-hairlines-ios ul:before, +.aurora .block.no-hairlines-aurora:before, +.aurora .block.no-hairlines-aurora ul:before, +.block.no-hairlines:after, +.block.no-hairlines ul:after, +.md .block.no-hairlines-md:after, +.md .block.no-hairlines-md ul:after, +.ios .block.no-hairlines-ios:after, +.ios .block.no-hairlines-ios ul:after, +.aurora .block.no-hairlines-aurora:after, +.aurora .block.no-hairlines-aurora ul:after { + display: none !important; +} +.block.no-hairline-top:before, +.block.no-hairline-top ul:before, +.md .block.no-hairline-top-md:before, +.md .block.no-hairline-top-md ul:before, +.ios .block.no-hairline-top-ios:before, +.ios .block.no-hairline-top-ios ul:before, +.aurora .block.no-hairline-top-aurora:before, +.aurora .block.no-hairline-top-aurora ul:before { + display: none !important; +} +.block.no-hairline-bottom:after, +.block.no-hairline-bottom ul:after, +.md .block.no-hairline-bottom-md:after, +.md .block.no-hairline-bottom-md ul:after, +.ios .block.no-hairline-bottom-ios:after, +.ios .block.no-hairline-bottom-ios ul:after, +.aurora .block.no-hairline-bottom-aurora:after, +.aurora .block.no-hairline-bottom-aurora ul:after { + display: none !important; +} +.block > h1:first-child, +.block > h2:first-child, +.block > h3:first-child, +.block > h4:first-child, +.block > p:first-child { + margin-top: 0; +} +.block > h1:last-child, +.block > h2:last-child, +.block > h3:last-child, +.block > h4:last-child, +.block > p:last-child { + margin-bottom: 0; +} +.block-strong { + color: var(--f7-block-strong-text-color); + padding-top: var(--f7-block-padding-vertical); + padding-bottom: var(--f7-block-padding-vertical); + background-color: var(--f7-block-strong-bg-color); +} +.block-strong:before { + content: ''; + position: absolute; + background-color: var(--f7-block-strong-border-color); + display: block; + z-index: 15; + top: 0; + right: auto; + bottom: auto; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 0%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +.block-strong:after { + content: ''; + position: absolute; + background-color: var(--f7-block-strong-border-color); + display: block; + z-index: 15; + top: auto; + right: auto; + bottom: 0; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 100%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +.block-title { + position: relative; + overflow: hidden; + margin: 0; + white-space: var(--f7-block-title-white-space); + text-overflow: ellipsis; + text-transform: var(--f7-block-title-text-transform); + color: var(--f7-block-title-text-color); + font-size: var(--f7-block-title-font-size, inherit); + font-weight: var(--f7-block-title-font-weight); + line-height: var(--f7-block-title-line-height); + margin-top: var(--f7-block-margin-vertical); + margin-bottom: var(--f7-block-title-margin-bottom); + margin-left: calc(var(--f7-block-padding-horizontal) + var(--f7-safe-area-left)); + margin-right: calc(var(--f7-block-padding-horizontal) + var(--f7-safe-area-right)); +} +.block-title + .list, +.block-title + .block, +.block-title + .card, +.block-title + .timeline, +.block-title + .block-header { + margin-top: 0px; +} +.block-title-medium { + font-size: var(--f7-block-title-medium-font-size); + text-transform: var(--f7-block-title-medium-text-transform); + color: var(--f7-block-title-medium-text-color); + font-weight: var(--f7-block-title-medium-font-weight); + line-height: var(--f7-block-title-medium-line-height); +} +.block-title-large { + font-size: var(--f7-block-title-large-font-size); + text-transform: var(--f7-block-title-large-text-transform); + color: var(--f7-block-title-large-text-color); + font-weight: var(--f7-block-title-large-font-weight); + line-height: var(--f7-block-title-large-line-height); +} +.block > .block-title:first-child, +.list > .block-title:first-child { + margin-top: 0; + margin-left: 0; + margin-right: 0; +} +.block-header { + color: var(--f7-block-header-text-color); + font-size: var(--f7-block-header-font-size); + margin-bottom: var(--f7-block-header-margin); + margin-top: var(--f7-block-margin-vertical); +} +.block-header + .list, +.block-header + .block, +.block-header + .card, +.block-header + .timeline { + margin-top: var(--f7-block-header-margin); +} +.block-footer { + color: var(--f7-block-footer-text-color); + font-size: var(--f7-block-footer-font-size); + margin-top: var(--f7-block-footer-margin); + margin-bottom: var(--f7-block-margin-vertical); +} +.block-footer, +.block-header { + padding-top: 0; + padding-bottom: 0; + padding-left: calc(var(--f7-block-padding-horizontal) + var(--f7-safe-area-left)); + padding-right: calc(var(--f7-block-padding-horizontal) + var(--f7-safe-area-right)); +} +.block-footer ul:first-child, +.block-header ul:first-child, +.block-footer p:first-child, +.block-header p:first-child, +.block-footer h1:first-child, +.block-header h1:first-child, +.block-footer h2:first-child, +.block-header h2:first-child, +.block-footer h3:first-child, +.block-header h3:first-child, +.block-footer h4:first-child, +.block-header h4:first-child { + margin-top: 0; +} +.block-footer ul:last-child, +.block-header ul:last-child, +.block-footer p:last-child, +.block-header p:last-child, +.block-footer h1:last-child, +.block-header h1:last-child, +.block-footer h2:last-child, +.block-header h2:last-child, +.block-footer h3:last-child, +.block-header h3:last-child, +.block-footer h4:last-child, +.block-header h4:last-child { + margin-bottom: 0; +} +.block-footer ul:first-child:last-child, +.block-header ul:first-child:last-child, +.block-footer p:first-child:last-child, +.block-header p:first-child:last-child, +.block-footer h1:first-child:last-child, +.block-header h1:first-child:last-child, +.block-footer h2:first-child:last-child, +.block-header h2:first-child:last-child, +.block-footer h3:first-child:last-child, +.block-header h3:first-child:last-child, +.block-footer h4:first-child:last-child, +.block-header h4:first-child:last-child { + margin-top: 0; + margin-bottom: 0; +} +.list .block-header, +.block .block-header, +.card .block-header, +.timeline .block-header { + margin-top: 0; +} +.list .block-footer, +.block .block-footer, +.card .block-footer, +.timeline .block-footer { + margin-bottom: 0; +} +.list + .block-footer, +.block + .block-footer, +.card + .block-footer, +.timeline + .block-footer { + margin-top: calc(-1 * (var(--f7-block-margin-vertical) - var(--f7-block-footer-margin))); +} +.block + .block-footer { + margin-top: calc(-1 * (var(--f7-block-margin-vertical) - var(--f7-block-footer-margin))); + margin-bottom: var(--f7-block-margin-vertical); +} +.block .block-header, +.block .block-footer { + padding: 0; +} +.block.inset { + border-radius: var(--f7-block-inset-border-radius); + margin-left: calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-left)); + margin-right: calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-right)); + --f7-safe-area-left: 0px; + --f7-safe-area-right: 0px; +} +.block-strong.inset:before, +.block-strong.inset:after { + display: none !important; +} +@media (min-width: 480px) { + .block.xsmall-inset { + border-radius: var(--f7-block-inset-border-radius); + margin-left: calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-left)); + margin-right: calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-right)); + --f7-safe-area-left: 0px; + --f7-safe-area-right: 0px; + } + .block-strong.xsmall-inset:before, + .block-strong.xsmall-inset:after { + display: none !important; + } +} +@media (min-width: 568px) { + .block.small-inset { + border-radius: var(--f7-block-inset-border-radius); + margin-left: calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-left)); + margin-right: calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-right)); + --f7-safe-area-left: 0px; + --f7-safe-area-right: 0px; + } + .block-strong.small-inset:before, + .block-strong.small-inset:after { + display: none !important; + } +} +@media (min-width: 768px) { + .block.medium-inset { + border-radius: var(--f7-block-inset-border-radius); + margin-left: calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-left)); + margin-right: calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-right)); + --f7-safe-area-left: 0px; + --f7-safe-area-right: 0px; + } + .block-strong.medium-inset:before, + .block-strong.medium-inset:after { + display: none !important; + } +} +@media (min-width: 1024px) { + .block.large-inset { + border-radius: var(--f7-block-inset-border-radius); + margin-left: calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-left)); + margin-right: calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-right)); + --f7-safe-area-left: 0px; + --f7-safe-area-right: 0px; + } + .block-strong.large-inset:before, + .block-strong.large-inset:after { + display: none !important; + } +} +@media (min-width: 1200px) { + .block.xlarge-inset { + border-radius: var(--f7-block-inset-border-radius); + margin-left: calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-left)); + margin-right: calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-right)); + --f7-safe-area-left: 0px; + --f7-safe-area-right: 0px; + } + .block-strong.xlarge-inset:before, + .block-strong.xlarge-inset:after { + display: none !important; + } +} +/* === List View === */ +:root { + --f7-list-inset-side-margin: 16px; + --f7-list-item-cell-margin: 16px; + --f7-list-item-padding-horizontal: 16px; + --f7-list-media-item-padding-horizontal: 16px; + --f7-list-item-text-max-lines: 2; + --f7-list-chevron-icon-font-size: 20px; + --f7-list-item-title-font-size: inherit; + --f7-list-item-title-font-weight: 400; + --f7-list-item-title-text-color: inherit; + --f7-list-item-title-line-height: inherit; + --f7-list-item-title-white-space: nowrap; + --f7-list-item-subtitle-font-weight: 400; + --f7-list-item-subtitle-text-color: inherit; + --f7-list-item-subtitle-line-height: inherit; + --f7-list-item-text-font-weight: 400; + --f7-list-item-after-font-weight: 400; + --f7-list-item-header-text-color: inherit; + --f7-list-item-header-font-size: 12px; + --f7-list-item-header-font-weight: 400; + --f7-list-item-header-line-height: 1.2; + --f7-list-item-footer-font-size: 12px; + --f7-list-item-footer-font-weight: 400; + --f7-list-item-footer-line-height: 1.2; + --f7-list-button-font-size: inherit; + --f7-list-button-font-weight: 400; + --f7-list-item-divider-line-height: inherit; + --f7-list-group-title-line-height: inherit; + --f7-list-bg-color: #fff; + --f7-list-chevron-icon-color: rgba(0, 0, 0, 0.2); +} +:root .theme-dark, +:root.theme-dark { + --f7-list-button-border-color: rgba(255, 255, 255, 0.15); + --f7-list-bg-color: #1c1c1d; + --f7-list-border-color: rgba(255, 255, 255, 0.15); + --f7-list-item-border-color: rgba(255, 255, 255, 0.15); + --f7-list-item-divider-border-color: rgba(255, 255, 255, 0.15); + --f7-list-item-divider-bg-color: #232323; + --f7-list-group-title-bg-color: #232323; + --f7-list-chevron-icon-color: rgba(255, 255, 255, 0.3); +} +.ios { + --f7-list-in-list-padding-left: 30px; + --f7-list-inset-border-radius: 8px; + --f7-list-margin-vertical: 35px; + --f7-list-font-size: 17px; + --f7-list-chevron-icon-area: 20px; + --f7-list-border-color: rgba(0, 0, 0, 0.22); + --f7-list-item-border-color: rgba(0, 0, 0, 0.22); + --f7-list-link-pressed-bg-color: rgba(0, 0, 0, 0.15); + --f7-list-item-subtitle-font-size: 15px; + --f7-list-item-text-font-size: 15px; + --f7-list-item-text-line-height: 21px; + --f7-list-item-after-font-size: inherit; + --f7-list-item-after-line-height: inherit; + --f7-list-item-after-padding: 5px; + --f7-list-item-min-height: 44px; + --f7-list-item-media-margin: 16px; + --f7-list-item-media-icons-margin: 5px; + --f7-list-item-padding-vertical: 8px; + --f7-list-media-item-padding-vertical: 10px; + --f7-list-media-item-title-font-weight: 600; + /* + --f7-list-button-text-color: var(--f7-theme-color); + */ + --f7-list-button-text-align: center; + --f7-list-button-border-color: rgba(0, 0, 0, 0.22); + --f7-list-item-divider-height: 31px; + --f7-list-item-divider-font-size: inherit; + --f7-list-item-divider-font-weight: 400; + --f7-list-item-divider-bg-color: rgba(0, 0, 0, 0.03); + --f7-list-item-divider-border-color: rgba(0, 0, 0, 0.22); + --f7-list-group-title-height: 31px; + --f7-list-group-title-font-size: inherit; + --f7-list-group-title-font-weight: 400; + --f7-list-group-title-bg-color: #f7f7f7; + --f7-list-item-after-text-color: rgba(0, 0, 0, 0.45); + --f7-list-item-footer-text-color: rgba(0, 0, 0, 0.45); + --f7-list-item-text-text-color: rgba(0, 0, 0, 0.45); + --f7-list-item-divider-text-color: rgba(0, 0, 0, 0.45); + --f7-list-group-title-text-color: rgba(0, 0, 0, 0.45); + --f7-list-button-pressed-bg-color: rgba(0, 0, 0, 0.15); +} +.ios .theme-dark, +.ios.theme-dark { + --f7-list-item-after-text-color: rgba(255, 255, 255, 0.55); + --f7-list-item-header-text-color: rgba(255, 255, 255, 0.55); + --f7-list-item-footer-text-color: rgba(255, 255, 255, 0.55); + --f7-list-item-text-text-color: rgba(255, 255, 255, 0.55); + --f7-list-item-divider-text-color: rgba(255, 255, 255, 0.55); + --f7-list-group-title-text-color: rgba(255, 255, 255, 0.55); + --f7-list-link-pressed-bg-color: rgba(255, 255, 255, 0.08); + --f7-list-button-pressed-bg-color: rgba(255, 255, 255, 0.08); +} +.md { + --f7-list-in-list-padding-left: 40px; + --f7-list-inset-border-radius: 4px; + --f7-list-margin-vertical: 32px; + --f7-list-font-size: 16px; + --f7-list-chevron-icon-area: 26px; + --f7-list-border-color: rgba(0, 0, 0, 0.12); + --f7-list-item-border-color: rgba(0, 0, 0, 0.12); + --f7-list-item-subtitle-font-size: 14px; + --f7-list-item-text-font-size: 14px; + --f7-list-item-text-line-height: 20px; + --f7-list-item-after-font-size: 14px; + --f7-list-item-after-line-height: inherit; + --f7-list-item-after-padding: 8px; + --f7-list-item-min-height: 48px; + --f7-list-item-media-margin: 16px; + --f7-list-item-media-icons-margin: 8px; + --f7-list-item-padding-vertical: 8px; + --f7-list-media-item-padding-vertical: 14px; + /* + --f7-list-media-item-title-font-weight: var(--f7-list-item-title-font-weight); + */ + --f7-list-button-text-align: left; + --f7-list-button-border-color: transparent; + --f7-list-item-divider-height: 48px; + --f7-list-item-divider-font-size: 14px; + --f7-list-item-divider-font-weight: 400; + --f7-list-item-divider-bg-color: #f4f4f4; + --f7-list-item-divider-border-color: transparent; + --f7-list-group-title-height: 48px; + --f7-list-group-title-font-size: 14px; + --f7-list-group-title-font-weight: 400; + --f7-list-group-title-bg-color: #f4f4f4; + --f7-list-link-pressed-bg-color: rgba(0, 0, 0, 0.1); + --f7-list-item-text-text-color: rgba(0, 0, 0, 0.54); + --f7-list-item-after-text-color: rgba(0, 0, 0, 0.54); + --f7-list-item-footer-text-color: rgba(0, 0, 0, 0.5); + --f7-list-button-text-color: #212121; + --f7-list-button-pressed-bg-color: rgba(0, 0, 0, 0.1); + --f7-list-item-divider-text-color: rgba(0, 0, 0, 0.54); + --f7-list-group-title-text-color: rgba(0, 0, 0, 0.54); +} +.md .theme-dark, +.md.theme-dark { + --f7-list-button-text-color: #fff; + --f7-list-item-divider-text-color: #fff; + --f7-list-group-title-text-color: #fff; + --f7-list-link-pressed-bg-color: rgba(255, 255, 255, 0.05); + --f7-list-button-pressed-bg-color: rgba(255, 255, 255, 0.05); + --f7-list-item-text-text-color: rgba(255, 255, 255, 0.54); + --f7-list-item-after-text-color: rgba(255, 255, 255, 0.54); + --f7-list-item-footer-text-color: rgba(255, 255, 255, 0.54); +} +.aurora { + --f7-list-in-list-padding-left: 16px; + --f7-list-inset-border-radius: 4px; + --f7-list-margin-vertical: 15px; + --f7-list-font-size: 14px; + --f7-list-chevron-icon-area: 15px; + --f7-list-chevron-icon-font-size: 16px; + --f7-list-border-color: rgba(0, 0, 0, 0.12); + --f7-list-item-border-color: rgba(0, 0, 0, 0.12); + --f7-list-item-title-line-height: 1.3; + --f7-list-item-subtitle-font-size: 14px; + --f7-list-item-subtitle-line-height: 1.3; + --f7-list-item-text-font-size: 12px; + --f7-list-item-text-line-height: 16px; + --f7-list-item-after-font-size: 13px; + --f7-list-item-after-line-height: 1.2; + --f7-list-item-after-padding: 5px; + --f7-list-item-min-height: 32px; + --f7-list-item-media-margin: 10px; + --f7-list-item-media-icons-margin: 5px; + --f7-list-item-padding-vertical: 5px; + --f7-list-media-item-padding-vertical: 5px; + --f7-list-media-item-title-font-weight: 600; + /* + --f7-list-button-text-color: var(--f7-theme-color); + */ + --f7-list-button-text-align: center; + --f7-list-button-border-color: rgba(0, 0, 0, 0.12); + --f7-list-item-divider-height: 19px; + --f7-list-item-divider-font-size: inherit; + --f7-list-item-divider-font-weight: 500; + --f7-list-item-divider-bg-color: rgba(0, 0, 0, 0.03); + --f7-list-item-divider-border-color: transparent; + --f7-list-group-title-height: 19px; + --f7-list-group-title-font-size: inherit; + --f7-list-group-title-font-weight: 500; + --f7-list-group-title-bg-color: #f7f7f7; + --f7-list-link-pressed-bg-color: rgba(0, 0, 0, 0.1); + --f7-list-link-hover-bg-color: rgba(0, 0, 0, 0.03); + --f7-list-item-text-text-color: rgba(0, 0, 0, 0.6); + --f7-list-item-after-text-color: rgba(0, 0, 0, 0.5); + --f7-list-item-footer-text-color: rgba(0, 0, 0, 0.6); + --f7-list-button-pressed-bg-color: rgba(0, 0, 0, 0.1); + --f7-list-button-hover-bg-color: rgba(0, 0, 0, 0.03); + --f7-list-item-divider-text-color: rgba(0, 0, 0, 0.6); + --f7-list-group-title-text-color: rgba(0, 0, 0, 0.6); +} +.aurora .theme-dark, +.aurora.theme-dark { + --f7-list-item-text-text-color: rgba(255, 255, 255, 0.54); + --f7-list-item-after-text-color: rgba(255, 255, 255, 0.54); + --f7-list-item-footer-text-color: rgba(255, 255, 255, 0.54); + --f7-list-item-divider-text-color: rgba(255, 255, 255, 0.6); + --f7-list-group-title-text-color: rgba(255, 255, 255, 0.6); + --f7-list-link-pressed-bg-color: rgba(255, 255, 255, 0.05); + --f7-list-link-hover-bg-color: rgba(255, 255, 255, 0.03); + --f7-list-button-pressed-bg-color: rgba(255, 255, 255, 0.05); + --f7-list-button-hover-bg-color: rgba(255, 255, 255, 0.03); +} +:root { + --f7-list-chevron-icon-left: 'chevron_left'; + --f7-list-chevron-icon-right: 'chevron_right'; +} +.aurora { + --f7-list-chevron-icon-left: 'chevron_left_aurora'; + --f7-list-chevron-icon-right: 'chevron_right_aurora'; +} +.list { + position: relative; + z-index: 1; + font-size: var(--f7-list-font-size); + margin: var(--f7-list-margin-vertical) 0; +} +.list ul { + list-style: none; + margin: 0; + padding: 0; + position: relative; + background: var(--f7-list-bg-color); +} +.list ul:before { + content: ''; + position: absolute; + background-color: var(--f7-list-border-color); + display: block; + z-index: 15; + top: 0; + right: auto; + bottom: auto; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 0%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +.list ul:after { + content: ''; + position: absolute; + background-color: var(--f7-list-border-color); + display: block; + z-index: 15; + top: auto; + right: auto; + bottom: 0; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 100%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +.list ul ul { + padding-right: calc(var(--f7-list-item-padding-horizontal) + var(--f7-list-in-list-padding-left)); +} +.list ul ul:before, +.list ul ul:after { + display: none !important; +} +.list li { + position: relative; + box-sizing: border-box; +} +.list .item-media { + display: flex; + flex-shrink: 0; + flex-wrap: nowrap; + align-items: center; + box-sizing: border-box; + padding-bottom: var(--f7-list-item-padding-vertical); + padding-top: var(--f7-list-item-padding-vertical); +} +.list .item-media + .item-inner { + margin-right: var(--f7-list-item-media-margin); +} +.list .item-media i + i, +.list .item-media i + img { + margin-right: var(--f7-list-item-media-icons-margin); +} +.list .item-after { + padding-right: var(--f7-list-item-after-padding); +} +.list .item-inner { + position: relative; + width: 100%; + min-width: 0; + display: flex; + justify-content: space-between; + box-sizing: border-box; + align-items: center; + align-self: stretch; + padding-top: var(--f7-list-item-padding-vertical); + padding-bottom: var(--f7-list-item-padding-vertical); + min-height: var(--f7-list-item-min-height); + padding-left: calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-left)); +} +.list .item-title { + min-width: 0; + flex-shrink: 1; + white-space: var(--f7-list-item-title-white-space); + position: relative; + overflow: hidden; + text-overflow: ellipsis; + max-width: 100%; + font-size: var(--f7-list-item-title-font-size); + font-weight: var(--f7-list-item-title-font-weight); + color: var(--f7-list-item-title-text-color); + line-height: var(--f7-list-item-title-line-height); +} +.list .item-after { + white-space: nowrap; + flex-shrink: 0; + display: flex; + font-size: var(--f7-list-item-after-font-size); + font-weight: var(--f7-list-item-after-font-weight); + color: var(--f7-list-item-after-text-color); + line-height: var(--f7-list-item-after-line-height); + margin-right: auto; +} +.list .item-header, +.list .item-footer { + white-space: normal; +} +.list .item-header { + color: var(--f7-list-item-header-text-color); + font-size: var(--f7-list-item-header-font-size); + font-weight: var(--f7-list-item-header-font-weight); + line-height: var(--f7-list-item-header-line-height); +} +.list .item-footer { + color: var(--f7-list-item-footer-text-color); + font-size: var(--f7-list-item-footer-font-size); + font-weight: var(--f7-list-item-footer-font-weight); + line-height: var(--f7-list-item-footer-line-height); +} +.list .item-link, +.list .list-button { + transition-duration: 300ms; + transition-property: background-color; + display: block; + position: relative; + overflow: hidden; + z-index: 0; +} +.list .item-link { + color: inherit; +} +.list .item-link.active-state { + background-color: var(--f7-list-link-pressed-bg-color); +} +.list .item-link .item-inner { + padding-left: calc(var(--f7-list-chevron-icon-area) + var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-left)); +} +.list .item-content { + display: flex; + justify-content: space-between; + box-sizing: border-box; + align-items: center; + min-height: var(--f7-list-item-min-height); + padding-right: calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-right)); +} +.list .item-subtitle { + position: relative; + overflow: hidden; + white-space: nowrap; + max-width: 100%; + text-overflow: ellipsis; + font-size: var(--f7-list-item-subtitle-font-size); + font-weight: var(--f7-list-item-subtitle-font-weight); + color: var(--f7-list-item-subtitle-text-color); + line-height: var(--f7-list-item-subtitle-line-height); +} +.list .item-text { + position: relative; + overflow: hidden; + text-overflow: ellipsis; + /* autoprefixer: ignore next */ + -webkit-line-clamp: var(--f7-list-item-text-max-lines); + /* autoprefixer: ignore next */ + -webkit-box-orient: vertical; + display: -webkit-box; + font-size: var(--f7-list-item-text-font-size); + font-weight: var(--f7-list-item-text-font-weight); + color: var(--f7-list-item-text-text-color); + line-height: var(--f7-list-item-text-line-height); + max-height: calc(var(--f7-list-item-text-line-height) * var(--f7-list-item-text-max-lines)); +} +.list .item-title-row { + position: relative; + display: flex; + justify-content: space-between; + box-sizing: border-box; +} +.list .item-title-row .item-after { + align-self: center; +} +.list .item-row { + display: flex; + justify-content: space-between; + box-sizing: border-box; +} +.list .item-cell { + display: block; + align-self: center; + box-sizing: border-box; + width: 100%; + min-width: 0; + margin-right: var(--f7-list-item-cell-margin); + flex-shrink: 1; +} +.list .item-cell:first-child { + margin-right: 0; +} +.list li:last-child .list-button:after { + display: none !important; +} +.list li:last-child > .item-inner:after, +.list li:last-child li:last-child > .item-inner:after, +.list li:last-child > .item-content > .item-inner:after, +.list li:last-child li:last-child > .item-content > .item-inner:after, +.list li:last-child > .swipeout-content > .item-content > .item-inner:after, +.list li:last-child li:last-child > .swipeout-content > .item-content > .item-inner:after, +.list li:last-child > .item-link > .item-content > .item-inner:after, +.list li:last-child li:last-child > .item-link > .item-content > .item-inner:after { + display: none !important; +} +.list li li:last-child .item-inner:after, +.list li:last-child li .item-inner:after { + content: ''; + position: absolute; + background-color: var(--f7-list-item-border-color); + display: block; + z-index: 15; + top: auto; + right: auto; + bottom: 0; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 100%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +.list.no-hairlines:before, +.list.no-hairlines ul:before, +.md .list.no-hairlines-md:before, +.md .list.no-hairlines-md ul:before, +.ios .list.no-hairlines-ios:before, +.ios .list.no-hairlines-ios ul:before, +.aurora .list.no-hairlines-aurora:before, +.aurora .list.no-hairlines-aurora ul:before, +.list.no-hairlines:after, +.list.no-hairlines ul:after, +.md .list.no-hairlines-md:after, +.md .list.no-hairlines-md ul:after, +.ios .list.no-hairlines-ios:after, +.ios .list.no-hairlines-ios ul:after, +.aurora .list.no-hairlines-aurora:after, +.aurora .list.no-hairlines-aurora ul:after { + display: none !important; +} +.list.no-hairline-top:before, +.list.no-hairline-top ul:before, +.md .list.no-hairline-top-md:before, +.md .list.no-hairline-top-md ul:before, +.ios .list.no-hairline-top-ios:before, +.ios .list.no-hairline-top-ios ul:before, +.aurora .list.no-hairline-top-aurora:before, +.aurora .list.no-hairline-top-aurora ul:before { + display: none !important; +} +.list.no-hairline-bottom:after, +.list.no-hairline-bottom ul:after, +.md .list.no-hairline-bottom-md:after, +.md .list.no-hairline-bottom-md ul:after, +.ios .list.no-hairline-bottom-ios:after, +.ios .list.no-hairline-bottom-ios ul:after, +.aurora .list.no-hairline-bottom-aurora:after, +.aurora .list.no-hairline-bottom-aurora ul:after { + display: none !important; +} +.list.no-hairlines-between .item-inner:after, +.md .list.no-hairlines-between-md .item-inner:after, +.ios .list.no-hairlines-between-ios .item-inner:after, +.aurora .list.no-hairlines-between-aurora .item-inner:after, +.list.no-hairlines-between .list-button:after, +.md .list.no-hairlines-between-md .list-button:after, +.ios .list.no-hairlines-between-ios .list-button:after, +.aurora .list.no-hairlines-between-aurora .list-button:after, +.list.no-hairlines-between .item-divider:after, +.md .list.no-hairlines-between-md .item-divider:after, +.ios .list.no-hairlines-between-ios .item-divider:after, +.aurora .list.no-hairlines-between-aurora .item-divider:after, +.list.no-hairlines-between .list-group-title:after, +.md .list.no-hairlines-between-md .list-group-title:after, +.ios .list.no-hairlines-between-ios .list-group-title:after, +.aurora .list.no-hairlines-between-aurora .list-group-title:after, +.list.no-hairlines-between .list-group-title:after, +.md .list.no-hairlines-between-md .list-group-title:after, +.ios .list.no-hairlines-between-ios .list-group-title:after, +.aurora .list.no-hairlines-between-aurora .list-group-title:after { + display: none !important; +} +.list.no-hairlines-between.simple-list li:after, +.md .list.no-hairlines-between-md.simple-list li:after, +.ios .list.no-hairlines-between-ios.simple-list li:after, +.aurora .list.no-hairlines-between-aurora.simple-list li:after { + display: none !important; +} +.list.no-hairlines-between.links-list a:after, +.md .list.no-hairlines-between-md.links-list a:after, +.ios .list.no-hairlines-between-ios.links-list a:after, +.aurora .list.no-hairlines-between-aurora.links-list a:after { + display: none !important; +} +.list-button { + padding: 0 var(--f7-list-item-padding-horizontal); + line-height: var(--f7-list-item-min-height); + color: var(--f7-list-button-text-color, var(--f7-theme-color)); + font-size: var(--f7-list-button-font-size); + font-weight: var(--f7-list-button-font-weight); + text-align: var(--f7-list-button-text-align); +} +.list-button:after { + content: ''; + position: absolute; + background-color: var(--f7-list-button-border-color); + display: block; + z-index: 15; + top: auto; + right: auto; + bottom: 0; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 100%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +.list-button.active-state { + background-color: var(--f7-list-button-pressed-bg-color); +} +.list-button[class*="color-"] { + --f7-list-button-text-color: var(--f7-theme-color); +} +.simple-list li { + position: relative; + white-space: nowrap; + text-overflow: ellipsis; + max-width: 100%; + box-sizing: border-box; + display: flex; + justify-content: space-between; + align-items: center; + align-content: center; + line-height: var(--f7-list-item-min-height); + height: var(--f7-list-item-min-height); + padding-left: calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-left)); + padding-right: calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-right)); +} +.simple-list li:after { + left: var(--f7-list-item-padding-horizontal); + right: 0; + width: auto; + right: calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-right)); + left: 0; +} +.simple-list li:last-child:after { + display: none !important; +} +.links-list li { + z-index: 1; +} +.links-list a { + transition-duration: 300ms; + transition-property: background-color; + display: block; + position: relative; + overflow: hidden; + display: flex; + align-items: center; + align-content: center; + justify-content: space-between; + box-sizing: border-box; + white-space: nowrap; + text-overflow: ellipsis; + max-width: 100%; + height: var(--f7-list-item-min-height); + color: inherit; +} +.links-list a .ripple-wave { + z-index: 0; +} +.links-list a:after { + width: auto; +} +.links-list a.active-state { + background-color: var(--f7-list-link-pressed-bg-color); +} +.links-list a { + padding-right: calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-right)); + padding-left: calc(var(--f7-list-chevron-icon-area) + var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-left)); +} +.links-list a:after { + right: calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-right)); + left: 0; +} +.links-list li:last-child a:after { + display: none !important; +} +.simple-list li:after, +.links-list a:after, +.list .item-inner:after { + content: ''; + position: absolute; + background-color: var(--f7-list-item-border-color); + display: block; + z-index: 15; + top: auto; + right: auto; + bottom: 0; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 100%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +.media-list, +li.media-item { + --f7-list-item-padding-vertical: var(--f7-list-media-item-padding-vertical); + --f7-list-item-padding-horizontal: var(--f7-list-media-item-padding-horizontal); +} +.media-list .item-title, +li.media-item .item-title { + font-weight: var(--f7-list-media-item-title-font-weight, var(--f7-list-item-title-font-weight, inherit)); +} +.media-list .item-inner, +li.media-item .item-inner { + display: block; + align-self: stretch; +} +.media-list .item-media, +li.media-item .item-media { + align-self: flex-start; +} +.media-list .item-media img, +li.media-item .item-media img { + display: block; +} +.media-list .item-link .item-inner, +li.media-item .item-link .item-inner { + padding-left: calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-left)); +} +.media-list .item-link .item-title-row, +li.media-item .item-link .item-title-row { + padding-left: calc(var(--f7-list-chevron-icon-area)); +} +.media-list.chevron-center .item-link .item-inner, +.media-list .chevron-center .item-link .item-inner, +.media-list .item-link.chevron-center .item-inner, +li.media-item.chevron-center .item-link .item-inner, +li.media-item .item-link.chevron-center .item-inner, +li.media-item .chevron-center .item-link .item-inner { + padding-left: calc(var(--f7-list-chevron-icon-area) + var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-left)); +} +.media-list.chevron-center .item-title-row, +.media-list .chevron-center .item-title-row, +li.media-item.chevron-center .item-title-row, +li.media-item .chevron-center .item-title-row { + padding-left: 0; +} +.list .item-link .item-inner:before, +.links-list a:before, +.media-list .item-link .item-title-row:before, +li.media-item .item-link .item-title-row:before, +.media-list.chevron-center .item-link .item-inner:before, +.media-list .chevron-center .item-link .item-inner:before, +.media-list .item-link.chevron-center .item-inner:before, +li.media-item.chevron-center .item-link .item-inner:before, +li.media-item .chevron-center .item-link .item-inner:before, +li.media-item .item-link.chevron-center .item-inner:before { + font-family: 'framework7-core-icons'; + font-weight: normal; + font-style: normal; + line-height: 1; + letter-spacing: normal; + text-transform: none; + white-space: nowrap; + word-wrap: normal; + direction: ltr; + -webkit-font-smoothing: antialiased; + text-rendering: optimizeLegibility; + -moz-osx-font-smoothing: grayscale; + font-feature-settings: "liga"; + text-align: center; + display: block; + width: 100%; + height: 100%; + font-size: 20px; + position: absolute; + top: 50%; + width: 8px; + height: 14px; + margin-top: -7px; + font-size: var(--f7-list-chevron-icon-font-size); + line-height: 14px; + color: var(--f7-list-chevron-icon-color); + pointer-events: none; + left: calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-left)); + content: var(--f7-list-chevron-icon-left); +} +.media-list.chevron-center .item-title-row:before, +.media-list .chevron-center .item-title-row:before, +li.media-item.chevron-center .item-title-row:before, +li.media-item .chevron-center .item-title-row:before { + display: none; +} +.media-list .item-link .item-inner:before, +li.media-item .item-link .item-inner:before { + display: none; +} +.media-list .item-link .item-title-row:before, +li.media-item .item-link .item-title-row:before { + left: 0; +} +.list-group ul:after, +.list-group ul:before { + z-index: 25 !important; +} +.list-group + .list-group ul:before { + display: none !important; +} +li.item-divider, +.item-divider, +li.list-group-title { + white-space: nowrap; + position: relative; + max-width: 100%; + text-overflow: ellipsis; + overflow: hidden; + z-index: 15; + padding-top: 0; + padding-bottom: 0; + padding-left: calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-left)); + padding-right: calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-right)); + box-sizing: border-box; + display: flex; + align-items: center; + align-content: center; +} +li.item-divider:after, +.item-divider:after, +li.list-group-title:after { + display: none !important; +} +li.item-divider, +.item-divider { + margin-top: -1px; + height: var(--f7-list-item-divider-height); + color: var(--f7-list-item-divider-text-color); + font-size: var(--f7-list-item-divider-font-size); + font-weight: var(--f7-list-item-divider-font-weight); + background-color: var(--f7-list-item-divider-bg-color); + line-height: var(--f7-list-item-divider-line-height); +} +li.item-divider:before, +.item-divider:before { + content: ''; + position: absolute; + background-color: var(--f7-list-item-divider-border-color); + display: block; + z-index: 15; + top: 0; + right: auto; + bottom: auto; + left: 0; + height: 1px; + width: 100%; + transform-origin: 50% 0%; + transform: scaleY(calc(1 / var(--f7-device-pixel-ratio))); +} +li.list-group-title, +.list li.list-group-title { + position: relative; + position: -webkit-sticky; + position: sticky; + top: 0; + margin-top: 0; + z-index: 20; + height: var(--f7-list-group-title-height); + color: var(--f7-list-group-title-text-color); + font-size: var(--f7-list-group-title-font-size); + font-weight: var(--f7-list-group-title-font-weight); + background-color: var(--f7-list-group-title-bg-color); + line-height: var(--f7-list-group-title-line-height); +} +.page-with-navbar-large li.list-group-title, +.page-with-navbar-large .list li.list-group-title { + top: calc(-1 * var(--f7-navbar-large-title-height)); +} +.list.inset { + margin-left: calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-left)); + margin-right: calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-right)); + border-radius: var(--f7-list-inset-border-radius); + --f7-safe-area-left: 0px; + --f7-safe-area-right: 0px; +} +.list.inset .block-title { + margin-left: 0; + margin-right: 0; +} +.list.inset ul { + border-radius: var(--f7-list-inset-border-radius); +} +.list.inset ul:before, +.list.inset ul:after { + display: none !important; +} +.list.inset li.swipeout:first-child, +.list.inset li:first-child > a { + border-radius: var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius) 0 0; +} +.list.inset li.swipeout:last-child, +.list.inset li:last-child > a { + border-radius: 0 0 var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius); +} +.list.inset li.swipeout:first-child:last-child, +.list.inset li:first-child:last-child > a { + border-radius: var(--f7-list-inset-border-radius); +} +@media (min-width: 480px) { + .list.xsmall-inset { + margin-left: calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-left)); + margin-right: calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-right)); + border-radius: var(--f7-list-inset-border-radius); + --f7-safe-area-left: 0px; + --f7-safe-area-right: 0px; + } + .list.xsmall-inset .block-title { + margin-left: 0; + margin-right: 0; + } + .list.xsmall-inset ul { + border-radius: var(--f7-list-inset-border-radius); + } + .list.xsmall-inset ul:before, + .list.xsmall-inset ul:after { + display: none !important; + } + .list.xsmall-inset li:first-child > a { + border-radius: var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius) 0 0; + } + .list.xsmall-inset li:last-child > a { + border-radius: 0 0 var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius); + } + .list.xsmall-inset li:first-child:last-child > a { + border-radius: var(--f7-list-inset-border-radius); + } +} +@media (min-width: 568px) { + .list.small-inset { + margin-left: calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-left)); + margin-right: calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-right)); + border-radius: var(--f7-list-inset-border-radius); + --f7-safe-area-left: 0px; + --f7-safe-area-right: 0px; + } + .list.small-inset .block-title { + margin-left: 0; + margin-right: 0; + } + .list.small-inset ul { + border-radius: var(--f7-list-inset-border-radius); + } + .list.small-inset ul:before, + .list.small-inset ul:after { + display: none !important; + } + .list.small-inset li:first-child > a { + border-radius: var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius) 0 0; + } + .list.small-inset li:last-child > a { + border-radius: 0 0 var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius); + } + .list.small-inset li:first-child:last-child > a { + border-radius: var(--f7-list-inset-border-radius); + } +} +@media (min-width: 768px) { + .list.medium-inset { + margin-left: calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-left)); + margin-right: calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-right)); + border-radius: var(--f7-list-inset-border-radius); + --f7-safe-area-left: 0px; + --f7-safe-area-right: 0px; + } + .list.medium-inset .block-title { + margin-left: 0; + margin-right: 0; + } + .list.medium-inset ul { + border-radius: var(--f7-list-inset-border-radius); + } + .list.medium-inset ul:before, + .list.medium-inset ul:after { + display: none !important; + } + .list.medium-inset li:first-child > a { + border-radius: var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius) 0 0; + } + .list.medium-inset li:last-child > a { + border-radius: 0 0 var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius); + } + .list.medium-inset li:first-child:last-child > a { + border-radius: var(--f7-list-inset-border-radius); + } +} +@media (min-width: 1024px) { + .list.large-inset { + margin-left: calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-left)); + margin-right: calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-right)); + border-radius: var(--f7-list-inset-border-radius); + --f7-safe-area-left: 0px; + --f7-safe-area-right: 0px; + } + .list.large-inset .block-title { + margin-left: 0; + margin-right: 0; + } + .list.large-inset ul { + border-radius: var(--f7-list-inset-border-radius); + } + .list.large-inset ul:before, + .list.large-inset ul:after { + display: none !important; + } + .list.large-inset li:first-child > a { + border-radius: var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius) 0 0; + } + .list.large-inset li:last-child > a { + border-radius: 0 0 var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius); + } + .list.large-inset li:first-child:last-child > a { + border-radius: var(--f7-list-inset-border-radius); + } +} +@media (min-width: 1200px) { + .list.xlarge-inset { + margin-left: calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-left)); + margin-right: calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-right)); + border-radius: var(--f7-list-inset-border-radius); + --f7-safe-area-left: 0px; + --f7-safe-area-right: 0px; + } + .list.xlarge-inset .block-title { + margin-left: 0; + margin-right: 0; + } + .list.xlarge-inset ul { + border-radius: var(--f7-list-inset-border-radius); + } + .list.xlarge-inset ul:before, + .list.xlarge-inset ul:after { + display: none !important; + } + .list.xlarge-inset li:first-child > a { + border-radius: var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius) 0 0; + } + .list.xlarge-inset li:last-child > a { + border-radius: 0 0 var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius); + } + .list.xlarge-inset li:first-child:last-child > a { + border-radius: var(--f7-list-inset-border-radius); + } +} +.list.no-chevron, +.list .no-chevron { + --f7-list-chevron-icon-color: transparent; + --f7-list-chevron-icon-area: 0px; +} +.ios .item-link.active-state .item-inner:after, +.ios .list-button.active-state:after, +.ios .links-list a.active-state:after { + background-color: transparent; +} +.ios .links-list a.active-state, +.ios .list .item-link.active-state, +.ios .list .list-button.active-state { + transition-duration: 0ms; +} +.md .list .item-media { + min-width: 40px; +} +.aurora .list .item-media { + min-width: 18px; +} +.aurora .links-list a, +.aurora .list .item-link, +.aurora .list .list-button { + transition-duration: 0ms; +} +.aurora.device-desktop .links-list a:hover:not(.active-state):not(.no-hover), +.aurora.device-desktop .list .item-link:hover:not(.active-state):not(.no-hover) { + background: var(--f7-list-link-hover-bg-color); +} +.aurora.device-desktop .list .list-button:hover:not(.active-state):not(.no-hover) { + background: var(--f7-list-button-hover-bg-color); +} +/* === Badge === */ +:root { + --f7-badge-text-color: #fff; + --f7-badge-bg-color: #8e8e93; + --f7-badge-padding: 0 4px; + --f7-badge-in-icon-size: 16px; + --f7-badge-in-icon-font-size: 10px; + --f7-badge-font-weight: normal; + --f7-badge-font-size: 12px; +} +.ios { + --f7-badge-size: 20px; +} +.md { + --f7-badge-size: 18px; +} +.aurora { + --f7-badge-size: 18px; + --f7-badge-font-weight: 600; + --f7-badge-in-icon-size: 15px; +} +.badge { + display: inline-flex; + align-items: center; + align-content: center; + justify-content: center; + color: var(--f7-badge-text-color); + background: var(--f7-badge-bg-color); + position: relative; + box-sizing: border-box; + text-align: center; + vertical-align: middle; + font-weight: var(--f7-badge-font-weight); + font-size: var(--f7-badge-font-size); + border-radius: var(--f7-badge-size); + padding: var(--f7-badge-padding); + height: var(--f7-badge-size); + min-width: var(--f7-badge-size); +} +.icon .badge, +.f7-icons .badge, +.framework7-icons .badge, +.material-icons .badge { + position: absolute; + left: 100%; + margin-left: -10px; + top: -2px; + font-family: var(--f7-font-family); + --f7-badge-font-size: var(--f7-badge-in-icon-font-size); + --f7-badge-size: var(--f7-badge-in-icon-size); +} +.badge[class*="color-"] { + --f7-badge-bg-color: var(--f7-theme-color); +} +:root { + --f7-button-min-width: 32px; + --f7-button-bg-color: transparent; + --f7-button-border-width: 0px; + /* + --f7-button-text-color: var(--f7-theme-color); + --f7-button-pressed-text-color: var(--f7-button-text-color, var(--f7-theme-color)); + --f7-button-border-color: var(--f7-theme-color); + --f7-button-fill-text-color: #fff; + --f7-button-fill-bg-color: var(--f7-theme-color); + --f7-button-outline-border-color: var(--f7-theme-color); + */ + --f7-button-outline-border-width: 2px; + --f7-button-raised-box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0,0,0,0.24); + --f7-button-raised-pressed-box-shadow: 0 3px 6px rgba(0, 0, 0, 0.16), 0 3px 6px rgba(0,0,0,0.23); + --f7-segmented-raised-divider-color: rgba(0, 0, 0, 0.1); + --f7-segmented-strong-padding: 2px; + --f7-segmented-strong-between-buttons: 4px; + --f7-segmented-strong-button-font-weight: 500; + --f7-segmented-strong-button-active-box-shadow: 0px 2px 2px rgba(0, 0, 0, 0.25); + --f7-segmented-strong-bg-color: rgba(0, 0, 0, 0.07); + --f7-segmented-strong-button-text-color: #000; + --f7-segmented-strong-button-pressed-bg-color: rgba(0, 0, 0, 0.07); + --f7-segmented-strong-button-hover-bg-color: rgba(0, 0, 0, 0.04); + --f7-segmented-strong-button-active-text-color: #000; + --f7-segmented-strong-button-active-bg-color: #fff; +} +:root .theme-dark, +:root.theme-dark { + --f7-segmented-strong-bg-color: rgba(255, 255, 255, 0.1); + --f7-segmented-strong-button-pressed-bg-color: rgba(255, 255, 255, 0.04); + --f7-segmented-strong-button-hover-bg-color: rgba(255, 255, 255, 0.02); + --f7-segmented-strong-button-active-bg-color: rgba(255, 255, 255, 0.14); + --f7-segmented-strong-button-text-color: #fff; + --f7-segmented-strong-button-active-text-color: #fff; +} +.ios { + --f7-button-font-size: 13px; + --f7-button-height: 28px; + --f7-button-padding-horizontal: 10px; + --f7-button-border-radius: 5px; + --f7-button-font-weight: 600; + --f7-button-letter-spacing: 0; + --f7-button-text-transform: uppercase; + /* + --f7-button-pressed-bg-color: rgba(var(--f7-theme-color-rgb), .15); + --f7-button-fill-pressed-bg-color: var(--f7-theme-color-tint); + */ + --f7-button-large-height: 44px; + --f7-button-large-font-size: 17px; + --f7-button-large-font-weight: 500; + --f7-button-large-text-transform: none; + --f7-button-small-height: 26px; + --f7-button-small-font-size: 13px; + --f7-button-small-font-weight: 600; + --f7-button-small-text-transform: uppercase; + --f7-button-small-outline-border-width: 2px; + --f7-segmented-strong-button-text-transform: none; + --f7-segmented-strong-button-active-font-weight: 600; +} +.md { + --f7-button-font-size: 14px; + --f7-button-height: 36px; + --f7-button-padding-horizontal: 8px; + --f7-button-border-radius: 4px; + --f7-button-font-weight: 500; + --f7-button-letter-spacing: 0.03em; + --f7-button-text-transform: uppercase; + /* + --f7-button-fill-pressed-bg-color: var(--f7-theme-color-shade); + */ + --f7-button-large-height: 48px; + --f7-button-large-font-size: 14px; + --f7-button-large-font-weight: 500; + --f7-button-large-text-transform: uppercase; + --f7-button-small-height: 28px; + --f7-button-small-font-size: 12px; + --f7-button-small-font-weight: 500; + --f7-button-small-text-transform: uppercase; + --f7-button-small-outline-border-width: 2px; + --f7-segmented-strong-button-text-transform: uppercase; + --f7-segmented-strong-button-active-font-weight: 500; + --f7-button-pressed-bg-color: rgba(0, 0, 0, 0.1); +} +.md .theme-dark, +.md.theme-dark { + --f7-button-pressed-bg-color: rgba(255, 255, 255, 0.1); +} +.aurora { + /* + --f7-button-hover-bg-color: rgba(var(--f7-theme-color-rgb), .07); + --f7-button-fill-hover-bg-color: var(--f7-theme-color-tint); + */ + --f7-button-font-size: 14px; + --f7-button-height: 28px; + --f7-button-min-width: 24px; + --f7-button-padding-horizontal: 10px; + --f7-button-border-radius: 4px; + --f7-button-font-weight: 500; + --f7-button-letter-spacing: 0.02; + --f7-button-text-transform: none; + /* + --f7-button-pressed-bg-color: rgba(var(--f7-theme-color-rgb), .15); + --f7-button-fill-pressed-bg-color: var(--f7-theme-color-shade); + */ + --f7-button-large-height: 34px; + --f7-button-large-font-size: 14px; + --f7-button-large-font-weight: 600; + --f7-button-large-text-transform: none; + --f7-button-small-height: 24px; + --f7-button-small-font-size: 12px; + --f7-button-small-font-weight: 600; + --f7-button-small-text-transform: none; + --f7-button-small-outline-border-width: 1px; + --f7-segmented-strong-button-text-transform: none; + --f7-segmented-strong-button-active-font-weight: 600; +} +button { + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + width: 100%; +} +.button { + text-decoration: none; + text-align: center; + display: block; + -webkit-appearance: none; + -moz-appearance: none; + appearance: none; + background: none; + margin: 0; + white-space: nowrap; + text-overflow: ellipsis; + position: relative; + overflow: hidden; + font-family: inherit; + cursor: pointer; + outline: 0; + box-sizing: border-box; + vertical-align: middle; + justify-content: center; + align-items: center; + border: var(--f7-button-border-width, 0px) solid var(--f7-button-border-color, var(--f7-theme-color)); + font-size: var(--f7-button-font-size); + color: var(--f7-button-text-color, var(--f7-theme-color)); + height: var(--f7-button-height); + line-height: calc(var(--f7-button-height) - var(--f7-button-border-width, 0) * 2); + padding: var(--f7-button-padding-vertical, 0px) var(--f7-button-padding-horizontal); + border-radius: var(--f7-button-border-radius); + min-width: var(--f7-button-min-width); + font-weight: var(--f7-button-font-weight); + letter-spacing: var(--f7-button-letter-spacing); + text-transform: var(--f7-button-text-transform); + background-color: var(--f7-button-bg-color); + box-shadow: var(--f7-button-box-shadow); +} +.button.active-state { + background-color: var(--f7-button-pressed-bg-color, rgba(var(--f7-theme-color-rgb), 0.15)); + color: var(--f7-button-pressed-text-color, var(--f7-button-text-color, var(--f7-theme-color))); +} +input[type="submit"].button, +input[type="button"].button { + width: 100%; +} +.button > i + span, +.button > span + span, +.button > span + i, +.button > i + i { + margin-right: 4px; +} +.subnavbar .button, +.navbar .button, +.toolbar .button, +.searchbar .button, +.appbar .button { + color: var(--f7-button-text-color, var(--f7-theme-color)); +} +.button-round, +.ios .button-round-ios, +.md .button-round-md, +.aurora .button-round-aurora { + --f7-button-border-radius: var(--f7-button-height); +} +.button-fill, +.ios .button-fill-ios, +.md .button-fill-md, +.aurora .button-fill-aurora, +.button-active, +.button.tab-link-active { + --f7-button-bg-color: var(--f7-button-fill-bg-color, var(--f7-theme-color)); + --f7-button-text-color: var(--f7-button-fill-text-color, #fff); + --f7-touch-ripple-color: var(--f7-touch-ripple-white); +} +.button-fill, +.ios .button-fill-ios, +.md .button-fill-md, +.aurora .button-fill-aurora { + --f7-button-pressed-bg-color: var(--f7-button-fill-pressed-bg-color); +} +.button-active, +.button.tab-link-active { + --f7-button-pressed-bg-color: var(--f7-button-bg-color); +} +.button-outline, +.ios .button-outline-ios, +.md .button-outline-md, +.aurora .button-outline-aurora { + --f7-button-border-color: var(--f7-button-outline-border-color, var(--f7-theme-color)); + --f7-button-border-width: var(--f7-button-outline-border-width); +} +.button-large, +.ios .button-large-ios, +.md .button-large-md, +.aurora .button-large-aurora { + --f7-button-height: var(--f7-button-large-height); + --f7-button-font-size: var(--f7-button-large-font-size); + --f7-button-font-weight: var(--f7-button-large-font-weight); + --f7-button-text-transform: var(--f7-button-large-text-transform); +} +.button-small, +.ios .button-small-ios, +.md .button-small-md, +.aurora .button-small-aurora { + --f7-button-outline-border-width: var(--f7-button-small-outline-border-width); + --f7-button-height: var(--f7-button-small-height); + --f7-button-font-size: var(--f7-button-small-font-size); + --f7-button-font-weight: var(--f7-button-small-font-weight); + --f7-button-text-transform: var(--f7-button-small-text-transform); +} +.ios .button-small.button-fill, +.ios .button-small-ios.button-fill, +.ios .button-small.button-fill-ios { + --f7-button-border-width: var(--f7-button-small-outline-border-width); + --f7-button-pressed-text-color: var(--f7-theme-color); + --f7-button-pressed-bg-color: transparent; +} +.segmented { + align-self: center; + display: flex; + flex-wrap: nowrap; + border-radius: var(--f7-button-border-radius); + box-shadow: var(--f7-button-box-shadow); + box-sizing: border-box; +} +.segmented .button, +.segmented button { + width: 100%; + flex-shrink: 1; + min-width: 0; + border-radius: 0; +} +.segmented .button:first-child { + border-radius: 0 var(--f7-button-border-radius) var(--f7-button-border-radius) 0; +} +.segmented .button:not(.button-outline):first-child { + border-right: none; +} +.segmented .button.button-outline:nth-child(n + 2) { + border-right: none; +} +.segmented .button:last-child { + border-radius: var(--f7-button-border-radius) 0 0 var(--f7-button-border-radius); +} +.segmented .button-round:first-child { + border-radius: 0 var(--f7-button-height) var(--f7-button-height) 0; +} +.segmented .button-round:last-child { + border-radius: var(--f7-button-height) 0 0 var(--f7-button-height); +} +.segmented .button:first-child:last-child { + border-radius: var(--f7-button-border-radius); +} +.segmented-raised, +.ios .segmented-raised-ios, +.md .segmented-raised-md, +.aurora .segmented-raised-aurora { + box-shadow: var(--f7-button-raised-box-shadow); +} +.segmented-raised .button:not(.button-outline), +.ios .segmented-raised-ios .button:not(.button-outline), +.md .segmented-raised-md .button:not(.button-outline), +.aurora .segmented-raised-aurora .button:not(.button-outline) { + border-right: 1px solid var(--f7-segmented-raised-divider-color); +} +.button-raised, +.ios .button-raised-ios, +.md .button-raised-md, +.aurora .button-raised-aurora { + --f7-button-box-shadow: var(--f7-button-raised-box-shadow); +} +.button-raised.active-state, +.ios .button-raised-ios.active-state, +.md .button-raised-md.active-state, +.aurora .button-raised-aurora.active-state { + --f7-button-box-shadow: var(--f7-button-raised-pressed-box-shadow); +} +.segmented-strong, +.ios .segmented-strong-ios, +.md .segmented-strong-md, +.aurora .segmented-strong-aurora { + --f7-button-bg-color: transparent; + --f7-button-hover-bg-color: var(--f7-segmented-strong-button-hover-bg-color); + --f7-button-text-color: var(--f7-segmented-strong-button-text-color); + --f7-button-font-weight: var(--f7-segmented-strong-button-font-weight); + --f7-button-text-transform: var(--f7-segmented-strong-button-text-transform); + --f7-button-pressed-bg-color: var(--f7-segmented-strong-button-pressed-bg-color); + position: relative; + background: var(--f7-segmented-strong-bg-color); + border-radius: calc(var(--f7-button-border-radius) + 2px); + box-shadow: none; + padding: var(--f7-segmented-strong-padding); + overflow: hidden; +} +.segmented-strong .button, +.ios .segmented-strong-ios .button, +.md .segmented-strong-md .button, +.aurora .segmented-strong-aurora .button { + z-index: 1; + transform: translate3d(0, 0, 0); +} +.segmented-strong .button, +.ios .segmented-strong-ios .button, +.md .segmented-strong-md .button, +.aurora .segmented-strong-aurora .button, +.segmented-strong .button:first-child, +.ios .segmented-strong-ios .button:first-child, +.md .segmented-strong-md .button:first-child, +.aurora .segmented-strong-aurora .button:first-child, +.segmented-strong .button:last-child, +.ios .segmented-strong-ios .button:last-child, +.md .segmented-strong-md .button:last-child, +.aurora .segmented-strong-aurora .button:last-child { + border-radius: var(--f7-button-border-radius); +} +.segmented-strong .button + .button, +.ios .segmented-strong-ios .button + .button, +.md .segmented-strong-md .button + .button, +.aurora .segmented-strong-aurora .button + .button { + margin-right: var(--f7-segmented-strong-between-buttons); +} +.segmented-strong .button.button-active, +.ios .segmented-strong-ios .button.button-active, +.md .segmented-strong-md .button.button-active, +.aurora .segmented-strong-aurora .button.button-active, +.segmented-strong .button.tab-link-active, +.ios .segmented-strong-ios .button.tab-link-active, +.md .segmented-strong-md .button.tab-link-active, +.aurora .segmented-strong-aurora .button.tab-link-active { + --f7-button-hover-bg-color: transparent; + --f7-button-bg-color: transparent; + --f7-button-text-color: var(--f7-segmented-strong-button-active-text-color); + --f7-button-font-weight: var(--f7-segmented-strong-button-active-font-weight); +} +.segmented-strong .segmented-highlight, +.ios .segmented-strong-ios .segmented-highlight, +.md .segmented-strong-md .segmented-highlight, +.aurora .segmented-strong-aurora .segmented-highlight { + --f7-segmented-highlight-num: 1; + --f7-segmented-highlight-active: 0; + --f7-segmented-highlight-padding: calc(var(--f7-segmented-strong-padding) * 2); + --f7-segmented-highlight-between: var(--f7-segmented-strong-between-buttons); + --f7-segmented-highlight-width: calc((100% - var(--f7-segmented-highlight-padding) - var(--f7-segmented-highlight-between) * (var(--f7-segmented-highlight-num) - 1)) / var(--f7-segmented-highlight-num)); + position: absolute; + background-color: var(--f7-segmented-strong-button-active-bg-color); + border-radius: var(--f7-button-border-radius); + box-shadow: var(--f7-segmented-strong-button-active-box-shadow); + left: var(--f7-segmented-strong-padding); + top: var(--f7-segmented-strong-padding); + height: calc(100% - var(--f7-segmented-strong-padding) * 2); + width: var(--f7-segmented-highlight-width); + z-index: 0; + transform: translateX(calc(var(--f7-segmented-highlight-active) * 100% + var(--f7-segmented-highlight-active) * var(--f7-segmented-highlight-between))); + transition: 200ms; +} +.button:nth-child(2) ~ .segmented-highlight { + --f7-segmented-highlight-num: 2; +} +.button:nth-child(3) ~ .segmented-highlight { + --f7-segmented-highlight-num: 3; +} +.button:nth-child(4) ~ .segmented-highlight { + --f7-segmented-highlight-num: 4; +} +.button:nth-child(5) ~ .segmented-highlight { + --f7-segmented-highlight-num: 5; +} +.button:nth-child(6) ~ .segmented-highlight { + --f7-segmented-highlight-num: 6; +} +.button:nth-child(7) ~ .segmented-highlight { + --f7-segmented-highlight-num: 7; +} +.button:nth-child(8) ~ .segmented-highlight { + --f7-segmented-highlight-num: 8; +} +.button:nth-child(9) ~ .segmented-highlight { + --f7-segmented-highlight-num: 9; +} +.button:nth-child(10) ~ .segmented-highlight { + --f7-segmented-highlight-num: 10; +} +.button-active:nth-child(2) ~ .segmented-highlight, +.tab-link-active:nth-child(2) ~ .segmented-highlight { + --f7-segmented-highlight-active: 1; +} +.button-active:nth-child(3) ~ .segmented-highlight, +.tab-link-active:nth-child(3) ~ .segmented-highlight { + --f7-segmented-highlight-active: 2; +} +.button-active:nth-child(4) ~ .segmented-highlight, +.tab-link-active:nth-child(4) ~ .segmented-highlight { + --f7-segmented-highlight-active: 3; +} +.button-active:nth-child(5) ~ .segmented-highlight, +.tab-link-active:nth-child(5) ~ .segmented-highlight { + --f7-segmented-highlight-active: 4; +} +.button-active:nth-child(6) ~ .segmented-highlight, +.tab-link-active:nth-child(6) ~ .segmented-highlight { + --f7-segmented-highlight-active: 5; +} +.button-active:nth-child(7) ~ .segmented-highlight, +.tab-link-active:nth-child(7) ~ .segmented-highlight { + --f7-segmented-highlight-active: 6; +} +.button-active:nth-child(8) ~ .segmented-highlight, +.tab-link-active:nth-child(8) ~ .segmented-highlight { + --f7-segmented-highlight-active: 7; +} +.button-active:nth-child(9) ~ .segmented-highlight, +.tab-link-active:nth-child(9) ~ .segmented-highlight { + --f7-segmented-highlight-active: 8; +} +.button-active:nth-child(10) ~ .segmented-highlight, +.tab-link-active:nth-child(10) ~ .segmented-highlight { + --f7-segmented-highlight-active: 9; +} +.segmented-round, +.ios .segmented-round-ios, +.md .segmented-round-md, +.aurora .segmented-round-aurora { + border-radius: var(--f7-button-height); +} +.segmented-round .segmented-highlight, +.ios .segmented-round-ios .segmented-highlight, +.md .segmented-round-md .segmented-highlight, +.aurora .segmented-round-aurora .segmented-highlight { + border-radius: var(--f7-button-height); +} +.subnavbar .segmented { + width: 100%; +} +.ios .button { + transition-duration: 100ms; +} +.ios .button-fill, +.ios .button-fill-ios { + --f7-button-pressed-bg-color: var(--f7-button-fill-pressed-bg-color, var(--f7-theme-color-tint)); +} +.ios .button-small, +.ios .button-small-ios { + transition-duration: 200ms; +} +.md .button { + transition-duration: 300ms; + transform: translate3d(0, 0, 0); +} +.md .button-fill, +.md .button-fill-md { + --f7-button-pressed-bg-color: var(--f7-button-fill-pressed-bg-color, var(--f7-theme-color-shade)); +} +.aurora .button { + transition-duration: 100ms; + transform: translate3d(0, 0, 0); +} +.aurora.device-desktop .button:not(.active-state):not(.no-hover):hover { + background-color: var(--f7-button-hover-bg-color, rgba(var(--f7-theme-color-rgb), 0.07)); +} +.aurora .button-fill, +.aurora .button-fill-aurora { + --f7-button-pressed-bg-color: var(--f7-button-fill-pressed-bg-color, var(--f7-theme-color-shade)); +} +.aurora .button-fill, +.aurora .button-active, +.aurora .button.tab-link-active, +.aurora .button-fill-aurora { + --f7-button-hover-bg-color: var(--f7-button-fill-hover-bg-color, var(--f7-theme-color-tint)); +} +/* === Touch Ripple === */ +:root { + --f7-touch-ripple-black: rgba(0, 0, 0, 0.1); + --f7-touch-ripple-white: rgba(255, 255, 255, 0.3); + --f7-touch-ripple-color: var(--f7-touch-ripple-black); +} +.theme-dark { + --f7-touch-ripple-color: var(--f7-touch-ripple-white); +} +.ripple, +.fab a, +.link, +.item-link, +.list-button, +.button, +.dialog-button, +.tab-link, +.radio, +.checkbox, +.actions-button, +.speed-dial-buttons a { + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; +} +.ripple-wave { + left: 0; + top: 0; + position: absolute !important; + border-radius: 50%; + pointer-events: none; + z-index: -1; + padding: 0; + margin: 0; + font-size: 0; + transform: translate3d(0px, 0px, 0) scale(0); + transition-duration: 1400ms; + background-color: var(--f7-touch-ripple-color); +} +.ripple-wave.ripple-wave-fill { + transition-duration: 300ms; + opacity: 0.35; +} +.ripple-wave.ripple-wave-out { + transition-duration: 600ms; + opacity: 0; +} +.button-fill .ripple-wave, +.picker-calendar-day .ripple-wave, +.menu .ripple-wave { + z-index: 1; +} +.checkbox .ripple-wave, +.radio .ripple-wave, +.data-table .sortable-cell .ripple-wave { + z-index: 0; +} +[class*="ripple-color-"] { + --f7-touch-ripple-color: var(--f7-theme-color-ripple-color); +} +/* === Icon === */ +.f7-icons, +.material-icons { + width: 1em; + height: 1em; +} +i.icon { + display: inline-block; + vertical-align: middle; + background-size: 100% auto; + background-position: center; + background-repeat: no-repeat; + font-style: normal; + position: relative; +} +.icon-back:after, +.icon-prev:after, +.icon-forward:after, +.icon-next:after { + font-family: 'framework7-core-icons'; + font-weight: normal; + font-style: normal; + line-height: 1; + letter-spacing: normal; + text-transform: none; + white-space: nowrap; + word-wrap: normal; + direction: ltr; + -webkit-font-smoothing: antialiased; + text-rendering: optimizeLegibility; + -moz-osx-font-smoothing: grayscale; + font-feature-settings: "liga"; + text-align: center; + display: block; + width: 100%; + height: 100%; + font-size: 20px; +} +.icon[class*="color-"] { + color: var(--f7-theme-color); +} +.ios .icon-back, +.ios .icon-prev, +.ios .icon-forward, +.ios .icon-next { + width: 12px; + height: 20px; + line-height: 20px; +} +.ios .icon-back:after, +.ios .icon-prev:after, +.ios .icon-forward:after, +.ios .icon-next:after { + line-height: inherit; +} +.ios .icon-prev:after, +.ios .icon-next:after { + font-size: 16px; +} +.ios .icon-back:after, +.ios .icon-prev:after { + content: 'chevron_right_ios'; +} +.ios .icon-forward:after, +.ios .icon-next:after { + content: 'chevron_left_ios'; +} +.md .icon-back, +.md .icon-forward, +.md .icon-next, +.md .icon-prev { + width: 24px; + height: 24px; +} +.md .icon-back:after, +.md .icon-forward:after, +.md .icon-next:after, +.md .icon-prev:after { + line-height: 1.2; +} +.md .icon-back:after { + content: 'arrow_right_md'; +} +.md .icon-forward:after { + content: 'arrow_left_md'; +} +.md .icon-next:after { + content: 'chevron_left_md'; +} +.md .icon-prev:after { + content: 'chevron_right_md'; +} +.aurora .f7-icons, +.aurora .material-icons { + font-size: 18px; +} +.aurora .icon-back, +.aurora .icon-prev, +.aurora .icon-forward, +.aurora .icon-next { + width: 9px; + height: 14px; + line-height: 14px; +} +.aurora .icon-back:after, +.aurora .icon-prev:after, +.aurora .icon-forward:after, +.aurora .icon-next:after { + line-height: inherit; +} +.aurora .icon-back:after, +.aurora .icon-prev:after { + content: 'chevron_right_aurora'; +} +.aurora .icon-forward:after, +.aurora .icon-next:after { + content: 'chevron_left_aurora'; +} +.custom-modal-backdrop { + z-index: 10500; +} +.custom-modal-backdrop, +.actions-backdrop, +.dialog-backdrop, +.popover-backdrop, +.popup-backdrop, +.preloader-backdrop, +.sheet-backdrop, +.fab-backdrop { + position: absolute; + left: 0; + top: 0; + width: 100%; + height: 100%; + background: rgba(0, 0, 0, 0.4); + z-index: 13000; + visibility: hidden; + opacity: 0; + transition-duration: 400ms; +} +.custom-modal-backdrop.not-animated, +.actions-backdrop.not-animated, +.dialog-backdrop.not-animated, +.popover-backdrop.not-animated, +.popup-backdrop.not-animated, +.preloader-backdrop.not-animated, +.sheet-backdrop.not-animated, +.fab-backdrop.not-animated { + transition-duration: 0ms; +} +.custom-modal-backdrop.backdrop-in, +.actions-backdrop.backdrop-in, +.dialog-backdrop.backdrop-in, +.popover-backdrop.backdrop-in, +.popup-backdrop.backdrop-in, +.preloader-backdrop.backdrop-in, +.sheet-backdrop.backdrop-in, +.fab-backdrop.backdrop-in { + visibility: visible; + opacity: 1; +} diff --git a/public/Framework7/5/css/framework7.rtl.min.css b/public/Framework7/5/css/framework7.rtl.min.css new file mode 100644 index 0000000..7d715ac --- /dev/null +++ b/public/Framework7/5/css/framework7.rtl.min.css @@ -0,0 +1,13 @@ +/** + * Framework7 5.7.14 + * Full featured mobile HTML framework for building iOS & Android apps + * https://framework7.io/ + * + * Copyright 2014-2020 Vladimir Kharlampidi + * + * Released under the MIT License + * + * Released on: November 9, 2020 + */ + +:root{--f7-theme-color:#007aff;--f7-theme-color-rgb:0,122,255;--f7-theme-color-shade:#0066d6;--f7-theme-color-tint:#298fff;--f7-safe-area-left:0px;--f7-safe-area-right:0px;--f7-safe-area-top:0px;--f7-safe-area-bottom:0px;--f7-safe-area-outer-left:0px;--f7-safe-area-outer-right:0px;--f7-device-pixel-ratio:1}@supports (left:env(safe-area-inset-left)){:root{--f7-safe-area-top:env(safe-area-inset-top);--f7-safe-area-bottom:env(safe-area-inset-bottom)}:root .ios-edges,:root .ios-left-edge,:root .panel-left,:root .popup,:root .safe-area-left,:root .safe-areas,:root .sheet-modal{--f7-safe-area-left:env(safe-area-inset-left);--f7-safe-area-outer-left:env(safe-area-inset-left)}:root .ios-edges,:root .ios-right-edge,:root .panel-right,:root .popup,:root .safe-area-right,:root .safe-areas,:root .sheet-modal{--f7-safe-area-right:env(safe-area-inset-right);--f7-safe-area-outer-right:env(safe-area-inset-right)}:root .no-ios-edges,:root .no-ios-left-edge,:root .no-safe-area-left,:root .no-safe-areas{--f7-safe-area-left:0px;--f7-safe-area-outer-left:0px}:root .no-ios-edges,:root .no-ios-right-edge,:root .no-safe-area-right,:root .no-safe-areas{--f7-safe-area-right:0px;--f7-safe-area-outer-right:0px}}@media (-webkit-min-device-pixel-ratio:2),(min-resolution:2dppx){:root{--f7-device-pixel-ratio:2}}@media (-webkit-min-device-pixel-ratio:3),(min-resolution:3dppx){:root{--f7-device-pixel-ratio:3}}:root{--f7-font-size:14px;--f7-bars-bg-image:none;--f7-bars-translucent-opacity:0.8;--f7-bars-translucent-blur:20px;--f7-bars-shadow-bottom-image:linear-gradient(to bottom, rgba(0, 0, 0, 0.25) 0%, rgba(0, 0, 0, 0.08) 40%, rgba(0, 0, 0, 0.04) 50%, rgba(0, 0, 0, 0) 90%, rgba(0, 0, 0, 0) 100%);--f7-bars-shadow-top-image:linear-gradient(to top, rgba(0, 0, 0, 0.25) 0%, rgba(0, 0, 0, 0.08) 40%, rgba(0, 0, 0, 0.04) 50%, rgba(0, 0, 0, 0) 90%, rgba(0, 0, 0, 0) 100%);--f7-bars-text-color:#000;--f7-bars-bg-color:#f7f7f8;--f7-bars-bg-color-rgb:247,247,248}:root .theme-dark,:root.theme-dark{--f7-bars-text-color:#fff}.ios{--f7-font-family:-apple-system,SF Pro Text,SF UI Text,system-ui,Helvetica Neue,Helvetica,Arial,sans-serif;--f7-line-height:1.4;--f7-text-color:#000;--f7-bars-border-color:rgba(0, 0, 0, 0.25)}.ios .theme-dark,.ios.theme-dark{--f7-text-color:#fff;--f7-bars-bg-color:#121212;--f7-bars-bg-color-rgb:22,22,22;--f7-bars-border-color:rgba(255, 255, 255, 0.16)}.md{--f7-font-family:Roboto,system-ui,Noto,Helvetica,Arial,sans-serif;--f7-line-height:1.5;--f7-bars-border-color:transparent;--f7-text-color:#212121}.md .theme-dark,.md.theme-dark{--f7-text-color:rgba(255, 255, 255, 0.87);--f7-bars-bg-color:#202020}.aurora{--f7-font-family:-apple-system,system-ui,Helvetica,Arial,sans-serif;--f7-line-height:1.5;--f7-text-color:#000;--f7-bars-border-color:rgba(0, 0, 0, 0.2)}.aurora .theme-dark,.aurora.theme-dark{--f7-text-color:#fff;--f7-bars-bg-color:#202020;--f7-bars-border-color:rgba(255, 255, 255, 0.1)}.text-color-primary{--f7-theme-color-text-color:var(--f7-theme-color)}.bg-color-primary{--f7-theme-color-bg-color:var(--f7-theme-color)}.border-color-primary{--f7-theme-color-border-color:var(--f7-theme-color)}.ripple-color-primary{--f7-theme-color-ripple-color:rgba(var(--f7-theme-color-rgb), 0.3)}:root{--f7-color-red:#ff3b30;--f7-color-red-rgb:255,59,48;--f7-color-red-shade:#ff1407;--f7-color-red-tint:#ff6259;--f7-color-green:#4cd964;--f7-color-green-rgb:76,217,100;--f7-color-green-shade:#2cd048;--f7-color-green-tint:#6ee081;--f7-color-blue:#2196f3;--f7-color-blue-rgb:33,150,243;--f7-color-blue-shade:#0c82df;--f7-color-blue-tint:#48a8f5;--f7-color-pink:#ff2d55;--f7-color-pink-rgb:255,45,85;--f7-color-pink-shade:#ff0434;--f7-color-pink-tint:#ff5676;--f7-color-yellow:#ffcc00;--f7-color-yellow-rgb:255,204,0;--f7-color-yellow-shade:#d6ab00;--f7-color-yellow-tint:#ffd429;--f7-color-orange:#ff9500;--f7-color-orange-rgb:255,149,0;--f7-color-orange-shade:#d67d00;--f7-color-orange-tint:#ffa629;--f7-color-purple:#9c27b0;--f7-color-purple-rgb:156,39,176;--f7-color-purple-shade:#7e208f;--f7-color-purple-tint:#b92fd1;--f7-color-deeppurple:#673ab7;--f7-color-deeppurple-rgb:103,58,183;--f7-color-deeppurple-shade:#563098;--f7-color-deeppurple-tint:#7c52c8;--f7-color-lightblue:#5ac8fa;--f7-color-lightblue-rgb:90,200,250;--f7-color-lightblue-shade:#32bbf9;--f7-color-lightblue-tint:#82d5fb;--f7-color-teal:#009688;--f7-color-teal-rgb:0,150,136;--f7-color-teal-shade:#006d63;--f7-color-teal-tint:#00bfad;--f7-color-lime:#cddc39;--f7-color-lime-rgb:205,220,57;--f7-color-lime-shade:#bac923;--f7-color-lime-tint:#d6e25c;--f7-color-deeporange:#ff6b22;--f7-color-deeporange-rgb:255,107,34;--f7-color-deeporange-shade:#f85200;--f7-color-deeporange-tint:#ff864b;--f7-color-gray:#8e8e93;--f7-color-gray-rgb:142,142,147;--f7-color-gray-shade:#79797f;--f7-color-gray-tint:#a3a3a7;--f7-color-white:#ffffff;--f7-color-white-rgb:255,255,255;--f7-color-white-shade:#ebebeb;--f7-color-white-tint:#ffffff;--f7-color-black:#000000;--f7-color-black-rgb:0,0,0;--f7-color-black-shade:#000000;--f7-color-black-tint:#141414}.color-theme-red{--f7-theme-color:#ff3b30;--f7-theme-color-rgb:255,59,48;--f7-theme-color-shade:#ff1407;--f7-theme-color-tint:#ff6259}.color-theme-green{--f7-theme-color:#4cd964;--f7-theme-color-rgb:76,217,100;--f7-theme-color-shade:#2cd048;--f7-theme-color-tint:#6ee081}.color-theme-blue{--f7-theme-color:#2196f3;--f7-theme-color-rgb:33,150,243;--f7-theme-color-shade:#0c82df;--f7-theme-color-tint:#48a8f5}.color-theme-pink{--f7-theme-color:#ff2d55;--f7-theme-color-rgb:255,45,85;--f7-theme-color-shade:#ff0434;--f7-theme-color-tint:#ff5676}.color-theme-yellow{--f7-theme-color:#ffcc00;--f7-theme-color-rgb:255,204,0;--f7-theme-color-shade:#d6ab00;--f7-theme-color-tint:#ffd429}.color-theme-orange{--f7-theme-color:#ff9500;--f7-theme-color-rgb:255,149,0;--f7-theme-color-shade:#d67d00;--f7-theme-color-tint:#ffa629}.color-theme-purple{--f7-theme-color:#9c27b0;--f7-theme-color-rgb:156,39,176;--f7-theme-color-shade:#7e208f;--f7-theme-color-tint:#b92fd1}.color-theme-deeppurple{--f7-theme-color:#673ab7;--f7-theme-color-rgb:103,58,183;--f7-theme-color-shade:#563098;--f7-theme-color-tint:#7c52c8}.color-theme-lightblue{--f7-theme-color:#5ac8fa;--f7-theme-color-rgb:90,200,250;--f7-theme-color-shade:#32bbf9;--f7-theme-color-tint:#82d5fb}.color-theme-teal{--f7-theme-color:#009688;--f7-theme-color-rgb:0,150,136;--f7-theme-color-shade:#006d63;--f7-theme-color-tint:#00bfad}.color-theme-lime{--f7-theme-color:#cddc39;--f7-theme-color-rgb:205,220,57;--f7-theme-color-shade:#bac923;--f7-theme-color-tint:#d6e25c}.color-theme-deeporange{--f7-theme-color:#ff6b22;--f7-theme-color-rgb:255,107,34;--f7-theme-color-shade:#f85200;--f7-theme-color-tint:#ff864b}.color-theme-gray{--f7-theme-color:#8e8e93;--f7-theme-color-rgb:142,142,147;--f7-theme-color-shade:#79797f;--f7-theme-color-tint:#a3a3a7}.color-theme-white{--f7-theme-color:#ffffff;--f7-theme-color-rgb:255,255,255;--f7-theme-color-shade:#ebebeb;--f7-theme-color-tint:#ffffff}.color-theme-black{--f7-theme-color:#000000;--f7-theme-color-rgb:0,0,0;--f7-theme-color-shade:#000000;--f7-theme-color-tint:#141414}.color-red{--f7-theme-color:#ff3b30;--f7-theme-color-rgb:255,59,48;--f7-theme-color-shade:#ff1407;--f7-theme-color-tint:#ff6259}.text-color-red{--f7-theme-color-text-color:#ff3b30}.bg-color-red{--f7-theme-color-bg-color:#ff3b30}.border-color-red{--f7-theme-color-border-color:#ff3b30}.ripple-color-red,.ripple-red{--f7-theme-color-ripple-color:rgba(255, 59, 48, 0.3)}.color-green{--f7-theme-color:#4cd964;--f7-theme-color-rgb:76,217,100;--f7-theme-color-shade:#2cd048;--f7-theme-color-tint:#6ee081}.text-color-green{--f7-theme-color-text-color:#4cd964}.bg-color-green{--f7-theme-color-bg-color:#4cd964}.border-color-green{--f7-theme-color-border-color:#4cd964}.ripple-color-green,.ripple-green{--f7-theme-color-ripple-color:rgba(76, 217, 100, 0.3)}.color-blue{--f7-theme-color:#2196f3;--f7-theme-color-rgb:33,150,243;--f7-theme-color-shade:#0c82df;--f7-theme-color-tint:#48a8f5}.text-color-blue{--f7-theme-color-text-color:#2196f3}.bg-color-blue{--f7-theme-color-bg-color:#2196f3}.border-color-blue{--f7-theme-color-border-color:#2196f3}.ripple-blue,.ripple-color-blue{--f7-theme-color-ripple-color:rgba(33, 150, 243, 0.3)}.color-pink{--f7-theme-color:#ff2d55;--f7-theme-color-rgb:255,45,85;--f7-theme-color-shade:#ff0434;--f7-theme-color-tint:#ff5676}.text-color-pink{--f7-theme-color-text-color:#ff2d55}.bg-color-pink{--f7-theme-color-bg-color:#ff2d55}.border-color-pink{--f7-theme-color-border-color:#ff2d55}.ripple-color-pink,.ripple-pink{--f7-theme-color-ripple-color:rgba(255, 45, 85, 0.3)}.color-yellow{--f7-theme-color:#ffcc00;--f7-theme-color-rgb:255,204,0;--f7-theme-color-shade:#d6ab00;--f7-theme-color-tint:#ffd429}.text-color-yellow{--f7-theme-color-text-color:#ffcc00}.bg-color-yellow{--f7-theme-color-bg-color:#ffcc00}.border-color-yellow{--f7-theme-color-border-color:#ffcc00}.ripple-color-yellow,.ripple-yellow{--f7-theme-color-ripple-color:rgba(255, 204, 0, 0.3)}.color-orange{--f7-theme-color:#ff9500;--f7-theme-color-rgb:255,149,0;--f7-theme-color-shade:#d67d00;--f7-theme-color-tint:#ffa629}.text-color-orange{--f7-theme-color-text-color:#ff9500}.bg-color-orange{--f7-theme-color-bg-color:#ff9500}.border-color-orange{--f7-theme-color-border-color:#ff9500}.ripple-color-orange,.ripple-orange{--f7-theme-color-ripple-color:rgba(255, 149, 0, 0.3)}.color-purple{--f7-theme-color:#9c27b0;--f7-theme-color-rgb:156,39,176;--f7-theme-color-shade:#7e208f;--f7-theme-color-tint:#b92fd1}.text-color-purple{--f7-theme-color-text-color:#9c27b0}.bg-color-purple{--f7-theme-color-bg-color:#9c27b0}.border-color-purple{--f7-theme-color-border-color:#9c27b0}.ripple-color-purple,.ripple-purple{--f7-theme-color-ripple-color:rgba(156, 39, 176, 0.3)}.color-deeppurple{--f7-theme-color:#673ab7;--f7-theme-color-rgb:103,58,183;--f7-theme-color-shade:#563098;--f7-theme-color-tint:#7c52c8}.text-color-deeppurple{--f7-theme-color-text-color:#673ab7}.bg-color-deeppurple{--f7-theme-color-bg-color:#673ab7}.border-color-deeppurple{--f7-theme-color-border-color:#673ab7}.ripple-color-deeppurple,.ripple-deeppurple{--f7-theme-color-ripple-color:rgba(103, 58, 183, 0.3)}.color-lightblue{--f7-theme-color:#5ac8fa;--f7-theme-color-rgb:90,200,250;--f7-theme-color-shade:#32bbf9;--f7-theme-color-tint:#82d5fb}.text-color-lightblue{--f7-theme-color-text-color:#5ac8fa}.bg-color-lightblue{--f7-theme-color-bg-color:#5ac8fa}.border-color-lightblue{--f7-theme-color-border-color:#5ac8fa}.ripple-color-lightblue,.ripple-lightblue{--f7-theme-color-ripple-color:rgba(90, 200, 250, 0.3)}.color-teal{--f7-theme-color:#009688;--f7-theme-color-rgb:0,150,136;--f7-theme-color-shade:#006d63;--f7-theme-color-tint:#00bfad}.text-color-teal{--f7-theme-color-text-color:#009688}.bg-color-teal{--f7-theme-color-bg-color:#009688}.border-color-teal{--f7-theme-color-border-color:#009688}.ripple-color-teal,.ripple-teal{--f7-theme-color-ripple-color:rgba(0, 150, 136, 0.3)}.color-lime{--f7-theme-color:#cddc39;--f7-theme-color-rgb:205,220,57;--f7-theme-color-shade:#bac923;--f7-theme-color-tint:#d6e25c}.text-color-lime{--f7-theme-color-text-color:#cddc39}.bg-color-lime{--f7-theme-color-bg-color:#cddc39}.border-color-lime{--f7-theme-color-border-color:#cddc39}.ripple-color-lime,.ripple-lime{--f7-theme-color-ripple-color:rgba(205, 220, 57, 0.3)}.color-deeporange{--f7-theme-color:#ff6b22;--f7-theme-color-rgb:255,107,34;--f7-theme-color-shade:#f85200;--f7-theme-color-tint:#ff864b}.text-color-deeporange{--f7-theme-color-text-color:#ff6b22}.bg-color-deeporange{--f7-theme-color-bg-color:#ff6b22}.border-color-deeporange{--f7-theme-color-border-color:#ff6b22}.ripple-color-deeporange,.ripple-deeporange{--f7-theme-color-ripple-color:rgba(255, 107, 34, 0.3)}.color-gray{--f7-theme-color:#8e8e93;--f7-theme-color-rgb:142,142,147;--f7-theme-color-shade:#79797f;--f7-theme-color-tint:#a3a3a7}.text-color-gray{--f7-theme-color-text-color:#8e8e93}.bg-color-gray{--f7-theme-color-bg-color:#8e8e93}.border-color-gray{--f7-theme-color-border-color:#8e8e93}.ripple-color-gray,.ripple-gray{--f7-theme-color-ripple-color:rgba(142, 142, 147, 0.3)}.color-white{--f7-theme-color:#ffffff;--f7-theme-color-rgb:255,255,255;--f7-theme-color-shade:#ebebeb;--f7-theme-color-tint:#ffffff}.text-color-white{--f7-theme-color-text-color:#ffffff}.bg-color-white{--f7-theme-color-bg-color:#ffffff}.border-color-white{--f7-theme-color-border-color:#ffffff}.ripple-color-white,.ripple-white{--f7-theme-color-ripple-color:rgba(255, 255, 255, 0.3)}.color-black{--f7-theme-color:#000000;--f7-theme-color-rgb:0,0,0;--f7-theme-color-shade:#000000;--f7-theme-color-tint:#141414}.text-color-black{--f7-theme-color-text-color:#000000}.bg-color-black{--f7-theme-color-bg-color:#000000}.border-color-black{--f7-theme-color-border-color:#000000}.ripple-black,.ripple-color-black{--f7-theme-color-ripple-color:rgba(0, 0, 0, 0.3)}@font-face{font-family:framework7-core-icons;src:url("data:application/font-woff;charset=utf-8;base64, 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") format("woff");font-weight:400;font-style:normal}@font-face{font-family:framework7-skeleton;src:url("data:application/font-woff;charset=utf-8;base64, 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") format("woff");font-weight:300,400,500,600,700;font-style:normal,italic}html{direction:rtl}.framework7-root,body,html{position:relative;height:100%;width:100%;overflow-x:hidden}body{margin:0;padding:0;width:100%;background:#fff;overflow:hidden;-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;font-family:var(--f7-font-family);font-size:var(--f7-font-size);line-height:var(--f7-line-height);color:var(--f7-text-color)}.theme-dark body,body.theme-dark{background:#000}.theme-dark{color:var(--f7-text-color)}.framework7-root{overflow:hidden;box-sizing:border-box}.framework7-initializing *,.framework7-initializing :after,.framework7-initializing :before{transition-duration:0s!important}.device-android,.device-ios{cursor:pointer}.device-ios{touch-action:manipulation}@media (width:1024px) and (height:691px) and (orientation:landscape){.framework7-root,body,html{height:671px}}@media (width:1024px) and (height:692px) and (orientation:landscape){.framework7-root,body,html{height:672px}}*{-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none}a,input,select,textarea{outline:0}a{cursor:pointer;text-decoration:none;color:var(--f7-theme-color)}.item-link,.link{cursor:pointer}p{margin:1em 0}.disabled{opacity:.55!important;pointer-events:none!important}html.device-full-viewport,html.device-full-viewport body{height:100vh}.ios .aurora-only,.ios .if-aurora,.ios .if-md,.ios .if-not-ios,.ios .md-only,.ios .not-ios{display:none!important}@media (width:1024px) and (height:691px) and (orientation:landscape){.ios,.ios .framework7-root,.ios body{height:671px}}@media (width:1024px) and (height:692px) and (orientation:landscape){.ios,.ios .framework7-root,.ios body{height:672px}}.md .aurora-only,.md .if-aurora,.md .if-ios,.md .if-not-md,.md .ios-only,.md .not-md{display:none!important}.aurora .if-ios,.aurora .if-md,.aurora .if-not-aurora,.aurora .ios-only,.aurora .md-only,.aurora .not-aurora{display:none!important}.view,.views{position:relative;height:100%;z-index:5000;overflow:hidden;box-sizing:border-box}.framework7-root>.view,.framework7-root>.views{height:calc(100% - var(--f7-appbar-app-offset,0px))}.view-resize-handler{width:6px;height:100%;position:absolute;left:var(--f7-page-master-width);margin-left:-3px;top:0;cursor:col-resize;z-index:1000;display:none}.view-master-detail .view-resize-handler{display:block}:root{--f7-page-master-width:320px;--f7-page-master-border-color:rgba(0, 0, 0, 0.1);--f7-page-master-border-width:1px;--f7-page-swipeback-transition-duration:300ms;--f7-page-parallax-transition-duration:500ms;--f7-page-cover-transition-duration:450ms;--f7-page-dive-transition-duration:500ms;--f7-page-fade-transition-duration:500ms;--f7-page-flip-transition-duration:700ms;--f7-page-push-transition-duration:500ms}.ios{--f7-page-transition-duration:400ms;--f7-page-bg-color:#efeff4}.ios .theme-dark,.ios.theme-dark{--f7-page-bg-color:#000}.md{--f7-page-transition-duration:250ms;--f7-page-bg-color:#fff}.md .theme-dark,.md.theme-dark{--f7-page-bg-color:#121212}.aurora{--f7-page-transition-duration:400ms;--f7-page-bg-color:#f3f3f3}.aurora .theme-dark,.aurora.theme-dark{--f7-page-bg-color:#121212}.theme-dark{--f7-page-master-border-color:rgba(255, 255, 255, 0.1)}.pages{position:relative;width:100%;height:100%;overflow:hidden}.page{box-sizing:border-box;position:absolute;left:0;top:0;width:100%;height:100%;transform:none;background-color:var(--f7-page-bg-color);z-index:1}.page.stacked{display:none}.page-with-navbar-large-collapsed{--f7-navbar-large-collapse-progress:1}.page-previous{pointer-events:none}.page-content{overflow:auto;-webkit-overflow-scrolling:touch;box-sizing:border-box;height:100%;position:relative;z-index:1;padding-top:calc(var(--f7-page-navbar-offset,0px) + var(--f7-page-toolbar-top-offset,0px) + var(--f7-page-subnavbar-offset,0px) + var(--f7-page-searchbar-offset,0px) + var(--f7-page-content-extra-padding-top,0px));padding-bottom:calc(var(--f7-page-toolbar-bottom-offset,0px) + var(--f7-safe-area-bottom) + var(--f7-page-content-extra-padding-bottom,0px))}.page-transitioning,.page-transitioning .page-opacity-effect,.page-transitioning .page-shadow-effect{transition-duration:var(--f7-page-transition-duration)}.page-transitioning-swipeback,.page-transitioning-swipeback .page-opacity-effect,.page-transitioning-swipeback .page-shadow-effect{transition-duration:var(--f7-page-swipeback-transition-duration)}.router-transition-backward .page-current,.router-transition-backward .page-next,.router-transition-backward .page-previous:not(.stacked),.router-transition-forward .page-current,.router-transition-forward .page-next,.router-transition-forward .page-previous:not(.stacked){pointer-events:none}.page-shadow-effect{position:absolute;top:0;width:16px;bottom:0;z-index:-1;content:'';opacity:0;left:100%;background:linear-gradient(to left,rgba(0,0,0,0) 0%,rgba(0,0,0,0) 10%,rgba(0,0,0,.01) 50%,rgba(0,0,0,.2) 100%)}.page-opacity-effect{position:absolute;left:0;top:0;background:rgba(0,0,0,.1);width:100%;bottom:0;content:'';opacity:0;z-index:10000}.ios .page-previous{transform:translate3d(20%,0,0)}.ios .page-next{transform:translate3d(-100%,0,0)}.ios .page-previous .page-opacity-effect{opacity:1}.ios .page-previous:after{opacity:1}.ios .page-current .page-shadow-effect{opacity:1}.ios .router-transition-forward .page-next{animation:ios-page-next-to-current var(--f7-page-transition-duration) forwards}.ios .router-transition-forward .page-next:before{position:absolute;top:0;width:16px;bottom:0;z-index:-1;content:'';opacity:0;left:100%;background:linear-gradient(to left,rgba(0,0,0,0) 0%,rgba(0,0,0,0) 10%,rgba(0,0,0,.01) 50%,rgba(0,0,0,.2) 100%);animation:ios-page-element-fade-in var(--f7-page-transition-duration) forwards}.ios .router-transition-forward .page-current{animation:ios-page-current-to-previous var(--f7-page-transition-duration) forwards}.ios .router-transition-forward .page-current:after{position:absolute;left:0;top:0;background:rgba(0,0,0,.1);width:100%;bottom:0;content:'';opacity:0;z-index:10000;animation:ios-page-element-fade-in var(--f7-page-transition-duration) forwards}.ios .router-transition-backward .page-previous{animation:ios-page-previous-to-current var(--f7-page-transition-duration) forwards}.ios .router-transition-backward .page-previous:after{position:absolute;left:0;top:0;background:rgba(0,0,0,.1);width:100%;bottom:0;content:'';opacity:0;z-index:10000;animation:ios-page-element-fade-out var(--f7-page-transition-duration) forwards}.ios .router-transition-backward .page-current{animation:ios-page-current-to-next var(--f7-page-transition-duration) forwards}.ios .router-transition-backward .page-current:before{position:absolute;top:0;width:16px;bottom:0;z-index:-1;content:'';opacity:0;left:100%;background:linear-gradient(to left,rgba(0,0,0,0) 0%,rgba(0,0,0,0) 10%,rgba(0,0,0,.01) 50%,rgba(0,0,0,.2) 100%);animation:ios-page-element-fade-out var(--f7-page-transition-duration) forwards}@keyframes ios-page-next-to-current{from{transform:translate3d(-100%,0,0)}to{transform:translate3d(0%,0,0)}}@keyframes ios-page-previous-to-current{from{transform:translate3d(20%,0,0)}to{transform:translate3d(0%,0,0)}}@keyframes ios-page-current-to-previous{from{transform:translate3d(0,0,0)}to{transform:translate3d(20%,0,0)}}@keyframes ios-page-current-to-next{from{transform:translate3d(0,0,0)}to{transform:translate3d(-100%,0,0)}}@keyframes ios-page-element-fade-in{from{opacity:0}to{opacity:1}}@keyframes ios-page-element-fade-out{from{opacity:1}to{opacity:0}}.md .page-next{transform:translate3d(0,56px,0);opacity:0;pointer-events:none}.md .page-next.page-next-on-right{transform:translate3d(-100%,0,0)}.md .router-transition-forward .page-next{animation:md-page-next-to-current var(--f7-page-transition-duration) forwards}.md .router-transition-forward .page-current{animation:none}.md .router-transition-backward .page-current{animation:md-page-current-to-next var(--f7-page-transition-duration) forwards}.md .router-transition-backward .page-previous{animation:none}@keyframes md-page-next-to-current{from{transform:translate3d(0,56px,0);opacity:0}to{transform:translate3d(0,0px,0);opacity:1}}@keyframes md-page-current-to-next{from{transform:translate3d(0,0,0);opacity:1}to{transform:translate3d(0,56px,0);opacity:0}}.aurora .page-next{pointer-events:none;transform:translate3d(-100%,0px,0)}.aurora .page-next.page-next-on-right{transform:translate3d(-100%,0,0)}.aurora .page-previous .page-opacity-effect{opacity:1}.aurora .page-previous:after{opacity:1}.aurora .router-transition-forward .page-next{animation:aurora-page-next-to-current var(--f7-page-transition-duration) forwards}.aurora .router-transition-forward .page-current{animation:none}.aurora .router-transition-forward .page-current:after{position:absolute;left:0;top:0;background:rgba(0,0,0,.1);width:100%;bottom:0;content:'';opacity:0;z-index:10000;animation:aurora-page-element-fade-in var(--f7-page-transition-duration) forwards}.aurora .router-transition-backward .page-current{animation:aurora-page-current-to-next var(--f7-page-transition-duration) forwards}.aurora .router-transition-backward .page-previous{animation:none}.aurora .router-transition-backward .page-previous:after{position:absolute;left:0;top:0;background:rgba(0,0,0,.1);width:100%;bottom:0;content:'';opacity:0;z-index:10000;animation:aurora-page-element-fade-out var(--f7-page-transition-duration) forwards}@keyframes aurora-page-next-to-current{from{transform:translate3d(-100%,0,0)}to{transform:translate3d(0,0px,0)}}@keyframes aurora-page-current-to-next{from{transform:translate3d(0,0,0)}to{transform:translate3d(-100%,0,0)}}@keyframes aurora-page-element-fade-in{from{opacity:0}to{opacity:1}}@keyframes aurora-page-element-fade-out{from{opacity:1}to{opacity:0}}.view:not(.view-master-detail) .page-master-stacked{display:none}.view:not(.view-master-detail) .navbar-master-stacked{display:none}.view-master-detail .navbar-master,.view-master-detail .page-master{width:var(--f7-page-master-width);left:auto;right:0;--f7-safe-area-left:0px;--f7-safe-area-outer-left:0px;border-left:var(--f7-page-master-border-width) solid var(--f7-page-master-border-color)}.view-master-detail .navbar-master-detail,.view-master-detail .page-master-detail{width:calc(100% - var(--f7-page-master-width));--f7-safe-area-right:0px;--f7-safe-area-outer-right:0px;right:var(--f7-page-master-width)}.view-master-detail .page-master{z-index:2;transform:none;pointer-events:auto}.view-master-detail .page-master:after,.view-master-detail .page-master:before{display:none}.view-master-detail.router-transition .page-master{animation:none}.aurora .router-transition-custom .page-next,.aurora .router-transition-custom .page-previous,.ios .router-transition-custom .page-next,.ios .router-transition-custom .page-previous,.md .router-transition-custom .page-next,.md .router-transition-custom .page-previous{opacity:1;transform:none}.router-transition-f7-circle-backward:after,.router-transition-f7-circle-forward:after{content:'';position:absolute;left:50%;top:50%;width:100vmax;height:100vmax;margin-left:-50vmax;margin-top:-50vmax;background:var(--f7-page-bg-color);z-index:100}.router-transition-f7-circle-forward:after{transform:scale(0);border-radius:50%;animation:f7-circle-circle-in .4s forwards}.router-transition-f7-circle-forward .page-next{opacity:0!important;transform:scale(.9)!important;animation:f7-circle-next-to-current .3s forwards;animation-delay:.3s;z-index:150}.router-transition-f7-circle-backward:after{animation:f7-circle-circle-out .3s forwards;animation-delay:350ms}.router-transition-f7-circle-backward .page-current{animation:f7-circle-current-to-next .7s forwards;z-index:150}@keyframes f7-circle-circle-in{from{transform:scale(0);border-radius:50%}50%{border-radius:50%}to{transform:scale(1);border-radius:0%}}@keyframes f7-circle-circle-out{from{transform:scale(1);border-radius:0%}50%{border-radius:50%}to{transform:scale(0);border-radius:50%}}@keyframes f7-circle-next-to-current{from{transform:scale(.9);opacity:0}40%{transform:scale(1.035);opacity:1}to{transform:scale(1);opacity:1}}@keyframes f7-circle-current-to-next{from{transform:scale(1);opacity:1}34%{transform:scale(1.035);opacity:1}57%{transform:scale(.9);opacity:0}to{transform:scale(.9);opacity:0}}.router-transition-f7-cover-v-backward,.router-transition-f7-cover-v-forward{background:#000;perspective:1200px}.router-transition-f7-cover-v-forward .page-next{animation:f7-cover-v-next-to-current var(--f7-page-cover-transition-duration) forwards}.router-transition-f7-cover-v-forward .page-current{animation:f7-cover-v-current-to-prev var(--f7-page-cover-transition-duration) forwards}.router-transition-f7-cover-v-backward .page-current{animation:f7-cover-v-current-to-next var(--f7-page-cover-transition-duration) forwards}.router-transition-f7-cover-v-backward .page-previous{animation:f7-cover-v-prev-to-current var(--f7-page-cover-transition-duration) forwards}@keyframes f7-cover-v-next-to-current{from{transform:translateY(100%)}to{transform:translateY(0%)}}@keyframes f7-cover-v-current-to-next{from{transform:translateY(0%)}to{transform:translateY(100%)}}@keyframes f7-cover-v-current-to-prev{from{transform:translateZ(0);opacity:1}to{transform:translateZ(-300px);opacity:.5}}@keyframes f7-cover-v-prev-to-current{from{transform:translateZ(-300px);opacity:.5}to{transform:translateZ(0);opacity:1}}.router-transition-f7-cover-backward,.router-transition-f7-cover-forward{background:#000;perspective:1200px}.router-transition-f7-cover-forward .page-next{animation:f7-cover-next-to-current var(--f7-page-cover-transition-duration) forwards}.router-transition-f7-cover-forward .page-current{animation:f7-cover-current-to-prev var(--f7-page-cover-transition-duration) forwards}.router-transition-f7-cover-backward .page-current{animation:f7-cover-current-to-next var(--f7-page-cover-transition-duration) forwards}.router-transition-f7-cover-backward .page-previous{animation:f7-cover-prev-to-current var(--f7-page-cover-transition-duration) forwards}@keyframes f7-cover-next-to-current{from{transform:translateX(-100%)}to{transform:translateX(0%)}}@keyframes f7-cover-current-to-next{from{transform:translateX(0%)}to{transform:translateX(-100%)}}@keyframes f7-cover-current-to-prev{from{transform:translateZ(0);opacity:1}to{transform:translateZ(-300px);opacity:.5}}@keyframes f7-cover-prev-to-current{from{transform:translateZ(-300px);opacity:.5}to{transform:translateZ(0);opacity:1}}.router-transition-f7-dive-backward,.router-transition-f7-dive-forward{background:var(--f7-page-bg-color);perspective:1200px}.router-transition-f7-dive-forward .page-next{animation:f7-dive-next-to-current var(--f7-page-dive-transition-duration) forwards}.router-transition-f7-dive-forward .page-current{animation:f7-dive-current-to-prev var(--f7-page-dive-transition-duration) forwards}.router-transition-f7-dive-backward .page-current{animation:f7-dive-current-to-next var(--f7-page-dive-transition-duration) forwards}.router-transition-f7-dive-backward .page-previous{animation:f7-dive-prev-to-current var(--f7-page-dive-transition-duration) forwards}@keyframes f7-dive-next-to-current{from{opacity:0;transform:translateZ(-150px)}50%{opacity:0}to{opacity:1;transform:translateZ(0px)}}@keyframes f7-dive-current-to-next{from{opacity:1;transform:translateZ(0px)}50%{opacity:0}to{opacity:0;transform:translateZ(-150px)}}@keyframes f7-dive-current-to-prev{from{transform:translateZ(0px);opacity:1}50%{opacity:0}to{opacity:0;transform:translateZ(150px)}}@keyframes f7-dive-prev-to-current{from{opacity:0;transform:translateZ(150px)}50%{opacity:0}to{opacity:1;transform:translateZ(0px)}}.router-transition-f7-fade-backward,.router-transition-f7-fade-forward{background:var(--f7-page-bg-color)}.router-transition-f7-fade-forward .page-next{opacity:0!important;animation:f7-fade-in var(--f7-page-fade-transition-duration) forwards}.router-transition-f7-fade-forward .page-current{animation:f7-fade-out var(--f7-page-fade-transition-duration) forwards}.router-transition-f7-fade-backward .page-current{animation:f7-fade-out var(--f7-page-fade-transition-duration) forwards}.router-transition-f7-fade-backward .page-previous{animation:f7-fade-in var(--f7-page-fade-transition-duration) forwards}@keyframes f7-fade-in{from{opacity:0}50%{opacity:0}to{opacity:1}}@keyframes f7-fade-out{from{opacity:1}50%{opacity:0}to{opacity:0}}.router-transition-f7-flip-backward,.router-transition-f7-flip-forward{background:#000;perspective:1200px}.router-transition-f7-flip-backward .page,.router-transition-f7-flip-forward .page{-webkit-backface-visibility:hidden;backface-visibility:hidden}.router-transition-f7-flip-forward .page-next{animation:f7-flip-next-to-current var(--f7-page-flip-transition-duration) forwards}.router-transition-f7-flip-forward .page-current{animation:f7-flip-current-to-prev var(--f7-page-flip-transition-duration) forwards}.router-transition-f7-flip-backward .page-current{animation:f7-flip-current-to-next var(--f7-page-flip-transition-duration) forwards}.router-transition-f7-flip-backward .page-previous{animation:f7-flip-prev-to-current var(--f7-page-flip-transition-duration) forwards}@keyframes f7-flip-next-to-current{from{border-radius:30px;transform:translateZ(-100vmax) rotateY(-180deg)}to{border-radius:0;transform:translateZ(0px) rotateY(0deg)}}@keyframes f7-flip-current-to-next{from{border-radius:0px;transform:translateZ(0px) rotateY(0deg)}to{border-radius:30px;transform:translateZ(-100vmax) rotateY(-180deg)}}@keyframes f7-flip-current-to-prev{from{border-radius:0px;transform:translateZ(0px) rotateY(0deg)}to{border-radius:30px;transform:translateZ(-100vmax) rotateY(180deg)}}@keyframes f7-flip-prev-to-current{from{border-radius:30px;transform:translateZ(-100vmax) rotateY(180deg)}to{border-radius:0px;transform:translateZ(0px) rotateY(0deg)}}.router-transition-f7-parallax-forward .page-next{animation:f7-parallax-next-to-current var(--f7-page-parallax-transition-duration) forwards}.router-transition-f7-parallax-forward .page-current{animation:f7-parallax-current-to-prev var(--f7-page-parallax-transition-duration) forwards}.router-transition-f7-parallax-backward .page-current{animation:f7-parallax-current-to-next var(--f7-page-parallax-transition-duration) forwards}.router-transition-f7-parallax-backward .page-previous{animation:f7-parallax-prev-to-current var(--f7-page-parallax-transition-duration) forwards}@keyframes f7-parallax-next-to-current{from{transform:translateX(-100%)}to{transform:translateX(0%)}}@keyframes f7-parallax-current-to-next{from{transform:translateX(0%)}to{transform:translateX(-100%)}}@keyframes f7-parallax-current-to-prev{from{transform:translateX(0%)}to{transform:translateX(20%)}}@keyframes f7-parallax-prev-to-current{from{transform:translateX(20%)}to{transform:translateX(0%)}}.router-transition-f7-push-forward .page-next{animation:f7-push-next-to-current var(--f7-page-push-transition-duration) forwards}.router-transition-f7-push-forward .page-current{animation:f7-push-current-to-prev var(--f7-page-push-transition-duration) forwards}.router-transition-f7-push-backward .page-current{animation:f7-push-current-to-next var(--f7-page-push-transition-duration) forwards}.router-transition-f7-push-backward .page-previous{animation:f7-push-prev-to-current var(--f7-page-push-transition-duration) forwards}@keyframes f7-push-next-to-current{from{transform:translateX(-100%)}to{transform:translateX(0%)}}@keyframes f7-push-current-to-next{from{transform:translateX(0%)}to{transform:translateX(-100%)}}@keyframes f7-push-current-to-prev{from{transform:translateX(0%)}to{transform:translateX(100%)}}@keyframes f7-push-prev-to-current{from{transform:translateX(100%)}to{transform:translateX(0%)}}:root{--f7-link-highlight-black:rgba(0, 0, 0, 0.1);--f7-link-highlight-white:rgba(255, 255, 255, 0.15);--f7-link-highlight-color:var(--f7-link-highlight-black)}.theme-dark{--f7-link-highlight-color:var(--f7-link-highlight-white)}.link,.tab-link{display:inline-flex;align-items:center;align-content:center;justify-content:center;position:relative;box-sizing:border-box;z-index:1}.link i+i,.link i+span,.link span+i,.link span+span{margin-right:4px}.ios .link{transition:opacity .3s}.ios .link.active-state{opacity:.3;transition-duration:0s}.aurora .link{transition:opacity .3s}.aurora .link.active-state{opacity:.3;transition-duration:0s}:root{--f7-navbar-hide-show-transition-duration:400ms;--f7-navbar-title-line-height:1.2;--f7-navbar-title-font-size:inherit;--f7-navbar-subtitle-text-align:inherit;--f7-navbar-large-title-line-height:1.2;--f7-navbar-large-title-text-color:inherit;--f7-navbar-large-title-padding-left:16px;--f7-navbar-large-title-padding-right:16px}.ios{--f7-navbar-height:44px;--f7-navbar-tablet-height:44px;--f7-navbar-font-size:17px;--f7-navbar-inner-padding-left:8px;--f7-navbar-inner-padding-right:8px;--f7-navbar-title-font-weight:600;--f7-navbar-title-margin-left:0;--f7-navbar-title-margin-right:0;--f7-navbar-title-text-align:center;--f7-navbar-subtitle-font-size:10px;--f7-navbar-subtitle-line-height:1;--f7-navbar-shadow-image:none;--f7-navbar-large-title-height:52px;--f7-navbar-large-title-font-size:34px;--f7-navbar-large-title-font-weight:700;--f7-navbar-large-title-letter-spacing:-0.03em;--f7-navbar-large-title-padding-vertical:6px;--f7-navbar-subtitle-text-color:rgba(0, 0, 0, 0.55)}.ios .theme-dark,.ios.theme-dark{--f7-navbar-subtitle-text-color:rgba(255, 255, 255, 0.55)}.md{--f7-navbar-height:56px;--f7-navbar-tablet-height:64px;--f7-navbar-font-size:20px;--f7-navbar-inner-padding-left:0px;--f7-navbar-inner-padding-right:0px;--f7-navbar-title-font-weight:500;--f7-navbar-title-margin-left:16px;--f7-navbar-title-margin-right:16px;--f7-navbar-title-text-align:left;--f7-navbar-subtitle-font-size:14px;--f7-navbar-subtitle-line-height:1.2;--f7-navbar-shadow-image:var(--f7-bars-shadow-bottom-image);--f7-navbar-large-title-font-size:34px;--f7-navbar-large-title-height:56px;--f7-navbar-large-title-font-weight:500;--f7-navbar-large-title-letter-spacing:0;--f7-navbar-large-title-padding-vertical:8px;--f7-navbar-subtitle-text-color:rgba(0, 0, 0, 0.85)}.md .theme-dark,.md.theme-dark{--f7-navbar-subtitle-text-color:rgba(255, 255, 255, 0.85)}.aurora{--f7-navbar-height:38px;--f7-navbar-tablet-height:38px;--f7-navbar-font-size:14px;--f7-navbar-inner-padding-left:16px;--f7-navbar-inner-padding-right:16px;--f7-navbar-title-font-weight:600;--f7-navbar-title-margin-left:0;--f7-navbar-title-margin-right:0;--f7-navbar-title-text-align:center;--f7-navbar-subtitle-font-size:12px;--f7-navbar-subtitle-line-height:1;--f7-navbar-shadow-image:none;--f7-navbar-large-title-height:38px;--f7-navbar-large-title-font-size:26px;--f7-navbar-large-title-font-weight:bold;--f7-navbar-large-title-letter-spacing:-0.03em;--f7-navbar-large-title-padding-vertical:4px;--f7-navbar-link-height:auto;--f7-navbar-link-line-height:inherit;--f7-navbar-subtitle-text-color:rgba(0, 0, 0, 0.6)}.aurora .theme-dark,.aurora.theme-dark{--f7-navbar-subtitle-text-color:rgba(255, 255, 255, 0.5)}.navbar,.navbars{z-index:500;left:0;top:0;width:100%}.navbars{position:absolute}.navbars .navbar{z-index:auto}.navbar{--f7-navbar-large-collapse-progress:0;position:relative;-webkit-backface-visibility:hidden;backface-visibility:hidden;box-sizing:border-box;margin:0;height:calc(var(--f7-navbar-height) + var(--f7-safe-area-top));color:var(--f7-navbar-text-color,var(--f7-bars-text-color));font-size:var(--f7-navbar-font-size)}.navbar.stacked{display:none}.navbar b{font-weight:500}.navbar a{color:var(--f7-navbar-link-color,var(--f7-bars-link-color,var(--f7-theme-color)))}.navbar a.link{display:flex;justify-content:flex-start;line-height:var(--f7-navbar-link-line-height,var(--f7-navbar-height));height:var(--f7-navbar-link-height,var(--f7-navbar-height))}.navbar .left,.navbar .right,.navbar .title{position:relative;z-index:10}.navbar .title{position:relative;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-shrink:10;font-weight:var(--f7-navbar-title-font-weight);display:inline-block;line-height:var(--f7-navbar-title-line-height);text-align:var(--f7-navbar-title-text-align);font-size:var(--f7-navbar-title-font-size);margin-right:var(--f7-navbar-title-margin-left);margin-left:var(--f7-navbar-title-margin-left)}.navbar .subtitle{display:block;color:var(--f7-navbar-subtitle-text-color);font-weight:400;font-size:var(--f7-navbar-subtitle-font-size);line-height:var(--f7-navbar-subtitle-line-height);text-align:var(--f7-navbar-subtitle-text-align)}.navbar .left,.navbar .right{flex-shrink:0;display:flex;justify-content:flex-start;align-items:center}.navbar .right:first-child{position:absolute;height:100%}.navbar .no-border .navbar-bg:after,.navbar .no-hairline .navbar-bg:after,.navbar.no-border .navbar-bg:after,.navbar.no-hairline .navbar-bg:after{display:none!important}.navbar .no-border .title-large:after,.navbar .no-hairline .title-large:after,.navbar.no-border .title-large:after,.navbar.no-hairline .title-large:after{display:none!important}.navbar .no-shadow .navbar-bg:before,.navbar.no-shadow .navbar-bg:before{display:none!important}.navbar-hidden .navbar .navbar-bg:before,.navbar.navbar-hidden .navbar-bg:before{opacity:0!important}.navbar-bg{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;z-index:0;background:var(--f7-navbar-bg-color);background-image:var(--f7-navbar-bg-image,var(--f7-bars-bg-image));background-color:var(--f7-navbar-bg-color,var(--f7-bars-bg-color));transition-property:transform}@supports ((-webkit-backdrop-filter:blur(20px)) or (backdrop-filter:blur(20px))){.ios-translucent-bars .navbar-bg{background-color:rgba(var(--f7-navbar-bg-color-rgb,var(--f7-bars-bg-color-rgb)),var(--f7-bars-translucent-opacity));-webkit-backdrop-filter:saturate(180%) blur(var(--f7-bars-translucent-blur));backdrop-filter:saturate(180%) blur(var(--f7-bars-translucent-blur))}}.navbar-bg:after,.navbar-bg:before{-webkit-backface-visibility:hidden;backface-visibility:hidden}.navbar-bg:after{content:'';position:absolute;background-color:var(--f7-navbar-border-color,var(--f7-bars-border-color));display:block;z-index:15;top:auto;right:auto;bottom:0;left:0;height:1px;width:100%;transform-origin:50% 100%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.navbar-bg:before{content:'';position:absolute;right:0;width:100%;top:100%;bottom:auto;height:8px;pointer-events:none;background:var(--f7-navbar-shadow-image)}.navbar-bg:after{z-index:1}@media (min-width:768px) and (min-height:600px){:root{--f7-navbar-height:var(--f7-navbar-tablet-height)}}.navbar-transitioning,.navbar-transitioning .left,.navbar-transitioning .navbar-bg,.navbar-transitioning .navbar-bg:before,.navbar-transitioning .right,.navbar-transitioning .subnavbar,.navbar-transitioning .title,.navbar-transitioning .title-large-text{transition-duration:var(--f7-navbar-hide-show-transition-duration)}.navbar-page-transitioning{transition-duration:var(--f7-page-swipeback-transition-duration)!important}.navbar-page-transitioning .navbar-bg,.navbar-page-transitioning .title-large-text{transition-duration:var(--f7-page-swipeback-transition-duration)!important}.navbar-hidden{transform:translate3d(0,calc(-1 * var(--f7-navbar-height)),0)}.navbar-hidden .navbar-inner{pointer-events:none}.navbar-hidden .navbar-inner>.left,.navbar-hidden .navbar-inner>.right,.navbar-hidden .navbar-inner>.title{opacity:0!important}.navbar-hidden .subnavbar{pointer-events:auto}.navbar-hidden-statusbar{transform:translate3d(0,calc(-1 * var(--f7-navbar-height) - var(--f7-safe-area-top)),0)}.navbar-large-hidden .navbar-large{--f7-navbar-large-collapse-progress:1}.navbar-inner{position:absolute;left:0;bottom:0;width:100%;height:100%;display:flex;align-items:center;box-sizing:border-box;padding:var(--f7-safe-area-top) calc(var(--f7-navbar-inner-padding-right) + var(--f7-safe-area-right)) 0 calc(var(--f7-navbar-inner-padding-left) + var(--f7-safe-area-left));transform:translate3d(0,0,0);z-index:10}.navbars>.navbar,.page>.navbar,.view>.navbar,.views>.navbar{position:absolute}.navbar-transparent:not(.navbar-large):not(.navbar-transparent-visible):not(.with-searchbar-expandable-enabled) .navbar-bg,.navbar-transparent:not(.navbar-large):not(.navbar-transparent-visible):not(.with-searchbar-expandable-enabled) .title{opacity:0}.navbar-large .navbar-bg{height:calc(100% + var(--f7-navbar-large-title-height));transform:translate3d(0px,calc(-1 * var(--f7-navbar-large-collapse-progress) * var(--f7-navbar-large-title-height)),0)}.navbar-large-transparent .navbar-bg,.navbar-large.navbar-transparent .navbar-bg{opacity:var(--f7-navbar-large-collapse-progress);height:100%;transform:none}.ios .router-navbar-transition-from-large .navbar-bg,.ios .router-navbar-transition-to-large .navbar-bg,.navbar-bg.ios-swipeback-navbar-bg-large,.navbar-large-transparent .navbar-bg.ios-swipeback-navbar-bg-large,.navbar-large.navbar-transparent .navbar-bg.ios-swipeback-navbar-bg-large{height:calc(100% + var(--f7-navbar-large-title-height));transform:translate3d(0px,calc(-1 * var(--f7-navbar-large-collapse-progress) * var(--f7-navbar-large-title-height)),0)}.ios .navbar:not(.navbar-large) .navbar-bg{--f7-navbar-large-collapse-progress:1}.navbar-large .title{opacity:var(--f7-navbar-large-collapse-progress)}.navbar-large-collapsed{--f7-navbar-large-collapse-progress:1}.navbar-large-collapsed .title-large{pointer-events:none}.navbar .title-large{box-sizing:border-box;position:absolute;left:0;right:0;top:100%;display:flex;align-items:flex-end;white-space:nowrap;overflow:hidden;height:var(--f7-navbar-large-title-height);z-index:5}.navbar .title-large-text{text-overflow:ellipsis;white-space:nowrap;color:var(--f7-navbar-large-title-text-color);letter-spacing:var(--f7-navbar-large-title-letter-spacing);font-size:var(--f7-navbar-large-title-font-size);font-weight:var(--f7-navbar-large-title-font-weight);line-height:var(--f7-navbar-large-title-line-height);padding-left:calc(var(--f7-navbar-large-title-padding-left) + var(--f7-safe-area-left));padding-right:calc(var(--f7-navbar-large-title-padding-right) + var(--f7-safe-area-right));padding-top:var(--f7-navbar-large-title-padding-vertical);padding-bottom:var(--f7-navbar-large-title-padding-vertical);box-sizing:border-box;overflow:hidden;width:100%;transform:translate3d(0px,calc(-1 * var(--f7-navbar-large-collapse-progress) * var(--f7-navbar-large-title-height)),0);transform-origin:calc(100% - var(--f7-navbar-large-title-padding-left) - var(--f7-safe-area-left)) center}.navbar-no-title-large-transition .title-large-text{transition-duration:0s}.navbars~*,.navbar~*{--f7-page-navbar-offset:calc(var(--f7-navbar-height) + var(--f7-safe-area-top))}.navbars~* .page-with-navbar-large,.navbars~.page-with-navbar-large,.navbar~* .page-with-navbar-large,.navbar~.page-with-navbar-large,.page-with-navbar-large .navbar~*{--f7-page-navbar-offset:calc(var(--f7-navbar-height) + var(--f7-navbar-large-title-height) + var(--f7-safe-area-top))}.page.no-navbar,.page.no-navbar .navbar~*{--f7-page-navbar-offset:var(--f7-safe-area-top)}.ios{--f7-navbarLeftTextOffset:calc(4px + 12px + var(--f7-navbar-inner-padding-left));--f7-navbarTitleLargeOffset:var(--f7-navbar-large-title-padding-left);--f7-navbar-large-transparent-bg-center:translateX(0);--f7-navbar-large-bg-center-top:translateX(0) translateY(calc(-1 * var(--f7-navbar-large-title-height)));--f7-navbar-large-bg-center-bottom:translateX(0) translateY(0);--f7-navbar-large-transparent-bg-left:translateX(100%);--f7-navbar-large-bg-left-top:translateX(100%) translateY(calc(-1 * var(--f7-navbar-large-title-height)));--f7-navbar-large-bg-left-bottom:translateX(100%) translateY(0);--f7-navbar-large-bg-right-top:translateX(-100%) translateY(calc(-1 * var(--f7-navbar-large-title-height)));--f7-navbar-large-bg-right-bottom:translateX(-100%) translateY(0)}.ios .navbar a.icon-only{width:44px;margin:0;justify-content:center}.ios .navbar .left a+a,.ios .navbar .right a+a{margin-right:16px}.ios .navbar b{font-weight:600}.ios .navbar .left{margin-left:10px}.ios .navbar .right{margin-right:10px}.ios .navbar .right:first-child{left:calc(8px + var(--f7-safe-area-left))}.ios .navbar-inner{justify-content:space-between}.ios .navbar-inner-left-title{justify-content:flex-start}.ios .navbar-inner-left-title .right{margin-right:auto}.ios .navbar-inner-left-title .title{text-align:left;margin-left:10px}.ios .navbar-next .fading,.ios .navbar-next .left,.ios .navbar-next .right,.ios .navbar-next .subnavbar,.ios .navbar-next .title,.ios .view-master-detail .navbar-previous:not(.navbar-master) .fading,.ios .view-master-detail .navbar-previous:not(.navbar-master) .left,.ios .view-master-detail .navbar-previous:not(.navbar-master) .right,.ios .view-master-detail .navbar-previous:not(.navbar-master) .subnavbar,.ios .view-master-detail .navbar-previous:not(.navbar-master) .title,.ios .view:not(.view-master-detail) .navbar-previous .fading,.ios .view:not(.view-master-detail) .navbar-previous .left,.ios .view:not(.view-master-detail) .navbar-previous .right,.ios .view:not(.view-master-detail) .navbar-previous .subnavbar,.ios .view:not(.view-master-detail) .navbar-previous .title{opacity:0}.ios .view-master-detail .navbar-previous:not(.navbar-master),.ios .view:not(.view-master-detail) .navbar-previous{pointer-events:none}.ios .view-master-detail .navbar-previous:not(.navbar-master) .title-large,.ios .view:not(.view-master-detail) .navbar-previous .title-large{opacity:0;transition-duration:0s}.ios .view-master-detail .navbar-previous:not(.navbar-master) .title-large .title-large-text,.ios .view:not(.view-master-detail) .navbar-previous .title-large .title-large-text{transform:scale(.5);transition-duration:0s}.ios .view-master-detail .navbar-previous:not(.navbar-master) .sliding .subnavbar,.ios .view-master-detail .navbar-previous:not(.navbar-master) .subnavbar.sliding,.ios .view:not(.view-master-detail) .navbar-previous .sliding .subnavbar,.ios .view:not(.view-master-detail) .navbar-previous .subnavbar.sliding{opacity:1;transform:translate3d(100%,0,0)}.ios .view-master-detail .navbar-previous:not(.navbar-master) .navbar-bg,.ios .view:not(.view-master-detail) .navbar-previous .navbar-bg{transform:translateX(-100%)}.ios .navbar-next{pointer-events:none}.ios .navbar-next .navbar-bg{transform:translateX(-100%)}.ios .navbar-next .title-large .title-large-text{transition-duration:0s;transform:translateX(-100%) translateY(calc(-1 * var(--f7-navbar-large-title-height)))}.ios .navbar-next .sliding .subnavbar,.ios .navbar-next .subnavbar.sliding{opacity:1;transform:translate3d(-100%,0,0)}.ios .router-transition .navbar,.ios .router-transition .navbar-bg{transition-duration:var(--f7-page-transition-duration)}.ios .router-transition .navbar-bg{animation-duration:var(--f7-page-transition-duration);animation-fill-mode:forwards}.ios .router-transition .title-large,.ios .router-transition .title-large-text{transition-duration:0s}.ios .router-transition .navbar-current .left,.ios .router-transition .navbar-current .right,.ios .router-transition .navbar-current .subnavbar,.ios .router-transition .navbar-current .title{animation:ios-navbar-element-fade-out var(--f7-page-transition-duration) forwards}.ios .router-transition .navbar-current .sliding .left,.ios .router-transition .navbar-current .sliding .left .icon+span,.ios .router-transition .navbar-current .sliding .right,.ios .router-transition .navbar-current .sliding .title,.ios .router-transition .navbar-current .sliding.left,.ios .router-transition .navbar-current .sliding.left .icon+span,.ios .router-transition .navbar-current .sliding.right,.ios .router-transition .navbar-current .sliding.title{transition-duration:var(--f7-page-transition-duration);opacity:0!important;animation:none}.ios .router-transition .navbar-current .sliding .subnavbar,.ios .router-transition .navbar-current .sliding.subnavbar{transition-duration:var(--f7-page-transition-duration);animation:none;opacity:1}.ios .router-transition-backward .navbar-previous .left,.ios .router-transition-backward .navbar-previous .right,.ios .router-transition-backward .navbar-previous .subnavbar,.ios .router-transition-backward .navbar-previous .title,.ios .router-transition-forward .navbar-next .left,.ios .router-transition-forward .navbar-next .right,.ios .router-transition-forward .navbar-next .subnavbar,.ios .router-transition-forward .navbar-next .title{animation:ios-navbar-element-fade-in var(--f7-page-transition-duration) forwards}.ios .router-transition-backward .navbar-previous .sliding .left,.ios .router-transition-backward .navbar-previous .sliding .left .icon+span,.ios .router-transition-backward .navbar-previous .sliding .right,.ios .router-transition-backward .navbar-previous .sliding .subnavbar,.ios .router-transition-backward .navbar-previous .sliding .title,.ios .router-transition-backward .navbar-previous .sliding.left,.ios .router-transition-backward .navbar-previous .sliding.left .icon+span,.ios .router-transition-backward .navbar-previous .sliding.right,.ios .router-transition-backward .navbar-previous .sliding.title,.ios .router-transition-forward .navbar-next .sliding .left,.ios .router-transition-forward .navbar-next .sliding .left .icon+span,.ios .router-transition-forward .navbar-next .sliding .right,.ios .router-transition-forward .navbar-next .sliding .subnavbar,.ios .router-transition-forward .navbar-next .sliding .title,.ios .router-transition-forward .navbar-next .sliding.left,.ios .router-transition-forward .navbar-next .sliding.left .icon+span,.ios .router-transition-forward .navbar-next .sliding.right,.ios .router-transition-forward .navbar-next .sliding.title{transition-duration:var(--f7-page-transition-duration);animation:none;transform:translate3d(0,0,0)!important;opacity:1!important}.ios .router-transition-backward .navbar-previous.navbar-transparent:not(.navbar-large):not(.navbar-transparent-visible) .title,.ios .router-transition-forward .navbar-next.navbar-transparent:not(.navbar-large):not(.navbar-transparent-visible) .title{animation:none}.ios .router-transition-backward .navbar-previous.navbar-transparent:not(.navbar-large):not(.navbar-transparent-visible) .sliding .title,.ios .router-transition-backward .navbar-previous.navbar-transparent:not(.navbar-large):not(.navbar-transparent-visible) .sliding.title,.ios .router-transition-forward .navbar-next.navbar-transparent:not(.navbar-large):not(.navbar-transparent-visible) .sliding .title,.ios .router-transition-forward .navbar-next.navbar-transparent:not(.navbar-large):not(.navbar-transparent-visible) .sliding.title{opacity:0!important}.ios .router-transition-backward .navbar-previous.with-searchbar-expandable-enabled .left,.ios .router-transition-backward .navbar-previous.with-searchbar-expandable-enabled .right,.ios .router-transition-backward .navbar-previous.with-searchbar-expandable-enabled .subnavbar,.ios .router-transition-backward .navbar-previous.with-searchbar-expandable-enabled .title,.ios .router-transition-backward .navbar-previous.with-searchbar-expandable-enabled-no-transition .left,.ios .router-transition-backward .navbar-previous.with-searchbar-expandable-enabled-no-transition .right,.ios .router-transition-backward .navbar-previous.with-searchbar-expandable-enabled-no-transition .subnavbar,.ios .router-transition-backward .navbar-previous.with-searchbar-expandable-enabled-no-transition .title{animation:none}.ios .router-transition-forward .navbar-current.router-navbar-transition-from-large.router-navbar-transition-to-large .title-large,.ios .router-transition-forward .navbar-current.router-navbar-transition-from-large:not(.router-navbar-transition-to-large) .title-large{overflow:visible}.ios .router-transition-forward .navbar-current.router-navbar-transition-from-large.router-navbar-transition-to-large .title-large .title-large-text,.ios .router-transition-forward .navbar-current.router-navbar-transition-from-large:not(.router-navbar-transition-to-large) .title-large .title-large-text{animation:ios-navbar-large-title-text-slide-up var(--f7-page-transition-duration) forwards,ios-navbar-large-title-text-fade-out var(--f7-page-transition-duration) forwards}.ios .router-transition-forward .navbar-next.router-navbar-transition-from-large .left .back span{animation:ios-navbar-back-text-next-to-current var(--f7-page-transition-duration) forwards;transition:none;transform-origin:right center}.ios .router-transition-forward .navbar-next.router-navbar-transition-from-large.router-navbar-transition-to-large .title-large{overflow:visible}.ios .router-transition-forward .navbar-next.router-navbar-transition-from-large.router-navbar-transition-to-large .title-large .title-large-text{animation:ios-navbar-large-title-text-slide-left var(--f7-page-transition-duration) forwards}.ios .router-transition-forward .navbar-next.router-navbar-transition-to-large:not(.router-navbar-transition-from-large) .title-large .title-large-text{animation:ios-navbar-large-title-text-slide-left var(--f7-page-transition-duration) forwards}.ios .router-transition-forward .navbar-current.navbar-large:not(.navbar-large-collapsed) .title,.ios .router-transition-forward .navbar-next.navbar-large:not(.navbar-large-collapsed) .title{animation:none;opacity:0!important;transition-duration:0}.ios .router-transition-backward .navbar-current.router-navbar-transition-to-large .left .back span{animation:ios-navbar-back-text-current-to-previous var(--f7-page-transition-duration) forwards;transition:none;transform-origin:right center}.ios .router-transition-backward .navbar-current.router-navbar-transition-from-large.router-navbar-transition-to-large .title-large{overflow:visible}.ios .router-transition-backward .navbar-current.router-navbar-transition-from-large.router-navbar-transition-to-large .title-large .title-large-text{animation:ios-navbar-large-title-text-slide-right var(--f7-page-transition-duration) forwards}.ios .router-transition-backward .navbar-current.router-navbar-transition-from-large:not(.router-navbar-transition-to-large) .title-large .title-large-text{animation:ios-navbar-large-title-text-slide-right var(--f7-page-transition-duration) forwards}.ios .router-transition-backward .navbar-current.router-navbar-transition-to-large:not(.router-navbar-transition-from-large) .title-large{opacity:0}.ios .router-transition-backward .navbar-previous.router-navbar-transition-from-large.router-navbar-transition-to-large .title-large,.ios .router-transition-backward .navbar-previous.router-navbar-transition-to-large:not(.router-navbar-transition-from-large) .title-large{overflow:visible;opacity:1}.ios .router-transition-backward .navbar-previous.router-navbar-transition-from-large.router-navbar-transition-to-large .title-large .title-large-text,.ios .router-transition-backward .navbar-previous.router-navbar-transition-to-large:not(.router-navbar-transition-from-large) .title-large .title-large-text{animation:ios-navbar-large-title-text-slide-down var(--f7-page-transition-duration) forwards,ios-navbar-large-title-text-fade-in var(--f7-page-transition-duration) forwards}.ios .router-transition-backward .navbar-current.navbar-large:not(.navbar-large-collapsed) .title,.ios .router-transition-backward .navbar-previous.navbar-large:not(.navbar-large-collapsed) .title{animation:none;opacity:0!important;transition-duration:0}.ios .router-transition-forward .navbar-current .navbar-bg{animation-name:ios-navbar-bg-from-cb-to-lb}.ios .router-transition-forward .navbar-current.router-navbar-transition-from-large.router-navbar-transition-to-large .navbar-bg{animation-name:ios-navbar-bg-from-cb-to-lb}.ios .router-transition-forward .navbar-current.router-navbar-transition-from-large:not(.router-navbar-transition-to-large) .navbar-bg{animation-name:ios-navbar-bg-from-cb-to-lt}.ios .router-transition-forward .navbar-current:not(.router-navbar-transition-from-large).router-navbar-transition-to-large .navbar-bg{animation-name:ios-navbar-bg-from-ct-to-lb}.ios .router-transition-forward .navbar-current.navbar-large-collapsed:not(.router-navbar-transition-to-large) .navbar-bg{animation-name:ios-navbar-bg-from-ct-to-lt}.ios .router-transition-forward .navbar-current.navbar-large-collapsed.navbar-large-transparent:not(.router-navbar-transition-to-large) .navbar-bg,.ios .router-transition-forward .navbar-current.navbar-large-collapsed.navbar-large.navbar-transparent:not(.router-navbar-transition-to-large) .navbar-bg{animation-name:ios-navbar-transparent-bg-from-c-to-l}.ios .router-transition-forward .navbar-next .navbar-bg{animation-name:ios-navbar-bg-from-rb-to-cb}.ios .router-transition-forward .navbar-next.router-navbar-transition-from-large.router-navbar-transition-to-large .navbar-bg{animation-name:ios-navbar-bg-from-rb-to-cb}.ios .router-transition-forward .navbar-next.router-navbar-transition-from-large:not(.router-navbar-transition-to-large) .navbar-bg{animation-name:ios-navbar-bg-from-rb-to-ct}.ios .router-transition-forward .navbar-next:not(.router-navbar-transition-from-large).router-navbar-transition-to-large .navbar-bg{animation-name:ios-navbar-bg-from-rt-to-cb}.ios .router-transition-backward .navbar-current .navbar-bg{animation-name:ios-navbar-bg-from-cb-to-rb}.ios .router-transition-backward .navbar-current:not(.router-navbar-transition-from-large).router-navbar-transition-to-large .navbar-bg{animation-name:ios-navbar-bg-from-ct-to-rb}.ios .router-transition-backward .navbar-current.router-navbar-transition-from-large:not(.router-navbar-transition-to-large) .navbar-bg{animation-name:ios-navbar-bg-from-cb-to-rt}.ios .router-transition-backward .navbar-current.navbar-large-collapsed .navbar-bg{animation-name:ios-navbar-bg-from-ct-to-rt}.ios .router-transition-backward .navbar-current.navbar-large-collapsed.navbar-large-transparent .navbar-bg,.ios .router-transition-backward .navbar-current.navbar-large-collapsed.navbar-large.navbar-transparent .navbar-bg{animation-name:ios-navbar-bg-from-cb-to-rb}.ios .router-transition-backward .navbar-current.navbar-large-collapsed.router-navbar-transition-to-large .navbar-bg{animation-name:ios-navbar-bg-from-ct-to-rb}.ios .router-transition-backward .navbar-previous .navbar-bg{animation-name:ios-navbar-bg-from-lb-to-cb}.ios .router-transition-backward .navbar-previous:not(.router-navbar-transition-from-large).router-navbar-transition-to-large .navbar-bg{animation-name:ios-navbar-bg-from-lt-to-cb}.ios .router-transition-backward .navbar-previous.router-navbar-transition-from-large:not(.router-navbar-transition-to-large) .navbar-bg{animation-name:ios-navbar-bg-from-lb-to-ct}.ios .router-transition-backward .navbar-previous.navbar-large-collapsed .navbar-bg{animation-name:ios-navbar-bg-from-lt-to-ct}.ios .router-transition-backward .navbar-previous.navbar-large-collapsed.navbar-large-transparent .navbar-bg,.ios .router-transition-backward .navbar-previous.navbar-large-collapsed.navbar-large.navbar-transparent .navbar-bg{animation-name:ios-navbar-transparent-bg-from-l-to-c}.ios .router-transition-backward .navbar-previous.navbar-large-collapsed.navbar-large-transparent.router-navbar-transition-from-large .navbar-bg,.ios .router-transition-backward .navbar-previous.navbar-large-collapsed.navbar-large.navbar-transparent.router-navbar-transition-from-large .navbar-bg{animation-name:ios-navbar-bg-from-lb-to-ct}.view-master-detail .navbars{z-index:auto}.view-master-detail .page-master{z-index:525}.view-master-detail .navbar-master .navbar-bg,.view-master-detail .navbar-master .navbar-inner{z-index:550}.view-master-detail .navbar-master-detail .navbar-bg,.view-master-detail .navbar-master-detail .navbar-inner{z-index:500}.view-master-detail .navbar-master.navbar-previous{pointer-events:auto}.view-master-detail .navbar-master.navbar-previous .left,.view-master-detail .navbar-master.navbar-previous .right,.view-master-detail .navbar-master.navbar-previous .subnavbar,.view-master-detail .navbar-master.navbar-previous:not(.navbar-large) .title{opacity:1}.view-master-detail.router-transition .navbar-master .fading,.view-master-detail.router-transition .navbar-master .left,.view-master-detail.router-transition .navbar-master .left .icon+span,.view-master-detail.router-transition .navbar-master .right,.view-master-detail.router-transition .navbar-master .subnavbar,.view-master-detail.router-transition .navbar-master:not(.navbar-large) .title{opacity:1!important;transition-duration:0s;transform:none!important;animation:none!important}.view-master-detail.router-transition .navbar-master .navbar-bg{transition-duration:0s;animation:none!important}.view-master-detail.router-transition .navbar-master.navbar-large .title{opacity:calc(-1 + 2 * var(--f7-navbar-large-collapse-progress))!important;transition-duration:0s;transform:none!important;animation:none!important}.view-master-detail.router-transition .navbar-master.navbar-large .title-large,.view-master-detail.router-transition .navbar-master.navbar-large .title-large-text{transition-duration:0s;animation:none!important}.view-master-detail.router-transition .navbar-master.navbar-large-transparent .navbar-bg,.view-master-detail.router-transition .navbar-master.navbar-large.navbar-transparent .navbar-bg{height:100%!important;opacity:var(--f7-navbar-large-collapse-progress)!important}@keyframes ios-navbar-element-fade-in{0%{opacity:0}25%{opacity:0}to{opacity:1}}@keyframes ios-navbar-element-fade-out{from{opacity:1}75%{opacity:0}to{opacity:0}}@keyframes ios-navbar-large-title-text-slide-up{0%{transform:translateX(0px) translateY(0%) scale(1)}100%{transform:translateX(calc(-1 * (var(--f7-navbarLeftTextOffset) - var(--f7-navbarTitleLargeOffset)))) translateY(calc(-1 * var(--f7-navbar-large-title-height) + var(--f7-navbar-large-title-padding-vertical))) scale(.5)}}@keyframes ios-navbar-large-title-text-slide-down{0%{transform:translateX(calc(-1 * (var(--f7-navbarLeftTextOffset) - var(--f7-navbarTitleLargeOffset)))) translateY(calc(-1 * var(--f7-navbar-large-title-height) + var(--f7-navbar-large-title-padding-vertical)/ 2)) scale(.5)}100%{transform:translateX(0px) translateY(0%) scale(1)}}@keyframes ios-navbar-large-title-text-slide-left{0%{transform:translateX(-100%)}100%{transform:translateX(0%)}}@keyframes ios-navbar-large-title-text-slide-right{0%{transform:translateX(0%)}100%{transform:translateX(-100%)}}@keyframes ios-navbar-large-title-text-fade-out{0%{opacity:1}80%{opacity:0}100%{opacity:0}}@keyframes ios-navbar-large-title-text-fade-in{0%{opacity:0}20%{opacity:0}100%{opacity:1}}@keyframes ios-navbar-back-text-current-to-previous{0%{opacity:1;transform:translateY(0px) translateX(0px) scale(1)}80%{opacity:0}100%{opacity:0;transform:translateX(calc(-1 * (var(--f7-navbarTitleLargeOffset) - var(--f7-navbarLeftTextOffset)))) translateY(calc(1 * var(--f7-navbar-large-title-height) - var(--f7-navbar-large-title-padding-vertical)/ 2)) scale(2)}}@keyframes ios-navbar-back-text-next-to-current{0%{opacity:0;transform:translateX(calc(-1 * (var(--f7-navbarTitleLargeOffset) - var(--f7-navbarLeftTextOffset)))) translateY(calc(1 * var(--f7-navbar-large-title-height) + var(--f7-navbar-large-title-padding-vertical)/ 2)) scale(2)}20%{opacity:0}100%{opacity:1;transform:translateX(0px) translateY(0px) scale(1)}}@keyframes ios-navbar-bg-from-cb-to-lb{from{transform:var(--f7-navbar-large-bg-center-bottom)}to{transform:var(--f7-navbar-large-bg-left-bottom)}}@keyframes ios-navbar-bg-from-cb-to-lt{from{transform:var(--f7-navbar-large-bg-center-bottom)}to{transform:var(--f7-navbar-large-bg-left-top)}}@keyframes ios-navbar-bg-from-ct-to-lb{from{transform:var(--f7-navbar-large-bg-center-top)}to{transform:var(--f7-navbar-large-bg-left-bottom)}}@keyframes ios-navbar-bg-from-ct-to-lt{from{transform:var(--f7-navbar-large-bg-center-top)}to{transform:var(--f7-navbar-large-bg-left-top)}}@keyframes ios-navbar-bg-from-rb-to-cb{from{transform:var(--f7-navbar-large-bg-right-bottom)}to{transform:var(--f7-navbar-large-bg-center-bottom)}}@keyframes ios-navbar-bg-from-rb-to-ct{from{transform:var(--f7-navbar-large-bg-right-bottom)}to{transform:var(--f7-navbar-large-bg-center-top)}}@keyframes ios-navbar-bg-from-rt-to-cb{from{transform:var(--f7-navbar-large-bg-right-top)}to{transform:var(--f7-navbar-large-bg-center-bottom)}}@keyframes ios-navbar-bg-from-cb-to-rb{from{transform:var(--f7-navbar-large-bg-center-bottom)}to{transform:var(--f7-navbar-large-bg-right-bottom)}}@keyframes ios-navbar-bg-from-ct-to-rb{from{transform:var(--f7-navbar-large-bg-center-top)}to{transform:var(--f7-navbar-large-bg-right-bottom)}}@keyframes ios-navbar-bg-from-cb-to-rt{from{transform:var(--f7-navbar-large-bg-center-bottom)}to{transform:var(--f7-navbar-large-bg-right-top)}}@keyframes ios-navbar-bg-from-ct-to-rt{from{transform:var(--f7-navbar-large-bg-center-top)}to{transform:var(--f7-navbar-large-bg-right-top)}}@keyframes ios-navbar-bg-from-lb-to-cb{from{transform:var(--f7-navbar-large-bg-left-bottom)}to{transform:var(--f7-navbar-large-bg-center-bottom)}}@keyframes ios-navbar-bg-from-lt-to-cb{from{transform:var(--f7-navbar-large-bg-left-top)}to{transform:var(--f7-navbar-large-bg-center-bottom)}}@keyframes ios-navbar-bg-from-lb-to-ct{from{transform:var(--f7-navbar-large-bg-left-bottom)}to{transform:var(--f7-navbar-large-bg-center-top)}}@keyframes ios-navbar-bg-from-lt-to-ct{from{transform:var(--f7-navbar-large-bg-left-top)}to{transform:var(--f7-navbar-large-bg-center-top)}}@keyframes ios-navbar-transparent-bg-from-l-to-c{from{transform:var(--f7-navbar-large-transparent-bg-left)}to{transform:var(--f7-navbar-large-transparent-bg-center)}}@keyframes ios-navbar-transparent-bg-from-c-to-l{from{transform:var(--f7-navbar-large-transparent-bg-center)}to{transform:var(--f7-navbar-large-transparent-bg-left)}}.md .navbar a.link{padding:0 16px;min-width:48px}.md .navbar a.link:before{content:'';width:152%;height:152%;position:absolute;left:-26%;top:-26%;background-image:radial-gradient(circle at center,var(--f7-link-highlight-color) 66%,rgba(255,255,255,0) 66%);background-repeat:no-repeat;background-position:center;background-size:100% 100%;opacity:0;pointer-events:none;transition-duration:.6s}.md .navbar a.link.active-state:before{opacity:1;transition-duration:150ms}.md .navbar a.icon-only{min-width:0;flex-shrink:0;width:56px}.md .navbar .right{margin-right:auto}.md .navbar .right:first-child{left:var(--f7-safe-area-left)}.md .navbar-inner{justify-content:flex-start;overflow:hidden}.md .navbar-large:not(.navbar-large-collapsed) .navbar-inner{overflow:visible}.md .page.page-with-subnavbar .navbar-inner{overflow:visible}.md .navbar-inner-centered-title{justify-content:space-between}.md .navbar-inner-centered-title .right{margin-right:0}.md .navbar-inner-centered-title .title{text-align:center}.aurora .navbar a.icon-only{margin:0;justify-content:center}.aurora .navbar .left a+a,.aurora .navbar .right a+a{margin-right:10px}.aurora .navbar b{font-weight:700}.aurora .navbar .left{margin-left:10px}.aurora .navbar .right{margin-right:10px}.aurora .navbar .right:first-child{left:calc(16px + var(--f7-safe-area-left))}.aurora .navbar-inner{justify-content:space-between}.aurora .navbar-inner-left-title{justify-content:flex-start}.aurora .navbar-inner-left-title .right{margin-right:auto}.aurora .navbar-inner-left-title .title{text-align:left;margin-left:10px}:root{--f7-tabbar-link-active-bg-color:transparent;--f7-tabbar-label-text-transform:none;--f7-toolbar-hide-show-transition-duration:400ms}.ios{--f7-toolbar-height:44px;--f7-toolbar-font-size:17px;--f7-toolbar-inner-padding-left:8px;--f7-toolbar-inner-padding-right:8px;--f7-tabbar-labels-height:50px;--f7-tabbar-labels-tablet-height:50px;--f7-toolbar-top-shadow-image:none;--f7-toolbar-bottom-shadow-image:none;--f7-tabbar-icon-size:28px;--f7-tabbar-link-text-transform:none;--f7-tabbar-link-font-weight:400;--f7-tabbar-link-letter-spacing:0;--f7-tabbar-label-font-size:12px;--f7-tabbar-label-tablet-font-size:14px;--f7-tabbar-label-font-weight:500;--f7-tabbar-label-letter-spacing:0.01;--f7-tabbar-link-inactive-color:rgba(0, 0, 0, 0.4)}.ios .theme-dark,.ios.theme-dark{--f7-tabbar-link-inactive-color:rgba(255, 255, 255, 0.54)}.md{--f7-toolbar-height:48px;--f7-toolbar-font-size:14px;--f7-toolbar-inner-padding-left:0px;--f7-toolbar-inner-padding-right:0px;--f7-tabbar-labels-height:56px;--f7-tabbar-labels-tablet-height:56px;--f7-toolbar-top-shadow-image:var(--f7-bars-shadow-bottom-image);--f7-toolbar-bottom-shadow-image:var(--f7-bars-shadow-top-image);--f7-tabbar-icon-size:24px;--f7-tabbar-link-text-transform:uppercase;--f7-tabbar-link-font-weight:500;--f7-tabbar-link-letter-spacing:0.03em;--f7-tabbar-label-font-size:14px;--f7-tabbar-label-tablet-font-size:14px;--f7-tabbar-label-font-weight:400;--f7-tabbar-label-letter-spacing:0;--f7-tabbar-link-inactive-color:rgba(0, 0, 0, 0.54)}.md .theme-dark,.md.theme-dark{--f7-tabbar-link-inactive-color:rgba(255, 255, 255, 0.54)}.aurora{--f7-toolbar-height:38px;--f7-toolbar-font-size:14px;--f7-toolbar-inner-padding-left:16px;--f7-toolbar-inner-padding-right:16px;--f7-toolbar-link-height:auto;--f7-toolbar-link-line-height:inherit;--f7-tabbar-labels-height:44px;--f7-tabbar-labels-tablet-height:44px;--f7-tabbar-link-inactive-bg-color:rgba(0, 0, 0, 0.2);--f7-toolbar-top-shadow-image:none;--f7-toolbar-bottom-shadow-image:none;--f7-tabbar-icon-size:18px;--f7-tabbar-link-text-transform:none;--f7-tabbar-link-font-weight:400;--f7-tabbar-link-letter-spacing:0;--f7-tabbar-label-font-size:12px;--f7-tabbar-label-tablet-font-size:12px;--f7-tabbar-label-font-weight:500;--f7-tabbar-label-letter-spacing:0.01;--f7-tabbar-link-inactive-color:rgba(0, 0, 0, 0.5)}.aurora .theme-dark,.aurora.theme-dark{--f7-tabbar-link-inactive-color:rgba(255, 255, 255, 0.5)}.toolbar{width:100%;position:relative;margin:0;transform:translate3d(0,0,0);-webkit-backface-visibility:hidden;backface-visibility:hidden;z-index:600;box-sizing:border-box;left:0;height:var(--f7-toolbar-height);background-image:var(--f7-toolbar-bg-image,var(--f7-bars-bg-image));background-color:var(--f7-toolbar-bg-color,var(--f7-bars-bg-color));color:var(--f7-toolbar-text-color,var(--f7-bars-text-color));font-size:var(--f7-toolbar-font-size)}@supports ((-webkit-backdrop-filter:blur(20px)) or (backdrop-filter:blur(20px))){.ios-translucent-bars .toolbar{background-color:rgba(var(--f7-toolbar-bg-color-rgb,var(--f7-bars-bg-color-rgb)),var(--f7-bars-translucent-opacity));-webkit-backdrop-filter:saturate(180%) blur(var(--f7-bars-translucent-blur));backdrop-filter:saturate(180%) blur(var(--f7-bars-translucent-blur))}}.toolbar b{font-weight:600}.toolbar a{color:var(--f7-toolbar-link-color,var(--f7-bars-link-color,var(--f7-theme-color)));box-sizing:border-box;flex-shrink:1;position:relative;white-space:nowrap;text-overflow:ellipsis}.toolbar .link{display:flex;line-height:var(--f7-toolbar-link-line-height,var(--f7-toolbar-height));height:var(--f7-toolbar-link-height,var(--f7-toolbar-height))}.toolbar i.icon{display:block}.toolbar:after,.toolbar:before{-webkit-backface-visibility:hidden;backface-visibility:hidden}.page>.toolbar,.view>.toolbar,.views>.toolbar{position:absolute}.aurora .toolbar-top-aurora,.ios .toolbar-top-ios,.md .toolbar-top-md,.toolbar-top{top:0}.aurora .toolbar-top-aurora .tab-link-highlight,.ios .toolbar-top-ios .tab-link-highlight,.md .toolbar-top-md .tab-link-highlight,.toolbar-top .tab-link-highlight{bottom:0}.aurora .toolbar-top-aurora.no-border:after,.aurora .toolbar-top-aurora.no-hairline:after,.ios .toolbar-top-ios.no-border:after,.ios .toolbar-top-ios.no-hairline:after,.md .toolbar-top-md.no-border:after,.md .toolbar-top-md.no-hairline:after,.toolbar-top.no-border:after,.toolbar-top.no-hairline:after{display:none!important}.aurora .toolbar-top-aurora.no-shadow:before,.aurora .toolbar-top-aurora.toolbar-hidden:before,.ios .toolbar-top-ios.no-shadow:before,.ios .toolbar-top-ios.toolbar-hidden:before,.md .toolbar-top-md.no-shadow:before,.md .toolbar-top-md.toolbar-hidden:before,.toolbar-top.no-shadow:before,.toolbar-top.toolbar-hidden:before{display:none!important}.aurora .toolbar-top-aurora:after,.aurora .toolbar-top-aurora:before,.ios .toolbar-top-ios:after,.ios .toolbar-top-ios:before,.md .toolbar-top-md:after,.md .toolbar-top-md:before,.toolbar-top:after,.toolbar-top:before{-webkit-backface-visibility:hidden;backface-visibility:hidden}.aurora .toolbar-top-aurora:after,.ios .toolbar-top-ios:after,.md .toolbar-top-md:after,.toolbar-top:after{content:'';position:absolute;background-color:var(--f7-toolbar-border-color,var(--f7-bars-border-color));display:block;z-index:15;top:auto;right:auto;bottom:0;left:0;height:1px;width:100%;transform-origin:50% 100%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.aurora .toolbar-top-aurora:before,.ios .toolbar-top-ios:before,.md .toolbar-top-md:before,.toolbar-top:before{content:'';position:absolute;right:0;width:100%;top:100%;bottom:auto;height:8px;pointer-events:none;background:var(--f7-toolbar-top-shadow-image)}.aurora .toolbar-bottom-aurora,.ios .toolbar-bottom-ios,.md .toolbar-bottom-md,.toolbar-bottom{bottom:0;height:calc(var(--f7-toolbar-height) + var(--f7-safe-area-bottom))}.aurora .toolbar-bottom-aurora .tab-link-highlight,.ios .toolbar-bottom-ios .tab-link-highlight,.md .toolbar-bottom-md .tab-link-highlight,.toolbar-bottom .tab-link-highlight{top:0}.aurora .toolbar-bottom-aurora .toolbar-inner,.ios .toolbar-bottom-ios .toolbar-inner,.md .toolbar-bottom-md .toolbar-inner,.toolbar-bottom .toolbar-inner{height:auto;top:0;bottom:var(--f7-safe-area-bottom)}.aurora .toolbar-bottom-aurora.no-border:before,.aurora .toolbar-bottom-aurora.no-hairline:before,.ios .toolbar-bottom-ios.no-border:before,.ios .toolbar-bottom-ios.no-hairline:before,.md .toolbar-bottom-md.no-border:before,.md .toolbar-bottom-md.no-hairline:before,.toolbar-bottom.no-border:before,.toolbar-bottom.no-hairline:before{display:none!important}.aurora .toolbar-bottom-aurora.no-shadow:after,.aurora .toolbar-bottom-aurora.toolbar-hidden:after,.ios .toolbar-bottom-ios.no-shadow:after,.ios .toolbar-bottom-ios.toolbar-hidden:after,.md .toolbar-bottom-md.no-shadow:after,.md .toolbar-bottom-md.toolbar-hidden:after,.toolbar-bottom.no-shadow:after,.toolbar-bottom.toolbar-hidden:after{display:none!important}.aurora .toolbar-bottom-aurora:before,.ios .toolbar-bottom-ios:before,.md .toolbar-bottom-md:before,.toolbar-bottom:before{content:'';position:absolute;background-color:var(--f7-toolbar-border-color,var(--f7-bars-border-color));display:block;z-index:15;top:0;right:auto;bottom:auto;left:0;height:1px;width:100%;transform-origin:50% 0%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.aurora .toolbar-bottom-aurora:after,.ios .toolbar-bottom-ios:after,.md .toolbar-bottom-md:after,.toolbar-bottom:after{content:'';position:absolute;right:0;width:100%;bottom:100%;height:8px;top:auto;pointer-events:none;background:var(--f7-toolbar-bottom-shadow-image);transform:translate3d(0,0,0)}.toolbar-inner{position:absolute;left:0;top:0;width:100%;height:100%;display:flex;justify-content:space-between;box-sizing:border-box;align-items:center;align-content:center;overflow:hidden;padding:0 calc(var(--f7-toolbar-inner-padding-right) + var(--f7-safe-area-right)) 0 calc(var(--f7-toolbar-inner-padding-left) + var(--f7-safe-area-left))}.views>.tabbar,.views>.tabbar-labels{z-index:5001}.tabbar a,.tabbar-labels a{color:var(--f7-tabbar-link-inactive-color)}.tabbar .tab-link:not(.tab-link-active),.tabbar-labels .tab-link:not(.tab-link-active){background-color:var(--f7-tabbar-link-inactive-bg-color,transparent)}.tabbar .link,.tabbar-labels .link{line-height:1.4}.tabbar .link,.tabbar .tab-link,.tabbar-labels .link,.tabbar-labels .tab-link{height:100%;width:100%;box-sizing:border-box;display:flex;justify-content:center;align-items:center;flex-direction:column;text-transform:var(--f7-tabbar-link-text-transform);font-weight:var(--f7-tabbar-link-font-weight);letter-spacing:var(--f7-tabbar-link-letter-spacing);overflow:hidden}.tabbar .tab-link-active,.tabbar-labels .tab-link-active{color:var(--f7-tabbar-link-active-color,var(--f7-theme-color));background-color:var(--f7-tabbar-link-active-bg-color,transparent)}.tabbar i.icon,.tabbar-labels i.icon{font-size:var(--f7-tabbar-icon-size);height:var(--f7-tabbar-icon-size);line-height:var(--f7-tabbar-icon-size)}.tabbar-labels{--f7-toolbar-height:var(--f7-tabbar-labels-height)}.tabbar-labels .link,.tabbar-labels .tab-link{height:100%;justify-content:space-between;align-items:center}.tabbar-labels .tabbar-label{display:block;line-height:1;margin:0;position:relative;text-overflow:ellipsis;white-space:nowrap;font-size:var(--f7-tabbar-label-font-size);text-transform:var(--f7-tabbar-label-text-transform);font-weight:var(--f7-tabbar-label-font-weight);letter-spacing:var(--f7-tabbar-label-letter-spacing)}@media (min-width:768px) and (min-height:600px){:root{--f7-tabbar-labels-height:var(--f7-tabbar-labels-tablet-height);--f7-tabbar-label-font-size:var(--f7-tabbar-label-tablet-font-size)}}.tabbar-scrollable .toolbar-inner{justify-content:flex-start;overflow:auto;-webkit-overflow-scrolling:touch}.tabbar-scrollable .toolbar-inner::-webkit-scrollbar{display:none!important;width:0!important;height:0!important;-webkit-appearance:none;opacity:0!important}.tabbar-scrollable .link,.tabbar-scrollable .tab-link{width:auto;flex-shrink:0}.navbar-transitioning+.toolbar,.navbar-transitioning~* .toolbar,.toolbar-transitioning{transition-duration:var(--f7-toolbar-hide-show-transition-duration)}.aurora .toolbar-bottom-aurora~*,.ios .toolbar-bottom-ios~*,.md .toolbar-bottom-md~*,.toolbar-bottom~*{--f7-page-toolbar-bottom-offset:var(--f7-toolbar-height)}.aurora .toolbar-bottom-aurora.tabbar-labels~*,.ios .toolbar-bottom-ios.tabbar-labels~*,.md .toolbar-bottom-md.tabbar-labels~*,.toolbar-bottom.tabbar-labels~*{--f7-page-toolbar-bottom-offset:var(--f7-tabbar-labels-height)}.aurora .toolbar-bottom-aurora.toolbar-hidden,.ios .toolbar-bottom-ios.toolbar-hidden,.md .toolbar-bottom-md.toolbar-hidden,.toolbar-bottom.toolbar-hidden{transform:translate3d(0,100%,0)}.aurora .toolbar-top-aurora~*,.ios .toolbar-top-ios~*,.md .toolbar-top-md~*,.toolbar-top~*{--f7-page-toolbar-top-offset:var(--f7-toolbar-height)}.aurora .toolbar-top-aurora.tabbar-labels~*,.ios .toolbar-top-ios.tabbar-labels~*,.md .toolbar-top-md.tabbar-labels~*,.toolbar-top.tabbar-labels~*{--f7-page-toolbar-top-offset:var(--f7-tabbar-labels-height)}.aurora .toolbar-top-aurora.toolbar-hidden,.ios .toolbar-top-ios.toolbar-hidden,.md .toolbar-top-md.toolbar-hidden,.toolbar-top.toolbar-hidden{transform:translate3d(0,-100%,0)}.aurora .navbar~* .toolbar-top-aurora,.aurora .navbar~.page:not(.no-navbar) .toolbar-top-aurora,.aurora .navbar~.toolbar-top-aurora,.ios .navbars~* .toolbar-top-ios,.ios .navbars~.page:not(.no-navbar) .toolbar-top-ios,.ios .navbars~.toolbar-top-ios,.ios .navbar~* .toolbar-top-ios,.ios .navbar~.page:not(.no-navbar) .toolbar-top-ios,.ios .navbar~.toolbar-top-ios,.md .navbar~* .toolbar-top-md,.md .navbar~.page:not(.no-navbar) .toolbar-top-md,.md .navbar~.toolbar-top-md,.navbars~* .toolbar-top,.navbars~.page:not(.no-navbar) .toolbar-top,.navbars~.toolbar-top,.navbar~* .toolbar-top,.navbar~.page:not(.no-navbar) .toolbar-top,.navbar~.toolbar-top{top:calc(var(--f7-navbar-height) + var(--f7-safe-area-top))}.aurora .navbar~* .toolbar-top-aurora.toolbar-hidden,.aurora .navbar~.page:not(.no-navbar) .toolbar-top-aurora.toolbar-hidden,.aurora .navbar~.toolbar-top-aurora.toolbar-hidden,.ios .navbars~* .toolbar-top-ios.toolbar-hidden,.ios .navbars~.page:not(.no-navbar) .toolbar-top-ios.toolbar-hidden,.ios .navbars~.toolbar-top-ios.toolbar-hidden,.ios .navbar~* .toolbar-top-ios.toolbar-hidden,.ios .navbar~.page:not(.no-navbar) .toolbar-top-ios.toolbar-hidden,.ios .navbar~.toolbar-top-ios.toolbar-hidden,.md .navbar~* .toolbar-top-md.toolbar-hidden,.md .navbar~.page:not(.no-navbar) .toolbar-top-md.toolbar-hidden,.md .navbar~.toolbar-top-md.toolbar-hidden,.navbars~* .toolbar-top.toolbar-hidden,.navbars~.page:not(.no-navbar) .toolbar-top.toolbar-hidden,.navbars~.toolbar-top.toolbar-hidden,.navbar~* .toolbar-top.toolbar-hidden,.navbar~.page:not(.no-navbar) .toolbar-top.toolbar-hidden,.navbar~.toolbar-top.toolbar-hidden{transform:translate3d(0,calc(-1 * (var(--f7-navbar-height) + var(--f7-toolbar-height) + var(--f7-safe-area-top))),0)}.aurora .navbar~* .toolbar-top-aurora.toolbar-hidden.tabbar-labels,.aurora .navbar~.page:not(.no-navbar) .toolbar-top-aurora.toolbar-hidden.tabbar-labels,.aurora .navbar~.toolbar-top-aurora.toolbar-hidden.tabbar-labels,.ios .navbars~* .toolbar-top-ios.toolbar-hidden.tabbar-labels,.ios .navbars~.page:not(.no-navbar) .toolbar-top-ios.toolbar-hidden.tabbar-labels,.ios .navbars~.toolbar-top-ios.toolbar-hidden.tabbar-labels,.ios .navbar~* .toolbar-top-ios.toolbar-hidden.tabbar-labels,.ios .navbar~.page:not(.no-navbar) .toolbar-top-ios.toolbar-hidden.tabbar-labels,.ios .navbar~.toolbar-top-ios.toolbar-hidden.tabbar-labels,.md .navbar~* .toolbar-top-md.toolbar-hidden.tabbar-labels,.md .navbar~.page:not(.no-navbar) .toolbar-top-md.toolbar-hidden.tabbar-labels,.md .navbar~.toolbar-top-md.toolbar-hidden.tabbar-labels,.navbars~* .toolbar-top.toolbar-hidden.tabbar-labels,.navbars~.page:not(.no-navbar) .toolbar-top.toolbar-hidden.tabbar-labels,.navbars~.toolbar-top.toolbar-hidden.tabbar-labels,.navbar~* .toolbar-top.toolbar-hidden.tabbar-labels,.navbar~.page:not(.no-navbar) .toolbar-top.toolbar-hidden.tabbar-labels,.navbar~.toolbar-top.toolbar-hidden.tabbar-labels{transform:translate3d(0,calc(-1 * (var(--f7-navbar-height) + var(--f7-tabbar-labels-height) + var(--f7-safe-area-top))),0)}.aurora .navbar-hidden+.toolbar-top-aurora:not(.toolbar-hidden),.aurora .navbar-hidden~* .toolbar-top-aurora:not(.toolbar-hidden),.ios .navbar-hidden+.toolbar-top-ios:not(.toolbar-hidden),.ios .navbar-hidden~* .toolbar-top-ios:not(.toolbar-hidden),.md .navbar-hidden+.toolbar-top-md:not(.toolbar-hidden),.md .navbar-hidden~* .toolbar-top-md:not(.toolbar-hidden),.navbar-hidden+.toolbar-top:not(.toolbar-hidden),.navbar-hidden~* .toolbar-top:not(.toolbar-hidden){transform:translate3d(0,calc(0px - var(--f7-navbar-height)),0)}.aurora .navbar-large-hidden~* .toolbar-top-aurora:not(.toolbar-hidden),.ios .navbar-large-hidden+.toolbar-top-ios:not(.toolbar-hidden),.ios .navbar-large-hidden~* .toolbar-top-ios:not(.toolbar-hidden),.md .navbar-large-hidden+.toolbar-top-md:not(.toolbar-hidden),.md .navbar-large-hidden~* .toolbar-top-md:not(.toolbar-hidden),.navbar-large-hidden+.toolbar-top:not(.toolbar-hidden),.navbar-large-hidden~* .toolbar-top:not(.toolbar-hidden){transform:translate3d(0,calc(0px - var(--f7-navbar-height) - var(--f7-navbar-large-title-height)),0)}.ios .toolbar a.icon-only{min-height:var(--f7-toolbar-height);display:flex;justify-content:center;align-items:center;margin:0;min-width:44px}.ios .tabbar-labels .link,.ios .tabbar-labels .tab-link{padding-top:4px;padding-bottom:4px}.ios .tabbar-labels .link i+span,.ios .tabbar-labels .tab-link i+span{margin:0}@media (min-width:768px) and (min-height:600px){.ios .tabbar .link,.ios .tabbar .tab-link,.ios .tabbar-labels .link,.ios .tabbar-labels .tab-link{justify-content:center;flex-direction:row}.ios .tabbar .link i+span,.ios .tabbar .tab-link i+span,.ios .tabbar-labels .link i+span,.ios .tabbar-labels .tab-link i+span{margin-left:5px}}.ios .tabbar-scrollable .toolbar-inner{justify-content:flex-start}.ios .tabbar-scrollable .link,.ios .tabbar-scrollable .tab-link{padding:0 8px}.md .toolbar .link{justify-content:center;padding:0 16px;min-width:48px}.md .toolbar .link:before{content:'';width:152%;height:152%;position:absolute;left:-26%;top:-26%;background-image:radial-gradient(circle at center,var(--f7-link-highlight-color) 66%,rgba(255,255,255,0) 66%);background-repeat:no-repeat;background-position:center;background-size:100% 100%;opacity:0;pointer-events:none;transition-duration:.6s}.md .toolbar .link.active-state:before{opacity:1;transition-duration:150ms}.md .toolbar a.icon-only{min-width:0;flex-shrink:0}.md .tabbar .link,.md .tabbar .tab-link,.md .tabbar-labels .link,.md .tabbar-labels .tab-link{padding-left:0;padding-right:0}.md .tabbar a.icon-only,.md .tabbar-labels a.icon-only{flex-shrink:initial}.md .tabbar .tab-link,.md .tabbar-labels .tab-link{transition-duration:.3s;overflow:hidden;position:relative}.md .tabbar .tab-link-highlight,.md .tabbar-labels .tab-link-highlight{position:absolute;left:0;height:2px;background:var(--f7-tabbar-link-active-border-color,var(--f7-theme-color));transition-duration:.3s;right:0}.md .tabbar-labels .link,.md .tabbar-labels .tab-link{padding-top:7px;padding-bottom:7px}.md .tabbar-label{max-width:100%;overflow:hidden;line-height:1.2}.md .tabbar-scrollable .toolbar-inner{overflow:auto}.md .tabbar-scrollable .link,.md .tabbar-scrollable .tab-link{padding:0 16px}.aurora .toolbar a.icon-only{min-height:var(--f7-toolbar-height);display:flex;justify-content:center;align-items:center;margin:0}.aurora .tabbar .toolbar-inner,.aurora .tabbar-labels .toolbar-inner{padding-left:0;padding-right:0}.aurora .tabbar .link,.aurora .tabbar .tab-link,.aurora .tabbar-labels .link,.aurora .tabbar-labels .tab-link{transition-duration:.2s}.aurora .tabbar-labels .link,.aurora .tabbar-labels .tab-link{padding-top:5px;padding-bottom:5px}.aurora .tabbar-labels .link i+span,.aurora .tabbar-labels .tab-link i+span{margin:0}.aurora .tabbar-scrollable .toolbar-inner{justify-content:flex-start}.aurora .tabbar-scrollable .link,.aurora .tabbar-scrollable .tab-link{padding:0 16px}:root{--f7-subnavbar-title-line-height:1.2}.ios{--f7-subnavbar-height:44px;--f7-subnavbar-inner-padding-left:8px;--f7-subnavbar-inner-padding-right:8px;--f7-subnavbar-title-font-size:34px;--f7-subnavbar-title-font-weight:700;--f7-subnavbar-title-letter-spacing:-0.03em;--f7-subnavbar-title-margin-left:8px;--f7-subnavbar-shadow-image:none}.md{--f7-subnavbar-height:48px;--f7-subnavbar-inner-padding-left:16px;--f7-subnavbar-inner-padding-right:16px;--f7-subnavbar-title-font-size:20px;--f7-subnavbar-title-font-weight:500;--f7-subnavbar-title-letter-spacing:0;--f7-subnavbar-title-margin-left:0px;--f7-subnavbar-shadow-image:var(--f7-bars-shadow-bottom-image)}.aurora{--f7-subnavbar-height:38px;--f7-subnavbar-inner-padding-left:16px;--f7-subnavbar-inner-padding-right:16px;--f7-subnavbar-title-font-size:26px;--f7-subnavbar-title-font-weight:bold;--f7-subnavbar-title-letter-spacing:-0.03em;--f7-subnavbar-title-margin-left:0px;--f7-subnavbar-shadow-image:none;--f7-subnavbar-link-height:auto;--f7-subnavbar-link-line-height:inherit}.subnavbar{width:100%;position:absolute;left:0;top:0;z-index:600;box-sizing:border-box;display:flex;justify-content:space-between;align-items:center;background-image:var(--f7-subnavbar-bg-image,var(--f7-bars-bg-image));background-color:var(--f7-subnavbar-bg-color,var(--f7-bars-bg-color));color:var(--f7-subnavbar-text-color,var(--f7-bars-text-color))}@supports ((-webkit-backdrop-filter:blur(20px)) or (backdrop-filter:blur(20px))){.ios-translucent-bars .subnavbar{background-color:rgba(var(--f7-subnavbar-bg-color-rgb,var(--f7-bars-bg-color-rgb)),var(--f7-bars-translucent-opacity));-webkit-backdrop-filter:saturate(180%) blur(var(--f7-bars-translucent-blur));backdrop-filter:saturate(180%) blur(var(--f7-bars-translucent-blur))}}.subnavbar .subnavbar-title{position:relative;overflow:hidden;text-overflow:ellpsis;white-space:nowrap;font-size:var(--f7-subnavbar-title-font-size);font-weight:var(--f7-subnavbar-title-font-weight);text-align:left;display:inline-block;line-height:var(--f7-subnavbar-title-line-height);letter-spacing:var(--f7-subnavbar-title-letter-spacing);margin-right:var(--f7-subnavbar-title-margin-left)}.subnavbar .left,.subnavbar .right{flex-shrink:0;display:flex;justify-content:flex-start;align-items:center}.subnavbar .right:first-child{position:absolute;height:100%}.subnavbar a{color:var(--f7-subnavbar-link-color,var(--f7-bars-link-color,var(--f7-theme-color)))}.subnavbar a.link{line-height:var(--f7-subnavbar-link-line-height,var(--f7-subnavbar-height));height:var(--f7-subnavbar-link-height,var(--f7-subnavbar-height))}.subnavbar a.icon-only{min-width:var(--f7-subnavbar-height)}.subnavbar.no-border:after,.subnavbar.no-hairline:after{display:none!important}.subnavbar.navbar-hidden:before,.subnavbar.no-shadow:before{display:none!important}.subnavbar:after,.subnavbar:before{-webkit-backface-visibility:hidden;backface-visibility:hidden}.subnavbar:after{content:'';position:absolute;background-color:var(--f7-subnavbar-border-color,var(--f7-bars-border-color));display:block;z-index:15;top:auto;right:auto;bottom:0;left:0;height:1px;width:100%;transform-origin:50% 100%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.subnavbar:before{content:'';position:absolute;right:0;width:100%;top:100%;bottom:auto;height:8px;pointer-events:none;background:var(--f7-subnavbar-shadow-image)}.subnavbar-inner{width:100%;height:100%;display:flex;align-items:center;box-sizing:border-box;justify-content:space-between;overflow:hidden;padding:0 calc(var(--f7-subnavbar-inner-padding-left) + var(--f7-safe-area-right)) 0 calc(var(--f7-subnavbar-inner-padding-right) + var(--f7-safe-area-left))}.subnavbar-inner.stacked{display:none}.navbar .subnavbar{top:100%}.page>.subnavbar,.view>.subnavbar,.views>.subnavbar{position:absolute}.navbars~* .subnavbar,.navbars~.page-with-subnavbar:not(.no-navbar) .subnavbar,.navbars~.subnavbar,.navbar~* .subnavbar,.navbar~.page-with-subnavbar:not(.no-navbar) .subnavbar,.navbar~.subnavbar,.page-with-subnavbar .navbar~* .subnavbar,.page-with-subnavbar .navbar~.subnavbar{top:calc(var(--f7-navbar-height) + var(--f7-safe-area-top))}.navbar .title-large~.subnavbar,.navbars~.page-with-navbar-large:not(.no-navbar) .subnavbar,.navbar~.page-with-navbar-large:not(.no-navbar) .subnavbar,.page-with-subnavbar.page-with-navbar-large .navbar~* .subnavbar,.page-with-subnavbar.page-with-navbar-large .navbar~.subnavbar{top:calc(var(--f7-navbar-height) + var(--f7-navbar-large-title-height) + var(--f7-safe-area-top));transform:translate3d(0,calc(-1 * var(--f7-navbar-large-collapse-progress) * var(--f7-navbar-large-title-height)),0)}.page-with-subnavbar,.subnavbar~*{--f7-page-subnavbar-offset:var(--f7-subnavbar-height)}.ios .subnavbar{height:calc(var(--f7-subnavbar-height) + 1px);margin-top:-1px;padding-top:1px}.ios .subnavbar .title{align-self:flex-start;flex-shrink:10}.ios .subnavbar .left a+a,.ios .subnavbar .right a+a{margin-right:16px}.ios .subnavbar .left{margin-left:10px}.ios .subnavbar .right{margin-right:10px}.ios .subnavbar .right:first-child{left:8px}.ios .subnavbar a.link{justify-content:flex-start}.ios .subnavbar a.icon-only{justify-content:center;margin:0}.md .subnavbar{height:var(--f7-subnavbar-height)}.md .subnavbar .right{margin-right:auto}.md .subnavbar .right:first-child{left:16px}.md .subnavbar a.link{justify-content:center;padding:0 16px}.md .subnavbar a.link:before{content:'';width:152%;height:152%;position:absolute;left:-26%;top:-26%;background-image:radial-gradient(circle at center,var(--f7-link-highlight-color) 66%,rgba(255,255,255,0) 66%);background-repeat:no-repeat;background-position:center;background-size:100% 100%;opacity:0;pointer-events:none;transition-duration:.6s}.md .subnavbar a.link.active-state:before{opacity:1;transition-duration:150ms}.md .subnavbar a.icon-only{flex-shrink:0}.md .subnavbar-inner>a.link:first-child{margin-right:calc(-1 * var(--f7-subnavbar-inner-padding-right))}.md .subnavbar-inner>a.link:last-child{margin-left:calc(-1 * var(--f7-subnavbar-inner-padding-left))}.aurora .subnavbar{height:calc(var(--f7-subnavbar-height) + 1px);margin-top:-1px;padding-top:1px}.aurora .subnavbar .title{align-self:flex-start;flex-shrink:10}.aurora .subnavbar .left a+a,.aurora .subnavbar .right a+a{margin-right:10px}.aurora .subnavbar .left{margin-left:10px}.aurora .subnavbar .right{margin-right:10px}.aurora .subnavbar .right:first-child{left:16px}.aurora .subnavbar a.link{justify-content:flex-start}.aurora .subnavbar a.icon-only{justify-content:center;margin:0}:root{--f7-block-padding-horizontal:16px;--f7-block-padding-vertical:16px;--f7-block-font-size:inherit;--f7-block-text-color:inherit;--f7-block-header-margin:10px;--f7-block-footer-margin:10px;--f7-block-header-font-size:14px;--f7-block-footer-font-size:14px;--f7-block-title-text-transform:none;--f7-block-title-white-space:nowrap;--f7-block-title-medium-text-transform:none;--f7-block-title-large-text-transform:none;--f7-block-inset-side-margin:16px;--f7-block-title-medium-text-color:#000;--f7-block-title-large-text-color:#000;--f7-block-strong-bg-color:#fff}:root .theme-dark,:root.theme-dark{--f7-block-title-text-color:#fff;--f7-block-strong-border-color:rgba(255, 255, 255, 0.15);--f7-block-title-medium-text-color:#fff;--f7-block-title-large-text-color:#fff;--f7-block-strong-bg-color:#1c1c1d}.ios{--f7-block-margin-vertical:35px;--f7-block-strong-border-color:rgba(0, 0, 0, 0.22);--f7-block-title-text-color:#000;--f7-block-title-font-size:16px;--f7-block-title-font-weight:600;--f7-block-title-line-height:20px;--f7-block-title-margin-bottom:10px;--f7-block-title-medium-font-size:22px;--f7-block-title-medium-font-weight:bold;--f7-block-title-medium-line-height:1.4;--f7-block-title-large-font-size:30px;--f7-block-title-large-font-weight:bold;--f7-block-title-large-line-height:1.3;--f7-block-inset-border-radius:8px;--f7-block-strong-text-color:#000;--f7-block-header-text-color:rgba(0, 0, 0, 0.45);--f7-block-footer-text-color:rgba(0, 0, 0, 0.45)}.ios .theme-dark,.ios.theme-dark{--f7-block-header-text-color:rgba(255, 255, 255, 0.55);--f7-block-footer-text-color:rgba(255, 255, 255, 0.55);--f7-block-strong-text-color:#fff}.md{--f7-block-margin-vertical:32px;--f7-block-strong-text-color:inherit;--f7-block-strong-border-color:rgba(0, 0, 0, 0.12);--f7-block-title-font-size:inherit;--f7-block-title-text-color:rgba(0, 0, 0, 0.54);--f7-block-title-font-weight:500;--f7-block-title-line-height:16px;--f7-block-title-margin-bottom:16px;--f7-block-title-medium-font-size:24px;--f7-block-title-medium-font-weight:500;--f7-block-title-medium-line-height:1.3;--f7-block-title-large-font-size:34px;--f7-block-title-large-font-weight:500;--f7-block-title-large-line-height:1.2;--f7-block-inset-border-radius:4px;--f7-block-header-text-color:rgba(0, 0, 0, 0.54);--f7-block-footer-text-color:rgba(0, 0, 0, 0.54)}.md .theme-dark,.md.theme-dark{--f7-block-header-text-color:rgba(255, 255, 255, 0.54);--f7-block-footer-text-color:rgba(255, 255, 255, 0.54)}.aurora{--f7-block-margin-vertical:15px;--f7-block-strong-border-color:rgba(0, 0, 0, 0.12);--f7-block-title-font-size:inherit;--f7-block-title-text-color:rgba(0, 0, 0, 0.7);--f7-block-title-font-weight:600;--f7-block-title-line-height:1.5;--f7-block-title-margin-bottom:5px;--f7-block-title-medium-font-size:20px;--f7-block-title-medium-font-weight:600;--f7-block-title-medium-line-height:1.4;--f7-block-title-large-font-size:28px;--f7-block-title-large-font-weight:bold;--f7-block-title-large-line-height:1.3;--f7-block-inset-border-radius:4px;--f7-block-strong-text-color:inherit;--f7-block-header-text-color:rgba(0, 0, 0, 0.6);--f7-block-footer-text-color:rgba(0, 0, 0, 0.6)}.aurora .theme-dark,.aurora.theme-dark{--f7-block-header-text-color:rgba(255, 255, 255, 0.54);--f7-block-footer-text-color:rgba(255, 255, 255, 0.54);--f7-block-strong-text-color:#fff}.block{box-sizing:border-box;position:relative;z-index:1;color:var(--f7-block-text-color);margin:var(--f7-block-margin-vertical) 0;padding-top:0;padding-bottom:0;padding-left:calc(var(--f7-block-padding-horizontal) + var(--f7-safe-area-left));padding-right:calc(var(--f7-block-padding-horizontal) + var(--f7-safe-area-right));font-size:var(--f7-block-font-size)}.aurora .block.no-hairlines-aurora ul:after,.aurora .block.no-hairlines-aurora ul:before,.aurora .block.no-hairlines-aurora:after,.aurora .block.no-hairlines-aurora:before,.block.no-hairlines ul:after,.block.no-hairlines ul:before,.block.no-hairlines:after,.block.no-hairlines:before,.ios .block.no-hairlines-ios ul:after,.ios .block.no-hairlines-ios ul:before,.ios .block.no-hairlines-ios:after,.ios .block.no-hairlines-ios:before,.md .block.no-hairlines-md ul:after,.md .block.no-hairlines-md ul:before,.md .block.no-hairlines-md:after,.md .block.no-hairlines-md:before{display:none!important}.aurora .block.no-hairline-top-aurora ul:before,.aurora .block.no-hairline-top-aurora:before,.block.no-hairline-top ul:before,.block.no-hairline-top:before,.ios .block.no-hairline-top-ios ul:before,.ios .block.no-hairline-top-ios:before,.md .block.no-hairline-top-md ul:before,.md .block.no-hairline-top-md:before{display:none!important}.aurora .block.no-hairline-bottom-aurora ul:after,.aurora .block.no-hairline-bottom-aurora:after,.block.no-hairline-bottom ul:after,.block.no-hairline-bottom:after,.ios .block.no-hairline-bottom-ios ul:after,.ios .block.no-hairline-bottom-ios:after,.md .block.no-hairline-bottom-md ul:after,.md .block.no-hairline-bottom-md:after{display:none!important}.block>h1:first-child,.block>h2:first-child,.block>h3:first-child,.block>h4:first-child,.block>p:first-child{margin-top:0}.block>h1:last-child,.block>h2:last-child,.block>h3:last-child,.block>h4:last-child,.block>p:last-child{margin-bottom:0}.block-strong{color:var(--f7-block-strong-text-color);padding-top:var(--f7-block-padding-vertical);padding-bottom:var(--f7-block-padding-vertical);background-color:var(--f7-block-strong-bg-color)}.block-strong:before{content:'';position:absolute;background-color:var(--f7-block-strong-border-color);display:block;z-index:15;top:0;right:auto;bottom:auto;left:0;height:1px;width:100%;transform-origin:50% 0%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.block-strong:after{content:'';position:absolute;background-color:var(--f7-block-strong-border-color);display:block;z-index:15;top:auto;right:auto;bottom:0;left:0;height:1px;width:100%;transform-origin:50% 100%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.block-title{position:relative;overflow:hidden;margin:0;white-space:var(--f7-block-title-white-space);text-overflow:ellipsis;text-transform:var(--f7-block-title-text-transform);color:var(--f7-block-title-text-color);font-size:var(--f7-block-title-font-size,inherit);font-weight:var(--f7-block-title-font-weight);line-height:var(--f7-block-title-line-height);margin-top:var(--f7-block-margin-vertical);margin-bottom:var(--f7-block-title-margin-bottom);margin-left:calc(var(--f7-block-padding-horizontal) + var(--f7-safe-area-left));margin-right:calc(var(--f7-block-padding-horizontal) + var(--f7-safe-area-right))}.block-title+.block,.block-title+.block-header,.block-title+.card,.block-title+.list,.block-title+.timeline{margin-top:0px}.block-title-medium{font-size:var(--f7-block-title-medium-font-size);text-transform:var(--f7-block-title-medium-text-transform);color:var(--f7-block-title-medium-text-color);font-weight:var(--f7-block-title-medium-font-weight);line-height:var(--f7-block-title-medium-line-height)}.block-title-large{font-size:var(--f7-block-title-large-font-size);text-transform:var(--f7-block-title-large-text-transform);color:var(--f7-block-title-large-text-color);font-weight:var(--f7-block-title-large-font-weight);line-height:var(--f7-block-title-large-line-height)}.block>.block-title:first-child,.list>.block-title:first-child{margin-top:0;margin-left:0;margin-right:0}.block-header{color:var(--f7-block-header-text-color);font-size:var(--f7-block-header-font-size);margin-bottom:var(--f7-block-header-margin);margin-top:var(--f7-block-margin-vertical)}.block-header+.block,.block-header+.card,.block-header+.list,.block-header+.timeline{margin-top:var(--f7-block-header-margin)}.block-footer{color:var(--f7-block-footer-text-color);font-size:var(--f7-block-footer-font-size);margin-top:var(--f7-block-footer-margin);margin-bottom:var(--f7-block-margin-vertical)}.block-footer,.block-header{padding-top:0;padding-bottom:0;padding-left:calc(var(--f7-block-padding-horizontal) + var(--f7-safe-area-left));padding-right:calc(var(--f7-block-padding-horizontal) + var(--f7-safe-area-right))}.block-footer h1:first-child,.block-footer h2:first-child,.block-footer h3:first-child,.block-footer h4:first-child,.block-footer p:first-child,.block-footer ul:first-child,.block-header h1:first-child,.block-header h2:first-child,.block-header h3:first-child,.block-header h4:first-child,.block-header p:first-child,.block-header ul:first-child{margin-top:0}.block-footer h1:last-child,.block-footer h2:last-child,.block-footer h3:last-child,.block-footer h4:last-child,.block-footer p:last-child,.block-footer ul:last-child,.block-header h1:last-child,.block-header h2:last-child,.block-header h3:last-child,.block-header h4:last-child,.block-header p:last-child,.block-header ul:last-child{margin-bottom:0}.block-footer h1:first-child:last-child,.block-footer h2:first-child:last-child,.block-footer h3:first-child:last-child,.block-footer h4:first-child:last-child,.block-footer p:first-child:last-child,.block-footer ul:first-child:last-child,.block-header h1:first-child:last-child,.block-header h2:first-child:last-child,.block-header h3:first-child:last-child,.block-header h4:first-child:last-child,.block-header p:first-child:last-child,.block-header ul:first-child:last-child{margin-top:0;margin-bottom:0}.block .block-header,.card .block-header,.list .block-header,.timeline .block-header{margin-top:0}.block .block-footer,.card .block-footer,.list .block-footer,.timeline .block-footer{margin-bottom:0}.block+.block-footer,.card+.block-footer,.list+.block-footer,.timeline+.block-footer{margin-top:calc(-1 * (var(--f7-block-margin-vertical) - var(--f7-block-footer-margin)))}.block+.block-footer{margin-top:calc(-1 * (var(--f7-block-margin-vertical) - var(--f7-block-footer-margin)));margin-bottom:var(--f7-block-margin-vertical)}.block .block-footer,.block .block-header{padding:0}.block.inset{border-radius:var(--f7-block-inset-border-radius);margin-left:calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-left));margin-right:calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-right));--f7-safe-area-left:0px;--f7-safe-area-right:0px}.block-strong.inset:after,.block-strong.inset:before{display:none!important}@media (min-width:480px){.block.xsmall-inset{border-radius:var(--f7-block-inset-border-radius);margin-left:calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-left));margin-right:calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-right));--f7-safe-area-left:0px;--f7-safe-area-right:0px}.block-strong.xsmall-inset:after,.block-strong.xsmall-inset:before{display:none!important}}@media (min-width:568px){.block.small-inset{border-radius:var(--f7-block-inset-border-radius);margin-left:calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-left));margin-right:calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-right));--f7-safe-area-left:0px;--f7-safe-area-right:0px}.block-strong.small-inset:after,.block-strong.small-inset:before{display:none!important}}@media (min-width:768px){.block.medium-inset{border-radius:var(--f7-block-inset-border-radius);margin-left:calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-left));margin-right:calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-right));--f7-safe-area-left:0px;--f7-safe-area-right:0px}.block-strong.medium-inset:after,.block-strong.medium-inset:before{display:none!important}}@media (min-width:1024px){.block.large-inset{border-radius:var(--f7-block-inset-border-radius);margin-left:calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-left));margin-right:calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-right));--f7-safe-area-left:0px;--f7-safe-area-right:0px}.block-strong.large-inset:after,.block-strong.large-inset:before{display:none!important}}@media (min-width:1200px){.block.xlarge-inset{border-radius:var(--f7-block-inset-border-radius);margin-left:calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-left));margin-right:calc(var(--f7-block-inset-side-margin) + var(--f7-safe-area-outer-right));--f7-safe-area-left:0px;--f7-safe-area-right:0px}.block-strong.xlarge-inset:after,.block-strong.xlarge-inset:before{display:none!important}}:root{--f7-list-inset-side-margin:16px;--f7-list-item-cell-margin:16px;--f7-list-item-padding-horizontal:16px;--f7-list-media-item-padding-horizontal:16px;--f7-list-item-text-max-lines:2;--f7-list-chevron-icon-font-size:20px;--f7-list-item-title-font-size:inherit;--f7-list-item-title-font-weight:400;--f7-list-item-title-text-color:inherit;--f7-list-item-title-line-height:inherit;--f7-list-item-title-white-space:nowrap;--f7-list-item-subtitle-font-weight:400;--f7-list-item-subtitle-text-color:inherit;--f7-list-item-subtitle-line-height:inherit;--f7-list-item-text-font-weight:400;--f7-list-item-after-font-weight:400;--f7-list-item-header-text-color:inherit;--f7-list-item-header-font-size:12px;--f7-list-item-header-font-weight:400;--f7-list-item-header-line-height:1.2;--f7-list-item-footer-font-size:12px;--f7-list-item-footer-font-weight:400;--f7-list-item-footer-line-height:1.2;--f7-list-button-font-size:inherit;--f7-list-button-font-weight:400;--f7-list-item-divider-line-height:inherit;--f7-list-group-title-line-height:inherit;--f7-list-bg-color:#fff;--f7-list-chevron-icon-color:rgba(0, 0, 0, 0.2)}:root .theme-dark,:root.theme-dark{--f7-list-button-border-color:rgba(255, 255, 255, 0.15);--f7-list-bg-color:#1c1c1d;--f7-list-border-color:rgba(255, 255, 255, 0.15);--f7-list-item-border-color:rgba(255, 255, 255, 0.15);--f7-list-item-divider-border-color:rgba(255, 255, 255, 0.15);--f7-list-item-divider-bg-color:#232323;--f7-list-group-title-bg-color:#232323;--f7-list-chevron-icon-color:rgba(255, 255, 255, 0.3)}.ios{--f7-list-in-list-padding-left:30px;--f7-list-inset-border-radius:8px;--f7-list-margin-vertical:35px;--f7-list-font-size:17px;--f7-list-chevron-icon-area:20px;--f7-list-border-color:rgba(0, 0, 0, 0.22);--f7-list-item-border-color:rgba(0, 0, 0, 0.22);--f7-list-link-pressed-bg-color:rgba(0, 0, 0, 0.15);--f7-list-item-subtitle-font-size:15px;--f7-list-item-text-font-size:15px;--f7-list-item-text-line-height:21px;--f7-list-item-after-font-size:inherit;--f7-list-item-after-line-height:inherit;--f7-list-item-after-padding:5px;--f7-list-item-min-height:44px;--f7-list-item-media-margin:16px;--f7-list-item-media-icons-margin:5px;--f7-list-item-padding-vertical:8px;--f7-list-media-item-padding-vertical:10px;--f7-list-media-item-title-font-weight:600;--f7-list-button-text-align:center;--f7-list-button-border-color:rgba(0, 0, 0, 0.22);--f7-list-item-divider-height:31px;--f7-list-item-divider-font-size:inherit;--f7-list-item-divider-font-weight:400;--f7-list-item-divider-bg-color:rgba(0, 0, 0, 0.03);--f7-list-item-divider-border-color:rgba(0, 0, 0, 0.22);--f7-list-group-title-height:31px;--f7-list-group-title-font-size:inherit;--f7-list-group-title-font-weight:400;--f7-list-group-title-bg-color:#f7f7f7;--f7-list-item-after-text-color:rgba(0, 0, 0, 0.45);--f7-list-item-footer-text-color:rgba(0, 0, 0, 0.45);--f7-list-item-text-text-color:rgba(0, 0, 0, 0.45);--f7-list-item-divider-text-color:rgba(0, 0, 0, 0.45);--f7-list-group-title-text-color:rgba(0, 0, 0, 0.45);--f7-list-button-pressed-bg-color:rgba(0, 0, 0, 0.15)}.ios .theme-dark,.ios.theme-dark{--f7-list-item-after-text-color:rgba(255, 255, 255, 0.55);--f7-list-item-header-text-color:rgba(255, 255, 255, 0.55);--f7-list-item-footer-text-color:rgba(255, 255, 255, 0.55);--f7-list-item-text-text-color:rgba(255, 255, 255, 0.55);--f7-list-item-divider-text-color:rgba(255, 255, 255, 0.55);--f7-list-group-title-text-color:rgba(255, 255, 255, 0.55);--f7-list-link-pressed-bg-color:rgba(255, 255, 255, 0.08);--f7-list-button-pressed-bg-color:rgba(255, 255, 255, 0.08)}.md{--f7-list-in-list-padding-left:40px;--f7-list-inset-border-radius:4px;--f7-list-margin-vertical:32px;--f7-list-font-size:16px;--f7-list-chevron-icon-area:26px;--f7-list-border-color:rgba(0, 0, 0, 0.12);--f7-list-item-border-color:rgba(0, 0, 0, 0.12);--f7-list-item-subtitle-font-size:14px;--f7-list-item-text-font-size:14px;--f7-list-item-text-line-height:20px;--f7-list-item-after-font-size:14px;--f7-list-item-after-line-height:inherit;--f7-list-item-after-padding:8px;--f7-list-item-min-height:48px;--f7-list-item-media-margin:16px;--f7-list-item-media-icons-margin:8px;--f7-list-item-padding-vertical:8px;--f7-list-media-item-padding-vertical:14px;--f7-list-button-text-align:left;--f7-list-button-border-color:transparent;--f7-list-item-divider-height:48px;--f7-list-item-divider-font-size:14px;--f7-list-item-divider-font-weight:400;--f7-list-item-divider-bg-color:#f4f4f4;--f7-list-item-divider-border-color:transparent;--f7-list-group-title-height:48px;--f7-list-group-title-font-size:14px;--f7-list-group-title-font-weight:400;--f7-list-group-title-bg-color:#f4f4f4;--f7-list-link-pressed-bg-color:rgba(0, 0, 0, 0.1);--f7-list-item-text-text-color:rgba(0, 0, 0, 0.54);--f7-list-item-after-text-color:rgba(0, 0, 0, 0.54);--f7-list-item-footer-text-color:rgba(0, 0, 0, 0.5);--f7-list-button-text-color:#212121;--f7-list-button-pressed-bg-color:rgba(0, 0, 0, 0.1);--f7-list-item-divider-text-color:rgba(0, 0, 0, 0.54);--f7-list-group-title-text-color:rgba(0, 0, 0, 0.54)}.md .theme-dark,.md.theme-dark{--f7-list-button-text-color:#fff;--f7-list-item-divider-text-color:#fff;--f7-list-group-title-text-color:#fff;--f7-list-link-pressed-bg-color:rgba(255, 255, 255, 0.05);--f7-list-button-pressed-bg-color:rgba(255, 255, 255, 0.05);--f7-list-item-text-text-color:rgba(255, 255, 255, 0.54);--f7-list-item-after-text-color:rgba(255, 255, 255, 0.54);--f7-list-item-footer-text-color:rgba(255, 255, 255, 0.54)}.aurora{--f7-list-in-list-padding-left:16px;--f7-list-inset-border-radius:4px;--f7-list-margin-vertical:15px;--f7-list-font-size:14px;--f7-list-chevron-icon-area:15px;--f7-list-chevron-icon-font-size:16px;--f7-list-border-color:rgba(0, 0, 0, 0.12);--f7-list-item-border-color:rgba(0, 0, 0, 0.12);--f7-list-item-title-line-height:1.3;--f7-list-item-subtitle-font-size:14px;--f7-list-item-subtitle-line-height:1.3;--f7-list-item-text-font-size:12px;--f7-list-item-text-line-height:16px;--f7-list-item-after-font-size:13px;--f7-list-item-after-line-height:1.2;--f7-list-item-after-padding:5px;--f7-list-item-min-height:32px;--f7-list-item-media-margin:10px;--f7-list-item-media-icons-margin:5px;--f7-list-item-padding-vertical:5px;--f7-list-media-item-padding-vertical:5px;--f7-list-media-item-title-font-weight:600;--f7-list-button-text-align:center;--f7-list-button-border-color:rgba(0, 0, 0, 0.12);--f7-list-item-divider-height:19px;--f7-list-item-divider-font-size:inherit;--f7-list-item-divider-font-weight:500;--f7-list-item-divider-bg-color:rgba(0, 0, 0, 0.03);--f7-list-item-divider-border-color:transparent;--f7-list-group-title-height:19px;--f7-list-group-title-font-size:inherit;--f7-list-group-title-font-weight:500;--f7-list-group-title-bg-color:#f7f7f7;--f7-list-link-pressed-bg-color:rgba(0, 0, 0, 0.1);--f7-list-link-hover-bg-color:rgba(0, 0, 0, 0.03);--f7-list-item-text-text-color:rgba(0, 0, 0, 0.6);--f7-list-item-after-text-color:rgba(0, 0, 0, 0.5);--f7-list-item-footer-text-color:rgba(0, 0, 0, 0.6);--f7-list-button-pressed-bg-color:rgba(0, 0, 0, 0.1);--f7-list-button-hover-bg-color:rgba(0, 0, 0, 0.03);--f7-list-item-divider-text-color:rgba(0, 0, 0, 0.6);--f7-list-group-title-text-color:rgba(0, 0, 0, 0.6)}.aurora .theme-dark,.aurora.theme-dark{--f7-list-item-text-text-color:rgba(255, 255, 255, 0.54);--f7-list-item-after-text-color:rgba(255, 255, 255, 0.54);--f7-list-item-footer-text-color:rgba(255, 255, 255, 0.54);--f7-list-item-divider-text-color:rgba(255, 255, 255, 0.6);--f7-list-group-title-text-color:rgba(255, 255, 255, 0.6);--f7-list-link-pressed-bg-color:rgba(255, 255, 255, 0.05);--f7-list-link-hover-bg-color:rgba(255, 255, 255, 0.03);--f7-list-button-pressed-bg-color:rgba(255, 255, 255, 0.05);--f7-list-button-hover-bg-color:rgba(255, 255, 255, 0.03)}:root{--f7-list-chevron-icon-left:'chevron_left';--f7-list-chevron-icon-right:'chevron_right'}.aurora{--f7-list-chevron-icon-left:'chevron_left_aurora';--f7-list-chevron-icon-right:'chevron_right_aurora'}.list{position:relative;z-index:1;font-size:var(--f7-list-font-size);margin:var(--f7-list-margin-vertical) 0}.list ul{list-style:none;margin:0;padding:0;position:relative;background:var(--f7-list-bg-color)}.list ul:before{content:'';position:absolute;background-color:var(--f7-list-border-color);display:block;z-index:15;top:0;right:auto;bottom:auto;left:0;height:1px;width:100%;transform-origin:50% 0%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.list ul:after{content:'';position:absolute;background-color:var(--f7-list-border-color);display:block;z-index:15;top:auto;right:auto;bottom:0;left:0;height:1px;width:100%;transform-origin:50% 100%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.list ul ul{padding-right:calc(var(--f7-list-item-padding-horizontal) + var(--f7-list-in-list-padding-left))}.list ul ul:after,.list ul ul:before{display:none!important}.list li{position:relative;box-sizing:border-box}.list .item-media{display:flex;flex-shrink:0;flex-wrap:nowrap;align-items:center;box-sizing:border-box;padding-bottom:var(--f7-list-item-padding-vertical);padding-top:var(--f7-list-item-padding-vertical)}.list .item-media+.item-inner{margin-right:var(--f7-list-item-media-margin)}.list .item-media i+i,.list .item-media i+img{margin-right:var(--f7-list-item-media-icons-margin)}.list .item-after{padding-right:var(--f7-list-item-after-padding)}.list .item-inner{position:relative;width:100%;min-width:0;display:flex;justify-content:space-between;box-sizing:border-box;align-items:center;align-self:stretch;padding-top:var(--f7-list-item-padding-vertical);padding-bottom:var(--f7-list-item-padding-vertical);min-height:var(--f7-list-item-min-height);padding-left:calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-left))}.list .item-title{min-width:0;flex-shrink:1;white-space:var(--f7-list-item-title-white-space);position:relative;overflow:hidden;text-overflow:ellipsis;max-width:100%;font-size:var(--f7-list-item-title-font-size);font-weight:var(--f7-list-item-title-font-weight);color:var(--f7-list-item-title-text-color);line-height:var(--f7-list-item-title-line-height)}.list .item-after{white-space:nowrap;flex-shrink:0;display:flex;font-size:var(--f7-list-item-after-font-size);font-weight:var(--f7-list-item-after-font-weight);color:var(--f7-list-item-after-text-color);line-height:var(--f7-list-item-after-line-height);margin-right:auto}.list .item-footer,.list .item-header{white-space:normal}.list .item-header{color:var(--f7-list-item-header-text-color);font-size:var(--f7-list-item-header-font-size);font-weight:var(--f7-list-item-header-font-weight);line-height:var(--f7-list-item-header-line-height)}.list .item-footer{color:var(--f7-list-item-footer-text-color);font-size:var(--f7-list-item-footer-font-size);font-weight:var(--f7-list-item-footer-font-weight);line-height:var(--f7-list-item-footer-line-height)}.list .item-link,.list .list-button{transition-duration:.3s;transition-property:background-color;display:block;position:relative;overflow:hidden;z-index:0}.list .item-link{color:inherit}.list .item-link.active-state{background-color:var(--f7-list-link-pressed-bg-color)}.list .item-link .item-inner{padding-left:calc(var(--f7-list-chevron-icon-area) + var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-left))}.list .item-content{display:flex;justify-content:space-between;box-sizing:border-box;align-items:center;min-height:var(--f7-list-item-min-height);padding-right:calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-right))}.list .item-subtitle{position:relative;overflow:hidden;white-space:nowrap;max-width:100%;text-overflow:ellipsis;font-size:var(--f7-list-item-subtitle-font-size);font-weight:var(--f7-list-item-subtitle-font-weight);color:var(--f7-list-item-subtitle-text-color);line-height:var(--f7-list-item-subtitle-line-height)}.list .item-text{position:relative;overflow:hidden;text-overflow:ellipsis;-webkit-line-clamp:var(--f7-list-item-text-max-lines);-webkit-box-orient:vertical;display:-webkit-box;font-size:var(--f7-list-item-text-font-size);font-weight:var(--f7-list-item-text-font-weight);color:var(--f7-list-item-text-text-color);line-height:var(--f7-list-item-text-line-height);max-height:calc(var(--f7-list-item-text-line-height) * var(--f7-list-item-text-max-lines))}.list .item-title-row{position:relative;display:flex;justify-content:space-between;box-sizing:border-box}.list .item-title-row .item-after{align-self:center}.list .item-row{display:flex;justify-content:space-between;box-sizing:border-box}.list .item-cell{display:block;align-self:center;box-sizing:border-box;width:100%;min-width:0;margin-right:var(--f7-list-item-cell-margin);flex-shrink:1}.list .item-cell:first-child{margin-right:0}.list li:last-child .list-button:after{display:none!important}.list li:last-child li:last-child>.item-content>.item-inner:after,.list li:last-child li:last-child>.item-inner:after,.list li:last-child li:last-child>.item-link>.item-content>.item-inner:after,.list li:last-child li:last-child>.swipeout-content>.item-content>.item-inner:after,.list li:last-child>.item-content>.item-inner:after,.list li:last-child>.item-inner:after,.list li:last-child>.item-link>.item-content>.item-inner:after,.list li:last-child>.swipeout-content>.item-content>.item-inner:after{display:none!important}.list li li:last-child .item-inner:after,.list li:last-child li .item-inner:after{content:'';position:absolute;background-color:var(--f7-list-item-border-color);display:block;z-index:15;top:auto;right:auto;bottom:0;left:0;height:1px;width:100%;transform-origin:50% 100%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.aurora .list.no-hairlines-aurora ul:after,.aurora .list.no-hairlines-aurora ul:before,.aurora .list.no-hairlines-aurora:after,.aurora .list.no-hairlines-aurora:before,.ios .list.no-hairlines-ios ul:after,.ios .list.no-hairlines-ios ul:before,.ios .list.no-hairlines-ios:after,.ios .list.no-hairlines-ios:before,.list.no-hairlines ul:after,.list.no-hairlines ul:before,.list.no-hairlines:after,.list.no-hairlines:before,.md .list.no-hairlines-md ul:after,.md .list.no-hairlines-md ul:before,.md .list.no-hairlines-md:after,.md .list.no-hairlines-md:before{display:none!important}.aurora .list.no-hairline-top-aurora ul:before,.aurora .list.no-hairline-top-aurora:before,.ios .list.no-hairline-top-ios ul:before,.ios .list.no-hairline-top-ios:before,.list.no-hairline-top ul:before,.list.no-hairline-top:before,.md .list.no-hairline-top-md ul:before,.md .list.no-hairline-top-md:before{display:none!important}.aurora .list.no-hairline-bottom-aurora ul:after,.aurora .list.no-hairline-bottom-aurora:after,.ios .list.no-hairline-bottom-ios ul:after,.ios .list.no-hairline-bottom-ios:after,.list.no-hairline-bottom ul:after,.list.no-hairline-bottom:after,.md .list.no-hairline-bottom-md ul:after,.md .list.no-hairline-bottom-md:after{display:none!important}.aurora .list.no-hairlines-between-aurora .item-divider:after,.aurora .list.no-hairlines-between-aurora .item-inner:after,.aurora .list.no-hairlines-between-aurora .list-button:after,.aurora .list.no-hairlines-between-aurora .list-group-title:after,.ios .list.no-hairlines-between-ios .item-divider:after,.ios .list.no-hairlines-between-ios .item-inner:after,.ios .list.no-hairlines-between-ios .list-button:after,.ios .list.no-hairlines-between-ios .list-group-title:after,.list.no-hairlines-between .item-divider:after,.list.no-hairlines-between .item-inner:after,.list.no-hairlines-between .list-button:after,.list.no-hairlines-between .list-group-title:after,.md .list.no-hairlines-between-md .item-divider:after,.md .list.no-hairlines-between-md .item-inner:after,.md .list.no-hairlines-between-md .list-button:after,.md .list.no-hairlines-between-md .list-group-title:after{display:none!important}.aurora .list.no-hairlines-between-aurora.simple-list li:after,.ios .list.no-hairlines-between-ios.simple-list li:after,.list.no-hairlines-between.simple-list li:after,.md .list.no-hairlines-between-md.simple-list li:after{display:none!important}.aurora .list.no-hairlines-between-aurora.links-list a:after,.ios .list.no-hairlines-between-ios.links-list a:after,.list.no-hairlines-between.links-list a:after,.md .list.no-hairlines-between-md.links-list a:after{display:none!important}.list-button{padding:0 var(--f7-list-item-padding-horizontal);line-height:var(--f7-list-item-min-height);color:var(--f7-list-button-text-color,var(--f7-theme-color));font-size:var(--f7-list-button-font-size);font-weight:var(--f7-list-button-font-weight);text-align:var(--f7-list-button-text-align)}.list-button:after{content:'';position:absolute;background-color:var(--f7-list-button-border-color);display:block;z-index:15;top:auto;right:auto;bottom:0;left:0;height:1px;width:100%;transform-origin:50% 100%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.list-button.active-state{background-color:var(--f7-list-button-pressed-bg-color)}.list-button[class*=color-]{--f7-list-button-text-color:var(--f7-theme-color)}.simple-list li{position:relative;white-space:nowrap;text-overflow:ellipsis;max-width:100%;box-sizing:border-box;display:flex;justify-content:space-between;align-items:center;align-content:center;line-height:var(--f7-list-item-min-height);height:var(--f7-list-item-min-height);padding-left:calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-left));padding-right:calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-right))}.simple-list li:after{left:var(--f7-list-item-padding-horizontal);right:0;width:auto;right:calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-right));left:0}.simple-list li:last-child:after{display:none!important}.links-list li{z-index:1}.links-list a{transition-duration:.3s;transition-property:background-color;display:block;position:relative;overflow:hidden;display:flex;align-items:center;align-content:center;justify-content:space-between;box-sizing:border-box;white-space:nowrap;text-overflow:ellipsis;max-width:100%;height:var(--f7-list-item-min-height);color:inherit}.links-list a .ripple-wave{z-index:0}.links-list a:after{width:auto}.links-list a.active-state{background-color:var(--f7-list-link-pressed-bg-color)}.links-list a{padding-right:calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-right));padding-left:calc(var(--f7-list-chevron-icon-area) + var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-left))}.links-list a:after{right:calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-right));left:0}.links-list li:last-child a:after{display:none!important}.links-list a:after,.list .item-inner:after,.simple-list li:after{content:'';position:absolute;background-color:var(--f7-list-item-border-color);display:block;z-index:15;top:auto;right:auto;bottom:0;left:0;height:1px;width:100%;transform-origin:50% 100%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.media-list,li.media-item{--f7-list-item-padding-vertical:var(--f7-list-media-item-padding-vertical);--f7-list-item-padding-horizontal:var(--f7-list-media-item-padding-horizontal)}.media-list .item-title,li.media-item .item-title{font-weight:var(--f7-list-media-item-title-font-weight,var(--f7-list-item-title-font-weight,inherit))}.media-list .item-inner,li.media-item .item-inner{display:block;align-self:stretch}.media-list .item-media,li.media-item .item-media{align-self:flex-start}.media-list .item-media img,li.media-item .item-media img{display:block}.media-list .item-link .item-inner,li.media-item .item-link .item-inner{padding-left:calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-left))}.media-list .item-link .item-title-row,li.media-item .item-link .item-title-row{padding-left:calc(var(--f7-list-chevron-icon-area))}.media-list .chevron-center .item-link .item-inner,.media-list .item-link.chevron-center .item-inner,.media-list.chevron-center .item-link .item-inner,li.media-item .chevron-center .item-link .item-inner,li.media-item .item-link.chevron-center .item-inner,li.media-item.chevron-center .item-link .item-inner{padding-left:calc(var(--f7-list-chevron-icon-area) + var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-left))}.media-list .chevron-center .item-title-row,.media-list.chevron-center .item-title-row,li.media-item .chevron-center .item-title-row,li.media-item.chevron-center .item-title-row{padding-left:0}.links-list a:before,.list .item-link .item-inner:before,.media-list .chevron-center .item-link .item-inner:before,.media-list .item-link .item-title-row:before,.media-list .item-link.chevron-center .item-inner:before,.media-list.chevron-center .item-link .item-inner:before,li.media-item .chevron-center .item-link .item-inner:before,li.media-item .item-link .item-title-row:before,li.media-item .item-link.chevron-center .item-inner:before,li.media-item.chevron-center .item-link .item-inner:before{font-family:framework7-core-icons;font-weight:400;font-style:normal;line-height:1;letter-spacing:normal;text-transform:none;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;font-feature-settings:"liga";text-align:center;display:block;width:100%;height:100%;font-size:20px;position:absolute;top:50%;width:8px;height:14px;margin-top:-7px;font-size:var(--f7-list-chevron-icon-font-size);line-height:14px;color:var(--f7-list-chevron-icon-color);pointer-events:none;left:calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-left));content:var(--f7-list-chevron-icon-left)}.media-list .chevron-center .item-title-row:before,.media-list.chevron-center .item-title-row:before,li.media-item .chevron-center .item-title-row:before,li.media-item.chevron-center .item-title-row:before{display:none}.media-list .item-link .item-inner:before,li.media-item .item-link .item-inner:before{display:none}.media-list .item-link .item-title-row:before,li.media-item .item-link .item-title-row:before{left:0}.list-group ul:after,.list-group ul:before{z-index:25!important}.list-group+.list-group ul:before{display:none!important}.item-divider,li.item-divider,li.list-group-title{white-space:nowrap;position:relative;max-width:100%;text-overflow:ellipsis;overflow:hidden;z-index:15;padding-top:0;padding-bottom:0;padding-left:calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-left));padding-right:calc(var(--f7-list-item-padding-horizontal) + var(--f7-safe-area-right));box-sizing:border-box;display:flex;align-items:center;align-content:center}.item-divider:after,li.item-divider:after,li.list-group-title:after{display:none!important}.item-divider,li.item-divider{margin-top:-1px;height:var(--f7-list-item-divider-height);color:var(--f7-list-item-divider-text-color);font-size:var(--f7-list-item-divider-font-size);font-weight:var(--f7-list-item-divider-font-weight);background-color:var(--f7-list-item-divider-bg-color);line-height:var(--f7-list-item-divider-line-height)}.item-divider:before,li.item-divider:before{content:'';position:absolute;background-color:var(--f7-list-item-divider-border-color);display:block;z-index:15;top:0;right:auto;bottom:auto;left:0;height:1px;width:100%;transform-origin:50% 0%;transform:scaleY(calc(1 / var(--f7-device-pixel-ratio)))}.list li.list-group-title,li.list-group-title{position:relative;position:-webkit-sticky;position:sticky;top:0;margin-top:0;z-index:20;height:var(--f7-list-group-title-height);color:var(--f7-list-group-title-text-color);font-size:var(--f7-list-group-title-font-size);font-weight:var(--f7-list-group-title-font-weight);background-color:var(--f7-list-group-title-bg-color);line-height:var(--f7-list-group-title-line-height)}.page-with-navbar-large .list li.list-group-title,.page-with-navbar-large li.list-group-title{top:calc(-1 * var(--f7-navbar-large-title-height))}.list.inset{margin-left:calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-left));margin-right:calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-right));border-radius:var(--f7-list-inset-border-radius);--f7-safe-area-left:0px;--f7-safe-area-right:0px}.list.inset .block-title{margin-left:0;margin-right:0}.list.inset ul{border-radius:var(--f7-list-inset-border-radius)}.list.inset ul:after,.list.inset ul:before{display:none!important}.list.inset li.swipeout:first-child,.list.inset li:first-child>a{border-radius:var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius) 0 0}.list.inset li.swipeout:last-child,.list.inset li:last-child>a{border-radius:0 0 var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius)}.list.inset li.swipeout:first-child:last-child,.list.inset li:first-child:last-child>a{border-radius:var(--f7-list-inset-border-radius)}@media (min-width:480px){.list.xsmall-inset{margin-left:calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-left));margin-right:calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-right));border-radius:var(--f7-list-inset-border-radius);--f7-safe-area-left:0px;--f7-safe-area-right:0px}.list.xsmall-inset .block-title{margin-left:0;margin-right:0}.list.xsmall-inset ul{border-radius:var(--f7-list-inset-border-radius)}.list.xsmall-inset ul:after,.list.xsmall-inset ul:before{display:none!important}.list.xsmall-inset li:first-child>a{border-radius:var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius) 0 0}.list.xsmall-inset li:last-child>a{border-radius:0 0 var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius)}.list.xsmall-inset li:first-child:last-child>a{border-radius:var(--f7-list-inset-border-radius)}}@media (min-width:568px){.list.small-inset{margin-left:calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-left));margin-right:calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-right));border-radius:var(--f7-list-inset-border-radius);--f7-safe-area-left:0px;--f7-safe-area-right:0px}.list.small-inset .block-title{margin-left:0;margin-right:0}.list.small-inset ul{border-radius:var(--f7-list-inset-border-radius)}.list.small-inset ul:after,.list.small-inset ul:before{display:none!important}.list.small-inset li:first-child>a{border-radius:var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius) 0 0}.list.small-inset li:last-child>a{border-radius:0 0 var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius)}.list.small-inset li:first-child:last-child>a{border-radius:var(--f7-list-inset-border-radius)}}@media (min-width:768px){.list.medium-inset{margin-left:calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-left));margin-right:calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-right));border-radius:var(--f7-list-inset-border-radius);--f7-safe-area-left:0px;--f7-safe-area-right:0px}.list.medium-inset .block-title{margin-left:0;margin-right:0}.list.medium-inset ul{border-radius:var(--f7-list-inset-border-radius)}.list.medium-inset ul:after,.list.medium-inset ul:before{display:none!important}.list.medium-inset li:first-child>a{border-radius:var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius) 0 0}.list.medium-inset li:last-child>a{border-radius:0 0 var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius)}.list.medium-inset li:first-child:last-child>a{border-radius:var(--f7-list-inset-border-radius)}}@media (min-width:1024px){.list.large-inset{margin-left:calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-left));margin-right:calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-right));border-radius:var(--f7-list-inset-border-radius);--f7-safe-area-left:0px;--f7-safe-area-right:0px}.list.large-inset .block-title{margin-left:0;margin-right:0}.list.large-inset ul{border-radius:var(--f7-list-inset-border-radius)}.list.large-inset ul:after,.list.large-inset ul:before{display:none!important}.list.large-inset li:first-child>a{border-radius:var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius) 0 0}.list.large-inset li:last-child>a{border-radius:0 0 var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius)}.list.large-inset li:first-child:last-child>a{border-radius:var(--f7-list-inset-border-radius)}}@media (min-width:1200px){.list.xlarge-inset{margin-left:calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-left));margin-right:calc(var(--f7-list-inset-side-margin) + var(--f7-safe-area-outer-right));border-radius:var(--f7-list-inset-border-radius);--f7-safe-area-left:0px;--f7-safe-area-right:0px}.list.xlarge-inset .block-title{margin-left:0;margin-right:0}.list.xlarge-inset ul{border-radius:var(--f7-list-inset-border-radius)}.list.xlarge-inset ul:after,.list.xlarge-inset ul:before{display:none!important}.list.xlarge-inset li:first-child>a{border-radius:var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius) 0 0}.list.xlarge-inset li:last-child>a{border-radius:0 0 var(--f7-list-inset-border-radius) var(--f7-list-inset-border-radius)}.list.xlarge-inset li:first-child:last-child>a{border-radius:var(--f7-list-inset-border-radius)}}.list .no-chevron,.list.no-chevron{--f7-list-chevron-icon-color:transparent;--f7-list-chevron-icon-area:0px}.ios .item-link.active-state .item-inner:after,.ios .links-list a.active-state:after,.ios .list-button.active-state:after{background-color:transparent}.ios .links-list a.active-state,.ios .list .item-link.active-state,.ios .list .list-button.active-state{transition-duration:0s}.md .list .item-media{min-width:40px}.aurora .list .item-media{min-width:18px}.aurora .links-list a,.aurora .list .item-link,.aurora .list .list-button{transition-duration:0s}.aurora.device-desktop .links-list a:hover:not(.active-state):not(.no-hover),.aurora.device-desktop .list .item-link:hover:not(.active-state):not(.no-hover){background:var(--f7-list-link-hover-bg-color)}.aurora.device-desktop .list .list-button:hover:not(.active-state):not(.no-hover){background:var(--f7-list-button-hover-bg-color)}:root{--f7-badge-text-color:#fff;--f7-badge-bg-color:#8e8e93;--f7-badge-padding:0 4px;--f7-badge-in-icon-size:16px;--f7-badge-in-icon-font-size:10px;--f7-badge-font-weight:normal;--f7-badge-font-size:12px}.ios{--f7-badge-size:20px}.md{--f7-badge-size:18px}.aurora{--f7-badge-size:18px;--f7-badge-font-weight:600;--f7-badge-in-icon-size:15px}.badge{display:inline-flex;align-items:center;align-content:center;justify-content:center;color:var(--f7-badge-text-color);background:var(--f7-badge-bg-color);position:relative;box-sizing:border-box;text-align:center;vertical-align:middle;font-weight:var(--f7-badge-font-weight);font-size:var(--f7-badge-font-size);border-radius:var(--f7-badge-size);padding:var(--f7-badge-padding);height:var(--f7-badge-size);min-width:var(--f7-badge-size)}.f7-icons .badge,.framework7-icons .badge,.icon .badge,.material-icons .badge{position:absolute;left:100%;margin-left:-10px;top:-2px;font-family:var(--f7-font-family);--f7-badge-font-size:var(--f7-badge-in-icon-font-size);--f7-badge-size:var(--f7-badge-in-icon-size)}.badge[class*=color-]{--f7-badge-bg-color:var(--f7-theme-color)}:root{--f7-button-min-width:32px;--f7-button-bg-color:transparent;--f7-button-border-width:0px;--f7-button-outline-border-width:2px;--f7-button-raised-box-shadow:0 1px 3px rgba(0, 0, 0, 0.12),0 1px 2px rgba(0,0,0,0.24);--f7-button-raised-pressed-box-shadow:0 3px 6px rgba(0, 0, 0, 0.16),0 3px 6px rgba(0,0,0,0.23);--f7-segmented-raised-divider-color:rgba(0, 0, 0, 0.1);--f7-segmented-strong-padding:2px;--f7-segmented-strong-between-buttons:4px;--f7-segmented-strong-button-font-weight:500;--f7-segmented-strong-button-active-box-shadow:0px 2px 2px rgba(0, 0, 0, 0.25);--f7-segmented-strong-bg-color:rgba(0, 0, 0, 0.07);--f7-segmented-strong-button-text-color:#000;--f7-segmented-strong-button-pressed-bg-color:rgba(0, 0, 0, 0.07);--f7-segmented-strong-button-hover-bg-color:rgba(0, 0, 0, 0.04);--f7-segmented-strong-button-active-text-color:#000;--f7-segmented-strong-button-active-bg-color:#fff}:root .theme-dark,:root.theme-dark{--f7-segmented-strong-bg-color:rgba(255, 255, 255, 0.1);--f7-segmented-strong-button-pressed-bg-color:rgba(255, 255, 255, 0.04);--f7-segmented-strong-button-hover-bg-color:rgba(255, 255, 255, 0.02);--f7-segmented-strong-button-active-bg-color:rgba(255, 255, 255, 0.14);--f7-segmented-strong-button-text-color:#fff;--f7-segmented-strong-button-active-text-color:#fff}.ios{--f7-button-font-size:13px;--f7-button-height:28px;--f7-button-padding-horizontal:10px;--f7-button-border-radius:5px;--f7-button-font-weight:600;--f7-button-letter-spacing:0;--f7-button-text-transform:uppercase;--f7-button-large-height:44px;--f7-button-large-font-size:17px;--f7-button-large-font-weight:500;--f7-button-large-text-transform:none;--f7-button-small-height:26px;--f7-button-small-font-size:13px;--f7-button-small-font-weight:600;--f7-button-small-text-transform:uppercase;--f7-button-small-outline-border-width:2px;--f7-segmented-strong-button-text-transform:none;--f7-segmented-strong-button-active-font-weight:600}.md{--f7-button-font-size:14px;--f7-button-height:36px;--f7-button-padding-horizontal:8px;--f7-button-border-radius:4px;--f7-button-font-weight:500;--f7-button-letter-spacing:0.03em;--f7-button-text-transform:uppercase;--f7-button-large-height:48px;--f7-button-large-font-size:14px;--f7-button-large-font-weight:500;--f7-button-large-text-transform:uppercase;--f7-button-small-height:28px;--f7-button-small-font-size:12px;--f7-button-small-font-weight:500;--f7-button-small-text-transform:uppercase;--f7-button-small-outline-border-width:2px;--f7-segmented-strong-button-text-transform:uppercase;--f7-segmented-strong-button-active-font-weight:500;--f7-button-pressed-bg-color:rgba(0, 0, 0, 0.1)}.md .theme-dark,.md.theme-dark{--f7-button-pressed-bg-color:rgba(255, 255, 255, 0.1)}.aurora{--f7-button-font-size:14px;--f7-button-height:28px;--f7-button-min-width:24px;--f7-button-padding-horizontal:10px;--f7-button-border-radius:4px;--f7-button-font-weight:500;--f7-button-letter-spacing:0.02;--f7-button-text-transform:none;--f7-button-large-height:34px;--f7-button-large-font-size:14px;--f7-button-large-font-weight:600;--f7-button-large-text-transform:none;--f7-button-small-height:24px;--f7-button-small-font-size:12px;--f7-button-small-font-weight:600;--f7-button-small-text-transform:none;--f7-button-small-outline-border-width:1px;--f7-segmented-strong-button-text-transform:none;--f7-segmented-strong-button-active-font-weight:600}button{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:100%}.button{text-decoration:none;text-align:center;display:block;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:0 0;margin:0;white-space:nowrap;text-overflow:ellipsis;position:relative;overflow:hidden;font-family:inherit;cursor:pointer;outline:0;box-sizing:border-box;vertical-align:middle;justify-content:center;align-items:center;border:var(--f7-button-border-width,0px) solid var(--f7-button-border-color,var(--f7-theme-color));font-size:var(--f7-button-font-size);color:var(--f7-button-text-color,var(--f7-theme-color));height:var(--f7-button-height);line-height:calc(var(--f7-button-height) - var(--f7-button-border-width,0) * 2);padding:var(--f7-button-padding-vertical,0px) var(--f7-button-padding-horizontal);border-radius:var(--f7-button-border-radius);min-width:var(--f7-button-min-width);font-weight:var(--f7-button-font-weight);letter-spacing:var(--f7-button-letter-spacing);text-transform:var(--f7-button-text-transform);background-color:var(--f7-button-bg-color);box-shadow:var(--f7-button-box-shadow)}.button.active-state{background-color:var(--f7-button-pressed-bg-color,rgba(var(--f7-theme-color-rgb),.15));color:var(--f7-button-pressed-text-color,var(--f7-button-text-color,var(--f7-theme-color)))}input[type=button].button,input[type=submit].button{width:100%}.button>i+i,.button>i+span,.button>span+i,.button>span+span{margin-right:4px}.appbar .button,.navbar .button,.searchbar .button,.subnavbar .button,.toolbar .button{color:var(--f7-button-text-color,var(--f7-theme-color))}.aurora .button-round-aurora,.button-round,.ios .button-round-ios,.md .button-round-md{--f7-button-border-radius:var(--f7-button-height)}.aurora .button-fill-aurora,.button-active,.button-fill,.button.tab-link-active,.ios .button-fill-ios,.md .button-fill-md{--f7-button-bg-color:var(--f7-button-fill-bg-color, var(--f7-theme-color));--f7-button-text-color:var(--f7-button-fill-text-color, #fff);--f7-touch-ripple-color:var(--f7-touch-ripple-white)}.aurora .button-fill-aurora,.button-fill,.ios .button-fill-ios,.md .button-fill-md{--f7-button-pressed-bg-color:var(--f7-button-fill-pressed-bg-color)}.button-active,.button.tab-link-active{--f7-button-pressed-bg-color:var(--f7-button-bg-color)}.aurora .button-outline-aurora,.button-outline,.ios .button-outline-ios,.md .button-outline-md{--f7-button-border-color:var(--f7-button-outline-border-color, var(--f7-theme-color));--f7-button-border-width:var(--f7-button-outline-border-width)}.aurora .button-large-aurora,.button-large,.ios .button-large-ios,.md .button-large-md{--f7-button-height:var(--f7-button-large-height);--f7-button-font-size:var(--f7-button-large-font-size);--f7-button-font-weight:var(--f7-button-large-font-weight);--f7-button-text-transform:var(--f7-button-large-text-transform)}.aurora .button-small-aurora,.button-small,.ios .button-small-ios,.md .button-small-md{--f7-button-outline-border-width:var(--f7-button-small-outline-border-width);--f7-button-height:var(--f7-button-small-height);--f7-button-font-size:var(--f7-button-small-font-size);--f7-button-font-weight:var(--f7-button-small-font-weight);--f7-button-text-transform:var(--f7-button-small-text-transform)}.ios .button-small-ios.button-fill,.ios .button-small.button-fill,.ios .button-small.button-fill-ios{--f7-button-border-width:var(--f7-button-small-outline-border-width);--f7-button-pressed-text-color:var(--f7-theme-color);--f7-button-pressed-bg-color:transparent}.segmented{align-self:center;display:flex;flex-wrap:nowrap;border-radius:var(--f7-button-border-radius);box-shadow:var(--f7-button-box-shadow);box-sizing:border-box}.segmented .button,.segmented button{width:100%;flex-shrink:1;min-width:0;border-radius:0}.segmented .button:first-child{border-radius:0 var(--f7-button-border-radius) var(--f7-button-border-radius) 0}.segmented .button:not(.button-outline):first-child{border-right:none}.segmented .button.button-outline:nth-child(n+2){border-right:none}.segmented .button:last-child{border-radius:var(--f7-button-border-radius) 0 0 var(--f7-button-border-radius)}.segmented .button-round:first-child{border-radius:0 var(--f7-button-height) var(--f7-button-height) 0}.segmented .button-round:last-child{border-radius:var(--f7-button-height) 0 0 var(--f7-button-height)}.segmented .button:first-child:last-child{border-radius:var(--f7-button-border-radius)}.aurora .segmented-raised-aurora,.ios .segmented-raised-ios,.md .segmented-raised-md,.segmented-raised{box-shadow:var(--f7-button-raised-box-shadow)}.aurora .segmented-raised-aurora .button:not(.button-outline),.ios .segmented-raised-ios .button:not(.button-outline),.md .segmented-raised-md .button:not(.button-outline),.segmented-raised .button:not(.button-outline){border-right:1px solid var(--f7-segmented-raised-divider-color)}.aurora .button-raised-aurora,.button-raised,.ios .button-raised-ios,.md .button-raised-md{--f7-button-box-shadow:var(--f7-button-raised-box-shadow)}.aurora .button-raised-aurora.active-state,.button-raised.active-state,.ios .button-raised-ios.active-state,.md .button-raised-md.active-state{--f7-button-box-shadow:var(--f7-button-raised-pressed-box-shadow)}.aurora .segmented-strong-aurora,.ios .segmented-strong-ios,.md .segmented-strong-md,.segmented-strong{--f7-button-bg-color:transparent;--f7-button-hover-bg-color:var(--f7-segmented-strong-button-hover-bg-color);--f7-button-text-color:var(--f7-segmented-strong-button-text-color);--f7-button-font-weight:var(--f7-segmented-strong-button-font-weight);--f7-button-text-transform:var(--f7-segmented-strong-button-text-transform);--f7-button-pressed-bg-color:var(--f7-segmented-strong-button-pressed-bg-color);position:relative;background:var(--f7-segmented-strong-bg-color);border-radius:calc(var(--f7-button-border-radius) + 2px);box-shadow:none;padding:var(--f7-segmented-strong-padding);overflow:hidden}.aurora .segmented-strong-aurora .button,.ios .segmented-strong-ios .button,.md .segmented-strong-md .button,.segmented-strong .button{z-index:1;transform:translate3d(0,0,0)}.aurora .segmented-strong-aurora .button,.aurora .segmented-strong-aurora .button:first-child,.aurora .segmented-strong-aurora .button:last-child,.ios .segmented-strong-ios .button,.ios .segmented-strong-ios .button:first-child,.ios .segmented-strong-ios .button:last-child,.md .segmented-strong-md .button,.md .segmented-strong-md .button:first-child,.md .segmented-strong-md .button:last-child,.segmented-strong .button,.segmented-strong .button:first-child,.segmented-strong .button:last-child{border-radius:var(--f7-button-border-radius)}.aurora .segmented-strong-aurora .button+.button,.ios .segmented-strong-ios .button+.button,.md .segmented-strong-md .button+.button,.segmented-strong .button+.button{margin-right:var(--f7-segmented-strong-between-buttons)}.aurora .segmented-strong-aurora .button.button-active,.aurora .segmented-strong-aurora .button.tab-link-active,.ios .segmented-strong-ios .button.button-active,.ios .segmented-strong-ios .button.tab-link-active,.md .segmented-strong-md .button.button-active,.md .segmented-strong-md .button.tab-link-active,.segmented-strong .button.button-active,.segmented-strong .button.tab-link-active{--f7-button-hover-bg-color:transparent;--f7-button-bg-color:transparent;--f7-button-text-color:var(--f7-segmented-strong-button-active-text-color);--f7-button-font-weight:var(--f7-segmented-strong-button-active-font-weight)}.aurora .segmented-strong-aurora .segmented-highlight,.ios .segmented-strong-ios .segmented-highlight,.md .segmented-strong-md .segmented-highlight,.segmented-strong .segmented-highlight{--f7-segmented-highlight-num:1;--f7-segmented-highlight-active:0;--f7-segmented-highlight-padding:calc(var(--f7-segmented-strong-padding) * 2);--f7-segmented-highlight-between:var(--f7-segmented-strong-between-buttons);--f7-segmented-highlight-width:calc((100% - var(--f7-segmented-highlight-padding) - var(--f7-segmented-highlight-between) * (var(--f7-segmented-highlight-num) - 1)) / var(--f7-segmented-highlight-num));position:absolute;background-color:var(--f7-segmented-strong-button-active-bg-color);border-radius:var(--f7-button-border-radius);box-shadow:var(--f7-segmented-strong-button-active-box-shadow);left:var(--f7-segmented-strong-padding);top:var(--f7-segmented-strong-padding);height:calc(100% - var(--f7-segmented-strong-padding) * 2);width:var(--f7-segmented-highlight-width);z-index:0;transform:translateX(calc(var(--f7-segmented-highlight-active) * 100% + var(--f7-segmented-highlight-active) * var(--f7-segmented-highlight-between)));transition:.2s}.button:nth-child(2)~.segmented-highlight{--f7-segmented-highlight-num:2}.button:nth-child(3)~.segmented-highlight{--f7-segmented-highlight-num:3}.button:nth-child(4)~.segmented-highlight{--f7-segmented-highlight-num:4}.button:nth-child(5)~.segmented-highlight{--f7-segmented-highlight-num:5}.button:nth-child(6)~.segmented-highlight{--f7-segmented-highlight-num:6}.button:nth-child(7)~.segmented-highlight{--f7-segmented-highlight-num:7}.button:nth-child(8)~.segmented-highlight{--f7-segmented-highlight-num:8}.button:nth-child(9)~.segmented-highlight{--f7-segmented-highlight-num:9}.button:nth-child(10)~.segmented-highlight{--f7-segmented-highlight-num:10}.button-active:nth-child(2)~.segmented-highlight,.tab-link-active:nth-child(2)~.segmented-highlight{--f7-segmented-highlight-active:1}.button-active:nth-child(3)~.segmented-highlight,.tab-link-active:nth-child(3)~.segmented-highlight{--f7-segmented-highlight-active:2}.button-active:nth-child(4)~.segmented-highlight,.tab-link-active:nth-child(4)~.segmented-highlight{--f7-segmented-highlight-active:3}.button-active:nth-child(5)~.segmented-highlight,.tab-link-active:nth-child(5)~.segmented-highlight{--f7-segmented-highlight-active:4}.button-active:nth-child(6)~.segmented-highlight,.tab-link-active:nth-child(6)~.segmented-highlight{--f7-segmented-highlight-active:5}.button-active:nth-child(7)~.segmented-highlight,.tab-link-active:nth-child(7)~.segmented-highlight{--f7-segmented-highlight-active:6}.button-active:nth-child(8)~.segmented-highlight,.tab-link-active:nth-child(8)~.segmented-highlight{--f7-segmented-highlight-active:7}.button-active:nth-child(9)~.segmented-highlight,.tab-link-active:nth-child(9)~.segmented-highlight{--f7-segmented-highlight-active:8}.button-active:nth-child(10)~.segmented-highlight,.tab-link-active:nth-child(10)~.segmented-highlight{--f7-segmented-highlight-active:9}.aurora .segmented-round-aurora,.ios .segmented-round-ios,.md .segmented-round-md,.segmented-round{border-radius:var(--f7-button-height)}.aurora .segmented-round-aurora .segmented-highlight,.ios .segmented-round-ios .segmented-highlight,.md .segmented-round-md .segmented-highlight,.segmented-round .segmented-highlight{border-radius:var(--f7-button-height)}.subnavbar .segmented{width:100%}.ios .button{transition-duration:.1s}.ios .button-fill,.ios .button-fill-ios{--f7-button-pressed-bg-color:var(--f7-button-fill-pressed-bg-color, var(--f7-theme-color-tint))}.ios .button-small,.ios .button-small-ios{transition-duration:.2s}.md .button{transition-duration:.3s;transform:translate3d(0,0,0)}.md .button-fill,.md .button-fill-md{--f7-button-pressed-bg-color:var(--f7-button-fill-pressed-bg-color, var(--f7-theme-color-shade))}.aurora .button{transition-duration:.1s;transform:translate3d(0,0,0)}.aurora.device-desktop .button:not(.active-state):not(.no-hover):hover{background-color:var(--f7-button-hover-bg-color,rgba(var(--f7-theme-color-rgb),.07))}.aurora .button-fill,.aurora .button-fill-aurora{--f7-button-pressed-bg-color:var(--f7-button-fill-pressed-bg-color, var(--f7-theme-color-shade))}.aurora .button-active,.aurora .button-fill,.aurora .button-fill-aurora,.aurora .button.tab-link-active{--f7-button-hover-bg-color:var(--f7-button-fill-hover-bg-color, var(--f7-theme-color-tint))}:root{--f7-touch-ripple-black:rgba(0, 0, 0, 0.1);--f7-touch-ripple-white:rgba(255, 255, 255, 0.3);--f7-touch-ripple-color:var(--f7-touch-ripple-black)}.theme-dark{--f7-touch-ripple-color:var(--f7-touch-ripple-white)}.actions-button,.button,.checkbox,.dialog-button,.fab a,.item-link,.link,.list-button,.radio,.ripple,.speed-dial-buttons a,.tab-link{-webkit-user-select:none;-moz-user-select:none;user-select:none}.ripple-wave{left:0;top:0;position:absolute!important;border-radius:50%;pointer-events:none;z-index:-1;padding:0;margin:0;font-size:0;transform:translate3d(0px,0px,0) scale(0);transition-duration:1.4s;background-color:var(--f7-touch-ripple-color)}.ripple-wave.ripple-wave-fill{transition-duration:.3s;opacity:.35}.ripple-wave.ripple-wave-out{transition-duration:.6s;opacity:0}.button-fill .ripple-wave,.menu .ripple-wave,.picker-calendar-day .ripple-wave{z-index:1}.checkbox .ripple-wave,.data-table .sortable-cell .ripple-wave,.radio .ripple-wave{z-index:0}[class*=ripple-color-]{--f7-touch-ripple-color:var(--f7-theme-color-ripple-color)}.f7-icons,.material-icons{width:1em;height:1em}i.icon{display:inline-block;vertical-align:middle;background-size:100% auto;background-position:center;background-repeat:no-repeat;font-style:normal;position:relative}.icon-back:after,.icon-forward:after,.icon-next:after,.icon-prev:after{font-family:framework7-core-icons;font-weight:400;font-style:normal;line-height:1;letter-spacing:normal;text-transform:none;white-space:nowrap;word-wrap:normal;direction:ltr;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;font-feature-settings:"liga";text-align:center;display:block;width:100%;height:100%;font-size:20px}.icon[class*=color-]{color:var(--f7-theme-color)}.ios .icon-back,.ios .icon-forward,.ios .icon-next,.ios .icon-prev{width:12px;height:20px;line-height:20px}.ios .icon-back:after,.ios .icon-forward:after,.ios .icon-next:after,.ios .icon-prev:after{line-height:inherit}.ios .icon-next:after,.ios .icon-prev:after{font-size:16px}.ios .icon-back:after,.ios .icon-prev:after{content:'chevron_right_ios'}.ios .icon-forward:after,.ios .icon-next:after{content:'chevron_left_ios'}.md .icon-back,.md .icon-forward,.md .icon-next,.md .icon-prev{width:24px;height:24px}.md .icon-back:after,.md .icon-forward:after,.md .icon-next:after,.md .icon-prev:after{line-height:1.2}.md .icon-back:after{content:'arrow_right_md'}.md .icon-forward:after{content:'arrow_left_md'}.md .icon-next:after{content:'chevron_left_md'}.md .icon-prev:after{content:'chevron_right_md'}.aurora .f7-icons,.aurora .material-icons{font-size:18px}.aurora .icon-back,.aurora .icon-forward,.aurora .icon-next,.aurora .icon-prev{width:9px;height:14px;line-height:14px}.aurora .icon-back:after,.aurora .icon-forward:after,.aurora .icon-next:after,.aurora .icon-prev:after{line-height:inherit}.aurora .icon-back:after,.aurora .icon-prev:after{content:'chevron_right_aurora'}.aurora .icon-forward:after,.aurora .icon-next:after{content:'chevron_left_aurora'}.custom-modal-backdrop{z-index:10500}.actions-backdrop,.custom-modal-backdrop,.dialog-backdrop,.fab-backdrop,.popover-backdrop,.popup-backdrop,.preloader-backdrop,.sheet-backdrop{position:absolute;left:0;top:0;width:100%;height:100%;background:rgba(0,0,0,.4);z-index:13000;visibility:hidden;opacity:0;transition-duration:.4s}.actions-backdrop.not-animated,.custom-modal-backdrop.not-animated,.dialog-backdrop.not-animated,.fab-backdrop.not-animated,.popover-backdrop.not-animated,.popup-backdrop.not-animated,.preloader-backdrop.not-animated,.sheet-backdrop.not-animated{transition-duration:0s}.actions-backdrop.backdrop-in,.custom-modal-backdrop.backdrop-in,.dialog-backdrop.backdrop-in,.fab-backdrop.backdrop-in,.popover-backdrop.backdrop-in,.popup-backdrop.backdrop-in,.preloader-backdrop.backdrop-in,.sheet-backdrop.backdrop-in{visibility:visible;opacity:1} \ No newline at end of file diff --git a/public/Framework7/5/img/f7-icon-square.png b/public/Framework7/5/img/f7-icon-square.png new file mode 100644 index 0000000000000000000000000000000000000000..7a4e5d6643452cd22fd651e3e108052821e3e55c GIT binary patch literal 31668 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 P00000NkvXXu0mjfRrM?< literal 0 HcmV?d00001 diff --git a/public/Framework7/5/img/f7-icon.png b/public/Framework7/5/img/f7-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..39f5c25977bf7c82c3f285cc7947ebad73798c98 GIT binary patch literal 13643 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 d# extends ClicksNamespace.AppMethods{} + interface Framework7Params extends ClicksNamespace.AppParams{} + interface Framework7Events extends ClicksNamespace.AppEvents{} + interface Framework7Class extends ComponentNamespace.AppMethods{} + interface Framework7Params extends ComponentNamespace.AppParams{} + interface Framework7Events extends ComponentNamespace.AppEvents{} + interface Framework7Class extends DeviceNamespace.AppMethods{} + interface Framework7Params extends DeviceNamespace.AppParams{} + interface Framework7Events extends DeviceNamespace.AppEvents{} + interface Framework7Class extends RequestNamespace.AppMethods{} + interface Framework7Params extends RequestNamespace.AppParams{} + interface Framework7Events extends RequestNamespace.AppEvents{} + interface Framework7Class extends ResizeNamespace.AppMethods{} + interface Framework7Params extends ResizeNamespace.AppParams{} + interface Framework7Events extends ResizeNamespace.AppEvents{} + interface Framework7Class extends RouterNamespace.AppMethods{} + interface Framework7Params extends RouterNamespace.AppParams{} + interface Framework7Events extends RouterNamespace.AppEvents{} + interface Framework7Class extends ServiceWorkerNamespace.AppMethods{} + interface Framework7Params extends ServiceWorkerNamespace.AppParams{} + interface Framework7Events extends ServiceWorkerNamespace.AppEvents{} + interface Framework7Class extends SupportNamespace.AppMethods{} + interface Framework7Params extends SupportNamespace.AppParams{} + interface Framework7Events extends SupportNamespace.AppEvents{} + interface Framework7Class extends TouchNamespace.AppMethods{} + interface Framework7Params extends TouchNamespace.AppParams{} + interface Framework7Events extends TouchNamespace.AppEvents{} + interface Framework7Class extends UtilsNamespace.AppMethods{} + interface Framework7Params extends UtilsNamespace.AppParams{} + interface Framework7Events extends UtilsNamespace.AppEvents{} + interface Framework7Class extends AccordionNamespace.AppMethods{} + interface Framework7Params extends AccordionNamespace.AppParams{} + interface Framework7Events extends AccordionNamespace.AppEvents{} + interface Framework7Class extends ActionsNamespace.AppMethods{} + interface Framework7Params extends ActionsNamespace.AppParams{} + interface Framework7Events extends ActionsNamespace.AppEvents{} + interface Framework7Class extends AppbarNamespace.AppMethods{} + interface Framework7Params extends AppbarNamespace.AppParams{} + interface Framework7Events extends AppbarNamespace.AppEvents{} + interface Framework7Class extends AutocompleteNamespace.AppMethods{} + interface Framework7Params extends AutocompleteNamespace.AppParams{} + interface Framework7Events extends AutocompleteNamespace.AppEvents{} + interface Framework7Class extends BadgeNamespace.AppMethods{} + interface Framework7Params extends BadgeNamespace.AppParams{} + interface Framework7Events extends BadgeNamespace.AppEvents{} + interface Framework7Class extends BlockNamespace.AppMethods{} + interface Framework7Params extends BlockNamespace.AppParams{} + interface Framework7Events extends BlockNamespace.AppEvents{} + interface Framework7Class extends ButtonNamespace.AppMethods{} + interface Framework7Params extends ButtonNamespace.AppParams{} + interface Framework7Events extends ButtonNamespace.AppEvents{} + interface Framework7Class extends CalendarNamespace.AppMethods{} + interface Framework7Params extends CalendarNamespace.AppParams{} + interface Framework7Events extends CalendarNamespace.AppEvents{} + interface Framework7Class extends CardNamespace.AppMethods{} + interface Framework7Params extends CardNamespace.AppParams{} + interface Framework7Events extends CardNamespace.AppEvents{} + interface Framework7Class extends CheckboxNamespace.AppMethods{} + interface Framework7Params extends CheckboxNamespace.AppParams{} + interface Framework7Events extends CheckboxNamespace.AppEvents{} + interface Framework7Class extends ChipNamespace.AppMethods{} + interface Framework7Params extends ChipNamespace.AppParams{} + interface Framework7Events extends ChipNamespace.AppEvents{} + interface Framework7Class extends ColorPickerNamespace.AppMethods{} + interface Framework7Params extends ColorPickerNamespace.AppParams{} + interface Framework7Events extends ColorPickerNamespace.AppEvents{} + interface Framework7Class extends ContactsListNamespace.AppMethods{} + interface Framework7Params extends ContactsListNamespace.AppParams{} + interface Framework7Events extends ContactsListNamespace.AppEvents{} + interface Framework7Class extends DataTableNamespace.AppMethods{} + interface Framework7Params extends DataTableNamespace.AppParams{} + interface Framework7Events extends DataTableNamespace.AppEvents{} + interface Framework7Class extends DialogNamespace.AppMethods{} + interface Framework7Params extends DialogNamespace.AppParams{} + interface Framework7Events extends DialogNamespace.AppEvents{} + interface Framework7Class extends ElevationNamespace.AppMethods{} + interface Framework7Params extends ElevationNamespace.AppParams{} + interface Framework7Events extends ElevationNamespace.AppEvents{} + interface Framework7Class extends FabNamespace.AppMethods{} + interface Framework7Params extends FabNamespace.AppParams{} + interface Framework7Events extends FabNamespace.AppEvents{} + interface Framework7Class extends FormNamespace.AppMethods{} + interface Framework7Params extends FormNamespace.AppParams{} + interface Framework7Events extends FormNamespace.AppEvents{} + interface Framework7Class extends GaugeNamespace.AppMethods{} + interface Framework7Params extends GaugeNamespace.AppParams{} + interface Framework7Events extends GaugeNamespace.AppEvents{} + interface Framework7Class extends GridNamespace.AppMethods{} + interface Framework7Params extends GridNamespace.AppParams{} + interface Framework7Events extends GridNamespace.AppEvents{} + interface Framework7Class extends IconNamespace.AppMethods{} + interface Framework7Params extends IconNamespace.AppParams{} + interface Framework7Events extends IconNamespace.AppEvents{} + interface Framework7Class extends InfiniteScrollNamespace.AppMethods{} + interface Framework7Params extends InfiniteScrollNamespace.AppParams{} + interface Framework7Events extends InfiniteScrollNamespace.AppEvents{} + interface Framework7Class extends InputNamespace.AppMethods{} + interface Framework7Params extends InputNamespace.AppParams{} + interface Framework7Events extends InputNamespace.AppEvents{} + interface Framework7Class extends LazyNamespace.AppMethods{} + interface Framework7Params extends LazyNamespace.AppParams{} + interface Framework7Events extends LazyNamespace.AppEvents{} + interface Framework7Class extends LinkNamespace.AppMethods{} + interface Framework7Params extends LinkNamespace.AppParams{} + interface Framework7Events extends LinkNamespace.AppEvents{} + interface Framework7Class extends ListNamespace.AppMethods{} + interface Framework7Params extends ListNamespace.AppParams{} + interface Framework7Events extends ListNamespace.AppEvents{} + interface Framework7Class extends ListIndexNamespace.AppMethods{} + interface Framework7Params extends ListIndexNamespace.AppParams{} + interface Framework7Events extends ListIndexNamespace.AppEvents{} + interface Framework7Class extends LoginScreenNamespace.AppMethods{} + interface Framework7Params extends LoginScreenNamespace.AppParams{} + interface Framework7Events extends LoginScreenNamespace.AppEvents{} + interface Framework7Class extends MenuNamespace.AppMethods{} + interface Framework7Params extends MenuNamespace.AppParams{} + interface Framework7Events extends MenuNamespace.AppEvents{} + interface Framework7Class extends MessagebarNamespace.AppMethods{} + interface Framework7Params extends MessagebarNamespace.AppParams{} + interface Framework7Events extends MessagebarNamespace.AppEvents{} + interface Framework7Class extends MessagesNamespace.AppMethods{} + interface Framework7Params extends MessagesNamespace.AppParams{} + interface Framework7Events extends MessagesNamespace.AppEvents{} + interface Framework7Class extends ModalNamespace.AppMethods{} + interface Framework7Params extends ModalNamespace.AppParams{} + interface Framework7Events extends ModalNamespace.AppEvents{} + interface Framework7Class extends NavbarNamespace.AppMethods{} + interface Framework7Params extends NavbarNamespace.AppParams{} + interface Framework7Events extends NavbarNamespace.AppEvents{} + interface Framework7Class extends NotificationNamespace.AppMethods{} + interface Framework7Params extends NotificationNamespace.AppParams{} + interface Framework7Events extends NotificationNamespace.AppEvents{} + interface Framework7Class extends PageNamespace.AppMethods{} + interface Framework7Params extends PageNamespace.AppParams{} + interface Framework7Events extends PageNamespace.AppEvents{} + interface Framework7Class extends PanelNamespace.AppMethods{} + interface Framework7Params extends PanelNamespace.AppParams{} + interface Framework7Events extends PanelNamespace.AppEvents{} + interface Framework7Class extends PhotoBrowserNamespace.AppMethods{} + interface Framework7Params extends PhotoBrowserNamespace.AppParams{} + interface Framework7Events extends PhotoBrowserNamespace.AppEvents{} + interface Framework7Class extends PickerNamespace.AppMethods{} + interface Framework7Params extends PickerNamespace.AppParams{} + interface Framework7Events extends PickerNamespace.AppEvents{} + interface Framework7Class extends PopoverNamespace.AppMethods{} + interface Framework7Params extends PopoverNamespace.AppParams{} + interface Framework7Events extends PopoverNamespace.AppEvents{} + interface Framework7Class extends PopupNamespace.AppMethods{} + interface Framework7Params extends PopupNamespace.AppParams{} + interface Framework7Events extends PopupNamespace.AppEvents{} + interface Framework7Class extends PreloaderNamespace.AppMethods{} + interface Framework7Params extends PreloaderNamespace.AppParams{} + interface Framework7Events extends PreloaderNamespace.AppEvents{} + interface Framework7Class extends ProgressbarNamespace.AppMethods{} + interface Framework7Params extends ProgressbarNamespace.AppParams{} + interface Framework7Events extends ProgressbarNamespace.AppEvents{} + interface Framework7Class extends PullToRefreshNamespace.AppMethods{} + interface Framework7Params extends PullToRefreshNamespace.AppParams{} + interface Framework7Events extends PullToRefreshNamespace.AppEvents{} + interface Framework7Class extends RadioNamespace.AppMethods{} + interface Framework7Params extends RadioNamespace.AppParams{} + interface Framework7Events extends RadioNamespace.AppEvents{} + interface Framework7Class extends RangeNamespace.AppMethods{} + interface Framework7Params extends RangeNamespace.AppParams{} + interface Framework7Events extends RangeNamespace.AppEvents{} + interface Framework7Class extends SearchbarNamespace.AppMethods{} + interface Framework7Params extends SearchbarNamespace.AppParams{} + interface Framework7Events extends SearchbarNamespace.AppEvents{} + interface Framework7Class extends SheetNamespace.AppMethods{} + interface Framework7Params extends SheetNamespace.AppParams{} + interface Framework7Events extends SheetNamespace.AppEvents{} + interface Framework7Class extends SkeletonNamespace.AppMethods{} + interface Framework7Params extends SkeletonNamespace.AppParams{} + interface Framework7Events extends SkeletonNamespace.AppEvents{} + interface Framework7Class extends SmartSelectNamespace.AppMethods{} + interface Framework7Params extends SmartSelectNamespace.AppParams{} + interface Framework7Events extends SmartSelectNamespace.AppEvents{} + interface Framework7Class extends SortableNamespace.AppMethods{} + interface Framework7Params extends SortableNamespace.AppParams{} + interface Framework7Events extends SortableNamespace.AppEvents{} + interface Framework7Class extends StatusbarNamespace.AppMethods{} + interface Framework7Params extends StatusbarNamespace.AppParams{} + interface Framework7Events extends StatusbarNamespace.AppEvents{} + interface Framework7Class extends StepperNamespace.AppMethods{} + interface Framework7Params extends StepperNamespace.AppParams{} + interface Framework7Events extends StepperNamespace.AppEvents{} + interface Framework7Class extends SubnavbarNamespace.AppMethods{} + interface Framework7Params extends SubnavbarNamespace.AppParams{} + interface Framework7Events extends SubnavbarNamespace.AppEvents{} + interface Framework7Class extends SwipeoutNamespace.AppMethods{} + interface Framework7Params extends SwipeoutNamespace.AppParams{} + interface Framework7Events extends SwipeoutNamespace.AppEvents{} + interface Framework7Class extends SwiperNamespace.AppMethods{} + interface Framework7Params extends SwiperNamespace.AppParams{} + interface Framework7Events extends SwiperNamespace.AppEvents{} + interface Framework7Class extends TabsNamespace.AppMethods{} + interface Framework7Params extends TabsNamespace.AppParams{} + interface Framework7Events extends TabsNamespace.AppEvents{} + interface Framework7Class extends TextEditorNamespace.AppMethods{} + interface Framework7Params extends TextEditorNamespace.AppParams{} + interface Framework7Events extends TextEditorNamespace.AppEvents{} + interface Framework7Class extends TimelineNamespace.AppMethods{} + interface Framework7Params extends TimelineNamespace.AppParams{} + interface Framework7Events extends TimelineNamespace.AppEvents{} + interface Framework7Class extends ToastNamespace.AppMethods{} + interface Framework7Params extends ToastNamespace.AppParams{} + interface Framework7Events extends ToastNamespace.AppEvents{} + interface Framework7Class extends ToggleNamespace.AppMethods{} + interface Framework7Params extends ToggleNamespace.AppParams{} + interface Framework7Events extends ToggleNamespace.AppEvents{} + interface Framework7Class extends ToolbarNamespace.AppMethods{} + interface Framework7Params extends ToolbarNamespace.AppParams{} + interface Framework7Events extends ToolbarNamespace.AppEvents{} + interface Framework7Class extends TooltipNamespace.AppMethods{} + interface Framework7Params extends TooltipNamespace.AppParams{} + interface Framework7Events extends TooltipNamespace.AppEvents{} + interface Framework7Class extends TouchRippleNamespace.AppMethods{} + interface Framework7Params extends TouchRippleNamespace.AppParams{} + interface Framework7Events extends TouchRippleNamespace.AppEvents{} + interface Framework7Class extends TreeviewNamespace.AppMethods{} + interface Framework7Params extends TreeviewNamespace.AppParams{} + interface Framework7Events extends TreeviewNamespace.AppEvents{} + interface Framework7Class extends TypographyNamespace.AppMethods{} + interface Framework7Params extends TypographyNamespace.AppParams{} + interface Framework7Events extends TypographyNamespace.AppEvents{} + interface Framework7Class extends ViNamespace.AppMethods{} + interface Framework7Params extends ViNamespace.AppParams{} + interface Framework7Events extends ViNamespace.AppEvents{} + interface Framework7Class extends ViewNamespace.AppMethods{} + interface Framework7Params extends ViewNamespace.AppParams{} + interface Framework7Events extends ViewNamespace.AppEvents{} + interface Framework7Class extends VirtualListNamespace.AppMethods{} + interface Framework7Params extends VirtualListNamespace.AppParams{} + interface Framework7Events extends VirtualListNamespace.AppEvents{} +} + +export { Request, Utils, Support, Device }; +export { Template7, Dom7, Component }; +export default Framework7; diff --git a/public/Framework7/5/js/framework7-lite.bundle.js b/public/Framework7/5/js/framework7-lite.bundle.js new file mode 100644 index 0000000..f405a5f --- /dev/null +++ b/public/Framework7/5/js/framework7-lite.bundle.js @@ -0,0 +1,40920 @@ +/** + * Framework7 5.7.14 + * Full featured mobile HTML framework for building iOS & Android apps + * https://framework7.io/ + * + * Copyright 2014-2020 Vladimir Kharlampidi + * + * Released under the MIT License + * + * Released on: November 9, 2020 + */ + +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : + typeof define === 'function' && define.amd ? define(factory) : + (global = global || self, global.Framework7 = factory()); +}(this, (function () { 'use strict'; + + /** + * Template7 1.4.2 + * Mobile-first HTML template engine + * + * http://www.idangero.us/template7/ + * + * Copyright 2019, Vladimir Kharlampidi + * The iDangero.us + * http://www.idangero.us/ + * + * Licensed under MIT + * + * Released on: June 14, 2019 + */ + + var t7ctx; + if (typeof window !== 'undefined') { + t7ctx = window; + } else if (typeof global !== 'undefined') { + t7ctx = global; + } else { + t7ctx = undefined; + } + + var Template7Context = t7ctx; + + var Template7Utils = { + quoteSingleRexExp: new RegExp('\'', 'g'), + quoteDoubleRexExp: new RegExp('"', 'g'), + isFunction: function isFunction(func) { + return typeof func === 'function'; + }, + escape: function escape(string) { + if ( string === void 0 ) string = ''; + + return string + .replace(/&/g, '&') + .replace(//g, '>') + .replace(/"/g, '"') + .replace(/'/g, '''); + }, + helperToSlices: function helperToSlices(string) { + var quoteDoubleRexExp = Template7Utils.quoteDoubleRexExp; + var quoteSingleRexExp = Template7Utils.quoteSingleRexExp; + var helperParts = string.replace(/[{}#}]/g, '').trim().split(' '); + var slices = []; + var shiftIndex; + var i; + var j; + for (i = 0; i < helperParts.length; i += 1) { + var part = helperParts[i]; + var blockQuoteRegExp = (void 0); + var openingQuote = (void 0); + if (i === 0) { slices.push(part); } + else if (part.indexOf('"') === 0 || part.indexOf('\'') === 0) { + blockQuoteRegExp = part.indexOf('"') === 0 ? quoteDoubleRexExp : quoteSingleRexExp; + openingQuote = part.indexOf('"') === 0 ? '"' : '\''; + // Plain String + if (part.match(blockQuoteRegExp).length === 2) { + // One word string + slices.push(part); + } else { + // Find closed Index + shiftIndex = 0; + for (j = i + 1; j < helperParts.length; j += 1) { + part += " " + (helperParts[j]); + if (helperParts[j].indexOf(openingQuote) >= 0) { + shiftIndex = j; + slices.push(part); + break; + } + } + if (shiftIndex) { i = shiftIndex; } + } + } else if (part.indexOf('=') > 0) { + // Hash + var hashParts = part.split('='); + var hashName = hashParts[0]; + var hashContent = hashParts[1]; + if (!blockQuoteRegExp) { + blockQuoteRegExp = hashContent.indexOf('"') === 0 ? quoteDoubleRexExp : quoteSingleRexExp; + openingQuote = hashContent.indexOf('"') === 0 ? '"' : '\''; + } + if (hashContent.match(blockQuoteRegExp).length !== 2) { + shiftIndex = 0; + for (j = i + 1; j < helperParts.length; j += 1) { + hashContent += " " + (helperParts[j]); + if (helperParts[j].indexOf(openingQuote) >= 0) { + shiftIndex = j; + break; + } + } + if (shiftIndex) { i = shiftIndex; } + } + var hash = [hashName, hashContent.replace(blockQuoteRegExp, '')]; + slices.push(hash); + } else { + // Plain variable + slices.push(part); + } + } + return slices; + }, + stringToBlocks: function stringToBlocks(string) { + var blocks = []; + var i; + var j; + if (!string) { return []; } + var stringBlocks = string.split(/({{[^{^}]*}})/); + for (i = 0; i < stringBlocks.length; i += 1) { + var block = stringBlocks[i]; + if (block === '') { continue; } + if (block.indexOf('{{') < 0) { + blocks.push({ + type: 'plain', + content: block, + }); + } else { + if (block.indexOf('{/') >= 0) { + continue; + } + block = block + .replace(/{{([#/])*([ ])*/, '{{$1') + .replace(/([ ])*}}/, '}}'); + if (block.indexOf('{#') < 0 && block.indexOf(' ') < 0 && block.indexOf('else') < 0) { + // Simple variable + blocks.push({ + type: 'variable', + contextName: block.replace(/[{}]/g, ''), + }); + continue; + } + // Helpers + var helperSlices = Template7Utils.helperToSlices(block); + var helperName = helperSlices[0]; + var isPartial = helperName === '>'; + var helperContext = []; + var helperHash = {}; + for (j = 1; j < helperSlices.length; j += 1) { + var slice = helperSlices[j]; + if (Array.isArray(slice)) { + // Hash + helperHash[slice[0]] = slice[1] === 'false' ? false : slice[1]; + } else { + helperContext.push(slice); + } + } + + if (block.indexOf('{#') >= 0) { + // Condition/Helper + var helperContent = ''; + var elseContent = ''; + var toSkip = 0; + var shiftIndex = (void 0); + var foundClosed = false; + var foundElse = false; + var depth = 0; + for (j = i + 1; j < stringBlocks.length; j += 1) { + if (stringBlocks[j].indexOf('{{#') >= 0) { + depth += 1; + } + if (stringBlocks[j].indexOf('{{/') >= 0) { + depth -= 1; + } + if (stringBlocks[j].indexOf(("{{#" + helperName)) >= 0) { + helperContent += stringBlocks[j]; + if (foundElse) { elseContent += stringBlocks[j]; } + toSkip += 1; + } else if (stringBlocks[j].indexOf(("{{/" + helperName)) >= 0) { + if (toSkip > 0) { + toSkip -= 1; + helperContent += stringBlocks[j]; + if (foundElse) { elseContent += stringBlocks[j]; } + } else { + shiftIndex = j; + foundClosed = true; + break; + } + } else if (stringBlocks[j].indexOf('else') >= 0 && depth === 0) { + foundElse = true; + } else { + if (!foundElse) { helperContent += stringBlocks[j]; } + if (foundElse) { elseContent += stringBlocks[j]; } + } + } + if (foundClosed) { + if (shiftIndex) { i = shiftIndex; } + if (helperName === 'raw') { + blocks.push({ + type: 'plain', + content: helperContent, + }); + } else { + blocks.push({ + type: 'helper', + helperName: helperName, + contextName: helperContext, + content: helperContent, + inverseContent: elseContent, + hash: helperHash, + }); + } + } + } else if (block.indexOf(' ') > 0) { + if (isPartial) { + helperName = '_partial'; + if (helperContext[0]) { + if (helperContext[0].indexOf('[') === 0) { helperContext[0] = helperContext[0].replace(/[[\]]/g, ''); } + else { helperContext[0] = "\"" + (helperContext[0].replace(/"|'/g, '')) + "\""; } + } + } + blocks.push({ + type: 'helper', + helperName: helperName, + contextName: helperContext, + hash: helperHash, + }); + } + } + } + return blocks; + }, + parseJsVariable: function parseJsVariable(expression, replace, object) { + return expression.split(/([+ \-*/^()&=|<>!%:?])/g).reduce(function (arr, part) { + if (!part) { + return arr; + } + if (part.indexOf(replace) < 0) { + arr.push(part); + return arr; + } + if (!object) { + arr.push(JSON.stringify('')); + return arr; + } + + var variable = object; + if (part.indexOf((replace + ".")) >= 0) { + part.split((replace + "."))[1].split('.').forEach(function (partName) { + if (partName in variable) { variable = variable[partName]; } + else { variable = undefined; } + }); + } + if ( + (typeof variable === 'string') + || Array.isArray(variable) + || (variable.constructor && variable.constructor === Object) + ) { + variable = JSON.stringify(variable); + } + if (variable === undefined) { variable = 'undefined'; } + + arr.push(variable); + return arr; + }, []).join(''); + + }, + parseJsParents: function parseJsParents(expression, parents) { + return expression.split(/([+ \-*^()&=|<>!%:?])/g).reduce(function (arr, part) { + if (!part) { + return arr; + } + + if (part.indexOf('../') < 0) { + arr.push(part); + return arr; + } + + if (!parents || parents.length === 0) { + arr.push(JSON.stringify('')); + return arr; + } + + var levelsUp = part.split('../').length - 1; + var parentData = levelsUp > parents.length ? parents[parents.length - 1] : parents[levelsUp - 1]; + + var variable = parentData; + var parentPart = part.replace(/..\//g, ''); + parentPart.split('.').forEach(function (partName) { + if (typeof variable[partName] !== 'undefined') { variable = variable[partName]; } + else { variable = 'undefined'; } + }); + if (variable === false || variable === true) { + arr.push(JSON.stringify(variable)); + return arr; + } + if (variable === null || variable === 'undefined') { + arr.push(JSON.stringify('')); + return arr; + } + arr.push(JSON.stringify(variable)); + return arr; + }, []).join(''); + }, + getCompileVar: function getCompileVar(name, ctx, data) { + if ( data === void 0 ) data = 'data_1'; + + var variable = ctx; + var parts; + var levelsUp = 0; + var newDepth; + if (name.indexOf('../') === 0) { + levelsUp = name.split('../').length - 1; + newDepth = variable.split('_')[1] - levelsUp; + variable = "ctx_" + (newDepth >= 1 ? newDepth : 1); + parts = name.split('../')[levelsUp].split('.'); + } else if (name.indexOf('@global') === 0) { + variable = 'Template7.global'; + parts = name.split('@global.')[1].split('.'); + } else if (name.indexOf('@root') === 0) { + variable = 'root'; + parts = name.split('@root.')[1].split('.'); + } else { + parts = name.split('.'); + } + for (var i = 0; i < parts.length; i += 1) { + var part = parts[i]; + if (part.indexOf('@') === 0) { + var dataLevel = data.split('_')[1]; + if (levelsUp > 0) { + dataLevel = newDepth; + } + if (i > 0) { + variable += "[(data_" + dataLevel + " && data_" + dataLevel + "." + (part.replace('@', '')) + ")]"; + } else { + variable = "(data_" + dataLevel + " && data_" + dataLevel + "." + (part.replace('@', '')) + ")"; + } + } else if (Number.isFinite ? Number.isFinite(part) : Template7Context.isFinite(part)) { + variable += "[" + part + "]"; + } else if (part === 'this' || part.indexOf('this.') >= 0 || part.indexOf('this[') >= 0 || part.indexOf('this(') >= 0) { + variable = part.replace('this', ctx); + } else { + variable += "." + part; + } + } + return variable; + }, + getCompiledArguments: function getCompiledArguments(contextArray, ctx, data) { + var arr = []; + for (var i = 0; i < contextArray.length; i += 1) { + if (/^['"]/.test(contextArray[i])) { arr.push(contextArray[i]); } + else if (/^(true|false|\d+)$/.test(contextArray[i])) { arr.push(contextArray[i]); } + else { + arr.push(Template7Utils.getCompileVar(contextArray[i], ctx, data)); + } + } + + return arr.join(', '); + }, + }; + + /* eslint no-eval: "off" */ + + var Template7Helpers = { + _partial: function _partial(partialName, options) { + var ctx = this; + var p = Template7Class.partials[partialName]; + if (!p || (p && !p.template)) { return ''; } + if (!p.compiled) { + p.compiled = new Template7Class(p.template).compile(); + } + Object.keys(options.hash).forEach(function (hashName) { + ctx[hashName] = options.hash[hashName]; + }); + return p.compiled(ctx, options.data, options.root); + }, + escape: function escape(context) { + if (typeof context === 'undefined' || context === null) { return ''; } + if (typeof context !== 'string') { + throw new Error('Template7: Passed context to "escape" helper should be a string'); + } + return Template7Utils.escape(context); + }, + if: function if$1(context, options) { + var ctx = context; + if (Template7Utils.isFunction(ctx)) { ctx = ctx.call(this); } + if (ctx) { + return options.fn(this, options.data); + } + + return options.inverse(this, options.data); + }, + unless: function unless(context, options) { + var ctx = context; + if (Template7Utils.isFunction(ctx)) { ctx = ctx.call(this); } + if (!ctx) { + return options.fn(this, options.data); + } + + return options.inverse(this, options.data); + }, + each: function each(context, options) { + var ctx = context; + var ret = ''; + var i = 0; + if (Template7Utils.isFunction(ctx)) { ctx = ctx.call(this); } + if (Array.isArray(ctx)) { + if (options.hash.reverse) { + ctx = ctx.reverse(); + } + for (i = 0; i < ctx.length; i += 1) { + ret += options.fn(ctx[i], { first: i === 0, last: i === ctx.length - 1, index: i }); + } + if (options.hash.reverse) { + ctx = ctx.reverse(); + } + } else { + // eslint-disable-next-line + for (var key in ctx) { + i += 1; + ret += options.fn(ctx[key], { key: key }); + } + } + if (i > 0) { return ret; } + return options.inverse(this); + }, + with: function with$1(context, options) { + var ctx = context; + if (Template7Utils.isFunction(ctx)) { ctx = context.call(this); } + return options.fn(ctx); + }, + join: function join(context, options) { + var ctx = context; + if (Template7Utils.isFunction(ctx)) { ctx = ctx.call(this); } + return ctx.join(options.hash.delimiter || options.hash.delimeter); + }, + js: function js(expression, options) { + var data = options.data; + var func; + var execute = expression; + ('index first last key').split(' ').forEach(function (prop) { + if (typeof data[prop] !== 'undefined') { + var re1 = new RegExp(("this.@" + prop), 'g'); + var re2 = new RegExp(("@" + prop), 'g'); + execute = execute + .replace(re1, JSON.stringify(data[prop])) + .replace(re2, JSON.stringify(data[prop])); + } + }); + if (options.root && execute.indexOf('@root') >= 0) { + execute = Template7Utils.parseJsVariable(execute, '@root', options.root); + } + if (execute.indexOf('@global') >= 0) { + execute = Template7Utils.parseJsVariable(execute, '@global', Template7Context.Template7.global); + } + if (execute.indexOf('../') >= 0) { + execute = Template7Utils.parseJsParents(execute, options.parents); + } + if (execute.indexOf('return') >= 0) { + func = "(function(){" + execute + "})"; + } else { + func = "(function(){return (" + execute + ")})"; + } + return eval(func).call(this); + }, + js_if: function js_if(expression, options) { + var data = options.data; + var func; + var execute = expression; + ('index first last key').split(' ').forEach(function (prop) { + if (typeof data[prop] !== 'undefined') { + var re1 = new RegExp(("this.@" + prop), 'g'); + var re2 = new RegExp(("@" + prop), 'g'); + execute = execute + .replace(re1, JSON.stringify(data[prop])) + .replace(re2, JSON.stringify(data[prop])); + } + }); + if (options.root && execute.indexOf('@root') >= 0) { + execute = Template7Utils.parseJsVariable(execute, '@root', options.root); + } + if (execute.indexOf('@global') >= 0) { + execute = Template7Utils.parseJsVariable(execute, '@global', Template7Context.Template7.global); + } + if (execute.indexOf('../') >= 0) { + execute = Template7Utils.parseJsParents(execute, options.parents); + } + if (execute.indexOf('return') >= 0) { + func = "(function(){" + execute + "})"; + } else { + func = "(function(){return (" + execute + ")})"; + } + var condition = eval(func).call(this); + if (condition) { + return options.fn(this, options.data); + } + + return options.inverse(this, options.data); + }, + }; + Template7Helpers.js_compare = Template7Helpers.js_if; + + var Template7Options = {}; + var Template7Partials = {}; + + var Template7Class = function Template7Class(template) { + var t = this; + t.template = template; + }; + + var staticAccessors = { options: { configurable: true },partials: { configurable: true },helpers: { configurable: true } }; + Template7Class.prototype.compile = function compile (template, depth) { + if ( template === void 0 ) template = this.template; + if ( depth === void 0 ) depth = 1; + + var t = this; + if (t.compiled) { return t.compiled; } + + if (typeof template !== 'string') { + throw new Error('Template7: Template must be a string'); + } + var stringToBlocks = Template7Utils.stringToBlocks; + var getCompileVar = Template7Utils.getCompileVar; + var getCompiledArguments = Template7Utils.getCompiledArguments; + + var blocks = stringToBlocks(template); + var ctx = "ctx_" + depth; + var data = "data_" + depth; + if (blocks.length === 0) { + return function empty() { return ''; }; + } + + function getCompileFn(block, newDepth) { + if (block.content) { return t.compile(block.content, newDepth); } + return function empty() { return ''; }; + } + function getCompileInverse(block, newDepth) { + if (block.inverseContent) { return t.compile(block.inverseContent, newDepth); } + return function empty() { return ''; }; + } + + var resultString = ''; + if (depth === 1) { + resultString += "(function (" + ctx + ", " + data + ", root) {\n"; + } else { + resultString += "(function (" + ctx + ", " + data + ") {\n"; + } + if (depth === 1) { + resultString += 'function isArray(arr){return Array.isArray(arr);}\n'; + resultString += 'function isFunction(func){return (typeof func === \'function\');}\n'; + resultString += 'function c(val, ctx) {if (typeof val !== "undefined" && val !== null) {if (isFunction(val)) {return val.call(ctx);} else return val;} else return "";}\n'; + resultString += 'root = root || ctx_1 || {};\n'; + } + resultString += 'var r = \'\';\n'; + var i; + for (i = 0; i < blocks.length; i += 1) { + var block = blocks[i]; + // Plain block + if (block.type === 'plain') { + // eslint-disable-next-line + resultString += "r +='" + ((block.content).replace(/\r/g, '\\r').replace(/\n/g, '\\n').replace(/'/g, '\\' + '\'')) + "';"; + continue; + } + var variable = (void 0); + var compiledArguments = (void 0); + // Variable block + if (block.type === 'variable') { + variable = getCompileVar(block.contextName, ctx, data); + resultString += "r += c(" + variable + ", " + ctx + ");"; + } + // Helpers block + if (block.type === 'helper') { + var parents = (void 0); + if (ctx !== 'ctx_1') { + var level = ctx.split('_')[1]; + var parentsString = "ctx_" + (level - 1); + for (var j = level - 2; j >= 1; j -= 1) { + parentsString += ", ctx_" + j; + } + parents = "[" + parentsString + "]"; + } else { + parents = "[" + ctx + "]"; + } + var dynamicHelper = (void 0); + if (block.helperName.indexOf('[') === 0) { + block.helperName = getCompileVar(block.helperName.replace(/[[\]]/g, ''), ctx, data); + dynamicHelper = true; + } + if (dynamicHelper || block.helperName in Template7Helpers) { + compiledArguments = getCompiledArguments(block.contextName, ctx, data); + resultString += "r += (Template7Helpers" + (dynamicHelper ? ("[" + (block.helperName) + "]") : ("." + (block.helperName))) + ").call(" + ctx + ", " + (compiledArguments && ((compiledArguments + ", "))) + "{hash:" + (JSON.stringify(block.hash)) + ", data: " + data + " || {}, fn: " + (getCompileFn(block, depth + 1)) + ", inverse: " + (getCompileInverse(block, depth + 1)) + ", root: root, parents: " + parents + "});"; + } else if (block.contextName.length > 0) { + throw new Error(("Template7: Missing helper: \"" + (block.helperName) + "\"")); + } else { + variable = getCompileVar(block.helperName, ctx, data); + resultString += "if (" + variable + ") {"; + resultString += "if (isArray(" + variable + ")) {"; + resultString += "r += (Template7Helpers.each).call(" + ctx + ", " + variable + ", {hash:" + (JSON.stringify(block.hash)) + ", data: " + data + " || {}, fn: " + (getCompileFn(block, depth + 1)) + ", inverse: " + (getCompileInverse(block, depth + 1)) + ", root: root, parents: " + parents + "});"; + resultString += '}else {'; + resultString += "r += (Template7Helpers.with).call(" + ctx + ", " + variable + ", {hash:" + (JSON.stringify(block.hash)) + ", data: " + data + " || {}, fn: " + (getCompileFn(block, depth + 1)) + ", inverse: " + (getCompileInverse(block, depth + 1)) + ", root: root, parents: " + parents + "});"; + resultString += '}}'; + } + } + } + resultString += '\nreturn r;})'; + + if (depth === 1) { + // eslint-disable-next-line + t.compiled = eval(resultString); + return t.compiled; + } + return resultString; + }; + staticAccessors.options.get = function () { + return Template7Options; + }; + staticAccessors.partials.get = function () { + return Template7Partials; + }; + staticAccessors.helpers.get = function () { + return Template7Helpers; + }; + + Object.defineProperties( Template7Class, staticAccessors ); + + function Template7() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + var template = args[0]; + var data = args[1]; + if (args.length === 2) { + var instance = new Template7Class(template); + var rendered = instance.compile()(data); + instance = null; + return (rendered); + } + return new Template7Class(template); + } + Template7.registerHelper = function registerHelper(name, fn) { + Template7Class.helpers[name] = fn; + }; + Template7.unregisterHelper = function unregisterHelper(name) { + Template7Class.helpers[name] = undefined; + delete Template7Class.helpers[name]; + }; + Template7.registerPartial = function registerPartial(name, template) { + Template7Class.partials[name] = { template: template }; + }; + Template7.unregisterPartial = function unregisterPartial(name) { + if (Template7Class.partials[name]) { + Template7Class.partials[name] = undefined; + delete Template7Class.partials[name]; + } + }; + Template7.compile = function compile(template, options) { + var instance = new Template7Class(template, options); + return instance.compile(); + }; + + Template7.options = Template7Class.options; + Template7.helpers = Template7Class.helpers; + Template7.partials = Template7Class.partials; + + /** + * SSR Window 2.0.0 + * Better handling for window object in SSR environment + * https://github.com/nolimits4web/ssr-window + * + * Copyright 2020, Vladimir Kharlampidi + * + * Licensed under MIT + * + * Released on: May 12, 2020 + */ + /* eslint-disable no-param-reassign */ + function isObject(obj) { + return (obj !== null && + typeof obj === 'object' && + 'constructor' in obj && + obj.constructor === Object); + } + function extend(target, src) { + if (target === void 0) { target = {}; } + if (src === void 0) { src = {}; } + Object.keys(src).forEach(function (key) { + if (typeof target[key] === 'undefined') + { target[key] = src[key]; } + else if (isObject(src[key]) && + isObject(target[key]) && + Object.keys(src[key]).length > 0) { + extend(target[key], src[key]); + } + }); + } + + var doc = typeof document !== 'undefined' ? document : {}; + var ssrDocument = { + body: {}, + addEventListener: function () { }, + removeEventListener: function () { }, + activeElement: { + blur: function () { }, + nodeName: '', + }, + querySelector: function () { + return null; + }, + querySelectorAll: function () { + return []; + }, + getElementById: function () { + return null; + }, + createEvent: function () { + return { + initEvent: function () { }, + }; + }, + createElement: function () { + return { + children: [], + childNodes: [], + style: {}, + setAttribute: function () { }, + getElementsByTagName: function () { + return []; + }, + }; + }, + createElementNS: function () { + return {}; + }, + importNode: function () { + return null; + }, + location: { + hash: '', + host: '', + hostname: '', + href: '', + origin: '', + pathname: '', + protocol: '', + search: '', + }, + }; + extend(doc, ssrDocument); + + var win = typeof window !== 'undefined' ? window : {}; + var ssrWindow = { + document: ssrDocument, + navigator: { + userAgent: '', + }, + location: { + hash: '', + host: '', + hostname: '', + href: '', + origin: '', + pathname: '', + protocol: '', + search: '', + }, + history: { + replaceState: function () { }, + pushState: function () { }, + go: function () { }, + back: function () { }, + }, + CustomEvent: function CustomEvent() { + return this; + }, + addEventListener: function () { }, + removeEventListener: function () { }, + getComputedStyle: function () { + return { + getPropertyValue: function () { + return ''; + }, + }; + }, + Image: function () { }, + Date: function () { }, + screen: {}, + setTimeout: function () { }, + clearTimeout: function () { }, + matchMedia: function () { + return {}; + }, + }; + extend(win, ssrWindow); + + /** + * Dom7 2.1.5 + * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API + * http://framework7.io/docs/dom.html + * + * Copyright 2020, Vladimir Kharlampidi + * The iDangero.us + * http://www.idangero.us/ + * + * Licensed under MIT + * + * Released on: May 15, 2020 + */ + + var Dom7 = function Dom7(arr) { + var self = this; + // Create array-like object + for (var i = 0; i < arr.length; i += 1) { + self[i] = arr[i]; + } + self.length = arr.length; + // Return collection with methods + return this; + }; + + function $(selector, context) { + var arr = []; + var i = 0; + if (selector && !context) { + if (selector instanceof Dom7) { + return selector; + } + } + if (selector) { + // String + if (typeof selector === 'string') { + var els; + var tempParent; + var html = selector.trim(); + if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) { + var toCreate = 'div'; + if (html.indexOf(':~]/)) { + // Pure ID selector + els = [doc.getElementById(selector.trim().split('#')[1])]; + } else { + // Other selectors + els = (context || doc).querySelectorAll(selector.trim()); + } + for (i = 0; i < els.length; i += 1) { + if (els[i]) { arr.push(els[i]); } + } + } + } else if (selector.nodeType || selector === win || selector === doc) { + // Node/element + arr.push(selector); + } else if (selector.length > 0 && selector[0].nodeType) { + // Array of elements or instance of Dom + for (i = 0; i < selector.length; i += 1) { + arr.push(selector[i]); + } + } + } + return new Dom7(arr); + } + + $.fn = Dom7.prototype; + $.Class = Dom7; + $.Dom7 = Dom7; + + function unique(arr) { + var uniqueArray = []; + for (var i = 0; i < arr.length; i += 1) { + if (uniqueArray.indexOf(arr[i]) === -1) { uniqueArray.push(arr[i]); } + } + return uniqueArray; + } + function toCamelCase(string) { + return string.toLowerCase().replace(/-(.)/g, function (match, group1) { return group1.toUpperCase(); }); + } + + function requestAnimationFrame(callback) { + if (win.requestAnimationFrame) { return win.requestAnimationFrame(callback); } + else if (win.webkitRequestAnimationFrame) { return win.webkitRequestAnimationFrame(callback); } + return win.setTimeout(callback, 1000 / 60); + } + function cancelAnimationFrame(id) { + if (win.cancelAnimationFrame) { return win.cancelAnimationFrame(id); } + else if (win.webkitCancelAnimationFrame) { return win.webkitCancelAnimationFrame(id); } + return win.clearTimeout(id); + } + + // Classes and attributes + function addClass(className) { + if (typeof className === 'undefined') { + return this; + } + var classes = className.split(' '); + for (var i = 0; i < classes.length; i += 1) { + for (var j = 0; j < this.length; j += 1) { + if (typeof this[j] !== 'undefined' && typeof this[j].classList !== 'undefined') { this[j].classList.add(classes[i]); } + } + } + return this; + } + function removeClass(className) { + var classes = className.split(' '); + for (var i = 0; i < classes.length; i += 1) { + for (var j = 0; j < this.length; j += 1) { + if (typeof this[j] !== 'undefined' && typeof this[j].classList !== 'undefined') { this[j].classList.remove(classes[i]); } + } + } + return this; + } + function hasClass(className) { + if (!this[0]) { return false; } + return this[0].classList.contains(className); + } + function toggleClass(className) { + var classes = className.split(' '); + for (var i = 0; i < classes.length; i += 1) { + for (var j = 0; j < this.length; j += 1) { + if (typeof this[j] !== 'undefined' && typeof this[j].classList !== 'undefined') { this[j].classList.toggle(classes[i]); } + } + } + return this; + } + function attr(attrs, value) { + var arguments$1 = arguments; + + if (arguments.length === 1 && typeof attrs === 'string') { + // Get attr + if (this[0]) { return this[0].getAttribute(attrs); } + return undefined; + } + + // Set attrs + for (var i = 0; i < this.length; i += 1) { + if (arguments$1.length === 2) { + // String + this[i].setAttribute(attrs, value); + } else { + // Object + // eslint-disable-next-line + for (var attrName in attrs) { + this[i][attrName] = attrs[attrName]; + this[i].setAttribute(attrName, attrs[attrName]); + } + } + } + return this; + } + // eslint-disable-next-line + function removeAttr(attr) { + for (var i = 0; i < this.length; i += 1) { + this[i].removeAttribute(attr); + } + return this; + } + // eslint-disable-next-line + function prop(props, value) { + var arguments$1 = arguments; + + if (arguments.length === 1 && typeof props === 'string') { + // Get prop + if (this[0]) { return this[0][props]; } + } else { + // Set props + for (var i = 0; i < this.length; i += 1) { + if (arguments$1.length === 2) { + // String + this[i][props] = value; + } else { + // Object + // eslint-disable-next-line + for (var propName in props) { + this[i][propName] = props[propName]; + } + } + } + return this; + } + } + function data(key, value) { + var el; + if (typeof value === 'undefined') { + el = this[0]; + // Get value + if (el) { + if (el.dom7ElementDataStorage && (key in el.dom7ElementDataStorage)) { + return el.dom7ElementDataStorage[key]; + } + + var dataKey = el.getAttribute(("data-" + key)); + if (dataKey) { + return dataKey; + } + return undefined; + } + return undefined; + } + + // Set value + for (var i = 0; i < this.length; i += 1) { + el = this[i]; + if (!el.dom7ElementDataStorage) { el.dom7ElementDataStorage = {}; } + el.dom7ElementDataStorage[key] = value; + } + return this; + } + function removeData(key) { + for (var i = 0; i < this.length; i += 1) { + var el = this[i]; + if (el.dom7ElementDataStorage && el.dom7ElementDataStorage[key]) { + el.dom7ElementDataStorage[key] = null; + delete el.dom7ElementDataStorage[key]; + } + } + } + function dataset() { + var el = this[0]; + if (!el) { return undefined; } + var dataset = {}; // eslint-disable-line + if (el.dataset) { + // eslint-disable-next-line + for (var dataKey in el.dataset) { + dataset[dataKey] = el.dataset[dataKey]; + } + } else { + for (var i = 0; i < el.attributes.length; i += 1) { + // eslint-disable-next-line + var attr = el.attributes[i]; + if (attr.name.indexOf('data-') >= 0) { + dataset[toCamelCase(attr.name.split('data-')[1])] = attr.value; + } + } + } + // eslint-disable-next-line + for (var key in dataset) { + if (dataset[key] === 'false') { dataset[key] = false; } + else if (dataset[key] === 'true') { dataset[key] = true; } + else if (parseFloat(dataset[key]) === dataset[key] * 1) { dataset[key] *= 1; } + } + return dataset; + } + function val(value) { + var dom = this; + if (typeof value === 'undefined') { + if (dom[0]) { + if (dom[0].multiple && dom[0].nodeName.toLowerCase() === 'select') { + var values = []; + for (var i = 0; i < dom[0].selectedOptions.length; i += 1) { + values.push(dom[0].selectedOptions[i].value); + } + return values; + } + return dom[0].value; + } + return undefined; + } + + for (var i$1 = 0; i$1 < dom.length; i$1 += 1) { + var el = dom[i$1]; + if (Array.isArray(value) && el.multiple && el.nodeName.toLowerCase() === 'select') { + for (var j = 0; j < el.options.length; j += 1) { + el.options[j].selected = value.indexOf(el.options[j].value) >= 0; + } + } else { + el.value = value; + } + } + return dom; + } + // Transforms + // eslint-disable-next-line + function transform(transform) { + for (var i = 0; i < this.length; i += 1) { + var elStyle = this[i].style; + elStyle.webkitTransform = transform; + elStyle.transform = transform; + } + return this; + } + function transition(duration) { + if (typeof duration !== 'string') { + duration = duration + "ms"; // eslint-disable-line + } + for (var i = 0; i < this.length; i += 1) { + var elStyle = this[i].style; + elStyle.webkitTransitionDuration = duration; + elStyle.transitionDuration = duration; + } + return this; + } + // Events + function on() { + var assign; + + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + var eventType = args[0]; + var targetSelector = args[1]; + var listener = args[2]; + var capture = args[3]; + if (typeof args[1] === 'function') { + (assign = args, eventType = assign[0], listener = assign[1], capture = assign[2]); + targetSelector = undefined; + } + if (!capture) { capture = false; } + + function handleLiveEvent(e) { + var target = e.target; + if (!target) { return; } + var eventData = e.target.dom7EventData || []; + if (eventData.indexOf(e) < 0) { + eventData.unshift(e); + } + if ($(target).is(targetSelector)) { listener.apply(target, eventData); } + else { + var parents = $(target).parents(); // eslint-disable-line + for (var k = 0; k < parents.length; k += 1) { + if ($(parents[k]).is(targetSelector)) { listener.apply(parents[k], eventData); } + } + } + } + function handleEvent(e) { + var eventData = e && e.target ? e.target.dom7EventData || [] : []; + if (eventData.indexOf(e) < 0) { + eventData.unshift(e); + } + listener.apply(this, eventData); + } + var events = eventType.split(' '); + var j; + for (var i = 0; i < this.length; i += 1) { + var el = this[i]; + if (!targetSelector) { + for (j = 0; j < events.length; j += 1) { + var event = events[j]; + if (!el.dom7Listeners) { el.dom7Listeners = {}; } + if (!el.dom7Listeners[event]) { el.dom7Listeners[event] = []; } + el.dom7Listeners[event].push({ + listener: listener, + proxyListener: handleEvent, + }); + el.addEventListener(event, handleEvent, capture); + } + } else { + // Live events + for (j = 0; j < events.length; j += 1) { + var event$1 = events[j]; + if (!el.dom7LiveListeners) { el.dom7LiveListeners = {}; } + if (!el.dom7LiveListeners[event$1]) { el.dom7LiveListeners[event$1] = []; } + el.dom7LiveListeners[event$1].push({ + listener: listener, + proxyListener: handleLiveEvent, + }); + el.addEventListener(event$1, handleLiveEvent, capture); + } + } + } + return this; + } + function off() { + var assign; + + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + var eventType = args[0]; + var targetSelector = args[1]; + var listener = args[2]; + var capture = args[3]; + if (typeof args[1] === 'function') { + (assign = args, eventType = assign[0], listener = assign[1], capture = assign[2]); + targetSelector = undefined; + } + if (!capture) { capture = false; } + + var events = eventType.split(' '); + for (var i = 0; i < events.length; i += 1) { + var event = events[i]; + for (var j = 0; j < this.length; j += 1) { + var el = this[j]; + var handlers = (void 0); + if (!targetSelector && el.dom7Listeners) { + handlers = el.dom7Listeners[event]; + } else if (targetSelector && el.dom7LiveListeners) { + handlers = el.dom7LiveListeners[event]; + } + if (handlers && handlers.length) { + for (var k = handlers.length - 1; k >= 0; k -= 1) { + var handler = handlers[k]; + if (listener && handler.listener === listener) { + el.removeEventListener(event, handler.proxyListener, capture); + handlers.splice(k, 1); + } else if (listener && handler.listener && handler.listener.dom7proxy && handler.listener.dom7proxy === listener) { + el.removeEventListener(event, handler.proxyListener, capture); + handlers.splice(k, 1); + } else if (!listener) { + el.removeEventListener(event, handler.proxyListener, capture); + handlers.splice(k, 1); + } + } + } + } + } + return this; + } + function once() { + var assign; + + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + var dom = this; + var eventName = args[0]; + var targetSelector = args[1]; + var listener = args[2]; + var capture = args[3]; + if (typeof args[1] === 'function') { + (assign = args, eventName = assign[0], listener = assign[1], capture = assign[2]); + targetSelector = undefined; + } + function onceHandler() { + var eventArgs = [], len = arguments.length; + while ( len-- ) eventArgs[ len ] = arguments[ len ]; + + listener.apply(this, eventArgs); + dom.off(eventName, targetSelector, onceHandler, capture); + if (onceHandler.dom7proxy) { + delete onceHandler.dom7proxy; + } + } + onceHandler.dom7proxy = listener; + return dom.on(eventName, targetSelector, onceHandler, capture); + } + function trigger() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + var events = args[0].split(' '); + var eventData = args[1]; + for (var i = 0; i < events.length; i += 1) { + var event = events[i]; + for (var j = 0; j < this.length; j += 1) { + var el = this[j]; + var evt = (void 0); + try { + evt = new win.CustomEvent(event, { + detail: eventData, + bubbles: true, + cancelable: true, + }); + } catch (e) { + evt = doc.createEvent('Event'); + evt.initEvent(event, true, true); + evt.detail = eventData; + } + // eslint-disable-next-line + el.dom7EventData = args.filter(function (data, dataIndex) { return dataIndex > 0; }); + el.dispatchEvent(evt); + el.dom7EventData = []; + delete el.dom7EventData; + } + } + return this; + } + function transitionEnd(callback) { + var events = ['webkitTransitionEnd', 'transitionend']; + var dom = this; + var i; + function fireCallBack(e) { + /* jshint validthis:true */ + if (e.target !== this) { return; } + callback.call(this, e); + for (i = 0; i < events.length; i += 1) { + dom.off(events[i], fireCallBack); + } + } + if (callback) { + for (i = 0; i < events.length; i += 1) { + dom.on(events[i], fireCallBack); + } + } + return this; + } + function animationEnd(callback) { + var events = ['webkitAnimationEnd', 'animationend']; + var dom = this; + var i; + function fireCallBack(e) { + if (e.target !== this) { return; } + callback.call(this, e); + for (i = 0; i < events.length; i += 1) { + dom.off(events[i], fireCallBack); + } + } + if (callback) { + for (i = 0; i < events.length; i += 1) { + dom.on(events[i], fireCallBack); + } + } + return this; + } + // Sizing/Styles + function width() { + if (this[0] === win) { + return win.innerWidth; + } + + if (this.length > 0) { + return parseFloat(this.css('width')); + } + + return null; + } + function outerWidth(includeMargins) { + if (this.length > 0) { + if (includeMargins) { + // eslint-disable-next-line + var styles = this.styles(); + return this[0].offsetWidth + parseFloat(styles.getPropertyValue('margin-right')) + parseFloat(styles.getPropertyValue('margin-left')); + } + return this[0].offsetWidth; + } + return null; + } + function height() { + if (this[0] === win) { + return win.innerHeight; + } + + if (this.length > 0) { + return parseFloat(this.css('height')); + } + + return null; + } + function outerHeight(includeMargins) { + if (this.length > 0) { + if (includeMargins) { + // eslint-disable-next-line + var styles = this.styles(); + return this[0].offsetHeight + parseFloat(styles.getPropertyValue('margin-top')) + parseFloat(styles.getPropertyValue('margin-bottom')); + } + return this[0].offsetHeight; + } + return null; + } + function offset() { + if (this.length > 0) { + var el = this[0]; + var box = el.getBoundingClientRect(); + var body = doc.body; + var clientTop = el.clientTop || body.clientTop || 0; + var clientLeft = el.clientLeft || body.clientLeft || 0; + var scrollTop = el === win ? win.scrollY : el.scrollTop; + var scrollLeft = el === win ? win.scrollX : el.scrollLeft; + return { + top: (box.top + scrollTop) - clientTop, + left: (box.left + scrollLeft) - clientLeft, + }; + } + + return null; + } + function hide() { + for (var i = 0; i < this.length; i += 1) { + this[i].style.display = 'none'; + } + return this; + } + function show() { + for (var i = 0; i < this.length; i += 1) { + var el = this[i]; + if (el.style.display === 'none') { + el.style.display = ''; + } + if (win.getComputedStyle(el, null).getPropertyValue('display') === 'none') { + // Still not visible + el.style.display = 'block'; + } + } + return this; + } + function styles() { + if (this[0]) { return win.getComputedStyle(this[0], null); } + return {}; + } + function css(props, value) { + var i; + if (arguments.length === 1) { + if (typeof props === 'string') { + if (this[0]) { return win.getComputedStyle(this[0], null).getPropertyValue(props); } + } else { + for (i = 0; i < this.length; i += 1) { + // eslint-disable-next-line + for (var prop in props) { + this[i].style[prop] = props[prop]; + } + } + return this; + } + } + if (arguments.length === 2 && typeof props === 'string') { + for (i = 0; i < this.length; i += 1) { + this[i].style[props] = value; + } + return this; + } + return this; + } + + // Dom manipulation + function toArray() { + var arr = []; + for (var i = 0; i < this.length; i += 1) { + arr.push(this[i]); + } + return arr; + } + // Iterate over the collection passing elements to `callback` + function each(callback) { + // Don't bother continuing without a callback + if (!callback) { return this; } + // Iterate over the current collection + for (var i = 0; i < this.length; i += 1) { + // If the callback returns false + if (callback.call(this[i], i, this[i]) === false) { + // End the loop early + return this; + } + } + // Return `this` to allow chained DOM operations + return this; + } + function forEach(callback) { + // Don't bother continuing without a callback + if (!callback) { return this; } + // Iterate over the current collection + for (var i = 0; i < this.length; i += 1) { + // If the callback returns false + if (callback.call(this[i], this[i], i) === false) { + // End the loop early + return this; + } + } + // Return `this` to allow chained DOM operations + return this; + } + function filter(callback) { + var matchedItems = []; + var dom = this; + for (var i = 0; i < dom.length; i += 1) { + if (callback.call(dom[i], i, dom[i])) { matchedItems.push(dom[i]); } + } + return new Dom7(matchedItems); + } + function map(callback) { + var modifiedItems = []; + var dom = this; + for (var i = 0; i < dom.length; i += 1) { + modifiedItems.push(callback.call(dom[i], i, dom[i])); + } + return new Dom7(modifiedItems); + } + // eslint-disable-next-line + function html(html) { + if (typeof html === 'undefined') { + return this[0] ? this[0].innerHTML : undefined; + } + + for (var i = 0; i < this.length; i += 1) { + this[i].innerHTML = html; + } + return this; + } + // eslint-disable-next-line + function text(text) { + if (typeof text === 'undefined') { + if (this[0]) { + return this[0].textContent.trim(); + } + return null; + } + + for (var i = 0; i < this.length; i += 1) { + this[i].textContent = text; + } + return this; + } + function is(selector) { + var el = this[0]; + var compareWith; + var i; + if (!el || typeof selector === 'undefined') { return false; } + if (typeof selector === 'string') { + if (el.matches) { return el.matches(selector); } + else if (el.webkitMatchesSelector) { return el.webkitMatchesSelector(selector); } + else if (el.msMatchesSelector) { return el.msMatchesSelector(selector); } + + compareWith = $(selector); + for (i = 0; i < compareWith.length; i += 1) { + if (compareWith[i] === el) { return true; } + } + return false; + } else if (selector === doc) { return el === doc; } + else if (selector === win) { return el === win; } + + if (selector.nodeType || selector instanceof Dom7) { + compareWith = selector.nodeType ? [selector] : selector; + for (i = 0; i < compareWith.length; i += 1) { + if (compareWith[i] === el) { return true; } + } + return false; + } + return false; + } + function indexOf(el) { + for (var i = 0; i < this.length; i += 1) { + if (this[i] === el) { return i; } + } + return -1; + } + function index() { + var child = this[0]; + var i; + if (child) { + i = 0; + // eslint-disable-next-line + while ((child = child.previousSibling) !== null) { + if (child.nodeType === 1) { i += 1; } + } + return i; + } + return undefined; + } + // eslint-disable-next-line + function eq(index) { + if (typeof index === 'undefined') { return this; } + var length = this.length; + var returnIndex; + if (index > length - 1) { + return new Dom7([]); + } + if (index < 0) { + returnIndex = length + index; + if (returnIndex < 0) { return new Dom7([]); } + return new Dom7([this[returnIndex]]); + } + return new Dom7([this[index]]); + } + function append() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + var newChild; + + for (var k = 0; k < args.length; k += 1) { + newChild = args[k]; + for (var i = 0; i < this.length; i += 1) { + if (typeof newChild === 'string') { + var tempDiv = doc.createElement('div'); + tempDiv.innerHTML = newChild; + while (tempDiv.firstChild) { + this[i].appendChild(tempDiv.firstChild); + } + } else if (newChild instanceof Dom7) { + for (var j = 0; j < newChild.length; j += 1) { + this[i].appendChild(newChild[j]); + } + } else { + this[i].appendChild(newChild); + } + } + } + + return this; + } + // eslint-disable-next-line + function appendTo(parent) { + $(parent).append(this); + return this; + } + function prepend(newChild) { + var i; + var j; + for (i = 0; i < this.length; i += 1) { + if (typeof newChild === 'string') { + var tempDiv = doc.createElement('div'); + tempDiv.innerHTML = newChild; + for (j = tempDiv.childNodes.length - 1; j >= 0; j -= 1) { + this[i].insertBefore(tempDiv.childNodes[j], this[i].childNodes[0]); + } + } else if (newChild instanceof Dom7) { + for (j = 0; j < newChild.length; j += 1) { + this[i].insertBefore(newChild[j], this[i].childNodes[0]); + } + } else { + this[i].insertBefore(newChild, this[i].childNodes[0]); + } + } + return this; + } + // eslint-disable-next-line + function prependTo(parent) { + $(parent).prepend(this); + return this; + } + function insertBefore(selector) { + var before = $(selector); + for (var i = 0; i < this.length; i += 1) { + if (before.length === 1) { + before[0].parentNode.insertBefore(this[i], before[0]); + } else if (before.length > 1) { + for (var j = 0; j < before.length; j += 1) { + before[j].parentNode.insertBefore(this[i].cloneNode(true), before[j]); + } + } + } + } + function insertAfter(selector) { + var after = $(selector); + for (var i = 0; i < this.length; i += 1) { + if (after.length === 1) { + after[0].parentNode.insertBefore(this[i], after[0].nextSibling); + } else if (after.length > 1) { + for (var j = 0; j < after.length; j += 1) { + after[j].parentNode.insertBefore(this[i].cloneNode(true), after[j].nextSibling); + } + } + } + } + function next(selector) { + if (this.length > 0) { + if (selector) { + if (this[0].nextElementSibling && $(this[0].nextElementSibling).is(selector)) { + return new Dom7([this[0].nextElementSibling]); + } + return new Dom7([]); + } + + if (this[0].nextElementSibling) { return new Dom7([this[0].nextElementSibling]); } + return new Dom7([]); + } + return new Dom7([]); + } + function nextAll(selector) { + var nextEls = []; + var el = this[0]; + if (!el) { return new Dom7([]); } + while (el.nextElementSibling) { + var next = el.nextElementSibling; // eslint-disable-line + if (selector) { + if ($(next).is(selector)) { nextEls.push(next); } + } else { nextEls.push(next); } + el = next; + } + return new Dom7(nextEls); + } + function prev(selector) { + if (this.length > 0) { + var el = this[0]; + if (selector) { + if (el.previousElementSibling && $(el.previousElementSibling).is(selector)) { + return new Dom7([el.previousElementSibling]); + } + return new Dom7([]); + } + + if (el.previousElementSibling) { return new Dom7([el.previousElementSibling]); } + return new Dom7([]); + } + return new Dom7([]); + } + function prevAll(selector) { + var prevEls = []; + var el = this[0]; + if (!el) { return new Dom7([]); } + while (el.previousElementSibling) { + var prev = el.previousElementSibling; // eslint-disable-line + if (selector) { + if ($(prev).is(selector)) { prevEls.push(prev); } + } else { prevEls.push(prev); } + el = prev; + } + return new Dom7(prevEls); + } + function siblings(selector) { + return this.nextAll(selector).add(this.prevAll(selector)); + } + function parent(selector) { + var parents = []; // eslint-disable-line + for (var i = 0; i < this.length; i += 1) { + if (this[i].parentNode !== null) { + if (selector) { + if ($(this[i].parentNode).is(selector)) { parents.push(this[i].parentNode); } + } else { + parents.push(this[i].parentNode); + } + } + } + return $(unique(parents)); + } + function parents(selector) { + var parents = []; // eslint-disable-line + for (var i = 0; i < this.length; i += 1) { + var parent = this[i].parentNode; // eslint-disable-line + while (parent) { + if (selector) { + if ($(parent).is(selector)) { parents.push(parent); } + } else { + parents.push(parent); + } + parent = parent.parentNode; + } + } + return $(unique(parents)); + } + function closest(selector) { + var closest = this; // eslint-disable-line + if (typeof selector === 'undefined') { + return new Dom7([]); + } + if (!closest.is(selector)) { + closest = closest.parents(selector).eq(0); + } + return closest; + } + function find(selector) { + var foundElements = []; + for (var i = 0; i < this.length; i += 1) { + var found = this[i].querySelectorAll(selector); + for (var j = 0; j < found.length; j += 1) { + foundElements.push(found[j]); + } + } + return new Dom7(foundElements); + } + function children(selector) { + var children = []; // eslint-disable-line + for (var i = 0; i < this.length; i += 1) { + var childNodes = this[i].childNodes; + + for (var j = 0; j < childNodes.length; j += 1) { + if (!selector) { + if (childNodes[j].nodeType === 1) { children.push(childNodes[j]); } + } else if (childNodes[j].nodeType === 1 && $(childNodes[j]).is(selector)) { + children.push(childNodes[j]); + } + } + } + return new Dom7(unique(children)); + } + function remove() { + for (var i = 0; i < this.length; i += 1) { + if (this[i].parentNode) { this[i].parentNode.removeChild(this[i]); } + } + return this; + } + function detach() { + return this.remove(); + } + function add() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + var dom = this; + var i; + var j; + for (i = 0; i < args.length; i += 1) { + var toAdd = $(args[i]); + for (j = 0; j < toAdd.length; j += 1) { + dom[dom.length] = toAdd[j]; + dom.length += 1; + } + } + return dom; + } + function empty() { + for (var i = 0; i < this.length; i += 1) { + var el = this[i]; + if (el.nodeType === 1) { + for (var j = 0; j < el.childNodes.length; j += 1) { + if (el.childNodes[j].parentNode) { + el.childNodes[j].parentNode.removeChild(el.childNodes[j]); + } + } + el.textContent = ''; + } + } + return this; + } + + var Methods = /*#__PURE__*/Object.freeze({ + addClass: addClass, + removeClass: removeClass, + hasClass: hasClass, + toggleClass: toggleClass, + attr: attr, + removeAttr: removeAttr, + prop: prop, + data: data, + removeData: removeData, + dataset: dataset, + val: val, + transform: transform, + transition: transition, + on: on, + off: off, + once: once, + trigger: trigger, + transitionEnd: transitionEnd, + animationEnd: animationEnd, + width: width, + outerWidth: outerWidth, + height: height, + outerHeight: outerHeight, + offset: offset, + hide: hide, + show: show, + styles: styles, + css: css, + toArray: toArray, + each: each, + forEach: forEach, + filter: filter, + map: map, + html: html, + text: text, + is: is, + indexOf: indexOf, + index: index, + eq: eq, + append: append, + appendTo: appendTo, + prepend: prepend, + prependTo: prependTo, + insertBefore: insertBefore, + insertAfter: insertAfter, + next: next, + nextAll: nextAll, + prev: prev, + prevAll: prevAll, + siblings: siblings, + parent: parent, + parents: parents, + closest: closest, + find: find, + children: children, + remove: remove, + detach: detach, + add: add, + empty: empty + }); + + function scrollTo() { + var assign; + + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + var left = args[0]; + var top = args[1]; + var duration = args[2]; + var easing = args[3]; + var callback = args[4]; + if (args.length === 4 && typeof easing === 'function') { + callback = easing; + (assign = args, left = assign[0], top = assign[1], duration = assign[2], callback = assign[3], easing = assign[4]); + } + if (typeof easing === 'undefined') { easing = 'swing'; } + + return this.each(function animate() { + var el = this; + var currentTop; + var currentLeft; + var maxTop; + var maxLeft; + var newTop; + var newLeft; + var scrollTop; // eslint-disable-line + var scrollLeft; // eslint-disable-line + var animateTop = top > 0 || top === 0; + var animateLeft = left > 0 || left === 0; + if (typeof easing === 'undefined') { + easing = 'swing'; + } + if (animateTop) { + currentTop = el.scrollTop; + if (!duration) { + el.scrollTop = top; + } + } + if (animateLeft) { + currentLeft = el.scrollLeft; + if (!duration) { + el.scrollLeft = left; + } + } + if (!duration) { return; } + if (animateTop) { + maxTop = el.scrollHeight - el.offsetHeight; + newTop = Math.max(Math.min(top, maxTop), 0); + } + if (animateLeft) { + maxLeft = el.scrollWidth - el.offsetWidth; + newLeft = Math.max(Math.min(left, maxLeft), 0); + } + var startTime = null; + if (animateTop && newTop === currentTop) { animateTop = false; } + if (animateLeft && newLeft === currentLeft) { animateLeft = false; } + function render(time) { + if ( time === void 0 ) time = new Date().getTime(); + + if (startTime === null) { + startTime = time; + } + var progress = Math.max(Math.min((time - startTime) / duration, 1), 0); + var easeProgress = easing === 'linear' ? progress : (0.5 - (Math.cos(progress * Math.PI) / 2)); + var done; + if (animateTop) { scrollTop = currentTop + (easeProgress * (newTop - currentTop)); } + if (animateLeft) { scrollLeft = currentLeft + (easeProgress * (newLeft - currentLeft)); } + if (animateTop && newTop > currentTop && scrollTop >= newTop) { + el.scrollTop = newTop; + done = true; + } + if (animateTop && newTop < currentTop && scrollTop <= newTop) { + el.scrollTop = newTop; + done = true; + } + if (animateLeft && newLeft > currentLeft && scrollLeft >= newLeft) { + el.scrollLeft = newLeft; + done = true; + } + if (animateLeft && newLeft < currentLeft && scrollLeft <= newLeft) { + el.scrollLeft = newLeft; + done = true; + } + + if (done) { + if (callback) { callback(); } + return; + } + if (animateTop) { el.scrollTop = scrollTop; } + if (animateLeft) { el.scrollLeft = scrollLeft; } + requestAnimationFrame(render); + } + requestAnimationFrame(render); + }); + } + // scrollTop(top, duration, easing, callback) { + function scrollTop() { + var assign; + + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + var top = args[0]; + var duration = args[1]; + var easing = args[2]; + var callback = args[3]; + if (args.length === 3 && typeof easing === 'function') { + (assign = args, top = assign[0], duration = assign[1], callback = assign[2], easing = assign[3]); + } + var dom = this; + if (typeof top === 'undefined') { + if (dom.length > 0) { return dom[0].scrollTop; } + return null; + } + return dom.scrollTo(undefined, top, duration, easing, callback); + } + function scrollLeft() { + var assign; + + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + var left = args[0]; + var duration = args[1]; + var easing = args[2]; + var callback = args[3]; + if (args.length === 3 && typeof easing === 'function') { + (assign = args, left = assign[0], duration = assign[1], callback = assign[2], easing = assign[3]); + } + var dom = this; + if (typeof left === 'undefined') { + if (dom.length > 0) { return dom[0].scrollLeft; } + return null; + } + return dom.scrollTo(left, undefined, duration, easing, callback); + } + + var Scroll = /*#__PURE__*/Object.freeze({ + scrollTo: scrollTo, + scrollTop: scrollTop, + scrollLeft: scrollLeft + }); + + function animate(initialProps, initialParams) { + var els = this; + var a = { + props: Object.assign({}, initialProps), + params: Object.assign({ + duration: 300, + easing: 'swing', // or 'linear' + /* Callbacks + begin(elements) + complete(elements) + progress(elements, complete, remaining, start, tweenValue) + */ + }, initialParams), + + elements: els, + animating: false, + que: [], + + easingProgress: function easingProgress(easing, progress) { + if (easing === 'swing') { + return 0.5 - (Math.cos(progress * Math.PI) / 2); + } + if (typeof easing === 'function') { + return easing(progress); + } + return progress; + }, + stop: function stop() { + if (a.frameId) { + cancelAnimationFrame(a.frameId); + } + a.animating = false; + a.elements.each(function (index, el) { + var element = el; + delete element.dom7AnimateInstance; + }); + a.que = []; + }, + done: function done(complete) { + a.animating = false; + a.elements.each(function (index, el) { + var element = el; + delete element.dom7AnimateInstance; + }); + if (complete) { complete(els); } + if (a.que.length > 0) { + var que = a.que.shift(); + a.animate(que[0], que[1]); + } + }, + animate: function animate(props, params) { + if (a.animating) { + a.que.push([props, params]); + return a; + } + var elements = []; + + // Define & Cache Initials & Units + a.elements.each(function (index, el) { + var initialFullValue; + var initialValue; + var unit; + var finalValue; + var finalFullValue; + + if (!el.dom7AnimateInstance) { a.elements[index].dom7AnimateInstance = a; } + + elements[index] = { + container: el, + }; + Object.keys(props).forEach(function (prop) { + initialFullValue = win.getComputedStyle(el, null).getPropertyValue(prop).replace(',', '.'); + initialValue = parseFloat(initialFullValue); + unit = initialFullValue.replace(initialValue, ''); + finalValue = parseFloat(props[prop]); + finalFullValue = props[prop] + unit; + elements[index][prop] = { + initialFullValue: initialFullValue, + initialValue: initialValue, + unit: unit, + finalValue: finalValue, + finalFullValue: finalFullValue, + currentValue: initialValue, + }; + }); + }); + + var startTime = null; + var time; + var elementsDone = 0; + var propsDone = 0; + var done; + var began = false; + + a.animating = true; + + function render() { + time = new Date().getTime(); + var progress; + var easeProgress; + // let el; + if (!began) { + began = true; + if (params.begin) { params.begin(els); } + } + if (startTime === null) { + startTime = time; + } + if (params.progress) { + // eslint-disable-next-line + params.progress(els, Math.max(Math.min((time - startTime) / params.duration, 1), 0), ((startTime + params.duration) - time < 0 ? 0 : (startTime + params.duration) - time), startTime); + } + + elements.forEach(function (element) { + var el = element; + if (done || el.done) { return; } + Object.keys(props).forEach(function (prop) { + if (done || el.done) { return; } + progress = Math.max(Math.min((time - startTime) / params.duration, 1), 0); + easeProgress = a.easingProgress(params.easing, progress); + var ref = el[prop]; + var initialValue = ref.initialValue; + var finalValue = ref.finalValue; + var unit = ref.unit; + el[prop].currentValue = initialValue + (easeProgress * (finalValue - initialValue)); + var currentValue = el[prop].currentValue; + + if ( + (finalValue > initialValue && currentValue >= finalValue) || + (finalValue < initialValue && currentValue <= finalValue)) { + el.container.style[prop] = finalValue + unit; + propsDone += 1; + if (propsDone === Object.keys(props).length) { + el.done = true; + elementsDone += 1; + } + if (elementsDone === elements.length) { + done = true; + } + } + if (done) { + a.done(params.complete); + return; + } + el.container.style[prop] = currentValue + unit; + }); + }); + if (done) { return; } + // Then call + a.frameId = requestAnimationFrame(render); + } + a.frameId = requestAnimationFrame(render); + return a; + }, + }; + + if (a.elements.length === 0) { + return els; + } + + var animateInstance; + for (var i = 0; i < a.elements.length; i += 1) { + if (a.elements[i].dom7AnimateInstance) { + animateInstance = a.elements[i].dom7AnimateInstance; + } else { a.elements[i].dom7AnimateInstance = a; } + } + if (!animateInstance) { + animateInstance = a; + } + + if (initialProps === 'stop') { + animateInstance.stop(); + } else { + animateInstance.animate(a.props, a.params); + } + + return els; + } + + function stop() { + var els = this; + for (var i = 0; i < els.length; i += 1) { + if (els[i].dom7AnimateInstance) { + els[i].dom7AnimateInstance.stop(); + } + } + } + + var Animate = /*#__PURE__*/Object.freeze({ + animate: animate, + stop: stop + }); + + var noTrigger = ('resize scroll').split(' '); + function eventShortcut(name) { + var ref; + + var args = [], len = arguments.length - 1; + while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ]; + if (typeof args[0] === 'undefined') { + for (var i = 0; i < this.length; i += 1) { + if (noTrigger.indexOf(name) < 0) { + if (name in this[i]) { this[i][name](); } + else { + $(this[i]).trigger(name); + } + } + } + return this; + } + return (ref = this).on.apply(ref, [ name ].concat( args )); + } + + function click() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return eventShortcut.bind(this).apply(void 0, [ 'click' ].concat( args )); + } + function blur() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return eventShortcut.bind(this).apply(void 0, [ 'blur' ].concat( args )); + } + function focus() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return eventShortcut.bind(this).apply(void 0, [ 'focus' ].concat( args )); + } + function focusin() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return eventShortcut.bind(this).apply(void 0, [ 'focusin' ].concat( args )); + } + function focusout() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return eventShortcut.bind(this).apply(void 0, [ 'focusout' ].concat( args )); + } + function keyup() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return eventShortcut.bind(this).apply(void 0, [ 'keyup' ].concat( args )); + } + function keydown() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return eventShortcut.bind(this).apply(void 0, [ 'keydown' ].concat( args )); + } + function keypress() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return eventShortcut.bind(this).apply(void 0, [ 'keypress' ].concat( args )); + } + function submit() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return eventShortcut.bind(this).apply(void 0, [ 'submit' ].concat( args )); + } + function change() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return eventShortcut.bind(this).apply(void 0, [ 'change' ].concat( args )); + } + function mousedown() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return eventShortcut.bind(this).apply(void 0, [ 'mousedown' ].concat( args )); + } + function mousemove() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return eventShortcut.bind(this).apply(void 0, [ 'mousemove' ].concat( args )); + } + function mouseup() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return eventShortcut.bind(this).apply(void 0, [ 'mouseup' ].concat( args )); + } + function mouseenter() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return eventShortcut.bind(this).apply(void 0, [ 'mouseenter' ].concat( args )); + } + function mouseleave() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return eventShortcut.bind(this).apply(void 0, [ 'mouseleave' ].concat( args )); + } + function mouseout() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return eventShortcut.bind(this).apply(void 0, [ 'mouseout' ].concat( args )); + } + function mouseover() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return eventShortcut.bind(this).apply(void 0, [ 'mouseover' ].concat( args )); + } + function touchstart() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return eventShortcut.bind(this).apply(void 0, [ 'touchstart' ].concat( args )); + } + function touchend() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return eventShortcut.bind(this).apply(void 0, [ 'touchend' ].concat( args )); + } + function touchmove() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return eventShortcut.bind(this).apply(void 0, [ 'touchmove' ].concat( args )); + } + function resize() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return eventShortcut.bind(this).apply(void 0, [ 'resize' ].concat( args )); + } + function scroll() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return eventShortcut.bind(this).apply(void 0, [ 'scroll' ].concat( args )); + } + + var eventShortcuts = /*#__PURE__*/Object.freeze({ + click: click, + blur: blur, + focus: focus, + focusin: focusin, + focusout: focusout, + keyup: keyup, + keydown: keydown, + keypress: keypress, + submit: submit, + change: change, + mousedown: mousedown, + mousemove: mousemove, + mouseup: mouseup, + mouseenter: mouseenter, + mouseleave: mouseleave, + mouseout: mouseout, + mouseover: mouseover, + touchstart: touchstart, + touchend: touchend, + touchmove: touchmove, + resize: resize, + scroll: scroll + }); + + [Methods, Scroll, Animate, eventShortcuts].forEach(function (group) { + Object.keys(group).forEach(function (methodName) { + $.fn[methodName] = group[methodName]; + }); + }); + + /* eslint no-control-regex: "off" */ + + // Remove Diacritics + var defaultDiacriticsRemovalap = [ + { base: 'A', letters: '\u0041\u24B6\uFF21\u00C0\u00C1\u00C2\u1EA6\u1EA4\u1EAA\u1EA8\u00C3\u0100\u0102\u1EB0\u1EAE\u1EB4\u1EB2\u0226\u01E0\u00C4\u01DE\u1EA2\u00C5\u01FA\u01CD\u0200\u0202\u1EA0\u1EAC\u1EB6\u1E00\u0104\u023A\u2C6F' }, + { base: 'AA', letters: '\uA732' }, + { base: 'AE', letters: '\u00C6\u01FC\u01E2' }, + { base: 'AO', letters: '\uA734' }, + { base: 'AU', letters: '\uA736' }, + { base: 'AV', letters: '\uA738\uA73A' }, + { base: 'AY', letters: '\uA73C' }, + { base: 'B', letters: '\u0042\u24B7\uFF22\u1E02\u1E04\u1E06\u0243\u0182\u0181' }, + { base: 'C', letters: '\u0043\u24B8\uFF23\u0106\u0108\u010A\u010C\u00C7\u1E08\u0187\u023B\uA73E' }, + { base: 'D', letters: '\u0044\u24B9\uFF24\u1E0A\u010E\u1E0C\u1E10\u1E12\u1E0E\u0110\u018B\u018A\u0189\uA779' }, + { base: 'DZ', letters: '\u01F1\u01C4' }, + { base: 'Dz', letters: '\u01F2\u01C5' }, + { base: 'E', letters: '\u0045\u24BA\uFF25\u00C8\u00C9\u00CA\u1EC0\u1EBE\u1EC4\u1EC2\u1EBC\u0112\u1E14\u1E16\u0114\u0116\u00CB\u1EBA\u011A\u0204\u0206\u1EB8\u1EC6\u0228\u1E1C\u0118\u1E18\u1E1A\u0190\u018E' }, + { base: 'F', letters: '\u0046\u24BB\uFF26\u1E1E\u0191\uA77B' }, + { base: 'G', letters: '\u0047\u24BC\uFF27\u01F4\u011C\u1E20\u011E\u0120\u01E6\u0122\u01E4\u0193\uA7A0\uA77D\uA77E' }, + { base: 'H', letters: '\u0048\u24BD\uFF28\u0124\u1E22\u1E26\u021E\u1E24\u1E28\u1E2A\u0126\u2C67\u2C75\uA78D' }, + { base: 'I', letters: '\u0049\u24BE\uFF29\u00CC\u00CD\u00CE\u0128\u012A\u012C\u0130\u00CF\u1E2E\u1EC8\u01CF\u0208\u020A\u1ECA\u012E\u1E2C\u0197' }, + { base: 'J', letters: '\u004A\u24BF\uFF2A\u0134\u0248' }, + { base: 'K', letters: '\u004B\u24C0\uFF2B\u1E30\u01E8\u1E32\u0136\u1E34\u0198\u2C69\uA740\uA742\uA744\uA7A2' }, + { base: 'L', letters: '\u004C\u24C1\uFF2C\u013F\u0139\u013D\u1E36\u1E38\u013B\u1E3C\u1E3A\u0141\u023D\u2C62\u2C60\uA748\uA746\uA780' }, + { base: 'LJ', letters: '\u01C7' }, + { base: 'Lj', letters: '\u01C8' }, + { base: 'M', letters: '\u004D\u24C2\uFF2D\u1E3E\u1E40\u1E42\u2C6E\u019C' }, + { base: 'N', letters: '\u004E\u24C3\uFF2E\u01F8\u0143\u00D1\u1E44\u0147\u1E46\u0145\u1E4A\u1E48\u0220\u019D\uA790\uA7A4' }, + { base: 'NJ', letters: '\u01CA' }, + { base: 'Nj', letters: '\u01CB' }, + { base: 'O', letters: '\u004F\u24C4\uFF2F\u00D2\u00D3\u00D4\u1ED2\u1ED0\u1ED6\u1ED4\u00D5\u1E4C\u022C\u1E4E\u014C\u1E50\u1E52\u014E\u022E\u0230\u00D6\u022A\u1ECE\u0150\u01D1\u020C\u020E\u01A0\u1EDC\u1EDA\u1EE0\u1EDE\u1EE2\u1ECC\u1ED8\u01EA\u01EC\u00D8\u01FE\u0186\u019F\uA74A\uA74C' }, + { base: 'OI', letters: '\u01A2' }, + { base: 'OO', letters: '\uA74E' }, + { base: 'OU', letters: '\u0222' }, + { base: 'OE', letters: '\u008C\u0152' }, + { base: 'oe', letters: '\u009C\u0153' }, + { base: 'P', letters: '\u0050\u24C5\uFF30\u1E54\u1E56\u01A4\u2C63\uA750\uA752\uA754' }, + { base: 'Q', letters: '\u0051\u24C6\uFF31\uA756\uA758\u024A' }, + { base: 'R', letters: '\u0052\u24C7\uFF32\u0154\u1E58\u0158\u0210\u0212\u1E5A\u1E5C\u0156\u1E5E\u024C\u2C64\uA75A\uA7A6\uA782' }, + { base: 'S', letters: '\u0053\u24C8\uFF33\u1E9E\u015A\u1E64\u015C\u1E60\u0160\u1E66\u1E62\u1E68\u0218\u015E\u2C7E\uA7A8\uA784' }, + { base: 'T', letters: '\u0054\u24C9\uFF34\u1E6A\u0164\u1E6C\u021A\u0162\u1E70\u1E6E\u0166\u01AC\u01AE\u023E\uA786' }, + { base: 'TZ', letters: '\uA728' }, + { base: 'U', letters: '\u0055\u24CA\uFF35\u00D9\u00DA\u00DB\u0168\u1E78\u016A\u1E7A\u016C\u00DC\u01DB\u01D7\u01D5\u01D9\u1EE6\u016E\u0170\u01D3\u0214\u0216\u01AF\u1EEA\u1EE8\u1EEE\u1EEC\u1EF0\u1EE4\u1E72\u0172\u1E76\u1E74\u0244' }, + { base: 'V', letters: '\u0056\u24CB\uFF36\u1E7C\u1E7E\u01B2\uA75E\u0245' }, + { base: 'VY', letters: '\uA760' }, + { base: 'W', letters: '\u0057\u24CC\uFF37\u1E80\u1E82\u0174\u1E86\u1E84\u1E88\u2C72' }, + { base: 'X', letters: '\u0058\u24CD\uFF38\u1E8A\u1E8C' }, + { base: 'Y', letters: '\u0059\u24CE\uFF39\u1EF2\u00DD\u0176\u1EF8\u0232\u1E8E\u0178\u1EF6\u1EF4\u01B3\u024E\u1EFE' }, + { base: 'Z', letters: '\u005A\u24CF\uFF3A\u0179\u1E90\u017B\u017D\u1E92\u1E94\u01B5\u0224\u2C7F\u2C6B\uA762' }, + { base: 'a', letters: '\u0061\u24D0\uFF41\u1E9A\u00E0\u00E1\u00E2\u1EA7\u1EA5\u1EAB\u1EA9\u00E3\u0101\u0103\u1EB1\u1EAF\u1EB5\u1EB3\u0227\u01E1\u00E4\u01DF\u1EA3\u00E5\u01FB\u01CE\u0201\u0203\u1EA1\u1EAD\u1EB7\u1E01\u0105\u2C65\u0250' }, + { base: 'aa', letters: '\uA733' }, + { base: 'ae', letters: '\u00E6\u01FD\u01E3' }, + { base: 'ao', letters: '\uA735' }, + { base: 'au', letters: '\uA737' }, + { base: 'av', letters: '\uA739\uA73B' }, + { base: 'ay', letters: '\uA73D' }, + { base: 'b', letters: '\u0062\u24D1\uFF42\u1E03\u1E05\u1E07\u0180\u0183\u0253' }, + { base: 'c', letters: '\u0063\u24D2\uFF43\u0107\u0109\u010B\u010D\u00E7\u1E09\u0188\u023C\uA73F\u2184' }, + { base: 'd', letters: '\u0064\u24D3\uFF44\u1E0B\u010F\u1E0D\u1E11\u1E13\u1E0F\u0111\u018C\u0256\u0257\uA77A' }, + { base: 'dz', letters: '\u01F3\u01C6' }, + { base: 'e', letters: '\u0065\u24D4\uFF45\u00E8\u00E9\u00EA\u1EC1\u1EBF\u1EC5\u1EC3\u1EBD\u0113\u1E15\u1E17\u0115\u0117\u00EB\u1EBB\u011B\u0205\u0207\u1EB9\u1EC7\u0229\u1E1D\u0119\u1E19\u1E1B\u0247\u025B\u01DD' }, + { base: 'f', letters: '\u0066\u24D5\uFF46\u1E1F\u0192\uA77C' }, + { base: 'g', letters: '\u0067\u24D6\uFF47\u01F5\u011D\u1E21\u011F\u0121\u01E7\u0123\u01E5\u0260\uA7A1\u1D79\uA77F' }, + { base: 'h', letters: '\u0068\u24D7\uFF48\u0125\u1E23\u1E27\u021F\u1E25\u1E29\u1E2B\u1E96\u0127\u2C68\u2C76\u0265' }, + { base: 'hv', letters: '\u0195' }, + { base: 'i', letters: '\u0069\u24D8\uFF49\u00EC\u00ED\u00EE\u0129\u012B\u012D\u00EF\u1E2F\u1EC9\u01D0\u0209\u020B\u1ECB\u012F\u1E2D\u0268\u0131' }, + { base: 'j', letters: '\u006A\u24D9\uFF4A\u0135\u01F0\u0249' }, + { base: 'k', letters: '\u006B\u24DA\uFF4B\u1E31\u01E9\u1E33\u0137\u1E35\u0199\u2C6A\uA741\uA743\uA745\uA7A3' }, + { base: 'l', letters: '\u006C\u24DB\uFF4C\u0140\u013A\u013E\u1E37\u1E39\u013C\u1E3D\u1E3B\u017F\u0142\u019A\u026B\u2C61\uA749\uA781\uA747' }, + { base: 'lj', letters: '\u01C9' }, + { base: 'm', letters: '\u006D\u24DC\uFF4D\u1E3F\u1E41\u1E43\u0271\u026F' }, + { base: 'n', letters: '\u006E\u24DD\uFF4E\u01F9\u0144\u00F1\u1E45\u0148\u1E47\u0146\u1E4B\u1E49\u019E\u0272\u0149\uA791\uA7A5' }, + { base: 'nj', letters: '\u01CC' }, + { base: 'o', letters: '\u006F\u24DE\uFF4F\u00F2\u00F3\u00F4\u1ED3\u1ED1\u1ED7\u1ED5\u00F5\u1E4D\u022D\u1E4F\u014D\u1E51\u1E53\u014F\u022F\u0231\u00F6\u022B\u1ECF\u0151\u01D2\u020D\u020F\u01A1\u1EDD\u1EDB\u1EE1\u1EDF\u1EE3\u1ECD\u1ED9\u01EB\u01ED\u00F8\u01FF\u0254\uA74B\uA74D\u0275' }, + { base: 'oi', letters: '\u01A3' }, + { base: 'ou', letters: '\u0223' }, + { base: 'oo', letters: '\uA74F' }, + { base: 'p', letters: '\u0070\u24DF\uFF50\u1E55\u1E57\u01A5\u1D7D\uA751\uA753\uA755' }, + { base: 'q', letters: '\u0071\u24E0\uFF51\u024B\uA757\uA759' }, + { base: 'r', letters: '\u0072\u24E1\uFF52\u0155\u1E59\u0159\u0211\u0213\u1E5B\u1E5D\u0157\u1E5F\u024D\u027D\uA75B\uA7A7\uA783' }, + { base: 's', letters: '\u0073\u24E2\uFF53\u00DF\u015B\u1E65\u015D\u1E61\u0161\u1E67\u1E63\u1E69\u0219\u015F\u023F\uA7A9\uA785\u1E9B' }, + { base: 't', letters: '\u0074\u24E3\uFF54\u1E6B\u1E97\u0165\u1E6D\u021B\u0163\u1E71\u1E6F\u0167\u01AD\u0288\u2C66\uA787' }, + { base: 'tz', letters: '\uA729' }, + { base: 'u', letters: '\u0075\u24E4\uFF55\u00F9\u00FA\u00FB\u0169\u1E79\u016B\u1E7B\u016D\u00FC\u01DC\u01D8\u01D6\u01DA\u1EE7\u016F\u0171\u01D4\u0215\u0217\u01B0\u1EEB\u1EE9\u1EEF\u1EED\u1EF1\u1EE5\u1E73\u0173\u1E77\u1E75\u0289' }, + { base: 'v', letters: '\u0076\u24E5\uFF56\u1E7D\u1E7F\u028B\uA75F\u028C' }, + { base: 'vy', letters: '\uA761' }, + { base: 'w', letters: '\u0077\u24E6\uFF57\u1E81\u1E83\u0175\u1E87\u1E85\u1E98\u1E89\u2C73' }, + { base: 'x', letters: '\u0078\u24E7\uFF58\u1E8B\u1E8D' }, + { base: 'y', letters: '\u0079\u24E8\uFF59\u1EF3\u00FD\u0177\u1EF9\u0233\u1E8F\u00FF\u1EF7\u1E99\u1EF5\u01B4\u024F\u1EFF' }, + { base: 'z', letters: '\u007A\u24E9\uFF5A\u017A\u1E91\u017C\u017E\u1E93\u1E95\u01B6\u0225\u0240\u2C6C\uA763' } ]; + + var diacriticsMap = {}; + for (var i = 0; i < defaultDiacriticsRemovalap.length; i += 1) { + var letters = defaultDiacriticsRemovalap[i].letters; + for (var j = 0; j < letters.length; j += 1) { + diacriticsMap[letters[j]] = defaultDiacriticsRemovalap[i].base; + } + } + + var uniqueNumber = 1; + + var Utils = { + uniqueNumber: function uniqueNumber$1() { + uniqueNumber += 1; + return uniqueNumber; + }, + id: function id(mask, map) { + if ( mask === void 0 ) mask = 'xxxxxxxxxx'; + if ( map === void 0 ) map = '0123456789abcdef'; + + var length = map.length; + return mask.replace(/x/g, function () { return map[Math.floor((Math.random() * length))]; }); + }, + mdPreloaderContent: "\n \n \n \n \n \n \n \n \n \n ".trim(), + iosPreloaderContent: ("\n \n " + ([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11].map(function () { return ''; }).join('')) + "\n \n ").trim(), + auroraPreloaderContent: "\n \n \n \n ", + eventNameToColonCase: function eventNameToColonCase(eventName) { + var hasColon; + return eventName.split('').map(function (char, index) { + if (char.match(/[A-Z]/) && index !== 0 && !hasColon) { + hasColon = true; + return (":" + (char.toLowerCase())); + } + return char.toLowerCase(); + }).join(''); + }, + deleteProps: function deleteProps(obj) { + var object = obj; + Object.keys(object).forEach(function (key) { + try { + object[key] = null; + } catch (e) { + // no setter for object + } + try { + delete object[key]; + } catch (e) { + // something got wrong + } + }); + }, + nextTick: function nextTick(callback, delay) { + if ( delay === void 0 ) delay = 0; + + return setTimeout(callback, delay); + }, + nextFrame: function nextFrame(callback) { + return Utils.requestAnimationFrame(function () { + Utils.requestAnimationFrame(callback); + }); + }, + now: function now() { + return Date.now(); + }, + requestAnimationFrame: function requestAnimationFrame(callback) { + return win.requestAnimationFrame(callback); + }, + cancelAnimationFrame: function cancelAnimationFrame(id) { + return win.cancelAnimationFrame(id); + }, + removeDiacritics: function removeDiacritics(str) { + return str.replace(/[^\u0000-\u007E]/g, function (a) { return diacriticsMap[a] || a; }); + }, + parseUrlQuery: function parseUrlQuery(url) { + var query = {}; + var urlToParse = url || win.location.href; + var i; + var params; + var param; + var length; + if (typeof urlToParse === 'string' && urlToParse.length) { + urlToParse = urlToParse.indexOf('?') > -1 ? urlToParse.replace(/\S*\?/, '') : ''; + params = urlToParse.split('&').filter(function (paramsPart) { return paramsPart !== ''; }); + length = params.length; + + for (i = 0; i < length; i += 1) { + param = params[i].replace(/#\S+/g, '').split('='); + query[decodeURIComponent(param[0])] = typeof param[1] === 'undefined' ? undefined : decodeURIComponent(param.slice(1).join('=')) || ''; + } + } + return query; + }, + getTranslate: function getTranslate(el, axis) { + if ( axis === void 0 ) axis = 'x'; + + var matrix; + var curTransform; + var transformMatrix; + + var curStyle = win.getComputedStyle(el, null); + + if (win.WebKitCSSMatrix) { + curTransform = curStyle.transform || curStyle.webkitTransform; + if (curTransform.split(',').length > 6) { + curTransform = curTransform.split(', ').map(function (a) { return a.replace(',', '.'); }).join(', '); + } + // Some old versions of Webkit choke when 'none' is passed; pass + // empty string instead in this case + transformMatrix = new win.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform); + } else { + transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,'); + matrix = transformMatrix.toString().split(','); + } + + if (axis === 'x') { + // Latest Chrome and webkits Fix + if (win.WebKitCSSMatrix) { curTransform = transformMatrix.m41; } + // Crazy IE10 Matrix + else if (matrix.length === 16) { curTransform = parseFloat(matrix[12]); } + // Normal Browsers + else { curTransform = parseFloat(matrix[4]); } + } + if (axis === 'y') { + // Latest Chrome and webkits Fix + if (win.WebKitCSSMatrix) { curTransform = transformMatrix.m42; } + // Crazy IE10 Matrix + else if (matrix.length === 16) { curTransform = parseFloat(matrix[13]); } + // Normal Browsers + else { curTransform = parseFloat(matrix[5]); } + } + return curTransform || 0; + }, + serializeObject: function serializeObject(obj, parents) { + if ( parents === void 0 ) parents = []; + + if (typeof obj === 'string') { return obj; } + var resultArray = []; + var separator = '&'; + var newParents; + function varName(name) { + if (parents.length > 0) { + var parentParts = ''; + for (var j = 0; j < parents.length; j += 1) { + if (j === 0) { parentParts += parents[j]; } + else { parentParts += "[" + (encodeURIComponent(parents[j])) + "]"; } + } + return (parentParts + "[" + (encodeURIComponent(name)) + "]"); + } + return encodeURIComponent(name); + } + function varValue(value) { + return encodeURIComponent(value); + } + Object.keys(obj).forEach(function (prop) { + var toPush; + if (Array.isArray(obj[prop])) { + toPush = []; + for (var i = 0; i < obj[prop].length; i += 1) { + if (!Array.isArray(obj[prop][i]) && typeof obj[prop][i] === 'object') { + newParents = parents.slice(); + newParents.push(prop); + newParents.push(String(i)); + toPush.push(Utils.serializeObject(obj[prop][i], newParents)); + } else { + toPush.push(((varName(prop)) + "[]=" + (varValue(obj[prop][i])))); + } + } + if (toPush.length > 0) { resultArray.push(toPush.join(separator)); } + } else if (obj[prop] === null || obj[prop] === '') { + resultArray.push(((varName(prop)) + "=")); + } else if (typeof obj[prop] === 'object') { + // Object, convert to named array + newParents = parents.slice(); + newParents.push(prop); + toPush = Utils.serializeObject(obj[prop], newParents); + if (toPush !== '') { resultArray.push(toPush); } + } else if (typeof obj[prop] !== 'undefined' && obj[prop] !== '') { + // Should be string or plain value + resultArray.push(((varName(prop)) + "=" + (varValue(obj[prop])))); + } else if (obj[prop] === '') { resultArray.push(varName(prop)); } + }); + return resultArray.join(separator); + }, + isObject: function isObject(o) { + return typeof o === 'object' && o !== null && o.constructor && o.constructor === Object; + }, + merge: function merge() { + var args = [], len$1 = arguments.length; + while ( len$1-- ) args[ len$1 ] = arguments[ len$1 ]; + + var to = args[0]; + args.splice(0, 1); + var from = args; + + for (var i = 0; i < from.length; i += 1) { + var nextSource = args[i]; + if (nextSource !== undefined && nextSource !== null) { + var keysArray = Object.keys(Object(nextSource)); + for (var nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) { + var nextKey = keysArray[nextIndex]; + var desc = Object.getOwnPropertyDescriptor(nextSource, nextKey); + if (desc !== undefined && desc.enumerable) { + to[nextKey] = nextSource[nextKey]; + } + } + } + } + return to; + }, + extend: function extend() { + var args = [], len$1 = arguments.length; + while ( len$1-- ) args[ len$1 ] = arguments[ len$1 ]; + + var deep = true; + var to; + var from; + if (typeof args[0] === 'boolean') { + deep = args[0]; + to = args[1]; + args.splice(0, 2); + from = args; + } else { + to = args[0]; + args.splice(0, 1); + from = args; + } + for (var i = 0; i < from.length; i += 1) { + var nextSource = args[i]; + if (nextSource !== undefined && nextSource !== null) { + var keysArray = Object.keys(Object(nextSource)); + for (var nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) { + var nextKey = keysArray[nextIndex]; + var desc = Object.getOwnPropertyDescriptor(nextSource, nextKey); + if (desc !== undefined && desc.enumerable) { + if (!deep) { + to[nextKey] = nextSource[nextKey]; + } else if (Utils.isObject(to[nextKey]) && Utils.isObject(nextSource[nextKey])) { + Utils.extend(to[nextKey], nextSource[nextKey]); + } else if (!Utils.isObject(to[nextKey]) && Utils.isObject(nextSource[nextKey])) { + to[nextKey] = {}; + Utils.extend(to[nextKey], nextSource[nextKey]); + } else { + to[nextKey] = nextSource[nextKey]; + } + } + } + } + } + return to; + }, + colorHexToRgb: function colorHexToRgb(hex) { + var h = hex.replace(/^#?([a-f\d])([a-f\d])([a-f\d])$/i, function (m, r, g, b) { return r + r + g + g + b + b; }); + var result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(h); + return result + ? result.slice(1).map(function (n) { return parseInt(n, 16); }) + : null; + }, + colorRgbToHex: function colorRgbToHex(r, g, b) { + var result = [r, g, b].map(function (n) { + var hex = n.toString(16); + return hex.length === 1 ? ("0" + hex) : hex; + }).join(''); + return ("#" + result); + }, + colorRgbToHsl: function colorRgbToHsl(r, g, b) { + r /= 255; // eslint-disable-line + g /= 255; // eslint-disable-line + b /= 255; // eslint-disable-line + var max = Math.max(r, g, b); + var min = Math.min(r, g, b); + var d = max - min; + var h; + if (d === 0) { h = 0; } + else if (max === r) { h = ((g - b) / d) % 6; } + else if (max === g) { h = (b - r) / d + 2; } + else if (max === b) { h = (r - g) / d + 4; } + var l = (min + max) / 2; + var s = d === 0 ? 0 : d / (1 - Math.abs(2 * l - 1)); + if (h < 0) { h = 360 / 60 + h; } + return [h * 60, s, l]; + }, + colorHslToRgb: function colorHslToRgb(h, s, l) { + var c = (1 - Math.abs(2 * l - 1)) * s; + var hp = h / 60; + var x = c * (1 - Math.abs((hp % 2) - 1)); + var rgb1; + if (Number.isNaN(h) || typeof h === 'undefined') { + rgb1 = [0, 0, 0]; + } else if (hp <= 1) { rgb1 = [c, x, 0]; } + else if (hp <= 2) { rgb1 = [x, c, 0]; } + else if (hp <= 3) { rgb1 = [0, c, x]; } + else if (hp <= 4) { rgb1 = [0, x, c]; } + else if (hp <= 5) { rgb1 = [x, 0, c]; } + else if (hp <= 6) { rgb1 = [c, 0, x]; } + var m = l - (c / 2); + return rgb1.map(function (n) { return Math.max(0, Math.min(255, Math.round(255 * (n + m)))); }); + }, + colorHsbToHsl: function colorHsbToHsl(h, s, b) { + var HSL = { + h: h, + s: 0, + l: 0, + }; + var HSB = { h: h, s: s, b: b }; + + HSL.l = (2 - HSB.s) * HSB.b / 2; + HSL.s = HSL.l && HSL.l < 1 ? HSB.s * HSB.b / (HSL.l < 0.5 ? HSL.l * 2 : 2 - HSL.l * 2) : HSL.s; + + return [HSL.h, HSL.s, HSL.l]; + }, + colorHslToHsb: function colorHslToHsb(h, s, l) { + var HSB = { + h: h, + s: 0, + b: 0, + }; + var HSL = { h: h, s: s, l: l }; + + var t = HSL.s * (HSL.l < 0.5 ? HSL.l : 1 - HSL.l); + HSB.b = HSL.l + t; + HSB.s = HSL.l > 0 ? 2 * t / HSB.b : HSB.s; + + return [HSB.h, HSB.s, HSB.b]; + }, + colorThemeCSSProperties: function colorThemeCSSProperties() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + var hex; + var rgb; + if (args.length === 1) { + hex = args[0]; + rgb = Utils.colorHexToRgb(hex); + } else if (args.length === 3) { + rgb = args; + hex = Utils.colorRgbToHex.apply(Utils, rgb); + } + if (!rgb) { return {}; } + var hsl = Utils.colorRgbToHsl.apply(Utils, rgb); + var hslShade = [hsl[0], hsl[1], Math.max(0, (hsl[2] - 0.08))]; + var hslTint = [hsl[0], hsl[1], Math.max(0, (hsl[2] + 0.08))]; + var shade = Utils.colorRgbToHex.apply(Utils, Utils.colorHslToRgb.apply(Utils, hslShade)); + var tint = Utils.colorRgbToHex.apply(Utils, Utils.colorHslToRgb.apply(Utils, hslTint)); + return { + '--f7-theme-color': hex, + '--f7-theme-color-rgb': rgb.join(', '), + '--f7-theme-color-shade': shade, + '--f7-theme-color-tint': tint, + }; + }, + }; + + var Support = (function Support() { + return { + touch: !!(('ontouchstart' in win) || (win.DocumentTouch && doc instanceof win.DocumentTouch)), + + pointerEvents: !!win.PointerEvent && ('maxTouchPoints' in win.navigator) && win.navigator.maxTouchPoints >= 0, + + observer: (function checkObserver() { + return ('MutationObserver' in win || 'WebkitMutationObserver' in win); + }()), + + passiveListener: (function checkPassiveListener() { + var supportsPassive = false; + try { + var opts = Object.defineProperty({}, 'passive', { + // eslint-disable-next-line + get: function get() { + supportsPassive = true; + }, + }); + win.addEventListener('testPassiveListener', null, opts); + } catch (e) { + // No support + } + return supportsPassive; + }()), + + gestures: (function checkGestures() { + return 'ongesturestart' in win; + }()), + + intersectionObserver: (function checkObserver() { + return ('IntersectionObserver' in win); + }()), + }; + }()); + + var Device = (function Device() { + var platform = win.navigator.platform; + var ua = win.navigator.userAgent; + + var device = { + ios: false, + android: false, + androidChrome: false, + desktop: false, + iphone: false, + ipod: false, + ipad: false, + edge: false, + ie: false, + firefox: false, + macos: false, + windows: false, + cordova: !!(win.cordova || win.phonegap), + phonegap: !!(win.cordova || win.phonegap), + electron: false, + nwjs: false, + }; + + var screenWidth = win.screen.width; + var screenHeight = win.screen.height; + + var android = ua.match(/(Android);?[\s\/]+([\d.]+)?/); // eslint-disable-line + var ipad = ua.match(/(iPad).*OS\s([\d_]+)/); + var ipod = ua.match(/(iPod)(.*OS\s([\d_]+))?/); + var iphone = !ipad && ua.match(/(iPhone\sOS|iOS)\s([\d_]+)/); + var ie = ua.indexOf('MSIE ') >= 0 || ua.indexOf('Trident/') >= 0; + var edge = ua.indexOf('Edge/') >= 0; + var firefox = ua.indexOf('Gecko/') >= 0 && ua.indexOf('Firefox/') >= 0; + var windows = platform === 'Win32'; + var electron = ua.toLowerCase().indexOf('electron') >= 0; + var nwjs = typeof nw !== 'undefined' && typeof process !== 'undefined' && typeof process.versions !== 'undefined' && typeof process.versions.nw !== 'undefined'; + var macos = platform === 'MacIntel'; + + // iPadOs 13 fix + var iPadScreens = [ + '1024x1366', + '1366x1024', + '834x1194', + '1194x834', + '834x1112', + '1112x834', + '768x1024', + '1024x768', + '820x1180', + '1180x820', + '810x1080', + '1080x810' ]; + if (!ipad + && macos + && Support.touch + && iPadScreens.indexOf((screenWidth + "x" + screenHeight)) >= 0 + ) { + ipad = ua.match(/(Version)\/([\d.]+)/); + if (!ipad) { ipad = [0, 1, '13_0_0']; } + macos = false; + } + + device.ie = ie; + device.edge = edge; + device.firefox = firefox; + + // Android + if (android && !windows) { + device.os = 'android'; + device.osVersion = android[2]; + device.android = true; + device.androidChrome = ua.toLowerCase().indexOf('chrome') >= 0; + } + if (ipad || iphone || ipod) { + device.os = 'ios'; + device.ios = true; + } + // iOS + if (iphone && !ipod) { + device.osVersion = iphone[2].replace(/_/g, '.'); + device.iphone = true; + } + if (ipad) { + device.osVersion = ipad[2].replace(/_/g, '.'); + device.ipad = true; + } + if (ipod) { + device.osVersion = ipod[3] ? ipod[3].replace(/_/g, '.') : null; + device.ipod = true; + } + // iOS 8+ changed UA + if (device.ios && device.osVersion && ua.indexOf('Version/') >= 0) { + if (device.osVersion.split('.')[0] === '10') { + device.osVersion = ua.toLowerCase().split('version/')[1].split(' ')[0]; + } + } + + // Webview + device.webView = !!((iphone || ipad || ipod) && (ua.match(/.*AppleWebKit(?!.*Safari)/i) || win.navigator.standalone)) + || (win.matchMedia && win.matchMedia('(display-mode: standalone)').matches); + device.webview = device.webView; + device.standalone = device.webView; + + // Desktop + device.desktop = !(device.ios || device.android) || electron || nwjs; + if (device.desktop) { + device.electron = electron; + device.nwjs = nwjs; + device.macos = macos; + device.windows = windows; + if (device.macos) { + device.os = 'macos'; + } + if (device.windows) { + device.os = 'windows'; + } + } + + // Pixel Ratio + device.pixelRatio = win.devicePixelRatio || 1; + + // Color Scheme + var DARK = '(prefers-color-scheme: dark)'; + var LIGHT = '(prefers-color-scheme: light)'; + device.prefersColorScheme = function prefersColorTheme() { + var theme; + if (win.matchMedia && win.matchMedia(LIGHT).matches) { + theme = 'light'; + } + if (win.matchMedia && win.matchMedia(DARK).matches) { + theme = 'dark'; + } + return theme; + }; + + // Export object + return device; + }()); + + var EventsClass = function EventsClass(parents) { + if ( parents === void 0 ) parents = []; + + var self = this; + self.eventsParents = parents; + self.eventsListeners = {}; + }; + + EventsClass.prototype.on = function on (events, handler, priority) { + var self = this; + if (typeof handler !== 'function') { return self; } + var method = priority ? 'unshift' : 'push'; + events.split(' ').forEach(function (event) { + if (!self.eventsListeners[event]) { self.eventsListeners[event] = []; } + self.eventsListeners[event][method](handler); + }); + return self; + }; + + EventsClass.prototype.once = function once (events, handler, priority) { + var self = this; + if (typeof handler !== 'function') { return self; } + function onceHandler() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + self.off(events, onceHandler); + if (onceHandler.f7proxy) { + delete onceHandler.f7proxy; + } + handler.apply(self, args); + } + onceHandler.f7proxy = handler; + return self.on(events, onceHandler, priority); + }; + + EventsClass.prototype.off = function off (events, handler) { + var self = this; + if (!self.eventsListeners) { return self; } + events.split(' ').forEach(function (event) { + if (typeof handler === 'undefined') { + self.eventsListeners[event] = []; + } else if (self.eventsListeners[event]) { + self.eventsListeners[event].forEach(function (eventHandler, index) { + if (eventHandler === handler || (eventHandler.f7proxy && eventHandler.f7proxy === handler)) { + self.eventsListeners[event].splice(index, 1); + } + }); + } + }); + return self; + }; + + EventsClass.prototype.emit = function emit () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + var self = this; + if (!self.eventsListeners) { return self; } + var events; + var data; + var context; + var eventsParents; + if (typeof args[0] === 'string' || Array.isArray(args[0])) { + events = args[0]; + data = args.slice(1, args.length); + context = self; + eventsParents = self.eventsParents; + } else { + events = args[0].events; + data = args[0].data; + context = args[0].context || self; + eventsParents = args[0].local ? [] : args[0].parents || self.eventsParents; + } + var eventsArray = Array.isArray(events) ? events : events.split(' '); + var localEvents = eventsArray.map(function (eventName) { return eventName.replace('local::', ''); }); + var parentEvents = eventsArray.filter(function (eventName) { return eventName.indexOf('local::') < 0; }); + + localEvents.forEach(function (event) { + if (self.eventsListeners && self.eventsListeners[event]) { + var handlers = []; + self.eventsListeners[event].forEach(function (eventHandler) { + handlers.push(eventHandler); + }); + handlers.forEach(function (eventHandler) { + eventHandler.apply(context, data); + }); + } + }); + if (eventsParents && eventsParents.length > 0) { + eventsParents.forEach(function (eventsParent) { + eventsParent.emit.apply(eventsParent, [ parentEvents ].concat( data )); + }); + } + return self; + }; + + var Framework7Class = /*@__PURE__*/(function (EventsClass) { + function Framework7Class(params, parents) { + if ( params === void 0 ) params = {}; + if ( parents === void 0 ) parents = []; + + EventsClass.call(this, parents); + var self = this; + self.params = params; + + if (self.params && self.params.on) { + Object.keys(self.params.on).forEach(function (eventName) { + self.on(eventName, self.params.on[eventName]); + }); + } + } + + if ( EventsClass ) Framework7Class.__proto__ = EventsClass; + Framework7Class.prototype = Object.create( EventsClass && EventsClass.prototype ); + Framework7Class.prototype.constructor = Framework7Class; + + var staticAccessors = { components: { configurable: true } }; + + // eslint-disable-next-line + Framework7Class.prototype.useModuleParams = function useModuleParams (module, instanceParams) { + if (module.params) { + var originalParams = {}; + Object.keys(module.params).forEach(function (paramKey) { + if (typeof instanceParams[paramKey] === 'undefined') { return; } + originalParams[paramKey] = Utils.extend({}, instanceParams[paramKey]); + }); + Utils.extend(instanceParams, module.params); + Object.keys(originalParams).forEach(function (paramKey) { + Utils.extend(instanceParams[paramKey], originalParams[paramKey]); + }); + } + }; + + Framework7Class.prototype.useModulesParams = function useModulesParams (instanceParams) { + var instance = this; + if (!instance.modules) { return; } + Object.keys(instance.modules).forEach(function (moduleName) { + var module = instance.modules[moduleName]; + // Extend params + if (module.params) { + Utils.extend(instanceParams, module.params); + } + }); + }; + + Framework7Class.prototype.useModule = function useModule (moduleName, moduleParams) { + if ( moduleName === void 0 ) moduleName = ''; + if ( moduleParams === void 0 ) moduleParams = {}; + + var instance = this; + if (!instance.modules) { return; } + var module = typeof moduleName === 'string' ? instance.modules[moduleName] : moduleName; + if (!module) { return; } + + // Extend instance methods and props + if (module.instance) { + Object.keys(module.instance).forEach(function (modulePropName) { + var moduleProp = module.instance[modulePropName]; + if (typeof moduleProp === 'function') { + instance[modulePropName] = moduleProp.bind(instance); + } else { + instance[modulePropName] = moduleProp; + } + }); + } + // Add event listeners + if (module.on && instance.on) { + Object.keys(module.on).forEach(function (moduleEventName) { + instance.on(moduleEventName, module.on[moduleEventName]); + }); + } + // Add vnode hooks + if (module.vnode) { + if (!instance.vnodeHooks) { instance.vnodeHooks = {}; } + Object.keys(module.vnode).forEach(function (vnodeId) { + Object.keys(module.vnode[vnodeId]).forEach(function (hookName) { + var handler = module.vnode[vnodeId][hookName]; + if (!instance.vnodeHooks[hookName]) { instance.vnodeHooks[hookName] = {}; } + if (!instance.vnodeHooks[hookName][vnodeId]) { instance.vnodeHooks[hookName][vnodeId] = []; } + instance.vnodeHooks[hookName][vnodeId].push(handler.bind(instance)); + }); + }); + } + // Module create callback + if (module.create) { + module.create.bind(instance)(moduleParams); + } + }; + + Framework7Class.prototype.useModules = function useModules (modulesParams) { + if ( modulesParams === void 0 ) modulesParams = {}; + + var instance = this; + if (!instance.modules) { return; } + Object.keys(instance.modules).forEach(function (moduleName) { + var moduleParams = modulesParams[moduleName] || {}; + instance.useModule(moduleName, moduleParams); + }); + }; + + staticAccessors.components.set = function (components) { + var Class = this; + if (!Class.use) { return; } + Class.use(components); + }; + + Framework7Class.installModule = function installModule (module) { + var params = [], len = arguments.length - 1; + while ( len-- > 0 ) params[ len ] = arguments[ len + 1 ]; + + var Class = this; + if (!Class.prototype.modules) { Class.prototype.modules = {}; } + var name = module.name || (((Object.keys(Class.prototype.modules).length) + "_" + (Utils.now()))); + Class.prototype.modules[name] = module; + // Prototype + if (module.proto) { + Object.keys(module.proto).forEach(function (key) { + Class.prototype[key] = module.proto[key]; + }); + } + // Class + if (module.static) { + Object.keys(module.static).forEach(function (key) { + Class[key] = module.static[key]; + }); + } + // Callback + if (module.install) { + module.install.apply(Class, params); + } + return Class; + }; + + Framework7Class.use = function use (module) { + var params = [], len = arguments.length - 1; + while ( len-- > 0 ) params[ len ] = arguments[ len + 1 ]; + + var Class = this; + if (Array.isArray(module)) { + module.forEach(function (m) { return Class.installModule(m); }); + return Class; + } + return Class.installModule.apply(Class, [ module ].concat( params )); + }; + + Object.defineProperties( Framework7Class, staticAccessors ); + + return Framework7Class; + }(EventsClass)); + + function ConstructorMethods (parameters) { + if ( parameters === void 0 ) parameters = {}; + + var defaultSelector = parameters.defaultSelector; + var Constructor = parameters.constructor; + var domProp = parameters.domProp; + var app = parameters.app; + var addMethods = parameters.addMethods; + var methods = { + create: function create() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + if (app) { return new (Function.prototype.bind.apply( Constructor, [ null ].concat( [app], args) )); } + return new (Function.prototype.bind.apply( Constructor, [ null ].concat( args) )); + }, + get: function get(el) { + if ( el === void 0 ) el = defaultSelector; + + if (el instanceof Constructor) { return el; } + var $el = $(el); + if ($el.length === 0) { return undefined; } + return $el[0][domProp]; + }, + destroy: function destroy(el) { + var instance = methods.get(el); + if (instance && instance.destroy) { return instance.destroy(); } + return undefined; + }, + }; + if (addMethods && Array.isArray(addMethods)) { + addMethods.forEach(function (methodName) { + methods[methodName] = function (el) { + if ( el === void 0 ) el = defaultSelector; + var args = [], len = arguments.length - 1; + while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ]; + + var instance = methods.get(el); + if (instance && instance[methodName]) { return instance[methodName].apply(instance, args); } + return undefined; + }; + }); + } + return methods; + } + + function ModalMethods (parameters) { + if ( parameters === void 0 ) parameters = {}; + + var defaultSelector = parameters.defaultSelector; + var Constructor = parameters.constructor; + var app = parameters.app; + var methods = Utils.extend( + ConstructorMethods({ + defaultSelector: defaultSelector, + constructor: Constructor, + app: app, + domProp: 'f7Modal', + }), + { + open: function open(el, animate, targetEl) { + var $el = $(el); + if ($el.length > 1 && targetEl) { + // check if same modal in other page + var $targetPage = $(targetEl).parents('.page'); + if ($targetPage.length) { + $el.each(function (index, modalEl) { + var $modalEl = $(modalEl); + if ($modalEl.parents($targetPage)[0] === $targetPage[0]) { + $el = $modalEl; + } + }); + } + } + if ($el.length > 1) { + $el = $el.eq($el.length - 1); + } + if (!$el.length) { return undefined; } + var instance = $el[0].f7Modal; + if (!instance) { + var params = $el.dataset(); + instance = new Constructor(app, Object.assign({}, {el: $el}, params)); + } + return instance.open(animate); + }, + close: function close(el, animate, targetEl) { + if ( el === void 0 ) el = defaultSelector; + + var $el = $(el); + if (!$el.length) { return undefined; } + if ($el.length > 1) { + // check if close link (targetEl) in this modal + var $parentEl; + if (targetEl) { + var $targetEl = $(targetEl); + if ($targetEl.length) { + $parentEl = $targetEl.parents($el); + } + } + if ($parentEl && $parentEl.length > 0) { + $el = $parentEl; + } else { + $el = $el.eq($el.length - 1); + } + } + var instance = $el[0].f7Modal; + if (!instance) { + var params = $el.dataset(); + instance = new Constructor(app, Object.assign({}, {el: $el}, params)); + } + return instance.close(animate); + }, + } + ); + return methods; + } + + var fetchedModules = []; + function loadModule(moduleToLoad) { + var Framework7 = this; + return new Promise(function (resolve, reject) { + var app = Framework7.instance; + var modulePath; + var moduleObj; + var moduleFunc; + if (!moduleToLoad) { + reject(new Error('Framework7: Lazy module must be specified')); + return; + } + + function install(module) { + Framework7.use(module); + + if (app) { + app.useModuleParams(module, app.params); + app.useModule(module); + } + } + + if (typeof moduleToLoad === 'string') { + var matchNamePattern = moduleToLoad.match(/([a-z0-9-]*)/i); + if (moduleToLoad.indexOf('.') < 0 && matchNamePattern && matchNamePattern[0].length === moduleToLoad.length) { + if (!app || (app && !app.params.lazyModulesPath)) { + reject(new Error('Framework7: "lazyModulesPath" app parameter must be specified to fetch module by name')); + return; + } + modulePath = (app.params.lazyModulesPath) + "/" + moduleToLoad + ".js"; + } else { + modulePath = moduleToLoad; + } + } else if (typeof moduleToLoad === 'function') { + moduleFunc = moduleToLoad; + } else { + // considering F7-Plugin object + moduleObj = moduleToLoad; + } + + if (moduleFunc) { + var module = moduleFunc(Framework7, false); + if (!module) { + reject(new Error('Framework7: Can\'t find Framework7 component in specified component function')); + return; + } + // Check if it was added + if (Framework7.prototype.modules && Framework7.prototype.modules[module.name]) { + resolve(); + return; + } + // Install It + install(module); + + resolve(); + } + if (moduleObj) { + var module$1 = moduleObj; + if (!module$1) { + reject(new Error('Framework7: Can\'t find Framework7 component in specified component')); + return; + } + // Check if it was added + if (Framework7.prototype.modules && Framework7.prototype.modules[module$1.name]) { + resolve(); + return; + } + // Install It + install(module$1); + + resolve(); + } + if (modulePath) { + if (fetchedModules.indexOf(modulePath) >= 0) { + resolve(); + return; + } + fetchedModules.push(modulePath); + var scriptLoad = new Promise(function (resolveScript, rejectScript) { + Framework7.request.get( + modulePath, + function (scriptContent) { + var id = Utils.id(); + var callbackLoadName = "f7_component_loader_callback_" + id; + + var scriptEl = doc.createElement('script'); + scriptEl.innerHTML = "window." + callbackLoadName + " = function (Framework7, Framework7AutoInstallComponent) {return " + (scriptContent.trim()) + "}"; + $('head').append(scriptEl); + + var componentLoader = win[callbackLoadName]; + delete win[callbackLoadName]; + $(scriptEl).remove(); + + var module = componentLoader(Framework7, false); + + if (!module) { + rejectScript(new Error(("Framework7: Can't find Framework7 component in " + modulePath + " file"))); + return; + } + + // Check if it was added + if (Framework7.prototype.modules && Framework7.prototype.modules[module.name]) { + resolveScript(); + return; + } + + // Install It + install(module); + + resolveScript(); + }, + function (xhr, status) { + rejectScript(xhr, status); + } + ); + }); + var styleLoad = new Promise(function (resolveStyle) { + Framework7.request.get( + modulePath.replace('.js', app.rtl ? '.rtl.css' : '.css'), + function (styleContent) { + var styleEl = doc.createElement('style'); + styleEl.innerHTML = styleContent; + $('head').append(styleEl); + + resolveStyle(); + }, + function () { + resolveStyle(); + } + ); + }); + + Promise.all([scriptLoad, styleLoad]).then(function () { + resolve(); + }).catch(function (err) { + reject(err); + }); + } + }); + } + + var Framework7 = /*@__PURE__*/(function (Framework7Class) { + function Framework7(params) { + Framework7Class.call(this, params); + if (Framework7.instance) { + throw new Error('Framework7 is already initialized and can\'t be initialized more than once'); + } + + var passedParams = Utils.extend({}, params); + + // App Instance + var app = this; + + Framework7.instance = app; + + // Default + var defaults = { + version: '1.0.0', + id: 'io.framework7.testapp', + root: 'body', + theme: 'auto', + language: win.navigator.language, + routes: [], + name: 'Framework7', + lazyModulesPath: null, + initOnDeviceReady: true, + init: true, + autoDarkTheme: false, + iosTranslucentBars: true, + iosTranslucentModals: true, + component: undefined, + componentUrl: undefined, + }; + + // Extend defaults with modules params + app.useModulesParams(defaults); + + // Extend defaults with passed params + app.params = Utils.extend(defaults, params); + + var $rootEl = $(app.params.root); + + Utils.extend(app, { + // App Id + id: app.params.id, + // App Name + name: app.params.name, + // App version + version: app.params.version, + // Routes + routes: app.params.routes, + // Lang + language: app.params.language, + // Root + root: $rootEl, + // RTL + rtl: $rootEl.css('direction') === 'rtl', + // Theme + theme: (function getTheme() { + if (app.params.theme === 'auto') { + if (Device.ios) { return 'ios'; } + if (Device.desktop && Device.electron) { return 'aurora'; } + return 'md'; + } + return app.params.theme; + }()), + // Initially passed parameters + passedParams: passedParams, + online: win.navigator.onLine, + }); + + // Save Root + if (app.root && app.root[0]) { + app.root[0].f7 = app; + } + + // Install Modules + app.useModules(); + + // Init Data & Methods + app.initData(); + + // Auto Dark Theme + var DARK = '(prefers-color-scheme: dark)'; + var LIGHT = '(prefers-color-scheme: light)'; + app.mq = {}; + if (win.matchMedia) { + app.mq.dark = win.matchMedia(DARK); + app.mq.light = win.matchMedia(LIGHT); + } + app.colorSchemeListener = function colorSchemeListener(ref) { + var matches = ref.matches; + var media = ref.media; + + if (!matches) { + return; + } + var html = doc.querySelector('html'); + if (media === DARK) { + html.classList.add('theme-dark'); + app.darkTheme = true; + app.emit('darkThemeChange', true); + } else if (media === LIGHT) { + html.classList.remove('theme-dark'); + app.darkTheme = false; + app.emit('darkThemeChange', false); + } + }; + + // Init + if (app.params.init) { + if (Device.cordova && app.params.initOnDeviceReady) { + $(doc).on('deviceready', function () { + app.init(); + }); + } else { + app.init(); + } + } + + // Return app instance + return app; + } + + if ( Framework7Class ) Framework7.__proto__ = Framework7Class; + Framework7.prototype = Object.create( Framework7Class && Framework7Class.prototype ); + Framework7.prototype.constructor = Framework7; + + var prototypeAccessors = { $: { configurable: true },t7: { configurable: true } }; + var staticAccessors = { Dom7: { configurable: true },$: { configurable: true },Template7: { configurable: true },Class: { configurable: true },Events: { configurable: true } }; + + Framework7.prototype.initData = function initData () { + var app = this; + + // Data + app.data = {}; + if (app.params.data && typeof app.params.data === 'function') { + Utils.extend(app.data, app.params.data.bind(app)()); + } else if (app.params.data) { + Utils.extend(app.data, app.params.data); + } + // Methods + app.methods = {}; + if (app.params.methods) { + Object.keys(app.params.methods).forEach(function (methodName) { + if (typeof app.params.methods[methodName] === 'function') { + app.methods[methodName] = app.params.methods[methodName].bind(app); + } else { + app.methods[methodName] = app.params.methods[methodName]; + } + }); + } + }; + + Framework7.prototype.enableAutoDarkTheme = function enableAutoDarkTheme () { + if (!win.matchMedia) { return; } + var app = this; + var html = doc.querySelector('html'); + if (app.mq.dark && app.mq.light) { + app.mq.dark.addListener(app.colorSchemeListener); + app.mq.light.addListener(app.colorSchemeListener); + } + if (app.mq.dark && app.mq.dark.matches) { + html.classList.add('theme-dark'); + app.darkTheme = true; + app.emit('darkThemeChange', true); + } else if (app.mq.light && app.mq.light.matches) { + html.classList.remove('theme-dark'); + app.darkTheme = false; + app.emit('darkThemeChange', false); + } + }; + + Framework7.prototype.disableAutoDarkTheme = function disableAutoDarkTheme () { + if (!win.matchMedia) { return; } + var app = this; + if (app.mq.dark) { app.mq.dark.removeListener(app.colorSchemeListener); } + if (app.mq.light) { app.mq.light.removeListener(app.colorSchemeListener); } + }; + + Framework7.prototype.initAppComponent = function initAppComponent (callback) { + var app = this; + app.router.componentLoader( + app.params.component, + app.params.componentUrl, + { componentOptions: { el: app.root[0], root: true } }, + function (el) { + app.root = $(el); + app.root[0].f7 = app; + app.rootComponent = el.f7Component; + if (callback) { callback(); } + }, + function () {} + ); + }; + + // eslint-disable-next-line + Framework7.prototype._init = function _init () { + var app = this; + if (app.initialized) { return app; } + + app.root.addClass('framework7-initializing'); + + // RTL attr + if (app.rtl) { + $('html').attr('dir', 'rtl'); + } + + // Auto Dark Theme + if (app.params.autoDarkTheme) { + app.enableAutoDarkTheme(); + } + + // Watch for online/offline state + win.addEventListener('offline', function () { + app.online = false; + app.emit('offline'); + app.emit('connection', false); + }); + win.addEventListener('online', function () { + app.online = true; + app.emit('online'); + app.emit('connection', true); + }); + + // Root class + app.root.addClass('framework7-root'); + + // Theme class + $('html').removeClass('ios md aurora').addClass(app.theme); + + // iOS Translucent + if (app.params.iosTranslucentBars && app.theme === 'ios' && Device.ios) { + $('html').addClass('ios-translucent-bars'); + } + if (app.params.iosTranslucentModals && app.theme === 'ios' && Device.ios) { + $('html').addClass('ios-translucent-modals'); + } + + // Init class + Utils.nextFrame(function () { + app.root.removeClass('framework7-initializing'); + }); + // Emit, init other modules + app.initialized = true; + app.emit('init'); + + return app; + }; + + Framework7.prototype.init = function init () { + var app = this; + if (app.params.component || app.params.componentUrl) { + app.initAppComponent(function () { + app._init(); // eslint-disable-line + }); + } else { + app._init(); // eslint-disable-line + } + }; + + // eslint-disable-next-line + Framework7.prototype.loadModule = function loadModule () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return Framework7.loadModule.apply(Framework7, args); + }; + + // eslint-disable-next-line + Framework7.prototype.loadModules = function loadModules () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return Framework7.loadModules.apply(Framework7, args); + }; + + Framework7.prototype.getVnodeHooks = function getVnodeHooks (hook, id) { + var app = this; + if (!app.vnodeHooks || !app.vnodeHooks[hook]) { return []; } + return app.vnodeHooks[hook][id] || []; + }; + + // eslint-disable-next-line + prototypeAccessors.$.get = function () { + return $; + }; + // eslint-disable-next-line + prototypeAccessors.t7.get = function () { + return Template7; + }; + + staticAccessors.Dom7.get = function () { + return $; + }; + + staticAccessors.$.get = function () { + return $; + }; + + staticAccessors.Template7.get = function () { + return Template7; + }; + + staticAccessors.Class.get = function () { + return Framework7Class; + }; + + staticAccessors.Events.get = function () { + return EventsClass; + }; + + Object.defineProperties( Framework7.prototype, prototypeAccessors ); + Object.defineProperties( Framework7, staticAccessors ); + + return Framework7; + }(Framework7Class)); + + Framework7.ModalMethods = ModalMethods; + Framework7.ConstructorMethods = ConstructorMethods; + + Framework7.loadModule = loadModule; + Framework7.loadModules = function loadModules(modules) { + return Promise.all(modules.map(function (module) { return Framework7.loadModule(module); })); + }; + + var globals = {}; + var jsonpRequests = 0; + + function Request(requestOptions) { + var globalsNoCallbacks = Utils.extend({}, globals); + ('beforeCreate beforeOpen beforeSend error complete success statusCode').split(' ').forEach(function (callbackName) { + delete globalsNoCallbacks[callbackName]; + }); + var defaults = Utils.extend({ + url: win.location.toString(), + method: 'GET', + data: false, + async: true, + cache: true, + user: '', + password: '', + headers: {}, + xhrFields: {}, + statusCode: {}, + processData: true, + dataType: 'text', + contentType: 'application/x-www-form-urlencoded', + timeout: 0, + }, globalsNoCallbacks); + + var options = Utils.extend({}, defaults, requestOptions); + var proceedRequest; + + // Function to run XHR callbacks and events + function fireCallback(callbackName) { + var data = [], len = arguments.length - 1; + while ( len-- > 0 ) data[ len ] = arguments[ len + 1 ]; + + /* + Callbacks: + beforeCreate (options), + beforeOpen (xhr, options), + beforeSend (xhr, options), + error (xhr, status, message), + complete (xhr, status), + success (response, status, xhr), + statusCode () + */ + var globalCallbackValue; + var optionCallbackValue; + if (globals[callbackName]) { + globalCallbackValue = globals[callbackName].apply(globals, data); + } + if (options[callbackName]) { + optionCallbackValue = options[callbackName].apply(options, data); + } + if (typeof globalCallbackValue !== 'boolean') { globalCallbackValue = true; } + if (typeof optionCallbackValue !== 'boolean') { optionCallbackValue = true; } + return (globalCallbackValue && optionCallbackValue); + } + + // Before create callback + proceedRequest = fireCallback('beforeCreate', options); + if (proceedRequest === false) { return undefined; } + + // For jQuery guys + if (options.type) { options.method = options.type; } + + // Parameters Prefix + var paramsPrefix = options.url.indexOf('?') >= 0 ? '&' : '?'; + + // UC method + var method = options.method.toUpperCase(); + + // Data to modify GET URL + if ((method === 'GET' || method === 'HEAD' || method === 'OPTIONS' || method === 'DELETE') && options.data) { + var stringData; + if (typeof options.data === 'string') { + // Should be key=value string + if (options.data.indexOf('?') >= 0) { stringData = options.data.split('?')[1]; } + else { stringData = options.data; } + } else { + // Should be key=value object + stringData = Utils.serializeObject(options.data); + } + if (stringData.length) { + options.url += paramsPrefix + stringData; + if (paramsPrefix === '?') { paramsPrefix = '&'; } + } + } + + // JSONP + if (options.dataType === 'json' && options.url.indexOf('callback=') >= 0) { + var callbackName = "f7jsonp_" + (Date.now() + ((jsonpRequests += 1))); + var abortTimeout; + var callbackSplit = options.url.split('callback='); + var requestUrl = (callbackSplit[0]) + "callback=" + callbackName; + if (callbackSplit[1].indexOf('&') >= 0) { + var addVars = callbackSplit[1].split('&').filter(function (el) { return el.indexOf('=') > 0; }).join('&'); + if (addVars.length > 0) { requestUrl += "&" + addVars; } + } + + // Create script + var script = doc.createElement('script'); + script.type = 'text/javascript'; + script.onerror = function onerror() { + clearTimeout(abortTimeout); + fireCallback('error', null, 'scripterror', 'scripterror'); + fireCallback('complete', null, 'scripterror'); + }; + script.src = requestUrl; + + // Handler + win[callbackName] = function jsonpCallback(data) { + clearTimeout(abortTimeout); + fireCallback('success', data); + script.parentNode.removeChild(script); + script = null; + delete win[callbackName]; + }; + doc.querySelector('head').appendChild(script); + + if (options.timeout > 0) { + abortTimeout = setTimeout(function () { + script.parentNode.removeChild(script); + script = null; + fireCallback('error', null, 'timeout', 'timeout'); + }, options.timeout); + } + + return undefined; + } + + // Cache for GET/HEAD requests + if (method === 'GET' || method === 'HEAD' || method === 'OPTIONS' || method === 'DELETE') { + if (options.cache === false) { + options.url += paramsPrefix + "_nocache" + (Date.now()); + } + } + + // Create XHR + var xhr = new XMLHttpRequest(); + + // Save Request URL + xhr.requestUrl = options.url; + xhr.requestParameters = options; + + // Before open callback + proceedRequest = fireCallback('beforeOpen', xhr, options); + if (proceedRequest === false) { return xhr; } + + // Open XHR + xhr.open(method, options.url, options.async, options.user, options.password); + + // Create POST Data + var postData = null; + + if ((method === 'POST' || method === 'PUT' || method === 'PATCH') && options.data) { + if (options.processData) { + var postDataInstances = [ArrayBuffer, Blob, Document, FormData]; + // Post Data + if (postDataInstances.indexOf(options.data.constructor) >= 0) { + postData = options.data; + } else { + // POST Headers + var boundary = "---------------------------" + (Date.now().toString(16)); + + if (options.contentType === 'multipart/form-data') { + xhr.setRequestHeader('Content-Type', ("multipart/form-data; boundary=" + boundary)); + } else { + xhr.setRequestHeader('Content-Type', options.contentType); + } + postData = ''; + var data$1 = Utils.serializeObject(options.data); + if (options.contentType === 'multipart/form-data') { + data$1 = data$1.split('&'); + var newData = []; + for (var i = 0; i < data$1.length; i += 1) { + newData.push(("Content-Disposition: form-data; name=\"" + (data$1[i].split('=')[0]) + "\"\r\n\r\n" + (data$1[i].split('=')[1]) + "\r\n")); + } + postData = "--" + boundary + "\r\n" + (newData.join(("--" + boundary + "\r\n"))) + "--" + boundary + "--\r\n"; + } else if (options.contentType === 'application/json') { + postData = JSON.stringify(options.data); + } else { + postData = data$1; + } + } + } else { + postData = options.data; + xhr.setRequestHeader('Content-Type', options.contentType); + } + } + if (options.dataType === 'json' && (!options.headers || !options.headers.Accept)) { + xhr.setRequestHeader('Accept', 'application/json'); + } + + // Additional headers + if (options.headers) { + Object.keys(options.headers).forEach(function (headerName) { + if (typeof options.headers[headerName] === 'undefined') { return; } + xhr.setRequestHeader(headerName, options.headers[headerName]); + }); + } + + // Check for crossDomain + if (typeof options.crossDomain === 'undefined') { + // eslint-disable-next-line + options.crossDomain = /^([\w-]+:)?\/\/([^\/]+)/.test(options.url) && RegExp.$2 !== win.location.host; + } + + if (!options.crossDomain) { + xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest'); + } + + if (options.xhrFields) { + Utils.extend(xhr, options.xhrFields); + } + + + // Handle XHR + xhr.onload = function onload() { + if ((xhr.status >= 200 && xhr.status < 300) || xhr.status === 0) { + var responseData; + if (options.dataType === 'json') { + var parseError; + try { + responseData = JSON.parse(xhr.responseText); + } catch (err) { + parseError = true; + } + if (!parseError) { + fireCallback('success', responseData, xhr.status, xhr); + } else { + fireCallback('error', xhr, 'parseerror', 'parseerror'); + } + } else { + responseData = xhr.responseType === 'text' || xhr.responseType === '' ? xhr.responseText : xhr.response; + fireCallback('success', responseData, xhr.status, xhr); + } + } else { + fireCallback('error', xhr, xhr.status, xhr.statusText); + } + if (options.statusCode) { + if (globals.statusCode && globals.statusCode[xhr.status]) { globals.statusCode[xhr.status](xhr); } + if (options.statusCode[xhr.status]) { options.statusCode[xhr.status](xhr); } + } + fireCallback('complete', xhr, xhr.status); + }; + + xhr.onerror = function onerror() { + fireCallback('error', xhr, xhr.status, xhr.status); + fireCallback('complete', xhr, 'error'); + }; + + // Timeout + if (options.timeout > 0) { + xhr.timeout = options.timeout; + xhr.ontimeout = function () { + fireCallback('error', xhr, 'timeout', 'timeout'); + fireCallback('complete', xhr, 'timeout'); + }; + } + + // Ajax start callback + proceedRequest = fireCallback('beforeSend', xhr, options); + if (proceedRequest === false) { return xhr; } + + // Send XHR + xhr.send(postData); + + // Return XHR object + return xhr; + } + function RequestShortcut(method) { + var assign, assign$1; + + var args = [], len = arguments.length - 1; + while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ]; + var ref = []; + var url = ref[0]; + var data = ref[1]; + var success = ref[2]; + var error = ref[3]; + var dataType = ref[4]; + if (typeof args[1] === 'function') { + (assign = args, url = assign[0], success = assign[1], error = assign[2], dataType = assign[3]); + } else { + (assign$1 = args, url = assign$1[0], data = assign$1[1], success = assign$1[2], error = assign$1[3], dataType = assign$1[4]); + } + [success, error].forEach(function (callback) { + if (typeof callback === 'string') { + dataType = callback; + if (callback === success) { success = undefined; } + else { error = undefined; } + } + }); + dataType = dataType || (method === 'json' || method === 'postJSON' ? 'json' : undefined); + var requestOptions = { + url: url, + method: method === 'post' || method === 'postJSON' ? 'POST' : 'GET', + data: data, + success: success, + error: error, + dataType: dataType, + }; + if (method === 'postJSON') { + Utils.extend(requestOptions, { + contentType: 'application/json', + processData: false, + crossDomain: true, + data: typeof data === 'string' ? data : JSON.stringify(data), + }); + } + return Request(requestOptions); + } + function RequestShortcutPromise(method) { + var args = [], len = arguments.length - 1; + while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ]; + + var url = args[0]; + var data = args[1]; + var dataType = args[2]; + return new Promise(function (resolve, reject) { + RequestShortcut( + method, + url, + data, + function (responseData, status, xhr) { + resolve({ data: responseData, status: status, xhr: xhr }); + }, + function (xhr, status, message) { + // eslint-disable-next-line + reject({ xhr: xhr, status: status, message: message }); + }, + dataType + ); + }); + } + Object.assign(Request, { + get: function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return RequestShortcut.apply(void 0, [ 'get' ].concat( args )); + }, + post: function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return RequestShortcut.apply(void 0, [ 'post' ].concat( args )); + }, + json: function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return RequestShortcut.apply(void 0, [ 'json' ].concat( args )); + }, + getJSON: function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return RequestShortcut.apply(void 0, [ 'json' ].concat( args )); + }, + postJSON: function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return RequestShortcut.apply(void 0, [ 'postJSON' ].concat( args )); + }, + }); + + Request.promise = function requestPromise(requestOptions) { + return new Promise(function (resolve, reject) { + Request(Object.assign(requestOptions, { + success: function success(data, status, xhr) { + resolve({ data: data, status: status, xhr: xhr }); + }, + error: function error(xhr, status, message) { + // eslint-disable-next-line + reject({ xhr: xhr, status: status, message: message }); + }, + })); + }); + }; + Object.assign(Request.promise, { + get: function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return RequestShortcutPromise.apply(void 0, [ 'get' ].concat( args )); + }, + post: function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return RequestShortcutPromise.apply(void 0, [ 'post' ].concat( args )); + }, + json: function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return RequestShortcutPromise.apply(void 0, [ 'json' ].concat( args )); + }, + getJSON: function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return RequestShortcutPromise.apply(void 0, [ 'json' ].concat( args )); + }, + postJSON: function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return RequestShortcutPromise.apply(void 0, [ 'postJSON' ].concat( args )); + }, + }); + + Request.setup = function setup(options) { + if (options.type && !options.method) { + Utils.extend(options, { method: options.type }); + } + Utils.extend(globals, options); + }; + + var DeviceModule = { + name: 'device', + proto: { + device: Device, + }, + static: { + device: Device, + }, + on: { + init: function init() { + var classNames = []; + var html = doc.querySelector('html'); + var metaStatusbar = doc.querySelector('meta[name="apple-mobile-web-app-status-bar-style"]'); + if (!html) { return; } + if (Device.standalone && Device.ios && metaStatusbar && metaStatusbar.content === 'black-translucent') { + classNames.push('device-full-viewport'); + } + + // Pixel Ratio + classNames.push(("device-pixel-ratio-" + (Math.floor(Device.pixelRatio)))); + // OS classes + if (Device.os && !Device.desktop) { + classNames.push( + ("device-" + (Device.os)) + ); + } else if (Device.desktop) { + classNames.push('device-desktop'); + if (Device.os) { + classNames.push(("device-" + (Device.os))); + } + } + if (Device.cordova || Device.phonegap) { + classNames.push('device-cordova'); + } + + // Add html classes + classNames.forEach(function (className) { + html.classList.add(className); + }); + }, + }, + }; + + var SupportModule = { + name: 'support', + proto: { + support: Support, + }, + static: { + support: Support, + }, + }; + + var UtilsModule = { + name: 'utils', + proto: { + utils: Utils, + }, + static: { + utils: Utils, + }, + }; + + var ResizeModule = { + name: 'resize', + instance: { + getSize: function getSize() { + var app = this; + if (!app.root[0]) { return { width: 0, height: 0, left: 0, top: 0 }; } + var offset = app.root.offset(); + var ref = [app.root[0].offsetWidth, app.root[0].offsetHeight, offset.left, offset.top]; + var width = ref[0]; + var height = ref[1]; + var left = ref[2]; + var top = ref[3]; + app.width = width; + app.height = height; + app.left = left; + app.top = top; + return { width: width, height: height, left: left, top: top }; + }, + }, + on: { + init: function init() { + var app = this; + + // Get Size + app.getSize(); + + // Emit resize + win.addEventListener('resize', function () { + app.emit('resize'); + }, false); + + // Emit orientationchange + win.addEventListener('orientationchange', function () { + app.emit('orientationchange'); + }); + }, + orientationchange: function orientationchange() { + var app = this; + // Fix iPad weird body scroll + if (app.device.ipad) { + doc.body.scrollLeft = 0; + setTimeout(function () { + doc.body.scrollLeft = 0; + }, 0); + } + }, + resize: function resize() { + var app = this; + app.getSize(); + }, + }, + }; + + /* eslint no-param-reassign: "off" */ + + var RequestModule = { + name: 'request', + proto: { + request: Request, + }, + static: { + request: Request, + }, + }; + + /* eslint-disable no-nested-ternary */ + + function initTouch() { + var app = this; + var params = app.params.touch; + var useRipple = params[((app.theme) + "TouchRipple")]; + + if (Device.ios && Device.webView) { + // Strange hack required for iOS 8 webview to work on inputs + win.addEventListener('touchstart', function () {}); + } + + var touchStartX; + var touchStartY; + var targetElement; + var isMoved; + var tapHoldFired; + var tapHoldTimeout; + var preventClick; + + var activableElement; + var activeTimeout; + + var rippleWave; + var rippleTarget; + var rippleTimeout; + + function findActivableElement(el) { + var target = $(el); + var parents = target.parents(params.activeStateElements); + if (target.closest('.no-active-state').length) { + return null; + } + var activable; + if (target.is(params.activeStateElements)) { + activable = target; + } + if (parents.length > 0) { + activable = activable ? activable.add(parents) : parents; + } + if (activable && activable.length > 1) { + var newActivable = []; + var preventPropagation; + for (var i = 0; i < activable.length; i += 1) { + if (!preventPropagation) { + newActivable.push(activable[i]); + if (activable.eq(i).hasClass('prevent-active-state-propagation') + || activable.eq(i).hasClass('no-active-state-propagation') + ) { + preventPropagation = true; + } + } + } + activable = $(newActivable); + } + return activable || target; + } + + function isInsideScrollableView(el) { + var pageContent = el.parents('.page-content'); + return pageContent.length > 0; + } + + function addActive() { + if (!activableElement) { return; } + activableElement.addClass('active-state'); + } + function removeActive() { + if (!activableElement) { return; } + activableElement.removeClass('active-state'); + activableElement = null; + } + + // Ripple handlers + function findRippleElement(el) { + var rippleElements = params.touchRippleElements; + var $el = $(el); + if ($el.is(rippleElements)) { + if ($el.hasClass('no-ripple')) { + return false; + } + return $el; + } + if ($el.parents(rippleElements).length > 0) { + var rippleParent = $el.parents(rippleElements).eq(0); + if (rippleParent.hasClass('no-ripple')) { + return false; + } + return rippleParent; + } + return false; + } + function createRipple($el, x, y) { + if (!$el) { return; } + rippleWave = app.touchRipple.create($el, x, y); + } + + function removeRipple() { + if (!rippleWave) { return; } + rippleWave.remove(); + rippleWave = undefined; + rippleTarget = undefined; + } + function rippleTouchStart(el) { + rippleTarget = findRippleElement(el); + if (!rippleTarget || rippleTarget.length === 0) { + rippleTarget = undefined; + return; + } + var inScrollable = isInsideScrollableView(rippleTarget); + + if (!inScrollable) { + removeRipple(); + createRipple(rippleTarget, touchStartX, touchStartY); + } else { + clearTimeout(rippleTimeout); + rippleTimeout = setTimeout(function () { + removeRipple(); + createRipple(rippleTarget, touchStartX, touchStartY); + }, 80); + } + } + function rippleTouchMove() { + clearTimeout(rippleTimeout); + removeRipple(); + } + function rippleTouchEnd() { + if (!rippleWave && rippleTarget && !isMoved) { + clearTimeout(rippleTimeout); + createRipple(rippleTarget, touchStartX, touchStartY); + setTimeout(removeRipple, 0); + } else { + removeRipple(); + } + } + + // Mouse Handlers + function handleMouseDown(e) { + var $activableEl = findActivableElement(e.target); + if ($activableEl) { + $activableEl.addClass('active-state'); + if ('which' in e && e.which === 3) { + setTimeout(function () { + $('.active-state').removeClass('active-state'); + }, 0); + } + } + + if (useRipple) { + touchStartX = e.pageX; + touchStartY = e.pageY; + rippleTouchStart(e.target, e.pageX, e.pageY); + } + } + function handleMouseMove() { + if (!params.activeStateOnMouseMove) { + $('.active-state').removeClass('active-state'); + } + if (useRipple) { + rippleTouchMove(); + } + } + function handleMouseUp() { + $('.active-state').removeClass('active-state'); + if (useRipple) { + rippleTouchEnd(); + } + } + + function handleTouchCancel() { + targetElement = null; + + // Remove Active State + clearTimeout(activeTimeout); + clearTimeout(tapHoldTimeout); + if (params.activeState) { + removeActive(); + } + + // Remove Ripple + if (useRipple) { + rippleTouchEnd(); + } + } + + function handleTouchStart(e) { + isMoved = false; + tapHoldFired = false; + preventClick = false; + if (e.targetTouches.length > 1) { + if (activableElement) { removeActive(); } + return true; + } + if (e.touches.length > 1 && activableElement) { + removeActive(); + } + if (params.tapHold) { + if (tapHoldTimeout) { clearTimeout(tapHoldTimeout); } + tapHoldTimeout = setTimeout(function () { + if (e && e.touches && e.touches.length > 1) { return; } + tapHoldFired = true; + e.preventDefault(); + preventClick = true; + $(e.target).trigger('taphold', e); + app.emit('taphold', e); + }, params.tapHoldDelay); + } + targetElement = e.target; + touchStartX = e.targetTouches[0].pageX; + touchStartY = e.targetTouches[0].pageY; + + if (params.activeState) { + activableElement = findActivableElement(targetElement); + if (activableElement && !isInsideScrollableView(activableElement)) { + addActive(); + } else if (activableElement) { + activeTimeout = setTimeout(addActive, 80); + } + } + if (useRipple) { + rippleTouchStart(targetElement); + } + return true; + } + function handleTouchMove(e) { + var touch; + var distance; + if (e.type === 'touchmove') { + touch = e.targetTouches[0]; + distance = params.touchClicksDistanceThreshold; + } + + if (distance && touch) { + var pageX = touch.pageX; + var pageY = touch.pageY; + if (Math.abs(pageX - touchStartX) > distance || Math.abs(pageY - touchStartY) > distance) { + isMoved = true; + } + } else { + isMoved = true; + } + if (isMoved) { + preventClick = true; + if (params.tapHold) { + clearTimeout(tapHoldTimeout); + } + if (params.activeState) { + clearTimeout(activeTimeout); + removeActive(); + } + if (useRipple) { + rippleTouchMove(); + } + } + } + function handleTouchEnd(e) { + clearTimeout(activeTimeout); + clearTimeout(tapHoldTimeout); + if (doc.activeElement === e.target) { + if (params.activeState) { removeActive(); } + if (useRipple) { + rippleTouchEnd(); + } + return true; + } + if (params.activeState) { + addActive(); + setTimeout(removeActive, 0); + } + if (useRipple) { + rippleTouchEnd(); + } + if ((params.tapHoldPreventClicks && tapHoldFired) || preventClick) { + if (e.cancelable) { e.preventDefault(); } + preventClick = true; + return false; + } + return true; + } + function handleClick(e) { + var isOverswipe = e && e.detail && e.detail === 'f7Overswipe'; + var localPreventClick = preventClick; + if (targetElement && e.target !== targetElement) { + if (isOverswipe) { + localPreventClick = false; + } else { + localPreventClick = true; + } + } + if (params.tapHold && params.tapHoldPreventClicks && tapHoldFired) { + localPreventClick = true; + } + if (localPreventClick) { + e.stopImmediatePropagation(); + e.stopPropagation(); + e.preventDefault(); + } + + if (params.tapHold) { + tapHoldTimeout = setTimeout( + function () { + tapHoldFired = false; + }, + (Device.ios || Device.androidChrome ? 100 : 400) + ); + } + preventClick = false; + targetElement = null; + + return !localPreventClick; + } + + function emitAppTouchEvent(name, e) { + app.emit({ + events: name, + data: [e], + }); + } + function appClick(e) { + emitAppTouchEvent('click', e); + } + function appTouchStartActive(e) { + emitAppTouchEvent('touchstart touchstart:active', e); + } + function appTouchMoveActive(e) { + emitAppTouchEvent('touchmove touchmove:active', e); + } + function appTouchEndActive(e) { + emitAppTouchEvent('touchend touchend:active', e); + } + function appTouchStartPassive(e) { + emitAppTouchEvent('touchstart:passive', e); + } + function appTouchMovePassive(e) { + emitAppTouchEvent('touchmove:passive', e); + } + function appTouchEndPassive(e) { + emitAppTouchEvent('touchend:passive', e); + } + function appGestureActive(e) { + emitAppTouchEvent(((e.type) + " " + (e.type) + ":active"), e); + } + function appGesturePassive(e) { + emitAppTouchEvent(((e.type) + ":passive"), e); + } + + + var passiveListener = Support.passiveListener ? { passive: true } : false; + var passiveListenerCapture = Support.passiveListener ? { passive: true, capture: true } : true; + var activeListener = Support.passiveListener ? { passive: false } : false; + var activeListenerCapture = Support.passiveListener ? { passive: false, capture: true } : true; + + doc.addEventListener('click', appClick, true); + + if (Support.passiveListener) { + doc.addEventListener(app.touchEvents.start, appTouchStartActive, activeListenerCapture); + doc.addEventListener(app.touchEvents.move, appTouchMoveActive, activeListener); + doc.addEventListener(app.touchEvents.end, appTouchEndActive, activeListener); + + doc.addEventListener(app.touchEvents.start, appTouchStartPassive, passiveListenerCapture); + doc.addEventListener(app.touchEvents.move, appTouchMovePassive, passiveListener); + doc.addEventListener(app.touchEvents.end, appTouchEndPassive, passiveListener); + if (Support.touch && Support.gestures) { + doc.addEventListener('gesturestart', appGestureActive, activeListener); + doc.addEventListener('gesturechange', appGestureActive, activeListener); + doc.addEventListener('gestureend', appGestureActive, activeListener); + + doc.addEventListener('gesturestart', appGesturePassive, passiveListener); + doc.addEventListener('gesturechange', appGesturePassive, passiveListener); + doc.addEventListener('gestureend', appGesturePassive, passiveListener); + } + } else { + doc.addEventListener(app.touchEvents.start, function (e) { + appTouchStartActive(e); + appTouchStartPassive(e); + }, true); + doc.addEventListener(app.touchEvents.move, function (e) { + appTouchMoveActive(e); + appTouchMovePassive(e); + }, false); + doc.addEventListener(app.touchEvents.end, function (e) { + appTouchEndActive(e); + appTouchEndPassive(e); + }, false); + if (Support.touch && Support.gestures) { + doc.addEventListener('gesturestart', function (e) { + appGestureActive(e); + appGesturePassive(e); + }, false); + doc.addEventListener('gesturechange', function (e) { + appGestureActive(e); + appGesturePassive(e); + }, false); + doc.addEventListener('gestureend', function (e) { + appGestureActive(e); + appGesturePassive(e); + }, false); + } + } + + if (Support.touch) { + app.on('click', handleClick); + app.on('touchstart', handleTouchStart); + app.on('touchmove', handleTouchMove); + app.on('touchend', handleTouchEnd); + doc.addEventListener('touchcancel', handleTouchCancel, { passive: true }); + } else if (params.activeState) { + app.on('touchstart', handleMouseDown); + app.on('touchmove', handleMouseMove); + app.on('touchend', handleMouseUp); + doc.addEventListener('pointercancel', handleMouseUp, { passive: true }); + } + doc.addEventListener('contextmenu', function (e) { + if (params.disableContextMenu && (Device.ios || Device.android || Device.cordova)) { + e.preventDefault(); + } + if (useRipple) { + if (activableElement) { removeActive(); } + rippleTouchEnd(); + } + }); + } + + var TouchModule = { + name: 'touch', + params: { + touch: { + // Clicks + touchClicksDistanceThreshold: 5, + // ContextMenu + disableContextMenu: false, + // Tap Hold + tapHold: false, + tapHoldDelay: 750, + tapHoldPreventClicks: true, + // Active State + activeState: true, + 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: false, + mdTouchRipple: true, + iosTouchRipple: false, + auroraTouchRipple: false, + 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', + }, + }, + instance: { + touchEvents: { + start: Support.touch ? 'touchstart' : (Support.pointerEvents ? 'pointerdown' : 'mousedown'), + move: Support.touch ? 'touchmove' : (Support.pointerEvents ? 'pointermove' : 'mousemove'), + end: Support.touch ? 'touchend' : (Support.pointerEvents ? 'pointerup' : 'mouseup'), + }, + }, + on: { + init: initTouch, + }, + }; + + /** + * Tokenize input string. + */ + function lexer(str) { + var tokens = []; + var i = 0; + while (i < str.length) { + var char = str[i]; + if (char === "*" || char === "+" || char === "?") { + tokens.push({ type: "MODIFIER", index: i, value: str[i++] }); + continue; + } + if (char === "\\") { + tokens.push({ type: "ESCAPED_CHAR", index: i++, value: str[i++] }); + continue; + } + if (char === "{") { + tokens.push({ type: "OPEN", index: i, value: str[i++] }); + continue; + } + if (char === "}") { + tokens.push({ type: "CLOSE", index: i, value: str[i++] }); + continue; + } + if (char === ":") { + var name = ""; + var j = i + 1; + while (j < str.length) { + var code = str.charCodeAt(j); + if ( + // `0-9` + (code >= 48 && code <= 57) || + // `A-Z` + (code >= 65 && code <= 90) || + // `a-z` + (code >= 97 && code <= 122) || + // `_` + code === 95) { + name += str[j++]; + continue; + } + break; + } + if (!name) + { throw new TypeError("Missing parameter name at " + i); } + tokens.push({ type: "NAME", index: i, value: name }); + i = j; + continue; + } + if (char === "(") { + var count = 1; + var pattern = ""; + var j = i + 1; + if (str[j] === "?") { + throw new TypeError("Pattern cannot start with \"?\" at " + j); + } + while (j < str.length) { + if (str[j] === "\\") { + pattern += str[j++] + str[j++]; + continue; + } + if (str[j] === ")") { + count--; + if (count === 0) { + j++; + break; + } + } + else if (str[j] === "(") { + count++; + if (str[j + 1] !== "?") { + throw new TypeError("Capturing groups are not allowed at " + j); + } + } + pattern += str[j++]; + } + if (count) + { throw new TypeError("Unbalanced pattern at " + i); } + if (!pattern) + { throw new TypeError("Missing pattern at " + i); } + tokens.push({ type: "PATTERN", index: i, value: pattern }); + i = j; + continue; + } + tokens.push({ type: "CHAR", index: i, value: str[i++] }); + } + tokens.push({ type: "END", index: i, value: "" }); + return tokens; + } + /** + * Parse a string for the raw tokens. + */ + function parse(str, options) { + if (options === void 0) { options = {}; } + var tokens = lexer(str); + var _a = options.prefixes, prefixes = _a === void 0 ? "./" : _a; + var defaultPattern = "[^" + escapeString(options.delimiter || "/#?") + "]+?"; + var result = []; + var key = 0; + var i = 0; + var path = ""; + var tryConsume = function (type) { + if (i < tokens.length && tokens[i].type === type) + { return tokens[i++].value; } + }; + var mustConsume = function (type) { + var value = tryConsume(type); + if (value !== undefined) + { return value; } + var _a = tokens[i], nextType = _a.type, index = _a.index; + throw new TypeError("Unexpected " + nextType + " at " + index + ", expected " + type); + }; + var consumeText = function () { + var result = ""; + var value; + // tslint:disable-next-line + while ((value = tryConsume("CHAR") || tryConsume("ESCAPED_CHAR"))) { + result += value; + } + return result; + }; + while (i < tokens.length) { + var char = tryConsume("CHAR"); + var name = tryConsume("NAME"); + var pattern = tryConsume("PATTERN"); + if (name || pattern) { + var prefix = char || ""; + if (prefixes.indexOf(prefix) === -1) { + path += prefix; + prefix = ""; + } + if (path) { + result.push(path); + path = ""; + } + result.push({ + name: name || key++, + prefix: prefix, + suffix: "", + pattern: pattern || defaultPattern, + modifier: tryConsume("MODIFIER") || "" + }); + continue; + } + var value = char || tryConsume("ESCAPED_CHAR"); + if (value) { + path += value; + continue; + } + if (path) { + result.push(path); + path = ""; + } + var open = tryConsume("OPEN"); + if (open) { + var prefix = consumeText(); + var name_1 = tryConsume("NAME") || ""; + var pattern_1 = tryConsume("PATTERN") || ""; + var suffix = consumeText(); + mustConsume("CLOSE"); + result.push({ + name: name_1 || (pattern_1 ? key++ : ""), + pattern: name_1 && !pattern_1 ? defaultPattern : pattern_1, + prefix: prefix, + suffix: suffix, + modifier: tryConsume("MODIFIER") || "" + }); + continue; + } + mustConsume("END"); + } + return result; + } + /** + * Compile a string to a template function for the path. + */ + function compile(str, options) { + return tokensToFunction(parse(str, options), options); + } + /** + * Expose a method for transforming tokens into the path function. + */ + function tokensToFunction(tokens, options) { + if (options === void 0) { options = {}; } + var reFlags = flags(options); + var _a = options.encode, encode = _a === void 0 ? function (x) { return x; } : _a, _b = options.validate, validate = _b === void 0 ? true : _b; + // Compile all the tokens into regexps. + var matches = tokens.map(function (token) { + if (typeof token === "object") { + return new RegExp("^(?:" + token.pattern + ")$", reFlags); + } + }); + return function (data) { + var path = ""; + for (var i = 0; i < tokens.length; i++) { + var token = tokens[i]; + if (typeof token === "string") { + path += token; + continue; + } + var value = data ? data[token.name] : undefined; + var optional = token.modifier === "?" || token.modifier === "*"; + var repeat = token.modifier === "*" || token.modifier === "+"; + if (Array.isArray(value)) { + if (!repeat) { + throw new TypeError("Expected \"" + token.name + "\" to not repeat, but got an array"); + } + if (value.length === 0) { + if (optional) + { continue; } + throw new TypeError("Expected \"" + token.name + "\" to not be empty"); + } + for (var j = 0; j < value.length; j++) { + var segment = encode(value[j], token); + if (validate && !matches[i].test(segment)) { + throw new TypeError("Expected all \"" + token.name + "\" to match \"" + token.pattern + "\", but got \"" + segment + "\""); + } + path += token.prefix + segment + token.suffix; + } + continue; + } + if (typeof value === "string" || typeof value === "number") { + var segment = encode(String(value), token); + if (validate && !matches[i].test(segment)) { + throw new TypeError("Expected \"" + token.name + "\" to match \"" + token.pattern + "\", but got \"" + segment + "\""); + } + path += token.prefix + segment + token.suffix; + continue; + } + if (optional) + { continue; } + var typeOfMessage = repeat ? "an array" : "a string"; + throw new TypeError("Expected \"" + token.name + "\" to be " + typeOfMessage); + } + return path; + }; + } + /** + * Escape a regular expression string. + */ + function escapeString(str) { + return str.replace(/([.+*?=^!:${}()[\]|/\\])/g, "\\$1"); + } + /** + * Get the flags for a regexp from the options. + */ + function flags(options) { + return options && options.sensitive ? "" : "i"; + } + /** + * Pull out keys from a regexp. + */ + function regexpToRegexp(path, keys) { + if (!keys) + { return path; } + // Use a negative lookahead to match only capturing groups. + var groups = path.source.match(/\((?!\?)/g); + if (groups) { + for (var i = 0; i < groups.length; i++) { + keys.push({ + name: i, + prefix: "", + suffix: "", + modifier: "", + pattern: "" + }); + } + } + return path; + } + /** + * Transform an array into a regexp. + */ + function arrayToRegexp(paths, keys, options) { + var parts = paths.map(function (path) { return pathToRegexp(path, keys, options).source; }); + return new RegExp("(?:" + parts.join("|") + ")", flags(options)); + } + /** + * Create a path regexp from string input. + */ + function stringToRegexp(path, keys, options) { + return tokensToRegexp(parse(path, options), keys, options); + } + /** + * Expose a function for taking tokens and returning a RegExp. + */ + function tokensToRegexp(tokens, keys, options) { + if (options === void 0) { options = {}; } + var _a = options.strict, strict = _a === void 0 ? false : _a, _b = options.start, start = _b === void 0 ? true : _b, _c = options.end, end = _c === void 0 ? true : _c, _d = options.encode, encode = _d === void 0 ? function (x) { return x; } : _d; + var endsWith = "[" + escapeString(options.endsWith || "") + "]|$"; + var delimiter = "[" + escapeString(options.delimiter || "/#?") + "]"; + var route = start ? "^" : ""; + // Iterate over the tokens and create our regexp string. + for (var _i = 0, tokens_1 = tokens; _i < tokens_1.length; _i++) { + var token = tokens_1[_i]; + if (typeof token === "string") { + route += escapeString(encode(token)); + } + else { + var prefix = escapeString(encode(token.prefix)); + var suffix = escapeString(encode(token.suffix)); + if (token.pattern) { + if (keys) + { keys.push(token); } + if (prefix || suffix) { + if (token.modifier === "+" || token.modifier === "*") { + var mod = token.modifier === "*" ? "?" : ""; + route += "(?:" + prefix + "((?:" + token.pattern + ")(?:" + suffix + prefix + "(?:" + token.pattern + "))*)" + suffix + ")" + mod; + } + else { + route += "(?:" + prefix + "(" + token.pattern + ")" + suffix + ")" + token.modifier; + } + } + else { + route += "(" + token.pattern + ")" + token.modifier; + } + } + else { + route += "(?:" + prefix + suffix + ")" + token.modifier; + } + } + } + if (end) { + if (!strict) + { route += delimiter + "?"; } + route += !options.endsWith ? "$" : "(?=" + endsWith + ")"; + } + else { + var endToken = tokens[tokens.length - 1]; + var isEndDelimited = typeof endToken === "string" + ? delimiter.indexOf(endToken[endToken.length - 1]) > -1 + : // tslint:disable-next-line + endToken === undefined; + if (!strict) { + route += "(?:" + delimiter + "(?=" + endsWith + "))?"; + } + if (!isEndDelimited) { + route += "(?=" + delimiter + "|" + endsWith + ")"; + } + } + return new RegExp(route, flags(options)); + } + /** + * Normalize the given path string, returning a regular expression. + * + * An empty array can be passed in for the keys, which will hold the + * placeholder key descriptions. For example, using `/user/:id`, `keys` will + * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`. + */ + function pathToRegexp(path, keys, options) { + if (path instanceof RegExp) + { return regexpToRegexp(path, keys); } + if (Array.isArray(path)) + { return arrayToRegexp(path, keys, options); } + return stringToRegexp(path, keys, options); + } + + var History = { + queue: [], + clearQueue: function clearQueue() { + if (History.queue.length === 0) { return; } + var currentQueue = History.queue.shift(); + currentQueue(); + }, + routerQueue: [], + clearRouterQueue: function clearRouterQueue() { + if (History.routerQueue.length === 0) { return; } + var currentQueue = History.routerQueue.pop(); + var router = currentQueue.router; + var stateUrl = currentQueue.stateUrl; + var action = currentQueue.action; + + var animate = router.params.animate; + if (router.params.pushStateAnimate === false) { animate = false; } + + if (action === 'back') { + router.back({ animate: animate, pushState: false }); + } + if (action === 'load') { + router.navigate(stateUrl, { animate: animate, pushState: false }); + } + }, + handle: function handle(e) { + if (History.blockPopstate) { return; } + var app = this; + // const mainView = app.views.main; + var state = e.state; + History.previousState = History.state; + History.state = state; + + History.allowChange = true; + History.clearQueue(); + + state = History.state; + if (!state) { state = {}; } + + app.views.forEach(function (view) { + var router = view.router; + var viewState = state[view.id]; + if (!viewState && view.params.pushState) { + viewState = { + url: view.router.history[0], + }; + } + if (!viewState) { return; } + var stateUrl = viewState.url || undefined; + + var animate = router.params.animate; + if (router.params.pushStateAnimate === false) { animate = false; } + + if (stateUrl !== router.url) { + if (router.history.indexOf(stateUrl) >= 0) { + // Go Back + if (router.allowPageChange) { + router.back({ animate: animate, pushState: false }); + } else { + History.routerQueue.push({ + action: 'back', + router: router, + }); + } + } else if (router.allowPageChange) { + // Load page + router.navigate(stateUrl, { animate: animate, pushState: false }); + } else { + History.routerQueue.unshift({ + action: 'load', + stateUrl: stateUrl, + router: router, + }); + } + } + }); + }, + initViewState: function initViewState(viewId, viewState) { + var obj; + + var newState = Utils.extend({}, (History.state || {}), ( obj = {}, obj[viewId] = viewState, obj )); + History.state = newState; + win.history.replaceState(newState, ''); + }, + push: function push(viewId, viewState, url) { + var obj; + + if (!History.allowChange) { + History.queue.push(function () { + History.push(viewId, viewState, url); + }); + return; + } + History.previousState = History.state; + var newState = Utils.extend({}, (History.previousState || {}), ( obj = {}, obj[viewId] = viewState, obj )); + History.state = newState; + win.history.pushState(newState, '', url); + }, + replace: function replace(viewId, viewState, url) { + var obj; + + if (!History.allowChange) { + History.queue.push(function () { + History.replace(viewId, viewState, url); + }); + return; + } + History.previousState = History.state; + var newState = Utils.extend({}, (History.previousState || {}), ( obj = {}, obj[viewId] = viewState, obj )); + History.state = newState; + win.history.replaceState(newState, '', url); + }, + go: function go(index) { + History.allowChange = false; + win.history.go(index); + }, + back: function back() { + History.allowChange = false; + win.history.back(); + }, + allowChange: true, + previousState: {}, + state: win.history.state, + blockPopstate: true, + init: function init(app) { + $(win).on('load', function () { + setTimeout(function () { + History.blockPopstate = false; + }, 0); + }); + + if (doc.readyState && doc.readyState === 'complete') { + History.blockPopstate = false; + } + + $(win).on('popstate', History.handle.bind(app)); + }, + }; + + function SwipeBack(r) { + var router = r; + var $el = router.$el; + var $navbarsEl = router.$navbarsEl; + var app = router.app; + var params = router.params; + var isTouched = false; + var isMoved = false; + var touchesStart = {}; + var isScrolling; + var $currentPageEl = []; + var $previousPageEl = []; + var viewContainerWidth; + var touchesDiff; + var allowViewTouchMove = true; + var touchStartTime; + var $currentNavbarEl = []; + var $previousNavbarEl = []; + var dynamicNavbar; + var $pageShadowEl; + var $pageOpacityEl; + + var animatableNavEls; + + var paramsSwipeBackAnimateShadow = params[((app.theme) + "SwipeBackAnimateShadow")]; + var paramsSwipeBackAnimateOpacity = params[((app.theme) + "SwipeBackAnimateOpacity")]; + var paramsSwipeBackActiveArea = params[((app.theme) + "SwipeBackActiveArea")]; + var paramsSwipeBackThreshold = params[((app.theme) + "SwipeBackThreshold")]; + + var transformOrigin = app.rtl ? 'right center' : 'left center'; + var transformOriginTitleLarge = app.rtl + ? 'calc(100% - var(--f7-navbar-large-title-padding-left) - var(--f7-safe-area-left)) center' + : 'calc(var(--f7-navbar-large-title-padding-left) + var(--f7-safe-area-left)) center'; + + + function animatableNavElements() { + var els = []; + var inverter = app.rtl ? -1 : 1; + var currentNavIsTransparent = $currentNavbarEl.hasClass('navbar-transparent') && !$currentNavbarEl.hasClass('navbar-large') && !$currentNavbarEl.hasClass('navbar-transparent-visible'); + var currentNavIsLarge = $currentNavbarEl.hasClass('navbar-large'); + var currentNavIsCollapsed = $currentNavbarEl.hasClass('navbar-large-collapsed'); + var currentNavIsLargeTransparent = $currentNavbarEl.hasClass('navbar-large-transparent') + || ( + $currentNavbarEl.hasClass('navbar-large') + && $currentNavbarEl.hasClass('navbar-transparent') + ); + var previousNavIsTransparent = $previousNavbarEl.hasClass('navbar-transparent') && !$previousNavbarEl.hasClass('navbar-large') && !$previousNavbarEl.hasClass('navbar-transparent-visible'); + var previousNavIsLarge = $previousNavbarEl.hasClass('navbar-large'); + var previousNavIsCollapsed = $previousNavbarEl.hasClass('navbar-large-collapsed'); + var previousNavIsLargeTransparent = $previousNavbarEl.hasClass('navbar-large-transparent') + || ( + $previousNavbarEl.hasClass('navbar-large') + && $previousNavbarEl.hasClass('navbar-transparent') + ); + var fromLarge = currentNavIsLarge && !currentNavIsCollapsed; + var toLarge = previousNavIsLarge && !previousNavIsCollapsed; + var $currentNavElements = $currentNavbarEl.find('.left, .title, .right, .subnavbar, .fading, .title-large, .navbar-bg'); + var $previousNavElements = $previousNavbarEl.find('.left, .title, .right, .subnavbar, .fading, .title-large, .navbar-bg'); + var activeNavBackIconText; + var previousNavBackIconText; + + if (params.iosAnimateNavbarBackIcon) { + if ($currentNavbarEl.hasClass('sliding') || $currentNavbarEl.find('.navbar-inner.sliding').length) { + activeNavBackIconText = $currentNavbarEl.find('.left').find('.back .icon + span').eq(0); + } else { + activeNavBackIconText = $currentNavbarEl.find('.left.sliding').find('.back .icon + span').eq(0); + } + if ($previousNavbarEl.hasClass('sliding') || $previousNavbarEl.find('.navbar-inner.sliding').length) { + previousNavBackIconText = $previousNavbarEl.find('.left').find('.back .icon + span').eq(0); + } else { + previousNavBackIconText = $previousNavbarEl.find('.left.sliding').find('.back .icon + span').eq(0); + } + if (activeNavBackIconText.length) { + $previousNavElements.each(function (index, el) { + if (!$(el).hasClass('title')) { return; } + el.f7NavbarLeftOffset += activeNavBackIconText.prev('.icon')[0].offsetWidth; + }); + } + } + $currentNavElements + .each(function (index, navEl) { + var $navEl = $(navEl); + var isSubnavbar = $navEl.hasClass('subnavbar'); + var isLeft = $navEl.hasClass('left'); + var isTitle = $navEl.hasClass('title'); + var isBg = $navEl.hasClass('navbar-bg'); + if ((isTitle || isBg) && currentNavIsTransparent) { return; } + if (!fromLarge && $navEl.hasClass('.title-large')) { return; } + var el = { + el: navEl, + }; + if (fromLarge) { + if (isTitle) { return; } + if ($navEl.hasClass('title-large')) { + if (els.indexOf(el) < 0) { els.push(el); } + el.overflow = 'visible'; + $navEl.find('.title-large-text').each(function (subIndex, subNavEl) { + els.push({ + el: subNavEl, + transform: function (progress) { return ("translateX(" + (progress * 100 * inverter) + "%)"); }, + }); + }); + return; + } + } + if (toLarge) { + if (!fromLarge) { + if ($navEl.hasClass('title-large')) { + if (els.indexOf(el) < 0) { els.push(el); } + el.opacity = 0; + } + } + if (isLeft) { + if (els.indexOf(el) < 0) { els.push(el); } + el.opacity = function (progress) { return (1 - (Math.pow( progress, 0.33 ))); }; + $navEl.find('.back span').each(function (subIndex, subNavEl) { + els.push({ + el: subNavEl, + 'transform-origin': transformOrigin, + transform: function (progress) { return ("translateX(calc(" + progress + " * (var(--f7-navbarTitleLargeOffset) - var(--f7-navbarLeftTextOffset)))) translateY(calc(" + progress + " * (var(--f7-navbar-large-title-height) - var(--f7-navbar-large-title-padding-vertical) / 2))) scale(" + (1 + (1 * progress)) + ")"); }, + }); + }); + return; + } + } + if (isBg) { + if (els.indexOf(el) < 0) { els.push(el); } + if (!fromLarge && !toLarge) { + if (currentNavIsCollapsed) { + if (currentNavIsLargeTransparent) { + el.className = 'ios-swipeback-navbar-bg-large'; + } + el.transform = function (progress) { return ("translateX(" + (100 * progress * inverter) + "%) translateY(calc(-1 * var(--f7-navbar-large-title-height)))"); }; + } else { + el.transform = function (progress) { return ("translateX(" + (100 * progress * inverter) + "%)"); }; + } + } + if (!fromLarge && toLarge) { + el.className = 'ios-swipeback-navbar-bg-large'; + el.transform = function (progress) { return ("translateX(" + (100 * progress * inverter) + "%) translateY(calc(-1 * " + (1 - progress) + " * var(--f7-navbar-large-title-height)))"); }; + } + if (fromLarge && toLarge) { + el.transform = function (progress) { return ("translateX(" + (100 * progress * inverter) + "%)"); }; + } + if (fromLarge && !toLarge) { + el.transform = function (progress) { return ("translateX(" + (100 * progress * inverter) + "%) translateY(calc(-" + progress + " * var(--f7-navbar-large-title-height)))"); }; + } + return; + } + if ($navEl.hasClass('title-large')) { return; } + var isSliding = $navEl.hasClass('sliding') || $navEl.parents('.navbar-inner.sliding').length; + if (els.indexOf(el) < 0) { els.push(el); } + if (!isSubnavbar || (isSubnavbar && !isSliding)) { + el.opacity = function (progress) { return (1 - (Math.pow( progress, 0.33 ))); }; + } + if (isSliding) { + var transformTarget = el; + if (isLeft && activeNavBackIconText.length && params.iosAnimateNavbarBackIcon) { + var textEl = { el: activeNavBackIconText[0] }; + transformTarget = textEl; + els.push(textEl); + } + transformTarget.transform = function (progress) { + var activeNavTranslate = progress * transformTarget.el.f7NavbarRightOffset; + if (Device.pixelRatio === 1) { activeNavTranslate = Math.round(activeNavTranslate); } + if (isSubnavbar && currentNavIsLarge) { + return ("translate3d(" + activeNavTranslate + "px, calc(-1 * var(--f7-navbar-large-collapse-progress) * var(--f7-navbar-large-title-height)), 0)"); + } + return ("translate3d(" + activeNavTranslate + "px,0,0)"); + }; + } + }); + $previousNavElements + .each(function (index, navEl) { + var $navEl = $(navEl); + var isSubnavbar = $navEl.hasClass('subnavbar'); + var isLeft = $navEl.hasClass('left'); + var isTitle = $navEl.hasClass('title'); + var isBg = $navEl.hasClass('navbar-bg'); + if ((isTitle || isBg) && previousNavIsTransparent) { return; } + var el = { + el: navEl, + }; + if (toLarge) { + if (isTitle) { return; } + if (els.indexOf(el) < 0) { els.push(el); } + + if ($navEl.hasClass('title-large')) { + el.opacity = 1; + el.overflow = 'visible'; + $navEl.find('.title-large-text').each(function (subIndex, subNavEl) { + els.push({ + el: subNavEl, + 'transform-origin': transformOriginTitleLarge, + opacity: function (progress) { return (Math.pow( progress, 3 )); }, + transform: function (progress) { return ("translateX(calc(" + (1 - progress) + " * (var(--f7-navbarLeftTextOffset) - var(--f7-navbarTitleLargeOffset)))) translateY(calc(" + (progress - 1) + " * var(--f7-navbar-large-title-height) + " + (1 - progress) + " * var(--f7-navbar-large-title-padding-vertical))) scale(" + (0.5 + progress * 0.5) + ")"); }, + }); + }); + return; + } + } + if (isBg) { + if (els.indexOf(el) < 0) { els.push(el); } + if (!fromLarge && !toLarge) { + if (previousNavIsCollapsed) { + if (previousNavIsLargeTransparent) { + el.className = 'ios-swipeback-navbar-bg-large'; + } + el.transform = function (progress) { return ("translateX(" + ((-100 + 100 * progress) * inverter) + "%) translateY(calc(-1 * var(--f7-navbar-large-title-height)))"); }; + } else { + el.transform = function (progress) { return ("translateX(" + ((-100 + 100 * progress) * inverter) + "%)"); }; + } + } + if (!fromLarge && toLarge) { + el.transform = function (progress) { return ("translateX(" + ((-100 + 100 * progress) * inverter) + "%) translateY(calc(-1 * " + (1 - progress) + " * var(--f7-navbar-large-title-height)))"); }; + } + if (fromLarge && !toLarge) { + el.className = 'ios-swipeback-navbar-bg-large'; + el.transform = function (progress) { return ("translateX(" + ((-100 + 100 * progress) * inverter) + "%) translateY(calc(-" + progress + " * var(--f7-navbar-large-title-height)))"); }; + } + if (fromLarge && toLarge) { + el.transform = function (progress) { return ("translateX(" + ((-100 + 100 * progress) * inverter) + "%)"); }; + } + + return; + } + if ($navEl.hasClass('title-large')) { return; } + var isSliding = $navEl.hasClass('sliding') || $previousNavbarEl.children('.navbar-inner.sliding').length; + if (els.indexOf(el) < 0) { els.push(el); } + if (!isSubnavbar || (isSubnavbar && !isSliding)) { + el.opacity = function (progress) { return (Math.pow( progress, 3 )); }; + } + if (isSliding) { + var transformTarget = el; + if (isLeft && previousNavBackIconText.length && params.iosAnimateNavbarBackIcon) { + var textEl = { el: previousNavBackIconText[0] }; + transformTarget = textEl; + els.push(textEl); + } + transformTarget.transform = function (progress) { + var previousNavTranslate = transformTarget.el.f7NavbarLeftOffset * (1 - progress); + if (Device.pixelRatio === 1) { previousNavTranslate = Math.round(previousNavTranslate); } + if (isSubnavbar && previousNavIsLarge) { + return ("translate3d(" + previousNavTranslate + "px, calc(-1 * var(--f7-navbar-large-collapse-progress) * var(--f7-navbar-large-title-height)), 0)"); + } + return ("translate3d(" + previousNavTranslate + "px,0,0)"); + }; + } + }); + return els; + } + + function setAnimatableNavElements(ref) { + if ( ref === void 0 ) ref = {}; + var progress = ref.progress; + var reset = ref.reset; + var transition = ref.transition; + var reflow = ref.reflow; + + var styles = ['overflow', 'transform', 'transform-origin', 'opacity']; + if (transition === true || transition === false) { + for (var i = 0; i < animatableNavEls.length; i += 1) { + var el = animatableNavEls[i]; + if (el && el.el) { + if (transition === true) { el.el.classList.add('navbar-page-transitioning'); } + if (transition === false) { el.el.classList.remove('navbar-page-transitioning'); } + } + } + } + if (reflow && animatableNavEls.length && animatableNavEls[0] && animatableNavEls[0].el) { + // eslint-disable-next-line + animatableNavEls[0].el._clientLeft = animatableNavEls[0].el.clientLeft; + } + for (var i$1 = 0; i$1 < animatableNavEls.length; i$1 += 1) { + var el$1 = animatableNavEls[i$1]; + if (el$1 && el$1.el) { + if (el$1.className && !el$1.classNameSet && !reset) { + el$1.el.classList.add(el$1.className); + el$1.classNameSet = true; + } + if (el$1.className && reset) { + el$1.el.classList.remove(el$1.className); + } + for (var j = 0; j < styles.length; j += 1) { + var styleProp = styles[j]; + if (el$1[styleProp]) { + if (reset) { + el$1.el.style[styleProp] = ''; + } else if (typeof el$1[styleProp] === 'function') { + el$1.el.style[styleProp] = el$1[styleProp](progress); + } else { + el$1.el.style[styleProp] = el$1[styleProp]; + } + } + } + } + } + } + + function handleTouchStart(e) { + var swipeBackEnabled = params[((app.theme) + "SwipeBack")]; + if (!allowViewTouchMove || !swipeBackEnabled || isTouched || (app.swipeout && app.swipeout.el) || !router.allowPageChange) { return; } + if ($(e.target).closest('.range-slider, .calendar-months').length > 0) { return; } + if ($(e.target).closest('.page-master, .page-master-detail').length > 0 && params.masterDetailBreakpoint > 0 && app.width >= params.masterDetailBreakpoint) { return; } + isMoved = false; + isTouched = true; + isScrolling = undefined; + touchesStart.x = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX; + touchesStart.y = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY; + touchStartTime = Utils.now(); + dynamicNavbar = router.dynamicNavbar; + } + function handleTouchMove(e) { + if (!isTouched) { return; } + var pageX = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX; + var pageY = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY; + if (typeof isScrolling === 'undefined') { + isScrolling = !!(isScrolling || Math.abs(pageY - touchesStart.y) > Math.abs(pageX - touchesStart.x)) || (pageX < touchesStart.x && !app.rtl) || (pageX > touchesStart.x && app.rtl); + } + if (isScrolling || e.f7PreventSwipeBack || app.preventSwipeBack) { + isTouched = false; + return; + } + if (!isMoved) { + // Calc values during first move fired + var cancel = false; + var target = $(e.target); + + var swipeout = target.closest('.swipeout'); + if (swipeout.length > 0) { + if (!app.rtl && swipeout.find('.swipeout-actions-left').length > 0) { cancel = true; } + if (app.rtl && swipeout.find('.swipeout-actions-right').length > 0) { cancel = true; } + } + + $currentPageEl = target.closest('.page'); + if ($currentPageEl.hasClass('no-swipeback') || target.closest('.no-swipeback, .card-opened').length > 0) { cancel = true; } + $previousPageEl = $el.find('.page-previous:not(.stacked)'); + if ($previousPageEl.length > 1) { + $previousPageEl = $previousPageEl.eq($previousPageEl.length - 1); + } + var notFromBorder = touchesStart.x - $el.offset().left > paramsSwipeBackActiveArea; + viewContainerWidth = $el.width(); + if (app.rtl) { + notFromBorder = touchesStart.x < ($el.offset().left - $el[0].scrollLeft) + (viewContainerWidth - paramsSwipeBackActiveArea); + } else { + notFromBorder = touchesStart.x - $el.offset().left > paramsSwipeBackActiveArea; + } + if (notFromBorder) { cancel = true; } + if ($previousPageEl.length === 0 || $currentPageEl.length === 0) { cancel = true; } + if (cancel) { + isTouched = false; + return; + } + + if (paramsSwipeBackAnimateShadow) { + $pageShadowEl = $currentPageEl.find('.page-shadow-effect'); + if ($pageShadowEl.length === 0) { + $pageShadowEl = $('

'); + $currentPageEl.append($pageShadowEl); + } + } + if (paramsSwipeBackAnimateOpacity) { + $pageOpacityEl = $previousPageEl.find('.page-opacity-effect'); + if ($pageOpacityEl.length === 0) { + $pageOpacityEl = $('
'); + $previousPageEl.append($pageOpacityEl); + } + } + + if (dynamicNavbar) { + $currentNavbarEl = $navbarsEl.find('.navbar-current:not(.stacked)'); + $previousNavbarEl = $navbarsEl.find('.navbar-previous:not(.stacked)'); + if ($previousNavbarEl.length > 1) { + $previousNavbarEl = $previousNavbarEl.eq($previousNavbarEl.length - 1); + } + + animatableNavEls = animatableNavElements(); + } + + // Close/Hide Any Picker + if ($('.sheet.modal-in').length > 0 && app.sheet) { + app.sheet.close($('.sheet.modal-in')); + } + } + e.f7PreventSwipePanel = true; + isMoved = true; + app.preventSwipePanelBySwipeBack = true; + e.preventDefault(); + + // RTL inverter + var inverter = app.rtl ? -1 : 1; + + // Touches diff + touchesDiff = (pageX - touchesStart.x - paramsSwipeBackThreshold) * inverter; + if (touchesDiff < 0) { touchesDiff = 0; } + var percentage = Math.min(Math.max(touchesDiff / viewContainerWidth, 0), 1); + + // Swipe Back Callback + var callbackData = { + percentage: percentage, + progress: percentage, + currentPageEl: $currentPageEl[0], + previousPageEl: $previousPageEl[0], + currentNavbarEl: $currentNavbarEl[0], + previousNavbarEl: $previousNavbarEl[0], + }; + $el.trigger('swipeback:move', callbackData); + router.emit('swipebackMove', callbackData); + + // Transform pages + var currentPageTranslate = touchesDiff * inverter; + var previousPageTranslate = ((touchesDiff / 5) - (viewContainerWidth / 5)) * inverter; + if (!app.rtl) { + currentPageTranslate = Math.min(currentPageTranslate, viewContainerWidth); + previousPageTranslate = Math.min(previousPageTranslate, 0); + } else { + currentPageTranslate = Math.max(currentPageTranslate, -viewContainerWidth); + previousPageTranslate = Math.max(previousPageTranslate, 0); + } + if (Device.pixelRatio === 1) { + currentPageTranslate = Math.round(currentPageTranslate); + previousPageTranslate = Math.round(previousPageTranslate); + } + + router.swipeBackActive = true; + $([$currentPageEl[0], $previousPageEl[0]]).addClass('page-swipeback-active'); + + $currentPageEl.transform(("translate3d(" + currentPageTranslate + "px,0,0)")); + if (paramsSwipeBackAnimateShadow) { $pageShadowEl[0].style.opacity = 1 - (1 * percentage); } + + if (app.theme === 'ios') { + $previousPageEl.transform(("translate3d(" + previousPageTranslate + "px,0,0)")); + } + if (paramsSwipeBackAnimateOpacity) { $pageOpacityEl[0].style.opacity = 1 - (1 * percentage); } + + // Dynamic Navbars Animation + if (!dynamicNavbar) { return; } + + setAnimatableNavElements({ progress: percentage }); + } + function handleTouchEnd() { + app.preventSwipePanelBySwipeBack = false; + if (!isTouched || !isMoved) { + isTouched = false; + isMoved = false; + return; + } + isTouched = false; + isMoved = false; + router.swipeBackActive = false; + var $pages = $([$currentPageEl[0], $previousPageEl[0]]); + $pages.removeClass('page-swipeback-active'); + if (touchesDiff === 0) { + $pages.transform(''); + if ($pageShadowEl && $pageShadowEl.length > 0) { $pageShadowEl.remove(); } + if ($pageOpacityEl && $pageOpacityEl.length > 0) { $pageOpacityEl.remove(); } + if (dynamicNavbar) { + setAnimatableNavElements({ reset: true }); + } + return; + } + var timeDiff = Utils.now() - touchStartTime; + var pageChanged = false; + // Swipe back to previous page + if ( + (timeDiff < 300 && touchesDiff > 10) + || (timeDiff >= 300 && touchesDiff > viewContainerWidth / 2) + ) { + $currentPageEl.removeClass('page-current').addClass(("page-next" + (app.theme !== 'ios' ? ' page-next-on-right' : ''))); + $previousPageEl.removeClass('page-previous').addClass('page-current').removeAttr('aria-hidden'); + if ($pageShadowEl) { $pageShadowEl[0].style.opacity = ''; } + if ($pageOpacityEl) { $pageOpacityEl[0].style.opacity = ''; } + if (dynamicNavbar) { + router.setNavbarPosition($currentNavbarEl, 'next'); + router.setNavbarPosition($previousNavbarEl, 'current', false); + } + pageChanged = true; + } + // Reset custom styles + // Add transitioning class for transition-duration + $pages.addClass('page-transitioning page-transitioning-swipeback'); + if (!pageChanged) { + // eslint-disable-next-line + $currentPageEl[0]._clientLeft = $currentPageEl[0].clientLeft; + } + $pages.transform(''); + + if (dynamicNavbar) { + setAnimatableNavElements({ progress: pageChanged ? 1 : 0, transition: true, reflow: !pageChanged }); + } + allowViewTouchMove = false; + router.allowPageChange = false; + + // Swipe Back Callback + var callbackData = { + currentPageEl: $currentPageEl[0], + previousPageEl: $previousPageEl[0], + currentNavbarEl: $currentNavbarEl[0], + previousNavbarEl: $previousNavbarEl[0], + }; + + if (pageChanged) { + // Update Route + router.currentRoute = $previousPageEl[0].f7Page.route; + router.currentPage = $previousPageEl[0]; + + // Page before animation callback + router.pageCallback('beforeOut', $currentPageEl, $currentNavbarEl, 'current', 'next', { route: $currentPageEl[0].f7Page.route, swipeBack: true }); + router.pageCallback('beforeIn', $previousPageEl, $previousNavbarEl, 'previous', 'current', { route: $previousPageEl[0].f7Page.route, swipeBack: true }, $currentPageEl[0]); + + $el.trigger('swipeback:beforechange', callbackData); + router.emit('swipebackBeforeChange', callbackData); + } else { + $el.trigger('swipeback:beforereset', callbackData); + router.emit('swipebackBeforeReset', callbackData); + } + + $currentPageEl.transitionEnd(function () { + $pages.removeClass('page-transitioning page-transitioning-swipeback'); + if (dynamicNavbar) { + setAnimatableNavElements({ reset: true, transition: false }); + } + allowViewTouchMove = true; + router.allowPageChange = true; + if (pageChanged) { + // Update History + if (router.history.length === 1) { + router.history.unshift(router.url); + } + router.history.pop(); + router.saveHistory(); + + // Update push state + if (params.pushState) { + History.back(); + } + + // Page after animation callback + router.pageCallback('afterOut', $currentPageEl, $currentNavbarEl, 'current', 'next', { route: $currentPageEl[0].f7Page.route, swipeBack: true }); + router.pageCallback('afterIn', $previousPageEl, $previousNavbarEl, 'previous', 'current', { route: $previousPageEl[0].f7Page.route, swipeBack: true }); + + // Remove Old Page + if (params.stackPages && router.initialPages.indexOf($currentPageEl[0]) >= 0) { + $currentPageEl.addClass('stacked'); + if (dynamicNavbar) { + $currentNavbarEl.addClass('stacked'); + } + } else { + router.pageCallback('beforeRemove', $currentPageEl, $currentNavbarEl, 'next', { swipeBack: true }); + router.removePage($currentPageEl); + if (dynamicNavbar) { + router.removeNavbar($currentNavbarEl); + } + } + + $el.trigger('swipeback:afterchange', callbackData); + router.emit('swipebackAfterChange', callbackData); + + router.emit('routeChanged', router.currentRoute, router.previousRoute, router); + + if (params.preloadPreviousPage) { + router.back(router.history[router.history.length - 2], { preload: true }); + } + } else { + $el.trigger('swipeback:afterreset', callbackData); + router.emit('swipebackAfterReset', callbackData); + } + if ($pageShadowEl && $pageShadowEl.length > 0) { $pageShadowEl.remove(); } + if ($pageOpacityEl && $pageOpacityEl.length > 0) { $pageOpacityEl.remove(); } + }); + } + + function attachEvents() { + var passiveListener = (app.touchEvents.start === 'touchstart' && Support.passiveListener) ? { passive: true, capture: false } : false; + $el.on(app.touchEvents.start, handleTouchStart, passiveListener); + app.on('touchmove:active', handleTouchMove); + app.on('touchend:passive', handleTouchEnd); + } + function detachEvents() { + var passiveListener = (app.touchEvents.start === 'touchstart' && Support.passiveListener) ? { passive: true, capture: false } : false; + $el.off(app.touchEvents.start, handleTouchStart, passiveListener); + app.off('touchmove:active', handleTouchMove); + app.off('touchend:passive', handleTouchEnd); + } + + attachEvents(); + + router.on('routerDestroy', detachEvents); + } + + function redirect (direction, route, options) { + var router = this; + var redirect = route.route.redirect; + if (options.initial && router.params.pushState) { + options.replaceState = true; // eslint-disable-line + options.history = true; // eslint-disable-line + } + function redirectResolve(redirectUrl, redirectOptions) { + if ( redirectOptions === void 0 ) redirectOptions = {}; + + router.allowPageChange = true; + router[direction](redirectUrl, Utils.extend({}, options, redirectOptions)); + } + function redirectReject() { + router.allowPageChange = true; + } + if (typeof redirect === 'function') { + router.allowPageChange = false; + var redirectUrl = redirect.call(router, route, redirectResolve, redirectReject); + if (redirectUrl && typeof redirectUrl === 'string') { + router.allowPageChange = true; + return router[direction](redirectUrl, options); + } + return router; + } + return router[direction](redirect, options); + } + + function processQueue(router, routerQueue, routeQueue, to, from, resolve, reject) { + var queue = []; + + if (Array.isArray(routeQueue)) { + queue.push.apply(queue, routeQueue); + } else if (routeQueue && typeof routeQueue === 'function') { + queue.push(routeQueue); + } + if (routerQueue) { + if (Array.isArray(routerQueue)) { + queue.push.apply(queue, routerQueue); + } else { + queue.push(routerQueue); + } + } + + function next() { + if (queue.length === 0) { + resolve(); + return; + } + var queueItem = queue.shift(); + + queueItem.call( + router, + to, + from, + function () { + next(); + }, + function () { + reject(); + } + ); + } + next(); + } + + function processRouteQueue (to, from, resolve, reject) { + var router = this; + function enterNextRoute() { + if (to && to.route && (router.params.routesBeforeEnter || to.route.beforeEnter)) { + router.allowPageChange = false; + processQueue( + router, + router.params.routesBeforeEnter, + to.route.beforeEnter, + to, + from, + function () { + router.allowPageChange = true; + resolve(); + }, + function () { + reject(); + } + ); + } else { + resolve(); + } + } + function leaveCurrentRoute() { + if (from && from.route && (router.params.routesBeforeLeave || from.route.beforeLeave)) { + router.allowPageChange = false; + processQueue( + router, + router.params.routesBeforeLeave, + from.route.beforeLeave, + to, + from, + function () { + router.allowPageChange = true; + enterNextRoute(); + }, + function () { + reject(); + } + ); + } else { + enterNextRoute(); + } + } + leaveCurrentRoute(); + } + + function appRouterCheck (router, method) { + if (!router.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." + method + "(...)")); + } + } + + function asyncComponent (router, asyncComponent, resolve, reject) { + function resolvePromise(componentPromise) { + componentPromise + .then(function (c) { + // eslint-disable-next-line + resolve({ component: c.default || c._default || c }); + }) + .catch(function (err) { + reject(); + throw new Error(err); + }); + } + if (asyncComponent instanceof Promise) { + resolvePromise(asyncComponent); + return; + } + var asyncComponentResult = asyncComponent.call(router); + if (asyncComponentResult instanceof Promise) { + resolvePromise(asyncComponentResult); + } else { + resolve({ component: asyncComponentResult }); + } + } + + function refreshPage() { + var router = this; + appRouterCheck(router, 'refreshPage'); + return router.navigate(router.currentRoute.url, { + ignoreCache: true, + reloadCurrent: true, + }); + } + + function forward(el, forwardOptions) { + if ( forwardOptions === void 0 ) forwardOptions = {}; + + var router = this; + var $el = $(el); + var app = router.app; + var view = router.view; + var options = Utils.extend(false, { + animate: router.params.animate, + pushState: true, + replaceState: false, + history: true, + reloadCurrent: router.params.reloadPages, + reloadPrevious: false, + reloadAll: false, + clearPreviousHistory: false, + reloadDetail: router.params.reloadDetail, + on: {}, + }, forwardOptions); + + var masterDetailEnabled = router.params.masterDetailBreakpoint > 0; + var isMaster = masterDetailEnabled && options.route && options.route.route && options.route.route.master === true; + var masterPageEl; + var otherDetailPageEl; + + var currentRouteIsModal = router.currentRoute.modal; + var modalType; + if (!currentRouteIsModal) { + ('popup popover sheet loginScreen actions customModal panel').split(' ').forEach(function (modalLoadProp) { + if (router.currentRoute && router.currentRoute.route && router.currentRoute.route[modalLoadProp]) { + currentRouteIsModal = true; + modalType = modalLoadProp; + } + }); + } + + if (currentRouteIsModal) { + var modalToClose = router.currentRoute.modal + || router.currentRoute.route.modalInstance + || app[modalType].get(); + var previousUrl = router.history[router.history.length - 2]; + var previousRoute = router.findMatchingRoute(previousUrl); + if (!previousRoute && previousUrl) { + previousRoute = { + url: previousUrl, + path: previousUrl.split('?')[0], + query: Utils.parseUrlQuery(previousUrl), + route: { + path: previousUrl.split('?')[0], + url: previousUrl, + }, + }; + } + + router.modalRemove(modalToClose); + } + + var dynamicNavbar = router.dynamicNavbar; + + var $viewEl = router.$el; + var $newPage = $el; + var reload = options.reloadPrevious || options.reloadCurrent || options.reloadAll; + var $oldPage; + + var $navbarsEl; + var $newNavbarEl; + var $oldNavbarEl; + + router.allowPageChange = false; + if ($newPage.length === 0) { + router.allowPageChange = true; + return router; + } + + if ($newPage.length) { + // Remove theme elements + router.removeThemeElements($newPage); + } + + if (dynamicNavbar) { + $newNavbarEl = $newPage.children('.navbar'); + $navbarsEl = router.$navbarsEl; + if ($newNavbarEl.length === 0 && $newPage[0] && $newPage[0].f7Page) { + // Try from pageData + $newNavbarEl = $newPage[0].f7Page.$navbarEl; + } + } + + // Save Keep Alive Cache + if (options.route && options.route.route && options.route.route.keepAlive && !options.route.route.keepAliveData) { + options.route.route.keepAliveData = { + pageEl: $el[0], + }; + } + + // Pages In View + var $pagesInView = $viewEl + .children('.page:not(.stacked)') + .filter(function (index, pageInView) { return pageInView !== $newPage[0]; }); + + // Navbars In View + var $navbarsInView; + if (dynamicNavbar) { + $navbarsInView = $navbarsEl + .children('.navbar:not(.stacked)') + .filter(function (index, navbarInView) { return navbarInView !== $newNavbarEl[0]; }); + } + + // Exit when reload previous and only 1 page in view so nothing ro reload + if (options.reloadPrevious && $pagesInView.length < 2) { + router.allowPageChange = true; + return router; + } + + // Find Detail' master page + var isDetail; + var reloadDetail; + var isDetailRoot; + if (masterDetailEnabled && !options.reloadAll) { + for (var i = 0; i < $pagesInView.length; i += 1) { + if (!masterPageEl + && $pagesInView[i].classList.contains('page-master') + ) { + masterPageEl = $pagesInView[i]; + continue; // eslint-disable-line + } + } + isDetail = !isMaster && masterPageEl; + + if (isDetail) { + // Find Other Detail + if (masterPageEl) { + for (var i$1 = 0; i$1 < $pagesInView.length; i$1 += 1) { + if ($pagesInView[i$1].classList.contains('page-master-detail') + ) { + otherDetailPageEl = $pagesInView[i$1]; + continue; // eslint-disable-line + } + } + } + } + reloadDetail = isDetail && options.reloadDetail && app.width >= router.params.masterDetailBreakpoint && masterPageEl; + } + if (isDetail) { + isDetailRoot = !otherDetailPageEl || reloadDetail || options.reloadAll || options.reloadCurrent; + } + + // New Page + var newPagePosition = 'next'; + if (options.reloadCurrent || options.reloadAll || reloadDetail) { + newPagePosition = 'current'; + } else if (options.reloadPrevious) { + newPagePosition = 'previous'; + } + $newPage + .removeClass('page-previous page-current page-next') + .addClass(("page-" + newPagePosition + (isMaster ? ' page-master' : '') + (isDetail ? ' page-master-detail' : '') + (isDetailRoot ? ' page-master-detail-root' : ''))) + .removeClass('stacked') + .trigger('page:unstack') + .trigger('page:position', { position: newPagePosition }); + router.emit('pageUnstack', $newPage[0]); + router.emit('pagePosition', $newPage[0], newPagePosition); + + if (isMaster || isDetail) { + $newPage.trigger('page:role', { role: isMaster ? 'master' : 'detail', root: !!isDetailRoot }); + router.emit('pageRole', $newPage[0], { role: isMaster ? 'master' : 'detail', detailRoot: !!isDetailRoot }); + } + + if (dynamicNavbar && $newNavbarEl.length) { + $newNavbarEl + .removeClass('navbar-previous navbar-current navbar-next') + .addClass(("navbar-" + newPagePosition + (isMaster ? ' navbar-master' : '') + (isDetail ? ' navbar-master-detail' : '') + (isDetailRoot ? ' navbar-master-detail-root' : ''))) + .removeClass('stacked'); + $newNavbarEl.trigger('navbar:position', { position: newPagePosition }); + router.emit('navbarPosition', $newNavbarEl[0], newPagePosition); + if (isMaster || isDetail) { + router.emit('navbarRole', $newNavbarEl[0], { role: isMaster ? 'master' : 'detail', detailRoot: !!isDetailRoot }); + } + } + + // Find Old Page + if (options.reloadCurrent || reloadDetail) { + $oldPage = $pagesInView.eq($pagesInView.length - 1); + if (dynamicNavbar) { + // $oldNavbarEl = $navbarsInView.eq($pagesInView.length - 1); + $oldNavbarEl = $(app.navbar.getElByPage($oldPage)); + } + } else if (options.reloadPrevious) { + $oldPage = $pagesInView.eq($pagesInView.length - 2); + if (dynamicNavbar) { + // $oldNavbarEl = $navbarsInView.eq($pagesInView.length - 2); + $oldNavbarEl = $(app.navbar.getElByPage($oldPage)); + } + } else if (options.reloadAll) { + $oldPage = $pagesInView.filter(function (index, pageEl) { return pageEl !== $newPage[0]; }); + if (dynamicNavbar) { + $oldNavbarEl = $navbarsInView.filter(function (index, navbarEl) { return navbarEl !== $newNavbarEl[0]; }); + } + } else { + var removedPageEls = []; + var removedNavbarEls = []; + if ($pagesInView.length > 1) { + var i$2 = 0; + for (i$2 = 0; i$2 < $pagesInView.length - 1; i$2 += 1) { + if (masterPageEl + && $pagesInView[i$2] === masterPageEl + ) { + $pagesInView.eq(i$2).addClass('page-master-stacked'); + $pagesInView.eq(i$2).trigger('page:masterstack'); + router.emit('pageMasterStack', $pagesInView[i$2]); + if (dynamicNavbar) { + $(app.navbar.getElByPage(masterPageEl)).addClass('navbar-master-stacked'); + router.emit('navbarMasterStack', app.navbar.getElByPage(masterPageEl)); + } + continue; // eslint-disable-line + } + var oldNavbarEl = app.navbar.getElByPage($pagesInView.eq(i$2)); + if (router.params.stackPages) { + $pagesInView.eq(i$2).addClass('stacked'); + $pagesInView.eq(i$2).trigger('page:stack'); + router.emit('pageStack', $pagesInView[i$2]); + if (dynamicNavbar) { + $(oldNavbarEl).addClass('stacked'); + } + } else { + // Page remove event + removedPageEls.push($pagesInView[i$2]); + router.pageCallback('beforeRemove', $pagesInView[i$2], $navbarsInView && $navbarsInView[i$2], 'previous', undefined, options); + router.removePage($pagesInView[i$2]); + if (dynamicNavbar && oldNavbarEl) { + removedNavbarEls.push(oldNavbarEl); + router.removeNavbar(oldNavbarEl); + } + } + } + } + $oldPage = $viewEl + .children('.page:not(.stacked)') + .filter(function (index, pageEl) { return pageEl !== $newPage[0] && removedPageEls.indexOf(pageEl) < 0; }); + if (dynamicNavbar) { + $oldNavbarEl = $navbarsEl + .children('.navbar:not(.stacked)') + .filter(function (index, navbarEl) { return navbarEl !== $newNavbarEl[0] && removedNavbarEls.indexOf(removedNavbarEls) < 0; }); + } + removedPageEls = []; + removedNavbarEls = []; + } + + if (isDetail && !options.reloadAll) { + if ($oldPage.length > 1 || reloadDetail) { + $oldPage = $oldPage.filter(function (pageIndex, pageEl) { return !pageEl.classList.contains('page-master'); }); + } + if ($oldNavbarEl && ($oldNavbarEl.length > 1 || reloadDetail)) { + $oldNavbarEl = $oldNavbarEl.filter(function (navbarIndex, navbarEl) { return !navbarEl.classList.contains('navbar-master'); }); + } + } + + // Push State + if (router.params.pushState && (options.pushState || options.replaceState) && !options.reloadPrevious) { + var pushStateRoot = router.params.pushStateRoot || ''; + History[options.reloadCurrent || (reloadDetail && otherDetailPageEl) || options.reloadAll || options.replaceState ? 'replace' : 'push']( + view.id, + { + url: options.route.url, + }, + pushStateRoot + router.params.pushStateSeparator + options.route.url + ); + } + + if (!options.reloadPrevious) { + // Current Page & Navbar + router.currentPageEl = $newPage[0]; + if (dynamicNavbar && $newNavbarEl.length) { + router.currentNavbarEl = $newNavbarEl[0]; + } else { + delete router.currentNavbarEl; + } + + // Current Route + router.currentRoute = options.route; + } + + // Update router history + var url = options.route.url; + + if (options.history) { + if (((options.reloadCurrent || (reloadDetail && otherDetailPageEl)) && router.history.length) > 0 || options.replaceState) { + router.history[router.history.length - (options.reloadPrevious ? 2 : 1)] = url; + } else if (options.reloadPrevious) { + router.history[router.history.length - 2] = url; + } else if (options.reloadAll) { + router.history = [url]; + } else { + router.history.push(url); + } + } + router.saveHistory(); + + // Insert new page and navbar + var newPageInDom = $newPage.parents(doc).length > 0; + var f7Component = $newPage[0].f7Component; + if (options.reloadPrevious) { + if (f7Component && !newPageInDom) { + f7Component.$mount(function (componentEl) { + $(componentEl).insertBefore($oldPage); + }); + } else { + $newPage.insertBefore($oldPage); + } + if (dynamicNavbar && $newNavbarEl.length) { + if ($newNavbarEl.find('.title-large').length) { + $newNavbarEl.addClass('navbar-large'); + } + if ($oldNavbarEl.length) { + $newNavbarEl.insertBefore($oldNavbarEl); + } else { + if (!router.$navbarsEl.parents(doc).length) { + router.$el.prepend(router.$navbarsEl); + } + $navbarsEl.append($newNavbarEl); + } + } + } else { + if ($oldPage.next('.page')[0] !== $newPage[0]) { + if (f7Component && !newPageInDom) { + f7Component.$mount(function (componentEl) { + $viewEl.append(componentEl); + }); + } else { + $viewEl.append($newPage[0]); + } + } + if (dynamicNavbar && $newNavbarEl.length) { + if ($newNavbarEl.find('.title-large').length) { + $newNavbarEl.addClass('navbar-large'); + } + if (!router.$navbarsEl.parents(doc).length) { + router.$el.prepend(router.$navbarsEl); + } + $navbarsEl.append($newNavbarEl[0]); + } + } + if (!newPageInDom) { + router.pageCallback('mounted', $newPage, $newNavbarEl, newPagePosition, (reload ? newPagePosition : 'current'), options, $oldPage); + } else if (options.route && options.route.route && options.route.route.keepAlive && !$newPage[0].f7PageMounted) { + $newPage[0].f7PageMounted = true; + router.pageCallback('mounted', $newPage, $newNavbarEl, newPagePosition, (reload ? newPagePosition : 'current'), options, $oldPage); + } + + // Remove old page + if ((options.reloadCurrent || reloadDetail) && $oldPage.length > 0) { + if (router.params.stackPages && router.initialPages.indexOf($oldPage[0]) >= 0) { + $oldPage.addClass('stacked'); + $oldPage.trigger('page:stack'); + router.emit('pageStack', $oldPage[0]); + if (dynamicNavbar) { + $oldNavbarEl.addClass('stacked'); + } + } else { + // Page remove event + router.pageCallback('beforeOut', $oldPage, $oldNavbarEl, 'current', undefined, options); + router.pageCallback('afterOut', $oldPage, $oldNavbarEl, 'current', undefined, options); + router.pageCallback('beforeRemove', $oldPage, $oldNavbarEl, 'current', undefined, options); + router.removePage($oldPage); + if (dynamicNavbar && $oldNavbarEl && $oldNavbarEl.length) { + router.removeNavbar($oldNavbarEl); + } + } + } else if (options.reloadAll) { + $oldPage.each(function (index, pageEl) { + var $oldPageEl = $(pageEl); + var $oldNavbarElEl = $(app.navbar.getElByPage($oldPageEl)); + if (router.params.stackPages && router.initialPages.indexOf($oldPageEl[0]) >= 0) { + $oldPageEl.addClass('stacked'); + $oldPageEl.trigger('page:stack'); + router.emit('pageStack', $oldPageEl[0]); + if (dynamicNavbar) { + $oldNavbarElEl.addClass('stacked'); + } + } else { + // Page remove event + if ($oldPageEl.hasClass('page-current')) { + router.pageCallback('beforeOut', $oldPage, $oldNavbarEl, 'current', undefined, options); + router.pageCallback('afterOut', $oldPage, $oldNavbarEl, 'current', undefined, options); + } + router.pageCallback('beforeRemove', $oldPageEl, $oldNavbarEl && $oldNavbarEl.eq(index), 'previous', undefined, options); + router.removePage($oldPageEl); + if (dynamicNavbar && $oldNavbarElEl.length) { + router.removeNavbar($oldNavbarElEl); + } + } + }); + } else if (options.reloadPrevious) { + if (router.params.stackPages && router.initialPages.indexOf($oldPage[0]) >= 0) { + $oldPage.addClass('stacked'); + $oldPage.trigger('page:stack'); + router.emit('pageStack', $oldPage[0]); + if (dynamicNavbar) { + $oldNavbarEl.addClass('stacked'); + } + } else { + // Page remove event + router.pageCallback('beforeRemove', $oldPage, $oldNavbarEl, 'previous', undefined, options); + router.removePage($oldPage); + if (dynamicNavbar && $oldNavbarEl && $oldNavbarEl.length) { + router.removeNavbar($oldNavbarEl); + } + } + } + + // Load Tab + if (options.route.route.tab) { + router.tabLoad(options.route.route.tab, Utils.extend({}, options, { + history: false, + pushState: false, + })); + } + + // Check master detail + if (masterDetailEnabled) { + view.checkMasterDetailBreakpoint(); + } + + // Page init and before init events + router.pageCallback('init', $newPage, $newNavbarEl, newPagePosition, reload ? newPagePosition : 'current', options, $oldPage); + + if (options.reloadCurrent || options.reloadAll || reloadDetail) { + router.allowPageChange = true; + router.pageCallback('beforeIn', $newPage, $newNavbarEl, newPagePosition, 'current', options); + $newPage.removeAttr('aria-hidden'); + if (dynamicNavbar && $newNavbarEl) { + $newNavbarEl.removeAttr('aria-hidden'); + } + router.pageCallback('afterIn', $newPage, $newNavbarEl, newPagePosition, 'current', options); + if (options.reloadCurrent && options.clearPreviousHistory) { router.clearPreviousHistory(); } + if (reloadDetail) { + router.setPagePosition($(masterPageEl), 'previous'); + if (masterPageEl.f7Page && masterPageEl.f7Page.navbarEl) { + router.setNavbarPosition($(masterPageEl.f7Page.navbarEl), 'previous'); + } + } + return router; + } + if (options.reloadPrevious) { + router.allowPageChange = true; + return router; + } + + // Before animation event + router.pageCallback('beforeOut', $oldPage, $oldNavbarEl, 'current', 'previous', options); + router.pageCallback('beforeIn', $newPage, $newNavbarEl, 'next', 'current', options); + + // Animation + function afterAnimation() { + router.setPagePosition($newPage, 'current', false); + router.setPagePosition($oldPage, 'previous', !$oldPage.hasClass('page-master')); + if (dynamicNavbar) { + router.setNavbarPosition($newNavbarEl, 'current', false); + router.setNavbarPosition($oldNavbarEl, 'previous', !$oldNavbarEl.hasClass('navbar-master')); + } + // After animation event + router.allowPageChange = true; + router.pageCallback('afterOut', $oldPage, $oldNavbarEl, 'current', 'previous', options); + router.pageCallback('afterIn', $newPage, $newNavbarEl, 'next', 'current', options); + + var keepOldPage = (router.params.preloadPreviousPage || router.params[((app.theme) + "SwipeBack")]) && !isMaster; + if (!keepOldPage) { + if ($newPage.hasClass('smart-select-page') || $newPage.hasClass('photo-browser-page') || $newPage.hasClass('autocomplete-page') || $newPage.hasClass('color-picker-page')) { + keepOldPage = true; + } + } + if (!keepOldPage) { + if (router.params.stackPages) { + $oldPage.addClass('stacked'); + $oldPage.trigger('page:stack'); + router.emit('pageStack', $oldPage[0]); + if (dynamicNavbar) { + $oldNavbarEl.addClass('stacked'); + } + } else if (!($newPage.attr('data-name') && $newPage.attr('data-name') === 'smart-select-page')) { + // Remove event + router.pageCallback('beforeRemove', $oldPage, $oldNavbarEl, 'previous', undefined, options); + router.removePage($oldPage); + if (dynamicNavbar && $oldNavbarEl.length) { + router.removeNavbar($oldNavbarEl); + } + } + } + if (options.clearPreviousHistory) { router.clearPreviousHistory(); } + router.emit('routeChanged', router.currentRoute, router.previousRoute, router); + + if (router.params.pushState) { + History.clearRouterQueue(); + } + } + function setPositionClasses() { + router.setPagePosition($oldPage, 'current', false); + router.setPagePosition($newPage, 'next', false); + if (dynamicNavbar) { + router.setNavbarPosition($oldNavbarEl, 'current', false); + router.setNavbarPosition($newNavbarEl, 'next', false); + } + } + if (options.animate && !(isMaster && app.width >= router.params.masterDetailBreakpoint)) { + var delay = router.params[((router.app.theme) + "PageLoadDelay")]; + var transition = router.params.transition; + if (options.transition) { transition = options.transition; } + if (!transition && router.currentRoute && router.currentRoute.route) { + transition = router.currentRoute.route.transition; + } + if (!transition && router.currentRoute && router.currentRoute.route.options) { + transition = router.currentRoute.route.options.transition; + } + if (transition) { + $newPage[0].f7PageTransition = transition; + } + + if (delay) { + setTimeout(function () { + setPositionClasses(); + router.animate($oldPage, $newPage, $oldNavbarEl, $newNavbarEl, 'forward', transition, function () { + afterAnimation(); + }); + }, delay); + } else { + setPositionClasses(); + router.animate($oldPage, $newPage, $oldNavbarEl, $newNavbarEl, 'forward', transition, function () { + afterAnimation(); + }); + } + } else { + afterAnimation(); + } + return router; + } + function load(loadParams, loadOptions, ignorePageChange) { + if ( loadParams === void 0 ) loadParams = {}; + if ( loadOptions === void 0 ) loadOptions = {}; + + var router = this; + if (!router.allowPageChange && !ignorePageChange) { return router; } + var params = loadParams; + var options = loadOptions; + var url = params.url; + var content = params.content; + var el = params.el; + var pageName = params.pageName; + var template = params.template; + var templateUrl = params.templateUrl; + var component = params.component; + var componentUrl = params.componentUrl; + + if (!options.reloadCurrent + && options.route + && options.route.route + && options.route.route.parentPath + && router.currentRoute.route + && router.currentRoute.route.parentPath === options.route.route.parentPath) { + // Do something nested + if (options.route.url === router.url) { + router.allowPageChange = true; + return false; + } + // Check for same params + var sameParams = Object.keys(options.route.params).length === Object.keys(router.currentRoute.params).length; + if (sameParams) { + // Check for equal params name + Object.keys(options.route.params).forEach(function (paramName) { + if ( + !(paramName in router.currentRoute.params) + || (router.currentRoute.params[paramName] !== options.route.params[paramName]) + ) { + sameParams = false; + } + }); + } + if (sameParams) { + if (options.route.route.tab) { + return router.tabLoad(options.route.route.tab, options); + } + return false; + } + if (!sameParams + && options.route.route.tab + && router.currentRoute.route.tab + && router.currentRoute.parentPath === options.route.parentPath + ) { + return router.tabLoad(options.route.route.tab, options); + } + } + + if ( + options.route + && options.route.url + && router.url === options.route.url + && !(options.reloadCurrent || options.reloadPrevious) + && !router.params.allowDuplicateUrls + ) { + router.allowPageChange = true; + return false; + } + + if (!options.route && url) { + options.route = router.parseRouteUrl(url); + Utils.extend(options.route, { route: { url: url, path: url } }); + } + + // Component Callbacks + function resolve(pageEl, newOptions) { + return router.forward(pageEl, Utils.extend(options, newOptions)); + } + function reject() { + router.allowPageChange = true; + return router; + } + + if (url || templateUrl || componentUrl || component) { + router.allowPageChange = false; + } + + // Proceed + if (content) { + router.forward(router.getPageEl(content), options); + } else if (template || templateUrl) { + // Parse template and send page element + try { + router.pageTemplateLoader(template, templateUrl, options, resolve, reject); + } catch (err) { + router.allowPageChange = true; + throw err; + } + } else if (el) { + // Load page from specified HTMLElement or by page name in pages container + router.forward(router.getPageEl(el), options); + } else if (pageName) { + // Load page by page name in pages container + router.forward(router.$el.children((".page[data-name=\"" + pageName + "\"]")).eq(0), options); + } else if (component || componentUrl) { + // Load from component (F7/Vue/React/...) + try { + router.pageComponentLoader(router.el, component, componentUrl, options, resolve, reject); + } catch (err) { + router.allowPageChange = true; + throw err; + } + } else if (url) { + // Load using XHR + if (router.xhr) { + router.xhr.abort(); + router.xhr = false; + } + router.xhrRequest(url, options) + .then(function (pageContent) { + router.forward(router.getPageEl(pageContent), options); + }) + .catch(function () { + router.allowPageChange = true; + }); + } + return router; + } + function navigate(navigateParams, navigateOptions) { + if ( navigateOptions === void 0 ) navigateOptions = {}; + + var router = this; + if (router.swipeBackActive) { return router; } + var url; + var createRoute; + var name; + var path; + var query; + var params; + var route; + if (typeof navigateParams === 'string') { + url = navigateParams; + } else { + url = navigateParams.url; + createRoute = navigateParams.route; + name = navigateParams.name; + path = navigateParams.path; + query = navigateParams.query; + params = navigateParams.params; + } + if (name || path) { + url = router.generateUrl({ path: path, name: name, params: params, query: query }); + if (url) { + return router.navigate(url, navigateOptions); + } + return router; + } + var app = router.app; + appRouterCheck(router, 'navigate'); + if (url === '#' || url === '') { + return router; + } + + var navigateUrl = url.replace('./', ''); + if (navigateUrl[0] !== '/' && navigateUrl.indexOf('#') !== 0) { + var currentPath = router.currentRoute.parentPath || router.currentRoute.path; + navigateUrl = ((currentPath ? (currentPath + "/") : '/') + navigateUrl) + .replace('///', '/') + .replace('//', '/'); + } + if (createRoute) { + route = Utils.extend(router.parseRouteUrl(navigateUrl), { + route: Utils.extend({}, createRoute), + }); + } else { + route = router.findMatchingRoute(navigateUrl); + } + + if (!route) { + return router; + } + if (route.route && route.route.viewName) { + var anotherViewName = route.route.viewName; + var anotherView = app.views[anotherViewName]; + if (!anotherView) { + throw new Error(("Framework7: There is no View with \"" + anotherViewName + "\" name that was specified in this route")); + } + if (anotherView !== router.view) { + return anotherView.router.navigate(navigateParams, navigateOptions); + } + } + + if (route.route.redirect) { + return redirect.call(router, 'navigate', route, navigateOptions); + } + + + var options = {}; + if (route.route.options) { + Utils.extend(options, route.route.options, navigateOptions); + } else { + Utils.extend(options, navigateOptions); + } + options.route = route; + + if (options && options.context) { + route.context = options.context; + options.route.context = options.context; + } + + function resolve() { + var routerLoaded = false; + ('popup popover sheet loginScreen actions customModal panel').split(' ').forEach(function (modalLoadProp) { + if (route.route[modalLoadProp] && !routerLoaded) { + routerLoaded = true; + router.modalLoad(modalLoadProp, route, options); + } + }); + if (route.route.keepAlive && route.route.keepAliveData) { + router.load({ el: route.route.keepAliveData.pageEl }, options, false); + routerLoaded = true; + } + ('url content component pageName el componentUrl template templateUrl').split(' ').forEach(function (pageLoadProp) { + var obj; + + if (route.route[pageLoadProp] && !routerLoaded) { + routerLoaded = true; + router.load(( obj = {}, obj[pageLoadProp] = route.route[pageLoadProp], obj ), options, false); + } + }); + if (routerLoaded) { return; } + // Async + function asyncResolve(resolveParams, resolveOptions) { + router.allowPageChange = false; + var resolvedAsModal = false; + if (resolveOptions && resolveOptions.context) { + if (!route.context) { route.context = resolveOptions.context; } + else { route.context = Utils.extend({}, route.context, resolveOptions.context); } + options.route.context = route.context; + } + ('popup popover sheet loginScreen actions customModal panel').split(' ').forEach(function (modalLoadProp) { + if (resolveParams[modalLoadProp]) { + resolvedAsModal = true; + var modalRoute = Utils.extend({}, route, { route: resolveParams }); + router.allowPageChange = true; + router.modalLoad(modalLoadProp, modalRoute, Utils.extend(options, resolveOptions)); + } + }); + if (resolvedAsModal) { return; } + router.load(resolveParams, Utils.extend(options, resolveOptions), true); + } + function asyncReject() { + router.allowPageChange = true; + } + if (route.route.async) { + router.allowPageChange = false; + route.route.async.call(router, options.route, router.currentRoute, asyncResolve, asyncReject); + } + if (route.route.asyncComponent) { + asyncComponent(router, route.route.asyncComponent, asyncResolve, asyncReject); + } + } + function reject() { + router.allowPageChange = true; + } + + if (router.params.masterDetailBreakpoint > 0 && route.route.masterRoute) { + // load detail route + var preloadMaster = true; + var masterLoaded = false; + if (router.currentRoute && router.currentRoute.route) { + if ( + router.currentRoute.route.master + && ( + router.currentRoute.route === route.route.masterRoute + || router.currentRoute.route.path === route.route.masterRoute.path + ) + ) { + preloadMaster = false; + } + if ( + router.currentRoute.route.masterRoute + && (router.currentRoute.route.masterRoute === route.route.masterRoute + || router.currentRoute.route.masterRoute.path === route.route.masterRoute.path + ) + ) { + preloadMaster = false; + masterLoaded = true; + } + } + if (preloadMaster || (masterLoaded && navigateOptions.reloadAll)) { + router.navigate({ path: route.route.masterRoute.path, params: route.params || {} }, { + animate: false, + reloadAll: navigateOptions.reloadAll, + reloadCurrent: navigateOptions.reloadCurrent, + reloadPrevious: navigateOptions.reloadPrevious, + pushState: !navigateOptions.initial, + history: !navigateOptions.initial, + once: { + pageAfterIn: function pageAfterIn() { + router.navigate(navigateParams, Utils.extend({}, navigateOptions, { + animate: false, + reloadAll: false, + reloadCurrent: false, + reloadPrevious: false, + history: !navigateOptions.initial, + pushState: !navigateOptions.initial, + })); + }, + }, + }); + return router; + } + } + + processRouteQueue.call( + router, + route, + router.currentRoute, + function () { + if (route.route.modules) { + app + .loadModules(Array.isArray(route.route.modules) ? route.route.modules : [route.route.modules]) + .then(function () { + resolve(); + }) + .catch(function () { + reject(); + }); + } else { + resolve(); + } + }, + function () { + reject(); + } + ); + + // Return Router + return router; + } + + function tabLoad(tabRoute, loadOptions) { + if ( loadOptions === void 0 ) loadOptions = {}; + + var router = this; + var options = Utils.extend({ + animate: router.params.animate, + pushState: true, + history: true, + parentPageEl: null, + preload: false, + on: {}, + }, loadOptions); + + var currentRoute; + var previousRoute; + if (options.route) { + // Set Route + if (!options.preload && options.route !== router.currentRoute) { + previousRoute = router.previousRoute; + router.currentRoute = options.route; + } + if (options.preload) { + currentRoute = options.route; + previousRoute = router.currentRoute; + } else { + currentRoute = router.currentRoute; + if (!previousRoute) { previousRoute = router.previousRoute; } + } + + // Update Browser History + if (router.params.pushState && options.pushState && !options.reloadPrevious) { + History.replace( + router.view.id, + { + url: options.route.url, + }, + (router.params.pushStateRoot || '') + router.params.pushStateSeparator + options.route.url + ); + } + + // Update Router History + if (options.history) { + router.history[Math.max(router.history.length - 1, 0)] = options.route.url; + router.saveHistory(); + } + } + + // Show Tab + var $parentPageEl = $(options.parentPageEl || router.currentPageEl); + var tabEl; + if ($parentPageEl.length && $parentPageEl.find(("#" + (tabRoute.id))).length) { + tabEl = $parentPageEl.find(("#" + (tabRoute.id))).eq(0); + } else if (router.view.selector) { + tabEl = (router.view.selector) + " #" + (tabRoute.id); + } else { + tabEl = "#" + (tabRoute.id); + } + var tabShowResult = router.app.tab.show({ + tabEl: tabEl, + animate: options.animate, + tabRoute: options.route, + }); + + var $newTabEl = tabShowResult.$newTabEl; + var $oldTabEl = tabShowResult.$oldTabEl; + var animated = tabShowResult.animated; + var onTabsChanged = tabShowResult.onTabsChanged; + + if ($newTabEl && $newTabEl.parents('.page').length > 0 && options.route) { + var tabParentPageData = $newTabEl.parents('.page')[0].f7Page; + if (tabParentPageData && options.route) { + tabParentPageData.route = options.route; + } + } + + // Tab Content Loaded + function onTabLoaded(contentEl) { + // Remove theme elements + router.removeThemeElements($newTabEl); + + var tabEventTarget = $newTabEl; + if (typeof contentEl !== 'string') { tabEventTarget = $(contentEl); } + + tabEventTarget.trigger('tab:init tab:mounted', tabRoute); + router.emit('tabInit tabMounted', $newTabEl[0], tabRoute); + + if ($oldTabEl && $oldTabEl.length) { + if (animated) { + onTabsChanged(function () { + router.emit('routeChanged', router.currentRoute, router.previousRoute, router); + if (router.params.unloadTabContent) { + router.tabRemove($oldTabEl, $newTabEl, tabRoute); + } + }); + } else { + router.emit('routeChanged', router.currentRoute, router.previousRoute, router); + if (router.params.unloadTabContent) { + router.tabRemove($oldTabEl, $newTabEl, tabRoute); + } + } + } + } + + if ($newTabEl[0].f7RouterTabLoaded) { + if (!$oldTabEl || !$oldTabEl.length) { return router; } + if (animated) { + onTabsChanged(function () { + router.emit('routeChanged', router.currentRoute, router.previousRoute, router); + }); + } else { + router.emit('routeChanged', router.currentRoute, router.previousRoute, router); + } + return router; + } + + // Load Tab Content + function loadTab(loadTabParams, loadTabOptions) { + // Load Tab Props + var url = loadTabParams.url; + var content = loadTabParams.content; + var el = loadTabParams.el; + var template = loadTabParams.template; + var templateUrl = loadTabParams.templateUrl; + var component = loadTabParams.component; + var componentUrl = loadTabParams.componentUrl; + // Component/Template Callbacks + function resolve(contentEl) { + router.allowPageChange = true; + if (!contentEl) { return; } + if (typeof contentEl === 'string') { + $newTabEl.html(contentEl); + } else { + $newTabEl.html(''); + if (contentEl.f7Component) { + contentEl.f7Component.$mount(function (componentEl) { + $newTabEl.append(componentEl); + }); + } else { + $newTabEl.append(contentEl); + } + } + $newTabEl[0].f7RouterTabLoaded = true; + onTabLoaded(contentEl); + } + function reject() { + router.allowPageChange = true; + return router; + } + + if (content) { + resolve(content); + } else if (template || templateUrl) { + try { + router.tabTemplateLoader(template, templateUrl, loadTabOptions, resolve, reject); + } catch (err) { + router.allowPageChange = true; + throw err; + } + } else if (el) { + resolve(el); + } else if (component || componentUrl) { + // Load from component (F7/Vue/React/...) + try { + router.tabComponentLoader($newTabEl[0], component, componentUrl, loadTabOptions, resolve, reject); + } catch (err) { + router.allowPageChange = true; + throw err; + } + } else if (url) { + // Load using XHR + if (router.xhr) { + router.xhr.abort(); + router.xhr = false; + } + router.xhrRequest(url, loadTabOptions) + .then(function (tabContent) { + resolve(tabContent); + }) + .catch(function () { + router.allowPageChange = true; + }); + } + } + + var hasContentLoadProp; + ('url content component el componentUrl template templateUrl').split(' ').forEach(function (tabLoadProp) { + var obj; + + if (tabRoute[tabLoadProp]) { + hasContentLoadProp = true; + loadTab(( obj = {}, obj[tabLoadProp] = tabRoute[tabLoadProp], obj ), options); + } + }); + + // Async + function asyncResolve(resolveParams, resolveOptions) { + loadTab(resolveParams, Utils.extend(options, resolveOptions)); + } + function asyncReject() { + router.allowPageChange = true; + } + if (tabRoute.async) { + tabRoute.async.call(router, currentRoute, previousRoute, asyncResolve, asyncReject); + } else if (tabRoute.asyncComponent) { + asyncComponent(router, tabRoute.asyncComponent, asyncResolve, asyncReject); + } else if (!hasContentLoadProp) { + router.allowPageChange = true; + } + + return router; + } + function tabRemove($oldTabEl, $newTabEl, tabRoute) { + var router = this; + + var hasTabComponentChild; + if ($oldTabEl[0]) { + $oldTabEl[0].f7RouterTabLoaded = false; + delete $oldTabEl[0].f7RouterTabLoaded; + } + $oldTabEl.children().each(function (index, tabChild) { + if (tabChild.f7Component) { + hasTabComponentChild = true; + $(tabChild).trigger('tab:beforeremove', tabRoute); + tabChild.f7Component.$destroy(); + } + }); + if (!hasTabComponentChild) { + $oldTabEl.trigger('tab:beforeremove', tabRoute); + } + router.emit('tabBeforeRemove', $oldTabEl[0], $newTabEl[0], tabRoute); + router.removeTabContent($oldTabEl[0], tabRoute); + } + + function modalLoad(modalType, route, loadOptions) { + if ( loadOptions === void 0 ) loadOptions = {}; + + var router = this; + var app = router.app; + var isPanel = modalType === 'panel'; + var modalOrPanel = isPanel ? 'panel' : 'modal'; + + var options = Utils.extend({ + animate: router.params.animate, + pushState: true, + history: true, + on: {}, + }, loadOptions); + + var modalParams = Utils.extend({}, route.route[modalType]); + var modalRoute = route.route; + + function onModalLoaded() { + // Create Modal + var modal = app[modalType].create(modalParams); + modalRoute.modalInstance = modal; + + var hasEl = modal.el; + + function closeOnSwipeBack() { + modal.close(); + } + modal.on((modalOrPanel + "Open"), function () { + if (!hasEl) { + // Remove theme elements + router.removeThemeElements(modal.el); + + // Emit events + modal.$el.trigger(((modalType.toLowerCase()) + ":init " + (modalType.toLowerCase()) + ":mounted"), route, modal); + router.emit(((!isPanel ? 'modalInit' : '') + " " + modalType + "Init " + modalType + "Mounted"), modal.el, route, modal); + } + router.once('swipeBackMove', closeOnSwipeBack); + }); + modal.on((modalOrPanel + "Close"), function () { + router.off('swipeBackMove', closeOnSwipeBack); + if (!modal.closeByRouter) { + router.back(); + } + }); + + modal.on((modalOrPanel + "Closed"), function () { + modal.$el.trigger(((modalType.toLowerCase()) + ":beforeremove"), route, modal); + modal.emit(("" + (!isPanel ? 'modalBeforeRemove ' : '') + modalType + "BeforeRemove"), modal.el, route, modal); + var modalComponent = modal.el.f7Component; + if (modalComponent) { + modalComponent.$destroy(); + } + Utils.nextTick(function () { + if (modalComponent || modalParams.component) { + router.removeModal(modal.el); + } + modal.destroy(); + delete modal.route; + delete modalRoute.modalInstance; + }); + }); + + if (options.route) { + // Update Browser History + if (router.params.pushState && options.pushState) { + History.push( + router.view.id, + { + url: options.route.url, + modal: modalType, + }, + (router.params.pushStateRoot || '') + router.params.pushStateSeparator + options.route.url + ); + } + + // Set Route + if (options.route !== router.currentRoute) { + modal.route = Utils.extend(options.route, { modal: modal }); + router.currentRoute = modal.route; + } + + // Update Router History + if (options.history) { + router.history.push(options.route.url); + router.saveHistory(); + } + } + + if (hasEl) { + // Remove theme elements + router.removeThemeElements(modal.el); + + // Emit events + modal.$el.trigger(((modalType.toLowerCase()) + ":init " + (modalType.toLowerCase()) + ":mounted"), route, modal); + router.emit((modalOrPanel + "Init " + modalType + "Init " + modalType + "Mounted"), modal.el, route, modal); + } + + // Open + modal.open(); + } + + // Load Modal Content + function loadModal(loadModalParams, loadModalOptions) { + // Load Modal Props + var url = loadModalParams.url; + var content = loadModalParams.content; + var template = loadModalParams.template; + var templateUrl = loadModalParams.templateUrl; + var component = loadModalParams.component; + var componentUrl = loadModalParams.componentUrl; + + // Component/Template Callbacks + function resolve(contentEl) { + if (contentEl) { + if (typeof contentEl === 'string') { + modalParams.content = contentEl; + } else if (contentEl.f7Component) { + contentEl.f7Component.$mount(function (componentEl) { + modalParams.el = componentEl; + app.root.append(componentEl); + }); + } else { + modalParams.el = contentEl; + } + onModalLoaded(); + } + } + function reject() { + router.allowPageChange = true; + return router; + } + + if (content) { + resolve(content); + } else if (template || templateUrl) { + try { + router.modalTemplateLoader(template, templateUrl, loadModalOptions, resolve, reject); + } catch (err) { + router.allowPageChange = true; + throw err; + } + } else if (component || componentUrl) { + // Load from component (F7/Vue/React/...) + try { + router.modalComponentLoader(app.root[0], component, componentUrl, loadModalOptions, resolve, reject); + } catch (err) { + router.allowPageChange = true; + throw err; + } + } else if (url) { + // Load using XHR + if (router.xhr) { + router.xhr.abort(); + router.xhr = false; + } + router.xhrRequest(url, loadModalOptions) + .then(function (modalContent) { + modalParams.content = modalContent; + onModalLoaded(); + }) + .catch(function () { + router.allowPageChange = true; + }); + } else { + onModalLoaded(); + } + } + + var foundLoadProp; + ('url content component el componentUrl template templateUrl').split(' ').forEach(function (modalLoadProp) { + var obj; + + if (modalParams[modalLoadProp] && !foundLoadProp) { + foundLoadProp = true; + loadModal(( obj = {}, obj[modalLoadProp] = modalParams[modalLoadProp], obj ), options); + } + }); + if (!foundLoadProp && modalType === 'actions') { + onModalLoaded(); + } + + // Async + function asyncResolve(resolveParams, resolveOptions) { + loadModal(resolveParams, Utils.extend(options, resolveOptions)); + } + function asyncReject() { + router.allowPageChange = true; + } + if (modalParams.async) { + modalParams.async.call(router, options.route, router.currentRoute, asyncResolve, asyncReject); + } + if (modalParams.asyncComponent) { + asyncComponent(router, modalParams.asyncComponent, asyncResolve, asyncReject); + } + return router; + } + function modalRemove(modal) { + Utils.extend(modal, { closeByRouter: true }); + modal.close(); + } + + function backward(el, backwardOptions) { + var router = this; + var $el = $(el); + var app = router.app; + var view = router.view; + + var options = Utils.extend({ + animate: router.params.animate, + pushState: true, + replaceState: false, + }, backwardOptions); + + var masterDetailEnabled = router.params.masterDetailBreakpoint > 0; + var isMaster = masterDetailEnabled && options.route && options.route.route && options.route.route.master === true; + var masterPageEl; + var masterPageRemoved; + + var dynamicNavbar = router.dynamicNavbar; + + var $newPage = $el; + var $oldPage = router.$el.children('.page-current'); + var currentIsMaster = masterDetailEnabled && $oldPage.hasClass('page-master'); + + if ($newPage.length) { + // Remove theme elements + router.removeThemeElements($newPage); + } + + var $navbarsEl; + var $newNavbarEl; + var $oldNavbarEl; + + if (dynamicNavbar) { + $newNavbarEl = $newPage.children('.navbar'); + $navbarsEl = router.$navbarsEl; + if ($newNavbarEl.length === 0 && $newPage[0] && $newPage[0].f7Page) { + // Try from pageData + $newNavbarEl = $newPage[0].f7Page.$navbarEl; + } + $oldNavbarEl = $navbarsEl.find('.navbar-current'); + } + + router.allowPageChange = false; + if ($newPage.length === 0 || $oldPage.length === 0) { + router.allowPageChange = true; + return router; + } + + // Remove theme elements + router.removeThemeElements($newPage); + + // Save Keep Alive Cache + if (options.route && options.route.route && options.route.route.keepAlive && !options.route.route.keepAliveData) { + options.route.route.keepAliveData = { + pageEl: $el[0], + }; + } + + // Pages In View + var isDetail; + var isDetailRoot; + if (masterDetailEnabled) { + var $pagesInView = router.$el + .children('.page:not(.stacked)') + .filter(function (index, pageInView) { return pageInView !== $newPage[0]; }); + + // Find Detail' master page + for (var i = 0; i < $pagesInView.length; i += 1) { + if (!masterPageEl + && $pagesInView[i].classList.contains('page-master') + ) { + masterPageEl = $pagesInView[i]; + continue; // eslint-disable-line + } + } + + isDetail = !isMaster + && masterPageEl + && (router.history.indexOf(options.route.url) > router.history.indexOf(masterPageEl.f7Page.route.url)); + + if (!isDetail && !isMaster && masterPageEl && masterPageEl.f7Page && options.route.route.masterRoute) { + isDetail = options.route.route.masterRoute.path === masterPageEl.f7Page.route.route.path; + } + } + if (isDetail && masterPageEl && masterPageEl.f7Page) { + isDetailRoot = router.history.indexOf(options.route.url) - router.history.indexOf(masterPageEl.f7Page.route.url) === 1; + } + + // New Page + $newPage + .addClass(("page-previous" + (isMaster ? ' page-master' : '') + (isDetail ? ' page-master-detail' : '') + (isDetailRoot ? ' page-master-detail-root' : ''))) + .removeClass('stacked') + .removeAttr('aria-hidden') + .trigger('page:unstack') + .trigger('page:position', { position: 'previous' }); + router.emit('pageUnstack', $newPage[0]); + router.emit('pagePosition', $newPage[0], 'previous'); + if (isMaster || isDetail) { + $newPage.trigger('page:role', { role: isMaster ? 'master' : 'detail', root: !!isDetailRoot }); + router.emit('pageRole', $newPage[0], { role: isMaster ? 'master' : 'detail', detailRoot: !!isDetailRoot }); + } + + if (dynamicNavbar && $newNavbarEl.length > 0) { + $newNavbarEl + .addClass(("navbar-previous" + (isMaster ? ' navbar-master' : '') + (isDetail ? ' navbar-master-detail' : '') + (isDetailRoot ? ' navbar-master-detail-root' : ''))) + .removeClass('stacked') + .removeAttr('aria-hidden'); + $newNavbarEl.trigger('navbar:position', { position: 'previous' }); + router.emit('navbarPosition', $newNavbarEl[0], 'previous'); + if (isMaster || isDetailRoot) { + router.emit('navbarRole', $newNavbarEl[0], { role: isMaster ? 'master' : 'detail', detailRoot: !!isDetailRoot }); + } + } + + // Remove previous page in case of "forced" + var backIndex; + if (options.force) { + if ($oldPage.prev('.page-previous:not(.stacked)').length > 0 || $oldPage.prev('.page-previous').length === 0) { + if (router.history.indexOf(options.route.url) >= 0) { + backIndex = router.history.length - router.history.indexOf(options.route.url) - 1; + router.history = router.history.slice(0, router.history.indexOf(options.route.url) + 2); + view.history = router.history; + } else if (router.history[[router.history.length - 2]]) { + router.history[router.history.length - 2] = options.route.url; + } else { + router.history.unshift(router.url); + } + + if (backIndex && router.params.stackPages) { + $oldPage.prevAll('.page-previous').each(function (index, pageToRemove) { + var $pageToRemove = $(pageToRemove); + var $navbarToRemove; + if (dynamicNavbar) { + // $navbarToRemove = $oldNavbarEl.prevAll('.navbar-previous').eq(index); + $navbarToRemove = $(app.navbar.getElByPage($pageToRemove)); + } + if ($pageToRemove[0] !== $newPage[0] && $pageToRemove.index() > $newPage.index()) { + if (router.initialPages.indexOf($pageToRemove[0]) >= 0) { + $pageToRemove.addClass('stacked'); + $pageToRemove.trigger('page:stack'); + router.emit('pageStack', $pageToRemove[0]); + if (dynamicNavbar) { + $navbarToRemove.addClass('stacked'); + } + } else { + router.pageCallback('beforeRemove', $pageToRemove, $navbarToRemove, 'previous', undefined, options); + if ($pageToRemove[0] === masterPageEl) { + masterPageRemoved = true; + } + router.removePage($pageToRemove); + if (dynamicNavbar && $navbarToRemove.length > 0) { + router.removeNavbar($navbarToRemove); + } + } + } + }); + } else { + var $pageToRemove = $oldPage.prev('.page-previous:not(.stacked)'); + var $navbarToRemove; + if (dynamicNavbar) { + // $navbarToRemove = $oldNavbarEl.prev('.navbar-inner:not(.stacked)'); + $navbarToRemove = $(app.navbar.getElByPage($pageToRemove)); + } + if (router.params.stackPages && router.initialPages.indexOf($pageToRemove[0]) >= 0) { + $pageToRemove.addClass('stacked'); + $pageToRemove.trigger('page:stack'); + router.emit('pageStack', $pageToRemove[0]); + $navbarToRemove.addClass('stacked'); + } else if ($pageToRemove.length > 0) { + router.pageCallback('beforeRemove', $pageToRemove, $navbarToRemove, 'previous', undefined, options); + if ($pageToRemove[0] === masterPageEl) { + masterPageRemoved = true; + } + router.removePage($pageToRemove); + if (dynamicNavbar && $navbarToRemove.length) { + router.removeNavbar($navbarToRemove); + } + } + } + } + } + + // Insert new page + var newPageInDom = $newPage.parents(doc).length > 0; + var f7Component = $newPage[0].f7Component; + + function insertPage() { + if ($newPage.next($oldPage).length === 0) { + if (!newPageInDom && f7Component) { + f7Component.$mount(function (componentEl) { + $(componentEl).insertBefore($oldPage); + }); + } else { + $newPage.insertBefore($oldPage); + } + } + if (dynamicNavbar && $newNavbarEl.length) { + if ($newNavbarEl.find('.title-large').length) { + $newNavbarEl.addClass('navbar-large'); + } + $newNavbarEl.insertBefore($oldNavbarEl); + if ($oldNavbarEl.length > 0) { + $newNavbarEl.insertBefore($oldNavbarEl); + } else { + if (!router.$navbarsEl.parents(doc).length) { + router.$el.prepend(router.$navbarsEl); + } + $navbarsEl.append($newNavbarEl); + } + } + if (!newPageInDom) { + router.pageCallback('mounted', $newPage, $newNavbarEl, 'previous', 'current', options, $oldPage); + } else if (options.route && options.route.route && options.route.route.keepAlive && !$newPage[0].f7PageMounted) { + $newPage[0].f7PageMounted = true; + router.pageCallback('mounted', $newPage, $newNavbarEl, 'previous', 'current', options, $oldPage); + } + } + + if (options.preload) { + // Insert Page + insertPage(); + // Tab route + if (options.route.route.tab) { + router.tabLoad(options.route.route.tab, Utils.extend({}, options, { + history: false, + pushState: false, + preload: true, + })); + } + if (isMaster) { + $newPage + .removeClass('page-master-stacked') + .trigger('page:masterunstack'); + router.emit('pageMasterUnstack', $newPage[0]); + if (dynamicNavbar) { + $(app.navbar.getElByPage($newPage)).removeClass('navbar-master-stacked'); + router.emit('navbarMasterUnstack', app.navbar.getElByPage($newPage)); + } + } + // Page init and before init events + router.pageCallback('init', $newPage, $newNavbarEl, 'previous', 'current', options, $oldPage); + var $previousPages = $newPage.prevAll('.page-previous:not(.stacked):not(.page-master)'); + if ($previousPages.length > 0) { + $previousPages.each(function (index, pageToRemove) { + var $pageToRemove = $(pageToRemove); + var $navbarToRemove; + if (dynamicNavbar) { + // $navbarToRemove = $newNavbarEl.prevAll('.navbar-previous:not(.stacked)').eq(index); + $navbarToRemove = $(app.navbar.getElByPage($pageToRemove)); + } + if (router.params.stackPages && router.initialPages.indexOf(pageToRemove) >= 0) { + $pageToRemove.addClass('stacked'); + $pageToRemove.trigger('page:stack'); + router.emit('pageStack', $pageToRemove[0]); + if (dynamicNavbar) { + $navbarToRemove.addClass('stacked'); + } + } else { + router.pageCallback('beforeRemove', $pageToRemove, $navbarToRemove, 'previous', undefined); + router.removePage($pageToRemove); + if (dynamicNavbar && $navbarToRemove.length) { + router.removeNavbar($navbarToRemove); + } + } + }); + } + router.allowPageChange = true; + return router; + } + + // History State + if (!(Device.ie || Device.edge || (Device.firefox && !Device.ios))) { + if (router.params.pushState && options.pushState) { + if (options.replaceState) { + var pushStateRoot = router.params.pushStateRoot || ''; + History.replace( + view.id, + { + url: options.route.url, + }, + pushStateRoot + router.params.pushStateSeparator + options.route.url + ); + } else if (backIndex) { + History.go(-backIndex); + } else { + History.back(); + } + } + } + + // Update History + if (options.replaceState) { + router.history[router.history.length - 1] = options.route.url; + } else { + if (router.history.length === 1) { + router.history.unshift(router.url); + } + router.history.pop(); + } + router.saveHistory(); + + // Current Page & Navbar + router.currentPageEl = $newPage[0]; + if (dynamicNavbar && $newNavbarEl.length) { + router.currentNavbarEl = $newNavbarEl[0]; + } else { + delete router.currentNavbarEl; + } + + // Current Route + router.currentRoute = options.route; + + // History State + if (Device.ie || Device.edge || (Device.firefox && !Device.ios)) { + if (router.params.pushState && options.pushState) { + if (options.replaceState) { + var pushStateRoot$1 = router.params.pushStateRoot || ''; + History.replace( + view.id, + { + url: options.route.url, + }, + pushStateRoot$1 + router.params.pushStateSeparator + options.route.url + ); + } else if (backIndex) { + History.go(-backIndex); + } else { + History.back(); + } + } + } + + // Insert Page + insertPage(); + + // Load Tab + if (options.route.route.tab) { + router.tabLoad(options.route.route.tab, Utils.extend({}, options, { + history: false, + pushState: false, + })); + } + + // Check master detail + + if (masterDetailEnabled && (currentIsMaster || masterPageRemoved)) { + view.checkMasterDetailBreakpoint(false); + } + + // Page init and before init events + router.pageCallback('init', $newPage, $newNavbarEl, 'previous', 'current', options, $oldPage); + + // Before animation callback + router.pageCallback('beforeOut', $oldPage, $oldNavbarEl, 'current', 'next', options); + router.pageCallback('beforeIn', $newPage, $newNavbarEl, 'previous', 'current', options); + + // Animation + function afterAnimation() { + // Set classes + router.setPagePosition($newPage, 'current', false); + router.setPagePosition($oldPage, 'next', true); + if (dynamicNavbar) { + router.setNavbarPosition($newNavbarEl, 'current', false); + router.setNavbarPosition($oldNavbarEl, 'next', true); + } + + // After animation event + router.pageCallback('afterOut', $oldPage, $oldNavbarEl, 'current', 'next', options); + router.pageCallback('afterIn', $newPage, $newNavbarEl, 'previous', 'current', options); + + // Remove Old Page + if (router.params.stackPages && router.initialPages.indexOf($oldPage[0]) >= 0) { + $oldPage.addClass('stacked'); + $oldPage.trigger('page:stack'); + router.emit('pageStack', $oldPage[0]); + if (dynamicNavbar) { + $oldNavbarEl.addClass('stacked'); + } + } else { + router.pageCallback('beforeRemove', $oldPage, $oldNavbarEl, 'next', undefined, options); + router.removePage($oldPage); + if (dynamicNavbar && $oldNavbarEl.length) { + router.removeNavbar($oldNavbarEl); + } + } + + router.allowPageChange = true; + router.emit('routeChanged', router.currentRoute, router.previousRoute, router); + + // Preload previous page + var preloadPreviousPage = router.params.preloadPreviousPage || router.params[((app.theme) + "SwipeBack")]; + if (preloadPreviousPage && router.history[router.history.length - 2] && !isMaster) { + router.back(router.history[router.history.length - 2], { preload: true }); + } + if (router.params.pushState) { + History.clearRouterQueue(); + } + } + + function setPositionClasses() { + router.setPagePosition($oldPage, 'current'); + router.setPagePosition($newPage, 'previous', false); + if (dynamicNavbar) { + router.setNavbarPosition($oldNavbarEl, 'current'); + router.setNavbarPosition($newNavbarEl, 'previous', false); + } + } + + if (options.animate && !(currentIsMaster && app.width >= router.params.masterDetailBreakpoint)) { + var transition = router.params.transition; + if ($oldPage[0] && $oldPage[0].f7PageTransition) { + transition = $oldPage[0].f7PageTransition; + delete $oldPage[0].f7PageTransition; + } + if (options.transition) { transition = options.transition; } + if (!transition && router.previousRoute && router.previousRoute.route) { + transition = router.previousRoute.route.transition; + } + if (!transition && router.previousRoute && router.previousRoute.route && router.previousRoute.route.options) { + transition = router.previousRoute.route.options.transition; + } + setPositionClasses(); + router.animate($oldPage, $newPage, $oldNavbarEl, $newNavbarEl, 'backward', transition, function () { + afterAnimation(); + }); + } else { + afterAnimation(); + } + + return router; + } + function loadBack(backParams, backOptions, ignorePageChange) { + var router = this; + + if (!router.allowPageChange && !ignorePageChange) { return router; } + var params = backParams; + var options = backOptions; + var url = params.url; + var content = params.content; + var el = params.el; + var pageName = params.pageName; + var template = params.template; + var templateUrl = params.templateUrl; + var component = params.component; + var componentUrl = params.componentUrl; + + if ( + options.route.url + && router.url === options.route.url + && !(options.reloadCurrent || options.reloadPrevious) + && !router.params.allowDuplicateUrls + ) { + return false; + } + + if (!options.route && url) { + options.route = router.parseRouteUrl(url); + } + + // Component Callbacks + function resolve(pageEl, newOptions) { + return router.backward(pageEl, Utils.extend(options, newOptions)); + } + function reject() { + router.allowPageChange = true; + return router; + } + + if (url || templateUrl || componentUrl || component) { + router.allowPageChange = false; + } + + // Proceed + if (content) { + router.backward(router.getPageEl(content), options); + } else if (template || templateUrl) { + // Parse template and send page element + try { + router.pageTemplateLoader(template, templateUrl, options, resolve, reject); + } catch (err) { + router.allowPageChange = true; + throw err; + } + } else if (el) { + // Load page from specified HTMLElement or by page name in pages container + router.backward(router.getPageEl(el), options); + } else if (pageName) { + // Load page by page name in pages container + router.backward(router.$el.children((".page[data-name=\"" + pageName + "\"]")).eq(0), options); + } else if (component || componentUrl) { + // Load from component (F7/Vue/React/...) + try { + router.pageComponentLoader(router.el, component, componentUrl, options, resolve, reject); + } catch (err) { + router.allowPageChange = true; + throw err; + } + } else if (url) { + // Load using XHR + if (router.xhr) { + router.xhr.abort(); + router.xhr = false; + } + router.xhrRequest(url, options) + .then(function (pageContent) { + router.backward(router.getPageEl(pageContent), options); + }) + .catch(function () { + router.allowPageChange = true; + }); + } + return router; + } + function back() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + var router = this; + if (router.swipeBackActive) { return router; } + var navigateUrl; + var navigateOptions; + var route; + if (typeof args[0] === 'object') { + navigateOptions = args[0] || {}; + } else { + navigateUrl = args[0]; + navigateOptions = args[1] || {}; + } + + var name = navigateOptions.name; + var params = navigateOptions.params; + var query = navigateOptions.query; + if (name) { + navigateUrl = router.generateUrl({ name: name, params: params, query: query }); + if (navigateUrl) { + return router.back(navigateUrl, Utils.extend({}, navigateOptions, { + name: null, + params: null, + query: null, + })); + } + return router; + } + + var app = router.app; + appRouterCheck(router, 'back'); + + var currentRouteIsModal = router.currentRoute.modal; + var modalType; + if (!currentRouteIsModal) { + ('popup popover sheet loginScreen actions customModal panel').split(' ').forEach(function (modalLoadProp) { + if (router.currentRoute.route[modalLoadProp]) { + currentRouteIsModal = true; + modalType = modalLoadProp; + } + }); + } + if (currentRouteIsModal) { + var modalToClose = router.currentRoute.modal + || router.currentRoute.route.modalInstance + || app[modalType].get(); + var previousUrl = router.history[router.history.length - 2]; + var previousRoute; + // check if previous route is modal too + if (modalToClose && modalToClose.$el) { + var prevOpenedModals = modalToClose.$el.prevAll('.modal-in'); + if (prevOpenedModals.length && prevOpenedModals[0].f7Modal) { + var modalEl = prevOpenedModals[0]; + // check if current router not inside of the modalEl + if (!router.$el.parents(modalEl).length) { + previousRoute = modalEl.f7Modal.route; + } + } + } + if (!previousRoute) { + previousRoute = router.findMatchingRoute(previousUrl); + } + + if (!previousRoute && previousUrl) { + previousRoute = { + url: previousUrl, + path: previousUrl.split('?')[0], + query: Utils.parseUrlQuery(previousUrl), + route: { + path: previousUrl.split('?')[0], + url: previousUrl, + }, + }; + } + if (!navigateUrl || navigateUrl.replace(/[# ]/g, '').trim().length === 0) { + if (!previousRoute || !modalToClose) { + return router; + } + } + var forceOtherUrl = navigateOptions.force && previousRoute && navigateUrl; + if (previousRoute && modalToClose) { + var isBrokenPushState = Device.ie || Device.edge || (Device.firefox && !Device.ios); + var needHistoryBack = router.params.pushState && navigateOptions.pushState !== false; + var currentRouteWithoutPushState = router.currentRoute && router.currentRoute.route && router.currentRoute.route.options && router.currentRoute.route.options.pushState === false; + if (needHistoryBack && !isBrokenPushState && !currentRouteWithoutPushState) { + History.back(); + } + router.currentRoute = previousRoute; + router.history.pop(); + router.saveHistory(); + + if (needHistoryBack && isBrokenPushState && !currentRouteWithoutPushState) { + History.back(); + } + + router.modalRemove(modalToClose); + if (forceOtherUrl) { + router.navigate(navigateUrl, { reloadCurrent: true }); + } + } else if (modalToClose) { + router.modalRemove(modalToClose); + if (navigateUrl) { + router.navigate(navigateUrl, { reloadCurrent: true }); + } + } + return router; + } + var $previousPage = router.$el.children('.page-current').prevAll('.page-previous:not(.page-master)').eq(0); + + var skipMaster; + if (router.params.masterDetailBreakpoint > 0) { + var classes = []; + router.$el.children('.page').each(function (index, pageEl) { + classes.push(pageEl.className); + }); + + var $previousMaster = router.$el.children('.page-current').prevAll('.page-master').eq(0); + if ($previousMaster.length) { + var expectedPreviousPageUrl = router.history[router.history.length - 2]; + var expectedPreviousPageRoute = router.findMatchingRoute(expectedPreviousPageUrl); + if (expectedPreviousPageRoute && $previousMaster[0].f7Page && expectedPreviousPageRoute.route === $previousMaster[0].f7Page.route.route) { + $previousPage = $previousMaster; + if (!navigateOptions.preload) { + skipMaster = app.width >= router.params.masterDetailBreakpoint; + } + } + } + } + + if (!navigateOptions.force && $previousPage.length && !skipMaster) { + if (router.params.pushState + && $previousPage[0].f7Page + && router.history[router.history.length - 2] !== $previousPage[0].f7Page.route.url + ) { + router.back( + router.history[router.history.length - 2], + Utils.extend(navigateOptions, { force: true }) + ); + return router; + } + var previousPageRoute = $previousPage[0].f7Page.route; + + processRouteQueue.call( + router, + previousPageRoute, + router.currentRoute, + function () { + router.loadBack({ el: $previousPage }, Utils.extend(navigateOptions, { + route: previousPageRoute, + })); + }, + function () {} + ); + + return router; + } + + // Navigate URL + if (navigateUrl === '#') { + navigateUrl = undefined; + } + if (navigateUrl && navigateUrl[0] !== '/' && navigateUrl.indexOf('#') !== 0) { + navigateUrl = ((router.path || '/') + navigateUrl).replace('//', '/'); + } + if (!navigateUrl && router.history.length > 1) { + navigateUrl = router.history[router.history.length - 2]; + } + if (skipMaster && !navigateOptions.force && router.history[router.history.length - 3]) { + return router.back(router.history[router.history.length - 3], Utils.extend({}, navigateOptions || {}, { + force: true, + animate: false, + })); + } + if (skipMaster && !navigateOptions.force) { + return router; + } + + // Find route to load + route = router.findMatchingRoute(navigateUrl); + if (!route) { + if (navigateUrl) { + route = { + url: navigateUrl, + path: navigateUrl.split('?')[0], + query: Utils.parseUrlQuery(navigateUrl), + route: { + path: navigateUrl.split('?')[0], + url: navigateUrl, + }, + }; + } + } + if (!route) { + return router; + } + + if (route.route.redirect) { + return redirect.call(router, 'back', route, navigateOptions); + } + + var options = {}; + if (route.route.options) { + Utils.extend(options, route.route.options, navigateOptions); + } else { + Utils.extend(options, navigateOptions); + } + options.route = route; + + if (options && options.context) { + route.context = options.context; + options.route.context = options.context; + } + + var backForceLoaded; + if (options.force && router.params.stackPages) { + router.$el.children('.page-previous.stacked').each(function (index, pageEl) { + if (pageEl.f7Page && pageEl.f7Page.route && pageEl.f7Page.route.url === route.url) { + backForceLoaded = true; + router.loadBack({ el: pageEl }, options); + } + }); + if (backForceLoaded) { + return router; + } + } + function resolve() { + var routerLoaded = false; + if (route.route.keepAlive && route.route.keepAliveData) { + router.loadBack({ el: route.route.keepAliveData.pageEl }, options); + routerLoaded = true; + } + ('url content component pageName el componentUrl template templateUrl').split(' ').forEach(function (pageLoadProp) { + var obj; + + if (route.route[pageLoadProp] && !routerLoaded) { + routerLoaded = true; + router.loadBack(( obj = {}, obj[pageLoadProp] = route.route[pageLoadProp], obj ), options); + } + }); + if (routerLoaded) { return; } + // Async + function asyncResolve(resolveParams, resolveOptions) { + router.allowPageChange = false; + if (resolveOptions && resolveOptions.context) { + if (!route.context) { route.context = resolveOptions.context; } + else { route.context = Utils.extend({}, route.context, resolveOptions.context); } + options.route.context = route.context; + } + router.loadBack(resolveParams, Utils.extend(options, resolveOptions), true); + } + function asyncReject() { + router.allowPageChange = true; + } + if (route.route.async) { + router.allowPageChange = false; + route.route.async.call(router, route, router.currentRoute, asyncResolve, asyncReject); + } + if (route.route.asyncComponent) { + asyncComponent(router, route.route.asyncComponent, asyncResolve, asyncReject); + } + } + function reject() { + router.allowPageChange = true; + } + + if (options.preload) { + resolve(); + } else { + processRouteQueue.call( + router, + route, + router.currentRoute, + function () { + if (route.route.modules) { + app + .loadModules(Array.isArray(route.route.modules) ? route.route.modules : [route.route.modules]) + .then(function () { + resolve(); + }) + .catch(function () { + reject(); + }); + } else { + resolve(); + } + }, + function () { + reject(); + } + ); + } + + // Return Router + return router; + } + + function clearPreviousPages(router) { + appRouterCheck(router, 'clearPreviousPages'); + var app = router.app; + var dynamicNavbar = router.dynamicNavbar; + + var $pagesToRemove = router.$el + .children('.page') + .filter(function (index, pageInView) { + if (router.currentRoute && (router.currentRoute.modal || router.currentRoute.panel)) { return true; } + return pageInView !== router.currentPageEl; + }); + + $pagesToRemove.each(function (index, pageEl) { + var $oldPageEl = $(pageEl); + var $oldNavbarEl = $(app.navbar.getElByPage($oldPageEl)); + if (router.params.stackPages && router.initialPages.indexOf($oldPageEl[0]) >= 0) { + $oldPageEl.addClass('stacked'); + if (dynamicNavbar) { + $oldNavbarEl.addClass('stacked'); + } + } else { + // Page remove event + router.pageCallback('beforeRemove', $oldPageEl, $oldNavbarEl, 'previous', undefined, {}); + router.removePage($oldPageEl); + if (dynamicNavbar && $oldNavbarEl.length) { + router.removeNavbar($oldNavbarEl); + } + } + }); + } + + function clearPreviousHistory() { + var router = this; + appRouterCheck(router, 'clearPreviousHistory'); + var url = router.history[router.history.length - 1]; + + clearPreviousPages(router); + + router.history = [url]; + router.view.history = [url]; + router.saveHistory(); + } + + var Router = /*@__PURE__*/(function (Framework7Class) { + function Router(app, view) { + Framework7Class.call(this, {}, [typeof view === 'undefined' ? app : view]); + var router = this; + + // Is App Router + router.isAppRouter = typeof view === 'undefined'; + + if (router.isAppRouter) { + // App Router + Utils.extend(false, router, { + app: app, + params: app.params.view, + routes: app.routes || [], + cache: app.cache, + }); + } else { + // View Router + Utils.extend(false, router, { + app: app, + view: view, + viewId: view.id, + params: view.params, + routes: view.routes, + $el: view.$el, + el: view.el, + $navbarsEl: view.$navbarsEl, + navbarsEl: view.navbarsEl, + history: view.history, + scrollHistory: view.scrollHistory, + cache: app.cache, + dynamicNavbar: app.theme === 'ios' && view.params.iosDynamicNavbar, + initialPages: [], + initialNavbars: [], + }); + } + + // Install Modules + router.useModules(); + + // Temporary Dom + router.tempDom = doc.createElement('div'); + + // AllowPageChage + router.allowPageChange = true; + + // Current Route + var currentRoute = {}; + var previousRoute = {}; + Object.defineProperty(router, 'currentRoute', { + enumerable: true, + configurable: true, + set: function set(newRoute) { + if ( newRoute === void 0 ) newRoute = {}; + + previousRoute = Utils.extend({}, currentRoute); + currentRoute = newRoute; + if (!currentRoute) { return; } + router.url = currentRoute.url; + router.emit('routeChange', newRoute, previousRoute, router); + }, + get: function get() { + return currentRoute; + }, + }); + Object.defineProperty(router, 'previousRoute', { + enumerable: true, + configurable: true, + get: function get() { + return previousRoute; + }, + set: function set(newRoute) { + previousRoute = newRoute; + }, + }); + + return router; + } + + if ( Framework7Class ) Router.__proto__ = Framework7Class; + Router.prototype = Object.create( Framework7Class && Framework7Class.prototype ); + Router.prototype.constructor = Router; + + Router.prototype.animatableNavElements = function animatableNavElements ($newNavbarEl, $oldNavbarEl, toLarge, fromLarge, direction) { + var router = this; + var dynamicNavbar = router.dynamicNavbar; + var animateIcon = router.params.iosAnimateNavbarBackIcon; + + var newNavEls; + var oldNavEls; + function animatableNavEl($el, $navbarInner) { + var isSliding = $el.hasClass('sliding') || $navbarInner.hasClass('sliding'); + var isSubnavbar = $el.hasClass('subnavbar'); + var needsOpacityTransition = isSliding ? !isSubnavbar : true; + var $iconEl = $el.find('.back .icon'); + var isIconLabel; + if (isSliding && animateIcon && $el.hasClass('left') && $iconEl.length > 0 && $iconEl.next('span').length) { + $el = $iconEl.next('span'); // eslint-disable-line + isIconLabel = true; + } + return { + $el: $el, + isIconLabel: isIconLabel, + leftOffset: $el[0].f7NavbarLeftOffset, + rightOffset: $el[0].f7NavbarRightOffset, + isSliding: isSliding, + isSubnavbar: isSubnavbar, + needsOpacityTransition: needsOpacityTransition, + }; + } + if (dynamicNavbar) { + newNavEls = []; + oldNavEls = []; + $newNavbarEl.children('.navbar-inner').children('.left, .right, .title, .subnavbar').each(function (index, navEl) { + var $navEl = $(navEl); + if ($navEl.hasClass('left') && fromLarge && direction === 'forward') { return; } + if ($navEl.hasClass('title') && toLarge) { return; } + newNavEls.push(animatableNavEl($navEl, $newNavbarEl.children('.navbar-inner'))); + }); + if (!($oldNavbarEl.hasClass('navbar-master') && router.params.masterDetailBreakpoint > 0 && router.app.width >= router.params.masterDetailBreakpoint)) { + $oldNavbarEl.children('.navbar-inner').children('.left, .right, .title, .subnavbar').each(function (index, navEl) { + var $navEl = $(navEl); + if ($navEl.hasClass('left') && toLarge && !fromLarge && direction === 'forward') { return; } + if ($navEl.hasClass('left') && toLarge && direction === 'backward') { return; } + if ($navEl.hasClass('title') && fromLarge) { + return; + } + oldNavEls.push(animatableNavEl($navEl, $oldNavbarEl.children('.navbar-inner'))); + }); + } + [oldNavEls, newNavEls].forEach(function (navEls) { + navEls.forEach(function (navEl) { + var n = navEl; + var isSliding = navEl.isSliding; + var $el = navEl.$el; + var otherEls = navEls === oldNavEls ? newNavEls : oldNavEls; + if (!(isSliding && $el.hasClass('title') && otherEls)) { return; } + otherEls.forEach(function (otherNavEl) { + if (otherNavEl.isIconLabel) { + var iconTextEl = otherNavEl.$el[0]; + n.leftOffset += iconTextEl ? (iconTextEl.offsetLeft || 0) : 0; + } + }); + }); + }); + } + + return { newNavEls: newNavEls, oldNavEls: oldNavEls }; + }; + + Router.prototype.animate = function animate ($oldPageEl, $newPageEl, $oldNavbarEl, $newNavbarEl, direction, transition, callback) { + var router = this; + if (router.params.animateCustom) { + router.params.animateCustom.apply(router, [$oldPageEl, $newPageEl, $oldNavbarEl, $newNavbarEl, direction, callback]); + return; + } + var dynamicNavbar = router.dynamicNavbar; + var ios = router.app.theme === 'ios'; + if (transition) { + var routerCustomTransitionClass = "router-transition-custom router-transition-" + transition + "-" + direction; + // Animate + var onCustomTransitionDone = function () { + router.$el.removeClass(routerCustomTransitionClass); + if (dynamicNavbar && router.$navbarsEl.length) { + if ($newNavbarEl) { + router.$navbarsEl.prepend($newNavbarEl); + } + if ($oldNavbarEl) { + router.$navbarsEl.prepend($oldNavbarEl); + } + } + if (callback) { callback(); } + }; + + (direction === 'forward' ? $newPageEl : $oldPageEl).animationEnd(onCustomTransitionDone); + if (dynamicNavbar) { + if ($newNavbarEl && $newPageEl) { + router.setNavbarPosition($newNavbarEl, ''); + $newNavbarEl.removeClass('navbar-next navbar-previous navbar-current'); + $newPageEl.prepend($newNavbarEl); + } + if ($oldNavbarEl && $oldPageEl) { + router.setNavbarPosition($oldNavbarEl, ''); + $oldNavbarEl.removeClass('navbar-next navbar-previous navbar-current'); + $oldPageEl.prepend($oldNavbarEl); + } + } + + router.$el.addClass(routerCustomTransitionClass); + return; + } + + + // Router Animation class + var routerTransitionClass = "router-transition-" + direction + " router-transition"; + + var newNavEls; + var oldNavEls; + + var fromLarge; + var toLarge; + + var oldIsLarge; + var newIsLarge; + + if (ios && dynamicNavbar) { + var betweenMasterAndDetail = router.params.masterDetailBreakpoint > 0 && router.app.width >= router.params.masterDetailBreakpoint + && ( + ($oldNavbarEl.hasClass('navbar-master') && $newNavbarEl.hasClass('navbar-master-detail')) + || ($oldNavbarEl.hasClass('navbar-master-detail') && $newNavbarEl.hasClass('navbar-master')) + ); + if (!betweenMasterAndDetail) { + oldIsLarge = $oldNavbarEl && $oldNavbarEl.hasClass('navbar-large'); + newIsLarge = $newNavbarEl && $newNavbarEl.hasClass('navbar-large'); + fromLarge = oldIsLarge && !$oldNavbarEl.hasClass('navbar-large-collapsed'); + toLarge = newIsLarge && !$newNavbarEl.hasClass('navbar-large-collapsed'); + } + var navEls = router.animatableNavElements($newNavbarEl, $oldNavbarEl, toLarge, fromLarge, direction); + newNavEls = navEls.newNavEls; + oldNavEls = navEls.oldNavEls; + } + + function animateNavbars(progress) { + if (!(ios && dynamicNavbar)) { return; } + if (progress === 1) { + if (toLarge) { + $newNavbarEl.addClass('router-navbar-transition-to-large'); + $oldNavbarEl.addClass('router-navbar-transition-to-large'); + } + if (fromLarge) { + $newNavbarEl.addClass('router-navbar-transition-from-large'); + $oldNavbarEl.addClass('router-navbar-transition-from-large'); + } + } + newNavEls.forEach(function (navEl) { + var $el = navEl.$el; + var offset = direction === 'forward' ? navEl.rightOffset : navEl.leftOffset; + if (navEl.isSliding) { + if (navEl.isSubnavbar && newIsLarge) { + $el[0].style.setProperty('transform', ("translate3d(" + (offset * (1 - progress)) + "px, calc(-1 * var(--f7-navbar-large-collapse-progress) * var(--f7-navbar-large-title-height)), 0)"), 'important'); + } else { + $el.transform(("translate3d(" + (offset * (1 - progress)) + "px,0,0)")); + } + } + }); + oldNavEls.forEach(function (navEl) { + var $el = navEl.$el; + var offset = direction === 'forward' ? navEl.leftOffset : navEl.rightOffset; + if (navEl.isSliding) { + if (navEl.isSubnavbar && oldIsLarge) { + $el.transform(("translate3d(" + (offset * (progress)) + "px, calc(-1 * var(--f7-navbar-large-collapse-progress) * var(--f7-navbar-large-title-height)), 0)")); + } else { + $el.transform(("translate3d(" + (offset * (progress)) + "px,0,0)")); + } + } + }); + } + + // AnimationEnd Callback + function onDone() { + if (router.dynamicNavbar) { + if ($newNavbarEl) { + $newNavbarEl.removeClass('router-navbar-transition-to-large router-navbar-transition-from-large'); + $newNavbarEl.addClass('navbar-no-title-large-transition'); + Utils.nextFrame(function () { + $newNavbarEl.removeClass('navbar-no-title-large-transition'); + }); + } + if ($oldNavbarEl) { + $oldNavbarEl.removeClass('router-navbar-transition-to-large router-navbar-transition-from-large'); + } + if ($newNavbarEl.hasClass('sliding') || $newNavbarEl.children('.navbar-inner.sliding').length) { + $newNavbarEl.find('.title, .left, .right, .left .icon, .subnavbar').transform(''); + } else { + $newNavbarEl.find('.sliding').transform(''); + } + if ($oldNavbarEl.hasClass('sliding') || $oldNavbarEl.children('.navbar-inner.sliding').length) { + $oldNavbarEl.find('.title, .left, .right, .left .icon, .subnavbar').transform(''); + } else { + $oldNavbarEl.find('.sliding').transform(''); + } + } + router.$el.removeClass(routerTransitionClass); + if (callback) { callback(); } + } + + (direction === 'forward' ? $newPageEl : $oldPageEl).animationEnd(function () { + onDone(); + }); + + // Animate + if (dynamicNavbar) { + // Prepare Navbars + animateNavbars(0); + Utils.nextFrame(function () { + // Add class, start animation + animateNavbars(1); + router.$el.addClass(routerTransitionClass); + }); + } else { + // Add class, start animation + router.$el.addClass(routerTransitionClass); + } + }; + + Router.prototype.removeModal = function removeModal (modalEl) { + var router = this; + router.removeEl(modalEl); + }; + // eslint-disable-next-line + Router.prototype.removeTabContent = function removeTabContent (tabEl) { + var $tabEl = $(tabEl); + $tabEl.html(''); + }; + + Router.prototype.removeNavbar = function removeNavbar (el) { + var router = this; + router.removeEl(el); + }; + + Router.prototype.removePage = function removePage (el) { + var $el = $(el); + var f7Page = $el && $el[0] && $el[0].f7Page; + var router = this; + if (f7Page && f7Page.route && f7Page.route.route && f7Page.route.route.keepAlive) { + $el.remove(); + return; + } + router.removeEl(el); + }; + + Router.prototype.removeEl = function removeEl (el) { + if (!el) { return; } + var router = this; + var $el = $(el); + if ($el.length === 0) { return; } + $el.find('.tab').each(function (tabIndex, tabEl) { + $(tabEl).children().each(function (index, tabChild) { + if (tabChild.f7Component) { + $(tabChild).trigger('tab:beforeremove'); + tabChild.f7Component.$destroy(); + } + }); + }); + if ($el[0].f7Component && $el[0].f7Component.$destroy) { + $el[0].f7Component.$destroy(); + } + if (!router.params.removeElements) { + return; + } + if (router.params.removeElementsWithTimeout) { + setTimeout(function () { + $el.remove(); + }, router.params.removeElementsTimeout); + } else { + $el.remove(); + } + }; + + Router.prototype.getPageEl = function getPageEl (content) { + var router = this; + if (typeof content === 'string') { + router.tempDom.innerHTML = content; + } else { + if ($(content).hasClass('page')) { + return content; + } + router.tempDom.innerHTML = ''; + $(router.tempDom).append(content); + } + + return router.findElement('.page', router.tempDom); + }; + + Router.prototype.findElement = function findElement (stringSelector, container, notStacked) { + var router = this; + var view = router.view; + var app = router.app; + + // Modals Selector + var modalsSelector = '.popup, .dialog, .popover, .actions-modal, .sheet-modal, .login-screen, .page'; + + var $container = $(container); + var selector = stringSelector; + if (notStacked) { selector += ':not(.stacked)'; } + + var found = $container + .find(selector) + .filter(function (index, el) { return $(el).parents(modalsSelector).length === 0; }); + + if (found.length > 1) { + if (typeof view.selector === 'string') { + // Search in related view + found = $container.find(((view.selector) + " " + selector)); + } + if (found.length > 1) { + // Search in main view + found = $container.find(("." + (app.params.viewMainClass) + " " + selector)); + } + } + if (found.length === 1) { return found; } + + // Try to find not stacked + if (!notStacked) { found = router.findElement(selector, $container, true); } + if (found && found.length === 1) { return found; } + if (found && found.length > 1) { return $(found[0]); } + return undefined; + }; + + Router.prototype.flattenRoutes = function flattenRoutes (routes) { + if ( routes === void 0 ) routes = this.routes; + + var router = this; + var flattenedRoutes = []; + routes.forEach(function (route) { + var hasTabRoutes = false; + if ('tabs' in route && route.tabs) { + var mergedPathsRoutes = route.tabs.map(function (tabRoute) { + var tRoute = Utils.extend({}, route, { + path: (((route.path) + "/" + (tabRoute.path))).replace('///', '/').replace('//', '/'), + parentPath: route.path, + tab: tabRoute, + }); + delete tRoute.tabs; + delete tRoute.routes; + return tRoute; + }); + hasTabRoutes = true; + flattenedRoutes = flattenedRoutes.concat(router.flattenRoutes(mergedPathsRoutes)); + } + if ('detailRoutes' in route) { + var mergedPathsRoutes$1 = route.detailRoutes.map(function (detailRoute) { + var dRoute = Utils.extend({}, detailRoute); + dRoute.masterRoute = route; + dRoute.masterRoutePath = route.path; + return dRoute; + }); + flattenedRoutes = flattenedRoutes.concat(route, router.flattenRoutes(mergedPathsRoutes$1)); + } + if ('routes' in route) { + var mergedPathsRoutes$2 = route.routes.map(function (childRoute) { + var cRoute = Utils.extend({}, childRoute); + cRoute.path = (((route.path) + "/" + (cRoute.path))).replace('///', '/').replace('//', '/'); + return cRoute; + }); + if (hasTabRoutes) { + flattenedRoutes = flattenedRoutes.concat(router.flattenRoutes(mergedPathsRoutes$2)); + } else { + flattenedRoutes = flattenedRoutes.concat(route, router.flattenRoutes(mergedPathsRoutes$2)); + } + } + if (!('routes' in route) && !('tabs' in route && route.tabs) && !('detailRoutes' in route)) { + flattenedRoutes.push(route); + } + }); + return flattenedRoutes; + }; + + // eslint-disable-next-line + Router.prototype.parseRouteUrl = function parseRouteUrl (url) { + if (!url) { return {}; } + var query = Utils.parseUrlQuery(url); + var hash = url.split('#')[1]; + var params = {}; + var path = url.split('#')[0].split('?')[0]; + return { + query: query, + hash: hash, + params: params, + url: url, + path: path, + }; + }; + + Router.prototype.generateUrl = function generateUrl (parameters) { + if ( parameters === void 0 ) parameters = {}; + + if (typeof parameters === 'string') { + return parameters; + } + var name = parameters.name; + var path = parameters.path; + var params = parameters.params; + var query = parameters.query; + if (!name && !path) { + throw new Error('Framework7: "name" or "path" parameter is required'); + } + var router = this; + var route = name + ? router.findRouteByKey('name', name) + : router.findRouteByKey('path', path); + + if (!route) { + if (name) { + throw new Error(("Framework7: route with name \"" + name + "\" not found")); + } else { + throw new Error(("Framework7: route with path \"" + path + "\" not found")); + } + } + var url = router.constructRouteUrl(route, { params: params, query: query }); + if (!url) { + throw new Error(("Framework7: can't construct URL for route with name \"" + name + "\"")); + } + return url; + }; + + // eslint-disable-next-line + Router.prototype.constructRouteUrl = function constructRouteUrl (route, ref) { + if ( ref === void 0 ) ref = {}; + var params = ref.params; + var query = ref.query; + + var path = route.path; + var toUrl = compile(path); + var url; + try { + url = toUrl(params || {}); + } catch (error) { + throw new Error(("Framework7: error constructing route URL from passed params:\nRoute: " + path + "\n" + (error.toString()))); + } + + if (query) { + if (typeof query === 'string') { url += "?" + query; } + else { url += "?" + (Utils.serializeObject(query)); } + } + + return url; + }; + + Router.prototype.findTabRoute = function findTabRoute (tabEl) { + var router = this; + var $tabEl = $(tabEl); + var parentPath = router.currentRoute.route.parentPath; + var tabId = $tabEl.attr('id'); + var flattenedRoutes = router.flattenRoutes(router.routes); + var foundTabRoute; + flattenedRoutes.forEach(function (route) { + if ( + route.parentPath === parentPath + && route.tab + && route.tab.id === tabId + ) { + foundTabRoute = route; + } + }); + return foundTabRoute; + }; + + Router.prototype.findRouteByKey = function findRouteByKey (key, value) { + var router = this; + var routes = router.routes; + var flattenedRoutes = router.flattenRoutes(routes); + var matchingRoute; + + flattenedRoutes.forEach(function (route) { + if (matchingRoute) { return; } + if (route[key] === value) { + matchingRoute = route; + } + }); + return matchingRoute; + }; + + Router.prototype.findMatchingRoute = function findMatchingRoute (url) { + if (!url) { return undefined; } + var router = this; + var routes = router.routes; + var flattenedRoutes = router.flattenRoutes(routes); + var ref = router.parseRouteUrl(url); + var path = ref.path; + var query = ref.query; + var hash = ref.hash; + var params = ref.params; + var matchingRoute; + flattenedRoutes.forEach(function (route) { + if (matchingRoute) { return; } + var keys = []; + + var pathsToMatch = [route.path]; + if (route.alias) { + if (typeof route.alias === 'string') { pathsToMatch.push(route.alias); } + else if (Array.isArray(route.alias)) { + route.alias.forEach(function (aliasPath) { + pathsToMatch.push(aliasPath); + }); + } + } + + var matched; + pathsToMatch.forEach(function (pathToMatch) { + if (matched) { return; } + matched = pathToRegexp(pathToMatch, keys).exec(path); + }); + + if (matched) { + keys.forEach(function (keyObj, index) { + if (typeof keyObj.name === 'number') { return; } + var paramValue = matched[index + 1]; + if (typeof paramValue === 'undefined' || paramValue === null) { + params[keyObj.name] = paramValue; + } else { + params[keyObj.name] = decodeURIComponent(paramValue); + } + }); + + var parentPath; + if (route.parentPath) { + parentPath = path.split('/').slice(0, route.parentPath.split('/').length - 1).join('/'); + } + + matchingRoute = { + query: query, + hash: hash, + params: params, + url: url, + path: path, + parentPath: parentPath, + route: route, + name: route.name, + }; + } + }); + return matchingRoute; + }; + + // eslint-disable-next-line + Router.prototype.replaceRequestUrlParams = function replaceRequestUrlParams (url, options) { + if ( url === void 0 ) url = ''; + if ( options === void 0 ) options = {}; + + var compiledUrl = url; + if (typeof compiledUrl === 'string' + && compiledUrl.indexOf('{{') >= 0 + && options + && options.route + && options.route.params + && Object.keys(options.route.params).length + ) { + Object.keys(options.route.params).forEach(function (paramName) { + var regExp = new RegExp(("{{" + paramName + "}}"), 'g'); + compiledUrl = compiledUrl.replace(regExp, options.route.params[paramName] || ''); + }); + } + return compiledUrl; + }; + + Router.prototype.removeFromXhrCache = function removeFromXhrCache (url) { + var router = this; + var xhrCache = router.cache.xhr; + var index = false; + for (var i = 0; i < xhrCache.length; i += 1) { + if (xhrCache[i].url === url) { index = i; } + } + if (index !== false) { xhrCache.splice(index, 1); } + }; + + Router.prototype.xhrRequest = function xhrRequest (requestUrl, options) { + var router = this; + var params = router.params; + var ignoreCache = options.ignoreCache; + var url = requestUrl; + + var hasQuery = url.indexOf('?') >= 0; + if (params.passRouteQueryToRequest + && options + && options.route + && options.route.query + && Object.keys(options.route.query).length + ) { + url += "" + (hasQuery ? '&' : '?') + (Utils.serializeObject(options.route.query)); + hasQuery = true; + } + + if (params.passRouteParamsToRequest + && options + && options.route + && options.route.params + && Object.keys(options.route.params).length + ) { + url += "" + (hasQuery ? '&' : '?') + (Utils.serializeObject(options.route.params)); + hasQuery = true; + } + + if (url.indexOf('{{') >= 0) { + url = router.replaceRequestUrlParams(url, options); + } + // should we ignore get params or not + if (params.xhrCacheIgnoreGetParameters && url.indexOf('?') >= 0) { + url = url.split('?')[0]; + } + return new Promise(function (resolve, reject) { + if (params.xhrCache && !ignoreCache && url.indexOf('nocache') < 0 && params.xhrCacheIgnore.indexOf(url) < 0) { + for (var i = 0; i < router.cache.xhr.length; i += 1) { + var cachedUrl = router.cache.xhr[i]; + if (cachedUrl.url === url) { + // Check expiration + if (Utils.now() - cachedUrl.time < params.xhrCacheDuration) { + // Load from cache + resolve(cachedUrl.content); + return; + } + } + } + } + router.xhr = router.app.request({ + url: url, + method: 'GET', + beforeSend: function beforeSend(xhr) { + router.emit('routerAjaxStart', xhr, options); + }, + complete: function complete(xhr, status) { + router.emit('routerAjaxComplete', xhr); + if ((status !== 'error' && status !== 'timeout' && (xhr.status >= 200 && xhr.status < 300)) || xhr.status === 0) { + if (params.xhrCache && xhr.responseText !== '') { + router.removeFromXhrCache(url); + router.cache.xhr.push({ + url: url, + time: Utils.now(), + content: xhr.responseText, + }); + } + router.emit('routerAjaxSuccess', xhr, options); + resolve(xhr.responseText); + } else { + router.emit('routerAjaxError', xhr, options); + reject(xhr); + } + }, + error: function error(xhr) { + router.emit('routerAjaxError', xhr, options); + reject(xhr); + }, + }); + }); + }; + + Router.prototype.setNavbarPosition = function setNavbarPosition ($el, position, ariaHidden) { + var router = this; + $el.removeClass('navbar-previous navbar-current navbar-next'); + if (position) { + $el.addClass(("navbar-" + position)); + } + + if (ariaHidden === false) { + $el.removeAttr('aria-hidden'); + } else if (ariaHidden === true) { + $el.attr('aria-hidden', 'true'); + } + $el.trigger('navbar:position', { position: position }); + router.emit('navbarPosition', $el[0], position); + }; + + Router.prototype.setPagePosition = function setPagePosition ($el, position, ariaHidden) { + var router = this; + $el.removeClass('page-previous page-current page-next'); + $el.addClass(("page-" + position)); + if (ariaHidden === false) { + $el.removeAttr('aria-hidden'); + } else if (ariaHidden === true) { + $el.attr('aria-hidden', 'true'); + } + $el.trigger('page:position', { position: position }); + router.emit('pagePosition', $el[0], position); + }; + + // Remove theme elements + Router.prototype.removeThemeElements = function removeThemeElements (el) { + var router = this; + var theme = router.app.theme; + var toRemove; + if (theme === 'ios') { + toRemove = '.md-only, .aurora-only, .if-md, .if-aurora, .if-not-ios, .not-ios'; + } else if (theme === 'md') { + toRemove = '.ios-only, .aurora-only, .if-ios, .if-aurora, .if-not-md, .not-md'; + } else if (theme === 'aurora') { + toRemove = '.ios-only, .md-only, .if-ios, .if-md, .if-not-aurora, .not-aurora'; + } + $(el).find(toRemove).remove(); + }; + + Router.prototype.getPageData = function getPageData (pageEl, navbarEl, from, to, route, pageFromEl) { + if ( route === void 0 ) route = {}; + + var router = this; + var $pageEl = $(pageEl).eq(0); + var $navbarEl = $(navbarEl).eq(0); + var currentPage = $pageEl[0].f7Page || {}; + var direction; + var pageFrom; + if ((from === 'next' && to === 'current') || (from === 'current' && to === 'previous')) { direction = 'forward'; } + if ((from === 'current' && to === 'next') || (from === 'previous' && to === 'current')) { direction = 'backward'; } + if (currentPage && !currentPage.fromPage) { + var $pageFromEl = $(pageFromEl); + if ($pageFromEl.length) { + pageFrom = $pageFromEl[0].f7Page; + } + } + pageFrom = currentPage.pageFrom || pageFrom; + if (pageFrom && pageFrom.pageFrom) { + pageFrom.pageFrom = null; + } + var page = { + app: router.app, + view: router.view, + router: router, + $el: $pageEl, + el: $pageEl[0], + $pageEl: $pageEl, + pageEl: $pageEl[0], + $navbarEl: $navbarEl, + navbarEl: $navbarEl[0], + name: $pageEl.attr('data-name'), + position: from, + from: from, + to: to, + direction: direction, + route: currentPage.route ? currentPage.route : route, + pageFrom: pageFrom, + }; + + $pageEl[0].f7Page = page; + return page; + }; + + // Callbacks + Router.prototype.pageCallback = function pageCallback (callback, pageEl, navbarEl, from, to, options, pageFromEl) { + if ( options === void 0 ) options = {}; + + if (!pageEl) { return; } + var router = this; + var $pageEl = $(pageEl); + if (!$pageEl.length) { return; } + var $navbarEl = $(navbarEl); + var route = options.route; + var restoreScrollTopOnBack = router.params.restoreScrollTopOnBack + && !( + router.params.masterDetailBreakpoint > 0 + && $pageEl.hasClass('page-master') + && router.app.width >= router.params.masterDetailBreakpoint + ); + var keepAlive = $pageEl[0].f7Page && $pageEl[0].f7Page.route && $pageEl[0].f7Page.route.route && $pageEl[0].f7Page.route.route.keepAlive; + + if (callback === 'beforeRemove' && keepAlive) { + callback = 'beforeUnmount'; // eslint-disable-line + } + + var camelName = "page" + (callback[0].toUpperCase() + callback.slice(1, callback.length)); + var colonName = "page:" + (callback.toLowerCase()); + + var page = {}; + if (callback === 'beforeRemove' && $pageEl[0].f7Page) { + page = Utils.extend($pageEl[0].f7Page, { from: from, to: to, position: from }); + } else { + page = router.getPageData($pageEl[0], $navbarEl[0], from, to, route, pageFromEl); + } + page.swipeBack = !!options.swipeBack; + + var ref = options.route ? options.route.route : {}; + var on = ref.on; if ( on === void 0 ) on = {}; + var once = ref.once; if ( once === void 0 ) once = {}; + if (options.on) { + Utils.extend(on, options.on); + } + if (options.once) { + Utils.extend(once, options.once); + } + + function attachEvents() { + if ($pageEl[0].f7RouteEventsAttached) { return; } + $pageEl[0].f7RouteEventsAttached = true; + if (on && Object.keys(on).length > 0) { + $pageEl[0].f7RouteEventsOn = on; + Object.keys(on).forEach(function (eventName) { + on[eventName] = on[eventName].bind(router); + $pageEl.on(Utils.eventNameToColonCase(eventName), on[eventName]); + }); + } + if (once && Object.keys(once).length > 0) { + $pageEl[0].f7RouteEventsOnce = once; + Object.keys(once).forEach(function (eventName) { + once[eventName] = once[eventName].bind(router); + $pageEl.once(Utils.eventNameToColonCase(eventName), once[eventName]); + }); + } + } + + function detachEvents() { + if (!$pageEl[0].f7RouteEventsAttached) { return; } + if ($pageEl[0].f7RouteEventsOn) { + Object.keys($pageEl[0].f7RouteEventsOn).forEach(function (eventName) { + $pageEl.off(Utils.eventNameToColonCase(eventName), $pageEl[0].f7RouteEventsOn[eventName]); + }); + } + if ($pageEl[0].f7RouteEventsOnce) { + Object.keys($pageEl[0].f7RouteEventsOnce).forEach(function (eventName) { + $pageEl.off(Utils.eventNameToColonCase(eventName), $pageEl[0].f7RouteEventsOnce[eventName]); + }); + } + $pageEl[0].f7RouteEventsAttached = null; + $pageEl[0].f7RouteEventsOn = null; + $pageEl[0].f7RouteEventsOnce = null; + delete $pageEl[0].f7RouteEventsAttached; + delete $pageEl[0].f7RouteEventsOn; + delete $pageEl[0].f7RouteEventsOnce; + } + + if (callback === 'mounted') { + attachEvents(); + } + if (callback === 'init') { + if (restoreScrollTopOnBack && (from === 'previous' || !from) && to === 'current' && router.scrollHistory[page.route.url] && !$pageEl.hasClass('no-restore-scroll')) { + var $pageContent = $pageEl.find('.page-content'); + if ($pageContent.length > 0) { + // eslint-disable-next-line + $pageContent = $pageContent.filter(function (pageContentIndex, pageContentEl) { + return ( + $(pageContentEl).parents('.tab:not(.tab-active)').length === 0 + && !$(pageContentEl).is('.tab:not(.tab-active)') + ); + }); + } + $pageContent.scrollTop(router.scrollHistory[page.route.url]); + } + attachEvents(); + if ($pageEl[0].f7PageInitialized) { + $pageEl.trigger('page:reinit', page); + router.emit('pageReinit', page); + return; + } + $pageEl[0].f7PageInitialized = true; + } + if (restoreScrollTopOnBack && callback === 'beforeOut' && from === 'current' && to === 'previous') { + // Save scroll position + var $pageContent$1 = $pageEl.find('.page-content'); + if ($pageContent$1.length > 0) { + // eslint-disable-next-line + $pageContent$1 = $pageContent$1.filter(function (pageContentIndex, pageContentEl) { + return ( + $(pageContentEl).parents('.tab:not(.tab-active)').length === 0 + && !$(pageContentEl).is('.tab:not(.tab-active)') + ); + }); + } + router.scrollHistory[page.route.url] = $pageContent$1.scrollTop(); + } + if (restoreScrollTopOnBack && callback === 'beforeOut' && from === 'current' && to === 'next') { + // Delete scroll position + delete router.scrollHistory[page.route.url]; + } + + $pageEl.trigger(colonName, page); + router.emit(camelName, page); + + if (callback === 'beforeRemove' || callback === 'beforeUnmount') { + detachEvents(); + if (!keepAlive) { + if ($pageEl[0].f7Page && $pageEl[0].f7Page.navbarEl) { + delete $pageEl[0].f7Page.navbarEl.f7Page; + } + $pageEl[0].f7Page = null; + } + } + }; + + Router.prototype.saveHistory = function saveHistory () { + var router = this; + router.view.history = router.history; + if (router.params.pushState) { + win.localStorage[("f7router-" + (router.view.id) + "-history")] = JSON.stringify(router.history); + } + }; + + Router.prototype.restoreHistory = function restoreHistory () { + var router = this; + if (router.params.pushState && win.localStorage[("f7router-" + (router.view.id) + "-history")]) { + router.history = JSON.parse(win.localStorage[("f7router-" + (router.view.id) + "-history")]); + router.view.history = router.history; + } + }; + + Router.prototype.clearHistory = function clearHistory () { + var router = this; + router.history = []; + if (router.view) { router.view.history = []; } + router.saveHistory(); + }; + + Router.prototype.updateCurrentUrl = function updateCurrentUrl (newUrl) { + var router = this; + appRouterCheck(router, 'updateCurrentUrl'); + // Update history + if (router.history.length) { + router.history[router.history.length - 1] = newUrl; + } else { + router.history.push(newUrl); + } + + // Update current route params + var ref = router.parseRouteUrl(newUrl); + var query = ref.query; + var hash = ref.hash; + var params = ref.params; + var url = ref.url; + var path = ref.path; + if (router.currentRoute) { + Utils.extend(router.currentRoute, { + query: query, + hash: hash, + params: params, + url: url, + path: path, + }); + } + + if (router.params.pushState) { + var pushStateRoot = router.params.pushStateRoot || ''; + History.replace( + router.view.id, + { + url: newUrl, + }, + pushStateRoot + router.params.pushStateSeparator + newUrl + ); + } + + // Save History + router.saveHistory(); + + router.emit('routeUrlUpdate', router.currentRoute, router); + }; + + Router.prototype.init = function init () { + var router = this; + var app = router.app; + var view = router.view; + + // Init Swipeback + if ( + (view && router.params.iosSwipeBack && app.theme === 'ios') + || (view && router.params.mdSwipeBack && app.theme === 'md') + || (view && router.params.auroraSwipeBack && app.theme === 'aurora') + ) { + SwipeBack(router); + } + + var initUrl = router.params.url; + var documentUrl = doc.location.href.split(doc.location.origin)[1]; + var historyRestored; + var ref = router.params; + var pushState = ref.pushState; + var pushStateOnLoad = ref.pushStateOnLoad; + var pushStateSeparator = ref.pushStateSeparator; + var pushStateAnimateOnLoad = ref.pushStateAnimateOnLoad; + var ref$1 = router.params; + var pushStateRoot = ref$1.pushStateRoot; + if (win.cordova && pushState && !pushStateSeparator && !pushStateRoot && doc.location.pathname.indexOf('index.html')) { + // eslint-disable-next-line + console.warn('Framework7: wrong or not complete pushState configuration, trying to guess pushStateRoot'); + pushStateRoot = doc.location.pathname.split('index.html')[0]; + } + if (!pushState || !pushStateOnLoad) { + if (!initUrl) { + initUrl = documentUrl; + } + if (doc.location.search && initUrl.indexOf('?') < 0) { + initUrl += doc.location.search; + } + if (doc.location.hash && initUrl.indexOf('#') < 0) { + initUrl += doc.location.hash; + } + } else { + if (pushStateRoot && documentUrl.indexOf(pushStateRoot) >= 0) { + documentUrl = documentUrl.split(pushStateRoot)[1]; + if (documentUrl === '') { documentUrl = '/'; } + } + if (pushStateSeparator.length > 0 && documentUrl.indexOf(pushStateSeparator) >= 0) { + initUrl = documentUrl.split(pushStateSeparator)[1]; + } else { + initUrl = documentUrl; + } + router.restoreHistory(); + if (router.history.indexOf(initUrl) >= 0) { + router.history = router.history.slice(0, router.history.indexOf(initUrl) + 1); + } else if (router.params.url === initUrl) { + router.history = [initUrl]; + } else if (History.state && History.state[view.id] && History.state[view.id].url === router.history[router.history.length - 1]) { + initUrl = router.history[router.history.length - 1]; + } else { + router.history = [documentUrl.split(pushStateSeparator)[0] || '/', initUrl]; + } + if (router.history.length > 1) { + historyRestored = true; + } else { + router.history = []; + } + router.saveHistory(); + } + var currentRoute; + if (router.history.length > 1) { + // Will load page + currentRoute = router.findMatchingRoute(router.history[0]); + if (!currentRoute) { + currentRoute = Utils.extend(router.parseRouteUrl(router.history[0]), { + route: { + url: router.history[0], + path: router.history[0].split('?')[0], + }, + }); + } + } else { + // Don't load page + currentRoute = router.findMatchingRoute(initUrl); + if (!currentRoute) { + currentRoute = Utils.extend(router.parseRouteUrl(initUrl), { + route: { + url: initUrl, + path: initUrl.split('?')[0], + }, + }); + } + } + + if (router.params.stackPages) { + router.$el.children('.page').each(function (index, pageEl) { + var $pageEl = $(pageEl); + router.initialPages.push($pageEl[0]); + if (router.dynamicNavbar && $pageEl.children('.navbar').length > 0) { + router.initialNavbars.push($pageEl.children('.navbar')[0]); + } + }); + } + + if (router.$el.children('.page:not(.stacked)').length === 0 && initUrl && router.params.loadInitialPage) { + // No pages presented in DOM, reload new page + router.navigate(initUrl, { + initial: true, + reloadCurrent: true, + pushState: false, + }); + } else if (router.$el.children('.page:not(.stacked)').length) { + // Init current DOM page + var hasTabRoute; + router.currentRoute = currentRoute; + router.$el.children('.page:not(.stacked)').each(function (index, pageEl) { + var $pageEl = $(pageEl); + var $navbarEl; + router.setPagePosition($pageEl, 'current'); + if (router.dynamicNavbar) { + $navbarEl = $pageEl.children('.navbar'); + if ($navbarEl.length > 0) { + if (!router.$navbarsEl.parents(doc).length) { + router.$el.prepend(router.$navbarsEl); + } + router.setNavbarPosition($navbarEl, 'current'); + router.$navbarsEl.append($navbarEl); + if ($navbarEl.children('.title-large').length) { + $navbarEl.addClass('navbar-large'); + } + $pageEl.children('.navbar').remove(); + } else { + router.$navbarsEl.addClass('navbar-hidden'); + if ($navbarEl.children('.title-large').length) { + router.$navbarsEl.addClass('navbar-hidden navbar-large-hidden'); + } + } + } + if (router.currentRoute && router.currentRoute.route && router.currentRoute.route.master && router.params.masterDetailBreakpoint > 0) { + $pageEl.addClass('page-master'); + $pageEl.trigger('page:role', { role: 'master' }); + if ($navbarEl && $navbarEl.length) { + $navbarEl.addClass('navbar-master'); + } + view.checkMasterDetailBreakpoint(); + } + var initOptions = { + route: router.currentRoute, + }; + if (router.currentRoute && router.currentRoute.route && router.currentRoute.route.options) { + Utils.extend(initOptions, router.currentRoute.route.options); + } + router.currentPageEl = $pageEl[0]; + if (router.dynamicNavbar && $navbarEl.length) { + router.currentNavbarEl = $navbarEl[0]; + } + router.removeThemeElements($pageEl); + if (router.dynamicNavbar && $navbarEl.length) { + router.removeThemeElements($navbarEl); + } + if (initOptions.route.route.tab) { + hasTabRoute = true; + router.tabLoad(initOptions.route.route.tab, Utils.extend({}, initOptions)); + } + router.pageCallback('init', $pageEl, $navbarEl, 'current', undefined, initOptions); + }); + if (historyRestored) { + router.navigate(initUrl, { + initial: true, + pushState: false, + history: false, + animate: pushStateAnimateOnLoad, + once: { + pageAfterIn: function pageAfterIn() { + var preloadPreviousPage = router.params.preloadPreviousPage || router.params[((app.theme) + "SwipeBack")]; + if (preloadPreviousPage && router.history.length > 2) { + router.back({ preload: true }); + } + }, + }, + }); + } + if (!historyRestored && !hasTabRoute) { + router.history.push(initUrl); + router.saveHistory(); + } + } + if (initUrl && pushState && pushStateOnLoad && (!History.state || !History.state[view.id])) { + History.initViewState(view.id, { + url: initUrl, + }); + } + router.emit('local::init routerInit', router); + }; + + Router.prototype.destroy = function destroy () { + var router = this; + + router.emit('local::destroy routerDestroy', router); + + // Delete props & methods + Object.keys(router).forEach(function (routerProp) { + router[routerProp] = null; + delete router[routerProp]; + }); + + router = null; + }; + + return Router; + }(Framework7Class)); + + // Load + Router.prototype.forward = forward; + Router.prototype.load = load; + Router.prototype.navigate = navigate; + Router.prototype.refreshPage = refreshPage; + // Tab + Router.prototype.tabLoad = tabLoad; + Router.prototype.tabRemove = tabRemove; + // Modal + Router.prototype.modalLoad = modalLoad; + Router.prototype.modalRemove = modalRemove; + // Back + Router.prototype.backward = backward; + Router.prototype.loadBack = loadBack; + Router.prototype.back = back; + // Clear history + Router.prototype.clearPreviousHistory = clearPreviousHistory; + + var RouterModule = { + name: 'router', + static: { + Router: Router, + }, + instance: { + cache: { + xhr: [], + templates: [], + components: [], + }, + }, + create: function create() { + var instance = this; + if (instance.app) { + // View Router + if (instance.params.router) { + instance.router = new Router(instance.app, instance); + } + } else { + // App Router + instance.router = new Router(instance); + } + }, + }; + + function resizableView(view) { + var app = view.app; + if (view.resizableInitialized) { return; } + Utils.extend(view, { + resizable: true, + resizableWidth: null, + resizableInitialized: true, + }); + var $htmlEl = $('html'); + var $el = view.$el; + if (!$el) { return; } + + var $resizeHandlerEl; + + var isTouched; + var isMoved; + var touchesStart = {}; + var touchesDiff; + var width; + + var minWidth; + var maxWidth; + + function transformCSSWidth(v) { + if (!v) { return null; } + if (v.indexOf('%') >= 0 || v.indexOf('vw') >= 0) { + return parseInt(v, 10) / 100 * app.width; + } + var newV = parseInt(v, 10); + if (Number.isNaN(newV)) { return null; } + return newV; + } + + function isResizable() { + return view.resizable && $el.hasClass('view-resizable') && $el.hasClass('view-master-detail'); + } + + function handleTouchStart(e) { + if (!isResizable()) { return; } + touchesStart.x = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX; + touchesStart.y = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY; + isMoved = false; + isTouched = true; + var $pageMasterEl = $el.children('.page-master'); + minWidth = transformCSSWidth($pageMasterEl.css('min-width')); + maxWidth = transformCSSWidth($pageMasterEl.css('max-width')); + } + function handleTouchMove(e) { + if (!isTouched) { return; } + e.f7PreventSwipePanel = true; + var pageX = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX; + + if (!isMoved) { + width = $resizeHandlerEl[0].offsetLeft + $resizeHandlerEl[0].offsetWidth; + $el.addClass('view-resizing'); + $htmlEl.css('cursor', 'col-resize'); + } + + isMoved = true; + + e.preventDefault(); + + touchesDiff = (pageX - touchesStart.x); + + var newWidth = width + touchesDiff; + if (minWidth && !Number.isNaN(minWidth)) { + newWidth = Math.max(newWidth, minWidth); + } + if (maxWidth && !Number.isNaN(maxWidth)) { + newWidth = Math.min(newWidth, maxWidth); + } + newWidth = Math.min(Math.max(newWidth, 0), app.width); + + view.resizableWidth = newWidth; + $htmlEl[0].style.setProperty('--f7-page-master-width', (newWidth + "px")); + + $el.trigger('view:resize', newWidth); + view.emit('local::resize viewResize', view, newWidth); + } + function handleTouchEnd() { + $('html').css('cursor', ''); + if (!isTouched || !isMoved) { + isTouched = false; + isMoved = false; + return; + } + isTouched = false; + isMoved = false; + + $htmlEl[0].style.setProperty('--f7-page-master-width', ((view.resizableWidth) + "px")); + $el.removeClass('view-resizing'); + } + + function handleResize() { + if (!view.resizableWidth) { return; } + minWidth = transformCSSWidth($resizeHandlerEl.css('min-width')); + maxWidth = transformCSSWidth($resizeHandlerEl.css('max-width')); + + if (minWidth && !Number.isNaN(minWidth) && view.resizableWidth < minWidth) { + view.resizableWidth = Math.max(view.resizableWidth, minWidth); + } + if (maxWidth && !Number.isNaN(maxWidth) && view.resizableWidth > maxWidth) { + view.resizableWidth = Math.min(view.resizableWidth, maxWidth); + } + view.resizableWidth = Math.min(Math.max(view.resizableWidth, 0), app.width); + + $htmlEl[0].style.setProperty('--f7-page-master-width', ((view.resizableWidth) + "px")); + } + + $resizeHandlerEl = view.$el.children('.view-resize-handler'); + if (!$resizeHandlerEl.length) { + view.$el.append('
'); + $resizeHandlerEl = view.$el.children('.view-resize-handler'); + } + view.$resizeHandlerEl = $resizeHandlerEl; + + $el.addClass('view-resizable'); + + // Add Events + var passive = Support.passiveListener ? { passive: true } : false; + + view.$el.on(app.touchEvents.start, '.view-resize-handler', handleTouchStart, passive); + app.on('touchmove:active', handleTouchMove); + app.on('touchend:passive', handleTouchEnd); + app.on('resize', handleResize); + view.on('beforeOpen', handleResize); + + view.once('viewDestroy', function () { + $el.removeClass('view-resizable'); + view.$resizeHandlerEl.remove(); + view.$el.off(app.touchEvents.start, '.view-resize-handler', handleTouchStart, passive); + app.off('touchmove:active', handleTouchMove); + app.off('touchend:passive', handleTouchEnd); + app.off('resize', handleResize); + view.off('beforeOpen', handleResize); + }); + } + + var View = /*@__PURE__*/(function (Framework7Class) { + function View(appInstance, el, viewParams) { + if ( viewParams === void 0 ) viewParams = {}; + + Framework7Class.call(this, viewParams, [appInstance]); + + var app = appInstance; + var $el = $(el); + var view = this; + + var defaults = { + routes: [], + routesAdd: [], + }; + + if ($el.length === 0) { + var message = 'Framework7: can\'t create a View instance because '; + message += (typeof el === 'string') + ? ("the selector \"" + el + "\" didn't match any element") + : 'el must be an HTMLElement or Dom7 object'; + + throw new Error(message); + } + + // Default View params + view.params = Utils.extend(defaults, app.params.view, viewParams); + + // Routes + if (view.params.routes.length > 0) { + view.routes = view.params.routes; + } else { + view.routes = [].concat(app.routes, view.params.routesAdd); + } + + // Selector + var selector; + if (typeof el === 'string') { selector = el; } + else { + // Supposed to be HTMLElement or Dom7 + selector = ($el.attr('id') ? ("#" + ($el.attr('id'))) : '') + ($el.attr('class') ? ("." + ($el.attr('class').replace(/ /g, '.').replace('.active', ''))) : ''); + } + + // DynamicNavbar + var $navbarsEl; + if (app.theme === 'ios' && view.params.iosDynamicNavbar) { + $navbarsEl = $el.children('.navbars').eq(0); + if ($navbarsEl.length === 0) { + $navbarsEl = $(''); + } + } + + // View Props + Utils.extend(false, view, { + app: app, + $el: $el, + el: $el[0], + name: view.params.name, + main: view.params.main || $el.hasClass('view-main'), + $navbarsEl: $navbarsEl, + navbarsEl: $navbarsEl ? $navbarsEl[0] : undefined, + selector: selector, + history: [], + scrollHistory: {}, + }); + + // Save in DOM + $el[0].f7View = view; + + // Install Modules + view.useModules(); + + // Add to app + app.views.push(view); + if (view.main) { + app.views.main = view; + } + if (view.name) { + app.views[view.name] = view; + } + + // Index + view.index = app.views.indexOf(view); + + // View ID + var viewId; + if (view.name) { + viewId = "view_" + (view.name); + } else if (view.main) { + viewId = 'view_main'; + } else { + viewId = "view_" + (view.index); + } + view.id = viewId; + + // Init View + if (app.initialized) { + view.init(); + } else { + app.on('init', function () { + view.init(); + }); + } + + return view; + } + + if ( Framework7Class ) View.__proto__ = Framework7Class; + View.prototype = Object.create( Framework7Class && Framework7Class.prototype ); + View.prototype.constructor = View; + + View.prototype.destroy = function destroy () { + var view = this; + var app = view.app; + + view.$el.trigger('view:beforedestroy'); + view.emit('local::beforeDestroy viewBeforeDestroy', view); + + app.off('resize', view.checkMasterDetailBreakpoint); + + if (view.main) { + app.views.main = null; + delete app.views.main; + } else if (view.name) { + app.views[view.name] = null; + delete app.views[view.name]; + } + view.$el[0].f7View = null; + delete view.$el[0].f7View; + + app.views.splice(app.views.indexOf(view), 1); + + // Destroy Router + if (view.params.router && view.router) { + view.router.destroy(); + } + + view.emit('local::destroy viewDestroy', view); + + // Delete props & methods + Object.keys(view).forEach(function (viewProp) { + view[viewProp] = null; + delete view[viewProp]; + }); + + view = null; + }; + + View.prototype.checkMasterDetailBreakpoint = function checkMasterDetailBreakpoint (force) { + var view = this; + var app = view.app; + var wasMasterDetail = view.$el.hasClass('view-master-detail'); + var isMasterDetail = app.width >= view.params.masterDetailBreakpoint && view.$el.children('.page-master').length; + if ((typeof force === 'undefined' && isMasterDetail) || force === true) { + view.$el.addClass('view-master-detail'); + if (!wasMasterDetail) { + view.emit('local::masterDetailBreakpoint viewMasterDetailBreakpoint', view); + view.$el.trigger('view:masterDetailBreakpoint'); + } + } else { + view.$el.removeClass('view-master-detail'); + if (wasMasterDetail) { + view.emit('local::masterDetailBreakpoint viewMasterDetailBreakpoint', view); + view.$el.trigger('view:masterDetailBreakpoint'); + } + } + }; + + View.prototype.initMasterDetail = function initMasterDetail () { + var view = this; + var app = view.app; + view.checkMasterDetailBreakpoint = view.checkMasterDetailBreakpoint.bind(view); + view.checkMasterDetailBreakpoint(); + if (view.params.masterDetailResizable) { + resizableView(view); + } + app.on('resize', view.checkMasterDetailBreakpoint); + }; + + View.prototype.init = function init () { + var view = this; + if (view.params.router) { + if (view.params.masterDetailBreakpoint > 0) { + view.initMasterDetail(); + } + view.router.init(); + view.$el.trigger('view:init'); + view.emit('local::init viewInit', view); + } + }; + + return View; + }(Framework7Class)); + + // Use Router + View.use(RouterModule); + + function initClicks(app) { + function handleClicks(e) { + var $clickedEl = $(e.target); + var $clickedLinkEl = $clickedEl.closest('a'); + var isLink = $clickedLinkEl.length > 0; + var url = isLink && $clickedLinkEl.attr('href'); + // const isTabLink = isLink && $clickedLinkEl.hasClass('tab-link') && ($clickedLinkEl.attr('data-tab') || (url && url.indexOf('#') === 0)); + + // Check if link is external + if (isLink) { + // eslint-disable-next-line + if ($clickedLinkEl.is(app.params.clicks.externalLinks) || (url && url.indexOf('javascript:') >= 0)) { + var target = $clickedLinkEl.attr('target'); + if ( + url + && win.cordova + && win.cordova.InAppBrowser + && (target === '_system' || target === '_blank') + ) { + e.preventDefault(); + win.cordova.InAppBrowser.open(url, target); + } + return; + } + } + + // Modules Clicks + Object.keys(app.modules).forEach(function (moduleName) { + var moduleClicks = app.modules[moduleName].clicks; + if (!moduleClicks) { return; } + if (e.preventF7Router) { return; } + Object.keys(moduleClicks).forEach(function (clickSelector) { + var matchingClickedElement = $clickedEl.closest(clickSelector).eq(0); + if (matchingClickedElement.length > 0) { + moduleClicks[clickSelector].call(app, matchingClickedElement, matchingClickedElement.dataset(), e); + } + }); + }); + + // Load Page + var clickedLinkData = {}; + if (isLink) { + e.preventDefault(); + clickedLinkData = $clickedLinkEl.dataset(); + } + + // Prevent Router + if (e.preventF7Router) { return; } + if ($clickedLinkEl.hasClass('prevent-router') || $clickedLinkEl.hasClass('router-prevent')) { return; } + + var validUrl = url && url.length > 0 && url[0] !== '#'; + if (validUrl || $clickedLinkEl.hasClass('back')) { + var view; + if (clickedLinkData.view && clickedLinkData.view === 'current') { + view = app.views.current; + } else if (clickedLinkData.view) { + view = $(clickedLinkData.view)[0].f7View; + } else { + view = $clickedEl.parents('.view')[0] && $clickedEl.parents('.view')[0].f7View; + if (!$clickedLinkEl.hasClass('back') && view && view.params.linksView) { + if (typeof view.params.linksView === 'string') { view = $(view.params.linksView)[0].f7View; } + else if (view.params.linksView instanceof View) { view = view.params.linksView; } + } + } + if (!view) { + if (app.views.main) { view = app.views.main; } + } + if (!view || !view.router) { return; } + if (clickedLinkData.context && typeof clickedLinkData.context === 'string') { + try { + clickedLinkData.context = JSON.parse(clickedLinkData.context); + } catch (err) { + // something wrong there + } + } + if ($clickedLinkEl[0].f7RouteProps) { + clickedLinkData.props = $clickedLinkEl[0].f7RouteProps; + } + if ($clickedLinkEl.hasClass('back')) { view.router.back(url, clickedLinkData); } + else { view.router.navigate(url, clickedLinkData); } + } + } + + app.on('click', handleClicks); + } + var ClicksModule = { + name: 'clicks', + params: { + clicks: { + // External Links + externalLinks: '.external', + }, + }, + on: { + init: function init() { + var app = this; + initClicks(app); + }, + }, + }; + + var HistoryModule = { + name: 'history', + static: { + history: History, + }, + on: { + init: function init() { + History.init(this); + }, + }, + }; + + var SW = { + registrations: [], + register: function register(path, scope) { + var app = this; + if (!('serviceWorker' in win.navigator) || !app.serviceWorker.container) { + return new Promise(function (resolve, reject) { + reject(new Error('Service worker is not supported')); + }); + } + return new Promise(function (resolve, reject) { + app.serviceWorker.container.register(path, (scope ? { scope: scope } : {})) + .then(function (reg) { + SW.registrations.push(reg); + app.emit('serviceWorkerRegisterSuccess', reg); + resolve(reg); + }).catch(function (error) { + app.emit('serviceWorkerRegisterError', error); + reject(error); + }); + }); + }, + unregister: function unregister(registration) { + var app = this; + if (!('serviceWorker' in win.navigator) || !app.serviceWorker.container) { + return new Promise(function (resolve, reject) { + reject(new Error('Service worker is not supported')); + }); + } + var registrations; + if (!registration) { registrations = SW.registrations; } + else if (Array.isArray(registration)) { registrations = registration; } + else { registrations = [registration]; } + return Promise.all(registrations.map(function (reg) { return new Promise(function (resolve, reject) { + reg.unregister() + .then(function () { + if (SW.registrations.indexOf(reg) >= 0) { + SW.registrations.splice(SW.registrations.indexOf(reg), 1); + } + app.emit('serviceWorkerUnregisterSuccess', reg); + resolve(); + }) + .catch(function (error) { + app.emit('serviceWorkerUnregisterError', reg, error); + reject(error); + }); + }); })); + }, + }; + + var ServiceWorkerModule = { + name: 'sw', + params: { + serviceWorker: { + path: undefined, + scope: undefined, + }, + }, + create: function create() { + var app = this; + Utils.extend(app, { + serviceWorker: { + container: ('serviceWorker' in win.navigator) ? win.navigator.serviceWorker : undefined, + registrations: SW.registrations, + register: SW.register.bind(app), + unregister: SW.unregister.bind(app), + }, + }); + }, + on: { + init: function init() { + if (!('serviceWorker' in win.navigator)) { return; } + var app = this; + if (!app.serviceWorker.container) { return; } + var paths = app.params.serviceWorker.path; + var scope = app.params.serviceWorker.scope; + if (!paths || (Array.isArray(paths) && !paths.length)) { return; } + var toRegister = Array.isArray(paths) ? paths : [paths]; + toRegister.forEach(function (path) { + app.serviceWorker.register(path, scope); + }); + }, + }, + }; + + var Statusbar = { + hide: function hide() { + if (Device.cordova && win.StatusBar) { + win.StatusBar.hide(); + } + }, + show: function show() { + if (Device.cordova && win.StatusBar) { + win.StatusBar.show(); + } + }, + onClick: function onClick() { + var app = this; + var pageContent; + if ($('.popup.modal-in').length > 0) { + // Check for opened popup + pageContent = $('.popup.modal-in').find('.page:not(.page-previous):not(.page-next):not(.cached)').find('.page-content'); + } else if ($('.panel.panel-in').length > 0) { + // Check for opened panel + pageContent = $('.panel.panel-in').find('.page:not(.page-previous):not(.page-next):not(.cached)').find('.page-content'); + } else if ($('.views > .view.tab-active').length > 0) { + // View in tab bar app layout + pageContent = $('.views > .view.tab-active').find('.page:not(.page-previous):not(.page-next):not(.cached)').find('.page-content'); + } else if ($('.views').length > 0) { + pageContent = $('.views').find('.page:not(.page-previous):not(.page-next):not(.cached)').find('.page-content'); + } else { + pageContent = app.root.children('.view').find('.page:not(.page-previous):not(.page-next):not(.cached)').find('.page-content'); + } + + if (pageContent && pageContent.length > 0) { + // Check for tab + if (pageContent.hasClass('tab')) { + pageContent = pageContent.parent('.tabs').children('.page-content.tab-active'); + } + if (pageContent.length > 0) { pageContent.scrollTop(0, 300); } + } + }, + setTextColor: function setTextColor(color) { + if (Device.cordova && win.StatusBar) { + if (color === 'white') { + win.StatusBar.styleLightContent(); + } else { + win.StatusBar.styleDefault(); + } + } + }, + setBackgroundColor: function setBackgroundColor(color) { + if (Device.cordova && win.StatusBar) { + win.StatusBar.backgroundColorByHexString(color); + } + }, + isVisible: function isVisible() { + if (Device.cordova && win.StatusBar) { + return win.StatusBar.isVisible; + } + return false; + }, + overlaysWebView: function overlaysWebView(overlays) { + if ( overlays === void 0 ) overlays = true; + + if (Device.cordova && win.StatusBar) { + win.StatusBar.overlaysWebView(overlays); + } + }, + init: function init() { + var app = this; + var params = app.params.statusbar; + if (!params.enabled) { return; } + + if (Device.cordova && win.StatusBar) { + if (params.scrollTopOnClick) { + $(win).on('statusTap', Statusbar.onClick.bind(app)); + } + if (Device.ios) { + if (params.iosOverlaysWebView) { + win.StatusBar.overlaysWebView(true); + } else { + win.StatusBar.overlaysWebView(false); + } + if (params.iosTextColor === 'white') { + win.StatusBar.styleLightContent(); + } else { + win.StatusBar.styleDefault(); + } + } + if (Device.android) { + if (params.androidOverlaysWebView) { + win.StatusBar.overlaysWebView(true); + } else { + win.StatusBar.overlaysWebView(false); + } + if (params.androidTextColor === 'white') { + win.StatusBar.styleLightContent(); + } else { + win.StatusBar.styleDefault(); + } + } + } + if (params.iosBackgroundColor && Device.ios) { + Statusbar.setBackgroundColor(params.iosBackgroundColor); + } + if (params.androidBackgroundColor && Device.android) { + Statusbar.setBackgroundColor(params.androidBackgroundColor); + } + }, + }; + + var Statusbar$1 = { + name: 'statusbar', + params: { + statusbar: { + enabled: true, + + scrollTopOnClick: true, + + iosOverlaysWebView: true, + iosTextColor: 'black', + iosBackgroundColor: null, + + androidOverlaysWebView: false, + androidTextColor: 'black', + androidBackgroundColor: null, + }, + }, + create: function create() { + var app = this; + Utils.extend(app, { + statusbar: { + hide: Statusbar.hide, + show: Statusbar.show, + overlaysWebView: Statusbar.overlaysWebView, + setTextColor: Statusbar.setTextColor, + setBackgroundColor: Statusbar.setBackgroundColor, + isVisible: Statusbar.isVisible, + init: Statusbar.init.bind(app), + }, + }); + }, + on: { + init: function init() { + var app = this; + Statusbar.init.call(app); + }, + }, + }; + + function getCurrentView(app) { + var $popoverView = $('.popover.modal-in .view'); + var $popupView = $('.popup.modal-in .view'); + var $panelView = $('.panel.panel-in .view'); + var $viewsEl = $('.views'); + if ($viewsEl.length === 0) { $viewsEl = app.root; } + // Find active view as tab + var $viewEl = $viewsEl.children('.view'); + if ($viewEl.length === 0) { + $viewEl = $viewsEl.children('.tabs').children('.view'); + } + // Propably in tabs or split view + if ($viewEl.length > 1) { + if ($viewEl.hasClass('tab')) { + // Tabs + $viewEl = $viewsEl.children('.view.tab-active'); + if ($viewEl.length === 0) { + $viewEl = $viewsEl.children('.tabs').children('.view.tab-active'); + } + } + } + if ($popoverView.length > 0 && $popoverView[0].f7View) { return $popoverView[0].f7View; } + if ($popupView.length > 0 && $popupView[0].f7View) { return $popupView[0].f7View; } + if ($panelView.length > 0 && $panelView[0].f7View) { return $panelView[0].f7View; } + if ($viewEl.length > 0) { + if ($viewEl.length === 1 && $viewEl[0].f7View) { return $viewEl[0].f7View; } + if ($viewEl.length > 1) { + return app.views.main; + } + } + return undefined; + } + + var View$1 = { + name: 'view', + params: { + view: { + name: undefined, + main: false, + router: true, + linksView: null, + stackPages: false, + xhrCache: true, + xhrCacheIgnore: [], + xhrCacheIgnoreGetParameters: false, + xhrCacheDuration: 1000 * 60 * 10, // Ten minutes + componentCache: true, + preloadPreviousPage: true, + allowDuplicateUrls: false, + reloadPages: false, + reloadDetail: false, + masterDetailBreakpoint: 0, + masterDetailResizable: false, + removeElements: true, + removeElementsWithTimeout: false, + removeElementsTimeout: 0, + restoreScrollTopOnBack: true, + unloadTabContent: true, + passRouteQueryToRequest: true, + passRouteParamsToRequest: false, + loadInitialPage: true, + // Swipe Back + iosSwipeBack: true, + iosSwipeBackAnimateShadow: true, + iosSwipeBackAnimateOpacity: true, + iosSwipeBackActiveArea: 30, + iosSwipeBackThreshold: 0, + mdSwipeBack: false, + mdSwipeBackAnimateShadow: true, + mdSwipeBackAnimateOpacity: false, + mdSwipeBackActiveArea: 30, + mdSwipeBackThreshold: 0, + auroraSwipeBack: false, + auroraSwipeBackAnimateShadow: false, + auroraSwipeBackAnimateOpacity: true, + auroraSwipeBackActiveArea: 30, + auroraSwipeBackThreshold: 0, + // Push State + pushState: false, + pushStateRoot: undefined, + pushStateAnimate: true, + pushStateAnimateOnLoad: false, + pushStateSeparator: '#!', + pushStateOnLoad: true, + // Animate Pages + animate: true, + // iOS Dynamic Navbar + iosDynamicNavbar: true, + // Animate iOS Navbar Back Icon + iosAnimateNavbarBackIcon: true, + // Delays + iosPageLoadDelay: 0, + mdPageLoadDelay: 0, + auroraPageLoadDelay: 0, + // Routes hooks + routesBeforeEnter: null, + routesBeforeLeave: null, + }, + }, + static: { + View: View, + }, + create: function create() { + var app = this; + Utils.extend(app, { + views: Utils.extend([], { + create: function create(el, params) { + return new View(app, el, params); + }, + get: function get(viewEl) { + var $viewEl = $(viewEl); + if ($viewEl.length && $viewEl[0].f7View) { return $viewEl[0].f7View; } + return undefined; + }, + }), + }); + Object.defineProperty(app.views, 'current', { + enumerable: true, + configurable: true, + get: function get() { + return getCurrentView(app); + }, + }); + // Alias + app.view = app.views; + }, + on: { + init: function init() { + var app = this; + $('.view-init').each(function (index, viewEl) { + if (viewEl.f7View) { return; } + var viewParams = $(viewEl).dataset(); + app.views.create(viewEl, viewParams); + }); + }, + 'modalOpen panelOpen': function onOpen(instance) { + var app = this; + instance.$el.find('.view-init').each(function (index, viewEl) { + if (viewEl.f7View) { return; } + var viewParams = $(viewEl).dataset(); + app.views.create(viewEl, viewParams); + }); + }, + 'modalBeforeDestroy panelBeforeDestroy': function onClose(instance) { + if (!instance || !instance.$el) { return; } + instance.$el.find('.view-init').each(function (index, viewEl) { + var view = viewEl.f7View; + if (!view) { return; } + view.destroy(); + }); + }, + }, + vnode: { + 'view-init': { + insert: function insert(vnode) { + var app = this; + var viewEl = vnode.elm; + if (viewEl.f7View) { return; } + var viewParams = $(viewEl).dataset(); + app.views.create(viewEl, viewParams); + }, + destroy: function destroy(vnode) { + var viewEl = vnode.elm; + var view = viewEl.f7View; + if (!view) { return; } + view.destroy(); + }, + }, + }, + }; + + var Navbar = { + size: function size(el) { + var app = this; + + var $el = $(el); + + if ($el.hasClass('navbars')) { + $el = $el.children('.navbar').each(function (index, navbarEl) { + app.navbar.size(navbarEl); + }); + return; + } + + var $innerEl = $el.children('.navbar-inner'); + if (!$innerEl.length) { return; } + + var needCenterTitle = ( + $innerEl.hasClass('navbar-inner-centered-title') + || app.params.navbar[((app.theme) + "CenterTitle")] + ); + var needLeftTitle = app.theme === 'ios' && !app.params.navbar[((app.theme) + "CenterTitle")]; + + if (!needCenterTitle && !needLeftTitle) { return; } + + if ( + $el.hasClass('stacked') + || $el.parents('.stacked').length > 0 + || $el.parents('.tab:not(.tab-active)').length > 0 + || $el.parents('.popup:not(.modal-in)').length > 0 + ) { + return; + } + + if (app.theme !== 'ios' && app.params.navbar[((app.theme) + "CenterTitle")]) { + $innerEl.addClass('navbar-inner-centered-title'); + } + if (app.theme === 'ios' && !app.params.navbar.iosCenterTitle) { + $innerEl.addClass('navbar-inner-left-title'); + } + + var $viewEl = $el.parents('.view').eq(0); + var left = app.rtl ? $innerEl.children('.right') : $innerEl.children('.left'); + var right = app.rtl ? $innerEl.children('.left') : $innerEl.children('.right'); + var title = $innerEl.children('.title'); + var subnavbar = $innerEl.children('.subnavbar'); + var noLeft = left.length === 0; + var noRight = right.length === 0; + var leftWidth = noLeft ? 0 : left.outerWidth(true); + var rightWidth = noRight ? 0 : right.outerWidth(true); + var titleWidth = title.outerWidth(true); + var navbarStyles = $innerEl.styles(); + var navbarWidth = $innerEl[0].offsetWidth; + var navbarInnerWidth = navbarWidth - parseInt(navbarStyles.paddingLeft, 10) - parseInt(navbarStyles.paddingRight, 10); + var isPrevious = $el.hasClass('navbar-previous'); + var sliding = $innerEl.hasClass('sliding'); + + var router; + var dynamicNavbar; + + if ($viewEl.length > 0 && $viewEl[0].f7View) { + router = $viewEl[0].f7View.router; + dynamicNavbar = router && router.dynamicNavbar; + } + + var currLeft; + var diff; + if (noRight) { + currLeft = navbarInnerWidth - titleWidth; + } + if (noLeft) { + currLeft = 0; + } + if (!noLeft && !noRight) { + currLeft = ((navbarInnerWidth - rightWidth - titleWidth) + leftWidth) / 2; + } + var requiredLeft = (navbarInnerWidth - titleWidth) / 2; + if (navbarInnerWidth - leftWidth - rightWidth > titleWidth) { + if (requiredLeft < leftWidth) { + requiredLeft = leftWidth; + } + if (requiredLeft + titleWidth > navbarInnerWidth - rightWidth) { + requiredLeft = navbarInnerWidth - rightWidth - titleWidth; + } + diff = requiredLeft - currLeft; + } else { + diff = 0; + } + + // RTL inverter + var inverter = app.rtl ? -1 : 1; + + if (dynamicNavbar && app.theme === 'ios') { + if (title.hasClass('sliding') || (title.length > 0 && sliding)) { + var titleLeftOffset = -(currLeft + diff) * inverter; + var titleRightOffset = (navbarInnerWidth - currLeft - diff - titleWidth) * inverter; + + if (isPrevious) { + if (router && router.params.iosAnimateNavbarBackIcon) { + var activeNavbarBackLink = $el.parent().find('.navbar-current').children('.left.sliding').find('.back .icon ~ span'); + if (activeNavbarBackLink.length > 0) { + titleLeftOffset += activeNavbarBackLink[0].offsetLeft; + } + } + } + title[0].f7NavbarLeftOffset = titleLeftOffset; + title[0].f7NavbarRightOffset = titleRightOffset; + } + if (!noLeft && (left.hasClass('sliding') || sliding)) { + if (app.rtl) { + left[0].f7NavbarLeftOffset = (-(navbarInnerWidth - left[0].offsetWidth) / 2) * inverter; + left[0].f7NavbarRightOffset = leftWidth * inverter; + } else { + left[0].f7NavbarLeftOffset = -leftWidth; + left[0].f7NavbarRightOffset = ((navbarInnerWidth - left[0].offsetWidth) / 2); + if (router && router.params.iosAnimateNavbarBackIcon && left.find('.back .icon').length > 0) { + if (left.find('.back .icon ~ span').length) { + var leftOffset = left[0].f7NavbarLeftOffset; + var rightOffset = left[0].f7NavbarRightOffset; + left[0].f7NavbarLeftOffset = 0; + left[0].f7NavbarRightOffset = 0; + left.find('.back .icon ~ span')[0].f7NavbarLeftOffset = leftOffset; + left.find('.back .icon ~ span')[0].f7NavbarRightOffset = rightOffset - left.find('.back .icon')[0].offsetWidth; + } + } + } + } + if (!noRight && (right.hasClass('sliding') || sliding)) { + if (app.rtl) { + right[0].f7NavbarLeftOffset = -rightWidth * inverter; + right[0].f7NavbarRightOffset = ((navbarInnerWidth - right[0].offsetWidth) / 2) * inverter; + } else { + right[0].f7NavbarLeftOffset = -(navbarInnerWidth - right[0].offsetWidth) / 2; + right[0].f7NavbarRightOffset = rightWidth; + } + } + if (subnavbar.length && (subnavbar.hasClass('sliding') || sliding)) { + subnavbar[0].f7NavbarLeftOffset = app.rtl ? subnavbar[0].offsetWidth : -subnavbar[0].offsetWidth; + subnavbar[0].f7NavbarRightOffset = -subnavbar[0].f7NavbarLeftOffset; + } + } + + // Center title + if (needCenterTitle) { + var titleLeft = diff; + if (app.rtl && noLeft && noRight && title.length > 0) { titleLeft = -titleLeft; } + title.css({ left: (titleLeft + "px") }); + } + }, + hide: function hide(el, animate, hideStatusbar) { + if ( animate === void 0 ) animate = true; + if ( hideStatusbar === void 0 ) hideStatusbar = false; + + var app = this; + var $el = $(el); + var isDynamic = $el.hasClass('navbar') && $el.parent('.navbars').length; + if (isDynamic) { $el = $el.parents('.navbars'); } + if (!$el.length) { return; } + if ($el.hasClass('navbar-hidden')) { return; } + var className = "navbar-hidden" + (animate ? ' navbar-transitioning' : ''); + var currentIsLarge = isDynamic + ? $el.find('.navbar-current .title-large').length + : $el.find('.title-large').length; + if (currentIsLarge) { + className += ' navbar-large-hidden'; + } + if (hideStatusbar) { + className += ' navbar-hidden-statusbar'; + } + $el.transitionEnd(function () { + $el.removeClass('navbar-transitioning'); + }); + $el.addClass(className); + if (isDynamic) { + $el.children('.navbar').each(function (index, subEl) { + $(subEl).trigger('navbar:hide'); + app.emit('navbarHide', subEl); + }); + } else { + $el.trigger('navbar:hide'); + app.emit('navbarHide', $el[0]); + } + }, + show: function show(el, animate) { + if ( el === void 0 ) el = '.navbar-hidden'; + if ( animate === void 0 ) animate = true; + + var app = this; + var $el = $(el); + var isDynamic = $el.hasClass('navbar') && $el.parent('.navbars').length; + if (isDynamic) { $el = $el.parents('.navbars'); } + if (!$el.length) { return; } + if (!$el.hasClass('navbar-hidden')) { return; } + if (animate) { + $el.addClass('navbar-transitioning'); + $el.transitionEnd(function () { + $el.removeClass('navbar-transitioning'); + }); + } + $el.removeClass('navbar-hidden navbar-large-hidden navbar-hidden-statusbar'); + if (isDynamic) { + $el.children('.navbar').each(function (index, subEl) { + $(subEl).trigger('navbar:show'); + app.emit('navbarShow', subEl); + }); + } else { + $el.trigger('navbar:show'); + app.emit('navbarShow', $el[0]); + } + }, + getElByPage: function getElByPage(page) { + var $pageEl; + var $navbarEl; + var pageData; + if (page.$navbarEl || page.$el) { + pageData = page; + $pageEl = page.$el; + } else { + $pageEl = $(page); + if ($pageEl.length > 0) { pageData = $pageEl[0].f7Page; } + } + if (pageData && pageData.$navbarEl && pageData.$navbarEl.length > 0) { + $navbarEl = pageData.$navbarEl; + } else if ($pageEl) { + $navbarEl = $pageEl.children('.navbar'); + } + if (!$navbarEl || ($navbarEl && $navbarEl.length === 0)) { return undefined; } + return $navbarEl[0]; + }, + getPageByEl: function getPageByEl(navbarEl) { + var $navbarEl = $(navbarEl); + if ($navbarEl.parents('.page').length) { + return $navbarEl.parents('.page')[0]; + } + var pageEl; + $navbarEl.parents('.view').find('.page').each(function (index, el) { + if (el && el.f7Page && el.f7Page.navbarEl && $navbarEl[0] === el.f7Page.navbarEl) { + pageEl = el; + } + }); + return pageEl; + }, + + collapseLargeTitle: function collapseLargeTitle(navbarEl) { + var app = this; + var $navbarEl = $(navbarEl); + if ($navbarEl.hasClass('navbars')) { + $navbarEl = $navbarEl.find('.navbar'); + if ($navbarEl.length > 1) { + $navbarEl = $(navbarEl).find('.navbar-large.navbar-current'); + } + if ($navbarEl.length > 1 || !$navbarEl.length) { + return; + } + } + var $pageEl = $(app.navbar.getPageByEl($navbarEl)); + $navbarEl.addClass('navbar-large-collapsed'); + $pageEl.eq(0).addClass('page-with-navbar-large-collapsed').trigger('page:navbarlargecollapsed'); + app.emit('pageNavbarLargeCollapsed', $pageEl[0]); + $navbarEl.trigger('navbar:collapse'); + app.emit('navbarCollapse', $navbarEl[0]); + }, + expandLargeTitle: function expandLargeTitle(navbarEl) { + var app = this; + var $navbarEl = $(navbarEl); + if ($navbarEl.hasClass('navbars')) { + $navbarEl = $navbarEl.find('.navbar-large'); + if ($navbarEl.length > 1) { + $navbarEl = $(navbarEl).find('.navbar-large.navbar-current'); + } + if ($navbarEl.length > 1 || !$navbarEl.length) { + return; + } + } + var $pageEl = $(app.navbar.getPageByEl($navbarEl)); + $navbarEl.removeClass('navbar-large-collapsed'); + $pageEl.eq(0).removeClass('page-with-navbar-large-collapsed').trigger('page:navbarlargeexpanded'); + app.emit('pageNavbarLargeExpanded', $pageEl[0]); + $navbarEl.trigger('navbar:expand'); + app.emit('navbarExpand', $navbarEl[0]); + }, + toggleLargeTitle: function toggleLargeTitle(navbarEl) { + var app = this; + var $navbarEl = $(navbarEl); + if ($navbarEl.hasClass('navbars')) { + $navbarEl = $navbarEl.find('.navbar-large'); + if ($navbarEl.length > 1) { + $navbarEl = $(navbarEl).find('.navbar-large.navbar-current'); + } + if ($navbarEl.length > 1 || !$navbarEl.length) { + return; + } + } + if ($navbarEl.hasClass('navbar-large-collapsed')) { + app.navbar.expandLargeTitle($navbarEl); + } else { + app.navbar.collapseLargeTitle($navbarEl); + } + }, + initNavbarOnScroll: function initNavbarOnScroll(pageEl, navbarEl, needHide, needCollapse, needTransparent) { + var app = this; + var $pageEl = $(pageEl); + var $navbarEl = $(navbarEl); + var $titleLargeEl = $navbarEl.find('.title-large'); + var isLarge = $titleLargeEl.length || $navbarEl.hasClass('.navbar-large'); + var navbarHideHeight = 44; + var snapPageScrollToLargeTitle = app.params.navbar.snapPageScrollToLargeTitle; + var snapPageScrollToTransparentNavbar = app.params.navbar.snapPageScrollToTransparentNavbar; + + var previousScrollTop; + var currentScrollTop; + + var scrollHeight; + var offsetHeight; + var reachEnd; + var action; + var navbarHidden; + + var navbarCollapsed; + var navbarTitleLargeHeight; + + var navbarOffsetHeight; + + if (needCollapse || (needHide && isLarge)) { + navbarTitleLargeHeight = $navbarEl.css('--f7-navbar-large-title-height'); + + if (navbarTitleLargeHeight && navbarTitleLargeHeight.indexOf('px') >= 0) { + navbarTitleLargeHeight = parseInt(navbarTitleLargeHeight, 10); + if (Number.isNaN(navbarTitleLargeHeight) && $titleLargeEl.length) { + navbarTitleLargeHeight = $titleLargeEl[0].offsetHeight; + } else if (Number.isNaN(navbarTitleLargeHeight)) { + if (app.theme === 'ios') { navbarTitleLargeHeight = 52; } + else if (app.theme === 'md') { navbarTitleLargeHeight = 48; } + else if (app.theme === 'aurora') { navbarTitleLargeHeight = 38; } + } + } else if ($titleLargeEl.length) { + navbarTitleLargeHeight = $titleLargeEl[0].offsetHeight; + } else { // eslint-disable-next-line + if (app.theme === 'ios') { navbarTitleLargeHeight = 52; } + else if (app.theme === 'md') { navbarTitleLargeHeight = 48; } + else if (app.theme === 'aurora') { navbarTitleLargeHeight = 38; } + } + } + + if (needHide && isLarge) { + navbarHideHeight += navbarTitleLargeHeight; + } + + var scrollChanged; + var scrollContent; + var scrollTimeoutId; + var touchEndTimeoutId; + var touchSnapTimeout = 70; + var desktopSnapTimeout = 300; + + function snapLargeNavbar() { + var inSearchbarExpanded = $navbarEl.hasClass('with-searchbar-expandable-enabled'); + if (inSearchbarExpanded) { return; } + if (!scrollContent || currentScrollTop < 0) { return; } + if (currentScrollTop >= navbarTitleLargeHeight / 2 && currentScrollTop < navbarTitleLargeHeight) { + $(scrollContent).scrollTop(navbarTitleLargeHeight, 100); + } else if (currentScrollTop < navbarTitleLargeHeight) { + $(scrollContent).scrollTop(0, 200); + } + } + + function snapTransparentNavbar() { + var inSearchbarExpanded = $navbarEl.hasClass('with-searchbar-expandable-enabled'); + if (inSearchbarExpanded) { return; } + if (!scrollContent || currentScrollTop < 0) { return; } + if (currentScrollTop >= navbarOffsetHeight / 2 && currentScrollTop < navbarOffsetHeight) { + $(scrollContent).scrollTop(navbarOffsetHeight, 100); + } else if (currentScrollTop < navbarOffsetHeight) { + $(scrollContent).scrollTop(0, 200); + } + } + + function handleNavbarTransparent() { + var isHidden = $navbarEl.hasClass('navbar-hidden') || $navbarEl.parent('.navbars').hasClass('navbar-hidden'); + var inSearchbarExpanded = $navbarEl.hasClass('with-searchbar-expandable-enabled'); + if (inSearchbarExpanded || isHidden) { return; } + if (!navbarOffsetHeight) { + navbarOffsetHeight = navbarEl.offsetHeight; + } + var opacity = currentScrollTop / navbarOffsetHeight; + var notTransparent = $navbarEl.hasClass('navbar-transparent-visible'); + opacity = Math.max(Math.min(opacity, 1), 0); + + if ((notTransparent && opacity === 1) || (!notTransparent && opacity === 0)) { + $navbarEl.find('.navbar-bg, .title').css('opacity', ''); + return; + } + if (notTransparent && opacity === 0) { + $navbarEl.trigger('navbar:transparenthide'); + app.emit('navbarTransparentHide', $navbarEl[0]); + $navbarEl.removeClass('navbar-transparent-visible'); + $navbarEl.find('.navbar-bg, .title').css('opacity', ''); + return; + } + if (!notTransparent && opacity === 1) { + $navbarEl.trigger('navbar:transparentshow'); + app.emit('navbarTransparentShow', $navbarEl[0]); + $navbarEl.addClass('navbar-transparent-visible'); + $navbarEl.find('.navbar-bg, .title').css('opacity', ''); + return; + } + + $navbarEl.find('.navbar-bg, .title').css('opacity', opacity); + + if (snapPageScrollToTransparentNavbar) { + if (!Support.touch) { + clearTimeout(scrollTimeoutId); + scrollTimeoutId = setTimeout(function () { + snapTransparentNavbar(); + }, desktopSnapTimeout); + } else if (touchEndTimeoutId) { + clearTimeout(touchEndTimeoutId); + touchEndTimeoutId = null; + touchEndTimeoutId = setTimeout(function () { + snapTransparentNavbar(); + clearTimeout(touchEndTimeoutId); + touchEndTimeoutId = null; + }, touchSnapTimeout); + } + } + } + + var previousCollapseProgress = null; + var collapseProgress = null; + function handleLargeNavbarCollapse() { + var isHidden = $navbarEl.hasClass('navbar-hidden') || $navbarEl.parent('.navbars').hasClass('navbar-hidden'); + if (isHidden) { return; } + var isLargeTransparent = $navbarEl.hasClass('navbar-large-transparent') + || ( + $navbarEl.hasClass('navbar-large') + && $navbarEl.hasClass('navbar-transparent') + ); + previousCollapseProgress = collapseProgress; + collapseProgress = Math.min(Math.max((currentScrollTop / navbarTitleLargeHeight), 0), 1); + var previousCollapseWasInMiddle = previousCollapseProgress > 0 && previousCollapseProgress < 1; + var inSearchbarExpanded = $navbarEl.hasClass('with-searchbar-expandable-enabled'); + if (inSearchbarExpanded) { return; } + navbarCollapsed = $navbarEl.hasClass('navbar-large-collapsed'); + if (collapseProgress === 0 && navbarCollapsed) { + app.navbar.expandLargeTitle($navbarEl[0]); + } else if (collapseProgress === 1 && !navbarCollapsed) { + app.navbar.collapseLargeTitle($navbarEl[0]); + } + if ( + (collapseProgress === 0 && navbarCollapsed) + || (collapseProgress === 0 && previousCollapseWasInMiddle) + || (collapseProgress === 1 && !navbarCollapsed) + || (collapseProgress === 1 && previousCollapseWasInMiddle) + ) { + if (app.theme === 'md') { + $navbarEl.find('.navbar-inner').css('overflow', ''); + } + $navbarEl.find('.title').css('opacity', ''); + $navbarEl.find('.title-large-text, .subnavbar').css('transform', ''); + if (isLargeTransparent) { + $navbarEl.find('.navbar-bg').css('opacity', ''); + } else { + $navbarEl.find('.navbar-bg').css('transform', ''); + } + } else if (collapseProgress > 0 && collapseProgress < 1) { + if (app.theme === 'md') { + $navbarEl.find('.navbar-inner').css('overflow', 'visible'); + } + $navbarEl.find('.title').css('opacity', collapseProgress); + $navbarEl.find('.title-large-text, .subnavbar').css('transform', ("translate3d(0px, " + (-1 * collapseProgress * navbarTitleLargeHeight) + "px, 0)")); + if (isLargeTransparent) { + $navbarEl.find('.navbar-bg').css('opacity', collapseProgress); + } else { + $navbarEl.find('.navbar-bg').css('transform', ("translate3d(0px, " + (-1 * collapseProgress * navbarTitleLargeHeight) + "px, 0)")); + } + } + + if (snapPageScrollToLargeTitle) { + if (!Support.touch) { + clearTimeout(scrollTimeoutId); + scrollTimeoutId = setTimeout(function () { + snapLargeNavbar(); + }, desktopSnapTimeout); + } else if (touchEndTimeoutId) { + clearTimeout(touchEndTimeoutId); + touchEndTimeoutId = null; + touchEndTimeoutId = setTimeout(function () { + snapLargeNavbar(); + clearTimeout(touchEndTimeoutId); + touchEndTimeoutId = null; + }, touchSnapTimeout); + } + } + } + + function handleTitleHideShow() { + if ($pageEl.hasClass('page-with-card-opened')) { return; } + scrollHeight = scrollContent.scrollHeight; + offsetHeight = scrollContent.offsetHeight; + reachEnd = currentScrollTop + offsetHeight >= scrollHeight; + navbarHidden = $navbarEl.hasClass('navbar-hidden') || $navbarEl.parent('.navbars').hasClass('navbar-hidden'); + if (reachEnd) { + if (app.params.navbar.showOnPageScrollEnd) { + action = 'show'; + } + } else if (previousScrollTop > currentScrollTop) { + if (app.params.navbar.showOnPageScrollTop || currentScrollTop <= navbarHideHeight) { + action = 'show'; + } else { + action = 'hide'; + } + } else if (currentScrollTop > navbarHideHeight) { + action = 'hide'; + } else { + action = 'show'; + } + + if (action === 'show' && navbarHidden) { + app.navbar.show($navbarEl); + navbarHidden = false; + } else if (action === 'hide' && !navbarHidden) { + app.navbar.hide($navbarEl); + navbarHidden = true; + } + previousScrollTop = currentScrollTop; + } + + function handleScroll(e) { + scrollContent = this; + if (e && e.target && e.target !== scrollContent) { + return; + } + currentScrollTop = scrollContent.scrollTop; + scrollChanged = currentScrollTop; + if (needCollapse) { + handleLargeNavbarCollapse(); + } else if (needTransparent) { + handleNavbarTransparent(); + } + if ($pageEl.hasClass('page-previous')) { return; } + if (needHide) { + handleTitleHideShow(); + } + } + function handeTouchStart() { + scrollChanged = false; + } + function handleTouchEnd() { + clearTimeout(touchEndTimeoutId); + touchEndTimeoutId = null; + touchEndTimeoutId = setTimeout(function () { + if (scrollChanged !== false) { + if (needTransparent && !needCollapse) { + snapTransparentNavbar(); + } else { + snapLargeNavbar(); + } + clearTimeout(touchEndTimeoutId); + touchEndTimeoutId = null; + } + }, touchSnapTimeout); + } + $pageEl.on('scroll', '.page-content', handleScroll, true); + if (Support.touch && ((needCollapse && snapPageScrollToLargeTitle) || (needTransparent && snapPageScrollToTransparentNavbar))) { + app.on('touchstart:passive', handeTouchStart); + app.on('touchend:passive', handleTouchEnd); + } + if (needCollapse) { + $pageEl.find('.page-content').each(function (pageContentIndex, pageContentEl) { + if (pageContentEl.scrollTop > 0) { handleScroll.call(pageContentEl); } + }); + } else if (needTransparent) { + $pageEl.find('.page-content').each(function (pageContentIndex, pageContentEl) { + if (pageContentEl.scrollTop > 0) { handleScroll.call(pageContentEl); } + }); + } + $pageEl[0].f7DetachNavbarScrollHandlers = function f7DetachNavbarScrollHandlers() { + delete $pageEl[0].f7DetachNavbarScrollHandlers; + $pageEl.off('scroll', '.page-content', handleScroll, true); + if (Support.touch && ((needCollapse && snapPageScrollToLargeTitle) || (needTransparent && snapPageScrollToTransparentNavbar))) { + app.off('touchstart:passive', handeTouchStart); + app.off('touchend:passive', handleTouchEnd); + } + }; + }, + }; + var Navbar$1 = { + name: 'navbar', + create: function create() { + var app = this; + Utils.extend(app, { + navbar: { + size: Navbar.size.bind(app), + hide: Navbar.hide.bind(app), + show: Navbar.show.bind(app), + getElByPage: Navbar.getElByPage.bind(app), + getPageByEl: Navbar.getPageByEl.bind(app), + collapseLargeTitle: Navbar.collapseLargeTitle.bind(app), + expandLargeTitle: Navbar.expandLargeTitle.bind(app), + toggleLargeTitle: Navbar.toggleLargeTitle.bind(app), + initNavbarOnScroll: Navbar.initNavbarOnScroll.bind(app), + }, + }); + }, + params: { + navbar: { + scrollTopOnTitleClick: true, + iosCenterTitle: true, + mdCenterTitle: false, + auroraCenterTitle: true, + hideOnPageScroll: false, + showOnPageScrollEnd: true, + showOnPageScrollTop: true, + collapseLargeTitleOnScroll: true, + snapPageScrollToLargeTitle: true, + snapPageScrollToTransparentNavbar: true, + }, + }, + on: { + 'panelBreakpoint panelCollapsedBreakpoint panelResize viewResize resize viewMasterDetailBreakpoint': function onPanelResize() { + var app = this; + $('.navbar').each(function (index, navbarEl) { + app.navbar.size(navbarEl); + }); + }, + pageBeforeRemove: function pageBeforeRemove(page) { + if (page.$el[0].f7DetachNavbarScrollHandlers) { + page.$el[0].f7DetachNavbarScrollHandlers(); + } + }, + pageBeforeIn: function pageBeforeIn(page) { + var app = this; + if (app.theme !== 'ios') { return; } + var $navbarsEl; + var view = page.$el.parents('.view')[0].f7View; + var navbarEl = app.navbar.getElByPage(page); + if (!navbarEl) { + $navbarsEl = page.$el.parents('.view').children('.navbars'); + } else { + $navbarsEl = $(navbarEl).parents('.navbars'); + } + if (page.$el.hasClass('no-navbar') || (view.router.dynamicNavbar && !navbarEl)) { + var animate = !!(page.pageFrom && page.router.history.length > 0); + app.navbar.hide($navbarsEl, animate); + } else { + app.navbar.show($navbarsEl); + } + }, + pageReinit: function pageReinit(page) { + var app = this; + var $navbarEl = $(app.navbar.getElByPage(page)); + if (!$navbarEl || $navbarEl.length === 0) { return; } + app.navbar.size($navbarEl); + }, + pageInit: function pageInit(page) { + var app = this; + var $navbarEl = $(app.navbar.getElByPage(page)); + if (!$navbarEl || $navbarEl.length === 0) { return; } + + // Size + app.navbar.size($navbarEl); + + // Need Collapse On Scroll + var needCollapseOnScrollHandler; + if ($navbarEl.find('.title-large').length > 0) { + $navbarEl.addClass('navbar-large'); + } + if ($navbarEl.hasClass('navbar-large')) { + if (app.params.navbar.collapseLargeTitleOnScroll) { needCollapseOnScrollHandler = true; } + page.$el.addClass('page-with-navbar-large'); + } + + // Need transparent on scroll + var needTransparentOnScroll; + if (!needCollapseOnScrollHandler && $navbarEl.hasClass('navbar-transparent')) { + needTransparentOnScroll = true; + } + + // Need Hide On Scroll + var needHideOnScrollHandler; + if ( + app.params.navbar.hideOnPageScroll + || page.$el.find('.hide-navbar-on-scroll').length + || page.$el.hasClass('hide-navbar-on-scroll') + || page.$el.find('.hide-bars-on-scroll').length + || page.$el.hasClass('hide-bars-on-scroll') + ) { + if ( + page.$el.find('.keep-navbar-on-scroll').length + || page.$el.hasClass('keep-navbar-on-scroll') + || page.$el.find('.keep-bars-on-scroll').length + || page.$el.hasClass('keep-bars-on-scroll') + ) { + needHideOnScrollHandler = false; + } else { + needHideOnScrollHandler = true; + } + } + + if (needCollapseOnScrollHandler || needHideOnScrollHandler || needTransparentOnScroll) { + app.navbar.initNavbarOnScroll(page.el, $navbarEl[0], needHideOnScrollHandler, needCollapseOnScrollHandler, needTransparentOnScroll); + } + }, + 'panelOpen panelSwipeOpen modalOpen': function onPanelModalOpen(instance) { + var app = this; + instance.$el.find('.navbar:not(.navbar-previous):not(.stacked)').each(function (index, navbarEl) { + app.navbar.size(navbarEl); + }); + }, + tabShow: function tabShow(tabEl) { + var app = this; + $(tabEl).find('.navbar:not(.navbar-previous):not(.stacked)').each(function (index, navbarEl) { + app.navbar.size(navbarEl); + }); + }, + }, + clicks: { + '.navbar .title': function onTitleClick($clickedEl) { + var app = this; + if (!app.params.navbar.scrollTopOnTitleClick) { return; } + if ($clickedEl.closest('a').length > 0) { + return; + } + var $pageContentEl; + + // Find active page + var $navbarEl = $clickedEl.parents('.navbar'); + var $navbarsEl = $navbarEl.parents('.navbars'); + + // Static Layout + $pageContentEl = $navbarEl.parents('.page-content'); + + if ($pageContentEl.length === 0) { + // Fixed Layout + if ($navbarEl.parents('.page').length > 0) { + $pageContentEl = $navbarEl.parents('.page').find('.page-content'); + } + // Through Layout iOS + if ($pageContentEl.length === 0 && $navbarsEl.length) { + if ($navbarsEl.nextAll('.page-current:not(.stacked)').length > 0) { + $pageContentEl = $navbarsEl.nextAll('.page-current:not(.stacked)').find('.page-content'); + } + } + // Through Layout + if ($pageContentEl.length === 0) { + if ($navbarEl.nextAll('.page-current:not(.stacked)').length > 0) { + $pageContentEl = $navbarEl.nextAll('.page-current:not(.stacked)').find('.page-content'); + } + } + } + if ($pageContentEl && $pageContentEl.length > 0) { + // Check for tab + if ($pageContentEl.hasClass('tab')) { + $pageContentEl = $pageContentEl.parent('.tabs').children('.page-content.tab-active'); + } + if ($pageContentEl.length > 0) { $pageContentEl.scrollTop(0, 300); } + } + }, + }, + vnode: { + navbar: { + postpatch: function postpatch(vnode) { + var app = this; + app.navbar.size(vnode.elm); + }, + }, + }, + }; + + var Toolbar = { + setHighlight: function setHighlight(tabbarEl) { + var app = this; + if (app.theme !== 'md') { return; } + + var $tabbarEl = $(tabbarEl); + + if ($tabbarEl.length === 0 || !($tabbarEl.hasClass('tabbar') || $tabbarEl.hasClass('tabbar-labels'))) { return; } + + var $highlightEl = $tabbarEl.find('.tab-link-highlight'); + var tabLinksCount = $tabbarEl.find('.tab-link').length; + if (tabLinksCount === 0) { + $highlightEl.remove(); + return; + } + + if ($highlightEl.length === 0) { + $tabbarEl.children('.toolbar-inner').append(''); + $highlightEl = $tabbarEl.find('.tab-link-highlight'); + } else if ($highlightEl.next().length) { + $tabbarEl.children('.toolbar-inner').append($highlightEl); + } + + var $activeLink = $tabbarEl.find('.tab-link-active'); + var highlightWidth; + var highlightTranslate; + + if ($tabbarEl.hasClass('tabbar-scrollable') && $activeLink && $activeLink[0]) { + highlightWidth = ($activeLink[0].offsetWidth) + "px"; + highlightTranslate = ($activeLink[0].offsetLeft) + "px"; + } else { + var activeIndex = $activeLink.index(); + highlightWidth = (100 / tabLinksCount) + "%"; + highlightTranslate = ((app.rtl ? -activeIndex : activeIndex) * 100) + "%"; + } + + Utils.nextFrame(function () { + $highlightEl + .css('width', highlightWidth) + .transform(("translate3d(" + highlightTranslate + ",0,0)")); + }); + }, + init: function init(tabbarEl) { + var app = this; + app.toolbar.setHighlight(tabbarEl); + }, + hide: function hide(el, animate) { + if ( animate === void 0 ) animate = true; + + var app = this; + var $el = $(el); + if ($el.hasClass('toolbar-hidden')) { return; } + var className = "toolbar-hidden" + (animate ? ' toolbar-transitioning' : ''); + $el.transitionEnd(function () { + $el.removeClass('toolbar-transitioning'); + }); + $el.addClass(className); + $el.trigger('toolbar:hide'); + app.emit('toolbarHide', $el[0]); + }, + show: function show(el, animate) { + if ( animate === void 0 ) animate = true; + + var app = this; + var $el = $(el); + if (!$el.hasClass('toolbar-hidden')) { return; } + if (animate) { + $el.addClass('toolbar-transitioning'); + $el.transitionEnd(function () { + $el.removeClass('toolbar-transitioning'); + }); + } + $el.removeClass('toolbar-hidden'); + $el.trigger('toolbar:show'); + app.emit('toolbarShow', $el[0]); + }, + initToolbarOnScroll: function initToolbarOnScroll(pageEl) { + var app = this; + var $pageEl = $(pageEl); + var $toolbarEl = $pageEl.parents('.view').children('.toolbar'); + if ($toolbarEl.length === 0) { + $toolbarEl = $pageEl.find('.toolbar'); + } + if ($toolbarEl.length === 0) { + $toolbarEl = $pageEl.parents('.views').children('.tabbar, .tabbar-labels'); + } + if ($toolbarEl.length === 0) { + return; + } + + var previousScrollTop; + var currentScrollTop; + + var scrollHeight; + var offsetHeight; + var reachEnd; + var action; + var toolbarHidden; + function handleScroll(e) { + if ($pageEl.hasClass('page-with-card-opened')) { return; } + if ($pageEl.hasClass('page-previous')) { return; } + var scrollContent = this; + if (e && e.target && e.target !== scrollContent) { + return; + } + currentScrollTop = scrollContent.scrollTop; + scrollHeight = scrollContent.scrollHeight; + offsetHeight = scrollContent.offsetHeight; + reachEnd = currentScrollTop + offsetHeight >= scrollHeight; + toolbarHidden = $toolbarEl.hasClass('toolbar-hidden'); + + if (reachEnd) { + if (app.params.toolbar.showOnPageScrollEnd) { + action = 'show'; + } + } else if (previousScrollTop > currentScrollTop) { + if (app.params.toolbar.showOnPageScrollTop || currentScrollTop <= 44) { + action = 'show'; + } else { + action = 'hide'; + } + } else if (currentScrollTop > 44) { + action = 'hide'; + } else { + action = 'show'; + } + + if (action === 'show' && toolbarHidden) { + app.toolbar.show($toolbarEl); + toolbarHidden = false; + } else if (action === 'hide' && !toolbarHidden) { + app.toolbar.hide($toolbarEl); + toolbarHidden = true; + } + + previousScrollTop = currentScrollTop; + } + $pageEl.on('scroll', '.page-content', handleScroll, true); + $pageEl[0].f7ScrollToolbarHandler = handleScroll; + }, + }; + var Toolbar$1 = { + name: 'toolbar', + create: function create() { + var app = this; + Utils.extend(app, { + toolbar: { + hide: Toolbar.hide.bind(app), + show: Toolbar.show.bind(app), + setHighlight: Toolbar.setHighlight.bind(app), + initToolbarOnScroll: Toolbar.initToolbarOnScroll.bind(app), + init: Toolbar.init.bind(app), + }, + }); + }, + params: { + toolbar: { + hideOnPageScroll: false, + showOnPageScrollEnd: true, + showOnPageScrollTop: true, + }, + }, + on: { + pageBeforeRemove: function pageBeforeRemove(page) { + if (page.$el[0].f7ScrollToolbarHandler) { + page.$el.off('scroll', '.page-content', page.$el[0].f7ScrollToolbarHandler, true); + } + }, + pageBeforeIn: function pageBeforeIn(page) { + var app = this; + var $toolbarEl = page.$el.parents('.view').children('.toolbar'); + if ($toolbarEl.length === 0) { + $toolbarEl = page.$el.parents('.views').children('.tabbar, .tabbar-labels'); + } + if ($toolbarEl.length === 0) { + $toolbarEl = page.$el.find('.toolbar'); + } + if ($toolbarEl.length === 0) { + return; + } + if (page.$el.hasClass('no-toolbar')) { + app.toolbar.hide($toolbarEl); + } else { + app.toolbar.show($toolbarEl); + } + }, + pageInit: function pageInit(page) { + var app = this; + page.$el.find('.tabbar, .tabbar-labels').each(function (index, tabbarEl) { + app.toolbar.init(tabbarEl); + }); + if ( + app.params.toolbar.hideOnPageScroll + || page.$el.find('.hide-toolbar-on-scroll').length + || page.$el.hasClass('hide-toolbar-on-scroll') + || page.$el.find('.hide-bars-on-scroll').length + || page.$el.hasClass('hide-bars-on-scroll') + ) { + if ( + page.$el.find('.keep-toolbar-on-scroll').length + || page.$el.hasClass('keep-toolbar-on-scroll') + || page.$el.find('.keep-bars-on-scroll').length + || page.$el.hasClass('keep-bars-on-scroll') + ) { + return; + } + app.toolbar.initToolbarOnScroll(page.el); + } + }, + init: function init() { + var app = this; + app.root.find('.tabbar, .tabbar-labels').each(function (index, tabbarEl) { + app.toolbar.init(tabbarEl); + }); + }, + }, + vnode: { + tabbar: { + insert: function insert(vnode) { + var app = this; + app.toolbar.init(vnode.elm); + }, + }, + }, + }; + + var Subnavbar = { + name: 'subnavbar', + on: { + pageInit: function pageInit(page) { + if (page.$navbarEl && page.$navbarEl.length && page.$navbarEl.find('.subnavbar').length) { + page.$el.addClass('page-with-subnavbar'); + } + if (page.$el.find('.subnavbar').length) { + page.$el.addClass('page-with-subnavbar'); + } + }, + }, + }; + + var TouchRipple = function TouchRipple($el, x, y) { + var ripple = this; + if (!$el) { return undefined; } + var box = $el[0].getBoundingClientRect(); + var center = { + x: x - box.left, + y: y - box.top, + }; + var width = box.width; + var height = box.height; + var diameter = Math.max((Math.pow( ((Math.pow( height, 2 )) + (Math.pow( width, 2 ))), 0.5 )), 48); + + ripple.$rippleWaveEl = $(("
")); + + $el.prepend(ripple.$rippleWaveEl); + + ripple.rippleTransform = "translate3d(" + (-center.x + (width / 2)) + "px, " + (-center.y + (height / 2)) + "px, 0) scale(1)"; + + Utils.nextFrame(function () { + if (!ripple || !ripple.$rippleWaveEl) { return; } + ripple.$rippleWaveEl.transform(ripple.rippleTransform); + }); + + return ripple; + }; + + TouchRipple.prototype.destroy = function destroy () { + var ripple = this; + if (ripple.$rippleWaveEl) { + ripple.$rippleWaveEl.remove(); + } + Object.keys(ripple).forEach(function (key) { + ripple[key] = null; + delete ripple[key]; + }); + ripple = null; + }; + + TouchRipple.prototype.remove = function remove () { + var ripple = this; + if (ripple.removing) { return; } + var $rippleWaveEl = this.$rippleWaveEl; + var rippleTransform = this.rippleTransform; + var removeTimeout = Utils.nextTick(function () { + ripple.destroy(); + }, 400); + ripple.removing = true; + $rippleWaveEl + .addClass('ripple-wave-fill') + .transform(rippleTransform.replace('scale(1)', 'scale(1.01)')) + .transitionEnd(function () { + clearTimeout(removeTimeout); + Utils.nextFrame(function () { + $rippleWaveEl + .addClass('ripple-wave-out') + .transform(rippleTransform.replace('scale(1)', 'scale(1.01)')); + + removeTimeout = Utils.nextTick(function () { + ripple.destroy(); + }, 700); + + $rippleWaveEl.transitionEnd(function () { + clearTimeout(removeTimeout); + ripple.destroy(); + }); + }); + }); + }; + + var TouchRipple$1 = { + name: 'touch-ripple', + static: { + TouchRipple: TouchRipple, + }, + create: function create() { + var app = this; + app.touchRipple = { + create: function create() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return new (Function.prototype.bind.apply( TouchRipple, [ null ].concat( args) )); + }, + }; + }, + }; + + var openedModals = []; + var dialogsQueue = []; + function clearDialogsQueue() { + if (dialogsQueue.length === 0) { return; } + var dialog = dialogsQueue.shift(); + dialog.open(); + } + var Modal = /*@__PURE__*/(function (Framework7Class) { + function Modal(app, params) { + Framework7Class.call(this, params, [app]); + + var modal = this; + + var defaults = {}; + + // Extend defaults with modules params + modal.useModulesParams(defaults); + + modal.params = Utils.extend(defaults, params); + modal.opened = false; + + // Install Modules + modal.useModules(); + + return this; + } + + if ( Framework7Class ) Modal.__proto__ = Framework7Class; + Modal.prototype = Object.create( Framework7Class && Framework7Class.prototype ); + Modal.prototype.constructor = Modal; + + Modal.prototype.onOpen = function onOpen () { + var modal = this; + modal.opened = true; + openedModals.push(modal); + $('html').addClass(("with-modal-" + (modal.type.toLowerCase()))); + modal.$el.trigger(("modal:open " + (modal.type.toLowerCase()) + ":open")); + modal.emit(("local::open modalOpen " + (modal.type) + "Open"), modal); + }; + + Modal.prototype.onOpened = function onOpened () { + var modal = this; + modal.$el.trigger(("modal:opened " + (modal.type.toLowerCase()) + ":opened")); + modal.emit(("local::opened modalOpened " + (modal.type) + "Opened"), modal); + }; + + Modal.prototype.onClose = function onClose () { + var modal = this; + modal.opened = false; + if (!modal.type || !modal.$el) { return; } + openedModals.splice(openedModals.indexOf(modal), 1); + $('html').removeClass(("with-modal-" + (modal.type.toLowerCase()))); + modal.$el.trigger(("modal:close " + (modal.type.toLowerCase()) + ":close")); + modal.emit(("local::close modalClose " + (modal.type) + "Close"), modal); + }; + + Modal.prototype.onClosed = function onClosed () { + var modal = this; + if (!modal.type || !modal.$el) { return; } + modal.$el.removeClass('modal-out'); + modal.$el.hide(); + modal.$el.trigger(("modal:closed " + (modal.type.toLowerCase()) + ":closed")); + modal.emit(("local::closed modalClosed " + (modal.type) + "Closed"), modal); + }; + + Modal.prototype.open = function open (animateModal) { + var modal = this; + var app = modal.app; + var $el = modal.$el; + var $backdropEl = modal.$backdropEl; + var type = modal.type; + var animate = true; + if (typeof animateModal !== 'undefined') { animate = animateModal; } + else if (typeof modal.params.animate !== 'undefined') { + animate = modal.params.animate; + } + + if (!$el || $el.hasClass('modal-in')) { + return modal; + } + + if (type === 'dialog' && app.params.modal.queueDialogs) { + var pushToQueue; + if ($('.dialog.modal-in').length > 0) { + pushToQueue = true; + } else if (openedModals.length > 0) { + openedModals.forEach(function (openedModal) { + if (openedModal.type === 'dialog') { pushToQueue = true; } + }); + } + if (pushToQueue) { + dialogsQueue.push(modal); + return modal; + } + } + + var $modalParentEl = $el.parent(); + var wasInDom = $el.parents(doc).length > 0; + if (app.params.modal.moveToRoot && !$modalParentEl.is(app.root)) { + app.root.append($el); + modal.once((type + "Closed"), function () { + if (wasInDom) { + $modalParentEl.append($el); + } else { + $el.remove(); + } + }); + } + // Show Modal + $el.show(); + + /* eslint no-underscore-dangle: ["error", { "allow": ["_clientLeft"] }] */ + modal._clientLeft = $el[0].clientLeft; + + // Modal + function transitionEnd() { + if ($el.hasClass('modal-out')) { + modal.onClosed(); + } else if ($el.hasClass('modal-in')) { + modal.onOpened(); + } + } + if (animate) { + if ($backdropEl) { + $backdropEl.removeClass('not-animated'); + $backdropEl.addClass('backdrop-in'); + } + $el + .animationEnd(function () { + transitionEnd(); + }); + $el + .transitionEnd(function () { + transitionEnd(); + }); + $el + .removeClass('modal-out not-animated') + .addClass('modal-in'); + modal.onOpen(); + } else { + if ($backdropEl) { + $backdropEl.addClass('backdrop-in not-animated'); + } + $el.removeClass('modal-out').addClass('modal-in not-animated'); + modal.onOpen(); + modal.onOpened(); + } + + return modal; + }; + + Modal.prototype.close = function close (animateModal) { + var modal = this; + var $el = modal.$el; + var $backdropEl = modal.$backdropEl; + + var animate = true; + if (typeof animateModal !== 'undefined') { animate = animateModal; } + else if (typeof modal.params.animate !== 'undefined') { + animate = modal.params.animate; + } + + if (!$el || !$el.hasClass('modal-in')) { + if (dialogsQueue.indexOf(modal) >= 0) { + dialogsQueue.splice(dialogsQueue.indexOf(modal), 1); + } + return modal; + } + + // backdrop + if ($backdropEl) { + var needToHideBackdrop = true; + if (modal.type === 'popup') { + modal.$el.prevAll('.popup.modal-in').each(function (index, popupEl) { + var popupInstance = popupEl.f7Modal; + if (!popupInstance) { return; } + if ( + popupInstance.params.closeByBackdropClick + && popupInstance.params.backdrop + && popupInstance.backdropEl === modal.backdropEl + ) { + needToHideBackdrop = false; + } + }); + } + if (needToHideBackdrop) { + $backdropEl[animate ? 'removeClass' : 'addClass']('not-animated'); + $backdropEl.removeClass('backdrop-in'); + } + } + + // Modal + $el[animate ? 'removeClass' : 'addClass']('not-animated'); + function transitionEnd() { + if ($el.hasClass('modal-out')) { + modal.onClosed(); + } else if ($el.hasClass('modal-in')) { + modal.onOpened(); + } + } + if (animate) { + $el + .animationEnd(function () { + transitionEnd(); + }); + $el + .transitionEnd(function () { + transitionEnd(); + }); + $el + .removeClass('modal-in') + .addClass('modal-out'); + // Emit close + modal.onClose(); + } else { + $el + .addClass('not-animated') + .removeClass('modal-in') + .addClass('modal-out'); + // Emit close + modal.onClose(); + modal.onClosed(); + } + + if (modal.type === 'dialog') { + clearDialogsQueue(); + } + + return modal; + }; + + Modal.prototype.destroy = function destroy () { + var modal = this; + if (modal.destroyed) { return; } + modal.emit(("local::beforeDestroy modalBeforeDestroy " + (modal.type) + "BeforeDestroy"), modal); + if (modal.$el) { + modal.$el.trigger(("modal:beforedestroy " + (modal.type.toLowerCase()) + ":beforedestroy")); + if (modal.$el.length && modal.$el[0].f7Modal) { + delete modal.$el[0].f7Modal; + } + } + Utils.deleteProps(modal); + modal.destroyed = true; + }; + + return Modal; + }(Framework7Class)); + + var CustomModal = /*@__PURE__*/(function (Modal) { + function CustomModal(app, params) { + var extendedParams = Utils.extend({ + backdrop: true, + closeByBackdropClick: true, + on: {}, + }, params); + + // Extends with open/close Modal methods; + Modal.call(this, app, extendedParams); + + var customModal = this; + + customModal.params = extendedParams; + + // Find Element + var $el; + if (!customModal.params.el) { + $el = $(customModal.params.content); + } else { + $el = $(customModal.params.el); + } + + if ($el && $el.length > 0 && $el[0].f7Modal) { + return $el[0].f7Modal; + } + + if ($el.length === 0) { + return customModal.destroy(); + } + var $backdropEl; + if (customModal.params.backdrop) { + $backdropEl = app.root.children('.custom-modal-backdrop'); + if ($backdropEl.length === 0) { + $backdropEl = $('
'); + app.root.append($backdropEl); + } + } + + function handleClick(e) { + if (!customModal || customModal.destroyed) { return; } + if ($backdropEl && e.target === $backdropEl[0]) { + customModal.close(); + } + } + + customModal.on('customModalOpened', function () { + if (customModal.params.closeByBackdropClick && customModal.params.backdrop) { + app.on('click', handleClick); + } + }); + customModal.on('customModalClose', function () { + if (customModal.params.closeByBackdropClick && customModal.params.backdrop) { + app.off('click', handleClick); + } + }); + + Utils.extend(customModal, { + app: app, + $el: $el, + el: $el[0], + $backdropEl: $backdropEl, + backdropEl: $backdropEl && $backdropEl[0], + type: 'customModal', + }); + + $el[0].f7Modal = customModal; + + return customModal; + } + + if ( Modal ) CustomModal.__proto__ = Modal; + CustomModal.prototype = Object.create( Modal && Modal.prototype ); + CustomModal.prototype.constructor = CustomModal; + + return CustomModal; + }(Modal)); + + var Modal$1 = { + name: 'modal', + static: { + Modal: Modal, + CustomModal: CustomModal, + }, + create: function create() { + var app = this; + app.customModal = { + create: function create(params) { + return new CustomModal(app, params); + }, + }; + }, + params: { + modal: { + moveToRoot: true, + queueDialogs: true, + }, + }, + }; + + var Appbar = { + name: 'appbar', + }; + + var Dialog = /*@__PURE__*/(function (Modal) { + function Dialog(app, params) { + var extendedParams = Utils.extend({ + title: app.params.dialog.title, + text: undefined, + content: '', + buttons: [], + verticalButtons: false, + onClick: undefined, + cssClass: undefined, + destroyOnClose: false, + on: {}, + }, params); + if (typeof extendedParams.closeByBackdropClick === 'undefined') { + extendedParams.closeByBackdropClick = app.params.dialog.closeByBackdropClick; + } + if (typeof extendedParams.backdrop === 'undefined') { + extendedParams.backdrop = app.params.dialog.backdrop; + } + + // Extends with open/close Modal methods; + Modal.call(this, app, extendedParams); + + var dialog = this; + + var title = extendedParams.title; + var text = extendedParams.text; + var content = extendedParams.content; + var buttons = extendedParams.buttons; + var verticalButtons = extendedParams.verticalButtons; + var cssClass = extendedParams.cssClass; + var backdrop = extendedParams.backdrop; + + dialog.params = extendedParams; + + // Find Element + var $el; + if (!dialog.params.el) { + var dialogClasses = ['dialog']; + if (buttons.length === 0) { dialogClasses.push('dialog-no-buttons'); } + if (buttons.length > 0) { dialogClasses.push(("dialog-buttons-" + (buttons.length))); } + if (verticalButtons) { dialogClasses.push('dialog-buttons-vertical'); } + if (cssClass) { dialogClasses.push(cssClass); } + + var buttonsHTML = ''; + if (buttons.length > 0) { + buttonsHTML = "\n
\n " + (buttons.map(function (button) { return ("\n " + (button.text) + "\n "); }).join('')) + "\n
\n "; + } + + var dialogHtml = "\n
\n
\n " + (title ? ("
" + title + "
") : '') + "\n " + (text ? ("
" + text + "
") : '') + "\n " + content + "\n
\n " + buttonsHTML + "\n
\n "; + $el = $(dialogHtml); + } else { + $el = $(dialog.params.el); + } + + if ($el && $el.length > 0 && $el[0].f7Modal) { + return $el[0].f7Modal; + } + + if ($el.length === 0) { + return dialog.destroy(); + } + + var $backdropEl; + if (backdrop) { + $backdropEl = app.root.children('.dialog-backdrop'); + if ($backdropEl.length === 0) { + $backdropEl = $('
'); + app.root.append($backdropEl); + } + } + + // Assign events + function buttonOnClick(e) { + var buttonEl = this; + var index = $(buttonEl).index(); + var button = buttons[index]; + if (button.onClick) { button.onClick(dialog, e); } + if (dialog.params.onClick) { dialog.params.onClick(dialog, index); } + if (button.close !== false) { dialog.close(); } + } + var addKeyboardHander; + function onKeyDown(e) { + var keyCode = e.keyCode; + buttons.forEach(function (button, index) { + if (button.keyCodes && button.keyCodes.indexOf(keyCode) >= 0) { + if (doc.activeElement) { doc.activeElement.blur(); } + if (button.onClick) { button.onClick(dialog, e); } + if (dialog.params.onClick) { dialog.params.onClick(dialog, index); } + if (button.close !== false) { dialog.close(); } + } + }); + } + if (buttons && buttons.length > 0) { + dialog.on('open', function () { + $el.find('.dialog-button').each(function (index, buttonEl) { + var button = buttons[index]; + if (button.keyCodes) { addKeyboardHander = true; } + $(buttonEl).on('click', buttonOnClick); + }); + if ( + addKeyboardHander + && !app.device.ios + && !app.device.android + && !app.device.cordova + ) { + $(doc).on('keydown', onKeyDown); + } + }); + dialog.on('close', function () { + $el.find('.dialog-button').each(function (index, buttonEl) { + $(buttonEl).off('click', buttonOnClick); + }); + if ( + addKeyboardHander + && !app.device.ios + && !app.device.android + && !app.device.cordova + ) { + $(doc).off('keydown', onKeyDown); + } + addKeyboardHander = false; + }); + } + Utils.extend(dialog, { + app: app, + $el: $el, + el: $el[0], + $backdropEl: $backdropEl, + backdropEl: $backdropEl && $backdropEl[0], + type: 'dialog', + setProgress: function setProgress(progress, duration) { + app.progressbar.set($el.find('.progressbar'), progress, duration); + return dialog; + }, + setText: function setText(newText) { + var $textEl = $el.find('.dialog-text'); + if ($textEl.length === 0) { + $textEl = $('
'); + if (typeof title !== 'undefined') { + $textEl.insertAfter($el.find('.dialog-title')); + } else { + $el.find('.dialog-inner').prepend($textEl); + } + } + $textEl.html(newText); + dialog.params.text = newText; + return dialog; + }, + setTitle: function setTitle(newTitle) { + var $titleEl = $el.find('.dialog-title'); + if ($titleEl.length === 0) { + $titleEl = $('
'); + $el.find('.dialog-inner').prepend($titleEl); + } + $titleEl.html(newTitle); + dialog.params.title = newTitle; + return dialog; + }, + }); + + function handleClick(e) { + var target = e.target; + var $target = $(target); + if ($target.closest(dialog.el).length === 0) { + if ( + dialog.params.closeByBackdropClick + && dialog.backdropEl + && dialog.backdropEl === target + ) { + dialog.close(); + } + } + } + + dialog.on('opened', function () { + if (dialog.params.closeByBackdropClick) { + app.on('click', handleClick); + } + }); + dialog.on('close', function () { + if (dialog.params.closeByBackdropClick) { + app.off('click', handleClick); + } + }); + + $el[0].f7Modal = dialog; + + if (dialog.params.destroyOnClose) { + dialog.once('closed', function () { + setTimeout(function () { + dialog.destroy(); + }, 0); + }); + } + + return dialog; + } + + if ( Modal ) Dialog.__proto__ = Modal; + Dialog.prototype = Object.create( Modal && Modal.prototype ); + Dialog.prototype.constructor = Dialog; + + return Dialog; + }(Modal)); + + var Dialog$1 = { + name: 'dialog', + params: { + dialog: { + title: undefined, + buttonOk: 'OK', + buttonCancel: 'Cancel', + usernamePlaceholder: 'Username', + passwordPlaceholder: 'Password', + preloaderTitle: 'Loading... ', + progressTitle: 'Loading... ', + backdrop: true, + closeByBackdropClick: false, + destroyPredefinedDialogs: true, + keyboardActions: true, + autoFocus: true, + }, + }, + static: { + Dialog: Dialog, + }, + create: function create() { + var app = this; + function defaultDialogTitle() { + return app.params.dialog.title || app.name; + } + var destroyOnClose = app.params.dialog.destroyPredefinedDialogs; + var keyboardActions = app.params.dialog.keyboardActions; + var autoFocus = app.params.dialog.autoFocus; + var autoFocusHandler = (autoFocus ? { + on: { + opened: function opened(dialog) { + dialog.$el.find('input').eq(0).focus(); + }, + }, + } : {}); + + app.dialog = Utils.extend( + ModalMethods({ + app: app, + constructor: Dialog, + defaultSelector: '.dialog.modal-in', + }), + { + // Shortcuts + alert: function alert() { + var assign; + + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + var text = args[0]; + var title = args[1]; + var callbackOk = args[2]; + if (args.length === 2 && typeof args[1] === 'function') { + (assign = args, text = assign[0], callbackOk = assign[1], title = assign[2]); + } + return new Dialog(app, { + title: typeof title === 'undefined' ? defaultDialogTitle() : title, + text: text, + buttons: [{ + text: app.params.dialog.buttonOk, + bold: true, + onClick: callbackOk, + keyCodes: keyboardActions ? [13, 27] : null, + }], + destroyOnClose: destroyOnClose, + }).open(); + }, + prompt: function prompt() { + var assign; + + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + var text = args[0]; + var title = args[1]; + var callbackOk = args[2]; + var callbackCancel = args[3]; + var defaultValue = args[4]; + if (typeof args[1] === 'function') { + (assign = args, text = assign[0], callbackOk = assign[1], callbackCancel = assign[2], defaultValue = assign[3], title = assign[4]); + } + defaultValue = typeof defaultValue === 'undefined' || defaultValue === null ? '' : defaultValue; + return new Dialog(app, Object.assign({}, {title: typeof title === 'undefined' ? defaultDialogTitle() : title, + text: text, + content: ("
"), + buttons: [ + { + text: app.params.dialog.buttonCancel, + keyCodes: keyboardActions ? [27] : null, + color: app.theme === 'aurora' ? 'gray' : null, + }, + { + text: app.params.dialog.buttonOk, + bold: true, + keyCodes: keyboardActions ? [13] : null, + } ], + onClick: function onClick(dialog, index) { + var inputValue = dialog.$el.find('.dialog-input').val(); + if (index === 0 && callbackCancel) { callbackCancel(inputValue); } + if (index === 1 && callbackOk) { callbackOk(inputValue); } + }, + destroyOnClose: destroyOnClose}, + autoFocusHandler)).open(); + }, + confirm: function confirm() { + var assign; + + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + var text = args[0]; + var title = args[1]; + var callbackOk = args[2]; + var callbackCancel = args[3]; + if (typeof args[1] === 'function') { + (assign = args, text = assign[0], callbackOk = assign[1], callbackCancel = assign[2], title = assign[3]); + } + return new Dialog(app, { + title: typeof title === 'undefined' ? defaultDialogTitle() : title, + text: text, + buttons: [ + { + text: app.params.dialog.buttonCancel, + onClick: callbackCancel, + keyCodes: keyboardActions ? [27] : null, + color: app.theme === 'aurora' ? 'gray' : null, + }, + { + text: app.params.dialog.buttonOk, + bold: true, + onClick: callbackOk, + keyCodes: keyboardActions ? [13] : null, + } ], + destroyOnClose: destroyOnClose, + }).open(); + }, + login: function login() { + var assign; + + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + var text = args[0]; + var title = args[1]; + var callbackOk = args[2]; + var callbackCancel = args[3]; + if (typeof args[1] === 'function') { + (assign = args, text = assign[0], callbackOk = assign[1], callbackCancel = assign[2], title = assign[3]); + } + return new Dialog(app, Object.assign({}, {title: typeof title === 'undefined' ? defaultDialogTitle() : title, + text: text, + content: ("\n
\n \n
\n
\n \n
"), + buttons: [ + { + text: app.params.dialog.buttonCancel, + keyCodes: keyboardActions ? [27] : null, + color: app.theme === 'aurora' ? 'gray' : null, + }, + { + text: app.params.dialog.buttonOk, + bold: true, + keyCodes: keyboardActions ? [13] : null, + } ], + onClick: function onClick(dialog, index) { + var username = dialog.$el.find('[name="dialog-username"]').val(); + var password = dialog.$el.find('[name="dialog-password"]').val(); + if (index === 0 && callbackCancel) { callbackCancel(username, password); } + if (index === 1 && callbackOk) { callbackOk(username, password); } + }, + destroyOnClose: destroyOnClose}, + autoFocusHandler)).open(); + }, + password: function password() { + var assign; + + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + var text = args[0]; + var title = args[1]; + var callbackOk = args[2]; + var callbackCancel = args[3]; + if (typeof args[1] === 'function') { + (assign = args, text = assign[0], callbackOk = assign[1], callbackCancel = assign[2], title = assign[3]); + } + return new Dialog(app, Object.assign({}, {title: typeof title === 'undefined' ? defaultDialogTitle() : title, + text: text, + content: ("\n
\n \n
"), + buttons: [ + { + text: app.params.dialog.buttonCancel, + keyCodes: keyboardActions ? [27] : null, + color: app.theme === 'aurora' ? 'gray' : null, + }, + { + text: app.params.dialog.buttonOk, + bold: true, + keyCodes: keyboardActions ? [13] : null, + } ], + onClick: function onClick(dialog, index) { + var password = dialog.$el.find('[name="dialog-password"]').val(); + if (index === 0 && callbackCancel) { callbackCancel(password); } + if (index === 1 && callbackOk) { callbackOk(password); } + }, + destroyOnClose: destroyOnClose}, + autoFocusHandler)).open(); + }, + preloader: function preloader(title, color) { + var preloaderInner = Utils[((app.theme) + "PreloaderContent")] || ''; + return new Dialog(app, { + title: typeof title === 'undefined' || title === null ? app.params.dialog.preloaderTitle : title, + content: ("
" + preloaderInner + "
"), + cssClass: 'dialog-preloader', + destroyOnClose: destroyOnClose, + }).open(); + }, + progress: function progress() { + var assign, assign$1, assign$2; + + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + var title = args[0]; + var progress = args[1]; + var color = args[2]; + if (args.length === 2) { + if (typeof args[0] === 'number') { + (assign = args, progress = assign[0], color = assign[1], title = assign[2]); + } else if (typeof args[0] === 'string' && typeof args[1] === 'string') { + (assign$1 = args, title = assign$1[0], color = assign$1[1], progress = assign$1[2]); + } + } else if (args.length === 1) { + if (typeof args[0] === 'number') { + (assign$2 = args, progress = assign$2[0], title = assign$2[1], color = assign$2[2]); + } + } + var infinite = typeof progress === 'undefined'; + var dialog = new Dialog(app, { + title: typeof title === 'undefined' ? app.params.dialog.progressTitle : title, + cssClass: 'dialog-progress', + content: ("\n
\n " + (!infinite ? '' : '') + "\n
\n "), + destroyOnClose: destroyOnClose, + }); + if (!infinite) { dialog.setProgress(progress); } + return dialog.open(); + }, + } + ); + }, + }; + + var Popup = /*@__PURE__*/(function (Modal) { + function Popup(app, params) { + var extendedParams = Utils.extend( + { on: {} }, + app.params.popup, + params + ); + + // Extends with open/close Modal methods; + Modal.call(this, app, extendedParams); + + var popup = this; + + popup.params = extendedParams; + + // Find Element + var $el; + if (!popup.params.el) { + $el = $(popup.params.content).filter(function (elIndex, node) { return node.nodeType === 1; }).eq(0); + } else { + $el = $(popup.params.el).eq(0); + } + + if ($el && $el.length > 0 && $el[0].f7Modal) { + return $el[0].f7Modal; + } + + if ($el.length === 0) { + return popup.destroy(); + } + + var $backdropEl; + if (popup.params.backdrop && popup.params.backdropEl) { + $backdropEl = $(popup.params.backdropEl); + } else if (popup.params.backdrop) { + $backdropEl = app.root.children('.popup-backdrop'); + if ($backdropEl.length === 0) { + $backdropEl = $(''); + app.root.append($backdropEl); + } + } + + Utils.extend(popup, { + app: app, + push: $el.hasClass('popup-push') || popup.params.push, + $el: $el, + el: $el[0], + $backdropEl: $backdropEl, + backdropEl: $backdropEl && $backdropEl[0], + type: 'popup', + $htmlEl: $('html'), + }); + + if (popup.params.push) { + $el.addClass('popup-push'); + } + + function handleClick(e) { + var target = e.target; + var $target = $(target); + var keyboardOpened = !app.device.desktop && app.device.cordova && ((win.Keyboard && win.Keyboard.isVisible) || (win.cordova.plugins && win.cordova.plugins.Keyboard && win.cordova.plugins.Keyboard.isVisible)); + if (keyboardOpened) { return; } + if ($target.closest(popup.el).length === 0) { + if ( + popup.params + && popup.params.closeByBackdropClick + && popup.params.backdrop + && popup.backdropEl + && popup.backdropEl === target + ) { + var needToClose = true; + popup.$el.nextAll('.popup.modal-in').each(function (index, popupEl) { + var popupInstance = popupEl.f7Modal; + if (!popupInstance) { return; } + if ( + popupInstance.params.closeByBackdropClick + && popupInstance.params.backdrop + && popupInstance.backdropEl === popup.backdropEl + ) { + needToClose = false; + } + }); + if (needToClose) { + popup.close(); + } + } + } + } + + function onKeyDown(e) { + var keyCode = e.keyCode; + if (keyCode === 27 && popup.params.closeOnEscape) { + popup.close(); + } + } + + var pushOffset; + var isPush; + + function pushViewScale(offset) { + return (app.height - offset * 2) / app.height; + } + + var allowSwipeToClose = true; + var isTouched = false; + var startTouch; + var currentTouch; + var isScrolling; + var touchStartTime; + var touchesDiff; + var isMoved = false; + var pageContentEl; + var pageContentScrollTop; + var pageContentOffsetHeight; + var pageContentScrollHeight; + var popupHeight; + var $pushEl; + + function handleTouchStart(e) { + if (isTouched || !allowSwipeToClose || !popup.params.swipeToClose) { return; } + if (popup.params.swipeHandler && $(e.target).closest(popup.params.swipeHandler).length === 0) { + return; + } + isTouched = true; + isMoved = false; + startTouch = { + x: e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX, + y: e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY, + }; + touchStartTime = Utils.now(); + isScrolling = undefined; + if (!popup.params.swipeHandler && e.type === 'touchstart') { + pageContentEl = $(e.target).closest('.page-content')[0]; + } + } + function handleTouchMove(e) { + if (!isTouched) { return; } + currentTouch = { + x: e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX, + y: e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY, + }; + + if (typeof isScrolling === 'undefined') { + isScrolling = !!(isScrolling || Math.abs(currentTouch.x - startTouch.x) > Math.abs(currentTouch.y - startTouch.y)); + } + if (isScrolling) { + isTouched = false; + isMoved = false; + return; + } + + touchesDiff = startTouch.y - currentTouch.y; + if (isPush && pushOffset && touchesDiff > 0) { + touchesDiff = 0; + } + var direction = touchesDiff < 0 ? 'to-bottom' : 'to-top'; + $el.transition(0); + + if (typeof popup.params.swipeToClose === 'string' && direction !== popup.params.swipeToClose) { + $el.transform(''); + $el.transition(''); + return; + } + + if (!isMoved) { + if (isPush && pushOffset) { + popupHeight = $el[0].offsetHeight; + $pushEl = $el.prevAll('.popup.modal-in').eq(0); + if ($pushEl.length === 0) { + $pushEl = app.root.children('.view, .views'); + } + } + if (pageContentEl) { + pageContentScrollTop = pageContentEl.scrollTop; + pageContentScrollHeight = pageContentEl.scrollHeight; + pageContentOffsetHeight = pageContentEl.offsetHeight; + if ( + !(pageContentScrollHeight === pageContentOffsetHeight) + && !(direction === 'to-bottom' && pageContentScrollTop === 0) + && !(direction === 'to-top' && pageContentScrollTop === (pageContentScrollHeight - pageContentOffsetHeight)) + ) { + $el.transform(''); + $el.transition(''); + isTouched = false; + isMoved = false; + return; + } + } + isMoved = true; + popup.emit('local::swipeStart popupSwipeStart', popup); + popup.$el.trigger('popup:swipestart'); + } else { + popup.emit('local::swipeMove popupSwipeMove', popup); + popup.$el.trigger('popup:swipemove'); + } + + e.preventDefault(); + if (isPush && pushOffset) { + var pushProgress = 1 - Math.abs(touchesDiff / popupHeight); + var scale = 1 - (1 - pushViewScale(pushOffset)) * pushProgress; + if ($pushEl.hasClass('popup')) { + if ($pushEl.hasClass('popup-push')) { + $pushEl.transition(0).transform( + ("translate3d(0, calc(-1 * " + pushProgress + " * (var(--f7-popup-push-offset) + 10px)) , 0px) scale(" + scale + ")") + ); + } else { + $pushEl.transition(0).transform( + ("translate3d(0, 0px , 0px) scale(" + scale + ")") + ); + } + } else { + $pushEl.transition(0).transform(("translate3d(0,0,0) scale(" + scale + ")")); + } + } + $el.transition(0).transform(("translate3d(0," + (-touchesDiff) + "px,0)")); + } + function handleTouchEnd() { + isTouched = false; + if (!isMoved) { + return; + } + popup.emit('local::swipeEnd popupSwipeEnd', popup); + popup.$el.trigger('popup:swipeend'); + isMoved = false; + allowSwipeToClose = false; + $el.transition(''); + if (isPush && pushOffset) { + $pushEl.transition('').transform(''); + } + var direction = touchesDiff <= 0 ? 'to-bottom' : 'to-top'; + if ((typeof popup.params.swipeToClose === 'string' && direction !== popup.params.swipeToClose)) { + $el.transform(''); + allowSwipeToClose = true; + return; + } + var diff = Math.abs(touchesDiff); + var timeDiff = (new Date()).getTime() - touchStartTime; + if ((timeDiff < 300 && diff > 20) || (timeDiff >= 300 && diff > 100)) { + Utils.nextTick(function () { + if (direction === 'to-bottom') { + $el.addClass('swipe-close-to-bottom'); + } else { + $el.addClass('swipe-close-to-top'); + } + $el.transform(''); + popup.emit('local::swipeclose popupSwipeClose', popup); + popup.$el.trigger('popup:swipeclose'); + popup.close(); + allowSwipeToClose = true; + }); + return; + } + allowSwipeToClose = true; + $el.transform(''); + } + + var passive = Support.passiveListener ? { passive: true } : false; + if (popup.params.swipeToClose) { + $el.on(app.touchEvents.start, handleTouchStart, passive); + app.on('touchmove', handleTouchMove); + app.on('touchend:passive', handleTouchEnd); + popup.once('popupDestroy', function () { + $el.off(app.touchEvents.start, handleTouchStart, passive); + app.off('touchmove', handleTouchMove); + app.off('touchend:passive', handleTouchEnd); + }); + } + + var hasPreviousPushPopup; + + popup.on('open', function () { + hasPreviousPushPopup = false; + if (popup.params.closeOnEscape) { + $(doc).on('keydown', onKeyDown); + } + $el.prevAll('.popup.modal-in').addClass('popup-behind'); + if (popup.push) { + isPush = popup.push && ( + (app.width < 630 || app.height < 630) + || $el.hasClass('popup-tablet-fullscreen') + ); + } + if (isPush) { + pushOffset = parseInt($el.css('--f7-popup-push-offset'), 10); + if (Number.isNaN(pushOffset)) { pushOffset = 0; } + if (pushOffset) { + $el.addClass('popup-push'); + popup.$htmlEl.addClass('with-modal-popup-push'); + popup.$htmlEl[0].style.setProperty('--f7-popup-push-scale', pushViewScale(pushOffset)); + } + } + }); + popup.on('opened', function () { + $el.removeClass('swipe-close-to-bottom swipe-close-to-top'); + if (popup.params.closeByBackdropClick) { + app.on('click', handleClick); + } + }); + popup.on('close', function () { + hasPreviousPushPopup = popup.$el.prevAll('.popup-push.modal-in').length > 0; + if (popup.params.closeOnEscape) { + $(doc).off('keydown', onKeyDown); + } + if (popup.params.closeByBackdropClick) { + app.off('click', handleClick); + } + $el.prevAll('.popup.modal-in').eq(0).removeClass('popup-behind'); + if (isPush && pushOffset && !hasPreviousPushPopup) { + popup.$htmlEl.removeClass('with-modal-popup-push'); + popup.$htmlEl.addClass('with-modal-popup-push-closing'); + } + }); + popup.on('closed', function () { + if (isPush && pushOffset && !hasPreviousPushPopup) { + popup.$htmlEl.removeClass('with-modal-popup-push-closing'); + popup.$htmlEl[0].style.removeProperty('--f7-popup-push-scale'); + } + }); + + $el[0].f7Modal = popup; + + return popup; + } + + if ( Modal ) Popup.__proto__ = Modal; + Popup.prototype = Object.create( Modal && Modal.prototype ); + Popup.prototype.constructor = Popup; + + return Popup; + }(Modal)); + + var Popup$1 = { + name: 'popup', + params: { + popup: { + backdrop: true, + backdropEl: undefined, + closeByBackdropClick: true, + closeOnEscape: false, + swipeToClose: false, + swipeHandler: null, + push: false, + }, + }, + static: { + Popup: Popup, + }, + create: function create() { + var app = this; + app.popup = ModalMethods({ + app: app, + constructor: Popup, + defaultSelector: '.popup.modal-in', + parentSelector: '.popup', + }); + }, + clicks: { + '.popup-open': function openPopup($clickedEl, data) { + if ( data === void 0 ) data = {}; + + var app = this; + app.popup.open(data.popup, data.animate, $clickedEl); + }, + '.popup-close': function closePopup($clickedEl, data) { + if ( data === void 0 ) data = {}; + + var app = this; + app.popup.close(data.popup, data.animate, $clickedEl); + }, + }, + }; + + var LoginScreen = /*@__PURE__*/(function (Modal) { + function LoginScreen(app, params) { + var extendedParams = Utils.extend({ + on: {}, + }, params); + + // Extends with open/close Modal methods; + Modal.call(this, app, extendedParams); + + var loginScreen = this; + + loginScreen.params = extendedParams; + + // Find Element + var $el; + if (!loginScreen.params.el) { + $el = $(loginScreen.params.content).filter(function (elIndex, node) { return node.nodeType === 1; }).eq(0); + } else { + $el = $(loginScreen.params.el).eq(0); + } + + if ($el && $el.length > 0 && $el[0].f7Modal) { + return $el[0].f7Modal; + } + + if ($el.length === 0) { + return loginScreen.destroy(); + } + + Utils.extend(loginScreen, { + app: app, + $el: $el, + el: $el[0], + type: 'loginScreen', + }); + + $el[0].f7Modal = loginScreen; + + return loginScreen; + } + + if ( Modal ) LoginScreen.__proto__ = Modal; + LoginScreen.prototype = Object.create( Modal && Modal.prototype ); + LoginScreen.prototype.constructor = LoginScreen; + + return LoginScreen; + }(Modal)); + + var LoginScreen$1 = { + name: 'loginScreen', + static: { + LoginScreen: LoginScreen, + }, + create: function create() { + var app = this; + app.loginScreen = ModalMethods({ + app: app, + constructor: LoginScreen, + defaultSelector: '.login-screen.modal-in', + }); + }, + clicks: { + '.login-screen-open': function openLoginScreen($clickedEl, data) { + if ( data === void 0 ) data = {}; + + var app = this; + app.loginScreen.open(data.loginScreen, data.animate, $clickedEl); + }, + '.login-screen-close': function closeLoginScreen($clickedEl, data) { + if ( data === void 0 ) data = {}; + + var app = this; + app.loginScreen.close(data.loginScreen, data.animate, $clickedEl); + }, + }, + }; + + var Popover = /*@__PURE__*/(function (Modal) { + function Popover(app, params) { + var extendedParams = Utils.extend( + { on: {} }, + app.params.popover, + params + ); + + // Extends with open/close Modal methods; + Modal.call(this, app, extendedParams); + + var popover = this; + + popover.params = extendedParams; + + // Find Element + var $el; + if (!popover.params.el) { + $el = $(popover.params.content).filter(function (elIndex, node) { return node.nodeType === 1; }).eq(0); + } else { + $el = $(popover.params.el).eq(0); + } + + if ($el && $el.length > 0 && $el[0].f7Modal) { + return $el[0].f7Modal; + } + + // Find Target + var $targetEl = $(popover.params.targetEl).eq(0); + + if ($el.length === 0) { + return popover.destroy(); + } + + // Backdrop + var $backdropEl; + if (popover.params.backdrop && popover.params.backdropEl) { + $backdropEl = $(popover.params.backdropEl); + } else if (popover.params.backdrop) { + $backdropEl = app.root.children('.popover-backdrop'); + if ($backdropEl.length === 0) { + $backdropEl = $('
'); + app.root.append($backdropEl); + } + } + + // Find Angle + var $angleEl; + if ($el.find('.popover-angle').length === 0) { + $angleEl = $('
'); + $el.prepend($angleEl); + } else { + $angleEl = $el.find('.popover-angle'); + } + + // Open + var originalOpen = popover.open; + + Utils.extend(popover, { + app: app, + $el: $el, + el: $el[0], + $targetEl: $targetEl, + targetEl: $targetEl[0], + $angleEl: $angleEl, + angleEl: $angleEl[0], + $backdropEl: $backdropEl, + backdropEl: $backdropEl && $backdropEl[0], + type: 'popover', + open: function open() { + var assign; + + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + var targetEl = args[0]; + var animate = args[1]; + if (typeof args[0] === 'boolean') { (assign = args, animate = assign[0], targetEl = assign[1]); } + if (targetEl) { + popover.$targetEl = $(targetEl); + popover.targetEl = popover.$targetEl[0]; + } + return originalOpen.call(popover, animate); + }, + }); + + function handleResize() { + popover.resize(); + } + popover.on('popoverOpen', function () { + popover.resize(); + app.on('resize', handleResize); + $(win).on('keyboardDidShow keyboardDidHide', handleResize); + popover.on('popoverClose popoverBeforeDestroy', function () { + app.off('resize', handleResize); + $(win).off('keyboardDidShow keyboardDidHide', handleResize); + }); + }); + + function handleClick(e) { + var target = e.target; + var $target = $(target); + var keyboardOpened = !app.device.desktop && app.device.cordova && ((win.Keyboard && win.Keyboard.isVisible) || (win.cordova.plugins && win.cordova.plugins.Keyboard && win.cordova.plugins.Keyboard.isVisible)); + if (keyboardOpened) { return; } + if ($target.closest(popover.el).length === 0) { + if ( + popover.params.closeByBackdropClick + && popover.params.backdrop + && popover.backdropEl + && popover.backdropEl === target + ) { + popover.close(); + } else if (popover.params.closeByOutsideClick) { + popover.close(); + } + } + } + + function onKeyDown(e) { + var keyCode = e.keyCode; + if (keyCode === 27 && popover.params.closeOnEscape) { + popover.close(); + } + } + + if (popover.params.closeOnEscape) { + popover.on('popoverOpen', function () { + $(doc).on('keydown', onKeyDown); + }); + popover.on('popoverClose', function () { + $(doc).off('keydown', onKeyDown); + }); + } + + popover.on('popoverOpened', function () { + if (popover.params.closeByOutsideClick || popover.params.closeByBackdropClick) { + app.on('click', handleClick); + } + }); + popover.on('popoverClose', function () { + if (popover.params.closeByOutsideClick || popover.params.closeByBackdropClick) { + app.off('click', handleClick); + } + }); + + $el[0].f7Modal = popover; + + return popover; + } + + if ( Modal ) Popover.__proto__ = Modal; + Popover.prototype = Object.create( Modal && Modal.prototype ); + Popover.prototype.constructor = Popover; + + Popover.prototype.resize = function resize () { + var popover = this; + var app = popover.app; + var $el = popover.$el; + var $targetEl = popover.$targetEl; + var $angleEl = popover.$angleEl; + var ref = popover.params; + var targetX = ref.targetX; + var targetY = ref.targetY; + $el.css({ left: '', top: '' }); + var ref$1 = [$el.width(), $el.height()]; + var width = ref$1[0]; + var height = ref$1[1]; + var angleSize = 0; + var angleLeft; + var angleTop; + if (app.theme === 'ios' || app.theme === 'aurora') { + $angleEl.removeClass('on-left on-right on-top on-bottom').css({ left: '', top: '' }); + angleSize = $angleEl.width() / 2; + } else { + $el.removeClass('popover-on-left popover-on-right popover-on-top popover-on-bottom popover-on-middle').css({ left: '', top: '' }); + } + + var targetWidth; + var targetHeight; + var targetOffsetLeft; + var targetOffsetTop; + var safeAreaTop = parseInt($('html').css('--f7-safe-area-top'), 10); + if (Number.isNaN(safeAreaTop)) { safeAreaTop = 0; } + if ($targetEl && $targetEl.length > 0) { + targetWidth = $targetEl.outerWidth(); + targetHeight = $targetEl.outerHeight(); + + var targetOffset = $targetEl.offset(); + targetOffsetLeft = targetOffset.left - app.left; + targetOffsetTop = targetOffset.top - app.top; + + var targetParentPage = $targetEl.parents('.page'); + if (targetParentPage.length > 0) { + targetOffsetTop -= targetParentPage[0].scrollTop; + } + } else if (typeof targetX !== 'undefined' && targetY !== 'undefined') { + targetOffsetLeft = targetX; + targetOffsetTop = targetY; + targetWidth = popover.params.targetWidth || 0; + targetHeight = popover.params.targetHeight || 0; + } + + var ref$2 = [0, 0, 0]; + var left = ref$2[0]; + var top = ref$2[1]; + var diff = ref$2[2]; + // Top Position + var position = app.theme === 'md' ? 'bottom' : 'top'; + if (app.theme === 'md') { + if (height < app.height - targetOffsetTop - targetHeight) { + // On bottom + position = 'bottom'; + top = targetOffsetTop + targetHeight; + } else if (height < targetOffsetTop - safeAreaTop) { + // On top + top = targetOffsetTop - height; + position = 'top'; + } else { + // On middle + position = 'middle'; + top = ((targetHeight / 2) + targetOffsetTop) - (height / 2); + } + top = Math.max(8, Math.min(top, app.height - height - 8)); + + // Horizontal Position + var hPosition; + if (targetOffsetLeft < app.width / 2) { + hPosition = 'right'; + left = position === 'middle' + ? targetOffsetLeft + targetWidth + : targetOffsetLeft; + } else { + hPosition = 'left'; + left = position === 'middle' + ? targetOffsetLeft - width + : (targetOffsetLeft + targetWidth) - width; + } + left = Math.max(8, Math.min(left, app.width - width - 8)); + $el.addClass(("popover-on-" + position + " popover-on-" + hPosition)); + } else { + // ios and aurora + if ((height + angleSize) < targetOffsetTop - safeAreaTop) { + // On top + top = targetOffsetTop - height - angleSize; + } else if ((height + angleSize) < app.height - targetOffsetTop - targetHeight) { + // On bottom + position = 'bottom'; + top = targetOffsetTop + targetHeight + angleSize; + } else { + // On middle + position = 'middle'; + top = ((targetHeight / 2) + targetOffsetTop) - (height / 2); + diff = top; + top = Math.max(5, Math.min(top, app.height - height - 5)); + diff -= top; + } + + // Horizontal Position + if (position === 'top' || position === 'bottom') { + left = ((targetWidth / 2) + targetOffsetLeft) - (width / 2); + diff = left; + left = Math.max(5, Math.min(left, app.width - width - 5)); + if (position === 'top') { + $angleEl.addClass('on-bottom'); + } + if (position === 'bottom') { + $angleEl.addClass('on-top'); + } + diff -= left; + angleLeft = ((width / 2) - angleSize) + diff; + angleLeft = Math.max(Math.min(angleLeft, width - (angleSize * 2) - 13), 13); + $angleEl.css({ left: (angleLeft + "px") }); + } else if (position === 'middle') { + left = targetOffsetLeft - width - angleSize; + $angleEl.addClass('on-right'); + if (left < 5 || (left + width > app.width)) { + if (left < 5) { left = targetOffsetLeft + targetWidth + angleSize; } + if (left + width > app.width) { left = app.width - width - 5; } + $angleEl.removeClass('on-right').addClass('on-left'); + } + angleTop = ((height / 2) - angleSize) + diff; + angleTop = Math.max(Math.min(angleTop, height - (angleSize * 2) - 13), 13); + $angleEl.css({ top: (angleTop + "px") }); + } + } + + // Apply Styles + $el.css({ top: (top + "px"), left: (left + "px") }); + }; + + return Popover; + }(Modal)); + + var Popover$1 = { + name: 'popover', + params: { + popover: { + backdrop: true, + backdropEl: undefined, + closeByBackdropClick: true, + closeByOutsideClick: true, + closeOnEscape: false, + }, + }, + static: { + Popover: Popover, + }, + create: function create() { + var app = this; + app.popover = Utils.extend( + ModalMethods({ + app: app, + constructor: Popover, + defaultSelector: '.popover.modal-in', + }), + { + open: function open(popoverEl, targetEl, animate) { + var $popoverEl = $(popoverEl); + if ($popoverEl.length > 1) { + // check if same popover in other page + var $targetPage = $(targetEl).parents('.page'); + if ($targetPage.length) { + $popoverEl.each(function (index, el) { + var $el = $(el); + if ($el.parents($targetPage)[0] === $targetPage[0]) { + $popoverEl = $el; + } + }); + } + } + if ($popoverEl.length > 1) { + $popoverEl = $popoverEl.eq($popoverEl.length - 1); + } + var popover = $popoverEl[0].f7Modal; + var data = $popoverEl.dataset(); + if (!popover) { + popover = new Popover(app, Object.assign( + { + el: $popoverEl, + targetEl: targetEl, + }, + data + )); + } + return popover.open(targetEl, animate); + }, + } + ); + }, + clicks: { + '.popover-open': function openPopover($clickedEl, data) { + if ( data === void 0 ) data = {}; + + var app = this; + app.popover.open(data.popover, $clickedEl, data.animate); + }, + '.popover-close': function closePopover($clickedEl, data) { + if ( data === void 0 ) data = {}; + + var app = this; + app.popover.close(data.popover, data.animate, $clickedEl); + }, + }, + }; + + /* eslint indent: ["off"] */ + + var Actions = /*@__PURE__*/(function (Modal) { + function Actions(app, params) { + var extendedParams = Utils.extend( + { on: {} }, + app.params.actions, + params + ); + + // Extends with open/close Modal methods; + Modal.call(this, app, extendedParams); + + var actions = this; + + actions.params = extendedParams; + + // Buttons + var groups; + if (actions.params.buttons) { + groups = actions.params.buttons; + if (!Array.isArray(groups[0])) { groups = [groups]; } + } + actions.groups = groups; + + // Find Element + var $el; + if (actions.params.el) { + $el = $(actions.params.el).eq(0); + } else if (actions.params.content) { + $el = $(actions.params.content).filter(function (elIndex, node) { return node.nodeType === 1; }).eq(0); + } else if (actions.params.buttons) { + if (actions.params.convertToPopover) { + actions.popoverHtml = actions.renderPopover(); + } + actions.actionsHtml = actions.render(); + } + + if ($el && $el.length > 0 && $el[0].f7Modal) { + return $el[0].f7Modal; + } + + if ($el && $el.length === 0 && !(actions.actionsHtml || actions.popoverHtml)) { + return actions.destroy(); + } + + // Backdrop + var $backdropEl; + if (actions.params.backdrop && actions.params.backdropEl) { + $backdropEl = $(actions.params.backdropEl); + } else if (actions.params.backdrop) { + $backdropEl = app.root.children('.actions-backdrop'); + if ($backdropEl.length === 0) { + $backdropEl = $('
'); + app.root.append($backdropEl); + } + } + + var originalOpen = actions.open; + var originalClose = actions.close; + + var popover; + function buttonOnClick(e) { + var $buttonEl = $(this); + var buttonIndex; + var groupIndex; + if ($buttonEl.hasClass('list-button') || $buttonEl.hasClass('item-link')) { + buttonIndex = $buttonEl.parents('li').index(); + groupIndex = $buttonEl.parents('.list').index(); + } else { + buttonIndex = $buttonEl.index(); + groupIndex = $buttonEl.parents('.actions-group').index(); + } + if (typeof groups !== 'undefined') { + var button = groups[groupIndex][buttonIndex]; + if (button.onClick) { button.onClick(actions, e); } + if (actions.params.onClick) { actions.params.onClick(actions, e); } + if (button.close !== false) { actions.close(); } + } + } + actions.open = function open(animate) { + var convertToPopover = false; + var ref = actions.params; + var targetEl = ref.targetEl; + var targetX = ref.targetX; + var targetY = ref.targetY; + var targetWidth = ref.targetWidth; + var targetHeight = ref.targetHeight; + if (actions.params.convertToPopover && (targetEl || (targetX !== undefined && targetY !== undefined))) { + // Popover + if ( + actions.params.forceToPopover + || (app.device.ios && app.device.ipad) + || app.width >= 768 + || (app.device.desktop && app.theme === 'aurora') + ) { + convertToPopover = true; + } + } + if (convertToPopover && actions.popoverHtml) { + popover = app.popover.create({ + content: actions.popoverHtml, + backdrop: actions.params.backdrop, + targetEl: targetEl, + targetX: targetX, + targetY: targetY, + targetWidth: targetWidth, + targetHeight: targetHeight, + on: { + open: function open() { + if (!actions.$el) { + actions.$el = popover.$el; + } + actions.$el.trigger(("modal:open " + (actions.type.toLowerCase()) + ":open")); + actions.emit(("local::open modalOpen " + (actions.type) + "Open"), actions); + }, + opened: function opened() { + if (!actions.$el) { + actions.$el = popover.$el; + } + actions.$el.trigger(("modal:opened " + (actions.type.toLowerCase()) + ":opened")); + actions.emit(("local::opened modalOpened " + (actions.type) + "Opened"), actions); + }, + close: function close() { + if (!actions.$el) { + actions.$el = popover.$el; + } + actions.$el.trigger(("modal:close " + (actions.type.toLowerCase()) + ":close")); + actions.emit(("local::close modalClose " + (actions.type) + "Close"), actions); + }, + closed: function closed() { + if (!actions.$el) { + actions.$el = popover.$el; + } + actions.$el.trigger(("modal:closed " + (actions.type.toLowerCase()) + ":closed")); + actions.emit(("local::closed modalClosed " + (actions.type) + "Closed"), actions); + }, + }, + }); + popover.open(animate); + popover.once('popoverOpened', function () { + popover.$el.find('.list-button, .item-link').each(function (groupIndex, buttonEl) { + $(buttonEl).on('click', buttonOnClick); + }); + }); + popover.once('popoverClosed', function () { + popover.$el.find('.list-button, .item-link').each(function (groupIndex, buttonEl) { + $(buttonEl).off('click', buttonOnClick); + }); + Utils.nextTick(function () { + popover.destroy(); + popover = undefined; + }); + }); + } else { + actions.$el = actions.actionsHtml ? $(actions.actionsHtml) : actions.$el; + actions.$el[0].f7Modal = actions; + if (actions.groups) { + actions.$el.find('.actions-button').each(function (groupIndex, buttonEl) { + $(buttonEl).on('click', buttonOnClick); + }); + actions.once('actionsClosed', function () { + actions.$el.find('.actions-button').each(function (groupIndex, buttonEl) { + $(buttonEl).off('click', buttonOnClick); + }); + }); + } + actions.el = actions.$el[0]; + originalOpen.call(actions, animate); + } + return actions; + }; + + actions.close = function close(animate) { + if (popover) { + popover.close(animate); + } else { + originalClose.call(actions, animate); + } + return actions; + }; + + Utils.extend(actions, { + app: app, + $el: $el, + el: $el ? $el[0] : undefined, + $backdropEl: $backdropEl, + backdropEl: $backdropEl && $backdropEl[0], + type: 'actions', + }); + + function handleClick(e) { + var target = e.target; + var $target = $(target); + var keyboardOpened = !app.device.desktop && app.device.cordova && ((win.Keyboard && win.Keyboard.isVisible) || (win.cordova.plugins && win.cordova.plugins.Keyboard && win.cordova.plugins.Keyboard.isVisible)); + if (keyboardOpened) { return; } + if ($target.closest(actions.el).length === 0) { + if ( + actions.params.closeByBackdropClick + && actions.params.backdrop + && actions.backdropEl + && actions.backdropEl === target + ) { + actions.close(); + } else if (actions.params.closeByOutsideClick) { + actions.close(); + } + } + } + + function onKeyDown(e) { + var keyCode = e.keyCode; + if (keyCode === 27 && actions.params.closeOnEscape) { + actions.close(); + } + } + + if (actions.params.closeOnEscape) { + actions.on('open', function () { + $(doc).on('keydown', onKeyDown); + }); + actions.on('close', function () { + $(doc).off('keydown', onKeyDown); + }); + } + + actions.on('opened', function () { + if (actions.params.closeByBackdropClick || actions.params.closeByOutsideClick) { + app.on('click', handleClick); + } + }); + actions.on('close', function () { + if (actions.params.closeByBackdropClick || actions.params.closeByOutsideClick) { + app.off('click', handleClick); + } + }); + + if ($el) { + $el[0].f7Modal = actions; + } + + return actions; + } + + if ( Modal ) Actions.__proto__ = Modal; + Actions.prototype = Object.create( Modal && Modal.prototype ); + Actions.prototype.constructor = Actions; + + Actions.prototype.render = function render () { + var actions = this; + if (actions.params.render) { return actions.params.render.call(actions, actions); } + var groups = actions.groups; + var cssClass = actions.params.cssClass; + return ("\n
\n " + (groups.map(function (group) { return ("
\n " + (group.map(function (button) { + var buttonClasses = [("actions-" + (button.label ? 'label' : 'button'))]; + var color = button.color; + var bg = button.bg; + var bold = button.bold; + var disabled = button.disabled; + var label = button.label; + var text = button.text; + var icon = button.icon; + if (color) { buttonClasses.push(("color-" + color)); } + if (bg) { buttonClasses.push(("bg-color-" + bg)); } + if (bold) { buttonClasses.push('actions-button-bold'); } + if (disabled) { buttonClasses.push('disabled'); } + if (label) { + return ("
" + text + "
"); + } + return ("\n
\n " + (icon ? ("
" + icon + "
") : '') + "\n
" + text + "
\n
").trim(); + }).join('')) + "\n
"); }).join('')) + "\n
\n ").trim(); + }; + + Actions.prototype.renderPopover = function renderPopover () { + var actions = this; + if (actions.params.renderPopover) { return actions.params.renderPopover.call(actions, actions); } + var groups = actions.groups; + var cssClass = actions.params.cssClass; + return ("\n
\n
\n " + (groups.map(function (group) { return ("\n
\n
    \n " + (group.map(function (button) { + var itemClasses = []; + var color = button.color; + var bg = button.bg; + var bold = button.bold; + var disabled = button.disabled; + var label = button.label; + var text = button.text; + var icon = button.icon; + if (color) { itemClasses.push(("color-" + color)); } + if (bg) { itemClasses.push(("bg-color-" + bg)); } + if (bold) { itemClasses.push('popover-from-actions-bold'); } + if (disabled) { itemClasses.push('disabled'); } + if (label) { + itemClasses.push('popover-from-actions-label'); + return ("
  • " + text + "
  • "); + } + if (icon) { + itemClasses.push('item-link item-content'); + return ("\n
  • \n \n
    \n " + icon + "\n
    \n
    \n
    \n " + text + "\n
    \n
    \n
    \n
  • \n "); + } + itemClasses.push('list-button'); + return ("\n
  • \n " + text + "\n
  • \n "); + }).join('')) + "\n
\n
\n "); }).join('')) + "\n
\n
\n ").trim(); + }; + + return Actions; + }(Modal)); + + var Actions$1 = { + name: 'actions', + params: { + actions: { + convertToPopover: true, + forceToPopover: false, + backdrop: true, + backdropEl: undefined, + cssClass: null, + closeByBackdropClick: true, + closeOnEscape: false, + render: null, + renderPopover: null, + }, + }, + static: { + Actions: Actions, + }, + create: function create() { + var app = this; + app.actions = ModalMethods({ + app: app, + constructor: Actions, + defaultSelector: '.actions-modal.modal-in', + }); + }, + clicks: { + '.actions-open': function openActions($clickedEl, data) { + if ( data === void 0 ) data = {}; + + var app = this; + app.actions.open(data.actions, data.animate, $clickedEl); + }, + '.actions-close': function closeActions($clickedEl, data) { + if ( data === void 0 ) data = {}; + + var app = this; + app.actions.close(data.actions, data.animate, $clickedEl); + }, + }, + }; + + var Sheet = /*@__PURE__*/(function (Modal) { + function Sheet(app, params) { + var extendedParams = Utils.extend( + { on: {} }, + app.params.sheet, + params + ); + + // Extends with open/close Modal methods; + Modal.call(this, app, extendedParams); + + var sheet = this; + + sheet.params = extendedParams; + if (typeof sheet.params.backdrop === 'undefined') { + sheet.params.backdrop = app.theme !== 'ios'; + } + + // Find Element + var $el; + if (!sheet.params.el) { + $el = $(sheet.params.content).filter(function (elIndex, node) { return node.nodeType === 1; }).eq(0); + } else { + $el = $(sheet.params.el).eq(0); + } + + if ($el && $el.length > 0 && $el[0].f7Modal) { + return $el[0].f7Modal; + } + + if ($el.length === 0) { + return sheet.destroy(); + } + var $backdropEl; + + if (sheet.params.backdrop && sheet.params.backdropEl) { + $backdropEl = $(sheet.params.backdropEl); + } else if (sheet.params.backdrop) { + $backdropEl = app.root.children('.sheet-backdrop'); + if ($backdropEl.length === 0) { + $backdropEl = $('
'); + app.root.append($backdropEl); + } + } + + Utils.extend(sheet, { + app: app, + push: $el.hasClass('sheet-modal-push') || sheet.params.push, + $el: $el, + el: $el[0], + $backdropEl: $backdropEl, + backdropEl: $backdropEl && $backdropEl[0], + type: 'sheet', + $htmlEl: $('html'), + }); + + if (sheet.params.push) { + $el.addClass('sheet-modal-push'); + } + + var $pageContentEl; + function scrollToElementOnOpen() { + var $scrollEl = $(sheet.params.scrollToEl).eq(0); + if ($scrollEl.length === 0) { return; } + $pageContentEl = $scrollEl.parents('.page-content'); + if ($pageContentEl.length === 0) { return; } + + var paddingTop = parseInt($pageContentEl.css('padding-top'), 10); + var paddingBottom = parseInt($pageContentEl.css('padding-bottom'), 10); + var pageHeight = $pageContentEl[0].offsetHeight - paddingTop - $el.height(); + var pageScrollHeight = $pageContentEl[0].scrollHeight - paddingTop - $el.height(); + var pageScroll = $pageContentEl.scrollTop(); + + var newPaddingBottom; + + var scrollElTop = ($scrollEl.offset().top - paddingTop) + $scrollEl[0].offsetHeight; + if (scrollElTop > pageHeight) { + var scrollTop = (pageScroll + scrollElTop) - pageHeight; + if (scrollTop + pageHeight > pageScrollHeight) { + newPaddingBottom = ((scrollTop + pageHeight) - pageScrollHeight) + paddingBottom; + if (pageHeight === pageScrollHeight) { + newPaddingBottom = $el.height(); + } + $pageContentEl.css({ + 'padding-bottom': (newPaddingBottom + "px"), + }); + } + $pageContentEl.scrollTop(scrollTop, 300); + } + } + + function scrollToElementOnClose() { + if ($pageContentEl && $pageContentEl.length > 0) { + $pageContentEl.css({ + 'padding-bottom': '', + }); + } + } + function handleClick(e) { + var target = e.target; + var $target = $(target); + var keyboardOpened = !app.device.desktop && app.device.cordova && ((win.Keyboard && win.Keyboard.isVisible) || (win.cordova.plugins && win.cordova.plugins.Keyboard && win.cordova.plugins.Keyboard.isVisible)); + if (keyboardOpened) { return; } + if ($target.closest(sheet.el).length === 0) { + if ( + sheet.params.closeByBackdropClick + && sheet.params.backdrop + && sheet.backdropEl + && sheet.backdropEl === target + ) { + sheet.close(); + } else if (sheet.params.closeByOutsideClick) { + sheet.close(); + } + } + } + + function onKeyDown(e) { + var keyCode = e.keyCode; + if (keyCode === 27 && sheet.params.closeOnEscape) { + sheet.close(); + } + } + + var pushOffset; + + function pushViewScale(offset) { + return (app.height - offset * 2) / app.height; + } + + + var isTouched = false; + var startTouch; + var currentTouch; + var isScrolling; + var touchStartTime; + var touchesDiff; + var isMoved = false; + var isTopSheetModal; + var swipeStepTranslate; + var startTranslate; + var currentTranslate; + var sheetElOffsetHeight; + var minTranslate; + var maxTranslate; + var $pushViewEl; + var pushBorderRadius; + var sheetPageContentEl; + var sheetPageContentScrollTop; + var sheetPageContentScrollHeight; + var sheetPageContentOffsetHeight; + + function handleTouchStart(e) { + if (isTouched || !(sheet.params.swipeToClose || sheet.params.swipeToStep)) { return; } + if (sheet.params.swipeHandler && $(e.target).closest(sheet.params.swipeHandler).length === 0) { + return; + } + isTouched = true; + isMoved = false; + startTouch = { + x: e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX, + y: e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY, + }; + touchStartTime = Utils.now(); + isScrolling = undefined; + isTopSheetModal = $el.hasClass('sheet-modal-top'); + if (!sheet.params.swipeHandler && e.type === 'touchstart') { + sheetPageContentEl = $(e.target).closest('.page-content')[0]; + } + } + function handleTouchMove(e) { + if (!isTouched) { return; } + currentTouch = { + x: e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX, + y: e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY, + }; + + if (typeof isScrolling === 'undefined') { + isScrolling = !!(isScrolling || Math.abs(currentTouch.x - startTouch.x) > Math.abs(currentTouch.y - startTouch.y)); + } + if (isScrolling) { + isTouched = false; + isMoved = false; + return; + } + + touchesDiff = startTouch.y - currentTouch.y; + + var direction = touchesDiff < 0 ? 'to-bottom' : 'to-top'; + + if (!isMoved) { + if (sheetPageContentEl && !$el.hasClass('modal-in-swipe-step')) { + sheetPageContentScrollTop = sheetPageContentEl.scrollTop; + sheetPageContentScrollHeight = sheetPageContentEl.scrollHeight; + sheetPageContentOffsetHeight = sheetPageContentEl.offsetHeight; + if ( + !(sheetPageContentScrollHeight === sheetPageContentOffsetHeight) + && !(direction === 'to-bottom' && sheetPageContentScrollTop === 0) + && !(direction === 'to-top' && sheetPageContentScrollTop === (sheetPageContentScrollHeight - sheetPageContentOffsetHeight)) + ) { + $el.transform(''); + isTouched = false; + isMoved = false; + return; + } + } + if (sheet.push && pushOffset) { + $pushViewEl = app.root.children('.view, .views'); + } + sheetElOffsetHeight = $el[0].offsetHeight; + startTranslate = Utils.getTranslate($el[0], 'y'); + if (isTopSheetModal) { + minTranslate = sheet.params.swipeToClose ? -sheetElOffsetHeight : -swipeStepTranslate; + maxTranslate = 0; + } else { + minTranslate = 0; + maxTranslate = sheet.params.swipeToClose ? sheetElOffsetHeight : swipeStepTranslate; + } + isMoved = true; + } + currentTranslate = startTranslate - touchesDiff; + currentTranslate = Math.min(Math.max(currentTranslate, minTranslate), maxTranslate); + e.preventDefault(); + if (sheet.push && pushOffset) { + var progress = (currentTranslate - startTranslate) / sheetElOffsetHeight; + if (sheet.params.swipeToStep) { + if (isTopSheetModal) { + progress = (currentTranslate / swipeStepTranslate); + } else { + progress = 1 - (swipeStepTranslate - currentTranslate) / swipeStepTranslate; + } + } + progress = Math.abs(progress); + progress = Math.min(Math.max(progress, 0), 1); + var pushProgress = 1 - progress; + var scale = 1 - (1 - pushViewScale(pushOffset)) * pushProgress; + $pushViewEl.transition(0).transform(("translate3d(0,0,0) scale(" + scale + ")")); + if (sheet.params.swipeToStep) { + $pushViewEl.css('border-radius', ((pushBorderRadius * pushProgress) + "px")); + } + } + $el + .transition(0) + .transform(("translate3d(0," + currentTranslate + "px,0)")); + if (sheet.params.swipeToStep) { + var progress$1; + if (isTopSheetModal) { + progress$1 = 1 - (currentTranslate / swipeStepTranslate); + } else { + progress$1 = (swipeStepTranslate - currentTranslate) / swipeStepTranslate; + } + progress$1 = Math.min(Math.max(progress$1, 0), 1); + $el.trigger('sheet:stepprogress', progress$1); + sheet.emit('local::stepProgress sheetStepProgress', sheet, progress$1); + } + } + function handleTouchEnd() { + isTouched = false; + if (!isMoved) { + return; + } + isMoved = false; + $el.transform('').transition(''); + if (sheet.push && pushOffset) { + $pushViewEl.transition('').transform(''); + $pushViewEl.css('border-radius', ''); + } + + var direction = touchesDiff < 0 ? 'to-bottom' : 'to-top'; + + var diff = Math.abs(touchesDiff); + if (diff === 0 || currentTranslate === startTranslate) { return; } + + var timeDiff = (new Date()).getTime() - touchStartTime; + + if (!sheet.params.swipeToStep) { + if (direction !== (isTopSheetModal ? 'to-top' : 'to-bottom')) { + return; + } + if ((timeDiff < 300 && diff > 20) || (timeDiff >= 300 && diff > (sheetElOffsetHeight / 2))) { + sheet.close(); + } + return; + } + + var openDirection = isTopSheetModal ? 'to-bottom' : 'to-top'; + var closeDirection = isTopSheetModal ? 'to-top' : 'to-bottom'; + var absCurrentTranslate = Math.abs(currentTranslate); + var absSwipeStepTranslate = Math.abs(swipeStepTranslate); + + if (timeDiff < 300 && diff > 10) { + if (direction === openDirection && absCurrentTranslate < absSwipeStepTranslate) { + // open step + $el.removeClass('modal-in-swipe-step'); + $el.trigger('sheet:stepprogress', 1); + sheet.emit('local::stepProgress sheetStepProgress', sheet, 1); + $el.trigger('sheet:stepopen'); + sheet.emit('local::stepOpen sheetStepOpen', sheet); + if (sheet.push && pushOffset) { + sheet.$htmlEl[0].style.setProperty('--f7-sheet-push-scale', pushViewScale(pushOffset)); + $pushViewEl.css('border-radius', ''); + } + } + if (direction === closeDirection && absCurrentTranslate > absSwipeStepTranslate) { + // close sheet + if (sheet.params.swipeToClose) { + sheet.close(); + } else { + // close step + $el.addClass('modal-in-swipe-step'); + $el.trigger('sheet:stepprogress', 0); + sheet.emit('local::stepProgress sheetStepProgress', sheet, 0); + $el.trigger('sheet:stepclose'); + sheet.emit('local::stepClose sheetStepClose', sheet); + if (sheet.push && pushOffset) { + sheet.$htmlEl[0].style.removeProperty('--f7-sheet-push-scale'); + $pushViewEl.css('border-radius', '0px'); + } + } + } + if (direction === closeDirection && absCurrentTranslate <= absSwipeStepTranslate) { + // close step + $el.addClass('modal-in-swipe-step'); + $el.trigger('sheet:stepprogress', 0); + sheet.emit('local::stepProgress sheetStepProgress', sheet, 0); + $el.trigger('sheet:stepclose'); + sheet.emit('local::stepClose sheetStepClose', sheet); + if (sheet.push && pushOffset) { + sheet.$htmlEl[0].style.removeProperty('--f7-sheet-push-scale'); + $pushViewEl.css('border-radius', '0px'); + } + } + return; + } + if (timeDiff >= 300) { + var stepOpened = !$el.hasClass('modal-in-swipe-step'); + if (!stepOpened) { + if (absCurrentTranslate < (absSwipeStepTranslate / 2)) { + // open step + $el.removeClass('modal-in-swipe-step'); + $el.trigger('sheet:stepprogress', 1); + sheet.emit('local::stepProgress sheetStepProgress', sheet, 1); + $el.trigger('sheet:stepopen'); + sheet.emit('local::stepOpen sheetStepOpen', sheet); + if (sheet.push && pushOffset) { + sheet.$htmlEl[0].style.setProperty('--f7-sheet-push-scale', pushViewScale(pushOffset)); + $pushViewEl.css('border-radius', ''); + } + } else if ((absCurrentTranslate - absSwipeStepTranslate) > (sheetElOffsetHeight - absSwipeStepTranslate) / 2) { + // close sheet + if (sheet.params.swipeToClose) { sheet.close(); } + } + } else if (stepOpened) { + if (absCurrentTranslate > absSwipeStepTranslate + (sheetElOffsetHeight - absSwipeStepTranslate) / 2) { + // close sheet + if (sheet.params.swipeToClose) { sheet.close(); } + } else if (absCurrentTranslate > absSwipeStepTranslate / 2) { + // close step + $el.addClass('modal-in-swipe-step'); + $el.trigger('sheet:stepprogress', 0); + sheet.emit('local::stepProgress sheetStepProgress', sheet, 0); + $el.trigger('sheet:stepclose'); + sheet.emit('local::stepClose sheetStepClose', sheet); + if (sheet.push && pushOffset) { + sheet.$htmlEl[0].style.removeProperty('--f7-sheet-push-scale'); + $pushViewEl.css('border-radius', '0px'); + } + } + } + } + } + + sheet.setSwipeStep = function setSwipeStep(byResize) { + if ( byResize === void 0 ) byResize = true; + + var $swipeStepEl = $el.find('.sheet-modal-swipe-step').eq(0); + if (!$swipeStepEl.length) { return; } + if ($el.hasClass('sheet-modal-top')) { + swipeStepTranslate = -($swipeStepEl.offset().top - $el.offset().top + $swipeStepEl[0].offsetHeight); + } else { + swipeStepTranslate = $el[0].offsetHeight - ($swipeStepEl.offset().top - $el.offset().top + $swipeStepEl[0].offsetHeight); + } + $el[0].style.setProperty('--f7-sheet-swipe-step', (swipeStepTranslate + "px")); + if (!byResize) { + $el.addClass('modal-in-swipe-step'); + } + }; + + function onResize() { + sheet.setSwipeStep(true); + } + + var passive = Support.passiveListener ? { passive: true } : false; + if (sheet.params.swipeToClose || sheet.params.swipeToStep) { + $el.on(app.touchEvents.start, handleTouchStart, passive); + app.on('touchmove', handleTouchMove); + app.on('touchend:passive', handleTouchEnd); + sheet.once('sheetDestroy', function () { + $el.off(app.touchEvents.start, handleTouchStart, passive); + app.off('touchmove', handleTouchMove); + app.off('touchend:passive', handleTouchEnd); + }); + } + + sheet.on('open', function () { + if (sheet.params.closeOnEscape) { + $(doc).on('keydown', onKeyDown); + } + $el.prevAll('.popup.modal-in').addClass('popup-behind'); + if (sheet.params.swipeToStep) { + sheet.setSwipeStep(false); + app.on('resize', onResize); + } + if (sheet.params.scrollToEl) { + scrollToElementOnOpen(); + } + + if (sheet.push) { + pushOffset = parseInt($el.css('--f7-sheet-push-offset'), 10); + if (Number.isNaN(pushOffset)) { pushOffset = 0; } + if (pushOffset) { + $el.addClass('sheet-modal-push'); + sheet.$htmlEl.addClass('with-modal-sheet-push'); + if (!sheet.params.swipeToStep) { + sheet.$htmlEl[0].style.setProperty('--f7-sheet-push-scale', pushViewScale(pushOffset)); + } else { + $pushViewEl = app.root.children('.view, .views'); + pushBorderRadius = parseFloat($el.css(("border-" + (isTopSheetModal ? 'bottom' : 'top') + "-left-radius"))); + $pushViewEl.css('border-radius', '0px'); + } + } + } + }); + sheet.on('opened', function () { + if (sheet.params.closeByOutsideClick || sheet.params.closeByBackdropClick) { + app.on('click', handleClick); + } + }); + sheet.on('close', function () { + if (sheet.params.swipeToStep) { + $el.removeClass('modal-in-swipe-step'); + app.off('resize', onResize); + } + if (sheet.params.closeOnEscape) { + $(doc).off('keydown', onKeyDown); + } + if (sheet.params.scrollToEl) { + scrollToElementOnClose(); + } + if (sheet.params.closeByOutsideClick || sheet.params.closeByBackdropClick) { + app.off('click', handleClick); + } + $el.prevAll('.popup.modal-in').eq(0).removeClass('popup-behind'); + if (sheet.push && pushOffset) { + sheet.$htmlEl.removeClass('with-modal-sheet-push'); + sheet.$htmlEl.addClass('with-modal-sheet-push-closing'); + } + }); + sheet.on('closed', function () { + if (sheet.push && pushOffset) { + sheet.$htmlEl.removeClass('with-modal-sheet-push-closing'); + sheet.$htmlEl[0].style.removeProperty('--f7-sheet-push-scale'); + } + }); + + sheet.stepOpen = function stepOpen() { + $el.removeClass('modal-in-swipe-step'); + if (sheet.push) { + if (!pushOffset) { + pushOffset = parseInt($el.css('--f7-sheet-push-offset'), 10); + if (Number.isNaN(pushOffset)) { pushOffset = 0; } + } + if (pushOffset) { + sheet.$htmlEl[0].style.setProperty('--f7-sheet-push-scale', pushViewScale(pushOffset)); + } + } + }; + sheet.stepClose = function stepClose() { + $el.addClass('modal-in-swipe-step'); + if (sheet.push) { + sheet.$htmlEl[0].style.removeProperty('--f7-sheet-push-scale'); + } + }; + sheet.stepToggle = function stepToggle() { + $el.toggleClass('modal-in-swipe-step'); + }; + + $el[0].f7Modal = sheet; + + return sheet; + } + + if ( Modal ) Sheet.__proto__ = Modal; + Sheet.prototype = Object.create( Modal && Modal.prototype ); + Sheet.prototype.constructor = Sheet; + + return Sheet; + }(Modal)); + + var Sheet$1 = { + name: 'sheet', + params: { + sheet: { + push: false, + backdrop: undefined, + backdropEl: undefined, + closeByBackdropClick: true, + closeByOutsideClick: false, + closeOnEscape: false, + swipeToClose: false, + swipeToStep: false, + swipeHandler: null, + }, + }, + static: { + Sheet: Sheet, + }, + create: function create() { + var app = this; + app.sheet = Utils.extend( + {}, + ModalMethods({ + app: app, + constructor: Sheet, + defaultSelector: '.sheet-modal.modal-in', + }), + { + stepOpen: function stepOpen(sheet) { + var sheetInstance = app.sheet.get(sheet); + if (sheetInstance && sheetInstance.stepOpen) { return sheetInstance.stepOpen(); } + return undefined; + }, + stepClose: function stepClose(sheet) { + var sheetInstance = app.sheet.get(sheet); + if (sheetInstance && sheetInstance.stepClose) { return sheetInstance.stepClose(); } + return undefined; + }, + stepToggle: function stepToggle(sheet) { + var sheetInstance = app.sheet.get(sheet); + if (sheetInstance && sheetInstance.stepToggle) { return sheetInstance.stepToggle(); } + return undefined; + }, + } + ); + }, + clicks: { + '.sheet-open': function openSheet($clickedEl, data) { + if ( data === void 0 ) data = {}; + + var app = this; + if ($('.sheet-modal.modal-in').length > 0 && data.sheet && $(data.sheet)[0] !== $('.sheet-modal.modal-in')[0]) { + app.sheet.close('.sheet-modal.modal-in'); + } + app.sheet.open(data.sheet, data.animate, $clickedEl); + }, + '.sheet-close': function closeSheet($clickedEl, data) { + if ( data === void 0 ) data = {}; + + var app = this; + app.sheet.close(data.sheet, data.animate, $clickedEl); + }, + }, + }; + + var Toast = /*@__PURE__*/(function (Modal) { + function Toast(app, params) { + var extendedParams = Utils.extend({ + on: {}, + }, app.params.toast, params); + + // Extends with open/close Modal methods; + Modal.call(this, app, extendedParams); + + var toast = this; + + toast.app = app; + + toast.params = extendedParams; + + var ref = toast.params; + var closeButton = ref.closeButton; + var closeTimeout = ref.closeTimeout; + + var $el; + if (!toast.params.el) { + // Find Element + var toastHtml = toast.render(); + + $el = $(toastHtml); + } else { + $el = $(toast.params.el); + } + + if ($el && $el.length > 0 && $el[0].f7Modal) { + return $el[0].f7Modal; + } + + if ($el.length === 0) { + return toast.destroy(); + } + + Utils.extend(toast, { + $el: $el, + el: $el[0], + type: 'toast', + }); + + $el[0].f7Modal = toast; + + if (closeButton) { + $el.find('.toast-button').on('click', function () { + toast.emit('local::closeButtonClick toastCloseButtonClick', toast); + toast.close(); + }); + + toast.on('beforeDestroy', function () { + $el.find('.toast-button').off('click'); + }); + } + + var timeoutId; + toast.on('open', function () { + $('.toast.modal-in').each(function (index, openedEl) { + var toastInstance = app.toast.get(openedEl); + if (openedEl !== toast.el && toastInstance) { + toastInstance.close(); + } + }); + if (closeTimeout) { + timeoutId = Utils.nextTick(function () { + toast.close(); + }, closeTimeout); + } + }); + toast.on('close', function () { + win.clearTimeout(timeoutId); + }); + + if (toast.params.destroyOnClose) { + toast.once('closed', function () { + setTimeout(function () { + toast.destroy(); + }, 0); + }); + } + + return toast; + } + + if ( Modal ) Toast.__proto__ = Modal; + Toast.prototype = Object.create( Modal && Modal.prototype ); + Toast.prototype.constructor = Toast; + + Toast.prototype.render = function render () { + var toast = this; + if (toast.params.render) { return toast.params.render.call(toast, toast); } + var ref = toast.params; + var position = ref.position; + var horizontalPosition = ref.horizontalPosition; + var cssClass = ref.cssClass; + var icon = ref.icon; + var text = ref.text; + var closeButton = ref.closeButton; + var closeButtonColor = ref.closeButtonColor; + var closeButtonText = ref.closeButtonText; + var horizontalClass = position === 'top' || position === 'bottom' + ? ("toast-horizontal-" + horizontalPosition) + : ''; + return ("\n
\n
\n " + (icon ? ("
" + icon + "
") : '') + "\n
" + text + "
\n " + (closeButton && !icon ? ("\n " + closeButtonText + "\n ").trim() : '') + "\n
\n
\n ").trim(); + }; + + return Toast; + }(Modal)); + + var Toast$1 = { + name: 'toast', + static: { + Toast: Toast, + }, + create: function create() { + var app = this; + app.toast = Utils.extend( + {}, + ModalMethods({ + app: app, + constructor: Toast, + defaultSelector: '.toast.modal-in', + }), + { + // Shortcuts + show: function show(params) { + Utils.extend(params, { + destroyOnClose: true, + }); + return new Toast(app, params).open(); + }, + } + ); + }, + params: { + toast: { + icon: null, + text: null, + position: 'bottom', + horizontalPosition: 'left', + closeButton: false, + closeButtonColor: null, + closeButtonText: 'Ok', + closeTimeout: null, + cssClass: null, + render: null, + }, + }, + }; + + var Preloader = { + init: function init(el) { + var app = this; + var $el = $(el); + if ($el.length === 0 || $el.children('.preloader-inner').length > 0 || $el.children('.preloader-inner-line').length > 0) { return; } + $el.append(Utils[((app.theme) + "PreloaderContent")]); + }, + // Modal + visible: false, + show: function show(color) { + if ( color === void 0 ) color = 'white'; + + var app = this; + if (Preloader.visible) { return; } + var preloaderInner = Utils[((app.theme) + "PreloaderContent")] || ''; + $('html').addClass('with-modal-preloader'); + app.root.append(("\n
\n
\n
" + preloaderInner + "
\n
\n ")); + Preloader.visible = true; + }, + showIn: function showIn(el, color) { + if ( color === void 0 ) color = 'white'; + + var app = this; + var preloaderInner = Utils[((app.theme) + "PreloaderContent")] || ''; + $(el || 'html').addClass('with-modal-preloader'); + $(el || app.root).append(("\n
\n
\n
" + preloaderInner + "
\n
\n ")); + }, + hide: function hide() { + var app = this; + if (!Preloader.visible) { return; } + $('html').removeClass('with-modal-preloader'); + app.root.find('.preloader-backdrop, .preloader-modal').remove(); + Preloader.visible = false; + }, + hideIn: function hideIn(el) { + var app = this; + $(el || 'html').removeClass('with-modal-preloader'); + $(el || app.root).find('.preloader-backdrop, .preloader-modal').remove(); + }, + }; + var Preloader$1 = { + name: 'preloader', + create: function create() { + var app = this; + Utils.extend(app, { + preloader: { + init: Preloader.init.bind(app), + show: Preloader.show.bind(app), + hide: Preloader.hide.bind(app), + showIn: Preloader.showIn.bind(app), + hideIn: Preloader.hideIn.bind(app), + }, + }); + }, + on: { + photoBrowserOpen: function photoBrowserOpen(pb) { + var app = this; + pb.$el.find('.preloader').each(function (index, preloaderEl) { + app.preloader.init(preloaderEl); + }); + }, + tabMounted: function tabMounted(tabEl) { + var app = this; + $(tabEl).find('.preloader').each(function (index, preloaderEl) { + app.preloader.init(preloaderEl); + }); + }, + pageInit: function pageInit(page) { + var app = this; + page.$el.find('.preloader').each(function (index, preloaderEl) { + app.preloader.init(preloaderEl); + }); + }, + }, + vnode: { + preloader: { + insert: function insert(vnode) { + var app = this; + var preloaderEl = vnode.elm; + app.preloader.init(preloaderEl); + }, + }, + }, + }; + + var Progressbar = { + set: function set() { + var assign; + + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + var app = this; + var el = args[0]; + var progress = args[1]; + var duration = args[2]; + if (typeof args[0] === 'number') { + (assign = args, progress = assign[0], duration = assign[1]); + el = app.root; + } + if (typeof progress === 'undefined' || progress === null) { return el; } + if (!progress) { progress = 0; } + + var $el = $(el || app.root); + if ($el.length === 0) { + return el; + } + var progressNormalized = Math.min(Math.max(progress, 0), 100); + var $progressbarEl; + if ($el.hasClass('progressbar')) { $progressbarEl = $el.eq(0); } + else { + $progressbarEl = $el.children('.progressbar'); + } + if ($progressbarEl.length === 0 || $progressbarEl.hasClass('progressbar-infinite')) { + return $progressbarEl; + } + var $progressbarLine = $progressbarEl.children('span'); + if ($progressbarLine.length === 0) { + $progressbarLine = $(''); + $progressbarEl.append($progressbarLine); + } + $progressbarLine + .transition(typeof duration !== 'undefined' ? duration : '') + .transform(("translate3d(" + ((-100 + progressNormalized)) + "%,0,0)")); + + return $progressbarEl[0]; + }, + show: function show() { + var assign, assign$1; + + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + var app = this; + + // '.page', 50, 'multi' + var el = args[0]; + var progress = args[1]; + var color = args[2]; + var type = 'determined'; + + if (args.length === 2) { + if ((typeof args[0] === 'string' || typeof args[0] === 'object') && typeof args[1] === 'string') { + // '.page', 'multi' + (assign = args, el = assign[0], color = assign[1], progress = assign[2]); + type = 'infinite'; + } else if (typeof args[0] === 'number' && typeof args[1] === 'string') { + // 50, 'multi' + (assign$1 = args, progress = assign$1[0], color = assign$1[1]); + el = app.root; + } + } else if (args.length === 1) { + if (typeof args[0] === 'number') { + el = app.root; + progress = args[0]; + } else if (typeof args[0] === 'string') { + type = 'infinite'; + el = app.root; + color = args[0]; + } + } else if (args.length === 0) { + type = 'infinite'; + el = app.root; + } + + var $el = $(el); + if ($el.length === 0) { return undefined; } + + var $progressbarEl; + if ($el.hasClass('progressbar') || $el.hasClass('progressbar-infinite')) { + $progressbarEl = $el; + } else { + $progressbarEl = $el.children('.progressbar:not(.progressbar-out), .progressbar-infinite:not(.progressbar-out)'); + if ($progressbarEl.length === 0) { + $progressbarEl = $(("\n \n " + (type === 'infinite' ? '' : '') + "\n ")); + $el.append($progressbarEl); + } + } + + if (typeof progress !== 'undefined') { + app.progressbar.set($progressbarEl, progress); + } + + return $progressbarEl[0]; + }, + hide: function hide(el, removeAfterHide) { + if ( removeAfterHide === void 0 ) removeAfterHide = true; + + var app = this; + var $el = $(el || app.root); + if ($el.length === 0) { return undefined; } + var $progressbarEl; + if ($el.hasClass('progressbar') || $el.hasClass('progressbar-infinite')) { + $progressbarEl = $el; + } else { + $progressbarEl = $el.children('.progressbar, .progressbar-infinite'); + } + if ($progressbarEl.length === 0 || !$progressbarEl.hasClass('progressbar-in') || $progressbarEl.hasClass('progressbar-out')) { + return $progressbarEl; + } + $progressbarEl + .removeClass('progressbar-in') + .addClass('progressbar-out') + .animationEnd(function () { + if (removeAfterHide) { + $progressbarEl.remove(); + } + }); + return $progressbarEl; + }, + }; + + var Progressbar$1 = { + name: 'progressbar', + create: function create() { + var app = this; + Utils.extend(app, { + progressbar: { + set: Progressbar.set.bind(app), + show: Progressbar.show.bind(app), + hide: Progressbar.hide.bind(app), + }, + }); + }, + on: { + tabMounted: function tabMounted(tabEl) { + var app = this; + $(tabEl).find('.progressbar').each(function (index, progressbarEl) { + var $progressbarEl = $(progressbarEl); + app.progressbar.set($progressbarEl, $progressbarEl.attr('data-progress')); + }); + }, + pageInit: function pageInit(page) { + var app = this; + page.$el.find('.progressbar').each(function (index, progressbarEl) { + var $progressbarEl = $(progressbarEl); + app.progressbar.set($progressbarEl, $progressbarEl.attr('data-progress')); + }); + }, + }, + vnode: { + progressbar: { + insert: function insert(vnode) { + var app = this; + var el = vnode.elm; + app.progressbar.set(el, el.getAttribute('data-progress')); + }, + update: function update(vnode) { + var app = this; + var el = vnode.elm; + app.progressbar.set(el, el.getAttribute('data-progress')); + }, + }, + }, + }; + + var Sortable = { + init: function init() { + var app = this; + var isTouched; + var isMoved; + var touchStartY; + var touchesDiff; + var $sortingEl; + var $sortingItems; + var $sortableContainer; + var sortingElHeight; + var minTop; + var maxTop; + var $insertAfterEl; + var $insertBeforeEl; + var indexFrom; + var $pageEl; + var $pageContentEl; + var pageHeight; + var pageOffset; + var sortingElOffsetLocal; + var sortingElOffsetTop; + var initialScrollTop; + var wasTapHold; + + function handleTouchStart(e, isTapHold) { + isMoved = false; + isTouched = true; + wasTapHold = false; + touchStartY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY; + $sortingEl = $(e.target).closest('li').eq(0); + indexFrom = $sortingEl.index(); + $sortableContainer = $sortingEl.parents('.sortable'); + var $listGroup = $sortingEl.parents('.list-group'); + if ($listGroup.length && $listGroup.parents($sortableContainer).length) { + $sortableContainer = $listGroup; + } + $sortingItems = $sortableContainer.children('ul').children('li:not(.disallow-sorting):not(.no-sorting)'); + if (app.panel) { app.panel.allowOpen = false; } + if (app.swipeout) { app.swipeout.allow = false; } + if (isTapHold) { + $sortingEl.addClass('sorting'); + $sortableContainer.addClass('sortable-sorting'); + wasTapHold = true; + } + } + function handleTouchMove(e) { + if (!isTouched || !$sortingEl) { return; } + var pageY = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY; + if (!isMoved) { + $pageEl = $sortingEl.parents('.page'); + $pageContentEl = $sortingEl.parents('.page-content'); + var paddingTop = parseInt($pageContentEl.css('padding-top'), 10); + var paddingBottom = parseInt($pageContentEl.css('padding-bottom'), 10); + initialScrollTop = $pageContentEl[0].scrollTop; + pageOffset = $pageEl.offset().top + paddingTop; + pageHeight = $pageEl.height() - paddingTop - paddingBottom; + $sortingEl.addClass('sorting'); + $sortableContainer.addClass('sortable-sorting'); + sortingElOffsetLocal = $sortingEl[0].offsetTop; + minTop = $sortingEl[0].offsetTop; + maxTop = $sortingEl.parent().height() - sortingElOffsetLocal - $sortingEl.height(); + sortingElHeight = $sortingEl[0].offsetHeight; + sortingElOffsetTop = $sortingEl.offset().top; + } + isMoved = true; + + e.preventDefault(); + e.f7PreventSwipePanel = true; + + touchesDiff = pageY - touchStartY; + + var translateScrollOffset = $pageContentEl[0].scrollTop - initialScrollTop; + var translate = Math.min(Math.max(touchesDiff + translateScrollOffset, -minTop), maxTop); + $sortingEl.transform(("translate3d(0," + translate + "px,0)")); + + var scrollAddition = 44; + var allowScroll = true; + if ((touchesDiff + translateScrollOffset) + scrollAddition < -minTop) { + allowScroll = false; + } + if ((touchesDiff + translateScrollOffset) - scrollAddition > maxTop) { + allowScroll = false; + } + + $insertBeforeEl = undefined; + $insertAfterEl = undefined; + + var scrollDiff; + if (allowScroll) { + if (sortingElOffsetTop + touchesDiff + sortingElHeight + scrollAddition > pageOffset + pageHeight) { + // To Bottom + scrollDiff = (sortingElOffsetTop + touchesDiff + sortingElHeight + scrollAddition) - (pageOffset + pageHeight); + } + if (sortingElOffsetTop + touchesDiff < pageOffset + scrollAddition) { + // To Top + scrollDiff = (sortingElOffsetTop + touchesDiff) - pageOffset - scrollAddition; + } + if (scrollDiff) { + $pageContentEl[0].scrollTop += scrollDiff; + } + } + + $sortingItems.each(function (index, el) { + var $currentEl = $(el); + if ($currentEl[0] === $sortingEl[0]) { return; } + var currentElOffset = $currentEl[0].offsetTop; + var currentElHeight = $currentEl.height(); + var sortingElOffset = sortingElOffsetLocal + translate; + + if ((sortingElOffset >= currentElOffset - (currentElHeight / 2)) && $sortingEl.index() < $currentEl.index()) { + $currentEl.transform(("translate3d(0, " + (-sortingElHeight) + "px,0)")); + $insertAfterEl = $currentEl; + $insertBeforeEl = undefined; + } else if ((sortingElOffset <= currentElOffset + (currentElHeight / 2)) && $sortingEl.index() > $currentEl.index()) { + $currentEl.transform(("translate3d(0, " + sortingElHeight + "px,0)")); + $insertAfterEl = undefined; + if (!$insertBeforeEl) { $insertBeforeEl = $currentEl; } + } else { + $currentEl.transform('translate3d(0, 0%,0)'); + } + }); + } + function handleTouchEnd() { + if (!isTouched || !isMoved) { + if (isTouched && !isMoved) { + if (app.panel) { app.panel.allowOpen = true; } + if (app.swipeout) { app.swipeout.allow = true; } + if (wasTapHold) { + $sortingEl.removeClass('sorting'); + $sortableContainer.removeClass('sortable-sorting'); + } + } + isTouched = false; + isMoved = false; + return; + } + if (app.panel) { app.panel.allowOpen = true; } + if (app.swipeout) { app.swipeout.allow = true; } + + $sortingItems.transform(''); + $sortingEl.removeClass('sorting'); + $sortableContainer.removeClass('sortable-sorting'); + + var indexTo; + if ($insertAfterEl) { indexTo = $insertAfterEl.index(); } + else if ($insertBeforeEl) { indexTo = $insertBeforeEl.index(); } + + var moveElements = $sortableContainer.dataset().sortableMoveElements; + if (typeof moveElements === 'undefined') { + moveElements = app.params.sortable.moveElements; + } + + if (moveElements) { + if ($insertAfterEl) { + $sortingEl.insertAfter($insertAfterEl); + } + if ($insertBeforeEl) { + $sortingEl.insertBefore($insertBeforeEl); + } + } + + if (($insertAfterEl || $insertBeforeEl) + && $sortableContainer.hasClass('virtual-list') + ) { + indexFrom = $sortingEl[0].f7VirtualListIndex; + if (typeof indexFrom === 'undefined') { indexFrom = $sortingEl.attr('data-virtual-list-index'); } + if ($insertBeforeEl) { + indexTo = $insertBeforeEl[0].f7VirtualListIndex; + if (typeof indexTo === 'undefined') { indexTo = $insertBeforeEl.attr('data-virtual-list-index'); } + } else { + indexTo = $insertAfterEl[0].f7VirtualListIndex; + if (typeof indexTo === 'undefined') { indexTo = $insertAfterEl.attr('data-virtual-list-index'); } + } + if (indexTo !== null) { indexTo = parseInt(indexTo, 10); } + else { indexTo = undefined; } + + var virtualList = $sortableContainer[0].f7VirtualList; + + if (indexFrom) { indexFrom = parseInt(indexFrom, 10); } + if (indexTo) { indexTo = parseInt(indexTo, 10); } + if (virtualList) { virtualList.moveItem(indexFrom, indexTo); } + } + if (typeof indexTo !== 'undefined' && !Number.isNaN(indexTo) && indexTo !== indexFrom) { + $sortingEl.trigger('sortable:sort', { from: indexFrom, to: indexTo }); + app.emit('sortableSort', $sortingEl[0], { from: indexFrom, to: indexTo, el: $sortingEl[0] }, $sortableContainer[0]); + } + + $insertBeforeEl = undefined; + $insertAfterEl = undefined; + isTouched = false; + isMoved = false; + } + + var activeListener = app.support.passiveListener ? { passive: false, capture: false } : false; + + $(doc).on(app.touchEvents.start, '.list.sortable .sortable-handler', handleTouchStart, activeListener); + app.on('touchmove:active', handleTouchMove); + app.on('touchend:passive', handleTouchEnd); + + $(doc).on('taphold', '.sortable-tap-hold', function (e, pointerEvent) { + handleTouchStart(pointerEvent, true); + }); + }, + enable: function enable(el) { + if ( el === void 0 ) el = '.list.sortable'; + + var app = this; + var $el = $(el); + if ($el.length === 0) { return; } + $el.addClass('sortable-enabled'); + $el.trigger('sortable:enable'); + app.emit('sortableEnable', $el[0]); + }, + disable: function disable(el) { + if ( el === void 0 ) el = '.list.sortable'; + + var app = this; + var $el = $(el); + if ($el.length === 0) { return; } + $el.removeClass('sortable-enabled'); + $el.trigger('sortable:disable'); + app.emit('sortableDisable', $el[0]); + }, + toggle: function toggle(el) { + if ( el === void 0 ) el = '.list.sortable'; + + var app = this; + var $el = $(el); + if ($el.length === 0) { return; } + if ($el.hasClass('sortable-enabled')) { + app.sortable.disable($el); + } else { + app.sortable.enable($el); + } + }, + }; + var Sortable$1 = { + name: 'sortable', + params: { + sortable: { + moveElements: true, + }, + }, + create: function create() { + var app = this; + Utils.extend(app, { + sortable: { + init: Sortable.init.bind(app), + enable: Sortable.enable.bind(app), + disable: Sortable.disable.bind(app), + toggle: Sortable.toggle.bind(app), + }, + }); + }, + on: { + init: function init() { + var app = this; + if (!app.params.sortable) { return; } + app.sortable.init(); + }, + }, + clicks: { + '.sortable-enable': function enable($clickedEl, data) { + if ( data === void 0 ) data = {}; + + var app = this; + app.sortable.enable(data.sortable); + }, + '.sortable-disable': function disable($clickedEl, data) { + if ( data === void 0 ) data = {}; + + var app = this; + app.sortable.disable(data.sortable); + }, + '.sortable-toggle': function toggle($clickedEl, data) { + if ( data === void 0 ) data = {}; + + var app = this; + app.sortable.toggle(data.sortable); + }, + }, + }; + + var Swipeout = { + init: function init() { + var app = this; + var touchesStart = {}; + var isTouched; + var isMoved; + var isScrolling; + var touchStartTime; + var touchesDiff; + var $swipeoutEl; + var $swipeoutContent; + var $actionsRight; + var $actionsLeft; + var actionsLeftWidth; + var actionsRightWidth; + var translate; + var opened; + var openedActionsSide; + var $leftButtons; + var $rightButtons; + var direction; + var $overswipeLeftButton; + var $overswipeRightButton; + var overswipeLeft; + var overswipeRight; + + function handleTouchStart(e) { + if (!Swipeout.allow) { return; } + isMoved = false; + isTouched = true; + isScrolling = undefined; + touchesStart.x = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX; + touchesStart.y = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY; + touchStartTime = (new Date()).getTime(); + $swipeoutEl = $(this); + } + function handleTouchMove(e) { + if (!isTouched) { return; } + var pageX = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX; + var pageY = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY; + if (typeof isScrolling === 'undefined') { + isScrolling = !!(isScrolling || Math.abs(pageY - touchesStart.y) > Math.abs(pageX - touchesStart.x)); + } + if (isScrolling) { + isTouched = false; + return; + } + + if (!isMoved) { + if ($('.list.sortable-opened').length > 0) { return; } + $swipeoutContent = $swipeoutEl.find('.swipeout-content'); + $actionsRight = $swipeoutEl.find('.swipeout-actions-right'); + $actionsLeft = $swipeoutEl.find('.swipeout-actions-left'); + actionsLeftWidth = null; + actionsRightWidth = null; + $leftButtons = null; + $rightButtons = null; + $overswipeRightButton = null; + $overswipeLeftButton = null; + if ($actionsLeft.length > 0) { + actionsLeftWidth = $actionsLeft.outerWidth(); + $leftButtons = $actionsLeft.children('a'); + $overswipeLeftButton = $actionsLeft.find('.swipeout-overswipe'); + } + if ($actionsRight.length > 0) { + actionsRightWidth = $actionsRight.outerWidth(); + $rightButtons = $actionsRight.children('a'); + $overswipeRightButton = $actionsRight.find('.swipeout-overswipe'); + } + opened = $swipeoutEl.hasClass('swipeout-opened'); + if (opened) { + openedActionsSide = $swipeoutEl.find('.swipeout-actions-left.swipeout-actions-opened').length > 0 ? 'left' : 'right'; + } + $swipeoutEl.removeClass('swipeout-transitioning'); + if (!app.params.swipeout.noFollow) { + $swipeoutEl.find('.swipeout-actions-opened').removeClass('swipeout-actions-opened'); + $swipeoutEl.removeClass('swipeout-opened'); + } + } + isMoved = true; + e.preventDefault(); + + touchesDiff = pageX - touchesStart.x; + translate = touchesDiff; + + if (opened) { + if (openedActionsSide === 'right') { translate -= actionsRightWidth; } + else { translate += actionsLeftWidth; } + } + + if ( + (translate > 0 && $actionsLeft.length === 0) + || (translate < 0 && $actionsRight.length === 0) + ) { + if (!opened) { + isTouched = false; + isMoved = false; + $swipeoutContent.transform(''); + if ($rightButtons && $rightButtons.length > 0) { + $rightButtons.transform(''); + } + if ($leftButtons && $leftButtons.length > 0) { + $leftButtons.transform(''); + } + return; + } + translate = 0; + } + + if (translate < 0) { direction = 'to-left'; } + else if (translate > 0) { direction = 'to-right'; } + else if (!direction) { direction = 'to-left'; } + + var buttonOffset; + var progress; + + e.f7PreventSwipePanel = true; + if (app.params.swipeout.noFollow) { + if (opened) { + if (openedActionsSide === 'right' && touchesDiff > 0) { + app.swipeout.close($swipeoutEl); + } + if (openedActionsSide === 'left' && touchesDiff < 0) { + app.swipeout.close($swipeoutEl); + } + } else { + if (touchesDiff < 0 && $actionsRight.length > 0) { + app.swipeout.open($swipeoutEl, 'right'); + } + if (touchesDiff > 0 && $actionsLeft.length > 0) { + app.swipeout.open($swipeoutEl, 'left'); + } + } + isTouched = false; + isMoved = false; + return; + } + overswipeLeft = false; + overswipeRight = false; + if ($actionsRight.length > 0) { + // Show right actions + var buttonTranslate = translate; + progress = buttonTranslate / actionsRightWidth; + if (buttonTranslate < -actionsRightWidth) { + buttonTranslate = -actionsRightWidth - (Math.pow( (-buttonTranslate - actionsRightWidth), 0.8 )); + translate = buttonTranslate; + if ($overswipeRightButton.length > 0) { + overswipeRight = true; + } + } + if (direction !== 'to-left') { + progress = 0; + buttonTranslate = 0; + } + $rightButtons.each(function (index, buttonEl) { + var $buttonEl = $(buttonEl); + if (typeof buttonEl.f7SwipeoutButtonOffset === 'undefined') { + $buttonEl[0].f7SwipeoutButtonOffset = buttonEl.offsetLeft; + } + buttonOffset = buttonEl.f7SwipeoutButtonOffset; + if ($overswipeRightButton.length > 0 && $buttonEl.hasClass('swipeout-overswipe') && direction === 'to-left') { + $buttonEl.css({ left: ((overswipeRight ? -buttonOffset : 0) + "px") }); + if (overswipeRight) { + if (!$buttonEl.hasClass('swipeout-overswipe-active')) { + $swipeoutEl.trigger('swipeout:overswipeenter'); + app.emit('swipeoutOverswipeEnter', $swipeoutEl[0]); + } + $buttonEl.addClass('swipeout-overswipe-active'); + } else { + if ($buttonEl.hasClass('swipeout-overswipe-active')) { + $swipeoutEl.trigger('swipeout:overswipeexit'); + app.emit('swipeoutOverswipeExit', $swipeoutEl[0]); + } + $buttonEl.removeClass('swipeout-overswipe-active'); + } + } + $buttonEl.transform(("translate3d(" + (buttonTranslate - (buttonOffset * (1 + Math.max(progress, -1)))) + "px,0,0)")); + }); + } + if ($actionsLeft.length > 0) { + // Show left actions + var buttonTranslate$1 = translate; + progress = buttonTranslate$1 / actionsLeftWidth; + if (buttonTranslate$1 > actionsLeftWidth) { + buttonTranslate$1 = actionsLeftWidth + (Math.pow( (buttonTranslate$1 - actionsLeftWidth), 0.8 )); + translate = buttonTranslate$1; + if ($overswipeLeftButton.length > 0) { + overswipeLeft = true; + } + } + if (direction !== 'to-right') { + buttonTranslate$1 = 0; + progress = 0; + } + $leftButtons.each(function (index, buttonEl) { + var $buttonEl = $(buttonEl); + if (typeof buttonEl.f7SwipeoutButtonOffset === 'undefined') { + $buttonEl[0].f7SwipeoutButtonOffset = actionsLeftWidth - buttonEl.offsetLeft - buttonEl.offsetWidth; + } + buttonOffset = buttonEl.f7SwipeoutButtonOffset; + if ($overswipeLeftButton.length > 0 && $buttonEl.hasClass('swipeout-overswipe') && direction === 'to-right') { + $buttonEl.css({ left: ((overswipeLeft ? buttonOffset : 0) + "px") }); + if (overswipeLeft) { + if (!$buttonEl.hasClass('swipeout-overswipe-active')) { + $swipeoutEl.trigger('swipeout:overswipeenter'); + app.emit('swipeoutOverswipeEnter', $swipeoutEl[0]); + } + $buttonEl.addClass('swipeout-overswipe-active'); + } else { + if ($buttonEl.hasClass('swipeout-overswipe-active')) { + $swipeoutEl.trigger('swipeout:overswipeexit'); + app.emit('swipeoutOverswipeExit', $swipeoutEl[0]); + } + $buttonEl.removeClass('swipeout-overswipe-active'); + } + } + if ($leftButtons.length > 1) { + $buttonEl.css('z-index', $leftButtons.length - index); + } + $buttonEl.transform(("translate3d(" + (buttonTranslate$1 + (buttonOffset * (1 - Math.min(progress, 1)))) + "px,0,0)")); + }); + } + $swipeoutEl.trigger('swipeout', progress); + app.emit('swipeout', $swipeoutEl[0], progress); + $swipeoutContent.transform(("translate3d(" + translate + "px,0,0)")); + } + function handleTouchEnd() { + if (!isTouched || !isMoved) { + isTouched = false; + isMoved = false; + return; + } + + isTouched = false; + isMoved = false; + var timeDiff = (new Date()).getTime() - touchStartTime; + var $actions = direction === 'to-left' ? $actionsRight : $actionsLeft; + var actionsWidth = direction === 'to-left' ? actionsRightWidth : actionsLeftWidth; + var action; + var $buttons; + var i; + + if ( + ( + timeDiff < 300 + && ( + (touchesDiff < -10 && direction === 'to-left') + || (touchesDiff > 10 && direction === 'to-right') + ) + ) + || ( + timeDiff >= 300 + && (Math.abs(translate) > actionsWidth / 2) + ) + ) { + action = 'open'; + } else { + action = 'close'; + } + if (timeDiff < 300) { + if (Math.abs(translate) === 0) { action = 'close'; } + if (Math.abs(translate) === actionsWidth) { action = 'open'; } + } + + if (action === 'open') { + Swipeout.el = $swipeoutEl[0]; + $swipeoutEl.trigger('swipeout:open'); + app.emit('swipeoutOpen', $swipeoutEl[0]); + $swipeoutEl.addClass('swipeout-opened swipeout-transitioning'); + var newTranslate = direction === 'to-left' ? -actionsWidth : actionsWidth; + $swipeoutContent.transform(("translate3d(" + newTranslate + "px,0,0)")); + $actions.addClass('swipeout-actions-opened'); + $buttons = direction === 'to-left' ? $rightButtons : $leftButtons; + if ($buttons) { + for (i = 0; i < $buttons.length; i += 1) { + $($buttons[i]).transform(("translate3d(" + newTranslate + "px,0,0)")); + } + } + if (overswipeRight) { + $actionsRight.find('.swipeout-overswipe').trigger('click', 'f7Overswipe'); + } + if (overswipeLeft) { + $actionsLeft.find('.swipeout-overswipe').trigger('click', 'f7Overswipe'); + } + } else { + $swipeoutEl.trigger('swipeout:close'); + app.emit('swipeoutClose', $swipeoutEl[0]); + Swipeout.el = undefined; + $swipeoutEl.addClass('swipeout-transitioning').removeClass('swipeout-opened'); + $swipeoutContent.transform(''); + $actions.removeClass('swipeout-actions-opened'); + } + + var buttonOffset; + if ($leftButtons && $leftButtons.length > 0 && $leftButtons !== $buttons) { + $leftButtons.each(function (index, buttonEl) { + var $buttonEl = $(buttonEl); + buttonOffset = buttonEl.f7SwipeoutButtonOffset; + if (typeof buttonOffset === 'undefined') { + $buttonEl[0].f7SwipeoutButtonOffset = actionsLeftWidth - buttonEl.offsetLeft - buttonEl.offsetWidth; + } + $buttonEl.transform(("translate3d(" + buttonOffset + "px,0,0)")); + }); + } + if ($rightButtons && $rightButtons.length > 0 && $rightButtons !== $buttons) { + $rightButtons.each(function (index, buttonEl) { + var $buttonEl = $(buttonEl); + buttonOffset = buttonEl.f7SwipeoutButtonOffset; + if (typeof buttonOffset === 'undefined') { + $buttonEl[0].f7SwipeoutButtonOffset = buttonEl.offsetLeft; + } + $buttonEl.transform(("translate3d(" + (-buttonOffset) + "px,0,0)")); + }); + } + $swipeoutContent.transitionEnd(function () { + if ((opened && action === 'open') || (!opened && action === 'close')) { return; } + $swipeoutEl.trigger(action === 'open' ? 'swipeout:opened' : 'swipeout:closed'); + app.emit(action === 'open' ? 'swipeoutOpened' : 'swipeoutClosed', $swipeoutEl[0]); + $swipeoutEl.removeClass('swipeout-transitioning'); + if (opened && action === 'close') { + if ($actionsRight.length > 0) { + $rightButtons.transform(''); + } + if ($actionsLeft.length > 0) { + $leftButtons.transform(''); + } + } + }); + } + + var passiveListener = app.support.passiveListener ? { passive: true } : false; + + app.on('touchstart', function (e) { + if (Swipeout.el) { + var $targetEl = $(e.target); + if (!( + $(Swipeout.el).is($targetEl[0]) + || $targetEl.parents('.swipeout').is(Swipeout.el) + || $targetEl.hasClass('modal-in') + || ($targetEl.attr('class') || '').indexOf('-backdrop') > 0 + || $targetEl.hasClass('actions-modal') + || $targetEl.parents('.actions-modal.modal-in, .dialog.modal-in').length > 0 + )) { + app.swipeout.close(Swipeout.el); + } + } + }); + $(doc).on(app.touchEvents.start, 'li.swipeout', handleTouchStart, passiveListener); + app.on('touchmove:active', handleTouchMove); + app.on('touchend:passive', handleTouchEnd); + }, + allow: true, + el: undefined, + open: function open() { + var assign; + + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + var app = this; + var el = args[0]; + var side = args[1]; + var callback = args[2]; + if (typeof args[1] === 'function') { + (assign = args, el = assign[0], callback = assign[1], side = assign[2]); + } + var $el = $(el).eq(0); + + if ($el.length === 0) { return; } + if (!$el.hasClass('swipeout') || $el.hasClass('swipeout-opened')) { return; } + if (!side) { + if ($el.find('.swipeout-actions-right').length > 0) { side = 'right'; } + else { side = 'left'; } + } + var $swipeoutActions = $el.find((".swipeout-actions-" + side)); + var $swipeoutContent = $el.find('.swipeout-content'); + if ($swipeoutActions.length === 0) { return; } + $el.trigger('swipeout:open').addClass('swipeout-opened').removeClass('swipeout-transitioning'); + app.emit('swipeoutOpen', $el[0]); + $swipeoutActions.addClass('swipeout-actions-opened'); + var $buttons = $swipeoutActions.children('a'); + var swipeoutActionsWidth = $swipeoutActions.outerWidth(); + var translate = side === 'right' ? -swipeoutActionsWidth : swipeoutActionsWidth; + if ($buttons.length > 1) { + $buttons.each(function (buttonIndex, buttonEl) { + var $buttonEl = $(buttonEl); + if (side === 'right') { + $buttonEl.transform(("translate3d(" + (-buttonEl.offsetLeft) + "px,0,0)")); + } else { + $buttonEl.css('z-index', $buttons.length - buttonIndex).transform(("translate3d(" + (swipeoutActionsWidth - buttonEl.offsetWidth - buttonEl.offsetLeft) + "px,0,0)")); + } + }); + } + $el.addClass('swipeout-transitioning'); + $swipeoutContent.transitionEnd(function () { + $el.trigger('swipeout:opened'); + app.emit('swipeoutOpened', $el[0]); + if (callback) { callback.call($el[0]); } + }); + Utils.nextFrame(function () { + $buttons.transform(("translate3d(" + translate + "px,0,0)")); + $swipeoutContent.transform(("translate3d(" + translate + "px,0,0)")); + }); + Swipeout.el = $el[0]; + }, + close: function close(el, callback) { + var app = this; + var $el = $(el).eq(0); + if ($el.length === 0) { return; } + if (!$el.hasClass('swipeout-opened')) { return; } + var side = $el.find('.swipeout-actions-opened').hasClass('swipeout-actions-right') ? 'right' : 'left'; + var $swipeoutActions = $el.find('.swipeout-actions-opened').removeClass('swipeout-actions-opened'); + var $buttons = $swipeoutActions.children('a'); + var swipeoutActionsWidth = $swipeoutActions.outerWidth(); + Swipeout.allow = false; + $el.trigger('swipeout:close'); + app.emit('swipeoutClose', $el[0]); + $el.removeClass('swipeout-opened').addClass('swipeout-transitioning'); + + var closeTimeout; + function onSwipeoutClose() { + Swipeout.allow = true; + if ($el.hasClass('swipeout-opened')) { return; } + $el.removeClass('swipeout-transitioning'); + $buttons.transform(''); + $el.trigger('swipeout:closed'); + app.emit('swipeoutClosed', $el[0]); + if (callback) { callback.call($el[0]); } + if (closeTimeout) { clearTimeout(closeTimeout); } + } + $el.find('.swipeout-content').transform('').transitionEnd(onSwipeoutClose); + closeTimeout = setTimeout(onSwipeoutClose, 500); + + $buttons.each(function (index, buttonEl) { + var $buttonEl = $(buttonEl); + if (side === 'right') { + $buttonEl.transform(("translate3d(" + (-buttonEl.offsetLeft) + "px,0,0)")); + } else { + $buttonEl.transform(("translate3d(" + (swipeoutActionsWidth - buttonEl.offsetWidth - buttonEl.offsetLeft) + "px,0,0)")); + } + $buttonEl.css({ left: '0px' }).removeClass('swipeout-overswipe-active'); + }); + if (Swipeout.el && Swipeout.el === $el[0]) { Swipeout.el = undefined; } + }, + delete: function delete$1(el, callback) { + var app = this; + var $el = $(el).eq(0); + if ($el.length === 0) { return; } + Swipeout.el = undefined; + $el.trigger('swipeout:delete'); + app.emit('swipeoutDelete', $el[0]); + $el.css({ height: (($el.outerHeight()) + "px") }); + $el.transitionEnd(function () { + $el.trigger('swipeout:deleted'); + app.emit('swipeoutDeleted', $el[0]); + if (callback) { callback.call($el[0]); } + if ($el.parents('.virtual-list').length > 0) { + var virtualList = $el.parents('.virtual-list')[0].f7VirtualList; + var virtualIndex = $el[0].f7VirtualListIndex; + if (virtualList && typeof virtualIndex !== 'undefined') { virtualList.deleteItem(virtualIndex); } + } else if (app.params.swipeout.removeElements) { + if (app.params.swipeout.removeElementsWithTimeout) { + setTimeout(function () { + $el.remove(); + }, app.params.swipeout.removeElementsTimeout); + } else { + $el.remove(); + } + } else { + $el.removeClass('swipeout-deleting swipeout-transitioning'); + } + }); + // eslint-disable-next-line + // $el[0]._clientLeft = $el[0].clientLeft; + Utils.nextFrame(function () { + $el + .addClass('swipeout-deleting swipeout-transitioning') + .css({ height: '0px' }) + .find('.swipeout-content') + .transform('translate3d(-100%,0,0)'); + }); + }, + }; + var Swipeout$1 = { + name: 'swipeout', + params: { + swipeout: { + actionsNoFold: false, + noFollow: false, + removeElements: true, + removeElementsWithTimeout: false, + removeElementsTimeout: 0, + }, + }, + create: function create() { + var app = this; + Utils.extend(app, { + swipeout: { + init: Swipeout.init.bind(app), + open: Swipeout.open.bind(app), + close: Swipeout.close.bind(app), + delete: Swipeout.delete.bind(app), + }, + }); + Object.defineProperty(app.swipeout, 'el', { + enumerable: true, + configurable: true, + get: function () { return Swipeout.el; }, + set: function set(el) { + Swipeout.el = el; + }, + }); + Object.defineProperty(app.swipeout, 'allow', { + enumerable: true, + configurable: true, + get: function () { return Swipeout.allow; }, + set: function set(allow) { + Swipeout.allow = allow; + }, + }); + }, + clicks: { + '.swipeout-open': function openSwipeout($clickedEl, data) { + if ( data === void 0 ) data = {}; + + var app = this; + app.swipeout.open(data.swipeout, data.side); + }, + '.swipeout-close': function closeSwipeout($clickedEl) { + var app = this; + var $swipeoutEl = $clickedEl.closest('.swipeout'); + if ($swipeoutEl.length === 0) { return; } + app.swipeout.close($swipeoutEl); + }, + '.swipeout-delete': function deleteSwipeout($clickedEl, data) { + if ( data === void 0 ) data = {}; + + var app = this; + var $swipeoutEl = $clickedEl.closest('.swipeout'); + if ($swipeoutEl.length === 0) { return; } + var confirm = data.confirm; + var confirmTitle = data.confirmTitle; + if (data.confirm) { + app.dialog.confirm(confirm, confirmTitle, function () { + app.swipeout.delete($swipeoutEl); + }); + } else { + app.swipeout.delete($swipeoutEl); + } + }, + }, + on: { + init: function init() { + var app = this; + if (!app.params.swipeout) { return; } + app.swipeout.init(); + }, + }, + }; + + var Accordion = { + toggleClicked: function toggleClicked($clickedEl) { + var app = this; + var $accordionItemEl = $clickedEl.closest('.accordion-item').eq(0); + if (!$accordionItemEl.length) { $accordionItemEl = $clickedEl.parents('li').eq(0); } + + var $accordionContent = $clickedEl.parents('.accordion-item-content').eq(0); + if ($accordionContent.length) { + if ($accordionContent.parents($accordionItemEl).length) { return; } + } + + if ($clickedEl.parents('li').length > 1 && $clickedEl.parents('li')[0] !== $accordionItemEl[0]) { return; } + app.accordion.toggle($accordionItemEl); + }, + open: function open(el) { + var app = this; + var $el = $(el); + var prevented = false; + function prevent() { + prevented = true; + } + $el.trigger('accordion:beforeopen', { prevent: prevent }, prevent); + app.emit('accordionBeforeOpen', $el[0], prevent); + if (prevented) { return; } + var $list = $el.parents('.accordion-list').eq(0); + var $contentEl = $el.children('.accordion-item-content'); + $contentEl.removeAttr('aria-hidden'); + if ($contentEl.length === 0) { $contentEl = $el.find('.accordion-item-content'); } + if ($contentEl.length === 0) { return; } + var $openedItem = $list.length > 0 && $el.parent().children('.accordion-item-opened'); + if ($openedItem.length > 0) { + app.accordion.close($openedItem); + } + $contentEl.transitionEnd(function () { + if ($el.hasClass('accordion-item-opened')) { + $contentEl.transition(0); + $contentEl.css('height', 'auto'); + Utils.nextFrame(function () { + $contentEl.transition(''); + $el.trigger('accordion:opened'); + app.emit('accordionOpened', $el[0]); + }); + } else { + $contentEl.css('height', ''); + $el.trigger('accordion:closed'); + app.emit('accordionClosed', $el[0]); + } + }); + $contentEl.css('height', (($contentEl[0].scrollHeight) + "px")); + $el.trigger('accordion:open'); + $el.addClass('accordion-item-opened'); + app.emit('accordionOpen', $el[0]); + }, + close: function close(el) { + var app = this; + var $el = $(el); + var prevented = false; + function prevent() { + prevented = true; + } + $el.trigger('accordion:beforeclose', { prevent: prevent }, prevent); + app.emit('accordionBeforeClose', $el[0], prevent); + if (prevented) { return; } + var $contentEl = $el.children('.accordion-item-content'); + if ($contentEl.length === 0) { $contentEl = $el.find('.accordion-item-content'); } + $el.removeClass('accordion-item-opened'); + $contentEl.attr('aria-hidden', true); + $contentEl.transition(0); + $contentEl.css('height', (($contentEl[0].scrollHeight) + "px")); + // Close + $contentEl.transitionEnd(function () { + if ($el.hasClass('accordion-item-opened')) { + $contentEl.transition(0); + $contentEl.css('height', 'auto'); + Utils.nextFrame(function () { + $contentEl.transition(''); + $el.trigger('accordion:opened'); + app.emit('accordionOpened', $el[0]); + }); + } else { + $contentEl.css('height', ''); + $el.trigger('accordion:closed'); + app.emit('accordionClosed', $el[0]); + } + }); + Utils.nextFrame(function () { + $contentEl.transition(''); + $contentEl.css('height', ''); + $el.trigger('accordion:close'); + app.emit('accordionClose', $el[0]); + }); + }, + toggle: function toggle(el) { + var app = this; + var $el = $(el); + if ($el.length === 0) { return; } + if ($el.hasClass('accordion-item-opened')) { app.accordion.close(el); } + else { app.accordion.open(el); } + }, + }; + + var Accordion$1 = { + name: 'accordion', + create: function create() { + var app = this; + Utils.extend(app, { + accordion: { + open: Accordion.open.bind(app), + close: Accordion.close.bind(app), + toggle: Accordion.toggle.bind(app), + }, + }); + }, + clicks: { + '.accordion-item .item-link, .accordion-item-toggle, .links-list.accordion-list > ul > li > a': function open($clickedEl) { + var app = this; + Accordion.toggleClicked.call(app, $clickedEl); + }, + }, + }; + + var ContactsList = { + name: 'contactsList', + }; + + var VirtualList = /*@__PURE__*/(function (Framework7Class) { + function VirtualList(app, params) { + if ( params === void 0 ) params = {}; + + Framework7Class.call(this, params, [app]); + var vl = this; + + var defaultHeight; + if (app.theme === 'md') { + defaultHeight = 48; + } else if (app.theme === 'ios') { + defaultHeight = 44; + } else if (app.theme === 'aurora') { + defaultHeight = 38; + } + + var defaults = { + cols: 1, + height: defaultHeight, + cache: true, + dynamicHeightBufferSize: 1, + showFilteredItemsOnly: false, + renderExternal: undefined, + setListHeight: true, + searchByItem: undefined, + searchAll: undefined, + itemTemplate: undefined, + ul: null, + createUl: true, + scrollableParentEl: undefined, + renderItem: function renderItem(item) { + return ("\n
  • \n
    \n
    \n
    " + item + "
    \n
    \n
    \n
  • \n ").trim(); + }, + on: {}, + }; + + // Extend defaults with modules params + vl.useModulesParams(defaults); + + vl.params = Utils.extend(defaults, params); + if (vl.params.height === undefined || !vl.params.height) { + vl.params.height = defaultHeight; + } + + vl.$el = $(params.el); + vl.el = vl.$el[0]; + + if (vl.$el.length === 0) { return undefined; } + vl.$el[0].f7VirtualList = vl; + + vl.items = vl.params.items; + if (vl.params.showFilteredItemsOnly) { + vl.filteredItems = []; + } + if (vl.params.itemTemplate) { + if (typeof vl.params.itemTemplate === 'string') { vl.renderItem = app.t7.compile(vl.params.itemTemplate); } + else if (typeof vl.params.itemTemplate === 'function') { vl.renderItem = vl.params.itemTemplate; } + } else if (vl.params.renderItem) { + vl.renderItem = vl.params.renderItem; + } + vl.$pageContentEl = vl.$el.parents('.page-content'); + vl.pageContentEl = vl.$pageContentEl[0]; + + vl.$scrollableParentEl = vl.params.scrollableParentEl ? $(vl.params.scrollableParentEl).eq(0) : vl.$pageContentEl; + if (!vl.$scrollableParentEl.length && vl.$pageContentEl.length) { + vl.$scrollableParentEl = vl.$pageContentEl; + } + vl.scrollableParentEl = vl.$scrollableParentEl[0]; + + // Bad scroll + if (typeof vl.params.updatableScroll !== 'undefined') { + vl.updatableScroll = vl.params.updatableScroll; + } else { + vl.updatableScroll = true; + if (Device.ios && Device.osVersion.split('.')[0] < 8) { + vl.updatableScroll = false; + } + } + + // Append
      + var ul = vl.params.ul; + vl.$ul = ul ? $(vl.params.ul) : vl.$el.children('ul'); + if (vl.$ul.length === 0 && vl.params.createUl) { + vl.$el.append('
        '); + vl.$ul = vl.$el.children('ul'); + } + vl.ul = vl.$ul[0]; + + var $itemsWrapEl; + if (!vl.ul && !vl.params.createUl) { $itemsWrapEl = vl.$el; } + else { $itemsWrapEl = vl.$ul; } + + Utils.extend(vl, { + $itemsWrapEl: $itemsWrapEl, + itemsWrapEl: $itemsWrapEl[0], + // DOM cached items + domCache: {}, + displayDomCache: {}, + // Temporary DOM Element + tempDomElement: doc.createElement('ul'), + // Last repain position + lastRepaintY: null, + // Fragment + fragment: doc.createDocumentFragment(), + // Props + pageHeight: undefined, + rowsPerScreen: undefined, + rowsBefore: undefined, + rowsAfter: undefined, + rowsToRender: undefined, + maxBufferHeight: 0, + listHeight: undefined, + dynamicHeight: typeof vl.params.height === 'function', + }); + + // Install Modules + vl.useModules(); + + // Attach events + var handleScrollBound = vl.handleScroll.bind(vl); + var handleResizeBound = vl.handleResize.bind(vl); + var $pageEl; + var $tabEl; + var $panelEl; + var $popupEl; + vl.attachEvents = function attachEvents() { + $pageEl = vl.$el.parents('.page').eq(0); + $tabEl = vl.$el.parents('.tab').filter(function (tabElIndex, tabEl) { + return $(tabEl).parent('.tabs').parent('.tabs-animated-wrap, .tabs-swipeable-wrap').length === 0; + }).eq(0); + $panelEl = vl.$el.parents('.panel').eq(0); + $popupEl = vl.$el.parents('.popup').eq(0); + + vl.$scrollableParentEl.on('scroll', handleScrollBound); + if ($pageEl.length) { $pageEl.on('page:reinit', handleResizeBound); } + if ($tabEl.length) { $tabEl.on('tab:show', handleResizeBound); } + if ($panelEl.length) { $panelEl.on('panel:open', handleResizeBound); } + if ($popupEl.length) { $popupEl.on('popup:open', handleResizeBound); } + app.on('resize', handleResizeBound); + }; + vl.detachEvents = function attachEvents() { + vl.$scrollableParentEl.off('scroll', handleScrollBound); + if ($pageEl.length) { $pageEl.off('page:reinit', handleResizeBound); } + if ($tabEl.length) { $tabEl.off('tab:show', handleResizeBound); } + if ($panelEl.length) { $panelEl.off('panel:open', handleResizeBound); } + if ($popupEl.length) { $popupEl.off('popup:open', handleResizeBound); } + app.off('resize', handleResizeBound); + }; + // Init + vl.init(); + + return vl; + } + + if ( Framework7Class ) VirtualList.__proto__ = Framework7Class; + VirtualList.prototype = Object.create( Framework7Class && Framework7Class.prototype ); + VirtualList.prototype.constructor = VirtualList; + + VirtualList.prototype.setListSize = function setListSize () { + var vl = this; + var items = vl.filteredItems || vl.items; + vl.pageHeight = vl.$scrollableParentEl[0].offsetHeight; + if (vl.dynamicHeight) { + vl.listHeight = 0; + vl.heights = []; + for (var i = 0; i < items.length; i += 1) { + var itemHeight = vl.params.height(items[i]); + vl.listHeight += itemHeight; + vl.heights.push(itemHeight); + } + } else { + vl.listHeight = Math.ceil(items.length / vl.params.cols) * vl.params.height; + vl.rowsPerScreen = Math.ceil(vl.pageHeight / vl.params.height); + vl.rowsBefore = vl.params.rowsBefore || vl.rowsPerScreen * 2; + vl.rowsAfter = vl.params.rowsAfter || vl.rowsPerScreen; + vl.rowsToRender = (vl.rowsPerScreen + vl.rowsBefore + vl.rowsAfter); + vl.maxBufferHeight = (vl.rowsBefore / 2) * vl.params.height; + } + + if (vl.updatableScroll || vl.params.setListHeight) { + vl.$itemsWrapEl.css({ height: ((vl.listHeight) + "px") }); + } + }; + + VirtualList.prototype.render = function render (force, forceScrollTop) { + var vl = this; + if (force) { vl.lastRepaintY = null; } + + var scrollTop = -(vl.$el[0].getBoundingClientRect().top - vl.$scrollableParentEl[0].getBoundingClientRect().top); + + if (typeof forceScrollTop !== 'undefined') { scrollTop = forceScrollTop; } + if (vl.lastRepaintY === null || Math.abs(scrollTop - vl.lastRepaintY) > vl.maxBufferHeight || (!vl.updatableScroll && (vl.$scrollableParentEl[0].scrollTop + vl.pageHeight >= vl.$scrollableParentEl[0].scrollHeight))) { + vl.lastRepaintY = scrollTop; + } else { + return; + } + + var items = vl.filteredItems || vl.items; + var fromIndex; + var toIndex; + var heightBeforeFirstItem = 0; + var heightBeforeLastItem = 0; + if (vl.dynamicHeight) { + var itemTop = 0; + var itemHeight; + vl.maxBufferHeight = vl.pageHeight; + + for (var j = 0; j < vl.heights.length; j += 1) { + itemHeight = vl.heights[j]; + if (typeof fromIndex === 'undefined') { + if (itemTop + itemHeight >= scrollTop - (vl.pageHeight * 2 * vl.params.dynamicHeightBufferSize)) { fromIndex = j; } + else { heightBeforeFirstItem += itemHeight; } + } + + if (typeof toIndex === 'undefined') { + if (itemTop + itemHeight >= scrollTop + (vl.pageHeight * 2 * vl.params.dynamicHeightBufferSize) || j === vl.heights.length - 1) { toIndex = j + 1; } + heightBeforeLastItem += itemHeight; + } + itemTop += itemHeight; + } + toIndex = Math.min(toIndex, items.length); + } else { + fromIndex = (parseInt(scrollTop / vl.params.height, 10) - vl.rowsBefore) * vl.params.cols; + if (fromIndex < 0) { + fromIndex = 0; + } + toIndex = Math.min(fromIndex + (vl.rowsToRender * vl.params.cols), items.length); + } + + var topPosition; + var renderExternalItems = []; + vl.reachEnd = false; + var i; + for (i = fromIndex; i < toIndex; i += 1) { + var itemEl = (void 0); + // Define real item index + var index = vl.items.indexOf(items[i]); + + if (i === fromIndex) { vl.currentFromIndex = index; } + if (i === toIndex - 1) { vl.currentToIndex = index; } + if (vl.filteredItems) { + if (vl.items[index] === vl.filteredItems[vl.filteredItems.length - 1]) { vl.reachEnd = true; } + } else if (index === vl.items.length - 1) { vl.reachEnd = true; } + + // Find items + if (vl.params.renderExternal) { + renderExternalItems.push(items[i]); + } else if (vl.domCache[index]) { + itemEl = vl.domCache[index]; + itemEl.f7VirtualListIndex = index; + } else { + if (vl.renderItem) { + vl.tempDomElement.innerHTML = vl.renderItem(items[i], index).trim(); + } else { + vl.tempDomElement.innerHTML = items[i].toString().trim(); + } + itemEl = vl.tempDomElement.childNodes[0]; + if (vl.params.cache) { vl.domCache[index] = itemEl; } + itemEl.f7VirtualListIndex = index; + } + + // Set item top position + if (i === fromIndex) { + if (vl.dynamicHeight) { + topPosition = heightBeforeFirstItem; + } else { + topPosition = ((i * vl.params.height) / vl.params.cols); + } + } + if (!vl.params.renderExternal) { + itemEl.style.top = topPosition + "px"; + + // Before item insert + vl.emit('local::itemBeforeInsert vlItemBeforeInsert', vl, itemEl, items[i]); + + // Append item to fragment + vl.fragment.appendChild(itemEl); + } + } + + // Update list height with not updatable scroll + if (!vl.updatableScroll) { + if (vl.dynamicHeight) { + vl.itemsWrapEl.style.height = heightBeforeLastItem + "px"; + } else { + vl.itemsWrapEl.style.height = ((i * vl.params.height) / vl.params.cols) + "px"; + } + } + + // Update list html + if (vl.params.renderExternal) { + if (items && items.length === 0) { + vl.reachEnd = true; + } + } else { + vl.emit('local::beforeClear vlBeforeClear', vl, vl.fragment); + vl.itemsWrapEl.innerHTML = ''; + + vl.emit('local::itemsBeforeInsert vlItemsBeforeInsert', vl, vl.fragment); + + if (items && items.length === 0) { + vl.reachEnd = true; + if (vl.params.emptyTemplate) { vl.itemsWrapEl.innerHTML = vl.params.emptyTemplate; } + } else { + vl.itemsWrapEl.appendChild(vl.fragment); + } + + vl.emit('local::itemsAfterInsert vlItemsAfterInsert', vl, vl.fragment); + } + + if (typeof forceScrollTop !== 'undefined' && force) { + vl.$scrollableParentEl.scrollTop(forceScrollTop, 0); + } + if (vl.params.renderExternal) { + vl.params.renderExternal(vl, { + fromIndex: fromIndex, + toIndex: toIndex, + listHeight: vl.listHeight, + topPosition: topPosition, + items: renderExternalItems, + }); + } + }; + + // Filter + VirtualList.prototype.filterItems = function filterItems (indexes, resetScrollTop) { + if ( resetScrollTop === void 0 ) resetScrollTop = true; + + var vl = this; + vl.filteredItems = []; + for (var i = 0; i < indexes.length; i += 1) { + vl.filteredItems.push(vl.items[indexes[i]]); + } + if (resetScrollTop) { + vl.$scrollableParentEl[0].scrollTop = 0; + } + vl.update(); + }; + + VirtualList.prototype.resetFilter = function resetFilter () { + var vl = this; + if (vl.params.showFilteredItemsOnly) { + vl.filteredItems = []; + } else { + vl.filteredItems = null; + delete vl.filteredItems; + } + vl.update(); + }; + + VirtualList.prototype.scrollToItem = function scrollToItem (index) { + var vl = this; + if (index > vl.items.length) { return false; } + var itemTop = 0; + if (vl.dynamicHeight) { + for (var i = 0; i < index; i += 1) { + itemTop += vl.heights[i]; + } + } else { + itemTop = index * vl.params.height; + } + var listTop = vl.$el[0].offsetTop; + vl.render(true, (listTop + itemTop) - parseInt(vl.$scrollableParentEl.css('padding-top'), 10)); + return true; + }; + + VirtualList.prototype.handleScroll = function handleScroll () { + var vl = this; + vl.render(); + }; + + // Handle resize event + VirtualList.prototype.isVisible = function isVisible () { + var vl = this; + return !!(vl.el.offsetWidth || vl.el.offsetHeight || vl.el.getClientRects().length); + }; + + VirtualList.prototype.handleResize = function handleResize () { + var vl = this; + if (vl.isVisible()) { + vl.setListSize(); + vl.render(true); + } + }; + + // Append + VirtualList.prototype.appendItems = function appendItems (items) { + var vl = this; + for (var i = 0; i < items.length; i += 1) { + vl.items.push(items[i]); + } + vl.update(); + }; + + VirtualList.prototype.appendItem = function appendItem (item) { + var vl = this; + vl.appendItems([item]); + }; + + // Replace + VirtualList.prototype.replaceAllItems = function replaceAllItems (items) { + var vl = this; + vl.items = items; + delete vl.filteredItems; + vl.domCache = {}; + vl.update(); + }; + + VirtualList.prototype.replaceItem = function replaceItem (index, item) { + var vl = this; + vl.items[index] = item; + if (vl.params.cache) { delete vl.domCache[index]; } + vl.update(); + }; + + // Prepend + VirtualList.prototype.prependItems = function prependItems (items) { + var vl = this; + for (var i = items.length - 1; i >= 0; i -= 1) { + vl.items.unshift(items[i]); + } + if (vl.params.cache) { + var newCache = {}; + Object.keys(vl.domCache).forEach(function (cached) { + newCache[parseInt(cached, 10) + items.length] = vl.domCache[cached]; + }); + vl.domCache = newCache; + } + vl.update(); + }; + + VirtualList.prototype.prependItem = function prependItem (item) { + var vl = this; + vl.prependItems([item]); + }; + + // Move + VirtualList.prototype.moveItem = function moveItem (from, to) { + var vl = this; + var fromIndex = from; + var toIndex = to; + if (fromIndex === toIndex) { return; } + // remove item from array + var item = vl.items.splice(fromIndex, 1)[0]; + if (toIndex >= vl.items.length) { + // Add item to the end + vl.items.push(item); + toIndex = vl.items.length - 1; + } else { + // Add item to new index + vl.items.splice(toIndex, 0, item); + } + // Update cache + if (vl.params.cache) { + var newCache = {}; + Object.keys(vl.domCache).forEach(function (cached) { + var cachedIndex = parseInt(cached, 10); + var leftIndex = fromIndex < toIndex ? fromIndex : toIndex; + var rightIndex = fromIndex < toIndex ? toIndex : fromIndex; + var indexShift = fromIndex < toIndex ? -1 : 1; + if (cachedIndex < leftIndex || cachedIndex > rightIndex) { newCache[cachedIndex] = vl.domCache[cachedIndex]; } + if (cachedIndex === leftIndex) { newCache[rightIndex] = vl.domCache[cachedIndex]; } + if (cachedIndex > leftIndex && cachedIndex <= rightIndex) { newCache[cachedIndex + indexShift] = vl.domCache[cachedIndex]; } + }); + vl.domCache = newCache; + } + vl.update(); + }; + + // Insert before + VirtualList.prototype.insertItemBefore = function insertItemBefore (index, item) { + var vl = this; + if (index === 0) { + vl.prependItem(item); + return; + } + if (index >= vl.items.length) { + vl.appendItem(item); + return; + } + vl.items.splice(index, 0, item); + // Update cache + if (vl.params.cache) { + var newCache = {}; + Object.keys(vl.domCache).forEach(function (cached) { + var cachedIndex = parseInt(cached, 10); + if (cachedIndex >= index) { + newCache[cachedIndex + 1] = vl.domCache[cachedIndex]; + } + }); + vl.domCache = newCache; + } + vl.update(); + }; + + // Delete + VirtualList.prototype.deleteItems = function deleteItems (indexes) { + var vl = this; + var prevIndex; + var indexShift = 0; + var loop = function ( i ) { + var index = indexes[i]; + if (typeof prevIndex !== 'undefined') { + if (index > prevIndex) { + indexShift = -i; + } + } + index += indexShift; + prevIndex = indexes[i]; + // Delete item + var deletedItem = vl.items.splice(index, 1)[0]; + + // Delete from filtered + if (vl.filteredItems && vl.filteredItems.indexOf(deletedItem) >= 0) { + vl.filteredItems.splice(vl.filteredItems.indexOf(deletedItem), 1); + } + // Update cache + if (vl.params.cache) { + var newCache = {}; + Object.keys(vl.domCache).forEach(function (cached) { + var cachedIndex = parseInt(cached, 10); + if (cachedIndex === index) { + delete vl.domCache[index]; + } else if (parseInt(cached, 10) > index) { + newCache[cachedIndex - 1] = vl.domCache[cached]; + } else { + newCache[cachedIndex] = vl.domCache[cached]; + } + }); + vl.domCache = newCache; + } + }; + + for (var i = 0; i < indexes.length; i += 1) loop( i ); + vl.update(); + }; + + VirtualList.prototype.deleteAllItems = function deleteAllItems () { + var vl = this; + vl.items = []; + delete vl.filteredItems; + if (vl.params.cache) { vl.domCache = {}; } + vl.update(); + }; + + VirtualList.prototype.deleteItem = function deleteItem (index) { + var vl = this; + vl.deleteItems([index]); + }; + + // Clear cache + VirtualList.prototype.clearCache = function clearCache () { + var vl = this; + vl.domCache = {}; + }; + + // Update Virtual List + VirtualList.prototype.update = function update (deleteCache) { + var vl = this; + if (deleteCache && vl.params.cache) { + vl.domCache = {}; + } + vl.setListSize(); + vl.render(true); + }; + + VirtualList.prototype.init = function init () { + var vl = this; + vl.attachEvents(); + vl.setListSize(); + vl.render(); + }; + + VirtualList.prototype.destroy = function destroy () { + var vl = this; + vl.detachEvents(); + vl.$el[0].f7VirtualList = null; + delete vl.$el[0].f7VirtualList; + Utils.deleteProps(vl); + vl = null; + }; + + return VirtualList; + }(Framework7Class)); + + var VirtualList$1 = { + name: 'virtualList', + static: { + VirtualList: VirtualList, + }, + create: function create() { + var app = this; + app.virtualList = ConstructorMethods({ + defaultSelector: '.virtual-list', + constructor: VirtualList, + app: app, + domProp: 'f7VirtualList', + }); + }, + }; + + var ListIndex = /*@__PURE__*/(function (Framework7Class) { + function ListIndex(app, params) { + if ( params === void 0 ) params = {}; + + Framework7Class.call(this, params, [app]); + var index = this; + + var defaults = { + el: null, // where to render indexes + listEl: null, // list el to generate indexes + indexes: 'auto', // or array of indexes + iosItemHeight: 14, + mdItemHeight: 14, + auroraItemHeight: 14, + scrollList: true, + label: false, + // eslint-disable-next-line + renderItem: function renderItem(itemContent, itemIndex) { + return ("\n
      • " + itemContent + "
      • \n ").trim(); + }, + renderSkipPlaceholder: function renderSkipPlaceholder() { + return '
      • '; + }, + on: {}, + }; + + // Extend defaults with modules params + index.useModulesParams(defaults); + + index.params = Utils.extend(defaults, params); + + var $el; + var $listEl; + var $pageContentEl; + var $ul; + + if (index.params.el) { + $el = $(index.params.el); + } else { + return index; + } + + if ($el[0].f7ListIndex) { + return $el[0].f7ListIndex; + } + + $ul = $el.find('ul'); + if ($ul.length === 0) { + $ul = $('
          '); + $el.append($ul); + } + + if (index.params.listEl) { + $listEl = $(index.params.listEl); + } + + if (index.params.indexes === 'auto' && !$listEl) { + return index; + } + + if ($listEl) { + $pageContentEl = $listEl.parents('.page-content').eq(0); + } else { + $pageContentEl = $el.siblings('.page-content').eq(0); + if ($pageContentEl.length === 0) { + $pageContentEl = $el.parents('.page').eq(0).find('.page-content').eq(0); + } + } + + $el[0].f7ListIndex = index; + + Utils.extend(index, { + app: app, + $el: $el, + el: $el && $el[0], + $ul: $ul, + ul: $ul && $ul[0], + $listEl: $listEl, + listEl: $listEl && $listEl[0], + $pageContentEl: $pageContentEl, + pageContentEl: $pageContentEl && $pageContentEl[0], + indexes: params.indexes, + height: 0, + skipRate: 0, + }); + + // Install Modules + index.useModules(); + + // Attach events + function handleResize() { + var height = { index: index }; + index.calcSize(); + if (height !== index.height) { + index.render(); + } + } + + function handleClick(e) { + var $clickedLi = $(e.target).closest('li'); + if (!$clickedLi.length) { return; } + + var itemIndex = $clickedLi.index(); + if (index.skipRate > 0) { + var percentage = itemIndex / ($clickedLi.siblings('li').length - 1); + itemIndex = Math.round((index.indexes.length - 1) * percentage); + } + var itemContent = index.indexes[itemIndex]; + + index.$el.trigger('listindex:click', { content: itemContent, index: itemIndex }); + index.emit('local::click listIndexClick', index, itemContent, itemIndex); + index.$el.trigger('listindex:select', { content: itemContent, index: itemIndex }); + index.emit('local::select listIndexSelect', index, itemContent, itemIndex); + + if (index.$listEl && index.params.scrollList) { + index.scrollListToIndex(itemContent, itemIndex); + } + } + + var touchesStart = {}; + var isTouched; + var isMoved; + var topPoint; + var bottomPoint; + var $labelEl; + var previousIndex = null; + function handleTouchStart(e) { + var $children = $ul.children(); + if (!$children.length) { return; } + topPoint = $children[0].getBoundingClientRect().top; + bottomPoint = $children[$children.length - 1].getBoundingClientRect().top + $children[0].offsetHeight; + + touchesStart.x = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX; + touchesStart.y = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY; + isTouched = true; + isMoved = false; + previousIndex = null; + } + function handleTouchMove(e) { + if (!isTouched) { return; } + if (!isMoved && index.params.label) { + $labelEl = $(''); + $el.append($labelEl); + } + isMoved = true; + var pageY = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY; + e.preventDefault(); + + var percentage = (pageY - topPoint) / (bottomPoint - topPoint); + percentage = Math.min(Math.max(percentage, 0), 1); + + var itemIndex = Math.round((index.indexes.length - 1) * percentage); + var itemContent = index.indexes[itemIndex]; + + + var ulHeight = bottomPoint - topPoint; + var bubbleBottom = ((index.height - ulHeight) / 2) + ((1 - percentage) * ulHeight); + + if (itemIndex !== previousIndex) { + if (index.params.label) { + $labelEl.html(itemContent).transform(("translateY(-" + bubbleBottom + "px)")); + } + + if (index.$listEl && index.params.scrollList) { + index.scrollListToIndex(itemContent, itemIndex); + } + } + + previousIndex = itemIndex; + + index.$el.trigger('listindex:select'); + index.emit('local::select listIndexSelect', index, itemContent, itemIndex); + } + function handleTouchEnd() { + if (!isTouched) { return; } + isTouched = false; + isMoved = false; + if (index.params.label) { + if ($labelEl) { $labelEl.remove(); } + $labelEl = undefined; + } + } + var passiveListener = app.support.passiveListener ? { passive: true } : false; + index.attachEvents = function attachEvents() { + $el.parents('.tab').on('tab:show', handleResize); + $el.parents('.page').on('page:reinit', handleResize); + $el.parents('.panel').on('panel:open', handleResize); + $el + .parents('.sheet-modal, .actions-modal, .popup, .popover, .login-screen, .dialog, .toast') + .on('modal:open', handleResize); + app.on('resize', handleResize); + + $el.on('click', handleClick); + $el.on(app.touchEvents.start, handleTouchStart, passiveListener); + app.on('touchmove:active', handleTouchMove); + app.on('touchend:passive', handleTouchEnd); + }; + index.detachEvents = function attachEvents() { + $el.parents('.tab').off('tab:show', handleResize); + $el.parents('.page').off('page:reinit', handleResize); + $el.parents('.panel').off('panel:open', handleResize); + $el + .parents('.sheet-modal, .actions-modal, .popup, .popover, .login-screen, .dialog, .toast') + .off('modal:open', handleResize); + app.off('resize', handleResize); + + $el.off('click', handleClick); + $el.off(app.touchEvents.start, handleTouchStart, passiveListener); + app.off('touchmove:active', handleTouchMove); + app.off('touchend:passive', handleTouchEnd); + }; + // Init + index.init(); + + return index; + } + + if ( Framework7Class ) ListIndex.__proto__ = Framework7Class; + ListIndex.prototype = Object.create( Framework7Class && Framework7Class.prototype ); + ListIndex.prototype.constructor = ListIndex; + // eslint-disable-next-line + ListIndex.prototype.scrollListToIndex = function scrollListToIndex (itemContent, itemIndex) { + var index = this; + var $listEl = index.$listEl; + var $pageContentEl = index.$pageContentEl; + var app = index.app; + if (!$listEl || !$pageContentEl || $pageContentEl.length === 0) { return index; } + + var $scrollToEl; + $listEl.find('.list-group-title, .item-divider').each(function (elIndex, el) { + if ($scrollToEl) { return; } + var $el = $(el); + if ($el.text() === itemContent) { + $scrollToEl = $el; + } + }); + if (!$scrollToEl || $scrollToEl.length === 0) { return index; } + + var parentTop = $scrollToEl.parent().offset().top; + var paddingTop = parseInt($pageContentEl.css('padding-top'), 10); + var scrollTop = $pageContentEl[0].scrollTop; + var scrollToElTop = $scrollToEl.offset().top; + if ($pageContentEl.parents('.page-with-navbar-large').length) { + var navbarInnerEl = app.navbar.getElByPage($pageContentEl.parents('.page-with-navbar-large').eq(0)); + var $titleLargeEl = $(navbarInnerEl).find('.title-large'); + if ($titleLargeEl.length) { + paddingTop -= $titleLargeEl[0].offsetHeight || 0; + } + } + + if (parentTop <= paddingTop) { + $pageContentEl.scrollTop((parentTop + scrollTop) - paddingTop); + } else { + $pageContentEl.scrollTop((scrollToElTop + scrollTop) - paddingTop); + } + return index; + }; + + ListIndex.prototype.renderSkipPlaceholder = function renderSkipPlaceholder () { + var index = this; + return index.params.renderSkipPlaceholder.call(index); + }; + + ListIndex.prototype.renderItem = function renderItem (itemContent, itemIndex) { + var index = this; + return index.params.renderItem.call(index, itemContent, itemIndex); + }; + + ListIndex.prototype.render = function render () { + var index = this; + var $ul = index.$ul; + var indexes = index.indexes; + var skipRate = index.skipRate; + var wasSkipped; + + var html = indexes.map(function (itemContent, itemIndex) { + if (itemIndex % skipRate !== 0 && skipRate > 0) { + wasSkipped = true; + return ''; + } + var itemHtml = index.renderItem(itemContent, itemIndex); + if (wasSkipped) { + itemHtml = index.renderSkipPlaceholder() + itemHtml; + } + wasSkipped = false; + return itemHtml; + }).join(''); + + $ul.html(html); + + return index; + }; + + ListIndex.prototype.calcSize = function calcSize () { + var index = this; + var app = index.app; + var params = index.params; + var el = index.el; + var indexes = index.indexes; + var height = el.offsetHeight; + var itemHeight = params[((app.theme) + "ItemHeight")]; + var maxItems = Math.floor(height / itemHeight); + var items = indexes.length; + var skipRate = 0; + if (items > maxItems) { + skipRate = Math.ceil(((items * 2) - 1) / maxItems); + } + + index.height = height; + index.skipRate = skipRate; + + return index; + }; + + ListIndex.prototype.calcIndexes = function calcIndexes () { + var index = this; + if (index.params.indexes === 'auto') { + index.indexes = []; + + index.$listEl.find('.list-group-title, .item-divider').each(function (elIndex, el) { + var elContent = $(el).text(); + if (index.indexes.indexOf(elContent) < 0) { + index.indexes.push(elContent); + } + }); + } else { + index.indexes = index.params.indexes; + } + return index; + }; + + ListIndex.prototype.update = function update () { + var index = this; + index.calcIndexes(); + index.calcSize(); + index.render(); + + return index; + }; + + ListIndex.prototype.init = function init () { + var index = this; + index.calcIndexes(); + index.calcSize(); + index.render(); + index.attachEvents(); + }; + + ListIndex.prototype.destroy = function destroy () { + var index = this; + index.$el.trigger('listindex:beforedestroy', index); + index.emit('local::beforeDestroy listIndexBeforeDestroy'); + index.detachEvents(); + if (index.$el[0]) { + index.$el[0].f7ListIndex = null; + delete index.$el[0].f7ListIndex; + } + Utils.deleteProps(index); + index = null; + }; + + return ListIndex; + }(Framework7Class)); + + var ListIndex$1 = { + name: 'listIndex', + static: { + ListIndex: ListIndex, + }, + create: function create() { + var app = this; + app.listIndex = ConstructorMethods({ + defaultSelector: '.list-index', + constructor: ListIndex, + app: app, + domProp: 'f7ListIndex', + }); + }, + on: { + tabMounted: function tabMounted(tabEl) { + var app = this; + $(tabEl).find('.list-index-init').each(function (index, listIndexEl) { + var params = Utils.extend($(listIndexEl).dataset(), { el: listIndexEl }); + app.listIndex.create(params); + }); + }, + tabBeforeRemove: function tabBeforeRemove(tabEl) { + $(tabEl).find('.list-index-init').each(function (index, listIndexEl) { + if (listIndexEl.f7ListIndex) { listIndexEl.f7ListIndex.destroy(); } + }); + }, + pageInit: function pageInit(page) { + var app = this; + page.$el.find('.list-index-init').each(function (index, listIndexEl) { + var params = Utils.extend($(listIndexEl).dataset(), { el: listIndexEl }); + app.listIndex.create(params); + }); + }, + pageBeforeRemove: function pageBeforeRemove(page) { + page.$el.find('.list-index-init').each(function (index, listIndexEl) { + if (listIndexEl.f7ListIndex) { listIndexEl.f7ListIndex.destroy(); } + }); + }, + }, + vnode: { + 'list-index-init': { + insert: function insert(vnode) { + var app = this; + var listIndexEl = vnode.elm; + var params = Utils.extend($(listIndexEl).dataset(), { el: listIndexEl }); + app.listIndex.create(params); + }, + destroy: function destroy(vnode) { + var listIndexEl = vnode.elm; + if (listIndexEl.f7ListIndex) { listIndexEl.f7ListIndex.destroy(); } + }, + }, + }, + }; + + var Timeline = { + name: 'timeline', + }; + + var Tab = { + show: function show() { + var assign, assign$1, assign$2; + + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + var app = this; + + var tabEl; + var tabLinkEl; + var animate; + var tabRoute; + var animatedInit; + if (args.length === 1 && args[0] && args[0].constructor === Object) { + tabEl = args[0].tabEl; + tabLinkEl = args[0].tabLinkEl; + animate = args[0].animate; + tabRoute = args[0].tabRoute; + animatedInit = args[0].animatedInit; + } else { + (assign = args, tabEl = assign[0], tabLinkEl = assign[1], animate = assign[2], tabRoute = assign[3]); + if (typeof args[1] === 'boolean') { + (assign$1 = args, tabEl = assign$1[0], animate = assign$1[1], tabLinkEl = assign$1[2], tabRoute = assign$1[3]); + if (args.length > 2 && tabLinkEl.constructor === Object) { + (assign$2 = args, tabEl = assign$2[0], animate = assign$2[1], tabRoute = assign$2[2], tabLinkEl = assign$2[3]); + } + } + } + if (typeof animate === 'undefined') { animate = true; } + + var $newTabEl = $(tabEl); + if (tabRoute && $newTabEl[0]) { + $newTabEl[0].f7TabRoute = tabRoute; + } + + if (!animatedInit && ($newTabEl.length === 0 || $newTabEl.hasClass('tab-active'))) { + return { + $newTabEl: $newTabEl, + newTabEl: $newTabEl[0], + }; + } + + var $tabLinkEl; + if (tabLinkEl) { $tabLinkEl = $(tabLinkEl); } + + var $tabsEl = $newTabEl.parent('.tabs'); + if ($tabsEl.length === 0) { + return { + $newTabEl: $newTabEl, + newTabEl: $newTabEl[0], + }; + } + + // Release swipeouts in hidden tabs + if (app.swipeout) { app.swipeout.allowOpen = true; } + + // Animated tabs + var tabsChangedCallbacks = []; + + function onTabsChanged(callback) { + tabsChangedCallbacks.push(callback); + } + function tabsChanged() { + tabsChangedCallbacks.forEach(function (callback) { + callback(); + }); + } + + var animated = false; + + if ($tabsEl.parent().hasClass('tabs-animated-wrap')) { + $tabsEl.parent()[animate ? 'removeClass' : 'addClass']('not-animated'); + + var transitionDuration = parseFloat($tabsEl.css('transition-duration').replace(',', '.')); + if (animate && transitionDuration) { + $tabsEl.transitionEnd(tabsChanged); + animated = true; + } + + var tabsTranslate = (app.rtl ? $newTabEl.index() : -$newTabEl.index()) * 100; + $tabsEl.transform(("translate3d(" + tabsTranslate + "%,0,0)")); + } + + // Swipeable tabs + var swiper; + if ($tabsEl.parent().hasClass('tabs-swipeable-wrap') && app.swiper) { + swiper = $tabsEl.parent()[0].swiper; + if (swiper && swiper.activeIndex !== $newTabEl.index()) { + animated = true; + swiper + .once('slideChangeTransitionEnd', function () { + tabsChanged(); + }) + .slideTo($newTabEl.index(), animate ? undefined : 0); + } else if (swiper && swiper.animating) { + animated = true; + swiper + .once('slideChangeTransitionEnd', function () { + tabsChanged(); + }); + } + } + + // Remove active class from old tabs + var $oldTabEl = $tabsEl.children('.tab-active'); + $oldTabEl.removeClass('tab-active'); + if (!animatedInit && (!swiper || (swiper && !swiper.animating) || (swiper && tabRoute))) { + if ($oldTabEl.hasClass('view') && $oldTabEl.children('.page').length) { + $oldTabEl.children('.page').each(function (pageIndex, pageEl) { + $(pageEl).trigger('page:tabhide'); + app.emit('pageTabHide', pageEl); + }); + } + $oldTabEl.trigger('tab:hide'); + app.emit('tabHide', $oldTabEl[0]); + } + + // Trigger 'show' event on new tab + $newTabEl.addClass('tab-active'); + if (!animatedInit && (!swiper || (swiper && !swiper.animating) || (swiper && tabRoute))) { + if ($newTabEl.hasClass('view') && $newTabEl.children('.page').length) { + $newTabEl.children('.page').each(function (pageIndex, pageEl) { + $(pageEl).trigger('page:tabshow'); + app.emit('pageTabShow', pageEl); + }); + } + $newTabEl.trigger('tab:show'); + app.emit('tabShow', $newTabEl[0]); + } + + // Find related link for new tab + if (!$tabLinkEl) { + // Search by id + if (typeof tabEl === 'string') { $tabLinkEl = $((".tab-link[href=\"" + tabEl + "\"]")); } + else { $tabLinkEl = $((".tab-link[href=\"#" + ($newTabEl.attr('id')) + "\"]")); } + // Search by data-tab + if (!$tabLinkEl || ($tabLinkEl && $tabLinkEl.length === 0)) { + $('[data-tab]').each(function (index, el) { + if ($newTabEl.is($(el).attr('data-tab'))) { $tabLinkEl = $(el); } + }); + } + if (tabRoute && (!$tabLinkEl || ($tabLinkEl && $tabLinkEl.length === 0))) { + $tabLinkEl = $(("[data-route-tab-id=\"" + (tabRoute.route.tab.id) + "\"]")); + if ($tabLinkEl.length === 0) { + $tabLinkEl = $((".tab-link[href=\"" + (tabRoute.url) + "\"]")); + } + } + if ($tabLinkEl.length > 1 && $newTabEl.parents('.page').length) { + // eslint-disable-next-line + $tabLinkEl = $tabLinkEl.filter(function (index, tabLinkElement) { + return $(tabLinkElement).parents('.page')[0] === $newTabEl.parents('.page')[0]; + }); + if (app.theme === 'ios' && $tabLinkEl.length === 0 && tabRoute) { + var $pageEl = $newTabEl.parents('.page'); + var $navbarEl = $(app.navbar.getElByPage($pageEl)); + $tabLinkEl = $navbarEl.find(("[data-route-tab-id=\"" + (tabRoute.route.tab.id) + "\"]")); + if ($tabLinkEl.length === 0) { + $tabLinkEl = $navbarEl.find((".tab-link[href=\"" + (tabRoute.url) + "\"]")); + } + } + } + } + if ($tabLinkEl.length > 0) { + // Find related link for old tab + var $oldTabLinkEl; + if ($oldTabEl && $oldTabEl.length > 0) { + // Search by id + var oldTabId = $oldTabEl.attr('id'); + if (oldTabId) { + $oldTabLinkEl = $((".tab-link[href=\"#" + oldTabId + "\"]")); + // Search by data-route-tab-id + if (!$oldTabLinkEl || ($oldTabLinkEl && $oldTabLinkEl.length === 0)) { + $oldTabLinkEl = $((".tab-link[data-route-tab-id=\"" + oldTabId + "\"]")); + } + } + // Search by data-tab + if (!$oldTabLinkEl || ($oldTabLinkEl && $oldTabLinkEl.length === 0)) { + $('[data-tab]').each(function (index, tabLinkElement) { + if ($oldTabEl.is($(tabLinkElement).attr('data-tab'))) { $oldTabLinkEl = $(tabLinkElement); } + }); + } + if (!$oldTabLinkEl || ($oldTabLinkEl && $oldTabLinkEl.length === 0)) { + $oldTabLinkEl = $tabLinkEl.siblings('.tab-link-active'); + } + } else if (tabRoute) { + $oldTabLinkEl = $tabLinkEl.siblings('.tab-link-active'); + } + + if ($oldTabLinkEl && $oldTabLinkEl.length > 1 && $oldTabEl && $oldTabEl.parents('.page').length) { + // eslint-disable-next-line + $oldTabLinkEl = $oldTabLinkEl.filter(function (index, tabLinkElement) { + return $(tabLinkElement).parents('.page')[0] === $oldTabEl.parents('.page')[0]; + }); + } + + if ($oldTabLinkEl && $oldTabLinkEl.length > 0) { $oldTabLinkEl.removeClass('tab-link-active'); } + + // Update links' classes + if ($tabLinkEl && $tabLinkEl.length > 0) { + $tabLinkEl.addClass('tab-link-active'); + // Material Highlight + if (app.theme === 'md' && app.toolbar) { + var $tabbarEl = $tabLinkEl.parents('.tabbar, .tabbar-labels'); + if ($tabbarEl.length > 0) { + app.toolbar.setHighlight($tabbarEl); + } + } + } + } + return { + $newTabEl: $newTabEl, + newTabEl: $newTabEl[0], + $oldTabEl: $oldTabEl, + oldTabEl: $oldTabEl[0], + onTabsChanged: onTabsChanged, + animated: animated, + }; + }, + }; + var Tabs = { + name: 'tabs', + create: function create() { + var app = this; + Utils.extend(app, { + tab: { + show: Tab.show.bind(app), + }, + }); + }, + on: { + 'pageInit tabMounted': function onInit(pageOrTabEl) { + var $el = $(pageOrTabEl.el || pageOrTabEl); + var animatedTabEl = $el.find('.tabs-animated-wrap > .tabs > .tab-active')[0]; + if (!animatedTabEl) { return; } + var app = this; + app.tab.show({ tabEl: animatedTabEl, animatedInit: true, animate: false }); + }, + }, + clicks: { + '.tab-link': function tabLinkClick($clickedEl, data) { + if ( data === void 0 ) data = {}; + + if (($clickedEl.attr('href') && $clickedEl.attr('href').indexOf('#') === 0) || $clickedEl.attr('data-tab')) { + var app = this; + app.tab.show({ + tabEl: data.tab || $clickedEl.attr('href'), + tabLinkEl: $clickedEl, + animate: data.animate, + }); + } + }, + }, + }; + + function swipePanel(panel) { + var app = panel.app; + if (panel.swipeInitialized) { + return; + } + Utils.extend(panel, { + swipeable: true, + swipeInitialized: true, + }); + var params = panel.params; + var $el = panel.$el; + var $backdropEl = panel.$backdropEl; + var side = panel.side; + var effect = panel.effect; + var otherPanel; + + var isTouched; + var isGestureStarted; + var isMoved; + var isScrolling; + var isInterrupted; + var touchesStart = {}; + var touchStartTime; + var touchesDiff; + var translate; + var backdropOpacity; + var panelWidth; + var direction; + + var $viewEl; + + var touchMoves = 0; + function handleTouchStart(e) { + if (!panel.swipeable || isGestureStarted) { return; } + if (!app.panel.allowOpen || (!params.swipe && !params.swipeOnlyClose) || isTouched) { return; } + if ($('.modal-in:not(.toast):not(.notification), .photo-browser-in').length > 0) { return; } + otherPanel = app.panel.get(side === 'left' ? 'right' : 'left') || {}; + var otherPanelOpened = otherPanel.opened && otherPanel.$el && !otherPanel.$el.hasClass('panel-in-breakpoint'); + if (!panel.opened && otherPanelOpened) { + return; + } + if (!params.swipeOnlyClose) { + if (otherPanelOpened) { return; } + } + if (e.target && e.target.nodeName.toLowerCase() === 'input' && e.target.type === 'range') { return; } + if ($(e.target).closest('.range-slider, .tabs-swipeable-wrap, .calendar-months, .no-swipe-panel, .card-opened').length > 0) { return; } + touchesStart.x = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX; + touchesStart.y = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY; + if (params.swipeOnlyClose && !panel.opened) { + return; + } + if (params.swipeActiveArea && !panel.opened) { + if (side === 'left') { + if (touchesStart.x > params.swipeActiveArea) { return; } + } + if (side === 'right') { + if (touchesStart.x < app.width - params.swipeActiveArea) { return; } + } + } + touchMoves = 0; + $viewEl = $(panel.getViewEl()); + isMoved = false; + isTouched = true; + isScrolling = undefined; + isInterrupted = false; + + touchStartTime = Utils.now(); + direction = undefined; + } + function handleTouchMove(e) { + if (!isTouched || isGestureStarted || isInterrupted) { return; } + touchMoves += 1; + if (touchMoves < 2) { return; } + if (e.f7PreventSwipePanel || app.preventSwipePanelBySwipeBack || app.preventSwipePanel) { + isTouched = false; + return; + } + var pageX = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX; + var pageY = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY; + if (typeof isScrolling === 'undefined') { + isScrolling = !!(isScrolling || Math.abs(pageY - touchesStart.y) > Math.abs(pageX - touchesStart.x)); + } + if (isScrolling) { + isTouched = false; + return; + } + if (!direction) { + if (pageX > touchesStart.x) { + direction = 'to-right'; + } else { + direction = 'to-left'; + } + + if (params.swipeActiveArea > 0 && !panel.opened) { + if (side === 'left' && touchesStart.x > params.swipeActiveArea) { + isTouched = false; + return; + } + if (side === 'right' && touchesStart.x < app.width - params.swipeActiveArea) { + isTouched = false; + return; + } + } + if ($el.hasClass('panel-in-breakpoint')) { + isTouched = false; + return; + } + + if ( + (side === 'left' + && ( + direction === 'to-left' && !$el.hasClass('panel-in') + ) + ) + || (side === 'right' + && ( + direction === 'to-right' && !$el.hasClass('panel-in') + ) + ) + ) { + isTouched = false; + return; + } + } + + var threshold = panel.opened ? 0 : -params.swipeThreshold; + if (side === 'right') { threshold = -threshold; } + + if (!isMoved) { + if (!panel.opened) { + panel.insertToRoot(); + $el.addClass('panel-in-swipe'); + $backdropEl.css('visibility', 'visible'); + $el.trigger('panel:swipeopen'); + panel.emit('local::swipeOpen panelSwipeOpen', panel); + } + panelWidth = $el[0].offsetWidth; + if (effect === 'reveal' && $el.hasClass('panel-in-collapsed')) { + panelWidth -= parseFloat($viewEl.css(("margin-" + side))); + } + $el.transition(0); + } + + isMoved = true; + + e.preventDefault(); + + touchesDiff = (pageX - touchesStart.x) + threshold; + + if (side === 'right') { + if (effect === 'cover') { + translate = touchesDiff + (panel.opened ? 0 : panelWidth); + if (translate < 0) { translate = 0; } + if (translate > panelWidth) { + translate = panelWidth; + } + } else { + translate = touchesDiff - (panel.opened ? panelWidth : 0); + if (translate > 0) { translate = 0; } + if (translate < -panelWidth) { + translate = -panelWidth; + } + } + } else { + translate = touchesDiff + (panel.opened ? panelWidth : 0); + if (translate < 0) { translate = 0; } + if (translate > panelWidth) { + translate = panelWidth; + } + } + var noFollowProgress = Math.abs(translate / panelWidth); + if (effect === 'reveal') { + if (!params.swipeNoFollow) { + $viewEl.transform(("translate3d(" + translate + "px,0,0)")).transition(0); + $backdropEl.transform(("translate3d(" + translate + "px,0,0)")).transition(0); + } + + $el.trigger('panel:swipe', Math.abs(translate / panelWidth)); + panel.emit('local::swipe panelSwipe', panel, Math.abs(translate / panelWidth)); + } else { + if (side === 'left') { translate -= panelWidth; } + if (!params.swipeNoFollow) { + $el.transform(("translate3d(" + translate + "px,0,0)")).transition(0); + + $backdropEl.transition(0); + backdropOpacity = 1 - Math.abs(translate / panelWidth); + $backdropEl.css({ opacity: backdropOpacity }); + } + + $el.trigger('panel:swipe', Math.abs(translate / panelWidth)); + panel.emit('local::swipe panelSwipe', panel, Math.abs(translate / panelWidth)); + } + + if (params.swipeNoFollow) { + var stateChanged = (panel.opened && noFollowProgress === 0) || (!panel.opened && noFollowProgress === 1); + if (stateChanged) { + isInterrupted = true; + // eslint-disable-next-line + handleTouchEnd(e); + } + } + } + function handleTouchEnd(e) { + if (!isTouched || !isMoved) { + isTouched = false; + isMoved = false; + return; + } + var isGesture = e.type === 'gesturestart' || isGestureStarted; + isTouched = false; + isMoved = false; + var timeDiff = (new Date()).getTime() - touchStartTime; + var action; + var edge = (translate === 0 || Math.abs(translate) === panelWidth) && !params.swipeNoFollow; + + var threshold = params.swipeThreshold || 0; + + if (isGesture) { + action = 'reset'; + } else if (!panel.opened) { + if (Math.abs(touchesDiff) < threshold) { + action = 'reset'; + } else if (effect === 'cover') { + if (translate === 0) { + action = 'swap'; // open + } else if (timeDiff < 300 && Math.abs(translate) > 0) { + action = 'swap'; // open + } else if (timeDiff >= 300 && Math.abs(translate) < panelWidth / 2) { + action = 'swap'; // open + } else { + action = 'reset'; // close + } + } else if (translate === 0) { + action = 'reset'; + } else if ( + (timeDiff < 300 && Math.abs(translate) > 0) + || (timeDiff >= 300 && (Math.abs(translate) >= panelWidth / 2)) + ) { + action = 'swap'; + } else { + action = 'reset'; + } + } else if (effect === 'cover') { + if (translate === 0) { + action = 'reset'; // open + } else if (timeDiff < 300 && Math.abs(translate) > 0) { + action = 'swap'; // open + } else if (timeDiff >= 300 && Math.abs(translate) < panelWidth / 2) { + action = 'reset'; // open + } else { + action = 'swap'; // close + } + } else if (translate === -panelWidth) { + action = 'reset'; + } else if ( + (timeDiff < 300 && Math.abs(translate) >= 0) + || (timeDiff >= 300 && (Math.abs(translate) <= panelWidth / 2)) + ) { + if (side === 'left' && translate === panelWidth) { action = 'reset'; } + else { action = 'swap'; } + } else { + action = 'reset'; + } + if (action === 'swap') { + if (panel.opened) { + panel.close(!edge); + } else { + panel.open(!edge); + } + } + var removePanelInClass = true; + if (action === 'reset') { + if (!panel.opened) { + if (edge) { + // edge position + $el.removeClass('panel-in-swipe'); + } else { + removePanelInClass = false; + var target = effect === 'reveal' ? $viewEl : $el; + $('html').addClass('with-panel-closing'); + target.transitionEnd(function () { + if ($el.hasClass('panel-in')) { return; } + $el.removeClass('panel-in-swipe'); + $('html').removeClass('with-panel-closing'); + }); + } + } + } + if (effect === 'reveal') { + Utils.nextFrame(function () { + $viewEl.transition(''); + $viewEl.transform(''); + }); + } + if (removePanelInClass) { + $el.removeClass('panel-in-swipe'); + } + $el.transition('').transform(''); + $backdropEl.transform('').transition('').css({ opacity: '', visibility: '' }); + } + function handleGestureStart(e) { + isGestureStarted = true; + handleTouchEnd(e); + } + function handleGestureEnd() { + isGestureStarted = false; + } + + // Add Events + app.on('touchstart:passive', handleTouchStart); + app.on('touchmove:active', handleTouchMove); + app.on('touchend:passive', handleTouchEnd); + app.on('gesturestart', handleGestureStart); + app.on('gestureend', handleGestureEnd); + panel.on('panelDestroy', function () { + app.off('touchstart:passive', handleTouchStart); + app.off('touchmove:active', handleTouchMove); + app.off('touchend:passive', handleTouchEnd); + app.off('gesturestart', handleGestureStart); + app.off('gestureend', handleGestureEnd); + }); + } + + function resizablePanel(panel) { + var app = panel.app; + if (panel.resizableInitialized) { return; } + Utils.extend(panel, { + resizable: true, + resizableWidth: null, + resizableInitialized: true, + }); + var $htmlEl = $('html'); + var $el = panel.$el; + var $backdropEl = panel.$backdropEl; + var side = panel.side; + var effect = panel.effect; + if (!$el) { return; } + + var isTouched; + var isMoved; + var touchesStart = {}; + var touchesDiff; + var panelWidth; + + var $viewEl; + + var panelMinWidth; + var panelMaxWidth; + var visibleByBreakpoint; + + function transformCSSWidth(v) { + if (!v) { return null; } + if (v.indexOf('%') >= 0 || v.indexOf('vw') >= 0) { + return parseInt(v, 10) / 100 * app.width; + } + var newV = parseInt(v, 10); + if (Number.isNaN(newV)) { return null; } + return newV; + } + + function isResizable() { + return panel.resizable && $el.hasClass('panel-resizable'); + } + + function handleTouchStart(e) { + if (!isResizable()) { return; } + touchesStart.x = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX; + touchesStart.y = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY; + isMoved = false; + isTouched = true; + panelMinWidth = transformCSSWidth($el.css('min-width')); + panelMaxWidth = transformCSSWidth($el.css('max-width')); + visibleByBreakpoint = $el.hasClass('panel-in-breakpoint'); + } + function handleTouchMove(e) { + if (!isTouched) { return; } + var pageX = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX; + + if (!isMoved) { + panelWidth = $el[0].offsetWidth; + $el.transition(0); + $el.addClass('panel-resizing'); + $htmlEl.css('cursor', 'col-resize'); + if (effect === 'reveal' || visibleByBreakpoint) { + $viewEl = $(panel.getViewEl()); + } + if (effect === 'reveal' && !visibleByBreakpoint) { + $backdropEl.transition(0); + $viewEl.transition(0); + } + } + + isMoved = true; + + e.preventDefault(); + + touchesDiff = (pageX - touchesStart.x); + + var newPanelWidth = side === 'left' ? panelWidth + touchesDiff : panelWidth - touchesDiff; + if (panelMinWidth && !Number.isNaN(panelMinWidth)) { + newPanelWidth = Math.max(newPanelWidth, panelMinWidth); + } + if (panelMaxWidth && !Number.isNaN(panelMaxWidth)) { + newPanelWidth = Math.min(newPanelWidth, panelMaxWidth); + } + newPanelWidth = Math.min(Math.max(newPanelWidth, 0), app.width); + + panel.resizableWidth = newPanelWidth; + $el[0].style.width = newPanelWidth + "px"; + if (effect === 'reveal' && !visibleByBreakpoint) { + if ($viewEl) { + $viewEl.transform(("translate3d(" + (side === 'left' ? newPanelWidth : -newPanelWidth) + "px, 0, 0)")); + } + if ($backdropEl) { + $backdropEl.transform(("translate3d(" + (side === 'left' ? newPanelWidth : -newPanelWidth) + "px, 0, 0)")); + } + } else if (visibleByBreakpoint && $viewEl) { + $viewEl.css(("margin-" + side), (newPanelWidth + "px")); + } + + $el.trigger('panel:resize', newPanelWidth); + panel.emit('local::resize panelResize', panel, newPanelWidth); + } + function handleTouchEnd() { + $('html').css('cursor', ''); + if (!isTouched || !isMoved) { + isTouched = false; + isMoved = false; + return; + } + isTouched = false; + isMoved = false; + + $htmlEl[0].style.setProperty(("--f7-panel-" + side + "-width"), ((panel.resizableWidth) + "px")); + $el[0].style.width = ''; + if (effect === 'reveal' && !visibleByBreakpoint) { + $viewEl.transform(''); + $backdropEl.transform(''); + } + $el.removeClass('panel-resizing'); + Utils.nextFrame(function () { + $el.transition(''); + if (effect === 'reveal') { + $backdropEl.transition(''); + if ($viewEl) { $viewEl.transition(''); } + } + }); + } + + function handleResize() { + if (!panel.opened || !panel.resizableWidth) { return; } + panelMinWidth = transformCSSWidth($el.css('min-width')); + panelMaxWidth = transformCSSWidth($el.css('max-width')); + + if (panelMinWidth && !Number.isNaN(panelMinWidth) && panel.resizableWidth < panelMinWidth) { + panel.resizableWidth = Math.max(panel.resizableWidth, panelMinWidth); + } + if (panelMaxWidth && !Number.isNaN(panelMaxWidth) && panel.resizableWidth > panelMaxWidth) { + panel.resizableWidth = Math.min(panel.resizableWidth, panelMaxWidth); + } + panel.resizableWidth = Math.min(Math.max(panel.resizableWidth, 0), app.width); + + $htmlEl[0].style.setProperty(("--f7-panel-" + side + "-width"), ((panel.resizableWidth) + "px")); + } + + if (panel.$el.find('.panel-resize-handler').length === 0) { + panel.$el.append('
          '); + } + panel.$resizeHandlerEl = panel.$el.children('.panel-resize-handler'); + + $el.addClass('panel-resizable'); + + // Add Events + var passive = Support.passiveListener ? { passive: true } : false; + + panel.$el.on(app.touchEvents.start, '.panel-resize-handler', handleTouchStart, passive); + app.on('touchmove:active', handleTouchMove); + app.on('touchend:passive', handleTouchEnd); + app.on('resize', handleResize); + panel.on('beforeOpen', handleResize); + + panel.once('panelDestroy', function () { + $el.removeClass('panel-resizable'); + panel.$resizeHandlerEl.remove(); + panel.$el.off(app.touchEvents.start, '.panel-resize-handler', handleTouchStart, passive); + app.off('touchmove:active', handleTouchMove); + app.off('touchend:passive', handleTouchEnd); + app.off('resize', handleResize); + panel.off('beforeOpen', handleResize); + }); + } + + var Panel = /*@__PURE__*/(function (Framework7Class) { + function Panel(app, params) { + if ( params === void 0 ) params = {}; + + var extendedParams = Utils.extend( + { on: {} }, + app.params.panel, + params + ); + Framework7Class.call(this, extendedParams, [app]); + + var panel = this; + + panel.params = extendedParams; + panel.$containerEl = panel.params.containerEl ? $(panel.params.containerEl).eq(0) : app.root; + panel.containerEl = panel.$containerEl[0]; + + var $el; + if (panel.params.el) { + $el = $(panel.params.el).eq(0); + } else if (panel.params.content) { + $el = $(panel.params.content).filter(function (elIndex, node) { return node.nodeType === 1; }).eq(0); + } + + if ($el.length === 0) { return panel; } + if ($el[0].f7Panel) { return $el[0].f7Panel; } + + $el[0].f7Panel = panel; + + var ref = panel.params; + var side = ref.side; + var effect = ref.effect; + var resizable = ref.resizable; + if (typeof side === 'undefined') { side = $el.hasClass('panel-left') ? 'left' : 'right'; } + if (typeof effect === 'undefined') { effect = $el.hasClass('panel-cover') ? 'cover' : 'reveal'; } + if (typeof resizable === 'undefined') { resizable = $el.hasClass('panel-resizable'); } + + var $backdropEl; + if (panel.params.backdrop && panel.params.backdropEl) { + $backdropEl = $(panel.params.backdropEl); + } else if (panel.params.backdrop) { + $backdropEl = panel.$containerEl.children('.panel-backdrop'); + if ($backdropEl.length === 0) { + $backdropEl = $('
          '); + panel.$containerEl.prepend($backdropEl); + } + } + + Utils.extend(panel, { + app: app, + side: side, + effect: effect, + resizable: resizable, + $el: $el, + el: $el[0], + opened: false, + $backdropEl: $backdropEl, + backdropEl: $backdropEl && $backdropEl[0], + }); + + // Install Modules + panel.useModules(); + + // Init + panel.init(); + + return panel; + } + + if ( Framework7Class ) Panel.__proto__ = Framework7Class; + Panel.prototype = Object.create( Framework7Class && Framework7Class.prototype ); + Panel.prototype.constructor = Panel; + + Panel.prototype.getViewEl = function getViewEl () { + var panel = this; + var viewEl; + if (panel.$containerEl.children('.views').length > 0) { + viewEl = panel.$containerEl.children('.views')[0]; + } else { + viewEl = panel.$containerEl.children('.view')[0]; + } + return viewEl; + }; + + Panel.prototype.enableVisibleBreakpoint = function enableVisibleBreakpoint () { + var panel = this; + panel.visibleBreakpointDisabled = false; + panel.setVisibleBreakpoint(); + return panel; + }; + + Panel.prototype.disableVisibleBreakpoint = function disableVisibleBreakpoint () { + var panel = this; + panel.visibleBreakpointDisabled = true; + panel.setVisibleBreakpoint(); + return panel; + }; + + Panel.prototype.toggleVisibleBreakpoint = function toggleVisibleBreakpoint () { + var panel = this; + panel.visibleBreakpointDisabled = !panel.visibleBreakpointDisabled; + panel.setVisibleBreakpoint(); + return panel; + }; + + Panel.prototype.setVisibleBreakpoint = function setVisibleBreakpoint (emitEvents) { + var obj, obj$1, obj$2; + + if ( emitEvents === void 0 ) emitEvents = true; + var panel = this; + var app = panel.app; + if (!panel.visibleBreakpointResizeHandler) { + panel.visibleBreakpointResizeHandler = function visibleBreakpointResizeHandler() { + panel.setVisibleBreakpoint(); + }; + app.on('resize', panel.visibleBreakpointResizeHandler); + } + var side = panel.side; + var $el = panel.$el; + var params = panel.params; + var visibleBreakpointDisabled = panel.visibleBreakpointDisabled; + var breakpoint = params.visibleBreakpoint; + var $viewEl = $(panel.getViewEl()); + var wasVisible = $el.hasClass('panel-in-breakpoint'); + + if (app.width >= breakpoint && typeof breakpoint !== 'undefined' && breakpoint !== null && !visibleBreakpointDisabled) { + if (!wasVisible) { + $('html').removeClass(("with-panel-" + side + "-reveal with-panel-" + side + "-cover with-panel")); + $el.addClass('panel-in-breakpoint').removeClass('panel-in panel-in-collapsed'); + panel.onOpen(false); + panel.onOpened(); + $viewEl.css(( obj = {}, obj[("margin-" + side)] = (($el.width()) + "px"), obj )); + app.allowPanelOpen = true; + if (emitEvents) { + panel.emit('local::breakpoint panelBreakpoint', panel); + panel.$el.trigger('panel:breakpoint'); + } + } else { + $viewEl.css(( obj$1 = {}, obj$1[("margin-" + side)] = (($el.width()) + "px"), obj$1 )); + } + } else if (wasVisible) { + $el.removeClass('panel-in-breakpoint panel-in'); + panel.onClose(); + panel.onClosed(); + $viewEl.css(( obj$2 = {}, obj$2[("margin-" + side)] = '', obj$2 )); + if (emitEvents) { + panel.emit('local::breakpoint panelBreakpoint', panel); + panel.$el.trigger('panel:breakpoint'); + } + } + }; + + Panel.prototype.enableCollapsedBreakpoint = function enableCollapsedBreakpoint () { + var panel = this; + panel.collapsedBreakpointDisabled = false; + panel.setCollapsedBreakpoint(); + return panel; + }; + + Panel.prototype.disableCollapsedBreakpoint = function disableCollapsedBreakpoint () { + var panel = this; + panel.collapsedBreakpointDisabled = true; + panel.setCollapsedBreakpoint(); + return panel; + }; + + Panel.prototype.toggleCollapsedBreakpoint = function toggleCollapsedBreakpoint () { + var panel = this; + panel.collapsedBreakpointDisabled = !panel.collapsedBreakpointDisabled; + panel.setCollapsedBreakpoint(); + return panel; + }; + + Panel.prototype.setCollapsedBreakpoint = function setCollapsedBreakpoint (emitEvents) { + var panel = this; + var app = panel.app; + if (!panel.collapsedBreakpointResizeHandler) { + panel.collapsedBreakpointResizeHandler = function collapsedBreakpointResizeHandler() { + panel.setCollapsedBreakpoint(); + }; + app.on('resize', panel.collapsedBreakpointResizeHandler); + } + var side = panel.side; + var $el = panel.$el; + var params = panel.params; + var collapsedBreakpointDisabled = panel.collapsedBreakpointDisabled; + if ($el.hasClass('panel-in-breakpoint')) { return; } + var breakpoint = params.collapsedBreakpoint; + var wasVisible = $el.hasClass('panel-in-collapsed'); + + if (app.width >= breakpoint && typeof breakpoint !== 'undefined' && breakpoint !== null && !collapsedBreakpointDisabled) { + if (!wasVisible) { + $('html').removeClass(("with-panel-" + side + "-reveal with-panel-" + side + "-cover with-panel")); + $el.addClass('panel-in-collapsed').removeClass('panel-in'); + panel.collapsed = true; + app.allowPanelOpen = true; + if (emitEvents) { + panel.emit('local::collapsedBreakpoint panelCollapsedBreakpoint', panel); + panel.$el.trigger('panel:collapsedbreakpoint'); + } + } + } else if (wasVisible) { + $el.removeClass('panel-in-collapsed panel-in'); + panel.collapsed = false; + if (emitEvents) { + panel.emit('local::collapsedBreakpoint panelCollapsedBreakpoint', panel); + panel.$el.trigger('panel:collapsedbreakpoint'); + } + } + }; + + Panel.prototype.enableResizable = function enableResizable () { + var panel = this; + if (panel.resizableInitialized) { + panel.resizable = true; + panel.$el.addClass('panel-resizable'); + } else { + resizablePanel(panel); + } + return panel; + }; + + Panel.prototype.disableResizable = function disableResizable () { + var panel = this; + panel.resizable = false; + panel.$el.removeClass('panel-resizable'); + return panel; + }; + + Panel.prototype.enableSwipe = function enableSwipe () { + var panel = this; + if (panel.swipeInitialized) { + panel.swipeable = true; + } else { + swipePanel(panel); + } + return panel; + }; + + Panel.prototype.disableSwipe = function disableSwipe () { + var panel = this; + panel.swipeable = false; + return panel; + }; + + Panel.prototype.onOpen = function onOpen (modifyHtmlClasses) { + if ( modifyHtmlClasses === void 0 ) modifyHtmlClasses = true; + + var panel = this; + var app = panel.app; + + panel.opened = true; + app.panel.allowOpen = false; + + panel.$el.trigger('panel:beforeopen'); + panel.emit('local::beforeOpen panelBeforeOpen', panel); + + if (modifyHtmlClasses) { + $('html').addClass(("with-panel with-panel-" + (panel.side) + "-" + (panel.effect))); + } + + panel.$el.trigger('panel:open'); + panel.emit('local::open panelOpen', panel); + }; + + Panel.prototype.onOpened = function onOpened () { + var panel = this; + var app = panel.app; + + app.panel.allowOpen = true; + + panel.$el.trigger('panel:opened'); + panel.emit('local::opened panelOpened', panel); + }; + + Panel.prototype.onClose = function onClose () { + var panel = this; + var app = panel.app; + + panel.opened = false; + app.panel.allowOpen = false; + + panel.$el.trigger('panel:beforeclose'); + panel.emit('local::beforeClose panelBeforeClose', panel); + + $('html').addClass('with-panel-closing'); + $('html').removeClass(("with-panel with-panel-" + (panel.side) + "-" + (panel.effect))); + + panel.$el.trigger('panel:close'); + panel.emit('local::close panelClose', panel); + }; + + Panel.prototype.onClosed = function onClosed () { + var panel = this; + var app = panel.app; + app.panel.allowOpen = true; + $('html').removeClass('with-panel-closing'); + panel.$el.removeClass('panel-out'); + if (panel.$backdropEl) { + var otherPanel = app.panel.get('.panel-in'); + var shouldHideBackdrop = !otherPanel || (otherPanel && !otherPanel.$backdropEl); + if (shouldHideBackdrop) { + panel.$backdropEl.removeClass('panel-backdrop-in'); + } + } + panel.$el.trigger('panel:closed'); + panel.emit('local::closed panelClosed', panel); + }; + + Panel.prototype.toggle = function toggle (animate) { + if ( animate === void 0 ) animate = true; + + var panel = this; + var breakpoint = panel.params.visibleBreakpoint; + var app = panel.app; + if (app.width >= breakpoint && typeof breakpoint !== 'undefined' && breakpoint !== null) { + return panel.toggleVisibleBreakpoint(); + } + if (panel.opened) { panel.close(animate); } + else { panel.open(animate); } + return panel; + }; + + Panel.prototype.insertToRoot = function insertToRoot () { + var panel = this; + var $el = panel.$el; + var $backdropEl = panel.$backdropEl; + var $containerEl = panel.$containerEl; + var $panelParentEl = $el.parent(); + var wasInDom = $el.parents(document).length > 0; + + if (!$panelParentEl.is($containerEl) || $el.prevAll('.views, .view').length) { + var $insertBeforeEl = $containerEl.children('.panel, .views, .view').eq(0); + var $insertAfterEl = $containerEl.children('.panel-backdrop').eq(0); + + if ($insertBeforeEl.length) { + $el.insertBefore($insertBeforeEl); + } else if ($insertAfterEl) { + $el.insertBefore($insertAfterEl); + } else { + $containerEl.prepend($el); + } + + if ($backdropEl + && $backdropEl.length + && ( + ( + !$backdropEl.parent().is($containerEl) + && $backdropEl.nextAll('.panel').length === 0 + ) + || ( + $backdropEl.parent().is($containerEl) + && $backdropEl.nextAll('.panel').length === 0 + ) + ) + ) { + $backdropEl.insertBefore($el); + } + + panel.once('panelClosed', function () { + if (wasInDom) { + $panelParentEl.append($el); + } else { + $el.remove(); + } + }); + } + }; + + Panel.prototype.open = function open (animate) { + if ( animate === void 0 ) animate = true; + + var panel = this; + var app = panel.app; + + if (!app.panel.allowOpen) { return false; } + + var effect = panel.effect; + var $el = panel.$el; + var $backdropEl = panel.$backdropEl; + var opened = panel.opened; + + if (!$el || $el.hasClass('panel-in')) { + return panel; + } + + panel.insertToRoot(); + + // Ignore if opened + if (opened || $el.hasClass('panel-in-breakpoint') || $el.hasClass('panel-in')) { return false; } + + // Close if some panel is opened + var otherOpenedPanel = app.panel.get('.panel-in'); + if (otherOpenedPanel && otherOpenedPanel !== panel) { + otherOpenedPanel.close(animate); + } + + $el[animate ? 'removeClass' : 'addClass']('not-animated'); + $el.addClass('panel-in'); + + if ($backdropEl) { + $backdropEl.addClass('panel-backdrop-in'); + $backdropEl[animate ? 'removeClass' : 'addClass']('not-animated'); + } + + if (panel.effect === 'cover') { + /* eslint no-underscore-dangle: ["error", { "allow": ["_clientLeft"] }] */ + panel._clientLeft = $el[0].clientLeft; + } + + // Transitionend + var transitionEndTarget = effect === 'reveal' ? $el.nextAll('.view, .views').eq(0) : $el; + + function panelTransitionEnd() { + transitionEndTarget.transitionEnd(function (e) { + if ($(e.target).is(transitionEndTarget)) { + if ($el.hasClass('panel-out')) { + panel.onClosed(); + } else { + panel.onOpened(); + } + } else { panelTransitionEnd(); } + }); + } + if (animate) { + if ($backdropEl) { + $backdropEl.removeClass('not-animated'); + } + panelTransitionEnd(); + $el + .removeClass('panel-out not-animated') + .addClass('panel-in'); + panel.onOpen(); + } else { + if ($backdropEl) { + $backdropEl.addClass('not-animated'); + } + $el.removeClass('panel-out').addClass('panel-in not-animated'); + panel.onOpen(); + panel.onOpened(); + } + + return true; + }; + + Panel.prototype.close = function close (animate) { + if ( animate === void 0 ) animate = true; + + var panel = this; + + var effect = panel.effect; + var $el = panel.$el; + var $backdropEl = panel.$backdropEl; + var opened = panel.opened; + if (!opened || $el.hasClass('panel-in-breakpoint') || !$el.hasClass('panel-in')) { return panel; } + + $el[animate ? 'removeClass' : 'addClass']('not-animated'); + if ($backdropEl) { + $backdropEl[animate ? 'removeClass' : 'addClass']('not-animated'); + } + + var transitionEndTarget = effect === 'reveal' ? $el.nextAll('.view, .views').eq(0) : $el; + + function transitionEnd() { + if ($el.hasClass('panel-out')) { + panel.onClosed(); + } else if ($el.hasClass('panel-in')) { + panel.onOpened(); + } + $('html').removeClass('with-panel-closing'); + } + if (animate) { + transitionEndTarget + .transitionEnd(function () { + transitionEnd(); + }); + $el + .removeClass('panel-in') + .addClass('panel-out'); + // Emit close + panel.onClose(); + } else { + $el + .addClass('not-animated') + .removeClass('panel-in') + .addClass('panel-out'); + // Emit close + panel.onClose(); + panel.onClosed(); + } + + return panel; + }; + + Panel.prototype.init = function init () { + var panel = this; + // const app = panel.app; + if (typeof panel.params.visibleBreakpoint !== 'undefined') { + panel.setVisibleBreakpoint(); + } + if (typeof panel.params.collapsedBreakpoint !== 'undefined') { + panel.setCollapsedBreakpoint(); + } + if (panel.params.swipe) { + panel.enableSwipe(); + } + if (panel.resizable) { + panel.enableResizable(); + } + }; + + Panel.prototype.destroy = function destroy () { + var obj; + + var panel = this; + var app = panel.app; + + if (!panel.$el) { + // Panel already destroyed + return; + } + + panel.emit('local::beforeDestroy panelBeforeDestroy', panel); + panel.$el.trigger('panel:beforedestroy'); + + if (panel.visibleBreakpointResizeHandler) { + app.off('resize', panel.visibleBreakpointResizeHandler); + } + if (panel.collapsedBreakpointResizeHandler) { + app.off('resize', panel.collapsedBreakpointResizeHandler); + } + if (panel.$el.hasClass('panel-in-breakpoint') || panel.$el.hasClass('panel-in-collapsed')) { + var $viewEl = $(panel.getViewEl()); + panel.$el.removeClass('panel-in-breakpoint panel-in-collapsed panel-in'); + $viewEl.css(( obj = {}, obj[("margin-" + (panel.side))] = '', obj )); + panel.emit('local::breakpoint panelBreakpoint', panel); + panel.$el.trigger('panel:breakpoint'); + } + + panel.$el.trigger('panel:destroy'); + panel.emit('local::destroy panelDestroy', panel); + if (panel.el) { + panel.el.f7Panel = null; + delete panel.el.f7Panel; + } + Utils.deleteProps(panel); + + panel = null; + }; + + return Panel; + }(Framework7Class)); + + var Panel$1 = { + name: 'panel', + params: { + panel: { + opened: undefined, // default based on panel-in class + side: undefined, // default based on panel class + effect: undefined, // default based on panel class + resizable: undefined, // default based on panel-resizable class + backdrop: true, + backdropEl: undefined, + visibleBreakpoint: undefined, + collapsedBreakpoint: undefined, + swipe: false, // or true + swipeNoFollow: false, // or true + swipeOnlyClose: false, + swipeActiveArea: 0, + swipeThreshold: 0, + closeByBackdropClick: true, + containerEl: undefined, + }, + }, + static: { + Panel: Panel, + }, + instance: { + panel: { + allowOpen: true, + }, + }, + create: function create() { + var app = this; + Utils.extend(app.panel, { + create: function create(params) { + return new Panel(app, params); + }, + get: function get(el) { + if ( el === void 0 ) el = '.panel'; + + if (el instanceof Panel) { return el; } + if (el === 'left' || el === 'right') { el = ".panel-" + el; } // eslint-disable-line + var $el = $(el); + if ($el.length === 0 || $el.length > 1) { return undefined; } + return $el[0].f7Panel; + }, + destroy: function destroy(el) { + if ( el === void 0 ) el = '.panel'; + + var panel = app.panel.get(el); + if (panel && panel.destroy) { return panel.destroy(); } + return undefined; + }, + open: function open(el, animate) { + if ( el === void 0 ) el = '.panel'; + + if (el === 'left' || el === 'right') { el = ".panel-" + el; } // eslint-disable-line + var panel = app.panel.get(el); + if (panel && panel.open) { return panel.open(animate); } + if (!panel) { + panel = app.panel.create({ el: el }); + return panel.open(animate); + } + return undefined; + }, + close: function close(el, animate) { + if ( el === void 0 ) el = '.panel-in'; + + if (el === 'left' || el === 'right') { el = ".panel-" + el; } // eslint-disable-line + var panel = app.panel.get(el); + if (panel && panel.open) { return panel.close(animate); } + if (!panel) { + panel = app.panel.create({ el: el }); + return panel.close(animate); + } + return undefined; + }, + toggle: function toggle(el, animate) { + if ( el === void 0 ) el = '.panel'; + + if (el === 'left' || el === 'right') { el = ".panel-" + el; } // eslint-disable-line + var panel = app.panel.get(el); + if (panel && panel.toggle) { return panel.toggle(animate); } + if (!panel) { + panel = app.panel.create({ el: el }); + return panel.toggle(animate); + } + return undefined; + }, + }); + }, + on: { + init: function init() { + var app = this; + $('.panel-init').each(function (index, panelEl) { + var params = Object.assign( + { el: panelEl }, + $(panelEl).dataset() || {} + ); + app.panel.create(params); + }); + }, + pageInit: function pageInit(page) { + var app = this; + page.$el.find('.panel-init').each(function (index, panelEl) { + var params = Object.assign( + { el: panelEl }, + $(panelEl).dataset() || {} + ); + app.panel.create(params); + }); + }, + pageBeforeRemove: function pageBeforeRemove(page) { + var app = this; + page.$el.find('.panel-init').each(function (index, panelEl) { + var panel = app.panel.get(panelEl); + if (panel && panel.destroy) { panel.destroy(); } + }); + }, + }, + vnode: { + 'panel-init': { + insert: function insert(vnode) { + var app = this; + var panelEl = vnode.elm; + var params = Object.assign( + { el: panelEl }, + $(panelEl).dataset() || {} + ); + app.panel.create(params); + }, + destroy: function destroy(vnode) { + var app = this; + var panelEl = vnode.elm; + var panel = app.panel.get(panelEl); + if (panel && panel.destroy) { panel.destroy(); } + }, + }, + }, + clicks: { + '.panel-open': function open(clickedEl, data) { + if ( data === void 0 ) data = {}; + + var app = this; + app.panel.open(data.panel, data.animate); + }, + '.panel-close': function close(clickedEl, data) { + if ( data === void 0 ) data = {}; + + var app = this; + app.panel.close(data.panel, data.animate); + }, + '.panel-toggle': function close(clickedEl, data) { + if ( data === void 0 ) data = {}; + + var app = this; + app.panel.toggle(data.panel, data.animate); + }, + '.panel-backdrop': function close() { + var app = this; + var $panelEl = $('.panel-in:not(.panel-out)'); + if (!$panelEl.length) { return; } + var instance = $panelEl[0] && $panelEl[0].f7Panel; + $panelEl.trigger('panel:backdrop-click'); + if (instance) { + instance.emit('backdropClick', instance); + } + app.emit('panelBackdropClick', instance || $panelEl[0]); + if (app.params.panel.closeByBackdropClick) { app.panel.close(); } + }, + }, + }; + + /* eslint no-param-reassign: "off" */ + + var CardExpandable = { + open: function open(cardEl, animate) { + var assign; + + if ( cardEl === void 0 ) cardEl = '.card-expandable'; + if ( animate === void 0 ) animate = true; + var app = this; + + var $cardEl = $(cardEl).eq(0); + if (!$cardEl || !$cardEl.length) { return; } + if ($cardEl.hasClass('card-opened') || $cardEl.hasClass('card-opening') || $cardEl.hasClass('card-closing')) { return; } + + var $pageEl = $cardEl.parents('.page').eq(0); + if (!$pageEl.length) { return; } + + if ($pageEl.find('.card-opened').length) { + return; + } + + var prevented; + + function prevent() { + prevented = true; + } + + $cardEl.trigger('card:beforeopen', { prevent: prevent }); + app.emit('cardBeforeOpen', $cardEl[0], prevent); + + if (prevented) { return; } + + var cardParams = Object.assign({ animate: animate }, app.params.card, $cardEl.dataset()); + + var $pageContentEl = $cardEl.parents('.page-content'); + + var $backdropEl; + if ($cardEl.attr('data-backdrop-el')) { + $backdropEl = $($cardEl.attr('data-backdrop-el')); + } + if (!$backdropEl && cardParams.backdrop) { + $backdropEl = $pageContentEl.find('.card-backdrop'); + if (!$backdropEl.length) { + $backdropEl = $('
          '); + $pageContentEl.append($backdropEl); + } + } + + var $navbarEl; + var $toolbarEl; + if (cardParams.hideNavbarOnOpen) { + $navbarEl = $pageEl.children('.navbar'); + if (!$navbarEl.length) { + if ($pageEl[0].f7Page) { $navbarEl = $pageEl[0].f7Page.$navbarEl; } + } + } + if (cardParams.hideToolbarOnOpen) { + $toolbarEl = $pageEl.children('.toolbar'); + if (!$toolbarEl.length) { + $toolbarEl = $pageEl.parents('.view').children('.toolbar'); + } + if (!$toolbarEl.length) { + $toolbarEl = $pageEl.parents('.views').children('.toolbar'); + } + } + + var currTransform = $cardEl.css('transform'); + var hasTransform; + if (currTransform && currTransform.match(/[2-9]/)) { + hasTransform = true; + } + var $cardContentEl = $cardEl.children('.card-content'); + + var $cardSizeEl = $(document.createElement('div')).addClass('card-expandable-size'); + $cardEl.append($cardSizeEl); + + var cardWidth = $cardEl[0].offsetWidth; + var cardHeight = $cardEl[0].offsetHeight; + var pageWidth = $pageEl[0].offsetWidth; + var pageHeight = $pageEl[0].offsetHeight; + + var maxWidth = $cardSizeEl[0].offsetWidth || pageWidth; + var maxHeight = $cardSizeEl[0].offsetHeight || pageHeight; + + var statusbarHeight; + if ($navbarEl && !cardParams.hideStatusbarOnOpen && maxHeight === pageHeight) { + statusbarHeight = parseInt($navbarEl.css('--f7-safe-area-top'), 10); + if (Number.isNaN(statusbarHeight)) { statusbarHeight = 0; } + } + if (statusbarHeight) { + maxHeight -= statusbarHeight; + } + + var scaleX = maxWidth / cardWidth; + var scaleY = maxHeight / cardHeight; + + var offset = $cardEl.offset(); + var pageOffset = $pageEl.offset(); + if (statusbarHeight) { + pageOffset.top += statusbarHeight / 2; + } + offset.left -= pageOffset.left; + + var cardLeftOffset; + var cardTopOffset; + + if (hasTransform) { + var transformValues = currTransform + .replace(/matrix\(|\)/g, '') + .split(',') + .map(function (el) { return el.trim(); }); + if (transformValues && transformValues.length > 1) { + var scale = parseFloat(transformValues[0]); + cardLeftOffset = offset.left - cardWidth * (1 - scale) / 2; + cardTopOffset = offset.top - pageOffset.top - cardHeight * (1 - scale) / 2; + if (app.rtl) { cardLeftOffset -= $cardEl[0].scrollLeft; } + } else { + cardLeftOffset = $cardEl[0].offsetLeft; + cardTopOffset = $cardEl[0].offsetTop - ($pageContentEl.length ? $pageContentEl[0].scrollTop : 0); + } + } else { + cardLeftOffset = offset.left; + cardTopOffset = offset.top - pageOffset.top; + if (app.rtl) { cardLeftOffset -= $cardEl[0].scrollLeft; } + } + + cardLeftOffset -= (pageWidth - maxWidth) / 2; + cardTopOffset -= (pageHeight - maxHeight) / 2; + + var cardRightOffset = maxWidth - cardWidth - cardLeftOffset; + if (app.rtl) { + (assign = [cardRightOffset, cardLeftOffset], cardLeftOffset = assign[0], cardRightOffset = assign[1]); + } + var cardBottomOffset = maxHeight - cardHeight - cardTopOffset; + var translateX = (cardRightOffset - cardLeftOffset) / 2; + var translateY = (cardBottomOffset - cardTopOffset) / 2; + if (cardParams.hideNavbarOnOpen && $navbarEl && $navbarEl.length) { + if ($navbarEl.closest('.navbar-hidden').length) { + // Was hidden + $cardEl[0].f7KeepNavbarOnClose = true; + } else { + delete $cardEl[0].f7KeepNavbarOnClose; + app.navbar.hide($navbarEl, cardParams.animate, cardParams.hideStatusbarOnOpen); + } + } + if (cardParams.hideToolbarOnOpen && $toolbarEl && $toolbarEl.length) { + if ($toolbarEl.closest('.toolbar-hidden').length) { + // Was hidden + $cardEl[0].f7KeepToolbarOnClose = true; + } else { + delete $cardEl[0].f7KeepToolbarOnClose; + app.toolbar.hide($toolbarEl, cardParams.animate); + } + } + if ($backdropEl) { + $backdropEl.removeClass('card-backdrop-out').addClass('card-backdrop-in'); + } + $cardEl.removeClass('card-transitioning'); + if (cardParams.animate) { + $cardEl.addClass('card-opening'); + } + $cardEl.trigger('card:open'); + app.emit('cardOpen', $cardEl[0]); + function transitionEnd() { + $pageEl.addClass('page-with-card-opened'); + if (app.device.ios && $pageContentEl.length) { + $pageContentEl.css('height', (($pageContentEl[0].offsetHeight + 1) + "px")); + setTimeout(function () { + $pageContentEl.css('height', ''); + }); + } + $cardEl.addClass('card-opened'); + $cardEl.removeClass('card-opening'); + $cardEl.trigger('card:opened'); + app.emit('cardOpened', $cardEl[0], $pageEl[0]); + } + $cardContentEl + .css({ + width: (maxWidth + "px"), + height: (maxHeight + "px"), + }) + .transform(("translate3d(" + (app.rtl ? (cardLeftOffset + translateX) : (-cardLeftOffset - translateX)) + "px, 0px, 0) scale(" + (1 / scaleX) + ", " + (1 / scaleY) + ")")); + + $cardEl + .transform(("translate3d(" + (app.rtl ? -translateX : translateX) + "px, " + translateY + "px, 0) scale(" + scaleX + ", " + scaleY + ")")); + if (cardParams.animate) { + $cardEl.transitionEnd(function () { + transitionEnd(); + }); + } else { + transitionEnd(); + } + + function onResize() { + var assign; + + $cardEl.removeClass('card-transitioning'); + cardWidth = $cardEl[0].offsetWidth; + cardHeight = $cardEl[0].offsetHeight; + pageWidth = $pageEl[0].offsetWidth; + pageHeight = $pageEl[0].offsetHeight; + maxWidth = $cardSizeEl[0].offsetWidth || pageWidth; + maxHeight = $cardSizeEl[0].offsetHeight || pageHeight; + + statusbarHeight = 0; + if ($navbarEl && !cardParams.hideStatusbarOnOpen && maxHeight === pageHeight) { + statusbarHeight = parseInt($navbarEl.css('--f7-safe-area-top'), 10); + if (Number.isNaN(statusbarHeight)) { statusbarHeight = 0; } + } + if (statusbarHeight) { + maxHeight -= statusbarHeight; + } + + + scaleX = maxWidth / cardWidth; + scaleY = maxHeight / cardHeight; + + $cardEl.transform('translate3d(0px, 0px, 0) scale(1)'); + offset = $cardEl.offset(); + pageOffset = $pageEl.offset(); + if (statusbarHeight) { + pageOffset.top += statusbarHeight / 2; + } + offset.left -= pageOffset.left; + offset.top -= pageOffset.top; + + cardLeftOffset = offset.left - (pageWidth - maxWidth) / 2; + if (app.rtl) { cardLeftOffset -= $cardEl[0].scrollLeft; } + cardTopOffset = offset.top - (pageHeight - maxHeight) / 2; + + cardRightOffset = maxWidth - cardWidth - cardLeftOffset; + cardBottomOffset = maxHeight - cardHeight - cardTopOffset; + if (app.rtl) { + (assign = [cardRightOffset, cardLeftOffset], cardLeftOffset = assign[0], cardRightOffset = assign[1]); + } + translateX = (cardRightOffset - cardLeftOffset) / 2; + translateY = (cardBottomOffset - cardTopOffset) / 2; + + $cardEl.transform(("translate3d(" + (app.rtl ? -translateX : translateX) + "px, " + translateY + "px, 0) scale(" + scaleX + ", " + scaleY + ")")); + $cardContentEl + .css({ + width: (maxWidth + "px"), + height: (maxHeight + "px"), + }) + .transform(("translate3d(" + (app.rtl ? (cardLeftOffset + translateX) : (-cardLeftOffset - translateX)) + "px, 0px, 0) scale(" + (1 / scaleX) + ", " + (1 / scaleY) + ")")); + } + + var cardScrollTop; + var isTouched; + var isMoved; + var touchStartX; + var touchStartY; + var touchEndX; + var touchEndY; + var isScrolling; + var progress; + var isV; + var isH; + var $cardScrollableEl; + function onTouchStart(e) { + if (!$(e.target).closest($cardEl).length) { return; } + if (!$cardEl.hasClass('card-opened')) { return; } + $cardScrollableEl = $cardEl.find(cardParams.scrollableEl); + + if ($cardScrollableEl[0] + && $cardScrollableEl[0] !== $cardContentEl[0] + && !$cardScrollableEl[0].contains(e.target) + ) { + cardScrollTop = 0; + } else { + cardScrollTop = $cardScrollableEl.scrollTop(); + } + isTouched = true; + touchStartX = e.targetTouches[0].pageX; + touchStartY = e.targetTouches[0].pageY; + isScrolling = undefined; + isV = false; + isH = false; + } + function onTouchMove(e) { + if (!isTouched) { return; } + touchEndX = e.targetTouches[0].pageX; + touchEndY = e.targetTouches[0].pageY; + if (typeof isScrolling === 'undefined') { + isScrolling = !!(isScrolling || Math.abs(touchEndY - touchStartY) > Math.abs(touchEndX - touchStartX)); + } + if (!isH && !isV) { + if (!isScrolling && e.targetTouches[0].clientX <= 50) { + isH = true; + } else { + isV = true; + } + } + + if (!(isH || isV) || (isV && cardScrollTop !== 0)) { + isTouched = true; + isMoved = true; + return; + } + if (!isMoved) { + $cardEl.removeClass('card-transitioning'); + } + + isMoved = true; + progress = isV ? Math.max((touchEndY - touchStartY) / 150, 0) : Math.max((touchEndX - touchStartX) / (cardWidth / 2), 0); + if ((progress > 0 && isV) || isH) { + if (isV && app.device.ios && $cardScrollableEl[0] === $cardContentEl[0]) { + $cardScrollableEl.css('-webkit-overflow-scrolling', 'auto'); + $cardScrollableEl.scrollTop(0); + } + e.preventDefault(); + } + + if (progress > 1) { progress = Math.pow( progress, 0.3 ); } + if (progress > (isV ? 1.3 : 1.1)) { + isTouched = false; + isMoved = false; + app.card.close($cardEl); + } else { + $cardEl.transform(("translate3d(" + (app.rtl ? -translateX : translateX) + "px, " + translateY + "px, 0) scale(" + (scaleX * (1 - progress * 0.2)) + ", " + (scaleY * (1 - progress * 0.2)) + ")")); + } + } + function onTouchEnd() { + if (!isTouched || !isMoved) { return; } + isTouched = false; + isMoved = false; + if (app.device.ios) { + $cardScrollableEl.css('-webkit-overflow-scrolling', ''); + } + if (progress >= 0.8) { + app.card.close($cardEl); + } else { + $cardEl + .addClass('card-transitioning') + .transform(("translate3d(" + (app.rtl ? -translateX : translateX) + "px, " + translateY + "px, 0) scale(" + scaleX + ", " + scaleY + ")")); + } + } + + $cardEl[0].detachEventHandlers = function detachEventHandlers() { + app.off('resize', onResize); + if (Support.touch && cardParams.swipeToClose) { + app.off('touchstart:passive', onTouchStart); + app.off('touchmove:active', onTouchMove); + app.off('touchend:passive', onTouchEnd); + } + }; + + app.on('resize', onResize); + if (Support.touch && cardParams.swipeToClose) { + app.on('touchstart:passive', onTouchStart); + app.on('touchmove:active', onTouchMove); + app.on('touchend:passive', onTouchEnd); + } + }, + close: function close(cardEl, animate) { + if ( cardEl === void 0 ) cardEl = '.card-expandable.card-opened'; + if ( animate === void 0 ) animate = true; + + var app = this; + var $cardEl = $(cardEl).eq(0); + if (!$cardEl || !$cardEl.length) { return; } + if (!$cardEl.hasClass('card-opened') || $cardEl.hasClass('card-opening') || $cardEl.hasClass('card-closing')) { return; } + + var $cardContentEl = $cardEl.children('.card-content'); + var $pageContentEl = $cardEl.parents('.page-content'); + + var $pageEl = $cardEl.parents('.page').eq(0); + if (!$pageEl.length) { return; } + + var cardParams = Object.assign({ animate: animate }, app.params.card, $cardEl.dataset()); + var $cardScrollableEl = $cardEl.find(cardParams.scrollableEl); + + var $navbarEl; + var $toolbarEl; + + var $backdropEl; + if ($cardEl.attr('data-backdrop-el')) { + $backdropEl = $($cardEl.attr('data-backdrop-el')); + } + if (cardParams.backdrop) { + $backdropEl = $cardEl.parents('.page-content').find('.card-backdrop'); + } + + if (cardParams.hideNavbarOnOpen) { + $navbarEl = $pageEl.children('.navbar'); + if (!$navbarEl.length) { + if ($pageEl[0].f7Page) { $navbarEl = $pageEl[0].f7Page.$navbarEl; } + } + if ($navbarEl && $navbarEl.length && !$cardEl[0].f7KeepNavbarOnClose) { + app.navbar.show($navbarEl, cardParams.animate); + } + } + if (cardParams.hideToolbarOnOpen) { + $toolbarEl = $pageEl.children('.toolbar'); + if (!$toolbarEl.length) { + $toolbarEl = $pageEl.parents('.view').children('.toolbar'); + } + if (!$toolbarEl.length) { + $toolbarEl = $pageEl.parents('.views').children('.toolbar'); + } + if ($toolbarEl && $toolbarEl.length && !$cardEl[0].f7KeepToolbarOnClose) { + app.toolbar.show($toolbarEl, cardParams.animate); + } + } + + $pageEl.removeClass('page-with-card-opened'); + + if (app.device.ios && $pageContentEl.length) { + $pageContentEl.css('height', (($pageContentEl[0].offsetHeight + 1) + "px")); + setTimeout(function () { + $pageContentEl.css('height', ''); + }); + } + + if ($backdropEl && $backdropEl.length) { + $backdropEl.removeClass('card-backdrop-in').addClass('card-backdrop-out'); + } + + $cardEl.removeClass('card-opened card-transitioning'); + if (cardParams.animate) { + $cardEl.addClass('card-closing'); + } else { + $cardEl.addClass('card-no-transition'); + } + $cardEl.transform(''); + $cardEl.trigger('card:close'); + app.emit('cardClose', $cardEl[0], $pageEl[0]); + + var animateWidth = $cardEl.hasClass('card-expandable-animate-width'); + + function transitionEnd() { + if (!animateWidth) { + $cardContentEl + .css({ + width: '', + height: '', + }); + } + if ($backdropEl && $backdropEl.length) { + $backdropEl.removeClass('card-backdrop-in card-backdrop-out'); + } + $cardEl.removeClass('card-closing card-no-transition'); + $cardEl.trigger('card:closed'); + $cardEl.find('.card-expandable-size').remove(); + app.emit('cardClosed', $cardEl[0], $pageEl[0]); + } + if (animateWidth) { + $cardContentEl + .css({ + width: '', + height: '', + }); + } + + $cardContentEl + .transform('') + .scrollTop(0, animate ? 300 : 0); + if ($cardScrollableEl.length && $cardScrollableEl[0] !== $cardContentEl[0]) { + $cardScrollableEl.scrollTop(0, animate ? 300 : 0); + } + if (animate) { + $cardContentEl.transitionEnd(function () { + transitionEnd(); + }); + } else { + transitionEnd(); + } + + if ($cardEl[0].detachEventHandlers) { + $cardEl[0].detachEventHandlers(); + delete $cardEl[0].detachEventHandlers; + } + }, + toggle: function toggle(cardEl, animate) { + if ( cardEl === void 0 ) cardEl = '.card-expandable'; + + var app = this; + var $cardEl = $(cardEl).eq(0); + if (!$cardEl.length) { return; } + if ($cardEl.hasClass('card-opened')) { + app.card.close($cardEl, animate); + } else { + app.card.open($cardEl, animate); + } + }, + }; + + var Card = { + name: 'card', + params: { + card: { + hideNavbarOnOpen: true, + hideStatusbarOnOpen: true, + hideToolbarOnOpen: true, + scrollableEl: '.card-content', + swipeToClose: true, + closeByBackdropClick: true, + backdrop: true, + }, + }, + create: function create() { + var app = this; + Utils.extend(app, { + card: { + open: CardExpandable.open.bind(app), + close: CardExpandable.close.bind(app), + toggle: CardExpandable.toggle.bind(app), + }, + }); + }, + on: { + pageBeforeIn: function pageBeforeIn(page) { + var app = this; + if (app.params.card.hideNavbarOnOpen && page.navbarEl && page.$el.find('.card-opened.card-expandable').length) { + app.navbar.hide(page.navbarEl, true, app.params.card.hideStatusbarOnOpen); + } + + if (app.params.card.hideToolbarOnOpen && page.$el.find('.card-opened.card-expandable').length) { + var $toolbarEl = page.$el.children('.toolbar'); + if (!$toolbarEl.length) { + $toolbarEl = page.$el.parents('.view').children('.toolbar'); + } + if (!$toolbarEl.length) { + $toolbarEl = page.$el.parents('.views').children('.toolbar'); + } + if ($toolbarEl && $toolbarEl.length) { + app.toolbar.hide($toolbarEl); + } + } + }, + }, + clicks: { + '.card-close': function closeCard($clickedEl, data) { + var app = this; + app.card.close(data.card, data.animate); + }, + '.card-open': function closeCard($clickedEl, data) { + var app = this; + app.card.open(data.card, data.animate); + }, + '.card-expandable': function toggleExpandableCard($clickedEl, data, e) { + var app = this; + if ($clickedEl.hasClass('card-opened') || $clickedEl.hasClass('card-opening') || $clickedEl.hasClass('card-closing')) { return; } + if ($(e.target).closest('.card-prevent-open, .card-close').length) { return; } + app.card.open($clickedEl); + }, + '.card-backdrop-in': function onBackdropClick() { + var app = this; + var needToClose = false; + if (app.params.card.closeByBackdropClick) { needToClose = true; } + var $openedCardEl = $('.card-opened'); + if (!$openedCardEl.length) { return; } + if ($openedCardEl.attr('data-close-by-backdrop-click') === 'true') { + needToClose = true; + } else if ($openedCardEl.attr('data-close-by-backdrop-click') === 'false') { + needToClose = false; + } + if (needToClose) { app.card.close($openedCardEl); } + }, + }, + }; + + var Chip = { + name: 'chip', + }; + + // Form Data + var FormData$1 = { + store: function store(form, data) { + var app = this; + var formId = form; + + var $formEl = $(form); + if ($formEl.length && $formEl.is('form') && $formEl.attr('id')) { + formId = $formEl.attr('id'); + } + // Store form data in app.formsData + app.form.data[("form-" + formId)] = data; + + // Store form data in local storage also + win.localStorage[("f7form-" + formId)] = JSON.stringify(data); + }, + get: function get(form) { + var app = this; + var formId = form; + + var $formEl = $(form); + if ($formEl.length && $formEl.is('form') && $formEl.attr('id')) { + formId = $formEl.attr('id'); + } + + if (win.localStorage[("f7form-" + formId)]) { + return JSON.parse(win.localStorage[("f7form-" + formId)]); + } + if (app.form.data[("form-" + formId)]) { + return app.form.data[("form-" + formId)]; + } + return undefined; + }, + remove: function remove(form) { + var app = this; + var formId = form; + + var $formEl = $(form); + if ($formEl.length && $formEl.is('form') && $formEl.attr('id')) { + formId = $formEl.attr('id'); + } + + // Delete form data from app.formsData + if (app.form.data[("form-" + formId)]) { + app.form.data[("form-" + formId)] = ''; + delete app.form.data[("form-" + formId)]; + } + + // Delete form data from local storage also + if (win.localStorage[("f7form-" + formId)]) { + win.localStorage[("f7form-" + formId)] = ''; + win.localStorage.removeItem(("f7form-" + formId)); + } + }, + }; + + // Form Storage + var FormStorage = { + init: function init(formEl) { + var app = this; + var $formEl = $(formEl); + var formId = $formEl.attr('id'); + if (!formId) { return; } + var initialData = app.form.getFormData(formId); + if (initialData) { + app.form.fillFromData($formEl, initialData); + } + function store() { + var data = app.form.convertToData($formEl); + if (!data) { return; } + app.form.storeFormData(formId, data); + $formEl.trigger('form:storedata', data); + app.emit('formStoreData', $formEl[0], data); + } + $formEl.on('change submit', store); + }, + destroy: function destroy(formEl) { + var $formEl = $(formEl); + $formEl.off('change submit'); + }, + }; + + // Form To/From Data + function formToData(formEl) { + var app = this; + var $formEl = $(formEl).eq(0); + if ($formEl.length === 0) { return undefined; } + + // Form data + var data = {}; + + // Skip input types + var skipTypes = ['submit', 'image', 'button', 'file']; + var skipNames = []; + $formEl.find('input, select, textarea').each(function (inputIndex, inputEl) { + var $inputEl = $(inputEl); + if ($inputEl.hasClass('ignore-store-data') || $inputEl.hasClass('no-store-data')) { + return; + } + var name = $inputEl.attr('name'); + var type = $inputEl.attr('type'); + var tag = inputEl.nodeName.toLowerCase(); + if (skipTypes.indexOf(type) >= 0) { return; } + if (skipNames.indexOf(name) >= 0 || !name) { return; } + if (tag === 'select' && $inputEl.prop('multiple')) { + skipNames.push(name); + data[name] = []; + $formEl.find(("select[name=\"" + name + "\"] option")).each(function (index, el) { + if (el.selected) { data[name].push(el.value); } + }); + } else { + switch (type) { + case 'checkbox': + skipNames.push(name); + data[name] = []; + $formEl.find(("input[name=\"" + name + "\"]")).each(function (index, el) { + if (el.checked) { data[name].push(el.value); } + }); + break; + case 'radio': + skipNames.push(name); + $formEl.find(("input[name=\"" + name + "\"]")).each(function (index, el) { + if (el.checked) { data[name] = el.value; } + }); + break; + default: + data[name] = $inputEl.val(); + break; + } + } + }); + $formEl.trigger('form:todata', data); + app.emit('formToData', $formEl[0], data); + + return data; + } + function formFromData(formEl, formData) { + var app = this; + var $formEl = $(formEl).eq(0); + if (!$formEl.length) { return; } + + var data = formData; + var formId = $formEl.attr('id'); + + if (!data && formId) { + data = app.form.getFormData(formId); + } + + if (!data) { return; } + + // Skip input types + var skipTypes = ['submit', 'image', 'button', 'file']; + var skipNames = []; + + $formEl.find('input, select, textarea').each(function (inputIndex, inputEl) { + var $inputEl = $(inputEl); + if ($inputEl.hasClass('ignore-store-data') || $inputEl.hasClass('no-store-data')) { + return; + } + var name = $inputEl.attr('name'); + var type = $inputEl.attr('type'); + var tag = inputEl.nodeName.toLowerCase(); + if (typeof data[name] === 'undefined' || data[name] === null) { return; } + if (skipTypes.indexOf(type) >= 0) { return; } + if (skipNames.indexOf(name) >= 0 || !name) { return; } + if (tag === 'select' && $inputEl.prop('multiple')) { + skipNames.push(name); + $formEl.find(("select[name=\"" + name + "\"] option")).each(function (index, el) { + var selectEl = el; + if (data[name].indexOf(el.value) >= 0) { selectEl.selected = true; } + else { selectEl.selected = false; } + }); + } else { + switch (type) { + case 'checkbox': + skipNames.push(name); + $formEl.find(("input[name=\"" + name + "\"]")).each(function (index, el) { + var checkboxEl = el; + if (data[name].indexOf(el.value) >= 0) { checkboxEl.checked = true; } + else { checkboxEl.checked = false; } + }); + break; + case 'radio': + skipNames.push(name); + $formEl.find(("input[name=\"" + name + "\"]")).each(function (index, el) { + var radioEl = el; + if (data[name] === el.value) { radioEl.checked = true; } + else { radioEl.checked = false; } + }); + break; + default: + $inputEl.val(data[name]); + break; + } + } + if (tag === 'select' || tag === 'input' || tag === 'textarea') { + $inputEl.trigger('change', 'fromdata'); + } + }); + $formEl.trigger('form:fromdata', data); + app.emit('formFromData', $formEl[0], data); + } + + function initAjaxForm() { + var app = this; + + function onSubmitChange(e, fromData) { + var $formEl = $(this); + if (e.type === 'change' && !$formEl.hasClass('form-ajax-submit-onchange')) { return; } + if (e.type === 'submit') { e.preventDefault(); } + + if (e.type === 'change' && fromData === 'fromdata') { return; } + + var method = ($formEl.attr('method') || 'GET').toUpperCase(); + var contentType = $formEl.prop('enctype') || $formEl.attr('enctype'); + + var url = $formEl.attr('action'); + if (!url) { return; } + + var data; + if (method === 'POST') { + if (contentType === 'application/x-www-form-urlencoded') { + data = app.form.convertToData($formEl[0]); + } else { + data = new win.FormData($formEl[0]); + } + } else { + data = Utils.serializeObject(app.form.convertToData($formEl[0])); + } + + app.request({ + method: method, + url: url, + contentType: contentType, + data: data, + beforeSend: function beforeSend(xhr) { + $formEl.trigger('formajax:beforesend', { data: data, xhr: xhr }); + app.emit('formAjaxBeforeSend', $formEl[0], data, xhr); + }, + error: function error(xhr) { + $formEl.trigger('formajax:error', { data: data, xhr: xhr }); + app.emit('formAjaxError', $formEl[0], data, xhr); + }, + complete: function complete(xhr) { + $formEl.trigger('formajax:complete', { data: data, xhr: xhr }); + app.emit('formAjaxComplete', $formEl[0], data, xhr); + }, + success: function success(response, status, xhr) { + $formEl.trigger('formajax:success', { data: data, xhr: xhr }); + app.emit('formAjaxSuccess', $formEl[0], data, xhr); + }, + }); + } + $(doc).on('submit change', 'form.form-ajax-submit, form.form-ajax-submit-onchange', onSubmitChange); + } + + var Form = { + name: 'form', + create: function create() { + var app = this; + Utils.extend(app, { + form: { + data: {}, + storeFormData: FormData$1.store.bind(app), + getFormData: FormData$1.get.bind(app), + removeFormData: FormData$1.remove.bind(app), + convertToData: formToData.bind(app), + fillFromData: formFromData.bind(app), + storage: { + init: FormStorage.init.bind(app), + destroy: FormStorage.destroy.bind(app), + }, + }, + }); + }, + on: { + init: function init() { + var app = this; + initAjaxForm.call(app); + }, + tabBeforeRemove: function tabBeforeRemove(tabEl) { + var app = this; + $(tabEl).find('.form-store-data').each(function (index, formEl) { + app.form.storage.destroy(formEl); + }); + }, + tabMounted: function tabMounted(tabEl) { + var app = this; + $(tabEl).find('.form-store-data').each(function (index, formEl) { + app.form.storage.init(formEl); + }); + }, + pageBeforeRemove: function pageBeforeRemove(page) { + var app = this; + page.$el.find('.form-store-data').each(function (index, formEl) { + app.form.storage.destroy(formEl); + }); + }, + pageInit: function pageInit(page) { + var app = this; + page.$el.find('.form-store-data').each(function (index, formEl) { + app.form.storage.init(formEl); + }); + }, + }, + }; + + var Input = { + ignoreTypes: ['checkbox', 'button', 'submit', 'range', 'radio', 'image'], + createTextareaResizableShadow: function createTextareaResizableShadow() { + var $shadowEl = $(doc.createElement('textarea')); + $shadowEl.addClass('textarea-resizable-shadow'); + $shadowEl.prop({ + disabled: true, + readonly: true, + }); + Input.textareaResizableShadow = $shadowEl; + }, + textareaResizableShadow: undefined, + resizeTextarea: function resizeTextarea(textareaEl) { + var app = this; + var $textareaEl = $(textareaEl); + if (!Input.textareaResizableShadow) { + Input.createTextareaResizableShadow(); + } + var $shadowEl = Input.textareaResizableShadow; + if (!$textareaEl.length) { return; } + if (!$textareaEl.hasClass('resizable')) { return; } + if (Input.textareaResizableShadow.parents().length === 0) { + app.root.append($shadowEl); + } + + var styles = win.getComputedStyle($textareaEl[0]); + ('padding-top padding-bottom padding-left padding-right margin-left margin-right margin-top margin-bottom width font-size font-family font-style font-weight line-height font-variant text-transform letter-spacing border box-sizing display').split(' ').forEach(function (style) { + var styleValue = styles[style]; + if (('font-size line-height letter-spacing width').split(' ').indexOf(style) >= 0) { + styleValue = styleValue.replace(',', '.'); + } + $shadowEl.css(style, styleValue); + }); + var currentHeight = $textareaEl[0].clientHeight; + + $shadowEl.val(''); + var initialHeight = $shadowEl[0].scrollHeight; + + $shadowEl.val($textareaEl.val()); + $shadowEl.css('height', 0); + var scrollHeight = $shadowEl[0].scrollHeight; + + if (currentHeight !== scrollHeight) { + if (scrollHeight > initialHeight) { + $textareaEl.css('height', (scrollHeight + "px")); + } else if (scrollHeight < currentHeight) { + $textareaEl.css('height', ''); + } + if (scrollHeight > initialHeight || scrollHeight < currentHeight) { + $textareaEl.trigger('textarea:resize', { initialHeight: initialHeight, currentHeight: currentHeight, scrollHeight: scrollHeight }); + app.emit('textareaResize', { initialHeight: initialHeight, currentHeight: currentHeight, scrollHeight: scrollHeight }); + } + } + }, + validate: function validate(inputEl) { + var $inputEl = $(inputEl); + if (!$inputEl.length) { return true; } + var $itemInputEl = $inputEl.parents('.item-input'); + var $inputWrapEl = $inputEl.parents('.input'); + function unsetReadonly() { + if ($inputEl[0].f7ValidateReadonly) { + $inputEl[0].readOnly = false; + } + } + function setReadonly() { + if ($inputEl[0].f7ValidateReadonly) { + $inputEl[0].readOnly = true; + } + } + unsetReadonly(); + var validity = $inputEl[0].validity; + var validationMessage = $inputEl.dataset().errorMessage || $inputEl[0].validationMessage || ''; + if (!validity) { + setReadonly(); + return true; + } + if (!validity.valid) { + var $errorEl = $inputEl.nextAll('.item-input-error-message, .input-error-message'); + if (validationMessage) { + if ($errorEl.length === 0) { + $errorEl = $(("
          ")); + $errorEl.insertAfter($inputEl); + } + $errorEl.text(validationMessage); + } + if ($errorEl.length > 0) { + $itemInputEl.addClass('item-input-with-error-message'); + $inputWrapEl.addClass('input-with-error-message'); + } + $itemInputEl.addClass('item-input-invalid'); + $inputWrapEl.addClass('input-invalid'); + $inputEl.addClass('input-invalid'); + setReadonly(); + return false; + } + $itemInputEl.removeClass('item-input-invalid item-input-with-error-message'); + $inputWrapEl.removeClass('input-invalid input-with-error-message'); + $inputEl.removeClass('input-invalid'); + setReadonly(); + return true; + }, + validateInputs: function validateInputs(el) { + var app = this; + var validates = $(el) + .find('input, textarea, select') + .toArray() + .map(function (inputEl) { return app.input.validate(inputEl); }); + return validates.indexOf(false) < 0; + }, + focus: function focus(inputEl) { + var $inputEl = $(inputEl); + var type = $inputEl.attr('type'); + if (Input.ignoreTypes.indexOf(type) >= 0) { return; } + $inputEl.parents('.item-input').addClass('item-input-focused'); + $inputEl.parents('.input').addClass('input-focused'); + $inputEl.addClass('input-focused'); + }, + blur: function blur(inputEl) { + var $inputEl = $(inputEl); + $inputEl.parents('.item-input').removeClass('item-input-focused'); + $inputEl.parents('.input').removeClass('input-focused'); + $inputEl.removeClass('input-focused'); + }, + checkEmptyState: function checkEmptyState(inputEl) { + var app = this; + var $inputEl = $(inputEl); + if (!$inputEl.is('input, select, textarea, .item-input [contenteditable]')) { + $inputEl = $inputEl.find('input, select, textarea, .item-input [contenteditable]').eq(0); + } + if (!$inputEl.length) { return; } + var isContentEditable = $inputEl[0].hasAttribute('contenteditable'); + var value; + if (isContentEditable) { + if ($inputEl.find('.text-editor-placeholder').length) { value = ''; } + else { value = $inputEl.html(); } + } else { + value = $inputEl.val(); + } + var $itemInputEl = $inputEl.parents('.item-input'); + var $inputWrapEl = $inputEl.parents('.input'); + if ((value && (typeof value === 'string' && value.trim() !== '')) || (Array.isArray(value) && value.length > 0)) { + $itemInputEl.addClass('item-input-with-value'); + $inputWrapEl.addClass('input-with-value'); + $inputEl.addClass('input-with-value'); + $inputEl.trigger('input:notempty'); + app.emit('inputNotEmpty', $inputEl[0]); + } else { + $itemInputEl.removeClass('item-input-with-value'); + $inputWrapEl.removeClass('input-with-value'); + $inputEl.removeClass('input-with-value'); + $inputEl.trigger('input:empty'); + app.emit('inputEmpty', $inputEl[0]); + } + }, + scrollIntoView: function scrollIntoView(inputEl, duration, centered, force) { + if ( duration === void 0 ) duration = 0; + + var $inputEl = $(inputEl); + var $scrollableEl = $inputEl.parents('.page-content, .panel, .card-expandable .card-content').eq(0); + if (!$scrollableEl.length) { + return false; + } + var contentHeight = $scrollableEl[0].offsetHeight; + var contentScrollTop = $scrollableEl[0].scrollTop; + var contentPaddingTop = parseInt($scrollableEl.css('padding-top'), 10); + var contentPaddingBottom = parseInt($scrollableEl.css('padding-bottom'), 10); + var contentOffsetTop = $scrollableEl.offset().top - contentScrollTop; + + var inputOffsetTop = $inputEl.offset().top - contentOffsetTop; + var inputHeight = $inputEl[0].offsetHeight; + + var min = (inputOffsetTop + contentScrollTop) - contentPaddingTop; + var max = ((inputOffsetTop + contentScrollTop) - contentHeight) + contentPaddingBottom + inputHeight; + var centeredPosition = min + ((max - min) / 2); + + if (contentScrollTop > min) { + $scrollableEl.scrollTop(centered ? centeredPosition : min, duration); + return true; + } + if (contentScrollTop < max) { + $scrollableEl.scrollTop(centered ? centeredPosition : max, duration); + return true; + } + if (force) { + $scrollableEl.scrollTop(centered ? centeredPosition : max, duration); + } + return false; + }, + init: function init() { + var app = this; + Input.createTextareaResizableShadow(); + function onFocus() { + var inputEl = this; + if (app.params.input.scrollIntoViewOnFocus) { + if (Device.android) { + $(win).once('resize', function () { + if (doc && doc.activeElement === inputEl) { + app.input.scrollIntoView(inputEl, app.params.input.scrollIntoViewDuration, app.params.input.scrollIntoViewCentered, app.params.input.scrollIntoViewAlways); + } + }); + } else { + app.input.scrollIntoView(inputEl, app.params.input.scrollIntoViewDuration, app.params.input.scrollIntoViewCentered, app.params.input.scrollIntoViewAlways); + } + } + app.input.focus(inputEl); + } + function onBlur() { + var $inputEl = $(this); + var tag = $inputEl[0].nodeName.toLowerCase(); + app.input.blur($inputEl); + if ($inputEl.dataset().validate || $inputEl.attr('validate') !== null || $inputEl.attr('data-validate-on-blur') !== null) { + app.input.validate($inputEl); + } + // Resize textarea + if (tag === 'textarea' && $inputEl.hasClass('resizable')) { + if (Input.textareaResizableShadow) { Input.textareaResizableShadow.remove(); } + } + } + function onChange() { + var $inputEl = $(this); + var type = $inputEl.attr('type'); + var tag = $inputEl[0].nodeName.toLowerCase(); + var isContentEditable = $inputEl[0].hasAttribute('contenteditable'); + if (Input.ignoreTypes.indexOf(type) >= 0) { return; } + + // Check Empty State + app.input.checkEmptyState($inputEl); + if (isContentEditable) { return; } + + // Check validation + if ($inputEl.attr('data-validate-on-blur') === null && ($inputEl.dataset().validate || $inputEl.attr('validate') !== null)) { + app.input.validate($inputEl); + } + + // Resize textarea + if (tag === 'textarea' && $inputEl.hasClass('resizable')) { + app.input.resizeTextarea($inputEl); + } + } + function onInvalid(e) { + var $inputEl = $(this); + if ($inputEl.attr('data-validate-on-blur') === null && ($inputEl.dataset().validate || $inputEl.attr('validate') !== null)) { + e.preventDefault(); + app.input.validate($inputEl); + } + } + function clearInput() { + var $clicked = $(this); + var $inputEl = $clicked.siblings('input, textarea').eq(0); + var previousValue = $inputEl.val(); + $inputEl + .val('') + .trigger('input change') + .focus() + .trigger('input:clear', previousValue); + app.emit('inputClear', previousValue); + } + function preventDefault(e) { + e.preventDefault(); + } + $(doc).on('click', '.input-clear-button', clearInput); + $(doc).on('mousedown', '.input-clear-button', preventDefault); + $(doc).on('change input', 'input, textarea, select, .item-input [contenteditable]', onChange, true); + $(doc).on('focus', 'input, textarea, select, .item-input [contenteditable]', onFocus, true); + $(doc).on('blur', 'input, textarea, select, .item-input [contenteditable]', onBlur, true); + $(doc).on('invalid', 'input, textarea, select', onInvalid, true); + }, + }; + + var Input$1 = { + name: 'input', + params: { + input: { + scrollIntoViewOnFocus: Device.android, + scrollIntoViewCentered: false, + scrollIntoViewDuration: 0, + scrollIntoViewAlways: false, + }, + }, + create: function create() { + var app = this; + Utils.extend(app, { + input: { + scrollIntoView: Input.scrollIntoView.bind(app), + focus: Input.focus.bind(app), + blur: Input.blur.bind(app), + validate: Input.validate.bind(app), + validateInputs: Input.validateInputs.bind(app), + checkEmptyState: Input.checkEmptyState.bind(app), + resizeTextarea: Input.resizeTextarea.bind(app), + init: Input.init.bind(app), + }, + }); + }, + on: { + init: function init() { + var app = this; + app.input.init(); + }, + tabMounted: function tabMounted(tabEl) { + var app = this; + var $tabEl = $(tabEl); + $tabEl.find('.item-input, .input').each(function (itemInputIndex, itemInputEl) { + var $itemInputEl = $(itemInputEl); + $itemInputEl.find('input, select, textarea, [contenteditable]').each(function (inputIndex, inputEl) { + var $inputEl = $(inputEl); + if (Input.ignoreTypes.indexOf($inputEl.attr('type')) >= 0) { return; } + app.input.checkEmptyState($inputEl); + }); + }); + $tabEl.find('textarea.resizable').each(function (textareaIndex, textareaEl) { + app.input.resizeTextarea(textareaEl); + }); + }, + pageInit: function pageInit(page) { + var app = this; + var $pageEl = page.$el; + $pageEl.find('.item-input, .input').each(function (itemInputIndex, itemInputEl) { + var $itemInputEl = $(itemInputEl); + $itemInputEl.find('input, select, textarea, [contenteditable]').each(function (inputIndex, inputEl) { + var $inputEl = $(inputEl); + if (Input.ignoreTypes.indexOf($inputEl.attr('type')) >= 0) { return; } + app.input.checkEmptyState($inputEl); + }); + }); + $pageEl.find('textarea.resizable').each(function (textareaIndex, textareaEl) { + app.input.resizeTextarea(textareaEl); + }); + }, + 'panelBreakpoint panelCollapsedBreakpoint panelResize panelOpen panelSwipeOpen resize viewMasterDetailBreakpoint': function onPanelOpen(instance) { + var app = this; + if (instance && instance.$el) { + instance.$el.find('textarea.resizable').each(function (textareaIndex, textareaEl) { + app.input.resizeTextarea(textareaEl); + }); + } else { + $('textarea.resizable').each(function (textareaIndex, textareaEl) { + app.input.resizeTextarea(textareaEl); + }); + } + }, + }, + }; + + var Checkbox = { + name: 'checkbox', + }; + + var Radio = { + name: 'radio', + }; + + var Toggle = /*@__PURE__*/(function (Framework7Class) { + function Toggle(app, params) { + if ( params === void 0 ) params = {}; + + Framework7Class.call(this, params, [app]); + var toggle = this; + + var defaults = {}; + + // Extend defaults with modules params + toggle.useModulesParams(defaults); + + toggle.params = Utils.extend(defaults, params); + + var el = toggle.params.el; + if (!el) { return toggle; } + + var $el = $(el); + if ($el.length === 0) { return toggle; } + + if ($el[0].f7Toggle) { return $el[0].f7Toggle; } + + var $inputEl = $el.children('input[type="checkbox"]'); + + Utils.extend(toggle, { + app: app, + $el: $el, + el: $el[0], + $inputEl: $inputEl, + inputEl: $inputEl[0], + disabled: $el.hasClass('disabled') || $inputEl.hasClass('disabled') || $inputEl.attr('disabled') || $inputEl[0].disabled, + }); + + Object.defineProperty(toggle, 'checked', { + enumerable: true, + configurable: true, + set: function set(checked) { + if (!toggle || typeof toggle.$inputEl === 'undefined') { return; } + if (toggle.checked === checked) { return; } + $inputEl[0].checked = checked; + toggle.$inputEl.trigger('change'); + }, + get: function get() { + return $inputEl[0].checked; + }, + }); + + $el[0].f7Toggle = toggle; + + var isTouched; + var touchesStart = {}; + var isScrolling; + var touchesDiff; + var toggleWidth; + var touchStartTime; + var touchStartChecked; + function handleTouchStart(e) { + if (isTouched || toggle.disabled) { return; } + touchesStart.x = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX; + touchesStart.y = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY; + touchesDiff = 0; + + isTouched = true; + isScrolling = undefined; + touchStartTime = Utils.now(); + touchStartChecked = toggle.checked; + + toggleWidth = $el[0].offsetWidth; + Utils.nextTick(function () { + if (isTouched) { + $el.addClass('toggle-active-state'); + } + }); + } + function handleTouchMove(e) { + if (!isTouched || toggle.disabled) { return; } + var pageX = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX; + var pageY = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY; + var inverter = app.rtl ? -1 : 1; + + if (typeof isScrolling === 'undefined') { + isScrolling = !!(isScrolling || Math.abs(pageY - touchesStart.y) > Math.abs(pageX - touchesStart.x)); + } + if (isScrolling) { + isTouched = false; + return; + } + e.preventDefault(); + + touchesDiff = pageX - touchesStart.x; + + + var changed; + if (touchesDiff * inverter < 0 && Math.abs(touchesDiff) > toggleWidth / 3 && touchStartChecked) { + changed = true; + } + if (touchesDiff * inverter > 0 && Math.abs(touchesDiff) > toggleWidth / 3 && !touchStartChecked) { + changed = true; + } + if (changed) { + touchesStart.x = pageX; + toggle.checked = !touchStartChecked; + touchStartChecked = !touchStartChecked; + } + } + function handleTouchEnd() { + if (!isTouched || toggle.disabled) { + if (isScrolling) { $el.removeClass('toggle-active-state'); } + isTouched = false; + return; + } + var inverter = app.rtl ? -1 : 1; + isTouched = false; + + $el.removeClass('toggle-active-state'); + + var changed; + if ((Utils.now() - touchStartTime) < 300) { + if (touchesDiff * inverter < 0 && touchStartChecked) { + changed = true; + } + if (touchesDiff * inverter > 0 && !touchStartChecked) { + changed = true; + } + if (changed) { + toggle.checked = !touchStartChecked; + } + } + } + function handleInputChange() { + toggle.$el.trigger('toggle:change'); + toggle.emit('local::change toggleChange', toggle); + } + toggle.attachEvents = function attachEvents() { + var passive = Support.passiveListener ? { passive: true } : false; + $el.on(app.touchEvents.start, handleTouchStart, passive); + app.on('touchmove', handleTouchMove); + app.on('touchend:passive', handleTouchEnd); + toggle.$inputEl.on('change', handleInputChange); + }; + toggle.detachEvents = function detachEvents() { + var passive = Support.passiveListener ? { passive: true } : false; + $el.off(app.touchEvents.start, handleTouchStart, passive); + app.off('touchmove', handleTouchMove); + app.off('touchend:passive', handleTouchEnd); + toggle.$inputEl.off('change', handleInputChange); + }; + + // Install Modules + toggle.useModules(); + + // Init + toggle.init(); + } + + if ( Framework7Class ) Toggle.__proto__ = Framework7Class; + Toggle.prototype = Object.create( Framework7Class && Framework7Class.prototype ); + Toggle.prototype.constructor = Toggle; + + Toggle.prototype.toggle = function toggle () { + var toggle = this; + toggle.checked = !toggle.checked; + }; + + Toggle.prototype.init = function init () { + var toggle = this; + toggle.attachEvents(); + }; + + Toggle.prototype.destroy = function destroy () { + var toggle = this; + toggle.$el.trigger('toggle:beforedestroy'); + toggle.emit('local::beforeDestroy toggleBeforeDestroy', toggle); + delete toggle.$el[0].f7Toggle; + toggle.detachEvents(); + Utils.deleteProps(toggle); + toggle = null; + }; + + return Toggle; + }(Framework7Class)); + + var Toggle$1 = { + name: 'toggle', + create: function create() { + var app = this; + app.toggle = ConstructorMethods({ + defaultSelector: '.toggle', + constructor: Toggle, + app: app, + domProp: 'f7Toggle', + }); + }, + static: { + Toggle: Toggle, + }, + on: { + tabMounted: function tabMounted(tabEl) { + var app = this; + $(tabEl).find('.toggle-init').each(function (index, toggleEl) { return app.toggle.create({ el: toggleEl }); }); + }, + tabBeforeRemove: function tabBeforeRemove(tabEl) { + $(tabEl).find('.toggle-init').each(function (index, toggleEl) { + if (toggleEl.f7Toggle) { toggleEl.f7Toggle.destroy(); } + }); + }, + pageInit: function pageInit(page) { + var app = this; + page.$el.find('.toggle-init').each(function (index, toggleEl) { return app.toggle.create({ el: toggleEl }); }); + }, + pageBeforeRemove: function pageBeforeRemove(page) { + page.$el.find('.toggle-init').each(function (index, toggleEl) { + if (toggleEl.f7Toggle) { toggleEl.f7Toggle.destroy(); } + }); + }, + }, + vnode: { + 'toggle-init': { + insert: function insert(vnode) { + var app = this; + var toggleEl = vnode.elm; + app.toggle.create({ el: toggleEl }); + }, + destroy: function destroy(vnode) { + var toggleEl = vnode.elm; + if (toggleEl.f7Toggle) { toggleEl.f7Toggle.destroy(); } + }, + }, + }, + }; + + var Range = /*@__PURE__*/(function (Framework7Class) { + function Range(app, params) { + Framework7Class.call(this, params, [app]); + + var range = this; + + var defaults = { + el: null, + inputEl: null, + dual: false, + step: 1, + label: false, + min: 0, + max: 100, + value: 0, + draggableBar: true, + vertical: false, + verticalReversed: false, + formatLabel: null, + scale: false, + scaleSteps: 5, + scaleSubSteps: 0, + formatScaleLabel: null, + limitKnobPosition: app.theme === 'ios', + }; + + // Extend defaults with modules params + range.useModulesParams(defaults); + + range.params = Utils.extend(defaults, params); + + var el = range.params.el; + if (!el) { return range; } + + var $el = $(el); + if ($el.length === 0) { return range; } + + if ($el[0].f7Range) { return $el[0].f7Range; } + + var dataset = $el.dataset(); + + ('step min max value scaleSteps scaleSubSteps').split(' ').forEach(function (paramName) { + if (typeof params[paramName] === 'undefined' && typeof dataset[paramName] !== 'undefined') { + range.params[paramName] = parseFloat(dataset[paramName]); + } + }); + ('dual label vertical verticalReversed scale').split(' ').forEach(function (paramName) { + if (typeof params[paramName] === 'undefined' && typeof dataset[paramName] !== 'undefined') { + range.params[paramName] = dataset[paramName]; + } + }); + + if (!range.params.value) { + if (typeof dataset.value !== 'undefined') { range.params.value = dataset.value; } + if (typeof dataset.valueLeft !== 'undefined' && typeof dataset.valueRight !== 'undefined') { + range.params.value = [parseFloat(dataset.valueLeft), parseFloat(dataset.valueRight)]; + } + } + + var $inputEl; + if (!range.params.dual) { + if (range.params.inputEl) { + $inputEl = $(range.params.inputEl); + } else if ($el.find('input[type="range"]').length) { + $inputEl = $el.find('input[type="range"]').eq(0); + } + } + + var ref = range.params; + var dual = ref.dual; + var step = ref.step; + var label = ref.label; + var min = ref.min; + var max = ref.max; + var value = ref.value; + var vertical = ref.vertical; + var verticalReversed = ref.verticalReversed; + var scale = ref.scale; + var scaleSteps = ref.scaleSteps; + var scaleSubSteps = ref.scaleSubSteps; + var limitKnobPosition = ref.limitKnobPosition; + + Utils.extend(range, { + app: app, + $el: $el, + el: $el[0], + $inputEl: $inputEl, + inputEl: $inputEl ? $inputEl[0] : undefined, + dual: dual, + step: step, + label: label, + min: min, + max: max, + value: value, + previousValue: value, + vertical: vertical, + verticalReversed: verticalReversed, + scale: scale, + scaleSteps: scaleSteps, + scaleSubSteps: scaleSubSteps, + limitKnobPosition: limitKnobPosition, + }); + + if ($inputEl) { + ('step min max').split(' ').forEach(function (paramName) { + if (!params[paramName] && $inputEl.attr(paramName)) { + range.params[paramName] = parseFloat($inputEl.attr(paramName)); + range[paramName] = parseFloat($inputEl.attr(paramName)); + } + }); + if (typeof $inputEl.val() !== 'undefined') { + range.params.value = parseFloat($inputEl.val()); + range.value = parseFloat($inputEl.val()); + } + } + + // Dual + if (range.dual) { + $el.addClass('range-slider-dual'); + } + if (range.label) { + $el.addClass('range-slider-label'); + } + + // Vertical + if (range.vertical) { + $el.addClass('range-slider-vertical'); + if (range.verticalReversed) { + $el.addClass('range-slider-vertical-reversed'); + } + } else { + $el.addClass('range-slider-horizontal'); + } + + // Check for layout + var $barEl = $('
          '); + var $barActiveEl = $('
          '); + $barEl.append($barActiveEl); + + // Create Knobs + var knobHTML = "\n
          \n
          \n " + (range.label ? '
          ' : '') + "\n
          \n "; + var knobs = [$(knobHTML)]; + + if (range.dual) { + knobs.push($(knobHTML)); + } + + $el.append($barEl); + knobs.forEach(function ($knobEl) { + $el.append($knobEl); + }); + + // Labels + var labels = []; + if (range.label) { + labels.push(knobs[0].find('.range-knob-label')); + if (range.dual) { + labels.push(knobs[1].find('.range-knob-label')); + } + } + + // Scale + var $scaleEl; + if (range.scale && range.scaleSteps >= 1) { + $scaleEl = $(("\n
          \n " + (range.renderScale()) + "\n
          \n ")); + $el.append($scaleEl); + } + + Utils.extend(range, { + knobs: knobs, + labels: labels, + $barEl: $barEl, + $barActiveEl: $barActiveEl, + $scaleEl: $scaleEl, + }); + + $el[0].f7Range = range; + + // Touch Events + var isTouched; + var touchesStart = {}; + var isScrolling; + var rangeOffset; + var rangeOffsetLeft; + var rangeOffsetTop; + var $touchedKnobEl; + var dualValueIndex; + var valueChangedByTouch; + var targetTouchIdentifier; + function onTouchChange() { + valueChangedByTouch = true; + } + function handleTouchStart(e) { + if (isTouched) { return; } + if (!range.params.draggableBar) { + if ($(e.target).closest('.range-knob').length === 0) { + return; + } + } + valueChangedByTouch = false; + touchesStart.x = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX; + touchesStart.y = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY; + if (e.type === 'touchstart') { + targetTouchIdentifier = e.targetTouches[0].identifier; + } + + isTouched = true; + isScrolling = undefined; + rangeOffset = $el.offset(); + rangeOffsetLeft = rangeOffset.left; + rangeOffsetTop = rangeOffset.top; + + var progress; + if (range.vertical) { + progress = (touchesStart.y - rangeOffsetTop) / range.rangeHeight; + if (!range.verticalReversed) { progress = 1 - progress; } + } else if (range.app.rtl) { + progress = ((rangeOffsetLeft + range.rangeWidth) - touchesStart.x) / range.rangeWidth; + } else { + progress = (touchesStart.x - rangeOffsetLeft) / range.rangeWidth; + } + + var newValue = (progress * (range.max - range.min)) + range.min; + if (range.dual) { + if (Math.abs(range.value[0] - newValue) < Math.abs(range.value[1] - newValue)) { + dualValueIndex = 0; + $touchedKnobEl = range.knobs[0]; + newValue = [newValue, range.value[1]]; + } else { + dualValueIndex = 1; + $touchedKnobEl = range.knobs[1]; + newValue = [range.value[0], newValue]; + } + } else { + $touchedKnobEl = range.knobs[0]; + newValue = (progress * (range.max - range.min)) + range.min; + } + Utils.nextTick(function () { + if (isTouched) { $touchedKnobEl.addClass('range-knob-active-state'); } + }, 70); + range.on('change', onTouchChange); + range.setValue(newValue, true); + } + function handleTouchMove(e) { + if (!isTouched) { return; } + var pageX; + var pageY; + if (e.type === 'touchmove') { + for (var i = 0; i < e.targetTouches.length; i += 1) { + if (e.targetTouches[i].identifier === targetTouchIdentifier) { + pageX = e.targetTouches[i].pageX; + pageY = e.targetTouches[i].pageY; + } + } + } else { + pageX = e.pageX; + pageY = e.pageY; + } + if (typeof pageX === 'undefined' && typeof pageY === 'undefined') { return; } + + if (typeof isScrolling === 'undefined' && !range.vertical) { + isScrolling = !!(isScrolling || Math.abs(pageY - touchesStart.y) > Math.abs(pageX - touchesStart.x)); + } + if (isScrolling) { + isTouched = false; + return; + } + e.preventDefault(); + + var progress; + if (range.vertical) { + progress = (pageY - rangeOffsetTop) / range.rangeHeight; + if (!range.verticalReversed) { progress = 1 - progress; } + } else if (range.app.rtl) { + progress = ((rangeOffsetLeft + range.rangeWidth) - pageX) / range.rangeWidth; + } else { + progress = (pageX - rangeOffsetLeft) / range.rangeWidth; + } + + var newValue = (progress * (range.max - range.min)) + range.min; + if (range.dual) { + var leftValue; + var rightValue; + if (dualValueIndex === 0) { + leftValue = newValue; + rightValue = range.value[1]; + if (leftValue > rightValue) { + rightValue = leftValue; + } + } else { + leftValue = range.value[0]; + rightValue = newValue; + if (rightValue < leftValue) { + leftValue = rightValue; + } + } + newValue = [leftValue, rightValue]; + } + range.setValue(newValue, true); + } + function handleTouchEnd(e) { + if (e.type === 'touchend') { + var touchEnded; + for (var i = 0; i < e.changedTouches.length; i += 1) { + if (e.changedTouches[i].identifier === targetTouchIdentifier) { touchEnded = true; } + } + if (!touchEnded) { return; } + } + if (!isTouched) { + if (isScrolling) { $touchedKnobEl.removeClass('range-knob-active-state'); } + isTouched = false; + return; + } + range.off('change', onTouchChange); + isTouched = false; + $touchedKnobEl.removeClass('range-knob-active-state'); + if (valueChangedByTouch && range.$inputEl && !range.dual) { + range.$inputEl.trigger('change'); + } + valueChangedByTouch = false; + if (typeof range.previousValue !== 'undefined') { + if ( + ( + range.dual + && ( + range.previousValue[0] !== range.value[0] + || range.previousValue[1] !== range.value[1] + ) + ) + || ( + !range.dual + && range.previousValue !== range.value + ) + ) { + range.$el.trigger('range:changed', range.value); + range.emit('local::changed rangeChanged', range, range.value); + } + } + } + + function handleResize() { + range.calcSize(); + range.layout(); + } + var parentModals; + var parentPanel; + var parentPage; + range.attachEvents = function attachEvents() { + var passive = Support.passiveListener ? { passive: true } : false; + range.$el.on(app.touchEvents.start, handleTouchStart, passive); + app.on('touchmove', handleTouchMove); + app.on('touchend:passive', handleTouchEnd); + app.on('tabShow', handleResize); + app.on('resize', handleResize); + parentModals = range.$el.parents('.sheet-modal, .actions-modal, .popup, .popover, .login-screen, .dialog, .toast'); + parentModals.on('modal:open', handleResize); + parentPanel = range.$el.parents('.panel'); + parentPanel.on('panel:open panel:resize', handleResize); + parentPage = range.$el.parents('.page').eq(0); + parentPage.on('page:reinit', handleResize); + }; + range.detachEvents = function detachEvents() { + var passive = Support.passiveListener ? { passive: true } : false; + range.$el.off(app.touchEvents.start, handleTouchStart, passive); + app.off('touchmove', handleTouchMove); + app.off('touchend:passive', handleTouchEnd); + app.off('tabShow', handleResize); + app.off('resize', handleResize); + if (parentModals) { + parentModals.off('modal:open', handleResize); + } + if (parentPanel) { + parentPanel.off('panel:open panel:resize', handleResize); + } + if (parentPage) { + parentPage.off('page:reinit', handleResize); + } + parentModals = null; + parentPanel = null; + parentPage = null; + }; + + // Install Modules + range.useModules(); + + // Init + range.init(); + + return range; + } + + if ( Framework7Class ) Range.__proto__ = Framework7Class; + Range.prototype = Object.create( Framework7Class && Framework7Class.prototype ); + Range.prototype.constructor = Range; + + Range.prototype.calcSize = function calcSize () { + var range = this; + if (range.vertical) { + var height = range.$el.outerHeight(); + if (height === 0) { return; } + range.rangeHeight = height; + range.knobHeight = range.knobs[0].outerHeight(); + } else { + var width = range.$el.outerWidth(); + if (width === 0) { return; } + range.rangeWidth = width; + range.knobWidth = range.knobs[0].outerWidth(); + } + }; + + Range.prototype.layout = function layout () { + var obj; + + var range = this; + var app = range.app; + var knobWidth = range.knobWidth; + var knobHeight = range.knobHeight; + var rangeWidth = range.rangeWidth; + var rangeHeight = range.rangeHeight; + var min = range.min; + var max = range.max; + var knobs = range.knobs; + var $barActiveEl = range.$barActiveEl; + var value = range.value; + var label = range.label; + var labels = range.labels; + var vertical = range.vertical; + var verticalReversed = range.verticalReversed; + var limitKnobPosition = range.limitKnobPosition; + var knobSize = vertical ? knobHeight : knobWidth; + var rangeSize = vertical ? rangeHeight : rangeWidth; + // eslint-disable-next-line + var positionProperty = vertical + ? (verticalReversed ? 'top' : 'bottom') + : (app.rtl ? 'right' : 'left'); + if (range.dual) { + var progress = [((value[0] - min) / (max - min)), ((value[1] - min) / (max - min))]; + $barActiveEl.css(( obj = {}, obj[positionProperty] = ((progress[0] * 100) + "%"), obj[vertical ? 'height' : 'width'] = (((progress[1] - progress[0]) * 100) + "%"), obj )); + knobs.forEach(function ($knobEl, knobIndex) { + var startPos = rangeSize * progress[knobIndex]; + if (limitKnobPosition) { + var realStartPos = (rangeSize * progress[knobIndex]) - (knobSize / 2); + if (realStartPos < 0) { startPos = knobSize / 2; } + if ((realStartPos + knobSize) > rangeSize) { startPos = rangeSize - (knobSize / 2); } + } + $knobEl.css(positionProperty, (startPos + "px")); + if (label) { labels[knobIndex].text(range.formatLabel(value[knobIndex], labels[knobIndex][0])); } + }); + } else { + var progress$1 = ((value - min) / (max - min)); + $barActiveEl.css(vertical ? 'height' : 'width', ((progress$1 * 100) + "%")); + + var startPos = rangeSize * progress$1; + if (limitKnobPosition) { + var realStartPos = (rangeSize * progress$1) - (knobSize / 2); + if (realStartPos < 0) { startPos = knobSize / 2; } + if ((realStartPos + knobSize) > rangeSize) { startPos = rangeSize - (knobSize / 2); } + } + knobs[0].css(positionProperty, (startPos + "px")); + if (label) { labels[0].text(range.formatLabel(value, labels[0][0])); } + } + if ((range.dual && value.indexOf(min) >= 0) || (!range.dual && value === min)) { + range.$el.addClass('range-slider-min'); + } else { + range.$el.removeClass('range-slider-min'); + } + if ((range.dual && value.indexOf(max) >= 0) || (!range.dual && value === max)) { + range.$el.addClass('range-slider-max'); + } else { + range.$el.removeClass('range-slider-max'); + } + }; + + Range.prototype.setValue = function setValue (newValue, byTouchMove) { + var range = this; + var step = range.step; + var min = range.min; + var max = range.max; + var valueChanged; + var oldValue; + if (range.dual) { + oldValue = [range.value[0], range.value[1]]; + var newValues = newValue; + if (!Array.isArray(newValues)) { newValues = [newValue, newValue]; } + if (newValue[0] > newValue[1]) { + newValues = [newValues[0], newValues[0]]; + } + newValues = newValues.map(function (value) { return Math.max(Math.min(Math.round(value / step) * step, max), min); }); + if (newValues[0] === range.value[0] && newValues[1] === range.value[1]) { + return range; + } + newValues.forEach(function (value, valueIndex) { + range.value[valueIndex] = value; + }); + valueChanged = oldValue[0] !== newValues[0] || oldValue[1] !== newValues[1]; + range.layout(); + } else { + oldValue = range.value; + var value = Math.max(Math.min(Math.round(newValue / step) * step, max), min); + range.value = value; + range.layout(); + valueChanged = oldValue !== value; + } + + if (valueChanged) { + range.previousValue = oldValue; + } + // Events + if (!valueChanged) { return range; } + range.$el.trigger('range:change', range.value); + if (range.$inputEl && !range.dual) { + range.$inputEl.val(range.value); + if (!byTouchMove) { + range.$inputEl.trigger('input change'); + } else { + range.$inputEl.trigger('input'); + } + } + if (!byTouchMove) { + range.$el.trigger('range:changed', range.value); + range.emit('local::changed rangeChanged', range, range.value); + } + range.emit('local::change rangeChange', range, range.value); + return range; + }; + + Range.prototype.getValue = function getValue () { + return this.value; + }; + + Range.prototype.formatLabel = function formatLabel (value, labelEl) { + var range = this; + if (range.params.formatLabel) { return range.params.formatLabel.call(range, value, labelEl); } + return value; + }; + + Range.prototype.formatScaleLabel = function formatScaleLabel (value) { + var range = this; + if (range.params.formatScaleLabel) { return range.params.formatScaleLabel.call(range, value); } + return value; + }; + + Range.prototype.renderScale = function renderScale () { + var range = this; + var app = range.app; + var verticalReversed = range.verticalReversed; + var vertical = range.vertical; + + // eslint-disable-next-line + var positionProperty = vertical + ? (verticalReversed ? 'top' : 'bottom') + : (app.rtl ? 'right' : 'left'); + + var html = ''; + Array + .from({ length: range.scaleSteps + 1 }) + .forEach(function (scaleEl, index) { + var scaleStepValue = (range.max - range.min) / range.scaleSteps; + var scaleValue = range.min + scaleStepValue * index; + var progress = ((scaleValue - range.min) / (range.max - range.min)); + html += "
          " + (range.formatScaleLabel(scaleValue)) + "
          "; + + if (range.scaleSubSteps && range.scaleSubSteps > 1 && index < range.scaleSteps) { + Array + .from({ length: range.scaleSubSteps - 1 }) + .forEach(function (subStepEl, subIndex) { + var subStep = scaleStepValue / range.scaleSubSteps; + var scaleSubValue = scaleValue + subStep * (subIndex + 1); + var subProgress = ((scaleSubValue - range.min) / (range.max - range.min)); + html += "
          "; + }); + } + }); + + return html; + }; + + Range.prototype.updateScale = function updateScale () { + var range = this; + if (!range.scale || range.scaleSteps < 1) { + if (range.$scaleEl) { range.$scaleEl.remove(); } + delete range.$scaleEl; + return; + } + if (!range.$scaleEl) { + range.$scaleEl = $('
          '); + range.$el.append(range.$scaleEl); + } + + range.$scaleEl.html(range.renderScale()); + }; + + Range.prototype.init = function init () { + var range = this; + range.calcSize(); + range.layout(); + range.attachEvents(); + return range; + }; + + Range.prototype.destroy = function destroy () { + var range = this; + range.$el.trigger('range:beforedestroy'); + range.emit('local::beforeDestroy rangeBeforeDestroy', range); + delete range.$el[0].f7Range; + range.detachEvents(); + Utils.deleteProps(range); + range = null; + }; + + return Range; + }(Framework7Class)); + + var Range$1 = { + name: 'range', + create: function create() { + var app = this; + app.range = Utils.extend( + ConstructorMethods({ + defaultSelector: '.range-slider', + constructor: Range, + app: app, + domProp: 'f7Range', + }), + { + getValue: function getValue(el) { + if ( el === void 0 ) el = '.range-slider'; + + var range = app.range.get(el); + if (range) { return range.getValue(); } + return undefined; + }, + setValue: function setValue(el, value) { + if ( el === void 0 ) el = '.range-slider'; + + var range = app.range.get(el); + if (range) { return range.setValue(value); } + return undefined; + }, + } + ); + }, + static: { + Range: Range, + }, + on: { + tabMounted: function tabMounted(tabEl) { + var app = this; + $(tabEl).find('.range-slider-init').each(function (index, rangeEl) { return new Range(app, { + el: rangeEl, + }); }); + }, + tabBeforeRemove: function tabBeforeRemove(tabEl) { + $(tabEl).find('.range-slider-init').each(function (index, rangeEl) { + if (rangeEl.f7Range) { rangeEl.f7Range.destroy(); } + }); + }, + pageInit: function pageInit(page) { + var app = this; + page.$el.find('.range-slider-init').each(function (index, rangeEl) { return new Range(app, { + el: rangeEl, + }); }); + }, + pageBeforeRemove: function pageBeforeRemove(page) { + page.$el.find('.range-slider-init').each(function (index, rangeEl) { + if (rangeEl.f7Range) { rangeEl.f7Range.destroy(); } + }); + }, + }, + vnode: { + 'range-slider-init': { + insert: function insert(vnode) { + var rangeEl = vnode.elm; + var app = this; + app.range.create({ el: rangeEl }); + }, + destroy: function destroy(vnode) { + var rangeEl = vnode.elm; + if (rangeEl.f7Range) { rangeEl.f7Range.destroy(); } + }, + }, + }, + }; + + var Stepper = /*@__PURE__*/(function (Framework7Class) { + function Stepper(app, params) { + Framework7Class.call(this, params, [app]); + var stepper = this; + + var defaults = { + el: null, + inputEl: null, + valueEl: null, + value: 0, + formatValue: null, + step: 1, + min: 0, + max: 100, + watchInput: true, + autorepeat: false, + autorepeatDynamic: false, + wraps: false, + manualInputMode: false, + decimalPoint: 4, + buttonsEndInputMode: true, + }; + + // Extend defaults with modules params + stepper.useModulesParams(defaults); + + stepper.params = Utils.extend(defaults, params); + if (stepper.params.value < stepper.params.min) { + stepper.params.value = stepper.params.min; + } + if (stepper.params.value > stepper.params.max) { + stepper.params.value = stepper.params.max; + } + + var el = stepper.params.el; + if (!el) { return stepper; } + + var $el = $(el); + if ($el.length === 0) { return stepper; } + + if ($el[0].f7Stepper) { return $el[0].f7Stepper; } + + var $inputEl; + if (stepper.params.inputEl) { + $inputEl = $(stepper.params.inputEl); + } else if ($el.find('.stepper-input-wrap').find('input, textarea').length) { + $inputEl = $el.find('.stepper-input-wrap').find('input, textarea').eq(0); + } + + if ($inputEl && $inputEl.length) { + ('step min max').split(' ').forEach(function (paramName) { + if (!params[paramName] && $inputEl.attr(paramName)) { + stepper.params[paramName] = parseFloat($inputEl.attr(paramName)); + } + }); + + var decimalPoint$1 = parseInt(stepper.params.decimalPoint, 10); + if (Number.isNaN(decimalPoint$1)) { + stepper.params.decimalPoint = 0; + } else { + stepper.params.decimalPoint = decimalPoint$1; + } + + var inputValue = parseFloat($inputEl.val()); + if (typeof params.value === 'undefined' && !Number.isNaN(inputValue) && (inputValue || inputValue === 0)) { + stepper.params.value = inputValue; + } + } + + var $valueEl; + if (stepper.params.valueEl) { + $valueEl = $(stepper.params.valueEl); + } else if ($el.find('.stepper-value').length) { + $valueEl = $el.find('.stepper-value').eq(0); + } + + var $buttonPlusEl = $el.find('.stepper-button-plus'); + var $buttonMinusEl = $el.find('.stepper-button-minus'); + + var ref = stepper.params; + var step = ref.step; + var min = ref.min; + var max = ref.max; + var value = ref.value; + var decimalPoint = ref.decimalPoint; + + Utils.extend(stepper, { + app: app, + $el: $el, + el: $el[0], + $buttonPlusEl: $buttonPlusEl, + buttonPlusEl: $buttonPlusEl[0], + $buttonMinusEl: $buttonMinusEl, + buttonMinusEl: $buttonMinusEl[0], + $inputEl: $inputEl, + inputEl: $inputEl ? $inputEl[0] : undefined, + $valueEl: $valueEl, + valueEl: $valueEl ? $valueEl[0] : undefined, + step: step, + min: min, + max: max, + value: value, + decimalPoint: decimalPoint, + typeModeChanged: false, + }); + + $el[0].f7Stepper = stepper; + + // Handle Events + var touchesStart = {}; + var isTouched; + var isScrolling; + var preventButtonClick; + var intervalId; + var timeoutId; + var autorepeatAction = null; + var autorepeatInAction = false; + var manualInput = false; + + function dynamicRepeat(current, progressions, startsIn, progressionStep, repeatEvery, action) { + clearTimeout(timeoutId); + timeoutId = setTimeout(function () { + if (current === 1) { + preventButtonClick = true; + autorepeatInAction = true; + } + clearInterval(intervalId); + action(); + intervalId = setInterval(function () { + action(); + }, repeatEvery); + if (current < progressions) { + dynamicRepeat(current + 1, progressions, startsIn, progressionStep, repeatEvery / 2, action); + } + }, current === 1 ? startsIn : progressionStep); + } + + function onTouchStart(e) { + if (isTouched) { return; } + if (manualInput) { return; } + if ($(e.target).closest($buttonPlusEl).length) { + autorepeatAction = 'increment'; + } else if ($(e.target).closest($buttonMinusEl).length) { + autorepeatAction = 'decrement'; + } + if (!autorepeatAction) { return; } + + touchesStart.x = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX; + touchesStart.y = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY; + isTouched = true; + isScrolling = undefined; + + var progressions = stepper.params.autorepeatDynamic ? 4 : 1; + dynamicRepeat(1, progressions, 500, 1000, 300, function () { + stepper[autorepeatAction](); + }); + } + function onTouchMove(e) { + if (!isTouched) { return; } + if (manualInput) { return; } + var pageX = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX; + var pageY = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY; + + if (typeof isScrolling === 'undefined' && !autorepeatInAction) { + isScrolling = !!(isScrolling || Math.abs(pageY - touchesStart.y) > Math.abs(pageX - touchesStart.x)); + } + var distance = Math.pow( ((Math.pow( (pageX - touchesStart.x), 2 )) + (Math.pow( (pageY - touchesStart.y), 2 ))), 0.5 ); + + if (isScrolling || distance > 20) { + isTouched = false; + clearTimeout(timeoutId); + clearInterval(intervalId); + } + } + function onTouchEnd() { + clearTimeout(timeoutId); + clearInterval(intervalId); + autorepeatAction = null; + autorepeatInAction = false; + isTouched = false; + } + + function onMinusClick() { + if (manualInput) { + if (stepper.params.buttonsEndInputMode) { + manualInput = false; + stepper.endTypeMode(true); + } + return; + } + if (preventButtonClick) { + preventButtonClick = false; + return; + } + stepper.decrement(true); + } + function onPlusClick() { + if (manualInput) { + if (stepper.params.buttonsEndInputMode) { + manualInput = false; + stepper.endTypeMode(true); + } + return; + } + if (preventButtonClick) { + preventButtonClick = false; + return; + } + stepper.increment(true); + } + function onInputClick(e) { + if (!e.target.readOnly && stepper.params.manualInputMode) { + manualInput = true; + if (typeof e.target.selectionStart === 'number') { + e.target.selectionStart = e.target.value.length; + e.target.selectionEnd = e.target.value.length; + } + } + } + function onInputKey(e) { + if (e.keyCode === 13 || e.which === 13) { + e.preventDefault(); + manualInput = false; + stepper.endTypeMode(); + } + } + function onInputBlur() { + manualInput = false; + stepper.endTypeMode(true); + } + function onInput(e) { + if (manualInput) { + stepper.typeValue(e.target.value); + return; + } + if (e.detail && e.detail.sentByF7Stepper) { return; } + stepper.setValue(e.target.value, true); + } + stepper.attachEvents = function attachEvents() { + $buttonMinusEl.on('click', onMinusClick); + $buttonPlusEl.on('click', onPlusClick); + if (stepper.params.watchInput && $inputEl && $inputEl.length) { + $inputEl.on('input', onInput); + $inputEl.on('click', onInputClick); + $inputEl.on('blur', onInputBlur); + $inputEl.on('keyup', onInputKey); + } + if (stepper.params.autorepeat) { + app.on('touchstart:passive', onTouchStart); + app.on('touchmove:active', onTouchMove); + app.on('touchend:passive', onTouchEnd); + } + }; + stepper.detachEvents = function detachEvents() { + $buttonMinusEl.off('click', onMinusClick); + $buttonPlusEl.off('click', onPlusClick); + if (stepper.params.watchInput && $inputEl && $inputEl.length) { + $inputEl.off('input', onInput); + $inputEl.off('click', onInputClick); + $inputEl.off('blur', onInputBlur); + $inputEl.off('keyup', onInputKey); + } + }; + + // Install Modules + stepper.useModules(); + + // Init + stepper.init(); + + return stepper; + } + + if ( Framework7Class ) Stepper.__proto__ = Framework7Class; + Stepper.prototype = Object.create( Framework7Class && Framework7Class.prototype ); + Stepper.prototype.constructor = Stepper; + + Stepper.prototype.minus = function minus () { + return this.decrement(); + }; + + Stepper.prototype.plus = function plus () { + return this.increment(); + }; + + Stepper.prototype.decrement = function decrement () { + var stepper = this; + return stepper.setValue(stepper.value - stepper.step, false, true); + }; + + Stepper.prototype.increment = function increment () { + var stepper = this; + return stepper.setValue(stepper.value + stepper.step, false, true); + }; + + Stepper.prototype.setValue = function setValue (newValue, forceUpdate, withWraps) { + var stepper = this; + var step = stepper.step; + var min = stepper.min; + var max = stepper.max; + + var oldValue = stepper.value; + + var value = Math.round(newValue / step) * step; + if (stepper.params.wraps && withWraps) { + if (value > max) { value = min; } + if (value < min) { value = max; } + } else { + value = Math.max(Math.min(value, max), min); + } + + if (Number.isNaN(value)) { + value = oldValue; + } + stepper.value = value; + + var valueChanged = oldValue !== value; + + // Events + if (!valueChanged && !forceUpdate) { return stepper; } + + stepper.$el.trigger('stepper:change', stepper.value); + var formattedValue = stepper.formatValue(stepper.value); + if (stepper.$inputEl && stepper.$inputEl.length) { + stepper.$inputEl.val(formattedValue); + stepper.$inputEl.trigger('input change', { sentByF7Stepper: true }); + } + if (stepper.$valueEl && stepper.$valueEl.length) { + stepper.$valueEl.html(formattedValue); + } + stepper.emit('local::change stepperChange', stepper, stepper.value); + return stepper; + }; + + Stepper.prototype.endTypeMode = function endTypeMode (noBlur) { + var stepper = this; + var min = stepper.min; + var max = stepper.max; + var value = parseFloat(stepper.value); + + if (Number.isNaN(value)) { value = 0; } + + value = Math.max(Math.min(value, max), min); + + stepper.value = value; + if (!stepper.typeModeChanged) { + if (stepper.$inputEl && stepper.$inputEl.length && !noBlur) { + stepper.$inputEl.blur(); + } + return stepper; + } + stepper.typeModeChanged = false; + + stepper.$el.trigger('stepper:change', stepper.value); + var formattedValue = stepper.formatValue(stepper.value); + if (stepper.$inputEl && stepper.$inputEl.length) { + stepper.$inputEl.val(formattedValue); + stepper.$inputEl.trigger('input change', { sentByF7Stepper: true }); + if (!noBlur) { stepper.$inputEl.blur(); } + } + if (stepper.$valueEl && stepper.$valueEl.length) { + stepper.$valueEl.html(formattedValue); + } + stepper.emit('local::change stepperChange', stepper, stepper.value); + return stepper; + }; + + Stepper.prototype.typeValue = function typeValue (value) { + var stepper = this; + stepper.typeModeChanged = true; + var inputTxt = String(value); + if (inputTxt.lastIndexOf('.') + 1 === inputTxt.length || inputTxt.lastIndexOf(',') + 1 === inputTxt.length) { + if (inputTxt.lastIndexOf('.') !== inputTxt.indexOf('.') || inputTxt.lastIndexOf(',') !== inputTxt.indexOf(',')) { + inputTxt = inputTxt.slice(0, -1); + stepper.value = inputTxt; + stepper.$inputEl.val(stepper.value); + return stepper; + } + } else { + var newValue = parseFloat(inputTxt.replace(',', '.')); + if (newValue === 0) { + stepper.value = inputTxt.replace(',', '.'); + stepper.$inputEl.val(stepper.value); + return stepper; + } + if (Number.isNaN(newValue)) { + stepper.value = 0; + stepper.$inputEl.val(stepper.value); + return stepper; + } + var powVal = Math.pow( 10, stepper.params.decimalPoint ); + newValue = (Math.round((newValue) * powVal)).toFixed(stepper.params.decimalPoint + 1) / powVal; + stepper.value = parseFloat(String(newValue).replace(',', '.')); + stepper.$inputEl.val(stepper.value); + return stepper; + } + stepper.value = inputTxt; + stepper.$inputEl.val(inputTxt); + return stepper; + }; + + Stepper.prototype.getValue = function getValue () { + return this.value; + }; + + Stepper.prototype.formatValue = function formatValue (value) { + var stepper = this; + if (!stepper.params.formatValue) { return value; } + return stepper.params.formatValue.call(stepper, value); + }; + + Stepper.prototype.init = function init () { + var stepper = this; + stepper.attachEvents(); + if (stepper.$valueEl && stepper.$valueEl.length) { + var formattedValue = stepper.formatValue(stepper.value); + stepper.$valueEl.html(formattedValue); + } + return stepper; + }; + + Stepper.prototype.destroy = function destroy () { + var stepper = this; + stepper.$el.trigger('stepper:beforedestroy'); + stepper.emit('local::beforeDestroy stepperBeforeDestroy', stepper); + delete stepper.$el[0].f7Stepper; + stepper.detachEvents(); + Utils.deleteProps(stepper); + stepper = null; + }; + + return Stepper; + }(Framework7Class)); + + var Stepper$1 = { + name: 'stepper', + create: function create() { + var app = this; + app.stepper = Utils.extend( + ConstructorMethods({ + defaultSelector: '.stepper', + constructor: Stepper, + app: app, + domProp: 'f7Stepper', + }), + { + getValue: function getValue(el) { + if ( el === void 0 ) el = '.stepper'; + + var stepper = app.stepper.get(el); + if (stepper) { return stepper.getValue(); } + return undefined; + }, + setValue: function setValue(el, value) { + if ( el === void 0 ) el = '.stepper'; + + var stepper = app.stepper.get(el); + if (stepper) { return stepper.setValue(value); } + return undefined; + }, + } + ); + }, + static: { + Stepper: Stepper, + }, + on: { + tabMounted: function tabMounted(tabEl) { + var app = this; + $(tabEl).find('.stepper-init').each(function (index, stepperEl) { + var dataset = $(stepperEl).dataset(); + app.stepper.create(Utils.extend({ el: stepperEl }, dataset || {})); + }); + }, + tabBeforeRemove: function tabBeforeRemove(tabEl) { + $(tabEl).find('.stepper-init').each(function (index, stepperEl) { + if (stepperEl.f7Stepper) { stepperEl.f7Stepper.destroy(); } + }); + }, + pageInit: function pageInit(page) { + var app = this; + page.$el.find('.stepper-init').each(function (index, stepperEl) { + var dataset = $(stepperEl).dataset(); + app.stepper.create(Utils.extend({ el: stepperEl }, dataset || {})); + }); + }, + pageBeforeRemove: function pageBeforeRemove(page) { + page.$el.find('.stepper-init').each(function (index, stepperEl) { + if (stepperEl.f7Stepper) { stepperEl.f7Stepper.destroy(); } + }); + }, + }, + vnode: { + 'stepper-init': { + insert: function insert(vnode) { + var app = this; + var stepperEl = vnode.elm; + var dataset = $(stepperEl).dataset(); + app.stepper.create(Utils.extend({ el: stepperEl }, dataset || {})); + }, + destroy: function destroy(vnode) { + var stepperEl = vnode.elm; + if (stepperEl.f7Stepper) { stepperEl.f7Stepper.destroy(); } + }, + }, + }, + }; + + var SmartSelect = /*@__PURE__*/(function (Framework7Class) { + function SmartSelect(app, params) { + if ( params === void 0 ) params = {}; + + Framework7Class.call(this, params, [app]); + var ss = this; + + var defaults = Utils.extend({ + on: {}, + }, app.params.smartSelect); + + if (typeof defaults.searchbarDisableButton === 'undefined') { + defaults.searchbarDisableButton = app.theme !== 'aurora'; + } + + // Extend defaults with modules params + ss.useModulesParams(defaults); + + ss.params = Utils.extend({}, defaults, params); + + ss.app = app; + + var $el = $(ss.params.el).eq(0); + if ($el.length === 0) { return ss; } + + if ($el[0].f7SmartSelect) { return $el[0].f7SmartSelect; } + + var $selectEl = $el.find('select').eq(0); + if ($selectEl.length === 0) { return ss; } + + var $valueEl; + if (ss.params.setValueText) { + $valueEl = $(ss.params.valueEl); + if ($valueEl.length === 0) { + $valueEl = $el.find('.item-after'); + } + if ($valueEl.length === 0) { + $valueEl = $('
          '); + $valueEl.insertAfter($el.find('.item-title')); + } + } + + // Url + var url = params.url; + if (!url) { + if ($el.attr('href') && $el.attr('href') !== '#') { url = $el.attr('href'); } + else if ($selectEl.attr('name')) { url = ($selectEl.attr('name').toLowerCase()) + "-select/"; } + } + if (!url) { url = ss.params.url; } + + var multiple = $selectEl[0].multiple; + var inputType = multiple ? 'checkbox' : 'radio'; + var id = Utils.id(); + + Utils.extend(ss, { + $el: $el, + el: $el[0], + $selectEl: $selectEl, + selectEl: $selectEl[0], + $valueEl: $valueEl, + valueEl: $valueEl && $valueEl[0], + url: url, + multiple: multiple, + inputType: inputType, + id: id, + inputName: (inputType + "-" + id), + selectName: $selectEl.attr('name'), + maxLength: $selectEl.attr('maxlength') || params.maxLength, + }); + + $el[0].f7SmartSelect = ss; + + // Events + function onClick() { + ss.open(); + } + function onChange() { + var value = ss.$selectEl.val(); + ss.$el.trigger('smartselect:change', value); + ss.emit('local::change smartSelectChange', ss, value); + if (ss.vl) { + ss.vl.clearCache(); + } + ss.setValueText(); + } + ss.attachEvents = function attachEvents() { + $el.on('click', onClick); + $el.on('change', 'select', onChange); + }; + ss.detachEvents = function detachEvents() { + $el.off('click', onClick); + $el.off('change', 'select', onChange); + }; + + function handleInputChange() { + var optionEl; + var text; + var inputEl = this; + var value = inputEl.value; + var optionText = []; + var displayAs; + if (inputEl.type === 'checkbox') { + for (var i = 0; i < ss.selectEl.options.length; i += 1) { + optionEl = ss.selectEl.options[i]; + if (optionEl.value === value) { + optionEl.selected = inputEl.checked; + } + if (optionEl.selected) { + displayAs = optionEl.dataset ? optionEl.dataset.displayAs : $(optionEl).data('display-value-as'); + text = displayAs && typeof displayAs !== 'undefined' ? displayAs : optionEl.textContent; + optionText.push(text.trim()); + } + } + if (ss.maxLength) { + ss.checkMaxLength(); + } + } else { + optionEl = ss.$selectEl.find(("option[value=\"" + value + "\"]"))[0]; + if (!optionEl) { + optionEl = ss.$selectEl.find('option').filter(function (index, optEl) { return optEl.value === value; })[0]; + } + displayAs = optionEl.dataset ? optionEl.dataset.displayAs : $(optionEl).data('display-as'); + text = displayAs && typeof displayAs !== 'undefined' ? displayAs : optionEl.textContent; + optionText = [text]; + ss.selectEl.value = value; + } + + ss.$selectEl.trigger('change'); + if (ss.params.setValueText) { + ss.$valueEl.text(ss.formatValueText(optionText)); + } + if (ss.params.closeOnSelect && ss.inputType === 'radio') { + ss.close(); + } + } + + ss.attachInputsEvents = function attachInputsEvents() { + ss.$containerEl.on('change', 'input[type="checkbox"], input[type="radio"]', handleInputChange); + }; + ss.detachInputsEvents = function detachInputsEvents() { + ss.$containerEl.off('change', 'input[type="checkbox"], input[type="radio"]', handleInputChange); + }; + + // Install Modules + ss.useModules(); + + // Init + ss.init(); + + return ss; + } + + if ( Framework7Class ) SmartSelect.__proto__ = Framework7Class; + SmartSelect.prototype = Object.create( Framework7Class && Framework7Class.prototype ); + SmartSelect.prototype.constructor = SmartSelect; + + var prototypeAccessors = { view: { configurable: true } }; + + SmartSelect.prototype.setValue = function setValue (value) { + var ss = this; + var newValue = value; + var optionText = []; + var optionEl; + var displayAs; + var text; + if (ss.multiple) { + if (!Array.isArray(newValue)) { newValue = [newValue]; } + for (var i = 0; i < ss.selectEl.options.length; i += 1) { + optionEl = ss.selectEl.options[i]; + if (newValue.indexOf(optionEl.value) >= 0) { + optionEl.selected = true; + } else { + optionEl.selected = false; + } + if (optionEl.selected) { + displayAs = optionEl.dataset ? optionEl.dataset.displayAs : $(optionEl).data('display-value-as'); + text = displayAs && typeof displayAs !== 'undefined' ? displayAs : optionEl.textContent; + optionText.push(text.trim()); + } + } + } else { + optionEl = ss.$selectEl.find(("option[value=\"" + newValue + "\"]"))[0]; + if (optionEl) { + displayAs = optionEl.dataset ? optionEl.dataset.displayAs : $(optionEl).data('display-as'); + text = displayAs && typeof displayAs !== 'undefined' ? displayAs : optionEl.textContent; + optionText = [text]; + } + ss.selectEl.value = newValue; + } + if (ss.params.setValueText) { + ss.$valueEl.text(ss.formatValueText(optionText)); + } + ss.$selectEl.trigger('change'); + return ss; + }; + + SmartSelect.prototype.unsetValue = function unsetValue () { + var ss = this; + if (ss.params.setValueText) { + ss.$valueEl.text(ss.formatValueText([])); + } + ss.$selectEl.find('option').each(function (optionIndex, optionEl) { + optionEl.selected = false; + optionEl.checked = false; + }); + ss.$selectEl[0].value = null; + + if (ss.$containerEl) { + ss.$containerEl.find(("input[name=\"" + (ss.inputName) + "\"][type=\"checkbox\"], input[name=\"" + (ss.inputName) + "\"][type=\"radio\"]")).prop('checked', false); + } + ss.$selectEl.trigger('change'); + }; + + SmartSelect.prototype.getValue = function getValue () { + var ss = this; + return ss.$selectEl.val(); + }; + + prototypeAccessors.view.get = function () { + var ref = this; + var params = ref.params; + var $el = ref.$el; + var view; + if (params.view) { + view = params.view; + } + if (!view) { + view = $el.parents('.view').length && $el.parents('.view')[0].f7View; + } + if (!view && params.openIn === 'page') { + throw Error('Smart Select requires initialized View'); + } + return view; + }; + + SmartSelect.prototype.checkMaxLength = function checkMaxLength () { + var ss = this; + var $containerEl = ss.$containerEl; + if (ss.selectEl.selectedOptions.length >= ss.maxLength) { + $containerEl.find('input[type="checkbox"]').each(function (index, inputEl) { + if (!inputEl.checked) { + $(inputEl).parents('li').addClass('disabled'); + } else { + $(inputEl).parents('li').removeClass('disabled'); + } + }); + } else { + $containerEl.find('.disabled').removeClass('disabled'); + } + }; + + SmartSelect.prototype.formatValueText = function formatValueText (values) { + var ss = this; + var textValue; + if (ss.params.formatValueText) { + textValue = ss.params.formatValueText.call(ss, values, ss); + } else { + textValue = values.join(', '); + } + return textValue; + }; + + SmartSelect.prototype.setValueText = function setValueText (value) { + var ss = this; + var valueArray = []; + if (typeof value !== 'undefined') { + if (Array.isArray(value)) { + valueArray = value; + } else { + valueArray = [value]; + } + } else { + ss.$selectEl.find('option').each(function (optionIndex, optionEl) { + var $optionEl = $(optionEl); + if (optionEl.selected) { + var displayAs = optionEl.dataset ? optionEl.dataset.displayAs : $optionEl.data('display-value-as'); + if (displayAs && typeof displayAs !== 'undefined') { + valueArray.push(displayAs); + } else { + valueArray.push(optionEl.textContent.trim()); + } + } + }); + } + if (ss.params.setValueText) { + ss.$valueEl.text(ss.formatValueText(valueArray)); + } + }; + + SmartSelect.prototype.getItemsData = function getItemsData () { + var ss = this; + var theme = ss.app.theme; + var items = []; + var previousGroupEl; + ss.$selectEl.find('option').each(function (index, optionEl) { + var $optionEl = $(optionEl); + var optionData = $optionEl.dataset(); + var optionImage = optionData.optionImage || ss.params.optionImage; + var optionIcon = optionData.optionIcon || ss.params.optionIcon; + var optionIconIos = theme === 'ios' && (optionData.optionIconIos || ss.params.optionIconIos); + var optionIconMd = theme === 'md' && (optionData.optionIconMd || ss.params.optionIconMd); + var optionIconAurora = theme === 'aurora' && (optionData.optionIconAurora || ss.params.optionIconAurora); + var optionHasMedia = optionImage || optionIcon || optionIconIos || optionIconMd || optionIconAurora; + var optionColor = optionData.optionColor; + + var optionClassName = optionData.optionClass || ''; + if ($optionEl[0].disabled) { optionClassName += ' disabled'; } + + var optionGroupEl = $optionEl.parent('optgroup')[0]; + var optionGroupLabel = optionGroupEl && optionGroupEl.label; + var optionIsLabel = false; + if (optionGroupEl && optionGroupEl !== previousGroupEl) { + optionIsLabel = true; + previousGroupEl = optionGroupEl; + items.push({ + groupLabel: optionGroupLabel, + isLabel: optionIsLabel, + }); + } + items.push({ + value: $optionEl[0].value, + text: $optionEl[0].textContent.trim(), + selected: $optionEl[0].selected, + groupEl: optionGroupEl, + groupLabel: optionGroupLabel, + image: optionImage, + icon: optionIcon, + iconIos: optionIconIos, + iconMd: optionIconMd, + iconAurora: optionIconAurora, + color: optionColor, + className: optionClassName, + disabled: $optionEl[0].disabled, + id: ss.id, + hasMedia: optionHasMedia, + checkbox: ss.inputType === 'checkbox', + radio: ss.inputType === 'radio', + inputName: ss.inputName, + inputType: ss.inputType, + }); + }); + ss.items = items; + return items; + }; + + SmartSelect.prototype.renderSearchbar = function renderSearchbar () { + var ss = this; + if (ss.params.renderSearchbar) { return ss.params.renderSearchbar.call(ss); } + var searchbarHTML = "\n
          \n
          \n
          \n \n \n \n
          \n " + (ss.params.searchbarDisableButton ? ("\n " + (ss.params.searchbarDisableText) + "\n ") : '') + "\n
          \n
          \n "; + return searchbarHTML; + }; + + SmartSelect.prototype.renderItem = function renderItem (item, index) { + var ss = this; + if (ss.params.renderItem) { return ss.params.renderItem.call(ss, item, index); } + + function getIconContent(iconValue) { + if ( iconValue === void 0 ) iconValue = ''; + + if (iconValue.indexOf(':') >= 0) { + return iconValue.split(':')[1]; + } + return ''; + } + function getIconClass(iconValue) { + if ( iconValue === void 0 ) iconValue = ''; + + if (iconValue.indexOf(':') >= 0) { + var className = iconValue.split(':')[0]; + if (className === 'f7') { className = 'f7-icons'; } + if (className === 'material') { className = 'material-icons'; } + return className; + } + return iconValue; + } + + var itemHtml; + if (item.isLabel) { + itemHtml = "
        • " + (item.groupLabel) + "
        • "; + } else { + var selected = item.selected; + var disabled; + if (ss.params.virtualList) { + var ssValue = ss.getValue(); + selected = ss.multiple ? ssValue.indexOf(item.value) >= 0 : ssValue === item.value; + if (ss.multiple) { + disabled = ss.multiple && !selected && ssValue.length === parseInt(ss.maxLength, 10); + } + } + + var icon = item.icon; + var iconIos = item.iconIos; + var iconMd = item.iconMd; + var iconAurora = item.iconAurora; + var hasIcon = icon || iconIos || iconMd || iconAurora; + var iconContent = getIconContent(icon || iconIos || iconMd || iconAurora || ''); + var iconClass = getIconClass(icon || iconIos || iconMd || iconAurora || ''); + + itemHtml = "\n
        • \n \n
        • \n "; + } + return itemHtml; + }; + + SmartSelect.prototype.renderItems = function renderItems () { + var ss = this; + if (ss.params.renderItems) { return ss.params.renderItems.call(ss, ss.items); } + var itemsHtml = "\n " + (ss.items.map(function (item, index) { return ("" + (ss.renderItem(item, index))); }).join('')) + "\n "; + return itemsHtml; + }; + + SmartSelect.prototype.renderPage = function renderPage () { + var ss = this; + if (ss.params.renderPage) { return ss.params.renderPage.call(ss, ss.items); } + var pageTitle = ss.params.pageTitle; + if (typeof pageTitle === 'undefined') { + var $itemTitleEl = ss.$el.find('.item-title'); + pageTitle = $itemTitleEl.length ? $itemTitleEl.text().trim() : ''; + } + var cssClass = ss.params.cssClass; + var pageHtml = "\n
          \n
          \n
          \n
          \n \n " + (pageTitle ? ("
          " + pageTitle + "
          ") : '') + "\n " + (ss.params.searchbar ? ("
          " + (ss.renderSearchbar()) + "
          ") : '') + "\n
          \n
          \n " + (ss.params.searchbar ? '
          ' : '') + "\n
          \n
          \n
            " + (!ss.params.virtualList && ss.renderItems(ss.items)) + "
          \n
          \n
          \n
          \n "; + return pageHtml; + }; + + SmartSelect.prototype.renderPopup = function renderPopup () { + var ss = this; + if (ss.params.renderPopup) { return ss.params.renderPopup.call(ss, ss.items); } + var pageTitle = ss.params.pageTitle; + if (typeof pageTitle === 'undefined') { + var $itemTitleEl = ss.$el.find('.item-title'); + pageTitle = $itemTitleEl.length ? $itemTitleEl.text().trim() : ''; + } + var cssClass = ss.params.cssClass || ''; + var popupHtml = "\n
          \n
          \n
          \n
          \n
          \n
          \n " + (pageTitle ? ("
          " + pageTitle + "
          ") : '') + "\n \n " + (ss.params.searchbar ? ("
          " + (ss.renderSearchbar()) + "
          ") : '') + "\n
          \n
          \n " + (ss.params.searchbar ? '
          ' : '') + "\n
          \n
          \n
            " + (!ss.params.virtualList && ss.renderItems(ss.items)) + "
          \n
          \n
          \n
          \n
          \n
          \n "; + return popupHtml; + }; + + SmartSelect.prototype.renderSheet = function renderSheet () { + var ss = this; + if (ss.params.renderSheet) { return ss.params.renderSheet.call(ss, ss.items); } + var cssClass = ss.params.cssClass; + var sheetHtml = "\n
          \n \n
          \n
          \n
          \n
            " + (!ss.params.virtualList && ss.renderItems(ss.items)) + "
          \n
          \n
          \n
          \n
          \n "; + return sheetHtml; + }; + + SmartSelect.prototype.renderPopover = function renderPopover () { + var ss = this; + if (ss.params.renderPopover) { return ss.params.renderPopover.call(ss, ss.items); } + var cssClass = ss.params.cssClass; + var popoverHtml = "\n
          \n
          \n
          \n
            " + (!ss.params.virtualList && ss.renderItems(ss.items)) + "
          \n
          \n
          \n
          \n "; + return popoverHtml; + }; + + SmartSelect.prototype.scrollToSelectedItem = function scrollToSelectedItem () { + var ss = this; + var params = ss.params; + var $containerEl = ss.$containerEl; + if (!ss.opened) { return ss; } + if (params.virtualList) { + var selectedIndex; + ss.vl.items.forEach(function (item, index) { + if (typeof selectedIndex === 'undefined' && item.selected) { + selectedIndex = index; + } + }); + if (typeof selectedIndex !== 'undefined') { + ss.vl.scrollToItem(selectedIndex); + } + } else { + var $selectedItemEl = $containerEl.find('input:checked').parents('li'); + if (!$selectedItemEl.length) { return ss; } + var $pageContentEl = $containerEl.find('.page-content'); + $pageContentEl.scrollTop($selectedItemEl.offset().top - $pageContentEl.offset().top - parseInt($pageContentEl.css('padding-top'), 10)); + } + return ss; + }; + + SmartSelect.prototype.onOpen = function onOpen (type, containerEl) { + var ss = this; + var app = ss.app; + var $containerEl = $(containerEl); + ss.$containerEl = $containerEl; + ss.openedIn = type; + ss.opened = true; + + // Init VL + if (ss.params.virtualList) { + ss.vl = app.virtualList.create({ + el: $containerEl.find('.virtual-list'), + items: ss.items, + renderItem: ss.renderItem.bind(ss), + height: ss.params.virtualListHeight, + searchByItem: function searchByItem(query, item) { + if (item.text && item.text.toLowerCase().indexOf(query.trim().toLowerCase()) >= 0) { return true; } + return false; + }, + }); + } + if (ss.params.scrollToSelectedItem) { + ss.scrollToSelectedItem(); + } + + // Init SB + if (ss.params.searchbar) { + var $searchbarEl = $containerEl.find('.searchbar'); + if (type === 'page' && app.theme === 'ios') { + $searchbarEl = $(app.navbar.getElByPage($containerEl)).find('.searchbar'); + } + + if (ss.params.appendSearchbarNotFound && (type === 'page' || type === 'popup')) { + var $notFoundEl = null; + + if (typeof ss.params.appendSearchbarNotFound === 'string') { + $notFoundEl = $(("
          " + (ss.params.appendSearchbarNotFound) + "
          ")); + } else if (typeof ss.params.appendSearchbarNotFound === 'boolean') { + $notFoundEl = $('
          Nothing found
          '); + } else { + $notFoundEl = ss.params.appendSearchbarNotFound; + } + + if ($notFoundEl) { + $containerEl.find('.page-content').append($notFoundEl[0]); + } + } + + var searchbarParams = Utils.extend({ + el: $searchbarEl, + backdropEl: $containerEl.find('.searchbar-backdrop'), + searchContainer: (".smart-select-list-" + (ss.id)), + searchIn: '.item-title', + }, typeof ss.params.searchbar === 'object' ? ss.params.searchbar : {}); + + ss.searchbar = app.searchbar.create(searchbarParams); + } + + // Check for max length + if (ss.maxLength) { + ss.checkMaxLength(); + } + + // Close on select + if (ss.params.closeOnSelect) { + ss.$containerEl.find(("input[type=\"radio\"][name=\"" + (ss.inputName) + "\"]:checked")).parents('label').once('click', function () { + ss.close(); + }); + } + + // Attach input events + ss.attachInputsEvents(); + + ss.$el.trigger('smartselect:open'); + ss.emit('local::open smartSelectOpen', ss); + }; + + SmartSelect.prototype.onOpened = function onOpened () { + var ss = this; + + ss.$el.trigger('smartselect:opened'); + ss.emit('local::opened smartSelectOpened', ss); + }; + + SmartSelect.prototype.onClose = function onClose () { + var ss = this; + if (ss.destroyed) { return; } + + // Destroy VL + if (ss.vl && ss.vl.destroy) { + ss.vl.destroy(); + ss.vl = null; + delete ss.vl; + } + + // Destroy SB + if (ss.searchbar && ss.searchbar.destroy) { + ss.searchbar.destroy(); + ss.searchbar = null; + delete ss.searchbar; + } + // Detach events + ss.detachInputsEvents(); + + ss.$el.trigger('smartselect:close'); + ss.emit('local::close smartSelectClose', ss); + }; + + SmartSelect.prototype.onClosed = function onClosed () { + var ss = this; + if (ss.destroyed) { return; } + ss.opened = false; + ss.$containerEl = null; + delete ss.$containerEl; + + ss.$el.trigger('smartselect:closed'); + ss.emit('local::closed smartSelectClosed', ss); + }; + + SmartSelect.prototype.openPage = function openPage () { + var ss = this; + if (ss.opened) { return ss; } + ss.getItemsData(); + var pageHtml = ss.renderPage(ss.items); + + ss.view.router.navigate({ + url: ss.url, + route: { + content: pageHtml, + path: ss.url, + on: { + pageBeforeIn: function pageBeforeIn(e, page) { + ss.onOpen('page', page.el); + }, + pageAfterIn: function pageAfterIn(e, page) { + ss.onOpened('page', page.el); + }, + pageBeforeOut: function pageBeforeOut(e, page) { + ss.onClose('page', page.el); + }, + pageAfterOut: function pageAfterOut(e, page) { + ss.onClosed('page', page.el); + }, + }, + }, + }); + return ss; + }; + + SmartSelect.prototype.openPopup = function openPopup () { + var ss = this; + if (ss.opened) { return ss; } + ss.getItemsData(); + var popupHtml = ss.renderPopup(ss.items); + + var popupParams = { + content: popupHtml, + push: ss.params.popupPush, + swipeToClose: ss.params.popupSwipeToClose, + on: { + popupOpen: function popupOpen(popup) { + ss.onOpen('popup', popup.el); + }, + popupOpened: function popupOpened(popup) { + ss.onOpened('popup', popup.el); + }, + popupClose: function popupClose(popup) { + ss.onClose('popup', popup.el); + }, + popupClosed: function popupClosed(popup) { + ss.onClosed('popup', popup.el); + }, + }, + }; + + if (ss.params.routableModals && ss.view) { + ss.view.router.navigate({ + url: ss.url, + route: { + path: ss.url, + popup: popupParams, + }, + }); + } else { + ss.modal = ss.app.popup.create(popupParams).open(); + } + return ss; + }; + + SmartSelect.prototype.openSheet = function openSheet () { + var ss = this; + if (ss.opened) { return ss; } + ss.getItemsData(); + var sheetHtml = ss.renderSheet(ss.items); + + var sheetParams = { + content: sheetHtml, + backdrop: false, + scrollToEl: ss.$el, + closeByOutsideClick: true, + push: ss.params.sheetPush, + swipeToClose: ss.params.sheetSwipeToClose, + on: { + sheetOpen: function sheetOpen(sheet) { + ss.onOpen('sheet', sheet.el); + }, + sheetOpened: function sheetOpened(sheet) { + ss.onOpened('sheet', sheet.el); + }, + sheetClose: function sheetClose(sheet) { + ss.onClose('sheet', sheet.el); + }, + sheetClosed: function sheetClosed(sheet) { + ss.onClosed('sheet', sheet.el); + }, + }, + }; + + if (ss.params.routableModals && ss.view) { + ss.view.router.navigate({ + url: ss.url, + route: { + path: ss.url, + sheet: sheetParams, + }, + }); + } else { + ss.modal = ss.app.sheet.create(sheetParams).open(); + } + return ss; + }; + + SmartSelect.prototype.openPopover = function openPopover () { + var ss = this; + if (ss.opened) { return ss; } + ss.getItemsData(); + var popoverHtml = ss.renderPopover(ss.items); + var popoverParams = { + content: popoverHtml, + targetEl: ss.$el, + on: { + popoverOpen: function popoverOpen(popover) { + ss.onOpen('popover', popover.el); + }, + popoverOpened: function popoverOpened(popover) { + ss.onOpened('popover', popover.el); + }, + popoverClose: function popoverClose(popover) { + ss.onClose('popover', popover.el); + }, + popoverClosed: function popoverClosed(popover) { + ss.onClosed('popover', popover.el); + }, + }, + }; + if (ss.params.routableModals && ss.view) { + ss.view.router.navigate({ + url: ss.url, + route: { + path: ss.url, + popover: popoverParams, + }, + }); + } else { + ss.modal = ss.app.popover.create(popoverParams).open(); + } + return ss; + }; + + SmartSelect.prototype.open = function open (type) { + var ss = this; + if (ss.opened) { return ss; } + var prevented = false; + function prevent() { + prevented = true; + } + if (ss.$el) { + ss.$el.trigger('smartselect:beforeopen', { prevent: prevent }); + } + ss.emit('local::beforeOpen smartSelectBeforeOpen', ss, prevent); + if (prevented) { return ss; } + var openIn = type || ss.params.openIn; + ss[("open" + (openIn.split('').map(function (el, index) { + if (index === 0) { return el.toUpperCase(); } + return el; + }).join('')))](); + return ss; + }; + + SmartSelect.prototype.close = function close () { + var ss = this; + if (!ss.opened) { return ss; } + if ((ss.params.routableModals && ss.view) || ss.openedIn === 'page') { + ss.view.router.back(); + } else { + ss.modal.once('modalClosed', function () { + Utils.nextTick(function () { + if (ss.destroyed) { return; } + ss.modal.destroy(); + delete ss.modal; + }); + }); + ss.modal.close(); + } + return ss; + }; + + SmartSelect.prototype.init = function init () { + var ss = this; + ss.attachEvents(); + ss.setValueText(); + }; + + SmartSelect.prototype.destroy = function destroy () { + var ss = this; + ss.emit('local::beforeDestroy smartSelectBeforeDestroy', ss); + ss.$el.trigger('smartselect:beforedestroy'); + ss.detachEvents(); + delete ss.$el[0].f7SmartSelect; + Utils.deleteProps(ss); + ss.destroyed = true; + }; + + Object.defineProperties( SmartSelect.prototype, prototypeAccessors ); + + return SmartSelect; + }(Framework7Class)); + + var SmartSelect$1 = { + name: 'smartSelect', + params: { + smartSelect: { + el: undefined, + valueEl: undefined, + setValueText: true, + formatValueText: null, + openIn: 'page', // or 'popup' or 'sheet' or 'popover' + popupPush: false, + popupSwipeToClose: undefined, // defaults to app + sheetPush: false, + sheetSwipeToClose: undefined, // defaults to app + pageTitle: undefined, + pageBackLinkText: 'Back', + popupCloseLinkText: 'Close', + popupTabletFullscreen: false, + sheetCloseLinkText: 'Done', + searchbar: false, + searchbarPlaceholder: 'Search', + searchbarDisableText: 'Cancel', + searchbarDisableButton: undefined, + searchbarSpellcheck: false, + closeOnSelect: false, + virtualList: false, + virtualListHeight: undefined, + scrollToSelectedItem: false, + formColorTheme: undefined, + navbarColorTheme: undefined, + routableModals: true, + url: 'select/', + cssClass: '', + /* + Custom render functions + */ + renderPage: undefined, + renderPopup: undefined, + renderSheet: undefined, + renderPopover: undefined, + renderItems: undefined, + renderItem: undefined, + renderSearchbar: undefined, + }, + }, + static: { + SmartSelect: SmartSelect, + }, + create: function create() { + var app = this; + app.smartSelect = Utils.extend( + ConstructorMethods({ + defaultSelector: '.smart-select', + constructor: SmartSelect, + app: app, + domProp: 'f7SmartSelect', + }), + { + open: function open(smartSelectEl) { + var ss = app.smartSelect.get(smartSelectEl); + if (ss && ss.open) { return ss.open(); } + return undefined; + }, + close: function close(smartSelectEl) { + var ss = app.smartSelect.get(smartSelectEl); + if (ss && ss.close) { return ss.close(); } + return undefined; + }, + } + ); + }, + + on: { + tabMounted: function tabMounted(tabEl) { + var app = this; + $(tabEl).find('.smart-select-init').each(function (index, smartSelectEl) { + app.smartSelect.create(Utils.extend({ el: smartSelectEl }, $(smartSelectEl).dataset())); + }); + }, + tabBeforeRemove: function tabBeforeRemove(tabEl) { + $(tabEl).find('.smart-select-init').each(function (index, smartSelectEl) { + if (smartSelectEl.f7SmartSelect && smartSelectEl.f7SmartSelect.destroy) { + smartSelectEl.f7SmartSelect.destroy(); + } + }); + }, + pageInit: function pageInit(page) { + var app = this; + page.$el.find('.smart-select-init').each(function (index, smartSelectEl) { + app.smartSelect.create(Utils.extend({ el: smartSelectEl }, $(smartSelectEl).dataset())); + }); + }, + pageBeforeRemove: function pageBeforeRemove(page) { + page.$el.find('.smart-select-init').each(function (index, smartSelectEl) { + if (smartSelectEl.f7SmartSelect && smartSelectEl.f7SmartSelect.destroy) { + smartSelectEl.f7SmartSelect.destroy(); + } + }); + }, + }, + clicks: { + '.smart-select': function open($clickedEl, data) { + var app = this; + if (!$clickedEl[0].f7SmartSelect) { + var ss = app.smartSelect.create(Utils.extend({ el: $clickedEl }, data)); + ss.open(); + } + }, + }, + vnode: { + 'smart-select-init': { + insert: function insert(vnode) { + var app = this; + var smartSelectEl = vnode.elm; + app.smartSelect.create(Utils.extend({ el: smartSelectEl }, $(smartSelectEl).dataset())); + }, + destroy: function destroy(vnode) { + var smartSelectEl = vnode.elm; + if (smartSelectEl.f7SmartSelect && smartSelectEl.f7SmartSelect.destroy) { + smartSelectEl.f7SmartSelect.destroy(); + } + }, + }, + }, + }; + + function getElMinSize(dimension, $el) { + var minSize = $el.css(("min-" + dimension)); + if (minSize === 'auto' || minSize === 'none') { + minSize = 0; + } else if (minSize.indexOf('px') >= 0) { + minSize = parseFloat(minSize); + } else if (minSize.indexOf('%') >= 0) { + minSize = $el.parent()[0][dimension === 'height' ? 'offsetHeight' : 'offsetWidth'] * parseFloat(minSize) / 100; + } + return minSize; + } + function getElMaxSize(dimension, $el) { + var maxSize = $el.css(("max-" + dimension)); + if (maxSize === 'auto' || maxSize === 'none') { + maxSize = null; + } else if (maxSize.indexOf('px') >= 0) { + maxSize = parseFloat(maxSize); + } else if (maxSize.indexOf('%') >= 0) { + maxSize = $el.parent()[0][dimension === 'height' ? 'offsetHeight' : 'offsetWidth'] * parseFloat(maxSize) / 100; + } + return maxSize; + } + + var Grid = { + init: function init() { + var app = this; + var isTouched; + var isMoved; + var touchStartX; + var touchStartY; + var $resizeHandlerEl; + var $prevResizableEl; + var $nextResizableEl; + var prevElSize; + var prevElMinSize; + var prevElMaxSize; + var nextElSize; + var nextElMinSize; + var nextElMaxSize; + var parentSize; + var itemsInFlow; + var gapSize; + var isScrolling; + + function handleTouchStart(e) { + if (isTouched || isMoved) { return; } + $resizeHandlerEl = $(e.target).closest('.resize-handler'); + touchStartX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX; + touchStartY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY; + isTouched = true; + $prevResizableEl = undefined; + $nextResizableEl = undefined; + isScrolling = undefined; + } + + function handleTouchMove(e) { + if (!isTouched) { return; } + var isRow = $resizeHandlerEl.parent('.row').length === 1; + var sizeProp = isRow ? 'height' : 'width'; + var getSizeProp = isRow ? 'offsetHeight' : 'offsetWidth'; + if (!isMoved) { + $prevResizableEl = $resizeHandlerEl.parent(isRow ? '.row' : '.col'); + if ($prevResizableEl.length && (!$prevResizableEl.hasClass('resizable') || $prevResizableEl.hasClass('resizable-fixed'))) { + $prevResizableEl = $prevResizableEl.prevAll('.resizable:not(.resizable-fixed)').eq(0); + } + $nextResizableEl = $prevResizableEl.next(isRow ? '.row' : '.col'); + if ($nextResizableEl.length && (!$nextResizableEl.hasClass('resizable') || $nextResizableEl.hasClass('resizable-fixed'))) { + $nextResizableEl = $nextResizableEl.nextAll('.resizable:not(.resizable-fixed)').eq(0); + } + + if ($prevResizableEl.length) { + prevElSize = $prevResizableEl[0][getSizeProp]; + prevElMinSize = getElMinSize(sizeProp, $prevResizableEl); + prevElMaxSize = getElMaxSize(sizeProp, $prevResizableEl); + parentSize = $prevResizableEl.parent()[0][getSizeProp]; + itemsInFlow = $prevResizableEl.parent().children(isRow ? '.row' : '[class*="col-"], .col').length; + gapSize = parseFloat($prevResizableEl.css(isRow ? '--f7-grid-row-gap' : '--f7-grid-gap')); + } + if ($nextResizableEl.length) { + nextElSize = $nextResizableEl[0][getSizeProp]; + nextElMinSize = getElMinSize(sizeProp, $nextResizableEl); + nextElMaxSize = getElMaxSize(sizeProp, $nextResizableEl); + if (!$prevResizableEl.length) { + parentSize = $nextResizableEl.parent()[0][getSizeProp]; + itemsInFlow = $nextResizableEl.parent().children(isRow ? '.row' : '[class*="col-"], .col').length; + gapSize = parseFloat($nextResizableEl.css(isRow ? '--f7-grid-row-gap' : '--f7-grid-gap')); + } + } + } + + isMoved = true; + var touchCurrentX = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX; + var touchCurrentY = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY; + if (typeof isScrolling === 'undefined' && !isRow) { + isScrolling = !!(isScrolling || Math.abs(touchCurrentY - touchStartY) > Math.abs(touchCurrentX - touchStartX)); + } + if (isScrolling) { + isTouched = false; + isMoved = false; + return; + } + + var isAbsolute = $prevResizableEl.hasClass('resizable-absolute') || $nextResizableEl.hasClass('resizable-absolute'); + var resizeNextEl = !isRow || (isRow && !isAbsolute); + + if ((resizeNextEl && !$nextResizableEl.length) || !$prevResizableEl.length) { + isTouched = false; + isMoved = false; + return; + } + + e.preventDefault(); + + var diff = isRow + ? touchCurrentY - touchStartY + : touchCurrentX - touchStartX; + + var prevElNewSize; + var nextElNewSize; + if ($prevResizableEl.length) { + prevElNewSize = prevElSize + diff; + if (prevElNewSize < prevElMinSize) { + prevElNewSize = prevElMinSize; + diff = prevElNewSize - prevElSize; + } + if (prevElMaxSize && prevElNewSize > prevElMaxSize) { + prevElNewSize = prevElMaxSize; + diff = prevElNewSize - prevElSize; + } + } + if ($nextResizableEl.length && resizeNextEl) { + nextElNewSize = nextElSize - diff; + if (nextElNewSize < nextElMinSize) { + nextElNewSize = nextElMinSize; + diff = nextElSize - nextElNewSize; + prevElNewSize = prevElSize + diff; + } + if (nextElMaxSize && nextElNewSize > nextElMaxSize) { + nextElNewSize = nextElMaxSize; + diff = nextElSize - nextElNewSize; + prevElNewSize = prevElSize + diff; + } + } + + if (isAbsolute) { + $prevResizableEl[0].style[sizeProp] = prevElNewSize + "px"; + if (resizeNextEl) { + $nextResizableEl[0].style[sizeProp] = nextElNewSize + "px"; + } + $prevResizableEl.trigger('grid:resize'); + $nextResizableEl.trigger('grid:resize'); + app.emit('gridResize', $prevResizableEl[0]); + app.emit('gridResize', $nextResizableEl[0]); + return; + } + + var gapAddSize = (itemsInFlow - 1) * gapSize / itemsInFlow; + var gapAddSizeCSS = isRow + ? ((itemsInFlow - 1) + " * var(--f7-grid-row-gap) / " + itemsInFlow) + : '(var(--f7-cols-per-row) - 1) * var(--f7-grid-gap) / var(--f7-cols-per-row)'; + var prevElNewSizeNormalized = prevElNewSize + gapAddSize; + var nextElNewSizeNormalized = nextElNewSize + gapAddSize; + $prevResizableEl[0].style[sizeProp] = "calc(" + (prevElNewSizeNormalized / parentSize * 100) + "% - " + gapAddSizeCSS + ")"; + $nextResizableEl[0].style[sizeProp] = "calc(" + (nextElNewSizeNormalized / parentSize * 100) + "% - " + gapAddSizeCSS + ")"; + $prevResizableEl.trigger('grid:resize'); + $nextResizableEl.trigger('grid:resize'); + app.emit('gridResize', $prevResizableEl[0]); + app.emit('gridResize', $nextResizableEl[0]); + } + + function handleTouchEnd() { + if (!isTouched) { return; } + if (!isMoved) { + isTouched = false; + } + isTouched = false; + isMoved = false; + } + + $(document).on(app.touchEvents.start, '.col > .resize-handler, .row > .resize-handler', handleTouchStart); + app.on('touchmove', handleTouchMove); + app.on('touchend', handleTouchEnd); + }, + }; + + var Grid$1 = { + name: 'grid', + create: function create() { + var app = this; + Utils.extend(app, { + grid: { + init: Grid.init.bind(app), + }, + }); + }, + on: { + init: function init() { + var app = this; + app.grid.init(); + }, + }, + }; + + var Calendar = /*@__PURE__*/(function (Framework7Class) { + function Calendar(app, params) { + if ( params === void 0 ) params = {}; + + Framework7Class.call(this, params, [app]); + var calendar = this; + + calendar.params = Utils.extend({}, app.params.calendar, params); + + var $containerEl; + if (calendar.params.containerEl) { + $containerEl = $(calendar.params.containerEl); + if ($containerEl.length === 0) { return calendar; } + } + + var $inputEl; + if (calendar.params.inputEl) { + $inputEl = $(calendar.params.inputEl); + } + + var isHorizontal = calendar.params.direction === 'horizontal'; + + var inverter = 1; + if (isHorizontal) { + inverter = app.rtl ? -1 : 1; + } + + Utils.extend(calendar, { + app: app, + $containerEl: $containerEl, + containerEl: $containerEl && $containerEl[0], + inline: $containerEl && $containerEl.length > 0, + $inputEl: $inputEl, + inputEl: $inputEl && $inputEl[0], + initialized: false, + opened: false, + url: calendar.params.url, + isHorizontal: isHorizontal, + inverter: inverter, + animating: false, + hasTimePicker: calendar.params.timePicker && !calendar.params.rangePicker && !calendar.params.multiple, + }); + calendar.dayFormatter = new Intl.DateTimeFormat(calendar.params.locale, { day: 'numeric' }); + calendar.monthFormatter = new Intl.DateTimeFormat(calendar.params.locale, { month: 'long' }); + calendar.yearFormatter = new Intl.DateTimeFormat(calendar.params.locale, { year: 'numeric' }); + calendar.timeSelectorFormatter = new Intl.DateTimeFormat(calendar.params.locale, calendar.params.timePickerFormat); + + // Auto names + var ref = calendar.params; + var monthNames = ref.monthNames; + var monthNamesShort = ref.monthNamesShort; + var dayNames = ref.dayNames; + var dayNamesShort = ref.dayNamesShort; + var ref$1 = calendar.getIntlNames(); + var monthNamesIntl = ref$1.monthNamesIntl; + var monthNamesShortIntl = ref$1.monthNamesShortIntl; + var dayNamesIntl = ref$1.dayNamesIntl; + var dayNamesShortIntl = ref$1.dayNamesShortIntl; + if (monthNames === 'auto') { monthNames = monthNamesIntl; } + if (monthNamesShort === 'auto') { monthNamesShort = monthNamesShortIntl; } + if (dayNames === 'auto') { dayNames = dayNamesIntl; } + if (dayNamesShort === 'auto') { dayNamesShort = dayNamesShortIntl; } + + Utils.extend(calendar, { + monthNames: monthNames, + monthNamesShort: monthNamesShort, + dayNames: dayNames, + dayNamesShort: dayNamesShort, + }); + + function onInputClick() { + calendar.open(); + } + function onInputFocus(e) { + e.preventDefault(); + } + function onInputClear() { + calendar.setValue([]); + if (calendar.opened) { + calendar.update(); + } + } + function onHtmlClick(e) { + var $targetEl = $(e.target); + if (calendar.destroyed || !calendar.params) { return; } + if (calendar.isPopover()) { return; } + if (!calendar.opened || calendar.closing) { return; } + if ($targetEl.closest('[class*="backdrop"]').length) { return; } + if ($inputEl && $inputEl.length > 0) { + if ($targetEl[0] !== $inputEl[0] && $targetEl.closest('.sheet-modal, .calendar-modal').length === 0) { + calendar.close(); + } + } else if ($(e.target).closest('.sheet-modal, .calendar-modal').length === 0) { + calendar.close(); + } + } + + // Events + Utils.extend(calendar, { + attachInputEvents: function attachInputEvents() { + calendar.$inputEl.on('click', onInputClick); + calendar.$inputEl.on('input:clear', onInputClear); + if (calendar.params.inputReadOnly) { + calendar.$inputEl.on('focus mousedown', onInputFocus); + if (calendar.$inputEl[0]) { + calendar.$inputEl[0].f7ValidateReadonly = true; + } + } + }, + detachInputEvents: function detachInputEvents() { + calendar.$inputEl.off('click', onInputClick); + calendar.$inputEl.off('input:clear', onInputClear); + if (calendar.params.inputReadOnly) { + calendar.$inputEl.off('focus mousedown', onInputFocus); + if (calendar.$inputEl[0]) { + delete calendar.$inputEl[0].f7ValidateReadonly; + } + } + }, + attachHtmlEvents: function attachHtmlEvents() { + app.on('click', onHtmlClick); + }, + detachHtmlEvents: function detachHtmlEvents() { + app.off('click', onHtmlClick); + }, + }); + calendar.attachCalendarEvents = function attachCalendarEvents() { + var allowItemClick = true; + var isTouched; + var isMoved; + var touchStartX; + var touchStartY; + var touchCurrentX; + var touchCurrentY; + var touchStartTime; + var touchEndTime; + var currentTranslate; + var wrapperWidth; + var wrapperHeight; + var percentage; + var touchesDiff; + var isScrolling; + + var $el = calendar.$el; + var $wrapperEl = calendar.$wrapperEl; + + function handleTouchStart(e) { + if (isMoved || isTouched) { return; } + isTouched = true; + touchStartX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX; + touchCurrentX = touchStartX; + touchStartY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY; + touchCurrentY = touchStartY; + touchStartTime = (new Date()).getTime(); + percentage = 0; + allowItemClick = true; + isScrolling = undefined; + currentTranslate = calendar.monthsTranslate; + } + function handleTouchMove(e) { + if (!isTouched) { return; } + var isH = calendar.isHorizontal; + + touchCurrentX = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX; + touchCurrentY = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY; + if (typeof isScrolling === 'undefined') { + isScrolling = !!(isScrolling || Math.abs(touchCurrentY - touchStartY) > Math.abs(touchCurrentX - touchStartX)); + } + if (isH && isScrolling) { + isTouched = false; + return; + } + e.preventDefault(); + if (calendar.animating) { + isTouched = false; + return; + } + allowItemClick = false; + if (!isMoved) { + // First move + isMoved = true; + wrapperWidth = $wrapperEl[0].offsetWidth; + wrapperHeight = $wrapperEl[0].offsetHeight; + $wrapperEl.transition(0); + } + + touchesDiff = isH ? touchCurrentX - touchStartX : touchCurrentY - touchStartY; + percentage = touchesDiff / (isH ? wrapperWidth : wrapperHeight); + currentTranslate = ((calendar.monthsTranslate * calendar.inverter) + percentage) * 100; + + // Transform wrapper + $wrapperEl.transform(("translate3d(" + (isH ? currentTranslate : 0) + "%, " + (isH ? 0 : currentTranslate) + "%, 0)")); + } + function handleTouchEnd() { + if (!isTouched || !isMoved) { + isTouched = false; + isMoved = false; + return; + } + isTouched = false; + isMoved = false; + + touchEndTime = new Date().getTime(); + if (touchEndTime - touchStartTime < 300) { + if (Math.abs(touchesDiff) < 10) { + calendar.resetMonth(); + } else if (touchesDiff >= 10) { + if (app.rtl) { calendar.nextMonth(); } + else { calendar.prevMonth(); } + } else if (app.rtl) { calendar.prevMonth(); } + else { calendar.nextMonth(); } + } else if (percentage <= -0.5) { + if (app.rtl) { calendar.prevMonth(); } + else { calendar.nextMonth(); } + } else if (percentage >= 0.5) { + if (app.rtl) { calendar.nextMonth(); } + else { calendar.prevMonth(); } + } else { + calendar.resetMonth(); + } + + // Allow click + setTimeout(function () { + allowItemClick = true; + }, 100); + } + + function handleDayClick(e) { + if (!allowItemClick) { return; } + var $dayEl = $(e.target).parents('.calendar-day'); + if ($dayEl.length === 0 && $(e.target).hasClass('calendar-day')) { + $dayEl = $(e.target); + } + if ($dayEl.length === 0) { return; } + if ($dayEl.hasClass('calendar-day-disabled')) { return; } + if (!calendar.params.rangePicker) { + if ($dayEl.hasClass('calendar-day-next')) { calendar.nextMonth(); } + if ($dayEl.hasClass('calendar-day-prev')) { calendar.prevMonth(); } + } + var dateYear = parseInt($dayEl.attr('data-year'), 10); + var dateMonth = parseInt($dayEl.attr('data-month'), 10); + var dateDay = parseInt($dayEl.attr('data-day'), 10); + calendar.emit( + 'local::dayClick calendarDayClick', + calendar, + $dayEl[0], + dateYear, + dateMonth, + dateDay + ); + if (!$dayEl.hasClass('calendar-day-selected') || calendar.params.multiple || calendar.params.rangePicker) { + var valueToAdd = new Date(dateYear, dateMonth, dateDay, 0, 0, 0); + if (calendar.hasTimePicker) { + if (calendar.value && calendar.value[0]) { + valueToAdd.setHours(calendar.value[0].getHours(), calendar.value[0].getMinutes()); + } else { + valueToAdd.setHours(new Date().getHours(), new Date().getMinutes()); + } + } + calendar.addValue(valueToAdd); + } + if (calendar.params.closeOnSelect) { + if ( + (calendar.params.rangePicker && calendar.value.length === 2) + || !calendar.params.rangePicker + ) { + calendar.close(); + } + } + } + + function onNextMonthClick() { + calendar.nextMonth(); + } + + function onPrevMonthClick() { + calendar.prevMonth(); + } + + function onNextYearClick() { + calendar.nextYear(); + } + + function onPrevYearClick() { + calendar.prevYear(); + } + + function onMonthSelectorClick() { + $el.append(calendar.renderMonthPicker()); + } + function onMonthSelectorItemClick() { + var $clickedEl = $(this); + if ($clickedEl.hasClass('calendar-month-picker-item-current')) { + $el.find('.calendar-month-picker').remove(); + return; + } + $el.find('.calendar-month-picker-item-current').add($clickedEl).toggleClass('calendar-month-picker-item-current'); + var index = $clickedEl.index(); + var localeMonthIndex = parseInt(calendar.$el.find('.calendar-month-current').attr('data-locale-month'), 10); + var monthIndex = calendar.currentMonth; + var diff = localeMonthIndex - monthIndex; + var diffIndex = index - diff; + calendar.setYearMonth(calendar.currentYear, diffIndex, 0); + setTimeout(function () { + $el.find('.calendar-month-picker').remove(); + }, 200); + } + + function onYearSelectorClick() { + $el.append(calendar.renderYearPicker()); + var $currentEl = $el.find('.calendar-year-picker-item-current'); + var $yearPickerEl = $el.find('.calendar-year-picker'); + if (!$currentEl || !$currentEl.length) { return; } + $yearPickerEl.scrollTop( + $currentEl[0].offsetTop + - $yearPickerEl[0].offsetHeight / 2 + + $currentEl[0].offsetHeight / 2 + ); + } + + function onYearSelectorItemClick() { + var $clickedEl = $(this); + if ($clickedEl.hasClass('calendar-year-picker-item-current')) { + $el.find('.calendar-year-picker').remove(); + return; + } + $el.find('.calendar-year-picker-item-current').add($clickedEl).toggleClass('calendar-year-picker-item-current'); + var year = parseInt($clickedEl.attr('data-year'), 10); + calendar.setYearMonth(year, undefined, 0); + setTimeout(function () { + $el.find('.calendar-year-picker').remove(); + }, 200); + } + + function onTimeSelectorClick() { + calendar.openTimePicker(); + } + function onTimePickerCloseClick() { + calendar.closeTimePicker(); + } + + var passiveListener = app.touchEvents.start === 'touchstart' && app.support.passiveListener ? { passive: true, capture: false } : false; + // Selectors clicks + $el.find('.calendar-prev-month-button').on('click', onPrevMonthClick); + $el.find('.calendar-next-month-button').on('click', onNextMonthClick); + $el.find('.calendar-prev-year-button').on('click', onPrevYearClick); + $el.find('.calendar-next-year-button').on('click', onNextYearClick); + if (calendar.params.monthPicker) { + $el.find('.current-month-value').on('click', onMonthSelectorClick); + $el.on('click', '.calendar-month-picker-item', onMonthSelectorItemClick); + } + if (calendar.params.yearPicker) { + $el.find('.current-year-value').on('click', onYearSelectorClick); + $el.on('click', '.calendar-year-picker-item', onYearSelectorItemClick); + } + if (calendar.hasTimePicker) { + $el.find('.calendar-time-selector a').on('click', onTimeSelectorClick); + $el.on('click', '.calendar-time-picker-close', onTimePickerCloseClick); + } + // Day clicks + $wrapperEl.on('click', handleDayClick); + // Touch events + if (calendar.params.touchMove) { + $wrapperEl.on(app.touchEvents.start, handleTouchStart, passiveListener); + app.on('touchmove:active', handleTouchMove); + app.on('touchend:passive', handleTouchEnd); + } + + calendar.detachCalendarEvents = function detachCalendarEvents() { + $el.find('.calendar-prev-month-button').off('click', onPrevMonthClick); + $el.find('.calendar-next-month-button').off('click', onNextMonthClick); + $el.find('.calendar-prev-year-button').off('click', onPrevYearClick); + $el.find('.calendar-next-year-button').off('click', onNextYearClick); + if (calendar.params.monthPicker) { + $el.find('.current-month-value').off('click', onMonthSelectorClick); + $el.off('click', '.calendar-month-picker-item', onMonthSelectorItemClick); + } + if (calendar.params.yearPicker) { + $el.find('.current-year-value').off('click', onYearSelectorClick); + $el.off('click', '.calendar-year-picker-item', onYearSelectorItemClick); + } + if (calendar.hasTimePicker) { + $el.find('.calendar-time-selector a').off('click', onTimeSelectorClick); + $el.off('click', '.calendar-time-picker-close', onTimePickerCloseClick); + } + $wrapperEl.off('click', handleDayClick); + if (calendar.params.touchMove) { + $wrapperEl.off(app.touchEvents.start, handleTouchStart, passiveListener); + app.off('touchmove:active', handleTouchMove); + app.off('touchend:passive', handleTouchEnd); + } + }; + }; + + calendar.init(); + + return calendar; + } + + if ( Framework7Class ) Calendar.__proto__ = Framework7Class; + Calendar.prototype = Object.create( Framework7Class && Framework7Class.prototype ); + Calendar.prototype.constructor = Calendar; + + var prototypeAccessors = { view: { configurable: true } }; + + prototypeAccessors.view.get = function () { + var ref = this; + var $inputEl = ref.$inputEl; + var app = ref.app; + var params = ref.params; + var view; + if (params.view) { + view = params.view; + } else if ($inputEl) { + view = $inputEl.parents('.view').length && $inputEl.parents('.view')[0].f7View; + } + if (!view) { view = app.views.main; } + return view; + }; + + Calendar.prototype.getIntlNames = function getIntlNames () { + var calendar = this; + var locale = calendar.params.locale; + + var monthNamesIntl = []; + var monthNamesShortIntl = []; + var dayNamesIntl = []; + var dayNamesShortIntl = []; + var formatterMonthNames = new Intl.DateTimeFormat(locale, { month: 'long' }); + var formatterMonthNamesShort = new Intl.DateTimeFormat(locale, { month: 'short' }); + var formatterDayNames = new Intl.DateTimeFormat(locale, { weekday: 'long' }); + var formatterDayNamesShort = new Intl.DateTimeFormat(locale, { weekday: 'short' }); + var year; + var yearStarted; + var yearEnded; + for (var i = 0; i < 24; i += 1) { + var date = new Date().setMonth(i, 1); + var currentYear = calendar.yearFormatter.format(date); + + if (year && currentYear !== year) { + if (yearStarted) { yearEnded = true; } + yearStarted = true; + year = currentYear; + } + if (!year) { + year = currentYear; + } + if (yearStarted && year === currentYear && !yearEnded) { + monthNamesIntl.push(formatterMonthNames.format(date)); + monthNamesShortIntl.push(formatterMonthNamesShort.format(date)); + } + } + var weekDay = new Date().getDay(); + for (var i$1 = 0; i$1 < 7; i$1 += 1) { + var date$1 = new Date().getTime() + (i$1 - weekDay) * 24 * 60 * 60 * 1000; + dayNamesIntl.push(formatterDayNames.format(date$1)); + dayNamesShortIntl.push(formatterDayNamesShort.format(date$1)); + } + + return { + monthNamesIntl: monthNamesIntl, + monthNamesShortIntl: monthNamesShortIntl, + dayNamesIntl: dayNamesIntl, + dayNamesShortIntl: dayNamesShortIntl, + }; + }; + + Calendar.prototype.normalizeDate = function normalizeDate (date) { + var calendar = this; + var d = new Date(date); + if (calendar.hasTimePicker) { + return new Date(d.getFullYear(), d.getMonth(), d.getDate(), d.getHours(), d.getMinutes()); + } + return new Date(d.getFullYear(), d.getMonth(), d.getDate()); + }; + + Calendar.prototype.normalizeValues = function normalizeValues (values) { + var calendar = this; + var newValues = []; + if (values && Array.isArray(values)) { + newValues = values.map(function (val) { return calendar.normalizeDate(val); }); + } + return newValues; + }; + + Calendar.prototype.initInput = function initInput () { + var calendar = this; + if (!calendar.$inputEl) { return; } + if (calendar.params.inputReadOnly) { calendar.$inputEl.prop('readOnly', true); } + }; + + Calendar.prototype.isPopover = function isPopover () { + var calendar = this; + var app = calendar.app; + var modal = calendar.modal; + var params = calendar.params; + if (params.openIn === 'sheet') { return false; } + if (modal && modal.type !== 'popover') { return false; } + + if (!calendar.inline && calendar.inputEl) { + if (params.openIn === 'popover') { return true; } + if (app.device.ios) { + return !!app.device.ipad; + } + if (app.width >= 768) { + return true; + } + if (app.device.desktop && app.theme === 'aurora') { + return true; + } + } + return false; + }; + + Calendar.prototype.formatDate = function formatDate (d) { + var calendar = this; + var date = new Date(d); + var year = date.getFullYear(); + var month = date.getMonth(); + var month1 = month + 1; + var day = date.getDate(); + var weekDay = date.getDay(); + var monthNames = calendar.monthNames; + var monthNamesShort = calendar.monthNamesShort; + var dayNames = calendar.dayNames; + var dayNamesShort = calendar.dayNamesShort; + var ref = calendar.params; + var dateFormat = ref.dateFormat; + var locale = ref.locale; + + function twoDigits(number) { + return (number < 10) ? ("0" + number) : number; + } + if (typeof dateFormat === 'string') { + var tokens = { + yyyy: year, + yy: String(year).substring(2), + mm: twoDigits(month1), + m: month1, + MM: monthNames[month], + M: monthNamesShort[month], + dd: twoDigits(day), + d: day, + DD: dayNames[weekDay], + D: dayNamesShort[weekDay], + }; + if (calendar.params.timePicker) { + var hours = date.getHours(); + var minutes = date.getMinutes(); + var seconds = date.getSeconds(); + var hours12 = hours; + if (hours > 12) { hours12 = hours - 12; } + if (hours === 0) { hours12 = 12; } + var a = hours >= 12 && hours !== 0 ? 'pm' : 'am'; + + Object.assign(tokens, { + HH: twoDigits(hours), + H: hours, + hh: twoDigits(hours12), + h: hours12, + ss: twoDigits(seconds), + s: seconds, + ':mm': twoDigits(minutes), + ':m': minutes, + a: a, + A: a.toUpperCase(), + }); + } + var regexp = new RegExp( + Object.keys(tokens).map(function (t) { return ("(" + t + ")"); }).join('|'), + 'g' + ); + return dateFormat.replace(regexp, function (token) { + if (token in tokens) { return tokens[token]; } + return token; + }); + } + if (typeof dateFormat === 'function') { + return dateFormat(date); + } + // Intl Object + var formatter = new Intl.DateTimeFormat(locale, dateFormat); + return formatter.format(date); + }; + + Calendar.prototype.formatValue = function formatValue () { + var calendar = this; + var value = calendar.value; + if (calendar.params.formatValue) { + return calendar.params.formatValue.call(calendar, value); + } + return value + .map(function (v) { return calendar.formatDate(v); }) + .join(calendar.params.rangePicker ? ' - ' : ', '); + }; + + Calendar.prototype.addValue = function addValue (newValue) { + var calendar = this; + var ref = calendar.params; + var multiple = ref.multiple; + var rangePicker = ref.rangePicker; + var rangePickerMinDays = ref.rangePickerMinDays; + var rangePickerMaxDays = ref.rangePickerMaxDays; + if (multiple) { + if (!calendar.value) { calendar.value = []; } + var inValuesIndex; + for (var i = 0; i < calendar.value.length; i += 1) { + if (new Date(newValue).getTime() === new Date(calendar.value[i]).getTime()) { + inValuesIndex = i; + } + } + if (typeof inValuesIndex === 'undefined') { + calendar.value.push(newValue); + } else { + calendar.value.splice(inValuesIndex, 1); + } + calendar.updateValue(); + } else if (rangePicker) { + if (!calendar.value) { calendar.value = []; } + if (calendar.value.length === 2 || calendar.value.length === 0) { + calendar.value = []; + } + + if ((calendar.value.length === 0 + || ((Math.abs(calendar.value[0].getTime() - newValue.getTime()) >= (rangePickerMinDays - 1) * 60 * 60 * 24 * 1000) && (rangePickerMaxDays === 0 || Math.abs(calendar.value[0].getTime() - newValue.getTime()) <= (rangePickerMaxDays - 1) * 60 * 60 * 24 * 1000)))) { calendar.value.push(newValue); } + else { calendar.value = []; } + + calendar.value.sort(function (a, b) { return a - b; }); + calendar.updateValue(); + } else { + calendar.value = [newValue]; + calendar.updateValue(); + } + }; + + Calendar.prototype.setValue = function setValue (values) { + var calendar = this; + var currentValue = calendar.value; + if (Array.isArray(currentValue) && Array.isArray(values) && currentValue.length === values.length) { + var equal = true; + currentValue.forEach(function (v, index) { + if (v !== values[index]) { equal = false; } + }); + if (equal) { return; } + } + calendar.value = values; + calendar.updateValue(); + }; + + Calendar.prototype.getValue = function getValue () { + var calendar = this; + return calendar.value; + }; + + Calendar.prototype.updateValue = function updateValue (onlyHeader) { + var calendar = this; + var $el = calendar.$el; + var $wrapperEl = calendar.$wrapperEl; + var $inputEl = calendar.$inputEl; + var value = calendar.value; + var params = calendar.params; + var i; + if ($el && $el.length > 0) { + $wrapperEl.find('.calendar-day-selected').removeClass('calendar-day-selected'); + var valueDate; + if (params.rangePicker && value.length === 2) { + for (i = new Date(value[0]).getTime(); i <= new Date(value[1]).getTime(); i += 24 * 60 * 60 * 1000) { + valueDate = new Date(i); + $wrapperEl.find((".calendar-day[data-date=\"" + (valueDate.getFullYear()) + "-" + (valueDate.getMonth()) + "-" + (valueDate.getDate()) + "\"]")).addClass('calendar-day-selected'); + } + valueDate = new Date(new Date(value[1]).getTime()); + $wrapperEl.find((".calendar-day[data-date=\"" + (valueDate.getFullYear()) + "-" + (valueDate.getMonth()) + "-" + (valueDate.getDate()) + "\"]")).addClass('calendar-day-selected'); + } else { + for (i = 0; i < calendar.value.length; i += 1) { + valueDate = new Date(value[i]); + $wrapperEl.find((".calendar-day[data-date=\"" + (valueDate.getFullYear()) + "-" + (valueDate.getMonth()) + "-" + (valueDate.getDate()) + "\"]")).addClass('calendar-day-selected'); + } + } + } + if (!onlyHeader) { + calendar.emit('local::change calendarChange', calendar, value); + } + + if ($el && $el.length > 0 && calendar.hasTimePicker) { + $el.find('.calendar-time-selector a').text(value && value.length ? calendar.timeSelectorFormatter.format(value[0]) : calendar.params.timePickerPlaceholder); + } + + if (($inputEl && $inputEl.length) || params.header) { + var inputValue = calendar.formatValue(value); + if (params.header && $el && $el.length) { + $el.find('.calendar-selected-date').text(inputValue); + } + if ($inputEl && $inputEl.length && !onlyHeader) { + $inputEl.val(inputValue); + $inputEl.trigger('change'); + } + } + }; + + Calendar.prototype.updateCurrentMonthYear = function updateCurrentMonthYear (dir) { + var calendar = this; + var $months = calendar.$months; + var $el = calendar.$el; + var monthNames = calendar.monthNames; + var currentLocaleMonth; + var currentLocaleYear; + if (typeof dir === 'undefined') { + calendar.currentMonth = parseInt($months.eq(1).attr('data-month'), 10); + calendar.currentYear = parseInt($months.eq(1).attr('data-year'), 10); + currentLocaleMonth = $months.eq(1).attr('data-locale-month'); + currentLocaleYear = $months.eq(1).attr('data-locale-year'); + } else { + calendar.currentMonth = parseInt($months.eq(dir === 'next' ? ($months.length - 1) : 0).attr('data-month'), 10); + calendar.currentYear = parseInt($months.eq(dir === 'next' ? ($months.length - 1) : 0).attr('data-year'), 10); + currentLocaleMonth = $months.eq(dir === 'next' ? ($months.length - 1) : 0).attr('data-locale-month'); + currentLocaleYear = $months.eq(dir === 'next' ? ($months.length - 1) : 0).attr('data-locale-year'); + } + $el.find('.current-month-value').text(monthNames[currentLocaleMonth]); + $el.find('.current-year-value').text(currentLocaleYear); + }; + + Calendar.prototype.update = function update () { + var calendar = this; + var currentYear = calendar.currentYear; + var currentMonth = calendar.currentMonth; + var $wrapperEl = calendar.$wrapperEl; + var currentDate = new Date(currentYear, currentMonth); + var prevMonthHtml = calendar.renderMonth(currentDate, 'prev'); + var currentMonthHtml = calendar.renderMonth(currentDate); + var nextMonthHtml = calendar.renderMonth(currentDate, 'next'); + + $wrapperEl + .transition(0) + .html(("" + prevMonthHtml + currentMonthHtml + nextMonthHtml)) + .transform('translate3d(0,0,0)'); + calendar.$months = $wrapperEl.find('.calendar-month'); + calendar.monthsTranslate = 0; + calendar.setMonthsTranslate(); + calendar.$months.each(function (index, monthEl) { + calendar.emit( + 'local::monthAdd calendarMonthAdd', + monthEl + ); + }); + }; + + Calendar.prototype.onMonthChangeStart = function onMonthChangeStart (dir) { + var calendar = this; + var $months = calendar.$months; + var currentYear = calendar.currentYear; + var currentMonth = calendar.currentMonth; + calendar.updateCurrentMonthYear(dir); + $months.removeClass('calendar-month-current calendar-month-prev calendar-month-next'); + var currentIndex = dir === 'next' ? $months.length - 1 : 0; + + $months.eq(currentIndex).addClass('calendar-month-current'); + $months.eq(dir === 'next' ? currentIndex - 1 : currentIndex + 1).addClass(dir === 'next' ? 'calendar-month-prev' : 'calendar-month-next'); + + calendar.emit( + 'local::monthYearChangeStart calendarMonthYearChangeStart', + calendar, + currentYear, + currentMonth + ); + }; + + Calendar.prototype.onMonthChangeEnd = function onMonthChangeEnd (dir, rebuildBoth) { + var calendar = this; + var currentYear = calendar.currentYear; + var currentMonth = calendar.currentMonth; + var $wrapperEl = calendar.$wrapperEl; + var monthsTranslate = calendar.monthsTranslate; + calendar.animating = false; + var nextMonthHtml; + var prevMonthHtml; + var currentMonthHtml; + $wrapperEl + .find('.calendar-month:not(.calendar-month-prev):not(.calendar-month-current):not(.calendar-month-next)') + .remove(); + + if (typeof dir === 'undefined') { + dir = 'next'; // eslint-disable-line + rebuildBoth = true; // eslint-disable-line + } + if (!rebuildBoth) { + currentMonthHtml = calendar.renderMonth(new Date(currentYear, currentMonth), dir); + } else { + $wrapperEl.find('.calendar-month-next, .calendar-month-prev').remove(); + prevMonthHtml = calendar.renderMonth(new Date(currentYear, currentMonth), 'prev'); + nextMonthHtml = calendar.renderMonth(new Date(currentYear, currentMonth), 'next'); + } + if (dir === 'next' || rebuildBoth) { + $wrapperEl.append(currentMonthHtml || nextMonthHtml); + } + if (dir === 'prev' || rebuildBoth) { + $wrapperEl.prepend(currentMonthHtml || prevMonthHtml); + } + var $months = $wrapperEl.find('.calendar-month'); + calendar.$months = $months; + calendar.setMonthsTranslate(monthsTranslate); + calendar.emit( + 'local::monthAdd calendarMonthAdd', + calendar, + dir === 'next' ? $months.eq($months.length - 1)[0] : $months.eq(0)[0] + ); + calendar.emit( + 'local::monthYearChangeEnd calendarMonthYearChangeEnd', + calendar, + currentYear, + currentMonth + ); + }; + + Calendar.prototype.setMonthsTranslate = function setMonthsTranslate (translate) { + var calendar = this; + var $months = calendar.$months; + var isH = calendar.isHorizontal; + var inverter = calendar.inverter; + // eslint-disable-next-line + translate = translate || calendar.monthsTranslate || 0; + if (typeof calendar.monthsTranslate === 'undefined') { + calendar.monthsTranslate = translate; + } + $months.removeClass('calendar-month-current calendar-month-prev calendar-month-next'); + var prevMonthTranslate = -(translate + 1) * 100 * inverter; + var currentMonthTranslate = -translate * 100 * inverter; + var nextMonthTranslate = -(translate - 1) * 100 * inverter; + $months.eq(0) + .transform(("translate3d(" + (isH ? prevMonthTranslate : 0) + "%, " + (isH ? 0 : prevMonthTranslate) + "%, 0)")) + .addClass('calendar-month-prev'); + $months.eq(1) + .transform(("translate3d(" + (isH ? currentMonthTranslate : 0) + "%, " + (isH ? 0 : currentMonthTranslate) + "%, 0)")) + .addClass('calendar-month-current'); + $months.eq(2) + .transform(("translate3d(" + (isH ? nextMonthTranslate : 0) + "%, " + (isH ? 0 : nextMonthTranslate) + "%, 0)")) + .addClass('calendar-month-next'); + }; + + Calendar.prototype.nextMonth = function nextMonth (transition) { + var calendar = this; + var params = calendar.params; + var $wrapperEl = calendar.$wrapperEl; + var inverter = calendar.inverter; + var isH = calendar.isHorizontal; + if (typeof transition === 'undefined' || typeof transition === 'object') { + transition = ''; // eslint-disable-line + if (!params.animate) { transition = 0; } // eslint-disable-line + } + var nextMonth = parseInt(calendar.$months.eq(calendar.$months.length - 1).attr('data-month'), 10); + var nextYear = parseInt(calendar.$months.eq(calendar.$months.length - 1).attr('data-year'), 10); + var nextDate = new Date(nextYear, nextMonth); + var nextDateTime = nextDate.getTime(); + var transitionEndCallback = !calendar.animating; + if (params.maxDate) { + if (nextDateTime > new Date(params.maxDate).getTime()) { + calendar.resetMonth(); + return; + } + } + calendar.monthsTranslate -= 1; + if (nextMonth === calendar.currentMonth) { + var nextMonthTranslate = -(calendar.monthsTranslate) * 100 * inverter; + var nextMonthHtml = $(calendar.renderMonth(nextDateTime, 'next')) + .transform(("translate3d(" + (isH ? nextMonthTranslate : 0) + "%, " + (isH ? 0 : nextMonthTranslate) + "%, 0)")) + .addClass('calendar-month-next'); + $wrapperEl.append(nextMonthHtml[0]); + calendar.$months = $wrapperEl.find('.calendar-month'); + calendar.emit( + 'local::monthAdd calendarMonthAdd', + calendar.$months.eq(calendar.$months.length - 1)[0] + ); + } + calendar.animating = true; + calendar.onMonthChangeStart('next'); + var translate = (calendar.monthsTranslate * 100) * inverter; + + $wrapperEl.transition(transition).transform(("translate3d(" + (isH ? translate : 0) + "%, " + (isH ? 0 : translate) + "%, 0)")); + if (transitionEndCallback) { + $wrapperEl.transitionEnd(function () { + calendar.onMonthChangeEnd('next'); + }); + } + if (!params.animate) { + calendar.onMonthChangeEnd('next'); + } + }; + + Calendar.prototype.prevMonth = function prevMonth (transition) { + var calendar = this; + var params = calendar.params; + var $wrapperEl = calendar.$wrapperEl; + var inverter = calendar.inverter; + var isH = calendar.isHorizontal; + if (typeof transition === 'undefined' || typeof transition === 'object') { + transition = ''; // eslint-disable-line + if (!params.animate) { transition = 0; } // eslint-disable-line + } + var prevMonth = parseInt(calendar.$months.eq(0).attr('data-month'), 10); + var prevYear = parseInt(calendar.$months.eq(0).attr('data-year'), 10); + var prevDate = new Date(prevYear, prevMonth + 1, -1); + var prevDateTime = prevDate.getTime(); + var transitionEndCallback = !calendar.animating; + if (params.minDate) { + var minDate = new Date(params.minDate); + minDate = new Date(minDate.getFullYear(), minDate.getMonth(), 1); + if (prevDateTime < minDate.getTime()) { + calendar.resetMonth(); + return; + } + } + calendar.monthsTranslate += 1; + if (prevMonth === calendar.currentMonth) { + var prevMonthTranslate = -(calendar.monthsTranslate) * 100 * inverter; + var prevMonthHtml = $(calendar.renderMonth(prevDateTime, 'prev')) + .transform(("translate3d(" + (isH ? prevMonthTranslate : 0) + "%, " + (isH ? 0 : prevMonthTranslate) + "%, 0)")) + .addClass('calendar-month-prev'); + $wrapperEl.prepend(prevMonthHtml[0]); + calendar.$months = $wrapperEl.find('.calendar-month'); + calendar.emit( + 'local::monthAdd calendarMonthAdd', + calendar.$months.eq(0)[0] + ); + } + calendar.animating = true; + calendar.onMonthChangeStart('prev'); + var translate = (calendar.monthsTranslate * 100) * inverter; + $wrapperEl + .transition(transition) + .transform(("translate3d(" + (isH ? translate : 0) + "%, " + (isH ? 0 : translate) + "%, 0)")); + if (transitionEndCallback) { + $wrapperEl.transitionEnd(function () { + calendar.onMonthChangeEnd('prev'); + }); + } + if (!params.animate) { + calendar.onMonthChangeEnd('prev'); + } + }; + + Calendar.prototype.resetMonth = function resetMonth (transition) { + if ( transition === void 0 ) transition = ''; + + var calendar = this; + var $wrapperEl = calendar.$wrapperEl; + var inverter = calendar.inverter; + var isH = calendar.isHorizontal; + var monthsTranslate = calendar.monthsTranslate; + var translate = (monthsTranslate * 100) * inverter; + $wrapperEl + .transition(transition) + .transform(("translate3d(" + (isH ? translate : 0) + "%, " + (isH ? 0 : translate) + "%, 0)")); + }; + // eslint-disable-next-line + Calendar.prototype.setYearMonth = function setYearMonth (year, month, transition) { + var calendar = this; + var params = calendar.params; + var isH = calendar.isHorizontal; + var $wrapperEl = calendar.$wrapperEl; + var inverter = calendar.inverter; + // eslint-disable-next-line + if (typeof year === 'undefined') { year = calendar.currentYear; } + // eslint-disable-next-line + if (typeof month === 'undefined') { month = calendar.currentMonth; } + if (typeof transition === 'undefined' || typeof transition === 'object') { + // eslint-disable-next-line + transition = ''; + // eslint-disable-next-line + if (!params.animate) { transition = 0; } + } + var targetDate; + if (year < calendar.currentYear) { + targetDate = new Date(year, month + 1, -1).getTime(); + } else { + targetDate = new Date(year, month).getTime(); + } + if (params.maxDate && targetDate > new Date(params.maxDate).getTime()) { + return false; + } + if (params.minDate) { + var minDate = new Date(params.minDate); + minDate = new Date(minDate.getFullYear(), minDate.getMonth(), 1); + if (targetDate < minDate.getTime()) { + return false; + } + } + var currentDate = new Date(calendar.currentYear, calendar.currentMonth).getTime(); + var dir = targetDate > currentDate ? 'next' : 'prev'; + var newMonthHTML = calendar.renderMonth(new Date(year, month)); + calendar.monthsTranslate = calendar.monthsTranslate || 0; + var prevTranslate = calendar.monthsTranslate; + var monthTranslate; + var transitionEndCallback = !calendar.animating && transition !== 0; + if (targetDate > currentDate) { + // To next + calendar.monthsTranslate -= 1; + if (!calendar.animating) { calendar.$months.eq(calendar.$months.length - 1).remove(); } + $wrapperEl.append(newMonthHTML); + calendar.$months = $wrapperEl.find('.calendar-month'); + monthTranslate = -(prevTranslate - 1) * 100 * inverter; + calendar.$months + .eq(calendar.$months.length - 1) + .transform(("translate3d(" + (isH ? monthTranslate : 0) + "%, " + (isH ? 0 : monthTranslate) + "%, 0)")) + .addClass('calendar-month-next'); + } else { + // To prev + calendar.monthsTranslate += 1; + if (!calendar.animating) { calendar.$months.eq(0).remove(); } + $wrapperEl.prepend(newMonthHTML); + calendar.$months = $wrapperEl.find('.calendar-month'); + monthTranslate = -(prevTranslate + 1) * 100 * inverter; + calendar.$months + .eq(0) + .transform(("translate3d(" + (isH ? monthTranslate : 0) + "%, " + (isH ? 0 : monthTranslate) + "%, 0)")) + .addClass('calendar-month-prev'); + } + calendar.emit( + 'local::monthAdd calendarMonthAdd', + dir === 'next' + ? calendar.$months.eq(calendar.$months.length - 1)[0] + : calendar.$months.eq(0)[0] + ); + + calendar.animating = true; + calendar.onMonthChangeStart(dir); + var wrapperTranslate = (calendar.monthsTranslate * 100) * inverter; + $wrapperEl + .transition(transition) + .transform(("translate3d(" + (isH ? wrapperTranslate : 0) + "%, " + (isH ? 0 : wrapperTranslate) + "%, 0)")); + if (transitionEndCallback) { + $wrapperEl.transitionEnd(function () { + calendar.onMonthChangeEnd(dir, true); + }); + } + if (!params.animate || transition === 0) { + calendar.onMonthChangeEnd(dir, true); + } + }; + + Calendar.prototype.nextYear = function nextYear () { + var calendar = this; + calendar.setYearMonth(calendar.currentYear + 1); + }; + + Calendar.prototype.prevYear = function prevYear () { + var calendar = this; + calendar.setYearMonth(calendar.currentYear - 1); + }; + // eslint-disable-next-line + Calendar.prototype.dateInRange = function dateInRange (dayDate, range) { + var match = false; + var i; + if (!range) { return false; } + if (Array.isArray(range)) { + for (i = 0; i < range.length; i += 1) { + if (range[i].from || range[i].to) { + if (range[i].from && range[i].to) { + if ((dayDate <= new Date(range[i].to).getTime()) && (dayDate >= new Date(range[i].from).getTime())) { + match = true; + } + } else if (range[i].from) { + if (dayDate >= new Date(range[i].from).getTime()) { + match = true; + } + } else if (range[i].to) { + if (dayDate <= new Date(range[i].to).getTime()) { + match = true; + } + } + } else if (range[i].date) { + if (dayDate === new Date(range[i].date).getTime()) { + match = true; + } + } else if (dayDate === new Date(range[i]).getTime()) { + match = true; + } + } + } else if (range.from || range.to) { + if (range.from && range.to) { + if ((dayDate <= new Date(range.to).getTime()) && (dayDate >= new Date(range.from).getTime())) { + match = true; + } + } else if (range.from) { + if (dayDate >= new Date(range.from).getTime()) { + match = true; + } + } else if (range.to) { + if (dayDate <= new Date(range.to).getTime()) { + match = true; + } + } + } else if (range.date) { + match = dayDate === new Date(range.date).getTime(); + } else if (typeof range === 'function') { + match = range(new Date(dayDate)); + } + return match; + }; + // eslint-disable-next-line + Calendar.prototype.daysInMonth = function daysInMonth (date) { + var d = new Date(date); + return new Date(d.getFullYear(), d.getMonth() + 1, 0).getDate(); + }; + + Calendar.prototype.renderMonths = function renderMonths (date) { + var calendar = this; + if (calendar.params.renderMonths) { + return calendar.params.renderMonths.call(calendar, date); + } + return ("\n
          \n " + (calendar.renderMonth(date, 'prev')) + "\n " + (calendar.renderMonth(date)) + "\n " + (calendar.renderMonth(date, 'next')) + "\n
          \n ").trim(); + }; + + Calendar.prototype.renderMonth = function renderMonth (d, offset) { + var calendar = this; + var params = calendar.params; + var value = calendar.value; + if (params.renderMonth) { + return params.renderMonth.call(calendar, d, offset); + } + var date = new Date(d); + var year = date.getFullYear(); + var month = date.getMonth(); + var localeMonth = calendar.monthNames.indexOf(calendar.monthFormatter.format(date)); + if (localeMonth < 0) { localeMonth = month; } + var localeYear = calendar.yearFormatter.format(date); + + if (offset === 'next') { + if (month === 11) { date = new Date(year + 1, 0); } + else { date = new Date(year, month + 1, 1); } + } + if (offset === 'prev') { + if (month === 0) { date = new Date(year - 1, 11); } + else { date = new Date(year, month - 1, 1); } + } + if (offset === 'next' || offset === 'prev') { + month = date.getMonth(); + year = date.getFullYear(); + localeMonth = calendar.monthNames.indexOf(calendar.monthFormatter.format(date)); + if (localeMonth < 0) { localeMonth = month; } + localeYear = calendar.yearFormatter.format(date); + } + + var currentValues = []; + var today = new Date().setHours(0, 0, 0, 0); + var minDate = params.minDate ? new Date(params.minDate).getTime() : null; + var maxDate = params.maxDate ? new Date(params.maxDate).getTime() : null; + var rows = 6; + var cols = 7; + var daysInPrevMonth = calendar.daysInMonth(new Date(date.getFullYear(), date.getMonth()).getTime() - (10 * 24 * 60 * 60 * 1000)); + var daysInMonth = calendar.daysInMonth(date); + var minDayNumber = params.firstDay === 6 ? 0 : 1; + + var monthHtml = ''; + var dayIndex = 0 + (params.firstDay - 1); + var disabled; + var hasEvents; + var firstDayOfMonthIndex = new Date(date.getFullYear(), date.getMonth()).getDay(); + if (firstDayOfMonthIndex === 0) { firstDayOfMonthIndex = 7; } + + if (value && value.length) { + for (var i = 0; i < value.length; i += 1) { + currentValues.push(new Date(value[i]).setHours(0, 0, 0, 0)); + } + } + + for (var row = 1; row <= rows; row += 1) { + var rowHtml = ''; + var loop = function ( col ) { + dayIndex += 1; + var dayDate = (void 0); + var dayNumber = dayIndex - firstDayOfMonthIndex; + var addClass = ''; + if (row === 1 && col === 1 && dayNumber > minDayNumber && params.firstDay !== 1) { + dayIndex -= 7; + dayNumber = dayIndex - firstDayOfMonthIndex; + } + + var weekDayIndex = ((col - 1) + params.firstDay > 6) + ? ((col - 1 - 7) + params.firstDay) + : ((col - 1) + params.firstDay); + + if (dayNumber < 0) { + dayNumber = daysInPrevMonth + dayNumber + 1; + addClass += ' calendar-day-prev'; + dayDate = new Date(month - 1 < 0 ? year - 1 : year, month - 1 < 0 ? 11 : month - 1, dayNumber).getTime(); + } else { + dayNumber += 1; + if (dayNumber > daysInMonth) { + dayNumber -= daysInMonth; + addClass += ' calendar-day-next'; + dayDate = new Date(month + 1 > 11 ? year + 1 : year, month + 1 > 11 ? 0 : month + 1, dayNumber).getTime(); + } else { + dayDate = new Date(year, month, dayNumber).getTime(); + } + } + // Today + if (dayDate === today) { addClass += ' calendar-day-today'; } + + // Selected + if (params.rangePicker && currentValues.length === 2) { + if (dayDate >= currentValues[0] && dayDate <= currentValues[1]) { addClass += ' calendar-day-selected'; } + } else if (currentValues.indexOf(dayDate) >= 0) { addClass += ' calendar-day-selected'; } + // Weekend + if (params.weekendDays.indexOf(weekDayIndex) >= 0) { + addClass += ' calendar-day-weekend'; + } + // Events + var eventsHtml = ''; + hasEvents = false; + if (params.events) { + if (calendar.dateInRange(dayDate, params.events)) { + hasEvents = true; + } + } + if (hasEvents) { + addClass += ' calendar-day-has-events'; + eventsHtml = "\n \n \n \n "; + if (Array.isArray(params.events)) { + var eventDots = []; + params.events.forEach(function (ev) { + var color = ev.color || ''; + if (eventDots.indexOf(color) < 0 && calendar.dateInRange(dayDate, ev)) { + eventDots.push(color); + } + }); + eventsHtml = "\n \n " + (eventDots.map(function (color) { return ("\n \n ").trim(); }).join('')) + "\n \n "; + } + } + // Custom Ranges + if (params.rangesClasses) { + for (var k = 0; k < params.rangesClasses.length; k += 1) { + if (calendar.dateInRange(dayDate, params.rangesClasses[k].range)) { + addClass += " " + (params.rangesClasses[k].cssClass); + } + } + } + // Disabled + disabled = false; + if ((minDate && dayDate < minDate) || (maxDate && dayDate > maxDate)) { + disabled = true; + } + if (params.disabled) { + if (calendar.dateInRange(dayDate, params.disabled)) { + disabled = true; + } + } + if (disabled) { + addClass += ' calendar-day-disabled'; + } + + dayDate = new Date(dayDate); + var dayYear = dayDate.getFullYear(); + var dayMonth = dayDate.getMonth(); + var dayNumberDisplay = calendar.dayFormatter.format(dayDate); + rowHtml += ("\n
          \n " + dayNumberDisplay + eventsHtml + "\n
          ").trim(); + }; + + for (var col = 1; col <= cols; col += 1) loop( col ); + monthHtml += "
          " + rowHtml + "
          "; + } + monthHtml = "
          " + monthHtml + "
          "; + return monthHtml; + }; + + Calendar.prototype.renderWeekHeader = function renderWeekHeader () { + var calendar = this; + if (calendar.params.renderWeekHeader) { + return calendar.params.renderWeekHeader.call(calendar); + } + var params = calendar.params; + var weekDaysHtml = ''; + for (var i = 0; i < 7; i += 1) { + var dayIndex = (i + params.firstDay > 6) + ? ((i - 7) + params.firstDay) + : (i + params.firstDay); + var dayName = calendar.dayNamesShort[dayIndex]; + weekDaysHtml += "
          " + dayName + "
          "; + } + return ("\n
          \n " + weekDaysHtml + "\n
          \n ").trim(); + }; + + Calendar.prototype.renderMonthSelector = function renderMonthSelector () { + var calendar = this; + if (calendar.params.renderMonthSelector) { + return calendar.params.renderMonthSelector.call(calendar); + } + + return ("\n
          \n \n \n \n " + (calendar.params.monthPicker ? "\n \n " : "\n \n ") + "\n \n \n \n
          \n ").trim(); + }; + + Calendar.prototype.renderMonthPicker = function renderMonthPicker () { + var calendar = this; + var localeMonth = parseInt(calendar.$el.find('.calendar-month-current').attr('data-locale-month'), 10); + return ("\n
          \n " + (calendar.monthNames.map(function (m, index) { return ("\n
          \n " + m + "\n
          \n "); }).join('')) + "\n
          \n "); + }; + + Calendar.prototype.renderYearSelector = function renderYearSelector () { + var calendar = this; + if (calendar.params.renderYearSelector) { + return calendar.params.renderYearSelector.call(calendar); + } + return ("\n
          \n \n \n \n " + (calendar.params.yearPicker ? "\n \n " : "\n \n ") + "\n \n \n \n
          \n ").trim(); + }; + + Calendar.prototype.renderYearPicker = function renderYearPicker () { + var calendar = this; + var currentYear = calendar.currentYear; + var yearMin = calendar.params.yearPickerMin || new Date().getFullYear() - 100; + if (calendar.params.minDate) { + yearMin = Math.max(yearMin, new Date(calendar.params.minDate).getFullYear()); + } + var yearMax = calendar.params.yearPickerMax || new Date().getFullYear() + 100; + if (calendar.params.maxDate) { + yearMax = Math.min(yearMax, new Date(calendar.params.maxDate).getFullYear()); + } + var years = []; + for (var i = yearMin; i <= yearMax; i += 1) { + years.push(i); + } + return ("\n
          \n " + (years.map(function (year) { return ("\n
          \n " + (calendar.yearFormatter.format(new Date().setFullYear(year))) + "\n
          \n "); }).join('')) + "\n
          \n "); + }; + + // eslint-disable-next-line + Calendar.prototype.renderTimeSelector = function renderTimeSelector () { + var calendar = this; + var value = calendar.value && calendar.value[0]; + var timeString; + if (value) { timeString = calendar.timeSelectorFormatter.format(value); } + return ("\n \n "); + }; + + Calendar.prototype.renderHeader = function renderHeader () { + var calendar = this; + if (calendar.params.renderHeader) { + return calendar.params.renderHeader.call(calendar); + } + return ("\n
          \n
          " + (calendar.params.headerPlaceholder) + "
          \n
          \n ").trim(); + }; + + Calendar.prototype.renderFooter = function renderFooter () { + var calendar = this; + var app = calendar.app; + if (calendar.params.renderFooter) { + return calendar.params.renderFooter.call(calendar); + } + return ("\n \n ").trim(); + }; + + Calendar.prototype.renderToolbar = function renderToolbar () { + var calendar = this; + if (calendar.params.renderToolbar) { + return calendar.params.renderToolbar.call(calendar, calendar); + } + return ("\n
          \n
          \n " + (calendar.params.monthSelector ? calendar.renderMonthSelector() : '') + "\n " + (calendar.params.yearSelector ? calendar.renderYearSelector() : '') + "\n
          \n
          \n ").trim(); + }; + // eslint-disable-next-line + Calendar.prototype.renderInline = function renderInline () { + var calendar = this; + var ref = calendar.params; + var cssClass = ref.cssClass; + var toolbar = ref.toolbar; + var header = ref.header; + var footer = ref.footer; + var rangePicker = ref.rangePicker; + var weekHeader = ref.weekHeader; + var value = calendar.value; + var hasTimePicker = calendar.hasTimePicker; + var date = value && value.length ? value[0] : new Date().setHours(0, 0, 0); + var inlineHtml = ("\n
          \n " + (header ? calendar.renderHeader() : '') + "\n " + (toolbar ? calendar.renderToolbar() : '') + "\n " + (weekHeader ? calendar.renderWeekHeader() : '') + "\n
          \n " + (calendar.renderMonths(date)) + "\n
          \n " + (hasTimePicker ? calendar.renderTimeSelector() : '') + "\n " + (footer ? calendar.renderFooter() : '') + "\n
          \n ").trim(); + + return inlineHtml; + }; + + Calendar.prototype.renderCustomModal = function renderCustomModal () { + var calendar = this; + var ref = calendar.params; + var cssClass = ref.cssClass; + var toolbar = ref.toolbar; + var header = ref.header; + var footer = ref.footer; + var rangePicker = ref.rangePicker; + var weekHeader = ref.weekHeader; + var value = calendar.value; + var hasTimePicker = calendar.hasTimePicker; + var date = value && value.length ? value[0] : new Date().setHours(0, 0, 0); + var sheetHtml = ("\n
          \n " + (header ? calendar.renderHeader() : '') + "\n " + (toolbar ? calendar.renderToolbar() : '') + "\n " + (weekHeader ? calendar.renderWeekHeader() : '') + "\n
          \n " + (calendar.renderMonths(date)) + "\n
          \n " + (hasTimePicker ? calendar.renderTimeSelector() : '') + "\n " + (footer ? calendar.renderFooter() : '') + "\n
          \n ").trim(); + + return sheetHtml; + }; + + Calendar.prototype.renderSheet = function renderSheet () { + var calendar = this; + var ref = calendar.params; + var cssClass = ref.cssClass; + var toolbar = ref.toolbar; + var header = ref.header; + var footer = ref.footer; + var rangePicker = ref.rangePicker; + var weekHeader = ref.weekHeader; + var value = calendar.value; + var hasTimePicker = calendar.hasTimePicker; + var date = value && value.length ? value[0] : new Date().setHours(0, 0, 0); + var sheetHtml = ("\n
          \n " + (header ? calendar.renderHeader() : '') + "\n " + (toolbar ? calendar.renderToolbar() : '') + "\n " + (weekHeader ? calendar.renderWeekHeader() : '') + "\n
          \n " + (calendar.renderMonths(date)) + "\n
          \n " + (hasTimePicker ? calendar.renderTimeSelector() : '') + "\n " + (footer ? calendar.renderFooter() : '') + "\n
          \n ").trim(); + + return sheetHtml; + }; + + Calendar.prototype.renderPopover = function renderPopover () { + var calendar = this; + var ref = calendar.params; + var cssClass = ref.cssClass; + var toolbar = ref.toolbar; + var header = ref.header; + var footer = ref.footer; + var rangePicker = ref.rangePicker; + var weekHeader = ref.weekHeader; + var value = calendar.value; + var hasTimePicker = calendar.hasTimePicker; + var date = value && value.length ? value[0] : new Date().setHours(0, 0, 0); + var popoverHtml = ("\n
          \n
          \n
          \n " + (header ? calendar.renderHeader() : '') + "\n " + (toolbar ? calendar.renderToolbar() : '') + "\n " + (weekHeader ? calendar.renderWeekHeader() : '') + "\n
          \n " + (calendar.renderMonths(date)) + "\n
          \n " + (hasTimePicker ? calendar.renderTimeSelector() : '') + "\n " + (footer ? calendar.renderFooter() : '') + "\n
          \n
          \n
          \n ").trim(); + + return popoverHtml; + }; + + Calendar.prototype.render = function render () { + var calendar = this; + var params = calendar.params; + if (params.render) { return params.render.call(calendar); } + if (!calendar.inline) { + var modalType = params.openIn; + if (modalType === 'auto') { modalType = calendar.isPopover() ? 'popover' : 'sheet'; } + + if (modalType === 'popover') { return calendar.renderPopover(); } + if (modalType === 'sheet') { return calendar.renderSheet(); } + return calendar.renderCustomModal(); + } + return calendar.renderInline(); + }; + + Calendar.prototype.openTimePicker = function openTimePicker () { + var calendar = this; + var $el = calendar.$el; + var app = calendar.app; + if (!$el || !$el.length) { return; } + $el.append('
          '); + var hoursArr = []; + var minutesArr = []; + for (var i = 0; i <= 23; i += 1) { hoursArr.push(i); } + for (var i$1 = 0; i$1 <= 59; i$1 += 1) { minutesArr.push(i$1); } + var value; + if (calendar.value && calendar.value.length) { + value = [calendar.value[0].getHours(), calendar.value[0].getMinutes()]; + } else { + value = [new Date().getHours(), new Date().getMinutes()]; + } + calendar.timePickerInstance = app.picker.create({ + containerEl: $el.find('.calendar-time-picker'), + value: value, + toolbar: true, + rotateEffect: false, + toolbarCloseText: calendar.params.toolbarCloseText, + cols: [ + { + values: hoursArr, + }, + { + divider: true, + content: ':', + }, + { + values: minutesArr, + displayValues: minutesArr.map(function (m) { return (m < 10 ? ("0" + m) : m); }), + } ], + }); + calendar.timePickerInstance.$el.find('.toolbar a').removeClass('sheet-close popover-close').addClass('calendar-time-picker-close'); + }; + + Calendar.prototype.closeTimePicker = function closeTimePicker () { + var calendar = this; + if (calendar.timePickerInstance) { + var ref = calendar.timePickerInstance.value.map(function (v) { return parseInt(v, 10); }); + var hours = ref[0]; + var minutes = ref[1]; + var value = calendar.value && calendar.value.length && calendar.value[0]; + if (!value) { + value = new Date(); + value.setHours(hours, minutes, 0, 0); + } else { + value = new Date(value); + value.setHours(hours, minutes); + } + calendar.setValue([value]); + calendar.timePickerInstance.close(); + calendar.timePickerInstance.destroy(); + delete calendar.timePickerInstance; + } + if (calendar.$el && calendar.$el.length) { + calendar.$el.find('.calendar-time-picker').remove(); + } + }; + + Calendar.prototype.onOpen = function onOpen () { + var calendar = this; + var initialized = calendar.initialized; + var $el = calendar.$el; + var app = calendar.app; + var $inputEl = calendar.$inputEl; + var inline = calendar.inline; + var value = calendar.value; + var params = calendar.params; + calendar.closing = false; + calendar.opened = true; + calendar.opening = true; + + // Init main events + calendar.attachCalendarEvents(); + + var updateValue = !value && params.value; + + // Set value + if (!initialized) { + if (value) { calendar.setValue(value, 0); } + else if (params.value) { + calendar.setValue(calendar.normalizeValues(params.value), 0); + } + } else if (value) { + calendar.setValue(value, 0); + } + + // Update current month and year + calendar.updateCurrentMonthYear(); + + // Set initial translate + calendar.monthsTranslate = 0; + calendar.setMonthsTranslate(); + + // Update input value + if (updateValue) { calendar.updateValue(); } + else if (params.header && value) { + calendar.updateValue(true); + } + + // Extra focus + if (!inline && $inputEl && $inputEl.length && app.theme === 'md') { + $inputEl.trigger('focus'); + } + + calendar.initialized = true; + + calendar.$months.each(function (index, monthEl) { + calendar.emit('local::monthAdd calendarMonthAdd', monthEl); + }); + + // Trigger events + if ($el) { + $el.trigger('calendar:open'); + } + if ($inputEl) { + $inputEl.trigger('calendar:open'); + } + calendar.emit('local::open calendarOpen', calendar); + }; + + Calendar.prototype.onOpened = function onOpened () { + var calendar = this; + calendar.opening = false; + if (calendar.$el) { + calendar.$el.trigger('calendar:opened'); + } + if (calendar.$inputEl) { + calendar.$inputEl.trigger('calendar:opened'); + } + calendar.emit('local::opened calendarOpened', calendar); + }; + + Calendar.prototype.onClose = function onClose () { + var calendar = this; + var app = calendar.app; + calendar.opening = false; + calendar.closing = true; + + if (calendar.$inputEl) { + if (app.theme === 'md') { + calendar.$inputEl.trigger('blur'); + } else { + var validate = calendar.$inputEl.attr('validate'); + var required = calendar.$inputEl.attr('required'); + if (validate && required) { + app.input.validate(calendar.$inputEl); + } + } + } + if (calendar.detachCalendarEvents) { + calendar.detachCalendarEvents(); + } + + if (calendar.$el) { + calendar.$el.trigger('calendar:close'); + } + if (calendar.$inputEl) { + calendar.$inputEl.trigger('calendar:close'); + } + calendar.emit('local::close calendarClose', calendar); + }; + + Calendar.prototype.onClosed = function onClosed () { + var calendar = this; + calendar.opened = false; + calendar.closing = false; + + if (!calendar.inline) { + Utils.nextTick(function () { + if (calendar.modal && calendar.modal.el && calendar.modal.destroy) { + if (!calendar.params.routableModals) { + calendar.modal.destroy(); + } + } + delete calendar.modal; + }); + } + if (calendar.timePickerInstance) { + if (calendar.timePickerInstance.destroy) { calendar.timePickerInstance.destroy(); } + delete calendar.timePickerInstance; + } + if (calendar.$el) { + calendar.$el.trigger('calendar:closed'); + } + if (calendar.$inputEl) { + calendar.$inputEl.trigger('calendar:closed'); + } + calendar.emit('local::closed calendarClosed', calendar); + }; + + Calendar.prototype.open = function open () { + var obj; + + var calendar = this; + var app = calendar.app; + var opened = calendar.opened; + var inline = calendar.inline; + var $inputEl = calendar.$inputEl; + var params = calendar.params; + if (opened) { return; } + + if (inline) { + calendar.$el = $(calendar.render()); + calendar.$el[0].f7Calendar = calendar; + calendar.$wrapperEl = calendar.$el.find('.calendar-months-wrapper'); + calendar.$months = calendar.$wrapperEl.find('.calendar-month'); + calendar.$containerEl.append(calendar.$el); + calendar.onOpen(); + calendar.onOpened(); + return; + } + var modalType = params.openIn; + if (modalType === 'auto') { + modalType = calendar.isPopover() ? 'popover' : 'sheet'; + } + var modalContent = calendar.render(); + + var modalParams = { + targetEl: $inputEl, + scrollToEl: params.scrollToInput ? $inputEl : undefined, + content: modalContent, + backdrop: params.backdrop === true || (modalType === 'popover' && app.params.popover.backdrop !== false && params.backdrop !== false), + closeByBackdropClick: params.closeByBackdropClick, + on: { + open: function open() { + var modal = this; + calendar.modal = modal; + calendar.$el = modalType === 'popover' ? modal.$el.find('.calendar') : modal.$el; + calendar.$wrapperEl = calendar.$el.find('.calendar-months-wrapper'); + calendar.$months = calendar.$wrapperEl.find('.calendar-month'); + calendar.$el[0].f7Calendar = calendar; + if (modalType === 'customModal') { + $(calendar.$el).find('.calendar-close').once('click', function () { + calendar.close(); + }); + } + calendar.onOpen(); + }, + opened: function opened() { calendar.onOpened(); }, + close: function close() { calendar.onClose(); }, + closed: function closed() { calendar.onClosed(); }, + }, + }; + if (modalType === 'sheet') { + modalParams.push = params.sheetPush; + modalParams.swipeToClose = params.sheetSwipeToClose; + } + if (params.routableModals && calendar.view) { + calendar.view.router.navigate({ + url: calendar.url, + route: ( obj = { + path: calendar.url + }, obj[modalType] = modalParams, obj ), + }); + } else { + calendar.modal = app[modalType].create(modalParams); + calendar.modal.open(); + } + }; + + Calendar.prototype.close = function close () { + var calendar = this; + var opened = calendar.opened; + var inline = calendar.inline; + if (!opened) { return; } + if (inline) { + calendar.onClose(); + calendar.onClosed(); + return; + } + if (calendar.params.routableModals && calendar.view) { + calendar.view.router.back(); + } else { + calendar.modal.close(); + } + }; + + Calendar.prototype.init = function init () { + var calendar = this; + + calendar.initInput(); + + if (calendar.inline) { + calendar.open(); + calendar.emit('local::init calendarInit', calendar); + return; + } + + if (!calendar.initialized && calendar.params.value) { + calendar.setValue(calendar.normalizeValues(calendar.params.value)); + } + + // Attach input Events + if (calendar.$inputEl) { + calendar.attachInputEvents(); + } + if (calendar.params.closeByOutsideClick) { + calendar.attachHtmlEvents(); + } + calendar.emit('local::init calendarInit', calendar); + }; + + Calendar.prototype.destroy = function destroy () { + var calendar = this; + if (calendar.destroyed) { return; } + var $el = calendar.$el; + calendar.emit('local::beforeDestroy calendarBeforeDestroy', calendar); + if ($el) { $el.trigger('calendar:beforedestroy'); } + + calendar.close(); + + // Detach Events + if (calendar.$inputEl) { + calendar.detachInputEvents(); + } + if (calendar.params.closeByOutsideClick) { + calendar.detachHtmlEvents(); + } + + if (calendar.timePickerInstance) { + if (calendar.timePickerInstance.destroy) { calendar.timePickerInstance.destroy(); } + delete calendar.timePickerInstance; + } + + if ($el && $el.length) { delete calendar.$el[0].f7Calendar; } + Utils.deleteProps(calendar); + calendar.destroyed = true; + }; + + Object.defineProperties( Calendar.prototype, prototypeAccessors ); + + return Calendar; + }(Framework7Class)); + + var Calendar$1 = { + name: 'calendar', + static: { + Calendar: Calendar, + }, + create: function create() { + var app = this; + app.calendar = ConstructorMethods({ + defaultSelector: '.calendar', + constructor: Calendar, + app: app, + domProp: 'f7Calendar', + }); + app.calendar.close = function close(el) { + if ( el === void 0 ) el = '.calendar'; + + var $el = $(el); + if ($el.length === 0) { return; } + var calendar = $el[0].f7Calendar; + if (!calendar || (calendar && !calendar.opened)) { return; } + calendar.close(); + }; + }, + params: { + calendar: { + // Calendar settings + dateFormat: undefined, + monthNames: 'auto', + monthNamesShort: 'auto', + dayNames: 'auto', + dayNamesShort: 'auto', + locale: undefined, + firstDay: 1, // First day of the week, Monday + weekendDays: [0, 6], // Sunday and Saturday + multiple: false, + rangePicker: false, + rangePickerMinDays: 1, // when calendar is used as rangePicker + rangePickerMaxDays: 0, // when calendar is used as rangePicker, 0 means unlimited + direction: 'horizontal', // or 'vertical' + minDate: null, + maxDate: null, + disabled: null, // dates range of disabled days + events: null, // dates range of days with events + rangesClasses: null, // array with custom classes date ranges + touchMove: true, + animate: true, + closeOnSelect: false, + monthSelector: true, + monthPicker: true, + yearSelector: true, + yearPicker: true, + yearPickerMin: undefined, + yearPickerMax: undefined, + timePicker: false, + timePickerFormat: { hour: 'numeric', minute: 'numeric' }, + timePickerPlaceholder: 'Select time', + weekHeader: true, + value: null, + // Common opener settings + containerEl: null, + openIn: 'auto', // or 'popover' or 'sheet' or 'customModal' + sheetPush: false, + sheetSwipeToClose: undefined, + formatValue: null, + inputEl: null, + inputReadOnly: true, + closeByOutsideClick: true, + scrollToInput: true, + header: false, + headerPlaceholder: 'Select date', + toolbar: true, + toolbarCloseText: 'Done', + footer: false, + cssClass: null, + routableModals: true, + view: null, + url: 'date/', + backdrop: null, + closeByBackdropClick: true, + // Render functions + renderWeekHeader: null, + renderMonths: null, + renderMonth: null, + renderMonthSelector: null, + renderYearSelector: null, + renderHeader: null, + renderFooter: null, + renderToolbar: null, + renderInline: null, + renderPopover: null, + renderSheet: null, + render: null, + }, + }, + }; + + function pickerColumn (colEl, updateItems) { + var picker = this; + var app = picker.app; + var $colEl = $(colEl); + var colIndex = $colEl.index(); + var col = picker.cols[colIndex]; + if (col.divider) { return; } + + col.$el = $colEl; + col.el = $colEl[0]; + col.$itemsEl = col.$el.find('.picker-items'); + col.items = col.$itemsEl.find('.picker-item'); + + var itemHeight; + var itemsHeight; + var minTranslate; + var maxTranslate; + var animationFrameId; + + function updateDuringScroll() { + animationFrameId = Utils.requestAnimationFrame(function () { + col.updateItems(undefined, undefined, 0); + updateDuringScroll(); + }); + } + + col.replaceValues = function replaceColValues(values, displayValues) { + col.detachEvents(); + col.values = values; + col.displayValues = displayValues; + col.$itemsEl.html(picker.renderColumn(col, true)); + col.items = col.$itemsEl.find('.picker-item'); + col.calcSize(); + col.setValue(col.values[0], 0, true); + col.attachEvents(); + }; + col.calcSize = function calcColSize() { + if (picker.params.rotateEffect) { + col.$el.removeClass('picker-column-absolute'); + if (!col.width) { col.$el.css({ width: '' }); } + } + var colWidth = 0; + var colHeight = col.$el[0].offsetHeight; + itemHeight = col.items[0].offsetHeight; + itemsHeight = itemHeight * col.items.length; + minTranslate = ((colHeight / 2) - itemsHeight) + (itemHeight / 2); + maxTranslate = (colHeight / 2) - (itemHeight / 2); + if (col.width) { + colWidth = col.width; + if (parseInt(colWidth, 10) === colWidth) { colWidth += 'px'; } + col.$el.css({ width: colWidth }); + } + if (picker.params.rotateEffect) { + if (!col.width) { + col.items.each(function (index, itemEl) { + var item = $(itemEl).children('span'); + colWidth = Math.max(colWidth, item[0].offsetWidth); + }); + col.$el.css({ width: ((colWidth + 2) + "px") }); + } + col.$el.addClass('picker-column-absolute'); + } + }; + + col.setValue = function setColValue(newValue, transition, valueCallbacks) { + if ( transition === void 0 ) transition = ''; + + var newActiveIndex = col.$itemsEl.find((".picker-item[data-picker-value=\"" + newValue + "\"]")).index(); + if (typeof newActiveIndex === 'undefined' || newActiveIndex === -1) { + return; + } + var newTranslate = (-newActiveIndex * itemHeight) + maxTranslate; + // Update wrapper + col.$itemsEl.transition(transition); + col.$itemsEl.transform(("translate3d(0," + newTranslate + "px,0)")); + + // Watch items + if (picker.params.updateValuesOnMomentum && col.activeIndex && col.activeIndex !== newActiveIndex) { + Utils.cancelAnimationFrame(animationFrameId); + col.$itemsEl.transitionEnd(function () { + Utils.cancelAnimationFrame(animationFrameId); + }); + updateDuringScroll(); + } + + // Update items + col.updateItems(newActiveIndex, newTranslate, transition, valueCallbacks); + }; + + col.updateItems = function updateColItems(activeIndex, translate, transition, valueCallbacks) { + if (typeof translate === 'undefined') { + // eslint-disable-next-line + translate = Utils.getTranslate(col.$itemsEl[0], 'y'); + } + // eslint-disable-next-line + if (typeof activeIndex === 'undefined') { activeIndex = -Math.round((translate - maxTranslate) / itemHeight); } + // eslint-disable-next-line + if (activeIndex < 0) { activeIndex = 0; } + // eslint-disable-next-line + if (activeIndex >= col.items.length) { activeIndex = col.items.length - 1; } + var previousActiveIndex = col.activeIndex; + col.activeIndex = activeIndex; + col.$itemsEl.find('.picker-item-selected').removeClass('picker-item-selected'); + + col.items.transition(transition); + + var selectedItem = col.items.eq(activeIndex).addClass('picker-item-selected').transform(''); + + // Set 3D rotate effect + if (picker.params.rotateEffect) { + col.items.each(function (index, itemEl) { + var $itemEl = $(itemEl); + var itemOffsetTop = $itemEl.index() * itemHeight; + var translateOffset = maxTranslate - translate; + var itemOffset = itemOffsetTop - translateOffset; + var percentage = itemOffset / itemHeight; + var itemsFit = Math.ceil(col.height / itemHeight / 2) + 1; + + var angle = (-18 * percentage); + if (angle > 180) { angle = 180; } + if (angle < -180) { angle = -180; } + if (Math.abs(percentage) > itemsFit) { + $itemEl.addClass('picker-item-far'); + } else { + $itemEl.removeClass('picker-item-far'); + } + $itemEl.transform(("translate3d(0, " + (-translate + maxTranslate) + "px, " + (picker.needsOriginFix ? -110 : 0) + "px) rotateX(" + angle + "deg)")); + }); + } + + if (valueCallbacks || typeof valueCallbacks === 'undefined') { + // Update values + col.value = selectedItem.attr('data-picker-value'); + col.displayValue = col.displayValues ? col.displayValues[activeIndex] : col.value; + // On change callback + if (previousActiveIndex !== activeIndex) { + if (col.onChange) { + col.onChange(picker, col.value, col.displayValue); + } + picker.updateValue(); + } + } + }; + + var allowItemClick = true; + var isTouched; + var isMoved; + var touchStartY; + var touchCurrentY; + var touchStartTime; + var touchEndTime; + var startTranslate; + var returnTo; + var currentTranslate; + var prevTranslate; + var velocityTranslate; + function handleTouchStart(e) { + if (isMoved || isTouched) { return; } + e.preventDefault(); + isTouched = true; + touchStartY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY; + touchCurrentY = touchStartY; + touchStartTime = (new Date()).getTime(); + + allowItemClick = true; + startTranslate = Utils.getTranslate(col.$itemsEl[0], 'y'); + currentTranslate = startTranslate; + } + function handleTouchMove(e) { + if (!isTouched) { return; } + e.preventDefault(); + allowItemClick = false; + touchCurrentY = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY; + if (!isMoved) { + // First move + Utils.cancelAnimationFrame(animationFrameId); + isMoved = true; + startTranslate = Utils.getTranslate(col.$itemsEl[0], 'y'); + currentTranslate = startTranslate; + col.$itemsEl.transition(0); + } + + var diff = touchCurrentY - touchStartY; + currentTranslate = startTranslate + diff; + returnTo = undefined; + + // Normalize translate + if (currentTranslate < minTranslate) { + currentTranslate = minTranslate - (Math.pow( (minTranslate - currentTranslate), 0.8 )); + returnTo = 'min'; + } + if (currentTranslate > maxTranslate) { + currentTranslate = maxTranslate + (Math.pow( (currentTranslate - maxTranslate), 0.8 )); + returnTo = 'max'; + } + // Transform wrapper + col.$itemsEl.transform(("translate3d(0," + currentTranslate + "px,0)")); + + // Update items + col.updateItems(undefined, currentTranslate, 0, picker.params.updateValuesOnTouchmove); + + // Calc velocity + velocityTranslate = currentTranslate - prevTranslate || currentTranslate; + prevTranslate = currentTranslate; + } + function handleTouchEnd() { + if (!isTouched || !isMoved) { + isTouched = false; + isMoved = false; + return; + } + isTouched = false; + isMoved = false; + col.$itemsEl.transition(''); + if (returnTo) { + if (returnTo === 'min') { + col.$itemsEl.transform(("translate3d(0," + minTranslate + "px,0)")); + } else { + col.$itemsEl.transform(("translate3d(0," + maxTranslate + "px,0)")); + } + } + touchEndTime = new Date().getTime(); + var newTranslate; + if (touchEndTime - touchStartTime > 300) { + newTranslate = currentTranslate; + } else { + newTranslate = currentTranslate + (velocityTranslate * picker.params.momentumRatio); + } + + newTranslate = Math.max(Math.min(newTranslate, maxTranslate), minTranslate); + + // Active Index + var activeIndex = Math.round(Math.abs(((newTranslate - maxTranslate) / itemHeight))); + + // Normalize translate + if (!picker.params.freeMode) { newTranslate = (-activeIndex * itemHeight) + maxTranslate; } + + // Transform wrapper + col.$itemsEl.transform(("translate3d(0," + (parseInt(newTranslate, 10)) + "px,0)")); + + // Update items + col.updateItems(activeIndex, newTranslate, '', true); + + // Watch items + if (picker.params.updateValuesOnMomentum) { + updateDuringScroll(); + col.$itemsEl.transitionEnd(function () { + Utils.cancelAnimationFrame(animationFrameId); + }); + } + + // Allow click + setTimeout(function () { + allowItemClick = true; + }, 100); + } + + var mousewheelTimeout; + function handleMouseWheel(e) { + var deltaX = e.deltaX; + var deltaY = e.deltaY; + if (Math.abs(deltaX) > Math.abs(deltaY)) { return; } + clearTimeout(mousewheelTimeout); + + e.preventDefault(); + + Utils.cancelAnimationFrame(animationFrameId); + startTranslate = Utils.getTranslate(col.$itemsEl[0], 'y'); + col.$itemsEl.transition(0); + + currentTranslate = startTranslate - deltaY; + returnTo = undefined; + + // Normalize translate + if (currentTranslate < minTranslate) { + currentTranslate = minTranslate; + returnTo = 'min'; + } + if (currentTranslate > maxTranslate) { + currentTranslate = maxTranslate; + returnTo = 'max'; + } + // Transform wrapper + col.$itemsEl.transform(("translate3d(0," + currentTranslate + "px,0)")); + + // Update items + col.updateItems(undefined, currentTranslate, 0, picker.params.updateValuesOnMousewheel); + + // On end + mousewheelTimeout = setTimeout(function () { + col.$itemsEl.transition(''); + if (returnTo) { + if (returnTo === 'min') { + col.$itemsEl.transform(("translate3d(0," + minTranslate + "px,0)")); + } else { + col.$itemsEl.transform(("translate3d(0," + maxTranslate + "px,0)")); + } + } + touchEndTime = new Date().getTime(); + var newTranslate = currentTranslate; + newTranslate = Math.max(Math.min(newTranslate, maxTranslate), minTranslate); + + // Active Index + var activeIndex = Math.round(Math.abs(((newTranslate - maxTranslate) / itemHeight))); + + // Normalize translate + if (!picker.params.freeMode) { newTranslate = (-activeIndex * itemHeight) + maxTranslate; } + + // Transform wrapper + col.$itemsEl.transform(("translate3d(0," + (parseInt(newTranslate, 10)) + "px,0)")); + + // Update items + col.updateItems(activeIndex, newTranslate, '', true); + }, 200); + } + + function handleClick() { + if (!allowItemClick) { return; } + Utils.cancelAnimationFrame(animationFrameId); + var value = $(this).attr('data-picker-value'); + col.setValue(value); + } + + var activeListener = app.support.passiveListener ? { passive: false, capture: false } : false; + col.attachEvents = function attachColEvents() { + col.$el.on(app.touchEvents.start, handleTouchStart, activeListener); + app.on('touchmove:active', handleTouchMove); + app.on('touchend:passive', handleTouchEnd); + if (picker.params.mousewheel) { + col.$el.on('wheel', handleMouseWheel); + } + col.items.on('click', handleClick); + }; + col.detachEvents = function detachColEvents() { + col.$el.off(app.touchEvents.start, handleTouchStart, activeListener); + app.off('touchmove:active', handleTouchMove); + app.off('touchend:passive', handleTouchEnd); + if (picker.params.mousewheel) { + col.$el.off('wheel', handleMouseWheel); + } + col.items.off('click', handleClick); + }; + + col.init = function initCol() { + col.calcSize(); + col.$itemsEl.transform(("translate3d(0," + maxTranslate + "px,0)")).transition(0); + if (colIndex === 0) { col.$el.addClass('picker-column-first'); } + if (colIndex === picker.cols.length - 1) { col.$el.addClass('picker-column-last'); } + // Update items on init + if (updateItems) { col.updateItems(0, maxTranslate, 0); } + + col.attachEvents(); + }; + + col.destroy = function destroyCol() { + col.detachEvents(); + }; + + col.init(); + } + + var Picker = /*@__PURE__*/(function (Framework7Class) { + function Picker(app, params) { + if ( params === void 0 ) params = {}; + + Framework7Class.call(this, params, [app]); + var picker = this; + picker.params = Utils.extend({}, app.params.picker, params); + + var $containerEl; + if (picker.params.containerEl) { + $containerEl = $(picker.params.containerEl); + if ($containerEl.length === 0) { return picker; } + } + + var $inputEl; + if (picker.params.inputEl) { + $inputEl = $(picker.params.inputEl); + } + + + var $scrollToEl = picker.params.scrollToInput ? $inputEl : undefined; + if (picker.params.scrollToEl) { + var scrollToEl = $(picker.params.scrollToEl); + if (scrollToEl.length > 0) { + $scrollToEl = scrollToEl; + } + } + + Utils.extend(picker, { + app: app, + $containerEl: $containerEl, + containerEl: $containerEl && $containerEl[0], + inline: $containerEl && $containerEl.length > 0, + needsOriginFix: app.device.ios || ((win.navigator.userAgent.toLowerCase().indexOf('safari') >= 0 && win.navigator.userAgent.toLowerCase().indexOf('chrome') < 0) && !app.device.android), + cols: [], + $inputEl: $inputEl, + inputEl: $inputEl && $inputEl[0], + $scrollToEl: $scrollToEl, + initialized: false, + opened: false, + url: picker.params.url, + }); + + function onResize() { + picker.resizeCols(); + } + function onInputClick() { + picker.open(); + } + function onInputFocus(e) { + e.preventDefault(); + } + function onHtmlClick(e) { + if (picker.destroyed || !picker.params) { return; } + var $targetEl = $(e.target); + if (picker.isPopover()) { return; } + if (!picker.opened || picker.closing) { return; } + if ($targetEl.closest('[class*="backdrop"]').length) { return; } + if ($inputEl && $inputEl.length > 0) { + if ($targetEl[0] !== $inputEl[0] && $targetEl.closest('.sheet-modal').length === 0) { + picker.close(); + } + } else if ($(e.target).closest('.sheet-modal').length === 0) { + picker.close(); + } + } + + // Events + Utils.extend(picker, { + attachResizeEvent: function attachResizeEvent() { + app.on('resize', onResize); + }, + detachResizeEvent: function detachResizeEvent() { + app.off('resize', onResize); + }, + attachInputEvents: function attachInputEvents() { + picker.$inputEl.on('click', onInputClick); + if (picker.params.inputReadOnly) { + picker.$inputEl.on('focus mousedown', onInputFocus); + if (picker.$inputEl[0]) { + picker.$inputEl[0].f7ValidateReadonly = true; + } + } + }, + detachInputEvents: function detachInputEvents() { + picker.$inputEl.off('click', onInputClick); + if (picker.params.inputReadOnly) { + picker.$inputEl.off('focus mousedown', onInputFocus); + if (picker.$inputEl[0]) { + delete picker.$inputEl[0].f7ValidateReadonly; + } + } + }, + attachHtmlEvents: function attachHtmlEvents() { + app.on('click', onHtmlClick); + }, + detachHtmlEvents: function detachHtmlEvents() { + app.off('click', onHtmlClick); + }, + }); + + picker.init(); + + return picker; + } + + if ( Framework7Class ) Picker.__proto__ = Framework7Class; + Picker.prototype = Object.create( Framework7Class && Framework7Class.prototype ); + Picker.prototype.constructor = Picker; + + var prototypeAccessors = { view: { configurable: true } }; + + prototypeAccessors.view.get = function () { + var ref = this; + var app = ref.app; + var params = ref.params; + var $inputEl = ref.$inputEl; + var view; + if (params.view) { + view = params.view; + } else if ($inputEl) { + view = $inputEl.parents('.view').length && $inputEl.parents('.view')[0].f7View; + } + if (!view) { view = app.views.main; } + return view; + }; + + Picker.prototype.initInput = function initInput () { + var picker = this; + if (!picker.$inputEl) { return; } + if (picker.params.inputReadOnly) { picker.$inputEl.prop('readOnly', true); } + }; + + Picker.prototype.resizeCols = function resizeCols () { + var picker = this; + if (!picker.opened) { return; } + for (var i = 0; i < picker.cols.length; i += 1) { + if (!picker.cols[i].divider) { + picker.cols[i].calcSize(); + picker.cols[i].setValue(picker.cols[i].value, 0, false); + } + } + }; + + Picker.prototype.isPopover = function isPopover () { + var picker = this; + var app = picker.app; + var modal = picker.modal; + var params = picker.params; + if (params.openIn === 'sheet') { return false; } + if (modal && modal.type !== 'popover') { return false; } + + if (!picker.inline && picker.inputEl) { + if (params.openIn === 'popover') { return true; } + if (app.device.ios) { + return !!app.device.ipad; + } + if (app.width >= 768) { + return true; + } + if (app.device.desktop && app.theme === 'aurora') { + return true; + } + } + return false; + }; + + Picker.prototype.formatValue = function formatValue () { + var picker = this; + var value = picker.value; + var displayValue = picker.displayValue; + if (picker.params.formatValue) { + return picker.params.formatValue.call(picker, value, displayValue); + } + return value.join(' '); + }; + + Picker.prototype.setValue = function setValue (values, transition) { + var picker = this; + var valueIndex = 0; + if (picker.cols.length === 0) { + picker.value = values; + picker.updateValue(values); + return; + } + for (var i = 0; i < picker.cols.length; i += 1) { + if (picker.cols[i] && !picker.cols[i].divider) { + picker.cols[i].setValue(values[valueIndex], transition); + valueIndex += 1; + } + } + }; + + Picker.prototype.getValue = function getValue () { + var picker = this; + return picker.value; + }; + + Picker.prototype.updateValue = function updateValue (forceValues) { + var picker = this; + var newValue = forceValues || []; + var newDisplayValue = []; + var column; + if (picker.cols.length === 0) { + var noDividerColumns = picker.params.cols.filter(function (c) { return !c.divider; }); + for (var i = 0; i < noDividerColumns.length; i += 1) { + column = noDividerColumns[i]; + if (column.displayValues !== undefined && column.values !== undefined && column.values.indexOf(newValue[i]) !== -1) { + newDisplayValue.push(column.displayValues[column.values.indexOf(newValue[i])]); + } else { + newDisplayValue.push(newValue[i]); + } + } + } else { + for (var i$1 = 0; i$1 < picker.cols.length; i$1 += 1) { + if (!picker.cols[i$1].divider) { + newValue.push(picker.cols[i$1].value); + newDisplayValue.push(picker.cols[i$1].displayValue); + } + } + } + + if (newValue.indexOf(undefined) >= 0) { + return; + } + picker.value = newValue; + picker.displayValue = newDisplayValue; + picker.emit('local::change pickerChange', picker, picker.value, picker.displayValue); + if (picker.inputEl) { + picker.$inputEl.val(picker.formatValue()); + picker.$inputEl.trigger('change'); + } + }; + + Picker.prototype.initColumn = function initColumn (colEl, updateItems) { + var picker = this; + pickerColumn.call(picker, colEl, updateItems); + }; + // eslint-disable-next-line + Picker.prototype.destroyColumn = function destroyColumn (colEl) { + var picker = this; + var $colEl = $(colEl); + var index = $colEl.index(); + if (picker.cols[index] && picker.cols[index].destroy) { + picker.cols[index].destroy(); + } + }; + + Picker.prototype.renderToolbar = function renderToolbar () { + var picker = this; + if (picker.params.renderToolbar) { return picker.params.renderToolbar.call(picker, picker); } + return ("\n \n ").trim(); + }; + // eslint-disable-next-line + Picker.prototype.renderColumn = function renderColumn (col, onlyItems) { + var colClasses = "picker-column " + (col.textAlign ? ("picker-column-" + (col.textAlign)) : '') + " " + (col.cssClass || ''); + var columnHtml; + var columnItemsHtml; + + if (col.divider) { + columnHtml = "\n
          " + (col.content) + "
          \n "; + } else { + columnItemsHtml = col.values.map(function (value, index) { return ("\n
          \n " + (col.displayValues ? col.displayValues[index] : value) + "\n
          \n "); }).join(''); + columnHtml = "\n
          \n
          " + columnItemsHtml + "
          \n
          \n "; + } + + return onlyItems ? columnItemsHtml.trim() : columnHtml.trim(); + }; + + Picker.prototype.renderInline = function renderInline () { + var picker = this; + var ref = picker.params; + var rotateEffect = ref.rotateEffect; + var cssClass = ref.cssClass; + var toolbar = ref.toolbar; + var inlineHtml = ("\n
          \n " + (toolbar ? picker.renderToolbar() : '') + "\n
          \n " + (picker.cols.map(function (col) { return picker.renderColumn(col); }).join('')) + "\n
          \n
          \n
          \n ").trim(); + + return inlineHtml; + }; + + Picker.prototype.renderSheet = function renderSheet () { + var picker = this; + var ref = picker.params; + var rotateEffect = ref.rotateEffect; + var cssClass = ref.cssClass; + var toolbar = ref.toolbar; + var sheetHtml = ("\n
          \n " + (toolbar ? picker.renderToolbar() : '') + "\n
          \n " + (picker.cols.map(function (col) { return picker.renderColumn(col); }).join('')) + "\n
          \n
          \n
          \n ").trim(); + + return sheetHtml; + }; + + Picker.prototype.renderPopover = function renderPopover () { + var picker = this; + var ref = picker.params; + var rotateEffect = ref.rotateEffect; + var cssClass = ref.cssClass; + var toolbar = ref.toolbar; + var popoverHtml = ("\n
          \n
          \n
          \n " + (toolbar ? picker.renderToolbar() : '') + "\n
          \n " + (picker.cols.map(function (col) { return picker.renderColumn(col); }).join('')) + "\n
          \n
          \n
          \n
          \n
          \n ").trim(); + + return popoverHtml; + }; + + Picker.prototype.render = function render () { + var picker = this; + if (picker.params.render) { return picker.params.render.call(picker); } + if (!picker.inline) { + if (picker.isPopover()) { return picker.renderPopover(); } + return picker.renderSheet(); + } + return picker.renderInline(); + }; + + Picker.prototype.onOpen = function onOpen () { + var picker = this; + var initialized = picker.initialized; + var $el = picker.$el; + var app = picker.app; + var $inputEl = picker.$inputEl; + var inline = picker.inline; + var value = picker.value; + var params = picker.params; + picker.opened = true; + picker.closing = false; + picker.opening = true; + + // Init main events + picker.attachResizeEvent(); + + // Init cols + $el.find('.picker-column').each(function (index, colEl) { + var updateItems = true; + if ( + (!initialized && params.value) + || (initialized && value) + ) { + updateItems = false; + } + picker.initColumn(colEl, updateItems); + }); + + // Set value + if (!initialized) { + if (value) { picker.setValue(value, 0); } + else if (params.value) { + picker.setValue(params.value, 0); + } + } else if (value) { + picker.setValue(value, 0); + } + + // Extra focus + if (!inline && $inputEl && $inputEl.length && app.theme === 'md') { + $inputEl.trigger('focus'); + } + + picker.initialized = true; + + // Trigger events + if ($el) { + $el.trigger('picker:open'); + } + if ($inputEl) { + $inputEl.trigger('picker:open'); + } + picker.emit('local::open pickerOpen', picker); + }; + + Picker.prototype.onOpened = function onOpened () { + var picker = this; + picker.opening = false; + + if (picker.$el) { + picker.$el.trigger('picker:opened'); + } + if (picker.$inputEl) { + picker.$inputEl.trigger('picker:opened'); + } + picker.emit('local::opened pickerOpened', picker); + }; + + Picker.prototype.onClose = function onClose () { + var picker = this; + var app = picker.app; + picker.opening = false; + picker.closing = true; + + // Detach events + picker.detachResizeEvent(); + + picker.cols.forEach(function (col) { + if (col.destroy) { col.destroy(); } + }); + + if (picker.$inputEl) { + if (app.theme === 'md') { + picker.$inputEl.trigger('blur'); + } else { + var validate = picker.$inputEl.attr('validate'); + var required = picker.$inputEl.attr('required'); + if (validate && required) { + app.input.validate(picker.$inputEl); + } + } + } + + if (picker.$el) { + picker.$el.trigger('picker:close'); + } + if (picker.$inputEl) { + picker.$inputEl.trigger('picker:close'); + } + picker.emit('local::close pickerClose', picker); + }; + + Picker.prototype.onClosed = function onClosed () { + var picker = this; + picker.opened = false; + picker.closing = false; + + if (!picker.inline) { + Utils.nextTick(function () { + if (picker.modal && picker.modal.el && picker.modal.destroy) { + if (!picker.params.routableModals) { + picker.modal.destroy(); + } + } + delete picker.modal; + }); + } + + if (picker.$el) { + picker.$el.trigger('picker:closed'); + } + if (picker.$inputEl) { + picker.$inputEl.trigger('picker:closed'); + } + picker.emit('local::closed pickerClosed', picker); + }; + + Picker.prototype.open = function open () { + var obj; + + var picker = this; + var app = picker.app; + var opened = picker.opened; + var inline = picker.inline; + var $inputEl = picker.$inputEl; + var $scrollToEl = picker.$scrollToEl; + var params = picker.params; + if (opened) { return; } + if (picker.cols.length === 0 && params.cols.length) { + params.cols.forEach(function (col) { + picker.cols.push(col); + }); + } + if (inline) { + picker.$el = $(picker.render()); + picker.$el[0].f7Picker = picker; + picker.$containerEl.append(picker.$el); + picker.onOpen(); + picker.onOpened(); + return; + } + var isPopover = picker.isPopover(); + var modalType = isPopover ? 'popover' : 'sheet'; + var modalParams = { + targetEl: $inputEl, + scrollToEl: $scrollToEl, + content: picker.render(), + backdrop: typeof params.backdrop !== 'undefined' ? params.backdrop : isPopover, + on: { + open: function open() { + var modal = this; + picker.modal = modal; + picker.$el = isPopover ? modal.$el.find('.picker') : modal.$el; + picker.$el[0].f7Picker = picker; + picker.onOpen(); + }, + opened: function opened() { picker.onOpened(); }, + close: function close() { picker.onClose(); }, + closed: function closed() { picker.onClosed(); }, + }, + }; + if (modalType === 'sheet') { + modalParams.push = params.sheetPush; + modalParams.swipeToClose = params.sheetSwipeToClose; + } + if (params.routableModals && picker.view) { + picker.view.router.navigate({ + url: picker.url, + route: ( obj = { + path: picker.url + }, obj[modalType] = modalParams, obj ), + }); + } else { + picker.modal = app[modalType].create(modalParams); + picker.modal.open(); + } + }; + + Picker.prototype.close = function close () { + var picker = this; + var opened = picker.opened; + var inline = picker.inline; + if (!opened) { return; } + if (inline) { + picker.onClose(); + picker.onClosed(); + return; + } + if (picker.params.routableModals && picker.view) { + picker.view.router.back(); + } else { + picker.modal.close(); + } + }; + + Picker.prototype.init = function init () { + var picker = this; + + picker.initInput(); + + if (picker.inline) { + picker.open(); + picker.emit('local::init pickerInit', picker); + return; + } + + if (!picker.initialized && picker.params.value) { + picker.setValue(picker.params.value); + } + + // Attach input Events + if (picker.$inputEl) { + picker.attachInputEvents(); + } + if (picker.params.closeByOutsideClick) { + picker.attachHtmlEvents(); + } + picker.emit('local::init pickerInit', picker); + }; + + Picker.prototype.destroy = function destroy () { + var picker = this; + if (picker.destroyed) { return; } + var $el = picker.$el; + picker.emit('local::beforeDestroy pickerBeforeDestroy', picker); + if ($el) { $el.trigger('picker:beforedestroy'); } + + picker.close(); + + // Detach Events + if (picker.$inputEl) { + picker.detachInputEvents(); + } + if (picker.params.closeByOutsideClick) { + picker.detachHtmlEvents(); + } + + if ($el && $el.length) { delete picker.$el[0].f7Picker; } + Utils.deleteProps(picker); + picker.destroyed = true; + }; + + Object.defineProperties( Picker.prototype, prototypeAccessors ); + + return Picker; + }(Framework7Class)); + + var Picker$1 = { + name: 'picker', + static: { + Picker: Picker, + }, + create: function create() { + var app = this; + app.picker = ConstructorMethods({ + defaultSelector: '.picker', + constructor: Picker, + app: app, + domProp: 'f7Picker', + }); + app.picker.close = function close(el) { + if ( el === void 0 ) el = '.picker'; + + var $el = $(el); + if ($el.length === 0) { return; } + var picker = $el[0].f7Picker; + if (!picker || (picker && !picker.opened)) { return; } + picker.close(); + }; + }, + params: { + picker: { + // Picker settings + updateValuesOnMomentum: false, + updateValuesOnTouchmove: true, + updateValuesOnMousewheel: true, + mousewheel: true, + rotateEffect: false, + momentumRatio: 7, + freeMode: false, + cols: [], + // Common opener settings + containerEl: null, + openIn: 'auto', // or 'popover' or 'sheet' + sheetPush: false, + sheetSwipeToClose: undefined, + backdrop: undefined, // uses Popover or Sheet defaults + formatValue: null, + inputEl: null, + inputReadOnly: true, + closeByOutsideClick: true, + scrollToInput: true, + scrollToEl: undefined, + toolbar: true, + toolbarCloseText: 'Done', + cssClass: null, + routableModals: true, + view: null, + url: 'select/', + // Render functions + renderToolbar: null, + render: null, + }, + }, + }; + + var InfiniteScroll = { + handleScroll: function handleScroll(el, e) { + var app = this; + var $el = $(el); + var scrollTop = $el[0].scrollTop; + var scrollHeight = $el[0].scrollHeight; + var height = $el[0].offsetHeight; + var distance = $el[0].getAttribute('data-infinite-distance'); + + var virtualListContainer = $el.find('.virtual-list'); + var virtualList; + + var onTop = $el.hasClass('infinite-scroll-top'); + if (!distance) { distance = 50; } + if (typeof distance === 'string' && distance.indexOf('%') >= 0) { + distance = (parseInt(distance, 10) / 100) * height; + } + if (distance > height) { distance = height; } + if (onTop) { + if (scrollTop < distance) { + $el.trigger('infinite', e); + app.emit('infinite', $el[0], e); + } + } else if (scrollTop + height >= scrollHeight - distance) { + if (virtualListContainer.length > 0) { + virtualList = virtualListContainer.eq(-1)[0].f7VirtualList; + if (virtualList && !virtualList.reachEnd && !virtualList.params.updatableScroll) { + return; + } + } + $el.trigger('infinite', e); + app.emit('infinite', $el[0], e); + } + }, + create: function create(el) { + var $el = $(el); + var app = this; + function scrollHandler(e) { + app.infiniteScroll.handle(this, e); + } + $el.each(function (index, element) { + element.f7InfiniteScrollHandler = scrollHandler; + element.addEventListener('scroll', element.f7InfiniteScrollHandler); + }); + }, + destroy: function destroy(el) { + var $el = $(el); + $el.each(function (index, element) { + element.removeEventListener('scroll', element.f7InfiniteScrollHandler); + delete element.f7InfiniteScrollHandler; + }); + }, + }; + var InfiniteScroll$1 = { + name: 'infiniteScroll', + create: function create() { + var app = this; + Utils.extend(app, { + infiniteScroll: { + handle: InfiniteScroll.handleScroll.bind(app), + create: InfiniteScroll.create.bind(app), + destroy: InfiniteScroll.destroy.bind(app), + }, + }); + }, + on: { + tabMounted: function tabMounted(tabEl) { + var app = this; + var $tabEl = $(tabEl); + var $isEls = $tabEl.find('.infinite-scroll-content'); + if ($tabEl.is('.infinite-scroll-content')) { $isEls.add($tabEl); } + $isEls.each(function (index, el) { + app.infiniteScroll.create(el); + }); + }, + tabBeforeRemove: function tabBeforeRemove(tabEl) { + var $tabEl = $(tabEl); + var app = this; + var $isEls = $tabEl.find('.infinite-scroll-content'); + if ($tabEl.is('.infinite-scroll-content')) { $isEls.add($tabEl); } + $isEls.each(function (index, el) { + app.infiniteScroll.destroy(el); + }); + }, + pageInit: function pageInit(page) { + var app = this; + page.$el.find('.infinite-scroll-content').each(function (index, el) { + app.infiniteScroll.create(el); + }); + }, + pageBeforeRemove: function pageBeforeRemove(page) { + var app = this; + page.$el.find('.infinite-scroll-content').each(function (index, el) { + app.infiniteScroll.destroy(el); + }); + }, + }, + }; + + var PullToRefresh = /*@__PURE__*/(function (Framework7Class) { + function PullToRefresh(app, el) { + Framework7Class.call(this, {}, [app]); + var ptr = this; + var $el = $(el); + var $preloaderEl = $el.find('.ptr-preloader'); + + ptr.$el = $el; + ptr.el = $el[0]; + ptr.app = app; + + ptr.bottom = ptr.$el.hasClass('ptr-bottom'); + + // Extend defaults with modules params + ptr.useModulesParams({}); + + var isMaterial = app.theme === 'md'; + var isIos = app.theme === 'ios'; + var isAurora = app.theme === 'aurora'; + + // Done + ptr.done = function done() { + var $transitionTarget = isMaterial ? $preloaderEl : $el; + $transitionTarget.transitionEnd(function () { + $el.removeClass('ptr-transitioning ptr-pull-up ptr-pull-down ptr-closing'); + $el.trigger('ptr:done'); + ptr.emit('local::done ptrDone', $el[0]); + }); + $el.removeClass('ptr-refreshing').addClass('ptr-transitioning ptr-closing'); + return ptr; + }; + + ptr.refresh = function refresh() { + if ($el.hasClass('ptr-refreshing')) { return ptr; } + $el.addClass('ptr-transitioning ptr-refreshing'); + $el.trigger('ptr:refresh', ptr.done); + ptr.emit('local::refresh ptrRefresh', $el[0], ptr.done); + return ptr; + }; + + // Mousewheel + ptr.mousewheel = $el.attr('data-ptr-mousewheel') === 'true'; + + // Events handling + var touchId; + var isTouched; + var isMoved; + var touchesStart = {}; + var isScrolling; + var touchesDiff; + var refresh = false; + var useTranslate = false; + var forceUseTranslate = false; + var startTranslate = 0; + var translate; + var scrollTop; + var wasScrolled; + var triggerDistance; + var dynamicTriggerDistance; + var pullStarted; + var hasNavbar = false; + var scrollHeight; + var offsetHeight; + var maxScrollTop; + var $pageEl = $el.parents('.page'); + + if ($pageEl.find('.navbar').length > 0 || $pageEl.parents('.view').children('.navbars').length > 0) { hasNavbar = true; } + if ($pageEl.hasClass('no-navbar')) { hasNavbar = false; } + if (!ptr.bottom) { + var pageNavbarEl = app.navbar.getElByPage($pageEl[0]); + if (pageNavbarEl) { + var $pageNavbarEl = $(pageNavbarEl); + var isLargeTransparent = $pageNavbarEl.hasClass('navbar-large-transparent') + || ( + $pageNavbarEl.hasClass('navbar-large') + && $pageNavbarEl.hasClass('navbar-transparent') + ); + var isTransparent = $pageNavbarEl.hasClass('navbar-transparent') && !$pageNavbarEl.hasClass('navbar-large'); + if (isLargeTransparent) { + $el.addClass('ptr-with-navbar-large-transparent'); + } else if (isTransparent) { + $el.addClass('ptr-with-navbar-transparent'); + } + } + } + if (!hasNavbar && !ptr.bottom) { $el.addClass('ptr-no-navbar'); } + + // Define trigger distance + if ($el.attr('data-ptr-distance')) { + dynamicTriggerDistance = true; + } else if (isMaterial) { + triggerDistance = 66; + } else if (isIos) { + triggerDistance = 44; + } else if (isAurora) { + triggerDistance = 38; + } + + function handleTouchStart(e) { + if (isTouched) { + if (Device.os === 'android') { + if ('targetTouches' in e && e.targetTouches.length > 1) { return; } + } else { return; } + } + + if ($el.hasClass('ptr-refreshing')) { + return; + } + if ($(e.target).closest('.sortable-handler, .ptr-ignore, .card-expandable.card-opened').length) { return; } + + isMoved = false; + pullStarted = false; + isTouched = true; + isScrolling = undefined; + wasScrolled = undefined; + if (e.type === 'touchstart') { touchId = e.targetTouches[0].identifier; } + touchesStart.x = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX; + touchesStart.y = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY; + } + + function handleTouchMove(e) { + if (!isTouched) { return; } + var pageX; + var pageY; + var touch; + if (e.type === 'touchmove') { + if (touchId && e.touches) { + for (var i = 0; i < e.touches.length; i += 1) { + if (e.touches[i].identifier === touchId) { + touch = e.touches[i]; + } + } + } + if (!touch) { touch = e.targetTouches[0]; } + pageX = touch.pageX; + pageY = touch.pageY; + } else { + pageX = e.pageX; + pageY = e.pageY; + } + if (!pageX || !pageY) { return; } + + + if (typeof isScrolling === 'undefined') { + isScrolling = !!(isScrolling || Math.abs(pageY - touchesStart.y) > Math.abs(pageX - touchesStart.x)); + } + if (!isScrolling) { + isTouched = false; + return; + } + + scrollTop = $el[0].scrollTop; + + if (!isMoved) { + $el.removeClass('ptr-transitioning'); + var targetIsScrollable; + scrollHeight = $el[0].scrollHeight; + offsetHeight = $el[0].offsetHeight; + if (ptr.bottom) { + maxScrollTop = scrollHeight - offsetHeight; + } + if (scrollTop > scrollHeight) { + isTouched = false; + return; + } + var $ptrWatchScrollable = $(e.target).closest('.ptr-watch-scroll'); + if ($ptrWatchScrollable.length) { + $ptrWatchScrollable.each(function (ptrScrollableIndex, ptrScrollableEl) { + if (ptrScrollableEl === el) { return; } + if ( + (ptrScrollableEl.scrollHeight > ptrScrollableEl.offsetHeight) + && $(ptrScrollableEl).css('overflow') === 'auto' + && ( + (!ptr.bottom && ptrScrollableEl.scrollTop > 0) + || (ptr.bottom && ptrScrollableEl.scrollTop < ptrScrollableEl.scrollHeight - ptrScrollableEl.offsetHeight) + ) + ) { + targetIsScrollable = true; + } + }); + } + if (targetIsScrollable) { + isTouched = false; + return; + } + if (dynamicTriggerDistance) { + triggerDistance = $el.attr('data-ptr-distance'); + if (triggerDistance.indexOf('%') >= 0) { triggerDistance = (scrollHeight * parseInt(triggerDistance, 10)) / 100; } + } + startTranslate = $el.hasClass('ptr-refreshing') ? triggerDistance : 0; + if (scrollHeight === offsetHeight || Device.os !== 'ios' || isMaterial) { + useTranslate = true; + } else { + useTranslate = false; + } + forceUseTranslate = false; + } + isMoved = true; + touchesDiff = pageY - touchesStart.y; + + if (typeof wasScrolled === 'undefined' && (ptr.bottom ? scrollTop !== maxScrollTop : scrollTop !== 0)) { wasScrolled = true; } + + var ptrStarted = ptr.bottom + ? (touchesDiff < 0 && scrollTop >= maxScrollTop) || scrollTop > maxScrollTop + : (touchesDiff > 0 && scrollTop <= 0) || scrollTop < 0; + + if (ptrStarted) { + // iOS 8 fix + if (Device.os === 'ios' && parseInt(Device.osVersion.split('.')[0], 10) > 7) { + if (!ptr.bottom && scrollTop === 0 && !wasScrolled) { useTranslate = true; } + if (ptr.bottom && scrollTop === maxScrollTop && !wasScrolled) { useTranslate = true; } + } + + if (!useTranslate && ptr.bottom && !isMaterial) { + $el.css('-webkit-overflow-scrolling', 'auto'); + $el.scrollTop(maxScrollTop); + forceUseTranslate = true; + } + + if (useTranslate || forceUseTranslate) { + if (e.cancelable) { + e.preventDefault(); + } + translate = (ptr.bottom ? -1 * (Math.pow( Math.abs(touchesDiff), 0.85 )) : Math.pow( touchesDiff, 0.85 )) + startTranslate; + if (isMaterial) { + $preloaderEl.transform(("translate3d(0," + translate + "px,0)")) + .find('.ptr-arrow').transform(("rotate(" + ((180 * (Math.abs(touchesDiff) / 66)) + 100) + "deg)")); + } else { + // eslint-disable-next-line + if (ptr.bottom) { + $el.children().transform(("translate3d(0," + translate + "px,0)")); + } else { + $el.transform(("translate3d(0," + translate + "px,0)")); + } + } + } + + if (((useTranslate || forceUseTranslate) && (Math.pow( Math.abs(touchesDiff), 0.85 )) > triggerDistance) || (!useTranslate && Math.abs(touchesDiff) >= triggerDistance * 2)) { + refresh = true; + $el.addClass('ptr-pull-up').removeClass('ptr-pull-down'); + } else { + refresh = false; + $el.removeClass('ptr-pull-up').addClass('ptr-pull-down'); + } + if (!pullStarted) { + $el.trigger('ptr:pullstart'); + ptr.emit('local::pullStart ptrPullStart', $el[0]); + pullStarted = true; + } + $el.trigger('ptr:pullmove', { + event: e, + scrollTop: scrollTop, + translate: translate, + touchesDiff: touchesDiff, + }); + ptr.emit('local::pullMove ptrPullMove', $el[0], { + event: e, + scrollTop: scrollTop, + translate: translate, + touchesDiff: touchesDiff, + }); + } else { + pullStarted = false; + $el.removeClass('ptr-pull-up ptr-pull-down'); + refresh = false; + } + } + function handleTouchEnd(e) { + if (e.type === 'touchend' && e.changedTouches && e.changedTouches.length > 0 && touchId) { + if (e.changedTouches[0].identifier !== touchId) { + isTouched = false; + isScrolling = false; + isMoved = false; + touchId = null; + return; + } + } + if (!isTouched || !isMoved) { + isTouched = false; + isMoved = false; + return; + } + if (translate) { + $el.addClass('ptr-transitioning'); + translate = 0; + } + if (isMaterial) { + $preloaderEl.transform('') + .find('.ptr-arrow').transform(''); + } else { + // eslint-disable-next-line + if (ptr.bottom) { + $el.children().transform(''); + } else { + $el.transform(''); + } + } + + if (!useTranslate && ptr.bottom && !isMaterial) { + $el.css('-webkit-overflow-scrolling', ''); + } + + if (refresh) { + $el.addClass('ptr-refreshing'); + $el.trigger('ptr:refresh', ptr.done); + ptr.emit('local::refresh ptrRefresh', $el[0], ptr.done); + } else { + $el.removeClass('ptr-pull-down'); + } + isTouched = false; + isMoved = false; + if (pullStarted) { + $el.trigger('ptr:pullend'); + ptr.emit('local::pullEnd ptrPullEnd', $el[0]); + } + } + + var mousewheelTimeout; + var mousewheelMoved; + var mousewheelAllow = true; + var mousewheelTranslate = 0; + + function handleMouseWheelRelease() { + mousewheelAllow = true; + mousewheelMoved = false; + mousewheelTranslate = 0; + if (translate) { + $el.addClass('ptr-transitioning'); + translate = 0; + } + if (isMaterial) { + $preloaderEl.transform('') + .find('.ptr-arrow').transform(''); + } else { + // eslint-disable-next-line + if (ptr.bottom) { + $el.children().transform(''); + } else { + $el.transform(''); + } + } + + if (refresh) { + $el.addClass('ptr-refreshing'); + $el.trigger('ptr:refresh', ptr.done); + ptr.emit('local::refresh ptrRefresh', $el[0], ptr.done); + } else { + $el.removeClass('ptr-pull-down'); + } + if (pullStarted) { + $el.trigger('ptr:pullend'); + ptr.emit('local::pullEnd ptrPullEnd', $el[0]); + } + } + function handleMouseWheel(e) { + if (!mousewheelAllow) { return; } + var deltaX = e.deltaX; + var deltaY = e.deltaY; + if (Math.abs(deltaX) > Math.abs(deltaY)) { return; } + if ($el.hasClass('ptr-refreshing')) { + return; + } + if ($(e.target).closest('.sortable-handler, .ptr-ignore, .card-expandable.card-opened').length) { return; } + + clearTimeout(mousewheelTimeout); + + scrollTop = $el[0].scrollTop; + + if (!mousewheelMoved) { + $el.removeClass('ptr-transitioning'); + var targetIsScrollable; + scrollHeight = $el[0].scrollHeight; + offsetHeight = $el[0].offsetHeight; + if (ptr.bottom) { + maxScrollTop = scrollHeight - offsetHeight; + } + if (scrollTop > scrollHeight) { + mousewheelAllow = false; + return; + } + var $ptrWatchScrollable = $(e.target).closest('.ptr-watch-scroll'); + if ($ptrWatchScrollable.length) { + $ptrWatchScrollable.each(function (ptrScrollableIndex, ptrScrollableEl) { + if (ptrScrollableEl === el) { return; } + if ( + (ptrScrollableEl.scrollHeight > ptrScrollableEl.offsetHeight) + && $(ptrScrollableEl).css('overflow') === 'auto' + && ( + (!ptr.bottom && ptrScrollableEl.scrollTop > 0) + || (ptr.bottom && ptrScrollableEl.scrollTop < ptrScrollableEl.scrollHeight - ptrScrollableEl.offsetHeight) + ) + ) { + targetIsScrollable = true; + } + }); + } + if (targetIsScrollable) { + mousewheelAllow = false; + return; + } + if (dynamicTriggerDistance) { + triggerDistance = $el.attr('data-ptr-distance'); + if (triggerDistance.indexOf('%') >= 0) { triggerDistance = (scrollHeight * parseInt(triggerDistance, 10)) / 100; } + } + } + isMoved = true; + mousewheelTranslate -= deltaY; + touchesDiff = mousewheelTranslate; // pageY - touchesStart.y; + + if (typeof wasScrolled === 'undefined' && (ptr.bottom ? scrollTop !== maxScrollTop : scrollTop !== 0)) { wasScrolled = true; } + + var ptrStarted = ptr.bottom + ? (touchesDiff < 0 && scrollTop >= maxScrollTop) || scrollTop > maxScrollTop + : (touchesDiff > 0 && scrollTop <= 0) || scrollTop < 0; + + if (ptrStarted) { + if (e.cancelable) { + e.preventDefault(); + } + + translate = touchesDiff; + if (Math.abs(translate) > triggerDistance) { + translate = triggerDistance + (Math.pow( (Math.abs(translate) - triggerDistance), 0.7 )); + if (ptr.bottom) { translate = -translate; } + } + + if (isMaterial) { + $preloaderEl.transform(("translate3d(0," + translate + "px,0)")) + .find('.ptr-arrow').transform(("rotate(" + ((180 * (Math.abs(touchesDiff) / 66)) + 100) + "deg)")); + } else { + // eslint-disable-next-line + if (ptr.bottom) { + $el.children().transform(("translate3d(0," + translate + "px,0)")); + } else { + $el.transform(("translate3d(0," + translate + "px,0)")); + } + } + + if (Math.abs(translate) > triggerDistance) { + refresh = true; + $el.addClass('ptr-pull-up').removeClass('ptr-pull-down'); + } else { + refresh = false; + $el.removeClass('ptr-pull-up').addClass('ptr-pull-down'); + } + if (!pullStarted) { + $el.trigger('ptr:pullstart'); + ptr.emit('local::pullStart ptrPullStart', $el[0]); + pullStarted = true; + } + $el.trigger('ptr:pullmove', { + event: e, + scrollTop: scrollTop, + translate: translate, + touchesDiff: touchesDiff, + }); + ptr.emit('local::pullMove ptrPullMove', $el[0], { + event: e, + scrollTop: scrollTop, + translate: translate, + touchesDiff: touchesDiff, + }); + } else { + pullStarted = false; + $el.removeClass('ptr-pull-up ptr-pull-down'); + refresh = false; + } + + mousewheelTimeout = setTimeout(handleMouseWheelRelease, 300); + } + + if (!$pageEl.length || !$el.length) { return ptr; } + + $el[0].f7PullToRefresh = ptr; + + // Events + ptr.attachEvents = function attachEvents() { + var passive = Support.passiveListener ? { passive: true } : false; + $el.on(app.touchEvents.start, handleTouchStart, passive); + app.on('touchmove:active', handleTouchMove); + app.on('touchend:passive', handleTouchEnd); + if (ptr.mousewheel && !ptr.bottom) { + $el.on('wheel', handleMouseWheel); + } + }; + ptr.detachEvents = function detachEvents() { + var passive = Support.passiveListener ? { passive: true } : false; + $el.off(app.touchEvents.start, handleTouchStart, passive); + app.off('touchmove:active', handleTouchMove); + app.off('touchend:passive', handleTouchEnd); + if (ptr.mousewheel && !ptr.bottom) { + $el.off('wheel', handleMouseWheel); + } + }; + + // Install Modules + ptr.useModules(); + + // Init + ptr.init(); + + return ptr; + } + + if ( Framework7Class ) PullToRefresh.__proto__ = Framework7Class; + PullToRefresh.prototype = Object.create( Framework7Class && Framework7Class.prototype ); + PullToRefresh.prototype.constructor = PullToRefresh; + + PullToRefresh.prototype.init = function init () { + var ptr = this; + ptr.attachEvents(); + }; + + PullToRefresh.prototype.destroy = function destroy () { + var ptr = this; + ptr.emit('local::beforeDestroy ptrBeforeDestroy', ptr); + ptr.$el.trigger('ptr:beforedestroy'); + delete ptr.el.f7PullToRefresh; + ptr.detachEvents(); + Utils.deleteProps(ptr); + ptr = null; + }; + + return PullToRefresh; + }(Framework7Class)); + + var PullToRefresh$1 = { + name: 'pullToRefresh', + create: function create() { + var app = this; + app.ptr = Utils.extend( + ConstructorMethods({ + defaultSelector: '.ptr-content', + constructor: PullToRefresh, + app: app, + domProp: 'f7PullToRefresh', + }), + { + done: function done(el) { + var ptr = app.ptr.get(el); + if (ptr) { return ptr.done(); } + return undefined; + }, + refresh: function refresh(el) { + var ptr = app.ptr.get(el); + if (ptr) { return ptr.refresh(); } + return undefined; + }, + } + ); + }, + static: { + PullToRefresh: PullToRefresh, + }, + on: { + tabMounted: function tabMounted(tabEl) { + var app = this; + var $tabEl = $(tabEl); + var $ptrEls = $tabEl.find('.ptr-content'); + if ($tabEl.is('.ptr-content')) { $ptrEls.add($tabEl); } + $ptrEls.each(function (index, el) { + app.ptr.create(el); + }); + }, + tabBeforeRemove: function tabBeforeRemove(tabEl) { + var $tabEl = $(tabEl); + var app = this; + var $ptrEls = $tabEl.find('.ptr-content'); + if ($tabEl.is('.ptr-content')) { $ptrEls.add($tabEl); } + $ptrEls.each(function (index, el) { + app.ptr.destroy(el); + }); + }, + pageInit: function pageInit(page) { + var app = this; + page.$el.find('.ptr-content').each(function (index, el) { + app.ptr.create(el); + }); + }, + pageBeforeRemove: function pageBeforeRemove(page) { + var app = this; + page.$el.find('.ptr-content').each(function (index, el) { + app.ptr.destroy(el); + }); + }, + }, + }; + + var Lazy = { + destroy: function destroy(pageEl) { + var $pageEl = $(pageEl).closest('.page'); + if (!$pageEl.length) { return; } + if ($pageEl[0].f7LazyDestroy) { + $pageEl[0].f7LazyDestroy(); + } + }, + create: function create(pageEl) { + var app = this; + var $pageEl = $(pageEl).closest('.page').eq(0); + + // Lazy images + var $lazyLoadImages = $pageEl.find('.lazy'); + if ($lazyLoadImages.length === 0 && !$pageEl.hasClass('lazy')) { return; } + + // Placeholder + var placeholderSrc = app.params.lazy.placeholder; + + if (placeholderSrc !== false) { + $lazyLoadImages.each(function (index, lazyEl) { + if ($(lazyEl).attr('data-src') && !$(lazyEl).attr('src')) { $(lazyEl).attr('src', placeholderSrc); } + }); + } + + // load image + var imagesSequence = []; + var imageIsLoading = false; + + function onImageComplete(lazyEl) { + if (imagesSequence.indexOf(lazyEl) >= 0) { + imagesSequence.splice(imagesSequence.indexOf(lazyEl), 1); + } + imageIsLoading = false; + if (app.params.lazy.sequential && imagesSequence.length > 0) { + imageIsLoading = true; + app.lazy.loadImage(imagesSequence[0], onImageComplete); + } + } + + function observerCallback(entries, observer) { + entries.forEach(function (entry) { + if (entry.isIntersecting) { + if (app.params.lazy.sequential && imageIsLoading) { + if (imagesSequence.indexOf(entry.target) < 0) { imagesSequence.push(entry.target); } + return; + } + // Load image + imageIsLoading = true; + app.lazy.loadImage(entry.target, onImageComplete); + // Detach + observer.unobserve(entry.target); + } + }); + } + if (app.params.lazy.observer && Support.intersectionObserver) { + var observer = $pageEl[0].f7LazyObserver; + if (!observer) { + observer = new win.IntersectionObserver(observerCallback, { + root: $pageEl[0], + }); + } + $lazyLoadImages.each(function (index, el) { + if (el.f7LazyObserverAdded) { return; } + el.f7LazyObserverAdded = true; + observer.observe(el); + }); + if (!$pageEl[0].f7LazyDestroy) { + $pageEl[0].f7LazyDestroy = function () { + observer.disconnect(); + delete $pageEl[0].f7LazyDestroy; + delete $pageEl[0].f7LazyObserver; + }; + } + return; + } + + function lazyHandler() { + app.lazy.load($pageEl, function (lazyEl) { + if (app.params.lazy.sequential && imageIsLoading) { + if (imagesSequence.indexOf(lazyEl) < 0) { imagesSequence.push(lazyEl); } + return; + } + imageIsLoading = true; + app.lazy.loadImage(lazyEl, onImageComplete); + }); + } + + function attachEvents() { + $pageEl[0].f7LazyAttached = true; + $pageEl.on('lazy', lazyHandler); + $pageEl.on('scroll', lazyHandler, true); + $pageEl.find('.tab').on('tab:mounted tab:show', lazyHandler); + app.on('resize', lazyHandler); + } + function detachEvents() { + $pageEl[0].f7LazyAttached = false; + delete $pageEl[0].f7LazyAttached; + $pageEl.off('lazy', lazyHandler); + $pageEl.off('scroll', lazyHandler, true); + $pageEl.find('.tab').off('tab:mounted tab:show', lazyHandler); + app.off('resize', lazyHandler); + } + + // Store detach function + if (!$pageEl[0].f7LazyDestroy) { + $pageEl[0].f7LazyDestroy = detachEvents; + } + + // Attach events + if (!$pageEl[0].f7LazyAttached) { + attachEvents(); + } + + // Run loader on page load/init + lazyHandler(); + }, + isInViewport: function isInViewport(lazyEl) { + var app = this; + var rect = lazyEl.getBoundingClientRect(); + var threshold = app.params.lazy.threshold || 0; + + return ( + rect.top >= (0 - threshold) + && rect.left >= (0 - threshold) + && rect.top <= (app.height + threshold) + && rect.left <= (app.width + threshold) + ); + }, + loadImage: function loadImage(imageEl, callback) { + var app = this; + var $imageEl = $(imageEl); + + var bg = $imageEl.attr('data-background'); + var src = bg || $imageEl.attr('data-src'); + + function onLoad() { + $imageEl.removeClass('lazy').addClass('lazy-loaded'); + if (bg) { + $imageEl.css('background-image', ("url(" + src + ")")); + } else if (src) { + $imageEl.attr('src', src); + } + if (callback) { callback(imageEl); } + $imageEl.trigger('lazy:loaded'); + app.emit('lazyLoaded', $imageEl[0]); + } + + if (!src) { + $imageEl.trigger('lazy:load'); + app.emit('lazyLoad', $imageEl[0]); + onLoad(); + return; + } + function onError() { + $imageEl.removeClass('lazy').addClass('lazy-loaded'); + if (bg) { + $imageEl.css('background-image', ("url(" + (app.params.lazy.placeholder || '') + ")")); + } else { + $imageEl.attr('src', app.params.lazy.placeholder || ''); + } + if (callback) { callback(imageEl); } + $imageEl.trigger('lazy:error'); + app.emit('lazyError', $imageEl[0]); + } + var image = new win.Image(); + image.onload = onLoad; + image.onerror = onError; + image.src = src; + + $imageEl.removeAttr('data-src').removeAttr('data-background'); + + // Add loaded callback and events + $imageEl.trigger('lazy:load'); + app.emit('lazyLoad', $imageEl[0]); + }, + load: function load(pageEl, callback) { + var app = this; + var $pageEl = $(pageEl); + if (!$pageEl.hasClass('page')) { $pageEl = $pageEl.parents('.page').eq(0); } + if ($pageEl.length === 0) { + return; + } + $pageEl.find('.lazy').each(function (index, lazyEl) { + var $lazyEl = $(lazyEl); + if ($lazyEl.parents('.tab:not(.tab-active)').length > 0) { + return; + } + if (app.lazy.isInViewport(lazyEl)) { + if (callback) { callback(lazyEl); } + else { app.lazy.loadImage(lazyEl); } + } + }); + }, + + }; + var Lazy$1 = { + name: 'lazy', + params: { + lazy: { + placeholder: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAAl21bKAAAAA1BMVEXCwsK592mkAAAACklEQVQI12NgAAAAAgAB4iG8MwAAAABJRU5ErkJggg==', + threshold: 0, + sequential: true, + observer: true, + }, + }, + create: function create() { + var app = this; + Utils.extend(app, { + lazy: { + create: Lazy.create.bind(app), + destroy: Lazy.destroy.bind(app), + loadImage: Lazy.loadImage.bind(app), + load: Lazy.load.bind(app), + isInViewport: Lazy.isInViewport.bind(app), + }, + }); + }, + on: { + pageInit: function pageInit(page) { + var app = this; + if (page.$el.find('.lazy').length > 0 || page.$el.hasClass('lazy')) { + app.lazy.create(page.$el); + } + }, + pageAfterIn: function pageAfterIn(page) { + var app = this; + if (app.params.lazy.observer && Support.intersectionObserver) { return; } + if (page.$el.find('.lazy').length > 0 || page.$el.hasClass('lazy')) { + app.lazy.create(page.$el); + } + }, + pageBeforeRemove: function pageBeforeRemove(page) { + var app = this; + if (page.$el.find('.lazy').length > 0 || page.$el.hasClass('lazy')) { + app.lazy.destroy(page.$el); + } + }, + tabMounted: function tabMounted(tabEl) { + var app = this; + var $tabEl = $(tabEl); + if ($tabEl.find('.lazy').length > 0 || $tabEl.hasClass('lazy')) { + app.lazy.create($tabEl); + } + }, + tabBeforeRemove: function tabBeforeRemove(tabEl) { + var app = this; + if (app.params.lazy.observer && Support.intersectionObserver) { return; } + var $tabEl = $(tabEl); + if ($tabEl.find('.lazy').length > 0 || $tabEl.hasClass('lazy')) { + app.lazy.destroy($tabEl); + } + }, + }, + }; + + var DataTable = /*@__PURE__*/(function (Framework7Class) { + function DataTable(app, params) { + if ( params === void 0 ) params = {}; + + Framework7Class.call(this, params, [app]); + + var table = this; + + var defaults = { + + }; + + // Extend defaults with modules params + table.useModulesParams(defaults); + + table.params = Utils.extend(defaults, params); + + // El + var $el = $(table.params.el); + if ($el.length === 0) { return undefined; } + + table.$el = $el; + table.el = $el[0]; + + if (table.$el[0].f7DataTable) { + var instance = table.$el[0].f7DataTable; + table.destroy(); + return instance; + } + + table.$el[0].f7DataTable = table; + + Utils.extend(table, { + collapsible: $el.hasClass('data-table-collapsible'), + // Headers + $headerEl: $el.find('.data-table-header'), + $headerSelectedEl: $el.find('.data-table-header-selected'), + }); + + // Events + function handleChange(e) { + if (e.detail && e.detail.sentByF7DataTable) { + // Scripted event, don't do anything + return; + } + var $inputEl = $(this); + var checked = $inputEl[0].checked; + var columnIndex = $inputEl.parents('td,th').index(); + + if ($inputEl.parents('thead').length > 0) { + if (columnIndex === 0) { + $el + .find('tbody tr')[checked ? 'addClass' : 'removeClass']('data-table-row-selected'); + } + $el + .find(("tbody tr td:nth-child(" + (columnIndex + 1) + ") input")) + .prop('checked', checked) + .trigger('change', { sentByF7DataTable: true }); + $inputEl.prop('indeterminate', false); + } else { + if (columnIndex === 0) { + $inputEl.parents('tr')[checked ? 'addClass' : 'removeClass']('data-table-row-selected'); + } + var checkedRows = $el.find(("tbody .checkbox-cell:nth-child(" + (columnIndex + 1) + ") input[type=\"checkbox\"]:checked")).length; + var totalRows = $el.find('tbody tr').length; + var $headCheckboxEl = $el.find(("thead .checkbox-cell:nth-child(" + (columnIndex + 1) + ") input[type=\"checkbox\"]")); + if (!checked) { + $headCheckboxEl.prop('checked', false); + } else if (checkedRows === totalRows) { + $headCheckboxEl.prop('checked', true).trigger('change', { sentByF7DataTable: true }); + } + $headCheckboxEl.prop('indeterminate', checkedRows > 0 && checkedRows < totalRows); + } + table.checkSelectedHeader(); + } + function handleSortableClick() { + var $cellEl = $(this); + var isActive = $cellEl.hasClass('sortable-cell-active'); + var currentSort = $cellEl.hasClass('sortable-desc') ? 'desc' : 'asc'; + var newSort; + if (isActive) { + newSort = currentSort === 'desc' ? 'asc' : 'desc'; + $cellEl.removeClass('sortable-desc sortable-asc').addClass(("sortable-" + newSort)); + } else { + $el.find('thead .sortable-cell-active').removeClass('sortable-cell-active'); + $cellEl.addClass('sortable-cell-active'); + newSort = currentSort; + } + $cellEl.trigger('datatable:sort', newSort); + table.emit('local::sort dataTableSort', table, newSort); + } + table.attachEvents = function attachEvents() { + table.$el.on('change', '.checkbox-cell input[type="checkbox"]', handleChange); + table.$el.find('thead .sortable-cell').on('click', handleSortableClick); + }; + table.detachEvents = function detachEvents() { + table.$el.off('change', '.checkbox-cell input[type="checkbox"]', handleChange); + table.$el.find('thead .sortable-cell').off('click', handleSortableClick); + }; + + // Install Modules + table.useModules(); + + // Init + table.init(); + + return table; + } + + if ( Framework7Class ) DataTable.__proto__ = Framework7Class; + DataTable.prototype = Object.create( Framework7Class && Framework7Class.prototype ); + DataTable.prototype.constructor = DataTable; + + DataTable.prototype.setCollapsibleLabels = function setCollapsibleLabels () { + var table = this; + if (!table.collapsible) { return; } + table.$el.find('tbody td:not(.checkbox-cell)').each(function (index, el) { + var $el = $(el); + var elIndex = $el.index(); + var collpsibleTitle = $el.attr('data-collapsible-title'); + if (!collpsibleTitle && collpsibleTitle !== '') { + $el.attr('data-collapsible-title', table.$el.find('thead th').eq(elIndex).text()); + } + }); + }; + + DataTable.prototype.checkSelectedHeader = function checkSelectedHeader () { + var table = this; + if (table.$headerEl.length > 0 && table.$headerSelectedEl.length > 0) { + var checkedItems = table.$el.find('tbody .checkbox-cell input:checked').length; + table.$el[checkedItems > 0 ? 'addClass' : 'removeClass']('data-table-has-checked'); + table.$headerSelectedEl.find('.data-table-selected-count').text(checkedItems); + } + }; + + DataTable.prototype.init = function init () { + var table = this; + table.attachEvents(); + table.setCollapsibleLabels(); + table.checkSelectedHeader(); + }; + + DataTable.prototype.destroy = function destroy () { + var table = this; + + table.$el.trigger('datatable:beforedestroy'); + table.emit('local::beforeDestroy dataTableBeforeDestroy', table); + + table.attachEvents(); + + if (table.$el[0]) { + table.$el[0].f7DataTable = null; + delete table.$el[0].f7DataTable; + } + Utils.deleteProps(table); + table = null; + }; + + return DataTable; + }(Framework7Class)); + + var DataTable$1 = { + name: 'dataTable', + static: { + DataTable: DataTable, + }, + create: function create() { + var app = this; + app.dataTable = ConstructorMethods({ + defaultSelector: '.data-table', + constructor: DataTable, + app: app, + domProp: 'f7DataTable', + }); + }, + on: { + tabBeforeRemove: function tabBeforeRemove(tabEl) { + var app = this; + $(tabEl).find('.data-table-init').each(function (index, tableEl) { + app.dataTable.destroy(tableEl); + }); + }, + tabMounted: function tabMounted(tabEl) { + var app = this; + $(tabEl).find('.data-table-init').each(function (index, tableEl) { + app.dataTable.create({ el: tableEl }); + }); + }, + pageBeforeRemove: function pageBeforeRemove(page) { + var app = this; + page.$el.find('.data-table-init').each(function (index, tableEl) { + app.dataTable.destroy(tableEl); + }); + }, + pageInit: function pageInit(page) { + var app = this; + page.$el.find('.data-table-init').each(function (index, tableEl) { + app.dataTable.create({ el: tableEl }); + }); + }, + }, + vnode: { + 'data-table-init': { + insert: function insert(vnode) { + var app = this; + var tableEl = vnode.elm; + app.dataTable.create({ el: tableEl }); + }, + destroy: function destroy(vnode) { + var app = this; + var tableEl = vnode.elm; + app.dataTable.destroy(tableEl); + }, + }, + }, + }; + + var Fab = { + morphOpen: function morphOpen(fabEl, targetEl) { + var app = this; + var $fabEl = $(fabEl); + var $targetEl = $(targetEl); + if ($targetEl.length === 0) { return; } + + $targetEl.transition(0).addClass('fab-morph-target-visible'); + var target = { + width: $targetEl[0].offsetWidth, + height: $targetEl[0].offsetHeight, + offset: $targetEl.offset(), + borderRadius: $targetEl.css('border-radius'), + zIndex: $targetEl.css('z-index'), + }; + var fab = { + width: $fabEl[0].offsetWidth, + height: $fabEl[0].offsetHeight, + offset: $fabEl.offset(), + translateX: Utils.getTranslate($fabEl[0], 'x'), + translateY: Utils.getTranslate($fabEl[0], 'y'), + }; + + $fabEl[0].f7FabMorphData = { + $targetEl: $targetEl, + target: target, + fab: fab, + }; + + var diffX = (fab.offset.left + (fab.width / 2)) + - (target.offset.left + (target.width / 2)) + - fab.translateX; + var diffY = (fab.offset.top + (fab.height / 2)) + - (target.offset.top + (target.height / 2)) + - fab.translateY; + var scaleX = target.width / fab.width; + var scaleY = target.height / fab.height; + + var borderRadius = Math.ceil(parseInt(target.borderRadius, 10) / Math.max(scaleX, scaleY)); + if (borderRadius > 0) { borderRadius += 2; } + + $fabEl[0].f7FabMorphResizeHandler = function resizeHandler() { + $fabEl.transition(0).transform(''); + $targetEl.transition(0); + target.width = $targetEl[0].offsetWidth; + target.height = $targetEl[0].offsetHeight; + target.offset = $targetEl.offset(); + fab.offset = $fabEl.offset(); + + var diffXNew = (fab.offset.left + (fab.width / 2)) + - (target.offset.left + (target.width / 2)) + - fab.translateX; + var diffYNew = (fab.offset.top + (fab.height / 2)) + - (target.offset.top + (target.height / 2)) + - fab.translateY; + var scaleXNew = target.width / fab.width; + var scaleYNew = target.height / fab.height; + + $fabEl.transform(("translate3d(" + (-diffXNew) + "px, " + (-diffYNew) + "px, 0) scale(" + scaleXNew + ", " + scaleYNew + ")")); + }; + + $targetEl + .css('opacity', 0) + .transform(("scale(" + (1 / scaleX) + ", " + (1 / scaleY) + ")")); + $fabEl + .addClass('fab-opened') + .css('z-index', target.zIndex - 1) + .transform(("translate3d(" + (-diffX) + "px, " + (-diffY) + "px, 0)")); + $fabEl.transitionEnd(function () { + $targetEl.transition(''); + Utils.nextFrame(function () { + $targetEl.css('opacity', 1).transform('scale(1,1)'); + $fabEl + .transform(("translate3d(" + (-diffX) + "px, " + (-diffY) + "px, 0) scale(" + scaleX + ", " + scaleY + ")")) + .css('border-radius', (borderRadius + "px")) + .css('box-shadow', 'none') + .css('opacity', '0'); + }); + app.on('resize', $fabEl[0].f7FabMorphResizeHandler); + if ($targetEl.parents('.page-content').length > 0) { + $targetEl.parents('.page-content').on('scroll', $fabEl[0].f7FabMorphResizeHandler); + } + }); + }, + morphClose: function morphClose(fabEl) { + var app = this; + var $fabEl = $(fabEl); + var morphData = $fabEl[0].f7FabMorphData; + if (!morphData) { return; } + var $targetEl = morphData.$targetEl; + var target = morphData.target; + var fab = morphData.fab; + if ($targetEl.length === 0) { return; } + + var diffX = (fab.offset.left + (fab.width / 2)) + - (target.offset.left + (target.width / 2)) + - fab.translateX; + var diffY = (fab.offset.top + (fab.height / 2)) + - (target.offset.top + (target.height / 2)) + - fab.translateY; + var scaleX = target.width / fab.width; + var scaleY = target.height / fab.height; + + app.off('resize', $fabEl[0].f7FabMorphResizeHandler); + if ($targetEl.parents('.page-content').length > 0) { + $targetEl.parents('.page-content').off('scroll', $fabEl[0].f7FabMorphResizeHandler); + } + + $targetEl + .css('opacity', 0) + .transform(("scale(" + (1 / scaleX) + ", " + (1 / scaleY) + ")")); + $fabEl + .transition('') + .css('box-shadow', '') + .css('border-radius', '') + .css('opacity', '1') + .transform(("translate3d(" + (-diffX) + "px, " + (-diffY) + "px, 0)")); + $fabEl.transitionEnd(function () { + $fabEl + .css('z-index', '') + .removeClass('fab-opened') + .transform(''); + Utils.nextFrame(function () { + $fabEl.transitionEnd(function () { + $targetEl + .removeClass('fab-morph-target-visible') + .css('opacity', '') + .transform('') + .transition(''); + }); + }); + }); + }, + open: function open(fabEl, targetEl) { + var app = this; + var $fabEl = $(fabEl).eq(0); + var $buttonsEl = $fabEl.find('.fab-buttons'); + if (!$fabEl.length) { return; } + if ($fabEl.hasClass('fab-opened')) { return; } + if (!$buttonsEl.length && !$fabEl.hasClass('fab-morph')) { return; } + + if (app.fab.openedEl) { + if (app.fab.openedEl === $fabEl[0]) { return; } + app.fab.close(app.fab.openedEl); + } + app.fab.openedEl = $fabEl[0]; + if ($fabEl.hasClass('fab-morph')) { + app.fab.morphOpen($fabEl, targetEl || $fabEl.attr('data-morph-to')); + } else { + $fabEl.addClass('fab-opened'); + } + $fabEl.siblings('.fab-backdrop').addClass('backdrop-in'); + $fabEl.trigger('fab:open'); + }, + close: function close(fabEl) { + if ( fabEl === void 0 ) fabEl = '.fab-opened'; + + var app = this; + var $fabEl = $(fabEl).eq(0); + var $buttonsEl = $fabEl.find('.fab-buttons'); + if (!$fabEl.length) { return; } + if (!$fabEl.hasClass('fab-opened')) { return; } + if (!$buttonsEl.length && !$fabEl.hasClass('fab-morph')) { return; } + app.fab.openedEl = null; + if ($fabEl.hasClass('fab-morph')) { + app.fab.morphClose($fabEl); + } else { + $fabEl.removeClass('fab-opened'); + } + $fabEl.siblings('.fab-backdrop').removeClass('backdrop-in'); + $fabEl.trigger('fab:close'); + }, + toggle: function toggle(fabEl) { + var app = this; + var $fabEl = $(fabEl); + if (!$fabEl.hasClass('fab-opened')) { app.fab.open(fabEl); } + else { app.fab.close(fabEl); } + }, + }; + + var Fab$1 = { + name: 'fab', + create: function create() { + var app = this; + Utils.extend(app, { + fab: { + openedEl: null, + morphOpen: Fab.morphOpen.bind(app), + morphClose: Fab.morphClose.bind(app), + open: Fab.open.bind(app), + close: Fab.close.bind(app), + toggle: Fab.toggle.bind(app), + }, + }); + }, + clicks: { + '.fab > a': function open($clickedEl) { + var app = this; + app.fab.toggle($clickedEl.parents('.fab')); + }, + '.fab-open': function open($clickedEl, data) { + if ( data === void 0 ) data = {}; + + var app = this; + app.fab.open(data.fab); + }, + '.fab-close': function close($clickedEl, data) { + if ( data === void 0 ) data = {}; + + var app = this; + app.fab.close(data.fab); + }, + '.fab-backdrop': function close() { + var app = this; + app.fab.close(); + }, + }, + }; + + var Searchbar = /*@__PURE__*/(function (FrameworkClass) { + function Searchbar(app, params) { + if ( params === void 0 ) params = {}; + + FrameworkClass.call(this, params, [app]); + + var sb = this; + + var defaults = { + el: undefined, + inputEl: undefined, + inputEvents: 'change input compositionend', + disableButton: true, + disableButtonEl: undefined, + backdropEl: undefined, + searchContainer: undefined, // container to search, HTMLElement or CSS selector + searchItem: 'li', // single item selector, CSS selector + searchIn: undefined, // where to search in item, CSS selector + searchGroup: '.list-group', + searchGroupTitle: '.item-divider, .list-group-title', + ignore: '.searchbar-ignore', + foundEl: '.searchbar-found', + notFoundEl: '.searchbar-not-found', + hideOnEnableEl: '.searchbar-hide-on-enable', + hideOnSearchEl: '.searchbar-hide-on-search', + backdrop: undefined, + removeDiacritics: true, + customSearch: false, + hideDividers: true, + hideGroups: true, + disableOnBackdropClick: true, + expandable: false, + inline: false, + }; + + // Extend defaults with modules params + sb.useModulesParams(defaults); + + sb.params = Utils.extend(defaults, params); + + var $el = $(sb.params.el); + if ($el.length === 0) { return sb; } + + if ($el[0].f7Searchbar) { return $el[0].f7Searchbar; } + + $el[0].f7Searchbar = sb; + + var $pageEl; + var $navbarEl = $el.parents('.navbar'); + if ($el.parents('.page').length > 0) { + $pageEl = $el.parents('.page'); + } else if ($navbarEl.length > 0) { + $pageEl = $(app.navbar.getPageByEl($navbarEl[0])); + if (!$pageEl.length) { + var $currentPageEl = $el.parents('.view').find('.page-current'); + if ($currentPageEl[0] && $currentPageEl[0].f7Page && $currentPageEl[0].f7Page.navbarEl === $navbarEl[0]) { + $pageEl = $currentPageEl; + } + } + } + + var $foundEl; + if (params.foundEl) { + $foundEl = $(params.foundEl); + } else if (typeof sb.params.foundEl === 'string' && $pageEl) { + $foundEl = $pageEl.find(sb.params.foundEl); + } + + var $notFoundEl; + if (params.notFoundEl) { + $notFoundEl = $(params.notFoundEl); + } else if (typeof sb.params.notFoundEl === 'string' && $pageEl) { + $notFoundEl = $pageEl.find(sb.params.notFoundEl); + } + + var $hideOnEnableEl; + if (params.hideOnEnableEl) { + $hideOnEnableEl = $(params.hideOnEnableEl); + } else if (typeof sb.params.hideOnEnableEl === 'string' && $pageEl) { + $hideOnEnableEl = $pageEl.find(sb.params.hideOnEnableEl); + } + + var $hideOnSearchEl; + if (params.hideOnSearchEl) { + $hideOnSearchEl = $(params.hideOnSearchEl); + } else if (typeof sb.params.hideOnSearchEl === 'string' && $pageEl) { + $hideOnSearchEl = $pageEl.find(sb.params.hideOnSearchEl); + } + + + var expandable = sb.params.expandable || $el.hasClass('searchbar-expandable'); + var inline = sb.params.inline || $el.hasClass('searchbar-inline'); + + if (typeof sb.params.backdrop === 'undefined') { + if (!inline) { sb.params.backdrop = app.theme !== 'aurora'; } + else { sb.params.backdrop = false; } + } + + var $backdropEl; + if (sb.params.backdrop) { + if (sb.params.backdropEl) { + $backdropEl = $(sb.params.backdropEl); + } else if ($pageEl && $pageEl.length > 0) { + $backdropEl = $pageEl.find('.searchbar-backdrop'); + } else { + $backdropEl = $el.siblings('.searchbar-backdrop'); + } + if ($backdropEl.length === 0) { + $backdropEl = $('
          '); + if ($pageEl && $pageEl.length) { + if ($el.parents($pageEl).length > 0 && $navbarEl && $el.parents($navbarEl).length === 0) { + $backdropEl.insertBefore($el); + } else { + $backdropEl.insertBefore($pageEl.find('.page-content').eq(0)); + } + } else { + $backdropEl.insertBefore($el); + } + } + } + + var $searchContainer; + if (sb.params.searchContainer) { + $searchContainer = $(sb.params.searchContainer); + } + + var $inputEl; + if (sb.params.inputEl) { + $inputEl = $(sb.params.inputEl); + } else { + $inputEl = $el.find('input[type="search"]').eq(0); + } + + var $disableButtonEl; + if (sb.params.disableButton) { + if (sb.params.disableButtonEl) { + $disableButtonEl = $(sb.params.disableButtonEl); + } else { + $disableButtonEl = $el.find('.searchbar-disable-button'); + } + } + + Utils.extend(sb, { + app: app, + view: app.views.get($el.parents('.view')), + $el: $el, + el: $el[0], + $backdropEl: $backdropEl, + backdropEl: $backdropEl && $backdropEl[0], + $searchContainer: $searchContainer, + searchContainer: $searchContainer && $searchContainer[0], + $inputEl: $inputEl, + inputEl: $inputEl[0], + $disableButtonEl: $disableButtonEl, + disableButtonEl: $disableButtonEl && $disableButtonEl[0], + disableButtonHasMargin: false, + $pageEl: $pageEl, + pageEl: $pageEl && $pageEl[0], + $navbarEl: $navbarEl, + navbarEl: $navbarEl && $navbarEl[0], + $foundEl: $foundEl, + foundEl: $foundEl && $foundEl[0], + $notFoundEl: $notFoundEl, + notFoundEl: $notFoundEl && $notFoundEl[0], + $hideOnEnableEl: $hideOnEnableEl, + hideOnEnableEl: $hideOnEnableEl && $hideOnEnableEl[0], + $hideOnSearchEl: $hideOnSearchEl, + hideOnSearchEl: $hideOnSearchEl && $hideOnSearchEl[0], + previousQuery: '', + query: '', + isVirtualList: $searchContainer && $searchContainer.hasClass('virtual-list'), + virtualList: undefined, + enabled: false, + expandable: expandable, + inline: inline, + }); + + // Events + function preventSubmit(e) { + e.preventDefault(); + } + function onInputFocus(e) { + sb.enable(e); + sb.$el.addClass('searchbar-focused'); + } + function onInputBlur() { + sb.$el.removeClass('searchbar-focused'); + if (app.theme === 'aurora' && (!$disableButtonEl || !$disableButtonEl.length || !sb.params.disableButton) && !sb.query) { + sb.disable(); + } + } + function onInputChange() { + var value = sb.$inputEl.val().trim(); + if ( + ( + (sb.$searchContainer && sb.$searchContainer.length > 0) + && (sb.params.searchIn || sb.isVirtualList || sb.params.searchIn === sb.params.searchItem) + ) + || sb.params.customSearch + ) { + sb.search(value, true); + } + } + function onInputClear(e, previousValue) { + sb.$el.trigger('searchbar:clear', previousValue); + sb.emit('local::clear searchbarClear', sb, previousValue); + } + function disableOnClick(e) { + sb.disable(e); + } + function onPageBeforeOut() { + if (!sb || (sb && !sb.$el)) { return; } + if (sb.enabled) { + sb.$el.removeClass('searchbar-enabled'); + if (sb.expandable) { + sb.$el.parents('.navbar').removeClass('with-searchbar-expandable-enabled with-searchbar-expandable-enabled-no-transition'); + } + } + } + function onPageBeforeIn() { + if (!sb || (sb && !sb.$el)) { return; } + if (sb.enabled) { + sb.$el.addClass('searchbar-enabled'); + if (sb.expandable) { + sb.$el.parents('.navbar').addClass('with-searchbar-expandable-enabled-no-transition'); + } + } + } + sb.attachEvents = function attachEvents() { + $el.on('submit', preventSubmit); + if (sb.params.disableButton) { + sb.$disableButtonEl.on('click', disableOnClick); + } + if (sb.params.disableOnBackdropClick && sb.$backdropEl) { + sb.$backdropEl.on('click', disableOnClick); + } + if (sb.expandable && app.theme === 'ios' && sb.view && $navbarEl.length && sb.$pageEl) { + sb.$pageEl.on('page:beforeout', onPageBeforeOut); + sb.$pageEl.on('page:beforein', onPageBeforeIn); + } + sb.$inputEl.on('focus', onInputFocus); + sb.$inputEl.on('blur', onInputBlur); + sb.$inputEl.on(sb.params.inputEvents, onInputChange); + sb.$inputEl.on('input:clear', onInputClear); + }; + sb.detachEvents = function detachEvents() { + $el.off('submit', preventSubmit); + if (sb.params.disableButton) { + sb.$disableButtonEl.off('click', disableOnClick); + } + if (sb.params.disableOnBackdropClick && sb.$backdropEl) { + sb.$backdropEl.off('click', disableOnClick); + } + if (sb.expandable && app.theme === 'ios' && sb.view && $navbarEl.length && sb.$pageEl) { + sb.$pageEl.off('page:beforeout', onPageBeforeOut); + sb.$pageEl.off('page:beforein', onPageBeforeIn); + } + sb.$inputEl.off('focus', onInputFocus); + sb.$inputEl.off('blur', onInputBlur); + sb.$inputEl.off(sb.params.inputEvents, onInputChange); + sb.$inputEl.off('input:clear', onInputClear); + }; + + // Install Modules + sb.useModules(); + + // Init + sb.init(); + + return sb; + } + + if ( FrameworkClass ) Searchbar.__proto__ = FrameworkClass; + Searchbar.prototype = Object.create( FrameworkClass && FrameworkClass.prototype ); + Searchbar.prototype.constructor = Searchbar; + + Searchbar.prototype.clear = function clear (e) { + var sb = this; + if (!sb.query && e && $(e.target).hasClass('searchbar-clear')) { + sb.disable(); + return sb; + } + var previousQuery = sb.value; + sb.$inputEl.val('').trigger('change').focus(); + sb.$el.trigger('searchbar:clear', previousQuery); + sb.emit('local::clear searchbarClear', sb, previousQuery); + return sb; + }; + + Searchbar.prototype.setDisableButtonMargin = function setDisableButtonMargin () { + var sb = this; + if (sb.expandable) { return; } + var app = sb.app; + sb.$disableButtonEl.transition(0).show(); + sb.$disableButtonEl.css(("margin-" + (app.rtl ? 'left' : 'right')), ((-sb.disableButtonEl.offsetWidth) + "px")); + /* eslint no-underscore-dangle: ["error", { "allow": ["_clientLeft"] }] */ + sb._clientLeft = sb.$disableButtonEl[0].clientLeft; + sb.$disableButtonEl.transition(''); + sb.disableButtonHasMargin = true; + }; + + Searchbar.prototype.enable = function enable (setFocus) { + var sb = this; + if (sb.enabled) { return sb; } + var app = sb.app; + sb.enabled = true; + function enable() { + if (sb.$backdropEl && ((sb.$searchContainer && sb.$searchContainer.length) || sb.params.customSearch) && !sb.$el.hasClass('searchbar-enabled') && !sb.query) { + sb.backdropShow(); + } + sb.$el.addClass('searchbar-enabled'); + if (!sb.$disableButtonEl || (sb.$disableButtonEl && sb.$disableButtonEl.length === 0)) { + sb.$el.addClass('searchbar-enabled-no-disable-button'); + } + if (!sb.expandable && sb.$disableButtonEl && sb.$disableButtonEl.length > 0 && app.theme !== 'md') { + if (!sb.disableButtonHasMargin) { + sb.setDisableButtonMargin(); + } + sb.$disableButtonEl.css(("margin-" + (app.rtl ? 'left' : 'right')), '0px'); + } + if (sb.expandable) { + var $navbarEl = sb.$el.parents('.navbar'); + if ($navbarEl.hasClass('navbar-large') && sb.$pageEl) { + var $pageContentEl = sb.$pageEl.find('.page-content'); + var $titleLargeEl = $navbarEl.find('.title-large'); + $pageContentEl.addClass('with-searchbar-expandable-enabled'); + if ($navbarEl.hasClass('navbar-large') && $navbarEl.hasClass('navbar-large-collapsed') && $titleLargeEl.length && $pageContentEl.length) { + $pageContentEl.transition(0); + $pageContentEl[0].scrollTop -= $titleLargeEl[0].offsetHeight; + setTimeout(function () { + $pageContentEl.transition(''); + }, 200); + } + } + if (app.theme === 'md' && $navbarEl.length) { + $navbarEl.addClass('with-searchbar-expandable-enabled'); + } else { + $navbarEl.addClass('with-searchbar-expandable-enabled'); + if ($navbarEl.hasClass('navbar-large')) { + $navbarEl.addClass('navbar-large-collapsed'); + } + } + } + if (sb.$hideOnEnableEl) { sb.$hideOnEnableEl.addClass('hidden-by-searchbar'); } + sb.$el.trigger('searchbar:enable'); + sb.emit('local::enable searchbarEnable', sb); + } + var needsFocus = false; + if (setFocus === true) { + if (doc.activeElement !== sb.inputEl) { + needsFocus = true; + } + } + var isIos = app.device.ios && app.theme === 'ios'; + if (isIos) { + if (sb.expandable) { + if (needsFocus) { sb.$inputEl.focus(); } + enable(); + } else { + if (needsFocus) { sb.$inputEl.focus(); } + if (setFocus && (setFocus.type === 'focus' || setFocus === true)) { + Utils.nextTick(function () { + enable(); + }, 400); + } else { + enable(); + } + } + } else { + if (needsFocus) { sb.$inputEl.focus(); } + if (app.theme === 'md' && sb.expandable) { + sb.$el.parents('.page, .view, .navbar-inner, .navbar').scrollLeft(app.rtl ? 100 : 0); + } + enable(); + } + return sb; + }; + + Searchbar.prototype.disable = function disable () { + var sb = this; + if (!sb.enabled) { return sb; } + var app = sb.app; + sb.$inputEl.val('').trigger('change'); + sb.$el.removeClass('searchbar-enabled searchbar-focused searchbar-enabled-no-disable-button'); + if (sb.expandable) { + var $navbarEl = sb.$el.parents('.navbar'); + var $pageContentEl = sb.$pageEl && sb.$pageEl.find('.page-content'); + + if ($navbarEl.hasClass('navbar-large') && $pageContentEl.length) { + var $titleLargeEl = $navbarEl.find('.title-large'); + sb.$el.transitionEnd(function () { + $pageContentEl.removeClass('with-searchbar-expandable-closing'); + }); + if ($navbarEl.hasClass('navbar-large') && $navbarEl.hasClass('navbar-large-collapsed') && $titleLargeEl.length) { + var scrollTop = $pageContentEl[0].scrollTop; + var titleLargeHeight = $titleLargeEl[0].offsetHeight; + if (scrollTop > titleLargeHeight) { + $pageContentEl.transition(0); + $pageContentEl[0].scrollTop = scrollTop + titleLargeHeight; + setTimeout(function () { + $pageContentEl.transition(''); + }, 200); + } + } + $pageContentEl.removeClass('with-searchbar-expandable-enabled').addClass('with-searchbar-expandable-closing'); + } + if (app.theme === 'md' && $navbarEl.length) { + $navbarEl + .removeClass('with-searchbar-expandable-enabled with-searchbar-expandable-enabled-no-transition') + .addClass('with-searchbar-expandable-closing'); + sb.$el.transitionEnd(function () { + $navbarEl.removeClass('with-searchbar-expandable-closing'); + }); + } else { + $navbarEl + .removeClass('with-searchbar-expandable-enabled with-searchbar-expandable-enabled-no-transition') + .addClass('with-searchbar-expandable-closing'); + sb.$el.transitionEnd(function () { + $navbarEl.removeClass('with-searchbar-expandable-closing'); + }); + if (sb.$pageEl) { + sb.$pageEl.find('.page-content').trigger('scroll'); + } + } + } + if (!sb.expandable && sb.$disableButtonEl && sb.$disableButtonEl.length > 0 && app.theme !== 'md') { + sb.$disableButtonEl.css(("margin-" + (app.rtl ? 'left' : 'right')), ((-sb.disableButtonEl.offsetWidth) + "px")); + } + if (sb.$backdropEl && ((sb.$searchContainer && sb.$searchContainer.length) || sb.params.customSearch)) { + sb.backdropHide(); + } + + sb.enabled = false; + + sb.$inputEl.blur(); + + if (sb.$hideOnEnableEl) { sb.$hideOnEnableEl.removeClass('hidden-by-searchbar'); } + + sb.$el.trigger('searchbar:disable'); + sb.emit('local::disable searchbarDisable', sb); + return sb; + }; + + Searchbar.prototype.toggle = function toggle () { + var sb = this; + if (sb.enabled) { sb.disable(); } + else { sb.enable(true); } + return sb; + }; + + Searchbar.prototype.backdropShow = function backdropShow () { + var sb = this; + if (sb.$backdropEl) { + sb.$backdropEl.addClass('searchbar-backdrop-in'); + } + return sb; + }; + + Searchbar.prototype.backdropHide = function backdropHide () { + var sb = this; + if (sb.$backdropEl) { + sb.$backdropEl.removeClass('searchbar-backdrop-in'); + } + return sb; + }; + + Searchbar.prototype.search = function search (query, internal) { + var sb = this; + sb.previousQuery = sb.query || ''; + if (query === sb.previousQuery) { return sb; } + + if (!internal) { + if (!sb.enabled) { + sb.enable(); + } + sb.$inputEl.val(query); + sb.$inputEl.trigger('input'); + } + sb.query = query; + sb.value = query; + + var $searchContainer = sb.$searchContainer; + var $el = sb.$el; + var $foundEl = sb.$foundEl; + var $notFoundEl = sb.$notFoundEl; + var $hideOnSearchEl = sb.$hideOnSearchEl; + var isVirtualList = sb.isVirtualList; + + // Hide on search element + if (query.length > 0 && $hideOnSearchEl) { + $hideOnSearchEl.addClass('hidden-by-searchbar'); + } else if ($hideOnSearchEl) { + $hideOnSearchEl.removeClass('hidden-by-searchbar'); + } + // Add active/inactive classes on overlay + if ( + ($searchContainer && $searchContainer.length && $el.hasClass('searchbar-enabled')) + || (sb.params.customSearch && $el.hasClass('searchbar-enabled')) + ) { + if (query.length === 0) { + sb.backdropShow(); + } else { + sb.backdropHide(); + } + } + + if (sb.params.customSearch) { + $el.trigger('searchbar:search', { query: query, previousQuery: sb.previousQuery }); + sb.emit('local::search searchbarSearch', sb, query, sb.previousQuery); + return sb; + } + + var foundItems = []; + var vlQuery; + if (isVirtualList) { + sb.virtualList = $searchContainer[0].f7VirtualList; + if (query.trim() === '') { + sb.virtualList.resetFilter(); + if ($notFoundEl) { $notFoundEl.hide(); } + if ($foundEl) { $foundEl.show(); } + $el.trigger('searchbar:search', { query: query, previousQuery: sb.previousQuery }); + sb.emit('local::search searchbarSearch', sb, query, sb.previousQuery); + return sb; + } + vlQuery = sb.params.removeDiacritics ? Utils.removeDiacritics(query) : query; + if (sb.virtualList.params.searchAll) { + foundItems = sb.virtualList.params.searchAll(vlQuery, sb.virtualList.items) || []; + } else if (sb.virtualList.params.searchByItem) { + for (var i = 0; i < sb.virtualList.items.length; i += 1) { + if (sb.virtualList.params.searchByItem(vlQuery, sb.virtualList.params.items[i], i)) { + foundItems.push(i); + } + } + } + } else { + var values; + if (sb.params.removeDiacritics) { values = Utils.removeDiacritics(query.trim().toLowerCase()).split(' '); } + else { + values = query.trim().toLowerCase().split(' '); + } + $searchContainer.find(sb.params.searchItem).removeClass('hidden-by-searchbar').each(function (itemIndex, itemEl) { + var $itemEl = $(itemEl); + var compareWithText = []; + var $searchIn = sb.params.searchIn ? $itemEl.find(sb.params.searchIn) : $itemEl; + if (sb.params.searchIn === sb.params.searchItem) { + $searchIn = $itemEl; + } + $searchIn.each(function (searchInIndex, searchInEl) { + var itemText = $(searchInEl).text().trim().toLowerCase(); + if (sb.params.removeDiacritics) { itemText = Utils.removeDiacritics(itemText); } + compareWithText.push(itemText); + }); + compareWithText = compareWithText.join(' '); + var wordsMatch = 0; + for (var i = 0; i < values.length; i += 1) { + if (compareWithText.indexOf(values[i]) >= 0) { wordsMatch += 1; } + } + if (wordsMatch !== values.length && !(sb.params.ignore && $itemEl.is(sb.params.ignore))) { + $itemEl.addClass('hidden-by-searchbar'); + } else { + foundItems.push($itemEl[0]); + } + }); + + if (sb.params.hideDividers) { + $searchContainer.find(sb.params.searchGroupTitle).each(function (titleIndex, titleEl) { + var $titleEl = $(titleEl); + var $nextElements = $titleEl.nextAll(sb.params.searchItem); + var hide = true; + for (var i = 0; i < $nextElements.length; i += 1) { + var $nextEl = $nextElements.eq(i); + if ($nextEl.is(sb.params.searchGroupTitle)) { break; } + if (!$nextEl.hasClass('hidden-by-searchbar')) { + hide = false; + } + } + var ignore = sb.params.ignore && $titleEl.is(sb.params.ignore); + if (hide && !ignore) { $titleEl.addClass('hidden-by-searchbar'); } + else { $titleEl.removeClass('hidden-by-searchbar'); } + }); + } + if (sb.params.hideGroups) { + $searchContainer.find(sb.params.searchGroup).each(function (groupIndex, groupEl) { + var $groupEl = $(groupEl); + var ignore = sb.params.ignore && $groupEl.is(sb.params.ignore); + // eslint-disable-next-line + var notHidden = $groupEl.find(sb.params.searchItem).filter(function (index, el) { + return !$(el).hasClass('hidden-by-searchbar'); + }); + if (notHidden.length === 0 && !ignore) { + $groupEl.addClass('hidden-by-searchbar'); + } else { + $groupEl.removeClass('hidden-by-searchbar'); + } + }); + } + } + + if (foundItems.length === 0) { + if ($notFoundEl) { $notFoundEl.show(); } + if ($foundEl) { $foundEl.hide(); } + } else { + if ($notFoundEl) { $notFoundEl.hide(); } + if ($foundEl) { $foundEl.show(); } + } + if (isVirtualList && sb.virtualList) { + sb.virtualList.filterItems(foundItems); + } + + $el.trigger('searchbar:search', { query: query, previousQuery: sb.previousQuery, foundItems: foundItems }); + sb.emit('local::search searchbarSearch', sb, query, sb.previousQuery, foundItems); + + return sb; + }; + + Searchbar.prototype.init = function init () { + var sb = this; + if (sb.expandable && sb.$el) { sb.$el.addClass('searchbar-expandable'); } + if (sb.inline && sb.$el) { sb.$el.addClass('searchbar-inline'); } + sb.attachEvents(); + }; + + Searchbar.prototype.destroy = function destroy () { + var sb = this; + sb.emit('local::beforeDestroy searchbarBeforeDestroy', sb); + sb.$el.trigger('searchbar:beforedestroy'); + sb.detachEvents(); + if (sb.$el[0]) { + sb.$el[0].f7Searchbar = null; + delete sb.$el[0].f7Searchbar; + } + Utils.deleteProps(sb); + }; + + return Searchbar; + }(Framework7Class)); + + var Searchbar$1 = { + name: 'searchbar', + static: { + Searchbar: Searchbar, + }, + create: function create() { + var app = this; + app.searchbar = ConstructorMethods({ + defaultSelector: '.searchbar', + constructor: Searchbar, + app: app, + domProp: 'f7Searchbar', + addMethods: 'clear enable disable toggle search'.split(' '), + }); + }, + on: { + tabMounted: function tabMounted(tabEl) { + var app = this; + $(tabEl).find('.searchbar-init').each(function (index, searchbarEl) { + var $searchbarEl = $(searchbarEl); + app.searchbar.create(Utils.extend($searchbarEl.dataset(), { el: searchbarEl })); + }); + }, + tabBeforeRemove: function tabBeforeRemove(tabEl) { + $(tabEl).find('.searchbar-init').each(function (index, searchbarEl) { + if (searchbarEl.f7Searchbar && searchbarEl.f7Searchbar.destroy) { + searchbarEl.f7Searchbar.destroy(); + } + }); + }, + pageInit: function pageInit(page) { + var app = this; + page.$el.find('.searchbar-init').each(function (index, searchbarEl) { + var $searchbarEl = $(searchbarEl); + app.searchbar.create(Utils.extend($searchbarEl.dataset(), { el: searchbarEl })); + }); + if (app.theme === 'ios' && page.view && page.view.router.dynamicNavbar && page.$navbarEl && page.$navbarEl.length > 0) { + page.$navbarEl.find('.searchbar-init').each(function (index, searchbarEl) { + var $searchbarEl = $(searchbarEl); + app.searchbar.create(Utils.extend($searchbarEl.dataset(), { el: searchbarEl })); + }); + } + }, + pageBeforeRemove: function pageBeforeRemove(page) { + var app = this; + page.$el.find('.searchbar-init').each(function (index, searchbarEl) { + if (searchbarEl.f7Searchbar && searchbarEl.f7Searchbar.destroy) { + searchbarEl.f7Searchbar.destroy(); + } + }); + if (app.theme === 'ios' && page.view && page.view.router.dynamicNavbar && page.$navbarEl && page.$navbarEl.length > 0) { + page.$navbarEl.find('.searchbar-init').each(function (index, searchbarEl) { + if (searchbarEl.f7Searchbar && searchbarEl.f7Searchbar.destroy) { + searchbarEl.f7Searchbar.destroy(); + } + }); + } + }, + }, + clicks: { + '.searchbar-clear': function clear($clickedEl, data) { + if ( data === void 0 ) data = {}; + + var app = this; + var sb = app.searchbar.get(data.searchbar); + if (sb) { sb.clear(); } + }, + '.searchbar-enable': function enable($clickedEl, data) { + if ( data === void 0 ) data = {}; + + var app = this; + var sb = app.searchbar.get(data.searchbar); + if (sb) { sb.enable(true); } + }, + '.searchbar-disable': function disable($clickedEl, data) { + if ( data === void 0 ) data = {}; + + var app = this; + var sb = app.searchbar.get(data.searchbar); + if (sb) { sb.disable(); } + }, + '.searchbar-toggle': function toggle($clickedEl, data) { + if ( data === void 0 ) data = {}; + + var app = this; + var sb = app.searchbar.get(data.searchbar); + if (sb) { sb.toggle(); } + }, + }, + vnode: { + 'searchbar-init': { + insert: function insert(vnode) { + var app = this; + var searchbarEl = vnode.elm; + var $searchbarEl = $(searchbarEl); + app.searchbar.create(Utils.extend($searchbarEl.dataset(), { el: searchbarEl })); + }, + destroy: function destroy(vnode) { + var searchbarEl = vnode.elm; + if (searchbarEl.f7Searchbar && searchbarEl.f7Searchbar.destroy) { + searchbarEl.f7Searchbar.destroy(); + } + }, + }, + }, + }; + + var Messages = /*@__PURE__*/(function (Framework7Class) { + function Messages(app, params) { + if ( params === void 0 ) params = {}; + + Framework7Class.call(this, params, [app]); + + var m = this; + + var defaults = { + autoLayout: true, + messages: [], + newMessagesFirst: false, + scrollMessages: true, + scrollMessagesOnEdge: true, + firstMessageRule: undefined, + lastMessageRule: undefined, + tailMessageRule: undefined, + sameNameMessageRule: undefined, + sameHeaderMessageRule: undefined, + sameFooterMessageRule: undefined, + sameAvatarMessageRule: undefined, + customClassMessageRule: undefined, + renderMessage: undefined, + }; + + // Extend defaults with modules params + m.useModulesParams(defaults); + + m.params = Utils.extend(defaults, params); + + var $el = $(params.el).eq(0); + if ($el.length === 0) { return m; } + + if ($el[0].f7Messages) { return $el[0].f7Messages; } + + $el[0].f7Messages = m; + + var $pageContentEl = $el.closest('.page-content').eq(0); + + Utils.extend(m, { + messages: m.params.messages, + $el: $el, + el: $el[0], + $pageContentEl: $pageContentEl, + pageContentEl: $pageContentEl[0], + + }); + // Install Modules + m.useModules(); + + // Init + m.init(); + + return m; + } + + if ( Framework7Class ) Messages.__proto__ = Framework7Class; + Messages.prototype = Object.create( Framework7Class && Framework7Class.prototype ); + Messages.prototype.constructor = Messages; + // eslint-disable-next-line + Messages.prototype.getMessageData = function getMessageData (messageEl) { + var $messageEl = $(messageEl); + var data = { + name: $messageEl.find('.message-name').html(), + header: $messageEl.find('.message-header').html(), + textHeader: $messageEl.find('.message-text-header').html(), + textFooter: $messageEl.find('.message-text-footer').html(), + footer: $messageEl.find('.message-footer').html(), + isTitle: $messageEl.hasClass('messages-title'), + type: $messageEl.hasClass('message-sent') ? 'sent' : 'received', + text: $messageEl.find('.message-text').html(), + image: $messageEl.find('.message-image').html(), + imageSrc: $messageEl.find('.message-image img').attr('src'), + typing: $messageEl.hasClass('message-typing'), + }; + if (data.isTitle) { + data.text = $messageEl.html(); + } + if (data.text && data.textHeader) { + data.text = data.text.replace(("
          " + (data.textHeader) + "
          "), ''); + } + if (data.text && data.textFooter) { + data.text = data.text.replace(("
          " + (data.textFooter) + "
          "), ''); + } + var avatar = $messageEl.find('.message-avatar').css('background-image'); + if (avatar === 'none' || avatar === '') { avatar = undefined; } + if (avatar && typeof avatar === 'string') { + avatar = avatar.replace('url(', '').replace(')', '').replace(/"/g, '').replace(/'/g, ''); + } else { + avatar = undefined; + } + data.avatar = avatar; + + return data; + }; + + Messages.prototype.getMessagesData = function getMessagesData () { + var m = this; + var data = []; + m.$el.find('.message, .messages-title').each(function (index, messageEl) { + data.push(m.getMessageData(messageEl)); + }); + return data; + }; + + Messages.prototype.renderMessage = function renderMessage (messageToRender) { + var m = this; + var message = Utils.extend({ + type: 'sent', + attrs: {}, + }, messageToRender); + if (m.params.renderMessage) { + return m.params.renderMessage.call(m, message); + } + if (message.isTitle) { + return ("
          " + (message.text) + "
          "); + } + var attrs = Object.keys(message.attrs).map(function (attr) { return (attr + "=\"" + (message.attrs[attr]) + "\""); }).join(' '); + return ("\n
          \n " + (message.avatar ? ("\n
          \n ") : '') + "\n
          \n " + (message.name ? ("
          " + (message.name) + "
          ") : '') + "\n " + (message.header ? ("
          " + (message.header) + "
          ") : '') + "\n
          \n " + (message.textHeader ? ("
          " + (message.textHeader) + "
          ") : '') + "\n " + (message.image ? ("
          " + (message.image) + "
          ") : '') + "\n " + (message.imageSrc && !message.image ? ("
          ") : '') + "\n " + (message.text || message.isTyping ? ("
          " + (message.text || '') + (message.isTyping ? '
          ' : '') + "
          ") : '') + "\n " + (message.textFooter ? ("
          " + (message.textFooter) + "
          ") : '') + "\n
          \n " + (message.footer ? ("
          " + (message.footer) + "
          ") : '') + "\n
          \n
          \n "); + }; + + Messages.prototype.renderMessages = function renderMessages (messagesToRender, method) { + if ( messagesToRender === void 0 ) messagesToRender = this.messages; + if ( method === void 0 ) method = this.params.newMessagesFirst ? 'prepend' : 'append'; + + var m = this; + var html = messagesToRender.map(function (message) { return m.renderMessage(message); }).join(''); + m.$el[method](html); + }; + + Messages.prototype.isFirstMessage = function isFirstMessage () { + var ref; + + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + var m = this; + if (m.params.firstMessageRule) { return (ref = m.params).firstMessageRule.apply(ref, args); } + return false; + }; + + Messages.prototype.isLastMessage = function isLastMessage () { + var ref; + + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + var m = this; + if (m.params.lastMessageRule) { return (ref = m.params).lastMessageRule.apply(ref, args); } + return false; + }; + + Messages.prototype.isTailMessage = function isTailMessage () { + var ref; + + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + var m = this; + if (m.params.tailMessageRule) { return (ref = m.params).tailMessageRule.apply(ref, args); } + return false; + }; + + Messages.prototype.isSameNameMessage = function isSameNameMessage () { + var ref; + + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + var m = this; + if (m.params.sameNameMessageRule) { return (ref = m.params).sameNameMessageRule.apply(ref, args); } + return false; + }; + + Messages.prototype.isSameHeaderMessage = function isSameHeaderMessage () { + var ref; + + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + var m = this; + if (m.params.sameHeaderMessageRule) { return (ref = m.params).sameHeaderMessageRule.apply(ref, args); } + return false; + }; + + Messages.prototype.isSameFooterMessage = function isSameFooterMessage () { + var ref; + + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + var m = this; + if (m.params.sameFooterMessageRule) { return (ref = m.params).sameFooterMessageRule.apply(ref, args); } + return false; + }; + + Messages.prototype.isSameAvatarMessage = function isSameAvatarMessage () { + var ref; + + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + var m = this; + if (m.params.sameAvatarMessageRule) { return (ref = m.params).sameAvatarMessageRule.apply(ref, args); } + return false; + }; + + Messages.prototype.isCustomClassMessage = function isCustomClassMessage () { + var ref; + + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + var m = this; + if (m.params.customClassMessageRule) { return (ref = m.params).customClassMessageRule.apply(ref, args); } + return undefined; + }; + + Messages.prototype.layout = function layout () { + var m = this; + m.$el.find('.message, .messages-title').each(function (index, messageEl) { + var $messageEl = $(messageEl); + if (!m.messages) { + m.messages = m.getMessagesData(); + } + var classes = []; + var message = m.messages[index]; + var previousMessage = m.messages[index - 1]; + var nextMessage = m.messages[index + 1]; + if (m.isFirstMessage(message, previousMessage, nextMessage)) { + classes.push('message-first'); + } + if (m.isLastMessage(message, previousMessage, nextMessage)) { + classes.push('message-last'); + } + if (m.isTailMessage(message, previousMessage, nextMessage)) { + classes.push('message-tail'); + } + if (m.isSameNameMessage(message, previousMessage, nextMessage)) { + classes.push('message-same-name'); + } + if (m.isSameHeaderMessage(message, previousMessage, nextMessage)) { + classes.push('message-same-header'); + } + if (m.isSameFooterMessage(message, previousMessage, nextMessage)) { + classes.push('message-same-footer'); + } + if (m.isSameAvatarMessage(message, previousMessage, nextMessage)) { + classes.push('message-same-avatar'); + } + var customMessageClasses = m.isCustomClassMessage(message, previousMessage, nextMessage); + if (customMessageClasses && customMessageClasses.length) { + if (typeof customMessageClasses === 'string') { + customMessageClasses = customMessageClasses.split(' '); + } + customMessageClasses.forEach(function (customClass) { + classes.push(customClass); + }); + } + $messageEl.removeClass('message-first message-last message-tail message-same-name message-same-header message-same-footer message-same-avatar'); + classes.forEach(function (className) { + $messageEl.addClass(className); + }); + }); + }; + + Messages.prototype.clear = function clear () { + var m = this; + m.messages = []; + m.$el.html(''); + }; + + Messages.prototype.removeMessage = function removeMessage (messageToRemove, layout) { + if ( layout === void 0 ) layout = true; + + var m = this; + // Index or El + var index; + var $el; + if (typeof messageToRemove === 'number') { + index = messageToRemove; + $el = m.$el.find('.message, .messages-title').eq(index); + } else if (m.messages && m.messages.indexOf(messageToRemove) >= 0) { + index = m.messages.indexOf(messageToRemove); + $el = m.$el.children().eq(index); + } else { + $el = $(messageToRemove); + index = $el.index(); + } + if ($el.length === 0) { + return m; + } + $el.remove(); + m.messages.splice(index, 1); + if (m.params.autoLayout && layout) { m.layout(); } + return m; + }; + + Messages.prototype.removeMessages = function removeMessages (messagesToRemove, layout) { + if ( layout === void 0 ) layout = true; + + var m = this; + if (Array.isArray(messagesToRemove)) { + var messagesToRemoveEls = []; + messagesToRemove.forEach(function (messageToRemoveIndex) { + messagesToRemoveEls.push(m.$el.find('.message, .messages-title').eq(messageToRemoveIndex)); + }); + messagesToRemoveEls.forEach(function (messageToRemove) { + m.removeMessage(messageToRemove, false); + }); + } else { + $(messagesToRemove).each(function (index, messageToRemove) { + m.removeMessage(messageToRemove, false); + }); + } + if (m.params.autoLayout && layout) { m.layout(); } + return m; + }; + + Messages.prototype.addMessage = function addMessage () { + var assign, assign$1; + + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + var m = this; + var messageToAdd; + var animate; + var method; + if (typeof args[1] === 'boolean') { + (assign = args, messageToAdd = assign[0], animate = assign[1], method = assign[2]); + } else { + (assign$1 = args, messageToAdd = assign$1[0], method = assign$1[1], animate = assign$1[2]); + } + if (typeof animate === 'undefined') { + animate = true; + } + if (typeof method === 'undefined') { + method = m.params.newMessagesFirst ? 'prepend' : 'append'; + } + + return m.addMessages([messageToAdd], animate, method); + }; + + Messages.prototype.addMessages = function addMessages () { + var assign, assign$1; + + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + var m = this; + var messagesToAdd; + var animate; + var method; + if (typeof args[1] === 'boolean') { + (assign = args, messagesToAdd = assign[0], animate = assign[1], method = assign[2]); + } else { + (assign$1 = args, messagesToAdd = assign$1[0], method = assign$1[1], animate = assign$1[2]); + } + if (typeof animate === 'undefined') { + animate = true; + } + if (typeof method === 'undefined') { + method = m.params.newMessagesFirst ? 'prepend' : 'append'; + } + + // Define scroll positions before new messages added + var scrollHeightBefore = m.pageContentEl.scrollHeight; + var heightBefore = m.pageContentEl.offsetHeight; + var scrollBefore = m.pageContentEl.scrollTop; + + // Add message to DOM and data + var messagesHTML = ''; + var typingMessage = m.messages.filter(function (el) { return el.isTyping; })[0]; + messagesToAdd.forEach(function (messageToAdd) { + if (typingMessage) { + if (method === 'append') { + m.messages.splice(m.messages.indexOf(typingMessage), 0, messageToAdd); + } else { + m.messages.splice(m.messages.indexOf(typingMessage) + 1, 0, messageToAdd); + } + } else { + m.messages[method === 'append' ? 'push' : 'unshift'](messageToAdd); + } + messagesHTML += m.renderMessage(messageToAdd); + }); + var $messagesEls = $(messagesHTML); + if (animate) { + if (method === 'append' && !m.params.newMessagesFirst) { + $messagesEls.addClass('message-appear-from-bottom'); + } + if (method === 'prepend' && m.params.newMessagesFirst) { + $messagesEls.addClass('message-appear-from-top'); + } + } + if (typingMessage) { + if (method === 'append') { + $messagesEls.insertBefore(m.$el.find('.message-typing')); + } else { + $messagesEls.insertAfter(m.$el.find('.message-typing')); + } + } else { + m.$el[method]($messagesEls); + } + + // Layout + if (m.params.autoLayout) { m.layout(); } + + if (method === 'prepend' && !typingMessage) { + m.pageContentEl.scrollTop = scrollBefore + (m.pageContentEl.scrollHeight - scrollHeightBefore); + } + + if (m.params.scrollMessages && ((method === 'append' && !m.params.newMessagesFirst) || (method === 'prepend' && m.params.newMessagesFirst && !typingMessage))) { + if (m.params.scrollMessagesOnEdge) { + var onEdge = false; + if (m.params.newMessagesFirst && scrollBefore === 0) { + onEdge = true; + } + if (!m.params.newMessagesFirst && (scrollBefore - (scrollHeightBefore - heightBefore) >= -10)) { + onEdge = true; + } + if (onEdge) { m.scroll(animate ? undefined : 0); } + } else { + m.scroll(animate ? undefined : 0); + } + } + + return m; + }; + + Messages.prototype.showTyping = function showTyping (message) { + if ( message === void 0 ) message = {}; + + var m = this; + var typingMessage = m.messages.filter(function (el) { return el.isTyping; })[0]; + if (typingMessage) { + m.removeMessage(m.messages.indexOf(typingMessage)); + } + m.addMessage(Utils.extend({ + type: 'received', + isTyping: true, + }, message)); + return m; + }; + + Messages.prototype.hideTyping = function hideTyping () { + var m = this; + var typingMessageIndex; + var typingFound; + m.messages.forEach(function (message, index) { + if (message.isTyping) { typingMessageIndex = index; } + }); + if (typeof typingMessageIndex !== 'undefined') { + if (m.$el.find('.message').eq(typingMessageIndex).hasClass('message-typing')) { + typingFound = true; + m.removeMessage(typingMessageIndex); + } + } + if (!typingFound) { + var $typingMessageEl = m.$el.find('.message-typing'); + if ($typingMessageEl.length) { + m.removeMessage($typingMessageEl); + } + } + return m; + }; + + Messages.prototype.scroll = function scroll (duration, scrollTop) { + if ( duration === void 0 ) duration = 300; + + var m = this; + var currentScroll = m.pageContentEl.scrollTop; + var newScrollTop; + if (typeof scrollTop !== 'undefined') { newScrollTop = scrollTop; } + else { + newScrollTop = m.params.newMessagesFirst ? 0 : m.pageContentEl.scrollHeight - m.pageContentEl.offsetHeight; + if (newScrollTop === currentScroll) { return m; } + } + m.$pageContentEl.scrollTop(newScrollTop, duration); + return m; + }; + + Messages.prototype.init = function init () { + var m = this; + if (!m.messages || m.messages.length === 0) { + m.messages = m.getMessagesData(); + } + if (m.params.messages && m.params.messages.length) { + m.renderMessages(); + } + if (m.params.autoLayout) { m.layout(); } + if (m.params.scrollMessages) { m.scroll(0); } + }; + + Messages.prototype.destroy = function destroy () { + var m = this; + m.emit('local::beforeDestroy messagesBeforeDestroy', m); + m.$el.trigger('messages:beforedestroy'); + if (m.$el[0]) { + m.$el[0].f7Messages = null; + delete m.$el[0].f7Messages; + } + Utils.deleteProps(m); + }; + + return Messages; + }(Framework7Class)); + + var Messages$1 = { + name: 'messages', + static: { + Messages: Messages, + }, + create: function create() { + var app = this; + app.messages = ConstructorMethods({ + defaultSelector: '.messages', + constructor: Messages, + app: app, + domProp: 'f7Messages', + addMethods: 'renderMessages layout scroll clear removeMessage removeMessages addMessage addMessages'.split(' '), + }); + }, + on: { + tabBeforeRemove: function tabBeforeRemove(tabEl) { + var app = this; + $(tabEl).find('.messages-init').each(function (index, messagesEl) { + app.messages.destroy(messagesEl); + }); + }, + tabMounted: function tabMounted(tabEl) { + var app = this; + $(tabEl).find('.messages-init').each(function (index, messagesEl) { + app.messages.create({ el: messagesEl }); + }); + }, + pageBeforeRemove: function pageBeforeRemove(page) { + var app = this; + page.$el.find('.messages-init').each(function (index, messagesEl) { + app.messages.destroy(messagesEl); + }); + }, + pageInit: function pageInit(page) { + var app = this; + page.$el.find('.messages-init').each(function (index, messagesEl) { + app.messages.create({ el: messagesEl }); + }); + }, + }, + vnode: { + 'messages-init': { + insert: function insert(vnode) { + var app = this; + var messagesEl = vnode.elm; + app.messages.create({ el: messagesEl }); + }, + destroy: function destroy(vnode) { + var app = this; + var messagesEl = vnode.elm; + app.messages.destroy(messagesEl); + }, + }, + }, + }; + + var Messagebar = /*@__PURE__*/(function (Framework7Class) { + function Messagebar(app, params) { + if ( params === void 0 ) params = {}; + + Framework7Class.call(this, params, [app]); + + var messagebar = this; + + var defaults = { + top: false, + topOffset: 0, + bottomOffset: 0, + attachments: [], + renderAttachments: undefined, + renderAttachment: undefined, + maxHeight: null, + resizePage: true, + }; + + // Extend defaults with modules params + messagebar.useModulesParams(defaults); + + messagebar.params = Utils.extend(defaults, params); + + // El + var $el = $(messagebar.params.el); + if ($el.length === 0) { return messagebar; } + + if ($el[0].f7Messagebar) { return $el[0].f7Messagebar; } + + $el[0].f7Messagebar = messagebar; + + // Page and PageContent + var $pageEl = $el.parents('.page').eq(0); + var $pageContentEl = $pageEl.find('.page-content').eq(0); + + // Area + var $areaEl = $el.find('.messagebar-area'); + + // Textarea + var $textareaEl; + if (messagebar.params.textareaEl) { + $textareaEl = $(messagebar.params.textareaEl); + } else { + $textareaEl = $el.find('textarea'); + } + + // Attachments & Library + var $attachmentsEl = $el.find('.messagebar-attachments'); + var $sheetEl = $el.find('.messagebar-sheet'); + + if (messagebar.params.top) { + $el.addClass('messagebar-top'); + } + + Utils.extend(messagebar, { + $el: $el, + el: $el[0], + $areaEl: $areaEl, + areaEl: $areaEl[0], + $textareaEl: $textareaEl, + textareaEl: $textareaEl[0], + $attachmentsEl: $attachmentsEl, + attachmentsEl: $attachmentsEl[0], + attachmentsVisible: $attachmentsEl.hasClass('messagebar-attachments-visible'), + $sheetEl: $sheetEl, + sheetEl: $sheetEl[0], + sheetVisible: $sheetEl.hasClass('messagebar-sheet-visible'), + $pageEl: $pageEl, + pageEl: $pageEl[0], + $pageContentEl: $pageContentEl, + pageContentEl: $pageContentEl, + top: $el.hasClass('messagebar-top') || messagebar.params.top, + attachments: [], + }); + + // Events + function onAppResize() { + if (messagebar.params.resizePage) { + messagebar.resizePage(); + } + } + function onSubmit(e) { + e.preventDefault(); + } + function onAttachmentClick(e) { + var index = $(this).index(); + if ($(e.target).closest('.messagebar-attachment-delete').length) { + $(this).trigger('messagebar:attachmentdelete', index); + messagebar.emit('local::attachmentDelete messagebarAttachmentDelete', messagebar, this, index); + } else { + $(this).trigger('messagebar:attachmentclick', index); + messagebar.emit('local::attachmentClick messagebarAttachmentClick', messagebar, this, index); + } + } + function onTextareaChange() { + messagebar.checkEmptyState(); + messagebar.$el.trigger('messagebar:change'); + messagebar.emit('local::change messagebarChange', messagebar); + } + function onTextareaFocus() { + messagebar.sheetHide(); + messagebar.$el.addClass('messagebar-focused'); + messagebar.$el.trigger('messagebar:focus'); + messagebar.emit('local::focus messagebarFocus', messagebar); + } + function onTextareaBlur() { + messagebar.$el.removeClass('messagebar-focused'); + messagebar.$el.trigger('messagebar:blur'); + messagebar.emit('local::blur messagebarBlur', messagebar); + } + + messagebar.attachEvents = function attachEvents() { + $el.on('textarea:resize', onAppResize); + $el.on('submit', onSubmit); + $el.on('click', '.messagebar-attachment', onAttachmentClick); + $textareaEl.on('change input', onTextareaChange); + $textareaEl.on('focus', onTextareaFocus); + $textareaEl.on('blur', onTextareaBlur); + app.on('resize', onAppResize); + }; + messagebar.detachEvents = function detachEvents() { + $el.off('textarea:resize', onAppResize); + $el.off('submit', onSubmit); + $el.off('click', '.messagebar-attachment', onAttachmentClick); + $textareaEl.off('change input', onTextareaChange); + $textareaEl.off('focus', onTextareaFocus); + $textareaEl.off('blur', onTextareaBlur); + app.off('resize', onAppResize); + }; + + + // Install Modules + messagebar.useModules(); + + // Init + messagebar.init(); + + return messagebar; + } + + if ( Framework7Class ) Messagebar.__proto__ = Framework7Class; + Messagebar.prototype = Object.create( Framework7Class && Framework7Class.prototype ); + Messagebar.prototype.constructor = Messagebar; + + Messagebar.prototype.focus = function focus () { + var messagebar = this; + messagebar.$textareaEl.focus(); + return messagebar; + }; + + Messagebar.prototype.blur = function blur () { + var messagebar = this; + messagebar.$textareaEl.blur(); + return messagebar; + }; + + Messagebar.prototype.clear = function clear () { + var messagebar = this; + messagebar.$textareaEl.val('').trigger('change'); + return messagebar; + }; + + Messagebar.prototype.getValue = function getValue () { + var messagebar = this; + return messagebar.$textareaEl.val().trim(); + }; + + Messagebar.prototype.setValue = function setValue (value) { + var messagebar = this; + messagebar.$textareaEl.val(value).trigger('change'); + return messagebar; + }; + + Messagebar.prototype.setPlaceholder = function setPlaceholder (placeholder) { + var messagebar = this; + messagebar.$textareaEl.attr('placeholder', placeholder); + return messagebar; + }; + + Messagebar.prototype.resizePage = function resizePage () { + var messagebar = this; + var params = messagebar.params; + var $el = messagebar.$el; + var top = messagebar.top; + var $pageEl = messagebar.$pageEl; + var $pageContentEl = messagebar.$pageContentEl; + var $areaEl = messagebar.$areaEl; + var $textareaEl = messagebar.$textareaEl; + var $sheetEl = messagebar.$sheetEl; + var $attachmentsEl = messagebar.$attachmentsEl; + var elHeight = $el[0].offsetHeight; + var maxHeight = params.maxHeight; + if (top) ; else { + var currentPaddingBottom = parseInt($pageContentEl.css('padding-bottom'), 10); + var requiredPaddingBottom = elHeight + params.bottomOffset; + if (requiredPaddingBottom !== currentPaddingBottom && $pageContentEl.length) { + var currentPaddingTop = parseInt($pageContentEl.css('padding-top'), 10); + var pageScrollHeight = $pageContentEl[0].scrollHeight; + var pageOffsetHeight = $pageContentEl[0].offsetHeight; + var pageScrollTop = $pageContentEl[0].scrollTop; + var scrollOnBottom = (pageScrollTop === pageScrollHeight - pageOffsetHeight); + if (!maxHeight) { + maxHeight = $pageEl[0].offsetHeight - currentPaddingTop - $sheetEl.outerHeight() - $attachmentsEl.outerHeight() - parseInt($areaEl.css('margin-top'), 10) - parseInt($areaEl.css('margin-bottom'), 10); + } + $textareaEl.css('max-height', (maxHeight + "px")); + $pageContentEl.css('padding-bottom', (requiredPaddingBottom + "px")); + if (scrollOnBottom) { + $pageContentEl.scrollTop($pageContentEl[0].scrollHeight - pageOffsetHeight); + } + $el.trigger('messagebar:resizepage'); + messagebar.emit('local::resizePage messagebarResizePage', messagebar); + } + } + }; + + Messagebar.prototype.checkEmptyState = function checkEmptyState () { + var messagebar = this; + var $el = messagebar.$el; + var $textareaEl = messagebar.$textareaEl; + var value = $textareaEl.val().trim(); + if (value && value.length) { + $el.addClass('messagebar-with-value'); + } else { + $el.removeClass('messagebar-with-value'); + } + }; + + Messagebar.prototype.attachmentsCreate = function attachmentsCreate (innerHTML) { + if ( innerHTML === void 0 ) innerHTML = ''; + + var messagebar = this; + var $attachmentsEl = $(("
          " + innerHTML + "
          ")); + $attachmentsEl.insertBefore(messagebar.$textareaEl); + Utils.extend(messagebar, { + $attachmentsEl: $attachmentsEl, + attachmentsEl: $attachmentsEl[0], + }); + return messagebar; + }; + + Messagebar.prototype.attachmentsShow = function attachmentsShow (innerHTML) { + if ( innerHTML === void 0 ) innerHTML = ''; + + var messagebar = this; + messagebar.$attachmentsEl = messagebar.$el.find('.messagebar-attachments'); + if (messagebar.$attachmentsEl.length === 0) { + messagebar.attachmentsCreate(innerHTML); + } + messagebar.$el.addClass('messagebar-attachments-visible'); + messagebar.attachmentsVisible = true; + if (messagebar.params.resizePage) { + messagebar.resizePage(); + } + return messagebar; + }; + + Messagebar.prototype.attachmentsHide = function attachmentsHide () { + var messagebar = this; + messagebar.$el.removeClass('messagebar-attachments-visible'); + messagebar.attachmentsVisible = false; + if (messagebar.params.resizePage) { + messagebar.resizePage(); + } + return messagebar; + }; + + Messagebar.prototype.attachmentsToggle = function attachmentsToggle () { + var messagebar = this; + if (messagebar.attachmentsVisible) { + messagebar.attachmentsHide(); + } else { + messagebar.attachmentsShow(); + } + return messagebar; + }; + + Messagebar.prototype.renderAttachment = function renderAttachment (attachment) { + var messagebar = this; + if (messagebar.params.renderAttachment) { + return messagebar.params.renderAttachment.call(messagebar, attachment); + } + return ("\n
          \n \n \n
          \n "); + }; + + Messagebar.prototype.renderAttachments = function renderAttachments () { + var messagebar = this; + var html; + if (messagebar.params.renderAttachments) { + html = messagebar.params.renderAttachments.call(messagebar, messagebar.attachments); + } else { + html = "" + (messagebar.attachments.map(function (attachment) { return messagebar.renderAttachment(attachment); }).join('')); + } + if (messagebar.$attachmentsEl.length === 0) { + messagebar.attachmentsCreate(html); + } else { + messagebar.$attachmentsEl.html(html); + } + }; + + Messagebar.prototype.sheetCreate = function sheetCreate (innerHTML) { + if ( innerHTML === void 0 ) innerHTML = ''; + + var messagebar = this; + var $sheetEl = $(("
          " + innerHTML + "
          ")); + messagebar.$el.append($sheetEl); + Utils.extend(messagebar, { + $sheetEl: $sheetEl, + sheetEl: $sheetEl[0], + }); + return messagebar; + }; + + Messagebar.prototype.sheetShow = function sheetShow (innerHTML) { + if ( innerHTML === void 0 ) innerHTML = ''; + + var messagebar = this; + messagebar.$sheetEl = messagebar.$el.find('.messagebar-sheet'); + if (messagebar.$sheetEl.length === 0) { + messagebar.sheetCreate(innerHTML); + } + messagebar.$el.addClass('messagebar-sheet-visible'); + messagebar.sheetVisible = true; + if (messagebar.params.resizePage) { + messagebar.resizePage(); + } + return messagebar; + }; + + Messagebar.prototype.sheetHide = function sheetHide () { + var messagebar = this; + messagebar.$el.removeClass('messagebar-sheet-visible'); + messagebar.sheetVisible = false; + if (messagebar.params.resizePage) { + messagebar.resizePage(); + } + return messagebar; + }; + + Messagebar.prototype.sheetToggle = function sheetToggle () { + var messagebar = this; + if (messagebar.sheetVisible) { + messagebar.sheetHide(); + } else { + messagebar.sheetShow(); + } + return messagebar; + }; + + Messagebar.prototype.init = function init () { + var messagebar = this; + messagebar.attachEvents(); + messagebar.checkEmptyState(); + return messagebar; + }; + + Messagebar.prototype.destroy = function destroy () { + var messagebar = this; + messagebar.emit('local::beforeDestroy messagebarBeforeDestroy', messagebar); + messagebar.$el.trigger('messagebar:beforedestroy'); + messagebar.detachEvents(); + if (messagebar.$el[0]) { + messagebar.$el[0].f7Messagebar = null; + delete messagebar.$el[0].f7Messagebar; + } + Utils.deleteProps(messagebar); + }; + + return Messagebar; + }(Framework7Class)); + + var Messagebar$1 = { + name: 'messagebar', + static: { + Messagebar: Messagebar, + }, + create: function create() { + var app = this; + app.messagebar = ConstructorMethods({ + defaultSelector: '.messagebar', + constructor: Messagebar, + app: app, + domProp: 'f7Messagebar', + addMethods: 'clear getValue setValue setPlaceholder resizePage focus blur attachmentsCreate attachmentsShow attachmentsHide attachmentsToggle renderAttachments sheetCreate sheetShow sheetHide sheetToggle'.split(' '), + }); + }, + on: { + tabBeforeRemove: function tabBeforeRemove(tabEl) { + var app = this; + $(tabEl).find('.messagebar-init').each(function (index, messagebarEl) { + app.messagebar.destroy(messagebarEl); + }); + }, + tabMounted: function tabMounted(tabEl) { + var app = this; + $(tabEl).find('.messagebar-init').each(function (index, messagebarEl) { + app.messagebar.create(Utils.extend({ el: messagebarEl }, $(messagebarEl).dataset())); + }); + }, + pageBeforeRemove: function pageBeforeRemove(page) { + var app = this; + page.$el.find('.messagebar-init').each(function (index, messagebarEl) { + app.messagebar.destroy(messagebarEl); + }); + }, + pageInit: function pageInit(page) { + var app = this; + page.$el.find('.messagebar-init').each(function (index, messagebarEl) { + app.messagebar.create(Utils.extend({ el: messagebarEl }, $(messagebarEl).dataset())); + }); + }, + }, + vnode: { + 'messagebar-init': { + insert: function insert(vnode) { + var app = this; + var messagebarEl = vnode.elm; + app.messagebar.create(Utils.extend({ el: messagebarEl }, $(messagebarEl).dataset())); + }, + destroy: function destroy(vnode) { + var app = this; + var messagebarEl = vnode.elm; + app.messagebar.destroy(messagebarEl); + }, + }, + }, + }; + + function updateSize () { + var swiper = this; + var width; + var height; + var $el = swiper.$el; + if (typeof swiper.params.width !== 'undefined') { + width = swiper.params.width; + } else { + width = $el[0].clientWidth; + } + if (typeof swiper.params.height !== 'undefined') { + height = swiper.params.height; + } else { + height = $el[0].clientHeight; + } + if ((width === 0 && swiper.isHorizontal()) || (height === 0 && swiper.isVertical())) { + return; + } + + // Subtract paddings + width = width - parseInt($el.css('padding-left'), 10) - parseInt($el.css('padding-right'), 10); + height = height - parseInt($el.css('padding-top'), 10) - parseInt($el.css('padding-bottom'), 10); + + Utils.extend(swiper, { + width: width, + height: height, + size: swiper.isHorizontal() ? width : height, + }); + } + + function updateSlides () { + var swiper = this; + var params = swiper.params; + + var $wrapperEl = swiper.$wrapperEl; + var swiperSize = swiper.size; + var rtl = swiper.rtlTranslate; + var wrongRTL = swiper.wrongRTL; + var isVirtual = swiper.virtual && params.virtual.enabled; + var previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length; + var slides = $wrapperEl.children(("." + (swiper.params.slideClass))); + var slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length; + var snapGrid = []; + var slidesGrid = []; + var slidesSizesGrid = []; + + function slidesForMargin(slideIndex) { + if (!params.cssMode) { return true; } + if (slideIndex === slides.length - 1) { + return false; + } + return true; + } + + var offsetBefore = params.slidesOffsetBefore; + if (typeof offsetBefore === 'function') { + offsetBefore = params.slidesOffsetBefore.call(swiper); + } + + var offsetAfter = params.slidesOffsetAfter; + if (typeof offsetAfter === 'function') { + offsetAfter = params.slidesOffsetAfter.call(swiper); + } + + var previousSnapGridLength = swiper.snapGrid.length; + var previousSlidesGridLength = swiper.snapGrid.length; + + var spaceBetween = params.spaceBetween; + var slidePosition = -offsetBefore; + var prevSlideSize = 0; + var index = 0; + if (typeof swiperSize === 'undefined') { + return; + } + if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) { + spaceBetween = (parseFloat(spaceBetween.replace('%', '')) / 100) * swiperSize; + } + + swiper.virtualSize = -spaceBetween; + + // reset margins + if (rtl) { slides.css({ marginLeft: '', marginTop: '' }); } + else { slides.css({ marginRight: '', marginBottom: '' }); } + + var slidesNumberEvenToRows; + if (params.slidesPerColumn > 1) { + if (Math.floor(slidesLength / params.slidesPerColumn) === slidesLength / swiper.params.slidesPerColumn) { + slidesNumberEvenToRows = slidesLength; + } else { + slidesNumberEvenToRows = Math.ceil(slidesLength / params.slidesPerColumn) * params.slidesPerColumn; + } + if (params.slidesPerView !== 'auto' && params.slidesPerColumnFill === 'row') { + slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, params.slidesPerView * params.slidesPerColumn); + } + } + + // Calc slides + var slideSize; + var slidesPerColumn = params.slidesPerColumn; + var slidesPerRow = slidesNumberEvenToRows / slidesPerColumn; + var numFullColumns = Math.floor(slidesLength / params.slidesPerColumn); + for (var i = 0; i < slidesLength; i += 1) { + slideSize = 0; + var slide = slides.eq(i); + if (params.slidesPerColumn > 1) { + // Set slides order + var newSlideOrderIndex = (void 0); + var column = (void 0); + var row = (void 0); + if (params.slidesPerColumnFill === 'row' && params.slidesPerGroup > 1) { + var groupIndex = Math.floor(i / (params.slidesPerGroup * params.slidesPerColumn)); + var slideIndexInGroup = i - params.slidesPerColumn * params.slidesPerGroup * groupIndex; + var columnsInGroup = groupIndex === 0 + ? params.slidesPerGroup + : Math.min(Math.ceil((slidesLength - groupIndex * slidesPerColumn * params.slidesPerGroup) / slidesPerColumn), params.slidesPerGroup); + row = Math.floor(slideIndexInGroup / columnsInGroup); + column = (slideIndexInGroup - row * columnsInGroup) + groupIndex * params.slidesPerGroup; + + newSlideOrderIndex = column + ((row * slidesNumberEvenToRows) / slidesPerColumn); + slide + .css({ + '-webkit-box-ordinal-group': newSlideOrderIndex, + '-moz-box-ordinal-group': newSlideOrderIndex, + '-ms-flex-order': newSlideOrderIndex, + '-webkit-order': newSlideOrderIndex, + order: newSlideOrderIndex, + }); + } else if (params.slidesPerColumnFill === 'column') { + column = Math.floor(i / slidesPerColumn); + row = i - (column * slidesPerColumn); + if (column > numFullColumns || (column === numFullColumns && row === slidesPerColumn - 1)) { + row += 1; + if (row >= slidesPerColumn) { + row = 0; + column += 1; + } + } + } else { + row = Math.floor(i / slidesPerRow); + column = i - (row * slidesPerRow); + } + slide.css( + ("margin-" + (swiper.isHorizontal() ? 'top' : 'left')), + (row !== 0 && params.spaceBetween) && (((params.spaceBetween) + "px")) + ); + } + if (slide.css('display') === 'none') { continue; } // eslint-disable-line + + if (params.slidesPerView === 'auto') { + var slideStyles = win.getComputedStyle(slide[0], null); + var currentTransform = slide[0].style.transform; + var currentWebKitTransform = slide[0].style.webkitTransform; + if (currentTransform) { + slide[0].style.transform = 'none'; + } + if (currentWebKitTransform) { + slide[0].style.webkitTransform = 'none'; + } + if (params.roundLengths) { + slideSize = swiper.isHorizontal() + ? slide.outerWidth(true) + : slide.outerHeight(true); + } else { + // eslint-disable-next-line + if (swiper.isHorizontal()) { + var width = parseFloat(slideStyles.getPropertyValue('width')); + var paddingLeft = parseFloat(slideStyles.getPropertyValue('padding-left')); + var paddingRight = parseFloat(slideStyles.getPropertyValue('padding-right')); + var marginLeft = parseFloat(slideStyles.getPropertyValue('margin-left')); + var marginRight = parseFloat(slideStyles.getPropertyValue('margin-right')); + var boxSizing = slideStyles.getPropertyValue('box-sizing'); + if (boxSizing && boxSizing === 'border-box') { + slideSize = width + marginLeft + marginRight; + } else { + slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight; + } + } else { + var height = parseFloat(slideStyles.getPropertyValue('height')); + var paddingTop = parseFloat(slideStyles.getPropertyValue('padding-top')); + var paddingBottom = parseFloat(slideStyles.getPropertyValue('padding-bottom')); + var marginTop = parseFloat(slideStyles.getPropertyValue('margin-top')); + var marginBottom = parseFloat(slideStyles.getPropertyValue('margin-bottom')); + var boxSizing$1 = slideStyles.getPropertyValue('box-sizing'); + if (boxSizing$1 && boxSizing$1 === 'border-box') { + slideSize = height + marginTop + marginBottom; + } else { + slideSize = height + paddingTop + paddingBottom + marginTop + marginBottom; + } + } + } + if (currentTransform) { + slide[0].style.transform = currentTransform; + } + if (currentWebKitTransform) { + slide[0].style.webkitTransform = currentWebKitTransform; + } + if (params.roundLengths) { slideSize = Math.floor(slideSize); } + } else { + slideSize = (swiperSize - ((params.slidesPerView - 1) * spaceBetween)) / params.slidesPerView; + if (params.roundLengths) { slideSize = Math.floor(slideSize); } + + if (slides[i]) { + if (swiper.isHorizontal()) { + slides[i].style.width = slideSize + "px"; + } else { + slides[i].style.height = slideSize + "px"; + } + } + } + if (slides[i]) { + slides[i].swiperSlideSize = slideSize; + } + slidesSizesGrid.push(slideSize); + + + if (params.centeredSlides) { + slidePosition = slidePosition + (slideSize / 2) + (prevSlideSize / 2) + spaceBetween; + if (prevSlideSize === 0 && i !== 0) { slidePosition = slidePosition - (swiperSize / 2) - spaceBetween; } + if (i === 0) { slidePosition = slidePosition - (swiperSize / 2) - spaceBetween; } + if (Math.abs(slidePosition) < 1 / 1000) { slidePosition = 0; } + if (params.roundLengths) { slidePosition = Math.floor(slidePosition); } + if ((index) % params.slidesPerGroup === 0) { snapGrid.push(slidePosition); } + slidesGrid.push(slidePosition); + } else { + if (params.roundLengths) { slidePosition = Math.floor(slidePosition); } + if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) { snapGrid.push(slidePosition); } + slidesGrid.push(slidePosition); + slidePosition = slidePosition + slideSize + spaceBetween; + } + + swiper.virtualSize += slideSize + spaceBetween; + + prevSlideSize = slideSize; + + index += 1; + } + swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter; + var newSlidesGrid; + + if ( + rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) { + $wrapperEl.css({ width: ((swiper.virtualSize + params.spaceBetween) + "px") }); + } + if (params.setWrapperSize) { + if (swiper.isHorizontal()) { $wrapperEl.css({ width: ((swiper.virtualSize + params.spaceBetween) + "px") }); } + else { $wrapperEl.css({ height: ((swiper.virtualSize + params.spaceBetween) + "px") }); } + } + + if (params.slidesPerColumn > 1) { + swiper.virtualSize = (slideSize + params.spaceBetween) * slidesNumberEvenToRows; + swiper.virtualSize = Math.ceil(swiper.virtualSize / params.slidesPerColumn) - params.spaceBetween; + if (swiper.isHorizontal()) { $wrapperEl.css({ width: ((swiper.virtualSize + params.spaceBetween) + "px") }); } + else { $wrapperEl.css({ height: ((swiper.virtualSize + params.spaceBetween) + "px") }); } + if (params.centeredSlides) { + newSlidesGrid = []; + for (var i$1 = 0; i$1 < snapGrid.length; i$1 += 1) { + var slidesGridItem = snapGrid[i$1]; + if (params.roundLengths) { slidesGridItem = Math.floor(slidesGridItem); } + if (snapGrid[i$1] < swiper.virtualSize + snapGrid[0]) { newSlidesGrid.push(slidesGridItem); } + } + snapGrid = newSlidesGrid; + } + } + + // Remove last grid elements depending on width + if (!params.centeredSlides) { + newSlidesGrid = []; + for (var i$2 = 0; i$2 < snapGrid.length; i$2 += 1) { + var slidesGridItem$1 = snapGrid[i$2]; + if (params.roundLengths) { slidesGridItem$1 = Math.floor(slidesGridItem$1); } + if (snapGrid[i$2] <= swiper.virtualSize - swiperSize) { + newSlidesGrid.push(slidesGridItem$1); + } + } + snapGrid = newSlidesGrid; + if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) { + snapGrid.push(swiper.virtualSize - swiperSize); + } + } + if (snapGrid.length === 0) { snapGrid = [0]; } + + if (params.spaceBetween !== 0) { + if (swiper.isHorizontal()) { + if (rtl) { slides.filter(slidesForMargin).css({ marginLeft: (spaceBetween + "px") }); } + else { slides.filter(slidesForMargin).css({ marginRight: (spaceBetween + "px") }); } + } else { slides.filter(slidesForMargin).css({ marginBottom: (spaceBetween + "px") }); } + } + + if (params.centeredSlides && params.centeredSlidesBounds) { + var allSlidesSize = 0; + slidesSizesGrid.forEach(function (slideSizeValue) { + allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0); + }); + allSlidesSize -= params.spaceBetween; + var maxSnap = allSlidesSize - swiperSize; + snapGrid = snapGrid.map(function (snap) { + if (snap < 0) { return -offsetBefore; } + if (snap > maxSnap) { return maxSnap + offsetAfter; } + return snap; + }); + } + + if (params.centerInsufficientSlides) { + var allSlidesSize$1 = 0; + slidesSizesGrid.forEach(function (slideSizeValue) { + allSlidesSize$1 += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0); + }); + allSlidesSize$1 -= params.spaceBetween; + if (allSlidesSize$1 < swiperSize) { + var allSlidesOffset = (swiperSize - allSlidesSize$1) / 2; + snapGrid.forEach(function (snap, snapIndex) { + snapGrid[snapIndex] = snap - allSlidesOffset; + }); + slidesGrid.forEach(function (snap, snapIndex) { + slidesGrid[snapIndex] = snap + allSlidesOffset; + }); + } + } + + Utils.extend(swiper, { + slides: slides, + snapGrid: snapGrid, + slidesGrid: slidesGrid, + slidesSizesGrid: slidesSizesGrid, + }); + + if (slidesLength !== previousSlidesLength) { + swiper.emit('slidesLengthChange'); + } + if (snapGrid.length !== previousSnapGridLength) { + if (swiper.params.watchOverflow) { swiper.checkOverflow(); } + swiper.emit('snapGridLengthChange'); + } + if (slidesGrid.length !== previousSlidesGridLength) { + swiper.emit('slidesGridLengthChange'); + } + + if (params.watchSlidesProgress || params.watchSlidesVisibility) { + swiper.updateSlidesOffset(); + } + } + + function updateAutoHeight (speed) { + var swiper = this; + var activeSlides = []; + var newHeight = 0; + var i; + if (typeof speed === 'number') { + swiper.setTransition(speed); + } else if (speed === true) { + swiper.setTransition(swiper.params.speed); + } + // Find slides currently in view + if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) { + if (swiper.params.centeredSlides) { + swiper.visibleSlides.each(function (index, slide) { + activeSlides.push(slide); + }); + } else { + for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) { + var index = swiper.activeIndex + i; + if (index > swiper.slides.length) { break; } + activeSlides.push(swiper.slides.eq(index)[0]); + } + } + } else { + activeSlides.push(swiper.slides.eq(swiper.activeIndex)[0]); + } + + // Find new height from highest slide in view + for (i = 0; i < activeSlides.length; i += 1) { + if (typeof activeSlides[i] !== 'undefined') { + var height = activeSlides[i].offsetHeight; + newHeight = height > newHeight ? height : newHeight; + } + } + + // Update Height + if (newHeight) { swiper.$wrapperEl.css('height', (newHeight + "px")); } + } + + function updateSlidesOffset () { + var swiper = this; + var slides = swiper.slides; + for (var i = 0; i < slides.length; i += 1) { + slides[i].swiperSlideOffset = swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop; + } + } + + function updateSlidesProgress (translate) { + if ( translate === void 0 ) translate = (this && this.translate) || 0; + + var swiper = this; + var params = swiper.params; + + var slides = swiper.slides; + var rtl = swiper.rtlTranslate; + + if (slides.length === 0) { return; } + if (typeof slides[0].swiperSlideOffset === 'undefined') { swiper.updateSlidesOffset(); } + + var offsetCenter = -translate; + if (rtl) { offsetCenter = translate; } + + // Visible Slides + slides.removeClass(params.slideVisibleClass); + + swiper.visibleSlidesIndexes = []; + swiper.visibleSlides = []; + + for (var i = 0; i < slides.length; i += 1) { + var slide = slides[i]; + var slideProgress = ( + (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0)) - slide.swiperSlideOffset + ) / (slide.swiperSlideSize + params.spaceBetween); + if (params.watchSlidesVisibility || (params.centeredSlides && params.autoHeight)) { + var slideBefore = -(offsetCenter - slide.swiperSlideOffset); + var slideAfter = slideBefore + swiper.slidesSizesGrid[i]; + var isVisible = (slideBefore >= 0 && slideBefore < swiper.size - 1) + || (slideAfter > 1 && slideAfter <= swiper.size) + || (slideBefore <= 0 && slideAfter >= swiper.size); + if (isVisible) { + swiper.visibleSlides.push(slide); + swiper.visibleSlidesIndexes.push(i); + slides.eq(i).addClass(params.slideVisibleClass); + } + } + slide.progress = rtl ? -slideProgress : slideProgress; + } + swiper.visibleSlides = $(swiper.visibleSlides); + } + + function updateProgress (translate) { + var swiper = this; + if (typeof translate === 'undefined') { + var multiplier = swiper.rtlTranslate ? -1 : 1; + // eslint-disable-next-line + translate = (swiper && swiper.translate && (swiper.translate * multiplier)) || 0; + } + var params = swiper.params; + var translatesDiff = swiper.maxTranslate() - swiper.minTranslate(); + var progress = swiper.progress; + var isBeginning = swiper.isBeginning; + var isEnd = swiper.isEnd; + var wasBeginning = isBeginning; + var wasEnd = isEnd; + if (translatesDiff === 0) { + progress = 0; + isBeginning = true; + isEnd = true; + } else { + progress = (translate - swiper.minTranslate()) / (translatesDiff); + isBeginning = progress <= 0; + isEnd = progress >= 1; + } + Utils.extend(swiper, { + progress: progress, + isBeginning: isBeginning, + isEnd: isEnd, + }); + + if (params.watchSlidesProgress || params.watchSlidesVisibility || (params.centeredSlides && params.autoHeight)) { swiper.updateSlidesProgress(translate); } + + if (isBeginning && !wasBeginning) { + swiper.emit('reachBeginning toEdge'); + } + if (isEnd && !wasEnd) { + swiper.emit('reachEnd toEdge'); + } + if ((wasBeginning && !isBeginning) || (wasEnd && !isEnd)) { + swiper.emit('fromEdge'); + } + + swiper.emit('progress', progress); + } + + function updateSlidesClasses () { + var swiper = this; + + var slides = swiper.slides; + var params = swiper.params; + var $wrapperEl = swiper.$wrapperEl; + var activeIndex = swiper.activeIndex; + var realIndex = swiper.realIndex; + var isVirtual = swiper.virtual && params.virtual.enabled; + + slides.removeClass(((params.slideActiveClass) + " " + (params.slideNextClass) + " " + (params.slidePrevClass) + " " + (params.slideDuplicateActiveClass) + " " + (params.slideDuplicateNextClass) + " " + (params.slideDuplicatePrevClass))); + + var activeSlide; + if (isVirtual) { + activeSlide = swiper.$wrapperEl.find(("." + (params.slideClass) + "[data-swiper-slide-index=\"" + activeIndex + "\"]")); + } else { + activeSlide = slides.eq(activeIndex); + } + + // Active classes + activeSlide.addClass(params.slideActiveClass); + + if (params.loop) { + // Duplicate to all looped slides + if (activeSlide.hasClass(params.slideDuplicateClass)) { + $wrapperEl + .children(("." + (params.slideClass) + ":not(." + (params.slideDuplicateClass) + ")[data-swiper-slide-index=\"" + realIndex + "\"]")) + .addClass(params.slideDuplicateActiveClass); + } else { + $wrapperEl + .children(("." + (params.slideClass) + "." + (params.slideDuplicateClass) + "[data-swiper-slide-index=\"" + realIndex + "\"]")) + .addClass(params.slideDuplicateActiveClass); + } + } + // Next Slide + var nextSlide = activeSlide.nextAll(("." + (params.slideClass))).eq(0).addClass(params.slideNextClass); + if (params.loop && nextSlide.length === 0) { + nextSlide = slides.eq(0); + nextSlide.addClass(params.slideNextClass); + } + // Prev Slide + var prevSlide = activeSlide.prevAll(("." + (params.slideClass))).eq(0).addClass(params.slidePrevClass); + if (params.loop && prevSlide.length === 0) { + prevSlide = slides.eq(-1); + prevSlide.addClass(params.slidePrevClass); + } + if (params.loop) { + // Duplicate to all looped slides + if (nextSlide.hasClass(params.slideDuplicateClass)) { + $wrapperEl + .children(("." + (params.slideClass) + ":not(." + (params.slideDuplicateClass) + ")[data-swiper-slide-index=\"" + (nextSlide.attr('data-swiper-slide-index')) + "\"]")) + .addClass(params.slideDuplicateNextClass); + } else { + $wrapperEl + .children(("." + (params.slideClass) + "." + (params.slideDuplicateClass) + "[data-swiper-slide-index=\"" + (nextSlide.attr('data-swiper-slide-index')) + "\"]")) + .addClass(params.slideDuplicateNextClass); + } + if (prevSlide.hasClass(params.slideDuplicateClass)) { + $wrapperEl + .children(("." + (params.slideClass) + ":not(." + (params.slideDuplicateClass) + ")[data-swiper-slide-index=\"" + (prevSlide.attr('data-swiper-slide-index')) + "\"]")) + .addClass(params.slideDuplicatePrevClass); + } else { + $wrapperEl + .children(("." + (params.slideClass) + "." + (params.slideDuplicateClass) + "[data-swiper-slide-index=\"" + (prevSlide.attr('data-swiper-slide-index')) + "\"]")) + .addClass(params.slideDuplicatePrevClass); + } + } + } + + function updateActiveIndex (newActiveIndex) { + var swiper = this; + var translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate; + var slidesGrid = swiper.slidesGrid; + var snapGrid = swiper.snapGrid; + var params = swiper.params; + var previousIndex = swiper.activeIndex; + var previousRealIndex = swiper.realIndex; + var previousSnapIndex = swiper.snapIndex; + var activeIndex = newActiveIndex; + var snapIndex; + if (typeof activeIndex === 'undefined') { + for (var i = 0; i < slidesGrid.length; i += 1) { + if (typeof slidesGrid[i + 1] !== 'undefined') { + if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - ((slidesGrid[i + 1] - slidesGrid[i]) / 2)) { + activeIndex = i; + } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) { + activeIndex = i + 1; + } + } else if (translate >= slidesGrid[i]) { + activeIndex = i; + } + } + // Normalize slideIndex + if (params.normalizeSlideIndex) { + if (activeIndex < 0 || typeof activeIndex === 'undefined') { activeIndex = 0; } + } + } + if (snapGrid.indexOf(translate) >= 0) { + snapIndex = snapGrid.indexOf(translate); + } else { + var skip = Math.min(params.slidesPerGroupSkip, activeIndex); + snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup); + } + if (snapIndex >= snapGrid.length) { snapIndex = snapGrid.length - 1; } + if (activeIndex === previousIndex) { + if (snapIndex !== previousSnapIndex) { + swiper.snapIndex = snapIndex; + swiper.emit('snapIndexChange'); + } + return; + } + + // Get real index + var realIndex = parseInt(swiper.slides.eq(activeIndex).attr('data-swiper-slide-index') || activeIndex, 10); + + Utils.extend(swiper, { + snapIndex: snapIndex, + realIndex: realIndex, + previousIndex: previousIndex, + activeIndex: activeIndex, + }); + swiper.emit('activeIndexChange'); + swiper.emit('snapIndexChange'); + if (previousRealIndex !== realIndex) { + swiper.emit('realIndexChange'); + } + if (swiper.initialized || swiper.params.runCallbacksOnInit) { + swiper.emit('slideChange'); + } + } + + function updateClickedSlide (e) { + var swiper = this; + var params = swiper.params; + var slide = $(e.target).closest(("." + (params.slideClass)))[0]; + var slideFound = false; + if (slide) { + for (var i = 0; i < swiper.slides.length; i += 1) { + if (swiper.slides[i] === slide) { slideFound = true; } + } + } + + if (slide && slideFound) { + swiper.clickedSlide = slide; + if (swiper.virtual && swiper.params.virtual.enabled) { + swiper.clickedIndex = parseInt($(slide).attr('data-swiper-slide-index'), 10); + } else { + swiper.clickedIndex = $(slide).index(); + } + } else { + swiper.clickedSlide = undefined; + swiper.clickedIndex = undefined; + return; + } + if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) { + swiper.slideToClickedSlide(); + } + } + + var update = { + updateSize: updateSize, + updateSlides: updateSlides, + updateAutoHeight: updateAutoHeight, + updateSlidesOffset: updateSlidesOffset, + updateSlidesProgress: updateSlidesProgress, + updateProgress: updateProgress, + updateSlidesClasses: updateSlidesClasses, + updateActiveIndex: updateActiveIndex, + updateClickedSlide: updateClickedSlide, + }; + + function getTranslate (axis) { + if ( axis === void 0 ) axis = this.isHorizontal() ? 'x' : 'y'; + + var swiper = this; + + var params = swiper.params; + var rtl = swiper.rtlTranslate; + var translate = swiper.translate; + var $wrapperEl = swiper.$wrapperEl; + + if (params.virtualTranslate) { + return rtl ? -translate : translate; + } + if (params.cssMode) { + return translate; + } + + var currentTranslate = Utils.getTranslate($wrapperEl[0], axis); + if (rtl) { currentTranslate = -currentTranslate; } + + return currentTranslate || 0; + } + + function setTranslate (translate, byController) { + var swiper = this; + var rtl = swiper.rtlTranslate; + var params = swiper.params; + var $wrapperEl = swiper.$wrapperEl; + var wrapperEl = swiper.wrapperEl; + var progress = swiper.progress; + var x = 0; + var y = 0; + var z = 0; + + if (swiper.isHorizontal()) { + x = rtl ? -translate : translate; + } else { + y = translate; + } + + if (params.roundLengths) { + x = Math.floor(x); + y = Math.floor(y); + } + + if (params.cssMode) { + wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y; + } else if (!params.virtualTranslate) { + $wrapperEl.transform(("translate3d(" + x + "px, " + y + "px, " + z + "px)")); + } + swiper.previousTranslate = swiper.translate; + swiper.translate = swiper.isHorizontal() ? x : y; + + // Check if we need to update progress + var newProgress; + var translatesDiff = swiper.maxTranslate() - swiper.minTranslate(); + if (translatesDiff === 0) { + newProgress = 0; + } else { + newProgress = (translate - swiper.minTranslate()) / (translatesDiff); + } + if (newProgress !== progress) { + swiper.updateProgress(translate); + } + + swiper.emit('setTranslate', swiper.translate, byController); + } + + function minTranslate () { + return (-this.snapGrid[0]); + } + + function maxTranslate () { + return (-this.snapGrid[this.snapGrid.length - 1]); + } + + function translateTo (translate, speed, runCallbacks, translateBounds, internal) { + var obj; + + if ( translate === void 0 ) translate = 0; + if ( speed === void 0 ) speed = this.params.speed; + if ( runCallbacks === void 0 ) runCallbacks = true; + if ( translateBounds === void 0 ) translateBounds = true; + var swiper = this; + + var params = swiper.params; + var wrapperEl = swiper.wrapperEl; + + if (swiper.animating && params.preventInteractionOnTransition) { + return false; + } + + var minTranslate = swiper.minTranslate(); + var maxTranslate = swiper.maxTranslate(); + var newTranslate; + if (translateBounds && translate > minTranslate) { newTranslate = minTranslate; } + else if (translateBounds && translate < maxTranslate) { newTranslate = maxTranslate; } + else { newTranslate = translate; } + + // Update progress + swiper.updateProgress(newTranslate); + + if (params.cssMode) { + var isH = swiper.isHorizontal(); + if (speed === 0) { + wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate; + } else { + // eslint-disable-next-line + if (wrapperEl.scrollTo) { + wrapperEl.scrollTo(( obj = {}, obj[isH ? 'left' : 'top'] = -newTranslate, obj.behavior = 'smooth', obj )); + } else { + wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate; + } + } + return true; + } + + if (speed === 0) { + swiper.setTransition(0); + swiper.setTranslate(newTranslate); + if (runCallbacks) { + swiper.emit('beforeTransitionStart', speed, internal); + swiper.emit('transitionEnd'); + } + } else { + swiper.setTransition(speed); + swiper.setTranslate(newTranslate); + if (runCallbacks) { + swiper.emit('beforeTransitionStart', speed, internal); + swiper.emit('transitionStart'); + } + if (!swiper.animating) { + swiper.animating = true; + if (!swiper.onTranslateToWrapperTransitionEnd) { + swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) { + if (!swiper || swiper.destroyed) { return; } + if (e.target !== this) { return; } + swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd); + swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd); + swiper.onTranslateToWrapperTransitionEnd = null; + delete swiper.onTranslateToWrapperTransitionEnd; + if (runCallbacks) { + swiper.emit('transitionEnd'); + } + }; + } + swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd); + swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd); + } + } + + return true; + } + + var translate = { + getTranslate: getTranslate, + setTranslate: setTranslate, + minTranslate: minTranslate, + maxTranslate: maxTranslate, + translateTo: translateTo, + }; + + function setTransition (duration, byController) { + var swiper = this; + + if (!swiper.params.cssMode) { + swiper.$wrapperEl.transition(duration); + } + + swiper.emit('setTransition', duration, byController); + } + + function transitionStart (runCallbacks, direction) { + if ( runCallbacks === void 0 ) runCallbacks = true; + + var swiper = this; + var activeIndex = swiper.activeIndex; + var params = swiper.params; + var previousIndex = swiper.previousIndex; + if (params.cssMode) { return; } + if (params.autoHeight) { + swiper.updateAutoHeight(); + } + + var dir = direction; + if (!dir) { + if (activeIndex > previousIndex) { dir = 'next'; } + else if (activeIndex < previousIndex) { dir = 'prev'; } + else { dir = 'reset'; } + } + + swiper.emit('transitionStart'); + + if (runCallbacks && activeIndex !== previousIndex) { + if (dir === 'reset') { + swiper.emit('slideResetTransitionStart'); + return; + } + swiper.emit('slideChangeTransitionStart'); + if (dir === 'next') { + swiper.emit('slideNextTransitionStart'); + } else { + swiper.emit('slidePrevTransitionStart'); + } + } + } + + function transitionEnd$1 (runCallbacks, direction) { + if ( runCallbacks === void 0 ) runCallbacks = true; + + var swiper = this; + var activeIndex = swiper.activeIndex; + var previousIndex = swiper.previousIndex; + var params = swiper.params; + swiper.animating = false; + if (params.cssMode) { return; } + swiper.setTransition(0); + + var dir = direction; + if (!dir) { + if (activeIndex > previousIndex) { dir = 'next'; } + else if (activeIndex < previousIndex) { dir = 'prev'; } + else { dir = 'reset'; } + } + + swiper.emit('transitionEnd'); + + if (runCallbacks && activeIndex !== previousIndex) { + if (dir === 'reset') { + swiper.emit('slideResetTransitionEnd'); + return; + } + swiper.emit('slideChangeTransitionEnd'); + if (dir === 'next') { + swiper.emit('slideNextTransitionEnd'); + } else { + swiper.emit('slidePrevTransitionEnd'); + } + } + } + + var transition$1 = { + setTransition: setTransition, + transitionStart: transitionStart, + transitionEnd: transitionEnd$1, + }; + + function slideTo (index, speed, runCallbacks, internal) { + var obj; + + if ( index === void 0 ) index = 0; + if ( speed === void 0 ) speed = this.params.speed; + if ( runCallbacks === void 0 ) runCallbacks = true; + var swiper = this; + var slideIndex = index; + if (slideIndex < 0) { slideIndex = 0; } + + var params = swiper.params; + var snapGrid = swiper.snapGrid; + var slidesGrid = swiper.slidesGrid; + var previousIndex = swiper.previousIndex; + var activeIndex = swiper.activeIndex; + var rtl = swiper.rtlTranslate; + var wrapperEl = swiper.wrapperEl; + if (swiper.animating && params.preventInteractionOnTransition) { + return false; + } + + var skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex); + var snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup); + if (snapIndex >= snapGrid.length) { snapIndex = snapGrid.length - 1; } + + if ((activeIndex || params.initialSlide || 0) === (previousIndex || 0) && runCallbacks) { + swiper.emit('beforeSlideChangeStart'); + } + + var translate = -snapGrid[snapIndex]; + + // Update progress + swiper.updateProgress(translate); + + // Normalize slideIndex + if (params.normalizeSlideIndex) { + for (var i = 0; i < slidesGrid.length; i += 1) { + if (-Math.floor(translate * 100) >= Math.floor(slidesGrid[i] * 100)) { + slideIndex = i; + } + } + } + // Directions locks + if (swiper.initialized && slideIndex !== activeIndex) { + if (!swiper.allowSlideNext && translate < swiper.translate && translate < swiper.minTranslate()) { + return false; + } + if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) { + if ((activeIndex || 0) !== slideIndex) { return false; } + } + } + + var direction; + if (slideIndex > activeIndex) { direction = 'next'; } + else if (slideIndex < activeIndex) { direction = 'prev'; } + else { direction = 'reset'; } + + + // Update Index + if ((rtl && -translate === swiper.translate) || (!rtl && translate === swiper.translate)) { + swiper.updateActiveIndex(slideIndex); + // Update Height + if (params.autoHeight) { + swiper.updateAutoHeight(); + } + swiper.updateSlidesClasses(); + if (params.effect !== 'slide') { + swiper.setTranslate(translate); + } + if (direction !== 'reset') { + swiper.transitionStart(runCallbacks, direction); + swiper.transitionEnd(runCallbacks, direction); + } + return false; + } + if (params.cssMode) { + var isH = swiper.isHorizontal(); + var t = -translate; + if (rtl) { + t = wrapperEl.scrollWidth - wrapperEl.offsetWidth - t; + } + if (speed === 0) { + wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t; + } else { + // eslint-disable-next-line + if (wrapperEl.scrollTo) { + wrapperEl.scrollTo(( obj = {}, obj[isH ? 'left' : 'top'] = t, obj.behavior = 'smooth', obj )); + } else { + wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t; + } + } + return true; + } + + if (speed === 0) { + swiper.setTransition(0); + swiper.setTranslate(translate); + swiper.updateActiveIndex(slideIndex); + swiper.updateSlidesClasses(); + swiper.emit('beforeTransitionStart', speed, internal); + swiper.transitionStart(runCallbacks, direction); + swiper.transitionEnd(runCallbacks, direction); + } else { + swiper.setTransition(speed); + swiper.setTranslate(translate); + swiper.updateActiveIndex(slideIndex); + swiper.updateSlidesClasses(); + swiper.emit('beforeTransitionStart', speed, internal); + swiper.transitionStart(runCallbacks, direction); + if (!swiper.animating) { + swiper.animating = true; + if (!swiper.onSlideToWrapperTransitionEnd) { + swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) { + if (!swiper || swiper.destroyed) { return; } + if (e.target !== this) { return; } + swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd); + swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd); + swiper.onSlideToWrapperTransitionEnd = null; + delete swiper.onSlideToWrapperTransitionEnd; + swiper.transitionEnd(runCallbacks, direction); + }; + } + swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd); + swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd); + } + } + + return true; + } + + function slideToLoop (index, speed, runCallbacks, internal) { + if ( index === void 0 ) index = 0; + if ( speed === void 0 ) speed = this.params.speed; + if ( runCallbacks === void 0 ) runCallbacks = true; + + var swiper = this; + var newIndex = index; + if (swiper.params.loop) { + newIndex += swiper.loopedSlides; + } + + return swiper.slideTo(newIndex, speed, runCallbacks, internal); + } + + /* eslint no-unused-vars: "off" */ + function slideNext (speed, runCallbacks, internal) { + if ( speed === void 0 ) speed = this.params.speed; + if ( runCallbacks === void 0 ) runCallbacks = true; + + var swiper = this; + var params = swiper.params; + var animating = swiper.animating; + var increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup; + if (params.loop) { + if (animating) { return false; } + swiper.loopFix(); + // eslint-disable-next-line + swiper._clientLeft = swiper.$wrapperEl[0].clientLeft; + } + return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal); + } + + /* eslint no-unused-vars: "off" */ + function slidePrev (speed, runCallbacks, internal) { + if ( speed === void 0 ) speed = this.params.speed; + if ( runCallbacks === void 0 ) runCallbacks = true; + + var swiper = this; + var params = swiper.params; + var animating = swiper.animating; + var snapGrid = swiper.snapGrid; + var slidesGrid = swiper.slidesGrid; + var rtlTranslate = swiper.rtlTranslate; + + if (params.loop) { + if (animating) { return false; } + swiper.loopFix(); + // eslint-disable-next-line + swiper._clientLeft = swiper.$wrapperEl[0].clientLeft; + } + var translate = rtlTranslate ? swiper.translate : -swiper.translate; + function normalize(val) { + if (val < 0) { return -Math.floor(Math.abs(val)); } + return Math.floor(val); + } + var normalizedTranslate = normalize(translate); + var normalizedSnapGrid = snapGrid.map(function (val) { return normalize(val); }); + var normalizedSlidesGrid = slidesGrid.map(function (val) { return normalize(val); }); + + var currentSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate)]; + var prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1]; + if (typeof prevSnap === 'undefined' && params.cssMode) { + snapGrid.forEach(function (snap) { + if (!prevSnap && normalizedTranslate >= snap) { prevSnap = snap; } + }); + } + var prevIndex; + if (typeof prevSnap !== 'undefined') { + prevIndex = slidesGrid.indexOf(prevSnap); + if (prevIndex < 0) { prevIndex = swiper.activeIndex - 1; } + } + return swiper.slideTo(prevIndex, speed, runCallbacks, internal); + } + + /* eslint no-unused-vars: "off" */ + function slideReset (speed, runCallbacks, internal) { + if ( speed === void 0 ) speed = this.params.speed; + if ( runCallbacks === void 0 ) runCallbacks = true; + + var swiper = this; + return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal); + } + + /* eslint no-unused-vars: "off" */ + function slideToClosest (speed, runCallbacks, internal, threshold) { + if ( speed === void 0 ) speed = this.params.speed; + if ( runCallbacks === void 0 ) runCallbacks = true; + if ( threshold === void 0 ) threshold = 0.5; + + var swiper = this; + var index = swiper.activeIndex; + var skip = Math.min(swiper.params.slidesPerGroupSkip, index); + var snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup); + + var translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate; + + if (translate >= swiper.snapGrid[snapIndex]) { + // The current translate is on or after the current snap index, so the choice + // is between the current index and the one after it. + var currentSnap = swiper.snapGrid[snapIndex]; + var nextSnap = swiper.snapGrid[snapIndex + 1]; + if ((translate - currentSnap) > (nextSnap - currentSnap) * threshold) { + index += swiper.params.slidesPerGroup; + } + } else { + // The current translate is before the current snap index, so the choice + // is between the current index and the one before it. + var prevSnap = swiper.snapGrid[snapIndex - 1]; + var currentSnap$1 = swiper.snapGrid[snapIndex]; + if ((translate - prevSnap) <= (currentSnap$1 - prevSnap) * threshold) { + index -= swiper.params.slidesPerGroup; + } + } + index = Math.max(index, 0); + index = Math.min(index, swiper.slidesGrid.length - 1); + + return swiper.slideTo(index, speed, runCallbacks, internal); + } + + function slideToClickedSlide () { + var swiper = this; + var params = swiper.params; + var $wrapperEl = swiper.$wrapperEl; + + var slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView; + var slideToIndex = swiper.clickedIndex; + var realIndex; + if (params.loop) { + if (swiper.animating) { return; } + realIndex = parseInt($(swiper.clickedSlide).attr('data-swiper-slide-index'), 10); + if (params.centeredSlides) { + if ( + (slideToIndex < swiper.loopedSlides - (slidesPerView / 2)) + || (slideToIndex > (swiper.slides.length - swiper.loopedSlides) + (slidesPerView / 2)) + ) { + swiper.loopFix(); + slideToIndex = $wrapperEl + .children(("." + (params.slideClass) + "[data-swiper-slide-index=\"" + realIndex + "\"]:not(." + (params.slideDuplicateClass) + ")")) + .eq(0) + .index(); + + Utils.nextTick(function () { + swiper.slideTo(slideToIndex); + }); + } else { + swiper.slideTo(slideToIndex); + } + } else if (slideToIndex > swiper.slides.length - slidesPerView) { + swiper.loopFix(); + slideToIndex = $wrapperEl + .children(("." + (params.slideClass) + "[data-swiper-slide-index=\"" + realIndex + "\"]:not(." + (params.slideDuplicateClass) + ")")) + .eq(0) + .index(); + + Utils.nextTick(function () { + swiper.slideTo(slideToIndex); + }); + } else { + swiper.slideTo(slideToIndex); + } + } else { + swiper.slideTo(slideToIndex); + } + } + + var slide = { + slideTo: slideTo, + slideToLoop: slideToLoop, + slideNext: slideNext, + slidePrev: slidePrev, + slideReset: slideReset, + slideToClosest: slideToClosest, + slideToClickedSlide: slideToClickedSlide, + }; + + function loopCreate () { + var swiper = this; + var params = swiper.params; + var $wrapperEl = swiper.$wrapperEl; + // Remove duplicated slides + $wrapperEl.children(("." + (params.slideClass) + "." + (params.slideDuplicateClass))).remove(); + + var slides = $wrapperEl.children(("." + (params.slideClass))); + + if (params.loopFillGroupWithBlank) { + var blankSlidesNum = params.slidesPerGroup - (slides.length % params.slidesPerGroup); + if (blankSlidesNum !== params.slidesPerGroup) { + for (var i = 0; i < blankSlidesNum; i += 1) { + var blankNode = $(doc.createElement('div')).addClass(((params.slideClass) + " " + (params.slideBlankClass))); + $wrapperEl.append(blankNode); + } + slides = $wrapperEl.children(("." + (params.slideClass))); + } + } + + if (params.slidesPerView === 'auto' && !params.loopedSlides) { params.loopedSlides = slides.length; } + + swiper.loopedSlides = Math.ceil(parseFloat(params.loopedSlides || params.slidesPerView, 10)); + swiper.loopedSlides += params.loopAdditionalSlides; + if (swiper.loopedSlides > slides.length) { + swiper.loopedSlides = slides.length; + } + + var prependSlides = []; + var appendSlides = []; + slides.each(function (index, el) { + var slide = $(el); + if (index < swiper.loopedSlides) { appendSlides.push(el); } + if (index < slides.length && index >= slides.length - swiper.loopedSlides) { prependSlides.push(el); } + slide.attr('data-swiper-slide-index', index); + }); + for (var i$1 = 0; i$1 < appendSlides.length; i$1 += 1) { + $wrapperEl.append($(appendSlides[i$1].cloneNode(true)).addClass(params.slideDuplicateClass)); + } + for (var i$2 = prependSlides.length - 1; i$2 >= 0; i$2 -= 1) { + $wrapperEl.prepend($(prependSlides[i$2].cloneNode(true)).addClass(params.slideDuplicateClass)); + } + } + + function loopFix () { + var swiper = this; + + swiper.emit('beforeLoopFix'); + + var activeIndex = swiper.activeIndex; + var slides = swiper.slides; + var loopedSlides = swiper.loopedSlides; + var allowSlidePrev = swiper.allowSlidePrev; + var allowSlideNext = swiper.allowSlideNext; + var snapGrid = swiper.snapGrid; + var rtl = swiper.rtlTranslate; + var newIndex; + swiper.allowSlidePrev = true; + swiper.allowSlideNext = true; + + var snapTranslate = -snapGrid[activeIndex]; + var diff = snapTranslate - swiper.getTranslate(); + + // Fix For Negative Oversliding + if (activeIndex < loopedSlides) { + newIndex = (slides.length - (loopedSlides * 3)) + activeIndex; + newIndex += loopedSlides; + var slideChanged = swiper.slideTo(newIndex, 0, false, true); + if (slideChanged && diff !== 0) { + swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff); + } + } else if (activeIndex >= slides.length - loopedSlides) { + // Fix For Positive Oversliding + newIndex = -slides.length + activeIndex + loopedSlides; + newIndex += loopedSlides; + var slideChanged$1 = swiper.slideTo(newIndex, 0, false, true); + if (slideChanged$1 && diff !== 0) { + swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff); + } + } + swiper.allowSlidePrev = allowSlidePrev; + swiper.allowSlideNext = allowSlideNext; + + swiper.emit('loopFix'); + } + + function loopDestroy () { + var swiper = this; + var $wrapperEl = swiper.$wrapperEl; + var params = swiper.params; + var slides = swiper.slides; + $wrapperEl.children(("." + (params.slideClass) + "." + (params.slideDuplicateClass) + ",." + (params.slideClass) + "." + (params.slideBlankClass))).remove(); + slides.removeAttr('data-swiper-slide-index'); + } + + var loop = { + loopCreate: loopCreate, + loopFix: loopFix, + loopDestroy: loopDestroy, + }; + + function setGrabCursor (moving) { + var swiper = this; + if (Support.touch || !swiper.params.simulateTouch || (swiper.params.watchOverflow && swiper.isLocked) || swiper.params.cssMode) { return; } + var el = swiper.el; + el.style.cursor = 'move'; + el.style.cursor = moving ? '-webkit-grabbing' : '-webkit-grab'; + el.style.cursor = moving ? '-moz-grabbin' : '-moz-grab'; + el.style.cursor = moving ? 'grabbing' : 'grab'; + } + + function unsetGrabCursor () { + var swiper = this; + if (Support.touch || (swiper.params.watchOverflow && swiper.isLocked) || swiper.params.cssMode) { return; } + swiper.el.style.cursor = ''; + } + + var grabCursor = { + setGrabCursor: setGrabCursor, + unsetGrabCursor: unsetGrabCursor, + }; + + function appendSlide (slides) { + var swiper = this; + var $wrapperEl = swiper.$wrapperEl; + var params = swiper.params; + if (params.loop) { + swiper.loopDestroy(); + } + if (typeof slides === 'object' && 'length' in slides) { + for (var i = 0; i < slides.length; i += 1) { + if (slides[i]) { $wrapperEl.append(slides[i]); } + } + } else { + $wrapperEl.append(slides); + } + if (params.loop) { + swiper.loopCreate(); + } + if (!(params.observer && Support.observer)) { + swiper.update(); + } + } + + function prependSlide (slides) { + var swiper = this; + var params = swiper.params; + var $wrapperEl = swiper.$wrapperEl; + var activeIndex = swiper.activeIndex; + + if (params.loop) { + swiper.loopDestroy(); + } + var newActiveIndex = activeIndex + 1; + if (typeof slides === 'object' && 'length' in slides) { + for (var i = 0; i < slides.length; i += 1) { + if (slides[i]) { $wrapperEl.prepend(slides[i]); } + } + newActiveIndex = activeIndex + slides.length; + } else { + $wrapperEl.prepend(slides); + } + if (params.loop) { + swiper.loopCreate(); + } + if (!(params.observer && Support.observer)) { + swiper.update(); + } + swiper.slideTo(newActiveIndex, 0, false); + } + + function addSlide (index, slides) { + var swiper = this; + var $wrapperEl = swiper.$wrapperEl; + var params = swiper.params; + var activeIndex = swiper.activeIndex; + var activeIndexBuffer = activeIndex; + if (params.loop) { + activeIndexBuffer -= swiper.loopedSlides; + swiper.loopDestroy(); + swiper.slides = $wrapperEl.children(("." + (params.slideClass))); + } + var baseLength = swiper.slides.length; + if (index <= 0) { + swiper.prependSlide(slides); + return; + } + if (index >= baseLength) { + swiper.appendSlide(slides); + return; + } + var newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + 1 : activeIndexBuffer; + + var slidesBuffer = []; + for (var i = baseLength - 1; i >= index; i -= 1) { + var currentSlide = swiper.slides.eq(i); + currentSlide.remove(); + slidesBuffer.unshift(currentSlide); + } + + if (typeof slides === 'object' && 'length' in slides) { + for (var i$1 = 0; i$1 < slides.length; i$1 += 1) { + if (slides[i$1]) { $wrapperEl.append(slides[i$1]); } + } + newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + slides.length : activeIndexBuffer; + } else { + $wrapperEl.append(slides); + } + + for (var i$2 = 0; i$2 < slidesBuffer.length; i$2 += 1) { + $wrapperEl.append(slidesBuffer[i$2]); + } + + if (params.loop) { + swiper.loopCreate(); + } + if (!(params.observer && Support.observer)) { + swiper.update(); + } + if (params.loop) { + swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false); + } else { + swiper.slideTo(newActiveIndex, 0, false); + } + } + + function removeSlide (slidesIndexes) { + var swiper = this; + var params = swiper.params; + var $wrapperEl = swiper.$wrapperEl; + var activeIndex = swiper.activeIndex; + + var activeIndexBuffer = activeIndex; + if (params.loop) { + activeIndexBuffer -= swiper.loopedSlides; + swiper.loopDestroy(); + swiper.slides = $wrapperEl.children(("." + (params.slideClass))); + } + var newActiveIndex = activeIndexBuffer; + var indexToRemove; + + if (typeof slidesIndexes === 'object' && 'length' in slidesIndexes) { + for (var i = 0; i < slidesIndexes.length; i += 1) { + indexToRemove = slidesIndexes[i]; + if (swiper.slides[indexToRemove]) { swiper.slides.eq(indexToRemove).remove(); } + if (indexToRemove < newActiveIndex) { newActiveIndex -= 1; } + } + newActiveIndex = Math.max(newActiveIndex, 0); + } else { + indexToRemove = slidesIndexes; + if (swiper.slides[indexToRemove]) { swiper.slides.eq(indexToRemove).remove(); } + if (indexToRemove < newActiveIndex) { newActiveIndex -= 1; } + newActiveIndex = Math.max(newActiveIndex, 0); + } + + if (params.loop) { + swiper.loopCreate(); + } + + if (!(params.observer && Support.observer)) { + swiper.update(); + } + if (params.loop) { + swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false); + } else { + swiper.slideTo(newActiveIndex, 0, false); + } + } + + function removeAllSlides () { + var swiper = this; + + var slidesIndexes = []; + for (var i = 0; i < swiper.slides.length; i += 1) { + slidesIndexes.push(i); + } + swiper.removeSlide(slidesIndexes); + } + + var manipulation = { + appendSlide: appendSlide, + prependSlide: prependSlide, + addSlide: addSlide, + removeSlide: removeSlide, + removeAllSlides: removeAllSlides, + }; + + function onTouchStart (event) { + var swiper = this; + var data = swiper.touchEventsData; + var params = swiper.params; + var touches = swiper.touches; + + if (swiper.animating && params.preventInteractionOnTransition) { + return; + } + var e = event; + if (e.originalEvent) { e = e.originalEvent; } + var $targetEl = $(e.target); + + if (params.touchEventsTarget === 'wrapper') { + if (!$targetEl.closest(swiper.wrapperEl).length) { return; } + } + data.isTouchEvent = e.type === 'touchstart'; + if (!data.isTouchEvent && 'which' in e && e.which === 3) { return; } + if (!data.isTouchEvent && 'button' in e && e.button > 0) { return; } + if (data.isTouched && data.isMoved) { return; } + if (params.noSwiping && $targetEl.closest(params.noSwipingSelector ? params.noSwipingSelector : ("." + (params.noSwipingClass)))[0]) { + swiper.allowClick = true; + return; + } + if (params.swipeHandler) { + if (!$targetEl.closest(params.swipeHandler)[0]) { return; } + } + + touches.currentX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX; + touches.currentY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY; + var startX = touches.currentX; + var startY = touches.currentY; + + // Do NOT start if iOS edge swipe is detected. Otherwise iOS app (UIWebView) cannot swipe-to-go-back anymore + + var edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection; + var edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold; + if ( + edgeSwipeDetection + && ((startX <= edgeSwipeThreshold) + || (startX >= win.screen.width - edgeSwipeThreshold)) + ) { + return; + } + + Utils.extend(data, { + isTouched: true, + isMoved: false, + allowTouchCallbacks: true, + isScrolling: undefined, + startMoving: undefined, + }); + + touches.startX = startX; + touches.startY = startY; + data.touchStartTime = Utils.now(); + swiper.allowClick = true; + swiper.updateSize(); + swiper.swipeDirection = undefined; + if (params.threshold > 0) { data.allowThresholdMove = false; } + if (e.type !== 'touchstart') { + var preventDefault = true; + if ($targetEl.is(data.formElements)) { preventDefault = false; } + if ( + doc.activeElement + && $(doc.activeElement).is(data.formElements) + && doc.activeElement !== $targetEl[0] + ) { + doc.activeElement.blur(); + } + + var shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault; + if (params.touchStartForcePreventDefault || shouldPreventDefault) { + e.preventDefault(); + } + } + swiper.emit('touchStart', e); + } + + function onTouchMove (event) { + var swiper = this; + var data = swiper.touchEventsData; + var params = swiper.params; + var touches = swiper.touches; + var rtl = swiper.rtlTranslate; + var e = event; + if (e.originalEvent) { e = e.originalEvent; } + if (!data.isTouched) { + if (data.startMoving && data.isScrolling) { + swiper.emit('touchMoveOpposite', e); + } + return; + } + if (data.isTouchEvent && e.type !== 'touchmove') { return; } + var targetTouch = e.type === 'touchmove' && e.targetTouches && (e.targetTouches[0] || e.changedTouches[0]); + var pageX = e.type === 'touchmove' ? targetTouch.pageX : e.pageX; + var pageY = e.type === 'touchmove' ? targetTouch.pageY : e.pageY; + if (e.preventedByNestedSwiper) { + touches.startX = pageX; + touches.startY = pageY; + return; + } + if (!swiper.allowTouchMove) { + // isMoved = true; + swiper.allowClick = false; + if (data.isTouched) { + Utils.extend(touches, { + startX: pageX, + startY: pageY, + currentX: pageX, + currentY: pageY, + }); + data.touchStartTime = Utils.now(); + } + return; + } + if (data.isTouchEvent && params.touchReleaseOnEdges && !params.loop) { + if (swiper.isVertical()) { + // Vertical + if ( + (pageY < touches.startY && swiper.translate <= swiper.maxTranslate()) + || (pageY > touches.startY && swiper.translate >= swiper.minTranslate()) + ) { + data.isTouched = false; + data.isMoved = false; + return; + } + } else if ( + (pageX < touches.startX && swiper.translate <= swiper.maxTranslate()) + || (pageX > touches.startX && swiper.translate >= swiper.minTranslate()) + ) { + return; + } + } + if (data.isTouchEvent && doc.activeElement) { + if (e.target === doc.activeElement && $(e.target).is(data.formElements)) { + data.isMoved = true; + swiper.allowClick = false; + return; + } + } + if (data.allowTouchCallbacks) { + swiper.emit('touchMove', e); + } + if (e.targetTouches && e.targetTouches.length > 1) { return; } + + touches.currentX = pageX; + touches.currentY = pageY; + + var diffX = touches.currentX - touches.startX; + var diffY = touches.currentY - touches.startY; + if (swiper.params.threshold && Math.sqrt((Math.pow( diffX, 2 )) + (Math.pow( diffY, 2 ))) < swiper.params.threshold) { return; } + + if (typeof data.isScrolling === 'undefined') { + var touchAngle; + if ((swiper.isHorizontal() && touches.currentY === touches.startY) || (swiper.isVertical() && touches.currentX === touches.startX)) { + data.isScrolling = false; + } else { + // eslint-disable-next-line + if ((diffX * diffX) + (diffY * diffY) >= 25) { + touchAngle = (Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180) / Math.PI; + data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : (90 - touchAngle > params.touchAngle); + } + } + } + if (data.isScrolling) { + swiper.emit('touchMoveOpposite', e); + } + if (typeof data.startMoving === 'undefined') { + if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) { + data.startMoving = true; + } + } + if (data.isScrolling) { + data.isTouched = false; + return; + } + if (!data.startMoving) { + return; + } + swiper.allowClick = false; + if (!params.cssMode && e.cancelable) { + e.preventDefault(); + } + if (params.touchMoveStopPropagation && !params.nested) { + e.stopPropagation(); + } + + if (!data.isMoved) { + if (params.loop) { + swiper.loopFix(); + } + data.startTranslate = swiper.getTranslate(); + swiper.setTransition(0); + if (swiper.animating) { + swiper.$wrapperEl.trigger('webkitTransitionEnd transitionend'); + } + data.allowMomentumBounce = false; + // Grab Cursor + if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) { + swiper.setGrabCursor(true); + } + swiper.emit('sliderFirstMove', e); + } + swiper.emit('sliderMove', e); + data.isMoved = true; + + var diff = swiper.isHorizontal() ? diffX : diffY; + touches.diff = diff; + + diff *= params.touchRatio; + if (rtl) { diff = -diff; } + + swiper.swipeDirection = diff > 0 ? 'prev' : 'next'; + data.currentTranslate = diff + data.startTranslate; + + var disableParentSwiper = true; + var resistanceRatio = params.resistanceRatio; + if (params.touchReleaseOnEdges) { + resistanceRatio = 0; + } + if ((diff > 0 && data.currentTranslate > swiper.minTranslate())) { + disableParentSwiper = false; + if (params.resistance) { data.currentTranslate = (swiper.minTranslate() - 1) + (Math.pow( (-swiper.minTranslate() + data.startTranslate + diff), resistanceRatio )); } + } else if (diff < 0 && data.currentTranslate < swiper.maxTranslate()) { + disableParentSwiper = false; + if (params.resistance) { data.currentTranslate = (swiper.maxTranslate() + 1) - (Math.pow( (swiper.maxTranslate() - data.startTranslate - diff), resistanceRatio )); } + } + + if (disableParentSwiper) { + e.preventedByNestedSwiper = true; + } + + // Directions locks + if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) { + data.currentTranslate = data.startTranslate; + } + if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) { + data.currentTranslate = data.startTranslate; + } + + + // Threshold + if (params.threshold > 0) { + if (Math.abs(diff) > params.threshold || data.allowThresholdMove) { + if (!data.allowThresholdMove) { + data.allowThresholdMove = true; + touches.startX = touches.currentX; + touches.startY = touches.currentY; + data.currentTranslate = data.startTranslate; + touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY; + return; + } + } else { + data.currentTranslate = data.startTranslate; + return; + } + } + + if (!params.followFinger || params.cssMode) { return; } + + // Update active index in free mode + if (params.freeMode || params.watchSlidesProgress || params.watchSlidesVisibility) { + swiper.updateActiveIndex(); + swiper.updateSlidesClasses(); + } + if (params.freeMode) { + // Velocity + if (data.velocities.length === 0) { + data.velocities.push({ + position: touches[swiper.isHorizontal() ? 'startX' : 'startY'], + time: data.touchStartTime, + }); + } + data.velocities.push({ + position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'], + time: Utils.now(), + }); + } + // Update progress + swiper.updateProgress(data.currentTranslate); + // Update translate + swiper.setTranslate(data.currentTranslate); + } + + function onTouchEnd (event) { + var swiper = this; + var data = swiper.touchEventsData; + + var params = swiper.params; + var touches = swiper.touches; + var rtl = swiper.rtlTranslate; + var $wrapperEl = swiper.$wrapperEl; + var slidesGrid = swiper.slidesGrid; + var snapGrid = swiper.snapGrid; + var e = event; + if (e.originalEvent) { e = e.originalEvent; } + if (data.allowTouchCallbacks) { + swiper.emit('touchEnd', e); + } + data.allowTouchCallbacks = false; + if (!data.isTouched) { + if (data.isMoved && params.grabCursor) { + swiper.setGrabCursor(false); + } + data.isMoved = false; + data.startMoving = false; + return; + } + // Return Grab Cursor + if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) { + swiper.setGrabCursor(false); + } + + // Time diff + var touchEndTime = Utils.now(); + var timeDiff = touchEndTime - data.touchStartTime; + + // Tap, doubleTap, Click + if (swiper.allowClick) { + swiper.updateClickedSlide(e); + swiper.emit('tap click', e); + if (timeDiff < 300 && (touchEndTime - data.lastClickTime) < 300) { + swiper.emit('doubleTap doubleClick', e); + } + } + + data.lastClickTime = Utils.now(); + Utils.nextTick(function () { + if (!swiper.destroyed) { swiper.allowClick = true; } + }); + + if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 || data.currentTranslate === data.startTranslate) { + data.isTouched = false; + data.isMoved = false; + data.startMoving = false; + return; + } + data.isTouched = false; + data.isMoved = false; + data.startMoving = false; + + var currentPos; + if (params.followFinger) { + currentPos = rtl ? swiper.translate : -swiper.translate; + } else { + currentPos = -data.currentTranslate; + } + + if (params.cssMode) { + return; + } + + if (params.freeMode) { + if (currentPos < -swiper.minTranslate()) { + swiper.slideTo(swiper.activeIndex); + return; + } + if (currentPos > -swiper.maxTranslate()) { + if (swiper.slides.length < snapGrid.length) { + swiper.slideTo(snapGrid.length - 1); + } else { + swiper.slideTo(swiper.slides.length - 1); + } + return; + } + + if (params.freeModeMomentum) { + if (data.velocities.length > 1) { + var lastMoveEvent = data.velocities.pop(); + var velocityEvent = data.velocities.pop(); + + var distance = lastMoveEvent.position - velocityEvent.position; + var time = lastMoveEvent.time - velocityEvent.time; + swiper.velocity = distance / time; + swiper.velocity /= 2; + if (Math.abs(swiper.velocity) < params.freeModeMinimumVelocity) { + swiper.velocity = 0; + } + // this implies that the user stopped moving a finger then released. + // There would be no events with distance zero, so the last event is stale. + if (time > 150 || (Utils.now() - lastMoveEvent.time) > 300) { + swiper.velocity = 0; + } + } else { + swiper.velocity = 0; + } + swiper.velocity *= params.freeModeMomentumVelocityRatio; + + data.velocities.length = 0; + var momentumDuration = 1000 * params.freeModeMomentumRatio; + var momentumDistance = swiper.velocity * momentumDuration; + + var newPosition = swiper.translate + momentumDistance; + if (rtl) { newPosition = -newPosition; } + + var doBounce = false; + var afterBouncePosition; + var bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeModeMomentumBounceRatio; + var needsLoopFix; + if (newPosition < swiper.maxTranslate()) { + if (params.freeModeMomentumBounce) { + if (newPosition + swiper.maxTranslate() < -bounceAmount) { + newPosition = swiper.maxTranslate() - bounceAmount; + } + afterBouncePosition = swiper.maxTranslate(); + doBounce = true; + data.allowMomentumBounce = true; + } else { + newPosition = swiper.maxTranslate(); + } + if (params.loop && params.centeredSlides) { needsLoopFix = true; } + } else if (newPosition > swiper.minTranslate()) { + if (params.freeModeMomentumBounce) { + if (newPosition - swiper.minTranslate() > bounceAmount) { + newPosition = swiper.minTranslate() + bounceAmount; + } + afterBouncePosition = swiper.minTranslate(); + doBounce = true; + data.allowMomentumBounce = true; + } else { + newPosition = swiper.minTranslate(); + } + if (params.loop && params.centeredSlides) { needsLoopFix = true; } + } else if (params.freeModeSticky) { + var nextSlide; + for (var j = 0; j < snapGrid.length; j += 1) { + if (snapGrid[j] > -newPosition) { + nextSlide = j; + break; + } + } + + if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') { + newPosition = snapGrid[nextSlide]; + } else { + newPosition = snapGrid[nextSlide - 1]; + } + newPosition = -newPosition; + } + if (needsLoopFix) { + swiper.once('transitionEnd', function () { + swiper.loopFix(); + }); + } + // Fix duration + if (swiper.velocity !== 0) { + if (rtl) { + momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity); + } else { + momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity); + } + if (params.freeModeSticky) { + // If freeModeSticky is active and the user ends a swipe with a slow-velocity + // event, then durations can be 20+ seconds to slide one (or zero!) slides. + // It's easy to see this when simulating touch with mouse events. To fix this, + // limit single-slide swipes to the default slide duration. This also has the + // nice side effect of matching slide speed if the user stopped moving before + // lifting finger or mouse vs. moving slowly before lifting the finger/mouse. + // For faster swipes, also apply limits (albeit higher ones). + var moveDistance = Math.abs((rtl ? -newPosition : newPosition) - swiper.translate); + var currentSlideSize = swiper.slidesSizesGrid[swiper.activeIndex]; + if (moveDistance < currentSlideSize) { + momentumDuration = params.speed; + } else if (moveDistance < 2 * currentSlideSize) { + momentumDuration = params.speed * 1.5; + } else { + momentumDuration = params.speed * 2.5; + } + } + } else if (params.freeModeSticky) { + swiper.slideToClosest(); + return; + } + + if (params.freeModeMomentumBounce && doBounce) { + swiper.updateProgress(afterBouncePosition); + swiper.setTransition(momentumDuration); + swiper.setTranslate(newPosition); + swiper.transitionStart(true, swiper.swipeDirection); + swiper.animating = true; + $wrapperEl.transitionEnd(function () { + if (!swiper || swiper.destroyed || !data.allowMomentumBounce) { return; } + swiper.emit('momentumBounce'); + swiper.setTransition(params.speed); + setTimeout(function () { + swiper.setTranslate(afterBouncePosition); + $wrapperEl.transitionEnd(function () { + if (!swiper || swiper.destroyed) { return; } + swiper.transitionEnd(); + }); + }, 0); + }); + } else if (swiper.velocity) { + swiper.updateProgress(newPosition); + swiper.setTransition(momentumDuration); + swiper.setTranslate(newPosition); + swiper.transitionStart(true, swiper.swipeDirection); + if (!swiper.animating) { + swiper.animating = true; + $wrapperEl.transitionEnd(function () { + if (!swiper || swiper.destroyed) { return; } + swiper.transitionEnd(); + }); + } + } else { + swiper.updateProgress(newPosition); + } + + swiper.updateActiveIndex(); + swiper.updateSlidesClasses(); + } else if (params.freeModeSticky) { + swiper.slideToClosest(); + return; + } + + if (!params.freeModeMomentum || timeDiff >= params.longSwipesMs) { + swiper.updateProgress(); + swiper.updateActiveIndex(); + swiper.updateSlidesClasses(); + } + return; + } + + // Find current slide + var stopIndex = 0; + var groupSize = swiper.slidesSizesGrid[0]; + for (var i = 0; i < slidesGrid.length; i += (i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup)) { + var increment$1 = (i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup); + if (typeof slidesGrid[i + increment$1] !== 'undefined') { + if (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment$1]) { + stopIndex = i; + groupSize = slidesGrid[i + increment$1] - slidesGrid[i]; + } + } else if (currentPos >= slidesGrid[i]) { + stopIndex = i; + groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2]; + } + } + + // Find current slide size + var ratio = (currentPos - slidesGrid[stopIndex]) / groupSize; + var increment = (stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup); + + if (timeDiff > params.longSwipesMs) { + // Long touches + if (!params.longSwipes) { + swiper.slideTo(swiper.activeIndex); + return; + } + if (swiper.swipeDirection === 'next') { + if (ratio >= params.longSwipesRatio) { swiper.slideTo(stopIndex + increment); } + else { swiper.slideTo(stopIndex); } + } + if (swiper.swipeDirection === 'prev') { + if (ratio > (1 - params.longSwipesRatio)) { swiper.slideTo(stopIndex + increment); } + else { swiper.slideTo(stopIndex); } + } + } else { + // Short swipes + if (!params.shortSwipes) { + swiper.slideTo(swiper.activeIndex); + return; + } + var isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl); + if (!isNavButtonTarget) { + if (swiper.swipeDirection === 'next') { + swiper.slideTo(stopIndex + increment); + } + if (swiper.swipeDirection === 'prev') { + swiper.slideTo(stopIndex); + } + } else if (e.target === swiper.navigation.nextEl) { + swiper.slideTo(stopIndex + increment); + } else { + swiper.slideTo(stopIndex); + } + } + } + + function onResize () { + var swiper = this; + + var params = swiper.params; + var el = swiper.el; + + if (el && el.offsetWidth === 0) { return; } + + // Breakpoints + if (params.breakpoints) { + swiper.setBreakpoint(); + } + + // Save locks + var allowSlideNext = swiper.allowSlideNext; + var allowSlidePrev = swiper.allowSlidePrev; + var snapGrid = swiper.snapGrid; + + // Disable locks on resize + swiper.allowSlideNext = true; + swiper.allowSlidePrev = true; + + swiper.updateSize(); + swiper.updateSlides(); + + swiper.updateSlidesClasses(); + if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) { + swiper.slideTo(swiper.slides.length - 1, 0, false, true); + } else { + swiper.slideTo(swiper.activeIndex, 0, false, true); + } + + if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) { + swiper.autoplay.run(); + } + // Return locks after resize + swiper.allowSlidePrev = allowSlidePrev; + swiper.allowSlideNext = allowSlideNext; + + if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) { + swiper.checkOverflow(); + } + } + + function onClick (e) { + var swiper = this; + if (!swiper.allowClick) { + if (swiper.params.preventClicks) { e.preventDefault(); } + if (swiper.params.preventClicksPropagation && swiper.animating) { + e.stopPropagation(); + e.stopImmediatePropagation(); + } + } + } + + function onScroll () { + var swiper = this; + var wrapperEl = swiper.wrapperEl; + var rtlTranslate = swiper.rtlTranslate; + swiper.previousTranslate = swiper.translate; + if (swiper.isHorizontal()) { + if (rtlTranslate) { + swiper.translate = ((wrapperEl.scrollWidth - wrapperEl.offsetWidth) - wrapperEl.scrollLeft); + } else { + swiper.translate = -wrapperEl.scrollLeft; + } + } else { + swiper.translate = -wrapperEl.scrollTop; + } + // eslint-disable-next-line + if (swiper.translate === -0) { swiper.translate = 0; } + + swiper.updateActiveIndex(); + swiper.updateSlidesClasses(); + + var newProgress; + var translatesDiff = swiper.maxTranslate() - swiper.minTranslate(); + if (translatesDiff === 0) { + newProgress = 0; + } else { + newProgress = (swiper.translate - swiper.minTranslate()) / (translatesDiff); + } + if (newProgress !== swiper.progress) { + swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate); + } + + swiper.emit('setTranslate', swiper.translate, false); + } + + var dummyEventAttached = false; + function dummyEventListener() {} + + function attachEvents() { + var swiper = this; + var params = swiper.params; + var touchEvents = swiper.touchEvents; + var el = swiper.el; + var wrapperEl = swiper.wrapperEl; + + swiper.onTouchStart = onTouchStart.bind(swiper); + swiper.onTouchMove = onTouchMove.bind(swiper); + swiper.onTouchEnd = onTouchEnd.bind(swiper); + if (params.cssMode) { + swiper.onScroll = onScroll.bind(swiper); + } + + swiper.onClick = onClick.bind(swiper); + + var capture = !!params.nested; + + // Touch Events + if (!Support.touch && Support.pointerEvents) { + el.addEventListener(touchEvents.start, swiper.onTouchStart, false); + doc.addEventListener(touchEvents.move, swiper.onTouchMove, capture); + doc.addEventListener(touchEvents.end, swiper.onTouchEnd, false); + } else { + if (Support.touch) { + var passiveListener = touchEvents.start === 'touchstart' && Support.passiveListener && params.passiveListeners ? { passive: true, capture: false } : false; + el.addEventListener(touchEvents.start, swiper.onTouchStart, passiveListener); + el.addEventListener(touchEvents.move, swiper.onTouchMove, Support.passiveListener ? { passive: false, capture: capture } : capture); + el.addEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener); + if (touchEvents.cancel) { + el.addEventListener(touchEvents.cancel, swiper.onTouchEnd, passiveListener); + } + if (!dummyEventAttached) { + doc.addEventListener('touchstart', dummyEventListener); + dummyEventAttached = true; + } + } + if ((params.simulateTouch && !Device.ios && !Device.android) || (params.simulateTouch && !Support.touch && Device.ios)) { + el.addEventListener('mousedown', swiper.onTouchStart, false); + doc.addEventListener('mousemove', swiper.onTouchMove, capture); + doc.addEventListener('mouseup', swiper.onTouchEnd, false); + } + } + // Prevent Links Clicks + if (params.preventClicks || params.preventClicksPropagation) { + el.addEventListener('click', swiper.onClick, true); + } + if (params.cssMode) { + wrapperEl.addEventListener('scroll', swiper.onScroll); + } + + // Resize handler + if (params.updateOnWindowResize) { + swiper.on((Device.ios || Device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate'), onResize, true); + } else { + swiper.on('observerUpdate', onResize, true); + } + } + + function detachEvents() { + var swiper = this; + + var params = swiper.params; + var touchEvents = swiper.touchEvents; + var el = swiper.el; + var wrapperEl = swiper.wrapperEl; + + var capture = !!params.nested; + + // Touch Events + if (!Support.touch && Support.pointerEvents) { + el.removeEventListener(touchEvents.start, swiper.onTouchStart, false); + doc.removeEventListener(touchEvents.move, swiper.onTouchMove, capture); + doc.removeEventListener(touchEvents.end, swiper.onTouchEnd, false); + } else { + if (Support.touch) { + var passiveListener = touchEvents.start === 'onTouchStart' && Support.passiveListener && params.passiveListeners ? { passive: true, capture: false } : false; + el.removeEventListener(touchEvents.start, swiper.onTouchStart, passiveListener); + el.removeEventListener(touchEvents.move, swiper.onTouchMove, capture); + el.removeEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener); + if (touchEvents.cancel) { + el.removeEventListener(touchEvents.cancel, swiper.onTouchEnd, passiveListener); + } + } + if ((params.simulateTouch && !Device.ios && !Device.android) || (params.simulateTouch && !Support.touch && Device.ios)) { + el.removeEventListener('mousedown', swiper.onTouchStart, false); + doc.removeEventListener('mousemove', swiper.onTouchMove, capture); + doc.removeEventListener('mouseup', swiper.onTouchEnd, false); + } + } + // Prevent Links Clicks + if (params.preventClicks || params.preventClicksPropagation) { + el.removeEventListener('click', swiper.onClick, true); + } + + if (params.cssMode) { + wrapperEl.removeEventListener('scroll', swiper.onScroll); + } + + // Resize handler + swiper.off((Device.ios || Device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate'), onResize); + } + + var events = { + attachEvents: attachEvents, + detachEvents: detachEvents, + }; + + function setBreakpoint () { + var swiper = this; + var activeIndex = swiper.activeIndex; + var initialized = swiper.initialized; + var loopedSlides = swiper.loopedSlides; if ( loopedSlides === void 0 ) loopedSlides = 0; + var params = swiper.params; + var $el = swiper.$el; + var breakpoints = params.breakpoints; + if (!breakpoints || (breakpoints && Object.keys(breakpoints).length === 0)) { return; } + + // Get breakpoint for window width and update parameters + var breakpoint = swiper.getBreakpoint(breakpoints); + + if (breakpoint && swiper.currentBreakpoint !== breakpoint) { + var breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined; + if (breakpointOnlyParams) { + ['slidesPerView', 'spaceBetween', 'slidesPerGroup', 'slidesPerGroupSkip', 'slidesPerColumn'].forEach(function (param) { + var paramValue = breakpointOnlyParams[param]; + if (typeof paramValue === 'undefined') { return; } + if (param === 'slidesPerView' && (paramValue === 'AUTO' || paramValue === 'auto')) { + breakpointOnlyParams[param] = 'auto'; + } else if (param === 'slidesPerView') { + breakpointOnlyParams[param] = parseFloat(paramValue); + } else { + breakpointOnlyParams[param] = parseInt(paramValue, 10); + } + }); + } + + var breakpointParams = breakpointOnlyParams || swiper.originalParams; + var wasMultiRow = params.slidesPerColumn > 1; + var isMultiRow = breakpointParams.slidesPerColumn > 1; + if (wasMultiRow && !isMultiRow) { + $el.removeClass(((params.containerModifierClass) + "multirow " + (params.containerModifierClass) + "multirow-column")); + } else if (!wasMultiRow && isMultiRow) { + $el.addClass(((params.containerModifierClass) + "multirow")); + if (breakpointParams.slidesPerColumnFill === 'column') { + $el.addClass(((params.containerModifierClass) + "multirow-column")); + } + } + + var directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction; + var needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged); + + if (directionChanged && initialized) { + swiper.changeDirection(); + } + + Utils.extend(swiper.params, breakpointParams); + + Utils.extend(swiper, { + allowTouchMove: swiper.params.allowTouchMove, + allowSlideNext: swiper.params.allowSlideNext, + allowSlidePrev: swiper.params.allowSlidePrev, + }); + + swiper.currentBreakpoint = breakpoint; + + if (needsReLoop && initialized) { + swiper.loopDestroy(); + swiper.loopCreate(); + swiper.updateSlides(); + swiper.slideTo((activeIndex - loopedSlides) + swiper.loopedSlides, 0, false); + } + + swiper.emit('breakpoint', breakpointParams); + } + } + + function getBreakpoint (breakpoints) { + // Get breakpoint for window width + if (!breakpoints) { return undefined; } + var breakpoint = false; + + var points = Object.keys(breakpoints).map(function (point) { + if (typeof point === 'string' && point.indexOf('@') === 0) { + var minRatio = parseFloat(point.substr(1)); + var value = win.innerHeight * minRatio; + return { value: value, point: point }; + } + return { value: point, point: point }; + }); + + points.sort(function (a, b) { return parseInt(a.value, 10) - parseInt(b.value, 10); }); + for (var i = 0; i < points.length; i += 1) { + var ref = points[i]; + var point = ref.point; + var value = ref.value; + if (value <= win.innerWidth) { + breakpoint = point; + } + } + return breakpoint || 'max'; + } + + var breakpoints = { setBreakpoint: setBreakpoint, getBreakpoint: getBreakpoint }; + + function addClasses () { + var swiper = this; + var classNames = swiper.classNames; + var params = swiper.params; + var rtl = swiper.rtl; + var $el = swiper.$el; + var suffixes = []; + + suffixes.push('initialized'); + suffixes.push(params.direction); + + if (params.freeMode) { + suffixes.push('free-mode'); + } + if (params.autoHeight) { + suffixes.push('autoheight'); + } + if (rtl) { + suffixes.push('rtl'); + } + if (params.slidesPerColumn > 1) { + suffixes.push('multirow'); + if (params.slidesPerColumnFill === 'column') { + suffixes.push('multirow-column'); + } + } + if (Device.android) { + suffixes.push('android'); + } + if (Device.ios) { + suffixes.push('ios'); + } + + if (params.cssMode) { + suffixes.push('css-mode'); + } + + suffixes.forEach(function (suffix) { + classNames.push(params.containerModifierClass + suffix); + }); + + $el.addClass(classNames.join(' ')); + } + + function removeClasses () { + var swiper = this; + var $el = swiper.$el; + var classNames = swiper.classNames; + + $el.removeClass(classNames.join(' ')); + } + + var classes = { addClasses: addClasses, removeClasses: removeClasses }; + + function loadImage (imageEl, src, srcset, sizes, checkForComplete, callback) { + var image; + function onReady() { + if (callback) { callback(); } + } + var isPicture = $(imageEl).parent('picture')[0]; + + if (!isPicture && (!imageEl.complete || !checkForComplete)) { + if (src) { + image = new win.Image(); + image.onload = onReady; + image.onerror = onReady; + if (sizes) { + image.sizes = sizes; + } + if (srcset) { + image.srcset = srcset; + } + if (src) { + image.src = src; + } + } else { + onReady(); + } + } else { + // image already loaded... + onReady(); + } + } + + function preloadImages () { + var swiper = this; + swiper.imagesToLoad = swiper.$el.find('img'); + function onReady() { + if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper.destroyed) { return; } + if (swiper.imagesLoaded !== undefined) { swiper.imagesLoaded += 1; } + if (swiper.imagesLoaded === swiper.imagesToLoad.length) { + if (swiper.params.updateOnImagesReady) { swiper.update(); } + swiper.emit('imagesReady'); + } + } + for (var i = 0; i < swiper.imagesToLoad.length; i += 1) { + var imageEl = swiper.imagesToLoad[i]; + swiper.loadImage( + imageEl, + imageEl.currentSrc || imageEl.getAttribute('src'), + imageEl.srcset || imageEl.getAttribute('srcset'), + imageEl.sizes || imageEl.getAttribute('sizes'), + true, + onReady + ); + } + } + + var images = { + loadImage: loadImage, + preloadImages: preloadImages, + }; + + function checkOverflow() { + var swiper = this; + var params = swiper.params; + var wasLocked = swiper.isLocked; + var lastSlidePosition = swiper.slides.length > 0 && (params.slidesOffsetBefore + (params.spaceBetween * (swiper.slides.length - 1)) + ((swiper.slides[0]).offsetWidth) * swiper.slides.length); + + if (params.slidesOffsetBefore && params.slidesOffsetAfter && lastSlidePosition) { + swiper.isLocked = lastSlidePosition <= swiper.size; + } else { + swiper.isLocked = swiper.snapGrid.length === 1; + } + + swiper.allowSlideNext = !swiper.isLocked; + swiper.allowSlidePrev = !swiper.isLocked; + + // events + if (wasLocked !== swiper.isLocked) { swiper.emit(swiper.isLocked ? 'lock' : 'unlock'); } + + if (wasLocked && wasLocked !== swiper.isLocked) { + swiper.isEnd = false; + swiper.navigation.update(); + } + } + + var checkOverflow$1 = { checkOverflow: checkOverflow }; + + var defaults = { + init: true, + direction: 'horizontal', + touchEventsTarget: 'container', + initialSlide: 0, + speed: 300, + cssMode: false, + updateOnWindowResize: true, + // + preventInteractionOnTransition: false, + + // To support iOS's swipe-to-go-back gesture (when being used in-app, with UIWebView). + edgeSwipeDetection: false, + edgeSwipeThreshold: 20, + + // Free mode + freeMode: false, + freeModeMomentum: true, + freeModeMomentumRatio: 1, + freeModeMomentumBounce: true, + freeModeMomentumBounceRatio: 1, + freeModeMomentumVelocityRatio: 1, + freeModeSticky: false, + freeModeMinimumVelocity: 0.02, + + // Autoheight + autoHeight: false, + + // Set wrapper width + setWrapperSize: false, + + // Virtual Translate + virtualTranslate: false, + + // Effects + effect: 'slide', // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip' + + // Breakpoints + breakpoints: undefined, + + // Slides grid + spaceBetween: 0, + slidesPerView: 1, + slidesPerColumn: 1, + slidesPerColumnFill: 'column', + slidesPerGroup: 1, + slidesPerGroupSkip: 0, + centeredSlides: false, + centeredSlidesBounds: false, + slidesOffsetBefore: 0, // in px + slidesOffsetAfter: 0, // in px + normalizeSlideIndex: true, + centerInsufficientSlides: false, + + // Disable swiper and hide navigation when container not overflow + watchOverflow: false, + + // Round length + roundLengths: false, + + // Touches + touchRatio: 1, + touchAngle: 45, + simulateTouch: true, + shortSwipes: true, + longSwipes: true, + longSwipesRatio: 0.5, + longSwipesMs: 300, + followFinger: true, + allowTouchMove: true, + threshold: 0, + touchMoveStopPropagation: false, + touchStartPreventDefault: true, + touchStartForcePreventDefault: false, + touchReleaseOnEdges: false, + + // Unique Navigation Elements + uniqueNavElements: true, + + // Resistance + resistance: true, + resistanceRatio: 0.85, + + // Progress + watchSlidesProgress: false, + watchSlidesVisibility: false, + + // Cursor + grabCursor: false, + + // Clicks + preventClicks: true, + preventClicksPropagation: true, + slideToClickedSlide: false, + + // Images + preloadImages: true, + updateOnImagesReady: true, + + // loop + loop: false, + loopAdditionalSlides: 0, + loopedSlides: null, + loopFillGroupWithBlank: false, + + // Swiping/no swiping + allowSlidePrev: true, + allowSlideNext: true, + swipeHandler: null, // '.swipe-handler', + noSwiping: true, + noSwipingClass: 'swiper-no-swiping', + noSwipingSelector: null, + + // Passive Listeners + passiveListeners: true, + + // NS + containerModifierClass: 'swiper-container-', // NEW + slideClass: 'swiper-slide', + slideBlankClass: 'swiper-slide-invisible-blank', + slideActiveClass: 'swiper-slide-active', + slideDuplicateActiveClass: 'swiper-slide-duplicate-active', + slideVisibleClass: 'swiper-slide-visible', + slideDuplicateClass: 'swiper-slide-duplicate', + slideNextClass: 'swiper-slide-next', + slideDuplicateNextClass: 'swiper-slide-duplicate-next', + slidePrevClass: 'swiper-slide-prev', + slideDuplicatePrevClass: 'swiper-slide-duplicate-prev', + wrapperClass: 'swiper-wrapper', + + // Callbacks + runCallbacksOnInit: true, + }; + + /* eslint no-param-reassign: "off" */ + + var prototypes = { + update: update, + translate: translate, + transition: transition$1, + slide: slide, + loop: loop, + grabCursor: grabCursor, + manipulation: manipulation, + events: events, + breakpoints: breakpoints, + checkOverflow: checkOverflow$1, + classes: classes, + images: images, + }; + + var extendedDefaults = {}; + + var Swiper = /*@__PURE__*/(function (SwiperClass) { + function Swiper() { + var assign; + + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + var el; + var params; + if (args.length === 1 && args[0].constructor && args[0].constructor === Object) { + params = args[0]; + } else { + (assign = args, el = assign[0], params = assign[1]); + } + if (!params) { params = {}; } + + params = Utils.extend({}, params); + if (el && !params.el) { params.el = el; } + + SwiperClass.call(this, params); + + Object.keys(prototypes).forEach(function (prototypeGroup) { + Object.keys(prototypes[prototypeGroup]).forEach(function (protoMethod) { + if (!Swiper.prototype[protoMethod]) { + Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod]; + } + }); + }); + + // Swiper Instance + var swiper = this; + if (typeof swiper.modules === 'undefined') { + swiper.modules = {}; + } + Object.keys(swiper.modules).forEach(function (moduleName) { + var module = swiper.modules[moduleName]; + if (module.params) { + var moduleParamName = Object.keys(module.params)[0]; + var moduleParams = module.params[moduleParamName]; + if (typeof moduleParams !== 'object' || moduleParams === null) { return; } + if (!(moduleParamName in params && 'enabled' in moduleParams)) { return; } + if (params[moduleParamName] === true) { + params[moduleParamName] = { enabled: true }; + } + if ( + typeof params[moduleParamName] === 'object' + && !('enabled' in params[moduleParamName]) + ) { + params[moduleParamName].enabled = true; + } + if (!params[moduleParamName]) { params[moduleParamName] = { enabled: false }; } + } + }); + + // Extend defaults with modules params + var swiperParams = Utils.extend({}, defaults); + swiper.useModulesParams(swiperParams); + + // Extend defaults with passed params + swiper.params = Utils.extend({}, swiperParams, extendedDefaults, params); + swiper.originalParams = Utils.extend({}, swiper.params); + swiper.passedParams = Utils.extend({}, params); + + // Save Dom lib + swiper.$ = $; + + // Find el + var $el = $(swiper.params.el); + el = $el[0]; + + if (!el) { + return undefined; + } + + if ($el.length > 1) { + var swipers = []; + $el.each(function (index, containerEl) { + var newParams = Utils.extend({}, params, { el: containerEl }); + swipers.push(new Swiper(newParams)); + }); + return swipers; + } + + el.swiper = swiper; + $el.data('swiper', swiper); + + // Find Wrapper + var $wrapperEl; + if (el && el.shadowRoot && el.shadowRoot.querySelector) { + $wrapperEl = $(el.shadowRoot.querySelector(("." + (swiper.params.wrapperClass)))); + // Children needs to return slot items + $wrapperEl.children = function (options) { return $el.children(options); }; + } else { + $wrapperEl = $el.children(("." + (swiper.params.wrapperClass))); + } + // Extend Swiper + Utils.extend(swiper, { + $el: $el, + el: el, + $wrapperEl: $wrapperEl, + wrapperEl: $wrapperEl[0], + + // Classes + classNames: [], + + // Slides + slides: $(), + slidesGrid: [], + snapGrid: [], + slidesSizesGrid: [], + + // isDirection + isHorizontal: function isHorizontal() { + return swiper.params.direction === 'horizontal'; + }, + isVertical: function isVertical() { + return swiper.params.direction === 'vertical'; + }, + // RTL + rtl: (el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'), + rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'), + wrongRTL: $wrapperEl.css('display') === '-webkit-box', + + // Indexes + activeIndex: 0, + realIndex: 0, + + // + isBeginning: true, + isEnd: false, + + // Props + translate: 0, + previousTranslate: 0, + progress: 0, + velocity: 0, + animating: false, + + // Locks + allowSlideNext: swiper.params.allowSlideNext, + allowSlidePrev: swiper.params.allowSlidePrev, + + // Touch Events + touchEvents: (function touchEvents() { + var touch = ['touchstart', 'touchmove', 'touchend', 'touchcancel']; + var desktop = ['mousedown', 'mousemove', 'mouseup']; + if (Support.pointerEvents) { + desktop = ['pointerdown', 'pointermove', 'pointerup']; + } + swiper.touchEventsTouch = { + start: touch[0], + move: touch[1], + end: touch[2], + cancel: touch[3], + }; + swiper.touchEventsDesktop = { + start: desktop[0], + move: desktop[1], + end: desktop[2], + }; + return Support.touch || !swiper.params.simulateTouch ? swiper.touchEventsTouch : swiper.touchEventsDesktop; + }()), + touchEventsData: { + isTouched: undefined, + isMoved: undefined, + allowTouchCallbacks: undefined, + touchStartTime: undefined, + isScrolling: undefined, + currentTranslate: undefined, + startTranslate: undefined, + allowThresholdMove: undefined, + // Form elements to match + formElements: 'input, select, option, textarea, button, video, label', + // Last click time + lastClickTime: Utils.now(), + clickTimeout: undefined, + // Velocities + velocities: [], + allowMomentumBounce: undefined, + isTouchEvent: undefined, + startMoving: undefined, + }, + + // Clicks + allowClick: true, + + // Touches + allowTouchMove: swiper.params.allowTouchMove, + + touches: { + startX: 0, + startY: 0, + currentX: 0, + currentY: 0, + diff: 0, + }, + + // Images + imagesToLoad: [], + imagesLoaded: 0, + + }); + + // Install Modules + swiper.useModules(); + + // Init + if (swiper.params.init) { + swiper.init(); + } + + // Return app instance + return swiper; + } + + if ( SwiperClass ) Swiper.__proto__ = SwiperClass; + Swiper.prototype = Object.create( SwiperClass && SwiperClass.prototype ); + Swiper.prototype.constructor = Swiper; + + var staticAccessors = { extendedDefaults: { configurable: true },defaults: { configurable: true },Class: { configurable: true },$: { configurable: true } }; + + Swiper.prototype.slidesPerViewDynamic = function slidesPerViewDynamic () { + var swiper = this; + var params = swiper.params; + var slides = swiper.slides; + var slidesGrid = swiper.slidesGrid; + var swiperSize = swiper.size; + var activeIndex = swiper.activeIndex; + var spv = 1; + if (params.centeredSlides) { + var slideSize = slides[activeIndex].swiperSlideSize; + var breakLoop; + for (var i = activeIndex + 1; i < slides.length; i += 1) { + if (slides[i] && !breakLoop) { + slideSize += slides[i].swiperSlideSize; + spv += 1; + if (slideSize > swiperSize) { breakLoop = true; } + } + } + for (var i$1 = activeIndex - 1; i$1 >= 0; i$1 -= 1) { + if (slides[i$1] && !breakLoop) { + slideSize += slides[i$1].swiperSlideSize; + spv += 1; + if (slideSize > swiperSize) { breakLoop = true; } + } + } + } else { + for (var i$2 = activeIndex + 1; i$2 < slides.length; i$2 += 1) { + if (slidesGrid[i$2] - slidesGrid[activeIndex] < swiperSize) { + spv += 1; + } + } + } + return spv; + }; + + Swiper.prototype.update = function update () { + var swiper = this; + if (!swiper || swiper.destroyed) { return; } + var snapGrid = swiper.snapGrid; + var params = swiper.params; + // Breakpoints + if (params.breakpoints) { + swiper.setBreakpoint(); + } + swiper.updateSize(); + swiper.updateSlides(); + swiper.updateProgress(); + swiper.updateSlidesClasses(); + + function setTranslate() { + var translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate; + var newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate()); + swiper.setTranslate(newTranslate); + swiper.updateActiveIndex(); + swiper.updateSlidesClasses(); + } + var translated; + if (swiper.params.freeMode) { + setTranslate(); + if (swiper.params.autoHeight) { + swiper.updateAutoHeight(); + } + } else { + if ((swiper.params.slidesPerView === 'auto' || swiper.params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) { + translated = swiper.slideTo(swiper.slides.length - 1, 0, false, true); + } else { + translated = swiper.slideTo(swiper.activeIndex, 0, false, true); + } + if (!translated) { + setTranslate(); + } + } + if (params.watchOverflow && snapGrid !== swiper.snapGrid) { + swiper.checkOverflow(); + } + swiper.emit('update'); + }; + + Swiper.prototype.changeDirection = function changeDirection (newDirection, needUpdate) { + if ( needUpdate === void 0 ) needUpdate = true; + + var swiper = this; + var currentDirection = swiper.params.direction; + if (!newDirection) { + // eslint-disable-next-line + newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal'; + } + if ((newDirection === currentDirection) || (newDirection !== 'horizontal' && newDirection !== 'vertical')) { + return swiper; + } + + swiper.$el + .removeClass(("" + (swiper.params.containerModifierClass) + currentDirection)) + .addClass(("" + (swiper.params.containerModifierClass) + newDirection)); + + swiper.params.direction = newDirection; + + swiper.slides.each(function (slideIndex, slideEl) { + if (newDirection === 'vertical') { + slideEl.style.width = ''; + } else { + slideEl.style.height = ''; + } + }); + + swiper.emit('changeDirection'); + if (needUpdate) { swiper.update(); } + + return swiper; + }; + + Swiper.prototype.init = function init () { + var swiper = this; + if (swiper.initialized) { return; } + + swiper.emit('beforeInit'); + + // Set breakpoint + if (swiper.params.breakpoints) { + swiper.setBreakpoint(); + } + + // Add Classes + swiper.addClasses(); + + // Create loop + if (swiper.params.loop) { + swiper.loopCreate(); + } + + // Update size + swiper.updateSize(); + + // Update slides + swiper.updateSlides(); + + if (swiper.params.watchOverflow) { + swiper.checkOverflow(); + } + + // Set Grab Cursor + if (swiper.params.grabCursor) { + swiper.setGrabCursor(); + } + + if (swiper.params.preloadImages) { + swiper.preloadImages(); + } + + // Slide To Initial Slide + if (swiper.params.loop) { + swiper.slideTo(swiper.params.initialSlide + swiper.loopedSlides, 0, swiper.params.runCallbacksOnInit); + } else { + swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit); + } + + // Attach events + swiper.attachEvents(); + + // Init Flag + swiper.initialized = true; + + // Emit + swiper.emit('init'); + }; + + Swiper.prototype.destroy = function destroy (deleteInstance, cleanStyles) { + if ( deleteInstance === void 0 ) deleteInstance = true; + if ( cleanStyles === void 0 ) cleanStyles = true; + + var swiper = this; + var params = swiper.params; + var $el = swiper.$el; + var $wrapperEl = swiper.$wrapperEl; + var slides = swiper.slides; + + if (typeof swiper.params === 'undefined' || swiper.destroyed) { + return null; + } + + swiper.emit('beforeDestroy'); + + // Init Flag + swiper.initialized = false; + + // Detach events + swiper.detachEvents(); + + // Destroy loop + if (params.loop) { + swiper.loopDestroy(); + } + + // Cleanup styles + if (cleanStyles) { + swiper.removeClasses(); + $el.removeAttr('style'); + $wrapperEl.removeAttr('style'); + if (slides && slides.length) { + slides + .removeClass([ + params.slideVisibleClass, + params.slideActiveClass, + params.slideNextClass, + params.slidePrevClass ].join(' ')) + .removeAttr('style') + .removeAttr('data-swiper-slide-index'); + } + } + + swiper.emit('destroy'); + + // Detach emitter events + Object.keys(swiper.eventsListeners).forEach(function (eventName) { + swiper.off(eventName); + }); + + if (deleteInstance !== false) { + swiper.$el[0].swiper = null; + swiper.$el.data('swiper', null); + Utils.deleteProps(swiper); + } + swiper.destroyed = true; + + return null; + }; + + Swiper.extendDefaults = function extendDefaults (newDefaults) { + Utils.extend(extendedDefaults, newDefaults); + }; + + staticAccessors.extendedDefaults.get = function () { + return extendedDefaults; + }; + + staticAccessors.defaults.get = function () { + return defaults; + }; + + staticAccessors.Class.get = function () { + return SwiperClass; + }; + + staticAccessors.$.get = function () { + return $; + }; + + Object.defineProperties( Swiper, staticAccessors ); + + return Swiper; + }(Framework7Class)); + + var Device$1 = { + name: 'device', + proto: { + device: Device, + }, + static: { + device: Device, + }, + }; + + var Support$1 = { + name: 'support', + proto: { + support: Support, + }, + static: { + support: Support, + }, + }; + + var Browser = (function Browser() { + function isSafari() { + var ua = win.navigator.userAgent.toLowerCase(); + return (ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0); + } + return { + isEdge: !!win.navigator.userAgent.match(/Edge/g), + isSafari: isSafari(), + isUiWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(win.navigator.userAgent), + }; + }()); + + var Browser$1 = { + name: 'browser', + proto: { + browser: Browser, + }, + static: { + browser: Browser, + }, + }; + + var Resize = { + name: 'resize', + create: function create() { + var swiper = this; + Utils.extend(swiper, { + resize: { + resizeHandler: function resizeHandler() { + if (!swiper || swiper.destroyed || !swiper.initialized) { return; } + swiper.emit('beforeResize'); + swiper.emit('resize'); + }, + orientationChangeHandler: function orientationChangeHandler() { + if (!swiper || swiper.destroyed || !swiper.initialized) { return; } + swiper.emit('orientationchange'); + }, + }, + }); + }, + on: { + init: function init() { + var swiper = this; + // Emit resize + win.addEventListener('resize', swiper.resize.resizeHandler); + + // Emit orientationchange + win.addEventListener('orientationchange', swiper.resize.orientationChangeHandler); + }, + destroy: function destroy() { + var swiper = this; + win.removeEventListener('resize', swiper.resize.resizeHandler); + win.removeEventListener('orientationchange', swiper.resize.orientationChangeHandler); + }, + }, + }; + + var Observer = { + func: win.MutationObserver || win.WebkitMutationObserver, + attach: function attach(target, options) { + if ( options === void 0 ) options = {}; + + var swiper = this; + + var ObserverFunc = Observer.func; + var observer = new ObserverFunc(function (mutations) { + // The observerUpdate event should only be triggered + // once despite the number of mutations. Additional + // triggers are redundant and are very costly + if (mutations.length === 1) { + swiper.emit('observerUpdate', mutations[0]); + return; + } + var observerUpdate = function observerUpdate() { + swiper.emit('observerUpdate', mutations[0]); + }; + + if (win.requestAnimationFrame) { + win.requestAnimationFrame(observerUpdate); + } else { + win.setTimeout(observerUpdate, 0); + } + }); + + observer.observe(target, { + attributes: typeof options.attributes === 'undefined' ? true : options.attributes, + childList: typeof options.childList === 'undefined' ? true : options.childList, + characterData: typeof options.characterData === 'undefined' ? true : options.characterData, + }); + + swiper.observer.observers.push(observer); + }, + init: function init() { + var swiper = this; + if (!Support.observer || !swiper.params.observer) { return; } + if (swiper.params.observeParents) { + var containerParents = swiper.$el.parents(); + for (var i = 0; i < containerParents.length; i += 1) { + swiper.observer.attach(containerParents[i]); + } + } + // Observe container + swiper.observer.attach(swiper.$el[0], { childList: swiper.params.observeSlideChildren }); + + // Observe wrapper + swiper.observer.attach(swiper.$wrapperEl[0], { attributes: false }); + }, + destroy: function destroy() { + var swiper = this; + swiper.observer.observers.forEach(function (observer) { + observer.disconnect(); + }); + swiper.observer.observers = []; + }, + }; + + var Observer$1 = { + name: 'observer', + params: { + observer: false, + observeParents: false, + observeSlideChildren: false, + }, + create: function create() { + var swiper = this; + Utils.extend(swiper, { + observer: { + init: Observer.init.bind(swiper), + attach: Observer.attach.bind(swiper), + destroy: Observer.destroy.bind(swiper), + observers: [], + }, + }); + }, + on: { + init: function init() { + var swiper = this; + swiper.observer.init(); + }, + destroy: function destroy() { + var swiper = this; + swiper.observer.destroy(); + }, + }, + }; + + var Virtual = { + update: function update(force) { + var swiper = this; + var ref = swiper.params; + var slidesPerView = ref.slidesPerView; + var slidesPerGroup = ref.slidesPerGroup; + var centeredSlides = ref.centeredSlides; + var ref$1 = swiper.params.virtual; + var addSlidesBefore = ref$1.addSlidesBefore; + var addSlidesAfter = ref$1.addSlidesAfter; + var ref$2 = swiper.virtual; + var previousFrom = ref$2.from; + var previousTo = ref$2.to; + var slides = ref$2.slides; + var previousSlidesGrid = ref$2.slidesGrid; + var renderSlide = ref$2.renderSlide; + var previousOffset = ref$2.offset; + swiper.updateActiveIndex(); + var activeIndex = swiper.activeIndex || 0; + + var offsetProp; + if (swiper.rtlTranslate) { offsetProp = 'right'; } + else { offsetProp = swiper.isHorizontal() ? 'left' : 'top'; } + + var slidesAfter; + var slidesBefore; + if (centeredSlides) { + slidesAfter = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesBefore; + slidesBefore = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesAfter; + } else { + slidesAfter = slidesPerView + (slidesPerGroup - 1) + addSlidesBefore; + slidesBefore = slidesPerGroup + addSlidesAfter; + } + var from = Math.max((activeIndex || 0) - slidesBefore, 0); + var to = Math.min((activeIndex || 0) + slidesAfter, slides.length - 1); + var offset = (swiper.slidesGrid[from] || 0) - (swiper.slidesGrid[0] || 0); + + Utils.extend(swiper.virtual, { + from: from, + to: to, + offset: offset, + slidesGrid: swiper.slidesGrid, + }); + + function onRendered() { + swiper.updateSlides(); + swiper.updateProgress(); + swiper.updateSlidesClasses(); + if (swiper.lazy && swiper.params.lazy.enabled) { + swiper.lazy.load(); + } + } + + if (previousFrom === from && previousTo === to && !force) { + if (swiper.slidesGrid !== previousSlidesGrid && offset !== previousOffset) { + swiper.slides.css(offsetProp, (offset + "px")); + } + swiper.updateProgress(); + return; + } + if (swiper.params.virtual.renderExternal) { + swiper.params.virtual.renderExternal.call(swiper, { + offset: offset, + from: from, + to: to, + slides: (function getSlides() { + var slidesToRender = []; + for (var i = from; i <= to; i += 1) { + slidesToRender.push(slides[i]); + } + return slidesToRender; + }()), + }); + onRendered(); + return; + } + var prependIndexes = []; + var appendIndexes = []; + if (force) { + swiper.$wrapperEl.find(("." + (swiper.params.slideClass))).remove(); + } else { + for (var i = previousFrom; i <= previousTo; i += 1) { + if (i < from || i > to) { + swiper.$wrapperEl.find(("." + (swiper.params.slideClass) + "[data-swiper-slide-index=\"" + i + "\"]")).remove(); + } + } + } + for (var i$1 = 0; i$1 < slides.length; i$1 += 1) { + if (i$1 >= from && i$1 <= to) { + if (typeof previousTo === 'undefined' || force) { + appendIndexes.push(i$1); + } else { + if (i$1 > previousTo) { appendIndexes.push(i$1); } + if (i$1 < previousFrom) { prependIndexes.push(i$1); } + } + } + } + appendIndexes.forEach(function (index) { + swiper.$wrapperEl.append(renderSlide(slides[index], index)); + }); + prependIndexes.sort(function (a, b) { return b - a; }).forEach(function (index) { + swiper.$wrapperEl.prepend(renderSlide(slides[index], index)); + }); + swiper.$wrapperEl.children('.swiper-slide').css(offsetProp, (offset + "px")); + onRendered(); + }, + renderSlide: function renderSlide(slide, index) { + var swiper = this; + var params = swiper.params.virtual; + if (params.cache && swiper.virtual.cache[index]) { + return swiper.virtual.cache[index]; + } + var $slideEl = params.renderSlide + ? $(params.renderSlide.call(swiper, slide, index)) + : $(("
          " + slide + "
          ")); + if (!$slideEl.attr('data-swiper-slide-index')) { $slideEl.attr('data-swiper-slide-index', index); } + if (params.cache) { swiper.virtual.cache[index] = $slideEl; } + return $slideEl; + }, + appendSlide: function appendSlide(slides) { + var swiper = this; + if (typeof slides === 'object' && 'length' in slides) { + for (var i = 0; i < slides.length; i += 1) { + if (slides[i]) { swiper.virtual.slides.push(slides[i]); } + } + } else { + swiper.virtual.slides.push(slides); + } + swiper.virtual.update(true); + }, + prependSlide: function prependSlide(slides) { + var swiper = this; + var activeIndex = swiper.activeIndex; + var newActiveIndex = activeIndex + 1; + var numberOfNewSlides = 1; + + if (Array.isArray(slides)) { + for (var i = 0; i < slides.length; i += 1) { + if (slides[i]) { swiper.virtual.slides.unshift(slides[i]); } + } + newActiveIndex = activeIndex + slides.length; + numberOfNewSlides = slides.length; + } else { + swiper.virtual.slides.unshift(slides); + } + if (swiper.params.virtual.cache) { + var cache = swiper.virtual.cache; + var newCache = {}; + Object.keys(cache).forEach(function (cachedIndex) { + var $cachedEl = cache[cachedIndex]; + var cachedElIndex = $cachedEl.attr('data-swiper-slide-index'); + if (cachedElIndex) { + $cachedEl.attr('data-swiper-slide-index', parseInt(cachedElIndex, 10) + 1); + } + newCache[parseInt(cachedIndex, 10) + numberOfNewSlides] = $cachedEl; + }); + swiper.virtual.cache = newCache; + } + swiper.virtual.update(true); + swiper.slideTo(newActiveIndex, 0); + }, + removeSlide: function removeSlide(slidesIndexes) { + var swiper = this; + if (typeof slidesIndexes === 'undefined' || slidesIndexes === null) { return; } + var activeIndex = swiper.activeIndex; + if (Array.isArray(slidesIndexes)) { + for (var i = slidesIndexes.length - 1; i >= 0; i -= 1) { + swiper.virtual.slides.splice(slidesIndexes[i], 1); + if (swiper.params.virtual.cache) { + delete swiper.virtual.cache[slidesIndexes[i]]; + } + if (slidesIndexes[i] < activeIndex) { activeIndex -= 1; } + activeIndex = Math.max(activeIndex, 0); + } + } else { + swiper.virtual.slides.splice(slidesIndexes, 1); + if (swiper.params.virtual.cache) { + delete swiper.virtual.cache[slidesIndexes]; + } + if (slidesIndexes < activeIndex) { activeIndex -= 1; } + activeIndex = Math.max(activeIndex, 0); + } + swiper.virtual.update(true); + swiper.slideTo(activeIndex, 0); + }, + removeAllSlides: function removeAllSlides() { + var swiper = this; + swiper.virtual.slides = []; + if (swiper.params.virtual.cache) { + swiper.virtual.cache = {}; + } + swiper.virtual.update(true); + swiper.slideTo(0, 0); + }, + }; + + var Virtual$1 = { + name: 'virtual', + params: { + virtual: { + enabled: false, + slides: [], + cache: true, + renderSlide: null, + renderExternal: null, + addSlidesBefore: 0, + addSlidesAfter: 0, + }, + }, + create: function create() { + var swiper = this; + Utils.extend(swiper, { + virtual: { + update: Virtual.update.bind(swiper), + appendSlide: Virtual.appendSlide.bind(swiper), + prependSlide: Virtual.prependSlide.bind(swiper), + removeSlide: Virtual.removeSlide.bind(swiper), + removeAllSlides: Virtual.removeAllSlides.bind(swiper), + renderSlide: Virtual.renderSlide.bind(swiper), + slides: swiper.params.virtual.slides, + cache: {}, + }, + }); + }, + on: { + beforeInit: function beforeInit() { + var swiper = this; + if (!swiper.params.virtual.enabled) { return; } + swiper.classNames.push(((swiper.params.containerModifierClass) + "virtual")); + var overwriteParams = { + watchSlidesProgress: true, + }; + Utils.extend(swiper.params, overwriteParams); + Utils.extend(swiper.originalParams, overwriteParams); + + if (!swiper.params.initialSlide) { + swiper.virtual.update(); + } + }, + setTranslate: function setTranslate() { + var swiper = this; + if (!swiper.params.virtual.enabled) { return; } + swiper.virtual.update(); + }, + }, + }; + + var Keyboard = { + handle: function handle(event) { + var swiper = this; + var rtl = swiper.rtlTranslate; + var e = event; + if (e.originalEvent) { e = e.originalEvent; } // jquery fix + var kc = e.keyCode || e.charCode; + // Directions locks + if (!swiper.allowSlideNext && ((swiper.isHorizontal() && kc === 39) || (swiper.isVertical() && kc === 40) || kc === 34)) { + return false; + } + if (!swiper.allowSlidePrev && ((swiper.isHorizontal() && kc === 37) || (swiper.isVertical() && kc === 38) || kc === 33)) { + return false; + } + if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey) { + return undefined; + } + if (doc.activeElement && doc.activeElement.nodeName && (doc.activeElement.nodeName.toLowerCase() === 'input' || doc.activeElement.nodeName.toLowerCase() === 'textarea')) { + return undefined; + } + if (swiper.params.keyboard.onlyInViewport && (kc === 33 || kc === 34 || kc === 37 || kc === 39 || kc === 38 || kc === 40)) { + var inView = false; + // Check that swiper should be inside of visible area of window + if (swiper.$el.parents(("." + (swiper.params.slideClass))).length > 0 && swiper.$el.parents(("." + (swiper.params.slideActiveClass))).length === 0) { + return undefined; + } + var windowWidth = win.innerWidth; + var windowHeight = win.innerHeight; + var swiperOffset = swiper.$el.offset(); + if (rtl) { swiperOffset.left -= swiper.$el[0].scrollLeft; } + var swiperCoord = [ + [swiperOffset.left, swiperOffset.top], + [swiperOffset.left + swiper.width, swiperOffset.top], + [swiperOffset.left, swiperOffset.top + swiper.height], + [swiperOffset.left + swiper.width, swiperOffset.top + swiper.height] ]; + for (var i = 0; i < swiperCoord.length; i += 1) { + var point = swiperCoord[i]; + if ( + point[0] >= 0 && point[0] <= windowWidth + && point[1] >= 0 && point[1] <= windowHeight + ) { + inView = true; + } + } + if (!inView) { return undefined; } + } + if (swiper.isHorizontal()) { + if (kc === 33 || kc === 34 || kc === 37 || kc === 39) { + if (e.preventDefault) { e.preventDefault(); } + else { e.returnValue = false; } + } + if (((kc === 34 || kc === 39) && !rtl) || ((kc === 33 || kc === 37) && rtl)) { swiper.slideNext(); } + if (((kc === 33 || kc === 37) && !rtl) || ((kc === 34 || kc === 39) && rtl)) { swiper.slidePrev(); } + } else { + if (kc === 33 || kc === 34 || kc === 38 || kc === 40) { + if (e.preventDefault) { e.preventDefault(); } + else { e.returnValue = false; } + } + if (kc === 34 || kc === 40) { swiper.slideNext(); } + if (kc === 33 || kc === 38) { swiper.slidePrev(); } + } + swiper.emit('keyPress', kc); + return undefined; + }, + enable: function enable() { + var swiper = this; + if (swiper.keyboard.enabled) { return; } + $(doc).on('keydown', swiper.keyboard.handle); + swiper.keyboard.enabled = true; + }, + disable: function disable() { + var swiper = this; + if (!swiper.keyboard.enabled) { return; } + $(doc).off('keydown', swiper.keyboard.handle); + swiper.keyboard.enabled = false; + }, + }; + + var Keyboard$1 = { + name: 'keyboard', + params: { + keyboard: { + enabled: false, + onlyInViewport: true, + }, + }, + create: function create() { + var swiper = this; + Utils.extend(swiper, { + keyboard: { + enabled: false, + enable: Keyboard.enable.bind(swiper), + disable: Keyboard.disable.bind(swiper), + handle: Keyboard.handle.bind(swiper), + }, + }); + }, + on: { + init: function init() { + var swiper = this; + if (swiper.params.keyboard.enabled) { + swiper.keyboard.enable(); + } + }, + destroy: function destroy() { + var swiper = this; + if (swiper.keyboard.enabled) { + swiper.keyboard.disable(); + } + }, + }, + }; + + function isEventSupported() { + var eventName = 'onwheel'; + var isSupported = eventName in doc; + + if (!isSupported) { + var element = doc.createElement('div'); + element.setAttribute(eventName, 'return;'); + isSupported = typeof element[eventName] === 'function'; + } + + if (!isSupported + && doc.implementation + && doc.implementation.hasFeature + // always returns true in newer browsers as per the standard. + // @see http://dom.spec.whatwg.org/#dom-domimplementation-hasfeature + && doc.implementation.hasFeature('', '') !== true + ) { + // This is the only way to test support for the `wheel` event in IE9+. + isSupported = doc.implementation.hasFeature('Events.wheel', '3.0'); + } + + return isSupported; + } + var Mousewheel = { + lastScrollTime: Utils.now(), + lastEventBeforeSnap: undefined, + recentWheelEvents: [], + event: function event() { + if (win.navigator.userAgent.indexOf('firefox') > -1) { return 'DOMMouseScroll'; } + return isEventSupported() ? 'wheel' : 'mousewheel'; + }, + normalize: function normalize(e) { + // Reasonable defaults + var PIXEL_STEP = 10; + var LINE_HEIGHT = 40; + var PAGE_HEIGHT = 800; + + var sX = 0; + var sY = 0; // spinX, spinY + var pX = 0; + var pY = 0; // pixelX, pixelY + + // Legacy + if ('detail' in e) { + sY = e.detail; + } + if ('wheelDelta' in e) { + sY = -e.wheelDelta / 120; + } + if ('wheelDeltaY' in e) { + sY = -e.wheelDeltaY / 120; + } + if ('wheelDeltaX' in e) { + sX = -e.wheelDeltaX / 120; + } + + // side scrolling on FF with DOMMouseScroll + if ('axis' in e && e.axis === e.HORIZONTAL_AXIS) { + sX = sY; + sY = 0; + } + + pX = sX * PIXEL_STEP; + pY = sY * PIXEL_STEP; + + if ('deltaY' in e) { + pY = e.deltaY; + } + if ('deltaX' in e) { + pX = e.deltaX; + } + + if (e.shiftKey && !pX) { // if user scrolls with shift he wants horizontal scroll + pX = pY; + pY = 0; + } + + if ((pX || pY) && e.deltaMode) { + if (e.deltaMode === 1) { // delta in LINE units + pX *= LINE_HEIGHT; + pY *= LINE_HEIGHT; + } else { // delta in PAGE units + pX *= PAGE_HEIGHT; + pY *= PAGE_HEIGHT; + } + } + + // Fall-back if spin cannot be determined + if (pX && !sX) { + sX = (pX < 1) ? -1 : 1; + } + if (pY && !sY) { + sY = (pY < 1) ? -1 : 1; + } + + return { + spinX: sX, + spinY: sY, + pixelX: pX, + pixelY: pY, + }; + }, + handleMouseEnter: function handleMouseEnter() { + var swiper = this; + swiper.mouseEntered = true; + }, + handleMouseLeave: function handleMouseLeave() { + var swiper = this; + swiper.mouseEntered = false; + }, + handle: function handle(event) { + var e = event; + var swiper = this; + var params = swiper.params.mousewheel; + + if (swiper.params.cssMode) { + e.preventDefault(); + } + + var target = swiper.$el; + if (swiper.params.mousewheel.eventsTarged !== 'container') { + target = $(swiper.params.mousewheel.eventsTarged); + } + if (!swiper.mouseEntered && !target[0].contains(e.target) && !params.releaseOnEdges) { return true; } + + if (e.originalEvent) { e = e.originalEvent; } // jquery fix + var delta = 0; + var rtlFactor = swiper.rtlTranslate ? -1 : 1; + + var data = Mousewheel.normalize(e); + + if (params.forceToAxis) { + if (swiper.isHorizontal()) { + if (Math.abs(data.pixelX) > Math.abs(data.pixelY)) { delta = data.pixelX * rtlFactor; } + else { return true; } + } else if (Math.abs(data.pixelY) > Math.abs(data.pixelX)) { delta = data.pixelY; } + else { return true; } + } else { + delta = Math.abs(data.pixelX) > Math.abs(data.pixelY) ? -data.pixelX * rtlFactor : -data.pixelY; + } + + if (delta === 0) { return true; } + + if (params.invert) { delta = -delta; } + + if (!swiper.params.freeMode) { + // Register the new event in a variable which stores the relevant data + var newEvent = { + time: Utils.now(), + delta: Math.abs(delta), + direction: Math.sign(delta), + raw: event, + }; + + // Keep the most recent events + var recentWheelEvents = swiper.mousewheel.recentWheelEvents; + if (recentWheelEvents.length >= 2) { + recentWheelEvents.shift(); // only store the last N events + } + var prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined; + recentWheelEvents.push(newEvent); + + // If there is at least one previous recorded event: + // If direction has changed or + // if the scroll is quicker than the previous one: + // Animate the slider. + // Else (this is the first time the wheel is moved): + // Animate the slider. + if (prevEvent) { + if (newEvent.direction !== prevEvent.direction || newEvent.delta > prevEvent.delta || newEvent.time > prevEvent.time + 150) { + swiper.mousewheel.animateSlider(newEvent); + } + } else { + swiper.mousewheel.animateSlider(newEvent); + } + + // If it's time to release the scroll: + // Return now so you don't hit the preventDefault. + if (swiper.mousewheel.releaseScroll(newEvent)) { + return true; + } + } else { + // Freemode or scrollContainer: + + // If we recently snapped after a momentum scroll, then ignore wheel events + // to give time for the deceleration to finish. Stop ignoring after 500 msecs + // or if it's a new scroll (larger delta or inverse sign as last event before + // an end-of-momentum snap). + var newEvent$1 = { time: Utils.now(), delta: Math.abs(delta), direction: Math.sign(delta) }; + var ref = swiper.mousewheel; + var lastEventBeforeSnap = ref.lastEventBeforeSnap; + var ignoreWheelEvents = lastEventBeforeSnap + && newEvent$1.time < lastEventBeforeSnap.time + 500 + && newEvent$1.delta <= lastEventBeforeSnap.delta + && newEvent$1.direction === lastEventBeforeSnap.direction; + if (!ignoreWheelEvents) { + swiper.mousewheel.lastEventBeforeSnap = undefined; + + if (swiper.params.loop) { + swiper.loopFix(); + } + var position = swiper.getTranslate() + (delta * params.sensitivity); + var wasBeginning = swiper.isBeginning; + var wasEnd = swiper.isEnd; + + if (position >= swiper.minTranslate()) { position = swiper.minTranslate(); } + if (position <= swiper.maxTranslate()) { position = swiper.maxTranslate(); } + + swiper.setTransition(0); + swiper.setTranslate(position); + swiper.updateProgress(); + swiper.updateActiveIndex(); + swiper.updateSlidesClasses(); + + if ((!wasBeginning && swiper.isBeginning) || (!wasEnd && swiper.isEnd)) { + swiper.updateSlidesClasses(); + } + + if (swiper.params.freeModeSticky) { + // When wheel scrolling starts with sticky (aka snap) enabled, then detect + // the end of a momentum scroll by storing recent (N=15?) wheel events. + // 1. do all N events have decreasing or same (absolute value) delta? + // 2. did all N events arrive in the last M (M=500?) msecs? + // 3. does the earliest event have an (absolute value) delta that's + // at least P (P=1?) larger than the most recent event's delta? + // 4. does the latest event have a delta that's smaller than Q (Q=6?) pixels? + // If 1-4 are "yes" then we're near the end of a momuntum scroll deceleration. + // Snap immediately and ignore remaining wheel events in this scroll. + // See comment above for "remaining wheel events in this scroll" determination. + // If 1-4 aren't satisfied, then wait to snap until 500ms after the last event. + clearTimeout(swiper.mousewheel.timeout); + swiper.mousewheel.timeout = undefined; + var recentWheelEvents$1 = swiper.mousewheel.recentWheelEvents; + if (recentWheelEvents$1.length >= 15) { + recentWheelEvents$1.shift(); // only store the last N events + } + var prevEvent$1 = recentWheelEvents$1.length ? recentWheelEvents$1[recentWheelEvents$1.length - 1] : undefined; + var firstEvent = recentWheelEvents$1[0]; + recentWheelEvents$1.push(newEvent$1); + if (prevEvent$1 && (newEvent$1.delta > prevEvent$1.delta || newEvent$1.direction !== prevEvent$1.direction)) { + // Increasing or reverse-sign delta means the user started scrolling again. Clear the wheel event log. + recentWheelEvents$1.splice(0); + } else if (recentWheelEvents$1.length >= 15 + && newEvent$1.time - firstEvent.time < 500 + && firstEvent.delta - newEvent$1.delta >= 1 + && newEvent$1.delta <= 6 + ) { + // We're at the end of the deceleration of a momentum scroll, so there's no need + // to wait for more events. Snap ASAP on the next tick. + // Also, because there's some remaining momentum we'll bias the snap in the + // direction of the ongoing scroll because it's better UX for the scroll to snap + // in the same direction as the scroll instead of reversing to snap. Therefore, + // if it's already scrolled more than 20% in the current direction, keep going. + var snapToThreshold = delta > 0 ? 0.8 : 0.2; + swiper.mousewheel.lastEventBeforeSnap = newEvent$1; + recentWheelEvents$1.splice(0); + swiper.mousewheel.timeout = Utils.nextTick(function () { + swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold); + }, 0); // no delay; move on next tick + } + if (!swiper.mousewheel.timeout) { + // if we get here, then we haven't detected the end of a momentum scroll, so + // we'll consider a scroll "complete" when there haven't been any wheel events + // for 500ms. + swiper.mousewheel.timeout = Utils.nextTick(function () { + var snapToThreshold = 0.5; + swiper.mousewheel.lastEventBeforeSnap = newEvent$1; + recentWheelEvents$1.splice(0); + swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold); + }, 500); + } + } + + // Emit event + if (!ignoreWheelEvents) { swiper.emit('scroll', e); } + + // Stop autoplay + if (swiper.params.autoplay && swiper.params.autoplayDisableOnInteraction) { swiper.autoplay.stop(); } + // Return page scroll on edge positions + if (position === swiper.minTranslate() || position === swiper.maxTranslate()) { return true; } + } + } + + if (e.preventDefault) { e.preventDefault(); } + else { e.returnValue = false; } + return false; + }, + animateSlider: function animateSlider(newEvent) { + var swiper = this; + // If the movement is NOT big enough and + // if the last time the user scrolled was too close to the current one (avoid continuously triggering the slider): + // Don't go any further (avoid insignificant scroll movement). + if (newEvent.delta >= 6 && Utils.now() - swiper.mousewheel.lastScrollTime < 60) { + // Return false as a default + return true; + } + // If user is scrolling towards the end: + // If the slider hasn't hit the latest slide or + // if the slider is a loop and + // if the slider isn't moving right now: + // Go to next slide and + // emit a scroll event. + // Else (the user is scrolling towards the beginning) and + // if the slider hasn't hit the first slide or + // if the slider is a loop and + // if the slider isn't moving right now: + // Go to prev slide and + // emit a scroll event. + if (newEvent.direction < 0) { + if ((!swiper.isEnd || swiper.params.loop) && !swiper.animating) { + swiper.slideNext(); + swiper.emit('scroll', newEvent.raw); + } + } else if ((!swiper.isBeginning || swiper.params.loop) && !swiper.animating) { + swiper.slidePrev(); + swiper.emit('scroll', newEvent.raw); + } + // If you got here is because an animation has been triggered so store the current time + swiper.mousewheel.lastScrollTime = (new win.Date()).getTime(); + // Return false as a default + return false; + }, + releaseScroll: function releaseScroll(newEvent) { + var swiper = this; + var params = swiper.params.mousewheel; + if (newEvent.direction < 0) { + if (swiper.isEnd && !swiper.params.loop && params.releaseOnEdges) { + // Return true to animate scroll on edges + return true; + } + } else if (swiper.isBeginning && !swiper.params.loop && params.releaseOnEdges) { + // Return true to animate scroll on edges + return true; + } + return false; + }, + enable: function enable() { + var swiper = this; + var event = Mousewheel.event(); + if (swiper.params.cssMode) { + swiper.wrapperEl.removeEventListener(event, swiper.mousewheel.handle); + return true; + } + if (!event) { return false; } + if (swiper.mousewheel.enabled) { return false; } + var target = swiper.$el; + if (swiper.params.mousewheel.eventsTarged !== 'container') { + target = $(swiper.params.mousewheel.eventsTarged); + } + target.on('mouseenter', swiper.mousewheel.handleMouseEnter); + target.on('mouseleave', swiper.mousewheel.handleMouseLeave); + target.on(event, swiper.mousewheel.handle); + swiper.mousewheel.enabled = true; + return true; + }, + disable: function disable() { + var swiper = this; + var event = Mousewheel.event(); + if (swiper.params.cssMode) { + swiper.wrapperEl.addEventListener(event, swiper.mousewheel.handle); + return true; + } + if (!event) { return false; } + if (!swiper.mousewheel.enabled) { return false; } + var target = swiper.$el; + if (swiper.params.mousewheel.eventsTarged !== 'container') { + target = $(swiper.params.mousewheel.eventsTarged); + } + target.off(event, swiper.mousewheel.handle); + swiper.mousewheel.enabled = false; + return true; + }, + }; + + var Mousewheel$1 = { + name: 'mousewheel', + params: { + mousewheel: { + enabled: false, + releaseOnEdges: false, + invert: false, + forceToAxis: false, + sensitivity: 1, + eventsTarged: 'container', + }, + }, + create: function create() { + var swiper = this; + Utils.extend(swiper, { + mousewheel: { + enabled: false, + enable: Mousewheel.enable.bind(swiper), + disable: Mousewheel.disable.bind(swiper), + handle: Mousewheel.handle.bind(swiper), + handleMouseEnter: Mousewheel.handleMouseEnter.bind(swiper), + handleMouseLeave: Mousewheel.handleMouseLeave.bind(swiper), + animateSlider: Mousewheel.animateSlider.bind(swiper), + releaseScroll: Mousewheel.releaseScroll.bind(swiper), + lastScrollTime: Utils.now(), + lastEventBeforeSnap: undefined, + recentWheelEvents: [], + }, + }); + }, + on: { + init: function init() { + var swiper = this; + if (!swiper.params.mousewheel.enabled && swiper.params.cssMode) { + swiper.mousewheel.disable(); + } + if (swiper.params.mousewheel.enabled) { swiper.mousewheel.enable(); } + }, + destroy: function destroy() { + var swiper = this; + if (swiper.params.cssMode) { + swiper.mousewheel.enable(); + } + if (swiper.mousewheel.enabled) { swiper.mousewheel.disable(); } + }, + }, + }; + + var Navigation = { + update: function update() { + // Update Navigation Buttons + var swiper = this; + var params = swiper.params.navigation; + + if (swiper.params.loop) { return; } + var ref = swiper.navigation; + var $nextEl = ref.$nextEl; + var $prevEl = ref.$prevEl; + + if ($prevEl && $prevEl.length > 0) { + if (swiper.isBeginning) { + $prevEl.addClass(params.disabledClass); + } else { + $prevEl.removeClass(params.disabledClass); + } + $prevEl[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass); + } + if ($nextEl && $nextEl.length > 0) { + if (swiper.isEnd) { + $nextEl.addClass(params.disabledClass); + } else { + $nextEl.removeClass(params.disabledClass); + } + $nextEl[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass); + } + }, + onPrevClick: function onPrevClick(e) { + var swiper = this; + e.preventDefault(); + if (swiper.isBeginning && !swiper.params.loop) { return; } + swiper.slidePrev(); + }, + onNextClick: function onNextClick(e) { + var swiper = this; + e.preventDefault(); + if (swiper.isEnd && !swiper.params.loop) { return; } + swiper.slideNext(); + }, + init: function init() { + var swiper = this; + var params = swiper.params.navigation; + if (!(params.nextEl || params.prevEl)) { return; } + + var $nextEl; + var $prevEl; + if (params.nextEl) { + $nextEl = $(params.nextEl); + if ( + swiper.params.uniqueNavElements + && typeof params.nextEl === 'string' + && $nextEl.length > 1 + && swiper.$el.find(params.nextEl).length === 1 + ) { + $nextEl = swiper.$el.find(params.nextEl); + } + } + if (params.prevEl) { + $prevEl = $(params.prevEl); + if ( + swiper.params.uniqueNavElements + && typeof params.prevEl === 'string' + && $prevEl.length > 1 + && swiper.$el.find(params.prevEl).length === 1 + ) { + $prevEl = swiper.$el.find(params.prevEl); + } + } + + if ($nextEl && $nextEl.length > 0) { + $nextEl.on('click', swiper.navigation.onNextClick); + } + if ($prevEl && $prevEl.length > 0) { + $prevEl.on('click', swiper.navigation.onPrevClick); + } + + Utils.extend(swiper.navigation, { + $nextEl: $nextEl, + nextEl: $nextEl && $nextEl[0], + $prevEl: $prevEl, + prevEl: $prevEl && $prevEl[0], + }); + }, + destroy: function destroy() { + var swiper = this; + var ref = swiper.navigation; + var $nextEl = ref.$nextEl; + var $prevEl = ref.$prevEl; + if ($nextEl && $nextEl.length) { + $nextEl.off('click', swiper.navigation.onNextClick); + $nextEl.removeClass(swiper.params.navigation.disabledClass); + } + if ($prevEl && $prevEl.length) { + $prevEl.off('click', swiper.navigation.onPrevClick); + $prevEl.removeClass(swiper.params.navigation.disabledClass); + } + }, + }; + + var Navigation$1 = { + name: 'navigation', + params: { + navigation: { + nextEl: null, + prevEl: null, + + hideOnClick: false, + disabledClass: 'swiper-button-disabled', + hiddenClass: 'swiper-button-hidden', + lockClass: 'swiper-button-lock', + }, + }, + create: function create() { + var swiper = this; + Utils.extend(swiper, { + navigation: { + init: Navigation.init.bind(swiper), + update: Navigation.update.bind(swiper), + destroy: Navigation.destroy.bind(swiper), + onNextClick: Navigation.onNextClick.bind(swiper), + onPrevClick: Navigation.onPrevClick.bind(swiper), + }, + }); + }, + on: { + init: function init() { + var swiper = this; + swiper.navigation.init(); + swiper.navigation.update(); + }, + toEdge: function toEdge() { + var swiper = this; + swiper.navigation.update(); + }, + fromEdge: function fromEdge() { + var swiper = this; + swiper.navigation.update(); + }, + destroy: function destroy() { + var swiper = this; + swiper.navigation.destroy(); + }, + click: function click(e) { + var swiper = this; + var ref = swiper.navigation; + var $nextEl = ref.$nextEl; + var $prevEl = ref.$prevEl; + if ( + swiper.params.navigation.hideOnClick + && !$(e.target).is($prevEl) + && !$(e.target).is($nextEl) + ) { + var isHidden; + if ($nextEl) { + isHidden = $nextEl.hasClass(swiper.params.navigation.hiddenClass); + } else if ($prevEl) { + isHidden = $prevEl.hasClass(swiper.params.navigation.hiddenClass); + } + if (isHidden === true) { + swiper.emit('navigationShow', swiper); + } else { + swiper.emit('navigationHide', swiper); + } + if ($nextEl) { + $nextEl.toggleClass(swiper.params.navigation.hiddenClass); + } + if ($prevEl) { + $prevEl.toggleClass(swiper.params.navigation.hiddenClass); + } + } + }, + }, + }; + + var Pagination = { + update: function update() { + // Render || Update Pagination bullets/items + var swiper = this; + var rtl = swiper.rtl; + var params = swiper.params.pagination; + if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) { return; } + var slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length; + var $el = swiper.pagination.$el; + // Current/Total + var current; + var total = swiper.params.loop ? Math.ceil((slidesLength - (swiper.loopedSlides * 2)) / swiper.params.slidesPerGroup) : swiper.snapGrid.length; + if (swiper.params.loop) { + current = Math.ceil((swiper.activeIndex - swiper.loopedSlides) / swiper.params.slidesPerGroup); + if (current > slidesLength - 1 - (swiper.loopedSlides * 2)) { + current -= (slidesLength - (swiper.loopedSlides * 2)); + } + if (current > total - 1) { current -= total; } + if (current < 0 && swiper.params.paginationType !== 'bullets') { current = total + current; } + } else if (typeof swiper.snapIndex !== 'undefined') { + current = swiper.snapIndex; + } else { + current = swiper.activeIndex || 0; + } + // Types + if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) { + var bullets = swiper.pagination.bullets; + var firstIndex; + var lastIndex; + var midIndex; + if (params.dynamicBullets) { + swiper.pagination.bulletSize = bullets.eq(0)[swiper.isHorizontal() ? 'outerWidth' : 'outerHeight'](true); + $el.css(swiper.isHorizontal() ? 'width' : 'height', ((swiper.pagination.bulletSize * (params.dynamicMainBullets + 4)) + "px")); + if (params.dynamicMainBullets > 1 && swiper.previousIndex !== undefined) { + swiper.pagination.dynamicBulletIndex += (current - swiper.previousIndex); + if (swiper.pagination.dynamicBulletIndex > (params.dynamicMainBullets - 1)) { + swiper.pagination.dynamicBulletIndex = params.dynamicMainBullets - 1; + } else if (swiper.pagination.dynamicBulletIndex < 0) { + swiper.pagination.dynamicBulletIndex = 0; + } + } + firstIndex = current - swiper.pagination.dynamicBulletIndex; + lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1); + midIndex = (lastIndex + firstIndex) / 2; + } + bullets.removeClass(((params.bulletActiveClass) + " " + (params.bulletActiveClass) + "-next " + (params.bulletActiveClass) + "-next-next " + (params.bulletActiveClass) + "-prev " + (params.bulletActiveClass) + "-prev-prev " + (params.bulletActiveClass) + "-main")); + if ($el.length > 1) { + bullets.each(function (index, bullet) { + var $bullet = $(bullet); + var bulletIndex = $bullet.index(); + if (bulletIndex === current) { + $bullet.addClass(params.bulletActiveClass); + } + if (params.dynamicBullets) { + if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) { + $bullet.addClass(((params.bulletActiveClass) + "-main")); + } + if (bulletIndex === firstIndex) { + $bullet + .prev() + .addClass(((params.bulletActiveClass) + "-prev")) + .prev() + .addClass(((params.bulletActiveClass) + "-prev-prev")); + } + if (bulletIndex === lastIndex) { + $bullet + .next() + .addClass(((params.bulletActiveClass) + "-next")) + .next() + .addClass(((params.bulletActiveClass) + "-next-next")); + } + } + }); + } else { + var $bullet = bullets.eq(current); + var bulletIndex = $bullet.index(); + $bullet.addClass(params.bulletActiveClass); + if (params.dynamicBullets) { + var $firstDisplayedBullet = bullets.eq(firstIndex); + var $lastDisplayedBullet = bullets.eq(lastIndex); + for (var i = firstIndex; i <= lastIndex; i += 1) { + bullets.eq(i).addClass(((params.bulletActiveClass) + "-main")); + } + if (swiper.params.loop) { + if (bulletIndex >= bullets.length - params.dynamicMainBullets) { + for (var i$1 = params.dynamicMainBullets; i$1 >= 0; i$1 -= 1) { + bullets.eq(bullets.length - i$1).addClass(((params.bulletActiveClass) + "-main")); + } + bullets.eq(bullets.length - params.dynamicMainBullets - 1).addClass(((params.bulletActiveClass) + "-prev")); + } else { + $firstDisplayedBullet + .prev() + .addClass(((params.bulletActiveClass) + "-prev")) + .prev() + .addClass(((params.bulletActiveClass) + "-prev-prev")); + $lastDisplayedBullet + .next() + .addClass(((params.bulletActiveClass) + "-next")) + .next() + .addClass(((params.bulletActiveClass) + "-next-next")); + } + } else { + $firstDisplayedBullet + .prev() + .addClass(((params.bulletActiveClass) + "-prev")) + .prev() + .addClass(((params.bulletActiveClass) + "-prev-prev")); + $lastDisplayedBullet + .next() + .addClass(((params.bulletActiveClass) + "-next")) + .next() + .addClass(((params.bulletActiveClass) + "-next-next")); + } + } + } + if (params.dynamicBullets) { + var dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4); + var bulletsOffset = (((swiper.pagination.bulletSize * dynamicBulletsLength) - (swiper.pagination.bulletSize)) / 2) - (midIndex * swiper.pagination.bulletSize); + var offsetProp = rtl ? 'right' : 'left'; + bullets.css(swiper.isHorizontal() ? offsetProp : 'top', (bulletsOffset + "px")); + } + } + if (params.type === 'fraction') { + $el.find(("." + (params.currentClass))).text(params.formatFractionCurrent(current + 1)); + $el.find(("." + (params.totalClass))).text(params.formatFractionTotal(total)); + } + if (params.type === 'progressbar') { + var progressbarDirection; + if (params.progressbarOpposite) { + progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal'; + } else { + progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical'; + } + var scale = (current + 1) / total; + var scaleX = 1; + var scaleY = 1; + if (progressbarDirection === 'horizontal') { + scaleX = scale; + } else { + scaleY = scale; + } + $el.find(("." + (params.progressbarFillClass))).transform(("translate3d(0,0,0) scaleX(" + scaleX + ") scaleY(" + scaleY + ")")).transition(swiper.params.speed); + } + if (params.type === 'custom' && params.renderCustom) { + $el.html(params.renderCustom(swiper, current + 1, total)); + swiper.emit('paginationRender', swiper, $el[0]); + } else { + swiper.emit('paginationUpdate', swiper, $el[0]); + } + $el[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass); + }, + render: function render() { + // Render Container + var swiper = this; + var params = swiper.params.pagination; + if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) { return; } + var slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length; + + var $el = swiper.pagination.$el; + var paginationHTML = ''; + if (params.type === 'bullets') { + var numberOfBullets = swiper.params.loop ? Math.ceil((slidesLength - (swiper.loopedSlides * 2)) / swiper.params.slidesPerGroup) : swiper.snapGrid.length; + for (var i = 0; i < numberOfBullets; i += 1) { + if (params.renderBullet) { + paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass); + } else { + paginationHTML += "<" + (params.bulletElement) + " class=\"" + (params.bulletClass) + "\">"; + } + } + $el.html(paginationHTML); + swiper.pagination.bullets = $el.find(("." + (params.bulletClass))); + } + if (params.type === 'fraction') { + if (params.renderFraction) { + paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass); + } else { + paginationHTML = "" + + ' / ' + + ""; + } + $el.html(paginationHTML); + } + if (params.type === 'progressbar') { + if (params.renderProgressbar) { + paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass); + } else { + paginationHTML = ""; + } + $el.html(paginationHTML); + } + if (params.type !== 'custom') { + swiper.emit('paginationRender', swiper.pagination.$el[0]); + } + }, + init: function init() { + var swiper = this; + var params = swiper.params.pagination; + if (!params.el) { return; } + + var $el = $(params.el); + if ($el.length === 0) { return; } + + if ( + swiper.params.uniqueNavElements + && typeof params.el === 'string' + && $el.length > 1 + && swiper.$el.find(params.el).length === 1 + ) { + $el = swiper.$el.find(params.el); + } + + if (params.type === 'bullets' && params.clickable) { + $el.addClass(params.clickableClass); + } + + $el.addClass(params.modifierClass + params.type); + + if (params.type === 'bullets' && params.dynamicBullets) { + $el.addClass(("" + (params.modifierClass) + (params.type) + "-dynamic")); + swiper.pagination.dynamicBulletIndex = 0; + if (params.dynamicMainBullets < 1) { + params.dynamicMainBullets = 1; + } + } + if (params.type === 'progressbar' && params.progressbarOpposite) { + $el.addClass(params.progressbarOppositeClass); + } + + if (params.clickable) { + $el.on('click', ("." + (params.bulletClass)), function onClick(e) { + e.preventDefault(); + var index = $(this).index() * swiper.params.slidesPerGroup; + if (swiper.params.loop) { index += swiper.loopedSlides; } + swiper.slideTo(index); + }); + } + + Utils.extend(swiper.pagination, { + $el: $el, + el: $el[0], + }); + }, + destroy: function destroy() { + var swiper = this; + var params = swiper.params.pagination; + if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) { return; } + var $el = swiper.pagination.$el; + + $el.removeClass(params.hiddenClass); + $el.removeClass(params.modifierClass + params.type); + if (swiper.pagination.bullets) { swiper.pagination.bullets.removeClass(params.bulletActiveClass); } + if (params.clickable) { + $el.off('click', ("." + (params.bulletClass))); + } + }, + }; + + var Pagination$1 = { + name: 'pagination', + params: { + pagination: { + el: null, + bulletElement: 'span', + clickable: false, + hideOnClick: false, + renderBullet: null, + renderProgressbar: null, + renderFraction: null, + renderCustom: null, + progressbarOpposite: false, + type: 'bullets', // 'bullets' or 'progressbar' or 'fraction' or 'custom' + dynamicBullets: false, + dynamicMainBullets: 1, + formatFractionCurrent: function (number) { return number; }, + formatFractionTotal: function (number) { return number; }, + bulletClass: 'swiper-pagination-bullet', + bulletActiveClass: 'swiper-pagination-bullet-active', + modifierClass: 'swiper-pagination-', // NEW + currentClass: 'swiper-pagination-current', + totalClass: 'swiper-pagination-total', + hiddenClass: 'swiper-pagination-hidden', + progressbarFillClass: 'swiper-pagination-progressbar-fill', + progressbarOppositeClass: 'swiper-pagination-progressbar-opposite', + clickableClass: 'swiper-pagination-clickable', // NEW + lockClass: 'swiper-pagination-lock', + }, + }, + create: function create() { + var swiper = this; + Utils.extend(swiper, { + pagination: { + init: Pagination.init.bind(swiper), + render: Pagination.render.bind(swiper), + update: Pagination.update.bind(swiper), + destroy: Pagination.destroy.bind(swiper), + dynamicBulletIndex: 0, + }, + }); + }, + on: { + init: function init() { + var swiper = this; + swiper.pagination.init(); + swiper.pagination.render(); + swiper.pagination.update(); + }, + activeIndexChange: function activeIndexChange() { + var swiper = this; + if (swiper.params.loop) { + swiper.pagination.update(); + } else if (typeof swiper.snapIndex === 'undefined') { + swiper.pagination.update(); + } + }, + snapIndexChange: function snapIndexChange() { + var swiper = this; + if (!swiper.params.loop) { + swiper.pagination.update(); + } + }, + slidesLengthChange: function slidesLengthChange() { + var swiper = this; + if (swiper.params.loop) { + swiper.pagination.render(); + swiper.pagination.update(); + } + }, + snapGridLengthChange: function snapGridLengthChange() { + var swiper = this; + if (!swiper.params.loop) { + swiper.pagination.render(); + swiper.pagination.update(); + } + }, + destroy: function destroy() { + var swiper = this; + swiper.pagination.destroy(); + }, + click: function click(e) { + var swiper = this; + if ( + swiper.params.pagination.el + && swiper.params.pagination.hideOnClick + && swiper.pagination.$el.length > 0 + && !$(e.target).hasClass(swiper.params.pagination.bulletClass) + ) { + var isHidden = swiper.pagination.$el.hasClass(swiper.params.pagination.hiddenClass); + if (isHidden === true) { + swiper.emit('paginationShow', swiper); + } else { + swiper.emit('paginationHide', swiper); + } + swiper.pagination.$el.toggleClass(swiper.params.pagination.hiddenClass); + } + }, + }, + }; + + var Scrollbar = { + setTranslate: function setTranslate() { + var swiper = this; + if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) { return; } + var scrollbar = swiper.scrollbar; + var rtl = swiper.rtlTranslate; + var progress = swiper.progress; + var dragSize = scrollbar.dragSize; + var trackSize = scrollbar.trackSize; + var $dragEl = scrollbar.$dragEl; + var $el = scrollbar.$el; + var params = swiper.params.scrollbar; + + var newSize = dragSize; + var newPos = (trackSize - dragSize) * progress; + if (rtl) { + newPos = -newPos; + if (newPos > 0) { + newSize = dragSize - newPos; + newPos = 0; + } else if (-newPos + dragSize > trackSize) { + newSize = trackSize + newPos; + } + } else if (newPos < 0) { + newSize = dragSize + newPos; + newPos = 0; + } else if (newPos + dragSize > trackSize) { + newSize = trackSize - newPos; + } + if (swiper.isHorizontal()) { + $dragEl.transform(("translate3d(" + newPos + "px, 0, 0)")); + $dragEl[0].style.width = newSize + "px"; + } else { + $dragEl.transform(("translate3d(0px, " + newPos + "px, 0)")); + $dragEl[0].style.height = newSize + "px"; + } + if (params.hide) { + clearTimeout(swiper.scrollbar.timeout); + $el[0].style.opacity = 1; + swiper.scrollbar.timeout = setTimeout(function () { + $el[0].style.opacity = 0; + $el.transition(400); + }, 1000); + } + }, + setTransition: function setTransition(duration) { + var swiper = this; + if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) { return; } + swiper.scrollbar.$dragEl.transition(duration); + }, + updateSize: function updateSize() { + var swiper = this; + if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) { return; } + + var scrollbar = swiper.scrollbar; + var $dragEl = scrollbar.$dragEl; + var $el = scrollbar.$el; + + $dragEl[0].style.width = ''; + $dragEl[0].style.height = ''; + var trackSize = swiper.isHorizontal() ? $el[0].offsetWidth : $el[0].offsetHeight; + + var divider = swiper.size / swiper.virtualSize; + var moveDivider = divider * (trackSize / swiper.size); + var dragSize; + if (swiper.params.scrollbar.dragSize === 'auto') { + dragSize = trackSize * divider; + } else { + dragSize = parseInt(swiper.params.scrollbar.dragSize, 10); + } + + if (swiper.isHorizontal()) { + $dragEl[0].style.width = dragSize + "px"; + } else { + $dragEl[0].style.height = dragSize + "px"; + } + + if (divider >= 1) { + $el[0].style.display = 'none'; + } else { + $el[0].style.display = ''; + } + if (swiper.params.scrollbar.hide) { + $el[0].style.opacity = 0; + } + Utils.extend(scrollbar, { + trackSize: trackSize, + divider: divider, + moveDivider: moveDivider, + dragSize: dragSize, + }); + scrollbar.$el[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](swiper.params.scrollbar.lockClass); + }, + getPointerPosition: function getPointerPosition(e) { + var swiper = this; + if (swiper.isHorizontal()) { + return ((e.type === 'touchstart' || e.type === 'touchmove') ? e.targetTouches[0].clientX : e.clientX); + } + return ((e.type === 'touchstart' || e.type === 'touchmove') ? e.targetTouches[0].clientY : e.clientY); + }, + setDragPosition: function setDragPosition(e) { + var swiper = this; + var scrollbar = swiper.scrollbar; + var rtl = swiper.rtlTranslate; + var $el = scrollbar.$el; + var dragSize = scrollbar.dragSize; + var trackSize = scrollbar.trackSize; + var dragStartPos = scrollbar.dragStartPos; + + var positionRatio; + positionRatio = ((scrollbar.getPointerPosition(e)) - $el.offset()[swiper.isHorizontal() ? 'left' : 'top'] + - (dragStartPos !== null ? dragStartPos : dragSize / 2)) / (trackSize - dragSize); + positionRatio = Math.max(Math.min(positionRatio, 1), 0); + if (rtl) { + positionRatio = 1 - positionRatio; + } + + var position = swiper.minTranslate() + ((swiper.maxTranslate() - swiper.minTranslate()) * positionRatio); + + swiper.updateProgress(position); + swiper.setTranslate(position); + swiper.updateActiveIndex(); + swiper.updateSlidesClasses(); + }, + onDragStart: function onDragStart(e) { + var swiper = this; + var params = swiper.params.scrollbar; + var scrollbar = swiper.scrollbar; + var $wrapperEl = swiper.$wrapperEl; + var $el = scrollbar.$el; + var $dragEl = scrollbar.$dragEl; + swiper.scrollbar.isTouched = true; + swiper.scrollbar.dragStartPos = (e.target === $dragEl[0] || e.target === $dragEl) + ? scrollbar.getPointerPosition(e) - e.target.getBoundingClientRect()[swiper.isHorizontal() ? 'left' : 'top'] : null; + e.preventDefault(); + e.stopPropagation(); + + $wrapperEl.transition(100); + $dragEl.transition(100); + scrollbar.setDragPosition(e); + + clearTimeout(swiper.scrollbar.dragTimeout); + + $el.transition(0); + if (params.hide) { + $el.css('opacity', 1); + } + if (swiper.params.cssMode) { + swiper.$wrapperEl.css('scroll-snap-type', 'none'); + } + swiper.emit('scrollbarDragStart', e); + }, + onDragMove: function onDragMove(e) { + var swiper = this; + var scrollbar = swiper.scrollbar; + var $wrapperEl = swiper.$wrapperEl; + var $el = scrollbar.$el; + var $dragEl = scrollbar.$dragEl; + + if (!swiper.scrollbar.isTouched) { return; } + if (e.preventDefault) { e.preventDefault(); } + else { e.returnValue = false; } + scrollbar.setDragPosition(e); + $wrapperEl.transition(0); + $el.transition(0); + $dragEl.transition(0); + swiper.emit('scrollbarDragMove', e); + }, + onDragEnd: function onDragEnd(e) { + var swiper = this; + + var params = swiper.params.scrollbar; + var scrollbar = swiper.scrollbar; + var $wrapperEl = swiper.$wrapperEl; + var $el = scrollbar.$el; + + if (!swiper.scrollbar.isTouched) { return; } + swiper.scrollbar.isTouched = false; + if (swiper.params.cssMode) { + swiper.$wrapperEl.css('scroll-snap-type', ''); + $wrapperEl.transition(''); + } + if (params.hide) { + clearTimeout(swiper.scrollbar.dragTimeout); + swiper.scrollbar.dragTimeout = Utils.nextTick(function () { + $el.css('opacity', 0); + $el.transition(400); + }, 1000); + } + swiper.emit('scrollbarDragEnd', e); + if (params.snapOnRelease) { + swiper.slideToClosest(); + } + }, + enableDraggable: function enableDraggable() { + var swiper = this; + if (!swiper.params.scrollbar.el) { return; } + var scrollbar = swiper.scrollbar; + var touchEventsTouch = swiper.touchEventsTouch; + var touchEventsDesktop = swiper.touchEventsDesktop; + var params = swiper.params; + var $el = scrollbar.$el; + var target = $el[0]; + var activeListener = Support.passiveListener && params.passiveListeners ? { passive: false, capture: false } : false; + var passiveListener = Support.passiveListener && params.passiveListeners ? { passive: true, capture: false } : false; + if (!Support.touch) { + target.addEventListener(touchEventsDesktop.start, swiper.scrollbar.onDragStart, activeListener); + doc.addEventListener(touchEventsDesktop.move, swiper.scrollbar.onDragMove, activeListener); + doc.addEventListener(touchEventsDesktop.end, swiper.scrollbar.onDragEnd, passiveListener); + } else { + target.addEventListener(touchEventsTouch.start, swiper.scrollbar.onDragStart, activeListener); + target.addEventListener(touchEventsTouch.move, swiper.scrollbar.onDragMove, activeListener); + target.addEventListener(touchEventsTouch.end, swiper.scrollbar.onDragEnd, passiveListener); + } + }, + disableDraggable: function disableDraggable() { + var swiper = this; + if (!swiper.params.scrollbar.el) { return; } + var scrollbar = swiper.scrollbar; + var touchEventsTouch = swiper.touchEventsTouch; + var touchEventsDesktop = swiper.touchEventsDesktop; + var params = swiper.params; + var $el = scrollbar.$el; + var target = $el[0]; + var activeListener = Support.passiveListener && params.passiveListeners ? { passive: false, capture: false } : false; + var passiveListener = Support.passiveListener && params.passiveListeners ? { passive: true, capture: false } : false; + if (!Support.touch) { + target.removeEventListener(touchEventsDesktop.start, swiper.scrollbar.onDragStart, activeListener); + doc.removeEventListener(touchEventsDesktop.move, swiper.scrollbar.onDragMove, activeListener); + doc.removeEventListener(touchEventsDesktop.end, swiper.scrollbar.onDragEnd, passiveListener); + } else { + target.removeEventListener(touchEventsTouch.start, swiper.scrollbar.onDragStart, activeListener); + target.removeEventListener(touchEventsTouch.move, swiper.scrollbar.onDragMove, activeListener); + target.removeEventListener(touchEventsTouch.end, swiper.scrollbar.onDragEnd, passiveListener); + } + }, + init: function init() { + var swiper = this; + if (!swiper.params.scrollbar.el) { return; } + var scrollbar = swiper.scrollbar; + var $swiperEl = swiper.$el; + var params = swiper.params.scrollbar; + + var $el = $(params.el); + if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1 && $swiperEl.find(params.el).length === 1) { + $el = $swiperEl.find(params.el); + } + + var $dragEl = $el.find(("." + (swiper.params.scrollbar.dragClass))); + if ($dragEl.length === 0) { + $dragEl = $(("
          ")); + $el.append($dragEl); + } + + Utils.extend(scrollbar, { + $el: $el, + el: $el[0], + $dragEl: $dragEl, + dragEl: $dragEl[0], + }); + + if (params.draggable) { + scrollbar.enableDraggable(); + } + }, + destroy: function destroy() { + var swiper = this; + swiper.scrollbar.disableDraggable(); + }, + }; + + var Scrollbar$1 = { + name: 'scrollbar', + params: { + scrollbar: { + el: null, + dragSize: 'auto', + hide: false, + draggable: false, + snapOnRelease: true, + lockClass: 'swiper-scrollbar-lock', + dragClass: 'swiper-scrollbar-drag', + }, + }, + create: function create() { + var swiper = this; + Utils.extend(swiper, { + scrollbar: { + init: Scrollbar.init.bind(swiper), + destroy: Scrollbar.destroy.bind(swiper), + updateSize: Scrollbar.updateSize.bind(swiper), + setTranslate: Scrollbar.setTranslate.bind(swiper), + setTransition: Scrollbar.setTransition.bind(swiper), + enableDraggable: Scrollbar.enableDraggable.bind(swiper), + disableDraggable: Scrollbar.disableDraggable.bind(swiper), + setDragPosition: Scrollbar.setDragPosition.bind(swiper), + getPointerPosition: Scrollbar.getPointerPosition.bind(swiper), + onDragStart: Scrollbar.onDragStart.bind(swiper), + onDragMove: Scrollbar.onDragMove.bind(swiper), + onDragEnd: Scrollbar.onDragEnd.bind(swiper), + isTouched: false, + timeout: null, + dragTimeout: null, + }, + }); + }, + on: { + init: function init() { + var swiper = this; + swiper.scrollbar.init(); + swiper.scrollbar.updateSize(); + swiper.scrollbar.setTranslate(); + }, + update: function update() { + var swiper = this; + swiper.scrollbar.updateSize(); + }, + resize: function resize() { + var swiper = this; + swiper.scrollbar.updateSize(); + }, + observerUpdate: function observerUpdate() { + var swiper = this; + swiper.scrollbar.updateSize(); + }, + setTranslate: function setTranslate() { + var swiper = this; + swiper.scrollbar.setTranslate(); + }, + setTransition: function setTransition(duration) { + var swiper = this; + swiper.scrollbar.setTransition(duration); + }, + destroy: function destroy() { + var swiper = this; + swiper.scrollbar.destroy(); + }, + }, + }; + + var Parallax = { + setTransform: function setTransform(el, progress) { + var swiper = this; + var rtl = swiper.rtl; + + var $el = $(el); + var rtlFactor = rtl ? -1 : 1; + + var p = $el.attr('data-swiper-parallax') || '0'; + var x = $el.attr('data-swiper-parallax-x'); + var y = $el.attr('data-swiper-parallax-y'); + var scale = $el.attr('data-swiper-parallax-scale'); + var opacity = $el.attr('data-swiper-parallax-opacity'); + + if (x || y) { + x = x || '0'; + y = y || '0'; + } else if (swiper.isHorizontal()) { + x = p; + y = '0'; + } else { + y = p; + x = '0'; + } + + if ((x).indexOf('%') >= 0) { + x = (parseInt(x, 10) * progress * rtlFactor) + "%"; + } else { + x = (x * progress * rtlFactor) + "px"; + } + if ((y).indexOf('%') >= 0) { + y = (parseInt(y, 10) * progress) + "%"; + } else { + y = (y * progress) + "px"; + } + + if (typeof opacity !== 'undefined' && opacity !== null) { + var currentOpacity = opacity - ((opacity - 1) * (1 - Math.abs(progress))); + $el[0].style.opacity = currentOpacity; + } + if (typeof scale === 'undefined' || scale === null) { + $el.transform(("translate3d(" + x + ", " + y + ", 0px)")); + } else { + var currentScale = scale - ((scale - 1) * (1 - Math.abs(progress))); + $el.transform(("translate3d(" + x + ", " + y + ", 0px) scale(" + currentScale + ")")); + } + }, + setTranslate: function setTranslate() { + var swiper = this; + var $el = swiper.$el; + var slides = swiper.slides; + var progress = swiper.progress; + var snapGrid = swiper.snapGrid; + $el.children('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]') + .each(function (index, el) { + swiper.parallax.setTransform(el, progress); + }); + slides.each(function (slideIndex, slideEl) { + var slideProgress = slideEl.progress; + if (swiper.params.slidesPerGroup > 1 && swiper.params.slidesPerView !== 'auto') { + slideProgress += Math.ceil(slideIndex / 2) - (progress * (snapGrid.length - 1)); + } + slideProgress = Math.min(Math.max(slideProgress, -1), 1); + $(slideEl).find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]') + .each(function (index, el) { + swiper.parallax.setTransform(el, slideProgress); + }); + }); + }, + setTransition: function setTransition(duration) { + if ( duration === void 0 ) duration = this.params.speed; + + var swiper = this; + var $el = swiper.$el; + $el.find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]') + .each(function (index, parallaxEl) { + var $parallaxEl = $(parallaxEl); + var parallaxDuration = parseInt($parallaxEl.attr('data-swiper-parallax-duration'), 10) || duration; + if (duration === 0) { parallaxDuration = 0; } + $parallaxEl.transition(parallaxDuration); + }); + }, + }; + + var Parallax$1 = { + name: 'parallax', + params: { + parallax: { + enabled: false, + }, + }, + create: function create() { + var swiper = this; + Utils.extend(swiper, { + parallax: { + setTransform: Parallax.setTransform.bind(swiper), + setTranslate: Parallax.setTranslate.bind(swiper), + setTransition: Parallax.setTransition.bind(swiper), + }, + }); + }, + on: { + beforeInit: function beforeInit() { + var swiper = this; + if (!swiper.params.parallax.enabled) { return; } + swiper.params.watchSlidesProgress = true; + swiper.originalParams.watchSlidesProgress = true; + }, + init: function init() { + var swiper = this; + if (!swiper.params.parallax.enabled) { return; } + swiper.parallax.setTranslate(); + }, + setTranslate: function setTranslate() { + var swiper = this; + if (!swiper.params.parallax.enabled) { return; } + swiper.parallax.setTranslate(); + }, + setTransition: function setTransition(duration) { + var swiper = this; + if (!swiper.params.parallax.enabled) { return; } + swiper.parallax.setTransition(duration); + }, + }, + }; + + var Zoom = { + // Calc Scale From Multi-touches + getDistanceBetweenTouches: function getDistanceBetweenTouches(e) { + if (e.targetTouches.length < 2) { return 1; } + var x1 = e.targetTouches[0].pageX; + var y1 = e.targetTouches[0].pageY; + var x2 = e.targetTouches[1].pageX; + var y2 = e.targetTouches[1].pageY; + var distance = Math.sqrt((Math.pow( (x2 - x1), 2 )) + (Math.pow( (y2 - y1), 2 ))); + return distance; + }, + // Events + onGestureStart: function onGestureStart(e) { + var swiper = this; + var params = swiper.params.zoom; + var zoom = swiper.zoom; + var gesture = zoom.gesture; + zoom.fakeGestureTouched = false; + zoom.fakeGestureMoved = false; + if (!Support.gestures) { + if (e.type !== 'touchstart' || (e.type === 'touchstart' && e.targetTouches.length < 2)) { + return; + } + zoom.fakeGestureTouched = true; + gesture.scaleStart = Zoom.getDistanceBetweenTouches(e); + } + if (!gesture.$slideEl || !gesture.$slideEl.length) { + gesture.$slideEl = $(e.target).closest(("." + (swiper.params.slideClass))); + if (gesture.$slideEl.length === 0) { gesture.$slideEl = swiper.slides.eq(swiper.activeIndex); } + gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas, picture, .swiper-zoom-target'); + gesture.$imageWrapEl = gesture.$imageEl.parent(("." + (params.containerClass))); + gesture.maxRatio = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio; + if (gesture.$imageWrapEl.length === 0) { + gesture.$imageEl = undefined; + return; + } + } + if (gesture.$imageEl) { + gesture.$imageEl.transition(0); + } + swiper.zoom.isScaling = true; + }, + onGestureChange: function onGestureChange(e) { + var swiper = this; + var params = swiper.params.zoom; + var zoom = swiper.zoom; + var gesture = zoom.gesture; + if (!Support.gestures) { + if (e.type !== 'touchmove' || (e.type === 'touchmove' && e.targetTouches.length < 2)) { + return; + } + zoom.fakeGestureMoved = true; + gesture.scaleMove = Zoom.getDistanceBetweenTouches(e); + } + if (!gesture.$imageEl || gesture.$imageEl.length === 0) { return; } + if (Support.gestures) { + zoom.scale = e.scale * zoom.currentScale; + } else { + zoom.scale = (gesture.scaleMove / gesture.scaleStart) * zoom.currentScale; + } + if (zoom.scale > gesture.maxRatio) { + zoom.scale = (gesture.maxRatio - 1) + (Math.pow( ((zoom.scale - gesture.maxRatio) + 1), 0.5 )); + } + if (zoom.scale < params.minRatio) { + zoom.scale = (params.minRatio + 1) - (Math.pow( ((params.minRatio - zoom.scale) + 1), 0.5 )); + } + gesture.$imageEl.transform(("translate3d(0,0,0) scale(" + (zoom.scale) + ")")); + }, + onGestureEnd: function onGestureEnd(e) { + var swiper = this; + var params = swiper.params.zoom; + var zoom = swiper.zoom; + var gesture = zoom.gesture; + if (!Support.gestures) { + if (!zoom.fakeGestureTouched || !zoom.fakeGestureMoved) { + return; + } + if (e.type !== 'touchend' || (e.type === 'touchend' && e.changedTouches.length < 2 && !Device.android)) { + return; + } + zoom.fakeGestureTouched = false; + zoom.fakeGestureMoved = false; + } + if (!gesture.$imageEl || gesture.$imageEl.length === 0) { return; } + zoom.scale = Math.max(Math.min(zoom.scale, gesture.maxRatio), params.minRatio); + gesture.$imageEl.transition(swiper.params.speed).transform(("translate3d(0,0,0) scale(" + (zoom.scale) + ")")); + zoom.currentScale = zoom.scale; + zoom.isScaling = false; + if (zoom.scale === 1) { gesture.$slideEl = undefined; } + }, + onTouchStart: function onTouchStart(e) { + var swiper = this; + var zoom = swiper.zoom; + var gesture = zoom.gesture; + var image = zoom.image; + if (!gesture.$imageEl || gesture.$imageEl.length === 0) { return; } + if (image.isTouched) { return; } + if (Device.android && e.cancelable) { e.preventDefault(); } + image.isTouched = true; + image.touchesStart.x = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX; + image.touchesStart.y = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY; + }, + onTouchMove: function onTouchMove(e) { + var swiper = this; + var zoom = swiper.zoom; + var gesture = zoom.gesture; + var image = zoom.image; + var velocity = zoom.velocity; + if (!gesture.$imageEl || gesture.$imageEl.length === 0) { return; } + swiper.allowClick = false; + if (!image.isTouched || !gesture.$slideEl) { return; } + + if (!image.isMoved) { + image.width = gesture.$imageEl[0].offsetWidth; + image.height = gesture.$imageEl[0].offsetHeight; + image.startX = Utils.getTranslate(gesture.$imageWrapEl[0], 'x') || 0; + image.startY = Utils.getTranslate(gesture.$imageWrapEl[0], 'y') || 0; + gesture.slideWidth = gesture.$slideEl[0].offsetWidth; + gesture.slideHeight = gesture.$slideEl[0].offsetHeight; + gesture.$imageWrapEl.transition(0); + if (swiper.rtl) { + image.startX = -image.startX; + image.startY = -image.startY; + } + } + // Define if we need image drag + var scaledWidth = image.width * zoom.scale; + var scaledHeight = image.height * zoom.scale; + + if (scaledWidth < gesture.slideWidth && scaledHeight < gesture.slideHeight) { return; } + + image.minX = Math.min(((gesture.slideWidth / 2) - (scaledWidth / 2)), 0); + image.maxX = -image.minX; + image.minY = Math.min(((gesture.slideHeight / 2) - (scaledHeight / 2)), 0); + image.maxY = -image.minY; + + image.touchesCurrent.x = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX; + image.touchesCurrent.y = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY; + + if (!image.isMoved && !zoom.isScaling) { + if ( + swiper.isHorizontal() + && ( + (Math.floor(image.minX) === Math.floor(image.startX) && image.touchesCurrent.x < image.touchesStart.x) + || (Math.floor(image.maxX) === Math.floor(image.startX) && image.touchesCurrent.x > image.touchesStart.x) + ) + ) { + image.isTouched = false; + return; + } if ( + !swiper.isHorizontal() + && ( + (Math.floor(image.minY) === Math.floor(image.startY) && image.touchesCurrent.y < image.touchesStart.y) + || (Math.floor(image.maxY) === Math.floor(image.startY) && image.touchesCurrent.y > image.touchesStart.y) + ) + ) { + image.isTouched = false; + return; + } + } + if (e.cancelable) { + e.preventDefault(); + } + e.stopPropagation(); + + image.isMoved = true; + image.currentX = (image.touchesCurrent.x - image.touchesStart.x) + image.startX; + image.currentY = (image.touchesCurrent.y - image.touchesStart.y) + image.startY; + + if (image.currentX < image.minX) { + image.currentX = (image.minX + 1) - (Math.pow( ((image.minX - image.currentX) + 1), 0.8 )); + } + if (image.currentX > image.maxX) { + image.currentX = (image.maxX - 1) + (Math.pow( ((image.currentX - image.maxX) + 1), 0.8 )); + } + + if (image.currentY < image.minY) { + image.currentY = (image.minY + 1) - (Math.pow( ((image.minY - image.currentY) + 1), 0.8 )); + } + if (image.currentY > image.maxY) { + image.currentY = (image.maxY - 1) + (Math.pow( ((image.currentY - image.maxY) + 1), 0.8 )); + } + + // Velocity + if (!velocity.prevPositionX) { velocity.prevPositionX = image.touchesCurrent.x; } + if (!velocity.prevPositionY) { velocity.prevPositionY = image.touchesCurrent.y; } + if (!velocity.prevTime) { velocity.prevTime = Date.now(); } + velocity.x = (image.touchesCurrent.x - velocity.prevPositionX) / (Date.now() - velocity.prevTime) / 2; + velocity.y = (image.touchesCurrent.y - velocity.prevPositionY) / (Date.now() - velocity.prevTime) / 2; + if (Math.abs(image.touchesCurrent.x - velocity.prevPositionX) < 2) { velocity.x = 0; } + if (Math.abs(image.touchesCurrent.y - velocity.prevPositionY) < 2) { velocity.y = 0; } + velocity.prevPositionX = image.touchesCurrent.x; + velocity.prevPositionY = image.touchesCurrent.y; + velocity.prevTime = Date.now(); + + gesture.$imageWrapEl.transform(("translate3d(" + (image.currentX) + "px, " + (image.currentY) + "px,0)")); + }, + onTouchEnd: function onTouchEnd() { + var swiper = this; + var zoom = swiper.zoom; + var gesture = zoom.gesture; + var image = zoom.image; + var velocity = zoom.velocity; + if (!gesture.$imageEl || gesture.$imageEl.length === 0) { return; } + if (!image.isTouched || !image.isMoved) { + image.isTouched = false; + image.isMoved = false; + return; + } + image.isTouched = false; + image.isMoved = false; + var momentumDurationX = 300; + var momentumDurationY = 300; + var momentumDistanceX = velocity.x * momentumDurationX; + var newPositionX = image.currentX + momentumDistanceX; + var momentumDistanceY = velocity.y * momentumDurationY; + var newPositionY = image.currentY + momentumDistanceY; + + // Fix duration + if (velocity.x !== 0) { momentumDurationX = Math.abs((newPositionX - image.currentX) / velocity.x); } + if (velocity.y !== 0) { momentumDurationY = Math.abs((newPositionY - image.currentY) / velocity.y); } + var momentumDuration = Math.max(momentumDurationX, momentumDurationY); + + image.currentX = newPositionX; + image.currentY = newPositionY; + + // Define if we need image drag + var scaledWidth = image.width * zoom.scale; + var scaledHeight = image.height * zoom.scale; + image.minX = Math.min(((gesture.slideWidth / 2) - (scaledWidth / 2)), 0); + image.maxX = -image.minX; + image.minY = Math.min(((gesture.slideHeight / 2) - (scaledHeight / 2)), 0); + image.maxY = -image.minY; + image.currentX = Math.max(Math.min(image.currentX, image.maxX), image.minX); + image.currentY = Math.max(Math.min(image.currentY, image.maxY), image.minY); + + gesture.$imageWrapEl.transition(momentumDuration).transform(("translate3d(" + (image.currentX) + "px, " + (image.currentY) + "px,0)")); + }, + onTransitionEnd: function onTransitionEnd() { + var swiper = this; + var zoom = swiper.zoom; + var gesture = zoom.gesture; + if (gesture.$slideEl && swiper.previousIndex !== swiper.activeIndex) { + if (gesture.$imageEl) { + gesture.$imageEl.transform('translate3d(0,0,0) scale(1)'); + } + if (gesture.$imageWrapEl) { + gesture.$imageWrapEl.transform('translate3d(0,0,0)'); + } + + zoom.scale = 1; + zoom.currentScale = 1; + + gesture.$slideEl = undefined; + gesture.$imageEl = undefined; + gesture.$imageWrapEl = undefined; + } + }, + // Toggle Zoom + toggle: function toggle(e) { + var swiper = this; + var zoom = swiper.zoom; + + if (zoom.scale && zoom.scale !== 1) { + // Zoom Out + zoom.out(); + } else { + // Zoom In + zoom.in(e); + } + }, + in: function in$1(e) { + var swiper = this; + + var zoom = swiper.zoom; + var params = swiper.params.zoom; + var gesture = zoom.gesture; + var image = zoom.image; + + if (!gesture.$slideEl) { + if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) { + gesture.$slideEl = swiper.$wrapperEl.children(("." + (swiper.params.slideActiveClass))); + } else { + gesture.$slideEl = swiper.slides.eq(swiper.activeIndex); + } + gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas, picture, .swiper-zoom-target'); + gesture.$imageWrapEl = gesture.$imageEl.parent(("." + (params.containerClass))); + } + if (!gesture.$imageEl || gesture.$imageEl.length === 0) { return; } + + gesture.$slideEl.addClass(("" + (params.zoomedSlideClass))); + + var touchX; + var touchY; + var offsetX; + var offsetY; + var diffX; + var diffY; + var translateX; + var translateY; + var imageWidth; + var imageHeight; + var scaledWidth; + var scaledHeight; + var translateMinX; + var translateMinY; + var translateMaxX; + var translateMaxY; + var slideWidth; + var slideHeight; + + if (typeof image.touchesStart.x === 'undefined' && e) { + touchX = e.type === 'touchend' ? e.changedTouches[0].pageX : e.pageX; + touchY = e.type === 'touchend' ? e.changedTouches[0].pageY : e.pageY; + } else { + touchX = image.touchesStart.x; + touchY = image.touchesStart.y; + } + + zoom.scale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio; + zoom.currentScale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio; + if (e) { + slideWidth = gesture.$slideEl[0].offsetWidth; + slideHeight = gesture.$slideEl[0].offsetHeight; + offsetX = gesture.$slideEl.offset().left; + offsetY = gesture.$slideEl.offset().top; + diffX = (offsetX + (slideWidth / 2)) - touchX; + diffY = (offsetY + (slideHeight / 2)) - touchY; + + imageWidth = gesture.$imageEl[0].offsetWidth; + imageHeight = gesture.$imageEl[0].offsetHeight; + scaledWidth = imageWidth * zoom.scale; + scaledHeight = imageHeight * zoom.scale; + + translateMinX = Math.min(((slideWidth / 2) - (scaledWidth / 2)), 0); + translateMinY = Math.min(((slideHeight / 2) - (scaledHeight / 2)), 0); + translateMaxX = -translateMinX; + translateMaxY = -translateMinY; + + translateX = diffX * zoom.scale; + translateY = diffY * zoom.scale; + + if (translateX < translateMinX) { + translateX = translateMinX; + } + if (translateX > translateMaxX) { + translateX = translateMaxX; + } + + if (translateY < translateMinY) { + translateY = translateMinY; + } + if (translateY > translateMaxY) { + translateY = translateMaxY; + } + } else { + translateX = 0; + translateY = 0; + } + gesture.$imageWrapEl.transition(300).transform(("translate3d(" + translateX + "px, " + translateY + "px,0)")); + gesture.$imageEl.transition(300).transform(("translate3d(0,0,0) scale(" + (zoom.scale) + ")")); + }, + out: function out() { + var swiper = this; + + var zoom = swiper.zoom; + var params = swiper.params.zoom; + var gesture = zoom.gesture; + + if (!gesture.$slideEl) { + if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) { + gesture.$slideEl = swiper.$wrapperEl.children(("." + (swiper.params.slideActiveClass))); + } else { + gesture.$slideEl = swiper.slides.eq(swiper.activeIndex); + } + gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas, picture, .swiper-zoom-target'); + gesture.$imageWrapEl = gesture.$imageEl.parent(("." + (params.containerClass))); + } + if (!gesture.$imageEl || gesture.$imageEl.length === 0) { return; } + + zoom.scale = 1; + zoom.currentScale = 1; + gesture.$imageWrapEl.transition(300).transform('translate3d(0,0,0)'); + gesture.$imageEl.transition(300).transform('translate3d(0,0,0) scale(1)'); + gesture.$slideEl.removeClass(("" + (params.zoomedSlideClass))); + gesture.$slideEl = undefined; + }, + // Attach/Detach Events + enable: function enable() { + var swiper = this; + var zoom = swiper.zoom; + if (zoom.enabled) { return; } + zoom.enabled = true; + + var passiveListener = swiper.touchEvents.start === 'touchstart' && Support.passiveListener && swiper.params.passiveListeners ? { passive: true, capture: false } : false; + var activeListenerWithCapture = Support.passiveListener ? { passive: false, capture: true } : true; + + var slideSelector = "." + (swiper.params.slideClass); + + // Scale image + if (Support.gestures) { + swiper.$wrapperEl.on('gesturestart', slideSelector, zoom.onGestureStart, passiveListener); + swiper.$wrapperEl.on('gesturechange', slideSelector, zoom.onGestureChange, passiveListener); + swiper.$wrapperEl.on('gestureend', slideSelector, zoom.onGestureEnd, passiveListener); + } else if (swiper.touchEvents.start === 'touchstart') { + swiper.$wrapperEl.on(swiper.touchEvents.start, slideSelector, zoom.onGestureStart, passiveListener); + swiper.$wrapperEl.on(swiper.touchEvents.move, slideSelector, zoom.onGestureChange, activeListenerWithCapture); + swiper.$wrapperEl.on(swiper.touchEvents.end, slideSelector, zoom.onGestureEnd, passiveListener); + if (swiper.touchEvents.cancel) { + swiper.$wrapperEl.on(swiper.touchEvents.cancel, slideSelector, zoom.onGestureEnd, passiveListener); + } + } + + // Move image + swiper.$wrapperEl.on(swiper.touchEvents.move, ("." + (swiper.params.zoom.containerClass)), zoom.onTouchMove, activeListenerWithCapture); + }, + disable: function disable() { + var swiper = this; + var zoom = swiper.zoom; + if (!zoom.enabled) { return; } + + swiper.zoom.enabled = false; + + var passiveListener = swiper.touchEvents.start === 'touchstart' && Support.passiveListener && swiper.params.passiveListeners ? { passive: true, capture: false } : false; + var activeListenerWithCapture = Support.passiveListener ? { passive: false, capture: true } : true; + + var slideSelector = "." + (swiper.params.slideClass); + + // Scale image + if (Support.gestures) { + swiper.$wrapperEl.off('gesturestart', slideSelector, zoom.onGestureStart, passiveListener); + swiper.$wrapperEl.off('gesturechange', slideSelector, zoom.onGestureChange, passiveListener); + swiper.$wrapperEl.off('gestureend', slideSelector, zoom.onGestureEnd, passiveListener); + } else if (swiper.touchEvents.start === 'touchstart') { + swiper.$wrapperEl.off(swiper.touchEvents.start, slideSelector, zoom.onGestureStart, passiveListener); + swiper.$wrapperEl.off(swiper.touchEvents.move, slideSelector, zoom.onGestureChange, activeListenerWithCapture); + swiper.$wrapperEl.off(swiper.touchEvents.end, slideSelector, zoom.onGestureEnd, passiveListener); + if (swiper.touchEvents.cancel) { + swiper.$wrapperEl.off(swiper.touchEvents.cancel, slideSelector, zoom.onGestureEnd, passiveListener); + } + } + + // Move image + swiper.$wrapperEl.off(swiper.touchEvents.move, ("." + (swiper.params.zoom.containerClass)), zoom.onTouchMove, activeListenerWithCapture); + }, + }; + + var Zoom$1 = { + name: 'zoom', + params: { + zoom: { + enabled: false, + maxRatio: 3, + minRatio: 1, + toggle: true, + containerClass: 'swiper-zoom-container', + zoomedSlideClass: 'swiper-slide-zoomed', + }, + }, + create: function create() { + var swiper = this; + var zoom = { + enabled: false, + scale: 1, + currentScale: 1, + isScaling: false, + gesture: { + $slideEl: undefined, + slideWidth: undefined, + slideHeight: undefined, + $imageEl: undefined, + $imageWrapEl: undefined, + maxRatio: 3, + }, + image: { + isTouched: undefined, + isMoved: undefined, + currentX: undefined, + currentY: undefined, + minX: undefined, + minY: undefined, + maxX: undefined, + maxY: undefined, + width: undefined, + height: undefined, + startX: undefined, + startY: undefined, + touchesStart: {}, + touchesCurrent: {}, + }, + velocity: { + x: undefined, + y: undefined, + prevPositionX: undefined, + prevPositionY: undefined, + prevTime: undefined, + }, + }; + + ('onGestureStart onGestureChange onGestureEnd onTouchStart onTouchMove onTouchEnd onTransitionEnd toggle enable disable in out').split(' ').forEach(function (methodName) { + zoom[methodName] = Zoom[methodName].bind(swiper); + }); + Utils.extend(swiper, { + zoom: zoom, + }); + + var scale = 1; + Object.defineProperty(swiper.zoom, 'scale', { + get: function get() { + return scale; + }, + set: function set(value) { + if (scale !== value) { + var imageEl = swiper.zoom.gesture.$imageEl ? swiper.zoom.gesture.$imageEl[0] : undefined; + var slideEl = swiper.zoom.gesture.$slideEl ? swiper.zoom.gesture.$slideEl[0] : undefined; + swiper.emit('zoomChange', value, imageEl, slideEl); + } + scale = value; + }, + }); + }, + on: { + init: function init() { + var swiper = this; + if (swiper.params.zoom.enabled) { + swiper.zoom.enable(); + } + }, + destroy: function destroy() { + var swiper = this; + swiper.zoom.disable(); + }, + touchStart: function touchStart(e) { + var swiper = this; + if (!swiper.zoom.enabled) { return; } + swiper.zoom.onTouchStart(e); + }, + touchEnd: function touchEnd(e) { + var swiper = this; + if (!swiper.zoom.enabled) { return; } + swiper.zoom.onTouchEnd(e); + }, + doubleTap: function doubleTap(e) { + var swiper = this; + if (swiper.params.zoom.enabled && swiper.zoom.enabled && swiper.params.zoom.toggle) { + swiper.zoom.toggle(e); + } + }, + transitionEnd: function transitionEnd() { + var swiper = this; + if (swiper.zoom.enabled && swiper.params.zoom.enabled) { + swiper.zoom.onTransitionEnd(); + } + }, + slideChange: function slideChange() { + var swiper = this; + if (swiper.zoom.enabled && swiper.params.zoom.enabled && swiper.params.cssMode) { + swiper.zoom.onTransitionEnd(); + } + }, + }, + }; + + var Lazy$2 = { + loadInSlide: function loadInSlide(index, loadInDuplicate) { + if ( loadInDuplicate === void 0 ) loadInDuplicate = true; + + var swiper = this; + var params = swiper.params.lazy; + if (typeof index === 'undefined') { return; } + if (swiper.slides.length === 0) { return; } + var isVirtual = swiper.virtual && swiper.params.virtual.enabled; + + var $slideEl = isVirtual + ? swiper.$wrapperEl.children(("." + (swiper.params.slideClass) + "[data-swiper-slide-index=\"" + index + "\"]")) + : swiper.slides.eq(index); + + var $images = $slideEl.find(("." + (params.elementClass) + ":not(." + (params.loadedClass) + "):not(." + (params.loadingClass) + ")")); + if ($slideEl.hasClass(params.elementClass) && !$slideEl.hasClass(params.loadedClass) && !$slideEl.hasClass(params.loadingClass)) { + $images = $images.add($slideEl[0]); + } + if ($images.length === 0) { return; } + + $images.each(function (imageIndex, imageEl) { + var $imageEl = $(imageEl); + $imageEl.addClass(params.loadingClass); + + var background = $imageEl.attr('data-background'); + var src = $imageEl.attr('data-src'); + var srcset = $imageEl.attr('data-srcset'); + var sizes = $imageEl.attr('data-sizes'); + var $pictureEl = $imageEl.parent('picture'); + + swiper.loadImage($imageEl[0], (src || background), srcset, sizes, false, function () { + if (typeof swiper === 'undefined' || swiper === null || !swiper || (swiper && !swiper.params) || swiper.destroyed) { return; } + if (background) { + $imageEl.css('background-image', ("url(\"" + background + "\")")); + $imageEl.removeAttr('data-background'); + } else { + if (srcset) { + $imageEl.attr('srcset', srcset); + $imageEl.removeAttr('data-srcset'); + } + if (sizes) { + $imageEl.attr('sizes', sizes); + $imageEl.removeAttr('data-sizes'); + } + if ($pictureEl.length) { + $pictureEl.children('source').each(function (sourceIndex, sourceEl) { + var $source = $(sourceEl); + + if ($source.attr('data-srcset')) { + $source.attr('srcset', $source.attr('data-srcset')); + $source.removeAttr('data-srcset'); + } + }); + } + if (src) { + $imageEl.attr('src', src); + $imageEl.removeAttr('data-src'); + } + } + + $imageEl.addClass(params.loadedClass).removeClass(params.loadingClass); + $slideEl.find(("." + (params.preloaderClass))).remove(); + if (swiper.params.loop && loadInDuplicate) { + var slideOriginalIndex = $slideEl.attr('data-swiper-slide-index'); + if ($slideEl.hasClass(swiper.params.slideDuplicateClass)) { + var originalSlide = swiper.$wrapperEl.children(("[data-swiper-slide-index=\"" + slideOriginalIndex + "\"]:not(." + (swiper.params.slideDuplicateClass) + ")")); + swiper.lazy.loadInSlide(originalSlide.index(), false); + } else { + var duplicatedSlide = swiper.$wrapperEl.children(("." + (swiper.params.slideDuplicateClass) + "[data-swiper-slide-index=\"" + slideOriginalIndex + "\"]")); + swiper.lazy.loadInSlide(duplicatedSlide.index(), false); + } + } + swiper.emit('lazyImageReady', $slideEl[0], $imageEl[0]); + if (swiper.params.autoHeight) { + swiper.updateAutoHeight(); + } + }); + + swiper.emit('lazyImageLoad', $slideEl[0], $imageEl[0]); + }); + }, + load: function load() { + var swiper = this; + var $wrapperEl = swiper.$wrapperEl; + var swiperParams = swiper.params; + var slides = swiper.slides; + var activeIndex = swiper.activeIndex; + var isVirtual = swiper.virtual && swiperParams.virtual.enabled; + var params = swiperParams.lazy; + + var slidesPerView = swiperParams.slidesPerView; + if (slidesPerView === 'auto') { + slidesPerView = 0; + } + + function slideExist(index) { + if (isVirtual) { + if ($wrapperEl.children(("." + (swiperParams.slideClass) + "[data-swiper-slide-index=\"" + index + "\"]")).length) { + return true; + } + } else if (slides[index]) { return true; } + return false; + } + + function slideIndex(slideEl) { + if (isVirtual) { + return $(slideEl).attr('data-swiper-slide-index'); + } + return $(slideEl).index(); + } + + if (!swiper.lazy.initialImageLoaded) { swiper.lazy.initialImageLoaded = true; } + if (swiper.params.watchSlidesVisibility) { + $wrapperEl.children(("." + (swiperParams.slideVisibleClass))).each(function (elIndex, slideEl) { + var index = isVirtual ? $(slideEl).attr('data-swiper-slide-index') : $(slideEl).index(); + swiper.lazy.loadInSlide(index); + }); + } else if (slidesPerView > 1) { + for (var i = activeIndex; i < activeIndex + slidesPerView; i += 1) { + if (slideExist(i)) { swiper.lazy.loadInSlide(i); } + } + } else { + swiper.lazy.loadInSlide(activeIndex); + } + if (params.loadPrevNext) { + if (slidesPerView > 1 || (params.loadPrevNextAmount && params.loadPrevNextAmount > 1)) { + var amount = params.loadPrevNextAmount; + var spv = slidesPerView; + var maxIndex = Math.min(activeIndex + spv + Math.max(amount, spv), slides.length); + var minIndex = Math.max(activeIndex - Math.max(spv, amount), 0); + // Next Slides + for (var i$1 = activeIndex + slidesPerView; i$1 < maxIndex; i$1 += 1) { + if (slideExist(i$1)) { swiper.lazy.loadInSlide(i$1); } + } + // Prev Slides + for (var i$2 = minIndex; i$2 < activeIndex; i$2 += 1) { + if (slideExist(i$2)) { swiper.lazy.loadInSlide(i$2); } + } + } else { + var nextSlide = $wrapperEl.children(("." + (swiperParams.slideNextClass))); + if (nextSlide.length > 0) { swiper.lazy.loadInSlide(slideIndex(nextSlide)); } + + var prevSlide = $wrapperEl.children(("." + (swiperParams.slidePrevClass))); + if (prevSlide.length > 0) { swiper.lazy.loadInSlide(slideIndex(prevSlide)); } + } + } + }, + }; + + var Lazy$3 = { + name: 'lazy', + params: { + lazy: { + enabled: false, + loadPrevNext: false, + loadPrevNextAmount: 1, + loadOnTransitionStart: false, + + elementClass: 'swiper-lazy', + loadingClass: 'swiper-lazy-loading', + loadedClass: 'swiper-lazy-loaded', + preloaderClass: 'swiper-lazy-preloader', + }, + }, + create: function create() { + var swiper = this; + Utils.extend(swiper, { + lazy: { + initialImageLoaded: false, + load: Lazy$2.load.bind(swiper), + loadInSlide: Lazy$2.loadInSlide.bind(swiper), + }, + }); + }, + on: { + beforeInit: function beforeInit() { + var swiper = this; + if (swiper.params.lazy.enabled && swiper.params.preloadImages) { + swiper.params.preloadImages = false; + } + }, + init: function init() { + var swiper = this; + if (swiper.params.lazy.enabled && !swiper.params.loop && swiper.params.initialSlide === 0) { + swiper.lazy.load(); + } + }, + scroll: function scroll() { + var swiper = this; + if (swiper.params.freeMode && !swiper.params.freeModeSticky) { + swiper.lazy.load(); + } + }, + resize: function resize() { + var swiper = this; + if (swiper.params.lazy.enabled) { + swiper.lazy.load(); + } + }, + scrollbarDragMove: function scrollbarDragMove() { + var swiper = this; + if (swiper.params.lazy.enabled) { + swiper.lazy.load(); + } + }, + transitionStart: function transitionStart() { + var swiper = this; + if (swiper.params.lazy.enabled) { + if (swiper.params.lazy.loadOnTransitionStart || (!swiper.params.lazy.loadOnTransitionStart && !swiper.lazy.initialImageLoaded)) { + swiper.lazy.load(); + } + } + }, + transitionEnd: function transitionEnd() { + var swiper = this; + if (swiper.params.lazy.enabled && !swiper.params.lazy.loadOnTransitionStart) { + swiper.lazy.load(); + } + }, + slideChange: function slideChange() { + var swiper = this; + if (swiper.params.lazy.enabled && swiper.params.cssMode) { + swiper.lazy.load(); + } + }, + }, + }; + + /* eslint no-bitwise: ["error", { "allow": [">>"] }] */ + + var Controller = { + LinearSpline: function LinearSpline(x, y) { + var binarySearch = (function search() { + var maxIndex; + var minIndex; + var guess; + return function (array, val) { + minIndex = -1; + maxIndex = array.length; + while (maxIndex - minIndex > 1) { + guess = maxIndex + minIndex >> 1; + if (array[guess] <= val) { + minIndex = guess; + } else { + maxIndex = guess; + } + } + return maxIndex; + }; + }()); + this.x = x; + this.y = y; + this.lastIndex = x.length - 1; + // Given an x value (x2), return the expected y2 value: + // (x1,y1) is the known point before given value, + // (x3,y3) is the known point after given value. + var i1; + var i3; + + this.interpolate = function interpolate(x2) { + if (!x2) { return 0; } + + // Get the indexes of x1 and x3 (the array indexes before and after given x2): + i3 = binarySearch(this.x, x2); + i1 = i3 - 1; + + // We have our indexes i1 & i3, so we can calculate already: + // y2 := ((x2−x1) × (y3−y1)) ÷ (x3−x1) + y1 + return (((x2 - this.x[i1]) * (this.y[i3] - this.y[i1])) / (this.x[i3] - this.x[i1])) + this.y[i1]; + }; + return this; + }, + // xxx: for now i will just save one spline function to to + getInterpolateFunction: function getInterpolateFunction(c) { + var swiper = this; + if (!swiper.controller.spline) { + swiper.controller.spline = swiper.params.loop + ? new Controller.LinearSpline(swiper.slidesGrid, c.slidesGrid) + : new Controller.LinearSpline(swiper.snapGrid, c.snapGrid); + } + }, + setTranslate: function setTranslate(setTranslate$1, byController) { + var swiper = this; + var controlled = swiper.controller.control; + var multiplier; + var controlledTranslate; + function setControlledTranslate(c) { + // this will create an Interpolate function based on the snapGrids + // x is the Grid of the scrolled scroller and y will be the controlled scroller + // it makes sense to create this only once and recall it for the interpolation + // the function does a lot of value caching for performance + var translate = swiper.rtlTranslate ? -swiper.translate : swiper.translate; + if (swiper.params.controller.by === 'slide') { + swiper.controller.getInterpolateFunction(c); + // i am not sure why the values have to be multiplicated this way, tried to invert the snapGrid + // but it did not work out + controlledTranslate = -swiper.controller.spline.interpolate(-translate); + } + + if (!controlledTranslate || swiper.params.controller.by === 'container') { + multiplier = (c.maxTranslate() - c.minTranslate()) / (swiper.maxTranslate() - swiper.minTranslate()); + controlledTranslate = ((translate - swiper.minTranslate()) * multiplier) + c.minTranslate(); + } + + if (swiper.params.controller.inverse) { + controlledTranslate = c.maxTranslate() - controlledTranslate; + } + c.updateProgress(controlledTranslate); + c.setTranslate(controlledTranslate, swiper); + c.updateActiveIndex(); + c.updateSlidesClasses(); + } + if (Array.isArray(controlled)) { + for (var i = 0; i < controlled.length; i += 1) { + if (controlled[i] !== byController && controlled[i] instanceof Swiper) { + setControlledTranslate(controlled[i]); + } + } + } else if (controlled instanceof Swiper && byController !== controlled) { + setControlledTranslate(controlled); + } + }, + setTransition: function setTransition(duration, byController) { + var swiper = this; + var controlled = swiper.controller.control; + var i; + function setControlledTransition(c) { + c.setTransition(duration, swiper); + if (duration !== 0) { + c.transitionStart(); + if (c.params.autoHeight) { + Utils.nextTick(function () { + c.updateAutoHeight(); + }); + } + c.$wrapperEl.transitionEnd(function () { + if (!controlled) { return; } + if (c.params.loop && swiper.params.controller.by === 'slide') { + c.loopFix(); + } + c.transitionEnd(); + }); + } + } + if (Array.isArray(controlled)) { + for (i = 0; i < controlled.length; i += 1) { + if (controlled[i] !== byController && controlled[i] instanceof Swiper) { + setControlledTransition(controlled[i]); + } + } + } else if (controlled instanceof Swiper && byController !== controlled) { + setControlledTransition(controlled); + } + }, + }; + var Controller$1 = { + name: 'controller', + params: { + controller: { + control: undefined, + inverse: false, + by: 'slide', // or 'container' + }, + }, + create: function create() { + var swiper = this; + Utils.extend(swiper, { + controller: { + control: swiper.params.controller.control, + getInterpolateFunction: Controller.getInterpolateFunction.bind(swiper), + setTranslate: Controller.setTranslate.bind(swiper), + setTransition: Controller.setTransition.bind(swiper), + }, + }); + }, + on: { + update: function update() { + var swiper = this; + if (!swiper.controller.control) { return; } + if (swiper.controller.spline) { + swiper.controller.spline = undefined; + delete swiper.controller.spline; + } + }, + resize: function resize() { + var swiper = this; + if (!swiper.controller.control) { return; } + if (swiper.controller.spline) { + swiper.controller.spline = undefined; + delete swiper.controller.spline; + } + }, + observerUpdate: function observerUpdate() { + var swiper = this; + if (!swiper.controller.control) { return; } + if (swiper.controller.spline) { + swiper.controller.spline = undefined; + delete swiper.controller.spline; + } + }, + setTranslate: function setTranslate(translate, byController) { + var swiper = this; + if (!swiper.controller.control) { return; } + swiper.controller.setTranslate(translate, byController); + }, + setTransition: function setTransition(duration, byController) { + var swiper = this; + if (!swiper.controller.control) { return; } + swiper.controller.setTransition(duration, byController); + }, + }, + }; + + var History$1 = { + init: function init() { + var swiper = this; + if (!swiper.params.history) { return; } + if (!win.history || !win.history.pushState) { + swiper.params.history.enabled = false; + swiper.params.hashNavigation.enabled = true; + return; + } + var history = swiper.history; + history.initialized = true; + history.paths = History$1.getPathValues(); + if (!history.paths.key && !history.paths.value) { return; } + history.scrollToSlide(0, history.paths.value, swiper.params.runCallbacksOnInit); + if (!swiper.params.history.replaceState) { + win.addEventListener('popstate', swiper.history.setHistoryPopState); + } + }, + destroy: function destroy() { + var swiper = this; + if (!swiper.params.history.replaceState) { + win.removeEventListener('popstate', swiper.history.setHistoryPopState); + } + }, + setHistoryPopState: function setHistoryPopState() { + var swiper = this; + swiper.history.paths = History$1.getPathValues(); + swiper.history.scrollToSlide(swiper.params.speed, swiper.history.paths.value, false); + }, + getPathValues: function getPathValues() { + var pathArray = win.location.pathname.slice(1).split('/').filter(function (part) { return part !== ''; }); + var total = pathArray.length; + var key = pathArray[total - 2]; + var value = pathArray[total - 1]; + return { key: key, value: value }; + }, + setHistory: function setHistory(key, index) { + var swiper = this; + if (!swiper.history.initialized || !swiper.params.history.enabled) { return; } + var slide = swiper.slides.eq(index); + var value = History$1.slugify(slide.attr('data-history')); + if (!win.location.pathname.includes(key)) { + value = key + "/" + value; + } + var currentState = win.history.state; + if (currentState && currentState.value === value) { + return; + } + if (swiper.params.history.replaceState) { + win.history.replaceState({ value: value }, null, value); + } else { + win.history.pushState({ value: value }, null, value); + } + }, + slugify: function slugify(text) { + return text.toString() + .replace(/\s+/g, '-') + .replace(/[^\w-]+/g, '') + .replace(/--+/g, '-') + .replace(/^-+/, '') + .replace(/-+$/, ''); + }, + scrollToSlide: function scrollToSlide(speed, value, runCallbacks) { + var swiper = this; + if (value) { + for (var i = 0, length = swiper.slides.length; i < length; i += 1) { + var slide = swiper.slides.eq(i); + var slideHistory = History$1.slugify(slide.attr('data-history')); + if (slideHistory === value && !slide.hasClass(swiper.params.slideDuplicateClass)) { + var index = slide.index(); + swiper.slideTo(index, speed, runCallbacks); + } + } + } else { + swiper.slideTo(0, speed, runCallbacks); + } + }, + }; + + var History$2 = { + name: 'history', + params: { + history: { + enabled: false, + replaceState: false, + key: 'slides', + }, + }, + create: function create() { + var swiper = this; + Utils.extend(swiper, { + history: { + init: History$1.init.bind(swiper), + setHistory: History$1.setHistory.bind(swiper), + setHistoryPopState: History$1.setHistoryPopState.bind(swiper), + scrollToSlide: History$1.scrollToSlide.bind(swiper), + destroy: History$1.destroy.bind(swiper), + }, + }); + }, + on: { + init: function init() { + var swiper = this; + if (swiper.params.history.enabled) { + swiper.history.init(); + } + }, + destroy: function destroy() { + var swiper = this; + if (swiper.params.history.enabled) { + swiper.history.destroy(); + } + }, + transitionEnd: function transitionEnd() { + var swiper = this; + if (swiper.history.initialized) { + swiper.history.setHistory(swiper.params.history.key, swiper.activeIndex); + } + }, + slideChange: function slideChange() { + var swiper = this; + if (swiper.history.initialized && swiper.params.cssMode) { + swiper.history.setHistory(swiper.params.history.key, swiper.activeIndex); + } + }, + }, + }; + + var HashNavigation = { + onHashCange: function onHashCange() { + var swiper = this; + swiper.emit('hashChange'); + var newHash = doc.location.hash.replace('#', ''); + var activeSlideHash = swiper.slides.eq(swiper.activeIndex).attr('data-hash'); + if (newHash !== activeSlideHash) { + var newIndex = swiper.$wrapperEl.children(("." + (swiper.params.slideClass) + "[data-hash=\"" + newHash + "\"]")).index(); + if (typeof newIndex === 'undefined') { return; } + swiper.slideTo(newIndex); + } + }, + setHash: function setHash() { + var swiper = this; + if (!swiper.hashNavigation.initialized || !swiper.params.hashNavigation.enabled) { return; } + if (swiper.params.hashNavigation.replaceState && win.history && win.history.replaceState) { + win.history.replaceState(null, null, (("#" + (swiper.slides.eq(swiper.activeIndex).attr('data-hash'))) || '')); + swiper.emit('hashSet'); + } else { + var slide = swiper.slides.eq(swiper.activeIndex); + var hash = slide.attr('data-hash') || slide.attr('data-history'); + doc.location.hash = hash || ''; + swiper.emit('hashSet'); + } + }, + init: function init() { + var swiper = this; + if (!swiper.params.hashNavigation.enabled || (swiper.params.history && swiper.params.history.enabled)) { return; } + swiper.hashNavigation.initialized = true; + var hash = doc.location.hash.replace('#', ''); + if (hash) { + var speed = 0; + for (var i = 0, length = swiper.slides.length; i < length; i += 1) { + var slide = swiper.slides.eq(i); + var slideHash = slide.attr('data-hash') || slide.attr('data-history'); + if (slideHash === hash && !slide.hasClass(swiper.params.slideDuplicateClass)) { + var index = slide.index(); + swiper.slideTo(index, speed, swiper.params.runCallbacksOnInit, true); + } + } + } + if (swiper.params.hashNavigation.watchState) { + $(win).on('hashchange', swiper.hashNavigation.onHashCange); + } + }, + destroy: function destroy() { + var swiper = this; + if (swiper.params.hashNavigation.watchState) { + $(win).off('hashchange', swiper.hashNavigation.onHashCange); + } + }, + }; + var HashNavigation$1 = { + name: 'hash-navigation', + params: { + hashNavigation: { + enabled: false, + replaceState: false, + watchState: false, + }, + }, + create: function create() { + var swiper = this; + Utils.extend(swiper, { + hashNavigation: { + initialized: false, + init: HashNavigation.init.bind(swiper), + destroy: HashNavigation.destroy.bind(swiper), + setHash: HashNavigation.setHash.bind(swiper), + onHashCange: HashNavigation.onHashCange.bind(swiper), + }, + }); + }, + on: { + init: function init() { + var swiper = this; + if (swiper.params.hashNavigation.enabled) { + swiper.hashNavigation.init(); + } + }, + destroy: function destroy() { + var swiper = this; + if (swiper.params.hashNavigation.enabled) { + swiper.hashNavigation.destroy(); + } + }, + transitionEnd: function transitionEnd() { + var swiper = this; + if (swiper.hashNavigation.initialized) { + swiper.hashNavigation.setHash(); + } + }, + slideChange: function slideChange() { + var swiper = this; + if (swiper.hashNavigation.initialized && swiper.params.cssMode) { + swiper.hashNavigation.setHash(); + } + }, + }, + }; + + var a11y = { + makeElFocusable: function makeElFocusable($el) { + $el.attr('tabIndex', '0'); + return $el; + }, + makeElNotFocusable: function makeElNotFocusable($el) { + $el.attr('tabIndex', '-1'); + return $el; + }, + addElRole: function addElRole($el, role) { + $el.attr('role', role); + return $el; + }, + addElLabel: function addElLabel($el, label) { + $el.attr('aria-label', label); + return $el; + }, + disableEl: function disableEl($el) { + $el.attr('aria-disabled', true); + return $el; + }, + enableEl: function enableEl($el) { + $el.attr('aria-disabled', false); + return $el; + }, + onEnterKey: function onEnterKey(e) { + var swiper = this; + var params = swiper.params.a11y; + if (e.keyCode !== 13) { return; } + var $targetEl = $(e.target); + if (swiper.navigation && swiper.navigation.$nextEl && $targetEl.is(swiper.navigation.$nextEl)) { + if (!(swiper.isEnd && !swiper.params.loop)) { + swiper.slideNext(); + } + if (swiper.isEnd) { + swiper.a11y.notify(params.lastSlideMessage); + } else { + swiper.a11y.notify(params.nextSlideMessage); + } + } + if (swiper.navigation && swiper.navigation.$prevEl && $targetEl.is(swiper.navigation.$prevEl)) { + if (!(swiper.isBeginning && !swiper.params.loop)) { + swiper.slidePrev(); + } + if (swiper.isBeginning) { + swiper.a11y.notify(params.firstSlideMessage); + } else { + swiper.a11y.notify(params.prevSlideMessage); + } + } + if (swiper.pagination && $targetEl.is(("." + (swiper.params.pagination.bulletClass)))) { + $targetEl[0].click(); + } + }, + notify: function notify(message) { + var swiper = this; + var notification = swiper.a11y.liveRegion; + if (notification.length === 0) { return; } + notification.html(''); + notification.html(message); + }, + updateNavigation: function updateNavigation() { + var swiper = this; + + if (swiper.params.loop || !swiper.navigation) { return; } + var ref = swiper.navigation; + var $nextEl = ref.$nextEl; + var $prevEl = ref.$prevEl; + + if ($prevEl && $prevEl.length > 0) { + if (swiper.isBeginning) { + swiper.a11y.disableEl($prevEl); + swiper.a11y.makeElNotFocusable($prevEl); + } else { + swiper.a11y.enableEl($prevEl); + swiper.a11y.makeElFocusable($prevEl); + } + } + if ($nextEl && $nextEl.length > 0) { + if (swiper.isEnd) { + swiper.a11y.disableEl($nextEl); + swiper.a11y.makeElNotFocusable($nextEl); + } else { + swiper.a11y.enableEl($nextEl); + swiper.a11y.makeElFocusable($nextEl); + } + } + }, + updatePagination: function updatePagination() { + var swiper = this; + var params = swiper.params.a11y; + if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) { + swiper.pagination.bullets.each(function (bulletIndex, bulletEl) { + var $bulletEl = $(bulletEl); + swiper.a11y.makeElFocusable($bulletEl); + swiper.a11y.addElRole($bulletEl, 'button'); + swiper.a11y.addElLabel($bulletEl, params.paginationBulletMessage.replace(/\{\{index\}\}/, $bulletEl.index() + 1)); + }); + } + }, + init: function init() { + var swiper = this; + + swiper.$el.append(swiper.a11y.liveRegion); + + // Navigation + var params = swiper.params.a11y; + var $nextEl; + var $prevEl; + if (swiper.navigation && swiper.navigation.$nextEl) { + $nextEl = swiper.navigation.$nextEl; + } + if (swiper.navigation && swiper.navigation.$prevEl) { + $prevEl = swiper.navigation.$prevEl; + } + if ($nextEl) { + swiper.a11y.makeElFocusable($nextEl); + swiper.a11y.addElRole($nextEl, 'button'); + swiper.a11y.addElLabel($nextEl, params.nextSlideMessage); + $nextEl.on('keydown', swiper.a11y.onEnterKey); + } + if ($prevEl) { + swiper.a11y.makeElFocusable($prevEl); + swiper.a11y.addElRole($prevEl, 'button'); + swiper.a11y.addElLabel($prevEl, params.prevSlideMessage); + $prevEl.on('keydown', swiper.a11y.onEnterKey); + } + + // Pagination + if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) { + swiper.pagination.$el.on('keydown', ("." + (swiper.params.pagination.bulletClass)), swiper.a11y.onEnterKey); + } + }, + destroy: function destroy() { + var swiper = this; + if (swiper.a11y.liveRegion && swiper.a11y.liveRegion.length > 0) { swiper.a11y.liveRegion.remove(); } + + var $nextEl; + var $prevEl; + if (swiper.navigation && swiper.navigation.$nextEl) { + $nextEl = swiper.navigation.$nextEl; + } + if (swiper.navigation && swiper.navigation.$prevEl) { + $prevEl = swiper.navigation.$prevEl; + } + if ($nextEl) { + $nextEl.off('keydown', swiper.a11y.onEnterKey); + } + if ($prevEl) { + $prevEl.off('keydown', swiper.a11y.onEnterKey); + } + + // Pagination + if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) { + swiper.pagination.$el.off('keydown', ("." + (swiper.params.pagination.bulletClass)), swiper.a11y.onEnterKey); + } + }, + }; + var A11y = { + name: 'a11y', + params: { + a11y: { + enabled: true, + notificationClass: 'swiper-notification', + prevSlideMessage: 'Previous slide', + nextSlideMessage: 'Next slide', + firstSlideMessage: 'This is the first slide', + lastSlideMessage: 'This is the last slide', + paginationBulletMessage: 'Go to slide {{index}}', + }, + }, + create: function create() { + var swiper = this; + Utils.extend(swiper, { + a11y: { + liveRegion: $(("")), + }, + }); + Object.keys(a11y).forEach(function (methodName) { + swiper.a11y[methodName] = a11y[methodName].bind(swiper); + }); + }, + on: { + init: function init() { + var swiper = this; + if (!swiper.params.a11y.enabled) { return; } + swiper.a11y.init(); + swiper.a11y.updateNavigation(); + }, + toEdge: function toEdge() { + var swiper = this; + if (!swiper.params.a11y.enabled) { return; } + swiper.a11y.updateNavigation(); + }, + fromEdge: function fromEdge() { + var swiper = this; + if (!swiper.params.a11y.enabled) { return; } + swiper.a11y.updateNavigation(); + }, + paginationUpdate: function paginationUpdate() { + var swiper = this; + if (!swiper.params.a11y.enabled) { return; } + swiper.a11y.updatePagination(); + }, + destroy: function destroy() { + var swiper = this; + if (!swiper.params.a11y.enabled) { return; } + swiper.a11y.destroy(); + }, + }, + }; + + /* eslint no-underscore-dangle: "off" */ + + var Autoplay = { + run: function run() { + var swiper = this; + var $activeSlideEl = swiper.slides.eq(swiper.activeIndex); + var delay = swiper.params.autoplay.delay; + if ($activeSlideEl.attr('data-swiper-autoplay')) { + delay = $activeSlideEl.attr('data-swiper-autoplay') || swiper.params.autoplay.delay; + } + clearTimeout(swiper.autoplay.timeout); + swiper.autoplay.timeout = Utils.nextTick(function () { + if (swiper.params.autoplay.reverseDirection) { + if (swiper.params.loop) { + swiper.loopFix(); + swiper.slidePrev(swiper.params.speed, true, true); + swiper.emit('autoplay'); + } else if (!swiper.isBeginning) { + swiper.slidePrev(swiper.params.speed, true, true); + swiper.emit('autoplay'); + } else if (!swiper.params.autoplay.stopOnLastSlide) { + swiper.slideTo(swiper.slides.length - 1, swiper.params.speed, true, true); + swiper.emit('autoplay'); + } else { + swiper.autoplay.stop(); + } + } else if (swiper.params.loop) { + swiper.loopFix(); + swiper.slideNext(swiper.params.speed, true, true); + swiper.emit('autoplay'); + } else if (!swiper.isEnd) { + swiper.slideNext(swiper.params.speed, true, true); + swiper.emit('autoplay'); + } else if (!swiper.params.autoplay.stopOnLastSlide) { + swiper.slideTo(0, swiper.params.speed, true, true); + swiper.emit('autoplay'); + } else { + swiper.autoplay.stop(); + } + if (swiper.params.cssMode && swiper.autoplay.running) { swiper.autoplay.run(); } + }, delay); + }, + start: function start() { + var swiper = this; + if (typeof swiper.autoplay.timeout !== 'undefined') { return false; } + if (swiper.autoplay.running) { return false; } + swiper.autoplay.running = true; + swiper.emit('autoplayStart'); + swiper.autoplay.run(); + return true; + }, + stop: function stop() { + var swiper = this; + if (!swiper.autoplay.running) { return false; } + if (typeof swiper.autoplay.timeout === 'undefined') { return false; } + + if (swiper.autoplay.timeout) { + clearTimeout(swiper.autoplay.timeout); + swiper.autoplay.timeout = undefined; + } + swiper.autoplay.running = false; + swiper.emit('autoplayStop'); + return true; + }, + pause: function pause(speed) { + var swiper = this; + if (!swiper.autoplay.running) { return; } + if (swiper.autoplay.paused) { return; } + if (swiper.autoplay.timeout) { clearTimeout(swiper.autoplay.timeout); } + swiper.autoplay.paused = true; + if (speed === 0 || !swiper.params.autoplay.waitForTransition) { + swiper.autoplay.paused = false; + swiper.autoplay.run(); + } else { + swiper.$wrapperEl[0].addEventListener('transitionend', swiper.autoplay.onTransitionEnd); + swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.autoplay.onTransitionEnd); + } + }, + }; + + var Autoplay$1 = { + name: 'autoplay', + params: { + autoplay: { + enabled: false, + delay: 3000, + waitForTransition: true, + disableOnInteraction: true, + stopOnLastSlide: false, + reverseDirection: false, + }, + }, + create: function create() { + var swiper = this; + Utils.extend(swiper, { + autoplay: { + running: false, + paused: false, + run: Autoplay.run.bind(swiper), + start: Autoplay.start.bind(swiper), + stop: Autoplay.stop.bind(swiper), + pause: Autoplay.pause.bind(swiper), + onVisibilityChange: function onVisibilityChange() { + if (document.visibilityState === 'hidden' && swiper.autoplay.running) { + swiper.autoplay.pause(); + } + if (document.visibilityState === 'visible' && swiper.autoplay.paused) { + swiper.autoplay.run(); + swiper.autoplay.paused = false; + } + }, + onTransitionEnd: function onTransitionEnd(e) { + if (!swiper || swiper.destroyed || !swiper.$wrapperEl) { return; } + if (e.target !== this) { return; } + swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.autoplay.onTransitionEnd); + swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.autoplay.onTransitionEnd); + swiper.autoplay.paused = false; + if (!swiper.autoplay.running) { + swiper.autoplay.stop(); + } else { + swiper.autoplay.run(); + } + }, + }, + }); + }, + on: { + init: function init() { + var swiper = this; + if (swiper.params.autoplay.enabled) { + swiper.autoplay.start(); + document.addEventListener('visibilitychange', swiper.autoplay.onVisibilityChange); + } + }, + beforeTransitionStart: function beforeTransitionStart(speed, internal) { + var swiper = this; + if (swiper.autoplay.running) { + if (internal || !swiper.params.autoplay.disableOnInteraction) { + swiper.autoplay.pause(speed); + } else { + swiper.autoplay.stop(); + } + } + }, + sliderFirstMove: function sliderFirstMove() { + var swiper = this; + if (swiper.autoplay.running) { + if (swiper.params.autoplay.disableOnInteraction) { + swiper.autoplay.stop(); + } else { + swiper.autoplay.pause(); + } + } + }, + touchEnd: function touchEnd() { + var swiper = this; + if (swiper.params.cssMode && swiper.autoplay.paused && !swiper.params.autoplay.disableOnInteraction) { + swiper.autoplay.run(); + } + }, + destroy: function destroy() { + var swiper = this; + if (swiper.autoplay.running) { + swiper.autoplay.stop(); + } + document.removeEventListener('visibilitychange', swiper.autoplay.onVisibilityChange); + }, + }, + }; + + var Fade = { + setTranslate: function setTranslate() { + var swiper = this; + var slides = swiper.slides; + for (var i = 0; i < slides.length; i += 1) { + var $slideEl = swiper.slides.eq(i); + var offset = $slideEl[0].swiperSlideOffset; + var tx = -offset; + if (!swiper.params.virtualTranslate) { tx -= swiper.translate; } + var ty = 0; + if (!swiper.isHorizontal()) { + ty = tx; + tx = 0; + } + var slideOpacity = swiper.params.fadeEffect.crossFade + ? Math.max(1 - Math.abs($slideEl[0].progress), 0) + : 1 + Math.min(Math.max($slideEl[0].progress, -1), 0); + $slideEl + .css({ + opacity: slideOpacity, + }) + .transform(("translate3d(" + tx + "px, " + ty + "px, 0px)")); + } + }, + setTransition: function setTransition(duration) { + var swiper = this; + var slides = swiper.slides; + var $wrapperEl = swiper.$wrapperEl; + slides.transition(duration); + if (swiper.params.virtualTranslate && duration !== 0) { + var eventTriggered = false; + slides.transitionEnd(function () { + if (eventTriggered) { return; } + if (!swiper || swiper.destroyed) { return; } + eventTriggered = true; + swiper.animating = false; + var triggerEvents = ['webkitTransitionEnd', 'transitionend']; + for (var i = 0; i < triggerEvents.length; i += 1) { + $wrapperEl.trigger(triggerEvents[i]); + } + }); + } + }, + }; + + var EffectFade = { + name: 'effect-fade', + params: { + fadeEffect: { + crossFade: false, + }, + }, + create: function create() { + var swiper = this; + Utils.extend(swiper, { + fadeEffect: { + setTranslate: Fade.setTranslate.bind(swiper), + setTransition: Fade.setTransition.bind(swiper), + }, + }); + }, + on: { + beforeInit: function beforeInit() { + var swiper = this; + if (swiper.params.effect !== 'fade') { return; } + swiper.classNames.push(((swiper.params.containerModifierClass) + "fade")); + var overwriteParams = { + slidesPerView: 1, + slidesPerColumn: 1, + slidesPerGroup: 1, + watchSlidesProgress: true, + spaceBetween: 0, + virtualTranslate: true, + }; + Utils.extend(swiper.params, overwriteParams); + Utils.extend(swiper.originalParams, overwriteParams); + }, + setTranslate: function setTranslate() { + var swiper = this; + if (swiper.params.effect !== 'fade') { return; } + swiper.fadeEffect.setTranslate(); + }, + setTransition: function setTransition(duration) { + var swiper = this; + if (swiper.params.effect !== 'fade') { return; } + swiper.fadeEffect.setTransition(duration); + }, + }, + }; + + var Cube = { + setTranslate: function setTranslate() { + var swiper = this; + var $el = swiper.$el; + var $wrapperEl = swiper.$wrapperEl; + var slides = swiper.slides; + var swiperWidth = swiper.width; + var swiperHeight = swiper.height; + var rtl = swiper.rtlTranslate; + var swiperSize = swiper.size; + var params = swiper.params.cubeEffect; + var isHorizontal = swiper.isHorizontal(); + var isVirtual = swiper.virtual && swiper.params.virtual.enabled; + var wrapperRotate = 0; + var $cubeShadowEl; + if (params.shadow) { + if (isHorizontal) { + $cubeShadowEl = $wrapperEl.find('.swiper-cube-shadow'); + if ($cubeShadowEl.length === 0) { + $cubeShadowEl = $('
          '); + $wrapperEl.append($cubeShadowEl); + } + $cubeShadowEl.css({ height: (swiperWidth + "px") }); + } else { + $cubeShadowEl = $el.find('.swiper-cube-shadow'); + if ($cubeShadowEl.length === 0) { + $cubeShadowEl = $('
          '); + $el.append($cubeShadowEl); + } + } + } + for (var i = 0; i < slides.length; i += 1) { + var $slideEl = slides.eq(i); + var slideIndex = i; + if (isVirtual) { + slideIndex = parseInt($slideEl.attr('data-swiper-slide-index'), 10); + } + var slideAngle = slideIndex * 90; + var round = Math.floor(slideAngle / 360); + if (rtl) { + slideAngle = -slideAngle; + round = Math.floor(-slideAngle / 360); + } + var progress = Math.max(Math.min($slideEl[0].progress, 1), -1); + var tx = 0; + var ty = 0; + var tz = 0; + if (slideIndex % 4 === 0) { + tx = -round * 4 * swiperSize; + tz = 0; + } else if ((slideIndex - 1) % 4 === 0) { + tx = 0; + tz = -round * 4 * swiperSize; + } else if ((slideIndex - 2) % 4 === 0) { + tx = swiperSize + (round * 4 * swiperSize); + tz = swiperSize; + } else if ((slideIndex - 3) % 4 === 0) { + tx = -swiperSize; + tz = (3 * swiperSize) + (swiperSize * 4 * round); + } + if (rtl) { + tx = -tx; + } + + if (!isHorizontal) { + ty = tx; + tx = 0; + } + + var transform = "rotateX(" + (isHorizontal ? 0 : -slideAngle) + "deg) rotateY(" + (isHorizontal ? slideAngle : 0) + "deg) translate3d(" + tx + "px, " + ty + "px, " + tz + "px)"; + if (progress <= 1 && progress > -1) { + wrapperRotate = (slideIndex * 90) + (progress * 90); + if (rtl) { wrapperRotate = (-slideIndex * 90) - (progress * 90); } + } + $slideEl.transform(transform); + if (params.slideShadows) { + // Set shadows + var shadowBefore = isHorizontal ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top'); + var shadowAfter = isHorizontal ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom'); + if (shadowBefore.length === 0) { + shadowBefore = $(("
          ")); + $slideEl.append(shadowBefore); + } + if (shadowAfter.length === 0) { + shadowAfter = $(("
          ")); + $slideEl.append(shadowAfter); + } + if (shadowBefore.length) { shadowBefore[0].style.opacity = Math.max(-progress, 0); } + if (shadowAfter.length) { shadowAfter[0].style.opacity = Math.max(progress, 0); } + } + } + $wrapperEl.css({ + '-webkit-transform-origin': ("50% 50% -" + (swiperSize / 2) + "px"), + '-moz-transform-origin': ("50% 50% -" + (swiperSize / 2) + "px"), + '-ms-transform-origin': ("50% 50% -" + (swiperSize / 2) + "px"), + 'transform-origin': ("50% 50% -" + (swiperSize / 2) + "px"), + }); + + if (params.shadow) { + if (isHorizontal) { + $cubeShadowEl.transform(("translate3d(0px, " + ((swiperWidth / 2) + params.shadowOffset) + "px, " + (-swiperWidth / 2) + "px) rotateX(90deg) rotateZ(0deg) scale(" + (params.shadowScale) + ")")); + } else { + var shadowAngle = Math.abs(wrapperRotate) - (Math.floor(Math.abs(wrapperRotate) / 90) * 90); + var multiplier = 1.5 - ( + (Math.sin((shadowAngle * 2 * Math.PI) / 360) / 2) + + (Math.cos((shadowAngle * 2 * Math.PI) / 360) / 2) + ); + var scale1 = params.shadowScale; + var scale2 = params.shadowScale / multiplier; + var offset = params.shadowOffset; + $cubeShadowEl.transform(("scale3d(" + scale1 + ", 1, " + scale2 + ") translate3d(0px, " + ((swiperHeight / 2) + offset) + "px, " + (-swiperHeight / 2 / scale2) + "px) rotateX(-90deg)")); + } + } + var zFactor = (Browser.isSafari || Browser.isUiWebView) ? (-swiperSize / 2) : 0; + $wrapperEl + .transform(("translate3d(0px,0," + zFactor + "px) rotateX(" + (swiper.isHorizontal() ? 0 : wrapperRotate) + "deg) rotateY(" + (swiper.isHorizontal() ? -wrapperRotate : 0) + "deg)")); + }, + setTransition: function setTransition(duration) { + var swiper = this; + var $el = swiper.$el; + var slides = swiper.slides; + slides + .transition(duration) + .find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left') + .transition(duration); + if (swiper.params.cubeEffect.shadow && !swiper.isHorizontal()) { + $el.find('.swiper-cube-shadow').transition(duration); + } + }, + }; + + var EffectCube = { + name: 'effect-cube', + params: { + cubeEffect: { + slideShadows: true, + shadow: true, + shadowOffset: 20, + shadowScale: 0.94, + }, + }, + create: function create() { + var swiper = this; + Utils.extend(swiper, { + cubeEffect: { + setTranslate: Cube.setTranslate.bind(swiper), + setTransition: Cube.setTransition.bind(swiper), + }, + }); + }, + on: { + beforeInit: function beforeInit() { + var swiper = this; + if (swiper.params.effect !== 'cube') { return; } + swiper.classNames.push(((swiper.params.containerModifierClass) + "cube")); + swiper.classNames.push(((swiper.params.containerModifierClass) + "3d")); + var overwriteParams = { + slidesPerView: 1, + slidesPerColumn: 1, + slidesPerGroup: 1, + watchSlidesProgress: true, + resistanceRatio: 0, + spaceBetween: 0, + centeredSlides: false, + virtualTranslate: true, + }; + Utils.extend(swiper.params, overwriteParams); + Utils.extend(swiper.originalParams, overwriteParams); + }, + setTranslate: function setTranslate() { + var swiper = this; + if (swiper.params.effect !== 'cube') { return; } + swiper.cubeEffect.setTranslate(); + }, + setTransition: function setTransition(duration) { + var swiper = this; + if (swiper.params.effect !== 'cube') { return; } + swiper.cubeEffect.setTransition(duration); + }, + }, + }; + + var Flip = { + setTranslate: function setTranslate() { + var swiper = this; + var slides = swiper.slides; + var rtl = swiper.rtlTranslate; + for (var i = 0; i < slides.length; i += 1) { + var $slideEl = slides.eq(i); + var progress = $slideEl[0].progress; + if (swiper.params.flipEffect.limitRotation) { + progress = Math.max(Math.min($slideEl[0].progress, 1), -1); + } + var offset = $slideEl[0].swiperSlideOffset; + var rotate = -180 * progress; + var rotateY = rotate; + var rotateX = 0; + var tx = -offset; + var ty = 0; + if (!swiper.isHorizontal()) { + ty = tx; + tx = 0; + rotateX = -rotateY; + rotateY = 0; + } else if (rtl) { + rotateY = -rotateY; + } + + $slideEl[0].style.zIndex = -Math.abs(Math.round(progress)) + slides.length; + + if (swiper.params.flipEffect.slideShadows) { + // Set shadows + var shadowBefore = swiper.isHorizontal() ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top'); + var shadowAfter = swiper.isHorizontal() ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom'); + if (shadowBefore.length === 0) { + shadowBefore = $(("
          ")); + $slideEl.append(shadowBefore); + } + if (shadowAfter.length === 0) { + shadowAfter = $(("
          ")); + $slideEl.append(shadowAfter); + } + if (shadowBefore.length) { shadowBefore[0].style.opacity = Math.max(-progress, 0); } + if (shadowAfter.length) { shadowAfter[0].style.opacity = Math.max(progress, 0); } + } + $slideEl + .transform(("translate3d(" + tx + "px, " + ty + "px, 0px) rotateX(" + rotateX + "deg) rotateY(" + rotateY + "deg)")); + } + }, + setTransition: function setTransition(duration) { + var swiper = this; + var slides = swiper.slides; + var activeIndex = swiper.activeIndex; + var $wrapperEl = swiper.$wrapperEl; + slides + .transition(duration) + .find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left') + .transition(duration); + if (swiper.params.virtualTranslate && duration !== 0) { + var eventTriggered = false; + // eslint-disable-next-line + slides.eq(activeIndex).transitionEnd(function onTransitionEnd() { + if (eventTriggered) { return; } + if (!swiper || swiper.destroyed) { return; } + // if (!$(this).hasClass(swiper.params.slideActiveClass)) return; + eventTriggered = true; + swiper.animating = false; + var triggerEvents = ['webkitTransitionEnd', 'transitionend']; + for (var i = 0; i < triggerEvents.length; i += 1) { + $wrapperEl.trigger(triggerEvents[i]); + } + }); + } + }, + }; + + var EffectFlip = { + name: 'effect-flip', + params: { + flipEffect: { + slideShadows: true, + limitRotation: true, + }, + }, + create: function create() { + var swiper = this; + Utils.extend(swiper, { + flipEffect: { + setTranslate: Flip.setTranslate.bind(swiper), + setTransition: Flip.setTransition.bind(swiper), + }, + }); + }, + on: { + beforeInit: function beforeInit() { + var swiper = this; + if (swiper.params.effect !== 'flip') { return; } + swiper.classNames.push(((swiper.params.containerModifierClass) + "flip")); + swiper.classNames.push(((swiper.params.containerModifierClass) + "3d")); + var overwriteParams = { + slidesPerView: 1, + slidesPerColumn: 1, + slidesPerGroup: 1, + watchSlidesProgress: true, + spaceBetween: 0, + virtualTranslate: true, + }; + Utils.extend(swiper.params, overwriteParams); + Utils.extend(swiper.originalParams, overwriteParams); + }, + setTranslate: function setTranslate() { + var swiper = this; + if (swiper.params.effect !== 'flip') { return; } + swiper.flipEffect.setTranslate(); + }, + setTransition: function setTransition(duration) { + var swiper = this; + if (swiper.params.effect !== 'flip') { return; } + swiper.flipEffect.setTransition(duration); + }, + }, + }; + + var Coverflow = { + setTranslate: function setTranslate() { + var swiper = this; + var swiperWidth = swiper.width; + var swiperHeight = swiper.height; + var slides = swiper.slides; + var $wrapperEl = swiper.$wrapperEl; + var slidesSizesGrid = swiper.slidesSizesGrid; + var params = swiper.params.coverflowEffect; + var isHorizontal = swiper.isHorizontal(); + var transform = swiper.translate; + var center = isHorizontal ? -transform + (swiperWidth / 2) : -transform + (swiperHeight / 2); + var rotate = isHorizontal ? params.rotate : -params.rotate; + var translate = params.depth; + // Each slide offset from center + for (var i = 0, length = slides.length; i < length; i += 1) { + var $slideEl = slides.eq(i); + var slideSize = slidesSizesGrid[i]; + var slideOffset = $slideEl[0].swiperSlideOffset; + var offsetMultiplier = ((center - slideOffset - (slideSize / 2)) / slideSize) * params.modifier; + + var rotateY = isHorizontal ? rotate * offsetMultiplier : 0; + var rotateX = isHorizontal ? 0 : rotate * offsetMultiplier; + // var rotateZ = 0 + var translateZ = -translate * Math.abs(offsetMultiplier); + + var stretch = params.stretch; + // Allow percentage to make a relative stretch for responsive sliders + if (typeof stretch === 'string' && stretch.indexOf('%') !== -1) { + stretch = ((parseFloat(params.stretch) / 100) * slideSize); + } + var translateY = isHorizontal ? 0 : stretch * (offsetMultiplier); + var translateX = isHorizontal ? stretch * (offsetMultiplier) : 0; + + // Fix for ultra small values + if (Math.abs(translateX) < 0.001) { translateX = 0; } + if (Math.abs(translateY) < 0.001) { translateY = 0; } + if (Math.abs(translateZ) < 0.001) { translateZ = 0; } + if (Math.abs(rotateY) < 0.001) { rotateY = 0; } + if (Math.abs(rotateX) < 0.001) { rotateX = 0; } + + var slideTransform = "translate3d(" + translateX + "px," + translateY + "px," + translateZ + "px) rotateX(" + rotateX + "deg) rotateY(" + rotateY + "deg)"; + + $slideEl.transform(slideTransform); + $slideEl[0].style.zIndex = -Math.abs(Math.round(offsetMultiplier)) + 1; + if (params.slideShadows) { + // Set shadows + var $shadowBeforeEl = isHorizontal ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top'); + var $shadowAfterEl = isHorizontal ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom'); + if ($shadowBeforeEl.length === 0) { + $shadowBeforeEl = $(("
          ")); + $slideEl.append($shadowBeforeEl); + } + if ($shadowAfterEl.length === 0) { + $shadowAfterEl = $(("
          ")); + $slideEl.append($shadowAfterEl); + } + if ($shadowBeforeEl.length) { $shadowBeforeEl[0].style.opacity = offsetMultiplier > 0 ? offsetMultiplier : 0; } + if ($shadowAfterEl.length) { $shadowAfterEl[0].style.opacity = (-offsetMultiplier) > 0 ? -offsetMultiplier : 0; } + } + } + + // Set correct perspective for IE10 + if (Support.pointerEvents || Support.prefixedPointerEvents) { + var ws = $wrapperEl[0].style; + ws.perspectiveOrigin = center + "px 50%"; + } + }, + setTransition: function setTransition(duration) { + var swiper = this; + swiper.slides + .transition(duration) + .find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left') + .transition(duration); + }, + }; + + var EffectCoverflow = { + name: 'effect-coverflow', + params: { + coverflowEffect: { + rotate: 50, + stretch: 0, + depth: 100, + modifier: 1, + slideShadows: true, + }, + }, + create: function create() { + var swiper = this; + Utils.extend(swiper, { + coverflowEffect: { + setTranslate: Coverflow.setTranslate.bind(swiper), + setTransition: Coverflow.setTransition.bind(swiper), + }, + }); + }, + on: { + beforeInit: function beforeInit() { + var swiper = this; + if (swiper.params.effect !== 'coverflow') { return; } + + swiper.classNames.push(((swiper.params.containerModifierClass) + "coverflow")); + swiper.classNames.push(((swiper.params.containerModifierClass) + "3d")); + + swiper.params.watchSlidesProgress = true; + swiper.originalParams.watchSlidesProgress = true; + }, + setTranslate: function setTranslate() { + var swiper = this; + if (swiper.params.effect !== 'coverflow') { return; } + swiper.coverflowEffect.setTranslate(); + }, + setTransition: function setTransition(duration) { + var swiper = this; + if (swiper.params.effect !== 'coverflow') { return; } + swiper.coverflowEffect.setTransition(duration); + }, + }, + }; + + var Thumbs = { + init: function init() { + var swiper = this; + var ref = swiper.params; + var thumbsParams = ref.thumbs; + var SwiperClass = swiper.constructor; + if (thumbsParams.swiper instanceof SwiperClass) { + swiper.thumbs.swiper = thumbsParams.swiper; + Utils.extend(swiper.thumbs.swiper.originalParams, { + watchSlidesProgress: true, + slideToClickedSlide: false, + }); + Utils.extend(swiper.thumbs.swiper.params, { + watchSlidesProgress: true, + slideToClickedSlide: false, + }); + } else if (Utils.isObject(thumbsParams.swiper)) { + swiper.thumbs.swiper = new SwiperClass(Utils.extend({}, thumbsParams.swiper, { + watchSlidesVisibility: true, + watchSlidesProgress: true, + slideToClickedSlide: false, + })); + swiper.thumbs.swiperCreated = true; + } + swiper.thumbs.swiper.$el.addClass(swiper.params.thumbs.thumbsContainerClass); + swiper.thumbs.swiper.on('tap', swiper.thumbs.onThumbClick); + }, + onThumbClick: function onThumbClick() { + var swiper = this; + var thumbsSwiper = swiper.thumbs.swiper; + if (!thumbsSwiper) { return; } + var clickedIndex = thumbsSwiper.clickedIndex; + var clickedSlide = thumbsSwiper.clickedSlide; + if (clickedSlide && $(clickedSlide).hasClass(swiper.params.thumbs.slideThumbActiveClass)) { return; } + if (typeof clickedIndex === 'undefined' || clickedIndex === null) { return; } + var slideToIndex; + if (thumbsSwiper.params.loop) { + slideToIndex = parseInt($(thumbsSwiper.clickedSlide).attr('data-swiper-slide-index'), 10); + } else { + slideToIndex = clickedIndex; + } + if (swiper.params.loop) { + var currentIndex = swiper.activeIndex; + if (swiper.slides.eq(currentIndex).hasClass(swiper.params.slideDuplicateClass)) { + swiper.loopFix(); + // eslint-disable-next-line + swiper._clientLeft = swiper.$wrapperEl[0].clientLeft; + currentIndex = swiper.activeIndex; + } + var prevIndex = swiper.slides.eq(currentIndex).prevAll(("[data-swiper-slide-index=\"" + slideToIndex + "\"]")).eq(0).index(); + var nextIndex = swiper.slides.eq(currentIndex).nextAll(("[data-swiper-slide-index=\"" + slideToIndex + "\"]")).eq(0).index(); + if (typeof prevIndex === 'undefined') { slideToIndex = nextIndex; } + else if (typeof nextIndex === 'undefined') { slideToIndex = prevIndex; } + else if (nextIndex - currentIndex < currentIndex - prevIndex) { slideToIndex = nextIndex; } + else { slideToIndex = prevIndex; } + } + swiper.slideTo(slideToIndex); + }, + update: function update(initial) { + var swiper = this; + var thumbsSwiper = swiper.thumbs.swiper; + if (!thumbsSwiper) { return; } + + var slidesPerView = thumbsSwiper.params.slidesPerView === 'auto' + ? thumbsSwiper.slidesPerViewDynamic() + : thumbsSwiper.params.slidesPerView; + + var autoScrollOffset = swiper.params.thumbs.autoScrollOffset; + var useOffset = autoScrollOffset && !thumbsSwiper.params.loop; + if (swiper.realIndex !== thumbsSwiper.realIndex || useOffset) { + var currentThumbsIndex = thumbsSwiper.activeIndex; + var newThumbsIndex; + var direction; + if (thumbsSwiper.params.loop) { + if (thumbsSwiper.slides.eq(currentThumbsIndex).hasClass(thumbsSwiper.params.slideDuplicateClass)) { + thumbsSwiper.loopFix(); + // eslint-disable-next-line + thumbsSwiper._clientLeft = thumbsSwiper.$wrapperEl[0].clientLeft; + currentThumbsIndex = thumbsSwiper.activeIndex; + } + // Find actual thumbs index to slide to + var prevThumbsIndex = thumbsSwiper.slides + .eq(currentThumbsIndex) + .prevAll(("[data-swiper-slide-index=\"" + (swiper.realIndex) + "\"]")).eq(0) + .index(); + var nextThumbsIndex = thumbsSwiper.slides + .eq(currentThumbsIndex) + .nextAll(("[data-swiper-slide-index=\"" + (swiper.realIndex) + "\"]")).eq(0) + .index(); + if (typeof prevThumbsIndex === 'undefined') { newThumbsIndex = nextThumbsIndex; } + else if (typeof nextThumbsIndex === 'undefined') { newThumbsIndex = prevThumbsIndex; } + else if (nextThumbsIndex - currentThumbsIndex === currentThumbsIndex - prevThumbsIndex) { newThumbsIndex = currentThumbsIndex; } + else if (nextThumbsIndex - currentThumbsIndex < currentThumbsIndex - prevThumbsIndex) { newThumbsIndex = nextThumbsIndex; } + else { newThumbsIndex = prevThumbsIndex; } + direction = swiper.activeIndex > swiper.previousIndex ? 'next' : 'prev'; + } else { + newThumbsIndex = swiper.realIndex; + direction = newThumbsIndex > swiper.previousIndex ? 'next' : 'prev'; + } + if (useOffset) { + newThumbsIndex += direction === 'next' ? autoScrollOffset : -1 * autoScrollOffset; + } + + if (thumbsSwiper.visibleSlidesIndexes && thumbsSwiper.visibleSlidesIndexes.indexOf(newThumbsIndex) < 0) { + if (thumbsSwiper.params.centeredSlides) { + if (newThumbsIndex > currentThumbsIndex) { + newThumbsIndex = newThumbsIndex - Math.floor(slidesPerView / 2) + 1; + } else { + newThumbsIndex = newThumbsIndex + Math.floor(slidesPerView / 2) - 1; + } + } else if (newThumbsIndex > currentThumbsIndex) { + newThumbsIndex = newThumbsIndex - slidesPerView + 1; + } + thumbsSwiper.slideTo(newThumbsIndex, initial ? 0 : undefined); + } + } + + // Activate thumbs + var thumbsToActivate = 1; + var thumbActiveClass = swiper.params.thumbs.slideThumbActiveClass; + + if (swiper.params.slidesPerView > 1 && !swiper.params.centeredSlides) { + thumbsToActivate = swiper.params.slidesPerView; + } + + if (!swiper.params.thumbs.multipleActiveThumbs) { + thumbsToActivate = 1; + } + + thumbsToActivate = Math.floor(thumbsToActivate); + + thumbsSwiper.slides.removeClass(thumbActiveClass); + if (thumbsSwiper.params.loop || (thumbsSwiper.params.virtual && thumbsSwiper.params.virtual.enabled)) { + for (var i = 0; i < thumbsToActivate; i += 1) { + thumbsSwiper.$wrapperEl.children(("[data-swiper-slide-index=\"" + (swiper.realIndex + i) + "\"]")).addClass(thumbActiveClass); + } + } else { + for (var i$1 = 0; i$1 < thumbsToActivate; i$1 += 1) { + thumbsSwiper.slides.eq(swiper.realIndex + i$1).addClass(thumbActiveClass); + } + } + }, + }; + var Thumbs$1 = { + name: 'thumbs', + params: { + thumbs: { + swiper: null, + multipleActiveThumbs: true, + autoScrollOffset: 0, + slideThumbActiveClass: 'swiper-slide-thumb-active', + thumbsContainerClass: 'swiper-container-thumbs', + }, + }, + create: function create() { + var swiper = this; + Utils.extend(swiper, { + thumbs: { + swiper: null, + init: Thumbs.init.bind(swiper), + update: Thumbs.update.bind(swiper), + onThumbClick: Thumbs.onThumbClick.bind(swiper), + }, + }); + }, + on: { + beforeInit: function beforeInit() { + var swiper = this; + var ref = swiper.params; + var thumbs = ref.thumbs; + if (!thumbs || !thumbs.swiper) { return; } + swiper.thumbs.init(); + swiper.thumbs.update(true); + }, + slideChange: function slideChange() { + var swiper = this; + if (!swiper.thumbs.swiper) { return; } + swiper.thumbs.update(); + }, + update: function update() { + var swiper = this; + if (!swiper.thumbs.swiper) { return; } + swiper.thumbs.update(); + }, + resize: function resize() { + var swiper = this; + if (!swiper.thumbs.swiper) { return; } + swiper.thumbs.update(); + }, + observerUpdate: function observerUpdate() { + var swiper = this; + if (!swiper.thumbs.swiper) { return; } + swiper.thumbs.update(); + }, + setTransition: function setTransition(duration) { + var swiper = this; + var thumbsSwiper = swiper.thumbs.swiper; + if (!thumbsSwiper) { return; } + thumbsSwiper.setTransition(duration); + }, + beforeDestroy: function beforeDestroy() { + var swiper = this; + var thumbsSwiper = swiper.thumbs.swiper; + if (!thumbsSwiper) { return; } + if (swiper.thumbs.swiperCreated && thumbsSwiper) { + thumbsSwiper.destroy(); + } + }, + }, + }; + + // Swiper Class + + Swiper.use([ + Device$1, + Browser$1, + Support$1, + Resize, + Observer$1, + Virtual$1, + Keyboard$1, + Mousewheel$1, + Navigation$1, + Pagination$1, + Scrollbar$1, + Parallax$1, + Zoom$1, + Lazy$3, + Controller$1, + History$2, + HashNavigation$1, + A11y, + Autoplay$1, + EffectFade, + EffectCube, + EffectFlip, + EffectCoverflow, + Thumbs$1 ]); + + function initSwiper(swiperEl) { + var app = this; + var $swiperEl = $(swiperEl); + if ($swiperEl.length === 0) { return; } + if ($swiperEl[0].swiper) { return; } + var initialSlide; + var params = {}; + var isTabs; + var isRoutableTabs; + if ($swiperEl.hasClass('tabs-swipeable-wrap')) { + $swiperEl + .addClass('swiper-container') + .children('.tabs') + .addClass('swiper-wrapper') + .children('.tab') + .addClass('swiper-slide'); + initialSlide = $swiperEl.children('.tabs').children('.tab-active').index(); + isTabs = true; + isRoutableTabs = $swiperEl.find('.tabs-routable').length > 0; + } + if ($swiperEl.attr('data-swiper')) { + params = JSON.parse($swiperEl.attr('data-swiper')); + } else if ($swiperEl[0].f7SwiperParams) { + params = $swiperEl[0].f7SwiperParams; + } else { + params = $swiperEl.dataset(); + Object.keys(params).forEach(function (key) { + var value = params[key]; + if (typeof value === 'string' && value.indexOf('{') === 0 && value.indexOf('}') > 0) { + try { + params[key] = JSON.parse(value); + } catch (e) { + // not JSON + } + } + }); + } + if (typeof params.initialSlide === 'undefined' && typeof initialSlide !== 'undefined') { + params.initialSlide = initialSlide; + } + + var swiper = app.swiper.create($swiperEl[0], params); + function updateSwiper() { + swiper.update(); + } + var $tabEl = $swiperEl.parents('.tab').filter(function (tabElIndex, tabEl) { + return $(tabEl).parent('.tabs').parent('.tabs-animated-wrap, .tabs-swipeable-wrap').length === 0; + }).eq(0); + $swiperEl.parents('.popup, .login-screen, .sheet-modal, .popover').on('modal:open', updateSwiper); + $swiperEl.parents('.panel').on('panel:open', updateSwiper); + if ($tabEl && $tabEl.length) { + $tabEl.on('tab:show', updateSwiper); + } + + swiper.on('beforeDestroy', function () { + $swiperEl.parents('.popup, .login-screen, .sheet-modal, .popover').off('modal:open', updateSwiper); + $swiperEl.parents('.panel').off('panel:open', updateSwiper); + if ($tabEl && $tabEl.length) { + $tabEl.off('tab:show', updateSwiper); + } + }); + if (isTabs) { + swiper.on('slideChange', function () { + if (isRoutableTabs) { + var view = app.views.get($swiperEl.parents('.view')); + if (!view) { view = app.views.main; } + var router = view.router; + var tabRoute = router.findTabRoute(swiper.slides.eq(swiper.activeIndex)[0]); + if (tabRoute) { + setTimeout(function () { + router.navigate(tabRoute.path); + }, 0); + } + } else { + app.tab.show({ + tabEl: swiper.slides.eq(swiper.activeIndex), + }); + } + }); + } + } + + var Swiper$1 = { + name: 'swiper', + static: { + Swiper: Swiper, + }, + create: function create() { + var app = this; + app.swiper = ConstructorMethods({ + defaultSelector: '.swiper-container', + constructor: Swiper, + domProp: 'swiper', + }); + }, + on: { + pageBeforeRemove: function pageBeforeRemove(page) { + var app = this; + page.$el.find('.swiper-init, .tabs-swipeable-wrap').each(function (index, swiperEl) { + app.swiper.destroy(swiperEl); + }); + }, + pageMounted: function pageMounted(page) { + var app = this; + page.$el.find('.tabs-swipeable-wrap').each(function (index, swiperEl) { + initSwiper.call(app, swiperEl); + }); + }, + pageInit: function pageInit(page) { + var app = this; + page.$el.find('.swiper-init, .tabs-swipeable-wrap').each(function (index, swiperEl) { + initSwiper.call(app, swiperEl); + }); + }, + pageReinit: function pageReinit(page) { + var app = this; + page.$el.find('.swiper-init, .tabs-swipeable-wrap').each(function (index, swiperEl) { + var swiper = app.swiper.get(swiperEl); + if (swiper && swiper.update) { swiper.update(); } + }); + }, + tabMounted: function tabMounted(tabEl) { + var app = this; + $(tabEl).find('.swiper-init, .tabs-swipeable-wrap').each(function (index, swiperEl) { + initSwiper.call(app, swiperEl); + }); + }, + tabShow: function tabShow(tabEl) { + var app = this; + $(tabEl).find('.swiper-init, .tabs-swipeable-wrap').each(function (index, swiperEl) { + var swiper = app.swiper.get(swiperEl); + if (swiper && swiper.update) { swiper.update(); } + }); + }, + tabBeforeRemove: function tabBeforeRemove(tabEl) { + var app = this; + $(tabEl).find('.swiper-init, .tabs-swipeable-wrap').each(function (index, swiperEl) { + app.swiper.destroy(swiperEl); + }); + }, + }, + vnode: { + 'swiper-init': { + insert: function insert(vnode) { + var app = this; + var swiperEl = vnode.elm; + initSwiper.call(app, swiperEl); + }, + destroy: function destroy(vnode) { + var app = this; + var swiperEl = vnode.elm; + app.swiper.destroy(swiperEl); + }, + }, + 'tabs-swipeable-wrap': { + insert: function insert(vnode) { + var app = this; + var swiperEl = vnode.elm; + initSwiper.call(app, swiperEl); + }, + destroy: function destroy(vnode) { + var app = this; + var swiperEl = vnode.elm; + app.swiper.destroy(swiperEl); + }, + }, + }, + }; + + /* eslint indent: ["off"] */ + + var PhotoBrowser = /*@__PURE__*/(function (Framework7Class) { + function PhotoBrowser(app, params) { + if ( params === void 0 ) params = {}; + + Framework7Class.call(this, params, [app]); + + var pb = this; + pb.app = app; + + var defaults = Utils.extend({ + on: {}, + }, app.params.photoBrowser); + + // Extend defaults with modules params + pb.useModulesParams(defaults); + + pb.params = Utils.extend(defaults, params); + + Utils.extend(pb, { + exposed: false, + opened: false, + activeIndex: pb.params.swiper.initialSlide, + url: pb.params.url, + swipeToClose: { + allow: true, + isTouched: false, + diff: undefined, + start: undefined, + current: undefined, + started: false, + activeSlide: undefined, + timeStart: undefined, + }, + }); + + // Install Modules + pb.useModules(); + + // Init + pb.init(); + } + + if ( Framework7Class ) PhotoBrowser.__proto__ = Framework7Class; + PhotoBrowser.prototype = Object.create( Framework7Class && Framework7Class.prototype ); + PhotoBrowser.prototype.constructor = PhotoBrowser; + + var prototypeAccessors = { view: { configurable: true } }; + + prototypeAccessors.view.get = function () { + var ref = this; + var params = ref.params; + var app = ref.app; + return params.view || app.views.main; + }; + + PhotoBrowser.prototype.onSlideChange = function onSlideChange (swiper) { + var pb = this; + pb.activeIndex = swiper.activeIndex; + + var current = swiper.activeIndex + 1; + var total = pb.params.virtualSlides ? pb.params.photos.length : swiper.slides.length; + if (swiper.params.loop) { + total -= 2; + current -= swiper.loopedSlides; + if (current < 1) { current = total + current; } + if (current > total) { current -= total; } + } + + var $activeSlideEl = pb.params.virtualSlides + ? swiper.$wrapperEl.find((".swiper-slide[data-swiper-slide-index=\"" + (swiper.activeIndex) + "\"]")) + : swiper.slides.eq(swiper.activeIndex); + var $previousSlideEl = pb.params.virtualSlides + ? swiper.$wrapperEl.find((".swiper-slide[data-swiper-slide-index=\"" + (swiper.previousIndex) + "\"]")) + : swiper.slides.eq(swiper.previousIndex); + + var $currentEl = pb.$el.find('.photo-browser-current'); + var $totalEl = pb.$el.find('.photo-browser-total'); + var navbarEl; + if (pb.params.type === 'page' && pb.params.navbar && $currentEl.length === 0 && pb.app.theme === 'ios') { + navbarEl = pb.app.navbar.getElByPage(pb.$el); + if (navbarEl) { + $currentEl = $(navbarEl).find('.photo-browser-current'); + $totalEl = $(navbarEl).find('.photo-browser-total'); + } + } + if ($currentEl.length && $totalEl.length) { + $currentEl.text(current); + $totalEl.text(total); + if (!navbarEl) { navbarEl = $currentEl.parents('.navbar')[0]; } + if (navbarEl) { + pb.app.navbar.size(navbarEl); + } + } + + // Update captions + if (pb.captions.length > 0) { + var captionIndex = swiper.params.loop ? $activeSlideEl.attr('data-swiper-slide-index') : pb.activeIndex; + pb.$captionsContainerEl.find('.photo-browser-caption-active').removeClass('photo-browser-caption-active'); + pb.$captionsContainerEl.find(("[data-caption-index=\"" + captionIndex + "\"]")).addClass('photo-browser-caption-active'); + } + + // Stop Video + var previousSlideVideo = $previousSlideEl.find('video'); + if (previousSlideVideo.length > 0) { + if ('pause' in previousSlideVideo[0]) { previousSlideVideo[0].pause(); } + } + }; + + PhotoBrowser.prototype.onTouchStart = function onTouchStart () { + var pb = this; + var swipeToClose = pb.swipeToClose; + if (!swipeToClose.allow) { return; } + swipeToClose.isTouched = true; + }; + + PhotoBrowser.prototype.onTouchMove = function onTouchMove (e) { + var pb = this; + var swipeToClose = pb.swipeToClose; + + if (!swipeToClose.isTouched) { return; } + if (!swipeToClose.started) { + swipeToClose.started = true; + swipeToClose.start = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY; + if (pb.params.virtualSlides) { + swipeToClose.activeSlide = pb.swiper.$wrapperEl.children('.swiper-slide-active'); + } else { + swipeToClose.activeSlide = pb.swiper.slides.eq(pb.swiper.activeIndex); + } + swipeToClose.timeStart = Utils.now(); + } + e.preventDefault(); + swipeToClose.current = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY; + swipeToClose.diff = swipeToClose.start - swipeToClose.current; + pb.$el.transition(0).transform(("translate3d(0," + (-swipeToClose.diff) + "px,0)")); + }; + + PhotoBrowser.prototype.onTouchEnd = function onTouchEnd () { + var pb = this; + var swipeToClose = pb.swipeToClose; + swipeToClose.isTouched = false; + if (!swipeToClose.started) { + swipeToClose.started = false; + return; + } + swipeToClose.started = false; + swipeToClose.allow = false; + var diff = Math.abs(swipeToClose.diff); + var timeDiff = (new Date()).getTime() - swipeToClose.timeStart; + if ((timeDiff < 300 && diff > 20) || (timeDiff >= 300 && diff > 100)) { + Utils.nextTick(function () { + if (pb.$el) { + if (swipeToClose.diff < 0) { pb.$el.addClass('swipe-close-to-bottom'); } + else { pb.$el.addClass('swipe-close-to-top'); } + } + pb.emit('local::swipeToClose', pb); + pb.$el.transform('').transition(''); + pb.close(); + swipeToClose.allow = true; + }); + return; + } + if (diff !== 0) { + pb.$el.addClass('photo-browser-transitioning').transitionEnd(function () { + swipeToClose.allow = true; + pb.$el.removeClass('photo-browser-transitioning'); + }); + } else { + swipeToClose.allow = true; + } + Utils.nextTick(function () { + pb.$el.transform('').transition(''); + }); + }; + + // Render Functions + PhotoBrowser.prototype.renderNavbar = function renderNavbar () { + var pb = this; + if (pb.params.renderNavbar) { return pb.params.renderNavbar.call(pb); } + + var iconsColor = pb.params.iconsColor; + if (!pb.params.iconsColor && pb.params.theme === 'dark') { iconsColor = 'white'; } + + var pageBackLinkText = (pb.app.theme === 'ios' || pb.app.theme === 'aurora') && pb.params.pageBackLinkText ? pb.params.pageBackLinkText : ''; + + var renderNavbarCount = typeof pb.params.navbarShowCount === 'undefined' ? pb.params.photos.length > 1 : pb.params.navbarShowCount; + + var isPopup = pb.params.type !== 'page'; + var navbarHtml = ("\n
          \n
          \n
          \n " + (!isPopup ? ("\n \n ") : '') + "\n " + (renderNavbarCount ? ("\n
          \n \n " + (pb.params.navbarOfText) + "\n \n
          \n ") : '') + "\n " + (isPopup ? ("\n \n ") : '') + "\n
          \n
          \n ").trim(); + return navbarHtml; + }; + + PhotoBrowser.prototype.renderToolbar = function renderToolbar () { + var pb = this; + if (pb.params.renderToolbar) { return pb.params.renderToolbar.call(pb); } + + var iconsColor = pb.params.iconsColor; + if (!pb.params.iconsColor && pb.params.theme === 'dark') { iconsColor = 'white'; } + + var toolbarHtml = ("\n
          \n
          \n \n \n \n \n \n \n
          \n
          \n ").trim(); + return toolbarHtml; + }; + + PhotoBrowser.prototype.renderCaption = function renderCaption (caption, index) { + var pb = this; + if (pb.params.renderCaption) { return pb.params.renderCaption.call(pb, caption, index); } + var captionHtml = ("\n
          \n " + caption + "\n
          \n ").trim(); + return captionHtml; + }; + + PhotoBrowser.prototype.renderObject = function renderObject (photo, index) { + var pb = this; + if (pb.params.renderObject) { return pb.params.renderObject.call(pb, photo, index); } + var objHtml = "\n
          " + (photo.html ? photo.html : photo) + "
          \n "; + return objHtml; + }; + + PhotoBrowser.prototype.renderLazyPhoto = function renderLazyPhoto (photo, index) { + var pb = this; + if (pb.params.renderLazyPhoto) { return pb.params.renderLazyPhoto.call(pb, photo, index); } + var photoHtml = ("\n
          \n
          \n \n \n \n
          \n ").trim(); + return photoHtml; + }; + + PhotoBrowser.prototype.renderPhoto = function renderPhoto (photo, index) { + var pb = this; + if (pb.params.renderPhoto) { return pb.params.renderPhoto.call(pb, photo, index); } + var photoHtml = ("\n
          \n \n \n \n
          \n ").trim(); + return photoHtml; + }; + + PhotoBrowser.prototype.render = function render () { + var pb = this; + if (pb.params.render) { return pb.params.render.call(pb, pb.params); } + var html = ("\n
          \n
          \n
          \n " + (pb.params.navbar ? pb.renderNavbar() : '') + "\n " + (pb.params.toolbar ? pb.renderToolbar() : '') + "\n
          \n " + (pb.params.photos.map(function (photo, index) { + if (photo.caption) { return pb.renderCaption(photo.caption, index); } + return ''; + }).join(' ')) + "\n
          \n
          \n
          \n " + (pb.params.virtualSlides ? '' : pb.params.photos.map(function (photo, index) { + if (photo.html || ((typeof photo === 'string' || photo instanceof String) && photo.indexOf('<') >= 0 && photo.indexOf('>') >= 0)) { + return pb.renderObject(photo, index); + } + if (pb.params.swiper.lazy === true || (pb.params.swiper.lazy && pb.params.swiper.lazy.enabled)) { + return pb.renderLazyPhoto(photo, index); + } + return pb.renderPhoto(photo, index); + }).join(' ')) + "\n
          \n
          \n
          \n
          \n
          \n ").trim(); + return html; + }; + + PhotoBrowser.prototype.renderStandalone = function renderStandalone () { + var pb = this; + if (pb.params.renderStandalone) { return pb.params.renderStandalone.call(pb); } + var standaloneHtml = "
          " + (pb.render()) + "
          "; + return standaloneHtml; + }; + + PhotoBrowser.prototype.renderPage = function renderPage () { + var pb = this; + if (pb.params.renderPage) { return pb.params.renderPage.call(pb); } + var pageHtml = pb.render(); + + return pageHtml; + }; + + PhotoBrowser.prototype.renderPopup = function renderPopup () { + var pb = this; + if (pb.params.renderPopup) { return pb.params.renderPopup.call(pb); } + var popupHtml = "
          " + (pb.render()) + "
          "; + + return popupHtml; + }; + + // Callbacks + PhotoBrowser.prototype.onOpen = function onOpen (type, el) { + var pb = this; + var app = pb.app; + var $el = $(el); + + $el[0].f7PhotoBrowser = pb; + + pb.$el = $el; + pb.el = $el[0]; + pb.openedIn = type; + pb.opened = true; + + pb.$swiperContainerEl = pb.$el.find('.photo-browser-swiper-container'); + pb.$swiperWrapperEl = pb.$el.find('.photo-browser-swiper-wrapper'); + pb.slides = pb.$el.find('.photo-browser-slide'); + pb.$captionsContainerEl = pb.$el.find('.photo-browser-captions'); + pb.captions = pb.$el.find('.photo-browser-caption'); + + // Init Swiper + var clickTimeout; + + var swiperParams = Utils.extend({}, pb.params.swiper, { + initialSlide: pb.activeIndex, + on: { + click: function click(e) { + clearTimeout(clickTimeout); + + if (pb.params.exposition) { + clickTimeout = setTimeout(function () { + pb.expositionToggle(); + }, 350); + } + pb.emit('local::tap', e); + pb.emit('local::click', e); + }, + doubleClick: function doubleClick(e) { + clearTimeout(clickTimeout); + pb.emit('local::doubleTap', e); + pb.emit('local::doubleClick', e); + }, + slideChange: function slideChange() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + var swiper = this; + pb.onSlideChange(swiper); + pb.emit.apply(pb, [ 'local::slideChange' ].concat( args )); + }, + transitionStart: function transitionStart() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + pb.emit.apply(pb, [ 'local::transitionStart' ].concat( args )); + }, + transitionEnd: function transitionEnd() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + pb.emit.apply(pb, [ 'local::transitionEnd' ].concat( args )); + }, + slideChangeTransitionStart: function slideChangeTransitionStart() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + var swiper = this; + pb.onSlideChange(swiper); + pb.emit.apply(pb, [ 'local::slideChangeTransitionStart' ].concat( args )); + }, + slideChangeTransitionEnd: function slideChangeTransitionEnd() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + pb.emit.apply(pb, [ 'local::slideChangeTransitionEnd' ].concat( args )); + }, + lazyImageLoad: function lazyImageLoad() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + pb.emit.apply(pb, [ 'local::lazyImageLoad' ].concat( args )); + }, + lazyImageReady: function lazyImageReady() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + var slideEl = args[0]; + $(slideEl).removeClass('photo-browser-slide-lazy'); + pb.emit.apply(pb, [ 'local::lazyImageReady' ].concat( args )); + }, + }, + }); + if (pb.params.swipeToClose && pb.params.type !== 'page') { + Utils.extend(swiperParams.on, { + touchStart: function touchStart(e) { + pb.onTouchStart(e); + pb.emit('local::touchStart', e); + }, + touchMoveOpposite: function touchMoveOpposite(e) { + pb.onTouchMove(e); + pb.emit('local::touchMoveOpposite', e); + }, + touchEnd: function touchEnd(e) { + pb.onTouchEnd(e); + pb.emit('local::touchEnd', e); + }, + }); + } + if (pb.params.virtualSlides) { + Utils.extend(swiperParams, { + virtual: { + slides: pb.params.photos, + renderSlide: function renderSlide(photo, index) { + if (photo.html || ((typeof photo === 'string' || photo instanceof String) && photo.indexOf('<') >= 0 && photo.indexOf('>') >= 0)) { + return pb.renderObject(photo, index); + } + if (pb.params.swiper.lazy === true || (pb.params.swiper.lazy && pb.params.swiper.lazy.enabled)) { + return pb.renderLazyPhoto(photo, index); + } + return pb.renderPhoto(photo, index); + }, + }, + }); + } + + pb.swiper = app.swiper.create(pb.$swiperContainerEl, swiperParams); + + if (pb.activeIndex === 0) { + pb.onSlideChange(pb.swiper); + } + if (pb.$el) { + pb.$el.trigger('photobrowser:open'); + } + pb.emit('local::open photoBrowserOpen', pb); + }; + + PhotoBrowser.prototype.onOpened = function onOpened () { + var pb = this; + if (pb.$el && pb.params.type === 'standalone') { + pb.$el.css('animation', 'none'); + } + if (pb.$el) { + pb.$el.trigger('photobrowser:opened'); + } + pb.emit('local::opened photoBrowserOpened', pb); + }; + + PhotoBrowser.prototype.onClose = function onClose () { + var pb = this; + if (pb.destroyed) { return; } + + // Destroy Swiper + if (pb.swiper && pb.swiper.destroy) { + pb.swiper.destroy(true, false); + pb.swiper = null; + delete pb.swiper; + } + if (pb.$el) { + pb.$el.trigger('photobrowser:close'); + } + pb.emit('local::close photoBrowserClose', pb); + }; + + PhotoBrowser.prototype.onClosed = function onClosed () { + var pb = this; + if (pb.destroyed) { return; } + pb.opened = false; + pb.$el = null; + pb.el = null; + delete pb.$el; + delete pb.el; + if (pb.$el) { + pb.$el.trigger('photobrowser:closed'); + } + pb.emit('local::closed photoBrowserClosed', pb); + }; + + // Open + PhotoBrowser.prototype.openPage = function openPage () { + var pb = this; + if (pb.opened) { return pb; } + + var pageHtml = pb.renderPage(); + + pb.view.router.navigate({ + url: pb.url, + route: { + content: pageHtml, + path: pb.url, + on: { + pageBeforeIn: function pageBeforeIn(e, page) { + pb.view.$el.addClass(("with-photo-browser-page with-photo-browser-page-" + (pb.params.theme))); + pb.onOpen('page', page.el); + }, + pageAfterIn: function pageAfterIn(e, page) { + pb.onOpened('page', page.el); + }, + pageBeforeOut: function pageBeforeOut(e, page) { + pb.view.$el.removeClass(("with-photo-browser-page with-photo-browser-page-exposed with-photo-browser-page-" + (pb.params.theme))); + pb.onClose('page', page.el); + }, + pageAfterOut: function pageAfterOut(e, page) { + pb.onClosed('page', page.el); + }, + }, + }, + }); + return pb; + }; + + PhotoBrowser.prototype.openStandalone = function openStandalone () { + var pb = this; + if (pb.opened) { return pb; } + + var standaloneHtml = pb.renderStandalone(); + + var popupParams = { + backdrop: false, + content: standaloneHtml, + on: { + popupOpen: function popupOpen(popup) { + pb.onOpen('popup', popup.el); + }, + popupOpened: function popupOpened(popup) { + pb.onOpened('popup', popup.el); + }, + popupClose: function popupClose(popup) { + pb.onClose('popup', popup.el); + }, + popupClosed: function popupClosed(popup) { + pb.onClosed('popup', popup.el); + }, + }, + }; + + if (pb.params.routableModals && pb.view) { + pb.view.router.navigate({ + url: pb.url, + route: { + path: pb.url, + popup: popupParams, + }, + }); + } else { + pb.modal = pb.app.popup.create(popupParams).open(); + } + return pb; + }; + + PhotoBrowser.prototype.openPopup = function openPopup () { + var pb = this; + if (pb.opened) { return pb; } + + var popupHtml = pb.renderPopup(); + + var popupParams = { + content: popupHtml, + push: pb.params.popupPush, + on: { + popupOpen: function popupOpen(popup) { + pb.onOpen('popup', popup.el); + }, + popupOpened: function popupOpened(popup) { + pb.onOpened('popup', popup.el); + }, + popupClose: function popupClose(popup) { + pb.onClose('popup', popup.el); + }, + popupClosed: function popupClosed(popup) { + pb.onClosed('popup', popup.el); + }, + }, + }; + + if (pb.params.routableModals && pb.view) { + pb.view.router.navigate({ + url: pb.url, + route: { + path: pb.url, + popup: popupParams, + }, + }); + } else { + pb.modal = pb.app.popup.create(popupParams).open(); + } + return pb; + }; + + // Exposition + PhotoBrowser.prototype.expositionEnable = function expositionEnable () { + var pb = this; + if (pb.params.type === 'page') { + pb.view.$el.addClass('with-photo-browser-page-exposed'); + } + if (pb.$el) { pb.$el.addClass('photo-browser-exposed'); } + if (pb.params.expositionHideCaptions) { pb.$captionsContainerEl.addClass('photo-browser-captions-exposed'); } + pb.exposed = true; + return pb; + }; + + PhotoBrowser.prototype.expositionDisable = function expositionDisable () { + var pb = this; + if (pb.params.type === 'page') { + pb.view.$el.removeClass('with-photo-browser-page-exposed'); + } + if (pb.$el) { pb.$el.removeClass('photo-browser-exposed'); } + if (pb.params.expositionHideCaptions) { pb.$captionsContainerEl.removeClass('photo-browser-captions-exposed'); } + pb.exposed = false; + return pb; + }; + + PhotoBrowser.prototype.expositionToggle = function expositionToggle () { + var pb = this; + if (pb.params.type === 'page') { + pb.view.$el.toggleClass('with-photo-browser-page-exposed'); + } + if (pb.$el) { pb.$el.toggleClass('photo-browser-exposed'); } + if (pb.params.expositionHideCaptions) { pb.$captionsContainerEl.toggleClass('photo-browser-captions-exposed'); } + pb.exposed = !pb.exposed; + return pb; + }; + + PhotoBrowser.prototype.open = function open (index) { + var pb = this; + var type = pb.params.type; + if (pb.opened) { + if (pb.swiper && typeof index !== 'undefined') { + pb.swiper.slideTo(parseInt(index, 10)); + } + return pb; + } + if (typeof index !== 'undefined') { + pb.activeIndex = index; + } + if (type === 'standalone') { + pb.openStandalone(); + } + if (type === 'page') { + pb.openPage(); + } + if (type === 'popup') { + pb.openPopup(); + } + return pb; + }; + + PhotoBrowser.prototype.close = function close () { + var pb = this; + if (!pb.opened) { return pb; } + if ((pb.params.routableModals && pb.view) || pb.openedIn === 'page') { + pb.view.router.back(); + } else { + pb.modal.once('modalClosed', function () { + Utils.nextTick(function () { + if (pb.destroyed) { return; } + pb.modal.destroy(); + delete pb.modal; + }); + }); + pb.modal.close(); + } + return pb; + }; + // eslint-disable-next-line + PhotoBrowser.prototype.init = function init () {}; + + PhotoBrowser.prototype.destroy = function destroy () { + var pb = this; + pb.emit('local::beforeDestroy photoBrowserBeforeDestroy', pb); + if (pb.$el) { + pb.$el.trigger('photobrowser:beforedestroy'); + pb.$el[0].f7PhotoBrowser = null; + delete pb.$el[0].f7PhotoBrowser; + } + Utils.deleteProps(pb); + pb.destroyed = true; + pb = null; + }; + + Object.defineProperties( PhotoBrowser.prototype, prototypeAccessors ); + + return PhotoBrowser; + }(Framework7Class)); + + var PhotoBrowser$1 = { + name: 'photoBrowser', + params: { + photoBrowser: { + photos: [], + exposition: true, + expositionHideCaptions: false, + type: 'standalone', + navbar: true, + toolbar: true, + theme: 'light', + captionsTheme: undefined, + iconsColor: undefined, + popupPush: false, + swipeToClose: true, + pageBackLinkText: 'Back', + popupCloseLinkText: 'Close', + navbarOfText: 'of', + navbarShowCount: undefined, + view: undefined, + url: 'photos/', + routableModals: true, + virtualSlides: true, + + renderNavbar: undefined, + renderToolbar: undefined, + renderCaption: undefined, + renderObject: undefined, + renderLazyPhoto: undefined, + renderPhoto: undefined, + renderPage: undefined, + renderPopup: undefined, + renderStandalone: undefined, + + swiper: { + initialSlide: 0, + spaceBetween: 20, + speed: 300, + loop: false, + preloadImages: true, + navigation: { + nextEl: '.photo-browser-next', + prevEl: '.photo-browser-prev', + }, + zoom: { + enabled: true, + maxRatio: 3, + minRatio: 1, + }, + lazy: { + enabled: true, + }, + }, + }, + }, + create: function create() { + var app = this; + app.photoBrowser = ConstructorMethods({ + defaultSelector: '.photo-browser-popup, .photo-browser-page', + constructor: PhotoBrowser, + app: app, + domProp: 'f7PhotoBrowser', + }); + }, + static: { + PhotoBrowser: PhotoBrowser, + }, + }; + + var Notification = /*@__PURE__*/(function (Modal) { + function Notification(app, params) { + var extendedParams = Utils.extend({ + on: {}, + }, app.params.notification, params); + + // Extends with open/close Modal methods; + Modal.call(this, app, extendedParams); + + var notification = this; + + notification.app = app; + + notification.params = extendedParams; + + var ref = notification.params; + var icon = ref.icon; + var title = ref.title; + var titleRightText = ref.titleRightText; + var subtitle = ref.subtitle; + var text = ref.text; + var closeButton = ref.closeButton; + var closeTimeout = ref.closeTimeout; + var cssClass = ref.cssClass; + var closeOnClick = ref.closeOnClick; + + var $el; + if (!notification.params.el) { + // Find Element + var notificationHtml = notification.render({ + icon: icon, + title: title, + titleRightText: titleRightText, + subtitle: subtitle, + text: text, + closeButton: closeButton, + cssClass: cssClass, + }); + + $el = $(notificationHtml); + } else { + $el = $(notification.params.el); + } + + if ($el && $el.length > 0 && $el[0].f7Modal) { + return $el[0].f7Modal; + } + + if ($el.length === 0) { + return notification.destroy(); + } + + Utils.extend(notification, { + $el: $el, + el: $el[0], + type: 'notification', + }); + + $el[0].f7Modal = notification; + + if (closeButton) { + $el.find('.notification-close-button').on('click', function () { + notification.close(); + }); + } + $el.on('click', function (e) { + if (closeButton && $(e.target).closest('.notification-close-button').length) { + return; + } + notification.emit('local::click notificationClick', notification); + if (closeOnClick) { notification.close(); } + }); + + notification.on('beforeDestroy', function () { + $el.off('click'); + }); + + /* Touch Events */ + var isTouched; + var isMoved; + var isScrolling; + var touchesDiff; + var touchStartTime; + var notificationHeight; + var touchesStart = {}; + function handleTouchStart(e) { + if (isTouched) { return; } + isTouched = true; + isMoved = false; + isScrolling = undefined; + touchStartTime = Utils.now(); + touchesStart.x = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX; + touchesStart.y = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY; + } + function handleTouchMove(e) { + if (!isTouched) { return; } + var pageX = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX; + var pageY = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY; + if (typeof isScrolling === 'undefined') { + isScrolling = !!(isScrolling || Math.abs(pageY - touchesStart.y) < Math.abs(pageX - touchesStart.x)); + } + if (isScrolling) { + isTouched = false; + return; + } + e.preventDefault(); + if (!isMoved) { + notification.$el.removeClass('notification-transitioning'); + notification.$el.transition(0); + notificationHeight = notification.$el[0].offsetHeight / 2; + } + isMoved = true; + touchesDiff = (pageY - touchesStart.y); + var newTranslate = touchesDiff; + if (touchesDiff > 0) { + newTranslate = Math.pow( touchesDiff, 0.8 ); + } + notification.$el.transform(("translate3d(0, " + newTranslate + "px, 0)")); + } + function handleTouchEnd() { + if (!isTouched || !isMoved) { + isTouched = false; + isMoved = false; + return; + } + isTouched = false; + isMoved = false; + if (touchesDiff === 0) { + return; + } + + var timeDiff = Utils.now() - touchStartTime; + notification.$el.transition(''); + notification.$el.addClass('notification-transitioning'); + notification.$el.transform(''); + + if ( + (touchesDiff < -10 && timeDiff < 300) + || (-touchesDiff >= notificationHeight / 1) + ) { + notification.close(); + } + } + + function attachTouchEvents() { + notification.$el.on(app.touchEvents.start, handleTouchStart, { passive: true }); + app.on('touchmove:active', handleTouchMove); + app.on('touchend:passive', handleTouchEnd); + } + function detachTouchEvents() { + notification.$el.off(app.touchEvents.start, handleTouchStart, { passive: true }); + app.off('touchmove:active', handleTouchMove); + app.off('touchend:passive', handleTouchEnd); + } + + var timeoutId; + function closeOnTimeout() { + timeoutId = Utils.nextTick(function () { + if (isTouched && isMoved) { + closeOnTimeout(); + return; + } + notification.close(); + }, closeTimeout); + } + notification.on('open', function () { + if (notification.params.swipeToClose) { + attachTouchEvents(); + } + $('.notification.modal-in').each(function (index, openedEl) { + var notificationInstance = app.notification.get(openedEl); + if (openedEl !== notification.el && notificationInstance) { + notificationInstance.close(); + } + }); + if (closeTimeout) { + closeOnTimeout(); + } + }); + notification.on('close beforeDestroy', function () { + if (notification.params.swipeToClose) { + detachTouchEvents(); + } + win.clearTimeout(timeoutId); + }); + + return notification; + } + + if ( Modal ) Notification.__proto__ = Modal; + Notification.prototype = Object.create( Modal && Modal.prototype ); + Notification.prototype.constructor = Notification; + + Notification.prototype.render = function render () { + var notification = this; + if (notification.params.render) { return notification.params.render.call(notification, notification); } + var ref = notification.params; + var icon = ref.icon; + var title = ref.title; + var titleRightText = ref.titleRightText; + var subtitle = ref.subtitle; + var text = ref.text; + var closeButton = ref.closeButton; + var cssClass = ref.cssClass; + return ("\n
          \n
          \n " + (icon ? ("
          " + icon + "
          ") : '') + "\n " + (title ? ("
          " + title + "
          ") : '') + "\n " + (titleRightText ? ("
          " + titleRightText + "
          ") : '') + "\n " + (closeButton ? '' : '') + "\n
          \n
          \n " + (subtitle ? ("
          " + subtitle + "
          ") : '') + "\n " + (text ? ("
          " + text + "
          ") : '') + "\n
          \n
          \n ").trim(); + }; + + return Notification; + }(Modal)); + + var Notification$1 = { + name: 'notification', + static: { + Notification: Notification, + }, + create: function create() { + var app = this; + app.notification = Utils.extend( + {}, + ModalMethods({ + app: app, + constructor: Notification, + defaultSelector: '.notification.modal-in', + }) + ); + }, + params: { + notification: { + icon: null, + title: null, + titleRightText: null, + subtitle: null, + text: null, + closeButton: false, + closeTimeout: null, + closeOnClick: false, + swipeToClose: true, + cssClass: null, + render: null, + }, + }, + }; + + /* eslint "no-useless-escape": "off" */ + + var Autocomplete = /*@__PURE__*/(function (Framework7Class) { + function Autocomplete(app, params) { + if ( params === void 0 ) params = {}; + + Framework7Class.call(this, params, [app]); + + var ac = this; + ac.app = app; + + var defaults = Utils.extend({ + on: {}, + }, app.params.autocomplete); + + if (typeof defaults.searchbarDisableButton === 'undefined') { + defaults.searchbarDisableButton = app.theme !== 'aurora'; + } + + // Extend defaults with modules params + ac.useModulesParams(defaults); + + ac.params = Utils.extend(defaults, params); + + var $openerEl; + if (ac.params.openerEl) { + $openerEl = $(ac.params.openerEl); + if ($openerEl.length) { $openerEl[0].f7Autocomplete = ac; } + } + + var $inputEl; + if (ac.params.inputEl) { + $inputEl = $(ac.params.inputEl); + if ($inputEl.length) { $inputEl[0].f7Autocomplete = ac; } + } + + var id = Utils.id(); + + var url = params.url; + if (!url && $openerEl && $openerEl.length) { + if ($openerEl.attr('href')) { url = $openerEl.attr('href'); } + else if ($openerEl.find('a').length > 0) { + url = $openerEl.find('a').attr('href'); + } + } + if (!url || url === '#' || url === '') { url = ac.params.url; } + + var inputType = ac.params.multiple ? 'checkbox' : 'radio'; + + Utils.extend(ac, { + $openerEl: $openerEl, + openerEl: $openerEl && $openerEl[0], + $inputEl: $inputEl, + inputEl: $inputEl && $inputEl[0], + id: id, + url: url, + value: ac.params.value || [], + inputType: inputType, + inputName: (inputType + "-" + id), + $modalEl: undefined, + $dropdownEl: undefined, + }); + + var previousQuery = ''; + function onInputChange() { + var query = ac.$inputEl.val().trim(); + + if (!ac.params.source) { return; } + ac.params.source.call(ac, query, function (items) { + var itemsHTML = ''; + var limit = ac.params.limit ? Math.min(ac.params.limit, items.length) : items.length; + ac.items = items; + var regExp; + if (ac.params.highlightMatches) { + query = query.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, '\\$&'); + regExp = new RegExp(("(" + query + ")"), 'i'); + } + + var firstValue; + var firstItem; + for (var i = 0; i < limit; i += 1) { + var itemValue = typeof items[i] === 'object' ? items[i][ac.params.valueProperty] : items[i]; + var itemText = typeof items[i] === 'object' ? items[i][ac.params.textProperty] : items[i]; + if (i === 0) { + firstValue = itemValue; + firstItem = ac.items[i]; + } + itemsHTML += ac.renderItem({ + value: itemValue, + text: ac.params.highlightMatches ? itemText.replace(regExp, '$1') : itemText, + }, i); + } + if (itemsHTML === '' && query === '' && ac.params.dropdownPlaceholderText) { + itemsHTML += ac.renderItem({ + placeholder: true, + text: ac.params.dropdownPlaceholderText, + }); + } + ac.$dropdownEl.find('ul').html(itemsHTML); + if (ac.params.typeahead) { + if (!firstValue || !firstItem) { + return; + } + if (firstValue.toLowerCase().indexOf(query.toLowerCase()) !== 0) { + return; + } + if (previousQuery.toLowerCase() === query.toLowerCase()) { + ac.value = []; + return; + } + + if (previousQuery.toLowerCase().indexOf(query.toLowerCase()) === 0) { + previousQuery = query; + ac.value = []; + return; + } + $inputEl.val(firstValue); + $inputEl[0].setSelectionRange(query.length, firstValue.length); + + var previousValue = typeof ac.value[0] === 'object' ? ac.value[0][ac.params.valueProperty] : ac.value[0]; + if (!previousValue || firstValue.toLowerCase() !== previousValue.toLowerCase()) { + ac.value = [firstItem]; + ac.emit('local::change autocompleteChange', [firstItem]); + } + } + + previousQuery = query; + }); + } + function onPageInputChange() { + var input = this; + var value = input.value; + var isValues = $(input).parents('.autocomplete-values').length > 0; + var item; + var itemValue; + var aValue; + if (isValues) { + if (ac.inputType === 'checkbox' && !input.checked) { + for (var i = 0; i < ac.value.length; i += 1) { + aValue = typeof ac.value[i] === 'string' ? ac.value[i] : ac.value[i][ac.params.valueProperty]; + if (aValue === value || aValue * 1 === value * 1) { + ac.value.splice(i, 1); + } + } + ac.updateValues(); + ac.emit('local::change autocompleteChange', ac.value); + } + return; + } + + // Find Related Item + for (var i$1 = 0; i$1 < ac.items.length; i$1 += 1) { + itemValue = typeof ac.items[i$1] === 'object' ? ac.items[i$1][ac.params.valueProperty] : ac.items[i$1]; + if (itemValue === value || itemValue * 1 === value * 1) { item = ac.items[i$1]; } + } + if (ac.inputType === 'radio') { + ac.value = [item]; + } else if (input.checked) { + ac.value.push(item); + } else { + for (var i$2 = 0; i$2 < ac.value.length; i$2 += 1) { + aValue = typeof ac.value[i$2] === 'object' ? ac.value[i$2][ac.params.valueProperty] : ac.value[i$2]; + if (aValue === value || aValue * 1 === value * 1) { + ac.value.splice(i$2, 1); + } + } + } + + // Update Values Block + ac.updateValues(); + + // On Select Callback + if (((ac.inputType === 'radio' && input.checked) || ac.inputType === 'checkbox')) { + ac.emit('local::change autocompleteChange', ac.value); + } + } + function onHtmlClick(e) { + var $targetEl = $(e.target); + if ($targetEl.is(ac.$inputEl[0]) || (ac.$dropdownEl && $targetEl.closest(ac.$dropdownEl[0]).length)) { return; } + ac.close(); + } + function onOpenerClick() { + ac.open(); + } + function onInputFocus() { + ac.open(); + } + function onInputBlur() { + if (ac.$dropdownEl.find('label.active-state').length > 0) { return; } + setTimeout(function () { + ac.close(); + }, 0); + } + function onResize() { + ac.positionDropdown(); + } + + function onKeyDown(e) { + if (!ac.opened) { return; } + if (e.keyCode === 27) { + // ESC + e.preventDefault(); + ac.$inputEl.blur(); + return; + } + if (e.keyCode === 13) { + // Enter + var $selectedItemLabel = ac.$dropdownEl.find('.autocomplete-dropdown-selected label'); + if ($selectedItemLabel.length) { + e.preventDefault(); + $selectedItemLabel.trigger('click'); + ac.$inputEl.blur(); + return; + } + if (ac.params.typeahead) { + e.preventDefault(); + ac.$inputEl.blur(); + } + return; + } + if (e.keyCode !== 40 && e.keyCode !== 38) { return; } + e.preventDefault(); + var $selectedItem = ac.$dropdownEl.find('.autocomplete-dropdown-selected'); + var $newItem; + if ($selectedItem.length) { + $newItem = $selectedItem[e.keyCode === 40 ? 'next' : 'prev']('li'); + if (!$newItem.length) { + $newItem = ac.$dropdownEl.find('li').eq(e.keyCode === 40 ? 0 : ac.$dropdownEl.find('li').length - 1); + } + } else { + $newItem = ac.$dropdownEl.find('li').eq(e.keyCode === 40 ? 0 : ac.$dropdownEl.find('li').length - 1); + } + if ($newItem.hasClass('autocomplete-dropdown-placeholder')) { return; } + $selectedItem.removeClass('autocomplete-dropdown-selected'); + $newItem.addClass('autocomplete-dropdown-selected'); + } + function onDropdownClick() { + var $clickedEl = $(this); + var clickedItem; + for (var i = 0; i < ac.items.length; i += 1) { + var itemValue = typeof ac.items[i] === 'object' ? ac.items[i][ac.params.valueProperty] : ac.items[i]; + var value = $clickedEl.attr('data-value'); + if (itemValue === value || itemValue * 1 === value * 1) { + clickedItem = ac.items[i]; + } + } + if (ac.params.updateInputValueOnSelect) { + ac.$inputEl.val(typeof clickedItem === 'object' ? clickedItem[ac.params.valueProperty] : clickedItem); + ac.$inputEl.trigger('input change'); + } + ac.value = [clickedItem]; + ac.emit('local::change autocompleteChange', [clickedItem]); + ac.close(); + } + + ac.attachEvents = function attachEvents() { + if (ac.params.openIn !== 'dropdown' && ac.$openerEl) { + ac.$openerEl.on('click', onOpenerClick); + } + if (ac.params.openIn === 'dropdown' && ac.$inputEl) { + ac.$inputEl.on('focus', onInputFocus); + ac.$inputEl.on(ac.params.inputEvents, onInputChange); + if (app.device.android) { + $('html').on('click', onHtmlClick); + } else { + ac.$inputEl.on('blur', onInputBlur); + } + ac.$inputEl.on('keydown', onKeyDown); + } + }; + ac.detachEvents = function attachEvents() { + if (ac.params.openIn !== 'dropdown' && ac.$openerEl) { + ac.$openerEl.off('click', onOpenerClick); + } + if (ac.params.openIn === 'dropdown' && ac.$inputEl) { + ac.$inputEl.off('focus', onInputFocus); + ac.$inputEl.off(ac.params.inputEvents, onInputChange); + if (app.device.android) { + $('html').off('click', onHtmlClick); + } else { + ac.$inputEl.off('blur', onInputBlur); + } + ac.$inputEl.off('keydown', onKeyDown); + } + }; + ac.attachDropdownEvents = function attachDropdownEvents() { + ac.$dropdownEl.on('click', 'label', onDropdownClick); + app.on('resize', onResize); + }; + ac.detachDropdownEvents = function detachDropdownEvents() { + ac.$dropdownEl.off('click', 'label', onDropdownClick); + app.off('resize', onResize); + }; + + ac.attachPageEvents = function attachPageEvents() { + ac.$el.on('change', 'input[type="radio"], input[type="checkbox"]', onPageInputChange); + if (ac.params.closeOnSelect && !ac.params.multiple) { + ac.$el.once('click', '.list label', function () { + Utils.nextTick(function () { + ac.close(); + }); + }); + } + }; + ac.detachPageEvents = function detachPageEvents() { + ac.$el.off('change', 'input[type="radio"], input[type="checkbox"]', onPageInputChange); + }; + + // Install Modules + ac.useModules(); + + // Init + ac.init(); + + return ac; + } + + if ( Framework7Class ) Autocomplete.__proto__ = Framework7Class; + Autocomplete.prototype = Object.create( Framework7Class && Framework7Class.prototype ); + Autocomplete.prototype.constructor = Autocomplete; + + var prototypeAccessors = { view: { configurable: true } }; + + prototypeAccessors.view.get = function () { + var ac = this; + var $openerEl = ac.$openerEl; + var $inputEl = ac.$inputEl; + var app = ac.app; + var view; + if (ac.params.view) { + view = ac.params.view; + } else if ($openerEl || $inputEl) { + var $el = $openerEl || $inputEl; + view = $el.closest('.view').length && $el.closest('.view')[0].f7View; + } + if (!view) { view = app.views.main; } + return view; + }; + + Autocomplete.prototype.positionDropdown = function positionDropdown () { + var obj; + + var ac = this; + var $inputEl = ac.$inputEl; + var app = ac.app; + var $dropdownEl = ac.$dropdownEl; + + var $pageContentEl = $inputEl.parents('.page-content'); + if ($pageContentEl.length === 0) { return; } + var inputOffset = $inputEl.offset(); + var inputOffsetWidth = $inputEl[0].offsetWidth; + var inputOffsetHeight = $inputEl[0].offsetHeight; + var $listEl = $inputEl.parents('.list'); + + var $listParent; + $listEl.parents().each(function (index, parentEl) { + if ($listParent) { return; } + var $parentEl = $(parentEl); + if ($parentEl.parent($pageContentEl).length) { $listParent = $parentEl; } + }); + + var listOffset = $listEl.offset(); + var paddingBottom = parseInt($pageContentEl.css('padding-bottom'), 10); + var listOffsetLeft = $listEl.length > 0 ? listOffset.left - $pageContentEl.offset().left : 0; + var inputOffsetLeft = inputOffset.left - ($listEl.length > 0 ? listOffset.left : 0) - (app.rtl ? 0 : 0); + var inputOffsetTop = inputOffset.top - ($pageContentEl.offset().top - $pageContentEl[0].scrollTop); + + var maxHeight = $pageContentEl[0].scrollHeight - paddingBottom - (inputOffsetTop + $pageContentEl[0].scrollTop) - $inputEl[0].offsetHeight; + + var paddingProp = app.rtl ? 'padding-right' : 'padding-left'; + var paddingValue; + if ($listEl.length && !ac.params.expandInput) { + paddingValue = (app.rtl ? $listEl[0].offsetWidth - inputOffsetLeft - inputOffsetWidth : inputOffsetLeft) - (app.theme === 'md' ? 16 : 15); + } + + $dropdownEl.css({ + left: (($listEl.length > 0 ? listOffsetLeft : inputOffsetLeft) + "px"), + top: ((inputOffsetTop + $pageContentEl[0].scrollTop + inputOffsetHeight) + "px"), + width: (($listEl.length > 0 ? $listEl[0].offsetWidth : inputOffsetWidth) + "px"), + }); + $dropdownEl.children('.autocomplete-dropdown-inner').css(( obj = { + maxHeight: (maxHeight + "px") + }, obj[paddingProp] = $listEl.length > 0 && !ac.params.expandInput ? (paddingValue + "px") : '', obj )); + }; + + Autocomplete.prototype.focus = function focus () { + var ac = this; + ac.$el.find('input[type=search]').focus(); + }; + + Autocomplete.prototype.source = function source (query) { + var ac = this; + if (!ac.params.source) { return; } + + var $el = ac.$el; + + ac.params.source.call(ac, query, function (items) { + var itemsHTML = ''; + var limit = ac.params.limit ? Math.min(ac.params.limit, items.length) : items.length; + ac.items = items; + for (var i = 0; i < limit; i += 1) { + var selected = false; + var itemValue = typeof items[i] === 'object' ? items[i][ac.params.valueProperty] : items[i]; + for (var j = 0; j < ac.value.length; j += 1) { + var aValue = typeof ac.value[j] === 'object' ? ac.value[j][ac.params.valueProperty] : ac.value[j]; + if (aValue === itemValue || aValue * 1 === itemValue * 1) { selected = true; } + } + itemsHTML += ac.renderItem({ + value: itemValue, + text: typeof items[i] === 'object' ? items[i][ac.params.textProperty] : items[i], + inputType: ac.inputType, + id: ac.id, + inputName: ac.inputName, + selected: selected, + }, i); + } + $el.find('.autocomplete-found ul').html(itemsHTML); + if (items.length === 0) { + if (query.length !== 0) { + $el.find('.autocomplete-not-found').show(); + $el.find('.autocomplete-found, .autocomplete-values').hide(); + } else { + $el.find('.autocomplete-values').show(); + $el.find('.autocomplete-found, .autocomplete-not-found').hide(); + } + } else { + $el.find('.autocomplete-found').show(); + $el.find('.autocomplete-not-found, .autocomplete-values').hide(); + } + }); + }; + + Autocomplete.prototype.updateValues = function updateValues () { + var ac = this; + var valuesHTML = ''; + for (var i = 0; i < ac.value.length; i += 1) { + valuesHTML += ac.renderItem({ + value: typeof ac.value[i] === 'object' ? ac.value[i][ac.params.valueProperty] : ac.value[i], + text: typeof ac.value[i] === 'object' ? ac.value[i][ac.params.textProperty] : ac.value[i], + inputType: ac.inputType, + id: ac.id, + inputName: ((ac.inputName) + "-checked}"), + selected: true, + }, i); + } + ac.$el.find('.autocomplete-values ul').html(valuesHTML); + }; + + Autocomplete.prototype.preloaderHide = function preloaderHide () { + var ac = this; + if (ac.params.openIn === 'dropdown' && ac.$dropdownEl) { + ac.$dropdownEl.find('.autocomplete-preloader').removeClass('autocomplete-preloader-visible'); + } else { + $('.autocomplete-preloader').removeClass('autocomplete-preloader-visible'); + } + }; + + Autocomplete.prototype.preloaderShow = function preloaderShow () { + var ac = this; + if (ac.params.openIn === 'dropdown' && ac.$dropdownEl) { + ac.$dropdownEl.find('.autocomplete-preloader').addClass('autocomplete-preloader-visible'); + } else { + $('.autocomplete-preloader').addClass('autocomplete-preloader-visible'); + } + }; + + Autocomplete.prototype.renderPreloader = function renderPreloader () { + var ac = this; + return ("\n
          " + (Utils[((ac.app.theme) + "PreloaderContent")] || '') + "
          \n ").trim(); + }; + + Autocomplete.prototype.renderSearchbar = function renderSearchbar () { + var ac = this; + if (ac.params.renderSearchbar) { return ac.params.renderSearchbar.call(ac); } + var searchbarHTML = ("\n
          \n
          \n
          \n \n \n \n
          \n " + (ac.params.searchbarDisableButton ? ("\n " + (ac.params.searchbarDisableText) + "\n ") : '') + "\n
          \n
          \n ").trim(); + return searchbarHTML; + }; + + Autocomplete.prototype.renderItem = function renderItem (item, index) { + var ac = this; + if (ac.params.renderItem) { return ac.params.renderItem.call(ac, item, index); } + var itemHtml; + var itemValue = item.value && typeof item.value === 'string' ? item.value.replace(/"/g, '"') : item.value; + if (ac.params.openIn !== 'dropdown') { + itemHtml = "\n
        • \n \n
        • \n "; + } else if (!item.placeholder) { + // Dropdown + itemHtml = "\n
        • \n \n
        • \n "; + } else { + // Dropwdown placeholder + itemHtml = "\n
        • \n \n
        • \n "; + } + return itemHtml.trim(); + }; + + Autocomplete.prototype.renderNavbar = function renderNavbar () { + var ac = this; + if (ac.params.renderNavbar) { return ac.params.renderNavbar.call(ac); } + var pageTitle = ac.params.pageTitle; + if (typeof pageTitle === 'undefined' && ac.$openerEl && ac.$openerEl.length) { + pageTitle = ac.$openerEl.find('.item-title').text().trim(); + } + var inPopup = ac.params.openIn === 'popup'; + var navbarLeft = inPopup + ? ("\n " + (ac.params.preloader ? ("\n
          \n " + (ac.renderPreloader()) + "\n
          \n ") : '') + "\n ") + : ("\n \n "); + var navbarRight = inPopup + ? ("\n \n ") + : ("\n " + (ac.params.preloader ? ("\n
          \n " + (ac.renderPreloader()) + "\n
          \n ") : '') + "\n "); + var navbarHtml = ("\n
          \n
          \n
          \n " + navbarLeft + "\n " + (pageTitle ? ("
          " + pageTitle + "
          ") : '') + "\n " + navbarRight + "\n
          " + (ac.renderSearchbar()) + "
          \n
          \n
          \n ").trim(); + return navbarHtml; + }; + + Autocomplete.prototype.renderDropdown = function renderDropdown () { + var ac = this; + if (ac.params.renderDropdown) { return ac.params.renderDropdown.call(ac, ac.items); } + var dropdownHtml = ("\n
          \n
          \n
          \n
            \n
            \n
            \n " + (ac.params.preloader ? ac.renderPreloader() : '') + "\n
            \n ").trim(); + return dropdownHtml; + }; + + Autocomplete.prototype.renderPage = function renderPage (inPopup) { + var ac = this; + if (ac.params.renderPage) { return ac.params.renderPage.call(ac, ac.items); } + + var pageHtml = ("\n
            \n " + (ac.renderNavbar(inPopup)) + "\n
            \n
            \n
            \n
              \n
              \n
              \n
                \n
              • " + (ac.params.notFoundText) + "
              • \n
              \n
              \n
              \n
                \n
                \n
                \n
                \n ").trim(); + return pageHtml; + }; + + Autocomplete.prototype.renderPopup = function renderPopup () { + var ac = this; + if (ac.params.renderPopup) { return ac.params.renderPopup.call(ac, ac.items); } + var popupHtml = ("\n
                \n
                \n " + (ac.renderPage(true)) + ";\n
                \n
                \n ").trim(); + return popupHtml; + }; + + Autocomplete.prototype.onOpen = function onOpen (type, el) { + var ac = this; + var app = ac.app; + var $el = $(el); + ac.$el = $el; + ac.el = $el[0]; + ac.openedIn = type; + ac.opened = true; + + if (ac.params.openIn === 'dropdown') { + ac.attachDropdownEvents(); + + ac.$dropdownEl.addClass('autocomplete-dropdown-in'); + ac.$inputEl.trigger('input'); + } else { + // Init SB + var $searchbarEl = $el.find('.searchbar'); + if (ac.params.openIn === 'page' && app.theme === 'ios' && $searchbarEl.length === 0) { + $searchbarEl = $(app.navbar.getElByPage($el)).find('.searchbar'); + } + ac.searchbar = app.searchbar.create({ + el: $searchbarEl, + backdropEl: $el.find('.searchbar-backdrop'), + customSearch: true, + on: { + search: function search(sb, query) { + if (query.length === 0 && ac.searchbar.enabled) { + ac.searchbar.backdropShow(); + } else { + ac.searchbar.backdropHide(); + } + ac.source(query); + }, + }, + }); + + // Attach page events + ac.attachPageEvents(); + + // Update Values On Page Init + ac.updateValues(); + + // Source on load + if (ac.params.requestSourceOnOpen) { ac.source(''); } + } + + ac.emit('local::open autocompleteOpen', ac); + }; + + Autocomplete.prototype.autoFocus = function autoFocus () { + var ac = this; + if (ac.searchbar && ac.searchbar.$inputEl) { + ac.searchbar.$inputEl.focus(); + } + return ac; + }; + + Autocomplete.prototype.onOpened = function onOpened () { + var ac = this; + if (ac.params.openIn !== 'dropdown' && ac.params.autoFocus) { + ac.autoFocus(); + } + ac.emit('local::opened autocompleteOpened', ac); + }; + + Autocomplete.prototype.onClose = function onClose () { + var ac = this; + if (ac.destroyed) { return; } + + // Destroy SB + if (ac.searchbar && ac.searchbar.destroy) { + ac.searchbar.destroy(); + ac.searchbar = null; + delete ac.searchbar; + } + + if (ac.params.openIn === 'dropdown') { + ac.detachDropdownEvents(); + ac.$dropdownEl.removeClass('autocomplete-dropdown-in').remove(); + ac.$inputEl.parents('.item-content-dropdown-expanded').removeClass('item-content-dropdown-expanded'); + } else { + ac.detachPageEvents(); + } + + ac.emit('local::close autocompleteClose', ac); + }; + + Autocomplete.prototype.onClosed = function onClosed () { + var ac = this; + if (ac.destroyed) { return; } + ac.opened = false; + ac.$el = null; + ac.el = null; + delete ac.$el; + delete ac.el; + + ac.emit('local::closed autocompleteClosed', ac); + }; + + Autocomplete.prototype.openPage = function openPage () { + var ac = this; + if (ac.opened) { return ac; } + var pageHtml = ac.renderPage(); + ac.view.router.navigate({ + url: ac.url, + route: { + content: pageHtml, + path: ac.url, + on: { + pageBeforeIn: function pageBeforeIn(e, page) { + ac.onOpen('page', page.el); + }, + pageAfterIn: function pageAfterIn(e, page) { + ac.onOpened('page', page.el); + }, + pageBeforeOut: function pageBeforeOut(e, page) { + ac.onClose('page', page.el); + }, + pageAfterOut: function pageAfterOut(e, page) { + ac.onClosed('page', page.el); + }, + }, + options: { + animate: ac.params.animate, + }, + }, + }); + return ac; + }; + + Autocomplete.prototype.openPopup = function openPopup () { + var ac = this; + if (ac.opened) { return ac; } + var popupHtml = ac.renderPopup(); + + var popupParams = { + content: popupHtml, + animate: ac.params.animate, + push: ac.params.popupPush, + swipeToClose: ac.params.popupSwipeToClose, + on: { + popupOpen: function popupOpen(popup) { + ac.onOpen('popup', popup.el); + }, + popupOpened: function popupOpened(popup) { + ac.onOpened('popup', popup.el); + }, + popupClose: function popupClose(popup) { + ac.onClose('popup', popup.el); + }, + popupClosed: function popupClosed(popup) { + ac.onClosed('popup', popup.el); + }, + }, + }; + + if (ac.params.routableModals && ac.view) { + ac.view.router.navigate({ + url: ac.url, + route: { + path: ac.url, + popup: popupParams, + }, + }); + } else { + ac.modal = ac.app.popup.create(popupParams).open(ac.params.animate); + } + return ac; + }; + + Autocomplete.prototype.openDropdown = function openDropdown () { + var ac = this; + + if (!ac.$dropdownEl) { + ac.$dropdownEl = $(ac.renderDropdown()); + } + var $listEl = ac.$inputEl.parents('.list'); + if ($listEl.length && ac.$inputEl.parents('.item-content').length > 0 && ac.params.expandInput) { + ac.$inputEl.parents('.item-content').addClass('item-content-dropdown-expanded'); + } + + var $pageContentEl = ac.$inputEl.parents('.page-content'); + if (ac.params.dropdownContainerEl) { + $(ac.params.dropdownContainerEl).append(ac.$dropdownEl); + } else if ($pageContentEl.length === 0) { + ac.$dropdownEl.insertAfter(ac.$inputEl); + } else { + ac.positionDropdown(); + $pageContentEl.append(ac.$dropdownEl); + } + ac.onOpen('dropdown', ac.$dropdownEl); + ac.onOpened('dropdown', ac.$dropdownEl); + }; + + Autocomplete.prototype.open = function open () { + var ac = this; + if (ac.opened) { return ac; } + var openIn = ac.params.openIn; + ac[("open" + (openIn.split('').map(function (el, index) { + if (index === 0) { return el.toUpperCase(); } + return el; + }).join('')))](); + return ac; + }; + + Autocomplete.prototype.close = function close () { + var ac = this; + if (!ac.opened) { return ac; } + if (ac.params.openIn === 'dropdown') { + ac.onClose(); + ac.onClosed(); + } else if ((ac.params.routableModals && ac.view) || ac.openedIn === 'page') { + ac.view.router.back({ animate: ac.params.animate }); + } else { + ac.modal.once('modalClosed', function () { + Utils.nextTick(function () { + if (ac.destroyed) { return; } + ac.modal.destroy(); + delete ac.modal; + }); + }); + ac.modal.close(); + } + return ac; + }; + + Autocomplete.prototype.init = function init () { + var ac = this; + ac.attachEvents(); + }; + + Autocomplete.prototype.destroy = function destroy () { + var ac = this; + ac.emit('local::beforeDestroy autocompleteBeforeDestroy', ac); + ac.detachEvents(); + if (ac.$inputEl && ac.$inputEl[0]) { + delete ac.$inputEl[0].f7Autocomplete; + } + if (ac.$openerEl && ac.$openerEl[0]) { + delete ac.$openerEl[0].f7Autocomplete; + } + Utils.deleteProps(ac); + ac.destroyed = true; + }; + + Object.defineProperties( Autocomplete.prototype, prototypeAccessors ); + + return Autocomplete; + }(Framework7Class)); + + var Autocomplete$1 = { + name: 'autocomplete', + params: { + autocomplete: { + openerEl: undefined, + inputEl: undefined, + view: undefined, + + // DropDown + dropdownContainerEl: undefined, + dropdownPlaceholderText: undefined, + typeahead: false, + highlightMatches: true, + expandInput: false, + updateInputValueOnSelect: true, + inputEvents: 'input', + + value: undefined, + multiple: false, + + source: undefined, + limit: undefined, + valueProperty: 'id', + textProperty: 'text', + + openIn: 'page', // or 'popup' or 'dropdown' + pageBackLinkText: 'Back', + popupCloseLinkText: 'Close', + pageTitle: undefined, + searchbarPlaceholder: 'Search...', + searchbarDisableText: 'Cancel', + searchbarDisableButton: undefined, + searchbarSpellcheck: false, + + popupPush: false, + popupSwipeToClose: undefined, + + animate: true, + + autoFocus: false, + closeOnSelect: false, + notFoundText: 'Nothing found', + requestSourceOnOpen: false, + + // Preloader + preloaderColor: undefined, + preloader: false, + + // Colors + formColorTheme: undefined, + navbarColorTheme: undefined, + + // Routing + routableModals: true, + url: 'select/', + + // Custom render functions + renderDropdown: undefined, + renderPage: undefined, + renderPopup: undefined, + renderItem: undefined, + renderSearchbar: undefined, + renderNavbar: undefined, + + }, + }, + static: { + Autocomplete: Autocomplete, + }, + create: function create() { + var app = this; + app.autocomplete = Utils.extend( + ConstructorMethods({ + defaultSelector: undefined, + constructor: Autocomplete, + app: app, + domProp: 'f7Autocomplete', + }), + { + open: function open(autocompleteEl) { + var ac = app.autocomplete.get(autocompleteEl); + if (ac && ac.open) { return ac.open(); } + return undefined; + }, + close: function close(autocompleteEl) { + var ac = app.autocomplete.get(autocompleteEl); + if (ac && ac.close) { return ac.close(); } + return undefined; + }, + } + ); + }, + }; + + var Tooltip = /*@__PURE__*/(function (Framework7Class) { + function Tooltip(app, params) { + if ( params === void 0 ) params = {}; + + Framework7Class.call(this, params, [app]); + + var tooltip = this; + + var defaults = Utils.extend({}, app.params.tooltip); + + // Extend defaults with modules params + tooltip.useModulesParams(defaults); + + tooltip.params = Utils.extend(defaults, params); + if (typeof params.offset === 'undefined' && Support.touch && tooltip.params.trigger === 'hover') { + tooltip.params.offset = 10; + } + + var ref = tooltip.params; + var targetEl = ref.targetEl; + if (!targetEl) { return tooltip; } + + var $targetEl = $(targetEl); + if ($targetEl.length === 0) { return tooltip; } + + if ($targetEl[0].f7Tooltip) { return $targetEl[0].f7Tooltip; } + + var $el = $(tooltip.render()).eq(0); + + Utils.extend(tooltip, { + app: app, + $targetEl: $targetEl, + targetEl: $targetEl && $targetEl[0], + $el: $el, + el: $el && $el[0], + text: tooltip.params.text || '', + visible: false, + opened: false, + }); + + $targetEl[0].f7Tooltip = tooltip; + + var touchesStart = {}; + var isTouched; + function handleClick() { + if (tooltip.opened) { tooltip.hide(); } + else { tooltip.show(this); } + } + function handleClickOut(e) { + if (tooltip.opened && ( + $(e.target).closest($targetEl).length + || $(e.target).closest(tooltip.$el).length + )) { return; } + tooltip.hide(); + } + function handleTouchStart(e) { + if (isTouched) { return; } + isTouched = true; + touchesStart.x = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX; + touchesStart.y = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY; + tooltip.show(this); + } + function handleTouchMove(e) { + if (!isTouched) { return; } + var x = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX; + var y = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY; + var distance = Math.pow( ( + (Math.pow( (x - touchesStart.x), 2 )) + + (Math.pow( (y - touchesStart.y), 2 )) + ), 0.5 ); + if (distance > 50) { + isTouched = false; + tooltip.hide(); + } + } + function handleTouchEnd() { + if (!isTouched) { return; } + isTouched = false; + tooltip.hide(); + } + function handleMouseEnter() { + tooltip.show(this); + } + function handleMouseLeave() { + tooltip.hide(); + } + function handleTransitionEnd() { + if (!$el.hasClass('tooltip-in')) { + $el.removeClass('tooltip-out').remove(); + } + } + + tooltip.attachEvents = function attachEvents() { + $el.on('transitionend', handleTransitionEnd); + if (tooltip.params.trigger === 'click') { + $targetEl.on('click', handleClick); + $('html').on('click', handleClickOut); + return; + } + if (Support.touch) { + var passive = Support.passiveListener ? { passive: true } : false; + $targetEl.on(app.touchEvents.start, handleTouchStart, passive); + app.on('touchmove', handleTouchMove); + app.on('touchend:passive', handleTouchEnd); + } else { + $targetEl.on((Support.pointerEvents ? 'pointerenter' : 'mouseenter'), handleMouseEnter); + $targetEl.on((Support.pointerEvents ? 'pointerleave' : 'mouseleave'), handleMouseLeave); + } + }; + tooltip.detachEvents = function detachEvents() { + $el.off('transitionend', handleTransitionEnd); + if (tooltip.params.trigger === 'click') { + $targetEl.off('click', handleClick); + $('html').off('click', handleClickOut); + return; + } + if (Support.touch) { + var passive = Support.passiveListener ? { passive: true } : false; + $targetEl.off(app.touchEvents.start, handleTouchStart, passive); + app.off('touchmove', handleTouchMove); + app.off('touchend:passive', handleTouchEnd); + } else { + $targetEl.off((Support.pointerEvents ? 'pointerenter' : 'mouseenter'), handleMouseEnter); + $targetEl.off((Support.pointerEvents ? 'pointerleave' : 'mouseleave'), handleMouseLeave); + } + }; + + // Install Modules + tooltip.useModules(); + + tooltip.init(); + + return tooltip; + } + + if ( Framework7Class ) Tooltip.__proto__ = Framework7Class; + Tooltip.prototype = Object.create( Framework7Class && Framework7Class.prototype ); + Tooltip.prototype.constructor = Tooltip; + + Tooltip.prototype.position = function position (targetEl) { + var tooltip = this; + var $el = tooltip.$el; + var app = tooltip.app; + var tooltipOffset = tooltip.params.offset || 0; + $el.css({ left: '', top: '' }); + var $targetEl = $(targetEl || tooltip.targetEl); + var ref = [$el.width(), $el.height()]; + var width = ref[0]; + var height = ref[1]; + + $el.css({ left: '', top: '' }); + + var targetWidth; + var targetHeight; + var targetOffsetLeft; + var targetOffsetTop; + if ($targetEl && $targetEl.length > 0) { + targetWidth = $targetEl.outerWidth(); + targetHeight = $targetEl.outerHeight(); + if (typeof targetWidth === 'undefined' && typeof targetHeight === 'undefined') { + var clientRect = $targetEl[0].getBoundingClientRect(); + targetWidth = clientRect.width; + targetHeight = clientRect.height; + } + + var targetOffset = $targetEl.offset(); + targetOffsetLeft = targetOffset.left - app.left; + targetOffsetTop = targetOffset.top - app.top; + + var targetParentPage = $targetEl.parents('.page'); + if (targetParentPage.length > 0) { + targetOffsetTop -= targetParentPage[0].scrollTop; + } + } + var ref$1 = [0, 0, 0]; + var left = ref$1[0]; + var top = ref$1[1]; + + // Top Position + var position = 'top'; + + if (height + tooltipOffset < targetOffsetTop) { + // On top + top = targetOffsetTop - height - tooltipOffset; + } else if (height < app.height - targetOffsetTop - targetHeight) { + // On bottom + position = 'bottom'; + top = targetOffsetTop + targetHeight + tooltipOffset; + } else { + // On middle + position = 'middle'; + top = ((targetHeight / 2) + targetOffsetTop) - (height / 2); + if (top <= 0) { + top = 8; + } else if (top + height >= app.height) { + top = app.height - height - 8; + } + } + + // Horizontal Position + if (position === 'top' || position === 'bottom') { + left = ((targetWidth / 2) + targetOffsetLeft) - (width / 2); + if (left < 8) { left = 8; } + if (left + width > app.width) { left = app.width - width - 8; } + if (left < 0) { left = 0; } + } else if (position === 'middle') { + left = targetOffsetLeft - width; + if (left < 8 || (left + width > app.width)) { + if (left < 8) { left = targetOffsetLeft + targetWidth; } + if (left + width > app.width) { left = app.width - width - 8; } + } + } + + // Apply Styles + $el.css({ top: (top + "px"), left: (left + "px") }); + }; + + Tooltip.prototype.show = function show (aroundEl) { + var tooltip = this; + var app = tooltip.app; + var $el = tooltip.$el; + var $targetEl = tooltip.$targetEl; + app.root.append($el); + tooltip.position(aroundEl); + var $aroundEl = $(aroundEl); + tooltip.visible = true; + tooltip.opened = true; + $targetEl.trigger('tooltip:show'); + $el.trigger('tooltip:show'); + if ($aroundEl.length && $aroundEl[0] !== $targetEl[0]) { + $aroundEl.trigger('tooltip:show'); + } + tooltip.emit('local::show tooltipShow', tooltip); + $el.removeClass('tooltip-out').addClass('tooltip-in'); + return tooltip; + }; + + Tooltip.prototype.hide = function hide () { + var tooltip = this; + var $el = tooltip.$el; + var $targetEl = tooltip.$targetEl; + tooltip.visible = false; + tooltip.opened = false; + $targetEl.trigger('tooltip:hide'); + $el.trigger('tooltip:hide'); + tooltip.emit('local::hide tooltipHide', tooltip); + $el.addClass('tooltip-out').removeClass('tooltip-in'); + return tooltip; + }; + + Tooltip.prototype.render = function render () { + var tooltip = this; + if (tooltip.params.render) { return tooltip.params.render.call(tooltip, tooltip); } + var ref = tooltip.params; + var cssClass = ref.cssClass; + var text = ref.text; + return ("\n
                \n
                " + (text || '') + "
                \n
                \n ").trim(); + }; + + Tooltip.prototype.setText = function setText (newText) { + var tooltip = this; + if (typeof newText === 'undefined') { + return tooltip; + } + tooltip.params.text = newText; + tooltip.text = newText; + if (tooltip.$el) { + tooltip.$el.children('.tooltip-content').html(newText); + } + if (tooltip.opened) { + tooltip.position(); + } + return tooltip; + }; + + Tooltip.prototype.init = function init () { + var tooltip = this; + tooltip.attachEvents(); + }; + + Tooltip.prototype.destroy = function destroy () { + var tooltip = this; + if (!tooltip.$targetEl || tooltip.destroyed) { return; } + tooltip.$targetEl.trigger('tooltip:beforedestroy'); + tooltip.emit('local::beforeDestroy tooltipBeforeDestroy', tooltip); + tooltip.$el.remove(); + delete tooltip.$targetEl[0].f7Tooltip; + tooltip.detachEvents(); + Utils.deleteProps(tooltip); + tooltip.destroyed = true; + }; + + return Tooltip; + }(Framework7Class)); + + var Tooltip$1 = { + name: 'tooltip', + static: { + Tooltip: Tooltip, + }, + create: function create() { + var app = this; + app.tooltip = ConstructorMethods({ + defaultSelector: '.tooltip', + constructor: Tooltip, + app: app, + domProp: 'f7Tooltip', + }); + app.tooltip.show = function show(el) { + var $el = $(el); + if ($el.length === 0) { return undefined; } + var tooltip = $el[0].f7Tooltip; + if (!tooltip) { return undefined; } + tooltip.show($el[0]); + return tooltip; + }; + app.tooltip.hide = function hide(el) { + var $el = $(el); + if ($el.length === 0) { return undefined; } + var tooltip = $el[0].f7Tooltip; + if (!tooltip) { return undefined; } + tooltip.hide(); + return tooltip; + }; + app.tooltip.setText = function text(el, newText) { + var $el = $(el); + if ($el.length === 0) { return undefined; } + var tooltip = $el[0].f7Tooltip; + if (!tooltip) { return undefined; } + tooltip.setText(newText); + return tooltip; + }; + }, + params: { + tooltip: { + targetEl: null, + text: null, + cssClass: null, + render: null, + offset: 0, + trigger: 'hover', + }, + }, + on: { + tabMounted: function tabMounted(tabEl) { + var app = this; + $(tabEl).find('.tooltip-init').each(function (index, el) { + var text = $(el).attr('data-tooltip'); + if (!text) { return; } + app.tooltip.create({ targetEl: el, text: text }); + }); + }, + tabBeforeRemove: function tabBeforeRemove(tabEl) { + $(tabEl).find('.tooltip-init').each(function (index, el) { + if (el.f7Tooltip) { el.f7Tooltip.destroy(); } + }); + }, + pageInit: function pageInit(page) { + var app = this; + page.$el.find('.tooltip-init').each(function (index, el) { + var text = $(el).attr('data-tooltip'); + if (!text) { return; } + app.tooltip.create({ targetEl: el, text: text }); + }); + if (app.theme === 'ios' && page.view && page.view.router.dynamicNavbar && page.$navbarEl && page.$navbarEl.length > 0) { + page.$navbarEl.find('.tooltip-init').each(function (index, el) { + var text = $(el).attr('data-tooltip'); + if (!text) { return; } + app.tooltip.create({ targetEl: el, text: text }); + }); + } + }, + pageBeforeRemove: function pageBeforeRemove(page) { + var app = this; + page.$el.find('.tooltip-init').each(function (index, el) { + if (el.f7Tooltip) { el.f7Tooltip.destroy(); } + }); + if (app.theme === 'ios' && page.view && page.view.router.dynamicNavbar && page.$navbarEl && page.$navbarEl.length > 0) { + page.$navbarEl.find('.tooltip-init').each(function (index, el) { + if (el.f7Tooltip) { el.f7Tooltip.destroy(); } + }); + } + }, + }, + vnode: { + 'tooltip-init': { + insert: function insert(vnode) { + var app = this; + var el = vnode.elm; + var text = $(el).attr('data-tooltip'); + if (!text) { return; } + app.tooltip.create({ targetEl: el, text: text }); + }, + update: function update(vnode) { + var el = vnode.elm; + if (!el.f7Tooltip) { return; } + if (vnode && vnode.data && vnode.data.attrs && vnode.data.attrs['data-tooltip']) { + el.f7Tooltip.setText(vnode.data.attrs['data-tooltip']); + } + }, + destroy: function destroy(vnode) { + var el = vnode.elm; + if (el.f7Tooltip) { el.f7Tooltip.destroy(); } + }, + }, + }, + }; + + /* eslint no-nested-ternary: off */ + + var Gauge = /*@__PURE__*/(function (Framework7Class) { + function Gauge(app, params) { + if ( params === void 0 ) params = {}; + + // Extends with open/close Modal methods; + Framework7Class.call(this, params, [app]); + + var gauge = this; + + var defaults = Utils.extend({}, app.params.gauge); + + // Extend defaults with modules params + gauge.useModulesParams(defaults); + + gauge.params = Utils.extend(defaults, params); + + var ref = gauge.params; + var el = ref.el; + if (!el) { return gauge; } + + var $el = $(el); + if ($el.length === 0) { return gauge; } + + if ($el[0].f7Gauge) { return $el[0].f7Gauge; } + + Utils.extend(gauge, { + app: app, + $el: $el, + el: $el && $el[0], + }); + + $el[0].f7Gauge = gauge; + + // Install Modules + gauge.useModules(); + + gauge.init(); + + return gauge; + } + + if ( Framework7Class ) Gauge.__proto__ = Framework7Class; + Gauge.prototype = Object.create( Framework7Class && Framework7Class.prototype ); + Gauge.prototype.constructor = Gauge; + + Gauge.prototype.calcRadius = function calcRadius () { + var gauge = this; + var ref = gauge.params; + var size = ref.size; + var borderWidth = ref.borderWidth; + return (size / 2) - (borderWidth / 2); + }; + + Gauge.prototype.calcBorderLength = function calcBorderLength () { + var gauge = this; + var radius = gauge.calcRadius(); + return 2 * Math.PI * radius; + }; + + Gauge.prototype.render = function render () { + var gauge = this; + if (gauge.params.render) { return gauge.params.render.call(gauge, gauge); } + + var ref = gauge.params; + var type = ref.type; + var value = ref.value; + var size = ref.size; + var bgColor = ref.bgColor; + var borderBgColor = ref.borderBgColor; + var borderColor = ref.borderColor; + var borderWidth = ref.borderWidth; + var valueText = ref.valueText; + var valueTextColor = ref.valueTextColor; + var valueFontSize = ref.valueFontSize; + var valueFontWeight = ref.valueFontWeight; + var labelText = ref.labelText; + var labelTextColor = ref.labelTextColor; + var labelFontSize = ref.labelFontSize; + var labelFontWeight = ref.labelFontWeight; + + var semiCircle = type === 'semicircle'; + var radius = gauge.calcRadius(); + var length = gauge.calcBorderLength(); + var progress = Math.max(Math.min(value, 1), 0); + + return ("\n \n " + (semiCircle ? ("\n \n \n ") : ("\n " + (borderBgColor ? ("\n \n ") : '') + "\n \n ")) + "\n " + (valueText ? ("\n " + valueText + "\n ") : '') + "\n " + (labelText ? ("\n " + labelText + "\n ") : '') + "\n \n ").trim(); + }; + + Gauge.prototype.update = function update (newParams) { + if ( newParams === void 0 ) newParams = {}; + + var gauge = this; + var params = gauge.params; + var $gaugeSvgEl = gauge.$gaugeSvgEl; + + Object.keys(newParams).forEach(function (param) { + if (typeof newParams[param] !== 'undefined') { + params[param] = newParams[param]; + } + }); + if ($gaugeSvgEl.length === 0) { return gauge; } + + var value = params.value; + var size = params.size; + var bgColor = params.bgColor; + var borderBgColor = params.borderBgColor; + var borderColor = params.borderColor; + var borderWidth = params.borderWidth; + var valueText = params.valueText; + var valueTextColor = params.valueTextColor; + var valueFontSize = params.valueFontSize; + var valueFontWeight = params.valueFontWeight; + var labelText = params.labelText; + var labelTextColor = params.labelTextColor; + var labelFontSize = params.labelFontSize; + var labelFontWeight = params.labelFontWeight; + + var length = gauge.calcBorderLength(); + var progress = Math.max(Math.min(value, 1), 0); + var radius = gauge.calcRadius(); + var semiCircle = params.type === 'semicircle'; + + var svgAttrs = { + width: (size + "px"), + height: ((semiCircle ? size / 2 : size) + "px"), + viewBox: ("0 0 " + size + " " + (semiCircle ? size / 2 : size)), + }; + Object.keys(svgAttrs).forEach(function (attr) { + $gaugeSvgEl.attr(attr, svgAttrs[attr]); + }); + if (semiCircle) { + var backAttrs = { + d: ("M" + (size - (borderWidth / 2)) + "," + (size / 2) + " a1,1 0 0,0 -" + (size - borderWidth) + ",0"), + stroke: borderBgColor, + 'stroke-width': borderWidth, + fill: bgColor || 'none', + }; + var frontAttrs = { + d: ("M" + (size - (borderWidth / 2)) + "," + (size / 2) + " a1,1 0 0,0 -" + (size - borderWidth) + ",0"), + stroke: borderColor, + 'stroke-width': borderWidth, + 'stroke-dasharray': length / 2, + 'stroke-dashoffset': (length / 2) * (1 + progress), + fill: borderBgColor ? 'none' : (bgColor || 'none'), + }; + Object.keys(backAttrs).forEach(function (attr) { + $gaugeSvgEl.find('.gauge-back-semi').attr(attr, backAttrs[attr]); + }); + Object.keys(frontAttrs).forEach(function (attr) { + $gaugeSvgEl.find('.gauge-front-semi').attr(attr, frontAttrs[attr]); + }); + } else { + var backAttrs$1 = { + stroke: borderBgColor, + 'stroke-width': borderWidth, + fill: bgColor || 'none', + cx: size / 2, + cy: size / 2, + r: radius, + }; + var frontAttrs$1 = { + transform: ("rotate(-90 " + (size / 2) + " " + (size / 2) + ")"), + stroke: borderColor, + 'stroke-width': borderWidth, + 'stroke-dasharray': length, + 'stroke-dashoffset': length * (1 - progress), + fill: borderBgColor ? 'none' : bgColor || 'none', + cx: size / 2, + cy: size / 2, + r: radius, + }; + Object.keys(backAttrs$1).forEach(function (attr) { + $gaugeSvgEl.find('.gauge-back-circle').attr(attr, backAttrs$1[attr]); + }); + Object.keys(frontAttrs$1).forEach(function (attr) { + $gaugeSvgEl.find('.gauge-front-circle').attr(attr, frontAttrs$1[attr]); + }); + } + if (valueText) { + if (!$gaugeSvgEl.find('.gauge-value-text').length) { + var textEl = document.createElementNS('http://www.w3.org/2000/svg', 'text'); + textEl.classList.add('gauge-value-text'); + $gaugeSvgEl.append(textEl); + } + var textAttrs = { + x: '50%', + y: semiCircle ? '100%' : '50%', + 'font-weight': valueFontWeight, + 'font-size': valueFontSize, + fill: valueTextColor, + dy: semiCircle ? (labelText ? -labelFontSize - 15 : -5) : 0, + 'text-anchor': 'middle', + 'dominant-baseline': !semiCircle && 'middle', + }; + Object.keys(textAttrs).forEach(function (attr) { + $gaugeSvgEl.find('.gauge-value-text').attr(attr, textAttrs[attr]); + }); + $gaugeSvgEl.find('.gauge-value-text').text(valueText); + } else { + $gaugeSvgEl.find('.gauge-value-text').remove(); + } + if (labelText) { + if (!$gaugeSvgEl.find('.gauge-label-text').length) { + var textEl$1 = document.createElementNS('http://www.w3.org/2000/svg', 'text'); + textEl$1.classList.add('gauge-label-text'); + $gaugeSvgEl.append(textEl$1); + } + var labelAttrs = { + x: '50%', + y: semiCircle ? '100%' : '50%', + 'font-weight': labelFontWeight, + 'font-size': labelFontSize, + fill: labelTextColor, + dy: semiCircle ? -5 : (valueText ? ((valueFontSize / 2) + 10) : 0), + 'text-anchor': 'middle', + 'dominant-baseline': !semiCircle && 'middle', + }; + Object.keys(labelAttrs).forEach(function (attr) { + $gaugeSvgEl.find('.gauge-label-text').attr(attr, labelAttrs[attr]); + }); + $gaugeSvgEl.find('.gauge-label-text').text(labelText); + } else { + $gaugeSvgEl.find('.gauge-label-text').remove(); + } + return gauge; + }; + + Gauge.prototype.init = function init () { + var gauge = this; + var $gaugeSvgEl = $(gauge.render()).eq(0); + $gaugeSvgEl.f7Gauge = gauge; + Utils.extend(gauge, { + $gaugeSvgEl: $gaugeSvgEl, + gaugeSvgEl: $gaugeSvgEl && $gaugeSvgEl[0], + }); + gauge.$el.append($gaugeSvgEl); + return gauge; + }; + + Gauge.prototype.destroy = function destroy () { + var gauge = this; + if (!gauge.$el || gauge.destroyed) { return; } + gauge.$el.trigger('gauge:beforedestroy'); + gauge.emit('local::beforeDestroy gaugeBeforeDestroy', gauge); + gauge.$gaugeSvgEl.remove(); + delete gauge.$el[0].f7Gauge; + Utils.deleteProps(gauge); + gauge.destroyed = true; + }; + + return Gauge; + }(Framework7Class)); + + var Gauge$1 = { + name: 'gauge', + static: { + Gauge: Gauge, + }, + create: function create() { + var app = this; + app.gauge = ConstructorMethods({ + defaultSelector: '.gauge', + constructor: Gauge, + app: app, + domProp: 'f7Gauge', + }); + app.gauge.update = function update(el, newParams) { + var $el = $(el); + if ($el.length === 0) { return undefined; } + var gauge = app.gauge.get(el); + if (!gauge) { return undefined; } + gauge.update(newParams); + return gauge; + }; + }, + params: { + gauge: { + el: null, + type: 'circle', + value: 0, + size: 200, + bgColor: 'transparent', + borderBgColor: '#eeeeee', + borderColor: '#000000', + borderWidth: 10, + valueText: null, + valueTextColor: '#000000', + valueFontSize: 31, + valueFontWeight: 500, + labelText: null, + labelTextColor: '#888888', + labelFontSize: 14, + labelFontWeight: 400, + }, + }, + on: { + tabMounted: function tabMounted(tabEl) { + var app = this; + $(tabEl).find('.gauge-init').each(function (index, el) { + app.gauge.create(Utils.extend({ el: el }, $(el).dataset() || {})); + }); + }, + tabBeforeRemove: function tabBeforeRemove(tabEl) { + $(tabEl).find('.gauge-init').each(function (index, el) { + if (el.f7Gauge) { el.f7Gauge.destroy(); } + }); + }, + pageInit: function pageInit(page) { + var app = this; + page.$el.find('.gauge-init').each(function (index, el) { + app.gauge.create(Utils.extend({ el: el }, $(el).dataset() || {})); + }); + }, + pageBeforeRemove: function pageBeforeRemove(page) { + page.$el.find('.gauge-init').each(function (index, el) { + if (el.f7Gauge) { el.f7Gauge.destroy(); } + }); + }, + }, + vnode: { + 'gauge-init': { + insert: function insert(vnode) { + var app = this; + var el = vnode.elm; + app.gauge.create(Utils.extend({ el: el }, $(el).dataset() || {})); + }, + destroy: function destroy(vnode) { + var el = vnode.elm; + if (el.f7Gauge) { el.f7Gauge.destroy(); } + }, + }, + }, + }; + + var Skeleton = { + name: 'skeleton', + }; + + var Menu = { + open: function open(el) { + if ( el === void 0 ) el = '.menu-item-dropdown'; + + var app = this; + if (!el) { return; } + var $el = $(el).closest('.menu-item-dropdown'); + if (!$el.length) { return; } + var $menuEl = $el.closest('.menu').eq(0); + if ($menuEl.length) { + var zIndex = $menuEl.css('z-index'); + var originalZIndex = $menuEl[0].style.zIndex; + $menuEl.css('z-index', parseInt(zIndex || 0, 0) + 1); + $menuEl[0].f7MenuZIndex = originalZIndex; + } + $el.eq(0).addClass('menu-item-dropdown-opened').trigger('menu:opened'); + app.emit('menuOpened', $el.eq(0)[0]); + }, + close: function close(el) { + if ( el === void 0 ) el = '.menu-item-dropdown-opened'; + + var app = this; + if (!el) { return; } + var $el = $(el).closest('.menu-item-dropdown-opened'); + if (!$el.length) { return; } + var $menuEl = $el.closest('.menu').eq(0); + if ($menuEl.length) { + var zIndex = $menuEl[0].f7MenuZIndex; + $menuEl.css('z-index', zIndex); + delete $menuEl[0].f7MenuZIndex; + } + $el.eq(0).removeClass('menu-item-dropdown-opened').trigger('menu:closed'); + app.emit('menuClosed', $el.eq(0)[0]); + }, + }; + + var Menu$1 = { + name: 'menu', + create: function create() { + var app = this; + app.menu = { + open: Menu.open.bind(app), + close: Menu.close.bind(app), + }; + }, + on: { + click: function click(e) { + var app = this; + var openedMenus = $('.menu-item-dropdown-opened'); + if (!openedMenus.length) { return; } + openedMenus.each(function (index, el) { + if (!$(e.target).closest('.menu-item-dropdown-opened').length) { + app.menu.close(el); + } + }); + }, + }, + clicks: { + '.menu-item-dropdown': function onClick($clickedEl, dataset, e) { + var app = this; + if ($clickedEl.hasClass('menu-item-dropdown-opened')) { + if ($(e.target).closest('.menu-dropdown').length) { return; } + app.menu.close($clickedEl); + } else { + app.menu.open($clickedEl); + } + }, + '.menu-close': function onClick() { + var app = this; + app.menu.close(); + }, + }, + }; + + var moduleAlphaSlider = { + render: function render(self) { + var ref = self.params; + var sliderLabel = ref.sliderLabel; + var sliderValue = ref.sliderValue; + var sliderValueEditable = ref.sliderValueEditable; + var alphaLabelText = ref.alphaLabelText; + return ("\n
                \n
                \n " + (sliderLabel ? ("\n
                " + alphaLabelText + "
                \n ") : '') + "\n
                \n " + (sliderValue ? ("\n
                \n " + (sliderValueEditable ? "\n \n " : "\n \n ") + "\n
                \n ") : '') + "\n
                \n
                \n "); + }, + init: function init(self) { + self.alphaRangeSlider = self.app.range.create({ + el: self.$el.find('.color-picker-slider-alpha'), + min: 0, + max: 1, + step: 0.01, + value: 1, + on: { + change: function change(range, value) { + var alpha = Math.floor(value * 100) / 100; + self.setValue({ alpha: alpha }); + }, + }, + }); + function handleInputChange(e) { + var alpha = self.value.alpha; + var value = parseFloat(e.target.value); + if (Number.isNaN(value)) { + e.target.value = alpha; + return; + } + value = Math.max(0, Math.min(1, value)); + self.setValue({ alpha: value }); + } + + self.$el.on('change', '.color-picker-module-alpha-slider input', handleInputChange); + + self.destroyAlphaSliderEvents = function destroyAlphaSliderEvents() { + self.$el.off('change', '.color-picker-module-alpha-slider input', handleInputChange); + }; + }, + update: function update(self) { + var value = self.value; + var ref = self.params; + var sliderValue = ref.sliderValue; + var sliderValueEditable = ref.sliderValueEditable; + + var alpha = value.alpha; + self.alphaRangeSlider.value = alpha; + self.alphaRangeSlider.layout(); + if (sliderValue && sliderValueEditable) { + self.$el.find('input.color-picker-value-alpha').val(alpha); + } else { + self.$el.find('span.color-picker-value-alpha').text(alpha); + } + }, + destroy: function destroy(self) { + if (self.alphaRangeSlider && self.alphaRangeSlider.destroy) { + self.alphaRangeSlider.destroy(); + } + delete self.alphaRangeSlider; + + if (self.destroyAlphaSliderEvents) { self.destroyAlphaSliderEvents(); } + delete self.destroyAlphaSliderEvents; + }, + }; + + var moduleCurrentColor = { + render: function render() { + return "\n
                \n
                \n
                \n "; + }, + update: function update(self) { + self.$el.find('.color-picker-module-current-color .color-picker-current-color').css( + 'background-color', + self.value.hex + ); + }, + }; + + var moduleHex = { + render: function render(self) { + var ref = self.params; + var hexLabel = ref.hexLabel; + var hexLabelText = ref.hexLabelText; + var hexValueEditable = ref.hexValueEditable; + return ("\n
                \n
                \n " + (hexLabel ? ("\n
                " + hexLabelText + "
                \n ") : '') + "\n
                \n " + (hexValueEditable ? "\n \n " : "\n \n ") + "\n
                \n
                \n
                \n "); + }, + init: function init(self) { + function handleInputChange(e) { + var hex = self.value.hex; + var value = e.target.value.replace(/#/g, ''); + if (Number.isNaN(value) || !value || (value.length !== 3 && value.length !== 6)) { + e.target.value = hex; + return; + } + var min = 0; + var current = parseInt(value, 16); + var max = parseInt('ffffff', 16); // eslint-disable-line + if (current > max) { + value = 'fff'; + } + if (current < min) { + value = '000'; + } + self.setValue({ hex: value }); + } + + self.$el.on('change', '.color-picker-module-hex input', handleInputChange); + + self.destroyHexEvents = function destroyHexEvents() { + self.$el.off('change', '.color-picker-module-hex input', handleInputChange); + }; + }, + update: function update(self) { + var value = self.value; + + var ref = self.params; + var hexValueEditable = ref.hexValueEditable; + + var hex = value.hex; + if (hexValueEditable) { + self.$el.find('input.color-picker-value-hex').val(hex); + } else { + self.$el.find('span.color-picker-value-hex').text(hex); + } + }, + destroy: function destroy(self) { + if (self.destroyHexEvents) { self.destroyHexEvents(); } + delete self.destroyHexEvents; + }, + }; + + var moduleHsbSliders = { + render: function render(self) { + var ref = self.params; + var sliderLabel = ref.sliderLabel; + var sliderValue = ref.sliderValue; + var sliderValueEditable = ref.sliderValueEditable; + var hueLabelText = ref.hueLabelText; + var saturationLabelText = ref.saturationLabelText; + var brightnessLabelText = ref.brightnessLabelText; + return ("\n
                \n
                \n " + (sliderLabel ? ("\n
                " + hueLabelText + "
                \n ") : '') + "\n
                \n " + (sliderValue ? ("\n
                \n " + (sliderValueEditable ? "\n \n " : "\n \n ") + "\n
                \n ") : '') + "\n
                \n
                \n " + (sliderLabel ? ("\n
                " + saturationLabelText + "
                \n ") : '') + "\n
                \n " + (sliderValue ? ("\n
                \n " + (sliderValueEditable ? "\n \n " : "\n \n ") + "\n
                \n ") : '') + "\n
                \n
                \n " + (sliderLabel ? ("\n
                " + brightnessLabelText + "
                \n ") : '') + "\n
                \n " + (sliderValue ? ("\n
                \n " + (sliderValueEditable ? "\n \n " : "\n \n ") + "\n
                \n ") : '') + "\n
                \n
                \n "); + }, + init: function init(self) { + self.hueRangeSlider = self.app.range.create({ + el: self.$el.find('.color-picker-slider-hue'), + min: 0, + max: 360, + step: 0.1, + value: 0, + on: { + change: function change(range, value) { + self.setValue({ hue: value }); + }, + }, + }); + self.saturationRangeSlider = self.app.range.create({ + el: self.$el.find('.color-picker-slider-saturation'), + min: 0, + max: 1, + step: 0.001, + value: 0, + on: { + change: function change(range, value) { + var s = Math.floor(value * 1000) / 1000; + self.setValue({ hsb: [self.value.hsb[0], s, self.value.hsb[2]] }); + }, + }, + }); + self.brightnessRangeSlider = self.app.range.create({ + el: self.$el.find('.color-picker-slider-brightness'), + min: 0, + max: 1, + step: 0.001, + value: 0, + on: { + change: function change(range, value) { + var b = Math.floor(value * 1000) / 1000; + self.setValue({ hsb: [self.value.hsb[0], self.value.hsb[1], b] }); + }, + }, + }); + + function handleInputChange(e) { + var hsb = [].concat( self.value.hsb ); + var index = parseInt($(e.target).attr('data-color-index'), 10); + var value = parseFloat(e.target.value); + if (Number.isNaN(value)) { + e.target.value = hsb[index]; + return; + } + if (index === 0) { + value = Math.max(0, Math.min(360, value)); + } else { + value = Math.max(0, Math.min(100, value)) / 100; + } + + hsb[index] = value; + self.setValue({ hsb: hsb }); + } + + self.$el.on('change', '.color-picker-module-hsb-sliders input', handleInputChange); + + self.destroyHsbSlidersEvents = function destroyHsbSlidersEvents() { + self.$el.off('change', '.color-picker-module-hsb-sliders input', handleInputChange); + }; + }, + update: function update(self) { + var app = self.app; + var value = self.value; + var ref = self.params; + var sliderValue = ref.sliderValue; + var sliderValueEditable = ref.sliderValueEditable; + + var hsb = value.hsb; + var hue = value.hue; + + self.hueRangeSlider.value = hue; + self.saturationRangeSlider.value = hsb[1]; + self.brightnessRangeSlider.value = hsb[2]; + + self.hueRangeSlider.layout(); + self.saturationRangeSlider.layout(); + self.brightnessRangeSlider.layout(); + + var hslCurrent = Utils.colorHsbToHsl(hsb[0], hsb[1], 1); + var hslLeft = Utils.colorHsbToHsl(hsb[0], 0, 1); + var hslRight = Utils.colorHsbToHsl(hsb[0], 1, 1); + var brightness = hsb[2]; + + self.hueRangeSlider.$el[0].style.setProperty( + '--f7-range-knob-color', + ("hsl(" + hue + ", 100%, 50%)") + ); + self.saturationRangeSlider.$el[0].style.setProperty( + '--f7-range-knob-color', + ("hsl(" + (hslCurrent[0]) + ", " + (hslCurrent[1] * 100) + "%, " + (hslCurrent[2] * 100) + "%)") + ); + self.brightnessRangeSlider.$el[0].style.setProperty( + '--f7-range-knob-color', + ("rgb(" + (brightness * 255) + ", " + (brightness * 255) + ", " + (brightness * 255) + ")") + ); + self.saturationRangeSlider.$el.find('.range-bar').css( + 'background-image', + ("linear-gradient(" + (app.rtl ? 'to left' : 'to right') + ", hsl(" + (hslLeft[0]) + ", " + (hslLeft[1] * 100) + "%, " + (hslLeft[2] * 100) + "%), hsl(" + (hslRight[0]) + ", " + (hslRight[1] * 100) + "%, " + (hslRight[2] * 100) + "%))") + ); + + if (sliderValue && sliderValueEditable) { + self.$el.find('input.color-picker-value-hue').val(("" + hue)); + self.$el.find('input.color-picker-value-saturation').val(("" + (hsb[1] * 1000 / 10))); + self.$el.find('input.color-picker-value-brightness').val(("" + (hsb[2] * 1000 / 10))); + } else if (sliderValue) { + self.$el.find('span.color-picker-value-hue').text(("" + hue)); + self.$el.find('span.color-picker-value-saturation').text(("" + (hsb[1] * 1000 / 10))); + self.$el.find('span.color-picker-value-brightness').text(("" + (hsb[2] * 1000 / 10))); + } + }, + destroy: function destroy(self) { + if (self.hueRangeSlider && self.hueRangeSlider.destroy) { + self.hueRangeSlider.destroy(); + } + if (self.saturationRangeSlider && self.saturationRangeSlider.destroy) { + self.saturationRangeSlider.destroy(); + } + if (self.brightnessRangeSlider && self.brightnessRangeSlider.destroy) { + self.brightnessRangeSlider.destroy(); + } + + delete self.hueRangeSlider; + delete self.saturationRangeSlider; + delete self.brightnessRangeSlider; + + if (self.destroyHsbSlidersEvents) { self.destroyHsbSlidersEvents(); } + delete self.destroyHsbSlidersEvents; + }, + }; + + var moduleHueSlider = { + render: function render(self) { + var ref = self.params; + var sliderLabel = ref.sliderLabel; + var sliderValue = ref.sliderValue; + var sliderValueEditable = ref.sliderValueEditable; + var hueLabelText = ref.hueLabelText; + return ("\n
                \n
                \n " + (sliderLabel ? ("\n
                " + hueLabelText + "
                \n ") : '') + "\n
                \n " + (sliderValue ? ("\n
                \n " + (sliderValueEditable ? "\n \n " : "\n \n ") + "\n
                \n ") : '') + "\n
                \n
                \n "); + }, + init: function init(self) { + self.hueRangeSlider = self.app.range.create({ + el: self.$el.find('.color-picker-slider-hue'), + min: 0, + max: 360, + step: 0.1, + value: 0, + on: { + change: function change(range, value) { + self.setValue({ hue: value }); + }, + }, + }); + }, + update: function update(self) { + var value = self.value; + var ref = self.params; + var sliderValue = ref.sliderValue; + var sliderValueEditable = ref.sliderValueEditable; + + var hue = value.hue; + + self.hueRangeSlider.value = hue; + self.hueRangeSlider.layout(); + self.hueRangeSlider.$el[0].style.setProperty( + '--f7-range-knob-color', + ("hsl(" + hue + ", 100%, 50%)") + ); + if (sliderValue && sliderValueEditable) { + self.$el.find('input.color-picker-value-hue').val(("" + hue)); + } else if (sliderValue) { + self.$el.find('span.color-picker-value-hue').text(("" + hue)); + } + }, + destroy: function destroy(self) { + if (self.hueRangeSlider && self.hueRangeSlider.destroy) { + self.hueRangeSlider.destroy(); + } + delete self.hueRangeSlider; + }, + }; + + var moduleBrightnessSlider = { + render: function render(self) { + var ref = self.params; + var sliderLabel = ref.sliderLabel; + var sliderValue = ref.sliderValue; + var sliderValueEditable = ref.sliderValueEditable; + var brightnessLabelText = ref.brightnessLabelText; + return ("\n
                \n
                \n " + (sliderLabel ? ("\n
                " + brightnessLabelText + "
                \n ") : '') + "\n
                \n " + (sliderValue ? ("\n
                \n " + (sliderValueEditable ? "\n \n " : "\n \n ") + "\n
                \n ") : '') + "\n
                \n
                \n "); + }, + init: function init(self) { + self.brightnessRangeSlider = self.app.range.create({ + el: self.$el.find('.color-picker-slider-brightness'), + min: 0, + max: 1, + step: 0.001, + value: 0, + on: { + change: function change(range, value) { + var b = Math.floor(value * 1000) / 1000; + self.setValue({ hsb: [self.value.hsb[0], self.value.hsb[1], b] }); + }, + }, + }); + }, + update: function update(self) { + var value = self.value; + var app = self.app; + var ref = self.params; + var sliderValue = ref.sliderValue; + var sliderValueEditable = ref.sliderValueEditable; + + var hsb = value.hsb; + + self.brightnessRangeSlider.value = hsb[2]; + self.brightnessRangeSlider.layout(); + + var hslCurrent = Utils.colorHsbToHsl(hsb[0], hsb[1], hsb[2]); + var hslLeft = Utils.colorHsbToHsl(hsb[0], hsb[1], 0); + var hslRight = Utils.colorHsbToHsl(hsb[0], hsb[1], 1); + + self.brightnessRangeSlider.$el[0].style.setProperty( + '--f7-range-knob-color', + ("hsl(" + (hslCurrent[0]) + ", " + (hslCurrent[1] * 100) + "%, " + (hslCurrent[2] * 100) + "%)") + ); + self.brightnessRangeSlider.$el.find('.range-bar').css( + 'background-image', + ("linear-gradient(" + (app.rtl ? 'to left' : 'to right') + ", hsl(" + (hslLeft[0]) + ", " + (hslLeft[1] * 100) + "%, " + (hslLeft[2] * 100) + "%), hsl(" + (hslRight[0]) + ", " + (hslRight[1] * 100) + "%, " + (hslRight[2] * 100) + "%))") + ); + if (sliderValue && sliderValueEditable) { + self.$el.find('input.color-picker-value-brightness').val(("" + (hsb[2] * 1000 / 10))); + } else if (sliderValue) { + self.$el.find('span.color-picker-value-brightness').text(("" + (hsb[2] * 1000 / 10))); + } + }, + destroy: function destroy(self) { + if (self.brightnessRangeSlider && self.brightnessRangeSlider.destroy) { + self.brightnessRangeSlider.destroy(); + } + delete self.brightnessRangeSlider; + }, + }; + + /* eslint indent: ["off"] */ + + var modulePalette = { + render: function render(self) { + return ("\n
                \n
                \n " + (self.params.palette.map(function (p) { + if (Array.isArray(p)) { + var row = '
                '; + row += p.map(function (c) { return ("\n
                \n "); }).join(''); + row += '
                '; + return row; + } + return ("\n
                \n "); + }).join('')) + "\n
                \n
                \n "); + }, + init: function init(self) { + function handlePaletteClick(e) { + var hex = $(e.target).attr('data-palette-color'); + self.setValue({ + hex: hex, + }); + } + + self.$el.on('click', '.color-picker-module-palette .color-picker-palette-value', handlePaletteClick); + + self.destroyPaletteEvents = function destroyPaletteEvents() { + self.$el.off('click', '.color-picker-module-hex input', handlePaletteClick); + }; + }, + destroy: function destroy(self) { + if (self.destroyPaletteEvents) { + self.destroyPaletteEvents(); + } + delete self.destroyPaletteEvents; + }, + }; + + var moduleInitialCurrentColors = { + render: function render() { + return "\n
                \n
                \n
                \n
                \n
                \n
                \n "; + }, + init: function init(self) { + function handleInitialColorClick() { + if (self.initialValue) { + var ref = self.initialValue; + var hex = ref.hex; + var alpha = ref.alpha; + self.setValue({ + hex: hex, + alpha: alpha, + }); + } + } + self.$el.on('click', '.color-picker-initial-color', handleInitialColorClick); + self.destroyInitialCurrentEvents = function destroyInitialCurrentEvents() { + self.$el.off('click', '.color-picker-initial-color', handleInitialColorClick); + }; + }, + update: function update(self) { + self.$el.find('.color-picker-module-initial-current-colors .color-picker-initial-color').css( + 'background-color', + self.initialValue.hex + ); + self.$el.find('.color-picker-module-initial-current-colors .color-picker-current-color').css( + 'background-color', + self.value.hex + ); + }, + destroy: function destroy(self) { + if (self.destroyInitialCurrentEvents) { + self.destroyInitialCurrentEvents(); + } + delete self.destroyInitialCurrentEvents; + }, + }; + + var moduleRgbBars = { + render: function render(self) { + var ref = self.params; + var barLabel = ref.barLabel; + var barValue = ref.barValue; + var barValueEditable = ref.barValueEditable; + var redLabelText = ref.redLabelText; + var greenLabelText = ref.greenLabelText; + var blueLabelText = ref.blueLabelText; + return ("\n
                \n
                \n " + (barLabel ? ("\n
                " + redLabelText + "
                \n ") : '') + "\n
                \n " + (barValue ? ("\n
                \n " + (barValueEditable ? "\n \n " : "\n \n ") + "\n
                \n ") : '') + "\n
                \n
                \n " + (barLabel ? ("\n
                " + greenLabelText + "
                \n ") : '') + "\n
                \n " + (barValue ? ("\n
                \n " + (barValueEditable ? "\n \n " : "\n \n ") + "\n
                \n ") : '') + "\n
                \n
                \n " + (barLabel ? ("\n
                " + blueLabelText + "
                \n ") : '') + "\n
                \n " + (barValue ? ("\n
                \n " + (barValueEditable ? "\n \n " : "\n \n ") + "\n
                \n ") : '') + "\n
                \n
                \n "); + }, + init: function init(self) { + self.redBar = self.app.range.create({ + el: self.$el.find('.color-picker-bar-red'), + min: 0, + max: 255, + step: 1, + value: 0, + vertical: true, + on: { + change: function change(range, value) { + self.setValue({ rgb: [value, self.value.rgb[1], self.value.rgb[2]] }); + }, + }, + }); + self.greenBar = self.app.range.create({ + el: self.$el.find('.color-picker-bar-green'), + min: 0, + max: 255, + step: 1, + value: 0, + vertical: true, + on: { + change: function change(range, value) { + self.setValue({ rgb: [self.value.rgb[0], value, self.value.rgb[2]] }); + }, + }, + }); + self.blueBar = self.app.range.create({ + el: self.$el.find('.color-picker-bar-blue'), + min: 0, + max: 255, + step: 1, + value: 0, + vertical: true, + on: { + change: function change(range, value) { + self.setValue({ rgb: [self.value.rgb[0], self.value.rgb[1], value] }); + }, + }, + }); + + function handleInputChange(e) { + var rgb = [].concat( self.value.rgb ); + var index = parseInt($(e.target).attr('data-color-index'), 10); + var value = parseInt(e.target.value, 10); + if (Number.isNaN(value)) { + e.target.value = rgb[index]; + return; + } + value = Math.max(0, Math.min(255, value)); + rgb[index] = value; + self.setValue({ rgb: rgb }); + } + + self.$el.on('change', '.color-picker-module-rgb-bars input', handleInputChange); + + self.destroyRgbBarsEvents = function destroyRgbBarsEvents() { + self.$el.off('change', '.color-picker-module-rgb-bars input', handleInputChange); + }; + }, + update: function update(self) { + var value = self.value; + var redBar = self.redBar; + var greenBar = self.greenBar; + var blueBar = self.blueBar; + + var ref = self.params; + var barValue = ref.barValue; + var barValueEditable = ref.barValueEditable; + + var rgb = value.rgb; + + redBar.value = rgb[0]; + greenBar.value = rgb[1]; + blueBar.value = rgb[2]; + + redBar.layout(); + greenBar.layout(); + blueBar.layout(); + + redBar.$el.find('.range-bar').css('background-image', ("linear-gradient(to top, rgb(0, " + (rgb[1]) + ", " + (rgb[2]) + "), rgb(255, " + (rgb[1]) + ", " + (rgb[2]) + "))")); + greenBar.$el.find('.range-bar').css('background-image', ("linear-gradient(to top, rgb(" + (rgb[0]) + ", 0, " + (rgb[2]) + "), rgb(" + (rgb[0]) + ", 255, " + (rgb[2]) + "))")); + blueBar.$el.find('.range-bar').css('background-image', ("linear-gradient(to top, rgb(" + (rgb[0]) + ", " + (rgb[1]) + ", 0), rgb(" + (rgb[0]) + ", " + (rgb[1]) + ", 255))")); + + if (barValue && barValueEditable) { + self.$el.find('input.color-picker-value-bar-red').val(rgb[0]); + self.$el.find('input.color-picker-value-bar-green').val(rgb[1]); + self.$el.find('input.color-picker-value-bar-blue').val(rgb[2]); + } else if (barValue) { + self.$el.find('span.color-picker-value-bar-red').text(rgb[0]); + self.$el.find('span.color-picker-value-bar-green').text(rgb[1]); + self.$el.find('span.color-picker-value-bar-blue').text(rgb[2]); + } + }, + destroy: function destroy(self) { + if (self.redBar && self.redBar.destroy) { + self.redBar.destroy(); + } + if (self.greenBar && self.greenBar.destroy) { + self.greenBar.destroy(); + } + if (self.blueBar && self.blueBar.destroy) { + self.blueBar.destroy(); + } + + delete self.redBar; + delete self.greenBar; + delete self.blueBar; + + if (self.destroyRgbBarsEvents) { self.destroyRgbBarsEvents(); } + delete self.destroyRgbBarsEvents; + }, + }; + + var moduleRgbSliders = { + render: function render(self) { + var ref = self.params; + var sliderLabel = ref.sliderLabel; + var sliderValue = ref.sliderValue; + var sliderValueEditable = ref.sliderValueEditable; + var redLabelText = ref.redLabelText; + var greenLabelText = ref.greenLabelText; + var blueLabelText = ref.blueLabelText; + return ("\n
                \n
                \n " + (sliderLabel ? ("\n
                " + redLabelText + "
                \n ") : '') + "\n
                \n " + (sliderValue ? ("\n
                \n " + (sliderValueEditable ? "\n \n " : "\n \n ") + "\n
                \n ") : '') + "\n
                \n
                \n " + (sliderLabel ? ("\n
                " + greenLabelText + "
                \n ") : '') + "\n
                \n " + (sliderValue ? ("\n
                \n " + (sliderValueEditable ? "\n \n " : "\n \n ") + "\n
                \n ") : '') + "\n
                \n
                \n " + (sliderLabel ? ("\n
                " + blueLabelText + "
                \n ") : '') + "\n
                \n " + (sliderValue ? ("\n
                \n " + (sliderValueEditable ? "\n \n " : "\n \n ") + "\n
                \n ") : '') + "\n
                \n
                \n "); + }, + init: function init(self) { + self.redRangeSlider = self.app.range.create({ + el: self.$el.find('.color-picker-slider-red'), + min: 0, + max: 255, + step: 1, + value: 0, + on: { + change: function change(range, value) { + self.setValue({ rgb: [value, self.value.rgb[1], self.value.rgb[2]] }); + }, + }, + }); + self.greenRangeSlider = self.app.range.create({ + el: self.$el.find('.color-picker-slider-green'), + min: 0, + max: 255, + step: 1, + value: 0, + on: { + change: function change(range, value) { + self.setValue({ rgb: [self.value.rgb[0], value, self.value.rgb[2]] }); + }, + }, + }); + self.blueRangeSlider = self.app.range.create({ + el: self.$el.find('.color-picker-slider-blue'), + min: 0, + max: 255, + step: 1, + value: 0, + on: { + change: function change(range, value) { + self.setValue({ rgb: [self.value.rgb[0], self.value.rgb[1], value] }); + }, + }, + }); + + function handleInputChange(e) { + var rgb = [].concat( self.value.rgb ); + var index = parseInt($(e.target).attr('data-color-index'), 10); + var value = parseInt(e.target.value, 10); + if (Number.isNaN(value)) { + e.target.value = rgb[index]; + return; + } + value = Math.max(0, Math.min(255, value)); + rgb[index] = value; + self.setValue({ rgb: rgb }); + } + + self.$el.on('change', '.color-picker-module-rgb-sliders input', handleInputChange); + + self.destroyRgbSlidersEvents = function destroyRgbSlidersEvents() { + self.$el.off('change', '.color-picker-module-rgb-sliders input', handleInputChange); + }; + }, + update: function update(self) { + var app = self.app; + var value = self.value; + var redRangeSlider = self.redRangeSlider; + var greenRangeSlider = self.greenRangeSlider; + var blueRangeSlider = self.blueRangeSlider; + + var ref = self.params; + var sliderValue = ref.sliderValue; + var sliderValueEditable = ref.sliderValueEditable; + + var rgb = value.rgb; + + redRangeSlider.value = rgb[0]; + greenRangeSlider.value = rgb[1]; + blueRangeSlider.value = rgb[2]; + + redRangeSlider.layout(); + greenRangeSlider.layout(); + blueRangeSlider.layout(); + + redRangeSlider.$el[0].style.setProperty('--f7-range-knob-color', ("rgb(" + (rgb[0]) + ", " + (rgb[1]) + ", " + (rgb[2]) + ")")); + greenRangeSlider.$el[0].style.setProperty('--f7-range-knob-color', ("rgb(" + (rgb[0]) + ", " + (rgb[1]) + ", " + (rgb[2]) + ")")); + blueRangeSlider.$el[0].style.setProperty('--f7-range-knob-color', ("rgb(" + (rgb[0]) + ", " + (rgb[1]) + ", " + (rgb[2]) + ")")); + + var direction = app.rtl ? 'to left' : 'to right'; + + redRangeSlider.$el.find('.range-bar').css('background-image', ("linear-gradient(" + direction + ", rgb(0, " + (rgb[1]) + ", " + (rgb[2]) + "), rgb(255, " + (rgb[1]) + ", " + (rgb[2]) + "))")); + greenRangeSlider.$el.find('.range-bar').css('background-image', ("linear-gradient(" + direction + ", rgb(" + (rgb[0]) + ", 0, " + (rgb[2]) + "), rgb(" + (rgb[0]) + ", 255, " + (rgb[2]) + "))")); + blueRangeSlider.$el.find('.range-bar').css('background-image', ("linear-gradient(" + direction + ", rgb(" + (rgb[0]) + ", " + (rgb[1]) + ", 0), rgb(" + (rgb[0]) + ", " + (rgb[1]) + ", 255))")); + + if (sliderValue && sliderValueEditable) { + self.$el.find('input.color-picker-value-red').val(rgb[0]); + self.$el.find('input.color-picker-value-green').val(rgb[1]); + self.$el.find('input.color-picker-value-blue').val(rgb[2]); + } else if (sliderValue) { + self.$el.find('span.color-picker-value-red').text(rgb[0]); + self.$el.find('span.color-picker-value-green').text(rgb[1]); + self.$el.find('span.color-picker-value-blue').text(rgb[2]); + } + }, + destroy: function destroy(self) { + if (self.redRangeSlider && self.redRangeSlider.destroy) { + self.redRangeSlider.destroy(); + } + if (self.greenRangeSlider && self.greenRangeSlider.destroy) { + self.greenRangeSlider.destroy(); + } + if (self.blueRangeSlider && self.blueRangeSlider.destroy) { + self.blueRangeSlider.destroy(); + } + + delete self.redRangeSlider; + delete self.greenRangeSlider; + delete self.blueRangeSlider; + + if (self.destroyRgbSlidersEvents) { self.destroyRgbSlidersEvents(); } + delete self.destroyRgbSlidersEvents; + }, + }; + + var moduleSbSpectrum = { + render: function render() { + return "\n
                \n
                \n
                \n
                \n
                \n "; + }, + init: function init(self) { + var app = self.app; + + var isTouched; + var isMoved; + var touchStartX; + var touchStartY; + var touchCurrentX; + var touchCurrentY; + + var specterRect; + var specterIsTouched; + var specterHandleIsTouched; + + var $el = self.$el; + + function setSBFromSpecterCoords(x, y) { + var s = (x - specterRect.left) / specterRect.width; + var b = (y - specterRect.top) / specterRect.height; + s = Math.max(0, Math.min(1, s)); + b = 1 - Math.max(0, Math.min(1, b)); + + self.setValue({ hsb: [self.value.hue, s, b] }); + } + + function handleTouchStart(e) { + if (isMoved || isTouched) { return; } + touchStartX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX; + touchCurrentX = touchStartX; + touchStartY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY; + touchCurrentY = touchStartY; + var $targetEl = $(e.target); + specterHandleIsTouched = $targetEl.closest('.color-picker-sb-spectrum-handle').length > 0; + if (!specterHandleIsTouched) { + specterIsTouched = $targetEl.closest('.color-picker-sb-spectrum').length > 0; + } + if (specterIsTouched) { + specterRect = $el.find('.color-picker-sb-spectrum')[0].getBoundingClientRect(); + setSBFromSpecterCoords(touchStartX, touchStartY); + } + if (specterHandleIsTouched || specterIsTouched) { + $el.find('.color-picker-sb-spectrum-handle').addClass('color-picker-sb-spectrum-handle-pressed'); + } + } + function handleTouchMove(e) { + if (!(specterIsTouched || specterHandleIsTouched)) { return; } + touchCurrentX = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX; + touchCurrentY = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY; + e.preventDefault(); + if (!isMoved) { + // First move + isMoved = true; + if (specterHandleIsTouched) { + specterRect = $el.find('.color-picker-sb-spectrum')[0].getBoundingClientRect(); + } + } + if (specterIsTouched || specterHandleIsTouched) { + setSBFromSpecterCoords(touchCurrentX, touchCurrentY); + } + } + function handleTouchEnd() { + isMoved = false; + if (specterIsTouched || specterHandleIsTouched) { + $el.find('.color-picker-sb-spectrum-handle').removeClass('color-picker-sb-spectrum-handle-pressed'); + } + specterIsTouched = false; + specterHandleIsTouched = false; + } + + function handleResize() { + self.modules['sb-spectrum'].update(self); + } + + var passiveListener = app.touchEvents.start === 'touchstart' && app.support.passiveListener ? { passive: true, capture: false } : false; + + self.$el.on(app.touchEvents.start, handleTouchStart, passiveListener); + app.on('touchmove:active', handleTouchMove); + app.on('touchend:passive', handleTouchEnd); + app.on('resize', handleResize); + + self.destroySpectrumEvents = function destroySpectrumEvents() { + self.$el.off(app.touchEvents.start, handleTouchStart, passiveListener); + app.off('touchmove:active', handleTouchMove); + app.off('touchend:passive', handleTouchEnd); + app.off('resize', handleResize); + }; + }, + update: function update(self) { + var value = self.value; + + var hsl = value.hsl; + var hsb = value.hsb; + + var specterWidth = self.$el.find('.color-picker-sb-spectrum')[0].offsetWidth; + var specterHeight = self.$el.find('.color-picker-sb-spectrum')[0].offsetHeight; + + self.$el.find('.color-picker-sb-spectrum') + .css('background-color', ("hsl(" + (hsl[0]) + ", 100%, 50%)")); + + self.$el.find('.color-picker-sb-spectrum-handle') + .css('background-color', ("hsl(" + (hsl[0]) + ", " + (hsl[1] * 100) + "%, " + (hsl[2] * 100) + "%)")) + .transform(("translate(" + (specterWidth * hsb[1]) + "px, " + (specterHeight * (1 - hsb[2])) + "px)")); + }, + destroy: function destroy(self) { + if (self.destroySpectrumEvents) { self.destroySpectrumEvents(); } + delete self.destroySpectrumEvents; + }, + }; + + var moduleHsSpectrum = { + render: function render() { + return "\n
                \n
                \n
                \n
                \n
                \n "; + }, + init: function init(self) { + var app = self.app; + + var isTouched; + var isMoved; + var touchStartX; + var touchStartY; + var touchCurrentX; + var touchCurrentY; + + var specterRect; + var specterIsTouched; + var specterHandleIsTouched; + + var $el = self.$el; + + function setHSFromSpecterCoords(x, y) { + var h = (x - specterRect.left) / specterRect.width * 360; + var s = (y - specterRect.top) / specterRect.height; + h = Math.max(0, Math.min(360, h)); + s = 1 - Math.max(0, Math.min(1, s)); + + self.setValue({ hsb: [h, s, self.value.hsb[2]] }); + } + + function handleTouchStart(e) { + if (isMoved || isTouched) { return; } + touchStartX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX; + touchCurrentX = touchStartX; + touchStartY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY; + touchCurrentY = touchStartY; + var $targetEl = $(e.target); + specterHandleIsTouched = $targetEl.closest('.color-picker-hs-spectrum-handle').length > 0; + if (!specterHandleIsTouched) { + specterIsTouched = $targetEl.closest('.color-picker-hs-spectrum').length > 0; + } + if (specterIsTouched) { + specterRect = $el.find('.color-picker-hs-spectrum')[0].getBoundingClientRect(); + setHSFromSpecterCoords(touchStartX, touchStartY); + } + if (specterHandleIsTouched || specterIsTouched) { + $el.find('.color-picker-hs-spectrum-handle').addClass('color-picker-hs-spectrum-handle-pressed'); + } + } + function handleTouchMove(e) { + if (!(specterIsTouched || specterHandleIsTouched)) { return; } + touchCurrentX = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX; + touchCurrentY = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY; + e.preventDefault(); + if (!isMoved) { + // First move + isMoved = true; + if (specterHandleIsTouched) { + specterRect = $el.find('.color-picker-hs-spectrum')[0].getBoundingClientRect(); + } + } + if (specterIsTouched || specterHandleIsTouched) { + setHSFromSpecterCoords(touchCurrentX, touchCurrentY); + } + } + function handleTouchEnd() { + isMoved = false; + if (specterIsTouched || specterHandleIsTouched) { + $el.find('.color-picker-hs-spectrum-handle').removeClass('color-picker-hs-spectrum-handle-pressed'); + } + specterIsTouched = false; + specterHandleIsTouched = false; + } + + function handleResize() { + self.modules['hs-spectrum'].update(self); + } + + var passiveListener = app.touchEvents.start === 'touchstart' && app.support.passiveListener ? { passive: true, capture: false } : false; + + self.$el.on(app.touchEvents.start, handleTouchStart, passiveListener); + app.on('touchmove:active', handleTouchMove); + app.on('touchend:passive', handleTouchEnd); + app.on('resize', handleResize); + + self.destroySpectrumEvents = function destroySpectrumEvents() { + self.$el.off(app.touchEvents.start, handleTouchStart, passiveListener); + app.off('touchmove:active', handleTouchMove); + app.off('touchend:passive', handleTouchEnd); + app.off('resize', handleResize); + }; + }, + update: function update(self) { + var value = self.value; + + var hsb = value.hsb; + + var specterWidth = self.$el.find('.color-picker-hs-spectrum')[0].offsetWidth; + var specterHeight = self.$el.find('.color-picker-hs-spectrum')[0].offsetHeight; + + var hslBright = Utils.colorHsbToHsl(hsb[0], hsb[1], 1); + + self.$el.find('.color-picker-hs-spectrum-handle') + .css('background-color', ("hsl(" + (hslBright[0]) + ", " + (hslBright[1] * 100) + "%, " + (hslBright[2] * 100) + "%)")) + .transform(("translate(" + (specterWidth * (hsb[0] / 360)) + "px, " + (specterHeight * (1 - hsb[1])) + "px)")); + }, + destroy: function destroy(self) { + if (self.destroySpectrumEvents) { self.destroySpectrumEvents(); } + delete self.destroySpectrumEvents; + }, + }; + + function svgWheelCircles() { + var total = 256; + var circles = ''; + for (var i = total; i > 0; i -= 1) { + var angle = i * Math.PI / (total / 2); + var hue = 360 / total * i; + circles += ""; + } + return circles; + } + var moduleWheel = { + render: function render() { + return ("\n
                \n
                \n " + (svgWheelCircles()) + "\n
                \n
                \n
                \n
                \n
                \n
                \n "); + }, + init: function init(self) { + var app = self.app; + + var isTouched; + var isMoved; + var touchStartX; + var touchStartY; + var touchCurrentX; + var touchCurrentY; + + var wheelRect; + var wheelIsTouched; + var wheelHandleIsTouched; + var specterRect; + var specterIsTouched; + var specterHandleIsTouched; + + var $el = self.$el; + + function setHueFromWheelCoords(x, y) { + var wheelCenterX = wheelRect.left + wheelRect.width / 2; + var wheelCenterY = wheelRect.top + wheelRect.height / 2; + var angleRad = Math.atan2(y - wheelCenterY, x - wheelCenterX); + var angleDeg = angleRad * 180 / Math.PI + 90; + if (angleDeg < 0) { angleDeg += 360; } + angleDeg = 360 - angleDeg; + self.setValue({ hue: angleDeg }); + } + function setSBFromSpecterCoords(x, y) { + var s = (x - specterRect.left) / specterRect.width; + var b = (y - specterRect.top) / specterRect.height; + s = Math.max(0, Math.min(1, s)); + b = 1 - Math.max(0, Math.min(1, b)); + + self.setValue({ hsb: [self.value.hue, s, b] }); + } + + function handleTouchStart(e) { + if (isMoved || isTouched) { return; } + touchStartX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX; + touchCurrentX = touchStartX; + touchStartY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY; + touchCurrentY = touchStartY; + var $targetEl = $(e.target); + wheelHandleIsTouched = $targetEl.closest('.color-picker-wheel-handle').length > 0; + wheelIsTouched = $targetEl.closest('circle').length > 0; + specterHandleIsTouched = $targetEl.closest('.color-picker-sb-spectrum-handle').length > 0; + if (!specterHandleIsTouched) { + specterIsTouched = $targetEl.closest('.color-picker-sb-spectrum').length > 0; + } + if (wheelIsTouched) { + wheelRect = $el.find('.color-picker-wheel')[0].getBoundingClientRect(); + setHueFromWheelCoords(touchStartX, touchStartY); + } + if (specterIsTouched) { + specterRect = $el.find('.color-picker-sb-spectrum')[0].getBoundingClientRect(); + setSBFromSpecterCoords(touchStartX, touchStartY); + } + if (specterHandleIsTouched || specterIsTouched) { + $el.find('.color-picker-sb-spectrum-handle').addClass('color-picker-sb-spectrum-handle-pressed'); + } + } + function handleTouchMove(e) { + if (!(wheelIsTouched || wheelHandleIsTouched) && !(specterIsTouched || specterHandleIsTouched)) { return; } + touchCurrentX = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX; + touchCurrentY = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY; + e.preventDefault(); + if (!isMoved) { + // First move + isMoved = true; + if (wheelHandleIsTouched) { + wheelRect = $el.find('.color-picker-wheel')[0].getBoundingClientRect(); + } + if (specterHandleIsTouched) { + specterRect = $el.find('.color-picker-sb-spectrum')[0].getBoundingClientRect(); + } + } + if (wheelIsTouched || wheelHandleIsTouched) { + setHueFromWheelCoords(touchCurrentX, touchCurrentY); + } + if (specterIsTouched || specterHandleIsTouched) { + setSBFromSpecterCoords(touchCurrentX, touchCurrentY); + } + } + function handleTouchEnd() { + isMoved = false; + if (specterIsTouched || specterHandleIsTouched) { + $el.find('.color-picker-sb-spectrum-handle').removeClass('color-picker-sb-spectrum-handle-pressed'); + } + wheelIsTouched = false; + wheelHandleIsTouched = false; + specterIsTouched = false; + specterHandleIsTouched = false; + } + + function handleResize() { + self.modules.wheel.update(self); + } + + var passiveListener = app.touchEvents.start === 'touchstart' && app.support.passiveListener ? { passive: true, capture: false } : false; + + self.$el.on(app.touchEvents.start, handleTouchStart, passiveListener); + app.on('touchmove:active', handleTouchMove); + app.on('touchend:passive', handleTouchEnd); + app.on('resize', handleResize); + + self.destroyWheelEvents = function destroyWheelEvents() { + self.$el.off(app.touchEvents.start, handleTouchStart, passiveListener); + app.off('touchmove:active', handleTouchMove); + app.off('touchend:passive', handleTouchEnd); + app.off('resize', handleResize); + }; + }, + update: function update(self) { + var value = self.value; + + var hsl = value.hsl; + var hsb = value.hsb; + + var specterWidth = self.$el.find('.color-picker-sb-spectrum')[0].offsetWidth; + var specterHeight = self.$el.find('.color-picker-sb-spectrum')[0].offsetHeight; + var wheelSize = self.$el.find('.color-picker-wheel')[0].offsetWidth; + var wheelHalfSize = wheelSize / 2; + var angleRad = value.hue * Math.PI / 180; + var handleSize = wheelSize / 6; + var handleHalfSize = handleSize / 2; + var tX = wheelHalfSize - Math.sin(angleRad) * (wheelHalfSize - handleHalfSize) - handleHalfSize; + var tY = wheelHalfSize - Math.cos(angleRad) * (wheelHalfSize - handleHalfSize) - handleHalfSize; + self.$el.find('.color-picker-wheel-handle') + .css('background-color', ("hsl(" + (hsl[0]) + ", 100%, 50%)")) + .transform(("translate(" + tX + "px, " + tY + "px)")); + + self.$el.find('.color-picker-sb-spectrum') + .css('background-color', ("hsl(" + (hsl[0]) + ", 100%, 50%)")); + + self.$el.find('.color-picker-sb-spectrum-handle') + .css('background-color', ("hsl(" + (hsl[0]) + ", " + (hsl[1] * 100) + "%, " + (hsl[2] * 100) + "%)")) + .transform(("translate(" + (specterWidth * hsb[1]) + "px, " + (specterHeight * (1 - hsb[2])) + "px)")); + }, + destroy: function destroy(self) { + if (self.destroyWheelEvents) { self.destroyWheelEvents(); } + delete self.destroyWheelEvents; + }, + }; + + var ColorPicker = /*@__PURE__*/(function (Framework7Class) { + function ColorPicker(app, params) { + if ( params === void 0 ) params = {}; + + Framework7Class.call(this, params, [app]); + var self = this; + + self.params = Utils.extend({}, app.params.colorPicker, params); + + var $containerEl; + if (self.params.containerEl) { + $containerEl = $(self.params.containerEl); + if ($containerEl.length === 0) { return self; } + } + + var $inputEl; + if (self.params.inputEl) { + $inputEl = $(self.params.inputEl); + } + + var $targetEl; + if (self.params.targetEl) { + $targetEl = $(self.params.targetEl); + } + + Utils.extend(self, { + app: app, + $containerEl: $containerEl, + containerEl: $containerEl && $containerEl[0], + inline: $containerEl && $containerEl.length > 0, + $inputEl: $inputEl, + inputEl: $inputEl && $inputEl[0], + $targetEl: $targetEl, + targetEl: $targetEl && $targetEl[0], + initialized: false, + opened: false, + url: self.params.url, + modules: { + 'alpha-slider': moduleAlphaSlider, + 'current-color': moduleCurrentColor, + 'hex': moduleHex, // eslint-disable-line + 'hsb-sliders': moduleHsbSliders, + 'hue-slider': moduleHueSlider, + 'brightness-slider': moduleBrightnessSlider, + 'palette': modulePalette, // eslint-disable-line + 'initial-current-colors': moduleInitialCurrentColors, + 'rgb-bars': moduleRgbBars, + 'rgb-sliders': moduleRgbSliders, + 'sb-spectrum': moduleSbSpectrum, + 'hs-spectrum': moduleHsSpectrum, + 'wheel': moduleWheel, // eslint-disable-line + }, + }); + + function onInputClick() { + self.open(); + } + function onInputFocus(e) { + e.preventDefault(); + } + function onTargetClick() { + self.open(); + } + function onHtmlClick(e) { + if (self.destroyed || !self.params) { return; } + if (self.params.openIn === 'page') { return; } + var $clickTargetEl = $(e.target); + if (!self.opened || self.closing) { return; } + if ($clickTargetEl.closest('[class*="backdrop"]').length) { return; } + if ($clickTargetEl.closest('.color-picker-popup, .color-picker-popover').length) { return; } + if ($inputEl && $inputEl.length > 0) { + if ($clickTargetEl[0] !== $inputEl[0] && $clickTargetEl.closest('.sheet-modal').length === 0) { + self.close(); + } + } else if ($(e.target).closest('.sheet-modal').length === 0) { + self.close(); + } + } + + // Events + Utils.extend(self, { + attachInputEvents: function attachInputEvents() { + self.$inputEl.on('click', onInputClick); + if (self.params.inputReadOnly) { + self.$inputEl.on('focus mousedown', onInputFocus); + if (self.$inputEl[0]) { + self.$inputEl[0].f7ValidateReadonly = true; + } + } + }, + detachInputEvents: function detachInputEvents() { + self.$inputEl.off('click', onInputClick); + if (self.params.inputReadOnly) { + self.$inputEl.off('focus mousedown', onInputFocus); + if (self.$inputEl[0]) { + delete self.$inputEl[0].f7ValidateReadonly; + } + } + }, + attachTargetEvents: function attachTargetEvents() { + self.$targetEl.on('click', onTargetClick); + }, + detachTargetEvents: function detachTargetEvents() { + self.$targetEl.off('click', onTargetClick); + }, + attachHtmlEvents: function attachHtmlEvents() { + app.on('click', onHtmlClick); + }, + detachHtmlEvents: function detachHtmlEvents() { + app.off('click', onHtmlClick); + }, + }); + + self.init(); + + return self; + } + + if ( Framework7Class ) ColorPicker.__proto__ = Framework7Class; + ColorPicker.prototype = Object.create( Framework7Class && Framework7Class.prototype ); + ColorPicker.prototype.constructor = ColorPicker; + + var prototypeAccessors = { view: { configurable: true } }; + + prototypeAccessors.view.get = function () { + var ref = this; + var $inputEl = ref.$inputEl; + var $targetEl = ref.$targetEl; + var app = ref.app; + var params = ref.params; + var view; + if (params.view) { + view = params.view; + } else { + if ($inputEl) { + view = $inputEl.parents('.view').length && $inputEl.parents('.view')[0].f7View; + } + if (!view && $targetEl) { + view = $targetEl.parents('.view').length && $targetEl.parents('.view')[0].f7View; + } + } + if (!view) { view = app.views.main; } + + return view; + }; + + ColorPicker.prototype.attachEvents = function attachEvents () { + var self = this; + self.centerModules = self.centerModules.bind(self); + if (self.params.centerModules) { + self.app.on('resize', self.centerModules); + } + }; + + ColorPicker.prototype.detachEvents = function detachEvents () { + var self = this; + if (self.params.centerModules) { + self.app.off('resize', self.centerModules); + } + }; + + ColorPicker.prototype.centerModules = function centerModules () { + var self = this; + if (!self.opened || !self.$el || self.inline) { return; } + var $pageContentEl = self.$el.find('.page-content'); + if (!$pageContentEl.length) { return; } + var ref = $pageContentEl[0]; + var scrollHeight = ref.scrollHeight; + var offsetHeight = ref.offsetHeight; + if (scrollHeight <= offsetHeight) { + $pageContentEl.addClass('justify-content-center'); + } else { + $pageContentEl.removeClass('justify-content-center'); + } + }; + + ColorPicker.prototype.initInput = function initInput () { + var self = this; + if (!self.$inputEl) { return; } + if (self.params.inputReadOnly) { self.$inputEl.prop('readOnly', true); } + }; + + ColorPicker.prototype.getModalType = function getModalType () { + var self = this; + var app = self.app; + var modal = self.modal; + var params = self.params; + var openIn = params.openIn; + var openInPhone = params.openInPhone; + if (modal && modal.type) { return modal.type; } + if (openIn !== 'auto') { return openIn; } + if (self.inline) { return null; } + if (app.device.ios) { + return app.device.ipad ? 'popover' : openInPhone; + } + if (app.width >= 768 || (app.device.desktop && app.theme === 'aurora')) { + return 'popover'; + } + + return openInPhone; + }; + + ColorPicker.prototype.formatValue = function formatValue () { + var self = this; + var value = self.value; + if (self.params.formatValue) { + return self.params.formatValue.call(self, value); + } + return value.hex; + }; + + // eslint-disable-next-line + ColorPicker.prototype.normalizeHsValues = function normalizeHsValues (arr) { + return [ + Math.floor(arr[0] * 10) / 10, + Math.floor(arr[1] * 1000) / 1000, + Math.floor(arr[2] * 1000) / 1000 ]; + }; + + ColorPicker.prototype.setValue = function setValue (value, updateModules) { + if ( value === void 0 ) value = {}; + if ( updateModules === void 0 ) updateModules = true; + + var self = this; + if (typeof value === 'undefined') { return; } + + var ref = (self.value || {}); + var hex = ref.hex; + var rgb = ref.rgb; + var hsl = ref.hsl; + var hsb = ref.hsb; + var alpha = ref.alpha; if ( alpha === void 0 ) alpha = 1; + var hue = ref.hue; + var rgba = ref.rgba; + var hsla = ref.hsla; + + var needChangeEvent = self.value || (!self.value && !self.params.value); + var valueChanged; + Object.keys(value).forEach(function (k) { + if (!self.value || typeof self.value[k] === 'undefined') { + valueChanged = true; + return; + } + var v = value[k]; + if (Array.isArray(v)) { + v.forEach(function (subV, subIndex) { + if (subV !== self.value[k][subIndex]) { + valueChanged = true; + } + }); + } else if (v !== self.value[k]) { + valueChanged = true; + } + }); + if (!valueChanged) { return; } + + if (value.rgb || value.rgba) { + var ref$1 = (value.rgb || value.rgba); + var r = ref$1[0]; + var g = ref$1[1]; + var b = ref$1[2]; + var a = ref$1[3]; if ( a === void 0 ) a = alpha; + rgb = [r, g, b]; + hex = Utils.colorRgbToHex.apply(Utils, rgb); + hsl = Utils.colorRgbToHsl.apply(Utils, rgb); + hsb = Utils.colorHslToHsb.apply(Utils, hsl); + hsl = self.normalizeHsValues(hsl); + hsb = self.normalizeHsValues(hsb); + hue = hsb[0]; + alpha = a; + rgba = [rgb[0], rgb[1], rgb[2], a]; + hsla = [hsl[0], hsl[1], hsl[2], a]; + } + + if (value.hsl || value.hsla) { + var ref$2 = (value.hsl || value.hsla); + var h = ref$2[0]; + var s = ref$2[1]; + var l = ref$2[2]; + var a$1 = ref$2[3]; if ( a$1 === void 0 ) a$1 = alpha; + hsl = [h, s, l]; + rgb = Utils.colorHslToRgb.apply(Utils, hsl); + hex = Utils.colorRgbToHex.apply(Utils, rgb); + hsb = Utils.colorHslToHsb.apply(Utils, hsl); + hsl = self.normalizeHsValues(hsl); + hsb = self.normalizeHsValues(hsb); + hue = hsb[0]; + alpha = a$1; + rgba = [rgb[0], rgb[1], rgb[2], a$1]; + hsla = [hsl[0], hsl[1], hsl[2], a$1]; + } + + if (value.hsb) { + var ref$3 = value.hsb; + var h$1 = ref$3[0]; + var s$1 = ref$3[1]; + var b$1 = ref$3[2]; + var a$2 = ref$3[3]; if ( a$2 === void 0 ) a$2 = alpha; + hsb = [h$1, s$1, b$1]; + hsl = Utils.colorHsbToHsl.apply(Utils, hsb); + rgb = Utils.colorHslToRgb.apply(Utils, hsl); + hex = Utils.colorRgbToHex.apply(Utils, rgb); + hsl = self.normalizeHsValues(hsl); + hsb = self.normalizeHsValues(hsb); + hue = hsb[0]; + alpha = a$2; + rgba = [rgb[0], rgb[1], rgb[2], a$2]; + hsla = [hsl[0], hsl[1], hsl[2], a$2]; + } + + if (value.hex) { + rgb = Utils.colorHexToRgb(value.hex); + hex = Utils.colorRgbToHex.apply(Utils, rgb); + hsl = Utils.colorRgbToHsl.apply(Utils, rgb); + hsb = Utils.colorHslToHsb.apply(Utils, hsl); + hsl = self.normalizeHsValues(hsl); + hsb = self.normalizeHsValues(hsb); + hue = hsb[0]; + rgba = [rgb[0], rgb[1], rgb[2], alpha]; + hsla = [hsl[0], hsl[1], hsl[2], alpha]; + } + + if (typeof value.alpha !== 'undefined') { + alpha = value.alpha; + if (typeof rgb !== 'undefined') { + rgba = [rgb[0], rgb[1], rgb[2], alpha]; + } + if (typeof hsl !== 'undefined') { + hsla = [hsl[0], hsl[1], hsl[2], alpha]; + } + } + + if (typeof value.hue !== 'undefined') { + var h$2 = hsl[0]; + var s$2 = hsl[1]; + var l$1 = hsl[2]; // eslint-disable-line + hsl = [value.hue, s$2, l$1]; + hsb = Utils.colorHslToHsb.apply(Utils, hsl); + rgb = Utils.colorHslToRgb.apply(Utils, hsl); + hex = Utils.colorRgbToHex.apply(Utils, rgb); + hsl = self.normalizeHsValues(hsl); + hsb = self.normalizeHsValues(hsb); + hue = hsb[0]; + rgba = [rgb[0], rgb[1], rgb[2], alpha]; + hsla = [hsl[0], hsl[1], hsl[2], alpha]; + } + self.value = { + hex: hex, + alpha: alpha, + hue: hue, + rgb: rgb, + hsl: hsl, + hsb: hsb, + rgba: rgba, + hsla: hsla, + }; + if (!self.initialValue) { self.initialValue = Utils.extend({}, self.value); } + self.updateValue(needChangeEvent); + if (self.opened && updateModules) { + self.updateModules(); + } + }; + + ColorPicker.prototype.getValue = function getValue () { + var self = this; + return self.value; + }; + + ColorPicker.prototype.updateValue = function updateValue (fireEvents) { + if ( fireEvents === void 0 ) fireEvents = true; + + var self = this; + var $inputEl = self.$inputEl; + var value = self.value; + var $targetEl = self.$targetEl; + if ($targetEl && self.params.targetElSetBackgroundColor) { + var rgba = value.rgba; + $targetEl.css('background-color', ("rgba(" + (rgba.join(', ')) + ")")); + } + if (fireEvents) { + self.emit('local::change colorPickerChange', self, value); + } + + if ($inputEl && $inputEl.length) { + var inputValue = self.formatValue(value); + if ($inputEl && $inputEl.length) { + $inputEl.val(inputValue); + if (fireEvents) { + $inputEl.trigger('change'); + } + } + } + }; + + ColorPicker.prototype.updateModules = function updateModules () { + var self = this; + var modules = self.modules; + self.params.modules.forEach(function (m) { + if (typeof m === 'string' && modules[m] && modules[m].update) { + modules[m].update(self); + } else if (m && m.update) { + m.update(self); + } + }); + }; + + ColorPicker.prototype.update = function update () { + var self = this; + self.updateModules(); + }; + + ColorPicker.prototype.renderPicker = function renderPicker () { + var self = this; + var params = self.params; + var modules = self.modules; + var html = ''; + + params.modules.forEach(function (m) { + if (typeof m === 'string' && modules[m] && modules[m].render) { + html += modules[m].render(self); + } else if (m && m.render) { + html += m.render(self); + } + }); + + return html; + }; + + ColorPicker.prototype.renderNavbar = function renderNavbar () { + var self = this; + if (self.params.renderNavbar) { + return self.params.renderNavbar.call(self, self); + } + var ref = self.params; + var openIn = ref.openIn; + var navbarTitleText = ref.navbarTitleText; + var navbarBackLinkText = ref.navbarBackLinkText; + var navbarCloseText = ref.navbarCloseText; + return ("\n
                \n
                \n
                \n " + (openIn === 'page' ? ("\n \n ") : '') + "\n
                " + navbarTitleText + "
                \n " + (openIn !== 'page' ? ("\n \n ") : '') + "\n
                \n
                \n ").trim(); + }; + + ColorPicker.prototype.renderToolbar = function renderToolbar () { + var self = this; + if (self.params.renderToolbar) { + return self.params.renderToolbar.call(self, self); + } + return ("\n \n ").trim(); + }; + + ColorPicker.prototype.renderInline = function renderInline () { + var self = this; + var ref = self.params; + var cssClass = ref.cssClass; + var groupedModules = ref.groupedModules; + var inlineHtml = ("\n
                \n " + (self.renderPicker()) + "\n
                \n ").trim(); + + return inlineHtml; + }; + + ColorPicker.prototype.renderSheet = function renderSheet () { + var self = this; + var ref = self.params; + var cssClass = ref.cssClass; + var toolbarSheet = ref.toolbarSheet; + var groupedModules = ref.groupedModules; + var sheetHtml = ("\n
                \n " + (toolbarSheet ? self.renderToolbar() : '') + "\n
                \n
                \n " + (self.renderPicker()) + "\n
                \n
                \n
                \n ").trim(); + + return sheetHtml; + }; + + ColorPicker.prototype.renderPopover = function renderPopover () { + var self = this; + var ref = self.params; + var cssClass = ref.cssClass; + var toolbarPopover = ref.toolbarPopover; + var groupedModules = ref.groupedModules; + var popoverHtml = ("\n
                \n
                \n
                \n " + (toolbarPopover ? self.renderToolbar() : '') + "\n
                \n " + (self.renderPicker()) + "\n
                \n
                \n
                \n
                \n ").trim(); + + return popoverHtml; + }; + + ColorPicker.prototype.renderPopup = function renderPopup () { + var self = this; + var ref = self.params; + var cssClass = ref.cssClass; + var navbarPopup = ref.navbarPopup; + var groupedModules = ref.groupedModules; + var popupHtml = ("\n
                \n
                \n " + (navbarPopup ? self.renderNavbar() : '') + "\n
                \n
                \n " + (self.renderPicker()) + "\n
                \n
                \n
                \n
                \n ").trim(); + + return popupHtml; + }; + + ColorPicker.prototype.renderPage = function renderPage () { + var self = this; + var ref = self.params; + var cssClass = ref.cssClass; + var groupedModules = ref.groupedModules; + var pageHtml = ("\n
                \n " + (self.renderNavbar()) + "\n
                \n
                \n " + (self.renderPicker()) + "\n
                \n
                \n
                \n ").trim(); + return pageHtml; + }; + + // eslint-disable-next-line + ColorPicker.prototype.render = function render () { + var self = this; + var params = self.params; + if (params.render) { return params.render.call(self); } + if (self.inline) { return self.renderInline(); } + if (params.openIn === 'page') { + return self.renderPage(); + } + + var modalType = self.getModalType(); + if (modalType === 'popover') { return self.renderPopover(); } + if (modalType === 'sheet') { return self.renderSheet(); } + if (modalType === 'popup') { return self.renderPopup(); } + }; + + ColorPicker.prototype.onOpen = function onOpen () { + var self = this; + var initialized = self.initialized; + var $el = self.$el; + var app = self.app; + var $inputEl = self.$inputEl; + var inline = self.inline; + var value = self.value; + var params = self.params; + var modules = self.modules; + self.closing = false; + self.opened = true; + self.opening = true; + + // Init main events + self.attachEvents(); + + params.modules.forEach(function (m) { + if (typeof m === 'string' && modules[m] && modules[m].init) { + modules[m].init(self); + } else if (m && m.init) { + m.init(self); + } + }); + + var updateValue = !value && params.value; + + // Set value + if (!initialized) { + if (value) { self.setValue(value); } + else if (params.value) { + self.setValue(params.value, false); + } else if (!params.value) { + self.setValue({ hex: '#ff0000' }, false); + } + } else if (value) { + self.initialValue = Utils.extend({}, value); + self.setValue(value, false); + } + + // Update input value + if (updateValue) { self.updateValue(); } + self.updateModules(); + + // Center modules + if (params.centerModules) { + self.centerModules(); + } + + // Extra focus + if (!inline && $inputEl && $inputEl.length && app.theme === 'md') { + $inputEl.trigger('focus'); + } + + self.initialized = true; + + // Trigger events + if ($el) { + $el.trigger('colorpicker:open'); + } + if ($inputEl) { + $inputEl.trigger('colorpicker:open'); + } + self.emit('local::open colorPickerOpen', self); + }; + + ColorPicker.prototype.onOpened = function onOpened () { + var self = this; + self.opening = false; + if (self.$el) { + self.$el.trigger('colorpicker:opened'); + } + if (self.$inputEl) { + self.$inputEl.trigger('colorpicker:opened'); + } + self.emit('local::opened colorPickerOpened', self); + }; + + ColorPicker.prototype.onClose = function onClose () { + var self = this; + var app = self.app; + var params = self.params; + var modules = self.modules; + self.opening = false; + self.closing = true; + + // Detach events + self.detachEvents(); + + if (self.$inputEl) { + if (app.theme === 'md') { + self.$inputEl.trigger('blur'); + } else { + var validate = self.$inputEl.attr('validate'); + var required = self.$inputEl.attr('required'); + if (validate && required) { + app.input.validate(self.$inputEl); + } + } + } + params.modules.forEach(function (m) { + if (typeof m === 'string' && modules[m] && modules[m].destroy) { + modules[m].destroy(self); + } else if (m && m.destroy) { + m.destroy(self); + } + }); + + if (self.$el) { + self.$el.trigger('colorpicker:close'); + } + if (self.$inputEl) { + self.$inputEl.trigger('colorpicker:close'); + } + self.emit('local::close colorPickerClose', self); + }; + + ColorPicker.prototype.onClosed = function onClosed () { + var self = this; + self.opened = false; + self.closing = false; + + if (!self.inline) { + Utils.nextTick(function () { + if (self.modal && self.modal.el && self.modal.destroy) { + if (!self.params.routableModals) { + self.modal.destroy(); + } + } + delete self.modal; + }); + } + if (self.$el) { + self.$el.trigger('colorpicker:closed'); + } + if (self.$inputEl) { + self.$inputEl.trigger('colorpicker:closed'); + } + self.emit('local::closed colorPickerClosed', self); + }; + + ColorPicker.prototype.open = function open () { + var obj; + + var self = this; + var app = self.app; + var opened = self.opened; + var inline = self.inline; + var $inputEl = self.$inputEl; + var $targetEl = self.$targetEl; + var params = self.params; + if (opened) { return; } + + if (inline) { + self.$el = $(self.render()); + self.$el[0].f7ColorPicker = self; + self.$containerEl.append(self.$el); + self.onOpen(); + self.onOpened(); + return; + } + + var colorPickerContent = self.render(); + + if (params.openIn === 'page') { + self.view.router.navigate({ + url: self.url, + route: { + content: colorPickerContent, + path: self.url, + on: { + pageBeforeIn: function pageBeforeIn(e, page) { + self.$el = page.$el.find('.color-picker'); + self.$el[0].f7ColorPicker = self; + self.onOpen(); + }, + pageAfterIn: function pageAfterIn() { + self.onOpened(); + }, + pageBeforeOut: function pageBeforeOut() { + self.onClose(); + }, + pageAfterOut: function pageAfterOut() { + self.onClosed(); + if (self.$el && self.$el[0]) { + self.$el[0].f7ColorPicker = null; + delete self.$el[0].f7ColorPicker; + } + }, + }, + }, + }); + } else { + var modalType = self.getModalType(); + var backdrop = params.backdrop; + if (backdrop === null || typeof backdrop === 'undefined') { + if (modalType === 'popover' && app.params.popover.backdrop !== false) { backdrop = true; } + if (modalType === 'popup') { backdrop = true; } + } + var modalParams = { + targetEl: ($targetEl || $inputEl), + scrollToEl: params.scrollToInput ? ($targetEl || $inputEl) : undefined, + content: colorPickerContent, + backdrop: backdrop, + closeByBackdropClick: params.closeByBackdropClick, + on: { + open: function open() { + var modal = this; + self.modal = modal; + self.$el = modalType === 'popover' || modalType === 'popup' ? modal.$el.find('.color-picker') : modal.$el; + self.$el[0].f7ColorPicker = self; + self.onOpen(); + }, + opened: function opened() { self.onOpened(); }, + close: function close() { self.onClose(); }, + closed: function closed() { + self.onClosed(); + if (self.$el && self.$el[0]) { + self.$el[0].f7ColorPicker = null; + delete self.$el[0].f7ColorPicker; + } + }, + }, + }; + if (modalType === 'popup') { + modalParams.push = params.popupPush; + modalParams.swipeToClose = params.popupSwipeToClose; + } + if (modalType === 'sheet') { + modalParams.push = params.sheetPush; + modalParams.swipeToClose = params.sheetSwipeToClose; + } + if (params.routableModals && self.view) { + self.view.router.navigate({ + url: self.url, + route: ( obj = { + path: self.url + }, obj[modalType] = modalParams, obj ), + }); + } else { + self.modal = app[modalType].create(modalParams); + self.modal.open(); + } + } + }; + + ColorPicker.prototype.close = function close () { + var self = this; + var opened = self.opened; + var inline = self.inline; + if (!opened) { return; } + if (inline) { + self.onClose(); + self.onClosed(); + return; + } + if ((self.params.routableModals && self.view) || self.params.openIn === 'page') { + self.view.router.back(); + } else { + self.modal.close(); + } + }; + + ColorPicker.prototype.init = function init () { + var self = this; + + self.initInput(); + + if (self.inline) { + self.open(); + self.emit('local::init colorPickerInit', self); + return; + } + + if (!self.initialized && self.params.value) { + self.setValue(self.params.value); + } + + // Attach input Events + if (self.$inputEl) { + self.attachInputEvents(); + } + if (self.$targetEl) { + self.attachTargetEvents(); + } + if (self.params.closeByOutsideClick) { + self.attachHtmlEvents(); + } + self.emit('local::init colorPickerInit', self); + }; + + ColorPicker.prototype.destroy = function destroy () { + var self = this; + if (self.destroyed) { return; } + var $el = self.$el; + self.emit('local::beforeDestroy colorPickerBeforeDestroy', self); + if ($el) { $el.trigger('colorpicker:beforedestroy'); } + + self.close(); + + // Detach Events + self.detachEvents(); + if (self.$inputEl) { + self.detachInputEvents(); + } + if (self.$targetEl) { + self.detachTargetEvents(); + } + if (self.params.closeByOutsideClick) { + self.detachHtmlEvents(); + } + + if ($el && $el.length) { delete self.$el[0].f7ColorPicker; } + Utils.deleteProps(self); + self.destroyed = true; + }; + + Object.defineProperties( ColorPicker.prototype, prototypeAccessors ); + + return ColorPicker; + }(Framework7Class)); + + var ColorPicker$1 = { + name: 'colorPicker', + static: { + ColorPicker: ColorPicker, + }, + create: function create() { + var app = this; + app.colorPicker = ConstructorMethods({ + defaultSelector: '.color-picker', + constructor: ColorPicker, + app: app, + domProp: 'f7ColorPicker', + }); + app.colorPicker.close = function close(el) { + if ( el === void 0 ) el = '.color-picker'; + + var $el = $(el); + if ($el.length === 0) { return; } + var colorPicker = $el[0].f7ColorPicker; + if (!colorPicker || (colorPicker && !colorPicker.opened)) { return; } + colorPicker.close(); + }; + }, + params: { + colorPicker: { + // Color picker settings + value: null, + modules: [ + 'wheel' ], + palette: [ + ['#FFEBEE', '#FFCDD2', '#EF9A9A', '#E57373', '#EF5350', '#F44336', '#E53935', '#D32F2F', '#C62828', '#B71C1C'], + ['#F3E5F5', '#E1BEE7', '#CE93D8', '#BA68C8', '#AB47BC', '#9C27B0', '#8E24AA', '#7B1FA2', '#6A1B9A', '#4A148C'], + ['#E8EAF6', '#C5CAE9', '#9FA8DA', '#7986CB', '#5C6BC0', '#3F51B5', '#3949AB', '#303F9F', '#283593', '#1A237E'], + ['#E1F5FE', '#B3E5FC', '#81D4FA', '#4FC3F7', '#29B6F6', '#03A9F4', '#039BE5', '#0288D1', '#0277BD', '#01579B'], + ['#E0F2F1', '#B2DFDB', '#80CBC4', '#4DB6AC', '#26A69A', '#009688', '#00897B', '#00796B', '#00695C', '#004D40'], + ['#F1F8E9', '#DCEDC8', '#C5E1A5', '#AED581', '#9CCC65', '#8BC34A', '#7CB342', '#689F38', '#558B2F', '#33691E'], + ['#FFFDE7', '#FFF9C4', '#FFF59D', '#FFF176', '#FFEE58', '#FFEB3B', '#FDD835', '#FBC02D', '#F9A825', '#F57F17'], + ['#FFF3E0', '#FFE0B2', '#FFCC80', '#FFB74D', '#FFA726', '#FF9800', '#FB8C00', '#F57C00', '#EF6C00', '#E65100'] ], + groupedModules: false, + centerModules: true, + + sliderLabel: false, + sliderValue: false, + sliderValueEdiable: false, + + barLabel: false, + barValue: false, + barValueEdiable: false, + + hexLabel: false, + hexValueEditable: false, + + redLabelText: 'R', + greenLabelText: 'G', + blueLabelText: 'B', + hueLabelText: 'H', + saturationLabelText: 'S', + brightnessLabelText: 'B', + hexLabelText: 'HEX', + alphaLabelText: 'A', + + // Common opener settings + containerEl: null, + openIn: 'popover', // or 'popover' or 'sheet' or 'popup' or 'page' or 'auto' + openInPhone: 'popup', // or 'popover' or 'sheet' or 'popup' or 'page' + popupPush: false, + popupSwipeToClose: undefined, + sheetPush: false, + sheetSwipeToClose: undefined, + formatValue: null, + targetEl: null, + targetElSetBackgroundColor: false, + inputEl: null, + inputReadOnly: true, + closeByOutsideClick: true, + scrollToInput: true, + toolbarSheet: true, + toolbarPopover: false, + toolbarCloseText: 'Done', + navbarPopup: true, + navbarCloseText: 'Done', + navbarTitleText: 'Color', + navbarBackLinkText: 'Back', + cssClass: null, + routableModals: true, + view: null, + url: 'color/', + backdrop: null, + closeByBackdropClick: true, + // Render functions + renderToolbar: null, + renderNavbar: null, + renderInline: null, + renderPopover: null, + renderSheet: null, + renderPopup: null, + render: null, + }, + }, + }; + + var Treeview = { + open: function open(itemEl) { + var app = this; + var $itemEl = $(itemEl).eq(0); + if (!$itemEl.length) { return; } + $itemEl.addClass('treeview-item-opened'); + $itemEl.trigger('treeview:open'); + app.emit('treeviewOpen', $itemEl[0]); + function done(cancel) { + if (cancel) { + $itemEl.removeClass('treeview-item-opened'); + $itemEl.trigger('treeview:close'); + app.emit('treeviewClose', $itemEl[0]); + } else { + $itemEl[0].f7TreeviewChildrenLoaded = true; + } + $itemEl.find('.treeview-toggle').removeClass('treeview-toggle-hidden'); + $itemEl.find('.treeview-preloader').remove(); + } + + if ($itemEl.hasClass('treeview-load-children') && !$itemEl[0].f7TreeviewChildrenLoaded) { + $itemEl.trigger('treeview:loadchildren', done); + app.emit('treeviewLoadChildren', $itemEl[0], done); + $itemEl.find('.treeview-toggle').addClass('treeview-toggle-hidden'); + $itemEl.find('.treeview-item-root').prepend(("
                " + (Utils[((app.theme) + "PreloaderContent")]) + "
                ")); + } + }, + close: function close(itemEl) { + var app = this; + var $itemEl = $(itemEl).eq(0); + if (!$itemEl.length) { return; } + $itemEl.removeClass('treeview-item-opened'); + $itemEl.trigger('treeview:close'); + app.emit('treeviewClose', $itemEl[0]); + }, + toggle: function toggle(itemEl) { + var app = this; + var $itemEl = $(itemEl).eq(0); + if (!$itemEl.length) { return; } + var wasOpened = $itemEl.hasClass('treeview-item-opened'); + app.treeview[wasOpened ? 'close' : 'open']($itemEl); + }, + }; + + var Treeview$1 = { + name: 'treeview', + create: function create() { + var app = this; + Utils.extend(app, { + treeview: { + open: Treeview.open.bind(app), + close: Treeview.close.bind(app), + toggle: Treeview.toggle.bind(app), + }, + }); + }, + clicks: { + '.treeview-toggle': function toggle($clickedEl, clickedData, e) { + var app = this; + if ($clickedEl.parents('.treeview-item-toggle').length) { return; } + var $treeviewItemEl = $clickedEl.parents('.treeview-item').eq(0); + if (!$treeviewItemEl.length) { return; } + e.preventF7Router = true; + app.treeview.toggle($treeviewItemEl[0]); + }, + '.treeview-item-toggle': function toggle($clickedEl, clickedData, e) { + var app = this; + var $treeviewItemEl = $clickedEl.closest('.treeview-item').eq(0); + if (!$treeviewItemEl.length) { return; } + e.preventF7Router = true; + app.treeview.toggle($treeviewItemEl[0]); + }, + }, + }; + + var textEditorButtonsMap = { + // f7-icon, material-icon, command + bold: ['bold', 'format_bold', 'bold'], + italic: ['italic', 'format_italic', 'italic'], + underline: ['underline', 'format_underlined', 'underline'], + strikeThrough: ['strikethrough', 'strikethrough_s', 'strikeThrough'], + orderedList: ['list_number', 'format_list_numbered', 'insertOrderedList'], + unorderedList: ['list_bullet', 'format_list_bulleted', 'insertUnorderedList'], + link: ['link', 'link', 'createLink'], + image: ['photo', 'image', 'insertImage'], + paragraph: ['paragraph', '', 'formatBlock.P'], + h1: ['H1', 'H1', 'formatBlock.H1'], + h2: ['H2', 'H2', 'formatBlock.H2'], + h3: ['H3', 'H3', 'formatBlock.H3'], + alignLeft: ['text_alignleft', 'format_align_left', 'justifyLeft'], + alignCenter: ['text_aligncenter', 'format_align_center', 'justifyCenter'], + alignRight: ['text_alignright', 'format_align_right', 'justifyRight'], + alignJustify: ['text_justify', 'format_align_justify', 'justifyFull'], + subscript: ['textformat_subscript', 'A1', 'subscript'], + superscript: ['textformat_superscript', 'A1', 'superscript'], + indent: ['increase_indent', 'format_indent_increase', 'indent'], + outdent: ['decrease_indent', 'format_indent_decrease', 'outdent'], + }; + + var TextEditor = /*@__PURE__*/(function (Framework7Class) { + function TextEditor(app, params) { + Framework7Class.call(this, params, [app]); + var self = this; + + var defaults = Utils.extend({}, app.params.textEditor); + + // Extend defaults with modules params + self.useModulesParams(defaults); + + self.params = Utils.extend(defaults, params); + + var el = self.params.el; + if (!el) { return self; } + + var $el = $(el); + if ($el.length === 0) { return self; } + + if ($el[0].f7TextEditor) { return $el[0].f7TextEditor; } + + var $contentEl = $el.children('.text-editor-content'); + if (!$contentEl.length) { + $el.append('
                '); + $contentEl = $el.children('.text-editor-content'); + } + + Utils.extend(self, { + app: app, + $el: $el, + el: $el[0], + $contentEl: $contentEl, + contentEl: $contentEl[0], + }); + if ('value' in params) { + self.value = self.params.value; + } + + if (self.params.mode === 'keyboard-toolbar') { + if (!app.device.cordova && !app.device.android) { + self.params.mode = 'popover'; + } + } + + if (typeof self.params.buttons === 'string') { + try { + self.params.buttons = JSON.parse(self.params.buttons); + } catch (err) { + throw new Error('Framework7: TextEditor: wrong "buttons" parameter format'); + } + } + + $el[0].f7TextEditor = self; + + // Bind + self.onButtonClick = self.onButtonClick.bind(self); + self.onFocus = self.onFocus.bind(self); + self.onBlur = self.onBlur.bind(self); + self.onInput = self.onInput.bind(self); + self.onPaste = self.onPaste.bind(self); + self.onSelectionChange = self.onSelectionChange.bind(self); + self.closeKeyboardToolbar = self.closeKeyboardToolbar.bind(self); + + // Handle Events + self.attachEvents = function attachEvents() { + if (self.params.mode === 'toolbar') { + self.$el.find('.text-editor-toolbar').on('click', 'button', self.onButtonClick); + } + if (self.params.mode === 'keyboard-toolbar') { + self.$keyboardToolbarEl.on('click', 'button', self.onButtonClick); + self.$el.parents('.page').on('page:beforeout', self.closeKeyboardToolbar); + } + if (self.params.mode === 'popover' && self.popover) { + self.popover.$el.on('click', 'button', self.onButtonClick); + } + self.$contentEl.on('paste', self.onPaste); + self.$contentEl.on('focus', self.onFocus); + self.$contentEl.on('blur', self.onBlur); + self.$contentEl.on('input', self.onInput, true); + $(doc).on('selectionchange', self.onSelectionChange); + }; + self.detachEvents = function detachEvents() { + if (self.params.mode === 'toolbar') { + self.$el.find('.text-editor-toolbar').off('click', 'button', self.onButtonClick); + } + if (self.params.mode === 'keyboard-toolbar') { + self.$keyboardToolbarEl.off('click', 'button', self.onButtonClick); + self.$el.parents('.page').off('page:beforeout', self.closeKeyboardToolbar); + } + if (self.params.mode === 'popover' && self.popover) { + self.popover.$el.off('click', 'button', self.onButtonClick); + } + self.$contentEl.off('paste', self.onPaste); + self.$contentEl.off('focus', self.onFocus); + self.$contentEl.off('blur', self.onBlur); + self.$contentEl.off('input', self.onInput, true); + $(doc).off('selectionchange', self.onSelectionChange); + }; + + // Install Modules + self.useModules(); + + // Init + self.init(); + + return self; + } + + if ( Framework7Class ) TextEditor.__proto__ = Framework7Class; + TextEditor.prototype = Object.create( Framework7Class && Framework7Class.prototype ); + TextEditor.prototype.constructor = TextEditor; + + TextEditor.prototype.setValue = function setValue (newValue) { + var self = this; + var currentValue = self.value; + if (currentValue === newValue) { return self; } + self.value = newValue; + self.$contentEl.html(newValue); + self.$el.trigger('texteditor:change', self.value); + self.emit('local::change textEditorChange', self, self.value); + return self; + }; + + TextEditor.prototype.getValue = function getValue () { + var self = this; + return self.value; + }; + + TextEditor.prototype.createLink = function createLink () { + var self = this; + var currentSelection = win.getSelection(); + var selectedNodes = []; + var $selectedLinks; + if (currentSelection && currentSelection.anchorNode && $(currentSelection.anchorNode).parents(self.$el).length) { + var anchorNode = currentSelection.anchorNode; + while (anchorNode) { + selectedNodes.push(anchorNode); + if (!anchorNode.nextSibling || anchorNode === currentSelection.focusNode) { + anchorNode = null; + } + if (anchorNode) { + anchorNode = anchorNode.nextSibling; + } + } + $selectedLinks = $(selectedNodes).closest('a').add($(selectedNodes).children('a')); + } + if ($selectedLinks && $selectedLinks.length) { + $selectedLinks.each(function (linkIndex, linkNode) { + var selection = win.getSelection(); + var range = doc.createRange(); + range.selectNodeContents(linkNode); + selection.removeAllRanges(); + selection.addRange(range); + doc.execCommand('unlink', false); + selection.removeAllRanges(); + }); + return self; + } + var currentRange = self.getSelectionRange(); + if (!currentRange) { return self; } + var dialog = self.app.dialog.prompt(self.params.linkUrlText, '', function (link) { + if (link && link.trim().length) { + self.setSelectionRange(currentRange); + doc.execCommand('createLink', false, link.trim()); + } + }); + dialog.$el.find('input').focus(); + return self; + }; + + TextEditor.prototype.insertImage = function insertImage () { + var self = this; + var currentRange = self.getSelectionRange(); + if (!currentRange) { return self; } + var dialog = self.app.dialog.prompt(self.params.imageUrlText, '', function (imageUrl) { + if (imageUrl && imageUrl.trim().length) { + self.setSelectionRange(currentRange); + doc.execCommand('insertImage', false, imageUrl.trim()); + } + }); + dialog.$el.find('input').focus(); + return self; + }; + + TextEditor.prototype.removePlaceholder = function removePlaceholder () { + var self = this; + self.$contentEl.find('.text-editor-placeholder').remove(); + }; + + TextEditor.prototype.insertPlaceholder = function insertPlaceholder () { + var self = this; + self.$contentEl.append(("
                " + (self.params.placeholder) + "
                ")); + }; + + TextEditor.prototype.onSelectionChange = function onSelectionChange () { + var self = this; + if (self.params.mode === 'toolbar') { return; } + var selection = win.getSelection(); + var selectionIsInContent = $(selection.anchorNode).parents(self.contentEl).length || selection.anchorNode === self.contentEl; + if (self.params.mode === 'keyboard-toolbar') { + if (!selectionIsInContent) { + self.closeKeyboardToolbar(); + } else { + self.openKeyboardToolbar(); + } + return; + } + if (self.params.mode === 'popover') { + var selectionIsInPopover = $(selection.anchorNode).parents(self.popover.el).length || selection.anchorNode === self.popover.el; + if (!selectionIsInContent && !selectionIsInPopover) { + self.closePopover(); + return; + } + if (!selection.isCollapsed && selection.rangeCount) { + var range = selection.getRangeAt(0); + var rect = range.getBoundingClientRect(); + var rootEl = self.app.root[0] || doc.body; + self.openPopover(rect.x + (win.scrollX || 0) - rootEl.offsetLeft, rect.y + (win.scrollY || 0) - rootEl.offsetTop, rect.width, rect.height); + } else if (selection.isCollapsed) { + self.closePopover(); + } + } + }; + + TextEditor.prototype.onPaste = function onPaste (e) { + var self = this; + if (self.params.clearFormattingOnPaste && e.clipboardData && e.clipboardData.getData) { + var text = e.clipboardData.getData('text/plain'); + e.preventDefault(); + doc.execCommand('insertText', false, text); + } + }; + + TextEditor.prototype.onInput = function onInput () { + var self = this; + var value = self.$contentEl.html(); + + self.$el.trigger('texteditor:input'); + self.emit('local:input textEditorInput', self); + + self.value = value; + self.$el.trigger('texteditor:change', self.value); + self.emit('local::change textEditorChange', self, self.value); + }; + + TextEditor.prototype.onFocus = function onFocus () { + var self = this; + self.removePlaceholder(); + self.$contentEl.focus(); + self.$el.trigger('texteditor:focus'); + self.emit('local::focus textEditorFocus', self); + }; + + TextEditor.prototype.onBlur = function onBlur () { + var self = this; + if (self.params.placeholder && self.$contentEl.html() === '') { + self.insertPlaceholder(); + } + if (self.params.mode === 'popover') { + var selection = win.getSelection(); + var selectionIsInContent = $(selection.anchorNode).parents(self.contentEl).length || selection.anchorNode === self.contentEl; + var inPopover = doc.activeElement && self.popover && $(doc.activeElement).closest(self.popover.$el).length; + if (!inPopover && !selectionIsInContent) { + self.closePopover(); + } + } + if (self.params.mode === 'keyboard-toolbar') { + var selection$1 = win.getSelection(); + var selectionIsInContent$1 = $(selection$1.anchorNode).parents(self.contentEl).length || selection$1.anchorNode === self.contentEl; + if (!selectionIsInContent$1) { + self.closeKeyboardToolbar(); + } + } + self.$el.trigger('texteditor:blur'); + self.emit('local::blur textEditorBlur', self); + }; + + TextEditor.prototype.onButtonClick = function onButtonClick (e) { + var self = this; + var selection = win.getSelection(); + var selectionIsInContent = $(selection.anchorNode).parents(self.contentEl).length || selection.anchorNode === self.contentEl; + if (!selectionIsInContent) { return; } + var $buttonEl = $(e.target).closest('button'); + if ($buttonEl.parents('form').length) { + e.preventDefault(); + } + var button = $buttonEl.attr('data-button'); + var buttonData = self.params.customButtons && self.params.customButtons[button]; + if (!button || !(textEditorButtonsMap[button] || buttonData)) { return; } + $buttonEl.trigger('texteditor:buttonclick', button); + self.emit('local::buttonClick textEditorButtonClick', self, button); + if (buttonData) { + if (buttonData.onClick) { buttonData.onClick(self, $buttonEl[0]); } + return; + } + var command = textEditorButtonsMap[button][2]; + if (command === 'createLink') { + self.createLink(); + return; + } + if (command === 'insertImage') { + self.insertImage(); + return; + } + if (command.indexOf('formatBlock') === 0) { + var tagName = command.split('.')[1]; + var $anchorNode = $(selection.anchorNode); + if ($anchorNode.parents(tagName.toLowerCase()).length || $anchorNode.is(tagName)) { + doc.execCommand('formatBlock', false, 'div'); + } else { + doc.execCommand('formatBlock', false, tagName); + } + return; + } + doc.execCommand(command, false); + }; + + // eslint-disable-next-line + TextEditor.prototype.getSelectionRange = function getSelectionRange () { + if (win.getSelection) { + var sel = win.getSelection(); + if (sel.getRangeAt && sel.rangeCount) { + return sel.getRangeAt(0); + } + } else if (doc.selection && doc.selection.createRange) { + return doc.selection.createRange(); + } + return null; + }; + + // eslint-disable-next-line + TextEditor.prototype.setSelectionRange = function setSelectionRange (range) { + if (range) { + if (win.getSelection) { + var sel = win.getSelection(); + sel.removeAllRanges(); + sel.addRange(range); + } else if (doc.selection && range.select) { + range.select(); + } + } + }; + + TextEditor.prototype.renderButtons = function renderButtons () { + var self = this; + var html = ''; + function renderButton(button) { + var iconClass = self.app.theme === 'md' ? 'material-icons' : 'f7-icons'; + if (self.params.customButtons && self.params.customButtons[button]) { + var buttonData = self.params.customButtons[button]; + return (""); + } + if (!textEditorButtonsMap[button]) { return ''; } + var iconContent = textEditorButtonsMap[button][self.app.theme === 'md' ? 1 : 0]; + return ("").trim(); + } + self.params.buttons.forEach(function (button, buttonIndex) { + if (Array.isArray(button)) { + button.forEach(function (b) { + html += renderButton(b); + }); + if (buttonIndex < self.params.buttons.length - 1 && self.params.dividers) { + html += '
                '; + } + } else { + html += renderButton(button); + } + }); + return html; + }; + + TextEditor.prototype.createToolbar = function createToolbar () { + var self = this; + self.$el.prepend(("
                " + (self.renderButtons()) + "
                ")); + }; + + TextEditor.prototype.createKeyboardToolbar = function createKeyboardToolbar () { + var self = this; + var isDark = self.$el.closest('.theme-dark').length > 0 || self.app.device.prefersColorScheme() === 'dark'; + self.$keyboardToolbarEl = $(("
                " + (self.renderButtons()) + "
                ")); + }; + + TextEditor.prototype.createPopover = function createPopover () { + var self = this; + var isDark = self.$el.closest('.theme-dark').length > 0; + self.popover = self.app.popover.create({ + content: ("\n
                \n
                " + (self.renderButtons()) + "
                \n
                \n "), + closeByOutsideClick: false, + backdrop: false, + }); + }; + + TextEditor.prototype.openKeyboardToolbar = function openKeyboardToolbar () { + var self = this; + if (self.$keyboardToolbarEl.parent(self.app.root).length) { return; } + self.$el.trigger('texteditor:keyboardopen'); + self.emit('local::keyboardOpen textEditorKeyboardOpen', self); + self.app.root.append(self.$keyboardToolbarEl); + }; + + TextEditor.prototype.closeKeyboardToolbar = function closeKeyboardToolbar () { + var self = this; + self.$keyboardToolbarEl.remove(); + self.$el.trigger('texteditor:keyboardclose'); + self.emit('local::keyboardClose textEditorKeyboardClose', self); + }; + + TextEditor.prototype.openPopover = function openPopover (targetX, targetY, targetWidth, targetHeight) { + var self = this; + + if (!self.popover) { return; } + Object.assign(self.popover.params, { + targetX: targetX, + targetY: targetY, + targetWidth: targetWidth, + targetHeight: targetHeight, + }); + clearTimeout(self.popoverTimeout); + self.popoverTimeout = setTimeout(function () { + if (!self.popover) { return; } + if (self.popover.opened) { + self.popover.resize(); + } else { + self.$el.trigger('texteditor:popoveropen'); + self.emit('local::popoverOpen textEditorPopoverOpen', self); + self.popover.open(); + } + }, 400); + }; + + TextEditor.prototype.closePopover = function closePopover () { + var self = this; + clearTimeout(self.popoverTimeout); + if (!self.popover || !self.popover.opened) { return; } + self.popoverTimeout = setTimeout(function () { + if (!self.popover) { return; } + self.$el.trigger('texteditor:popoverclose'); + self.emit('local::popoverClose textEditorPopoverClose', self); + self.popover.close(); + }, 400); + }; + + TextEditor.prototype.init = function init () { + var self = this; + if (self.value) { + self.$contentEl.html(self.value); + } else { + self.value = self.$contentEl.html(); + } + if (self.params.placeholder && self.value === '') { + self.insertPlaceholder(); + } + if (self.params.mode === 'toolbar') { + self.createToolbar(); + } else if (self.params.mode === 'popover') { + self.createPopover(); + } else if (self.params.mode === 'keyboard-toolbar') { + self.createKeyboardToolbar(); + } + + self.attachEvents(); + self.$el.trigger('texteditor:init'); + self.emit('local::init textEditorInit', self); + return self; + }; + + TextEditor.prototype.destroy = function destroy () { + var self = this; + self.$el.trigger('texteditor:beforedestroy'); + self.emit('local::beforeDestroy textEditorBeforeDestroy', self); + self.detachEvents(); + if (self.params.mode === 'keyboard-toolbar' && self.$keyboardToolbarEl) { + self.$keyboardToolbarEl.remove(); + } + if (self.popover) { + self.popover.close(false); + self.popover.destroy(); + } + delete self.$el[0].f7TextEditor; + Utils.deleteProps(self); + self = null; + }; + + return TextEditor; + }(Framework7Class)); + + var TextEditor$1 = { + name: 'textEditor', + params: { + textEditor: { + el: null, + mode: 'toolbar', // or 'popover' + value: undefined, // will use html content + customButtons: null, + buttons: [ + ['bold', 'italic', 'underline', 'strikeThrough'], + ['orderedList', 'unorderedList'], + ['link', 'image'], + ['paragraph', 'h1', 'h2', 'h3'], + ['alignLeft', 'alignCenter', 'alignRight', 'alignJustify'], + ['subscript', 'superscript'], + ['indent', 'outdent'] ], + dividers: true, + imageUrlText: 'Insert image URL', + linkUrlText: 'Insert link URL', + placeholder: null, + clearFormattingOnPaste: true, + }, + }, + create: function create() { + var app = this; + app.textEditor = Utils.extend( + ConstructorMethods({ + defaultSelector: '.text-editor', + constructor: TextEditor, + app: app, + domProp: 'f7TextEditor', + }) + ); + }, + static: { + TextEditor: TextEditor, + }, + on: { + tabMounted: function tabMounted(tabEl) { + var app = this; + $(tabEl).find('.text-editor-init').each(function (index, editorEl) { + var dataset = $(editorEl).dataset(); + app.textEditor.create(Utils.extend({ el: editorEl }, dataset || {})); + }); + }, + tabBeforeRemove: function tabBeforeRemove(tabEl) { + $(tabEl).find('.text-editor-init').each(function (index, editorEl) { + if (editorEl.f7TextEditor) { editorEl.f7TextEditor.destroy(); } + }); + }, + pageInit: function pageInit(page) { + var app = this; + page.$el.find('.text-editor-init').each(function (index, editorEl) { + var dataset = $(editorEl).dataset(); + app.textEditor.create(Utils.extend({ el: editorEl }, dataset || {})); + }); + }, + pageBeforeRemove: function pageBeforeRemove(page) { + page.$el.find('.text-editor-init').each(function (index, editorEl) { + if (editorEl.f7TextEditor) { editorEl.f7TextEditor.destroy(); } + }); + }, + }, + vnode: { + 'text-editor-init': { + insert: function insert(vnode) { + var app = this; + var editorEl = vnode.elm; + var dataset = $(editorEl).dataset(); + app.textEditor.create(Utils.extend({ el: editorEl }, dataset || {})); + }, + destroy: function destroy(vnode) { + var editorEl = vnode.elm; + if (editorEl.f7TextEditor) { editorEl.f7TextEditor.destroy(); } + }, + }, + }, + }; + + var Elevation = { + name: 'elevation', + }; + + var Typography = { + name: 'typography', + }; + + var ViAd = /*@__PURE__*/(function (Framework7Class) { + function ViAd(app, params) { + if ( params === void 0 ) params = {}; + + Framework7Class.call(this, params, [app]); + var vi = this; + if (!win.vi) { + throw new Error('Framework7: vi SDK not found.'); + } + + var orientation; + if (typeof win.orientation !== 'undefined') { + orientation = win.orientation === -90 || win.orientation === 90 ? 'horizontal' : 'vertical'; + } + var defaults = Utils.extend( + {}, + app.params.vi, + { + appId: app.id, + appVer: app.version, + language: app.language, + width: app.width, + height: app.height, + os: Device.os, + osVersion: Device.osVersion, + orientation: orientation, + } + ); + + // Extend defaults with modules params + vi.useModulesParams(defaults); + + vi.params = Utils.extend(defaults, params); + + var adParams = {}; + var skipParams = ('on autoplay fallbackOverlay fallbackOverlayText enabled').split(' '); + Object.keys(vi.params).forEach(function (paramName) { + if (skipParams.indexOf(paramName) >= 0) { return; } + var paramValue = vi.params[paramName]; + if ([null, undefined].indexOf(paramValue) >= 0) { return; } + adParams[paramName] = paramValue; + }); + + if (!vi.params.appId) { + throw new Error('Framework7: "app.id" is required to display an ad. Make sure you have specified it on app initialization.'); + } + if (!vi.params.placementId) { + throw new Error('Framework7: "placementId" is required to display an ad.'); + } + + function onResize() { + var $viFrame = $('iframe#viAd'); + if ($viFrame.length === 0) { return; } + $viFrame + .css({ + width: ((app.width) + "px"), + height: ((app.height) + "px"), + }); + } + + function removeOverlay() { + if (!vi.$overlayEl) { return; } + vi.$overlayEl.off('click touchstart'); + vi.$overlayEl.remove(); + } + function createOverlay(videoEl) { + if (!videoEl) { return; } + vi.$overlayEl = $(("\n
                \n " + (vi.params.fallbackOverlayText ? ("
                " + (vi.params.fallbackOverlayText) + "
                ") : '') + "\n
                \n
                \n ").trim()); + + var touchStartTime; + vi.$overlayEl.on('touchstart', function () { + touchStartTime = Utils.now(); + }); + vi.$overlayEl.on('click', function () { + var timeDiff = Utils.now() - touchStartTime; + if (timeDiff > 300) { return; } + if (videoEl) { + videoEl.play(); + removeOverlay(); + return; + } + vi.start(); + removeOverlay(); + }); + app.root.append(vi.$overlayEl); + } + + // Create ad + vi.ad = new win.vi.Ad(adParams); + + Utils.extend(vi.ad, { + onAdReady: function onAdReady() { + app.on('resize', onResize); + vi.emit('local::ready'); + if (vi.params.autoplay) { + vi.start(); + } + }, + onAdStarted: function onAdStarted() { + vi.emit('local::started'); + }, + onAdClick: function onAdClick(targetUrl) { + vi.emit('local::click', targetUrl); + }, + onAdImpression: function onAdImpression() { + vi.emit('local::impression'); + }, + onAdStopped: function onAdStopped(reason) { + app.off('resize', onResize); + removeOverlay(); + + vi.emit('local::stopped', reason); + if (reason === 'complete') { + vi.emit('local::complete'); + vi.emit('local::completed'); + } + if (reason === 'userexit') { + vi.emit('local::userexit'); + } + vi.destroyed = true; + }, + onAutoPlayFailed: function onAutoPlayFailed(reason, videoEl) { + vi.emit('local::autoplayFailed', reason, videoEl); + if (reason && reason.name && reason.name.indexOf('NotAllowedError') !== -1 && vi.params.fallbackOverlay) { + createOverlay(videoEl); + } + }, + onAdError: function onAdError(msg) { + removeOverlay(); + app.off('resize', onResize); + vi.emit('local::error', msg); + vi.destroyed = true; + }, + }); + + vi.init(); + + Utils.extend(vi, { + app: app, + }); + } + + if ( Framework7Class ) ViAd.__proto__ = Framework7Class; + ViAd.prototype = Object.create( Framework7Class && Framework7Class.prototype ); + ViAd.prototype.constructor = ViAd; + + ViAd.prototype.start = function start () { + var vi = this; + if (vi.destroyed) { return; } + if (vi.ad) { vi.ad.startAd(); } + }; + + ViAd.prototype.pause = function pause () { + var vi = this; + if (vi.destroyed) { return; } + if (vi.ad) { vi.ad.pauseAd(); } + }; + + ViAd.prototype.resume = function resume () { + var vi = this; + if (vi.destroyed) { return; } + if (vi.ad) { vi.ad.resumeAd(); } + }; + + ViAd.prototype.stop = function stop () { + var vi = this; + if (vi.destroyed) { return; } + if (vi.ad) { vi.ad.stopAd(); } + }; + + ViAd.prototype.init = function init () { + var vi = this; + if (vi.destroyed) { return; } + if (vi.ad) { vi.ad.initAd(); } + }; + + ViAd.prototype.destroy = function destroy () { + var vi = this; + vi.destroyed = true; + vi.emit('local::beforeDestroy'); + Utils.deleteProps(vi); + }; + + return ViAd; + }(Framework7Class)); + + var Vi = { + name: 'vi', + params: { + vi: { + enabled: false, + autoplay: true, + fallbackOverlay: true, + fallbackOverlayText: 'Please watch this ad', + showMute: true, + startMuted: (Device.ios || Device.android) && !Device.cordova, + appId: null, + appVer: null, + language: null, + width: null, + height: null, + placementId: 'pltd4o7ibb9rc653x14', + placementType: 'interstitial', + videoSlot: null, + showProgress: true, + showBranding: true, + os: null, + osVersion: null, + orientation: null, + age: null, + gender: null, + advertiserId: null, + latitude: null, + longitude: null, + accuracy: null, + storeId: null, + ip: null, + manufacturer: null, + model: null, + connectionType: null, + connectionProvider: null, + }, + }, + create: function create() { + var app = this; + app.vi = { + sdkReady: false, + createAd: function createAd(adParams) { + return new ViAd(app, adParams); + }, + loadSdk: function loadSdk() { + if (app.vi.sdkReady) { return; } + var script = doc.createElement('script'); + script.onload = function onload() { + app.emit('viSdkReady'); + app.vi.sdkReady = true; + }; + script.src = 'https://c.vi-serve.com/viadshtml/vi.min.js'; + $('head').append(script); + }, + }; + }, + on: { + init: function init() { + var app = this; + if (app.params.vi.enabled || (app.passedParams.vi && app.passedParams.vi.enabled !== false)) { app.vi.loadSdk(); } + }, + }, + }; + + /** + * Framework7 5.7.14 + * Full featured mobile HTML framework for building iOS & Android apps + * https://framework7.io/ + * + * Copyright 2014-2020 Vladimir Kharlampidi + * + * Released under the MIT License + * + * Released on: November 9, 2020 + */ + + // Install Core Modules & Components + + Framework7.use([ + DeviceModule, + SupportModule, + UtilsModule, + ResizeModule, + RequestModule, + TouchModule, + ClicksModule, + RouterModule, + HistoryModule, + ServiceWorkerModule, + Statusbar$1, + View$1, + Navbar$1, + Toolbar$1, + Subnavbar, + TouchRipple$1, + Modal$1, + Appbar, + Dialog$1, + Popup$1, + LoginScreen$1, + Popover$1, + Actions$1, + Sheet$1, + Toast$1, + Preloader$1, + Progressbar$1, + Sortable$1, + Swipeout$1, + Accordion$1, + ContactsList, + VirtualList$1, + ListIndex$1, + Timeline, + Tabs, + Panel$1, + Card, + Chip, + Form, + Input$1, + Checkbox, + Radio, + Toggle$1, + Range$1, + Stepper$1, + SmartSelect$1, + Grid$1, + Calendar$1, + Picker$1, + InfiniteScroll$1, + PullToRefresh$1, + Lazy$1, + DataTable$1, + Fab$1, + Searchbar$1, + Messages$1, + Messagebar$1, + Swiper$1, + PhotoBrowser$1, + Notification$1, + Autocomplete$1, + Tooltip$1, + Gauge$1, + Skeleton, + Menu$1, + ColorPicker$1, + Treeview$1, + TextEditor$1, + Elevation, + Typography, + Vi + ]); + + return Framework7; + +}))); diff --git a/public/Framework7/5/js/framework7-lite.bundle.min.js b/public/Framework7/5/js/framework7-lite.bundle.min.js new file mode 100644 index 0000000..e798805 --- /dev/null +++ b/public/Framework7/5/js/framework7-lite.bundle.min.js @@ -0,0 +1,14 @@ +/** + * Framework7 5.7.14 + * Full featured mobile HTML framework for building iOS & Android apps + * https://framework7.io/ + * + * Copyright 2014-2020 Vladimir Kharlampidi + * + * Released under the MIT License + * + * Released on: November 9, 2020 + */ + +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e=e||self).Framework7=t()}(this,(function(){"use strict";var t7ctx;t7ctx="undefined"!=typeof window?window:"undefined"!=typeof global?global:void 0;var Template7Context=t7ctx,Template7Utils={quoteSingleRexExp:new RegExp("'","g"),quoteDoubleRexExp:new RegExp('"',"g"),isFunction:function(e){return"function"==typeof e},escape:function(e){return void 0===e&&(e=""),e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")},helperToSlices:function(e){var t,a,r,i=Template7Utils.quoteDoubleRexExp,n=Template7Utils.quoteSingleRexExp,s=e.replace(/[{}#}]/g,"").trim().split(" "),o=[];for(a=0;a=0){t=r,o.push(l);break}t&&(a=t)}else if(l.indexOf("=")>0){var d=l.split("="),u=d[0],h=d[1];if(p||(p=0===h.indexOf('"')?i:n,c=0===h.indexOf('"')?'"':"'"),2!==h.match(p).length){for(t=0,r=a+1;r=0){t=r;break}t&&(a=t)}var f=[u,h.replace(p,"")];o.push(f)}else o.push(l)}return o},stringToBlocks:function(e){var t,a,r=[];if(!e)return[];var i=e.split(/({{[^{^}]*}})/);for(t=0;t=0)continue;if((n=n.replace(/{{([#/])*([ ])*/,"{{$1").replace(/([ ])*}}/,"}}")).indexOf("{#")<0&&n.indexOf(" ")<0&&n.indexOf("else")<0){r.push({type:"variable",contextName:n.replace(/[{}]/g,"")});continue}var s=Template7Utils.helperToSlices(n),o=s[0],l=">"===o,p=[],c={};for(a=1;a=0){var u="",h="",f=0,v=void 0,m=!1,g=!1,b=0;for(a=t+1;a=0&&(b+=1),i[a].indexOf("{{/")>=0&&(b-=1),i[a].indexOf("{{#"+o)>=0)u+=i[a],g&&(h+=i[a]),f+=1;else if(i[a].indexOf("{{/"+o)>=0){if(!(f>0)){v=a,m=!0;break}f-=1,u+=i[a],g&&(h+=i[a])}else i[a].indexOf("else")>=0&&0===b?g=!0:(g||(u+=i[a]),g&&(h+=i[a]));m&&(v&&(t=v),"raw"===o?r.push({type:"plain",content:u}):r.push({type:"helper",helperName:o,contextName:p,content:u,inverseContent:h,hash:c}))}else n.indexOf(" ")>0&&(l&&(o="_partial",p[0]&&(0===p[0].indexOf("[")?p[0]=p[0].replace(/[[\]]/g,""):p[0]='"'+p[0].replace(/"|'/g,"")+'"')),r.push({type:"helper",helperName:o,contextName:p,hash:c}))}}return r},parseJsVariable:function(e,t,a){return e.split(/([+ \-*/^()&=|<>!%:?])/g).reduce((function(e,r){if(!r)return e;if(r.indexOf(t)<0)return e.push(r),e;if(!a)return e.push(JSON.stringify("")),e;var i=a;return r.indexOf(t+".")>=0&&r.split(t+".")[1].split(".").forEach((function(e){i=e in i?i[e]:void 0})),("string"==typeof i||Array.isArray(i)||i.constructor&&i.constructor===Object)&&(i=JSON.stringify(i)),void 0===i&&(i="undefined"),e.push(i),e}),[]).join("")},parseJsParents:function(e,t){return e.split(/([+ \-*^()&=|<>!%:?])/g).reduce((function(e,a){if(!a)return e;if(a.indexOf("../")<0)return e.push(a),e;if(!t||0===t.length)return e.push(JSON.stringify("")),e;var r=a.split("../").length-1,i=r>t.length?t[t.length-1]:t[r-1];return a.replace(/..\//g,"").split(".").forEach((function(e){i=void 0!==i[e]?i[e]:"undefined"})),!1===i||!0===i?(e.push(JSON.stringify(i)),e):null===i||"undefined"===i?(e.push(JSON.stringify("")),e):(e.push(JSON.stringify(i)),e)}),[]).join("")},getCompileVar:function(e,t,a){void 0===a&&(a="data_1");var r,i,n=t,s=0;0===e.indexOf("../")?(s=e.split("../").length-1,i=n.split("_")[1]-s,n="ctx_"+(i>=1?i:1),r=e.split("../")[s].split(".")):0===e.indexOf("@global")?(n="Template7.global",r=e.split("@global.")[1].split(".")):0===e.indexOf("@root")?(n="root",r=e.split("@root.")[1].split(".")):r=e.split(".");for(var o=0;o0&&(p=i),o>0?n+="[(data_"+p+" && data_"+p+"."+l.replace("@","")+")]":n="(data_"+p+" && data_"+p+"."+l.replace("@","")+")"}else(Number.isFinite?Number.isFinite(l):Template7Context.isFinite(l))?n+="["+l+"]":"this"===l||l.indexOf("this.")>=0||l.indexOf("this[")>=0||l.indexOf("this(")>=0?n=l.replace("this",t):n+="."+l}return n},getCompiledArguments:function(e,t,a){for(var r=[],i=0;i0?r:t.inverse(this)},with:function(e,t){var a=e;return Template7Utils.isFunction(a)&&(a=e.call(this)),t.fn(a)},join:function(e,t){var a=e;return Template7Utils.isFunction(a)&&(a=a.call(this)),a.join(t.hash.delimiter||t.hash.delimeter)},js:function js(expression,options){var data=options.data,func,execute=expression;return"index first last key".split(" ").forEach((function(e){if(void 0!==data[e]){var t=new RegExp("this.@"+e,"g"),a=new RegExp("@"+e,"g");execute=execute.replace(t,JSON.stringify(data[e])).replace(a,JSON.stringify(data[e]))}})),options.root&&execute.indexOf("@root")>=0&&(execute=Template7Utils.parseJsVariable(execute,"@root",options.root)),execute.indexOf("@global")>=0&&(execute=Template7Utils.parseJsVariable(execute,"@global",Template7Context.Template7.global)),execute.indexOf("../")>=0&&(execute=Template7Utils.parseJsParents(execute,options.parents)),func=execute.indexOf("return")>=0?"(function(){"+execute+"})":"(function(){return ("+execute+")})",eval(func).call(this)},js_if:function js_if(expression,options){var data=options.data,func,execute=expression;"index first last key".split(" ").forEach((function(e){if(void 0!==data[e]){var t=new RegExp("this.@"+e,"g"),a=new RegExp("@"+e,"g");execute=execute.replace(t,JSON.stringify(data[e])).replace(a,JSON.stringify(data[e]))}})),options.root&&execute.indexOf("@root")>=0&&(execute=Template7Utils.parseJsVariable(execute,"@root",options.root)),execute.indexOf("@global")>=0&&(execute=Template7Utils.parseJsVariable(execute,"@global",Template7Context.Template7.global)),execute.indexOf("../")>=0&&(execute=Template7Utils.parseJsParents(execute,options.parents)),func=execute.indexOf("return")>=0?"(function(){"+execute+"})":"(function(){return ("+execute+")})";var condition=eval(func).call(this);return condition?options.fn(this,options.data):options.inverse(this,options.data)}};Template7Helpers.js_compare=Template7Helpers.js_if;var Template7Options={},Template7Partials={},Template7Class=function(e){this.template=e},staticAccessors={options:{configurable:!0},partials:{configurable:!0},helpers:{configurable:!0}};function Template7(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var a=e[0],r=e[1];if(2===e.length){var i=new Template7Class(a),n=i.compile()(r);return i=null,n}return new Template7Class(a)}function isObject(e){return null!==e&&"object"==typeof e&&"constructor"in e&&e.constructor===Object}function extend(e,t){void 0===e&&(e={}),void 0===t&&(t={}),Object.keys(t).forEach((function(a){void 0===e[a]?e[a]=t[a]:isObject(t[a])&&isObject(e[a])&&Object.keys(t[a]).length>0&&extend(e[a],t[a])}))}Template7Class.prototype.compile=function compile(template,depth){void 0===template&&(template=this.template),void 0===depth&&(depth=1);var t=this;if(t.compiled)return t.compiled;if("string"!=typeof template)throw new Error("Template7: Template must be a string");var stringToBlocks=Template7Utils.stringToBlocks,getCompileVar=Template7Utils.getCompileVar,getCompiledArguments=Template7Utils.getCompiledArguments,blocks=stringToBlocks(template),ctx="ctx_"+depth,data="data_"+depth;if(0===blocks.length)return function(){return""};function getCompileFn(e,a){return e.content?t.compile(e.content,a):function(){return""}}function getCompileInverse(e,a){return e.inverseContent?t.compile(e.inverseContent,a):function(){return""}}var resultString="",i;for(resultString+=1===depth?"(function ("+ctx+", "+data+", root) {\n":"(function ("+ctx+", "+data+") {\n",1===depth&&(resultString+="function isArray(arr){return Array.isArray(arr);}\n",resultString+="function isFunction(func){return (typeof func === 'function');}\n",resultString+='function c(val, ctx) {if (typeof val !== "undefined" && val !== null) {if (isFunction(val)) {return val.call(ctx);} else return val;} else return "";}\n',resultString+="root = root || ctx_1 || {};\n"),resultString+="var r = '';\n",i=0;i=1;j-=1)parentsString+=", ctx_"+j;parents="["+parentsString+"]"}else parents="["+ctx+"]";var dynamicHelper=void 0;if(0===block.helperName.indexOf("[")&&(block.helperName=getCompileVar(block.helperName.replace(/[[\]]/g,""),ctx,data),dynamicHelper=!0),dynamicHelper||block.helperName in Template7Helpers)compiledArguments=getCompiledArguments(block.contextName,ctx,data),resultString+="r += (Template7Helpers"+(dynamicHelper?"["+block.helperName+"]":"."+block.helperName)+").call("+ctx+", "+(compiledArguments&&compiledArguments+", ")+"{hash:"+JSON.stringify(block.hash)+", data: "+data+" || {}, fn: "+getCompileFn(block,depth+1)+", inverse: "+getCompileInverse(block,depth+1)+", root: root, parents: "+parents+"});";else{if(block.contextName.length>0)throw new Error('Template7: Missing helper: "'+block.helperName+'"');variable=getCompileVar(block.helperName,ctx,data),resultString+="if ("+variable+") {",resultString+="if (isArray("+variable+")) {",resultString+="r += (Template7Helpers.each).call("+ctx+", "+variable+", {hash:"+JSON.stringify(block.hash)+", data: "+data+" || {}, fn: "+getCompileFn(block,depth+1)+", inverse: "+getCompileInverse(block,depth+1)+", root: root, parents: "+parents+"});",resultString+="}else {",resultString+="r += (Template7Helpers.with).call("+ctx+", "+variable+", {hash:"+JSON.stringify(block.hash)+", data: "+data+" || {}, fn: "+getCompileFn(block,depth+1)+", inverse: "+getCompileInverse(block,depth+1)+", root: root, parents: "+parents+"});",resultString+="}}"}}}else resultString+="r +='"+block.content.replace(/\r/g,"\\r").replace(/\n/g,"\\n").replace(/'/g,"\\'")+"';"}return resultString+="\nreturn r;})",1===depth?(t.compiled=eval(resultString),t.compiled):resultString},staticAccessors.options.get=function(){return Template7Options},staticAccessors.partials.get=function(){return Template7Partials},staticAccessors.helpers.get=function(){return Template7Helpers},Object.defineProperties(Template7Class,staticAccessors),Template7.registerHelper=function(e,t){Template7Class.helpers[e]=t},Template7.unregisterHelper=function(e){Template7Class.helpers[e]=void 0,delete Template7Class.helpers[e]},Template7.registerPartial=function(e,t){Template7Class.partials[e]={template:t}},Template7.unregisterPartial=function(e){Template7Class.partials[e]&&(Template7Class.partials[e]=void 0,delete Template7Class.partials[e])},Template7.compile=function(e,t){return new Template7Class(e,t).compile()},Template7.options=Template7Class.options,Template7.helpers=Template7Class.helpers,Template7.partials=Template7Class.partials;var doc="undefined"!=typeof document?document:{},ssrDocument={body:{},addEventListener:function(){},removeEventListener:function(){},activeElement:{blur:function(){},nodeName:""},querySelector:function(){return null},querySelectorAll:function(){return[]},getElementById:function(){return null},createEvent:function(){return{initEvent:function(){}}},createElement:function(){return{children:[],childNodes:[],style:{},setAttribute:function(){},getElementsByTagName:function(){return[]}}},createElementNS:function(){return{}},importNode:function(){return null},location:{hash:"",host:"",hostname:"",href:"",origin:"",pathname:"",protocol:"",search:""}};extend(doc,ssrDocument);var win="undefined"!=typeof window?window:{},ssrWindow={document:ssrDocument,navigator:{userAgent:""},location:{hash:"",host:"",hostname:"",href:"",origin:"",pathname:"",protocol:"",search:""},history:{replaceState:function(){},pushState:function(){},go:function(){},back:function(){}},CustomEvent:function(){return this},addEventListener:function(){},removeEventListener:function(){},getComputedStyle:function(){return{getPropertyValue:function(){return""}}},Image:function(){},Date:function(){},screen:{},setTimeout:function(){},clearTimeout:function(){},matchMedia:function(){return{}}};extend(win,ssrWindow);var Dom7=function(e){for(var t=0;t=0&&s.indexOf(">")>=0){var o="div";for(0===s.indexOf(":~]/)?(t||doc).querySelectorAll(e.trim()):[doc.getElementById(e.trim().split("#")[1])],r=0;r0&&e[0].nodeType)for(r=0;r=0&&(t[toCamelCase(i.name.split("data-")[1])]=i.value)}for(var n in t)"false"===t[n]?t[n]=!1:"true"===t[n]?t[n]=!0:parseFloat(t[n])===1*t[n]&&(t[n]*=1);return t}}function val(e){if(void 0!==e){for(var t=0;t=0;else a.value=e}return this}if(this[0]){if(this[0].multiple&&"select"===this[0].nodeName.toLowerCase()){for(var i=[],n=0;n=0;h-=1){var f=u[h];n&&f.listener===n||n&&f.listener&&f.listener.dom7proxy&&f.listener.dom7proxy===n?(d.removeEventListener(p,f.proxyListener,s),u.splice(h,1)):n||(d.removeEventListener(p,f.proxyListener,s),u.splice(h,1))}}return this}function once(){for(var e,t=[],a=arguments.length;a--;)t[a]=arguments[a];var r=this,i=t[0],n=t[1],s=t[2],o=t[3];function l(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];s.apply(this,e),r.off(i,n,l,o),l.dom7proxy&&delete l.dom7proxy}return"function"==typeof t[1]&&(i=(e=t)[0],s=e[1],o=e[2],n=void 0),l.dom7proxy=s,r.on(i,n,l,o)}function trigger(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];for(var a=e[0].split(" "),r=e[1],i=0;i0})),o.dispatchEvent(l),o.dom7EventData=[],delete o.dom7EventData}return this}function transitionEnd(e){var t,a=["webkitTransitionEnd","transitionend"],r=this;function i(n){if(n.target===this)for(e.call(this,n),t=0;t0?parseFloat(this.css("width")):null}function outerWidth(e){if(this.length>0){if(e){var t=this.styles();return this[0].offsetWidth+parseFloat(t.getPropertyValue("margin-right"))+parseFloat(t.getPropertyValue("margin-left"))}return this[0].offsetWidth}return null}function height(){return this[0]===win?win.innerHeight:this.length>0?parseFloat(this.css("height")):null}function outerHeight(e){if(this.length>0){if(e){var t=this.styles();return this[0].offsetHeight+parseFloat(t.getPropertyValue("margin-top"))+parseFloat(t.getPropertyValue("margin-bottom"))}return this[0].offsetHeight}return null}function offset(){if(this.length>0){var e=this[0],t=e.getBoundingClientRect(),a=doc.body,r=e.clientTop||a.clientTop||0,i=e.clientLeft||a.clientLeft||0,n=e===win?win.scrollY:e.scrollTop,s=e===win?win.scrollX:e.scrollLeft;return{top:t.top+n-r,left:t.left+s-i}}return null}function hide(){for(var e=0;ea-1?[]:e<0?(t=a+e)<0?[]:[this[t]]:[this[e]])}function append(){for(var e,t=[],a=arguments.length;a--;)t[a]=arguments[a];for(var r=0;r=0;a-=1)this[t].insertBefore(r.childNodes[a],this[t].childNodes[0])}else if(e instanceof Dom7)for(a=0;a1)for(var r=0;r1)for(var r=0;r0?e?this[0].nextElementSibling&&$(this[0].nextElementSibling).is(e)?new Dom7([this[0].nextElementSibling]):new Dom7([]):this[0].nextElementSibling?new Dom7([this[0].nextElementSibling]):new Dom7([]):new Dom7([])}function nextAll(e){var t=[],a=this[0];if(!a)return new Dom7([]);for(;a.nextElementSibling;){var r=a.nextElementSibling;e?$(r).is(e)&&t.push(r):t.push(r),a=r}return new Dom7(t)}function prev(e){if(this.length>0){var t=this[0];return e?t.previousElementSibling&&$(t.previousElementSibling).is(e)?new Dom7([t.previousElementSibling]):new Dom7([]):t.previousElementSibling?new Dom7([t.previousElementSibling]):new Dom7([])}return new Dom7([])}function prevAll(e){var t=[],a=this[0];if(!a)return new Dom7([]);for(;a.previousElementSibling;){var r=a.previousElementSibling;e?$(r).is(e)&&t.push(r):t.push(r),a=r}return new Dom7(t)}function siblings(e){return this.nextAll(e).add(this.prevAll(e))}function parent(e){for(var t=[],a=0;a0||0===i,v=r>0||0===r;if(void 0===s&&(s="swing"),f&&(e=h.scrollTop,n||(h.scrollTop=i)),v&&(t=h.scrollLeft,n||(h.scrollLeft=r)),n){f&&(a=h.scrollHeight-h.offsetHeight,p=Math.max(Math.min(i,a),0)),v&&(l=h.scrollWidth-h.offsetWidth,c=Math.max(Math.min(r,l),0));var m=null;f&&p===e&&(f=!1),v&&c===t&&(v=!1),requestAnimationFrame((function a(r){void 0===r&&(r=(new Date).getTime()),null===m&&(m=r);var i,l=Math.max(Math.min((r-m)/n,1),0),g="linear"===s?l:.5-Math.cos(l*Math.PI)/2;f&&(d=e+g*(p-e)),v&&(u=t+g*(c-t)),f&&p>e&&d>=p&&(h.scrollTop=p,i=!0),f&&pt&&u>=c&&(h.scrollLeft=c,i=!0),v&&c0?o[0].scrollTop:null:o.scrollTo(void 0,r,i,n,s)}function scrollLeft(){for(var e,t=[],a=arguments.length;a--;)t[a]=arguments[a];var r=t[0],i=t[1],n=t[2],s=t[3];3===t.length&&"function"==typeof n&&(r=(e=t)[0],i=e[1],s=e[2],n=e[3]);var o=this;return void 0===r?o.length>0?o[0].scrollLeft:null:o.scrollTo(r,void 0,i,n,s)}var Scroll=Object.freeze({scrollTo:scrollTo,scrollTop:scrollTop,scrollLeft:scrollLeft});function animate(e,t){var a,r=this,i={props:Object.assign({},e),params:Object.assign({duration:300,easing:"swing"},t),elements:r,animating:!1,que:[],easingProgress:function(e,t){return"swing"===e?.5-Math.cos(t*Math.PI)/2:"function"==typeof e?e(t):t},stop:function(){i.frameId&&cancelAnimationFrame(i.frameId),i.animating=!1,i.elements.each((function(e,t){delete t.dom7AnimateInstance})),i.que=[]},done:function(e){if(i.animating=!1,i.elements.each((function(e,t){delete t.dom7AnimateInstance})),e&&e(r),i.que.length>0){var t=i.que.shift();i.animate(t[0],t[1])}},animate:function(e,t){if(i.animating)return i.que.push([e,t]),i;var a=[];i.elements.each((function(t,r){var n,s,o,l,p;r.dom7AnimateInstance||(i.elements[t].dom7AnimateInstance=i),a[t]={container:r},Object.keys(e).forEach((function(i){n=win.getComputedStyle(r,null).getPropertyValue(i).replace(",","."),s=parseFloat(n),o=n.replace(s,""),l=parseFloat(e[i]),p=e[i]+o,a[t][i]={initialFullValue:n,initialValue:s,unit:o,finalValue:l,finalFullValue:p,currentValue:s}}))}));var n,s,o=null,l=0,p=0,c=!1;return i.animating=!0,i.frameId=requestAnimationFrame((function d(){var u,h;n=(new Date).getTime(),c||(c=!0,t.begin&&t.begin(r)),null===o&&(o=n),t.progress&&t.progress(r,Math.max(Math.min((n-o)/t.duration,1),0),o+t.duration-n<0?0:o+t.duration-n,o),a.forEach((function(r){var c=r;s||c.done||Object.keys(e).forEach((function(r){if(!s&&!c.done){u=Math.max(Math.min((n-o)/t.duration,1),0),h=i.easingProgress(t.easing,u);var d=c[r],f=d.initialValue,v=d.finalValue,m=d.unit;c[r].currentValue=f+h*(v-f);var g=c[r].currentValue;(v>f&&g>=v||v0;)a[r]=arguments[r+1];if(void 0===a[0]){for(var i=0;i\n \n \n \n \n \n \n \n \n '.trim(),iosPreloaderContent:('\n \n '+[0,1,2,3,4,5,6,7,8,9,10,11].map((function(){return''})).join("")+"\n \n ").trim(),auroraPreloaderContent:'\n \n \n \n ',eventNameToColonCase:function(e){var t;return e.split("").map((function(e,a){return e.match(/[A-Z]/)&&0!==a&&!t?(t=!0,":"+e.toLowerCase()):e.toLowerCase()})).join("")},deleteProps:function(e){var t=e;Object.keys(t).forEach((function(e){try{t[e]=null}catch(e){}try{delete t[e]}catch(e){}}))},nextTick:function(e,t){return void 0===t&&(t=0),setTimeout(e,t)},nextFrame:function(e){return Utils.requestAnimationFrame((function(){Utils.requestAnimationFrame(e)}))},now:function(){return Date.now()},requestAnimationFrame:function(e){return win.requestAnimationFrame(e)},cancelAnimationFrame:function(e){return win.cancelAnimationFrame(e)},removeDiacritics:function(e){return e.replace(/[^\u0000-\u007E]/g,(function(e){return diacriticsMap[e]||e}))},parseUrlQuery:function(e){var t,a,r,i,n={},s=e||win.location.href;if("string"==typeof s&&s.length)for(i=(a=(s=s.indexOf("?")>-1?s.replace(/\S*\?/,""):"").split("&").filter((function(e){return""!==e}))).length,t=0;t6&&(r=r.split(", ").map((function(e){return e.replace(",",".")})).join(", ")),i=new win.WebKitCSSMatrix("none"===r?"":r)):a=(i=n.MozTransform||n.OTransform||n.MsTransform||n.msTransform||n.transform||n.getPropertyValue("transform").replace("translate(","matrix(1, 0, 0, 1,")).toString().split(","),"x"===t&&(r=win.WebKitCSSMatrix?i.m41:16===a.length?parseFloat(a[12]):parseFloat(a[4])),"y"===t&&(r=win.WebKitCSSMatrix?i.m42:16===a.length?parseFloat(a[13]):parseFloat(a[5])),r||0},serializeObject:function(e,t){if(void 0===t&&(t=[]),"string"==typeof e)return e;var a,r=[];function i(e){if(t.length>0){for(var a="",r=0;r0?2*n/r.b:r.s,[r.h,r.s,r.b]},colorThemeCSSProperties:function(){for(var e,t,a=[],r=arguments.length;r--;)a[r]=arguments[r];if(1===a.length?(e=a[0],t=Utils.colorHexToRgb(e)):3===a.length&&(t=a,e=Utils.colorRgbToHex.apply(Utils,t)),!t)return{};var i=Utils.colorRgbToHsl.apply(Utils,t),n=[i[0],i[1],Math.max(0,i[2]-.08)],s=[i[0],i[1],Math.max(0,i[2]+.08)],o=Utils.colorRgbToHex.apply(Utils,Utils.colorHslToRgb.apply(Utils,n)),l=Utils.colorRgbToHex.apply(Utils,Utils.colorHslToRgb.apply(Utils,s));return{"--f7-theme-color":e,"--f7-theme-color-rgb":t.join(", "),"--f7-theme-color-shade":o,"--f7-theme-color-tint":l}}},Support={touch:!!("ontouchstart"in win||win.DocumentTouch&&doc instanceof win.DocumentTouch),pointerEvents:!!win.PointerEvent&&"maxTouchPoints"in win.navigator&&win.navigator.maxTouchPoints>=0,observer:"MutationObserver"in win||"WebkitMutationObserver"in win,passiveListener:function(){var e=!1;try{var t=Object.defineProperty({},"passive",{get:function(){e=!0}});win.addEventListener("testPassiveListener",null,t)}catch(e){}return e}(),gestures:"ongesturestart"in win,intersectionObserver:"IntersectionObserver"in win},Device=function(){var e=win.navigator.platform,t=win.navigator.userAgent,a={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:!(!win.cordova&&!win.phonegap),phonegap:!(!win.cordova&&!win.phonegap),electron:!1,nwjs:!1},r=win.screen.width,i=win.screen.height,n=t.match(/(Android);?[\s\/]+([\d.]+)?/),s=t.match(/(iPad).*OS\s([\d_]+)/),o=t.match(/(iPod)(.*OS\s([\d_]+))?/),l=!s&&t.match(/(iPhone\sOS|iOS)\s([\d_]+)/),p=t.indexOf("MSIE ")>=0||t.indexOf("Trident/")>=0,c=t.indexOf("Edge/")>=0,d=t.indexOf("Gecko/")>=0&&t.indexOf("Firefox/")>=0,u="Win32"===e,h=t.toLowerCase().indexOf("electron")>=0,f="undefined"!=typeof nw&&"undefined"!=typeof process&&void 0!==process.versions&&void 0!==process.versions.nw,v="MacIntel"===e;!s&&v&&Support.touch&&["1024x1366","1366x1024","834x1194","1194x834","834x1112","1112x834","768x1024","1024x768","820x1180","1180x820","810x1080","1080x810"].indexOf(r+"x"+i)>=0&&((s=t.match(/(Version)\/([\d.]+)/))||(s=[0,1,"13_0_0"]),v=!1),a.ie=p,a.edge=c,a.firefox=d,n&&!u&&(a.os="android",a.osVersion=n[2],a.android=!0,a.androidChrome=t.toLowerCase().indexOf("chrome")>=0),(s||l||o)&&(a.os="ios",a.ios=!0),l&&!o&&(a.osVersion=l[2].replace(/_/g,"."),a.iphone=!0),s&&(a.osVersion=s[2].replace(/_/g,"."),a.ipad=!0),o&&(a.osVersion=o[3]?o[3].replace(/_/g,"."):null,a.ipod=!0),a.ios&&a.osVersion&&t.indexOf("Version/")>=0&&"10"===a.osVersion.split(".")[0]&&(a.osVersion=t.toLowerCase().split("version/")[1].split(" ")[0]),a.webView=!(!(l||s||o)||!t.match(/.*AppleWebKit(?!.*Safari)/i)&&!win.navigator.standalone)||win.matchMedia&&win.matchMedia("(display-mode: standalone)").matches,a.webview=a.webView,a.standalone=a.webView,a.desktop=!(a.ios||a.android)||h||f,a.desktop&&(a.electron=h,a.nwjs=f,a.macos=v,a.windows=u,a.macos&&(a.os="macos"),a.windows&&(a.os="windows")),a.pixelRatio=win.devicePixelRatio||1;return a.prefersColorScheme=function(){var e;return win.matchMedia&&win.matchMedia("(prefers-color-scheme: light)").matches&&(e="light"),win.matchMedia&&win.matchMedia("(prefers-color-scheme: dark)").matches&&(e="dark"),e},a}(),EventsClass=function(e){void 0===e&&(e=[]);this.eventsParents=e,this.eventsListeners={}};EventsClass.prototype.on=function(e,t,a){var r=this;if("function"!=typeof t)return r;var i=a?"unshift":"push";return e.split(" ").forEach((function(e){r.eventsListeners[e]||(r.eventsListeners[e]=[]),r.eventsListeners[e][i](t)})),r},EventsClass.prototype.once=function(e,t,a){var r=this;if("function"!=typeof t)return r;function i(){for(var a=[],n=arguments.length;n--;)a[n]=arguments[n];r.off(e,i),i.f7proxy&&delete i.f7proxy,t.apply(r,a)}return i.f7proxy=t,r.on(e,i,a)},EventsClass.prototype.off=function(e,t){var a=this;return a.eventsListeners?(e.split(" ").forEach((function(e){void 0===t?a.eventsListeners[e]=[]:a.eventsListeners[e]&&a.eventsListeners[e].forEach((function(r,i){(r===t||r.f7proxy&&r.f7proxy===t)&&a.eventsListeners[e].splice(i,1)}))})),a):a},EventsClass.prototype.emit=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var a,r,i,n,s=this;if(!s.eventsListeners)return s;"string"==typeof e[0]||Array.isArray(e[0])?(a=e[0],r=e.slice(1,e.length),i=s,n=s.eventsParents):(a=e[0].events,r=e[0].data,i=e[0].context||s,n=e[0].local?[]:e[0].parents||s.eventsParents);var o=Array.isArray(a)?a:a.split(" "),l=o.map((function(e){return e.replace("local::","")})),p=o.filter((function(e){return e.indexOf("local::")<0}));return l.forEach((function(e){if(s.eventsListeners&&s.eventsListeners[e]){var t=[];s.eventsListeners[e].forEach((function(e){t.push(e)})),t.forEach((function(e){e.apply(i,r)}))}})),n&&n.length>0&&n.forEach((function(e){e.emit.apply(e,[p].concat(r))})),s};var Framework7Class=function(e){function t(t,a){void 0===t&&(t={}),void 0===a&&(a=[]),e.call(this,a);var r=this;r.params=t,r.params&&r.params.on&&Object.keys(r.params.on).forEach((function(e){r.on(e,r.params.on[e])}))}e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t;var a={components:{configurable:!0}};return t.prototype.useModuleParams=function(e,t){if(e.params){var a={};Object.keys(e.params).forEach((function(e){void 0!==t[e]&&(a[e]=Utils.extend({},t[e]))})),Utils.extend(t,e.params),Object.keys(a).forEach((function(e){Utils.extend(t[e],a[e])}))}},t.prototype.useModulesParams=function(e){var t=this;t.modules&&Object.keys(t.modules).forEach((function(a){var r=t.modules[a];r.params&&Utils.extend(e,r.params)}))},t.prototype.useModule=function(e,t){void 0===e&&(e=""),void 0===t&&(t={});var a=this;if(a.modules){var r="string"==typeof e?a.modules[e]:e;r&&(r.instance&&Object.keys(r.instance).forEach((function(e){var t=r.instance[e];a[e]="function"==typeof t?t.bind(a):t})),r.on&&a.on&&Object.keys(r.on).forEach((function(e){a.on(e,r.on[e])})),r.vnode&&(a.vnodeHooks||(a.vnodeHooks={}),Object.keys(r.vnode).forEach((function(e){Object.keys(r.vnode[e]).forEach((function(t){var i=r.vnode[e][t];a.vnodeHooks[t]||(a.vnodeHooks[t]={}),a.vnodeHooks[t][e]||(a.vnodeHooks[t][e]=[]),a.vnodeHooks[t][e].push(i.bind(a))}))}))),r.create&&r.create.bind(a)(t))}},t.prototype.useModules=function(e){void 0===e&&(e={});var t=this;t.modules&&Object.keys(t.modules).forEach((function(a){var r=e[a]||{};t.useModule(a,r)}))},a.components.set=function(e){this.use&&this.use(e)},t.installModule=function(e){for(var t=[],a=arguments.length-1;a-- >0;)t[a]=arguments[a+1];var r=this;r.prototype.modules||(r.prototype.modules={});var i=e.name||Object.keys(r.prototype.modules).length+"_"+Utils.now();return r.prototype.modules[i]=e,e.proto&&Object.keys(e.proto).forEach((function(t){r.prototype[t]=e.proto[t]})),e.static&&Object.keys(e.static).forEach((function(t){r[t]=e.static[t]})),e.install&&e.install.apply(r,t),r},t.use=function(e){for(var t=[],a=arguments.length-1;a-- >0;)t[a]=arguments[a+1];var r=this;return Array.isArray(e)?(e.forEach((function(e){return r.installModule(e)})),r):r.installModule.apply(r,[e].concat(t))},Object.defineProperties(t,a),t}(EventsClass);function ConstructorMethods(e){void 0===e&&(e={});var t=e.defaultSelector,a=e.constructor,r=e.domProp,i=e.app,n=e.addMethods,s={create:function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];return i?new(Function.prototype.bind.apply(a,[null].concat([i],e))):new(Function.prototype.bind.apply(a,[null].concat(e)))},get:function(e){if(void 0===e&&(e=t),e instanceof a)return e;var i=$(e);return 0!==i.length?i[0][r]:void 0},destroy:function(e){var t=s.get(e);if(t&&t.destroy)return t.destroy()}};return n&&Array.isArray(n)&&n.forEach((function(e){s[e]=function(a){void 0===a&&(a=t);for(var r=[],i=arguments.length-1;i-- >0;)r[i]=arguments[i+1];var n=s.get(a);if(n&&n[e])return n[e].apply(n,r)}})),s}function ModalMethods(e){void 0===e&&(e={});var t=e.defaultSelector,a=e.constructor,r=e.app;return Utils.extend(ConstructorMethods({defaultSelector:t,constructor:a,app:r,domProp:"f7Modal"}),{open:function(e,t,i){var n=$(e);if(n.length>1&&i){var s=$(i).parents(".page");s.length&&n.each((function(e,t){var a=$(t);a.parents(s)[0]===s[0]&&(n=a)}))}if(n.length>1&&(n=n.eq(n.length-1)),n.length){var o=n[0].f7Modal;if(!o){var l=n.dataset();o=new a(r,Object.assign({},{el:n},l))}return o.open(t)}},close:function(e,i,n){void 0===e&&(e=t);var s=$(e);if(s.length){if(s.length>1){var o;if(n){var l=$(n);l.length&&(o=l.parents(s))}s=o&&o.length>0?o:s.eq(s.length-1)}var p=s[0].f7Modal;if(!p){var c=s.dataset();p=new a(r,Object.assign({},{el:s},c))}return p.close(i)}}})}var fetchedModules=[];function loadModule(e){var t=this;return new Promise((function(a,r){var i,n,s,o=t.instance;if(e){if("string"==typeof e){var l=e.match(/([a-z0-9-]*)/i);if(e.indexOf(".")<0&&l&&l[0].length===e.length){if(!o||o&&!o.params.lazyModulesPath)return void r(new Error('Framework7: "lazyModulesPath" app parameter must be specified to fetch module by name'));i=o.params.lazyModulesPath+"/"+e+".js"}else i=e}else"function"==typeof e?s=e:n=e;if(s){var p=s(t,!1);if(!p)return void r(new Error("Framework7: Can't find Framework7 component in specified component function"));if(t.prototype.modules&&t.prototype.modules[p.name])return void a();h(p),a()}if(n){var c=n;if(!c)return void r(new Error("Framework7: Can't find Framework7 component in specified component"));if(t.prototype.modules&&t.prototype.modules[c.name])return void a();h(c),a()}if(i){if(fetchedModules.indexOf(i)>=0)return void a();fetchedModules.push(i);var d=new Promise((function(e,a){t.request.get(i,(function(r){var n="f7_component_loader_callback_"+Utils.id(),s=doc.createElement("script");s.innerHTML="window."+n+" = function (Framework7, Framework7AutoInstallComponent) {return "+r.trim()+"}",$("head").append(s);var o=win[n];delete win[n],$(s).remove();var l=o(t,!1);l?(t.prototype.modules&&t.prototype.modules[l.name]||h(l),e()):a(new Error("Framework7: Can't find Framework7 component in "+i+" file"))}),(function(e,t){a(e,t)}))})),u=new Promise((function(e){t.request.get(i.replace(".js",o.rtl?".rtl.css":".css"),(function(t){var a=doc.createElement("style");a.innerHTML=t,$("head").append(a),e()}),(function(){e()}))}));Promise.all([d,u]).then((function(){a()})).catch((function(e){r(e)}))}}else r(new Error("Framework7: Lazy module must be specified"));function h(e){t.use(e),o&&(o.useModuleParams(e,o.params),o.useModule(e))}}))}var Framework7=function(e){function t(a){if(e.call(this,a),t.instance)throw new Error("Framework7 is already initialized and can't be initialized more than once");var r=Utils.extend({},a),i=this;t.instance=i;var n={version:"1.0.0",id:"io.framework7.testapp",root:"body",theme:"auto",language:win.navigator.language,routes:[],name:"Framework7",lazyModulesPath:null,initOnDeviceReady:!0,init:!0,autoDarkTheme:!1,iosTranslucentBars:!0,iosTranslucentModals:!0,component:void 0,componentUrl:void 0};i.useModulesParams(n),i.params=Utils.extend(n,a);var s=$(i.params.root);Utils.extend(i,{id:i.params.id,name:i.params.name,version:i.params.version,routes:i.params.routes,language:i.params.language,root:s,rtl:"rtl"===s.css("direction"),theme:"auto"===i.params.theme?Device.ios?"ios":Device.desktop&&Device.electron?"aurora":"md":i.params.theme,passedParams:r,online:win.navigator.onLine}),i.root&&i.root[0]&&(i.root[0].f7=i),i.useModules(),i.initData();var o="(prefers-color-scheme: dark)",l="(prefers-color-scheme: light)";return i.mq={},win.matchMedia&&(i.mq.dark=win.matchMedia(o),i.mq.light=win.matchMedia(l)),i.colorSchemeListener=function(e){var t=e.matches,a=e.media;if(t){var r=doc.querySelector("html");a===o?(r.classList.add("theme-dark"),i.darkTheme=!0,i.emit("darkThemeChange",!0)):a===l&&(r.classList.remove("theme-dark"),i.darkTheme=!1,i.emit("darkThemeChange",!1))}},i.params.init&&(Device.cordova&&i.params.initOnDeviceReady?$(doc).on("deviceready",(function(){i.init()})):i.init()),i}e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t;var a={$:{configurable:!0},t7:{configurable:!0}},r={Dom7:{configurable:!0},$:{configurable:!0},Template7:{configurable:!0},Class:{configurable:!0},Events:{configurable:!0}};return t.prototype.initData=function(){var e=this;e.data={},e.params.data&&"function"==typeof e.params.data?Utils.extend(e.data,e.params.data.bind(e)()):e.params.data&&Utils.extend(e.data,e.params.data),e.methods={},e.params.methods&&Object.keys(e.params.methods).forEach((function(t){"function"==typeof e.params.methods[t]?e.methods[t]=e.params.methods[t].bind(e):e.methods[t]=e.params.methods[t]}))},t.prototype.enableAutoDarkTheme=function(){if(win.matchMedia){var e=this,t=doc.querySelector("html");e.mq.dark&&e.mq.light&&(e.mq.dark.addListener(e.colorSchemeListener),e.mq.light.addListener(e.colorSchemeListener)),e.mq.dark&&e.mq.dark.matches?(t.classList.add("theme-dark"),e.darkTheme=!0,e.emit("darkThemeChange",!0)):e.mq.light&&e.mq.light.matches&&(t.classList.remove("theme-dark"),e.darkTheme=!1,e.emit("darkThemeChange",!1))}},t.prototype.disableAutoDarkTheme=function(){if(win.matchMedia){this.mq.dark&&this.mq.dark.removeListener(this.colorSchemeListener),this.mq.light&&this.mq.light.removeListener(this.colorSchemeListener)}},t.prototype.initAppComponent=function(e){var t=this;t.router.componentLoader(t.params.component,t.params.componentUrl,{componentOptions:{el:t.root[0],root:!0}},(function(a){t.root=$(a),t.root[0].f7=t,t.rootComponent=a.f7Component,e&&e()}),(function(){}))},t.prototype._init=function(){var e=this;return e.initialized||(e.root.addClass("framework7-initializing"),e.rtl&&$("html").attr("dir","rtl"),e.params.autoDarkTheme&&e.enableAutoDarkTheme(),win.addEventListener("offline",(function(){e.online=!1,e.emit("offline"),e.emit("connection",!1)})),win.addEventListener("online",(function(){e.online=!0,e.emit("online"),e.emit("connection",!0)})),e.root.addClass("framework7-root"),$("html").removeClass("ios md aurora").addClass(e.theme),e.params.iosTranslucentBars&&"ios"===e.theme&&Device.ios&&$("html").addClass("ios-translucent-bars"),e.params.iosTranslucentModals&&"ios"===e.theme&&Device.ios&&$("html").addClass("ios-translucent-modals"),Utils.nextFrame((function(){e.root.removeClass("framework7-initializing")})),e.initialized=!0,e.emit("init")),e},t.prototype.init=function(){var e=this;e.params.component||e.params.componentUrl?e.initAppComponent((function(){e._init()})):e._init()},t.prototype.loadModule=function(){for(var e=[],a=arguments.length;a--;)e[a]=arguments[a];return t.loadModule.apply(t,e)},t.prototype.loadModules=function(){for(var e=[],a=arguments.length;a--;)e[a]=arguments[a];return t.loadModules.apply(t,e)},t.prototype.getVnodeHooks=function(e,t){return this.vnodeHooks&&this.vnodeHooks[e]&&this.vnodeHooks[e][t]||[]},a.$.get=function(){return $},a.t7.get=function(){return Template7},r.Dom7.get=function(){return $},r.$.get=function(){return $},r.Template7.get=function(){return Template7},r.Class.get=function(){return e},r.Events.get=function(){return EventsClass},Object.defineProperties(t.prototype,a),Object.defineProperties(t,r),t}(Framework7Class);Framework7.ModalMethods=ModalMethods,Framework7.ConstructorMethods=ConstructorMethods,Framework7.loadModule=loadModule,Framework7.loadModules=function(e){return Promise.all(e.map((function(e){return Framework7.loadModule(e)})))};var globals={},jsonpRequests=0;function Request(e){var t=Utils.extend({},globals);"beforeCreate beforeOpen beforeSend error complete success statusCode".split(" ").forEach((function(e){delete t[e]}));var a=Utils.extend({url:win.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},t),r=Utils.extend({},a,e);function i(e){for(var t,a,i=[],n=arguments.length-1;n-- >0;)i[n]=arguments[n+1];return globals[e]&&(t=globals[e].apply(globals,i)),r[e]&&(a=r[e].apply(r,i)),"boolean"!=typeof t&&(t=!0),"boolean"!=typeof a&&(a=!0),t&&a}if(!1!==i("beforeCreate",r)){r.type&&(r.method=r.type);var n,s=r.url.indexOf("?")>=0?"&":"?",o=r.method.toUpperCase();if(("GET"===o||"HEAD"===o||"OPTIONS"===o||"DELETE"===o)&&r.data)(n="string"==typeof r.data?r.data.indexOf("?")>=0?r.data.split("?")[1]:r.data:Utils.serializeObject(r.data)).length&&(r.url+=s+n,"?"===s&&(s="&"));if("json"===r.dataType&&r.url.indexOf("callback=")>=0){var l,p="f7jsonp_"+(Date.now()+(jsonpRequests+=1)),c=r.url.split("callback="),d=c[0]+"callback="+p;if(c[1].indexOf("&")>=0){var u=c[1].split("&").filter((function(e){return e.indexOf("=")>0})).join("&");u.length>0&&(d+="&"+u)}var h=doc.createElement("script");return h.type="text/javascript",h.onerror=function(){clearTimeout(l),i("error",null,"scripterror","scripterror"),i("complete",null,"scripterror")},h.src=d,win[p]=function(e){clearTimeout(l),i("success",e),h.parentNode.removeChild(h),h=null,delete win[p]},doc.querySelector("head").appendChild(h),void(r.timeout>0&&(l=setTimeout((function(){h.parentNode.removeChild(h),h=null,i("error",null,"timeout","timeout")}),r.timeout)))}"GET"!==o&&"HEAD"!==o&&"OPTIONS"!==o&&"DELETE"!==o||!1===r.cache&&(r.url+=s+"_nocache"+Date.now());var f=new XMLHttpRequest;if(f.requestUrl=r.url,f.requestParameters=r,!1===i("beforeOpen",f,r))return f;f.open(o,r.url,r.async,r.user,r.password);var v=null;if(("POST"===o||"PUT"===o||"PATCH"===o)&&r.data)if(r.processData)if([ArrayBuffer,Blob,Document,FormData].indexOf(r.data.constructor)>=0)v=r.data;else{var m="---------------------------"+Date.now().toString(16);"multipart/form-data"===r.contentType?f.setRequestHeader("Content-Type","multipart/form-data; boundary="+m):f.setRequestHeader("Content-Type",r.contentType),v="";var g=Utils.serializeObject(r.data);if("multipart/form-data"===r.contentType){g=g.split("&");for(var b=[],y=0;y=200&&f.status<300||0===f.status)if("json"===r.dataType){var t;try{e=JSON.parse(f.responseText)}catch(e){t=!0}t?i("error",f,"parseerror","parseerror"):i("success",e,f.status,f)}else i("success",e="text"===f.responseType||""===f.responseType?f.responseText:f.response,f.status,f);else i("error",f,f.status,f.statusText);r.statusCode&&(globals.statusCode&&globals.statusCode[f.status]&&globals.statusCode[f.status](f),r.statusCode[f.status]&&r.statusCode[f.status](f)),i("complete",f,f.status)},f.onerror=function(){i("error",f,f.status,f.status),i("complete",f,"error")},r.timeout>0&&(f.timeout=r.timeout,f.ontimeout=function(){i("error",f,"timeout","timeout"),i("complete",f,"timeout")}),!1===i("beforeSend",f,r)?f:(f.send(v),f)}}function RequestShortcut(e){for(var t,a,r=[],i=arguments.length-1;i-- >0;)r[i]=arguments[i+1];var n=[],s=n[0],o=n[1],l=n[2],p=n[3],c=n[4];"function"==typeof r[1]?(s=(t=r)[0],l=t[1],p=t[2],c=t[3]):(s=(a=r)[0],o=a[1],l=a[2],p=a[3],c=a[4]),[l,p].forEach((function(e){"string"==typeof e&&(c=e,e===l?l=void 0:p=void 0)}));var d={url:s,method:"post"===e||"postJSON"===e?"POST":"GET",data:o,success:l,error:p,dataType:c=c||("json"===e||"postJSON"===e?"json":void 0)};return"postJSON"===e&&Utils.extend(d,{contentType:"application/json",processData:!1,crossDomain:!0,data:"string"==typeof o?o:JSON.stringify(o)}),Request(d)}function RequestShortcutPromise(e){for(var t=[],a=arguments.length-1;a-- >0;)t[a]=arguments[a+1];var r=t[0],i=t[1],n=t[2];return new Promise((function(t,a){RequestShortcut(e,r,i,(function(e,a,r){t({data:e,status:a,xhr:r})}),(function(e,t,r){a({xhr:e,status:t,message:r})}),n)}))}Object.assign(Request,{get:function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];return RequestShortcut.apply(void 0,["get"].concat(e))},post:function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];return RequestShortcut.apply(void 0,["post"].concat(e))},json:function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];return RequestShortcut.apply(void 0,["json"].concat(e))},getJSON:function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];return RequestShortcut.apply(void 0,["json"].concat(e))},postJSON:function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];return RequestShortcut.apply(void 0,["postJSON"].concat(e))}}),Request.promise=function(e){return new Promise((function(t,a){Request(Object.assign(e,{success:function(e,a,r){t({data:e,status:a,xhr:r})},error:function(e,t,r){a({xhr:e,status:t,message:r})}}))}))},Object.assign(Request.promise,{get:function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];return RequestShortcutPromise.apply(void 0,["get"].concat(e))},post:function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];return RequestShortcutPromise.apply(void 0,["post"].concat(e))},json:function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];return RequestShortcutPromise.apply(void 0,["json"].concat(e))},getJSON:function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];return RequestShortcutPromise.apply(void 0,["json"].concat(e))},postJSON:function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];return RequestShortcutPromise.apply(void 0,["postJSON"].concat(e))}}),Request.setup=function(e){e.type&&!e.method&&Utils.extend(e,{method:e.type}),Utils.extend(globals,e)};var DeviceModule={name:"device",proto:{device:Device},static:{device:Device},on:{init:function(){var e=[],t=doc.querySelector("html"),a=doc.querySelector('meta[name="apple-mobile-web-app-status-bar-style"]');t&&(Device.standalone&&Device.ios&&a&&"black-translucent"===a.content&&e.push("device-full-viewport"),e.push("device-pixel-ratio-"+Math.floor(Device.pixelRatio)),Device.os&&!Device.desktop?e.push("device-"+Device.os):Device.desktop&&(e.push("device-desktop"),Device.os&&e.push("device-"+Device.os)),(Device.cordova||Device.phonegap)&&e.push("device-cordova"),e.forEach((function(e){t.classList.add(e)})))}}},SupportModule={name:"support",proto:{support:Support},static:{support:Support}},UtilsModule={name:"utils",proto:{utils:Utils},static:{utils:Utils}},ResizeModule={name:"resize",instance:{getSize:function(){if(!this.root[0])return{width:0,height:0,left:0,top:0};var e=this.root.offset(),t=[this.root[0].offsetWidth,this.root[0].offsetHeight,e.left,e.top],a=t[0],r=t[1],i=t[2],n=t[3];return this.width=a,this.height=r,this.left=i,this.top=n,{width:a,height:r,left:i,top:n}}},on:{init:function(){var e=this;e.getSize(),win.addEventListener("resize",(function(){e.emit("resize")}),!1),win.addEventListener("orientationchange",(function(){e.emit("orientationchange")}))},orientationchange:function(){this.device.ipad&&(doc.body.scrollLeft=0,setTimeout((function(){doc.body.scrollLeft=0}),0))},resize:function(){this.getSize()}}},RequestModule={name:"request",proto:{request:Request},static:{request:Request}};function initTouch(){var e,t,a,r,i,n,s,o,l,p,c,d,u=this,h=u.params.touch,f=h[u.theme+"TouchRipple"];function v(e){var t,a=$(e),r=a.parents(h.activeStateElements);if(a.closest(".no-active-state").length)return null;if(a.is(h.activeStateElements)&&(t=a),r.length>0&&(t=t?t.add(r):r),t&&t.length>1){for(var i,n=[],s=0;s0}function g(){o&&o.addClass("active-state")}function b(){o&&(o.removeClass("active-state"),o=null)}function y(e,t,a){e&&(p=u.touchRipple.create(e,t,a))}function w(){p&&(p.remove(),p=void 0,c=void 0)}function C(a){(c=function(e){var t=h.touchRippleElements,a=$(e);if(a.is(t))return!a.hasClass("no-ripple")&&a;if(a.parents(t).length>0){var r=a.parents(t).eq(0);return!r.hasClass("no-ripple")&&r}return!1}(a))&&0!==c.length?m(c)?(clearTimeout(d),d=setTimeout((function(){w(),y(c,e,t)}),80)):(w(),y(c,e,t)):c=void 0}function x(){clearTimeout(d),w()}function k(){p||!c||r?w():(clearTimeout(d),y(c,e,t),setTimeout(w,0))}function E(){$(".active-state").removeClass("active-state"),f&&k()}function T(e,t){u.emit({events:e,data:[t]})}function S(e){T("touchstart touchstart:active",e)}function M(e){T("touchmove touchmove:active",e)}function P(e){T("touchend touchend:active",e)}function O(e){T("touchstart:passive",e)}function I(e){T("touchmove:passive",e)}function D(e){T("touchend:passive",e)}function B(e){T(e.type+" "+e.type+":active",e)}function R(e){T(e.type+":passive",e)}Device.ios&&Device.webView&&win.addEventListener("touchstart",(function(){}));var z=!!Support.passiveListener&&{passive:!0},L=!Support.passiveListener||{passive:!0,capture:!0},H=!!Support.passiveListener&&{passive:!1},A=!Support.passiveListener||{passive:!1,capture:!0};doc.addEventListener("click",(function(e){T("click",e)}),!0),Support.passiveListener?(doc.addEventListener(u.touchEvents.start,S,A),doc.addEventListener(u.touchEvents.move,M,H),doc.addEventListener(u.touchEvents.end,P,H),doc.addEventListener(u.touchEvents.start,O,L),doc.addEventListener(u.touchEvents.move,I,z),doc.addEventListener(u.touchEvents.end,D,z),Support.touch&&Support.gestures&&(doc.addEventListener("gesturestart",B,H),doc.addEventListener("gesturechange",B,H),doc.addEventListener("gestureend",B,H),doc.addEventListener("gesturestart",R,z),doc.addEventListener("gesturechange",R,z),doc.addEventListener("gestureend",R,z))):(doc.addEventListener(u.touchEvents.start,(function(e){S(e),O(e)}),!0),doc.addEventListener(u.touchEvents.move,(function(e){M(e),I(e)}),!1),doc.addEventListener(u.touchEvents.end,(function(e){P(e),D(e)}),!1),Support.touch&&Support.gestures&&(doc.addEventListener("gesturestart",(function(e){B(e),R(e)}),!1),doc.addEventListener("gesturechange",(function(e){B(e),R(e)}),!1),doc.addEventListener("gestureend",(function(e){B(e),R(e)}),!1))),Support.touch?(u.on("click",(function(e){var t=e&&e.detail&&"f7Overswipe"===e.detail,r=s;return a&&e.target!==a&&(r=!t),h.tapHold&&h.tapHoldPreventClicks&&i&&(r=!0),r&&(e.stopImmediatePropagation(),e.stopPropagation(),e.preventDefault()),h.tapHold&&(n=setTimeout((function(){i=!1}),Device.ios||Device.androidChrome?100:400)),s=!1,a=null,!r})),u.on("touchstart",(function(p){return r=!1,i=!1,s=!1,p.targetTouches.length>1?(o&&b(),!0):(p.touches.length>1&&o&&b(),h.tapHold&&(n&&clearTimeout(n),n=setTimeout((function(){p&&p.touches&&p.touches.length>1||(i=!0,p.preventDefault(),s=!0,$(p.target).trigger("taphold",p),u.emit("taphold",p))}),h.tapHoldDelay)),a=p.target,e=p.targetTouches[0].pageX,t=p.targetTouches[0].pageY,h.activeState&&((o=v(a))&&!m(o)?g():o&&(l=setTimeout(g,80))),f&&C(a),!0)})),u.on("touchmove",(function(a){var i,o;if("touchmove"===a.type&&(i=a.targetTouches[0],o=h.touchClicksDistanceThreshold),o&&i){var p=i.pageX,c=i.pageY;(Math.abs(p-e)>o||Math.abs(c-t)>o)&&(r=!0)}else r=!0;r&&(s=!0,h.tapHold&&clearTimeout(n),h.activeState&&(clearTimeout(l),b()),f&&x())})),u.on("touchend",(function(e){return clearTimeout(l),clearTimeout(n),doc.activeElement===e.target?(h.activeState&&b(),f&&k(),!0):(h.activeState&&(g(),setTimeout(b,0)),f&&k(),!(h.tapHoldPreventClicks&&i||s)||(e.cancelable&&e.preventDefault(),s=!0,!1))})),doc.addEventListener("touchcancel",(function(){a=null,clearTimeout(l),clearTimeout(n),h.activeState&&b(),f&&k()}),{passive:!0})):h.activeState&&(u.on("touchstart",(function(a){var r=v(a.target);r&&(r.addClass("active-state"),"which"in a&&3===a.which&&setTimeout((function(){$(".active-state").removeClass("active-state")}),0)),f&&(e=a.pageX,t=a.pageY,C(a.target,a.pageX,a.pageY))})),u.on("touchmove",(function(){h.activeStateOnMouseMove||$(".active-state").removeClass("active-state"),f&&x()})),u.on("touchend",E),doc.addEventListener("pointercancel",E,{passive:!0})),doc.addEventListener("contextmenu",(function(e){h.disableContextMenu&&(Device.ios||Device.android||Device.cordova)&&e.preventDefault(),f&&(o&&b(),k())}))}var TouchModule={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"}},instance:{touchEvents:{start:Support.touch?"touchstart":Support.pointerEvents?"pointerdown":"mousedown",move:Support.touch?"touchmove":Support.pointerEvents?"pointermove":"mousemove",end:Support.touch?"touchend":Support.pointerEvents?"pointerup":"mouseup"}},on:{init:initTouch}};function lexer(e){for(var t=[],a=0;a=48&&l<=57||l>=65&&l<=90||l>=97&&l<=122||95===l))break;s+=e[o++]}if(!s)throw new TypeError("Missing parameter name at "+a);t.push({type:"NAME",index:a,value:s}),a=o}else t.push({type:"CLOSE",index:a,value:e[a++]});else t.push({type:"OPEN",index:a,value:e[a++]});else t.push({type:"ESCAPED_CHAR",index:a++,value:e[a++]});else t.push({type:"MODIFIER",index:a,value:e[a++]})}return t.push({type:"END",index:a,value:""}),t}function parse(e,t){void 0===t&&(t={});for(var a=lexer(e),r=t.prefixes,i=void 0===r?"./":r,n="[^"+escapeString(t.delimiter||"/#?")+"]+?",s=[],o=0,l=0,p="",c=function(e){if(l-1:void 0===w;i||(h+="(?:"+u+"(?="+d+"))?"),C||(h+="(?="+u+"|"+d+")")}return new RegExp(h,flags(a))}function pathToRegexp(e,t,a){return e instanceof RegExp?regexpToRegexp(e,t):Array.isArray(e)?arrayToRegexp(e,t,a):stringToRegexp(e,t,a)}var History={queue:[],clearQueue:function(){0!==History.queue.length&&History.queue.shift()()},routerQueue:[],clearRouterQueue:function(){if(0!==History.routerQueue.length){var e=History.routerQueue.pop(),t=e.router,a=e.stateUrl,r=e.action,i=t.params.animate;!1===t.params.pushStateAnimate&&(i=!1),"back"===r&&t.back({animate:i,pushState:!1}),"load"===r&&t.navigate(a,{animate:i,pushState:!1})}},handle:function(e){if(!History.blockPopstate){var t=e.state;History.previousState=History.state,History.state=t,History.allowChange=!0,History.clearQueue(),(t=History.state)||(t={}),this.views.forEach((function(e){var a=e.router,r=t[e.id];if(!r&&e.params.pushState&&(r={url:e.router.history[0]}),r){var i=r.url||void 0,n=a.params.animate;!1===a.params.pushStateAnimate&&(n=!1),i!==a.url&&(a.history.indexOf(i)>=0?a.allowPageChange?a.back({animate:n,pushState:!1}):History.routerQueue.push({action:"back",router:a}):a.allowPageChange?a.navigate(i,{animate:n,pushState:!1}):History.routerQueue.unshift({action:"load",stateUrl:i,router:a}))}}))}},initViewState:function(e,t){var a,r=Utils.extend({},History.state||{},((a={})[e]=t,a));History.state=r,win.history.replaceState(r,"")},push:function(e,t,a){var r;if(History.allowChange){History.previousState=History.state;var i=Utils.extend({},History.previousState||{},((r={})[e]=t,r));History.state=i,win.history.pushState(i,"",a)}else History.queue.push((function(){History.push(e,t,a)}))},replace:function(e,t,a){var r;if(History.allowChange){History.previousState=History.state;var i=Utils.extend({},History.previousState||{},((r={})[e]=t,r));History.state=i,win.history.replaceState(i,"",a)}else History.queue.push((function(){History.replace(e,t,a)}))},go:function(e){History.allowChange=!1,win.history.go(e)},back:function(){History.allowChange=!1,win.history.back()},allowChange:!0,previousState:{},state:win.history.state,blockPopstate:!0,init:function(e){$(win).on("load",(function(){setTimeout((function(){History.blockPopstate=!1}),0)})),doc.readyState&&"complete"===doc.readyState&&(History.blockPopstate=!1),$(win).on("popstate",History.handle.bind(e))}};function SwipeBack(e){var t,a,r,i,n,s,o,l,p,c=e,d=c.$el,u=c.$navbarsEl,h=c.app,f=c.params,v=!1,m=!1,g={},b=[],y=[],w=!0,C=[],x=[],k=f[h.theme+"SwipeBackAnimateShadow"],E=f[h.theme+"SwipeBackAnimateOpacity"],T=f[h.theme+"SwipeBackActiveArea"],S=f[h.theme+"SwipeBackThreshold"],M=h.rtl?"right center":"left center",P=h.rtl?"calc(100% - var(--f7-navbar-large-title-padding-left) - var(--f7-safe-area-left)) center":"calc(var(--f7-navbar-large-title-padding-left) + var(--f7-safe-area-left)) center";function O(e){void 0===e&&(e={});var t=e.progress,a=e.reset,r=e.transition,i=e.reflow,n=["overflow","transform","transform-origin","opacity"];if(!0===r||!1===r)for(var s=0;s0||$(e.target).closest(".page-master, .page-master-detail").length>0&&f.masterDetailBreakpoint>0&&h.width>=f.masterDetailBreakpoint||(m=!1,v=!0,t=void 0,g.x="touchstart"===e.type?e.targetTouches[0].pageX:e.pageX,g.y="touchstart"===e.type?e.targetTouches[0].pageY:e.pageY,i=Utils.now(),n=c.dynamicNavbar)}function D(e){if(v){var i="touchmove"===e.type?e.targetTouches[0].pageX:e.pageX,p="touchmove"===e.type?e.targetTouches[0].pageY:e.pageY;if(void 0===t&&(t=!!(t||Math.abs(p-g.y)>Math.abs(i-g.x))||ig.x&&h.rtl),t||e.f7PreventSwipeBack||h.preventSwipeBack)v=!1;else{if(!m){var w=!1,I=$(e.target),D=I.closest(".swipeout");D.length>0&&(!h.rtl&&D.find(".swipeout-actions-left").length>0&&(w=!0),h.rtl&&D.find(".swipeout-actions-right").length>0&&(w=!0)),((b=I.closest(".page")).hasClass("no-swipeback")||I.closest(".no-swipeback, .card-opened").length>0)&&(w=!0),(y=d.find(".page-previous:not(.stacked)")).length>1&&(y=y.eq(y.length-1));g.x,d.offset().left;if(a=d.width(),(h.rtl?g.xT)&&(w=!0),0!==y.length&&0!==b.length||(w=!0),w)return void(v=!1);k&&0===(s=b.find(".page-shadow-effect")).length&&(s=$('
                '),b.append(s)),E&&0===(o=y.find(".page-opacity-effect")).length&&(o=$('
                '),y.append(o)),n&&(C=u.find(".navbar-current:not(.stacked)"),(x=u.find(".navbar-previous:not(.stacked)")).length>1&&(x=x.eq(x.length-1)),l=function(){var e,t,a=[],r=h.rtl?-1:1,i=C.hasClass("navbar-transparent")&&!C.hasClass("navbar-large")&&!C.hasClass("navbar-transparent-visible"),n=C.hasClass("navbar-large"),s=C.hasClass("navbar-large-collapsed"),o=C.hasClass("navbar-large-transparent")||C.hasClass("navbar-large")&&C.hasClass("navbar-transparent"),l=x.hasClass("navbar-transparent")&&!x.hasClass("navbar-large")&&!x.hasClass("navbar-transparent-visible"),p=x.hasClass("navbar-large"),c=x.hasClass("navbar-large-collapsed"),d=x.hasClass("navbar-large-transparent")||x.hasClass("navbar-large")&&x.hasClass("navbar-transparent"),u=n&&!s,v=p&&!c,m=C.find(".left, .title, .right, .subnavbar, .fading, .title-large, .navbar-bg"),g=x.find(".left, .title, .right, .subnavbar, .fading, .title-large, .navbar-bg");return f.iosAnimateNavbarBackIcon&&(e=C.hasClass("sliding")||C.find(".navbar-inner.sliding").length?C.find(".left").find(".back .icon + span").eq(0):C.find(".left.sliding").find(".back .icon + span").eq(0),t=x.hasClass("sliding")||x.find(".navbar-inner.sliding").length?x.find(".left").find(".back .icon + span").eq(0):x.find(".left.sliding").find(".back .icon + span").eq(0),e.length&&g.each((function(t,a){$(a).hasClass("title")&&(a.f7NavbarLeftOffset+=e.prev(".icon")[0].offsetWidth)}))),m.each((function(t,l){var p=$(l),c=p.hasClass("subnavbar"),d=p.hasClass("left"),h=p.hasClass("title"),m=p.hasClass("navbar-bg");if((!h&&!m||!i)&&(u||!p.hasClass(".title-large"))){var g={el:l};if(u){if(h)return;if(p.hasClass("title-large"))return a.indexOf(g)<0&&a.push(g),g.overflow="visible",void p.find(".title-large-text").each((function(e,t){a.push({el:t,transform:function(e){return"translateX("+100*e*r+"%)"}})}))}if(v&&(u||p.hasClass("title-large")&&(a.indexOf(g)<0&&a.push(g),g.opacity=0),d))return a.indexOf(g)<0&&a.push(g),g.opacity=function(e){return 1-Math.pow(e,.33)},void p.find(".back span").each((function(e,t){a.push({el:t,"transform-origin":M,transform:function(e){return"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 a.indexOf(g)<0&&a.push(g),u||v||(s?(o&&(g.className="ios-swipeback-navbar-bg-large"),g.transform=function(e){return"translateX("+100*e*r+"%) translateY(calc(-1 * var(--f7-navbar-large-title-height)))"}):g.transform=function(e){return"translateX("+100*e*r+"%)"}),!u&&v&&(g.className="ios-swipeback-navbar-bg-large",g.transform=function(e){return"translateX("+100*e*r+"%) translateY(calc(-1 * "+(1-e)+" * var(--f7-navbar-large-title-height)))"}),u&&v&&(g.transform=function(e){return"translateX("+100*e*r+"%)"}),void(u&&!v&&(g.transform=function(e){return"translateX("+100*e*r+"%) translateY(calc(-"+e+" * var(--f7-navbar-large-title-height)))"}));if(!p.hasClass("title-large")){var b=p.hasClass("sliding")||p.parents(".navbar-inner.sliding").length;if(a.indexOf(g)<0&&a.push(g),(!c||c&&!b)&&(g.opacity=function(e){return 1-Math.pow(e,.33)}),b){var y=g;if(d&&e.length&&f.iosAnimateNavbarBackIcon){var w={el:e[0]};y=w,a.push(w)}y.transform=function(e){var t=e*y.el.f7NavbarRightOffset;return 1===Device.pixelRatio&&(t=Math.round(t)),c&&n?"translate3d("+t+"px, calc(-1 * var(--f7-navbar-large-collapse-progress) * var(--f7-navbar-large-title-height)), 0)":"translate3d("+t+"px,0,0)"}}}}})),g.each((function(e,i){var n=$(i),s=n.hasClass("subnavbar"),o=n.hasClass("left"),h=n.hasClass("title"),m=n.hasClass("navbar-bg");if(!h&&!m||!l){var g={el:i};if(v){if(h)return;if(a.indexOf(g)<0&&a.push(g),n.hasClass("title-large"))return g.opacity=1,g.overflow="visible",void n.find(".title-large-text").each((function(e,t){a.push({el:t,"transform-origin":P,opacity:function(e){return Math.pow(e,3)},transform:function(e){return"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 a.indexOf(g)<0&&a.push(g),u||v||(c?(d&&(g.className="ios-swipeback-navbar-bg-large"),g.transform=function(e){return"translateX("+(100*e-100)*r+"%) translateY(calc(-1 * var(--f7-navbar-large-title-height)))"}):g.transform=function(e){return"translateX("+(100*e-100)*r+"%)"}),!u&&v&&(g.transform=function(e){return"translateX("+(100*e-100)*r+"%) translateY(calc(-1 * "+(1-e)+" * var(--f7-navbar-large-title-height)))"}),u&&!v&&(g.className="ios-swipeback-navbar-bg-large",g.transform=function(e){return"translateX("+(100*e-100)*r+"%) translateY(calc(-"+e+" * var(--f7-navbar-large-title-height)))"}),void(u&&v&&(g.transform=function(e){return"translateX("+(100*e-100)*r+"%)"}));if(!n.hasClass("title-large")){var b=n.hasClass("sliding")||x.children(".navbar-inner.sliding").length;if(a.indexOf(g)<0&&a.push(g),(!s||s&&!b)&&(g.opacity=function(e){return Math.pow(e,3)}),b){var y=g;if(o&&t.length&&f.iosAnimateNavbarBackIcon){var w={el:t[0]};y=w,a.push(w)}y.transform=function(e){var t=y.el.f7NavbarLeftOffset*(1-e);return 1===Device.pixelRatio&&(t=Math.round(t)),s&&p?"translate3d("+t+"px, calc(-1 * var(--f7-navbar-large-collapse-progress) * var(--f7-navbar-large-title-height)), 0)":"translate3d("+t+"px,0,0)"}}}}})),a}()),$(".sheet.modal-in").length>0&&h.sheet&&h.sheet.close($(".sheet.modal-in"))}e.f7PreventSwipePanel=!0,m=!0,h.preventSwipePanelBySwipeBack=!0,e.preventDefault();var B=h.rtl?-1:1;(r=(i-g.x-S)*B)<0&&(r=0);var R=Math.min(Math.max(r/a,0),1),z={percentage:R,progress:R,currentPageEl:b[0],previousPageEl:y[0],currentNavbarEl:C[0],previousNavbarEl:x[0]};d.trigger("swipeback:move",z),c.emit("swipebackMove",z);var L=r*B,H=(r/5-a/5)*B;h.rtl?(L=Math.max(L,-a),H=Math.max(H,0)):(L=Math.min(L,a),H=Math.min(H,0)),1===Device.pixelRatio&&(L=Math.round(L),H=Math.round(H)),c.swipeBackActive=!0,$([b[0],y[0]]).addClass("page-swipeback-active"),b.transform("translate3d("+L+"px,0,0)"),k&&(s[0].style.opacity=1-1*R),"ios"===h.theme&&y.transform("translate3d("+H+"px,0,0)"),E&&(o[0].style.opacity=1-1*R),n&&O({progress:R})}}}function B(){if(h.preventSwipePanelBySwipeBack=!1,!v||!m)return v=!1,void(m=!1);v=!1,m=!1,c.swipeBackActive=!1;var e=$([b[0],y[0]]);if(e.removeClass("page-swipeback-active"),0===r)return e.transform(""),s&&s.length>0&&s.remove(),o&&o.length>0&&o.remove(),void(n&&O({reset:!0}));var t=Utils.now()-i,l=!1;(t<300&&r>10||t>=300&&r>a/2)&&(b.removeClass("page-current").addClass("page-next"+("ios"!==h.theme?" page-next-on-right":"")),y.removeClass("page-previous").addClass("page-current").removeAttr("aria-hidden"),s&&(s[0].style.opacity=""),o&&(o[0].style.opacity=""),n&&(c.setNavbarPosition(C,"next"),c.setNavbarPosition(x,"current",!1)),l=!0),e.addClass("page-transitioning page-transitioning-swipeback"),l||(b[0]._clientLeft=b[0].clientLeft),e.transform(""),n&&O({progress:l?1:0,transition:!0,reflow:!l}),w=!1,c.allowPageChange=!1;var p={currentPageEl:b[0],previousPageEl:y[0],currentNavbarEl:C[0],previousNavbarEl:x[0]};l?(c.currentRoute=y[0].f7Page.route,c.currentPage=y[0],c.pageCallback("beforeOut",b,C,"current","next",{route:b[0].f7Page.route,swipeBack:!0}),c.pageCallback("beforeIn",y,x,"previous","current",{route:y[0].f7Page.route,swipeBack:!0},b[0]),d.trigger("swipeback:beforechange",p),c.emit("swipebackBeforeChange",p)):(d.trigger("swipeback:beforereset",p),c.emit("swipebackBeforeReset",p)),b.transitionEnd((function(){e.removeClass("page-transitioning page-transitioning-swipeback"),n&&O({reset:!0,transition:!1}),w=!0,c.allowPageChange=!0,l?(1===c.history.length&&c.history.unshift(c.url),c.history.pop(),c.saveHistory(),f.pushState&&History.back(),c.pageCallback("afterOut",b,C,"current","next",{route:b[0].f7Page.route,swipeBack:!0}),c.pageCallback("afterIn",y,x,"previous","current",{route:y[0].f7Page.route,swipeBack:!0}),f.stackPages&&c.initialPages.indexOf(b[0])>=0?(b.addClass("stacked"),n&&C.addClass("stacked")):(c.pageCallback("beforeRemove",b,C,"next",{swipeBack:!0}),c.removePage(b),n&&c.removeNavbar(C)),d.trigger("swipeback:afterchange",p),c.emit("swipebackAfterChange",p),c.emit("routeChanged",c.currentRoute,c.previousRoute,c),f.preloadPreviousPage&&c.back(c.history[c.history.length-2],{preload:!0})):(d.trigger("swipeback:afterreset",p),c.emit("swipebackAfterReset",p)),s&&s.length>0&&s.remove(),o&&o.length>0&&o.remove()}))}p=!("touchstart"!==h.touchEvents.start||!Support.passiveListener)&&{passive:!0,capture:!1},d.on(h.touchEvents.start,I,p),h.on("touchmove:active",D),h.on("touchend:passive",B),c.on("routerDestroy",(function(){var e=!("touchstart"!==h.touchEvents.start||!Support.passiveListener)&&{passive:!0,capture:!1};d.off(h.touchEvents.start,I,e),h.off("touchmove:active",D),h.off("touchend:passive",B)}))}function redirect(e,t,a){var r=this,i=t.route.redirect;if(a.initial&&r.params.pushState&&(a.replaceState=!0,a.history=!0),"function"==typeof i){r.allowPageChange=!1;var n=i.call(r,t,(function(t,i){void 0===i&&(i={}),r.allowPageChange=!0,r[e](t,Utils.extend({},a,i))}),(function(){r.allowPageChange=!0}));return n&&"string"==typeof n?(r.allowPageChange=!0,r[e](n,a)):r}return r[e](i,a)}function processQueue(e,t,a,r,i,n,s){var o=[];Array.isArray(a)?o.push.apply(o,a):a&&"function"==typeof a&&o.push(a),t&&(Array.isArray(t)?o.push.apply(o,t):o.push(t)),function t(){0!==o.length?o.shift().call(e,r,i,(function(){t()}),(function(){s()})):n()}()}function processRouteQueue(e,t,a,r){var i=this;function n(){e&&e.route&&(i.params.routesBeforeEnter||e.route.beforeEnter)?(i.allowPageChange=!1,processQueue(i,i.params.routesBeforeEnter,e.route.beforeEnter,e,t,(function(){i.allowPageChange=!0,a()}),(function(){r()}))):a()}t&&t.route&&(i.params.routesBeforeLeave||t.route.beforeLeave)?(i.allowPageChange=!1,processQueue(i,i.params.routesBeforeLeave,t.route.beforeLeave,e,t,(function(){i.allowPageChange=!0,n()}),(function(){r()}))):n()}function appRouterCheck(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 asyncComponent(e,t,a,r){function i(e){e.then((function(e){a({component:e.default||e._default||e})})).catch((function(e){throw r(),new Error(e)}))}if(t instanceof Promise)i(t);else{var n=t.call(e);n instanceof Promise?i(n):a({component:n})}}function refreshPage(){return appRouterCheck(this,"refreshPage"),this.navigate(this.currentRoute.url,{ignoreCache:!0,reloadCurrent:!0})}function forward(e,t){void 0===t&&(t={});var a,r,i,n=this,s=$(e),o=n.app,l=n.view,p=Utils.extend(!1,{animate:n.params.animate,pushState:!0,replaceState:!1,history:!0,reloadCurrent:n.params.reloadPages,reloadPrevious:!1,reloadAll:!1,clearPreviousHistory:!1,reloadDetail:n.params.reloadDetail,on:{}},t),c=n.params.masterDetailBreakpoint>0,d=c&&p.route&&p.route.route&&!0===p.route.route.master,u=n.currentRoute.modal;if(u||"popup popover sheet loginScreen actions customModal panel".split(" ").forEach((function(e){n.currentRoute&&n.currentRoute.route&&n.currentRoute.route[e]&&(u=!0,i=e)})),u){var h=n.currentRoute.modal||n.currentRoute.route.modalInstance||o[i].get(),f=n.history[n.history.length-2],v=n.findMatchingRoute(f);!v&&f&&(v={url:f,path:f.split("?")[0],query:Utils.parseUrlQuery(f),route:{path:f.split("?")[0],url:f}}),n.modalRemove(h)}var m,g,b,y,w=n.dynamicNavbar,C=n.$el,x=s,k=p.reloadPrevious||p.reloadCurrent||p.reloadAll;if(n.allowPageChange=!1,0===x.length)return n.allowPageChange=!0,n;x.length&&n.removeThemeElements(x),w&&(b=x.children(".navbar"),g=n.$navbarsEl,0===b.length&&x[0]&&x[0].f7Page&&(b=x[0].f7Page.$navbarEl)),p.route&&p.route.route&&p.route.route.keepAlive&&!p.route.route.keepAliveData&&(p.route.route.keepAliveData={pageEl:s[0]});var E,T,S,M,P=C.children(".page:not(.stacked)").filter((function(e,t){return t!==x[0]}));if(w&&(E=g.children(".navbar:not(.stacked)").filter((function(e,t){return t!==b[0]}))),p.reloadPrevious&&P.length<2)return n.allowPageChange=!0,n;if(c&&!p.reloadAll){for(var O=0;O=n.params.masterDetailBreakpoint&&a}T&&(M=!r||S||p.reloadAll||p.reloadCurrent);var D="next";if(p.reloadCurrent||p.reloadAll||S?D="current":p.reloadPrevious&&(D="previous"),x.removeClass("page-previous page-current page-next").addClass("page-"+D+(d?" page-master":"")+(T?" page-master-detail":"")+(M?" page-master-detail-root":"")).removeClass("stacked").trigger("page:unstack").trigger("page:position",{position:D}),n.emit("pageUnstack",x[0]),n.emit("pagePosition",x[0],D),(d||T)&&(x.trigger("page:role",{role:d?"master":"detail",root:!!M}),n.emit("pageRole",x[0],{role:d?"master":"detail",detailRoot:!!M})),w&&b.length&&(b.removeClass("navbar-previous navbar-current navbar-next").addClass("navbar-"+D+(d?" navbar-master":"")+(T?" navbar-master-detail":"")+(M?" navbar-master-detail-root":"")).removeClass("stacked"),b.trigger("navbar:position",{position:D}),n.emit("navbarPosition",b[0],D),(d||T)&&n.emit("navbarRole",b[0],{role:d?"master":"detail",detailRoot:!!M})),p.reloadCurrent||S)m=P.eq(P.length-1),w&&(y=$(o.navbar.getElByPage(m)));else if(p.reloadPrevious)m=P.eq(P.length-2),w&&(y=$(o.navbar.getElByPage(m)));else if(p.reloadAll)m=P.filter((function(e,t){return t!==x[0]})),w&&(y=E.filter((function(e,t){return t!==b[0]})));else{var B=[],R=[];if(P.length>1){var z=0;for(z=0;z1||S)&&(m=m.filter((function(e,t){return!t.classList.contains("page-master")}))),y&&(y.length>1||S)&&(y=y.filter((function(e,t){return!t.classList.contains("navbar-master")})))),n.params.pushState&&(p.pushState||p.replaceState)&&!p.reloadPrevious){var H=n.params.pushStateRoot||"";History[p.reloadCurrent||S&&r||p.reloadAll||p.replaceState?"replace":"push"](l.id,{url:p.route.url},H+n.params.pushStateSeparator+p.route.url)}p.reloadPrevious||(n.currentPageEl=x[0],w&&b.length?n.currentNavbarEl=b[0]:delete n.currentNavbarEl,n.currentRoute=p.route);var A=p.route.url;p.history&&(((p.reloadCurrent||S&&r)&&n.history.length)>0||p.replaceState?n.history[n.history.length-(p.reloadPrevious?2:1)]=A:p.reloadPrevious?n.history[n.history.length-2]=A:p.reloadAll?n.history=[A]:n.history.push(A)),n.saveHistory();var U=x.parents(doc).length>0,N=x[0].f7Component;if(p.reloadPrevious?(N&&!U?N.$mount((function(e){$(e).insertBefore(m)})):x.insertBefore(m),w&&b.length&&(b.find(".title-large").length&&b.addClass("navbar-large"),y.length?b.insertBefore(y):(n.$navbarsEl.parents(doc).length||n.$el.prepend(n.$navbarsEl),g.append(b)))):(m.next(".page")[0]!==x[0]&&(N&&!U?N.$mount((function(e){C.append(e)})):C.append(x[0])),w&&b.length&&(b.find(".title-large").length&&b.addClass("navbar-large"),n.$navbarsEl.parents(doc).length||n.$el.prepend(n.$navbarsEl),g.append(b[0]))),U?p.route&&p.route.route&&p.route.route.keepAlive&&!x[0].f7PageMounted&&(x[0].f7PageMounted=!0,n.pageCallback("mounted",x,b,D,k?D:"current",p,m)):n.pageCallback("mounted",x,b,D,k?D:"current",p,m),(p.reloadCurrent||S)&&m.length>0?n.params.stackPages&&n.initialPages.indexOf(m[0])>=0?(m.addClass("stacked"),m.trigger("page:stack"),n.emit("pageStack",m[0]),w&&y.addClass("stacked")):(n.pageCallback("beforeOut",m,y,"current",void 0,p),n.pageCallback("afterOut",m,y,"current",void 0,p),n.pageCallback("beforeRemove",m,y,"current",void 0,p),n.removePage(m),w&&y&&y.length&&n.removeNavbar(y)):p.reloadAll?m.each((function(e,t){var a=$(t),r=$(o.navbar.getElByPage(a));n.params.stackPages&&n.initialPages.indexOf(a[0])>=0?(a.addClass("stacked"),a.trigger("page:stack"),n.emit("pageStack",a[0]),w&&r.addClass("stacked")):(a.hasClass("page-current")&&(n.pageCallback("beforeOut",m,y,"current",void 0,p),n.pageCallback("afterOut",m,y,"current",void 0,p)),n.pageCallback("beforeRemove",a,y&&y.eq(e),"previous",void 0,p),n.removePage(a),w&&r.length&&n.removeNavbar(r))})):p.reloadPrevious&&(n.params.stackPages&&n.initialPages.indexOf(m[0])>=0?(m.addClass("stacked"),m.trigger("page:stack"),n.emit("pageStack",m[0]),w&&y.addClass("stacked")):(n.pageCallback("beforeRemove",m,y,"previous",void 0,p),n.removePage(m),w&&y&&y.length&&n.removeNavbar(y))),p.route.route.tab&&n.tabLoad(p.route.route.tab,Utils.extend({},p,{history:!1,pushState:!1})),c&&l.checkMasterDetailBreakpoint(),n.pageCallback("init",x,b,D,k?D:"current",p,m),p.reloadCurrent||p.reloadAll||S)return n.allowPageChange=!0,n.pageCallback("beforeIn",x,b,D,"current",p),x.removeAttr("aria-hidden"),w&&b&&b.removeAttr("aria-hidden"),n.pageCallback("afterIn",x,b,D,"current",p),p.reloadCurrent&&p.clearPreviousHistory&&n.clearPreviousHistory(),S&&(n.setPagePosition($(a),"previous"),a.f7Page&&a.f7Page.navbarEl&&n.setNavbarPosition($(a.f7Page.navbarEl),"previous")),n;if(p.reloadPrevious)return n.allowPageChange=!0,n;function F(){n.setPagePosition(x,"current",!1),n.setPagePosition(m,"previous",!m.hasClass("page-master")),w&&(n.setNavbarPosition(b,"current",!1),n.setNavbarPosition(y,"previous",!y.hasClass("navbar-master"))),n.allowPageChange=!0,n.pageCallback("afterOut",m,y,"current","previous",p),n.pageCallback("afterIn",x,b,"next","current",p);var e=(n.params.preloadPreviousPage||n.params[o.theme+"SwipeBack"])&&!d;e||(x.hasClass("smart-select-page")||x.hasClass("photo-browser-page")||x.hasClass("autocomplete-page")||x.hasClass("color-picker-page"))&&(e=!0),e||(n.params.stackPages?(m.addClass("stacked"),m.trigger("page:stack"),n.emit("pageStack",m[0]),w&&y.addClass("stacked")):x.attr("data-name")&&"smart-select-page"===x.attr("data-name")||(n.pageCallback("beforeRemove",m,y,"previous",void 0,p),n.removePage(m),w&&y.length&&n.removeNavbar(y))),p.clearPreviousHistory&&n.clearPreviousHistory(),n.emit("routeChanged",n.currentRoute,n.previousRoute,n),n.params.pushState&&History.clearRouterQueue()}function V(){n.setPagePosition(m,"current",!1),n.setPagePosition(x,"next",!1),w&&(n.setNavbarPosition(y,"current",!1),n.setNavbarPosition(b,"next",!1))}if(n.pageCallback("beforeOut",m,y,"current","previous",p),n.pageCallback("beforeIn",x,b,"next","current",p),!p.animate||d&&o.width>=n.params.masterDetailBreakpoint)F();else{var q=n.params[n.app.theme+"PageLoadDelay"],j=n.params.transition;p.transition&&(j=p.transition),!j&&n.currentRoute&&n.currentRoute.route&&(j=n.currentRoute.route.transition),!j&&n.currentRoute&&n.currentRoute.route.options&&(j=n.currentRoute.route.options.transition),j&&(x[0].f7PageTransition=j),q?setTimeout((function(){V(),n.animate(m,x,y,b,"forward",j,(function(){F()}))}),q):(V(),n.animate(m,x,y,b,"forward",j,(function(){F()})))}return n}function load(e,t,a){void 0===e&&(e={}),void 0===t&&(t={});var r=this;if(!r.allowPageChange&&!a)return r;var i=e,n=t,s=i.url,o=i.content,l=i.el,p=i.pageName,c=i.template,d=i.templateUrl,u=i.component,h=i.componentUrl;if(!n.reloadCurrent&&n.route&&n.route.route&&n.route.route.parentPath&&r.currentRoute.route&&r.currentRoute.route.parentPath===n.route.route.parentPath){if(n.route.url===r.url)return r.allowPageChange=!0,!1;var f=Object.keys(n.route.params).length===Object.keys(r.currentRoute.params).length;if(f&&Object.keys(n.route.params).forEach((function(e){e in r.currentRoute.params&&r.currentRoute.params[e]===n.route.params[e]||(f=!1)})),f)return!!n.route.route.tab&&r.tabLoad(n.route.route.tab,n);if(!f&&n.route.route.tab&&r.currentRoute.route.tab&&r.currentRoute.parentPath===n.route.parentPath)return r.tabLoad(n.route.route.tab,n)}if(n.route&&n.route.url&&r.url===n.route.url&&!n.reloadCurrent&&!n.reloadPrevious&&!r.params.allowDuplicateUrls)return r.allowPageChange=!0,!1;function v(e,t){return r.forward(e,Utils.extend(n,t))}function m(){return r.allowPageChange=!0,r}if(!n.route&&s&&(n.route=r.parseRouteUrl(s),Utils.extend(n.route,{route:{url:s,path:s}})),(s||d||h||u)&&(r.allowPageChange=!1),o)r.forward(r.getPageEl(o),n);else if(c||d)try{r.pageTemplateLoader(c,d,n,v,m)}catch(e){throw r.allowPageChange=!0,e}else if(l)r.forward(r.getPageEl(l),n);else if(p)r.forward(r.$el.children('.page[data-name="'+p+'"]').eq(0),n);else if(u||h)try{r.pageComponentLoader(r.el,u,h,n,v,m)}catch(e){throw r.allowPageChange=!0,e}else s&&(r.xhr&&(r.xhr.abort(),r.xhr=!1),r.xhrRequest(s,n).then((function(e){r.forward(r.getPageEl(e),n)})).catch((function(){r.allowPageChange=!0})));return r}function navigate(e,t){void 0===t&&(t={});var a,r,i,n,s,o,l,p=this;if(p.swipeBackActive)return p;if("string"==typeof e?a=e:(a=e.url,r=e.route,i=e.name,n=e.path,s=e.query,o=e.params),i||n)return(a=p.generateUrl({path:n,name:i,params:o,query:s}))?p.navigate(a,t):p;var c=p.app;if(appRouterCheck(p,"navigate"),"#"===a||""===a)return p;var d=a.replace("./","");if("/"!==d[0]&&0!==d.indexOf("#")){var u=p.currentRoute.parentPath||p.currentRoute.path;d=((u?u+"/":"/")+d).replace("///","/").replace("//","/")}if(!(l=r?Utils.extend(p.parseRouteUrl(d),{route:Utils.extend({},r)}):p.findMatchingRoute(d)))return p;if(l.route&&l.route.viewName){var h=l.route.viewName,f=c.views[h];if(!f)throw new Error('Framework7: There is no View with "'+h+'" name that was specified in this route');if(f!==p.view)return f.router.navigate(e,t)}if(l.route.redirect)return redirect.call(p,"navigate",l,t);var v={};function m(){var e=!1;function t(e,t){p.allowPageChange=!1;var a=!1;t&&t.context&&(l.context?l.context=Utils.extend({},l.context,t.context):l.context=t.context,v.route.context=l.context),"popup popover sheet loginScreen actions customModal panel".split(" ").forEach((function(r){if(e[r]){a=!0;var i=Utils.extend({},l,{route:e});p.allowPageChange=!0,p.modalLoad(r,i,Utils.extend(v,t))}})),a||p.load(e,Utils.extend(v,t),!0)}function a(){p.allowPageChange=!0}"popup popover sheet loginScreen actions customModal panel".split(" ").forEach((function(t){l.route[t]&&!e&&(e=!0,p.modalLoad(t,l,v))})),l.route.keepAlive&&l.route.keepAliveData&&(p.load({el:l.route.keepAliveData.pageEl},v,!1),e=!0),"url content component pageName el componentUrl template templateUrl".split(" ").forEach((function(t){var a;l.route[t]&&!e&&(e=!0,p.load(((a={})[t]=l.route[t],a),v,!1))})),e||(l.route.async&&(p.allowPageChange=!1,l.route.async.call(p,v.route,p.currentRoute,t,a)),l.route.asyncComponent&&asyncComponent(p,l.route.asyncComponent,t,a))}function g(){p.allowPageChange=!0}if(l.route.options?Utils.extend(v,l.route.options,t):Utils.extend(v,t),v.route=l,v&&v.context&&(l.context=v.context,v.route.context=v.context),p.params.masterDetailBreakpoint>0&&l.route.masterRoute){var b=!0,y=!1;if(p.currentRoute&&p.currentRoute.route&&(!p.currentRoute.route.master||p.currentRoute.route!==l.route.masterRoute&&p.currentRoute.route.path!==l.route.masterRoute.path||(b=!1),!p.currentRoute.route.masterRoute||p.currentRoute.route.masterRoute!==l.route.masterRoute&&p.currentRoute.route.masterRoute.path!==l.route.masterRoute.path||(b=!1,y=!0)),b||y&&t.reloadAll)return p.navigate({path:l.route.masterRoute.path,params:l.params||{}},{animate:!1,reloadAll:t.reloadAll,reloadCurrent:t.reloadCurrent,reloadPrevious:t.reloadPrevious,pushState:!t.initial,history:!t.initial,once:{pageAfterIn:function(){p.navigate(e,Utils.extend({},t,{animate:!1,reloadAll:!1,reloadCurrent:!1,reloadPrevious:!1,history:!t.initial,pushState:!t.initial}))}}}),p}return processRouteQueue.call(p,l,p.currentRoute,(function(){l.route.modules?c.loadModules(Array.isArray(l.route.modules)?l.route.modules:[l.route.modules]).then((function(){m()})).catch((function(){g()})):m()}),(function(){g()})),p}function tabLoad(e,t){void 0===t&&(t={});var a,r,i=this,n=Utils.extend({animate:i.params.animate,pushState:!0,history:!0,parentPageEl:null,preload:!1,on:{}},t);n.route&&(n.preload||n.route===i.currentRoute||(r=i.previousRoute,i.currentRoute=n.route),n.preload?(a=n.route,r=i.currentRoute):(a=i.currentRoute,r||(r=i.previousRoute)),i.params.pushState&&n.pushState&&!n.reloadPrevious&&History.replace(i.view.id,{url:n.route.url},(i.params.pushStateRoot||"")+i.params.pushStateSeparator+n.route.url),n.history&&(i.history[Math.max(i.history.length-1,0)]=n.route.url,i.saveHistory()));var s,o=$(n.parentPageEl||i.currentPageEl);s=o.length&&o.find("#"+e.id).length?o.find("#"+e.id).eq(0):i.view.selector?i.view.selector+" #"+e.id:"#"+e.id;var l,p=i.app.tab.show({tabEl:s,animate:n.animate,tabRoute:n.route}),c=p.$newTabEl,d=p.$oldTabEl,u=p.animated,h=p.onTabsChanged;if(c&&c.parents(".page").length>0&&n.route){var f=c.parents(".page")[0].f7Page;f&&n.route&&(f.route=n.route)}if(c[0].f7RouterTabLoaded)return d&&d.length?(u?h((function(){i.emit("routeChanged",i.currentRoute,i.previousRoute,i)})):i.emit("routeChanged",i.currentRoute,i.previousRoute,i),i):i;function v(t,a){var r=t.url,n=t.content,s=t.el,o=t.template,l=t.templateUrl,p=t.component,f=t.componentUrl;function v(t){i.allowPageChange=!0,t&&("string"==typeof t?c.html(t):(c.html(""),t.f7Component?t.f7Component.$mount((function(e){c.append(e)})):c.append(t)),c[0].f7RouterTabLoaded=!0,function(t){i.removeThemeElements(c);var a=c;"string"!=typeof t&&(a=$(t)),a.trigger("tab:init tab:mounted",e),i.emit("tabInit tabMounted",c[0],e),d&&d.length&&(u?h((function(){i.emit("routeChanged",i.currentRoute,i.previousRoute,i),i.params.unloadTabContent&&i.tabRemove(d,c,e)})):(i.emit("routeChanged",i.currentRoute,i.previousRoute,i),i.params.unloadTabContent&&i.tabRemove(d,c,e)))}(t))}function m(){return i.allowPageChange=!0,i}if(n)v(n);else if(o||l)try{i.tabTemplateLoader(o,l,a,v,m)}catch(e){throw i.allowPageChange=!0,e}else if(s)v(s);else if(p||f)try{i.tabComponentLoader(c[0],p,f,a,v,m)}catch(e){throw i.allowPageChange=!0,e}else r&&(i.xhr&&(i.xhr.abort(),i.xhr=!1),i.xhrRequest(r,a).then((function(e){v(e)})).catch((function(){i.allowPageChange=!0})))}function m(e,t){v(e,Utils.extend(n,t))}function g(){i.allowPageChange=!0}return"url content component el componentUrl template templateUrl".split(" ").forEach((function(t){var a;e[t]&&(l=!0,v(((a={})[t]=e[t],a),n))})),e.async?e.async.call(i,a,r,m,g):e.asyncComponent?asyncComponent(i,e.asyncComponent,m,g):l||(i.allowPageChange=!0),i}function tabRemove(e,t,a){var r;e[0]&&(e[0].f7RouterTabLoaded=!1,delete e[0].f7RouterTabLoaded),e.children().each((function(e,t){t.f7Component&&(r=!0,$(t).trigger("tab:beforeremove",a),t.f7Component.$destroy())})),r||e.trigger("tab:beforeremove",a),this.emit("tabBeforeRemove",e[0],t[0],a),this.removeTabContent(e[0],a)}function modalLoad(e,t,a){void 0===a&&(a={});var r,i=this,n=i.app,s="panel"===e,o=s?"panel":"modal",l=Utils.extend({animate:i.params.animate,pushState:!0,history:!0,on:{}},a),p=Utils.extend({},t.route[e]),c=t.route;function d(){var a=n[e].create(p);c.modalInstance=a;var r=a.el;function d(){a.close()}a.on(o+"Open",(function(){r||(i.removeThemeElements(a.el),a.$el.trigger(e.toLowerCase()+":init "+e.toLowerCase()+":mounted",t,a),i.emit((s?"":"modalInit")+" "+e+"Init "+e+"Mounted",a.el,t,a)),i.once("swipeBackMove",d)})),a.on(o+"Close",(function(){i.off("swipeBackMove",d),a.closeByRouter||i.back()})),a.on(o+"Closed",(function(){a.$el.trigger(e.toLowerCase()+":beforeremove",t,a),a.emit((s?"":"modalBeforeRemove ")+e+"BeforeRemove",a.el,t,a);var r=a.el.f7Component;r&&r.$destroy(),Utils.nextTick((function(){(r||p.component)&&i.removeModal(a.el),a.destroy(),delete a.route,delete c.modalInstance}))})),l.route&&(i.params.pushState&&l.pushState&&History.push(i.view.id,{url:l.route.url,modal:e},(i.params.pushStateRoot||"")+i.params.pushStateSeparator+l.route.url),l.route!==i.currentRoute&&(a.route=Utils.extend(l.route,{modal:a}),i.currentRoute=a.route),l.history&&(i.history.push(l.route.url),i.saveHistory())),r&&(i.removeThemeElements(a.el),a.$el.trigger(e.toLowerCase()+":init "+e.toLowerCase()+":mounted",t,a),i.emit(o+"Init "+e+"Init "+e+"Mounted",a.el,t,a)),a.open()}function u(e,t){var a=e.url,r=e.content,s=e.template,o=e.templateUrl,l=e.component,c=e.componentUrl;function u(e){e&&("string"==typeof e?p.content=e:e.f7Component?e.f7Component.$mount((function(e){p.el=e,n.root.append(e)})):p.el=e,d())}function h(){return i.allowPageChange=!0,i}if(r)u(r);else if(s||o)try{i.modalTemplateLoader(s,o,t,u,h)}catch(e){throw i.allowPageChange=!0,e}else if(l||c)try{i.modalComponentLoader(n.root[0],l,c,t,u,h)}catch(e){throw i.allowPageChange=!0,e}else a?(i.xhr&&(i.xhr.abort(),i.xhr=!1),i.xhrRequest(a,t).then((function(e){p.content=e,d()})).catch((function(){i.allowPageChange=!0}))):d()}function h(e,t){u(e,Utils.extend(l,t))}function f(){i.allowPageChange=!0}return"url content component el componentUrl template templateUrl".split(" ").forEach((function(e){var t;p[e]&&!r&&(r=!0,u(((t={})[e]=p[e],t),l))})),r||"actions"!==e||d(),p.async&&p.async.call(i,l.route,i.currentRoute,h,f),p.asyncComponent&&asyncComponent(i,p.asyncComponent,h,f),i}function modalRemove(e){Utils.extend(e,{closeByRouter:!0}),e.close()}function backward(e,t){var a,r,i,n,s,o,l,p,c=this,d=$(e),u=c.app,h=c.view,f=Utils.extend({animate:c.params.animate,pushState:!0,replaceState:!1},t),v=c.params.masterDetailBreakpoint>0,m=v&&f.route&&f.route.route&&!0===f.route.route.master,g=c.dynamicNavbar,b=d,y=c.$el.children(".page-current"),w=v&&y.hasClass("page-master");if(b.length&&c.removeThemeElements(b),g&&(n=b.children(".navbar"),i=c.$navbarsEl,0===n.length&&b[0]&&b[0].f7Page&&(n=b[0].f7Page.$navbarEl),s=i.find(".navbar-current")),c.allowPageChange=!1,0===b.length||0===y.length)return c.allowPageChange=!0,c;if(c.removeThemeElements(b),f.route&&f.route.route&&f.route.route.keepAlive&&!f.route.route.keepAliveData&&(f.route.route.keepAliveData={pageEl:d[0]}),v){for(var C=c.$el.children(".page:not(.stacked)").filter((function(e,t){return t!==b[0]})),x=0;xc.history.indexOf(a.f7Page.route.url))&&!m&&a&&a.f7Page&&f.route.route.masterRoute&&(o=f.route.route.masterRoute.path===a.f7Page.route.route.path)}if(o&&a&&a.f7Page&&(l=c.history.indexOf(f.route.url)-c.history.indexOf(a.f7Page.route.url)==1),b.addClass("page-previous"+(m?" page-master":"")+(o?" page-master-detail":"")+(l?" page-master-detail-root":"")).removeClass("stacked").removeAttr("aria-hidden").trigger("page:unstack").trigger("page:position",{position:"previous"}),c.emit("pageUnstack",b[0]),c.emit("pagePosition",b[0],"previous"),(m||o)&&(b.trigger("page:role",{role:m?"master":"detail",root:!!l}),c.emit("pageRole",b[0],{role:m?"master":"detail",detailRoot:!!l})),g&&n.length>0&&(n.addClass("navbar-previous"+(m?" navbar-master":"")+(o?" navbar-master-detail":"")+(l?" navbar-master-detail-root":"")).removeClass("stacked").removeAttr("aria-hidden"),n.trigger("navbar:position",{position:"previous"}),c.emit("navbarPosition",n[0],"previous"),(m||l)&&c.emit("navbarRole",n[0],{role:m?"master":"detail",detailRoot:!!l})),f.force&&(y.prev(".page-previous:not(.stacked)").length>0||0===y.prev(".page-previous").length))if(c.history.indexOf(f.route.url)>=0?(p=c.history.length-c.history.indexOf(f.route.url)-1,c.history=c.history.slice(0,c.history.indexOf(f.route.url)+2),h.history=c.history):c.history[[c.history.length-2]]?c.history[c.history.length-2]=f.route.url:c.history.unshift(c.url),p&&c.params.stackPages)y.prevAll(".page-previous").each((function(e,t){var i,n=$(t);g&&(i=$(u.navbar.getElByPage(n))),n[0]!==b[0]&&n.index()>b.index()&&(c.initialPages.indexOf(n[0])>=0?(n.addClass("stacked"),n.trigger("page:stack"),c.emit("pageStack",n[0]),g&&i.addClass("stacked")):(c.pageCallback("beforeRemove",n,i,"previous",void 0,f),n[0]===a&&(r=!0),c.removePage(n),g&&i.length>0&&c.removeNavbar(i)))}));else{var k,E=y.prev(".page-previous:not(.stacked)");g&&(k=$(u.navbar.getElByPage(E))),c.params.stackPages&&c.initialPages.indexOf(E[0])>=0?(E.addClass("stacked"),E.trigger("page:stack"),c.emit("pageStack",E[0]),k.addClass("stacked")):E.length>0&&(c.pageCallback("beforeRemove",E,k,"previous",void 0,f),E[0]===a&&(r=!0),c.removePage(E),g&&k.length&&c.removeNavbar(k))}var T=b.parents(doc).length>0,S=b[0].f7Component;function M(){0===b.next(y).length&&(!T&&S?S.$mount((function(e){$(e).insertBefore(y)})):b.insertBefore(y)),g&&n.length&&(n.find(".title-large").length&&n.addClass("navbar-large"),n.insertBefore(s),s.length>0?n.insertBefore(s):(c.$navbarsEl.parents(doc).length||c.$el.prepend(c.$navbarsEl),i.append(n))),T?f.route&&f.route.route&&f.route.route.keepAlive&&!b[0].f7PageMounted&&(b[0].f7PageMounted=!0,c.pageCallback("mounted",b,n,"previous","current",f,y)):c.pageCallback("mounted",b,n,"previous","current",f,y)}if(f.preload){M(),f.route.route.tab&&c.tabLoad(f.route.route.tab,Utils.extend({},f,{history:!1,pushState:!1,preload:!0})),m&&(b.removeClass("page-master-stacked").trigger("page:masterunstack"),c.emit("pageMasterUnstack",b[0]),g&&($(u.navbar.getElByPage(b)).removeClass("navbar-master-stacked"),c.emit("navbarMasterUnstack",u.navbar.getElByPage(b)))),c.pageCallback("init",b,n,"previous","current",f,y);var P=b.prevAll(".page-previous:not(.stacked):not(.page-master)");return P.length>0&&P.each((function(e,t){var a,r=$(t);g&&(a=$(u.navbar.getElByPage(r))),c.params.stackPages&&c.initialPages.indexOf(t)>=0?(r.addClass("stacked"),r.trigger("page:stack"),c.emit("pageStack",r[0]),g&&a.addClass("stacked")):(c.pageCallback("beforeRemove",r,a,"previous",void 0),c.removePage(r),g&&a.length&&c.removeNavbar(a))})),c.allowPageChange=!0,c}if(!(Device.ie||Device.edge||Device.firefox&&!Device.ios)&&c.params.pushState&&f.pushState)if(f.replaceState){var O=c.params.pushStateRoot||"";History.replace(h.id,{url:f.route.url},O+c.params.pushStateSeparator+f.route.url)}else p?History.go(-p):History.back();if(f.replaceState?c.history[c.history.length-1]=f.route.url:(1===c.history.length&&c.history.unshift(c.url),c.history.pop()),c.saveHistory(),c.currentPageEl=b[0],g&&n.length?c.currentNavbarEl=n[0]:delete c.currentNavbarEl,c.currentRoute=f.route,(Device.ie||Device.edge||Device.firefox&&!Device.ios)&&c.params.pushState&&f.pushState)if(f.replaceState){var I=c.params.pushStateRoot||"";History.replace(h.id,{url:f.route.url},I+c.params.pushStateSeparator+f.route.url)}else p?History.go(-p):History.back();function D(){c.setPagePosition(b,"current",!1),c.setPagePosition(y,"next",!0),g&&(c.setNavbarPosition(n,"current",!1),c.setNavbarPosition(s,"next",!0)),c.pageCallback("afterOut",y,s,"current","next",f),c.pageCallback("afterIn",b,n,"previous","current",f),c.params.stackPages&&c.initialPages.indexOf(y[0])>=0?(y.addClass("stacked"),y.trigger("page:stack"),c.emit("pageStack",y[0]),g&&s.addClass("stacked")):(c.pageCallback("beforeRemove",y,s,"next",void 0,f),c.removePage(y),g&&s.length&&c.removeNavbar(s)),c.allowPageChange=!0,c.emit("routeChanged",c.currentRoute,c.previousRoute,c),(c.params.preloadPreviousPage||c.params[u.theme+"SwipeBack"])&&c.history[c.history.length-2]&&!m&&c.back(c.history[c.history.length-2],{preload:!0}),c.params.pushState&&History.clearRouterQueue()}if(M(),f.route.route.tab&&c.tabLoad(f.route.route.tab,Utils.extend({},f,{history:!1,pushState:!1})),v&&(w||r)&&h.checkMasterDetailBreakpoint(!1),c.pageCallback("init",b,n,"previous","current",f,y),c.pageCallback("beforeOut",y,s,"current","next",f),c.pageCallback("beforeIn",b,n,"previous","current",f),!f.animate||w&&u.width>=c.params.masterDetailBreakpoint)D();else{var B=c.params.transition;y[0]&&y[0].f7PageTransition&&(B=y[0].f7PageTransition,delete y[0].f7PageTransition),f.transition&&(B=f.transition),!B&&c.previousRoute&&c.previousRoute.route&&(B=c.previousRoute.route.transition),!B&&c.previousRoute&&c.previousRoute.route&&c.previousRoute.route.options&&(B=c.previousRoute.route.options.transition),c.setPagePosition(y,"current"),c.setPagePosition(b,"previous",!1),g&&(c.setNavbarPosition(s,"current"),c.setNavbarPosition(n,"previous",!1)),c.animate(y,b,s,n,"backward",B,(function(){D()}))}return c}function loadBack(e,t,a){var r=this;if(!r.allowPageChange&&!a)return r;var i=e,n=t,s=i.url,o=i.content,l=i.el,p=i.pageName,c=i.template,d=i.templateUrl,u=i.component,h=i.componentUrl;if(n.route.url&&r.url===n.route.url&&!n.reloadCurrent&&!n.reloadPrevious&&!r.params.allowDuplicateUrls)return!1;function f(e,t){return r.backward(e,Utils.extend(n,t))}function v(){return r.allowPageChange=!0,r}if(!n.route&&s&&(n.route=r.parseRouteUrl(s)),(s||d||h||u)&&(r.allowPageChange=!1),o)r.backward(r.getPageEl(o),n);else if(c||d)try{r.pageTemplateLoader(c,d,n,f,v)}catch(e){throw r.allowPageChange=!0,e}else if(l)r.backward(r.getPageEl(l),n);else if(p)r.backward(r.$el.children('.page[data-name="'+p+'"]').eq(0),n);else if(u||h)try{r.pageComponentLoader(r.el,u,h,n,f,v)}catch(e){throw r.allowPageChange=!0,e}else s&&(r.xhr&&(r.xhr.abort(),r.xhr=!1),r.xhrRequest(s,n).then((function(e){r.backward(r.getPageEl(e),n)})).catch((function(){r.allowPageChange=!0})));return r}function back(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var a,r,i,n=this;if(n.swipeBackActive)return n;"object"==typeof e[0]?r=e[0]||{}:(a=e[0],r=e[1]||{});var s=r.name,o=r.params,l=r.query;if(s)return(a=n.generateUrl({name:s,params:o,query:l}))?n.back(a,Utils.extend({},r,{name:null,params:null,query:null})):n;var p=n.app;appRouterCheck(n,"back");var c,d=n.currentRoute.modal;if(d||"popup popover sheet loginScreen actions customModal panel".split(" ").forEach((function(e){n.currentRoute.route[e]&&(d=!0,c=e)})),d){var u,h=n.currentRoute.modal||n.currentRoute.route.modalInstance||p[c].get(),f=n.history[n.history.length-2];if(h&&h.$el){var v=h.$el.prevAll(".modal-in");if(v.length&&v[0].f7Modal){var m=v[0];n.$el.parents(m).length||(u=m.f7Modal.route)}}if(u||(u=n.findMatchingRoute(f)),!u&&f&&(u={url:f,path:f.split("?")[0],query:Utils.parseUrlQuery(f),route:{path:f.split("?")[0],url:f}}),!(a&&0!==a.replace(/[# ]/g,"").trim().length||u&&h))return n;var g=r.force&&u&&a;if(u&&h){var b=Device.ie||Device.edge||Device.firefox&&!Device.ios,y=n.params.pushState&&!1!==r.pushState,w=n.currentRoute&&n.currentRoute.route&&n.currentRoute.route.options&&!1===n.currentRoute.route.options.pushState;!y||b||w||History.back(),n.currentRoute=u,n.history.pop(),n.saveHistory(),y&&b&&!w&&History.back(),n.modalRemove(h),g&&n.navigate(a,{reloadCurrent:!0})}else h&&(n.modalRemove(h),a&&n.navigate(a,{reloadCurrent:!0}));return n}var C,x=n.$el.children(".page-current").prevAll(".page-previous:not(.page-master)").eq(0);if(n.params.masterDetailBreakpoint>0){var $=[];n.$el.children(".page").each((function(e,t){$.push(t.className)}));var k=n.$el.children(".page-current").prevAll(".page-master").eq(0);if(k.length){var E=n.history[n.history.length-2],T=n.findMatchingRoute(E);T&&k[0].f7Page&&T.route===k[0].f7Page.route.route&&(x=k,r.preload||(C=p.width>=n.params.masterDetailBreakpoint))}}if(!r.force&&x.length&&!C){if(n.params.pushState&&x[0].f7Page&&n.history[n.history.length-2]!==x[0].f7Page.route.url)return n.back(n.history[n.history.length-2],Utils.extend(r,{force:!0})),n;var S=x[0].f7Page.route;return processRouteQueue.call(n,S,n.currentRoute,(function(){n.loadBack({el:x},Utils.extend(r,{route:S}))}),(function(){})),n}if("#"===a&&(a=void 0),a&&"/"!==a[0]&&0!==a.indexOf("#")&&(a=((n.path||"/")+a).replace("//","/")),!a&&n.history.length>1&&(a=n.history[n.history.length-2]),C&&!r.force&&n.history[n.history.length-3])return n.back(n.history[n.history.length-3],Utils.extend({},r||{},{force:!0,animate:!1}));if(C&&!r.force)return n;if((i=n.findMatchingRoute(a))||a&&(i={url:a,path:a.split("?")[0],query:Utils.parseUrlQuery(a),route:{path:a.split("?")[0],url:a}}),!i)return n;if(i.route.redirect)return redirect.call(n,"back",i,r);var M,P={};if(i.route.options?Utils.extend(P,i.route.options,r):Utils.extend(P,r),P.route=i,P&&P.context&&(i.context=P.context,P.route.context=P.context),P.force&&n.params.stackPages&&(n.$el.children(".page-previous.stacked").each((function(e,t){t.f7Page&&t.f7Page.route&&t.f7Page.route.url===i.url&&(M=!0,n.loadBack({el:t},P))})),M))return n;function O(){var e=!1;function t(e,t){n.allowPageChange=!1,t&&t.context&&(i.context?i.context=Utils.extend({},i.context,t.context):i.context=t.context,P.route.context=i.context),n.loadBack(e,Utils.extend(P,t),!0)}function a(){n.allowPageChange=!0}i.route.keepAlive&&i.route.keepAliveData&&(n.loadBack({el:i.route.keepAliveData.pageEl},P),e=!0),"url content component pageName el componentUrl template templateUrl".split(" ").forEach((function(t){var a;i.route[t]&&!e&&(e=!0,n.loadBack(((a={})[t]=i.route[t],a),P))})),e||(i.route.async&&(n.allowPageChange=!1,i.route.async.call(n,i,n.currentRoute,t,a)),i.route.asyncComponent&&asyncComponent(n,i.route.asyncComponent,t,a))}function I(){n.allowPageChange=!0}return P.preload?O():processRouteQueue.call(n,i,n.currentRoute,(function(){i.route.modules?p.loadModules(Array.isArray(i.route.modules)?i.route.modules:[i.route.modules]).then((function(){O()})).catch((function(){I()})):O()}),(function(){I()})),n}function clearPreviousPages(e){appRouterCheck(e,"clearPreviousPages");var t=e.app,a=e.dynamicNavbar;e.$el.children(".page").filter((function(t,a){return!(!e.currentRoute||!e.currentRoute.modal&&!e.currentRoute.panel)||a!==e.currentPageEl})).each((function(r,i){var n=$(i),s=$(t.navbar.getElByPage(n));e.params.stackPages&&e.initialPages.indexOf(n[0])>=0?(n.addClass("stacked"),a&&s.addClass("stacked")):(e.pageCallback("beforeRemove",n,s,"previous",void 0,{}),e.removePage(n),a&&s.length&&e.removeNavbar(s))}))}function clearPreviousHistory(){appRouterCheck(this,"clearPreviousHistory");var e=this.history[this.history.length-1];clearPreviousPages(this),this.history=[e],this.view.history=[e],this.saveHistory()}var Router=function(e){function t(t,a){e.call(this,{},[void 0===a?t:a]);var r=this;r.isAppRouter=void 0===a,r.isAppRouter?Utils.extend(!1,r,{app:t,params:t.params.view,routes:t.routes||[],cache:t.cache}):Utils.extend(!1,r,{app:t,view:a,viewId:a.id,params:a.params,routes:a.routes,$el:a.$el,el:a.el,$navbarsEl:a.$navbarsEl,navbarsEl:a.navbarsEl,history:a.history,scrollHistory:a.scrollHistory,cache:t.cache,dynamicNavbar:"ios"===t.theme&&a.params.iosDynamicNavbar,initialPages:[],initialNavbars:[]}),r.useModules(),r.tempDom=doc.createElement("div"),r.allowPageChange=!0;var i={},n={};return Object.defineProperty(r,"currentRoute",{enumerable:!0,configurable:!0,set:function(e){void 0===e&&(e={}),n=Utils.extend({},i),(i=e)&&(r.url=i.url,r.emit("routeChange",e,n,r))},get:function(){return i}}),Object.defineProperty(r,"previousRoute",{enumerable:!0,configurable:!0,get:function(){return n},set:function(e){n=e}}),r}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.animatableNavElements=function(e,t,a,r,i){var n,s,o=this.dynamicNavbar,l=this.params.iosAnimateNavbarBackIcon;function p(e,t){var a,r=e.hasClass("sliding")||t.hasClass("sliding"),i=e.hasClass("subnavbar"),n=!r||!i,s=e.find(".back .icon");return r&&l&&e.hasClass("left")&&s.length>0&&s.next("span").length&&(e=s.next("span"),a=!0),{$el:e,isIconLabel:a,leftOffset:e[0].f7NavbarLeftOffset,rightOffset:e[0].f7NavbarRightOffset,isSliding:r,isSubnavbar:i,needsOpacityTransition:n}}return o&&(n=[],s=[],e.children(".navbar-inner").children(".left, .right, .title, .subnavbar").each((function(t,s){var o=$(s);o.hasClass("left")&&r&&"forward"===i||o.hasClass("title")&&a||n.push(p(o,e.children(".navbar-inner")))})),t.hasClass("navbar-master")&&this.params.masterDetailBreakpoint>0&&this.app.width>=this.params.masterDetailBreakpoint||t.children(".navbar-inner").children(".left, .right, .title, .subnavbar").each((function(e,n){var o=$(n);o.hasClass("left")&&a&&!r&&"forward"===i||o.hasClass("left")&&a&&"backward"===i||o.hasClass("title")&&r||s.push(p(o,t.children(".navbar-inner")))})),[s,n].forEach((function(e){e.forEach((function(t){var a=t,r=t.isSliding,i=t.$el,o=e===s?n:s;r&&i.hasClass("title")&&o&&o.forEach((function(e){if(e.isIconLabel){var t=e.$el[0];a.leftOffset+=t&&t.offsetLeft||0}}))}))}))),{newNavEls:n,oldNavEls:s}},t.prototype.animate=function(e,t,a,r,i,n,s){var o=this;if(o.params.animateCustom)o.params.animateCustom.apply(o,[e,t,a,r,i,s]);else{var l=o.dynamicNavbar,p="ios"===o.app.theme;if(n){var c="router-transition-custom router-transition-"+n+"-"+i;return("forward"===i?t:e).animationEnd((function(){o.$el.removeClass(c),l&&o.$navbarsEl.length&&(r&&o.$navbarsEl.prepend(r),a&&o.$navbarsEl.prepend(a)),s&&s()})),l&&(r&&t&&(o.setNavbarPosition(r,""),r.removeClass("navbar-next navbar-previous navbar-current"),t.prepend(r)),a&&e&&(o.setNavbarPosition(a,""),a.removeClass("navbar-next navbar-previous navbar-current"),e.prepend(a))),void o.$el.addClass(c)}var d,u,h,f,v,m,g="router-transition-"+i+" router-transition";if(p&&l){o.params.masterDetailBreakpoint>0&&o.app.width>=o.params.masterDetailBreakpoint&&(a.hasClass("navbar-master")&&r.hasClass("navbar-master-detail")||a.hasClass("navbar-master-detail")&&r.hasClass("navbar-master"))||(v=a&&a.hasClass("navbar-large"),m=r&&r.hasClass("navbar-large"),h=v&&!a.hasClass("navbar-large-collapsed"),f=m&&!r.hasClass("navbar-large-collapsed"));var b=o.animatableNavElements(r,a,f,h,i);d=b.newNavEls,u=b.oldNavEls}("forward"===i?t:e).animationEnd((function(){o.dynamicNavbar&&(r&&(r.removeClass("router-navbar-transition-to-large router-navbar-transition-from-large"),r.addClass("navbar-no-title-large-transition"),Utils.nextFrame((function(){r.removeClass("navbar-no-title-large-transition")}))),a&&a.removeClass("router-navbar-transition-to-large router-navbar-transition-from-large"),r.hasClass("sliding")||r.children(".navbar-inner.sliding").length?r.find(".title, .left, .right, .left .icon, .subnavbar").transform(""):r.find(".sliding").transform(""),a.hasClass("sliding")||a.children(".navbar-inner.sliding").length?a.find(".title, .left, .right, .left .icon, .subnavbar").transform(""):a.find(".sliding").transform("")),o.$el.removeClass(g),s&&s()})),l?(y(0),Utils.nextFrame((function(){y(1),o.$el.addClass(g)}))):o.$el.addClass(g)}function y(e){p&&l&&(1===e&&(f&&(r.addClass("router-navbar-transition-to-large"),a.addClass("router-navbar-transition-to-large")),h&&(r.addClass("router-navbar-transition-from-large"),a.addClass("router-navbar-transition-from-large"))),d.forEach((function(t){var a=t.$el,r="forward"===i?t.rightOffset:t.leftOffset;t.isSliding&&(t.isSubnavbar&&m?a[0].style.setProperty("transform","translate3d("+r*(1-e)+"px, calc(-1 * var(--f7-navbar-large-collapse-progress) * var(--f7-navbar-large-title-height)), 0)","important"):a.transform("translate3d("+r*(1-e)+"px,0,0)"))})),u.forEach((function(t){var a=t.$el,r="forward"===i?t.leftOffset:t.rightOffset;t.isSliding&&(t.isSubnavbar&&v?a.transform("translate3d("+r*e+"px, calc(-1 * var(--f7-navbar-large-collapse-progress) * var(--f7-navbar-large-title-height)), 0)"):a.transform("translate3d("+r*e+"px,0,0)"))})))}},t.prototype.removeModal=function(e){this.removeEl(e)},t.prototype.removeTabContent=function(e){$(e).html("")},t.prototype.removeNavbar=function(e){this.removeEl(e)},t.prototype.removePage=function(e){var t=$(e),a=t&&t[0]&&t[0].f7Page;a&&a.route&&a.route.route&&a.route.route.keepAlive?t.remove():this.removeEl(e)},t.prototype.removeEl=function(e){if(e){var t=$(e);0!==t.length&&(t.find(".tab").each((function(e,t){$(t).children().each((function(e,t){t.f7Component&&($(t).trigger("tab:beforeremove"),t.f7Component.$destroy())}))})),t[0].f7Component&&t[0].f7Component.$destroy&&t[0].f7Component.$destroy(),this.params.removeElements&&(this.params.removeElementsWithTimeout?setTimeout((function(){t.remove()}),this.params.removeElementsTimeout):t.remove()))}},t.prototype.getPageEl=function(e){if("string"==typeof e)this.tempDom.innerHTML=e;else{if($(e).hasClass("page"))return e;this.tempDom.innerHTML="",$(this.tempDom).append(e)}return this.findElement(".page",this.tempDom)},t.prototype.findElement=function(e,t,a){var r=this.view,i=this.app,n=$(t),s=e;a&&(s+=":not(.stacked)");var o=n.find(s).filter((function(e,t){return 0===$(t).parents(".popup, .dialog, .popover, .actions-modal, .sheet-modal, .login-screen, .page").length}));return o.length>1&&("string"==typeof r.selector&&(o=n.find(r.selector+" "+s)),o.length>1&&(o=n.find("."+i.params.viewMainClass+" "+s))),1===o.length?o:(a||(o=this.findElement(s,n,!0)),o&&1===o.length?o:o&&o.length>1?$(o[0]):void 0)},t.prototype.flattenRoutes=function(e){void 0===e&&(e=this.routes);var t=this,a=[];return e.forEach((function(e){var r=!1;if("tabs"in e&&e.tabs){var i=e.tabs.map((function(t){var a=Utils.extend({},e,{path:(e.path+"/"+t.path).replace("///","/").replace("//","/"),parentPath:e.path,tab:t});return delete a.tabs,delete a.routes,a}));r=!0,a=a.concat(t.flattenRoutes(i))}if("detailRoutes"in e){var n=e.detailRoutes.map((function(t){var a=Utils.extend({},t);return a.masterRoute=e,a.masterRoutePath=e.path,a}));a=a.concat(e,t.flattenRoutes(n))}if("routes"in e){var s=e.routes.map((function(t){var a=Utils.extend({},t);return a.path=(e.path+"/"+a.path).replace("///","/").replace("//","/"),a}));a=r?a.concat(t.flattenRoutes(s)):a.concat(e,t.flattenRoutes(s))}"routes"in e||"tabs"in e&&e.tabs||"detailRoutes"in e||a.push(e)})),a},t.prototype.parseRouteUrl=function(e){if(!e)return{};var t=Utils.parseUrlQuery(e),a=e.split("#")[1],r=e.split("#")[0].split("?")[0];return{query:t,hash:a,params:{},url:e,path:r}},t.prototype.generateUrl=function(e){if(void 0===e&&(e={}),"string"==typeof e)return e;var t=e.name,a=e.path,r=e.params,i=e.query;if(!t&&!a)throw new Error('Framework7: "name" or "path" parameter is required');var n=t?this.findRouteByKey("name",t):this.findRouteByKey("path",a);if(!n)throw t?new Error('Framework7: route with name "'+t+'" not found'):new Error('Framework7: route with path "'+a+'" not found');var s=this.constructRouteUrl(n,{params:r,query:i});if(!s)throw new Error("Framework7: can't construct URL for route with name \""+t+'"');return s},t.prototype.constructRouteUrl=function(e,t){void 0===t&&(t={});var a,r=t.params,i=t.query,n=e.path,s=compile(n);try{a=s(r||{})}catch(e){throw new Error("Framework7: error constructing route URL from passed params:\nRoute: "+n+"\n"+e.toString())}return i&&(a+="string"==typeof i?"?"+i:"?"+Utils.serializeObject(i)),a},t.prototype.findTabRoute=function(e){var t,a=$(e),r=this.currentRoute.route.parentPath,i=a.attr("id");return this.flattenRoutes(this.routes).forEach((function(e){e.parentPath===r&&e.tab&&e.tab.id===i&&(t=e)})),t},t.prototype.findRouteByKey=function(e,t){var a,r=this.routes;return this.flattenRoutes(r).forEach((function(r){a||r[e]===t&&(a=r)})),a},t.prototype.findMatchingRoute=function(e){if(e){var t,a=this.routes,r=this.flattenRoutes(a),i=this.parseRouteUrl(e),n=i.path,s=i.query,o=i.hash,l=i.params;return r.forEach((function(a){if(!t){var r,i,p=[],c=[a.path];if(a.alias&&("string"==typeof a.alias?c.push(a.alias):Array.isArray(a.alias)&&a.alias.forEach((function(e){c.push(e)}))),c.forEach((function(e){r||(r=pathToRegexp(e,p).exec(n))})),r)p.forEach((function(e,t){if("number"!=typeof e.name){var a=r[t+1];l[e.name]=null==a?a:decodeURIComponent(a)}})),a.parentPath&&(i=n.split("/").slice(0,a.parentPath.split("/").length-1).join("/")),t={query:s,hash:o,params:l,url:e,path:n,parentPath:i,route:a,name:a.name}}})),t}},t.prototype.replaceRequestUrlParams=function(e,t){void 0===e&&(e=""),void 0===t&&(t={});var a=e;return"string"==typeof a&&a.indexOf("{{")>=0&&t&&t.route&&t.route.params&&Object.keys(t.route.params).length&&Object.keys(t.route.params).forEach((function(e){var r=new RegExp("{{"+e+"}}","g");a=a.replace(r,t.route.params[e]||"")})),a},t.prototype.removeFromXhrCache=function(e){for(var t=this.cache.xhr,a=!1,r=0;r=0;return r.passRouteQueryToRequest&&t&&t.route&&t.route.query&&Object.keys(t.route.query).length&&(n+=(s?"&":"?")+Utils.serializeObject(t.route.query),s=!0),r.passRouteParamsToRequest&&t&&t.route&&t.route.params&&Object.keys(t.route.params).length&&(n+=(s?"&":"?")+Utils.serializeObject(t.route.params),s=!0),n.indexOf("{{")>=0&&(n=a.replaceRequestUrlParams(n,t)),r.xhrCacheIgnoreGetParameters&&n.indexOf("?")>=0&&(n=n.split("?")[0]),new Promise((function(e,s){if(r.xhrCache&&!i&&n.indexOf("nocache")<0&&r.xhrCacheIgnore.indexOf(n)<0)for(var o=0;o=200&&i.status<300||0===i.status?(r.xhrCache&&""!==i.responseText&&(a.removeFromXhrCache(n),a.cache.xhr.push({url:n,time:Utils.now(),content:i.responseText})),a.emit("routerAjaxSuccess",i,t),e(i.responseText)):(a.emit("routerAjaxError",i,t),s(i))},error:function(e){a.emit("routerAjaxError",e,t),s(e)}})}))},t.prototype.setNavbarPosition=function(e,t,a){e.removeClass("navbar-previous navbar-current navbar-next"),t&&e.addClass("navbar-"+t),!1===a?e.removeAttr("aria-hidden"):!0===a&&e.attr("aria-hidden","true"),e.trigger("navbar:position",{position:t}),this.emit("navbarPosition",e[0],t)},t.prototype.setPagePosition=function(e,t,a){e.removeClass("page-previous page-current page-next"),e.addClass("page-"+t),!1===a?e.removeAttr("aria-hidden"):!0===a&&e.attr("aria-hidden","true"),e.trigger("page:position",{position:t}),this.emit("pagePosition",e[0],t)},t.prototype.removeThemeElements=function(e){var t,a=this.app.theme;"ios"===a?t=".md-only, .aurora-only, .if-md, .if-aurora, .if-not-ios, .not-ios":"md"===a?t=".ios-only, .aurora-only, .if-ios, .if-aurora, .if-not-md, .not-md":"aurora"===a&&(t=".ios-only, .md-only, .if-ios, .if-md, .if-not-aurora, .not-aurora"),$(e).find(t).remove()},t.prototype.getPageData=function(e,t,a,r,i,n){void 0===i&&(i={});var s,o,l=$(e).eq(0),p=$(t).eq(0),c=l[0].f7Page||{};if(("next"===a&&"current"===r||"current"===a&&"previous"===r)&&(s="forward"),("current"===a&&"next"===r||"previous"===a&&"current"===r)&&(s="backward"),c&&!c.fromPage){var d=$(n);d.length&&(o=d[0].f7Page)}(o=c.pageFrom||o)&&o.pageFrom&&(o.pageFrom=null);var u={app:this.app,view:this.view,router:this,$el:l,el:l[0],$pageEl:l,pageEl:l[0],$navbarEl:p,navbarEl:p[0],name:l.attr("data-name"),position:a,from:a,to:r,direction:s,route:c.route?c.route:i,pageFrom:o};return l[0].f7Page=u,u},t.prototype.pageCallback=function(e,t,a,r,i,n,s){if(void 0===n&&(n={}),t){var o=this,l=$(t);if(l.length){var p=$(a),c=n.route,d=o.params.restoreScrollTopOnBack&&!(o.params.masterDetailBreakpoint>0&&l.hasClass("page-master")&&o.app.width>=o.params.masterDetailBreakpoint),u=l[0].f7Page&&l[0].f7Page.route&&l[0].f7Page.route.route&&l[0].f7Page.route.route.keepAlive;"beforeRemove"===e&&u&&(e="beforeUnmount");var h="page"+(e[0].toUpperCase()+e.slice(1,e.length)),f="page:"+e.toLowerCase(),v={};(v="beforeRemove"===e&&l[0].f7Page?Utils.extend(l[0].f7Page,{from:r,to:i,position:r}):o.getPageData(l[0],p[0],r,i,c,s)).swipeBack=!!n.swipeBack;var m=n.route?n.route.route:{},g=m.on;void 0===g&&(g={});var b=m.once;if(void 0===b&&(b={}),n.on&&Utils.extend(g,n.on),n.once&&Utils.extend(b,n.once),"mounted"===e&&C(),"init"===e){if(d&&("previous"===r||!r)&&"current"===i&&o.scrollHistory[v.route.url]&&!l.hasClass("no-restore-scroll")){var y=l.find(".page-content");y.length>0&&(y=y.filter((function(e,t){return 0===$(t).parents(".tab:not(.tab-active)").length&&!$(t).is(".tab:not(.tab-active)")}))),y.scrollTop(o.scrollHistory[v.route.url])}if(C(),l[0].f7PageInitialized)return l.trigger("page:reinit",v),void o.emit("pageReinit",v);l[0].f7PageInitialized=!0}if(d&&"beforeOut"===e&&"current"===r&&"previous"===i){var w=l.find(".page-content");w.length>0&&(w=w.filter((function(e,t){return 0===$(t).parents(".tab:not(.tab-active)").length&&!$(t).is(".tab:not(.tab-active)")}))),o.scrollHistory[v.route.url]=w.scrollTop()}d&&"beforeOut"===e&&"current"===r&&"next"===i&&delete o.scrollHistory[v.route.url],l.trigger(f,v),o.emit(h,v),"beforeRemove"!==e&&"beforeUnmount"!==e||(l[0].f7RouteEventsAttached&&(l[0].f7RouteEventsOn&&Object.keys(l[0].f7RouteEventsOn).forEach((function(e){l.off(Utils.eventNameToColonCase(e),l[0].f7RouteEventsOn[e])})),l[0].f7RouteEventsOnce&&Object.keys(l[0].f7RouteEventsOnce).forEach((function(e){l.off(Utils.eventNameToColonCase(e),l[0].f7RouteEventsOnce[e])})),l[0].f7RouteEventsAttached=null,l[0].f7RouteEventsOn=null,l[0].f7RouteEventsOnce=null,delete l[0].f7RouteEventsAttached,delete l[0].f7RouteEventsOn,delete l[0].f7RouteEventsOnce),u||(l[0].f7Page&&l[0].f7Page.navbarEl&&delete l[0].f7Page.navbarEl.f7Page,l[0].f7Page=null))}}function C(){l[0].f7RouteEventsAttached||(l[0].f7RouteEventsAttached=!0,g&&Object.keys(g).length>0&&(l[0].f7RouteEventsOn=g,Object.keys(g).forEach((function(e){g[e]=g[e].bind(o),l.on(Utils.eventNameToColonCase(e),g[e])}))),b&&Object.keys(b).length>0&&(l[0].f7RouteEventsOnce=b,Object.keys(b).forEach((function(e){b[e]=b[e].bind(o),l.once(Utils.eventNameToColonCase(e),b[e])}))))}},t.prototype.saveHistory=function(){this.view.history=this.history,this.params.pushState&&(win.localStorage["f7router-"+this.view.id+"-history"]=JSON.stringify(this.history))},t.prototype.restoreHistory=function(){this.params.pushState&&win.localStorage["f7router-"+this.view.id+"-history"]&&(this.history=JSON.parse(win.localStorage["f7router-"+this.view.id+"-history"]),this.view.history=this.history)},t.prototype.clearHistory=function(){this.history=[],this.view&&(this.view.history=[]),this.saveHistory()},t.prototype.updateCurrentUrl=function(e){appRouterCheck(this,"updateCurrentUrl"),this.history.length?this.history[this.history.length-1]=e:this.history.push(e);var t=this.parseRouteUrl(e),a=t.query,r=t.hash,i=t.params,n=t.url,s=t.path;if(this.currentRoute&&Utils.extend(this.currentRoute,{query:a,hash:r,params:i,url:n,path:s}),this.params.pushState){var o=this.params.pushStateRoot||"";History.replace(this.view.id,{url:e},o+this.params.pushStateSeparator+e)}this.saveHistory(),this.emit("routeUrlUpdate",this.currentRoute,this)},t.prototype.init=function(){var e=this,t=e.app,a=e.view;(a&&e.params.iosSwipeBack&&"ios"===t.theme||a&&e.params.mdSwipeBack&&"md"===t.theme||a&&e.params.auroraSwipeBack&&"aurora"===t.theme)&&SwipeBack(e);var r,i,n=e.params.url,s=doc.location.href.split(doc.location.origin)[1],o=e.params,l=o.pushState,p=o.pushStateOnLoad,c=o.pushStateSeparator,d=o.pushStateAnimateOnLoad,u=e.params.pushStateRoot;if(win.cordova&&l&&!c&&!u&&doc.location.pathname.indexOf("index.html")&&(console.warn("Framework7: wrong or not complete pushState configuration, trying to guess pushStateRoot"),u=doc.location.pathname.split("index.html")[0]),l&&p?(u&&s.indexOf(u)>=0&&""===(s=s.split(u)[1])&&(s="/"),n=c.length>0&&s.indexOf(c)>=0?s.split(c)[1]:s,e.restoreHistory(),e.history.indexOf(n)>=0?e.history=e.history.slice(0,e.history.indexOf(n)+1):e.params.url===n?e.history=[n]:History.state&&History.state[a.id]&&History.state[a.id].url===e.history[e.history.length-1]?n=e.history[e.history.length-1]:e.history=[s.split(c)[0]||"/",n],e.history.length>1?r=!0:e.history=[],e.saveHistory()):(n||(n=s),doc.location.search&&n.indexOf("?")<0&&(n+=doc.location.search),doc.location.hash&&n.indexOf("#")<0&&(n+=doc.location.hash)),e.history.length>1?(i=e.findMatchingRoute(e.history[0]))||(i=Utils.extend(e.parseRouteUrl(e.history[0]),{route:{url:e.history[0],path:e.history[0].split("?")[0]}})):(i=e.findMatchingRoute(n))||(i=Utils.extend(e.parseRouteUrl(n),{route:{url:n,path:n.split("?")[0]}})),e.params.stackPages&&e.$el.children(".page").each((function(t,a){var r=$(a);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&&n&&e.params.loadInitialPage)e.navigate(n,{initial:!0,reloadCurrent:!0,pushState:!1});else if(e.$el.children(".page:not(.stacked)").length){var h;e.currentRoute=i,e.$el.children(".page:not(.stacked)").each((function(t,r){var i,n=$(r);e.setPagePosition(n,"current"),e.dynamicNavbar&&((i=n.children(".navbar")).length>0?(e.$navbarsEl.parents(doc).length||e.$el.prepend(e.$navbarsEl),e.setNavbarPosition(i,"current"),e.$navbarsEl.append(i),i.children(".title-large").length&&i.addClass("navbar-large"),n.children(".navbar").remove()):(e.$navbarsEl.addClass("navbar-hidden"),i.children(".title-large").length&&e.$navbarsEl.addClass("navbar-hidden navbar-large-hidden"))),e.currentRoute&&e.currentRoute.route&&e.currentRoute.route.master&&e.params.masterDetailBreakpoint>0&&(n.addClass("page-master"),n.trigger("page:role",{role:"master"}),i&&i.length&&i.addClass("navbar-master"),a.checkMasterDetailBreakpoint());var s={route:e.currentRoute};e.currentRoute&&e.currentRoute.route&&e.currentRoute.route.options&&Utils.extend(s,e.currentRoute.route.options),e.currentPageEl=n[0],e.dynamicNavbar&&i.length&&(e.currentNavbarEl=i[0]),e.removeThemeElements(n),e.dynamicNavbar&&i.length&&e.removeThemeElements(i),s.route.route.tab&&(h=!0,e.tabLoad(s.route.route.tab,Utils.extend({},s))),e.pageCallback("init",n,i,"current",void 0,s)})),r&&e.navigate(n,{initial:!0,pushState:!1,history:!1,animate:d,once:{pageAfterIn:function(){(e.params.preloadPreviousPage||e.params[t.theme+"SwipeBack"])&&e.history.length>2&&e.back({preload:!0})}}}),r||h||(e.history.push(n),e.saveHistory())}!(n&&l&&p)||History.state&&History.state[a.id]||History.initViewState(a.id,{url:n}),e.emit("local::init routerInit",e)},t.prototype.destroy=function(){var e=this;e.emit("local::destroy routerDestroy",e),Object.keys(e).forEach((function(t){e[t]=null,delete e[t]})),e=null},t}(Framework7Class);Router.prototype.forward=forward,Router.prototype.load=load,Router.prototype.navigate=navigate,Router.prototype.refreshPage=refreshPage,Router.prototype.tabLoad=tabLoad,Router.prototype.tabRemove=tabRemove,Router.prototype.modalLoad=modalLoad,Router.prototype.modalRemove=modalRemove,Router.prototype.backward=backward,Router.prototype.loadBack=loadBack,Router.prototype.back=back,Router.prototype.clearPreviousHistory=clearPreviousHistory;var RouterModule={name:"router",static:{Router:Router},instance:{cache:{xhr:[],templates:[],components:[]}},create:function(){this.app?this.params.router&&(this.router=new Router(this.app,this)):this.router=new Router(this)}};function resizableView(e){var t=e.app;if(!e.resizableInitialized){Utils.extend(e,{resizable:!0,resizableWidth:null,resizableInitialized:!0});var a=$("html"),r=e.$el;if(r){var i,n,s,o,l,p,c,d={};(i=e.$el.children(".view-resize-handler")).length||(e.$el.append('
                '),i=e.$el.children(".view-resize-handler")),e.$resizeHandlerEl=i,r.addClass("view-resizable");var u=!!Support.passiveListener&&{passive:!0};e.$el.on(t.touchEvents.start,".view-resize-handler",f,u),t.on("touchmove:active",v),t.on("touchend:passive",m),t.on("resize",g),e.on("beforeOpen",g),e.once("viewDestroy",(function(){r.removeClass("view-resizable"),e.$resizeHandlerEl.remove(),e.$el.off(t.touchEvents.start,".view-resize-handler",f,u),t.off("touchmove:active",v),t.off("touchend:passive",m),t.off("resize",g),e.off("beforeOpen",g)}))}}function h(e){if(!e)return null;if(e.indexOf("%")>=0||e.indexOf("vw")>=0)return parseInt(e,10)/100*t.width;var a=parseInt(e,10);return Number.isNaN(a)?null:a}function f(t){if(e.resizable&&r.hasClass("view-resizable")&&r.hasClass("view-master-detail")){d.x="touchstart"===t.type?t.targetTouches[0].pageX:t.pageX,d.y="touchstart"===t.type?t.targetTouches[0].pageY:t.pageY,s=!1,n=!0;var a=r.children(".page-master");p=h(a.css("min-width")),c=h(a.css("max-width"))}}function v(u){if(n){u.f7PreventSwipePanel=!0;var h="touchmove"===u.type?u.targetTouches[0].pageX:u.pageX;s||(l=i[0].offsetLeft+i[0].offsetWidth,r.addClass("view-resizing"),a.css("cursor","col-resize")),s=!0,u.preventDefault(),o=h-d.x;var f=l+o;p&&!Number.isNaN(p)&&(f=Math.max(f,p)),c&&!Number.isNaN(c)&&(f=Math.min(f,c)),f=Math.min(Math.max(f,0),t.width),e.resizableWidth=f,a[0].style.setProperty("--f7-page-master-width",f+"px"),r.trigger("view:resize",f),e.emit("local::resize viewResize",e,f)}}function m(){if($("html").css("cursor",""),!n||!s)return n=!1,void(s=!1);n=!1,s=!1,a[0].style.setProperty("--f7-page-master-width",e.resizableWidth+"px"),r.removeClass("view-resizing")}function g(){e.resizableWidth&&(p=h(i.css("min-width")),c=h(i.css("max-width")),p&&!Number.isNaN(p)&&e.resizableWidthc&&(e.resizableWidth=Math.min(e.resizableWidth,c)),e.resizableWidth=Math.min(Math.max(e.resizableWidth,0),t.width),a[0].style.setProperty("--f7-page-master-width",e.resizableWidth+"px"))}}var View=function(e){function t(t,a,r){void 0===r&&(r={}),e.call(this,r,[t]);var i,n,s,o=t,l=$(a),p=this;if(0===l.length){var c="Framework7: can't create a View instance because ";throw new Error(c+="string"==typeof a?'the selector "'+a+"\" didn't match any element":"el must be an HTMLElement or Dom7 object")}return p.params=Utils.extend({routes:[],routesAdd:[]},o.params.view,r),p.params.routes.length>0?p.routes=p.params.routes:p.routes=[].concat(o.routes,p.params.routesAdd),i="string"==typeof a?a:(l.attr("id")?"#"+l.attr("id"):"")+(l.attr("class")?"."+l.attr("class").replace(/ /g,".").replace(".active",""):""),"ios"===o.theme&&p.params.iosDynamicNavbar&&0===(n=l.children(".navbars").eq(0)).length&&(n=$('')),Utils.extend(!1,p,{app:o,$el:l,el:l[0],name:p.params.name,main:p.params.main||l.hasClass("view-main"),$navbarsEl:n,navbarsEl:n?n[0]:void 0,selector:i,history:[],scrollHistory:{}}),l[0].f7View=p,p.useModules(),o.views.push(p),p.main&&(o.views.main=p),p.name&&(o.views[p.name]=p),p.index=o.views.indexOf(p),s=p.name?"view_"+p.name:p.main?"view_main":"view_"+p.index,p.id=s,o.initialized?p.init():o.on("init",(function(){p.init()})),p}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.destroy=function(){var e=this,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((function(t){e[t]=null,delete e[t]})),e=null},t.prototype.checkMasterDetailBreakpoint=function(e){var t=this.app,a=this.$el.hasClass("view-master-detail"),r=t.width>=this.params.masterDetailBreakpoint&&this.$el.children(".page-master").length;void 0===e&&r||!0===e?(this.$el.addClass("view-master-detail"),a||(this.emit("local::masterDetailBreakpoint viewMasterDetailBreakpoint",this),this.$el.trigger("view:masterDetailBreakpoint"))):(this.$el.removeClass("view-master-detail"),a&&(this.emit("local::masterDetailBreakpoint viewMasterDetailBreakpoint",this),this.$el.trigger("view:masterDetailBreakpoint")))},t.prototype.initMasterDetail=function(){var e=this.app;this.checkMasterDetailBreakpoint=this.checkMasterDetailBreakpoint.bind(this),this.checkMasterDetailBreakpoint(),this.params.masterDetailResizable&&resizableView(this),e.on("resize",this.checkMasterDetailBreakpoint)},t.prototype.init=function(){this.params.router&&(this.params.masterDetailBreakpoint>0&&this.initMasterDetail(),this.router.init(),this.$el.trigger("view:init"),this.emit("local::init viewInit",this))},t}(Framework7Class);function initClicks(e){e.on("click",(function(t){var a=$(t.target),r=a.closest("a"),i=r.length>0,n=i&&r.attr("href");if(i&&(r.is(e.params.clicks.externalLinks)||n&&n.indexOf("javascript:")>=0)){var s=r.attr("target");n&&win.cordova&&win.cordova.InAppBrowser&&("_system"===s||"_blank"===s)&&(t.preventDefault(),win.cordova.InAppBrowser.open(n,s))}else{Object.keys(e.modules).forEach((function(r){var i=e.modules[r].clicks;i&&(t.preventF7Router||Object.keys(i).forEach((function(r){var n=a.closest(r).eq(0);n.length>0&&i[r].call(e,n,n.dataset(),t)})))}));var o={};if(i&&(t.preventDefault(),o=r.dataset()),!t.preventF7Router)if(!r.hasClass("prevent-router")&&!r.hasClass("router-prevent"))if(n&&n.length>0&&"#"!==n[0]||r.hasClass("back")){var l;if(o.view&&"current"===o.view?l=e.views.current:o.view?l=$(o.view)[0].f7View:(l=a.parents(".view")[0]&&a.parents(".view")[0].f7View,!r.hasClass("back")&&l&&l.params.linksView&&("string"==typeof l.params.linksView?l=$(l.params.linksView)[0].f7View:l.params.linksView instanceof View&&(l=l.params.linksView))),l||e.views.main&&(l=e.views.main),!l||!l.router)return;if(o.context&&"string"==typeof o.context)try{o.context=JSON.parse(o.context)}catch(e){}r[0].f7RouteProps&&(o.props=r[0].f7RouteProps),r.hasClass("back")?l.router.back(n,o):l.router.navigate(n,o)}}}))}View.use(RouterModule);var ClicksModule={name:"clicks",params:{clicks:{externalLinks:".external"}},on:{init:function(){initClicks(this)}}},HistoryModule={name:"history",static:{history:History},on:{init:function(){History.init(this)}}},SW={registrations:[],register:function(e,t){var a=this;return"serviceWorker"in win.navigator&&a.serviceWorker.container?new Promise((function(r,i){a.serviceWorker.container.register(e,t?{scope:t}:{}).then((function(e){SW.registrations.push(e),a.emit("serviceWorkerRegisterSuccess",e),r(e)})).catch((function(e){a.emit("serviceWorkerRegisterError",e),i(e)}))})):new Promise((function(e,t){t(new Error("Service worker is not supported"))}))},unregister:function(e){var t,a=this;return"serviceWorker"in win.navigator&&a.serviceWorker.container?(t=e?Array.isArray(e)?e:[e]:SW.registrations,Promise.all(t.map((function(e){return new Promise((function(t,r){e.unregister().then((function(){SW.registrations.indexOf(e)>=0&&SW.registrations.splice(SW.registrations.indexOf(e),1),a.emit("serviceWorkerUnregisterSuccess",e),t()})).catch((function(t){a.emit("serviceWorkerUnregisterError",e,t),r(t)}))}))})))):new Promise((function(e,t){t(new Error("Service worker is not supported"))}))}},ServiceWorkerModule={name:"sw",params:{serviceWorker:{path:void 0,scope:void 0}},create:function(){Utils.extend(this,{serviceWorker:{container:"serviceWorker"in win.navigator?win.navigator.serviceWorker:void 0,registrations:SW.registrations,register:SW.register.bind(this),unregister:SW.unregister.bind(this)}})},on:{init:function(){if("serviceWorker"in win.navigator){var e=this;if(e.serviceWorker.container){var t=e.params.serviceWorker.path,a=e.params.serviceWorker.scope;if(t&&(!Array.isArray(t)||t.length))(Array.isArray(t)?t:[t]).forEach((function(t){e.serviceWorker.register(t,a)}))}}}}},Statusbar={hide:function(){Device.cordova&&win.StatusBar&&win.StatusBar.hide()},show:function(){Device.cordova&&win.StatusBar&&win.StatusBar.show()},onClick:function(){var e;(e=$(".popup.modal-in").length>0?$(".popup.modal-in").find(".page:not(.page-previous):not(.page-next):not(.cached)").find(".page-content"):$(".panel.panel-in").length>0?$(".panel.panel-in").find(".page:not(.page-previous):not(.page-next):not(.cached)").find(".page-content"):$(".views > .view.tab-active").length>0?$(".views > .view.tab-active").find(".page:not(.page-previous):not(.page-next):not(.cached)").find(".page-content"):$(".views").length>0?$(".views").find(".page:not(.page-previous):not(.page-next):not(.cached)").find(".page-content"):this.root.children(".view").find(".page:not(.page-previous):not(.page-next):not(.cached)").find(".page-content"))&&e.length>0&&(e.hasClass("tab")&&(e=e.parent(".tabs").children(".page-content.tab-active")),e.length>0&&e.scrollTop(0,300))},setTextColor:function(e){Device.cordova&&win.StatusBar&&("white"===e?win.StatusBar.styleLightContent():win.StatusBar.styleDefault())},setBackgroundColor:function(e){Device.cordova&&win.StatusBar&&win.StatusBar.backgroundColorByHexString(e)},isVisible:function(){return!(!Device.cordova||!win.StatusBar)&&win.StatusBar.isVisible},overlaysWebView:function(e){void 0===e&&(e=!0),Device.cordova&&win.StatusBar&&win.StatusBar.overlaysWebView(e)},init:function(){var e=this.params.statusbar;e.enabled&&(Device.cordova&&win.StatusBar&&(e.scrollTopOnClick&&$(win).on("statusTap",Statusbar.onClick.bind(this)),Device.ios&&(e.iosOverlaysWebView?win.StatusBar.overlaysWebView(!0):win.StatusBar.overlaysWebView(!1),"white"===e.iosTextColor?win.StatusBar.styleLightContent():win.StatusBar.styleDefault()),Device.android&&(e.androidOverlaysWebView?win.StatusBar.overlaysWebView(!0):win.StatusBar.overlaysWebView(!1),"white"===e.androidTextColor?win.StatusBar.styleLightContent():win.StatusBar.styleDefault())),e.iosBackgroundColor&&Device.ios&&Statusbar.setBackgroundColor(e.iosBackgroundColor),e.androidBackgroundColor&&Device.android&&Statusbar.setBackgroundColor(e.androidBackgroundColor))}},Statusbar$1={name:"statusbar",params:{statusbar:{enabled:!0,scrollTopOnClick:!0,iosOverlaysWebView:!0,iosTextColor:"black",iosBackgroundColor:null,androidOverlaysWebView:!1,androidTextColor:"black",androidBackgroundColor:null}},create:function(){Utils.extend(this,{statusbar:{hide:Statusbar.hide,show:Statusbar.show,overlaysWebView:Statusbar.overlaysWebView,setTextColor:Statusbar.setTextColor,setBackgroundColor:Statusbar.setBackgroundColor,isVisible:Statusbar.isVisible,init:Statusbar.init.bind(this)}})},on:{init:function(){Statusbar.init.call(this)}}};function getCurrentView(e){var t=$(".popover.modal-in .view"),a=$(".popup.modal-in .view"),r=$(".panel.panel-in .view"),i=$(".views");0===i.length&&(i=e.root);var n=i.children(".view");if(0===n.length&&(n=i.children(".tabs").children(".view")),n.length>1&&n.hasClass("tab")&&0===(n=i.children(".view.tab-active")).length&&(n=i.children(".tabs").children(".view.tab-active")),t.length>0&&t[0].f7View)return t[0].f7View;if(a.length>0&&a[0].f7View)return a[0].f7View;if(r.length>0&&r[0].f7View)return r[0].f7View;if(n.length>0){if(1===n.length&&n[0].f7View)return n[0].f7View;if(n.length>1)return e.views.main}}var View$1={name:"view",params:{view:{name:void 0,main:!1,router:!0,linksView:null,stackPages:!1,xhrCache:!0,xhrCacheIgnore:[],xhrCacheIgnoreGetParameters:!1,xhrCacheDuration:6e5,componentCache:!0,preloadPreviousPage:!0,allowDuplicateUrls:!1,reloadPages:!1,reloadDetail:!1,masterDetailBreakpoint:0,masterDetailResizable:!1,removeElements:!0,removeElementsWithTimeout:!1,removeElementsTimeout:0,restoreScrollTopOnBack:!0,unloadTabContent:!0,passRouteQueryToRequest:!0,passRouteParamsToRequest:!1,loadInitialPage:!0,iosSwipeBack:!0,iosSwipeBackAnimateShadow:!0,iosSwipeBackAnimateOpacity:!0,iosSwipeBackActiveArea:30,iosSwipeBackThreshold:0,mdSwipeBack:!1,mdSwipeBackAnimateShadow:!0,mdSwipeBackAnimateOpacity:!1,mdSwipeBackActiveArea:30,mdSwipeBackThreshold:0,auroraSwipeBack:!1,auroraSwipeBackAnimateShadow:!1,auroraSwipeBackAnimateOpacity:!0,auroraSwipeBackActiveArea:30,auroraSwipeBackThreshold:0,pushState:!1,pushStateRoot:void 0,pushStateAnimate:!0,pushStateAnimateOnLoad:!1,pushStateSeparator:"#!",pushStateOnLoad:!0,animate:!0,iosDynamicNavbar:!0,iosAnimateNavbarBackIcon:!0,iosPageLoadDelay:0,mdPageLoadDelay:0,auroraPageLoadDelay:0,routesBeforeEnter:null,routesBeforeLeave:null}},static:{View:View},create:function(){var e=this;Utils.extend(e,{views:Utils.extend([],{create:function(t,a){return new View(e,t,a)},get:function(e){var t=$(e);if(t.length&&t[0].f7View)return t[0].f7View}})}),Object.defineProperty(e.views,"current",{enumerable:!0,configurable:!0,get:function(){return getCurrentView(e)}}),e.view=e.views},on:{init:function(){var e=this;$(".view-init").each((function(t,a){if(!a.f7View){var r=$(a).dataset();e.views.create(a,r)}}))},"modalOpen panelOpen":function(e){var t=this;e.$el.find(".view-init").each((function(e,a){if(!a.f7View){var r=$(a).dataset();t.views.create(a,r)}}))},"modalBeforeDestroy panelBeforeDestroy":function(e){e&&e.$el&&e.$el.find(".view-init").each((function(e,t){var a=t.f7View;a&&a.destroy()}))}},vnode:{"view-init":{insert:function(e){var t=e.elm;if(!t.f7View){var a=$(t).dataset();this.views.create(t,a)}},destroy:function(e){var t=e.elm.f7View;t&&t.destroy()}}}},Navbar={size:function(e){var t=this,a=$(e);if(a.hasClass("navbars"))a=a.children(".navbar").each((function(e,a){t.navbar.size(a)}));else{var r=a.children(".navbar-inner");if(r.length){var i=r.hasClass("navbar-inner-centered-title")||t.params.navbar[t.theme+"CenterTitle"],n="ios"===t.theme&&!t.params.navbar[t.theme+"CenterTitle"];if((i||n)&&!(a.hasClass("stacked")||a.parents(".stacked").length>0||a.parents(".tab:not(.tab-active)").length>0||a.parents(".popup:not(.modal-in)").length>0)){"ios"!==t.theme&&t.params.navbar[t.theme+"CenterTitle"]&&r.addClass("navbar-inner-centered-title"),"ios"!==t.theme||t.params.navbar.iosCenterTitle||r.addClass("navbar-inner-left-title");var s,o,l,p,c=a.parents(".view").eq(0),d=t.rtl?r.children(".right"):r.children(".left"),u=t.rtl?r.children(".left"):r.children(".right"),h=r.children(".title"),f=r.children(".subnavbar"),v=0===d.length,m=0===u.length,g=v?0:d.outerWidth(!0),b=m?0:u.outerWidth(!0),y=h.outerWidth(!0),w=r.styles(),C=r[0].offsetWidth-parseInt(w.paddingLeft,10)-parseInt(w.paddingRight,10),x=a.hasClass("navbar-previous"),k=r.hasClass("sliding");c.length>0&&c[0].f7View&&(o=(s=c[0].f7View.router)&&s.dynamicNavbar),m&&(l=C-y),v&&(l=0),v||m||(l=(C-b-y+g)/2);var E=(C-y)/2;C-g-b>y?(EC-b&&(E=C-b-y),p=E-l):p=0;var T=t.rtl?-1:1;if(o&&"ios"===t.theme){if(h.hasClass("sliding")||h.length>0&&k){var S=-(l+p)*T,M=(C-l-p-y)*T;if(x&&s&&s.params.iosAnimateNavbarBackIcon){var P=a.parent().find(".navbar-current").children(".left.sliding").find(".back .icon ~ span");P.length>0&&(S+=P[0].offsetLeft)}h[0].f7NavbarLeftOffset=S,h[0].f7NavbarRightOffset=M}if(!v&&(d.hasClass("sliding")||k))if(t.rtl)d[0].f7NavbarLeftOffset=-(C-d[0].offsetWidth)/2*T,d[0].f7NavbarRightOffset=g*T;else if(d[0].f7NavbarLeftOffset=-g,d[0].f7NavbarRightOffset=(C-d[0].offsetWidth)/2,s&&s.params.iosAnimateNavbarBackIcon&&d.find(".back .icon").length>0&&d.find(".back .icon ~ span").length){var O=d[0].f7NavbarLeftOffset,I=d[0].f7NavbarRightOffset;d[0].f7NavbarLeftOffset=0,d[0].f7NavbarRightOffset=0,d.find(".back .icon ~ span")[0].f7NavbarLeftOffset=O,d.find(".back .icon ~ span")[0].f7NavbarRightOffset=I-d.find(".back .icon")[0].offsetWidth}m||!u.hasClass("sliding")&&!k||(t.rtl?(u[0].f7NavbarLeftOffset=-b*T,u[0].f7NavbarRightOffset=(C-u[0].offsetWidth)/2*T):(u[0].f7NavbarLeftOffset=-(C-u[0].offsetWidth)/2,u[0].f7NavbarRightOffset=b)),f.length&&(f.hasClass("sliding")||k)&&(f[0].f7NavbarLeftOffset=t.rtl?f[0].offsetWidth:-f[0].offsetWidth,f[0].f7NavbarRightOffset=-f[0].f7NavbarLeftOffset)}if(i){var D=p;t.rtl&&v&&m&&h.length>0&&(D=-D),h.css({left:D+"px"})}}}}},hide:function(e,t,a){void 0===t&&(t=!0),void 0===a&&(a=!1);var r=this,i=$(e),n=i.hasClass("navbar")&&i.parent(".navbars").length;if(n&&(i=i.parents(".navbars")),i.length&&!i.hasClass("navbar-hidden")){var s="navbar-hidden"+(t?" navbar-transitioning":"");(n?i.find(".navbar-current .title-large").length:i.find(".title-large").length)&&(s+=" navbar-large-hidden"),a&&(s+=" navbar-hidden-statusbar"),i.transitionEnd((function(){i.removeClass("navbar-transitioning")})),i.addClass(s),n?i.children(".navbar").each((function(e,t){$(t).trigger("navbar:hide"),r.emit("navbarHide",t)})):(i.trigger("navbar:hide"),r.emit("navbarHide",i[0]))}},show:function(e,t){void 0===e&&(e=".navbar-hidden"),void 0===t&&(t=!0);var a=this,r=$(e),i=r.hasClass("navbar")&&r.parent(".navbars").length;i&&(r=r.parents(".navbars")),r.length&&r.hasClass("navbar-hidden")&&(t&&(r.addClass("navbar-transitioning"),r.transitionEnd((function(){r.removeClass("navbar-transitioning")}))),r.removeClass("navbar-hidden navbar-large-hidden navbar-hidden-statusbar"),i?r.children(".navbar").each((function(e,t){$(t).trigger("navbar:show"),a.emit("navbarShow",t)})):(r.trigger("navbar:show"),a.emit("navbarShow",r[0])))},getElByPage:function(e){var t,a,r;if(e.$navbarEl||e.$el?(r=e,t=e.$el):(t=$(e)).length>0&&(r=t[0].f7Page),r&&r.$navbarEl&&r.$navbarEl.length>0?a=r.$navbarEl:t&&(a=t.children(".navbar")),a&&(!a||0!==a.length))return a[0]},getPageByEl:function(e){var t,a=$(e);return a.parents(".page").length?a.parents(".page")[0]:(a.parents(".view").find(".page").each((function(e,r){r&&r.f7Page&&r.f7Page.navbarEl&&a[0]===r.f7Page.navbarEl&&(t=r)})),t)},collapseLargeTitle:function(e){var t=$(e);if(!(t.hasClass("navbars")&&((t=t.find(".navbar")).length>1&&(t=$(e).find(".navbar-large.navbar-current")),t.length>1||!t.length))){var a=$(this.navbar.getPageByEl(t));t.addClass("navbar-large-collapsed"),a.eq(0).addClass("page-with-navbar-large-collapsed").trigger("page:navbarlargecollapsed"),this.emit("pageNavbarLargeCollapsed",a[0]),t.trigger("navbar:collapse"),this.emit("navbarCollapse",t[0])}},expandLargeTitle:function(e){var t=$(e);if(!(t.hasClass("navbars")&&((t=t.find(".navbar-large")).length>1&&(t=$(e).find(".navbar-large.navbar-current")),t.length>1||!t.length))){var a=$(this.navbar.getPageByEl(t));t.removeClass("navbar-large-collapsed"),a.eq(0).removeClass("page-with-navbar-large-collapsed").trigger("page:navbarlargeexpanded"),this.emit("pageNavbarLargeExpanded",a[0]),t.trigger("navbar:expand"),this.emit("navbarExpand",t[0])}},toggleLargeTitle:function(e){var t=$(e);t.hasClass("navbars")&&((t=t.find(".navbar-large")).length>1&&(t=$(e).find(".navbar-large.navbar-current")),t.length>1||!t.length)||(t.hasClass("navbar-large-collapsed")?this.navbar.expandLargeTitle(t):this.navbar.collapseLargeTitle(t))},initNavbarOnScroll:function(e,t,a,r,i){var n,s,o,l,p,c,d,u,h,f,v,m,g,b,y=this,w=$(e),C=$(t),x=C.find(".title-large"),k=x.length||C.hasClass(".navbar-large"),E=44,T=y.params.navbar.snapPageScrollToLargeTitle,S=y.params.navbar.snapPageScrollToTransparentNavbar;(r||a&&k)&&((h=C.css("--f7-navbar-large-title-height"))&&h.indexOf("px")>=0?(h=parseInt(h,10),Number.isNaN(h)&&x.length?h=x[0].offsetHeight:Number.isNaN(h)&&("ios"===y.theme?h=52:"md"===y.theme?h=48:"aurora"===y.theme&&(h=38))):x.length?h=x[0].offsetHeight:"ios"===y.theme?h=52:"md"===y.theme?h=48:"aurora"===y.theme&&(h=38)),a&&k&&(E+=h);function M(){C.hasClass("with-searchbar-expandable-enabled")||!m||s<0||(s>=h/2&&s=f/2&&s0&&O<1;C.hasClass("with-searchbar-expandable-enabled")||(u=C.hasClass("navbar-large-collapsed"),0===I&&u?y.navbar.expandLargeTitle(C[0]):1!==I||u||y.navbar.collapseLargeTitle(C[0]),0===I&&u||0===I&&t||1===I&&!u||1===I&&t?("md"===y.theme&&C.find(".navbar-inner").css("overflow",""),C.find(".title").css("opacity",""),C.find(".title-large-text, .subnavbar").css("transform",""),e?C.find(".navbar-bg").css("opacity",""):C.find(".navbar-bg").css("transform","")):I>0&&I<1&&("md"===y.theme&&C.find(".navbar-inner").css("overflow","visible"),C.find(".title").css("opacity",I),C.find(".title-large-text, .subnavbar").css("transform","translate3d(0px, "+-1*I*h+"px, 0)"),e?C.find(".navbar-bg").css("opacity",I):C.find(".navbar-bg").css("transform","translate3d(0px, "+-1*I*h+"px, 0)")),T&&(Support.touch?b&&(clearTimeout(b),b=null,b=setTimeout((function(){M(),clearTimeout(b),b=null}),70)):(clearTimeout(g),g=setTimeout((function(){M()}),300))))}}():i&&function(){var e=C.hasClass("navbar-hidden")||C.parent(".navbars").hasClass("navbar-hidden");if(!C.hasClass("with-searchbar-expandable-enabled")&&!e){f||(f=t.offsetHeight);var a=s/f,r=C.hasClass("navbar-transparent-visible");if(a=Math.max(Math.min(a,1),0),r&&1===a||!r&&0===a)C.find(".navbar-bg, .title").css("opacity","");else{if(r&&0===a)return C.trigger("navbar:transparenthide"),y.emit("navbarTransparentHide",C[0]),C.removeClass("navbar-transparent-visible"),void C.find(".navbar-bg, .title").css("opacity","");if(!r&&1===a)return C.trigger("navbar:transparentshow"),y.emit("navbarTransparentShow",C[0]),C.addClass("navbar-transparent-visible"),void C.find(".navbar-bg, .title").css("opacity","");C.find(".navbar-bg, .title").css("opacity",a),S&&(Support.touch?b&&(clearTimeout(b),b=null,b=setTimeout((function(){P(),clearTimeout(b),b=null}),70)):(clearTimeout(g),g=setTimeout((function(){P()}),300)))}}}(),w.hasClass("page-previous")||a&&(w.hasClass("page-with-card-opened")||(o=m.scrollHeight,l=m.offsetHeight,p=s+l>=o,d=C.hasClass("navbar-hidden")||C.parent(".navbars").hasClass("navbar-hidden"),p?y.params.navbar.showOnPageScrollEnd&&(c="show"):c=n>s?y.params.navbar.showOnPageScrollTop||s<=E?"show":"hide":s>E?"hide":"show","show"===c&&d?(y.navbar.show(C),d=!1):"hide"!==c||d||(y.navbar.hide(C),d=!0),n=s)))}function B(){v=!1}function R(){clearTimeout(b),b=null,b=setTimeout((function(){!1!==v&&(i&&!r?P():M(),clearTimeout(b),b=null)}),70)}w.on("scroll",".page-content",D,!0),Support.touch&&(r&&T||i&&S)&&(y.on("touchstart:passive",B),y.on("touchend:passive",R)),(r||i)&&w.find(".page-content").each((function(e,t){t.scrollTop>0&&D.call(t)})),w[0].f7DetachNavbarScrollHandlers=function(){delete w[0].f7DetachNavbarScrollHandlers,w.off("scroll",".page-content",D,!0),Support.touch&&(r&&T||i&&S)&&(y.off("touchstart:passive",B),y.off("touchend:passive",R))}}},Navbar$1={name:"navbar",create:function(){var e=this;Utils.extend(e,{navbar:{size:Navbar.size.bind(e),hide:Navbar.hide.bind(e),show:Navbar.show.bind(e),getElByPage:Navbar.getElByPage.bind(e),getPageByEl:Navbar.getPageByEl.bind(e),collapseLargeTitle:Navbar.collapseLargeTitle.bind(e),expandLargeTitle:Navbar.expandLargeTitle.bind(e),toggleLargeTitle:Navbar.toggleLargeTitle.bind(e),initNavbarOnScroll:Navbar.initNavbarOnScroll.bind(e)}})},params:{navbar:{scrollTopOnTitleClick:!0,iosCenterTitle:!0,mdCenterTitle:!1,auroraCenterTitle:!0,hideOnPageScroll:!1,showOnPageScrollEnd:!0,showOnPageScrollTop:!0,collapseLargeTitleOnScroll:!0,snapPageScrollToLargeTitle:!0,snapPageScrollToTransparentNavbar:!0}},on:{"panelBreakpoint panelCollapsedBreakpoint panelResize viewResize resize viewMasterDetailBreakpoint":function(){var e=this;$(".navbar").each((function(t,a){e.navbar.size(a)}))},pageBeforeRemove:function(e){e.$el[0].f7DetachNavbarScrollHandlers&&e.$el[0].f7DetachNavbarScrollHandlers()},pageBeforeIn:function(e){if("ios"===this.theme){var t,a=e.$el.parents(".view")[0].f7View,r=this.navbar.getElByPage(e);if(t=r?$(r).parents(".navbars"):e.$el.parents(".view").children(".navbars"),e.$el.hasClass("no-navbar")||a.router.dynamicNavbar&&!r){var i=!!(e.pageFrom&&e.router.history.length>0);this.navbar.hide(t,i)}else this.navbar.show(t)}},pageReinit:function(e){var t=$(this.navbar.getElByPage(e));t&&0!==t.length&&this.navbar.size(t)},pageInit:function(e){var t,a,r,i=$(this.navbar.getElByPage(e));i&&0!==i.length&&(this.navbar.size(i),i.find(".title-large").length>0&&i.addClass("navbar-large"),i.hasClass("navbar-large")&&(this.params.navbar.collapseLargeTitleOnScroll&&(t=!0),e.$el.addClass("page-with-navbar-large")),!t&&i.hasClass("navbar-transparent")&&(a=!0),(this.params.navbar.hideOnPageScroll||e.$el.find(".hide-navbar-on-scroll").length||e.$el.hasClass("hide-navbar-on-scroll")||e.$el.find(".hide-bars-on-scroll").length||e.$el.hasClass("hide-bars-on-scroll"))&&(r=!(e.$el.find(".keep-navbar-on-scroll").length||e.$el.hasClass("keep-navbar-on-scroll")||e.$el.find(".keep-bars-on-scroll").length||e.$el.hasClass("keep-bars-on-scroll"))),(t||r||a)&&this.navbar.initNavbarOnScroll(e.el,i[0],r,t,a))},"panelOpen panelSwipeOpen modalOpen":function(e){var t=this;e.$el.find(".navbar:not(.navbar-previous):not(.stacked)").each((function(e,a){t.navbar.size(a)}))},tabShow:function(e){var t=this;$(e).find(".navbar:not(.navbar-previous):not(.stacked)").each((function(e,a){t.navbar.size(a)}))}},clicks:{".navbar .title":function(e){if(this.params.navbar.scrollTopOnTitleClick&&!(e.closest("a").length>0)){var t,a=e.parents(".navbar"),r=a.parents(".navbars");0===(t=a.parents(".page-content")).length&&(a.parents(".page").length>0&&(t=a.parents(".page").find(".page-content")),0===t.length&&r.length&&r.nextAll(".page-current:not(.stacked)").length>0&&(t=r.nextAll(".page-current:not(.stacked)").find(".page-content")),0===t.length&&a.nextAll(".page-current:not(.stacked)").length>0&&(t=a.nextAll(".page-current:not(.stacked)").find(".page-content"))),t&&t.length>0&&(t.hasClass("tab")&&(t=t.parent(".tabs").children(".page-content.tab-active")),t.length>0&&t.scrollTop(0,300))}}},vnode:{navbar:{postpatch:function(e){this.navbar.size(e.elm)}}}},Toolbar={setHighlight:function(e){if("md"===this.theme){var t=$(e);if(0!==t.length&&(t.hasClass("tabbar")||t.hasClass("tabbar-labels"))){var a=t.find(".tab-link-highlight"),r=t.find(".tab-link").length;if(0!==r){0===a.length?(t.children(".toolbar-inner").append(''),a=t.find(".tab-link-highlight")):a.next().length&&t.children(".toolbar-inner").append(a);var i,n,s=t.find(".tab-link-active");if(t.hasClass("tabbar-scrollable")&&s&&s[0])i=s[0].offsetWidth+"px",n=s[0].offsetLeft+"px";else{var o=s.index();i=100/r+"%",n=100*(this.rtl?-o:o)+"%"}Utils.nextFrame((function(){a.css("width",i).transform("translate3d("+n+",0,0)")}))}else a.remove()}}},init:function(e){this.toolbar.setHighlight(e)},hide:function(e,t){void 0===t&&(t=!0);var a=$(e);if(!a.hasClass("toolbar-hidden")){var r="toolbar-hidden"+(t?" toolbar-transitioning":"");a.transitionEnd((function(){a.removeClass("toolbar-transitioning")})),a.addClass(r),a.trigger("toolbar:hide"),this.emit("toolbarHide",a[0])}},show:function(e,t){void 0===t&&(t=!0);var a=$(e);a.hasClass("toolbar-hidden")&&(t&&(a.addClass("toolbar-transitioning"),a.transitionEnd((function(){a.removeClass("toolbar-transitioning")}))),a.removeClass("toolbar-hidden"),a.trigger("toolbar:show"),this.emit("toolbarShow",a[0]))},initToolbarOnScroll:function(e){var t,a,r,i,n,s,o,l=this,p=$(e),c=p.parents(".view").children(".toolbar");(0===c.length&&(c=p.find(".toolbar")),0===c.length&&(c=p.parents(".views").children(".tabbar, .tabbar-labels")),0!==c.length)&&(p.on("scroll",".page-content",d,!0),p[0].f7ScrollToolbarHandler=d);function d(e){if(!p.hasClass("page-with-card-opened")&&!p.hasClass("page-previous")){e&&e.target&&e.target!==this||(a=this.scrollTop,r=this.scrollHeight,i=this.offsetHeight,n=a+i>=r,o=c.hasClass("toolbar-hidden"),n?l.params.toolbar.showOnPageScrollEnd&&(s="show"):s=t>a?l.params.toolbar.showOnPageScrollTop||a<=44?"show":"hide":a>44?"hide":"show","show"===s&&o?(l.toolbar.show(c),o=!1):"hide"!==s||o||(l.toolbar.hide(c),o=!0),t=a)}}}},Toolbar$1={name:"toolbar",create:function(){Utils.extend(this,{toolbar:{hide:Toolbar.hide.bind(this),show:Toolbar.show.bind(this),setHighlight:Toolbar.setHighlight.bind(this),initToolbarOnScroll:Toolbar.initToolbarOnScroll.bind(this),init:Toolbar.init.bind(this)}})},params:{toolbar:{hideOnPageScroll:!1,showOnPageScrollEnd:!0,showOnPageScrollTop:!0}},on:{pageBeforeRemove:function(e){e.$el[0].f7ScrollToolbarHandler&&e.$el.off("scroll",".page-content",e.$el[0].f7ScrollToolbarHandler,!0)},pageBeforeIn:function(e){var t=e.$el.parents(".view").children(".toolbar");0===t.length&&(t=e.$el.parents(".views").children(".tabbar, .tabbar-labels")),0===t.length&&(t=e.$el.find(".toolbar")),0!==t.length&&(e.$el.hasClass("no-toolbar")?this.toolbar.hide(t):this.toolbar.show(t))},pageInit:function(e){var t=this;if(e.$el.find(".tabbar, .tabbar-labels").each((function(e,a){t.toolbar.init(a)})),t.params.toolbar.hideOnPageScroll||e.$el.find(".hide-toolbar-on-scroll").length||e.$el.hasClass("hide-toolbar-on-scroll")||e.$el.find(".hide-bars-on-scroll").length||e.$el.hasClass("hide-bars-on-scroll")){if(e.$el.find(".keep-toolbar-on-scroll").length||e.$el.hasClass("keep-toolbar-on-scroll")||e.$el.find(".keep-bars-on-scroll").length||e.$el.hasClass("keep-bars-on-scroll"))return;t.toolbar.initToolbarOnScroll(e.el)}},init:function(){var e=this;e.root.find(".tabbar, .tabbar-labels").each((function(t,a){e.toolbar.init(a)}))}},vnode:{tabbar:{insert:function(e){this.toolbar.init(e.elm)}}}},Subnavbar={name:"subnavbar",on:{pageInit:function(e){e.$navbarEl&&e.$navbarEl.length&&e.$navbarEl.find(".subnavbar").length&&e.$el.addClass("page-with-subnavbar"),e.$el.find(".subnavbar").length&&e.$el.addClass("page-with-subnavbar")}}},TouchRipple=function(e,t,a){var r=this;if(e){var i=e[0].getBoundingClientRect(),n=t-i.left,s=a-i.top,o=i.width,l=i.height,p=Math.max(Math.pow(Math.pow(l,2)+Math.pow(o,2),.5),48);return r.$rippleWaveEl=$('
                '),e.prepend(r.$rippleWaveEl),r.rippleTransform="translate3d("+(o/2-n)+"px, "+(l/2-s)+"px, 0) scale(1)",Utils.nextFrame((function(){r&&r.$rippleWaveEl&&r.$rippleWaveEl.transform(r.rippleTransform)})),r}};TouchRipple.prototype.destroy=function(){var e=this;e.$rippleWaveEl&&e.$rippleWaveEl.remove(),Object.keys(e).forEach((function(t){e[t]=null,delete e[t]})),e=null},TouchRipple.prototype.remove=function(){var e=this;if(!e.removing){var t=this.$rippleWaveEl,a=this.rippleTransform,r=Utils.nextTick((function(){e.destroy()}),400);e.removing=!0,t.addClass("ripple-wave-fill").transform(a.replace("scale(1)","scale(1.01)")).transitionEnd((function(){clearTimeout(r),Utils.nextFrame((function(){t.addClass("ripple-wave-out").transform(a.replace("scale(1)","scale(1.01)")),r=Utils.nextTick((function(){e.destroy()}),700),t.transitionEnd((function(){clearTimeout(r),e.destroy()}))}))}))}};var TouchRipple$1={name:"touch-ripple",static:{TouchRipple:TouchRipple},create:function(){this.touchRipple={create:function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];return new(Function.prototype.bind.apply(TouchRipple,[null].concat(e)))}}}},openedModals=[],dialogsQueue=[];function clearDialogsQueue(){0!==dialogsQueue.length&&dialogsQueue.shift().open()}var Modal=function(e){function t(t,a){e.call(this,a,[t]);var r={};return this.useModulesParams(r),this.params=Utils.extend(r,a),this.opened=!1,this.useModules(),this}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.onOpen=function(){this.opened=!0,openedModals.push(this),$("html").addClass("with-modal-"+this.type.toLowerCase()),this.$el.trigger("modal:open "+this.type.toLowerCase()+":open"),this.emit("local::open modalOpen "+this.type+"Open",this)},t.prototype.onOpened=function(){this.$el.trigger("modal:opened "+this.type.toLowerCase()+":opened"),this.emit("local::opened modalOpened "+this.type+"Opened",this)},t.prototype.onClose=function(){this.opened=!1,this.type&&this.$el&&(openedModals.splice(openedModals.indexOf(this),1),$("html").removeClass("with-modal-"+this.type.toLowerCase()),this.$el.trigger("modal:close "+this.type.toLowerCase()+":close"),this.emit("local::close modalClose "+this.type+"Close",this))},t.prototype.onClosed=function(){this.type&&this.$el&&(this.$el.removeClass("modal-out"),this.$el.hide(),this.$el.trigger("modal:closed "+this.type.toLowerCase()+":closed"),this.emit("local::closed modalClosed "+this.type+"Closed",this))},t.prototype.open=function(e){var t,a=this,r=a.app,i=a.$el,n=a.$backdropEl,s=a.type,o=!0;if(void 0!==e?o=e:void 0!==a.params.animate&&(o=a.params.animate),!i||i.hasClass("modal-in"))return a;if("dialog"===s&&r.params.modal.queueDialogs&&($(".dialog.modal-in").length>0?t=!0:openedModals.length>0&&openedModals.forEach((function(e){"dialog"===e.type&&(t=!0)})),t))return dialogsQueue.push(a),a;var l=i.parent(),p=i.parents(doc).length>0;function c(){i.hasClass("modal-out")?a.onClosed():i.hasClass("modal-in")&&a.onOpened()}return r.params.modal.moveToRoot&&!l.is(r.root)&&(r.root.append(i),a.once(s+"Closed",(function(){p?l.append(i):i.remove()}))),i.show(),a._clientLeft=i[0].clientLeft,o?(n&&(n.removeClass("not-animated"),n.addClass("backdrop-in")),i.animationEnd((function(){c()})),i.transitionEnd((function(){c()})),i.removeClass("modal-out not-animated").addClass("modal-in"),a.onOpen()):(n&&n.addClass("backdrop-in not-animated"),i.removeClass("modal-out").addClass("modal-in not-animated"),a.onOpen(),a.onOpened()),a},t.prototype.close=function(e){var t=this,a=t.$el,r=t.$backdropEl,i=!0;if(void 0!==e?i=e:void 0!==t.params.animate&&(i=t.params.animate),!a||!a.hasClass("modal-in"))return dialogsQueue.indexOf(t)>=0&&dialogsQueue.splice(dialogsQueue.indexOf(t),1),t;if(r){var n=!0;"popup"===t.type&&t.$el.prevAll(".popup.modal-in").each((function(e,a){var r=a.f7Modal;r&&r.params.closeByBackdropClick&&r.params.backdrop&&r.backdropEl===t.backdropEl&&(n=!1)})),n&&(r[i?"removeClass":"addClass"]("not-animated"),r.removeClass("backdrop-in"))}function s(){a.hasClass("modal-out")?t.onClosed():a.hasClass("modal-in")&&t.onOpened()}return a[i?"removeClass":"addClass"]("not-animated"),i?(a.animationEnd((function(){s()})),a.transitionEnd((function(){s()})),a.removeClass("modal-in").addClass("modal-out"),t.onClose()):(a.addClass("not-animated").removeClass("modal-in").addClass("modal-out"),t.onClose(),t.onClosed()),"dialog"===t.type&&clearDialogsQueue(),t},t.prototype.destroy=function(){this.destroyed||(this.emit("local::beforeDestroy modalBeforeDestroy "+this.type+"BeforeDestroy",this),this.$el&&(this.$el.trigger("modal:beforedestroy "+this.type.toLowerCase()+":beforedestroy"),this.$el.length&&this.$el[0].f7Modal&&delete this.$el[0].f7Modal),Utils.deleteProps(this),this.destroyed=!0)},t}(Framework7Class),CustomModal=function(e){function t(t,a){var r=Utils.extend({backdrop:!0,closeByBackdropClick:!0,on:{}},a);e.call(this,t,r);var i,n,s=this;if(s.params=r,(i=s.params.el?$(s.params.el):$(s.params.content))&&i.length>0&&i[0].f7Modal)return i[0].f7Modal;if(0===i.length)return s.destroy();function o(e){s&&!s.destroyed&&n&&e.target===n[0]&&s.close()}return s.params.backdrop&&0===(n=t.root.children(".custom-modal-backdrop")).length&&(n=$('
                '),t.root.append(n)),s.on("customModalOpened",(function(){s.params.closeByBackdropClick&&s.params.backdrop&&t.on("click",o)})),s.on("customModalClose",(function(){s.params.closeByBackdropClick&&s.params.backdrop&&t.off("click",o)})),Utils.extend(s,{app:t,$el:i,el:i[0],$backdropEl:n,backdropEl:n&&n[0],type:"customModal"}),i[0].f7Modal=s,s}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t}(Modal),Modal$1={name:"modal",static:{Modal:Modal,CustomModal:CustomModal},create:function(){var e=this;e.customModal={create:function(t){return new CustomModal(e,t)}}},params:{modal:{moveToRoot:!0,queueDialogs:!0}}},Appbar={name:"appbar"},Dialog=function(e){function t(t,a){var r=Utils.extend({title:t.params.dialog.title,text:void 0,content:"",buttons:[],verticalButtons:!1,onClick:void 0,cssClass:void 0,destroyOnClose:!1,on:{}},a);void 0===r.closeByBackdropClick&&(r.closeByBackdropClick=t.params.dialog.closeByBackdropClick),void 0===r.backdrop&&(r.backdrop=t.params.dialog.backdrop),e.call(this,t,r);var i,n,s,o=this,l=r.title,p=r.text,c=r.content,d=r.buttons,u=r.verticalButtons,h=r.cssClass,f=r.backdrop;if(o.params=r,o.params.el)i=$(o.params.el);else{var v=["dialog"];0===d.length&&v.push("dialog-no-buttons"),d.length>0&&v.push("dialog-buttons-"+d.length),u&&v.push("dialog-buttons-vertical"),h&&v.push(h);var m="";d.length>0&&(m='\n
                \n '+d.map((function(e){return'\n '+e.text+"\n "})).join("")+"\n
                \n ");var g='\n
                \n
                \n '+(l?'
                '+l+"
                ":"")+"\n "+(p?'
                '+p+"
                ":"")+"\n "+c+"\n
                \n "+m+"\n
                \n ";i=$(g)}if(i&&i.length>0&&i[0].f7Modal)return i[0].f7Modal;if(0===i.length)return o.destroy();function b(e){var t=$(this).index(),a=d[t];a.onClick&&a.onClick(o,e),o.params.onClick&&o.params.onClick(o,t),!1!==a.close&&o.close()}function y(e){var t=e.keyCode;d.forEach((function(a,r){a.keyCodes&&a.keyCodes.indexOf(t)>=0&&(doc.activeElement&&doc.activeElement.blur(),a.onClick&&a.onClick(o,e),o.params.onClick&&o.params.onClick(o,r),!1!==a.close&&o.close())}))}function w(e){var t=e.target;0===$(t).closest(o.el).length&&o.params.closeByBackdropClick&&o.backdropEl&&o.backdropEl===t&&o.close()}return f&&0===(n=t.root.children(".dialog-backdrop")).length&&(n=$('
                '),t.root.append(n)),d&&d.length>0&&(o.on("open",(function(){i.find(".dialog-button").each((function(e,t){d[e].keyCodes&&(s=!0),$(t).on("click",b)})),!s||t.device.ios||t.device.android||t.device.cordova||$(doc).on("keydown",y)})),o.on("close",(function(){i.find(".dialog-button").each((function(e,t){$(t).off("click",b)})),!s||t.device.ios||t.device.android||t.device.cordova||$(doc).off("keydown",y),s=!1}))),Utils.extend(o,{app:t,$el:i,el:i[0],$backdropEl:n,backdropEl:n&&n[0],type:"dialog",setProgress:function(e,a){return t.progressbar.set(i.find(".progressbar"),e,a),o},setText:function(e){var t=i.find(".dialog-text");return 0===t.length&&(t=$('
                '),void 0!==l?t.insertAfter(i.find(".dialog-title")):i.find(".dialog-inner").prepend(t)),t.html(e),o.params.text=e,o},setTitle:function(e){var t=i.find(".dialog-title");return 0===t.length&&(t=$('
                '),i.find(".dialog-inner").prepend(t)),t.html(e),o.params.title=e,o}}),o.on("opened",(function(){o.params.closeByBackdropClick&&t.on("click",w)})),o.on("close",(function(){o.params.closeByBackdropClick&&t.off("click",w)})),i[0].f7Modal=o,o.params.destroyOnClose&&o.once("closed",(function(){setTimeout((function(){o.destroy()}),0)})),o}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t}(Modal),Dialog$1={name:"dialog",params:{dialog:{title:void 0,buttonOk:"OK",buttonCancel:"Cancel",usernamePlaceholder:"Username",passwordPlaceholder:"Password",preloaderTitle:"Loading... ",progressTitle:"Loading... ",backdrop:!0,closeByBackdropClick:!1,destroyPredefinedDialogs:!0,keyboardActions:!0,autoFocus:!0}},static:{Dialog:Dialog},create:function(){var e=this;function t(){return e.params.dialog.title||e.name}var a=e.params.dialog.destroyPredefinedDialogs,r=e.params.dialog.keyboardActions,i=e.params.dialog.autoFocus?{on:{opened:function(e){e.$el.find("input").eq(0).focus()}}}:{};e.dialog=Utils.extend(ModalMethods({app:e,constructor:Dialog,defaultSelector:".dialog.modal-in"}),{alert:function(){for(var i,n=[],s=arguments.length;s--;)n[s]=arguments[s];var o=n[0],l=n[1],p=n[2];return 2===n.length&&"function"==typeof n[1]&&(o=(i=n)[0],p=i[1],l=i[2]),new Dialog(e,{title:void 0===l?t():l,text:o,buttons:[{text:e.params.dialog.buttonOk,bold:!0,onClick:p,keyCodes:r?[13,27]:null}],destroyOnClose:a}).open()},prompt:function(){for(var n,s=[],o=arguments.length;o--;)s[o]=arguments[o];var l=s[0],p=s[1],c=s[2],d=s[3],u=s[4];return"function"==typeof s[1]&&(l=(n=s)[0],c=n[1],d=n[2],u=n[3],p=n[4]),u=null==u?"":u,new Dialog(e,Object.assign({},{title:void 0===p?t():p,text:l,content:'
                ',buttons:[{text:e.params.dialog.buttonCancel,keyCodes:r?[27]:null,color:"aurora"===e.theme?"gray":null},{text:e.params.dialog.buttonOk,bold:!0,keyCodes:r?[13]:null}],onClick:function(e,t){var a=e.$el.find(".dialog-input").val();0===t&&d&&d(a),1===t&&c&&c(a)},destroyOnClose:a},i)).open()},confirm:function(){for(var i,n=[],s=arguments.length;s--;)n[s]=arguments[s];var o=n[0],l=n[1],p=n[2],c=n[3];return"function"==typeof n[1]&&(o=(i=n)[0],p=i[1],c=i[2],l=i[3]),new Dialog(e,{title:void 0===l?t():l,text:o,buttons:[{text:e.params.dialog.buttonCancel,onClick:c,keyCodes:r?[27]:null,color:"aurora"===e.theme?"gray":null},{text:e.params.dialog.buttonOk,bold:!0,onClick:p,keyCodes:r?[13]:null}],destroyOnClose:a}).open()},login:function(){for(var n,s=[],o=arguments.length;o--;)s[o]=arguments[o];var l=s[0],p=s[1],c=s[2],d=s[3];return"function"==typeof s[1]&&(l=(n=s)[0],c=n[1],d=n[2],p=n[3]),new Dialog(e,Object.assign({},{title:void 0===p?t():p,text:l,content:'\n
                \n \n
                \n
                \n \n
                ',buttons:[{text:e.params.dialog.buttonCancel,keyCodes:r?[27]:null,color:"aurora"===e.theme?"gray":null},{text:e.params.dialog.buttonOk,bold:!0,keyCodes:r?[13]:null}],onClick:function(e,t){var a=e.$el.find('[name="dialog-username"]').val(),r=e.$el.find('[name="dialog-password"]').val();0===t&&d&&d(a,r),1===t&&c&&c(a,r)},destroyOnClose:a},i)).open()},password:function(){for(var n,s=[],o=arguments.length;o--;)s[o]=arguments[o];var l=s[0],p=s[1],c=s[2],d=s[3];return"function"==typeof s[1]&&(l=(n=s)[0],c=n[1],d=n[2],p=n[3]),new Dialog(e,Object.assign({},{title:void 0===p?t():p,text:l,content:'\n
                \n \n
                ',buttons:[{text:e.params.dialog.buttonCancel,keyCodes:r?[27]:null,color:"aurora"===e.theme?"gray":null},{text:e.params.dialog.buttonOk,bold:!0,keyCodes:r?[13]:null}],onClick:function(e,t){var a=e.$el.find('[name="dialog-password"]').val();0===t&&d&&d(a),1===t&&c&&c(a)},destroyOnClose:a},i)).open()},preloader:function(t,r){var i=Utils[e.theme+"PreloaderContent"]||"";return new Dialog(e,{title:null==t?e.params.dialog.preloaderTitle:t,content:'
                '+i+"
                ",cssClass:"dialog-preloader",destroyOnClose:a}).open()},progress:function(){for(var t,r,i,n=[],s=arguments.length;s--;)n[s]=arguments[s];var o=n[0],l=n[1],p=n[2];2===n.length?"number"==typeof n[0]?(l=(t=n)[0],p=t[1],o=t[2]):"string"==typeof n[0]&&"string"==typeof n[1]&&(o=(r=n)[0],p=r[1],l=r[2]):1===n.length&&"number"==typeof n[0]&&(l=(i=n)[0],o=i[1],p=i[2]);var c=void 0===l,d=new Dialog(e,{title:void 0===o?e.params.dialog.progressTitle:o,cssClass:"dialog-progress",content:'\n
                \n '+(c?"":"")+"\n
                \n ",destroyOnClose:a});return c||d.setProgress(l),d.open()}})}},Popup=function(e){function t(t,a){var r=Utils.extend({on:{}},t.params.popup,a);e.call(this,t,r);var i,n,s,o,l=this;if(l.params=r,(i=l.params.el?$(l.params.el).eq(0):$(l.params.content).filter((function(e,t){return 1===t.nodeType})).eq(0))&&i.length>0&&i[0].f7Modal)return i[0].f7Modal;if(0===i.length)return l.destroy();function p(e){var a=e.target,r=$(a);if(!(!t.device.desktop&&t.device.cordova&&(win.Keyboard&&win.Keyboard.isVisible||win.cordova.plugins&&win.cordova.plugins.Keyboard&&win.cordova.plugins.Keyboard.isVisible))&&0===r.closest(l.el).length&&l.params&&l.params.closeByBackdropClick&&l.params.backdrop&&l.backdropEl&&l.backdropEl===a){var i=!0;l.$el.nextAll(".popup.modal-in").each((function(e,t){var a=t.f7Modal;a&&a.params.closeByBackdropClick&&a.params.backdrop&&a.backdropEl===l.backdropEl&&(i=!1)})),i&&l.close()}}function c(e){27===e.keyCode&&l.params.closeOnEscape&&l.close()}function d(e){return(t.height-2*e)/t.height}l.params.backdrop&&l.params.backdropEl?n=$(l.params.backdropEl):l.params.backdrop&&0===(n=t.root.children(".popup-backdrop")).length&&(n=$(''),t.root.append(n)),Utils.extend(l,{app:t,push:i.hasClass("popup-push")||l.params.push,$el:i,el:i[0],$backdropEl:n,backdropEl:n&&n[0],type:"popup",$htmlEl:$("html")}),l.params.push&&i.addClass("popup-push");var u,h,f,v,m,g,b,y,w,C,x,k=!0,E=!1,T=!1;function S(e){!E&&k&&l.params.swipeToClose&&(l.params.swipeHandler&&0===$(e.target).closest(l.params.swipeHandler).length||(E=!0,T=!1,u={x:"touchstart"===e.type?e.targetTouches[0].pageX:e.pageX,y:"touchstart"===e.type?e.targetTouches[0].pageY:e.pageY},v=Utils.now(),f=void 0,l.params.swipeHandler||"touchstart"!==e.type||(g=$(e.target).closest(".page-content")[0])))}function M(e){if(E){if(h={x:"touchmove"===e.type?e.targetTouches[0].pageX:e.pageX,y:"touchmove"===e.type?e.targetTouches[0].pageY:e.pageY},void 0===f&&(f=!!(f||Math.abs(h.x-u.x)>Math.abs(h.y-u.y))),f)return E=!1,void(T=!1);m=u.y-h.y,o&&s&&m>0&&(m=0);var a=m<0?"to-bottom":"to-top";if(i.transition(0),"string"==typeof l.params.swipeToClose&&a!==l.params.swipeToClose)return i.transform(""),void i.transition("");if(T)l.emit("local::swipeMove popupSwipeMove",l),l.$el.trigger("popup:swipemove");else{if(o&&s&&(C=i[0].offsetHeight,0===(x=i.prevAll(".popup.modal-in").eq(0)).length&&(x=t.root.children(".view, .views"))),g&&(b=g.scrollTop,w=g.scrollHeight,y=g.offsetHeight,!(w===y||"to-bottom"===a&&0===b||"to-top"===a&&b===w-y)))return i.transform(""),i.transition(""),E=!1,void(T=!1);T=!0,l.emit("local::swipeStart popupSwipeStart",l),l.$el.trigger("popup:swipestart")}if(e.preventDefault(),o&&s){var r=1-Math.abs(m/C),n=1-(1-d(s))*r;x.hasClass("popup")?x.hasClass("popup-push")?x.transition(0).transform("translate3d(0, calc(-1 * "+r+" * (var(--f7-popup-push-offset) + 10px)) , 0px) scale("+n+")"):x.transition(0).transform("translate3d(0, 0px , 0px) scale("+n+")"):x.transition(0).transform("translate3d(0,0,0) scale("+n+")")}i.transition(0).transform("translate3d(0,"+-m+"px,0)")}}function P(){if(E=!1,T){l.emit("local::swipeEnd popupSwipeEnd",l),l.$el.trigger("popup:swipeend"),T=!1,k=!1,i.transition(""),o&&s&&x.transition("").transform("");var e=m<=0?"to-bottom":"to-top";if("string"==typeof l.params.swipeToClose&&e!==l.params.swipeToClose)return i.transform(""),void(k=!0);var t=Math.abs(m),a=(new Date).getTime()-v;a<300&&t>20||a>=300&&t>100?Utils.nextTick((function(){"to-bottom"===e?i.addClass("swipe-close-to-bottom"):i.addClass("swipe-close-to-top"),i.transform(""),l.emit("local::swipeclose popupSwipeClose",l),l.$el.trigger("popup:swipeclose"),l.close(),k=!0})):(k=!0,i.transform(""))}}var O,I=!!Support.passiveListener&&{passive:!0};return l.params.swipeToClose&&(i.on(t.touchEvents.start,S,I),t.on("touchmove",M),t.on("touchend:passive",P),l.once("popupDestroy",(function(){i.off(t.touchEvents.start,S,I),t.off("touchmove",M),t.off("touchend:passive",P)}))),l.on("open",(function(){O=!1,l.params.closeOnEscape&&$(doc).on("keydown",c),i.prevAll(".popup.modal-in").addClass("popup-behind"),l.push&&(o=l.push&&(t.width<630||t.height<630||i.hasClass("popup-tablet-fullscreen"))),o&&(s=parseInt(i.css("--f7-popup-push-offset"),10),Number.isNaN(s)&&(s=0),s&&(i.addClass("popup-push"),l.$htmlEl.addClass("with-modal-popup-push"),l.$htmlEl[0].style.setProperty("--f7-popup-push-scale",d(s))))})),l.on("opened",(function(){i.removeClass("swipe-close-to-bottom swipe-close-to-top"),l.params.closeByBackdropClick&&t.on("click",p)})),l.on("close",(function(){O=l.$el.prevAll(".popup-push.modal-in").length>0,l.params.closeOnEscape&&$(doc).off("keydown",c),l.params.closeByBackdropClick&&t.off("click",p),i.prevAll(".popup.modal-in").eq(0).removeClass("popup-behind"),o&&s&&!O&&(l.$htmlEl.removeClass("with-modal-popup-push"),l.$htmlEl.addClass("with-modal-popup-push-closing"))})),l.on("closed",(function(){o&&s&&!O&&(l.$htmlEl.removeClass("with-modal-popup-push-closing"),l.$htmlEl[0].style.removeProperty("--f7-popup-push-scale"))})),i[0].f7Modal=l,l}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t}(Modal),Popup$1={name:"popup",params:{popup:{backdrop:!0,backdropEl:void 0,closeByBackdropClick:!0,closeOnEscape:!1,swipeToClose:!1,swipeHandler:null,push:!1}},static:{Popup:Popup},create:function(){this.popup=ModalMethods({app:this,constructor:Popup,defaultSelector:".popup.modal-in",parentSelector:".popup"})},clicks:{".popup-open":function(e,t){void 0===t&&(t={});this.popup.open(t.popup,t.animate,e)},".popup-close":function(e,t){void 0===t&&(t={});this.popup.close(t.popup,t.animate,e)}}},LoginScreen=function(e){function t(t,a){var r=Utils.extend({on:{}},a);e.call(this,t,r);var i;return this.params=r,(i=this.params.el?$(this.params.el).eq(0):$(this.params.content).filter((function(e,t){return 1===t.nodeType})).eq(0))&&i.length>0&&i[0].f7Modal?i[0].f7Modal:0===i.length?this.destroy():(Utils.extend(this,{app:t,$el:i,el:i[0],type:"loginScreen"}),i[0].f7Modal=this,this)}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t}(Modal),LoginScreen$1={name:"loginScreen",static:{LoginScreen:LoginScreen},create:function(){this.loginScreen=ModalMethods({app:this,constructor:LoginScreen,defaultSelector:".login-screen.modal-in"})},clicks:{".login-screen-open":function(e,t){void 0===t&&(t={});this.loginScreen.open(t.loginScreen,t.animate,e)},".login-screen-close":function(e,t){void 0===t&&(t={});this.loginScreen.close(t.loginScreen,t.animate,e)}}},Popover=function(e){function t(t,a){var r=Utils.extend({on:{}},t.params.popover,a);e.call(this,t,r);var i,n=this;if(n.params=r,(i=n.params.el?$(n.params.el).eq(0):$(n.params.content).filter((function(e,t){return 1===t.nodeType})).eq(0))&&i.length>0&&i[0].f7Modal)return i[0].f7Modal;var s,o,l=$(n.params.targetEl).eq(0);if(0===i.length)return n.destroy();n.params.backdrop&&n.params.backdropEl?s=$(n.params.backdropEl):n.params.backdrop&&0===(s=t.root.children(".popover-backdrop")).length&&(s=$('
                '),t.root.append(s)),0===i.find(".popover-angle").length?(o=$('
                '),i.prepend(o)):o=i.find(".popover-angle");var p=n.open;function c(){n.resize()}function d(e){var a=e.target,r=$(a);!t.device.desktop&&t.device.cordova&&(win.Keyboard&&win.Keyboard.isVisible||win.cordova.plugins&&win.cordova.plugins.Keyboard&&win.cordova.plugins.Keyboard.isVisible)||0===r.closest(n.el).length&&(n.params.closeByBackdropClick&&n.params.backdrop&&n.backdropEl&&n.backdropEl===a||n.params.closeByOutsideClick)&&n.close()}function u(e){27===e.keyCode&&n.params.closeOnEscape&&n.close()}return Utils.extend(n,{app:t,$el:i,el:i[0],$targetEl:l,targetEl:l[0],$angleEl:o,angleEl:o[0],$backdropEl:s,backdropEl:s&&s[0],type:"popover",open:function(){for(var e,t=[],a=arguments.length;a--;)t[a]=arguments[a];var r=t[0],i=t[1];return"boolean"==typeof t[0]&&(i=(e=t)[0],r=e[1]),r&&(n.$targetEl=$(r),n.targetEl=n.$targetEl[0]),p.call(n,i)}}),n.on("popoverOpen",(function(){n.resize(),t.on("resize",c),$(win).on("keyboardDidShow keyboardDidHide",c),n.on("popoverClose popoverBeforeDestroy",(function(){t.off("resize",c),$(win).off("keyboardDidShow keyboardDidHide",c)}))})),n.params.closeOnEscape&&(n.on("popoverOpen",(function(){$(doc).on("keydown",u)})),n.on("popoverClose",(function(){$(doc).off("keydown",u)}))),n.on("popoverOpened",(function(){(n.params.closeByOutsideClick||n.params.closeByBackdropClick)&&t.on("click",d)})),n.on("popoverClose",(function(){(n.params.closeByOutsideClick||n.params.closeByBackdropClick)&&t.off("click",d)})),i[0].f7Modal=n,n}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.resize=function(){var e=this.app,t=this.$el,a=this.$targetEl,r=this.$angleEl,i=this.params,n=i.targetX,s=i.targetY;t.css({left:"",top:""});var o,l,p,c,d,u,h=[t.width(),t.height()],f=h[0],v=h[1],m=0;"ios"===e.theme||"aurora"===e.theme?(r.removeClass("on-left on-right on-top on-bottom").css({left:"",top:""}),m=r.width()/2):t.removeClass("popover-on-left popover-on-right popover-on-top popover-on-bottom popover-on-middle").css({left:"",top:""});var g=parseInt($("html").css("--f7-safe-area-top"),10);if(Number.isNaN(g)&&(g=0),a&&a.length>0){p=a.outerWidth(),c=a.outerHeight();var b=a.offset();d=b.left-e.left,u=b.top-e.top;var y=a.parents(".page");y.length>0&&(u-=y[0].scrollTop)}else void 0!==n&&"undefined"!==s&&(d=n,u=s,p=this.params.targetWidth||0,c=this.params.targetHeight||0);var w,C=[0,0,0],x=C[0],k=C[1],E=C[2],T="md"===e.theme?"bottom":"top";"md"===e.theme?(ve.width)&&(x<5&&(x=d+p+m),x+f>e.width&&(x=e.width-f-5),r.removeClass("on-right").addClass("on-left")),l=v/2-m+E,l=Math.max(Math.min(l,v-2*m-13),13),r.css({top:l+"px"})));t.css({top:k+"px",left:x+"px"})},t}(Modal),Popover$1={name:"popover",params:{popover:{backdrop:!0,backdropEl:void 0,closeByBackdropClick:!0,closeByOutsideClick:!0,closeOnEscape:!1}},static:{Popover:Popover},create:function(){var e=this;e.popover=Utils.extend(ModalMethods({app:e,constructor:Popover,defaultSelector:".popover.modal-in"}),{open:function(t,a,r){var i=$(t);if(i.length>1){var n=$(a).parents(".page");n.length&&i.each((function(e,t){var a=$(t);a.parents(n)[0]===n[0]&&(i=a)}))}i.length>1&&(i=i.eq(i.length-1));var s=i[0].f7Modal,o=i.dataset();return s||(s=new Popover(e,Object.assign({el:i,targetEl:a},o))),s.open(a,r)}})},clicks:{".popover-open":function(e,t){void 0===t&&(t={});this.popover.open(t.popover,e,t.animate)},".popover-close":function(e,t){void 0===t&&(t={});this.popover.close(t.popover,t.animate,e)}}},Actions=function(e){function t(t,a){var r=Utils.extend({on:{}},t.params.actions,a);e.call(this,t,r);var i,n,s,o=this;if(o.params=r,o.params.buttons&&(i=o.params.buttons,Array.isArray(i[0])||(i=[i])),o.groups=i,o.params.el?n=$(o.params.el).eq(0):o.params.content?n=$(o.params.content).filter((function(e,t){return 1===t.nodeType})).eq(0):o.params.buttons&&(o.params.convertToPopover&&(o.popoverHtml=o.renderPopover()),o.actionsHtml=o.render()),n&&n.length>0&&n[0].f7Modal)return n[0].f7Modal;if(n&&0===n.length&&!o.actionsHtml&&!o.popoverHtml)return o.destroy();o.params.backdrop&&o.params.backdropEl?s=$(o.params.backdropEl):o.params.backdrop&&0===(s=t.root.children(".actions-backdrop")).length&&(s=$('
                '),t.root.append(s));var l,p=o.open,c=o.close;function d(e){var t,a,r=$(this);if(r.hasClass("list-button")||r.hasClass("item-link")?(t=r.parents("li").index(),a=r.parents(".list").index()):(t=r.index(),a=r.parents(".actions-group").index()),void 0!==i){var n=i[a][t];n.onClick&&n.onClick(o,e),o.params.onClick&&o.params.onClick(o,e),!1!==n.close&&o.close()}}function u(e){var a=e.target,r=$(a);!t.device.desktop&&t.device.cordova&&(win.Keyboard&&win.Keyboard.isVisible||win.cordova.plugins&&win.cordova.plugins.Keyboard&&win.cordova.plugins.Keyboard.isVisible)||0===r.closest(o.el).length&&(o.params.closeByBackdropClick&&o.params.backdrop&&o.backdropEl&&o.backdropEl===a||o.params.closeByOutsideClick)&&o.close()}function h(e){27===e.keyCode&&o.params.closeOnEscape&&o.close()}return o.open=function(e){var a=!1,r=o.params,i=r.targetEl,n=r.targetX,s=r.targetY,c=r.targetWidth,u=r.targetHeight;return o.params.convertToPopover&&(i||void 0!==n&&void 0!==s)&&(o.params.forceToPopover||t.device.ios&&t.device.ipad||t.width>=768||t.device.desktop&&"aurora"===t.theme)&&(a=!0),a&&o.popoverHtml?((l=t.popover.create({content:o.popoverHtml,backdrop:o.params.backdrop,targetEl:i,targetX:n,targetY:s,targetWidth:c,targetHeight:u,on:{open:function(){o.$el||(o.$el=l.$el),o.$el.trigger("modal:open "+o.type.toLowerCase()+":open"),o.emit("local::open modalOpen "+o.type+"Open",o)},opened:function(){o.$el||(o.$el=l.$el),o.$el.trigger("modal:opened "+o.type.toLowerCase()+":opened"),o.emit("local::opened modalOpened "+o.type+"Opened",o)},close:function(){o.$el||(o.$el=l.$el),o.$el.trigger("modal:close "+o.type.toLowerCase()+":close"),o.emit("local::close modalClose "+o.type+"Close",o)},closed:function(){o.$el||(o.$el=l.$el),o.$el.trigger("modal:closed "+o.type.toLowerCase()+":closed"),o.emit("local::closed modalClosed "+o.type+"Closed",o)}}})).open(e),l.once("popoverOpened",(function(){l.$el.find(".list-button, .item-link").each((function(e,t){$(t).on("click",d)}))})),l.once("popoverClosed",(function(){l.$el.find(".list-button, .item-link").each((function(e,t){$(t).off("click",d)})),Utils.nextTick((function(){l.destroy(),l=void 0}))}))):(o.$el=o.actionsHtml?$(o.actionsHtml):o.$el,o.$el[0].f7Modal=o,o.groups&&(o.$el.find(".actions-button").each((function(e,t){$(t).on("click",d)})),o.once("actionsClosed",(function(){o.$el.find(".actions-button").each((function(e,t){$(t).off("click",d)}))}))),o.el=o.$el[0],p.call(o,e)),o},o.close=function(e){return l?l.close(e):c.call(o,e),o},Utils.extend(o,{app:t,$el:n,el:n?n[0]:void 0,$backdropEl:s,backdropEl:s&&s[0],type:"actions"}),o.params.closeOnEscape&&(o.on("open",(function(){$(doc).on("keydown",h)})),o.on("close",(function(){$(doc).off("keydown",h)}))),o.on("opened",(function(){(o.params.closeByBackdropClick||o.params.closeByOutsideClick)&&t.on("click",u)})),o.on("close",(function(){(o.params.closeByBackdropClick||o.params.closeByOutsideClick)&&t.off("click",u)})),n&&(n[0].f7Modal=o),o}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.render=function(){if(this.params.render)return this.params.render.call(this,this);var e=this.groups,t=this.params.cssClass;return('\n
                \n '+e.map((function(e){return'
                \n '+e.map((function(e){var t=["actions-"+(e.label?"label":"button")],a=e.color,r=e.bg,i=e.bold,n=e.disabled,s=e.label,o=e.text,l=e.icon;return a&&t.push("color-"+a),r&&t.push("bg-color-"+r),i&&t.push("actions-button-bold"),n&&t.push("disabled"),s?'
                '+o+"
                ":('\n
                \n '+(l?'
                '+l+"
                ":"")+'\n
                '+o+"
                \n
                ").trim()})).join("")+"\n
                "})).join("")+"\n
                \n ").trim()},t.prototype.renderPopover=function(){if(this.params.renderPopover)return this.params.renderPopover.call(this,this);var e=this.groups;return('\n
                \n
                \n '+e.map((function(e){return'\n
                \n
                  \n '+e.map((function(e){var t=[],a=e.color,r=e.bg,i=e.bold,n=e.disabled,s=e.label,o=e.text,l=e.icon;return a&&t.push("color-"+a),r&&t.push("bg-color-"+r),i&&t.push("popover-from-actions-bold"),n&&t.push("disabled"),s?(t.push("popover-from-actions-label"),'
                • '+o+"
                • "):l?(t.push("item-link item-content"),'\n
                • \n \n
                  \n '+l+'\n
                  \n
                  \n
                  \n '+o+"\n
                  \n
                  \n
                  \n
                • \n "):(t.push("list-button"),'\n
                • \n '+o+"\n
                • \n ")})).join("")+"\n
                \n
                \n "})).join("")+"\n
                \n
                \n ").trim()},t}(Modal),Actions$1={name:"actions",params:{actions:{convertToPopover:!0,forceToPopover:!1,backdrop:!0,backdropEl:void 0,cssClass:null,closeByBackdropClick:!0,closeOnEscape:!1,render:null,renderPopover:null}},static:{Actions:Actions},create:function(){this.actions=ModalMethods({app:this,constructor:Actions,defaultSelector:".actions-modal.modal-in"})},clicks:{".actions-open":function(e,t){void 0===t&&(t={});this.actions.open(t.actions,t.animate,e)},".actions-close":function(e,t){void 0===t&&(t={});this.actions.close(t.actions,t.animate,e)}}},Sheet=function(e){function t(t,a){var r=Utils.extend({on:{}},t.params.sheet,a);e.call(this,t,r);var i,n,s,o,l=this;if(l.params=r,void 0===l.params.backdrop&&(l.params.backdrop="ios"!==t.theme),(i=l.params.el?$(l.params.el).eq(0):$(l.params.content).filter((function(e,t){return 1===t.nodeType})).eq(0))&&i.length>0&&i[0].f7Modal)return i[0].f7Modal;if(0===i.length)return l.destroy();function p(e){var a=e.target,r=$(a);!t.device.desktop&&t.device.cordova&&(win.Keyboard&&win.Keyboard.isVisible||win.cordova.plugins&&win.cordova.plugins.Keyboard&&win.cordova.plugins.Keyboard.isVisible)||0===r.closest(l.el).length&&(l.params.closeByBackdropClick&&l.params.backdrop&&l.backdropEl&&l.backdropEl===a||l.params.closeByOutsideClick)&&l.close()}function c(e){27===e.keyCode&&l.params.closeOnEscape&&l.close()}function d(e){return(t.height-2*e)/t.height}l.params.backdrop&&l.params.backdropEl?n=$(l.params.backdropEl):l.params.backdrop&&0===(n=t.root.children(".sheet-backdrop")).length&&(n=$('
                '),t.root.append(n)),Utils.extend(l,{app:t,push:i.hasClass("sheet-modal-push")||l.params.push,$el:i,el:i[0],$backdropEl:n,backdropEl:n&&n[0],type:"sheet",$htmlEl:$("html")}),l.params.push&&i.addClass("sheet-modal-push");var u,h,f,v,m,g,b,y,w,C,x,k,E,T,S,M,P,O,I=!1,D=!1;function B(e){I||!l.params.swipeToClose&&!l.params.swipeToStep||l.params.swipeHandler&&0===$(e.target).closest(l.params.swipeHandler).length||(I=!0,D=!1,u={x:"touchstart"===e.type?e.targetTouches[0].pageX:e.pageX,y:"touchstart"===e.type?e.targetTouches[0].pageY:e.pageY},v=Utils.now(),f=void 0,g=i.hasClass("sheet-modal-top"),l.params.swipeHandler||"touchstart"!==e.type||(S=$(e.target).closest(".page-content")[0]))}function R(e){if(I){if(h={x:"touchmove"===e.type?e.targetTouches[0].pageX:e.pageX,y:"touchmove"===e.type?e.targetTouches[0].pageY:e.pageY},void 0===f&&(f=!!(f||Math.abs(h.x-u.x)>Math.abs(h.y-u.y))),f)return I=!1,void(D=!1);var a,r=(m=u.y-h.y)<0?"to-bottom":"to-top";if(!D){if(S&&!i.hasClass("modal-in-swipe-step")&&(M=S.scrollTop,P=S.scrollHeight,O=S.offsetHeight,!(P===O||"to-bottom"===r&&0===M||"to-top"===r&&M===P-O)))return i.transform(""),I=!1,void(D=!1);l.push&&o&&(E=t.root.children(".view, .views")),C=i[0].offsetHeight,y=Utils.getTranslate(i[0],"y"),g?(x=l.params.swipeToClose?-C:-b,k=0):(x=0,k=l.params.swipeToClose?C:b),D=!0}if(w=y-m,w=Math.min(Math.max(w,x),k),e.preventDefault(),l.push&&o){var n=(w-y)/C;l.params.swipeToStep&&(n=g?w/b:1-(b-w)/b),n=Math.abs(n);var s=1-(n=Math.min(Math.max(n,0),1)),p=1-(1-d(o))*s;E.transition(0).transform("translate3d(0,0,0) scale("+p+")"),l.params.swipeToStep&&E.css("border-radius",T*s+"px")}if(i.transition(0).transform("translate3d(0,"+w+"px,0)"),l.params.swipeToStep)a=g?1-w/b:(b-w)/b,a=Math.min(Math.max(a,0),1),i.trigger("sheet:stepprogress",a),l.emit("local::stepProgress sheetStepProgress",l,a)}}function z(){if(I=!1,D){D=!1,i.transform("").transition(""),l.push&&o&&(E.transition("").transform(""),E.css("border-radius",""));var e=m<0?"to-bottom":"to-top",t=Math.abs(m);if(0!==t&&w!==y){var a=(new Date).getTime()-v;if(l.params.swipeToStep){var r=g?"to-bottom":"to-top",n=g?"to-top":"to-bottom",s=Math.abs(w),p=Math.abs(b);if(a<300&&t>10)return e===r&&sp&&(l.params.swipeToClose?l.close():(i.addClass("modal-in-swipe-step"),i.trigger("sheet:stepprogress",0),l.emit("local::stepProgress sheetStepProgress",l,0),i.trigger("sheet:stepclose"),l.emit("local::stepClose sheetStepClose",l),l.push&&o&&(l.$htmlEl[0].style.removeProperty("--f7-sheet-push-scale"),E.css("border-radius","0px")))),void(e===n&&s<=p&&(i.addClass("modal-in-swipe-step"),i.trigger("sheet:stepprogress",0),l.emit("local::stepProgress sheetStepProgress",l,0),i.trigger("sheet:stepclose"),l.emit("local::stepClose sheetStepClose",l),l.push&&o&&(l.$htmlEl[0].style.removeProperty("--f7-sheet-push-scale"),E.css("border-radius","0px"))));if(a>=300){var c=!i.hasClass("modal-in-swipe-step");c?c&&(s>p+(C-p)/2?l.params.swipeToClose&&l.close():s>p/2&&(i.addClass("modal-in-swipe-step"),i.trigger("sheet:stepprogress",0),l.emit("local::stepProgress sheetStepProgress",l,0),i.trigger("sheet:stepclose"),l.emit("local::stepClose sheetStepClose",l),l.push&&o&&(l.$htmlEl[0].style.removeProperty("--f7-sheet-push-scale"),E.css("border-radius","0px")))):s

                (C-p)/2&&l.params.swipeToClose&&l.close()}}else{if(e!==(g?"to-top":"to-bottom"))return;(a<300&&t>20||a>=300&&t>C/2)&&l.close()}}}}function L(){l.setSwipeStep(!0)}l.setSwipeStep=function(e){void 0===e&&(e=!0);var t=i.find(".sheet-modal-swipe-step").eq(0);t.length&&(b=i.hasClass("sheet-modal-top")?-(t.offset().top-i.offset().top+t[0].offsetHeight):i[0].offsetHeight-(t.offset().top-i.offset().top+t[0].offsetHeight),i[0].style.setProperty("--f7-sheet-swipe-step",b+"px"),e||i.addClass("modal-in-swipe-step"))};var H=!!Support.passiveListener&&{passive:!0};return(l.params.swipeToClose||l.params.swipeToStep)&&(i.on(t.touchEvents.start,B,H),t.on("touchmove",R),t.on("touchend:passive",z),l.once("sheetDestroy",(function(){i.off(t.touchEvents.start,B,H),t.off("touchmove",R),t.off("touchend:passive",z)}))),l.on("open",(function(){l.params.closeOnEscape&&$(doc).on("keydown",c),i.prevAll(".popup.modal-in").addClass("popup-behind"),l.params.swipeToStep&&(l.setSwipeStep(!1),t.on("resize",L)),l.params.scrollToEl&&function(){var e=$(l.params.scrollToEl).eq(0);if(0!==e.length&&0!==(s=e.parents(".page-content")).length){var t,a=parseInt(s.css("padding-top"),10),r=parseInt(s.css("padding-bottom"),10),n=s[0].offsetHeight-a-i.height(),o=s[0].scrollHeight-a-i.height(),p=s.scrollTop(),c=e.offset().top-a+e[0].offsetHeight;if(c>n){var d=p+c-n;d+n>o&&(t=d+n-o+r,n===o&&(t=i.height()),s.css({"padding-bottom":t+"px"})),s.scrollTop(d,300)}}}(),l.push&&(o=parseInt(i.css("--f7-sheet-push-offset"),10),Number.isNaN(o)&&(o=0),o&&(i.addClass("sheet-modal-push"),l.$htmlEl.addClass("with-modal-sheet-push"),l.params.swipeToStep?(E=t.root.children(".view, .views"),T=parseFloat(i.css("border-"+(g?"bottom":"top")+"-left-radius")),E.css("border-radius","0px")):l.$htmlEl[0].style.setProperty("--f7-sheet-push-scale",d(o))))})),l.on("opened",(function(){(l.params.closeByOutsideClick||l.params.closeByBackdropClick)&&t.on("click",p)})),l.on("close",(function(){l.params.swipeToStep&&(i.removeClass("modal-in-swipe-step"),t.off("resize",L)),l.params.closeOnEscape&&$(doc).off("keydown",c),l.params.scrollToEl&&s&&s.length>0&&s.css({"padding-bottom":""}),(l.params.closeByOutsideClick||l.params.closeByBackdropClick)&&t.off("click",p),i.prevAll(".popup.modal-in").eq(0).removeClass("popup-behind"),l.push&&o&&(l.$htmlEl.removeClass("with-modal-sheet-push"),l.$htmlEl.addClass("with-modal-sheet-push-closing"))})),l.on("closed",(function(){l.push&&o&&(l.$htmlEl.removeClass("with-modal-sheet-push-closing"),l.$htmlEl[0].style.removeProperty("--f7-sheet-push-scale"))})),l.stepOpen=function(){i.removeClass("modal-in-swipe-step"),l.push&&(o||(o=parseInt(i.css("--f7-sheet-push-offset"),10),Number.isNaN(o)&&(o=0)),o&&l.$htmlEl[0].style.setProperty("--f7-sheet-push-scale",d(o)))},l.stepClose=function(){i.addClass("modal-in-swipe-step"),l.push&&l.$htmlEl[0].style.removeProperty("--f7-sheet-push-scale")},l.stepToggle=function(){i.toggleClass("modal-in-swipe-step")},i[0].f7Modal=l,l}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t}(Modal),Sheet$1={name:"sheet",params:{sheet:{push:!1,backdrop:void 0,backdropEl:void 0,closeByBackdropClick:!0,closeByOutsideClick:!1,closeOnEscape:!1,swipeToClose:!1,swipeToStep:!1,swipeHandler:null}},static:{Sheet:Sheet},create:function(){var e=this;e.sheet=Utils.extend({},ModalMethods({app:e,constructor:Sheet,defaultSelector:".sheet-modal.modal-in"}),{stepOpen:function(t){var a=e.sheet.get(t);if(a&&a.stepOpen)return a.stepOpen()},stepClose:function(t){var a=e.sheet.get(t);if(a&&a.stepClose)return a.stepClose()},stepToggle:function(t){var a=e.sheet.get(t);if(a&&a.stepToggle)return a.stepToggle()}})},clicks:{".sheet-open":function(e,t){void 0===t&&(t={});$(".sheet-modal.modal-in").length>0&&t.sheet&&$(t.sheet)[0]!==$(".sheet-modal.modal-in")[0]&&this.sheet.close(".sheet-modal.modal-in"),this.sheet.open(t.sheet,t.animate,e)},".sheet-close":function(e,t){void 0===t&&(t={});this.sheet.close(t.sheet,t.animate,e)}}},Toast=function(e){function t(t,a){var r=Utils.extend({on:{}},t.params.toast,a);e.call(this,t,r);var i=this;i.app=t,i.params=r;var n,s,o=i.params,l=o.closeButton,p=o.closeTimeout;if(i.params.el)n=$(i.params.el);else{var c=i.render();n=$(c)}return n&&n.length>0&&n[0].f7Modal?n[0].f7Modal:0===n.length?i.destroy():(Utils.extend(i,{$el:n,el:n[0],type:"toast"}),n[0].f7Modal=i,l&&(n.find(".toast-button").on("click",(function(){i.emit("local::closeButtonClick toastCloseButtonClick",i),i.close()})),i.on("beforeDestroy",(function(){n.find(".toast-button").off("click")}))),i.on("open",(function(){$(".toast.modal-in").each((function(e,a){var r=t.toast.get(a);a!==i.el&&r&&r.close()})),p&&(s=Utils.nextTick((function(){i.close()}),p))})),i.on("close",(function(){win.clearTimeout(s)})),i.params.destroyOnClose&&i.once("closed",(function(){setTimeout((function(){i.destroy()}),0)})),i)}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.render=function(){if(this.params.render)return this.params.render.call(this,this);var e=this.params,t=e.position,a=e.horizontalPosition,r=e.cssClass,i=e.icon,n=e.text,s=e.closeButton,o=e.closeButtonColor,l=e.closeButtonText;return('\n

                \n
                \n '+(i?'
                '+i+"
                ":"")+'\n
                '+n+"
                \n "+(s&&!i?('\n '+l+"\n ").trim():"")+"\n
                \n
                \n ").trim()},t}(Modal),Toast$1={name:"toast",static:{Toast:Toast},create:function(){var e=this;e.toast=Utils.extend({},ModalMethods({app:e,constructor:Toast,defaultSelector:".toast.modal-in"}),{show:function(t){return Utils.extend(t,{destroyOnClose:!0}),new Toast(e,t).open()}})},params:{toast:{icon:null,text:null,position:"bottom",horizontalPosition:"left",closeButton:!1,closeButtonColor:null,closeButtonText:"Ok",closeTimeout:null,cssClass:null,render:null}}},Preloader={init:function(e){var t=$(e);0===t.length||t.children(".preloader-inner").length>0||t.children(".preloader-inner-line").length>0||t.append(Utils[this.theme+"PreloaderContent"])},visible:!1,show:function(e){void 0===e&&(e="white");if(!Preloader.visible){var t=Utils[this.theme+"PreloaderContent"]||"";$("html").addClass("with-modal-preloader"),this.root.append('\n
                \n
                \n
                '+t+"
                \n
                \n "),Preloader.visible=!0}},showIn:function(e,t){void 0===t&&(t="white");var a=Utils[this.theme+"PreloaderContent"]||"";$(e||"html").addClass("with-modal-preloader"),$(e||this.root).append('\n
                \n
                \n
                '+a+"
                \n
                \n ")},hide:function(){Preloader.visible&&($("html").removeClass("with-modal-preloader"),this.root.find(".preloader-backdrop, .preloader-modal").remove(),Preloader.visible=!1)},hideIn:function(e){$(e||"html").removeClass("with-modal-preloader"),$(e||this.root).find(".preloader-backdrop, .preloader-modal").remove()}},Preloader$1={name:"preloader",create:function(){Utils.extend(this,{preloader:{init:Preloader.init.bind(this),show:Preloader.show.bind(this),hide:Preloader.hide.bind(this),showIn:Preloader.showIn.bind(this),hideIn:Preloader.hideIn.bind(this)}})},on:{photoBrowserOpen:function(e){var t=this;e.$el.find(".preloader").each((function(e,a){t.preloader.init(a)}))},tabMounted:function(e){var t=this;$(e).find(".preloader").each((function(e,a){t.preloader.init(a)}))},pageInit:function(e){var t=this;e.$el.find(".preloader").each((function(e,a){t.preloader.init(a)}))}},vnode:{preloader:{insert:function(e){var t=e.elm;this.preloader.init(t)}}}},Progressbar={set:function(){for(var e,t=[],a=arguments.length;a--;)t[a]=arguments[a];var r=this,i=t[0],n=t[1],s=t[2];if("number"==typeof t[0]&&(n=(e=t)[0],s=e[1],i=r.root),null==n)return i;n||(n=0);var o=$(i||r.root);if(0===o.length)return i;var l,p=Math.min(Math.max(n,0),100);if(0===(l=o.hasClass("progressbar")?o.eq(0):o.children(".progressbar")).length||l.hasClass("progressbar-infinite"))return l;var c=l.children("span");return 0===c.length&&(c=$(""),l.append(c)),c.transition(void 0!==s?s:"").transform("translate3d("+(-100+p)+"%,0,0)"),l[0]},show:function(){for(var e,t,a=[],r=arguments.length;r--;)a[r]=arguments[r];var i=this,n=a[0],s=a[1],o=a[2],l="determined";2===a.length?"string"!=typeof a[0]&&"object"!=typeof a[0]||"string"!=typeof a[1]?"number"==typeof a[0]&&"string"==typeof a[1]&&(s=(t=a)[0],o=t[1],n=i.root):(n=(e=a)[0],o=e[1],s=e[2],l="infinite"):1===a.length?"number"==typeof a[0]?(n=i.root,s=a[0]):"string"==typeof a[0]&&(l="infinite",n=i.root,o=a[0]):0===a.length&&(l="infinite",n=i.root);var p,c=$(n);if(0!==c.length)return c.hasClass("progressbar")||c.hasClass("progressbar-infinite")?p=c:0===(p=c.children(".progressbar:not(.progressbar-out), .progressbar-infinite:not(.progressbar-out)")).length&&(p=$('\n \n '+("infinite"===l?"":"")+"\n "),c.append(p)),void 0!==s&&i.progressbar.set(p,s),p[0]},hide:function(e,t){void 0===t&&(t=!0);var a,r=$(e||this.root);if(0!==r.length)return 0===(a=r.hasClass("progressbar")||r.hasClass("progressbar-infinite")?r:r.children(".progressbar, .progressbar-infinite")).length||!a.hasClass("progressbar-in")||a.hasClass("progressbar-out")||a.removeClass("progressbar-in").addClass("progressbar-out").animationEnd((function(){t&&a.remove()})),a}},Progressbar$1={name:"progressbar",create:function(){Utils.extend(this,{progressbar:{set:Progressbar.set.bind(this),show:Progressbar.show.bind(this),hide:Progressbar.hide.bind(this)}})},on:{tabMounted:function(e){var t=this;$(e).find(".progressbar").each((function(e,a){var r=$(a);t.progressbar.set(r,r.attr("data-progress"))}))},pageInit:function(e){var t=this;e.$el.find(".progressbar").each((function(e,a){var r=$(a);t.progressbar.set(r,r.attr("data-progress"))}))}},vnode:{progressbar:{insert:function(e){var t=e.elm;this.progressbar.set(t,t.getAttribute("data-progress"))},update:function(e){var t=e.elm;this.progressbar.set(t,t.getAttribute("data-progress"))}}}},Sortable={init:function(){var e,t,a,r,i,n,s,o,l,p,c,d,u,h,f,v,m,g,b,y,w,C=this;function x(r,o){t=!1,e=!0,w=!1,a="touchstart"===r.type?r.targetTouches[0].pageY:r.pageY,i=$(r.target).closest("li").eq(0),u=i.index(),s=i.parents(".sortable");var l=i.parents(".list-group");l.length&&l.parents(s).length&&(s=l),n=s.children("ul").children("li:not(.disallow-sorting):not(.no-sorting)"),C.panel&&(C.panel.allowOpen=!1),C.swipeout&&(C.swipeout.allow=!1),o&&(i.addClass("sorting"),s.addClass("sortable-sorting"),w=!0)}var k=!!C.support.passiveListener&&{passive:!1,capture:!1};$(doc).on(C.touchEvents.start,".list.sortable .sortable-handler",x,k),C.on("touchmove:active",(function(u){if(e&&i){var w="touchmove"===u.type?u.targetTouches[0].pageY:u.pageY;if(!t){h=i.parents(".page"),f=i.parents(".page-content");var C=parseInt(f.css("padding-top"),10),x=parseInt(f.css("padding-bottom"),10);y=f[0].scrollTop,m=h.offset().top+C,v=h.height()-C-x,i.addClass("sorting"),s.addClass("sortable-sorting"),g=i[0].offsetTop,l=i[0].offsetTop,p=i.parent().height()-g-i.height(),o=i[0].offsetHeight,b=i.offset().top}t=!0,u.preventDefault(),u.f7PreventSwipePanel=!0,r=w-a;var k=f[0].scrollTop-y,E=Math.min(Math.max(r+k,-l),p);i.transform("translate3d(0,"+E+"px,0)");var T,S=!0;r+k+44<-l&&(S=!1),r+k-44>p&&(S=!1),d=void 0,c=void 0,S&&(b+r+o+44>m+v&&(T=b+r+o+44-(m+v)),b+r=r-n/2&&i.index()a.index()?(a.transform("translate3d(0, "+o+"px,0)"),c=void 0,d||(d=a)):a.transform("translate3d(0, 0%,0)")}}))}})),C.on("touchend:passive",(function(){if(!e||!t)return e&&!t&&(C.panel&&(C.panel.allowOpen=!0),C.swipeout&&(C.swipeout.allow=!0),w&&(i.removeClass("sorting"),s.removeClass("sortable-sorting"))),e=!1,void(t=!1);var a;C.panel&&(C.panel.allowOpen=!0),C.swipeout&&(C.swipeout.allow=!0),n.transform(""),i.removeClass("sorting"),s.removeClass("sortable-sorting"),c?a=c.index():d&&(a=d.index());var r=s.dataset().sortableMoveElements;if(void 0===r&&(r=C.params.sortable.moveElements),r&&(c&&i.insertAfter(c),d&&i.insertBefore(d)),(c||d)&&s.hasClass("virtual-list")){void 0===(u=i[0].f7VirtualListIndex)&&(u=i.attr("data-virtual-list-index")),d?void 0===(a=d[0].f7VirtualListIndex)&&(a=d.attr("data-virtual-list-index")):void 0===(a=c[0].f7VirtualListIndex)&&(a=c.attr("data-virtual-list-index")),a=null!==a?parseInt(a,10):void 0;var o=s[0].f7VirtualList;u&&(u=parseInt(u,10)),a&&(a=parseInt(a,10)),o&&o.moveItem(u,a)}void 0===a||Number.isNaN(a)||a===u||(i.trigger("sortable:sort",{from:u,to:a}),C.emit("sortableSort",i[0],{from:u,to:a,el:i[0]},s[0])),d=void 0,c=void 0,e=!1,t=!1})),$(doc).on("taphold",".sortable-tap-hold",(function(e,t){x(t,!0)}))},enable:function(e){void 0===e&&(e=".list.sortable");var t=$(e);0!==t.length&&(t.addClass("sortable-enabled"),t.trigger("sortable:enable"),this.emit("sortableEnable",t[0]))},disable:function(e){void 0===e&&(e=".list.sortable");var t=$(e);0!==t.length&&(t.removeClass("sortable-enabled"),t.trigger("sortable:disable"),this.emit("sortableDisable",t[0]))},toggle:function(e){void 0===e&&(e=".list.sortable");var t=$(e);0!==t.length&&(t.hasClass("sortable-enabled")?this.sortable.disable(t):this.sortable.enable(t))}},Sortable$1={name:"sortable",params:{sortable:{moveElements:!0}},create:function(){Utils.extend(this,{sortable:{init:Sortable.init.bind(this),enable:Sortable.enable.bind(this),disable:Sortable.disable.bind(this),toggle:Sortable.toggle.bind(this)}})},on:{init:function(){this.params.sortable&&this.sortable.init()}},clicks:{".sortable-enable":function(e,t){void 0===t&&(t={});this.sortable.enable(t.sortable)},".sortable-disable":function(e,t){void 0===t&&(t={});this.sortable.disable(t.sortable)},".sortable-toggle":function(e,t){void 0===t&&(t={});this.sortable.toggle(t.sortable)}}},Swipeout={init:function(){var e,t,a,r,i,n,s,o,l,p,c,d,u,h,f,v,m,g,b,y,w,C=this,x={};var k=!!C.support.passiveListener&&{passive:!0};C.on("touchstart",(function(e){if(Swipeout.el){var t=$(e.target);$(Swipeout.el).is(t[0])||t.parents(".swipeout").is(Swipeout.el)||t.hasClass("modal-in")||(t.attr("class")||"").indexOf("-backdrop")>0||t.hasClass("actions-modal")||t.parents(".actions-modal.modal-in, .dialog.modal-in").length>0||C.swipeout.close(Swipeout.el)}})),$(doc).on(C.touchEvents.start,"li.swipeout",(function(i){Swipeout.allow&&(t=!1,e=!0,a=void 0,x.x="touchstart"===i.type?i.targetTouches[0].pageX:i.pageX,x.y="touchstart"===i.type?i.targetTouches[0].pageY:i.pageY,r=(new Date).getTime(),n=$(this))}),k),C.on("touchmove:active",(function(r){if(e){var k="touchmove"===r.type?r.targetTouches[0].pageX:r.pageX,E="touchmove"===r.type?r.targetTouches[0].pageY:r.pageY;if(void 0===a&&(a=!!(a||Math.abs(E-x.y)>Math.abs(k-x.x))),a)e=!1;else{if(!t){if($(".list.sortable-opened").length>0)return;s=n.find(".swipeout-content"),o=n.find(".swipeout-actions-right"),l=n.find(".swipeout-actions-left"),p=null,c=null,f=null,v=null,b=null,g=null,l.length>0&&(p=l.outerWidth(),f=l.children("a"),g=l.find(".swipeout-overswipe")),o.length>0&&(c=o.outerWidth(),v=o.children("a"),b=o.find(".swipeout-overswipe")),(u=n.hasClass("swipeout-opened"))&&(h=n.find(".swipeout-actions-left.swipeout-actions-opened").length>0?"left":"right"),n.removeClass("swipeout-transitioning"),C.params.swipeout.noFollow||(n.find(".swipeout-actions-opened").removeClass("swipeout-actions-opened"),n.removeClass("swipeout-opened"))}if(t=!0,r.preventDefault(),i=k-x.x,d=i,u&&("right"===h?d-=c:d+=p),d>0&&0===l.length||d<0&&0===o.length){if(!u)return e=!1,t=!1,s.transform(""),v&&v.length>0&&v.transform(""),void(f&&f.length>0&&f.transform(""));d=0}var T,S;if(d<0?m="to-left":d>0?m="to-right":m||(m="to-left"),r.f7PreventSwipePanel=!0,C.params.swipeout.noFollow)return u?("right"===h&&i>0&&C.swipeout.close(n),"left"===h&&i<0&&C.swipeout.close(n)):(i<0&&o.length>0&&C.swipeout.open(n,"right"),i>0&&l.length>0&&C.swipeout.open(n,"left")),e=!1,void(t=!1);if(y=!1,w=!1,o.length>0){var M=d;S=M/c,M<-c&&(M=-c-Math.pow(-M-c,.8),d=M,b.length>0&&(w=!0)),"to-left"!==m&&(S=0,M=0),v.each((function(e,t){var a=$(t);void 0===t.f7SwipeoutButtonOffset&&(a[0].f7SwipeoutButtonOffset=t.offsetLeft),T=t.f7SwipeoutButtonOffset,b.length>0&&a.hasClass("swipeout-overswipe")&&"to-left"===m&&(a.css({left:(w?-T:0)+"px"}),w?(a.hasClass("swipeout-overswipe-active")||(n.trigger("swipeout:overswipeenter"),C.emit("swipeoutOverswipeEnter",n[0])),a.addClass("swipeout-overswipe-active")):(a.hasClass("swipeout-overswipe-active")&&(n.trigger("swipeout:overswipeexit"),C.emit("swipeoutOverswipeExit",n[0])),a.removeClass("swipeout-overswipe-active"))),a.transform("translate3d("+(M-T*(1+Math.max(S,-1)))+"px,0,0)")}))}if(l.length>0){var P=d;S=P/p,P>p&&(P=p+Math.pow(P-p,.8),d=P,g.length>0&&(y=!0)),"to-right"!==m&&(P=0,S=0),f.each((function(e,t){var a=$(t);void 0===t.f7SwipeoutButtonOffset&&(a[0].f7SwipeoutButtonOffset=p-t.offsetLeft-t.offsetWidth),T=t.f7SwipeoutButtonOffset,g.length>0&&a.hasClass("swipeout-overswipe")&&"to-right"===m&&(a.css({left:(y?T:0)+"px"}),y?(a.hasClass("swipeout-overswipe-active")||(n.trigger("swipeout:overswipeenter"),C.emit("swipeoutOverswipeEnter",n[0])),a.addClass("swipeout-overswipe-active")):(a.hasClass("swipeout-overswipe-active")&&(n.trigger("swipeout:overswipeexit"),C.emit("swipeoutOverswipeExit",n[0])),a.removeClass("swipeout-overswipe-active"))),f.length>1&&a.css("z-index",f.length-e),a.transform("translate3d("+(P+T*(1-Math.min(S,1)))+"px,0,0)")}))}n.trigger("swipeout",S),C.emit("swipeout",n[0],S),s.transform("translate3d("+d+"px,0,0)")}}})),C.on("touchend:passive",(function(){if(!e||!t)return e=!1,void(t=!1);e=!1,t=!1;var a,h,g,b,x=(new Date).getTime()-r,k="to-left"===m?o:l,E="to-left"===m?c:p;if(a=x<300&&(i<-10&&"to-left"===m||i>10&&"to-right"===m)||x>=300&&Math.abs(d)>E/2?"open":"close",x<300&&(0===Math.abs(d)&&(a="close"),Math.abs(d)===E&&(a="open")),"open"===a){Swipeout.el=n[0],n.trigger("swipeout:open"),C.emit("swipeoutOpen",n[0]),n.addClass("swipeout-opened swipeout-transitioning");var T="to-left"===m?-E:E;if(s.transform("translate3d("+T+"px,0,0)"),k.addClass("swipeout-actions-opened"),h="to-left"===m?v:f)for(g=0;g0&&f!==h&&f.each((function(e,t){var a=$(t);void 0===(b=t.f7SwipeoutButtonOffset)&&(a[0].f7SwipeoutButtonOffset=p-t.offsetLeft-t.offsetWidth),a.transform("translate3d("+b+"px,0,0)")})),v&&v.length>0&&v!==h&&v.each((function(e,t){var a=$(t);void 0===(b=t.f7SwipeoutButtonOffset)&&(a[0].f7SwipeoutButtonOffset=t.offsetLeft),a.transform("translate3d("+-b+"px,0,0)")})),s.transitionEnd((function(){u&&"open"===a||!u&&"close"===a||(n.trigger("open"===a?"swipeout:opened":"swipeout:closed"),C.emit("open"===a?"swipeoutOpened":"swipeoutClosed",n[0]),n.removeClass("swipeout-transitioning"),u&&"close"===a&&(o.length>0&&v.transform(""),l.length>0&&f.transform("")))}))}))},allow:!0,el:void 0,open:function(){for(var e,t=[],a=arguments.length;a--;)t[a]=arguments[a];var r=this,i=t[0],n=t[1],s=t[2];"function"==typeof t[1]&&(i=(e=t)[0],s=e[1],n=e[2]);var o=$(i).eq(0);if(0!==o.length&&o.hasClass("swipeout")&&!o.hasClass("swipeout-opened")){n||(n=o.find(".swipeout-actions-right").length>0?"right":"left");var l=o.find(".swipeout-actions-"+n),p=o.find(".swipeout-content");if(0!==l.length){o.trigger("swipeout:open").addClass("swipeout-opened").removeClass("swipeout-transitioning"),r.emit("swipeoutOpen",o[0]),l.addClass("swipeout-actions-opened");var c=l.children("a"),d=l.outerWidth(),u="right"===n?-d:d;c.length>1&&c.each((function(e,t){var a=$(t);"right"===n?a.transform("translate3d("+-t.offsetLeft+"px,0,0)"):a.css("z-index",c.length-e).transform("translate3d("+(d-t.offsetWidth-t.offsetLeft)+"px,0,0)")})),o.addClass("swipeout-transitioning"),p.transitionEnd((function(){o.trigger("swipeout:opened"),r.emit("swipeoutOpened",o[0]),s&&s.call(o[0])})),Utils.nextFrame((function(){c.transform("translate3d("+u+"px,0,0)"),p.transform("translate3d("+u+"px,0,0)")})),Swipeout.el=o[0]}}},close:function(e,t){var a=this,r=$(e).eq(0);if(0!==r.length&&r.hasClass("swipeout-opened")){var i,n=r.find(".swipeout-actions-opened").hasClass("swipeout-actions-right")?"right":"left",s=r.find(".swipeout-actions-opened").removeClass("swipeout-actions-opened"),o=s.children("a"),l=s.outerWidth();Swipeout.allow=!1,r.trigger("swipeout:close"),a.emit("swipeoutClose",r[0]),r.removeClass("swipeout-opened").addClass("swipeout-transitioning"),r.find(".swipeout-content").transform("").transitionEnd(p),i=setTimeout(p,500),o.each((function(e,t){var a=$(t);"right"===n?a.transform("translate3d("+-t.offsetLeft+"px,0,0)"):a.transform("translate3d("+(l-t.offsetWidth-t.offsetLeft)+"px,0,0)"),a.css({left:"0px"}).removeClass("swipeout-overswipe-active")})),Swipeout.el&&Swipeout.el===r[0]&&(Swipeout.el=void 0)}function p(){Swipeout.allow=!0,r.hasClass("swipeout-opened")||(r.removeClass("swipeout-transitioning"),o.transform(""),r.trigger("swipeout:closed"),a.emit("swipeoutClosed",r[0]),t&&t.call(r[0]),i&&clearTimeout(i))}},delete:function(e,t){var a=this,r=$(e).eq(0);0!==r.length&&(Swipeout.el=void 0,r.trigger("swipeout:delete"),a.emit("swipeoutDelete",r[0]),r.css({height:r.outerHeight()+"px"}),r.transitionEnd((function(){if(r.trigger("swipeout:deleted"),a.emit("swipeoutDeleted",r[0]),t&&t.call(r[0]),r.parents(".virtual-list").length>0){var e=r.parents(".virtual-list")[0].f7VirtualList,i=r[0].f7VirtualListIndex;e&&void 0!==i&&e.deleteItem(i)}else a.params.swipeout.removeElements?a.params.swipeout.removeElementsWithTimeout?setTimeout((function(){r.remove()}),a.params.swipeout.removeElementsTimeout):r.remove():r.removeClass("swipeout-deleting swipeout-transitioning")})),Utils.nextFrame((function(){r.addClass("swipeout-deleting swipeout-transitioning").css({height:"0px"}).find(".swipeout-content").transform("translate3d(-100%,0,0)")})))}},Swipeout$1={name:"swipeout",params:{swipeout:{actionsNoFold:!1,noFollow:!1,removeElements:!0,removeElementsWithTimeout:!1,removeElementsTimeout:0}},create:function(){Utils.extend(this,{swipeout:{init:Swipeout.init.bind(this),open:Swipeout.open.bind(this),close:Swipeout.close.bind(this),delete:Swipeout.delete.bind(this)}}),Object.defineProperty(this.swipeout,"el",{enumerable:!0,configurable:!0,get:function(){return Swipeout.el},set:function(e){Swipeout.el=e}}),Object.defineProperty(this.swipeout,"allow",{enumerable:!0,configurable:!0,get:function(){return Swipeout.allow},set:function(e){Swipeout.allow=e}})},clicks:{".swipeout-open":function(e,t){void 0===t&&(t={});this.swipeout.open(t.swipeout,t.side)},".swipeout-close":function(e){var t=e.closest(".swipeout");0!==t.length&&this.swipeout.close(t)},".swipeout-delete":function(e,t){void 0===t&&(t={});var a=this,r=e.closest(".swipeout");if(0!==r.length){var i=t.confirm,n=t.confirmTitle;t.confirm?a.dialog.confirm(i,n,(function(){a.swipeout.delete(r)})):a.swipeout.delete(r)}}},on:{init:function(){this.params.swipeout&&this.swipeout.init()}}},Accordion={toggleClicked:function(e){var t=e.closest(".accordion-item").eq(0);t.length||(t=e.parents("li").eq(0));var a=e.parents(".accordion-item-content").eq(0);a.length&&a.parents(t).length||e.parents("li").length>1&&e.parents("li")[0]!==t[0]||this.accordion.toggle(t)},open:function(e){var t=this,a=$(e),r=!1;function i(){r=!0}if(a.trigger("accordion:beforeopen",{prevent:i},i),t.emit("accordionBeforeOpen",a[0],i),!r){var n=a.parents(".accordion-list").eq(0),s=a.children(".accordion-item-content");if(s.removeAttr("aria-hidden"),0===s.length&&(s=a.find(".accordion-item-content")),0!==s.length){var o=n.length>0&&a.parent().children(".accordion-item-opened");o.length>0&&t.accordion.close(o),s.transitionEnd((function(){a.hasClass("accordion-item-opened")?(s.transition(0),s.css("height","auto"),Utils.nextFrame((function(){s.transition(""),a.trigger("accordion:opened"),t.emit("accordionOpened",a[0])}))):(s.css("height",""),a.trigger("accordion:closed"),t.emit("accordionClosed",a[0]))})),s.css("height",s[0].scrollHeight+"px"),a.trigger("accordion:open"),a.addClass("accordion-item-opened"),t.emit("accordionOpen",a[0])}}},close:function(e){var t=this,a=$(e),r=!1;function i(){r=!0}if(a.trigger("accordion:beforeclose",{prevent:i},i),t.emit("accordionBeforeClose",a[0],i),!r){var n=a.children(".accordion-item-content");0===n.length&&(n=a.find(".accordion-item-content")),a.removeClass("accordion-item-opened"),n.attr("aria-hidden",!0),n.transition(0),n.css("height",n[0].scrollHeight+"px"),n.transitionEnd((function(){a.hasClass("accordion-item-opened")?(n.transition(0),n.css("height","auto"),Utils.nextFrame((function(){n.transition(""),a.trigger("accordion:opened"),t.emit("accordionOpened",a[0])}))):(n.css("height",""),a.trigger("accordion:closed"),t.emit("accordionClosed",a[0]))})),Utils.nextFrame((function(){n.transition(""),n.css("height",""),a.trigger("accordion:close"),t.emit("accordionClose",a[0])}))}},toggle:function(e){var t=$(e);0!==t.length&&(t.hasClass("accordion-item-opened")?this.accordion.close(e):this.accordion.open(e))}},Accordion$1={name:"accordion",create:function(){Utils.extend(this,{accordion:{open:Accordion.open.bind(this),close:Accordion.close.bind(this),toggle:Accordion.toggle.bind(this)}})},clicks:{".accordion-item .item-link, .accordion-item-toggle, .links-list.accordion-list > ul > li > a":function(e){Accordion.toggleClicked.call(this,e)}}},ContactsList={name:"contactsList"},VirtualList=function(e){function t(t,a){void 0===a&&(a={}),e.call(this,a,[t]);var r,i=this;"md"===t.theme?r=48:"ios"===t.theme?r=44:"aurora"===t.theme&&(r=38);var n={cols:1,height:r,cache:!0,dynamicHeightBufferSize:1,showFilteredItemsOnly:!1,renderExternal:void 0,setListHeight:!0,searchByItem:void 0,searchAll:void 0,itemTemplate:void 0,ul:null,createUl:!0,scrollableParentEl:void 0,renderItem:function(e){return('\n
              • \n
                \n
                \n
                '+e+"
                \n
                \n
                \n
              • \n ").trim()},on:{}};if(i.useModulesParams(n),i.params=Utils.extend(n,a),void 0!==i.params.height&&i.params.height||(i.params.height=r),i.$el=$(a.el),i.el=i.$el[0],0!==i.$el.length){i.$el[0].f7VirtualList=i,i.items=i.params.items,i.params.showFilteredItemsOnly&&(i.filteredItems=[]),i.params.itemTemplate?"string"==typeof i.params.itemTemplate?i.renderItem=t.t7.compile(i.params.itemTemplate):"function"==typeof i.params.itemTemplate&&(i.renderItem=i.params.itemTemplate):i.params.renderItem&&(i.renderItem=i.params.renderItem),i.$pageContentEl=i.$el.parents(".page-content"),i.pageContentEl=i.$pageContentEl[0],i.$scrollableParentEl=i.params.scrollableParentEl?$(i.params.scrollableParentEl).eq(0):i.$pageContentEl,!i.$scrollableParentEl.length&&i.$pageContentEl.length&&(i.$scrollableParentEl=i.$pageContentEl),i.scrollableParentEl=i.$scrollableParentEl[0],void 0!==i.params.updatableScroll?i.updatableScroll=i.params.updatableScroll:(i.updatableScroll=!0,Device.ios&&Device.osVersion.split(".")[0]<8&&(i.updatableScroll=!1));var s,o=i.params.ul;i.$ul=o?$(i.params.ul):i.$el.children("ul"),0===i.$ul.length&&i.params.createUl&&(i.$el.append("
                  "),i.$ul=i.$el.children("ul")),i.ul=i.$ul[0],s=i.ul||i.params.createUl?i.$ul:i.$el,Utils.extend(i,{$itemsWrapEl:s,itemsWrapEl:s[0],domCache:{},displayDomCache:{},tempDomElement:doc.createElement("ul"),lastRepaintY:null,fragment:doc.createDocumentFragment(),pageHeight:void 0,rowsPerScreen:void 0,rowsBefore:void 0,rowsAfter:void 0,rowsToRender:void 0,maxBufferHeight:0,listHeight:void 0,dynamicHeight:"function"==typeof i.params.height}),i.useModules();var l,p,c,d,u=i.handleScroll.bind(i),h=i.handleResize.bind(i);return i.attachEvents=function(){l=i.$el.parents(".page").eq(0),p=i.$el.parents(".tab").filter((function(e,t){return 0===$(t).parent(".tabs").parent(".tabs-animated-wrap, .tabs-swipeable-wrap").length})).eq(0),c=i.$el.parents(".panel").eq(0),d=i.$el.parents(".popup").eq(0),i.$scrollableParentEl.on("scroll",u),l.length&&l.on("page:reinit",h),p.length&&p.on("tab:show",h),c.length&&c.on("panel:open",h),d.length&&d.on("popup:open",h),t.on("resize",h)},i.detachEvents=function(){i.$scrollableParentEl.off("scroll",u),l.length&&l.off("page:reinit",h),p.length&&p.off("tab:show",h),c.length&&c.off("panel:open",h),d.length&&d.off("popup:open",h),t.off("resize",h)},i.init(),i}}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.setListSize=function(){var e=this,t=e.filteredItems||e.items;if(e.pageHeight=e.$scrollableParentEl[0].offsetHeight,e.dynamicHeight){e.listHeight=0,e.heights=[];for(var a=0;aa.maxBufferHeight||!a.updatableScroll&&a.$scrollableParentEl[0].scrollTop+a.pageHeight>=a.$scrollableParentEl[0].scrollHeight){a.lastRepaintY=r;var i,n,s,o=a.filteredItems||a.items,l=0,p=0;if(a.dynamicHeight){var c,d=0;a.maxBufferHeight=a.pageHeight;for(var u=0;u=r-2*a.pageHeight*a.params.dynamicHeightBufferSize?i=u:l+=c),void 0===n&&((d+c>=r+2*a.pageHeight*a.params.dynamicHeightBufferSize||u===a.heights.length-1)&&(n=u+1),p+=c),d+=c;n=Math.min(n,o.length)}else(i=(parseInt(r/a.params.height,10)-a.rowsBefore)*a.params.cols)<0&&(i=0),n=Math.min(i+a.rowsToRender*a.params.cols,o.length);var h,f=[];for(a.reachEnd=!1,h=i;ht.items.length)return!1;var a=0;if(t.dynamicHeight)for(var r=0;r=0;a-=1)t.items.unshift(e[a]);if(t.params.cache){var r={};Object.keys(t.domCache).forEach((function(a){r[parseInt(a,10)+e.length]=t.domCache[a]})),t.domCache=r}t.update()},t.prototype.prependItem=function(e){this.prependItems([e])},t.prototype.moveItem=function(e,t){var a=this,r=e,i=t;if(r!==i){var n=a.items.splice(r,1)[0];if(i>=a.items.length?(a.items.push(n),i=a.items.length-1):a.items.splice(i,0,n),a.params.cache){var s={};Object.keys(a.domCache).forEach((function(e){var t=parseInt(e,10),n=ro)&&(s[t]=a.domCache[t]),t===n&&(s[o]=a.domCache[t]),t>n&&t<=o&&(s[t+l]=a.domCache[t])})),a.domCache=s}a.update()}},t.prototype.insertItemBefore=function(e,t){var a=this;if(0!==e)if(e>=a.items.length)a.appendItem(t);else{if(a.items.splice(e,0,t),a.params.cache){var r={};Object.keys(a.domCache).forEach((function(t){var i=parseInt(t,10);i>=e&&(r[i+1]=a.domCache[i])})),a.domCache=r}a.update()}else a.prependItem(t)},t.prototype.deleteItems=function(e){for(var t,a=this,r=0,i=function(i){var n=e[i];void 0!==t&&n>t&&(r=-i),n+=r,t=e[i];var s=a.items.splice(n,1)[0];if(a.filteredItems&&a.filteredItems.indexOf(s)>=0&&a.filteredItems.splice(a.filteredItems.indexOf(s),1),a.params.cache){var o={};Object.keys(a.domCache).forEach((function(e){var t=parseInt(e,10);t===n?delete a.domCache[n]:parseInt(e,10)>n?o[t-1]=a.domCache[e]:o[t]=a.domCache[e]})),a.domCache=o}},n=0;n"+e+"\n ").trim()},renderSkipPlaceholder:function(){return'
                • '},on:{}};if(o.useModulesParams(l),o.params=Utils.extend(l,a),!o.params.el)return o;if((r=$(o.params.el))[0].f7ListIndex)return r[0].f7ListIndex;if(0===(s=r.find("ul")).length&&(s=$("
                    "),r.append(s)),o.params.listEl&&(i=$(o.params.listEl)),"auto"===o.params.indexes&&!i)return o;function p(){var e={index:o};o.calcSize(),e!==o.height&&o.render()}function c(e){var t=$(e.target).closest("li");if(t.length){var a=t.index();if(o.skipRate>0){var r=a/(t.siblings("li").length-1);a=Math.round((o.indexes.length-1)*r)}var i=o.indexes[a];o.$el.trigger("listindex:click",{content:i,index:a}),o.emit("local::click listIndexClick",o,i,a),o.$el.trigger("listindex:select",{content:i,index:a}),o.emit("local::select listIndexSelect",o,i,a),o.$listEl&&o.params.scrollList&&o.scrollListToIndex(i,a)}}i?n=i.parents(".page-content").eq(0):0===(n=r.siblings(".page-content").eq(0)).length&&(n=r.parents(".page").eq(0).find(".page-content").eq(0)),r[0].f7ListIndex=o,Utils.extend(o,{app:t,$el:r,el:r&&r[0],$ul:s,ul:s&&s[0],$listEl:i,listEl:i&&i[0],$pageContentEl:n,pageContentEl:n&&n[0],indexes:a.indexes,height:0,skipRate:0}),o.useModules();var d,u,h,f,v,m={},g=null;function b(e){var t=s.children();t.length&&(h=t[0].getBoundingClientRect().top,f=t[t.length-1].getBoundingClientRect().top+t[0].offsetHeight,m.x="touchstart"===e.type?e.targetTouches[0].pageX:e.pageX,m.y="touchstart"===e.type?e.targetTouches[0].pageY:e.pageY,d=!0,u=!1,g=null)}function y(e){if(d){!u&&o.params.label&&(v=$(''),r.append(v)),u=!0;var t="touchmove"===e.type?e.targetTouches[0].pageY:e.pageY;e.preventDefault();var a=(t-h)/(f-h);a=Math.min(Math.max(a,0),1);var i=Math.round((o.indexes.length-1)*a),n=o.indexes[i],s=f-h,l=(o.height-s)/2+(1-a)*s;i!==g&&(o.params.label&&v.html(n).transform("translateY(-"+l+"px)"),o.$listEl&&o.params.scrollList&&o.scrollListToIndex(n,i)),g=i,o.$el.trigger("listindex:select"),o.emit("local::select listIndexSelect",o,n,i)}}function w(){d&&(d=!1,u=!1,o.params.label&&(v&&v.remove(),v=void 0))}var C=!!t.support.passiveListener&&{passive:!0};return o.attachEvents=function(){r.parents(".tab").on("tab:show",p),r.parents(".page").on("page:reinit",p),r.parents(".panel").on("panel:open",p),r.parents(".sheet-modal, .actions-modal, .popup, .popover, .login-screen, .dialog, .toast").on("modal:open",p),t.on("resize",p),r.on("click",c),r.on(t.touchEvents.start,b,C),t.on("touchmove:active",y),t.on("touchend:passive",w)},o.detachEvents=function(){r.parents(".tab").off("tab:show",p),r.parents(".page").off("page:reinit",p),r.parents(".panel").off("panel:open",p),r.parents(".sheet-modal, .actions-modal, .popup, .popover, .login-screen, .dialog, .toast").off("modal:open",p),t.off("resize",p),r.off("click",c),r.off(t.touchEvents.start,b,C),t.off("touchmove:active",y),t.off("touchend:passive",w)},o.init(),o}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.scrollListToIndex=function(e,t){var a,r=this.$listEl,i=this.$pageContentEl,n=this.app;if(!r||!i||0===i.length)return this;if(r.find(".list-group-title, .item-divider").each((function(t,r){if(!a){var i=$(r);i.text()===e&&(a=i)}})),!a||0===a.length)return this;var s=a.parent().offset().top,o=parseInt(i.css("padding-top"),10),l=i[0].scrollTop,p=a.offset().top;if(i.parents(".page-with-navbar-large").length){var c=$(n.navbar.getElByPage(i.parents(".page-with-navbar-large").eq(0))).find(".title-large");c.length&&(o-=c[0].offsetHeight||0)}return s<=o?i.scrollTop(s+l-o):i.scrollTop(p+l-o),this},t.prototype.renderSkipPlaceholder=function(){return this.params.renderSkipPlaceholder.call(this)},t.prototype.renderItem=function(e,t){return this.params.renderItem.call(this,e,t)},t.prototype.render=function(){var e,t=this,a=t.$ul,r=t.indexes,i=t.skipRate,n=r.map((function(a,r){if(r%i!=0&&i>0)return e=!0,"";var n=t.renderItem(a,r);return e&&(n=t.renderSkipPlaceholder()+n),e=!1,n})).join("");return a.html(n),t},t.prototype.calcSize=function(){var e=this.app,t=this.params,a=this.el,r=this.indexes,i=a.offsetHeight,n=t[e.theme+"ItemHeight"],s=Math.floor(i/n),o=r.length,l=0;return o>s&&(l=Math.ceil((2*o-1)/s)),this.height=i,this.skipRate=l,this},t.prototype.calcIndexes=function(){var e=this;return"auto"===e.params.indexes?(e.indexes=[],e.$listEl.find(".list-group-title, .item-divider").each((function(t,a){var r=$(a).text();e.indexes.indexOf(r)<0&&e.indexes.push(r)}))):e.indexes=e.params.indexes,e},t.prototype.update=function(){return this.calcIndexes(),this.calcSize(),this.render(),this},t.prototype.init=function(){this.calcIndexes(),this.calcSize(),this.render(),this.attachEvents()},t.prototype.destroy=function(){var e=this;e.$el.trigger("listindex:beforedestroy",e),e.emit("local::beforeDestroy listIndexBeforeDestroy"),e.detachEvents(),e.$el[0]&&(e.$el[0].f7ListIndex=null,delete e.$el[0].f7ListIndex),Utils.deleteProps(e),e=null},t}(Framework7Class),ListIndex$1={name:"listIndex",static:{ListIndex:ListIndex},create:function(){this.listIndex=ConstructorMethods({defaultSelector:".list-index",constructor:ListIndex,app:this,domProp:"f7ListIndex"})},on:{tabMounted:function(e){var t=this;$(e).find(".list-index-init").each((function(e,a){var r=Utils.extend($(a).dataset(),{el:a});t.listIndex.create(r)}))},tabBeforeRemove:function(e){$(e).find(".list-index-init").each((function(e,t){t.f7ListIndex&&t.f7ListIndex.destroy()}))},pageInit:function(e){var t=this;e.$el.find(".list-index-init").each((function(e,a){var r=Utils.extend($(a).dataset(),{el:a});t.listIndex.create(r)}))},pageBeforeRemove:function(e){e.$el.find(".list-index-init").each((function(e,t){t.f7ListIndex&&t.f7ListIndex.destroy()}))}},vnode:{"list-index-init":{insert:function(e){var t=e.elm,a=Utils.extend($(t).dataset(),{el:t});this.listIndex.create(a)},destroy:function(e){var t=e.elm;t.f7ListIndex&&t.f7ListIndex.destroy()}}}},Timeline={name:"timeline"},Tab={show:function(){for(var e,t,a,r=[],i=arguments.length;i--;)r[i]=arguments[i];var n,s,o,l,p,c=this;1===r.length&&r[0]&&r[0].constructor===Object?(n=r[0].tabEl,s=r[0].tabLinkEl,o=r[0].animate,l=r[0].tabRoute,p=r[0].animatedInit):(n=(e=r)[0],s=e[1],o=e[2],l=e[3],"boolean"==typeof r[1]&&(n=(t=r)[0],o=t[1],s=t[2],l=t[3],r.length>2&&s.constructor===Object&&(n=(a=r)[0],o=a[1],l=a[2],s=a[3]))),void 0===o&&(o=!0);var d,u=$(n);if(l&&u[0]&&(u[0].f7TabRoute=l),!p&&(0===u.length||u.hasClass("tab-active")))return{$newTabEl:u,newTabEl:u[0]};s&&(d=$(s));var h=u.parent(".tabs");if(0===h.length)return{$newTabEl:u,newTabEl:u[0]};c.swipeout&&(c.swipeout.allowOpen=!0);var f=[];function v(e){f.push(e)}function m(){f.forEach((function(e){e()}))}var g,b=!1;if(h.parent().hasClass("tabs-animated-wrap")){h.parent()[o?"removeClass":"addClass"]("not-animated");var y=parseFloat(h.css("transition-duration").replace(",","."));o&&y&&(h.transitionEnd(m),b=!0);var w=100*(c.rtl?u.index():-u.index());h.transform("translate3d("+w+"%,0,0)")}h.parent().hasClass("tabs-swipeable-wrap")&&c.swiper&&((g=h.parent()[0].swiper)&&g.activeIndex!==u.index()?(b=!0,g.once("slideChangeTransitionEnd",(function(){m()})).slideTo(u.index(),o?void 0:0)):g&&g.animating&&(b=!0,g.once("slideChangeTransitionEnd",(function(){m()}))));var C=h.children(".tab-active");if(C.removeClass("tab-active"),!p&&(!g||g&&!g.animating||g&&l)&&(C.hasClass("view")&&C.children(".page").length&&C.children(".page").each((function(e,t){$(t).trigger("page:tabhide"),c.emit("pageTabHide",t)})),C.trigger("tab:hide"),c.emit("tabHide",C[0])),u.addClass("tab-active"),!p&&(!g||g&&!g.animating||g&&l)&&(u.hasClass("view")&&u.children(".page").length&&u.children(".page").each((function(e,t){$(t).trigger("page:tabshow"),c.emit("pageTabShow",t)})),u.trigger("tab:show"),c.emit("tabShow",u[0])),!d&&((!(d=$("string"==typeof n?'.tab-link[href="'+n+'"]':'.tab-link[href="#'+u.attr("id")+'"]'))||d&&0===d.length)&&$("[data-tab]").each((function(e,t){u.is($(t).attr("data-tab"))&&(d=$(t))})),l&&(!d||d&&0===d.length)&&0===(d=$('[data-route-tab-id="'+l.route.tab.id+'"]')).length&&(d=$('.tab-link[href="'+l.url+'"]')),d.length>1&&u.parents(".page").length&&(d=d.filter((function(e,t){return $(t).parents(".page")[0]===u.parents(".page")[0]})),"ios"===c.theme&&0===d.length&&l))){var x=u.parents(".page"),k=$(c.navbar.getElByPage(x));0===(d=k.find('[data-route-tab-id="'+l.route.tab.id+'"]')).length&&(d=k.find('.tab-link[href="'+l.url+'"]'))}if(d.length>0){var E;if(C&&C.length>0){var T=C.attr("id");T&&(!(E=$('.tab-link[href="#'+T+'"]'))||E&&0===E.length)&&(E=$('.tab-link[data-route-tab-id="'+T+'"]')),(!E||E&&0===E.length)&&$("[data-tab]").each((function(e,t){C.is($(t).attr("data-tab"))&&(E=$(t))})),(!E||E&&0===E.length)&&(E=d.siblings(".tab-link-active"))}else l&&(E=d.siblings(".tab-link-active"));if(E&&E.length>1&&C&&C.parents(".page").length&&(E=E.filter((function(e,t){return $(t).parents(".page")[0]===C.parents(".page")[0]}))),E&&E.length>0&&E.removeClass("tab-link-active"),d&&d.length>0&&(d.addClass("tab-link-active"),"md"===c.theme&&c.toolbar)){var S=d.parents(".tabbar, .tabbar-labels");S.length>0&&c.toolbar.setHighlight(S)}}return{$newTabEl:u,newTabEl:u[0],$oldTabEl:C,oldTabEl:C[0],onTabsChanged:v,animated:b}}},Tabs={name:"tabs",create:function(){Utils.extend(this,{tab:{show:Tab.show.bind(this)}})},on:{"pageInit tabMounted":function(e){var t=$(e.el||e).find(".tabs-animated-wrap > .tabs > .tab-active")[0];if(t){this.tab.show({tabEl:t,animatedInit:!0,animate:!1})}}},clicks:{".tab-link":function(e,t){if(void 0===t&&(t={}),e.attr("href")&&0===e.attr("href").indexOf("#")||e.attr("data-tab")){this.tab.show({tabEl:t.tab||e.attr("href"),tabLinkEl:e,animate:t.animate})}}}};function swipePanel(e){var t=e.app;if(!e.swipeInitialized){Utils.extend(e,{swipeable:!0,swipeInitialized:!0});var a,r,i,n,s,o,l,p,c,d,u,h,f,v=e.params,m=e.$el,g=e.$backdropEl,b=e.side,y=e.effect,w={},C=0;t.on("touchstart:passive",x),t.on("touchmove:active",k),t.on("touchend:passive",E),t.on("gesturestart",T),t.on("gestureend",S),e.on("panelDestroy",(function(){t.off("touchstart:passive",x),t.off("touchmove:active",k),t.off("touchend:passive",E),t.off("gesturestart",T),t.off("gestureend",S)}))}function x(p){if(e.swipeable&&!i&&t.panel.allowOpen&&(v.swipe||v.swipeOnlyClose)&&!r&&!($(".modal-in:not(.toast):not(.notification), .photo-browser-in").length>0)){var c=(a=t.panel.get("left"===b?"right":"left")||{}).opened&&a.$el&&!a.$el.hasClass("panel-in-breakpoint");if((e.opened||!c)&&(v.swipeOnlyClose||!c)&&(!p.target||"input"!==p.target.nodeName.toLowerCase()||"range"!==p.target.type)&&!($(p.target).closest(".range-slider, .tabs-swipeable-wrap, .calendar-months, .no-swipe-panel, .card-opened").length>0)&&(w.x="touchstart"===p.type?p.targetTouches[0].pageX:p.pageX,w.y="touchstart"===p.type?p.targetTouches[0].pageY:p.pageY,!v.swipeOnlyClose||e.opened)){if(v.swipeActiveArea&&!e.opened){if("left"===b&&w.x>v.swipeActiveArea)return;if("right"===b&&w.xMath.abs(l-w.x))),s)r=!1;else{if(!h){if(h=l>w.x?"to-right":"to-left",v.swipeActiveArea>0&&!e.opened){if("left"===b&&w.x>v.swipeActiveArea)return void(r=!1);if("right"===b&&w.xu&&(c=u)):((c=p-(e.opened?u:0))>0&&(c=0),c<-u&&(c=-u)):((c=p+(e.opened?u:0))<0&&(c=0),c>u&&(c=u));var k=Math.abs(c/u);if("reveal"===y?(v.swipeNoFollow||(f.transform("translate3d("+c+"px,0,0)").transition(0),g.transform("translate3d("+c+"px,0,0)").transition(0)),m.trigger("panel:swipe",Math.abs(c/u)),e.emit("local::swipe panelSwipe",e,Math.abs(c/u))):("left"===b&&(c-=u),v.swipeNoFollow||(m.transform("translate3d("+c+"px,0,0)").transition(0),g.transition(0),d=1-Math.abs(c/u),g.css({opacity:d})),m.trigger("panel:swipe",Math.abs(c/u)),e.emit("local::swipe panelSwipe",e,Math.abs(c/u))),v.swipeNoFollow)(e.opened&&0===k||!e.opened&&1===k)&&(o=!0,E(a))}}}function E(t){if(!r||!n)return r=!1,void(n=!1);var a="gesturestart"===t.type||i;r=!1,n=!1;var s,o=(new Date).getTime()-l,d=(0===c||Math.abs(c)===u)&&!v.swipeNoFollow,h=v.swipeThreshold||0;"swap"===(s=a?"reset":e.opened?"cover"===y?0===c?"reset":o<300&&Math.abs(c)>0?"swap":o>=300&&Math.abs(c)=0||o>=300&&Math.abs(c)<=u/2?"left"===b&&c===u?"reset":"swap":"reset":Math.abs(p)0||o>=300&&Math.abs(c)0||o>=300&&Math.abs(c)>=u/2?"swap":"reset")&&(e.opened?e.close(!d):e.open(!d));var w=!0;if("reset"===s&&!e.opened)if(d)m.removeClass("panel-in-swipe");else{w=!1;var C="reveal"===y?f:m;$("html").addClass("with-panel-closing"),C.transitionEnd((function(){m.hasClass("panel-in")||(m.removeClass("panel-in-swipe"),$("html").removeClass("with-panel-closing"))}))}"reveal"===y&&Utils.nextFrame((function(){f.transition(""),f.transform("")})),w&&m.removeClass("panel-in-swipe"),m.transition("").transform(""),g.transform("").transition("").css({opacity:"",visibility:""})}function T(e){i=!0,E(e)}function S(){i=!1}}function resizablePanel(e){var t=e.app;if(!e.resizableInitialized){Utils.extend(e,{resizable:!0,resizableWidth:null,resizableInitialized:!0});var a=$("html"),r=e.$el,i=e.$backdropEl,n=e.side,s=e.effect;if(r){var o,l,p,c,d,u,h,f,v={};0===e.$el.find(".panel-resize-handler").length&&e.$el.append('
                    '),e.$resizeHandlerEl=e.$el.children(".panel-resize-handler"),r.addClass("panel-resizable");var m=!!Support.passiveListener&&{passive:!0};e.$el.on(t.touchEvents.start,".panel-resize-handler",b,m),t.on("touchmove:active",y),t.on("touchend:passive",w),t.on("resize",C),e.on("beforeOpen",C),e.once("panelDestroy",(function(){r.removeClass("panel-resizable"),e.$resizeHandlerEl.remove(),e.$el.off(t.touchEvents.start,".panel-resize-handler",b,m),t.off("touchmove:active",y),t.off("touchend:passive",w),t.off("resize",C),e.off("beforeOpen",C)}))}}function g(e){if(!e)return null;if(e.indexOf("%")>=0||e.indexOf("vw")>=0)return parseInt(e,10)/100*t.width;var a=parseInt(e,10);return Number.isNaN(a)?null:a}function b(t){e.resizable&&r.hasClass("panel-resizable")&&(v.x="touchstart"===t.type?t.targetTouches[0].pageX:t.pageX,v.y="touchstart"===t.type?t.targetTouches[0].pageY:t.pageY,l=!1,o=!0,u=g(r.css("min-width")),h=g(r.css("max-width")),f=r.hasClass("panel-in-breakpoint"))}function y(m){if(o){var g="touchmove"===m.type?m.targetTouches[0].pageX:m.pageX;l||(c=r[0].offsetWidth,r.transition(0),r.addClass("panel-resizing"),a.css("cursor","col-resize"),("reveal"===s||f)&&(d=$(e.getViewEl())),"reveal"!==s||f||(i.transition(0),d.transition(0))),l=!0,m.preventDefault(),p=g-v.x;var b="left"===n?c+p:c-p;u&&!Number.isNaN(u)&&(b=Math.max(b,u)),h&&!Number.isNaN(h)&&(b=Math.min(b,h)),b=Math.min(Math.max(b,0),t.width),e.resizableWidth=b,r[0].style.width=b+"px","reveal"!==s||f?f&&d&&d.css("margin-"+n,b+"px"):(d&&d.transform("translate3d("+("left"===n?b:-b)+"px, 0, 0)"),i&&i.transform("translate3d("+("left"===n?b:-b)+"px, 0, 0)")),r.trigger("panel:resize",b),e.emit("local::resize panelResize",e,b)}}function w(){if($("html").css("cursor",""),!o||!l)return o=!1,void(l=!1);o=!1,l=!1,a[0].style.setProperty("--f7-panel-"+n+"-width",e.resizableWidth+"px"),r[0].style.width="","reveal"!==s||f||(d.transform(""),i.transform("")),r.removeClass("panel-resizing"),Utils.nextFrame((function(){r.transition(""),"reveal"===s&&(i.transition(""),d&&d.transition(""))}))}function C(){e.opened&&e.resizableWidth&&(u=g(r.css("min-width")),h=g(r.css("max-width")),u&&!Number.isNaN(u)&&e.resizableWidthh&&(e.resizableWidth=Math.min(e.resizableWidth,h)),e.resizableWidth=Math.min(Math.max(e.resizableWidth,0),t.width),a[0].style.setProperty("--f7-panel-"+n+"-width",e.resizableWidth+"px"))}}var Panel=function(e){function t(t,a){void 0===a&&(a={});var r=Utils.extend({on:{}},t.params.panel,a);e.call(this,r,[t]);var i;if(this.params=r,this.$containerEl=this.params.containerEl?$(this.params.containerEl).eq(0):t.root,this.containerEl=this.$containerEl[0],this.params.el?i=$(this.params.el).eq(0):this.params.content&&(i=$(this.params.content).filter((function(e,t){return 1===t.nodeType})).eq(0)),0===i.length)return this;if(i[0].f7Panel)return i[0].f7Panel;i[0].f7Panel=this;var n,s=this.params,o=s.side,l=s.effect,p=s.resizable;return void 0===o&&(o=i.hasClass("panel-left")?"left":"right"),void 0===l&&(l=i.hasClass("panel-cover")?"cover":"reveal"),void 0===p&&(p=i.hasClass("panel-resizable")),this.params.backdrop&&this.params.backdropEl?n=$(this.params.backdropEl):this.params.backdrop&&0===(n=this.$containerEl.children(".panel-backdrop")).length&&(n=$('
                    '),this.$containerEl.prepend(n)),Utils.extend(this,{app:t,side:o,effect:l,resizable:p,$el:i,el:i[0],opened:!1,$backdropEl:n,backdropEl:n&&n[0]}),this.useModules(),this.init(),this}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.getViewEl=function(){return this.$containerEl.children(".views").length>0?this.$containerEl.children(".views")[0]:this.$containerEl.children(".view")[0]},t.prototype.enableVisibleBreakpoint=function(){return this.visibleBreakpointDisabled=!1,this.setVisibleBreakpoint(),this},t.prototype.disableVisibleBreakpoint=function(){return this.visibleBreakpointDisabled=!0,this.setVisibleBreakpoint(),this},t.prototype.toggleVisibleBreakpoint=function(){return this.visibleBreakpointDisabled=!this.visibleBreakpointDisabled,this.setVisibleBreakpoint(),this},t.prototype.setVisibleBreakpoint=function(e){var t,a,r;void 0===e&&(e=!0);var i=this,n=i.app;i.visibleBreakpointResizeHandler||(i.visibleBreakpointResizeHandler=function(){i.setVisibleBreakpoint()},n.on("resize",i.visibleBreakpointResizeHandler));var s=i.side,o=i.$el,l=i.params,p=i.visibleBreakpointDisabled,c=l.visibleBreakpoint,d=$(i.getViewEl()),u=o.hasClass("panel-in-breakpoint");n.width>=c&&null!=c&&!p?u?d.css(((a={})["margin-"+s]=o.width()+"px",a)):($("html").removeClass("with-panel-"+s+"-reveal with-panel-"+s+"-cover with-panel"),o.addClass("panel-in-breakpoint").removeClass("panel-in panel-in-collapsed"),i.onOpen(!1),i.onOpened(),d.css(((t={})["margin-"+s]=o.width()+"px",t)),n.allowPanelOpen=!0,e&&(i.emit("local::breakpoint panelBreakpoint",i),i.$el.trigger("panel:breakpoint"))):u&&(o.removeClass("panel-in-breakpoint panel-in"),i.onClose(),i.onClosed(),d.css(((r={})["margin-"+s]="",r)),e&&(i.emit("local::breakpoint panelBreakpoint",i),i.$el.trigger("panel:breakpoint")))},t.prototype.enableCollapsedBreakpoint=function(){return this.collapsedBreakpointDisabled=!1,this.setCollapsedBreakpoint(),this},t.prototype.disableCollapsedBreakpoint=function(){return this.collapsedBreakpointDisabled=!0,this.setCollapsedBreakpoint(),this},t.prototype.toggleCollapsedBreakpoint=function(){return this.collapsedBreakpointDisabled=!this.collapsedBreakpointDisabled,this.setCollapsedBreakpoint(),this},t.prototype.setCollapsedBreakpoint=function(e){var t=this,a=t.app;t.collapsedBreakpointResizeHandler||(t.collapsedBreakpointResizeHandler=function(){t.setCollapsedBreakpoint()},a.on("resize",t.collapsedBreakpointResizeHandler));var r=t.side,i=t.$el,n=t.params,s=t.collapsedBreakpointDisabled;if(!i.hasClass("panel-in-breakpoint")){var o=n.collapsedBreakpoint,l=i.hasClass("panel-in-collapsed");a.width>=o&&null!=o&&!s?l||($("html").removeClass("with-panel-"+r+"-reveal with-panel-"+r+"-cover with-panel"),i.addClass("panel-in-collapsed").removeClass("panel-in"),t.collapsed=!0,a.allowPanelOpen=!0,e&&(t.emit("local::collapsedBreakpoint panelCollapsedBreakpoint",t),t.$el.trigger("panel:collapsedbreakpoint"))):l&&(i.removeClass("panel-in-collapsed panel-in"),t.collapsed=!1,e&&(t.emit("local::collapsedBreakpoint panelCollapsedBreakpoint",t),t.$el.trigger("panel:collapsedbreakpoint")))}},t.prototype.enableResizable=function(){return this.resizableInitialized?(this.resizable=!0,this.$el.addClass("panel-resizable")):resizablePanel(this),this},t.prototype.disableResizable=function(){return this.resizable=!1,this.$el.removeClass("panel-resizable"),this},t.prototype.enableSwipe=function(){return this.swipeInitialized?this.swipeable=!0:swipePanel(this),this},t.prototype.disableSwipe=function(){return this.swipeable=!1,this},t.prototype.onOpen=function(e){void 0===e&&(e=!0);var t=this.app;this.opened=!0,t.panel.allowOpen=!1,this.$el.trigger("panel:beforeopen"),this.emit("local::beforeOpen panelBeforeOpen",this),e&&$("html").addClass("with-panel with-panel-"+this.side+"-"+this.effect),this.$el.trigger("panel:open"),this.emit("local::open panelOpen",this)},t.prototype.onOpened=function(){this.app.panel.allowOpen=!0,this.$el.trigger("panel:opened"),this.emit("local::opened panelOpened",this)},t.prototype.onClose=function(){var e=this.app;this.opened=!1,e.panel.allowOpen=!1,this.$el.trigger("panel:beforeclose"),this.emit("local::beforeClose panelBeforeClose",this),$("html").addClass("with-panel-closing"),$("html").removeClass("with-panel with-panel-"+this.side+"-"+this.effect),this.$el.trigger("panel:close"),this.emit("local::close panelClose",this)},t.prototype.onClosed=function(){var e=this.app;if(e.panel.allowOpen=!0,$("html").removeClass("with-panel-closing"),this.$el.removeClass("panel-out"),this.$backdropEl){var t=e.panel.get(".panel-in");(!t||t&&!t.$backdropEl)&&this.$backdropEl.removeClass("panel-backdrop-in")}this.$el.trigger("panel:closed"),this.emit("local::closed panelClosed",this)},t.prototype.toggle=function(e){void 0===e&&(e=!0);var t=this.params.visibleBreakpoint;return this.app.width>=t&&null!=t?this.toggleVisibleBreakpoint():(this.opened?this.close(e):this.open(e),this)},t.prototype.insertToRoot=function(){var e=this.$el,t=this.$backdropEl,a=this.$containerEl,r=e.parent(),i=e.parents(document).length>0;if(!r.is(a)||e.prevAll(".views, .view").length){var n=a.children(".panel, .views, .view").eq(0),s=a.children(".panel-backdrop").eq(0);n.length?e.insertBefore(n):s?e.insertBefore(s):a.prepend(e),t&&t.length&&(!t.parent().is(a)&&0===t.nextAll(".panel").length||t.parent().is(a)&&0===t.nextAll(".panel").length)&&t.insertBefore(e),this.once("panelClosed",(function(){i?r.append(e):e.remove()}))}},t.prototype.open=function(e){void 0===e&&(e=!0);var t=this,a=t.app;if(!a.panel.allowOpen)return!1;var r=t.effect,i=t.$el,n=t.$backdropEl,s=t.opened;if(!i||i.hasClass("panel-in"))return t;if(t.insertToRoot(),s||i.hasClass("panel-in-breakpoint")||i.hasClass("panel-in"))return!1;var o=a.panel.get(".panel-in");o&&o!==t&&o.close(e),i[e?"removeClass":"addClass"]("not-animated"),i.addClass("panel-in"),n&&(n.addClass("panel-backdrop-in"),n[e?"removeClass":"addClass"]("not-animated")),"cover"===t.effect&&(t._clientLeft=i[0].clientLeft);var l="reveal"===r?i.nextAll(".view, .views").eq(0):i;return e?(n&&n.removeClass("not-animated"),function e(){l.transitionEnd((function(a){$(a.target).is(l)?i.hasClass("panel-out")?t.onClosed():t.onOpened():e()}))}(),i.removeClass("panel-out not-animated").addClass("panel-in"),t.onOpen()):(n&&n.addClass("not-animated"),i.removeClass("panel-out").addClass("panel-in not-animated"),t.onOpen(),t.onOpened()),!0},t.prototype.close=function(e){void 0===e&&(e=!0);var t=this,a=t.effect,r=t.$el,i=t.$backdropEl;if(!t.opened||r.hasClass("panel-in-breakpoint")||!r.hasClass("panel-in"))return t;r[e?"removeClass":"addClass"]("not-animated"),i&&i[e?"removeClass":"addClass"]("not-animated");var n="reveal"===a?r.nextAll(".view, .views").eq(0):r;return e?(n.transitionEnd((function(){r.hasClass("panel-out")?t.onClosed():r.hasClass("panel-in")&&t.onOpened(),$("html").removeClass("with-panel-closing")})),r.removeClass("panel-in").addClass("panel-out"),t.onClose()):(r.addClass("not-animated").removeClass("panel-in").addClass("panel-out"),t.onClose(),t.onClosed()),t},t.prototype.init=function(){void 0!==this.params.visibleBreakpoint&&this.setVisibleBreakpoint(),void 0!==this.params.collapsedBreakpoint&&this.setCollapsedBreakpoint(),this.params.swipe&&this.enableSwipe(),this.resizable&&this.enableResizable()},t.prototype.destroy=function(){var e,t=this,a=t.app;if(t.$el){if(t.emit("local::beforeDestroy panelBeforeDestroy",t),t.$el.trigger("panel:beforedestroy"),t.visibleBreakpointResizeHandler&&a.off("resize",t.visibleBreakpointResizeHandler),t.collapsedBreakpointResizeHandler&&a.off("resize",t.collapsedBreakpointResizeHandler),t.$el.hasClass("panel-in-breakpoint")||t.$el.hasClass("panel-in-collapsed")){var r=$(t.getViewEl());t.$el.removeClass("panel-in-breakpoint panel-in-collapsed panel-in"),r.css(((e={})["margin-"+t.side]="",e)),t.emit("local::breakpoint panelBreakpoint",t),t.$el.trigger("panel:breakpoint")}t.$el.trigger("panel:destroy"),t.emit("local::destroy panelDestroy",t),t.el&&(t.el.f7Panel=null,delete t.el.f7Panel),Utils.deleteProps(t),t=null}},t}(Framework7Class),Panel$1={name:"panel",params:{panel:{opened:void 0,side:void 0,effect:void 0,resizable:void 0,backdrop:!0,backdropEl:void 0,visibleBreakpoint:void 0,collapsedBreakpoint:void 0,swipe:!1,swipeNoFollow:!1,swipeOnlyClose:!1,swipeActiveArea:0,swipeThreshold:0,closeByBackdropClick:!0,containerEl:void 0}},static:{Panel:Panel},instance:{panel:{allowOpen:!0}},create:function(){var e=this;Utils.extend(e.panel,{create:function(t){return new Panel(e,t)},get:function(e){if(void 0===e&&(e=".panel"),e instanceof Panel)return e;"left"!==e&&"right"!==e||(e=".panel-"+e);var t=$(e);return 0===t.length||t.length>1?void 0:t[0].f7Panel},destroy:function(t){void 0===t&&(t=".panel");var a=e.panel.get(t);if(a&&a.destroy)return a.destroy()},open:function(t,a){void 0===t&&(t=".panel"),"left"!==t&&"right"!==t||(t=".panel-"+t);var r=e.panel.get(t);return r&&r.open?r.open(a):r?void 0:(r=e.panel.create({el:t})).open(a)},close:function(t,a){void 0===t&&(t=".panel-in"),"left"!==t&&"right"!==t||(t=".panel-"+t);var r=e.panel.get(t);return r&&r.open?r.close(a):r?void 0:(r=e.panel.create({el:t})).close(a)},toggle:function(t,a){void 0===t&&(t=".panel"),"left"!==t&&"right"!==t||(t=".panel-"+t);var r=e.panel.get(t);return r&&r.toggle?r.toggle(a):r?void 0:(r=e.panel.create({el:t})).toggle(a)}})},on:{init:function(){var e=this;$(".panel-init").each((function(t,a){var r=Object.assign({el:a},$(a).dataset()||{});e.panel.create(r)}))},pageInit:function(e){var t=this;e.$el.find(".panel-init").each((function(e,a){var r=Object.assign({el:a},$(a).dataset()||{});t.panel.create(r)}))},pageBeforeRemove:function(e){var t=this;e.$el.find(".panel-init").each((function(e,a){var r=t.panel.get(a);r&&r.destroy&&r.destroy()}))}},vnode:{"panel-init":{insert:function(e){var t=e.elm,a=Object.assign({el:t},$(t).dataset()||{});this.panel.create(a)},destroy:function(e){var t=e.elm,a=this.panel.get(t);a&&a.destroy&&a.destroy()}}},clicks:{".panel-open":function(e,t){void 0===t&&(t={});this.panel.open(t.panel,t.animate)},".panel-close":function(e,t){void 0===t&&(t={});this.panel.close(t.panel,t.animate)},".panel-toggle":function(e,t){void 0===t&&(t={});this.panel.toggle(t.panel,t.animate)},".panel-backdrop":function(){var e=$(".panel-in:not(.panel-out)");if(e.length){var t=e[0]&&e[0].f7Panel;e.trigger("panel:backdrop-click"),t&&t.emit("backdropClick",t),this.emit("panelBackdropClick",t||e[0]),this.params.panel.closeByBackdropClick&&this.panel.close()}}}},CardExpandable={open:function(e,t){var a;void 0===e&&(e=".card-expandable"),void 0===t&&(t=!0);var r=this,i=$(e).eq(0);if(i&&i.length&&!(i.hasClass("card-opened")||i.hasClass("card-opening")||i.hasClass("card-closing"))){var n,s=i.parents(".page").eq(0);if(s.length)if(!s.find(".card-opened").length)if(i.trigger("card:beforeopen",{prevent:X}),r.emit("cardBeforeOpen",i[0],X),!n){var o,l,p,c=Object.assign({animate:t},r.params.card,i.dataset()),d=i.parents(".page-content");i.attr("data-backdrop-el")&&(o=$(i.attr("data-backdrop-el"))),!o&&c.backdrop&&((o=d.find(".card-backdrop")).length||(o=$('
                    '),d.append(o))),c.hideNavbarOnOpen&&((l=s.children(".navbar")).length||s[0].f7Page&&(l=s[0].f7Page.$navbarEl)),c.hideToolbarOnOpen&&((p=s.children(".toolbar")).length||(p=s.parents(".view").children(".toolbar")),p.length||(p=s.parents(".views").children(".toolbar")));var u,h=i.css("transform");h&&h.match(/[2-9]/)&&(u=!0);var f=i.children(".card-content"),v=$(document.createElement("div")).addClass("card-expandable-size");i.append(v);var m,g=i[0].offsetWidth,b=i[0].offsetHeight,y=s[0].offsetWidth,w=s[0].offsetHeight,C=v[0].offsetWidth||y,x=v[0].offsetHeight||w;l&&!c.hideStatusbarOnOpen&&x===w&&(m=parseInt(l.css("--f7-safe-area-top"),10),Number.isNaN(m)&&(m=0)),m&&(x-=m);var k,E,T=C/g,S=x/b,M=i.offset(),P=s.offset();if(m&&(P.top+=m/2),M.left-=P.left,u){var O=h.replace(/matrix\(|\)/g,"").split(",").map((function(e){return e.trim()}));if(O&&O.length>1){var I=parseFloat(O[0]);k=M.left-g*(1-I)/2,E=M.top-P.top-b*(1-I)/2,r.rtl&&(k-=i[0].scrollLeft)}else k=i[0].offsetLeft,E=i[0].offsetTop-(d.length?d[0].scrollTop:0)}else k=M.left,E=M.top-P.top,r.rtl&&(k-=i[0].scrollLeft);E-=(w-x)/2;var D=C-g-(k-=(y-C)/2);r.rtl&&(k=(a=[D,k])[0],D=a[1]);var B,R,z,L,H,A,U,N,F,V,q,j,Y=x-b-E,W=(D-k)/2,_=(Y-E)/2;c.hideNavbarOnOpen&&l&&l.length&&(l.closest(".navbar-hidden").length?i[0].f7KeepNavbarOnClose=!0:(delete i[0].f7KeepNavbarOnClose,r.navbar.hide(l,c.animate,c.hideStatusbarOnOpen))),c.hideToolbarOnOpen&&p&&p.length&&(p.closest(".toolbar-hidden").length?i[0].f7KeepToolbarOnClose=!0:(delete i[0].f7KeepToolbarOnClose,r.toolbar.hide(p,c.animate))),o&&o.removeClass("card-backdrop-out").addClass("card-backdrop-in"),i.removeClass("card-transitioning"),c.animate&&i.addClass("card-opening"),i.trigger("card:open"),r.emit("cardOpen",i[0]),f.css({width:C+"px",height:x+"px"}).transform("translate3d("+(r.rtl?k+W:-k-W)+"px, 0px, 0) scale("+1/T+", "+1/S+")"),i.transform("translate3d("+(r.rtl?-W:W)+"px, "+_+"px, 0) scale("+T+", "+S+")"),c.animate?i.transitionEnd((function(){G()})):G(),i[0].detachEventHandlers=function(){r.off("resize",K),Support.touch&&c.swipeToClose&&(r.off("touchstart:passive",Q),r.off("touchmove:active",J),r.off("touchend:passive",Z))},r.on("resize",K),Support.touch&&c.swipeToClose&&(r.on("touchstart:passive",Q),r.on("touchmove:active",J),r.on("touchend:passive",Z))}}function X(){n=!0}function G(){s.addClass("page-with-card-opened"),r.device.ios&&d.length&&(d.css("height",d[0].offsetHeight+1+"px"),setTimeout((function(){d.css("height","")}))),i.addClass("card-opened"),i.removeClass("card-opening"),i.trigger("card:opened"),r.emit("cardOpened",i[0],s[0])}function K(){var e;i.removeClass("card-transitioning"),g=i[0].offsetWidth,b=i[0].offsetHeight,y=s[0].offsetWidth,w=s[0].offsetHeight,C=v[0].offsetWidth||y,x=v[0].offsetHeight||w,m=0,l&&!c.hideStatusbarOnOpen&&x===w&&(m=parseInt(l.css("--f7-safe-area-top"),10),Number.isNaN(m)&&(m=0)),m&&(x-=m),T=C/g,S=x/b,i.transform("translate3d(0px, 0px, 0) scale(1)"),M=i.offset(),P=s.offset(),m&&(P.top+=m/2),M.left-=P.left,M.top-=P.top,k=M.left-(y-C)/2,r.rtl&&(k-=i[0].scrollLeft),E=M.top-(w-x)/2,D=C-g-k,Y=x-b-E,r.rtl&&(k=(e=[D,k])[0],D=e[1]),W=(D-k)/2,_=(Y-E)/2,i.transform("translate3d("+(r.rtl?-W:W)+"px, "+_+"px, 0) scale("+T+", "+S+")"),f.css({width:C+"px",height:x+"px"}).transform("translate3d("+(r.rtl?k+W:-k-W)+"px, 0px, 0) scale("+1/T+", "+1/S+")")}function Q(e){$(e.target).closest(i).length&&i.hasClass("card-opened")&&(j=i.find(c.scrollableEl),B=j[0]&&j[0]!==f[0]&&!j[0].contains(e.target)?0:j.scrollTop(),R=!0,L=e.targetTouches[0].pageX,H=e.targetTouches[0].pageY,N=void 0,V=!1,q=!1)}function J(e){if(R){if(A=e.targetTouches[0].pageX,U=e.targetTouches[0].pageY,void 0===N&&(N=!!(N||Math.abs(U-H)>Math.abs(A-L))),q||V||(!N&&e.targetTouches[0].clientX<=50?q=!0:V=!0),!q&&!V||V&&0!==B)return R=!0,void(z=!0);z||i.removeClass("card-transitioning"),z=!0,((F=V?Math.max((U-H)/150,0):Math.max((A-L)/(g/2),0))>0&&V||q)&&(V&&r.device.ios&&j[0]===f[0]&&(j.css("-webkit-overflow-scrolling","auto"),j.scrollTop(0)),e.preventDefault()),F>1&&(F=Math.pow(F,.3)),F>(V?1.3:1.1)?(R=!1,z=!1,r.card.close(i)):i.transform("translate3d("+(r.rtl?-W:W)+"px, "+_+"px, 0) scale("+T*(1-.2*F)+", "+S*(1-.2*F)+")")}}function Z(){R&&z&&(R=!1,z=!1,r.device.ios&&j.css("-webkit-overflow-scrolling",""),F>=.8?r.card.close(i):i.addClass("card-transitioning").transform("translate3d("+(r.rtl?-W:W)+"px, "+_+"px, 0) scale("+T+", "+S+")"))}},close:function(e,t){void 0===e&&(e=".card-expandable.card-opened"),void 0===t&&(t=!0);var a=this,r=$(e).eq(0);if(r&&r.length&&r.hasClass("card-opened")&&!r.hasClass("card-opening")&&!r.hasClass("card-closing")){var i=r.children(".card-content"),n=r.parents(".page-content"),s=r.parents(".page").eq(0);if(s.length){var o,l,p,c=Object.assign({animate:t},a.params.card,r.dataset()),d=r.find(c.scrollableEl);r.attr("data-backdrop-el")&&(p=$(r.attr("data-backdrop-el"))),c.backdrop&&(p=r.parents(".page-content").find(".card-backdrop")),c.hideNavbarOnOpen&&((o=s.children(".navbar")).length||s[0].f7Page&&(o=s[0].f7Page.$navbarEl),o&&o.length&&!r[0].f7KeepNavbarOnClose&&a.navbar.show(o,c.animate)),c.hideToolbarOnOpen&&((l=s.children(".toolbar")).length||(l=s.parents(".view").children(".toolbar")),l.length||(l=s.parents(".views").children(".toolbar")),l&&l.length&&!r[0].f7KeepToolbarOnClose&&a.toolbar.show(l,c.animate)),s.removeClass("page-with-card-opened"),a.device.ios&&n.length&&(n.css("height",n[0].offsetHeight+1+"px"),setTimeout((function(){n.css("height","")}))),p&&p.length&&p.removeClass("card-backdrop-in").addClass("card-backdrop-out"),r.removeClass("card-opened card-transitioning"),c.animate?r.addClass("card-closing"):r.addClass("card-no-transition"),r.transform(""),r.trigger("card:close"),a.emit("cardClose",r[0],s[0]);var u=r.hasClass("card-expandable-animate-width");u&&i.css({width:"",height:""}),i.transform("").scrollTop(0,t?300:0),d.length&&d[0]!==i[0]&&d.scrollTop(0,t?300:0),t?i.transitionEnd((function(){h()})):h(),r[0].detachEventHandlers&&(r[0].detachEventHandlers(),delete r[0].detachEventHandlers)}}function h(){u||i.css({width:"",height:""}),p&&p.length&&p.removeClass("card-backdrop-in card-backdrop-out"),r.removeClass("card-closing card-no-transition"),r.trigger("card:closed"),r.find(".card-expandable-size").remove(),a.emit("cardClosed",r[0],s[0])}},toggle:function(e,t){void 0===e&&(e=".card-expandable");var a=$(e).eq(0);a.length&&(a.hasClass("card-opened")?this.card.close(a,t):this.card.open(a,t))}},Card={name:"card",params:{card:{hideNavbarOnOpen:!0,hideStatusbarOnOpen:!0,hideToolbarOnOpen:!0,scrollableEl:".card-content",swipeToClose:!0,closeByBackdropClick:!0,backdrop:!0}},create:function(){Utils.extend(this,{card:{open:CardExpandable.open.bind(this),close:CardExpandable.close.bind(this),toggle:CardExpandable.toggle.bind(this)}})},on:{pageBeforeIn:function(e){if(this.params.card.hideNavbarOnOpen&&e.navbarEl&&e.$el.find(".card-opened.card-expandable").length&&this.navbar.hide(e.navbarEl,!0,this.params.card.hideStatusbarOnOpen),this.params.card.hideToolbarOnOpen&&e.$el.find(".card-opened.card-expandable").length){var t=e.$el.children(".toolbar");t.length||(t=e.$el.parents(".view").children(".toolbar")),t.length||(t=e.$el.parents(".views").children(".toolbar")),t&&t.length&&this.toolbar.hide(t)}}},clicks:{".card-close":function(e,t){this.card.close(t.card,t.animate)},".card-open":function(e,t){this.card.open(t.card,t.animate)},".card-expandable":function(e,t,a){e.hasClass("card-opened")||e.hasClass("card-opening")||e.hasClass("card-closing")||$(a.target).closest(".card-prevent-open, .card-close").length||this.card.open(e)},".card-backdrop-in":function(){var e=!1;this.params.card.closeByBackdropClick&&(e=!0);var t=$(".card-opened");t.length&&("true"===t.attr("data-close-by-backdrop-click")?e=!0:"false"===t.attr("data-close-by-backdrop-click")&&(e=!1),e&&this.card.close(t))}}},Chip={name:"chip"},FormData$1={store:function(e,t){var a=e,r=$(e);r.length&&r.is("form")&&r.attr("id")&&(a=r.attr("id")),this.form.data["form-"+a]=t,win.localStorage["f7form-"+a]=JSON.stringify(t)},get:function(e){var t=e,a=$(e);return a.length&&a.is("form")&&a.attr("id")&&(t=a.attr("id")),win.localStorage["f7form-"+t]?JSON.parse(win.localStorage["f7form-"+t]):this.form.data["form-"+t]?this.form.data["form-"+t]:void 0},remove:function(e){var t=e,a=$(e);a.length&&a.is("form")&&a.attr("id")&&(t=a.attr("id")),this.form.data["form-"+t]&&(this.form.data["form-"+t]="",delete this.form.data["form-"+t]),win.localStorage["f7form-"+t]&&(win.localStorage["f7form-"+t]="",win.localStorage.removeItem("f7form-"+t))}},FormStorage={init:function(e){var t=this,a=$(e),r=a.attr("id");if(r){var i=t.form.getFormData(r);i&&t.form.fillFromData(a,i),a.on("change submit",(function(){var e=t.form.convertToData(a);e&&(t.form.storeFormData(r,e),a.trigger("form:storedata",e),t.emit("formStoreData",a[0],e))}))}},destroy:function(e){$(e).off("change submit")}};function formToData(e){var t=$(e).eq(0);if(0!==t.length){var a={},r=["submit","image","button","file"],i=[];return t.find("input, select, textarea").each((function(e,n){var s=$(n);if(!s.hasClass("ignore-store-data")&&!s.hasClass("no-store-data")){var o=s.attr("name"),l=s.attr("type"),p=n.nodeName.toLowerCase();if(!(r.indexOf(l)>=0)&&!(i.indexOf(o)>=0)&&o)if("select"===p&&s.prop("multiple"))i.push(o),a[o]=[],t.find('select[name="'+o+'"] option').each((function(e,t){t.selected&&a[o].push(t.value)}));else switch(l){case"checkbox":i.push(o),a[o]=[],t.find('input[name="'+o+'"]').each((function(e,t){t.checked&&a[o].push(t.value)}));break;case"radio":i.push(o),t.find('input[name="'+o+'"]').each((function(e,t){t.checked&&(a[o]=t.value)}));break;default:a[o]=s.val()}}})),t.trigger("form:todata",a),this.emit("formToData",t[0],a),a}}function formFromData(e,t){var a=$(e).eq(0);if(a.length){var r=t,i=a.attr("id");if(!r&&i&&(r=this.form.getFormData(i)),r){var n=["submit","image","button","file"],s=[];a.find("input, select, textarea").each((function(e,t){var i=$(t);if(!i.hasClass("ignore-store-data")&&!i.hasClass("no-store-data")){var o=i.attr("name"),l=i.attr("type"),p=t.nodeName.toLowerCase();if(void 0!==r[o]&&null!==r[o]&&!(n.indexOf(l)>=0)&&!(s.indexOf(o)>=0)&&o){if("select"===p&&i.prop("multiple"))s.push(o),a.find('select[name="'+o+'"] option').each((function(e,t){var a=t;r[o].indexOf(t.value)>=0?a.selected=!0:a.selected=!1}));else switch(l){case"checkbox":s.push(o),a.find('input[name="'+o+'"]').each((function(e,t){var a=t;r[o].indexOf(t.value)>=0?a.checked=!0:a.checked=!1}));break;case"radio":s.push(o),a.find('input[name="'+o+'"]').each((function(e,t){var a=t;r[o]===t.value?a.checked=!0:a.checked=!1}));break;default:i.val(r[o])}"select"!==p&&"input"!==p&&"textarea"!==p||i.trigger("change","fromdata")}}})),a.trigger("form:fromdata",r),this.emit("formFromData",a[0],r)}}}function initAjaxForm(){var e=this;$(doc).on("submit change","form.form-ajax-submit, form.form-ajax-submit-onchange",(function(t,a){var r=$(this);if(("change"!==t.type||r.hasClass("form-ajax-submit-onchange"))&&("submit"===t.type&&t.preventDefault(),"change"!==t.type||"fromdata"!==a)){var i,n=(r.attr("method")||"GET").toUpperCase(),s=r.prop("enctype")||r.attr("enctype"),o=r.attr("action");if(o)i="POST"===n?"application/x-www-form-urlencoded"===s?e.form.convertToData(r[0]):new win.FormData(r[0]):Utils.serializeObject(e.form.convertToData(r[0])),e.request({method:n,url:o,contentType:s,data:i,beforeSend:function(t){r.trigger("formajax:beforesend",{data:i,xhr:t}),e.emit("formAjaxBeforeSend",r[0],i,t)},error:function(t){r.trigger("formajax:error",{data:i,xhr:t}),e.emit("formAjaxError",r[0],i,t)},complete:function(t){r.trigger("formajax:complete",{data:i,xhr:t}),e.emit("formAjaxComplete",r[0],i,t)},success:function(t,a,n){r.trigger("formajax:success",{data:i,xhr:n}),e.emit("formAjaxSuccess",r[0],i,n)}})}}))}var Form={name:"form",create:function(){Utils.extend(this,{form:{data:{},storeFormData:FormData$1.store.bind(this),getFormData:FormData$1.get.bind(this),removeFormData:FormData$1.remove.bind(this),convertToData:formToData.bind(this),fillFromData:formFromData.bind(this),storage:{init:FormStorage.init.bind(this),destroy:FormStorage.destroy.bind(this)}}})},on:{init:function(){initAjaxForm.call(this)},tabBeforeRemove:function(e){var t=this;$(e).find(".form-store-data").each((function(e,a){t.form.storage.destroy(a)}))},tabMounted:function(e){var t=this;$(e).find(".form-store-data").each((function(e,a){t.form.storage.init(a)}))},pageBeforeRemove:function(e){var t=this;e.$el.find(".form-store-data").each((function(e,a){t.form.storage.destroy(a)}))},pageInit:function(e){var t=this;e.$el.find(".form-store-data").each((function(e,a){t.form.storage.init(a)}))}}},Input={ignoreTypes:["checkbox","button","submit","range","radio","image"],createTextareaResizableShadow:function(){var e=$(doc.createElement("textarea"));e.addClass("textarea-resizable-shadow"),e.prop({disabled:!0,readonly:!0}),Input.textareaResizableShadow=e},textareaResizableShadow:void 0,resizeTextarea:function(e){var t=$(e);Input.textareaResizableShadow||Input.createTextareaResizableShadow();var a=Input.textareaResizableShadow;if(t.length&&t.hasClass("resizable")){0===Input.textareaResizableShadow.parents().length&&this.root.append(a);var r=win.getComputedStyle(t[0]);"padding-top padding-bottom padding-left padding-right margin-left margin-right margin-top margin-bottom width font-size font-family font-style font-weight line-height font-variant text-transform letter-spacing border box-sizing display".split(" ").forEach((function(e){var t=r[e];"font-size line-height letter-spacing width".split(" ").indexOf(e)>=0&&(t=t.replace(",",".")),a.css(e,t)}));var i=t[0].clientHeight;a.val("");var n=a[0].scrollHeight;a.val(t.val()),a.css("height",0);var s=a[0].scrollHeight;i!==s&&(s>n?t.css("height",s+"px"):sn||s')).insertAfter(t),o.text(s)),o.length>0&&(a.addClass("item-input-with-error-message"),r.addClass("input-with-error-message")),a.addClass("item-input-invalid"),r.addClass("input-invalid"),t.addClass("input-invalid"),i(),!1}return a.removeClass("item-input-invalid item-input-with-error-message"),r.removeClass("input-invalid input-with-error-message"),t.removeClass("input-invalid"),i(),!0},validateInputs:function(e){var t=this;return $(e).find("input, textarea, select").toArray().map((function(e){return t.input.validate(e)})).indexOf(!1)<0},focus:function(e){var t=$(e),a=t.attr("type");Input.ignoreTypes.indexOf(a)>=0||(t.parents(".item-input").addClass("item-input-focused"),t.parents(".input").addClass("input-focused"),t.addClass("input-focused"))},blur:function(e){var t=$(e);t.parents(".item-input").removeClass("item-input-focused"),t.parents(".input").removeClass("input-focused"),t.removeClass("input-focused")},checkEmptyState:function(e){var t=$(e);if(t.is("input, select, textarea, .item-input [contenteditable]")||(t=t.find("input, select, textarea, .item-input [contenteditable]").eq(0)),t.length){var a;a=t[0].hasAttribute("contenteditable")?t.find(".text-editor-placeholder").length?"":t.html():t.val();var r=t.parents(".item-input"),i=t.parents(".input");a&&"string"==typeof a&&""!==a.trim()||Array.isArray(a)&&a.length>0?(r.addClass("item-input-with-value"),i.addClass("input-with-value"),t.addClass("input-with-value"),t.trigger("input:notempty"),this.emit("inputNotEmpty",t[0])):(r.removeClass("item-input-with-value"),i.removeClass("input-with-value"),t.removeClass("input-with-value"),t.trigger("input:empty"),this.emit("inputEmpty",t[0]))}},scrollIntoView:function(e,t,a,r){void 0===t&&(t=0);var i=$(e),n=i.parents(".page-content, .panel, .card-expandable .card-content").eq(0);if(!n.length)return!1;var s=n[0].offsetHeight,o=n[0].scrollTop,l=parseInt(n.css("padding-top"),10),p=parseInt(n.css("padding-bottom"),10),c=n.offset().top-o,d=i.offset().top-c,u=d+o-l,h=d+o-s+p+i[0].offsetHeight,f=u+(h-u)/2;return o>u?(n.scrollTop(a?f:u,t),!0):o=0||(e.input.checkEmptyState(t),i||(null!==t.attr("data-validate-on-blur")||!t.dataset().validate&&null===t.attr("validate")||e.input.validate(t),"textarea"===r&&t.hasClass("resizable")&&e.input.resizeTextarea(t)))}),!0),$(doc).on("focus","input, textarea, select, .item-input [contenteditable]",(function(){var t=this;e.params.input.scrollIntoViewOnFocus&&(Device.android?$(win).once("resize",(function(){doc&&doc.activeElement===t&&e.input.scrollIntoView(t,e.params.input.scrollIntoViewDuration,e.params.input.scrollIntoViewCentered,e.params.input.scrollIntoViewAlways)})):e.input.scrollIntoView(t,e.params.input.scrollIntoViewDuration,e.params.input.scrollIntoViewCentered,e.params.input.scrollIntoViewAlways)),e.input.focus(t)}),!0),$(doc).on("blur","input, textarea, select, .item-input [contenteditable]",(function(){var t=$(this),a=t[0].nodeName.toLowerCase();e.input.blur(t),(t.dataset().validate||null!==t.attr("validate")||null!==t.attr("data-validate-on-blur"))&&e.input.validate(t),"textarea"===a&&t.hasClass("resizable")&&Input.textareaResizableShadow&&Input.textareaResizableShadow.remove()}),!0),$(doc).on("invalid","input, textarea, select",(function(t){var a=$(this);null!==a.attr("data-validate-on-blur")||!a.dataset().validate&&null===a.attr("validate")||(t.preventDefault(),e.input.validate(a))}),!0)}},Input$1={name:"input",params:{input:{scrollIntoViewOnFocus:Device.android,scrollIntoViewCentered:!1,scrollIntoViewDuration:0,scrollIntoViewAlways:!1}},create:function(){Utils.extend(this,{input:{scrollIntoView:Input.scrollIntoView.bind(this),focus:Input.focus.bind(this),blur:Input.blur.bind(this),validate:Input.validate.bind(this),validateInputs:Input.validateInputs.bind(this),checkEmptyState:Input.checkEmptyState.bind(this),resizeTextarea:Input.resizeTextarea.bind(this),init:Input.init.bind(this)}})},on:{init:function(){this.input.init()},tabMounted:function(e){var t=this,a=$(e);a.find(".item-input, .input").each((function(e,a){$(a).find("input, select, textarea, [contenteditable]").each((function(e,a){var r=$(a);Input.ignoreTypes.indexOf(r.attr("type"))>=0||t.input.checkEmptyState(r)}))})),a.find("textarea.resizable").each((function(e,a){t.input.resizeTextarea(a)}))},pageInit:function(e){var t=this,a=e.$el;a.find(".item-input, .input").each((function(e,a){$(a).find("input, select, textarea, [contenteditable]").each((function(e,a){var r=$(a);Input.ignoreTypes.indexOf(r.attr("type"))>=0||t.input.checkEmptyState(r)}))})),a.find("textarea.resizable").each((function(e,a){t.input.resizeTextarea(a)}))},"panelBreakpoint panelCollapsedBreakpoint panelResize panelOpen panelSwipeOpen resize viewMasterDetailBreakpoint":function(e){var t=this;e&&e.$el?e.$el.find("textarea.resizable").each((function(e,a){t.input.resizeTextarea(a)})):$("textarea.resizable").each((function(e,a){t.input.resizeTextarea(a)}))}}},Checkbox={name:"checkbox"},Radio={name:"radio"},Toggle=function(e){function t(t,a){void 0===a&&(a={}),e.call(this,a,[t]);var r=this,i={};r.useModulesParams(i),r.params=Utils.extend(i,a);var n=r.params.el;if(!n)return r;var s=$(n);if(0===s.length)return r;if(s[0].f7Toggle)return s[0].f7Toggle;var o,l=s.children('input[type="checkbox"]');Utils.extend(r,{app:t,$el:s,el:s[0],$inputEl:l,inputEl:l[0],disabled:s.hasClass("disabled")||l.hasClass("disabled")||l.attr("disabled")||l[0].disabled}),Object.defineProperty(r,"checked",{enumerable:!0,configurable:!0,set:function(e){r&&void 0!==r.$inputEl&&r.checked!==e&&(l[0].checked=e,r.$inputEl.trigger("change"))},get:function(){return l[0].checked}}),s[0].f7Toggle=r;var p,c,d,u,h,f={};function v(e){o||r.disabled||(f.x="touchstart"===e.type?e.targetTouches[0].pageX:e.pageX,f.y="touchstart"===e.type?e.targetTouches[0].pageY:e.pageY,c=0,o=!0,p=void 0,u=Utils.now(),h=r.checked,d=s[0].offsetWidth,Utils.nextTick((function(){o&&s.addClass("toggle-active-state")})))}function m(e){if(o&&!r.disabled){var a,i="touchmove"===e.type?e.targetTouches[0].pageX:e.pageX,n="touchmove"===e.type?e.targetTouches[0].pageY:e.pageY,s=t.rtl?-1:1;if(void 0===p&&(p=!!(p||Math.abs(n-f.y)>Math.abs(i-f.x))),p)o=!1;else e.preventDefault(),(c=i-f.x)*s<0&&Math.abs(c)>d/3&&h&&(a=!0),c*s>0&&Math.abs(c)>d/3&&!h&&(a=!0),a&&(f.x=i,r.checked=!h,h=!h)}}function g(){if(!o||r.disabled)return p&&s.removeClass("toggle-active-state"),void(o=!1);var e,a=t.rtl?-1:1;o=!1,s.removeClass("toggle-active-state"),Utils.now()-u<300&&(c*a<0&&h&&(e=!0),c*a>0&&!h&&(e=!0),e&&(r.checked=!h))}function b(){r.$el.trigger("toggle:change"),r.emit("local::change toggleChange",r)}r.attachEvents=function(){var e=!!Support.passiveListener&&{passive:!0};s.on(t.touchEvents.start,v,e),t.on("touchmove",m),t.on("touchend:passive",g),r.$inputEl.on("change",b)},r.detachEvents=function(){var e=!!Support.passiveListener&&{passive:!0};s.off(t.touchEvents.start,v,e),t.off("touchmove",m),t.off("touchend:passive",g),r.$inputEl.off("change",b)},r.useModules(),r.init()}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.toggle=function(){this.checked=!this.checked},t.prototype.init=function(){this.attachEvents()},t.prototype.destroy=function(){var e=this;e.$el.trigger("toggle:beforedestroy"),e.emit("local::beforeDestroy toggleBeforeDestroy",e),delete e.$el[0].f7Toggle,e.detachEvents(),Utils.deleteProps(e),e=null},t}(Framework7Class),Toggle$1={name:"toggle",create:function(){this.toggle=ConstructorMethods({defaultSelector:".toggle",constructor:Toggle,app:this,domProp:"f7Toggle"})},static:{Toggle:Toggle},on:{tabMounted:function(e){var t=this;$(e).find(".toggle-init").each((function(e,a){return t.toggle.create({el:a})}))},tabBeforeRemove:function(e){$(e).find(".toggle-init").each((function(e,t){t.f7Toggle&&t.f7Toggle.destroy()}))},pageInit:function(e){var t=this;e.$el.find(".toggle-init").each((function(e,a){return t.toggle.create({el:a})}))},pageBeforeRemove:function(e){e.$el.find(".toggle-init").each((function(e,t){t.f7Toggle&&t.f7Toggle.destroy()}))}},vnode:{"toggle-init":{insert:function(e){var t=e.elm;this.toggle.create({el:t})},destroy:function(e){var t=e.elm;t.f7Toggle&&t.f7Toggle.destroy()}}}},Range=function(e){function t(t,a){e.call(this,a,[t]);var r=this,i={el:null,inputEl:null,dual:!1,step:1,label:!1,min:0,max:100,value:0,draggableBar:!0,vertical:!1,verticalReversed:!1,formatLabel:null,scale:!1,scaleSteps:5,scaleSubSteps:0,formatScaleLabel:null,limitKnobPosition:"ios"===t.theme};r.useModulesParams(i),r.params=Utils.extend(i,a);var n=r.params.el;if(!n)return r;var s=$(n);if(0===s.length)return r;if(s[0].f7Range)return s[0].f7Range;var o,l=s.dataset();"step min max value scaleSteps scaleSubSteps".split(" ").forEach((function(e){void 0===a[e]&&void 0!==l[e]&&(r.params[e]=parseFloat(l[e]))})),"dual label vertical verticalReversed scale".split(" ").forEach((function(e){void 0===a[e]&&void 0!==l[e]&&(r.params[e]=l[e])})),r.params.value||(void 0!==l.value&&(r.params.value=l.value),void 0!==l.valueLeft&&void 0!==l.valueRight&&(r.params.value=[parseFloat(l.valueLeft),parseFloat(l.valueRight)])),r.params.dual||(r.params.inputEl?o=$(r.params.inputEl):s.find('input[type="range"]').length&&(o=s.find('input[type="range"]').eq(0)));var p=r.params,c=p.dual,d=p.step,u=p.label,h=p.min,f=p.max,v=p.value,m=p.vertical,g=p.verticalReversed,b=p.scale,y=p.scaleSteps,w=p.scaleSubSteps,C=p.limitKnobPosition;Utils.extend(r,{app:t,$el:s,el:s[0],$inputEl:o,inputEl:o?o[0]:void 0,dual:c,step:d,label:u,min:h,max:f,value:v,previousValue:v,vertical:m,verticalReversed:g,scale:b,scaleSteps:y,scaleSubSteps:w,limitKnobPosition:C}),o&&("step min max".split(" ").forEach((function(e){!a[e]&&o.attr(e)&&(r.params[e]=parseFloat(o.attr(e)),r[e]=parseFloat(o.attr(e)))})),void 0!==o.val()&&(r.params.value=parseFloat(o.val()),r.value=parseFloat(o.val()))),r.dual&&s.addClass("range-slider-dual"),r.label&&s.addClass("range-slider-label"),r.vertical?(s.addClass("range-slider-vertical"),r.verticalReversed&&s.addClass("range-slider-vertical-reversed")):s.addClass("range-slider-horizontal");var x=$('
                    '),k=$('
                    ');x.append(k);var E='\n
                    \n
                    \n '+(r.label?'
                    ':"")+"\n
                    \n ",T=[$(E)];r.dual&&T.push($(E)),s.append(x),T.forEach((function(e){s.append(e)}));var S,M,P=[];r.label&&(P.push(T[0].find(".range-knob-label")),r.dual&&P.push(T[1].find(".range-knob-label"))),r.scale&&r.scaleSteps>=1&&(S=$('\n
                    \n '+r.renderScale()+"\n
                    \n "),s.append(S)),Utils.extend(r,{knobs:T,labels:P,$barEl:x,$barActiveEl:k,$scaleEl:S}),s[0].f7Range=r;var O,I,D,B,R,z,L,H,A,U,N,F={};function V(){L=!0}function q(e){if(!M&&(r.params.draggableBar||0!==$(e.target).closest(".range-knob").length)){var t;L=!1,F.x="touchstart"===e.type?e.targetTouches[0].pageX:e.pageX,F.y="touchstart"===e.type?e.targetTouches[0].pageY:e.pageY,"touchstart"===e.type&&(H=e.targetTouches[0].identifier),M=!0,O=void 0,I=s.offset(),D=I.left,B=I.top,r.vertical?(t=(F.y-B)/r.rangeHeight,r.verticalReversed||(t=1-t)):t=r.app.rtl?(D+r.rangeWidth-F.x)/r.rangeWidth:(F.x-D)/r.rangeWidth;var a=t*(r.max-r.min)+r.min;r.dual?Math.abs(r.value[0]-a)Math.abs(t-F.x))),O)M=!1;else{var n;e.preventDefault(),r.vertical?(n=(a-B)/r.rangeHeight,r.verticalReversed||(n=1-n)):n=r.app.rtl?(D+r.rangeWidth-t)/r.rangeWidth:(t-D)/r.rangeWidth;var s,o,l=n*(r.max-r.min)+r.min;if(r.dual)0===z?(s=l)>(o=r.value[1])&&(o=s):(o=l)<(s=r.value[0])&&(s=o),l=[s,o];r.setValue(l,!0)}}}function Y(e){if("touchend"===e.type){for(var t,a=0;ab&&(r=b-g/2)}e.css(y,r+"px"),u&&h[a].text(t.formatLabel(d[a],h[a][0]))}))}else{var C=(d-o)/(l-o);c.css(f?"height":"width",100*C+"%");var x=b*C;if(m){var $=b*C-g/2;$<0&&(x=g/2),$+g>b&&(x=b-g/2)}p[0].css(y,x+"px"),u&&h[0].text(t.formatLabel(d,h[0][0]))}t.dual&&d.indexOf(o)>=0||!t.dual&&d===o?t.$el.addClass("range-slider-min"):t.$el.removeClass("range-slider-min"),t.dual&&d.indexOf(l)>=0||!t.dual&&d===l?t.$el.addClass("range-slider-max"):t.$el.removeClass("range-slider-max")},t.prototype.setValue=function(e,t){var a,r,i=this,n=i.step,s=i.min,o=i.max;if(i.dual){r=[i.value[0],i.value[1]];var l=e;if(Array.isArray(l)||(l=[e,e]),e[0]>e[1]&&(l=[l[0],l[0]]),(l=l.map((function(e){return Math.max(Math.min(Math.round(e/n)*n,o),s)})))[0]===i.value[0]&&l[1]===i.value[1])return i;l.forEach((function(e,t){i.value[t]=e})),a=r[0]!==l[0]||r[1]!==l[1],i.layout()}else{r=i.value;var p=Math.max(Math.min(Math.round(e/n)*n,o),s);i.value=p,i.layout(),a=r!==p}return a&&(i.previousValue=r),a?(i.$el.trigger("range:change",i.value),i.$inputEl&&!i.dual&&(i.$inputEl.val(i.value),t?i.$inputEl.trigger("input"):i.$inputEl.trigger("input change")),t||(i.$el.trigger("range:changed",i.value),i.emit("local::changed rangeChanged",i,i.value)),i.emit("local::change rangeChange",i,i.value),i):i},t.prototype.getValue=function(){return this.value},t.prototype.formatLabel=function(e,t){return this.params.formatLabel?this.params.formatLabel.call(this,e,t):e},t.prototype.formatScaleLabel=function(e){return this.params.formatScaleLabel?this.params.formatScaleLabel.call(this,e):e},t.prototype.renderScale=function(){var e=this,t=e.app,a=e.verticalReversed,r=e.vertical?a?"top":"bottom":t.rtl?"right":"left",i="";return Array.from({length:e.scaleSteps+1}).forEach((function(t,a){var n=(e.max-e.min)/e.scaleSteps,s=e.min+n*a,o=(s-e.min)/(e.max-e.min);i+='
                    '+e.formatScaleLabel(s)+"
                    ",e.scaleSubSteps&&e.scaleSubSteps>1&&a'}))})),i},t.prototype.updateScale=function(){if(!this.scale||this.scaleSteps<1)return this.$scaleEl&&this.$scaleEl.remove(),void delete this.$scaleEl;this.$scaleEl||(this.$scaleEl=$('
                    '),this.$el.append(this.$scaleEl)),this.$scaleEl.html(this.renderScale())},t.prototype.init=function(){return this.calcSize(),this.layout(),this.attachEvents(),this},t.prototype.destroy=function(){var e=this;e.$el.trigger("range:beforedestroy"),e.emit("local::beforeDestroy rangeBeforeDestroy",e),delete e.$el[0].f7Range,e.detachEvents(),Utils.deleteProps(e),e=null},t}(Framework7Class),Range$1={name:"range",create:function(){var e=this;e.range=Utils.extend(ConstructorMethods({defaultSelector:".range-slider",constructor:Range,app:e,domProp:"f7Range"}),{getValue:function(t){void 0===t&&(t=".range-slider");var a=e.range.get(t);if(a)return a.getValue()},setValue:function(t,a){void 0===t&&(t=".range-slider");var r=e.range.get(t);if(r)return r.setValue(a)}})},static:{Range:Range},on:{tabMounted:function(e){var t=this;$(e).find(".range-slider-init").each((function(e,a){return new Range(t,{el:a})}))},tabBeforeRemove:function(e){$(e).find(".range-slider-init").each((function(e,t){t.f7Range&&t.f7Range.destroy()}))},pageInit:function(e){var t=this;e.$el.find(".range-slider-init").each((function(e,a){return new Range(t,{el:a})}))},pageBeforeRemove:function(e){e.$el.find(".range-slider-init").each((function(e,t){t.f7Range&&t.f7Range.destroy()}))}},vnode:{"range-slider-init":{insert:function(e){var t=e.elm;this.range.create({el:t})},destroy:function(e){var t=e.elm;t.f7Range&&t.f7Range.destroy()}}}},Stepper=function(e){function t(t,a){e.call(this,a,[t]);var r=this,i={el:null,inputEl:null,valueEl:null,value:0,formatValue:null,step:1,min:0,max:100,watchInput:!0,autorepeat:!1,autorepeatDynamic:!1,wraps:!1,manualInputMode:!1,decimalPoint:4,buttonsEndInputMode:!0};r.useModulesParams(i),r.params=Utils.extend(i,a),r.params.valuer.params.max&&(r.params.value=r.params.max);var n=r.params.el;if(!n)return r;var s,o,l=$(n);if(0===l.length)return r;if(l[0].f7Stepper)return l[0].f7Stepper;if(r.params.inputEl?s=$(r.params.inputEl):l.find(".stepper-input-wrap").find("input, textarea").length&&(s=l.find(".stepper-input-wrap").find("input, textarea").eq(0)),s&&s.length){"step min max".split(" ").forEach((function(e){!a[e]&&s.attr(e)&&(r.params[e]=parseFloat(s.attr(e)))}));var p=parseInt(r.params.decimalPoint,10);Number.isNaN(p)?r.params.decimalPoint=0:r.params.decimalPoint=p;var c=parseFloat(s.val());void 0!==a.value||Number.isNaN(c)||!c&&0!==c||(r.params.value=c)}r.params.valueEl?o=$(r.params.valueEl):l.find(".stepper-value").length&&(o=l.find(".stepper-value").eq(0));var d=l.find(".stepper-button-plus"),u=l.find(".stepper-button-minus"),h=r.params,f=h.step,v=h.min,m=h.max,g=h.value,b=h.decimalPoint;Utils.extend(r,{app:t,$el:l,el:l[0],$buttonPlusEl:d,buttonPlusEl:d[0],$buttonMinusEl:u,buttonMinusEl:u[0],$inputEl:s,inputEl:s?s[0]:void 0,$valueEl:o,valueEl:o?o[0]:void 0,step:f,min:v,max:m,value:g,decimalPoint:b,typeModeChanged:!1}),l[0].f7Stepper=r;var y,w,C,x,k,E={},T=null,S=!1,M=!1;function P(e){y||(M||($(e.target).closest(d).length?T="increment":$(e.target).closest(u).length&&(T="decrement"),T&&(E.x="touchstart"===e.type?e.targetTouches[0].pageX:e.pageX,E.y="touchstart"===e.type?e.targetTouches[0].pageY:e.pageY,y=!0,w=void 0,function e(t,a,r,i,n,s){clearTimeout(k),k=setTimeout((function(){1===t&&(C=!0,S=!0),clearInterval(x),s(),x=setInterval((function(){s()}),n),tMath.abs(t-E.x)));var r=Math.pow(Math.pow(t-E.x,2)+Math.pow(a-E.y,2),.5);(w||r>20)&&(y=!1,clearTimeout(k),clearInterval(x))}}function I(){clearTimeout(k),clearInterval(x),T=null,S=!1,y=!1}function D(){M?r.params.buttonsEndInputMode&&(M=!1,r.endTypeMode(!0)):C?C=!1:r.decrement(!0)}function B(){M?r.params.buttonsEndInputMode&&(M=!1,r.endTypeMode(!0)):C?C=!1:r.increment(!0)}function R(e){!e.target.readOnly&&r.params.manualInputMode&&(M=!0,"number"==typeof e.target.selectionStart&&(e.target.selectionStart=e.target.value.length,e.target.selectionEnd=e.target.value.length))}function z(e){13!==e.keyCode&&13!==e.which||(e.preventDefault(),M=!1,r.endTypeMode())}function L(){M=!1,r.endTypeMode(!0)}function H(e){M?r.typeValue(e.target.value):e.detail&&e.detail.sentByF7Stepper||r.setValue(e.target.value,!0)}return r.attachEvents=function(){u.on("click",D),d.on("click",B),r.params.watchInput&&s&&s.length&&(s.on("input",H),s.on("click",R),s.on("blur",L),s.on("keyup",z)),r.params.autorepeat&&(t.on("touchstart:passive",P),t.on("touchmove:active",O),t.on("touchend:passive",I))},r.detachEvents=function(){u.off("click",D),d.off("click",B),r.params.watchInput&&s&&s.length&&(s.off("input",H),s.off("click",R),s.off("blur",L),s.off("keyup",z))},r.useModules(),r.init(),r}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.minus=function(){return this.decrement()},t.prototype.plus=function(){return this.increment()},t.prototype.decrement=function(){return this.setValue(this.value-this.step,!1,!0)},t.prototype.increment=function(){return this.setValue(this.value+this.step,!1,!0)},t.prototype.setValue=function(e,t,a){var r=this.step,i=this.min,n=this.max,s=this.value,o=Math.round(e/r)*r;if(this.params.wraps&&a?(o>n&&(o=i),o')).insertAfter(n.find(".item-title")));var l=a.url;l||(n.attr("href")&&"#"!==n.attr("href")?l=n.attr("href"):o.attr("name")&&(l=o.attr("name").toLowerCase()+"-select/")),l||(l=r.params.url);var p=o[0].multiple,c=p?"checkbox":"radio",d=Utils.id();function u(){r.open()}function h(){var e=r.$selectEl.val();r.$el.trigger("smartselect:change",e),r.emit("local::change smartSelectChange",r,e),r.vl&&r.vl.clearCache(),r.setValueText()}function f(){var e,t,a,i=this.value,n=[];if("checkbox"===this.type){for(var s=0;s=0?t.selected=!0:t.selected=!1,t.selected&&(r=(a=t.dataset?t.dataset.displayAs:$(t).data("display-value-as"))&&void 0!==a?a:t.textContent,s.push(r.trim()))}else(t=i.$selectEl.find('option[value="'+n+'"]')[0])&&(s=[r=(a=t.dataset?t.dataset.displayAs:$(t).data("display-as"))&&void 0!==a?a:t.textContent]),i.selectEl.value=n;return i.params.setValueText&&i.$valueEl.text(i.formatValueText(s)),i.$selectEl.trigger("change"),i},t.prototype.unsetValue=function(){var e=this;e.params.setValueText&&e.$valueEl.text(e.formatValueText([])),e.$selectEl.find("option").each((function(e,t){t.selected=!1,t.checked=!1})),e.$selectEl[0].value=null,e.$containerEl&&e.$containerEl.find('input[name="'+e.inputName+'"][type="checkbox"], input[name="'+e.inputName+'"][type="radio"]').prop("checked",!1),e.$selectEl.trigger("change")},t.prototype.getValue=function(){return this.$selectEl.val()},a.view.get=function(){var e,t=this.params,a=this.$el;if(t.view&&(e=t.view),e||(e=a.parents(".view").length&&a.parents(".view")[0].f7View),!e&&"page"===t.openIn)throw Error("Smart Select requires initialized View");return e},t.prototype.checkMaxLength=function(){var e=this.$containerEl;this.selectEl.selectedOptions.length>=this.maxLength?e.find('input[type="checkbox"]').each((function(e,t){t.checked?$(t).parents("li").removeClass("disabled"):$(t).parents("li").addClass("disabled")})):e.find(".disabled").removeClass("disabled")},t.prototype.formatValueText=function(e){return this.params.formatValueText?this.params.formatValueText.call(this,e,this):e.join(", ")},t.prototype.setValueText=function(e){var t=[];void 0!==e?t=Array.isArray(e)?e:[e]:this.$selectEl.find("option").each((function(e,a){var r=$(a);if(a.selected){var i=a.dataset?a.dataset.displayAs:r.data("display-value-as");i&&void 0!==i?t.push(i):t.push(a.textContent.trim())}})),this.params.setValueText&&this.$valueEl.text(this.formatValueText(t))},t.prototype.getItemsData=function(){var e,t=this,a=t.app.theme,r=[];return t.$selectEl.find("option").each((function(i,n){var s=$(n),o=s.dataset(),l=o.optionImage||t.params.optionImage,p=o.optionIcon||t.params.optionIcon,c="ios"===a&&(o.optionIconIos||t.params.optionIconIos),d="md"===a&&(o.optionIconMd||t.params.optionIconMd),u="aurora"===a&&(o.optionIconAurora||t.params.optionIconAurora),h=l||p||c||d||u,f=o.optionColor,v=o.optionClass||"";s[0].disabled&&(v+=" disabled");var m=s.parent("optgroup")[0],g=m&&m.label,b=!1;m&&m!==e&&(b=!0,e=m,r.push({groupLabel:g,isLabel:b})),r.push({value:s[0].value,text:s[0].textContent.trim(),selected:s[0].selected,groupEl:m,groupLabel:g,image:l,icon:p,iconIos:c,iconMd:d,iconAurora:u,color:f,className:v,disabled:s[0].disabled,id:t.id,hasMedia:h,checkbox:"checkbox"===t.inputType,radio:"radio"===t.inputType,inputName:t.inputName,inputType:t.inputType})})),t.items=r,r},t.prototype.renderSearchbar=function(){var e=this;return e.params.renderSearchbar?e.params.renderSearchbar.call(e):'\n \n "},t.prototype.renderItem=function(e,t){var a,r,i=this;if(i.params.renderItem)return i.params.renderItem.call(i,e,t);if(e.isLabel)a='
                  • '+e.groupLabel+"
                  • ";else{var n,s=e.selected;if(i.params.virtualList){var o=i.getValue();s=i.multiple?o.indexOf(e.value)>=0:o===e.value,i.multiple&&(n=i.multiple&&!s&&o.length===parseInt(i.maxLength,10))}var l=e.icon,p=e.iconIos,c=e.iconMd,d=e.iconAurora,u=l||p||c||d,h=(void 0===(r=l||p||c||d||"")&&(r=""),r.indexOf(":")>=0?r.split(":")[1]:""),f=function(e){if(void 0===e&&(e=""),e.indexOf(":")>=0){var t=e.split(":")[0];return"f7"===t&&(t="f7-icons"),"material"===t&&(t="material-icons"),t}return e}(l||p||c||d||"");a='\n
                  • \n \n
                  • \n "}return a},t.prototype.renderItems=function(){var e=this;return e.params.renderItems?e.params.renderItems.call(e,e.items):"\n "+e.items.map((function(t,a){return""+e.renderItem(t,a)})).join("")+"\n "},t.prototype.renderPage=function(){var e=this;if(e.params.renderPage)return e.params.renderPage.call(e,e.items);var t=e.params.pageTitle;if(void 0===t){var a=e.$el.find(".item-title");t=a.length?a.text().trim():""}return'\n
                    \n \n "+(e.params.searchbar?'
                    ':"")+'\n
                    \n
                    \n
                      '+(!e.params.virtualList&&e.renderItems(e.items))+"
                    \n
                    \n
                    \n
                    \n "},t.prototype.renderPopup=function(){var e=this;if(e.params.renderPopup)return e.params.renderPopup.call(e,e.items);var t=e.params.pageTitle;if(void 0===t){var a=e.$el.find(".item-title");t=a.length?a.text().trim():""}return'\n \n "},t.prototype.renderSheet=function(){var e=this;return e.params.renderSheet?e.params.renderSheet.call(e,e.items):'\n
                    \n
                    \n \n
                    \n
                    \n
                    \n
                    \n
                      '+(!e.params.virtualList&&e.renderItems(e.items))+"
                    \n
                    \n
                    \n
                    \n
                    \n "},t.prototype.renderPopover=function(){var e=this;return e.params.renderPopover?e.params.renderPopover.call(e,e.items):'\n
                    \n
                    \n
                    \n
                      '+(!e.params.virtualList&&e.renderItems(e.items))+"
                    \n
                    \n
                    \n
                    \n "},t.prototype.scrollToSelectedItem=function(){var e=this,t=e.params,a=e.$containerEl;if(!e.opened)return e;if(t.virtualList){var r;e.vl.items.forEach((function(e,t){void 0===r&&e.selected&&(r=t)})),void 0!==r&&e.vl.scrollToItem(r)}else{var i=a.find("input:checked").parents("li");if(!i.length)return e;var n=a.find(".page-content");n.scrollTop(i.offset().top-n.offset().top-parseInt(n.css("padding-top"),10))}return e},t.prototype.onOpen=function(e,t){var a=this,r=a.app,i=$(t);if(a.$containerEl=i,a.openedIn=e,a.opened=!0,a.params.virtualList&&(a.vl=r.virtualList.create({el:i.find(".virtual-list"),items:a.items,renderItem:a.renderItem.bind(a),height:a.params.virtualListHeight,searchByItem:function(e,t){return!!(t.text&&t.text.toLowerCase().indexOf(e.trim().toLowerCase())>=0)}})),a.params.scrollToSelectedItem&&a.scrollToSelectedItem(),a.params.searchbar){var n=i.find(".searchbar");if("page"===e&&"ios"===r.theme&&(n=$(r.navbar.getElByPage(i)).find(".searchbar")),a.params.appendSearchbarNotFound&&("page"===e||"popup"===e)){var s=null;(s="string"==typeof a.params.appendSearchbarNotFound?$('
                    '+a.params.appendSearchbarNotFound+"
                    "):"boolean"==typeof a.params.appendSearchbarNotFound?$('
                    Nothing found
                    '):a.params.appendSearchbarNotFound)&&i.find(".page-content").append(s[0])}var o=Utils.extend({el:n,backdropEl:i.find(".searchbar-backdrop"),searchContainer:".smart-select-list-"+a.id,searchIn:".item-title"},"object"==typeof a.params.searchbar?a.params.searchbar:{});a.searchbar=r.searchbar.create(o)}a.maxLength&&a.checkMaxLength(),a.params.closeOnSelect&&a.$containerEl.find('input[type="radio"][name="'+a.inputName+'"]:checked').parents("label").once("click",(function(){a.close()})),a.attachInputsEvents(),a.$el.trigger("smartselect:open"),a.emit("local::open smartSelectOpen",a)},t.prototype.onOpened=function(){this.$el.trigger("smartselect:opened"),this.emit("local::opened smartSelectOpened",this)},t.prototype.onClose=function(){var e=this;e.destroyed||(e.vl&&e.vl.destroy&&(e.vl.destroy(),e.vl=null,delete e.vl),e.searchbar&&e.searchbar.destroy&&(e.searchbar.destroy(),e.searchbar=null,delete e.searchbar),e.detachInputsEvents(),e.$el.trigger("smartselect:close"),e.emit("local::close smartSelectClose",e))},t.prototype.onClosed=function(){var e=this;e.destroyed||(e.opened=!1,e.$containerEl=null,delete e.$containerEl,e.$el.trigger("smartselect:closed"),e.emit("local::closed smartSelectClosed",e))},t.prototype.openPage=function(){var e=this;if(e.opened)return e;e.getItemsData();var t=e.renderPage(e.items);return e.view.router.navigate({url:e.url,route:{content:t,path:e.url,on:{pageBeforeIn:function(t,a){e.onOpen("page",a.el)},pageAfterIn:function(t,a){e.onOpened("page",a.el)},pageBeforeOut:function(t,a){e.onClose("page",a.el)},pageAfterOut:function(t,a){e.onClosed("page",a.el)}}}}),e},t.prototype.openPopup=function(){var e=this;if(e.opened)return e;e.getItemsData();var t={content:e.renderPopup(e.items),push:e.params.popupPush,swipeToClose:e.params.popupSwipeToClose,on:{popupOpen:function(t){e.onOpen("popup",t.el)},popupOpened:function(t){e.onOpened("popup",t.el)},popupClose:function(t){e.onClose("popup",t.el)},popupClosed:function(t){e.onClosed("popup",t.el)}}};return e.params.routableModals&&e.view?e.view.router.navigate({url:e.url,route:{path:e.url,popup:t}}):e.modal=e.app.popup.create(t).open(),e},t.prototype.openSheet=function(){var e=this;if(e.opened)return e;e.getItemsData();var t={content:e.renderSheet(e.items),backdrop:!1,scrollToEl:e.$el,closeByOutsideClick:!0,push:e.params.sheetPush,swipeToClose:e.params.sheetSwipeToClose,on:{sheetOpen:function(t){e.onOpen("sheet",t.el)},sheetOpened:function(t){e.onOpened("sheet",t.el)},sheetClose:function(t){e.onClose("sheet",t.el)},sheetClosed:function(t){e.onClosed("sheet",t.el)}}};return e.params.routableModals&&e.view?e.view.router.navigate({url:e.url,route:{path:e.url,sheet:t}}):e.modal=e.app.sheet.create(t).open(),e},t.prototype.openPopover=function(){var e=this;if(e.opened)return e;e.getItemsData();var t={content:e.renderPopover(e.items),targetEl:e.$el,on:{popoverOpen:function(t){e.onOpen("popover",t.el)},popoverOpened:function(t){e.onOpened("popover",t.el)},popoverClose:function(t){e.onClose("popover",t.el)},popoverClosed:function(t){e.onClosed("popover",t.el)}}};return e.params.routableModals&&e.view?e.view.router.navigate({url:e.url,route:{path:e.url,popover:t}}):e.modal=e.app.popover.create(t).open(),e},t.prototype.open=function(e){var t=this;if(t.opened)return t;var a=!1;function r(){a=!0}return t.$el&&t.$el.trigger("smartselect:beforeopen",{prevent:r}),t.emit("local::beforeOpen smartSelectBeforeOpen",t,r),a||t["open"+(e||t.params.openIn).split("").map((function(e,t){return 0===t?e.toUpperCase():e})).join("")](),t},t.prototype.close=function(){var e=this;return e.opened?(e.params.routableModals&&e.view||"page"===e.openedIn?e.view.router.back():(e.modal.once("modalClosed",(function(){Utils.nextTick((function(){e.destroyed||(e.modal.destroy(),delete e.modal)}))})),e.modal.close()),e):e},t.prototype.init=function(){this.attachEvents(),this.setValueText()},t.prototype.destroy=function(){var e=this;e.emit("local::beforeDestroy smartSelectBeforeDestroy",e),e.$el.trigger("smartselect:beforedestroy"),e.detachEvents(),delete e.$el[0].f7SmartSelect,Utils.deleteProps(e),e.destroyed=!0},Object.defineProperties(t.prototype,a),t}(Framework7Class),SmartSelect$1={name:"smartSelect",params:{smartSelect:{el:void 0,valueEl:void 0,setValueText:!0,formatValueText:null,openIn:"page",popupPush:!1,popupSwipeToClose:void 0,sheetPush:!1,sheetSwipeToClose:void 0,pageTitle:void 0,pageBackLinkText:"Back",popupCloseLinkText:"Close",popupTabletFullscreen:!1,sheetCloseLinkText:"Done",searchbar:!1,searchbarPlaceholder:"Search",searchbarDisableText:"Cancel",searchbarDisableButton:void 0,searchbarSpellcheck:!1,closeOnSelect:!1,virtualList:!1,virtualListHeight:void 0,scrollToSelectedItem:!1,formColorTheme:void 0,navbarColorTheme:void 0,routableModals:!0,url:"select/",cssClass:"",renderPage:void 0,renderPopup:void 0,renderSheet:void 0,renderPopover:void 0,renderItems:void 0,renderItem:void 0,renderSearchbar:void 0}},static:{SmartSelect:SmartSelect},create:function(){var e=this;e.smartSelect=Utils.extend(ConstructorMethods({defaultSelector:".smart-select",constructor:SmartSelect,app:e,domProp:"f7SmartSelect"}),{open:function(t){var a=e.smartSelect.get(t);if(a&&a.open)return a.open()},close:function(t){var a=e.smartSelect.get(t);if(a&&a.close)return a.close()}})},on:{tabMounted:function(e){var t=this;$(e).find(".smart-select-init").each((function(e,a){t.smartSelect.create(Utils.extend({el:a},$(a).dataset()))}))},tabBeforeRemove:function(e){$(e).find(".smart-select-init").each((function(e,t){t.f7SmartSelect&&t.f7SmartSelect.destroy&&t.f7SmartSelect.destroy()}))},pageInit:function(e){var t=this;e.$el.find(".smart-select-init").each((function(e,a){t.smartSelect.create(Utils.extend({el:a},$(a).dataset()))}))},pageBeforeRemove:function(e){e.$el.find(".smart-select-init").each((function(e,t){t.f7SmartSelect&&t.f7SmartSelect.destroy&&t.f7SmartSelect.destroy()}))}},clicks:{".smart-select":function(e,t){e[0].f7SmartSelect||this.smartSelect.create(Utils.extend({el:e},t)).open()}},vnode:{"smart-select-init":{insert:function(e){var t=e.elm;this.smartSelect.create(Utils.extend({el:t},$(t).dataset()))},destroy:function(e){var t=e.elm;t.f7SmartSelect&&t.f7SmartSelect.destroy&&t.f7SmartSelect.destroy()}}}};function getElMinSize(e,t){var a=t.css("min-"+e);return"auto"===a||"none"===a?a=0:a.indexOf("px")>=0?a=parseFloat(a):a.indexOf("%")>=0&&(a=t.parent()[0]["height"===e?"offsetHeight":"offsetWidth"]*parseFloat(a)/100),a}function getElMaxSize(e,t){var a=t.css("max-"+e);return"auto"===a||"none"===a?a=null:a.indexOf("px")>=0?a=parseFloat(a):a.indexOf("%")>=0&&(a=t.parent()[0]["height"===e?"offsetHeight":"offsetWidth"]*parseFloat(a)/100),a}var Grid={init:function(){var e,t,a,r,i,n,s,o,l,p,c,d,u,h,f,v,m,g=this;$(document).on(g.touchEvents.start,".col > .resize-handler, .row > .resize-handler",(function(o){e||t||(i=$(o.target).closest(".resize-handler"),a="touchstart"===o.type?o.targetTouches[0].pageX:o.pageX,r="touchstart"===o.type?o.targetTouches[0].pageY:o.pageY,e=!0,n=void 0,s=void 0,m=void 0)})),g.on("touchmove",(function(b){if(e){var y=1===i.parent(".row").length,w=y?"height":"width",C=y?"offsetHeight":"offsetWidth";t||(!(n=i.parent(y?".row":".col")).length||n.hasClass("resizable")&&!n.hasClass("resizable-fixed")||(n=n.prevAll(".resizable:not(.resizable-fixed)").eq(0)),!(s=n.next(y?".row":".col")).length||s.hasClass("resizable")&&!s.hasClass("resizable-fixed")||(s=s.nextAll(".resizable:not(.resizable-fixed)").eq(0)),n.length&&(o=n[0][C],l=getElMinSize(w,n),p=getElMaxSize(w,n),h=n.parent()[0][C],f=n.parent().children(y?".row":'[class*="col-"], .col').length,v=parseFloat(n.css(y?"--f7-grid-row-gap":"--f7-grid-gap"))),s.length&&(c=s[0][C],d=getElMinSize(w,s),u=getElMaxSize(w,s),n.length||(h=s.parent()[0][C],f=s.parent().children(y?".row":'[class*="col-"], .col').length,v=parseFloat(s.css(y?"--f7-grid-row-gap":"--f7-grid-gap"))))),t=!0;var x="touchmove"===b.type?b.targetTouches[0].pageX:b.pageX,$="touchmove"===b.type?b.targetTouches[0].pageY:b.pageY;if(void 0!==m||y||(m=!!(m||Math.abs($-r)>Math.abs(x-a))),m)return e=!1,void(t=!1);var k=n.hasClass("resizable-absolute")||s.hasClass("resizable-absolute"),E=!y||y&&!k;if(E&&!s.length||!n.length)return e=!1,void(t=!1);b.preventDefault();var T,S,M=y?$-r:x-a;if(n.length&&((T=o+M)p&&(M=(T=p)-o)),s.length&&E&&((S=c-M)u&&(T=o+(M=c-(S=u)))),k)return n[0].style[w]=T+"px",E&&(s[0].style[w]=S+"px"),n.trigger("grid:resize"),s.trigger("grid:resize"),g.emit("gridResize",n[0]),void g.emit("gridResize",s[0]);var P=(f-1)*v/f,O=y?f-1+" * var(--f7-grid-row-gap) / "+f:"(var(--f7-cols-per-row) - 1) * var(--f7-grid-gap) / var(--f7-cols-per-row)",I=T+P,D=S+P;n[0].style[w]="calc("+I/h*100+"% - "+O+")",s[0].style[w]="calc("+D/h*100+"% - "+O+")",n.trigger("grid:resize"),s.trigger("grid:resize"),g.emit("gridResize",n[0]),g.emit("gridResize",s[0])}})),g.on("touchend",(function(){e&&(t||(e=!1),e=!1,t=!1)}))}},Grid$1={name:"grid",create:function(){Utils.extend(this,{grid:{init:Grid.init.bind(this)}})},on:{init:function(){this.grid.init()}}},Calendar=function(e){function t(t,a){void 0===a&&(a={}),e.call(this,a,[t]);var r,i,n=this;if(n.params=Utils.extend({},t.params.calendar,a),n.params.containerEl&&0===(r=$(n.params.containerEl)).length)return n;n.params.inputEl&&(i=$(n.params.inputEl));var s="horizontal"===n.params.direction,o=1;s&&(o=t.rtl?-1:1),Utils.extend(n,{app:t,$containerEl:r,containerEl:r&&r[0],inline:r&&r.length>0,$inputEl:i,inputEl:i&&i[0],initialized:!1,opened:!1,url:n.params.url,isHorizontal:s,inverter:o,animating:!1,hasTimePicker:n.params.timePicker&&!n.params.rangePicker&&!n.params.multiple}),n.dayFormatter=new Intl.DateTimeFormat(n.params.locale,{day:"numeric"}),n.monthFormatter=new Intl.DateTimeFormat(n.params.locale,{month:"long"}),n.yearFormatter=new Intl.DateTimeFormat(n.params.locale,{year:"numeric"}),n.timeSelectorFormatter=new Intl.DateTimeFormat(n.params.locale,n.params.timePickerFormat);var l=n.params,p=l.monthNames,c=l.monthNamesShort,d=l.dayNames,u=l.dayNamesShort,h=n.getIntlNames(),f=h.monthNamesIntl,v=h.monthNamesShortIntl,m=h.dayNamesIntl,g=h.dayNamesShortIntl;function b(){n.open()}function y(e){e.preventDefault()}function w(){n.setValue([]),n.opened&&n.update()}function C(e){var t=$(e.target);!n.destroyed&&n.params&&(n.isPopover()||n.opened&&!n.closing&&(t.closest('[class*="backdrop"]').length||(i&&i.length>0?t[0]!==i[0]&&0===t.closest(".sheet-modal, .calendar-modal").length&&n.close():0===$(e.target).closest(".sheet-modal, .calendar-modal").length&&n.close())))}return"auto"===p&&(p=f),"auto"===c&&(c=v),"auto"===d&&(d=m),"auto"===u&&(u=g),Utils.extend(n,{monthNames:p,monthNamesShort:c,dayNames:d,dayNamesShort:u}),Utils.extend(n,{attachInputEvents:function(){n.$inputEl.on("click",b),n.$inputEl.on("input:clear",w),n.params.inputReadOnly&&(n.$inputEl.on("focus mousedown",y),n.$inputEl[0]&&(n.$inputEl[0].f7ValidateReadonly=!0))},detachInputEvents:function(){n.$inputEl.off("click",b),n.$inputEl.off("input:clear",w),n.params.inputReadOnly&&(n.$inputEl.off("focus mousedown",y),n.$inputEl[0]&&delete n.$inputEl[0].f7ValidateReadonly)},attachHtmlEvents:function(){t.on("click",C)},detachHtmlEvents:function(){t.off("click",C)}}),n.attachCalendarEvents=function(){var e,a,r,i,s,o,l,p,c,d,u,h,f,v=!0,m=n.$el,g=n.$wrapperEl;function b(t){a||e||(e=!0,r="touchstart"===t.type?t.targetTouches[0].pageX:t.pageX,s=r,i="touchstart"===t.type?t.targetTouches[0].pageY:t.pageY,o=i,l=(new Date).getTime(),u=0,v=!0,f=void 0,p=n.monthsTranslate)}function y(t){if(e){var l=n.isHorizontal;s="touchmove"===t.type?t.targetTouches[0].pageX:t.pageX,o="touchmove"===t.type?t.targetTouches[0].pageY:t.pageY,void 0===f&&(f=!!(f||Math.abs(o-i)>Math.abs(s-r))),l&&f?e=!1:(t.preventDefault(),n.animating?e=!1:(v=!1,a||(a=!0,c=g[0].offsetWidth,d=g[0].offsetHeight,g.transition(0)),u=(h=l?s-r:o-i)/(l?c:d),p=100*(n.monthsTranslate*n.inverter+u),g.transform("translate3d("+(l?p:0)+"%, "+(l?0:p)+"%, 0)")))}}function w(){if(!e||!a)return e=!1,void(a=!1);e=!1,a=!1,(new Date).getTime()-l<300?Math.abs(h)<10?n.resetMonth():h>=10?t.rtl?n.nextMonth():n.prevMonth():t.rtl?n.prevMonth():n.nextMonth():u<=-.5?t.rtl?n.prevMonth():n.nextMonth():u>=.5?t.rtl?n.nextMonth():n.prevMonth():n.resetMonth(),setTimeout((function(){v=!0}),100)}function C(e){if(v){var t=$(e.target).parents(".calendar-day");if(0===t.length&&$(e.target).hasClass("calendar-day")&&(t=$(e.target)),0!==t.length&&!t.hasClass("calendar-day-disabled")){n.params.rangePicker||(t.hasClass("calendar-day-next")&&n.nextMonth(),t.hasClass("calendar-day-prev")&&n.prevMonth());var a=parseInt(t.attr("data-year"),10),r=parseInt(t.attr("data-month"),10),i=parseInt(t.attr("data-day"),10);if(n.emit("local::dayClick calendarDayClick",n,t[0],a,r,i),!t.hasClass("calendar-day-selected")||n.params.multiple||n.params.rangePicker){var s=new Date(a,r,i,0,0,0);n.hasTimePicker&&(n.value&&n.value[0]?s.setHours(n.value[0].getHours(),n.value[0].getMinutes()):s.setHours((new Date).getHours(),(new Date).getMinutes())),n.addValue(s)}n.params.closeOnSelect&&(n.params.rangePicker&&2===n.value.length||!n.params.rangePicker)&&n.close()}}}function x(){n.nextMonth()}function k(){n.prevMonth()}function E(){n.nextYear()}function T(){n.prevYear()}function S(){m.append(n.renderMonthPicker())}function M(){var e=$(this);if(e.hasClass("calendar-month-picker-item-current"))m.find(".calendar-month-picker").remove();else{m.find(".calendar-month-picker-item-current").add(e).toggleClass("calendar-month-picker-item-current");var t=e.index()-(parseInt(n.$el.find(".calendar-month-current").attr("data-locale-month"),10)-n.currentMonth);n.setYearMonth(n.currentYear,t,0),setTimeout((function(){m.find(".calendar-month-picker").remove()}),200)}}function P(){m.append(n.renderYearPicker());var e=m.find(".calendar-year-picker-item-current"),t=m.find(".calendar-year-picker");e&&e.length&&t.scrollTop(e[0].offsetTop-t[0].offsetHeight/2+e[0].offsetHeight/2)}function O(){var e=$(this);if(e.hasClass("calendar-year-picker-item-current"))m.find(".calendar-year-picker").remove();else{m.find(".calendar-year-picker-item-current").add(e).toggleClass("calendar-year-picker-item-current");var t=parseInt(e.attr("data-year"),10);n.setYearMonth(t,void 0,0),setTimeout((function(){m.find(".calendar-year-picker").remove()}),200)}}function I(){n.openTimePicker()}function D(){n.closeTimePicker()}var B=!("touchstart"!==t.touchEvents.start||!t.support.passiveListener)&&{passive:!0,capture:!1};m.find(".calendar-prev-month-button").on("click",k),m.find(".calendar-next-month-button").on("click",x),m.find(".calendar-prev-year-button").on("click",T),m.find(".calendar-next-year-button").on("click",E),n.params.monthPicker&&(m.find(".current-month-value").on("click",S),m.on("click",".calendar-month-picker-item",M)),n.params.yearPicker&&(m.find(".current-year-value").on("click",P),m.on("click",".calendar-year-picker-item",O)),n.hasTimePicker&&(m.find(".calendar-time-selector a").on("click",I),m.on("click",".calendar-time-picker-close",D)),g.on("click",C),n.params.touchMove&&(g.on(t.touchEvents.start,b,B),t.on("touchmove:active",y),t.on("touchend:passive",w)),n.detachCalendarEvents=function(){m.find(".calendar-prev-month-button").off("click",k),m.find(".calendar-next-month-button").off("click",x),m.find(".calendar-prev-year-button").off("click",T),m.find(".calendar-next-year-button").off("click",E),n.params.monthPicker&&(m.find(".current-month-value").off("click",S),m.off("click",".calendar-month-picker-item",M)),n.params.yearPicker&&(m.find(".current-year-value").off("click",P),m.off("click",".calendar-year-picker-item",O)),n.hasTimePicker&&(m.find(".calendar-time-selector a").off("click",I),m.off("click",".calendar-time-picker-close",D)),g.off("click",C),n.params.touchMove&&(g.off(t.touchEvents.start,b,B),t.off("touchmove:active",y),t.off("touchend:passive",w))}},n.init(),n}e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t;var a={view:{configurable:!0}};return a.view.get=function(){var e,t=this.$inputEl,a=this.app,r=this.params;return r.view?e=r.view:t&&(e=t.parents(".view").length&&t.parents(".view")[0].f7View),e||(e=a.views.main),e},t.prototype.getIntlNames=function(){for(var e,t,a,r=this.params.locale,i=[],n=[],s=[],o=[],l=new Intl.DateTimeFormat(r,{month:"long"}),p=new Intl.DateTimeFormat(r,{month:"short"}),c=new Intl.DateTimeFormat(r,{weekday:"long"}),d=new Intl.DateTimeFormat(r,{weekday:"short"}),u=0;u<24;u+=1){var h=(new Date).setMonth(u,1),f=this.yearFormatter.format(h);e&&f!==e&&(t&&(a=!0),t=!0,e=f),e||(e=f),t&&e===f&&!a&&(i.push(l.format(h)),n.push(p.format(h)))}for(var v=(new Date).getDay(),m=0;m<7;m+=1){var g=(new Date).getTime()+24*(m-v)*60*60*1e3;s.push(c.format(g)),o.push(d.format(g))}return{monthNamesIntl:i,monthNamesShortIntl:n,dayNamesIntl:s,dayNamesShortIntl:o}},t.prototype.normalizeDate=function(e){var t=new Date(e);return this.hasTimePicker?new Date(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes()):new Date(t.getFullYear(),t.getMonth(),t.getDate())},t.prototype.normalizeValues=function(e){var t=this,a=[];return e&&Array.isArray(e)&&(a=e.map((function(e){return t.normalizeDate(e)}))),a},t.prototype.initInput=function(){this.$inputEl&&this.params.inputReadOnly&&this.$inputEl.prop("readOnly",!0)},t.prototype.isPopover=function(){var e=this.app,t=this.modal,a=this.params;if("sheet"===a.openIn)return!1;if(t&&"popover"!==t.type)return!1;if(!this.inline&&this.inputEl){if("popover"===a.openIn)return!0;if(e.device.ios)return!!e.device.ipad;if(e.width>=768)return!0;if(e.device.desktop&&"aurora"===e.theme)return!0}return!1},t.prototype.formatDate=function(e){var t=new Date(e),a=t.getFullYear(),r=t.getMonth(),i=r+1,n=t.getDate(),s=t.getDay(),o=this.monthNames,l=this.monthNamesShort,p=this.dayNames,c=this.dayNamesShort,d=this.params,u=d.dateFormat,h=d.locale;function f(e){return e<10?"0"+e:e}if("string"==typeof u){var v={yyyy:a,yy:String(a).substring(2),mm:f(i),m:i,MM:o[r],M:l[r],dd:f(n),d:n,DD:p[s],D:c[s]};if(this.params.timePicker){var m=t.getHours(),g=t.getMinutes(),b=t.getSeconds(),y=m;m>12&&(y=m-12),0===m&&(y=12);var w=m>=12&&0!==m?"pm":"am";Object.assign(v,{HH:f(m),H:m,hh:f(y),h:y,ss:f(b),s:b,":mm":f(g),":m":g,a:w,A:w.toUpperCase()})}var C=new RegExp(Object.keys(v).map((function(e){return"("+e+")"})).join("|"),"g");return u.replace(C,(function(e){return e in v?v[e]:e}))}return"function"==typeof u?u(t):new Intl.DateTimeFormat(h,u).format(t)},t.prototype.formatValue=function(){var e=this,t=e.value;return e.params.formatValue?e.params.formatValue.call(e,t):t.map((function(t){return e.formatDate(t)})).join(e.params.rangePicker?" - ":", ")},t.prototype.addValue=function(e){var t=this.params,a=t.multiple,r=t.rangePicker,i=t.rangePickerMinDays,n=t.rangePickerMaxDays;if(a){var s;this.value||(this.value=[]);for(var o=0;o=60*(i-1)*60*24*1e3&&(0===n||Math.abs(this.value[0].getTime()-e.getTime())<=60*(n-1)*60*24*1e3)?this.value.push(e):this.value=[],this.value.sort((function(e,t){return e-t})),this.updateValue()):(this.value=[e],this.updateValue())},t.prototype.setValue=function(e){var t=this.value;if(Array.isArray(t)&&Array.isArray(e)&&t.length===e.length){var a=!0;if(t.forEach((function(t,r){t!==e[r]&&(a=!1)})),a)return}this.value=e,this.updateValue()},t.prototype.getValue=function(){return this.value},t.prototype.updateValue=function(e){var t,a,r=this.$el,i=this.$wrapperEl,n=this.$inputEl,s=this.value,o=this.params;if(r&&r.length>0)if(i.find(".calendar-day-selected").removeClass("calendar-day-selected"),o.rangePicker&&2===s.length){for(t=new Date(s[0]).getTime();t<=new Date(s[1]).getTime();t+=864e5)a=new Date(t),i.find('.calendar-day[data-date="'+a.getFullYear()+"-"+a.getMonth()+"-"+a.getDate()+'"]').addClass("calendar-day-selected");a=new Date(new Date(s[1]).getTime()),i.find('.calendar-day[data-date="'+a.getFullYear()+"-"+a.getMonth()+"-"+a.getDate()+'"]').addClass("calendar-day-selected")}else for(t=0;t0&&this.hasTimePicker&&r.find(".calendar-time-selector a").text(s&&s.length?this.timeSelectorFormatter.format(s[0]):this.params.timePickerPlaceholder),n&&n.length||o.header){var l=this.formatValue(s);o.header&&r&&r.length&&r.find(".calendar-selected-date").text(l),n&&n.length&&!e&&(n.val(l),n.trigger("change"))}},t.prototype.updateCurrentMonthYear=function(e){var t,a,r=this.$months,i=this.$el,n=this.monthNames;void 0===e?(this.currentMonth=parseInt(r.eq(1).attr("data-month"),10),this.currentYear=parseInt(r.eq(1).attr("data-year"),10),t=r.eq(1).attr("data-locale-month"),a=r.eq(1).attr("data-locale-year")):(this.currentMonth=parseInt(r.eq("next"===e?r.length-1:0).attr("data-month"),10),this.currentYear=parseInt(r.eq("next"===e?r.length-1:0).attr("data-year"),10),t=r.eq("next"===e?r.length-1:0).attr("data-locale-month"),a=r.eq("next"===e?r.length-1:0).attr("data-locale-year")),i.find(".current-month-value").text(n[t]),i.find(".current-year-value").text(a)},t.prototype.update=function(){var e=this,t=e.currentYear,a=e.currentMonth,r=e.$wrapperEl,i=new Date(t,a),n=e.renderMonth(i,"prev"),s=e.renderMonth(i),o=e.renderMonth(i,"next");r.transition(0).html(""+n+s+o).transform("translate3d(0,0,0)"),e.$months=r.find(".calendar-month"),e.monthsTranslate=0,e.setMonthsTranslate(),e.$months.each((function(t,a){e.emit("local::monthAdd calendarMonthAdd",a)}))},t.prototype.onMonthChangeStart=function(e){var t=this.$months,a=this.currentYear,r=this.currentMonth;this.updateCurrentMonthYear(e),t.removeClass("calendar-month-current calendar-month-prev calendar-month-next");var i="next"===e?t.length-1:0;t.eq(i).addClass("calendar-month-current"),t.eq("next"===e?i-1:i+1).addClass("next"===e?"calendar-month-prev":"calendar-month-next"),this.emit("local::monthYearChangeStart calendarMonthYearChangeStart",this,a,r)},t.prototype.onMonthChangeEnd=function(e,t){var a,r,i,n=this.currentYear,s=this.currentMonth,o=this.$wrapperEl,l=this.monthsTranslate;this.animating=!1,o.find(".calendar-month:not(.calendar-month-prev):not(.calendar-month-current):not(.calendar-month-next)").remove(),void 0===e&&(e="next",t=!0),t?(o.find(".calendar-month-next, .calendar-month-prev").remove(),r=this.renderMonth(new Date(n,s),"prev"),a=this.renderMonth(new Date(n,s),"next")):i=this.renderMonth(new Date(n,s),e),("next"===e||t)&&o.append(i||a),("prev"===e||t)&&o.prepend(i||r);var p=o.find(".calendar-month");this.$months=p,this.setMonthsTranslate(l),this.emit("local::monthAdd calendarMonthAdd",this,"next"===e?p.eq(p.length-1)[0]:p.eq(0)[0]),this.emit("local::monthYearChangeEnd calendarMonthYearChangeEnd",this,n,s)},t.prototype.setMonthsTranslate=function(e){var t=this.$months,a=this.isHorizontal,r=this.inverter;e=e||this.monthsTranslate||0,void 0===this.monthsTranslate&&(this.monthsTranslate=e),t.removeClass("calendar-month-current calendar-month-prev calendar-month-next");var i=100*-(e+1)*r,n=100*-e*r,s=100*-(e-1)*r;t.eq(0).transform("translate3d("+(a?i:0)+"%, "+(a?0:i)+"%, 0)").addClass("calendar-month-prev"),t.eq(1).transform("translate3d("+(a?n:0)+"%, "+(a?0:n)+"%, 0)").addClass("calendar-month-current"),t.eq(2).transform("translate3d("+(a?s:0)+"%, "+(a?0:s)+"%, 0)").addClass("calendar-month-next")},t.prototype.nextMonth=function(e){var t=this,a=t.params,r=t.$wrapperEl,i=t.inverter,n=t.isHorizontal;void 0!==e&&"object"!=typeof e||(e="",a.animate||(e=0));var s=parseInt(t.$months.eq(t.$months.length-1).attr("data-month"),10),o=parseInt(t.$months.eq(t.$months.length-1).attr("data-year"),10),l=new Date(o,s).getTime(),p=!t.animating;if(a.maxDate&&l>new Date(a.maxDate).getTime())t.resetMonth();else{if(t.monthsTranslate-=1,s===t.currentMonth){var c=100*-t.monthsTranslate*i,d=$(t.renderMonth(l,"next")).transform("translate3d("+(n?c:0)+"%, "+(n?0:c)+"%, 0)").addClass("calendar-month-next");r.append(d[0]),t.$months=r.find(".calendar-month"),t.emit("local::monthAdd calendarMonthAdd",t.$months.eq(t.$months.length-1)[0])}t.animating=!0,t.onMonthChangeStart("next");var u=100*t.monthsTranslate*i;r.transition(e).transform("translate3d("+(n?u:0)+"%, "+(n?0:u)+"%, 0)"),p&&r.transitionEnd((function(){t.onMonthChangeEnd("next")})),a.animate||t.onMonthChangeEnd("next")}},t.prototype.prevMonth=function(e){var t=this,a=t.params,r=t.$wrapperEl,i=t.inverter,n=t.isHorizontal;void 0!==e&&"object"!=typeof e||(e="",a.animate||(e=0));var s=parseInt(t.$months.eq(0).attr("data-month"),10),o=parseInt(t.$months.eq(0).attr("data-year"),10),l=new Date(o,s+1,-1).getTime(),p=!t.animating;if(a.minDate){var c=new Date(a.minDate);if(l<(c=new Date(c.getFullYear(),c.getMonth(),1)).getTime())return void t.resetMonth()}if(t.monthsTranslate+=1,s===t.currentMonth){var d=100*-t.monthsTranslate*i,u=$(t.renderMonth(l,"prev")).transform("translate3d("+(n?d:0)+"%, "+(n?0:d)+"%, 0)").addClass("calendar-month-prev");r.prepend(u[0]),t.$months=r.find(".calendar-month"),t.emit("local::monthAdd calendarMonthAdd",t.$months.eq(0)[0])}t.animating=!0,t.onMonthChangeStart("prev");var h=100*t.monthsTranslate*i;r.transition(e).transform("translate3d("+(n?h:0)+"%, "+(n?0:h)+"%, 0)"),p&&r.transitionEnd((function(){t.onMonthChangeEnd("prev")})),a.animate||t.onMonthChangeEnd("prev")},t.prototype.resetMonth=function(e){void 0===e&&(e="");var t=this.$wrapperEl,a=this.inverter,r=this.isHorizontal,i=100*this.monthsTranslate*a;t.transition(e).transform("translate3d("+(r?i:0)+"%, "+(r?0:i)+"%, 0)")},t.prototype.setYearMonth=function(e,t,a){var r,i=this,n=i.params,s=i.isHorizontal,o=i.$wrapperEl,l=i.inverter;if(void 0===e&&(e=i.currentYear),void 0===t&&(t=i.currentMonth),void 0!==a&&"object"!=typeof a||(a="",n.animate||(a=0)),r=enew Date(n.maxDate).getTime())return!1;if(n.minDate){var p=new Date(n.minDate);if(r<(p=new Date(p.getFullYear(),p.getMonth(),1)).getTime())return!1}var c=new Date(i.currentYear,i.currentMonth).getTime(),d=r>c?"next":"prev",u=i.renderMonth(new Date(e,t));i.monthsTranslate=i.monthsTranslate||0;var h,f=i.monthsTranslate,v=!i.animating&&0!==a;r>c?(i.monthsTranslate-=1,i.animating||i.$months.eq(i.$months.length-1).remove(),o.append(u),i.$months=o.find(".calendar-month"),h=100*-(f-1)*l,i.$months.eq(i.$months.length-1).transform("translate3d("+(s?h:0)+"%, "+(s?0:h)+"%, 0)").addClass("calendar-month-next")):(i.monthsTranslate+=1,i.animating||i.$months.eq(0).remove(),o.prepend(u),i.$months=o.find(".calendar-month"),h=100*-(f+1)*l,i.$months.eq(0).transform("translate3d("+(s?h:0)+"%, "+(s?0:h)+"%, 0)").addClass("calendar-month-prev")),i.emit("local::monthAdd calendarMonthAdd","next"===d?i.$months.eq(i.$months.length-1)[0]:i.$months.eq(0)[0]),i.animating=!0,i.onMonthChangeStart(d);var m=100*i.monthsTranslate*l;o.transition(a).transform("translate3d("+(s?m:0)+"%, "+(s?0:m)+"%, 0)"),v&&o.transitionEnd((function(){i.onMonthChangeEnd(d,!0)})),n.animate&&0!==a||i.onMonthChangeEnd(d,!0)},t.prototype.nextYear=function(){this.setYearMonth(this.currentYear+1)},t.prototype.prevYear=function(){this.setYearMonth(this.currentYear-1)},t.prototype.dateInRange=function(e,t){var a,r=!1;if(!t)return!1;if(Array.isArray(t))for(a=0;a=new Date(t[a].from).getTime()&&(r=!0):t[a].from?e>=new Date(t[a].from).getTime()&&(r=!0):t[a].to&&e<=new Date(t[a].to).getTime()&&(r=!0):t[a].date?e===new Date(t[a].date).getTime()&&(r=!0):e===new Date(t[a]).getTime()&&(r=!0);else t.from||t.to?t.from&&t.to?e<=new Date(t.to).getTime()&&e>=new Date(t.from).getTime()&&(r=!0):t.from?e>=new Date(t.from).getTime()&&(r=!0):t.to&&e<=new Date(t.to).getTime()&&(r=!0):t.date?r=e===new Date(t.date).getTime():"function"==typeof t&&(r=t(new Date(e)));return r},t.prototype.daysInMonth=function(e){var t=new Date(e);return new Date(t.getFullYear(),t.getMonth()+1,0).getDate()},t.prototype.renderMonths=function(e){return this.params.renderMonths?this.params.renderMonths.call(this,e):('\n
                    \n '+this.renderMonth(e,"prev")+"\n "+this.renderMonth(e)+"\n "+this.renderMonth(e,"next")+"\n
                    \n ").trim()},t.prototype.renderMonth=function(e,t){var a=this,r=a.params,i=a.value;if(r.renderMonth)return r.renderMonth.call(a,e,t);var n=new Date(e),s=n.getFullYear(),o=n.getMonth(),l=a.monthNames.indexOf(a.monthFormatter.format(n));l<0&&(l=o);var p=a.yearFormatter.format(n);"next"===t&&(n=11===o?new Date(s+1,0):new Date(s,o+1,1)),"prev"===t&&(n=0===o?new Date(s-1,11):new Date(s,o-1,1)),"next"!==t&&"prev"!==t||(o=n.getMonth(),s=n.getFullYear(),(l=a.monthNames.indexOf(a.monthFormatter.format(n)))<0&&(l=o),p=a.yearFormatter.format(n));var c,d,u=[],h=(new Date).setHours(0,0,0,0),f=r.minDate?new Date(r.minDate).getTime():null,v=r.maxDate?new Date(r.maxDate).getTime():null,m=a.daysInMonth(new Date(n.getFullYear(),n.getMonth()).getTime()-864e6),g=a.daysInMonth(n),b=6===r.firstDay?0:1,y="",w=r.firstDay-1+0,C=new Date(n.getFullYear(),n.getMonth()).getDay();if(0===C&&(C=7),i&&i.length)for(var x=0;xb&&1!==r.firstDay&&(i=(w-=7)-C);var l=e-1+r.firstDay>6?e-1-7+r.firstDay:e-1+r.firstDay;i<0?(i=m+i+1,n+=" calendar-day-prev",t=new Date(o-1<0?s-1:s,o-1<0?11:o-1,i).getTime()):(i+=1)>g?(i-=g,n+=" calendar-day-next",t=new Date(o+1>11?s+1:s,o+1>11?0:o+1,i).getTime()):t=new Date(s,o,i).getTime(),t===h&&(n+=" calendar-day-today"),r.rangePicker&&2===u.length?t>=u[0]&&t<=u[1]&&(n+=" calendar-day-selected"):u.indexOf(t)>=0&&(n+=" calendar-day-selected"),r.weekendDays.indexOf(l)>=0&&(n+=" calendar-day-weekend");var p="";if(d=!1,r.events&&a.dateInRange(t,r.events)&&(d=!0),d&&(n+=" calendar-day-has-events",p='\n \n \n \n ',Array.isArray(r.events))){var y=[];r.events.forEach((function(e){var r=e.color||"";y.indexOf(r)<0&&a.dateInRange(t,e)&&y.push(r)})),p='\n \n '+y.map((function(e){return('\n \n ').trim()})).join("")+"\n \n "}if(r.rangesClasses)for(var x=0;xv)&&(c=!0),r.disabled&&a.dateInRange(t,r.disabled)&&(c=!0),c&&(n+=" calendar-day-disabled");var E=(t=new Date(t)).getFullYear(),T=t.getMonth(),S=a.dayFormatter.format(t);k+=('\n
                    \n '+S+p+"\n
                    ").trim()},T=1;T<=7;T+=1)E(T);y+='
                    '+k+"
                    "}return y='
                    '+y+"
                    "},t.prototype.renderWeekHeader=function(){if(this.params.renderWeekHeader)return this.params.renderWeekHeader.call(this);for(var e=this.params,t="",a=0;a<7;a+=1){var r=a+e.firstDay>6?a-7+e.firstDay:a+e.firstDay;t+='
                    '+this.dayNamesShort[r]+"
                    "}return('\n
                    \n '+t+"\n
                    \n ").trim()},t.prototype.renderMonthSelector=function(){return this.params.renderMonthSelector?this.params.renderMonthSelector.call(this):('\n
                    \n \n \n \n '+(this.params.monthPicker?'\n \n ':'\n \n ')+'\n \n \n \n
                    \n ').trim()},t.prototype.renderMonthPicker=function(){var e=parseInt(this.$el.find(".calendar-month-current").attr("data-locale-month"),10);return'\n
                    \n '+this.monthNames.map((function(t,a){return'\n
                    \n '+t+"\n
                    \n "})).join("")+"\n
                    \n "},t.prototype.renderYearSelector=function(){return this.params.renderYearSelector?this.params.renderYearSelector.call(this):('\n
                    \n \n \n \n '+(this.params.yearPicker?'\n \n ':'\n \n ')+'\n \n \n \n
                    \n ').trim()},t.prototype.renderYearPicker=function(){var e=this,t=e.currentYear,a=e.params.yearPickerMin||(new Date).getFullYear()-100;e.params.minDate&&(a=Math.max(a,new Date(e.params.minDate).getFullYear()));var r=e.params.yearPickerMax||(new Date).getFullYear()+100;e.params.maxDate&&(r=Math.min(r,new Date(e.params.maxDate).getFullYear()));for(var i=[],n=a;n<=r;n+=1)i.push(n);return'\n
                    \n '+i.map((function(a){return'\n
                    \n '+e.yearFormatter.format((new Date).setFullYear(a))+"\n
                    \n "})).join("")+"\n
                    \n "},t.prototype.renderTimeSelector=function(){var e,t=this.value&&this.value[0];return t&&(e=this.timeSelectorFormatter.format(t)),'\n \n "},t.prototype.renderHeader=function(){return this.params.renderHeader?this.params.renderHeader.call(this):('\n
                    \n
                    '+this.params.headerPlaceholder+"
                    \n
                    \n ").trim()},t.prototype.renderFooter=function(){var e=this.app;return this.params.renderFooter?this.params.renderFooter.call(this):('\n \n ").trim()},t.prototype.renderToolbar=function(){return this.params.renderToolbar?this.params.renderToolbar.call(this,this):('\n
                    \n
                    \n '+(this.params.monthSelector?this.renderMonthSelector():"")+"\n "+(this.params.yearSelector?this.renderYearSelector():"")+"\n
                    \n
                    \n ").trim()},t.prototype.renderInline=function(){var e=this.params,t=e.cssClass,a=e.toolbar,r=e.header,i=e.footer,n=e.rangePicker,s=e.weekHeader,o=this.value,l=this.hasTimePicker,p=o&&o.length?o[0]:(new Date).setHours(0,0,0);return('\n
                    \n '+(r?this.renderHeader():"")+"\n "+(a?this.renderToolbar():"")+"\n "+(s?this.renderWeekHeader():"")+'\n
                    \n '+this.renderMonths(p)+"\n
                    \n "+(l?this.renderTimeSelector():"")+"\n "+(i?this.renderFooter():"")+"\n
                    \n ").trim()},t.prototype.renderCustomModal=function(){var e=this.params,t=e.cssClass,a=e.toolbar,r=e.header,i=e.footer,n=e.rangePicker,s=e.weekHeader,o=this.value,l=this.hasTimePicker,p=o&&o.length?o[0]:(new Date).setHours(0,0,0);return('\n
                    \n '+(r?this.renderHeader():"")+"\n "+(a?this.renderToolbar():"")+"\n "+(s?this.renderWeekHeader():"")+'\n
                    \n '+this.renderMonths(p)+"\n
                    \n "+(l?this.renderTimeSelector():"")+"\n "+(i?this.renderFooter():"")+"\n
                    \n ").trim()},t.prototype.renderSheet=function(){var e=this.params,t=e.cssClass,a=e.toolbar,r=e.header,i=e.footer,n=e.rangePicker,s=e.weekHeader,o=this.value,l=this.hasTimePicker,p=o&&o.length?o[0]:(new Date).setHours(0,0,0);return('\n
                    \n '+(r?this.renderHeader():"")+"\n "+(a?this.renderToolbar():"")+"\n "+(s?this.renderWeekHeader():"")+'\n
                    \n '+this.renderMonths(p)+"\n
                    \n "+(l?this.renderTimeSelector():"")+"\n "+(i?this.renderFooter():"")+"\n
                    \n ").trim()},t.prototype.renderPopover=function(){var e=this.params,t=e.cssClass,a=e.toolbar,r=e.header,i=e.footer,n=e.rangePicker,s=e.weekHeader,o=this.value,l=this.hasTimePicker,p=o&&o.length?o[0]:(new Date).setHours(0,0,0);return('\n
                    \n
                    \n
                    \n '+(r?this.renderHeader():"")+"\n "+(a?this.renderToolbar():"")+"\n "+(s?this.renderWeekHeader():"")+'\n
                    \n '+this.renderMonths(p)+"\n
                    \n "+(l?this.renderTimeSelector():"")+"\n "+(i?this.renderFooter():"")+"\n
                    \n
                    \n
                    \n ").trim()},t.prototype.render=function(){var e=this.params;if(e.render)return e.render.call(this);if(!this.inline){var t=e.openIn;return"auto"===t&&(t=this.isPopover()?"popover":"sheet"),"popover"===t?this.renderPopover():"sheet"===t?this.renderSheet():this.renderCustomModal()}return this.renderInline()},t.prototype.openTimePicker=function(){var e=this.$el,t=this.app;if(e&&e.length){e.append('
                    ');for(var a,r=[],i=[],n=0;n<=23;n+=1)r.push(n);for(var s=0;s<=59;s+=1)i.push(s);a=this.value&&this.value.length?[this.value[0].getHours(),this.value[0].getMinutes()]:[(new Date).getHours(),(new Date).getMinutes()],this.timePickerInstance=t.picker.create({containerEl:e.find(".calendar-time-picker"),value:a,toolbar:!0,rotateEffect:!1,toolbarCloseText:this.params.toolbarCloseText,cols:[{values:r},{divider:!0,content:":"},{values:i,displayValues:i.map((function(e){return e<10?"0"+e:e}))}]}),this.timePickerInstance.$el.find(".toolbar a").removeClass("sheet-close popover-close").addClass("calendar-time-picker-close")}},t.prototype.closeTimePicker=function(){if(this.timePickerInstance){var e=this.timePickerInstance.value.map((function(e){return parseInt(e,10)})),t=e[0],a=e[1],r=this.value&&this.value.length&&this.value[0];r?(r=new Date(r)).setHours(t,a):(r=new Date).setHours(t,a,0,0),this.setValue([r]),this.timePickerInstance.close(),this.timePickerInstance.destroy(),delete this.timePickerInstance}this.$el&&this.$el.length&&this.$el.find(".calendar-time-picker").remove()},t.prototype.onOpen=function(){var e=this,t=e.initialized,a=e.$el,r=e.app,i=e.$inputEl,n=e.inline,s=e.value,o=e.params;e.closing=!1,e.opened=!0,e.opening=!0,e.attachCalendarEvents();var l=!s&&o.value;t?s&&e.setValue(s,0):s?e.setValue(s,0):o.value&&e.setValue(e.normalizeValues(o.value),0),e.updateCurrentMonthYear(),e.monthsTranslate=0,e.setMonthsTranslate(),l?e.updateValue():o.header&&s&&e.updateValue(!0),!n&&i&&i.length&&"md"===r.theme&&i.trigger("focus"),e.initialized=!0,e.$months.each((function(t,a){e.emit("local::monthAdd calendarMonthAdd",a)})),a&&a.trigger("calendar:open"),i&&i.trigger("calendar:open"),e.emit("local::open calendarOpen",e)},t.prototype.onOpened=function(){this.opening=!1,this.$el&&this.$el.trigger("calendar:opened"),this.$inputEl&&this.$inputEl.trigger("calendar:opened"),this.emit("local::opened calendarOpened",this)},t.prototype.onClose=function(){var e=this.app;if(this.opening=!1,this.closing=!0,this.$inputEl)if("md"===e.theme)this.$inputEl.trigger("blur");else{var t=this.$inputEl.attr("validate"),a=this.$inputEl.attr("required");t&&a&&e.input.validate(this.$inputEl)}this.detachCalendarEvents&&this.detachCalendarEvents(),this.$el&&this.$el.trigger("calendar:close"),this.$inputEl&&this.$inputEl.trigger("calendar:close"),this.emit("local::close calendarClose",this)},t.prototype.onClosed=function(){var e=this;e.opened=!1,e.closing=!1,e.inline||Utils.nextTick((function(){e.modal&&e.modal.el&&e.modal.destroy&&(e.params.routableModals||e.modal.destroy()),delete e.modal})),e.timePickerInstance&&(e.timePickerInstance.destroy&&e.timePickerInstance.destroy(),delete e.timePickerInstance),e.$el&&e.$el.trigger("calendar:closed"),e.$inputEl&&e.$inputEl.trigger("calendar:closed"),e.emit("local::closed calendarClosed",e)},t.prototype.open=function(){var e,t=this,a=t.app,r=t.opened,i=t.inline,n=t.$inputEl,s=t.params;if(!r){if(i)return t.$el=$(t.render()),t.$el[0].f7Calendar=t,t.$wrapperEl=t.$el.find(".calendar-months-wrapper"),t.$months=t.$wrapperEl.find(".calendar-month"),t.$containerEl.append(t.$el),t.onOpen(),void t.onOpened();var o=s.openIn;"auto"===o&&(o=t.isPopover()?"popover":"sheet");var l=t.render(),p={targetEl:n,scrollToEl:s.scrollToInput?n:void 0,content:l,backdrop:!0===s.backdrop||"popover"===o&&!1!==a.params.popover.backdrop&&!1!==s.backdrop,closeByBackdropClick:s.closeByBackdropClick,on:{open:function(){t.modal=this,t.$el="popover"===o?this.$el.find(".calendar"):this.$el,t.$wrapperEl=t.$el.find(".calendar-months-wrapper"),t.$months=t.$wrapperEl.find(".calendar-month"),t.$el[0].f7Calendar=t,"customModal"===o&&$(t.$el).find(".calendar-close").once("click",(function(){t.close()})),t.onOpen()},opened:function(){t.onOpened()},close:function(){t.onClose()},closed:function(){t.onClosed()}}};"sheet"===o&&(p.push=s.sheetPush,p.swipeToClose=s.sheetSwipeToClose),s.routableModals&&t.view?t.view.router.navigate({url:t.url,route:(e={path:t.url},e[o]=p,e)}):(t.modal=a[o].create(p),t.modal.open())}},t.prototype.close=function(){var e=this.opened,t=this.inline;if(e)return t?(this.onClose(),void this.onClosed()):void(this.params.routableModals&&this.view?this.view.router.back():this.modal.close())},t.prototype.init=function(){if(this.initInput(),this.inline)return this.open(),void this.emit("local::init calendarInit",this);!this.initialized&&this.params.value&&this.setValue(this.normalizeValues(this.params.value)),this.$inputEl&&this.attachInputEvents(),this.params.closeByOutsideClick&&this.attachHtmlEvents(),this.emit("local::init calendarInit",this)},t.prototype.destroy=function(){if(!this.destroyed){var e=this.$el;this.emit("local::beforeDestroy calendarBeforeDestroy",this),e&&e.trigger("calendar:beforedestroy"),this.close(),this.$inputEl&&this.detachInputEvents(),this.params.closeByOutsideClick&&this.detachHtmlEvents(),this.timePickerInstance&&(this.timePickerInstance.destroy&&this.timePickerInstance.destroy(),delete this.timePickerInstance),e&&e.length&&delete this.$el[0].f7Calendar,Utils.deleteProps(this),this.destroyed=!0}},Object.defineProperties(t.prototype,a),t}(Framework7Class),Calendar$1={name:"calendar",static:{Calendar:Calendar},create:function(){this.calendar=ConstructorMethods({defaultSelector:".calendar",constructor:Calendar,app:this,domProp:"f7Calendar"}),this.calendar.close=function(e){void 0===e&&(e=".calendar");var t=$(e);if(0!==t.length){var a=t[0].f7Calendar;!a||a&&!a.opened||a.close()}}},params:{calendar:{dateFormat:void 0,monthNames:"auto",monthNamesShort:"auto",dayNames:"auto",dayNamesShort:"auto",locale:void 0,firstDay:1,weekendDays:[0,6],multiple:!1,rangePicker:!1,rangePickerMinDays:1,rangePickerMaxDays:0,direction:"horizontal",minDate:null,maxDate:null,disabled:null,events:null,rangesClasses:null,touchMove:!0,animate:!0,closeOnSelect:!1,monthSelector:!0,monthPicker:!0,yearSelector:!0,yearPicker:!0,yearPickerMin:void 0,yearPickerMax:void 0,timePicker:!1,timePickerFormat:{hour:"numeric",minute:"numeric"},timePickerPlaceholder:"Select time",weekHeader:!0,value:null,containerEl:null,openIn:"auto",sheetPush:!1,sheetSwipeToClose:void 0,formatValue:null,inputEl:null,inputReadOnly:!0,closeByOutsideClick:!0,scrollToInput:!0,header:!1,headerPlaceholder:"Select date",toolbar:!0,toolbarCloseText:"Done",footer:!1,cssClass:null,routableModals:!0,view:null,url:"date/",backdrop:null,closeByBackdropClick:!0,renderWeekHeader:null,renderMonths:null,renderMonth:null,renderMonthSelector:null,renderYearSelector:null,renderHeader:null,renderFooter:null,renderToolbar:null,renderInline:null,renderPopover:null,renderSheet:null,render:null}}};function pickerColumn(e,t){var a=this,r=a.app,i=$(e),n=i.index(),s=a.cols[n];if(!s.divider){var o,l,p,c,d;s.$el=i,s.el=i[0],s.$itemsEl=s.$el.find(".picker-items"),s.items=s.$itemsEl.find(".picker-item"),s.replaceValues=function(e,t){s.detachEvents(),s.values=e,s.displayValues=t,s.$itemsEl.html(a.renderColumn(s,!0)),s.items=s.$itemsEl.find(".picker-item"),s.calcSize(),s.setValue(s.values[0],0,!0),s.attachEvents()},s.calcSize=function(){a.params.rotateEffect&&(s.$el.removeClass("picker-column-absolute"),s.width||s.$el.css({width:""}));var e=0,t=s.$el[0].offsetHeight;o=s.items[0].offsetHeight,l=o*s.items.length,p=t/2-l+o/2,c=t/2-o/2,s.width&&(e=s.width,parseInt(e,10)===e&&(e+="px"),s.$el.css({width:e})),a.params.rotateEffect&&(s.width||(s.items.each((function(t,a){var r=$(a).children("span");e=Math.max(e,r[0].offsetWidth)})),s.$el.css({width:e+2+"px"})),s.$el.addClass("picker-column-absolute"))},s.setValue=function(e,t,r){void 0===t&&(t="");var i=s.$itemsEl.find('.picker-item[data-picker-value="'+e+'"]').index();if(void 0!==i&&-1!==i){var n=-i*o+c;s.$itemsEl.transition(t),s.$itemsEl.transform("translate3d(0,"+n+"px,0)"),a.params.updateValuesOnMomentum&&s.activeIndex&&s.activeIndex!==i&&(Utils.cancelAnimationFrame(d),s.$itemsEl.transitionEnd((function(){Utils.cancelAnimationFrame(d)})),T()),s.updateItems(i,n,t,r)}},s.updateItems=function(e,t,r,i){void 0===t&&(t=Utils.getTranslate(s.$itemsEl[0],"y")),void 0===e&&(e=-Math.round((t-c)/o)),e<0&&(e=0),e>=s.items.length&&(e=s.items.length-1);var n=s.activeIndex;s.activeIndex=e,s.$itemsEl.find(".picker-item-selected").removeClass("picker-item-selected"),s.items.transition(r);var l=s.items.eq(e).addClass("picker-item-selected").transform("");a.params.rotateEffect&&s.items.each((function(e,r){var i=$(r),n=(i.index()*o-(c-t))/o,l=Math.ceil(s.height/o/2)+1,p=-18*n;p>180&&(p=180),p<-180&&(p=-180),Math.abs(n)>l?i.addClass("picker-item-far"):i.removeClass("picker-item-far"),i.transform("translate3d(0, "+(-t+c)+"px, "+(a.needsOriginFix?-110:0)+"px) rotateX("+p+"deg)")})),(i||void 0===i)&&(s.value=l.attr("data-picker-value"),s.displayValue=s.displayValues?s.displayValues[e]:s.value,n!==e&&(s.onChange&&s.onChange(a,s.value,s.displayValue),a.updateValue()))};var u,h,f,v,m,g,b,y,w,C,x,k=!0,E=!!r.support.passiveListener&&{passive:!1,capture:!1};s.attachEvents=function(){s.$el.on(r.touchEvents.start,S,E),r.on("touchmove:active",M),r.on("touchend:passive",P),a.params.mousewheel&&s.$el.on("wheel",O),s.items.on("click",I)},s.detachEvents=function(){s.$el.off(r.touchEvents.start,S,E),r.off("touchmove:active",M),r.off("touchend:passive",P),a.params.mousewheel&&s.$el.off("wheel",O),s.items.off("click",I)},s.init=function(){s.calcSize(),s.$itemsEl.transform("translate3d(0,"+c+"px,0)").transition(0),0===n&&s.$el.addClass("picker-column-first"),n===a.cols.length-1&&s.$el.addClass("picker-column-last"),t&&s.updateItems(0,c,0),s.attachEvents()},s.destroy=function(){s.detachEvents()},s.init()}function T(){d=Utils.requestAnimationFrame((function(){s.updateItems(void 0,void 0,0),T()}))}function S(e){h||u||(e.preventDefault(),u=!0,f="touchstart"===e.type?e.targetTouches[0].pageY:e.pageY,v=f,m=(new Date).getTime(),k=!0,g=Utils.getTranslate(s.$itemsEl[0],"y"),y=g)}function M(e){u&&(e.preventDefault(),k=!1,v="touchmove"===e.type?e.targetTouches[0].pageY:e.pageY,h||(Utils.cancelAnimationFrame(d),h=!0,g=Utils.getTranslate(s.$itemsEl[0],"y"),y=g,s.$itemsEl.transition(0)),b=void 0,(y=g+(v-f))c&&(y=c+Math.pow(y-c,.8),b="max"),s.$itemsEl.transform("translate3d(0,"+y+"px,0)"),s.updateItems(void 0,y,0,a.params.updateValuesOnTouchmove),C=y-w||y,w=y)}function P(){if(!u||!h)return u=!1,void(h=!1);var e;u=!1,h=!1,s.$itemsEl.transition(""),b&&("min"===b?s.$itemsEl.transform("translate3d(0,"+p+"px,0)"):s.$itemsEl.transform("translate3d(0,"+c+"px,0)")),e=(new Date).getTime()-m>300?y:y+C*a.params.momentumRatio,e=Math.max(Math.min(e,c),p);var t=Math.round(Math.abs((e-c)/o));a.params.freeMode||(e=-t*o+c),s.$itemsEl.transform("translate3d(0,"+parseInt(e,10)+"px,0)"),s.updateItems(t,e,"",!0),a.params.updateValuesOnMomentum&&(T(),s.$itemsEl.transitionEnd((function(){Utils.cancelAnimationFrame(d)}))),setTimeout((function(){k=!0}),100)}function O(e){var t=e.deltaX,r=e.deltaY;Math.abs(t)>Math.abs(r)||(clearTimeout(x),e.preventDefault(),Utils.cancelAnimationFrame(d),g=Utils.getTranslate(s.$itemsEl[0],"y"),s.$itemsEl.transition(0),b=void 0,(y=g-r)c&&(y=c,b="max"),s.$itemsEl.transform("translate3d(0,"+y+"px,0)"),s.updateItems(void 0,y,0,a.params.updateValuesOnMousewheel),x=setTimeout((function(){s.$itemsEl.transition(""),b&&("min"===b?s.$itemsEl.transform("translate3d(0,"+p+"px,0)"):s.$itemsEl.transform("translate3d(0,"+c+"px,0)")),(new Date).getTime();var e=y;e=Math.max(Math.min(e,c),p);var t=Math.round(Math.abs((e-c)/o));a.params.freeMode||(e=-t*o+c),s.$itemsEl.transform("translate3d(0,"+parseInt(e,10)+"px,0)"),s.updateItems(t,e,"",!0)}),200))}function I(){if(k){Utils.cancelAnimationFrame(d);var e=$(this).attr("data-picker-value");s.setValue(e)}}}var Picker=function(e){function t(t,a){void 0===a&&(a={}),e.call(this,a,[t]);var r,i,n=this;if(n.params=Utils.extend({},t.params.picker,a),n.params.containerEl&&0===(r=$(n.params.containerEl)).length)return n;n.params.inputEl&&(i=$(n.params.inputEl));var s=n.params.scrollToInput?i:void 0;if(n.params.scrollToEl){var o=$(n.params.scrollToEl);o.length>0&&(s=o)}function l(){n.resizeCols()}function p(){n.open()}function c(e){e.preventDefault()}function d(e){if(!n.destroyed&&n.params){var t=$(e.target);n.isPopover()||n.opened&&!n.closing&&(t.closest('[class*="backdrop"]').length||(i&&i.length>0?t[0]!==i[0]&&0===t.closest(".sheet-modal").length&&n.close():0===$(e.target).closest(".sheet-modal").length&&n.close()))}}return Utils.extend(n,{app:t,$containerEl:r,containerEl:r&&r[0],inline:r&&r.length>0,needsOriginFix:t.device.ios||win.navigator.userAgent.toLowerCase().indexOf("safari")>=0&&win.navigator.userAgent.toLowerCase().indexOf("chrome")<0&&!t.device.android,cols:[],$inputEl:i,inputEl:i&&i[0],$scrollToEl:s,initialized:!1,opened:!1,url:n.params.url}),Utils.extend(n,{attachResizeEvent:function(){t.on("resize",l)},detachResizeEvent:function(){t.off("resize",l)},attachInputEvents:function(){n.$inputEl.on("click",p),n.params.inputReadOnly&&(n.$inputEl.on("focus mousedown",c),n.$inputEl[0]&&(n.$inputEl[0].f7ValidateReadonly=!0))},detachInputEvents:function(){n.$inputEl.off("click",p),n.params.inputReadOnly&&(n.$inputEl.off("focus mousedown",c),n.$inputEl[0]&&delete n.$inputEl[0].f7ValidateReadonly)},attachHtmlEvents:function(){t.on("click",d)},detachHtmlEvents:function(){t.off("click",d)}}),n.init(),n}e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t;var a={view:{configurable:!0}};return a.view.get=function(){var e,t=this.app,a=this.params,r=this.$inputEl;return a.view?e=a.view:r&&(e=r.parents(".view").length&&r.parents(".view")[0].f7View),e||(e=t.views.main),e},t.prototype.initInput=function(){this.$inputEl&&this.params.inputReadOnly&&this.$inputEl.prop("readOnly",!0)},t.prototype.resizeCols=function(){if(this.opened)for(var e=0;e=768)return!0;if(e.device.desktop&&"aurora"===e.theme)return!0}return!1},t.prototype.formatValue=function(){var e=this.value,t=this.displayValue;return this.params.formatValue?this.params.formatValue.call(this,e,t):e.join(" ")},t.prototype.setValue=function(e,t){var a=0;if(0===this.cols.length)return this.value=e,void this.updateValue(e);for(var r=0;r=0||(this.value=a,this.displayValue=r,this.emit("local::change pickerChange",this,this.value,this.displayValue),this.inputEl&&(this.$inputEl.val(this.formatValue()),this.$inputEl.trigger("change")))},t.prototype.initColumn=function(e,t){pickerColumn.call(this,e,t)},t.prototype.destroyColumn=function(e){var t=$(e).index();this.cols[t]&&this.cols[t].destroy&&this.cols[t].destroy()},t.prototype.renderToolbar=function(){return this.params.renderToolbar?this.params.renderToolbar.call(this,this):('\n \n ").trim()},t.prototype.renderColumn=function(e,t){var a,r,i="picker-column "+(e.textAlign?"picker-column-"+e.textAlign:"")+" "+(e.cssClass||"");return a=e.divider?'\n
                    '+e.content+"
                    \n ":'\n
                    \n
                    '+(r=e.values.map((function(t,a){return'\n
                    \n '+(e.displayValues?e.displayValues[a]:t)+"\n
                    \n "})).join(""))+"
                    \n
                    \n ",t?r.trim():a.trim()},t.prototype.renderInline=function(){var e=this,t=e.params;return('\n
                    \n '+(t.toolbar?e.renderToolbar():"")+'\n
                    \n '+e.cols.map((function(t){return e.renderColumn(t)})).join("")+'\n
                    \n
                    \n
                    \n ').trim()},t.prototype.renderSheet=function(){var e=this,t=e.params;return('\n
                    \n '+(t.toolbar?e.renderToolbar():"")+'\n
                    \n '+e.cols.map((function(t){return e.renderColumn(t)})).join("")+'\n
                    \n
                    \n
                    \n ').trim()},t.prototype.renderPopover=function(){var e=this,t=e.params;return('\n
                    \n
                    \n
                    \n '+(t.toolbar?e.renderToolbar():"")+'\n
                    \n '+e.cols.map((function(t){return e.renderColumn(t)})).join("")+'\n
                    \n
                    \n
                    \n
                    \n
                    \n ').trim()},t.prototype.render=function(){return this.params.render?this.params.render.call(this):this.inline?this.renderInline():this.isPopover()?this.renderPopover():this.renderSheet()},t.prototype.onOpen=function(){var e=this,t=e.initialized,a=e.$el,r=e.app,i=e.$inputEl,n=e.inline,s=e.value,o=e.params;e.opened=!0,e.closing=!1,e.opening=!0,e.attachResizeEvent(),a.find(".picker-column").each((function(a,r){var i=!0;(!t&&o.value||t&&s)&&(i=!1),e.initColumn(r,i)})),t?s&&e.setValue(s,0):s?e.setValue(s,0):o.value&&e.setValue(o.value,0),!n&&i&&i.length&&"md"===r.theme&&i.trigger("focus"),e.initialized=!0,a&&a.trigger("picker:open"),i&&i.trigger("picker:open"),e.emit("local::open pickerOpen",e)},t.prototype.onOpened=function(){this.opening=!1,this.$el&&this.$el.trigger("picker:opened"),this.$inputEl&&this.$inputEl.trigger("picker:opened"),this.emit("local::opened pickerOpened",this)},t.prototype.onClose=function(){var e=this.app;if(this.opening=!1,this.closing=!0,this.detachResizeEvent(),this.cols.forEach((function(e){e.destroy&&e.destroy()})),this.$inputEl)if("md"===e.theme)this.$inputEl.trigger("blur");else{var t=this.$inputEl.attr("validate"),a=this.$inputEl.attr("required");t&&a&&e.input.validate(this.$inputEl)}this.$el&&this.$el.trigger("picker:close"),this.$inputEl&&this.$inputEl.trigger("picker:close"),this.emit("local::close pickerClose",this)},t.prototype.onClosed=function(){var e=this;e.opened=!1,e.closing=!1,e.inline||Utils.nextTick((function(){e.modal&&e.modal.el&&e.modal.destroy&&(e.params.routableModals||e.modal.destroy()),delete e.modal})),e.$el&&e.$el.trigger("picker:closed"),e.$inputEl&&e.$inputEl.trigger("picker:closed"),e.emit("local::closed pickerClosed",e)},t.prototype.open=function(){var e,t=this,a=t.app,r=t.opened,i=t.inline,n=t.$inputEl,s=t.$scrollToEl,o=t.params;if(!r){if(0===t.cols.length&&o.cols.length&&o.cols.forEach((function(e){t.cols.push(e)})),i)return t.$el=$(t.render()),t.$el[0].f7Picker=t,t.$containerEl.append(t.$el),t.onOpen(),void t.onOpened();var l=t.isPopover(),p=l?"popover":"sheet",c={targetEl:n,scrollToEl:s,content:t.render(),backdrop:void 0!==o.backdrop?o.backdrop:l,on:{open:function(){t.modal=this,t.$el=l?this.$el.find(".picker"):this.$el,t.$el[0].f7Picker=t,t.onOpen()},opened:function(){t.onOpened()},close:function(){t.onClose()},closed:function(){t.onClosed()}}};"sheet"===p&&(c.push=o.sheetPush,c.swipeToClose=o.sheetSwipeToClose),o.routableModals&&t.view?t.view.router.navigate({url:t.url,route:(e={path:t.url},e[p]=c,e)}):(t.modal=a[p].create(c),t.modal.open())}},t.prototype.close=function(){var e=this.opened,t=this.inline;if(e)return t?(this.onClose(),void this.onClosed()):void(this.params.routableModals&&this.view?this.view.router.back():this.modal.close())},t.prototype.init=function(){if(this.initInput(),this.inline)return this.open(),void this.emit("local::init pickerInit",this);!this.initialized&&this.params.value&&this.setValue(this.params.value),this.$inputEl&&this.attachInputEvents(),this.params.closeByOutsideClick&&this.attachHtmlEvents(),this.emit("local::init pickerInit",this)},t.prototype.destroy=function(){if(!this.destroyed){var e=this.$el;this.emit("local::beforeDestroy pickerBeforeDestroy",this),e&&e.trigger("picker:beforedestroy"),this.close(),this.$inputEl&&this.detachInputEvents(),this.params.closeByOutsideClick&&this.detachHtmlEvents(),e&&e.length&&delete this.$el[0].f7Picker,Utils.deleteProps(this),this.destroyed=!0}},Object.defineProperties(t.prototype,a),t}(Framework7Class),Picker$1={name:"picker",static:{Picker:Picker},create:function(){this.picker=ConstructorMethods({defaultSelector:".picker",constructor:Picker,app:this,domProp:"f7Picker"}),this.picker.close=function(e){void 0===e&&(e=".picker");var t=$(e);if(0!==t.length){var a=t[0].f7Picker;!a||a&&!a.opened||a.close()}}},params:{picker:{updateValuesOnMomentum:!1,updateValuesOnTouchmove:!0,updateValuesOnMousewheel:!0,mousewheel:!0,rotateEffect:!1,momentumRatio:7,freeMode:!1,cols:[],containerEl:null,openIn:"auto",sheetPush:!1,sheetSwipeToClose:void 0,backdrop:void 0,formatValue:null,inputEl:null,inputReadOnly:!0,closeByOutsideClick:!0,scrollToInput:!0,scrollToEl:void 0,toolbar:!0,toolbarCloseText:"Done",cssClass:null,routableModals:!0,view:null,url:"select/",renderToolbar:null,render:null}}},InfiniteScroll={handleScroll:function(e,t){var a,r=$(e),i=r[0].scrollTop,n=r[0].scrollHeight,s=r[0].offsetHeight,o=r[0].getAttribute("data-infinite-distance"),l=r.find(".virtual-list"),p=r.hasClass("infinite-scroll-top");if(o||(o=50),"string"==typeof o&&o.indexOf("%")>=0&&(o=parseInt(o,10)/100*s),o>s&&(o=s),p)i=n-o){if(l.length>0&&(a=l.eq(-1)[0].f7VirtualList)&&!a.reachEnd&&!a.params.updatableScroll)return;r.trigger("infinite",t),this.emit("infinite",r[0],t)}},create:function(e){var t=$(e),a=this;function r(e){a.infiniteScroll.handle(this,e)}t.each((function(e,t){t.f7InfiniteScrollHandler=r,t.addEventListener("scroll",t.f7InfiniteScrollHandler)}))},destroy:function(e){$(e).each((function(e,t){t.removeEventListener("scroll",t.f7InfiniteScrollHandler),delete t.f7InfiniteScrollHandler}))}},InfiniteScroll$1={name:"infiniteScroll",create:function(){Utils.extend(this,{infiniteScroll:{handle:InfiniteScroll.handleScroll.bind(this),create:InfiniteScroll.create.bind(this),destroy:InfiniteScroll.destroy.bind(this)}})},on:{tabMounted:function(e){var t=this,a=$(e),r=a.find(".infinite-scroll-content");a.is(".infinite-scroll-content")&&r.add(a),r.each((function(e,a){t.infiniteScroll.create(a)}))},tabBeforeRemove:function(e){var t=$(e),a=this,r=t.find(".infinite-scroll-content");t.is(".infinite-scroll-content")&&r.add(t),r.each((function(e,t){a.infiniteScroll.destroy(t)}))},pageInit:function(e){var t=this;e.$el.find(".infinite-scroll-content").each((function(e,a){t.infiniteScroll.create(a)}))},pageBeforeRemove:function(e){var t=this;e.$el.find(".infinite-scroll-content").each((function(e,a){t.infiniteScroll.destroy(a)}))}}},PullToRefresh=function(e){function t(t,a){e.call(this,{},[t]);var r=this,i=$(a),n=i.find(".ptr-preloader");r.$el=i,r.el=i[0],r.app=t,r.bottom=r.$el.hasClass("ptr-bottom"),r.useModulesParams({});var s,o,l,p="md"===t.theme,c="ios"===t.theme,d="aurora"===t.theme;r.done=function(){return(p?n:i).transitionEnd((function(){i.removeClass("ptr-transitioning ptr-pull-up ptr-pull-down ptr-closing"),i.trigger("ptr:done"),r.emit("local::done ptrDone",i[0])})),i.removeClass("ptr-refreshing").addClass("ptr-transitioning ptr-closing"),r},r.refresh=function(){return i.hasClass("ptr-refreshing")||(i.addClass("ptr-transitioning ptr-refreshing"),i.trigger("ptr:refresh",r.done),r.emit("local::refresh ptrRefresh",i[0],r.done)),r},r.mousewheel="true"===i.attr("data-ptr-mousewheel");var u,h,f,v,m,g,b,y,w,C,x,k,E,T={},S=!1,M=!1,P=!1,O=0,I=!1,D=i.parents(".page");if((D.find(".navbar").length>0||D.parents(".view").children(".navbars").length>0)&&(I=!0),D.hasClass("no-navbar")&&(I=!1),!r.bottom){var B=t.navbar.getElByPage(D[0]);if(B){var R=$(B),z=R.hasClass("navbar-large-transparent")||R.hasClass("navbar-large")&&R.hasClass("navbar-transparent"),L=R.hasClass("navbar-transparent")&&!R.hasClass("navbar-large");z?i.addClass("ptr-with-navbar-large-transparent"):L&&i.addClass("ptr-with-navbar-transparent")}}function H(e){if(o){if("android"!==Device.os)return;if("targetTouches"in e&&e.targetTouches.length>1)return}i.hasClass("ptr-refreshing")||$(e.target).closest(".sortable-handler, .ptr-ignore, .card-expandable.card-opened").length||(l=!1,y=!1,o=!0,u=void 0,m=void 0,"touchstart"===e.type&&(s=e.targetTouches[0].identifier),T.x="touchstart"===e.type?e.targetTouches[0].pageX:e.pageX,T.y="touchstart"===e.type?e.targetTouches[0].pageY:e.pageY)}function A(e){if(o){var t,c,d;if("touchmove"===e.type){if(s&&e.touches)for(var k=0;kMath.abs(t-T.x))),u){if(v=i[0].scrollTop,!l){var E;if(i.removeClass("ptr-transitioning"),w=i[0].scrollHeight,C=i[0].offsetHeight,r.bottom&&(x=w-C),v>w)return void(o=!1);var I=$(e.target).closest(".ptr-watch-scroll");if(I.length&&I.each((function(e,t){t!==a&&t.scrollHeight>t.offsetHeight&&"auto"===$(t).css("overflow")&&(!r.bottom&&t.scrollTop>0||r.bottom&&t.scrollTop=0&&(g=w*parseInt(g,10)/100),O=i.hasClass("ptr-refreshing")?g:0,M=!(w!==C&&"ios"===Device.os&&!p),P=!1}l=!0,h=c-T.y,void 0===m&&(r.bottom?v!==x:0!==v)&&(m=!0),(r.bottom?h<0&&v>=x||v>x:h>0&&v<=0||v<0)?("ios"===Device.os&&parseInt(Device.osVersion.split(".")[0],10)>7&&(r.bottom||0!==v||m||(M=!0),r.bottom&&v===x&&!m&&(M=!0)),M||!r.bottom||p||(i.css("-webkit-overflow-scrolling","auto"),i.scrollTop(x),P=!0),(M||P)&&(e.cancelable&&e.preventDefault(),f=(r.bottom?-1*Math.pow(Math.abs(h),.85):Math.pow(h,.85))+O,p?n.transform("translate3d(0,"+f+"px,0)").find(".ptr-arrow").transform("rotate("+(Math.abs(h)/66*180+100)+"deg)"):r.bottom?i.children().transform("translate3d(0,"+f+"px,0)"):i.transform("translate3d(0,"+f+"px,0)")),(M||P)&&Math.pow(Math.abs(h),.85)>g||!M&&Math.abs(h)>=2*g?(S=!0,i.addClass("ptr-pull-up").removeClass("ptr-pull-down")):(S=!1,i.removeClass("ptr-pull-up").addClass("ptr-pull-down")),y||(i.trigger("ptr:pullstart"),r.emit("local::pullStart ptrPullStart",i[0]),y=!0),i.trigger("ptr:pullmove",{event:e,scrollTop:v,translate:f,touchesDiff:h}),r.emit("local::pullMove ptrPullMove",i[0],{event:e,scrollTop:v,translate:f,touchesDiff:h})):(y=!1,i.removeClass("ptr-pull-up ptr-pull-down"),S=!1)}else o=!1}}function U(e){return"touchend"===e.type&&e.changedTouches&&e.changedTouches.length>0&&s&&e.changedTouches[0].identifier!==s?(o=!1,u=!1,l=!1,void(s=null)):o&&l?(f&&(i.addClass("ptr-transitioning"),f=0),p?n.transform("").find(".ptr-arrow").transform(""):r.bottom?i.children().transform(""):i.transform(""),M||!r.bottom||p||i.css("-webkit-overflow-scrolling",""),S?(i.addClass("ptr-refreshing"),i.trigger("ptr:refresh",r.done),r.emit("local::refresh ptrRefresh",i[0],r.done)):i.removeClass("ptr-pull-down"),o=!1,l=!1,void(y&&(i.trigger("ptr:pullend"),r.emit("local::pullEnd ptrPullEnd",i[0])))):(o=!1,void(l=!1))}I||r.bottom||i.addClass("ptr-no-navbar"),i.attr("data-ptr-distance")?b=!0:p?g=66:c?g=44:d&&(g=38);var N=!0,F=0;function V(){N=!0,E=!1,F=0,f&&(i.addClass("ptr-transitioning"),f=0),p?n.transform("").find(".ptr-arrow").transform(""):r.bottom?i.children().transform(""):i.transform(""),S?(i.addClass("ptr-refreshing"),i.trigger("ptr:refresh",r.done),r.emit("local::refresh ptrRefresh",i[0],r.done)):i.removeClass("ptr-pull-down"),y&&(i.trigger("ptr:pullend"),r.emit("local::pullEnd ptrPullEnd",i[0]))}function q(e){if(N){var t=e.deltaX,s=e.deltaY;if(!(Math.abs(t)>Math.abs(s)||i.hasClass("ptr-refreshing")||$(e.target).closest(".sortable-handler, .ptr-ignore, .card-expandable.card-opened").length)){if(clearTimeout(k),v=i[0].scrollTop,!E){var o;if(i.removeClass("ptr-transitioning"),w=i[0].scrollHeight,C=i[0].offsetHeight,r.bottom&&(x=w-C),v>w)return void(N=!1);var c=$(e.target).closest(".ptr-watch-scroll");if(c.length&&c.each((function(e,t){t!==a&&t.scrollHeight>t.offsetHeight&&"auto"===$(t).css("overflow")&&(!r.bottom&&t.scrollTop>0||r.bottom&&t.scrollTop=0&&(g=w*parseInt(g,10)/100)}l=!0,h=F-=s,void 0===m&&(r.bottom?v!==x:0!==v)&&(m=!0),(r.bottom?h<0&&v>=x||v>x:h>0&&v<=0||v<0)?(e.cancelable&&e.preventDefault(),f=h,Math.abs(f)>g&&(f=g+Math.pow(Math.abs(f)-g,.7),r.bottom&&(f=-f)),p?n.transform("translate3d(0,"+f+"px,0)").find(".ptr-arrow").transform("rotate("+(Math.abs(h)/66*180+100)+"deg)"):r.bottom?i.children().transform("translate3d(0,"+f+"px,0)"):i.transform("translate3d(0,"+f+"px,0)"),Math.abs(f)>g?(S=!0,i.addClass("ptr-pull-up").removeClass("ptr-pull-down")):(S=!1,i.removeClass("ptr-pull-up").addClass("ptr-pull-down")),y||(i.trigger("ptr:pullstart"),r.emit("local::pullStart ptrPullStart",i[0]),y=!0),i.trigger("ptr:pullmove",{event:e,scrollTop:v,translate:f,touchesDiff:h}),r.emit("local::pullMove ptrPullMove",i[0],{event:e,scrollTop:v,translate:f,touchesDiff:h})):(y=!1,i.removeClass("ptr-pull-up ptr-pull-down"),S=!1),k=setTimeout(V,300)}}}return D.length&&i.length?(i[0].f7PullToRefresh=r,r.attachEvents=function(){var e=!!Support.passiveListener&&{passive:!0};i.on(t.touchEvents.start,H,e),t.on("touchmove:active",A),t.on("touchend:passive",U),r.mousewheel&&!r.bottom&&i.on("wheel",q)},r.detachEvents=function(){var e=!!Support.passiveListener&&{passive:!0};i.off(t.touchEvents.start,H,e),t.off("touchmove:active",A),t.off("touchend:passive",U),r.mousewheel&&!r.bottom&&i.off("wheel",q)},r.useModules(),r.init(),r):r}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.init=function(){this.attachEvents()},t.prototype.destroy=function(){var e=this;e.emit("local::beforeDestroy ptrBeforeDestroy",e),e.$el.trigger("ptr:beforedestroy"),delete e.el.f7PullToRefresh,e.detachEvents(),Utils.deleteProps(e),e=null},t}(Framework7Class),PullToRefresh$1={name:"pullToRefresh",create:function(){var e=this;e.ptr=Utils.extend(ConstructorMethods({defaultSelector:".ptr-content",constructor:PullToRefresh,app:e,domProp:"f7PullToRefresh"}),{done:function(t){var a=e.ptr.get(t);if(a)return a.done()},refresh:function(t){var a=e.ptr.get(t);if(a)return a.refresh()}})},static:{PullToRefresh:PullToRefresh},on:{tabMounted:function(e){var t=this,a=$(e),r=a.find(".ptr-content");a.is(".ptr-content")&&r.add(a),r.each((function(e,a){t.ptr.create(a)}))},tabBeforeRemove:function(e){var t=$(e),a=this,r=t.find(".ptr-content");t.is(".ptr-content")&&r.add(t),r.each((function(e,t){a.ptr.destroy(t)}))},pageInit:function(e){var t=this;e.$el.find(".ptr-content").each((function(e,a){t.ptr.create(a)}))},pageBeforeRemove:function(e){var t=this;e.$el.find(".ptr-content").each((function(e,a){t.ptr.destroy(a)}))}}},Lazy={destroy:function(e){var t=$(e).closest(".page");t.length&&t[0].f7LazyDestroy&&t[0].f7LazyDestroy()},create:function(e){var t=this,a=$(e).closest(".page").eq(0),r=a.find(".lazy");if(0!==r.length||a.hasClass("lazy")){var i=t.params.lazy.placeholder;!1!==i&&r.each((function(e,t){$(t).attr("data-src")&&!$(t).attr("src")&&$(t).attr("src",i)}));var n=[],s=!1;if(t.params.lazy.observer&&Support.intersectionObserver){var o=a[0].f7LazyObserver;return o||(o=new win.IntersectionObserver((function(e,a){e.forEach((function(e){if(e.isIntersecting){if(t.params.lazy.sequential&&s)return void(n.indexOf(e.target)<0&&n.push(e.target));s=!0,t.lazy.loadImage(e.target,l),a.unobserve(e.target)}}))}),{root:a[0]})),r.each((function(e,t){t.f7LazyObserverAdded||(t.f7LazyObserverAdded=!0,o.observe(t))})),void(a[0].f7LazyDestroy||(a[0].f7LazyDestroy=function(){o.disconnect(),delete a[0].f7LazyDestroy,delete a[0].f7LazyObserver}))}a[0].f7LazyDestroy||(a[0].f7LazyDestroy=function(){a[0].f7LazyAttached=!1,delete a[0].f7LazyAttached,a.off("lazy",p),a.off("scroll",p,!0),a.find(".tab").off("tab:mounted tab:show",p),t.off("resize",p)}),a[0].f7LazyAttached||(a[0].f7LazyAttached=!0,a.on("lazy",p),a.on("scroll",p,!0),a.find(".tab").on("tab:mounted tab:show",p),t.on("resize",p)),p()}function l(e){n.indexOf(e)>=0&&n.splice(n.indexOf(e),1),s=!1,t.params.lazy.sequential&&n.length>0&&(s=!0,t.lazy.loadImage(n[0],l))}function p(){t.lazy.load(a,(function(e){t.params.lazy.sequential&&s?n.indexOf(e)<0&&n.push(e):(s=!0,t.lazy.loadImage(e,l))}))}},isInViewport:function(e){var t=e.getBoundingClientRect(),a=this.params.lazy.threshold||0;return t.top>=0-a&&t.left>=0-a&&t.top<=this.height+a&&t.left<=this.width+a},loadImage:function(e,t){var a=this,r=$(e),i=r.attr("data-background"),n=i||r.attr("data-src");function s(){r.removeClass("lazy").addClass("lazy-loaded"),i?r.css("background-image","url("+n+")"):n&&r.attr("src",n),t&&t(e),r.trigger("lazy:loaded"),a.emit("lazyLoaded",r[0])}if(!n)return r.trigger("lazy:load"),a.emit("lazyLoad",r[0]),void s();var o=new win.Image;o.onload=s,o.onerror=function(){r.removeClass("lazy").addClass("lazy-loaded"),i?r.css("background-image","url("+(a.params.lazy.placeholder||"")+")"):r.attr("src",a.params.lazy.placeholder||""),t&&t(e),r.trigger("lazy:error"),a.emit("lazyError",r[0])},o.src=n,r.removeAttr("data-src").removeAttr("data-background"),r.trigger("lazy:load"),a.emit("lazyLoad",r[0])},load:function(e,t){var a=this,r=$(e);r.hasClass("page")||(r=r.parents(".page").eq(0)),0!==r.length&&r.find(".lazy").each((function(e,r){$(r).parents(".tab:not(.tab-active)").length>0||a.lazy.isInViewport(r)&&(t?t(r):a.lazy.loadImage(r))}))}},Lazy$1={name:"lazy",params:{lazy:{placeholder:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABAQMAAAAl21bKAAAAA1BMVEXCwsK592mkAAAACklEQVQI12NgAAAAAgAB4iG8MwAAAABJRU5ErkJggg==",threshold:0,sequential:!0,observer:!0}},create:function(){Utils.extend(this,{lazy:{create:Lazy.create.bind(this),destroy:Lazy.destroy.bind(this),loadImage:Lazy.loadImage.bind(this),load:Lazy.load.bind(this),isInViewport:Lazy.isInViewport.bind(this)}})},on:{pageInit:function(e){(e.$el.find(".lazy").length>0||e.$el.hasClass("lazy"))&&this.lazy.create(e.$el)},pageAfterIn:function(e){this.params.lazy.observer&&Support.intersectionObserver||(e.$el.find(".lazy").length>0||e.$el.hasClass("lazy"))&&this.lazy.create(e.$el)},pageBeforeRemove:function(e){(e.$el.find(".lazy").length>0||e.$el.hasClass("lazy"))&&this.lazy.destroy(e.$el)},tabMounted:function(e){var t=$(e);(t.find(".lazy").length>0||t.hasClass("lazy"))&&this.lazy.create(t)},tabBeforeRemove:function(e){if(!this.params.lazy.observer||!Support.intersectionObserver){var t=$(e);(t.find(".lazy").length>0||t.hasClass("lazy"))&&this.lazy.destroy(t)}}}},DataTable=function(e){function t(t,a){void 0===a&&(a={}),e.call(this,a,[t]);var r=this,i={};r.useModulesParams(i),r.params=Utils.extend(i,a);var n=$(r.params.el);if(0!==n.length){if(r.$el=n,r.el=n[0],r.$el[0].f7DataTable){var s=r.$el[0].f7DataTable;return r.destroy(),s}return r.$el[0].f7DataTable=r,Utils.extend(r,{collapsible:n.hasClass("data-table-collapsible"),$headerEl:n.find(".data-table-header"),$headerSelectedEl:n.find(".data-table-header-selected")}),r.attachEvents=function(){r.$el.on("change",'.checkbox-cell input[type="checkbox"]',o),r.$el.find("thead .sortable-cell").on("click",l)},r.detachEvents=function(){r.$el.off("change",'.checkbox-cell input[type="checkbox"]',o),r.$el.find("thead .sortable-cell").off("click",l)},r.useModules(),r.init(),r}function o(e){if(!e.detail||!e.detail.sentByF7DataTable){var t=$(this),a=t[0].checked,i=t.parents("td,th").index();if(t.parents("thead").length>0)0===i&&n.find("tbody tr")[a?"addClass":"removeClass"]("data-table-row-selected"),n.find("tbody tr td:nth-child("+(i+1)+") input").prop("checked",a).trigger("change",{sentByF7DataTable:!0}),t.prop("indeterminate",!1);else{0===i&&t.parents("tr")[a?"addClass":"removeClass"]("data-table-row-selected");var s=n.find("tbody .checkbox-cell:nth-child("+(i+1)+') input[type="checkbox"]:checked').length,o=n.find("tbody tr").length,l=n.find("thead .checkbox-cell:nth-child("+(i+1)+') input[type="checkbox"]');a?s===o&&l.prop("checked",!0).trigger("change",{sentByF7DataTable:!0}):l.prop("checked",!1),l.prop("indeterminate",s>0&&s0&&this.$headerSelectedEl.length>0){var e=this.$el.find("tbody .checkbox-cell input:checked").length;this.$el[e>0?"addClass":"removeClass"]("data-table-has-checked"),this.$headerSelectedEl.find(".data-table-selected-count").text(e)}},t.prototype.init=function(){this.attachEvents(),this.setCollapsibleLabels(),this.checkSelectedHeader()},t.prototype.destroy=function(){var e=this;e.$el.trigger("datatable:beforedestroy"),e.emit("local::beforeDestroy dataTableBeforeDestroy",e),e.attachEvents(),e.$el[0]&&(e.$el[0].f7DataTable=null,delete e.$el[0].f7DataTable),Utils.deleteProps(e),e=null},t}(Framework7Class),DataTable$1={name:"dataTable",static:{DataTable:DataTable},create:function(){this.dataTable=ConstructorMethods({defaultSelector:".data-table",constructor:DataTable,app:this,domProp:"f7DataTable"})},on:{tabBeforeRemove:function(e){var t=this;$(e).find(".data-table-init").each((function(e,a){t.dataTable.destroy(a)}))},tabMounted:function(e){var t=this;$(e).find(".data-table-init").each((function(e,a){t.dataTable.create({el:a})}))},pageBeforeRemove:function(e){var t=this;e.$el.find(".data-table-init").each((function(e,a){t.dataTable.destroy(a)}))},pageInit:function(e){var t=this;e.$el.find(".data-table-init").each((function(e,a){t.dataTable.create({el:a})}))}},vnode:{"data-table-init":{insert:function(e){var t=e.elm;this.dataTable.create({el:t})},destroy:function(e){var t=e.elm;this.dataTable.destroy(t)}}}},Fab={morphOpen:function(e,t){var a=this,r=$(e),i=$(t);if(0!==i.length){i.transition(0).addClass("fab-morph-target-visible");var n={width:i[0].offsetWidth,height:i[0].offsetHeight,offset:i.offset(),borderRadius:i.css("border-radius"),zIndex:i.css("z-index")},s={width:r[0].offsetWidth,height:r[0].offsetHeight,offset:r.offset(),translateX:Utils.getTranslate(r[0],"x"),translateY:Utils.getTranslate(r[0],"y")};r[0].f7FabMorphData={$targetEl:i,target:n,fab:s};var o=s.offset.left+s.width/2-(n.offset.left+n.width/2)-s.translateX,l=s.offset.top+s.height/2-(n.offset.top+n.height/2)-s.translateY,p=n.width/s.width,c=n.height/s.height,d=Math.ceil(parseInt(n.borderRadius,10)/Math.max(p,c));d>0&&(d+=2),r[0].f7FabMorphResizeHandler=function(){r.transition(0).transform(""),i.transition(0),n.width=i[0].offsetWidth,n.height=i[0].offsetHeight,n.offset=i.offset(),s.offset=r.offset();var e=s.offset.left+s.width/2-(n.offset.left+n.width/2)-s.translateX,t=s.offset.top+s.height/2-(n.offset.top+n.height/2)-s.translateY,a=n.width/s.width,o=n.height/s.height;r.transform("translate3d("+-e+"px, "+-t+"px, 0) scale("+a+", "+o+")")},i.css("opacity",0).transform("scale("+1/p+", "+1/c+")"),r.addClass("fab-opened").css("z-index",n.zIndex-1).transform("translate3d("+-o+"px, "+-l+"px, 0)"),r.transitionEnd((function(){i.transition(""),Utils.nextFrame((function(){i.css("opacity",1).transform("scale(1,1)"),r.transform("translate3d("+-o+"px, "+-l+"px, 0) scale("+p+", "+c+")").css("border-radius",d+"px").css("box-shadow","none").css("opacity","0")})),a.on("resize",r[0].f7FabMorphResizeHandler),i.parents(".page-content").length>0&&i.parents(".page-content").on("scroll",r[0].f7FabMorphResizeHandler)}))}},morphClose:function(e){var t=$(e),a=t[0].f7FabMorphData;if(a){var r=a.$targetEl,i=a.target,n=a.fab;if(0!==r.length){var s=n.offset.left+n.width/2-(i.offset.left+i.width/2)-n.translateX,o=n.offset.top+n.height/2-(i.offset.top+i.height/2)-n.translateY,l=i.width/n.width,p=i.height/n.height;this.off("resize",t[0].f7FabMorphResizeHandler),r.parents(".page-content").length>0&&r.parents(".page-content").off("scroll",t[0].f7FabMorphResizeHandler),r.css("opacity",0).transform("scale("+1/l+", "+1/p+")"),t.transition("").css("box-shadow","").css("border-radius","").css("opacity","1").transform("translate3d("+-s+"px, "+-o+"px, 0)"),t.transitionEnd((function(){t.css("z-index","").removeClass("fab-opened").transform(""),Utils.nextFrame((function(){t.transitionEnd((function(){r.removeClass("fab-morph-target-visible").css("opacity","").transform("").transition("")}))}))}))}}},open:function(e,t){var a=$(e).eq(0),r=a.find(".fab-buttons");if(a.length&&!a.hasClass("fab-opened")&&(r.length||a.hasClass("fab-morph"))){if(this.fab.openedEl){if(this.fab.openedEl===a[0])return;this.fab.close(this.fab.openedEl)}this.fab.openedEl=a[0],a.hasClass("fab-morph")?this.fab.morphOpen(a,t||a.attr("data-morph-to")):a.addClass("fab-opened"),a.siblings(".fab-backdrop").addClass("backdrop-in"),a.trigger("fab:open")}},close:function(e){void 0===e&&(e=".fab-opened");var t=$(e).eq(0),a=t.find(".fab-buttons");t.length&&t.hasClass("fab-opened")&&(a.length||t.hasClass("fab-morph"))&&(this.fab.openedEl=null,t.hasClass("fab-morph")?this.fab.morphClose(t):t.removeClass("fab-opened"),t.siblings(".fab-backdrop").removeClass("backdrop-in"),t.trigger("fab:close"))},toggle:function(e){$(e).hasClass("fab-opened")?this.fab.close(e):this.fab.open(e)}},Fab$1={name:"fab",create:function(){Utils.extend(this,{fab:{openedEl:null,morphOpen:Fab.morphOpen.bind(this),morphClose:Fab.morphClose.bind(this),open:Fab.open.bind(this),close:Fab.close.bind(this),toggle:Fab.toggle.bind(this)}})},clicks:{".fab > a":function(e){this.fab.toggle(e.parents(".fab"))},".fab-open":function(e,t){void 0===t&&(t={});this.fab.open(t.fab)},".fab-close":function(e,t){void 0===t&&(t={});this.fab.close(t.fab)},".fab-backdrop":function(){this.fab.close()}}},Searchbar=function(e){function t(t,a){void 0===a&&(a={}),e.call(this,a,[t]);var r=this,i={el:void 0,inputEl:void 0,inputEvents:"change input compositionend",disableButton:!0,disableButtonEl:void 0,backdropEl:void 0,searchContainer:void 0,searchItem:"li",searchIn:void 0,searchGroup:".list-group",searchGroupTitle:".item-divider, .list-group-title",ignore:".searchbar-ignore",foundEl:".searchbar-found",notFoundEl:".searchbar-not-found",hideOnEnableEl:".searchbar-hide-on-enable",hideOnSearchEl:".searchbar-hide-on-search",backdrop:void 0,removeDiacritics:!0,customSearch:!1,hideDividers:!0,hideGroups:!0,disableOnBackdropClick:!0,expandable:!1,inline:!1};r.useModulesParams(i),r.params=Utils.extend(i,a);var n,s=$(r.params.el);if(0===s.length)return r;if(s[0].f7Searchbar)return s[0].f7Searchbar;s[0].f7Searchbar=r;var o,l,p,c,d=s.parents(".navbar");if(s.parents(".page").length>0)n=s.parents(".page");else if(d.length>0&&!(n=$(t.navbar.getPageByEl(d[0]))).length){var u=s.parents(".view").find(".page-current");u[0]&&u[0].f7Page&&u[0].f7Page.navbarEl===d[0]&&(n=u)}a.foundEl?o=$(a.foundEl):"string"==typeof r.params.foundEl&&n&&(o=n.find(r.params.foundEl)),a.notFoundEl?l=$(a.notFoundEl):"string"==typeof r.params.notFoundEl&&n&&(l=n.find(r.params.notFoundEl)),a.hideOnEnableEl?p=$(a.hideOnEnableEl):"string"==typeof r.params.hideOnEnableEl&&n&&(p=n.find(r.params.hideOnEnableEl)),a.hideOnSearchEl?c=$(a.hideOnSearchEl):"string"==typeof r.params.hideOnSearchEl&&n&&(c=n.find(r.params.hideOnSearchEl));var h,f,v,m,g=r.params.expandable||s.hasClass("searchbar-expandable"),b=r.params.inline||s.hasClass("searchbar-inline");function y(e){e.preventDefault()}function w(e){r.enable(e),r.$el.addClass("searchbar-focused")}function C(){r.$el.removeClass("searchbar-focused"),"aurora"!==t.theme||m&&m.length&&r.params.disableButton||r.query||r.disable()}function x(){var e=r.$inputEl.val().trim();(r.$searchContainer&&r.$searchContainer.length>0&&(r.params.searchIn||r.isVirtualList||r.params.searchIn===r.params.searchItem)||r.params.customSearch)&&r.search(e,!0)}function k(e,t){r.$el.trigger("searchbar:clear",t),r.emit("local::clear searchbarClear",r,t)}function E(e){r.disable(e)}function T(){!r||r&&!r.$el||r.enabled&&(r.$el.removeClass("searchbar-enabled"),r.expandable&&r.$el.parents(".navbar").removeClass("with-searchbar-expandable-enabled with-searchbar-expandable-enabled-no-transition"))}function S(){!r||r&&!r.$el||r.enabled&&(r.$el.addClass("searchbar-enabled"),r.expandable&&r.$el.parents(".navbar").addClass("with-searchbar-expandable-enabled-no-transition"))}return void 0===r.params.backdrop&&(r.params.backdrop=!b&&"aurora"!==t.theme),r.params.backdrop&&0===(h=r.params.backdropEl?$(r.params.backdropEl):n&&n.length>0?n.find(".searchbar-backdrop"):s.siblings(".searchbar-backdrop")).length&&(h=$('
                    '),n&&n.length?s.parents(n).length>0&&d&&0===s.parents(d).length?h.insertBefore(s):h.insertBefore(n.find(".page-content").eq(0)):h.insertBefore(s)),r.params.searchContainer&&(f=$(r.params.searchContainer)),v=r.params.inputEl?$(r.params.inputEl):s.find('input[type="search"]').eq(0),r.params.disableButton&&(m=r.params.disableButtonEl?$(r.params.disableButtonEl):s.find(".searchbar-disable-button")),Utils.extend(r,{app:t,view:t.views.get(s.parents(".view")),$el:s,el:s[0],$backdropEl:h,backdropEl:h&&h[0],$searchContainer:f,searchContainer:f&&f[0],$inputEl:v,inputEl:v[0],$disableButtonEl:m,disableButtonEl:m&&m[0],disableButtonHasMargin:!1,$pageEl:n,pageEl:n&&n[0],$navbarEl:d,navbarEl:d&&d[0],$foundEl:o,foundEl:o&&o[0],$notFoundEl:l,notFoundEl:l&&l[0],$hideOnEnableEl:p,hideOnEnableEl:p&&p[0],$hideOnSearchEl:c,hideOnSearchEl:c&&c[0],previousQuery:"",query:"",isVirtualList:f&&f.hasClass("virtual-list"),virtualList:void 0,enabled:!1,expandable:g,inline:b}),r.attachEvents=function(){s.on("submit",y),r.params.disableButton&&r.$disableButtonEl.on("click",E),r.params.disableOnBackdropClick&&r.$backdropEl&&r.$backdropEl.on("click",E),r.expandable&&"ios"===t.theme&&r.view&&d.length&&r.$pageEl&&(r.$pageEl.on("page:beforeout",T),r.$pageEl.on("page:beforein",S)),r.$inputEl.on("focus",w),r.$inputEl.on("blur",C),r.$inputEl.on(r.params.inputEvents,x),r.$inputEl.on("input:clear",k)},r.detachEvents=function(){s.off("submit",y),r.params.disableButton&&r.$disableButtonEl.off("click",E),r.params.disableOnBackdropClick&&r.$backdropEl&&r.$backdropEl.off("click",E),r.expandable&&"ios"===t.theme&&r.view&&d.length&&r.$pageEl&&(r.$pageEl.off("page:beforeout",T),r.$pageEl.off("page:beforein",S)),r.$inputEl.off("focus",w),r.$inputEl.off("blur",C),r.$inputEl.off(r.params.inputEvents,x),r.$inputEl.off("input:clear",k)},r.useModules(),r.init(),r}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.clear=function(e){var t=this;if(!t.query&&e&&$(e.target).hasClass("searchbar-clear"))return t.disable(),t;var a=t.value;return t.$inputEl.val("").trigger("change").focus(),t.$el.trigger("searchbar:clear",a),t.emit("local::clear searchbarClear",t,a),t},t.prototype.setDisableButtonMargin=function(){var e=this;if(!e.expandable){var t=e.app;e.$disableButtonEl.transition(0).show(),e.$disableButtonEl.css("margin-"+(t.rtl?"left":"right"),-e.disableButtonEl.offsetWidth+"px"),e._clientLeft=e.$disableButtonEl[0].clientLeft,e.$disableButtonEl.transition(""),e.disableButtonHasMargin=!0}},t.prototype.enable=function(e){var t=this;if(t.enabled)return t;var a=t.app;function r(){if(t.$backdropEl&&(t.$searchContainer&&t.$searchContainer.length||t.params.customSearch)&&!t.$el.hasClass("searchbar-enabled")&&!t.query&&t.backdropShow(),t.$el.addClass("searchbar-enabled"),(!t.$disableButtonEl||t.$disableButtonEl&&0===t.$disableButtonEl.length)&&t.$el.addClass("searchbar-enabled-no-disable-button"),!t.expandable&&t.$disableButtonEl&&t.$disableButtonEl.length>0&&"md"!==a.theme&&(t.disableButtonHasMargin||t.setDisableButtonMargin(),t.$disableButtonEl.css("margin-"+(a.rtl?"left":"right"),"0px")),t.expandable){var e=t.$el.parents(".navbar");if(e.hasClass("navbar-large")&&t.$pageEl){var r=t.$pageEl.find(".page-content"),i=e.find(".title-large");r.addClass("with-searchbar-expandable-enabled"),e.hasClass("navbar-large")&&e.hasClass("navbar-large-collapsed")&&i.length&&r.length&&(r.transition(0),r[0].scrollTop-=i[0].offsetHeight,setTimeout((function(){r.transition("")}),200))}"md"===a.theme&&e.length?e.addClass("with-searchbar-expandable-enabled"):(e.addClass("with-searchbar-expandable-enabled"),e.hasClass("navbar-large")&&e.addClass("navbar-large-collapsed"))}t.$hideOnEnableEl&&t.$hideOnEnableEl.addClass("hidden-by-searchbar"),t.$el.trigger("searchbar:enable"),t.emit("local::enable searchbarEnable",t)}t.enabled=!0;var i=!1;return!0===e&&doc.activeElement!==t.inputEl&&(i=!0),a.device.ios&&"ios"===a.theme?t.expandable?(i&&t.$inputEl.focus(),r()):(i&&t.$inputEl.focus(),!e||"focus"!==e.type&&!0!==e?r():Utils.nextTick((function(){r()}),400)):(i&&t.$inputEl.focus(),"md"===a.theme&&t.expandable&&t.$el.parents(".page, .view, .navbar-inner, .navbar").scrollLeft(a.rtl?100:0),r()),t},t.prototype.disable=function(){var e=this;if(!e.enabled)return e;var t=e.app;if(e.$inputEl.val("").trigger("change"),e.$el.removeClass("searchbar-enabled searchbar-focused searchbar-enabled-no-disable-button"),e.expandable){var a=e.$el.parents(".navbar"),r=e.$pageEl&&e.$pageEl.find(".page-content");if(a.hasClass("navbar-large")&&r.length){var i=a.find(".title-large");if(e.$el.transitionEnd((function(){r.removeClass("with-searchbar-expandable-closing")})),a.hasClass("navbar-large")&&a.hasClass("navbar-large-collapsed")&&i.length){var n=r[0].scrollTop,s=i[0].offsetHeight;n>s&&(r.transition(0),r[0].scrollTop=n+s,setTimeout((function(){r.transition("")}),200))}r.removeClass("with-searchbar-expandable-enabled").addClass("with-searchbar-expandable-closing")}"md"===t.theme&&a.length?(a.removeClass("with-searchbar-expandable-enabled with-searchbar-expandable-enabled-no-transition").addClass("with-searchbar-expandable-closing"),e.$el.transitionEnd((function(){a.removeClass("with-searchbar-expandable-closing")}))):(a.removeClass("with-searchbar-expandable-enabled with-searchbar-expandable-enabled-no-transition").addClass("with-searchbar-expandable-closing"),e.$el.transitionEnd((function(){a.removeClass("with-searchbar-expandable-closing")})),e.$pageEl&&e.$pageEl.find(".page-content").trigger("scroll"))}return!e.expandable&&e.$disableButtonEl&&e.$disableButtonEl.length>0&&"md"!==t.theme&&e.$disableButtonEl.css("margin-"+(t.rtl?"left":"right"),-e.disableButtonEl.offsetWidth+"px"),e.$backdropEl&&(e.$searchContainer&&e.$searchContainer.length||e.params.customSearch)&&e.backdropHide(),e.enabled=!1,e.$inputEl.blur(),e.$hideOnEnableEl&&e.$hideOnEnableEl.removeClass("hidden-by-searchbar"),e.$el.trigger("searchbar:disable"),e.emit("local::disable searchbarDisable",e),e},t.prototype.toggle=function(){return this.enabled?this.disable():this.enable(!0),this},t.prototype.backdropShow=function(){return this.$backdropEl&&this.$backdropEl.addClass("searchbar-backdrop-in"),this},t.prototype.backdropHide=function(){return this.$backdropEl&&this.$backdropEl.removeClass("searchbar-backdrop-in"),this},t.prototype.search=function(e,t){var a=this;if(a.previousQuery=a.query||"",e===a.previousQuery)return a;t||(a.enabled||a.enable(),a.$inputEl.val(e),a.$inputEl.trigger("input")),a.query=e,a.value=e;var r=a.$searchContainer,i=a.$el,n=a.$foundEl,s=a.$notFoundEl,o=a.$hideOnSearchEl,l=a.isVirtualList;if(e.length>0&&o?o.addClass("hidden-by-searchbar"):o&&o.removeClass("hidden-by-searchbar"),(r&&r.length&&i.hasClass("searchbar-enabled")||a.params.customSearch&&i.hasClass("searchbar-enabled"))&&(0===e.length?a.backdropShow():a.backdropHide()),a.params.customSearch)return i.trigger("searchbar:search",{query:e,previousQuery:a.previousQuery}),a.emit("local::search searchbarSearch",a,e,a.previousQuery),a;var p,c=[];if(l){if(a.virtualList=r[0].f7VirtualList,""===e.trim())return a.virtualList.resetFilter(),s&&s.hide(),n&&n.show(),i.trigger("searchbar:search",{query:e,previousQuery:a.previousQuery}),a.emit("local::search searchbarSearch",a,e,a.previousQuery),a;if(p=a.params.removeDiacritics?Utils.removeDiacritics(e):e,a.virtualList.params.searchAll)c=a.virtualList.params.searchAll(p,a.virtualList.items)||[];else if(a.virtualList.params.searchByItem)for(var d=0;d=0&&(s+=1);s===u.length||a.params.ignore&&r.is(a.params.ignore)?c.push(r[0]):r.addClass("hidden-by-searchbar")})),a.params.hideDividers&&r.find(a.params.searchGroupTitle).each((function(e,t){for(var r=$(t),i=r.nextAll(a.params.searchItem),n=!0,s=0;s0&&e.$navbarEl.find(".searchbar-init").each((function(e,a){var r=$(a);t.searchbar.create(Utils.extend(r.dataset(),{el:a}))}))},pageBeforeRemove:function(e){e.$el.find(".searchbar-init").each((function(e,t){t.f7Searchbar&&t.f7Searchbar.destroy&&t.f7Searchbar.destroy()})),"ios"===this.theme&&e.view&&e.view.router.dynamicNavbar&&e.$navbarEl&&e.$navbarEl.length>0&&e.$navbarEl.find(".searchbar-init").each((function(e,t){t.f7Searchbar&&t.f7Searchbar.destroy&&t.f7Searchbar.destroy()}))}},clicks:{".searchbar-clear":function(e,t){void 0===t&&(t={});var a=this.searchbar.get(t.searchbar);a&&a.clear()},".searchbar-enable":function(e,t){void 0===t&&(t={});var a=this.searchbar.get(t.searchbar);a&&a.enable(!0)},".searchbar-disable":function(e,t){void 0===t&&(t={});var a=this.searchbar.get(t.searchbar);a&&a.disable()},".searchbar-toggle":function(e,t){void 0===t&&(t={});var a=this.searchbar.get(t.searchbar);a&&a.toggle()}},vnode:{"searchbar-init":{insert:function(e){var t=e.elm,a=$(t);this.searchbar.create(Utils.extend(a.dataset(),{el:t}))},destroy:function(e){var t=e.elm;t.f7Searchbar&&t.f7Searchbar.destroy&&t.f7Searchbar.destroy()}}}},Messages=function(e){function t(t,a){void 0===a&&(a={}),e.call(this,a,[t]);var r=this,i={autoLayout:!0,messages:[],newMessagesFirst:!1,scrollMessages:!0,scrollMessagesOnEdge:!0,firstMessageRule:void 0,lastMessageRule:void 0,tailMessageRule:void 0,sameNameMessageRule:void 0,sameHeaderMessageRule:void 0,sameFooterMessageRule:void 0,sameAvatarMessageRule:void 0,customClassMessageRule:void 0,renderMessage:void 0};r.useModulesParams(i),r.params=Utils.extend(i,a);var n=$(a.el).eq(0);if(0===n.length)return r;if(n[0].f7Messages)return n[0].f7Messages;n[0].f7Messages=r;var s=n.closest(".page-content").eq(0);return Utils.extend(r,{messages:r.params.messages,$el:n,el:n[0],$pageContentEl:s,pageContentEl:s[0]}),r.useModules(),r.init(),r}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.getMessageData=function(e){var t=$(e),a={name:t.find(".message-name").html(),header:t.find(".message-header").html(),textHeader:t.find(".message-text-header").html(),textFooter:t.find(".message-text-footer").html(),footer:t.find(".message-footer").html(),isTitle:t.hasClass("messages-title"),type:t.hasClass("message-sent")?"sent":"received",text:t.find(".message-text").html(),image:t.find(".message-image").html(),imageSrc:t.find(".message-image img").attr("src"),typing:t.hasClass("message-typing")};a.isTitle&&(a.text=t.html()),a.text&&a.textHeader&&(a.text=a.text.replace('
                    '+a.textHeader+"
                    ","")),a.text&&a.textFooter&&(a.text=a.text.replace('",""));var r=t.find(".message-avatar").css("background-image");return"none"!==r&&""!==r||(r=void 0),r=r&&"string"==typeof r?r.replace("url(","").replace(")","").replace(/"/g,"").replace(/'/g,""):void 0,a.avatar=r,a},t.prototype.getMessagesData=function(){var e=this,t=[];return e.$el.find(".message, .messages-title").each((function(a,r){t.push(e.getMessageData(r))})),t},t.prototype.renderMessage=function(e){var t=this,a=Utils.extend({type:"sent",attrs:{}},e);if(t.params.renderMessage)return t.params.renderMessage.call(t,a);if(a.isTitle)return'
                    '+a.text+"
                    ";var r=Object.keys(a.attrs).map((function(e){return e+'="'+a.attrs[e]+'"'})).join(" ");return'\n
                    \n "+(a.avatar?'\n
                    \n ':"")+'\n
                    \n '+(a.name?'
                    '+a.name+"
                    ":"")+"\n "+(a.header?'
                    '+a.header+"
                    ":"")+'\n
                    \n '+(a.textHeader?'
                    '+a.textHeader+"
                    ":"")+"\n "+(a.image?'
                    '+a.image+"
                    ":"")+"\n "+(a.imageSrc&&!a.image?'
                    ':"")+"\n "+(a.text||a.isTyping?'
                    '+(a.text||"")+(a.isTyping?'
                    ':"")+"
                    ":"")+"\n "+(a.textFooter?'":"")+"\n
                    \n "+(a.footer?'":"")+"\n
                    \n
                    \n "},t.prototype.renderMessages=function(e,t){void 0===e&&(e=this.messages),void 0===t&&(t=this.params.newMessagesFirst?"prepend":"append");var a=this,r=e.map((function(e){return a.renderMessage(e)})).join("");a.$el[t](r)},t.prototype.isFirstMessage=function(){for(var e,t=[],a=arguments.length;a--;)t[a]=arguments[a];var r=this;return!!r.params.firstMessageRule&&(e=r.params).firstMessageRule.apply(e,t)},t.prototype.isLastMessage=function(){for(var e,t=[],a=arguments.length;a--;)t[a]=arguments[a];var r=this;return!!r.params.lastMessageRule&&(e=r.params).lastMessageRule.apply(e,t)},t.prototype.isTailMessage=function(){for(var e,t=[],a=arguments.length;a--;)t[a]=arguments[a];var r=this;return!!r.params.tailMessageRule&&(e=r.params).tailMessageRule.apply(e,t)},t.prototype.isSameNameMessage=function(){for(var e,t=[],a=arguments.length;a--;)t[a]=arguments[a];var r=this;return!!r.params.sameNameMessageRule&&(e=r.params).sameNameMessageRule.apply(e,t)},t.prototype.isSameHeaderMessage=function(){for(var e,t=[],a=arguments.length;a--;)t[a]=arguments[a];var r=this;return!!r.params.sameHeaderMessageRule&&(e=r.params).sameHeaderMessageRule.apply(e,t)},t.prototype.isSameFooterMessage=function(){for(var e,t=[],a=arguments.length;a--;)t[a]=arguments[a];var r=this;return!!r.params.sameFooterMessageRule&&(e=r.params).sameFooterMessageRule.apply(e,t)},t.prototype.isSameAvatarMessage=function(){for(var e,t=[],a=arguments.length;a--;)t[a]=arguments[a];var r=this;return!!r.params.sameAvatarMessageRule&&(e=r.params).sameAvatarMessageRule.apply(e,t)},t.prototype.isCustomClassMessage=function(){for(var e,t=[],a=arguments.length;a--;)t[a]=arguments[a];var r=this;if(r.params.customClassMessageRule)return(e=r.params).customClassMessageRule.apply(e,t)},t.prototype.layout=function(){var e=this;e.$el.find(".message, .messages-title").each((function(t,a){var r=$(a);e.messages||(e.messages=e.getMessagesData());var i=[],n=e.messages[t],s=e.messages[t-1],o=e.messages[t+1];e.isFirstMessage(n,s,o)&&i.push("message-first"),e.isLastMessage(n,s,o)&&i.push("message-last"),e.isTailMessage(n,s,o)&&i.push("message-tail"),e.isSameNameMessage(n,s,o)&&i.push("message-same-name"),e.isSameHeaderMessage(n,s,o)&&i.push("message-same-header"),e.isSameFooterMessage(n,s,o)&&i.push("message-same-footer"),e.isSameAvatarMessage(n,s,o)&&i.push("message-same-avatar");var l=e.isCustomClassMessage(n,s,o);l&&l.length&&("string"==typeof l&&(l=l.split(" ")),l.forEach((function(e){i.push(e)}))),r.removeClass("message-first message-last message-tail message-same-name message-same-header message-same-footer message-same-avatar"),i.forEach((function(e){r.addClass(e)}))}))},t.prototype.clear=function(){this.messages=[],this.$el.html("")},t.prototype.removeMessage=function(e,t){void 0===t&&(t=!0);var a,r,i=this;return"number"==typeof e?(a=e,r=i.$el.find(".message, .messages-title").eq(a)):i.messages&&i.messages.indexOf(e)>=0?(a=i.messages.indexOf(e),r=i.$el.children().eq(a)):a=(r=$(e)).index(),0===r.length||(r.remove(),i.messages.splice(a,1),i.params.autoLayout&&t&&i.layout()),i},t.prototype.removeMessages=function(e,t){void 0===t&&(t=!0);var a=this;if(Array.isArray(e)){var r=[];e.forEach((function(e){r.push(a.$el.find(".message, .messages-title").eq(e))})),r.forEach((function(e){a.removeMessage(e,!1)}))}else $(e).each((function(e,t){a.removeMessage(t,!1)}));return a.params.autoLayout&&t&&a.layout(),a},t.prototype.addMessage=function(){for(var e,t,a=[],r=arguments.length;r--;)a[r]=arguments[r];var i,n,s,o=this;return"boolean"==typeof a[1]?(i=(e=a)[0],n=e[1],s=e[2]):(i=(t=a)[0],s=t[1],n=t[2]),void 0===n&&(n=!0),void 0===s&&(s=o.params.newMessagesFirst?"prepend":"append"),o.addMessages([i],n,s)},t.prototype.addMessages=function(){for(var e,t,a=[],r=arguments.length;r--;)a[r]=arguments[r];var i,n,s,o=this;"boolean"==typeof a[1]?(i=(e=a)[0],n=e[1],s=e[2]):(i=(t=a)[0],s=t[1],n=t[2]),void 0===n&&(n=!0),void 0===s&&(s=o.params.newMessagesFirst?"prepend":"append");var l=o.pageContentEl.scrollHeight,p=o.pageContentEl.offsetHeight,c=o.pageContentEl.scrollTop,d="",u=o.messages.filter((function(e){return e.isTyping}))[0];i.forEach((function(e){u?"append"===s?o.messages.splice(o.messages.indexOf(u),0,e):o.messages.splice(o.messages.indexOf(u)+1,0,e):o.messages["append"===s?"push":"unshift"](e),d+=o.renderMessage(e)}));var h=$(d);if(n&&("append"!==s||o.params.newMessagesFirst||h.addClass("message-appear-from-bottom"),"prepend"===s&&o.params.newMessagesFirst&&h.addClass("message-appear-from-top")),u?"append"===s?h.insertBefore(o.$el.find(".message-typing")):h.insertAfter(o.$el.find(".message-typing")):o.$el[s](h),o.params.autoLayout&&o.layout(),"prepend"!==s||u||(o.pageContentEl.scrollTop=c+(o.pageContentEl.scrollHeight-l)),o.params.scrollMessages&&("append"===s&&!o.params.newMessagesFirst||"prepend"===s&&o.params.newMessagesFirst&&!u))if(o.params.scrollMessagesOnEdge){var f=!1;o.params.newMessagesFirst&&0===c&&(f=!0),!o.params.newMessagesFirst&&c-(l-p)>=-10&&(f=!0),f&&o.scroll(n?void 0:0)}else o.scroll(n?void 0:0);return o},t.prototype.showTyping=function(e){void 0===e&&(e={});var t=this,a=t.messages.filter((function(e){return e.isTyping}))[0];return a&&t.removeMessage(t.messages.indexOf(a)),t.addMessage(Utils.extend({type:"received",isTyping:!0},e)),t},t.prototype.hideTyping=function(){var e,t,a=this;if(a.messages.forEach((function(t,a){t.isTyping&&(e=a)})),void 0!==e&&a.$el.find(".message").eq(e).hasClass("message-typing")&&(t=!0,a.removeMessage(e)),!t){var r=a.$el.find(".message-typing");r.length&&a.removeMessage(r)}return a},t.prototype.scroll=function(e,t){void 0===e&&(e=300);var a,r=this,i=r.pageContentEl.scrollTop;if(void 0!==t)a=t;else if((a=r.params.newMessagesFirst?0:r.pageContentEl.scrollHeight-r.pageContentEl.offsetHeight)===i)return r;return r.$pageContentEl.scrollTop(a,e),r},t.prototype.init=function(){var e=this;e.messages&&0!==e.messages.length||(e.messages=e.getMessagesData()),e.params.messages&&e.params.messages.length&&e.renderMessages(),e.params.autoLayout&&e.layout(),e.params.scrollMessages&&e.scroll(0)},t.prototype.destroy=function(){var e=this;e.emit("local::beforeDestroy messagesBeforeDestroy",e),e.$el.trigger("messages:beforedestroy"),e.$el[0]&&(e.$el[0].f7Messages=null,delete e.$el[0].f7Messages),Utils.deleteProps(e)},t}(Framework7Class),Messages$1={name:"messages",static:{Messages:Messages},create:function(){this.messages=ConstructorMethods({defaultSelector:".messages",constructor:Messages,app:this,domProp:"f7Messages",addMethods:"renderMessages layout scroll clear removeMessage removeMessages addMessage addMessages".split(" ")})},on:{tabBeforeRemove:function(e){var t=this;$(e).find(".messages-init").each((function(e,a){t.messages.destroy(a)}))},tabMounted:function(e){var t=this;$(e).find(".messages-init").each((function(e,a){t.messages.create({el:a})}))},pageBeforeRemove:function(e){var t=this;e.$el.find(".messages-init").each((function(e,a){t.messages.destroy(a)}))},pageInit:function(e){var t=this;e.$el.find(".messages-init").each((function(e,a){t.messages.create({el:a})}))}},vnode:{"messages-init":{insert:function(e){var t=e.elm;this.messages.create({el:t})},destroy:function(e){var t=e.elm;this.messages.destroy(t)}}}},Messagebar=function(e){function t(t,a){void 0===a&&(a={}),e.call(this,a,[t]);var r=this,i={top:!1,topOffset:0,bottomOffset:0,attachments:[],renderAttachments:void 0,renderAttachment:void 0,maxHeight:null,resizePage:!0};r.useModulesParams(i),r.params=Utils.extend(i,a);var n=$(r.params.el);if(0===n.length)return r;if(n[0].f7Messagebar)return n[0].f7Messagebar;n[0].f7Messagebar=r;var s,o=n.parents(".page").eq(0),l=o.find(".page-content").eq(0),p=n.find(".messagebar-area");s=r.params.textareaEl?$(r.params.textareaEl):n.find("textarea");var c=n.find(".messagebar-attachments"),d=n.find(".messagebar-sheet");function u(){r.params.resizePage&&r.resizePage()}function h(e){e.preventDefault()}function f(e){var t=$(this).index();$(e.target).closest(".messagebar-attachment-delete").length?($(this).trigger("messagebar:attachmentdelete",t),r.emit("local::attachmentDelete messagebarAttachmentDelete",r,this,t)):($(this).trigger("messagebar:attachmentclick",t),r.emit("local::attachmentClick messagebarAttachmentClick",r,this,t))}function v(){r.checkEmptyState(),r.$el.trigger("messagebar:change"),r.emit("local::change messagebarChange",r)}function m(){r.sheetHide(),r.$el.addClass("messagebar-focused"),r.$el.trigger("messagebar:focus"),r.emit("local::focus messagebarFocus",r)}function g(){r.$el.removeClass("messagebar-focused"),r.$el.trigger("messagebar:blur"),r.emit("local::blur messagebarBlur",r)}return r.params.top&&n.addClass("messagebar-top"),Utils.extend(r,{$el:n,el:n[0],$areaEl:p,areaEl:p[0],$textareaEl:s,textareaEl:s[0],$attachmentsEl:c,attachmentsEl:c[0],attachmentsVisible:c.hasClass("messagebar-attachments-visible"),$sheetEl:d,sheetEl:d[0],sheetVisible:d.hasClass("messagebar-sheet-visible"),$pageEl:o,pageEl:o[0],$pageContentEl:l,pageContentEl:l,top:n.hasClass("messagebar-top")||r.params.top,attachments:[]}),r.attachEvents=function(){n.on("textarea:resize",u),n.on("submit",h),n.on("click",".messagebar-attachment",f),s.on("change input",v),s.on("focus",m),s.on("blur",g),t.on("resize",u)},r.detachEvents=function(){n.off("textarea:resize",u),n.off("submit",h),n.off("click",".messagebar-attachment",f),s.off("change input",v),s.off("focus",m),s.off("blur",g),t.off("resize",u)},r.useModules(),r.init(),r}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.focus=function(){return this.$textareaEl.focus(),this},t.prototype.blur=function(){return this.$textareaEl.blur(),this},t.prototype.clear=function(){return this.$textareaEl.val("").trigger("change"),this},t.prototype.getValue=function(){return this.$textareaEl.val().trim()},t.prototype.setValue=function(e){return this.$textareaEl.val(e).trigger("change"),this},t.prototype.setPlaceholder=function(e){return this.$textareaEl.attr("placeholder",e),this},t.prototype.resizePage=function(){var e=this.params,t=this.$el,a=this.top,r=this.$pageEl,i=this.$pageContentEl,n=this.$areaEl,s=this.$textareaEl,o=this.$sheetEl,l=this.$attachmentsEl,p=t[0].offsetHeight,c=e.maxHeight;if(a);else{var d=parseInt(i.css("padding-bottom"),10),u=p+e.bottomOffset;if(u!==d&&i.length){var h=parseInt(i.css("padding-top"),10),f=i[0].scrollHeight,v=i[0].offsetHeight,m=i[0].scrollTop===f-v;c||(c=r[0].offsetHeight-h-o.outerHeight()-l.outerHeight()-parseInt(n.css("margin-top"),10)-parseInt(n.css("margin-bottom"),10)),s.css("max-height",c+"px"),i.css("padding-bottom",u+"px"),m&&i.scrollTop(i[0].scrollHeight-v),t.trigger("messagebar:resizepage"),this.emit("local::resizePage messagebarResizePage",this)}}},t.prototype.checkEmptyState=function(){var e=this.$el,t=this.$textareaEl.val().trim();t&&t.length?e.addClass("messagebar-with-value"):e.removeClass("messagebar-with-value")},t.prototype.attachmentsCreate=function(e){void 0===e&&(e="");var t=$('
                    '+e+"
                    ");return t.insertBefore(this.$textareaEl),Utils.extend(this,{$attachmentsEl:t,attachmentsEl:t[0]}),this},t.prototype.attachmentsShow=function(e){void 0===e&&(e="");return this.$attachmentsEl=this.$el.find(".messagebar-attachments"),0===this.$attachmentsEl.length&&this.attachmentsCreate(e),this.$el.addClass("messagebar-attachments-visible"),this.attachmentsVisible=!0,this.params.resizePage&&this.resizePage(),this},t.prototype.attachmentsHide=function(){return this.$el.removeClass("messagebar-attachments-visible"),this.attachmentsVisible=!1,this.params.resizePage&&this.resizePage(),this},t.prototype.attachmentsToggle=function(){return this.attachmentsVisible?this.attachmentsHide():this.attachmentsShow(),this},t.prototype.renderAttachment=function(e){return this.params.renderAttachment?this.params.renderAttachment.call(this,e):'\n
                    \n \n \n
                    \n '},t.prototype.renderAttachments=function(){var e,t=this;e=t.params.renderAttachments?t.params.renderAttachments.call(t,t.attachments):""+t.attachments.map((function(e){return t.renderAttachment(e)})).join(""),0===t.$attachmentsEl.length?t.attachmentsCreate(e):t.$attachmentsEl.html(e)},t.prototype.sheetCreate=function(e){void 0===e&&(e="");var t=$('
                    '+e+"
                    ");return this.$el.append(t),Utils.extend(this,{$sheetEl:t,sheetEl:t[0]}),this},t.prototype.sheetShow=function(e){void 0===e&&(e="");return this.$sheetEl=this.$el.find(".messagebar-sheet"),0===this.$sheetEl.length&&this.sheetCreate(e),this.$el.addClass("messagebar-sheet-visible"),this.sheetVisible=!0,this.params.resizePage&&this.resizePage(),this},t.prototype.sheetHide=function(){return this.$el.removeClass("messagebar-sheet-visible"),this.sheetVisible=!1,this.params.resizePage&&this.resizePage(),this},t.prototype.sheetToggle=function(){return this.sheetVisible?this.sheetHide():this.sheetShow(),this},t.prototype.init=function(){return this.attachEvents(),this.checkEmptyState(),this},t.prototype.destroy=function(){this.emit("local::beforeDestroy messagebarBeforeDestroy",this),this.$el.trigger("messagebar:beforedestroy"),this.detachEvents(),this.$el[0]&&(this.$el[0].f7Messagebar=null,delete this.$el[0].f7Messagebar),Utils.deleteProps(this)},t}(Framework7Class),Messagebar$1={name:"messagebar",static:{Messagebar:Messagebar},create:function(){this.messagebar=ConstructorMethods({defaultSelector:".messagebar",constructor:Messagebar,app:this,domProp:"f7Messagebar",addMethods:"clear getValue setValue setPlaceholder resizePage focus blur attachmentsCreate attachmentsShow attachmentsHide attachmentsToggle renderAttachments sheetCreate sheetShow sheetHide sheetToggle".split(" ")})},on:{tabBeforeRemove:function(e){var t=this;$(e).find(".messagebar-init").each((function(e,a){t.messagebar.destroy(a)}))},tabMounted:function(e){var t=this;$(e).find(".messagebar-init").each((function(e,a){t.messagebar.create(Utils.extend({el:a},$(a).dataset()))}))},pageBeforeRemove:function(e){var t=this;e.$el.find(".messagebar-init").each((function(e,a){t.messagebar.destroy(a)}))},pageInit:function(e){var t=this;e.$el.find(".messagebar-init").each((function(e,a){t.messagebar.create(Utils.extend({el:a},$(a).dataset()))}))}},vnode:{"messagebar-init":{insert:function(e){var t=e.elm;this.messagebar.create(Utils.extend({el:t},$(t).dataset()))},destroy:function(e){var t=e.elm;this.messagebar.destroy(t)}}}};function updateSize(){var e,t,a=this.$el;e=void 0!==this.params.width?this.params.width:a[0].clientWidth,t=void 0!==this.params.height?this.params.height:a[0].clientHeight,0===e&&this.isHorizontal()||0===t&&this.isVertical()||(e=e-parseInt(a.css("padding-left"),10)-parseInt(a.css("padding-right"),10),t=t-parseInt(a.css("padding-top"),10)-parseInt(a.css("padding-bottom"),10),Utils.extend(this,{width:e,height:t,size:this.isHorizontal()?e:t}))}function updateSlides(){var e=this.params,t=this.$wrapperEl,a=this.size,r=this.rtlTranslate,i=this.wrongRTL,n=this.virtual&&e.virtual.enabled,s=n?this.virtual.slides.length:this.slides.length,o=t.children("."+this.params.slideClass),l=n?this.virtual.slides.length:o.length,p=[],c=[],d=[];function u(t){return!e.cssMode||t!==o.length-1}var h=e.slidesOffsetBefore;"function"==typeof h&&(h=e.slidesOffsetBefore.call(this));var f=e.slidesOffsetAfter;"function"==typeof f&&(f=e.slidesOffsetAfter.call(this));var v=this.snapGrid.length,m=this.snapGrid.length,g=e.spaceBetween,b=-h,y=0,w=0;if(void 0!==a){var C,x;"string"==typeof g&&g.indexOf("%")>=0&&(g=parseFloat(g.replace("%",""))/100*a),this.virtualSize=-g,r?o.css({marginLeft:"",marginTop:""}):o.css({marginRight:"",marginBottom:""}),e.slidesPerColumn>1&&(C=Math.floor(l/e.slidesPerColumn)===l/this.params.slidesPerColumn?l:Math.ceil(l/e.slidesPerColumn)*e.slidesPerColumn,"auto"!==e.slidesPerView&&"row"===e.slidesPerColumnFill&&(C=Math.max(C,e.slidesPerView*e.slidesPerColumn)));for(var $,k=e.slidesPerColumn,E=C/k,T=Math.floor(l/e.slidesPerColumn),S=0;S1){var P=void 0,O=void 0,I=void 0;if("row"===e.slidesPerColumnFill&&e.slidesPerGroup>1){var D=Math.floor(S/(e.slidesPerGroup*e.slidesPerColumn)),B=S-e.slidesPerColumn*e.slidesPerGroup*D,R=0===D?e.slidesPerGroup:Math.min(Math.ceil((l-D*k*e.slidesPerGroup)/k),e.slidesPerGroup);P=(O=B-(I=Math.floor(B/R))*R+D*e.slidesPerGroup)+I*C/k,M.css({"-webkit-box-ordinal-group":P,"-moz-box-ordinal-group":P,"-ms-flex-order":P,"-webkit-order":P,order:P})}else"column"===e.slidesPerColumnFill?(I=S-(O=Math.floor(S/k))*k,(O>T||O===T&&I===k-1)&&(I+=1)>=k&&(I=0,O+=1)):O=S-(I=Math.floor(S/E))*E;M.css("margin-"+(this.isHorizontal()?"top":"left"),0!==I&&e.spaceBetween&&e.spaceBetween+"px")}if("none"!==M.css("display")){if("auto"===e.slidesPerView){var z=win.getComputedStyle(M[0],null),L=M[0].style.transform,H=M[0].style.webkitTransform;if(L&&(M[0].style.transform="none"),H&&(M[0].style.webkitTransform="none"),e.roundLengths)x=this.isHorizontal()?M.outerWidth(!0):M.outerHeight(!0);else if(this.isHorizontal()){var A=parseFloat(z.getPropertyValue("width")),U=parseFloat(z.getPropertyValue("padding-left")),N=parseFloat(z.getPropertyValue("padding-right")),F=parseFloat(z.getPropertyValue("margin-left")),V=parseFloat(z.getPropertyValue("margin-right")),q=z.getPropertyValue("box-sizing");x=q&&"border-box"===q?A+F+V:A+U+N+F+V}else{var j=parseFloat(z.getPropertyValue("height")),Y=parseFloat(z.getPropertyValue("padding-top")),W=parseFloat(z.getPropertyValue("padding-bottom")),_=parseFloat(z.getPropertyValue("margin-top")),X=parseFloat(z.getPropertyValue("margin-bottom")),G=z.getPropertyValue("box-sizing");x=G&&"border-box"===G?j+_+X:j+Y+W+_+X}L&&(M[0].style.transform=L),H&&(M[0].style.webkitTransform=H),e.roundLengths&&(x=Math.floor(x))}else x=(a-(e.slidesPerView-1)*g)/e.slidesPerView,e.roundLengths&&(x=Math.floor(x)),o[S]&&(this.isHorizontal()?o[S].style.width=x+"px":o[S].style.height=x+"px");o[S]&&(o[S].swiperSlideSize=x),d.push(x),e.centeredSlides?(b=b+x/2+y/2+g,0===y&&0!==S&&(b=b-a/2-g),0===S&&(b=b-a/2-g),Math.abs(b)<.001&&(b=0),e.roundLengths&&(b=Math.floor(b)),w%e.slidesPerGroup==0&&p.push(b),c.push(b)):(e.roundLengths&&(b=Math.floor(b)),(w-Math.min(this.params.slidesPerGroupSkip,w))%this.params.slidesPerGroup==0&&p.push(b),c.push(b),b=b+x+g),this.virtualSize+=x+g,y=x,w+=1}}if(this.virtualSize=Math.max(this.virtualSize,a)+f,r&&i&&("slide"===e.effect||"coverflow"===e.effect)&&t.css({width:this.virtualSize+e.spaceBetween+"px"}),e.setWrapperSize&&(this.isHorizontal()?t.css({width:this.virtualSize+e.spaceBetween+"px"}):t.css({height:this.virtualSize+e.spaceBetween+"px"})),e.slidesPerColumn>1&&(this.virtualSize=(x+e.spaceBetween)*C,this.virtualSize=Math.ceil(this.virtualSize/e.slidesPerColumn)-e.spaceBetween,this.isHorizontal()?t.css({width:this.virtualSize+e.spaceBetween+"px"}):t.css({height:this.virtualSize+e.spaceBetween+"px"}),e.centeredSlides)){$=[];for(var K=0;K1&&p.push(this.virtualSize-a)}if(0===p.length&&(p=[0]),0!==e.spaceBetween&&(this.isHorizontal()?r?o.filter(u).css({marginLeft:g+"px"}):o.filter(u).css({marginRight:g+"px"}):o.filter(u).css({marginBottom:g+"px"})),e.centeredSlides&&e.centeredSlidesBounds){var ee=0;d.forEach((function(t){ee+=t+(e.spaceBetween?e.spaceBetween:0)}));var te=(ee-=e.spaceBetween)-a;p=p.map((function(e){return e<0?-h:e>te?te+f:e}))}if(e.centerInsufficientSlides){var ae=0;if(d.forEach((function(t){ae+=t+(e.spaceBetween?e.spaceBetween:0)})),(ae-=e.spaceBetween)1)if(this.params.centeredSlides)this.visibleSlides.each((function(e,t){a.push(t)}));else for(t=0;tthis.slides.length)break;a.push(this.slides.eq(i)[0])}else a.push(this.slides.eq(this.activeIndex)[0]);for(t=0;tr?n:r}r&&this.$wrapperEl.css("height",r+"px")}function updateSlidesOffset(){for(var e=this.slides,t=0;t=0&&l1&&p<=this.size||l<=0&&p>=this.size)&&(this.visibleSlides.push(s),this.visibleSlidesIndexes.push(n),a.eq(n).addClass(t.slideVisibleClass))}s.progress=r?-o:o}this.visibleSlides=$(this.visibleSlides)}}function updateProgress(e){if(void 0===e){var t=this.rtlTranslate?-1:1;e=this&&this.translate&&this.translate*t||0}var a=this.params,r=this.maxTranslate()-this.minTranslate(),i=this.progress,n=this.isBeginning,s=this.isEnd,o=n,l=s;0===r?(i=0,n=!0,s=!0):(n=(i=(e-this.minTranslate())/r)<=0,s=i>=1),Utils.extend(this,{progress:i,isBeginning:n,isEnd:s}),(a.watchSlidesProgress||a.watchSlidesVisibility||a.centeredSlides&&a.autoHeight)&&this.updateSlidesProgress(e),n&&!o&&this.emit("reachBeginning toEdge"),s&&!l&&this.emit("reachEnd toEdge"),(o&&!n||l&&!s)&&this.emit("fromEdge"),this.emit("progress",i)}function updateSlidesClasses(){var e,t=this.slides,a=this.params,r=this.$wrapperEl,i=this.activeIndex,n=this.realIndex,s=this.virtual&&a.virtual.enabled;t.removeClass(a.slideActiveClass+" "+a.slideNextClass+" "+a.slidePrevClass+" "+a.slideDuplicateActiveClass+" "+a.slideDuplicateNextClass+" "+a.slideDuplicatePrevClass),(e=s?this.$wrapperEl.find("."+a.slideClass+'[data-swiper-slide-index="'+i+'"]'):t.eq(i)).addClass(a.slideActiveClass),a.loop&&(e.hasClass(a.slideDuplicateClass)?r.children("."+a.slideClass+":not(."+a.slideDuplicateClass+')[data-swiper-slide-index="'+n+'"]').addClass(a.slideDuplicateActiveClass):r.children("."+a.slideClass+"."+a.slideDuplicateClass+'[data-swiper-slide-index="'+n+'"]').addClass(a.slideDuplicateActiveClass));var o=e.nextAll("."+a.slideClass).eq(0).addClass(a.slideNextClass);a.loop&&0===o.length&&(o=t.eq(0)).addClass(a.slideNextClass);var l=e.prevAll("."+a.slideClass).eq(0).addClass(a.slidePrevClass);a.loop&&0===l.length&&(l=t.eq(-1)).addClass(a.slidePrevClass),a.loop&&(o.hasClass(a.slideDuplicateClass)?r.children("."+a.slideClass+":not(."+a.slideDuplicateClass+')[data-swiper-slide-index="'+o.attr("data-swiper-slide-index")+'"]').addClass(a.slideDuplicateNextClass):r.children("."+a.slideClass+"."+a.slideDuplicateClass+'[data-swiper-slide-index="'+o.attr("data-swiper-slide-index")+'"]').addClass(a.slideDuplicateNextClass),l.hasClass(a.slideDuplicateClass)?r.children("."+a.slideClass+":not(."+a.slideDuplicateClass+')[data-swiper-slide-index="'+l.attr("data-swiper-slide-index")+'"]').addClass(a.slideDuplicatePrevClass):r.children("."+a.slideClass+"."+a.slideDuplicateClass+'[data-swiper-slide-index="'+l.attr("data-swiper-slide-index")+'"]').addClass(a.slideDuplicatePrevClass))}function updateActiveIndex(e){var t,a=this.rtlTranslate?this.translate:-this.translate,r=this.slidesGrid,i=this.snapGrid,n=this.params,s=this.activeIndex,o=this.realIndex,l=this.snapIndex,p=e;if(void 0===p){for(var c=0;c=r[c]&&a=r[c]&&a=r[c]&&(p=c);n.normalizeSlideIndex&&(p<0||void 0===p)&&(p=0)}if(i.indexOf(a)>=0)t=i.indexOf(a);else{var d=Math.min(n.slidesPerGroupSkip,p);t=d+Math.floor((p-d)/n.slidesPerGroup)}if(t>=i.length&&(t=i.length-1),p!==s){var u=parseInt(this.slides.eq(p).attr("data-swiper-slide-index")||p,10);Utils.extend(this,{snapIndex:t,realIndex:u,previousIndex:s,activeIndex:p}),this.emit("activeIndexChange"),this.emit("snapIndexChange"),o!==u&&this.emit("realIndexChange"),(this.initialized||this.params.runCallbacksOnInit)&&this.emit("slideChange")}else t!==l&&(this.snapIndex=t,this.emit("snapIndexChange"))}function updateClickedSlide(e){var t=this.params,a=$(e.target).closest("."+t.slideClass)[0],r=!1;if(a)for(var i=0;ic?c:r&&ei?"next":ar?"next":a=l.length&&(v=l.length-1),(d||o.initialSlide||0)===(c||0)&&a&&n.emit("beforeSlideChangeStart");var m,g=-l[v];if(n.updateProgress(g),o.normalizeSlideIndex)for(var b=0;b=Math.floor(100*p[b])&&(s=b);if(n.initialized&&s!==d){if(!n.allowSlideNext&&gn.translate&&g>n.maxTranslate()&&(d||0)!==s)return!1}if(m=s>d?"next":s=e&&(u=e)})),void 0!==u&&(p=s.indexOf(u))<0&&(p=this.activeIndex-1),this.slideTo(p,e,t,a)}function slideReset(e,t,a){void 0===e&&(e=this.params.speed),void 0===t&&(t=!0);return this.slideTo(this.activeIndex,e,t,a)}function slideToClosest(e,t,a,r){void 0===e&&(e=this.params.speed),void 0===t&&(t=!0),void 0===r&&(r=.5);var i=this.activeIndex,n=Math.min(this.params.slidesPerGroupSkip,i),s=n+Math.floor((i-n)/this.params.slidesPerGroup),o=this.rtlTranslate?this.translate:-this.translate;if(o>=this.snapGrid[s]){var l=this.snapGrid[s];o-l>(this.snapGrid[s+1]-l)*r&&(i+=this.params.slidesPerGroup)}else{var p=this.snapGrid[s-1];o-p<=(this.snapGrid[s]-p)*r&&(i-=this.params.slidesPerGroup)}return i=Math.max(i,0),i=Math.min(i,this.slidesGrid.length-1),this.slideTo(i,e,t,a)}function slideToClickedSlide(){var e,t=this,a=t.params,r=t.$wrapperEl,i="auto"===a.slidesPerView?t.slidesPerViewDynamic():a.slidesPerView,n=t.clickedIndex;if(a.loop){if(t.animating)return;e=parseInt($(t.clickedSlide).attr("data-swiper-slide-index"),10),a.centeredSlides?nt.slides.length-t.loopedSlides+i/2?(t.loopFix(),n=r.children("."+a.slideClass+'[data-swiper-slide-index="'+e+'"]:not(.'+a.slideDuplicateClass+")").eq(0).index(),Utils.nextTick((function(){t.slideTo(n)}))):t.slideTo(n):n>t.slides.length-i?(t.loopFix(),n=r.children("."+a.slideClass+'[data-swiper-slide-index="'+e+'"]:not(.'+a.slideDuplicateClass+")").eq(0).index(),Utils.nextTick((function(){t.slideTo(n)}))):t.slideTo(n)}else t.slideTo(n)}var slide={slideTo:slideTo,slideToLoop:slideToLoop,slideNext:slideNext,slidePrev:slidePrev,slideReset:slideReset,slideToClosest:slideToClosest,slideToClickedSlide:slideToClickedSlide};function loopCreate(){var e=this,t=e.params,a=e.$wrapperEl;a.children("."+t.slideClass+"."+t.slideDuplicateClass).remove();var r=a.children("."+t.slideClass);if(t.loopFillGroupWithBlank){var i=t.slidesPerGroup-r.length%t.slidesPerGroup;if(i!==t.slidesPerGroup){for(var n=0;nr.length&&(e.loopedSlides=r.length);var o=[],l=[];r.each((function(t,a){var i=$(a);t=r.length-e.loopedSlides&&o.push(a),i.attr("data-swiper-slide-index",t)}));for(var p=0;p=0;c-=1)a.prepend($(o[c].cloneNode(!0)).addClass(t.slideDuplicateClass))}function loopFix(){this.emit("beforeLoopFix");var e,t=this.activeIndex,a=this.slides,r=this.loopedSlides,i=this.allowSlidePrev,n=this.allowSlideNext,s=this.snapGrid,o=this.rtlTranslate;this.allowSlidePrev=!0,this.allowSlideNext=!0;var l=-s[t]-this.getTranslate();if(t=a.length-r){e=-a.length+t+r,e+=r,this.slideTo(e,0,!1,!0)&&0!==l&&this.setTranslate((o?-this.translate:this.translate)-l)}this.allowSlidePrev=i,this.allowSlideNext=n,this.emit("loopFix")}function loopDestroy(){var e=this.$wrapperEl,t=this.params,a=this.slides;e.children("."+t.slideClass+"."+t.slideDuplicateClass+",."+t.slideClass+"."+t.slideBlankClass).remove(),a.removeAttr("data-swiper-slide-index")}var loop={loopCreate:loopCreate,loopFix:loopFix,loopDestroy:loopDestroy};function setGrabCursor(e){if(!(Support.touch||!this.params.simulateTouch||this.params.watchOverflow&&this.isLocked||this.params.cssMode)){var t=this.el;t.style.cursor="move",t.style.cursor=e?"-webkit-grabbing":"-webkit-grab",t.style.cursor=e?"-moz-grabbin":"-moz-grab",t.style.cursor=e?"grabbing":"grab"}}function unsetGrabCursor(){Support.touch||this.params.watchOverflow&&this.isLocked||this.params.cssMode||(this.el.style.cursor="")}var grabCursor={setGrabCursor:setGrabCursor,unsetGrabCursor:unsetGrabCursor};function appendSlide(e){var t=this.$wrapperEl,a=this.params;if(a.loop&&this.loopDestroy(),"object"==typeof e&&"length"in e)for(var r=0;r=n)this.appendSlide(t);else{for(var s=i>e?i+1:i,o=[],l=n-1;l>=e;l-=1){var p=this.slides.eq(l);p.remove(),o.unshift(p)}if("object"==typeof t&&"length"in t){for(var c=0;ce?i+t.length:i}else a.append(t);for(var d=0;d0||t.isTouched&&t.isMoved)))if(a.noSwiping&&n.closest(a.noSwipingSelector?a.noSwipingSelector:"."+a.noSwipingClass)[0])this.allowClick=!0;else if(!a.swipeHandler||n.closest(a.swipeHandler)[0]){r.currentX="touchstart"===i.type?i.targetTouches[0].pageX:i.pageX,r.currentY="touchstart"===i.type?i.targetTouches[0].pageY:i.pageY;var s=r.currentX,o=r.currentY,l=a.edgeSwipeDetection||a.iOSEdgeSwipeDetection,p=a.edgeSwipeThreshold||a.iOSEdgeSwipeThreshold;if(!l||!(s<=p||s>=win.screen.width-p)){if(Utils.extend(t,{isTouched:!0,isMoved:!1,allowTouchCallbacks:!0,isScrolling:void 0,startMoving:void 0}),r.startX=s,r.startY=o,t.touchStartTime=Utils.now(),this.allowClick=!0,this.updateSize(),this.swipeDirection=void 0,a.threshold>0&&(t.allowThresholdMove=!1),"touchstart"!==i.type){var c=!0;n.is(t.formElements)&&(c=!1),doc.activeElement&&$(doc.activeElement).is(t.formElements)&&doc.activeElement!==n[0]&&doc.activeElement.blur();var d=c&&this.allowTouchMove&&a.touchStartPreventDefault;(a.touchStartForcePreventDefault||d)&&i.preventDefault()}this.emit("touchStart",i)}}}}function onTouchMove(e){var t=this.touchEventsData,a=this.params,r=this.touches,i=this.rtlTranslate,n=e;if(n.originalEvent&&(n=n.originalEvent),t.isTouched){if(!t.isTouchEvent||"touchmove"===n.type){var s="touchmove"===n.type&&n.targetTouches&&(n.targetTouches[0]||n.changedTouches[0]),o="touchmove"===n.type?s.pageX:n.pageX,l="touchmove"===n.type?s.pageY:n.pageY;if(n.preventedByNestedSwiper)return r.startX=o,void(r.startY=l);if(!this.allowTouchMove)return this.allowClick=!1,void(t.isTouched&&(Utils.extend(r,{startX:o,startY:l,currentX:o,currentY:l}),t.touchStartTime=Utils.now()));if(t.isTouchEvent&&a.touchReleaseOnEdges&&!a.loop)if(this.isVertical()){if(lr.startY&&this.translate>=this.minTranslate())return t.isTouched=!1,void(t.isMoved=!1)}else if(or.startX&&this.translate>=this.minTranslate())return;if(t.isTouchEvent&&doc.activeElement&&n.target===doc.activeElement&&$(n.target).is(t.formElements))return t.isMoved=!0,void(this.allowClick=!1);if(t.allowTouchCallbacks&&this.emit("touchMove",n),!(n.targetTouches&&n.targetTouches.length>1)){r.currentX=o,r.currentY=l;var p=r.currentX-r.startX,c=r.currentY-r.startY;if(!(this.params.threshold&&Math.sqrt(Math.pow(p,2)+Math.pow(c,2))=25&&(d=180*Math.atan2(Math.abs(c),Math.abs(p))/Math.PI,t.isScrolling=this.isHorizontal()?d>a.touchAngle:90-d>a.touchAngle);if(t.isScrolling&&this.emit("touchMoveOpposite",n),void 0===t.startMoving&&(r.currentX===r.startX&&r.currentY===r.startY||(t.startMoving=!0)),t.isScrolling)t.isTouched=!1;else if(t.startMoving){this.allowClick=!1,!a.cssMode&&n.cancelable&&n.preventDefault(),a.touchMoveStopPropagation&&!a.nested&&n.stopPropagation(),t.isMoved||(a.loop&&this.loopFix(),t.startTranslate=this.getTranslate(),this.setTransition(0),this.animating&&this.$wrapperEl.trigger("webkitTransitionEnd transitionend"),t.allowMomentumBounce=!1,!a.grabCursor||!0!==this.allowSlideNext&&!0!==this.allowSlidePrev||this.setGrabCursor(!0),this.emit("sliderFirstMove",n)),this.emit("sliderMove",n),t.isMoved=!0;var u=this.isHorizontal()?p:c;r.diff=u,u*=a.touchRatio,i&&(u=-u),this.swipeDirection=u>0?"prev":"next",t.currentTranslate=u+t.startTranslate;var h=!0,f=a.resistanceRatio;if(a.touchReleaseOnEdges&&(f=0),u>0&&t.currentTranslate>this.minTranslate()?(h=!1,a.resistance&&(t.currentTranslate=this.minTranslate()-1+Math.pow(-this.minTranslate()+t.startTranslate+u,f))):u<0&&t.currentTranslatet.startTranslate&&(t.currentTranslate=t.startTranslate),a.threshold>0){if(!(Math.abs(u)>a.threshold||t.allowThresholdMove))return void(t.currentTranslate=t.startTranslate);if(!t.allowThresholdMove)return t.allowThresholdMove=!0,r.startX=r.currentX,r.startY=r.currentY,t.currentTranslate=t.startTranslate,void(r.diff=this.isHorizontal()?r.currentX-r.startX:r.currentY-r.startY)}a.followFinger&&!a.cssMode&&((a.freeMode||a.watchSlidesProgress||a.watchSlidesVisibility)&&(this.updateActiveIndex(),this.updateSlidesClasses()),a.freeMode&&(0===t.velocities.length&&t.velocities.push({position:r[this.isHorizontal()?"startX":"startY"],time:t.touchStartTime}),t.velocities.push({position:r[this.isHorizontal()?"currentX":"currentY"],time:Utils.now()})),this.updateProgress(t.currentTranslate),this.setTranslate(t.currentTranslate))}}}}}else t.startMoving&&t.isScrolling&&this.emit("touchMoveOpposite",n)}function onTouchEnd(e){var t=this,a=t.touchEventsData,r=t.params,i=t.touches,n=t.rtlTranslate,s=t.$wrapperEl,o=t.slidesGrid,l=t.snapGrid,p=e;if(p.originalEvent&&(p=p.originalEvent),a.allowTouchCallbacks&&t.emit("touchEnd",p),a.allowTouchCallbacks=!1,!a.isTouched)return a.isMoved&&r.grabCursor&&t.setGrabCursor(!1),a.isMoved=!1,void(a.startMoving=!1);r.grabCursor&&a.isMoved&&a.isTouched&&(!0===t.allowSlideNext||!0===t.allowSlidePrev)&&t.setGrabCursor(!1);var c,d=Utils.now(),u=d-a.touchStartTime;if(t.allowClick&&(t.updateClickedSlide(p),t.emit("tap click",p),u<300&&d-a.lastClickTime<300&&t.emit("doubleTap doubleClick",p)),a.lastClickTime=Utils.now(),Utils.nextTick((function(){t.destroyed||(t.allowClick=!0)})),!a.isTouched||!a.isMoved||!t.swipeDirection||0===i.diff||a.currentTranslate===a.startTranslate)return a.isTouched=!1,a.isMoved=!1,void(a.startMoving=!1);if(a.isTouched=!1,a.isMoved=!1,a.startMoving=!1,c=r.followFinger?n?t.translate:-t.translate:-a.currentTranslate,!r.cssMode)if(r.freeMode){if(c<-t.minTranslate())return void t.slideTo(t.activeIndex);if(c>-t.maxTranslate())return void(t.slides.length1){var h=a.velocities.pop(),f=a.velocities.pop(),v=h.position-f.position,m=h.time-f.time;t.velocity=v/m,t.velocity/=2,Math.abs(t.velocity)150||Utils.now()-h.time>300)&&(t.velocity=0)}else t.velocity=0;t.velocity*=r.freeModeMomentumVelocityRatio,a.velocities.length=0;var g=1e3*r.freeModeMomentumRatio,b=t.velocity*g,y=t.translate+b;n&&(y=-y);var w,C,x=!1,$=20*Math.abs(t.velocity)*r.freeModeMomentumBounceRatio;if(yt.minTranslate())r.freeModeMomentumBounce?(y-t.minTranslate()>$&&(y=t.minTranslate()+$),w=t.minTranslate(),x=!0,a.allowMomentumBounce=!0):y=t.minTranslate(),r.loop&&r.centeredSlides&&(C=!0);else if(r.freeModeSticky){for(var k,E=0;E-y){k=E;break}y=-(y=Math.abs(l[k]-y)=r.longSwipesMs)&&(t.updateProgress(),t.updateActiveIndex(),t.updateSlidesClasses())}else{for(var M=0,P=t.slidesSizesGrid[0],O=0;O=o[O]&&c=o[O]&&(M=O,P=o[o.length-1]-o[o.length-2])}var D=(c-o[M])/P,B=Mr.longSwipesMs){if(!r.longSwipes)return void t.slideTo(t.activeIndex);"next"===t.swipeDirection&&(D>=r.longSwipesRatio?t.slideTo(M+B):t.slideTo(M)),"prev"===t.swipeDirection&&(D>1-r.longSwipesRatio?t.slideTo(M+B):t.slideTo(M))}else{if(!r.shortSwipes)return void t.slideTo(t.activeIndex);t.navigation&&(p.target===t.navigation.nextEl||p.target===t.navigation.prevEl)?p.target===t.navigation.nextEl?t.slideTo(M+B):t.slideTo(M):("next"===t.swipeDirection&&t.slideTo(M+B),"prev"===t.swipeDirection&&t.slideTo(M))}}}function onResize(){var e=this.params,t=this.el;if(!t||0!==t.offsetWidth){e.breakpoints&&this.setBreakpoint();var a=this.allowSlideNext,r=this.allowSlidePrev,i=this.snapGrid;this.allowSlideNext=!0,this.allowSlidePrev=!0,this.updateSize(),this.updateSlides(),this.updateSlidesClasses(),("auto"===e.slidesPerView||e.slidesPerView>1)&&this.isEnd&&!this.params.centeredSlides?this.slideTo(this.slides.length-1,0,!1,!0):this.slideTo(this.activeIndex,0,!1,!0),this.autoplay&&this.autoplay.running&&this.autoplay.paused&&this.autoplay.run(),this.allowSlidePrev=r,this.allowSlideNext=a,this.params.watchOverflow&&i!==this.snapGrid&&this.checkOverflow()}}function onClick(e){this.allowClick||(this.params.preventClicks&&e.preventDefault(),this.params.preventClicksPropagation&&this.animating&&(e.stopPropagation(),e.stopImmediatePropagation()))}function onScroll(){var e=this.wrapperEl,t=this.rtlTranslate;this.previousTranslate=this.translate,this.isHorizontal()?this.translate=t?e.scrollWidth-e.offsetWidth-e.scrollLeft:-e.scrollLeft:this.translate=-e.scrollTop,-0===this.translate&&(this.translate=0),this.updateActiveIndex(),this.updateSlidesClasses();var a=this.maxTranslate()-this.minTranslate();(0===a?0:(this.translate-this.minTranslate())/a)!==this.progress&&this.updateProgress(t?-this.translate:this.translate),this.emit("setTranslate",this.translate,!1)}var dummyEventAttached=!1;function dummyEventListener(){}function attachEvents(){var e=this.params,t=this.touchEvents,a=this.el,r=this.wrapperEl;this.onTouchStart=onTouchStart.bind(this),this.onTouchMove=onTouchMove.bind(this),this.onTouchEnd=onTouchEnd.bind(this),e.cssMode&&(this.onScroll=onScroll.bind(this)),this.onClick=onClick.bind(this);var i=!!e.nested;if(!Support.touch&&Support.pointerEvents)a.addEventListener(t.start,this.onTouchStart,!1),doc.addEventListener(t.move,this.onTouchMove,i),doc.addEventListener(t.end,this.onTouchEnd,!1);else{if(Support.touch){var n=!("touchstart"!==t.start||!Support.passiveListener||!e.passiveListeners)&&{passive:!0,capture:!1};a.addEventListener(t.start,this.onTouchStart,n),a.addEventListener(t.move,this.onTouchMove,Support.passiveListener?{passive:!1,capture:i}:i),a.addEventListener(t.end,this.onTouchEnd,n),t.cancel&&a.addEventListener(t.cancel,this.onTouchEnd,n),dummyEventAttached||(doc.addEventListener("touchstart",dummyEventListener),dummyEventAttached=!0)}(e.simulateTouch&&!Device.ios&&!Device.android||e.simulateTouch&&!Support.touch&&Device.ios)&&(a.addEventListener("mousedown",this.onTouchStart,!1),doc.addEventListener("mousemove",this.onTouchMove,i),doc.addEventListener("mouseup",this.onTouchEnd,!1))}(e.preventClicks||e.preventClicksPropagation)&&a.addEventListener("click",this.onClick,!0),e.cssMode&&r.addEventListener("scroll",this.onScroll),e.updateOnWindowResize?this.on(Device.ios||Device.android?"resize orientationchange observerUpdate":"resize observerUpdate",onResize,!0):this.on("observerUpdate",onResize,!0)}function detachEvents(){var e=this.params,t=this.touchEvents,a=this.el,r=this.wrapperEl,i=!!e.nested;if(!Support.touch&&Support.pointerEvents)a.removeEventListener(t.start,this.onTouchStart,!1),doc.removeEventListener(t.move,this.onTouchMove,i),doc.removeEventListener(t.end,this.onTouchEnd,!1);else{if(Support.touch){var n=!("onTouchStart"!==t.start||!Support.passiveListener||!e.passiveListeners)&&{passive:!0,capture:!1};a.removeEventListener(t.start,this.onTouchStart,n),a.removeEventListener(t.move,this.onTouchMove,i),a.removeEventListener(t.end,this.onTouchEnd,n),t.cancel&&a.removeEventListener(t.cancel,this.onTouchEnd,n)}(e.simulateTouch&&!Device.ios&&!Device.android||e.simulateTouch&&!Support.touch&&Device.ios)&&(a.removeEventListener("mousedown",this.onTouchStart,!1),doc.removeEventListener("mousemove",this.onTouchMove,i),doc.removeEventListener("mouseup",this.onTouchEnd,!1))}(e.preventClicks||e.preventClicksPropagation)&&a.removeEventListener("click",this.onClick,!0),e.cssMode&&r.removeEventListener("scroll",this.onScroll),this.off(Device.ios||Device.android?"resize orientationchange observerUpdate":"resize observerUpdate",onResize)}var events={attachEvents:attachEvents,detachEvents:detachEvents};function setBreakpoint(){var e=this.activeIndex,t=this.initialized,a=this.loopedSlides;void 0===a&&(a=0);var r=this.params,i=this.$el,n=r.breakpoints;if(n&&(!n||0!==Object.keys(n).length)){var s=this.getBreakpoint(n);if(s&&this.currentBreakpoint!==s){var o=s in n?n[s]:void 0;o&&["slidesPerView","spaceBetween","slidesPerGroup","slidesPerGroupSkip","slidesPerColumn"].forEach((function(e){var t=o[e];void 0!==t&&(o[e]="slidesPerView"!==e||"AUTO"!==t&&"auto"!==t?"slidesPerView"===e?parseFloat(t):parseInt(t,10):"auto")}));var l=o||this.originalParams,p=r.slidesPerColumn>1,c=l.slidesPerColumn>1;p&&!c?i.removeClass(r.containerModifierClass+"multirow "+r.containerModifierClass+"multirow-column"):!p&&c&&(i.addClass(r.containerModifierClass+"multirow"),"column"===l.slidesPerColumnFill&&i.addClass(r.containerModifierClass+"multirow-column"));var d=l.direction&&l.direction!==r.direction,u=r.loop&&(l.slidesPerView!==r.slidesPerView||d);d&&t&&this.changeDirection(),Utils.extend(this.params,l),Utils.extend(this,{allowTouchMove:this.params.allowTouchMove,allowSlideNext:this.params.allowSlideNext,allowSlidePrev:this.params.allowSlidePrev}),this.currentBreakpoint=s,u&&t&&(this.loopDestroy(),this.loopCreate(),this.updateSlides(),this.slideTo(e-a+this.loopedSlides,0,!1)),this.emit("breakpoint",l)}}}function getBreakpoint(e){if(e){var t=!1,a=Object.keys(e).map((function(e){if("string"==typeof e&&0===e.indexOf("@")){var t=parseFloat(e.substr(1));return{value:win.innerHeight*t,point:e}}return{value:e,point:e}}));a.sort((function(e,t){return parseInt(e.value,10)-parseInt(t.value,10)}));for(var r=0;r1&&(i.push("multirow"),"column"===t.slidesPerColumnFill&&i.push("multirow-column")),Device.android&&i.push("android"),Device.ios&&i.push("ios"),t.cssMode&&i.push("css-mode"),i.forEach((function(a){e.push(t.containerModifierClass+a)})),r.addClass(e.join(" "))}function removeClasses(){var e=this.$el,t=this.classNames;e.removeClass(t.join(" "))}var classes={addClasses:addClasses,removeClasses:removeClasses};function loadImage(e,t,a,r,i,n){var s;function o(){n&&n()}$(e).parent("picture")[0]||e.complete&&i?o():t?((s=new win.Image).onload=o,s.onerror=o,r&&(s.sizes=r),a&&(s.srcset=a),t&&(s.src=t)):o()}function preloadImages(){var e=this;function t(){null!=e&&e&&!e.destroyed&&(void 0!==e.imagesLoaded&&(e.imagesLoaded+=1),e.imagesLoaded===e.imagesToLoad.length&&(e.params.updateOnImagesReady&&e.update(),e.emit("imagesReady")))}e.imagesToLoad=e.$el.find("img");for(var a=0;a0&&e.slidesOffsetBefore+e.spaceBetween*(this.slides.length-1)+this.slides[0].offsetWidth*this.slides.length;e.slidesOffsetBefore&&e.slidesOffsetAfter&&a?this.isLocked=a<=this.size:this.isLocked=1===this.snapGrid.length,this.allowSlideNext=!this.isLocked,this.allowSlidePrev=!this.isLocked,t!==this.isLocked&&this.emit(this.isLocked?"lock":"unlock"),t&&t!==this.isLocked&&(this.isEnd=!1,this.navigation.update())}var checkOverflow$1={checkOverflow:checkOverflow},defaults={init:!0,direction:"horizontal",touchEventsTarget:"container",initialSlide:0,speed:300,cssMode:!1,updateOnWindowResize:!0,preventInteractionOnTransition:!1,edgeSwipeDetection:!1,edgeSwipeThreshold:20,freeMode:!1,freeModeMomentum:!0,freeModeMomentumRatio:1,freeModeMomentumBounce:!0,freeModeMomentumBounceRatio:1,freeModeMomentumVelocityRatio:1,freeModeSticky:!1,freeModeMinimumVelocity:.02,autoHeight:!1,setWrapperSize:!1,virtualTranslate:!1,effect:"slide",breakpoints:void 0,spaceBetween:0,slidesPerView:1,slidesPerColumn:1,slidesPerColumnFill:"column",slidesPerGroup:1,slidesPerGroupSkip:0,centeredSlides:!1,centeredSlidesBounds:!1,slidesOffsetBefore:0,slidesOffsetAfter:0,normalizeSlideIndex:!0,centerInsufficientSlides:!1,watchOverflow:!1,roundLengths:!1,touchRatio:1,touchAngle:45,simulateTouch:!0,shortSwipes:!0,longSwipes:!0,longSwipesRatio:.5,longSwipesMs:300,followFinger:!0,allowTouchMove:!0,threshold:0,touchMoveStopPropagation:!1,touchStartPreventDefault:!0,touchStartForcePreventDefault:!1,touchReleaseOnEdges:!1,uniqueNavElements:!0,resistance:!0,resistanceRatio:.85,watchSlidesProgress:!1,watchSlidesVisibility:!1,grabCursor:!1,preventClicks:!0,preventClicksPropagation:!0,slideToClickedSlide:!1,preloadImages:!0,updateOnImagesReady:!0,loop:!1,loopAdditionalSlides:0,loopedSlides:null,loopFillGroupWithBlank:!1,allowSlidePrev:!0,allowSlideNext:!0,swipeHandler:null,noSwiping:!0,noSwipingClass:"swiper-no-swiping",noSwipingSelector:null,passiveListeners:!0,containerModifierClass:"swiper-container-",slideClass:"swiper-slide",slideBlankClass:"swiper-slide-invisible-blank",slideActiveClass:"swiper-slide-active",slideDuplicateActiveClass:"swiper-slide-duplicate-active",slideVisibleClass:"swiper-slide-visible",slideDuplicateClass:"swiper-slide-duplicate",slideNextClass:"swiper-slide-next",slideDuplicateNextClass:"swiper-slide-duplicate-next",slidePrevClass:"swiper-slide-prev",slideDuplicatePrevClass:"swiper-slide-duplicate-prev",wrapperClass:"swiper-wrapper",runCallbacksOnInit:!0},prototypes={update:update,translate:translate,transition:transition$1,slide:slide,loop:loop,grabCursor:grabCursor,manipulation:manipulation,events:events,breakpoints:breakpoints,checkOverflow:checkOverflow$1,classes:classes,images:images},extendedDefaults={},Swiper=function(e){function t(){for(var a,r,i,n=[],s=arguments.length;s--;)n[s]=arguments[s];1===n.length&&n[0].constructor&&n[0].constructor===Object?i=n[0]:(r=(a=n)[0],i=a[1]),i||(i={}),i=Utils.extend({},i),r&&!i.el&&(i.el=r),e.call(this,i),Object.keys(prototypes).forEach((function(e){Object.keys(prototypes[e]).forEach((function(a){t.prototype[a]||(t.prototype[a]=prototypes[e][a])}))}));var o=this;void 0===o.modules&&(o.modules={}),Object.keys(o.modules).forEach((function(e){var t=o.modules[e];if(t.params){var a=Object.keys(t.params)[0],r=t.params[a];if("object"!=typeof r||null===r)return;if(!(a in i)||!("enabled"in r))return;!0===i[a]&&(i[a]={enabled:!0}),"object"!=typeof i[a]||"enabled"in i[a]||(i[a].enabled=!0),i[a]||(i[a]={enabled:!1})}}));var l=Utils.extend({},defaults);o.useModulesParams(l),o.params=Utils.extend({},l,extendedDefaults,i),o.originalParams=Utils.extend({},o.params),o.passedParams=Utils.extend({},i),o.$=$;var p=$(o.params.el);if(r=p[0]){if(p.length>1){var c=[];return p.each((function(e,a){var r=Utils.extend({},i,{el:a});c.push(new t(r))})),c}var d,u,h;return r.swiper=o,p.data("swiper",o),r&&r.shadowRoot&&r.shadowRoot.querySelector?(d=$(r.shadowRoot.querySelector("."+o.params.wrapperClass))).children=function(e){return p.children(e)}:d=p.children("."+o.params.wrapperClass),Utils.extend(o,{$el:p,el:r,$wrapperEl:d,wrapperEl:d[0],classNames:[],slides:$(),slidesGrid:[],snapGrid:[],slidesSizesGrid:[],isHorizontal:function(){return"horizontal"===o.params.direction},isVertical:function(){return"vertical"===o.params.direction},rtl:"rtl"===r.dir.toLowerCase()||"rtl"===p.css("direction"),rtlTranslate:"horizontal"===o.params.direction&&("rtl"===r.dir.toLowerCase()||"rtl"===p.css("direction")),wrongRTL:"-webkit-box"===d.css("display"),activeIndex:0,realIndex:0,isBeginning:!0,isEnd:!1,translate:0,previousTranslate:0,progress:0,velocity:0,animating:!1,allowSlideNext:o.params.allowSlideNext,allowSlidePrev:o.params.allowSlidePrev,touchEvents:(u=["touchstart","touchmove","touchend","touchcancel"],h=["mousedown","mousemove","mouseup"],Support.pointerEvents&&(h=["pointerdown","pointermove","pointerup"]),o.touchEventsTouch={start:u[0],move:u[1],end:u[2],cancel:u[3]},o.touchEventsDesktop={start:h[0],move:h[1],end:h[2]},Support.touch||!o.params.simulateTouch?o.touchEventsTouch:o.touchEventsDesktop),touchEventsData:{isTouched:void 0,isMoved:void 0,allowTouchCallbacks:void 0,touchStartTime:void 0,isScrolling:void 0,currentTranslate:void 0,startTranslate:void 0,allowThresholdMove:void 0,formElements:"input, select, option, textarea, button, video, label",lastClickTime:Utils.now(),clickTimeout:void 0,velocities:[],allowMomentumBounce:void 0,isTouchEvent:void 0,startMoving:void 0},allowClick:!0,allowTouchMove:o.params.allowTouchMove,touches:{startX:0,startY:0,currentX:0,currentY:0,diff:0},imagesToLoad:[],imagesLoaded:0}),o.useModules(),o.params.init&&o.init(),o}}e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t;var a={extendedDefaults:{configurable:!0},defaults:{configurable:!0},Class:{configurable:!0},$:{configurable:!0}};return t.prototype.slidesPerViewDynamic=function(){var e=this.params,t=this.slides,a=this.slidesGrid,r=this.size,i=this.activeIndex,n=1;if(e.centeredSlides){for(var s,o=t[i].swiperSlideSize,l=i+1;lr&&(s=!0));for(var p=i-1;p>=0;p-=1)t[p]&&!s&&(n+=1,(o+=t[p].swiperSlideSize)>r&&(s=!0))}else for(var c=i+1;c1)&&e.isEnd&&!e.params.centeredSlides?e.slideTo(e.slides.length-1,0,!1,!0):e.slideTo(e.activeIndex,0,!1,!0))||r(),a.watchOverflow&&t!==e.snapGrid&&e.checkOverflow(),e.emit("update")}function r(){var t=e.rtlTranslate?-1*e.translate:e.translate,a=Math.min(Math.max(t,e.maxTranslate()),e.minTranslate());e.setTranslate(a),e.updateActiveIndex(),e.updateSlidesClasses()}},t.prototype.changeDirection=function(e,t){void 0===t&&(t=!0);var a=this.params.direction;return e||(e="horizontal"===a?"vertical":"horizontal"),e===a||"horizontal"!==e&&"vertical"!==e||(this.$el.removeClass(""+this.params.containerModifierClass+a).addClass(""+this.params.containerModifierClass+e),this.params.direction=e,this.slides.each((function(t,a){"vertical"===e?a.style.width="":a.style.height=""})),this.emit("changeDirection"),t&&this.update()),this},t.prototype.init=function(){this.initialized||(this.emit("beforeInit"),this.params.breakpoints&&this.setBreakpoint(),this.addClasses(),this.params.loop&&this.loopCreate(),this.updateSize(),this.updateSlides(),this.params.watchOverflow&&this.checkOverflow(),this.params.grabCursor&&this.setGrabCursor(),this.params.preloadImages&&this.preloadImages(),this.params.loop?this.slideTo(this.params.initialSlide+this.loopedSlides,0,this.params.runCallbacksOnInit):this.slideTo(this.params.initialSlide,0,this.params.runCallbacksOnInit),this.attachEvents(),this.initialized=!0,this.emit("init"))},t.prototype.destroy=function(e,t){void 0===e&&(e=!0),void 0===t&&(t=!0);var a=this,r=a.params,i=a.$el,n=a.$wrapperEl,s=a.slides;return void 0===a.params||a.destroyed||(a.emit("beforeDestroy"),a.initialized=!1,a.detachEvents(),r.loop&&a.loopDestroy(),t&&(a.removeClasses(),i.removeAttr("style"),n.removeAttr("style"),s&&s.length&&s.removeClass([r.slideVisibleClass,r.slideActiveClass,r.slideNextClass,r.slidePrevClass].join(" ")).removeAttr("style").removeAttr("data-swiper-slide-index")),a.emit("destroy"),Object.keys(a.eventsListeners).forEach((function(e){a.off(e)})),!1!==e&&(a.$el[0].swiper=null,a.$el.data("swiper",null),Utils.deleteProps(a)),a.destroyed=!0),null},t.extendDefaults=function(e){Utils.extend(extendedDefaults,e)},a.extendedDefaults.get=function(){return extendedDefaults},a.defaults.get=function(){return defaults},a.Class.get=function(){return e},a.$.get=function(){return $},Object.defineProperties(t,a),t}(Framework7Class),Device$1={name:"device",proto:{device:Device},static:{device:Device}},Support$1={name:"support",proto:{support:Support},static:{support:Support}},Browser={isEdge:!!win.navigator.userAgent.match(/Edge/g),isSafari:(ua=win.navigator.userAgent.toLowerCase(),ua.indexOf("safari")>=0&&ua.indexOf("chrome")<0&&ua.indexOf("android")<0),isUiWebView:/(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(win.navigator.userAgent)},ua,Browser$1={name:"browser",proto:{browser:Browser},static:{browser:Browser}},Resize={name:"resize",create:function(){var e=this;Utils.extend(e,{resize:{resizeHandler:function(){e&&!e.destroyed&&e.initialized&&(e.emit("beforeResize"),e.emit("resize"))},orientationChangeHandler:function(){e&&!e.destroyed&&e.initialized&&e.emit("orientationchange")}}})},on:{init:function(){win.addEventListener("resize",this.resize.resizeHandler),win.addEventListener("orientationchange",this.resize.orientationChangeHandler)},destroy:function(){win.removeEventListener("resize",this.resize.resizeHandler),win.removeEventListener("orientationchange",this.resize.orientationChangeHandler)}}},Observer={func:win.MutationObserver||win.WebkitMutationObserver,attach:function(e,t){void 0===t&&(t={});var a=this,r=new(0,Observer.func)((function(e){if(1!==e.length){var t=function(){a.emit("observerUpdate",e[0])};win.requestAnimationFrame?win.requestAnimationFrame(t):win.setTimeout(t,0)}else a.emit("observerUpdate",e[0])}));r.observe(e,{attributes:void 0===t.attributes||t.attributes,childList:void 0===t.childList||t.childList,characterData:void 0===t.characterData||t.characterData}),a.observer.observers.push(r)},init:function(){if(Support.observer&&this.params.observer){if(this.params.observeParents)for(var e=this.$el.parents(),t=0;tC)&&t.$wrapperEl.find("."+t.params.slideClass+'[data-swiper-slide-index="'+T+'"]').remove();for(var S=0;S=w&&S<=C&&(void 0===d||e?E.push(S):(S>d&&E.push(S),S'+e+"");return r.attr("data-swiper-slide-index")||r.attr("data-swiper-slide-index",t),a.cache&&(this.virtual.cache[t]=r),r},appendSlide:function(e){if("object"==typeof e&&"length"in e)for(var t=0;t=0;a-=1)this.virtual.slides.splice(e[a],1),this.params.virtual.cache&&delete this.virtual.cache[e[a]],e[a]0&&0===this.$el.parents("."+this.params.slideActiveClass).length)return;var n=win.innerWidth,s=win.innerHeight,o=this.$el.offset();t&&(o.left-=this.$el[0].scrollLeft);for(var l=[[o.left,o.top],[o.left+this.width,o.top],[o.left,o.top+this.height],[o.left+this.width,o.top+this.height]],p=0;p=0&&c[0]<=n&&c[1]>=0&&c[1]<=s&&(i=!0)}if(!i)return}this.isHorizontal()?(33!==r&&34!==r&&37!==r&&39!==r||(a.preventDefault?a.preventDefault():a.returnValue=!1),(34!==r&&39!==r||t)&&(33!==r&&37!==r||!t)||this.slideNext(),(33!==r&&37!==r||t)&&(34!==r&&39!==r||!t)||this.slidePrev()):(33!==r&&34!==r&&38!==r&&40!==r||(a.preventDefault?a.preventDefault():a.returnValue=!1),34!==r&&40!==r||this.slideNext(),33!==r&&38!==r||this.slidePrev()),this.emit("keyPress",r)}},enable:function(){this.keyboard.enabled||($(doc).on("keydown",this.keyboard.handle),this.keyboard.enabled=!0)},disable:function(){this.keyboard.enabled&&($(doc).off("keydown",this.keyboard.handle),this.keyboard.enabled=!1)}},Keyboard$1={name:"keyboard",params:{keyboard:{enabled:!1,onlyInViewport:!0}},create:function(){Utils.extend(this,{keyboard:{enabled:!1,enable:Keyboard.enable.bind(this),disable:Keyboard.disable.bind(this),handle:Keyboard.handle.bind(this)}})},on:{init:function(){this.params.keyboard.enabled&&this.keyboard.enable()},destroy:function(){this.keyboard.enabled&&this.keyboard.disable()}}};function isEventSupported(){var e="onwheel"in doc;if(!e){var t=doc.createElement("div");t.setAttribute("onwheel","return;"),e="function"==typeof t.onwheel}return!e&&doc.implementation&&doc.implementation.hasFeature&&!0!==doc.implementation.hasFeature("","")&&(e=doc.implementation.hasFeature("Events.wheel","3.0")),e}var Mousewheel={lastScrollTime:Utils.now(),lastEventBeforeSnap:void 0,recentWheelEvents:[],event:function(){return win.navigator.userAgent.indexOf("firefox")>-1?"DOMMouseScroll":isEventSupported()?"wheel":"mousewheel"},normalize:function(e){var t=0,a=0,r=0,i=0;return"detail"in e&&(a=e.detail),"wheelDelta"in e&&(a=-e.wheelDelta/120),"wheelDeltaY"in e&&(a=-e.wheelDeltaY/120),"wheelDeltaX"in e&&(t=-e.wheelDeltaX/120),"axis"in e&&e.axis===e.HORIZONTAL_AXIS&&(t=a,a=0),r=10*t,i=10*a,"deltaY"in e&&(i=e.deltaY),"deltaX"in e&&(r=e.deltaX),e.shiftKey&&!r&&(r=i,i=0),(r||i)&&e.deltaMode&&(1===e.deltaMode?(r*=40,i*=40):(r*=800,i*=800)),r&&!t&&(t=r<1?-1:1),i&&!a&&(a=i<1?-1:1),{spinX:t,spinY:a,pixelX:r,pixelY:i}},handleMouseEnter:function(){this.mouseEntered=!0},handleMouseLeave:function(){this.mouseEntered=!1},handle:function(e){var t=e,a=this,r=a.params.mousewheel;a.params.cssMode&&t.preventDefault();var i=a.$el;if("container"!==a.params.mousewheel.eventsTarged&&(i=$(a.params.mousewheel.eventsTarged)),!a.mouseEntered&&!i[0].contains(t.target)&&!r.releaseOnEdges)return!0;t.originalEvent&&(t=t.originalEvent);var n=0,s=a.rtlTranslate?-1:1,o=Mousewheel.normalize(t);if(r.forceToAxis)if(a.isHorizontal()){if(!(Math.abs(o.pixelX)>Math.abs(o.pixelY)))return!0;n=o.pixelX*s}else{if(!(Math.abs(o.pixelY)>Math.abs(o.pixelX)))return!0;n=o.pixelY}else n=Math.abs(o.pixelX)>Math.abs(o.pixelY)?-o.pixelX*s:-o.pixelY;if(0===n)return!0;if(r.invert&&(n=-n),a.params.freeMode){var l={time:Utils.now(),delta:Math.abs(n),direction:Math.sign(n)},p=a.mousewheel.lastEventBeforeSnap,c=p&&l.time=a.minTranslate()&&(d=a.minTranslate()),d<=a.maxTranslate()&&(d=a.maxTranslate()),a.setTransition(0),a.setTranslate(d),a.updateProgress(),a.updateActiveIndex(),a.updateSlidesClasses(),(!u&&a.isBeginning||!h&&a.isEnd)&&a.updateSlidesClasses(),a.params.freeModeSticky){clearTimeout(a.mousewheel.timeout),a.mousewheel.timeout=void 0;var f=a.mousewheel.recentWheelEvents;f.length>=15&&f.shift();var v=f.length?f[f.length-1]:void 0,m=f[0];if(f.push(l),v&&(l.delta>v.delta||l.direction!==v.direction))f.splice(0);else if(f.length>=15&&l.time-m.time<500&&m.delta-l.delta>=1&&l.delta<=6){var g=n>0?.8:.2;a.mousewheel.lastEventBeforeSnap=l,f.splice(0),a.mousewheel.timeout=Utils.nextTick((function(){a.slideToClosest(a.params.speed,!0,void 0,g)}),0)}a.mousewheel.timeout||(a.mousewheel.timeout=Utils.nextTick((function(){a.mousewheel.lastEventBeforeSnap=l,f.splice(0),a.slideToClosest(a.params.speed,!0,void 0,.5)}),500))}if(c||a.emit("scroll",t),a.params.autoplay&&a.params.autoplayDisableOnInteraction&&a.autoplay.stop(),d===a.minTranslate()||d===a.maxTranslate())return!0}}else{var b={time:Utils.now(),delta:Math.abs(n),direction:Math.sign(n),raw:e},y=a.mousewheel.recentWheelEvents;y.length>=2&&y.shift();var w=y.length?y[y.length-1]:void 0;if(y.push(b),w?(b.direction!==w.direction||b.delta>w.delta||b.time>w.time+150)&&a.mousewheel.animateSlider(b):a.mousewheel.animateSlider(b),a.mousewheel.releaseScroll(b))return!0}return t.preventDefault?t.preventDefault():t.returnValue=!1,!1},animateSlider:function(e){return e.delta>=6&&Utils.now()-this.mousewheel.lastScrollTime<60||(e.direction<0?this.isEnd&&!this.params.loop||this.animating||(this.slideNext(),this.emit("scroll",e.raw)):this.isBeginning&&!this.params.loop||this.animating||(this.slidePrev(),this.emit("scroll",e.raw)),this.mousewheel.lastScrollTime=(new win.Date).getTime(),!1)},releaseScroll:function(e){var t=this.params.mousewheel;if(e.direction<0){if(this.isEnd&&!this.params.loop&&t.releaseOnEdges)return!0}else if(this.isBeginning&&!this.params.loop&&t.releaseOnEdges)return!0;return!1},enable:function(){var e=Mousewheel.event();if(this.params.cssMode)return this.wrapperEl.removeEventListener(e,this.mousewheel.handle),!0;if(!e)return!1;if(this.mousewheel.enabled)return!1;var t=this.$el;return"container"!==this.params.mousewheel.eventsTarged&&(t=$(this.params.mousewheel.eventsTarged)),t.on("mouseenter",this.mousewheel.handleMouseEnter),t.on("mouseleave",this.mousewheel.handleMouseLeave),t.on(e,this.mousewheel.handle),this.mousewheel.enabled=!0,!0},disable:function(){var e=Mousewheel.event();if(this.params.cssMode)return this.wrapperEl.addEventListener(e,this.mousewheel.handle),!0;if(!e)return!1;if(!this.mousewheel.enabled)return!1;var t=this.$el;return"container"!==this.params.mousewheel.eventsTarged&&(t=$(this.params.mousewheel.eventsTarged)),t.off(e,this.mousewheel.handle),this.mousewheel.enabled=!1,!0}},Mousewheel$1={name:"mousewheel",params:{mousewheel:{enabled:!1,releaseOnEdges:!1,invert:!1,forceToAxis:!1,sensitivity:1,eventsTarged:"container"}},create:function(){Utils.extend(this,{mousewheel:{enabled:!1,enable:Mousewheel.enable.bind(this),disable:Mousewheel.disable.bind(this),handle:Mousewheel.handle.bind(this),handleMouseEnter:Mousewheel.handleMouseEnter.bind(this),handleMouseLeave:Mousewheel.handleMouseLeave.bind(this),animateSlider:Mousewheel.animateSlider.bind(this),releaseScroll:Mousewheel.releaseScroll.bind(this),lastScrollTime:Utils.now(),lastEventBeforeSnap:void 0,recentWheelEvents:[]}})},on:{init:function(){!this.params.mousewheel.enabled&&this.params.cssMode&&this.mousewheel.disable(),this.params.mousewheel.enabled&&this.mousewheel.enable()},destroy:function(){this.params.cssMode&&this.mousewheel.enable(),this.mousewheel.enabled&&this.mousewheel.disable()}}},Navigation={update:function(){var e=this.params.navigation;if(!this.params.loop){var t=this.navigation,a=t.$nextEl,r=t.$prevEl;r&&r.length>0&&(this.isBeginning?r.addClass(e.disabledClass):r.removeClass(e.disabledClass),r[this.params.watchOverflow&&this.isLocked?"addClass":"removeClass"](e.lockClass)),a&&a.length>0&&(this.isEnd?a.addClass(e.disabledClass):a.removeClass(e.disabledClass),a[this.params.watchOverflow&&this.isLocked?"addClass":"removeClass"](e.lockClass))}},onPrevClick:function(e){e.preventDefault(),this.isBeginning&&!this.params.loop||this.slidePrev()},onNextClick:function(e){e.preventDefault(),this.isEnd&&!this.params.loop||this.slideNext()},init:function(){var e,t,a=this.params.navigation;(a.nextEl||a.prevEl)&&(a.nextEl&&(e=$(a.nextEl),this.params.uniqueNavElements&&"string"==typeof a.nextEl&&e.length>1&&1===this.$el.find(a.nextEl).length&&(e=this.$el.find(a.nextEl))),a.prevEl&&(t=$(a.prevEl),this.params.uniqueNavElements&&"string"==typeof a.prevEl&&t.length>1&&1===this.$el.find(a.prevEl).length&&(t=this.$el.find(a.prevEl))),e&&e.length>0&&e.on("click",this.navigation.onNextClick),t&&t.length>0&&t.on("click",this.navigation.onPrevClick),Utils.extend(this.navigation,{$nextEl:e,nextEl:e&&e[0],$prevEl:t,prevEl:t&&t[0]}))},destroy:function(){var e=this.navigation,t=e.$nextEl,a=e.$prevEl;t&&t.length&&(t.off("click",this.navigation.onNextClick),t.removeClass(this.params.navigation.disabledClass)),a&&a.length&&(a.off("click",this.navigation.onPrevClick),a.removeClass(this.params.navigation.disabledClass))}},Navigation$1={name:"navigation",params:{navigation:{nextEl:null,prevEl:null,hideOnClick:!1,disabledClass:"swiper-button-disabled",hiddenClass:"swiper-button-hidden",lockClass:"swiper-button-lock"}},create:function(){Utils.extend(this,{navigation:{init:Navigation.init.bind(this),update:Navigation.update.bind(this),destroy:Navigation.destroy.bind(this),onNextClick:Navigation.onNextClick.bind(this),onPrevClick:Navigation.onPrevClick.bind(this)}})},on:{init:function(){this.navigation.init(),this.navigation.update()},toEdge:function(){this.navigation.update()},fromEdge:function(){this.navigation.update()},destroy:function(){this.navigation.destroy()},click:function(e){var t,a=this.navigation,r=a.$nextEl,i=a.$prevEl;!this.params.navigation.hideOnClick||$(e.target).is(i)||$(e.target).is(r)||(r?t=r.hasClass(this.params.navigation.hiddenClass):i&&(t=i.hasClass(this.params.navigation.hiddenClass)),!0===t?this.emit("navigationShow",this):this.emit("navigationHide",this),r&&r.toggleClass(this.params.navigation.hiddenClass),i&&i.toggleClass(this.params.navigation.hiddenClass))}}},Pagination={update:function(){var e=this.rtl,t=this.params.pagination;if(t.el&&this.pagination.el&&this.pagination.$el&&0!==this.pagination.$el.length){var a,r=this.virtual&&this.params.virtual.enabled?this.virtual.slides.length:this.slides.length,i=this.pagination.$el,n=this.params.loop?Math.ceil((r-2*this.loopedSlides)/this.params.slidesPerGroup):this.snapGrid.length;if(this.params.loop?((a=Math.ceil((this.activeIndex-this.loopedSlides)/this.params.slidesPerGroup))>r-1-2*this.loopedSlides&&(a-=r-2*this.loopedSlides),a>n-1&&(a-=n),a<0&&"bullets"!==this.params.paginationType&&(a=n+a)):a=void 0!==this.snapIndex?this.snapIndex:this.activeIndex||0,"bullets"===t.type&&this.pagination.bullets&&this.pagination.bullets.length>0){var s,o,l,p=this.pagination.bullets;if(t.dynamicBullets&&(this.pagination.bulletSize=p.eq(0)[this.isHorizontal()?"outerWidth":"outerHeight"](!0),i.css(this.isHorizontal()?"width":"height",this.pagination.bulletSize*(t.dynamicMainBullets+4)+"px"),t.dynamicMainBullets>1&&void 0!==this.previousIndex&&(this.pagination.dynamicBulletIndex+=a-this.previousIndex,this.pagination.dynamicBulletIndex>t.dynamicMainBullets-1?this.pagination.dynamicBulletIndex=t.dynamicMainBullets-1:this.pagination.dynamicBulletIndex<0&&(this.pagination.dynamicBulletIndex=0)),s=a-this.pagination.dynamicBulletIndex,l=((o=s+(Math.min(p.length,t.dynamicMainBullets)-1))+s)/2),p.removeClass(t.bulletActiveClass+" "+t.bulletActiveClass+"-next "+t.bulletActiveClass+"-next-next "+t.bulletActiveClass+"-prev "+t.bulletActiveClass+"-prev-prev "+t.bulletActiveClass+"-main"),i.length>1)p.each((function(e,r){var i=$(r),n=i.index();n===a&&i.addClass(t.bulletActiveClass),t.dynamicBullets&&(n>=s&&n<=o&&i.addClass(t.bulletActiveClass+"-main"),n===s&&i.prev().addClass(t.bulletActiveClass+"-prev").prev().addClass(t.bulletActiveClass+"-prev-prev"),n===o&&i.next().addClass(t.bulletActiveClass+"-next").next().addClass(t.bulletActiveClass+"-next-next"))}));else{var c=p.eq(a),d=c.index();if(c.addClass(t.bulletActiveClass),t.dynamicBullets){for(var u=p.eq(s),h=p.eq(o),f=s;f<=o;f+=1)p.eq(f).addClass(t.bulletActiveClass+"-main");if(this.params.loop)if(d>=p.length-t.dynamicMainBullets){for(var v=t.dynamicMainBullets;v>=0;v-=1)p.eq(p.length-v).addClass(t.bulletActiveClass+"-main");p.eq(p.length-t.dynamicMainBullets-1).addClass(t.bulletActiveClass+"-prev")}else u.prev().addClass(t.bulletActiveClass+"-prev").prev().addClass(t.bulletActiveClass+"-prev-prev"),h.next().addClass(t.bulletActiveClass+"-next").next().addClass(t.bulletActiveClass+"-next-next");else u.prev().addClass(t.bulletActiveClass+"-prev").prev().addClass(t.bulletActiveClass+"-prev-prev"),h.next().addClass(t.bulletActiveClass+"-next").next().addClass(t.bulletActiveClass+"-next-next")}}if(t.dynamicBullets){var m=Math.min(p.length,t.dynamicMainBullets+4),g=(this.pagination.bulletSize*m-this.pagination.bulletSize)/2-l*this.pagination.bulletSize,b=e?"right":"left";p.css(this.isHorizontal()?b:"top",g+"px")}}if("fraction"===t.type&&(i.find("."+t.currentClass).text(t.formatFractionCurrent(a+1)),i.find("."+t.totalClass).text(t.formatFractionTotal(n))),"progressbar"===t.type){var y;y=t.progressbarOpposite?this.isHorizontal()?"vertical":"horizontal":this.isHorizontal()?"horizontal":"vertical";var w=(a+1)/n,C=1,x=1;"horizontal"===y?C=w:x=w,i.find("."+t.progressbarFillClass).transform("translate3d(0,0,0) scaleX("+C+") scaleY("+x+")").transition(this.params.speed)}"custom"===t.type&&t.renderCustom?(i.html(t.renderCustom(this,a+1,n)),this.emit("paginationRender",this,i[0])):this.emit("paginationUpdate",this,i[0]),i[this.params.watchOverflow&&this.isLocked?"addClass":"removeClass"](t.lockClass)}},render:function(){var e=this.params.pagination;if(e.el&&this.pagination.el&&this.pagination.$el&&0!==this.pagination.$el.length){var t=this.virtual&&this.params.virtual.enabled?this.virtual.slides.length:this.slides.length,a=this.pagination.$el,r="";if("bullets"===e.type){for(var i=this.params.loop?Math.ceil((t-2*this.loopedSlides)/this.params.slidesPerGroup):this.snapGrid.length,n=0;n";a.html(r),this.pagination.bullets=a.find("."+e.bulletClass)}"fraction"===e.type&&(r=e.renderFraction?e.renderFraction.call(this,e.currentClass,e.totalClass):' / ',a.html(r)),"progressbar"===e.type&&(r=e.renderProgressbar?e.renderProgressbar.call(this,e.progressbarFillClass):'',a.html(r)),"custom"!==e.type&&this.emit("paginationRender",this.pagination.$el[0])}},init:function(){var e=this,t=e.params.pagination;if(t.el){var a=$(t.el);0!==a.length&&(e.params.uniqueNavElements&&"string"==typeof t.el&&a.length>1&&1===e.$el.find(t.el).length&&(a=e.$el.find(t.el)),"bullets"===t.type&&t.clickable&&a.addClass(t.clickableClass),a.addClass(t.modifierClass+t.type),"bullets"===t.type&&t.dynamicBullets&&(a.addClass(""+t.modifierClass+t.type+"-dynamic"),e.pagination.dynamicBulletIndex=0,t.dynamicMainBullets<1&&(t.dynamicMainBullets=1)),"progressbar"===t.type&&t.progressbarOpposite&&a.addClass(t.progressbarOppositeClass),t.clickable&&a.on("click","."+t.bulletClass,(function(t){t.preventDefault();var a=$(this).index()*e.params.slidesPerGroup;e.params.loop&&(a+=e.loopedSlides),e.slideTo(a)})),Utils.extend(e.pagination,{$el:a,el:a[0]}))}},destroy:function(){var e=this.params.pagination;if(e.el&&this.pagination.el&&this.pagination.$el&&0!==this.pagination.$el.length){var t=this.pagination.$el;t.removeClass(e.hiddenClass),t.removeClass(e.modifierClass+e.type),this.pagination.bullets&&this.pagination.bullets.removeClass(e.bulletActiveClass),e.clickable&&t.off("click","."+e.bulletClass)}}},Pagination$1={name:"pagination",params:{pagination:{el:null,bulletElement:"span",clickable:!1,hideOnClick:!1,renderBullet:null,renderProgressbar:null,renderFraction:null,renderCustom:null,progressbarOpposite:!1,type:"bullets",dynamicBullets:!1,dynamicMainBullets:1,formatFractionCurrent:function(e){return e},formatFractionTotal:function(e){return e},bulletClass:"swiper-pagination-bullet",bulletActiveClass:"swiper-pagination-bullet-active",modifierClass:"swiper-pagination-",currentClass:"swiper-pagination-current",totalClass:"swiper-pagination-total",hiddenClass:"swiper-pagination-hidden",progressbarFillClass:"swiper-pagination-progressbar-fill",progressbarOppositeClass:"swiper-pagination-progressbar-opposite",clickableClass:"swiper-pagination-clickable",lockClass:"swiper-pagination-lock"}},create:function(){Utils.extend(this,{pagination:{init:Pagination.init.bind(this),render:Pagination.render.bind(this),update:Pagination.update.bind(this),destroy:Pagination.destroy.bind(this),dynamicBulletIndex:0}})},on:{init:function(){this.pagination.init(),this.pagination.render(),this.pagination.update()},activeIndexChange:function(){(this.params.loop||void 0===this.snapIndex)&&this.pagination.update()},snapIndexChange:function(){this.params.loop||this.pagination.update()},slidesLengthChange:function(){this.params.loop&&(this.pagination.render(),this.pagination.update())},snapGridLengthChange:function(){this.params.loop||(this.pagination.render(),this.pagination.update())},destroy:function(){this.pagination.destroy()},click:function(e){this.params.pagination.el&&this.params.pagination.hideOnClick&&this.pagination.$el.length>0&&!$(e.target).hasClass(this.params.pagination.bulletClass)&&(!0===this.pagination.$el.hasClass(this.params.pagination.hiddenClass)?this.emit("paginationShow",this):this.emit("paginationHide",this),this.pagination.$el.toggleClass(this.params.pagination.hiddenClass))}}},Scrollbar={setTranslate:function(){if(this.params.scrollbar.el&&this.scrollbar.el){var e=this.scrollbar,t=this.rtlTranslate,a=this.progress,r=e.dragSize,i=e.trackSize,n=e.$dragEl,s=e.$el,o=this.params.scrollbar,l=r,p=(i-r)*a;t?(p=-p)>0?(l=r-p,p=0):-p+r>i&&(l=i+p):p<0?(l=r+p,p=0):p+r>i&&(l=i-p),this.isHorizontal()?(n.transform("translate3d("+p+"px, 0, 0)"),n[0].style.width=l+"px"):(n.transform("translate3d(0px, "+p+"px, 0)"),n[0].style.height=l+"px"),o.hide&&(clearTimeout(this.scrollbar.timeout),s[0].style.opacity=1,this.scrollbar.timeout=setTimeout((function(){s[0].style.opacity=0,s.transition(400)}),1e3))}},setTransition:function(e){this.params.scrollbar.el&&this.scrollbar.el&&this.scrollbar.$dragEl.transition(e)},updateSize:function(){if(this.params.scrollbar.el&&this.scrollbar.el){var e=this.scrollbar,t=e.$dragEl,a=e.$el;t[0].style.width="",t[0].style.height="";var r,i=this.isHorizontal()?a[0].offsetWidth:a[0].offsetHeight,n=this.size/this.virtualSize,s=n*(i/this.size);r="auto"===this.params.scrollbar.dragSize?i*n:parseInt(this.params.scrollbar.dragSize,10),this.isHorizontal()?t[0].style.width=r+"px":t[0].style.height=r+"px",a[0].style.display=n>=1?"none":"",this.params.scrollbar.hide&&(a[0].style.opacity=0),Utils.extend(e,{trackSize:i,divider:n,moveDivider:s,dragSize:r}),e.$el[this.params.watchOverflow&&this.isLocked?"addClass":"removeClass"](this.params.scrollbar.lockClass)}},getPointerPosition:function(e){return this.isHorizontal()?"touchstart"===e.type||"touchmove"===e.type?e.targetTouches[0].clientX:e.clientX:"touchstart"===e.type||"touchmove"===e.type?e.targetTouches[0].clientY:e.clientY},setDragPosition:function(e){var t,a=this.scrollbar,r=this.rtlTranslate,i=a.$el,n=a.dragSize,s=a.trackSize,o=a.dragStartPos;t=(a.getPointerPosition(e)-i.offset()[this.isHorizontal()?"left":"top"]-(null!==o?o:n/2))/(s-n),t=Math.max(Math.min(t,1),0),r&&(t=1-t);var l=this.minTranslate()+(this.maxTranslate()-this.minTranslate())*t;this.updateProgress(l),this.setTranslate(l),this.updateActiveIndex(),this.updateSlidesClasses()},onDragStart:function(e){var t=this.params.scrollbar,a=this.scrollbar,r=this.$wrapperEl,i=a.$el,n=a.$dragEl;this.scrollbar.isTouched=!0,this.scrollbar.dragStartPos=e.target===n[0]||e.target===n?a.getPointerPosition(e)-e.target.getBoundingClientRect()[this.isHorizontal()?"left":"top"]:null,e.preventDefault(),e.stopPropagation(),r.transition(100),n.transition(100),a.setDragPosition(e),clearTimeout(this.scrollbar.dragTimeout),i.transition(0),t.hide&&i.css("opacity",1),this.params.cssMode&&this.$wrapperEl.css("scroll-snap-type","none"),this.emit("scrollbarDragStart",e)},onDragMove:function(e){var t=this.scrollbar,a=this.$wrapperEl,r=t.$el,i=t.$dragEl;this.scrollbar.isTouched&&(e.preventDefault?e.preventDefault():e.returnValue=!1,t.setDragPosition(e),a.transition(0),r.transition(0),i.transition(0),this.emit("scrollbarDragMove",e))},onDragEnd:function(e){var t=this.params.scrollbar,a=this.scrollbar,r=this.$wrapperEl,i=a.$el;this.scrollbar.isTouched&&(this.scrollbar.isTouched=!1,this.params.cssMode&&(this.$wrapperEl.css("scroll-snap-type",""),r.transition("")),t.hide&&(clearTimeout(this.scrollbar.dragTimeout),this.scrollbar.dragTimeout=Utils.nextTick((function(){i.css("opacity",0),i.transition(400)}),1e3)),this.emit("scrollbarDragEnd",e),t.snapOnRelease&&this.slideToClosest())},enableDraggable:function(){if(this.params.scrollbar.el){var e=this.scrollbar,t=this.touchEventsTouch,a=this.touchEventsDesktop,r=this.params,i=e.$el[0],n=!(!Support.passiveListener||!r.passiveListeners)&&{passive:!1,capture:!1},s=!(!Support.passiveListener||!r.passiveListeners)&&{passive:!0,capture:!1};Support.touch?(i.addEventListener(t.start,this.scrollbar.onDragStart,n),i.addEventListener(t.move,this.scrollbar.onDragMove,n),i.addEventListener(t.end,this.scrollbar.onDragEnd,s)):(i.addEventListener(a.start,this.scrollbar.onDragStart,n),doc.addEventListener(a.move,this.scrollbar.onDragMove,n),doc.addEventListener(a.end,this.scrollbar.onDragEnd,s))}},disableDraggable:function(){if(this.params.scrollbar.el){var e=this.scrollbar,t=this.touchEventsTouch,a=this.touchEventsDesktop,r=this.params,i=e.$el[0],n=!(!Support.passiveListener||!r.passiveListeners)&&{passive:!1,capture:!1},s=!(!Support.passiveListener||!r.passiveListeners)&&{passive:!0,capture:!1};Support.touch?(i.removeEventListener(t.start,this.scrollbar.onDragStart,n),i.removeEventListener(t.move,this.scrollbar.onDragMove,n),i.removeEventListener(t.end,this.scrollbar.onDragEnd,s)):(i.removeEventListener(a.start,this.scrollbar.onDragStart,n),doc.removeEventListener(a.move,this.scrollbar.onDragMove,n),doc.removeEventListener(a.end,this.scrollbar.onDragEnd,s))}},init:function(){if(this.params.scrollbar.el){var e=this.scrollbar,t=this.$el,a=this.params.scrollbar,r=$(a.el);this.params.uniqueNavElements&&"string"==typeof a.el&&r.length>1&&1===t.find(a.el).length&&(r=t.find(a.el));var i=r.find("."+this.params.scrollbar.dragClass);0===i.length&&(i=$('
                    '),r.append(i)),Utils.extend(e,{$el:r,el:r[0],$dragEl:i,dragEl:i[0]}),a.draggable&&e.enableDraggable()}},destroy:function(){this.scrollbar.disableDraggable()}},Scrollbar$1={name:"scrollbar",params:{scrollbar:{el:null,dragSize:"auto",hide:!1,draggable:!1,snapOnRelease:!0,lockClass:"swiper-scrollbar-lock",dragClass:"swiper-scrollbar-drag"}},create:function(){Utils.extend(this,{scrollbar:{init:Scrollbar.init.bind(this),destroy:Scrollbar.destroy.bind(this),updateSize:Scrollbar.updateSize.bind(this),setTranslate:Scrollbar.setTranslate.bind(this),setTransition:Scrollbar.setTransition.bind(this),enableDraggable:Scrollbar.enableDraggable.bind(this),disableDraggable:Scrollbar.disableDraggable.bind(this),setDragPosition:Scrollbar.setDragPosition.bind(this),getPointerPosition:Scrollbar.getPointerPosition.bind(this),onDragStart:Scrollbar.onDragStart.bind(this),onDragMove:Scrollbar.onDragMove.bind(this),onDragEnd:Scrollbar.onDragEnd.bind(this),isTouched:!1,timeout:null,dragTimeout:null}})},on:{init:function(){this.scrollbar.init(),this.scrollbar.updateSize(),this.scrollbar.setTranslate()},update:function(){this.scrollbar.updateSize()},resize:function(){this.scrollbar.updateSize()},observerUpdate:function(){this.scrollbar.updateSize()},setTranslate:function(){this.scrollbar.setTranslate()},setTransition:function(e){this.scrollbar.setTransition(e)},destroy:function(){this.scrollbar.destroy()}}},Parallax={setTransform:function(e,t){var a=this.rtl,r=$(e),i=a?-1:1,n=r.attr("data-swiper-parallax")||"0",s=r.attr("data-swiper-parallax-x"),o=r.attr("data-swiper-parallax-y"),l=r.attr("data-swiper-parallax-scale"),p=r.attr("data-swiper-parallax-opacity");if(s||o?(s=s||"0",o=o||"0"):this.isHorizontal()?(s=n,o="0"):(o=n,s="0"),s=s.indexOf("%")>=0?parseInt(s,10)*t*i+"%":s*t*i+"px",o=o.indexOf("%")>=0?parseInt(o,10)*t+"%":o*t+"px",null!=p){var c=p-(p-1)*(1-Math.abs(t));r[0].style.opacity=c}if(null==l)r.transform("translate3d("+s+", "+o+", 0px)");else{var d=l-(l-1)*(1-Math.abs(t));r.transform("translate3d("+s+", "+o+", 0px) scale("+d+")")}},setTranslate:function(){var e=this,t=e.$el,a=e.slides,r=e.progress,i=e.snapGrid;t.children("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]").each((function(t,a){e.parallax.setTransform(a,r)})),a.each((function(t,a){var n=a.progress;e.params.slidesPerGroup>1&&"auto"!==e.params.slidesPerView&&(n+=Math.ceil(t/2)-r*(i.length-1)),n=Math.min(Math.max(n,-1),1),$(a).find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]").each((function(t,a){e.parallax.setTransform(a,n)}))}))},setTransition:function(e){void 0===e&&(e=this.params.speed);this.$el.find("[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]").each((function(t,a){var r=$(a),i=parseInt(r.attr("data-swiper-parallax-duration"),10)||e;0===e&&(i=0),r.transition(i)}))}},Parallax$1={name:"parallax",params:{parallax:{enabled:!1}},create:function(){Utils.extend(this,{parallax:{setTransform:Parallax.setTransform.bind(this),setTranslate:Parallax.setTranslate.bind(this),setTransition:Parallax.setTransition.bind(this)}})},on:{beforeInit:function(){this.params.parallax.enabled&&(this.params.watchSlidesProgress=!0,this.originalParams.watchSlidesProgress=!0)},init:function(){this.params.parallax.enabled&&this.parallax.setTranslate()},setTranslate:function(){this.params.parallax.enabled&&this.parallax.setTranslate()},setTransition:function(e){this.params.parallax.enabled&&this.parallax.setTransition(e)}}},Zoom={getDistanceBetweenTouches:function(e){if(e.targetTouches.length<2)return 1;var t=e.targetTouches[0].pageX,a=e.targetTouches[0].pageY,r=e.targetTouches[1].pageX,i=e.targetTouches[1].pageY;return Math.sqrt(Math.pow(r-t,2)+Math.pow(i-a,2))},onGestureStart:function(e){var t=this.params.zoom,a=this.zoom,r=a.gesture;if(a.fakeGestureTouched=!1,a.fakeGestureMoved=!1,!Support.gestures){if("touchstart"!==e.type||"touchstart"===e.type&&e.targetTouches.length<2)return;a.fakeGestureTouched=!0,r.scaleStart=Zoom.getDistanceBetweenTouches(e)}r.$slideEl&&r.$slideEl.length||(r.$slideEl=$(e.target).closest("."+this.params.slideClass),0===r.$slideEl.length&&(r.$slideEl=this.slides.eq(this.activeIndex)),r.$imageEl=r.$slideEl.find("img, svg, canvas, picture, .swiper-zoom-target"),r.$imageWrapEl=r.$imageEl.parent("."+t.containerClass),r.maxRatio=r.$imageWrapEl.attr("data-swiper-zoom")||t.maxRatio,0!==r.$imageWrapEl.length)?(r.$imageEl&&r.$imageEl.transition(0),this.zoom.isScaling=!0):r.$imageEl=void 0},onGestureChange:function(e){var t=this.params.zoom,a=this.zoom,r=a.gesture;if(!Support.gestures){if("touchmove"!==e.type||"touchmove"===e.type&&e.targetTouches.length<2)return;a.fakeGestureMoved=!0,r.scaleMove=Zoom.getDistanceBetweenTouches(e)}r.$imageEl&&0!==r.$imageEl.length&&(Support.gestures?a.scale=e.scale*a.currentScale:a.scale=r.scaleMove/r.scaleStart*a.currentScale,a.scale>r.maxRatio&&(a.scale=r.maxRatio-1+Math.pow(a.scale-r.maxRatio+1,.5)),a.scaler.touchesStart.x))return void(r.isTouched=!1);if(!this.isHorizontal()&&(Math.floor(r.minY)===Math.floor(r.startY)&&r.touchesCurrent.yr.touchesStart.y))return void(r.isTouched=!1)}e.cancelable&&e.preventDefault(),e.stopPropagation(),r.isMoved=!0,r.currentX=r.touchesCurrent.x-r.touchesStart.x+r.startX,r.currentY=r.touchesCurrent.y-r.touchesStart.y+r.startY,r.currentXr.maxX&&(r.currentX=r.maxX-1+Math.pow(r.currentX-r.maxX+1,.8)),r.currentYr.maxY&&(r.currentY=r.maxY-1+Math.pow(r.currentY-r.maxY+1,.8)),i.prevPositionX||(i.prevPositionX=r.touchesCurrent.x),i.prevPositionY||(i.prevPositionY=r.touchesCurrent.y),i.prevTime||(i.prevTime=Date.now()),i.x=(r.touchesCurrent.x-i.prevPositionX)/(Date.now()-i.prevTime)/2,i.y=(r.touchesCurrent.y-i.prevPositionY)/(Date.now()-i.prevTime)/2,Math.abs(r.touchesCurrent.x-i.prevPositionX)<2&&(i.x=0),Math.abs(r.touchesCurrent.y-i.prevPositionY)<2&&(i.y=0),i.prevPositionX=r.touchesCurrent.x,i.prevPositionY=r.touchesCurrent.y,i.prevTime=Date.now(),a.$imageWrapEl.transform("translate3d("+r.currentX+"px, "+r.currentY+"px,0)")}}},onTouchEnd:function(){var e=this.zoom,t=e.gesture,a=e.image,r=e.velocity;if(t.$imageEl&&0!==t.$imageEl.length){if(!a.isTouched||!a.isMoved)return a.isTouched=!1,void(a.isMoved=!1);a.isTouched=!1,a.isMoved=!1;var i=300,n=300,s=r.x*i,o=a.currentX+s,l=r.y*n,p=a.currentY+l;0!==r.x&&(i=Math.abs((o-a.currentX)/r.x)),0!==r.y&&(n=Math.abs((p-a.currentY)/r.y));var c=Math.max(i,n);a.currentX=o,a.currentY=p;var d=a.width*e.scale,u=a.height*e.scale;a.minX=Math.min(t.slideWidth/2-d/2,0),a.maxX=-a.minX,a.minY=Math.min(t.slideHeight/2-u/2,0),a.maxY=-a.minY,a.currentX=Math.max(Math.min(a.currentX,a.maxX),a.minX),a.currentY=Math.max(Math.min(a.currentY,a.maxY),a.minY),t.$imageWrapEl.transition(c).transform("translate3d("+a.currentX+"px, "+a.currentY+"px,0)")}},onTransitionEnd:function(){var e=this.zoom,t=e.gesture;t.$slideEl&&this.previousIndex!==this.activeIndex&&(t.$imageEl&&t.$imageEl.transform("translate3d(0,0,0) scale(1)"),t.$imageWrapEl&&t.$imageWrapEl.transform("translate3d(0,0,0)"),e.scale=1,e.currentScale=1,t.$slideEl=void 0,t.$imageEl=void 0,t.$imageWrapEl=void 0)},toggle:function(e){var t=this.zoom;t.scale&&1!==t.scale?t.out():t.in(e)},in:function(e){var t,a,r,i,n,s,o,l,p,c,d,u,h,f,v,m,g=this.zoom,b=this.params.zoom,y=g.gesture,w=g.image;(y.$slideEl||(this.params.virtual&&this.params.virtual.enabled&&this.virtual?y.$slideEl=this.$wrapperEl.children("."+this.params.slideActiveClass):y.$slideEl=this.slides.eq(this.activeIndex),y.$imageEl=y.$slideEl.find("img, svg, canvas, picture, .swiper-zoom-target"),y.$imageWrapEl=y.$imageEl.parent("."+b.containerClass)),y.$imageEl&&0!==y.$imageEl.length)&&(y.$slideEl.addClass(""+b.zoomedSlideClass),void 0===w.touchesStart.x&&e?(t="touchend"===e.type?e.changedTouches[0].pageX:e.pageX,a="touchend"===e.type?e.changedTouches[0].pageY:e.pageY):(t=w.touchesStart.x,a=w.touchesStart.y),g.scale=y.$imageWrapEl.attr("data-swiper-zoom")||b.maxRatio,g.currentScale=y.$imageWrapEl.attr("data-swiper-zoom")||b.maxRatio,e?(v=y.$slideEl[0].offsetWidth,m=y.$slideEl[0].offsetHeight,r=y.$slideEl.offset().left+v/2-t,i=y.$slideEl.offset().top+m/2-a,o=y.$imageEl[0].offsetWidth,l=y.$imageEl[0].offsetHeight,p=o*g.scale,c=l*g.scale,h=-(d=Math.min(v/2-p/2,0)),f=-(u=Math.min(m/2-c/2,0)),(n=r*g.scale)h&&(n=h),(s=i*g.scale)f&&(s=f)):(n=0,s=0),y.$imageWrapEl.transition(300).transform("translate3d("+n+"px, "+s+"px,0)"),y.$imageEl.transition(300).transform("translate3d(0,0,0) scale("+g.scale+")"))},out:function(){var e=this.zoom,t=this.params.zoom,a=e.gesture;a.$slideEl||(this.params.virtual&&this.params.virtual.enabled&&this.virtual?a.$slideEl=this.$wrapperEl.children("."+this.params.slideActiveClass):a.$slideEl=this.slides.eq(this.activeIndex),a.$imageEl=a.$slideEl.find("img, svg, canvas, picture, .swiper-zoom-target"),a.$imageWrapEl=a.$imageEl.parent("."+t.containerClass)),a.$imageEl&&0!==a.$imageEl.length&&(e.scale=1,e.currentScale=1,a.$imageWrapEl.transition(300).transform("translate3d(0,0,0)"),a.$imageEl.transition(300).transform("translate3d(0,0,0) scale(1)"),a.$slideEl.removeClass(""+t.zoomedSlideClass),a.$slideEl=void 0)},enable:function(){var e=this.zoom;if(!e.enabled){e.enabled=!0;var t=!("touchstart"!==this.touchEvents.start||!Support.passiveListener||!this.params.passiveListeners)&&{passive:!0,capture:!1},a=!Support.passiveListener||{passive:!1,capture:!0},r="."+this.params.slideClass;Support.gestures?(this.$wrapperEl.on("gesturestart",r,e.onGestureStart,t),this.$wrapperEl.on("gesturechange",r,e.onGestureChange,t),this.$wrapperEl.on("gestureend",r,e.onGestureEnd,t)):"touchstart"===this.touchEvents.start&&(this.$wrapperEl.on(this.touchEvents.start,r,e.onGestureStart,t),this.$wrapperEl.on(this.touchEvents.move,r,e.onGestureChange,a),this.$wrapperEl.on(this.touchEvents.end,r,e.onGestureEnd,t),this.touchEvents.cancel&&this.$wrapperEl.on(this.touchEvents.cancel,r,e.onGestureEnd,t)),this.$wrapperEl.on(this.touchEvents.move,"."+this.params.zoom.containerClass,e.onTouchMove,a)}},disable:function(){var e=this.zoom;if(e.enabled){this.zoom.enabled=!1;var t=!("touchstart"!==this.touchEvents.start||!Support.passiveListener||!this.params.passiveListeners)&&{passive:!0,capture:!1},a=!Support.passiveListener||{passive:!1,capture:!0},r="."+this.params.slideClass;Support.gestures?(this.$wrapperEl.off("gesturestart",r,e.onGestureStart,t),this.$wrapperEl.off("gesturechange",r,e.onGestureChange,t),this.$wrapperEl.off("gestureend",r,e.onGestureEnd,t)):"touchstart"===this.touchEvents.start&&(this.$wrapperEl.off(this.touchEvents.start,r,e.onGestureStart,t),this.$wrapperEl.off(this.touchEvents.move,r,e.onGestureChange,a),this.$wrapperEl.off(this.touchEvents.end,r,e.onGestureEnd,t),this.touchEvents.cancel&&this.$wrapperEl.off(this.touchEvents.cancel,r,e.onGestureEnd,t)),this.$wrapperEl.off(this.touchEvents.move,"."+this.params.zoom.containerClass,e.onTouchMove,a)}}},Zoom$1={name:"zoom",params:{zoom:{enabled:!1,maxRatio:3,minRatio:1,toggle:!0,containerClass:"swiper-zoom-container",zoomedSlideClass:"swiper-slide-zoomed"}},create:function(){var e=this,t={enabled:!1,scale:1,currentScale:1,isScaling:!1,gesture:{$slideEl:void 0,slideWidth:void 0,slideHeight:void 0,$imageEl:void 0,$imageWrapEl:void 0,maxRatio:3},image:{isTouched:void 0,isMoved:void 0,currentX:void 0,currentY:void 0,minX:void 0,minY:void 0,maxX:void 0,maxY:void 0,width:void 0,height:void 0,startX:void 0,startY:void 0,touchesStart:{},touchesCurrent:{}},velocity:{x:void 0,y:void 0,prevPositionX:void 0,prevPositionY:void 0,prevTime:void 0}};"onGestureStart onGestureChange onGestureEnd onTouchStart onTouchMove onTouchEnd onTransitionEnd toggle enable disable in out".split(" ").forEach((function(a){t[a]=Zoom[a].bind(e)})),Utils.extend(e,{zoom:t});var a=1;Object.defineProperty(e.zoom,"scale",{get:function(){return a},set:function(t){if(a!==t){var r=e.zoom.gesture.$imageEl?e.zoom.gesture.$imageEl[0]:void 0,i=e.zoom.gesture.$slideEl?e.zoom.gesture.$slideEl[0]:void 0;e.emit("zoomChange",t,r,i)}a=t}})},on:{init:function(){this.params.zoom.enabled&&this.zoom.enable()},destroy:function(){this.zoom.disable()},touchStart:function(e){this.zoom.enabled&&this.zoom.onTouchStart(e)},touchEnd:function(e){this.zoom.enabled&&this.zoom.onTouchEnd(e)},doubleTap:function(e){this.params.zoom.enabled&&this.zoom.enabled&&this.params.zoom.toggle&&this.zoom.toggle(e)},transitionEnd:function(){this.zoom.enabled&&this.params.zoom.enabled&&this.zoom.onTransitionEnd()},slideChange:function(){this.zoom.enabled&&this.params.zoom.enabled&&this.params.cssMode&&this.zoom.onTransitionEnd()}}},Lazy$2={loadInSlide:function(e,t){void 0===t&&(t=!0);var a=this,r=a.params.lazy;if(void 0!==e&&0!==a.slides.length){var i=a.virtual&&a.params.virtual.enabled?a.$wrapperEl.children("."+a.params.slideClass+'[data-swiper-slide-index="'+e+'"]'):a.slides.eq(e),n=i.find("."+r.elementClass+":not(."+r.loadedClass+"):not(."+r.loadingClass+")");!i.hasClass(r.elementClass)||i.hasClass(r.loadedClass)||i.hasClass(r.loadingClass)||(n=n.add(i[0])),0!==n.length&&n.each((function(e,n){var s=$(n);s.addClass(r.loadingClass);var o=s.attr("data-background"),l=s.attr("data-src"),p=s.attr("data-srcset"),c=s.attr("data-sizes"),d=s.parent("picture");a.loadImage(s[0],l||o,p,c,!1,(function(){if(null!=a&&a&&(!a||a.params)&&!a.destroyed){if(o?(s.css("background-image",'url("'+o+'")'),s.removeAttr("data-background")):(p&&(s.attr("srcset",p),s.removeAttr("data-srcset")),c&&(s.attr("sizes",c),s.removeAttr("data-sizes")),d.length&&d.children("source").each((function(e,t){var a=$(t);a.attr("data-srcset")&&(a.attr("srcset",a.attr("data-srcset")),a.removeAttr("data-srcset"))})),l&&(s.attr("src",l),s.removeAttr("data-src"))),s.addClass(r.loadedClass).removeClass(r.loadingClass),i.find("."+r.preloaderClass).remove(),a.params.loop&&t){var e=i.attr("data-swiper-slide-index");if(i.hasClass(a.params.slideDuplicateClass)){var n=a.$wrapperEl.children('[data-swiper-slide-index="'+e+'"]:not(.'+a.params.slideDuplicateClass+")");a.lazy.loadInSlide(n.index(),!1)}else{var u=a.$wrapperEl.children("."+a.params.slideDuplicateClass+'[data-swiper-slide-index="'+e+'"]');a.lazy.loadInSlide(u.index(),!1)}}a.emit("lazyImageReady",i[0],s[0]),a.params.autoHeight&&a.updateAutoHeight()}})),a.emit("lazyImageLoad",i[0],s[0])}))}},load:function(){var e=this,t=e.$wrapperEl,a=e.params,r=e.slides,i=e.activeIndex,n=e.virtual&&a.virtual.enabled,s=a.lazy,o=a.slidesPerView;function l(e){if(n){if(t.children("."+a.slideClass+'[data-swiper-slide-index="'+e+'"]').length)return!0}else if(r[e])return!0;return!1}function p(e){return n?$(e).attr("data-swiper-slide-index"):$(e).index()}if("auto"===o&&(o=0),e.lazy.initialImageLoaded||(e.lazy.initialImageLoaded=!0),e.params.watchSlidesVisibility)t.children("."+a.slideVisibleClass).each((function(t,a){var r=n?$(a).attr("data-swiper-slide-index"):$(a).index();e.lazy.loadInSlide(r)}));else if(o>1)for(var c=i;c1||s.loadPrevNextAmount&&s.loadPrevNextAmount>1){for(var d=s.loadPrevNextAmount,u=o,h=Math.min(i+u+Math.max(d,u),r.length),f=Math.max(i-Math.max(u,d),0),v=i+o;v0&&e.lazy.loadInSlide(p(g));var b=t.children("."+a.slidePrevClass);b.length>0&&e.lazy.loadInSlide(p(b))}}},Lazy$3={name:"lazy",params:{lazy:{enabled:!1,loadPrevNext:!1,loadPrevNextAmount:1,loadOnTransitionStart:!1,elementClass:"swiper-lazy",loadingClass:"swiper-lazy-loading",loadedClass:"swiper-lazy-loaded",preloaderClass:"swiper-lazy-preloader"}},create:function(){Utils.extend(this,{lazy:{initialImageLoaded:!1,load:Lazy$2.load.bind(this),loadInSlide:Lazy$2.loadInSlide.bind(this)}})},on:{beforeInit:function(){this.params.lazy.enabled&&this.params.preloadImages&&(this.params.preloadImages=!1)},init:function(){this.params.lazy.enabled&&!this.params.loop&&0===this.params.initialSlide&&this.lazy.load()},scroll:function(){this.params.freeMode&&!this.params.freeModeSticky&&this.lazy.load()},resize:function(){this.params.lazy.enabled&&this.lazy.load()},scrollbarDragMove:function(){this.params.lazy.enabled&&this.lazy.load()},transitionStart:function(){this.params.lazy.enabled&&(this.params.lazy.loadOnTransitionStart||!this.params.lazy.loadOnTransitionStart&&!this.lazy.initialImageLoaded)&&this.lazy.load()},transitionEnd:function(){this.params.lazy.enabled&&!this.params.lazy.loadOnTransitionStart&&this.lazy.load()},slideChange:function(){this.params.lazy.enabled&&this.params.cssMode&&this.lazy.load()}}},Controller={LinearSpline:function(e,t){var a,r,i,n,s,o=function(e,t){for(r=-1,a=e.length;a-r>1;)e[i=a+r>>1]<=t?r=i:a=i;return a};return this.x=e,this.y=t,this.lastIndex=e.length-1,this.interpolate=function(e){return e?(s=o(this.x,e),n=s-1,(e-this.x[n])*(this.y[s]-this.y[n])/(this.x[s]-this.x[n])+this.y[n]):0},this},getInterpolateFunction:function(e){this.controller.spline||(this.controller.spline=this.params.loop?new Controller.LinearSpline(this.slidesGrid,e.slidesGrid):new Controller.LinearSpline(this.snapGrid,e.snapGrid))},setTranslate:function(e,t){var a,r,i=this,n=i.controller.control;function s(e){var t=i.rtlTranslate?-i.translate:i.translate;"slide"===i.params.controller.by&&(i.controller.getInterpolateFunction(e),r=-i.controller.spline.interpolate(-t)),r&&"container"!==i.params.controller.by||(a=(e.maxTranslate()-e.minTranslate())/(i.maxTranslate()-i.minTranslate()),r=(t-i.minTranslate())*a+e.minTranslate()),i.params.controller.inverse&&(r=e.maxTranslate()-r),e.updateProgress(r),e.setTranslate(r,i),e.updateActiveIndex(),e.updateSlidesClasses()}if(Array.isArray(n))for(var o=0;o0&&(this.isBeginning?(this.a11y.disableEl(a),this.a11y.makeElNotFocusable(a)):(this.a11y.enableEl(a),this.a11y.makeElFocusable(a))),t&&t.length>0&&(this.isEnd?(this.a11y.disableEl(t),this.a11y.makeElNotFocusable(t)):(this.a11y.enableEl(t),this.a11y.makeElFocusable(t)))}},updatePagination:function(){var e=this,t=e.params.a11y;e.pagination&&e.params.pagination.clickable&&e.pagination.bullets&&e.pagination.bullets.length&&e.pagination.bullets.each((function(a,r){var i=$(r);e.a11y.makeElFocusable(i),e.a11y.addElRole(i,"button"),e.a11y.addElLabel(i,t.paginationBulletMessage.replace(/\{\{index\}\}/,i.index()+1))}))},init:function(){this.$el.append(this.a11y.liveRegion);var e,t,a=this.params.a11y;this.navigation&&this.navigation.$nextEl&&(e=this.navigation.$nextEl),this.navigation&&this.navigation.$prevEl&&(t=this.navigation.$prevEl),e&&(this.a11y.makeElFocusable(e),this.a11y.addElRole(e,"button"),this.a11y.addElLabel(e,a.nextSlideMessage),e.on("keydown",this.a11y.onEnterKey)),t&&(this.a11y.makeElFocusable(t),this.a11y.addElRole(t,"button"),this.a11y.addElLabel(t,a.prevSlideMessage),t.on("keydown",this.a11y.onEnterKey)),this.pagination&&this.params.pagination.clickable&&this.pagination.bullets&&this.pagination.bullets.length&&this.pagination.$el.on("keydown","."+this.params.pagination.bulletClass,this.a11y.onEnterKey)},destroy:function(){var e,t;this.a11y.liveRegion&&this.a11y.liveRegion.length>0&&this.a11y.liveRegion.remove(),this.navigation&&this.navigation.$nextEl&&(e=this.navigation.$nextEl),this.navigation&&this.navigation.$prevEl&&(t=this.navigation.$prevEl),e&&e.off("keydown",this.a11y.onEnterKey),t&&t.off("keydown",this.a11y.onEnterKey),this.pagination&&this.params.pagination.clickable&&this.pagination.bullets&&this.pagination.bullets.length&&this.pagination.$el.off("keydown","."+this.params.pagination.bulletClass,this.a11y.onEnterKey)}},A11y={name:"a11y",params:{a11y:{enabled:!0,notificationClass:"swiper-notification",prevSlideMessage:"Previous slide",nextSlideMessage:"Next slide",firstSlideMessage:"This is the first slide",lastSlideMessage:"This is the last slide",paginationBulletMessage:"Go to slide {{index}}"}},create:function(){var e=this;Utils.extend(e,{a11y:{liveRegion:$('')}}),Object.keys(a11y).forEach((function(t){e.a11y[t]=a11y[t].bind(e)}))},on:{init:function(){this.params.a11y.enabled&&(this.a11y.init(),this.a11y.updateNavigation())},toEdge:function(){this.params.a11y.enabled&&this.a11y.updateNavigation()},fromEdge:function(){this.params.a11y.enabled&&this.a11y.updateNavigation()},paginationUpdate:function(){this.params.a11y.enabled&&this.a11y.updatePagination()},destroy:function(){this.params.a11y.enabled&&this.a11y.destroy()}}},Autoplay={run:function(){var e=this,t=e.slides.eq(e.activeIndex),a=e.params.autoplay.delay;t.attr("data-swiper-autoplay")&&(a=t.attr("data-swiper-autoplay")||e.params.autoplay.delay),clearTimeout(e.autoplay.timeout),e.autoplay.timeout=Utils.nextTick((function(){e.params.autoplay.reverseDirection?e.params.loop?(e.loopFix(),e.slidePrev(e.params.speed,!0,!0),e.emit("autoplay")):e.isBeginning?e.params.autoplay.stopOnLastSlide?e.autoplay.stop():(e.slideTo(e.slides.length-1,e.params.speed,!0,!0),e.emit("autoplay")):(e.slidePrev(e.params.speed,!0,!0),e.emit("autoplay")):e.params.loop?(e.loopFix(),e.slideNext(e.params.speed,!0,!0),e.emit("autoplay")):e.isEnd?e.params.autoplay.stopOnLastSlide?e.autoplay.stop():(e.slideTo(0,e.params.speed,!0,!0),e.emit("autoplay")):(e.slideNext(e.params.speed,!0,!0),e.emit("autoplay")),e.params.cssMode&&e.autoplay.running&&e.autoplay.run()}),a)},start:function(){return void 0===this.autoplay.timeout&&(!this.autoplay.running&&(this.autoplay.running=!0,this.emit("autoplayStart"),this.autoplay.run(),!0))},stop:function(){return!!this.autoplay.running&&(void 0!==this.autoplay.timeout&&(this.autoplay.timeout&&(clearTimeout(this.autoplay.timeout),this.autoplay.timeout=void 0),this.autoplay.running=!1,this.emit("autoplayStop"),!0))},pause:function(e){this.autoplay.running&&(this.autoplay.paused||(this.autoplay.timeout&&clearTimeout(this.autoplay.timeout),this.autoplay.paused=!0,0!==e&&this.params.autoplay.waitForTransition?(this.$wrapperEl[0].addEventListener("transitionend",this.autoplay.onTransitionEnd),this.$wrapperEl[0].addEventListener("webkitTransitionEnd",this.autoplay.onTransitionEnd)):(this.autoplay.paused=!1,this.autoplay.run())))}},Autoplay$1={name:"autoplay",params:{autoplay:{enabled:!1,delay:3e3,waitForTransition:!0,disableOnInteraction:!0,stopOnLastSlide:!1,reverseDirection:!1}},create:function(){var e=this;Utils.extend(e,{autoplay:{running:!1,paused:!1,run:Autoplay.run.bind(e),start:Autoplay.start.bind(e),stop:Autoplay.stop.bind(e),pause:Autoplay.pause.bind(e),onVisibilityChange:function(){"hidden"===document.visibilityState&&e.autoplay.running&&e.autoplay.pause(),"visible"===document.visibilityState&&e.autoplay.paused&&(e.autoplay.run(),e.autoplay.paused=!1)},onTransitionEnd:function(t){e&&!e.destroyed&&e.$wrapperEl&&t.target===this&&(e.$wrapperEl[0].removeEventListener("transitionend",e.autoplay.onTransitionEnd),e.$wrapperEl[0].removeEventListener("webkitTransitionEnd",e.autoplay.onTransitionEnd),e.autoplay.paused=!1,e.autoplay.running?e.autoplay.run():e.autoplay.stop())}}})},on:{init:function(){this.params.autoplay.enabled&&(this.autoplay.start(),document.addEventListener("visibilitychange",this.autoplay.onVisibilityChange))},beforeTransitionStart:function(e,t){this.autoplay.running&&(t||!this.params.autoplay.disableOnInteraction?this.autoplay.pause(e):this.autoplay.stop())},sliderFirstMove:function(){this.autoplay.running&&(this.params.autoplay.disableOnInteraction?this.autoplay.stop():this.autoplay.pause())},touchEnd:function(){this.params.cssMode&&this.autoplay.paused&&!this.params.autoplay.disableOnInteraction&&this.autoplay.run()},destroy:function(){this.autoplay.running&&this.autoplay.stop(),document.removeEventListener("visibilitychange",this.autoplay.onVisibilityChange)}}},Fade={setTranslate:function(){for(var e=this.slides,t=0;t'),a.append(e)),e.css({height:i+"px"})):0===(e=t.find(".swiper-cube-shadow")).length&&(e=$('
                    '),t.append(e)));for(var u=0;u-1&&(d=90*f+90*g,s&&(d=90*-f-90*g)),h.transform(C),l.slideShadows){var x=p?h.find(".swiper-slide-shadow-left"):h.find(".swiper-slide-shadow-top"),k=p?h.find(".swiper-slide-shadow-right"):h.find(".swiper-slide-shadow-bottom");0===x.length&&(x=$('
                    '),h.append(x)),0===k.length&&(k=$('
                    '),h.append(k)),x.length&&(x[0].style.opacity=Math.max(-g,0)),k.length&&(k[0].style.opacity=Math.max(g,0))}}if(a.css({"-webkit-transform-origin":"50% 50% -"+o/2+"px","-moz-transform-origin":"50% 50% -"+o/2+"px","-ms-transform-origin":"50% 50% -"+o/2+"px","transform-origin":"50% 50% -"+o/2+"px"}),l.shadow)if(p)e.transform("translate3d(0px, "+(i/2+l.shadowOffset)+"px, "+-i/2+"px) rotateX(90deg) rotateZ(0deg) scale("+l.shadowScale+")");else{var E=Math.abs(d)-90*Math.floor(Math.abs(d)/90),T=1.5-(Math.sin(2*E*Math.PI/360)/2+Math.cos(2*E*Math.PI/360)/2),S=l.shadowScale,M=l.shadowScale/T,P=l.shadowOffset;e.transform("scale3d("+S+", 1, "+M+") translate3d(0px, "+(n/2+P)+"px, "+-n/2/M+"px) rotateX(-90deg)")}var O=Browser.isSafari||Browser.isUiWebView?-o/2:0;a.transform("translate3d(0px,0,"+O+"px) rotateX("+(this.isHorizontal()?0:d)+"deg) rotateY("+(this.isHorizontal()?-d:0)+"deg)")},setTransition:function(e){var t=this.$el;this.slides.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e),this.params.cubeEffect.shadow&&!this.isHorizontal()&&t.find(".swiper-cube-shadow").transition(e)}},EffectCube={name:"effect-cube",params:{cubeEffect:{slideShadows:!0,shadow:!0,shadowOffset:20,shadowScale:.94}},create:function(){Utils.extend(this,{cubeEffect:{setTranslate:Cube.setTranslate.bind(this),setTransition:Cube.setTransition.bind(this)}})},on:{beforeInit:function(){if("cube"===this.params.effect){this.classNames.push(this.params.containerModifierClass+"cube"),this.classNames.push(this.params.containerModifierClass+"3d");var e={slidesPerView:1,slidesPerColumn:1,slidesPerGroup:1,watchSlidesProgress:!0,resistanceRatio:0,spaceBetween:0,centeredSlides:!1,virtualTranslate:!0};Utils.extend(this.params,e),Utils.extend(this.originalParams,e)}},setTranslate:function(){"cube"===this.params.effect&&this.cubeEffect.setTranslate()},setTransition:function(e){"cube"===this.params.effect&&this.cubeEffect.setTransition(e)}}},Flip={setTranslate:function(){for(var e=this.slides,t=this.rtlTranslate,a=0;a'),r.append(p)),0===c.length&&(c=$('
                    '),r.append(c)),p.length&&(p[0].style.opacity=Math.max(-i,0)),c.length&&(c[0].style.opacity=Math.max(i,0))}r.transform("translate3d("+o+"px, "+l+"px, 0px) rotateX("+s+"deg) rotateY("+n+"deg)")}},setTransition:function(e){var t=this,a=t.slides,r=t.activeIndex,i=t.$wrapperEl;if(a.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e),t.params.virtualTranslate&&0!==e){var n=!1;a.eq(r).transitionEnd((function(){if(!n&&t&&!t.destroyed){n=!0,t.animating=!1;for(var e=["webkitTransitionEnd","transitionend"],a=0;a'),h.append(k)),0===E.length&&(E=$('
                    '),h.append(E)),k.length&&(k[0].style.opacity=v>0?v:0),E.length&&(E[0].style.opacity=-v>0?-v:0)}}(Support.pointerEvents||Support.prefixedPointerEvents)&&(r[0].style.perspectiveOrigin=l+"px 50%")},setTransition:function(e){this.slides.transition(e).find(".swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left").transition(e)}},EffectCoverflow={name:"effect-coverflow",params:{coverflowEffect:{rotate:50,stretch:0,depth:100,modifier:1,slideShadows:!0}},create:function(){Utils.extend(this,{coverflowEffect:{setTranslate:Coverflow.setTranslate.bind(this),setTransition:Coverflow.setTransition.bind(this)}})},on:{beforeInit:function(){"coverflow"===this.params.effect&&(this.classNames.push(this.params.containerModifierClass+"coverflow"),this.classNames.push(this.params.containerModifierClass+"3d"),this.params.watchSlidesProgress=!0,this.originalParams.watchSlidesProgress=!0)},setTranslate:function(){"coverflow"===this.params.effect&&this.coverflowEffect.setTranslate()},setTransition:function(e){"coverflow"===this.params.effect&&this.coverflowEffect.setTransition(e)}}},Thumbs={init:function(){var e=this.params.thumbs,t=this.constructor;e.swiper instanceof t?(this.thumbs.swiper=e.swiper,Utils.extend(this.thumbs.swiper.originalParams,{watchSlidesProgress:!0,slideToClickedSlide:!1}),Utils.extend(this.thumbs.swiper.params,{watchSlidesProgress:!0,slideToClickedSlide:!1})):Utils.isObject(e.swiper)&&(this.thumbs.swiper=new t(Utils.extend({},e.swiper,{watchSlidesVisibility:!0,watchSlidesProgress:!0,slideToClickedSlide:!1})),this.thumbs.swiperCreated=!0),this.thumbs.swiper.$el.addClass(this.params.thumbs.thumbsContainerClass),this.thumbs.swiper.on("tap",this.thumbs.onThumbClick)},onThumbClick:function(){var e=this.thumbs.swiper;if(e){var t=e.clickedIndex,a=e.clickedSlide;if(!(a&&$(a).hasClass(this.params.thumbs.slideThumbActiveClass)||null==t)){var r;if(r=e.params.loop?parseInt($(e.clickedSlide).attr("data-swiper-slide-index"),10):t,this.params.loop){var i=this.activeIndex;this.slides.eq(i).hasClass(this.params.slideDuplicateClass)&&(this.loopFix(),this._clientLeft=this.$wrapperEl[0].clientLeft,i=this.activeIndex);var n=this.slides.eq(i).prevAll('[data-swiper-slide-index="'+r+'"]').eq(0).index(),s=this.slides.eq(i).nextAll('[data-swiper-slide-index="'+r+'"]').eq(0).index();r=void 0===n?s:void 0===s?n:s-ithis.previousIndex?"next":"prev"}else s=(n=this.realIndex)>this.previousIndex?"next":"prev";i&&(n+="next"===s?r:-1*r),t.visibleSlidesIndexes&&t.visibleSlidesIndexes.indexOf(n)<0&&(t.params.centeredSlides?n=n>o?n-Math.floor(a/2)+1:n+Math.floor(a/2)-1:n>o&&(n=n-a+1),t.slideTo(n,e?0:void 0))}var c=1,d=this.params.thumbs.slideThumbActiveClass;if(this.params.slidesPerView>1&&!this.params.centeredSlides&&(c=this.params.slidesPerView),this.params.thumbs.multipleActiveThumbs||(c=1),c=Math.floor(c),t.slides.removeClass(d),t.params.loop||t.params.virtual&&t.params.virtual.enabled)for(var u=0;u0),a.attr("data-swiper")?s=JSON.parse(a.attr("data-swiper")):a[0].f7SwiperParams?s=a[0].f7SwiperParams:(s=a.dataset(),Object.keys(s).forEach((function(e){var t=s[e];if("string"==typeof t&&0===t.indexOf("{")&&t.indexOf("}")>0)try{s[e]=JSON.parse(t)}catch(e){}}))),void 0===s.initialSlide&&void 0!==r&&(s.initialSlide=r);var o=t.swiper.create(a[0],s),l=a.parents(".tab").filter((function(e,t){return 0===$(t).parent(".tabs").parent(".tabs-animated-wrap, .tabs-swipeable-wrap").length})).eq(0);a.parents(".popup, .login-screen, .sheet-modal, .popover").on("modal:open",p),a.parents(".panel").on("panel:open",p),l&&l.length&&l.on("tab:show",p),o.on("beforeDestroy",(function(){a.parents(".popup, .login-screen, .sheet-modal, .popover").off("modal:open",p),a.parents(".panel").off("panel:open",p),l&&l.length&&l.off("tab:show",p)})),i&&o.on("slideChange",(function(){if(n){var e=t.views.get(a.parents(".view"));e||(e=t.views.main);var r=e.router,i=r.findTabRoute(o.slides.eq(o.activeIndex)[0]);i&&setTimeout((function(){r.navigate(i.path)}),0)}else t.tab.show({tabEl:o.slides.eq(o.activeIndex)})}))}function p(){o.update()}}Swiper.use([Device$1,Browser$1,Support$1,Resize,Observer$1,Virtual$1,Keyboard$1,Mousewheel$1,Navigation$1,Pagination$1,Scrollbar$1,Parallax$1,Zoom$1,Lazy$3,Controller$1,History$2,HashNavigation$1,A11y,Autoplay$1,EffectFade,EffectCube,EffectFlip,EffectCoverflow,Thumbs$1]);var Swiper$1={name:"swiper",static:{Swiper:Swiper},create:function(){this.swiper=ConstructorMethods({defaultSelector:".swiper-container",constructor:Swiper,domProp:"swiper"})},on:{pageBeforeRemove:function(e){var t=this;e.$el.find(".swiper-init, .tabs-swipeable-wrap").each((function(e,a){t.swiper.destroy(a)}))},pageMounted:function(e){var t=this;e.$el.find(".tabs-swipeable-wrap").each((function(e,a){initSwiper.call(t,a)}))},pageInit:function(e){var t=this;e.$el.find(".swiper-init, .tabs-swipeable-wrap").each((function(e,a){initSwiper.call(t,a)}))},pageReinit:function(e){var t=this;e.$el.find(".swiper-init, .tabs-swipeable-wrap").each((function(e,a){var r=t.swiper.get(a);r&&r.update&&r.update()}))},tabMounted:function(e){var t=this;$(e).find(".swiper-init, .tabs-swipeable-wrap").each((function(e,a){initSwiper.call(t,a)}))},tabShow:function(e){var t=this;$(e).find(".swiper-init, .tabs-swipeable-wrap").each((function(e,a){var r=t.swiper.get(a);r&&r.update&&r.update()}))},tabBeforeRemove:function(e){var t=this;$(e).find(".swiper-init, .tabs-swipeable-wrap").each((function(e,a){t.swiper.destroy(a)}))}},vnode:{"swiper-init":{insert:function(e){var t=e.elm;initSwiper.call(this,t)},destroy:function(e){var t=e.elm;this.swiper.destroy(t)}},"tabs-swipeable-wrap":{insert:function(e){var t=e.elm;initSwiper.call(this,t)},destroy:function(e){var t=e.elm;this.swiper.destroy(t)}}}},PhotoBrowser=function(e){function t(t,a){void 0===a&&(a={}),e.call(this,a,[t]);var r=this;r.app=t;var i=Utils.extend({on:{}},t.params.photoBrowser);r.useModulesParams(i),r.params=Utils.extend(i,a),Utils.extend(r,{exposed:!1,opened:!1,activeIndex:r.params.swiper.initialSlide,url:r.params.url,swipeToClose:{allow:!0,isTouched:!1,diff:void 0,start:void 0,current:void 0,started:!1,activeSlide:void 0,timeStart:void 0}}),r.useModules(),r.init()}e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t;var a={view:{configurable:!0}};return a.view.get=function(){var e=this.params,t=this.app;return e.view||t.views.main},t.prototype.onSlideChange=function(e){var t=this;t.activeIndex=e.activeIndex;var a=e.activeIndex+1,r=t.params.virtualSlides?t.params.photos.length:e.slides.length;e.params.loop&&(r-=2,(a-=e.loopedSlides)<1&&(a=r+a),a>r&&(a-=r));var i,n=t.params.virtualSlides?e.$wrapperEl.find('.swiper-slide[data-swiper-slide-index="'+e.activeIndex+'"]'):e.slides.eq(e.activeIndex),s=t.params.virtualSlides?e.$wrapperEl.find('.swiper-slide[data-swiper-slide-index="'+e.previousIndex+'"]'):e.slides.eq(e.previousIndex),o=t.$el.find(".photo-browser-current"),l=t.$el.find(".photo-browser-total");if("page"===t.params.type&&t.params.navbar&&0===o.length&&"ios"===t.app.theme&&(i=t.app.navbar.getElByPage(t.$el))&&(o=$(i).find(".photo-browser-current"),l=$(i).find(".photo-browser-total")),o.length&&l.length&&(o.text(a),l.text(r),i||(i=o.parents(".navbar")[0]),i&&t.app.navbar.size(i)),t.captions.length>0){var p=e.params.loop?n.attr("data-swiper-slide-index"):t.activeIndex;t.$captionsContainerEl.find(".photo-browser-caption-active").removeClass("photo-browser-caption-active"),t.$captionsContainerEl.find('[data-caption-index="'+p+'"]').addClass("photo-browser-caption-active")}var c=s.find("video");c.length>0&&"pause"in c[0]&&c[0].pause()},t.prototype.onTouchStart=function(){var e=this.swipeToClose;e.allow&&(e.isTouched=!0)},t.prototype.onTouchMove=function(e){var t=this,a=t.swipeToClose;a.isTouched&&(a.started||(a.started=!0,a.start="touchmove"===e.type?e.targetTouches[0].pageY:e.pageY,t.params.virtualSlides?a.activeSlide=t.swiper.$wrapperEl.children(".swiper-slide-active"):a.activeSlide=t.swiper.slides.eq(t.swiper.activeIndex),a.timeStart=Utils.now()),e.preventDefault(),a.current="touchmove"===e.type?e.targetTouches[0].pageY:e.pageY,a.diff=a.start-a.current,t.$el.transition(0).transform("translate3d(0,"+-a.diff+"px,0)"))},t.prototype.onTouchEnd=function(){var e=this,t=e.swipeToClose;if(t.isTouched=!1,t.started){t.started=!1,t.allow=!1;var a=Math.abs(t.diff),r=(new Date).getTime()-t.timeStart;r<300&&a>20||r>=300&&a>100?Utils.nextTick((function(){e.$el&&(t.diff<0?e.$el.addClass("swipe-close-to-bottom"):e.$el.addClass("swipe-close-to-top")),e.emit("local::swipeToClose",e),e.$el.transform("").transition(""),e.close(),t.allow=!0})):(0!==a?e.$el.addClass("photo-browser-transitioning").transitionEnd((function(){t.allow=!0,e.$el.removeClass("photo-browser-transitioning")})):t.allow=!0,Utils.nextTick((function(){e.$el.transform("").transition("")})))}else t.started=!1},t.prototype.renderNavbar=function(){var e=this;if(e.params.renderNavbar)return e.params.renderNavbar.call(e);var t=e.params.iconsColor;e.params.iconsColor||"dark"!==e.params.theme||(t="white");var a="ios"!==e.app.theme&&"aurora"!==e.app.theme||!e.params.pageBackLinkText?"":e.params.pageBackLinkText,r=void 0===e.params.navbarShowCount?e.params.photos.length>1:e.params.navbarShowCount,i="page"!==e.params.type;return('\n \n ").trim()},t.prototype.renderToolbar=function(){var e=this;if(e.params.renderToolbar)return e.params.renderToolbar.call(e);var t=e.params.iconsColor;return e.params.iconsColor||"dark"!==e.params.theme||(t="white"),('\n
                    \n
                    \n \n \n \n \n \n \n
                    \n
                    \n ').trim()},t.prototype.renderCaption=function(e,t){return this.params.renderCaption?this.params.renderCaption.call(this,e,t):('\n
                    \n '+e+"\n
                    \n ").trim()},t.prototype.renderObject=function(e,t){return this.params.renderObject?this.params.renderObject.call(this,e,t):'\n
                    '+(e.html?e.html:e)+"
                    \n "},t.prototype.renderLazyPhoto=function(e,t){return this.params.renderLazyPhoto?this.params.renderLazyPhoto.call(this,e,t):('\n
                    \n
                    \n \n \n \n
                    \n ').trim()},t.prototype.renderPhoto=function(e,t){return this.params.renderPhoto?this.params.renderPhoto.call(this,e,t):('\n
                    \n \n \n \n
                    \n ').trim()},t.prototype.render=function(){var e=this;return e.params.render?e.params.render.call(e,e.params):('\n
                    \n
                    \n
                    \n '+(e.params.navbar?e.renderNavbar():"")+"\n "+(e.params.toolbar?e.renderToolbar():"")+'\n
                    \n '+e.params.photos.map((function(t,a){return t.caption?e.renderCaption(t.caption,a):""})).join(" ")+'\n
                    \n
                    \n
                    \n '+(e.params.virtualSlides?"":e.params.photos.map((function(t,a){return t.html||("string"==typeof t||t instanceof String)&&t.indexOf("<")>=0&&t.indexOf(">")>=0?e.renderObject(t,a):!0===e.params.swiper.lazy||e.params.swiper.lazy&&e.params.swiper.lazy.enabled?e.renderLazyPhoto(t,a):e.renderPhoto(t,a)})).join(" "))+"\n
                    \n
                    \n
                    \n
                    \n
                    \n ").trim()},t.prototype.renderStandalone=function(){return this.params.renderStandalone?this.params.renderStandalone.call(this):'"},t.prototype.renderPage=function(){return this.params.renderPage?this.params.renderPage.call(this):this.render()},t.prototype.renderPopup=function(){return this.params.renderPopup?this.params.renderPopup.call(this):'"},t.prototype.onOpen=function(e,t){var a,r=this,i=r.app,n=$(t);n[0].f7PhotoBrowser=r,r.$el=n,r.el=n[0],r.openedIn=e,r.opened=!0,r.$swiperContainerEl=r.$el.find(".photo-browser-swiper-container"),r.$swiperWrapperEl=r.$el.find(".photo-browser-swiper-wrapper"),r.slides=r.$el.find(".photo-browser-slide"),r.$captionsContainerEl=r.$el.find(".photo-browser-captions"),r.captions=r.$el.find(".photo-browser-caption");var s=Utils.extend({},r.params.swiper,{initialSlide:r.activeIndex,on:{click:function(e){clearTimeout(a),r.params.exposition&&(a=setTimeout((function(){r.expositionToggle()}),350)),r.emit("local::tap",e),r.emit("local::click",e)},doubleClick:function(e){clearTimeout(a),r.emit("local::doubleTap",e),r.emit("local::doubleClick",e)},slideChange:function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var a=this;r.onSlideChange(a),r.emit.apply(r,["local::slideChange"].concat(e))},transitionStart:function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];r.emit.apply(r,["local::transitionStart"].concat(e))},transitionEnd:function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];r.emit.apply(r,["local::transitionEnd"].concat(e))},slideChangeTransitionStart:function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var a=this;r.onSlideChange(a),r.emit.apply(r,["local::slideChangeTransitionStart"].concat(e))},slideChangeTransitionEnd:function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];r.emit.apply(r,["local::slideChangeTransitionEnd"].concat(e))},lazyImageLoad:function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];r.emit.apply(r,["local::lazyImageLoad"].concat(e))},lazyImageReady:function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var a=e[0];$(a).removeClass("photo-browser-slide-lazy"),r.emit.apply(r,["local::lazyImageReady"].concat(e))}}});r.params.swipeToClose&&"page"!==r.params.type&&Utils.extend(s.on,{touchStart:function(e){r.onTouchStart(e),r.emit("local::touchStart",e)},touchMoveOpposite:function(e){r.onTouchMove(e),r.emit("local::touchMoveOpposite",e)},touchEnd:function(e){r.onTouchEnd(e),r.emit("local::touchEnd",e)}}),r.params.virtualSlides&&Utils.extend(s,{virtual:{slides:r.params.photos,renderSlide:function(e,t){return e.html||("string"==typeof e||e instanceof String)&&e.indexOf("<")>=0&&e.indexOf(">")>=0?r.renderObject(e,t):!0===r.params.swiper.lazy||r.params.swiper.lazy&&r.params.swiper.lazy.enabled?r.renderLazyPhoto(e,t):r.renderPhoto(e,t)}}}),r.swiper=i.swiper.create(r.$swiperContainerEl,s),0===r.activeIndex&&r.onSlideChange(r.swiper),r.$el&&r.$el.trigger("photobrowser:open"),r.emit("local::open photoBrowserOpen",r)},t.prototype.onOpened=function(){var e=this;e.$el&&"standalone"===e.params.type&&e.$el.css("animation","none"),e.$el&&e.$el.trigger("photobrowser:opened"),e.emit("local::opened photoBrowserOpened",e)},t.prototype.onClose=function(){var e=this;e.destroyed||(e.swiper&&e.swiper.destroy&&(e.swiper.destroy(!0,!1),e.swiper=null,delete e.swiper),e.$el&&e.$el.trigger("photobrowser:close"),e.emit("local::close photoBrowserClose",e))},t.prototype.onClosed=function(){var e=this;e.destroyed||(e.opened=!1,e.$el=null,e.el=null,delete e.$el,delete e.el,e.$el&&e.$el.trigger("photobrowser:closed"),e.emit("local::closed photoBrowserClosed",e))},t.prototype.openPage=function(){var e=this;if(e.opened)return e;var t=e.renderPage();return e.view.router.navigate({url:e.url,route:{content:t,path:e.url,on:{pageBeforeIn:function(t,a){e.view.$el.addClass("with-photo-browser-page with-photo-browser-page-"+e.params.theme),e.onOpen("page",a.el)},pageAfterIn:function(t,a){e.onOpened("page",a.el)},pageBeforeOut:function(t,a){e.view.$el.removeClass("with-photo-browser-page with-photo-browser-page-exposed with-photo-browser-page-"+e.params.theme),e.onClose("page",a.el)},pageAfterOut:function(t,a){e.onClosed("page",a.el)}}}}),e},t.prototype.openStandalone=function(){var e=this;if(e.opened)return e;var t={backdrop:!1,content:e.renderStandalone(),on:{popupOpen:function(t){e.onOpen("popup",t.el)},popupOpened:function(t){e.onOpened("popup",t.el)},popupClose:function(t){e.onClose("popup",t.el)},popupClosed:function(t){e.onClosed("popup",t.el)}}};return e.params.routableModals&&e.view?e.view.router.navigate({url:e.url,route:{path:e.url,popup:t}}):e.modal=e.app.popup.create(t).open(),e},t.prototype.openPopup=function(){var e=this;if(e.opened)return e;var t={content:e.renderPopup(),push:e.params.popupPush,on:{popupOpen:function(t){e.onOpen("popup",t.el)},popupOpened:function(t){e.onOpened("popup",t.el)},popupClose:function(t){e.onClose("popup",t.el)},popupClosed:function(t){e.onClosed("popup",t.el)}}};return e.params.routableModals&&e.view?e.view.router.navigate({url:e.url,route:{path:e.url,popup:t}}):e.modal=e.app.popup.create(t).open(),e},t.prototype.expositionEnable=function(){var e=this;return"page"===e.params.type&&e.view.$el.addClass("with-photo-browser-page-exposed"),e.$el&&e.$el.addClass("photo-browser-exposed"),e.params.expositionHideCaptions&&e.$captionsContainerEl.addClass("photo-browser-captions-exposed"),e.exposed=!0,e},t.prototype.expositionDisable=function(){var e=this;return"page"===e.params.type&&e.view.$el.removeClass("with-photo-browser-page-exposed"),e.$el&&e.$el.removeClass("photo-browser-exposed"),e.params.expositionHideCaptions&&e.$captionsContainerEl.removeClass("photo-browser-captions-exposed"),e.exposed=!1,e},t.prototype.expositionToggle=function(){var e=this;return"page"===e.params.type&&e.view.$el.toggleClass("with-photo-browser-page-exposed"),e.$el&&e.$el.toggleClass("photo-browser-exposed"),e.params.expositionHideCaptions&&e.$captionsContainerEl.toggleClass("photo-browser-captions-exposed"),e.exposed=!e.exposed,e},t.prototype.open=function(e){var t=this,a=t.params.type;return t.opened?(t.swiper&&void 0!==e&&t.swiper.slideTo(parseInt(e,10)),t):(void 0!==e&&(t.activeIndex=e),"standalone"===a&&t.openStandalone(),"page"===a&&t.openPage(),"popup"===a&&t.openPopup(),t)},t.prototype.close=function(){var e=this;return e.opened?(e.params.routableModals&&e.view||"page"===e.openedIn?e.view.router.back():(e.modal.once("modalClosed",(function(){Utils.nextTick((function(){e.destroyed||(e.modal.destroy(),delete e.modal)}))})),e.modal.close()),e):e},t.prototype.init=function(){},t.prototype.destroy=function(){var e=this;e.emit("local::beforeDestroy photoBrowserBeforeDestroy",e),e.$el&&(e.$el.trigger("photobrowser:beforedestroy"),e.$el[0].f7PhotoBrowser=null,delete e.$el[0].f7PhotoBrowser),Utils.deleteProps(e),e.destroyed=!0,e=null},Object.defineProperties(t.prototype,a),t}(Framework7Class),PhotoBrowser$1={name:"photoBrowser",params:{photoBrowser:{photos:[],exposition:!0,expositionHideCaptions:!1,type:"standalone",navbar:!0,toolbar:!0,theme:"light",captionsTheme:void 0,iconsColor:void 0,popupPush:!1,swipeToClose:!0,pageBackLinkText:"Back",popupCloseLinkText:"Close",navbarOfText:"of",navbarShowCount:void 0,view:void 0,url:"photos/",routableModals:!0,virtualSlides:!0,renderNavbar:void 0,renderToolbar:void 0,renderCaption:void 0,renderObject:void 0,renderLazyPhoto:void 0,renderPhoto:void 0,renderPage:void 0,renderPopup:void 0,renderStandalone:void 0,swiper:{initialSlide:0,spaceBetween:20,speed:300,loop:!1,preloadImages:!0,navigation:{nextEl:".photo-browser-next",prevEl:".photo-browser-prev"},zoom:{enabled:!0,maxRatio:3,minRatio:1},lazy:{enabled:!0}}}},create:function(){this.photoBrowser=ConstructorMethods({defaultSelector:".photo-browser-popup, .photo-browser-page",constructor:PhotoBrowser,app:this,domProp:"f7PhotoBrowser"})},static:{PhotoBrowser:PhotoBrowser}},Notification=function(e){function t(t,a){var r=Utils.extend({on:{}},t.params.notification,a);e.call(this,t,r);var i=this;i.app=t,i.params=r;var n,s,o,l,p,c,d,u=i.params,h=u.icon,f=u.title,v=u.titleRightText,m=u.subtitle,g=u.text,b=u.closeButton,y=u.closeTimeout,w=u.cssClass,C=u.closeOnClick;if(i.params.el)n=$(i.params.el);else{var x=i.render({icon:h,title:f,titleRightText:v,subtitle:m,text:g,closeButton:b,cssClass:w});n=$(x)}if(n&&n.length>0&&n[0].f7Modal)return n[0].f7Modal;if(0===n.length)return i.destroy();Utils.extend(i,{$el:n,el:n[0],type:"notification"}),n[0].f7Modal=i,b&&n.find(".notification-close-button").on("click",(function(){i.close()})),n.on("click",(function(e){b&&$(e.target).closest(".notification-close-button").length||(i.emit("local::click notificationClick",i),C&&i.close())})),i.on("beforeDestroy",(function(){n.off("click")}));var k,E={};function T(e){s||(s=!0,o=!1,l=void 0,c=Utils.now(),E.x="touchstart"===e.type?e.targetTouches[0].pageX:e.pageX,E.y="touchstart"===e.type?e.targetTouches[0].pageY:e.pageY)}function S(e){if(s){var t="touchmove"===e.type?e.targetTouches[0].pageX:e.pageX,a="touchmove"===e.type?e.targetTouches[0].pageY:e.pageY;if(void 0===l&&(l=!!(l||Math.abs(a-E.y)0&&(r=Math.pow(p,.8)),i.$el.transform("translate3d(0, "+r+"px, 0)")}}}function M(){if(!s||!o)return s=!1,void(o=!1);if(s=!1,o=!1,0!==p){var e=Utils.now()-c;i.$el.transition(""),i.$el.addClass("notification-transitioning"),i.$el.transform(""),(p<-10&&e<300||-p>=d/1)&&i.close()}}return i.on("open",(function(){i.params.swipeToClose&&(i.$el.on(t.touchEvents.start,T,{passive:!0}),t.on("touchmove:active",S),t.on("touchend:passive",M)),$(".notification.modal-in").each((function(e,a){var r=t.notification.get(a);a!==i.el&&r&&r.close()})),y&&function e(){k=Utils.nextTick((function(){s&&o?e():i.close()}),y)}()})),i.on("close beforeDestroy",(function(){i.params.swipeToClose&&(i.$el.off(t.touchEvents.start,T,{passive:!0}),t.off("touchmove:active",S),t.off("touchend:passive",M)),win.clearTimeout(k)})),i}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.render=function(){if(this.params.render)return this.params.render.call(this,this);var e=this.params,t=e.icon,a=e.title,r=e.titleRightText,i=e.subtitle,n=e.text,s=e.closeButton;return('\n
                    \n
                    \n '+(t?'
                    '+t+"
                    ":"")+"\n "+(a?'
                    '+a+"
                    ":"")+"\n "+(r?'
                    '+r+"
                    ":"")+"\n "+(s?'':"")+'\n
                    \n
                    \n '+(i?'
                    '+i+"
                    ":"")+"\n "+(n?'
                    '+n+"
                    ":"")+"\n
                    \n
                    \n ").trim()},t}(Modal),Notification$1={name:"notification",static:{Notification:Notification},create:function(){this.notification=Utils.extend({},ModalMethods({app:this,constructor:Notification,defaultSelector:".notification.modal-in"}))},params:{notification:{icon:null,title:null,titleRightText:null,subtitle:null,text:null,closeButton:!1,closeTimeout:null,closeOnClick:!1,swipeToClose:!0,cssClass:null,render:null}}},Autocomplete=function(e){function t(t,a){void 0===a&&(a={}),e.call(this,a,[t]);var r=this;r.app=t;var i,n,s=Utils.extend({on:{}},t.params.autocomplete);void 0===s.searchbarDisableButton&&(s.searchbarDisableButton="aurora"!==t.theme),r.useModulesParams(s),r.params=Utils.extend(s,a),r.params.openerEl&&(i=$(r.params.openerEl)).length&&(i[0].f7Autocomplete=r),r.params.inputEl&&(n=$(r.params.inputEl)).length&&(n[0].f7Autocomplete=r);var o=Utils.id(),l=a.url;!l&&i&&i.length&&(i.attr("href")?l=i.attr("href"):i.find("a").length>0&&(l=i.find("a").attr("href"))),l&&"#"!==l&&""!==l||(l=r.params.url);var p=r.params.multiple?"checkbox":"radio";Utils.extend(r,{$openerEl:i,openerEl:i&&i[0],$inputEl:n,inputEl:n&&n[0],id:o,url:l,value:r.params.value||[],inputType:p,inputName:p+"-"+o,$modalEl:void 0,$dropdownEl:void 0});var c="";function d(){var e=r.$inputEl.val().trim();r.params.source&&r.params.source.call(r,e,(function(t){var a,i,s,o="",l=r.params.limit?Math.min(r.params.limit,t.length):t.length;r.items=t,r.params.highlightMatches&&(e=e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&"),a=new RegExp("("+e+")","i"));for(var p=0;p$1"):u},p)}if(""===o&&""===e&&r.params.dropdownPlaceholderText&&(o+=r.renderItem({placeholder:!0,text:r.params.dropdownPlaceholderText})),r.$dropdownEl.find("ul").html(o),r.params.typeahead){if(!i||!s)return;if(0!==i.toLowerCase().indexOf(e.toLowerCase()))return;if(c.toLowerCase()===e.toLowerCase())return void(r.value=[]);if(0===c.toLowerCase().indexOf(e.toLowerCase()))return c=e,void(r.value=[]);n.val(i),n[0].setSelectionRange(e.length,i.length);var h="object"==typeof r.value[0]?r.value[0][r.params.valueProperty]:r.value[0];h&&i.toLowerCase()===h.toLowerCase()||(r.value=[s],r.emit("local::change autocompleteChange",[s]))}c=e}))}function u(){var e,t,a,i=this.value;if($(this).parents(".autocomplete-values").length>0){if("checkbox"===r.inputType&&!this.checked){for(var n=0;n0||setTimeout((function(){r.close()}),0)}function g(){r.positionDropdown()}function b(e){if(r.opened){if(27===e.keyCode)return e.preventDefault(),void r.$inputEl.blur();if(13===e.keyCode){var t=r.$dropdownEl.find(".autocomplete-dropdown-selected label");return t.length?(e.preventDefault(),t.trigger("click"),void r.$inputEl.blur()):void(r.params.typeahead&&(e.preventDefault(),r.$inputEl.blur()))}if(40===e.keyCode||38===e.keyCode){e.preventDefault();var a,i=r.$dropdownEl.find(".autocomplete-dropdown-selected");i.length&&(a=i[40===e.keyCode?"next":"prev"]("li")).length||(a=r.$dropdownEl.find("li").eq(40===e.keyCode?0:r.$dropdownEl.find("li").length-1)),a.hasClass("autocomplete-dropdown-placeholder")||(i.removeClass("autocomplete-dropdown-selected"),a.addClass("autocomplete-dropdown-selected"))}}}function y(){for(var e,t=$(this),a=0;a0?u.left-n.offset().left:0,v=o.left-(c.length>0?u.left:0)-(r.rtl,0),m=o.top-(n.offset().top-n[0].scrollTop),g=n[0].scrollHeight-h-(m+n[0].scrollTop)-a[0].offsetHeight,b=r.rtl?"padding-right":"padding-left";c.length&&!t.params.expandInput&&(d=(r.rtl?c[0].offsetWidth-v-l:v)-("md"===r.theme?16:15)),i.css({left:(c.length>0?f:v)+"px",top:m+n[0].scrollTop+p+"px",width:(c.length>0?c[0].offsetWidth:l)+"px"}),i.children(".autocomplete-dropdown-inner").css(((e={maxHeight:g+"px"})[b]=c.length>0&&!t.params.expandInput?d+"px":"",e))}},t.prototype.focus=function(){this.$el.find("input[type=search]").focus()},t.prototype.source=function(e){var t=this;if(t.params.source){var a=t.$el;t.params.source.call(t,e,(function(r){var i="",n=t.params.limit?Math.min(t.params.limit,r.length):r.length;t.items=r;for(var s=0;s'+(Utils[this.app.theme+"PreloaderContent"]||"")+"\n ").trim()},t.prototype.renderSearchbar=function(){var e=this;return e.params.renderSearchbar?e.params.renderSearchbar.call(e):('\n \n ").trim()},t.prototype.renderItem=function(e,t){if(this.params.renderItem)return this.params.renderItem.call(this,e,t);var a=e.value&&"string"==typeof e.value?e.value.replace(/"/g,"""):e.value;return("dropdown"!==this.params.openIn?'\n
                  • \n \n
                  • \n ":e.placeholder?'\n
                  • \n \n
                  • \n ":'\n
                  • \n \n
                  • \n ").trim()},t.prototype.renderNavbar=function(){var e=this;if(e.params.renderNavbar)return e.params.renderNavbar.call(e);var t=e.params.pageTitle;void 0===t&&e.$openerEl&&e.$openerEl.length&&(t=e.$openerEl.find(".item-title").text().trim());var a="popup"===e.params.openIn,r=a?"\n "+(e.params.preloader?'\n
                    \n '+e.renderPreloader()+"\n
                    \n ":"")+"\n ":'\n \n ",i=a?'\n \n ":"\n "+(e.params.preloader?'\n
                    \n '+e.renderPreloader()+"\n
                    \n ":"")+"\n ";return('\n \n ").trim()},t.prototype.renderDropdown=function(){var e=this;return e.params.renderDropdown?e.params.renderDropdown.call(e,e.items):('\n
                    \n
                    \n
                    \n
                      \n
                      \n
                      \n '+(e.params.preloader?e.renderPreloader():"")+"\n
                      \n ").trim()},t.prototype.renderPage=function(e){var t=this;return t.params.renderPage?t.params.renderPage.call(t,t.items):('\n
                      \n '+t.renderNavbar(e)+'\n
                      \n
                      \n
                      \n
                        \n
                        \n
                        \n
                          \n
                        • '+t.params.notFoundText+'
                        • \n
                        \n
                        \n
                        \n
                          \n
                          \n
                          \n
                          \n ').trim()},t.prototype.renderPopup=function(){var e=this;return e.params.renderPopup?e.params.renderPopup.call(e,e.items):('\n \n ").trim()},t.prototype.onOpen=function(e,t){var a=this,r=a.app,i=$(t);if(a.$el=i,a.el=i[0],a.openedIn=e,a.opened=!0,"dropdown"===a.params.openIn)a.attachDropdownEvents(),a.$dropdownEl.addClass("autocomplete-dropdown-in"),a.$inputEl.trigger("input");else{var n=i.find(".searchbar");"page"===a.params.openIn&&"ios"===r.theme&&0===n.length&&(n=$(r.navbar.getElByPage(i)).find(".searchbar")),a.searchbar=r.searchbar.create({el:n,backdropEl:i.find(".searchbar-backdrop"),customSearch:!0,on:{search:function(e,t){0===t.length&&a.searchbar.enabled?a.searchbar.backdropShow():a.searchbar.backdropHide(),a.source(t)}}}),a.attachPageEvents(),a.updateValues(),a.params.requestSourceOnOpen&&a.source("")}a.emit("local::open autocompleteOpen",a)},t.prototype.autoFocus=function(){return this.searchbar&&this.searchbar.$inputEl&&this.searchbar.$inputEl.focus(),this},t.prototype.onOpened=function(){var e=this;"dropdown"!==e.params.openIn&&e.params.autoFocus&&e.autoFocus(),e.emit("local::opened autocompleteOpened",e)},t.prototype.onClose=function(){var e=this;e.destroyed||(e.searchbar&&e.searchbar.destroy&&(e.searchbar.destroy(),e.searchbar=null,delete e.searchbar),"dropdown"===e.params.openIn?(e.detachDropdownEvents(),e.$dropdownEl.removeClass("autocomplete-dropdown-in").remove(),e.$inputEl.parents(".item-content-dropdown-expanded").removeClass("item-content-dropdown-expanded")):e.detachPageEvents(),e.emit("local::close autocompleteClose",e))},t.prototype.onClosed=function(){var e=this;e.destroyed||(e.opened=!1,e.$el=null,e.el=null,delete e.$el,delete e.el,e.emit("local::closed autocompleteClosed",e))},t.prototype.openPage=function(){var e=this;if(e.opened)return e;var t=e.renderPage();return e.view.router.navigate({url:e.url,route:{content:t,path:e.url,on:{pageBeforeIn:function(t,a){e.onOpen("page",a.el)},pageAfterIn:function(t,a){e.onOpened("page",a.el)},pageBeforeOut:function(t,a){e.onClose("page",a.el)},pageAfterOut:function(t,a){e.onClosed("page",a.el)}},options:{animate:e.params.animate}}}),e},t.prototype.openPopup=function(){var e=this;if(e.opened)return e;var t={content:e.renderPopup(),animate:e.params.animate,push:e.params.popupPush,swipeToClose:e.params.popupSwipeToClose,on:{popupOpen:function(t){e.onOpen("popup",t.el)},popupOpened:function(t){e.onOpened("popup",t.el)},popupClose:function(t){e.onClose("popup",t.el)},popupClosed:function(t){e.onClosed("popup",t.el)}}};return e.params.routableModals&&e.view?e.view.router.navigate({url:e.url,route:{path:e.url,popup:t}}):e.modal=e.app.popup.create(t).open(e.params.animate),e},t.prototype.openDropdown=function(){var e=this;e.$dropdownEl||(e.$dropdownEl=$(e.renderDropdown())),e.$inputEl.parents(".list").length&&e.$inputEl.parents(".item-content").length>0&&e.params.expandInput&&e.$inputEl.parents(".item-content").addClass("item-content-dropdown-expanded");var t=e.$inputEl.parents(".page-content");e.params.dropdownContainerEl?$(e.params.dropdownContainerEl).append(e.$dropdownEl):0===t.length?e.$dropdownEl.insertAfter(e.$inputEl):(e.positionDropdown(),t.append(e.$dropdownEl)),e.onOpen("dropdown",e.$dropdownEl),e.onOpened("dropdown",e.$dropdownEl)},t.prototype.open=function(){var e=this;return e.opened||e["open"+e.params.openIn.split("").map((function(e,t){return 0===t?e.toUpperCase():e})).join("")](),e},t.prototype.close=function(){var e=this;return e.opened?("dropdown"===e.params.openIn?(e.onClose(),e.onClosed()):e.params.routableModals&&e.view||"page"===e.openedIn?e.view.router.back({animate:e.params.animate}):(e.modal.once("modalClosed",(function(){Utils.nextTick((function(){e.destroyed||(e.modal.destroy(),delete e.modal)}))})),e.modal.close()),e):e},t.prototype.init=function(){this.attachEvents()},t.prototype.destroy=function(){var e=this;e.emit("local::beforeDestroy autocompleteBeforeDestroy",e),e.detachEvents(),e.$inputEl&&e.$inputEl[0]&&delete e.$inputEl[0].f7Autocomplete,e.$openerEl&&e.$openerEl[0]&&delete e.$openerEl[0].f7Autocomplete,Utils.deleteProps(e),e.destroyed=!0},Object.defineProperties(t.prototype,a),t}(Framework7Class),Autocomplete$1={name:"autocomplete",params:{autocomplete:{openerEl:void 0,inputEl:void 0,view:void 0,dropdownContainerEl:void 0,dropdownPlaceholderText:void 0,typeahead:!1,highlightMatches:!0,expandInput:!1,updateInputValueOnSelect:!0,inputEvents:"input",value:void 0,multiple:!1,source:void 0,limit:void 0,valueProperty:"id",textProperty:"text",openIn:"page",pageBackLinkText:"Back",popupCloseLinkText:"Close",pageTitle:void 0,searchbarPlaceholder:"Search...",searchbarDisableText:"Cancel",searchbarDisableButton:void 0,searchbarSpellcheck:!1,popupPush:!1,popupSwipeToClose:void 0,animate:!0,autoFocus:!1,closeOnSelect:!1,notFoundText:"Nothing found",requestSourceOnOpen:!1,preloaderColor:void 0,preloader:!1,formColorTheme:void 0,navbarColorTheme:void 0,routableModals:!0,url:"select/",renderDropdown:void 0,renderPage:void 0,renderPopup:void 0,renderItem:void 0,renderSearchbar:void 0,renderNavbar:void 0}},static:{Autocomplete:Autocomplete},create:function(){var e=this;e.autocomplete=Utils.extend(ConstructorMethods({defaultSelector:void 0,constructor:Autocomplete,app:e,domProp:"f7Autocomplete"}),{open:function(t){var a=e.autocomplete.get(t);if(a&&a.open)return a.open()},close:function(t){var a=e.autocomplete.get(t);if(a&&a.close)return a.close()}})}},Tooltip=function(e){function t(t,a){void 0===a&&(a={}),e.call(this,a,[t]);var r=this,i=Utils.extend({},t.params.tooltip);r.useModulesParams(i),r.params=Utils.extend(i,a),void 0===a.offset&&Support.touch&&"hover"===r.params.trigger&&(r.params.offset=10);var n=r.params.targetEl;if(!n)return r;var s=$(n);if(0===s.length)return r;if(s[0].f7Tooltip)return s[0].f7Tooltip;var o=$(r.render()).eq(0);Utils.extend(r,{app:t,$targetEl:s,targetEl:s&&s[0],$el:o,el:o&&o[0],text:r.params.text||"",visible:!1,opened:!1}),s[0].f7Tooltip=r;var l,p={};function c(){r.opened?r.hide():r.show(this)}function d(e){r.opened&&($(e.target).closest(s).length||$(e.target).closest(r.$el).length)||r.hide()}function u(e){l||(l=!0,p.x="touchstart"===e.type?e.targetTouches[0].pageX:e.pageX,p.y="touchstart"===e.type?e.targetTouches[0].pageY:e.pageY,r.show(this))}function h(e){if(l){var t="touchmove"===e.type?e.targetTouches[0].pageX:e.pageX,a="touchmove"===e.type?e.targetTouches[0].pageY:e.pageY;Math.pow(Math.pow(t-p.x,2)+Math.pow(a-p.y,2),.5)>50&&(l=!1,r.hide())}}function f(){l&&(l=!1,r.hide())}function v(){r.show(this)}function m(){r.hide()}function g(){o.hasClass("tooltip-in")||o.removeClass("tooltip-out").remove()}return r.attachEvents=function(){if(o.on("transitionend",g),"click"===r.params.trigger)return s.on("click",c),void $("html").on("click",d);if(Support.touch){var e=!!Support.passiveListener&&{passive:!0};s.on(t.touchEvents.start,u,e),t.on("touchmove",h),t.on("touchend:passive",f)}else s.on(Support.pointerEvents?"pointerenter":"mouseenter",v),s.on(Support.pointerEvents?"pointerleave":"mouseleave",m)},r.detachEvents=function(){if(o.off("transitionend",g),"click"===r.params.trigger)return s.off("click",c),void $("html").off("click",d);if(Support.touch){var e=!!Support.passiveListener&&{passive:!0};s.off(t.touchEvents.start,u,e),t.off("touchmove",h),t.off("touchend:passive",f)}else s.off(Support.pointerEvents?"pointerenter":"mouseenter",v),s.off(Support.pointerEvents?"pointerleave":"mouseleave",m)},r.useModules(),r.init(),r}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.position=function(e){var t=this.$el,a=this.app,r=this.params.offset||0;t.css({left:"",top:""});var i,n,s,o,l=$(e||this.targetEl),p=[t.width(),t.height()],c=p[0],d=p[1];if(t.css({left:"",top:""}),l&&l.length>0){if(i=l.outerWidth(),n=l.outerHeight(),void 0===i&&void 0===n){var u=l[0].getBoundingClientRect();i=u.width,n=u.height}var h=l.offset();s=h.left-a.left,o=h.top-a.top;var f=l.parents(".page");f.length>0&&(o-=f[0].scrollTop)}var v=[0,0,0],m=v[0],g=v[1],b="top";d+r=a.height&&(g=a.height-d-8)),"top"===b||"bottom"===b?((m=i/2+s-c/2)<8&&(m=8),m+c>a.width&&(m=a.width-c-8),m<0&&(m=0)):"middle"===b&&((m=s-c)<8||m+c>a.width)&&(m<8&&(m=s+i),m+c>a.width&&(m=a.width-c-8)),t.css({top:g+"px",left:m+"px"})},t.prototype.show=function(e){var t=this.app,a=this.$el,r=this.$targetEl;t.root.append(a),this.position(e);var i=$(e);return this.visible=!0,this.opened=!0,r.trigger("tooltip:show"),a.trigger("tooltip:show"),i.length&&i[0]!==r[0]&&i.trigger("tooltip:show"),this.emit("local::show tooltipShow",this),a.removeClass("tooltip-out").addClass("tooltip-in"),this},t.prototype.hide=function(){var e=this.$el,t=this.$targetEl;return this.visible=!1,this.opened=!1,t.trigger("tooltip:hide"),e.trigger("tooltip:hide"),this.emit("local::hide tooltipHide",this),e.addClass("tooltip-out").removeClass("tooltip-in"),this},t.prototype.render=function(){if(this.params.render)return this.params.render.call(this,this);var e=this.params;return('\n
                          \n
                          '+(e.text||"")+"
                          \n
                          \n ").trim()},t.prototype.setText=function(e){return void 0===e||(this.params.text=e,this.text=e,this.$el&&this.$el.children(".tooltip-content").html(e),this.opened&&this.position()),this},t.prototype.init=function(){this.attachEvents()},t.prototype.destroy=function(){this.$targetEl&&!this.destroyed&&(this.$targetEl.trigger("tooltip:beforedestroy"),this.emit("local::beforeDestroy tooltipBeforeDestroy",this),this.$el.remove(),delete this.$targetEl[0].f7Tooltip,this.detachEvents(),Utils.deleteProps(this),this.destroyed=!0)},t}(Framework7Class),Tooltip$1={name:"tooltip",static:{Tooltip:Tooltip},create:function(){this.tooltip=ConstructorMethods({defaultSelector:".tooltip",constructor:Tooltip,app:this,domProp:"f7Tooltip"}),this.tooltip.show=function(e){var t=$(e);if(0!==t.length){var a=t[0].f7Tooltip;if(a)return a.show(t[0]),a}},this.tooltip.hide=function(e){var t=$(e);if(0!==t.length){var a=t[0].f7Tooltip;if(a)return a.hide(),a}},this.tooltip.setText=function(e,t){var a=$(e);if(0!==a.length){var r=a[0].f7Tooltip;if(r)return r.setText(t),r}}},params:{tooltip:{targetEl:null,text:null,cssClass:null,render:null,offset:0,trigger:"hover"}},on:{tabMounted:function(e){var t=this;$(e).find(".tooltip-init").each((function(e,a){var r=$(a).attr("data-tooltip");r&&t.tooltip.create({targetEl:a,text:r})}))},tabBeforeRemove:function(e){$(e).find(".tooltip-init").each((function(e,t){t.f7Tooltip&&t.f7Tooltip.destroy()}))},pageInit:function(e){var t=this;e.$el.find(".tooltip-init").each((function(e,a){var r=$(a).attr("data-tooltip");r&&t.tooltip.create({targetEl:a,text:r})})),"ios"===t.theme&&e.view&&e.view.router.dynamicNavbar&&e.$navbarEl&&e.$navbarEl.length>0&&e.$navbarEl.find(".tooltip-init").each((function(e,a){var r=$(a).attr("data-tooltip");r&&t.tooltip.create({targetEl:a,text:r})}))},pageBeforeRemove:function(e){e.$el.find(".tooltip-init").each((function(e,t){t.f7Tooltip&&t.f7Tooltip.destroy()})),"ios"===this.theme&&e.view&&e.view.router.dynamicNavbar&&e.$navbarEl&&e.$navbarEl.length>0&&e.$navbarEl.find(".tooltip-init").each((function(e,t){t.f7Tooltip&&t.f7Tooltip.destroy()}))}},vnode:{"tooltip-init":{insert:function(e){var t=e.elm,a=$(t).attr("data-tooltip");a&&this.tooltip.create({targetEl:t,text:a})},update:function(e){var t=e.elm;t.f7Tooltip&&e&&e.data&&e.data.attrs&&e.data.attrs["data-tooltip"]&&t.f7Tooltip.setText(e.data.attrs["data-tooltip"])},destroy:function(e){var t=e.elm;t.f7Tooltip&&t.f7Tooltip.destroy()}}}},Gauge=function(e){function t(t,a){void 0===a&&(a={}),e.call(this,a,[t]);var r=Utils.extend({},t.params.gauge);this.useModulesParams(r),this.params=Utils.extend(r,a);var i=this.params.el;if(!i)return this;var n=$(i);return 0===n.length?this:n[0].f7Gauge?n[0].f7Gauge:(Utils.extend(this,{app:t,$el:n,el:n&&n[0]}),n[0].f7Gauge=this,this.useModules(),this.init(),this)}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.calcRadius=function(){var e=this.params;return e.size/2-e.borderWidth/2},t.prototype.calcBorderLength=function(){var e=this.calcRadius();return 2*Math.PI*e},t.prototype.render=function(){if(this.params.render)return this.params.render.call(this,this);var e=this.params,t=e.type,a=e.value,r=e.size,i=e.bgColor,n=e.borderBgColor,s=e.borderColor,o=e.borderWidth,l=e.valueText,p=e.valueTextColor,c=e.valueFontSize,d=e.valueFontWeight,u=e.labelText,h=e.labelTextColor,f=e.labelFontSize,v=e.labelFontWeight,m="semicircle"===t,g=this.calcRadius(),b=this.calcBorderLength(),y=Math.max(Math.min(a,1),0);return('\n \n '+(m?'\n \n \n ':"\n "+(n?'\n \n ':"")+'\n \n ')+"\n "+(l?'\n '+l+"\n ":"")+"\n "+(u?'\n '+u+"\n ":"")+"\n \n ").trim()},t.prototype.update=function(e){void 0===e&&(e={});var t=this.params,a=this.$gaugeSvgEl;if(Object.keys(e).forEach((function(a){void 0!==e[a]&&(t[a]=e[a])})),0===a.length)return this;var r=t.value,i=t.size,n=t.bgColor,s=t.borderBgColor,o=t.borderColor,l=t.borderWidth,p=t.valueText,c=t.valueTextColor,d=t.valueFontSize,u=t.valueFontWeight,h=t.labelText,f=t.labelTextColor,v=t.labelFontSize,m=t.labelFontWeight,g=this.calcBorderLength(),b=Math.max(Math.min(r,1),0),y=this.calcRadius(),w="semicircle"===t.type,C={width:i+"px",height:(w?i/2:i)+"px",viewBox:"0 0 "+i+" "+(w?i/2:i)};if(Object.keys(C).forEach((function(e){a.attr(e,C[e])})),w){var x={d:"M"+(i-l/2)+","+i/2+" a1,1 0 0,0 -"+(i-l)+",0",stroke:s,"stroke-width":l,fill:n||"none"},$={d:"M"+(i-l/2)+","+i/2+" a1,1 0 0,0 -"+(i-l)+",0",stroke:o,"stroke-width":l,"stroke-dasharray":g/2,"stroke-dashoffset":g/2*(1+b),fill:s?"none":n||"none"};Object.keys(x).forEach((function(e){a.find(".gauge-back-semi").attr(e,x[e])})),Object.keys($).forEach((function(e){a.find(".gauge-front-semi").attr(e,$[e])}))}else{var k={stroke:s,"stroke-width":l,fill:n||"none",cx:i/2,cy:i/2,r:y},E={transform:"rotate(-90 "+i/2+" "+i/2+")",stroke:o,"stroke-width":l,"stroke-dasharray":g,"stroke-dashoffset":g*(1-b),fill:s?"none":n||"none",cx:i/2,cy:i/2,r:y};Object.keys(k).forEach((function(e){a.find(".gauge-back-circle").attr(e,k[e])})),Object.keys(E).forEach((function(e){a.find(".gauge-front-circle").attr(e,E[e])}))}if(p){if(!a.find(".gauge-value-text").length){var T=document.createElementNS("http://www.w3.org/2000/svg","text");T.classList.add("gauge-value-text"),a.append(T)}var S={x:"50%",y:w?"100%":"50%","font-weight":u,"font-size":d,fill:c,dy:w?h?-v-15:-5:0,"text-anchor":"middle","dominant-baseline":!w&&"middle"};Object.keys(S).forEach((function(e){a.find(".gauge-value-text").attr(e,S[e])})),a.find(".gauge-value-text").text(p)}else a.find(".gauge-value-text").remove();if(h){if(!a.find(".gauge-label-text").length){var M=document.createElementNS("http://www.w3.org/2000/svg","text");M.classList.add("gauge-label-text"),a.append(M)}var P={x:"50%",y:w?"100%":"50%","font-weight":m,"font-size":v,fill:f,dy:w?-5:p?d/2+10:0,"text-anchor":"middle","dominant-baseline":!w&&"middle"};Object.keys(P).forEach((function(e){a.find(".gauge-label-text").attr(e,P[e])})),a.find(".gauge-label-text").text(h)}else a.find(".gauge-label-text").remove();return this},t.prototype.init=function(){var e=$(this.render()).eq(0);return e.f7Gauge=this,Utils.extend(this,{$gaugeSvgEl:e,gaugeSvgEl:e&&e[0]}),this.$el.append(e),this},t.prototype.destroy=function(){this.$el&&!this.destroyed&&(this.$el.trigger("gauge:beforedestroy"),this.emit("local::beforeDestroy gaugeBeforeDestroy",this),this.$gaugeSvgEl.remove(),delete this.$el[0].f7Gauge,Utils.deleteProps(this),this.destroyed=!0)},t}(Framework7Class),Gauge$1={name:"gauge",static:{Gauge:Gauge},create:function(){var e=this;e.gauge=ConstructorMethods({defaultSelector:".gauge",constructor:Gauge,app:e,domProp:"f7Gauge"}),e.gauge.update=function(t,a){if(0!==$(t).length){var r=e.gauge.get(t);if(r)return r.update(a),r}}},params:{gauge:{el:null,type:"circle",value:0,size:200,bgColor:"transparent",borderBgColor:"#eeeeee",borderColor:"#000000",borderWidth:10,valueText:null,valueTextColor:"#000000",valueFontSize:31,valueFontWeight:500,labelText:null,labelTextColor:"#888888",labelFontSize:14,labelFontWeight:400}},on:{tabMounted:function(e){var t=this;$(e).find(".gauge-init").each((function(e,a){t.gauge.create(Utils.extend({el:a},$(a).dataset()||{}))}))},tabBeforeRemove:function(e){$(e).find(".gauge-init").each((function(e,t){t.f7Gauge&&t.f7Gauge.destroy()}))},pageInit:function(e){var t=this;e.$el.find(".gauge-init").each((function(e,a){t.gauge.create(Utils.extend({el:a},$(a).dataset()||{}))}))},pageBeforeRemove:function(e){e.$el.find(".gauge-init").each((function(e,t){t.f7Gauge&&t.f7Gauge.destroy()}))}},vnode:{"gauge-init":{insert:function(e){var t=e.elm;this.gauge.create(Utils.extend({el:t},$(t).dataset()||{}))},destroy:function(e){var t=e.elm;t.f7Gauge&&t.f7Gauge.destroy()}}}},Skeleton={name:"skeleton"},Menu={open:function(e){void 0===e&&(e=".menu-item-dropdown");if(e){var t=$(e).closest(".menu-item-dropdown");if(t.length){var a=t.closest(".menu").eq(0);if(a.length){var r=a.css("z-index"),i=a[0].style.zIndex;a.css("z-index",parseInt(r||0,0)+1),a[0].f7MenuZIndex=i}t.eq(0).addClass("menu-item-dropdown-opened").trigger("menu:opened"),this.emit("menuOpened",t.eq(0)[0])}}},close:function(e){void 0===e&&(e=".menu-item-dropdown-opened");if(e){var t=$(e).closest(".menu-item-dropdown-opened");if(t.length){var a=t.closest(".menu").eq(0);if(a.length){var r=a[0].f7MenuZIndex;a.css("z-index",r),delete a[0].f7MenuZIndex}t.eq(0).removeClass("menu-item-dropdown-opened").trigger("menu:closed"),this.emit("menuClosed",t.eq(0)[0])}}}},Menu$1={name:"menu",create:function(){this.menu={open:Menu.open.bind(this),close:Menu.close.bind(this)}},on:{click:function(e){var t=this,a=$(".menu-item-dropdown-opened");a.length&&a.each((function(a,r){$(e.target).closest(".menu-item-dropdown-opened").length||t.menu.close(r)}))}},clicks:{".menu-item-dropdown":function(e,t,a){if(e.hasClass("menu-item-dropdown-opened")){if($(a.target).closest(".menu-dropdown").length)return;this.menu.close(e)}else this.menu.open(e)},".menu-close":function(){this.menu.close()}}},moduleAlphaSlider={render:function(e){var t=e.params,a=t.sliderLabel,r=t.sliderValue,i=t.sliderValueEditable,n=t.alphaLabelText;return'\n
                          \n
                          \n '+(a?'\n
                          '+n+"
                          \n ":"")+'\n
                          \n '+(r?'\n
                          \n '+(i?'\n \n ':'\n \n ')+"\n
                          \n ":"")+"\n
                          \n
                          \n "},init:function(e){function t(t){var a=e.value.alpha,r=parseFloat(t.target.value);Number.isNaN(r)?t.target.value=a:(r=Math.max(0,Math.min(1,r)),e.setValue({alpha:r}))}e.alphaRangeSlider=e.app.range.create({el:e.$el.find(".color-picker-slider-alpha"),min:0,max:1,step:.01,value:1,on:{change:function(t,a){var r=Math.floor(100*a)/100;e.setValue({alpha:r})}}}),e.$el.on("change",".color-picker-module-alpha-slider input",t),e.destroyAlphaSliderEvents=function(){e.$el.off("change",".color-picker-module-alpha-slider input",t)}},update:function(e){var t=e.value,a=e.params,r=a.sliderValue,i=a.sliderValueEditable,n=t.alpha;e.alphaRangeSlider.value=n,e.alphaRangeSlider.layout(),r&&i?e.$el.find("input.color-picker-value-alpha").val(n):e.$el.find("span.color-picker-value-alpha").text(n)},destroy:function(e){e.alphaRangeSlider&&e.alphaRangeSlider.destroy&&e.alphaRangeSlider.destroy(),delete e.alphaRangeSlider,e.destroyAlphaSliderEvents&&e.destroyAlphaSliderEvents(),delete e.destroyAlphaSliderEvents}},moduleCurrentColor={render:function(){return'\n
                          \n
                          \n
                          \n '},update:function(e){e.$el.find(".color-picker-module-current-color .color-picker-current-color").css("background-color",e.value.hex)}},moduleHex={render:function(e){var t=e.params,a=t.hexLabel,r=t.hexLabelText;return'\n
                          \n
                          \n '+(a?'\n
                          '+r+"
                          \n ":"")+'\n
                          \n '+(t.hexValueEditable?'\n \n ':'\n \n ')+"\n
                          \n
                          \n
                          \n "},init:function(e){function t(t){var a=e.value.hex,r=t.target.value.replace(/#/g,"");if(Number.isNaN(r)||!r||3!==r.length&&6!==r.length)t.target.value=a;else{var i=parseInt(r,16);i>parseInt("ffffff",16)&&(r="fff"),i<0&&(r="000"),e.setValue({hex:r})}}e.$el.on("change",".color-picker-module-hex input",t),e.destroyHexEvents=function(){e.$el.off("change",".color-picker-module-hex input",t)}},update:function(e){var t=e.value,a=e.params.hexValueEditable,r=t.hex;a?e.$el.find("input.color-picker-value-hex").val(r):e.$el.find("span.color-picker-value-hex").text(r)},destroy:function(e){e.destroyHexEvents&&e.destroyHexEvents(),delete e.destroyHexEvents}},moduleHsbSliders={render:function(e){var t=e.params,a=t.sliderLabel,r=t.sliderValue,i=t.sliderValueEditable,n=t.hueLabelText,s=t.saturationLabelText,o=t.brightnessLabelText;return'\n
                          \n
                          \n '+(a?'\n
                          '+n+"
                          \n ":"")+'\n
                          \n '+(r?'\n
                          \n '+(i?'\n \n ':'\n \n ')+"\n
                          \n ":"")+'\n
                          \n
                          \n '+(a?'\n
                          '+s+"
                          \n ":"")+'\n
                          \n '+(r?'\n
                          \n '+(i?'\n \n ':'\n \n ')+"\n
                          \n ":"")+'\n
                          \n
                          \n '+(a?'\n
                          '+o+"
                          \n ":"")+'\n
                          \n '+(r?'\n
                          \n '+(i?'\n \n ':'\n \n ')+"\n
                          \n ":"")+"\n
                          \n
                          \n "},init:function(e){function t(t){var a=[].concat(e.value.hsb),r=parseInt($(t.target).attr("data-color-index"),10),i=parseFloat(t.target.value);Number.isNaN(i)?t.target.value=a[r]:(i=0===r?Math.max(0,Math.min(360,i)):Math.max(0,Math.min(100,i))/100,a[r]=i,e.setValue({hsb:a}))}e.hueRangeSlider=e.app.range.create({el:e.$el.find(".color-picker-slider-hue"),min:0,max:360,step:.1,value:0,on:{change:function(t,a){e.setValue({hue:a})}}}),e.saturationRangeSlider=e.app.range.create({el:e.$el.find(".color-picker-slider-saturation"),min:0,max:1,step:.001,value:0,on:{change:function(t,a){var r=Math.floor(1e3*a)/1e3;e.setValue({hsb:[e.value.hsb[0],r,e.value.hsb[2]]})}}}),e.brightnessRangeSlider=e.app.range.create({el:e.$el.find(".color-picker-slider-brightness"),min:0,max:1,step:.001,value:0,on:{change:function(t,a){var r=Math.floor(1e3*a)/1e3;e.setValue({hsb:[e.value.hsb[0],e.value.hsb[1],r]})}}}),e.$el.on("change",".color-picker-module-hsb-sliders input",t),e.destroyHsbSlidersEvents=function(){e.$el.off("change",".color-picker-module-hsb-sliders input",t)}},update:function(e){var t=e.app,a=e.value,r=e.params,i=r.sliderValue,n=r.sliderValueEditable,s=a.hsb,o=a.hue;e.hueRangeSlider.value=o,e.saturationRangeSlider.value=s[1],e.brightnessRangeSlider.value=s[2],e.hueRangeSlider.layout(),e.saturationRangeSlider.layout(),e.brightnessRangeSlider.layout();var l=Utils.colorHsbToHsl(s[0],s[1],1),p=Utils.colorHsbToHsl(s[0],0,1),c=Utils.colorHsbToHsl(s[0],1,1),d=s[2];e.hueRangeSlider.$el[0].style.setProperty("--f7-range-knob-color","hsl("+o+", 100%, 50%)"),e.saturationRangeSlider.$el[0].style.setProperty("--f7-range-knob-color","hsl("+l[0]+", "+100*l[1]+"%, "+100*l[2]+"%)"),e.brightnessRangeSlider.$el[0].style.setProperty("--f7-range-knob-color","rgb("+255*d+", "+255*d+", "+255*d+")"),e.saturationRangeSlider.$el.find(".range-bar").css("background-image","linear-gradient("+(t.rtl?"to left":"to right")+", hsl("+p[0]+", "+100*p[1]+"%, "+100*p[2]+"%), hsl("+c[0]+", "+100*c[1]+"%, "+100*c[2]+"%))"),i&&n?(e.$el.find("input.color-picker-value-hue").val(""+o),e.$el.find("input.color-picker-value-saturation").val(""+1e3*s[1]/10),e.$el.find("input.color-picker-value-brightness").val(""+1e3*s[2]/10)):i&&(e.$el.find("span.color-picker-value-hue").text(""+o),e.$el.find("span.color-picker-value-saturation").text(""+1e3*s[1]/10),e.$el.find("span.color-picker-value-brightness").text(""+1e3*s[2]/10))},destroy:function(e){e.hueRangeSlider&&e.hueRangeSlider.destroy&&e.hueRangeSlider.destroy(),e.saturationRangeSlider&&e.saturationRangeSlider.destroy&&e.saturationRangeSlider.destroy(),e.brightnessRangeSlider&&e.brightnessRangeSlider.destroy&&e.brightnessRangeSlider.destroy(),delete e.hueRangeSlider,delete e.saturationRangeSlider,delete e.brightnessRangeSlider,e.destroyHsbSlidersEvents&&e.destroyHsbSlidersEvents(),delete e.destroyHsbSlidersEvents}},moduleHueSlider={render:function(e){var t=e.params,a=t.sliderLabel,r=t.sliderValue,i=t.sliderValueEditable,n=t.hueLabelText;return'\n
                          \n
                          \n '+(a?'\n
                          '+n+"
                          \n ":"")+'\n
                          \n '+(r?'\n
                          \n '+(i?'\n \n ':'\n \n ')+"\n
                          \n ":"")+"\n
                          \n
                          \n "},init:function(e){e.hueRangeSlider=e.app.range.create({el:e.$el.find(".color-picker-slider-hue"),min:0,max:360,step:.1,value:0,on:{change:function(t,a){e.setValue({hue:a})}}})},update:function(e){var t=e.value,a=e.params,r=a.sliderValue,i=a.sliderValueEditable,n=t.hue;e.hueRangeSlider.value=n,e.hueRangeSlider.layout(),e.hueRangeSlider.$el[0].style.setProperty("--f7-range-knob-color","hsl("+n+", 100%, 50%)"),r&&i?e.$el.find("input.color-picker-value-hue").val(""+n):r&&e.$el.find("span.color-picker-value-hue").text(""+n)},destroy:function(e){e.hueRangeSlider&&e.hueRangeSlider.destroy&&e.hueRangeSlider.destroy(),delete e.hueRangeSlider}},moduleBrightnessSlider={render:function(e){var t=e.params,a=t.sliderLabel,r=t.sliderValue,i=t.sliderValueEditable,n=t.brightnessLabelText;return'\n
                          \n
                          \n '+(a?'\n
                          '+n+"
                          \n ":"")+'\n
                          \n '+(r?'\n
                          \n '+(i?'\n \n ':'\n \n ')+"\n
                          \n ":"")+"\n
                          \n
                          \n "},init:function(e){e.brightnessRangeSlider=e.app.range.create({el:e.$el.find(".color-picker-slider-brightness"),min:0,max:1,step:.001,value:0,on:{change:function(t,a){var r=Math.floor(1e3*a)/1e3;e.setValue({hsb:[e.value.hsb[0],e.value.hsb[1],r]})}}})},update:function(e){var t=e.value,a=e.app,r=e.params,i=r.sliderValue,n=r.sliderValueEditable,s=t.hsb;e.brightnessRangeSlider.value=s[2],e.brightnessRangeSlider.layout();var o=Utils.colorHsbToHsl(s[0],s[1],s[2]),l=Utils.colorHsbToHsl(s[0],s[1],0),p=Utils.colorHsbToHsl(s[0],s[1],1);e.brightnessRangeSlider.$el[0].style.setProperty("--f7-range-knob-color","hsl("+o[0]+", "+100*o[1]+"%, "+100*o[2]+"%)"),e.brightnessRangeSlider.$el.find(".range-bar").css("background-image","linear-gradient("+(a.rtl?"to left":"to right")+", hsl("+l[0]+", "+100*l[1]+"%, "+100*l[2]+"%), hsl("+p[0]+", "+100*p[1]+"%, "+100*p[2]+"%))"),i&&n?e.$el.find("input.color-picker-value-brightness").val(""+1e3*s[2]/10):i&&e.$el.find("span.color-picker-value-brightness").text(""+1e3*s[2]/10)},destroy:function(e){e.brightnessRangeSlider&&e.brightnessRangeSlider.destroy&&e.brightnessRangeSlider.destroy(),delete e.brightnessRangeSlider}},modulePalette={render:function(e){return'\n
                          \n
                          \n '+e.params.palette.map((function(e){if(Array.isArray(e)){var t='
                          ';return t+=e.map((function(e){return'\n
                          \n '})).join(""),t+="
                          "}return'\n
                          \n '})).join("")+"\n
                          \n
                          \n "},init:function(e){function t(t){var a=$(t.target).attr("data-palette-color");e.setValue({hex:a})}e.$el.on("click",".color-picker-module-palette .color-picker-palette-value",t),e.destroyPaletteEvents=function(){e.$el.off("click",".color-picker-module-hex input",t)}},destroy:function(e){e.destroyPaletteEvents&&e.destroyPaletteEvents(),delete e.destroyPaletteEvents}},moduleInitialCurrentColors={render:function(){return'\n
                          \n
                          \n
                          \n
                          \n
                          \n
                          \n '},init:function(e){function t(){if(e.initialValue){var t=e.initialValue,a=t.hex,r=t.alpha;e.setValue({hex:a,alpha:r})}}e.$el.on("click",".color-picker-initial-color",t),e.destroyInitialCurrentEvents=function(){e.$el.off("click",".color-picker-initial-color",t)}},update:function(e){e.$el.find(".color-picker-module-initial-current-colors .color-picker-initial-color").css("background-color",e.initialValue.hex),e.$el.find(".color-picker-module-initial-current-colors .color-picker-current-color").css("background-color",e.value.hex)},destroy:function(e){e.destroyInitialCurrentEvents&&e.destroyInitialCurrentEvents(),delete e.destroyInitialCurrentEvents}},moduleRgbBars={render:function(e){var t=e.params,a=t.barLabel,r=t.barValue,i=t.barValueEditable,n=t.redLabelText,s=t.greenLabelText,o=t.blueLabelText;return'\n
                          \n
                          \n '+(a?'\n
                          '+n+"
                          \n ":"")+'\n
                          \n '+(r?'\n
                          \n '+(i?'\n \n ':'\n \n ')+"\n
                          \n ":"")+'\n
                          \n
                          \n '+(a?'\n
                          '+s+"
                          \n ":"")+'\n
                          \n '+(r?'\n
                          \n '+(i?'\n \n ':'\n \n ')+"\n
                          \n ":"")+'\n
                          \n
                          \n '+(a?'\n
                          '+o+"
                          \n ":"")+'\n
                          \n '+(r?'\n
                          \n '+(i?'\n \n ':'\n \n ')+"\n
                          \n ":"")+"\n
                          \n
                          \n "},init:function(e){function t(t){var a=[].concat(e.value.rgb),r=parseInt($(t.target).attr("data-color-index"),10),i=parseInt(t.target.value,10);Number.isNaN(i)?t.target.value=a[r]:(i=Math.max(0,Math.min(255,i)),a[r]=i,e.setValue({rgb:a}))}e.redBar=e.app.range.create({el:e.$el.find(".color-picker-bar-red"),min:0,max:255,step:1,value:0,vertical:!0,on:{change:function(t,a){e.setValue({rgb:[a,e.value.rgb[1],e.value.rgb[2]]})}}}),e.greenBar=e.app.range.create({el:e.$el.find(".color-picker-bar-green"),min:0,max:255,step:1,value:0,vertical:!0,on:{change:function(t,a){e.setValue({rgb:[e.value.rgb[0],a,e.value.rgb[2]]})}}}),e.blueBar=e.app.range.create({el:e.$el.find(".color-picker-bar-blue"),min:0,max:255,step:1,value:0,vertical:!0,on:{change:function(t,a){e.setValue({rgb:[e.value.rgb[0],e.value.rgb[1],a]})}}}),e.$el.on("change",".color-picker-module-rgb-bars input",t),e.destroyRgbBarsEvents=function(){e.$el.off("change",".color-picker-module-rgb-bars input",t)}},update:function(e){var t=e.value,a=e.redBar,r=e.greenBar,i=e.blueBar,n=e.params,s=n.barValue,o=n.barValueEditable,l=t.rgb;a.value=l[0],r.value=l[1],i.value=l[2],a.layout(),r.layout(),i.layout(),a.$el.find(".range-bar").css("background-image","linear-gradient(to top, rgb(0, "+l[1]+", "+l[2]+"), rgb(255, "+l[1]+", "+l[2]+"))"),r.$el.find(".range-bar").css("background-image","linear-gradient(to top, rgb("+l[0]+", 0, "+l[2]+"), rgb("+l[0]+", 255, "+l[2]+"))"),i.$el.find(".range-bar").css("background-image","linear-gradient(to top, rgb("+l[0]+", "+l[1]+", 0), rgb("+l[0]+", "+l[1]+", 255))"),s&&o?(e.$el.find("input.color-picker-value-bar-red").val(l[0]),e.$el.find("input.color-picker-value-bar-green").val(l[1]),e.$el.find("input.color-picker-value-bar-blue").val(l[2])):s&&(e.$el.find("span.color-picker-value-bar-red").text(l[0]),e.$el.find("span.color-picker-value-bar-green").text(l[1]),e.$el.find("span.color-picker-value-bar-blue").text(l[2]))},destroy:function(e){e.redBar&&e.redBar.destroy&&e.redBar.destroy(),e.greenBar&&e.greenBar.destroy&&e.greenBar.destroy(),e.blueBar&&e.blueBar.destroy&&e.blueBar.destroy(),delete e.redBar,delete e.greenBar,delete e.blueBar,e.destroyRgbBarsEvents&&e.destroyRgbBarsEvents(),delete e.destroyRgbBarsEvents}},moduleRgbSliders={render:function(e){var t=e.params,a=t.sliderLabel,r=t.sliderValue,i=t.sliderValueEditable,n=t.redLabelText,s=t.greenLabelText,o=t.blueLabelText;return'\n
                          \n
                          \n '+(a?'\n
                          '+n+"
                          \n ":"")+'\n
                          \n '+(r?'\n
                          \n '+(i?'\n \n ':'\n \n ')+"\n
                          \n ":"")+'\n
                          \n
                          \n '+(a?'\n
                          '+s+"
                          \n ":"")+'\n
                          \n '+(r?'\n
                          \n '+(i?'\n \n ':'\n \n ')+"\n
                          \n ":"")+'\n
                          \n
                          \n '+(a?'\n
                          '+o+"
                          \n ":"")+'\n
                          \n '+(r?'\n
                          \n '+(i?'\n \n ':'\n \n ')+"\n
                          \n ":"")+"\n
                          \n
                          \n "},init:function(e){function t(t){var a=[].concat(e.value.rgb),r=parseInt($(t.target).attr("data-color-index"),10),i=parseInt(t.target.value,10);Number.isNaN(i)?t.target.value=a[r]:(i=Math.max(0,Math.min(255,i)),a[r]=i,e.setValue({rgb:a}))}e.redRangeSlider=e.app.range.create({el:e.$el.find(".color-picker-slider-red"),min:0,max:255,step:1,value:0,on:{change:function(t,a){e.setValue({rgb:[a,e.value.rgb[1],e.value.rgb[2]]})}}}),e.greenRangeSlider=e.app.range.create({el:e.$el.find(".color-picker-slider-green"),min:0,max:255,step:1,value:0,on:{change:function(t,a){e.setValue({rgb:[e.value.rgb[0],a,e.value.rgb[2]]})}}}),e.blueRangeSlider=e.app.range.create({el:e.$el.find(".color-picker-slider-blue"),min:0,max:255,step:1,value:0,on:{change:function(t,a){e.setValue({rgb:[e.value.rgb[0],e.value.rgb[1],a]})}}}),e.$el.on("change",".color-picker-module-rgb-sliders input",t),e.destroyRgbSlidersEvents=function(){e.$el.off("change",".color-picker-module-rgb-sliders input",t)}},update:function(e){var t=e.app,a=e.value,r=e.redRangeSlider,i=e.greenRangeSlider,n=e.blueRangeSlider,s=e.params,o=s.sliderValue,l=s.sliderValueEditable,p=a.rgb;r.value=p[0],i.value=p[1],n.value=p[2],r.layout(),i.layout(),n.layout(),r.$el[0].style.setProperty("--f7-range-knob-color","rgb("+p[0]+", "+p[1]+", "+p[2]+")"),i.$el[0].style.setProperty("--f7-range-knob-color","rgb("+p[0]+", "+p[1]+", "+p[2]+")"),n.$el[0].style.setProperty("--f7-range-knob-color","rgb("+p[0]+", "+p[1]+", "+p[2]+")");var c=t.rtl?"to left":"to right";r.$el.find(".range-bar").css("background-image","linear-gradient("+c+", rgb(0, "+p[1]+", "+p[2]+"), rgb(255, "+p[1]+", "+p[2]+"))"),i.$el.find(".range-bar").css("background-image","linear-gradient("+c+", rgb("+p[0]+", 0, "+p[2]+"), rgb("+p[0]+", 255, "+p[2]+"))"),n.$el.find(".range-bar").css("background-image","linear-gradient("+c+", rgb("+p[0]+", "+p[1]+", 0), rgb("+p[0]+", "+p[1]+", 255))"),o&&l?(e.$el.find("input.color-picker-value-red").val(p[0]),e.$el.find("input.color-picker-value-green").val(p[1]),e.$el.find("input.color-picker-value-blue").val(p[2])):o&&(e.$el.find("span.color-picker-value-red").text(p[0]),e.$el.find("span.color-picker-value-green").text(p[1]),e.$el.find("span.color-picker-value-blue").text(p[2]))},destroy:function(e){e.redRangeSlider&&e.redRangeSlider.destroy&&e.redRangeSlider.destroy(),e.greenRangeSlider&&e.greenRangeSlider.destroy&&e.greenRangeSlider.destroy(),e.blueRangeSlider&&e.blueRangeSlider.destroy&&e.blueRangeSlider.destroy(),delete e.redRangeSlider,delete e.greenRangeSlider,delete e.blueRangeSlider,e.destroyRgbSlidersEvents&&e.destroyRgbSlidersEvents(),delete e.destroyRgbSlidersEvents}},moduleSbSpectrum={render:function(){return'\n
                          \n
                          \n
                          \n
                          \n
                          \n '},init:function(e){var t,a,r,i,n,s,o,l,p=e.app,c=e.$el;function d(t,a){var r=(t-s.left)/s.width,i=(a-s.top)/s.height;r=Math.max(0,Math.min(1,r)),i=1-Math.max(0,Math.min(1,i)),e.setValue({hsb:[e.value.hue,r,i]})}function u(e){if(!t){a="touchstart"===e.type?e.targetTouches[0].pageX:e.pageX,i=a,r="touchstart"===e.type?e.targetTouches[0].pageY:e.pageY,n=r;var p=$(e.target);(l=p.closest(".color-picker-sb-spectrum-handle").length>0)||(o=p.closest(".color-picker-sb-spectrum").length>0),o&&(s=c.find(".color-picker-sb-spectrum")[0].getBoundingClientRect(),d(a,r)),(l||o)&&c.find(".color-picker-sb-spectrum-handle").addClass("color-picker-sb-spectrum-handle-pressed")}}function h(e){(o||l)&&(i="touchmove"===e.type?e.targetTouches[0].pageX:e.pageX,n="touchmove"===e.type?e.targetTouches[0].pageY:e.pageY,e.preventDefault(),t||(t=!0,l&&(s=c.find(".color-picker-sb-spectrum")[0].getBoundingClientRect())),(o||l)&&d(i,n))}function f(){t=!1,(o||l)&&c.find(".color-picker-sb-spectrum-handle").removeClass("color-picker-sb-spectrum-handle-pressed"),o=!1,l=!1}function v(){e.modules["sb-spectrum"].update(e)}var m=!("touchstart"!==p.touchEvents.start||!p.support.passiveListener)&&{passive:!0,capture:!1};e.$el.on(p.touchEvents.start,u,m),p.on("touchmove:active",h),p.on("touchend:passive",f),p.on("resize",v),e.destroySpectrumEvents=function(){e.$el.off(p.touchEvents.start,u,m),p.off("touchmove:active",h),p.off("touchend:passive",f),p.off("resize",v)}},update:function(e){var t=e.value,a=t.hsl,r=t.hsb,i=e.$el.find(".color-picker-sb-spectrum")[0].offsetWidth,n=e.$el.find(".color-picker-sb-spectrum")[0].offsetHeight;e.$el.find(".color-picker-sb-spectrum").css("background-color","hsl("+a[0]+", 100%, 50%)"),e.$el.find(".color-picker-sb-spectrum-handle").css("background-color","hsl("+a[0]+", "+100*a[1]+"%, "+100*a[2]+"%)").transform("translate("+i*r[1]+"px, "+n*(1-r[2])+"px)")},destroy:function(e){e.destroySpectrumEvents&&e.destroySpectrumEvents(),delete e.destroySpectrumEvents}},moduleHsSpectrum={render:function(){return'\n
                          \n
                          \n
                          \n
                          \n
                          \n '},init:function(e){var t,a,r,i,n,s,o,l,p=e.app,c=e.$el;function d(t,a){var r=(t-s.left)/s.width*360,i=(a-s.top)/s.height;r=Math.max(0,Math.min(360,r)),i=1-Math.max(0,Math.min(1,i)),e.setValue({hsb:[r,i,e.value.hsb[2]]})}function u(e){if(!t){a="touchstart"===e.type?e.targetTouches[0].pageX:e.pageX,i=a,r="touchstart"===e.type?e.targetTouches[0].pageY:e.pageY,n=r;var p=$(e.target);(l=p.closest(".color-picker-hs-spectrum-handle").length>0)||(o=p.closest(".color-picker-hs-spectrum").length>0),o&&(s=c.find(".color-picker-hs-spectrum")[0].getBoundingClientRect(),d(a,r)),(l||o)&&c.find(".color-picker-hs-spectrum-handle").addClass("color-picker-hs-spectrum-handle-pressed")}}function h(e){(o||l)&&(i="touchmove"===e.type?e.targetTouches[0].pageX:e.pageX,n="touchmove"===e.type?e.targetTouches[0].pageY:e.pageY,e.preventDefault(),t||(t=!0,l&&(s=c.find(".color-picker-hs-spectrum")[0].getBoundingClientRect())),(o||l)&&d(i,n))}function f(){t=!1,(o||l)&&c.find(".color-picker-hs-spectrum-handle").removeClass("color-picker-hs-spectrum-handle-pressed"),o=!1,l=!1}function v(){e.modules["hs-spectrum"].update(e)}var m=!("touchstart"!==p.touchEvents.start||!p.support.passiveListener)&&{passive:!0,capture:!1};e.$el.on(p.touchEvents.start,u,m),p.on("touchmove:active",h),p.on("touchend:passive",f),p.on("resize",v),e.destroySpectrumEvents=function(){e.$el.off(p.touchEvents.start,u,m),p.off("touchmove:active",h),p.off("touchend:passive",f),p.off("resize",v)}},update:function(e){var t=e.value.hsb,a=e.$el.find(".color-picker-hs-spectrum")[0].offsetWidth,r=e.$el.find(".color-picker-hs-spectrum")[0].offsetHeight,i=Utils.colorHsbToHsl(t[0],t[1],1);e.$el.find(".color-picker-hs-spectrum-handle").css("background-color","hsl("+i[0]+", "+100*i[1]+"%, "+100*i[2]+"%)").transform("translate("+a*(t[0]/360)+"px, "+r*(1-t[1])+"px)")},destroy:function(e){e.destroySpectrumEvents&&e.destroySpectrumEvents(),delete e.destroySpectrumEvents}};function svgWheelCircles(){for(var e="",t=256;t>0;t-=1){var a=t*Math.PI/128,r=1.40625*t;e+=''}return e}var moduleWheel={render:function(){return'\n
                          \n
                          \n '+svgWheelCircles()+'\n
                          \n
                          \n
                          \n
                          \n
                          \n
                          \n '},init:function(e){var t,a,r,i,n,s,o,l,p,c,d,u=e.app,h=e.$el;function f(t,a){var r=s.left+s.width/2,i=s.top+s.height/2,n=180*Math.atan2(a-i,t-r)/Math.PI+90;n<0&&(n+=360),n=360-n,e.setValue({hue:n})}function v(t,a){var r=(t-p.left)/p.width,i=(a-p.top)/p.height;r=Math.max(0,Math.min(1,r)),i=1-Math.max(0,Math.min(1,i)),e.setValue({hsb:[e.value.hue,r,i]})}function m(e){if(!t){a="touchstart"===e.type?e.targetTouches[0].pageX:e.pageX,i=a,r="touchstart"===e.type?e.targetTouches[0].pageY:e.pageY,n=r;var u=$(e.target);l=u.closest(".color-picker-wheel-handle").length>0,o=u.closest("circle").length>0,(d=u.closest(".color-picker-sb-spectrum-handle").length>0)||(c=u.closest(".color-picker-sb-spectrum").length>0),o&&(s=h.find(".color-picker-wheel")[0].getBoundingClientRect(),f(a,r)),c&&(p=h.find(".color-picker-sb-spectrum")[0].getBoundingClientRect(),v(a,r)),(d||c)&&h.find(".color-picker-sb-spectrum-handle").addClass("color-picker-sb-spectrum-handle-pressed")}}function g(e){(o||l||c||d)&&(i="touchmove"===e.type?e.targetTouches[0].pageX:e.pageX,n="touchmove"===e.type?e.targetTouches[0].pageY:e.pageY,e.preventDefault(),t||(t=!0,l&&(s=h.find(".color-picker-wheel")[0].getBoundingClientRect()),d&&(p=h.find(".color-picker-sb-spectrum")[0].getBoundingClientRect())),(o||l)&&f(i,n),(c||d)&&v(i,n))}function b(){t=!1,(c||d)&&h.find(".color-picker-sb-spectrum-handle").removeClass("color-picker-sb-spectrum-handle-pressed"),o=!1,l=!1,c=!1,d=!1}function y(){e.modules.wheel.update(e)}var w=!("touchstart"!==u.touchEvents.start||!u.support.passiveListener)&&{passive:!0,capture:!1};e.$el.on(u.touchEvents.start,m,w),u.on("touchmove:active",g),u.on("touchend:passive",b),u.on("resize",y),e.destroyWheelEvents=function(){e.$el.off(u.touchEvents.start,m,w),u.off("touchmove:active",g),u.off("touchend:passive",b),u.off("resize",y)}},update:function(e){var t=e.value,a=t.hsl,r=t.hsb,i=e.$el.find(".color-picker-sb-spectrum")[0].offsetWidth,n=e.$el.find(".color-picker-sb-spectrum")[0].offsetHeight,s=e.$el.find(".color-picker-wheel")[0].offsetWidth,o=s/2,l=t.hue*Math.PI/180,p=s/6/2,c=o-Math.sin(l)*(o-p)-p,d=o-Math.cos(l)*(o-p)-p;e.$el.find(".color-picker-wheel-handle").css("background-color","hsl("+a[0]+", 100%, 50%)").transform("translate("+c+"px, "+d+"px)"),e.$el.find(".color-picker-sb-spectrum").css("background-color","hsl("+a[0]+", 100%, 50%)"),e.$el.find(".color-picker-sb-spectrum-handle").css("background-color","hsl("+a[0]+", "+100*a[1]+"%, "+100*a[2]+"%)").transform("translate("+i*r[1]+"px, "+n*(1-r[2])+"px)")},destroy:function(e){e.destroyWheelEvents&&e.destroyWheelEvents(),delete e.destroyWheelEvents}},ColorPicker=function(e){function t(t,a){void 0===a&&(a={}),e.call(this,a,[t]);var r,i,n,s=this;if(s.params=Utils.extend({},t.params.colorPicker,a),s.params.containerEl&&0===(r=$(s.params.containerEl)).length)return s;function o(){s.open()}function l(e){e.preventDefault()}function p(){s.open()}function c(e){if(!s.destroyed&&s.params&&"page"!==s.params.openIn){var t=$(e.target);s.opened&&!s.closing&&(t.closest('[class*="backdrop"]').length||t.closest(".color-picker-popup, .color-picker-popover").length||(i&&i.length>0?t[0]!==i[0]&&0===t.closest(".sheet-modal").length&&s.close():0===$(e.target).closest(".sheet-modal").length&&s.close()))}}return s.params.inputEl&&(i=$(s.params.inputEl)),s.params.targetEl&&(n=$(s.params.targetEl)),Utils.extend(s,{app:t,$containerEl:r,containerEl:r&&r[0],inline:r&&r.length>0,$inputEl:i,inputEl:i&&i[0],$targetEl:n,targetEl:n&&n[0],initialized:!1,opened:!1,url:s.params.url,modules:{"alpha-slider":moduleAlphaSlider,"current-color":moduleCurrentColor,hex:moduleHex,"hsb-sliders":moduleHsbSliders,"hue-slider":moduleHueSlider,"brightness-slider":moduleBrightnessSlider,palette:modulePalette,"initial-current-colors":moduleInitialCurrentColors,"rgb-bars":moduleRgbBars,"rgb-sliders":moduleRgbSliders,"sb-spectrum":moduleSbSpectrum,"hs-spectrum":moduleHsSpectrum,wheel:moduleWheel}}),Utils.extend(s,{attachInputEvents:function(){s.$inputEl.on("click",o),s.params.inputReadOnly&&(s.$inputEl.on("focus mousedown",l),s.$inputEl[0]&&(s.$inputEl[0].f7ValidateReadonly=!0))},detachInputEvents:function(){s.$inputEl.off("click",o),s.params.inputReadOnly&&(s.$inputEl.off("focus mousedown",l),s.$inputEl[0]&&delete s.$inputEl[0].f7ValidateReadonly)},attachTargetEvents:function(){s.$targetEl.on("click",p)},detachTargetEvents:function(){s.$targetEl.off("click",p)},attachHtmlEvents:function(){t.on("click",c)},detachHtmlEvents:function(){t.off("click",c)}}),s.init(),s}e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t;var a={view:{configurable:!0}};return a.view.get=function(){var e,t=this.$inputEl,a=this.$targetEl,r=this.app,i=this.params;return i.view?e=i.view:(t&&(e=t.parents(".view").length&&t.parents(".view")[0].f7View),!e&&a&&(e=a.parents(".view").length&&a.parents(".view")[0].f7View)),e||(e=r.views.main),e},t.prototype.attachEvents=function(){this.centerModules=this.centerModules.bind(this),this.params.centerModules&&this.app.on("resize",this.centerModules)},t.prototype.detachEvents=function(){this.params.centerModules&&this.app.off("resize",this.centerModules)},t.prototype.centerModules=function(){if(this.opened&&this.$el&&!this.inline){var e=this.$el.find(".page-content");if(e.length){var t=e[0];t.scrollHeight<=t.offsetHeight?e.addClass("justify-content-center"):e.removeClass("justify-content-center")}}},t.prototype.initInput=function(){this.$inputEl&&this.params.inputReadOnly&&this.$inputEl.prop("readOnly",!0)},t.prototype.getModalType=function(){var e=this.app,t=this.modal,a=this.params,r=a.openIn,i=a.openInPhone;return t&&t.type?t.type:"auto"!==r?r:this.inline?null:e.device.ios?e.device.ipad?"popover":i:e.width>=768||e.device.desktop&&"aurora"===e.theme?"popover":i},t.prototype.formatValue=function(){var e=this.value;return this.params.formatValue?this.params.formatValue.call(this,e):e.hex},t.prototype.normalizeHsValues=function(e){return[Math.floor(10*e[0])/10,Math.floor(1e3*e[1])/1e3,Math.floor(1e3*e[2])/1e3]},t.prototype.setValue=function(e,t){void 0===e&&(e={}),void 0===t&&(t=!0);var a=this;if(void 0!==e){var r=a.value||{},i=r.hex,n=r.rgb,s=r.hsl,o=r.hsb,l=r.alpha;void 0===l&&(l=1);var p,c=r.hue,d=r.rgba,u=r.hsla,h=a.value||!a.value&&!a.params.value;if(Object.keys(e).forEach((function(t){if(a.value&&void 0!==a.value[t]){var r=e[t];Array.isArray(r)?r.forEach((function(e,r){e!==a.value[t][r]&&(p=!0)})):r!==a.value[t]&&(p=!0)}else p=!0})),p){if(e.rgb||e.rgba){var f=e.rgb||e.rgba,v=f[0],m=f[1],g=f[2],b=f[3];void 0===b&&(b=l),n=[v,m,g],i=Utils.colorRgbToHex.apply(Utils,n),s=Utils.colorRgbToHsl.apply(Utils,n),o=Utils.colorHslToHsb.apply(Utils,s),s=a.normalizeHsValues(s),c=(o=a.normalizeHsValues(o))[0],l=b,d=[n[0],n[1],n[2],b],u=[s[0],s[1],s[2],b]}if(e.hsl||e.hsla){var y=e.hsl||e.hsla,w=y[0],C=y[1],x=y[2],$=y[3];void 0===$&&($=l),s=[w,C,x],n=Utils.colorHslToRgb.apply(Utils,s),i=Utils.colorRgbToHex.apply(Utils,n),o=Utils.colorHslToHsb.apply(Utils,s),s=a.normalizeHsValues(s),c=(o=a.normalizeHsValues(o))[0],l=$,d=[n[0],n[1],n[2],$],u=[s[0],s[1],s[2],$]}if(e.hsb){var k=e.hsb,E=k[0],T=k[1],S=k[2],M=k[3];void 0===M&&(M=l),o=[E,T,S],s=Utils.colorHsbToHsl.apply(Utils,o),n=Utils.colorHslToRgb.apply(Utils,s),i=Utils.colorRgbToHex.apply(Utils,n),s=a.normalizeHsValues(s),c=(o=a.normalizeHsValues(o))[0],l=M,d=[n[0],n[1],n[2],M],u=[s[0],s[1],s[2],M]}if(e.hex&&(n=Utils.colorHexToRgb(e.hex),i=Utils.colorRgbToHex.apply(Utils,n),s=Utils.colorRgbToHsl.apply(Utils,n),o=Utils.colorHslToHsb.apply(Utils,s),s=a.normalizeHsValues(s),c=(o=a.normalizeHsValues(o))[0],d=[n[0],n[1],n[2],l],u=[s[0],s[1],s[2],l]),void 0!==e.alpha&&(l=e.alpha,void 0!==n&&(d=[n[0],n[1],n[2],l]),void 0!==s&&(u=[s[0],s[1],s[2],l])),void 0!==e.hue){s[0];var P=s[1],O=s[2];s=[e.hue,P,O],o=Utils.colorHslToHsb.apply(Utils,s),n=Utils.colorHslToRgb.apply(Utils,s),i=Utils.colorRgbToHex.apply(Utils,n),s=a.normalizeHsValues(s),c=(o=a.normalizeHsValues(o))[0],d=[n[0],n[1],n[2],l],u=[s[0],s[1],s[2],l]}a.value={hex:i,alpha:l,hue:c,rgb:n,hsl:s,hsb:o,rgba:d,hsla:u},a.initialValue||(a.initialValue=Utils.extend({},a.value)),a.updateValue(h),a.opened&&t&&a.updateModules()}}},t.prototype.getValue=function(){return this.value},t.prototype.updateValue=function(e){void 0===e&&(e=!0);var t=this.$inputEl,a=this.value,r=this.$targetEl;if(r&&this.params.targetElSetBackgroundColor){var i=a.rgba;r.css("background-color","rgba("+i.join(", ")+")")}if(e&&this.emit("local::change colorPickerChange",this,a),t&&t.length){var n=this.formatValue(a);t&&t.length&&(t.val(n),e&&t.trigger("change"))}},t.prototype.updateModules=function(){var e=this,t=e.modules;e.params.modules.forEach((function(a){"string"==typeof a&&t[a]&&t[a].update?t[a].update(e):a&&a.update&&a.update(e)}))},t.prototype.update=function(){this.updateModules()},t.prototype.renderPicker=function(){var e=this,t=e.params,a=e.modules,r="";return t.modules.forEach((function(t){"string"==typeof t&&a[t]&&a[t].render?r+=a[t].render(e):t&&t.render&&(r+=t.render(e))})),r},t.prototype.renderNavbar=function(){if(this.params.renderNavbar)return this.params.renderNavbar.call(this,this);var e=this.params,t=e.openIn,a=e.navbarTitleText,r=e.navbarBackLinkText,i=e.navbarCloseText;return('\n \n ").trim()},t.prototype.renderToolbar=function(){return this.params.renderToolbar?this.params.renderToolbar.call(this,this):('\n \n ").trim()},t.prototype.renderInline=function(){var e=this.params,t=e.cssClass;return('\n
                          \n '+this.renderPicker()+"\n
                          \n ").trim()},t.prototype.renderSheet=function(){var e=this.params,t=e.cssClass,a=e.toolbarSheet;return('\n
                          \n '+(a?this.renderToolbar():"")+'\n
                          \n
                          \n '+this.renderPicker()+"\n
                          \n
                          \n
                          \n ").trim()},t.prototype.renderPopover=function(){var e=this.params,t=e.cssClass,a=e.toolbarPopover;return('\n
                          \n
                          \n
                          \n '+(a?this.renderToolbar():"")+'\n
                          \n '+this.renderPicker()+"\n
                          \n
                          \n
                          \n
                          \n ").trim()},t.prototype.renderPopup=function(){var e=this.params,t=e.cssClass,a=e.navbarPopup,r=e.groupedModules;return('\n \n ").trim()},t.prototype.renderPage=function(){var e=this.params,t=e.cssClass,a=e.groupedModules;return('\n
                          \n '+this.renderNavbar()+'\n
                          \n
                          \n '+this.renderPicker()+"\n
                          \n
                          \n
                          \n ").trim()},t.prototype.render=function(){var e=this.params;if(e.render)return e.render.call(this);if(this.inline)return this.renderInline();if("page"===e.openIn)return this.renderPage();var t=this.getModalType();return"popover"===t?this.renderPopover():"sheet"===t?this.renderSheet():"popup"===t?this.renderPopup():void 0},t.prototype.onOpen=function(){var e=this,t=e.initialized,a=e.$el,r=e.app,i=e.$inputEl,n=e.inline,s=e.value,o=e.params,l=e.modules;e.closing=!1,e.opened=!0,e.opening=!0,e.attachEvents(),o.modules.forEach((function(t){"string"==typeof t&&l[t]&&l[t].init?l[t].init(e):t&&t.init&&t.init(e)}));var p=!s&&o.value;t?s&&(e.initialValue=Utils.extend({},s),e.setValue(s,!1)):s?e.setValue(s):o.value?e.setValue(o.value,!1):o.value||e.setValue({hex:"#ff0000"},!1),p&&e.updateValue(),e.updateModules(),o.centerModules&&e.centerModules(),!n&&i&&i.length&&"md"===r.theme&&i.trigger("focus"),e.initialized=!0,a&&a.trigger("colorpicker:open"),i&&i.trigger("colorpicker:open"),e.emit("local::open colorPickerOpen",e)},t.prototype.onOpened=function(){this.opening=!1,this.$el&&this.$el.trigger("colorpicker:opened"),this.$inputEl&&this.$inputEl.trigger("colorpicker:opened"),this.emit("local::opened colorPickerOpened",this)},t.prototype.onClose=function(){var e=this,t=e.app,a=e.params,r=e.modules;if(e.opening=!1,e.closing=!0,e.detachEvents(),e.$inputEl)if("md"===t.theme)e.$inputEl.trigger("blur");else{var i=e.$inputEl.attr("validate"),n=e.$inputEl.attr("required");i&&n&&t.input.validate(e.$inputEl)}a.modules.forEach((function(t){"string"==typeof t&&r[t]&&r[t].destroy?r[t].destroy(e):t&&t.destroy&&t.destroy(e)})),e.$el&&e.$el.trigger("colorpicker:close"),e.$inputEl&&e.$inputEl.trigger("colorpicker:close"),e.emit("local::close colorPickerClose",e)},t.prototype.onClosed=function(){var e=this;e.opened=!1,e.closing=!1,e.inline||Utils.nextTick((function(){e.modal&&e.modal.el&&e.modal.destroy&&(e.params.routableModals||e.modal.destroy()),delete e.modal})),e.$el&&e.$el.trigger("colorpicker:closed"),e.$inputEl&&e.$inputEl.trigger("colorpicker:closed"),e.emit("local::closed colorPickerClosed",e)},t.prototype.open=function(){var e,t=this,a=t.app,r=t.opened,i=t.inline,n=t.$inputEl,s=t.$targetEl,o=t.params;if(!r){if(i)return t.$el=$(t.render()),t.$el[0].f7ColorPicker=t,t.$containerEl.append(t.$el),t.onOpen(),void t.onOpened();var l=t.render();if("page"===o.openIn)t.view.router.navigate({url:t.url,route:{content:l,path:t.url,on:{pageBeforeIn:function(e,a){t.$el=a.$el.find(".color-picker"),t.$el[0].f7ColorPicker=t,t.onOpen()},pageAfterIn:function(){t.onOpened()},pageBeforeOut:function(){t.onClose()},pageAfterOut:function(){t.onClosed(),t.$el&&t.$el[0]&&(t.$el[0].f7ColorPicker=null,delete t.$el[0].f7ColorPicker)}}}});else{var p=t.getModalType(),c=o.backdrop;null==c&&("popover"===p&&!1!==a.params.popover.backdrop&&(c=!0),"popup"===p&&(c=!0));var d={targetEl:s||n,scrollToEl:o.scrollToInput?s||n:void 0,content:l,backdrop:c,closeByBackdropClick:o.closeByBackdropClick,on:{open:function(){t.modal=this,t.$el="popover"===p||"popup"===p?this.$el.find(".color-picker"):this.$el,t.$el[0].f7ColorPicker=t,t.onOpen()},opened:function(){t.onOpened()},close:function(){t.onClose()},closed:function(){t.onClosed(),t.$el&&t.$el[0]&&(t.$el[0].f7ColorPicker=null,delete t.$el[0].f7ColorPicker)}}};"popup"===p&&(d.push=o.popupPush,d.swipeToClose=o.popupSwipeToClose),"sheet"===p&&(d.push=o.sheetPush,d.swipeToClose=o.sheetSwipeToClose),o.routableModals&&t.view?t.view.router.navigate({url:t.url,route:(e={path:t.url},e[p]=d,e)}):(t.modal=a[p].create(d),t.modal.open())}}},t.prototype.close=function(){var e=this.opened,t=this.inline;if(e)return t?(this.onClose(),void this.onClosed()):void(this.params.routableModals&&this.view||"page"===this.params.openIn?this.view.router.back():this.modal.close())},t.prototype.init=function(){if(this.initInput(),this.inline)return this.open(),void this.emit("local::init colorPickerInit",this);!this.initialized&&this.params.value&&this.setValue(this.params.value),this.$inputEl&&this.attachInputEvents(),this.$targetEl&&this.attachTargetEvents(),this.params.closeByOutsideClick&&this.attachHtmlEvents(),this.emit("local::init colorPickerInit",this)},t.prototype.destroy=function(){if(!this.destroyed){var e=this.$el;this.emit("local::beforeDestroy colorPickerBeforeDestroy",this),e&&e.trigger("colorpicker:beforedestroy"),this.close(),this.detachEvents(),this.$inputEl&&this.detachInputEvents(),this.$targetEl&&this.detachTargetEvents(),this.params.closeByOutsideClick&&this.detachHtmlEvents(),e&&e.length&&delete this.$el[0].f7ColorPicker,Utils.deleteProps(this),this.destroyed=!0}},Object.defineProperties(t.prototype,a),t}(Framework7Class),ColorPicker$1={name:"colorPicker",static:{ColorPicker:ColorPicker},create:function(){this.colorPicker=ConstructorMethods({defaultSelector:".color-picker",constructor:ColorPicker,app:this,domProp:"f7ColorPicker"}),this.colorPicker.close=function(e){void 0===e&&(e=".color-picker");var t=$(e);if(0!==t.length){var a=t[0].f7ColorPicker;!a||a&&!a.opened||a.close()}}},params:{colorPicker:{value:null,modules:["wheel"],palette:[["#FFEBEE","#FFCDD2","#EF9A9A","#E57373","#EF5350","#F44336","#E53935","#D32F2F","#C62828","#B71C1C"],["#F3E5F5","#E1BEE7","#CE93D8","#BA68C8","#AB47BC","#9C27B0","#8E24AA","#7B1FA2","#6A1B9A","#4A148C"],["#E8EAF6","#C5CAE9","#9FA8DA","#7986CB","#5C6BC0","#3F51B5","#3949AB","#303F9F","#283593","#1A237E"],["#E1F5FE","#B3E5FC","#81D4FA","#4FC3F7","#29B6F6","#03A9F4","#039BE5","#0288D1","#0277BD","#01579B"],["#E0F2F1","#B2DFDB","#80CBC4","#4DB6AC","#26A69A","#009688","#00897B","#00796B","#00695C","#004D40"],["#F1F8E9","#DCEDC8","#C5E1A5","#AED581","#9CCC65","#8BC34A","#7CB342","#689F38","#558B2F","#33691E"],["#FFFDE7","#FFF9C4","#FFF59D","#FFF176","#FFEE58","#FFEB3B","#FDD835","#FBC02D","#F9A825","#F57F17"],["#FFF3E0","#FFE0B2","#FFCC80","#FFB74D","#FFA726","#FF9800","#FB8C00","#F57C00","#EF6C00","#E65100"]],groupedModules:!1,centerModules:!0,sliderLabel:!1,sliderValue:!1,sliderValueEdiable:!1,barLabel:!1,barValue:!1,barValueEdiable:!1,hexLabel:!1,hexValueEditable:!1,redLabelText:"R",greenLabelText:"G",blueLabelText:"B",hueLabelText:"H",saturationLabelText:"S",brightnessLabelText:"B",hexLabelText:"HEX",alphaLabelText:"A",containerEl:null,openIn:"popover",openInPhone:"popup",popupPush:!1,popupSwipeToClose:void 0,sheetPush:!1,sheetSwipeToClose:void 0,formatValue:null,targetEl:null,targetElSetBackgroundColor:!1,inputEl:null,inputReadOnly:!0,closeByOutsideClick:!0,scrollToInput:!0,toolbarSheet:!0,toolbarPopover:!1,toolbarCloseText:"Done",navbarPopup:!0,navbarCloseText:"Done",navbarTitleText:"Color",navbarBackLinkText:"Back",cssClass:null,routableModals:!0,view:null,url:"color/",backdrop:null,closeByBackdropClick:!0,renderToolbar:null,renderNavbar:null,renderInline:null,renderPopover:null,renderSheet:null,renderPopup:null,render:null}}},Treeview={open:function(e){var t=this,a=$(e).eq(0);function r(e){e?(a.removeClass("treeview-item-opened"),a.trigger("treeview:close"),t.emit("treeviewClose",a[0])):a[0].f7TreeviewChildrenLoaded=!0,a.find(".treeview-toggle").removeClass("treeview-toggle-hidden"),a.find(".treeview-preloader").remove()}a.length&&(a.addClass("treeview-item-opened"),a.trigger("treeview:open"),t.emit("treeviewOpen",a[0]),a.hasClass("treeview-load-children")&&!a[0].f7TreeviewChildrenLoaded&&(a.trigger("treeview:loadchildren",r),t.emit("treeviewLoadChildren",a[0],r),a.find(".treeview-toggle").addClass("treeview-toggle-hidden"),a.find(".treeview-item-root").prepend('
                          '+Utils[t.theme+"PreloaderContent"]+"
                          ")))},close:function(e){var t=$(e).eq(0);t.length&&(t.removeClass("treeview-item-opened"),t.trigger("treeview:close"),this.emit("treeviewClose",t[0]))},toggle:function(e){var t=$(e).eq(0);if(t.length){var a=t.hasClass("treeview-item-opened");this.treeview[a?"close":"open"](t)}}},Treeview$1={name:"treeview",create:function(){Utils.extend(this,{treeview:{open:Treeview.open.bind(this),close:Treeview.close.bind(this),toggle:Treeview.toggle.bind(this)}})},clicks:{".treeview-toggle":function(e,t,a){if(!e.parents(".treeview-item-toggle").length){var r=e.parents(".treeview-item").eq(0);r.length&&(a.preventF7Router=!0,this.treeview.toggle(r[0]))}},".treeview-item-toggle":function(e,t,a){var r=e.closest(".treeview-item").eq(0);r.length&&(a.preventF7Router=!0,this.treeview.toggle(r[0]))}}},textEditorButtonsMap={bold:["bold","format_bold","bold"],italic:["italic","format_italic","italic"],underline:["underline","format_underlined","underline"],strikeThrough:["strikethrough","strikethrough_s","strikeThrough"],orderedList:["list_number","format_list_numbered","insertOrderedList"],unorderedList:["list_bullet","format_list_bulleted","insertUnorderedList"],link:["link","link","createLink"],image:["photo","image","insertImage"],paragraph:["paragraph",'',"formatBlock.P"],h1:['H1','H1',"formatBlock.H1"],h2:['H2','H2',"formatBlock.H2"],h3:['H3','H3',"formatBlock.H3"],alignLeft:["text_alignleft","format_align_left","justifyLeft"],alignCenter:["text_aligncenter","format_align_center","justifyCenter"],alignRight:["text_alignright","format_align_right","justifyRight"],alignJustify:["text_justify","format_align_justify","justifyFull"],subscript:["textformat_subscript",'A1',"subscript"],superscript:["textformat_superscript",'A1',"superscript"],indent:["increase_indent","format_indent_increase","indent"],outdent:["decrease_indent","format_indent_decrease","outdent"]},TextEditor=function(e){function t(t,a){e.call(this,a,[t]);var r=this,i=Utils.extend({},t.params.textEditor);r.useModulesParams(i),r.params=Utils.extend(i,a);var n=r.params.el;if(!n)return r;var s=$(n);if(0===s.length)return r;if(s[0].f7TextEditor)return s[0].f7TextEditor;var o=s.children(".text-editor-content");if(o.length||(s.append('
                          '),o=s.children(".text-editor-content")),Utils.extend(r,{app:t,$el:s,el:s[0],$contentEl:o,contentEl:o[0]}),"value"in a&&(r.value=r.params.value),"keyboard-toolbar"===r.params.mode&&(t.device.cordova||t.device.android||(r.params.mode="popover")),"string"==typeof r.params.buttons)try{r.params.buttons=JSON.parse(r.params.buttons)}catch(e){throw new Error('Framework7: TextEditor: wrong "buttons" parameter format')}return s[0].f7TextEditor=r,r.onButtonClick=r.onButtonClick.bind(r),r.onFocus=r.onFocus.bind(r),r.onBlur=r.onBlur.bind(r),r.onInput=r.onInput.bind(r),r.onPaste=r.onPaste.bind(r),r.onSelectionChange=r.onSelectionChange.bind(r),r.closeKeyboardToolbar=r.closeKeyboardToolbar.bind(r),r.attachEvents=function(){"toolbar"===r.params.mode&&r.$el.find(".text-editor-toolbar").on("click","button",r.onButtonClick),"keyboard-toolbar"===r.params.mode&&(r.$keyboardToolbarEl.on("click","button",r.onButtonClick),r.$el.parents(".page").on("page:beforeout",r.closeKeyboardToolbar)),"popover"===r.params.mode&&r.popover&&r.popover.$el.on("click","button",r.onButtonClick),r.$contentEl.on("paste",r.onPaste),r.$contentEl.on("focus",r.onFocus),r.$contentEl.on("blur",r.onBlur),r.$contentEl.on("input",r.onInput,!0),$(doc).on("selectionchange",r.onSelectionChange)},r.detachEvents=function(){"toolbar"===r.params.mode&&r.$el.find(".text-editor-toolbar").off("click","button",r.onButtonClick),"keyboard-toolbar"===r.params.mode&&(r.$keyboardToolbarEl.off("click","button",r.onButtonClick),r.$el.parents(".page").off("page:beforeout",r.closeKeyboardToolbar)),"popover"===r.params.mode&&r.popover&&r.popover.$el.off("click","button",r.onButtonClick),r.$contentEl.off("paste",r.onPaste),r.$contentEl.off("focus",r.onFocus),r.$contentEl.off("blur",r.onBlur),r.$contentEl.off("input",r.onInput,!0),$(doc).off("selectionchange",r.onSelectionChange)},r.useModules(),r.init(),r}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.setValue=function(e){return this.value===e||(this.value=e,this.$contentEl.html(e),this.$el.trigger("texteditor:change",this.value),this.emit("local::change textEditorChange",this,this.value)),this},t.prototype.getValue=function(){return this.value},t.prototype.createLink=function(){var e,t=this,a=win.getSelection(),r=[];if(a&&a.anchorNode&&$(a.anchorNode).parents(t.$el).length){for(var i=a.anchorNode;i;)r.push(i),i.nextSibling&&i!==a.focusNode||(i=null),i&&(i=i.nextSibling);e=$(r).closest("a").add($(r).children("a"))}if(e&&e.length)return e.each((function(e,t){var a=win.getSelection(),r=doc.createRange();r.selectNodeContents(t),a.removeAllRanges(),a.addRange(r),doc.execCommand("unlink",!1),a.removeAllRanges()})),t;var n=t.getSelectionRange();return n?(t.app.dialog.prompt(t.params.linkUrlText,"",(function(e){e&&e.trim().length&&(t.setSelectionRange(n),doc.execCommand("createLink",!1,e.trim()))})).$el.find("input").focus(),t):t},t.prototype.insertImage=function(){var e=this,t=e.getSelectionRange();return t?(e.app.dialog.prompt(e.params.imageUrlText,"",(function(a){a&&a.trim().length&&(e.setSelectionRange(t),doc.execCommand("insertImage",!1,a.trim()))})).$el.find("input").focus(),e):e},t.prototype.removePlaceholder=function(){this.$contentEl.find(".text-editor-placeholder").remove()},t.prototype.insertPlaceholder=function(){this.$contentEl.append('
                          '+this.params.placeholder+"
                          ")},t.prototype.onSelectionChange=function(){if("toolbar"!==this.params.mode){var e=win.getSelection(),t=$(e.anchorNode).parents(this.contentEl).length||e.anchorNode===this.contentEl;if("keyboard-toolbar"!==this.params.mode){if("popover"===this.params.mode){var a=$(e.anchorNode).parents(this.popover.el).length||e.anchorNode===this.popover.el;if(!t&&!a)return void this.closePopover();if(!e.isCollapsed&&e.rangeCount){var r=e.getRangeAt(0).getBoundingClientRect(),i=this.app.root[0]||doc.body;this.openPopover(r.x+(win.scrollX||0)-i.offsetLeft,r.y+(win.scrollY||0)-i.offsetTop,r.width,r.height)}else e.isCollapsed&&this.closePopover()}}else t?this.openKeyboardToolbar():this.closeKeyboardToolbar()}},t.prototype.onPaste=function(e){if(this.params.clearFormattingOnPaste&&e.clipboardData&&e.clipboardData.getData){var t=e.clipboardData.getData("text/plain");e.preventDefault(),doc.execCommand("insertText",!1,t)}},t.prototype.onInput=function(){var e=this.$contentEl.html();this.$el.trigger("texteditor:input"),this.emit("local:input textEditorInput",this),this.value=e,this.$el.trigger("texteditor:change",this.value),this.emit("local::change textEditorChange",this,this.value)},t.prototype.onFocus=function(){this.removePlaceholder(),this.$contentEl.focus(),this.$el.trigger("texteditor:focus"),this.emit("local::focus textEditorFocus",this)},t.prototype.onBlur=function(){if(this.params.placeholder&&""===this.$contentEl.html()&&this.insertPlaceholder(),"popover"===this.params.mode){var e=win.getSelection(),t=$(e.anchorNode).parents(this.contentEl).length||e.anchorNode===this.contentEl;doc.activeElement&&this.popover&&$(doc.activeElement).closest(this.popover.$el).length||t||this.closePopover()}if("keyboard-toolbar"===this.params.mode){var a=win.getSelection();$(a.anchorNode).parents(this.contentEl).length||a.anchorNode===this.contentEl||this.closeKeyboardToolbar()}this.$el.trigger("texteditor:blur"),this.emit("local::blur textEditorBlur",this)},t.prototype.onButtonClick=function(e){var t=win.getSelection();if($(t.anchorNode).parents(this.contentEl).length||t.anchorNode===this.contentEl){var a=$(e.target).closest("button");a.parents("form").length&&e.preventDefault();var r=a.attr("data-button"),i=this.params.customButtons&&this.params.customButtons[r];if(r&&(textEditorButtonsMap[r]||i))if(a.trigger("texteditor:buttonclick",r),this.emit("local::buttonClick textEditorButtonClick",this,r),i)i.onClick&&i.onClick(this,a[0]);else{var n=textEditorButtonsMap[r][2];if("createLink"!==n)if("insertImage"!==n)if(0!==n.indexOf("formatBlock"))doc.execCommand(n,!1);else{var s=n.split(".")[1],o=$(t.anchorNode);o.parents(s.toLowerCase()).length||o.is(s)?doc.execCommand("formatBlock",!1,"div"):doc.execCommand("formatBlock",!1,s)}else this.insertImage();else this.createLink()}}},t.prototype.getSelectionRange=function(){if(win.getSelection){var e=win.getSelection();if(e.getRangeAt&&e.rangeCount)return e.getRangeAt(0)}else if(doc.selection&&doc.selection.createRange)return doc.selection.createRange();return null},t.prototype.setSelectionRange=function(e){if(e)if(win.getSelection){var t=win.getSelection();t.removeAllRanges(),t.addRange(e)}else doc.selection&&e.select&&e.select()},t.prototype.renderButtons=function(){var e=this,t="";function a(t){var a="md"===e.app.theme?"material-icons":"f7-icons";if(e.params.customButtons&&e.params.customButtons[t])return'";if(!textEditorButtonsMap[t])return"";var r=textEditorButtonsMap[t]["md"===e.app.theme?1:0];return('").trim()}return e.params.buttons.forEach((function(r,i){Array.isArray(r)?(r.forEach((function(e){t+=a(e)})),i')):t+=a(r)})),t},t.prototype.createToolbar=function(){this.$el.prepend('
                          '+this.renderButtons()+"
                          ")},t.prototype.createKeyboardToolbar=function(){var e=this.$el.closest(".theme-dark").length>0||"dark"===this.app.device.prefersColorScheme();this.$keyboardToolbarEl=$('
                          '+this.renderButtons()+"
                          ")},t.prototype.createPopover=function(){var e=this.$el.closest(".theme-dark").length>0;this.popover=this.app.popover.create({content:'\n
                          \n
                          '+this.renderButtons()+"
                          \n
                          \n ",closeByOutsideClick:!1,backdrop:!1})},t.prototype.openKeyboardToolbar=function(){this.$keyboardToolbarEl.parent(this.app.root).length||(this.$el.trigger("texteditor:keyboardopen"),this.emit("local::keyboardOpen textEditorKeyboardOpen",this),this.app.root.append(this.$keyboardToolbarEl))},t.prototype.closeKeyboardToolbar=function(){this.$keyboardToolbarEl.remove(),this.$el.trigger("texteditor:keyboardclose"),this.emit("local::keyboardClose textEditorKeyboardClose",this)},t.prototype.openPopover=function(e,t,a,r){var i=this;i.popover&&(Object.assign(i.popover.params,{targetX:e,targetY:t,targetWidth:a,targetHeight:r}),clearTimeout(i.popoverTimeout),i.popoverTimeout=setTimeout((function(){i.popover&&(i.popover.opened?i.popover.resize():(i.$el.trigger("texteditor:popoveropen"),i.emit("local::popoverOpen textEditorPopoverOpen",i),i.popover.open()))}),400))},t.prototype.closePopover=function(){var e=this;clearTimeout(e.popoverTimeout),e.popover&&e.popover.opened&&(e.popoverTimeout=setTimeout((function(){e.popover&&(e.$el.trigger("texteditor:popoverclose"),e.emit("local::popoverClose textEditorPopoverClose",e),e.popover.close())}),400))},t.prototype.init=function(){return this.value?this.$contentEl.html(this.value):this.value=this.$contentEl.html(),this.params.placeholder&&""===this.value&&this.insertPlaceholder(),"toolbar"===this.params.mode?this.createToolbar():"popover"===this.params.mode?this.createPopover():"keyboard-toolbar"===this.params.mode&&this.createKeyboardToolbar(),this.attachEvents(),this.$el.trigger("texteditor:init"),this.emit("local::init textEditorInit",this),this},t.prototype.destroy=function(){var e=this;e.$el.trigger("texteditor:beforedestroy"),e.emit("local::beforeDestroy textEditorBeforeDestroy",e),e.detachEvents(),"keyboard-toolbar"===e.params.mode&&e.$keyboardToolbarEl&&e.$keyboardToolbarEl.remove(),e.popover&&(e.popover.close(!1),e.popover.destroy()),delete e.$el[0].f7TextEditor,Utils.deleteProps(e),e=null},t}(Framework7Class),TextEditor$1={name:"textEditor",params:{textEditor:{el:null,mode:"toolbar",value:void 0,customButtons:null,buttons:[["bold","italic","underline","strikeThrough"],["orderedList","unorderedList"],["link","image"],["paragraph","h1","h2","h3"],["alignLeft","alignCenter","alignRight","alignJustify"],["subscript","superscript"],["indent","outdent"]],dividers:!0,imageUrlText:"Insert image URL",linkUrlText:"Insert link URL",placeholder:null,clearFormattingOnPaste:!0}},create:function(){this.textEditor=Utils.extend(ConstructorMethods({defaultSelector:".text-editor",constructor:TextEditor,app:this,domProp:"f7TextEditor"}))},static:{TextEditor:TextEditor},on:{tabMounted:function(e){var t=this;$(e).find(".text-editor-init").each((function(e,a){var r=$(a).dataset();t.textEditor.create(Utils.extend({el:a},r||{}))}))},tabBeforeRemove:function(e){$(e).find(".text-editor-init").each((function(e,t){t.f7TextEditor&&t.f7TextEditor.destroy()}))},pageInit:function(e){var t=this;e.$el.find(".text-editor-init").each((function(e,a){var r=$(a).dataset();t.textEditor.create(Utils.extend({el:a},r||{}))}))},pageBeforeRemove:function(e){e.$el.find(".text-editor-init").each((function(e,t){t.f7TextEditor&&t.f7TextEditor.destroy()}))}},vnode:{"text-editor-init":{insert:function(e){var t=e.elm,a=$(t).dataset();this.textEditor.create(Utils.extend({el:t},a||{}))},destroy:function(e){var t=e.elm;t.f7TextEditor&&t.f7TextEditor.destroy()}}}},Elevation={name:"elevation"},Typography={name:"typography"},ViAd=function(e){function t(t,a){void 0===a&&(a={}),e.call(this,a,[t]);var r,i=this;if(!win.vi)throw new Error("Framework7: vi SDK not found.");void 0!==win.orientation&&(r=-90===win.orientation||90===win.orientation?"horizontal":"vertical");var n=Utils.extend({},t.params.vi,{appId:t.id,appVer:t.version,language:t.language,width:t.width,height:t.height,os:Device.os,osVersion:Device.osVersion,orientation:r});i.useModulesParams(n),i.params=Utils.extend(n,a);var s={},o="on autoplay fallbackOverlay fallbackOverlayText enabled".split(" ");if(Object.keys(i.params).forEach((function(e){if(!(o.indexOf(e)>=0)){var t=i.params[e];[null,void 0].indexOf(t)>=0||(s[e]=t)}})),!i.params.appId)throw new Error('Framework7: "app.id" is required to display an ad. Make sure you have specified it on app initialization.');if(!i.params.placementId)throw new Error('Framework7: "placementId" is required to display an ad.');function l(){var e=$("iframe#viAd");0!==e.length&&e.css({width:t.width+"px",height:t.height+"px"})}function p(){i.$overlayEl&&(i.$overlayEl.off("click touchstart"),i.$overlayEl.remove())}i.ad=new win.vi.Ad(s),Utils.extend(i.ad,{onAdReady:function(){t.on("resize",l),i.emit("local::ready"),i.params.autoplay&&i.start()},onAdStarted:function(){i.emit("local::started")},onAdClick:function(e){i.emit("local::click",e)},onAdImpression:function(){i.emit("local::impression")},onAdStopped:function(e){t.off("resize",l),p(),i.emit("local::stopped",e),"complete"===e&&(i.emit("local::complete"),i.emit("local::completed")),"userexit"===e&&i.emit("local::userexit"),i.destroyed=!0},onAutoPlayFailed:function(e,a){i.emit("local::autoplayFailed",e,a),e&&e.name&&-1!==e.name.indexOf("NotAllowedError")&&i.params.fallbackOverlay&&function(e){var a;e&&(i.$overlayEl=$(('\n
                          \n '+(i.params.fallbackOverlayText?'
                          '+i.params.fallbackOverlayText+"
                          ":"")+'\n
                          \n
                          \n ').trim()),i.$overlayEl.on("touchstart",(function(){a=Utils.now()})),i.$overlayEl.on("click",(function(){if(!(Utils.now()-a>300)){if(e)return e.play(),void p();i.start(),p()}})),t.root.append(i.$overlayEl))}(a)},onAdError:function(e){p(),t.off("resize",l),i.emit("local::error",e),i.destroyed=!0}}),i.init(),Utils.extend(i,{app:t})}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.start=function(){this.destroyed||this.ad&&this.ad.startAd()},t.prototype.pause=function(){this.destroyed||this.ad&&this.ad.pauseAd()},t.prototype.resume=function(){this.destroyed||this.ad&&this.ad.resumeAd()},t.prototype.stop=function(){this.destroyed||this.ad&&this.ad.stopAd()},t.prototype.init=function(){this.destroyed||this.ad&&this.ad.initAd()},t.prototype.destroy=function(){this.destroyed=!0,this.emit("local::beforeDestroy"),Utils.deleteProps(this)},t}(Framework7Class),Vi={name:"vi",params:{vi:{enabled:!1,autoplay:!0,fallbackOverlay:!0,fallbackOverlayText:"Please watch this ad",showMute:!0,startMuted:(Device.ios||Device.android)&&!Device.cordova,appId:null,appVer:null,language:null,width:null,height:null,placementId:"pltd4o7ibb9rc653x14",placementType:"interstitial",videoSlot:null,showProgress:!0,showBranding:!0,os:null,osVersion:null,orientation:null,age:null,gender:null,advertiserId:null,latitude:null,longitude:null,accuracy:null,storeId:null,ip:null,manufacturer:null,model:null,connectionType:null,connectionProvider:null}},create:function(){var e=this;e.vi={sdkReady:!1,createAd:function(t){return new ViAd(e,t)},loadSdk:function(){if(!e.vi.sdkReady){var t=doc.createElement("script");t.onload=function(){e.emit("viSdkReady"),e.vi.sdkReady=!0},t.src="https://c.vi-serve.com/viadshtml/vi.min.js",$("head").append(t)}}}},on:{init:function(){(this.params.vi.enabled||this.passedParams.vi&&!1!==this.passedParams.vi.enabled)&&this.vi.loadSdk()}}};return Framework7.use([DeviceModule,SupportModule,UtilsModule,ResizeModule,RequestModule,TouchModule,ClicksModule,RouterModule,HistoryModule,ServiceWorkerModule,Statusbar$1,View$1,Navbar$1,Toolbar$1,Subnavbar,TouchRipple$1,Modal$1,Appbar,Dialog$1,Popup$1,LoginScreen$1,Popover$1,Actions$1,Sheet$1,Toast$1,Preloader$1,Progressbar$1,Sortable$1,Swipeout$1,Accordion$1,ContactsList,VirtualList$1,ListIndex$1,Timeline,Tabs,Panel$1,Card,Chip,Form,Input$1,Checkbox,Radio,Toggle$1,Range$1,Stepper$1,SmartSelect$1,Grid$1,Calendar$1,Picker$1,InfiniteScroll$1,PullToRefresh$1,Lazy$1,DataTable$1,Fab$1,Searchbar$1,Messages$1,Messagebar$1,Swiper$1,PhotoBrowser$1,Notification$1,Autocomplete$1,Tooltip$1,Gauge$1,Skeleton,Menu$1,ColorPicker$1,Treeview$1,TextEditor$1,Elevation,Typography,Vi]),Framework7})); +//# sourceMappingURL=framework7-lite.bundle.min.js.map \ No newline at end of file diff --git a/public/Framework7/5/js/framework7-lite.bundle.min.js.map b/public/Framework7/5/js/framework7-lite.bundle.min.js.map new file mode 100644 index 0000000..adfe937 --- /dev/null +++ b/public/Framework7/5/js/framework7-lite.bundle.min.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["0"],"names":["global","factory","exports","module","define","amd","self","Framework7","this","t7ctx","window","undefined","Template7Context","Template7Utils","quoteSingleRexExp","RegExp","quoteDoubleRexExp","isFunction","func","escape","string","replace","helperToSlices","shiftIndex","i","j","helperParts","trim","split","slices","length","part","blockQuoteRegExp","openingQuote","push","indexOf","match","hashParts","hashName","hashContent","hash","stringToBlocks","blocks","stringBlocks","block","type","content","contextName","helperSlices","helperName","isPartial","helperContext","helperHash","slice","Array","isArray","helperContent","elseContent","toSkip","foundClosed","foundElse","depth","inverseContent","parseJsVariable","expression","object","reduce","arr","JSON","stringify","variable","forEach","partName","constructor","Object","join","parseJsParents","parents","levelsUp","getCompileVar","name","ctx","data","parts","newDepth","dataLevel","Number","isFinite","getCompiledArguments","contextArray","test","Template7Helpers","_partial","partialName","options","p","Template7Class","partials","template","compiled","compile","keys","root","context","Error","if","call","fn","inverse","unless","each","ret","reverse","first","last","index","key","with","delimiter","delimeter","js","execute","prop","re1","re2","Template7","eval","js_if","condition","js_compare","Template7Options","Template7Partials","staticAccessors","configurable","helpers","args","len","arguments","instance","rendered","isObject","obj","extend","target","src","prototype","t","getCompileFn","getCompileInverse","resultString","compiledArguments","level","parentsString","dynamicHelper","get","defineProperties","registerHelper","unregisterHelper","registerPartial","unregisterPartial","doc","document","ssrDocument","body","addEventListener","removeEventListener","activeElement","blur","nodeName","querySelector","querySelectorAll","getElementById","createEvent","initEvent","createElement","children","childNodes","style","setAttribute","getElementsByTagName","createElementNS","importNode","location","host","hostname","href","origin","pathname","protocol","search","win","ssrWindow","navigator","userAgent","history","replaceState","pushState","go","back","CustomEvent","getComputedStyle","getPropertyValue","Image","Date","screen","setTimeout","clearTimeout","matchMedia","Dom7","$","selector","els","tempParent","html","toCreate","innerHTML","nodeType","unique","uniqueArray","toCamelCase","toLowerCase","group1","toUpperCase","requestAnimationFrame","callback","webkitRequestAnimationFrame","cancelAnimationFrame","id","webkitCancelAnimationFrame","addClass","className","classes","classList","add","removeClass","remove","hasClass","contains","toggleClass","toggle","attr","attrs","value","arguments$1","getAttribute","attrName","removeAttr","removeAttribute","props","propName","el","dom7ElementDataStorage","dataKey","removeData","dataset","attributes","parseFloat","val","i$1","multiple","selected","values","selectedOptions","transform","elStyle","webkitTransform","transition","duration","webkitTransitionDuration","transitionDuration","on","assign","eventType","targetSelector","listener","capture","handleLiveEvent","e","eventData","dom7EventData","unshift","is","apply","k","handleEvent","events","event$1","dom7LiveListeners","proxyListener","event","dom7Listeners","off","handlers","handler","dom7proxy","splice","once","dom","eventName","onceHandler","eventArgs","trigger","evt","detail","bubbles","cancelable","filter","dataIndex","dispatchEvent","transitionEnd","fireCallBack","animationEnd","width","innerWidth","css","outerWidth","includeMargins","styles","offsetWidth","height","innerHeight","outerHeight","offsetHeight","offset","box","getBoundingClientRect","clientTop","clientLeft","scrollTop","scrollY","scrollLeft","scrollX","top","left","hide","display","show","toArray","matchedItems","map","modifiedItems","text","textContent","compareWith","matches","webkitMatchesSelector","msMatchesSelector","child","previousSibling","eq","returnIndex","append","newChild","tempDiv","firstChild","appendChild","appendTo","parent","prepend","insertBefore","prependTo","before","parentNode","cloneNode","insertAfter","after","nextSibling","next","nextElementSibling","nextAll","nextEls","prev","previousElementSibling","prevAll","prevEls","siblings","closest","find","foundElements","found","removeChild","detach","toAdd","empty","Class","Methods","freeze","scrollTo","easing","currentTop","currentLeft","maxTop","maxLeft","newTop","newLeft","animateTop","animateLeft","scrollHeight","Math","max","min","scrollWidth","startTime","render","time","getTime","done","progress","easeProgress","cos","PI","Scroll","animate","initialProps","initialParams","animateInstance","a","params","elements","animating","que","easingProgress","stop","frameId","dom7AnimateInstance","complete","shift","initialFullValue","initialValue","unit","finalValue","finalFullValue","container","currentValue","elementsDone","propsDone","began","begin","element","ref","Animate","noTrigger","eventShortcut","concat","click","bind","focus","focusin","focusout","keyup","keydown","keypress","submit","change","mousedown","mousemove","mouseup","mouseenter","mouseleave","mouseout","mouseover","touchstart","touchend","touchmove","resize","scroll","eventShortcuts","group","methodName","defaultDiacriticsRemovalap","base","letters","diacriticsMap","uniqueNumber","Utils","mask","floor","random","mdPreloaderContent","iosPreloaderContent","auroraPreloaderContent","eventNameToColonCase","hasColon","char","deleteProps","nextTick","delay","nextFrame","now","removeDiacritics","str","parseUrlQuery","url","param","query","urlToParse","paramsPart","decodeURIComponent","getTranslate","axis","matrix","curTransform","transformMatrix","curStyle","WebKitCSSMatrix","MozTransform","OTransform","MsTransform","msTransform","toString","m41","m42","serializeObject","newParents","resultArray","varName","parentParts","encodeURIComponent","varValue","toPush","String","o","merge","len$1","to","from","nextSource","keysArray","nextIndex","nextKey","desc","getOwnPropertyDescriptor","enumerable","deep","colorHexToRgb","hex","h","m","r","g","b","result","exec","n","parseInt","colorRgbToHex","colorRgbToHsl","d","l","abs","colorHslToRgb","s","rgb1","c","hp","x","isNaN","round","colorHsbToHsl","HSL","HSB","colorHslToHsb","colorThemeCSSProperties","rgb","hsl","hslShade","hslTint","shade","tint","--f7-theme-color","--f7-theme-color-rgb","--f7-theme-color-shade","--f7-theme-color-tint","Support","touch","DocumentTouch","pointerEvents","PointerEvent","maxTouchPoints","observer","passiveListener","supportsPassive","opts","defineProperty","gestures","intersectionObserver","Device","platform","ua","device","ios","android","androidChrome","desktop","iphone","ipod","ipad","edge","ie","firefox","macos","windows","cordova","phonegap","electron","nwjs","screenWidth","screenHeight","nw","process","versions","os","osVersion","webView","standalone","webview","pixelRatio","devicePixelRatio","prefersColorScheme","theme","EventsClass","eventsParents","eventsListeners","priority","method","f7proxy","eventHandler","emit","local","eventsArray","localEvents","parentEvents","eventsParent","Framework7Class","__proto__","create","components","useModuleParams","instanceParams","originalParams","paramKey","useModulesParams","modules","moduleName","useModule","moduleParams","modulePropName","moduleProp","moduleEventName","vnode","vnodeHooks","vnodeId","hookName","useModules","modulesParams","set","use","installModule","proto","static","install","ConstructorMethods","parameters","defaultSelector","Constructor","domProp","app","addMethods","methods","Function","$el","destroy","ModalMethods","open","targetEl","$targetPage","modalEl","$modalEl","f7Modal","close","$parentEl","$targetEl","fetchedModules","loadModule","moduleToLoad","Promise","resolve","reject","modulePath","moduleObj","moduleFunc","matchNamePattern","lazyModulesPath","module$1","scriptLoad","resolveScript","rejectScript","request","scriptContent","callbackLoadName","scriptEl","componentLoader","xhr","status","styleLoad","resolveStyle","rtl","styleContent","styleEl","all","then","catch","err","passedParams","defaults","version","language","routes","initOnDeviceReady","init","autoDarkTheme","iosTranslucentBars","iosTranslucentModals","component","componentUrl","$rootEl","online","onLine","f7","initData","DARK","LIGHT","mq","dark","light","colorSchemeListener","media","darkTheme","prototypeAccessors","t7","Events","enableAutoDarkTheme","addListener","disableAutoDarkTheme","removeListener","initAppComponent","router","componentOptions","rootComponent","f7Component","_init","initialized","loadModules","getVnodeHooks","hook","globals","jsonpRequests","Request","requestOptions","globalsNoCallbacks","callbackName","async","cache","user","password","headers","xhrFields","statusCode","processData","dataType","contentType","timeout","fireCallback","globalCallbackValue","optionCallbackValue","stringData","paramsPrefix","abortTimeout","callbackSplit","requestUrl","addVars","script","onerror","XMLHttpRequest","requestParameters","postData","ArrayBuffer","Blob","Document","FormData","boundary","setRequestHeader","data$1","newData","Accept","headerName","crossDomain","$2","onload","responseData","parseError","parse","responseText","responseType","response","statusText","ontimeout","send","RequestShortcut","assign$1","success","error","RequestShortcutPromise","message","post","json","getJSON","postJSON","promise","setup","DeviceModule","classNames","metaStatusbar","SupportModule","support","UtilsModule","utils","ResizeModule","getSize","orientationchange","RequestModule","initTouch","touchStartX","touchStartY","targetElement","isMoved","tapHoldFired","tapHoldTimeout","preventClick","activableElement","activeTimeout","rippleWave","rippleTarget","rippleTimeout","useRipple","findActivableElement","activable","activeStateElements","preventPropagation","newActivable","isInsideScrollableView","addActive","removeActive","createRipple","y","touchRipple","removeRipple","rippleTouchStart","rippleElements","touchRippleElements","rippleParent","findRippleElement","rippleTouchMove","rippleTouchEnd","handleMouseUp","emitAppTouchEvent","appTouchStartActive","appTouchMoveActive","appTouchEndActive","appTouchStartPassive","appTouchMovePassive","appTouchEndPassive","appGestureActive","appGesturePassive","passive","passiveListenerCapture","activeListener","activeListenerCapture","touchEvents","start","move","end","isOverswipe","localPreventClick","tapHold","tapHoldPreventClicks","stopImmediatePropagation","stopPropagation","preventDefault","targetTouches","touches","tapHoldDelay","pageX","pageY","activeState","distance","touchClicksDistanceThreshold","$activableEl","which","activeStateOnMouseMove","disableContextMenu","TouchModule","mdTouchRipple","iosTouchRipple","auroraTouchRipple","lexer","tokens","count","pattern","TypeError","code","charCodeAt","_a","prefixes","defaultPattern","escapeString","path","tryConsume","mustConsume","nextType","consumeText","prefix","suffix","modifier","name_1","pattern_1","tokensToFunction","reFlags","flags","encode","_b","validate","token","optional","repeat","segment","typeOfMessage","sensitive","regexpToRegexp","groups","source","arrayToRegexp","paths","pathToRegexp","stringToRegexp","tokensToRegexp","strict","_c","_d","endsWith","route","_i","tokens_1","mod","endToken","isEndDelimited","History","queue","clearQueue","currentQueue","routerQueue","clearRouterQueue","pop","stateUrl","action","pushStateAnimate","navigate","handle","blockPopstate","state","previousState","allowChange","views","view","viewState","allowPageChange","initViewState","viewId","newState","readyState","SwipeBack","isScrolling","viewContainerWidth","touchesDiff","touchStartTime","dynamicNavbar","$pageShadowEl","$pageOpacityEl","animatableNavEls","$navbarsEl","isTouched","touchesStart","$currentPageEl","$previousPageEl","allowViewTouchMove","$currentNavbarEl","$previousNavbarEl","paramsSwipeBackAnimateShadow","paramsSwipeBackAnimateOpacity","paramsSwipeBackActiveArea","paramsSwipeBackThreshold","transformOrigin","transformOriginTitleLarge","setAnimatableNavElements","reset","reflow","_clientLeft","el$1","classNameSet","styleProp","handleTouchStart","swipeBackEnabled","swipeout","masterDetailBreakpoint","handleTouchMove","f7PreventSwipeBack","preventSwipeBack","cancel","activeNavBackIconText","previousNavBackIconText","inverter","currentNavIsTransparent","currentNavIsLarge","currentNavIsCollapsed","currentNavIsLargeTransparent","previousNavIsTransparent","previousNavIsLarge","previousNavIsCollapsed","previousNavIsLargeTransparent","fromLarge","toLarge","$currentNavElements","$previousNavElements","iosAnimateNavbarBackIcon","f7NavbarLeftOffset","navEl","$navEl","isSubnavbar","isLeft","isTitle","isBg","overflow","subIndex","subNavEl","opacity","pow","transform-origin","isSliding","transformTarget","textEl","activeNavTranslate","f7NavbarRightOffset","previousNavTranslate","animatableNavElements","sheet","f7PreventSwipePanel","preventSwipePanelBySwipeBack","percentage","callbackData","currentPageEl","previousPageEl","currentNavbarEl","previousNavbarEl","currentPageTranslate","previousPageTranslate","swipeBackActive","handleTouchEnd","$pages","timeDiff","pageChanged","setNavbarPosition","currentRoute","f7Page","currentPage","pageCallback","swipeBack","saveHistory","stackPages","initialPages","removePage","removeNavbar","previousRoute","preloadPreviousPage","preload","redirect","direction","initial","redirectUrl","redirectOptions","processQueue","routeQueue","processRouteQueue","enterNextRoute","routesBeforeEnter","beforeEnter","routesBeforeLeave","beforeLeave","appRouterCheck","asyncComponent","resolvePromise","componentPromise","default","_default","asyncComponentResult","refreshPage","ignoreCache","reloadCurrent","forward","forwardOptions","masterPageEl","otherDetailPageEl","modalType","reloadPages","reloadPrevious","reloadAll","clearPreviousHistory","reloadDetail","masterDetailEnabled","isMaster","master","currentRouteIsModal","modal","modalLoadProp","modalToClose","modalInstance","previousUrl","findMatchingRoute","modalRemove","$oldPage","$newNavbarEl","$oldNavbarEl","$viewEl","$newPage","reload","removeThemeElements","$navbarEl","keepAlive","keepAliveData","pageEl","$navbarsInView","isDetail","isDetailRoot","$pagesInView","pageInView","navbarInView","newPagePosition","position","role","detailRoot","navbar","getElByPage","navbarEl","removedPageEls","removedNavbarEls","i$2","oldNavbarEl","pageIndex","navbarIndex","pushStateRoot","pushStateSeparator","newPageInDom","$mount","componentEl","f7PageMounted","$oldPageEl","$oldNavbarElEl","tab","tabLoad","checkMasterDetailBreakpoint","setPagePosition","afterAnimation","keepOldPage","setPositionClasses","f7PageTransition","load","loadParams","loadOptions","ignorePageChange","pageName","templateUrl","parentPath","sameParams","paramName","allowDuplicateUrls","newOptions","parseRouteUrl","getPageEl","pageTemplateLoader","pageComponentLoader","abort","xhrRequest","pageContent","navigateParams","navigateOptions","createRoute","generateUrl","navigateUrl","currentPath","viewName","anotherViewName","anotherView","routerLoaded","asyncResolve","resolveParams","resolveOptions","resolvedAsModal","modalRoute","modalLoad","asyncReject","pageLoadProp","masterRoute","preloadMaster","masterLoaded","pageAfterIn","tabRoute","parentPageEl","tabEl","$parentPageEl","hasContentLoadProp","tabShowResult","$newTabEl","$oldTabEl","animated","onTabsChanged","tabParentPageData","f7RouterTabLoaded","loadTab","loadTabParams","loadTabOptions","contentEl","tabEventTarget","unloadTabContent","tabRemove","onTabLoaded","tabTemplateLoader","tabComponentLoader","tabContent","tabLoadProp","hasTabComponentChild","tabChild","$destroy","removeTabContent","foundLoadProp","isPanel","modalOrPanel","modalParams","onModalLoaded","hasEl","closeOnSwipeBack","closeByRouter","modalComponent","removeModal","loadModal","loadModalParams","loadModalOptions","modalTemplateLoader","modalComponentLoader","modalContent","backward","backwardOptions","masterPageRemoved","backIndex","currentIsMaster","force","pageToRemove","$navbarToRemove","$pageToRemove","insertPage","$previousPages","pushStateRoot$1","loadBack","backParams","backOptions","prevOpenedModals","forceOtherUrl","isBrokenPushState","needHistoryBack","currentRouteWithoutPushState","skipMaster","$previousPage","$previousMaster","expectedPreviousPageUrl","expectedPreviousPageRoute","previousPageRoute","backForceLoaded","clearPreviousPages","panel","Router","isAppRouter","navbarsEl","scrollHistory","iosDynamicNavbar","initialNavbars","tempDom","newRoute","newNavEls","oldNavEls","animateIcon","animatableNavEl","$navbarInner","isIconLabel","needsOpacityTransition","$iconEl","leftOffset","rightOffset","navEls","otherEls","otherNavEl","iconTextEl","offsetLeft","$newPageEl","animateCustom","routerCustomTransitionClass","oldIsLarge","newIsLarge","routerTransitionClass","animateNavbars","setProperty","removeEl","tabIndex","removeElements","removeElementsWithTimeout","removeElementsTimeout","findElement","stringSelector","notStacked","$container","flattenRoutes","flattenedRoutes","hasTabRoutes","tabs","mergedPathsRoutes","tRoute","mergedPathsRoutes$1","detailRoutes","detailRoute","dRoute","masterRoutePath","mergedPathsRoutes$2","childRoute","cRoute","findRouteByKey","constructRouteUrl","toUrl","findTabRoute","foundTabRoute","$tabEl","tabId","matchingRoute","matched","pathsToMatch","alias","aliasPath","pathToMatch","keyObj","paramValue","replaceRequestUrlParams","compiledUrl","regExp","removeFromXhrCache","xhrCache","hasQuery","passRouteQueryToRequest","passRouteParamsToRequest","xhrCacheIgnoreGetParameters","xhrCacheIgnore","cachedUrl","xhrCacheDuration","beforeSend","ariaHidden","toRemove","getPageData","pageFromEl","pageFrom","$pageEl","fromPage","$pageFromEl","page","restoreScrollTopOnBack","camelName","colonName","attachEvents","$pageContent","pageContentIndex","pageContentEl","f7PageInitialized","$pageContent$1","f7RouteEventsAttached","f7RouteEventsOn","f7RouteEventsOnce","localStorage","restoreHistory","clearHistory","updateCurrentUrl","newUrl","iosSwipeBack","mdSwipeBack","auroraSwipeBack","historyRestored","initUrl","documentUrl","pushStateOnLoad","pushStateAnimateOnLoad","console","warn","loadInitialPage","hasTabRoute","initOptions","routerProp","RouterModule","templates","resizableView","resizableInitialized","resizable","resizableWidth","$htmlEl","$resizeHandlerEl","minWidth","maxWidth","handleResize","transformCSSWidth","v","newV","$pageMasterEl","newWidth","View","appInstance","viewParams","routesAdd","main","f7View","viewProp","wasMasterDetail","isMasterDetail","initMasterDetail","masterDetailResizable","initClicks","$clickedEl","$clickedLinkEl","isLink","clicks","externalLinks","InAppBrowser","moduleClicks","preventF7Router","clickSelector","matchingClickedElement","clickedLinkData","current","linksView","f7RouteProps","ClicksModule","HistoryModule","SW","registrations","register","scope","serviceWorker","reg","unregister","registration","ServiceWorkerModule","Statusbar","StatusBar","onClick","setTextColor","color","styleLightContent","styleDefault","setBackgroundColor","backgroundColorByHexString","isVisible","overlaysWebView","overlays","statusbar","enabled","scrollTopOnClick","iosOverlaysWebView","iosTextColor","androidOverlaysWebView","androidTextColor","iosBackgroundColor","androidBackgroundColor","Statusbar$1","getCurrentView","$popoverView","$popupView","$panelView","$viewsEl","View$1","componentCache","iosSwipeBackAnimateShadow","iosSwipeBackAnimateOpacity","iosSwipeBackActiveArea","iosSwipeBackThreshold","mdSwipeBackAnimateShadow","mdSwipeBackAnimateOpacity","mdSwipeBackActiveArea","mdSwipeBackThreshold","auroraSwipeBackAnimateShadow","auroraSwipeBackAnimateOpacity","auroraSwipeBackActiveArea","auroraSwipeBackThreshold","iosPageLoadDelay","mdPageLoadDelay","auroraPageLoadDelay","viewEl","modalOpen panelOpen","modalBeforeDestroy panelBeforeDestroy","view-init","insert","elm","Navbar","size","$innerEl","needCenterTitle","needLeftTitle","iosCenterTitle","currLeft","diff","right","title","subnavbar","noLeft","noRight","leftWidth","rightWidth","titleWidth","navbarStyles","navbarInnerWidth","paddingLeft","paddingRight","isPrevious","sliding","requiredLeft","titleLeftOffset","titleRightOffset","activeNavbarBackLink","titleLeft","hideStatusbar","isDynamic","subEl","pageData","getPageByEl","collapseLargeTitle","expandLargeTitle","toggleLargeTitle","initNavbarOnScroll","needHide","needCollapse","needTransparent","previousScrollTop","currentScrollTop","reachEnd","navbarHidden","navbarCollapsed","navbarTitleLargeHeight","navbarOffsetHeight","scrollChanged","scrollContent","scrollTimeoutId","touchEndTimeoutId","$titleLargeEl","isLarge","navbarHideHeight","snapPageScrollToLargeTitle","snapPageScrollToTransparentNavbar","snapLargeNavbar","snapTransparentNavbar","previousCollapseProgress","collapseProgress","handleScroll","isLargeTransparent","previousCollapseWasInMiddle","handleLargeNavbarCollapse","isHidden","notTransparent","handleNavbarTransparent","showOnPageScrollEnd","showOnPageScrollTop","handeTouchStart","f7DetachNavbarScrollHandlers","Navbar$1","scrollTopOnTitleClick","mdCenterTitle","auroraCenterTitle","hideOnPageScroll","collapseLargeTitleOnScroll","panelBreakpoint panelCollapsedBreakpoint panelResize viewResize resize viewMasterDetailBreakpoint","pageBeforeRemove","pageBeforeIn","pageReinit","pageInit","needCollapseOnScrollHandler","needTransparentOnScroll","needHideOnScrollHandler","panelOpen panelSwipeOpen modalOpen","tabShow",".navbar .title","$pageContentEl","postpatch","Toolbar","setHighlight","tabbarEl","$tabbarEl","$highlightEl","tabLinksCount","highlightWidth","highlightTranslate","$activeLink","activeIndex","toolbar","initToolbarOnScroll","toolbarHidden","$toolbarEl","f7ScrollToolbarHandler","Toolbar$1","tabbar","Subnavbar","TouchRipple","ripple","center","diameter","$rippleWaveEl","rippleTransform","removing","removeTimeout","TouchRipple$1","openedModals","dialogsQueue","clearDialogsQueue","Modal","opened","onOpen","onOpened","onClose","onClosed","animateModal","pushToQueue","$backdropEl","queueDialogs","openedModal","$modalParentEl","wasInDom","moveToRoot","needToHideBackdrop","popupEl","popupInstance","closeByBackdropClick","backdrop","backdropEl","destroyed","CustomModal","extendedParams","customModal","handleClick","Modal$1","Appbar","Dialog","dialog","buttons","verticalButtons","cssClass","destroyOnClose","addKeyboardHander","dialogClasses","buttonsHTML","button","bold","dialogHtml","buttonOnClick","onKeyDown","keyCode","keyCodes","buttonEl","setProgress","progressbar","setText","newText","$textEl","setTitle","newTitle","$titleEl","Dialog$1","buttonOk","buttonCancel","usernamePlaceholder","passwordPlaceholder","preloaderTitle","progressTitle","destroyPredefinedDialogs","keyboardActions","autoFocus","defaultDialogTitle","autoFocusHandler","alert","callbackOk","prompt","callbackCancel","defaultValue","inputValue","confirm","login","username","preloader","preloaderInner","assign$2","infinite","Popup","popup","pushOffset","isPush","elIndex","node","$target","Keyboard","plugins","needToClose","closeOnEscape","pushViewScale","startTouch","currentTouch","pageContentScrollTop","pageContentOffsetHeight","pageContentScrollHeight","popupHeight","$pushEl","allowSwipeToClose","swipeToClose","swipeHandler","pushProgress","scale","hasPreviousPushPopup","removeProperty","Popup$1","parentSelector",".popup-open",".popup-close","LoginScreen","LoginScreen$1","loginScreen",".login-screen-open",".login-screen-close","Popover","popover","$angleEl","originalOpen","closeByOutsideClick","angleEl","targetX","targetY","angleLeft","angleTop","targetWidth","targetHeight","targetOffsetLeft","targetOffsetTop","ref$1","angleSize","safeAreaTop","targetOffset","targetParentPage","hPosition","ref$2","Popover$1","popoverEl","$popoverEl",".popover-open",".popover-close","Actions","actions","convertToPopover","popoverHtml","renderPopover","actionsHtml","originalClose","buttonIndex","groupIndex","$buttonEl","forceToPopover","closed","grid","buttonClasses","label","bg","disabled","icon","itemClasses","Actions$1",".actions-open",".actions-close","Sheet","isTopSheetModal","swipeStepTranslate","startTranslate","currentTranslate","sheetElOffsetHeight","minTranslate","maxTranslate","$pushViewEl","pushBorderRadius","sheetPageContentEl","sheetPageContentScrollTop","sheetPageContentScrollHeight","sheetPageContentOffsetHeight","swipeToStep","progress$1","openDirection","closeDirection","absCurrentTranslate","absSwipeStepTranslate","stepOpened","onResize","setSwipeStep","byResize","$swipeStepEl","scrollToEl","$scrollEl","newPaddingBottom","paddingTop","paddingBottom","pageHeight","pageScrollHeight","pageScroll","scrollElTop","padding-bottom","scrollToElementOnOpen","stepOpen","stepClose","stepToggle","Sheet$1","sheetInstance",".sheet-open",".sheet-close","Toast","toast","timeoutId","closeButton","closeTimeout","toastHtml","openedEl","toastInstance","horizontalPosition","closeButtonColor","closeButtonText","Toast$1","Preloader","visible","showIn","hideIn","Preloader$1","photoBrowserOpen","pb","preloaderEl","tabMounted","Progressbar","$progressbarEl","progressNormalized","$progressbarLine","removeAfterHide","Progressbar$1","progressbarEl","update","Sortable","$sortingEl","$sortingItems","$sortableContainer","sortingElHeight","minTop","$insertAfterEl","$insertBeforeEl","indexFrom","pageOffset","sortingElOffsetLocal","sortingElOffsetTop","initialScrollTop","wasTapHold","isTapHold","$listGroup","allowOpen","allow","offsetTop","translateScrollOffset","translate","scrollDiff","allowScroll","$currentEl","currentElOffset","currentElHeight","sortingElOffset","indexTo","moveElements","sortableMoveElements","sortable","f7VirtualListIndex","virtualList","f7VirtualList","moveItem","pointerEvent","enable","disable","Sortable$1",".sortable-enable",".sortable-disable",".sortable-toggle","Swipeout","$swipeoutEl","$swipeoutContent","$actionsRight","$actionsLeft","actionsLeftWidth","actionsRightWidth","openedActionsSide","$leftButtons","$rightButtons","$overswipeLeftButton","$overswipeRightButton","overswipeLeft","overswipeRight","noFollow","buttonOffset","buttonTranslate","f7SwipeoutButtonOffset","buttonTranslate$1","$buttons","$actions","actionsWidth","newTranslate","side","$swipeoutActions","swipeoutActionsWidth","onSwipeoutClose","delete","virtualIndex","deleteItem","Swipeout$1","actionsNoFold",".swipeout-open",".swipeout-close",".swipeout-delete","confirmTitle","Accordion","toggleClicked","$accordionItemEl","$accordionContent","accordion","prevented","prevent","$list","$contentEl","$openedItem","Accordion$1",".accordion-item .item-link, .accordion-item-toggle, .links-list.accordion-list > ul > li > a","ContactsList","VirtualList","defaultHeight","vl","cols","dynamicHeightBufferSize","showFilteredItemsOnly","renderExternal","setListHeight","searchByItem","searchAll","itemTemplate","ul","createUl","scrollableParentEl","renderItem","item","items","filteredItems","$scrollableParentEl","updatableScroll","$itemsWrapEl","$ul","itemsWrapEl","domCache","displayDomCache","tempDomElement","lastRepaintY","fragment","createDocumentFragment","rowsPerScreen","rowsBefore","rowsAfter","rowsToRender","maxBufferHeight","listHeight","dynamicHeight","$panelEl","$popupEl","handleScrollBound","handleResizeBound","tabElIndex","detachEvents","setListSize","heights","itemHeight","ceil","forceScrollTop","fromIndex","toIndex","topPosition","heightBeforeFirstItem","heightBeforeLastItem","itemTop","renderExternalItems","itemEl","currentFromIndex","currentToIndex","emptyTemplate","filterItems","indexes","resetScrollTop","resetFilter","scrollToItem","listTop","getClientRects","appendItems","appendItem","replaceAllItems","replaceItem","prependItems","newCache","cached","prependItem","cachedIndex","leftIndex","rightIndex","indexShift","insertItemBefore","deleteItems","prevIndex","loop","deletedItem","deleteAllItems","clearCache","deleteCache","VirtualList$1","ListIndex","$listEl","listEl","iosItemHeight","mdItemHeight","auroraItemHeight","scrollList","itemContent","itemIndex","renderSkipPlaceholder","f7ListIndex","calcSize","$clickedLi","skipRate","scrollListToIndex","topPoint","bottomPoint","$labelEl","previousIndex","$children","ulHeight","bubbleBottom","$scrollToEl","parentTop","scrollToElTop","wasSkipped","itemHtml","maxItems","calcIndexes","elContent","ListIndex$1","listIndex","listIndexEl","tabBeforeRemove","list-index-init","Timeline","Tab","tabLinkEl","animatedInit","$tabLinkEl","f7TabRoute","newTabEl","$tabsEl","tabsChangedCallbacks","tabsChanged","swiper","tabsTranslate","slideTo","tabLinkElement","$oldTabLinkEl","oldTabId","oldTabEl","Tabs","pageInit tabMounted","pageOrTabEl","animatedTabEl",".tab-link","swipePanel","swipeInitialized","swipeable","otherPanel","isGestureStarted","isInterrupted","backdropOpacity","panelWidth","effect","touchMoves","handleGestureStart","handleGestureEnd","swipe","swipeOnlyClose","otherPanelOpened","swipeActiveArea","getViewEl","preventSwipePanel","threshold","swipeThreshold","insertToRoot","noFollowProgress","swipeNoFollow","isGesture","removePanelInClass","visibility","resizablePanel","panelMinWidth","panelMaxWidth","visibleByBreakpoint","newPanelWidth","Panel","$containerEl","containerEl","f7Panel","enableVisibleBreakpoint","visibleBreakpointDisabled","setVisibleBreakpoint","disableVisibleBreakpoint","toggleVisibleBreakpoint","emitEvents","obj$1","obj$2","visibleBreakpointResizeHandler","breakpoint","visibleBreakpoint","wasVisible","allowPanelOpen","enableCollapsedBreakpoint","collapsedBreakpointDisabled","setCollapsedBreakpoint","disableCollapsedBreakpoint","toggleCollapsedBreakpoint","collapsedBreakpointResizeHandler","collapsedBreakpoint","collapsed","enableResizable","disableResizable","enableSwipe","disableSwipe","modifyHtmlClasses","$panelParentEl","otherOpenedPanel","transitionEndTarget","panelTransitionEnd","Panel$1","panelEl","panel-init",".panel-open","clickedEl",".panel-close",".panel-toggle",".panel-backdrop","CardExpandable","cardEl","$cardEl","cardParams","card","hideNavbarOnOpen","hideToolbarOnOpen","hasTransform","currTransform","$cardContentEl","$cardSizeEl","statusbarHeight","cardWidth","cardHeight","pageWidth","maxHeight","hideStatusbarOnOpen","cardLeftOffset","cardTopOffset","scaleX","scaleY","transformValues","cardRightOffset","cardScrollTop","touchEndX","touchEndY","isV","isH","$cardScrollableEl","cardBottomOffset","translateX","translateY","f7KeepNavbarOnClose","f7KeepToolbarOnClose","detachEventHandlers","onTouchStart","onTouchMove","onTouchEnd","scrollableEl","clientX","animateWidth","Card",".card-close",".card-open",".card-expandable",".card-backdrop-in","$openedCardEl","Chip","FormData$1","store","form","formId","$formEl","removeItem","FormStorage","formEl","initialData","getFormData","fillFromData","convertToData","storeFormData","formToData","skipTypes","skipNames","inputIndex","inputEl","$inputEl","tag","checked","formFromData","formData","selectEl","checkboxEl","radioEl","initAjaxForm","fromData","Form","removeFormData","storage","Input","ignoreTypes","createTextareaResizableShadow","$shadowEl","readonly","textareaResizableShadow","resizeTextarea","textareaEl","$textareaEl","styleValue","currentHeight","clientHeight","initialHeight","$itemInputEl","$inputWrapEl","setReadonly","f7ValidateReadonly","readOnly","validity","validationMessage","errorMessage","valid","$errorEl","validateInputs","input","checkEmptyState","hasAttribute","scrollIntoView","centered","$scrollableEl","contentHeight","contentScrollTop","contentPaddingTop","contentPaddingBottom","contentOffsetTop","inputOffsetTop","centeredPosition","previousValue","isContentEditable","scrollIntoViewOnFocus","scrollIntoViewDuration","scrollIntoViewCentered","scrollIntoViewAlways","Input$1","itemInputIndex","itemInputEl","textareaIndex","panelBreakpoint panelCollapsedBreakpoint panelResize panelOpen panelSwipeOpen resize viewMasterDetailBreakpoint","Checkbox","Radio","Toggle","f7Toggle","toggleWidth","touchStartChecked","changed","handleInputChange","Toggle$1","toggleEl","toggle-init","Range","range","dual","step","draggableBar","vertical","verticalReversed","formatLabel","scaleSteps","scaleSubSteps","formatScaleLabel","limitKnobPosition","f7Range","valueLeft","valueRight","$barEl","$barActiveEl","knobHTML","knobs","$knobEl","$scaleEl","labels","renderScale","rangeOffset","rangeOffsetLeft","rangeOffsetTop","$touchedKnobEl","dualValueIndex","valueChangedByTouch","targetTouchIdentifier","parentModals","parentPanel","parentPage","onTouchChange","identifier","rangeHeight","rangeWidth","newValue","setValue","leftValue","rightValue","touchEnded","changedTouches","layout","knobHeight","knobWidth","knobSize","rangeSize","positionProperty","knobIndex","startPos","realStartPos","byTouchMove","valueChanged","oldValue","newValues","valueIndex","getValue","labelEl","scaleEl","scaleStepValue","scaleValue","subStepEl","subStep","subProgress","updateScale","Range$1","rangeEl","range-slider-init","Stepper","stepper","valueEl","formatValue","watchInput","autorepeat","autorepeatDynamic","wraps","manualInputMode","decimalPoint","buttonsEndInputMode","$valueEl","f7Stepper","decimalPoint$1","$buttonPlusEl","$buttonMinusEl","buttonPlusEl","buttonMinusEl","typeModeChanged","preventButtonClick","intervalId","autorepeatAction","autorepeatInAction","manualInput","dynamicRepeat","progressions","startsIn","progressionStep","repeatEvery","clearInterval","setInterval","onMinusClick","endTypeMode","decrement","onPlusClick","increment","onInputClick","selectionStart","selectionEnd","onInputKey","onInputBlur","onInput","typeValue","sentByF7Stepper","minus","plus","forceUpdate","withWraps","formattedValue","noBlur","inputTxt","lastIndexOf","powVal","toFixed","Stepper$1","stepperEl","stepper-init","SmartSelect","ss","smartSelect","searchbarDisableButton","f7SmartSelect","$selectEl","setValueText","inputType","onChange","optionEl","displayAs","optionText","maxLength","checkMaxLength","optEl","formatValueText","closeOnSelect","inputName","selectName","attachInputsEvents","detachInputsEvents","unsetValue","optionIndex","openIn","valueArray","$optionEl","getItemsData","previousGroupEl","optionData","optionImage","optionIcon","optionIconIos","optionIconMd","optionIconAurora","optionHasMedia","optionColor","optionClassName","optionClass","optionGroupEl","optionGroupLabel","optionIsLabel","groupLabel","isLabel","groupEl","image","iconIos","iconMd","iconAurora","hasMedia","checkbox","radio","renderSearchbar","searchbarSpellcheck","iconValue","ssValue","hasIcon","iconContent","iconClass","getIconClass","renderItems","renderPage","pageTitle","$itemTitleEl","navbarColorTheme","searchbar","formColorTheme","renderPopup","popupTabletFullscreen","renderSheet","toolbarColorTheme","scrollToSelectedItem","selectedIndex","$selectedItemEl","openedIn","virtualListHeight","$searchbarEl","appendSearchbarNotFound","$notFoundEl","searchbarParams","searchContainer","searchIn","openPage","pageHtml","pageBeforeOut","pageAfterOut","openPopup","popupParams","popupPush","popupSwipeToClose","popupOpen","popupOpened","popupClose","popupClosed","routableModals","openSheet","sheetParams","sheetPush","sheetSwipeToClose","sheetOpen","sheetOpened","sheetClose","sheetClosed","openPopover","popoverParams","popoverOpen","popoverOpened","popoverClose","popoverClosed","SmartSelect$1","pageBackLinkText","popupCloseLinkText","sheetCloseLinkText","searchbarPlaceholder","searchbarDisableText","smartSelectEl",".smart-select","smart-select-init","getElMinSize","dimension","minSize","getElMaxSize","maxSize","Grid","$prevResizableEl","$nextResizableEl","prevElSize","prevElMinSize","prevElMaxSize","nextElSize","nextElMinSize","nextElMaxSize","parentSize","itemsInFlow","gapSize","isRow","sizeProp","getSizeProp","touchCurrentX","touchCurrentY","isAbsolute","resizeNextEl","prevElNewSize","nextElNewSize","gapAddSize","gapAddSizeCSS","prevElNewSizeNormalized","nextElNewSizeNormalized","Grid$1","Calendar","calendar","isHorizontal","inline","hasTimePicker","timePicker","rangePicker","dayFormatter","Intl","DateTimeFormat","locale","day","monthFormatter","month","yearFormatter","year","timeSelectorFormatter","timePickerFormat","monthNames","monthNamesShort","dayNames","dayNamesShort","getIntlNames","monthNamesIntl","monthNamesShortIntl","dayNamesIntl","dayNamesShortIntl","onInputFocus","onInputClear","onHtmlClick","isPopover","closing","attachInputEvents","inputReadOnly","detachInputEvents","attachHtmlEvents","detachHtmlEvents","attachCalendarEvents","wrapperWidth","wrapperHeight","allowItemClick","$wrapperEl","monthsTranslate","resetMonth","nextMonth","prevMonth","handleDayClick","$dayEl","dateYear","dateMonth","dateDay","valueToAdd","setHours","getHours","getMinutes","addValue","onNextMonthClick","onPrevMonthClick","onNextYearClick","nextYear","onPrevYearClick","prevYear","onMonthSelectorClick","renderMonthPicker","onMonthSelectorItemClick","diffIndex","currentMonth","setYearMonth","currentYear","onYearSelectorClick","renderYearPicker","$yearPickerEl","onYearSelectorItemClick","onTimeSelectorClick","openTimePicker","onTimePickerCloseClick","closeTimePicker","monthPicker","yearPicker","touchMove","detachCalendarEvents","yearStarted","yearEnded","formatterMonthNames","formatterMonthNamesShort","formatterDayNames","weekday","formatterDayNamesShort","date","setMonth","format","weekDay","getDay","date$1","normalizeDate","getFullYear","getMonth","getDate","normalizeValues","initInput","formatDate","month1","dateFormat","twoDigits","number","yyyy","yy","substring","mm","MM","M","dd","DD","D","hours","minutes","seconds","getSeconds","hours12","HH","H","hh",":mm",":m","A","regexp","rangePickerMinDays","rangePickerMaxDays","inValuesIndex","updateValue","sort","equal","onlyHeader","valueDate","timePickerPlaceholder","header","updateCurrentMonthYear","dir","currentLocaleMonth","currentLocaleYear","$months","currentDate","prevMonthHtml","renderMonth","currentMonthHtml","nextMonthHtml","setMonthsTranslate","monthEl","onMonthChangeStart","currentIndex","onMonthChangeEnd","rebuildBoth","prevMonthTranslate","currentMonthTranslate","nextMonthTranslate","nextDateTime","transitionEndCallback","maxDate","prevDateTime","minDate","targetDate","newMonthHTML","monthTranslate","prevTranslate","wrapperTranslate","dateInRange","dayDate","daysInMonth","renderMonths","localeMonth","localeYear","hasEvents","currentValues","today","daysInPrevMonth","minDayNumber","firstDay","monthHtml","dayIndex","firstDayOfMonthIndex","row","rowHtml","col","dayNumber","weekDayIndex","weekendDays","eventsHtml","eventDots","ev","rangesClasses","dayYear","dayMonth","dayNumberDisplay","renderWeekHeader","weekDaysHtml","renderMonthSelector","renderYearSelector","yearMin","yearPickerMin","yearMax","yearPickerMax","years","setFullYear","renderTimeSelector","timeString","renderHeader","renderFooter","renderToolbar","monthSelector","yearSelector","renderInline","footer","weekHeader","renderCustomModal","hoursArr","minutesArr","timePickerInstance","picker","rotateEffect","toolbarCloseText","divider","displayValues","opening","required","f7Calendar","scrollToInput","Calendar$1","hour","minute","headerPlaceholder","pickerColumn","colEl","updateItems","$colEl","colIndex","itemsHeight","animationFrameId","$itemsEl","replaceValues","renderColumn","colWidth","colHeight","valueCallbacks","newActiveIndex","updateValuesOnMomentum","updateDuringScroll","previousActiveIndex","selectedItem","$itemEl","itemsFit","angle","needsOriginFix","displayValue","returnTo","velocityTranslate","mousewheelTimeout","mousewheel","handleMouseWheel","updateValuesOnTouchmove","momentumRatio","freeMode","deltaX","deltaY","updateValuesOnMousewheel","Picker","resizeCols","attachResizeEvent","detachResizeEvent","forceValues","column","newDisplayValue","noDividerColumns","initColumn","destroyColumn","onlyItems","columnHtml","columnItemsHtml","colClasses","textAlign","f7Picker","Picker$1","InfiniteScroll","virtualListContainer","onTop","scrollHandler","infiniteScroll","f7InfiniteScrollHandler","InfiniteScroll$1","$isEls","PullToRefresh","ptr","$preloaderEl","bottom","touchId","isMaterial","isIos","isAurora","refresh","wasScrolled","triggerDistance","dynamicTriggerDistance","pullStarted","maxScrollTop","mousewheelMoved","useTranslate","forceUseTranslate","hasNavbar","pageNavbarEl","$pageNavbarEl","isTransparent","targetIsScrollable","$ptrWatchScrollable","ptrScrollableIndex","ptrScrollableEl","mousewheelAllow","mousewheelTranslate","handleMouseWheelRelease","f7PullToRefresh","PullToRefresh$1","$ptrEls","Lazy","f7LazyDestroy","$lazyLoadImages","placeholderSrc","lazy","placeholder","lazyEl","imagesSequence","imageIsLoading","f7LazyObserver","IntersectionObserver","entries","entry","isIntersecting","sequential","loadImage","onImageComplete","unobserve","f7LazyObserverAdded","observe","disconnect","f7LazyAttached","lazyHandler","isInViewport","rect","imageEl","$imageEl","onLoad","Lazy$1","DataTable","table","f7DataTable","collapsible","$headerEl","$headerSelectedEl","handleChange","handleSortableClick","sentByF7DataTable","columnIndex","checkedRows","totalRows","$headCheckboxEl","checkSelectedHeader","newSort","$cellEl","isActive","currentSort","setCollapsibleLabels","collpsibleTitle","checkedItems","DataTable$1","dataTable","tableEl","data-table-init","Fab","morphOpen","fabEl","$fabEl","borderRadius","zIndex","fab","f7FabMorphData","diffX","diffY","f7FabMorphResizeHandler","diffXNew","diffYNew","scaleXNew","scaleYNew","morphClose","morphData","$buttonsEl","Fab$1",".fab > a",".fab-open",".fab-close",".fab-backdrop","Searchbar","FrameworkClass","sb","inputEvents","disableButton","disableButtonEl","searchItem","searchGroup","searchGroupTitle","ignore","foundEl","notFoundEl","hideOnEnableEl","hideOnSearchEl","customSearch","hideDividers","hideGroups","disableOnBackdropClick","expandable","f7Searchbar","$foundEl","$hideOnEnableEl","$hideOnSearchEl","$searchContainer","$disableButtonEl","preventSubmit","onInputChange","isVirtualList","disableOnClick","onPageBeforeOut","onPageBeforeIn","disableButtonHasMargin","previousQuery","clear","setDisableButtonMargin","setFocus","backdropShow","needsFocus","titleLargeHeight","backdropHide","internal","vlQuery","foundItems","compareWithText","$searchIn","searchInIndex","searchInEl","itemText","wordsMatch","titleIndex","titleEl","$nextElements","$nextEl","$groupEl","Searchbar$1","searchbarEl",".searchbar-clear",".searchbar-enable",".searchbar-disable",".searchbar-toggle","searchbar-init","Messages","autoLayout","messages","newMessagesFirst","scrollMessages","scrollMessagesOnEdge","firstMessageRule","lastMessageRule","tailMessageRule","sameNameMessageRule","sameHeaderMessageRule","sameFooterMessageRule","sameAvatarMessageRule","customClassMessageRule","renderMessage","f7Messages","getMessageData","messageEl","$messageEl","textHeader","textFooter","imageSrc","typing","avatar","getMessagesData","messageToRender","isTyping","renderMessages","messagesToRender","isFirstMessage","isLastMessage","isTailMessage","isSameNameMessage","isSameHeaderMessage","isSameFooterMessage","isSameAvatarMessage","isCustomClassMessage","previousMessage","nextMessage","customMessageClasses","customClass","removeMessage","messageToRemove","removeMessages","messagesToRemove","messagesToRemoveEls","messageToRemoveIndex","addMessage","messageToAdd","addMessages","messagesToAdd","scrollHeightBefore","heightBefore","scrollBefore","messagesHTML","typingMessage","$messagesEls","onEdge","showTyping","hideTyping","typingMessageIndex","typingFound","$typingMessageEl","newScrollTop","currentScroll","Messages$1","messagesEl","messages-init","Messagebar","messagebar","topOffset","bottomOffset","attachments","renderAttachments","renderAttachment","resizePage","f7Messagebar","$areaEl","$attachmentsEl","$sheetEl","onAppResize","onSubmit","onAttachmentClick","onTextareaChange","onTextareaFocus","sheetHide","onTextareaBlur","areaEl","attachmentsEl","attachmentsVisible","sheetEl","sheetVisible","setPlaceholder","elHeight","currentPaddingBottom","requiredPaddingBottom","currentPaddingTop","pageOffsetHeight","scrollOnBottom","attachmentsCreate","attachmentsShow","attachmentsHide","attachmentsToggle","attachment","sheetCreate","sheetShow","sheetToggle","Messagebar$1","messagebarEl","messagebar-init","updateSize","clientWidth","isVertical","updateSlides","swiperSize","rtlTranslate","wrongRTL","isVirtual","virtual","previousSlidesLength","slides","slidesLength","snapGrid","slidesGrid","slidesSizesGrid","slidesForMargin","slideIndex","cssMode","offsetBefore","slidesOffsetBefore","offsetAfter","slidesOffsetAfter","previousSnapGridLength","previousSlidesGridLength","spaceBetween","slidePosition","prevSlideSize","slidesNumberEvenToRows","slideSize","virtualSize","marginLeft","marginTop","marginRight","marginBottom","slidesPerColumn","slidesPerView","slidesPerColumnFill","newSlidesGrid","slidesPerRow","numFullColumns","slide","newSlideOrderIndex","slidesPerGroup","slideIndexInGroup","columnsInGroup","-webkit-box-ordinal-group","-moz-box-ordinal-group","-ms-flex-order","-webkit-order","order","slideStyles","currentTransform","currentWebKitTransform","roundLengths","boxSizing","boxSizing$1","swiperSlideSize","centeredSlides","slidesPerGroupSkip","setWrapperSize","slidesGridItem","slidesGridItem$1","centeredSlidesBounds","allSlidesSize","slideSizeValue","maxSnap","snap","centerInsufficientSlides","allSlidesSize$1","allSlidesOffset","snapIndex","watchOverflow","checkOverflow","watchSlidesProgress","watchSlidesVisibility","updateSlidesOffset","updateAutoHeight","speed","activeSlides","newHeight","setTransition","visibleSlides","swiperSlideOffset","updateSlidesProgress","offsetCenter","slideVisibleClass","visibleSlidesIndexes","slideProgress","autoHeight","slideBefore","slideAfter","updateProgress","multiplier","translatesDiff","isBeginning","isEnd","wasBeginning","wasEnd","updateSlidesClasses","activeSlide","realIndex","slideActiveClass","slideDuplicateClass","slideDuplicateActiveClass","nextSlide","slideNextClass","prevSlide","slidePrevClass","slideDuplicateNextClass","slideDuplicatePrevClass","updateActiveIndex","previousRealIndex","previousSnapIndex","normalizeSlideIndex","skip","runCallbacksOnInit","updateClickedSlide","slideFound","clickedSlide","clickedIndex","slideToClickedSlide","virtualTranslate","setTranslate","byController","wrapperEl","previousTranslate","translateTo","runCallbacks","translateBounds","preventInteractionOnTransition","behavior","onTranslateToWrapperTransitionEnd","transitionStart","transitionEnd$1","transition$1","initialSlide","allowSlideNext","allowSlidePrev","onSlideToWrapperTransitionEnd","slideToLoop","newIndex","loopedSlides","slideNext","loopFix","slidePrev","normalize","normalizedTranslate","normalizedSnapGrid","prevSnap","slideReset","slideToClosest","currentSnap","slidesPerViewDynamic","slideToIndex","loopCreate","loopFillGroupWithBlank","blankSlidesNum","blankNode","loopAdditionalSlides","prependSlides","appendSlides","loopDestroy","setGrabCursor","moving","simulateTouch","isLocked","cursor","unsetGrabCursor","grabCursor","appendSlide","prependSlide","addSlide","activeIndexBuffer","baseLength","slidesBuffer","currentSlide","removeSlide","slidesIndexes","indexToRemove","removeAllSlides","manipulation","touchEventsData","originalEvent","touchEventsTarget","isTouchEvent","noSwiping","noSwipingSelector","allowClick","currentX","currentY","startX","startY","edgeSwipeDetection","iOSEdgeSwipeDetection","edgeSwipeThreshold","iOSEdgeSwipeThreshold","allowTouchCallbacks","startMoving","swipeDirection","allowThresholdMove","formElements","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","targetTouch","preventedByNestedSwiper","touchReleaseOnEdges","sqrt","touchAngle","atan2","touchMoveStopPropagation","nested","allowMomentumBounce","touchRatio","disableParentSwiper","resistanceRatio","resistance","followFinger","velocities","currentPos","touchEndTime","lastClickTime","freeModeMomentum","lastMoveEvent","velocityEvent","velocity","freeModeMinimumVelocity","freeModeMomentumVelocityRatio","momentumDuration","freeModeMomentumRatio","momentumDistance","newPosition","afterBouncePosition","needsLoopFix","doBounce","bounceAmount","freeModeMomentumBounceRatio","freeModeMomentumBounce","freeModeSticky","moveDistance","currentSlideSize","longSwipesMs","stopIndex","groupSize","increment$1","ratio","longSwipes","longSwipesRatio","shortSwipes","navigation","nextEl","prevEl","breakpoints","setBreakpoint","autoplay","running","paused","run","preventClicks","preventClicksPropagation","onScroll","dummyEventAttached","dummyEventListener","passiveListeners","updateOnWindowResize","getBreakpoint","currentBreakpoint","breakpointOnlyParams","breakpointParams","wasMultiRow","isMultiRow","directionChanged","needsReLoop","changeDirection","points","point","minRatio","substr","addClasses","suffixes","containerModifierClass","removeClasses","srcset","sizes","checkForComplete","onReady","preloadImages","imagesLoaded","imagesToLoad","updateOnImagesReady","currentSrc","images","wasLocked","lastSlidePosition","checkOverflow$1","uniqueNavElements","noSwipingClass","slideClass","slideBlankClass","wrapperClass","prototypes","extendedDefaults","Swiper","SwiperClass","prototypeGroup","protoMethod","moduleParamName","swiperParams","swipers","newParams","shadowRoot","touchEventsTouch","touchEventsDesktop","clickTimeout","spv","breakLoop","translateValue","newDirection","needUpdate","currentDirection","slideEl","deleteInstance","cleanStyles","extendDefaults","newDefaults","Device$1","Support$1","Browser","isEdge","isSafari","isUiWebView","Browser$1","browser","Resize","resizeHandler","orientationChangeHandler","Observer","MutationObserver","WebkitMutationObserver","attach","ObserverFunc","mutations","observerUpdate","childList","characterData","observers","observeParents","containerParents","observeSlideChildren","Observer$1","Virtual","addSlidesBefore","addSlidesAfter","previousFrom","previousTo","previousSlidesGrid","renderSlide","previousOffset","offsetProp","slidesAfter","slidesBefore","onRendered","slidesToRender","prependIndexes","appendIndexes","$slideEl","numberOfNewSlides","$cachedEl","cachedElIndex","Virtual$1","beforeInit","overwriteParams","kc","charCode","shiftKey","altKey","ctrlKey","metaKey","keyboard","onlyInViewport","inView","windowWidth","windowHeight","swiperOffset","swiperCoord","returnValue","Keyboard$1","isEventSupported","isSupported","implementation","hasFeature","Mousewheel","lastScrollTime","lastEventBeforeSnap","recentWheelEvents","sX","sY","pX","pY","wheelDelta","wheelDeltaY","wheelDeltaX","HORIZONTAL_AXIS","deltaMode","spinX","spinY","pixelX","pixelY","handleMouseEnter","mouseEntered","handleMouseLeave","eventsTarged","releaseOnEdges","delta","rtlFactor","forceToAxis","invert","newEvent$1","sign","ignoreWheelEvents","sensitivity","recentWheelEvents$1","prevEvent$1","firstEvent","snapToThreshold","autoplayDisableOnInteraction","newEvent","raw","prevEvent","animateSlider","releaseScroll","Mousewheel$1","Navigation","$prevEl","disabledClass","lockClass","onPrevClick","onNextClick","Navigation$1","hideOnClick","hiddenClass","toEdge","fromEdge","Pagination","pagination","total","paginationType","bullets","firstIndex","lastIndex","midIndex","dynamicBullets","bulletSize","dynamicMainBullets","dynamicBulletIndex","bullet","$bullet","bulletIndex","bulletActiveClass","$firstDisplayedBullet","$lastDisplayedBullet","dynamicBulletsLength","bulletsOffset","formatFractionCurrent","formatFractionTotal","progressbarDirection","progressbarOpposite","renderCustom","paginationHTML","numberOfBullets","renderBullet","bulletClass","renderFraction","currentClass","totalClass","renderProgressbar","progressbarFillClass","clickable","clickableClass","modifierClass","progressbarOppositeClass","Pagination$1","bulletElement","activeIndexChange","snapIndexChange","slidesLengthChange","snapGridLengthChange","Scrollbar","scrollbar","dragSize","trackSize","$dragEl","newSize","newPos","moveDivider","getPointerPosition","clientY","setDragPosition","positionRatio","dragStartPos","onDragStart","dragTimeout","onDragMove","onDragEnd","snapOnRelease","enableDraggable","disableDraggable","$swiperEl","dragEl","draggable","Scrollbar$1","dragClass","Parallax","setTransform","currentOpacity","currentScale","parallax","parallaxEl","$parallaxEl","parallaxDuration","Parallax$1","Zoom","getDistanceBetweenTouches","x1","y1","x2","y2","onGestureStart","zoom","gesture","fakeGestureTouched","fakeGestureMoved","scaleStart","$imageWrapEl","maxRatio","isScaling","onGestureChange","scaleMove","onGestureEnd","slideWidth","slideHeight","scaledWidth","scaledHeight","minX","maxX","minY","maxY","touchesCurrent","prevPositionX","prevPositionY","prevTime","momentumDurationX","momentumDurationY","momentumDistanceX","newPositionX","momentumDistanceY","newPositionY","onTransitionEnd","out","in","touchX","touchY","imageWidth","imageHeight","translateMinX","translateMinY","translateMaxX","translateMaxY","activeListenerWithCapture","slideSelector","Zoom$1","containerClass","zoomedSlideClass","touchStart","touchEnd","doubleTap","slideChange","Lazy$2","loadInSlide","loadInDuplicate","$images","elementClass","loadedClass","loadingClass","imageIndex","background","$pictureEl","sourceIndex","sourceEl","$source","slideOriginalIndex","originalSlide","duplicatedSlide","slideExist","initialImageLoaded","loadPrevNext","loadPrevNextAmount","amount","maxIndex","minIndex","Lazy$3","loadOnTransitionStart","preloaderClass","scrollbarDragMove","Controller","LinearSpline","guess","i1","i3","binarySearch","array","interpolate","getInterpolateFunction","controller","spline","setTranslate$1","controlledTranslate","controlled","control","setControlledTranslate","by","setControlledTransition","Controller$1","History$1","hashNavigation","getPathValues","scrollToSlide","setHistoryPopState","pathArray","setHistory","slugify","includes","currentState","History$2","HashNavigation","onHashCange","newHash","setHash","watchState","HashNavigation$1","a11y","makeElFocusable","makeElNotFocusable","addElRole","addElLabel","disableEl","enableEl","onEnterKey","notify","lastSlideMessage","nextSlideMessage","firstSlideMessage","prevSlideMessage","notification","liveRegion","updateNavigation","updatePagination","bulletEl","$bulletEl","paginationBulletMessage","A11y","notificationClass","paginationUpdate","Autoplay","$activeSlideEl","reverseDirection","stopOnLastSlide","pause","waitForTransition","Autoplay$1","disableOnInteraction","onVisibilityChange","visibilityState","beforeTransitionStart","sliderFirstMove","Fade","tx","ty","slideOpacity","fadeEffect","crossFade","eventTriggered","triggerEvents","EffectFade","Cube","$cubeShadowEl","swiperWidth","swiperHeight","cubeEffect","wrapperRotate","shadow","slideAngle","tz","slideShadows","shadowBefore","shadowAfter","-webkit-transform-origin","-moz-transform-origin","-ms-transform-origin","shadowOffset","shadowAngle","sin","scale1","shadowScale","scale2","zFactor","EffectCube","Flip","flipEffect","limitRotation","rotateY","rotateX","EffectFlip","Coverflow","coverflowEffect","rotate","offsetMultiplier","translateZ","stretch","slideTransform","$shadowBeforeEl","$shadowAfterEl","prefixedPointerEvents","perspectiveOrigin","EffectCoverflow","Thumbs","thumbsParams","thumbs","swiperCreated","thumbsContainerClass","onThumbClick","thumbsSwiper","slideThumbActiveClass","autoScrollOffset","useOffset","newThumbsIndex","currentThumbsIndex","prevThumbsIndex","nextThumbsIndex","thumbsToActivate","thumbActiveClass","multipleActiveThumbs","Thumbs$1","beforeDestroy","initSwiper","swiperEl","isTabs","isRoutableTabs","f7SwiperParams","updateSwiper","Swiper$1","pageMounted","swiper-init","tabs-swipeable-wrap","PhotoBrowser","photoBrowser","exposed","started","timeStart","onSlideChange","virtualSlides","photos","$previousSlideEl","$totalEl","captions","captionIndex","$captionsContainerEl","previousSlideVideo","renderNavbar","iconsColor","renderNavbarCount","navbarShowCount","isPopup","renderCaption","caption","renderObject","photo","renderLazyPhoto","renderPhoto","captionsTheme","renderStandalone","f7PhotoBrowser","$swiperContainerEl","$swiperWrapperEl","exposition","expositionToggle","doubleClick","slideChangeTransitionStart","slideChangeTransitionEnd","lazyImageLoad","lazyImageReady","touchMoveOpposite","openStandalone","expositionEnable","expositionHideCaptions","expositionDisable","PhotoBrowser$1","navbarOfText","Notification","notificationHeight","titleRightText","subtitle","closeOnClick","notificationHtml","notificationInstance","closeOnTimeout","Notification$1","Autocomplete","ac","$openerEl","autocomplete","openerEl","f7Autocomplete","$dropdownEl","firstValue","firstItem","itemsHTML","limit","highlightMatches","itemValue","valueProperty","textProperty","dropdownPlaceholderText","typeahead","setSelectionRange","onPageInputChange","aValue","updateValues","onOpenerClick","positionDropdown","$selectedItemLabel","$newItem","$selectedItem","onDropdownClick","clickedItem","updateInputValueOnSelect","attachDropdownEvents","detachDropdownEvents","attachPageEvents","detachPageEvents","$listParent","inputOffset","inputOffsetWidth","inputOffsetHeight","parentEl","paddingValue","listOffset","listOffsetLeft","inputOffsetLeft","paddingProp","expandInput","valuesHTML","preloaderHide","preloaderShow","renderPreloader","preloaderColor","inPopup","navbarLeft","navbarRight","renderDropdown","requestSourceOnOpen","openDropdown","dropdownContainerEl","Autocomplete$1","notFoundText","autocompleteEl","Tooltip","tooltip","f7Tooltip","handleClickOut","handleTransitionEnd","tooltipOffset","clientRect","aroundEl","$aroundEl","Tooltip$1","tooltip-init","Gauge","gauge","f7Gauge","calcRadius","borderWidth","calcBorderLength","radius","bgColor","borderBgColor","borderColor","valueText","valueTextColor","valueFontSize","valueFontWeight","labelText","labelTextColor","labelFontSize","labelFontWeight","semiCircle","$gaugeSvgEl","svgAttrs","viewBox","backAttrs","stroke","stroke-width","fill","frontAttrs","stroke-dasharray","stroke-dashoffset","backAttrs$1","cx","cy","frontAttrs$1","textAttrs","font-weight","font-size","dy","text-anchor","dominant-baseline","textEl$1","labelAttrs","gaugeSvgEl","Gauge$1","gauge-init","Skeleton","Menu","$menuEl","originalZIndex","f7MenuZIndex","Menu$1","menu","openedMenus",".menu-item-dropdown",".menu-close","moduleAlphaSlider","sliderLabel","sliderValue","sliderValueEditable","alphaLabelText","alpha","alphaRangeSlider","destroyAlphaSliderEvents","moduleCurrentColor","moduleHex","hexLabel","hexLabelText","hexValueEditable","destroyHexEvents","moduleHsbSliders","hueLabelText","saturationLabelText","brightnessLabelText","hsb","hueRangeSlider","hue","saturationRangeSlider","brightnessRangeSlider","destroyHsbSlidersEvents","hslCurrent","hslLeft","hslRight","brightness","moduleHueSlider","moduleBrightnessSlider","modulePalette","palette","handlePaletteClick","destroyPaletteEvents","moduleInitialCurrentColors","handleInitialColorClick","destroyInitialCurrentEvents","moduleRgbBars","barLabel","barValue","barValueEditable","redLabelText","greenLabelText","blueLabelText","redBar","greenBar","blueBar","destroyRgbBarsEvents","moduleRgbSliders","redRangeSlider","greenRangeSlider","blueRangeSlider","destroyRgbSlidersEvents","moduleSbSpectrum","specterRect","specterIsTouched","specterHandleIsTouched","setSBFromSpecterCoords","destroySpectrumEvents","specterWidth","specterHeight","moduleHsSpectrum","setHSFromSpecterCoords","hslBright","svgWheelCircles","circles","moduleWheel","wheelRect","wheelIsTouched","wheelHandleIsTouched","setHueFromWheelCoords","wheelCenterX","wheelCenterY","angleDeg","wheel","destroyWheelEvents","wheelSize","wheelHalfSize","angleRad","handleHalfSize","tX","tY","ColorPicker","colorPicker","onTargetClick","$clickTargetEl","alpha-slider","current-color","hsb-sliders","hue-slider","brightness-slider","initial-current-colors","rgb-bars","rgb-sliders","sb-spectrum","hs-spectrum","attachTargetEvents","detachTargetEvents","centerModules","getModalType","openInPhone","normalizeHsValues","updateModules","rgba","hsla","needChangeEvent","subV","a$1","ref$3","h$1","s$1","b$1","a$2","s$2","l$1","fireEvents","targetElSetBackgroundColor","renderPicker","navbarTitleText","navbarBackLinkText","navbarCloseText","groupedModules","toolbarSheet","toolbarPopover","navbarPopup","f7ColorPicker","colorPickerContent","ColorPicker$1","sliderValueEdiable","barValueEdiable","Treeview","f7TreeviewChildrenLoaded","wasOpened","treeview","Treeview$1",".treeview-toggle","clickedData","$treeviewItemEl",".treeview-item-toggle","textEditorButtonsMap","italic","underline","strikeThrough","orderedList","unorderedList","link","paragraph","h1","h2","h3","alignLeft","alignCenter","alignRight","alignJustify","subscript","superscript","indent","outdent","TextEditor","textEditor","f7TextEditor","mode","onButtonClick","onFocus","onBlur","onPaste","onSelectionChange","closeKeyboardToolbar","$keyboardToolbarEl","createLink","$selectedLinks","currentSelection","getSelection","selectedNodes","anchorNode","focusNode","linkIndex","linkNode","selection","createRange","selectNodeContents","removeAllRanges","addRange","execCommand","currentRange","getSelectionRange","linkUrlText","insertImage","imageUrlText","imageUrl","removePlaceholder","insertPlaceholder","selectionIsInContent","selectionIsInPopover","closePopover","isCollapsed","rangeCount","getRangeAt","rootEl","openKeyboardToolbar","clearFormattingOnPaste","clipboardData","getData","selection$1","buttonData","customButtons","command","tagName","$anchorNode","sel","select","renderButtons","renderButton","dividers","createToolbar","createKeyboardToolbar","isDark","createPopover","popoverTimeout","TextEditor$1","editorEl","text-editor-init","Elevation","Typography","ViAd","orientation","vi","appId","appVer","adParams","skipParams","placementId","$viFrame","removeOverlay","$overlayEl","ad","Ad","onAdReady","onAdStarted","onAdClick","targetUrl","onAdImpression","onAdStopped","reason","onAutoPlayFailed","videoEl","fallbackOverlay","fallbackOverlayText","play","createOverlay","onAdError","msg","startAd","pauseAd","resume","resumeAd","stopAd","initAd","Vi","showMute","startMuted","placementType","videoSlot","showProgress","showBranding","age","gender","advertiserId","latitude","longitude","accuracy","storeId","ip","manufacturer","model","connectionType","connectionProvider","sdkReady","createAd","loadSdk"],"mappings":";;;;;;;;;;;;CAYC,SAAUA,EAAQC,GACE,iBAAZC,SAA0C,oBAAXC,OAAyBA,OAAOD,QAAUD,IAC9D,mBAAXG,QAAyBA,OAAOC,IAAMD,OAAOH,IACnDD,EAASA,GAAUM,MAAaC,WAAaN,IAHhD,CAIEO,MAAM,WAAe,aAiBrB,IAAIC,MAEFA,MADoB,oBAAXC,OACDA,OACmB,oBAAXV,OACRA,YAEAW,EAGV,IAAIC,iBAAmBH,MAEnBI,eAAiB,CACnBC,kBAAmB,IAAIC,OAAO,IAAM,KACpCC,kBAAmB,IAAID,OAAO,IAAK,KACnCE,WAAY,SAAoBC,GAC9B,MAAuB,mBAATA,GAEhBC,OAAQ,SAAgBC,GAGtB,YAFgB,IAAXA,IAAoBA,EAAS,IAE3BA,EACJC,QAAQ,KAAM,SACdA,QAAQ,KAAM,QACdA,QAAQ,KAAM,QACdA,QAAQ,KAAM,UACdA,QAAQ,KAAM,WAEnBC,eAAgB,SAAwBF,GACtC,IAIIG,EACAC,EACAC,EANAT,EAAoBH,eAAeG,kBACnCF,EAAoBD,eAAeC,kBACnCY,EAAcN,EAAOC,QAAQ,UAAW,IAAIM,OAAOC,MAAM,KACzDC,EAAS,GAIb,IAAKL,EAAI,EAAGA,EAAIE,EAAYI,OAAQN,GAAK,EAAG,CAC1C,IAAIO,EAAOL,EAAYF,GACnBQ,OAAmB,EACnBC,OAAe,EACnB,GAAU,IAANT,EAAWK,EAAOK,KAAKH,QACtB,GAA0B,IAAtBA,EAAKI,QAAQ,MAAqC,IAAvBJ,EAAKI,QAAQ,KAI/C,GAHAH,EAAyC,IAAtBD,EAAKI,QAAQ,KAAanB,EAAoBF,EACjEmB,EAAqC,IAAtBF,EAAKI,QAAQ,KAAa,IAAM,IAEH,IAAxCJ,EAAKK,MAAMJ,GAAkBF,OAE/BD,EAAOK,KAAKH,OACP,CAGL,IADAR,EAAa,EACRE,EAAID,EAAI,EAAGC,EAAIC,EAAYI,OAAQL,GAAK,EAE3C,GADAM,GAAQ,IAAOL,EAAYD,GACvBC,EAAYD,GAAGU,QAAQF,IAAiB,EAAG,CAC7CV,EAAaE,EACbI,EAAOK,KAAKH,GACZ,MAGAR,IAAcC,EAAID,QAEnB,GAAIQ,EAAKI,QAAQ,KAAO,EAAG,CAEhC,IAAIE,EAAYN,EAAKH,MAAM,KACvBU,EAAWD,EAAU,GACrBE,EAAcF,EAAU,GAK5B,GAJKL,IACHA,EAAgD,IAA7BO,EAAYJ,QAAQ,KAAanB,EAAoBF,EACxEmB,EAA4C,IAA7BM,EAAYJ,QAAQ,KAAa,IAAM,KAEL,IAA/CI,EAAYH,MAAMJ,GAAkBF,OAAc,CAEpD,IADAP,EAAa,EACRE,EAAID,EAAI,EAAGC,EAAIC,EAAYI,OAAQL,GAAK,EAE3C,GADAc,GAAe,IAAOb,EAAYD,GAC9BC,EAAYD,GAAGU,QAAQF,IAAiB,EAAG,CAC7CV,EAAaE,EACb,MAGAF,IAAcC,EAAID,GAExB,IAAIiB,EAAO,CAACF,EAAUC,EAAYlB,QAAQW,EAAkB,KAC5DH,EAAOK,KAAKM,QAGZX,EAAOK,KAAKH,GAGhB,OAAOF,GAETY,eAAgB,SAAwBrB,GACtC,IACII,EACAC,EAFAiB,EAAS,GAGb,IAAKtB,EAAU,MAAO,GACtB,IAAIuB,EAAevB,EAAOQ,MAAM,iBAChC,IAAKJ,EAAI,EAAGA,EAAImB,EAAab,OAAQN,GAAK,EAAG,CAC3C,IAAIoB,EAAQD,EAAanB,GACzB,GAAc,KAAVoB,EACJ,GAAIA,EAAMT,QAAQ,MAAQ,EACxBO,EAAOR,KAAK,CACVW,KAAM,QACNC,QAASF,QAEN,CACL,GAAIA,EAAMT,QAAQ,OAAS,EACzB,SAKF,IAHAS,EAAQA,EACLvB,QAAQ,kBAAmB,QAC3BA,QAAQ,WAAY,OACbc,QAAQ,MAAQ,GAAKS,EAAMT,QAAQ,KAAO,GAAKS,EAAMT,QAAQ,QAAU,EAAG,CAElFO,EAAOR,KAAK,CACVW,KAAM,WACNE,YAAaH,EAAMvB,QAAQ,QAAS,MAEtC,SAGF,IAAI2B,EAAenC,eAAeS,eAAesB,GAC7CK,EAAaD,EAAa,GAC1BE,EAA2B,MAAfD,EACZE,EAAgB,GAChBC,EAAa,GACjB,IAAK3B,EAAI,EAAGA,EAAIuB,EAAalB,OAAQL,GAAK,EAAG,CAC3C,IAAI4B,EAAQL,EAAavB,GACrB6B,MAAMC,QAAQF,GAEhBD,EAAWC,EAAM,IAAmB,UAAbA,EAAM,IAAyBA,EAAM,GAE5DF,EAAcjB,KAAKmB,GAIvB,GAAIT,EAAMT,QAAQ,OAAS,EAAG,CAE5B,IAAIqB,EAAgB,GAChBC,EAAc,GACdC,EAAS,EACTnC,OAAa,EACboC,GAAc,EACdC,GAAY,EACZC,EAAQ,EACZ,IAAKpC,EAAID,EAAI,EAAGC,EAAIkB,EAAab,OAAQL,GAAK,EAO5C,GANIkB,EAAalB,GAAGU,QAAQ,QAAU,IACpC0B,GAAS,GAEPlB,EAAalB,GAAGU,QAAQ,QAAU,IACpC0B,GAAS,GAEPlB,EAAalB,GAAGU,QAAS,MAAQc,IAAgB,EACnDO,GAAiBb,EAAalB,GAC1BmC,IAAaH,GAAed,EAAalB,IAC7CiC,GAAU,OACL,GAAIf,EAAalB,GAAGU,QAAS,MAAQc,IAAgB,EAAG,CAC7D,KAAIS,EAAS,GAIN,CACLnC,EAAaE,EACbkC,GAAc,EACd,MANAD,GAAU,EACVF,GAAiBb,EAAalB,GAC1BmC,IAAaH,GAAed,EAAalB,SAMtCkB,EAAalB,GAAGU,QAAQ,SAAW,GAAe,IAAV0B,EACjDD,GAAY,GAEPA,IAAaJ,GAAiBb,EAAalB,IAC5CmC,IAAaH,GAAed,EAAalB,KAG7CkC,IACEpC,IAAcC,EAAID,GACH,QAAf0B,EACFP,EAAOR,KAAK,CACVW,KAAM,QACNC,QAASU,IAGXd,EAAOR,KAAK,CACVW,KAAM,SACNI,WAAYA,EACZF,YAAaI,EACbL,QAASU,EACTM,eAAgBL,EAChBjB,KAAMY,UAIHR,EAAMT,QAAQ,KAAO,IAC1Be,IACFD,EAAa,WACTE,EAAc,KACsB,IAAlCA,EAAc,GAAGhB,QAAQ,KAAcgB,EAAc,GAAKA,EAAc,GAAG9B,QAAQ,SAAU,IAC1F8B,EAAc,GAAK,IAAQA,EAAc,GAAG9B,QAAQ,OAAQ,IAAO,MAG9EqB,EAAOR,KAAK,CACVW,KAAM,SACNI,WAAYA,EACZF,YAAaI,EACbX,KAAMY,MAKd,OAAOV,GAETqB,gBAAiB,SAAyBC,EAAY3C,EAAS4C,GAC7D,OAAOD,EAAWpC,MAAM,2BAA2BsC,QAAO,SAAUC,EAAKpC,GACvE,IAAKA,EACH,OAAOoC,EAET,GAAIpC,EAAKI,QAAQd,GAAW,EAE1B,OADA8C,EAAIjC,KAAKH,GACFoC,EAET,IAAKF,EAEH,OADAE,EAAIjC,KAAKkC,KAAKC,UAAU,KACjBF,EAGT,IAAIG,EAAWL,EAiBf,OAhBIlC,EAAKI,QAASd,EAAU,MAAS,GACnCU,EAAKH,MAAOP,EAAU,KAAM,GAAGO,MAAM,KAAK2C,SAAQ,SAAUC,GAC9BF,EAAxBE,KAAYF,EAAuBA,EAASE,QAC9B7D,MAIC,iBAAb2D,GACLhB,MAAMC,QAAQe,IACbA,EAASG,aAAeH,EAASG,cAAgBC,UAErDJ,EAAWF,KAAKC,UAAUC,SAEX3D,IAAb2D,IAA0BA,EAAW,aAEzCH,EAAIjC,KAAKoC,GACFH,IACN,IAAIQ,KAAK,KAGdC,eAAgB,SAAwBZ,EAAYa,GAClD,OAAOb,EAAWpC,MAAM,0BAA0BsC,QAAO,SAAUC,EAAKpC,GACtE,IAAKA,EACH,OAAOoC,EAGT,GAAIpC,EAAKI,QAAQ,OAAS,EAExB,OADAgC,EAAIjC,KAAKH,GACFoC,EAGT,IAAKU,GAA8B,IAAnBA,EAAQ/C,OAEtB,OADAqC,EAAIjC,KAAKkC,KAAKC,UAAU,KACjBF,EAGT,IAAIW,EAAW/C,EAAKH,MAAM,OAAOE,OAAS,EAGtCwC,EAFaQ,EAAWD,EAAQ/C,OAAS+C,EAAQA,EAAQ/C,OAAS,GAAK+C,EAAQC,EAAW,GAQ9F,OALiB/C,EAAKV,QAAQ,QAAS,IAC5BO,MAAM,KAAK2C,SAAQ,SAAUC,GACWF,OAAf,IAAvBA,EAASE,GAAwCF,EAASE,GACnD,gBAEH,IAAbF,IAAmC,IAAbA,GACxBH,EAAIjC,KAAKkC,KAAKC,UAAUC,IACjBH,GAEQ,OAAbG,GAAkC,cAAbA,GACvBH,EAAIjC,KAAKkC,KAAKC,UAAU,KACjBF,IAETA,EAAIjC,KAAKkC,KAAKC,UAAUC,IACjBH,KACN,IAAIQ,KAAK,KAEdI,cAAe,SAAuBC,EAAMC,EAAKC,QACjC,IAATA,IAAkBA,EAAO,UAE9B,IACIC,EAEAC,EAHAd,EAAWW,EAEXH,EAAW,EAEa,IAAxBE,EAAK7C,QAAQ,QACf2C,EAAWE,EAAKpD,MAAM,OAAOE,OAAS,EACtCsD,EAAWd,EAAS1C,MAAM,KAAK,GAAKkD,EACpCR,EAAW,QAAUc,GAAY,EAAIA,EAAW,GAChDD,EAAQH,EAAKpD,MAAM,OAAOkD,GAAUlD,MAAM,MACL,IAA5BoD,EAAK7C,QAAQ,YACtBmC,EAAW,mBACXa,EAAQH,EAAKpD,MAAM,YAAY,GAAGA,MAAM,MACL,IAA1BoD,EAAK7C,QAAQ,UACtBmC,EAAW,OACXa,EAAQH,EAAKpD,MAAM,UAAU,GAAGA,MAAM,MAEtCuD,EAAQH,EAAKpD,MAAM,KAErB,IAAK,IAAIJ,EAAI,EAAGA,EAAI2D,EAAMrD,OAAQN,GAAK,EAAG,CACxC,IAAIO,EAAOoD,EAAM3D,GACjB,GAA0B,IAAtBO,EAAKI,QAAQ,KAAY,CAC3B,IAAIkD,EAAYH,EAAKtD,MAAM,KAAK,GAC5BkD,EAAW,IACbO,EAAYD,GAEV5D,EAAI,EACN8C,GAAY,UAAYe,EAAY,YAAcA,EAAY,IAAOtD,EAAKV,QAAQ,IAAK,IAAO,KAE9FiD,EAAW,SAAWe,EAAY,YAAcA,EAAY,IAAOtD,EAAKV,QAAQ,IAAK,IAAO,SAErFiE,OAAOC,SAAWD,OAAOC,SAASxD,GAAQnB,iBAAiB2E,SAASxD,IAC7EuC,GAAY,IAAMvC,EAAO,IACP,SAATA,GAAmBA,EAAKI,QAAQ,UAAY,GAAKJ,EAAKI,QAAQ,UAAY,GAAKJ,EAAKI,QAAQ,UAAY,EACjHmC,EAAWvC,EAAKV,QAAQ,OAAQ4D,GAEhCX,GAAY,IAAMvC,EAGtB,OAAOuC,GAETkB,qBAAsB,SAA8BC,EAAcR,EAAKC,GAErE,IADA,IAAIf,EAAM,GACD3C,EAAI,EAAGA,EAAIiE,EAAa3D,OAAQN,GAAK,EACxC,QAAQkE,KAAKD,EAAajE,KACrB,qBAAqBkE,KAAKD,EAAajE,IADX2C,EAAIjC,KAAKuD,EAAajE,IAGzD2C,EAAIjC,KAAKrB,eAAekE,cAAcU,EAAajE,GAAIyD,EAAKC,IAIhE,OAAOf,EAAIQ,KAAK,QAMhBgB,iBAAmB,CACrBC,SAAU,SAAkBC,EAAaC,GACvC,IAAIb,EAAMzE,KACNuF,EAAIC,eAAeC,SAASJ,GAChC,OAAKE,GAAMA,IAAMA,EAAEG,SAAoB,IAClCH,EAAEI,WACLJ,EAAEI,SAAW,IAAIH,eAAeD,EAAEG,UAAUE,WAE9C1B,OAAO2B,KAAKP,EAAQtD,MAAM+B,SAAQ,SAAUjC,GAC1C2C,EAAI3C,GAAYwD,EAAQtD,KAAKF,MAExByD,EAAEI,SAASlB,EAAKa,EAAQZ,KAAMY,EAAQQ,QAE/CnF,OAAQ,SAAgBoF,GACtB,GAAI,MAAOA,EAA+C,MAAO,GACjE,GAAuB,iBAAZA,EACT,MAAM,IAAIC,MAAM,mEAElB,OAAO3F,eAAeM,OAAOoF,IAE/BE,GAAI,SAAcF,EAAST,GACzB,IAAIb,EAAMsB,EAEV,OADI1F,eAAeI,WAAWgE,KAAQA,EAAMA,EAAIyB,KAAKlG,OACjDyE,EACKa,EAAQa,GAAGnG,KAAMsF,EAAQZ,MAG3BY,EAAQc,QAAQpG,KAAMsF,EAAQZ,OAEvC2B,OAAQ,SAAgBN,EAAST,GAC/B,IAAIb,EAAMsB,EAEV,OADI1F,eAAeI,WAAWgE,KAAQA,EAAMA,EAAIyB,KAAKlG,OAChDyE,EAIEa,EAAQc,QAAQpG,KAAMsF,EAAQZ,MAH5BY,EAAQa,GAAGnG,KAAMsF,EAAQZ,OAKpC4B,KAAM,SAAcP,EAAST,GAC3B,IAAIb,EAAMsB,EACNQ,EAAM,GACNvF,EAAI,EAER,GADIX,eAAeI,WAAWgE,KAAQA,EAAMA,EAAIyB,KAAKlG,OACjD8C,MAAMC,QAAQ0B,GAAM,CAItB,IAHIa,EAAQtD,KAAKwE,UACf/B,EAAMA,EAAI+B,WAEPxF,EAAI,EAAGA,EAAIyD,EAAInD,OAAQN,GAAK,EAC/BuF,GAAOjB,EAAQa,GAAG1B,EAAIzD,GAAI,CAAEyF,MAAa,IAANzF,EAAS0F,KAAM1F,IAAMyD,EAAInD,OAAS,EAAGqF,MAAO3F,IAE7EsE,EAAQtD,KAAKwE,UACf/B,EAAMA,EAAI+B,gBAIZ,IAAK,IAAII,KAAOnC,EACdzD,GAAK,EACLuF,GAAOjB,EAAQa,GAAG1B,EAAImC,GAAM,CAAEA,IAAKA,IAGvC,OAAI5F,EAAI,EAAYuF,EACbjB,EAAQc,QAAQpG,OAEzB6G,KAAM,SAAgBd,EAAST,GAC7B,IAAIb,EAAMsB,EAEV,OADI1F,eAAeI,WAAWgE,KAAQA,EAAMsB,EAAQG,KAAKlG,OAClDsF,EAAQa,GAAG1B,IAEpBN,KAAM,SAAc4B,EAAST,GAC3B,IAAIb,EAAMsB,EAEV,OADI1F,eAAeI,WAAWgE,KAAQA,EAAMA,EAAIyB,KAAKlG,OAC9CyE,EAAIN,KAAKmB,EAAQtD,KAAK8E,WAAaxB,EAAQtD,KAAK+E,YAEzDC,GAAI,SAASA,GAAGxD,WAAY8B,SAC1B,IAAIZ,KAAOY,QAAQZ,KACfhE,KACAuG,QAAUzD,WAwBd,MAvBA,uBAAyBpC,MAAM,KAAK2C,SAAQ,SAAUmD,GACpD,QAA0B,IAAfxC,KAAKwC,GAAuB,CACrC,IAAIC,EAAM,IAAI5G,OAAQ,SAAW2G,EAAO,KACpCE,EAAM,IAAI7G,OAAQ,IAAM2G,EAAO,KACnCD,QAAUA,QACPpG,QAAQsG,EAAKvD,KAAKC,UAAUa,KAAKwC,KACjCrG,QAAQuG,EAAKxD,KAAKC,UAAUa,KAAKwC,SAGpC5B,QAAQQ,MAAQmB,QAAQtF,QAAQ,UAAY,IAC9CsF,QAAU5G,eAAekD,gBAAgB0D,QAAS,QAAS3B,QAAQQ,OAEjEmB,QAAQtF,QAAQ,YAAc,IAChCsF,QAAU5G,eAAekD,gBAAgB0D,QAAS,UAAW7G,iBAAiBiH,UAAU7H,SAEtFyH,QAAQtF,QAAQ,QAAU,IAC5BsF,QAAU5G,eAAe+D,eAAe6C,QAAS3B,QAAQjB,UAGzD3D,KADEuG,QAAQtF,QAAQ,WAAa,EACxB,eAAiBsF,QAAU,KAE3B,uBAAyBA,QAAU,MAErCK,KAAK5G,MAAMwF,KAAKlG,OAEzBuH,MAAO,SAASA,MAAM/D,WAAY8B,SAChC,IAAIZ,KAAOY,QAAQZ,KACfhE,KACAuG,QAAUzD,WACd,uBAAyBpC,MAAM,KAAK2C,SAAQ,SAAUmD,GACpD,QAA0B,IAAfxC,KAAKwC,GAAuB,CACrC,IAAIC,EAAM,IAAI5G,OAAQ,SAAW2G,EAAO,KACpCE,EAAM,IAAI7G,OAAQ,IAAM2G,EAAO,KACnCD,QAAUA,QACPpG,QAAQsG,EAAKvD,KAAKC,UAAUa,KAAKwC,KACjCrG,QAAQuG,EAAKxD,KAAKC,UAAUa,KAAKwC,SAGpC5B,QAAQQ,MAAQmB,QAAQtF,QAAQ,UAAY,IAC9CsF,QAAU5G,eAAekD,gBAAgB0D,QAAS,QAAS3B,QAAQQ,OAEjEmB,QAAQtF,QAAQ,YAAc,IAChCsF,QAAU5G,eAAekD,gBAAgB0D,QAAS,UAAW7G,iBAAiBiH,UAAU7H,SAEtFyH,QAAQtF,QAAQ,QAAU,IAC5BsF,QAAU5G,eAAe+D,eAAe6C,QAAS3B,QAAQjB,UAGzD3D,KADEuG,QAAQtF,QAAQ,WAAa,EACxB,eAAiBsF,QAAU,KAE3B,uBAAyBA,QAAU,MAE5C,IAAIO,UAAYF,KAAK5G,MAAMwF,KAAKlG,MAChC,OAAIwH,UACKlC,QAAQa,GAAGnG,KAAMsF,QAAQZ,MAG3BY,QAAQc,QAAQpG,KAAMsF,QAAQZ,QAGzCS,iBAAiBsC,WAAatC,iBAAiBoC,MAE/C,IAAIG,iBAAmB,GACnBC,kBAAoB,GAEpBnC,eAAiB,SAAwBE,GACnC1F,KACN0F,SAAWA,GAGXkC,gBAAkB,CAAEtC,QAAS,CAAEuC,cAAc,GAAOpC,SAAU,CAAEoC,cAAc,GAAOC,QAAS,CAAED,cAAc,IAmHlH,SAASR,YAEP,IADA,IAAIU,EAAO,GAAIC,EAAMC,UAAU3G,OACvB0G,KAAQD,EAAMC,GAAQC,UAAWD,GAEzC,IAAItC,EAAWqC,EAAK,GAChBrD,EAAOqD,EAAK,GAChB,GAAoB,IAAhBA,EAAKzG,OAAc,CACrB,IAAI4G,EAAW,IAAI1C,eAAeE,GAC9ByC,EAAWD,EAAStC,SAATsC,CAAmBxD,GAElC,OADAwD,EAAW,KACJ,EAET,OAAO,IAAI1C,eAAeE,GAuC5B,SAAS0C,SAASC,GACd,OAAgB,OAARA,GACW,iBAARA,GACP,gBAAiBA,GACjBA,EAAIpE,cAAgBC,OAE5B,SAASoE,OAAOC,EAAQC,QACL,IAAXD,IAAqBA,EAAS,SACtB,IAARC,IAAkBA,EAAM,IAC5BtE,OAAO2B,KAAK2C,GAAKzE,SAAQ,SAAU6C,QACJ,IAAhB2B,EAAO3B,GACZ2B,EAAO3B,GAAO4B,EAAI5B,GACfwB,SAASI,EAAI5B,KAClBwB,SAASG,EAAO3B,KAChB1C,OAAO2B,KAAK2C,EAAI5B,IAAMtF,OAAS,GAC/BgH,OAAOC,EAAO3B,GAAM4B,EAAI5B,OApLpCpB,eAAeiD,UAAU7C,QAAU,SAASA,QAASF,SAAUrC,YACzC,IAAbqC,WAAsBA,SAAW1F,KAAK0F,eAC5B,IAAVrC,QAAmBA,MAAQ,GAElC,IAAIqF,EAAI1I,KACR,GAAI0I,EAAE/C,SAAY,OAAO+C,EAAE/C,SAE3B,GAAwB,iBAAbD,SACT,MAAM,IAAIM,MAAM,wCAElB,IAAI/D,eAAiB5B,eAAe4B,eAC9BsC,cAAgBlE,eAAekE,cAC/BS,qBAAuB3E,eAAe2E,qBAExC9C,OAASD,eAAeyD,UACxBjB,IAAM,OAASpB,MACfqB,KAAO,QAAUrB,MACrB,GAAsB,IAAlBnB,OAAOZ,OACT,OAAO,WAAmB,MAAO,IAGnC,SAASqH,aAAavG,EAAOwC,GAC3B,OAAIxC,EAAME,QAAkBoG,EAAE9C,QAAQxD,EAAME,QAASsC,GAC9C,WAAmB,MAAO,IAEnC,SAASgE,kBAAkBxG,EAAOwC,GAChC,OAAIxC,EAAMkB,eAAyBoF,EAAE9C,QAAQxD,EAAMkB,eAAgBsB,GAC5D,WAAmB,MAAO,IAGnC,IAAIiE,aAAe,GAaf7H,EACJ,IAZE6H,cADY,IAAVxF,MACc,cAAgBoB,IAAM,KAAOC,KAAO,cAEpC,cAAgBD,IAAM,KAAOC,KAAO,QAExC,IAAVrB,QACFwF,cAAgB,sDAChBA,cAAgB,oEAChBA,cAAgB,2JAChBA,cAAgB,iCAElBA,cAAgB,gBAEX7H,EAAI,EAAGA,EAAIkB,OAAOZ,OAAQN,GAAK,EAAG,CACrC,IAAIoB,MAAQF,OAAOlB,GAEnB,GAAmB,UAAfoB,MAAMC,KAAV,CAKA,IAAIyB,cAAW,EACXgF,uBAAoB,EAOxB,GALmB,aAAf1G,MAAMC,OACRyB,SAAWS,cAAcnC,MAAMG,YAAakC,IAAKC,MACjDmE,cAAgB,UAAY/E,SAAW,KAAOW,IAAM,MAGnC,WAAfrC,MAAMC,KAAmB,CAC3B,IAAIgC,aAAU,EACd,GAAY,UAARI,IAAiB,CAGnB,IAFA,IAAIsE,MAAQtE,IAAIrD,MAAM,KAAK,GACvB4H,cAAgB,QAAUD,MAAQ,GAC7B9H,EAAI8H,MAAQ,EAAG9H,GAAK,EAAGA,GAAK,EACnC+H,eAAiB,SAAW/H,EAE9BoD,QAAU,IAAM2E,cAAgB,SAEhC3E,QAAU,IAAMI,IAAM,IAExB,IAAIwE,mBAAgB,EAKpB,GAJsC,IAAlC7G,MAAMK,WAAWd,QAAQ,OAC3BS,MAAMK,WAAa8B,cAAcnC,MAAMK,WAAW5B,QAAQ,SAAU,IAAK4D,IAAKC,MAC9EuE,eAAgB,GAEdA,eAAiB7G,MAAMK,cAAc0C,iBACvC2D,kBAAoB9D,qBAAqB5C,MAAMG,YAAakC,IAAKC,MACjEmE,cAAgB,0BAA4BI,cAAiB,IAAO7G,MAAgB,WAAI,IAAQ,IAAOA,MAAgB,YAAM,UAAYqC,IAAM,MAAQqE,mBAAuBA,kBAAoB,MAAU,SAAYlF,KAAKC,UAAUzB,MAAMJ,MAAS,WAAa0C,KAAO,eAAkBiE,aAAavG,MAAOiB,MAAQ,GAAM,cAAiBuF,kBAAkBxG,MAAOiB,MAAQ,GAAM,0BAA4BgB,QAAU,UACvZ,CAAA,GAAIjC,MAAMG,YAAYjB,OAAS,EACpC,MAAM,IAAI0E,MAAO,+BAAmC5D,MAAgB,WAAI,KAExE0B,SAAWS,cAAcnC,MAAMK,WAAYgC,IAAKC,MAChDmE,cAAgB,OAAS/E,SAAW,MACpC+E,cAAgB,eAAiB/E,SAAW,OAC5C+E,cAAgB,qCAAuCpE,IAAM,KAAOX,SAAW,WAAcF,KAAKC,UAAUzB,MAAMJ,MAAS,WAAa0C,KAAO,eAAkBiE,aAAavG,MAAOiB,MAAQ,GAAM,cAAiBuF,kBAAkBxG,MAAOiB,MAAQ,GAAM,0BAA4BgB,QAAU,MACjSwE,cAAgB,UAChBA,cAAgB,qCAAuCpE,IAAM,KAAOX,SAAW,WAAcF,KAAKC,UAAUzB,MAAMJ,MAAS,WAAa0C,KAAO,eAAkBiE,aAAavG,MAAOiB,MAAQ,GAAM,cAAiBuF,kBAAkBxG,MAAOiB,MAAQ,GAAM,0BAA4BgB,QAAU,MACjSwE,cAAgB,YAxClBA,cAAgB,QAAYzG,MAAa,QAAEvB,QAAQ,MAAO,OAAOA,QAAQ,MAAO,OAAOA,QAAQ,KAAM,OAAgB,KA8CzH,OAFAgI,cAAgB,gBAEF,IAAVxF,OAEFqF,EAAE/C,SAAW2B,KAAKuB,cACXH,EAAE/C,UAEJkD,cAETjB,gBAAgBtC,QAAQ4D,IAAM,WAC5B,OAAOxB,kBAETE,gBAAgBnC,SAASyD,IAAM,WAC7B,OAAOvB,mBAETC,gBAAgBE,QAAQoB,IAAM,WAC5B,OAAO/D,kBAGTjB,OAAOiF,iBAAkB3D,eAAgBoC,iBAgBzCP,UAAU+B,eAAiB,SAAwB5E,EAAM2B,GACvDX,eAAesC,QAAQtD,GAAQ2B,GAEjCkB,UAAUgC,iBAAmB,SAA0B7E,GACrDgB,eAAesC,QAAQtD,QAAQrE,SACxBqF,eAAesC,QAAQtD,IAEhC6C,UAAUiC,gBAAkB,SAAyB9E,EAAMkB,GACzDF,eAAeC,SAASjB,GAAQ,CAAEkB,SAAUA,IAE9C2B,UAAUkC,kBAAoB,SAA2B/E,GACnDgB,eAAeC,SAASjB,KAC1BgB,eAAeC,SAASjB,QAAQrE,SACzBqF,eAAeC,SAASjB,KAGnC6C,UAAUzB,QAAU,SAAiBF,EAAUJ,GAE7C,OADe,IAAIE,eAAeE,EAAUJ,GAC5BM,WAGlByB,UAAU/B,QAAUE,eAAeF,QACnC+B,UAAUS,QAAUtC,eAAesC,QACnCT,UAAU5B,SAAWD,eAAeC,SAkCpC,IAAI+D,IAA0B,oBAAbC,SAA2BA,SAAW,GACnDC,YAAc,CACdC,KAAM,GACNC,iBAAkB,aAClBC,oBAAqB,aACrBC,cAAe,CACXC,KAAM,aACNC,SAAU,IAEdC,cAAe,WACX,OAAO,MAEXC,iBAAkB,WACd,MAAO,IAEXC,eAAgB,WACZ,OAAO,MAEXC,YAAa,WACT,MAAO,CACHC,UAAW,eAGnBC,cAAe,WACX,MAAO,CACHC,SAAU,GACVC,WAAY,GACZC,MAAO,GACPC,aAAc,aACdC,qBAAsB,WAClB,MAAO,MAInBC,gBAAiB,WACb,MAAO,IAEXC,WAAY,WACR,OAAO,MAEXC,SAAU,CACN9I,KAAM,GACN+I,KAAM,GACNC,SAAU,GACVC,KAAM,GACNC,OAAQ,GACRC,SAAU,GACVC,SAAU,GACVC,OAAQ,KAGhB/C,OAAOkB,IAAKE,aAEZ,IAAI4B,IAAwB,oBAAXpL,OAAyBA,OAAS,GAC/CqL,UAAY,CACZ9B,SAAUC,YACV8B,UAAW,CACPC,UAAW,IAEfX,SAAU,CACN9I,KAAM,GACN+I,KAAM,GACNC,SAAU,GACVC,KAAM,GACNC,OAAQ,GACRC,SAAU,GACVC,SAAU,GACVC,OAAQ,IAEZK,QAAS,CACLC,aAAc,aACdC,UAAW,aACXC,GAAI,aACJC,KAAM,cAEVC,YAAa,WACT,OAAO/L,MAEX4J,iBAAkB,aAClBC,oBAAqB,aACrBmC,iBAAkB,WACd,MAAO,CACHC,iBAAkB,WACd,MAAO,MAInBC,MAAO,aACPC,KAAM,aACNC,OAAQ,GACRC,WAAY,aACZC,aAAc,aACdC,WAAY,WACR,MAAO,KAGfjE,OAAOgD,IAAKC,WAgBZ,IAAIiB,KAAO,SAAc7I,GAGvB,IAFA,IAES3C,EAAI,EAAGA,EAAI2C,EAAIrC,OAAQN,GAAK,EAF1BhB,KAGJgB,GAAK2C,EAAI3C,GAIhB,OAPWhB,KAKNsB,OAASqC,EAAIrC,OAEXtB,MAGT,SAASyM,EAAEC,EAAU3G,GACnB,IAAIpC,EAAM,GACN3C,EAAI,EACR,GAAI0L,IAAa3G,GACX2G,aAAoBF,KACtB,OAAOE,EAGX,GAAIA,EAEF,GAAwB,iBAAbA,EAAuB,CAChC,IAAIC,EACAC,EACAC,EAAOH,EAASvL,OACpB,GAAI0L,EAAKlL,QAAQ,MAAQ,GAAKkL,EAAKlL,QAAQ,MAAQ,EAAG,CACpD,IAAImL,EAAW,MAQf,IAP4B,IAAxBD,EAAKlL,QAAQ,SAAgBmL,EAAW,MAChB,IAAxBD,EAAKlL,QAAQ,SAAgBmL,EAAW,SAChB,IAAxBD,EAAKlL,QAAQ,QAAwC,IAAxBkL,EAAKlL,QAAQ,SAAgBmL,EAAW,MAC1C,IAA3BD,EAAKlL,QAAQ,YAAmBmL,EAAW,SACf,IAA5BD,EAAKlL,QAAQ,aAAoBmL,EAAW,WAChDF,EAAapD,IAAIc,cAAcwC,IACpBC,UAAYF,EAClB7L,EAAI,EAAGA,EAAI4L,EAAWpC,WAAWlJ,OAAQN,GAAK,EACjD2C,EAAIjC,KAAKkL,EAAWpC,WAAWxJ,SAUjC,IAFE2L,EALG5G,GAA2B,MAAhB2G,EAAS,IAAeA,EAAS9K,MAAM,aAK9CmE,GAAWyD,KAAKU,iBAAiBwC,EAASvL,QAH3C,CAACqI,IAAIW,eAAeuC,EAASvL,OAAOC,MAAM,KAAK,KAKlDJ,EAAI,EAAGA,EAAI2L,EAAIrL,OAAQN,GAAK,EAC3B2L,EAAI3L,IAAM2C,EAAIjC,KAAKiL,EAAI3L,SAG1B,GAAI0L,EAASM,UAAYN,IAAapB,KAAOoB,IAAalD,IAE/D7F,EAAIjC,KAAKgL,QACJ,GAAIA,EAASpL,OAAS,GAAKoL,EAAS,GAAGM,SAE5C,IAAKhM,EAAI,EAAGA,EAAI0L,EAASpL,OAAQN,GAAK,EACpC2C,EAAIjC,KAAKgL,EAAS1L,IAIxB,OAAO,IAAIwL,KAAK7I,GAOlB,SAASsJ,OAAOtJ,GAEd,IADA,IAAIuJ,EAAc,GACTlM,EAAI,EAAGA,EAAI2C,EAAIrC,OAAQN,GAAK,GACE,IAAjCkM,EAAYvL,QAAQgC,EAAI3C,KAAckM,EAAYxL,KAAKiC,EAAI3C,IAEjE,OAAOkM,EAET,SAASC,YAAYvM,GACnB,OAAOA,EAAOwM,cAAcvM,QAAQ,SAAS,SAAUe,EAAOyL,GAAU,OAAOA,EAAOC,iBAGxF,SAASC,sBAAsBC,GAC7B,OAAIlC,IAAIiC,sBAAgCjC,IAAIiC,sBAAsBC,GACzDlC,IAAImC,4BAAsCnC,IAAImC,4BAA4BD,GAC5ElC,IAAIe,WAAWmB,EAAU,IAAO,IAEzC,SAASE,qBAAqBC,GAC5B,OAAIrC,IAAIoC,qBAA+BpC,IAAIoC,qBAAqBC,GACvDrC,IAAIsC,2BAAqCtC,IAAIsC,2BAA2BD,GAC1ErC,IAAIgB,aAAaqB,GAI1B,SAASE,SAASC,GAChB,QAAyB,IAAdA,EACT,OAAO9N,KAGT,IADA,IAAI+N,EAAUD,EAAU1M,MAAM,KACrBJ,EAAI,EAAGA,EAAI+M,EAAQzM,OAAQN,GAAK,EACvC,IAAK,IAAIC,EAAI,EAAGA,EAAIjB,KAAKsB,OAAQL,GAAK,OACb,IAAZjB,KAAKiB,SAAmD,IAAtBjB,KAAKiB,GAAG+M,WAA6BhO,KAAKiB,GAAG+M,UAAUC,IAAIF,EAAQ/M,IAGpH,OAAOhB,KAET,SAASkO,YAAYJ,GAEnB,IADA,IAAIC,EAAUD,EAAU1M,MAAM,KACrBJ,EAAI,EAAGA,EAAI+M,EAAQzM,OAAQN,GAAK,EACvC,IAAK,IAAIC,EAAI,EAAGA,EAAIjB,KAAKsB,OAAQL,GAAK,OACb,IAAZjB,KAAKiB,SAAmD,IAAtBjB,KAAKiB,GAAG+M,WAA6BhO,KAAKiB,GAAG+M,UAAUG,OAAOJ,EAAQ/M,IAGvH,OAAOhB,KAET,SAASoO,SAASN,GAChB,QAAK9N,KAAK,IACHA,KAAK,GAAGgO,UAAUK,SAASP,GAEpC,SAASQ,YAAYR,GAEnB,IADA,IAAIC,EAAUD,EAAU1M,MAAM,KACrBJ,EAAI,EAAGA,EAAI+M,EAAQzM,OAAQN,GAAK,EACvC,IAAK,IAAIC,EAAI,EAAGA,EAAIjB,KAAKsB,OAAQL,GAAK,OACb,IAAZjB,KAAKiB,SAAmD,IAAtBjB,KAAKiB,GAAG+M,WAA6BhO,KAAKiB,GAAG+M,UAAUO,OAAOR,EAAQ/M,IAGvH,OAAOhB,KAET,SAASwO,KAAKC,EAAOC,GACnB,IAAIC,EAAc1G,UAElB,GAAyB,IAArBA,UAAU3G,QAAiC,iBAAVmN,EAEnC,OAAIzO,KAAK,GAAaA,KAAK,GAAG4O,aAAaH,QAC3C,EAIF,IAAK,IAAIzN,EAAI,EAAGA,EAAIhB,KAAKsB,OAAQN,GAAK,EACpC,GAA2B,IAAvB2N,EAAYrN,OAEdtB,KAAKgB,GAAG0J,aAAa+D,EAAOC,QAI5B,IAAK,IAAIG,KAAYJ,EACnBzO,KAAKgB,GAAG6N,GAAYJ,EAAMI,GAC1B7O,KAAKgB,GAAG0J,aAAamE,EAAUJ,EAAMI,IAI3C,OAAO7O,KAGT,SAAS8O,WAAWN,GAClB,IAAK,IAAIxN,EAAI,EAAGA,EAAIhB,KAAKsB,OAAQN,GAAK,EACpChB,KAAKgB,GAAG+N,gBAAgBP,GAE1B,OAAOxO,KAGT,SAASkH,KAAK8H,EAAON,GACnB,IAAIC,EAAc1G,UAElB,GAAyB,IAArBA,UAAU3G,QAAiC,iBAAV0N,EAG9B,CAEL,IAAK,IAAIhO,EAAI,EAAGA,EAAIhB,KAAKsB,OAAQN,GAAK,EACpC,GAA2B,IAAvB2N,EAAYrN,OAEdtB,KAAKgB,GAAGgO,GAASN,OAIjB,IAAK,IAAIO,KAAYD,EACnBhP,KAAKgB,GAAGiO,GAAYD,EAAMC,GAIhC,OAAOjP,KAfP,GAAIA,KAAK,GAAM,OAAOA,KAAK,GAAGgP,GAkBlC,SAAStK,KAAKkC,EAAK8H,GACjB,IAAIQ,EACJ,QAAqB,IAAVR,EAAX,CAkBA,IAAK,IAAI1N,EAAI,EAAGA,EAAIhB,KAAKsB,OAAQN,GAAK,GACpCkO,EAAKlP,KAAKgB,IACFmO,yBAA0BD,EAAGC,uBAAyB,IAC9DD,EAAGC,uBAAuBvI,GAAO8H,EAEnC,OAAO1O,KApBL,GAFAkP,EAAKlP,KAAK,GAEF,CACN,GAAIkP,EAAGC,wBAA2BvI,KAAOsI,EAAGC,uBAC1C,OAAOD,EAAGC,uBAAuBvI,GAGnC,IAAIwI,EAAUF,EAAGN,aAAc,QAAUhI,GACzC,OAAIwI,QAGJ,GAaN,SAASC,WAAWzI,GAClB,IAAK,IAAI5F,EAAI,EAAGA,EAAIhB,KAAKsB,OAAQN,GAAK,EAAG,CACvC,IAAIkO,EAAKlP,KAAKgB,GACVkO,EAAGC,wBAA0BD,EAAGC,uBAAuBvI,KACzDsI,EAAGC,uBAAuBvI,GAAO,YAC1BsI,EAAGC,uBAAuBvI,KAIvC,SAAS0I,UACP,IAAIJ,EAAKlP,KAAK,GACd,GAAKkP,EAAL,CACA,IAAII,EAAU,GACd,GAAIJ,EAAGI,QAEL,IAAK,IAAIF,KAAWF,EAAGI,QACrBA,EAAQF,GAAWF,EAAGI,QAAQF,QAGhC,IAAK,IAAIpO,EAAI,EAAGA,EAAIkO,EAAGK,WAAWjO,OAAQN,GAAK,EAAG,CAEhD,IAAIwN,EAAOU,EAAGK,WAAWvO,GACrBwN,EAAKhK,KAAK7C,QAAQ,UAAY,IAChC2N,EAAQnC,YAAYqB,EAAKhK,KAAKpD,MAAM,SAAS,KAAOoN,EAAKE,OAK/D,IAAK,IAAI9H,KAAO0I,EACO,UAAjBA,EAAQ1I,GAAoB0I,EAAQ1I,IAAO,EACrB,SAAjB0I,EAAQ1I,GAAmB0I,EAAQ1I,IAAO,EAC1C4I,WAAWF,EAAQ1I,MAAyB,EAAf0I,EAAQ1I,KAAY0I,EAAQ1I,IAAQ,GAE5E,OAAO0I,GAET,SAASG,IAAIf,GAEX,QAAqB,IAAVA,EAAX,CAcA,IAAK,IAAIgB,EAAM,EAAGA,EAfR1P,KAekBsB,OAAQoO,GAAO,EAAG,CAC5C,IAAIR,EAhBIlP,KAgBK0P,GACb,GAAI5M,MAAMC,QAAQ2L,IAAUQ,EAAGS,UAA0C,WAA9BT,EAAGlF,SAASoD,cACrD,IAAK,IAAInM,EAAI,EAAGA,EAAIiO,EAAG5J,QAAQhE,OAAQL,GAAK,EAC1CiO,EAAG5J,QAAQrE,GAAG2O,SAAWlB,EAAM/M,QAAQuN,EAAG5J,QAAQrE,GAAGyN,QAAU,OAGjEQ,EAAGR,MAAQA,EAGf,OAzBU1O,KAER,GAFQA,KAEA,GAAI,CACV,GAHMA,KAGE,GAAG2P,UAA8C,WAHnD3P,KAGqB,GAAGgK,SAASoD,cAA4B,CAEjE,IADA,IAAIyC,EAAS,GACJ7O,EAAI,EAAGA,EALZhB,KAKoB,GAAG8P,gBAAgBxO,OAAQN,GAAK,EACtD6O,EAAOnO,KANL1B,KAMc,GAAG8P,gBAAgB9O,GAAG0N,OAExC,OAAOmB,EAET,OAVM7P,KAUK,GAAG0O,OAmBpB,SAASqB,UAAUA,GACjB,IAAK,IAAI/O,EAAI,EAAGA,EAAIhB,KAAKsB,OAAQN,GAAK,EAAG,CACvC,IAAIgP,EAAUhQ,KAAKgB,GAAGyJ,MACtBuF,EAAQC,gBAAkBF,EAC1BC,EAAQD,UAAYA,EAEtB,OAAO/P,KAET,SAASkQ,WAAWC,GACM,iBAAbA,IACTA,GAAsB,MAExB,IAAK,IAAInP,EAAI,EAAGA,EAAIhB,KAAKsB,OAAQN,GAAK,EAAG,CACvC,IAAIgP,EAAUhQ,KAAKgB,GAAGyJ,MACtBuF,EAAQI,yBAA2BD,EACnCH,EAAQK,mBAAqBF,EAE/B,OAAOnQ,KAGT,SAASsQ,KAIP,IAHA,IAAIC,EAEAxI,EAAO,GAAIC,EAAMC,UAAU3G,OACvB0G,KAAQD,EAAMC,GAAQC,UAAWD,GACzC,IAAIwI,EAAYzI,EAAK,GACjB0I,EAAiB1I,EAAK,GACtB2I,EAAW3I,EAAK,GAChB4I,EAAU5I,EAAK,GAOnB,SAAS6I,EAAgBC,GACvB,IAAItI,EAASsI,EAAEtI,OACf,GAAKA,EAAL,CACA,IAAIuI,EAAYD,EAAEtI,OAAOwI,eAAiB,GAI1C,GAHID,EAAUnP,QAAQkP,GAAK,GACzBC,EAAUE,QAAQH,GAEhBpE,EAAElE,GAAQ0I,GAAGR,GAAmBC,EAASQ,MAAM3I,EAAQuI,QAGzD,IADA,IAAIzM,EAAUoI,EAAElE,GAAQlE,UACf8M,EAAI,EAAGA,EAAI9M,EAAQ/C,OAAQ6P,GAAK,EACnC1E,EAAEpI,EAAQ8M,IAAIF,GAAGR,IAAmBC,EAASQ,MAAM7M,EAAQ8M,GAAIL,IAIzE,SAASM,EAAYP,GACnB,IAAIC,EAAYD,GAAKA,EAAEtI,QAASsI,EAAEtI,OAAOwI,eAAsB,GAC3DD,EAAUnP,QAAQkP,GAAK,GACzBC,EAAUE,QAAQH,GAEpBH,EAASQ,MAAMlR,KAAM8Q,GA1BA,mBAAZ/I,EAAK,KACEyI,GAAfD,EAASxI,GAAyB,GAAI2I,EAAWH,EAAO,GAAII,EAAUJ,EAAO,GAC9EE,OAAiBtQ,GAEdwQ,IAAWA,GAAU,GA0B1B,IAFA,IACI1P,EADAoQ,EAASb,EAAUpP,MAAM,KAEpBJ,EAAI,EAAGA,EAAIhB,KAAKsB,OAAQN,GAAK,EAAG,CACvC,IAAIkO,EAAKlP,KAAKgB,GACd,GAAKyP,EAaH,IAAKxP,EAAI,EAAGA,EAAIoQ,EAAO/P,OAAQL,GAAK,EAAG,CACrC,IAAIqQ,EAAUD,EAAOpQ,GAChBiO,EAAGqC,oBAAqBrC,EAAGqC,kBAAoB,IAC/CrC,EAAGqC,kBAAkBD,KAAYpC,EAAGqC,kBAAkBD,GAAW,IACtEpC,EAAGqC,kBAAkBD,GAAS5P,KAAK,CACjCgP,SAAUA,EACVc,cAAeZ,IAEjB1B,EAAGtF,iBAAiB0H,EAASV,EAAiBD,QApBhD,IAAK1P,EAAI,EAAGA,EAAIoQ,EAAO/P,OAAQL,GAAK,EAAG,CACrC,IAAIwQ,EAAQJ,EAAOpQ,GACdiO,EAAGwC,gBAAiBxC,EAAGwC,cAAgB,IACvCxC,EAAGwC,cAAcD,KAAUvC,EAAGwC,cAAcD,GAAS,IAC1DvC,EAAGwC,cAAcD,GAAO/P,KAAK,CAC3BgP,SAAUA,EACVc,cAAeJ,IAEjBlC,EAAGtF,iBAAiB6H,EAAOL,EAAaT,IAgB9C,OAAO3Q,KAET,SAAS2R,MAIP,IAHA,IAAIpB,EAEAxI,EAAO,GAAIC,EAAMC,UAAU3G,OACvB0G,KAAQD,EAAMC,GAAQC,UAAWD,GACzC,IAAIwI,EAAYzI,EAAK,GACjB0I,EAAiB1I,EAAK,GACtB2I,EAAW3I,EAAK,GAChB4I,EAAU5I,EAAK,GACI,mBAAZA,EAAK,KACEyI,GAAfD,EAASxI,GAAyB,GAAI2I,EAAWH,EAAO,GAAII,EAAUJ,EAAO,GAC9EE,OAAiBtQ,GAEdwQ,IAAWA,GAAU,GAG1B,IADA,IAAIU,EAASb,EAAUpP,MAAM,KACpBJ,EAAI,EAAGA,EAAIqQ,EAAO/P,OAAQN,GAAK,EAEtC,IADA,IAAIyQ,EAAQJ,EAAOrQ,GACVC,EAAI,EAAGA,EAAIjB,KAAKsB,OAAQL,GAAK,EAAG,CACvC,IAAIiO,EAAKlP,KAAKiB,GACV2Q,OAAW,EAMf,IALKnB,GAAkBvB,EAAGwC,cACxBE,EAAW1C,EAAGwC,cAAcD,GACnBhB,GAAkBvB,EAAGqC,oBAC9BK,EAAW1C,EAAGqC,kBAAkBE,IAE9BG,GAAYA,EAAStQ,OACvB,IAAK,IAAI6P,EAAIS,EAAStQ,OAAS,EAAG6P,GAAK,EAAGA,GAAK,EAAG,CAChD,IAAIU,EAAUD,EAAST,GACnBT,GAAYmB,EAAQnB,WAAaA,GAG1BA,GAAYmB,EAAQnB,UAAYmB,EAAQnB,SAASoB,WAAaD,EAAQnB,SAASoB,YAAcpB,GAFtGxB,EAAGrF,oBAAoB4H,EAAOI,EAAQL,cAAeb,GACrDiB,EAASG,OAAOZ,EAAG,IAITT,IACVxB,EAAGrF,oBAAoB4H,EAAOI,EAAQL,cAAeb,GACrDiB,EAASG,OAAOZ,EAAG,KAM7B,OAAOnR,KAET,SAASgS,OAIP,IAHA,IAAIzB,EAEAxI,EAAO,GAAIC,EAAMC,UAAU3G,OACvB0G,KAAQD,EAAMC,GAAQC,UAAWD,GACzC,IAAIiK,EAAMjS,KACNkS,EAAYnK,EAAK,GACjB0I,EAAiB1I,EAAK,GACtB2I,EAAW3I,EAAK,GAChB4I,EAAU5I,EAAK,GAKnB,SAASoK,IAEP,IADA,IAAIC,EAAY,GAAIpK,EAAMC,UAAU3G,OAC5B0G,KAAQoK,EAAWpK,GAAQC,UAAWD,GAE9C0I,EAASQ,MAAMlR,KAAMoS,GACrBH,EAAIN,IAAIO,EAAWzB,EAAgB0B,EAAaxB,GAC5CwB,EAAYL,kBACPK,EAAYL,UAIvB,MAfuB,mBAAZ/J,EAAK,KACEmK,GAAf3B,EAASxI,GAAyB,GAAI2I,EAAWH,EAAO,GAAII,EAAUJ,EAAO,GAC9EE,OAAiBtQ,GAYnBgS,EAAYL,UAAYpB,EACjBuB,EAAI3B,GAAG4B,EAAWzB,EAAgB0B,EAAaxB,GAExD,SAAS0B,UAEP,IADA,IAAItK,EAAO,GAAIC,EAAMC,UAAU3G,OACvB0G,KAAQD,EAAMC,GAAQC,UAAWD,GAIzC,IAFA,IAAIqJ,EAAStJ,EAAK,GAAG3G,MAAM,KACvB0P,EAAY/I,EAAK,GACZ/G,EAAI,EAAGA,EAAIqQ,EAAO/P,OAAQN,GAAK,EAEtC,IADA,IAAIyQ,EAAQJ,EAAOrQ,GACVC,EAAI,EAAGA,EAAIjB,KAAKsB,OAAQL,GAAK,EAAG,CACvC,IAAIiO,EAAKlP,KAAKiB,GACVqR,OAAM,EACV,IACEA,EAAM,IAAIhH,IAAIS,YAAY0F,EAAO,CAC/Bc,OAAQzB,EACR0B,SAAS,EACTC,YAAY,IAEd,MAAO5B,IACPyB,EAAM9I,IAAIY,YAAY,UAClBC,UAAUoH,GAAO,GAAM,GAC3Ba,EAAIC,OAASzB,EAGf5B,EAAG6B,cAAgBhJ,EAAK2K,QAAO,SAAUhO,EAAMiO,GAAa,OAAOA,EAAY,KAC/EzD,EAAG0D,cAAcN,GACjBpD,EAAG6B,cAAgB,UACZ7B,EAAG6B,cAGd,OAAO/Q,KAET,SAAS6S,cAAcrF,GACrB,IAEIxM,EAFAqQ,EAAS,CAAC,sBAAuB,iBACjCY,EAAMjS,KAEV,SAAS8S,EAAajC,GAEpB,GAAIA,EAAEtI,SAAWvI,KAEjB,IADAwN,EAAStH,KAAKlG,KAAM6Q,GACf7P,EAAI,EAAGA,EAAIqQ,EAAO/P,OAAQN,GAAK,EAClCiR,EAAIN,IAAIN,EAAOrQ,GAAI8R,GAGvB,GAAItF,EACF,IAAKxM,EAAI,EAAGA,EAAIqQ,EAAO/P,OAAQN,GAAK,EAClCiR,EAAI3B,GAAGe,EAAOrQ,GAAI8R,GAGtB,OAAO9S,KAET,SAAS+S,aAAavF,GACpB,IAEIxM,EAFAqQ,EAAS,CAAC,qBAAsB,gBAChCY,EAAMjS,KAEV,SAAS8S,EAAajC,GACpB,GAAIA,EAAEtI,SAAWvI,KAEjB,IADAwN,EAAStH,KAAKlG,KAAM6Q,GACf7P,EAAI,EAAGA,EAAIqQ,EAAO/P,OAAQN,GAAK,EAClCiR,EAAIN,IAAIN,EAAOrQ,GAAI8R,GAGvB,GAAItF,EACF,IAAKxM,EAAI,EAAGA,EAAIqQ,EAAO/P,OAAQN,GAAK,EAClCiR,EAAI3B,GAAGe,EAAOrQ,GAAI8R,GAGtB,OAAO9S,KAGT,SAASgT,QACP,OAAIhT,KAAK,KAAOsL,IACPA,IAAI2H,WAGTjT,KAAKsB,OAAS,EACTkO,WAAWxP,KAAKkT,IAAI,UAGtB,KAET,SAASC,WAAWC,GAClB,GAAIpT,KAAKsB,OAAS,EAAG,CACnB,GAAI8R,EAAgB,CAElB,IAAIC,EAASrT,KAAKqT,SAClB,OAAOrT,KAAK,GAAGsT,YAAc9D,WAAW6D,EAAOpH,iBAAiB,iBAAmBuD,WAAW6D,EAAOpH,iBAAiB,gBAExH,OAAOjM,KAAK,GAAGsT,YAEjB,OAAO,KAET,SAASC,SACP,OAAIvT,KAAK,KAAOsL,IACPA,IAAIkI,YAGTxT,KAAKsB,OAAS,EACTkO,WAAWxP,KAAKkT,IAAI,WAGtB,KAET,SAASO,YAAYL,GACnB,GAAIpT,KAAKsB,OAAS,EAAG,CACnB,GAAI8R,EAAgB,CAElB,IAAIC,EAASrT,KAAKqT,SAClB,OAAOrT,KAAK,GAAG0T,aAAelE,WAAW6D,EAAOpH,iBAAiB,eAAiBuD,WAAW6D,EAAOpH,iBAAiB,kBAEvH,OAAOjM,KAAK,GAAG0T,aAEjB,OAAO,KAET,SAASC,SACP,GAAI3T,KAAKsB,OAAS,EAAG,CACnB,IAAI4N,EAAKlP,KAAK,GACV4T,EAAM1E,EAAG2E,wBACTlK,EAAOH,IAAIG,KACXmK,EAAY5E,EAAG4E,WAAanK,EAAKmK,WAAa,EAC9CC,EAAa7E,EAAG6E,YAAcpK,EAAKoK,YAAc,EACjDC,EAAY9E,IAAO5D,IAAMA,IAAI2I,QAAU/E,EAAG8E,UAC1CE,EAAahF,IAAO5D,IAAMA,IAAI6I,QAAUjF,EAAGgF,WAC/C,MAAO,CACLE,IAAMR,EAAIQ,IAAMJ,EAAaF,EAC7BO,KAAOT,EAAIS,KAAOH,EAAcH,GAIpC,OAAO,KAET,SAASO,OACP,IAAK,IAAItT,EAAI,EAAGA,EAAIhB,KAAKsB,OAAQN,GAAK,EACpChB,KAAKgB,GAAGyJ,MAAM8J,QAAU,OAE1B,OAAOvU,KAET,SAASwU,OACP,IAAK,IAAIxT,EAAI,EAAGA,EAAIhB,KAAKsB,OAAQN,GAAK,EAAG,CACvC,IAAIkO,EAAKlP,KAAKgB,GACW,SAArBkO,EAAGzE,MAAM8J,UACXrF,EAAGzE,MAAM8J,QAAU,IAE8C,SAA/DjJ,IAAIU,iBAAiBkD,EAAI,MAAMjD,iBAAiB,aAElDiD,EAAGzE,MAAM8J,QAAU,SAGvB,OAAOvU,KAET,SAASqT,SACP,OAAIrT,KAAK,GAAasL,IAAIU,iBAAiBhM,KAAK,GAAI,MAC7C,GAET,SAASkT,IAAIlE,EAAON,GAClB,IAAI1N,EACJ,GAAyB,IAArBiH,UAAU3G,OAAc,CAC1B,GAAqB,iBAAV0N,EAEJ,CACL,IAAKhO,EAAI,EAAGA,EAAIhB,KAAKsB,OAAQN,GAAK,EAEhC,IAAK,IAAIkG,KAAQ8H,EACfhP,KAAKgB,GAAGyJ,MAAMvD,GAAQ8H,EAAM9H,GAGhC,OAAOlH,KARP,GAAIA,KAAK,GAAM,OAAOsL,IAAIU,iBAAiBhM,KAAK,GAAI,MAAMiM,iBAAiB+C,GAW/E,GAAyB,IAArB/G,UAAU3G,QAAiC,iBAAV0N,EAAoB,CACvD,IAAKhO,EAAI,EAAGA,EAAIhB,KAAKsB,OAAQN,GAAK,EAChChB,KAAKgB,GAAGyJ,MAAMuE,GAASN,EAEzB,OAAO1O,KAET,OAAOA,KAIT,SAASyU,UAEP,IADA,IAAI9Q,EAAM,GACD3C,EAAI,EAAGA,EAAIhB,KAAKsB,OAAQN,GAAK,EACpC2C,EAAIjC,KAAK1B,KAAKgB,IAEhB,OAAO2C,EAGT,SAAS2C,KAAKkH,GAEZ,IAAKA,EAAY,OAAOxN,KAExB,IAAK,IAAIgB,EAAI,EAAGA,EAAIhB,KAAKsB,OAAQN,GAAK,EAEpC,IAA2C,IAAvCwM,EAAStH,KAAKlG,KAAKgB,GAAIA,EAAGhB,KAAKgB,IAEjC,OAAOhB,KAIX,OAAOA,KAET,SAAS+D,QAAQyJ,GAEf,IAAKA,EAAY,OAAOxN,KAExB,IAAK,IAAIgB,EAAI,EAAGA,EAAIhB,KAAKsB,OAAQN,GAAK,EAEpC,IAA2C,IAAvCwM,EAAStH,KAAKlG,KAAKgB,GAAIhB,KAAKgB,GAAIA,GAElC,OAAOhB,KAIX,OAAOA,KAET,SAAS0S,OAAOlF,GAGd,IAFA,IAAIkH,EAAe,GAEV1T,EAAI,EAAGA,EADNhB,KACcsB,OAAQN,GAAK,EAC/BwM,EAAStH,KAFLlG,KAEcgB,GAAIA,EAFlBhB,KAEyBgB,KAAO0T,EAAahT,KAF7C1B,KAEsDgB,IAEhE,OAAO,IAAIwL,KAAKkI,GAElB,SAASC,IAAInH,GAGX,IAFA,IAAIoH,EAAgB,GAEX5T,EAAI,EAAGA,EADNhB,KACcsB,OAAQN,GAAK,EACnC4T,EAAclT,KAAK8L,EAAStH,KAFpBlG,KAE6BgB,GAAIA,EAFjChB,KAEwCgB,KAElD,OAAO,IAAIwL,KAAKoI,GAGlB,SAAS/H,KAAKA,GACZ,QAAoB,IAATA,EACT,OAAO7M,KAAK,GAAKA,KAAK,GAAG+M,eAAY5M,EAGvC,IAAK,IAAIa,EAAI,EAAGA,EAAIhB,KAAKsB,OAAQN,GAAK,EACpChB,KAAKgB,GAAG+L,UAAYF,EAEtB,OAAO7M,KAGT,SAAS6U,KAAKA,GACZ,QAAoB,IAATA,EACT,OAAI7U,KAAK,GACAA,KAAK,GAAG8U,YAAY3T,OAEtB,KAGT,IAAK,IAAIH,EAAI,EAAGA,EAAIhB,KAAKsB,OAAQN,GAAK,EACpChB,KAAKgB,GAAG8T,YAAcD,EAExB,OAAO7U,KAET,SAASiR,GAAGvE,GACV,IACIqI,EACA/T,EAFAkO,EAAKlP,KAAK,GAGd,IAAKkP,QAA0B,IAAbxC,EAA4B,OAAO,EACrD,GAAwB,iBAAbA,EAAuB,CAChC,GAAIwC,EAAG8F,QAAW,OAAO9F,EAAG8F,QAAQtI,GAC/B,GAAIwC,EAAG+F,sBAAyB,OAAO/F,EAAG+F,sBAAsBvI,GAChE,GAAIwC,EAAGgG,kBAAqB,OAAOhG,EAAGgG,kBAAkBxI,GAG7D,IADAqI,EAActI,EAAEC,GACX1L,EAAI,EAAGA,EAAI+T,EAAYzT,OAAQN,GAAK,EACvC,GAAI+T,EAAY/T,KAAOkO,EAAM,OAAO,EAEtC,OAAO,EACF,GAAIxC,IAAalD,IAAO,OAAO0F,IAAO1F,IACxC,GAAIkD,IAAapB,IAAO,OAAO4D,IAAO5D,IAE3C,GAAIoB,EAASM,UAAYN,aAAoBF,KAAM,CAEjD,IADAuI,EAAcrI,EAASM,SAAW,CAACN,GAAYA,EAC1C1L,EAAI,EAAGA,EAAI+T,EAAYzT,OAAQN,GAAK,EACvC,GAAI+T,EAAY/T,KAAOkO,EAAM,OAAO,EAEtC,OAAO,EAET,OAAO,EAET,SAASvN,QAAQuN,GACf,IAAK,IAAIlO,EAAI,EAAGA,EAAIhB,KAAKsB,OAAQN,GAAK,EACpC,GAAIhB,KAAKgB,KAAOkO,EAAM,OAAOlO,EAE/B,OAAQ,EAEV,SAAS2F,QACP,IACI3F,EADAmU,EAAQnV,KAAK,GAEjB,GAAImV,EAAO,CAGT,IAFAnU,EAAI,EAEuC,QAAnCmU,EAAQA,EAAMC,kBACG,IAAnBD,EAAMnI,WAAkBhM,GAAK,GAEnC,OAAOA,GAKX,SAASqU,GAAG1O,GACV,QAAqB,IAAVA,EAAyB,OAAO3G,KAC3C,IACIsV,EADAhU,EAAStB,KAAKsB,OAElB,OACS,IAAIkL,KADT7F,EAAQrF,EAAS,EACH,GAEdqF,EAAQ,GACV2O,EAAchU,EAASqF,GACL,EAAqB,GACvB,CAAC3G,KAAKsV,IAER,CAACtV,KAAK2G,KAExB,SAAS4O,SAEP,IADA,IAGIC,EAHAzN,EAAO,GAAIC,EAAMC,UAAU3G,OACvB0G,KAAQD,EAAMC,GAAQC,UAAWD,GAIzC,IAAK,IAAImJ,EAAI,EAAGA,EAAIpJ,EAAKzG,OAAQ6P,GAAK,EAAG,CACvCqE,EAAWzN,EAAKoJ,GAChB,IAAK,IAAInQ,EAAI,EAAGA,EAAIhB,KAAKsB,OAAQN,GAAK,EACpC,GAAwB,iBAAbwU,EAAuB,CAChC,IAAIC,EAAUjM,IAAIc,cAAc,OAEhC,IADAmL,EAAQ1I,UAAYyI,EACbC,EAAQC,YACb1V,KAAKgB,GAAG2U,YAAYF,EAAQC,iBAEzB,GAAIF,aAAoBhJ,KAC7B,IAAK,IAAIvL,EAAI,EAAGA,EAAIuU,EAASlU,OAAQL,GAAK,EACxCjB,KAAKgB,GAAG2U,YAAYH,EAASvU,SAG/BjB,KAAKgB,GAAG2U,YAAYH,GAK1B,OAAOxV,KAGT,SAAS4V,SAASC,GAEhB,OADApJ,EAAEoJ,GAAQN,OAAOvV,MACVA,KAET,SAAS8V,QAAQN,GACf,IAAIxU,EACAC,EACJ,IAAKD,EAAI,EAAGA,EAAIhB,KAAKsB,OAAQN,GAAK,EAChC,GAAwB,iBAAbwU,EAAuB,CAChC,IAAIC,EAAUjM,IAAIc,cAAc,OAEhC,IADAmL,EAAQ1I,UAAYyI,EACfvU,EAAIwU,EAAQjL,WAAWlJ,OAAS,EAAGL,GAAK,EAAGA,GAAK,EACnDjB,KAAKgB,GAAG+U,aAAaN,EAAQjL,WAAWvJ,GAAIjB,KAAKgB,GAAGwJ,WAAW,SAE5D,GAAIgL,aAAoBhJ,KAC7B,IAAKvL,EAAI,EAAGA,EAAIuU,EAASlU,OAAQL,GAAK,EACpCjB,KAAKgB,GAAG+U,aAAaP,EAASvU,GAAIjB,KAAKgB,GAAGwJ,WAAW,SAGvDxK,KAAKgB,GAAG+U,aAAaP,EAAUxV,KAAKgB,GAAGwJ,WAAW,IAGtD,OAAOxK,KAGT,SAASgW,UAAUH,GAEjB,OADApJ,EAAEoJ,GAAQC,QAAQ9V,MACXA,KAET,SAAS+V,aAAarJ,GAEpB,IADA,IAAIuJ,EAASxJ,EAAEC,GACN1L,EAAI,EAAGA,EAAIhB,KAAKsB,OAAQN,GAAK,EACpC,GAAsB,IAAlBiV,EAAO3U,OACT2U,EAAO,GAAGC,WAAWH,aAAa/V,KAAKgB,GAAIiV,EAAO,SAC7C,GAAIA,EAAO3U,OAAS,EACzB,IAAK,IAAIL,EAAI,EAAGA,EAAIgV,EAAO3U,OAAQL,GAAK,EACtCgV,EAAOhV,GAAGiV,WAAWH,aAAa/V,KAAKgB,GAAGmV,WAAU,GAAOF,EAAOhV,IAK1E,SAASmV,YAAY1J,GAEnB,IADA,IAAI2J,EAAQ5J,EAAEC,GACL1L,EAAI,EAAGA,EAAIhB,KAAKsB,OAAQN,GAAK,EACpC,GAAqB,IAAjBqV,EAAM/U,OACR+U,EAAM,GAAGH,WAAWH,aAAa/V,KAAKgB,GAAIqV,EAAM,GAAGC,kBAC9C,GAAID,EAAM/U,OAAS,EACxB,IAAK,IAAIL,EAAI,EAAGA,EAAIoV,EAAM/U,OAAQL,GAAK,EACrCoV,EAAMpV,GAAGiV,WAAWH,aAAa/V,KAAKgB,GAAGmV,WAAU,GAAOE,EAAMpV,GAAGqV,aAK3E,SAASC,KAAK7J,GACZ,OAAI1M,KAAKsB,OAAS,EACZoL,EACE1M,KAAK,GAAGwW,oBAAsB/J,EAAEzM,KAAK,GAAGwW,oBAAoBvF,GAAGvE,GAC1D,IAAIF,KAAK,CAACxM,KAAK,GAAGwW,qBAEpB,IAAIhK,KAAK,IAGdxM,KAAK,GAAGwW,mBAA6B,IAAIhK,KAAK,CAACxM,KAAK,GAAGwW,qBACpD,IAAIhK,KAAK,IAEX,IAAIA,KAAK,IAElB,SAASiK,QAAQ/J,GACf,IAAIgK,EAAU,GACVxH,EAAKlP,KAAK,GACd,IAAKkP,EAAM,OAAO,IAAI1C,KAAK,IAC3B,KAAO0C,EAAGsH,oBAAoB,CAC5B,IAAID,EAAOrH,EAAGsH,mBACV9J,EACED,EAAE8J,GAAMtF,GAAGvE,IAAagK,EAAQhV,KAAK6U,GAClCG,EAAQhV,KAAK6U,GACtBrH,EAAKqH,EAEP,OAAO,IAAI/J,KAAKkK,GAElB,SAASC,KAAKjK,GACZ,GAAI1M,KAAKsB,OAAS,EAAG,CACnB,IAAI4N,EAAKlP,KAAK,GACd,OAAI0M,EACEwC,EAAG0H,wBAA0BnK,EAAEyC,EAAG0H,wBAAwB3F,GAAGvE,GACxD,IAAIF,KAAK,CAAC0C,EAAG0H,yBAEf,IAAIpK,KAAK,IAGd0C,EAAG0H,uBAAiC,IAAIpK,KAAK,CAAC0C,EAAG0H,yBAC9C,IAAIpK,KAAK,IAElB,OAAO,IAAIA,KAAK,IAElB,SAASqK,QAAQnK,GACf,IAAIoK,EAAU,GACV5H,EAAKlP,KAAK,GACd,IAAKkP,EAAM,OAAO,IAAI1C,KAAK,IAC3B,KAAO0C,EAAG0H,wBAAwB,CAChC,IAAID,EAAOzH,EAAG0H,uBACVlK,EACED,EAAEkK,GAAM1F,GAAGvE,IAAaoK,EAAQpV,KAAKiV,GAClCG,EAAQpV,KAAKiV,GACtBzH,EAAKyH,EAEP,OAAO,IAAInK,KAAKsK,GAElB,SAASC,SAASrK,GAChB,OAAO1M,KAAKyW,QAAQ/J,GAAUuB,IAAIjO,KAAK6W,QAAQnK,IAEjD,SAASmJ,OAAOnJ,GAEd,IADA,IAAIrI,EAAU,GACLrD,EAAI,EAAGA,EAAIhB,KAAKsB,OAAQN,GAAK,EACT,OAAvBhB,KAAKgB,GAAGkV,aACNxJ,EACED,EAAEzM,KAAKgB,GAAGkV,YAAYjF,GAAGvE,IAAarI,EAAQ3C,KAAK1B,KAAKgB,GAAGkV,YAE/D7R,EAAQ3C,KAAK1B,KAAKgB,GAAGkV,aAI3B,OAAOzJ,EAAEQ,OAAO5I,IAElB,SAASA,QAAQqI,GAEf,IADA,IAAIrI,EAAU,GACLrD,EAAI,EAAGA,EAAIhB,KAAKsB,OAAQN,GAAK,EAEpC,IADA,IAAI6U,EAAS7V,KAAKgB,GAAGkV,WACdL,GACDnJ,EACED,EAAEoJ,GAAQ5E,GAAGvE,IAAarI,EAAQ3C,KAAKmU,GAE3CxR,EAAQ3C,KAAKmU,GAEfA,EAASA,EAAOK,WAGpB,OAAOzJ,EAAEQ,OAAO5I,IAElB,SAAS2S,QAAQtK,GACf,IAAIsK,EAAUhX,KACd,YAAwB,IAAb0M,EACF,IAAIF,KAAK,KAEbwK,EAAQ/F,GAAGvE,KACdsK,EAAUA,EAAQ3S,QAAQqI,GAAU2I,GAAG,IAElC2B,GAET,SAASC,KAAKvK,GAEZ,IADA,IAAIwK,EAAgB,GACXlW,EAAI,EAAGA,EAAIhB,KAAKsB,OAAQN,GAAK,EAEpC,IADA,IAAImW,EAAQnX,KAAKgB,GAAGkJ,iBAAiBwC,GAC5BzL,EAAI,EAAGA,EAAIkW,EAAM7V,OAAQL,GAAK,EACrCiW,EAAcxV,KAAKyV,EAAMlW,IAG7B,OAAO,IAAIuL,KAAK0K,GAElB,SAAS3M,SAASmC,GAEhB,IADA,IAAInC,EAAW,GACNvJ,EAAI,EAAGA,EAAIhB,KAAKsB,OAAQN,GAAK,EAGpC,IAFA,IAAIwJ,EAAaxK,KAAKgB,GAAGwJ,WAEhBvJ,EAAI,EAAGA,EAAIuJ,EAAWlJ,OAAQL,GAAK,EACrCyL,EAEiC,IAA3BlC,EAAWvJ,GAAG+L,UAAkBP,EAAEjC,EAAWvJ,IAAIgQ,GAAGvE,IAC7DnC,EAAS7I,KAAK8I,EAAWvJ,IAFM,IAA3BuJ,EAAWvJ,GAAG+L,UAAkBzC,EAAS7I,KAAK8I,EAAWvJ,IAMnE,OAAO,IAAIuL,KAAKS,OAAO1C,IAEzB,SAAS4D,SACP,IAAK,IAAInN,EAAI,EAAGA,EAAIhB,KAAKsB,OAAQN,GAAK,EAChChB,KAAKgB,GAAGkV,YAAclW,KAAKgB,GAAGkV,WAAWkB,YAAYpX,KAAKgB,IAEhE,OAAOhB,KAET,SAASqX,SACP,OAAOrX,KAAKmO,SAEd,SAASF,MAEP,IADA,IAAIlG,EAAO,GAAIC,EAAMC,UAAU3G,OACvB0G,KAAQD,EAAMC,GAAQC,UAAWD,GAEzC,IACIhH,EACAC,EAFAgR,EAAMjS,KAGV,IAAKgB,EAAI,EAAGA,EAAI+G,EAAKzG,OAAQN,GAAK,EAAG,CACnC,IAAIsW,EAAQ7K,EAAE1E,EAAK/G,IACnB,IAAKC,EAAI,EAAGA,EAAIqW,EAAMhW,OAAQL,GAAK,EACjCgR,EAAIA,EAAI3Q,QAAUgW,EAAMrW,GACxBgR,EAAI3Q,QAAU,EAGlB,OAAO2Q,EAET,SAASsF,QACP,IAAK,IAAIvW,EAAI,EAAGA,EAAIhB,KAAKsB,OAAQN,GAAK,EAAG,CACvC,IAAIkO,EAAKlP,KAAKgB,GACd,GAAoB,IAAhBkO,EAAGlC,SAAgB,CACrB,IAAK,IAAI/L,EAAI,EAAGA,EAAIiO,EAAG1E,WAAWlJ,OAAQL,GAAK,EACzCiO,EAAG1E,WAAWvJ,GAAGiV,YACnBhH,EAAG1E,WAAWvJ,GAAGiV,WAAWkB,YAAYlI,EAAG1E,WAAWvJ,IAG1DiO,EAAG4F,YAAc,IAGrB,OAAO9U,KA55BTyM,EAAEtG,GAAKqG,KAAK/D,UACZgE,EAAE+K,MAAQhL,KACVC,EAAED,KAAOA,KA65BT,IAAIiL,QAAuBvT,OAAOwT,OAAO,CACvC7J,SAAUA,SACVK,YAAaA,YACbE,SAAUA,SACVE,YAAaA,YACbE,KAAMA,KACNM,WAAYA,WACZ5H,KAAMA,KACNxC,KAAMA,KACN2K,WAAYA,WACZC,QAASA,QACTG,IAAKA,IACLM,UAAWA,UACXG,WAAYA,WACZI,GAAIA,GACJqB,IAAKA,IACLK,KAAMA,KACNK,QAASA,QACTQ,cAAeA,cACfE,aAAcA,aACdC,MAAOA,MACPG,WAAYA,WACZI,OAAQA,OACRE,YAAaA,YACbE,OAAQA,OACRW,KAAMA,KACNE,KAAMA,KACNnB,OAAQA,OACRH,IAAKA,IACLuB,QAASA,QACTnO,KAAMA,KACNvC,QAASA,QACT2O,OAAQA,OACRiC,IAAKA,IACL9H,KAAMA,KACNgI,KAAMA,KACN5D,GAAIA,GACJtP,QAASA,QACTgF,MAAOA,MACP0O,GAAIA,GACJE,OAAQA,OACRK,SAAUA,SACVE,QAASA,QACTE,UAAWA,UACXD,aAAcA,aACdK,YAAaA,YACbG,KAAMA,KACNE,QAASA,QACTE,KAAMA,KACNE,QAASA,QACTE,SAAUA,SACVlB,OAAQA,OACRxR,QAASA,QACT2S,QAASA,QACTC,KAAMA,KACN1M,SAAUA,SACV4D,OAAQA,OACRkJ,OAAQA,OACRpJ,IAAKA,IACLsJ,MAAOA,QAGT,SAASI,WAIP,IAHA,IAAIpH,EAEAxI,EAAO,GAAIC,EAAMC,UAAU3G,OACvB0G,KAAQD,EAAMC,GAAQC,UAAWD,GACzC,IAAIqM,EAAOtM,EAAK,GACZqM,EAAMrM,EAAK,GACXoI,EAAWpI,EAAK,GAChB6P,EAAS7P,EAAK,GACdyF,EAAWzF,EAAK,GAOpB,OANoB,IAAhBA,EAAKzG,QAAkC,mBAAXsW,IAC9BpK,EAAWoK,EACKvD,GAAf9D,EAASxI,GAAoB,GAAIqM,EAAM7D,EAAO,GAAIJ,EAAWI,EAAO,GAAI/C,EAAW+C,EAAO,GAAIqH,EAASrH,EAAO,SAE3F,IAAXqH,IAA0BA,EAAS,SAEvC5X,KAAKsG,MAAK,WACf,IACIuR,EACAC,EACAC,EACAC,EACAC,EACAC,EACAlE,EACAE,EARAhF,EAAKlP,KASLmY,EAAa/D,EAAM,GAAa,IAARA,EACxBgE,EAAc/D,EAAO,GAAc,IAATA,EAgB9B,QAfsB,IAAXuD,IACTA,EAAS,SAEPO,IACFN,EAAa3I,EAAG8E,UACX7D,IACHjB,EAAG8E,UAAYI,IAGfgE,IACFN,EAAc5I,EAAGgF,WACZ/D,IACHjB,EAAGgF,WAAaG,IAGflE,EAAL,CACIgI,IACFJ,EAAS7I,EAAGmJ,aAAenJ,EAAGwE,aAC9BuE,EAASK,KAAKC,IAAID,KAAKE,IAAIpE,EAAK2D,GAAS,IAEvCK,IACFJ,EAAU9I,EAAGuJ,YAAcvJ,EAAGoE,YAC9B4E,EAAUI,KAAKC,IAAID,KAAKE,IAAInE,EAAM2D,GAAU,IAE9C,IAAIU,EAAY,KACZP,GAAcF,IAAWJ,IAAcM,GAAa,GACpDC,GAAeF,IAAYJ,IAAeM,GAAc,GAqC5D7K,uBApCA,SAASoL,EAAOC,QACA,IAATA,IAAkBA,GAAO,IAAIzM,MAAO0M,WAEvB,OAAdH,IACFA,EAAYE,GAEd,IAEIE,EAFAC,EAAWT,KAAKC,IAAID,KAAKE,KAAKI,EAAOF,GAAavI,EAAU,GAAI,GAChE6I,EAA0B,WAAXpB,EAAsBmB,EAAY,GAAOT,KAAKW,IAAIF,EAAWT,KAAKY,IAAM,EAEvFf,IAAcnE,EAAY6D,EAAcmB,GAAgBf,EAASJ,IACjEO,IAAelE,EAAa4D,EAAekB,GAAgBd,EAAUJ,IACrEK,GAAcF,EAASJ,GAAc7D,GAAaiE,IACpD/I,EAAG8E,UAAYiE,EACfa,GAAO,GAELX,GAAcF,EAASJ,GAAc7D,GAAaiE,IACpD/I,EAAG8E,UAAYiE,EACfa,GAAO,GAELV,GAAeF,EAAUJ,GAAe5D,GAAcgE,IACxDhJ,EAAGgF,WAAagE,EAChBY,GAAO,GAELV,GAAeF,EAAUJ,GAAe5D,GAAcgE,IACxDhJ,EAAGgF,WAAagE,EAChBY,GAAO,GAGLA,EACEtL,GAAYA,KAGd2K,IAAcjJ,EAAG8E,UAAYA,GAC7BoE,IAAelJ,EAAGgF,WAAaA,GACnC3G,sBAAsBoL,WAM5B,SAAS3E,YAIP,IAHA,IAAIzD,EAEAxI,EAAO,GAAIC,EAAMC,UAAU3G,OACvB0G,KAAQD,EAAMC,GAAQC,UAAWD,GACzC,IAAIoM,EAAMrM,EAAK,GACXoI,EAAWpI,EAAK,GAChB6P,EAAS7P,EAAK,GACdyF,EAAWzF,EAAK,GACA,IAAhBA,EAAKzG,QAAkC,mBAAXsW,IACdxD,GAAf7D,EAASxI,GAAmB,GAAIoI,EAAWI,EAAO,GAAI/C,EAAW+C,EAAO,GAAIqH,EAASrH,EAAO,IAE/F,IAAI0B,EAAMjS,KACV,YAAmB,IAARoU,EACLnC,EAAI3Q,OAAS,EAAY2Q,EAAI,GAAG+B,UAC7B,KAEF/B,EAAI0F,cAASxX,EAAWiU,EAAKjE,EAAUyH,EAAQpK,GAExD,SAAS0G,aAIP,IAHA,IAAI3D,EAEAxI,EAAO,GAAIC,EAAMC,UAAU3G,OACvB0G,KAAQD,EAAMC,GAAQC,UAAWD,GACzC,IAAIqM,EAAOtM,EAAK,GACZoI,EAAWpI,EAAK,GAChB6P,EAAS7P,EAAK,GACdyF,EAAWzF,EAAK,GACA,IAAhBA,EAAKzG,QAAkC,mBAAXsW,IACdvD,GAAf9D,EAASxI,GAAoB,GAAIoI,EAAWI,EAAO,GAAI/C,EAAW+C,EAAO,GAAIqH,EAASrH,EAAO,IAEhG,IAAI0B,EAAMjS,KACV,YAAoB,IAATqU,EACLpC,EAAI3Q,OAAS,EAAY2Q,EAAI,GAAGiC,WAC7B,KAEFjC,EAAI0F,SAAStD,OAAMlU,EAAWgQ,EAAUyH,EAAQpK,GAGzD,IAAI2L,OAAsBjV,OAAOwT,OAAO,CACtCC,SAAUA,SACV3D,UAAWA,UACXE,WAAYA,aAGd,SAASkF,QAAQC,EAAcC,GAC7B,IA+JIC,EA/JA5M,EAAM3M,KACNwZ,EAAI,CACNxK,MAAO9K,OAAOqM,OAAO,GAAI8I,GACzBI,OAAQvV,OAAOqM,OAAO,CACpBJ,SAAU,IACVyH,OAAQ,SAMP0B,GAEHI,SAAU/M,EACVgN,WAAW,EACXC,IAAK,GAELC,eAAgB,SAAwBjC,EAAQmB,GAC9C,MAAe,UAAXnB,EACK,GAAOU,KAAKW,IAAIF,EAAWT,KAAKY,IAAM,EAEzB,mBAAXtB,EACFA,EAAOmB,GAETA,GAETe,KAAM,WACAN,EAAEO,SACJrM,qBAAqB8L,EAAEO,SAEzBP,EAAEG,WAAY,EACdH,EAAEE,SAASpT,MAAK,SAAUK,EAAOuI,UACjBA,EACC8K,uBAEjBR,EAAEI,IAAM,IAEVd,KAAM,SAAcmB,GAOlB,GANAT,EAAEG,WAAY,EACdH,EAAEE,SAASpT,MAAK,SAAUK,EAAOuI,UACjBA,EACC8K,uBAEbC,GAAYA,EAAStN,GACrB6M,EAAEI,IAAItY,OAAS,EAAG,CACpB,IAAIsY,EAAMJ,EAAEI,IAAIM,QAChBV,EAAEJ,QAAQQ,EAAI,GAAIA,EAAI,MAG1BR,QAAS,SAAiBpK,EAAOyK,GAC/B,GAAID,EAAEG,UAEJ,OADAH,EAAEI,IAAIlY,KAAK,CAACsN,EAAOyK,IACZD,EAET,IAAIE,EAAW,GAGfF,EAAEE,SAASpT,MAAK,SAAUK,EAAOuI,GAC/B,IAAIiL,EACAC,EACAC,EACAC,EACAC,EAECrL,EAAG8K,sBAAuBR,EAAEE,SAAS/S,GAAOqT,oBAAsBR,GAEvEE,EAAS/S,GAAS,CAChB6T,UAAWtL,GAEbhL,OAAO2B,KAAKmJ,GAAOjL,SAAQ,SAAUmD,GACnCiT,EAAmB7O,IAAIU,iBAAiBkD,EAAI,MAAMjD,iBAAiB/E,GAAMrG,QAAQ,IAAK,KACtFuZ,EAAe5K,WAAW2K,GAC1BE,EAAOF,EAAiBtZ,QAAQuZ,EAAc,IAC9CE,EAAa9K,WAAWR,EAAM9H,IAC9BqT,EAAiBvL,EAAM9H,GAAQmT,EAC/BX,EAAS/S,GAAOO,GAAQ,CACtBiT,iBAAkBA,EAClBC,aAAcA,EACdC,KAAMA,EACNC,WAAYA,EACZC,eAAgBA,EAChBE,aAAcL,SAKpB,IACIxB,EAGAE,EAJAJ,EAAY,KAEZgC,EAAe,EACfC,EAAY,EAEZC,GAAQ,EA4DZ,OA1DApB,EAAEG,WAAY,EAyDdH,EAAEO,QAAUxM,uBAvDZ,SAASoL,IAEP,IAAII,EACAC,EAFJJ,GAAO,IAAIzM,MAAO0M,UAIb+B,IACHA,GAAQ,EACJnB,EAAOoB,OAASpB,EAAOoB,MAAMlO,IAEjB,OAAd+L,IACFA,EAAYE,GAEVa,EAAOV,UAETU,EAAOV,SAASpM,EAAK2L,KAAKC,IAAID,KAAKE,KAAKI,EAAOF,GAAae,EAAOtJ,SAAU,GAAI,GAAMuI,EAAYe,EAAOtJ,SAAYyI,EAAO,EAAI,EAAKF,EAAYe,EAAOtJ,SAAYyI,EAAOF,GAG9KgB,EAAS3V,SAAQ,SAAU+W,GACzB,IAAI5L,EAAK4L,EACLhC,GAAQ5J,EAAG4J,MACf5U,OAAO2B,KAAKmJ,GAAOjL,SAAQ,SAAUmD,GACnC,IAAI4R,IAAQ5J,EAAG4J,KAAf,CACAC,EAAWT,KAAKC,IAAID,KAAKE,KAAKI,EAAOF,GAAae,EAAOtJ,SAAU,GAAI,GACvE6I,EAAeQ,EAAEK,eAAeJ,EAAO7B,OAAQmB,GAC/C,IAAIgC,EAAM7L,EAAGhI,GACTkT,EAAeW,EAAIX,aACnBE,EAAaS,EAAIT,WACjBD,EAAOU,EAAIV,KACfnL,EAAGhI,GAAMuT,aAAeL,EAAgBpB,GAAgBsB,EAAaF,GACrE,IAAIK,EAAevL,EAAGhI,GAAMuT,cAGzBH,EAAaF,GAAgBK,GAAgBH,GAC7CA,EAAaF,GAAgBK,GAAgBH,KAC9CpL,EAAGsL,UAAU/P,MAAMvD,GAAQoT,EAAaD,GACxCM,GAAa,KACKzW,OAAO2B,KAAKmJ,GAAO1N,SACnC4N,EAAG4J,MAAO,EACV4B,GAAgB,GAEdA,IAAiBhB,EAASpY,SAC5BwX,GAAO,IAGPA,EACFU,EAAEV,KAAKW,EAAOQ,UAGhB/K,EAAGsL,UAAU/P,MAAMvD,GAAQuT,EAAeJ,SAG1CvB,IAEJU,EAAEO,QAAUxM,sBAAsBoL,OAG7Ba,IAIX,GAA0B,IAAtBA,EAAEE,SAASpY,OACb,OAAOqL,EAIT,IAAK,IAAI3L,EAAI,EAAGA,EAAIwY,EAAEE,SAASpY,OAAQN,GAAK,EACtCwY,EAAEE,SAAS1Y,GAAGgZ,oBAChBT,EAAkBC,EAAEE,SAAS1Y,GAAGgZ,oBACzBR,EAAEE,SAAS1Y,GAAGgZ,oBAAsBR,EAY/C,OAVKD,IACHA,EAAkBC,GAGC,SAAjBH,EACFE,EAAgBO,OAEhBP,EAAgBH,QAAQI,EAAExK,MAAOwK,EAAEC,QAG9B9M,EAGT,SAASmN,OAEP,IADA,IACS9Y,EAAI,EAAGA,EADNhB,KACcsB,OAAQN,GAAK,EAD3BhB,KAEAgB,GAAGgZ,qBAFHha,KAGFgB,GAAGgZ,oBAAoBF,OAKjC,IAAIkB,QAAuB9W,OAAOwT,OAAO,CACvC0B,QAASA,QACTU,KAAMA,OAGJmB,UAAY,gBAAkB7Z,MAAM,KACxC,SAAS8Z,cAAc1W,GAIrB,IAHA,IAAIuW,EAEAhT,EAAO,GAAIC,EAAMC,UAAU3G,OAAS,EAChC0G,KAAQ,GAAID,EAAMC,GAAQC,UAAWD,EAAM,GACnD,QAAuB,IAAZD,EAAK,GAAoB,CAClC,IAAK,IAAI/G,EAAI,EAAGA,EAAIhB,KAAKsB,OAAQN,GAAK,EAChCia,UAAUtZ,QAAQ6C,GAAQ,IACxBA,KAAQxE,KAAKgB,GAAMhB,KAAKgB,GAAGwD,KAE7BiI,EAAEzM,KAAKgB,IAAIqR,QAAQ7N,IAIzB,OAAOxE,KAET,OAAQ+a,EAAM/a,MAAMsQ,GAAGY,MAAM6J,EAAK,CAAEvW,GAAO2W,OAAQpT,IAGrD,SAASqT,QAEP,IADA,IAAIrT,EAAO,GAAIC,EAAMC,UAAU3G,OACvB0G,KAAQD,EAAMC,GAAQC,UAAWD,GAEzC,OAAOkT,cAAcG,KAAKrb,MAAMkR,WAAM,EAAQ,CAAE,SAAUiK,OAAQpT,IAEpE,SAASgC,OAEP,IADA,IAAIhC,EAAO,GAAIC,EAAMC,UAAU3G,OACvB0G,KAAQD,EAAMC,GAAQC,UAAWD,GAEzC,OAAOkT,cAAcG,KAAKrb,MAAMkR,WAAM,EAAQ,CAAE,QAASiK,OAAQpT,IAEnE,SAASuT,QAEP,IADA,IAAIvT,EAAO,GAAIC,EAAMC,UAAU3G,OACvB0G,KAAQD,EAAMC,GAAQC,UAAWD,GAEzC,OAAOkT,cAAcG,KAAKrb,MAAMkR,WAAM,EAAQ,CAAE,SAAUiK,OAAQpT,IAEpE,SAASwT,UAEP,IADA,IAAIxT,EAAO,GAAIC,EAAMC,UAAU3G,OACvB0G,KAAQD,EAAMC,GAAQC,UAAWD,GAEzC,OAAOkT,cAAcG,KAAKrb,MAAMkR,WAAM,EAAQ,CAAE,WAAYiK,OAAQpT,IAEtE,SAASyT,WAEP,IADA,IAAIzT,EAAO,GAAIC,EAAMC,UAAU3G,OACvB0G,KAAQD,EAAMC,GAAQC,UAAWD,GAEzC,OAAOkT,cAAcG,KAAKrb,MAAMkR,WAAM,EAAQ,CAAE,YAAaiK,OAAQpT,IAEvE,SAAS0T,QAEP,IADA,IAAI1T,EAAO,GAAIC,EAAMC,UAAU3G,OACvB0G,KAAQD,EAAMC,GAAQC,UAAWD,GAEzC,OAAOkT,cAAcG,KAAKrb,MAAMkR,WAAM,EAAQ,CAAE,SAAUiK,OAAQpT,IAEpE,SAAS2T,UAEP,IADA,IAAI3T,EAAO,GAAIC,EAAMC,UAAU3G,OACvB0G,KAAQD,EAAMC,GAAQC,UAAWD,GAEzC,OAAOkT,cAAcG,KAAKrb,MAAMkR,WAAM,EAAQ,CAAE,WAAYiK,OAAQpT,IAEtE,SAAS4T,WAEP,IADA,IAAI5T,EAAO,GAAIC,EAAMC,UAAU3G,OACvB0G,KAAQD,EAAMC,GAAQC,UAAWD,GAEzC,OAAOkT,cAAcG,KAAKrb,MAAMkR,WAAM,EAAQ,CAAE,YAAaiK,OAAQpT,IAEvE,SAAS6T,SAEP,IADA,IAAI7T,EAAO,GAAIC,EAAMC,UAAU3G,OACvB0G,KAAQD,EAAMC,GAAQC,UAAWD,GAEzC,OAAOkT,cAAcG,KAAKrb,MAAMkR,WAAM,EAAQ,CAAE,UAAWiK,OAAQpT,IAErE,SAAS8T,SAEP,IADA,IAAI9T,EAAO,GAAIC,EAAMC,UAAU3G,OACvB0G,KAAQD,EAAMC,GAAQC,UAAWD,GAEzC,OAAOkT,cAAcG,KAAKrb,MAAMkR,WAAM,EAAQ,CAAE,UAAWiK,OAAQpT,IAErE,SAAS+T,YAEP,IADA,IAAI/T,EAAO,GAAIC,EAAMC,UAAU3G,OACvB0G,KAAQD,EAAMC,GAAQC,UAAWD,GAEzC,OAAOkT,cAAcG,KAAKrb,MAAMkR,WAAM,EAAQ,CAAE,aAAciK,OAAQpT,IAExE,SAASgU,YAEP,IADA,IAAIhU,EAAO,GAAIC,EAAMC,UAAU3G,OACvB0G,KAAQD,EAAMC,GAAQC,UAAWD,GAEzC,OAAOkT,cAAcG,KAAKrb,MAAMkR,WAAM,EAAQ,CAAE,aAAciK,OAAQpT,IAExE,SAASiU,UAEP,IADA,IAAIjU,EAAO,GAAIC,EAAMC,UAAU3G,OACvB0G,KAAQD,EAAMC,GAAQC,UAAWD,GAEzC,OAAOkT,cAAcG,KAAKrb,MAAMkR,WAAM,EAAQ,CAAE,WAAYiK,OAAQpT,IAEtE,SAASkU,aAEP,IADA,IAAIlU,EAAO,GAAIC,EAAMC,UAAU3G,OACvB0G,KAAQD,EAAMC,GAAQC,UAAWD,GAEzC,OAAOkT,cAAcG,KAAKrb,MAAMkR,WAAM,EAAQ,CAAE,cAAeiK,OAAQpT,IAEzE,SAASmU,aAEP,IADA,IAAInU,EAAO,GAAIC,EAAMC,UAAU3G,OACvB0G,KAAQD,EAAMC,GAAQC,UAAWD,GAEzC,OAAOkT,cAAcG,KAAKrb,MAAMkR,WAAM,EAAQ,CAAE,cAAeiK,OAAQpT,IAEzE,SAASoU,WAEP,IADA,IAAIpU,EAAO,GAAIC,EAAMC,UAAU3G,OACvB0G,KAAQD,EAAMC,GAAQC,UAAWD,GAEzC,OAAOkT,cAAcG,KAAKrb,MAAMkR,WAAM,EAAQ,CAAE,YAAaiK,OAAQpT,IAEvE,SAASqU,YAEP,IADA,IAAIrU,EAAO,GAAIC,EAAMC,UAAU3G,OACvB0G,KAAQD,EAAMC,GAAQC,UAAWD,GAEzC,OAAOkT,cAAcG,KAAKrb,MAAMkR,WAAM,EAAQ,CAAE,aAAciK,OAAQpT,IAExE,SAASsU,aAEP,IADA,IAAItU,EAAO,GAAIC,EAAMC,UAAU3G,OACvB0G,KAAQD,EAAMC,GAAQC,UAAWD,GAEzC,OAAOkT,cAAcG,KAAKrb,MAAMkR,WAAM,EAAQ,CAAE,cAAeiK,OAAQpT,IAEzE,SAASuU,WAEP,IADA,IAAIvU,EAAO,GAAIC,EAAMC,UAAU3G,OACvB0G,KAAQD,EAAMC,GAAQC,UAAWD,GAEzC,OAAOkT,cAAcG,KAAKrb,MAAMkR,WAAM,EAAQ,CAAE,YAAaiK,OAAQpT,IAEvE,SAASwU,YAEP,IADA,IAAIxU,EAAO,GAAIC,EAAMC,UAAU3G,OACvB0G,KAAQD,EAAMC,GAAQC,UAAWD,GAEzC,OAAOkT,cAAcG,KAAKrb,MAAMkR,WAAM,EAAQ,CAAE,aAAciK,OAAQpT,IAExE,SAASyU,SAEP,IADA,IAAIzU,EAAO,GAAIC,EAAMC,UAAU3G,OACvB0G,KAAQD,EAAMC,GAAQC,UAAWD,GAEzC,OAAOkT,cAAcG,KAAKrb,MAAMkR,WAAM,EAAQ,CAAE,UAAWiK,OAAQpT,IAErE,SAAS0U,SAEP,IADA,IAAI1U,EAAO,GAAIC,EAAMC,UAAU3G,OACvB0G,KAAQD,EAAMC,GAAQC,UAAWD,GAEzC,OAAOkT,cAAcG,KAAKrb,MAAMkR,WAAM,EAAQ,CAAE,UAAWiK,OAAQpT,IAGrE,IAAI2U,eAA8BxY,OAAOwT,OAAO,CAC9C0D,MAAOA,MACPrR,KAAMA,KACNuR,MAAOA,MACPC,QAASA,QACTC,SAAUA,SACVC,MAAOA,MACPC,QAASA,QACTC,SAAUA,SACVC,OAAQA,OACRC,OAAQA,OACRC,UAAWA,UACXC,UAAWA,UACXC,QAASA,QACTC,WAAYA,WACZC,WAAYA,WACZC,SAAUA,SACVC,UAAWA,UACXC,WAAYA,WACZC,SAAUA,SACVC,UAAWA,UACXC,OAAQA,OACRC,OAAQA,SAGV,CAAChF,QAAS0B,OAAQ6B,QAAS0B,gBAAgB3Y,SAAQ,SAAU4Y,GAC3DzY,OAAO2B,KAAK8W,GAAO5Y,SAAQ,SAAU6Y,GACnCnQ,EAAEtG,GAAGyW,GAAcD,EAAMC,SAgG7B,IAzFA,IAAIC,2BAA6B,CAC/B,CAAEC,KAAM,IAAKC,QAAS,sCACtB,CAAED,KAAM,KAAMC,QAAS,KACvB,CAAED,KAAM,KAAMC,QAAS,OACvB,CAAED,KAAM,KAAMC,QAAS,KACvB,CAAED,KAAM,KAAMC,QAAS,KACvB,CAAED,KAAM,KAAMC,QAAS,MACvB,CAAED,KAAM,KAAMC,QAAS,KACvB,CAAED,KAAM,IAAKC,QAAS,aACtB,CAAED,KAAM,IAAKC,QAAS,gBACtB,CAAED,KAAM,IAAKC,QAAS,kBACtB,CAAED,KAAM,KAAMC,QAAS,MACvB,CAAED,KAAM,KAAMC,QAAS,MACvB,CAAED,KAAM,IAAKC,QAAS,kCACtB,CAAED,KAAM,IAAKC,QAAS,UACtB,CAAED,KAAM,IAAKC,QAAS,mBACtB,CAAED,KAAM,IAAKC,QAAS,kBACtB,CAAED,KAAM,IAAKC,QAAS,wBACtB,CAAED,KAAM,IAAKC,QAAS,SACtB,CAAED,KAAM,IAAKC,QAAS,kBACtB,CAAED,KAAM,IAAKC,QAAS,sBACtB,CAAED,KAAM,KAAMC,QAAS,KACvB,CAAED,KAAM,KAAMC,QAAS,KACvB,CAAED,KAAM,IAAKC,QAAS,YACtB,CAAED,KAAM,IAAKC,QAAS,oBACtB,CAAED,KAAM,KAAMC,QAAS,KACvB,CAAED,KAAM,KAAMC,QAAS,KACvB,CAAED,KAAM,IAAKC,QAAS,+CACtB,CAAED,KAAM,KAAMC,QAAS,KACvB,CAAED,KAAM,KAAMC,QAAS,KACvB,CAAED,KAAM,KAAMC,QAAS,KACvB,CAAED,KAAM,KAAMC,QAAS,MACvB,CAAED,KAAM,KAAMC,QAAS,MACvB,CAAED,KAAM,IAAKC,QAAS,cACtB,CAAED,KAAM,IAAKC,QAAS,UACtB,CAAED,KAAM,IAAKC,QAAS,qBACtB,CAAED,KAAM,IAAKC,QAAS,qBACtB,CAAED,KAAM,IAAKC,QAAS,mBACtB,CAAED,KAAM,KAAMC,QAAS,KACvB,CAAED,KAAM,IAAKC,QAAS,sCACtB,CAAED,KAAM,IAAKC,QAAS,YACtB,CAAED,KAAM,KAAMC,QAAS,KACvB,CAAED,KAAM,IAAKC,QAAS,cACtB,CAAED,KAAM,IAAKC,QAAS,SACtB,CAAED,KAAM,IAAKC,QAAS,mBACtB,CAAED,KAAM,IAAKC,QAAS,kBACtB,CAAED,KAAM,IAAKC,QAAS,uCACtB,CAAED,KAAM,KAAMC,QAAS,KACvB,CAAED,KAAM,KAAMC,QAAS,OACvB,CAAED,KAAM,KAAMC,QAAS,KACvB,CAAED,KAAM,KAAMC,QAAS,KACvB,CAAED,KAAM,KAAMC,QAAS,MACvB,CAAED,KAAM,KAAMC,QAAS,KACvB,CAAED,KAAM,IAAKC,QAAS,aACtB,CAAED,KAAM,IAAKC,QAAS,iBACtB,CAAED,KAAM,IAAKC,QAAS,kBACtB,CAAED,KAAM,KAAMC,QAAS,MACvB,CAAED,KAAM,IAAKC,QAAS,mCACtB,CAAED,KAAM,IAAKC,QAAS,UACtB,CAAED,KAAM,IAAKC,QAAS,mBACtB,CAAED,KAAM,IAAKC,QAAS,mBACtB,CAAED,KAAM,KAAMC,QAAS,KACvB,CAAED,KAAM,IAAKC,QAAS,wBACtB,CAAED,KAAM,IAAKC,QAAS,UACtB,CAAED,KAAM,IAAKC,QAAS,kBACtB,CAAED,KAAM,IAAKC,QAAS,uBACtB,CAAED,KAAM,KAAMC,QAAS,KACvB,CAAED,KAAM,IAAKC,QAAS,YACtB,CAAED,KAAM,IAAKC,QAAS,qBACtB,CAAED,KAAM,KAAMC,QAAS,KACvB,CAAED,KAAM,IAAKC,QAAS,+CACtB,CAAED,KAAM,KAAMC,QAAS,KACvB,CAAED,KAAM,KAAMC,QAAS,KACvB,CAAED,KAAM,KAAMC,QAAS,KACvB,CAAED,KAAM,IAAKC,QAAS,cACtB,CAAED,KAAM,IAAKC,QAAS,UACtB,CAAED,KAAM,IAAKC,QAAS,qBACtB,CAAED,KAAM,IAAKC,QAAS,sBACtB,CAAED,KAAM,IAAKC,QAAS,oBACtB,CAAED,KAAM,KAAMC,QAAS,KACvB,CAAED,KAAM,IAAKC,QAAS,sCACtB,CAAED,KAAM,IAAKC,QAAS,YACtB,CAAED,KAAM,KAAMC,QAAS,KACvB,CAAED,KAAM,IAAKC,QAAS,eACtB,CAAED,KAAM,IAAKC,QAAS,SACtB,CAAED,KAAM,IAAKC,QAAS,oBACtB,CAAED,KAAM,IAAKC,QAAS,mBAEpBC,cAAgB,GACXhc,EAAI,EAAGA,EAAI6b,2BAA2Bvb,OAAQN,GAAK,EAE1D,IADA,IAAI+b,QAAUF,2BAA2B7b,GAAG+b,QACnC9b,EAAI,EAAGA,EAAI8b,QAAQzb,OAAQL,GAAK,EACvC+b,cAAcD,QAAQ9b,IAAM4b,2BAA2B7b,GAAG8b,KAI9D,IAAIG,aAAe,EAEfC,MAAQ,CACVD,aAAc,WAEZ,OADAA,cAAgB,GAGlBtP,GAAI,SAAYwP,EAAMxI,QACN,IAATwI,IAAkBA,EAAO,mBACjB,IAARxI,IAAiBA,EAAM,oBAE5B,IAAIrT,EAASqT,EAAIrT,OACjB,OAAO6b,EAAKtc,QAAQ,MAAM,WAAc,OAAO8T,EAAI2D,KAAK8E,MAAO9E,KAAK+E,SAAW/b,QAEjFgc,mBAAoB,wVAAoWnc,OACxXoc,qBAAsB,+CAAoD,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,IAAI5I,KAAI,WAAc,MAAO,gDAAiDxQ,KAAK,IAAO,qBAAqBhD,OAC5Nqc,uBAAwB,4GACxBC,qBAAsB,SAA8BvL,GAClD,IAAIwL,EACJ,OAAOxL,EAAU9Q,MAAM,IAAIuT,KAAI,SAAUgJ,EAAMhX,GAC7C,OAAIgX,EAAK/b,MAAM,UAAsB,IAAV+E,IAAgB+W,GACzCA,GAAW,EACH,IAAOC,EAAKvQ,eAEfuQ,EAAKvQ,iBACXjJ,KAAK,KAEVyZ,YAAa,SAAqBvV,GAChC,IAAI5E,EAAS4E,EACbnE,OAAO2B,KAAKpC,GAAQM,SAAQ,SAAU6C,GACpC,IACEnD,EAAOmD,GAAO,KACd,MAAOiK,IAGT,WACSpN,EAAOmD,GACd,MAAOiK,SAKbgN,SAAU,SAAkBrQ,EAAUsQ,GAGpC,YAFe,IAAVA,IAAmBA,EAAQ,GAEzBzR,WAAWmB,EAAUsQ,IAE9BC,UAAW,SAAmBvQ,GAC5B,OAAO0P,MAAM3P,uBAAsB,WACjC2P,MAAM3P,sBAAsBC,OAGhCwQ,IAAK,WACH,OAAO7R,KAAK6R,OAEdzQ,sBAAuB,SAA+BC,GACpD,OAAOlC,IAAIiC,sBAAsBC,IAEnCE,qBAAsB,SAA8BC,GAClD,OAAOrC,IAAIoC,qBAAqBC,IAElCsQ,iBAAkB,SAA0BC,GAC1C,OAAOA,EAAIrd,QAAQ,qBAAqB,SAAU2Y,GAAK,OAAOwD,cAAcxD,IAAMA,MAEpF2E,cAAe,SAAuBC,GACpC,IAEIpd,EACAyY,EACA4E,EACA/c,EALAgd,EAAQ,GACRC,EAAaH,GAAO9S,IAAIR,SAASG,KAKrC,GAA0B,iBAAfsT,GAA2BA,EAAWjd,OAK/C,IAFAA,GADAmY,GADA8E,EAAaA,EAAW5c,QAAQ,MAAQ,EAAI4c,EAAW1d,QAAQ,QAAS,IAAM,IAC1DO,MAAM,KAAKsR,QAAO,SAAU8L,GAAc,MAAsB,KAAfA,MACrDld,OAEXN,EAAI,EAAGA,EAAIM,EAAQN,GAAK,EAC3Bqd,EAAQ5E,EAAOzY,GAAGH,QAAQ,QAAS,IAAIO,MAAM,KAC7Ckd,EAAMG,mBAAmBJ,EAAM,UAA2B,IAAbA,EAAM,QAAqBle,EAAYse,mBAAmBJ,EAAMxb,MAAM,GAAGsB,KAAK,OAAS,GAGxI,OAAOma,GAETI,aAAc,SAAsBxP,EAAIyP,GAGtC,IAAIC,EACAC,EACAC,OAJU,IAATH,IAAkBA,EAAO,KAM9B,IAAII,EAAWzT,IAAIU,iBAAiBkD,EAAI,MA+BxC,OA7BI5D,IAAI0T,kBACNH,EAAeE,EAAShP,WAAagP,EAAS9O,iBAC7B7O,MAAM,KAAKE,OAAS,IACnCud,EAAeA,EAAazd,MAAM,MAAMuT,KAAI,SAAU6E,GAAK,OAAOA,EAAE3Y,QAAQ,IAAK,QAASsD,KAAK,OAIjG2a,EAAkB,IAAIxT,IAAI0T,gBAAiC,SAAjBH,EAA0B,GAAKA,IAGzED,GADAE,EAAkBC,EAASE,cAAgBF,EAASG,YAAcH,EAASI,aAAeJ,EAASK,aAAeL,EAAShP,WAAagP,EAAS9S,iBAAiB,aAAapL,QAAQ,aAAc,uBAC5Kwe,WAAWje,MAAM,KAG/B,MAATud,IAEyBE,EAAvBvT,IAAI0T,gBAAkCF,EAAgBQ,IAE/B,KAAlBV,EAAOtd,OAAgCkO,WAAWoP,EAAO,KAE5CpP,WAAWoP,EAAO,KAE7B,MAATD,IAEyBE,EAAvBvT,IAAI0T,gBAAkCF,EAAgBS,IAE/B,KAAlBX,EAAOtd,OAAgCkO,WAAWoP,EAAO,KAE5CpP,WAAWoP,EAAO,KAEnCC,GAAgB,GAEzBW,gBAAiB,SAAyBnX,EAAKhE,GAG7C,QAFiB,IAAZA,IAAqBA,EAAU,IAEjB,iBAARgE,EAAoB,OAAOA,EACtC,IAEIoX,EAFAC,EAAc,GAGlB,SAASC,EAAQnb,GACf,GAAIH,EAAQ/C,OAAS,EAAG,CAEtB,IADA,IAAIse,EAAc,GACT3e,EAAI,EAAGA,EAAIoD,EAAQ/C,OAAQL,GAAK,EACxB2e,GAAL,IAAN3e,EAA0BoD,EAAQpD,GAChB,IAAO4e,mBAAmBxb,EAAQpD,IAAO,IAEjE,OAAQ2e,EAAc,IAAOC,mBAAmBrb,GAAS,IAE3D,OAAOqb,mBAAmBrb,GAE5B,SAASsb,EAASpR,GAChB,OAAOmR,mBAAmBnR,GA8B5B,OA5BAxK,OAAO2B,KAAKwC,GAAKtE,SAAQ,SAAUmD,GACjC,IAAI6Y,EACJ,GAAIjd,MAAMC,QAAQsF,EAAInB,IAAQ,CAC5B6Y,EAAS,GACT,IAAK,IAAI/e,EAAI,EAAGA,EAAIqH,EAAInB,GAAM5F,OAAQN,GAAK,EACpC8B,MAAMC,QAAQsF,EAAInB,GAAMlG,KAA+B,iBAAjBqH,EAAInB,GAAMlG,GAMnD+e,EAAOre,KAAOie,EAAQzY,GAAS,MAAS4Y,EAASzX,EAAInB,GAAMlG,OAL3Dye,EAAapb,EAAQxB,SACVnB,KAAKwF,GAChBuY,EAAW/d,KAAKse,OAAOhf,IACvB+e,EAAOre,KAAKwb,MAAMsC,gBAAgBnX,EAAInB,GAAMlG,GAAIye,KAKhDM,EAAOze,OAAS,GAAKoe,EAAYhe,KAAKqe,EAAO5b,KA9BrC,WA+BW,OAAdkE,EAAInB,IAAgC,KAAdmB,EAAInB,GACnCwY,EAAYhe,KAAOie,EAAQzY,GAAS,KACN,iBAAdmB,EAAInB,KAEpBuY,EAAapb,EAAQxB,SACVnB,KAAKwF,GAED,MADf6Y,EAAS7C,MAAMsC,gBAAgBnX,EAAInB,GAAOuY,KACrBC,EAAYhe,KAAKqe,SACR,IAAd1X,EAAInB,IAAuC,KAAdmB,EAAInB,GAEjDwY,EAAYhe,KAAOie,EAAQzY,GAAS,IAAO4Y,EAASzX,EAAInB,KACjC,KAAdmB,EAAInB,IAAgBwY,EAAYhe,KAAKie,EAAQzY,OAEnDwY,EAAYvb,KA5CH,MA8ClBiE,SAAU,SAAkB6X,GAC1B,MAAoB,iBAANA,GAAwB,OAANA,GAAcA,EAAEhc,aAAegc,EAAEhc,cAAgBC,QAEnFgc,MAAO,WAEL,IADA,IAAInY,EAAO,GAAIoY,EAAQlY,UAAU3G,OACzB6e,KAAUpY,EAAMoY,GAAUlY,UAAWkY,GAE7C,IAAIC,EAAKrY,EAAK,GACdA,EAAKgK,OAAO,EAAG,GAGf,IAFA,IAAIsO,EAAOtY,EAEF/G,EAAI,EAAGA,EAAIqf,EAAK/e,OAAQN,GAAK,EAAG,CACvC,IAAIsf,EAAavY,EAAK/G,GACtB,GAAIsf,MAAAA,EAEF,IADA,IAAIC,EAAYrc,OAAO2B,KAAK3B,OAAOoc,IAC1BE,EAAY,EAAGxY,EAAMuY,EAAUjf,OAAQkf,EAAYxY,EAAKwY,GAAa,EAAG,CAC/E,IAAIC,EAAUF,EAAUC,GACpBE,EAAOxc,OAAOyc,yBAAyBL,EAAYG,QAC1CtgB,IAATugB,GAAsBA,EAAKE,aAC7BR,EAAGK,GAAWH,EAAWG,KAKjC,OAAOL,GAET9X,OAAQ,WAEN,IADA,IAAIP,EAAO,GAAIoY,EAAQlY,UAAU3G,OACzB6e,KAAUpY,EAAMoY,GAAUlY,UAAWkY,GAE7C,IACIC,EACAC,EAFAQ,GAAO,EAGY,kBAAZ9Y,EAAK,IACd8Y,EAAO9Y,EAAK,GACZqY,EAAKrY,EAAK,GACVA,EAAKgK,OAAO,EAAG,GACfsO,EAAOtY,IAEPqY,EAAKrY,EAAK,GACVA,EAAKgK,OAAO,EAAG,GACfsO,EAAOtY,GAET,IAAK,IAAI/G,EAAI,EAAGA,EAAIqf,EAAK/e,OAAQN,GAAK,EAAG,CACvC,IAAIsf,EAAavY,EAAK/G,GACtB,GAAIsf,MAAAA,EAEF,IADA,IAAIC,EAAYrc,OAAO2B,KAAK3B,OAAOoc,IAC1BE,EAAY,EAAGxY,EAAMuY,EAAUjf,OAAQkf,EAAYxY,EAAKwY,GAAa,EAAG,CAC/E,IAAIC,EAAUF,EAAUC,GACpBE,EAAOxc,OAAOyc,yBAAyBL,EAAYG,QAC1CtgB,IAATugB,GAAsBA,EAAKE,aACxBC,EAEM3D,MAAM9U,SAASgY,EAAGK,KAAavD,MAAM9U,SAASkY,EAAWG,IAClEvD,MAAM5U,OAAO8X,EAAGK,GAAUH,EAAWG,KAC3BvD,MAAM9U,SAASgY,EAAGK,KAAavD,MAAM9U,SAASkY,EAAWG,KACnEL,EAAGK,GAAW,GACdvD,MAAM5U,OAAO8X,EAAGK,GAAUH,EAAWG,KAErCL,EAAGK,GAAWH,EAAWG,GAPzBL,EAAGK,GAAWH,EAAWG,KAanC,OAAOL,GAETU,cAAe,SAAuBC,GACpC,IAAIC,EAAID,EAAIlgB,QAAQ,oCAAoC,SAAUogB,EAAGC,EAAGC,EAAGC,GAAK,OAAOF,EAAIA,EAAIC,EAAIA,EAAIC,EAAIA,KACvGC,EAAS,4CAA4CC,KAAKN,GAC9D,OAAOK,EACHA,EAAOxe,MAAM,GAAG8R,KAAI,SAAU4M,GAAK,OAAOC,SAASD,EAAG,OACtD,MAENE,cAAe,SAAuBP,EAAGC,EAAGC,GAK1C,MAAQ,IAJK,CAACF,EAAGC,EAAGC,GAAGzM,KAAI,SAAU4M,GACnC,IAAIR,EAAMQ,EAAElC,SAAS,IACrB,OAAsB,IAAf0B,EAAIzf,OAAgB,IAAMyf,EAAOA,KACvC5c,KAAK,KAGVud,cAAe,SAAuBR,EAAGC,EAAGC,GAC1CF,GAAK,IACLC,GAAK,IACLC,GAAK,IACL,IAGIJ,EAHAzI,EAAMD,KAAKC,IAAI2I,EAAGC,EAAGC,GACrB5I,EAAMF,KAAKE,IAAI0I,EAAGC,EAAGC,GACrBO,EAAIpJ,EAAMC,EAEJ,IAANmJ,EAAWX,EAAI,EACVzI,IAAQ2I,EAAKF,GAAMG,EAAIC,GAAKO,EAAK,EACjCpJ,IAAQ4I,EAAKH,GAAKI,EAAIF,GAAKS,EAAI,EAC/BpJ,IAAQ6I,IAAKJ,GAAKE,EAAIC,GAAKQ,EAAI,GACxC,IAAIC,GAAKpJ,EAAMD,GAAO,EAGtB,OADIyI,EAAI,IAAKA,EAAI,EAAWA,GACrB,CAAK,GAAJA,EAFM,IAANW,EAAU,EAAIA,GAAK,EAAIrJ,KAAKuJ,IAAI,EAAID,EAAI,IAE7BA,IAErBE,cAAe,SAAuBd,EAAGe,EAAGH,GAC1C,IAGII,EAHAC,GAAK,EAAI3J,KAAKuJ,IAAI,EAAID,EAAI,IAAMG,EAChCG,EAAKlB,EAAI,GACTmB,EAAIF,GAAK,EAAI3J,KAAKuJ,IAAKK,EAAK,EAAK,IAEjCpd,OAAOsd,MAAMpB,SAAmB,IAANA,EAC5BgB,EAAO,CAAC,EAAG,EAAG,GACLE,GAAM,EAAKF,EAAO,CAACC,EAAGE,EAAG,GAC3BD,GAAM,EAAKF,EAAO,CAACG,EAAGF,EAAG,GACzBC,GAAM,EAAKF,EAAO,CAAC,EAAGC,EAAGE,GACzBD,GAAM,EAAKF,EAAO,CAAC,EAAGG,EAAGF,GACzBC,GAAM,EAAKF,EAAO,CAACG,EAAG,EAAGF,GACzBC,GAAM,IAAKF,EAAO,CAACC,EAAG,EAAGE,IAClC,IAAIlB,EAAIW,EAAKK,EAAI,EACjB,OAAOD,EAAKrN,KAAI,SAAU4M,GAAK,OAAOjJ,KAAKC,IAAI,EAAGD,KAAKE,IAAI,IAAKF,KAAK+J,MAAM,KAAOd,EAAIN,UAExFqB,cAAe,SAAuBtB,EAAGe,EAAGX,GAC1C,IAAImB,EAAM,CACRvB,EAAGA,EACHe,EAAG,EACHH,EAAG,GAEDY,EAAiBT,EAAjBS,EAAuBpB,EAK3B,OAHAmB,EAAIX,GAAK,EAAIY,GAASA,EAAQ,EAC9BD,EAAIR,EAAIQ,EAAIX,GAAKW,EAAIX,EAAI,EAAIY,EAAQA,GAASD,EAAIX,EAAI,GAAc,EAARW,EAAIX,EAAQ,EAAY,EAARW,EAAIX,GAASW,EAAIR,EAEtF,CAACQ,EAAIvB,EAAGuB,EAAIR,EAAGQ,EAAIX,IAE5Ba,cAAe,SAAuBzB,EAAGe,EAAGH,GAC1C,IAAIY,EAAM,CACRxB,EAAGA,EACHe,EAAG,EACHX,EAAG,GAEDmB,EAAuBX,EAEvBlZ,EAFiBqZ,GAEJQ,EAAQ,GAAMA,EAAQ,EAAIA,GAI3C,OAHAC,EAAIpB,EAAImB,EAAQ7Z,EAChB8Z,EAAIT,EAAIQ,EAAQ,EAAI,EAAI7Z,EAAI8Z,EAAIpB,EAAIoB,EAAIT,EAEjC,CAACS,EAAIxB,EAAGwB,EAAIT,EAAGS,EAAIpB,IAE5BsB,wBAAyB,WAEvB,IADA,IAGI3B,EACA4B,EAJA5a,EAAO,GAAIC,EAAMC,UAAU3G,OACvB0G,KAAQD,EAAMC,GAAQC,UAAWD,GAWzC,GAPoB,IAAhBD,EAAKzG,QACPyf,EAAMhZ,EAAK,GACX4a,EAAMzF,MAAM4D,cAAcC,IACD,IAAhBhZ,EAAKzG,SACdqhB,EAAM5a,EACNgZ,EAAM7D,MAAMuE,cAAcvQ,MAAMgM,MAAOyF,KAEpCA,EAAO,MAAO,GACnB,IAAIC,EAAM1F,MAAMwE,cAAcxQ,MAAMgM,MAAOyF,GACvCE,EAAW,CAACD,EAAI,GAAIA,EAAI,GAAItK,KAAKC,IAAI,EAAIqK,EAAI,GAAK,MAClDE,EAAU,CAACF,EAAI,GAAIA,EAAI,GAAItK,KAAKC,IAAI,EAAIqK,EAAI,GAAK,MACjDG,EAAQ7F,MAAMuE,cAAcvQ,MAAMgM,MAAOA,MAAM4E,cAAc5Q,MAAMgM,MAAO2F,IAC1EG,EAAO9F,MAAMuE,cAAcvQ,MAAMgM,MAAOA,MAAM4E,cAAc5Q,MAAMgM,MAAO4F,IAC7E,MAAO,CACLG,mBAAoBlC,EACpBmC,uBAAwBP,EAAIxe,KAAK,MACjCgf,yBAA0BJ,EAC1BK,wBAAyBJ,KAK3BK,QACK,CACLC,SAAW,iBAAkBhY,KAASA,IAAIiY,eAAiB/Z,eAAe8B,IAAIiY,eAE9EC,gBAAiBlY,IAAImY,cAAiB,mBAAoBnY,IAAIE,WAAcF,IAAIE,UAAUkY,gBAAkB,EAE5GC,SACU,qBAAsBrY,KAAO,2BAA4BA,IAGnEsY,gBAAkB,WAChB,IAAIC,GAAkB,EACtB,IACE,IAAIC,EAAO5f,OAAO6f,eAAe,GAAI,UAAW,CAE9C7a,IAAK,WACH2a,GAAkB,KAGtBvY,IAAI1B,iBAAiB,sBAAuB,KAAMka,GAClD,MAAOjT,IAGT,OAAOgT,EAbQ,GAgBjBG,SACS,mBAAoB1Y,IAG7B2Y,qBACU,yBAA0B3Y,KAKpC4Y,OAAU,WACZ,IAAIC,EAAW7Y,IAAIE,UAAU2Y,SACzBC,EAAK9Y,IAAIE,UAAUC,UAEnB4Y,EAAS,CACXC,KAAK,EACLC,SAAS,EACTC,eAAe,EACfC,SAAS,EACTC,QAAQ,EACRC,MAAM,EACNC,MAAM,EACNC,MAAM,EACNC,IAAI,EACJC,SAAS,EACTC,OAAO,EACPC,SAAS,EACTC,WAAY5Z,IAAI4Z,UAAW5Z,IAAI6Z,UAC/BA,YAAa7Z,IAAI4Z,UAAW5Z,IAAI6Z,UAChCC,UAAU,EACVC,MAAM,GAGJC,EAAcha,IAAIc,OAAO4G,MACzBuS,EAAeja,IAAIc,OAAOmH,OAE1BgR,EAAUH,EAAGxiB,MAAM,+BACnBgjB,EAAOR,EAAGxiB,MAAM,wBAChB+iB,EAAOP,EAAGxiB,MAAM,2BAChB8iB,GAAUE,GAAQR,EAAGxiB,MAAM,8BAC3BkjB,EAAKV,EAAGziB,QAAQ,UAAY,GAAKyiB,EAAGziB,QAAQ,aAAe,EAC3DkjB,EAAOT,EAAGziB,QAAQ,UAAY,EAC9BojB,EAAUX,EAAGziB,QAAQ,WAAa,GAAKyiB,EAAGziB,QAAQ,aAAe,EACjEsjB,EAAuB,UAAbd,EACViB,EAAWhB,EAAGhX,cAAczL,QAAQ,aAAe,EACnD0jB,EAAqB,oBAAPG,IAAyC,oBAAZC,cAAuD,IAArBA,QAAQC,eAA2D,IAAxBD,QAAQC,SAASF,GACzIR,EAAqB,aAAbb,GAgBPS,GACAI,GACA3B,QAAQC,OAfK,CAChB,YACA,YACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,YAIe3hB,QAAS2jB,EAAc,IAAMC,IAAkB,KAE9DX,EAAOR,EAAGxiB,MAAM,0BACHgjB,EAAO,CAAC,EAAG,EAAG,WAC3BI,GAAQ,GAGVX,EAAOS,GAAKA,EACZT,EAAOQ,KAAOA,EACdR,EAAOU,QAAUA,EAGbR,IAAYU,IACdZ,EAAOsB,GAAK,UACZtB,EAAOuB,UAAYrB,EAAQ,GAC3BF,EAAOE,SAAU,EACjBF,EAAOG,cAAgBJ,EAAGhX,cAAczL,QAAQ,WAAa,IAE3DijB,GAAQF,GAAUC,KACpBN,EAAOsB,GAAK,MACZtB,EAAOC,KAAM,GAGXI,IAAWC,IACbN,EAAOuB,UAAYlB,EAAO,GAAG7jB,QAAQ,KAAM,KAC3CwjB,EAAOK,QAAS,GAEdE,IACFP,EAAOuB,UAAYhB,EAAK,GAAG/jB,QAAQ,KAAM,KACzCwjB,EAAOO,MAAO,GAEZD,IACFN,EAAOuB,UAAYjB,EAAK,GAAKA,EAAK,GAAG9jB,QAAQ,KAAM,KAAO,KAC1DwjB,EAAOM,MAAO,GAGZN,EAAOC,KAAOD,EAAOuB,WAAaxB,EAAGziB,QAAQ,aAAe,GACvB,OAAnC0iB,EAAOuB,UAAUxkB,MAAM,KAAK,KAC9BijB,EAAOuB,UAAYxB,EAAGhX,cAAchM,MAAM,YAAY,GAAGA,MAAM,KAAK,IAKxEijB,EAAOwB,YAAcnB,GAAUE,GAAQD,KAAUP,EAAGxiB,MAAM,gCAAiC0J,IAAIE,UAAUsa,aACnGxa,IAAIiB,YAAcjB,IAAIiB,WAAW,8BAA8ByI,QACrEqP,EAAO0B,QAAU1B,EAAOwB,QACxBxB,EAAOyB,WAAazB,EAAOwB,QAG3BxB,EAAOI,UAAYJ,EAAOC,KAAOD,EAAOE,UAAYa,GAAYC,EAC5DhB,EAAOI,UACTJ,EAAOe,SAAWA,EAClBf,EAAOgB,KAAOA,EACdhB,EAAOW,MAAQA,EACfX,EAAOY,QAAUA,EACbZ,EAAOW,QACTX,EAAOsB,GAAK,SAEVtB,EAAOY,UACTZ,EAAOsB,GAAK,YAKhBtB,EAAO2B,WAAa1a,IAAI2a,kBAAoB,EAiB5C,OAZA5B,EAAO6B,mBAAqB,WAC1B,IAAIC,EAOJ,OANI7a,IAAIiB,YAAcjB,IAAIiB,WAHhB,iCAGkCyI,UAC1CmR,EAAQ,SAEN7a,IAAIiB,YAAcjB,IAAIiB,WAPjB,gCAOkCyI,UACzCmR,EAAQ,QAEHA,GAIF9B,EAxII,GA2IT+B,YAAc,SAAqB/hB,QACpB,IAAZA,IAAqBA,EAAU,IAEzBrE,KACNqmB,cAAgBhiB,EADVrE,KAENsmB,gBAAkB,IAGzBF,YAAY3d,UAAU6H,GAAK,SAAae,EAAQQ,EAAS0U,GACvD,IAAIzmB,EAAOE,KACX,GAAuB,mBAAZ6R,EAA0B,OAAO/R,EAC5C,IAAI0mB,EAASD,EAAW,UAAY,OAKpC,OAJAlV,EAAOjQ,MAAM,KAAK2C,SAAQ,SAAU0N,GAC7B3R,EAAKwmB,gBAAgB7U,KAAU3R,EAAKwmB,gBAAgB7U,GAAS,IAClE3R,EAAKwmB,gBAAgB7U,GAAO+U,GAAQ3U,MAE/B/R,GAGTsmB,YAAY3d,UAAUuJ,KAAO,SAAeX,EAAQQ,EAAS0U,GAC3D,IAAIzmB,EAAOE,KACX,GAAuB,mBAAZ6R,EAA0B,OAAO/R,EAC5C,SAASqS,IAEL,IADA,IAAIpK,EAAO,GAAIC,EAAMC,UAAU3G,OACvB0G,KAAQD,EAAMC,GAAQC,UAAWD,GAE3ClI,EAAK6R,IAAIN,EAAQc,GACbA,EAAYsU,gBACPtU,EAAYsU,QAErB5U,EAAQX,MAAMpR,EAAMiI,GAGtB,OADAoK,EAAYsU,QAAU5U,EACf/R,EAAKwQ,GAAGe,EAAQc,EAAaoU,IAGtCH,YAAY3d,UAAUkJ,IAAM,SAAcN,EAAQQ,GAChD,IAAI/R,EAAOE,KACX,OAAKF,EAAKwmB,iBACVjV,EAAOjQ,MAAM,KAAK2C,SAAQ,SAAU0N,QACX,IAAZI,EACT/R,EAAKwmB,gBAAgB7U,GAAS,GACrB3R,EAAKwmB,gBAAgB7U,IAC9B3R,EAAKwmB,gBAAgB7U,GAAO1N,SAAQ,SAAU2iB,EAAc/f,IACtD+f,IAAiB7U,GAAY6U,EAAaD,SAAWC,EAAaD,UAAY5U,IAChF/R,EAAKwmB,gBAAgB7U,GAAOM,OAAOpL,EAAO,SAK3C7G,GAZ6BA,GAetCsmB,YAAY3d,UAAUke,KAAO,WAEzB,IADA,IAAI5e,EAAO,GAAIC,EAAMC,UAAU3G,OACvB0G,KAAQD,EAAMC,GAAQC,UAAWD,GAE3C,IAEIqJ,EACA3M,EACAqB,EACAsgB,EALAvmB,EAAOE,KACX,IAAKF,EAAKwmB,gBAAmB,OAAOxmB,EAKb,iBAAZiI,EAAK,IAAmBjF,MAAMC,QAAQgF,EAAK,KACpDsJ,EAAStJ,EAAK,GACdrD,EAAOqD,EAAKlF,MAAM,EAAGkF,EAAKzG,QAC1ByE,EAAUjG,EACVumB,EAAgBvmB,EAAKumB,gBAErBhV,EAAStJ,EAAK,GAAGsJ,OACjB3M,EAAOqD,EAAK,GAAGrD,KACfqB,EAAUgC,EAAK,GAAGhC,SAAWjG,EAC7BumB,EAAgBte,EAAK,GAAG6e,MAAQ,GAAK7e,EAAK,GAAG1D,SAAWvE,EAAKumB,eAE/D,IAAIQ,EAAc/jB,MAAMC,QAAQsO,GAAUA,EAASA,EAAOjQ,MAAM,KAC5D0lB,EAAcD,EAAYlS,KAAI,SAAUzC,GAAa,OAAOA,EAAUrR,QAAQ,UAAW,OACzFkmB,EAAeF,EAAYnU,QAAO,SAAUR,GAAa,OAAOA,EAAUvQ,QAAQ,WAAa,KAkBnG,OAhBAmlB,EAAY/iB,SAAQ,SAAU0N,GAC5B,GAAI3R,EAAKwmB,iBAAmBxmB,EAAKwmB,gBAAgB7U,GAAQ,CACvD,IAAIG,EAAW,GACf9R,EAAKwmB,gBAAgB7U,GAAO1N,SAAQ,SAAU2iB,GAC5C9U,EAASlQ,KAAKglB,MAEhB9U,EAAS7N,SAAQ,SAAU2iB,GACzBA,EAAaxV,MAAMnL,EAASrB,UAI9B2hB,GAAiBA,EAAc/kB,OAAS,GAC1C+kB,EAActiB,SAAQ,SAAUijB,GAC9BA,EAAaL,KAAKzV,MAAM8V,EAAc,CAAED,GAAe5L,OAAQzW,OAG5D5E,GAGT,IAAImnB,gBAAgC,SAAUb,GAC5C,SAASa,EAAgBxN,EAAQpV,QACf,IAAXoV,IAAoBA,EAAS,SACjB,IAAZpV,IAAqBA,EAAU,IAEpC+hB,EAAYlgB,KAAKlG,KAAMqE,GACvB,IAAIvE,EAAOE,KACXF,EAAK2Z,OAASA,EAEV3Z,EAAK2Z,QAAU3Z,EAAK2Z,OAAOnJ,IAC7BpM,OAAO2B,KAAK/F,EAAK2Z,OAAOnJ,IAAIvM,SAAQ,SAAUmO,GAC5CpS,EAAKwQ,GAAG4B,EAAWpS,EAAK2Z,OAAOnJ,GAAG4B,OAKnCkU,IAAca,EAAgBC,UAAYd,GAC/Ca,EAAgBxe,UAAYvE,OAAOijB,OAAQf,GAAeA,EAAY3d,WACtEwe,EAAgBxe,UAAUxE,YAAcgjB,EAExC,IAAIrf,EAAkB,CAAEwf,WAAY,CAAEvf,cAAc,IAmIpD,OAhIAof,EAAgBxe,UAAU4e,gBAAkB,SAA0B1nB,EAAQ2nB,GAC5E,GAAI3nB,EAAO8Z,OAAQ,CACjB,IAAI8N,EAAiB,GACrBrjB,OAAO2B,KAAKlG,EAAO8Z,QAAQ1V,SAAQ,SAAUyjB,QACH,IAA7BF,EAAeE,KAC1BD,EAAeC,GAAYtK,MAAM5U,OAAO,GAAIgf,EAAeE,QAE7DtK,MAAM5U,OAAOgf,EAAgB3nB,EAAO8Z,QACpCvV,OAAO2B,KAAK0hB,GAAgBxjB,SAAQ,SAAUyjB,GAC5CtK,MAAM5U,OAAOgf,EAAeE,GAAWD,EAAeC,SAK5DP,EAAgBxe,UAAUgf,iBAAmB,SAA2BH,GACtE,IAAIpf,EAAWlI,KACVkI,EAASwf,SACdxjB,OAAO2B,KAAKqC,EAASwf,SAAS3jB,SAAQ,SAAU4jB,GAC9C,IAAIhoB,EAASuI,EAASwf,QAAQC,GAE1BhoB,EAAO8Z,QACTyD,MAAM5U,OAAOgf,EAAgB3nB,EAAO8Z,YAK1CwN,EAAgBxe,UAAUmf,UAAY,SAAoBD,EAAYE,QAChD,IAAfF,IAAwBA,EAAa,SACpB,IAAjBE,IAA0BA,EAAe,IAE9C,IAAI3f,EAAWlI,KACf,GAAKkI,EAASwf,QAAd,CACA,IAAI/nB,EAA+B,iBAAfgoB,EAA0Bzf,EAASwf,QAAQC,GAAcA,EACxEhoB,IAGDA,EAAOuI,UACThE,OAAO2B,KAAKlG,EAAOuI,UAAUnE,SAAQ,SAAU+jB,GAC7C,IAAIC,EAAapoB,EAAOuI,SAAS4f,GAE/B5f,EAAS4f,GADe,mBAAfC,EACkBA,EAAW1M,KAAKnT,GAEhB6f,KAK7BpoB,EAAO2Q,IAAMpI,EAASoI,IACxBpM,OAAO2B,KAAKlG,EAAO2Q,IAAIvM,SAAQ,SAAUikB,GACvC9f,EAASoI,GAAG0X,EAAiBroB,EAAO2Q,GAAG0X,OAIvCroB,EAAOsoB,QACJ/f,EAASggB,aAAchgB,EAASggB,WAAa,IAClDhkB,OAAO2B,KAAKlG,EAAOsoB,OAAOlkB,SAAQ,SAAUokB,GAC1CjkB,OAAO2B,KAAKlG,EAAOsoB,MAAME,IAAUpkB,SAAQ,SAAUqkB,GACnD,IAAIvW,EAAUlS,EAAOsoB,MAAME,GAASC,GAC/BlgB,EAASggB,WAAWE,KAAalgB,EAASggB,WAAWE,GAAY,IACjElgB,EAASggB,WAAWE,GAAUD,KAAYjgB,EAASggB,WAAWE,GAAUD,GAAW,IACxFjgB,EAASggB,WAAWE,GAAUD,GAASzmB,KAAKmQ,EAAQwJ,KAAKnT,WAK3DvI,EAAOwnB,QACTxnB,EAAOwnB,OAAO9L,KAAKnT,EAAnBvI,CAA6BkoB,MAIjCZ,EAAgBxe,UAAU4f,WAAa,SAAqBC,QACnC,IAAlBA,IAA2BA,EAAgB,IAEhD,IAAIpgB,EAAWlI,KACVkI,EAASwf,SACdxjB,OAAO2B,KAAKqC,EAASwf,SAAS3jB,SAAQ,SAAU4jB,GAC9C,IAAIE,EAAeS,EAAcX,IAAe,GAChDzf,EAAS0f,UAAUD,EAAYE,OAInCjgB,EAAgBwf,WAAWmB,IAAM,SAAUnB,GAC7BpnB,KACDwoB,KADCxoB,KAENwoB,IAAIpB,IAGZH,EAAgBwB,cAAgB,SAAwB9oB,GAEtD,IADA,IAAI8Z,EAAS,GAAIzR,EAAMC,UAAU3G,OAAS,EAClC0G,KAAQ,GAAIyR,EAAQzR,GAAQC,UAAWD,EAAM,GAErD,IAAIwP,EAAQxX,KACPwX,EAAM/O,UAAUif,UAAWlQ,EAAM/O,UAAUif,QAAU,IAC1D,IAAIljB,EAAO7E,EAAO6E,MAAWN,OAAO2B,KAAK2R,EAAM/O,UAAUif,SAAe,OAAI,IAAOxK,MAAMc,MAkBzF,OAjBAxG,EAAM/O,UAAUif,QAAQljB,GAAQ7E,EAE5BA,EAAO+oB,OACTxkB,OAAO2B,KAAKlG,EAAO+oB,OAAO3kB,SAAQ,SAAU6C,GAC1C4Q,EAAM/O,UAAU7B,GAAOjH,EAAO+oB,MAAM9hB,MAIpCjH,EAAOgpB,QACTzkB,OAAO2B,KAAKlG,EAAOgpB,QAAQ5kB,SAAQ,SAAU6C,GAC3C4Q,EAAM5Q,GAAOjH,EAAOgpB,OAAO/hB,MAI3BjH,EAAOipB,SACTjpB,EAAOipB,QAAQ1X,MAAMsG,EAAOiC,GAEvBjC,GAGTyP,EAAgBuB,IAAM,SAAc7oB,GAElC,IADA,IAAI8Z,EAAS,GAAIzR,EAAMC,UAAU3G,OAAS,EAClC0G,KAAQ,GAAIyR,EAAQzR,GAAQC,UAAWD,EAAM,GAErD,IAAIwP,EAAQxX,KACZ,OAAI8C,MAAMC,QAAQpD,IAChBA,EAAOoE,SAAQ,SAAUkd,GAAK,OAAOzJ,EAAMiR,cAAcxH,MAClDzJ,GAEFA,EAAMiR,cAAcvX,MAAMsG,EAAO,CAAE7X,GAASwb,OAAQ1B,KAG7DvV,OAAOiF,iBAAkB8d,EAAiBrf,GAEnCqf,EAvJ0B,CAwJjCb,aAEF,SAASyC,mBAAoBC,QACP,IAAfA,IAAwBA,EAAa,IAE1C,IAAIC,EAAkBD,EAAWC,gBAC7BC,EAAcF,EAAW7kB,YACzBglB,EAAUH,EAAWG,QACrBC,EAAMJ,EAAWI,IACjBC,EAAaL,EAAWK,WACxBC,EAAU,CACZjC,OAAQ,WAEN,IADA,IAAIpf,EAAO,GAAIC,EAAMC,UAAU3G,OACvB0G,KAAQD,EAAMC,GAAQC,UAAWD,GAEzC,OAAIkhB,EAAc,IAAKG,SAAS5gB,UAAU4S,KAAKnK,MAAO8X,EAAa,CAAE,MAAO7N,OAAQ,CAAC+N,GAAMnhB,KACpF,IAAKshB,SAAS5gB,UAAU4S,KAAKnK,MAAO8X,EAAa,CAAE,MAAO7N,OAAQpT,MAE3EmB,IAAK,SAAagG,GAGhB,QAFY,IAAPA,IAAgBA,EAAK6Z,GAEtB7Z,aAAc8Z,EAAe,OAAO9Z,EACxC,IAAIoa,EAAM7c,EAAEyC,GACZ,OAAmB,IAAfoa,EAAIhoB,OACDgoB,EAAI,GAAGL,QADd,GAGFM,QAAS,SAAiBra,GACxB,IAAIhH,EAAWkhB,EAAQlgB,IAAIgG,GAC3B,GAAIhH,GAAYA,EAASqhB,QAAW,OAAOrhB,EAASqhB,YAiBxD,OAbIJ,GAAcrmB,MAAMC,QAAQomB,IAC9BA,EAAWplB,SAAQ,SAAU6Y,GAC3BwM,EAAQxM,GAAc,SAAU1N,QAClB,IAAPA,IAAgBA,EAAK6Z,GAE1B,IADA,IAAIhhB,EAAO,GAAIC,EAAMC,UAAU3G,OAAS,EAChC0G,KAAQ,GAAID,EAAMC,GAAQC,UAAWD,EAAM,GAEnD,IAAIE,EAAWkhB,EAAQlgB,IAAIgG,GAC3B,GAAIhH,GAAYA,EAAS0U,GAAe,OAAO1U,EAAS0U,GAAY1L,MAAMhJ,EAAUH,OAKnFqhB,EAGT,SAASI,aAAcV,QACD,IAAfA,IAAwBA,EAAa,IAE1C,IAAIC,EAAkBD,EAAWC,gBAC7BC,EAAcF,EAAW7kB,YACzBilB,EAAMJ,EAAWI,IA+DrB,OA9DchM,MAAM5U,OAClBugB,mBAAmB,CACjBE,gBAAiBA,EACjB9kB,YAAa+kB,EACbE,IAAKA,EACLD,QAAS,YAEX,CACEQ,KAAM,SAAcva,EAAIkK,EAASsQ,GAC/B,IAAIJ,EAAM7c,EAAEyC,GACZ,GAAIoa,EAAIhoB,OAAS,GAAKooB,EAAU,CAE9B,IAAIC,EAAcld,EAAEid,GAAUrlB,QAAQ,SAClCslB,EAAYroB,QACdgoB,EAAIhjB,MAAK,SAAUK,EAAOijB,GACxB,IAAIC,EAAWpd,EAAEmd,GACbC,EAASxlB,QAAQslB,GAAa,KAAOA,EAAY,KACnDL,EAAMO,MAQd,GAHIP,EAAIhoB,OAAS,IACfgoB,EAAMA,EAAIjU,GAAGiU,EAAIhoB,OAAS,IAEvBgoB,EAAIhoB,OAAT,CACA,IAAI4G,EAAWohB,EAAI,GAAGQ,QACtB,IAAK5hB,EAAU,CACb,IAAIuR,EAAS6P,EAAIha,UACjBpH,EAAW,IAAI8gB,EAAYE,EAAKhlB,OAAOqM,OAAO,GAAI,CAACrB,GAAIoa,GAAM7P,IAE/D,OAAOvR,EAASuhB,KAAKrQ,KAEvB2Q,MAAO,SAAe7a,EAAIkK,EAASsQ,QACrB,IAAPxa,IAAgBA,EAAK6Z,GAE1B,IAAIO,EAAM7c,EAAEyC,GACZ,GAAKoa,EAAIhoB,OAAT,CACA,GAAIgoB,EAAIhoB,OAAS,EAAG,CAElB,IAAI0oB,EACJ,GAAIN,EAAU,CACZ,IAAIO,EAAYxd,EAAEid,GACdO,EAAU3oB,SACZ0oB,EAAYC,EAAU5lB,QAAQilB,IAIhCA,EADEU,GAAaA,EAAU1oB,OAAS,EAC5B0oB,EAEAV,EAAIjU,GAAGiU,EAAIhoB,OAAS,GAG9B,IAAI4G,EAAWohB,EAAI,GAAGQ,QACtB,IAAK5hB,EAAU,CACb,IAAIuR,EAAS6P,EAAIha,UACjBpH,EAAW,IAAI8gB,EAAYE,EAAKhlB,OAAOqM,OAAO,GAAI,CAACrB,GAAIoa,GAAM7P,IAE/D,OAAOvR,EAAS6hB,MAAM3Q,OAO9B,IAAI8Q,eAAiB,GACrB,SAASC,WAAWC,GAClB,IAAIrqB,EAAaC,KACjB,OAAO,IAAIqqB,SAAQ,SAAUC,EAASC,GACpC,IACIC,EACAC,EACAC,EAHAxB,EAAMnpB,EAAWmI,SAIrB,GAAKkiB,EAAL,CAcA,GAA4B,iBAAjBA,EAA2B,CACpC,IAAIO,EAAmBP,EAAaxoB,MAAM,iBAC1C,GAAIwoB,EAAazoB,QAAQ,KAAO,GAAKgpB,GAAoBA,EAAiB,GAAGrpB,SAAW8oB,EAAa9oB,OAAQ,CAC3G,IAAK4nB,GAAQA,IAAQA,EAAIzP,OAAOmR,gBAE9B,YADAL,EAAO,IAAIvkB,MAAM,0FAGnBwkB,EAActB,EAAIzP,OAAsB,gBAAI,IAAM2Q,EAAe,WAEjEI,EAAaJ,MAEkB,mBAAjBA,EAChBM,EAAaN,EAGbK,EAAYL,EAGd,GAAIM,EAAY,CACd,IAAI/qB,EAAS+qB,EAAW3qB,GAAY,GACpC,IAAKJ,EAEH,YADA4qB,EAAO,IAAIvkB,MAAM,gFAInB,GAAIjG,EAAW0I,UAAUif,SAAW3nB,EAAW0I,UAAUif,QAAQ/nB,EAAO6E,MAEtE,YADA8lB,IAIF1B,EAAQjpB,GAER2qB,IAEF,GAAIG,EAAW,CACb,IAAII,EAAWJ,EACf,IAAKI,EAEH,YADAN,EAAO,IAAIvkB,MAAM,uEAInB,GAAIjG,EAAW0I,UAAUif,SAAW3nB,EAAW0I,UAAUif,QAAQmD,EAASrmB,MAExE,YADA8lB,IAIF1B,EAAQiC,GAERP,IAEF,GAAIE,EAAY,CACd,GAAIN,eAAevoB,QAAQ6oB,IAAe,EAExC,YADAF,IAGFJ,eAAexoB,KAAK8oB,GACpB,IAAIM,EAAa,IAAIT,SAAQ,SAAUU,EAAeC,GACpDjrB,EAAWkrB,QAAQ/hB,IACjBshB,GACA,SAAUU,GACR,IACIC,EAAmB,gCADdjO,MAAMvP,KAGXyd,EAAW5hB,IAAIc,cAAc,UACjC8gB,EAASre,UAAY,UAAYoe,EAAmB,oEAAuED,EAAc/pB,OAAU,IACnJsL,EAAE,QAAQ8I,OAAO6V,GAEjB,IAAIC,EAAkB/f,IAAI6f,UACnB7f,IAAI6f,GACX1e,EAAE2e,GAAUjd,SAEZ,IAAIxO,EAAS0rB,EAAgBtrB,GAAY,GAEpCJ,GAMDI,EAAW0I,UAAUif,SAAW3nB,EAAW0I,UAAUif,QAAQ/nB,EAAO6E,OAMxEokB,EAAQjpB,GALNorB,KANAC,EAAa,IAAIhlB,MAAO,kDAAoDwkB,EAAa,aAe7F,SAAUc,EAAKC,GACbP,EAAaM,EAAKC,SAIpBC,EAAY,IAAInB,SAAQ,SAAUoB,GACpC1rB,EAAWkrB,QAAQ/hB,IACjBshB,EAAW3pB,QAAQ,MAAOqoB,EAAIwC,IAAM,WAAa,SACjD,SAAUC,GACR,IAAIC,EAAUpiB,IAAIc,cAAc,SAChCshB,EAAQ7e,UAAY4e,EACpBlf,EAAE,QAAQ8I,OAAOqW,GAEjBH,OAEF,WACEA,UAKNpB,QAAQwB,IAAI,CAACf,EAAYU,IAAYM,MAAK,WACxCxB,OACCyB,OAAM,SAAUC,GACjBzB,EAAOyB,YA9HTzB,EAAO,IAAIvkB,MAAM,8CAInB,SAAS4iB,EAAQjpB,GACfI,EAAWyoB,IAAI7oB,GAEXupB,IACFA,EAAI7B,gBAAgB1nB,EAAQupB,EAAIzP,QAChCyP,EAAItB,UAAUjoB,QA2HtB,IAAII,WAA2B,SAAUknB,GACvC,SAASlnB,EAAW0Z,GAElB,GADAwN,EAAgB/gB,KAAKlG,KAAMyZ,GACvB1Z,EAAWmI,SACb,MAAM,IAAIlC,MAAM,6EAGlB,IAAIimB,EAAe/O,MAAM5U,OAAO,GAAImR,GAGhCyP,EAAMlpB,KAEVD,EAAWmI,SAAWghB,EAGtB,IAAIgD,EAAW,CACbC,QAAS,QACTxe,GAAI,wBACJ7H,KAAM,OACNqgB,MAAO,OACPiG,SAAU9gB,IAAIE,UAAU4gB,SACxBC,OAAQ,GACR7nB,KAAM,aACNomB,gBAAiB,KACjB0B,mBAAmB,EACnBC,MAAM,EACNC,eAAe,EACfC,oBAAoB,EACpBC,sBAAsB,EACtBC,eAAWxsB,EACXysB,kBAAczsB,GAIhB+oB,EAAIzB,iBAAiByE,GAGrBhD,EAAIzP,OAASyD,MAAM5U,OAAO4jB,EAAUzS,GAEpC,IAAIoT,EAAUpgB,EAAEyc,EAAIzP,OAAO3T,MAE3BoX,MAAM5U,OAAO4gB,EAAK,CAEhBvb,GAAIub,EAAIzP,OAAO9L,GAEfnJ,KAAM0kB,EAAIzP,OAAOjV,KAEjB2nB,QAASjD,EAAIzP,OAAO0S,QAEpBE,OAAQnD,EAAIzP,OAAO4S,OAEnBD,SAAUlD,EAAIzP,OAAO2S,SAErBtmB,KAAM+mB,EAENnB,IAAkC,QAA7BmB,EAAQ3Z,IAAI,aAEjBiT,MAC2B,SAArB+C,EAAIzP,OAAO0M,MACTjC,OAAOI,IAAc,MACrBJ,OAAOO,SAAWP,OAAOkB,SAAmB,SACzC,KAEF8D,EAAIzP,OAAO0M,MAGpB8F,aAAcA,EACda,OAAQxhB,IAAIE,UAAUuhB,SAIpB7D,EAAIpjB,MAAQojB,EAAIpjB,KAAK,KACvBojB,EAAIpjB,KAAK,GAAGknB,GAAK9D,GAInBA,EAAIb,aAGJa,EAAI+D,WAGJ,IAAIC,EAAO,+BACPC,EAAQ,gCAqCZ,OApCAjE,EAAIkE,GAAK,GACL9hB,IAAIiB,aACN2c,EAAIkE,GAAGC,KAAO/hB,IAAIiB,WAAW2gB,GAC7BhE,EAAIkE,GAAGE,MAAQhiB,IAAIiB,WAAW4gB,IAEhCjE,EAAIqE,oBAAsB,SAA6BxS,GACrD,IAAI/F,EAAU+F,EAAI/F,QACdwY,EAAQzS,EAAIyS,MAEhB,GAAKxY,EAAL,CAGA,IAAInI,EAAOrD,IAAIS,cAAc,QACzBujB,IAAUN,GACZrgB,EAAKmB,UAAUC,IAAI,cACnBib,EAAIuE,WAAY,EAChBvE,EAAIvC,KAAK,mBAAmB,IACnB6G,IAAUL,IACnBtgB,EAAKmB,UAAUG,OAAO,cACtB+a,EAAIuE,WAAY,EAChBvE,EAAIvC,KAAK,mBAAmB,MAK5BuC,EAAIzP,OAAO8S,OACTrI,OAAOgB,SAAWgE,EAAIzP,OAAO6S,kBAC/B7f,EAAEjD,KAAK8G,GAAG,eAAe,WACvB4Y,EAAIqD,UAGNrD,EAAIqD,QAKDrD,EAGJjC,IAAkBlnB,EAAWmnB,UAAYD,GAC9ClnB,EAAW0I,UAAYvE,OAAOijB,OAAQF,GAAmBA,EAAgBxe,WACzE1I,EAAW0I,UAAUxE,YAAclE,EAEnC,IAAI2tB,EAAqB,CAAEjhB,EAAG,CAAE5E,cAAc,GAAO8lB,GAAI,CAAE9lB,cAAc,IACrED,EAAkB,CAAE4E,KAAM,CAAE3E,cAAc,GAAO4E,EAAG,CAAE5E,cAAc,GAAOR,UAAW,CAAEQ,cAAc,GAAO2P,MAAO,CAAE3P,cAAc,GAAO+lB,OAAQ,CAAE/lB,cAAc,IA0LvK,OAxLA9H,EAAW0I,UAAUwkB,SAAW,WAC9B,IAAI/D,EAAMlpB,KAGVkpB,EAAIxkB,KAAO,GACPwkB,EAAIzP,OAAO/U,MAAmC,mBAApBwkB,EAAIzP,OAAO/U,KACvCwY,MAAM5U,OAAO4gB,EAAIxkB,KAAMwkB,EAAIzP,OAAO/U,KAAK2W,KAAK6N,EAArBA,IACdA,EAAIzP,OAAO/U,MACpBwY,MAAM5U,OAAO4gB,EAAIxkB,KAAMwkB,EAAIzP,OAAO/U,MAGpCwkB,EAAIE,QAAU,GACVF,EAAIzP,OAAO2P,SACbllB,OAAO2B,KAAKqjB,EAAIzP,OAAO2P,SAASrlB,SAAQ,SAAU6Y,GACF,mBAAnCsM,EAAIzP,OAAO2P,QAAQxM,GAC5BsM,EAAIE,QAAQxM,GAAcsM,EAAIzP,OAAO2P,QAAQxM,GAAYvB,KAAK6N,GAE9DA,EAAIE,QAAQxM,GAAcsM,EAAIzP,OAAO2P,QAAQxM,OAMrD7c,EAAW0I,UAAUolB,oBAAsB,WACzC,GAAKviB,IAAIiB,WAAT,CACA,IAAI2c,EAAMlpB,KACN6M,EAAOrD,IAAIS,cAAc,QACzBif,EAAIkE,GAAGC,MAAQnE,EAAIkE,GAAGE,QACxBpE,EAAIkE,GAAGC,KAAKS,YAAY5E,EAAIqE,qBAC5BrE,EAAIkE,GAAGE,MAAMQ,YAAY5E,EAAIqE,sBAE3BrE,EAAIkE,GAAGC,MAAQnE,EAAIkE,GAAGC,KAAKrY,SAC7BnI,EAAKmB,UAAUC,IAAI,cACnBib,EAAIuE,WAAY,EAChBvE,EAAIvC,KAAK,mBAAmB,IACnBuC,EAAIkE,GAAGE,OAASpE,EAAIkE,GAAGE,MAAMtY,UACtCnI,EAAKmB,UAAUG,OAAO,cACtB+a,EAAIuE,WAAY,EAChBvE,EAAIvC,KAAK,mBAAmB,MAIhC5mB,EAAW0I,UAAUslB,qBAAuB,WAC1C,GAAKziB,IAAIiB,WAAT,CACUvM,KACFotB,GAAGC,MADDrtB,KACaotB,GAAGC,KAAKW,eADrBhuB,KACwCutB,qBADxCvtB,KAEFotB,GAAGE,OAFDttB,KAEcotB,GAAGE,MAAMU,eAFvBhuB,KAE0CutB,uBAGtDxtB,EAAW0I,UAAUwlB,iBAAmB,SAA2BzgB,GACjE,IAAI0b,EAAMlpB,KACVkpB,EAAIgF,OAAO7C,gBACTnC,EAAIzP,OAAOkT,UACXzD,EAAIzP,OAAOmT,aACX,CAAEuB,iBAAkB,CAAEjf,GAAIga,EAAIpjB,KAAK,GAAIA,MAAM,KAC7C,SAAUoJ,GACRga,EAAIpjB,KAAO2G,EAAEyC,GACbga,EAAIpjB,KAAK,GAAGknB,GAAK9D,EACjBA,EAAIkF,cAAgBlf,EAAGmf,YACnB7gB,GAAYA,OAElB,gBAKJzN,EAAW0I,UAAU6lB,MAAQ,WAC3B,IAAIpF,EAAMlpB,KACV,OAAIkpB,EAAIqF,cAERrF,EAAIpjB,KAAK+H,SAAS,2BAGdqb,EAAIwC,KACNjf,EAAE,QAAQ+B,KAAK,MAAO,OAIpB0a,EAAIzP,OAAO+S,eACbtD,EAAI2E,sBAINviB,IAAI1B,iBAAiB,WAAW,WAC9Bsf,EAAI4D,QAAS,EACb5D,EAAIvC,KAAK,WACTuC,EAAIvC,KAAK,cAAc,MAEzBrb,IAAI1B,iBAAiB,UAAU,WAC7Bsf,EAAI4D,QAAS,EACb5D,EAAIvC,KAAK,UACTuC,EAAIvC,KAAK,cAAc,MAIzBuC,EAAIpjB,KAAK+H,SAAS,mBAGlBpB,EAAE,QAAQyB,YAAY,iBAAiBL,SAASqb,EAAI/C,OAGhD+C,EAAIzP,OAAOgT,oBAAoC,QAAdvD,EAAI/C,OAAmBjC,OAAOI,KACjE7X,EAAE,QAAQoB,SAAS,wBAEjBqb,EAAIzP,OAAOiT,sBAAsC,QAAdxD,EAAI/C,OAAmBjC,OAAOI,KACnE7X,EAAE,QAAQoB,SAAS,0BAIrBqP,MAAMa,WAAU,WACdmL,EAAIpjB,KAAKoI,YAAY,8BAGvBgb,EAAIqF,aAAc,EAClBrF,EAAIvC,KAAK,SA9CqBuC,GAmDhCnpB,EAAW0I,UAAU8jB,KAAO,WAC1B,IAAIrD,EAAMlpB,KACNkpB,EAAIzP,OAAOkT,WAAazD,EAAIzP,OAAOmT,aACrC1D,EAAI+E,kBAAiB,WACnB/E,EAAIoF,WAGNpF,EAAIoF,SAKRvuB,EAAW0I,UAAU0hB,WAAa,WAEhC,IADA,IAAIpiB,EAAO,GAAIC,EAAMC,UAAU3G,OACvB0G,KAAQD,EAAMC,GAAQC,UAAWD,GAEzC,OAAOjI,EAAWoqB,WAAWjZ,MAAMnR,EAAYgI,IAIjDhI,EAAW0I,UAAU+lB,YAAc,WAEjC,IADA,IAAIzmB,EAAO,GAAIC,EAAMC,UAAU3G,OACvB0G,KAAQD,EAAMC,GAAQC,UAAWD,GAEzC,OAAOjI,EAAWyuB,YAAYtd,MAAMnR,EAAYgI,IAGlDhI,EAAW0I,UAAUgmB,cAAgB,SAAwBC,EAAM/gB,GAEjE,OADU3N,KACDkoB,YADCloB,KACkBkoB,WAAWwG,IAD7B1uB,KAECkoB,WAAWwG,GAAM/gB,IAD2B,IAKzD+f,EAAmBjhB,EAAEvD,IAAM,WACzB,OAAOuD,GAGTihB,EAAmBC,GAAGzkB,IAAM,WAC1B,OAAO7B,WAGTO,EAAgB4E,KAAKtD,IAAM,WACzB,OAAOuD,GAGT7E,EAAgB6E,EAAEvD,IAAM,WACtB,OAAOuD,GAGT7E,EAAgBP,UAAU6B,IAAM,WAC9B,OAAO7B,WAGTO,EAAgB4P,MAAMtO,IAAM,WAC1B,OAAO+d,GAGTrf,EAAgBgmB,OAAO1kB,IAAM,WAC3B,OAAOkd,aAGTliB,OAAOiF,iBAAkBpJ,EAAW0I,UAAWilB,GAC/CxpB,OAAOiF,iBAAkBpJ,EAAY6H,GAE9B7H,EA1TqB,CA2T5BknB,iBAEFlnB,WAAWypB,aAAeA,aAC1BzpB,WAAW8oB,mBAAqBA,mBAEhC9oB,WAAWoqB,WAAaA,WACxBpqB,WAAWyuB,YAAc,SAAqB9G,GAC5C,OAAO2C,QAAQwB,IAAInE,EAAQ/S,KAAI,SAAUhV,GAAU,OAAOI,WAAWoqB,WAAWxqB,QAGlF,IAAIgvB,QAAU,GACVC,cAAgB,EAEpB,SAASC,QAAQC,GACf,IAAIC,EAAqB7R,MAAM5U,OAAO,GAAIqmB,SAC1C,uEAAyEvtB,MAAM,KAAK2C,SAAQ,SAAUirB,UAC7FD,EAAmBC,MAE5B,IAAI9C,EAAWhP,MAAM5U,OAAO,CAC1B8V,IAAK9S,IAAIR,SAASuU,WAClBmH,OAAQ,MACR9hB,MAAM,EACNuqB,OAAO,EACPC,OAAO,EACPC,KAAM,GACNC,SAAU,GACVC,QAAS,GACTC,UAAW,GACXC,WAAY,GACZC,aAAa,EACbC,SAAU,OACVC,YAAa,oCACbC,QAAS,GACRZ,GAECzpB,EAAU4X,MAAM5U,OAAO,GAAI4jB,EAAU4C,GAIzC,SAASc,EAAaZ,GAEpB,IADA,IAaIa,EACAC,EAdAprB,EAAO,GAAIsD,EAAMC,UAAU3G,OAAS,EAChC0G,KAAQ,GAAItD,EAAMsD,GAAQC,UAAWD,EAAM,GAsBnD,OARI2mB,QAAQK,KACVa,EAAsBlB,QAAQK,GAAc9d,MAAMyd,QAASjqB,IAEzDY,EAAQ0pB,KACVc,EAAsBxqB,EAAQ0pB,GAAc9d,MAAM5L,EAASZ,IAE1B,kBAAxBmrB,IAAqCA,GAAsB,GACnC,kBAAxBC,IAAqCA,GAAsB,GAC9DD,GAAuBC,EAKjC,IAAuB,IADNF,EAAa,eAAgBtqB,GAC9C,CAGIA,EAAQjD,OAAQiD,EAAQkhB,OAASlhB,EAAQjD,MAG7C,IAOM0tB,EAPFC,EAAe1qB,EAAQ8Y,IAAIzc,QAAQ,MAAQ,EAAI,IAAM,IAGrD6kB,EAASlhB,EAAQkhB,OAAOlZ,cAG5B,IAAgB,QAAXkZ,GAA+B,SAAXA,GAAgC,YAAXA,GAAmC,WAAXA,IAAwBlhB,EAAQZ,MAI5DqrB,EAFZ,iBAAjBzqB,EAAQZ,KAEbY,EAAQZ,KAAK/C,QAAQ,MAAQ,EAAkB2D,EAAQZ,KAAKtD,MAAM,KAAK,GACvDkE,EAAQZ,KAGfwY,MAAMsC,gBAAgBla,EAAQZ,OAE9BpD,SACbgE,EAAQ8Y,KAAO4R,EAAeD,EACT,MAAjBC,IAAwBA,EAAe,MAK/C,GAAyB,SAArB1qB,EAAQmqB,UAAuBnqB,EAAQ8Y,IAAIzc,QAAQ,cAAgB,EAAG,CACxE,IACIsuB,EADAjB,EAAe,YAAc7iB,KAAK6R,OAAU4Q,eAAiB,IAE7DsB,EAAgB5qB,EAAQ8Y,IAAIhd,MAAM,aAClC+uB,EAAcD,EAAc,GAAM,YAAclB,EACpD,GAAIkB,EAAc,GAAGvuB,QAAQ,MAAQ,EAAG,CACtC,IAAIyuB,EAAUF,EAAc,GAAG9uB,MAAM,KAAKsR,QAAO,SAAUxD,GAAM,OAAOA,EAAGvN,QAAQ,KAAO,KAAMwC,KAAK,KACjGisB,EAAQ9uB,OAAS,IAAK6uB,GAAc,IAAMC,GAIhD,IAAIC,EAAS7mB,IAAIc,cAAc,UA2B/B,OA1BA+lB,EAAOhuB,KAAO,kBACdguB,EAAOC,QAAU,WACfhkB,aAAa2jB,GACbL,EAAa,QAAS,KAAM,cAAe,eAC3CA,EAAa,WAAY,KAAM,gBAEjCS,EAAO7nB,IAAM2nB,EAGb7kB,IAAI0jB,GAAgB,SAAuBtqB,GACzC4H,aAAa2jB,GACbL,EAAa,UAAWlrB,GACxB2rB,EAAOna,WAAWkB,YAAYiZ,GAC9BA,EAAS,YACF/kB,IAAI0jB,IAEbxlB,IAAIS,cAAc,QAAQ0L,YAAY0a,QAElC/qB,EAAQqqB,QAAU,IACpBM,EAAe5jB,YAAW,WACxBgkB,EAAOna,WAAWkB,YAAYiZ,GAC9BA,EAAS,KACTT,EAAa,QAAS,KAAM,UAAW,aACtCtqB,EAAQqqB,WAOA,QAAXnJ,GAA+B,SAAXA,GAAgC,YAAXA,GAAmC,WAAXA,IAC7C,IAAlBlhB,EAAQ4pB,QACV5pB,EAAQ8Y,KAAO4R,EAAe,WAAc7jB,KAAK6R,OAKrD,IAAIsN,EAAM,IAAIiF,eAQd,GALAjF,EAAI6E,WAAa7qB,EAAQ8Y,IACzBkN,EAAIkF,kBAAoBlrB,GAID,IADNsqB,EAAa,aAActE,EAAKhmB,GACjB,OAAOgmB,EAGvCA,EAAI7B,KAAKjD,EAAQlhB,EAAQ8Y,IAAK9Y,EAAQ2pB,MAAO3pB,EAAQ6pB,KAAM7pB,EAAQ8pB,UAGnE,IAAIqB,EAAW,KAEf,IAAgB,SAAXjK,GAAgC,QAAXA,GAA+B,UAAXA,IAAuBlhB,EAAQZ,KAC3E,GAAIY,EAAQkqB,YAGV,GAFwB,CAACkB,YAAaC,KAAMC,SAAUC,UAEhClvB,QAAQ2D,EAAQZ,KAAKT,cAAgB,EACzDwsB,EAAWnrB,EAAQZ,SACd,CAEL,IAAIosB,EAAW,8BAAiC3kB,KAAK6R,MAAMqB,SAAS,IAExC,wBAAxB/Z,EAAQoqB,YACVpE,EAAIyF,iBAAiB,eAAiB,iCAAmCD,GAEzExF,EAAIyF,iBAAiB,eAAgBzrB,EAAQoqB,aAE/Ce,EAAW,GACX,IAAIO,EAAS9T,MAAMsC,gBAAgBla,EAAQZ,MAC3C,GAA4B,wBAAxBY,EAAQoqB,YAAuC,CACjDsB,EAASA,EAAO5vB,MAAM,KAEtB,IADA,IAAI6vB,EAAU,GACLjwB,EAAI,EAAGA,EAAIgwB,EAAO1vB,OAAQN,GAAK,EACtCiwB,EAAQvvB,KAAM,yCAA6CsvB,EAAOhwB,GAAGI,MAAM,KAAK,GAAM,YAAgB4vB,EAAOhwB,GAAGI,MAAM,KAAK,GAAM,QAEnIqvB,EAAW,KAAOK,EAAW,OAAUG,EAAQ9sB,KAAM,KAAO2sB,EAAW,QAAY,KAAOA,EAAW,cAErGL,EADiC,qBAAxBnrB,EAAQoqB,YACN9rB,KAAKC,UAAUyB,EAAQZ,MAEvBssB,OAIfP,EAAWnrB,EAAQZ,KACnB4mB,EAAIyF,iBAAiB,eAAgBzrB,EAAQoqB,aA4EjD,MAzEyB,SAArBpqB,EAAQmqB,UAAyBnqB,EAAQ+pB,SAAY/pB,EAAQ+pB,QAAQ6B,QACvE5F,EAAIyF,iBAAiB,SAAU,oBAI7BzrB,EAAQ+pB,SACVnrB,OAAO2B,KAAKP,EAAQ+pB,SAAStrB,SAAQ,SAAUotB,QACF,IAAhC7rB,EAAQ+pB,QAAQ8B,IAC3B7F,EAAIyF,iBAAiBI,EAAY7rB,EAAQ+pB,QAAQ8B,YAKlB,IAAxB7rB,EAAQ8rB,cAEjB9rB,EAAQ8rB,YAAc,0BAA0BlsB,KAAKI,EAAQ8Y,MAAQ7d,OAAO8wB,KAAO/lB,IAAIR,SAASC,MAG7FzF,EAAQ8rB,aACX9F,EAAIyF,iBAAiB,mBAAoB,kBAGvCzrB,EAAQgqB,WACVpS,MAAM5U,OAAOgjB,EAAKhmB,EAAQgqB,WAK5BhE,EAAIgG,OAAS,WAET,IAAIC,EADN,GAAKjG,EAAIC,QAAU,KAAOD,EAAIC,OAAS,KAAuB,IAAfD,EAAIC,OAEjD,GAAyB,SAArBjmB,EAAQmqB,SAAqB,CAC/B,IAAI+B,EACJ,IACED,EAAe3tB,KAAK6tB,MAAMnG,EAAIoG,cAC9B,MAAO1F,GACPwF,GAAa,EAEVA,EAGH5B,EAAa,QAAStE,EAAK,aAAc,cAFzCsE,EAAa,UAAW2B,EAAcjG,EAAIC,OAAQD,QAMpDsE,EAAa,UADb2B,EAAoC,SAArBjG,EAAIqG,cAAgD,KAArBrG,EAAIqG,aAAsBrG,EAAIoG,aAAepG,EAAIsG,SACzDtG,EAAIC,OAAQD,QAGpDsE,EAAa,QAAStE,EAAKA,EAAIC,OAAQD,EAAIuG,YAEzCvsB,EAAQiqB,aACNZ,QAAQY,YAAcZ,QAAQY,WAAWjE,EAAIC,SAAWoD,QAAQY,WAAWjE,EAAIC,QAAQD,GACvFhmB,EAAQiqB,WAAWjE,EAAIC,SAAWjmB,EAAQiqB,WAAWjE,EAAIC,QAAQD,IAEvEsE,EAAa,WAAYtE,EAAKA,EAAIC,SAGpCD,EAAIgF,QAAU,WACZV,EAAa,QAAStE,EAAKA,EAAIC,OAAQD,EAAIC,QAC3CqE,EAAa,WAAYtE,EAAK,UAI5BhmB,EAAQqqB,QAAU,IACpBrE,EAAIqE,QAAUrqB,EAAQqqB,QACtBrE,EAAIwG,UAAY,WACdlC,EAAa,QAAStE,EAAK,UAAW,WACtCsE,EAAa,WAAYtE,EAAK,cAMX,IADNsE,EAAa,aAActE,EAAKhmB,GACVgmB,GAGvCA,EAAIyG,KAAKtB,GAGFnF,IAET,SAAS0G,gBAAgBxL,GAIvB,IAHA,IAAIjW,EAAQ0hB,EAERlqB,EAAO,GAAIC,EAAMC,UAAU3G,OAAS,EAChC0G,KAAQ,GAAID,EAAMC,GAAQC,UAAWD,EAAM,GACnD,IAAI+S,EAAM,GACNqD,EAAMrD,EAAI,GACVrW,EAAOqW,EAAI,GACXmX,EAAUnX,EAAI,GACdoX,EAAQpX,EAAI,GACZ0U,EAAW1U,EAAI,GACI,mBAAZhT,EAAK,IACEqW,GAAf7N,EAASxI,GAAmB,GAAImqB,EAAU3hB,EAAO,GAAI4hB,EAAQ5hB,EAAO,GAAIkf,EAAWlf,EAAO,KAEzE6N,GAAjB6T,EAAWlqB,GAAqB,GAAIrD,EAAOutB,EAAS,GAAIC,EAAUD,EAAS,GAAIE,EAAQF,EAAS,GAAIxC,EAAWwC,EAAS,IAE3H,CAACC,EAASC,GAAOpuB,SAAQ,SAAUyJ,GACT,iBAAbA,IACTiiB,EAAWjiB,EACPA,IAAa0kB,EAAWA,OAAU/xB,EAC/BgyB,OAAQhyB,MAInB,IAAI2uB,EAAiB,CACnB1Q,IAAKA,EACLoI,OAAmB,SAAXA,GAAgC,aAAXA,EAAwB,OAAS,MAC9D9hB,KAAMA,EACNwtB,QAASA,EACTC,MAAOA,EACP1C,SAPFA,EAAWA,IAAwB,SAAXjJ,GAAgC,aAAXA,EAAwB,YAASrmB,IAiB9E,MARe,aAAXqmB,GACFtJ,MAAM5U,OAAOwmB,EAAgB,CAC3BY,YAAa,mBACbF,aAAa,EACb4B,aAAa,EACb1sB,KAAsB,iBAATA,EAAoBA,EAAOd,KAAKC,UAAUa,KAGpDmqB,QAAQC,GAEjB,SAASsD,uBAAuB5L,GAE9B,IADA,IAAIze,EAAO,GAAIC,EAAMC,UAAU3G,OAAS,EAChC0G,KAAQ,GAAID,EAAMC,GAAQC,UAAWD,EAAM,GAEnD,IAAIoW,EAAMrW,EAAK,GACXrD,EAAOqD,EAAK,GACZ0nB,EAAW1nB,EAAK,GACpB,OAAO,IAAIsiB,SAAQ,SAAUC,EAASC,GACpCyH,gBACExL,EACApI,EACA1Z,GACA,SAAU6sB,EAAchG,EAAQD,GAC9BhB,EAAQ,CAAE5lB,KAAM6sB,EAAchG,OAAQA,EAAQD,IAAKA,OAErD,SAAUA,EAAKC,EAAQ8G,GAErB9H,EAAO,CAAEe,IAAKA,EAAKC,OAAQA,EAAQ8G,QAASA,MAE9C5C,MAINvrB,OAAOqM,OAAOse,QAAS,CACrB3lB,IAAK,WAEH,IADA,IAAInB,EAAO,GAAIC,EAAMC,UAAU3G,OACvB0G,KAAQD,EAAMC,GAAQC,UAAWD,GAEzC,OAAOgqB,gBAAgB9gB,WAAM,EAAQ,CAAE,OAAQiK,OAAQpT,KAEzDuqB,KAAM,WAEJ,IADA,IAAIvqB,EAAO,GAAIC,EAAMC,UAAU3G,OACvB0G,KAAQD,EAAMC,GAAQC,UAAWD,GAEzC,OAAOgqB,gBAAgB9gB,WAAM,EAAQ,CAAE,QAASiK,OAAQpT,KAE1DwqB,KAAM,WAEJ,IADA,IAAIxqB,EAAO,GAAIC,EAAMC,UAAU3G,OACvB0G,KAAQD,EAAMC,GAAQC,UAAWD,GAEzC,OAAOgqB,gBAAgB9gB,WAAM,EAAQ,CAAE,QAASiK,OAAQpT,KAE1DyqB,QAAS,WAEP,IADA,IAAIzqB,EAAO,GAAIC,EAAMC,UAAU3G,OACvB0G,KAAQD,EAAMC,GAAQC,UAAWD,GAEzC,OAAOgqB,gBAAgB9gB,WAAM,EAAQ,CAAE,QAASiK,OAAQpT,KAE1D0qB,SAAU,WAER,IADA,IAAI1qB,EAAO,GAAIC,EAAMC,UAAU3G,OACvB0G,KAAQD,EAAMC,GAAQC,UAAWD,GAEzC,OAAOgqB,gBAAgB9gB,WAAM,EAAQ,CAAE,YAAaiK,OAAQpT,OAIhE8mB,QAAQ6D,QAAU,SAAwB5D,GACxC,OAAO,IAAIzE,SAAQ,SAAUC,EAASC,GACpCsE,QAAQ3qB,OAAOqM,OAAOue,EAAgB,CACpCoD,QAAS,SAAiBxtB,EAAM6mB,EAAQD,GACtChB,EAAQ,CAAE5lB,KAAMA,EAAM6mB,OAAQA,EAAQD,IAAKA,KAE7C6G,MAAO,SAAe7G,EAAKC,EAAQ8G,GAEjC9H,EAAO,CAAEe,IAAKA,EAAKC,OAAQA,EAAQ8G,QAASA,YAKpDnuB,OAAOqM,OAAOse,QAAQ6D,QAAS,CAC7BxpB,IAAK,WAEH,IADA,IAAInB,EAAO,GAAIC,EAAMC,UAAU3G,OACvB0G,KAAQD,EAAMC,GAAQC,UAAWD,GAEzC,OAAOoqB,uBAAuBlhB,WAAM,EAAQ,CAAE,OAAQiK,OAAQpT,KAEhEuqB,KAAM,WAEJ,IADA,IAAIvqB,EAAO,GAAIC,EAAMC,UAAU3G,OACvB0G,KAAQD,EAAMC,GAAQC,UAAWD,GAEzC,OAAOoqB,uBAAuBlhB,WAAM,EAAQ,CAAE,QAASiK,OAAQpT,KAEjEwqB,KAAM,WAEJ,IADA,IAAIxqB,EAAO,GAAIC,EAAMC,UAAU3G,OACvB0G,KAAQD,EAAMC,GAAQC,UAAWD,GAEzC,OAAOoqB,uBAAuBlhB,WAAM,EAAQ,CAAE,QAASiK,OAAQpT,KAEjEyqB,QAAS,WAEP,IADA,IAAIzqB,EAAO,GAAIC,EAAMC,UAAU3G,OACvB0G,KAAQD,EAAMC,GAAQC,UAAWD,GAEzC,OAAOoqB,uBAAuBlhB,WAAM,EAAQ,CAAE,QAASiK,OAAQpT,KAEjE0qB,SAAU,WAER,IADA,IAAI1qB,EAAO,GAAIC,EAAMC,UAAU3G,OACvB0G,KAAQD,EAAMC,GAAQC,UAAWD,GAEzC,OAAOoqB,uBAAuBlhB,WAAM,EAAQ,CAAE,YAAaiK,OAAQpT,OAIvE8mB,QAAQ8D,MAAQ,SAAertB,GACzBA,EAAQjD,OAASiD,EAAQkhB,QAC3BtJ,MAAM5U,OAAOhD,EAAS,CAAEkhB,OAAQlhB,EAAQjD,OAE1C6a,MAAM5U,OAAOqmB,QAASrpB,IAGxB,IAAIstB,aAAe,CACjBpuB,KAAM,SACNkkB,MAAO,CACLrE,OAAQH,QAEVyE,OAAQ,CACNtE,OAAQH,QAEV5T,GAAI,CACFic,KAAM,WACJ,IAAIsG,EAAa,GACbhmB,EAAOrD,IAAIS,cAAc,QACzB6oB,EAAgBtpB,IAAIS,cAAc,sDACjC4C,IACDqX,OAAO4B,YAAc5B,OAAOI,KAAOwO,GAA2C,sBAA1BA,EAAcxwB,SACpEuwB,EAAWnxB,KAAK,wBAIlBmxB,EAAWnxB,KAAM,sBAAyB4W,KAAK8E,MAAM8G,OAAO8B,aAExD9B,OAAOyB,KAAOzB,OAAOO,QACvBoO,EAAWnxB,KACR,UAAawiB,OAAS,IAEhBA,OAAOO,UAChBoO,EAAWnxB,KAAK,kBACZwiB,OAAOyB,IACTkN,EAAWnxB,KAAM,UAAawiB,OAAS,MAGvCA,OAAOgB,SAAWhB,OAAOiB,WAC3B0N,EAAWnxB,KAAK,kBAIlBmxB,EAAW9uB,SAAQ,SAAU+J,GAC3BjB,EAAKmB,UAAUC,IAAIH,UAMvBilB,cAAgB,CAClBvuB,KAAM,UACNkkB,MAAO,CACLsK,QAAS3P,SAEXsF,OAAQ,CACNqK,QAAS3P,UAIT4P,YAAc,CAChBzuB,KAAM,QACNkkB,MAAO,CACLwK,MAAOhW,OAETyL,OAAQ,CACNuK,MAAOhW,QAIPiW,aAAe,CACjB3uB,KAAM,SACN0D,SAAU,CACRkrB,QAAS,WAEP,IADUpzB,KACD8F,KAAK,GAAM,MAAO,CAAEkN,MAAO,EAAGO,OAAQ,EAAGc,KAAM,EAAGD,IAAK,GAChE,IAAIT,EAFM3T,KAEO8F,KAAK6N,SAClBoH,EAAM,CAHA/a,KAGK8F,KAAK,GAAGwN,YAHbtT,KAG8B8F,KAAK,GAAG4N,aAAcC,EAAOU,KAAMV,EAAOS,KAC9EpB,EAAQ+H,EAAI,GACZxH,EAASwH,EAAI,GACb1G,EAAO0G,EAAI,GACX3G,EAAM2G,EAAI,GAKd,OAZU/a,KAQNgT,MAAQA,EARFhT,KASNuT,OAASA,EATHvT,KAUNqU,KAAOA,EAVDrU,KAWNoU,IAAMA,EACH,CAAEpB,MAAOA,EAAOO,OAAQA,EAAQc,KAAMA,EAAMD,IAAKA,KAG5D9D,GAAI,CACFic,KAAM,WACJ,IAAIrD,EAAMlpB,KAGVkpB,EAAIkK,UAGJ9nB,IAAI1B,iBAAiB,UAAU,WAC7Bsf,EAAIvC,KAAK,aACR,GAGHrb,IAAI1B,iBAAiB,qBAAqB,WACxCsf,EAAIvC,KAAK,yBAGb0M,kBAAmB,WACPrzB,KAEFqkB,OAAOO,OACbpb,IAAIG,KAAKuK,WAAa,EACtB7H,YAAW,WACT7C,IAAIG,KAAKuK,WAAa,IACrB,KAGPsI,OAAQ,WACIxc,KACNozB,aAONE,cAAgB,CAClB9uB,KAAM,UACNkkB,MAAO,CACLuC,QAAS4D,SAEXlG,OAAQ,CACNsC,QAAS4D,UAMb,SAAS0E,YACP,IASIC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAEAC,EACAC,EAEAC,EACAC,EACAC,EAtBAjL,EAAMlpB,KACNyZ,EAASyP,EAAIzP,OAAO6J,MACpB8Q,EAAY3a,EAASyP,EAAS,MAAI,eAsBtC,SAASmL,EAAqBnlB,GAC5B,IAKIolB,EALA/rB,EAASkE,EAAEyC,GACX7K,EAAUkE,EAAOlE,QAAQoV,EAAO8a,qBACpC,GAAIhsB,EAAOyO,QAAQ,oBAAoB1V,OACrC,OAAO,KAST,GANIiH,EAAO0I,GAAGwI,EAAO8a,uBACnBD,EAAY/rB,GAEVlE,EAAQ/C,OAAS,IACnBgzB,EAAYA,EAAYA,EAAUrmB,IAAI5J,GAAWA,GAE/CiwB,GAAaA,EAAUhzB,OAAS,EAAG,CAGrC,IAFA,IACIkzB,EADAC,EAAe,GAEVzzB,EAAI,EAAGA,EAAIszB,EAAUhzB,OAAQN,GAAK,EACpCwzB,IACHC,EAAa/yB,KAAK4yB,EAAUtzB,KACxBszB,EAAUjf,GAAGrU,GAAGoN,SAAS,qCACxBkmB,EAAUjf,GAAGrU,GAAGoN,SAAS,kCAE5BomB,GAAqB,IAI3BF,EAAY7nB,EAAEgoB,GAEhB,OAAOH,GAAa/rB,EAGtB,SAASmsB,EAAuBxlB,GAE9B,OADkBA,EAAG7K,QAAQ,iBACV/C,OAAS,EAG9B,SAASqzB,IACFZ,GACLA,EAAiBlmB,SAAS,gBAE5B,SAAS+mB,IACFb,IACLA,EAAiB7lB,YAAY,gBAC7B6lB,EAAmB,MAsBrB,SAASc,EAAavL,EAAKnH,EAAG2S,GACvBxL,IACL2K,EAAa/K,EAAI6L,YAAY5N,OAAOmC,EAAKnH,EAAG2S,IAG9C,SAASE,IACFf,IACLA,EAAW9lB,SACX8lB,OAAa9zB,EACb+zB,OAAe/zB,GAEjB,SAAS80B,EAAiB/lB,IACxBglB,EA9BF,SAA2BhlB,GACzB,IAAIgmB,EAAiBzb,EAAO0b,oBACxB7L,EAAM7c,EAAEyC,GACZ,GAAIoa,EAAIrY,GAAGikB,GACT,OAAI5L,EAAIlb,SAAS,cAGVkb,EAET,GAAIA,EAAIjlB,QAAQ6wB,GAAgB5zB,OAAS,EAAG,CAC1C,IAAI8zB,EAAe9L,EAAIjlB,QAAQ6wB,GAAgB7f,GAAG,GAClD,OAAI+f,EAAahnB,SAAS,cAGnBgnB,EAET,OAAO,EAcQC,CAAkBnmB,KACY,IAAxBglB,EAAa5yB,OAIfozB,EAAuBR,IAMxC5nB,aAAa6nB,GACbA,EAAgB9nB,YAAW,WACzB2oB,IACAH,EAAaX,EAAcV,EAAaC,KACvC,MAPHuB,IACAH,EAAaX,EAAcV,EAAaC,IAPxCS,OAAe/zB,EAgBnB,SAASm1B,IACPhpB,aAAa6nB,GACba,IAEF,SAASO,IACFtB,IAAcC,GAAiBP,EAKlCqB,KAJA1oB,aAAa6nB,GACbU,EAAaX,EAAcV,EAAaC,GACxCpnB,WAAW2oB,EAAc,IAgC7B,SAASQ,IACP/oB,EAAE,iBAAiByB,YAAY,gBAC3BkmB,GACFmB,IAmJJ,SAASE,EAAkBjxB,EAAMqM,GAC/BqY,EAAIvC,KAAK,CACPtV,OAAQ7M,EACRE,KAAM,CAACmM,KAMX,SAAS6kB,EAAoB7kB,GAC3B4kB,EAAkB,+BAAgC5kB,GAEpD,SAAS8kB,EAAmB9kB,GAC1B4kB,EAAkB,6BAA8B5kB,GAElD,SAAS+kB,EAAkB/kB,GACzB4kB,EAAkB,2BAA4B5kB,GAEhD,SAASglB,EAAqBhlB,GAC5B4kB,EAAkB,qBAAsB5kB,GAE1C,SAASilB,EAAoBjlB,GAC3B4kB,EAAkB,oBAAqB5kB,GAEzC,SAASklB,EAAmBllB,GAC1B4kB,EAAkB,mBAAoB5kB,GAExC,SAASmlB,EAAiBnlB,GACxB4kB,EAAoB5kB,EAAM,KAAI,IAAOA,EAAM,KAAI,UAAYA,GAE7D,SAASolB,EAAkBplB,GACzB4kB,EAAoB5kB,EAAM,KAAI,WAAaA,GAhVzCqT,OAAOI,KAAOJ,OAAO2B,SAEvBva,IAAI1B,iBAAiB,cAAc,eAkVrC,IAAIga,IAAkBP,QAAQO,iBAAkB,CAAEsS,SAAS,GACvDC,GAAyB9S,QAAQO,iBAAkB,CAAEsS,SAAS,EAAMvlB,SAAS,GAC7EylB,IAAiB/S,QAAQO,iBAAkB,CAAEsS,SAAS,GACtDG,GAAwBhT,QAAQO,iBAAkB,CAAEsS,SAAS,EAAOvlB,SAAS,GAEjFnH,IAAII,iBAAiB,SAlCrB,SAAkBiH,GAChB4kB,EAAkB,QAAS5kB,MAiCW,GAEpCwS,QAAQO,iBACVpa,IAAII,iBAAiBsf,EAAIoN,YAAYC,MAAOb,EAAqBW,GACjE7sB,IAAII,iBAAiBsf,EAAIoN,YAAYE,KAAMb,EAAoBS,GAC/D5sB,IAAII,iBAAiBsf,EAAIoN,YAAYG,IAAKb,EAAmBQ,GAE7D5sB,IAAII,iBAAiBsf,EAAIoN,YAAYC,MAAOV,EAAsBM,GAClE3sB,IAAII,iBAAiBsf,EAAIoN,YAAYE,KAAMV,EAAqBlS,GAChEpa,IAAII,iBAAiBsf,EAAIoN,YAAYG,IAAKV,EAAoBnS,GAC1DP,QAAQC,OAASD,QAAQW,WAC3Bxa,IAAII,iBAAiB,eAAgBosB,EAAkBI,GACvD5sB,IAAII,iBAAiB,gBAAiBosB,EAAkBI,GACxD5sB,IAAII,iBAAiB,aAAcosB,EAAkBI,GAErD5sB,IAAII,iBAAiB,eAAgBqsB,EAAmBrS,GACxDpa,IAAII,iBAAiB,gBAAiBqsB,EAAmBrS,GACzDpa,IAAII,iBAAiB,aAAcqsB,EAAmBrS,MAGxDpa,IAAII,iBAAiBsf,EAAIoN,YAAYC,OAAO,SAAU1lB,GACpD6kB,EAAoB7kB,GACpBglB,EAAqBhlB,MACpB,GACHrH,IAAII,iBAAiBsf,EAAIoN,YAAYE,MAAM,SAAU3lB,GACnD8kB,EAAmB9kB,GACnBilB,EAAoBjlB,MACnB,GACHrH,IAAII,iBAAiBsf,EAAIoN,YAAYG,KAAK,SAAU5lB,GAClD+kB,EAAkB/kB,GAClBklB,EAAmBllB,MAClB,GACCwS,QAAQC,OAASD,QAAQW,WAC3Bxa,IAAII,iBAAiB,gBAAgB,SAAUiH,GAC7CmlB,EAAiBnlB,GACjBolB,EAAkBplB,MACjB,GACHrH,IAAII,iBAAiB,iBAAiB,SAAUiH,GAC9CmlB,EAAiBnlB,GACjBolB,EAAkBplB,MACjB,GACHrH,IAAII,iBAAiB,cAAc,SAAUiH,GAC3CmlB,EAAiBnlB,GACjBolB,EAAkBplB,MACjB,KAIHwS,QAAQC,OACV4F,EAAI5Y,GAAG,SA1HT,SAAqBO,GACnB,IAAI6lB,EAAc7lB,GAAKA,EAAE0B,QAAuB,gBAAb1B,EAAE0B,OACjCokB,EAAoB7C,EA4BxB,OA3BIJ,GAAiB7iB,EAAEtI,SAAWmrB,IAE9BiD,GADED,GAMFjd,EAAOmd,SAAWnd,EAAOod,sBAAwBjD,IACnD+C,GAAoB,GAElBA,IACF9lB,EAAEimB,2BACFjmB,EAAEkmB,kBACFlmB,EAAEmmB,kBAGAvd,EAAOmd,UACT/C,EAAiBxnB,YACf,WACEunB,GAAe,IAEhB1P,OAAOI,KAAOJ,OAAOM,cAAgB,IAAM,MAGhDsP,GAAe,EACfJ,EAAgB,MAERiD,KA6FRzN,EAAI5Y,GAAG,cAzNT,SAA0BO,GAIxB,OAHA8iB,GAAU,EACVC,GAAe,EACfE,GAAe,EACXjjB,EAAEomB,cAAc31B,OAAS,GACvByyB,GAAoBa,KACjB,IAEL/jB,EAAEqmB,QAAQ51B,OAAS,GAAKyyB,GAC1Ba,IAEEnb,EAAOmd,UACL/C,GAAkBvnB,aAAaunB,GACnCA,EAAiBxnB,YAAW,WACtBwE,GAAKA,EAAEqmB,SAAWrmB,EAAEqmB,QAAQ51B,OAAS,IACzCsyB,GAAe,EACf/iB,EAAEmmB,iBACFlD,GAAe,EACfrnB,EAAEoE,EAAEtI,QAAQ8J,QAAQ,UAAWxB,GAC/BqY,EAAIvC,KAAK,UAAW9V,MACnB4I,EAAO0d,eAEZzD,EAAgB7iB,EAAEtI,OAClBirB,EAAc3iB,EAAEomB,cAAc,GAAGG,MACjC3D,EAAc5iB,EAAEomB,cAAc,GAAGI,MAE7B5d,EAAO6d,eACTvD,EAAmBM,EAAqBX,MACfgB,EAAuBX,GAC9CY,IACSZ,IACTC,EAAgB3nB,WAAWsoB,EAAW,MAGtCP,GACFa,EAAiBvB,IAEZ,MAqLPxK,EAAI5Y,GAAG,aAnLT,SAAyBO,GACvB,IAAIyS,EACAiU,EAMJ,GALe,cAAX1mB,EAAExO,OACJihB,EAAQzS,EAAEomB,cAAc,GACxBM,EAAW9d,EAAO+d,8BAGhBD,GAAYjU,EAAO,CACrB,IAAI8T,EAAQ9T,EAAM8T,MACdC,EAAQ/T,EAAM+T,OACd/e,KAAKuJ,IAAIuV,EAAQ5D,GAAe+D,GAAYjf,KAAKuJ,IAAIwV,EAAQ5D,GAAe8D,KAC9E5D,GAAU,QAGZA,GAAU,EAERA,IACFG,GAAe,EACXra,EAAOmd,SACTtqB,aAAaunB,GAEXpa,EAAO6d,cACThrB,aAAa0nB,GACbY,KAEER,GACFkB,QAyJJpM,EAAI5Y,GAAG,YArJT,SAAwBO,GAGtB,OAFAvE,aAAa0nB,GACb1nB,aAAaunB,GACTrqB,IAAIM,gBAAkB+G,EAAEtI,QACtBkR,EAAO6d,aAAe1C,IACtBR,GACFmB,KAEK,IAEL9b,EAAO6d,cACT3C,IACAtoB,WAAWuoB,EAAc,IAEvBR,GACFmB,MAEG9b,EAAOod,sBAAwBjD,GAAiBE,KAC/CjjB,EAAE4B,YAAc5B,EAAEmmB,iBACtBlD,GAAe,GACR,OAkITtqB,IAAII,iBAAiB,eA5OvB,WACE8pB,EAAgB,KAGhBpnB,aAAa0nB,GACb1nB,aAAaunB,GACTpa,EAAO6d,aACT1C,IAIER,GACFmB,MAgOqD,CAAEW,SAAS,KACzDzc,EAAO6d,cAChBpO,EAAI5Y,GAAG,cA9QT,SAAyBO,GACvB,IAAI4mB,EAAepD,EAAqBxjB,EAAEtI,QACtCkvB,IACFA,EAAa5pB,SAAS,gBAClB,UAAWgD,GAAiB,IAAZA,EAAE6mB,OACpBrrB,YAAW,WACTI,EAAE,iBAAiByB,YAAY,kBAC9B,IAIHkmB,IACFZ,EAAc3iB,EAAEumB,MAChB3D,EAAc5iB,EAAEwmB,MAChBpC,EAAiBpkB,EAAEtI,OAAQsI,EAAEumB,MAAOvmB,EAAEwmB,WAiQxCnO,EAAI5Y,GAAG,aA9PT,WACOmJ,EAAOke,wBACVlrB,EAAE,iBAAiByB,YAAY,gBAE7BkmB,GACFkB,OA0PFpM,EAAI5Y,GAAG,WAAYklB,GACnBhsB,IAAII,iBAAiB,gBAAiB4rB,EAAe,CAAEU,SAAS,KAElE1sB,IAAII,iBAAiB,eAAe,SAAUiH,GACxC4I,EAAOme,qBAAuB1T,OAAOI,KAAOJ,OAAOK,SAAWL,OAAOgB,UACvErU,EAAEmmB,iBAEA5C,IACEL,GAAoBa,IACxBW,QAKN,IAAIsC,YAAc,CAChBrzB,KAAM,QACNiV,OAAQ,CACN6J,MAAO,CAELkU,6BAA8B,EAE9BI,oBAAoB,EAEpBhB,SAAS,EACTO,aAAc,IACdN,sBAAsB,EAEtBS,aAAa,EACb/C,oBAAqB,iLACrBoD,wBAAwB,EACxBG,eAAe,EACfC,gBAAgB,EAChBC,mBAAmB,EACnB7C,oBAAqB,yaAGzBjtB,SAAU,CACRouB,YAAa,CACXC,MAAOlT,QAAQC,MAAQ,aAAgBD,QAAQG,cAAgB,cAAgB,YAC/EgT,KAAMnT,QAAQC,MAAQ,YAAeD,QAAQG,cAAgB,cAAgB,YAC7EiT,IAAKpT,QAAQC,MAAQ,WAAcD,QAAQG,cAAgB,YAAc,YAG7ElT,GAAI,CACFic,KAAMgH,YAOV,SAAS0E,MAAM/Z,GAGX,IAFA,IAAIga,EAAS,GACTl3B,EAAI,EACDA,EAAIkd,EAAI5c,QAAQ,CACnB,IAAIqc,EAAOO,EAAIld,GACf,GAAa,MAAT2c,GAAyB,MAATA,GAAyB,MAATA,EAIpC,GAAa,OAATA,EAIJ,GAAa,MAATA,EAIJ,GAAa,MAATA,EAIJ,GAAa,MAATA,EAyBJ,GAAa,MAATA,EAmCJua,EAAOx2B,KAAK,CAAEW,KAAM,OAAQsE,MAAO3F,EAAG0N,MAAOwP,EAAIld,WAnCjD,CACI,IAAIm3B,EAAQ,EACRC,EAAU,GAEd,GAAe,MAAXla,EADAjd,EAAID,EAAI,GAER,MAAM,IAAIq3B,UAAU,oCAAwCp3B,GAEhE,KAAOA,EAAIid,EAAI5c,QACX,GAAe,OAAX4c,EAAIjd,GAAR,CAIA,GAAe,MAAXid,EAAIjd,IAEJ,GAAc,MADdk3B,EACiB,CACbl3B,IACA,YAGH,GAAe,MAAXid,EAAIjd,KACTk3B,IACmB,MAAfja,EAAIjd,EAAI,IACR,MAAM,IAAIo3B,UAAU,uCAAyCp3B,GAGrEm3B,GAAWla,EAAIjd,UAhBXm3B,GAAWla,EAAIjd,KAAOid,EAAIjd,KAkBlC,GAAIk3B,EACE,MAAM,IAAIE,UAAU,yBAA2Br3B,GACrD,IAAKo3B,EACC,MAAM,IAAIC,UAAU,sBAAwBr3B,GAClDk3B,EAAOx2B,KAAK,CAAEW,KAAM,UAAWsE,MAAO3F,EAAG0N,MAAO0pB,IAChDp3B,EAAIC,MAzDR,CAGI,IAFA,IAAIuD,EAAO,GACPvD,EAAID,EAAI,EACLC,EAAIid,EAAI5c,QAAQ,CACnB,IAAIg3B,EAAOpa,EAAIqa,WAAWt3B,GAC1B,KAECq3B,GAAQ,IAAMA,GAAQ,IAElBA,GAAQ,IAAMA,GAAQ,IAEtBA,GAAQ,IAAMA,GAAQ,KAEd,KAATA,GAIJ,MAHI9zB,GAAQ0Z,EAAIjd,KAKpB,IAAKuD,EACC,MAAM,IAAI6zB,UAAU,6BAA+Br3B,GACzDk3B,EAAOx2B,KAAK,CAAEW,KAAM,OAAQsE,MAAO3F,EAAG0N,MAAOlK,IAC7CxD,EAAIC,OAzBJi3B,EAAOx2B,KAAK,CAAEW,KAAM,QAASsE,MAAO3F,EAAG0N,MAAOwP,EAAIld,YAJlDk3B,EAAOx2B,KAAK,CAAEW,KAAM,OAAQsE,MAAO3F,EAAG0N,MAAOwP,EAAIld,YAJjDk3B,EAAOx2B,KAAK,CAAEW,KAAM,eAAgBsE,MAAO3F,IAAK0N,MAAOwP,EAAIld,YAJ3Dk3B,EAAOx2B,KAAK,CAAEW,KAAM,WAAYsE,MAAO3F,EAAG0N,MAAOwP,EAAIld,OA8E7D,OADAk3B,EAAOx2B,KAAK,CAAEW,KAAM,MAAOsE,MAAO3F,EAAG0N,MAAO,KACrCwpB,EAKX,SAASzG,MAAMvT,EAAK5Y,QACA,IAAZA,IAAsBA,EAAU,IA4BpC,IA3BA,IAAI4yB,EAASD,MAAM/Z,GACfsa,EAAKlzB,EAAQmzB,SAAUA,OAAkB,IAAPD,EAAgB,KAAOA,EACzDE,EAAiB,KAAOC,aAAarzB,EAAQwB,WAAa,OAAS,MACnEua,EAAS,GACTza,EAAM,EACN5F,EAAI,EACJ43B,EAAO,GACPC,EAAa,SAAUx2B,GACvB,GAAIrB,EAAIk3B,EAAO52B,QAAU42B,EAAOl3B,GAAGqB,OAASA,EACtC,OAAO61B,EAAOl3B,KAAK0N,OAEzBoqB,EAAc,SAAUz2B,GACxB,IAAIqM,EAAQmqB,EAAWx2B,GACvB,QAAclC,IAAVuO,EACE,OAAOA,EACb,IAAI8pB,EAAKN,EAAOl3B,GAAI+3B,EAAWP,EAAGn2B,KAAMsE,EAAQ6xB,EAAG7xB,MACnD,MAAM,IAAI0xB,UAAU,cAAgBU,EAAW,OAASpyB,EAAQ,cAAgBtE,IAEhF22B,EAAc,WAId,IAHA,IACItqB,EADA2S,EAAS,GAGL3S,EAAQmqB,EAAW,SAAWA,EAAW,iBAC7CxX,GAAU3S,EAEd,OAAO2S,GAEJrgB,EAAIk3B,EAAO52B,QAAQ,CACtB,IAAIqc,EAAOkb,EAAW,QAClBr0B,EAAOq0B,EAAW,QAClBT,EAAUS,EAAW,WACzB,GAAIr0B,GAAQ4zB,EAAZ,CACI,IAAIa,EAAStb,GAAQ,IACa,IAA9B8a,EAAS92B,QAAQs3B,KACjBL,GAAQK,EACRA,EAAS,IAETL,IACAvX,EAAO3f,KAAKk3B,GACZA,EAAO,IAEXvX,EAAO3f,KAAK,CACR8C,KAAMA,GAAQoC,IACdqyB,OAAQA,EACRC,OAAQ,GACRd,QAASA,GAAWM,EACpBS,SAAUN,EAAW,aAAe,SAf5C,CAmBA,IAAInqB,EAAQiP,GAAQkb,EAAW,gBAC/B,GAAInqB,EACAkqB,GAAQlqB,OAQZ,GALIkqB,IACAvX,EAAO3f,KAAKk3B,GACZA,EAAO,IAEAC,EAAW,QACtB,CACQI,EAASD,IAAb,IACII,EAASP,EAAW,SAAW,GAC/BQ,EAAYR,EAAW,YAAc,GACrCK,EAASF,IACbF,EAAY,SACZzX,EAAO3f,KAAK,CACR8C,KAAM40B,IAAWC,EAAYzyB,IAAQ,IACrCwxB,QAASgB,IAAWC,EAAYX,EAAiBW,EACjDJ,OAAQA,EACRC,OAAQA,EACRC,SAAUN,EAAW,aAAe,UAI5CC,EAAY,QAEhB,OAAOzX,EAKX,SAASzb,QAAQsY,EAAK5Y,GAClB,OAAOg0B,iBAAiB7H,MAAMvT,EAAK5Y,GAAUA,GAKjD,SAASg0B,iBAAiBpB,EAAQ5yB,QACd,IAAZA,IAAsBA,EAAU,IACpC,IAAIi0B,EAAUC,MAAMl0B,GAChBkzB,EAAKlzB,EAAQm0B,OAAQA,OAAgB,IAAPjB,EAAgB,SAAUrW,GAAK,OAAOA,GAAOqW,EAAIkB,EAAKp0B,EAAQq0B,SAAUA,OAAkB,IAAPD,GAAuBA,EAExI1kB,EAAUkjB,EAAOvjB,KAAI,SAAUilB,GAC/B,GAAqB,iBAAVA,EACP,OAAO,IAAIr5B,OAAO,OAASq5B,EAAMxB,QAAU,KAAMmB,MAGzD,OAAO,SAAU70B,GAEb,IADA,IAAIk0B,EAAO,GACF53B,EAAI,EAAGA,EAAIk3B,EAAO52B,OAAQN,IAAK,CACpC,IAAI44B,EAAQ1B,EAAOl3B,GACnB,GAAqB,iBAAV44B,EAAX,CAIA,IAAIlrB,EAAQhK,EAAOA,EAAKk1B,EAAMp1B,WAAQrE,EAClC05B,EAA8B,MAAnBD,EAAMT,UAAuC,MAAnBS,EAAMT,SAC3CW,EAA4B,MAAnBF,EAAMT,UAAuC,MAAnBS,EAAMT,SAC7C,GAAIr2B,MAAMC,QAAQ2L,GAAlB,CACI,IAAKorB,EACD,MAAM,IAAIzB,UAAU,aAAgBuB,EAAMp1B,KAAO,qCAErD,GAAqB,IAAjBkK,EAAMpN,OAAc,CACpB,GAAIu4B,EACE,SACN,MAAM,IAAIxB,UAAU,aAAgBuB,EAAMp1B,KAAO,qBAErD,IAAK,IAAIvD,EAAI,EAAGA,EAAIyN,EAAMpN,OAAQL,IAAK,CACnC,IAAI84B,EAAUN,EAAO/qB,EAAMzN,GAAI24B,GAC/B,GAAID,IAAa3kB,EAAQhU,GAAGkE,KAAK60B,GAC7B,MAAM,IAAI1B,UAAU,iBAAoBuB,EAAMp1B,KAAO,eAAmBo1B,EAAMxB,QAAU,eAAmB2B,EAAU,KAEzHnB,GAAQgB,EAAMX,OAASc,EAAUH,EAAMV,aAI/C,GAAqB,iBAAVxqB,GAAuC,iBAAVA,GAQxC,IAAImrB,EAAJ,CAEA,IAAIG,EAAgBF,EAAS,WAAa,WAC1C,MAAM,IAAIzB,UAAU,aAAgBuB,EAAMp1B,KAAO,WAAcw1B,QAX/D,CACQD,EAAUN,EAAOzZ,OAAOtR,GAAQkrB,GACpC,GAAID,IAAa3kB,EAAQhU,GAAGkE,KAAK60B,GAC7B,MAAM,IAAI1B,UAAU,aAAgBuB,EAAMp1B,KAAO,eAAmBo1B,EAAMxB,QAAU,eAAmB2B,EAAU,KAErHnB,GAAQgB,EAAMX,OAASc,EAAUH,EAAMV,aA7BvCN,GAAQgB,EAqChB,OAAOhB,GAMf,SAASD,aAAaza,GAClB,OAAOA,EAAIrd,QAAQ,4BAA6B,QAKpD,SAAS24B,MAAMl0B,GACX,OAAOA,GAAWA,EAAQ20B,UAAY,GAAK,IAK/C,SAASC,eAAetB,EAAM/yB,GAC1B,IAAKA,EACC,OAAO+yB,EAEb,IAAIuB,EAASvB,EAAKwB,OAAOx4B,MAAM,aAC/B,GAAIu4B,EACA,IAAK,IAAIn5B,EAAI,EAAGA,EAAIm5B,EAAO74B,OAAQN,IAC/B6E,EAAKnE,KAAK,CACN8C,KAAMxD,EACNi4B,OAAQ,GACRC,OAAQ,GACRC,SAAU,GACVf,QAAS,KAIrB,OAAOQ,EAKX,SAASyB,cAAcC,EAAOz0B,EAAMP,GAChC,IAAIX,EAAQ21B,EAAM3lB,KAAI,SAAUikB,GAAQ,OAAO2B,aAAa3B,EAAM/yB,EAAMP,GAAS80B,UACjF,OAAO,IAAI75B,OAAO,MAAQoE,EAAMR,KAAK,KAAO,IAAKq1B,MAAMl0B,IAK3D,SAASk1B,eAAe5B,EAAM/yB,EAAMP,GAChC,OAAOm1B,eAAehJ,MAAMmH,EAAMtzB,GAAUO,EAAMP,GAKtD,SAASm1B,eAAevC,EAAQryB,EAAMP,QAClB,IAAZA,IAAsBA,EAAU,IAMpC,IALA,IAAIkzB,EAAKlzB,EAAQo1B,OAAQA,OAAgB,IAAPlC,GAAwBA,EAAIkB,EAAKp0B,EAAQixB,MAAOA,OAAe,IAAPmD,GAAuBA,EAAIiB,EAAKr1B,EAAQmxB,IAAKA,OAAa,IAAPkE,GAAuBA,EAAIC,EAAKt1B,EAAQm0B,OAAQA,OAAgB,IAAPmB,EAAgB,SAAUzY,GAAK,OAAOA,GAAOyY,EAC/OC,EAAW,IAAMlC,aAAarzB,EAAQu1B,UAAY,IAAM,MACxD/zB,EAAY,IAAM6xB,aAAarzB,EAAQwB,WAAa,OAAS,IAC7Dg0B,EAAQvE,EAAQ,IAAM,GAEjBwE,EAAK,EAAGC,EAAW9C,EAAQ6C,EAAKC,EAAS15B,OAAQy5B,IAAM,CAC5D,IAAInB,EAAQoB,EAASD,GACrB,GAAqB,iBAAVnB,EACPkB,GAASnC,aAAac,EAAOG,QAE5B,CACD,IAAIX,EAASN,aAAac,EAAOG,EAAMX,SACnCC,EAASP,aAAac,EAAOG,EAAMV,SACvC,GAAIU,EAAMxB,QAGN,GAFIvyB,GACEA,EAAKnE,KAAKk4B,GACZX,GAAUC,EACV,GAAuB,MAAnBU,EAAMT,UAAuC,MAAnBS,EAAMT,SAAkB,CAClD,IAAI8B,EAAyB,MAAnBrB,EAAMT,SAAmB,IAAM,GACzC2B,GAAS,MAAQ7B,EAAS,OAASW,EAAMxB,QAAU,OAASc,EAASD,EAAS,MAAQW,EAAMxB,QAAU,OAASc,EAAS,IAAM+B,OAG9HH,GAAS,MAAQ7B,EAAS,IAAMW,EAAMxB,QAAU,IAAMc,EAAS,IAAMU,EAAMT,cAI/E2B,GAAS,IAAMlB,EAAMxB,QAAU,IAAMwB,EAAMT,cAI/C2B,GAAS,MAAQ7B,EAASC,EAAS,IAAMU,EAAMT,UAI3D,GAAI1C,EACKiE,IACCI,GAASh0B,EAAY,KAC3Bg0B,GAAUx1B,EAAQu1B,SAAiB,MAAQA,EAAW,IAAzB,QAE5B,CACD,IAAIK,EAAWhD,EAAOA,EAAO52B,OAAS,GAClC65B,EAAqC,iBAAbD,EACtBp0B,EAAUnF,QAAQu5B,EAASA,EAAS55B,OAAS,KAAO,OAErCnB,IAAb+6B,EACHR,IACDI,GAAS,MAAQh0B,EAAY,MAAQ+zB,EAAW,OAE/CM,IACDL,GAAS,MAAQh0B,EAAY,IAAM+zB,EAAW,KAGtD,OAAO,IAAIt6B,OAAOu6B,EAAOtB,MAAMl0B,IASnC,SAASi1B,aAAa3B,EAAM/yB,EAAMP,GAC9B,OAAIszB,aAAgBr4B,OACP25B,eAAetB,EAAM/yB,GAC9B/C,MAAMC,QAAQ61B,GACLyB,cAAczB,EAAM/yB,EAAMP,GAChCk1B,eAAe5B,EAAM/yB,EAAMP,GAGtC,IAAI81B,QAAU,CACZC,MAAO,GACPC,WAAY,WACmB,IAAzBF,QAAQC,MAAM/5B,QACC85B,QAAQC,MAAMnhB,OACjCqhB,IAEFC,YAAa,GACbC,iBAAkB,WAChB,GAAmC,IAA/BL,QAAQI,YAAYl6B,OAAxB,CACA,IAAIi6B,EAAeH,QAAQI,YAAYE,MACnCxN,EAASqN,EAAarN,OACtByN,EAAWJ,EAAaI,SACxBC,EAASL,EAAaK,OAEtBxiB,EAAU8U,EAAOzU,OAAOL,SACW,IAAnC8U,EAAOzU,OAAOoiB,mBAA8BziB,GAAU,GAE3C,SAAXwiB,GACF1N,EAAOpiB,KAAK,CAAEsN,QAASA,EAASxN,WAAW,IAE9B,SAAXgwB,GACF1N,EAAO4N,SAASH,EAAU,CAAEviB,QAASA,EAASxN,WAAW,MAG7DmwB,OAAQ,SAAgBlrB,GACtB,IAAIuqB,QAAQY,cAAZ,CACA,IAEIC,EAAQprB,EAAEorB,MACdb,QAAQc,cAAgBd,QAAQa,MAChCb,QAAQa,MAAQA,EAEhBb,QAAQe,aAAc,EACtBf,QAAQE,cAERW,EAAQb,QAAQa,SACFA,EAAQ,IAVZj8B,KAYNo8B,MAAMr4B,SAAQ,SAAUs4B,GAC1B,IAAInO,EAASmO,EAAKnO,OACdoO,EAAYL,EAAMI,EAAK1uB,IAM3B,IALK2uB,GAAaD,EAAK5iB,OAAO7N,YAC5B0wB,EAAY,CACVle,IAAKie,EAAKnO,OAAOxiB,QAAQ,KAGxB4wB,EAAL,CACA,IAAIX,EAAWW,EAAUle,UAAOje,EAE5BiZ,EAAU8U,EAAOzU,OAAOL,SACW,IAAnC8U,EAAOzU,OAAOoiB,mBAA8BziB,GAAU,GAEtDuiB,IAAazN,EAAO9P,MAClB8P,EAAOxiB,QAAQ/J,QAAQg6B,IAAa,EAElCzN,EAAOqO,gBACTrO,EAAOpiB,KAAK,CAAEsN,QAASA,EAASxN,WAAW,IAE3CwvB,QAAQI,YAAY95B,KAAK,CACvBk6B,OAAQ,OACR1N,OAAQA,IAGHA,EAAOqO,gBAEhBrO,EAAO4N,SAASH,EAAU,CAAEviB,QAASA,EAASxN,WAAW,IAEzDwvB,QAAQI,YAAYxqB,QAAQ,CAC1B4qB,OAAQ,OACRD,SAAUA,EACVzN,OAAQA,WAMlBsO,cAAe,SAAuBC,EAAQH,GAC5C,IAAIj0B,EAEAq0B,EAAWxf,MAAM5U,OAAO,GAAK8yB,QAAQa,OAAS,KAAO5zB,EAAM,IAAQo0B,GAAUH,EAAWj0B,IAC5F+yB,QAAQa,MAAQS,EAChBpxB,IAAII,QAAQC,aAAa+wB,EAAU,KAErCh7B,KAAM,SAAc+6B,EAAQH,EAAWle,GACrC,IAAI/V,EAEJ,GAAK+yB,QAAQe,YAAb,CAMAf,QAAQc,cAAgBd,QAAQa,MAChC,IAAIS,EAAWxf,MAAM5U,OAAO,GAAK8yB,QAAQc,eAAiB,KAAO7zB,EAAM,IAAQo0B,GAAUH,EAAWj0B,IACpG+yB,QAAQa,MAAQS,EAChBpxB,IAAII,QAAQE,UAAU8wB,EAAU,GAAIte,QARlCgd,QAAQC,MAAM35B,MAAK,WACjB05B,QAAQ15B,KAAK+6B,EAAQH,EAAWle,OAStCvd,QAAS,SAAiB47B,EAAQH,EAAWle,GAC3C,IAAI/V,EAEJ,GAAK+yB,QAAQe,YAAb,CAMAf,QAAQc,cAAgBd,QAAQa,MAChC,IAAIS,EAAWxf,MAAM5U,OAAO,GAAK8yB,QAAQc,eAAiB,KAAO7zB,EAAM,IAAQo0B,GAAUH,EAAWj0B,IACpG+yB,QAAQa,MAAQS,EAChBpxB,IAAII,QAAQC,aAAa+wB,EAAU,GAAIte,QARrCgd,QAAQC,MAAM35B,MAAK,WACjB05B,QAAQv6B,QAAQ47B,EAAQH,EAAWle,OASzCvS,GAAI,SAAYlF,GACdy0B,QAAQe,aAAc,EACtB7wB,IAAII,QAAQG,GAAGlF,IAEjBmF,KAAM,WACJsvB,QAAQe,aAAc,EACtB7wB,IAAII,QAAQI,QAEdqwB,aAAa,EACbD,cAAe,GACfD,MAAO3wB,IAAII,QAAQuwB,MACnBD,eAAe,EACfzP,KAAM,SAAcrD,GAClBzc,EAAEnB,KAAKgF,GAAG,QAAQ,WAChBjE,YAAW,WACT+uB,QAAQY,eAAgB,IACvB,MAGDxyB,IAAImzB,YAAiC,aAAnBnzB,IAAImzB,aACxBvB,QAAQY,eAAgB,GAG1BvvB,EAAEnB,KAAKgF,GAAG,WAAY8qB,QAAQW,OAAO1gB,KAAK6N,MAI9C,SAAS0T,UAAU1b,GACjB,IAQI2b,EAGAC,EACAC,EAEAC,EAGAC,EACAC,EACAC,EAEAC,EAuiBExZ,EA5jBFsK,EAAShN,EACToI,EAAM4E,EAAO5E,IACb+T,EAAanP,EAAOmP,WACpBnU,EAAMgF,EAAOhF,IACbzP,EAASyU,EAAOzU,OAChB6jB,GAAY,EACZ3J,GAAU,EACV4J,EAAe,GAEfC,EAAiB,GACjBC,EAAkB,GAGlBC,GAAqB,EAErBC,EAAmB,GACnBC,EAAoB,GAOpBC,EAA+BpkB,EAASyP,EAAS,MAAI,0BACrD4U,EAAgCrkB,EAASyP,EAAS,MAAI,2BACtD6U,EAA4BtkB,EAASyP,EAAS,MAAI,uBAClD8U,EAA2BvkB,EAASyP,EAAS,MAAI,sBAEjD+U,EAAkB/U,EAAIwC,IAAM,eAAiB,cAC7CwS,EAA4BhV,EAAIwC,IAChC,2FACA,oFA4NJ,SAASyS,EAAyBpjB,QACnB,IAARA,IAAiBA,EAAM,IAC5B,IAAIhC,EAAWgC,EAAIhC,SACfqlB,EAAQrjB,EAAIqjB,MACZluB,EAAa6K,EAAI7K,WACjBmuB,EAAStjB,EAAIsjB,OAEbhrB,EAAS,CAAC,WAAY,YAAa,mBAAoB,WAC3D,IAAmB,IAAfnD,IAAsC,IAAfA,EACzB,IAAK,IAAIlP,EAAI,EAAGA,EAAIo8B,EAAiB97B,OAAQN,GAAK,EAAG,CACnD,IAAIkO,EAAKkuB,EAAiBp8B,GACtBkO,GAAMA,EAAGA,MACQ,IAAfgB,GAAuBhB,EAAGA,GAAGlB,UAAUC,IAAI,8BAC5B,IAAfiC,GAAwBhB,EAAGA,GAAGlB,UAAUG,OAAO,8BAIrDkwB,GAAUjB,EAAiB97B,QAAU87B,EAAiB,IAAMA,EAAiB,GAAGluB,KAElFkuB,EAAiB,GAAGluB,GAAGovB,YAAclB,EAAiB,GAAGluB,GAAG6E,YAE9D,IAAK,IAAIrE,EAAM,EAAGA,EAAM0tB,EAAiB97B,OAAQoO,GAAO,EAAG,CACzD,IAAI6uB,EAAOnB,EAAiB1tB,GAC5B,GAAI6uB,GAAQA,EAAKrvB,GAAI,EACfqvB,EAAKzwB,WAAcywB,EAAKC,cAAiBJ,IAC3CG,EAAKrvB,GAAGlB,UAAUC,IAAIswB,EAAKzwB,WAC3BywB,EAAKC,cAAe,GAElBD,EAAKzwB,WAAaswB,GACpBG,EAAKrvB,GAAGlB,UAAUG,OAAOowB,EAAKzwB,WAEhC,IAAK,IAAI7M,EAAI,EAAGA,EAAIoS,EAAO/R,OAAQL,GAAK,EAAG,CACzC,IAAIw9B,EAAYprB,EAAOpS,GACnBs9B,EAAKE,KACHL,EACFG,EAAKrvB,GAAGzE,MAAMg0B,GAAa,GACS,mBAApBF,EAAKE,GACrBF,EAAKrvB,GAAGzE,MAAMg0B,GAAaF,EAAKE,GAAW1lB,GAE3CwlB,EAAKrvB,GAAGzE,MAAMg0B,GAAaF,EAAKE,OAQ5C,SAASC,EAAiB7tB,GACxB,IAAI8tB,EAAmBllB,EAASyP,EAAS,MAAI,cACxCwU,IAAuBiB,GAAoBrB,GAAcpU,EAAI0V,UAAY1V,EAAI0V,SAAS1vB,KAAQgf,EAAOqO,iBACtG9vB,EAAEoE,EAAEtI,QAAQyO,QAAQ,mCAAmC1V,OAAS,GAChEmL,EAAEoE,EAAEtI,QAAQyO,QAAQ,qCAAqC1V,OAAS,GAAKmY,EAAOolB,uBAAyB,GAAK3V,EAAIlW,OAASyG,EAAOolB,yBACpIlL,GAAU,EACV2J,GAAY,EACZT,OAAc18B,EACdo9B,EAAapb,EAAe,eAAXtR,EAAExO,KAAwBwO,EAAEomB,cAAc,GAAGG,MAAQvmB,EAAEumB,MACxEmG,EAAazI,EAAe,eAAXjkB,EAAExO,KAAwBwO,EAAEomB,cAAc,GAAGI,MAAQxmB,EAAEwmB,MACxE2F,EAAiB9f,MAAMc,MACvBif,EAAgB/O,EAAO+O,eAEzB,SAAS6B,EAAgBjuB,GACvB,GAAKysB,EAAL,CACA,IAAIlG,EAAmB,cAAXvmB,EAAExO,KAAuBwO,EAAEomB,cAAc,GAAGG,MAAQvmB,EAAEumB,MAC9DC,EAAmB,cAAXxmB,EAAExO,KAAuBwO,EAAEomB,cAAc,GAAGI,MAAQxmB,EAAEwmB,MAIlE,QAH2B,IAAhBwF,IACTA,KAAiBA,GAAevkB,KAAKuJ,IAAIwV,EAAQkG,EAAazI,GAAKxc,KAAKuJ,IAAIuV,EAAQmG,EAAapb,KAAQiV,EAAQmG,EAAapb,IAAM+G,EAAIwC,KAAS0L,EAAQmG,EAAapb,GAAK+G,EAAIwC,KAE7KmR,GAAehsB,EAAEkuB,oBAAsB7V,EAAI8V,iBAC7C1B,GAAY,MADd,CAIA,IAAK3J,EAAS,CAEZ,IAAIsL,GAAS,EACT12B,EAASkE,EAAEoE,EAAEtI,QAEbq2B,EAAWr2B,EAAOyO,QAAQ,aAC1B4nB,EAASt9B,OAAS,KACf4nB,EAAIwC,KAAOkT,EAAS3nB,KAAK,0BAA0B3V,OAAS,IAAK29B,GAAS,GAC3E/V,EAAIwC,KAAOkT,EAAS3nB,KAAK,2BAA2B3V,OAAS,IAAK29B,GAAS,MAGjFzB,EAAiBj1B,EAAOyO,QAAQ,UACb5I,SAAS,iBAAmB7F,EAAOyO,QAAQ,+BAA+B1V,OAAS,KAAK29B,GAAS,IACpHxB,EAAkBnU,EAAIrS,KAAK,iCACP3V,OAAS,IAC3Bm8B,EAAkBA,EAAgBpoB,GAAGooB,EAAgBn8B,OAAS,IAE5Ci8B,EAAapb,EAAImH,EAAI3V,SAASU,KASlD,GARAyoB,EAAqBxT,EAAItW,SACrBkW,EAAIwC,IACU6R,EAAapb,EAAKmH,EAAI3V,SAASU,KAAOiV,EAAI,GAAGpV,YAAe4oB,EAAqBiB,GAEjFR,EAAapb,EAAImH,EAAI3V,SAASU,KAAO0pB,KAElCkB,GAAS,GACC,IAA3BxB,EAAgBn8B,QAA0C,IAA1Bk8B,EAAel8B,SAAgB29B,GAAS,GACxEA,EAEF,YADA3B,GAAY,GAIVO,GAE2B,KAD7BX,EAAgBM,EAAevmB,KAAK,wBAClB3V,SAChB47B,EAAgBzwB,EAAE,0CAClB+wB,EAAejoB,OAAO2nB,IAGtBY,GAE4B,KAD9BX,EAAiBM,EAAgBxmB,KAAK,yBACnB3V,SACjB67B,EAAiB1wB,EAAE,2CACnBgxB,EAAgBloB,OAAO4nB,IAIvBF,IACFU,EAAmBN,EAAWpmB,KAAK,kCACnC2mB,EAAoBP,EAAWpmB,KAAK,mCACd3V,OAAS,IAC7Bs8B,EAAoBA,EAAkBvoB,GAAGuoB,EAAkBt8B,OAAS,IAGtE87B,EArVN,WACE,IAsBI8B,EACAC,EAvBAxyB,EAAM,GACNyyB,EAAWlW,EAAIwC,KAAO,EAAI,EAC1B2T,EAA0B1B,EAAiBvvB,SAAS,wBAA0BuvB,EAAiBvvB,SAAS,kBAAoBuvB,EAAiBvvB,SAAS,8BACtJkxB,EAAoB3B,EAAiBvvB,SAAS,gBAC9CmxB,EAAwB5B,EAAiBvvB,SAAS,0BAClDoxB,EAA+B7B,EAAiBvvB,SAAS,6BAEzDuvB,EAAiBvvB,SAAS,iBACvBuvB,EAAiBvvB,SAAS,sBAE7BqxB,EAA2B7B,EAAkBxvB,SAAS,wBAA0BwvB,EAAkBxvB,SAAS,kBAAoBwvB,EAAkBxvB,SAAS,8BAC1JsxB,EAAqB9B,EAAkBxvB,SAAS,gBAChDuxB,EAAyB/B,EAAkBxvB,SAAS,0BACpDwxB,EAAgChC,EAAkBxvB,SAAS,6BAE3DwvB,EAAkBxvB,SAAS,iBACxBwvB,EAAkBxvB,SAAS,sBAE9ByxB,EAAYP,IAAsBC,EAClCO,EAAUJ,IAAuBC,EACjCI,EAAsBpC,EAAiB1mB,KAAK,wEAC5C+oB,EAAuBpC,EAAkB3mB,KAAK,wEAgMlD,OA5LIwC,EAAOwmB,2BAEPf,EADEvB,EAAiBvvB,SAAS,YAAcuvB,EAAiB1mB,KAAK,yBAAyB3V,OACjEq8B,EAAiB1mB,KAAK,SAASA,KAAK,sBAAsB5B,GAAG,GAE7DsoB,EAAiB1mB,KAAK,iBAAiBA,KAAK,sBAAsB5B,GAAG,GAG7F8pB,EADEvB,EAAkBxvB,SAAS,YAAcwvB,EAAkB3mB,KAAK,yBAAyB3V,OACjEs8B,EAAkB3mB,KAAK,SAASA,KAAK,sBAAsB5B,GAAG,GAE9DuoB,EAAkB3mB,KAAK,iBAAiBA,KAAK,sBAAsB5B,GAAG,GAE9F6pB,EAAsB59B,QACxB0+B,EAAqB15B,MAAK,SAAUK,EAAOuI,GACpCzC,EAAEyC,GAAId,SAAS,WACpBc,EAAGgxB,oBAAsBhB,EAAsBvoB,KAAK,SAAS,GAAGrD,iBAItEysB,EACGz5B,MAAK,SAAUK,EAAOw5B,GACrB,IAAIC,EAAS3zB,EAAE0zB,GACXE,EAAcD,EAAOhyB,SAAS,aAC9BkyB,EAASF,EAAOhyB,SAAS,QACzBmyB,EAAUH,EAAOhyB,SAAS,SAC1BoyB,EAAOJ,EAAOhyB,SAAS,aAC3B,KAAKmyB,IAAWC,IAASnB,KACpBQ,IAAaO,EAAOhyB,SAAS,iBAAlC,CACA,IAAIc,EAAK,CACPA,GAAIixB,GAEN,GAAIN,EAAW,CACb,GAAIU,EAAW,OACf,GAAIH,EAAOhyB,SAAS,eASlB,OARIzB,EAAIhL,QAAQuN,GAAM,GAAKvC,EAAIjL,KAAKwN,GACpCA,EAAGuxB,SAAW,eACdL,EAAOnpB,KAAK,qBAAqB3Q,MAAK,SAAUo6B,EAAUC,GACxDh0B,EAAIjL,KAAK,CACPwN,GAAIyxB,EACJ5wB,UAAW,SAAUgJ,GAAY,MAAQ,cAA4B,IAAXA,EAAiBqmB,EAAY,WAM/F,GAAIU,IACGD,GACCO,EAAOhyB,SAAS,iBACdzB,EAAIhL,QAAQuN,GAAM,GAAKvC,EAAIjL,KAAKwN,GACpCA,EAAG0xB,QAAU,GAGbN,GAUF,OATI3zB,EAAIhL,QAAQuN,GAAM,GAAKvC,EAAIjL,KAAKwN,GACpCA,EAAG0xB,QAAU,SAAU7nB,GAAY,OAAQ,EAAKT,KAAKuoB,IAAK9nB,EAAU,WACpEqnB,EAAOnpB,KAAK,cAAc3Q,MAAK,SAAUo6B,EAAUC,GACjDh0B,EAAIjL,KAAK,CACPwN,GAAIyxB,EACJG,mBAAoB7C,EACpBluB,UAAW,SAAUgJ,GAAY,MAAQ,mBAAqBA,EAAW,4FAA8FA,EAAW,yGAA2G,EAAK,EAAIA,GAAa,UAM3T,GAAIynB,EAsBF,OArBI7zB,EAAIhL,QAAQuN,GAAM,GAAKvC,EAAIjL,KAAKwN,GAC/B2wB,GAAcC,IACbP,GACEC,IACFtwB,EAAGpB,UAAY,iCAEjBoB,EAAGa,UAAY,SAAUgJ,GAAY,MAAQ,cAAiB,IAAMA,EAAWqmB,EAAY,kEAE3FlwB,EAAGa,UAAY,SAAUgJ,GAAY,MAAQ,cAAiB,IAAMA,EAAWqmB,EAAY,QAG1FS,GAAaC,IAChB5wB,EAAGpB,UAAY,gCACfoB,EAAGa,UAAY,SAAUgJ,GAAY,MAAQ,cAAiB,IAAMA,EAAWqmB,EAAY,4BAA8B,EAAIrmB,GAAY,6CAEvI8mB,GAAaC,IACf5wB,EAAGa,UAAY,SAAUgJ,GAAY,MAAQ,cAAiB,IAAMA,EAAWqmB,EAAY,YAEzFS,IAAcC,IAChB5wB,EAAGa,UAAY,SAAUgJ,GAAY,MAAQ,cAAiB,IAAMA,EAAWqmB,EAAY,uBAAyBrmB,EAAW,8CAInI,IAAIqnB,EAAOhyB,SAAS,eAApB,CACA,IAAI2yB,EAAYX,EAAOhyB,SAAS,YAAcgyB,EAAO/7B,QAAQ,yBAAyB/C,OAKtF,GAJIqL,EAAIhL,QAAQuN,GAAM,GAAKvC,EAAIjL,KAAKwN,KAC/BmxB,GAAgBA,IAAgBU,KACnC7xB,EAAG0xB,QAAU,SAAU7nB,GAAY,OAAQ,EAAKT,KAAKuoB,IAAK9nB,EAAU,OAElEgoB,EAAW,CACb,IAAIC,EAAkB9xB,EACtB,GAAIoxB,GAAUpB,EAAsB59B,QAAUmY,EAAOwmB,yBAA0B,CAC7E,IAAIgB,EAAS,CAAE/xB,GAAIgwB,EAAsB,IACzC8B,EAAkBC,EAClBt0B,EAAIjL,KAAKu/B,GAEXD,EAAgBjxB,UAAY,SAAUgJ,GACpC,IAAImoB,EAAqBnoB,EAAWioB,EAAgB9xB,GAAGiyB,oBAEvD,OAD0B,IAAtBjd,OAAO8B,aAAoBkb,EAAqB5oB,KAAK+J,MAAM6e,IAC3Db,GAAef,EACT,eAAiB4B,EAAqB,oGAExC,eAAiBA,EAAqB,iBAItDlB,EACG15B,MAAK,SAAUK,EAAOw5B,GACrB,IAAIC,EAAS3zB,EAAE0zB,GACXE,EAAcD,EAAOhyB,SAAS,aAC9BkyB,EAASF,EAAOhyB,SAAS,QACzBmyB,EAAUH,EAAOhyB,SAAS,SAC1BoyB,EAAOJ,EAAOhyB,SAAS,aAC3B,IAAKmyB,IAAWC,IAASf,EAAzB,CACA,IAAIvwB,EAAK,CACPA,GAAIixB,GAEN,GAAIL,EAAS,CACX,GAAIS,EAAW,OAGf,GAFI5zB,EAAIhL,QAAQuN,GAAM,GAAKvC,EAAIjL,KAAKwN,GAEhCkxB,EAAOhyB,SAAS,eAWlB,OAVAc,EAAG0xB,QAAU,EACb1xB,EAAGuxB,SAAW,eACdL,EAAOnpB,KAAK,qBAAqB3Q,MAAK,SAAUo6B,EAAUC,GACxDh0B,EAAIjL,KAAK,CACPwN,GAAIyxB,EACJG,mBAAoB5C,EACpB0C,QAAS,SAAU7nB,GAAY,OAAQT,KAAKuoB,IAAK9nB,EAAU,IAC3DhJ,UAAW,SAAUgJ,GAAY,MAAQ,oBAAsB,EAAIA,GAAY,6FAA+FA,EAAW,GAAK,6CAA+C,EAAIA,GAAY,6DAA+D,GAAiB,GAAXA,GAAkB,UAM5V,GAAIynB,EAuBF,OAtBI7zB,EAAIhL,QAAQuN,GAAM,GAAKvC,EAAIjL,KAAKwN,GAC/B2wB,GAAcC,IACbH,GACEC,IACF1wB,EAAGpB,UAAY,iCAEjBoB,EAAGa,UAAY,SAAUgJ,GAAY,MAAQ,eAAyB,IAAMA,EAAZ,KAAwBqmB,EAAY,kEAEpGlwB,EAAGa,UAAY,SAAUgJ,GAAY,MAAQ,eAAyB,IAAMA,EAAZ,KAAwBqmB,EAAY,QAGnGS,GAAaC,IAChB5wB,EAAGa,UAAY,SAAUgJ,GAAY,MAAQ,eAAyB,IAAMA,EAAZ,KAAwBqmB,EAAY,4BAA8B,EAAIrmB,GAAY,6CAEhJ8mB,IAAcC,IAChB5wB,EAAGpB,UAAY,gCACfoB,EAAGa,UAAY,SAAUgJ,GAAY,MAAQ,eAAyB,IAAMA,EAAZ,KAAwBqmB,EAAY,uBAAyBrmB,EAAW,kDAEtI8mB,GAAaC,IACf5wB,EAAGa,UAAY,SAAUgJ,GAAY,MAAQ,eAAyB,IAAMA,EAAZ,KAAwBqmB,EAAY,QAKxG,IAAIgB,EAAOhyB,SAAS,eAApB,CACA,IAAI2yB,EAAYX,EAAOhyB,SAAS,YAAcwvB,EAAkBrzB,SAAS,yBAAyBjJ,OAKlG,GAJIqL,EAAIhL,QAAQuN,GAAM,GAAKvC,EAAIjL,KAAKwN,KAC/BmxB,GAAgBA,IAAgBU,KACnC7xB,EAAG0xB,QAAU,SAAU7nB,GAAY,OAAQT,KAAKuoB,IAAK9nB,EAAU,KAE7DgoB,EAAW,CACb,IAAIC,EAAkB9xB,EACtB,GAAIoxB,GAAUnB,EAAwB79B,QAAUmY,EAAOwmB,yBAA0B,CAC/E,IAAIgB,EAAS,CAAE/xB,GAAIiwB,EAAwB,IAC3C6B,EAAkBC,EAClBt0B,EAAIjL,KAAKu/B,GAEXD,EAAgBjxB,UAAY,SAAUgJ,GACpC,IAAIqoB,EAAuBJ,EAAgB9xB,GAAGgxB,oBAAsB,EAAInnB,GAExE,OAD0B,IAAtBmL,OAAO8B,aAAoBob,EAAuB9oB,KAAK+J,MAAM+e,IAC7Df,GAAeX,EACT,eAAiB0B,EAAuB,oGAE1C,eAAiBA,EAAuB,iBAIjDz0B,EA+HgB00B,IAIjB50B,EAAE,mBAAmBnL,OAAS,GAAK4nB,EAAIoY,OACzCpY,EAAIoY,MAAMvX,MAAMtd,EAAE,oBAGtBoE,EAAE0wB,qBAAsB,EACxB5N,GAAU,EACVzK,EAAIsY,8BAA+B,EACnC3wB,EAAEmmB,iBAGF,IAAIoI,EAAWlW,EAAIwC,KAAO,EAAI,GAG9BqR,GAAe3F,EAAQmG,EAAapb,EAAI6b,GAA4BoB,GAClD,IAAKrC,EAAc,GACrC,IAAI0E,EAAanpB,KAAKE,IAAIF,KAAKC,IAAIwkB,EAAcD,EAAoB,GAAI,GAGrE4E,EAAe,CACjBD,WAAYA,EACZ1oB,SAAU0oB,EACVE,cAAenE,EAAe,GAC9BoE,eAAgBnE,EAAgB,GAChCoE,gBAAiBlE,EAAiB,GAClCmE,iBAAkBlE,EAAkB,IAEtCtU,EAAIjX,QAAQ,iBAAkBqvB,GAC9BxT,EAAOvH,KAAK,gBAAiB+a,GAG7B,IAAIK,EAAuBhF,EAAcqC,EACrC4C,GAA0BjF,EAAc,EAAMD,EAAqB,GAAMsC,EACxElW,EAAIwC,KAIPqW,EAAuBzpB,KAAKC,IAAIwpB,GAAuBjF,GACvDkF,EAAwB1pB,KAAKC,IAAIypB,EAAuB,KAJxDD,EAAuBzpB,KAAKE,IAAIupB,EAAsBjF,GACtDkF,EAAwB1pB,KAAKE,IAAIwpB,EAAuB,IAKhC,IAAtB9d,OAAO8B,aACT+b,EAAuBzpB,KAAK+J,MAAM0f,GAClCC,EAAwB1pB,KAAK+J,MAAM2f,IAGrC9T,EAAO+T,iBAAkB,EACzBx1B,EAAE,CAAC+wB,EAAe,GAAIC,EAAgB,KAAK5vB,SAAS,yBAEpD2vB,EAAeztB,UAAW,eAAiBgyB,EAAuB,WAC9DlE,IAAgCX,EAAc,GAAGzyB,MAAMm2B,QAAU,EAAK,EAAIa,GAE5D,QAAdvY,EAAI/C,OACNsX,EAAgB1tB,UAAW,eAAiBiyB,EAAwB,WAElElE,IAAiCX,EAAe,GAAG1yB,MAAMm2B,QAAU,EAAK,EAAIa,GAG3ExE,GAELkB,EAAyB,CAAEplB,SAAU0oB,MAEvC,SAASS,IAEP,GADAhZ,EAAIsY,8BAA+B,GAC9BlE,IAAc3J,EAGjB,OAFA2J,GAAY,OACZ3J,GAAU,GAGZ2J,GAAY,EACZ3J,GAAU,EACVzF,EAAO+T,iBAAkB,EACzB,IAAIE,EAAS11B,EAAE,CAAC+wB,EAAe,GAAIC,EAAgB,KAEnD,GADA0E,EAAOj0B,YAAY,yBACC,IAAhB6uB,EAOF,OANAoF,EAAOpyB,UAAU,IACbmtB,GAAiBA,EAAc57B,OAAS,GAAK47B,EAAc/uB,SAC3DgvB,GAAkBA,EAAe77B,OAAS,GAAK67B,EAAehvB,cAC9D8uB,GACFkB,EAAyB,CAAEC,OAAO,KAItC,IAAIgE,EAAWllB,MAAMc,MAAQgf,EACzBqF,GAAc,GAGfD,EAAW,KAAOrF,EAAc,IAC7BqF,GAAY,KAAOrF,EAAcD,EAAqB,KAE1DU,EAAetvB,YAAY,gBAAgBL,SAAU,aAA6B,QAAdqb,EAAI/C,MAAkB,sBAAwB,KAClHsX,EAAgBvvB,YAAY,iBAAiBL,SAAS,gBAAgBiB,WAAW,eAC7EouB,IAAiBA,EAAc,GAAGzyB,MAAMm2B,QAAU,IAClDzD,IAAkBA,EAAe,GAAG1yB,MAAMm2B,QAAU,IACpD3D,IACF/O,EAAOoU,kBAAkB3E,EAAkB,QAC3CzP,EAAOoU,kBAAkB1E,EAAmB,WAAW,IAEzDyE,GAAc,GAIhBF,EAAOt0B,SAAS,mDACXw0B,IAEH7E,EAAe,GAAGc,YAAcd,EAAe,GAAGzpB,YAEpDouB,EAAOpyB,UAAU,IAEbktB,GACFkB,EAAyB,CAAEplB,SAAUspB,EAAc,EAAI,EAAGnyB,YAAY,EAAMmuB,QAASgE,IAEvF3E,GAAqB,EACrBxP,EAAOqO,iBAAkB,EAGzB,IAAImF,EAAe,CACjBC,cAAenE,EAAe,GAC9BoE,eAAgBnE,EAAgB,GAChCoE,gBAAiBlE,EAAiB,GAClCmE,iBAAkBlE,EAAkB,IAGlCyE,GAEFnU,EAAOqU,aAAe9E,EAAgB,GAAG+E,OAAO1H,MAChD5M,EAAOuU,YAAchF,EAAgB,GAGrCvP,EAAOwU,aAAa,YAAalF,EAAgBG,EAAkB,UAAW,OAAQ,CAAE7C,MAAO0C,EAAe,GAAGgF,OAAO1H,MAAO6H,WAAW,IAC1IzU,EAAOwU,aAAa,WAAYjF,EAAiBG,EAAmB,WAAY,UAAW,CAAE9C,MAAO2C,EAAgB,GAAG+E,OAAO1H,MAAO6H,WAAW,GAAQnF,EAAe,IAEvKlU,EAAIjX,QAAQ,yBAA0BqvB,GACtCxT,EAAOvH,KAAK,wBAAyB+a,KAErCpY,EAAIjX,QAAQ,wBAAyBqvB,GACrCxT,EAAOvH,KAAK,uBAAwB+a,IAGtClE,EAAe3qB,eAAc,WAC3BsvB,EAAOj0B,YAAY,mDACf+uB,GACFkB,EAAyB,CAAEC,OAAO,EAAMluB,YAAY,IAEtDwtB,GAAqB,EACrBxP,EAAOqO,iBAAkB,EACrB8F,GAE4B,IAA1BnU,EAAOxiB,QAAQpK,QACjB4sB,EAAOxiB,QAAQsF,QAAQkd,EAAO9P,KAEhC8P,EAAOxiB,QAAQgwB,MACfxN,EAAO0U,cAGHnpB,EAAO7N,WACTwvB,QAAQtvB,OAIVoiB,EAAOwU,aAAa,WAAYlF,EAAgBG,EAAkB,UAAW,OAAQ,CAAE7C,MAAO0C,EAAe,GAAGgF,OAAO1H,MAAO6H,WAAW,IACzIzU,EAAOwU,aAAa,UAAWjF,EAAiBG,EAAmB,WAAY,UAAW,CAAE9C,MAAO2C,EAAgB,GAAG+E,OAAO1H,MAAO6H,WAAW,IAG3IlpB,EAAOopB,YAAc3U,EAAO4U,aAAanhC,QAAQ67B,EAAe,KAAO,GACzEA,EAAe3vB,SAAS,WACpBovB,GACFU,EAAiB9vB,SAAS,aAG5BqgB,EAAOwU,aAAa,eAAgBlF,EAAgBG,EAAkB,OAAQ,CAAEgF,WAAW,IAC3FzU,EAAO6U,WAAWvF,GACdP,GACF/O,EAAO8U,aAAarF,IAIxBrU,EAAIjX,QAAQ,wBAAyBqvB,GACrCxT,EAAOvH,KAAK,uBAAwB+a,GAEpCxT,EAAOvH,KAAK,eAAgBuH,EAAOqU,aAAcrU,EAAO+U,cAAe/U,GAEnEzU,EAAOypB,qBACThV,EAAOpiB,KAAKoiB,EAAOxiB,QAAQwiB,EAAOxiB,QAAQpK,OAAS,GAAI,CAAE6hC,SAAS,MAGpE7Z,EAAIjX,QAAQ,uBAAwBqvB,GACpCxT,EAAOvH,KAAK,sBAAuB+a,IAEjCxE,GAAiBA,EAAc57B,OAAS,GAAK47B,EAAc/uB,SAC3DgvB,GAAkBA,EAAe77B,OAAS,GAAK67B,EAAehvB,YAKhEyV,IAA6C,eAA1BsF,EAAIoN,YAAYC,QAA0BlT,QAAQO,kBAAmB,CAAEsS,SAAS,EAAMvlB,SAAS,GACtH2Y,EAAIhZ,GAAG4Y,EAAIoN,YAAYC,MAAOmI,EAAkB9a,GAChDsF,EAAI5Y,GAAG,mBAAoBwuB,GAC3B5V,EAAI5Y,GAAG,mBAAoB4xB,GAW7BhU,EAAO5d,GAAG,iBATV,WACE,IAAIsT,IAA6C,eAA1BsF,EAAIoN,YAAYC,QAA0BlT,QAAQO,kBAAmB,CAAEsS,SAAS,EAAMvlB,SAAS,GACtH2Y,EAAI3X,IAAIuX,EAAIoN,YAAYC,MAAOmI,EAAkB9a,GACjDsF,EAAIvX,IAAI,mBAAoBmtB,GAC5B5V,EAAIvX,IAAI,mBAAoBuwB,MAQhC,SAASkB,SAAUC,EAAWvI,EAAOx1B,GACnC,IAAI4oB,EAASluB,KACTojC,EAAWtI,EAAMA,MAAMsI,SAc3B,GAbI99B,EAAQg+B,SAAWpV,EAAOzU,OAAO7N,YACnCtG,EAAQqG,cAAe,EACvBrG,EAAQoG,SAAU,GAWI,mBAAb03B,EAAyB,CAClClV,EAAOqO,iBAAkB,EACzB,IAAIgH,EAAcH,EAASl9B,KAAKgoB,EAAQ4M,GAX1C,SAAyByI,EAAaC,QACX,IAApBA,IAA6BA,EAAkB,IAEpDtV,EAAOqO,iBAAkB,EACzBrO,EAAOmV,GAAWE,EAAarmB,MAAM5U,OAAO,GAAIhD,EAASk+B,OAE3D,WACEtV,EAAOqO,iBAAkB,KAKzB,OAAIgH,GAAsC,iBAAhBA,GACxBrV,EAAOqO,iBAAkB,EAClBrO,EAAOmV,GAAWE,EAAaj+B,IAEjC4oB,EAET,OAAOA,EAAOmV,GAAWD,EAAU99B,GAGrC,SAASm+B,aAAavV,EAAQsN,EAAakI,EAAYtjB,EAAIC,EAAMiK,EAASC,GACxE,IAAI8Q,EAAQ,GAERv4B,MAAMC,QAAQ2gC,GAChBrI,EAAM35B,KAAKwP,MAAMmqB,EAAOqI,GACfA,GAAoC,mBAAfA,GAC9BrI,EAAM35B,KAAKgiC,GAETlI,IACE14B,MAAMC,QAAQy4B,GAChBH,EAAM35B,KAAKwP,MAAMmqB,EAAOG,GAExBH,EAAM35B,KAAK85B,IAIf,SAASjlB,IACc,IAAjB8kB,EAAM/5B,OAIM+5B,EAAMnhB,QAEZhU,KACRgoB,EACA9N,EACAC,GACA,WACE9J,OAEF,WACEgU,OAbFD,IAiBJ/T,GAGF,SAASotB,kBAAmBvjB,EAAIC,EAAMiK,EAASC,GAC7C,IAAI2D,EAASluB,KACb,SAAS4jC,IACHxjB,GAAMA,EAAG0a,QAAU5M,EAAOzU,OAAOoqB,mBAAqBzjB,EAAG0a,MAAMgJ,cACjE5V,EAAOqO,iBAAkB,EACzBkH,aACEvV,EACAA,EAAOzU,OAAOoqB,kBACdzjB,EAAG0a,MAAMgJ,YACT1jB,EACAC,GACA,WACE6N,EAAOqO,iBAAkB,EACzBjS,OAEF,WACEC,QAIJD,IAIEjK,GAAQA,EAAKya,QAAU5M,EAAOzU,OAAOsqB,mBAAqB1jB,EAAKya,MAAMkJ,cACvE9V,EAAOqO,iBAAkB,EACzBkH,aACEvV,EACAA,EAAOzU,OAAOsqB,kBACd1jB,EAAKya,MAAMkJ,YACX5jB,EACAC,GACA,WACE6N,EAAOqO,iBAAkB,EACzBqH,OAEF,WACErZ,QAIJqZ,IAMN,SAASK,eAAgB/V,EAAQ1H,GAC/B,IAAK0H,EAAOmO,KACV,MAAM,IAAIr2B,MAAO,iJAAmJwgB,EAAS,SAIjL,SAAS0d,eAAgBhW,EAAQgW,EAAgB5Z,EAASC,GACxD,SAAS4Z,EAAeC,GACtBA,EACGtY,MAAK,SAAU7J,GAEdqI,EAAQ,CAAEqC,UAAW1K,EAAEoiB,SAAWpiB,EAAEqiB,UAAYriB,OAEjD8J,OAAM,SAAUC,GAEf,MADAzB,IACM,IAAIvkB,MAAMgmB,MAGtB,GAAIkY,aAA0B7Z,QAC5B8Z,EAAeD,OADjB,CAIA,IAAIK,EAAuBL,EAAeh+B,KAAKgoB,GAC3CqW,aAAgCla,QAClC8Z,EAAeI,GAEfja,EAAQ,CAAEqC,UAAW4X,KAIzB,SAASC,cAGP,OADAP,eADajkC,KACU,eADVA,KAEC87B,SAFD97B,KAEiBuiC,aAAankB,IAAK,CAC9CqmB,aAAa,EACbC,eAAe,IAInB,SAASC,QAAQz1B,EAAI01B,QACK,IAAnBA,IAA4BA,EAAiB,IAElD,IAmBIC,EACAC,EAGAC,EAvBA7W,EAASluB,KACTspB,EAAM7c,EAAEyC,GACRga,EAAMgF,EAAOhF,IACbmT,EAAOnO,EAAOmO,KACd/2B,EAAU4X,MAAM5U,QAAO,EAAO,CAChC8Q,QAAS8U,EAAOzU,OAAOL,QACvBxN,WAAW,EACXD,cAAc,EACdD,SAAS,EACTg5B,cAAexW,EAAOzU,OAAOurB,YAC7BC,gBAAgB,EAChBC,WAAW,EACXC,sBAAsB,EACtBC,aAAclX,EAAOzU,OAAO2rB,aAC5B90B,GAAI,IACHs0B,GAECS,EAAsBnX,EAAOzU,OAAOolB,uBAAyB,EAC7DyG,EAAWD,GAAuB//B,EAAQw1B,OAASx1B,EAAQw1B,MAAMA,QAAwC,IAA/Bx1B,EAAQw1B,MAAMA,MAAMyK,OAI9FC,EAAsBtX,EAAOqU,aAAakD,MAW9C,GATKD,GACH,4DAA8DpkC,MAAM,KAAK2C,SAAQ,SAAU2hC,GACrFxX,EAAOqU,cAAgBrU,EAAOqU,aAAazH,OAAS5M,EAAOqU,aAAazH,MAAM4K,KAChFF,GAAsB,EACtBT,EAAYW,MAKdF,EAAqB,CACvB,IAAIG,EAAezX,EAAOqU,aAAakD,OACfvX,EAAOqU,aAAazH,MAAM8K,eAC1B1c,EAAI6b,GAAW77B,MACnC28B,EAAc3X,EAAOxiB,QAAQwiB,EAAOxiB,QAAQpK,OAAS,GACrD2hC,EAAgB/U,EAAO4X,kBAAkBD,IACxC5C,GAAiB4C,IACpB5C,EAAgB,CACd7kB,IAAKynB,EACLjN,KAAMiN,EAAYzkC,MAAM,KAAK,GAC7Bkd,MAAOpB,MAAMiB,cAAc0nB,GAC3B/K,MAAO,CACLlC,KAAMiN,EAAYzkC,MAAM,KAAK,GAC7Bgd,IAAKynB,KAKX3X,EAAO6X,YAAYJ,GAGrB,IAKIK,EAEA3I,EACA4I,EACAC,EATAjJ,EAAgB/O,EAAO+O,cAEvBkJ,EAAUjY,EAAO5E,IACjB8c,EAAW9c,EACX+c,EAAS/gC,EAAQ2/B,gBAAkB3/B,EAAQo/B,eAAiBp/B,EAAQ4/B,UAQxE,GADAhX,EAAOqO,iBAAkB,EACD,IAApB6J,EAAS9kC,OAEX,OADA4sB,EAAOqO,iBAAkB,EAClBrO,EAGLkY,EAAS9kC,QAEX4sB,EAAOoY,oBAAoBF,GAGzBnJ,IACFgJ,EAAeG,EAAS77B,SAAS,WACjC8yB,EAAanP,EAAOmP,WACQ,IAAxB4I,EAAa3kC,QAAgB8kC,EAAS,IAAMA,EAAS,GAAG5D,SAE1DyD,EAAeG,EAAS,GAAG5D,OAAO+D,YAKlCjhC,EAAQw1B,OAASx1B,EAAQw1B,MAAMA,OAASx1B,EAAQw1B,MAAMA,MAAM0L,YAAclhC,EAAQw1B,MAAMA,MAAM2L,gBAChGnhC,EAAQw1B,MAAMA,MAAM2L,cAAgB,CAClCC,OAAQpd,EAAI,KAKhB,IAKIqd,EAcAC,EACAxB,EACAyB,EArBAC,EAAeX,EAChB57B,SAAS,uBACTmI,QAAO,SAAU/L,EAAOogC,GAAc,OAAOA,IAAeX,EAAS,MAWxE,GAPInJ,IACF0J,EAAiBtJ,EACd9yB,SAAS,yBACTmI,QAAO,SAAU/L,EAAOqgC,GAAgB,OAAOA,IAAiBf,EAAa,OAI9E3gC,EAAQ2/B,gBAAkB6B,EAAaxlC,OAAS,EAElD,OADA4sB,EAAOqO,iBAAkB,EAClBrO,EAOT,GAAImX,IAAwB//B,EAAQ4/B,UAAW,CAC7C,IAAK,IAAIlkC,EAAI,EAAGA,EAAI8lC,EAAaxlC,OAAQN,GAAK,EACvC6jC,IACAiC,EAAa9lC,GAAGgN,UAAUK,SAAS,iBAEtCw2B,EAAeiC,EAAa9lC,IAMhC,IAFA4lC,GAAYtB,GAAYT,IAIlBA,EACF,IAAK,IAAIn1B,EAAM,EAAGA,EAAMo3B,EAAaxlC,OAAQoO,GAAO,EAC9Co3B,EAAap3B,GAAK1B,UAAUK,SAAS,wBAEvCy2B,EAAoBgC,EAAap3B,IAMzC01B,EAAewB,GAAYthC,EAAQ8/B,cAAgBlc,EAAIlW,OAASkb,EAAOzU,OAAOolB,wBAA0BgG,EAEtG+B,IACFC,GAAgB/B,GAAqBM,GAAgB9/B,EAAQ4/B,WAAa5/B,EAAQo/B,eAIpF,IAAIuC,EAAkB,OAiCtB,GAhCI3hC,EAAQo/B,eAAiBp/B,EAAQ4/B,WAAaE,EAChD6B,EAAkB,UACT3hC,EAAQ2/B,iBACjBgC,EAAkB,YAEpBb,EACGl4B,YAAY,wCACZL,SAAU,QAAUo5B,GAAmB3B,EAAW,eAAiB,KAAOsB,EAAW,sBAAwB,KAAOC,EAAe,2BAA6B,KAChK34B,YAAY,WACZmE,QAAQ,gBACRA,QAAQ,gBAAiB,CAAE60B,SAAUD,IACxC/Y,EAAOvH,KAAK,cAAeyf,EAAS,IACpClY,EAAOvH,KAAK,eAAgByf,EAAS,GAAIa,IAErC3B,GAAYsB,KACdR,EAAS/zB,QAAQ,YAAa,CAAE80B,KAAM7B,EAAW,SAAW,SAAUx/B,OAAQ+gC,IAC9E3Y,EAAOvH,KAAK,WAAYyf,EAAS,GAAI,CAAEe,KAAM7B,EAAW,SAAW,SAAU8B,aAAcP,KAGzF5J,GAAiBgJ,EAAa3kC,SAChC2kC,EACG/3B,YAAY,8CACZL,SAAU,UAAYo5B,GAAmB3B,EAAW,iBAAmB,KAAOsB,EAAW,wBAA0B,KAAOC,EAAe,6BAA+B,KACxK34B,YAAY,WACf+3B,EAAa5zB,QAAQ,kBAAmB,CAAE60B,SAAUD,IACpD/Y,EAAOvH,KAAK,iBAAkBsf,EAAa,GAAIgB,IAC3C3B,GAAYsB,IACd1Y,EAAOvH,KAAK,aAAcsf,EAAa,GAAI,CAAEkB,KAAM7B,EAAW,SAAW,SAAU8B,aAAcP,KAKjGvhC,EAAQo/B,eAAiBU,EAC3BY,EAAWc,EAAazxB,GAAGyxB,EAAaxlC,OAAS,GAC7C27B,IAEFiJ,EAAez5B,EAAEyc,EAAIme,OAAOC,YAAYtB,UAErC,GAAI1gC,EAAQ2/B,eACjBe,EAAWc,EAAazxB,GAAGyxB,EAAaxlC,OAAS,GAC7C27B,IAEFiJ,EAAez5B,EAAEyc,EAAIme,OAAOC,YAAYtB,UAErC,GAAI1gC,EAAQ4/B,UACjBc,EAAWc,EAAap0B,QAAO,SAAU/L,EAAO+/B,GAAU,OAAOA,IAAWN,EAAS,MACjFnJ,IACFiJ,EAAeS,EAAej0B,QAAO,SAAU/L,EAAO4gC,GAAY,OAAOA,IAAatB,EAAa,WAEhG,CACL,IAAIuB,EAAiB,GACjBC,EAAmB,GACvB,GAAIX,EAAaxlC,OAAS,EAAG,CAC3B,IAAIomC,EAAM,EACV,IAAKA,EAAM,EAAGA,EAAMZ,EAAaxlC,OAAS,EAAGomC,GAAO,EAClD,GAAI7C,GACCiC,EAAaY,KAAS7C,EAEzBiC,EAAazxB,GAAGqyB,GAAK75B,SAAS,uBAC9Bi5B,EAAazxB,GAAGqyB,GAAKr1B,QAAQ,oBAC7B6b,EAAOvH,KAAK,kBAAmBmgB,EAAaY,IACxCzK,IACFxwB,EAAEyc,EAAIme,OAAOC,YAAYzC,IAAeh3B,SAAS,yBACjDqgB,EAAOvH,KAAK,oBAAqBuC,EAAIme,OAAOC,YAAYzC,SAR5D,CAYA,IAAI8C,EAAcze,EAAIme,OAAOC,YAAYR,EAAazxB,GAAGqyB,IACrDxZ,EAAOzU,OAAOopB,YAChBiE,EAAazxB,GAAGqyB,GAAK75B,SAAS,WAC9Bi5B,EAAazxB,GAAGqyB,GAAKr1B,QAAQ,cAC7B6b,EAAOvH,KAAK,YAAamgB,EAAaY,IAClCzK,GACFxwB,EAAEk7B,GAAa95B,SAAS,aAI1B25B,EAAe9lC,KAAKolC,EAAaY,IACjCxZ,EAAOwU,aAAa,eAAgBoE,EAAaY,GAAMf,GAAkBA,EAAee,GAAM,gBAAYvnC,EAAWmF,GACrH4oB,EAAO6U,WAAW+D,EAAaY,IAC3BzK,GAAiB0K,IACnBF,EAAiB/lC,KAAKimC,GACtBzZ,EAAO8U,aAAa2E,MAK5B3B,EAAWG,EACR57B,SAAS,uBACTmI,QAAO,SAAU/L,EAAO+/B,GAAU,OAAOA,IAAWN,EAAS,IAAMoB,EAAe7lC,QAAQ+kC,GAAU,KACnGzJ,IACFiJ,EAAe7I,EACZ9yB,SAAS,yBACTmI,QAAO,SAAU/L,EAAO4gC,GAAY,OAAOA,IAAatB,EAAa,IAAMwB,EAAiB9lC,QAAQ8lC,GAAoB,MAE7HD,EAAiB,GACjBC,EAAmB,GAarB,GAVIb,IAAathC,EAAQ4/B,aACnBc,EAAS1kC,OAAS,GAAK8jC,KACzBY,EAAWA,EAAStzB,QAAO,SAAUk1B,EAAWlB,GAAU,OAAQA,EAAO14B,UAAUK,SAAS,mBAE1F63B,IAAiBA,EAAa5kC,OAAS,GAAK8jC,KAC9Cc,EAAeA,EAAaxzB,QAAO,SAAUm1B,EAAaN,GAAY,OAAQA,EAASv5B,UAAUK,SAAS,sBAK1G6f,EAAOzU,OAAO7N,YAActG,EAAQsG,WAAatG,EAAQqG,gBAAkBrG,EAAQ2/B,eAAgB,CACrG,IAAI6C,EAAgB5Z,EAAOzU,OAAOquB,eAAiB,GACnD1M,QAAQ91B,EAAQo/B,eAAkBU,GAAgBN,GAAsBx/B,EAAQ4/B,WAAa5/B,EAAQqG,aAAe,UAAY,QAC9H0wB,EAAK1uB,GACL,CACEyQ,IAAK9Y,EAAQw1B,MAAM1c,KAErB0pB,EAAgB5Z,EAAOzU,OAAOsuB,mBAAqBziC,EAAQw1B,MAAM1c,KAIhE9Y,EAAQ2/B,iBAEX/W,EAAOyT,cAAgByE,EAAS,GAC5BnJ,GAAiBgJ,EAAa3kC,OAChC4sB,EAAO2T,gBAAkBoE,EAAa,UAE/B/X,EAAO2T,gBAIhB3T,EAAOqU,aAAej9B,EAAQw1B,OAIhC,IAAI1c,EAAM9Y,EAAQw1B,MAAM1c,IAEpB9Y,EAAQoG,YACJpG,EAAQo/B,eAAkBU,GAAgBN,IAAuB5W,EAAOxiB,QAAQpK,QAAU,GAAKgE,EAAQqG,aAC3GuiB,EAAOxiB,QAAQwiB,EAAOxiB,QAAQpK,QAAUgE,EAAQ2/B,eAAiB,EAAI,IAAM7mB,EAClE9Y,EAAQ2/B,eACjB/W,EAAOxiB,QAAQwiB,EAAOxiB,QAAQpK,OAAS,GAAK8c,EACnC9Y,EAAQ4/B,UACjBhX,EAAOxiB,QAAU,CAAC0S,GAElB8P,EAAOxiB,QAAQhK,KAAK0c,IAGxB8P,EAAO0U,cAGP,IAAIoF,EAAe5B,EAAS/hC,QAAQmF,KAAKlI,OAAS,EAC9C+sB,EAAc+X,EAAS,GAAG/X,YA8H9B,GA7HI/oB,EAAQ2/B,gBACN5W,IAAgB2Z,EAClB3Z,EAAY4Z,QAAO,SAAUC,GAC3Bz7B,EAAEy7B,GAAanyB,aAAaiwB,MAG9BI,EAASrwB,aAAaiwB,GAEpB/I,GAAiBgJ,EAAa3kC,SAC5B2kC,EAAahvB,KAAK,gBAAgB3V,QACpC2kC,EAAap4B,SAAS,gBAEpBq4B,EAAa5kC,OACf2kC,EAAalwB,aAAamwB,IAErBhY,EAAOmP,WAAWh5B,QAAQmF,KAAKlI,QAClC4sB,EAAO5E,IAAIxT,QAAQoY,EAAOmP,YAE5BA,EAAW9nB,OAAO0wB,OAIlBD,EAASzvB,KAAK,SAAS,KAAO6vB,EAAS,KACrC/X,IAAgB2Z,EAClB3Z,EAAY4Z,QAAO,SAAUC,GAC3B/B,EAAQ5wB,OAAO2yB,MAGjB/B,EAAQ5wB,OAAO6wB,EAAS,KAGxBnJ,GAAiBgJ,EAAa3kC,SAC5B2kC,EAAahvB,KAAK,gBAAgB3V,QACpC2kC,EAAap4B,SAAS,gBAEnBqgB,EAAOmP,WAAWh5B,QAAQmF,KAAKlI,QAClC4sB,EAAO5E,IAAIxT,QAAQoY,EAAOmP,YAE5BA,EAAW9nB,OAAO0wB,EAAa,MAG9B+B,EAEM1iC,EAAQw1B,OAASx1B,EAAQw1B,MAAMA,OAASx1B,EAAQw1B,MAAMA,MAAM0L,YAAcJ,EAAS,GAAG+B,gBAC/F/B,EAAS,GAAG+B,eAAgB,EAC5Bja,EAAOwU,aAAa,UAAW0D,EAAUH,EAAcgB,EAAkBZ,EAASY,EAAkB,UAAY3hC,EAAS0gC,IAHzH9X,EAAOwU,aAAa,UAAW0D,EAAUH,EAAcgB,EAAkBZ,EAASY,EAAkB,UAAY3hC,EAAS0gC,IAOtH1gC,EAAQo/B,eAAiBU,IAAiBY,EAAS1kC,OAAS,EAC3D4sB,EAAOzU,OAAOopB,YAAc3U,EAAO4U,aAAanhC,QAAQqkC,EAAS,KAAO,GAC1EA,EAASn4B,SAAS,WAClBm4B,EAAS3zB,QAAQ,cACjB6b,EAAOvH,KAAK,YAAaqf,EAAS,IAC9B/I,GACFiJ,EAAar4B,SAAS,aAIxBqgB,EAAOwU,aAAa,YAAasD,EAAUE,EAAc,eAAW/lC,EAAWmF,GAC/E4oB,EAAOwU,aAAa,WAAYsD,EAAUE,EAAc,eAAW/lC,EAAWmF,GAC9E4oB,EAAOwU,aAAa,eAAgBsD,EAAUE,EAAc,eAAW/lC,EAAWmF,GAClF4oB,EAAO6U,WAAWiD,GACd/I,GAAiBiJ,GAAgBA,EAAa5kC,QAChD4sB,EAAO8U,aAAakD,IAGf5gC,EAAQ4/B,UACjBc,EAAS1/B,MAAK,SAAUK,EAAO+/B,GAC7B,IAAI0B,EAAa37B,EAAEi6B,GACf2B,EAAiB57B,EAAEyc,EAAIme,OAAOC,YAAYc,IAC1Cla,EAAOzU,OAAOopB,YAAc3U,EAAO4U,aAAanhC,QAAQymC,EAAW,KAAO,GAC5EA,EAAWv6B,SAAS,WACpBu6B,EAAW/1B,QAAQ,cACnB6b,EAAOvH,KAAK,YAAayhB,EAAW,IAChCnL,GACFoL,EAAex6B,SAAS,aAItBu6B,EAAWh6B,SAAS,kBACtB8f,EAAOwU,aAAa,YAAasD,EAAUE,EAAc,eAAW/lC,EAAWmF,GAC/E4oB,EAAOwU,aAAa,WAAYsD,EAAUE,EAAc,eAAW/lC,EAAWmF,IAEhF4oB,EAAOwU,aAAa,eAAgB0F,EAAYlC,GAAgBA,EAAa7wB,GAAG1O,GAAQ,gBAAYxG,EAAWmF,GAC/G4oB,EAAO6U,WAAWqF,GACdnL,GAAiBoL,EAAe/mC,QAClC4sB,EAAO8U,aAAaqF,OAIjB/iC,EAAQ2/B,iBACb/W,EAAOzU,OAAOopB,YAAc3U,EAAO4U,aAAanhC,QAAQqkC,EAAS,KAAO,GAC1EA,EAASn4B,SAAS,WAClBm4B,EAAS3zB,QAAQ,cACjB6b,EAAOvH,KAAK,YAAaqf,EAAS,IAC9B/I,GACFiJ,EAAar4B,SAAS,aAIxBqgB,EAAOwU,aAAa,eAAgBsD,EAAUE,EAAc,gBAAY/lC,EAAWmF,GACnF4oB,EAAO6U,WAAWiD,GACd/I,GAAiBiJ,GAAgBA,EAAa5kC,QAChD4sB,EAAO8U,aAAakD,KAMtB5gC,EAAQw1B,MAAMA,MAAMwN,KACtBpa,EAAOqa,QAAQjjC,EAAQw1B,MAAMA,MAAMwN,IAAKprB,MAAM5U,OAAO,GAAIhD,EAAS,CAChEoG,SAAS,EACTE,WAAW,KAKXy5B,GACFhJ,EAAKmM,8BAIPta,EAAOwU,aAAa,OAAQ0D,EAAUH,EAAcgB,EAAiBZ,EAASY,EAAkB,UAAW3hC,EAAS0gC,GAEhH1gC,EAAQo/B,eAAiBp/B,EAAQ4/B,WAAaE,EAehD,OAdAlX,EAAOqO,iBAAkB,EACzBrO,EAAOwU,aAAa,WAAY0D,EAAUH,EAAcgB,EAAiB,UAAW3hC,GACpF8gC,EAASt3B,WAAW,eAChBmuB,GAAiBgJ,GACnBA,EAAan3B,WAAW,eAE1Bof,EAAOwU,aAAa,UAAW0D,EAAUH,EAAcgB,EAAiB,UAAW3hC,GAC/EA,EAAQo/B,eAAiBp/B,EAAQ6/B,sBAAwBjX,EAAOiX,uBAChEC,IACFlX,EAAOua,gBAAgBh8B,EAAEo4B,GAAe,YACpCA,EAAarC,QAAUqC,EAAarC,OAAO+E,UAC7CrZ,EAAOoU,kBAAkB71B,EAAEo4B,EAAarC,OAAO+E,UAAW,aAGvDrZ,EAET,GAAI5oB,EAAQ2/B,eAEV,OADA/W,EAAOqO,iBAAkB,EAClBrO,EAQT,SAASwa,IACPxa,EAAOua,gBAAgBrC,EAAU,WAAW,GAC5ClY,EAAOua,gBAAgBzC,EAAU,YAAaA,EAAS53B,SAAS,gBAC5D6uB,IACF/O,EAAOoU,kBAAkB2D,EAAc,WAAW,GAClD/X,EAAOoU,kBAAkB4D,EAAc,YAAaA,EAAa93B,SAAS,mBAG5E8f,EAAOqO,iBAAkB,EACzBrO,EAAOwU,aAAa,WAAYsD,EAAUE,EAAc,UAAW,WAAY5gC,GAC/E4oB,EAAOwU,aAAa,UAAW0D,EAAUH,EAAc,OAAQ,UAAW3gC,GAE1E,IAAIqjC,GAAeza,EAAOzU,OAAOypB,qBAAuBhV,EAAOzU,OAASyP,EAAS,MAAI,gBAAmBoc,EACnGqD,IACCvC,EAASh4B,SAAS,sBAAwBg4B,EAASh4B,SAAS,uBAAyBg4B,EAASh4B,SAAS,sBAAwBg4B,EAASh4B,SAAS,wBACnJu6B,GAAc,GAGbA,IACCza,EAAOzU,OAAOopB,YAChBmD,EAASn4B,SAAS,WAClBm4B,EAAS3zB,QAAQ,cACjB6b,EAAOvH,KAAK,YAAaqf,EAAS,IAC9B/I,GACFiJ,EAAar4B,SAAS,YAEbu4B,EAAS53B,KAAK,cAA+C,sBAA/B43B,EAAS53B,KAAK,eAEvD0f,EAAOwU,aAAa,eAAgBsD,EAAUE,EAAc,gBAAY/lC,EAAWmF,GACnF4oB,EAAO6U,WAAWiD,GACd/I,GAAiBiJ,EAAa5kC,QAChC4sB,EAAO8U,aAAakD,KAItB5gC,EAAQ6/B,sBAAwBjX,EAAOiX,uBAC3CjX,EAAOvH,KAAK,eAAgBuH,EAAOqU,aAAcrU,EAAO+U,cAAe/U,GAEnEA,EAAOzU,OAAO7N,WAChBwvB,QAAQK,mBAGZ,SAASmN,IACP1a,EAAOua,gBAAgBzC,EAAU,WAAW,GAC5C9X,EAAOua,gBAAgBrC,EAAU,QAAQ,GACrCnJ,IACF/O,EAAOoU,kBAAkB4D,EAAc,WAAW,GAClDhY,EAAOoU,kBAAkB2D,EAAc,QAAQ,IAGnD,GAtDA/X,EAAOwU,aAAa,YAAasD,EAAUE,EAAc,UAAW,WAAY5gC,GAChF4oB,EAAOwU,aAAa,WAAY0D,EAAUH,EAAc,OAAQ,UAAW3gC,IAqDvEA,EAAQ8T,SAAaksB,GAAYpc,EAAIlW,OAASkb,EAAOzU,OAAOolB,uBA4B9D6J,QA5BuF,CACvF,IAAI5qB,EAAQoQ,EAAOzU,OAASyU,EAAOhF,IAAS,MAAI,iBAC5ChZ,EAAage,EAAOzU,OAAOvJ,WAC3B5K,EAAQ4K,aAAcA,EAAa5K,EAAQ4K,aAC1CA,GAAcge,EAAOqU,cAAgBrU,EAAOqU,aAAazH,QAC5D5qB,EAAage,EAAOqU,aAAazH,MAAM5qB,aAEpCA,GAAcge,EAAOqU,cAAgBrU,EAAOqU,aAAazH,MAAMx1B,UAClE4K,EAAage,EAAOqU,aAAazH,MAAMx1B,QAAQ4K,YAE7CA,IACFk2B,EAAS,GAAGyC,iBAAmB34B,GAG7B4N,EACFzR,YAAW,WACTu8B,IACA1a,EAAO9U,QAAQ4sB,EAAUI,EAAUF,EAAcD,EAAc,UAAW/1B,GAAY,WACpFw4B,SAED5qB,IAEH8qB,IACA1a,EAAO9U,QAAQ4sB,EAAUI,EAAUF,EAAcD,EAAc,UAAW/1B,GAAY,WACpFw4B,QAMN,OAAOxa,EAET,SAAS4a,KAAKC,EAAYC,EAAaC,QACjB,IAAfF,IAAwBA,EAAa,SACrB,IAAhBC,IAAyBA,EAAc,IAE5C,IAAI9a,EAASluB,KACb,IAAKkuB,EAAOqO,kBAAoB0M,EAAoB,OAAO/a,EAC3D,IAAIzU,EAASsvB,EACTzjC,EAAU0jC,EACV5qB,EAAM3E,EAAO2E,IACb9b,EAAUmX,EAAOnX,QACjB4M,EAAKuK,EAAOvK,GACZg6B,EAAWzvB,EAAOyvB,SAClBxjC,EAAW+T,EAAO/T,SAClByjC,EAAc1vB,EAAO0vB,YACrBxc,EAAYlT,EAAOkT,UACnBC,EAAenT,EAAOmT,aAE1B,IAAKtnB,EAAQo/B,eACRp/B,EAAQw1B,OACRx1B,EAAQw1B,MAAMA,OACdx1B,EAAQw1B,MAAMA,MAAMsO,YACpBlb,EAAOqU,aAAazH,OACpB5M,EAAOqU,aAAazH,MAAMsO,aAAe9jC,EAAQw1B,MAAMA,MAAMsO,WAAY,CAE5E,GAAI9jC,EAAQw1B,MAAM1c,MAAQ8P,EAAO9P,IAE/B,OADA8P,EAAOqO,iBAAkB,GAClB,EAGT,IAAI8M,EAAanlC,OAAO2B,KAAKP,EAAQw1B,MAAMrhB,QAAQnY,SAAW4C,OAAO2B,KAAKqoB,EAAOqU,aAAa9oB,QAAQnY,OAYtG,GAXI+nC,GAEFnlC,OAAO2B,KAAKP,EAAQw1B,MAAMrhB,QAAQ1V,SAAQ,SAAUulC,GAE9CA,KAAapb,EAAOqU,aAAa9oB,QAC/ByU,EAAOqU,aAAa9oB,OAAO6vB,KAAehkC,EAAQw1B,MAAMrhB,OAAO6vB,KAEnED,GAAa,MAIfA,EACF,QAAI/jC,EAAQw1B,MAAMA,MAAMwN,KACfpa,EAAOqa,QAAQjjC,EAAQw1B,MAAMA,MAAMwN,IAAKhjC,GAInD,IAAK+jC,GACA/jC,EAAQw1B,MAAMA,MAAMwN,KACpBpa,EAAOqU,aAAazH,MAAMwN,KAC1Bpa,EAAOqU,aAAa6G,aAAe9jC,EAAQw1B,MAAMsO,WAEpD,OAAOlb,EAAOqa,QAAQjjC,EAAQw1B,MAAMA,MAAMwN,IAAKhjC,GAInD,GACEA,EAAQw1B,OACLx1B,EAAQw1B,MAAM1c,KACd8P,EAAO9P,MAAQ9Y,EAAQw1B,MAAM1c,MAC3B9Y,EAAQo/B,gBAAiBp/B,EAAQ2/B,iBAClC/W,EAAOzU,OAAO8vB,mBAGlB,OADArb,EAAOqO,iBAAkB,GAClB,EAST,SAASjS,EAAQoc,EAAQ8C,GACvB,OAAOtb,EAAOyW,QAAQ+B,EAAQxpB,MAAM5U,OAAOhD,EAASkkC,IAEtD,SAASjf,IAEP,OADA2D,EAAOqO,iBAAkB,EAClBrO,EAQT,IAnBK5oB,EAAQw1B,OAAS1c,IACpB9Y,EAAQw1B,MAAQ5M,EAAOub,cAAcrrB,GACrClB,MAAM5U,OAAOhD,EAAQw1B,MAAO,CAAEA,MAAO,CAAE1c,IAAKA,EAAKwa,KAAMxa,OAYrDA,GAAO+qB,GAAevc,GAAgBD,KACxCuB,EAAOqO,iBAAkB,GAIvBj6B,EACF4rB,EAAOyW,QAAQzW,EAAOwb,UAAUpnC,GAAUgD,QACrC,GAAII,GAAYyjC,EAErB,IACEjb,EAAOyb,mBAAmBjkC,EAAUyjC,EAAa7jC,EAASglB,EAASC,GACnE,MAAOyB,GAEP,MADAkC,EAAOqO,iBAAkB,EACnBvQ,OAEH,GAAI9c,EAETgf,EAAOyW,QAAQzW,EAAOwb,UAAUx6B,GAAK5J,QAChC,GAAI4jC,EAEThb,EAAOyW,QAAQzW,EAAO5E,IAAI/e,SAAU,oBAAuB2+B,EAAW,MAAQ7zB,GAAG,GAAI/P,QAChF,GAAIqnB,GAAaC,EAEtB,IACEsB,EAAO0b,oBAAoB1b,EAAOhf,GAAIyd,EAAWC,EAActnB,EAASglB,EAASC,GACjF,MAAOyB,GAEP,MADAkC,EAAOqO,iBAAkB,EACnBvQ,OAEC5N,IAEL8P,EAAO5C,MACT4C,EAAO5C,IAAIue,QACX3b,EAAO5C,KAAM,GAEf4C,EAAO4b,WAAW1rB,EAAK9Y,GACpBwmB,MAAK,SAAUie,GACd7b,EAAOyW,QAAQzW,EAAOwb,UAAUK,GAAczkC,MAE/CymB,OAAM,WACLmC,EAAOqO,iBAAkB,MAG/B,OAAOrO,EAET,SAAS4N,SAASkO,EAAgBC,QACP,IAApBA,IAA6BA,EAAkB,IAEpD,IAEI7rB,EACA8rB,EACA1lC,EACAo0B,EACAta,EACA7E,EACAqhB,EARA5M,EAASluB,KACb,GAAIkuB,EAAO+T,gBAAmB,OAAO/T,EAkBrC,GAV8B,iBAAnB8b,EACT5rB,EAAM4rB,GAEN5rB,EAAM4rB,EAAe5rB,IACrB8rB,EAAcF,EAAelP,MAC7Bt2B,EAAOwlC,EAAexlC,KACtBo0B,EAAOoR,EAAepR,KACtBta,EAAQ0rB,EAAe1rB,MACvB7E,EAASuwB,EAAevwB,QAEtBjV,GAAQo0B,EAEV,OADAxa,EAAM8P,EAAOic,YAAY,CAAEvR,KAAMA,EAAMp0B,KAAMA,EAAMiV,OAAQA,EAAQ6E,MAAOA,KAEjE4P,EAAO4N,SAAS1d,EAAK6rB,GAEvB/b,EAET,IAAIhF,EAAMgF,EAAOhF,IAEjB,GADA+a,eAAe/V,EAAQ,YACX,MAAR9P,GAAuB,KAARA,EACjB,OAAO8P,EAGT,IAAIkc,EAAchsB,EAAIvd,QAAQ,KAAM,IACpC,GAAuB,MAAnBupC,EAAY,IAA2C,IAA7BA,EAAYzoC,QAAQ,KAAY,CAC5D,IAAI0oC,EAAcnc,EAAOqU,aAAa6G,YAAclb,EAAOqU,aAAa3J,KACxEwR,IAAgBC,EAAeA,EAAc,IAAO,KAAOD,GACxDvpC,QAAQ,MAAO,KACfA,QAAQ,KAAM,KAUnB,KAPEi6B,EADEoP,EACMhtB,MAAM5U,OAAO4lB,EAAOub,cAAcW,GAAc,CACtDtP,MAAO5d,MAAM5U,OAAO,GAAI4hC,KAGlBhc,EAAO4X,kBAAkBsE,IAIjC,OAAOlc,EAET,GAAI4M,EAAMA,OAASA,EAAMA,MAAMwP,SAAU,CACvC,IAAIC,EAAkBzP,EAAMA,MAAMwP,SAC9BE,EAActhB,EAAIkT,MAAMmO,GAC5B,IAAKC,EACH,MAAM,IAAIxkC,MAAO,sCAAyCukC,EAAkB,2CAE9E,GAAIC,IAAgBtc,EAAOmO,KACzB,OAAOmO,EAAYtc,OAAO4N,SAASkO,EAAgBC,GAIvD,GAAInP,EAAMA,MAAMsI,SACd,OAAOA,SAASl9B,KAAKgoB,EAAQ,WAAY4M,EAAOmP,GAIlD,IAAI3kC,EAAU,GAad,SAASglB,IACP,IAAImgB,GAAe,EAqBnB,SAASC,EAAaC,EAAeC,GACnC1c,EAAOqO,iBAAkB,EACzB,IAAIsO,GAAkB,EAClBD,GAAkBA,EAAe7kC,UAC9B+0B,EAAM/0B,QACJ+0B,EAAM/0B,QAAUmX,MAAM5U,OAAO,GAAIwyB,EAAM/0B,QAAS6kC,EAAe7kC,SADhD+0B,EAAM/0B,QAAU6kC,EAAe7kC,QAErDT,EAAQw1B,MAAM/0B,QAAU+0B,EAAM/0B,SAEhC,4DAA8D3E,MAAM,KAAK2C,SAAQ,SAAU2hC,GACzF,GAAIiF,EAAcjF,GAAgB,CAChCmF,GAAkB,EAClB,IAAIC,EAAa5tB,MAAM5U,OAAO,GAAIwyB,EAAO,CAAEA,MAAO6P,IAClDzc,EAAOqO,iBAAkB,EACzBrO,EAAO6c,UAAUrF,EAAeoF,EAAY5tB,MAAM5U,OAAOhD,EAASslC,QAGlEC,GACJ3c,EAAO4a,KAAK6B,EAAeztB,MAAM5U,OAAOhD,EAASslC,IAAiB,GAEpE,SAASI,IACP9c,EAAOqO,iBAAkB,EAxC3B,4DAA8Dn7B,MAAM,KAAK2C,SAAQ,SAAU2hC,GACrF5K,EAAMA,MAAM4K,KAAmB+E,IACjCA,GAAe,EACfvc,EAAO6c,UAAUrF,EAAe5K,EAAOx1B,OAGvCw1B,EAAMA,MAAM0L,WAAa1L,EAAMA,MAAM2L,gBACvCvY,EAAO4a,KAAK,CAAE55B,GAAI4rB,EAAMA,MAAM2L,cAAcC,QAAUphC,GAAS,GAC/DmlC,GAAe,GAEjB,sEAAwErpC,MAAM,KAAK2C,SAAQ,SAAUknC,GACnG,IAAI5iC,EAEAyyB,EAAMA,MAAMmQ,KAAkBR,IAChCA,GAAe,EACfvc,EAAO4a,OAAOzgC,EAAM,IAAQ4iC,GAAgBnQ,EAAMA,MAAMmQ,GAAe5iC,GAAO/C,GAAS,OAGvFmlC,IAwBA3P,EAAMA,MAAM7L,QACdf,EAAOqO,iBAAkB,EACzBzB,EAAMA,MAAM7L,MAAM/oB,KAAKgoB,EAAQ5oB,EAAQw1B,MAAO5M,EAAOqU,aAAcmI,EAAcM,IAE/ElQ,EAAMA,MAAMoJ,gBACdA,eAAehW,EAAQ4M,EAAMA,MAAMoJ,eAAgBwG,EAAcM,IAGrE,SAASzgB,IACP2D,EAAOqO,iBAAkB,EAG3B,GApEIzB,EAAMA,MAAMx1B,QACd4X,MAAM5U,OAAOhD,EAASw1B,EAAMA,MAAMx1B,QAAS2kC,GAE3C/sB,MAAM5U,OAAOhD,EAAS2kC,GAExB3kC,EAAQw1B,MAAQA,EAEZx1B,GAAWA,EAAQS,UACrB+0B,EAAM/0B,QAAUT,EAAQS,QACxBT,EAAQw1B,MAAM/0B,QAAUT,EAAQS,SA2D9BmoB,EAAOzU,OAAOolB,uBAAyB,GAAK/D,EAAMA,MAAMoQ,YAAa,CAEvE,IAAIC,GAAgB,EAChBC,GAAe,EAqBnB,GApBIld,EAAOqU,cAAgBrU,EAAOqU,aAAazH,SAE3C5M,EAAOqU,aAAazH,MAAMyK,QAExBrX,EAAOqU,aAAazH,QAAUA,EAAMA,MAAMoQ,aACvChd,EAAOqU,aAAazH,MAAMlC,OAASkC,EAAMA,MAAMoQ,YAAYtS,OAGhEuS,GAAgB,IAGhBjd,EAAOqU,aAAazH,MAAMoQ,aACtBhd,EAAOqU,aAAazH,MAAMoQ,cAAgBpQ,EAAMA,MAAMoQ,aACrDhd,EAAOqU,aAAazH,MAAMoQ,YAAYtS,OAASkC,EAAMA,MAAMoQ,YAAYtS,OAG5EuS,GAAgB,EAChBC,GAAe,IAGfD,GAAkBC,GAAgBnB,EAAgB/E,UAqBpD,OApBAhX,EAAO4N,SAAS,CAAElD,KAAMkC,EAAMA,MAAMoQ,YAAYtS,KAAMnf,OAAQqhB,EAAMrhB,QAAU,IAAM,CAClFL,SAAS,EACT8rB,UAAW+E,EAAgB/E,UAC3BR,cAAeuF,EAAgBvF,cAC/BO,eAAgBgF,EAAgBhF,eAChCr5B,WAAYq+B,EAAgB3G,QAC5B53B,SAAUu+B,EAAgB3G,QAC1BtxB,KAAM,CACJq5B,YAAa,WACXnd,EAAO4N,SAASkO,EAAgB9sB,MAAM5U,OAAO,GAAI2hC,EAAiB,CAChE7wB,SAAS,EACT8rB,WAAW,EACXR,eAAe,EACfO,gBAAgB,EAChBv5B,SAAUu+B,EAAgB3G,QAC1B13B,WAAYq+B,EAAgB3G,eAK7BpV,EA4BX,OAxBAyV,kBAAkBz9B,KAChBgoB,EACA4M,EACA5M,EAAOqU,cACP,WACMzH,EAAMA,MAAMpT,QACdwB,EACGsF,YAAY1rB,MAAMC,QAAQ+3B,EAAMA,MAAMpT,SAAWoT,EAAMA,MAAMpT,QAAU,CAACoT,EAAMA,MAAMpT,UACpFoE,MAAK,WACJxB,OAEDyB,OAAM,WACLxB,OAGJD,OAGJ,WACEC,OAKG2D,EAGT,SAASqa,QAAQ+C,EAAUtC,QACJ,IAAhBA,IAAyBA,EAAc,IAE5C,IAUIzG,EACAU,EAXA/U,EAASluB,KACTsF,EAAU4X,MAAM5U,OAAO,CACzB8Q,QAAS8U,EAAOzU,OAAOL,QACvBxN,WAAW,EACXF,SAAS,EACT6/B,aAAc,KACdpI,SAAS,EACT7yB,GAAI,IACH04B,GAIC1jC,EAAQw1B,QAELx1B,EAAQ69B,SAAW79B,EAAQw1B,QAAU5M,EAAOqU,eAC/CU,EAAgB/U,EAAO+U,cACvB/U,EAAOqU,aAAej9B,EAAQw1B,OAE5Bx1B,EAAQ69B,SACVZ,EAAej9B,EAAQw1B,MACvBmI,EAAgB/U,EAAOqU,eAEvBA,EAAerU,EAAOqU,aACjBU,IAAiBA,EAAgB/U,EAAO+U,gBAI3C/U,EAAOzU,OAAO7N,WAAatG,EAAQsG,YAActG,EAAQ2/B,gBAC3D7J,QAAQv6B,QACNqtB,EAAOmO,KAAK1uB,GACZ,CACEyQ,IAAK9Y,EAAQw1B,MAAM1c,MAEpB8P,EAAOzU,OAAOquB,eAAiB,IAAM5Z,EAAOzU,OAAOsuB,mBAAqBziC,EAAQw1B,MAAM1c,KAKvF9Y,EAAQoG,UACVwiB,EAAOxiB,QAAQ4M,KAAKC,IAAI2V,EAAOxiB,QAAQpK,OAAS,EAAG,IAAMgE,EAAQw1B,MAAM1c,IACvE8P,EAAO0U,gBAKX,IACI4I,EADAC,EAAgBh/B,EAAEnH,EAAQimC,cAAgBrd,EAAOyT,eAGnD6J,EADEC,EAAcnqC,QAAUmqC,EAAcx0B,KAAM,IAAOq0B,EAAW,IAAIhqC,OAC5DmqC,EAAcx0B,KAAM,IAAOq0B,EAAW,IAAIj2B,GAAG,GAC5C6Y,EAAOmO,KAAK3vB,SACZwhB,EAAOmO,KAAa,SAAI,KAAQiP,EAAW,GAE5C,IAAOA,EAAW,GAE5B,IA+HII,EA/HAC,EAAgBzd,EAAOhF,IAAIof,IAAI9zB,KAAK,CACtCg3B,MAAOA,EACPpyB,QAAS9T,EAAQ8T,QACjBkyB,SAAUhmC,EAAQw1B,QAGhB8Q,EAAYD,EAAcC,UAC1BC,EAAYF,EAAcE,UAC1BC,EAAWH,EAAcG,SACzBC,EAAgBJ,EAAcI,cAElC,GAAIH,GAAaA,EAAUvnC,QAAQ,SAAS/C,OAAS,GAAKgE,EAAQw1B,MAAO,CACvE,IAAIkR,EAAoBJ,EAAUvnC,QAAQ,SAAS,GAAGm+B,OAClDwJ,GAAqB1mC,EAAQw1B,QAC/BkR,EAAkBlR,MAAQx1B,EAAQw1B,OAgCtC,GAAI8Q,EAAU,GAAGK,kBACf,OAAKJ,GAAcA,EAAUvqC,QACzBwqC,EACFC,GAAc,WACZ7d,EAAOvH,KAAK,eAAgBuH,EAAOqU,aAAcrU,EAAO+U,cAAe/U,MAGzEA,EAAOvH,KAAK,eAAgBuH,EAAOqU,aAAcrU,EAAO+U,cAAe/U,GAElEA,GARuCA,EAYhD,SAASge,EAAQC,EAAeC,GAE9B,IAAIhuB,EAAM+tB,EAAc/tB,IACpB9b,EAAU6pC,EAAc7pC,QACxB4M,EAAKi9B,EAAcj9B,GACnBxJ,EAAWymC,EAAczmC,SACzByjC,EAAcgD,EAAchD,YAC5Bxc,EAAYwf,EAAcxf,UAC1BC,EAAeuf,EAAcvf,aAEjC,SAAStC,EAAQ+hB,GACfne,EAAOqO,iBAAkB,EACpB8P,IACoB,iBAAdA,EACTT,EAAU/+B,KAAKw/B,IAEfT,EAAU/+B,KAAK,IACXw/B,EAAUhe,YACZge,EAAUhe,YAAY4Z,QAAO,SAAUC,GACrC0D,EAAUr2B,OAAO2yB,MAGnB0D,EAAUr2B,OAAO82B,IAGrBT,EAAU,GAAGK,mBAAoB,EAjErC,SAAqBI,GAEnBne,EAAOoY,oBAAoBsF,GAE3B,IAAIU,EAAiBV,EACI,iBAAdS,IAA0BC,EAAiB7/B,EAAE4/B,IAExDC,EAAej6B,QAAQ,uBAAwBi5B,GAC/Cpd,EAAOvH,KAAK,qBAAsBilB,EAAU,GAAIN,GAE5CO,GAAaA,EAAUvqC,SACrBwqC,EACFC,GAAc,WACZ7d,EAAOvH,KAAK,eAAgBuH,EAAOqU,aAAcrU,EAAO+U,cAAe/U,GACnEA,EAAOzU,OAAO8yB,kBAChBre,EAAOse,UAAUX,EAAWD,EAAWN,OAI3Cpd,EAAOvH,KAAK,eAAgBuH,EAAOqU,aAAcrU,EAAO+U,cAAe/U,GACnEA,EAAOzU,OAAO8yB,kBAChBre,EAAOse,UAAUX,EAAWD,EAAWN,KA6C3CmB,CAAYJ,IAEd,SAAS9hB,IAEP,OADA2D,EAAOqO,iBAAkB,EAClBrO,EAGT,GAAI5rB,EACFgoB,EAAQhoB,QACH,GAAIoD,GAAYyjC,EACrB,IACEjb,EAAOwe,kBAAkBhnC,EAAUyjC,EAAaiD,EAAgB9hB,EAASC,GACzE,MAAOyB,GAEP,MADAkC,EAAOqO,iBAAkB,EACnBvQ,OAEH,GAAI9c,EACTob,EAAQpb,QACH,GAAIyd,GAAaC,EAEtB,IACEsB,EAAOye,mBAAmBf,EAAU,GAAIjf,EAAWC,EAAcwf,EAAgB9hB,EAASC,GAC1F,MAAOyB,GAEP,MADAkC,EAAOqO,iBAAkB,EACnBvQ,OAEC5N,IAEL8P,EAAO5C,MACT4C,EAAO5C,IAAIue,QACX3b,EAAO5C,KAAM,GAEf4C,EAAO4b,WAAW1rB,EAAKguB,GACpBtgB,MAAK,SAAU8gB,GACdtiB,EAAQsiB,MAET7gB,OAAM,WACLmC,EAAOqO,iBAAkB,MAgBjC,SAASmO,EAAaC,EAAeC,GACnCsB,EAAQvB,EAAeztB,MAAM5U,OAAOhD,EAASslC,IAE/C,SAASI,IACP9c,EAAOqO,iBAAkB,EAU3B,MAxBA,6DAA+Dn7B,MAAM,KAAK2C,SAAQ,SAAU8oC,GAC1F,IAAIxkC,EAEAijC,EAASuB,KACXnB,GAAqB,EACrBQ,IAAU7jC,EAAM,IAAQwkC,GAAevB,EAASuB,GAAcxkC,GAAO/C,OAWrEgmC,EAASrc,MACXqc,EAASrc,MAAM/oB,KAAKgoB,EAAQqU,EAAcU,EAAeyH,EAAcM,GAC9DM,EAASpH,eAClBA,eAAehW,EAAQod,EAASpH,eAAgBwG,EAAcM,GACpDU,IACVxd,EAAOqO,iBAAkB,GAGpBrO,EAET,SAASse,UAAUX,EAAWD,EAAWN,GACvC,IAEIwB,EACAjB,EAAU,KACZA,EAAU,GAAGI,mBAAoB,SAC1BJ,EAAU,GAAGI,mBAEtBJ,EAAUthC,WAAWjE,MAAK,SAAUK,EAAOomC,GACrCA,EAAS1e,cACXye,GAAuB,EACvBrgC,EAAEsgC,GAAU16B,QAAQ,mBAAoBi5B,GACxCyB,EAAS1e,YAAY2e,eAGpBF,GACHjB,EAAUx5B,QAAQ,mBAAoBi5B,GAf3BtrC,KAiBN2mB,KAAK,kBAAmBklB,EAAU,GAAID,EAAU,GAAIN,GAjB9CtrC,KAkBNitC,iBAAiBpB,EAAU,GAAIP,GAGxC,SAASP,UAAUhG,EAAWjK,EAAOkO,QACd,IAAhBA,IAAyBA,EAAc,IAE5C,IAsKIkE,EAtKAhf,EAASluB,KACTkpB,EAAMgF,EAAOhF,IACbikB,EAAwB,UAAdpI,EACVqI,EAAeD,EAAU,QAAU,QAEnC7nC,EAAU4X,MAAM5U,OAAO,CACzB8Q,QAAS8U,EAAOzU,OAAOL,QACvBxN,WAAW,EACXF,SAAS,EACT4E,GAAI,IACH04B,GAECqE,EAAcnwB,MAAM5U,OAAO,GAAIwyB,EAAMA,MAAMiK,IAC3C+F,EAAahQ,EAAMA,MAEvB,SAASwS,IAEP,IAAI7H,EAAQvc,EAAI6b,GAAW5d,OAAOkmB,GAClCvC,EAAWlF,cAAgBH,EAE3B,IAAI8H,EAAQ9H,EAAMv2B,GAElB,SAASs+B,IACP/H,EAAM1b,QAER0b,EAAMn1B,GAAI88B,EAAe,QAAS,WAC3BG,IAEHrf,EAAOoY,oBAAoBb,EAAMv2B,IAGjCu2B,EAAMnc,IAAIjX,QAAU0yB,EAAU33B,cAAiB,SAAY23B,EAAU33B,cAAiB,WAAa0tB,EAAO2K,GAC1GvX,EAAOvH,MAAQwmB,EAAwB,GAAd,aAAoB,IAAMpI,EAAY,QAAUA,EAAY,UAAYU,EAAMv2B,GAAI4rB,EAAO2K,IAEpHvX,EAAOlc,KAAK,gBAAiBw7B,MAE/B/H,EAAMn1B,GAAI88B,EAAe,SAAU,WACjClf,EAAOvc,IAAI,gBAAiB67B,GACvB/H,EAAMgI,eACTvf,EAAOpiB,UAIX25B,EAAMn1B,GAAI88B,EAAe,UAAW,WAClC3H,EAAMnc,IAAIjX,QAAU0yB,EAAU33B,cAAiB,gBAAkB0tB,EAAO2K,GACxEA,EAAM9e,MAAawmB,EAAiC,GAAvB,sBAA6BpI,EAAY,eAAiBU,EAAMv2B,GAAI4rB,EAAO2K,GACxG,IAAIiI,EAAiBjI,EAAMv2B,GAAGmf,YAC1Bqf,GACFA,EAAeV,WAEjB9vB,MAAMW,UAAS,YACT6vB,GAAkBL,EAAY1gB,YAChCuB,EAAOyf,YAAYlI,EAAMv2B,IAE3Bu2B,EAAMlc,iBACCkc,EAAM3K,aACNgQ,EAAWlF,oBAIlBtgC,EAAQw1B,QAEN5M,EAAOzU,OAAO7N,WAAatG,EAAQsG,WACrCwvB,QAAQ15B,KACNwsB,EAAOmO,KAAK1uB,GACZ,CACEyQ,IAAK9Y,EAAQw1B,MAAM1c,IACnBqnB,MAAOV,IAER7W,EAAOzU,OAAOquB,eAAiB,IAAM5Z,EAAOzU,OAAOsuB,mBAAqBziC,EAAQw1B,MAAM1c,KAKvF9Y,EAAQw1B,QAAU5M,EAAOqU,eAC3BkD,EAAM3K,MAAQ5d,MAAM5U,OAAOhD,EAAQw1B,MAAO,CAAE2K,MAAOA,IACnDvX,EAAOqU,aAAekD,EAAM3K,OAI1Bx1B,EAAQoG,UACVwiB,EAAOxiB,QAAQhK,KAAK4D,EAAQw1B,MAAM1c,KAClC8P,EAAO0U,gBAIP2K,IAEFrf,EAAOoY,oBAAoBb,EAAMv2B,IAGjCu2B,EAAMnc,IAAIjX,QAAU0yB,EAAU33B,cAAiB,SAAY23B,EAAU33B,cAAiB,WAAa0tB,EAAO2K,GAC1GvX,EAAOvH,KAAMymB,EAAe,QAAUrI,EAAY,QAAUA,EAAY,UAAYU,EAAMv2B,GAAI4rB,EAAO2K,IAIvGA,EAAMhc,OAIR,SAASmkB,EAAUC,EAAiBC,GAElC,IAAI1vB,EAAMyvB,EAAgBzvB,IACtB9b,EAAUurC,EAAgBvrC,QAC1BoD,EAAWmoC,EAAgBnoC,SAC3ByjC,EAAc0E,EAAgB1E,YAC9Bxc,EAAYkhB,EAAgBlhB,UAC5BC,EAAeihB,EAAgBjhB,aAGnC,SAAStC,EAAQ+hB,GACXA,IACuB,iBAAdA,EACTgB,EAAY/qC,QAAU+pC,EACbA,EAAUhe,YACnBge,EAAUhe,YAAY4Z,QAAO,SAAUC,GACrCmF,EAAYn+B,GAAKg5B,EACjBhf,EAAIpjB,KAAKyP,OAAO2yB,MAGlBmF,EAAYn+B,GAAKm9B,EAEnBiB,KAGJ,SAAS/iB,IAEP,OADA2D,EAAOqO,iBAAkB,EAClBrO,EAGT,GAAI5rB,EACFgoB,EAAQhoB,QACH,GAAIoD,GAAYyjC,EACrB,IACEjb,EAAO6f,oBAAoBroC,EAAUyjC,EAAa2E,EAAkBxjB,EAASC,GAC7E,MAAOyB,GAEP,MADAkC,EAAOqO,iBAAkB,EACnBvQ,OAEH,GAAIW,GAAaC,EAEtB,IACEsB,EAAO8f,qBAAqB9kB,EAAIpjB,KAAK,GAAI6mB,EAAWC,EAAckhB,EAAkBxjB,EAASC,GAC7F,MAAOyB,GAEP,MADAkC,EAAOqO,iBAAkB,EACnBvQ,OAEC5N,GAEL8P,EAAO5C,MACT4C,EAAO5C,IAAIue,QACX3b,EAAO5C,KAAM,GAEf4C,EAAO4b,WAAW1rB,EAAK0vB,GACpBhiB,MAAK,SAAUmiB,GACdZ,EAAY/qC,QAAU2rC,EACtBX,OAEDvhB,OAAM,WACLmC,EAAOqO,iBAAkB,MAG7B+Q,IAkBJ,SAAS5C,EAAaC,EAAeC,GACnCgD,EAAUjD,EAAeztB,MAAM5U,OAAOhD,EAASslC,IAEjD,SAASI,IACP9c,EAAOqO,iBAAkB,EAQ3B,MAzBA,6DAA+Dn7B,MAAM,KAAK2C,SAAQ,SAAU2hC,GAC1F,IAAIr9B,EAEAglC,EAAY3H,KAAmBwH,IACjCA,GAAgB,EAChBU,IAAYvlC,EAAM,IAAQq9B,GAAiB2H,EAAY3H,GAAgBr9B,GAAO/C,OAG7E4nC,GAA+B,YAAdnI,GACpBuI,IAUED,EAAYpe,OACdoe,EAAYpe,MAAM/oB,KAAKgoB,EAAQ5oB,EAAQw1B,MAAO5M,EAAOqU,aAAcmI,EAAcM,GAE/EqC,EAAYnJ,gBACdA,eAAehW,EAAQmf,EAAYnJ,eAAgBwG,EAAcM,GAE5D9c,EAET,SAAS6X,YAAYN,GACnBvoB,MAAM5U,OAAOm9B,EAAO,CAAEgI,eAAe,IACrChI,EAAM1b,QAGR,SAASmkB,SAASh/B,EAAIi/B,GACpB,IAaItJ,EACAuJ,EAaA/Q,EACA4I,EACAC,EA6BAU,EACAC,EAuDAwH,EAlHAngB,EAASluB,KACTspB,EAAM7c,EAAEyC,GACRga,EAAMgF,EAAOhF,IACbmT,EAAOnO,EAAOmO,KAEd/2B,EAAU4X,MAAM5U,OAAO,CACzB8Q,QAAS8U,EAAOzU,OAAOL,QACvBxN,WAAW,EACXD,cAAc,GACbwiC,GAEC9I,EAAsBnX,EAAOzU,OAAOolB,uBAAyB,EAC7DyG,EAAWD,GAAuB//B,EAAQw1B,OAASx1B,EAAQw1B,MAAMA,QAAwC,IAA/Bx1B,EAAQw1B,MAAMA,MAAMyK,OAI9FtI,EAAgB/O,EAAO+O,cAEvBmJ,EAAW9c,EACX0c,EAAW9X,EAAO5E,IAAI/e,SAAS,iBAC/B+jC,EAAkBjJ,GAAuBW,EAAS53B,SAAS,eAsB/D,GApBIg4B,EAAS9kC,QAEX4sB,EAAOoY,oBAAoBF,GAOzBnJ,IACFgJ,EAAeG,EAAS77B,SAAS,WACjC8yB,EAAanP,EAAOmP,WACQ,IAAxB4I,EAAa3kC,QAAgB8kC,EAAS,IAAMA,EAAS,GAAG5D,SAE1DyD,EAAeG,EAAS,GAAG5D,OAAO+D,WAEpCL,EAAe7I,EAAWpmB,KAAK,oBAGjCiX,EAAOqO,iBAAkB,EACD,IAApB6J,EAAS9kC,QAAoC,IAApB0kC,EAAS1kC,OAEpC,OADA4sB,EAAOqO,iBAAkB,EAClBrO,EAgBT,GAZAA,EAAOoY,oBAAoBF,GAGvB9gC,EAAQw1B,OAASx1B,EAAQw1B,MAAMA,OAASx1B,EAAQw1B,MAAMA,MAAM0L,YAAclhC,EAAQw1B,MAAMA,MAAM2L,gBAChGnhC,EAAQw1B,MAAMA,MAAM2L,cAAgB,CAClCC,OAAQpd,EAAI,KAOZ+b,EAAqB,CAMvB,IALA,IAAIyB,EAAe5Y,EAAO5E,IACvB/e,SAAS,uBACTmI,QAAO,SAAU/L,EAAOogC,GAAc,OAAOA,IAAeX,EAAS,MAG/DplC,EAAI,EAAGA,EAAI8lC,EAAaxlC,OAAQN,GAAK,EACvC6jC,IACAiC,EAAa9lC,GAAGgN,UAAUK,SAAS,iBAEtCw2B,EAAeiC,EAAa9lC,MAKhC4lC,GAAYtB,GACPT,GACC3W,EAAOxiB,QAAQ/J,QAAQ2D,EAAQw1B,MAAM1c,KAAO8P,EAAOxiB,QAAQ/J,QAAQkjC,EAAarC,OAAO1H,MAAM1c,QAEjFknB,GAAYT,GAAgBA,EAAarC,QAAUl9B,EAAQw1B,MAAMA,MAAMoQ,cACvFtE,EAAWthC,EAAQw1B,MAAMA,MAAMoQ,YAAYtS,OAASiM,EAAarC,OAAO1H,MAAMA,MAAMlC,MAmCxF,GAhCIgO,GAAY/B,GAAgBA,EAAarC,SAC3CqE,EAAe3Y,EAAOxiB,QAAQ/J,QAAQ2D,EAAQw1B,MAAM1c,KAAO8P,EAAOxiB,QAAQ/J,QAAQkjC,EAAarC,OAAO1H,MAAM1c,MAAS,GAIvHgoB,EACGv4B,SAAU,iBAAmBy3B,EAAW,eAAiB,KAAOsB,EAAW,sBAAwB,KAAOC,EAAe,2BAA6B,KACtJ34B,YAAY,WACZY,WAAW,eACXuD,QAAQ,gBACRA,QAAQ,gBAAiB,CAAE60B,SAAU,aACxChZ,EAAOvH,KAAK,cAAeyf,EAAS,IACpClY,EAAOvH,KAAK,eAAgByf,EAAS,GAAI,aACrCd,GAAYsB,KACdR,EAAS/zB,QAAQ,YAAa,CAAE80B,KAAM7B,EAAW,SAAW,SAAUx/B,OAAQ+gC,IAC9E3Y,EAAOvH,KAAK,WAAYyf,EAAS,GAAI,CAAEe,KAAM7B,EAAW,SAAW,SAAU8B,aAAcP,KAGzF5J,GAAiBgJ,EAAa3kC,OAAS,IACzC2kC,EACGp4B,SAAU,mBAAqBy3B,EAAW,iBAAmB,KAAOsB,EAAW,wBAA0B,KAAOC,EAAe,6BAA+B,KAC9J34B,YAAY,WACZY,WAAW,eACdm3B,EAAa5zB,QAAQ,kBAAmB,CAAE60B,SAAU,aACpDhZ,EAAOvH,KAAK,iBAAkBsf,EAAa,GAAI,aAC3CX,GAAYuB,IACd3Y,EAAOvH,KAAK,aAAcsf,EAAa,GAAI,CAAEkB,KAAM7B,EAAW,SAAW,SAAU8B,aAAcP,KAMjGvhC,EAAQipC,QACNvI,EAASrvB,KAAK,gCAAgCrV,OAAS,GAAgD,IAA3C0kC,EAASrvB,KAAK,kBAAkBrV,QAW9F,GAVI4sB,EAAOxiB,QAAQ/J,QAAQ2D,EAAQw1B,MAAM1c,MAAQ,GAC/CiwB,EAAYngB,EAAOxiB,QAAQpK,OAAS4sB,EAAOxiB,QAAQ/J,QAAQ2D,EAAQw1B,MAAM1c,KAAO,EAChF8P,EAAOxiB,QAAUwiB,EAAOxiB,QAAQ7I,MAAM,EAAGqrB,EAAOxiB,QAAQ/J,QAAQ2D,EAAQw1B,MAAM1c,KAAO,GACrFie,EAAK3wB,QAAUwiB,EAAOxiB,SACbwiB,EAAOxiB,QAAQ,CAACwiB,EAAOxiB,QAAQpK,OAAS,IACjD4sB,EAAOxiB,QAAQwiB,EAAOxiB,QAAQpK,OAAS,GAAKgE,EAAQw1B,MAAM1c,IAE1D8P,EAAOxiB,QAAQsF,QAAQkd,EAAO9P,KAG5BiwB,GAAangB,EAAOzU,OAAOopB,WAC7BmD,EAASnvB,QAAQ,kBAAkBvQ,MAAK,SAAUK,EAAO6nC,GACvD,IACIC,EADAC,EAAgBjiC,EAAE+hC,GAElBvR,IAEFwR,EAAkBhiC,EAAEyc,EAAIme,OAAOC,YAAYoH,KAEzCA,EAAc,KAAOtI,EAAS,IAAMsI,EAAc/nC,QAAUy/B,EAASz/B,UACnEunB,EAAO4U,aAAanhC,QAAQ+sC,EAAc,KAAO,GACnDA,EAAc7gC,SAAS,WACvB6gC,EAAcr8B,QAAQ,cACtB6b,EAAOvH,KAAK,YAAa+nB,EAAc,IACnCzR,GACFwR,EAAgB5gC,SAAS,aAG3BqgB,EAAOwU,aAAa,eAAgBgM,EAAeD,EAAiB,gBAAYtuC,EAAWmF,GACvFopC,EAAc,KAAO7J,IACvBuJ,GAAoB,GAEtBlgB,EAAO6U,WAAW2L,GACdzR,GAAiBwR,EAAgBntC,OAAS,GAC5C4sB,EAAO8U,aAAayL,YAKvB,CACL,IACIA,EADAC,EAAgB1I,EAASrvB,KAAK,gCAE9BsmB,IAEFwR,EAAkBhiC,EAAEyc,EAAIme,OAAOC,YAAYoH,KAEzCxgB,EAAOzU,OAAOopB,YAAc3U,EAAO4U,aAAanhC,QAAQ+sC,EAAc,KAAO,GAC/EA,EAAc7gC,SAAS,WACvB6gC,EAAcr8B,QAAQ,cACtB6b,EAAOvH,KAAK,YAAa+nB,EAAc,IACvCD,EAAgB5gC,SAAS,YAChB6gC,EAAcptC,OAAS,IAChC4sB,EAAOwU,aAAa,eAAgBgM,EAAeD,EAAiB,gBAAYtuC,EAAWmF,GACvFopC,EAAc,KAAO7J,IACvBuJ,GAAoB,GAEtBlgB,EAAO6U,WAAW2L,GACdzR,GAAiBwR,EAAgBntC,QACnC4sB,EAAO8U,aAAayL,IAQ9B,IAAIzG,EAAe5B,EAAS/hC,QAAQmF,KAAKlI,OAAS,EAC9C+sB,EAAc+X,EAAS,GAAG/X,YAE9B,SAASsgB,IACgC,IAAnCvI,EAAS7vB,KAAKyvB,GAAU1kC,UACrB0mC,GAAgB3Z,EACnBA,EAAY4Z,QAAO,SAAUC,GAC3Bz7B,EAAEy7B,GAAanyB,aAAaiwB,MAG9BI,EAASrwB,aAAaiwB,IAGtB/I,GAAiBgJ,EAAa3kC,SAC5B2kC,EAAahvB,KAAK,gBAAgB3V,QACpC2kC,EAAap4B,SAAS,gBAExBo4B,EAAalwB,aAAamwB,GACtBA,EAAa5kC,OAAS,EACxB2kC,EAAalwB,aAAamwB,IAErBhY,EAAOmP,WAAWh5B,QAAQmF,KAAKlI,QAClC4sB,EAAO5E,IAAIxT,QAAQoY,EAAOmP,YAE5BA,EAAW9nB,OAAO0wB,KAGjB+B,EAEM1iC,EAAQw1B,OAASx1B,EAAQw1B,MAAMA,OAASx1B,EAAQw1B,MAAMA,MAAM0L,YAAcJ,EAAS,GAAG+B,gBAC/F/B,EAAS,GAAG+B,eAAgB,EAC5Bja,EAAOwU,aAAa,UAAW0D,EAAUH,EAAc,WAAY,UAAW3gC,EAAS0gC,IAHvF9X,EAAOwU,aAAa,UAAW0D,EAAUH,EAAc,WAAY,UAAW3gC,EAAS0gC,GAO3F,GAAI1gC,EAAQ69B,QAAS,CAEnBwL,IAEIrpC,EAAQw1B,MAAMA,MAAMwN,KACtBpa,EAAOqa,QAAQjjC,EAAQw1B,MAAMA,MAAMwN,IAAKprB,MAAM5U,OAAO,GAAIhD,EAAS,CAChEoG,SAAS,EACTE,WAAW,EACXu3B,SAAS,KAGTmC,IACFc,EACGl4B,YAAY,uBACZmE,QAAQ,sBACX6b,EAAOvH,KAAK,oBAAqByf,EAAS,IACtCnJ,IACFxwB,EAAEyc,EAAIme,OAAOC,YAAYlB,IAAWl4B,YAAY,yBAChDggB,EAAOvH,KAAK,sBAAuBuC,EAAIme,OAAOC,YAAYlB,MAI9DlY,EAAOwU,aAAa,OAAQ0D,EAAUH,EAAc,WAAY,UAAW3gC,EAAS0gC,GACpF,IAAI4I,EAAiBxI,EAASvvB,QAAQ,kDA0BtC,OAzBI+3B,EAAettC,OAAS,GAC1BstC,EAAetoC,MAAK,SAAUK,EAAO6nC,GACnC,IACIC,EADAC,EAAgBjiC,EAAE+hC,GAElBvR,IAEFwR,EAAkBhiC,EAAEyc,EAAIme,OAAOC,YAAYoH,KAEzCxgB,EAAOzU,OAAOopB,YAAc3U,EAAO4U,aAAanhC,QAAQ6sC,IAAiB,GAC3EE,EAAc7gC,SAAS,WACvB6gC,EAAcr8B,QAAQ,cACtB6b,EAAOvH,KAAK,YAAa+nB,EAAc,IACnCzR,GACFwR,EAAgB5gC,SAAS,aAG3BqgB,EAAOwU,aAAa,eAAgBgM,EAAeD,EAAiB,gBAAYtuC,GAChF+tB,EAAO6U,WAAW2L,GACdzR,GAAiBwR,EAAgBntC,QACnC4sB,EAAO8U,aAAayL,OAK5BvgB,EAAOqO,iBAAkB,EAClBrO,EAIT,KAAMhK,OAAOY,IAAMZ,OAAOW,MAASX,OAAOa,UAAYb,OAAOI,MACvD4J,EAAOzU,OAAO7N,WAAatG,EAAQsG,UACrC,GAAItG,EAAQqG,aAAc,CACxB,IAAIm8B,EAAgB5Z,EAAOzU,OAAOquB,eAAiB,GACnD1M,QAAQv6B,QACNw7B,EAAK1uB,GACL,CACEyQ,IAAK9Y,EAAQw1B,MAAM1c,KAErB0pB,EAAgB5Z,EAAOzU,OAAOsuB,mBAAqBziC,EAAQw1B,MAAM1c,UAE1DiwB,EACTjT,QAAQvvB,IAAIwiC,GAEZjT,QAAQtvB,OA4Bd,GAtBIxG,EAAQqG,aACVuiB,EAAOxiB,QAAQwiB,EAAOxiB,QAAQpK,OAAS,GAAKgE,EAAQw1B,MAAM1c,KAE5B,IAA1B8P,EAAOxiB,QAAQpK,QACjB4sB,EAAOxiB,QAAQsF,QAAQkd,EAAO9P,KAEhC8P,EAAOxiB,QAAQgwB,OAEjBxN,EAAO0U,cAGP1U,EAAOyT,cAAgByE,EAAS,GAC5BnJ,GAAiBgJ,EAAa3kC,OAChC4sB,EAAO2T,gBAAkBoE,EAAa,UAE/B/X,EAAO2T,gBAIhB3T,EAAOqU,aAAej9B,EAAQw1B,OAG1B5W,OAAOY,IAAMZ,OAAOW,MAASX,OAAOa,UAAYb,OAAOI,MACrD4J,EAAOzU,OAAO7N,WAAatG,EAAQsG,UACrC,GAAItG,EAAQqG,aAAc,CACxB,IAAIkjC,EAAkB3gB,EAAOzU,OAAOquB,eAAiB,GACrD1M,QAAQv6B,QACNw7B,EAAK1uB,GACL,CACEyQ,IAAK9Y,EAAQw1B,MAAM1c,KAErBywB,EAAkB3gB,EAAOzU,OAAOsuB,mBAAqBziC,EAAQw1B,MAAM1c,UAE5DiwB,EACTjT,QAAQvvB,IAAIwiC,GAEZjT,QAAQtvB,OA8Bd,SAAS48B,IAEPxa,EAAOua,gBAAgBrC,EAAU,WAAW,GAC5ClY,EAAOua,gBAAgBzC,EAAU,QAAQ,GACrC/I,IACF/O,EAAOoU,kBAAkB2D,EAAc,WAAW,GAClD/X,EAAOoU,kBAAkB4D,EAAc,QAAQ,IAIjDhY,EAAOwU,aAAa,WAAYsD,EAAUE,EAAc,UAAW,OAAQ5gC,GAC3E4oB,EAAOwU,aAAa,UAAW0D,EAAUH,EAAc,WAAY,UAAW3gC,GAG1E4oB,EAAOzU,OAAOopB,YAAc3U,EAAO4U,aAAanhC,QAAQqkC,EAAS,KAAO,GAC1EA,EAASn4B,SAAS,WAClBm4B,EAAS3zB,QAAQ,cACjB6b,EAAOvH,KAAK,YAAaqf,EAAS,IAC9B/I,GACFiJ,EAAar4B,SAAS,aAGxBqgB,EAAOwU,aAAa,eAAgBsD,EAAUE,EAAc,YAAQ/lC,EAAWmF,GAC/E4oB,EAAO6U,WAAWiD,GACd/I,GAAiBiJ,EAAa5kC,QAChC4sB,EAAO8U,aAAakD,IAIxBhY,EAAOqO,iBAAkB,EACzBrO,EAAOvH,KAAK,eAAgBuH,EAAOqU,aAAcrU,EAAO+U,cAAe/U,IAG7CA,EAAOzU,OAAOypB,qBAAuBhV,EAAOzU,OAASyP,EAAS,MAAI,eACjEgF,EAAOxiB,QAAQwiB,EAAOxiB,QAAQpK,OAAS,KAAOgkC,GACvEpX,EAAOpiB,KAAKoiB,EAAOxiB,QAAQwiB,EAAOxiB,QAAQpK,OAAS,GAAI,CAAE6hC,SAAS,IAEhEjV,EAAOzU,OAAO7N,WAChBwvB,QAAQK,mBAaZ,GA3EAkT,IAGIrpC,EAAQw1B,MAAMA,MAAMwN,KACtBpa,EAAOqa,QAAQjjC,EAAQw1B,MAAMA,MAAMwN,IAAKprB,MAAM5U,OAAO,GAAIhD,EAAS,CAChEoG,SAAS,EACTE,WAAW,KAMXy5B,IAAwBiJ,GAAmBF,IAC7C/R,EAAKmM,6BAA4B,GAInCta,EAAOwU,aAAa,OAAQ0D,EAAUH,EAAc,WAAY,UAAW3gC,EAAS0gC,GAGpF9X,EAAOwU,aAAa,YAAasD,EAAUE,EAAc,UAAW,OAAQ5gC,GAC5E4oB,EAAOwU,aAAa,WAAY0D,EAAUH,EAAc,WAAY,UAAW3gC,IAsD3EA,EAAQ8T,SAAak1B,GAAmBplB,EAAIlW,OAASkb,EAAOzU,OAAOolB,uBAkBrE6J,QAlB8F,CAC9F,IAAIx4B,EAAage,EAAOzU,OAAOvJ,WAC3B81B,EAAS,IAAMA,EAAS,GAAG6C,mBAC7B34B,EAAa81B,EAAS,GAAG6C,wBAClB7C,EAAS,GAAG6C,kBAEjBvjC,EAAQ4K,aAAcA,EAAa5K,EAAQ4K,aAC1CA,GAAcge,EAAO+U,eAAiB/U,EAAO+U,cAAcnI,QAC9D5qB,EAAage,EAAO+U,cAAcnI,MAAM5qB,aAErCA,GAAcge,EAAO+U,eAAiB/U,EAAO+U,cAAcnI,OAAS5M,EAAO+U,cAAcnI,MAAMx1B,UAClG4K,EAAage,EAAO+U,cAAcnI,MAAMx1B,QAAQ4K,YAnBlDge,EAAOua,gBAAgBzC,EAAU,WACjC9X,EAAOua,gBAAgBrC,EAAU,YAAY,GACzCnJ,IACF/O,EAAOoU,kBAAkB4D,EAAc,WACvChY,EAAOoU,kBAAkB2D,EAAc,YAAY,IAkBrD/X,EAAO9U,QAAQ4sB,EAAUI,EAAUF,EAAcD,EAAc,WAAY/1B,GAAY,WACrFw4B,OAMJ,OAAOxa,EAET,SAAS4gB,SAASC,EAAYC,EAAa/F,GACzC,IAAI/a,EAASluB,KAEb,IAAKkuB,EAAOqO,kBAAoB0M,EAAoB,OAAO/a,EAC3D,IAAIzU,EAASs1B,EACTzpC,EAAU0pC,EACV5wB,EAAM3E,EAAO2E,IACb9b,EAAUmX,EAAOnX,QACjB4M,EAAKuK,EAAOvK,GACZg6B,EAAWzvB,EAAOyvB,SAClBxjC,EAAW+T,EAAO/T,SAClByjC,EAAc1vB,EAAO0vB,YACrBxc,EAAYlT,EAAOkT,UACnBC,EAAenT,EAAOmT,aAE1B,GACEtnB,EAAQw1B,MAAM1c,KACX8P,EAAO9P,MAAQ9Y,EAAQw1B,MAAM1c,MAC3B9Y,EAAQo/B,gBAAiBp/B,EAAQ2/B,iBAClC/W,EAAOzU,OAAO8vB,mBAElB,OAAO,EAQT,SAASjf,EAAQoc,EAAQ8C,GACvB,OAAOtb,EAAOggB,SAASxH,EAAQxpB,MAAM5U,OAAOhD,EAASkkC,IAEvD,SAASjf,IAEP,OADA2D,EAAOqO,iBAAkB,EAClBrO,EAQT,IAlBK5oB,EAAQw1B,OAAS1c,IACpB9Y,EAAQw1B,MAAQ5M,EAAOub,cAAcrrB,KAYnCA,GAAO+qB,GAAevc,GAAgBD,KACxCuB,EAAOqO,iBAAkB,GAIvBj6B,EACF4rB,EAAOggB,SAAShgB,EAAOwb,UAAUpnC,GAAUgD,QACtC,GAAII,GAAYyjC,EAErB,IACEjb,EAAOyb,mBAAmBjkC,EAAUyjC,EAAa7jC,EAASglB,EAASC,GACnE,MAAOyB,GAEP,MADAkC,EAAOqO,iBAAkB,EACnBvQ,OAEH,GAAI9c,EAETgf,EAAOggB,SAAShgB,EAAOwb,UAAUx6B,GAAK5J,QACjC,GAAI4jC,EAEThb,EAAOggB,SAAShgB,EAAO5E,IAAI/e,SAAU,oBAAuB2+B,EAAW,MAAQ7zB,GAAG,GAAI/P,QACjF,GAAIqnB,GAAaC,EAEtB,IACEsB,EAAO0b,oBAAoB1b,EAAOhf,GAAIyd,EAAWC,EAActnB,EAASglB,EAASC,GACjF,MAAOyB,GAEP,MADAkC,EAAOqO,iBAAkB,EACnBvQ,OAEC5N,IAEL8P,EAAO5C,MACT4C,EAAO5C,IAAIue,QACX3b,EAAO5C,KAAM,GAEf4C,EAAO4b,WAAW1rB,EAAK9Y,GACpBwmB,MAAK,SAAUie,GACd7b,EAAOggB,SAAShgB,EAAOwb,UAAUK,GAAczkC,MAEhDymB,OAAM,WACLmC,EAAOqO,iBAAkB,MAG/B,OAAOrO,EAET,SAASpiB,OAEP,IADA,IAAI/D,EAAO,GAAIC,EAAMC,UAAU3G,OACvB0G,KAAQD,EAAMC,GAAQC,UAAWD,GAEzC,IAEIoiC,EACAH,EACAnP,EAJA5M,EAASluB,KACb,GAAIkuB,EAAO+T,gBAAmB,OAAO/T,EAId,iBAAZnmB,EAAK,GACdkiC,EAAkBliC,EAAK,IAAM,IAE7BqiC,EAAcriC,EAAK,GACnBkiC,EAAkBliC,EAAK,IAAM,IAG/B,IAAIvD,EAAOylC,EAAgBzlC,KACvBiV,EAASwwB,EAAgBxwB,OACzB6E,EAAQ2rB,EAAgB3rB,MAC5B,GAAI9Z,EAEF,OADA4lC,EAAclc,EAAOic,YAAY,CAAE3lC,KAAMA,EAAMiV,OAAQA,EAAQ6E,MAAOA,KAE7D4P,EAAOpiB,KAAKs+B,EAAaltB,MAAM5U,OAAO,GAAI2hC,EAAiB,CAChEzlC,KAAM,KACNiV,OAAQ,KACR6E,MAAO,QAGJ4P,EAGT,IAAIhF,EAAMgF,EAAOhF,IACjB+a,eAAe/V,EAAQ,QAEvB,IACI6W,EADAS,EAAsBtX,EAAOqU,aAAakD,MAU9C,GARKD,GACH,4DAA8DpkC,MAAM,KAAK2C,SAAQ,SAAU2hC,GACrFxX,EAAOqU,aAAazH,MAAM4K,KAC5BF,GAAsB,EACtBT,EAAYW,MAIdF,EAAqB,CACvB,IAIIvC,EAJA0C,EAAezX,EAAOqU,aAAakD,OACfvX,EAAOqU,aAAazH,MAAM8K,eAC1B1c,EAAI6b,GAAW77B,MACnC28B,EAAc3X,EAAOxiB,QAAQwiB,EAAOxiB,QAAQpK,OAAS,GAGzD,GAAIqkC,GAAgBA,EAAarc,IAAK,CACpC,IAAI2lB,EAAmBtJ,EAAarc,IAAIzS,QAAQ,aAChD,GAAIo4B,EAAiB3tC,QAAU2tC,EAAiB,GAAGnlB,QAAS,CAC1D,IAAIF,EAAUqlB,EAAiB,GAE1B/gB,EAAO5E,IAAIjlB,QAAQulB,GAAStoB,SAC/B2hC,EAAgBrZ,EAAQE,QAAQgR,QAmBtC,GAfKmI,IACHA,EAAgB/U,EAAO4X,kBAAkBD,KAGtC5C,GAAiB4C,IACpB5C,EAAgB,CACd7kB,IAAKynB,EACLjN,KAAMiN,EAAYzkC,MAAM,KAAK,GAC7Bkd,MAAOpB,MAAMiB,cAAc0nB,GAC3B/K,MAAO,CACLlC,KAAMiN,EAAYzkC,MAAM,KAAK,GAC7Bgd,IAAKynB,OAINuE,GAAkE,IAAnDA,EAAYvpC,QAAQ,QAAS,IAAIM,OAAOG,QACrD2hC,GAAkB0C,GACrB,OAAOzX,EAGX,IAAIghB,EAAgBjF,EAAgBsE,OAAStL,GAAiBmH,EAC9D,GAAInH,GAAiB0C,EAAc,CACjC,IAAIwJ,EAAoBjrB,OAAOY,IAAMZ,OAAOW,MAASX,OAAOa,UAAYb,OAAOI,IAC3E8qB,EAAkBlhB,EAAOzU,OAAO7N,YAA2C,IAA9Bq+B,EAAgBr+B,UAC7DyjC,EAA+BnhB,EAAOqU,cAAgBrU,EAAOqU,aAAazH,OAAS5M,EAAOqU,aAAazH,MAAMx1B,UAA2D,IAAhD4oB,EAAOqU,aAAazH,MAAMx1B,QAAQsG,WAC1JwjC,GAAoBD,GAAsBE,GAC5CjU,QAAQtvB,OAEVoiB,EAAOqU,aAAeU,EACtB/U,EAAOxiB,QAAQgwB,MACfxN,EAAO0U,cAEHwM,GAAmBD,IAAsBE,GAC3CjU,QAAQtvB,OAGVoiB,EAAO6X,YAAYJ,GACfuJ,GACFhhB,EAAO4N,SAASsO,EAAa,CAAE1F,eAAe,SAEvCiB,IACTzX,EAAO6X,YAAYJ,GACfyE,GACFlc,EAAO4N,SAASsO,EAAa,CAAE1F,eAAe,KAGlD,OAAOxW,EAET,IAEIohB,EAFAC,EAAgBrhB,EAAO5E,IAAI/e,SAAS,iBAAiBsM,QAAQ,oCAAoCxB,GAAG,GAGxG,GAAI6Y,EAAOzU,OAAOolB,uBAAyB,EAAG,CAC5C,IAAI9wB,EAAU,GACdmgB,EAAO5E,IAAI/e,SAAS,SAASjE,MAAK,SAAUK,EAAO+/B,GACjD34B,EAAQrM,KAAKglC,EAAO54B,cAGtB,IAAI0hC,EAAkBthB,EAAO5E,IAAI/e,SAAS,iBAAiBsM,QAAQ,gBAAgBxB,GAAG,GACtF,GAAIm6B,EAAgBluC,OAAQ,CAC1B,IAAImuC,EAA0BvhB,EAAOxiB,QAAQwiB,EAAOxiB,QAAQpK,OAAS,GACjEouC,EAA4BxhB,EAAO4X,kBAAkB2J,GACrDC,GAA6BF,EAAgB,GAAGhN,QAAUkN,EAA0B5U,QAAU0U,EAAgB,GAAGhN,OAAO1H,MAAMA,QAChIyU,EAAgBC,EACXvF,EAAgB9G,UACnBmM,EAAapmB,EAAIlW,OAASkb,EAAOzU,OAAOolB,0BAMhD,IAAKoL,EAAgBsE,OAASgB,EAAcjuC,SAAWguC,EAAY,CACjE,GAAIphB,EAAOzU,OAAO7N,WACb2jC,EAAc,GAAG/M,QACjBtU,EAAOxiB,QAAQwiB,EAAOxiB,QAAQpK,OAAS,KAAOiuC,EAAc,GAAG/M,OAAO1H,MAAM1c,IAM/E,OAJA8P,EAAOpiB,KACLoiB,EAAOxiB,QAAQwiB,EAAOxiB,QAAQpK,OAAS,GACvC4b,MAAM5U,OAAO2hC,EAAiB,CAAEsE,OAAO,KAElCrgB,EAET,IAAIyhB,EAAoBJ,EAAc,GAAG/M,OAAO1H,MAchD,OAZA6I,kBAAkBz9B,KAChBgoB,EACAyhB,EACAzhB,EAAOqU,cACP,WACErU,EAAO4gB,SAAS,CAAE5/B,GAAIqgC,GAAiBryB,MAAM5U,OAAO2hC,EAAiB,CACnEnP,MAAO6U,QAGX,eAGKzhB,EAaT,GAToB,MAAhBkc,IACFA,OAAcjqC,GAEZiqC,GAAkC,MAAnBA,EAAY,IAA2C,IAA7BA,EAAYzoC,QAAQ,OAC/DyoC,IAAgBlc,EAAO0K,MAAQ,KAAOwR,GAAavpC,QAAQ,KAAM,OAE9DupC,GAAelc,EAAOxiB,QAAQpK,OAAS,IAC1C8oC,EAAclc,EAAOxiB,QAAQwiB,EAAOxiB,QAAQpK,OAAS,IAEnDguC,IAAerF,EAAgBsE,OAASrgB,EAAOxiB,QAAQwiB,EAAOxiB,QAAQpK,OAAS,GACjF,OAAO4sB,EAAOpiB,KAAKoiB,EAAOxiB,QAAQwiB,EAAOxiB,QAAQpK,OAAS,GAAI4b,MAAM5U,OAAO,GAAI2hC,GAAmB,GAAI,CACpGsE,OAAO,EACPn1B,SAAS,KAGb,GAAIk2B,IAAerF,EAAgBsE,MACjC,OAAOrgB,EAkBT,IAdA4M,EAAQ5M,EAAO4X,kBAAkBsE,KAE3BA,IACFtP,EAAQ,CACN1c,IAAKgsB,EACLxR,KAAMwR,EAAYhpC,MAAM,KAAK,GAC7Bkd,MAAOpB,MAAMiB,cAAcisB,GAC3BtP,MAAO,CACLlC,KAAMwR,EAAYhpC,MAAM,KAAK,GAC7Bgd,IAAKgsB,MAKRtP,EACH,OAAO5M,EAGT,GAAI4M,EAAMA,MAAMsI,SACd,OAAOA,SAASl9B,KAAKgoB,EAAQ,OAAQ4M,EAAOmP,GAG9C,IAaI2F,EAbAtqC,EAAU,GAcd,GAbIw1B,EAAMA,MAAMx1B,QACd4X,MAAM5U,OAAOhD,EAASw1B,EAAMA,MAAMx1B,QAAS2kC,GAE3C/sB,MAAM5U,OAAOhD,EAAS2kC,GAExB3kC,EAAQw1B,MAAQA,EAEZx1B,GAAWA,EAAQS,UACrB+0B,EAAM/0B,QAAUT,EAAQS,QACxBT,EAAQw1B,MAAM/0B,QAAUT,EAAQS,SAI9BT,EAAQipC,OAASrgB,EAAOzU,OAAOopB,aACjC3U,EAAO5E,IAAI/e,SAAS,0BAA0BjE,MAAK,SAAUK,EAAO+/B,GAC9DA,EAAOlE,QAAUkE,EAAOlE,OAAO1H,OAAS4L,EAAOlE,OAAO1H,MAAM1c,MAAQ0c,EAAM1c,MAC5EwxB,GAAkB,EAClB1hB,EAAO4gB,SAAS,CAAE5/B,GAAIw3B,GAAUphC,OAGhCsqC,GACF,OAAO1hB,EAGX,SAAS5D,IACP,IAAImgB,GAAe,EAenB,SAASC,EAAaC,EAAeC,GACnC1c,EAAOqO,iBAAkB,EACrBqO,GAAkBA,EAAe7kC,UAC9B+0B,EAAM/0B,QACJ+0B,EAAM/0B,QAAUmX,MAAM5U,OAAO,GAAIwyB,EAAM/0B,QAAS6kC,EAAe7kC,SADhD+0B,EAAM/0B,QAAU6kC,EAAe7kC,QAErDT,EAAQw1B,MAAM/0B,QAAU+0B,EAAM/0B,SAEhCmoB,EAAO4gB,SAASnE,EAAeztB,MAAM5U,OAAOhD,EAASslC,IAAiB,GAExE,SAASI,IACP9c,EAAOqO,iBAAkB,EAxBvBzB,EAAMA,MAAM0L,WAAa1L,EAAMA,MAAM2L,gBACvCvY,EAAO4gB,SAAS,CAAE5/B,GAAI4rB,EAAMA,MAAM2L,cAAcC,QAAUphC,GAC1DmlC,GAAe,GAEjB,sEAAwErpC,MAAM,KAAK2C,SAAQ,SAAUknC,GACnG,IAAI5iC,EAEAyyB,EAAMA,MAAMmQ,KAAkBR,IAChCA,GAAe,EACfvc,EAAO4gB,WAAWzmC,EAAM,IAAQ4iC,GAAgBnQ,EAAMA,MAAMmQ,GAAe5iC,GAAO/C,OAGlFmlC,IAcA3P,EAAMA,MAAM7L,QACdf,EAAOqO,iBAAkB,EACzBzB,EAAMA,MAAM7L,MAAM/oB,KAAKgoB,EAAQ4M,EAAO5M,EAAOqU,aAAcmI,EAAcM,IAEvElQ,EAAMA,MAAMoJ,gBACdA,eAAehW,EAAQ4M,EAAMA,MAAMoJ,eAAgBwG,EAAcM,IAGrE,SAASzgB,IACP2D,EAAOqO,iBAAkB,EA+B3B,OA5BIj3B,EAAQ69B,QACV7Y,IAEAqZ,kBAAkBz9B,KAChBgoB,EACA4M,EACA5M,EAAOqU,cACP,WACMzH,EAAMA,MAAMpT,QACdwB,EACGsF,YAAY1rB,MAAMC,QAAQ+3B,EAAMA,MAAMpT,SAAWoT,EAAMA,MAAMpT,QAAU,CAACoT,EAAMA,MAAMpT,UACpFoE,MAAK,WACJxB,OAEDyB,OAAM,WACLxB,OAGJD,OAGJ,WACEC,OAMC2D,EAGT,SAAS2hB,mBAAmB3hB,GAC1B+V,eAAe/V,EAAQ,sBACvB,IAAIhF,EAAMgF,EAAOhF,IACb+T,EAAgB/O,EAAO+O,cAEN/O,EAAO5E,IACzB/e,SAAS,SACTmI,QAAO,SAAU/L,EAAOogC,GACvB,SAAI7Y,EAAOqU,eAAiBrU,EAAOqU,aAAakD,QAASvX,EAAOqU,aAAauN,QACtE/I,IAAe7Y,EAAOyT,iBAGlBr7B,MAAK,SAAUK,EAAO+/B,GACnC,IAAI0B,EAAa37B,EAAEi6B,GACfR,EAAez5B,EAAEyc,EAAIme,OAAOC,YAAYc,IACxCla,EAAOzU,OAAOopB,YAAc3U,EAAO4U,aAAanhC,QAAQymC,EAAW,KAAO,GAC5EA,EAAWv6B,SAAS,WAChBovB,GACFiJ,EAAar4B,SAAS,aAIxBqgB,EAAOwU,aAAa,eAAgB0F,EAAYlC,EAAc,gBAAY/lC,EAAW,IACrF+tB,EAAO6U,WAAWqF,GACdnL,GAAiBiJ,EAAa5kC,QAChC4sB,EAAO8U,aAAakD,OAM5B,SAASf,uBAEPlB,eADajkC,KACU,wBACvB,IAAIoe,EAFSpe,KAEI0L,QAFJ1L,KAEmB0L,QAAQpK,OAAS,GAEjDuuC,mBAJa7vC,MAAAA,KAMN0L,QAAU,CAAC0S,GANLpe,KAONq8B,KAAK3wB,QAAU,CAAC0S,GAPVpe,KAQN4iC,cAGT,IAAImN,OAAuB,SAAU9oB,GACnC,SAAS8oB,EAAO7mB,EAAKmT,GACnBpV,EAAgB/gB,KAAKlG,KAAM,GAAI,MAAiB,IAATq8B,EAAuBnT,EAAMmT,IACpE,IAAInO,EAASluB,KAGbkuB,EAAO8hB,iBAA8B,IAAT3T,EAExBnO,EAAO8hB,YAET9yB,MAAM5U,QAAO,EAAO4lB,EAAQ,CAC1BhF,IAAKA,EACLzP,OAAQyP,EAAIzP,OAAO4iB,KACnBhQ,OAAQnD,EAAImD,QAAU,GACtB6C,MAAOhG,EAAIgG,QAIbhS,MAAM5U,QAAO,EAAO4lB,EAAQ,CAC1BhF,IAAKA,EACLmT,KAAMA,EACNI,OAAQJ,EAAK1uB,GACb8L,OAAQ4iB,EAAK5iB,OACb4S,OAAQgQ,EAAKhQ,OACb/C,IAAK+S,EAAK/S,IACVpa,GAAImtB,EAAKntB,GACTmuB,WAAYhB,EAAKgB,WACjB4S,UAAW5T,EAAK4T,UAChBvkC,QAAS2wB,EAAK3wB,QACdwkC,cAAe7T,EAAK6T,cACpBhhB,MAAOhG,EAAIgG,MACX+N,cAA6B,QAAd/T,EAAI/C,OAAmBkW,EAAK5iB,OAAO02B,iBAClDrN,aAAc,GACdsN,eAAgB,KAKpBliB,EAAO7F,aAGP6F,EAAOmiB,QAAU7mC,IAAIc,cAAc,OAGnC4jB,EAAOqO,iBAAkB,EAGzB,IAAIgG,EAAe,GACfU,EAAgB,GA4BpB,OA3BA/+B,OAAO6f,eAAemK,EAAQ,eAAgB,CAC5CtN,YAAY,EACZ/Y,cAAc,EACd0gB,IAAK,SAAa+nB,QACE,IAAbA,IAAsBA,EAAW,IAEtCrN,EAAgB/lB,MAAM5U,OAAO,GAAIi6B,IACjCA,EAAe+N,KAEfpiB,EAAO9P,IAAMmkB,EAAankB,IAC1B8P,EAAOvH,KAAK,cAAe2pB,EAAUrN,EAAe/U,KAEtDhlB,IAAK,WACH,OAAOq5B,KAGXr+B,OAAO6f,eAAemK,EAAQ,gBAAiB,CAC7CtN,YAAY,EACZ/Y,cAAc,EACdqB,IAAK,WACH,OAAO+5B,GAET1a,IAAK,SAAa+nB,GAChBrN,EAAgBqN,KAIbpiB,EAyoCT,OAtoCKjH,IAAkB8oB,EAAO7oB,UAAYD,GAC1C8oB,EAAOtnC,UAAYvE,OAAOijB,OAAQF,GAAmBA,EAAgBxe,WACrEsnC,EAAOtnC,UAAUxE,YAAc8rC,EAE/BA,EAAOtnC,UAAU44B,sBAAwB,SAAgC4E,EAAcC,EAAcpG,EAASD,EAAWwD,GACvH,IAIIkN,EACAC,EAJAvT,EADSj9B,KACci9B,cACvBwT,EAFSzwC,KAEYyZ,OAAOwmB,yBAIhC,SAASyQ,EAAgBpnB,EAAKqnB,GAC5B,IAIIC,EAJA7P,EAAYzX,EAAIlb,SAAS,YAAcuiC,EAAaviC,SAAS,WAC7DiyB,EAAc/W,EAAIlb,SAAS,aAC3ByiC,GAAyB9P,IAAaV,EACtCyQ,EAAUxnB,EAAIrS,KAAK,eAMvB,OAJI8pB,GAAa0P,GAAennB,EAAIlb,SAAS,SAAW0iC,EAAQxvC,OAAS,GAAKwvC,EAAQv6B,KAAK,QAAQjV,SACjGgoB,EAAMwnB,EAAQv6B,KAAK,QACnBq6B,GAAc,GAET,CACLtnB,IAAKA,EACLsnB,YAAaA,EACbG,WAAYznB,EAAI,GAAG4W,mBACnB8Q,YAAa1nB,EAAI,GAAG6X,oBACpBJ,UAAWA,EACXV,YAAaA,EACbwQ,uBAAwBA,GAwC5B,OArCI5T,IACFsT,EAAY,GACZC,EAAY,GACZvK,EAAa17B,SAAS,iBAAiBA,SAAS,qCAAqCjE,MAAK,SAAUK,EAAOw5B,GACzG,IAAIC,EAAS3zB,EAAE0zB,GACXC,EAAOhyB,SAAS,SAAWyxB,GAA2B,YAAdwD,GACxCjD,EAAOhyB,SAAS,UAAY0xB,GAChCyQ,EAAU7uC,KAAKgvC,EAAgBtQ,EAAQ6F,EAAa17B,SAAS,sBAEzD27B,EAAa93B,SAAS,kBAnCjBpO,KAmC4CyZ,OAAOolB,uBAAyB,GAnC5E7+B,KAmCwFkpB,IAAIlW,OAnC5FhT,KAmC4GyZ,OAAOolB,wBAC5HqH,EAAa37B,SAAS,iBAAiBA,SAAS,qCAAqCjE,MAAK,SAAUK,EAAOw5B,GACzG,IAAIC,EAAS3zB,EAAE0zB,GACXC,EAAOhyB,SAAS,SAAW0xB,IAAYD,GAA2B,YAAdwD,GACpDjD,EAAOhyB,SAAS,SAAW0xB,GAAyB,aAAduD,GACtCjD,EAAOhyB,SAAS,UAAYyxB,GAGhC2Q,EAAU9uC,KAAKgvC,EAAgBtQ,EAAQ8F,EAAa37B,SAAS,sBAGjE,CAACimC,EAAWD,GAAWxsC,SAAQ,SAAUktC,GACvCA,EAAOltC,SAAQ,SAAUo8B,GACvB,IAAI5e,EAAI4e,EACJY,EAAYZ,EAAMY,UAClBzX,EAAM6W,EAAM7W,IACZ4nB,EAAWD,IAAWT,EAAYD,EAAYC,EAC5CzP,GAAazX,EAAIlb,SAAS,UAAY8iC,GAC5CA,EAASntC,SAAQ,SAAUotC,GACzB,GAAIA,EAAWP,YAAa,CAC1B,IAAIQ,EAAaD,EAAW7nB,IAAI,GAChC/H,EAAEwvB,YAAcK,GAAcA,EAAWC,YAAmB,aAO/D,CAAEd,UAAWA,EAAWC,UAAWA,IAG5CT,EAAOtnC,UAAU2Q,QAAU,SAAkBgvB,EAAYkJ,EAAYpL,EAAcD,EAAc5C,EAAWnzB,EAAY1C,GACtH,IAAI0gB,EAASluB,KACb,GAAIkuB,EAAOzU,OAAO83B,cAChBrjB,EAAOzU,OAAO83B,cAAcrgC,MAAMgd,EAAQ,CAACka,EAAYkJ,EAAYpL,EAAcD,EAAc5C,EAAW71B,QAD5G,CAIA,IAAIyvB,EAAgB/O,EAAO+O,cACvB3Y,EAA2B,QAArB4J,EAAOhF,IAAI/C,MACrB,GAAIjW,EAAY,CACd,IAAIshC,EAA8B,8CAAgDthC,EAAa,IAAMmzB,EA8BrG,OAfe,YAAdA,EAA0BiO,EAAalJ,GAAYr1B,cAbvB,WAC3Bmb,EAAO5E,IAAIpb,YAAYsjC,GACnBvU,GAAiB/O,EAAOmP,WAAW/7B,SACjC2kC,GACF/X,EAAOmP,WAAWvnB,QAAQmwB,GAExBC,GACFhY,EAAOmP,WAAWvnB,QAAQowB,IAG1B14B,GAAYA,OAIdyvB,IACEgJ,GAAgBqL,IAClBpjB,EAAOoU,kBAAkB2D,EAAc,IACvCA,EAAa/3B,YAAY,8CACzBojC,EAAWx7B,QAAQmwB,IAEjBC,GAAgBkC,IAClBla,EAAOoU,kBAAkB4D,EAAc,IACvCA,EAAah4B,YAAY,8CACzBk6B,EAAWtyB,QAAQowB,UAIvBhY,EAAO5E,IAAIzb,SAAS2jC,GAMtB,IAEIjB,EACAC,EAEA3Q,EACAC,EAEA2R,EACAC,EATAC,EAAwB,qBAAuBtO,EAAY,qBAW/D,GAAI/e,GAAO2Y,EAAe,CACK/O,EAAOzU,OAAOolB,uBAAyB,GAAK3Q,EAAOhF,IAAIlW,OAASkb,EAAOzU,OAAOolB,yBAEtGqH,EAAa93B,SAAS,kBAAoB63B,EAAa73B,SAAS,yBAC7D83B,EAAa93B,SAAS,yBAA2B63B,EAAa73B,SAAS,oBAG7EqjC,EAAavL,GAAgBA,EAAa93B,SAAS,gBACnDsjC,EAAazL,GAAgBA,EAAa73B,SAAS,gBACnDyxB,EAAY4R,IAAevL,EAAa93B,SAAS,0BACjD0xB,EAAU4R,IAAezL,EAAa73B,SAAS,2BAEjD,IAAI6iC,EAAS/iB,EAAOmT,sBAAsB4E,EAAcC,EAAcpG,EAASD,EAAWwD,GAC1FkN,EAAYU,EAAOV,UACnBC,EAAYS,EAAOT,WAmEN,YAAdnN,EAA0BiO,EAAalJ,GAAYr1B,cAAa,WA1B3Dmb,EAAO+O,gBACLgJ,IACFA,EAAa/3B,YAAY,yEACzB+3B,EAAap4B,SAAS,oCACtBqP,MAAMa,WAAU,WACdkoB,EAAa/3B,YAAY,wCAGzBg4B,GACFA,EAAah4B,YAAY,yEAEvB+3B,EAAa73B,SAAS,YAAc63B,EAAa17B,SAAS,yBAAyBjJ,OACrF2kC,EAAahvB,KAAK,kDAAkDlH,UAAU,IAE9Ek2B,EAAahvB,KAAK,YAAYlH,UAAU,IAEtCm2B,EAAa93B,SAAS,YAAc83B,EAAa37B,SAAS,yBAAyBjJ,OACrF4kC,EAAajvB,KAAK,kDAAkDlH,UAAU,IAE9Em2B,EAAajvB,KAAK,YAAYlH,UAAU,KAG5Cme,EAAO5E,IAAIpb,YAAYyjC,GACnBnkC,GAAYA,OAQdyvB,GAEF2U,EAAe,GACf10B,MAAMa,WAAU,WAEd6zB,EAAe,GACf1jB,EAAO5E,IAAIzb,SAAS8jC,OAItBzjB,EAAO5E,IAAIzb,SAAS8jC,GA/EtB,SAASC,EAAe74B,GAChBuL,GAAO2Y,IACI,IAAblkB,IACE+mB,IACFmG,EAAap4B,SAAS,qCACtBq4B,EAAar4B,SAAS,sCAEpBgyB,IACFoG,EAAap4B,SAAS,uCACtBq4B,EAAar4B,SAAS,yCAG1B0iC,EAAUxsC,SAAQ,SAAUo8B,GAC1B,IAAI7W,EAAM6W,EAAM7W,IACZ3V,EAAuB,YAAd0vB,EAA0BlD,EAAM6Q,YAAc7Q,EAAM4Q,WAC7D5Q,EAAMY,YACJZ,EAAME,aAAeqR,EACvBpoB,EAAI,GAAG7e,MAAMonC,YAAY,YAAc,eAAkBl+B,GAAU,EAAIoF,GAAa,oGAAsG,aAE1LuQ,EAAIvZ,UAAW,eAAkB4D,GAAU,EAAIoF,GAAa,eAIlEy3B,EAAUzsC,SAAQ,SAAUo8B,GAC1B,IAAI7W,EAAM6W,EAAM7W,IACZ3V,EAAuB,YAAd0vB,EAA0BlD,EAAM4Q,WAAa5Q,EAAM6Q,YAC5D7Q,EAAMY,YACJZ,EAAME,aAAeoR,EACvBnoB,EAAIvZ,UAAW,eAAkB4D,EAAS,EAAc,qGAExD2V,EAAIvZ,UAAW,eAAkB4D,EAAS,EAAc,kBAqDlEo8B,EAAOtnC,UAAUklC,YAAc,SAAsB/jB,GACtC5pB,KACN8xC,SAASloB,IAGlBmmB,EAAOtnC,UAAUwkC,iBAAmB,SAA2BzB,GAChD/+B,EAAE++B,GACR3+B,KAAK,KAGdkjC,EAAOtnC,UAAUu6B,aAAe,SAAuB9zB,GACxClP,KACN8xC,SAAS5iC,IAGlB6gC,EAAOtnC,UAAUs6B,WAAa,SAAqB7zB,GACjD,IAAIoa,EAAM7c,EAAEyC,GACRszB,EAASlZ,GAAOA,EAAI,IAAMA,EAAI,GAAGkZ,OAEjCA,GAAUA,EAAO1H,OAAS0H,EAAO1H,MAAMA,OAAS0H,EAAO1H,MAAMA,MAAM0L,UACrEld,EAAInb,SAFOnO,KAKN8xC,SAAS5iC,IAGlB6gC,EAAOtnC,UAAUqpC,SAAW,SAAmB5iC,GAC7C,GAAKA,EAAL,CACA,IACIoa,EAAM7c,EAAEyC,GACO,IAAfoa,EAAIhoB,SACRgoB,EAAIrS,KAAK,QAAQ3Q,MAAK,SAAUyrC,EAAUvG,GACxC/+B,EAAE++B,GAAOjhC,WAAWjE,MAAK,SAAUK,EAAOomC,GACpCA,EAAS1e,cACX5hB,EAAEsgC,GAAU16B,QAAQ,oBACpB06B,EAAS1e,YAAY2e,kBAIvB1jB,EAAI,GAAG+E,aAAe/E,EAAI,GAAG+E,YAAY2e,UAC3C1jB,EAAI,GAAG+E,YAAY2e,WAZRhtC,KAcDyZ,OAAOu4B,iBAdNhyC,KAiBFyZ,OAAOw4B,0BAChB5lC,YAAW,WACTid,EAAInb,WAnBKnO,KAoBDyZ,OAAOy4B,uBAEjB5oB,EAAInb,aAIR4hC,EAAOtnC,UAAUihC,UAAY,SAAoBpnC,GAE/C,GAAuB,iBAAZA,EADEtC,KAEJqwC,QAAQtjC,UAAYzK,MACtB,CACL,GAAImK,EAAEnK,GAAS8L,SAAS,QACtB,OAAO9L,EALEtC,KAOJqwC,QAAQtjC,UAAY,GAC3BN,EARWzM,KAQFqwC,SAAS96B,OAAOjT,GAG3B,OAXatC,KAWCmyC,YAAY,QAXbnyC,KAW6BqwC,UAG5CN,EAAOtnC,UAAU0pC,YAAc,SAAsBC,EAAgB53B,EAAW63B,GAC9E,IACIhW,EADSr8B,KACKq8B,KACdnT,EAFSlpB,KAEIkpB,IAKbopB,EAAa7lC,EAAE+N,GACf9N,EAAW0lC,EACXC,IAAc3lC,GAAY,kBAE9B,IAAIyK,EAAQm7B,EACTr7B,KAAKvK,GACLgG,QAAO,SAAU/L,EAAOuI,GAAM,OAAgD,IAAzCzC,EAAEyC,GAAI7K,QARzB,iFAQiD/C,UAYtE,OAVI6V,EAAM7V,OAAS,IACY,iBAAlB+6B,EAAK3vB,WAEdyK,EAAQm7B,EAAWr7B,KAAOolB,EAAa,SAAI,IAAM3vB,IAE/CyK,EAAM7V,OAAS,IAEjB6V,EAAQm7B,EAAWr7B,KAAM,IAAOiS,EAAIzP,OAAoB,cAAI,IAAM/M,KAGjD,IAAjByK,EAAM7V,OAAuB6V,GAG5Bk7B,IAAcl7B,EA5BNnX,KA4BqBmyC,YAAYzlC,EAAU4lC,GAAY,IAChEn7B,GAA0B,IAAjBA,EAAM7V,OAAuB6V,EACtCA,GAASA,EAAM7V,OAAS,EAAYmL,EAAE0K,EAAM,SAAhD,IAIF44B,EAAOtnC,UAAU8pC,cAAgB,SAAwBlmB,QACvC,IAAXA,IAAoBA,EAASrsB,KAAKqsB,QAEvC,IAAI6B,EAASluB,KACTwyC,EAAkB,GA0CtB,OAzCAnmB,EAAOtoB,SAAQ,SAAU+2B,GACvB,IAAI2X,GAAe,EACnB,GAAI,SAAU3X,GAASA,EAAM4X,KAAM,CACjC,IAAIC,EAAoB7X,EAAM4X,KAAK/9B,KAAI,SAAU22B,GAC/C,IAAIsH,EAAS11B,MAAM5U,OAAO,GAAIwyB,EAAO,CACnClC,MAASkC,EAAU,KAAI,IAAOwQ,EAAa,MAAIzqC,QAAQ,MAAO,KAAKA,QAAQ,KAAM,KACjFuoC,WAAYtO,EAAMlC,KAClB0P,IAAKgD,IAIP,cAFOsH,EAAOF,YACPE,EAAOvmB,OACPumB,KAETH,GAAe,EACfD,EAAkBA,EAAgBr3B,OAAO+S,EAAOqkB,cAAcI,IAEhE,GAAI,iBAAkB7X,EAAO,CAC3B,IAAI+X,EAAsB/X,EAAMgY,aAAan+B,KAAI,SAAUo+B,GACzD,IAAIC,EAAS91B,MAAM5U,OAAO,GAAIyqC,GAG9B,OAFAC,EAAO9H,YAAcpQ,EACrBkY,EAAOC,gBAAkBnY,EAAMlC,KACxBoa,KAETR,EAAkBA,EAAgBr3B,OAAO2f,EAAO5M,EAAOqkB,cAAcM,IAEvE,GAAI,WAAY/X,EAAO,CACrB,IAAIoY,EAAsBpY,EAAMzO,OAAO1X,KAAI,SAAUw+B,GACnD,IAAIC,EAASl2B,MAAM5U,OAAO,GAAI6qC,GAE9B,OADAC,EAAOxa,MAAUkC,EAAU,KAAI,IAAOsY,EAAW,MAAIvyC,QAAQ,MAAO,KAAKA,QAAQ,KAAM,KAChFuyC,KAGPZ,EADEC,EACgBD,EAAgBr3B,OAAO+S,EAAOqkB,cAAcW,IAE5CV,EAAgBr3B,OAAO2f,EAAO5M,EAAOqkB,cAAcW,IAGnE,WAAYpY,GAAY,SAAUA,GAASA,EAAM4X,MAAW,iBAAkB5X,GAClF0X,EAAgB9wC,KAAKo5B,MAGlB0X,GAITzC,EAAOtnC,UAAUghC,cAAgB,SAAwBrrB,GACvD,IAAKA,EAAO,MAAO,GACnB,IAAIE,EAAQpB,MAAMiB,cAAcC,GAC5Bpc,EAAOoc,EAAIhd,MAAM,KAAK,GAEtBw3B,EAAOxa,EAAIhd,MAAM,KAAK,GAAGA,MAAM,KAAK,GACxC,MAAO,CACLkd,MAAOA,EACPtc,KAAMA,EACNyX,OALW,GAMX2E,IAAKA,EACLwa,KAAMA,IAIVmX,EAAOtnC,UAAU0hC,YAAc,SAAsBrhB,GAGnD,QAFoB,IAAfA,IAAwBA,EAAa,IAEhB,iBAAfA,EACT,OAAOA,EAET,IAAItkB,EAAOskB,EAAWtkB,KAClBo0B,EAAO9P,EAAW8P,KAClBnf,EAASqP,EAAWrP,OACpB6E,EAAQwK,EAAWxK,MACvB,IAAK9Z,IAASo0B,EACZ,MAAM,IAAI5yB,MAAM,sDAElB,IACI80B,EAAQt2B,EADCxE,KAEFqzC,eAAe,OAAQ7uC,GAFrBxE,KAGFqzC,eAAe,OAAQza,GAElC,IAAKkC,EACH,MAAIt2B,EACI,IAAIwB,MAAO,gCAAmCxB,EAAO,eAErD,IAAIwB,MAAO,gCAAmC4yB,EAAO,eAG/D,IAAIxa,EAZSpe,KAYIszC,kBAAkBxY,EAAO,CAAErhB,OAAQA,EAAQ6E,MAAOA,IACnE,IAAKF,EACH,MAAM,IAAIpY,MAAO,yDAA2DxB,EAAO,KAErF,OAAO4Z,GAIT2xB,EAAOtnC,UAAU6qC,kBAAoB,SAA4BxY,EAAO/f,QACzD,IAARA,IAAiBA,EAAM,IAC5B,IAKIqD,EALA3E,EAASsB,EAAItB,OACb6E,EAAQvD,EAAIuD,MAEZsa,EAAOkC,EAAMlC,KACb2a,EAAQ3tC,QAAQgzB,GAEpB,IACExa,EAAMm1B,EAAM95B,GAAU,IACtB,MAAO0Y,GACP,MAAM,IAAInsB,MAAO,wEAA0E4yB,EAAO,KAAQzG,EAAM9S,YAQlH,OALIf,IAC+BF,GAAZ,iBAAVE,EAA6B,IAAMA,EAChC,IAAOpB,MAAMsC,gBAAgBlB,IAGtCF,GAGT2xB,EAAOtnC,UAAU+qC,aAAe,SAAuBhI,GACrD,IAKIiI,EAJAC,EAASjnC,EAAE++B,GACXpC,EAFSppC,KAEWuiC,aAAazH,MAAMsO,WACvCuK,EAAQD,EAAOllC,KAAK,MAYxB,OAfaxO,KAIgBuyC,cAJhBvyC,KAIqCqsB,QAElCtoB,SAAQ,SAAU+2B,GAE9BA,EAAMsO,aAAeA,GAClBtO,EAAMwN,KACNxN,EAAMwN,IAAI36B,KAAOgmC,IAEpBF,EAAgB3Y,MAGb2Y,GAGT1D,EAAOtnC,UAAU4qC,eAAiB,SAAyBzsC,EAAK8H,GAC9D,IAGIklC,EAFAvnB,EADSrsB,KACOqsB,OAUpB,OAXarsB,KAEgBuyC,cAAclmB,GAG3BtoB,SAAQ,SAAU+2B,GAC5B8Y,GACA9Y,EAAMl0B,KAAS8H,IACjBklC,EAAgB9Y,MAGb8Y,GAGT7D,EAAOtnC,UAAUq9B,kBAAoB,SAA4B1nB,GAC/D,GAAKA,EAAL,CACA,IAQIw1B,EAPAvnB,EADSrsB,KACOqsB,OAChBmmB,EAFSxyC,KAEgBuyC,cAAclmB,GACvCtR,EAHS/a,KAGIypC,cAAcrrB,GAC3Bwa,EAAO7d,EAAI6d,KACXta,EAAQvD,EAAIuD,MACZtc,EAAO+Y,EAAI/Y,KACXyX,EAASsB,EAAItB,OAkDjB,OAhDA+4B,EAAgBzuC,SAAQ,SAAU+2B,GAChC,IAAI8Y,EAAJ,CACA,IAYIC,EAiBEzK,EA7BFvjC,EAAO,GAEPiuC,EAAe,CAAChZ,EAAMlC,MAgB1B,GAfIkC,EAAMiZ,QACmB,iBAAhBjZ,EAAMiZ,MAAsBD,EAAapyC,KAAKo5B,EAAMiZ,OACtDjxC,MAAMC,QAAQ+3B,EAAMiZ,QAC3BjZ,EAAMiZ,MAAMhwC,SAAQ,SAAUiwC,GAC5BF,EAAapyC,KAAKsyC,OAMxBF,EAAa/vC,SAAQ,SAAUkwC,GACzBJ,IACJA,EAAUtZ,aAAa0Z,EAAapuC,GAAMyb,KAAKsX,OAG7Cib,EACFhuC,EAAK9B,SAAQ,SAAUmwC,EAAQvtC,GAC7B,GAA2B,iBAAhButC,EAAO1vC,KAAlB,CACA,IAAI2vC,EAAaN,EAAQltC,EAAQ,GAE/B8S,EAAOy6B,EAAO1vC,MADZ,MAAO2vC,EACaA,EAEA11B,mBAAmB01B,OAKzCrZ,EAAMsO,aACRA,EAAaxQ,EAAKx3B,MAAM,KAAKyB,MAAM,EAAGi4B,EAAMsO,WAAWhoC,MAAM,KAAKE,OAAS,GAAG6C,KAAK,MAGrFyvC,EAAgB,CACdt1B,MAAOA,EACPtc,KAAMA,EACNyX,OAAQA,EACR2E,IAAKA,EACLwa,KAAMA,EACNwQ,WAAYA,EACZtO,MAAOA,EACPt2B,KAAMs2B,EAAMt2B,UAIXovC,IAIT7D,EAAOtnC,UAAU2rC,wBAA0B,SAAkCh2B,EAAK9Y,QACnE,IAAR8Y,IAAiBA,EAAM,SACX,IAAZ9Y,IAAqBA,EAAU,IAEpC,IAAI+uC,EAAcj2B,EAalB,MAZ2B,iBAAhBi2B,GACNA,EAAY1yC,QAAQ,OAAS,GAC7B2D,GACAA,EAAQw1B,OACRx1B,EAAQw1B,MAAMrhB,QACdvV,OAAO2B,KAAKP,EAAQw1B,MAAMrhB,QAAQnY,QAErC4C,OAAO2B,KAAKP,EAAQw1B,MAAMrhB,QAAQ1V,SAAQ,SAAUulC,GAClD,IAAIgL,EAAS,IAAI/zC,OAAQ,KAAO+oC,EAAY,KAAO,KACnD+K,EAAcA,EAAYxzC,QAAQyzC,EAAQhvC,EAAQw1B,MAAMrhB,OAAO6vB,IAAc,OAG1E+K,GAGTtE,EAAOtnC,UAAU8rC,mBAAqB,SAA6Bn2B,GAIjE,IAHA,IACIo2B,EADSx0C,KACSkvB,MAAM5D,IACxB3kB,GAAQ,EACH3F,EAAI,EAAGA,EAAIwzC,EAASlzC,OAAQN,GAAK,EACpCwzC,EAASxzC,GAAGod,MAAQA,IAAOzX,EAAQ3F,IAE3B,IAAV2F,GAAmB6tC,EAASziC,OAAOpL,EAAO,IAGhDopC,EAAOtnC,UAAUqhC,WAAa,SAAqB3Z,EAAY7qB,GAC7D,IAAI4oB,EAASluB,KACTyZ,EAASyU,EAAOzU,OAChBgrB,EAAcn/B,EAAQm/B,YACtBrmB,EAAM+R,EAENskB,EAAWr2B,EAAIzc,QAAQ,MAAQ,EA4BnC,OA3BI8X,EAAOi7B,yBACNpvC,GACAA,EAAQw1B,OACRx1B,EAAQw1B,MAAMxc,OACdpa,OAAO2B,KAAKP,EAAQw1B,MAAMxc,OAAOhd,SAEpC8c,IAAaq2B,EAAW,IAAM,KAAQv3B,MAAMsC,gBAAgBla,EAAQw1B,MAAMxc,OAC1Em2B,GAAW,GAGTh7B,EAAOk7B,0BACNrvC,GACAA,EAAQw1B,OACRx1B,EAAQw1B,MAAMrhB,QACdvV,OAAO2B,KAAKP,EAAQw1B,MAAMrhB,QAAQnY,SAErC8c,IAAaq2B,EAAW,IAAM,KAAQv3B,MAAMsC,gBAAgBla,EAAQw1B,MAAMrhB,QAC1Eg7B,GAAW,GAGTr2B,EAAIzc,QAAQ,OAAS,IACvByc,EAAM8P,EAAOkmB,wBAAwBh2B,EAAK9Y,IAGxCmU,EAAOm7B,6BAA+Bx2B,EAAIzc,QAAQ,MAAQ,IAC5Dyc,EAAMA,EAAIhd,MAAM,KAAK,IAEhB,IAAIipB,SAAQ,SAAUC,EAASC,GACpC,GAAI9Q,EAAO+6B,WAAa/P,GAAermB,EAAIzc,QAAQ,WAAa,GAAK8X,EAAOo7B,eAAelzC,QAAQyc,GAAO,EACxG,IAAK,IAAIpd,EAAI,EAAGA,EAAIktB,EAAOgB,MAAM5D,IAAIhqB,OAAQN,GAAK,EAAG,CACnD,IAAI8zC,EAAY5mB,EAAOgB,MAAM5D,IAAItqB,GACjC,GAAI8zC,EAAU12B,MAAQA,GAEhBlB,MAAMc,MAAQ82B,EAAUl8B,KAAOa,EAAOs7B,iBAGxC,YADAzqB,EAAQwqB,EAAUxyC,SAM1B4rB,EAAO5C,IAAM4C,EAAOhF,IAAI+B,QAAQ,CAC9B7M,IAAKA,EACLoI,OAAQ,MACRwuB,WAAY,SAAoB1pB,GAC9B4C,EAAOvH,KAAK,kBAAmB2E,EAAKhmB,IAEtC2U,SAAU,SAAkBqR,EAAKC,GAC/B2C,EAAOvH,KAAK,qBAAsB2E,GAClB,UAAXC,GAAiC,YAAXA,GAAyBD,EAAIC,QAAU,KAAOD,EAAIC,OAAS,KAAwB,IAAfD,EAAIC,QAC7F9R,EAAO+6B,UAAiC,KAArBlpB,EAAIoG,eACzBxD,EAAOqmB,mBAAmBn2B,GAC1B8P,EAAOgB,MAAM5D,IAAI5pB,KAAK,CACpB0c,IAAKA,EACLxF,KAAMsE,MAAMc,MACZ1b,QAASgpB,EAAIoG,gBAGjBxD,EAAOvH,KAAK,oBAAqB2E,EAAKhmB,GACtCglB,EAAQgB,EAAIoG,gBAEZxD,EAAOvH,KAAK,kBAAmB2E,EAAKhmB,GACpCilB,EAAOe,KAGX6G,MAAO,SAAe7G,GACpB4C,EAAOvH,KAAK,kBAAmB2E,EAAKhmB,GACpCilB,EAAOe,UAMfykB,EAAOtnC,UAAU65B,kBAAoB,SAA4BhZ,EAAK4d,EAAU+N,GAE9E3rB,EAAIpb,YAAY,8CACZg5B,GACF5d,EAAIzb,SAAU,UAAYq5B,IAGT,IAAf+N,EACF3rB,EAAIxa,WAAW,gBACS,IAAfmmC,GACT3rB,EAAI9a,KAAK,cAAe,QAE1B8a,EAAIjX,QAAQ,kBAAmB,CAAE60B,SAAUA,IAX9BlnC,KAYN2mB,KAAK,iBAAkB2C,EAAI,GAAI4d,IAGxC6I,EAAOtnC,UAAUggC,gBAAkB,SAA0Bnf,EAAK4d,EAAU+N,GAE1E3rB,EAAIpb,YAAY,wCAChBob,EAAIzb,SAAU,QAAUq5B,IACL,IAAf+N,EACF3rB,EAAIxa,WAAW,gBACS,IAAfmmC,GACT3rB,EAAI9a,KAAK,cAAe,QAE1B8a,EAAIjX,QAAQ,gBAAiB,CAAE60B,SAAUA,IAR5BlnC,KASN2mB,KAAK,eAAgB2C,EAAI,GAAI4d,IAItC6I,EAAOtnC,UAAU69B,oBAAsB,SAA8Bp3B,GACnE,IAEIgmC,EADA/uB,EADSnmB,KACMkpB,IAAI/C,MAET,QAAVA,EACF+uB,EAAW,oEACQ,OAAV/uB,EACT+uB,EAAW,oEACQ,WAAV/uB,IACT+uB,EAAW,qEAEbzoC,EAAEyC,GAAI+H,KAAKi+B,GAAU/mC,UAGvB4hC,EAAOtnC,UAAU0sC,YAAc,SAAsBzO,EAAQa,EAAUlnB,EAAMD,EAAI0a,EAAOsa,QACvE,IAAVta,IAAmBA,EAAQ,IAEhC,IAIIuI,EACAgS,EAJAC,EAAU7oC,EAAEi6B,GAAQrxB,GAAG,GACvBkxB,EAAY95B,EAAE86B,GAAUlyB,GAAG,GAC3BotB,EAAc6S,EAAQ,GAAG9S,QAAU,GAKvC,IAFc,SAATniB,GAA0B,YAAPD,GAA+B,YAATC,GAA6B,aAAPD,KAAsBijB,EAAY,YACxF,YAAThjB,GAA6B,SAAPD,GAA4B,aAATC,GAA8B,YAAPD,KAAqBijB,EAAY,YAClGZ,IAAgBA,EAAY8S,SAAU,CACxC,IAAIC,EAAc/oC,EAAE2oC,GAChBI,EAAYl0C,SACd+zC,EAAWG,EAAY,GAAGhT,SAG9B6S,EAAW5S,EAAY4S,UAAYA,IACnBA,EAASA,WACvBA,EAASA,SAAW,MAEtB,IAAII,EAAO,CACTvsB,IAnBWlpB,KAmBCkpB,IACZmT,KApBWr8B,KAoBEq8B,KACbnO,OArBWluB,KAsBXspB,IAAKgsB,EACLpmC,GAAIomC,EAAQ,GACZA,QAASA,EACT5O,OAAQ4O,EAAQ,GAChB/O,UAAWA,EACXgB,SAAUhB,EAAU,GACpB/hC,KAAM8wC,EAAQ9mC,KAAK,aACnB04B,SAAU7mB,EACVA,KAAMA,EACND,GAAIA,EACJijB,UAAWA,EACXvI,MAAO2H,EAAY3H,MAAQ2H,EAAY3H,MAAQA,EAC/Cua,SAAUA,GAIZ,OADAC,EAAQ,GAAG9S,OAASiT,EACbA,GAIT1F,EAAOtnC,UAAUi6B,aAAe,SAAuBl1B,EAAUk5B,EAAQa,EAAUlnB,EAAMD,EAAI9a,EAAS8vC,GAGpG,QAFiB,IAAZ9vC,IAAqBA,EAAU,IAE/BohC,EAAL,CACA,IAAIxY,EAASluB,KACTs1C,EAAU7oC,EAAEi6B,GAChB,GAAK4O,EAAQh0C,OAAb,CACA,IAAIilC,EAAY95B,EAAE86B,GACdzM,EAAQx1B,EAAQw1B,MAChB4a,EAAyBxnB,EAAOzU,OAAOi8B,0BAEvCxnB,EAAOzU,OAAOolB,uBAAyB,GACpCyW,EAAQlnC,SAAS,gBACjB8f,EAAOhF,IAAIlW,OAASkb,EAAOzU,OAAOolB,wBAErC2H,EAAY8O,EAAQ,GAAG9S,QAAU8S,EAAQ,GAAG9S,OAAO1H,OAASwa,EAAQ,GAAG9S,OAAO1H,MAAMA,OAASwa,EAAQ,GAAG9S,OAAO1H,MAAMA,MAAM0L,UAE9G,iBAAbh5B,GAA+Bg5B,IACjCh5B,EAAW,iBAGb,IAAImoC,EAAY,QAAUnoC,EAAS,GAAGF,cAAgBE,EAAS3K,MAAM,EAAG2K,EAASlM,SAC7Es0C,EAAY,QAAWpoC,EAASJ,cAEhCqoC,EAAO,IAETA,EADe,iBAAbjoC,GAA+B8nC,EAAQ,GAAG9S,OACrCtlB,MAAM5U,OAAOgtC,EAAQ,GAAG9S,OAAQ,CAAEniB,KAAMA,EAAMD,GAAIA,EAAI8mB,SAAU7mB,IAEhE6N,EAAOinB,YAAYG,EAAQ,GAAI/O,EAAU,GAAIlmB,EAAMD,EAAI0a,EAAOsa,IAElEzS,YAAcr9B,EAAQq9B,UAE3B,IAAI5nB,EAAMzV,EAAQw1B,MAAQx1B,EAAQw1B,MAAMA,MAAQ,GAC5CxqB,EAAKyK,EAAIzK,QAAgB,IAAPA,IAAgBA,EAAK,IAC3C,IAAI0B,EAAO+I,EAAI/I,KAkDf,QAlDmC,IAATA,IAAkBA,EAAO,IAC/C1M,EAAQgL,IACV4M,MAAM5U,OAAOgI,EAAIhL,EAAQgL,IAEvBhL,EAAQ0M,MACVkL,MAAM5U,OAAO0J,EAAM1M,EAAQ0M,MA0CZ,YAAbxE,GACFqoC,IAEe,SAAbroC,EAAqB,CACvB,GAAIkoC,IAAoC,aAATr1B,IAAwBA,IAAgB,YAAPD,GAAoB8N,EAAOgiB,cAAcuF,EAAK3a,MAAM1c,OAASk3B,EAAQlnC,SAAS,qBAAsB,CAClK,IAAI0nC,EAAeR,EAAQr+B,KAAK,iBAC5B6+B,EAAax0C,OAAS,IAExBw0C,EAAeA,EAAapjC,QAAO,SAAUqjC,EAAkBC,GAC7D,OAC+D,IAA7DvpC,EAAEupC,GAAe3xC,QAAQ,yBAAyB/C,SAC9CmL,EAAEupC,GAAe/kC,GAAG,6BAI9B6kC,EAAa9hC,UAAUka,EAAOgiB,cAAcuF,EAAK3a,MAAM1c,MAGzD,GADAy3B,IACIP,EAAQ,GAAGW,kBAGb,OAFAX,EAAQjjC,QAAQ,cAAeojC,QAC/BvnB,EAAOvH,KAAK,aAAc8uB,GAG5BH,EAAQ,GAAGW,mBAAoB,EAEjC,GAAIP,GAAuC,cAAbloC,GAAqC,YAAT6S,GAA6B,aAAPD,EAAmB,CAEjG,IAAI81B,EAAiBZ,EAAQr+B,KAAK,iBAC9Bi/B,EAAe50C,OAAS,IAE1B40C,EAAiBA,EAAexjC,QAAO,SAAUqjC,EAAkBC,GACjE,OAC+D,IAA7DvpC,EAAEupC,GAAe3xC,QAAQ,yBAAyB/C,SAC9CmL,EAAEupC,GAAe/kC,GAAG,6BAI9Bid,EAAOgiB,cAAcuF,EAAK3a,MAAM1c,KAAO83B,EAAeliC,YAEpD0hC,GAAuC,cAAbloC,GAAqC,YAAT6S,GAA6B,SAAPD,UAEvE8N,EAAOgiB,cAAcuF,EAAK3a,MAAM1c,KAGzCk3B,EAAQjjC,QAAQujC,EAAWH,GAC3BvnB,EAAOvH,KAAKgvB,EAAWF,GAEN,iBAAbjoC,GAA4C,kBAAbA,IAlE5B8nC,EAAQ,GAAGa,wBACZb,EAAQ,GAAGc,iBACblyC,OAAO2B,KAAKyvC,EAAQ,GAAGc,iBAAiBryC,SAAQ,SAAUmO,GACxDojC,EAAQ3jC,IAAIuL,MAAMO,qBAAqBvL,GAAYojC,EAAQ,GAAGc,gBAAgBlkC,OAG9EojC,EAAQ,GAAGe,mBACbnyC,OAAO2B,KAAKyvC,EAAQ,GAAGe,mBAAmBtyC,SAAQ,SAAUmO,GAC1DojC,EAAQ3jC,IAAIuL,MAAMO,qBAAqBvL,GAAYojC,EAAQ,GAAGe,kBAAkBnkC,OAGpFojC,EAAQ,GAAGa,sBAAwB,KACnCb,EAAQ,GAAGc,gBAAkB,KAC7Bd,EAAQ,GAAGe,kBAAoB,YACxBf,EAAQ,GAAGa,6BACXb,EAAQ,GAAGc,uBACXd,EAAQ,GAAGe,mBAoDb7P,IACC8O,EAAQ,GAAG9S,QAAU8S,EAAQ,GAAG9S,OAAO+E,iBAClC+N,EAAQ,GAAG9S,OAAO+E,SAAS/E,OAEpC8S,EAAQ,GAAG9S,OAAS,QA5FxB,SAASqT,IACHP,EAAQ,GAAGa,wBACfb,EAAQ,GAAGa,uBAAwB,EAC/B7lC,GAAMpM,OAAO2B,KAAKyK,GAAIhP,OAAS,IACjCg0C,EAAQ,GAAGc,gBAAkB9lC,EAC7BpM,OAAO2B,KAAKyK,GAAIvM,SAAQ,SAAUmO,GAChC5B,EAAG4B,GAAa5B,EAAG4B,GAAWmJ,KAAK6S,GACnConB,EAAQhlC,GAAG4M,MAAMO,qBAAqBvL,GAAY5B,EAAG4B,QAGrDF,GAAQ9N,OAAO2B,KAAKmM,GAAM1Q,OAAS,IACrCg0C,EAAQ,GAAGe,kBAAoBrkC,EAC/B9N,OAAO2B,KAAKmM,GAAMjO,SAAQ,SAAUmO,GAClCF,EAAKE,GAAaF,EAAKE,GAAWmJ,KAAK6S,GACvConB,EAAQtjC,KAAKkL,MAAMO,qBAAqBvL,GAAYF,EAAKE,WAmFjE69B,EAAOtnC,UAAUm6B,YAAc,WAChB5iC,KACNq8B,KAAK3wB,QADC1L,KACgB0L,QADhB1L,KAEFyZ,OAAO7N,YAChBN,IAAIgrC,aAAc,YAHPt2C,KAG6Bq8B,KAAO,GAAI,YAAez4B,KAAKC,UAH5D7D,KAG6E0L,WAI5FqkC,EAAOtnC,UAAU8tC,eAAiB,WACnBv2C,KACFyZ,OAAO7N,WAAaN,IAAIgrC,aAAc,YADpCt2C,KAC0Dq8B,KAAO,GAAI,cADrEr8B,KAEJ0L,QAAU9H,KAAK6tB,MAAMnmB,IAAIgrC,aAAc,YAFnCt2C,KAEyDq8B,KAAO,GAAI,aAFpEr8B,KAGJq8B,KAAK3wB,QAHD1L,KAGkB0L,UAIjCqkC,EAAOtnC,UAAU+tC,aAAe,WACjBx2C,KACN0L,QAAU,GADJ1L,KAEFq8B,OAFEr8B,KAEaq8B,KAAK3wB,QAAU,IAF5B1L,KAGN4iC,eAGTmN,EAAOtnC,UAAUguC,iBAAmB,SAA2BC,GAE7DzS,eADajkC,KACU,oBADVA,KAGF0L,QAAQpK,OAHNtB,KAIJ0L,QAJI1L,KAIW0L,QAAQpK,OAAS,GAAKo1C,EAJjC12C,KAMJ0L,QAAQhK,KAAKg1C,GAItB,IAAI37B,EAVS/a,KAUIypC,cAAciN,GAC3Bp4B,EAAQvD,EAAIuD,MACZtc,EAAO+Y,EAAI/Y,KACXyX,EAASsB,EAAItB,OACb2E,EAAMrD,EAAIqD,IACVwa,EAAO7d,EAAI6d,KAWf,GA1Ba54B,KAgBFuiC,cACTrlB,MAAM5U,OAjBKtI,KAiBSuiC,aAAc,CAChCjkB,MAAOA,EACPtc,KAAMA,EACNyX,OAAQA,EACR2E,IAAKA,EACLwa,KAAMA,IAtBG54B,KA0BFyZ,OAAO7N,UAAW,CAC3B,IAAIk8B,EA3BO9nC,KA2BgByZ,OAAOquB,eAAiB,GACnD1M,QAAQv6B,QA5BGb,KA6BFq8B,KAAK1uB,GACZ,CACEyQ,IAAKs4B,GAEP5O,EAjCS9nC,KAiCcyZ,OAAOsuB,mBAAqB2O,GAjC1C12C,KAsCN4iC,cAtCM5iC,KAwCN2mB,KAAK,iBAxCC3mB,KAwCwBuiC,aAxCxBviC,OA2Cf+vC,EAAOtnC,UAAU8jB,KAAO,WACtB,IAAI2B,EAASluB,KACTkpB,EAAMgF,EAAOhF,IACbmT,EAAOnO,EAAOmO,MAIfA,GAAQnO,EAAOzU,OAAOk9B,cAA8B,QAAdztB,EAAI/C,OACvCkW,GAAQnO,EAAOzU,OAAOm9B,aAA6B,OAAd1tB,EAAI/C,OACzCkW,GAAQnO,EAAOzU,OAAOo9B,iBAAiC,WAAd3tB,EAAI/C,QAEjDyW,UAAU1O,GAGZ,IAEI4oB,EAkDAvU,EApDAwU,EAAU7oB,EAAOzU,OAAO2E,IACxB44B,EAAcxtC,IAAIsB,SAASG,KAAK7J,MAAMoI,IAAIsB,SAASI,QAAQ,GAE3D6P,EAAMmT,EAAOzU,OACb7N,EAAYmP,EAAInP,UAChBqrC,EAAkBl8B,EAAIk8B,gBACtBlP,EAAqBhtB,EAAIgtB,mBACzBmP,EAAyBn8B,EAAIm8B,uBAE7BpP,EADQ5Z,EAAOzU,OACOquB,cA8E1B,GA7EIx8B,IAAI4Z,SAAWtZ,IAAcm8B,IAAuBD,GAAiBt+B,IAAIsB,SAASK,SAASxJ,QAAQ,gBAErGw1C,QAAQC,KAAK,4FACbtP,EAAgBt+B,IAAIsB,SAASK,SAAS/J,MAAM,cAAc,IAEvDwK,GAAcqrC,GAWbnP,GAAiBkP,EAAYr1C,QAAQmmC,IAAkB,GAErC,MADpBkP,EAAcA,EAAY51C,MAAM0mC,GAAe,MACrBkP,EAAc,KAGxCD,EADEhP,EAAmBzmC,OAAS,GAAK01C,EAAYr1C,QAAQomC,IAAuB,EACpEiP,EAAY51C,MAAM2mC,GAAoB,GAEtCiP,EAEZ9oB,EAAOqoB,iBACHroB,EAAOxiB,QAAQ/J,QAAQo1C,IAAY,EACrC7oB,EAAOxiB,QAAUwiB,EAAOxiB,QAAQ7I,MAAM,EAAGqrB,EAAOxiB,QAAQ/J,QAAQo1C,GAAW,GAClE7oB,EAAOzU,OAAO2E,MAAQ24B,EAC/B7oB,EAAOxiB,QAAU,CAACqrC,GACT3b,QAAQa,OAASb,QAAQa,MAAMI,EAAK1uB,KAAOytB,QAAQa,MAAMI,EAAK1uB,IAAIyQ,MAAQ8P,EAAOxiB,QAAQwiB,EAAOxiB,QAAQpK,OAAS,GAC1Hy1C,EAAU7oB,EAAOxiB,QAAQwiB,EAAOxiB,QAAQpK,OAAS,GAEjD4sB,EAAOxiB,QAAU,CAACsrC,EAAY51C,MAAM2mC,GAAoB,IAAM,IAAKgP,GAEjE7oB,EAAOxiB,QAAQpK,OAAS,EAC1Bw1C,GAAkB,EAElB5oB,EAAOxiB,QAAU,GAEnBwiB,EAAO0U,gBAlCFmU,IACHA,EAAUC,GAERxtC,IAAIsB,SAASO,QAAU0rC,EAAQp1C,QAAQ,KAAO,IAChDo1C,GAAWvtC,IAAIsB,SAASO,QAEtB7B,IAAIsB,SAAS9I,MAAQ+0C,EAAQp1C,QAAQ,KAAO,IAC9Co1C,GAAWvtC,IAAIsB,SAAS9I,OA8BxBksB,EAAOxiB,QAAQpK,OAAS,GAE1BihC,EAAerU,EAAO4X,kBAAkB5X,EAAOxiB,QAAQ,OAErD62B,EAAerlB,MAAM5U,OAAO4lB,EAAOub,cAAcvb,EAAOxiB,QAAQ,IAAK,CACnEovB,MAAO,CACL1c,IAAK8P,EAAOxiB,QAAQ,GACpBktB,KAAM1K,EAAOxiB,QAAQ,GAAGtK,MAAM,KAAK,QAMzCmhC,EAAerU,EAAO4X,kBAAkBiR,MAEtCxU,EAAerlB,MAAM5U,OAAO4lB,EAAOub,cAAcsN,GAAU,CACzDjc,MAAO,CACL1c,IAAK24B,EACLne,KAAMme,EAAQ31C,MAAM,KAAK,OAM7B8sB,EAAOzU,OAAOopB,YAChB3U,EAAO5E,IAAI/e,SAAS,SAASjE,MAAK,SAAUK,EAAO+/B,GACjD,IAAI4O,EAAU7oC,EAAEi6B,GAChBxY,EAAO4U,aAAaphC,KAAK4zC,EAAQ,IAC7BpnB,EAAO+O,eAAiBqY,EAAQ/qC,SAAS,WAAWjJ,OAAS,GAC/D4sB,EAAOkiB,eAAe1uC,KAAK4zC,EAAQ/qC,SAAS,WAAW,OAKH,IAAtD2jB,EAAO5E,IAAI/e,SAAS,uBAAuBjJ,QAAgBy1C,GAAW7oB,EAAOzU,OAAO49B,gBAEtFnpB,EAAO4N,SAASib,EAAS,CACvBzT,SAAS,EACToB,eAAe,EACf94B,WAAW,SAER,GAAIsiB,EAAO5E,IAAI/e,SAAS,uBAAuBjJ,OAAQ,CAE5D,IAAIg2C,EACJppB,EAAOqU,aAAeA,EACtBrU,EAAO5E,IAAI/e,SAAS,uBAAuBjE,MAAK,SAAUK,EAAO+/B,GAC/D,IACIH,EADA+O,EAAU7oC,EAAEi6B,GAEhBxY,EAAOua,gBAAgB6M,EAAS,WAC5BpnB,EAAO+O,iBACTsJ,EAAY+O,EAAQ/qC,SAAS,YACfjJ,OAAS,GAChB4sB,EAAOmP,WAAWh5B,QAAQmF,KAAKlI,QAClC4sB,EAAO5E,IAAIxT,QAAQoY,EAAOmP,YAE5BnP,EAAOoU,kBAAkBiE,EAAW,WACpCrY,EAAOmP,WAAW9nB,OAAOgxB,GACrBA,EAAUh8B,SAAS,gBAAgBjJ,QACrCilC,EAAU14B,SAAS,gBAErBynC,EAAQ/qC,SAAS,WAAW4D,WAE5B+f,EAAOmP,WAAWxvB,SAAS,iBACvB04B,EAAUh8B,SAAS,gBAAgBjJ,QACrC4sB,EAAOmP,WAAWxvB,SAAS,uCAI7BqgB,EAAOqU,cAAgBrU,EAAOqU,aAAazH,OAAS5M,EAAOqU,aAAazH,MAAMyK,QAAUrX,EAAOzU,OAAOolB,uBAAyB,IACjIyW,EAAQznC,SAAS,eACjBynC,EAAQjjC,QAAQ,YAAa,CAAE80B,KAAM,WACjCZ,GAAaA,EAAUjlC,QACzBilC,EAAU14B,SAAS,iBAErBwuB,EAAKmM,+BAEP,IAAI+O,EAAc,CAChBzc,MAAO5M,EAAOqU,cAEZrU,EAAOqU,cAAgBrU,EAAOqU,aAAazH,OAAS5M,EAAOqU,aAAazH,MAAMx1B,SAChF4X,MAAM5U,OAAOivC,EAAarpB,EAAOqU,aAAazH,MAAMx1B,SAEtD4oB,EAAOyT,cAAgB2T,EAAQ,GAC3BpnB,EAAO+O,eAAiBsJ,EAAUjlC,SACpC4sB,EAAO2T,gBAAkB0E,EAAU,IAErCrY,EAAOoY,oBAAoBgP,GACvBpnB,EAAO+O,eAAiBsJ,EAAUjlC,QACpC4sB,EAAOoY,oBAAoBC,GAEzBgR,EAAYzc,MAAMA,MAAMwN,MAC1BgP,GAAc,EACdppB,EAAOqa,QAAQgP,EAAYzc,MAAMA,MAAMwN,IAAKprB,MAAM5U,OAAO,GAAIivC,KAE/DrpB,EAAOwU,aAAa,OAAQ4S,EAAS/O,EAAW,eAAWpmC,EAAWo3C,MAEpET,GACF5oB,EAAO4N,SAASib,EAAS,CACvBzT,SAAS,EACT13B,WAAW,EACXF,SAAS,EACT0N,QAAS89B,EACTllC,KAAM,CACJq5B,YAAa,YACend,EAAOzU,OAAOypB,qBAAuBhV,EAAOzU,OAASyP,EAAS,MAAI,eACjEgF,EAAOxiB,QAAQpK,OAAS,GACjD4sB,EAAOpiB,KAAK,CAAEq3B,SAAS,QAM5B2T,GAAoBQ,IACvBppB,EAAOxiB,QAAQhK,KAAKq1C,GACpB7oB,EAAO0U,iBAGPmU,GAAWnrC,GAAaqrC,IAAqB7b,QAAQa,OAAUb,QAAQa,MAAMI,EAAK1uB,KACpFytB,QAAQoB,cAAcH,EAAK1uB,GAAI,CAC7ByQ,IAAK24B,IAGT7oB,EAAOvH,KAAK,yBAA0BuH,IAGxC6hB,EAAOtnC,UAAU8gB,QAAU,WACzB,IAAI2E,EAASluB,KAEbkuB,EAAOvH,KAAK,+BAAgCuH,GAG5ChqB,OAAO2B,KAAKqoB,GAAQnqB,SAAQ,SAAUyzC,GACpCtpB,EAAOspB,GAAc,YACdtpB,EAAOspB,MAGhBtpB,EAAS,MAGJ6hB,EArtCiB,CAstCxB9oB,iBAGF8oB,OAAOtnC,UAAUk8B,QAAUA,QAC3BoL,OAAOtnC,UAAUqgC,KAAOA,KACxBiH,OAAOtnC,UAAUqzB,SAAWA,SAC5BiU,OAAOtnC,UAAU+7B,YAAcA,YAE/BuL,OAAOtnC,UAAU8/B,QAAUA,QAC3BwH,OAAOtnC,UAAU+jC,UAAYA,UAE7BuD,OAAOtnC,UAAUsiC,UAAYA,UAC7BgF,OAAOtnC,UAAUs9B,YAAcA,YAE/BgK,OAAOtnC,UAAUylC,SAAWA,SAC5B6B,OAAOtnC,UAAUqmC,SAAWA,SAC5BiB,OAAOtnC,UAAUqD,KAAOA,KAExBikC,OAAOtnC,UAAU08B,qBAAuBA,qBAExC,IAAIsS,aAAe,CACjBjzC,KAAM,SACNmkB,OAAQ,CACNonB,OAAQA,QAEV7nC,SAAU,CACRgnB,MAAO,CACL5D,IAAK,GACLosB,UAAW,GACXtwB,WAAY,KAGhBD,OAAQ,WACSnnB,KACFkpB,IADElpB,KAGAyZ,OAAOyU,SAHPluB,KAIFkuB,OAAS,IAAI6hB,OAJX/vC,KAI2BkpB,IAJ3BlpB,OAAAA,KAQJkuB,OAAS,IAAI6hB,OART/vC,QAanB,SAAS23C,cAActb,GACrB,IAAInT,EAAMmT,EAAKnT,IACf,IAAImT,EAAKub,qBAAT,CACA16B,MAAM5U,OAAO+zB,EAAM,CACjBwb,WAAW,EACXC,eAAgB,KAChBF,sBAAsB,IAExB,IAAIG,EAAUtrC,EAAE,QACZ6c,EAAM+S,EAAK/S,IACf,GAAKA,EAAL,CAEA,IAAI0uB,EAEA1a,EACA3J,EAEAoJ,EACA/pB,EAEAilC,EACAC,EALA3a,EAAe,IA6FnBya,EAAmB3b,EAAK/S,IAAI/e,SAAS,yBACfjJ,SACpB+6B,EAAK/S,IAAI/T,OAAO,2CAChByiC,EAAmB3b,EAAK/S,IAAI/e,SAAS,yBAEvC8xB,EAAK2b,iBAAmBA,EAExB1uB,EAAIzb,SAAS,kBAGb,IAAIqoB,IAAU7S,QAAQO,iBAAkB,CAAEsS,SAAS,GAEnDmG,EAAK/S,IAAIhZ,GAAG4Y,EAAIoN,YAAYC,MAAO,uBAAwBmI,EAAkBxI,GAC7EhN,EAAI5Y,GAAG,mBAAoBwuB,GAC3B5V,EAAI5Y,GAAG,mBAAoB4xB,GAC3BhZ,EAAI5Y,GAAG,SAAU6nC,GACjB9b,EAAK/rB,GAAG,aAAc6nC,GAEtB9b,EAAKrqB,KAAK,eAAe,WACvBsX,EAAIpb,YAAY,kBAChBmuB,EAAK2b,iBAAiB7pC,SACtBkuB,EAAK/S,IAAI3X,IAAIuX,EAAIoN,YAAYC,MAAO,uBAAwBmI,EAAkBxI,GAC9EhN,EAAIvX,IAAI,mBAAoBmtB,GAC5B5V,EAAIvX,IAAI,mBAAoBuwB,GAC5BhZ,EAAIvX,IAAI,SAAUwmC,GAClB9b,EAAK1qB,IAAI,aAAcwmC,OA/GzB,SAASC,EAAkBC,GACzB,IAAKA,EAAK,OAAO,KACjB,GAAIA,EAAE12C,QAAQ,MAAQ,GAAK02C,EAAE12C,QAAQ,OAAS,EAC5C,OAAO6f,SAAS62B,EAAG,IAAM,IAAMnvB,EAAIlW,MAErC,IAAIslC,EAAO92B,SAAS62B,EAAG,IACvB,OAAIvzC,OAAOsd,MAAMk2B,GAAgB,KAC1BA,EAOT,SAAS5Z,EAAiB7tB,GACxB,GAJOwrB,EAAKwb,WAAavuB,EAAIlb,SAAS,mBAAqBkb,EAAIlb,SAAS,sBAIxE,CACAmvB,EAAapb,EAAe,eAAXtR,EAAExO,KAAwBwO,EAAEomB,cAAc,GAAGG,MAAQvmB,EAAEumB,MACxEmG,EAAazI,EAAe,eAAXjkB,EAAExO,KAAwBwO,EAAEomB,cAAc,GAAGI,MAAQxmB,EAAEwmB,MACxE1D,GAAU,EACV2J,GAAY,EACZ,IAAIib,EAAgBjvB,EAAI/e,SAAS,gBACjC0tC,EAAWG,EAAkBG,EAAcrlC,IAAI,cAC/CglC,EAAWE,EAAkBG,EAAcrlC,IAAI,eAEjD,SAAS4rB,EAAgBjuB,GACvB,GAAKysB,EAAL,CACAzsB,EAAE0wB,qBAAsB,EACxB,IAAInK,EAAmB,cAAXvmB,EAAExO,KAAuBwO,EAAEomB,cAAc,GAAGG,MAAQvmB,EAAEumB,MAE7DzD,IACH3gB,EAAQglC,EAAiB,GAAG3G,WAAa2G,EAAiB,GAAG1kC,YAC7DgW,EAAIzb,SAAS,iBACbkqC,EAAQ7kC,IAAI,SAAU,eAGxBygB,GAAU,EAEV9iB,EAAEmmB,iBAEF+F,EAAe3F,EAAQmG,EAAapb,EAEpC,IAAIq2B,EAAWxlC,EAAQ+pB,EACnBkb,IAAanzC,OAAOsd,MAAM61B,KAC5BO,EAAWlgC,KAAKC,IAAIigC,EAAUP,IAE5BC,IAAapzC,OAAOsd,MAAM81B,KAC5BM,EAAWlgC,KAAKE,IAAIggC,EAAUN,IAEhCM,EAAWlgC,KAAKE,IAAIF,KAAKC,IAAIigC,EAAU,GAAItvB,EAAIlW,OAE/CqpB,EAAKyb,eAAiBU,EACtBT,EAAQ,GAAGttC,MAAMonC,YAAY,yBAA2B2G,EAAW,MAEnElvB,EAAIjX,QAAQ,cAAemmC,GAC3Bnc,EAAK1V,KAAK,2BAA4B0V,EAAMmc,IAE9C,SAAStW,IAEP,GADAz1B,EAAE,QAAQyG,IAAI,SAAU,KACnBoqB,IAAc3J,EAGjB,OAFA2J,GAAY,OACZ3J,GAAU,GAGZ2J,GAAY,EACZ3J,GAAU,EAEVokB,EAAQ,GAAGttC,MAAMonC,YAAY,yBAA4BxV,EAAmB,eAAI,MAChF/S,EAAIpb,YAAY,iBAGlB,SAASiqC,IACF9b,EAAKyb,iBACVG,EAAWG,EAAkBJ,EAAiB9kC,IAAI,cAClDglC,EAAWE,EAAkBJ,EAAiB9kC,IAAI,cAE9C+kC,IAAanzC,OAAOsd,MAAM61B,IAAa5b,EAAKyb,eAAiBG,IAC/D5b,EAAKyb,eAAiBx/B,KAAKC,IAAI8jB,EAAKyb,eAAgBG,IAElDC,IAAapzC,OAAOsd,MAAM81B,IAAa7b,EAAKyb,eAAiBI,IAC/D7b,EAAKyb,eAAiBx/B,KAAKE,IAAI6jB,EAAKyb,eAAgBI,IAEtD7b,EAAKyb,eAAiBx/B,KAAKE,IAAIF,KAAKC,IAAI8jB,EAAKyb,eAAgB,GAAI5uB,EAAIlW,OAErE+kC,EAAQ,GAAGttC,MAAMonC,YAAY,yBAA4BxV,EAAmB,eAAI,QAgCpF,IAAIoc,KAAqB,SAAUxxB,GACjC,SAASwxB,EAAKC,EAAaxpC,EAAIypC,QACT,IAAfA,IAAwBA,EAAa,IAE1C1xB,EAAgB/gB,KAAKlG,KAAM24C,EAAY,CAACD,IAExC,IA6BIhsC,EAQA2wB,EAyCAZ,EA9EAvT,EAAMwvB,EACNpvB,EAAM7c,EAAEyC,GACRmtB,EAAOr8B,KAOX,GAAmB,IAAfspB,EAAIhoB,OAAc,CACpB,IAAI+wB,EAAU,oDAKd,MAAM,IAAIrsB,MAJVqsB,GAA0B,iBAAPnjB,EACd,iBAAoBA,EAAK,8BAC1B,4CAoFN,OA9EAmtB,EAAK5iB,OAASyD,MAAM5U,OAfL,CACb+jB,OAAQ,GACRusB,UAAW,IAawB1vB,EAAIzP,OAAO4iB,KAAMsc,GAGlDtc,EAAK5iB,OAAO4S,OAAO/qB,OAAS,EAC9B+6B,EAAKhQ,OAASgQ,EAAK5iB,OAAO4S,OAE1BgQ,EAAKhQ,OAAS,GAAGlR,OAAO+N,EAAImD,OAAQgQ,EAAK5iB,OAAOm/B,WAKpBlsC,EAAZ,iBAAPwC,EAA8BA,GAG3Boa,EAAI9a,KAAK,MAAS,IAAO8a,EAAI9a,KAAK,MAAU,KAAO8a,EAAI9a,KAAK,SAAY,IAAO8a,EAAI9a,KAAK,SAAS3N,QAAQ,KAAM,KAAKA,QAAQ,UAAW,IAAQ,IAK3I,QAAdqoB,EAAI/C,OAAmBkW,EAAK5iB,OAAO02B,kBAEX,KAD1B9S,EAAa/T,EAAI/e,SAAS,YAAY8K,GAAG,IAC1B/T,SACb+7B,EAAa5wB,EAAE,gCAKnByQ,MAAM5U,QAAO,EAAO+zB,EAAM,CACxBnT,IAAKA,EACLI,IAAKA,EACLpa,GAAIoa,EAAI,GACR9kB,KAAM63B,EAAK5iB,OAAOjV,KAClBq0C,KAAMxc,EAAK5iB,OAAOo/B,MAAQvvB,EAAIlb,SAAS,aACvCivB,WAAYA,EACZ4S,UAAW5S,EAAaA,EAAW,QAAKl9B,EACxCuM,SAAUA,EACVhB,QAAS,GACTwkC,cAAe,KAIjB5mB,EAAI,GAAGwvB,OAASzc,EAGhBA,EAAKhU,aAGLa,EAAIkT,MAAM16B,KAAK26B,GACXA,EAAKwc,OACP3vB,EAAIkT,MAAMyc,KAAOxc,GAEfA,EAAK73B,OACP0kB,EAAIkT,MAAMC,EAAK73B,MAAQ63B,GAIzBA,EAAK11B,MAAQuiB,EAAIkT,MAAMz6B,QAAQ06B,GAK7BI,EADEJ,EAAK73B,KACE,QAAW63B,EAAS,KACpBA,EAAKwc,KACL,YAEA,QAAWxc,EAAU,MAEhCA,EAAK1uB,GAAK8uB,EAGNvT,EAAIqF,YACN8N,EAAK9P,OAELrD,EAAI5Y,GAAG,QAAQ,WACb+rB,EAAK9P,UAIF8P,EAuFT,OApFKpV,IAAkBwxB,EAAKvxB,UAAYD,GACxCwxB,EAAKhwC,UAAYvE,OAAOijB,OAAQF,GAAmBA,EAAgBxe,WACnEgwC,EAAKhwC,UAAUxE,YAAcw0C,EAE7BA,EAAKhwC,UAAU8gB,QAAU,WACvB,IAAI8S,EAAOr8B,KACPkpB,EAAMmT,EAAKnT,IAEfmT,EAAK/S,IAAIjX,QAAQ,sBACjBgqB,EAAK1V,KAAK,yCAA0C0V,GAEpDnT,EAAIvX,IAAI,SAAU0qB,EAAKmM,6BAEnBnM,EAAKwc,MACP3vB,EAAIkT,MAAMyc,KAAO,YACV3vB,EAAIkT,MAAMyc,MACRxc,EAAK73B,OACd0kB,EAAIkT,MAAMC,EAAK73B,MAAQ,YAChB0kB,EAAIkT,MAAMC,EAAK73B,OAExB63B,EAAK/S,IAAI,GAAGwvB,OAAS,YACdzc,EAAK/S,IAAI,GAAGwvB,OAEnB5vB,EAAIkT,MAAMrqB,OAAOmX,EAAIkT,MAAMz6B,QAAQ06B,GAAO,GAGtCA,EAAK5iB,OAAOyU,QAAUmO,EAAKnO,QAC7BmO,EAAKnO,OAAO3E,UAGd8S,EAAK1V,KAAK,6BAA8B0V,GAGxCn4B,OAAO2B,KAAKw2B,GAAMt4B,SAAQ,SAAUg1C,GAClC1c,EAAK0c,GAAY,YACV1c,EAAK0c,MAGd1c,EAAO,MAGToc,EAAKhwC,UAAU+/B,4BAA8B,SAAsC+F,GACjF,IACIrlB,EADOlpB,KACIkpB,IACX8vB,EAFOh5C,KAEgBspB,IAAIlb,SAAS,sBACpC6qC,EAAiB/vB,EAAIlW,OAHdhT,KAG4ByZ,OAAOolB,wBAHnC7+B,KAGkEspB,IAAI/e,SAAS,gBAAgBjJ,YACpF,IAAVitC,GAAyB0K,IAA6B,IAAV1K,GAJ7CvuC,KAKJspB,IAAIzb,SAAS,sBACbmrC,IANIh5C,KAOF2mB,KAAK,2DAPH3mB,MAAAA,KAQFspB,IAAIjX,QAAQ,kCARVrS,KAWJspB,IAAIpb,YAAY,sBACjB8qC,IAZKh5C,KAaF2mB,KAAK,2DAbH3mB,MAAAA,KAcFspB,IAAIjX,QAAQ,kCAKvBomC,EAAKhwC,UAAUywC,iBAAmB,WAChC,IACIhwB,EADOlpB,KACIkpB,IADJlpB,KAENwoC,4BAFMxoC,KAE6BwoC,4BAA4BntB,KAFzDrb,MAAAA,KAGNwoC,8BAHMxoC,KAIFyZ,OAAO0/B,uBACdxB,cALS33C,MAOXkpB,EAAI5Y,GAAG,SAPItQ,KAOWwoC,8BAGxBiQ,EAAKhwC,UAAU8jB,KAAO,WACTvsB,KACFyZ,OAAOyU,SADLluB,KAEAyZ,OAAOolB,uBAAyB,GAFhC7+B,KAGFk5C,mBAHEl5C,KAKJkuB,OAAO3B,OALHvsB,KAMJspB,IAAIjX,QAAQ,aANRrS,KAOJ2mB,KAAK,uBAPD3mB,QAWNy4C,EA9Le,CA+LtBxxB,iBAKF,SAASmyB,WAAWlwB,GAmFlBA,EAAI5Y,GAAG,SAlFP,SAAsBO,GACpB,IAAIwoC,EAAa5sC,EAAEoE,EAAEtI,QACjB+wC,EAAiBD,EAAWriC,QAAQ,KACpCuiC,EAASD,EAAeh4C,OAAS,EACjC8c,EAAMm7B,GAAUD,EAAe9qC,KAAK,QAIxC,GAAI+qC,IAEED,EAAeroC,GAAGiY,EAAIzP,OAAO+/B,OAAOC,gBAAmBr7B,GAAOA,EAAIzc,QAAQ,gBAAkB,GAFlG,CAGI,IAAI4G,EAAS+wC,EAAe9qC,KAAK,UAE/B4P,GACG9S,IAAI4Z,SACJ5Z,IAAI4Z,QAAQw0B,eACA,YAAXnxC,GAAmC,WAAXA,KAE5BsI,EAAEmmB,iBACF1rB,IAAI4Z,QAAQw0B,aAAajwB,KAAKrL,EAAK7V,QAXzC,CAkBArE,OAAO2B,KAAKqjB,EAAIxB,SAAS3jB,SAAQ,SAAU4jB,GACzC,IAAIgyB,EAAezwB,EAAIxB,QAAQC,GAAY6xB,OACtCG,IACD9oC,EAAE+oC,iBACN11C,OAAO2B,KAAK8zC,GAAc51C,SAAQ,SAAU81C,GAC1C,IAAIC,EAAyBT,EAAWriC,QAAQ6iC,GAAexkC,GAAG,GAC9DykC,EAAuBx4C,OAAS,GAClCq4C,EAAaE,GAAe3zC,KAAKgjB,EAAK4wB,EAAwBA,EAAuBxqC,UAAWuB,UAMtG,IAAIkpC,EAAkB,GAOtB,GANIR,IACF1oC,EAAEmmB,iBACF+iB,EAAkBT,EAAehqC,YAI/BuB,EAAE+oC,gBACN,IAAIN,EAAelrC,SAAS,oBAAqBkrC,EAAelrC,SAAS,kBAGzE,GADegQ,GAAOA,EAAI9c,OAAS,GAAgB,MAAX8c,EAAI,IAC5Bk7B,EAAelrC,SAAS,QAAS,CAC/C,IAAIiuB,EAeJ,GAdI0d,EAAgB1d,MAAiC,YAAzB0d,EAAgB1d,KAC1CA,EAAOnT,EAAIkT,MAAM4d,QACRD,EAAgB1d,KACzBA,EAAO5vB,EAAEstC,EAAgB1d,MAAM,GAAGyc,QAElCzc,EAAOgd,EAAWh1C,QAAQ,SAAS,IAAMg1C,EAAWh1C,QAAQ,SAAS,GAAGy0C,QACnEQ,EAAelrC,SAAS,SAAWiuB,GAAQA,EAAK5iB,OAAOwgC,YACrB,iBAA1B5d,EAAK5iB,OAAOwgC,UAA0B5d,EAAO5vB,EAAE4vB,EAAK5iB,OAAOwgC,WAAW,GAAGnB,OAC3Ezc,EAAK5iB,OAAOwgC,qBAAqBxB,OAAQpc,EAAOA,EAAK5iB,OAAOwgC,aAGpE5d,GACCnT,EAAIkT,MAAMyc,OAAQxc,EAAOnT,EAAIkT,MAAMyc,OAEpCxc,IAASA,EAAKnO,OAAU,OAC7B,GAAI6rB,EAAgBh0C,SAA8C,iBAA5Bg0C,EAAgBh0C,QACpD,IACEg0C,EAAgBh0C,QAAUnC,KAAK6tB,MAAMsoB,EAAgBh0C,SACrD,MAAOimB,IAIPstB,EAAe,GAAGY,eACpBH,EAAgB/qC,MAAQsqC,EAAe,GAAGY,cAExCZ,EAAelrC,SAAS,QAAWiuB,EAAKnO,OAAOpiB,KAAKsS,EAAK27B,GACtD1d,EAAKnO,OAAO4N,SAAS1d,EAAK27B,QAjFvCtB,KAAKjwB,IAAIivB,cAuFT,IAAI0C,aAAe,CACjB31C,KAAM,SACNiV,OAAQ,CACN+/B,OAAQ,CAENC,cAAe,cAGnBnpC,GAAI,CACFic,KAAM,WAEJ6sB,WADUp5C,SAMZo6C,cAAgB,CAClB51C,KAAM,UACNmkB,OAAQ,CACNjd,QAAS0vB,SAEX9qB,GAAI,CACFic,KAAM,WACJ6O,QAAQ7O,KAAKvsB,SAKfq6C,GAAK,CACPC,cAAe,GACfC,SAAU,SAAkB3hB,EAAM4hB,GAChC,IAAItxB,EAAMlpB,KACV,MAAM,kBAAmBsL,IAAIE,WAAe0d,EAAIuxB,cAAcjgC,UAKvD,IAAI6P,SAAQ,SAAUC,EAASC,GACpCrB,EAAIuxB,cAAcjgC,UAAU+/B,SAAS3hB,EAAO4hB,EAAQ,CAAEA,MAAOA,GAAU,IACpE1uB,MAAK,SAAU4uB,GACdL,GAAGC,cAAc54C,KAAKg5C,GACtBxxB,EAAIvC,KAAK,+BAAgC+zB,GACzCpwB,EAAQowB,MACP3uB,OAAM,SAAUoG,GACjBjJ,EAAIvC,KAAK,6BAA8BwL,GACvC5H,EAAO4H,SAZJ,IAAI9H,SAAQ,SAAUC,EAASC,GACpCA,EAAO,IAAIvkB,MAAM,wCAevB20C,WAAY,SAAoBC,GAC9B,IAMIN,EANApxB,EAAMlpB,KACV,MAAM,kBAAmBsL,IAAIE,WAAe0d,EAAIuxB,cAAcjgC,WAOtB8/B,EADnCM,EACI93C,MAAMC,QAAQ63C,GAAiCA,EACjC,CAACA,GAFaP,GAAGC,cAGjCjwB,QAAQwB,IAAIyuB,EAAc3lC,KAAI,SAAU+lC,GAAO,OAAO,IAAIrwB,SAAQ,SAAUC,EAASC,GAC1FmwB,EAAIC,aACD7uB,MAAK,WACAuuB,GAAGC,cAAc34C,QAAQ+4C,IAAQ,GACnCL,GAAGC,cAAcvoC,OAAOsoC,GAAGC,cAAc34C,QAAQ+4C,GAAM,GAEzDxxB,EAAIvC,KAAK,iCAAkC+zB,GAC3CpwB,OAEDyB,OAAM,SAAUoG,GACfjJ,EAAIvC,KAAK,+BAAgC+zB,EAAKvoB,GAC9C5H,EAAO4H,cAnBJ,IAAI9H,SAAQ,SAAUC,EAASC,GACpCA,EAAO,IAAIvkB,MAAM,yCAwBrB60C,oBAAsB,CACxBr2C,KAAM,KACNiV,OAAQ,CACNghC,cAAe,CACb7hB,UAAMz4B,EACNq6C,WAAOr6C,IAGXgnB,OAAQ,WAENjK,MAAM5U,OADItI,KACQ,CAChBy6C,cAAe,CACbjgC,UAAY,kBAAmBlP,IAAIE,UAAaF,IAAIE,UAAUivC,mBAAgBt6C,EAC9Em6C,cAAeD,GAAGC,cAClBC,SAAUF,GAAGE,SAASl/B,KALhBrb,MAMN26C,WAAYN,GAAGM,WAAWt/B,KANpBrb,UAUZsQ,GAAI,CACFic,KAAM,WACJ,GAAM,kBAAmBjhB,IAAIE,UAA7B,CACA,IAAI0d,EAAMlpB,KACV,GAAKkpB,EAAIuxB,cAAcjgC,UAAvB,CACA,IAAI8f,EAAQpR,EAAIzP,OAAOghC,cAAc7hB,KACjC4hB,EAAQtxB,EAAIzP,OAAOghC,cAAcD,MACrC,GAAKlgB,KAAUx3B,MAAMC,QAAQu3B,IAAWA,EAAMh5B,SAC7BwB,MAAMC,QAAQu3B,GAASA,EAAQ,CAACA,IACtCv2B,SAAQ,SAAU60B,GAC3B1P,EAAIuxB,cAAcF,SAAS3hB,EAAM4hB,WAMrCM,UAAY,CACdxmC,KAAM,WACA4P,OAAOgB,SAAW5Z,IAAIyvC,WACxBzvC,IAAIyvC,UAAUzmC,QAGlBE,KAAM,WACA0P,OAAOgB,SAAW5Z,IAAIyvC,WACxBzvC,IAAIyvC,UAAUvmC,QAGlBwmC,QAAS,WACP,IACIjR,GAGFA,EAFEt9B,EAAE,mBAAmBnL,OAAS,EAElBmL,EAAE,mBAAmBwK,KAAK,0DAA0DA,KAAK,iBAC9FxK,EAAE,mBAAmBnL,OAAS,EAEzBmL,EAAE,mBAAmBwK,KAAK,0DAA0DA,KAAK,iBAC9FxK,EAAE,6BAA6BnL,OAAS,EAEnCmL,EAAE,6BAA6BwK,KAAK,0DAA0DA,KAAK,iBACxGxK,EAAE,UAAUnL,OAAS,EAChBmL,EAAE,UAAUwK,KAAK,0DAA0DA,KAAK,iBAZtFjX,KAcU8F,KAAKyE,SAAS,SAAS0M,KAAK,0DAA0DA,KAAK,mBAG5F8yB,EAAYzoC,OAAS,IAElCyoC,EAAY37B,SAAS,SACvB27B,EAAcA,EAAYl0B,OAAO,SAAStL,SAAS,6BAEjDw/B,EAAYzoC,OAAS,GAAKyoC,EAAY/1B,UAAU,EAAG,OAG3DinC,aAAc,SAAsBC,GAC9Bh3B,OAAOgB,SAAW5Z,IAAIyvC,YACV,UAAVG,EACF5vC,IAAIyvC,UAAUI,oBAEd7vC,IAAIyvC,UAAUK,iBAIpBC,mBAAoB,SAA4BH,GAC1Ch3B,OAAOgB,SAAW5Z,IAAIyvC,WACxBzvC,IAAIyvC,UAAUO,2BAA2BJ,IAG7CK,UAAW,WACT,SAAIr3B,OAAOgB,UAAW5Z,IAAIyvC,YACjBzvC,IAAIyvC,UAAUQ,WAIzBC,gBAAiB,SAAyBC,QACtB,IAAbA,IAAsBA,GAAW,GAElCv3B,OAAOgB,SAAW5Z,IAAIyvC,WACxBzvC,IAAIyvC,UAAUS,gBAAgBC,IAGlClvB,KAAM,WACJ,IACI9S,EADMzZ,KACOyZ,OAAOiiC,UACnBjiC,EAAOkiC,UAERz3B,OAAOgB,SAAW5Z,IAAIyvC,YACpBthC,EAAOmiC,kBACTnvC,EAAEnB,KAAKgF,GAAG,YAAawqC,UAAUE,QAAQ3/B,KANnCrb,OAQJkkB,OAAOI,MACL7K,EAAOoiC,mBACTvwC,IAAIyvC,UAAUS,iBAAgB,GAE9BlwC,IAAIyvC,UAAUS,iBAAgB,GAEJ,UAAxB/hC,EAAOqiC,aACTxwC,IAAIyvC,UAAUI,oBAEd7vC,IAAIyvC,UAAUK,gBAGdl3B,OAAOK,UACL9K,EAAOsiC,uBACTzwC,IAAIyvC,UAAUS,iBAAgB,GAE9BlwC,IAAIyvC,UAAUS,iBAAgB,GAEA,UAA5B/hC,EAAOuiC,iBACT1wC,IAAIyvC,UAAUI,oBAEd7vC,IAAIyvC,UAAUK,iBAIhB3hC,EAAOwiC,oBAAsB/3B,OAAOI,KACtCw2B,UAAUO,mBAAmB5hC,EAAOwiC,oBAElCxiC,EAAOyiC,wBAA0Bh4B,OAAOK,SAC1Cu2B,UAAUO,mBAAmB5hC,EAAOyiC,2BAKtCC,YAAc,CAChB33C,KAAM,YACNiV,OAAQ,CACNiiC,UAAW,CACTC,SAAS,EAETC,kBAAkB,EAElBC,oBAAoB,EACpBC,aAAc,QACdG,mBAAoB,KAEpBF,wBAAwB,EACxBC,iBAAkB,QAClBE,uBAAwB,OAG5B/0B,OAAQ,WAENjK,MAAM5U,OADItI,KACQ,CAChB07C,UAAW,CACTpnC,KAAMwmC,UAAUxmC,KAChBE,KAAMsmC,UAAUtmC,KAChBgnC,gBAAiBV,UAAUU,gBAC3BP,aAAcH,UAAUG,aACxBI,mBAAoBP,UAAUO,mBAC9BE,UAAWT,UAAUS,UACrBhvB,KAAMuuB,UAAUvuB,KAAKlR,KATfrb,UAaZsQ,GAAI,CACFic,KAAM,WAEJuuB,UAAUvuB,KAAKrmB,KADLlG,SAMhB,SAASo8C,eAAelzB,GACtB,IAAImzB,EAAe5vC,EAAE,2BACjB6vC,EAAa7vC,EAAE,yBACf8vC,EAAa9vC,EAAE,yBACf+vC,EAAW/vC,EAAE,UACO,IAApB+vC,EAASl7C,SAAgBk7C,EAAWtzB,EAAIpjB,MAE5C,IAAIqgC,EAAUqW,EAASjyC,SAAS,SAchC,GAbuB,IAAnB47B,EAAQ7kC,SACV6kC,EAAUqW,EAASjyC,SAAS,SAASA,SAAS,UAG5C47B,EAAQ7kC,OAAS,GACf6kC,EAAQ/3B,SAAS,QAGI,KADvB+3B,EAAUqW,EAASjyC,SAAS,qBAChBjJ,SACV6kC,EAAUqW,EAASjyC,SAAS,SAASA,SAAS,qBAIhD8xC,EAAa/6C,OAAS,GAAK+6C,EAAa,GAAGvD,OAAU,OAAOuD,EAAa,GAAGvD,OAChF,GAAIwD,EAAWh7C,OAAS,GAAKg7C,EAAW,GAAGxD,OAAU,OAAOwD,EAAW,GAAGxD,OAC1E,GAAIyD,EAAWj7C,OAAS,GAAKi7C,EAAW,GAAGzD,OAAU,OAAOyD,EAAW,GAAGzD,OAC1E,GAAI3S,EAAQ7kC,OAAS,EAAG,CACtB,GAAuB,IAAnB6kC,EAAQ7kC,QAAgB6kC,EAAQ,GAAG2S,OAAU,OAAO3S,EAAQ,GAAG2S,OACnE,GAAI3S,EAAQ7kC,OAAS,EACnB,OAAO4nB,EAAIkT,MAAMyc,MAMvB,IAAI4D,OAAS,CACXj4C,KAAM,OACNiV,OAAQ,CACN4iB,KAAM,CACJ73B,UAAMrE,EACN04C,MAAM,EACN3qB,QAAQ,EACR+rB,UAAW,KACXpX,YAAY,EACZ2R,UAAU,EACVK,eAAgB,GAChBD,6BAA6B,EAC7BG,iBAAkB,IAClB2H,gBAAgB,EAChBxZ,qBAAqB,EACrBqG,oBAAoB,EACpBvE,aAAa,EACbI,cAAc,EACdvG,uBAAwB,EACxBsa,uBAAuB,EACvBnH,gBAAgB,EAChBC,2BAA2B,EAC3BC,sBAAuB,EACvBwD,wBAAwB,EACxBnJ,kBAAkB,EAClBmI,yBAAyB,EACzBC,0BAA0B,EAC1B0C,iBAAiB,EAEjBV,cAAc,EACdgG,2BAA2B,EAC3BC,4BAA4B,EAC5BC,uBAAwB,GACxBC,sBAAuB,EACvBlG,aAAa,EACbmG,0BAA0B,EAC1BC,2BAA2B,EAC3BC,sBAAuB,GACvBC,qBAAsB,EACtBrG,iBAAiB,EACjBsG,8BAA8B,EAC9BC,+BAA+B,EAC/BC,0BAA2B,GAC3BC,yBAA0B,EAE1B1xC,WAAW,EACXk8B,mBAAe3nC,EACf07B,kBAAkB,EAClBqb,wBAAwB,EACxBnP,mBAAoB,KACpBkP,iBAAiB,EAEjB79B,SAAS,EAET+2B,kBAAkB,EAElBlQ,0BAA0B,EAE1Bsd,iBAAkB,EAClBC,gBAAiB,EACjBC,oBAAqB,EAErB5Z,kBAAmB,KACnBE,kBAAmB,OAGvBpb,OAAQ,CACN8vB,KAAMA,MAERtxB,OAAQ,WACN,IAAI+B,EAAMlpB,KACVkd,MAAM5U,OAAO4gB,EAAK,CAChBkT,MAAOlf,MAAM5U,OAAO,GAAI,CACtB6e,OAAQ,SAAgBjY,EAAIuK,GAC1B,OAAO,IAAIg/B,KAAKvvB,EAAKha,EAAIuK,IAE3BvQ,IAAK,SAAaw0C,GAChB,IAAIvX,EAAU15B,EAAEixC,GAChB,GAAIvX,EAAQ7kC,QAAU6kC,EAAQ,GAAG2S,OAAU,OAAO3S,EAAQ,GAAG2S,YAKnE50C,OAAO6f,eAAemF,EAAIkT,MAAO,UAAW,CAC1Cxb,YAAY,EACZ/Y,cAAc,EACdqB,IAAK,WACH,OAAOkzC,eAAelzB,MAI1BA,EAAImT,KAAOnT,EAAIkT,OAEjB9rB,GAAI,CACFic,KAAM,WACJ,IAAIrD,EAAMlpB,KACVyM,EAAE,cAAcnG,MAAK,SAAUK,EAAO+2C,GACpC,IAAIA,EAAO5E,OAAX,CACA,IAAIH,EAAalsC,EAAEixC,GAAQpuC,UAC3B4Z,EAAIkT,MAAMjV,OAAOu2B,EAAQ/E,QAG7BgF,sBAAuB,SAAgBz1C,GACrC,IAAIghB,EAAMlpB,KACVkI,EAASohB,IAAIrS,KAAK,cAAc3Q,MAAK,SAAUK,EAAO+2C,GACpD,IAAIA,EAAO5E,OAAX,CACA,IAAIH,EAAalsC,EAAEixC,GAAQpuC,UAC3B4Z,EAAIkT,MAAMjV,OAAOu2B,EAAQ/E,QAG7BiF,wCAAyC,SAAiB11C,GACnDA,GAAaA,EAASohB,KAC3BphB,EAASohB,IAAIrS,KAAK,cAAc3Q,MAAK,SAAUK,EAAO+2C,GACpD,IAAIrhB,EAAOqhB,EAAO5E,OACbzc,GACLA,EAAK9S,eAIXtB,MAAO,CACL41B,YAAa,CACXC,OAAQ,SAAgB71B,GACtB,IACIy1B,EAASz1B,EAAM81B,IACnB,IAAIL,EAAO5E,OAAX,CACA,IAAIH,EAAalsC,EAAEixC,GAAQpuC,UAHjBtP,KAINo8B,MAAMjV,OAAOu2B,EAAQ/E,KAE3BpvB,QAAS,SAAiBtB,GACxB,IACIoU,EADSpU,EAAM81B,IACDjF,OACbzc,GACLA,EAAK9S,cAMTy0B,OAAS,CACXC,KAAM,SAAc/uC,GAClB,IAAIga,EAAMlpB,KAENspB,EAAM7c,EAAEyC,GAEZ,GAAIoa,EAAIlb,SAAS,WACfkb,EAAMA,EAAI/e,SAAS,WAAWjE,MAAK,SAAUK,EAAO4gC,GAClDre,EAAIme,OAAO4W,KAAK1W,UAFpB,CAOA,IAAI2W,EAAW50B,EAAI/e,SAAS,iBAC5B,GAAK2zC,EAAS58C,OAAd,CAEA,IAAI68C,EACFD,EAAS9vC,SAAS,gCACf8a,EAAIzP,OAAO4tB,OAASne,EAAS,MAAI,eAElCk1B,EAA8B,QAAdl1B,EAAI/C,QAAoB+C,EAAIzP,OAAO4tB,OAASne,EAAS,MAAI,eAE7E,IAAKi1B,GAAoBC,MAGvB90B,EAAIlb,SAAS,YACVkb,EAAIjlB,QAAQ,YAAY/C,OAAS,GACjCgoB,EAAIjlB,QAAQ,yBAAyB/C,OAAS,GAC9CgoB,EAAIjlB,QAAQ,yBAAyB/C,OAAS,GAJnD,CASkB,QAAd4nB,EAAI/C,OAAmB+C,EAAIzP,OAAO4tB,OAASne,EAAS,MAAI,gBAC1Dg1B,EAASrwC,SAAS,+BAEF,QAAdqb,EAAI/C,OAAoB+C,EAAIzP,OAAO4tB,OAAOgX,gBAC5CH,EAASrwC,SAAS,2BAGpB,IAgBIqgB,EACA+O,EAOAqhB,EACAC,EAzBApY,EAAU7c,EAAIjlB,QAAQ,SAASgR,GAAG,GAClChB,EAAO6U,EAAIwC,IAAMwyB,EAAS3zC,SAAS,UAAY2zC,EAAS3zC,SAAS,SACjEi0C,EAAQt1B,EAAIwC,IAAMwyB,EAAS3zC,SAAS,SAAW2zC,EAAS3zC,SAAS,UACjEk0C,EAAQP,EAAS3zC,SAAS,UAC1Bm0C,EAAYR,EAAS3zC,SAAS,cAC9Bo0C,EAAyB,IAAhBtqC,EAAK/S,OACds9C,EAA2B,IAAjBJ,EAAMl9C,OAChBu9C,EAAYF,EAAS,EAAItqC,EAAKlB,YAAW,GACzC2rC,EAAaF,EAAU,EAAIJ,EAAMrrC,YAAW,GAC5C4rC,EAAaN,EAAMtrC,YAAW,GAC9B6rC,EAAed,EAAS7qC,SAExB4rC,EADcf,EAAS,GAAG5qC,YACOkO,SAASw9B,EAAaE,YAAa,IAAM19B,SAASw9B,EAAaG,aAAc,IAC9GC,EAAa91B,EAAIlb,SAAS,mBAC1BixC,EAAUnB,EAAS9vC,SAAS,WAK5B+3B,EAAQ7kC,OAAS,GAAK6kC,EAAQ,GAAG2S,SAEnC7b,GADA/O,EAASiY,EAAQ,GAAG2S,OAAO5qB,SACDA,EAAO+O,eAK/B2hB,IACFN,EAAWW,EAAmBF,GAE5BJ,IACFL,EAAW,GAERK,GAAWC,IACdN,GAAaW,EAAmBH,EAAaC,EAAcF,GAAa,GAE1E,IAAIS,GAAgBL,EAAmBF,GAAc,EACjDE,EAAmBJ,EAAYC,EAAaC,GAC1CO,EAAeT,IACjBS,EAAeT,GAEbS,EAAeP,EAAaE,EAAmBH,IACjDQ,EAAeL,EAAmBH,EAAaC,GAEjDR,EAAOe,EAAehB,GAEtBC,EAAO,EAIT,IAAInf,EAAWlW,EAAIwC,KAAO,EAAI,EAE9B,GAAIuR,GAA+B,QAAd/T,EAAI/C,MAAiB,CACxC,GAAIs4B,EAAMrwC,SAAS,YAAeqwC,EAAMn9C,OAAS,GAAK+9C,EAAU,CAC9D,IAAIE,IAAoBjB,EAAWC,GAAQnf,EACvCogB,GAAoBP,EAAmBX,EAAWC,EAAOQ,GAAc3f,EAE3E,GAAIggB,GACElxB,GAAUA,EAAOzU,OAAOwmB,yBAA0B,CACpD,IAAIwf,EAAuBn2B,EAAIzT,SAASoB,KAAK,mBAAmB1M,SAAS,iBAAiB0M,KAAK,sBAC3FwoC,EAAqBn+C,OAAS,IAChCi+C,GAAmBE,EAAqB,GAAGpO,YAIjDoN,EAAM,GAAGve,mBAAqBqf,EAC9Bd,EAAM,GAAGtd,oBAAsBqe,EAEjC,IAAKb,IAAWtqC,EAAKjG,SAAS,YAAcixC,GAC1C,GAAIn2B,EAAIwC,IACNrX,EAAK,GAAG6rB,qBAAwB+e,EAAmB5qC,EAAK,GAAGf,aAAe,EAAK8rB,EAC/E/qB,EAAK,GAAG8sB,oBAAsB0d,EAAYzf,OAI1C,GAFA/qB,EAAK,GAAG6rB,oBAAsB2e,EAC9BxqC,EAAK,GAAG8sB,qBAAwB8d,EAAmB5qC,EAAK,GAAGf,aAAe,EACtE4a,GAAUA,EAAOzU,OAAOwmB,0BAA4B5rB,EAAK4C,KAAK,eAAe3V,OAAS,GACpF+S,EAAK4C,KAAK,sBAAsB3V,OAAQ,CAC1C,IAAIyvC,EAAa18B,EAAK,GAAG6rB,mBACrB8Q,EAAc38B,EAAK,GAAG8sB,oBAC1B9sB,EAAK,GAAG6rB,mBAAqB,EAC7B7rB,EAAK,GAAG8sB,oBAAsB,EAC9B9sB,EAAK4C,KAAK,sBAAsB,GAAGipB,mBAAqB6Q,EACxD18B,EAAK4C,KAAK,sBAAsB,GAAGkqB,oBAAsB6P,EAAc38B,EAAK4C,KAAK,eAAe,GAAG3D,YAKtGsrC,IAAYJ,EAAMpwC,SAAS,aAAcixC,IACxCn2B,EAAIwC,KACN8yB,EAAM,GAAGte,oBAAsB4e,EAAa1f,EAC5Cof,EAAM,GAAGrd,qBAAwB8d,EAAmBT,EAAM,GAAGlrC,aAAe,EAAK8rB,IAEjFof,EAAM,GAAGte,qBAAuB+e,EAAmBT,EAAM,GAAGlrC,aAAe,EAC3EkrC,EAAM,GAAGrd,oBAAsB2d,IAG/BJ,EAAUp9C,SAAWo9C,EAAUtwC,SAAS,YAAcixC,KACxDX,EAAU,GAAGxe,mBAAqBhX,EAAIwC,IAAMgzB,EAAU,GAAGprC,aAAeorC,EAAU,GAAGprC,YACrForC,EAAU,GAAGvd,qBAAuBud,EAAU,GAAGxe,oBAKrD,GAAIie,EAAiB,CACnB,IAAIuB,EAAYnB,EACZr1B,EAAIwC,KAAOizB,GAAUC,GAAWH,EAAMn9C,OAAS,IAAKo+C,GAAaA,GACrEjB,EAAMvrC,IAAI,CAAEmB,KAAOqrC,EAAY,YAGnCprC,KAAM,SAAcpF,EAAIkK,EAASumC,QACd,IAAZvmC,IAAqBA,GAAU,QACb,IAAlBumC,IAA2BA,GAAgB,GAEhD,IAAIz2B,EAAMlpB,KACNspB,EAAM7c,EAAEyC,GACR0wC,EAAYt2B,EAAIlb,SAAS,WAAakb,EAAIzT,OAAO,YAAYvU,OAEjE,GADIs+C,IAAat2B,EAAMA,EAAIjlB,QAAQ,aAC9BilB,EAAIhoB,SACLgoB,EAAIlb,SAAS,iBAAjB,CACA,IAAIN,EAAY,iBAAmBsL,EAAU,wBAA0B,KAClDwmC,EACjBt2B,EAAIrS,KAAK,gCAAgC3V,OACzCgoB,EAAIrS,KAAK,gBAAgB3V,UAE3BwM,GAAa,wBAEX6xC,IACF7xC,GAAa,4BAEfwb,EAAIzW,eAAc,WAChByW,EAAIpb,YAAY,2BAElBob,EAAIzb,SAASC,GACT8xC,EACFt2B,EAAI/e,SAAS,WAAWjE,MAAK,SAAUK,EAAOk5C,GAC5CpzC,EAAEozC,GAAOxtC,QAAQ,eACjB6W,EAAIvC,KAAK,aAAck5B,OAGzBv2B,EAAIjX,QAAQ,eACZ6W,EAAIvC,KAAK,aAAc2C,EAAI,OAG/B9U,KAAM,SAActF,EAAIkK,QACV,IAAPlK,IAAgBA,EAAK,uBACT,IAAZkK,IAAqBA,GAAU,GAEpC,IAAI8P,EAAMlpB,KACNspB,EAAM7c,EAAEyC,GACR0wC,EAAYt2B,EAAIlb,SAAS,WAAakb,EAAIzT,OAAO,YAAYvU,OAC7Ds+C,IAAat2B,EAAMA,EAAIjlB,QAAQ,aAC9BilB,EAAIhoB,QACJgoB,EAAIlb,SAAS,mBACdgL,IACFkQ,EAAIzb,SAAS,wBACbyb,EAAIzW,eAAc,WAChByW,EAAIpb,YAAY,4BAGpBob,EAAIpb,YAAY,6DACZ0xC,EACFt2B,EAAI/e,SAAS,WAAWjE,MAAK,SAAUK,EAAOk5C,GAC5CpzC,EAAEozC,GAAOxtC,QAAQ,eACjB6W,EAAIvC,KAAK,aAAck5B,OAGzBv2B,EAAIjX,QAAQ,eACZ6W,EAAIvC,KAAK,aAAc2C,EAAI,OAG/Bge,YAAa,SAAqBmO,GAChC,IAAIH,EACA/O,EACAuZ,EAaJ,GAZIrK,EAAKlP,WAAakP,EAAKnsB,KACzBw2B,EAAWrK,EACXH,EAAUG,EAAKnsB,MAEfgsB,EAAU7oC,EAAEgpC,IACAn0C,OAAS,IAAKw+C,EAAWxK,EAAQ,GAAG9S,QAE9Csd,GAAYA,EAASvZ,WAAauZ,EAASvZ,UAAUjlC,OAAS,EAChEilC,EAAYuZ,EAASvZ,UACZ+O,IACT/O,EAAY+O,EAAQ/qC,SAAS,YAE1Bg8B,KAAcA,GAAkC,IAArBA,EAAUjlC,QAC1C,OAAOilC,EAAU,IAEnBwZ,YAAa,SAAqBxY,GAChC,IAIIb,EAJAH,EAAY95B,EAAE86B,GAClB,OAAIhB,EAAUliC,QAAQ,SAAS/C,OACtBilC,EAAUliC,QAAQ,SAAS,IAGpCkiC,EAAUliC,QAAQ,SAAS4S,KAAK,SAAS3Q,MAAK,SAAUK,EAAOuI,GACzDA,GAAMA,EAAGszB,QAAUtzB,EAAGszB,OAAO+E,UAAYhB,EAAU,KAAOr3B,EAAGszB,OAAO+E,WACtEb,EAASx3B,MAGNw3B,IAGTsZ,mBAAoB,SAA4BzY,GAC9C,IACIhB,EAAY95B,EAAE86B,GAClB,KAAIhB,EAAUn4B,SAAS,cACrBm4B,EAAYA,EAAUtvB,KAAK,YACb3V,OAAS,IACrBilC,EAAY95B,EAAE86B,GAAUtwB,KAAK,iCAE3BsvB,EAAUjlC,OAAS,IAAMilC,EAAUjlC,SALzC,CASA,IAAIg0C,EAAU7oC,EAXJzM,KAWUqnC,OAAO0Y,YAAYxZ,IACvCA,EAAU14B,SAAS,0BACnBynC,EAAQjgC,GAAG,GAAGxH,SAAS,oCAAoCwE,QAAQ,6BAbzDrS,KAcN2mB,KAAK,2BAA4B2uB,EAAQ,IAC7C/O,EAAUl0B,QAAQ,mBAfRrS,KAgBN2mB,KAAK,iBAAkB4f,EAAU,MAEvC0Z,iBAAkB,SAA0B1Y,GAC1C,IACIhB,EAAY95B,EAAE86B,GAClB,KAAIhB,EAAUn4B,SAAS,cACrBm4B,EAAYA,EAAUtvB,KAAK,kBACb3V,OAAS,IACrBilC,EAAY95B,EAAE86B,GAAUtwB,KAAK,iCAE3BsvB,EAAUjlC,OAAS,IAAMilC,EAAUjlC,SALzC,CASA,IAAIg0C,EAAU7oC,EAXJzM,KAWUqnC,OAAO0Y,YAAYxZ,IACvCA,EAAUr4B,YAAY,0BACtBonC,EAAQjgC,GAAG,GAAGnH,YAAY,oCAAoCmE,QAAQ,4BAb5DrS,KAcN2mB,KAAK,0BAA2B2uB,EAAQ,IAC5C/O,EAAUl0B,QAAQ,iBAfRrS,KAgBN2mB,KAAK,eAAgB4f,EAAU,MAErC2Z,iBAAkB,SAA0B3Y,GAC1C,IACIhB,EAAY95B,EAAE86B,GACdhB,EAAUn4B,SAAS,cACrBm4B,EAAYA,EAAUtvB,KAAK,kBACb3V,OAAS,IACrBilC,EAAY95B,EAAE86B,GAAUtwB,KAAK,iCAE3BsvB,EAAUjlC,OAAS,IAAMilC,EAAUjlC,UAIrCilC,EAAUn4B,SAAS,0BAXbpO,KAYJqnC,OAAO4Y,iBAAiB1Z,GAZpBvmC,KAcJqnC,OAAO2Y,mBAAmBzZ,KAGlC4Z,mBAAoB,SAA4BzZ,EAAQa,EAAU6Y,EAAUC,EAAcC,GACxF,IASIC,EACAC,EAEAnoC,EACA3E,EACA+sC,EACA7kB,EACA8kB,EAEAC,EACAC,EAEAC,EA2BAC,EACAC,EACAC,EACAC,EAnDA/3B,EAAMlpB,KACNs1C,EAAU7oC,EAAEi6B,GACZH,EAAY95B,EAAE86B,GACd2Z,EAAgB3a,EAAUtvB,KAAK,gBAC/BkqC,EAAUD,EAAc5/C,QAAUilC,EAAUn4B,SAAS,iBACrDgzC,EAAmB,GACnBC,EAA6Bn4B,EAAIzP,OAAO4tB,OAAOga,2BAC/CC,EAAoCp4B,EAAIzP,OAAO4tB,OAAOia,mCAgBtDjB,GAAiBD,GAAYe,MAC/BP,EAAyBra,EAAUrzB,IAAI,oCAET0tC,EAAuBj/C,QAAQ,OAAS,GACpEi/C,EAAyBp/B,SAASo/B,EAAwB,IACtD97C,OAAOsd,MAAMw+B,IAA2BM,EAAc5/C,OACxDs/C,EAAyBM,EAAc,GAAGxtC,aACjC5O,OAAOsd,MAAMw+B,KACJ,QAAd13B,EAAI/C,MAAmBy6B,EAAyB,GAC7B,OAAd13B,EAAI/C,MAAkBy6B,EAAyB,GACjC,WAAd13B,EAAI/C,QAAsBy6B,EAAyB,MAErDM,EAAc5/C,OACvBs/C,EAAyBM,EAAc,GAAGxtC,aAExB,QAAdwV,EAAI/C,MAAmBy6B,EAAyB,GAC7B,OAAd13B,EAAI/C,MAAkBy6B,EAAyB,GACjC,WAAd13B,EAAI/C,QAAsBy6B,EAAyB,KAI5DR,GAAYe,IACdC,GAAoBR,GAUtB,SAASW,IACmBhb,EAAUn4B,SAAS,uCAExC2yC,GAAiBP,EAAmB,IACrCA,GAAoBI,EAAyB,GAAKJ,EAAmBI,EACvEn0C,EAAEs0C,GAAe/sC,UAAU4sC,EAAwB,KAC1CJ,EAAmBI,GAC5Bn0C,EAAEs0C,GAAe/sC,UAAU,EAAG,MAIlC,SAASwtC,IACmBjb,EAAUn4B,SAAS,uCAExC2yC,GAAiBP,EAAmB,IACrCA,GAAoBK,EAAqB,GAAKL,EAAmBK,EACnEp0C,EAAEs0C,GAAe/sC,UAAU6sC,EAAoB,KACtCL,EAAmBK,GAC5Bp0C,EAAEs0C,GAAe/sC,UAAU,EAAG,MAsDlC,IAAIytC,EAA2B,KAC3BC,EAAmB,KAmGvB,SAASC,EAAa9wC,GACpBkwC,EAAgB/gD,KACZ6Q,GAAKA,EAAEtI,QAAUsI,EAAEtI,SAAWw4C,IAGlCP,EAAmBO,EAAc/sC,UACjC8sC,EAAgBN,EACZH,EAzGN,WAEE,KADe9Z,EAAUn4B,SAAS,kBAAoBm4B,EAAU1wB,OAAO,YAAYzH,SAAS,kBAC5F,CACA,IAAIwzC,EAAqBrb,EAAUn4B,SAAS,6BAExCm4B,EAAUn4B,SAAS,iBAChBm4B,EAAUn4B,SAAS,sBAE1BqzC,EAA2BC,EAC3BA,EAAmBppC,KAAKE,IAAIF,KAAKC,IAAKioC,EAAmBI,EAAyB,GAAI,GACtF,IAAIiB,EAA8BJ,EAA2B,GAAKA,EAA2B,EACnElb,EAAUn4B,SAAS,uCAE7CuyC,EAAkBpa,EAAUn4B,SAAS,0BACZ,IAArBszC,GAA0Bf,EAC5Bz3B,EAAIme,OAAO4Y,iBAAiB1Z,EAAU,IACR,IAArBmb,GAA2Bf,GACpCz3B,EAAIme,OAAO2Y,mBAAmBzZ,EAAU,IAGlB,IAArBmb,GAA0Bf,GACF,IAArBe,GAA0BG,GACL,IAArBH,IAA2Bf,GACN,IAArBe,GAA0BG,GAEZ,OAAd34B,EAAI/C,OACNogB,EAAUtvB,KAAK,iBAAiB/D,IAAI,WAAY,IAElDqzB,EAAUtvB,KAAK,UAAU/D,IAAI,UAAW,IACxCqzB,EAAUtvB,KAAK,iCAAiC/D,IAAI,YAAa,IAC7D0uC,EACFrb,EAAUtvB,KAAK,cAAc/D,IAAI,UAAW,IAE5CqzB,EAAUtvB,KAAK,cAAc/D,IAAI,YAAa,KAEvCwuC,EAAmB,GAAKA,EAAmB,IAClC,OAAdx4B,EAAI/C,OACNogB,EAAUtvB,KAAK,iBAAiB/D,IAAI,WAAY,WAElDqzB,EAAUtvB,KAAK,UAAU/D,IAAI,UAAWwuC,GACxCnb,EAAUtvB,KAAK,iCAAiC/D,IAAI,YAAc,qBAAwB,EAAIwuC,EAAmBd,EAA0B,UACvIgB,EACFrb,EAAUtvB,KAAK,cAAc/D,IAAI,UAAWwuC,GAE5Cnb,EAAUtvB,KAAK,cAAc/D,IAAI,YAAc,qBAAwB,EAAIwuC,EAAmBd,EAA0B,WAIxHS,IACGh+B,QAAQC,MAKF29B,IACT30C,aAAa20C,GACbA,EAAoB,KACpBA,EAAoB50C,YAAW,WAC7Bk1C,IACAj1C,aAAa20C,GACbA,EAAoB,OAzIL,MA+HjB30C,aAAa00C,GACbA,EAAkB30C,YAAW,WAC3Bk1C,MAhIiB,SAsLrBO,GACSxB,GA/Jb,WACE,IAAIyB,EAAWxb,EAAUn4B,SAAS,kBAAoBm4B,EAAU1wB,OAAO,YAAYzH,SAAS,iBAE5F,IAD0Bm4B,EAAUn4B,SAAS,uCAClB2zC,EAA3B,CACKlB,IACHA,EAAqBtZ,EAAS7zB,cAEhC,IAAIktB,EAAU4f,EAAmBK,EAC7BmB,EAAiBzb,EAAUn4B,SAAS,8BAGxC,GAFAwyB,EAAUtoB,KAAKC,IAAID,KAAKE,IAAIooB,EAAS,GAAI,GAEpCohB,GAA8B,IAAZphB,IAAoBohB,GAA8B,IAAZphB,EAC3D2F,EAAUtvB,KAAK,sBAAsB/D,IAAI,UAAW,QADtD,CAIA,GAAI8uC,GAA8B,IAAZphB,EAKpB,OAJA2F,EAAUl0B,QAAQ,0BAClB6W,EAAIvC,KAAK,wBAAyB4f,EAAU,IAC5CA,EAAUr4B,YAAY,mCACtBq4B,EAAUtvB,KAAK,sBAAsB/D,IAAI,UAAW,IAGtD,IAAK8uC,GAA8B,IAAZphB,EAKrB,OAJA2F,EAAUl0B,QAAQ,0BAClB6W,EAAIvC,KAAK,wBAAyB4f,EAAU,IAC5CA,EAAU14B,SAAS,mCACnB04B,EAAUtvB,KAAK,sBAAsB/D,IAAI,UAAW,IAItDqzB,EAAUtvB,KAAK,sBAAsB/D,IAAI,UAAW0tB,GAEhD0gB,IACGj+B,QAAQC,MAKF29B,IACT30C,aAAa20C,GACbA,EAAoB,KACpBA,EAAoB50C,YAAW,WAC7Bm1C,IACAl1C,aAAa20C,GACbA,EAAoB,OArEL,MA2DjB30C,aAAa00C,GACbA,EAAkB30C,YAAW,WAC3Bm1C,MA5DiB,SAwLrBS,GAEE3M,EAAQlnC,SAAS,kBACjBgyC,IA5CA9K,EAAQlnC,SAAS,2BACrBiK,EAAe0oC,EAAc1oC,aAC7B3E,EAAeqtC,EAAcrtC,aAC7B+sC,EAAWD,EAAmB9sC,GAAgB2E,EAC9CqoC,EAAena,EAAUn4B,SAAS,kBAAoBm4B,EAAU1wB,OAAO,YAAYzH,SAAS,iBACxFqyC,EACEv3B,EAAIzP,OAAO4tB,OAAO6a,sBACpBtmB,EAAS,QAITA,EAFO2kB,EAAoBC,EACzBt3B,EAAIzP,OAAO4tB,OAAO8a,qBAAuB3B,GAAoBY,EACtD,OAEA,OAEFZ,EAAmBY,EACnB,OAEA,OAGI,SAAXxlB,GAAqB8kB,GACvBx3B,EAAIme,OAAO7yB,KAAK+xB,GAChBma,GAAe,GACK,SAAX9kB,GAAsB8kB,IAC/Bx3B,EAAIme,OAAO/yB,KAAKiyB,GAChBma,GAAe,GAEjBH,EAAoBC,KAoBtB,SAAS4B,IACPtB,GAAgB,EAElB,SAAS5e,IACP51B,aAAa20C,GACbA,EAAoB,KACpBA,EAAoB50C,YAAW,YACP,IAAlBy0C,IACER,IAAoBD,EACtBmB,IAEAD,IAEFj1C,aAAa20C,GACbA,EAAoB,QA9MH,IAkNvB3L,EAAQhlC,GAAG,SAAU,gBAAiBqxC,GAAc,GAChDt+B,QAAQC,QAAW+8B,GAAgBgB,GAAgCf,GAAmBgB,KACxFp4B,EAAI5Y,GAAG,qBAAsB8xC,GAC7Bl5B,EAAI5Y,GAAG,mBAAoB4xB,KAEzBme,GAIOC,IAHThL,EAAQr+B,KAAK,iBAAiB3Q,MAAK,SAAUyvC,EAAkBC,GACzDA,EAAchiC,UAAY,GAAK2tC,EAAaz7C,KAAK8vC,MAOzDV,EAAQ,GAAG+M,6BAA+B,kBACjC/M,EAAQ,GAAG+M,6BAClB/M,EAAQ3jC,IAAI,SAAU,gBAAiBgwC,GAAc,GACjDt+B,QAAQC,QAAW+8B,GAAgBgB,GAAgCf,GAAmBgB,KACxFp4B,EAAIvX,IAAI,qBAAsBywC,GAC9Bl5B,EAAIvX,IAAI,mBAAoBuwB,OAKhCogB,SAAW,CACb99C,KAAM,SACN2iB,OAAQ,WACN,IAAI+B,EAAMlpB,KACVkd,MAAM5U,OAAO4gB,EAAK,CAChBme,OAAQ,CACN4W,KAAMD,OAAOC,KAAK5iC,KAAK6N,GACvB5U,KAAM0pC,OAAO1pC,KAAK+G,KAAK6N,GACvB1U,KAAMwpC,OAAOxpC,KAAK6G,KAAK6N,GACvBoe,YAAa0W,OAAO1W,YAAYjsB,KAAK6N,GACrC62B,YAAa/B,OAAO+B,YAAY1kC,KAAK6N,GACrC82B,mBAAoBhC,OAAOgC,mBAAmB3kC,KAAK6N,GACnD+2B,iBAAkBjC,OAAOiC,iBAAiB5kC,KAAK6N,GAC/Cg3B,iBAAkBlC,OAAOkC,iBAAiB7kC,KAAK6N,GAC/Ci3B,mBAAoBnC,OAAOmC,mBAAmB9kC,KAAK6N,OAIzDzP,OAAQ,CACN4tB,OAAQ,CACNkb,uBAAuB,EACvBlE,gBAAgB,EAChBmE,eAAe,EACfC,mBAAmB,EACnBC,kBAAkB,EAClBR,qBAAqB,EACrBC,qBAAqB,EACrBQ,4BAA4B,EAC5BtB,4BAA4B,EAC5BC,mCAAmC,IAGvChxC,GAAI,CACFsyC,oGAAqG,WACnG,IAAI15B,EAAMlpB,KACVyM,EAAE,WAAWnG,MAAK,SAAUK,EAAO4gC,GACjCre,EAAIme,OAAO4W,KAAK1W,OAGpBsb,iBAAkB,SAA0BpN,GACtCA,EAAKnsB,IAAI,GAAG+4B,8BACd5M,EAAKnsB,IAAI,GAAG+4B,gCAGhBS,aAAc,SAAsBrN,GAElC,GAAkB,QADRz1C,KACFmmB,MAAR,CACA,IAAIkX,EACAhB,EAAOoZ,EAAKnsB,IAAIjlB,QAAQ,SAAS,GAAGy0C,OACpCvR,EAJMvnC,KAISqnC,OAAOC,YAAYmO,GAMtC,GAFEpY,EAHGkK,EAGU96B,EAAE86B,GAAUljC,QAAQ,YAFpBoxC,EAAKnsB,IAAIjlB,QAAQ,SAASkG,SAAS,YAI9CkrC,EAAKnsB,IAAIlb,SAAS,cAAiBiuB,EAAKnO,OAAO+O,gBAAkBsK,EAAW,CAC9E,IAAInuB,KAAaq8B,EAAKJ,UAAYI,EAAKvnB,OAAOxiB,QAAQpK,OAAS,GAXvDtB,KAYJqnC,OAAO/yB,KAAK+oB,EAAYjkB,QAZpBpZ,KAcJqnC,OAAO7yB,KAAK6oB,KAGpB0lB,WAAY,SAAoBtN,GAC9B,IACIlP,EAAY95B,EADNzM,KACYqnC,OAAOC,YAAYmO,IACpClP,GAAkC,IAArBA,EAAUjlC,QAFlBtB,KAGNqnC,OAAO4W,KAAK1X,IAElByc,SAAU,SAAkBvN,GAC1B,IAQIwN,EAUAC,EAMAC,EAvBA5c,EAAY95B,EADNzM,KACYqnC,OAAOC,YAAYmO,IACpClP,GAAkC,IAArBA,EAAUjlC,SAFlBtB,KAKNqnC,OAAO4W,KAAK1X,GAIZA,EAAUtvB,KAAK,gBAAgB3V,OAAS,GAC1CilC,EAAU14B,SAAS,gBAEjB04B,EAAUn4B,SAAS,kBAZbpO,KAaAyZ,OAAO4tB,OAAOsb,6BAA8BM,GAA8B,GAClFxN,EAAKnsB,IAAIzb,SAAS,4BAKfo1C,GAA+B1c,EAAUn4B,SAAS,wBACrD80C,GAA0B,IApBlBljD,KA0BJyZ,OAAO4tB,OAAOqb,kBACfjN,EAAKnsB,IAAIrS,KAAK,0BAA0B3V,QACxCm0C,EAAKnsB,IAAIlb,SAAS,0BAClBqnC,EAAKnsB,IAAIrS,KAAK,wBAAwB3V,QACtCm0C,EAAKnsB,IAAIlb,SAAS,0BAQnB+0C,IALA1N,EAAKnsB,IAAIrS,KAAK,0BAA0B3V,QACrCm0C,EAAKnsB,IAAIlb,SAAS,0BAClBqnC,EAAKnsB,IAAIrS,KAAK,wBAAwB3V,QACtCm0C,EAAKnsB,IAAIlb,SAAS,0BAQrB60C,GAA+BE,GAA2BD,IA5CpDljD,KA6CJqnC,OAAO8Y,mBAAmB1K,EAAKvmC,GAAIq3B,EAAU,GAAI4c,EAAyBF,EAA6BC,KAG/GE,qCAAsC,SAA0Bl7C,GAC9D,IAAIghB,EAAMlpB,KACVkI,EAASohB,IAAIrS,KAAK,+CAA+C3Q,MAAK,SAAUK,EAAO4gC,GACrFre,EAAIme,OAAO4W,KAAK1W,OAGpB8b,QAAS,SAAiB7X,GACxB,IAAItiB,EAAMlpB,KACVyM,EAAE++B,GAAOv0B,KAAK,+CAA+C3Q,MAAK,SAAUK,EAAO4gC,GACjFre,EAAIme,OAAO4W,KAAK1W,QAItBiS,OAAQ,CACN8J,iBAAkB,SAAsBjK,GAEtC,GADUr5C,KACDyZ,OAAO4tB,OAAOkb,yBACnBlJ,EAAWriC,QAAQ,KAAK1V,OAAS,GAArC,CAGA,IAAIiiD,EAGAhd,EAAY8S,EAAWh1C,QAAQ,WAC/Bg5B,EAAakJ,EAAUliC,QAAQ,YAKL,KAF9Bk/C,EAAiBhd,EAAUliC,QAAQ,kBAEhB/C,SAEbilC,EAAUliC,QAAQ,SAAS/C,OAAS,IACtCiiD,EAAiBhd,EAAUliC,QAAQ,SAAS4S,KAAK,kBAGrB,IAA1BssC,EAAejiD,QAAgB+7B,EAAW/7B,QACxC+7B,EAAW5mB,QAAQ,+BAA+BnV,OAAS,IAC7DiiD,EAAiBlmB,EAAW5mB,QAAQ,+BAA+BQ,KAAK,kBAI9C,IAA1BssC,EAAejiD,QACbilC,EAAU9vB,QAAQ,+BAA+BnV,OAAS,IAC5DiiD,EAAiBhd,EAAU9vB,QAAQ,+BAA+BQ,KAAK,mBAIzEssC,GAAkBA,EAAejiD,OAAS,IAExCiiD,EAAen1C,SAAS,SAC1Bm1C,EAAiBA,EAAe1tC,OAAO,SAAStL,SAAS,6BAEvDg5C,EAAejiD,OAAS,GAAKiiD,EAAevvC,UAAU,EAAG,SAInEiU,MAAO,CACLof,OAAQ,CACNmc,UAAW,SAAmBv7B,GAClBjoB,KACNqnC,OAAO4W,KAAKh2B,EAAM81B,SAM1B0F,QAAU,CACZC,aAAc,SAAsBC,GAElC,GAAkB,OADR3jD,KACFmmB,MAAR,CAEA,IAAIy9B,EAAYn3C,EAAEk3C,GAElB,GAAyB,IAArBC,EAAUtiD,SAAkBsiD,EAAUx1C,SAAS,WAAaw1C,EAAUx1C,SAAS,kBAAnF,CAEA,IAAIy1C,EAAeD,EAAU3sC,KAAK,uBAC9B6sC,EAAgBF,EAAU3sC,KAAK,aAAa3V,OAChD,GAAsB,IAAlBwiD,EAAJ,CAK4B,IAAxBD,EAAaviD,QACfsiD,EAAUr5C,SAAS,kBAAkBgL,OAAO,4CAC5CsuC,EAAeD,EAAU3sC,KAAK,wBACrB4sC,EAAattC,OAAOjV,QAC7BsiD,EAAUr5C,SAAS,kBAAkBgL,OAAOsuC,GAG9C,IACIE,EACAC,EAFAC,EAAcL,EAAU3sC,KAAK,oBAIjC,GAAI2sC,EAAUx1C,SAAS,sBAAwB61C,GAAeA,EAAY,GACxEF,EAAkBE,EAAY,GAAc,YAAI,KAChDD,EAAsBC,EAAY,GAAa,WAAI,SAC9C,CACL,IAAIC,EAAcD,EAAYt9C,QAC9Bo9C,EAAkB,IAAMD,EAAiB,IACzCE,EAA+D,KA/BvDhkD,KA+BmB0rB,KAAOw4B,EAAcA,GAAsB,IAGxEhnC,MAAMa,WAAU,WACd8lC,EACG3wC,IAAI,QAAS6wC,GACbh0C,UAAW,eAAiBi0C,EAAqB,iBA3BpDH,EAAa11C,YA8BjBoe,KAAM,SAAco3B,GACR3jD,KACNmkD,QAAQT,aAAaC,IAE3BrvC,KAAM,SAAcpF,EAAIkK,QACL,IAAZA,IAAqBA,GAAU,GAEpC,IACIkQ,EAAM7c,EAAEyC,GACZ,IAAIoa,EAAIlb,SAAS,kBAAjB,CACA,IAAIN,EAAY,kBAAoBsL,EAAU,yBAA2B,IACzEkQ,EAAIzW,eAAc,WAChByW,EAAIpb,YAAY,4BAElBob,EAAIzb,SAASC,GACbwb,EAAIjX,QAAQ,gBARFrS,KASN2mB,KAAK,cAAe2C,EAAI,MAE9B9U,KAAM,SAActF,EAAIkK,QACL,IAAZA,IAAqBA,GAAU,GAEpC,IACIkQ,EAAM7c,EAAEyC,GACPoa,EAAIlb,SAAS,oBACdgL,IACFkQ,EAAIzb,SAAS,yBACbyb,EAAIzW,eAAc,WAChByW,EAAIpb,YAAY,6BAGpBob,EAAIpb,YAAY,kBAChBob,EAAIjX,QAAQ,gBAVFrS,KAWN2mB,KAAK,cAAe2C,EAAI,MAE9B86B,oBAAqB,SAA6B1d,GAChD,IAaI6Z,EACAC,EAEAnoC,EACA3E,EACA+sC,EACA7kB,EACAyoB,EApBAn7B,EAAMlpB,KACNs1C,EAAU7oC,EAAEi6B,GACZ4d,EAAahP,EAAQjxC,QAAQ,SAASkG,SAAS,aACzB,IAAtB+5C,EAAWhjD,SACbgjD,EAAahP,EAAQr+B,KAAK,aAEF,IAAtBqtC,EAAWhjD,SACbgjD,EAAahP,EAAQjxC,QAAQ,UAAUkG,SAAS,4BAExB,IAAtB+5C,EAAWhjD,UAmDfg0C,EAAQhlC,GAAG,SAAU,gBAAiBqxC,GAAc,GACpDrM,EAAQ,GAAGiP,uBAAyB5C,GAxCpC,SAASA,EAAa9wC,GACpB,IAAIykC,EAAQlnC,SAAS,2BACjBknC,EAAQlnC,SAAS,iBAArB,CAEIyC,GAAKA,EAAEtI,QAAUsI,EAAEtI,SADHvI,OAIpBwgD,EAJoBxgD,KAIagU,UACjCqE,EALoBrY,KAKSqY,aAC7B3E,EANoB1T,KAMS0T,aAC7B+sC,EAAWD,EAAmB9sC,GAAgB2E,EAC9CgsC,EAAgBC,EAAWl2C,SAAS,kBAEhCqyC,EACEv3B,EAAIzP,OAAO0qC,QAAQjC,sBACrBtmB,EAAS,QAITA,EAFO2kB,EAAoBC,EACzBt3B,EAAIzP,OAAO0qC,QAAQhC,qBAAuB3B,GAAoB,GACvD,OAEA,OAEFA,EAAmB,GACnB,OAEA,OAGI,SAAX5kB,GAAqByoB,GACvBn7B,EAAIi7B,QAAQ3vC,KAAK8vC,GACjBD,GAAgB,GACI,SAAXzoB,GAAsByoB,IAC/Bn7B,EAAIi7B,QAAQ7vC,KAAKgwC,GACjBD,GAAgB,GAGlB9D,EAAoBC,OAMtBgE,UAAY,CACdhgD,KAAM,UACN2iB,OAAQ,WAENjK,MAAM5U,OADItI,KACQ,CAChBmkD,QAAS,CACP7vC,KAAMmvC,QAAQnvC,KAAK+G,KAHbrb,MAINwU,KAAMivC,QAAQjvC,KAAK6G,KAJbrb,MAKN0jD,aAAcD,QAAQC,aAAaroC,KAL7Brb,MAMNokD,oBAAqBX,QAAQW,oBAAoB/oC,KAN3Crb,MAONusB,KAAMk3B,QAAQl3B,KAAKlR,KAPbrb,UAWZyZ,OAAQ,CACN0qC,QAAS,CACPzB,kBAAkB,EAClBR,qBAAqB,EACrBC,qBAAqB,IAGzB7xC,GAAI,CACFuyC,iBAAkB,SAA0BpN,GACtCA,EAAKnsB,IAAI,GAAGi7B,wBACd9O,EAAKnsB,IAAI3X,IAAI,SAAU,gBAAiB8jC,EAAKnsB,IAAI,GAAGi7B,wBAAwB,IAGhFzB,aAAc,SAAsBrN,GAClC,IACI6O,EAAa7O,EAAKnsB,IAAIjlB,QAAQ,SAASkG,SAAS,YAC1B,IAAtB+5C,EAAWhjD,SACbgjD,EAAa7O,EAAKnsB,IAAIjlB,QAAQ,UAAUkG,SAAS,4BAEzB,IAAtB+5C,EAAWhjD,SACbgjD,EAAa7O,EAAKnsB,IAAIrS,KAAK,aAEH,IAAtBqtC,EAAWhjD,SAGXm0C,EAAKnsB,IAAIlb,SAAS,cAXZpO,KAYJmkD,QAAQ7vC,KAAKgwC,GAZTtkD,KAcJmkD,QAAQ3vC,KAAK8vC,KAGrBtB,SAAU,SAAkBvN,GAC1B,IAAIvsB,EAAMlpB,KAIV,GAHAy1C,EAAKnsB,IAAIrS,KAAK,2BAA2B3Q,MAAK,SAAUK,EAAOg9C,GAC7Dz6B,EAAIi7B,QAAQ53B,KAAKo3B,MAGjBz6B,EAAIzP,OAAO0qC,QAAQzB,kBAChBjN,EAAKnsB,IAAIrS,KAAK,2BAA2B3V,QACzCm0C,EAAKnsB,IAAIlb,SAAS,2BAClBqnC,EAAKnsB,IAAIrS,KAAK,wBAAwB3V,QACtCm0C,EAAKnsB,IAAIlb,SAAS,uBACrB,CACA,GACEqnC,EAAKnsB,IAAIrS,KAAK,2BAA2B3V,QACtCm0C,EAAKnsB,IAAIlb,SAAS,2BAClBqnC,EAAKnsB,IAAIrS,KAAK,wBAAwB3V,QACtCm0C,EAAKnsB,IAAIlb,SAAS,uBAErB,OAEF8a,EAAIi7B,QAAQC,oBAAoB3O,EAAKvmC,MAGzCqd,KAAM,WACJ,IAAIrD,EAAMlpB,KACVkpB,EAAIpjB,KAAKmR,KAAK,2BAA2B3Q,MAAK,SAAUK,EAAOg9C,GAC7Dz6B,EAAIi7B,QAAQ53B,KAAKo3B,QAIvB17B,MAAO,CACLw8B,OAAQ,CACN3G,OAAQ,SAAgB71B,GACZjoB,KACNmkD,QAAQ53B,KAAKtE,EAAM81B,SAM3B2G,UAAY,CACdlgD,KAAM,YACN8L,GAAI,CACF0yC,SAAU,SAAkBvN,GACtBA,EAAKlP,WAAakP,EAAKlP,UAAUjlC,QAAUm0C,EAAKlP,UAAUtvB,KAAK,cAAc3V,QAC/Em0C,EAAKnsB,IAAIzb,SAAS,uBAEhB4nC,EAAKnsB,IAAIrS,KAAK,cAAc3V,QAC9Bm0C,EAAKnsB,IAAIzb,SAAS,0BAMtB82C,YAAc,SAAqBr7B,EAAKnH,EAAG2S,GAC7C,IAAI8vB,EAAS5kD,KACb,GAAKspB,EAAL,CACA,IAAI1V,EAAM0V,EAAI,GAAGzV,wBACbgxC,EACC1iC,EAAIvO,EAAIS,KADTwwC,EAEC/vB,EAAIlhB,EAAIQ,IAETpB,EAAQY,EAAIZ,MACZO,EAASK,EAAIL,OACbuxC,EAAWxsC,KAAKC,IAAKD,KAAKuoB,IAAOvoB,KAAKuoB,IAAKttB,EAAQ,GAAQ+E,KAAKuoB,IAAK7tB,EAAO,GAAO,IAAQ,IAa/F,OAXA4xC,EAAOG,cAAgBt4C,EAAG,0CAA+Cq4C,EAAW,eAAiBA,EAAW,mBAAsBA,EAAW,EAAK,oBAAuBA,EAAW,EAAK,YAAc,EAAa,WAAa,EAAa,eAElPx7B,EAAIxT,QAAQ8uC,EAAOG,eAEnBH,EAAOI,gBAAkB,gBAA+BhyC,EAAQ,EAApB6xC,GAA0B,QAAuBtxC,EAAS,EAArBsxC,GAA2B,kBAE5G3nC,MAAMa,WAAU,WACT6mC,GAAWA,EAAOG,eACvBH,EAAOG,cAAch1C,UAAU60C,EAAOI,oBAGjCJ,IAGTD,YAAYl8C,UAAU8gB,QAAU,WAC9B,IAAIq7B,EAAS5kD,KACT4kD,EAAOG,eACTH,EAAOG,cAAc52C,SAEvBjK,OAAO2B,KAAK++C,GAAQ7gD,SAAQ,SAAU6C,GACpCg+C,EAAOh+C,GAAO,YACPg+C,EAAOh+C,MAEhBg+C,EAAS,MAGXD,YAAYl8C,UAAU0F,OAAS,WAC7B,IAAIy2C,EAAS5kD,KACb,IAAI4kD,EAAOK,SAAX,CACA,IAAIF,EAAgB/kD,KAAK+kD,cACrBC,EAAkBhlD,KAAKglD,gBACvBE,EAAgBhoC,MAAMW,UAAS,WACjC+mC,EAAOr7B,YACN,KACHq7B,EAAOK,UAAW,EAClBF,EACGl3C,SAAS,oBACTkC,UAAUi1C,EAAgBnkD,QAAQ,WAAY,gBAC9CgS,eAAc,WACbvG,aAAa44C,GACbhoC,MAAMa,WAAU,WACdgnC,EACGl3C,SAAS,mBACTkC,UAAUi1C,EAAgBnkD,QAAQ,WAAY,gBAEjDqkD,EAAgBhoC,MAAMW,UAAS,WAC7B+mC,EAAOr7B,YACN,KAEHw7B,EAAclyC,eAAc,WAC1BvG,aAAa44C,GACbN,EAAOr7B,qBAMjB,IAAI47B,cAAgB,CAClB3gD,KAAM,eACNmkB,OAAQ,CACNg8B,YAAaA,aAEfx9B,OAAQ,WACInnB,KACN+0B,YAAc,CAChB5N,OAAQ,WAEN,IADA,IAAIpf,EAAO,GAAIC,EAAMC,UAAU3G,OACvB0G,KAAQD,EAAMC,GAAQC,UAAWD,GAEzC,OAAO,IAAKqhB,SAAS5gB,UAAU4S,KAAKnK,MAAOyzC,YAAa,CAAE,MAAOxpC,OAAQpT,SAM7Eq9C,aAAe,GACfC,aAAe,GACnB,SAASC,oBACqB,IAAxBD,aAAa/jD,QACJ+jD,aAAanrC,QACnBuP,OAET,IAAI87B,MAAsB,SAAUt+B,GAClC,SAASs+B,EAAMr8B,EAAKzP,GAClBwN,EAAgB/gB,KAAKlG,KAAMyZ,EAAQ,CAACyP,IAEpC,IAEIgD,EAAW,GAWf,OAbYlsB,KAKNynB,iBAAiByE,GALXlsB,KAONyZ,OAASyD,MAAM5U,OAAO4jB,EAAUzS,GAP1BzZ,KAQNwlD,QAAS,EARHxlD,KAWNqoB,aAECroB,KA6NT,OA1NKinB,IAAkBs+B,EAAMr+B,UAAYD,GACzCs+B,EAAM98C,UAAYvE,OAAOijB,OAAQF,GAAmBA,EAAgBxe,WACpE88C,EAAM98C,UAAUxE,YAAcshD,EAE9BA,EAAM98C,UAAUg9C,OAAS,WACXzlD,KACNwlD,QAAS,EACfJ,aAAa1jD,KAFD1B,MAGZyM,EAAE,QAAQoB,SAAU,cAHR7N,KAG+BqC,KAAK+K,eAHpCpN,KAINspB,IAAIjX,QAAS,cAJPrS,KAI8BqC,KAAK+K,cAAiB,SAJpDpN,KAKN2mB,KAAM,yBALA3mB,KAKsC,KAAI,OAL1CA,OAQdulD,EAAM98C,UAAUi9C,SAAW,WACb1lD,KACNspB,IAAIjX,QAAS,gBADPrS,KACgCqC,KAAK+K,cAAiB,WADtDpN,KAEN2mB,KAAM,6BAFA3mB,KAE0C,KAAI,SAF9CA,OAKdulD,EAAM98C,UAAUk9C,QAAU,WACZ3lD,KACNwlD,QAAS,EADHxlD,KAEDqC,MAFCrC,KAEcspB,MAC1B87B,aAAarzC,OAAOqzC,aAAazjD,QAHrB3B,MAGqC,GACjDyM,EAAE,QAAQyB,YAAa,cAJXlO,KAIkCqC,KAAK+K,eAJvCpN,KAKNspB,IAAIjX,QAAS,eALPrS,KAK+BqC,KAAK+K,cAAiB,UALrDpN,KAMN2mB,KAAM,2BANA3mB,KAMwC,KAAI,QAN5CA,QASdulD,EAAM98C,UAAUm9C,SAAW,WACb5lD,KACDqC,MADCrC,KACcspB,MADdtpB,KAENspB,IAAIpb,YAAY,aAFVlO,KAGNspB,IAAIhV,OAHEtU,KAINspB,IAAIjX,QAAS,gBAJPrS,KAIgCqC,KAAK+K,cAAiB,WAJtDpN,KAKN2mB,KAAM,6BALA3mB,KAK0C,KAAI,SAL9CA,QAQdulD,EAAM98C,UAAUghB,KAAO,SAAeo8B,GACpC,IAgBMC,EAhBFrgB,EAAQzlC,KACRkpB,EAAMuc,EAAMvc,IACZI,EAAMmc,EAAMnc,IACZy8B,EAActgB,EAAMsgB,YACpB1jD,EAAOojC,EAAMpjC,KACb+W,GAAU,EAMd,QAL4B,IAAjBysC,EAAgCzsC,EAAUysC,OACZ,IAAzBpgB,EAAMhsB,OAAOL,UAC3BA,EAAUqsB,EAAMhsB,OAAOL,UAGpBkQ,GAAOA,EAAIlb,SAAS,YACvB,OAAOq3B,EAGT,GAAa,WAATpjC,GAAqB6mB,EAAIzP,OAAOgsB,MAAMugB,eAEpCv5C,EAAE,oBAAoBnL,OAAS,EACjCwkD,GAAc,EACLV,aAAa9jD,OAAS,GAC/B8jD,aAAarhD,SAAQ,SAAUkiD,GACJ,WAArBA,EAAY5jD,OAAqByjD,GAAc,MAGnDA,GAEF,OADAT,aAAa3jD,KAAK+jC,GACXA,EAIX,IAAIygB,EAAiB58B,EAAIzT,SACrBswC,EAAW78B,EAAIjlB,QAAQmF,KAAKlI,OAAS,EAkBzC,SAASuR,IACHyW,EAAIlb,SAAS,aACfq3B,EAAMmgB,WACGt8B,EAAIlb,SAAS,aACtBq3B,EAAMigB,WA6BV,OAlDIx8B,EAAIzP,OAAOgsB,MAAM2gB,aAAeF,EAAej1C,GAAGiY,EAAIpjB,QACxDojB,EAAIpjB,KAAKyP,OAAO+T,GAChBmc,EAAMzzB,KAAM3P,EAAO,UAAW,WACxB8jD,EACFD,EAAe3wC,OAAO+T,GAEtBA,EAAInb,aAKVmb,EAAI9U,OAGJixB,EAAMnH,YAAchV,EAAI,GAAGvV,WAUvBqF,GACE2sC,IACFA,EAAY73C,YAAY,gBACxB63C,EAAYl4C,SAAS,gBAEvByb,EACGvW,cAAa,WACZF,OAEJyW,EACGzW,eAAc,WACbA,OAEJyW,EACGpb,YAAY,0BACZL,SAAS,YACZ43B,EAAMggB,WAEFM,GACFA,EAAYl4C,SAAS,4BAEvByb,EAAIpb,YAAY,aAAaL,SAAS,yBACtC43B,EAAMggB,SACNhgB,EAAMigB,YAGDjgB,GAGT8f,EAAM98C,UAAUshB,MAAQ,SAAgB87B,GACtC,IAAIpgB,EAAQzlC,KACRspB,EAAMmc,EAAMnc,IACZy8B,EAActgB,EAAMsgB,YAEpB3sC,GAAU,EAMd,QAL4B,IAAjBysC,EAAgCzsC,EAAUysC,OACZ,IAAzBpgB,EAAMhsB,OAAOL,UAC3BA,EAAUqsB,EAAMhsB,OAAOL,UAGpBkQ,IAAQA,EAAIlb,SAAS,YAIxB,OAHIi3C,aAAa1jD,QAAQ8jC,IAAU,GACjC4f,aAAatzC,OAAOszC,aAAa1jD,QAAQ8jC,GAAQ,GAE5CA,EAIT,GAAIsgB,EAAa,CACf,IAAIM,GAAqB,EACN,UAAf5gB,EAAMpjC,MACRojC,EAAMnc,IAAIzS,QAAQ,mBAAmBvQ,MAAK,SAAUK,EAAO2/C,GACzD,IAAIC,EAAgBD,EAAQx8B,QACvBy8B,GAEHA,EAAc9sC,OAAO+sC,sBAClBD,EAAc9sC,OAAOgtC,UACrBF,EAAcG,aAAejhB,EAAMihB,aAEtCL,GAAqB,MAIvBA,IACFN,EAAY3sC,EAAU,cAAgB,YAAY,gBAClD2sC,EAAY73C,YAAY,gBAM5B,SAAS2E,IACHyW,EAAIlb,SAAS,aACfq3B,EAAMmgB,WACGt8B,EAAIlb,SAAS,aACtBq3B,EAAMigB,WA+BV,OApCAp8B,EAAIlQ,EAAU,cAAgB,YAAY,gBAQtCA,GACFkQ,EACGvW,cAAa,WACZF,OAEJyW,EACGzW,eAAc,WACbA,OAEJyW,EACGpb,YAAY,YACZL,SAAS,aAEZ43B,EAAMkgB,YAENr8B,EACGzb,SAAS,gBACTK,YAAY,YACZL,SAAS,aAEZ43B,EAAMkgB,UACNlgB,EAAMmgB,YAGW,WAAfngB,EAAMpjC,MACRijD,oBAGK7f,GAGT8f,EAAM98C,UAAU8gB,QAAU,WACZvpB,KACF2mD,YADE3mD,KAEN2mB,KAAM,2CAFA3mB,KAEwD,KAAI,gBAF5DA,MAAAA,KAGFspB,MAHEtpB,KAIJspB,IAAIjX,QAAS,uBAJTrS,KAIyCqC,KAAK+K,cAAiB,kBAJ/DpN,KAKAspB,IAAIhoB,QALJtB,KAKoBspB,IAAI,GAAGQ,gBAL3B9pB,KAMKspB,IAAI,GAAGQ,SAGxB5M,MAAMU,YATM5d,MAAAA,KAUN2mD,WAAY,IAGbpB,EA9OgB,CA+OvBt+B,iBAEE2/B,YAA4B,SAAUrB,GACxC,SAASqB,EAAY19B,EAAKzP,GACxB,IAAIotC,EAAiB3pC,MAAM5U,OAAO,CAChCm+C,UAAU,EACVD,sBAAsB,EACtBl2C,GAAI,IACHmJ,GAGH8rC,EAAMr/C,KAAKlG,KAAMkpB,EAAK29B,GAEtB,IAKIv9B,EAcAy8B,EAnBAe,EAAc9mD,KAYlB,GAVA8mD,EAAYrtC,OAASotC,GAOnBv9B,EAHGw9B,EAAYrtC,OAAOvK,GAGhBzC,EAAEq6C,EAAYrtC,OAAOvK,IAFrBzC,EAAEq6C,EAAYrtC,OAAOnX,WAKlBgnB,EAAIhoB,OAAS,GAAKgoB,EAAI,GAAGQ,QAClC,OAAOR,EAAI,GAAGQ,QAGhB,GAAmB,IAAfR,EAAIhoB,OACN,OAAOwlD,EAAYv9B,UAWrB,SAASw9B,EAAYl2C,GACdi2C,IAAeA,EAAYH,WAC5BZ,GAAel1C,EAAEtI,SAAWw9C,EAAY,IAC1Ce,EAAY/8B,QA0BhB,OArCI+8B,EAAYrtC,OAAOgtC,UAEM,KAD3BV,EAAc78B,EAAIpjB,KAAKyE,SAAS,2BAChBjJ,SACdykD,EAAct5C,EAAE,6CAChByc,EAAIpjB,KAAKyP,OAAOwwC,IAWpBe,EAAYx2C,GAAG,qBAAqB,WAC9Bw2C,EAAYrtC,OAAO+sC,sBAAwBM,EAAYrtC,OAAOgtC,UAChEv9B,EAAI5Y,GAAG,QAASy2C,MAGpBD,EAAYx2C,GAAG,oBAAoB,WAC7Bw2C,EAAYrtC,OAAO+sC,sBAAwBM,EAAYrtC,OAAOgtC,UAChEv9B,EAAIvX,IAAI,QAASo1C,MAIrB7pC,MAAM5U,OAAOw+C,EAAa,CACxB59B,IAAKA,EACLI,IAAKA,EACLpa,GAAIoa,EAAI,GACRy8B,YAAaA,EACbW,WAAYX,GAAeA,EAAY,GACvC1jD,KAAM,gBAGRinB,EAAI,GAAGQ,QAAUg9B,EAEVA,EAOT,OAJKvB,IAAQqB,EAAY1/B,UAAYq+B,GACrCqB,EAAYn+C,UAAYvE,OAAOijB,OAAQo+B,GAASA,EAAM98C,WACtDm+C,EAAYn+C,UAAUxE,YAAc2iD,EAE7BA,EA3EsB,CA4E7BrB,OAEEyB,QAAU,CACZxiD,KAAM,QACNmkB,OAAQ,CACN48B,MAAOA,MACPqB,YAAaA,aAEfz/B,OAAQ,WACN,IAAI+B,EAAMlpB,KACVkpB,EAAI49B,YAAc,CAChB3/B,OAAQ,SAAgB1N,GACtB,OAAO,IAAImtC,YAAY19B,EAAKzP,MAIlCA,OAAQ,CACNgsB,MAAO,CACL2gB,YAAY,EACZJ,cAAc,KAKhBiB,OAAS,CACXziD,KAAM,UAGJ0iD,OAAuB,SAAU3B,GACnC,SAAS2B,EAAOh+B,EAAKzP,GACnB,IAAIotC,EAAiB3pC,MAAM5U,OAAO,CAChCm2C,MAAOv1B,EAAIzP,OAAO0tC,OAAO1I,MACzB5pC,UAAM1U,EACNmC,QAAS,GACT8kD,QAAS,GACTC,iBAAiB,EACjBrM,aAAS76C,EACTmnD,cAAUnnD,EACVonD,gBAAgB,EAChBj3C,GAAI,IACHmJ,QACgD,IAAxCotC,EAAeL,uBACxBK,EAAeL,qBAAuBt9B,EAAIzP,OAAO0tC,OAAOX,2BAEnB,IAA5BK,EAAeJ,WACxBI,EAAeJ,SAAWv9B,EAAIzP,OAAO0tC,OAAOV,UAI9ClB,EAAMr/C,KAAKlG,KAAMkpB,EAAK29B,GAEtB,IAaIv9B,EA2BAy8B,EAkBAyB,EA1DAL,EAASnnD,KAETy+C,EAAQoI,EAAepI,MACvB5pC,EAAOgyC,EAAehyC,KACtBvS,EAAUukD,EAAevkD,QACzB8kD,EAAUP,EAAeO,QACzBC,EAAkBR,EAAeQ,gBACjCC,EAAWT,EAAeS,SAC1Bb,EAAWI,EAAeJ,SAM9B,GAJAU,EAAO1tC,OAASotC,EAIXM,EAAO1tC,OAAOvK,GAejBoa,EAAM7c,EAAE06C,EAAO1tC,OAAOvK,QAfD,CACrB,IAAIu4C,EAAgB,CAAC,UACE,IAAnBL,EAAQ9lD,QAAgBmmD,EAAc/lD,KAAK,qBAC3C0lD,EAAQ9lD,OAAS,GAAKmmD,EAAc/lD,KAAM,kBAAqB0lD,EAAc,QAC7EC,GAAmBI,EAAc/lD,KAAK,2BACtC4lD,GAAYG,EAAc/lD,KAAK4lD,GAEnC,IAAII,EAAc,GACdN,EAAQ9lD,OAAS,IACnBomD,EAAc,yDAA8DN,EAAQzyC,KAAI,SAAUgzC,GAAU,MAAQ,8CAAiDA,EAAOC,KAAO,sBAAwB,KAAOD,EAAOzM,MAAS,UAAayM,EAAY,MAAK,KAAOA,EAAOL,SAAY,IAAOK,EAAe,SAAK,IAAM,KAASA,EAAW,KAAI,2BAA6BxjD,KAAK,IAAO,gCAG9X,IAAI0jD,EAAa,yBAA6BJ,EAActjD,KAAK,KAAQ,0DAA+Ds6C,EAAS,6BAAiCA,EAAQ,SAAY,IAAM,kBAAoB5pC,EAAQ,4BAAgCA,EAAO,SAAY,IAAM,iBAAmBvS,EAAU,iCAAmColD,EAAc,2BAC/Wp+B,EAAM7c,EAAEo7C,GAKV,GAAIv+B,GAAOA,EAAIhoB,OAAS,GAAKgoB,EAAI,GAAGQ,QAClC,OAAOR,EAAI,GAAGQ,QAGhB,GAAmB,IAAfR,EAAIhoB,OACN,OAAO6lD,EAAO59B,UAahB,SAASu+B,EAAcj3C,GACrB,IACIlK,EAAQ8F,EADGzM,MACS2G,QACpBghD,EAASP,EAAQzgD,GACjBghD,EAAO3M,SAAW2M,EAAO3M,QAAQmM,EAAQt2C,GACzCs2C,EAAO1tC,OAAOuhC,SAAWmM,EAAO1tC,OAAOuhC,QAAQmM,EAAQxgD,IACtC,IAAjBghD,EAAO59B,OAAmBo9B,EAAOp9B,QAGvC,SAASg+B,EAAUl3C,GACjB,IAAIm3C,EAAUn3C,EAAEm3C,QAChBZ,EAAQrjD,SAAQ,SAAU4jD,EAAQhhD,GAC5BghD,EAAOM,UAAYN,EAAOM,SAAStmD,QAAQqmD,IAAY,IACrDx+C,IAAIM,eAAiBN,IAAIM,cAAcC,OACvC49C,EAAO3M,SAAW2M,EAAO3M,QAAQmM,EAAQt2C,GACzCs2C,EAAO1tC,OAAOuhC,SAAWmM,EAAO1tC,OAAOuhC,QAAQmM,EAAQxgD,IACtC,IAAjBghD,EAAO59B,OAAmBo9B,EAAOp9B,YAwE3C,SAASg9B,EAAYl2C,GACnB,IAAItI,EAASsI,EAAEtI,OAE2B,IAD5BkE,EAAElE,GACJyO,QAAQmwC,EAAOj4C,IAAI5N,QAE3B6lD,EAAO1tC,OAAO+sC,sBACXW,EAAOT,YACPS,EAAOT,aAAen+C,GAEzB4+C,EAAOp9B,QA0Bb,OApII08B,GAEyB,KAD3BV,EAAc78B,EAAIpjB,KAAKyE,SAAS,qBAChBjJ,SACdykD,EAAct5C,EAAE,uCAChByc,EAAIpjB,KAAKyP,OAAOwwC,IAyBhBqB,GAAWA,EAAQ9lD,OAAS,IAC9B6lD,EAAO72C,GAAG,QAAQ,WAChBgZ,EAAIrS,KAAK,kBAAkB3Q,MAAK,SAAUK,EAAOuhD,GAClCd,EAAQzgD,GACVshD,WAAYT,GAAoB,GAC3C/6C,EAAEy7C,GAAU53C,GAAG,QAASw3C,OAGxBN,GACIt+B,EAAI7E,OAAOC,KACX4E,EAAI7E,OAAOE,SACX2E,EAAI7E,OAAOa,SAEfzY,EAAEjD,KAAK8G,GAAG,UAAWy3C,MAGzBZ,EAAO72C,GAAG,SAAS,WACjBgZ,EAAIrS,KAAK,kBAAkB3Q,MAAK,SAAUK,EAAOuhD,GAC/Cz7C,EAAEy7C,GAAUv2C,IAAI,QAASm2C,OAGzBN,GACIt+B,EAAI7E,OAAOC,KACX4E,EAAI7E,OAAOE,SACX2E,EAAI7E,OAAOa,SAEfzY,EAAEjD,KAAKmI,IAAI,UAAWo2C,GAExBP,GAAoB,MAGxBtqC,MAAM5U,OAAO6+C,EAAQ,CACnBj+B,IAAKA,EACLI,IAAKA,EACLpa,GAAIoa,EAAI,GACRy8B,YAAaA,EACbW,WAAYX,GAAeA,EAAY,GACvC1jD,KAAM,SACN8lD,YAAa,SAAqBpvC,EAAU5I,GAE1C,OADA+Y,EAAIk/B,YAAY7/B,IAAIe,EAAIrS,KAAK,gBAAiB8B,EAAU5I,GACjDg3C,GAETkB,QAAS,SAAiBC,GACxB,IAAIC,EAAUj/B,EAAIrS,KAAK,gBAWvB,OAVuB,IAAnBsxC,EAAQjnD,SACVinD,EAAU97C,EAAE,wCACS,IAAVgyC,EACT8J,EAAQnyC,YAAYkT,EAAIrS,KAAK,kBAE7BqS,EAAIrS,KAAK,iBAAiBnB,QAAQyyC,IAGtCA,EAAQ17C,KAAKy7C,GACbnB,EAAO1tC,OAAO5E,KAAOyzC,EACdnB,GAETqB,SAAU,SAAkBC,GAC1B,IAAIC,EAAWp/B,EAAIrS,KAAK,iBAOxB,OANwB,IAApByxC,EAASpnD,SACXonD,EAAWj8C,EAAE,oCACb6c,EAAIrS,KAAK,iBAAiBnB,QAAQ4yC,IAEpCA,EAAS77C,KAAK47C,GACdtB,EAAO1tC,OAAOglC,MAAQgK,EACftB,KAkBXA,EAAO72C,GAAG,UAAU,WACd62C,EAAO1tC,OAAO+sC,sBAChBt9B,EAAI5Y,GAAG,QAASy2C,MAGpBI,EAAO72C,GAAG,SAAS,WACb62C,EAAO1tC,OAAO+sC,sBAChBt9B,EAAIvX,IAAI,QAASo1C,MAIrBz9B,EAAI,GAAGQ,QAAUq9B,EAEbA,EAAO1tC,OAAO8tC,gBAChBJ,EAAOn1C,KAAK,UAAU,WACpB3F,YAAW,WACT86C,EAAO59B,YACN,MAIA49B,EAOT,OAJK5B,IAAQ2B,EAAOhgC,UAAYq+B,GAChC2B,EAAOz+C,UAAYvE,OAAOijB,OAAQo+B,GAASA,EAAM98C,WACjDy+C,EAAOz+C,UAAUxE,YAAcijD,EAExBA,EA3MiB,CA4MxB3B,OAEEoD,SAAW,CACbnkD,KAAM,SACNiV,OAAQ,CACN0tC,OAAQ,CACN1I,WAAOt+C,EACPyoD,SAAU,KACVC,aAAc,SACdC,oBAAqB,WACrBC,oBAAqB,WACrBC,eAAgB,cAChBC,cAAe,cACfxC,UAAU,EACVD,sBAAsB,EACtB0C,0BAA0B,EAC1BC,iBAAiB,EACjBC,WAAW,IAGfzgC,OAAQ,CACNu+B,OAAQA,QAEV//B,OAAQ,WACN,IAAI+B,EAAMlpB,KACV,SAASqpD,IACP,OAAOngC,EAAIzP,OAAO0tC,OAAO1I,OAASv1B,EAAI1kB,KAExC,IAAI+iD,EAAiBr+B,EAAIzP,OAAO0tC,OAAO+B,yBACnCC,EAAkBjgC,EAAIzP,OAAO0tC,OAAOgC,gBAEpCG,EADYpgC,EAAIzP,OAAO0tC,OAAOiC,UACE,CAClC94C,GAAI,CACFk1C,OAAQ,SAAgB2B,GACtBA,EAAO79B,IAAIrS,KAAK,SAAS5B,GAAG,GAAGiG,WAGjC,GAEJ4N,EAAIi+B,OAASjqC,MAAM5U,OACjBkhB,aAAa,CACXN,IAAKA,EACLjlB,YAAaijD,OACbn+B,gBAAiB,qBAEnB,CAEEwgC,MAAO,WAIL,IAHA,IAAIh5C,EAEAxI,EAAO,GAAIC,EAAMC,UAAU3G,OACvB0G,KAAQD,EAAMC,GAAQC,UAAWD,GACzC,IAAI6M,EAAO9M,EAAK,GACZ02C,EAAQ12C,EAAK,GACbyhD,EAAazhD,EAAK,GAItB,OAHoB,IAAhBA,EAAKzG,QAAmC,mBAAZyG,EAAK,KACnB8M,GAAftE,EAASxI,GAAoB,GAAIyhD,EAAaj5C,EAAO,GAAIkuC,EAAQluC,EAAO,IAEpE,IAAI22C,OAAOh+B,EAAK,CACrBu1B,WAAwB,IAAVA,EAAwB4K,IAAuB5K,EAC7D5pC,KAAMA,EACNuyC,QAAS,CAAC,CACRvyC,KAAMqU,EAAIzP,OAAO0tC,OAAOyB,SACxBhB,MAAM,EACN5M,QAASwO,EACTvB,SAAUkB,EAAkB,CAAC,GAAI,IAAM,OAEzC5B,eAAgBA,IACf99B,QAELggC,OAAQ,WAIN,IAHA,IAAIl5C,EAEAxI,EAAO,GAAIC,EAAMC,UAAU3G,OACvB0G,KAAQD,EAAMC,GAAQC,UAAWD,GACzC,IAAI6M,EAAO9M,EAAK,GACZ02C,EAAQ12C,EAAK,GACbyhD,EAAazhD,EAAK,GAClB2hD,EAAiB3hD,EAAK,GACtB4hD,EAAe5hD,EAAK,GAKxB,MAJuB,mBAAZA,EAAK,KACE8M,GAAftE,EAASxI,GAAoB,GAAIyhD,EAAaj5C,EAAO,GAAIm5C,EAAiBn5C,EAAO,GAAIo5C,EAAep5C,EAAO,GAAIkuC,EAAQluC,EAAO,IAEjIo5C,EAAe,MAAOA,EAAwD,GAAKA,EAC5E,IAAIzC,OAAOh+B,EAAKhlB,OAAOqM,OAAO,GAAI,CAACkuC,WAAwB,IAAVA,EAAwB4K,IAAuB5K,EACrG5pC,KAAMA,EACNvS,QAAU,wFAAiGqnD,EAAe,WAC1HvC,QAAS,CACP,CACEvyC,KAAMqU,EAAIzP,OAAO0tC,OAAO0B,aACxBZ,SAAUkB,EAAkB,CAAC,IAAM,KACnCjO,MAAqB,WAAdhyB,EAAI/C,MAAqB,OAAS,MAE3C,CACEtR,KAAMqU,EAAIzP,OAAO0tC,OAAOyB,SACxBhB,MAAM,EACNK,SAAUkB,EAAkB,CAAC,IAAM,OAEvCnO,QAAS,SAAiBmM,EAAQxgD,GAChC,IAAIijD,EAAazC,EAAO79B,IAAIrS,KAAK,iBAAiBxH,MACpC,IAAV9I,GAAe+iD,GAAkBA,EAAeE,GACtC,IAAVjjD,GAAe6iD,GAAcA,EAAWI,IAE9CrC,eAAgBA,GAChB+B,IAAmB7/B,QAEvBogC,QAAS,WAIP,IAHA,IAAIt5C,EAEAxI,EAAO,GAAIC,EAAMC,UAAU3G,OACvB0G,KAAQD,EAAMC,GAAQC,UAAWD,GACzC,IAAI6M,EAAO9M,EAAK,GACZ02C,EAAQ12C,EAAK,GACbyhD,EAAazhD,EAAK,GAClB2hD,EAAiB3hD,EAAK,GAI1B,MAHuB,mBAAZA,EAAK,KACE8M,GAAftE,EAASxI,GAAoB,GAAIyhD,EAAaj5C,EAAO,GAAIm5C,EAAiBn5C,EAAO,GAAIkuC,EAAQluC,EAAO,IAEhG,IAAI22C,OAAOh+B,EAAK,CACrBu1B,WAAwB,IAAVA,EAAwB4K,IAAuB5K,EAC7D5pC,KAAMA,EACNuyC,QAAS,CACP,CACEvyC,KAAMqU,EAAIzP,OAAO0tC,OAAO0B,aACxB7N,QAAS0O,EACTzB,SAAUkB,EAAkB,CAAC,IAAM,KACnCjO,MAAqB,WAAdhyB,EAAI/C,MAAqB,OAAS,MAE3C,CACEtR,KAAMqU,EAAIzP,OAAO0tC,OAAOyB,SACxBhB,MAAM,EACN5M,QAASwO,EACTvB,SAAUkB,EAAkB,CAAC,IAAM,OAEvC5B,eAAgBA,IACf99B,QAELqgC,MAAO,WAIL,IAHA,IAAIv5C,EAEAxI,EAAO,GAAIC,EAAMC,UAAU3G,OACvB0G,KAAQD,EAAMC,GAAQC,UAAWD,GACzC,IAAI6M,EAAO9M,EAAK,GACZ02C,EAAQ12C,EAAK,GACbyhD,EAAazhD,EAAK,GAClB2hD,EAAiB3hD,EAAK,GAI1B,MAHuB,mBAAZA,EAAK,KACE8M,GAAftE,EAASxI,GAAoB,GAAIyhD,EAAaj5C,EAAO,GAAIm5C,EAAiBn5C,EAAO,GAAIkuC,EAAQluC,EAAO,IAEhG,IAAI22C,OAAOh+B,EAAKhlB,OAAOqM,OAAO,GAAI,CAACkuC,WAAwB,IAAVA,EAAwB4K,IAAuB5K,EACrG5pC,KAAMA,EACNvS,QAAU,sJAAgK4mB,EAAIzP,OAAO0tC,OAA0B,oBAAI,uMAAoNj+B,EAAIzP,OAAO0tC,OAA0B,oBAAI,gDAChdC,QAAS,CACP,CACEvyC,KAAMqU,EAAIzP,OAAO0tC,OAAO0B,aACxBZ,SAAUkB,EAAkB,CAAC,IAAM,KACnCjO,MAAqB,WAAdhyB,EAAI/C,MAAqB,OAAS,MAE3C,CACEtR,KAAMqU,EAAIzP,OAAO0tC,OAAOyB,SACxBhB,MAAM,EACNK,SAAUkB,EAAkB,CAAC,IAAM,OAEvCnO,QAAS,SAAiBmM,EAAQxgD,GAChC,IAAIojD,EAAW5C,EAAO79B,IAAIrS,KAAK,4BAA4BxH,MACvD2f,EAAW+3B,EAAO79B,IAAIrS,KAAK,4BAA4BxH,MAC7C,IAAV9I,GAAe+iD,GAAkBA,EAAeK,EAAU36B,GAChD,IAAVzoB,GAAe6iD,GAAcA,EAAWO,EAAU36B,IAExDm4B,eAAgBA,GAChB+B,IAAmB7/B,QAEvB2F,SAAU,WAIR,IAHA,IAAI7e,EAEAxI,EAAO,GAAIC,EAAMC,UAAU3G,OACvB0G,KAAQD,EAAMC,GAAQC,UAAWD,GACzC,IAAI6M,EAAO9M,EAAK,GACZ02C,EAAQ12C,EAAK,GACbyhD,EAAazhD,EAAK,GAClB2hD,EAAiB3hD,EAAK,GAI1B,MAHuB,mBAAZA,EAAK,KACE8M,GAAftE,EAASxI,GAAoB,GAAIyhD,EAAaj5C,EAAO,GAAIm5C,EAAiBn5C,EAAO,GAAIkuC,EAAQluC,EAAO,IAEhG,IAAI22C,OAAOh+B,EAAKhlB,OAAOqM,OAAO,GAAI,CAACkuC,WAAwB,IAAVA,EAAwB4K,IAAuB5K,EACrG5pC,KAAMA,EACNvS,QAAU,sIAAgJ4mB,EAAIzP,OAAO0tC,OAA0B,oBAAI,gDACnMC,QAAS,CACP,CACEvyC,KAAMqU,EAAIzP,OAAO0tC,OAAO0B,aACxBZ,SAAUkB,EAAkB,CAAC,IAAM,KACnCjO,MAAqB,WAAdhyB,EAAI/C,MAAqB,OAAS,MAE3C,CACEtR,KAAMqU,EAAIzP,OAAO0tC,OAAOyB,SACxBhB,MAAM,EACNK,SAAUkB,EAAkB,CAAC,IAAM,OAEvCnO,QAAS,SAAiBmM,EAAQxgD,GAChC,IAAIyoB,EAAW+3B,EAAO79B,IAAIrS,KAAK,4BAA4BxH,MAC7C,IAAV9I,GAAe+iD,GAAkBA,EAAet6B,GACtC,IAAVzoB,GAAe6iD,GAAcA,EAAWp6B,IAE9Cm4B,eAAgBA,GAChB+B,IAAmB7/B,QAEvBugC,UAAW,SAAmBvL,EAAOvD,GACnC,IAAI+O,EAAiB/sC,MAAQgM,EAAS,MAAI,qBAAwB,GAClE,OAAO,IAAIg+B,OAAOh+B,EAAK,CACrBu1B,MAAO,MAAOA,EAA0Cv1B,EAAIzP,OAAO0tC,OAAO6B,eAAiBvK,EAC3Fn8C,QAAU,yBAA4B44C,EAAS,UAAYA,EAAS,IAAM,KAAQ+O,EAAiB,SACnG3C,SAAU,mBACVC,eAAgBA,IACf99B,QAEL1Q,SAAU,WAIR,IAHA,IAAIxI,EAAQ0hB,EAAUi4B,EAElBniD,EAAO,GAAIC,EAAMC,UAAU3G,OACvB0G,KAAQD,EAAMC,GAAQC,UAAWD,GACzC,IAAIy2C,EAAQ12C,EAAK,GACbgR,EAAWhR,EAAK,GAChBmzC,EAAQnzC,EAAK,GACG,IAAhBA,EAAKzG,OACgB,iBAAZyG,EAAK,IACEgR,GAAfxI,EAASxI,GAAwB,GAAImzC,EAAQ3qC,EAAO,GAAIkuC,EAAQluC,EAAO,IAC5C,iBAAZxI,EAAK,IAAsC,iBAAZA,EAAK,KAClC02C,GAAjBxsB,EAAWlqB,GAAuB,GAAImzC,EAAQjpB,EAAS,GAAIlZ,EAAWkZ,EAAS,IAEzD,IAAhBlqB,EAAKzG,QACS,iBAAZyG,EAAK,KACIgR,GAAjBmxC,EAAWniD,GAA0B,GAAI02C,EAAQyL,EAAS,GAAIhP,EAAQgP,EAAS,IAGpF,IAAIC,OAA+B,IAAbpxC,EAClBouC,EAAS,IAAID,OAAOh+B,EAAK,CAC3Bu1B,WAAwB,IAAVA,EAAwBv1B,EAAIzP,OAAO0tC,OAAO8B,cAAgBxK,EACxE6I,SAAU,kBACVhlD,QAAU,2CAA8C6nD,EAAW,YAAc,KAAOjP,EAAS,UAAYA,EAAS,IAAM,wBAA4BiP,EAA6B,GAAlB,iBAAwB,uCAC3L5C,eAAgBA,IAGlB,OADK4C,GAAYhD,EAAOgB,YAAYpvC,GAC7BouC,EAAO19B,YAOpB2gC,MAAsB,SAAU7E,GAClC,SAAS6E,EAAMlhC,EAAKzP,GAClB,IAAIotC,EAAiB3pC,MAAM5U,OACzB,CAAEgI,GAAI,IACN4Y,EAAIzP,OAAO4wC,MACX5wC,GAIF8rC,EAAMr/C,KAAKlG,KAAMkpB,EAAK29B,GAEtB,IAKIv9B,EAeAy8B,EAiEAuE,EACAC,EAtFAF,EAAQrqD,KAYZ,GAVAqqD,EAAM5wC,OAASotC,GAObv9B,EAHG+gC,EAAM5wC,OAAOvK,GAGVzC,EAAE49C,EAAM5wC,OAAOvK,IAAImG,GAAG,GAFtB5I,EAAE49C,EAAM5wC,OAAOnX,SAASoQ,QAAO,SAAU83C,EAASC,GAAQ,OAAyB,IAAlBA,EAAKz9C,YAAmBqI,GAAG,KAKzFiU,EAAIhoB,OAAS,GAAKgoB,EAAI,GAAGQ,QAClC,OAAOR,EAAI,GAAGQ,QAGhB,GAAmB,IAAfR,EAAIhoB,OACN,OAAO+oD,EAAM9gC,UA6Bf,SAASw9B,EAAYl2C,GACnB,IAAItI,EAASsI,EAAEtI,OACXmiD,EAAUj+C,EAAElE,GAEhB,MADsB2gB,EAAI7E,OAAOI,SAAWyE,EAAI7E,OAAOa,UAAa5Z,IAAIq/C,UAAYr/C,IAAIq/C,SAASpP,WAAejwC,IAAI4Z,QAAQ0lC,SAAWt/C,IAAI4Z,QAAQ0lC,QAAQD,UAAYr/C,IAAI4Z,QAAQ0lC,QAAQD,SAASpP,aAE3J,IAArCmP,EAAQ1zC,QAAQqzC,EAAMn7C,IAAI5N,QAE1B+oD,EAAM5wC,QACH4wC,EAAM5wC,OAAO+sC,sBACb6D,EAAM5wC,OAAOgtC,UACb4D,EAAM3D,YACN2D,EAAM3D,aAAen+C,EACxB,CACA,IAAIsiD,GAAc,EAClBR,EAAM/gC,IAAI7S,QAAQ,mBAAmBnQ,MAAK,SAAUK,EAAO2/C,GACzD,IAAIC,EAAgBD,EAAQx8B,QACvBy8B,GAEHA,EAAc9sC,OAAO+sC,sBAClBD,EAAc9sC,OAAOgtC,UACrBF,EAAcG,aAAe2D,EAAM3D,aAEtCmE,GAAc,MAGdA,GACFR,EAAMtgC,SAMd,SAASg+B,EAAUl3C,GAED,KADFA,EAAEm3C,SACMqC,EAAM5wC,OAAOqxC,eACjCT,EAAMtgC,QAOV,SAASghC,EAAcp3C,GACrB,OAAQuV,EAAI3V,OAAkB,EAATI,GAAcuV,EAAI3V,OApErC82C,EAAM5wC,OAAOgtC,UAAY4D,EAAM5wC,OAAOitC,WACxCX,EAAct5C,EAAE49C,EAAM5wC,OAAOitC,YACpB2D,EAAM5wC,OAAOgtC,UAEK,KAD3BV,EAAc78B,EAAIpjB,KAAKyE,SAAS,oBAChBjJ,SACdykD,EAAct5C,EAAE,sCAChByc,EAAIpjB,KAAKyP,OAAOwwC,IAIpB7oC,MAAM5U,OAAO+hD,EAAO,CAClBnhC,IAAKA,EACLxnB,KAAM4nB,EAAIlb,SAAS,eAAiBi8C,EAAM5wC,OAAO/X,KACjD4nB,IAAKA,EACLpa,GAAIoa,EAAI,GACRy8B,YAAaA,EACbW,WAAYX,GAAeA,EAAY,GACvC1jD,KAAM,QACN01C,QAAStrC,EAAE,UAGT49C,EAAM5wC,OAAO/X,MACf4nB,EAAIzb,SAAS,cAiDf,IAEIm9C,EACAC,EACApuB,EACAG,EACAD,EAEAiZ,EACAkV,EACAC,EACAC,EACAC,EACAC,EAbAC,GAAoB,EACpBjuB,GAAY,EAMZ3J,GAAU,EAQd,SAAS+K,EAAiB7tB,IACpBysB,GAAciuB,GAAsBlB,EAAM5wC,OAAO+xC,eACjDnB,EAAM5wC,OAAOgyC,cAA0E,IAA1Dh/C,EAAEoE,EAAEtI,QAAQyO,QAAQqzC,EAAM5wC,OAAOgyC,cAAcnqD,SAGhFg8B,GAAY,EACZ3J,GAAU,EACVq3B,EAAa,CACX7oC,EAAc,eAAXtR,EAAExO,KAAwBwO,EAAEomB,cAAc,GAAGG,MAAQvmB,EAAEumB,MAC1DtC,EAAc,eAAXjkB,EAAExO,KAAwBwO,EAAEomB,cAAc,GAAGI,MAAQxmB,EAAEwmB,OAE5D2F,EAAiB9f,MAAMc,MACvB6e,OAAc18B,EACTkqD,EAAM5wC,OAAOgyC,cAA2B,eAAX56C,EAAExO,OAClC2zC,EAAgBvpC,EAAEoE,EAAEtI,QAAQyO,QAAQ,iBAAiB,MAGzD,SAAS8nB,EAAgBjuB,GACvB,GAAKysB,EAAL,CASA,GARA2tB,EAAe,CACb9oC,EAAc,cAAXtR,EAAExO,KAAuBwO,EAAEomB,cAAc,GAAGG,MAAQvmB,EAAEumB,MACzDtC,EAAc,cAAXjkB,EAAExO,KAAuBwO,EAAEomB,cAAc,GAAGI,MAAQxmB,EAAEwmB,YAGhC,IAAhBwF,IACTA,KAAiBA,GAAevkB,KAAKuJ,IAAIopC,EAAa9oC,EAAI6oC,EAAW7oC,GAAK7J,KAAKuJ,IAAIopC,EAAan2B,EAAIk2B,EAAWl2B,KAE7G+H,EAGF,OAFAS,GAAY,OACZ3J,GAAU,GAIZoJ,EAAciuB,EAAWl2B,EAAIm2B,EAAan2B,EACtCy1B,GAAUD,GAAcvtB,EAAc,IACxCA,EAAc,GAEhB,IAAIsG,EAAYtG,EAAc,EAAI,YAAc,SAGhD,GAFAzT,EAAIpZ,WAAW,GAE0B,iBAA9Bm6C,EAAM5wC,OAAO+xC,cAA6BnoB,IAAcgnB,EAAM5wC,OAAO+xC,aAG9E,OAFAliC,EAAIvZ,UAAU,SACduZ,EAAIpZ,WAAW,IAIjB,GAAKyjB,EA4BH02B,EAAM1jC,KAAK,kCAAmC0jC,GAC9CA,EAAM/gC,IAAIjX,QAAQ,uBA7BN,CAQZ,GAPIk4C,GAAUD,IACZe,EAAc/hC,EAAI,GAAG5V,aAEE,KADvB43C,EAAUhiC,EAAIzS,QAAQ,mBAAmBxB,GAAG,IAChC/T,SACVgqD,EAAUpiC,EAAIpjB,KAAKyE,SAAS,mBAG5ByrC,IACFkV,EAAuBlV,EAAchiC,UACrCo3C,EAA0BpV,EAAc39B,aACxC8yC,EAA0BnV,EAActiC,eAEpC03C,IAA4BD,GACX,cAAd9nB,GAAsD,IAAzB6nB,GACf,WAAd7nB,GAA0B6nB,IAA0BE,EAA0BD,IAMnF,OAJA7hC,EAAIvZ,UAAU,IACduZ,EAAIpZ,WAAW,IACfotB,GAAY,OACZ3J,GAAU,GAIdA,GAAU,EACV02B,EAAM1jC,KAAK,oCAAqC0jC,GAChDA,EAAM/gC,IAAIjX,QAAQ,oBAOpB,GADAxB,EAAEmmB,iBACEuzB,GAAUD,EAAY,CACxB,IAAIoB,EAAe,EAAIpzC,KAAKuJ,IAAIkb,EAAcsuB,GAC1CM,EAAQ,GAAK,EAAIZ,EAAcT,IAAeoB,EAC9CJ,EAAQl9C,SAAS,SACfk9C,EAAQl9C,SAAS,cACnBk9C,EAAQp7C,WAAW,GAAGH,UACnB,4BAA8B27C,EAAe,yDAA2DC,EAAQ,KAGnHL,EAAQp7C,WAAW,GAAGH,UACnB,mCAAqC47C,EAAQ,KAIlDL,EAAQp7C,WAAW,GAAGH,UAAW,4BAA8B47C,EAAQ,KAG3EriC,EAAIpZ,WAAW,GAAGH,UAAW,kBAAqBgtB,EAAe,UAEnE,SAASmF,IAEP,GADA5E,GAAY,EACP3J,EAAL,CAGA02B,EAAM1jC,KAAK,gCAAiC0jC,GAC5CA,EAAM/gC,IAAIjX,QAAQ,kBAClBshB,GAAU,EACV43B,GAAoB,EACpBjiC,EAAIpZ,WAAW,IACXq6C,GAAUD,GACZgB,EAAQp7C,WAAW,IAAIH,UAAU,IAEnC,IAAIszB,EAAYtG,GAAe,EAAI,YAAc,SACjD,GAA0C,iBAA9BstB,EAAM5wC,OAAO+xC,cAA6BnoB,IAAcgnB,EAAM5wC,OAAO+xC,aAG/E,OAFAliC,EAAIvZ,UAAU,SACdw7C,GAAoB,GAGtB,IAAIhN,EAAOjmC,KAAKuJ,IAAIkb,GAChBqF,GAAW,IAAKj2B,MAAQ0M,UAAYmkB,EACnCoF,EAAW,KAAOmc,EAAO,IAAQnc,GAAY,KAAOmc,EAAO,IAC9DrhC,MAAMW,UAAS,WACK,cAAdwlB,EACF/Z,EAAIzb,SAAS,yBAEbyb,EAAIzb,SAAS,sBAEfyb,EAAIvZ,UAAU,IACds6C,EAAM1jC,KAAK,oCAAqC0jC,GAChDA,EAAM/gC,IAAIjX,QAAQ,oBAClBg4C,EAAMtgC,QACNwhC,GAAoB,MAIxBA,GAAoB,EACpBjiC,EAAIvZ,UAAU,MAGhB,IAYI67C,EAZA11B,IAAU7S,QAAQO,iBAAkB,CAAEsS,SAAS,GAiEnD,OAhEIm0B,EAAM5wC,OAAO+xC,eACfliC,EAAIhZ,GAAG4Y,EAAIoN,YAAYC,MAAOmI,EAAkBxI,GAChDhN,EAAI5Y,GAAG,YAAawuB,GACpB5V,EAAI5Y,GAAG,mBAAoB4xB,GAC3BmoB,EAAMr4C,KAAK,gBAAgB,WACzBsX,EAAI3X,IAAIuX,EAAIoN,YAAYC,MAAOmI,EAAkBxI,GACjDhN,EAAIvX,IAAI,YAAamtB,GACrB5V,EAAIvX,IAAI,mBAAoBuwB,OAMhCmoB,EAAM/5C,GAAG,QAAQ,WACfs7C,GAAuB,EACnBvB,EAAM5wC,OAAOqxC,eACfr+C,EAAEjD,KAAK8G,GAAG,UAAWy3C,GAEvBz+B,EAAIzS,QAAQ,mBAAmBhJ,SAAS,gBACpCw8C,EAAM3oD,OACR6oD,EAASF,EAAM3oD,OACZwnB,EAAIlW,MAAQ,KAAOkW,EAAI3V,OAAS,KAC9B+V,EAAIlb,SAAS,6BAGhBm8C,IACFD,EAAa9oC,SAAS8H,EAAIpW,IAAI,0BAA2B,IACrDpO,OAAOsd,MAAMkoC,KAAeA,EAAa,GACzCA,IACFhhC,EAAIzb,SAAS,cACbw8C,EAAMtS,QAAQlqC,SAAS,yBACvBw8C,EAAMtS,QAAQ,GAAGttC,MAAMonC,YAAY,wBAAyBkZ,EAAcT,SAIhFD,EAAM/5C,GAAG,UAAU,WACjBgZ,EAAIpb,YAAY,4CACZm8C,EAAM5wC,OAAO+sC,sBACft9B,EAAI5Y,GAAG,QAASy2C,MAGpBsD,EAAM/5C,GAAG,SAAS,WAChBs7C,EAAuBvB,EAAM/gC,IAAIzS,QAAQ,wBAAwBvV,OAAS,EACtE+oD,EAAM5wC,OAAOqxC,eACfr+C,EAAEjD,KAAKmI,IAAI,UAAWo2C,GAEpBsC,EAAM5wC,OAAO+sC,sBACft9B,EAAIvX,IAAI,QAASo1C,GAEnBz9B,EAAIzS,QAAQ,mBAAmBxB,GAAG,GAAGnH,YAAY,gBAC7Cq8C,GAAUD,IAAesB,IAC3BvB,EAAMtS,QAAQ7pC,YAAY,yBAC1Bm8C,EAAMtS,QAAQlqC,SAAS,qCAG3Bw8C,EAAM/5C,GAAG,UAAU,WACbi6C,GAAUD,IAAesB,IAC3BvB,EAAMtS,QAAQ7pC,YAAY,iCAC1Bm8C,EAAMtS,QAAQ,GAAGttC,MAAMohD,eAAe,6BAI1CviC,EAAI,GAAGQ,QAAUugC,EAEVA,EAOT,OAJK9E,IAAQ6E,EAAMljC,UAAYq+B,GAC/B6E,EAAM3hD,UAAYvE,OAAOijB,OAAQo+B,GAASA,EAAM98C,WAChD2hD,EAAM3hD,UAAUxE,YAAcmmD,EAEvBA,EAxUgB,CAyUvB7E,OAEEuG,QAAU,CACZtnD,KAAM,QACNiV,OAAQ,CACN4wC,MAAO,CACL5D,UAAU,EACVC,gBAAYvmD,EACZqmD,sBAAsB,EACtBsE,eAAe,EACfU,cAAc,EACdC,aAAc,KACd/pD,MAAM,IAGVinB,OAAQ,CACNyhC,MAAOA,OAETjjC,OAAQ,WACInnB,KACNqqD,MAAQ7gC,aAAa,CACvBN,IAFQlpB,KAGRiE,YAAammD,MACbrhC,gBAAiB,kBACjBgjC,eAAgB,YAGpBvS,OAAQ,CACNwS,cAAe,SAAmB3S,EAAY30C,QAC9B,IAATA,IAAkBA,EAAO,IAEpB1E,KACNqqD,MAAM5gC,KAAK/kB,EAAK2lD,MAAO3lD,EAAK0U,QAASigC,IAE3C4S,eAAgB,SAAoB5S,EAAY30C,QAChC,IAATA,IAAkBA,EAAO,IAEpB1E,KACNqqD,MAAMtgC,MAAMrlB,EAAK2lD,MAAO3lD,EAAK0U,QAASigC,MAK5C6S,YAA4B,SAAU3G,GACxC,SAAS2G,EAAYhjC,EAAKzP,GACxB,IAAIotC,EAAiB3pC,MAAM5U,OAAO,CAChCgI,GAAI,IACHmJ,GAGH8rC,EAAMr/C,KAAKlG,KAAMkpB,EAAK29B,GAEtB,IAKIv9B,EAOJ,OAZkBtpB,KAENyZ,OAASotC,GAOnBv9B,EATgBtpB,KAMDyZ,OAAOvK,GAGhBzC,EATUzM,KASIyZ,OAAOvK,IAAImG,GAAG,GAF5B5I,EAPUzM,KAOIyZ,OAAOnX,SAASoQ,QAAO,SAAU83C,EAASC,GAAQ,OAAyB,IAAlBA,EAAKz9C,YAAmBqI,GAAG,KAK/FiU,EAAIhoB,OAAS,GAAKgoB,EAAI,GAAGQ,QAC3BR,EAAI,GAAGQ,QAGG,IAAfR,EAAIhoB,OAhBUtB,KAiBGupB,WAGrBrM,MAAM5U,OApBYtI,KAoBQ,CACxBkpB,IAAKA,EACLI,IAAKA,EACLpa,GAAIoa,EAAI,GACRjnB,KAAM,gBAGRinB,EAAI,GAAGQ,QA3BW9pB,KAAAA,MAoCpB,OAJKulD,IAAQ2G,EAAYhlC,UAAYq+B,GACrC2G,EAAYzjD,UAAYvE,OAAOijB,OAAQo+B,GAASA,EAAM98C,WACtDyjD,EAAYzjD,UAAUxE,YAAcioD,EAE7BA,EA7CsB,CA8C7B3G,OAEE4G,cAAgB,CAClB3nD,KAAM,cACNmkB,OAAQ,CACNujC,YAAaA,aAEf/kC,OAAQ,WACInnB,KACNosD,YAAc5iC,aAAa,CAC7BN,IAFQlpB,KAGRiE,YAAaioD,YACbnjC,gBAAiB,4BAGrBywB,OAAQ,CACN6S,qBAAsB,SAAyBhT,EAAY30C,QAC3C,IAATA,IAAkBA,EAAO,IAEpB1E,KACNosD,YAAY3iC,KAAK/kB,EAAK0nD,YAAa1nD,EAAK0U,QAASigC,IAEvDiT,sBAAuB,SAA0BjT,EAAY30C,QAC7C,IAATA,IAAkBA,EAAO,IAEpB1E,KACNosD,YAAYriC,MAAMrlB,EAAK0nD,YAAa1nD,EAAK0U,QAASigC,MAKxDkT,QAAwB,SAAUhH,GACpC,SAASgH,EAAQrjC,EAAKzP,GACpB,IAAIotC,EAAiB3pC,MAAM5U,OACzB,CAAEgI,GAAI,IACN4Y,EAAIzP,OAAO+yC,QACX/yC,GAIF8rC,EAAMr/C,KAAKlG,KAAMkpB,EAAK29B,GAEtB,IAKIv9B,EALAkjC,EAAUxsD,KAYd,GAVAwsD,EAAQ/yC,OAASotC,GAOfv9B,EAHGkjC,EAAQ/yC,OAAOvK,GAGZzC,EAAE+/C,EAAQ/yC,OAAOvK,IAAImG,GAAG,GAFxB5I,EAAE+/C,EAAQ/yC,OAAOnX,SAASoQ,QAAO,SAAU83C,EAASC,GAAQ,OAAyB,IAAlBA,EAAKz9C,YAAmBqI,GAAG,KAK3FiU,EAAIhoB,OAAS,GAAKgoB,EAAI,GAAGQ,QAClC,OAAOR,EAAI,GAAGQ,QAIhB,IAOIi8B,EAYA0G,EAnBAxiC,EAAYxd,EAAE+/C,EAAQ/yC,OAAOiQ,UAAUrU,GAAG,GAE9C,GAAmB,IAAfiU,EAAIhoB,OACN,OAAOkrD,EAAQjjC,UAKbijC,EAAQ/yC,OAAOgtC,UAAY+F,EAAQ/yC,OAAOitC,WAC5CX,EAAct5C,EAAE+/C,EAAQ/yC,OAAOitC,YACtB8F,EAAQ/yC,OAAOgtC,UAEG,KAD3BV,EAAc78B,EAAIpjB,KAAKyE,SAAS,sBAChBjJ,SACdykD,EAAct5C,EAAE,wCAChByc,EAAIpjB,KAAKyP,OAAOwwC,IAMsB,IAAtCz8B,EAAIrS,KAAK,kBAAkB3V,QAC7BmrD,EAAWhgD,EAAE,qCACb6c,EAAIxT,QAAQ22C,IAEZA,EAAWnjC,EAAIrS,KAAK,kBAItB,IAAIy1C,EAAeF,EAAQ/iC,KA6B3B,SAAS0uB,IACPqU,EAAQhwC,SAYV,SAASuqC,EAAYl2C,GACnB,IAAItI,EAASsI,EAAEtI,OACXmiD,EAAUj+C,EAAElE,IACM2gB,EAAI7E,OAAOI,SAAWyE,EAAI7E,OAAOa,UAAa5Z,IAAIq/C,UAAYr/C,IAAIq/C,SAASpP,WAAejwC,IAAI4Z,QAAQ0lC,SAAWt/C,IAAI4Z,QAAQ0lC,QAAQD,UAAYr/C,IAAI4Z,QAAQ0lC,QAAQD,SAASpP,YAEzJ,IAAvCmP,EAAQ1zC,QAAQw1C,EAAQt9C,IAAI5N,SAE5BkrD,EAAQ/yC,OAAO+sC,sBACZgG,EAAQ/yC,OAAOgtC,UACf+F,EAAQ9F,YACR8F,EAAQ9F,aAAen+C,GAGjBikD,EAAQ/yC,OAAOkzC,sBADxBH,EAAQziC,QAOd,SAASg+B,EAAUl3C,GAED,KADFA,EAAEm3C,SACMwE,EAAQ/yC,OAAOqxC,eACnC0B,EAAQziC,QA0BZ,OAxFA7M,MAAM5U,OAAOkkD,EAAS,CACpBtjC,IAAKA,EACLI,IAAKA,EACLpa,GAAIoa,EAAI,GACRW,UAAWA,EACXP,SAAUO,EAAU,GACpBwiC,SAAUA,EACVG,QAASH,EAAS,GAClB1G,YAAaA,EACbW,WAAYX,GAAeA,EAAY,GACvC1jD,KAAM,UACNonB,KAAM,WAIJ,IAHA,IAAIlZ,EAEAxI,EAAO,GAAIC,EAAMC,UAAU3G,OACvB0G,KAAQD,EAAMC,GAAQC,UAAWD,GACzC,IAAI0hB,EAAW3hB,EAAK,GAChBqR,EAAUrR,EAAK,GAMnB,MALuB,kBAAZA,EAAK,KAAoCqR,GAAf7I,EAASxI,GAAuB,GAAI2hB,EAAWnZ,EAAO,IACvFmZ,IACF8iC,EAAQviC,UAAYxd,EAAEid,GACtB8iC,EAAQ9iC,SAAW8iC,EAAQviC,UAAU,IAEhCyiC,EAAaxmD,KAAKsmD,EAASpzC,MAOtCozC,EAAQl8C,GAAG,eAAe,WACxBk8C,EAAQhwC,SACR0M,EAAI5Y,GAAG,SAAU6nC,GACjB1rC,EAAEnB,KAAKgF,GAAG,kCAAmC6nC,GAC7CqU,EAAQl8C,GAAG,qCAAqC,WAC9C4Y,EAAIvX,IAAI,SAAUwmC,GAClB1rC,EAAEnB,KAAKqG,IAAI,kCAAmCwmC,SA8B9CqU,EAAQ/yC,OAAOqxC,gBACjB0B,EAAQl8C,GAAG,eAAe,WACxB7D,EAAEjD,KAAK8G,GAAG,UAAWy3C,MAEvByE,EAAQl8C,GAAG,gBAAgB,WACzB7D,EAAEjD,KAAKmI,IAAI,UAAWo2C,OAI1ByE,EAAQl8C,GAAG,iBAAiB,YACtBk8C,EAAQ/yC,OAAOkzC,qBAAuBH,EAAQ/yC,OAAO+sC,uBACvDt9B,EAAI5Y,GAAG,QAASy2C,MAGpByF,EAAQl8C,GAAG,gBAAgB,YACrBk8C,EAAQ/yC,OAAOkzC,qBAAuBH,EAAQ/yC,OAAO+sC,uBACvDt9B,EAAIvX,IAAI,QAASo1C,MAIrBz9B,EAAI,GAAGQ,QAAU0iC,EAEVA,EA+IT,OA5IKjH,IAAQgH,EAAQrlC,UAAYq+B,GACjCgH,EAAQ9jD,UAAYvE,OAAOijB,OAAQo+B,GAASA,EAAM98C,WAClD8jD,EAAQ9jD,UAAUxE,YAAcsoD,EAEhCA,EAAQ9jD,UAAU+T,OAAS,WACzB,IACI0M,EADUlpB,KACIkpB,IACdI,EAFUtpB,KAEIspB,IACdW,EAHUjqB,KAGUiqB,UACpBwiC,EAJUzsD,KAISysD,SACnB1xC,EALU/a,KAKIyZ,OACdozC,EAAU9xC,EAAI8xC,QACdC,EAAU/xC,EAAI+xC,QAClBxjC,EAAIpW,IAAI,CAAEmB,KAAM,GAAID,IAAK,KACzB,IAII24C,EACAC,EAQAC,EACAC,EACAC,EACAC,EAhBAC,EAAQ,CAAC/jC,EAAItW,QAASsW,EAAI/V,UAC1BP,EAAQq6C,EAAM,GACd95C,EAAS85C,EAAM,GACfC,EAAY,EAGE,QAAdpkC,EAAI/C,OAAiC,WAAd+C,EAAI/C,OAC7BsmC,EAASv+C,YAAY,qCAAqCgF,IAAI,CAAEmB,KAAM,GAAID,IAAK,KAC/Ek5C,EAAYb,EAASz5C,QAAU,GAE/BsW,EAAIpb,YAAY,uFAAuFgF,IAAI,CAAEmB,KAAM,GAAID,IAAK,KAO9H,IAAIm5C,EAAc/rC,SAAS/U,EAAE,QAAQyG,IAAI,sBAAuB,IAEhE,GADIpO,OAAOsd,MAAMmrC,KAAgBA,EAAc,GAC3CtjC,GAAaA,EAAU3oB,OAAS,EAAG,CACrC2rD,EAAchjC,EAAU9W,aACxB+5C,EAAejjC,EAAUxW,cAEzB,IAAI+5C,EAAevjC,EAAUtW,SAC7Bw5C,EAAmBK,EAAan5C,KAAO6U,EAAI7U,KAC3C+4C,EAAkBI,EAAap5C,IAAM8U,EAAI9U,IAEzC,IAAIq5C,EAAmBxjC,EAAU5lB,QAAQ,SACrCopD,EAAiBnsD,OAAS,IAC5B8rD,GAAmBK,EAAiB,GAAGz5C,qBAEb,IAAZ64C,GAAuC,cAAZC,IAC3CK,EAAmBN,EACnBO,EAAkBN,EAClBG,EA3CYjtD,KA2CUyZ,OAAOwzC,aAAe,EAC5CC,EA5CYltD,KA4CWyZ,OAAOyzC,cAAgB,GAGhD,IAuBMQ,EAvBFC,EAAQ,CAAC,EAAG,EAAG,GACft5C,EAAOs5C,EAAM,GACbv5C,EAAMu5C,EAAM,GACZpP,EAAOoP,EAAM,GAEbzmB,EAAyB,OAAdhe,EAAI/C,MAAiB,SAAW,MAC7B,OAAd+C,EAAI/C,OACF5S,EAAS2V,EAAI3V,OAAS65C,EAAkBF,GAE1ChmB,EAAW,SACX9yB,EAAMg5C,EAAkBF,GACf35C,EAAS65C,EAAkBG,GAEpCn5C,EAAMg5C,EAAkB75C,EACxB2zB,EAAW,QAGXA,EAAW,SACX9yB,EAAQ84C,EAAe,EAAKE,EAAoB75C,EAAS,GAE3Da,EAAMkE,KAAKC,IAAI,EAAGD,KAAKE,IAAIpE,EAAK8U,EAAI3V,OAASA,EAAS,IAIlD45C,EAAmBjkC,EAAIlW,MAAQ,GACjC06C,EAAY,QACZr5C,EAAoB,WAAb6yB,EACHimB,EAAmBF,EACnBE,IAEJO,EAAY,OACZr5C,EAAoB,WAAb6yB,EACHimB,EAAmBn6C,EAClBm6C,EAAmBF,EAAej6C,GAEzCqB,EAAOiE,KAAKC,IAAI,EAAGD,KAAKE,IAAInE,EAAM6U,EAAIlW,MAAQA,EAAQ,IACtDsW,EAAIzb,SAAU,cAAgBq5B,EAAW,eAAiBwmB,KAGrDn6C,EAAS+5C,EAAaF,EAAkBG,EAE3Cn5C,EAAMg5C,EAAkB75C,EAAS+5C,EACvB/5C,EAAS+5C,EAAapkC,EAAI3V,OAAS65C,EAAkBF,GAE/DhmB,EAAW,SACX9yB,EAAMg5C,EAAkBF,EAAeI,IAGvCpmB,EAAW,SAEXqX,EADAnqC,EAAQ84C,EAAe,EAAKE,EAAoB75C,EAAS,EAGzDgrC,GADAnqC,EAAMkE,KAAKC,IAAI,EAAGD,KAAKE,IAAIpE,EAAK8U,EAAI3V,OAASA,EAAS,KAKvC,QAAb2zB,GAAmC,WAAbA,GAExBqX,EADAlqC,EAAS44C,EAAc,EAAKE,EAAqBn6C,EAAQ,EAEzDqB,EAAOiE,KAAKC,IAAI,EAAGD,KAAKE,IAAInE,EAAM6U,EAAIlW,MAAQA,EAAQ,IACrC,QAAbk0B,GACFulB,EAAS5+C,SAAS,aAEH,WAAbq5B,GACFulB,EAAS5+C,SAAS,UAGpBk/C,EAAc/5C,EAAQ,EAAKs6C,GAD3B/O,GAAQlqC,GAER04C,EAAYz0C,KAAKC,IAAID,KAAKE,IAAIu0C,EAAW/5C,EAAqB,EAAZs6C,EAAiB,IAAK,IACxEb,EAASv5C,IAAI,CAAEmB,KAAO04C,EAAY,QACZ,WAAb7lB,IACT7yB,EAAO84C,EAAmBn6C,EAAQs6C,EAClCb,EAAS5+C,SAAS,aACdwG,EAAO,GAAMA,EAAOrB,EAAQkW,EAAIlW,SAC9BqB,EAAO,IAAKA,EAAO84C,EAAmBF,EAAcK,GACpDj5C,EAAOrB,EAAQkW,EAAIlW,QAASqB,EAAO6U,EAAIlW,MAAQA,EAAQ,GAC3Dy5C,EAASv+C,YAAY,YAAYL,SAAS,YAE5Cm/C,EAAaz5C,EAAS,EAAK+5C,EAAa/O,EACxCyO,EAAW10C,KAAKC,IAAID,KAAKE,IAAIw0C,EAAUz5C,EAAsB,EAAZ+5C,EAAiB,IAAK,IACvEb,EAASv5C,IAAI,CAAEkB,IAAM44C,EAAW,SAKpC1jC,EAAIpW,IAAI,CAAEkB,IAAMA,EAAM,KAAOC,KAAOA,EAAO,QAGtCk4C,EAjSkB,CAkSzBhH,OAEEqI,UAAY,CACdppD,KAAM,UACNiV,OAAQ,CACN+yC,QAAS,CACP/F,UAAU,EACVC,gBAAYvmD,EACZqmD,sBAAsB,EACtBmG,qBAAqB,EACrB7B,eAAe,IAGnBniC,OAAQ,CACN4jC,QAASA,SAEXplC,OAAQ,WACN,IAAI+B,EAAMlpB,KACVkpB,EAAIsjC,QAAUtvC,MAAM5U,OAClBkhB,aAAa,CACXN,IAAKA,EACLjlB,YAAasoD,QACbxjC,gBAAiB,sBAEnB,CACEU,KAAM,SAAcokC,EAAWnkC,EAAUtQ,GACvC,IAAI00C,EAAarhD,EAAEohD,GACnB,GAAIC,EAAWxsD,OAAS,EAAG,CAEzB,IAAIqoB,EAAcld,EAAEid,GAAUrlB,QAAQ,SAClCslB,EAAYroB,QACdwsD,EAAWxnD,MAAK,SAAUK,EAAOuI,GAC/B,IAAIoa,EAAM7c,EAAEyC,GACRoa,EAAIjlB,QAAQslB,GAAa,KAAOA,EAAY,KAC9CmkC,EAAaxkC,MAKjBwkC,EAAWxsD,OAAS,IACtBwsD,EAAaA,EAAWz4C,GAAGy4C,EAAWxsD,OAAS,IAEjD,IAAIkrD,EAAUsB,EAAW,GAAGhkC,QACxBplB,EAAOopD,EAAWx+C,UAUtB,OATKk9C,IACHA,EAAU,IAAID,QAAQrjC,EAAKhlB,OAAOqM,OAChC,CACErB,GAAI4+C,EACJpkC,SAAUA,GAEZhlB,KAGG8nD,EAAQ/iC,KAAKC,EAAUtQ,OAKtCogC,OAAQ,CACNuU,gBAAiB,SAAqB1U,EAAY30C,QAClC,IAATA,IAAkBA,EAAO,IAEpB1E,KACNwsD,QAAQ/iC,KAAK/kB,EAAK8nD,QAASnT,EAAY30C,EAAK0U,UAElD40C,iBAAkB,SAAsB3U,EAAY30C,QACpC,IAATA,IAAkBA,EAAO,IAEpB1E,KACNwsD,QAAQziC,MAAMrlB,EAAK8nD,QAAS9nD,EAAK0U,QAASigC,MAOhD4U,QAAwB,SAAU1I,GACpC,SAAS0I,EAAQ/kC,EAAKzP,GACpB,IAAIotC,EAAiB3pC,MAAM5U,OACzB,CAAEgI,GAAI,IACN4Y,EAAIzP,OAAOy0C,QACXz0C,GAIF8rC,EAAMr/C,KAAKlG,KAAMkpB,EAAK29B,GAEtB,IAKI1sB,EAQA7Q,EAqBAy8B,EAlCAmI,EAAUluD,KAyBd,GAvBAkuD,EAAQz0C,OAASotC,EAIbqH,EAAQz0C,OAAO2tC,UACjBjtB,EAAS+zB,EAAQz0C,OAAO2tC,QACnBtkD,MAAMC,QAAQo3B,EAAO,MAAOA,EAAS,CAACA,KAE7C+zB,EAAQ/zB,OAASA,EAIb+zB,EAAQz0C,OAAOvK,GACjBoa,EAAM7c,EAAEyhD,EAAQz0C,OAAOvK,IAAImG,GAAG,GACrB64C,EAAQz0C,OAAOnX,QACxBgnB,EAAM7c,EAAEyhD,EAAQz0C,OAAOnX,SAASoQ,QAAO,SAAU83C,EAASC,GAAQ,OAAyB,IAAlBA,EAAKz9C,YAAmBqI,GAAG,GAC3F64C,EAAQz0C,OAAO2tC,UACpB8G,EAAQz0C,OAAO00C,mBACjBD,EAAQE,YAAcF,EAAQG,iBAEhCH,EAAQI,YAAcJ,EAAQv1C,UAG5B2Q,GAAOA,EAAIhoB,OAAS,GAAKgoB,EAAI,GAAGQ,QAClC,OAAOR,EAAI,GAAGQ,QAGhB,GAAIR,GAAsB,IAAfA,EAAIhoB,SAAkB4sD,EAAQI,cAAeJ,EAAQE,YAC9D,OAAOF,EAAQ3kC,UAKb2kC,EAAQz0C,OAAOgtC,UAAYyH,EAAQz0C,OAAOitC,WAC5CX,EAAct5C,EAAEyhD,EAAQz0C,OAAOitC,YACtBwH,EAAQz0C,OAAOgtC,UAEG,KAD3BV,EAAc78B,EAAIpjB,KAAKyE,SAAS,sBAChBjJ,SACdykD,EAAct5C,EAAE,wCAChByc,EAAIpjB,KAAKyP,OAAOwwC,IAIpB,IAGIyG,EAHAE,EAAewB,EAAQzkC,KACvB8kC,EAAgBL,EAAQnkC,MAG5B,SAAS+9B,EAAcj3C,GACrB,IACI29C,EACAC,EAFAC,EAAYjiD,EAAEzM,MAUlB,GAPI0uD,EAAUtgD,SAAS,gBAAkBsgD,EAAUtgD,SAAS,cAC1DogD,EAAcE,EAAUrqD,QAAQ,MAAMsC,QACtC8nD,EAAaC,EAAUrqD,QAAQ,SAASsC,UAExC6nD,EAAcE,EAAU/nD,QACxB8nD,EAAaC,EAAUrqD,QAAQ,kBAAkBsC,cAE7B,IAAXwzB,EAAwB,CACjC,IAAIwtB,EAASxtB,EAAOs0B,GAAYD,GAC5B7G,EAAO3M,SAAW2M,EAAO3M,QAAQkT,EAASr9C,GAC1Cq9C,EAAQz0C,OAAOuhC,SAAWkT,EAAQz0C,OAAOuhC,QAAQkT,EAASr9C,IACzC,IAAjB82C,EAAO59B,OAAmBmkC,EAAQnkC,SAkH1C,SAASg9B,EAAYl2C,GACnB,IAAItI,EAASsI,EAAEtI,OACXmiD,EAAUj+C,EAAElE,IACM2gB,EAAI7E,OAAOI,SAAWyE,EAAI7E,OAAOa,UAAa5Z,IAAIq/C,UAAYr/C,IAAIq/C,SAASpP,WAAejwC,IAAI4Z,QAAQ0lC,SAAWt/C,IAAI4Z,QAAQ0lC,QAAQD,UAAYr/C,IAAI4Z,QAAQ0lC,QAAQD,SAASpP,YAEzJ,IAAvCmP,EAAQ1zC,QAAQk3C,EAAQh/C,IAAI5N,SAE5B4sD,EAAQz0C,OAAO+sC,sBACZ0H,EAAQz0C,OAAOgtC,UACfyH,EAAQxH,YACRwH,EAAQxH,aAAen+C,GAGjB2lD,EAAQz0C,OAAOkzC,sBADxBuB,EAAQnkC,QAOd,SAASg+B,EAAUl3C,GAED,KADFA,EAAEm3C,SACMkG,EAAQz0C,OAAOqxC,eACnCoD,EAAQnkC,QA4BZ,OAjKAmkC,EAAQzkC,KAAO,SAAcrQ,GAC3B,IAAI+0C,GAAmB,EACnBpzC,EAAMmzC,EAAQz0C,OACdiQ,EAAW3O,EAAI2O,SACfmjC,EAAU9xC,EAAI8xC,QACdC,EAAU/xC,EAAI+xC,QACdG,EAAclyC,EAAIkyC,YAClBC,EAAenyC,EAAImyC,aAmFvB,OAlFIgB,EAAQz0C,OAAO00C,mBAAqBzkC,QAAyBvpB,IAAZ0sD,QAAqC1sD,IAAZ2sD,KAG1EoB,EAAQz0C,OAAOk1C,gBACXzlC,EAAI7E,OAAOC,KAAO4E,EAAI7E,OAAOO,MAC9BsE,EAAIlW,OAAS,KACZkW,EAAI7E,OAAOI,SAAyB,WAAdyE,EAAI/C,SAE9BgoC,GAAmB,GAGnBA,GAAoBD,EAAQE,cAC9B5B,EAAUtjC,EAAIsjC,QAAQrlC,OAAO,CAC3B7kB,QAAS4rD,EAAQE,YACjB3H,SAAUyH,EAAQz0C,OAAOgtC,SACzB/8B,SAAUA,EACVmjC,QAASA,EACTC,QAASA,EACTG,YAAaA,EACbC,aAAcA,EACd58C,GAAI,CACFmZ,KAAM,WACCykC,EAAQ5kC,MACX4kC,EAAQ5kC,IAAMkjC,EAAQljC,KAExB4kC,EAAQ5kC,IAAIjX,QAAS,cAAiB67C,EAAQ7rD,KAAK+K,cAAiB,SACpE8gD,EAAQvnC,KAAM,yBAA4BunC,EAAY,KAAI,OAASA,IAErE1I,OAAQ,WACD0I,EAAQ5kC,MACX4kC,EAAQ5kC,IAAMkjC,EAAQljC,KAExB4kC,EAAQ5kC,IAAIjX,QAAS,gBAAmB67C,EAAQ7rD,KAAK+K,cAAiB,WACtE8gD,EAAQvnC,KAAM,6BAAgCunC,EAAY,KAAI,SAAWA,IAE3EnkC,MAAO,WACAmkC,EAAQ5kC,MACX4kC,EAAQ5kC,IAAMkjC,EAAQljC,KAExB4kC,EAAQ5kC,IAAIjX,QAAS,eAAkB67C,EAAQ7rD,KAAK+K,cAAiB,UACrE8gD,EAAQvnC,KAAM,2BAA8BunC,EAAY,KAAI,QAAUA,IAExEU,OAAQ,WACDV,EAAQ5kC,MACX4kC,EAAQ5kC,IAAMkjC,EAAQljC,KAExB4kC,EAAQ5kC,IAAIjX,QAAS,gBAAmB67C,EAAQ7rD,KAAK+K,cAAiB,WACtE8gD,EAAQvnC,KAAM,6BAAgCunC,EAAY,KAAI,SAAWA,QAIvEzkC,KAAKrQ,GACbozC,EAAQx6C,KAAK,iBAAiB,WAC5Bw6C,EAAQljC,IAAIrS,KAAK,4BAA4B3Q,MAAK,SAAUmoD,EAAYvG,GACtEz7C,EAAEy7C,GAAU53C,GAAG,QAASw3C,SAG5B0E,EAAQx6C,KAAK,iBAAiB,WAC5Bw6C,EAAQljC,IAAIrS,KAAK,4BAA4B3Q,MAAK,SAAUmoD,EAAYvG,GACtEz7C,EAAEy7C,GAAUv2C,IAAI,QAASm2C,MAE3B5qC,MAAMW,UAAS,WACb2uC,EAAQjjC,UACRijC,OAAUrsD,UAId+tD,EAAQ5kC,IAAM4kC,EAAQI,YAAc7hD,EAAEyhD,EAAQI,aAAeJ,EAAQ5kC,IACrE4kC,EAAQ5kC,IAAI,GAAGQ,QAAUokC,EACrBA,EAAQ/zB,SACV+zB,EAAQ5kC,IAAIrS,KAAK,mBAAmB3Q,MAAK,SAAUmoD,EAAYvG,GAC7Dz7C,EAAEy7C,GAAU53C,GAAG,QAASw3C,MAE1BoG,EAAQl8C,KAAK,iBAAiB,WAC5Bk8C,EAAQ5kC,IAAIrS,KAAK,mBAAmB3Q,MAAK,SAAUmoD,EAAYvG,GAC7Dz7C,EAAEy7C,GAAUv2C,IAAI,QAASm2C,UAI/BoG,EAAQh/C,GAAKg/C,EAAQ5kC,IAAI,GACzBojC,EAAaxmD,KAAKgoD,EAAS90C,IAEtB80C,GAGTA,EAAQnkC,MAAQ,SAAe3Q,GAM7B,OALIozC,EACFA,EAAQziC,MAAM3Q,GAEdm1C,EAAcroD,KAAKgoD,EAAS90C,GAEvB80C,GAGThxC,MAAM5U,OAAO4lD,EAAS,CACpBhlC,IAAKA,EACLI,IAAKA,EACLpa,GAAIoa,EAAMA,EAAI,QAAKnpB,EACnB4lD,YAAaA,EACbW,WAAYX,GAAeA,EAAY,GACvC1jD,KAAM,YA6BJ6rD,EAAQz0C,OAAOqxC,gBACjBoD,EAAQ59C,GAAG,QAAQ,WACjB7D,EAAEjD,KAAK8G,GAAG,UAAWy3C,MAEvBmG,EAAQ59C,GAAG,SAAS,WAClB7D,EAAEjD,KAAKmI,IAAI,UAAWo2C,OAI1BmG,EAAQ59C,GAAG,UAAU,YACf49C,EAAQz0C,OAAO+sC,sBAAwB0H,EAAQz0C,OAAOkzC,sBACxDzjC,EAAI5Y,GAAG,QAASy2C,MAGpBmH,EAAQ59C,GAAG,SAAS,YACd49C,EAAQz0C,OAAO+sC,sBAAwB0H,EAAQz0C,OAAOkzC,sBACxDzjC,EAAIvX,IAAI,QAASo1C,MAIjBz9B,IACFA,EAAI,GAAGQ,QAAUokC,GAGZA,EA+DT,OA5DK3I,IAAQ0I,EAAQ/mC,UAAYq+B,GACjC0I,EAAQxlD,UAAYvE,OAAOijB,OAAQo+B,GAASA,EAAM98C,WAClDwlD,EAAQxlD,UAAUxE,YAAcgqD,EAEhCA,EAAQxlD,UAAUkQ,OAAS,WAEzB,GADc3Y,KACFyZ,OAAOd,OAAU,OADf3Y,KAC8ByZ,OAAOd,OAAOzS,KAD5ClG,KAAAA,MAEd,IAAIm6B,EAFUn6B,KAEOm6B,OACjBmtB,EAHUtnD,KAGSyZ,OAAO6tC,SAC9B,OAAQ,qCAJMtnD,KAI0CyZ,OAAOo1C,KAAO,gBAAkB,IAAM,KAAOvH,GAAY,IAAM,eAAmBntB,EAAOxlB,KAAI,SAAUgI,GAAS,MAAQ,4CAAiDA,EAAMhI,KAAI,SAAUgzC,GAC3O,IAAImH,EAAgB,CAAE,YAAcnH,EAAOoH,MAAQ,QAAU,WACzD7T,EAAQyM,EAAOzM,MACf8T,EAAKrH,EAAOqH,GACZpH,EAAOD,EAAOC,KACdqH,EAAWtH,EAAOsH,SAClBF,EAAQpH,EAAOoH,MACfl6C,EAAO8yC,EAAO9yC,KACdq6C,EAAOvH,EAAOuH,KAKlB,OAJIhU,GAAS4T,EAAcptD,KAAM,SAAWw5C,GACxC8T,GAAMF,EAAcptD,KAAM,YAAcstD,GACxCpH,GAAQkH,EAAcptD,KAAK,uBAC3ButD,GAAYH,EAAcptD,KAAK,YAC/BqtD,EACM,eAAmBD,EAAc3qD,KAAK,KAAQ,KAAQ0Q,EAAO,UAE/D,iCAAqCi6C,EAAc3qD,KAAK,KAAQ,0BAA6B+qD,EAAQ,qCAAyCA,EAAO,SAAY,IAAM,wDAA4Dr6C,EAAO,kCAAkC1T,UACnRgD,KAAK,IAAO,wBAA0BA,KAAK,IAAO,wBAAwBhD,QAGvF8sD,EAAQxlD,UAAU4lD,cAAgB,WAEhC,GADcruD,KACFyZ,OAAO40C,cAAiB,OADtBruD,KACqCyZ,OAAO40C,cAAcnoD,KAD1DlG,KAAAA,MAEd,IAAIm6B,EAFUn6B,KAEOm6B,OAErB,OAAQ,qDAJMn6B,KAGSyZ,OAAO6tC,UAC8C,IAAM,sDAA4DntB,EAAOxlB,KAAI,SAAUgI,GAAS,MAAQ,yEAA8EA,EAAMhI,KAAI,SAAUgzC,GACxQ,IAAIwH,EAAc,GACdjU,EAAQyM,EAAOzM,MACf8T,EAAKrH,EAAOqH,GACZpH,EAAOD,EAAOC,KACdqH,EAAWtH,EAAOsH,SAClBF,EAAQpH,EAAOoH,MACfl6C,EAAO8yC,EAAO9yC,KACdq6C,EAAOvH,EAAOuH,KAKlB,OAJIhU,GAASiU,EAAYztD,KAAM,SAAWw5C,GACtC8T,GAAMG,EAAYztD,KAAM,YAAcstD,GACtCpH,GAAQuH,EAAYztD,KAAK,6BACzButD,GAAYE,EAAYztD,KAAK,YAC7BqtD,GACFI,EAAYztD,KAAK,8BACT,cAAkBytD,EAAYhrD,KAAK,KAAQ,KAAQ0Q,EAAO,SAEhEq6C,GACFC,EAAYztD,KAAK,0BACT,mEAAuEytD,EAAYhrD,KAAK,KAAQ,uFAA4F+qD,EAAO,+KAAqLr6C,EAAO,4JAEzYs6C,EAAYztD,KAAK,eACT,+DAAmEytD,EAAYhrD,KAAK,KAAQ,KAAQ0Q,EAAO,0DAClH1Q,KAAK,IAAO,2DAA6DA,KAAK,IAAO,wCAAwChD,QAGvI8sD,EA9SkB,CA+SzB1I,OAEE6J,UAAY,CACd5qD,KAAM,UACNiV,OAAQ,CACNy0C,QAAS,CACPC,kBAAkB,EAClBQ,gBAAgB,EAChBlI,UAAU,EACVC,gBAAYvmD,EACZmnD,SAAU,KACVd,sBAAsB,EACtBsE,eAAe,EACfnyC,OAAQ,KACR01C,cAAe,OAGnB1lC,OAAQ,CACNslC,QAASA,SAEX9mC,OAAQ,WACInnB,KACNkuD,QAAU1kC,aAAa,CACzBN,IAFQlpB,KAGRiE,YAAagqD,QACbllC,gBAAiB,6BAGrBywB,OAAQ,CACN6V,gBAAiB,SAAqBhW,EAAY30C,QAClC,IAATA,IAAkBA,EAAO,IAEpB1E,KACNkuD,QAAQzkC,KAAK/kB,EAAKwpD,QAASxpD,EAAK0U,QAASigC,IAE/CiW,iBAAkB,SAAsBjW,EAAY30C,QACpC,IAATA,IAAkBA,EAAO,IAEpB1E,KACNkuD,QAAQnkC,MAAMrlB,EAAKwpD,QAASxpD,EAAK0U,QAASigC,MAKhDkW,MAAsB,SAAUhK,GAClC,SAASgK,EAAMrmC,EAAKzP,GAClB,IAAIotC,EAAiB3pC,MAAM5U,OACzB,CAAEgI,GAAI,IACN4Y,EAAIzP,OAAO6nB,MACX7nB,GAIF8rC,EAAMr/C,KAAKlG,KAAMkpB,EAAK29B,GAEtB,IAQIv9B,EAcAy8B,EA2BAxC,EAgEA+G,EAjHAhpB,EAAQthC,KAeZ,GAbAshC,EAAM7nB,OAASotC,OACsB,IAA1BvlB,EAAM7nB,OAAOgtC,WACtBnlB,EAAM7nB,OAAOgtC,SAAyB,QAAdv9B,EAAI/C,QAQ5BmD,EAHGgY,EAAM7nB,OAAOvK,GAGVzC,EAAE60B,EAAM7nB,OAAOvK,IAAImG,GAAG,GAFtB5I,EAAE60B,EAAM7nB,OAAOnX,SAASoQ,QAAO,SAAU83C,EAASC,GAAQ,OAAyB,IAAlBA,EAAKz9C,YAAmBqI,GAAG,KAKzFiU,EAAIhoB,OAAS,GAAKgoB,EAAI,GAAGQ,QAClC,OAAOR,EAAI,GAAGQ,QAGhB,GAAmB,IAAfR,EAAIhoB,OACN,OAAOggC,EAAM/X,UAmEf,SAASw9B,EAAYl2C,GACnB,IAAItI,EAASsI,EAAEtI,OACXmiD,EAAUj+C,EAAElE,IACM2gB,EAAI7E,OAAOI,SAAWyE,EAAI7E,OAAOa,UAAa5Z,IAAIq/C,UAAYr/C,IAAIq/C,SAASpP,WAAejwC,IAAI4Z,QAAQ0lC,SAAWt/C,IAAI4Z,QAAQ0lC,QAAQD,UAAYr/C,IAAI4Z,QAAQ0lC,QAAQD,SAASpP,YAE3J,IAArCmP,EAAQ1zC,QAAQsqB,EAAMpyB,IAAI5N,SAE1BggC,EAAM7nB,OAAO+sC,sBACVllB,EAAM7nB,OAAOgtC,UACbnlB,EAAMolB,YACNplB,EAAMolB,aAAen+C,GAGf+4B,EAAM7nB,OAAOkzC,sBADtBrrB,EAAMvX,QAOZ,SAASg+B,EAAUl3C,GAED,KADFA,EAAEm3C,SACM1mB,EAAM7nB,OAAOqxC,eACjCxpB,EAAMvX,QAMV,SAASghC,EAAcp3C,GACrB,OAAQuV,EAAI3V,OAAkB,EAATI,GAAcuV,EAAI3V,OA5FrC+tB,EAAM7nB,OAAOgtC,UAAYnlB,EAAM7nB,OAAOitC,WACxCX,EAAct5C,EAAE60B,EAAM7nB,OAAOitC,YACpBplB,EAAM7nB,OAAOgtC,UAEK,KAD3BV,EAAc78B,EAAIpjB,KAAKyE,SAAS,oBAChBjJ,SACdykD,EAAct5C,EAAE,sCAChByc,EAAIpjB,KAAKyP,OAAOwwC,IAIpB7oC,MAAM5U,OAAOg5B,EAAO,CAClBpY,IAAKA,EACLxnB,KAAM4nB,EAAIlb,SAAS,qBAAuBkzB,EAAM7nB,OAAO/X,KACvD4nB,IAAKA,EACLpa,GAAIoa,EAAI,GACRy8B,YAAaA,EACbW,WAAYX,GAAeA,EAAY,GACvC1jD,KAAM,QACN01C,QAAStrC,EAAE,UAGT60B,EAAM7nB,OAAO/X,MACf4nB,EAAIzb,SAAS,oBA0Ef,IACIm9C,EACAC,EACApuB,EACAG,EACAD,EAEAyyB,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EAnBA9yB,GAAY,EAMZ3J,GAAU,EAed,SAAS+K,EAAiB7tB,GACpBysB,IAAegE,EAAM7nB,OAAO+xC,eAAgBlqB,EAAM7nB,OAAO42C,aACzD/uB,EAAM7nB,OAAOgyC,cAA0E,IAA1Dh/C,EAAEoE,EAAEtI,QAAQyO,QAAQsqB,EAAM7nB,OAAOgyC,cAAcnqD,SAGhFg8B,GAAY,EACZ3J,GAAU,EACVq3B,EAAa,CACX7oC,EAAc,eAAXtR,EAAExO,KAAwBwO,EAAEomB,cAAc,GAAGG,MAAQvmB,EAAEumB,MAC1DtC,EAAc,eAAXjkB,EAAExO,KAAwBwO,EAAEomB,cAAc,GAAGI,MAAQxmB,EAAEwmB,OAE5D2F,EAAiB9f,MAAMc,MACvB6e,OAAc18B,EACdqvD,EAAkBlmC,EAAIlb,SAAS,mBAC1BkzB,EAAM7nB,OAAOgyC,cAA2B,eAAX56C,EAAExO,OAClC4tD,EAAqBxjD,EAAEoE,EAAEtI,QAAQyO,QAAQ,iBAAiB,KAG9D,SAAS8nB,EAAgBjuB,GACvB,GAAKysB,EAAL,CASA,GARA2tB,EAAe,CACb9oC,EAAc,cAAXtR,EAAExO,KAAuBwO,EAAEomB,cAAc,GAAGG,MAAQvmB,EAAEumB,MACzDtC,EAAc,cAAXjkB,EAAExO,KAAuBwO,EAAEomB,cAAc,GAAGI,MAAQxmB,EAAEwmB,YAGhC,IAAhBwF,IACTA,KAAiBA,GAAevkB,KAAKuJ,IAAIopC,EAAa9oC,EAAI6oC,EAAW7oC,GAAK7J,KAAKuJ,IAAIopC,EAAan2B,EAAIk2B,EAAWl2B,KAE7G+H,EAGF,OAFAS,GAAY,OACZ3J,GAAU,GAMZ,IAyDM28B,EAzDFjtB,GAFJtG,EAAciuB,EAAWl2B,EAAIm2B,EAAan2B,GAEZ,EAAI,YAAc,SAEhD,IAAKnB,EAAS,CACZ,GAAIs8B,IAAuB3mC,EAAIlb,SAAS,yBACtC8hD,EAA4BD,EAAmBj8C,UAC/Cm8C,EAA+BF,EAAmB53C,aAClD+3C,EAA+BH,EAAmBv8C,eAE9Cy8C,IAAiCC,GAChB,cAAd/sB,GAA2D,IAA9B6sB,GACf,WAAd7sB,GAA0B6sB,IAA+BC,EAA+BC,IAK7F,OAHA9mC,EAAIvZ,UAAU,IACdutB,GAAY,OACZ3J,GAAU,GAIV2N,EAAM5/B,MAAQ4oD,IAChByF,EAAc7mC,EAAIpjB,KAAKyE,SAAS,kBAElCqlD,EAAsBtmC,EAAI,GAAG5V,aAC7Bg8C,EAAiBxyC,MAAMwB,aAAa4K,EAAI,GAAI,KACxCkmC,GACFK,EAAevuB,EAAM7nB,OAAO+xC,cAAgBoE,GAAuBH,EACnEK,EAAe,IAEfD,EAAe,EACfC,EAAexuB,EAAM7nB,OAAO+xC,aAAeoE,EAAsBH,GAEnE97B,GAAU,EAKZ,GAHAg8B,EAAmBD,EAAiB3yB,EACpC4yB,EAAmBr3C,KAAKE,IAAIF,KAAKC,IAAIo3C,EAAkBE,GAAeC,GACtEj/C,EAAEmmB,iBACEsK,EAAM5/B,MAAQ4oD,EAAY,CAC5B,IAAIvxC,GAAY42C,EAAmBD,GAAkBE,EACjDtuB,EAAM7nB,OAAO42C,cAEbt3C,EADEy2C,EACUG,EAAmBF,EAEpB,GAAKA,EAAqBE,GAAoBF,GAG7D12C,EAAWT,KAAKuJ,IAAI9I,GAEpB,IAAI2yC,EAAe,GADnB3yC,EAAWT,KAAKE,IAAIF,KAAKC,IAAIQ,EAAU,GAAI,IAEvC4yC,EAAQ,GAAK,EAAIZ,EAAcT,IAAeoB,EAClDqE,EAAY7/C,WAAW,GAAGH,UAAW,4BAA8B47C,EAAQ,KACvErqB,EAAM7nB,OAAO42C,aACfN,EAAY78C,IAAI,gBAAmB88C,EAAmBtE,EAAgB,MAM1E,GAHApiC,EACGpZ,WAAW,GACXH,UAAW,iBAAmB4/C,EAAmB,SAChDruB,EAAM7nB,OAAO42C,YAGbC,EADEd,EACW,EAAKG,EAAmBF,GAEvBA,EAAqBE,GAAoBF,EAEzDa,EAAah4C,KAAKE,IAAIF,KAAKC,IAAI+3C,EAAY,GAAI,GAC/ChnC,EAAIjX,QAAQ,qBAAsBi+C,GAClChvB,EAAM3a,KAAK,wCAAyC2a,EAAOgvB,IAG/D,SAASpuB,IAEP,GADA5E,GAAY,EACP3J,EAAL,CAGAA,GAAU,EACVrK,EAAIvZ,UAAU,IAAIG,WAAW,IACzBoxB,EAAM5/B,MAAQ4oD,IAChByF,EAAY7/C,WAAW,IAAIH,UAAU,IACrCggD,EAAY78C,IAAI,gBAAiB,KAGnC,IAAImwB,EAAYtG,EAAc,EAAI,YAAc,SAE5CwhB,EAAOjmC,KAAKuJ,IAAIkb,GACpB,GAAa,IAATwhB,GAAcoR,IAAqBD,EAAvC,CAEA,IAAIttB,GAAW,IAAKj2B,MAAQ0M,UAAYmkB,EAExC,GAAKsE,EAAM7nB,OAAO42C,YAAlB,CAUA,IAAIE,EAAgBf,EAAkB,YAAc,SAChDgB,EAAiBhB,EAAkB,SAAW,YAC9CiB,EAAsBn4C,KAAKuJ,IAAI8tC,GAC/Be,EAAwBp4C,KAAKuJ,IAAI4tC,GAErC,GAAIrtB,EAAW,KAAOmc,EAAO,GA0C3B,OAzCIlb,IAAcktB,GAAiBE,EAAsBC,IAEvDpnC,EAAIpb,YAAY,uBAChBob,EAAIjX,QAAQ,qBAAsB,GAClCivB,EAAM3a,KAAK,wCAAyC2a,EAAO,GAC3DhY,EAAIjX,QAAQ,kBACZivB,EAAM3a,KAAK,gCAAiC2a,GACxCA,EAAM5/B,MAAQ4oD,IAChBhpB,EAAMyW,QAAQ,GAAGttC,MAAMonC,YAAY,wBAAyBkZ,EAAcT,IAC1EyF,EAAY78C,IAAI,gBAAiB,MAGjCmwB,IAAcmtB,GAAkBC,EAAsBC,IAEpDpvB,EAAM7nB,OAAO+xC,aACflqB,EAAMvX,SAGNT,EAAIzb,SAAS,uBACbyb,EAAIjX,QAAQ,qBAAsB,GAClCivB,EAAM3a,KAAK,wCAAyC2a,EAAO,GAC3DhY,EAAIjX,QAAQ,mBACZivB,EAAM3a,KAAK,kCAAmC2a,GAC1CA,EAAM5/B,MAAQ4oD,IAChBhpB,EAAMyW,QAAQ,GAAGttC,MAAMohD,eAAe,yBACtCkE,EAAY78C,IAAI,gBAAiB,eAInCmwB,IAAcmtB,GAAkBC,GAAuBC,IAEzDpnC,EAAIzb,SAAS,uBACbyb,EAAIjX,QAAQ,qBAAsB,GAClCivB,EAAM3a,KAAK,wCAAyC2a,EAAO,GAC3DhY,EAAIjX,QAAQ,mBACZivB,EAAM3a,KAAK,kCAAmC2a,GAC1CA,EAAM5/B,MAAQ4oD,IAChBhpB,EAAMyW,QAAQ,GAAGttC,MAAMohD,eAAe,yBACtCkE,EAAY78C,IAAI,gBAAiB,UAKvC,GAAIkvB,GAAY,IAAK,CACnB,IAAIuuB,GAAcrnC,EAAIlb,SAAS,uBAC1BuiD,EAgBMA,IACLF,EAAsBC,GAAyBd,EAAsBc,GAAyB,EAE5FpvB,EAAM7nB,OAAO+xC,cAAgBlqB,EAAMvX,QAC9B0mC,EAAsBC,EAAwB,IAEvDpnC,EAAIzb,SAAS,uBACbyb,EAAIjX,QAAQ,qBAAsB,GAClCivB,EAAM3a,KAAK,wCAAyC2a,EAAO,GAC3DhY,EAAIjX,QAAQ,mBACZivB,EAAM3a,KAAK,kCAAmC2a,GAC1CA,EAAM5/B,MAAQ4oD,IAChBhpB,EAAMyW,QAAQ,GAAGttC,MAAMohD,eAAe,yBACtCkE,EAAY78C,IAAI,gBAAiB,UA5BjCu9C,EAAuBC,EAAwB,GAEjDpnC,EAAIpb,YAAY,uBAChBob,EAAIjX,QAAQ,qBAAsB,GAClCivB,EAAM3a,KAAK,wCAAyC2a,EAAO,GAC3DhY,EAAIjX,QAAQ,kBACZivB,EAAM3a,KAAK,gCAAiC2a,GACxCA,EAAM5/B,MAAQ4oD,IAChBhpB,EAAMyW,QAAQ,GAAGttC,MAAMonC,YAAY,wBAAyBkZ,EAAcT,IAC1EyF,EAAY78C,IAAI,gBAAiB,MAEzBu9C,EAAsBC,GAA0Bd,EAAsBc,GAAyB,GAErGpvB,EAAM7nB,OAAO+xC,cAAgBlqB,EAAMvX,aA3E7C,CACE,GAAIsZ,KAAemsB,EAAkB,SAAW,aAC9C,QAEGptB,EAAW,KAAOmc,EAAO,IAAQnc,GAAY,KAAOmc,EAAQqR,EAAsB,IACrFtuB,EAAMvX,WA4GZ,SAAS6mC,IACPtvB,EAAMuvB,cAAa,GAjBrBvvB,EAAMuvB,aAAe,SAAsBC,QACvB,IAAbA,IAAsBA,GAAW,GAEtC,IAAIC,EAAeznC,EAAIrS,KAAK,2BAA2B5B,GAAG,GACrD07C,EAAazvD,SAEhBmuD,EADEnmC,EAAIlb,SAAS,qBACQ2iD,EAAap9C,SAASS,IAAMkV,EAAI3V,SAASS,IAAM28C,EAAa,GAAGr9C,cAEjE4V,EAAI,GAAG5V,cAAgBq9C,EAAap9C,SAASS,IAAMkV,EAAI3V,SAASS,IAAM28C,EAAa,GAAGr9C,cAE7G4V,EAAI,GAAG7e,MAAMonC,YAAY,wBAA0B4d,EAAqB,MACnEqB,GACHxnC,EAAIzb,SAAS,yBAQjB,IAAIqoB,IAAU7S,QAAQO,iBAAkB,CAAEsS,SAAS,GAiGnD,OAhGIoL,EAAM7nB,OAAO+xC,cAAgBlqB,EAAM7nB,OAAO42C,eAC5C/mC,EAAIhZ,GAAG4Y,EAAIoN,YAAYC,MAAOmI,EAAkBxI,GAChDhN,EAAI5Y,GAAG,YAAawuB,GACpB5V,EAAI5Y,GAAG,mBAAoB4xB,GAC3BZ,EAAMtvB,KAAK,gBAAgB,WACzBsX,EAAI3X,IAAIuX,EAAIoN,YAAYC,MAAOmI,EAAkBxI,GACjDhN,EAAIvX,IAAI,YAAamtB,GACrB5V,EAAIvX,IAAI,mBAAoBuwB,OAIhCZ,EAAMhxB,GAAG,QAAQ,WACXgxB,EAAM7nB,OAAOqxC,eACfr+C,EAAEjD,KAAK8G,GAAG,UAAWy3C,GAEvBz+B,EAAIzS,QAAQ,mBAAmBhJ,SAAS,gBACpCyzB,EAAM7nB,OAAO42C,cACf/uB,EAAMuvB,cAAa,GACnB3nC,EAAI5Y,GAAG,SAAUsgD,IAEftvB,EAAM7nB,OAAOu3C,YAhWnB,WACE,IAAIC,EAAYxkD,EAAE60B,EAAM7nB,OAAOu3C,YAAY37C,GAAG,GAC9C,GAAyB,IAArB47C,EAAU3vD,QAEgB,KAD9BiiD,EAAiB0N,EAAU5sD,QAAQ,kBAChB/C,OAAnB,CAEA,IAMI4vD,EANAC,EAAa3vC,SAAS+hC,EAAerwC,IAAI,eAAgB,IACzDk+C,EAAgB5vC,SAAS+hC,EAAerwC,IAAI,kBAAmB,IAC/Dm+C,EAAa9N,EAAe,GAAG7vC,aAAey9C,EAAa7nC,EAAI/V,SAC/D+9C,EAAmB/N,EAAe,GAAGlrC,aAAe84C,EAAa7nC,EAAI/V,SACrEg+C,EAAahO,EAAevvC,YAI5Bw9C,EAAeP,EAAUt9C,SAASS,IAAM+8C,EAAcF,EAAU,GAAGv9C,aACvE,GAAI89C,EAAcH,EAAY,CAC5B,IAAIr9C,EAAau9C,EAAaC,EAAeH,EACzCr9C,EAAYq9C,EAAaC,IAC3BJ,EAAqBl9C,EAAYq9C,EAAcC,EAAoBF,EAC/DC,IAAeC,IACjBJ,EAAmB5nC,EAAI/V,UAEzBgwC,EAAerwC,IAAI,CACjBu+C,iBAAmBP,EAAmB,QAG1C3N,EAAevvC,UAAUA,EAAW,OAuUpC09C,GAGEpwB,EAAM5/B,OACR4oD,EAAa9oC,SAAS8H,EAAIpW,IAAI,0BAA2B,IACrDpO,OAAOsd,MAAMkoC,KAAeA,EAAa,GACzCA,IACFhhC,EAAIzb,SAAS,oBACbyzB,EAAMyW,QAAQlqC,SAAS,yBAClByzB,EAAM7nB,OAAO42C,aAGhBN,EAAc7mC,EAAIpjB,KAAKyE,SAAS,iBAChCylD,EAAmBxgD,WAAW8Z,EAAIpW,IAAK,WAAas8C,EAAkB,SAAW,OAAS,iBAC1FO,EAAY78C,IAAI,gBAAiB,QAJjCouB,EAAMyW,QAAQ,GAAGttC,MAAMonC,YAAY,wBAAyBkZ,EAAcT,SASlFhpB,EAAMhxB,GAAG,UAAU,YACbgxB,EAAM7nB,OAAOkzC,qBAAuBrrB,EAAM7nB,OAAO+sC,uBACnDt9B,EAAI5Y,GAAG,QAASy2C,MAGpBzlB,EAAMhxB,GAAG,SAAS,WACZgxB,EAAM7nB,OAAO42C,cACf/mC,EAAIpb,YAAY,uBAChBgb,EAAIvX,IAAI,SAAUi/C,IAEhBtvB,EAAM7nB,OAAOqxC,eACfr+C,EAAEjD,KAAKmI,IAAI,UAAWo2C,GAEpBzmB,EAAM7nB,OAAOu3C,YAlWbzN,GAAkBA,EAAejiD,OAAS,GAC5CiiD,EAAerwC,IAAI,CACjBu+C,iBAAkB,MAmWlBnwB,EAAM7nB,OAAOkzC,qBAAuBrrB,EAAM7nB,OAAO+sC,uBACnDt9B,EAAIvX,IAAI,QAASo1C,GAEnBz9B,EAAIzS,QAAQ,mBAAmBxB,GAAG,GAAGnH,YAAY,gBAC7CozB,EAAM5/B,MAAQ4oD,IAChBhpB,EAAMyW,QAAQ7pC,YAAY,yBAC1BozB,EAAMyW,QAAQlqC,SAAS,qCAG3ByzB,EAAMhxB,GAAG,UAAU,WACbgxB,EAAM5/B,MAAQ4oD,IAChBhpB,EAAMyW,QAAQ7pC,YAAY,iCAC1BozB,EAAMyW,QAAQ,GAAGttC,MAAMohD,eAAe,6BAI1CvqB,EAAMqwB,SAAW,WACfroC,EAAIpb,YAAY,uBACZozB,EAAM5/B,OACH4oD,IACHA,EAAa9oC,SAAS8H,EAAIpW,IAAI,0BAA2B,IACrDpO,OAAOsd,MAAMkoC,KAAeA,EAAa,IAE3CA,GACFhpB,EAAMyW,QAAQ,GAAGttC,MAAMonC,YAAY,wBAAyBkZ,EAAcT,MAIhFhpB,EAAMswB,UAAY,WAChBtoC,EAAIzb,SAAS,uBACTyzB,EAAM5/B,MACR4/B,EAAMyW,QAAQ,GAAGttC,MAAMohD,eAAe,0BAG1CvqB,EAAMuwB,WAAa,WACjBvoC,EAAIhb,YAAY,wBAGlBgb,EAAI,GAAGQ,QAAUwX,EAEVA,EAOT,OAJKikB,IAAQgK,EAAMroC,UAAYq+B,GAC/BgK,EAAM9mD,UAAYvE,OAAOijB,OAAQo+B,GAASA,EAAM98C,WAChD8mD,EAAM9mD,UAAUxE,YAAcsrD,EAEvBA,EAhfgB,CAifvBhK,OAEEuM,QAAU,CACZttD,KAAM,QACNiV,OAAQ,CACN6nB,MAAO,CACL5/B,MAAM,EACN+kD,cAAUtmD,EACVumD,gBAAYvmD,EACZqmD,sBAAsB,EACtBmG,qBAAqB,EACrB7B,eAAe,EACfU,cAAc,EACd6E,aAAa,EACb5E,aAAc,OAGlB9iC,OAAQ,CACN4mC,MAAOA,OAETpoC,OAAQ,WACN,IAAI+B,EAAMlpB,KACVkpB,EAAIoY,MAAQpkB,MAAM5U,OAChB,GACAkhB,aAAa,CACXN,IAAKA,EACLjlB,YAAasrD,MACbxmC,gBAAiB,0BAEnB,CACE4oC,SAAU,SAAkBrwB,GAC1B,IAAIywB,EAAgB7oC,EAAIoY,MAAMp4B,IAAIo4B,GAClC,GAAIywB,GAAiBA,EAAcJ,SAAY,OAAOI,EAAcJ,YAGtEC,UAAW,SAAmBtwB,GAC5B,IAAIywB,EAAgB7oC,EAAIoY,MAAMp4B,IAAIo4B,GAClC,GAAIywB,GAAiBA,EAAcH,UAAa,OAAOG,EAAcH,aAGvEC,WAAY,SAAoBvwB,GAC9B,IAAIywB,EAAgB7oC,EAAIoY,MAAMp4B,IAAIo4B,GAClC,GAAIywB,GAAiBA,EAAcF,WAAc,OAAOE,EAAcF,iBAM9ErY,OAAQ,CACNwY,cAAe,SAAmB3Y,EAAY30C,QAC9B,IAATA,IAAkBA,EAAO,IAG1B+H,EAAE,yBAAyBnL,OAAS,GAAKoD,EAAK48B,OAAS70B,EAAE/H,EAAK48B,OAAO,KAAO70B,EAAE,yBAAyB,IADjGzM,KAEJshC,MAAMvX,MAAM,yBAFR/pB,KAINshC,MAAM7X,KAAK/kB,EAAK48B,MAAO58B,EAAK0U,QAASigC,IAE3C4Y,eAAgB,SAAoB5Y,EAAY30C,QAChC,IAATA,IAAkBA,EAAO,IAEpB1E,KACNshC,MAAMvX,MAAMrlB,EAAK48B,MAAO58B,EAAK0U,QAASigC,MAK5C6Y,MAAsB,SAAU3M,GAClC,SAAS2M,EAAMhpC,EAAKzP,GAClB,IAAIotC,EAAiB3pC,MAAM5U,OAAO,CAChCgI,GAAI,IACH4Y,EAAIzP,OAAO04C,MAAO14C,GAGrB8rC,EAAMr/C,KAAKlG,KAAMkpB,EAAK29B,GAEtB,IAAIsL,EAAQnyD,KAEZmyD,EAAMjpC,IAAMA,EAEZipC,EAAM14C,OAASotC,EAEf,IAIIv9B,EAqCA8oC,EAzCAr3C,EAAMo3C,EAAM14C,OACZ44C,EAAct3C,EAAIs3C,YAClBC,EAAev3C,EAAIu3C,aAGvB,GAAKH,EAAM14C,OAAOvK,GAMhBoa,EAAM7c,EAAE0lD,EAAM14C,OAAOvK,QAND,CAEpB,IAAIqjD,EAAYJ,EAAMx5C,SAEtB2Q,EAAM7c,EAAE8lD,GAKV,OAAIjpC,GAAOA,EAAIhoB,OAAS,GAAKgoB,EAAI,GAAGQ,QAC3BR,EAAI,GAAGQ,QAGG,IAAfR,EAAIhoB,OACC6wD,EAAM5oC,WAGfrM,MAAM5U,OAAO6pD,EAAO,CAClB7oC,IAAKA,EACLpa,GAAIoa,EAAI,GACRjnB,KAAM,UAGRinB,EAAI,GAAGQ,QAAUqoC,EAEbE,IACF/oC,EAAIrS,KAAK,iBAAiB3G,GAAG,SAAS,WACpC6hD,EAAMxrC,KAAK,gDAAiDwrC,GAC5DA,EAAMpoC,WAGRooC,EAAM7hD,GAAG,iBAAiB,WACxBgZ,EAAIrS,KAAK,iBAAiBtF,IAAI,aAKlCwgD,EAAM7hD,GAAG,QAAQ,WACf7D,EAAE,mBAAmBnG,MAAK,SAAUK,EAAO6rD,GACzC,IAAIC,EAAgBvpC,EAAIipC,MAAMjpD,IAAIspD,GAC9BA,IAAaL,EAAMjjD,IAAMujD,GAC3BA,EAAc1oC,WAGduoC,IACFF,EAAYl1C,MAAMW,UAAS,WACzBs0C,EAAMpoC,UACLuoC,OAGPH,EAAM7hD,GAAG,SAAS,WAChBhF,IAAIgB,aAAa8lD,MAGfD,EAAM14C,OAAO8tC,gBACf4K,EAAMngD,KAAK,UAAU,WACnB3F,YAAW,WACT8lD,EAAM5oC,YACL,MAIA4oC,GAyBT,OAtBK5M,IAAQ2M,EAAMhrC,UAAYq+B,GAC/B2M,EAAMzpD,UAAYvE,OAAOijB,OAAQo+B,GAASA,EAAM98C,WAChDypD,EAAMzpD,UAAUxE,YAAciuD,EAE9BA,EAAMzpD,UAAUkQ,OAAS,WAEvB,GADY3Y,KACFyZ,OAAOd,OAAU,OADf3Y,KAC4ByZ,OAAOd,OAAOzS,KAD1ClG,KAAAA,MAEZ,IAAI+a,EAFQ/a,KAEIyZ,OACZytB,EAAWnsB,EAAImsB,SACfwrB,EAAqB33C,EAAI23C,mBACzBpL,EAAWvsC,EAAIusC,SACf4H,EAAOn0C,EAAIm0C,KACXr6C,EAAOkG,EAAIlG,KACXw9C,EAAct3C,EAAIs3C,YAClBM,EAAmB53C,EAAI43C,iBACvBC,EAAkB73C,EAAI63C,gBAI1B,OAAQ,mCAAsC1rB,EAAW,KAHtB,QAAbA,GAAmC,WAAbA,EACvC,oBAAsBwrB,EACvB,IAC6E,KAAOpL,GAAY,IAAM,KAAO4H,EAAO,kBAAoB,IAAM,uDAA4DA,EAAQ,2BAA+BA,EAAO,SAAY,IAAM,uCAA2Cr6C,EAAO,sBAAwBw9C,IAAgBnD,GAAQ,8CAAiDyD,EAAoB,SAAWA,EAAoB,IAAM,KAAQC,EAAkB,oBAAoBzxD,OAAS,IAAM,wCAAwCA,QAG1jB+wD,EA3GgB,CA4GvB3M,OAEEsN,QAAU,CACZruD,KAAM,QACNmkB,OAAQ,CACNupC,MAAOA,OAET/qC,OAAQ,WACN,IAAI+B,EAAMlpB,KACVkpB,EAAIipC,MAAQj1C,MAAM5U,OAChB,GACAkhB,aAAa,CACXN,IAAKA,EACLjlB,YAAaiuD,MACbnpC,gBAAiB,oBAEnB,CAEEvU,KAAM,SAAciF,GAIlB,OAHAyD,MAAM5U,OAAOmR,EAAQ,CACnB8tC,gBAAgB,IAEX,IAAI2K,MAAMhpC,EAAKzP,GAAQgQ,WAKtChQ,OAAQ,CACN04C,MAAO,CACLjD,KAAM,KACNr6C,KAAM,KACNqyB,SAAU,SACVwrB,mBAAoB,OACpBL,aAAa,EACbM,iBAAkB,KAClBC,gBAAiB,KACjBN,aAAc,KACdhL,SAAU,KACV3uC,OAAQ,QAKVm6C,UAAY,CACdvmC,KAAM,SAAcrd,GAClB,IACIoa,EAAM7c,EAAEyC,GACO,IAAfoa,EAAIhoB,QAAgBgoB,EAAI/e,SAAS,oBAAoBjJ,OAAS,GAAKgoB,EAAI/e,SAAS,yBAAyBjJ,OAAS,GACtHgoB,EAAI/T,OAAO2H,MAHDld,KAGkB,MAAI,sBAGlC+yD,SAAS,EACTv+C,KAAM,SAAc0mC,QACH,IAAVA,IAAmBA,EAAQ,SAGhC,IAAI4X,UAAUC,QAAd,CACA,IAAI9I,EAAiB/sC,MAFXld,KAE4B,MAAI,qBAAwB,GAClEyM,EAAE,QAAQoB,SAAS,wBAHT7N,KAIN8F,KAAKyP,OAAQ,4HAAmI2lC,EAAQ,KAAQ+O,EAAiB,8BACrL6I,UAAUC,SAAU,IAEtBC,OAAQ,SAAgB9jD,EAAIgsC,QACX,IAAVA,IAAmBA,EAAQ,SAEhC,IACI+O,EAAiB/sC,MADXld,KAC4B,MAAI,qBAAwB,GAClEyM,EAAEyC,GAAM,QAAQrB,SAAS,wBACzBpB,EAAEyC,GAHQlP,KAGE8F,MAAMyP,OAAQ,4HAAmI2lC,EAAQ,KAAQ+O,EAAiB,+BAEhM31C,KAAM,WAECw+C,UAAUC,UACftmD,EAAE,QAAQyB,YAAY,wBAFZlO,KAGN8F,KAAKmR,KAAK,yCAAyC9I,SACvD2kD,UAAUC,SAAU,IAEtBE,OAAQ,SAAgB/jD,GAEtBzC,EAAEyC,GAAM,QAAQhB,YAAY,wBAC5BzB,EAAEyC,GAFQlP,KAEE8F,MAAMmR,KAAK,yCAAyC9I,WAGhE+kD,YAAc,CAChB1uD,KAAM,YACN2iB,OAAQ,WAENjK,MAAM5U,OADItI,KACQ,CAChBgqD,UAAW,CACTz9B,KAAMumC,UAAUvmC,KAAKlR,KAHfrb,MAINwU,KAAMs+C,UAAUt+C,KAAK6G,KAJfrb,MAKNsU,KAAMw+C,UAAUx+C,KAAK+G,KALfrb,MAMNgzD,OAAQF,UAAUE,OAAO33C,KANnBrb,MAONizD,OAAQH,UAAUG,OAAO53C,KAPnBrb,UAWZsQ,GAAI,CACF6iD,iBAAkB,SAA0BC,GAC1C,IAAIlqC,EAAMlpB,KACVozD,EAAG9pC,IAAIrS,KAAK,cAAc3Q,MAAK,SAAUK,EAAO0sD,GAC9CnqC,EAAI8gC,UAAUz9B,KAAK8mC,OAGvBC,WAAY,SAAoB9nB,GAC9B,IAAItiB,EAAMlpB,KACVyM,EAAE++B,GAAOv0B,KAAK,cAAc3Q,MAAK,SAAUK,EAAO0sD,GAChDnqC,EAAI8gC,UAAUz9B,KAAK8mC,OAGvBrQ,SAAU,SAAkBvN,GAC1B,IAAIvsB,EAAMlpB,KACVy1C,EAAKnsB,IAAIrS,KAAK,cAAc3Q,MAAK,SAAUK,EAAO0sD,GAChDnqC,EAAI8gC,UAAUz9B,KAAK8mC,QAIzBprC,MAAO,CACL+hC,UAAW,CACTlM,OAAQ,SAAgB71B,GACtB,IACIorC,EAAcprC,EAAM81B,IADd/9C,KAENgqD,UAAUz9B,KAAK8mC,OAMvBE,YAAc,CAChBhrC,IAAK,WAIH,IAHA,IAAIhY,EAEAxI,EAAO,GAAIC,EAAMC,UAAU3G,OACvB0G,KAAQD,EAAMC,GAAQC,UAAWD,GACzC,IAAIkhB,EAAMlpB,KACNkP,EAAKnH,EAAK,GACVgR,EAAWhR,EAAK,GAChBoI,EAAWpI,EAAK,GAKpB,GAJuB,iBAAZA,EAAK,KACEgR,GAAfxI,EAASxI,GAAwB,GAAIoI,EAAWI,EAAO,GACxDrB,EAAKga,EAAIpjB,MAEP,MAAOiT,EAAiD,OAAO7J,EAC9D6J,IAAYA,EAAW,GAE5B,IAAIuQ,EAAM7c,EAAEyC,GAAMga,EAAIpjB,MACtB,GAAmB,IAAfwjB,EAAIhoB,OACN,OAAO4N,EAET,IACIskD,EADAC,EAAqBn7C,KAAKE,IAAIF,KAAKC,IAAIQ,EAAU,GAAI,KAMzD,GAA8B,KAJKy6C,EAA/BlqC,EAAIlb,SAAS,eAAmCkb,EAAIjU,GAAG,GAExCiU,EAAI/e,SAAS,iBAEbjJ,QAAgBkyD,EAAeplD,SAAS,wBACzD,OAAOolD,EAET,IAAIE,EAAmBF,EAAejpD,SAAS,QAS/C,OARgC,IAA5BmpD,EAAiBpyD,SACnBoyD,EAAmBjnD,EAAE,iBACrB+mD,EAAej+C,OAAOm+C,IAExBA,EACGxjD,gBAA+B,IAAbC,EAA2BA,EAAW,IACxDJ,UAAW,iBAAoB,IAAM0jD,GAAuB,UAExDD,EAAe,IAExBh/C,KAAM,WAIJ,IAHA,IAAIjE,EAAQ0hB,EAERlqB,EAAO,GAAIC,EAAMC,UAAU3G,OACvB0G,KAAQD,EAAMC,GAAQC,UAAWD,GACzC,IAAIkhB,EAAMlpB,KAGNkP,EAAKnH,EAAK,GACVgR,EAAWhR,EAAK,GAChBmzC,EAAQnzC,EAAK,GACb1F,EAAO,aAES,IAAhB0F,EAAKzG,OACiB,iBAAZyG,EAAK,IAAsC,iBAAZA,EAAK,IAAuC,iBAAZA,EAAK,GAIlD,iBAAZA,EAAK,IAAsC,iBAAZA,EAAK,KAElCgR,GAAjBkZ,EAAWlqB,GAA0B,GAAImzC,EAAQjpB,EAAS,GAC3D/iB,EAAKga,EAAIpjB,OALOoJ,GAAfqB,EAASxI,GAAkB,GAAImzC,EAAQ3qC,EAAO,GAAIwI,EAAWxI,EAAO,GACrElO,EAAO,YAMgB,IAAhB0F,EAAKzG,OACS,iBAAZyG,EAAK,IACdmH,EAAKga,EAAIpjB,KACTiT,EAAWhR,EAAK,IACY,iBAAZA,EAAK,KACrB1F,EAAO,WACP6M,EAAKga,EAAIpjB,KACTo1C,EAAQnzC,EAAK,IAEU,IAAhBA,EAAKzG,SACde,EAAO,WACP6M,EAAKga,EAAIpjB,MAGX,IAGI0tD,EAHAlqC,EAAM7c,EAAEyC,GACZ,GAAmB,IAAfoa,EAAIhoB,OAiBR,OAdIgoB,EAAIlb,SAAS,gBAAkBkb,EAAIlb,SAAS,wBAC9ColD,EAAiBlqC,EAGa,KAD9BkqC,EAAiBlqC,EAAI/e,SAAS,oFACXjJ,SACjBkyD,EAAiB/mD,EAAG,wCAAoD,aAATpK,EAAsB,YAAc,KAAO64C,EAAS,UAAYA,EAAS,IAAM,mCAA+C,aAAT74C,EAAsB,GAAK,iBAAmB,uBAClOinB,EAAI/T,OAAOi+C,SAIS,IAAbz6C,GACTmQ,EAAIk/B,YAAY7/B,IAAIirC,EAAgBz6C,GAG/By6C,EAAe,IAExBl/C,KAAM,SAAcpF,EAAIykD,QACG,IAApBA,IAA6BA,GAAkB,GAEpD,IAGIH,EAFAlqC,EAAM7c,EAAEyC,GADFlP,KACY8F,MACtB,GAAmB,IAAfwjB,EAAIhoB,OAOR,OAA8B,KAJ5BkyD,EADElqC,EAAIlb,SAAS,gBAAkBkb,EAAIlb,SAAS,wBAC7Bkb,EAEAA,EAAI/e,SAAS,wCAEbjJ,SAAiBkyD,EAAeplD,SAAS,mBAAqBolD,EAAeplD,SAAS,oBAGzGolD,EACGtlD,YAAY,kBACZL,SAAS,mBACTkF,cAAa,WACR4gD,GACFH,EAAerlD,YAPZqlD,IAcTI,cAAgB,CAClBpvD,KAAM,cACN2iB,OAAQ,WAENjK,MAAM5U,OADItI,KACQ,CAChBooD,YAAa,CACX7/B,IAAKgrC,YAAYhrC,IAAIlN,KAHfrb,MAINwU,KAAM++C,YAAY/+C,KAAK6G,KAJjBrb,MAKNsU,KAAMi/C,YAAYj/C,KAAK+G,KALjBrb,UASZsQ,GAAI,CACFgjD,WAAY,SAAoB9nB,GAC9B,IAAItiB,EAAMlpB,KACVyM,EAAE++B,GAAOv0B,KAAK,gBAAgB3Q,MAAK,SAAUK,EAAOktD,GAClD,IAAIL,EAAiB/mD,EAAEonD,GACvB3qC,EAAIk/B,YAAY7/B,IAAIirC,EAAgBA,EAAehlD,KAAK,sBAG5Dw0C,SAAU,SAAkBvN,GAC1B,IAAIvsB,EAAMlpB,KACVy1C,EAAKnsB,IAAIrS,KAAK,gBAAgB3Q,MAAK,SAAUK,EAAOktD,GAClD,IAAIL,EAAiB/mD,EAAEonD,GACvB3qC,EAAIk/B,YAAY7/B,IAAIirC,EAAgBA,EAAehlD,KAAK,uBAI9DyZ,MAAO,CACLmgC,YAAa,CACXtK,OAAQ,SAAgB71B,GACtB,IACI/Y,EAAK+Y,EAAM81B,IADL/9C,KAENooD,YAAY7/B,IAAIrZ,EAAIA,EAAGN,aAAa,mBAE1CklD,OAAQ,SAAgB7rC,GACtB,IACI/Y,EAAK+Y,EAAM81B,IADL/9C,KAENooD,YAAY7/B,IAAIrZ,EAAIA,EAAGN,aAAa,sBAM5CmlD,SAAW,CACbxnC,KAAM,WACJ,IACI+Q,EACA3J,EACAF,EACAsJ,EACAi3B,EACAC,EACAC,EACAC,EACAC,EACAr8C,EACAs8C,EACAC,EACAC,EACAjf,EACAiO,EACA8N,EACAmD,EACAC,EACAC,EACAC,EACAC,EArBA1rC,EAAMlpB,KAuBV,SAAS0+B,EAAiB7tB,EAAGgkD,GAC3BlhC,GAAU,EACV2J,GAAY,EACZs3B,GAAa,EACbnhC,EAAyB,eAAX5iB,EAAExO,KAAwBwO,EAAEomB,cAAc,GAAGI,MAAQxmB,EAAEwmB,MACrE28B,EAAavnD,EAAEoE,EAAEtI,QAAQyO,QAAQ,MAAM3B,GAAG,GAC1Ck/C,EAAYP,EAAWrtD,QACvButD,EAAqBF,EAAW3vD,QAAQ,aACxC,IAAIywD,EAAad,EAAW3vD,QAAQ,eAChCywD,EAAWxzD,QAAUwzD,EAAWzwD,QAAQ6vD,GAAoB5yD,SAC9D4yD,EAAqBY,GAEvBb,EAAgBC,EAAmB3pD,SAAS,MAAMA,SAAS,8CACvD2e,EAAI4mB,QAAS5mB,EAAI4mB,MAAMilB,WAAY,GACnC7rC,EAAI0V,WAAY1V,EAAI0V,SAASo2B,OAAQ,GACrCH,IACFb,EAAWnmD,SAAS,WACpBqmD,EAAmBrmD,SAAS,oBAC5B+mD,GAAa,GAuJjB,IAAIx+B,IAAiBlN,EAAI8J,QAAQpP,iBAAkB,CAAEsS,SAAS,EAAOvlB,SAAS,GAE9ElE,EAAEjD,KAAK8G,GAAG4Y,EAAIoN,YAAYC,MAAO,mCAAoCmI,EAAkBtI,GACvFlN,EAAI5Y,GAAG,oBAvJP,SAAyBO,GACvB,GAAKysB,GAAc02B,EAAnB,CACA,IAAI38B,EAAmB,cAAXxmB,EAAExO,KAAuBwO,EAAEomB,cAAc,GAAGI,MAAQxmB,EAAEwmB,MAClE,IAAK1D,EAAS,CACZ2hB,EAAU0e,EAAW3vD,QAAQ,SAC7Bk/C,EAAiByQ,EAAW3vD,QAAQ,iBACpC,IAAI8sD,EAAa3vC,SAAS+hC,EAAerwC,IAAI,eAAgB,IACzDk+C,EAAgB5vC,SAAS+hC,EAAerwC,IAAI,kBAAmB,IACnEyhD,EAAmBpR,EAAe,GAAGvvC,UACrCwgD,EAAalf,EAAQ3hC,SAASS,IAAM+8C,EACpCE,EAAa/b,EAAQ/hC,SAAW49C,EAAaC,EAC7C4C,EAAWnmD,SAAS,WACpBqmD,EAAmBrmD,SAAS,oBAC5B4mD,EAAuBT,EAAW,GAAGiB,UACrCb,EAASJ,EAAW,GAAGiB,UACvBl9C,EAASi8C,EAAWn+C,SAAStC,SAAWkhD,EAAuBT,EAAWzgD,SAC1E4gD,EAAkBH,EAAW,GAAGtgD,aAChCghD,EAAqBV,EAAWrgD,SAASS,IAE3Cuf,GAAU,EAEV9iB,EAAEmmB,iBACFnmB,EAAE0wB,qBAAsB,EAExBxE,EAAc1F,EAAQ5D,EAEtB,IAAIyhC,EAAwB3R,EAAe,GAAGvvC,UAAY2gD,EACtDQ,EAAY78C,KAAKE,IAAIF,KAAKC,IAAIwkB,EAAcm4B,GAAwBd,GAASr8C,GACjFi8C,EAAWjkD,UAAW,iBAAmBolD,EAAY,SAErD,IAYIC,EAXAC,GAAc,EACbt4B,EAAcm4B,EAFE,IAEyCd,IAC5DiB,GAAc,GAEXt4B,EAAcm4B,EALE,GAKwCn9C,IAC3Ds9C,GAAc,GAGhBf,OAAkBn0D,EAClBk0D,OAAiBl0D,EAGbk1D,IACEX,EAAqB33B,EAAco3B,EAdpB,GAcuDK,EAAanD,IAErF+D,EAAcV,EAAqB33B,EAAco3B,EAhBhC,IAgBqEK,EAAanD,IAEjGqD,EAAqB33B,EAAcy3B,EAlBpB,KAoBjBY,EAAcV,EAAqB33B,EAAey3B,EApBjC,IAsBfY,IACF7R,EAAe,GAAGvvC,WAAaohD,IAInCnB,EAAc3tD,MAAK,SAAUK,EAAOuI,GAClC,IAAIomD,EAAa7oD,EAAEyC,GACnB,GAAIomD,EAAW,KAAOtB,EAAW,GAAjC,CACA,IAAIuB,EAAkBD,EAAW,GAAGL,UAChCO,EAAkBF,EAAW/hD,SAC7BkiD,EAAkBhB,EAAuBU,EAExCM,GAAmBF,EAAmBC,EAAkB,GAAOxB,EAAWrtD,QAAU2uD,EAAW3uD,SAClG2uD,EAAWvlD,UAAW,mBAAsBokD,EAAmB,SAC/DE,EAAiBiB,EACjBhB,OAAkBn0D,GACRs1D,GAAmBF,EAAmBC,EAAkB,GAAOxB,EAAWrtD,QAAU2uD,EAAW3uD,SACzG2uD,EAAWvlD,UAAW,kBAAoBokD,EAAkB,SAC5DE,OAAiBl0D,EACZm0D,IAAmBA,EAAkBgB,IAE1CA,EAAWvlD,UAAU,gCA+E3BmZ,EAAI5Y,GAAG,oBA3EP,WACE,IAAKgtB,IAAc3J,EAWjB,OAVI2J,IAAc3J,IACZzK,EAAI4mB,QAAS5mB,EAAI4mB,MAAMilB,WAAY,GACnC7rC,EAAI0V,WAAY1V,EAAI0V,SAASo2B,OAAQ,GACrCJ,IACFZ,EAAW9lD,YAAY,WACvBgmD,EAAmBhmD,YAAY,sBAGnCovB,GAAY,OACZ3J,GAAU,GAUZ,IAAI+hC,EAPAxsC,EAAI4mB,QAAS5mB,EAAI4mB,MAAMilB,WAAY,GACnC7rC,EAAI0V,WAAY1V,EAAI0V,SAASo2B,OAAQ,GAEzCf,EAAclkD,UAAU,IACxBikD,EAAW9lD,YAAY,WACvBgmD,EAAmBhmD,YAAY,oBAG3BmmD,EAAkBqB,EAAUrB,EAAe1tD,QACtC2tD,IAAmBoB,EAAUpB,EAAgB3tD,SAEtD,IAAIgvD,EAAezB,EAAmB5kD,UAAUsmD,qBAchD,QAb4B,IAAjBD,IACTA,EAAezsC,EAAIzP,OAAOo8C,SAASF,cAGjCA,IACEtB,GACFL,EAAW59C,YAAYi+C,GAErBC,GACFN,EAAWj+C,aAAau+C,KAIvBD,GAAkBC,IACjBJ,EAAmB9lD,SAAS,gBAChC,MAEyB,KADzBmmD,EAAYP,EAAW,GAAG8B,sBACcvB,EAAYP,EAAWxlD,KAAK,4BAChE8lD,OAEqB,KADvBoB,EAAUpB,EAAgB,GAAGwB,sBACSJ,EAAUpB,EAAgB9lD,KAAK,iCAG9C,KADvBknD,EAAUrB,EAAe,GAAGyB,sBACUJ,EAAUrB,EAAe7lD,KAAK,4BAE9CknD,EAAR,OAAZA,EAA8Bl0C,SAASk0C,EAAS,SACnCv1D,EAEjB,IAAI41D,EAAc7B,EAAmB,GAAG8B,cAEpCzB,IAAaA,EAAY/yC,SAAS+yC,EAAW,KAC7CmB,IAAWA,EAAUl0C,SAASk0C,EAAS,KACvCK,GAAeA,EAAYE,SAAS1B,EAAWmB,QAE9B,IAAZA,GAA4B5wD,OAAOsd,MAAMszC,IAAYA,IAAYnB,IAC1EP,EAAW3hD,QAAQ,gBAAiB,CAAEgO,KAAMk0C,EAAWn0C,GAAIs1C,IAC3DxsC,EAAIvC,KAAK,eAAgBqtC,EAAW,GAAI,CAAE3zC,KAAMk0C,EAAWn0C,GAAIs1C,EAASxmD,GAAI8kD,EAAW,IAAME,EAAmB,KAGlHI,OAAkBn0D,EAClBk0D,OAAiBl0D,EACjBm9B,GAAY,EACZ3J,GAAU,KASZlnB,EAAEjD,KAAK8G,GAAG,UAAW,sBAAsB,SAAUO,EAAGqlD,GACtDx3B,EAAiBw3B,GAAc,OAGnCC,OAAQ,SAAgBjnD,QACV,IAAPA,IAAgBA,EAAK,kBAE1B,IACIoa,EAAM7c,EAAEyC,GACO,IAAfoa,EAAIhoB,SACRgoB,EAAIzb,SAAS,oBACbyb,EAAIjX,QAAQ,mBAJFrS,KAKN2mB,KAAK,iBAAkB2C,EAAI,MAEjC8sC,QAAS,SAAiBlnD,QACZ,IAAPA,IAAgBA,EAAK,kBAE1B,IACIoa,EAAM7c,EAAEyC,GACO,IAAfoa,EAAIhoB,SACRgoB,EAAIpb,YAAY,oBAChBob,EAAIjX,QAAQ,oBAJFrS,KAKN2mB,KAAK,kBAAmB2C,EAAI,MAElC/a,OAAQ,SAAgBW,QACV,IAAPA,IAAgBA,EAAK,kBAE1B,IACIoa,EAAM7c,EAAEyC,GACO,IAAfoa,EAAIhoB,SACJgoB,EAAIlb,SAAS,oBAHPpO,KAIJ61D,SAASO,QAAQ9sC,GAJbtpB,KAMJ61D,SAASM,OAAO7sC,MAItB+sC,WAAa,CACf7xD,KAAM,WACNiV,OAAQ,CACNo8C,SAAU,CACRF,cAAc,IAGlBxuC,OAAQ,WAENjK,MAAM5U,OADItI,KACQ,CAChB61D,SAAU,CACRtpC,KAAMwnC,SAASxnC,KAAKlR,KAHdrb,MAINm2D,OAAQpC,SAASoC,OAAO96C,KAJlBrb,MAKNo2D,QAASrC,SAASqC,QAAQ/6C,KALpBrb,MAMNuO,OAAQwlD,SAASxlD,OAAO8M,KANlBrb,UAUZsQ,GAAI,CACFic,KAAM,WACMvsB,KACDyZ,OAAOo8C,UADN71D,KAEN61D,SAAStpC,SAGjBitB,OAAQ,CACN8c,mBAAoB,SAAgBjd,EAAY30C,QAChC,IAATA,IAAkBA,EAAO,IAEpB1E,KACN61D,SAASM,OAAOzxD,EAAKmxD,WAE3BU,oBAAqB,SAAiBld,EAAY30C,QAClC,IAATA,IAAkBA,EAAO,IAEpB1E,KACN61D,SAASO,QAAQ1xD,EAAKmxD,WAE5BW,mBAAoB,SAAgBnd,EAAY30C,QAChC,IAATA,IAAkBA,EAAO,IAEpB1E,KACN61D,SAAStnD,OAAO7J,EAAKmxD,aAK3BY,SAAW,CACblqC,KAAM,WACJ,IAEI+Q,EACA3J,EACAkJ,EACAG,EACAD,EACA25B,EACAC,EACAC,EACAC,EACAC,EACAC,EACA5B,EACA3P,EACAwR,EACAC,EACAC,EACA7zB,EACA8zB,EACAC,EACAC,EACAC,EAtBApuC,EAAMlpB,KACNu9B,EAAe,GAuUnB,IAAI3Z,IAAkBsF,EAAI8J,QAAQpP,iBAAkB,CAAEsS,SAAS,GAE/DhN,EAAI5Y,GAAG,cAAc,SAAUO,GAC7B,GAAI4lD,SAASvnD,GAAI,CACf,IAAI+a,EAAYxd,EAAEoE,EAAEtI,QAElBkE,EAAEgqD,SAASvnD,IAAI+B,GAAGgZ,EAAU,KACzBA,EAAU5lB,QAAQ,aAAa4M,GAAGwlD,SAASvnD,KAC3C+a,EAAU7b,SAAS,cAClB6b,EAAUzb,KAAK,UAAY,IAAI7M,QAAQ,aAAe,GACvDsoB,EAAU7b,SAAS,kBACnB6b,EAAU5lB,QAAQ,6CAA6C/C,OAAS,GAE3E4nB,EAAI0V,SAAS7U,MAAM0sC,SAASvnD,QAIlCzC,EAAEjD,KAAK8G,GAAG4Y,EAAIoN,YAAYC,MAAO,eAjUjC,SAA0B1lB,GACnB4lD,SAASzB,QACdrhC,GAAU,EACV2J,GAAY,EACZT,OAAc18B,EACdo9B,EAAapb,EAAe,eAAXtR,EAAExO,KAAwBwO,EAAEomB,cAAc,GAAGG,MAAQvmB,EAAEumB,MACxEmG,EAAazI,EAAe,eAAXjkB,EAAExO,KAAwBwO,EAAEomB,cAAc,GAAGI,MAAQxmB,EAAEwmB,MACxE2F,GAAiB,IAAK7wB,MAAQ0M,UAC9B69C,EAAcjqD,EAAEzM,SAyTgD4jB,GAClEsF,EAAI5Y,GAAG,oBAxTP,SAAyBO,GACvB,GAAKysB,EAAL,CACA,IAAIlG,EAAmB,cAAXvmB,EAAExO,KAAuBwO,EAAEomB,cAAc,GAAGG,MAAQvmB,EAAEumB,MAC9DC,EAAmB,cAAXxmB,EAAExO,KAAuBwO,EAAEomB,cAAc,GAAGI,MAAQxmB,EAAEwmB,MAIlE,QAH2B,IAAhBwF,IACTA,KAAiBA,GAAevkB,KAAKuJ,IAAIwV,EAAQkG,EAAazI,GAAKxc,KAAKuJ,IAAIuV,EAAQmG,EAAapb,KAE/F0a,EACFS,GAAY,MADd,CAKA,IAAK3J,EAAS,CACZ,GAAIlnB,EAAE,yBAAyBnL,OAAS,EAAK,OAC7Cq1D,EAAmBD,EAAYz/C,KAAK,qBACpC2/C,EAAgBF,EAAYz/C,KAAK,2BACjC4/C,EAAeH,EAAYz/C,KAAK,0BAChC6/C,EAAmB,KACnBC,EAAoB,KACpBE,EAAe,KACfC,EAAgB,KAChBE,EAAwB,KACxBD,EAAuB,KACnBN,EAAav1D,OAAS,IACxBw1D,EAAmBD,EAAa1jD,aAChC8jD,EAAeJ,EAAatsD,SAAS,KACrC4sD,EAAuBN,EAAa5/C,KAAK,wBAEvC2/C,EAAct1D,OAAS,IACzBy1D,EAAoBH,EAAczjD,aAClC+jD,EAAgBN,EAAcrsD,SAAS,KACvC6sD,EAAwBR,EAAc3/C,KAAK,yBAE7CuuC,EAASkR,EAAYtoD,SAAS,sBAE5B4oD,EAAoBN,EAAYz/C,KAAK,kDAAkD3V,OAAS,EAAI,OAAS,SAE/Go1D,EAAYxoD,YAAY,0BACnBgb,EAAIzP,OAAOmlB,SAAS24B,WACvBb,EAAYz/C,KAAK,4BAA4B/I,YAAY,2BACzDwoD,EAAYxoD,YAAY,oBAc5B,GAXAylB,GAAU,EACV9iB,EAAEmmB,iBAEF+F,EAAc3F,EAAQmG,EAAapb,EACnCgzC,EAAYp4B,EAERyoB,IACwB,UAAtBwR,EAAiC7B,GAAa4B,EAC3C5B,GAAa2B,GAInB3B,EAAY,GAA6B,IAAxB0B,EAAav1D,QAC3B6zD,EAAY,GAA8B,IAAzByB,EAAct1D,OACnC,CACA,IAAKkkD,EAUH,OATAloB,GAAY,EACZ3J,GAAU,EACVgjC,EAAiB5mD,UAAU,IACvBmnD,GAAiBA,EAAc51D,OAAS,GAC1C41D,EAAcnnD,UAAU,SAEtBknD,GAAgBA,EAAa31D,OAAS,GACxC21D,EAAalnD,UAAU,KAI3BolD,EAAY,EAOd,IAAIqC,EACAz+C,EAGJ,GARIo8C,EAAY,EAAK9xB,EAAY,UACxB8xB,EAAY,EAAK9xB,EAAY,WAC5BA,IAAaA,EAAY,WAKnCxyB,EAAE0wB,qBAAsB,EACpBrY,EAAIzP,OAAOmlB,SAAS24B,SAkBtB,OAjBI/R,GACwB,UAAtBwR,GAAiCj6B,EAAc,GACjD7T,EAAI0V,SAAS7U,MAAM2sC,GAEK,SAAtBM,GAAgCj6B,EAAc,GAChD7T,EAAI0V,SAAS7U,MAAM2sC,KAGjB35B,EAAc,GAAK65B,EAAct1D,OAAS,GAC5C4nB,EAAI0V,SAASnV,KAAKitC,EAAa,SAE7B35B,EAAc,GAAK85B,EAAav1D,OAAS,GAC3C4nB,EAAI0V,SAASnV,KAAKitC,EAAa,SAGnCp5B,GAAY,OACZ3J,GAAU,GAKZ,GAFA0jC,GAAgB,EAChBC,GAAiB,EACbV,EAAct1D,OAAS,EAAG,CAE5B,IAAIm2D,EAAkBtC,EACtBp8C,EAAW0+C,EAAkBV,EACzBU,GAAmBV,IACrBU,GAAmBV,EAAqBz+C,KAAKuoB,KAAO42B,EAAkBV,EAAoB,IAC1F5B,EAAYsC,EACRL,EAAsB91D,OAAS,IACjCg2D,GAAiB,IAGH,YAAdj0B,IACFtqB,EAAW,EACX0+C,EAAkB,GAEpBP,EAAc5wD,MAAK,SAAUK,EAAOuhD,GAClC,IAAIwG,EAAYjiD,EAAEy7C,QAC6B,IAApCA,EAASwP,yBAClBhJ,EAAU,GAAGgJ,uBAAyBxP,EAAS7W,YAEjDmmB,EAAetP,EAASwP,uBACpBN,EAAsB91D,OAAS,GAAKotD,EAAUtgD,SAAS,uBAAuC,YAAdi1B,IAClFqrB,EAAUx7C,IAAI,CAAEmB,MAAQijD,GAAkBE,EAAe,GAAK,OAC1DF,GACG5I,EAAUtgD,SAAS,+BACtBsoD,EAAYrkD,QAAQ,2BACpB6W,EAAIvC,KAAK,yBAA0B+vC,EAAY,KAEjDhI,EAAU7gD,SAAS,+BAEf6gD,EAAUtgD,SAAS,+BACrBsoD,EAAYrkD,QAAQ,0BACpB6W,EAAIvC,KAAK,wBAAyB+vC,EAAY,KAEhDhI,EAAUxgD,YAAY,+BAG1BwgD,EAAU3+C,UAAW,gBAAkB0nD,EAAmBD,GAAgB,EAAIl/C,KAAKC,IAAIQ,GAAW,KAAQ,cAG9G,GAAI89C,EAAav1D,OAAS,EAAG,CAE3B,IAAIq2D,EAAoBxC,EACxBp8C,EAAW4+C,EAAoBb,EAC3Ba,EAAoBb,IACtBa,EAAoBb,EAAoBx+C,KAAKuoB,IAAM82B,EAAoBb,EAAmB,IAC1F3B,EAAYwC,EACRR,EAAqB71D,OAAS,IAChC+1D,GAAgB,IAGF,aAAdh0B,IACFs0B,EAAoB,EACpB5+C,EAAW,GAEbk+C,EAAa3wD,MAAK,SAAUK,EAAOuhD,GACjC,IAAIwG,EAAYjiD,EAAEy7C,QAC6B,IAApCA,EAASwP,yBAClBhJ,EAAU,GAAGgJ,uBAAyBZ,EAAmB5O,EAAS7W,WAAa6W,EAAS50C,aAE1FkkD,EAAetP,EAASwP,uBACpBP,EAAqB71D,OAAS,GAAKotD,EAAUtgD,SAAS,uBAAuC,aAAdi1B,IACjFqrB,EAAUx7C,IAAI,CAAEmB,MAAQgjD,EAAgBG,EAAe,GAAK,OACxDH,GACG3I,EAAUtgD,SAAS,+BACtBsoD,EAAYrkD,QAAQ,2BACpB6W,EAAIvC,KAAK,yBAA0B+vC,EAAY,KAEjDhI,EAAU7gD,SAAS,+BAEf6gD,EAAUtgD,SAAS,+BACrBsoD,EAAYrkD,QAAQ,0BACpB6W,EAAIvC,KAAK,wBAAyB+vC,EAAY,KAEhDhI,EAAUxgD,YAAY,+BAGtB+oD,EAAa31D,OAAS,GACxBotD,EAAUx7C,IAAI,UAAW+jD,EAAa31D,OAASqF,GAEjD+nD,EAAU3+C,UAAW,gBAAkB4nD,EAAqBH,GAAgB,EAAIl/C,KAAKE,IAAIO,EAAU,KAAQ,cAG/G29C,EAAYrkD,QAAQ,WAAY0G,GAChCmQ,EAAIvC,KAAK,WAAY+vC,EAAY,GAAI39C,GACrC49C,EAAiB5mD,UAAW,eAAiBolD,EAAY,gBA6H3DjsC,EAAI5Y,GAAG,oBA3HP,WACE,IAAKgtB,IAAc3J,EAGjB,OAFA2J,GAAY,OACZ3J,GAAU,GAIZ2J,GAAY,EACZ3J,GAAU,EACV,IAGIiI,EACAg8B,EACA52D,EAqDAw2D,EA1DAp1B,GAAW,IAAKj2B,MAAQ0M,UAAYmkB,EACpC66B,EAAyB,YAAdx0B,EAA0BuzB,EAAgBC,EACrDiB,EAA6B,YAAdz0B,EAA0B0zB,EAAoBD,EA2BjE,GATEl7B,EAXEwG,EAAW,MAERrF,GAAe,IAAoB,YAAdsG,GAClBtG,EAAc,IAAoB,aAAdsG,IAI1BjB,GAAY,KACR9pB,KAAKuJ,IAAIszC,GAAa2C,EAAe,EAGlC,OAEA,QAEP11B,EAAW,MACe,IAAxB9pB,KAAKuJ,IAAIszC,KAAoBv5B,EAAS,SACtCtjB,KAAKuJ,IAAIszC,KAAe2C,IAAgBl8B,EAAS,SAGxC,SAAXA,EAAmB,CACrB66B,SAASvnD,GAAKwnD,EAAY,GAC1BA,EAAYrkD,QAAQ,iBACpB6W,EAAIvC,KAAK,eAAgB+vC,EAAY,IACrCA,EAAY7oD,SAAS,0CACrB,IAAIkqD,EAA6B,YAAd10B,GAA2By0B,EAAeA,EAI7D,GAHAnB,EAAiB5mD,UAAW,eAAiBgoD,EAAe,WAC5DF,EAAShqD,SAAS,2BAClB+pD,EAAyB,YAAdv0B,EAA0B6zB,EAAgBD,EAEnD,IAAKj2D,EAAI,EAAGA,EAAI42D,EAASt2D,OAAQN,GAAK,EACpCyL,EAAEmrD,EAAS52D,IAAI+O,UAAW,eAAiBgoD,EAAe,WAG1DT,GACFV,EAAc3/C,KAAK,uBAAuB5E,QAAQ,QAAS,eAEzDglD,GACFR,EAAa5/C,KAAK,uBAAuB5E,QAAQ,QAAS,oBAG5DqkD,EAAYrkD,QAAQ,kBACpB6W,EAAIvC,KAAK,gBAAiB+vC,EAAY,IACtCD,SAASvnD,QAAK/O,EACdu2D,EAAY7oD,SAAS,0BAA0BK,YAAY,mBAC3DyoD,EAAiB5mD,UAAU,IAC3B8nD,EAAS3pD,YAAY,2BAInB+oD,GAAgBA,EAAa31D,OAAS,GAAK21D,IAAiBW,GAC9DX,EAAa3wD,MAAK,SAAUK,EAAOuhD,GACjC,IAAIwG,EAAYjiD,EAAEy7C,QAEU,KAD5BsP,EAAetP,EAASwP,0BAEtBhJ,EAAU,GAAGgJ,uBAAyBZ,EAAmB5O,EAAS7W,WAAa6W,EAAS50C,aAE1Fo7C,EAAU3+C,UAAW,eAAiBynD,EAAe,cAGrDN,GAAiBA,EAAc51D,OAAS,GAAK41D,IAAkBU,GACjEV,EAAc5wD,MAAK,SAAUK,EAAOuhD,GAClC,IAAIwG,EAAYjiD,EAAEy7C,QAEU,KAD5BsP,EAAetP,EAASwP,0BAEtBhJ,EAAU,GAAGgJ,uBAAyBxP,EAAS7W,YAEjDqd,EAAU3+C,UAAW,gBAAmBynD,EAAgB,cAG5Db,EAAiB9jD,eAAc,WACxB2yC,GAAqB,SAAX5pB,IAAwB4pB,GAAqB,UAAX5pB,IACjD86B,EAAYrkD,QAAmB,SAAXupB,EAAoB,kBAAoB,mBAC5D1S,EAAIvC,KAAgB,SAAXiV,EAAoB,iBAAmB,iBAAkB86B,EAAY,IAC9EA,EAAYxoD,YAAY,0BACpBs3C,GAAqB,UAAX5pB,IACRg7B,EAAct1D,OAAS,GACzB41D,EAAcnnD,UAAU,IAEtB8mD,EAAav1D,OAAS,GACxB21D,EAAalnD,UAAU,aA2BjCilD,OAAO,EACP9lD,QAAI/O,EACJspB,KAAM,WAIJ,IAHA,IAAIlZ,EAEAxI,EAAO,GAAIC,EAAMC,UAAU3G,OACvB0G,KAAQD,EAAMC,GAAQC,UAAWD,GACzC,IAAIkhB,EAAMlpB,KACNkP,EAAKnH,EAAK,GACViwD,EAAOjwD,EAAK,GACZyF,EAAWzF,EAAK,GACG,mBAAZA,EAAK,KACEmH,GAAfqB,EAASxI,GAAkB,GAAIyF,EAAW+C,EAAO,GAAIynD,EAAOznD,EAAO,IAEtE,IAAI+Y,EAAM7c,EAAEyC,GAAImG,GAAG,GAEnB,GAAmB,IAAfiU,EAAIhoB,QACHgoB,EAAIlb,SAAS,cAAekb,EAAIlb,SAAS,mBAA9C,CACK4pD,IACmDA,EAAlD1uC,EAAIrS,KAAK,2BAA2B3V,OAAS,EAAY,QAC/C,QAEhB,IAAI22D,EAAmB3uC,EAAIrS,KAAM,qBAAuB+gD,GACpDrB,EAAmBrtC,EAAIrS,KAAK,qBAChC,GAAgC,IAA5BghD,EAAiB32D,OAArB,CACAgoB,EAAIjX,QAAQ,iBAAiBxE,SAAS,mBAAmBK,YAAY,0BACrEgb,EAAIvC,KAAK,eAAgB2C,EAAI,IAC7B2uC,EAAiBpqD,SAAS,2BAC1B,IAAI+pD,EAAWK,EAAiB1tD,SAAS,KACrC2tD,EAAuBD,EAAiB9kD,aACxCgiD,EAAqB,UAAT6C,GAAoBE,EAAuBA,EACvDN,EAASt2D,OAAS,GACpBs2D,EAAStxD,MAAK,SAAUkoD,EAAatG,GACnC,IAAIwG,EAAYjiD,EAAEy7C,GACL,UAAT8P,EACFtJ,EAAU3+C,UAAW,gBAAmBm4C,EAAS7W,WAAc,WAE/Dqd,EAAUx7C,IAAI,UAAW0kD,EAASt2D,OAASktD,GAAaz+C,UAAW,gBAAkBmoD,EAAuBhQ,EAAS50C,YAAc40C,EAAS7W,YAAc,cAIhK/nB,EAAIzb,SAAS,0BACb8oD,EAAiB9jD,eAAc,WAC7ByW,EAAIjX,QAAQ,mBACZ6W,EAAIvC,KAAK,iBAAkB2C,EAAI,IAC3B9b,GAAYA,EAAStH,KAAKojB,EAAI,OAEpCpM,MAAMa,WAAU,WACd65C,EAAS7nD,UAAW,eAAiBolD,EAAY,WACjDwB,EAAiB5mD,UAAW,eAAiBolD,EAAY,cAE3DsB,SAASvnD,GAAKoa,EAAI,MAEpBS,MAAO,SAAe7a,EAAI1B,GACxB,IAAI0b,EAAMlpB,KACNspB,EAAM7c,EAAEyC,GAAImG,GAAG,GACnB,GAAmB,IAAfiU,EAAIhoB,QACHgoB,EAAIlb,SAAS,mBAAlB,CACA,IASIkkD,EATA0F,EAAO1uC,EAAIrS,KAAK,4BAA4B7I,SAAS,0BAA4B,QAAU,OAC3F6pD,EAAmB3uC,EAAIrS,KAAK,4BAA4B/I,YAAY,2BACpE0pD,EAAWK,EAAiB1tD,SAAS,KACrC2tD,EAAuBD,EAAiB9kD,aAC5CsjD,SAASzB,OAAQ,EACjB1rC,EAAIjX,QAAQ,kBACZ6W,EAAIvC,KAAK,gBAAiB2C,EAAI,IAC9BA,EAAIpb,YAAY,mBAAmBL,SAAS,0BAa5Cyb,EAAIrS,KAAK,qBAAqBlH,UAAU,IAAI8C,cAAcslD,GAC1D7F,EAAejmD,WAAW8rD,EAAiB,KAE3CP,EAAStxD,MAAK,SAAUK,EAAOuhD,GAC7B,IAAIwG,EAAYjiD,EAAEy7C,GACL,UAAT8P,EACFtJ,EAAU3+C,UAAW,gBAAmBm4C,EAAS7W,WAAc,WAE/Dqd,EAAU3+C,UAAW,gBAAkBmoD,EAAuBhQ,EAAS50C,YAAc40C,EAAS7W,YAAc,WAE9Gqd,EAAUx7C,IAAI,CAAEmB,KAAM,QAASnG,YAAY,gCAEzCuoD,SAASvnD,IAAMunD,SAASvnD,KAAOoa,EAAI,KAAMmtC,SAASvnD,QAAK/O,GAtB3D,SAASg4D,IACP1B,SAASzB,OAAQ,EACb1rC,EAAIlb,SAAS,qBACjBkb,EAAIpb,YAAY,0BAChB0pD,EAAS7nD,UAAU,IACnBuZ,EAAIjX,QAAQ,mBACZ6W,EAAIvC,KAAK,iBAAkB2C,EAAI,IAC3B9b,GAAYA,EAAStH,KAAKojB,EAAI,IAC9BgpC,GAAgBhmD,aAAagmD,MAgBrC8F,OAAQ,SAAkBlpD,EAAI1B,GAC5B,IAAI0b,EAAMlpB,KACNspB,EAAM7c,EAAEyC,GAAImG,GAAG,GACA,IAAfiU,EAAIhoB,SACRm1D,SAASvnD,QAAK/O,EACdmpB,EAAIjX,QAAQ,mBACZ6W,EAAIvC,KAAK,iBAAkB2C,EAAI,IAC/BA,EAAIpW,IAAI,CAAEK,OAAU+V,EAAI7V,cAAiB,OACzC6V,EAAIzW,eAAc,WAIhB,GAHAyW,EAAIjX,QAAQ,oBACZ6W,EAAIvC,KAAK,kBAAmB2C,EAAI,IAC5B9b,GAAYA,EAAStH,KAAKojB,EAAI,IAC9BA,EAAIjlB,QAAQ,iBAAiB/C,OAAS,EAAG,CAC3C,IAAIy0D,EAAczsC,EAAIjlB,QAAQ,iBAAiB,GAAG2xD,cAC9CqC,EAAe/uC,EAAI,GAAGwsC,mBACtBC,QAAuC,IAAjBsC,GAAgCtC,EAAYuC,WAAWD,QACxEnvC,EAAIzP,OAAOmlB,SAASoT,eACzB9oB,EAAIzP,OAAOmlB,SAASqT,0BACtB5lC,YAAW,WACTid,EAAInb,WACH+a,EAAIzP,OAAOmlB,SAASsT,uBAEvB5oB,EAAInb,SAGNmb,EAAIpb,YAAY,+CAKpBgP,MAAMa,WAAU,WACduL,EACGzb,SAAS,4CACTqF,IAAI,CAAEK,OAAQ,QACd0D,KAAK,qBACLlH,UAAU,gCAIfwoD,WAAa,CACf/zD,KAAM,WACNiV,OAAQ,CACNmlB,SAAU,CACR45B,eAAe,EACfjB,UAAU,EACVvlB,gBAAgB,EAChBC,2BAA2B,EAC3BC,sBAAuB,IAG3B/qB,OAAQ,WAENjK,MAAM5U,OADItI,KACQ,CAChB4+B,SAAU,CACRrS,KAAMkqC,SAASlqC,KAAKlR,KAHdrb,MAINypB,KAAMgtC,SAAShtC,KAAKpO,KAJdrb,MAKN+pB,MAAO0sC,SAAS1sC,MAAM1O,KALhBrb,MAMNo4D,OAAQ3B,SAAS2B,OAAO/8C,KANlBrb,SASVkE,OAAO6f,eATG/jB,KASgB4+B,SAAU,KAAM,CACxChe,YAAY,EACZ/Y,cAAc,EACdqB,IAAK,WAAc,OAAOutD,SAASvnD,IACnCqZ,IAAK,SAAarZ,GAChBunD,SAASvnD,GAAKA,KAGlBhL,OAAO6f,eAjBG/jB,KAiBgB4+B,SAAU,QAAS,CAC3Che,YAAY,EACZ/Y,cAAc,EACdqB,IAAK,WAAc,OAAOutD,SAASzB,OACnCzsC,IAAK,SAAaysC,GAChByB,SAASzB,MAAQA,MAIvBxb,OAAQ,CACNif,iBAAkB,SAAsBpf,EAAY30C,QACpC,IAATA,IAAkBA,EAAO,IAEpB1E,KACN4+B,SAASnV,KAAK/kB,EAAKk6B,SAAUl6B,EAAKszD,OAExCU,kBAAmB,SAAuBrf,GACxC,IACIqd,EAAcrd,EAAWriC,QAAQ,aACV,IAAvB0/C,EAAYp1D,QAFNtB,KAGN4+B,SAAS7U,MAAM2sC,IAErBiC,mBAAoB,SAAwBtf,EAAY30C,QACxC,IAATA,IAAkBA,EAAO,IAE9B,IAAIwkB,EAAMlpB,KACN02D,EAAcrd,EAAWriC,QAAQ,aACrC,GAA2B,IAAvB0/C,EAAYp1D,OAAhB,CACA,IAAIuoD,EAAUnlD,EAAKmlD,QACf+O,EAAel0D,EAAKk0D,aACpBl0D,EAAKmlD,QACP3gC,EAAIi+B,OAAO0C,QAAQA,EAAS+O,GAAc,WACxC1vC,EAAI0V,SAASw5B,OAAO1B,MAGtBxtC,EAAI0V,SAASw5B,OAAO1B,MAI1BpmD,GAAI,CACFic,KAAM,WACMvsB,KACDyZ,OAAOmlB,UADN5+B,KAEN4+B,SAASrS,UAKfssC,UAAY,CACdC,cAAe,SAAuBzf,GACpC,IACI0f,EAAmB1f,EAAWriC,QAAQ,mBAAmB3B,GAAG,GAC3D0jD,EAAiBz3D,SAAUy3D,EAAmB1f,EAAWh1C,QAAQ,MAAMgR,GAAG,IAE/E,IAAI2jD,EAAoB3f,EAAWh1C,QAAQ,2BAA2BgR,GAAG,GACrE2jD,EAAkB13D,QAChB03D,EAAkB30D,QAAQ00D,GAAkBz3D,QAG9C+3C,EAAWh1C,QAAQ,MAAM/C,OAAS,GAAK+3C,EAAWh1C,QAAQ,MAAM,KAAO00D,EAAiB,IATlF/4D,KAUNi5D,UAAU1qD,OAAOwqD,IAEvBtvC,KAAM,SAAcva,GAClB,IAAIga,EAAMlpB,KACNspB,EAAM7c,EAAEyC,GACRgqD,GAAY,EAChB,SAASC,IACPD,GAAY,EAId,GAFA5vC,EAAIjX,QAAQ,uBAAwB,CAAE8mD,QAASA,GAAWA,GAC1DjwC,EAAIvC,KAAK,sBAAuB2C,EAAI,GAAI6vC,IACpCD,EAAJ,CACA,IAAIE,EAAQ9vC,EAAIjlB,QAAQ,mBAAmBgR,GAAG,GAC1CgkD,EAAa/vC,EAAI/e,SAAS,2BAG9B,GAFA8uD,EAAWvqD,WAAW,eACI,IAAtBuqD,EAAW/3D,SAAgB+3D,EAAa/vC,EAAIrS,KAAK,4BAC3B,IAAtBoiD,EAAW/3D,OAAf,CACA,IAAIg4D,EAAcF,EAAM93D,OAAS,GAAKgoB,EAAIzT,SAAStL,SAAS,0BACxD+uD,EAAYh4D,OAAS,GACvB4nB,EAAI+vC,UAAUlvC,MAAMuvC,GAEtBD,EAAWxmD,eAAc,WACnByW,EAAIlb,SAAS,0BACfirD,EAAWnpD,WAAW,GACtBmpD,EAAWnmD,IAAI,SAAU,QACzBgK,MAAMa,WAAU,WACds7C,EAAWnpD,WAAW,IACtBoZ,EAAIjX,QAAQ,oBACZ6W,EAAIvC,KAAK,kBAAmB2C,EAAI,SAGlC+vC,EAAWnmD,IAAI,SAAU,IACzBoW,EAAIjX,QAAQ,oBACZ6W,EAAIvC,KAAK,kBAAmB2C,EAAI,QAGpC+vC,EAAWnmD,IAAI,SAAYmmD,EAAW,GAAe,aAAI,MACzD/vC,EAAIjX,QAAQ,kBACZiX,EAAIzb,SAAS,yBACbqb,EAAIvC,KAAK,gBAAiB2C,EAAI,OAEhCS,MAAO,SAAe7a,GACpB,IAAIga,EAAMlpB,KACNspB,EAAM7c,EAAEyC,GACRgqD,GAAY,EAChB,SAASC,IACPD,GAAY,EAId,GAFA5vC,EAAIjX,QAAQ,wBAAyB,CAAE8mD,QAASA,GAAWA,GAC3DjwC,EAAIvC,KAAK,uBAAwB2C,EAAI,GAAI6vC,IACrCD,EAAJ,CACA,IAAIG,EAAa/vC,EAAI/e,SAAS,2BACJ,IAAtB8uD,EAAW/3D,SAAgB+3D,EAAa/vC,EAAIrS,KAAK,4BACrDqS,EAAIpb,YAAY,yBAChBmrD,EAAW7qD,KAAK,eAAe,GAC/B6qD,EAAWnpD,WAAW,GACtBmpD,EAAWnmD,IAAI,SAAYmmD,EAAW,GAAe,aAAI,MAEzDA,EAAWxmD,eAAc,WACnByW,EAAIlb,SAAS,0BACfirD,EAAWnpD,WAAW,GACtBmpD,EAAWnmD,IAAI,SAAU,QACzBgK,MAAMa,WAAU,WACds7C,EAAWnpD,WAAW,IACtBoZ,EAAIjX,QAAQ,oBACZ6W,EAAIvC,KAAK,kBAAmB2C,EAAI,SAGlC+vC,EAAWnmD,IAAI,SAAU,IACzBoW,EAAIjX,QAAQ,oBACZ6W,EAAIvC,KAAK,kBAAmB2C,EAAI,QAGpCpM,MAAMa,WAAU,WACds7C,EAAWnpD,WAAW,IACtBmpD,EAAWnmD,IAAI,SAAU,IACzBoW,EAAIjX,QAAQ,mBACZ6W,EAAIvC,KAAK,iBAAkB2C,EAAI,SAGnC/a,OAAQ,SAAgBW,GACtB,IACIoa,EAAM7c,EAAEyC,GACO,IAAfoa,EAAIhoB,SACJgoB,EAAIlb,SAAS,yBAHPpO,KAGuCi5D,UAAUlvC,MAAM7a,GAHvDlP,KAICi5D,UAAUxvC,KAAKva,MAI1BqqD,YAAc,CAChB/0D,KAAM,YACN2iB,OAAQ,WAENjK,MAAM5U,OADItI,KACQ,CAChBi5D,UAAW,CACTxvC,KAAMovC,UAAUpvC,KAAKpO,KAHfrb,MAIN+pB,MAAO8uC,UAAU9uC,MAAM1O,KAJjBrb,MAKNuO,OAAQsqD,UAAUtqD,OAAO8M,KALnBrb,UASZw5C,OAAQ,CACNggB,+FAAgG,SAAcngB,GAE5Gwf,UAAUC,cAAc5yD,KADdlG,KACwBq5C,MAKpCogB,aAAe,CACjBj1D,KAAM,gBAGJk1D,YAA4B,SAAUzyC,GACxC,SAASyyC,EAAYxwC,EAAKzP,QACR,IAAXA,IAAoBA,EAAS,IAElCwN,EAAgB/gB,KAAKlG,KAAMyZ,EAAQ,CAACyP,IACpC,IAEIywC,EAFAC,EAAK55D,KAGS,OAAdkpB,EAAI/C,MACNwzC,EAAgB,GACO,QAAdzwC,EAAI/C,MACbwzC,EAAgB,GACO,WAAdzwC,EAAI/C,QACbwzC,EAAgB,IAGlB,IAAIztC,EAAW,CACb2tC,KAAM,EACNtmD,OAAQomD,EACRzqC,OAAO,EACP4qC,wBAAyB,EACzBC,uBAAuB,EACvBC,oBAAgB75D,EAChB85D,eAAe,EACfC,kBAAc/5D,EACdg6D,eAAWh6D,EACXi6D,kBAAcj6D,EACdk6D,GAAI,KACJC,UAAU,EACVC,wBAAoBp6D,EACpBq6D,WAAY,SAAoBC,GAC9B,OAAQ,6IAAqJA,EAAO,+EAA+Et5D,QAErPmP,GAAI,IAcN,GAVAspD,EAAGnyC,iBAAiByE,GAEpB0tC,EAAGngD,OAASyD,MAAM5U,OAAO4jB,EAAUzS,QACVtZ,IAArBy5D,EAAGngD,OAAOlG,QAAyBqmD,EAAGngD,OAAOlG,SAC/CqmD,EAAGngD,OAAOlG,OAASomD,GAGrBC,EAAGtwC,IAAM7c,EAAEgN,EAAOvK,IAClB0qD,EAAG1qD,GAAK0qD,EAAGtwC,IAAI,GAEO,IAAlBswC,EAAGtwC,IAAIhoB,OAAX,CACAs4D,EAAGtwC,IAAI,GAAG0sC,cAAgB4D,EAE1BA,EAAGc,MAAQd,EAAGngD,OAAOihD,MACjBd,EAAGngD,OAAOsgD,wBACZH,EAAGe,cAAgB,IAEjBf,EAAGngD,OAAO2gD,aAC0B,iBAA3BR,EAAGngD,OAAO2gD,aAA6BR,EAAGY,WAAatxC,EAAIyE,GAAG/nB,QAAQg0D,EAAGngD,OAAO2gD,cAChD,mBAA3BR,EAAGngD,OAAO2gD,eAA+BR,EAAGY,WAAaZ,EAAGngD,OAAO2gD,cAC1ER,EAAGngD,OAAO+gD,aACnBZ,EAAGY,WAAaZ,EAAGngD,OAAO+gD,YAE5BZ,EAAGrW,eAAiBqW,EAAGtwC,IAAIjlB,QAAQ,iBACnCu1D,EAAG5jB,cAAgB4jB,EAAGrW,eAAe,GAErCqW,EAAGgB,oBAAsBhB,EAAGngD,OAAO8gD,mBAAqB9tD,EAAEmtD,EAAGngD,OAAO8gD,oBAAoBllD,GAAG,GAAKukD,EAAGrW,gBAC9FqW,EAAGgB,oBAAoBt5D,QAAUs4D,EAAGrW,eAAejiD,SACtDs4D,EAAGgB,oBAAsBhB,EAAGrW,gBAE9BqW,EAAGW,mBAAqBX,EAAGgB,oBAAoB,QAGN,IAA9BhB,EAAGngD,OAAOohD,gBACnBjB,EAAGiB,gBAAkBjB,EAAGngD,OAAOohD,iBAE/BjB,EAAGiB,iBAAkB,EACjB32C,OAAOI,KAAOJ,OAAO0B,UAAUxkB,MAAM,KAAK,GAAK,IACjDw4D,EAAGiB,iBAAkB,IAKzB,IAQIC,EARAT,EAAKT,EAAGngD,OAAO4gD,GACnBT,EAAGmB,IAAMV,EAAK5tD,EAAEmtD,EAAGngD,OAAO4gD,IAAMT,EAAGtwC,IAAI/e,SAAS,MAC1B,IAAlBqvD,EAAGmB,IAAIz5D,QAAgBs4D,EAAGngD,OAAO6gD,WACnCV,EAAGtwC,IAAI/T,OAAO,aACdqkD,EAAGmB,IAAMnB,EAAGtwC,IAAI/e,SAAS,OAE3BqvD,EAAGS,GAAKT,EAAGmB,IAAI,GAIRD,EADFlB,EAAGS,IAAOT,EAAGngD,OAAO6gD,SACHV,EAAGmB,IAD2BnB,EAAGtwC,IAGvDpM,MAAM5U,OAAOsxD,EAAI,CACfkB,aAAcA,EACdE,YAAaF,EAAa,GAE1BG,SAAU,GACVC,gBAAiB,GAEjBC,eAAgB3xD,IAAIc,cAAc,MAElC8wD,aAAc,KAEdC,SAAU7xD,IAAI8xD,yBAEdjK,gBAAYlxD,EACZo7D,mBAAep7D,EACfq7D,gBAAYr7D,EACZs7D,eAAWt7D,EACXu7D,kBAAcv7D,EACdw7D,gBAAiB,EACjBC,gBAAYz7D,EACZ07D,cAA2C,mBAArBjC,EAAGngD,OAAOlG,SAIlCqmD,EAAGvxC,aAGH,IAEIitB,EACA5B,EACAooB,EACAC,EALAC,EAAoBpC,EAAGjY,aAAatmC,KAAKu+C,GACzCqC,EAAoBrC,EAAGzhB,aAAa98B,KAAKu+C,GA+B7C,OA1BAA,EAAG/jB,aAAe,WAChBP,EAAUskB,EAAGtwC,IAAIjlB,QAAQ,SAASgR,GAAG,GACrCq+B,EAASkmB,EAAGtwC,IAAIjlB,QAAQ,QAAQqO,QAAO,SAAUwpD,EAAY1wB,GAC3D,OAA+F,IAAxF/+B,EAAE++B,GAAO31B,OAAO,SAASA,OAAO,6CAA6CvU,UACnF+T,GAAG,GACNymD,EAAWlC,EAAGtwC,IAAIjlB,QAAQ,UAAUgR,GAAG,GACvC0mD,EAAWnC,EAAGtwC,IAAIjlB,QAAQ,UAAUgR,GAAG,GAEvCukD,EAAGgB,oBAAoBtqD,GAAG,SAAU0rD,GAChC1mB,EAAQh0C,QAAUg0C,EAAQhlC,GAAG,cAAe2rD,GAC5CvoB,EAAOpyC,QAAUoyC,EAAOpjC,GAAG,WAAY2rD,GACvCH,EAASx6D,QAAUw6D,EAASxrD,GAAG,aAAc2rD,GAC7CF,EAASz6D,QAAUy6D,EAASzrD,GAAG,aAAc2rD,GACjD/yC,EAAI5Y,GAAG,SAAU2rD,IAEnBrC,EAAGuC,aAAe,WAChBvC,EAAGgB,oBAAoBjpD,IAAI,SAAUqqD,GACjC1mB,EAAQh0C,QAAUg0C,EAAQ3jC,IAAI,cAAesqD,GAC7CvoB,EAAOpyC,QAAUoyC,EAAO/hC,IAAI,WAAYsqD,GACxCH,EAASx6D,QAAUw6D,EAASnqD,IAAI,aAAcsqD,GAC9CF,EAASz6D,QAAUy6D,EAASpqD,IAAI,aAAcsqD,GAClD/yC,EAAIvX,IAAI,SAAUsqD,IAGpBrC,EAAGrtC,OAEIqtC,GA+aT,OA5aK3yC,IAAkByyC,EAAYxyC,UAAYD,GAC/CyyC,EAAYjxD,UAAYvE,OAAOijB,OAAQF,GAAmBA,EAAgBxe,WAC1EixD,EAAYjxD,UAAUxE,YAAcy1D,EAEpCA,EAAYjxD,UAAU2zD,YAAc,WAClC,IAAIxC,EAAK55D,KACL06D,EAAQd,EAAGe,eAAiBf,EAAGc,MAEnC,GADAd,EAAGvI,WAAauI,EAAGgB,oBAAoB,GAAGlnD,aACtCkmD,EAAGiC,cAAe,CACpBjC,EAAGgC,WAAa,EAChBhC,EAAGyC,QAAU,GACb,IAAK,IAAIr7D,EAAI,EAAGA,EAAI05D,EAAMp5D,OAAQN,GAAK,EAAG,CACxC,IAAIs7D,EAAa1C,EAAGngD,OAAOlG,OAAOmnD,EAAM15D,IACxC44D,EAAGgC,YAAcU,EACjB1C,EAAGyC,QAAQ36D,KAAK46D,SAGlB1C,EAAGgC,WAAatjD,KAAKikD,KAAK7B,EAAMp5D,OAASs4D,EAAGngD,OAAOogD,MAAQD,EAAGngD,OAAOlG,OACrEqmD,EAAG2B,cAAgBjjD,KAAKikD,KAAK3C,EAAGvI,WAAauI,EAAGngD,OAAOlG,QACvDqmD,EAAG4B,WAAa5B,EAAGngD,OAAO+hD,YAAiC,EAAnB5B,EAAG2B,cAC3C3B,EAAG6B,UAAY7B,EAAGngD,OAAOgiD,WAAa7B,EAAG2B,cACzC3B,EAAG8B,aAAgB9B,EAAG2B,cAAgB3B,EAAG4B,WAAa5B,EAAG6B,UACzD7B,EAAG+B,gBAAmB/B,EAAG4B,WAAa,EAAK5B,EAAGngD,OAAOlG,QAGnDqmD,EAAGiB,iBAAmBjB,EAAGngD,OAAOwgD,gBAClCL,EAAGkB,aAAa5nD,IAAI,CAAEK,OAAUqmD,EAAa,WAAI,QAIrDF,EAAYjxD,UAAUkQ,OAAS,SAAiB41B,EAAOiuB,GACrD,IAAI5C,EAAK55D,KACLuuC,IAASqrB,EAAGwB,aAAe,MAE/B,IAAIpnD,IAAc4lD,EAAGtwC,IAAI,GAAGzV,wBAAwBO,IAAMwlD,EAAGgB,oBAAoB,GAAG/mD,wBAAwBO,KAG5G,QAD8B,IAAnBooD,IAAkCxoD,EAAYwoD,GACjC,OAApB5C,EAAGwB,cAAyB9iD,KAAKuJ,IAAI7N,EAAY4lD,EAAGwB,cAAgBxB,EAAG+B,kBAAqB/B,EAAGiB,iBAAoBjB,EAAGgB,oBAAoB,GAAG5mD,UAAY4lD,EAAGvI,YAAcuI,EAAGgB,oBAAoB,GAAGviD,aAAxM,CACEuhD,EAAGwB,aAAepnD,EAKpB,IACIyoD,EACAC,EA8BAC,EAhCAjC,EAAQd,EAAGe,eAAiBf,EAAGc,MAG/BkC,EAAwB,EACxBC,EAAuB,EAC3B,GAAIjD,EAAGiC,cAAe,CACpB,IACIS,EADAQ,EAAU,EAEdlD,EAAG+B,gBAAkB/B,EAAGvI,WAExB,IAAK,IAAIpwD,EAAI,EAAGA,EAAI24D,EAAGyC,QAAQ/6D,OAAQL,GAAK,EAC1Cq7D,EAAa1C,EAAGyC,QAAQp7D,QACC,IAAdw7D,IACLK,EAAUR,GAActoD,EAA6B,EAAhB4lD,EAAGvI,WAAiBuI,EAAGngD,OAAOqgD,wBAA4B2C,EAAYx7D,EACxG27D,GAAyBN,QAGX,IAAZI,KACLI,EAAUR,GAActoD,EAA6B,EAAhB4lD,EAAGvI,WAAiBuI,EAAGngD,OAAOqgD,yBAA4B74D,IAAM24D,EAAGyC,QAAQ/6D,OAAS,KAAKo7D,EAAUz7D,EAAI,GAChJ47D,GAAwBP,GAE1BQ,GAAWR,EAEbI,EAAUpkD,KAAKE,IAAIkkD,EAAShC,EAAMp5D,aAElCm7D,GAAaj7C,SAASxN,EAAY4lD,EAAGngD,OAAOlG,OAAQ,IAAMqmD,EAAG4B,YAAc5B,EAAGngD,OAAOogD,MACrE,IACd4C,EAAY,GAEdC,EAAUpkD,KAAKE,IAAIikD,EAAa7C,EAAG8B,aAAe9B,EAAGngD,OAAOogD,KAAOa,EAAMp5D,QAI3E,IAEIN,EAFA+7D,EAAsB,GAG1B,IAFAnD,EAAGnZ,UAAW,EAETz/C,EAAIy7D,EAAWz7D,EAAI07D,EAAS17D,GAAK,EAAG,CACvC,IAAIg8D,OAAS,EAETr2D,EAAQizD,EAAGc,MAAM/4D,QAAQ+4D,EAAM15D,IAE/BA,IAAMy7D,IAAa7C,EAAGqD,iBAAmBt2D,GACzC3F,IAAM07D,EAAU,IAAK9C,EAAGsD,eAAiBv2D,GACzCizD,EAAGe,cACDf,EAAGc,MAAM/zD,KAAWizD,EAAGe,cAAcf,EAAGe,cAAcr5D,OAAS,KAAMs4D,EAAGnZ,UAAW,GAC9E95C,IAAUizD,EAAGc,MAAMp5D,OAAS,IAAKs4D,EAAGnZ,UAAW,GAGtDmZ,EAAGngD,OAAOugD,eACZ+C,EAAoBr7D,KAAKg5D,EAAM15D,IACtB44D,EAAGqB,SAASt0D,IACrBq2D,EAASpD,EAAGqB,SAASt0D,IACdmvD,mBAAqBnvD,GAExBizD,EAAGY,WACLZ,EAAGuB,eAAepuD,UAAY6sD,EAAGY,WAAWE,EAAM15D,GAAI2F,GAAOxF,OAE7Dy4D,EAAGuB,eAAepuD,UAAY2tD,EAAM15D,GAAGqe,WAAWle,OAEpD67D,EAASpD,EAAGuB,eAAe3wD,WAAW,GAClCovD,EAAGngD,OAAOyV,QAAS0qC,EAAGqB,SAASt0D,GAASq2D,GAC5CA,EAAOlH,mBAAqBnvD,GAI1B3F,IAAMy7D,IAENE,EADE/C,EAAGiC,cACSe,EAEE57D,EAAI44D,EAAGngD,OAAOlG,OAAUqmD,EAAGngD,OAAOogD,MAGjDD,EAAGngD,OAAOugD,iBACbgD,EAAOvyD,MAAM2J,IAAMuoD,EAAc,KAGjC/C,EAAGjzC,KAAK,6CAA8CizC,EAAIoD,EAAQtC,EAAM15D,IAGxE44D,EAAGyB,SAAS1lD,YAAYqnD,IAKvBpD,EAAGiB,kBACFjB,EAAGiC,cACLjC,EAAGoB,YAAYvwD,MAAM8I,OAASspD,EAAuB,KAErDjD,EAAGoB,YAAYvwD,MAAM8I,OAAWvS,EAAI44D,EAAGngD,OAAOlG,OAAUqmD,EAAGngD,OAAOogD,KAAQ,MAK1ED,EAAGngD,OAAOugD,eACRU,GAA0B,IAAjBA,EAAMp5D,SACjBs4D,EAAGnZ,UAAW,IAGhBmZ,EAAGjzC,KAAK,mCAAoCizC,EAAIA,EAAGyB,UACnDzB,EAAGoB,YAAYjuD,UAAY,GAE3B6sD,EAAGjzC,KAAK,+CAAgDizC,EAAIA,EAAGyB,UAE3DX,GAA0B,IAAjBA,EAAMp5D,QACjBs4D,EAAGnZ,UAAW,EACVmZ,EAAGngD,OAAO0jD,gBAAiBvD,EAAGoB,YAAYjuD,UAAY6sD,EAAGngD,OAAO0jD,gBAEpEvD,EAAGoB,YAAYrlD,YAAYikD,EAAGyB,UAGhCzB,EAAGjzC,KAAK,6CAA8CizC,EAAIA,EAAGyB,gBAGjC,IAAnBmB,GAAkCjuB,GAC3CqrB,EAAGgB,oBAAoB5mD,UAAUwoD,EAAgB,GAE/C5C,EAAGngD,OAAOugD,gBACZJ,EAAGngD,OAAOugD,eAAeJ,EAAI,CAC3B6C,UAAWA,EACXC,QAASA,EACTd,WAAYhC,EAAGgC,WACfe,YAAaA,EACbjC,MAAOqC,MAMbrD,EAAYjxD,UAAU20D,YAAc,SAAsBC,EAASC,QACzC,IAAnBA,IAA4BA,GAAiB,GAElD,IAAI1D,EAAK55D,KACT45D,EAAGe,cAAgB,GACnB,IAAK,IAAI35D,EAAI,EAAGA,EAAIq8D,EAAQ/7D,OAAQN,GAAK,EACvC44D,EAAGe,cAAcj5D,KAAKk4D,EAAGc,MAAM2C,EAAQr8D,KAErCs8D,IACF1D,EAAGgB,oBAAoB,GAAG5mD,UAAY,GAExC4lD,EAAG9F,UAGL4F,EAAYjxD,UAAU80D,YAAc,WAClC,IAAI3D,EAAK55D,KACL45D,EAAGngD,OAAOsgD,sBACZH,EAAGe,cAAgB,IAEnBf,EAAGe,cAAgB,YACZf,EAAGe,eAEZf,EAAG9F,UAGL4F,EAAYjxD,UAAU+0D,aAAe,SAAuB72D,GAC1D,IAAIizD,EAAK55D,KACT,GAAI2G,EAAQizD,EAAGc,MAAMp5D,OAAU,OAAO,EACtC,IAAIw7D,EAAU,EACd,GAAIlD,EAAGiC,cACL,IAAK,IAAI76D,EAAI,EAAGA,EAAI2F,EAAO3F,GAAK,EAC9B87D,GAAWlD,EAAGyC,QAAQr7D,QAGxB87D,EAAUn2D,EAAQizD,EAAGngD,OAAOlG,OAE9B,IAAIkqD,EAAU7D,EAAGtwC,IAAI,GAAG2rC,UAExB,OADA2E,EAAGjhD,QAAO,EAAO8kD,EAAUX,EAAWt7C,SAASo4C,EAAGgB,oBAAoB1nD,IAAI,eAAgB,MACnF,GAGTwmD,EAAYjxD,UAAUk5C,aAAe,WAC1B3hD,KACN2Y,UAIL+gD,EAAYjxD,UAAU8yC,UAAY,WAEhC,SADSv7C,KACIkP,GAAGoE,aADPtT,KACyBkP,GAAGwE,cAD5B1T,KAC+CkP,GAAGwuD,iBAAiBp8D,SAG9Eo4D,EAAYjxD,UAAU0vC,aAAe,WAC1Bn4C,KACFu7C,cADEv7C,KAEJo8D,cAFIp8D,KAGJ2Y,QAAO,KAKd+gD,EAAYjxD,UAAUk1D,YAAc,SAAsBjD,GAExD,IADA,IACS15D,EAAI,EAAGA,EAAI05D,EAAMp5D,OAAQN,GAAK,EAD9BhB,KAEJ06D,MAAMh5D,KAAKg5D,EAAM15D,IAFbhB,KAIN8zD,UAGL4F,EAAYjxD,UAAUm1D,WAAa,SAAqBnD,GAC7Cz6D,KACN29D,YAAY,CAAClD,KAIlBf,EAAYjxD,UAAUo1D,gBAAkB,SAA0BnD,GACvD16D,KACN06D,MAAQA,SADF16D,KAEC26D,cAFD36D,KAGNi7D,SAAW,GAHLj7D,KAIN8zD,UAGL4F,EAAYjxD,UAAUq1D,YAAc,SAAsBn3D,EAAO8zD,GACtDz6D,KACN06D,MAAM/zD,GAAS8zD,EADTz6D,KAEFyZ,OAAOyV,cAFLlvB,KAEwBi7D,SAASt0D,GAFjC3G,KAGN8zD,UAIL4F,EAAYjxD,UAAUs1D,aAAe,SAAuBrD,GAE1D,IADA,IAAId,EAAK55D,KACAgB,EAAI05D,EAAMp5D,OAAS,EAAGN,GAAK,EAAGA,GAAK,EAC1C44D,EAAGc,MAAM1pD,QAAQ0pD,EAAM15D,IAEzB,GAAI44D,EAAGngD,OAAOyV,MAAO,CACnB,IAAI8uC,EAAW,GACf95D,OAAO2B,KAAK+zD,EAAGqB,UAAUl3D,SAAQ,SAAUk6D,GACzCD,EAASx8C,SAASy8C,EAAQ,IAAMvD,EAAMp5D,QAAUs4D,EAAGqB,SAASgD,MAE9DrE,EAAGqB,SAAW+C,EAEhBpE,EAAG9F,UAGL4F,EAAYjxD,UAAUy1D,YAAc,SAAsBzD,GAC/Cz6D,KACN+9D,aAAa,CAACtD,KAInBf,EAAYjxD,UAAUwtD,SAAW,SAAmB51C,EAAMD,GACxD,IAAIw5C,EAAK55D,KACLy8D,EAAYp8C,EACZq8C,EAAUt8C,EACd,GAAIq8C,IAAcC,EAAlB,CAEA,IAAIjC,EAAOb,EAAGc,MAAM3oD,OAAO0qD,EAAW,GAAG,GAUzC,GATIC,GAAW9C,EAAGc,MAAMp5D,QAEtBs4D,EAAGc,MAAMh5D,KAAK+4D,GACdiC,EAAU9C,EAAGc,MAAMp5D,OAAS,GAG5Bs4D,EAAGc,MAAM3oD,OAAO2qD,EAAS,EAAGjC,GAG1Bb,EAAGngD,OAAOyV,MAAO,CACnB,IAAI8uC,EAAW,GACf95D,OAAO2B,KAAK+zD,EAAGqB,UAAUl3D,SAAQ,SAAUk6D,GACzC,IAAIE,EAAc38C,SAASy8C,EAAQ,IAC/BG,EAAY3B,EAAYC,EAAUD,EAAYC,EAC9C2B,EAAa5B,EAAYC,EAAUA,EAAUD,EAC7C6B,EAAa7B,EAAYC,GAAW,EAAI,GACxCyB,EAAcC,GAAaD,EAAcE,KAAcL,EAASG,GAAevE,EAAGqB,SAASkD,IAC3FA,IAAgBC,IAAaJ,EAASK,GAAczE,EAAGqB,SAASkD,IAChEA,EAAcC,GAAaD,GAAeE,IAAcL,EAASG,EAAcG,GAAc1E,EAAGqB,SAASkD,OAE/GvE,EAAGqB,SAAW+C,EAEhBpE,EAAG9F,WAIL4F,EAAYjxD,UAAU81D,iBAAmB,SAA2B53D,EAAO8zD,GACzE,IAAIb,EAAK55D,KACT,GAAc,IAAV2G,EAIJ,GAAIA,GAASizD,EAAGc,MAAMp5D,OACpBs4D,EAAGgE,WAAWnD,OADhB,CAMA,GAFAb,EAAGc,MAAM3oD,OAAOpL,EAAO,EAAG8zD,GAEtBb,EAAGngD,OAAOyV,MAAO,CACnB,IAAI8uC,EAAW,GACf95D,OAAO2B,KAAK+zD,EAAGqB,UAAUl3D,SAAQ,SAAUk6D,GACzC,IAAIE,EAAc38C,SAASy8C,EAAQ,IAC/BE,GAAex3D,IACjBq3D,EAASG,EAAc,GAAKvE,EAAGqB,SAASkD,OAG5CvE,EAAGqB,SAAW+C,EAEhBpE,EAAG9F,cAnBD8F,EAAGsE,YAAYzD,IAuBnBf,EAAYjxD,UAAU+1D,YAAc,SAAsBnB,GAqCxD,IApCA,IACIoB,EADA7E,EAAK55D,KAELs+D,EAAa,EACbI,EAAO,SAAW19D,GACpB,IAAI2F,EAAQ02D,EAAQr8D,QACK,IAAdy9D,GACL93D,EAAQ83D,IACVH,GAAct9D,GAGlB2F,GAAS23D,EACTG,EAAYpB,EAAQr8D,GAEpB,IAAI29D,EAAc/E,EAAGc,MAAM3oD,OAAOpL,EAAO,GAAG,GAO5C,GAJIizD,EAAGe,eAAiBf,EAAGe,cAAch5D,QAAQg9D,IAAgB,GAC/D/E,EAAGe,cAAc5oD,OAAO6nD,EAAGe,cAAch5D,QAAQg9D,GAAc,GAG7D/E,EAAGngD,OAAOyV,MAAO,CACnB,IAAI8uC,EAAW,GACf95D,OAAO2B,KAAK+zD,EAAGqB,UAAUl3D,SAAQ,SAAUk6D,GACzC,IAAIE,EAAc38C,SAASy8C,EAAQ,IAC/BE,IAAgBx3D,SACXizD,EAAGqB,SAASt0D,GACV6a,SAASy8C,EAAQ,IAAMt3D,EAChCq3D,EAASG,EAAc,GAAKvE,EAAGqB,SAASgD,GAExCD,EAASG,GAAevE,EAAGqB,SAASgD,MAGxCrE,EAAGqB,SAAW+C,IAITh9D,EAAI,EAAGA,EAAIq8D,EAAQ/7D,OAAQN,GAAK,EAAG09D,EAAM19D,GAClD44D,EAAG9F,UAGL4F,EAAYjxD,UAAUm2D,eAAiB,WACrC,IAAIhF,EAAK55D,KACT45D,EAAGc,MAAQ,UACJd,EAAGe,cACNf,EAAGngD,OAAOyV,QAAS0qC,EAAGqB,SAAW,IACrCrB,EAAG9F,UAGL4F,EAAYjxD,UAAU6vD,WAAa,SAAqB3xD,GAC7C3G,KACNw+D,YAAY,CAAC73D,KAIlB+yD,EAAYjxD,UAAUo2D,WAAa,WACxB7+D,KACNi7D,SAAW,IAIhBvB,EAAYjxD,UAAUqrD,OAAS,SAAiBgL,GAE1CA,GADK9+D,KACayZ,OAAOyV,QADpBlvB,KAEJi7D,SAAW,IAFPj7D,KAINo8D,cAJMp8D,KAKN2Y,QAAO,IAGZ+gD,EAAYjxD,UAAU8jB,KAAO,WAClBvsB,KACN61C,eADM71C,KAENo8D,cAFMp8D,KAGN2Y,UAGL+gD,EAAYjxD,UAAU8gB,QAAU,WAC9B,IAAIqwC,EAAK55D,KACT45D,EAAGuC,eACHvC,EAAGtwC,IAAI,GAAG0sC,cAAgB,YACnB4D,EAAGtwC,IAAI,GAAG0sC,cACjB94C,MAAMU,YAAYg8C,GAClBA,EAAK,MAGAF,EAtkBsB,CAukB7BzyC,iBAEE83C,cAAgB,CAClBv6D,KAAM,cACNmkB,OAAQ,CACN+wC,YAAaA,aAEfvyC,OAAQ,WACInnB,KACN+1D,YAAcltC,mBAAmB,CACnCE,gBAAiB,gBACjB9kB,YAAay1D,YACbxwC,IAJQlpB,KAKRipB,QAAS,oBAKX+1C,UAA0B,SAAU/3C,GACtC,SAAS+3C,EAAU91C,EAAKzP,QACN,IAAXA,IAAoBA,EAAS,IAElCwN,EAAgB/gB,KAAKlG,KAAMyZ,EAAQ,CAACyP,IACpC,IA0BII,EACA21C,EACA1b,EACAwX,EA7BAp0D,EAAQ3G,KAERksB,EAAW,CACbhd,GAAI,KACJgwD,OAAQ,KACR7B,QAAS,OACT8B,cAAe,GACfC,aAAc,GACdC,iBAAkB,GAClBC,YAAY,EACZvQ,OAAO,EAEPyL,WAAY,SAAoB+E,EAAaC,GAC3C,OAAQ,mBAAqBD,EAAc,mBAAmBp+D,QAEhEs+D,sBAAuB,WACrB,MAAO,iDAETnvD,GAAI,IAaN,GATA3J,EAAM8gB,iBAAiByE,GAEvBvlB,EAAM8S,OAASyD,MAAM5U,OAAO4jB,EAAUzS,IAOlC9S,EAAM8S,OAAOvK,GAGf,OAAOvI,EAGT,IALE2iB,EAAM7c,EAAE9F,EAAM8S,OAAOvK,KAKf,GAAGwwD,YACT,OAAOp2C,EAAI,GAAGo2C,YAahB,GATmB,KADnB3E,EAAMzxC,EAAIrS,KAAK,OACP3V,SACNy5D,EAAMtuD,EAAE,aACR6c,EAAI/T,OAAOwlD,IAGTp0D,EAAM8S,OAAOylD,SACfD,EAAUxyD,EAAE9F,EAAM8S,OAAOylD,SAGE,SAAzBv4D,EAAM8S,OAAO4jD,UAAuB4B,EACtC,OAAOt4D,EAiCT,SAASwxC,IACP,IAAI5kC,EAAS,CAAE5M,MAAOA,GACtBA,EAAMg5D,WACFpsD,IAAW5M,EAAM4M,QACnB5M,EAAMgS,SAIV,SAASouC,EAAYl2C,GACnB,IAAI+uD,EAAanzD,EAAEoE,EAAEtI,QAAQyO,QAAQ,MACrC,GAAK4oD,EAAWt+D,OAAhB,CAEA,IAAIk+D,EAAYI,EAAWj5D,QAC3B,GAAIA,EAAMk5D,SAAW,EAAG,CACtB,IAAIp+B,EAAa+9B,GAAaI,EAAW7oD,SAAS,MAAMzV,OAAS,GACjEk+D,EAAYlnD,KAAK+J,OAAO1b,EAAM02D,QAAQ/7D,OAAS,GAAKmgC,GAEtD,IAAI89B,EAAc54D,EAAM02D,QAAQmC,GAEhC74D,EAAM2iB,IAAIjX,QAAQ,kBAAmB,CAAE/P,QAASi9D,EAAa54D,MAAO64D,IACpE74D,EAAMggB,KAAK,8BAA+BhgB,EAAO44D,EAAaC,GAC9D74D,EAAM2iB,IAAIjX,QAAQ,mBAAoB,CAAE/P,QAASi9D,EAAa54D,MAAO64D,IACrE74D,EAAMggB,KAAK,gCAAiChgB,EAAO44D,EAAaC,GAE5D74D,EAAMs4D,SAAWt4D,EAAM8S,OAAO6lD,YAChC34D,EAAMm5D,kBAAkBP,EAAaC,IAvDrCP,EACF1b,EAAiB0b,EAAQ56D,QAAQ,iBAAiBgR,GAAG,GAGvB,KAD9BkuC,EAAiBj6B,EAAIvS,SAAS,iBAAiB1B,GAAG,IAC/B/T,SACjBiiD,EAAiBj6B,EAAIjlB,QAAQ,SAASgR,GAAG,GAAG4B,KAAK,iBAAiB5B,GAAG,IAIzEiU,EAAI,GAAGo2C,YAAc/4D,EAErBuW,MAAM5U,OAAO3B,EAAO,CAClBuiB,IAAKA,EACLI,IAAKA,EACLpa,GAAIoa,GAAOA,EAAI,GACfyxC,IAAKA,EACLV,GAAIU,GAAOA,EAAI,GACfkE,QAASA,EACTC,OAAQD,GAAWA,EAAQ,GAC3B1b,eAAgBA,EAChBvN,cAAeuN,GAAkBA,EAAe,GAChD8Z,QAAS5jD,EAAO4jD,QAChB9pD,OAAQ,EACRssD,SAAU,IAIZl5D,EAAM0hB,aAgCN,IACIiV,EACA3J,EACAosC,EACAC,EACAC,EALA1iC,EAAe,GAMf2iC,EAAgB,KACpB,SAASxhC,EAAiB7tB,GACxB,IAAIsvD,EAAYpF,EAAIxwD,WACf41D,EAAU7+D,SACfy+D,EAAWI,EAAU,GAAGtsD,wBAAwBO,IAChD4rD,EAAcG,EAAUA,EAAU7+D,OAAS,GAAGuS,wBAAwBO,IAAM+rD,EAAU,GAAGzsD,aAEzF6pB,EAAapb,EAAe,eAAXtR,EAAExO,KAAwBwO,EAAEomB,cAAc,GAAGG,MAAQvmB,EAAEumB,MACxEmG,EAAazI,EAAe,eAAXjkB,EAAExO,KAAwBwO,EAAEomB,cAAc,GAAGI,MAAQxmB,EAAEwmB,MACxEiG,GAAY,EACZ3J,GAAU,EACVusC,EAAgB,MAElB,SAASphC,EAAgBjuB,GACvB,GAAKysB,EAAL,EACK3J,GAAWhtB,EAAM8S,OAAOs1C,QAC3BkR,EAAWxzD,EAAE,0CACb6c,EAAI/T,OAAO0qD,IAEbtsC,GAAU,EACV,IAAI0D,EAAmB,cAAXxmB,EAAExO,KAAuBwO,EAAEomB,cAAc,GAAGI,MAAQxmB,EAAEwmB,MAClExmB,EAAEmmB,iBAEF,IAAIyK,GAAcpK,EAAQ0oC,IAAaC,EAAcD,GACrDt+B,EAAanpB,KAAKE,IAAIF,KAAKC,IAAIkpB,EAAY,GAAI,GAE/C,IAAI+9B,EAAYlnD,KAAK+J,OAAO1b,EAAM02D,QAAQ/7D,OAAS,GAAKmgC,GACpD89B,EAAc54D,EAAM02D,QAAQmC,GAG5BY,EAAWJ,EAAcD,EACzBM,GAAiB15D,EAAM4M,OAAS6sD,GAAY,GAAO,EAAI3+B,GAAc2+B,EAErEZ,IAAcU,IACZv5D,EAAM8S,OAAOs1C,OACfkR,EAASpzD,KAAK0yD,GAAaxvD,UAAW,eAAiBswD,EAAe,OAGpE15D,EAAMs4D,SAAWt4D,EAAM8S,OAAO6lD,YAChC34D,EAAMm5D,kBAAkBP,EAAaC,IAIzCU,EAAgBV,EAEhB74D,EAAM2iB,IAAIjX,QAAQ,oBAClB1L,EAAMggB,KAAK,gCAAiChgB,EAAO44D,EAAaC,IAElE,SAASt9B,IACF5E,IACLA,GAAY,EACZ3J,GAAU,EACNhtB,EAAM8S,OAAOs1C,QACXkR,GAAYA,EAAS9xD,SACzB8xD,OAAW9/D,IAGf,IAAIyjB,IAAkBsF,EAAI8J,QAAQpP,iBAAkB,CAAEsS,SAAS,GAgC/D,OA/BAvvB,EAAMkvC,aAAe,WACnBvsB,EAAIjlB,QAAQ,QAAQiM,GAAG,WAAY6nC,GACnC7uB,EAAIjlB,QAAQ,SAASiM,GAAG,cAAe6nC,GACvC7uB,EAAIjlB,QAAQ,UAAUiM,GAAG,aAAc6nC,GACvC7uB,EACGjlB,QAAQ,kFACRiM,GAAG,aAAc6nC,GACpBjvB,EAAI5Y,GAAG,SAAU6nC,GAEjB7uB,EAAIhZ,GAAG,QAASy2C,GAChBz9B,EAAIhZ,GAAG4Y,EAAIoN,YAAYC,MAAOmI,EAAkB9a,GAChDsF,EAAI5Y,GAAG,mBAAoBwuB,GAC3B5V,EAAI5Y,GAAG,mBAAoB4xB,IAE7Bv7B,EAAMw1D,aAAe,WACnB7yC,EAAIjlB,QAAQ,QAAQsN,IAAI,WAAYwmC,GACpC7uB,EAAIjlB,QAAQ,SAASsN,IAAI,cAAewmC,GACxC7uB,EAAIjlB,QAAQ,UAAUsN,IAAI,aAAcwmC,GACxC7uB,EACGjlB,QAAQ,kFACRsN,IAAI,aAAcwmC,GACrBjvB,EAAIvX,IAAI,SAAUwmC,GAElB7uB,EAAI3X,IAAI,QAASo1C,GACjBz9B,EAAI3X,IAAIuX,EAAIoN,YAAYC,MAAOmI,EAAkB9a,GACjDsF,EAAIvX,IAAI,mBAAoBmtB,GAC5B5V,EAAIvX,IAAI,mBAAoBuwB,IAG9Bv7B,EAAM4lB,OAEC5lB,EAmJT,OAhJKsgB,IAAkB+3C,EAAU93C,UAAYD,GAC7C+3C,EAAUv2D,UAAYvE,OAAOijB,OAAQF,GAAmBA,EAAgBxe,WACxEu2D,EAAUv2D,UAAUxE,YAAc+6D,EAElCA,EAAUv2D,UAAUq3D,kBAAoB,SAA4BP,EAAaC,GAC/E,IAMIc,EALArB,EADQj/D,KACQi/D,QAChB1b,EAFQvjD,KAEeujD,eACvBr6B,EAHQlpB,KAGIkpB,IAChB,IAAK+1C,IAAY1b,GAA4C,IAA1BA,EAAejiD,OAAgB,OAJtDtB,KAcZ,GAPAi/D,EAAQhoD,KAAK,oCAAoC3Q,MAAK,SAAUkkD,EAASt7C,GACvE,IAAIoxD,EAAJ,CACA,IAAIh3C,EAAM7c,EAAEyC,GACRoa,EAAIzU,SAAW0qD,IACjBe,EAAch3C,QAGbg3C,GAAsC,IAAvBA,EAAYh/D,OAAgB,OAdpCtB,KAgBZ,IAAIugE,EAAYD,EAAYzqD,SAASlC,SAASS,IAC1C+8C,EAAa3vC,SAAS+hC,EAAerwC,IAAI,eAAgB,IACzDc,EAAYuvC,EAAe,GAAGvvC,UAC9BwsD,EAAgBF,EAAY3sD,SAASS,IACzC,GAAImvC,EAAel/C,QAAQ,2BAA2B/C,OAAQ,CAC5D,IACI4/C,EAAgBz0C,EADAyc,EAAIme,OAAOC,YAAYic,EAAel/C,QAAQ,2BAA2BgR,GAAG,KAC3D4B,KAAK,gBACtCiqC,EAAc5/C,SAChB6vD,GAAcjQ,EAAc,GAAGxtC,cAAgB,GASnD,OALI6sD,GAAapP,EACf5N,EAAevvC,UAAWusD,EAAYvsD,EAAam9C,GAEnD5N,EAAevvC,UAAWwsD,EAAgBxsD,EAAam9C,GA/B7CnxD,MAoCdg/D,EAAUv2D,UAAUg3D,sBAAwB,WAE1C,OADYz/D,KACCyZ,OAAOgmD,sBAAsBv5D,KAD9BlG,OAIdg/D,EAAUv2D,UAAU+xD,WAAa,SAAqB+E,EAAaC,GAEjE,OADYx/D,KACCyZ,OAAO+gD,WAAWt0D,KADnBlG,KAC+Bu/D,EAAaC,IAG1DR,EAAUv2D,UAAUkQ,OAAS,WAC3B,IAII8nD,EAJA95D,EAAQ3G,KACR+6D,EAAMp0D,EAAMo0D,IACZsC,EAAU12D,EAAM02D,QAChBwC,EAAWl5D,EAAMk5D,SAGjBhzD,EAAOwwD,EAAQ1oD,KAAI,SAAU4qD,EAAaC,GAC5C,GAAIA,EAAYK,GAAa,GAAKA,EAAW,EAE3C,OADAY,GAAa,EACN,GAET,IAAIC,EAAW/5D,EAAM6zD,WAAW+E,EAAaC,GAK7C,OAJIiB,IACFC,EAAW/5D,EAAM84D,wBAA0BiB,GAE7CD,GAAa,EACNC,KACNv8D,KAAK,IAIR,OAFA42D,EAAIluD,KAAKA,GAEFlG,GAGTq4D,EAAUv2D,UAAUk3D,SAAW,WAC7B,IACIz2C,EADQlpB,KACIkpB,IACZzP,EAFQzZ,KAEOyZ,OACfvK,EAHQlP,KAGGkP,GACXmuD,EAJQr9D,KAIQq9D,QAChB9pD,EAASrE,EAAGwE,aACZ4oD,EAAa7iD,EAASyP,EAAS,MAAI,cACnCy3C,EAAWroD,KAAK8E,MAAM7J,EAAS+oD,GAC/B5B,EAAQ2C,EAAQ/7D,OAChBu+D,EAAW,EAQf,OAPInF,EAAQiG,IACVd,EAAWvnD,KAAKikD,MAAe,EAAR7B,EAAa,GAAKiG,IAX/B3gE,KAcNuT,OAASA,EAdHvT,KAeN6/D,SAAWA,EAfL7/D,MAoBdg/D,EAAUv2D,UAAUm4D,YAAc,WAChC,IAAIj6D,EAAQ3G,KAaZ,MAZ6B,SAAzB2G,EAAM8S,OAAO4jD,SACf12D,EAAM02D,QAAU,GAEhB12D,EAAMs4D,QAAQhoD,KAAK,oCAAoC3Q,MAAK,SAAUkkD,EAASt7C,GAC7E,IAAI2xD,EAAYp0D,EAAEyC,GAAI2F,OAClBlO,EAAM02D,QAAQ17D,QAAQk/D,GAAa,GACrCl6D,EAAM02D,QAAQ37D,KAAKm/D,OAIvBl6D,EAAM02D,QAAU12D,EAAM8S,OAAO4jD,QAExB12D,GAGTq4D,EAAUv2D,UAAUqrD,OAAS,WAM3B,OALY9zD,KACN4gE,cADM5gE,KAEN2/D,WAFM3/D,KAGN2Y,SAHM3Y,MAQdg/D,EAAUv2D,UAAU8jB,KAAO,WACbvsB,KACN4gE,cADM5gE,KAEN2/D,WAFM3/D,KAGN2Y,SAHM3Y,KAIN61C,gBAGRmpB,EAAUv2D,UAAU8gB,QAAU,WAC5B,IAAI5iB,EAAQ3G,KACZ2G,EAAM2iB,IAAIjX,QAAQ,0BAA2B1L,GAC7CA,EAAMggB,KAAK,+CACXhgB,EAAMw1D,eACFx1D,EAAM2iB,IAAI,KACZ3iB,EAAM2iB,IAAI,GAAGo2C,YAAc,YACpB/4D,EAAM2iB,IAAI,GAAGo2C,aAEtBxiD,MAAMU,YAAYjX,GAClBA,EAAQ,MAGHq4D,EAzWoB,CA0W3B/3C,iBAEE65C,YAAc,CAChBt8D,KAAM,YACNmkB,OAAQ,CACNq2C,UAAWA,WAEb73C,OAAQ,WACInnB,KACN+gE,UAAYl4C,mBAAmB,CACjCE,gBAAiB,cACjB9kB,YAAa+6D,UACb91C,IAJQlpB,KAKRipB,QAAS,iBAGb3Y,GAAI,CACFgjD,WAAY,SAAoB9nB,GAC9B,IAAItiB,EAAMlpB,KACVyM,EAAE++B,GAAOv0B,KAAK,oBAAoB3Q,MAAK,SAAUK,EAAOq6D,GACtD,IAAIvnD,EAASyD,MAAM5U,OAAOmE,EAAEu0D,GAAa1xD,UAAW,CAAEJ,GAAI8xD,IAC1D93C,EAAI63C,UAAU55C,OAAO1N,OAGzBwnD,gBAAiB,SAAyBz1B,GACxC/+B,EAAE++B,GAAOv0B,KAAK,oBAAoB3Q,MAAK,SAAUK,EAAOq6D,GAClDA,EAAYtB,aAAesB,EAAYtB,YAAYn2C,cAG3Dy5B,SAAU,SAAkBvN,GAC1B,IAAIvsB,EAAMlpB,KACVy1C,EAAKnsB,IAAIrS,KAAK,oBAAoB3Q,MAAK,SAAUK,EAAOq6D,GACtD,IAAIvnD,EAASyD,MAAM5U,OAAOmE,EAAEu0D,GAAa1xD,UAAW,CAAEJ,GAAI8xD,IAC1D93C,EAAI63C,UAAU55C,OAAO1N,OAGzBopC,iBAAkB,SAA0BpN,GAC1CA,EAAKnsB,IAAIrS,KAAK,oBAAoB3Q,MAAK,SAAUK,EAAOq6D,GAClDA,EAAYtB,aAAesB,EAAYtB,YAAYn2C,eAI7DtB,MAAO,CACLi5C,kBAAmB,CACjBpjB,OAAQ,SAAgB71B,GACtB,IACI+4C,EAAc/4C,EAAM81B,IACpBtkC,EAASyD,MAAM5U,OAAOmE,EAAEu0D,GAAa1xD,UAAW,CAAEJ,GAAI8xD,IAFhDhhE,KAGN+gE,UAAU55C,OAAO1N,IAEvB8P,QAAS,SAAiBtB,GACxB,IAAI+4C,EAAc/4C,EAAM81B,IACpBijB,EAAYtB,aAAesB,EAAYtB,YAAYn2C,cAM3D43C,SAAW,CACb38D,KAAM,YAGJ48D,IAAM,CACR5sD,KAAM,WAIJ,IAHA,IAAIjE,EAAQ0hB,EAAUi4B,EAElBniD,EAAO,GAAIC,EAAMC,UAAU3G,OACvB0G,KAAQD,EAAMC,GAAQC,UAAWD,GACzC,IAEIwjC,EACA61B,EACAjoD,EACAkyB,EACAg2B,EANAp4C,EAAMlpB,KAOU,IAAhB+H,EAAKzG,QAAgByG,EAAK,IAAMA,EAAK,GAAG9D,cAAgBC,QAC1DsnC,EAAQzjC,EAAK,GAAGyjC,MAChB61B,EAAYt5D,EAAK,GAAGs5D,UACpBjoD,EAAUrR,EAAK,GAAGqR,QAClBkyB,EAAWvjC,EAAK,GAAGujC,SACnBg2B,EAAev5D,EAAK,GAAGu5D,eAEP91B,GAAfj7B,EAASxI,GAAqB,GAAIs5D,EAAY9wD,EAAO,GAAI6I,EAAU7I,EAAO,GAAI+6B,EAAW/6B,EAAO,GAC1E,kBAAZxI,EAAK,KACIyjC,GAAjBvZ,EAAWlqB,GAAuB,GAAIqR,EAAU6Y,EAAS,GAAIovC,EAAYpvC,EAAS,GAAIqZ,EAAWrZ,EAAS,GACvGlqB,EAAKzG,OAAS,GAAK+/D,EAAUp9D,cAAgBC,SAC7BsnC,GAAjB0e,EAAWniD,GAAuB,GAAIqR,EAAU8wC,EAAS,GAAI5e,EAAW4e,EAAS,GAAImX,EAAYnX,EAAS,WAI1F,IAAZ9wC,IAA2BA,GAAU,GAEhD,IAYImoD,EAZA31B,EAAYn/B,EAAE++B,GAKlB,GAJIF,GAAYM,EAAU,KACxBA,EAAU,GAAG41B,WAAal2B,IAGvBg2B,IAAsC,IAArB11B,EAAUtqC,QAAgBsqC,EAAUx9B,SAAS,eACjE,MAAO,CACLw9B,UAAWA,EACX61B,SAAU71B,EAAU,IAKpBy1B,IAAaE,EAAa90D,EAAE40D,IAEhC,IAAIK,EAAU91B,EAAU/1B,OAAO,SAC/B,GAAuB,IAAnB6rD,EAAQpgE,OACV,MAAO,CACLsqC,UAAWA,EACX61B,SAAU71B,EAAU,IAKpB1iB,EAAI0V,WAAY1V,EAAI0V,SAASm2B,WAAY,GAG7C,IAAI4M,EAAuB,GAE3B,SAAS51B,EAAcv+B,GACrBm0D,EAAqBjgE,KAAK8L,GAE5B,SAASo0D,IACPD,EAAqB59D,SAAQ,SAAUyJ,GACrCA,OAIJ,IAgBIq0D,EAhBA/1B,GAAW,EAEf,GAAI41B,EAAQ7rD,SAASzH,SAAS,sBAAuB,CACnDszD,EAAQ7rD,SAASuD,EAAU,cAAgB,YAAY,gBAEvD,IAAI/I,EAAqBb,WAAWkyD,EAAQxuD,IAAI,uBAAuBrS,QAAQ,IAAK,MAChFuY,GAAW/I,IACbqxD,EAAQ7uD,cAAc+uD,GACtB91B,GAAW,GAGb,IAAIg2B,EAAqE,KAApD54C,EAAIwC,IAAMkgB,EAAUjlC,SAAWilC,EAAUjlC,SAC9D+6D,EAAQ3xD,UAAW,eAAiB+xD,EAAgB,UAKlDJ,EAAQ7rD,SAASzH,SAAS,wBAA0B8a,EAAI24C,UAC1DA,EAASH,EAAQ7rD,SAAS,GAAGgsD,SACfA,EAAO3d,cAAgBtY,EAAUjlC,SAC7CmlC,GAAW,EACX+1B,EACG7vD,KAAK,4BAA4B,WAChC4vD,OAEDG,QAAQn2B,EAAUjlC,QAASyS,OAAUjZ,EAAY,IAC3C0hE,GAAUA,EAAOloD,YAC1BmyB,GAAW,EACX+1B,EACG7vD,KAAK,4BAA4B,WAChC4vD,SAMR,IAAI/1B,EAAY61B,EAAQn3D,SAAS,eA2BjC,GA1BAshC,EAAU39B,YAAY,eACjBozD,KAAkBO,GAAWA,IAAWA,EAAOloD,WAAekoD,GAAUv2B,KACvEO,EAAUz9B,SAAS,SAAWy9B,EAAUthC,SAAS,SAASjJ,QAC5DuqC,EAAUthC,SAAS,SAASjE,MAAK,SAAUshC,EAAWlB,GACpDj6B,EAAEi6B,GAAQr0B,QAAQ,gBAClB6W,EAAIvC,KAAK,cAAe+f,MAG5BmF,EAAUx5B,QAAQ,YAClB6W,EAAIvC,KAAK,UAAWklB,EAAU,KAIhCD,EAAU/9B,SAAS,eACdyzD,KAAkBO,GAAWA,IAAWA,EAAOloD,WAAekoD,GAAUv2B,KACvEM,EAAUx9B,SAAS,SAAWw9B,EAAUrhC,SAAS,SAASjJ,QAC5DsqC,EAAUrhC,SAAS,SAASjE,MAAK,SAAUshC,EAAWlB,GACpDj6B,EAAEi6B,GAAQr0B,QAAQ,gBAClB6W,EAAIvC,KAAK,cAAe+f,MAG5BkF,EAAUv5B,QAAQ,YAClB6W,EAAIvC,KAAK,UAAWilB,EAAU,MAI3B21B,OAE8BA,EAAa90D,EAAzB,iBAAV++B,EAAsC,mBAAsBA,EAAQ,KACxD,oBAAwBI,EAAUp9B,KAAK,MAAS,QAEnD+yD,GAAoC,IAAtBA,EAAWjgE,SAC3CmL,EAAE,cAAcnG,MAAK,SAAUK,EAAOuI,GAChC08B,EAAU36B,GAAGxE,EAAEyC,GAAIV,KAAK,eAAgB+yD,EAAa90D,EAAEyC,OAG3Do8B,KAAci2B,GAAeA,GAAoC,IAAtBA,EAAWjgE,SAE9B,KAD1BigE,EAAa90D,EAAG,uBAA2B6+B,EAASxQ,MAAMwN,IAAM,GAAI,OACrDhnC,SACbigE,EAAa90D,EAAG,mBAAuB6+B,EAAY,IAAI,OAGvDi2B,EAAWjgE,OAAS,GAAKsqC,EAAUvnC,QAAQ,SAAS/C,SAEtDigE,EAAaA,EAAW7uD,QAAO,SAAU/L,EAAOq7D,GAC9C,OAAOv1D,EAAEu1D,GAAgB39D,QAAQ,SAAS,KAAOunC,EAAUvnC,QAAQ,SAAS,MAE5D,QAAd6kB,EAAI/C,OAAyC,IAAtBo7C,EAAWjgE,QAAgBgqC,IAAU,CAC9D,IAAIgK,EAAU1J,EAAUvnC,QAAQ,SAC5BkiC,EAAY95B,EAAEyc,EAAIme,OAAOC,YAAYgO,IAEf,KAD1BisB,EAAah7B,EAAUtvB,KAAM,uBAA2Bq0B,EAASxQ,MAAMwN,IAAM,GAAI,OAClEhnC,SACbigE,EAAah7B,EAAUtvB,KAAM,mBAAuBq0B,EAAY,IAAI,OAK5E,GAAIi2B,EAAWjgE,OAAS,EAAG,CAEzB,IAAI2gE,EACJ,GAAIp2B,GAAaA,EAAUvqC,OAAS,EAAG,CAErC,IAAI4gE,EAAWr2B,EAAUr9B,KAAK,MAC1B0zD,MACFD,EAAgBx1D,EAAG,oBAAuBy1D,EAAW,QAE9BD,GAA0C,IAAzBA,EAAc3gE,UACpD2gE,EAAgBx1D,EAAG,gCAAmCy1D,EAAW,SAIhED,GAAkBA,GAA0C,IAAzBA,EAAc3gE,SACpDmL,EAAE,cAAcnG,MAAK,SAAUK,EAAOq7D,GAChCn2B,EAAU56B,GAAGxE,EAAEu1D,GAAgBxzD,KAAK,eAAgByzD,EAAgBx1D,EAAEu1D,SAGzEC,GAAkBA,GAA0C,IAAzBA,EAAc3gE,UACpD2gE,EAAgBV,EAAWxqD,SAAS,0BAE7Bu0B,IACT22B,EAAgBV,EAAWxqD,SAAS,qBAatC,GAVIkrD,GAAiBA,EAAc3gE,OAAS,GAAKuqC,GAAaA,EAAUxnC,QAAQ,SAAS/C,SAEvF2gE,EAAgBA,EAAcvvD,QAAO,SAAU/L,EAAOq7D,GACpD,OAAOv1D,EAAEu1D,GAAgB39D,QAAQ,SAAS,KAAOwnC,EAAUxnC,QAAQ,SAAS,OAI5E49D,GAAiBA,EAAc3gE,OAAS,GAAK2gE,EAAc/zD,YAAY,mBAGvEqzD,GAAcA,EAAWjgE,OAAS,IACpCigE,EAAW1zD,SAAS,mBAEF,OAAdqb,EAAI/C,OAAkB+C,EAAIi7B,SAAS,CACrC,IAAIP,EAAY2d,EAAWl9D,QAAQ,2BAC/Bu/C,EAAUtiD,OAAS,GACrB4nB,EAAIi7B,QAAQT,aAAaE,IAKjC,MAAO,CACLhY,UAAWA,EACX61B,SAAU71B,EAAU,GACpBC,UAAWA,EACXs2B,SAAUt2B,EAAU,GACpBE,cAAeA,EACfD,SAAUA,KAIZs2B,KAAO,CACT59D,KAAM,OACN2iB,OAAQ,WAENjK,MAAM5U,OADItI,KACQ,CAChBsoC,IAAK,CACH9zB,KAAM4sD,IAAI5sD,KAAK6G,KAHTrb,UAOZsQ,GAAI,CACF+xD,sBAAuB,SAAgBC,GACrC,IACIC,EADM91D,EAAE61D,EAAYpzD,IAAMozD,GACNrrD,KAAK,6CAA6C,GAC1E,GAAKsrD,EAAL,CACUviE,KACNsoC,IAAI9zB,KAAK,CAAEg3B,MAAO+2B,EAAejB,cAAc,EAAMloD,SAAS,OAGtEogC,OAAQ,CACNgpB,YAAa,SAAsBnpB,EAAY30C,GAG7C,QAFc,IAATA,IAAkBA,EAAO,IAEzB20C,EAAW7qC,KAAK,SAAoD,IAAzC6qC,EAAW7qC,KAAK,QAAQ7M,QAAQ,MAAe03C,EAAW7qC,KAAK,YAAa,CAChGxO,KACNsoC,IAAI9zB,KAAK,CACXg3B,MAAO9mC,EAAK4jC,KAAO+Q,EAAW7qC,KAAK,QACnC6yD,UAAWhoB,EACXjgC,QAAS1U,EAAK0U,cAOxB,SAASqpD,WAAW3yB,GAClB,IAAI5mB,EAAM4mB,EAAM5mB,IAChB,IAAI4mB,EAAM4yB,iBAAV,CAGAxlD,MAAM5U,OAAOwnC,EAAO,CAClB6yB,WAAW,EACXD,kBAAkB,IAEpB,IAKIE,EAEAtlC,EACAulC,EACAlvC,EACAkJ,EACAimC,EAEA9lC,EACAD,EACAo4B,EACA4N,EACAC,EACA3/B,EAEA8C,EApBA1sB,EAASq2B,EAAMr2B,OACf6P,EAAMwmB,EAAMxmB,IACZy8B,EAAcjW,EAAMiW,YACpBiS,EAAOloB,EAAMkoB,KACbiL,EAASnzB,EAAMmzB,OAQf1lC,EAAe,GAUf2lC,EAAa,EAsRjBh6C,EAAI5Y,GAAG,qBAAsBouB,GAC7BxV,EAAI5Y,GAAG,mBAAoBwuB,GAC3B5V,EAAI5Y,GAAG,mBAAoB4xB,GAC3BhZ,EAAI5Y,GAAG,eAAgB6yD,GACvBj6C,EAAI5Y,GAAG,aAAc8yD,GACrBtzB,EAAMx/B,GAAG,gBAAgB,WACvB4Y,EAAIvX,IAAI,qBAAsB+sB,GAC9BxV,EAAIvX,IAAI,mBAAoBmtB,GAC5B5V,EAAIvX,IAAI,mBAAoBuwB,GAC5BhZ,EAAIvX,IAAI,eAAgBwxD,GACxBj6C,EAAIvX,IAAI,aAAcyxD,MA/RxB,SAAS1kC,EAAiB7tB,GACxB,GAAKi/B,EAAM6yB,YAAaE,GACnB35C,EAAI4mB,MAAMilB,YAAet7C,EAAO4pD,OAAU5pD,EAAO6pD,kBAAmBhmC,KACrE7wB,EAAE,+DAA+DnL,OAAS,GAA9E,CAEA,IAAIiiE,GADJX,EAAa15C,EAAI4mB,MAAM5mC,IAAa,SAAT8uD,EAAkB,QAAU,SAAW,IAChCxS,QAAUod,EAAWt5C,MAAQs5C,EAAWt5C,IAAIlb,SAAS,uBACvF,IAAK0hC,EAAM0V,SAAU+d,KAGhB9pD,EAAO6pD,iBACNC,MAEF1yD,EAAEtI,QAA8C,UAApCsI,EAAEtI,OAAOyB,SAASoD,eAA+C,UAAlByD,EAAEtI,OAAOlG,SACpEoK,EAAEoE,EAAEtI,QAAQyO,QAAQ,wFAAwF1V,OAAS,KACzHi8B,EAAapb,EAAe,eAAXtR,EAAExO,KAAwBwO,EAAEomB,cAAc,GAAGG,MAAQvmB,EAAEumB,MACxEmG,EAAazI,EAAe,eAAXjkB,EAAExO,KAAwBwO,EAAEomB,cAAc,GAAGI,MAAQxmB,EAAEwmB,OACpE5d,EAAO6pD,gBAAmBxzB,EAAM0V,QAApC,CAGA,GAAI/rC,EAAO+pD,kBAAoB1zB,EAAM0V,OAAQ,CAC3C,GAAa,SAATwS,GACEz6B,EAAapb,EAAI1I,EAAO+pD,gBAAmB,OAEjD,GAAa,UAATxL,GACEz6B,EAAapb,EAAI+G,EAAIlW,MAAQyG,EAAO+pD,gBAAmB,OAG/DN,EAAa,EACb/8B,EAAU15B,EAAEqjC,EAAM2zB,aAClB9vC,GAAU,EACV2J,GAAY,EACZT,OAAc18B,EACd2iE,GAAgB,EAEhB9lC,EAAiB9f,MAAMc,MACvBqlB,OAAYljC,IAEd,SAAS2+B,EAAgBjuB,GACvB,GAAKysB,IAAaulC,IAAoBC,MACtCI,GAAc,GACG,GACjB,GAAIryD,EAAE0wB,qBAAuBrY,EAAIsY,8BAAgCtY,EAAIw6C,kBACnEpmC,GAAY,MADd,CAIA,IAAIlG,EAAmB,cAAXvmB,EAAExO,KAAuBwO,EAAEomB,cAAc,GAAGG,MAAQvmB,EAAEumB,MAC9DC,EAAmB,cAAXxmB,EAAExO,KAAuBwO,EAAEomB,cAAc,GAAGI,MAAQxmB,EAAEwmB,MAIlE,QAH2B,IAAhBwF,IACTA,KAAiBA,GAAevkB,KAAKuJ,IAAIwV,EAAQkG,EAAazI,GAAKxc,KAAKuJ,IAAIuV,EAAQmG,EAAapb,KAE/F0a,EACFS,GAAY,MADd,CAIA,IAAK+F,EAAW,CAOd,GALEA,EADEjM,EAAQmG,EAAapb,EACX,WAEA,UAGV1I,EAAO+pD,gBAAkB,IAAM1zB,EAAM0V,OAAQ,CAC/C,GAAa,SAATwS,GAAmBz6B,EAAapb,EAAI1I,EAAO+pD,gBAE7C,YADAlmC,GAAY,GAGd,GAAa,UAAT06B,GAAoBz6B,EAAapb,EAAI+G,EAAIlW,MAAQyG,EAAO+pD,gBAE1D,YADAlmC,GAAY,GAIhB,GAAIhU,EAAIlb,SAAS,uBAEf,YADAkvB,GAAY,GAId,GACY,SAAT06B,GAEiB,YAAd30B,IAA4B/Z,EAAIlb,SAAS,aAGhC,UAAT4pD,GAEc,aAAd30B,IAA6B/Z,EAAIlb,SAAS,YAK9C,YADAkvB,GAAY,GAKhB,IAAIqmC,EAAY7zB,EAAM0V,OAAS,GAAK/rC,EAAOmqD,eAC9B,UAAT5L,IAAoB2L,GAAaA,GAEhChwC,IACEmc,EAAM0V,SACT1V,EAAM+zB,eACNv6C,EAAIzb,SAAS,kBACbk4C,EAAY7yC,IAAI,aAAc,WAC9BoW,EAAIjX,QAAQ,mBACZy9B,EAAMnpB,KAAK,kCAAmCmpB,IAEhDkzB,EAAa15C,EAAI,GAAGhW,YACL,WAAX2vD,GAAuB35C,EAAIlb,SAAS,wBACtC40D,GAAcxzD,WAAW22B,EAAQjzB,IAAK,UAAY8kD,KAEpD1uC,EAAIpZ,WAAW,IAGjByjB,GAAU,EAEV9iB,EAAEmmB,iBAEF+F,EAAe3F,EAAQmG,EAAapb,EAAKwhD,EAE5B,UAAT3L,EACa,UAAXiL,IACF9N,EAAYp4B,GAAe+S,EAAM0V,OAAS,EAAIwd,IAC9B,IAAK7N,EAAY,GAC7BA,EAAY6N,IACd7N,EAAY6N,MAGd7N,EAAYp4B,GAAe+S,EAAM0V,OAASwd,EAAa,IACvC,IAAK7N,EAAY,GAC7BA,GAAa6N,IACf7N,GAAa6N,MAIjB7N,EAAYp4B,GAAe+S,EAAM0V,OAASwd,EAAa,IACvC,IAAK7N,EAAY,GAC7BA,EAAY6N,IACd7N,EAAY6N,IAGhB,IAAIc,EAAmBxrD,KAAKuJ,IAAIszC,EAAY6N,GAuB5C,GAtBe,WAAXC,GACGxpD,EAAOsqD,gBACV59B,EAAQp2B,UAAW,eAAiBolD,EAAY,WAAYjlD,WAAW,GACvE61C,EAAYh2C,UAAW,eAAiBolD,EAAY,WAAYjlD,WAAW,IAG7EoZ,EAAIjX,QAAQ,cAAeiG,KAAKuJ,IAAIszC,EAAY6N,IAChDlzB,EAAMnpB,KAAK,0BAA2BmpB,EAAOx3B,KAAKuJ,IAAIszC,EAAY6N,MAErD,SAAThL,IAAmB7C,GAAa6N,GAC/BvpD,EAAOsqD,gBACVz6C,EAAIvZ,UAAW,eAAiBolD,EAAY,WAAYjlD,WAAW,GAEnE61C,EAAY71C,WAAW,GACvB6yD,EAAkB,EAAIzqD,KAAKuJ,IAAIszC,EAAY6N,GAC3Cjd,EAAY7yC,IAAI,CAAE0tB,QAASmiC,KAG7Bz5C,EAAIjX,QAAQ,cAAeiG,KAAKuJ,IAAIszC,EAAY6N,IAChDlzB,EAAMnpB,KAAK,0BAA2BmpB,EAAOx3B,KAAKuJ,IAAIszC,EAAY6N,KAGhEvpD,EAAOsqD,eACWj0B,EAAM0V,QAA+B,IAArBse,IAA6Bh0B,EAAM0V,QAA+B,IAArBse,KAE/EhB,GAAgB,EAEhB5gC,EAAerxB,MAIrB,SAASqxB,EAAerxB,GACtB,IAAKysB,IAAc3J,EAGjB,OAFA2J,GAAY,OACZ3J,GAAU,GAGZ,IAAIqwC,EAAuB,iBAAXnzD,EAAExO,MAA2BwgE,EAC7CvlC,GAAY,EACZ3J,GAAU,EACV,IACIiI,EADAwG,GAAW,IAAKj2B,MAAQ0M,UAAYmkB,EAEpCnY,GAAsB,IAAdswC,GAAmB78C,KAAKuJ,IAAIszC,KAAe6N,KAAgBvpD,EAAOsqD,cAE1EJ,EAAYlqD,EAAOmqD,gBAAkB,EAgD1B,UA7CbhoC,EADEooC,EACO,QACCl0B,EAAM0V,OAuBI,UAAXyd,EACS,IAAd9N,EACO,QACA/yB,EAAW,KAAO9pB,KAAKuJ,IAAIszC,GAAa,EACxC,OACA/yB,GAAY,KAAO9pB,KAAKuJ,IAAIszC,GAAa6N,EAAa,EACtD,QAEA,OAEF7N,KAAe6N,EACf,QAER5gC,EAAW,KAAO9pB,KAAKuJ,IAAIszC,IAAc,GACtC/yB,GAAY,KAAQ9pB,KAAKuJ,IAAIszC,IAAc6N,EAAa,EAE/C,SAAThL,GAAmB7C,IAAc6N,EAAuB,QAC5C,OAEP,QAzCL1qD,KAAKuJ,IAAIkb,GAAe4mC,EACjB,QACW,UAAXV,EACS,IAAd9N,GAEO/yB,EAAW,KAAO9pB,KAAKuJ,IAAIszC,GAAa,GAExC/yB,GAAY,KAAO9pB,KAAKuJ,IAAIszC,GAAa6N,EAAa,EAHtD,OAMA,QAEY,IAAd7N,EACA,QAER/yB,EAAW,KAAO9pB,KAAKuJ,IAAIszC,GAAa,GACrC/yB,GAAY,KAAQ9pB,KAAKuJ,IAAIszC,IAAc6N,EAAa,EAEnD,OAEA,WAwBPlzB,EAAM0V,OACR1V,EAAM/lB,OAAOlF,GAEbirB,EAAMrmB,MAAM5E,IAGhB,IAAIo/C,GAAqB,EACzB,GAAe,UAAXroC,IACGkU,EAAM0V,OACT,GAAI3gC,EAEFyE,EAAIpb,YAAY,sBACX,CACL+1D,GAAqB,EACrB,IAAI17D,EAAoB,WAAX06D,EAAsB98B,EAAU7c,EAC7C7c,EAAE,QAAQoB,SAAS,sBACnBtF,EAAOsK,eAAc,WACfyW,EAAIlb,SAAS,cACjBkb,EAAIpb,YAAY,kBAChBzB,EAAE,QAAQyB,YAAY,0BAKf,WAAX+0D,GACF/lD,MAAMa,WAAU,WACdooB,EAAQj2B,WAAW,IACnBi2B,EAAQp2B,UAAU,OAGlBk0D,GACF36C,EAAIpb,YAAY,kBAElBob,EAAIpZ,WAAW,IAAIH,UAAU,IAC7Bg2C,EAAYh2C,UAAU,IAAIG,WAAW,IAAIgD,IAAI,CAAE0tB,QAAS,GAAIsjC,WAAY,KAE1E,SAASf,EAAmBtyD,GAC1BgyD,GAAmB,EACnB3gC,EAAerxB,GAEjB,SAASuyD,IACPP,GAAmB,GAkBvB,SAASsB,eAAer0B,GACtB,IAAI5mB,EAAM4mB,EAAM5mB,IAChB,IAAI4mB,EAAM8H,qBAAV,CACA16B,MAAM5U,OAAOwnC,EAAO,CAClB+H,WAAW,EACXC,eAAgB,KAChBF,sBAAsB,IAExB,IAAIG,EAAUtrC,EAAE,QACZ6c,EAAMwmB,EAAMxmB,IACZy8B,EAAcjW,EAAMiW,YACpBiS,EAAOloB,EAAMkoB,KACbiL,EAASnzB,EAAMmzB,OACnB,GAAK35C,EAAL,CAEA,IAAIgU,EACA3J,EAEAoJ,EACAimC,EAEA78B,EAEAi+B,EACAC,EACAC,EARA/mC,EAAe,GA6HoC,IAAnDuS,EAAMxmB,IAAIrS,KAAK,yBAAyB3V,QAC1CwuC,EAAMxmB,IAAI/T,OAAO,4CAEnBu6B,EAAMkI,iBAAmBlI,EAAMxmB,IAAI/e,SAAS,yBAE5C+e,EAAIzb,SAAS,mBAGb,IAAIqoB,IAAU7S,QAAQO,iBAAkB,CAAEsS,SAAS,GAEnD4Z,EAAMxmB,IAAIhZ,GAAG4Y,EAAIoN,YAAYC,MAAO,wBAAyBmI,EAAkBxI,GAC/EhN,EAAI5Y,GAAG,mBAAoBwuB,GAC3B5V,EAAI5Y,GAAG,mBAAoB4xB,GAC3BhZ,EAAI5Y,GAAG,SAAU6nC,GACjBrI,EAAMx/B,GAAG,aAAc6nC,GAEvBrI,EAAM99B,KAAK,gBAAgB,WACzBsX,EAAIpb,YAAY,mBAChB4hC,EAAMkI,iBAAiB7pC,SACvB2hC,EAAMxmB,IAAI3X,IAAIuX,EAAIoN,YAAYC,MAAO,wBAAyBmI,EAAkBxI,GAChFhN,EAAIvX,IAAI,mBAAoBmtB,GAC5B5V,EAAIvX,IAAI,mBAAoBuwB,GAC5BhZ,EAAIvX,IAAI,SAAUwmC,GAClBrI,EAAMn+B,IAAI,aAAcwmC,OA1I1B,SAASC,EAAkBC,GACzB,IAAKA,EAAK,OAAO,KACjB,GAAIA,EAAE12C,QAAQ,MAAQ,GAAK02C,EAAE12C,QAAQ,OAAS,EAC5C,OAAO6f,SAAS62B,EAAG,IAAM,IAAMnvB,EAAIlW,MAErC,IAAIslC,EAAO92B,SAAS62B,EAAG,IACvB,OAAIvzC,OAAOsd,MAAMk2B,GAAgB,KAC1BA,EAOT,SAAS5Z,EAAiB7tB,GAHjBi/B,EAAM+H,WAAavuB,EAAIlb,SAAS,qBAKvCmvB,EAAapb,EAAe,eAAXtR,EAAExO,KAAwBwO,EAAEomB,cAAc,GAAGG,MAAQvmB,EAAEumB,MACxEmG,EAAazI,EAAe,eAAXjkB,EAAExO,KAAwBwO,EAAEomB,cAAc,GAAGI,MAAQxmB,EAAEwmB,MACxE1D,GAAU,EACV2J,GAAY,EACZ8mC,EAAgBhsB,EAAkB9uB,EAAIpW,IAAI,cAC1CmxD,EAAgBjsB,EAAkB9uB,EAAIpW,IAAI,cAC1CoxD,EAAsBh7C,EAAIlb,SAAS,wBAErC,SAAS0wB,EAAgBjuB,GACvB,GAAKysB,EAAL,CACA,IAAIlG,EAAmB,cAAXvmB,EAAExO,KAAuBwO,EAAEomB,cAAc,GAAGG,MAAQvmB,EAAEumB,MAE7DzD,IACHqvC,EAAa15C,EAAI,GAAGhW,YACpBgW,EAAIpZ,WAAW,GACfoZ,EAAIzb,SAAS,kBACbkqC,EAAQ7kC,IAAI,SAAU,eACP,WAAX+vD,GAAuBqB,KACzBn+B,EAAU15B,EAAEqjC,EAAM2zB,cAEL,WAAXR,GAAwBqB,IAC1Bve,EAAY71C,WAAW,GACvBi2B,EAAQj2B,WAAW,KAIvByjB,GAAU,EAEV9iB,EAAEmmB,iBAEF+F,EAAe3F,EAAQmG,EAAapb,EAEpC,IAAIoiD,EAAyB,SAATvM,EAAkBgL,EAAajmC,EAAcimC,EAAajmC,EAC1EqnC,IAAkBt/D,OAAOsd,MAAMgiD,KACjCG,EAAgBjsD,KAAKC,IAAIgsD,EAAeH,IAEtCC,IAAkBv/D,OAAOsd,MAAMiiD,KACjCE,EAAgBjsD,KAAKE,IAAI+rD,EAAeF,IAE1CE,EAAgBjsD,KAAKE,IAAIF,KAAKC,IAAIgsD,EAAe,GAAIr7C,EAAIlW,OAEzD88B,EAAMgI,eAAiBysB,EACvBj7C,EAAI,GAAG7e,MAAMuI,MAAQuxD,EAAgB,KACtB,WAAXtB,GAAwBqB,EAOjBA,GAAuBn+B,GAChCA,EAAQjzB,IAAK,UAAY8kD,EAAQuM,EAAgB,OAP7Cp+B,GACFA,EAAQp2B,UAAW,gBAA2B,SAATioD,EAAkBuM,GAAiBA,GAAiB,aAEvFxe,GACFA,EAAYh2C,UAAW,gBAA2B,SAATioD,EAAkBuM,GAAiBA,GAAiB,cAMjGj7C,EAAIjX,QAAQ,eAAgBkyD,GAC5Bz0B,EAAMnpB,KAAK,4BAA6BmpB,EAAOy0B,IAEjD,SAASriC,IAEP,GADAz1B,EAAE,QAAQyG,IAAI,SAAU,KACnBoqB,IAAc3J,EAGjB,OAFA2J,GAAY,OACZ3J,GAAU,GAGZ2J,GAAY,EACZ3J,GAAU,EAEVokB,EAAQ,GAAGttC,MAAMonC,YAAa,cAAgBmmB,EAAO,SAAaloB,EAAoB,eAAI,MAC1FxmB,EAAI,GAAG7e,MAAMuI,MAAQ,GACN,WAAXiwD,GAAwBqB,IAC1Bn+B,EAAQp2B,UAAU,IAClBg2C,EAAYh2C,UAAU,KAExBuZ,EAAIpb,YAAY,kBAChBgP,MAAMa,WAAU,WACduL,EAAIpZ,WAAW,IACA,WAAX+yD,IACFld,EAAY71C,WAAW,IACnBi2B,GAAWA,EAAQj2B,WAAW,QAKxC,SAASioC,IACFrI,EAAM0V,QAAW1V,EAAMgI,iBAC5BssB,EAAgBhsB,EAAkB9uB,EAAIpW,IAAI,cAC1CmxD,EAAgBjsB,EAAkB9uB,EAAIpW,IAAI,cAEtCkxD,IAAkBt/D,OAAOsd,MAAMgiD,IAAkBt0B,EAAMgI,eAAiBssB,IAC1Et0B,EAAMgI,eAAiBx/B,KAAKC,IAAIu3B,EAAMgI,eAAgBssB,IAEpDC,IAAkBv/D,OAAOsd,MAAMiiD,IAAkBv0B,EAAMgI,eAAiBusB,IAC1Ev0B,EAAMgI,eAAiBx/B,KAAKE,IAAIs3B,EAAMgI,eAAgBusB,IAExDv0B,EAAMgI,eAAiBx/B,KAAKE,IAAIF,KAAKC,IAAIu3B,EAAMgI,eAAgB,GAAI5uB,EAAIlW,OAEvE+kC,EAAQ,GAAGttC,MAAMonC,YAAa,cAAgBmmB,EAAO,SAAaloB,EAAoB,eAAI,QA8B9F,IAAI00B,MAAsB,SAAUv9C,GAClC,SAASu9C,EAAMt7C,EAAKzP,QACF,IAAXA,IAAoBA,EAAS,IAElC,IAAIotC,EAAiB3pC,MAAM5U,OACzB,CAAEgI,GAAI,IACN4Y,EAAIzP,OAAOq2B,MACXr2B,GAEFwN,EAAgB/gB,KAAKlG,KAAM6mD,EAAgB,CAAC39B,IAE5C,IAMII,EAOJ,GAbYtpB,KAENyZ,OAASotC,EAFH7mD,KAGNykE,aAHMzkE,KAGeyZ,OAAOirD,YAAcj4D,EAHpCzM,KAG4CyZ,OAAOirD,aAAarvD,GAAG,GAAK6T,EAAIpjB,KAH5E9F,KAIN0kE,YAJM1kE,KAIcykE,aAAa,GAJ3BzkE,KAOFyZ,OAAOvK,GACfoa,EAAM7c,EARIzM,KAQIyZ,OAAOvK,IAAImG,GAAG,GARlBrV,KASKyZ,OAAOnX,UACtBgnB,EAAM7c,EAVIzM,KAUIyZ,OAAOnX,SAASoQ,QAAO,SAAU83C,EAASC,GAAQ,OAAyB,IAAlBA,EAAKz9C,YAAmBqI,GAAG,IAGjF,IAAfiU,EAAIhoB,OAAgB,OAbZtB,KAcZ,GAAIspB,EAAI,GAAGq7C,QAAW,OAAOr7C,EAAI,GAAGq7C,QAEpCr7C,EAAI,GAAGq7C,QAhBK3kE,KAkBZ,IAQI+lD,EARAhrC,EAlBQ/a,KAkBIyZ,OACZu+C,EAAOj9C,EAAIi9C,KACXiL,EAASloD,EAAIkoD,OACbprB,EAAY98B,EAAI88B,UAkCpB,YAjCoB,IAATmgB,IAAwBA,EAAO1uC,EAAIlb,SAAS,cAAgB,OAAS,cAC1D,IAAX60D,IAA0BA,EAAS35C,EAAIlb,SAAS,eAAiB,QAAU,eAC7D,IAAdypC,IAA6BA,EAAYvuB,EAAIlb,SAAS,oBAxBrDpO,KA2BFyZ,OAAOgtC,UA3BLzmD,KA2BuByZ,OAAOitC,WACxCX,EAAct5C,EA5BJzM,KA4BYyZ,OAAOitC,YA5BnB1mD,KA6BKyZ,OAAOgtC,UAEK,KAD3BV,EA9BU/lD,KA8BUykE,aAAal6D,SAAS,oBAC1BjJ,SACdykD,EAAct5C,EAAE,sCAhCRzM,KAiCFykE,aAAa3uD,QAAQiwC,IAI/B7oC,MAAM5U,OArCMtI,KAqCQ,CAClBkpB,IAAKA,EACL8uC,KAAMA,EACNiL,OAAQA,EACRprB,UAAWA,EACXvuB,IAAKA,EACLpa,GAAIoa,EAAI,GACRk8B,QAAQ,EACRO,YAAaA,EACbW,WAAYX,GAAeA,EAAY,KA9C7B/lD,KAkDNqoB,aAlDMroB,KAqDNusB,OArDMvsB,KA2hBd,OAjeKinB,IAAkBu9C,EAAMt9C,UAAYD,GACzCu9C,EAAM/7D,UAAYvE,OAAOijB,OAAQF,GAAmBA,EAAgBxe,WACpE+7D,EAAM/7D,UAAUxE,YAAcugE,EAE9BA,EAAM/7D,UAAUg7D,UAAY,WAQ1B,OAPYzjE,KAEFykE,aAAal6D,SAAS,UAAUjJ,OAAS,EAFvCtB,KAGKykE,aAAal6D,SAAS,UAAU,GAHrCvK,KAKKykE,aAAal6D,SAAS,SAAS,IAKlDi6D,EAAM/7D,UAAUm8D,wBAA0B,WAIxC,OAHY5kE,KACN6kE,2BAA4B,EADtB7kE,KAEN8kE,uBAFM9kE,MAMdwkE,EAAM/7D,UAAUs8D,yBAA2B,WAIzC,OAHY/kE,KACN6kE,2BAA4B,EADtB7kE,KAEN8kE,uBAFM9kE,MAMdwkE,EAAM/7D,UAAUu8D,wBAA0B,WAIxC,OAHYhlE,KACN6kE,2BADM7kE,KAC6B6kE,0BAD7B7kE,KAEN8kE,uBAFM9kE,MAMdwkE,EAAM/7D,UAAUq8D,qBAAuB,SAA+BG,GACpE,IAAI58D,EAAK68D,EAAOC,OAEI,IAAfF,IAAwBA,GAAa,GAC1C,IAAIn1B,EAAQ9vC,KACRkpB,EAAM4mB,EAAM5mB,IACX4mB,EAAMs1B,iCACTt1B,EAAMs1B,+BAAiC,WACrCt1B,EAAMg1B,wBAER57C,EAAI5Y,GAAG,SAAUw/B,EAAMs1B,iCAEzB,IAAIpN,EAAOloB,EAAMkoB,KACb1uC,EAAMwmB,EAAMxmB,IACZ7P,EAASq2B,EAAMr2B,OACforD,EAA4B/0B,EAAM+0B,0BAClCQ,EAAa5rD,EAAO6rD,kBACpBn/B,EAAU15B,EAAEqjC,EAAM2zB,aAClB8B,EAAaj8C,EAAIlb,SAAS,uBAE1B8a,EAAIlW,OAASqyD,GAAbn8C,MAAkCm8C,IAAsDR,EACrFU,EAYHp/B,EAAQjzB,MAAMgyD,EAAQ,IAAW,UAAYlN,GAAW1uC,EAAItW,QAAW,KAAOkyD,KAX9Ez4D,EAAE,QAAQyB,YAAa,cAAgB8pD,EAAO,sBAAwBA,EAAO,qBAC7E1uC,EAAIzb,SAAS,uBAAuBK,YAAY,+BAChD4hC,EAAM2V,QAAO,GACb3V,EAAM4V,WACNvf,EAAQjzB,MAAM7K,EAAM,IAAS,UAAY2vD,GAAW1uC,EAAItW,QAAW,KAAO3K,IAC1E6gB,EAAIs8C,gBAAiB,EACjBP,IACFn1B,EAAMnpB,KAAK,oCAAqCmpB,GAChDA,EAAMxmB,IAAIjX,QAAQ,sBAKbkzD,IACTj8C,EAAIpb,YAAY,gCAChB4hC,EAAM6V,UACN7V,EAAM8V,WACNzf,EAAQjzB,MAAMiyD,EAAQ,IAAW,UAAYnN,GAAS,GAAImN,IACtDF,IACFn1B,EAAMnpB,KAAK,oCAAqCmpB,GAChDA,EAAMxmB,IAAIjX,QAAQ,uBAKxBmyD,EAAM/7D,UAAUg9D,0BAA4B,WAI1C,OAHYzlE,KACN0lE,6BAA8B,EADxB1lE,KAEN2lE,yBAFM3lE,MAMdwkE,EAAM/7D,UAAUm9D,2BAA6B,WAI3C,OAHY5lE,KACN0lE,6BAA8B,EADxB1lE,KAEN2lE,yBAFM3lE,MAMdwkE,EAAM/7D,UAAUo9D,0BAA4B,WAI1C,OAHY7lE,KACN0lE,6BADM1lE,KAC+B0lE,4BAD/B1lE,KAEN2lE,yBAFM3lE,MAMdwkE,EAAM/7D,UAAUk9D,uBAAyB,SAAiCV,GACxE,IAAIn1B,EAAQ9vC,KACRkpB,EAAM4mB,EAAM5mB,IACX4mB,EAAMg2B,mCACTh2B,EAAMg2B,iCAAmC,WACvCh2B,EAAM61B,0BAERz8C,EAAI5Y,GAAG,SAAUw/B,EAAMg2B,mCAEzB,IAAI9N,EAAOloB,EAAMkoB,KACb1uC,EAAMwmB,EAAMxmB,IACZ7P,EAASq2B,EAAMr2B,OACfisD,EAA8B51B,EAAM41B,4BACxC,IAAIp8C,EAAIlb,SAAS,uBAAjB,CACA,IAAIi3D,EAAa5rD,EAAOssD,oBACpBR,EAAaj8C,EAAIlb,SAAS,sBAE1B8a,EAAIlW,OAASqyD,GAAbn8C,MAAkCm8C,IAAsDK,EACrFH,IACH94D,EAAE,QAAQyB,YAAa,cAAgB8pD,EAAO,sBAAwBA,EAAO,qBAC7E1uC,EAAIzb,SAAS,sBAAsBK,YAAY,YAC/C4hC,EAAMk2B,WAAY,EAClB98C,EAAIs8C,gBAAiB,EACjBP,IACFn1B,EAAMnpB,KAAK,sDAAuDmpB,GAClEA,EAAMxmB,IAAIjX,QAAQ,+BAGbkzD,IACTj8C,EAAIpb,YAAY,+BAChB4hC,EAAMk2B,WAAY,EACdf,IACFn1B,EAAMnpB,KAAK,sDAAuDmpB,GAClEA,EAAMxmB,IAAIjX,QAAQ,iCAKxBmyD,EAAM/7D,UAAUw9D,gBAAkB,WAQhC,OAPYjmE,KACF43C,sBADE53C,KAEJ63C,WAAY,EAFR73C,KAGJspB,IAAIzb,SAAS,oBAEnBs2D,eALUnkE,MAAAA,MAUdwkE,EAAM/7D,UAAUy9D,iBAAmB,WAIjC,OAHYlmE,KACN63C,WAAY,EADN73C,KAENspB,IAAIpb,YAAY,mBAFVlO,MAMdwkE,EAAM/7D,UAAU09D,YAAc,WAO5B,OANYnmE,KACF0iE,iBADE1iE,KAEJ2iE,WAAY,EAElBF,WAJUziE,MAAAA,MASdwkE,EAAM/7D,UAAU29D,aAAe,WAG7B,OAFYpmE,KACN2iE,WAAY,EADN3iE,MAKdwkE,EAAM/7D,UAAUg9C,OAAS,SAAiB4gB,QACb,IAAtBA,IAA+BA,GAAoB,GAExD,IACIn9C,EADQlpB,KACIkpB,IADJlpB,KAGNwlD,QAAS,EACft8B,EAAI4mB,MAAMilB,WAAY,EAJV/0D,KAMNspB,IAAIjX,QAAQ,oBANNrS,KAON2mB,KAAK,oCAPC3mB,MASRqmE,GACF55D,EAAE,QAAQoB,SAAU,yBAVV7N,KAUgD,KAAI,IAVpDA,KAUuE,QAVvEA,KAaNspB,IAAIjX,QAAQ,cAbNrS,KAcN2mB,KAAK,wBAdC3mB,OAiBdwkE,EAAM/7D,UAAUi9C,SAAW,WACb1lD,KACIkpB,IAEZ4mB,MAAMilB,WAAY,EAHV/0D,KAKNspB,IAAIjX,QAAQ,gBALNrS,KAMN2mB,KAAK,4BANC3mB,OASdwkE,EAAM/7D,UAAUk9C,QAAU,WACxB,IACIz8B,EADQlpB,KACIkpB,IADJlpB,KAGNwlD,QAAS,EACft8B,EAAI4mB,MAAMilB,WAAY,EAJV/0D,KAMNspB,IAAIjX,QAAQ,qBANNrS,KAON2mB,KAAK,sCAPC3mB,MASZyM,EAAE,QAAQoB,SAAS,sBACnBpB,EAAE,QAAQyB,YAAa,yBAVXlO,KAUiD,KAAI,IAVrDA,KAUwE,QAVxEA,KAYNspB,IAAIjX,QAAQ,eAZNrS,KAaN2mB,KAAK,0BAbC3mB,OAgBdwkE,EAAM/7D,UAAUm9C,SAAW,WACzB,IACI18B,EADQlpB,KACIkpB,IAIhB,GAHAA,EAAI4mB,MAAMilB,WAAY,EACtBtoD,EAAE,QAAQyB,YAAY,sBAHVlO,KAINspB,IAAIpb,YAAY,aAJVlO,KAKF+lD,YAAa,CACrB,IAAI6c,EAAa15C,EAAI4mB,MAAM5mC,IAAI,eACL05D,GAAeA,IAAeA,EAAW7c,cAPzD/lD,KASF+lD,YAAY73C,YAAY,qBATtBlO,KAYNspB,IAAIjX,QAAQ,gBAZNrS,KAaN2mB,KAAK,4BAbC3mB,OAgBdwkE,EAAM/7D,UAAU8F,OAAS,SAAiB6K,QACvB,IAAZA,IAAqBA,GAAU,GAEpC,IACIisD,EADQrlE,KACWyZ,OAAO6rD,kBAE9B,OAHYtlE,KAEIkpB,IACRlW,OAASqyD,GAAbn8C,MAAkCm8C,EAH1BrlE,KAIGglE,2BAJHhlE,KAMFwlD,OANExlD,KAMc+pB,MAAM3Q,GANpBpZ,KAOCypB,KAAKrQ,GAPNpZ,OAWdwkE,EAAM/7D,UAAUo7D,aAAe,WAC7B,IACIv6C,EADQtpB,KACIspB,IACZy8B,EAFQ/lD,KAEY+lD,YACpB0e,EAHQzkE,KAGaykE,aACrB6B,EAAiBh9C,EAAIzT,SACrBswC,EAAW78B,EAAIjlB,QAAQoF,UAAUnI,OAAS,EAE9C,IAAKglE,EAAer1D,GAAGwzD,IAAiBn7C,EAAIzS,QAAQ,iBAAiBvV,OAAQ,CAC3E,IAAIgzD,EAAkBmQ,EAAal6D,SAAS,yBAAyB8K,GAAG,GACpEg/C,EAAiBoQ,EAAal6D,SAAS,mBAAmB8K,GAAG,GAE7Di/C,EAAgBhzD,OAClBgoB,EAAIvT,aAAau+C,GACRD,EACT/qC,EAAIvT,aAAas+C,GAEjBoQ,EAAa3uD,QAAQwT,GAGnBy8B,GACCA,EAAYzkD,UAGVykD,EAAYlwC,SAAS5E,GAAGwzD,IACmB,IAAzC1e,EAAYtvC,QAAQ,UAAUnV,QAGjCykD,EAAYlwC,SAAS5E,GAAGwzD,IACoB,IAAzC1e,EAAYtvC,QAAQ,UAAUnV,SAIrCykD,EAAYhwC,aAAauT,GAhCjBtpB,KAmCJgS,KAAK,eAAe,WACpBm0C,EACFmgB,EAAe/wD,OAAO+T,GAEtBA,EAAInb,cAMZq2D,EAAM/7D,UAAUghB,KAAO,SAAerQ,QACnB,IAAZA,IAAqBA,GAAU,GAEpC,IAAI02B,EAAQ9vC,KACRkpB,EAAM4mB,EAAM5mB,IAEhB,IAAKA,EAAI4mB,MAAMilB,UAAa,OAAO,EAEnC,IAAIkO,EAASnzB,EAAMmzB,OACf35C,EAAMwmB,EAAMxmB,IACZy8B,EAAcjW,EAAMiW,YACpBP,EAAS1V,EAAM0V,OAEnB,IAAKl8B,GAAOA,EAAIlb,SAAS,YACvB,OAAO0hC,EAMT,GAHAA,EAAM+zB,eAGFre,GAAUl8B,EAAIlb,SAAS,wBAA0Bkb,EAAIlb,SAAS,YAAe,OAAO,EAGxF,IAAIm4D,EAAmBr9C,EAAI4mB,MAAM5mC,IAAI,aACjCq9D,GAAoBA,IAAqBz2B,GAC3Cy2B,EAAiBx8C,MAAM3Q,GAGzBkQ,EAAIlQ,EAAU,cAAgB,YAAY,gBAC1CkQ,EAAIzb,SAAS,YAETk4C,IACFA,EAAYl4C,SAAS,qBACrBk4C,EAAY3sC,EAAU,cAAgB,YAAY,iBAG/B,UAAjB02B,EAAMmzB,SAERnzB,EAAMxR,YAAchV,EAAI,GAAGvV,YAI7B,IAAIyyD,EAAiC,WAAXvD,EAAsB35C,EAAI7S,QAAQ,iBAAiBpB,GAAG,GAAKiU,EA+BrF,OAlBIlQ,GACE2sC,GACFA,EAAY73C,YAAY,gBAb5B,SAASu4D,IACPD,EAAoB3zD,eAAc,SAAUhC,GACtCpE,EAAEoE,EAAEtI,QAAQ0I,GAAGu1D,GACbl9C,EAAIlb,SAAS,aACf0hC,EAAM8V,WAEN9V,EAAM4V,WAED+gB,OAOXA,GACAn9C,EACGpb,YAAY,0BACZL,SAAS,YACZiiC,EAAM2V,WAEFM,GACFA,EAAYl4C,SAAS,gBAEvByb,EAAIpb,YAAY,aAAaL,SAAS,yBACtCiiC,EAAM2V,SACN3V,EAAM4V,aAGD,GAGT8e,EAAM/7D,UAAUshB,MAAQ,SAAgB3Q,QACrB,IAAZA,IAAqBA,GAAU,GAEpC,IAAI02B,EAAQ9vC,KAERijE,EAASnzB,EAAMmzB,OACf35C,EAAMwmB,EAAMxmB,IACZy8B,EAAcjW,EAAMiW,YAExB,IADajW,EAAM0V,QACJl8B,EAAIlb,SAAS,yBAA2Bkb,EAAIlb,SAAS,YAAe,OAAO0hC,EAE1FxmB,EAAIlQ,EAAU,cAAgB,YAAY,gBACtC2sC,GACFA,EAAY3sC,EAAU,cAAgB,YAAY,gBAGpD,IAAIotD,EAAiC,WAAXvD,EAAsB35C,EAAI7S,QAAQ,iBAAiBpB,GAAG,GAAKiU,EA8BrF,OApBIlQ,GACFotD,EACG3zD,eAAc,WATbyW,EAAIlb,SAAS,aACf0hC,EAAM8V,WACGt8B,EAAIlb,SAAS,aACtB0hC,EAAM4V,WAERj5C,EAAE,QAAQyB,YAAY,yBAOtBob,EACGpb,YAAY,YACZL,SAAS,aAEZiiC,EAAM6V,YAENr8B,EACGzb,SAAS,gBACTK,YAAY,YACZL,SAAS,aAEZiiC,EAAM6V,UACN7V,EAAM8V,YAGD9V,GAGT00B,EAAM/7D,UAAU8jB,KAAO,gBAGyB,IAFlCvsB,KAEKyZ,OAAO6rD,mBAFZtlE,KAGJ8kE,4BAEwC,IALpC9kE,KAKKyZ,OAAOssD,qBALZ/lE,KAMJ2lE,yBANI3lE,KAQFyZ,OAAO4pD,OARLrjE,KASJmmE,cATInmE,KAWF63C,WAXE73C,KAYJimE,mBAIVzB,EAAM/7D,UAAU8gB,QAAU,WACxB,IAAIlhB,EAEAynC,EAAQ9vC,KACRkpB,EAAM4mB,EAAM5mB,IAEhB,GAAK4mB,EAAMxmB,IAAX,CAcA,GATAwmB,EAAMnpB,KAAK,0CAA2CmpB,GACtDA,EAAMxmB,IAAIjX,QAAQ,uBAEdy9B,EAAMs1B,gCACRl8C,EAAIvX,IAAI,SAAUm+B,EAAMs1B,gCAEtBt1B,EAAMg2B,kCACR58C,EAAIvX,IAAI,SAAUm+B,EAAMg2B,kCAEtBh2B,EAAMxmB,IAAIlb,SAAS,wBAA0B0hC,EAAMxmB,IAAIlb,SAAS,sBAAuB,CACzF,IAAI+3B,EAAU15B,EAAEqjC,EAAM2zB,aACtB3zB,EAAMxmB,IAAIpb,YAAY,mDACtBi4B,EAAQjzB,MAAM7K,EAAM,IAAS,UAAaynC,EAAU,MAAM,GAAIznC,IAC9DynC,EAAMnpB,KAAK,oCAAqCmpB,GAChDA,EAAMxmB,IAAIjX,QAAQ,oBAGpBy9B,EAAMxmB,IAAIjX,QAAQ,iBAClBy9B,EAAMnpB,KAAK,8BAA+BmpB,GACtCA,EAAM5gC,KACR4gC,EAAM5gC,GAAGy1D,QAAU,YACZ70B,EAAM5gC,GAAGy1D,SAElBznD,MAAMU,YAAYkyB,GAElBA,EAAQ,OAGH00B,EAtiBgB,CAuiBvBv9C,iBAEEy/C,QAAU,CACZliE,KAAM,QACNiV,OAAQ,CACNq2B,MAAO,CACL0V,YAAQrlD,EACR63D,UAAM73D,EACN8iE,YAAQ9iE,EACR03C,eAAW13C,EACXsmD,UAAU,EACVC,gBAAYvmD,EACZmlE,uBAAmBnlE,EACnB4lE,yBAAqB5lE,EACrBkjE,OAAO,EACPU,eAAe,EACfT,gBAAgB,EAChBE,gBAAiB,EACjBI,eAAgB,EAChBpd,sBAAsB,EACtBke,iBAAavkE,IAGjBwoB,OAAQ,CACN67C,MAAOA,OAETt8D,SAAU,CACR4nC,MAAO,CACLilB,WAAW,IAGf5tC,OAAQ,WACN,IAAI+B,EAAMlpB,KACVkd,MAAM5U,OAAO4gB,EAAI4mB,MAAO,CACtB3oB,OAAQ,SAAgB1N,GACtB,OAAO,IAAI+qD,MAAMt7C,EAAKzP,IAExBvQ,IAAK,SAAagG,GAGhB,QAFY,IAAPA,IAAgBA,EAAK,UAEtBA,aAAcs1D,MAAS,OAAOt1D,EACvB,SAAPA,GAAwB,UAAPA,IAAkBA,EAAK,UAAYA,GACxD,IAAIoa,EAAM7c,EAAEyC,GACZ,OAAmB,IAAfoa,EAAIhoB,QAAgBgoB,EAAIhoB,OAAS,OAArC,EACOgoB,EAAI,GAAGq7C,SAEhBp7C,QAAS,SAAiBra,QACZ,IAAPA,IAAgBA,EAAK,UAE1B,IAAI4gC,EAAQ5mB,EAAI4mB,MAAM5mC,IAAIgG,GAC1B,GAAI4gC,GAASA,EAAMvmB,QAAW,OAAOumB,EAAMvmB,WAG7CE,KAAM,SAAcva,EAAIkK,QACV,IAAPlK,IAAgBA,EAAK,UAEf,SAAPA,GAAwB,UAAPA,IAAkBA,EAAK,UAAYA,GACxD,IAAI4gC,EAAQ5mB,EAAI4mB,MAAM5mC,IAAIgG,GAC1B,OAAI4gC,GAASA,EAAMrmB,KAAeqmB,EAAMrmB,KAAKrQ,GACxC02B,OAAL,GACEA,EAAQ5mB,EAAI4mB,MAAM3oB,OAAO,CAAEjY,GAAIA,KAClBua,KAAKrQ,IAItB2Q,MAAO,SAAe7a,EAAIkK,QACZ,IAAPlK,IAAgBA,EAAK,aAEf,SAAPA,GAAwB,UAAPA,IAAkBA,EAAK,UAAYA,GACxD,IAAI4gC,EAAQ5mB,EAAI4mB,MAAM5mC,IAAIgG,GAC1B,OAAI4gC,GAASA,EAAMrmB,KAAeqmB,EAAM/lB,MAAM3Q,GACzC02B,OAAL,GACEA,EAAQ5mB,EAAI4mB,MAAM3oB,OAAO,CAAEjY,GAAIA,KAClB6a,MAAM3Q,IAIvB7K,OAAQ,SAAgBW,EAAIkK,QACd,IAAPlK,IAAgBA,EAAK,UAEf,SAAPA,GAAwB,UAAPA,IAAkBA,EAAK,UAAYA,GACxD,IAAI4gC,EAAQ5mB,EAAI4mB,MAAM5mC,IAAIgG,GAC1B,OAAI4gC,GAASA,EAAMvhC,OAAiBuhC,EAAMvhC,OAAO6K,GAC5C02B,OAAL,GACEA,EAAQ5mB,EAAI4mB,MAAM3oB,OAAO,CAAEjY,GAAIA,KAClBX,OAAO6K,OAM5B9I,GAAI,CACFic,KAAM,WACJ,IAAIrD,EAAMlpB,KACVyM,EAAE,eAAenG,MAAK,SAAUK,EAAOggE,GACrC,IAAIltD,EAASvV,OAAOqM,OAClB,CAAErB,GAAIy3D,GACNl6D,EAAEk6D,GAASr3D,WAAa,IAE1B4Z,EAAI4mB,MAAM3oB,OAAO1N,OAGrBupC,SAAU,SAAkBvN,GAC1B,IAAIvsB,EAAMlpB,KACVy1C,EAAKnsB,IAAIrS,KAAK,eAAe3Q,MAAK,SAAUK,EAAOggE,GACjD,IAAIltD,EAASvV,OAAOqM,OAClB,CAAErB,GAAIy3D,GACNl6D,EAAEk6D,GAASr3D,WAAa,IAE1B4Z,EAAI4mB,MAAM3oB,OAAO1N,OAGrBopC,iBAAkB,SAA0BpN,GAC1C,IAAIvsB,EAAMlpB,KACVy1C,EAAKnsB,IAAIrS,KAAK,eAAe3Q,MAAK,SAAUK,EAAOggE,GACjD,IAAI72B,EAAQ5mB,EAAI4mB,MAAM5mC,IAAIy9D,GACtB72B,GAASA,EAAMvmB,SAAWumB,EAAMvmB,eAI1CtB,MAAO,CACL2+C,aAAc,CACZ9oB,OAAQ,SAAgB71B,GACtB,IACI0+C,EAAU1+C,EAAM81B,IAChBtkC,EAASvV,OAAOqM,OAClB,CAAErB,GAAIy3D,GACNl6D,EAAEk6D,GAASr3D,WAAa,IAJhBtP,KAMN8vC,MAAM3oB,OAAO1N,IAEnB8P,QAAS,SAAiBtB,GACxB,IACI0+C,EAAU1+C,EAAM81B,IAChBjO,EAFM9vC,KAEM8vC,MAAM5mC,IAAIy9D,GACtB72B,GAASA,EAAMvmB,SAAWumB,EAAMvmB,aAI1CiwB,OAAQ,CACNqtB,cAAe,SAAcC,EAAWpiE,QACxB,IAATA,IAAkBA,EAAO,IAEpB1E,KACN8vC,MAAMrmB,KAAK/kB,EAAKorC,MAAOprC,EAAK0U,UAElC2tD,eAAgB,SAAeD,EAAWpiE,QAC1B,IAATA,IAAkBA,EAAO,IAEpB1E,KACN8vC,MAAM/lB,MAAMrlB,EAAKorC,MAAOprC,EAAK0U,UAEnC4tD,gBAAiB,SAAeF,EAAWpiE,QAC3B,IAATA,IAAkBA,EAAO,IAEpB1E,KACN8vC,MAAMvhC,OAAO7J,EAAKorC,MAAOprC,EAAK0U,UAEpC6tD,kBAAmB,WACjB,IACInL,EAAWrvD,EAAE,6BACjB,GAAKqvD,EAASx6D,OAAd,CACA,IAAI4G,EAAW4zD,EAAS,IAAMA,EAAS,GAAG6I,QAC1C7I,EAASzpD,QAAQ,wBACbnK,GACFA,EAASye,KAAK,gBAAiBze,GANvBlI,KAQN2mB,KAAK,qBAAsBze,GAAY4zD,EAAS,IAR1C97D,KASFyZ,OAAOq2B,MAAM0W,sBATXxmD,KASuC8vC,MAAM/lB,YAOzDm9C,eAAiB,CACnBz9C,KAAM,SAAc09C,EAAQ/tD,GAC1B,IAAI7I,OAEY,IAAX42D,IAAoBA,EAAS,yBACjB,IAAZ/tD,IAAqBA,GAAU,GACpC,IAAI8P,EAAMlpB,KAENonE,EAAU36D,EAAE06D,GAAQ9xD,GAAG,GAC3B,GAAK+xD,GAAYA,EAAQ9lE,UACrB8lE,EAAQh5D,SAAS,gBAAkBg5D,EAAQh5D,SAAS,iBAAmBg5D,EAAQh5D,SAAS,iBAA5F,CAEA,IAOI8qD,EAPA5jB,EAAU8xB,EAAQ/iE,QAAQ,SAASgR,GAAG,GAC1C,GAAKigC,EAAQh0C,OAEb,IAAIg0C,EAAQr+B,KAAK,gBAAgB3V,OAajC,GAHA8lE,EAAQ/0D,QAAQ,kBAAmB,CAAE8mD,QAASA,IAC9CjwC,EAAIvC,KAAK,iBAAkBygD,EAAQ,GAAIjO,IAEnCD,EAAJ,CAEA,IAIInT,EAYAxf,EACA+d,EAjBA+iB,EAAanjE,OAAOqM,OAAO,CAAE6I,QAASA,GAAW8P,EAAIzP,OAAO6tD,KAAMF,EAAQ93D,WAE1Ei0C,EAAiB6jB,EAAQ/iE,QAAQ,iBAGjC+iE,EAAQ54D,KAAK,sBACfu3C,EAAct5C,EAAE26D,EAAQ54D,KAAK,uBAE1Bu3C,GAAeshB,EAAW5gB,YAC7BV,EAAcxC,EAAetsC,KAAK,mBACjB3V,SACfykD,EAAct5C,EAAE,qCAChB82C,EAAehuC,OAAOwwC,KAMtBshB,EAAWE,oBACbhhC,EAAY+O,EAAQ/qC,SAAS,YACdjJ,QACTg0C,EAAQ,GAAG9S,SAAU+D,EAAY+O,EAAQ,GAAG9S,OAAO+D,YAGvD8gC,EAAWG,qBACbljB,EAAahP,EAAQ/qC,SAAS,aACdjJ,SACdgjD,EAAahP,EAAQjxC,QAAQ,SAASkG,SAAS,aAE5C+5C,EAAWhjD,SACdgjD,EAAahP,EAAQjxC,QAAQ,UAAUkG,SAAS,cAIpD,IACIk9D,EADAC,EAAgBN,EAAQl0D,IAAI,aAE5Bw0D,GAAiBA,EAAc9lE,MAAM,WACvC6lE,GAAe,GAEjB,IAAIE,EAAiBP,EAAQ78D,SAAS,iBAElCq9D,EAAcn7D,EAAEhD,SAASa,cAAc,QAAQuD,SAAS,wBAC5Du5D,EAAQ7xD,OAAOqyD,GAEf,IAQIC,EARAC,EAAYV,EAAQ,GAAG9zD,YACvBy0D,EAAaX,EAAQ,GAAG1zD,aACxBs0D,EAAY1yB,EAAQ,GAAGhiC,YACvB+9C,EAAa/b,EAAQ,GAAG5hC,aAExBwkC,EAAW0vB,EAAY,GAAGt0D,aAAe00D,EACzCC,EAAYL,EAAY,GAAGl0D,cAAgB29C,EAG3C9qB,IAAc8gC,EAAWa,qBAAuBD,IAAc5W,IAChEwW,EAAkBrmD,SAAS+kB,EAAUrzB,IAAI,sBAAuB,IAC5DpO,OAAOsd,MAAMylD,KAAoBA,EAAkB,IAErDA,IACFI,GAAaJ,GAGf,IAUIM,EACAC,EAXAC,EAASnwB,EAAW4vB,EACpBQ,EAASL,EAAYF,EAErBp0D,EAASyzD,EAAQzzD,SACjB6gD,EAAalf,EAAQ3hC,SASzB,GARIk0D,IACFrT,EAAWpgD,KAAOyzD,EAAkB,GAEtCl0D,EAAOU,MAAQmgD,EAAWngD,KAKtBozD,EAAc,CAChB,IAAIc,EAAkBb,EACnB7mE,QAAQ,eAAgB,IACxBO,MAAM,KACNuT,KAAI,SAAUzF,GAAM,OAAOA,EAAG/N,UACjC,GAAIonE,GAAmBA,EAAgBjnE,OAAS,EAAG,CACjD,IAAIqqD,EAAQn8C,WAAW+4D,EAAgB,IACvCJ,EAAiBx0D,EAAOU,KAAOyzD,GAAa,EAAInc,GAAS,EACzDyc,EAAgBz0D,EAAOS,IAAMogD,EAAWpgD,IAAM2zD,GAAc,EAAIpc,GAAS,EACrEziC,EAAIwC,MAAOy8C,GAAkBf,EAAQ,GAAGlzD,iBAE5Ci0D,EAAiBf,EAAQ,GAAG/1B,WAC5B+2B,EAAgBhB,EAAQ,GAAGnS,WAAa1R,EAAejiD,OAASiiD,EAAe,GAAGvvC,UAAY,QAGhGm0D,EAAiBx0D,EAAOU,KACxB+zD,EAAgBz0D,EAAOS,IAAMogD,EAAWpgD,IACpC8U,EAAIwC,MAAOy8C,GAAkBf,EAAQ,GAAGlzD,YAI9Ck0D,IAAkB/W,EAAa4W,GAAa,EAE5C,IAAIO,EAAkBtwB,EAAW4vB,GAHjCK,IAAmBH,EAAY9vB,GAAY,GAIvChvB,EAAIwC,MACuCy8C,GAA5C53D,EAAS,CAACi4D,EAAiBL,IAAyC,GAAIK,EAAkBj4D,EAAO,IAEpG,IAkHIk4D,EACAnrC,EACA3J,EACAH,EACAC,EACAi1C,EACAC,EACA9rC,EACA9jB,EACA6vD,EACAC,EACAC,EA7HAC,EAAmBd,EAAYF,EAAaK,EAC5CY,GAAcR,EAAkBL,GAAkB,EAClDc,GAAcF,EAAmBX,GAAiB,EAClDf,EAAWE,kBAAoBhhC,GAAaA,EAAUjlC,SACpDilC,EAAUvvB,QAAQ,kBAAkB1V,OAEtC8lE,EAAQ,GAAG8B,qBAAsB,UAE1B9B,EAAQ,GAAG8B,oBAClBhgD,EAAIme,OAAO/yB,KAAKiyB,EAAW8gC,EAAWjuD,QAASiuD,EAAWa,uBAG1Db,EAAWG,mBAAqBljB,GAAcA,EAAWhjD,SACvDgjD,EAAWttC,QAAQ,mBAAmB1V,OAExC8lE,EAAQ,GAAG+B,sBAAuB,UAE3B/B,EAAQ,GAAG+B,qBAClBjgD,EAAIi7B,QAAQ7vC,KAAKgwC,EAAY+iB,EAAWjuD,WAGxC2sC,GACFA,EAAY73C,YAAY,qBAAqBL,SAAS,oBAExDu5D,EAAQl5D,YAAY,sBAChBm5D,EAAWjuD,SACbguD,EAAQv5D,SAAS,gBAEnBu5D,EAAQ/0D,QAAQ,aAChB6W,EAAIvC,KAAK,WAAYygD,EAAQ,IAc7BO,EACGz0D,IAAI,CACHF,MAAQklC,EAAW,KACnB3kC,OAAS00D,EAAY,OAEtBl4D,UAAW,gBAAkBmZ,EAAIwC,IAAOy8C,EAAiBa,GAAgBb,EAAiBa,GAAe,qBAAwB,EAAIX,EAAU,KAAQ,EAAIC,EAAU,KAExKlB,EACGr3D,UAAW,gBAAkBmZ,EAAIwC,KAAOs9C,EAAaA,GAAc,OAASC,EAAa,gBAAkBZ,EAAS,KAAOC,EAAS,KACnIjB,EAAWjuD,QACbguD,EAAQv0D,eAAc,WACpBA,OAGFA,IAoJFu0D,EAAQ,GAAGgC,oBAAsB,WAC/BlgD,EAAIvX,IAAI,SAAUi/C,GACdvtC,QAAQC,OAAS+jD,EAAW7b,eAC9BtiC,EAAIvX,IAAI,qBAAsB03D,GAC9BngD,EAAIvX,IAAI,mBAAoB23D,GAC5BpgD,EAAIvX,IAAI,mBAAoB43D,KAIhCrgD,EAAI5Y,GAAG,SAAUsgD,GACbvtC,QAAQC,OAAS+jD,EAAW7b,eAC9BtiC,EAAI5Y,GAAG,qBAAsB+4D,GAC7BngD,EAAI5Y,GAAG,mBAAoBg5D,GAC3BpgD,EAAI5Y,GAAG,mBAAoBi5D,KAxU7B,SAASpQ,IACPD,GAAY,EA2Id,SAASrmD,IACPyiC,EAAQznC,SAAS,yBACbqb,EAAI7E,OAAOC,KAAOi/B,EAAejiD,SACnCiiD,EAAerwC,IAAI,SAAYqwC,EAAe,GAAG7vC,aAAe,EAAK,MACrErH,YAAW,WACTk3C,EAAerwC,IAAI,SAAU,QAGjCk0D,EAAQv5D,SAAS,eACjBu5D,EAAQl5D,YAAY,gBACpBk5D,EAAQ/0D,QAAQ,eAChB6W,EAAIvC,KAAK,aAAcygD,EAAQ,GAAI9xB,EAAQ,IAmB7C,SAASsb,IACP,IAAIrgD,EAEJ62D,EAAQl5D,YAAY,sBACpB45D,EAAYV,EAAQ,GAAG9zD,YACvBy0D,EAAaX,EAAQ,GAAG1zD,aACxBs0D,EAAY1yB,EAAQ,GAAGhiC,YACvB+9C,EAAa/b,EAAQ,GAAG5hC,aACxBwkC,EAAW0vB,EAAY,GAAGt0D,aAAe00D,EACzCC,EAAYL,EAAY,GAAGl0D,cAAgB29C,EAE3CwW,EAAkB,EACdthC,IAAc8gC,EAAWa,qBAAuBD,IAAc5W,IAChEwW,EAAkBrmD,SAAS+kB,EAAUrzB,IAAI,sBAAuB,IAC5DpO,OAAOsd,MAAMylD,KAAoBA,EAAkB,IAErDA,IACFI,GAAaJ,GAIfQ,EAASnwB,EAAW4vB,EACpBQ,EAASL,EAAYF,EAErBX,EAAQr3D,UAAU,qCAClB4D,EAASyzD,EAAQzzD,SACjB6gD,EAAalf,EAAQ3hC,SACjBk0D,IACFrT,EAAWpgD,KAAOyzD,EAAkB,GAEtCl0D,EAAOU,MAAQmgD,EAAWngD,KAC1BV,EAAOS,KAAOogD,EAAWpgD,IAEzB+zD,EAAiBx0D,EAAOU,MAAQ2zD,EAAY9vB,GAAY,EACpDhvB,EAAIwC,MAAOy8C,GAAkBf,EAAQ,GAAGlzD,YAC5Ck0D,EAAgBz0D,EAAOS,KAAOi9C,EAAa4W,GAAa,EAExDO,EAAkBtwB,EAAW4vB,EAAYK,EACzCY,EAAmBd,EAAYF,EAAaK,EACxCl/C,EAAIwC,MACuCy8C,GAA5C53D,EAAS,CAACi4D,EAAiBL,IAAyC,GAAIK,EAAkBj4D,EAAO,IAEpGy4D,GAAcR,EAAkBL,GAAkB,EAClDc,GAAcF,EAAmBX,GAAiB,EAElDhB,EAAQr3D,UAAW,gBAAkBmZ,EAAIwC,KAAOs9C,EAAaA,GAAc,OAASC,EAAa,gBAAkBZ,EAAS,KAAOC,EAAS,KAC5IX,EACGz0D,IAAI,CACHF,MAAQklC,EAAW,KACnB3kC,OAAS00D,EAAY,OAEtBl4D,UAAW,gBAAkBmZ,EAAIwC,IAAOy8C,EAAiBa,GAAgBb,EAAiBa,GAAe,qBAAwB,EAAIX,EAAU,KAAQ,EAAIC,EAAU,KAe1K,SAASe,EAAax4D,GACfpE,EAAEoE,EAAEtI,QAAQyO,QAAQowD,GAAS9lE,QAC7B8lE,EAAQh5D,SAAS,iBACtB06D,EAAoB1B,EAAQnwD,KAAKowD,EAAWmC,cAM1Cf,EAJEK,EAAkB,IACjBA,EAAkB,KAAOnB,EAAe,KACvCmB,EAAkB,GAAGz6D,SAASwC,EAAEtI,QAEpB,EAEAugE,EAAkB90D,YAEpCspB,GAAY,EACZ9J,EAAc3iB,EAAEomB,cAAc,GAAGG,MACjC3D,EAAc5iB,EAAEomB,cAAc,GAAGI,MACjCwF,OAAc18B,EACdyoE,GAAM,EACNC,GAAM,GAER,SAASS,EAAYz4D,GACnB,GAAKysB,EAAL,CAcA,GAbAorC,EAAY73D,EAAEomB,cAAc,GAAGG,MAC/BuxC,EAAY93D,EAAEomB,cAAc,GAAGI,WACJ,IAAhBwF,IACTA,KAAiBA,GAAevkB,KAAKuJ,IAAI8mD,EAAYl1C,GAAenb,KAAKuJ,IAAI6mD,EAAYl1C,KAEtFq1C,GAAQD,KACN/rC,GAAehsB,EAAEomB,cAAc,GAAGwyC,SAAW,GAChDZ,GAAM,EAEND,GAAM,IAIJC,IAAOD,GAASA,GAAyB,IAAlBH,EAG3B,OAFAnrC,GAAY,OACZ3J,GAAU,GAGPA,GACHyzC,EAAQl5D,YAAY,sBAGtBylB,GAAU,IACV5a,EAAW6vD,EAAMtwD,KAAKC,KAAKowD,EAAYl1C,GAAe,IAAK,GAAKnb,KAAKC,KAAKmwD,EAAYl1C,IAAgBs0C,EAAY,GAAI,IACtG,GAAKc,GAAQC,KACvBD,GAAO1/C,EAAI7E,OAAOC,KAAOwkD,EAAkB,KAAOnB,EAAe,KACnEmB,EAAkB51D,IAAI,6BAA8B,QACpD41D,EAAkB90D,UAAU,IAE9BnD,EAAEmmB,kBAGAje,EAAW,IAAKA,EAAWT,KAAKuoB,IAAK9nB,EAAU,KAC/CA,GAAY6vD,EAAM,IAAM,MAC1BtrC,GAAY,EACZ3J,GAAU,EACVzK,EAAIo+C,KAAKv9C,MAAMq9C,IAEfA,EAAQr3D,UAAW,gBAAkBmZ,EAAIwC,KAAOs9C,EAAaA,GAAc,OAASC,EAAa,gBAAmBZ,GAAU,EAAe,GAAXtvD,GAAmB,KAAQuvD,GAAU,EAAe,GAAXvvD,GAAmB,MAGlM,SAASwwD,IACFjsC,GAAc3J,IACnB2J,GAAY,EACZ3J,GAAU,EACNzK,EAAI7E,OAAOC,KACbwkD,EAAkB51D,IAAI,6BAA8B,IAElD6F,GAAY,GACdmQ,EAAIo+C,KAAKv9C,MAAMq9C,GAEfA,EACGv5D,SAAS,sBACTkC,UAAW,gBAAkBmZ,EAAIwC,KAAOs9C,EAAaA,GAAc,OAASC,EAAa,gBAAkBZ,EAAS,KAAOC,EAAS,QAoB7Iv+C,MAAO,SAAeo9C,EAAQ/tD,QACZ,IAAX+tD,IAAoBA,EAAS,qCACjB,IAAZ/tD,IAAqBA,GAAU,GAEpC,IAAI8P,EAAMlpB,KACNonE,EAAU36D,EAAE06D,GAAQ9xD,GAAG,GAC3B,GAAK+xD,GAAYA,EAAQ9lE,QACpB8lE,EAAQh5D,SAAS,iBAAkBg5D,EAAQh5D,SAAS,kBAAmBg5D,EAAQh5D,SAAS,gBAA7F,CAEA,IAAIu5D,EAAiBP,EAAQ78D,SAAS,iBAClCg5C,EAAiB6jB,EAAQ/iE,QAAQ,iBAEjCixC,EAAU8xB,EAAQ/iE,QAAQ,SAASgR,GAAG,GAC1C,GAAKigC,EAAQh0C,OAAb,CAEA,IAGIilC,EACA+d,EAEAyB,EANAshB,EAAanjE,OAAOqM,OAAO,CAAE6I,QAASA,GAAW8P,EAAIzP,OAAO6tD,KAAMF,EAAQ93D,WAC1Ew5D,EAAoB1B,EAAQnwD,KAAKowD,EAAWmC,cAM5CpC,EAAQ54D,KAAK,sBACfu3C,EAAct5C,EAAE26D,EAAQ54D,KAAK,sBAE3B64D,EAAW5gB,WACbV,EAAcqhB,EAAQ/iE,QAAQ,iBAAiB4S,KAAK,mBAGlDowD,EAAWE,oBACbhhC,EAAY+O,EAAQ/qC,SAAS,YACdjJ,QACTg0C,EAAQ,GAAG9S,SAAU+D,EAAY+O,EAAQ,GAAG9S,OAAO+D,WAErDA,GAAaA,EAAUjlC,SAAW8lE,EAAQ,GAAG8B,qBAC/ChgD,EAAIme,OAAO7yB,KAAK+xB,EAAW8gC,EAAWjuD,UAGtCiuD,EAAWG,qBACbljB,EAAahP,EAAQ/qC,SAAS,aACdjJ,SACdgjD,EAAahP,EAAQjxC,QAAQ,SAASkG,SAAS,aAE5C+5C,EAAWhjD,SACdgjD,EAAahP,EAAQjxC,QAAQ,UAAUkG,SAAS,aAE9C+5C,GAAcA,EAAWhjD,SAAW8lE,EAAQ,GAAG+B,sBACjDjgD,EAAIi7B,QAAQ3vC,KAAK8vC,EAAY+iB,EAAWjuD,UAI5Ck8B,EAAQpnC,YAAY,yBAEhBgb,EAAI7E,OAAOC,KAAOi/B,EAAejiD,SACnCiiD,EAAerwC,IAAI,SAAYqwC,EAAe,GAAG7vC,aAAe,EAAK,MACrErH,YAAW,WACTk3C,EAAerwC,IAAI,SAAU,QAI7B6yC,GAAeA,EAAYzkD,QAC7BykD,EAAY73C,YAAY,oBAAoBL,SAAS,qBAGvDu5D,EAAQl5D,YAAY,kCAChBm5D,EAAWjuD,QACbguD,EAAQv5D,SAAS,gBAEjBu5D,EAAQv5D,SAAS,sBAEnBu5D,EAAQr3D,UAAU,IAClBq3D,EAAQ/0D,QAAQ,cAChB6W,EAAIvC,KAAK,YAAaygD,EAAQ,GAAI9xB,EAAQ,IAE1C,IAAIo0B,EAAetC,EAAQh5D,SAAS,iCAkBhCs7D,GACF/B,EACGz0D,IAAI,CACHF,MAAO,GACPO,OAAQ,KAIdo0D,EACG53D,UAAU,IACViE,UAAU,EAAGoF,EAAU,IAAM,GAC5B0vD,EAAkBxnE,QAAUwnE,EAAkB,KAAOnB,EAAe,IACtEmB,EAAkB90D,UAAU,EAAGoF,EAAU,IAAM,GAE7CA,EACFuuD,EAAe90D,eAAc,WAC3BA,OAGFA,IAGEu0D,EAAQ,GAAGgC,sBACbhC,EAAQ,GAAGgC,6BACJhC,EAAQ,GAAGgC,sBAxCpB,SAASv2D,IACF62D,GACH/B,EACGz0D,IAAI,CACHF,MAAO,GACPO,OAAQ,KAGVwyC,GAAeA,EAAYzkD,QAC7BykD,EAAY73C,YAAY,sCAE1Bk5D,EAAQl5D,YAAY,mCACpBk5D,EAAQ/0D,QAAQ,eAChB+0D,EAAQnwD,KAAK,yBAAyB9I,SACtC+a,EAAIvC,KAAK,aAAcygD,EAAQ,GAAI9xB,EAAQ,MA6B/C/mC,OAAQ,SAAgB44D,EAAQ/tD,QACd,IAAX+tD,IAAoBA,EAAS,oBAElC,IACIC,EAAU36D,EAAE06D,GAAQ9xD,GAAG,GACtB+xD,EAAQ9lE,SACT8lE,EAAQh5D,SAAS,eAHXpO,KAIJsnE,KAAKv9C,MAAMq9C,EAAShuD,GAJhBpZ,KAMJsnE,KAAK79C,KAAK29C,EAAShuD,MAKzBuwD,KAAO,CACTnlE,KAAM,OACNiV,OAAQ,CACN6tD,KAAM,CACJC,kBAAkB,EAClBW,qBAAqB,EACrBV,mBAAmB,EACnBgC,aAAc,gBACdhe,cAAc,EACdhF,sBAAsB,EACtBC,UAAU,IAGdt/B,OAAQ,WAENjK,MAAM5U,OADItI,KACQ,CAChBsnE,KAAM,CACJ79C,KAAMy9C,eAAez9C,KAAKpO,KAHpBrb,MAIN+pB,MAAOm9C,eAAen9C,MAAM1O,KAJtBrb,MAKNuO,OAAQ24D,eAAe34D,OAAO8M,KALxBrb,UASZsQ,GAAI,CACFwyC,aAAc,SAAsBrN,GAMlC,GALUz1C,KACFyZ,OAAO6tD,KAAKC,kBAAoB9xB,EAAKlO,UAAYkO,EAAKnsB,IAAIrS,KAAK,gCAAgC3V,QAD7FtB,KAEJqnC,OAAO/yB,KAAKmhC,EAAKlO,UAAU,EAFvBvnC,KAEiCyZ,OAAO6tD,KAAKY,qBAF7CloE,KAKFyZ,OAAO6tD,KAAKE,mBAAqB/xB,EAAKnsB,IAAIrS,KAAK,gCAAgC3V,OAAQ,CAC7F,IAAIgjD,EAAa7O,EAAKnsB,IAAI/e,SAAS,YAC9B+5C,EAAWhjD,SACdgjD,EAAa7O,EAAKnsB,IAAIjlB,QAAQ,SAASkG,SAAS,aAE7C+5C,EAAWhjD,SACdgjD,EAAa7O,EAAKnsB,IAAIjlB,QAAQ,UAAUkG,SAAS,aAE/C+5C,GAAcA,EAAWhjD,QAbrBtB,KAcFmkD,QAAQ7vC,KAAKgwC,MAKzB9K,OAAQ,CACNowB,cAAe,SAAmBvwB,EAAY30C,GAClC1E,KACNsnE,KAAKv9C,MAAMrlB,EAAK4iE,KAAM5iE,EAAK0U,UAEjCywD,aAAc,SAAmBxwB,EAAY30C,GACjC1E,KACNsnE,KAAK79C,KAAK/kB,EAAK4iE,KAAM5iE,EAAK0U,UAEhC0wD,mBAAoB,SAA8BzwB,EAAY30C,EAAMmM,GAE9DwoC,EAAWjrC,SAAS,gBAAkBirC,EAAWjrC,SAAS,iBAAmBirC,EAAWjrC,SAAS,iBACjG3B,EAAEoE,EAAEtI,QAAQyO,QAAQ,mCAAmC1V,QAFjDtB,KAGNsnE,KAAK79C,KAAK4vB,IAEhB0wB,oBAAqB,WACnB,IACIlf,GAAc,EADR7qD,KAEFyZ,OAAO6tD,KAAK9gB,uBAAwBqE,GAAc,GAC1D,IAAImf,EAAgBv9D,EAAE,gBACjBu9D,EAAc1oE,SACwC,SAAvD0oE,EAAcx7D,KAAK,gCACrBq8C,GAAc,EACkD,UAAvDmf,EAAcx7D,KAAK,kCAC5Bq8C,GAAc,GAEZA,GAVM7qD,KAUasnE,KAAKv9C,MAAMigD,OAKpCC,KAAO,CACTzlE,KAAM,QAIJ0lE,WAAa,CACfC,MAAO,SAAeC,EAAM1lE,GAC1B,IACI2lE,EAASD,EAETE,EAAU79D,EAAE29D,GACZE,EAAQhpE,QAAUgpE,EAAQr5D,GAAG,SAAWq5D,EAAQ97D,KAAK,QACvD67D,EAASC,EAAQ97D,KAAK,OALdxO,KAQNoqE,KAAK1lE,KAAM,QAAU2lE,GAAW3lE,EAGpC4G,IAAIgrC,aAAc,UAAY+zB,GAAWzmE,KAAKC,UAAUa,IAE1DwE,IAAK,SAAakhE,GAChB,IACIC,EAASD,EAETE,EAAU79D,EAAE29D,GAKhB,OAJIE,EAAQhpE,QAAUgpE,EAAQr5D,GAAG,SAAWq5D,EAAQ97D,KAAK,QACvD67D,EAASC,EAAQ97D,KAAK,OAGpBlD,IAAIgrC,aAAc,UAAY+zB,GACzBzmE,KAAK6tB,MAAMnmB,IAAIgrC,aAAc,UAAY+zB,IATxCrqE,KAWFoqE,KAAK1lE,KAAM,QAAU2lE,GAXnBrqE,KAYGoqE,KAAK1lE,KAAM,QAAU2lE,QADlC,GAKFl8D,OAAQ,SAAgBi8D,GACtB,IACIC,EAASD,EAETE,EAAU79D,EAAE29D,GACZE,EAAQhpE,QAAUgpE,EAAQr5D,GAAG,SAAWq5D,EAAQ97D,KAAK,QACvD67D,EAASC,EAAQ97D,KAAK,OALdxO,KASFoqE,KAAK1lE,KAAM,QAAU2lE,KATnBrqE,KAUJoqE,KAAK1lE,KAAM,QAAU2lE,GAAW,UAV5BrqE,KAWGoqE,KAAK1lE,KAAM,QAAU2lE,IAI9B/+D,IAAIgrC,aAAc,UAAY+zB,KAChC/+D,IAAIgrC,aAAc,UAAY+zB,GAAW,GACzC/+D,IAAIgrC,aAAai0B,WAAY,UAAYF,MAM3CG,YAAc,CAChBj+C,KAAM,SAAck+C,GAClB,IAAIvhD,EAAMlpB,KACNsqE,EAAU79D,EAAEg+D,GACZJ,EAASC,EAAQ97D,KAAK,MAC1B,GAAK67D,EAAL,CACA,IAAIK,EAAcxhD,EAAIkhD,KAAKO,YAAYN,GACnCK,GACFxhD,EAAIkhD,KAAKQ,aAAaN,EAASI,GASjCJ,EAAQh6D,GAAG,iBAPX,WACE,IAAI5L,EAAOwkB,EAAIkhD,KAAKS,cAAcP,GAC7B5lE,IACLwkB,EAAIkhD,KAAKU,cAAcT,EAAQ3lE,GAC/B4lE,EAAQj4D,QAAQ,iBAAkB3N,GAClCwkB,EAAIvC,KAAK,gBAAiB2jD,EAAQ,GAAI5lE,SAI1C6kB,QAAS,SAAiBkhD,GACVh+D,EAAEg+D,GACR94D,IAAI,mBAKhB,SAASo5D,WAAWN,GAClB,IACIH,EAAU79D,EAAEg+D,GAAQp1D,GAAG,GAC3B,GAAuB,IAAnBi1D,EAAQhpE,OAAZ,CAGA,IAAIoD,EAAO,GAGPsmE,EAAY,CAAC,SAAU,QAAS,SAAU,QAC1CC,EAAY,GAyChB,OAxCAX,EAAQrzD,KAAK,2BAA2B3Q,MAAK,SAAU4kE,EAAYC,GACjE,IAAIC,EAAW3+D,EAAE0+D,GACjB,IAAIC,EAASh9D,SAAS,uBAAwBg9D,EAASh9D,SAAS,iBAAhE,CAGA,IAAI5J,EAAO4mE,EAAS58D,KAAK,QACrBnM,EAAO+oE,EAAS58D,KAAK,QACrB68D,EAAMF,EAAQnhE,SAASoD,cAC3B,KAAI49D,EAAUrpE,QAAQU,IAAS,MAC3B4oE,EAAUtpE,QAAQ6C,IAAS,IAAMA,EACrC,GAAY,WAAR6mE,GAAoBD,EAASlkE,KAAK,YACpC+jE,EAAUvpE,KAAK8C,GACfE,EAAKF,GAAQ,GACb8lE,EAAQrzD,KAAM,gBAAmBzS,EAAO,aAAe8B,MAAK,SAAUK,EAAOuI,GACvEA,EAAGU,UAAYlL,EAAKF,GAAM9C,KAAKwN,EAAGR,eAGxC,OAAQrM,GACN,IAAK,WACH4oE,EAAUvpE,KAAK8C,GACfE,EAAKF,GAAQ,GACb8lE,EAAQrzD,KAAM,eAAkBzS,EAAO,MAAQ8B,MAAK,SAAUK,EAAOuI,GAC/DA,EAAGo8D,SAAW5mE,EAAKF,GAAM9C,KAAKwN,EAAGR,UAEvC,MACF,IAAK,QACHu8D,EAAUvpE,KAAK8C,GACf8lE,EAAQrzD,KAAM,eAAkBzS,EAAO,MAAQ8B,MAAK,SAAUK,EAAOuI,GAC/DA,EAAGo8D,UAAW5mE,EAAKF,GAAQ0K,EAAGR,UAEpC,MACF,QACEhK,EAAKF,GAAQ4mE,EAAS37D,WAK9B66D,EAAQj4D,QAAQ,cAAe3N,GA/CrB1E,KAgDN2mB,KAAK,aAAc2jD,EAAQ,GAAI5lE,GAE5BA,GAET,SAAS6mE,aAAad,EAAQe,GAC5B,IACIlB,EAAU79D,EAAEg+D,GAAQp1D,GAAG,GAC3B,GAAKi1D,EAAQhpE,OAAb,CAEA,IAAIoD,EAAO8mE,EACPnB,EAASC,EAAQ97D,KAAK,MAM1B,IAJK9J,GAAQ2lE,IACX3lE,EARQ1E,KAQGoqE,KAAKO,YAAYN,IAGzB3lE,EAAL,CAGA,IAAIsmE,EAAY,CAAC,SAAU,QAAS,SAAU,QAC1CC,EAAY,GAEhBX,EAAQrzD,KAAK,2BAA2B3Q,MAAK,SAAU4kE,EAAYC,GACjE,IAAIC,EAAW3+D,EAAE0+D,GACjB,IAAIC,EAASh9D,SAAS,uBAAwBg9D,EAASh9D,SAAS,iBAAhE,CAGA,IAAI5J,EAAO4mE,EAAS58D,KAAK,QACrBnM,EAAO+oE,EAAS58D,KAAK,QACrB68D,EAAMF,EAAQnhE,SAASoD,cAC3B,QAA0B,IAAf1I,EAAKF,IAAwC,OAAfE,EAAKF,MAC1CwmE,EAAUrpE,QAAQU,IAAS,MAC3B4oE,EAAUtpE,QAAQ6C,IAAS,IAAMA,EAArC,CACA,GAAY,WAAR6mE,GAAoBD,EAASlkE,KAAK,YACpC+jE,EAAUvpE,KAAK8C,GACf8lE,EAAQrzD,KAAM,gBAAmBzS,EAAO,aAAe8B,MAAK,SAAUK,EAAOuI,GAC3E,IAAIu8D,EAAWv8D,EACXxK,EAAKF,GAAM7C,QAAQuN,EAAGR,QAAU,EAAK+8D,EAAS77D,UAAW,EACtD67D,EAAS77D,UAAW,UAG7B,OAAQvN,GACN,IAAK,WACH4oE,EAAUvpE,KAAK8C,GACf8lE,EAAQrzD,KAAM,eAAkBzS,EAAO,MAAQ8B,MAAK,SAAUK,EAAOuI,GACnE,IAAIw8D,EAAax8D,EACbxK,EAAKF,GAAM7C,QAAQuN,EAAGR,QAAU,EAAKg9D,EAAWJ,SAAU,EACvDI,EAAWJ,SAAU,KAE9B,MACF,IAAK,QACHL,EAAUvpE,KAAK8C,GACf8lE,EAAQrzD,KAAM,eAAkBzS,EAAO,MAAQ8B,MAAK,SAAUK,EAAOuI,GACnE,IAAIy8D,EAAUz8D,EACVxK,EAAKF,KAAU0K,EAAGR,MAASi9D,EAAQL,SAAU,EAC1CK,EAAQL,SAAU,KAE3B,MACF,QACEF,EAAS37D,IAAI/K,EAAKF,IAIZ,WAAR6mE,GAA4B,UAARA,GAA2B,aAARA,GACzCD,EAAS/4D,QAAQ,SAAU,iBAG/Bi4D,EAAQj4D,QAAQ,gBAAiB3N,GA9DvB1E,KA+DN2mB,KAAK,eAAgB2jD,EAAQ,GAAI5lE,KAGvC,SAASknE,eACP,IAAI1iD,EAAMlpB,KAiDVyM,EAAEjD,KAAK8G,GAAG,gBAAiB,yDA/C3B,SAAwBO,EAAGg7D,GACzB,IAAIvB,EAAU79D,EAAEzM,MAChB,IAAe,WAAX6Q,EAAExO,MAAsBioE,EAAQl8D,SAAS,gCAC9B,WAAXyC,EAAExO,MAAqBwO,EAAEmmB,iBAEd,WAAXnmB,EAAExO,MAAkC,aAAbwpE,GAA3B,CAEA,IAMInnE,EANA8hB,GAAU8jD,EAAQ97D,KAAK,WAAa,OAAOlB,cAC3CoiB,EAAc46C,EAAQpjE,KAAK,YAAcojE,EAAQ97D,KAAK,WAEtD4P,EAAMksD,EAAQ97D,KAAK,UACvB,GAAK4P,EAKD1Z,EAFW,SAAX8hB,EACkB,sCAAhBkJ,EACKxG,EAAIkhD,KAAKS,cAAcP,EAAQ,IAE/B,IAAIh/D,IAAIulB,SAASy5C,EAAQ,IAG3BptD,MAAMsC,gBAAgB0J,EAAIkhD,KAAKS,cAAcP,EAAQ,KAG9DphD,EAAI+B,QAAQ,CACVzE,OAAQA,EACRpI,IAAKA,EACLsR,YAAaA,EACbhrB,KAAMA,EACNswC,WAAY,SAAoB1pB,GAC9Bg/C,EAAQj4D,QAAQ,sBAAuB,CAAE3N,KAAMA,EAAM4mB,IAAKA,IAC1DpC,EAAIvC,KAAK,qBAAsB2jD,EAAQ,GAAI5lE,EAAM4mB,IAEnD6G,MAAO,SAAe7G,GACpBg/C,EAAQj4D,QAAQ,iBAAkB,CAAE3N,KAAMA,EAAM4mB,IAAKA,IACrDpC,EAAIvC,KAAK,gBAAiB2jD,EAAQ,GAAI5lE,EAAM4mB,IAE9CrR,SAAU,SAAkBqR,GAC1Bg/C,EAAQj4D,QAAQ,oBAAqB,CAAE3N,KAAMA,EAAM4mB,IAAKA,IACxDpC,EAAIvC,KAAK,mBAAoB2jD,EAAQ,GAAI5lE,EAAM4mB,IAEjD4G,QAAS,SAAiBN,EAAUrG,EAAQD,GAC1Cg/C,EAAQj4D,QAAQ,mBAAoB,CAAE3N,KAAMA,EAAM4mB,IAAKA,IACvDpC,EAAIvC,KAAK,kBAAmB2jD,EAAQ,GAAI5lE,EAAM4mB,UAOtD,IAAIwgD,KAAO,CACTtnE,KAAM,OACN2iB,OAAQ,WAENjK,MAAM5U,OADItI,KACQ,CAChBoqE,KAAM,CACJ1lE,KAAM,GACNomE,cAAeZ,WAAWC,MAAM9uD,KAJ1Brb,MAKN2qE,YAAaT,WAAWhhE,IAAImS,KALtBrb,MAMN+rE,eAAgB7B,WAAW/7D,OAAOkN,KAN5Brb,MAON6qE,cAAeE,WAAW1vD,KAPpBrb,MAQN4qE,aAAcW,aAAalwD,KARrBrb,MASNgsE,QAAS,CACPz/C,KAAMi+C,YAAYj+C,KAAKlR,KAVnBrb,MAWJupB,QAASihD,YAAYjhD,QAAQlO,KAXzBrb,WAgBZsQ,GAAI,CACFic,KAAM,WAEJq/C,aAAa1lE,KADHlG,OAGZihE,gBAAiB,SAAyBz1B,GACxC,IAAItiB,EAAMlpB,KACVyM,EAAE++B,GAAOv0B,KAAK,oBAAoB3Q,MAAK,SAAUK,EAAO8jE,GACtDvhD,EAAIkhD,KAAK4B,QAAQziD,QAAQkhD,OAG7BnX,WAAY,SAAoB9nB,GAC9B,IAAItiB,EAAMlpB,KACVyM,EAAE++B,GAAOv0B,KAAK,oBAAoB3Q,MAAK,SAAUK,EAAO8jE,GACtDvhD,EAAIkhD,KAAK4B,QAAQz/C,KAAKk+C,OAG1B5nB,iBAAkB,SAA0BpN,GAC1C,IAAIvsB,EAAMlpB,KACVy1C,EAAKnsB,IAAIrS,KAAK,oBAAoB3Q,MAAK,SAAUK,EAAO8jE,GACtDvhD,EAAIkhD,KAAK4B,QAAQziD,QAAQkhD,OAG7BznB,SAAU,SAAkBvN,GAC1B,IAAIvsB,EAAMlpB,KACVy1C,EAAKnsB,IAAIrS,KAAK,oBAAoB3Q,MAAK,SAAUK,EAAO8jE,GACtDvhD,EAAIkhD,KAAK4B,QAAQz/C,KAAKk+C,SAM1BwB,MAAQ,CACVC,YAAa,CAAC,WAAY,SAAU,SAAU,QAAS,QAAS,SAChEC,8BAA+B,WAC7B,IAAIC,EAAY3/D,EAAEjD,IAAIc,cAAc,aACpC8hE,EAAUv+D,SAAS,6BACnBu+D,EAAUllE,KAAK,CACb+nD,UAAU,EACVod,UAAU,IAEZJ,MAAMK,wBAA0BF,GAElCE,6BAAyBnsE,EACzBosE,eAAgB,SAAwBC,GACtC,IACIC,EAAchgE,EAAE+/D,GACfP,MAAMK,yBACTL,MAAME,gCAER,IAAIC,EAAYH,MAAMK,wBACtB,GAAKG,EAAYnrE,QACZmrE,EAAYr+D,SAAS,aAA1B,CACuD,IAAnD69D,MAAMK,wBAAwBjoE,UAAU/C,QARlCtB,KASJ8F,KAAKyP,OAAO62D,GAGlB,IAAI/4D,EAAS/H,IAAIU,iBAAiBygE,EAAY,IAC9C,8OAAgPrrE,MAAM,KAAK2C,SAAQ,SAAU0G,GAC3Q,IAAIiiE,EAAar5D,EAAO5I,GACpB,6CAA+CrJ,MAAM,KAAKO,QAAQ8I,IAAU,IAC9EiiE,EAAaA,EAAW7rE,QAAQ,IAAK,MAEvCurE,EAAUl5D,IAAIzI,EAAOiiE,MAEvB,IAAIC,EAAgBF,EAAY,GAAGG,aAEnCR,EAAU38D,IAAI,IACd,IAAIo9D,EAAgBT,EAAU,GAAG/zD,aAEjC+zD,EAAU38D,IAAIg9D,EAAYh9D,OAC1B28D,EAAUl5D,IAAI,SAAU,GACxB,IAAImF,EAAe+zD,EAAU,GAAG/zD,aAE5Bs0D,IAAkBt0D,IAChBA,EAAew0D,EACjBJ,EAAYv5D,IAAI,SAAWmF,EAAe,MACjCA,EAAes0D,GACxBF,EAAYv5D,IAAI,SAAU,KAExBmF,EAAew0D,GAAiBx0D,EAAes0D,KACjDF,EAAYp6D,QAAQ,kBAAmB,CAAEw6D,cAAeA,EAAeF,cAAeA,EAAet0D,aAAcA,IApC7GrY,KAqCF2mB,KAAK,iBAAkB,CAAEkmD,cAAeA,EAAeF,cAAeA,EAAet0D,aAAcA,QAI7GshB,SAAU,SAAkBwxC,GAC1B,IAAIC,EAAW3+D,EAAE0+D,GACjB,IAAKC,EAAS9pE,OAAU,OAAO,EAC/B,IAAIwrE,EAAe1B,EAAS/mE,QAAQ,eAChC0oE,EAAe3B,EAAS/mE,QAAQ,UAMpC,SAAS2oE,IACH5B,EAAS,GAAG6B,qBACd7B,EAAS,GAAG8B,UAAW,GANrB9B,EAAS,GAAG6B,qBACd7B,EAAS,GAAG8B,UAAW,GAS3B,IAAIC,EAAW/B,EAAS,GAAG+B,SACvBC,EAAoBhC,EAAS97D,UAAU+9D,cAAgBjC,EAAS,GAAGgC,mBAAqB,GAC5F,IAAKD,EAEH,OADAH,KACO,EAET,IAAKG,EAASG,MAAO,CACnB,IAAIC,EAAWnC,EAAS30D,QAAQ,mDAgBhC,OAfI22D,IACsB,IAApBG,EAASjsE,SACXisE,EAAW9gE,EAAG,gBAAmBsgE,EAAazrE,OAAS,sBAAwB,4BAA8B,aACpG8U,YAAYg1D,GAEvBmC,EAAS14D,KAAKu4D,IAEZG,EAASjsE,OAAS,IACpBwrE,EAAaj/D,SAAS,iCACtBk/D,EAAal/D,SAAS,6BAExBi/D,EAAaj/D,SAAS,sBACtBk/D,EAAal/D,SAAS,iBACtBu9D,EAASv9D,SAAS,iBAClBm/D,KACO,EAMT,OAJAF,EAAa5+D,YAAY,oDACzB6+D,EAAa7+D,YAAY,0CACzBk9D,EAASl9D,YAAY,iBACrB8+D,KACO,GAETQ,eAAgB,SAAwBt+D,GACtC,IAAIga,EAAMlpB,KAKV,OAJgByM,EAAEyC,GACf+H,KAAK,2BACLxC,UACAE,KAAI,SAAUw2D,GAAW,OAAOjiD,EAAIukD,MAAM9zC,SAASwxC,MACrCxpE,SAAQ,GAAS,GAEpC2Z,MAAO,SAAe6vD,GACpB,IAAIC,EAAW3+D,EAAE0+D,GACb9oE,EAAO+oE,EAAS58D,KAAK,QACrBy9D,MAAMC,YAAYvqE,QAAQU,IAAS,IACvC+oE,EAAS/mE,QAAQ,eAAewJ,SAAS,sBACzCu9D,EAAS/mE,QAAQ,UAAUwJ,SAAS,iBACpCu9D,EAASv9D,SAAS,mBAEpB9D,KAAM,SAAcohE,GAClB,IAAIC,EAAW3+D,EAAE0+D,GACjBC,EAAS/mE,QAAQ,eAAe6J,YAAY,sBAC5Ck9D,EAAS/mE,QAAQ,UAAU6J,YAAY,iBACvCk9D,EAASl9D,YAAY,kBAEvBw/D,gBAAiB,SAAyBvC,GACxC,IACIC,EAAW3+D,EAAE0+D,GAIjB,GAHKC,EAASn6D,GAAG,4DACfm6D,EAAWA,EAASn0D,KAAK,0DAA0D5B,GAAG,IAEnF+1D,EAAS9pE,OAAd,CACA,IACIoN,EAEsDA,EAHlC08D,EAAS,GAAGuC,aAAa,mBAG3CvC,EAASn0D,KAAK,4BAA4B3V,OAAkB,GACjD8pE,EAASv+D,OAEhBu+D,EAAS37D,MAEnB,IAAIq9D,EAAe1B,EAAS/mE,QAAQ,eAChC0oE,EAAe3B,EAAS/mE,QAAQ,UAC/BqK,GAA2B,iBAAVA,GAAuC,KAAjBA,EAAMvN,QAAoB2B,MAAMC,QAAQ2L,IAAUA,EAAMpN,OAAS,GAC3GwrE,EAAaj/D,SAAS,yBACtBk/D,EAAal/D,SAAS,oBACtBu9D,EAASv9D,SAAS,oBAClBu9D,EAAS/4D,QAAQ,kBApBTrS,KAqBJ2mB,KAAK,gBAAiBykD,EAAS,MAEnC0B,EAAa5+D,YAAY,yBACzB6+D,EAAa7+D,YAAY,oBACzBk9D,EAASl9D,YAAY,oBACrBk9D,EAAS/4D,QAAQ,eA1BTrS,KA2BJ2mB,KAAK,aAAcykD,EAAS,OAGpCwC,eAAgB,SAAwBzC,EAASh7D,EAAU09D,EAAUt/B,QACjD,IAAbp+B,IAAsBA,EAAW,GAEtC,IAAIi7D,EAAW3+D,EAAE0+D,GACb2C,EAAgB1C,EAAS/mE,QAAQ,yDAAyDgR,GAAG,GACjG,IAAKy4D,EAAcxsE,OACjB,OAAO,EAET,IAAIysE,EAAgBD,EAAc,GAAGp6D,aACjCs6D,EAAmBF,EAAc,GAAG95D,UACpCi6D,EAAoBzsD,SAASssD,EAAc56D,IAAI,eAAgB,IAC/Dg7D,EAAuB1sD,SAASssD,EAAc56D,IAAI,kBAAmB,IACrEi7D,EAAmBL,EAAcn6D,SAASS,IAAM45D,EAEhDI,EAAiBhD,EAASz3D,SAASS,IAAM+5D,EAGzC31D,EAAO41D,EAAiBJ,EAAoBC,EAC5C11D,EAAQ61D,EAAiBJ,EAAoBD,EAAiBG,EAHhD9C,EAAS,GAAG13D,aAI1B26D,EAAmB71D,GAAQD,EAAMC,GAAO,EAE5C,OAAIw1D,EAAmBx1D,GACrBs1D,EAAc95D,UAAU65D,EAAWQ,EAAmB71D,EAAKrI,IACpD,GAEL69D,EAAmBz1D,GACrBu1D,EAAc95D,UAAU65D,EAAWQ,EAAmB91D,EAAKpI,IACpD,IAELo+B,GACFu/B,EAAc95D,UAAU65D,EAAWQ,EAAmB91D,EAAKpI,IAEtD,IAEToc,KAAM,WACJ,IAAIrD,EAAMlpB,KACVisE,MAAME,gCAsEN1/D,EAAEjD,KAAK8G,GAAG,QAAS,uBAdnB,WACE,IACI86D,EADW3+D,EAAEzM,MACO+W,SAAS,mBAAmB1B,GAAG,GACnDi5D,EAAgBlD,EAAS37D,MAC7B27D,EACG37D,IAAI,IACJ4C,QAAQ,gBACRiJ,QACAjJ,QAAQ,cAAei8D,GAC1BplD,EAAIvC,KAAK,aAAc2nD,MAMzB7hE,EAAEjD,KAAK8G,GAAG,YAAa,uBAJvB,SAAwBO,GACtBA,EAAEmmB,oBAIJvqB,EAAEjD,KAAK8G,GAAG,eAAgB,0DA5C1B,WACE,IAAI86D,EAAW3+D,EAAEzM,MACbqC,EAAO+oE,EAAS58D,KAAK,QACrB68D,EAAMD,EAAS,GAAGphE,SAASoD,cAC3BmhE,EAAoBnD,EAAS,GAAGuC,aAAa,mBAC7C1B,MAAMC,YAAYvqE,QAAQU,IAAS,IAGvC6mB,EAAIukD,MAAMC,gBAAgBtC,GACtBmD,IAG2C,OAA3CnD,EAAS58D,KAAK,2BAAsC48D,EAAS97D,UAAUqqB,UAA0C,OAA9ByxC,EAAS58D,KAAK,aACnG0a,EAAIukD,MAAM9zC,SAASyxC,GAIT,aAARC,GAAsBD,EAASh9D,SAAS,cAC1C8a,EAAIukD,MAAMlB,eAAenB,QA0BiE,GAC9F3+D,EAAEjD,KAAK8G,GAAG,QAAS,0DAxEnB,WACE,IAAI66D,EAAUnrE,KACVkpB,EAAIzP,OAAOg0D,MAAMe,wBACftqD,OAAOK,QACT9X,EAAEnB,KAAK0G,KAAK,UAAU,WAChBxI,KAAOA,IAAIM,gBAAkBqhE,GAC/BjiD,EAAIukD,MAAMG,eAAezC,EAASjiD,EAAIzP,OAAOg0D,MAAMgB,uBAAwBvlD,EAAIzP,OAAOg0D,MAAMiB,uBAAwBxlD,EAAIzP,OAAOg0D,MAAMkB,yBAIzIzlD,EAAIukD,MAAMG,eAAezC,EAASjiD,EAAIzP,OAAOg0D,MAAMgB,uBAAwBvlD,EAAIzP,OAAOg0D,MAAMiB,uBAAwBxlD,EAAIzP,OAAOg0D,MAAMkB,uBAGzIzlD,EAAIukD,MAAMnyD,MAAM6vD,MA2DoE,GACtF1+D,EAAEjD,KAAK8G,GAAG,OAAQ,0DA1DlB,WACE,IAAI86D,EAAW3+D,EAAEzM,MACbqrE,EAAMD,EAAS,GAAGphE,SAASoD,cAC/B8b,EAAIukD,MAAM1jE,KAAKqhE,IACXA,EAAS97D,UAAUqqB,UAA0C,OAA9ByxC,EAAS58D,KAAK,aAAmE,OAA3C48D,EAAS58D,KAAK,2BACrF0a,EAAIukD,MAAM9zC,SAASyxC,GAGT,aAARC,GAAsBD,EAASh9D,SAAS,cACtC69D,MAAMK,yBAA2BL,MAAMK,wBAAwBn+D,YAiDa,GACpF1B,EAAEjD,KAAK8G,GAAG,UAAW,2BA1BrB,SAAmBO,GACjB,IAAIu6D,EAAW3+D,EAAEzM,MAC8B,OAA3CorE,EAAS58D,KAAK,2BAAsC48D,EAAS97D,UAAUqqB,UAA0C,OAA9ByxC,EAAS58D,KAAK,cACnGqC,EAAEmmB,iBACF9N,EAAIukD,MAAM9zC,SAASyxC,OAsBoC,KAI3DwD,QAAU,CACZpqE,KAAM,QACNiV,OAAQ,CACNg0D,MAAO,CACLe,sBAAuBtqD,OAAOK,QAC9BmqD,wBAAwB,EACxBD,uBAAwB,EACxBE,sBAAsB,IAG1BxnD,OAAQ,WAENjK,MAAM5U,OADItI,KACQ,CAChBytE,MAAO,CACLG,eAAgB3B,MAAM2B,eAAevyD,KAH/Brb,MAINsb,MAAO2wD,MAAM3wD,MAAMD,KAJbrb,MAKN+J,KAAMkiE,MAAMliE,KAAKsR,KALXrb,MAMN25B,SAAUsyC,MAAMtyC,SAASte,KANnBrb,MAONwtE,eAAgBvB,MAAMuB,eAAenyD,KAP/Brb,MAQN0tE,gBAAiBzB,MAAMyB,gBAAgBryD,KARjCrb,MASNusE,eAAgBN,MAAMM,eAAelxD,KAT/Brb,MAUNusB,KAAM0/C,MAAM1/C,KAAKlR,KAVXrb,UAcZsQ,GAAI,CACFic,KAAM,WACMvsB,KACNytE,MAAMlhD,QAEZ+mC,WAAY,SAAoB9nB,GAC9B,IAAItiB,EAAMlpB,KACN0zC,EAASjnC,EAAE++B,GACfkI,EAAOz8B,KAAK,uBAAuB3Q,MAAK,SAAUuoE,EAAgBC,GAC7CriE,EAAEqiE,GACR73D,KAAK,8CAA8C3Q,MAAK,SAAU4kE,EAAYC,GACzF,IAAIC,EAAW3+D,EAAE0+D,GACbc,MAAMC,YAAYvqE,QAAQypE,EAAS58D,KAAK,UAAY,GACxD0a,EAAIukD,MAAMC,gBAAgBtC,SAG9B13B,EAAOz8B,KAAK,sBAAsB3Q,MAAK,SAAUyoE,EAAevC,GAC9DtjD,EAAIukD,MAAMlB,eAAeC,OAG7BxpB,SAAU,SAAkBvN,GAC1B,IAAIvsB,EAAMlpB,KACNs1C,EAAUG,EAAKnsB,IACnBgsB,EAAQr+B,KAAK,uBAAuB3Q,MAAK,SAAUuoE,EAAgBC,GAC9CriE,EAAEqiE,GACR73D,KAAK,8CAA8C3Q,MAAK,SAAU4kE,EAAYC,GACzF,IAAIC,EAAW3+D,EAAE0+D,GACbc,MAAMC,YAAYvqE,QAAQypE,EAAS58D,KAAK,UAAY,GACxD0a,EAAIukD,MAAMC,gBAAgBtC,SAG9B91B,EAAQr+B,KAAK,sBAAsB3Q,MAAK,SAAUyoE,EAAevC,GAC/DtjD,EAAIukD,MAAMlB,eAAeC,OAG7BwC,kHAAmH,SAAqB9mE,GACtI,IAAIghB,EAAMlpB,KACNkI,GAAYA,EAASohB,IACvBphB,EAASohB,IAAIrS,KAAK,sBAAsB3Q,MAAK,SAAUyoE,EAAevC,GACpEtjD,EAAIukD,MAAMlB,eAAeC,MAG3B//D,EAAE,sBAAsBnG,MAAK,SAAUyoE,EAAevC,GACpDtjD,EAAIukD,MAAMlB,eAAeC,SAO/ByC,SAAW,CACbzqE,KAAM,YAGJ0qE,MAAQ,CACV1qE,KAAM,SAGJ2qE,OAAuB,SAAUloD,GACnC,SAASkoD,EAAOjmD,EAAKzP,QACH,IAAXA,IAAoBA,EAAS,IAElCwN,EAAgB/gB,KAAKlG,KAAMyZ,EAAQ,CAACyP,IACpC,IAAI3a,EAASvO,KAETksB,EAAW,GAGf3d,EAAOkZ,iBAAiByE,GAExB3d,EAAOkL,OAASyD,MAAM5U,OAAO4jB,EAAUzS,GAEvC,IAAIvK,EAAKX,EAAOkL,OAAOvK,GACvB,IAAKA,EAAM,OAAOX,EAElB,IAAI+a,EAAM7c,EAAEyC,GACZ,GAAmB,IAAfoa,EAAIhoB,OAAgB,OAAOiN,EAE/B,GAAI+a,EAAI,GAAG8lD,SAAY,OAAO9lD,EAAI,GAAG8lD,SAErC,IA2BI9xC,EA3BA8tC,EAAW9hD,EAAI/e,SAAS,0BAE5B2S,MAAM5U,OAAOiG,EAAQ,CACnB2a,IAAKA,EACLI,IAAKA,EACLpa,GAAIoa,EAAI,GACR8hD,SAAUA,EACVD,QAASC,EAAS,GAClBnc,SAAU3lC,EAAIlb,SAAS,aAAeg9D,EAASh9D,SAAS,aAAeg9D,EAAS58D,KAAK,aAAe48D,EAAS,GAAGnc,WAGlH/qD,OAAO6f,eAAexV,EAAQ,UAAW,CACvCqS,YAAY,EACZ/Y,cAAc,EACd0gB,IAAK,SAAa+iD,GACX/8D,QAAqC,IAApBA,EAAO68D,UACzB78D,EAAO+8D,UAAYA,IACvBF,EAAS,GAAGE,QAAUA,EACtB/8D,EAAO68D,SAAS/4D,QAAQ,YAE1BnJ,IAAK,WACH,OAAOkiE,EAAS,GAAGE,WAIvBhiD,EAAI,GAAG8lD,SAAW7gE,EAGlB,IACIsuB,EACAE,EACAsyC,EACAryC,EACAsyC,EALA/xC,EAAe,GAMnB,SAASmB,EAAiB7tB,GACpBysB,GAAa/uB,EAAO0gD,WACxB1xB,EAAapb,EAAe,eAAXtR,EAAExO,KAAwBwO,EAAEomB,cAAc,GAAGG,MAAQvmB,EAAEumB,MACxEmG,EAAazI,EAAe,eAAXjkB,EAAExO,KAAwBwO,EAAEomB,cAAc,GAAGI,MAAQxmB,EAAEwmB,MACxE0F,EAAc,EAEdO,GAAY,EACZT,OAAc18B,EACd68B,EAAiB9f,MAAMc,MACvBsxD,EAAoB/gE,EAAO+8D,QAE3B+D,EAAc/lD,EAAI,GAAGhW,YACrB4J,MAAMW,UAAS,WACTyf,GACFhU,EAAIzb,SAAS,2BAInB,SAASixB,EAAgBjuB,GACvB,GAAKysB,IAAa/uB,EAAO0gD,SAAzB,CACA,IAgBIsgB,EAhBAn4C,EAAmB,cAAXvmB,EAAExO,KAAuBwO,EAAEomB,cAAc,GAAGG,MAAQvmB,EAAEumB,MAC9DC,EAAmB,cAAXxmB,EAAExO,KAAuBwO,EAAEomB,cAAc,GAAGI,MAAQxmB,EAAEwmB,MAC9D+H,EAAWlW,EAAIwC,KAAO,EAAI,EAK9B,QAH2B,IAAhBmR,IACTA,KAAiBA,GAAevkB,KAAKuJ,IAAIwV,EAAQkG,EAAazI,GAAKxc,KAAKuJ,IAAIuV,EAAQmG,EAAapb,KAE/F0a,EACFS,GAAY,OAGdzsB,EAAEmmB,kBAEF+F,EAAc3F,EAAQmG,EAAapb,GAIjBid,EAAW,GAAK9mB,KAAKuJ,IAAIkb,GAAesyC,EAAc,GAAKC,IAC3EC,GAAU,GAERxyC,EAAcqC,EAAW,GAAK9mB,KAAKuJ,IAAIkb,GAAesyC,EAAc,IAAMC,IAC5EC,GAAU,GAERA,IACFhyC,EAAapb,EAAIiV,EACjB7oB,EAAO+8D,SAAWgE,EAClBA,GAAqBA,IAGzB,SAASptC,IACP,IAAK5E,GAAa/uB,EAAO0gD,SAGvB,OAFIpyB,GAAevT,EAAIpb,YAAY,4BACnCovB,GAAY,GAGd,IAKIiyC,EALAnwC,EAAWlW,EAAIwC,KAAO,EAAI,EAC9B4R,GAAY,EAEZhU,EAAIpb,YAAY,uBAGXgP,MAAMc,MAAQgf,EAAkB,MAC/BD,EAAcqC,EAAW,GAAKkwC,IAChCC,GAAU,GAERxyC,EAAcqC,EAAW,IAAMkwC,IACjCC,GAAU,GAERA,IACFhhE,EAAO+8D,SAAWgE,IAIxB,SAASE,IACPjhE,EAAO+a,IAAIjX,QAAQ,iBACnB9D,EAAOoY,KAAK,6BAA8BpY,GAE5CA,EAAOsnC,aAAe,WACpB,IAAI3f,IAAU7S,QAAQO,iBAAkB,CAAEsS,SAAS,GACnD5M,EAAIhZ,GAAG4Y,EAAIoN,YAAYC,MAAOmI,EAAkBxI,GAChDhN,EAAI5Y,GAAG,YAAawuB,GACpB5V,EAAI5Y,GAAG,mBAAoB4xB,GAC3B3zB,EAAO68D,SAAS96D,GAAG,SAAUk/D,IAE/BjhE,EAAO4tD,aAAe,WACpB,IAAIjmC,IAAU7S,QAAQO,iBAAkB,CAAEsS,SAAS,GACnD5M,EAAI3X,IAAIuX,EAAIoN,YAAYC,MAAOmI,EAAkBxI,GACjDhN,EAAIvX,IAAI,YAAamtB,GACrB5V,EAAIvX,IAAI,mBAAoBuwB,GAC5B3zB,EAAO68D,SAASz5D,IAAI,SAAU69D,IAIhCjhE,EAAO8Z,aAGP9Z,EAAOge,OA2BT,OAxBKtF,IAAkBkoD,EAAOjoD,UAAYD,GAC1CkoD,EAAO1mE,UAAYvE,OAAOijB,OAAQF,GAAmBA,EAAgBxe,WACrE0mE,EAAO1mE,UAAUxE,YAAckrE,EAE/BA,EAAO1mE,UAAU8F,OAAS,WACXvO,KACNsrE,SADMtrE,KACYsrE,SAG3B6D,EAAO1mE,UAAU8jB,KAAO,WACTvsB,KACN61C,gBAGTs5B,EAAO1mE,UAAU8gB,QAAU,WACzB,IAAIhb,EAASvO,KACbuO,EAAO+a,IAAIjX,QAAQ,wBACnB9D,EAAOoY,KAAK,2CAA4CpY,UACjDA,EAAO+a,IAAI,GAAG8lD,SACrB7gE,EAAO4tD,eACPj/C,MAAMU,YAAYrP,GAClBA,EAAS,MAGJ4gE,EAnLiB,CAoLxBloD,iBAEEwoD,SAAW,CACbjrE,KAAM,SACN2iB,OAAQ,WACInnB,KACNuO,OAASsa,mBAAmB,CAC9BE,gBAAiB,UACjB9kB,YAAakrE,OACbjmD,IAJQlpB,KAKRipB,QAAS,cAGbN,OAAQ,CACNwmD,OAAQA,QAEV7+D,GAAI,CACFgjD,WAAY,SAAoB9nB,GAC9B,IAAItiB,EAAMlpB,KACVyM,EAAE++B,GAAOv0B,KAAK,gBAAgB3Q,MAAK,SAAUK,EAAO+oE,GAAY,OAAOxmD,EAAI3a,OAAO4Y,OAAO,CAAEjY,GAAIwgE,QAEjGzO,gBAAiB,SAAyBz1B,GACxC/+B,EAAE++B,GAAOv0B,KAAK,gBAAgB3Q,MAAK,SAAUK,EAAO+oE,GAC9CA,EAASN,UAAYM,EAASN,SAAS7lD,cAG/Cy5B,SAAU,SAAkBvN,GAC1B,IAAIvsB,EAAMlpB,KACVy1C,EAAKnsB,IAAIrS,KAAK,gBAAgB3Q,MAAK,SAAUK,EAAO+oE,GAAY,OAAOxmD,EAAI3a,OAAO4Y,OAAO,CAAEjY,GAAIwgE,QAEjG7sB,iBAAkB,SAA0BpN,GAC1CA,EAAKnsB,IAAIrS,KAAK,gBAAgB3Q,MAAK,SAAUK,EAAO+oE,GAC9CA,EAASN,UAAYM,EAASN,SAAS7lD,eAIjDtB,MAAO,CACL0nD,cAAe,CACb7xB,OAAQ,SAAgB71B,GACtB,IACIynD,EAAWznD,EAAM81B,IADX/9C,KAENuO,OAAO4Y,OAAO,CAAEjY,GAAIwgE,KAE1BnmD,QAAS,SAAiBtB,GACxB,IAAIynD,EAAWznD,EAAM81B,IACjB2xB,EAASN,UAAYM,EAASN,SAAS7lD,cAM/CqmD,MAAsB,SAAU3oD,GAClC,SAAS2oD,EAAM1mD,EAAKzP,GAClBwN,EAAgB/gB,KAAKlG,KAAMyZ,EAAQ,CAACyP,IAEpC,IAAI2mD,EAAQ7vE,KAERksB,EAAW,CACbhd,GAAI,KACJi8D,QAAS,KACT2E,MAAM,EACNC,KAAM,EACNhhB,OAAO,EACPv2C,IAAK,EACLD,IAAK,IACL7J,MAAO,EACPshE,cAAc,EACdC,UAAU,EACVC,kBAAkB,EAClBC,YAAa,KACbxkB,OAAO,EACPykB,WAAY,EACZC,cAAe,EACfC,iBAAkB,KAClBC,kBAAiC,QAAdrnD,EAAI/C,OAIzB0pD,EAAMpoD,iBAAiByE,GAEvB2jD,EAAMp2D,OAASyD,MAAM5U,OAAO4jB,EAAUzS,GAEtC,IAAIvK,EAAK2gE,EAAMp2D,OAAOvK,GACtB,IAAKA,EAAM,OAAO2gE,EAElB,IAAIvmD,EAAM7c,EAAEyC,GACZ,GAAmB,IAAfoa,EAAIhoB,OAAgB,OAAOuuE,EAE/B,GAAIvmD,EAAI,GAAGknD,QAAW,OAAOlnD,EAAI,GAAGknD,QAEpC,IAoBIpF,EApBA97D,EAAUga,EAAIha,UAElB,8CAAgDlO,MAAM,KAAK2C,SAAQ,SAAUulC,QAC1C,IAAtB7vB,EAAO6vB,SAA4D,IAAvBh6B,EAAQg6B,KAC7DumC,EAAMp2D,OAAO6vB,GAAa95B,WAAWF,EAAQg6B,QAGjD,6CAA+CloC,MAAM,KAAK2C,SAAQ,SAAUulC,QACzC,IAAtB7vB,EAAO6vB,SAA4D,IAAvBh6B,EAAQg6B,KAC7DumC,EAAMp2D,OAAO6vB,GAAah6B,EAAQg6B,OAIjCumC,EAAMp2D,OAAO/K,aACa,IAAlBY,EAAQZ,QAAyBmhE,EAAMp2D,OAAO/K,MAAQY,EAAQZ,YACxC,IAAtBY,EAAQmhE,gBAA2D,IAAvBnhE,EAAQohE,aAC7Db,EAAMp2D,OAAO/K,MAAQ,CAACc,WAAWF,EAAQmhE,WAAYjhE,WAAWF,EAAQohE,eAKvEb,EAAMp2D,OAAOq2D,OACZD,EAAMp2D,OAAO0xD,QACfC,EAAW3+D,EAAEojE,EAAMp2D,OAAO0xD,SACjB7hD,EAAIrS,KAAK,uBAAuB3V,SACzC8pE,EAAW9hD,EAAIrS,KAAK,uBAAuB5B,GAAG,KAIlD,IAAI0F,EAAM80D,EAAMp2D,OACZq2D,EAAO/0D,EAAI+0D,KACXC,EAAOh1D,EAAIg1D,KACXhhB,EAAQh0C,EAAIg0C,MACZv2C,EAAMuC,EAAIvC,IACVD,EAAMwC,EAAIxC,IACV7J,EAAQqM,EAAIrM,MACZuhE,EAAWl1D,EAAIk1D,SACfC,EAAmBn1D,EAAIm1D,iBACvBvkB,EAAQ5wC,EAAI4wC,MACZykB,EAAar1D,EAAIq1D,WACjBC,EAAgBt1D,EAAIs1D,cACpBE,EAAoBx1D,EAAIw1D,kBAE5BrzD,MAAM5U,OAAOunE,EAAO,CAClB3mD,IAAKA,EACLI,IAAKA,EACLpa,GAAIoa,EAAI,GACR8hD,SAAUA,EACVD,QAASC,EAAWA,EAAS,QAAKjrE,EAClC2vE,KAAMA,EACNC,KAAMA,EACNhhB,MAAOA,EACPv2C,IAAKA,EACLD,IAAKA,EACL7J,MAAOA,EACP4/D,cAAe5/D,EACfuhE,SAAUA,EACVC,iBAAkBA,EAClBvkB,MAAOA,EACPykB,WAAYA,EACZC,cAAeA,EACfE,kBAAmBA,IAGjBnF,IACF,eAAiBhqE,MAAM,KAAK2C,SAAQ,SAAUulC,IACvC7vB,EAAO6vB,IAAc8hC,EAAS58D,KAAK86B,KACtCumC,EAAMp2D,OAAO6vB,GAAa95B,WAAW47D,EAAS58D,KAAK86B,IACnDumC,EAAMvmC,GAAa95B,WAAW47D,EAAS58D,KAAK86B,aAGlB,IAAnB8hC,EAAS37D,QAClBogE,EAAMp2D,OAAO/K,MAAQc,WAAW47D,EAAS37D,OACzCogE,EAAMnhE,MAAQc,WAAW47D,EAAS37D,SAKlCogE,EAAMC,MACRxmD,EAAIzb,SAAS,qBAEXgiE,EAAM9gB,OACRzlC,EAAIzb,SAAS,sBAIXgiE,EAAMI,UACR3mD,EAAIzb,SAAS,yBACTgiE,EAAMK,kBACR5mD,EAAIzb,SAAS,mCAGfyb,EAAIzb,SAAS,2BAIf,IAAI8iE,EAASlkE,EAAE,iCACXmkE,EAAenkE,EAAE,wCACrBkkE,EAAOp7D,OAAOq7D,GAGd,IAAIC,EAAW,2FAAiGhB,EAAM9gB,MAAQ,uCAAyC,IAAM,uBACzK+hB,EAAQ,CAACrkE,EAAEokE,IAEXhB,EAAMC,MACRgB,EAAMpvE,KAAK+K,EAAEokE,IAGfvnD,EAAI/T,OAAOo7D,GACXG,EAAM/sE,SAAQ,SAAUgtE,GACtBznD,EAAI/T,OAAOw7D,MAIb,IASIC,EAiBA1zC,EA1BA2zC,EAAS,GACTpB,EAAM9gB,QACRkiB,EAAOvvE,KAAKovE,EAAM,GAAG75D,KAAK,sBACtB44D,EAAMC,MACRmB,EAAOvvE,KAAKovE,EAAM,GAAG75D,KAAK,uBAM1B44D,EAAMlkB,OAASkkB,EAAMO,YAAc,IACrCY,EAAWvkE,EAAG,kDAAuDojE,EAAMqB,cAAiB,4BAC5F5nD,EAAI/T,OAAOy7D,IAGb9zD,MAAM5U,OAAOunE,EAAO,CAClBiB,MAAOA,EACPG,OAAQA,EACRN,OAAQA,EACRC,aAAcA,EACdI,SAAUA,IAGZ1nD,EAAI,GAAGknD,QAAUX,EAIjB,IACIhzC,EACAs0C,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EA4JAC,EACAC,EACAC,EAtKAr0C,EAAe,GASnB,SAASs0C,IACPL,GAAsB,EAExB,SAAS9yC,EAAiB7tB,GACxB,IAAIysB,IACCuyC,EAAMp2D,OAAOu2D,cACkC,IAA9CvjE,EAAEoE,EAAEtI,QAAQyO,QAAQ,eAAe1V,QADzC,CAkBA,IAAIyX,EAbJy4D,GAAsB,EACtBj0C,EAAapb,EAAe,eAAXtR,EAAExO,KAAwBwO,EAAEomB,cAAc,GAAGG,MAAQvmB,EAAEumB,MACxEmG,EAAazI,EAAe,eAAXjkB,EAAExO,KAAwBwO,EAAEomB,cAAc,GAAGI,MAAQxmB,EAAEwmB,MACzD,eAAXxmB,EAAExO,OACJovE,EAAwB5gE,EAAEomB,cAAc,GAAG66C,YAG7Cx0C,GAAY,EACZT,OAAc18B,EACdgxE,EAAc7nD,EAAI3V,SAClBy9D,EAAkBD,EAAY98D,KAC9Bg9D,EAAiBF,EAAY/8D,IAGzBy7D,EAAMI,UACRl3D,GAAYwkB,EAAazI,EAAIu8C,GAAkBxB,EAAMkC,YAChDlC,EAAMK,mBAAoBn3D,EAAW,EAAIA,IAE9CA,EADS82D,EAAM3mD,IAAIwC,KACN0lD,EAAkBvB,EAAMmC,WAAcz0C,EAAapb,GAAK0tD,EAAMmC,YAE/Dz0C,EAAapb,EAAIivD,GAAmBvB,EAAMmC,WAGxD,IAAIC,EAAYl5D,GAAY82D,EAAMt3D,IAAMs3D,EAAMr3D,KAAQq3D,EAAMr3D,IACxDq3D,EAAMC,KACJx3D,KAAKuJ,IAAIguD,EAAMnhE,MAAM,GAAKujE,GAAY35D,KAAKuJ,IAAIguD,EAAMnhE,MAAM,GAAKujE,IAClEV,EAAiB,EACjBD,EAAiBzB,EAAMiB,MAAM,GAC7BmB,EAAW,CAACA,EAAUpC,EAAMnhE,MAAM,MAElC6iE,EAAiB,EACjBD,EAAiBzB,EAAMiB,MAAM,GAC7BmB,EAAW,CAACpC,EAAMnhE,MAAM,GAAIujE,KAG9BX,EAAiBzB,EAAMiB,MAAM,GAC7BmB,EAAYl5D,GAAY82D,EAAMt3D,IAAMs3D,EAAMr3D,KAAQq3D,EAAMr3D,KAE1D0E,MAAMW,UAAS,WACTyf,GAAag0C,EAAezjE,SAAS,6BACxC,IACHgiE,EAAMv/D,GAAG,SAAUuhE,GACnBhC,EAAMqC,SAASD,GAAU,IAE3B,SAASnzC,EAAgBjuB,GACvB,GAAKysB,EAAL,CACA,IAAIlG,EACAC,EACJ,GAAe,cAAXxmB,EAAExO,KACJ,IAAK,IAAIrB,EAAI,EAAGA,EAAI6P,EAAEomB,cAAc31B,OAAQN,GAAK,EAC3C6P,EAAEomB,cAAcj2B,GAAG8wE,aAAeL,IACpCr6C,EAAQvmB,EAAEomB,cAAcj2B,GAAGo2B,MAC3BC,EAAQxmB,EAAEomB,cAAcj2B,GAAGq2B,YAI/BD,EAAQvmB,EAAEumB,MACVC,EAAQxmB,EAAEwmB,MAEZ,QAAqB,IAAVD,QAA0C,IAAVC,EAK3C,QAH2B,IAAhBwF,GAAgCgzC,EAAMI,WAC/CpzC,KAAiBA,GAAevkB,KAAKuJ,IAAIwV,EAAQkG,EAAazI,GAAKxc,KAAKuJ,IAAIuV,EAAQmG,EAAapb,KAE/F0a,EACFS,GAAY,MADd,CAMA,IAAIvkB,EAFJlI,EAAEmmB,iBAGE64C,EAAMI,UACRl3D,GAAYse,EAAQg6C,GAAkBxB,EAAMkC,YACvClC,EAAMK,mBAAoBn3D,EAAW,EAAIA,IAE9CA,EADS82D,EAAM3mD,IAAIwC,KACN0lD,EAAkBvB,EAAMmC,WAAc56C,GAASy4C,EAAMmC,YAEtD56C,EAAQg6C,GAAmBvB,EAAMmC,WAG/C,IAEMG,EACAC,EAHFH,EAAYl5D,GAAY82D,EAAMt3D,IAAMs3D,EAAMr3D,KAAQq3D,EAAMr3D,IAC5D,GAAIq3D,EAAMC,KAGe,IAAnByB,GACFY,EAAYF,IACZG,EAAavC,EAAMnhE,MAAM,MAEvB0jE,EAAaD,IAIfC,EAAaH,IADbE,EAAYtC,EAAMnhE,MAAM,MAGtByjE,EAAYC,GAGhBH,EAAW,CAACE,EAAWC,GAEzBvC,EAAMqC,SAASD,GAAU,KAE3B,SAAS/vC,EAAerxB,GACtB,GAAe,aAAXA,EAAExO,KAAqB,CAEzB,IADA,IAAIgwE,EACKrxE,EAAI,EAAGA,EAAI6P,EAAEyhE,eAAehxE,OAAQN,GAAK,EAC5C6P,EAAEyhE,eAAetxE,GAAG8wE,aAAeL,IAAyBY,GAAa,GAE/E,IAAKA,EAAc,OAErB,IAAK/0C,EAGH,OAFIT,GAAey0C,EAAepjE,YAAY,gCAC9CovB,GAAY,GAGduyC,EAAMl+D,IAAI,SAAUkgE,GACpBv0C,GAAY,EACZg0C,EAAepjE,YAAY,2BACvBsjE,GAAuB3B,EAAMzE,WAAayE,EAAMC,MAClDD,EAAMzE,SAAS/4D,QAAQ,UAEzBm/D,GAAsB,OACa,IAAxB3B,EAAMvB,gBAGXuB,EAAMC,OAEJD,EAAMvB,cAAc,KAAOuB,EAAMnhE,MAAM,IACpCmhE,EAAMvB,cAAc,KAAOuB,EAAMnhE,MAAM,MAI3CmhE,EAAMC,MACJD,EAAMvB,gBAAkBuB,EAAMnhE,SAGnCmhE,EAAMvmD,IAAIjX,QAAQ,gBAAiBw9D,EAAMnhE,OACzCmhE,EAAMlpD,KAAK,8BAA+BkpD,EAAOA,EAAMnhE,QAK7D,SAASypC,IACP03B,EAAMlQ,WACNkQ,EAAM0C,SA8CR,OAzCA1C,EAAMh6B,aAAe,WACnB,IAAI3f,IAAU7S,QAAQO,iBAAkB,CAAEsS,SAAS,GACnD25C,EAAMvmD,IAAIhZ,GAAG4Y,EAAIoN,YAAYC,MAAOmI,EAAkBxI,GACtDhN,EAAI5Y,GAAG,YAAawuB,GACpB5V,EAAI5Y,GAAG,mBAAoB4xB,GAC3BhZ,EAAI5Y,GAAG,UAAW6nC,GAClBjvB,EAAI5Y,GAAG,SAAU6nC,IACjBu5B,EAAe7B,EAAMvmD,IAAIjlB,QAAQ,mFACpBiM,GAAG,aAAc6nC,IAC9Bw5B,EAAc9B,EAAMvmD,IAAIjlB,QAAQ,WACpBiM,GAAG,0BAA2B6nC,IAC1Cy5B,EAAa/B,EAAMvmD,IAAIjlB,QAAQ,SAASgR,GAAG,IAChC/E,GAAG,cAAe6nC,IAE/B03B,EAAM1T,aAAe,WACnB,IAAIjmC,IAAU7S,QAAQO,iBAAkB,CAAEsS,SAAS,GACnD25C,EAAMvmD,IAAI3X,IAAIuX,EAAIoN,YAAYC,MAAOmI,EAAkBxI,GACvDhN,EAAIvX,IAAI,YAAamtB,GACrB5V,EAAIvX,IAAI,mBAAoBuwB,GAC5BhZ,EAAIvX,IAAI,UAAWwmC,GACnBjvB,EAAIvX,IAAI,SAAUwmC,GACdu5B,GACFA,EAAa//D,IAAI,aAAcwmC,GAE7Bw5B,GACFA,EAAYhgE,IAAI,0BAA2BwmC,GAEzCy5B,GACFA,EAAWjgE,IAAI,cAAewmC,GAEhCu5B,EAAe,KACfC,EAAc,KACdC,EAAa,MAIf/B,EAAMxnD,aAGNwnD,EAAMtjD,OAECsjD,EA8NT,OA3NK5oD,IAAkB2oD,EAAM1oD,UAAYD,GACzC2oD,EAAMnnE,UAAYvE,OAAOijB,OAAQF,GAAmBA,EAAgBxe,WACpEmnE,EAAMnnE,UAAUxE,YAAc2rE,EAE9BA,EAAMnnE,UAAUk3D,SAAW,WAEzB,GADY3/D,KACFiwE,SAAU,CAClB,IAAI18D,EAFMvT,KAESspB,IAAI7V,cACvB,GAAe,IAAXF,EAAgB,OAHVvT,KAIJ+xE,YAAcx+D,EAJVvT,KAKJwyE,WALIxyE,KAKe8wE,MAAM,GAAGr9D,kBAC7B,CACL,IAAIT,EAPMhT,KAOQspB,IAAInW,aACtB,GAAc,IAAVH,EAAe,OARThT,KASJgyE,WAAah/D,EATThT,KAUJyyE,UAVIzyE,KAUc8wE,MAAM,GAAG39D,eAIrCy8D,EAAMnnE,UAAU8pE,OAAS,WACvB,IAAIlqE,EAEAwnE,EAAQ7vE,KACRkpB,EAAM2mD,EAAM3mD,IACZupD,EAAY5C,EAAM4C,UAClBD,EAAa3C,EAAM2C,WACnBR,EAAanC,EAAMmC,WACnBD,EAAclC,EAAMkC,YACpBv5D,EAAMq3D,EAAMr3D,IACZD,EAAMs3D,EAAMt3D,IACZu4D,EAAQjB,EAAMiB,MACdF,EAAef,EAAMe,aACrBliE,EAAQmhE,EAAMnhE,MACdqgD,EAAQ8gB,EAAM9gB,MACdkiB,EAASpB,EAAMoB,OACfhB,EAAWJ,EAAMI,SACjBC,EAAmBL,EAAMK,iBACzBK,EAAoBV,EAAMU,kBAC1BmC,EAAWzC,EAAWuC,EAAaC,EACnCE,EAAY1C,EAAW8B,EAAcC,EAErCY,EAAmB3C,EAClBC,EAAmB,MAAQ,SAC3BhnD,EAAIwC,IAAM,QAAU,OACzB,GAAImkD,EAAMC,KAAM,CACd,IAAI/2D,EAAW,EAAGrK,EAAM,GAAK8J,IAAQD,EAAMC,IAAS9J,EAAM,GAAK8J,IAAQD,EAAMC,IAC7Eo4D,EAAa19D,MAAM7K,EAAM,IAAQuqE,GAAoC,IAAd75D,EAAS,GAAY,IAAM1Q,EAAI4nE,EAAW,SAAW,SAA2C,KAA7Bl3D,EAAS,GAAKA,EAAS,IAAa,IAAM1Q,IACpKyoE,EAAM/sE,SAAQ,SAAUgtE,EAAS8B,GAC/B,IAAIC,EAAWH,EAAY55D,EAAS85D,GACpC,GAAItC,EAAmB,CACrB,IAAIwC,EAAgBJ,EAAY55D,EAAS85D,GAAeH,EAAW,EAC/DK,EAAe,IAAKD,EAAWJ,EAAW,GACzCK,EAAeL,EAAYC,IAAaG,EAAWH,EAAaD,EAAW,GAElF3B,EAAQ79D,IAAI0/D,EAAmBE,EAAW,MACtC/jB,GAASkiB,EAAO4B,GAAWh+D,KAAKg7D,EAAMM,YAAYzhE,EAAMmkE,GAAY5B,EAAO4B,GAAW,YAEvF,CACL,IAAIviB,GAAe5hD,EAAQ8J,IAAQD,EAAMC,GACzCo4D,EAAa19D,IAAI+8D,EAAW,SAAW,QAAwB,IAAb3f,EAAoB,KAEtE,IAAIwiB,EAAWH,EAAYriB,EAC3B,GAAIigB,EAAmB,CACrB,IAAIwC,EAAgBJ,EAAYriB,EAAeoiB,EAAW,EACtDK,EAAe,IAAKD,EAAWJ,EAAW,GACzCK,EAAeL,EAAYC,IAAaG,EAAWH,EAAaD,EAAW,GAElF5B,EAAM,GAAG59D,IAAI0/D,EAAmBE,EAAW,MACvC/jB,GAASkiB,EAAO,GAAGp8D,KAAKg7D,EAAMM,YAAYzhE,EAAOuiE,EAAO,GAAG,KAE5DpB,EAAMC,MAAQphE,EAAM/M,QAAQ6W,IAAQ,IAAQq3D,EAAMC,MAAQphE,IAAU8J,EACvEq3D,EAAMvmD,IAAIzb,SAAS,oBAEnBgiE,EAAMvmD,IAAIpb,YAAY,oBAEnB2hE,EAAMC,MAAQphE,EAAM/M,QAAQ4W,IAAQ,IAAQs3D,EAAMC,MAAQphE,IAAU6J,EACvEs3D,EAAMvmD,IAAIzb,SAAS,oBAEnBgiE,EAAMvmD,IAAIpb,YAAY,qBAI1B0hE,EAAMnnE,UAAUypE,SAAW,SAAmBD,EAAUe,GACtD,IAIIC,EACAC,EALArD,EAAQ7vE,KACR+vE,EAAOF,EAAME,KACbv3D,EAAMq3D,EAAMr3D,IACZD,EAAMs3D,EAAMt3D,IAGhB,GAAIs3D,EAAMC,KAAM,CACdoD,EAAW,CAACrD,EAAMnhE,MAAM,GAAImhE,EAAMnhE,MAAM,IACxC,IAAIykE,EAAYlB,EAMhB,GALKnvE,MAAMC,QAAQowE,KAAcA,EAAY,CAAClB,EAAUA,IACpDA,EAAS,GAAKA,EAAS,KACzBkB,EAAY,CAACA,EAAU,GAAIA,EAAU,MAEvCA,EAAYA,EAAUx+D,KAAI,SAAUjG,GAAS,OAAO4J,KAAKC,IAAID,KAAKE,IAAIF,KAAK+J,MAAM3T,EAAQqhE,GAAQA,EAAMx3D,GAAMC,OAC/F,KAAOq3D,EAAMnhE,MAAM,IAAMykE,EAAU,KAAOtD,EAAMnhE,MAAM,GAClE,OAAOmhE,EAETsD,EAAUpvE,SAAQ,SAAU2K,EAAO0kE,GACjCvD,EAAMnhE,MAAM0kE,GAAc1kE,KAE5BukE,EAAeC,EAAS,KAAOC,EAAU,IAAMD,EAAS,KAAOC,EAAU,GACzEtD,EAAM0C,aACD,CACLW,EAAWrD,EAAMnhE,MACjB,IAAIA,EAAQ4J,KAAKC,IAAID,KAAKE,IAAIF,KAAK+J,MAAM4vD,EAAWlC,GAAQA,EAAMx3D,GAAMC,GACxEq3D,EAAMnhE,MAAQA,EACdmhE,EAAM0C,SACNU,EAAeC,IAAaxkE,EAO9B,OAJIukE,IACFpD,EAAMvB,cAAgB4E,GAGnBD,GACLpD,EAAMvmD,IAAIjX,QAAQ,eAAgBw9D,EAAMnhE,OACpCmhE,EAAMzE,WAAayE,EAAMC,OAC3BD,EAAMzE,SAAS37D,IAAIogE,EAAMnhE,OACpBskE,EAGHnD,EAAMzE,SAAS/4D,QAAQ,SAFvBw9D,EAAMzE,SAAS/4D,QAAQ,iBAKtB2gE,IACHnD,EAAMvmD,IAAIjX,QAAQ,gBAAiBw9D,EAAMnhE,OACzCmhE,EAAMlpD,KAAK,8BAA+BkpD,EAAOA,EAAMnhE,QAEzDmhE,EAAMlpD,KAAK,4BAA6BkpD,EAAOA,EAAMnhE,OAC9CmhE,GAfqBA,GAkB9BD,EAAMnnE,UAAU4qE,SAAW,WACzB,OAAOrzE,KAAK0O,OAGdkhE,EAAMnnE,UAAU0nE,YAAc,SAAsBzhE,EAAO4kE,GAEzD,OADYtzE,KACFyZ,OAAO02D,YADLnwE,KACiCyZ,OAAO02D,YAAYjqE,KADpDlG,KACgE0O,EAAO4kE,GAC5E5kE,GAGTkhE,EAAMnnE,UAAU6nE,iBAAmB,SAA2B5hE,GAE5D,OADY1O,KACFyZ,OAAO62D,iBADLtwE,KACsCyZ,OAAO62D,iBAAiBpqE,KAD9DlG,KAC0E0O,GAC/EA,GAGTkhE,EAAMnnE,UAAUyoE,YAAc,WAC5B,IAAIrB,EAAQ7vE,KACRkpB,EAAM2mD,EAAM3mD,IACZgnD,EAAmBL,EAAMK,iBAIzB0C,EAHW/C,EAAMI,SAIhBC,EAAmB,MAAQ,SAC3BhnD,EAAIwC,IAAM,QAAU,OAErB7e,EAAO,GAqBX,OApBA/J,MACGud,KAAK,CAAE/e,OAAQuuE,EAAMO,WAAa,IAClCrsE,SAAQ,SAAUwvE,EAAS5sE,GAC1B,IAAI6sE,GAAkB3D,EAAMt3D,IAAMs3D,EAAMr3D,KAAOq3D,EAAMO,WACjDqD,EAAa5D,EAAMr3D,IAAMg7D,EAAiB7sE,EAC1CoS,GAAa06D,EAAa5D,EAAMr3D,MAAQq3D,EAAMt3D,IAAMs3D,EAAMr3D,KAC9D3L,GAAQ,wCAA6C+lE,EAAmB,KAAmB,IAAX75D,EAAkB,MAAU82D,EAAMS,iBAAiBmD,GAAe,SAE9I5D,EAAMQ,eAAiBR,EAAMQ,cAAgB,GAAK1pE,EAAQkpE,EAAMO,YAClEttE,MACGud,KAAK,CAAE/e,OAAQuuE,EAAMQ,cAAgB,IACrCtsE,SAAQ,SAAU2vE,EAAWhzC,GAC5B,IAAIizC,EAAUH,EAAiB3D,EAAMQ,cAEjCuD,GADgBH,EAAaE,GAAWjzC,EAAW,GACnBmvC,EAAMr3D,MAAQq3D,EAAMt3D,IAAMs3D,EAAMr3D,KACpE3L,GAAQ,4DAAiE+lE,EAAmB,KAAsB,IAAdgB,EAAqB,kBAK5H/mE,GAGT+iE,EAAMnnE,UAAUorE,YAAc,WAE5B,IADY7zE,KACD2rD,OADC3rD,KACcowE,WAAa,EAGrC,OAJUpwE,KAEAgxE,UAFAhxE,KAEkBgxE,SAAS7iE,qBAF3BnO,KAGGgxE,SAHHhxE,KAMDgxE,WANChxE,KAOJgxE,SAAWvkE,EAAE,mCAPTzM,KAQJspB,IAAI/T,OARAvV,KAQagxE,WARbhxE,KAWNgxE,SAASnkE,KAXH7M,KAWckxE,gBAG5BtB,EAAMnnE,UAAU8jB,KAAO,WAKrB,OAJYvsB,KACN2/D,WADM3/D,KAENuyE,SAFMvyE,KAGN61C,eAHM71C,MAOd4vE,EAAMnnE,UAAU8gB,QAAU,WACxB,IAAIsmD,EAAQ7vE,KACZ6vE,EAAMvmD,IAAIjX,QAAQ,uBAClBw9D,EAAMlpD,KAAK,0CAA2CkpD,UAC/CA,EAAMvmD,IAAI,GAAGknD,QACpBX,EAAM1T,eACNj/C,MAAMU,YAAYiyD,GAClBA,EAAQ,MAGHD,EAlmBgB,CAmmBvB3oD,iBAEE6sD,QAAU,CACZtvE,KAAM,QACN2iB,OAAQ,WACN,IAAI+B,EAAMlpB,KACVkpB,EAAI2mD,MAAQ3yD,MAAM5U,OAChBugB,mBAAmB,CACjBE,gBAAiB,gBACjB9kB,YAAa2rE,MACb1mD,IAAKA,EACLD,QAAS,YAEX,CACEoqD,SAAU,SAAkBnkE,QACd,IAAPA,IAAgBA,EAAK,iBAE1B,IAAI2gE,EAAQ3mD,EAAI2mD,MAAM3mE,IAAIgG,GAC1B,GAAI2gE,EAAS,OAAOA,EAAMwD,YAG5BnB,SAAU,SAAkBhjE,EAAIR,QAClB,IAAPQ,IAAgBA,EAAK,iBAE1B,IAAI2gE,EAAQ3mD,EAAI2mD,MAAM3mE,IAAIgG,GAC1B,GAAI2gE,EAAS,OAAOA,EAAMqC,SAASxjE,OAM3Cia,OAAQ,CACNinD,MAAOA,OAETt/D,GAAI,CACFgjD,WAAY,SAAoB9nB,GAC9B,IAAItiB,EAAMlpB,KACVyM,EAAE++B,GAAOv0B,KAAK,sBAAsB3Q,MAAK,SAAUK,EAAOotE,GAAW,OAAO,IAAInE,MAAM1mD,EAAK,CACzFha,GAAI6kE,QAGR9S,gBAAiB,SAAyBz1B,GACxC/+B,EAAE++B,GAAOv0B,KAAK,sBAAsB3Q,MAAK,SAAUK,EAAOotE,GACpDA,EAAQvD,SAAWuD,EAAQvD,QAAQjnD,cAG3Cy5B,SAAU,SAAkBvN,GAC1B,IAAIvsB,EAAMlpB,KACVy1C,EAAKnsB,IAAIrS,KAAK,sBAAsB3Q,MAAK,SAAUK,EAAOotE,GAAW,OAAO,IAAInE,MAAM1mD,EAAK,CACzFha,GAAI6kE,QAGRlxB,iBAAkB,SAA0BpN,GAC1CA,EAAKnsB,IAAIrS,KAAK,sBAAsB3Q,MAAK,SAAUK,EAAOotE,GACpDA,EAAQvD,SAAWuD,EAAQvD,QAAQjnD,eAI7CtB,MAAO,CACL+rD,oBAAqB,CACnBl2B,OAAQ,SAAgB71B,GACtB,IAAI8rD,EAAU9rD,EAAM81B,IACV/9C,KACN6vE,MAAM1oD,OAAO,CAAEjY,GAAI6kE,KAEzBxqD,QAAS,SAAiBtB,GACxB,IAAI8rD,EAAU9rD,EAAM81B,IAChBg2B,EAAQvD,SAAWuD,EAAQvD,QAAQjnD,cAM3C0qD,QAAwB,SAAUhtD,GACpC,SAASgtD,EAAQ/qD,EAAKzP,GACpBwN,EAAgB/gB,KAAKlG,KAAMyZ,EAAQ,CAACyP,IACpC,IAAIgrD,EAAUl0E,KAEVksB,EAAW,CACbhd,GAAI,KACJi8D,QAAS,KACTgJ,QAAS,KACTzlE,MAAO,EACP0lE,YAAa,KACbrE,KAAM,EACNv3D,IAAK,EACLD,IAAK,IACL87D,YAAY,EACZC,YAAY,EACZC,mBAAmB,EACnBC,OAAO,EACPC,iBAAiB,EACjBC,aAAc,EACdC,qBAAqB,GAIvBT,EAAQzsD,iBAAiByE,GAEzBgoD,EAAQz6D,OAASyD,MAAM5U,OAAO4jB,EAAUzS,GACpCy6D,EAAQz6D,OAAO/K,MAAQwlE,EAAQz6D,OAAOjB,MACxC07D,EAAQz6D,OAAO/K,MAAQwlE,EAAQz6D,OAAOjB,KAEpC07D,EAAQz6D,OAAO/K,MAAQwlE,EAAQz6D,OAAOlB,MACxC27D,EAAQz6D,OAAO/K,MAAQwlE,EAAQz6D,OAAOlB,KAGxC,IAAIrJ,EAAKglE,EAAQz6D,OAAOvK,GACxB,IAAKA,EAAM,OAAOglE,EAElB,IAKI9I,EA2BAwJ,EAhCAtrD,EAAM7c,EAAEyC,GACZ,GAAmB,IAAfoa,EAAIhoB,OAAgB,OAAO4yE,EAE/B,GAAI5qD,EAAI,GAAGurD,UAAa,OAAOvrD,EAAI,GAAGurD,UAStC,GANIX,EAAQz6D,OAAO0xD,QACjBC,EAAW3+D,EAAEynE,EAAQz6D,OAAO0xD,SACnB7hD,EAAIrS,KAAK,uBAAuBA,KAAK,mBAAmB3V,SACjE8pE,EAAW9hD,EAAIrS,KAAK,uBAAuBA,KAAK,mBAAmB5B,GAAG,IAGpE+1D,GAAYA,EAAS9pE,OAAQ,CAC/B,eAAiBF,MAAM,KAAK2C,SAAQ,SAAUulC,IACvC7vB,EAAO6vB,IAAc8hC,EAAS58D,KAAK86B,KACtC4qC,EAAQz6D,OAAO6vB,GAAa95B,WAAW47D,EAAS58D,KAAK86B,QAIzD,IAAIwrC,EAAiBtzD,SAAS0yD,EAAQz6D,OAAOi7D,aAAc,IACvD5vE,OAAOsd,MAAM0yD,GACfZ,EAAQz6D,OAAOi7D,aAAe,EAE9BR,EAAQz6D,OAAOi7D,aAAeI,EAGhC,IAAIlrB,EAAap6C,WAAW47D,EAAS37D,YACT,IAAjBgK,EAAO/K,OAA0B5J,OAAOsd,MAAMwnC,KAAgBA,GAA6B,IAAfA,IACrFsqB,EAAQz6D,OAAO/K,MAAQk7C,GAKvBsqB,EAAQz6D,OAAO06D,QACjBS,EAAWnoE,EAAEynE,EAAQz6D,OAAO06D,SACnB7qD,EAAIrS,KAAK,kBAAkB3V,SACpCszE,EAAWtrD,EAAIrS,KAAK,kBAAkB5B,GAAG,IAG3C,IAAI0/D,EAAgBzrD,EAAIrS,KAAK,wBACzB+9D,EAAiB1rD,EAAIrS,KAAK,yBAE1B8D,EAAMm5D,EAAQz6D,OACds2D,EAAOh1D,EAAIg1D,KACXv3D,EAAMuC,EAAIvC,IACVD,EAAMwC,EAAIxC,IACV7J,EAAQqM,EAAIrM,MACZgmE,EAAe35D,EAAI25D,aAEvBx3D,MAAM5U,OAAO4rE,EAAS,CACpBhrD,IAAKA,EACLI,IAAKA,EACLpa,GAAIoa,EAAI,GACRyrD,cAAeA,EACfE,aAAcF,EAAc,GAC5BC,eAAgBA,EAChBE,cAAeF,EAAe,GAC9B5J,SAAUA,EACVD,QAASC,EAAWA,EAAS,QAAKjrE,EAClCy0E,SAAUA,EACVT,QAASS,EAAWA,EAAS,QAAKz0E,EAClC4vE,KAAMA,EACNv3D,IAAKA,EACLD,IAAKA,EACL7J,MAAOA,EACPgmE,aAAcA,EACdS,iBAAiB,IAGnB7rD,EAAI,GAAGurD,UAAYX,EAGnB,IACI52C,EACAT,EACAu4C,EACAC,EACAjjB,EALA70B,EAAe,GAMf+3C,EAAmB,KACnBC,GAAqB,EACrBC,GAAc,EAoBlB,SAASnM,EAAax4D,GAChBysB,IACAk4C,IACA/oE,EAAEoE,EAAEtI,QAAQyO,QAAQ+9D,GAAezzE,OACrCg0E,EAAmB,YACV7oE,EAAEoE,EAAEtI,QAAQyO,QAAQg+D,GAAgB1zE,SAC7Cg0E,EAAmB,aAEhBA,IAEL/3C,EAAapb,EAAe,eAAXtR,EAAExO,KAAwBwO,EAAEomB,cAAc,GAAGG,MAAQvmB,EAAEumB,MACxEmG,EAAazI,EAAe,eAAXjkB,EAAExO,KAAwBwO,EAAEomB,cAAc,GAAGI,MAAQxmB,EAAEwmB,MACxEiG,GAAY,EACZT,OAAc18B,EA/BhB,SAASs1E,EAAcz7B,EAAS07B,EAAcC,EAAUC,EAAiBC,EAAaj6C,GACpFtvB,aAAa8lD,GACbA,EAAY/lD,YAAW,WACL,IAAZ2tC,IACFo7B,GAAqB,EACrBG,GAAqB,GAEvBO,cAAcT,GACdz5C,IACAy5C,EAAaU,aAAY,WACvBn6C,MACCi6C,GACC77B,EAAU07B,GACZD,EAAcz7B,EAAU,EAAG07B,EAAcC,EAAUC,EAAiBC,EAAc,EAAGj6C,KAE1E,IAAZoe,EAAgB27B,EAAWC,GAmB9BH,CAAc,EADKvB,EAAQz6D,OAAO86D,kBAAoB,EAAI,EAC3B,IAAK,IAAM,KAAK,WAC7CL,EAAQoB,WAGZ,SAAShM,EAAYz4D,GACnB,GAAKysB,IACDk4C,EAAJ,CACA,IAAIp+C,EAAmB,cAAXvmB,EAAExO,KAAuBwO,EAAEomB,cAAc,GAAGG,MAAQvmB,EAAEumB,MAC9DC,EAAmB,cAAXxmB,EAAExO,KAAuBwO,EAAEomB,cAAc,GAAGI,MAAQxmB,EAAEwmB,WAEvC,IAAhBwF,GAAgC04C,IACzC14C,KAAiBA,GAAevkB,KAAKuJ,IAAIwV,EAAQkG,EAAazI,GAAKxc,KAAKuJ,IAAIuV,EAAQmG,EAAapb,KAEnG,IAAIoV,EAAWjf,KAAKuoB,IAAOvoB,KAAKuoB,IAAMzJ,EAAQmG,EAAapb,EAAI,GAAQ7J,KAAKuoB,IAAMxJ,EAAQkG,EAAazI,EAAI,GAAO,KAE9G+H,GAAetF,EAAW,MAC5B+F,GAAY,EACZhxB,aAAa8lD,GACb0jB,cAAcT,KAGlB,SAAS9L,IACPj9D,aAAa8lD,GACb0jB,cAAcT,GACdC,EAAmB,KACnBC,GAAqB,EACrBj4C,GAAY,EAGd,SAAS04C,IACHR,EACEtB,EAAQz6D,OAAOk7D,sBACjBa,GAAc,EACdtB,EAAQ+B,aAAY,IAIpBb,EACFA,GAAqB,EAGvBlB,EAAQgC,WAAU,GAEpB,SAASC,IACHX,EACEtB,EAAQz6D,OAAOk7D,sBACjBa,GAAc,EACdtB,EAAQ+B,aAAY,IAIpBb,EACFA,GAAqB,EAGvBlB,EAAQkC,WAAU,GAEpB,SAASC,EAAaxlE,IACfA,EAAEtI,OAAO2kE,UAAYgH,EAAQz6D,OAAOg7D,kBACvCe,GAAc,EACyB,iBAA5B3kE,EAAEtI,OAAO+tE,iBAClBzlE,EAAEtI,OAAO+tE,eAAiBzlE,EAAEtI,OAAOmG,MAAMpN,OACzCuP,EAAEtI,OAAOguE,aAAe1lE,EAAEtI,OAAOmG,MAAMpN,SAI7C,SAASk1E,EAAW3lE,GACA,KAAdA,EAAEm3C,SAA8B,KAAZn3C,EAAE6mB,QACxB7mB,EAAEmmB,iBACFw+C,GAAc,EACdtB,EAAQ+B,eAGZ,SAASQ,IACPjB,GAAc,EACdtB,EAAQ+B,aAAY,GAEtB,SAASS,EAAQ7lE,GACX2kE,EACFtB,EAAQyC,UAAU9lE,EAAEtI,OAAOmG,OAGzBmC,EAAE0B,QAAU1B,EAAE0B,OAAOqkE,iBACzB1C,EAAQhC,SAASrhE,EAAEtI,OAAOmG,OAAO,GAkCnC,OAhCAwlE,EAAQr+B,aAAe,WACrBm/B,EAAe1kE,GAAG,QAAS0lE,GAC3BjB,EAAczkE,GAAG,QAAS6lE,GACtBjC,EAAQz6D,OAAO46D,YAAcjJ,GAAYA,EAAS9pE,SACpD8pE,EAAS96D,GAAG,QAASomE,GACrBtL,EAAS96D,GAAG,QAAS+lE,GACrBjL,EAAS96D,GAAG,OAAQmmE,GACpBrL,EAAS96D,GAAG,QAASkmE,IAEnBtC,EAAQz6D,OAAO66D,aACjBprD,EAAI5Y,GAAG,qBAAsB+4D,GAC7BngD,EAAI5Y,GAAG,mBAAoBg5D,GAC3BpgD,EAAI5Y,GAAG,mBAAoBi5D,KAG/B2K,EAAQ/X,aAAe,WACrB6Y,EAAerjE,IAAI,QAASqkE,GAC5BjB,EAAcpjE,IAAI,QAASwkE,GACvBjC,EAAQz6D,OAAO46D,YAAcjJ,GAAYA,EAAS9pE,SACpD8pE,EAASz5D,IAAI,QAAS+kE,GACtBtL,EAASz5D,IAAI,QAAS0kE,GACtBjL,EAASz5D,IAAI,OAAQ8kE,GACrBrL,EAASz5D,IAAI,QAAS6kE,KAK1BtC,EAAQ7rD,aAGR6rD,EAAQ3nD,OAED2nD,EAiKT,OA9JKjtD,IAAkBgtD,EAAQ/sD,UAAYD,GAC3CgtD,EAAQxrE,UAAYvE,OAAOijB,OAAQF,GAAmBA,EAAgBxe,WACtEwrE,EAAQxrE,UAAUxE,YAAcgwE,EAEhCA,EAAQxrE,UAAUouE,MAAQ,WACxB,OAAO72E,KAAKk2E,aAGdjC,EAAQxrE,UAAUquE,KAAO,WACvB,OAAO92E,KAAKo2E,aAGdnC,EAAQxrE,UAAUytE,UAAY,WAE5B,OADcl2E,KACCkyE,SADDlyE,KACkB0O,MADlB1O,KACkC+vE,MAAM,GAAO,IAG/DkE,EAAQxrE,UAAU2tE,UAAY,WAE5B,OADcp2E,KACCkyE,SADDlyE,KACkB0O,MADlB1O,KACkC+vE,MAAM,GAAO,IAG/DkE,EAAQxrE,UAAUypE,SAAW,SAAmBD,EAAU8E,EAAaC,GACrE,IACIjH,EADU/vE,KACK+vE,KACfv3D,EAFUxY,KAEIwY,IACdD,EAHUvY,KAGIuY,IAEd26D,EALUlzE,KAKS0O,MAEnBA,EAAQ4J,KAAK+J,MAAM4vD,EAAWlC,GAAQA,EAgB1C,GAvBc/vE,KAQFyZ,OAAO+6D,OAASwC,GACtBtoE,EAAQ6J,IAAO7J,EAAQ8J,GACvB9J,EAAQ8J,IAAO9J,EAAQ6J,IAE3B7J,EAAQ4J,KAAKC,IAAID,KAAKE,IAAI9J,EAAO6J,GAAMC,GAGrC1T,OAAOsd,MAAM1T,KACfA,EAAQwkE,GAhBIlzE,KAkBN0O,MAAQA,IAEGwkE,IAAaxkE,KAGVqoE,EAAe,OAvBvB/2E,KAAAA,KAyBNspB,IAAIjX,QAAQ,iBAzBNrS,KAyBgC0O,OAC9C,IAAIuoE,EA1BUj3E,KA0Beo0E,YA1Bfp0E,KA0BmC0O,OASjD,OAnCc1O,KA2BForE,UA3BEprE,KA2BkBorE,SAAS9pE,SA3B3BtB,KA4BJorE,SAAS37D,IAAIwnE,GA5BTj3E,KA6BJorE,SAAS/4D,QAAQ,eAAgB,CAAEukE,iBAAiB,KA7BhD52E,KA+BF40E,UA/BE50E,KA+BkB40E,SAAStzE,QA/B3BtB,KAgCJ40E,SAAS/nE,KAAKoqE,GAhCVj3E,KAkCN2mB,KAAK,8BAlCC3mB,KAAAA,KAkC+C0O,OAlC/C1O,MAsChBi0E,EAAQxrE,UAAUwtE,YAAc,SAAsBiB,GACpD,IACI1+D,EADUxY,KACIwY,IACdD,EAFUvY,KAEIuY,IACd7J,EAAQc,WAHExP,KAGiB0O,OAO/B,GALI5J,OAAOsd,MAAM1T,KAAUA,EAAQ,GAEnCA,EAAQ4J,KAAKC,IAAID,KAAKE,IAAI9J,EAAO6J,GAAMC,GAPzBxY,KASN0O,MAAQA,GATF1O,KAUDm1E,gBAIX,OAdYn1E,KAWAorE,UAXAprE,KAWoBorE,SAAS9pE,SAAW41E,GAXxCl3E,KAYForE,SAASrhE,OAZP/J,KAAAA,KAgBNm1E,iBAAkB,EAhBZn1E,KAkBNspB,IAAIjX,QAAQ,iBAlBNrS,KAkBgC0O,OAC9C,IAAIuoE,EAnBUj3E,KAmBeo0E,YAnBfp0E,KAmBmC0O,OAUjD,OA7Bc1O,KAoBForE,UApBEprE,KAoBkBorE,SAAS9pE,SApB3BtB,KAqBJorE,SAAS37D,IAAIwnE,GArBTj3E,KAsBJorE,SAAS/4D,QAAQ,eAAgB,CAAEukE,iBAAiB,IACvDM,GAvBOl3E,KAuBWorE,SAASrhE,QAvBpB/J,KAyBF40E,UAzBE50E,KAyBkB40E,SAAStzE,QAzB3BtB,KA0BJ40E,SAAS/nE,KAAKoqE,GA1BVj3E,KA4BN2mB,KAAK,8BA5BC3mB,KAAAA,KA4B+C0O,OA5B/C1O,MAgChBi0E,EAAQxrE,UAAUkuE,UAAY,SAAoBjoE,GAClC1O,KACNm1E,iBAAkB,EAC1B,IAAIgC,EAAWn3D,OAAOtR,GACtB,GAAIyoE,EAASC,YAAY,KAAO,IAAMD,EAAS71E,QAAU61E,EAASC,YAAY,KAAO,IAAMD,EAAS71E,OAO7F,CACL,IAAI2wE,EAAWziE,WAAW2nE,EAASt2E,QAAQ,IAAK,MAChD,GAAiB,IAAboxE,EAGF,OAfUjyE,KAaF0O,MAAQyoE,EAASt2E,QAAQ,IAAK,KAb5Bb,KAcForE,SAAS37D,IAdPzP,KAcmB0O,OAdnB1O,KAiBZ,GAAI8E,OAAOsd,MAAM6vD,GAGf,OApBUjyE,KAkBF0O,MAAQ,EAlBN1O,KAmBForE,SAAS37D,IAnBPzP,KAmBmB0O,OAnBnB1O,KAsBZ,IAAIq3E,EAAS/+D,KAAKuoB,IAAK,GAtBX7gC,KAsBuByZ,OAAOi7D,cAI1C,OAHAzC,EAAY35D,KAAK+J,MAAM,EAAag1D,GAASC,QAvBjCt3E,KAuBiDyZ,OAAOi7D,aAAe,GAAK2C,EAvB5Er3E,KAwBJ0O,MAAQc,WAAWwQ,OAAOiyD,GAAUpxE,QAAQ,IAAK,MAxB7Cb,KAyBJorE,SAAS37D,IAzBLzP,KAyBiB0O,OAzBjB1O,KAIZ,OAAIm3E,EAASC,YAAY,OAASD,EAASx1E,QAAQ,MAAQw1E,EAASC,YAAY,OAASD,EAASx1E,QAAQ,MACxGw1E,EAAWA,EAASt0E,MAAM,GAAI,GALpB7C,KAMF0O,MAAQyoE,EANNn3E,KAOForE,SAAS37D,IAPPzP,KAOmB0O,OAPnB1O,OAAAA,KA4BN0O,MAAQyoE,EA5BFn3E,KA6BNorE,SAAS37D,IAAI0nE,GA7BPn3E,OAiChBi0E,EAAQxrE,UAAU4qE,SAAW,WAC3B,OAAOrzE,KAAK0O,OAGdulE,EAAQxrE,UAAU2rE,YAAc,SAAsB1lE,GAEpD,OADc1O,KACDyZ,OAAO26D,YADNp0E,KAECyZ,OAAO26D,YAAYluE,KAFpBlG,KAEkC0O,GADNA,GAI5CulE,EAAQxrE,UAAU8jB,KAAO,WAGvB,GAFcvsB,KACN61C,eADM71C,KAEF40E,UAFE50E,KAEkB40E,SAAStzE,OAAQ,CAC/C,IAAI21E,EAHQj3E,KAGiBo0E,YAHjBp0E,KAGqC0O,OAHrC1O,KAIJ40E,SAAS/nE,KAAKoqE,GAExB,OANcj3E,MAShBi0E,EAAQxrE,UAAU8gB,QAAU,WAC1B,IAAI2qD,EAAUl0E,KACdk0E,EAAQ5qD,IAAIjX,QAAQ,yBACpB6hE,EAAQvtD,KAAK,4CAA6CutD,UACnDA,EAAQ5qD,IAAI,GAAGurD,UACtBX,EAAQ/X,eACRj/C,MAAMU,YAAYs2D,GAClBA,EAAU,MAGLD,EA/akB,CAgbzBhtD,iBAEEswD,UAAY,CACd/yE,KAAM,UACN2iB,OAAQ,WACN,IAAI+B,EAAMlpB,KACVkpB,EAAIgrD,QAAUh3D,MAAM5U,OAClBugB,mBAAmB,CACjBE,gBAAiB,WACjB9kB,YAAagwE,QACb/qD,IAAKA,EACLD,QAAS,cAEX,CACEoqD,SAAU,SAAkBnkE,QACd,IAAPA,IAAgBA,EAAK,YAE1B,IAAIglE,EAAUhrD,EAAIgrD,QAAQhrE,IAAIgG,GAC9B,GAAIglE,EAAW,OAAOA,EAAQb,YAGhCnB,SAAU,SAAkBhjE,EAAIR,QAClB,IAAPQ,IAAgBA,EAAK,YAE1B,IAAIglE,EAAUhrD,EAAIgrD,QAAQhrE,IAAIgG,GAC9B,GAAIglE,EAAW,OAAOA,EAAQhC,SAASxjE,OAM/Cia,OAAQ,CACNsrD,QAASA,SAEX3jE,GAAI,CACFgjD,WAAY,SAAoB9nB,GAC9B,IAAItiB,EAAMlpB,KACVyM,EAAE++B,GAAOv0B,KAAK,iBAAiB3Q,MAAK,SAAUK,EAAO6wE,GACnD,IAAIloE,EAAU7C,EAAE+qE,GAAWloE,UAC3B4Z,EAAIgrD,QAAQ/sD,OAAOjK,MAAM5U,OAAO,CAAE4G,GAAIsoE,GAAaloE,GAAW,SAGlE2xD,gBAAiB,SAAyBz1B,GACxC/+B,EAAE++B,GAAOv0B,KAAK,iBAAiB3Q,MAAK,SAAUK,EAAO6wE,GAC/CA,EAAU3C,WAAa2C,EAAU3C,UAAUtrD,cAGnDy5B,SAAU,SAAkBvN,GAC1B,IAAIvsB,EAAMlpB,KACVy1C,EAAKnsB,IAAIrS,KAAK,iBAAiB3Q,MAAK,SAAUK,EAAO6wE,GACnD,IAAIloE,EAAU7C,EAAE+qE,GAAWloE,UAC3B4Z,EAAIgrD,QAAQ/sD,OAAOjK,MAAM5U,OAAO,CAAE4G,GAAIsoE,GAAaloE,GAAW,SAGlEuzC,iBAAkB,SAA0BpN,GAC1CA,EAAKnsB,IAAIrS,KAAK,iBAAiB3Q,MAAK,SAAUK,EAAO6wE,GAC/CA,EAAU3C,WAAa2C,EAAU3C,UAAUtrD,eAIrDtB,MAAO,CACLwvD,eAAgB,CACd35B,OAAQ,SAAgB71B,GACtB,IACIuvD,EAAYvvD,EAAM81B,IAClBzuC,EAAU7C,EAAE+qE,GAAWloE,UAFjBtP,KAGNk0E,QAAQ/sD,OAAOjK,MAAM5U,OAAO,CAAE4G,GAAIsoE,GAAaloE,GAAW,MAEhEia,QAAS,SAAiBtB,GACxB,IAAIuvD,EAAYvvD,EAAM81B,IAClBy5B,EAAU3C,WAAa2C,EAAU3C,UAAUtrD,cAMnDmuD,YAA4B,SAAUzwD,GACxC,SAASywD,EAAYxuD,EAAKzP,QACR,IAAXA,IAAoBA,EAAS,IAElCwN,EAAgB/gB,KAAKlG,KAAMyZ,EAAQ,CAACyP,IACpC,IAAIyuD,EAAK33E,KAELksB,EAAWhP,MAAM5U,OAAO,CAC1BgI,GAAI,IACH4Y,EAAIzP,OAAOm+D,kBAEiC,IAApC1rD,EAAS2rD,yBAClB3rD,EAAS2rD,uBAAuC,WAAd3uD,EAAI/C,OAIxCwxD,EAAGlwD,iBAAiByE,GAEpByrD,EAAGl+D,OAASyD,MAAM5U,OAAO,GAAI4jB,EAAUzS,GAEvCk+D,EAAGzuD,IAAMA,EAET,IAAII,EAAM7c,EAAEkrE,EAAGl+D,OAAOvK,IAAImG,GAAG,GAC7B,GAAmB,IAAfiU,EAAIhoB,OAAgB,OAAOq2E,EAE/B,GAAIruD,EAAI,GAAGwuD,cAAiB,OAAOxuD,EAAI,GAAGwuD,cAE1C,IAGIlD,EAHAmD,EAAYzuD,EAAIrS,KAAK,UAAU5B,GAAG,GACtC,GAAyB,IAArB0iE,EAAUz2E,OAAgB,OAAOq2E,EAGjCA,EAAGl+D,OAAOu+D,eAEY,KADxBpD,EAAWnoE,EAAEkrE,EAAGl+D,OAAO06D,UACV7yE,SACXszE,EAAWtrD,EAAIrS,KAAK,gBAEE,IAApB29D,EAAStzE,SACXszE,EAAWnoE,EAAE,mCACJ2J,YAAYkT,EAAIrS,KAAK,iBAKlC,IAAImH,EAAM3E,EAAO2E,IACZA,IACCkL,EAAI9a,KAAK,SAAgC,MAArB8a,EAAI9a,KAAK,QAAmB4P,EAAMkL,EAAI9a,KAAK,QAC1DupE,EAAUvpE,KAAK,UAAW4P,EAAO25D,EAAUvpE,KAAK,QAAQpB,cAAiB,aAE/EgR,IAAOA,EAAMu5D,EAAGl+D,OAAO2E,KAE5B,IAAIzO,EAAWooE,EAAU,GAAGpoE,SACxBsoE,EAAYtoE,EAAW,WAAa,QACpChC,EAAKuP,MAAMvP,KAqBf,SAASqtC,IACP28B,EAAGluD,OAEL,SAASyuD,IACP,IAAIxpE,EAAQipE,EAAGI,UAAUtoE,MACzBkoE,EAAGruD,IAAIjX,QAAQ,qBAAsB3D,GACrCipE,EAAGhxD,KAAK,kCAAmCgxD,EAAIjpE,GAC3CipE,EAAG/d,IACL+d,EAAG/d,GAAGiF,aAER8Y,EAAGK,eAWL,SAASxI,IACP,IAAI2I,EACAtjE,EAIAujE,EAFA1pE,EADU1O,KACM0O,MAChB2pE,EAAa,GAEjB,GAAqB,aAJPr4E,KAIFqC,KAAqB,CAC/B,IAAK,IAAIrB,EAAI,EAAGA,EAAI22E,EAAGlM,SAASnmE,QAAQhE,OAAQN,GAAK,GACnDm3E,EAAWR,EAAGlM,SAASnmE,QAAQtE,IAClB0N,QAAUA,IACrBypE,EAASvoE,SARD5P,KAQoBsrE,SAE1B6M,EAASvoE,WAEXiF,GADAujE,EAAYD,EAAS7oE,QAAU6oE,EAAS7oE,QAAQ8oE,UAAY3rE,EAAE0rE,GAAUzzE,KAAK,2BACpC,IAAd0zE,EAA4BA,EAAYD,EAASrjE,YAC5EujE,EAAW32E,KAAKmT,EAAK1T,SAGrBw2E,EAAGW,WACLX,EAAGY,sBAGLJ,EAAWR,EAAGI,UAAU9gE,KAAM,iBAAoBvI,EAAQ,MAAQ,MAEhEypE,EAAWR,EAAGI,UAAU9gE,KAAK,UAAUvE,QAAO,SAAU/L,EAAO6xE,GAAS,OAAOA,EAAM9pE,QAAUA,KAAU,IAI3G2pE,EAAa,CADbxjE,GADAujE,EAAYD,EAAS7oE,QAAU6oE,EAAS7oE,QAAQ8oE,UAAY3rE,EAAE0rE,GAAUzzE,KAAK,qBACpC,IAAd0zE,EAA4BA,EAAYD,EAASrjE,aAE5E6iE,EAAGlM,SAAS/8D,MAAQA,EAGtBipE,EAAGI,UAAU1lE,QAAQ,UACjBslE,EAAGl+D,OAAOu+D,cACZL,EAAG/C,SAAS//D,KAAK8iE,EAAGc,gBAAgBJ,IAElCV,EAAGl+D,OAAOi/D,eAAkC,UAAjBf,EAAGM,WAChCN,EAAG5tD,QAiBP,OA/FA7M,MAAM5U,OAAOqvE,EAAI,CACfruD,IAAKA,EACLpa,GAAIoa,EAAI,GACRyuD,UAAWA,EACXtM,SAAUsM,EAAU,GACpBnD,SAAUA,EACVT,QAASS,GAAYA,EAAS,GAC9Bx2D,IAAKA,EACLzO,SAAUA,EACVsoE,UAAWA,EACXtqE,GAAIA,EACJgrE,UAAYV,EAAY,IAAMtqE,EAC9BirE,WAAYb,EAAUvpE,KAAK,QAC3B8pE,UAAWP,EAAUvpE,KAAK,cAAgBiL,EAAO6+D,YAGnDhvD,EAAI,GAAGwuD,cAAgBH,EAevBA,EAAG9hC,aAAe,WAChBvsB,EAAIhZ,GAAG,QAAS0qC,GAChB1xB,EAAIhZ,GAAG,SAAU,SAAU4nE,IAE7BP,EAAGxb,aAAe,WAChB7yC,EAAI3X,IAAI,QAASqpC,GACjB1xB,EAAI3X,IAAI,SAAU,SAAUumE,IA6C9BP,EAAGkB,mBAAqB,WACtBlB,EAAGlT,aAAan0D,GAAG,SAAU,8CAA+Ck/D,IAE9EmI,EAAGmB,mBAAqB,WACtBnB,EAAGlT,aAAa9yD,IAAI,SAAU,8CAA+C69D,IAI/EmI,EAAGtvD,aAGHsvD,EAAGprD,OAEIorD,EAGJ1wD,IAAkBywD,EAAYxwD,UAAYD,GAC/CywD,EAAYjvE,UAAYvE,OAAOijB,OAAQF,GAAmBA,EAAgBxe,WAC1EivE,EAAYjvE,UAAUxE,YAAcyzE,EAEpC,IAAIhqD,EAAqB,CAAE2O,KAAM,CAAEx0B,cAAc,IAqoBjD,OAnoBA6vE,EAAYjvE,UAAUypE,SAAW,SAAmBxjE,GAClD,IAGIypE,EACAC,EACAvjE,EALA8iE,EAAK33E,KACLiyE,EAAWvjE,EACX2pE,EAAa,GAIjB,GAAIV,EAAGhoE,SAAU,CACV7M,MAAMC,QAAQkvE,KAAaA,EAAW,CAACA,IAC5C,IAAK,IAAIjxE,EAAI,EAAGA,EAAI22E,EAAGlM,SAASnmE,QAAQhE,OAAQN,GAAK,EACnDm3E,EAAWR,EAAGlM,SAASnmE,QAAQtE,GAC3BixE,EAAStwE,QAAQw2E,EAASzpE,QAAU,EACtCypE,EAASvoE,UAAW,EAEpBuoE,EAASvoE,UAAW,EAElBuoE,EAASvoE,WAEXiF,GADAujE,EAAYD,EAAS7oE,QAAU6oE,EAAS7oE,QAAQ8oE,UAAY3rE,EAAE0rE,GAAUzzE,KAAK,2BACpC,IAAd0zE,EAA4BA,EAAYD,EAASrjE,YAC5EujE,EAAW32E,KAAKmT,EAAK1T,cAIzBg3E,EAAWR,EAAGI,UAAU9gE,KAAM,iBAAoBg7D,EAAW,MAAQ,MAInEoG,EAAa,CADbxjE,GADAujE,EAAYD,EAAS7oE,QAAU6oE,EAAS7oE,QAAQ8oE,UAAY3rE,EAAE0rE,GAAUzzE,KAAK,qBACpC,IAAd0zE,EAA4BA,EAAYD,EAASrjE,cAG9E6iE,EAAGlM,SAAS/8D,MAAQujE,EAMtB,OAJI0F,EAAGl+D,OAAOu+D,cACZL,EAAG/C,SAAS//D,KAAK8iE,EAAGc,gBAAgBJ,IAEtCV,EAAGI,UAAU1lE,QAAQ,UACdslE,GAGTD,EAAYjvE,UAAUswE,WAAa,WACjC,IAAIpB,EAAK33E,KACL23E,EAAGl+D,OAAOu+D,cACZL,EAAG/C,SAAS//D,KAAK8iE,EAAGc,gBAAgB,KAEtCd,EAAGI,UAAU9gE,KAAK,UAAU3Q,MAAK,SAAU0yE,EAAab,GACtDA,EAASvoE,UAAW,EACpBuoE,EAAS7M,SAAU,KAErBqM,EAAGI,UAAU,GAAGrpE,MAAQ,KAEpBipE,EAAGlT,cACLkT,EAAGlT,aAAaxtD,KAAM,eAAmB0gE,EAAY,UAAI,oCAA2CA,EAAY,UAAI,oBAAwBzwE,KAAK,WAAW,GAE9JywE,EAAGI,UAAU1lE,QAAQ,WAGvBqlE,EAAYjvE,UAAU4qE,SAAW,WAE/B,OADSrzE,KACC+3E,UAAUtoE,OAGtBie,EAAmB2O,KAAKnzB,IAAM,WAC5B,IAGImzB,EAFA5iB,EADMzZ,KACOyZ,OACb6P,EAFMtpB,KAEIspB,IAQd,GANI7P,EAAO4iB,OACTA,EAAO5iB,EAAO4iB,MAEXA,IACHA,EAAO/S,EAAIjlB,QAAQ,SAAS/C,QAAUgoB,EAAIjlB,QAAQ,SAAS,GAAGy0C,SAE3Dzc,GAA0B,SAAlB5iB,EAAOw/D,OAClB,MAAMjzE,MAAM,0CAEd,OAAOq2B,GAGTq7C,EAAYjvE,UAAU8vE,eAAiB,WACrC,IACI9T,EADKzkE,KACaykE,aADbzkE,KAEFyrE,SAAS37D,gBAAgBxO,QAFvBtB,KAEoCs4E,UAC3C7T,EAAaxtD,KAAK,0BAA0B3Q,MAAK,SAAUK,EAAOwkE,GAC3DA,EAAQG,QAGX7+D,EAAE0+D,GAAS9mE,QAAQ,MAAM6J,YAAY,YAFrCzB,EAAE0+D,GAAS9mE,QAAQ,MAAMwJ,SAAS,eAMtC42D,EAAaxtD,KAAK,aAAa/I,YAAY,aAI/CwpE,EAAYjvE,UAAUgwE,gBAAkB,SAA0B5oE,GAQhE,OAPS7P,KAEFyZ,OAAOg/D,gBAFLz4E,KAGQyZ,OAAOg/D,gBAAgBvyE,KAH/BlG,KAGwC6P,EAHxC7P,MAKK6P,EAAO1L,KAAK,OAK5BuzE,EAAYjvE,UAAUuvE,aAAe,SAAuBtpE,GAC1D,IACIwqE,EAAa,QACI,IAAVxqE,EAEPwqE,EADEp2E,MAAMC,QAAQ2L,GACHA,EAEA,CAACA,GANT1O,KASJ+3E,UAAU9gE,KAAK,UAAU3Q,MAAK,SAAU0yE,EAAab,GACtD,IAAIgB,EAAY1sE,EAAE0rE,GAClB,GAAIA,EAASvoE,SAAU,CACrB,IAAIwoE,EAAYD,EAAS7oE,QAAU6oE,EAAS7oE,QAAQ8oE,UAAYe,EAAUz0E,KAAK,oBAC3E0zE,QAAkC,IAAdA,EACtBc,EAAWx3E,KAAK02E,GAEhBc,EAAWx3E,KAAKy2E,EAASrjE,YAAY3T,YAhBpCnB,KAqBFyZ,OAAOu+D,cArBLh4E,KAsBJ40E,SAAS//D,KAtBL7U,KAsBay4E,gBAAgBS,KAIxCxB,EAAYjvE,UAAU2wE,aAAe,WACnC,IAGIC,EAHA1B,EAAK33E,KACLmmB,EAAQwxD,EAAGzuD,IAAI/C,MACfu0C,EAAQ,GAkDZ,OAhDAid,EAAGI,UAAU9gE,KAAK,UAAU3Q,MAAK,SAAUK,EAAOwxE,GAChD,IAAIgB,EAAY1sE,EAAE0rE,GACdmB,EAAaH,EAAU7pE,UACvBiqE,EAAcD,EAAWC,aAAe5B,EAAGl+D,OAAO8/D,YAClDC,EAAaF,EAAWE,YAAc7B,EAAGl+D,OAAO+/D,WAChDC,EAA0B,QAAVtzD,IAAoBmzD,EAAWG,eAAiB9B,EAAGl+D,OAAOggE,eAC1EC,EAAyB,OAAVvzD,IAAmBmzD,EAAWI,cAAgB/B,EAAGl+D,OAAOigE,cACvEC,EAA6B,WAAVxzD,IAAuBmzD,EAAWK,kBAAoBhC,EAAGl+D,OAAOkgE,kBACnFC,EAAiBL,GAAeC,GAAcC,GAAiBC,GAAgBC,EAC/EE,EAAcP,EAAWO,YAEzBC,EAAkBR,EAAWS,aAAe,GAC5CZ,EAAU,GAAGlqB,WAAY6qB,GAAmB,aAEhD,IAAIE,EAAgBb,EAAUtjE,OAAO,YAAY,GAC7CokE,EAAmBD,GAAiBA,EAAcjrB,MAClDmrB,GAAgB,EAChBF,GAAiBA,IAAkBX,IACrCa,GAAgB,EAChBb,EAAkBW,EAClBtf,EAAMh5D,KAAK,CACTy4E,WAAYF,EACZG,QAASF,KAGbxf,EAAMh5D,KAAK,CACTgN,MAAOyqE,EAAU,GAAGzqE,MACpBmG,KAAMskE,EAAU,GAAGrkE,YAAY3T,OAC/ByO,SAAUupE,EAAU,GAAGvpE,SACvByqE,QAASL,EACTG,WAAYF,EACZK,MAAOf,EACPrqB,KAAMsqB,EACNe,QAASd,EACTe,OAAQd,EACRe,WAAYd,EACZz+B,MAAO2+B,EACP/rE,UAAWgsE,EACX7qB,SAAUkqB,EAAU,GAAGlqB,SACvBthD,GAAIgqE,EAAGhqE,GACP+sE,SAAUd,EACVe,SAA2B,aAAjBhD,EAAGM,UACb2C,MAAwB,UAAjBjD,EAAGM,UACVU,UAAWhB,EAAGgB,UACdV,UAAWN,EAAGM,eAGlBN,EAAGjd,MAAQA,EACJA,GAGTgd,EAAYjvE,UAAUoyE,gBAAkB,WACtC,IAAIlD,EAAK33E,KACT,OAAI23E,EAAGl+D,OAAOohE,gBAA0BlD,EAAGl+D,OAAOohE,gBAAgB30E,KAAKyxE,GACnD,wKAAmLA,EAAGl+D,OAAOqhE,qBAAuB,SAAW,kBAAuBnD,EAAGl+D,OAA2B,qBAAI,uIAA8Ik+D,EAAGl+D,OAAOo+D,uBAA0B,sDAA2DF,EAAGl+D,OAA2B,qBAAI,sBAAyB,IAAM,yCAI5lBi+D,EAAYjvE,UAAU+xD,WAAa,SAAqBC,EAAM9zD,GAC5D,IAuBI+5D,EApBoBqa,EAHpBpD,EAAK33E,KACT,GAAI23E,EAAGl+D,OAAO+gD,WAAc,OAAOmd,EAAGl+D,OAAO+gD,WAAWt0D,KAAKyxE,EAAIld,EAAM9zD,GAuBvE,GAAI8zD,EAAK2f,QACP1Z,EAAW,4BAAiCjG,EAAe,WAAI,YAC1D,CACL,IACIxL,EADAr/C,EAAW6qD,EAAK7qD,SAEpB,GAAI+nE,EAAGl+D,OAAOs8C,YAAa,CACzB,IAAIilB,EAAUrD,EAAGtE,WACjBzjE,EAAW+nE,EAAGhoE,SAAWqrE,EAAQr5E,QAAQ84D,EAAK/rD,QAAU,EAAIssE,IAAYvgB,EAAK/rD,MACzEipE,EAAGhoE,WACLs/C,EAAW0oB,EAAGhoE,WAAaC,GAAYorE,EAAQ15E,SAAWkgB,SAASm2D,EAAGW,UAAW,KAIrF,IAAIppB,EAAOuL,EAAKvL,KACZqrB,EAAU9f,EAAK8f,QACfC,EAAS/f,EAAK+f,OACdC,EAAahgB,EAAKggB,WAClBQ,EAAU/rB,GAAQqrB,GAAWC,GAAUC,EACvCS,QAtCe,KADGH,EAuCW7rB,GAAQqrB,GAAWC,GAAUC,GAAc,MAtChDM,EAAY,IAEpCA,EAAUp5E,QAAQ,MAAQ,EACrBo5E,EAAU35E,MAAM,KAAK,GAEvB,IAkCH+5E,EAhCN,SAAsBJ,GAGpB,QAFmB,IAAdA,IAAuBA,EAAY,IAEpCA,EAAUp5E,QAAQ,MAAQ,EAAG,CAC/B,IAAImM,EAAYitE,EAAU35E,MAAM,KAAK,GAGrC,MAFkB,OAAd0M,IAAsBA,EAAY,YACpB,aAAdA,IAA4BA,EAAY,kBACrCA,EAET,OAAOitE,EAuBSK,CAAalsB,GAAQqrB,GAAWC,GAAUC,GAAc,IAExE/Z,EAAW,yBAA4BjG,EAAK3sD,WAAa,KAAOmhD,EAAW,YAAc,IAAM,oCAAyCwL,EAAc,UAAI,6CAAkDA,EAAc,UAAI,WAAgBA,EAAc,UAAI,YAAiBA,EAAU,MAAI,MAAS7qD,EAAW,UAAY,IAAM,uCAA2C6qD,EAAc,UAAI,wBAA2BA,EAAKigB,SAAY,8DAAkEO,EAAW,kBAAqBE,EAAY,KAAQD,EAAc,OAAU,IAAM,sBAAwBzgB,EAAK6f,MAAS,aAAiB7f,EAAU,MAAI,KAAS,IAAM,uCAA0C,IAAM,gFAAqFA,EAAKvf,MAAS,eAAkBuf,EAAU,MAAK,IAAM,KAASA,EAAS,KAAI,wEAEx2B,OAAOiG,GAGTgX,EAAYjvE,UAAU4yE,YAAc,WAClC,IAAI1D,EAAK33E,KACT,OAAI23E,EAAGl+D,OAAO4hE,YAAsB1D,EAAGl+D,OAAO4hE,YAAYn1E,KAAKyxE,EAAIA,EAAGjd,OACtD,WAAcid,EAAGjd,MAAM/lD,KAAI,SAAU8lD,EAAM9zD,GAAS,MAAQ,GAAMgxE,EAAGnd,WAAWC,EAAM9zD,MAAaxC,KAAK,IAAO,UAIjIuzE,EAAYjvE,UAAU6yE,WAAa,WACjC,IAAI3D,EAAK33E,KACT,GAAI23E,EAAGl+D,OAAO6hE,WAAc,OAAO3D,EAAGl+D,OAAO6hE,WAAWp1E,KAAKyxE,EAAIA,EAAGjd,OACpE,IAAI6gB,EAAY5D,EAAGl+D,OAAO8hE,UAC1B,QAAyB,IAAdA,EAA2B,CACpC,IAAIC,EAAe7D,EAAGruD,IAAIrS,KAAK,eAC/BskE,EAAYC,EAAal6E,OAASk6E,EAAa3mE,OAAO1T,OAAS,GAIjE,MADe,8CADAw2E,EAAGl+D,OAAO6tC,SACkD,qDAA4DqwB,EAAa,WAAI,mCAAuCA,EAAGl+D,OAAOgiE,iBAAoB,SAAY9D,EAAGl+D,OAAuB,iBAAK,IAAM,4FAAkGk+D,EAAGl+D,OAAOgiE,iBAAoB,SAAY9D,EAAGl+D,OAAuB,iBAAK,IAAM,oKAAgLk+D,EAAGl+D,OAAuB,iBAAI,iEAAmE8hE,EAAa,sBAA0BA,EAAY,SAAY,IAAM,kBAAoB5D,EAAGl+D,OAAOiiE,UAAa,0BAA+B/D,EAAGkD,kBAAqB,SAAY,IAAM,gDAAkDlD,EAAGl+D,OAAOiiE,UAAY,yCAA2C,IAAM,sFAA4F/D,EAAK,GAAI,KAAOA,EAAGl+D,OAAOs8C,YAAc,gBAAkB,IAAM,KAAO4hB,EAAGl+D,OAAOkiE,eAAkB,SAAYhE,EAAGl+D,OAAqB,eAAK,IAAM,yBAA4Bk+D,EAAGl+D,OAAOs8C,aAAe4hB,EAAG0D,YAAY1D,EAAGjd,QAAU,+DAIn0Cgd,EAAYjvE,UAAUmzE,YAAc,WAClC,IAAIjE,EAAK33E,KACT,GAAI23E,EAAGl+D,OAAOmiE,YAAe,OAAOjE,EAAGl+D,OAAOmiE,YAAY11E,KAAKyxE,EAAIA,EAAGjd,OACtE,IAAI6gB,EAAY5D,EAAGl+D,OAAO8hE,UAC1B,QAAyB,IAAdA,EAA2B,CACpC,IAAIC,EAAe7D,EAAGruD,IAAIrS,KAAK,eAC/BskE,EAAYC,EAAal6E,OAASk6E,EAAa3mE,OAAO1T,OAAS,GAIjE,MADgB,iDADDw2E,EAAGl+D,OAAO6tC,UAAY,IACyC,KAAOqwB,EAAGl+D,OAAOoiE,sBAAwB,0BAA4B,IAAM,uBAA4BlE,EAAa,WAAI,iFAAuFA,EAAGl+D,OAAOiiE,UAAY,sBAAwB,IAAM,qEAA2E/D,EAAGl+D,OAAOgiE,iBAAoB,SAAY9D,EAAGl+D,OAAuB,iBAAK,IAAM,uHAA8H8hE,EAAa,sBAA0BA,EAAY,SAAY,IAAM,2IAAkJ5D,EAAa,WAAI,QAAWA,EAAGl+D,OAAyB,mBAAI,yDAA2Dk+D,EAAGl+D,OAAOiiE,UAAa,0BAA+B/D,EAAGkD,kBAAqB,SAAY,IAAM,4DAA8DlD,EAAGl+D,OAAOiiE,UAAY,yCAA2C,IAAM,8FAAoG/D,EAAK,GAAI,KAAOA,EAAGl+D,OAAOs8C,YAAc,gBAAkB,IAAM,KAAO4hB,EAAGl+D,OAAOkiE,eAAkB,SAAYhE,EAAGl+D,OAAqB,eAAK,IAAM,6BAAgCk+D,EAAGl+D,OAAOs8C,aAAe4hB,EAAG0D,YAAY1D,EAAGjd,QAAU,yGAIz+Cgd,EAAYjvE,UAAUqzE,YAAc,WAClC,IAAInE,EAAK33E,KACT,OAAI23E,EAAGl+D,OAAOqiE,YAAsBnE,EAAGl+D,OAAOqiE,YAAY51E,KAAKyxE,EAAIA,EAAGjd,OAEtD,sDADDid,EAAGl+D,OAAO6tC,SAC2D,uBAA4BqwB,EAAa,WAAI,gDAAoDA,EAAGl+D,OAAOsiE,kBAAqB,SAAYpE,EAAGl+D,OAAwB,kBAAK,IAAM,+JAA2Kk+D,EAAGl+D,OAAyB,mBAAI,6LAAqMk+D,EAAK,GAAI,KAAOA,EAAGl+D,OAAOs8C,YAAc,gBAAkB,IAAM,KAAO4hB,EAAGl+D,OAAOkiE,eAAkB,SAAYhE,EAAGl+D,OAAqB,eAAK,IAAM,2BAA8Bk+D,EAAGl+D,OAAOs8C,aAAe4hB,EAAG0D,YAAY1D,EAAGjd,QAAU,mFAI73Bgd,EAAYjvE,UAAU4lD,cAAgB,WACpC,IAAIspB,EAAK33E,KACT,OAAI23E,EAAGl+D,OAAO40C,cAAwBspB,EAAGl+D,OAAO40C,cAAcnoD,KAAKyxE,EAAIA,EAAGjd,OAExD,oDADHid,EAAGl+D,OAAO6tC,SAC2D,uBAA4BqwB,EAAa,WAAI,yFAAgGA,EAAK,GAAI,KAAOA,EAAGl+D,OAAOs8C,YAAc,gBAAkB,IAAM,KAAO4hB,EAAGl+D,OAAOkiE,eAAkB,SAAYhE,EAAGl+D,OAAqB,eAAK,IAAM,yBAA4Bk+D,EAAGl+D,OAAOs8C,aAAe4hB,EAAG0D,YAAY1D,EAAGjd,QAAU,+DAItcgd,EAAYjvE,UAAUuzE,qBAAuB,WAC3C,IAAIrE,EAAK33E,KACLyZ,EAASk+D,EAAGl+D,OACZgrD,EAAekT,EAAGlT,aACtB,IAAKkT,EAAGnyB,OAAU,OAAOmyB,EACzB,GAAIl+D,EAAOs8C,YAAa,CACtB,IAAIkmB,EACJtE,EAAG/d,GAAGc,MAAM32D,SAAQ,SAAU02D,EAAM9zD,QACL,IAAlBs1E,GAAiCxhB,EAAK7qD,WAC/CqsE,EAAgBt1E,WAGS,IAAlBs1E,GACTtE,EAAG/d,GAAG4D,aAAaye,OAEhB,CACL,IAAIC,EAAkBzX,EAAaxtD,KAAK,iBAAiB5S,QAAQ,MACjE,IAAK63E,EAAgB56E,OAAU,OAAOq2E,EACtC,IAAIp0B,EAAiBkhB,EAAaxtD,KAAK,iBACvCssC,EAAevvC,UAAUkoE,EAAgBvoE,SAASS,IAAMmvC,EAAe5vC,SAASS,IAAMoN,SAAS+hC,EAAerwC,IAAI,eAAgB,KAEpI,OAAOykE,GAGTD,EAAYjvE,UAAUg9C,OAAS,SAAiBpjD,EAAMqiE,GACpD,IAAIiT,EAAK33E,KACLkpB,EAAMyuD,EAAGzuD,IACTu7C,EAAeh4D,EAAEi4D,GAuBrB,GAtBAiT,EAAGlT,aAAeA,EAClBkT,EAAGwE,SAAW95E,EACds1E,EAAGnyB,QAAS,EAGRmyB,EAAGl+D,OAAOs8C,cACZ4hB,EAAG/d,GAAK1wC,EAAI6sC,YAAY5uC,OAAO,CAC7BjY,GAAIu1D,EAAaxtD,KAAK,iBACtByjD,MAAOid,EAAGjd,MACVF,WAAYmd,EAAGnd,WAAWn/C,KAAKs8D,GAC/BpkE,OAAQokE,EAAGl+D,OAAO2iE,kBAClBliB,aAAc,SAAsB57C,EAAOm8C,GACzC,SAAIA,EAAK5lD,MAAQ4lD,EAAK5lD,KAAKzH,cAAczL,QAAQ2c,EAAMnd,OAAOiM,gBAAkB,OAKlFuqE,EAAGl+D,OAAOuiE,sBACZrE,EAAGqE,uBAIDrE,EAAGl+D,OAAOiiE,UAAW,CACvB,IAAIW,EAAe5X,EAAaxtD,KAAK,cAKrC,GAJa,SAAT5U,GAAiC,QAAd6mB,EAAI/C,QACzBk2D,EAAe5vE,EAAEyc,EAAIme,OAAOC,YAAYm9B,IAAextD,KAAK,eAG1D0gE,EAAGl+D,OAAO6iE,0BAAqC,SAATj6E,GAA4B,UAATA,GAAmB,CAC9E,IAAIk6E,EAAc,MAGhBA,EAD+C,iBAAtC5E,EAAGl+D,OAAO6iE,wBACL7vE,EAAG,0CAA+CkrE,EAAGl+D,OAA8B,wBAAI,UAC/C,kBAAtCk+D,EAAGl+D,OAAO6iE,wBACZ7vE,EAAE,8DAEFkrE,EAAGl+D,OAAO6iE,0BAIxB7X,EAAaxtD,KAAK,iBAAiB1B,OAAOgnE,EAAY,IAI1D,IAAIC,EAAkBt/D,MAAM5U,OAAO,CACjC4G,GAAImtE,EACJ31B,WAAY+d,EAAaxtD,KAAK,uBAC9BwlE,gBAAkB,sBAAyB9E,EAAK,GAChD+E,SAAU,eACsB,iBAAxB/E,EAAGl+D,OAAOiiE,UAAyB/D,EAAGl+D,OAAOiiE,UAAY,IAEnE/D,EAAG+D,UAAYxyD,EAAIwyD,UAAUv0D,OAAOq1D,GAIlC7E,EAAGW,WACLX,EAAGY,iBAIDZ,EAAGl+D,OAAOi/D,eACZf,EAAGlT,aAAaxtD,KAAM,6BAAmC0gE,EAAY,UAAI,cAAgBtzE,QAAQ,SAAS2N,KAAK,SAAS,WACtH2lE,EAAG5tD,WAKP4tD,EAAGkB,qBAEHlB,EAAGruD,IAAIjX,QAAQ,oBACfslE,EAAGhxD,KAAK,8BAA+BgxD,IAGzCD,EAAYjvE,UAAUi9C,SAAW,WACtB1lD,KAENspB,IAAIjX,QAAQ,sBAFNrS,KAGN2mB,KAAK,kCAHC3mB,OAMX03E,EAAYjvE,UAAUk9C,QAAU,WAC9B,IAAIgyB,EAAK33E,KACL23E,EAAGhxB,YAGHgxB,EAAG/d,IAAM+d,EAAG/d,GAAGrwC,UACjBouD,EAAG/d,GAAGrwC,UACNouD,EAAG/d,GAAK,YACD+d,EAAG/d,IAIR+d,EAAG+D,WAAa/D,EAAG+D,UAAUnyD,UAC/BouD,EAAG+D,UAAUnyD,UACbouD,EAAG+D,UAAY,YACR/D,EAAG+D,WAGZ/D,EAAGmB,qBAEHnB,EAAGruD,IAAIjX,QAAQ,qBACfslE,EAAGhxD,KAAK,gCAAiCgxD,KAG3CD,EAAYjvE,UAAUm9C,SAAW,WAC/B,IAAI+xB,EAAK33E,KACL23E,EAAGhxB,YACPgxB,EAAGnyB,QAAS,EACZmyB,EAAGlT,aAAe,YACXkT,EAAGlT,aAEVkT,EAAGruD,IAAIjX,QAAQ,sBACfslE,EAAGhxD,KAAK,kCAAmCgxD,KAG7CD,EAAYjvE,UAAUk0E,SAAW,WAC/B,IAAIhF,EAAK33E,KACT,GAAI23E,EAAGnyB,OAAU,OAAOmyB,EACxBA,EAAGyB,eACH,IAAIwD,EAAWjF,EAAG2D,WAAW3D,EAAGjd,OAuBhC,OArBAid,EAAGt7C,KAAKnO,OAAO4N,SAAS,CACtB1d,IAAKu5D,EAAGv5D,IACR0c,MAAO,CACLx4B,QAASs6E,EACThkD,KAAM++C,EAAGv5D,IACT9N,GAAI,CACFwyC,aAAc,SAAsBjyC,EAAG4kC,GACrCkiC,EAAGlyB,OAAO,OAAQhQ,EAAKvmC,KAEzBm8B,YAAa,SAAqBx6B,EAAG4kC,GACnCkiC,EAAGjyB,SAAS,OAAQjQ,EAAKvmC,KAE3B2tE,cAAe,SAAuBhsE,EAAG4kC,GACvCkiC,EAAGhyB,QAAQ,OAAQlQ,EAAKvmC,KAE1B4tE,aAAc,SAAsBjsE,EAAG4kC,GACrCkiC,EAAG/xB,SAAS,OAAQnQ,EAAKvmC,SAK1ByoE,GAGTD,EAAYjvE,UAAUs0E,UAAY,WAChC,IAAIpF,EAAK33E,KACT,GAAI23E,EAAGnyB,OAAU,OAAOmyB,EACxBA,EAAGyB,eACH,IAEI4D,EAAc,CAChB16E,QAHcq1E,EAAGiE,YAAYjE,EAAGjd,OAIhCh5D,KAAMi2E,EAAGl+D,OAAOwjE,UAChBzxB,aAAcmsB,EAAGl+D,OAAOyjE,kBACxB5sE,GAAI,CACF6sE,UAAW,SAAmB9yB,GAC5BstB,EAAGlyB,OAAO,QAAS4E,EAAMn7C,KAE3BkuE,YAAa,SAAqB/yB,GAChCstB,EAAGjyB,SAAS,QAAS2E,EAAMn7C,KAE7BmuE,WAAY,SAAoBhzB,GAC9BstB,EAAGhyB,QAAQ,QAAS0E,EAAMn7C,KAE5BouE,YAAa,SAAqBjzB,GAChCstB,EAAG/xB,SAAS,QAASyE,EAAMn7C,OAgBjC,OAXIyoE,EAAGl+D,OAAO8jE,gBAAkB5F,EAAGt7C,KACjCs7C,EAAGt7C,KAAKnO,OAAO4N,SAAS,CACtB1d,IAAKu5D,EAAGv5D,IACR0c,MAAO,CACLlC,KAAM++C,EAAGv5D,IACTisC,MAAO2yB,KAIXrF,EAAGlyC,MAAQkyC,EAAGzuD,IAAImhC,MAAMljC,OAAO61D,GAAavzD,OAEvCkuD,GAGTD,EAAYjvE,UAAU+0E,UAAY,WAChC,IAAI7F,EAAK33E,KACT,GAAI23E,EAAGnyB,OAAU,OAAOmyB,EACxBA,EAAGyB,eACH,IAEIqE,EAAc,CAChBn7E,QAHcq1E,EAAGmE,YAAYnE,EAAGjd,OAIhCjU,UAAU,EACVuK,WAAY2mB,EAAGruD,IACfqjC,qBAAqB,EACrBjrD,KAAMi2E,EAAGl+D,OAAOikE,UAChBlyB,aAAcmsB,EAAGl+D,OAAOkkE,kBACxBrtE,GAAI,CACFstE,UAAW,SAAmBt8C,GAC5Bq2C,EAAGlyB,OAAO,QAASnkB,EAAMpyB,KAE3B2uE,YAAa,SAAqBv8C,GAChCq2C,EAAGjyB,SAAS,QAASpkB,EAAMpyB,KAE7B4uE,WAAY,SAAoBx8C,GAC9Bq2C,EAAGhyB,QAAQ,QAASrkB,EAAMpyB,KAE5B6uE,YAAa,SAAqBz8C,GAChCq2C,EAAG/xB,SAAS,QAAStkB,EAAMpyB,OAgBjC,OAXIyoE,EAAGl+D,OAAO8jE,gBAAkB5F,EAAGt7C,KACjCs7C,EAAGt7C,KAAKnO,OAAO4N,SAAS,CACtB1d,IAAKu5D,EAAGv5D,IACR0c,MAAO,CACLlC,KAAM++C,EAAGv5D,IACTkjB,MAAOm8C,KAIX9F,EAAGlyC,MAAQkyC,EAAGzuD,IAAIoY,MAAMna,OAAOs2D,GAAah0D,OAEvCkuD,GAGTD,EAAYjvE,UAAUu1E,YAAc,WAClC,IAAIrG,EAAK33E,KACT,GAAI23E,EAAGnyB,OAAU,OAAOmyB,EACxBA,EAAGyB,eACH,IACI6E,EAAgB,CAClB37E,QAFgBq1E,EAAGtpB,cAAcspB,EAAGjd,OAGpChxC,SAAUiuD,EAAGruD,IACbhZ,GAAI,CACF4tE,YAAa,SAAqB1xB,GAChCmrB,EAAGlyB,OAAO,UAAW+G,EAAQt9C,KAE/BivE,cAAe,SAAuB3xB,GACpCmrB,EAAGjyB,SAAS,UAAW8G,EAAQt9C,KAEjCkvE,aAAc,SAAsB5xB,GAClCmrB,EAAGhyB,QAAQ,UAAW6G,EAAQt9C,KAEhCmvE,cAAe,SAAuB7xB,GACpCmrB,EAAG/xB,SAAS,UAAW4G,EAAQt9C,OAerC,OAXIyoE,EAAGl+D,OAAO8jE,gBAAkB5F,EAAGt7C,KACjCs7C,EAAGt7C,KAAKnO,OAAO4N,SAAS,CACtB1d,IAAKu5D,EAAGv5D,IACR0c,MAAO,CACLlC,KAAM++C,EAAGv5D,IACTouC,QAASyxB,KAIbtG,EAAGlyC,MAAQkyC,EAAGzuD,IAAIsjC,QAAQrlC,OAAO82D,GAAex0D,OAE3CkuD,GAGTD,EAAYjvE,UAAUghB,KAAO,SAAepnB,GAC1C,IAAIs1E,EAAK33E,KACT,GAAI23E,EAAGnyB,OAAU,OAAOmyB,EACxB,IAAIze,GAAY,EAChB,SAASC,IACPD,GAAY,EAMd,OAJIye,EAAGruD,KACLquD,EAAGruD,IAAIjX,QAAQ,yBAA0B,CAAE8mD,QAASA,IAEtDwe,EAAGhxD,KAAK,0CAA2CgxD,EAAIxe,GACnDD,GAEJye,EAAI,QADSt1E,GAAQs1E,EAAGl+D,OAAOw/D,QACV73E,MAAM,IAAIuT,KAAI,SAAUzF,EAAIvI,GAC/C,OAAc,IAAVA,EAAsBuI,EAAG5B,cACtB4B,KACN/K,KAAK,OALgBwzE,GAS1BD,EAAYjvE,UAAUshB,MAAQ,WAC5B,IAAI4tD,EAAK33E,KACT,OAAK23E,EAAGnyB,QACHmyB,EAAGl+D,OAAO8jE,gBAAkB5F,EAAGt7C,MAAyB,SAAhBs7C,EAAGwE,SAC9CxE,EAAGt7C,KAAKnO,OAAOpiB,QAEf6rE,EAAGlyC,MAAMzzB,KAAK,eAAe,WAC3BkL,MAAMW,UAAS,WACT85D,EAAGhxB,YACPgxB,EAAGlyC,MAAMlc,iBACFouD,EAAGlyC,aAGdkyC,EAAGlyC,MAAM1b,SAEJ4tD,GAbkBA,GAgB3BD,EAAYjvE,UAAU8jB,KAAO,WAClBvsB,KACN61C,eADM71C,KAENg4E,gBAGLN,EAAYjvE,UAAU8gB,QAAU,WAC9B,IAAIouD,EAAK33E,KACT23E,EAAGhxD,KAAK,gDAAiDgxD,GACzDA,EAAGruD,IAAIjX,QAAQ,6BACfslE,EAAGxb,sBACIwb,EAAGruD,IAAI,GAAGwuD,cACjB56D,MAAMU,YAAY+5D,GAClBA,EAAGhxB,WAAY,GAGjBziD,OAAOiF,iBAAkBuuE,EAAYjvE,UAAWilB,GAEzCgqD,EAjyBsB,CAkyB7BzwD,iBAEEq3D,cAAgB,CAClB95E,KAAM,cACNiV,OAAQ,CACNm+D,YAAa,CACX1oE,QAAI/O,EACJg0E,aAASh0E,EACT63E,cAAc,EACdS,gBAAiB,KACjBQ,OAAQ,OACRgE,WAAW,EACXC,uBAAmB/8E,EACnBu9E,WAAW,EACXC,uBAAmBx9E,EACnBo7E,eAAWp7E,EACXo+E,iBAAkB,OAClBC,mBAAoB,QACpB3C,uBAAuB,EACvB4C,mBAAoB,OACpB/C,WAAW,EACXgD,qBAAsB,SACtBC,qBAAsB,SACtB9G,4BAAwB13E,EACxB26E,qBAAqB,EACrBpC,eAAe,EACf3iB,aAAa,EACbqmB,uBAAmBj8E,EACnB67E,sBAAsB,EACtBL,oBAAgBx7E,EAChBs7E,sBAAkBt7E,EAClBo9E,gBAAgB,EAChBn/D,IAAK,UACLkpC,SAAU,GAIVg0B,gBAAYn7E,EACZy7E,iBAAaz7E,EACb27E,iBAAa37E,EACbkuD,mBAAeluD,EACfk7E,iBAAal7E,EACbq6D,gBAAYr6D,EACZ06E,qBAAiB16E,IAGrBwoB,OAAQ,CACN+uD,YAAaA,aAEfvwD,OAAQ,WACN,IAAI+B,EAAMlpB,KACVkpB,EAAI0uD,YAAc16D,MAAM5U,OACtBugB,mBAAmB,CACjBE,gBAAiB,gBACjB9kB,YAAayzE,YACbxuD,IAAKA,EACLD,QAAS,kBAEX,CACEQ,KAAM,SAAcm1D,GAClB,IAAIjH,EAAKzuD,EAAI0uD,YAAY1uE,IAAI01E,GAC7B,GAAIjH,GAAMA,EAAGluD,KAAQ,OAAOkuD,EAAGluD,QAGjCM,MAAO,SAAe60D,GACpB,IAAIjH,EAAKzuD,EAAI0uD,YAAY1uE,IAAI01E,GAC7B,GAAIjH,GAAMA,EAAG5tD,MAAS,OAAO4tD,EAAG5tD,YAOxCzZ,GAAI,CACFgjD,WAAY,SAAoB9nB,GAC9B,IAAItiB,EAAMlpB,KACVyM,EAAE++B,GAAOv0B,KAAK,sBAAsB3Q,MAAK,SAAUK,EAAOi4E,GACxD11D,EAAI0uD,YAAYzwD,OAAOjK,MAAM5U,OAAO,CAAE4G,GAAI0vE,GAAiBnyE,EAAEmyE,GAAetvE,gBAGhF2xD,gBAAiB,SAAyBz1B,GACxC/+B,EAAE++B,GAAOv0B,KAAK,sBAAsB3Q,MAAK,SAAUK,EAAOi4E,GACpDA,EAAc9G,eAAiB8G,EAAc9G,cAAcvuD,SAC7Dq1D,EAAc9G,cAAcvuD,cAIlCy5B,SAAU,SAAkBvN,GAC1B,IAAIvsB,EAAMlpB,KACVy1C,EAAKnsB,IAAIrS,KAAK,sBAAsB3Q,MAAK,SAAUK,EAAOi4E,GACxD11D,EAAI0uD,YAAYzwD,OAAOjK,MAAM5U,OAAO,CAAE4G,GAAI0vE,GAAiBnyE,EAAEmyE,GAAetvE,gBAGhFuzC,iBAAkB,SAA0BpN,GAC1CA,EAAKnsB,IAAIrS,KAAK,sBAAsB3Q,MAAK,SAAUK,EAAOi4E,GACpDA,EAAc9G,eAAiB8G,EAAc9G,cAAcvuD,SAC7Dq1D,EAAc9G,cAAcvuD,eAKpCiwB,OAAQ,CACNqlC,gBAAiB,SAAcxlC,EAAY30C,GAEpC20C,EAAW,GAAGy+B,eADT93E,KAEK43E,YAAYzwD,OAAOjK,MAAM5U,OAAO,CAAE4G,GAAImqC,GAAc30C,IAC9D+kB,SAITxB,MAAO,CACL62D,oBAAqB,CACnBhhC,OAAQ,SAAgB71B,GACtB,IACI22D,EAAgB32D,EAAM81B,IADhB/9C,KAEN43E,YAAYzwD,OAAOjK,MAAM5U,OAAO,CAAE4G,GAAI0vE,GAAiBnyE,EAAEmyE,GAAetvE,aAE9Eia,QAAS,SAAiBtB,GACxB,IAAI22D,EAAgB32D,EAAM81B,IACtB6gC,EAAc9G,eAAiB8G,EAAc9G,cAAcvuD,SAC7Dq1D,EAAc9G,cAAcvuD,cAOtC,SAASw1D,aAAaC,EAAW11D,GAC/B,IAAI21D,EAAU31D,EAAIpW,IAAK,OAAS8rE,GAQhC,MAPgB,SAAZC,GAAkC,SAAZA,EACxBA,EAAU,EACDA,EAAQt9E,QAAQ,OAAS,EAClCs9E,EAAUzvE,WAAWyvE,GACZA,EAAQt9E,QAAQ,MAAQ,IACjCs9E,EAAU31D,EAAIzT,SAAS,GAAiB,WAAdmpE,EAAyB,eAAiB,eAAiBxvE,WAAWyvE,GAAW,KAEtGA,EAET,SAASC,aAAaF,EAAW11D,GAC/B,IAAI61D,EAAU71D,EAAIpW,IAAK,OAAS8rE,GAQhC,MAPgB,SAAZG,GAAkC,SAAZA,EACxBA,EAAU,KACDA,EAAQx9E,QAAQ,OAAS,EAClCw9E,EAAU3vE,WAAW2vE,GACZA,EAAQx9E,QAAQ,MAAQ,IACjCw9E,EAAU71D,EAAIzT,SAAS,GAAiB,WAAdmpE,EAAyB,eAAiB,eAAiBxvE,WAAW2vE,GAAW,KAEtGA,EAGT,IAAIC,KAAO,CACT7yD,KAAM,WACJ,IACI+Q,EACA3J,EACAH,EACAC,EACAukB,EACAqnC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAljD,EAjBA3T,EAAMlpB,KA0JVyM,EAAEhD,UAAU6G,GAAG4Y,EAAIoN,YAAYC,MAAO,kDAvItC,SAA0B1lB,GACpBysB,GAAa3J,IACjBqkB,EAAmBvrC,EAAEoE,EAAEtI,QAAQyO,QAAQ,mBACvCwc,EAAyB,eAAX3iB,EAAExO,KAAwBwO,EAAEomB,cAAc,GAAGG,MAAQvmB,EAAEumB,MACrE3D,EAAyB,eAAX5iB,EAAExO,KAAwBwO,EAAEomB,cAAc,GAAGI,MAAQxmB,EAAEwmB,MACrEiG,GAAY,EACZ+hD,OAAmBl/E,EACnBm/E,OAAmBn/E,EACnB08B,OAAc18B,MAgIhB+oB,EAAI5Y,GAAG,aA7HP,SAAyBO,GACvB,GAAKysB,EAAL,CACA,IAAI0iD,EAAmD,IAA3ChoC,EAAiBniC,OAAO,QAAQvU,OACxC2+E,EAAWD,EAAQ,SAAW,QAC9BE,EAAcF,EAAQ,eAAiB,cACtCrsD,MACH0rD,EAAmBrnC,EAAiBniC,OAAOmqE,EAAQ,OAAS,SACvC1+E,QAAY+9E,EAAiBjxE,SAAS,eAAgBixE,EAAiBjxE,SAAS,qBACnGixE,EAAmBA,EAAiBxoE,QAAQ,oCAAoCxB,GAAG,MAErFiqE,EAAmBD,EAAiB9oE,KAAKypE,EAAQ,OAAS,SACrC1+E,QAAYg+E,EAAiBlxE,SAAS,eAAgBkxE,EAAiBlxE,SAAS,qBACnGkxE,EAAmBA,EAAiB7oE,QAAQ,oCAAoCpB,GAAG,IAGjFgqE,EAAiB/9E,SACnBi+E,EAAaF,EAAiB,GAAGa,GACjCV,EAAgBT,aAAakB,EAAUZ,GACvCI,EAAgBP,aAAae,EAAUZ,GACvCQ,EAAaR,EAAiBxpE,SAAS,GAAGqqE,GAC1CJ,EAAcT,EAAiBxpE,SAAStL,SAASy1E,EAAQ,OAAS,yBAAyB1+E,OAC3Fy+E,EAAUvwE,WAAW6vE,EAAiBnsE,IAAI8sE,EAAQ,oBAAsB,mBAEtEV,EAAiBh+E,SACnBo+E,EAAaJ,EAAiB,GAAGY,GACjCP,EAAgBZ,aAAakB,EAAUX,GACvCM,EAAgBV,aAAae,EAAUX,GAClCD,EAAiB/9E,SACpBu+E,EAAaP,EAAiBzpE,SAAS,GAAGqqE,GAC1CJ,EAAcR,EAAiBzpE,SAAStL,SAASy1E,EAAQ,OAAS,yBAAyB1+E,OAC3Fy+E,EAAUvwE,WAAW8vE,EAAiBpsE,IAAI8sE,EAAQ,oBAAsB,qBAK9ErsD,GAAU,EACV,IAAIwsD,EAA2B,cAAXtvE,EAAExO,KAAuBwO,EAAEomB,cAAc,GAAGG,MAAQvmB,EAAEumB,MACtEgpD,EAA2B,cAAXvvE,EAAExO,KAAuBwO,EAAEomB,cAAc,GAAGI,MAAQxmB,EAAEwmB,MAI1E,QAH2B,IAAhBwF,GAAgCmjD,IACzCnjD,KAAiBA,GAAevkB,KAAKuJ,IAAIu+D,EAAgB3sD,GAAenb,KAAKuJ,IAAIs+D,EAAgB3sD,KAE/FqJ,EAGF,OAFAS,GAAY,OACZ3J,GAAU,GAIZ,IAAI0sD,EAAahB,EAAiBjxE,SAAS,uBAAyBkxE,EAAiBlxE,SAAS,sBAC1FkyE,GAAgBN,GAAUA,IAAUK,EAExC,GAAKC,IAAiBhB,EAAiBh+E,SAAY+9E,EAAiB/9E,OAGlE,OAFAg8B,GAAY,OACZ3J,GAAU,GAIZ9iB,EAAEmmB,iBAEF,IAIIupD,EACAC,EALAjiC,EAAOyhC,EACPI,EAAgB3sD,EAChB0sD,EAAgB3sD,EA6BpB,GAzBI6rD,EAAiB/9E,UACnBi/E,EAAgBhB,EAAahhC,GACTihC,IAElBjhC,GADAgiC,EAAgBf,GACOD,GAErBE,GAAiBc,EAAgBd,IAEnClhC,GADAgiC,EAAgBd,GACOF,IAGvBD,EAAiBh+E,QAAUg/E,KAC7BE,EAAgBd,EAAanhC,GACTohC,IAGlBY,EAAgBhB,GADhBhhC,EAAOmhC,GADPc,EAAgBb,KAIdC,GAAiBY,EAAgBZ,IAGnCW,EAAgBhB,GADhBhhC,EAAOmhC,GADPc,EAAgBZ,MAMhBS,EASF,OARAhB,EAAiB,GAAG50E,MAAMw1E,GAAYM,EAAgB,KAClDD,IACFhB,EAAiB,GAAG70E,MAAMw1E,GAAYO,EAAgB,MAExDnB,EAAiBhtE,QAAQ,eACzBitE,EAAiBjtE,QAAQ,eACzB6W,EAAIvC,KAAK,aAAc04D,EAAiB,SACxCn2D,EAAIvC,KAAK,aAAc24D,EAAiB,IAI1C,IAAImB,GAAcX,EAAc,GAAKC,EAAUD,EAC3CY,EAAgBV,EACdF,EAAc,EAAK,+BAAiCA,EACtD,6EACAa,EAA0BJ,EAAgBE,EAC1CG,EAA0BJ,EAAgBC,EAC9CpB,EAAiB,GAAG50E,MAAMw1E,GAAY,QAAWU,EAA0Bd,EAAa,IAAO,OAASa,EAAgB,IACxHpB,EAAiB,GAAG70E,MAAMw1E,GAAY,QAAWW,EAA0Bf,EAAa,IAAO,OAASa,EAAgB,IACxHrB,EAAiBhtE,QAAQ,eACzBitE,EAAiBjtE,QAAQ,eACzB6W,EAAIvC,KAAK,aAAc04D,EAAiB,IACxCn2D,EAAIvC,KAAK,aAAc24D,EAAiB,QAc1Cp2D,EAAI5Y,GAAG,YAXP,WACOgtB,IACA3J,IACH2J,GAAY,GAEdA,GAAY,EACZ3J,GAAU,QASZktD,OAAS,CACXr8E,KAAM,OACN2iB,OAAQ,WAENjK,MAAM5U,OADItI,KACQ,CAChB6uD,KAAM,CACJtiC,KAAM6yD,KAAK7yD,KAAKlR,KAHVrb,UAOZsQ,GAAI,CACFic,KAAM,WACMvsB,KACN6uD,KAAKtiC,UAKXu0D,SAAyB,SAAU75D,GACrC,SAAS65D,EAAS53D,EAAKzP,QACL,IAAXA,IAAoBA,EAAS,IAElCwN,EAAgB/gB,KAAKlG,KAAMyZ,EAAQ,CAACyP,IACpC,IAIIu7C,EAMA2G,EAVA2V,EAAW/gF,KAKf,GAHA+gF,EAAStnE,OAASyD,MAAM5U,OAAO,GAAI4gB,EAAIzP,OAAOsnE,SAAUtnE,GAGpDsnE,EAAStnE,OAAOirD,aAEU,KAD5BD,EAAeh4D,EAAEs0E,EAAStnE,OAAOirD,cAChBpjE,OAAgB,OAAOy/E,EAItCA,EAAStnE,OAAO0xD,UAClBC,EAAW3+D,EAAEs0E,EAAStnE,OAAO0xD,UAG/B,IAAI6V,EAA6C,eAA9BD,EAAStnE,OAAO4pB,UAE/BjE,EAAW,EACX4hD,IACF5hD,EAAWlW,EAAIwC,KAAO,EAAI,GAG5BxO,MAAM5U,OAAOy4E,EAAU,CACrB73D,IAAKA,EACLu7C,aAAcA,EACdC,YAAaD,GAAgBA,EAAa,GAC1Cwc,OAAQxc,GAAgBA,EAAanjE,OAAS,EAC9C8pE,SAAUA,EACVD,QAASC,GAAYA,EAAS,GAC9B78C,aAAa,EACbi3B,QAAQ,EACRpnC,IAAK2iE,EAAStnE,OAAO2E,IACrB4iE,aAAcA,EACd5hD,SAAUA,EACVzlB,WAAW,EACXunE,cAAeH,EAAStnE,OAAO0nE,aAAeJ,EAAStnE,OAAO2nE,cAAgBL,EAAStnE,OAAO9J,WAEhGoxE,EAASM,aAAe,IAAIC,KAAKC,eAAeR,EAAStnE,OAAO+nE,OAAQ,CAAEC,IAAK,YAC/EV,EAASW,eAAiB,IAAIJ,KAAKC,eAAeR,EAAStnE,OAAO+nE,OAAQ,CAAEG,MAAO,SACnFZ,EAASa,cAAgB,IAAIN,KAAKC,eAAeR,EAAStnE,OAAO+nE,OAAQ,CAAEK,KAAM,YACjFd,EAASe,sBAAwB,IAAIR,KAAKC,eAAeR,EAAStnE,OAAO+nE,OAAQT,EAAStnE,OAAOsoE,kBAGjG,IAAIhnE,EAAMgmE,EAAStnE,OACfuoE,EAAajnE,EAAIinE,WACjBC,EAAkBlnE,EAAIknE,gBACtBC,EAAWnnE,EAAImnE,SACfC,EAAgBpnE,EAAIonE,cACpB90B,EAAQ0zB,EAASqB,eACjBC,EAAiBh1B,EAAMg1B,eACvBC,EAAsBj1B,EAAMi1B,oBAC5BC,EAAel1B,EAAMk1B,aACrBC,EAAoBn1B,EAAMm1B,kBAa9B,SAASnM,IACP0K,EAASt3D,OAEX,SAASg5D,EAAa5xE,GACpBA,EAAEmmB,iBAEJ,SAAS0rD,IACP3B,EAAS7O,SAAS,IACd6O,EAASv7B,QACXu7B,EAASjtB,SAGb,SAAS6uB,EAAY9xE,GACnB,IAAIoZ,EAAYxd,EAAEoE,EAAEtI,SAChBw4E,EAASp6B,WAAco6B,EAAStnE,SAChCsnE,EAAS6B,aACR7B,EAASv7B,SAAUu7B,EAAS8B,UAC7B54D,EAAUjT,QAAQ,uBAAuB1V,SACzC8pE,GAAYA,EAAS9pE,OAAS,EAC5B2oB,EAAU,KAAOmhD,EAAS,IAAoE,IAA9DnhD,EAAUjT,QAAQ,iCAAiC1V,QACrFy/E,EAASh3D,QAE8D,IAAhEtd,EAAEoE,EAAEtI,QAAQyO,QAAQ,iCAAiC1V,QAC9Dy/E,EAASh3D,WA+Sb,MAlVmB,SAAfi4D,IAAyBA,EAAaK,GAClB,SAApBJ,IAA8BA,EAAkBK,GACnC,SAAbJ,IAAuBA,EAAWK,GAChB,SAAlBJ,IAA4BA,EAAgBK,GAEhDtlE,MAAM5U,OAAOy4E,EAAU,CACrBiB,WAAYA,EACZC,gBAAiBA,EACjBC,SAAUA,EACVC,cAAeA,IA+BjBjlE,MAAM5U,OAAOy4E,EAAU,CACrB+B,kBAAmB,WACjB/B,EAAS3V,SAAS96D,GAAG,QAAS+lE,GAC9B0K,EAAS3V,SAAS96D,GAAG,cAAeoyE,GAChC3B,EAAStnE,OAAOspE,gBAClBhC,EAAS3V,SAAS96D,GAAG,kBAAmBmyE,GACpC1B,EAAS3V,SAAS,KACpB2V,EAAS3V,SAAS,GAAG6B,oBAAqB,KAIhD+V,kBAAmB,WACjBjC,EAAS3V,SAASz5D,IAAI,QAAS0kE,GAC/B0K,EAAS3V,SAASz5D,IAAI,cAAe+wE,GACjC3B,EAAStnE,OAAOspE,gBAClBhC,EAAS3V,SAASz5D,IAAI,kBAAmB8wE,GACrC1B,EAAS3V,SAAS,WACb2V,EAAS3V,SAAS,GAAG6B,qBAIlCgW,iBAAkB,WAChB/5D,EAAI5Y,GAAG,QAASqyE,IAElBO,iBAAkB,WAChBh6D,EAAIvX,IAAI,QAASgxE,MAGrB5B,EAASoC,qBAAuB,WAC9B,IACI7lD,EACA3J,EACAH,EACAC,EACA0sD,EACAC,EACApjD,EAEA2yB,EACAyzB,EACAC,EACA5hD,EACA1E,EACAF,EAdAymD,GAAiB,EAgBjBh6D,EAAMy3D,EAASz3D,IACfi6D,EAAaxC,EAASwC,WAE1B,SAAS7kD,EAAiB7tB,GACpB8iB,GAAW2J,IACfA,GAAY,EACZ9J,EAAyB,eAAX3iB,EAAExO,KAAwBwO,EAAEomB,cAAc,GAAGG,MAAQvmB,EAAEumB,MACrE+oD,EAAgB3sD,EAChBC,EAAyB,eAAX5iB,EAAExO,KAAwBwO,EAAEomB,cAAc,GAAGI,MAAQxmB,EAAEwmB,MACrE+oD,EAAgB3sD,EAChBuJ,GAAiB,IAAK7wB,MAAQ0M,UAC9B4oB,EAAa,EACb6hD,GAAiB,EACjBzmD,OAAc18B,EACdwvD,EAAmBoxB,EAASyC,iBAE9B,SAAS1kD,EAAgBjuB,GACvB,GAAKysB,EAAL,CACA,IAAIurC,EAAMkY,EAASC,aAEnBb,EAA2B,cAAXtvE,EAAExO,KAAuBwO,EAAEomB,cAAc,GAAGG,MAAQvmB,EAAEumB,MACtEgpD,EAA2B,cAAXvvE,EAAExO,KAAuBwO,EAAEomB,cAAc,GAAGI,MAAQxmB,EAAEwmB,WAC3C,IAAhBwF,IACTA,KAAiBA,GAAevkB,KAAKuJ,IAAIu+D,EAAgB3sD,GAAenb,KAAKuJ,IAAIs+D,EAAgB3sD,KAE/Fq1C,GAAOhsC,EACTS,GAAY,GAGdzsB,EAAEmmB,iBACE+pD,EAASpnE,UACX2jB,GAAY,GAGdgmD,GAAiB,EACZ3vD,IAEHA,GAAU,EACVyvD,EAAeG,EAAW,GAAGjwE,YAC7B+vE,EAAgBE,EAAW,GAAG7vE,aAC9B6vE,EAAWrzE,WAAW,IAIxBuxB,GADA1E,EAAc8rC,EAAMsX,EAAgB3sD,EAAc4sD,EAAgB3sD,IACtCo1C,EAAMua,EAAeC,GACjD1zB,EAAmF,KAA9DoxB,EAASyC,gBAAkBzC,EAAS3hD,SAAYqC,GAGrE8hD,EAAWxzE,UAAW,gBAAkB84D,EAAMlZ,EAAmB,GAAK,OAASkZ,EAAM,EAAIlZ,GAAoB,YAE/G,SAASztB,IACP,IAAK5E,IAAc3J,EAGjB,OAFA2J,GAAY,OACZ3J,GAAU,GAGZ2J,GAAY,EACZ3J,GAAU,GAEK,IAAIxnB,MAAO0M,UACPmkB,EAAiB,IAC9B1kB,KAAKuJ,IAAIkb,GAAe,GAC1BgkD,EAAS0C,aACA1mD,GAAe,GACpB7T,EAAIwC,IAAOq1D,EAAS2C,YACjB3C,EAAS4C,YACPz6D,EAAIwC,IAAOq1D,EAAS4C,YACxB5C,EAAS2C,YACPjiD,IAAe,GACpBvY,EAAIwC,IAAOq1D,EAAS4C,YACjB5C,EAAS2C,YACPjiD,GAAc,GACnBvY,EAAIwC,IAAOq1D,EAAS2C,YACjB3C,EAAS4C,YAEhB5C,EAAS0C,aAIXp3E,YAAW,WACTi3E,GAAiB,IAChB,KAGL,SAASM,EAAe/yE,GACtB,GAAKyyE,EAAL,CACA,IAAIO,EAASp3E,EAAEoE,EAAEtI,QAAQlE,QAAQ,iBAIjC,GAHsB,IAAlBw/E,EAAOviF,QAAgBmL,EAAEoE,EAAEtI,QAAQ6F,SAAS,kBAC9Cy1E,EAASp3E,EAAEoE,EAAEtI,SAEO,IAAlBs7E,EAAOviF,SACPuiF,EAAOz1E,SAAS,yBAApB,CACK2yE,EAAStnE,OAAO2nE,cACfyC,EAAOz1E,SAAS,sBAAwB2yE,EAAS2C,YACjDG,EAAOz1E,SAAS,sBAAwB2yE,EAAS4C,aAEvD,IAAIG,EAAWtiE,SAASqiE,EAAOr1E,KAAK,aAAc,IAC9Cu1E,EAAYviE,SAASqiE,EAAOr1E,KAAK,cAAe,IAChDw1E,EAAUxiE,SAASqiE,EAAOr1E,KAAK,YAAa,IAShD,GARAuyE,EAASp6D,KACP,mCACAo6D,EACA8C,EAAO,GACPC,EACAC,EACAC,IAEGH,EAAOz1E,SAAS,0BAA4B2yE,EAAStnE,OAAO9J,UAAYoxE,EAAStnE,OAAO2nE,YAAa,CACxG,IAAI6C,EAAa,IAAI93E,KAAK23E,EAAUC,EAAWC,EAAS,EAAG,EAAG,GAC1DjD,EAASG,gBACPH,EAASryE,OAASqyE,EAASryE,MAAM,GACnCu1E,EAAWC,SAASnD,EAASryE,MAAM,GAAGy1E,WAAYpD,EAASryE,MAAM,GAAG01E,cAEpEH,EAAWC,UAAS,IAAI/3E,MAAOg4E,YAAY,IAAIh4E,MAAOi4E,eAG1DrD,EAASsD,SAASJ,GAEhBlD,EAAStnE,OAAOi/D,gBAEfqI,EAAStnE,OAAO2nE,aAAyC,IAA1BL,EAASryE,MAAMpN,SAC3Cy/E,EAAStnE,OAAO2nE,cAEpBL,EAASh3D,UAKf,SAASu6D,IACPvD,EAAS2C,YAGX,SAASa,IACPxD,EAAS4C,YAGX,SAASa,IACPzD,EAAS0D,WAGX,SAASC,IACP3D,EAAS4D,WAGX,SAASC,IACPt7D,EAAI/T,OAAOwrE,EAAS8D,qBAEtB,SAASC,IACP,IAAIzrC,EAAa5sC,EAAEzM,MACnB,GAAIq5C,EAAWjrC,SAAS,sCACtBkb,EAAIrS,KAAK,0BAA0B9I,aADrC,CAIAmb,EAAIrS,KAAK,uCAAuChJ,IAAIorC,GAAY/qC,YAAY,sCAC5E,IAIIy2E,EAJQ1rC,EAAW1yC,SACA6a,SAASu/D,EAASz3D,IAAIrS,KAAK,2BAA2BzI,KAAK,qBAAsB,IACvFuyE,EAASiE,cAG1BjE,EAASkE,aAAalE,EAASmE,YAAaH,EAAW,GACvD14E,YAAW,WACTid,EAAIrS,KAAK,0BAA0B9I,WAClC,MAGL,SAASg3E,IACP77D,EAAI/T,OAAOwrE,EAASqE,oBACpB,IAAI9vB,EAAahsC,EAAIrS,KAAK,sCACtBouE,EAAgB/7D,EAAIrS,KAAK,yBACxBq+C,GAAeA,EAAWh0D,QAC/B+jF,EAAcrxE,UACZshD,EAAW,GAAGL,UACZowB,EAAc,GAAG3xE,aAAe,EAChC4hD,EAAW,GAAG5hD,aAAe,GAInC,SAAS4xE,IACP,IAAIjsC,EAAa5sC,EAAEzM,MACnB,GAAIq5C,EAAWjrC,SAAS,qCACtBkb,EAAIrS,KAAK,yBAAyB9I,aADpC,CAIAmb,EAAIrS,KAAK,sCAAsChJ,IAAIorC,GAAY/qC,YAAY,qCAC3E,IAAIuzE,EAAOrgE,SAAS63B,EAAW7qC,KAAK,aAAc,IAClDuyE,EAASkE,aAAapD,OAAM1hF,EAAW,GACvCkM,YAAW,WACTid,EAAIrS,KAAK,yBAAyB9I,WACjC,MAGL,SAASo3E,IACPxE,EAASyE,iBAEX,SAASC,IACP1E,EAAS2E,kBAGX,IAAI9hE,IAA4C,eAA1BsF,EAAIoN,YAAYC,QAA0BrN,EAAI8J,QAAQpP,kBAAkB,CAAEsS,SAAS,EAAMvlB,SAAS,GAExH2Y,EAAIrS,KAAK,+BAA+B3G,GAAG,QAASi0E,GACpDj7D,EAAIrS,KAAK,+BAA+B3G,GAAG,QAASg0E,GACpDh7D,EAAIrS,KAAK,8BAA8B3G,GAAG,QAASo0E,GACnDp7D,EAAIrS,KAAK,8BAA8B3G,GAAG,QAASk0E,GAC/CzD,EAAStnE,OAAOksE,cAClBr8D,EAAIrS,KAAK,wBAAwB3G,GAAG,QAASs0E,GAC7Ct7D,EAAIhZ,GAAG,QAAS,8BAA+Bw0E,IAE7C/D,EAAStnE,OAAOmsE,aAClBt8D,EAAIrS,KAAK,uBAAuB3G,GAAG,QAAS60E,GAC5C77D,EAAIhZ,GAAG,QAAS,6BAA8Bg1E,IAE5CvE,EAASG,gBACX53D,EAAIrS,KAAK,6BAA6B3G,GAAG,QAASi1E,GAClDj8D,EAAIhZ,GAAG,QAAS,8BAA+Bm1E,IAGjDlC,EAAWjzE,GAAG,QAASszE,GAEnB7C,EAAStnE,OAAOosE,YAClBtC,EAAWjzE,GAAG4Y,EAAIoN,YAAYC,MAAOmI,EAAkB9a,GACvDsF,EAAI5Y,GAAG,mBAAoBwuB,GAC3B5V,EAAI5Y,GAAG,mBAAoB4xB,IAG7B6+C,EAAS+E,qBAAuB,WAC9Bx8D,EAAIrS,KAAK,+BAA+BtF,IAAI,QAAS4yE,GACrDj7D,EAAIrS,KAAK,+BAA+BtF,IAAI,QAAS2yE,GACrDh7D,EAAIrS,KAAK,8BAA8BtF,IAAI,QAAS+yE,GACpDp7D,EAAIrS,KAAK,8BAA8BtF,IAAI,QAAS6yE,GAChDzD,EAAStnE,OAAOksE,cAClBr8D,EAAIrS,KAAK,wBAAwBtF,IAAI,QAASizE,GAC9Ct7D,EAAI3X,IAAI,QAAS,8BAA+BmzE,IAE9C/D,EAAStnE,OAAOmsE,aAClBt8D,EAAIrS,KAAK,uBAAuBtF,IAAI,QAASwzE,GAC7C77D,EAAI3X,IAAI,QAAS,6BAA8B2zE,IAE7CvE,EAASG,gBACX53D,EAAIrS,KAAK,6BAA6BtF,IAAI,QAAS4zE,GACnDj8D,EAAI3X,IAAI,QAAS,8BAA+B8zE,IAElDlC,EAAW5xE,IAAI,QAASiyE,GACpB7C,EAAStnE,OAAOosE,YAClBtC,EAAW5xE,IAAIuX,EAAIoN,YAAYC,MAAOmI,EAAkB9a,GACxDsF,EAAIvX,IAAI,mBAAoBmtB,GAC5B5V,EAAIvX,IAAI,mBAAoBuwB,MAKlC6+C,EAASx0D,OAEFw0D,EAGJ95D,IAAkB65D,EAAS55D,UAAYD,GAC5C65D,EAASr4E,UAAYvE,OAAOijB,OAAQF,GAAmBA,EAAgBxe,WACvEq4E,EAASr4E,UAAUxE,YAAc68E,EAEjC,IAAIpzD,EAAqB,CAAE2O,KAAM,CAAEx0B,cAAc,IA01CjD,OAx1CA6lB,EAAmB2O,KAAKnzB,IAAM,WAC5B,IAIImzB,EAHA+uC,EADMprE,KACSorE,SACfliD,EAFMlpB,KAEIkpB,IACVzP,EAHMzZ,KAGOyZ,OAQjB,OANIA,EAAO4iB,KACTA,EAAO5iB,EAAO4iB,KACL+uC,IACT/uC,EAAO+uC,EAAS/mE,QAAQ,SAAS/C,QAAU8pE,EAAS/mE,QAAQ,SAAS,GAAGy0C,QAErEzc,IAAQA,EAAOnT,EAAIkT,MAAMyc,MACvBxc,GAGTykD,EAASr4E,UAAU25E,aAAe,WAehC,IAdA,IAWIP,EACAkE,EACAC,EAZAxE,EADWxhF,KACOyZ,OAAO+nE,OAEzBa,EAAiB,GACjBC,EAAsB,GACtBC,EAAe,GACfC,EAAoB,GACpByD,EAAsB,IAAI3E,KAAKC,eAAeC,EAAQ,CAAEG,MAAO,SAC/DuE,EAA2B,IAAI5E,KAAKC,eAAeC,EAAQ,CAAEG,MAAO,UACpEwE,EAAoB,IAAI7E,KAAKC,eAAeC,EAAQ,CAAE4E,QAAS,SAC/DC,EAAyB,IAAI/E,KAAKC,eAAeC,EAAQ,CAAE4E,QAAS,UAI/DplF,EAAI,EAAGA,EAAI,GAAIA,GAAK,EAAG,CAC9B,IAAIslF,GAAO,IAAIn6E,MAAOo6E,SAASvlF,EAAG,GAC9BkkF,EAhBSllF,KAgBc4hF,cAAc4E,OAAOF,GAE5CzE,GAAQqD,IAAgBrD,IACtBkE,IAAeC,GAAY,GAC/BD,GAAc,EACdlE,EAAOqD,GAEJrD,IACHA,EAAOqD,GAELa,GAAelE,IAASqD,IAAgBc,IAC1C3D,EAAe3gF,KAAKukF,EAAoBO,OAAOF,IAC/ChE,EAAoB5gF,KAAKwkF,EAAyBM,OAAOF,KAI7D,IADA,IAAIG,GAAU,IAAIt6E,MAAOu6E,SAChBh3E,EAAM,EAAGA,EAAM,EAAGA,GAAO,EAAG,CACnC,IAAIi3E,GAAS,IAAIx6E,MAAO0M,UAA8B,IAAjBnJ,EAAM+2E,GAAgB,GAAK,GAAK,IACrElE,EAAa7gF,KAAKykF,EAAkBK,OAAOG,IAC3CnE,EAAkB9gF,KAAK2kF,EAAuBG,OAAOG,IAGvD,MAAO,CACLtE,eAAgBA,EAChBC,oBAAqBA,EACrBC,aAAcA,EACdC,kBAAmBA,IAIvB1B,EAASr4E,UAAUm+E,cAAgB,SAAwBN,GACzD,IACI3kE,EAAI,IAAIxV,KAAKm6E,GACjB,OAFetmF,KAEFkhF,cACJ,IAAI/0E,KAAKwV,EAAEklE,cAAellE,EAAEmlE,WAAYnlE,EAAEolE,UAAWplE,EAAEwiE,WAAYxiE,EAAEyiE,cAEvE,IAAIj4E,KAAKwV,EAAEklE,cAAellE,EAAEmlE,WAAYnlE,EAAEolE,YAGnDjG,EAASr4E,UAAUu+E,gBAAkB,SAA0Bn3E,GAC7D,IAAIkxE,EAAW/gF,KACXmzE,EAAY,GAIhB,OAHItjE,GAAU/M,MAAMC,QAAQ8M,KAC1BsjE,EAAYtjE,EAAO8E,KAAI,SAAUlF,GAAO,OAAOsxE,EAAS6F,cAAcn3E,OAEjE0jE,GAGT2N,EAASr4E,UAAUw+E,UAAY,WACdjnF,KACDorE,UADCprE,KAEFyZ,OAAOspE,eAFL/iF,KAE+BorE,SAASlkE,KAAK,YAAY,IAG1E45E,EAASr4E,UAAUm6E,UAAY,WAC7B,IACI15D,EADWlpB,KACIkpB,IACfuc,EAFWzlC,KAEMylC,MACjBhsB,EAHWzZ,KAGOyZ,OACtB,GAAsB,UAAlBA,EAAOw/D,OAAsB,OAAO,EACxC,GAAIxzC,GAAwB,YAAfA,EAAMpjC,KAAsB,OAAO,EAEhD,IAPerC,KAODihF,QAPCjhF,KAOkBmrE,QAAS,CACxC,GAAsB,YAAlB1xD,EAAOw/D,OAAwB,OAAO,EAC1C,GAAI/vD,EAAI7E,OAAOC,IACb,QAAS4E,EAAI7E,OAAOO,KAEtB,GAAIsE,EAAIlW,OAAS,IACf,OAAO,EAET,GAAIkW,EAAI7E,OAAOI,SAAyB,WAAdyE,EAAI/C,MAC5B,OAAO,EAGX,OAAO,GAGT26D,EAASr4E,UAAUy+E,WAAa,SAAqBvlE,GACnD,IACI2kE,EAAO,IAAIn6E,KAAKwV,GAChBkgE,EAAOyE,EAAKO,cACZlF,EAAQ2E,EAAKQ,WACbK,EAASxF,EAAQ,EACjBF,EAAM6E,EAAKS,UACXN,EAAUH,EAAKI,SACf1E,EAPWhiF,KAOWgiF,WACtBC,EARWjiF,KAQgBiiF,gBAC3BC,EATWliF,KASSkiF,SACpBC,EAVWniF,KAUcmiF,cACzBpnE,EAXW/a,KAWIyZ,OACf2tE,EAAarsE,EAAIqsE,WACjB5F,EAASzmE,EAAIymE,OAEjB,SAAS6F,EAAUC,GACjB,OAAQA,EAAS,GAAO,IAAMA,EAAUA,EAE1C,GAA0B,iBAAfF,EAAyB,CAClC,IAAIlvD,EAAS,CACXqvD,KAAM1F,EACN2F,GAAIxnE,OAAO6hE,GAAM4F,UAAU,GAC3BC,GAAIL,EAAUF,GACdlmE,EAAGkmE,EACHQ,GAAI3F,EAAWL,GACfiG,EAAG3F,EAAgBN,GACnBkG,GAAIR,EAAU5F,GACd9/D,EAAG8/D,EACHqG,GAAI5F,EAASuE,GACbsB,EAAG5F,EAAcsE,IAEnB,GA/BazmF,KA+BAyZ,OAAO0nE,WAAY,CAC9B,IAAI6G,EAAQ1B,EAAKnC,WACb8D,EAAU3B,EAAKlC,aACf8D,EAAU5B,EAAK6B,aACfC,EAAUJ,EACVA,EAAQ,KAAMI,EAAUJ,EAAQ,IACtB,IAAVA,IAAeI,EAAU,IAC7B,IAAI5uE,EAAIwuE,GAAS,IAAgB,IAAVA,EAAc,KAAO,KAE5C9jF,OAAOqM,OAAO2nB,EAAQ,CACpBmwD,GAAIhB,EAAUW,GACdM,EAAGN,EACHO,GAAIlB,EAAUe,GACdpnE,EAAGonE,EACHzQ,GAAI0P,EAAUa,GACdnmE,EAAGmmE,EACHM,MAAOnB,EAAUY,GACjBQ,KAAMR,EACNzuE,EAAGA,EACHkvE,EAAGlvE,EAAElM,gBAGT,IAAIq7E,EAAS,IAAIpoF,OACf2D,OAAO2B,KAAKqyB,GAAQvjB,KAAI,SAAUjM,GAAK,MAAQ,IAAMA,EAAI,OAASvE,KAAK,KACvE,KAEF,OAAOijF,EAAWvmF,QAAQ8nF,GAAQ,SAAU/uD,GAC1C,OAAIA,KAAS1B,EAAiBA,EAAO0B,GAC9BA,KAGX,MAA0B,mBAAfwtD,EACFA,EAAWd,GAGJ,IAAIhF,KAAKC,eAAeC,EAAQ4F,GAC/BZ,OAAOF,IAG1BxF,EAASr4E,UAAU2rE,YAAc,WAC/B,IAAI2M,EAAW/gF,KACX0O,EAAQqyE,EAASryE,MACrB,OAAIqyE,EAAStnE,OAAO26D,YACX2M,EAAStnE,OAAO26D,YAAYluE,KAAK66E,EAAUryE,GAE7CA,EACJiG,KAAI,SAAU0jC,GAAK,OAAO0oC,EAASmG,WAAW7uC,MAC9Cl0C,KAAK48E,EAAStnE,OAAO2nE,YAAc,MAAQ,OAGhDN,EAASr4E,UAAU47E,SAAW,SAAmBpS,GAC/C,IACIl3D,EADW/a,KACIyZ,OACf9J,EAAWoL,EAAIpL,SACfyxE,EAAcrmE,EAAIqmE,YAClBwH,EAAqB7tE,EAAI6tE,mBACzBC,EAAqB9tE,EAAI8tE,mBAC7B,GAAIl5E,EAAU,CAEZ,IAAIm5E,EARS9oF,KAOC0O,QAPD1O,KAOmB0O,MAAQ,IAExC,IAAK,IAAI1N,EAAI,EAAGA,EATHhB,KASgB0O,MAAMpN,OAAQN,GAAK,EAC1C,IAAImL,KAAK8lE,GAAUp5D,YAAc,IAAI1M,KAV9BnM,KAU4C0O,MAAM1N,IAAI6X,YAC/DiwE,EAAgB9nF,QAGS,IAAlB8nF,EAdE9oF,KAeF0O,MAAMhN,KAAKuwE,GAfTjyE,KAiBF0O,MAAMqD,OAAO+2E,EAAe,GAjB1B9oF,KAmBJ+oF,mBACA3H,GApBIphF,KAqBC0O,QArBD1O,KAqBmB0O,MAAQ,IACV,IAtBjB1O,KAsBA0O,MAAMpN,QAA0C,IAtBhDtB,KAsB+B0O,MAAMpN,SAtBrCtB,KAuBF0O,MAAQ,IAGY,IA1BlB1O,KA0BC0O,MAAMpN,QACbgX,KAAKuJ,IA3BC7hB,KA2BY0O,MAAM,GAAGmK,UAAYo5D,EAASp5D,YAAyC,IAA1B+vE,EAAqB,GAAU,GAAK,GAAK,MAAiC,IAAvBC,GAA4BvwE,KAAKuJ,IA3B7I7hB,KA2B0J0O,MAAM,GAAGmK,UAAYo5D,EAASp5D,YAAyC,IAA1BgwE,EAAqB,GAAU,GAAK,GAAK,KA3BhP7oF,KA2BoQ0O,MAAMhN,KAAKuwE,GA3B/QjyE,KA4BG0O,MAAQ,GA5BX1O,KA8BJ0O,MAAMs6E,MAAK,SAAUxvE,EAAG4H,GAAK,OAAO5H,EAAI4H,KA9BpCphB,KA+BJ+oF,gBA/BI/oF,KAiCJ0O,MAAQ,CAACujE,GAjCLjyE,KAkCJ+oF,gBAIbjI,EAASr4E,UAAUypE,SAAW,SAAmBriE,GAC/C,IACI4K,EADWza,KACa0O,MAC5B,GAAI5L,MAAMC,QAAQ0X,IAAiB3X,MAAMC,QAAQ8M,IAAW4K,EAAanZ,SAAWuO,EAAOvO,OAAQ,CACjG,IAAI2nF,GAAQ,EAIZ,GAHAxuE,EAAa1W,SAAQ,SAAUs0C,EAAG1xC,GAC5B0xC,IAAMxoC,EAAOlJ,KAAUsiF,GAAQ,MAEjCA,EAAS,OAPAjpF,KASN0O,MAAQmB,EATF7P,KAUN+oF,eAGXjI,EAASr4E,UAAU4qE,SAAW,WAE5B,OADerzE,KACC0O,OAGlBoyE,EAASr4E,UAAUsgF,YAAc,SAAsBG,GACrD,IAMIloF,EAGEmoF,EARF7/D,EADWtpB,KACIspB,IACfi6D,EAFWvjF,KAEWujF,WACtBnY,EAHWprE,KAGSorE,SACpB18D,EAJW1O,KAIM0O,MACjB+K,EALWzZ,KAKOyZ,OAEtB,GAAI6P,GAAOA,EAAIhoB,OAAS,EAGtB,GAFAiiF,EAAWtsE,KAAK,0BAA0B/I,YAAY,yBAElDuL,EAAO2nE,aAAgC,IAAjB1yE,EAAMpN,OAAc,CAC5C,IAAKN,EAAI,IAAImL,KAAKuC,EAAM,IAAImK,UAAW7X,GAAK,IAAImL,KAAKuC,EAAM,IAAImK,UAAW7X,GAAK,MAC7EmoF,EAAY,IAAIh9E,KAAKnL,GACrBuiF,EAAWtsE,KAAM,4BAAgCkyE,EAAUtC,cAAiB,IAAOsC,EAAUrC,WAAc,IAAOqC,EAAUpC,UAAa,MAAQl5E,SAAS,yBAE5Js7E,EAAY,IAAIh9E,KAAK,IAAIA,KAAKuC,EAAM,IAAImK,WACxC0qE,EAAWtsE,KAAM,4BAAgCkyE,EAAUtC,cAAiB,IAAOsC,EAAUrC,WAAc,IAAOqC,EAAUpC,UAAa,MAAQl5E,SAAS,8BAE1J,IAAK7M,EAAI,EAAGA,EAlBDhB,KAkBc0O,MAAMpN,OAAQN,GAAK,EAC1CmoF,EAAY,IAAIh9E,KAAKuC,EAAM1N,IAC3BuiF,EAAWtsE,KAAM,4BAAgCkyE,EAAUtC,cAAiB,IAAOsC,EAAUrC,WAAc,IAAOqC,EAAUpC,UAAa,MAAQl5E,SAAS,yBAYhK,GARKq7E,GAxBUlpF,KAyBJ2mB,KAAK,+BAzBD3mB,KAyB2C0O,GAGtD4a,GAAOA,EAAIhoB,OAAS,GA5BTtB,KA4BuBkhF,eACpC53D,EAAIrS,KAAK,6BAA6BpC,KAAKnG,GAASA,EAAMpN,OA7B7CtB,KA6B+D8hF,sBAAsB0E,OAAO93E,EAAM,IA7BlG1O,KA6BiHyZ,OAAO2vE,uBAGlIhe,GAAYA,EAAS9pE,QAAWmY,EAAO4vE,OAAQ,CAClD,IAAIz/B,EAjCS5pD,KAiCao0E,YAAY1lE,GAClC+K,EAAO4vE,QAAU//D,GAAOA,EAAIhoB,QAC9BgoB,EAAIrS,KAAK,2BAA2BpC,KAAK+0C,GAEvCwhB,GAAYA,EAAS9pE,SAAW4nF,IAClC9d,EAAS37D,IAAIm6C,GACbwhB,EAAS/4D,QAAQ,aAKvByuE,EAASr4E,UAAU6gF,uBAAyB,SAAiCC,GAC3E,IAIIC,EACAC,EAJAC,EADW1pF,KACQ0pF,QACnBpgE,EAFWtpB,KAEIspB,IACf04D,EAHWhiF,KAGWgiF,gBAGP,IAARuH,GANIvpF,KAOJglF,aAAexjE,SAASkoE,EAAQr0E,GAAG,GAAG7G,KAAK,cAAe,IAPtDxO,KAQJklF,YAAc1jE,SAASkoE,EAAQr0E,GAAG,GAAG7G,KAAK,aAAc,IACjEg7E,EAAqBE,EAAQr0E,GAAG,GAAG7G,KAAK,qBACxCi7E,EAAoBC,EAAQr0E,GAAG,GAAG7G,KAAK,sBAV1BxO,KAYJglF,aAAexjE,SAASkoE,EAAQr0E,GAAW,SAARk0E,EAAkBG,EAAQpoF,OAAS,EAAK,GAAGkN,KAAK,cAAe,IAZ9FxO,KAaJklF,YAAc1jE,SAASkoE,EAAQr0E,GAAW,SAARk0E,EAAkBG,EAAQpoF,OAAS,EAAK,GAAGkN,KAAK,aAAc,IACzGg7E,EAAqBE,EAAQr0E,GAAW,SAARk0E,EAAkBG,EAAQpoF,OAAS,EAAK,GAAGkN,KAAK,qBAChFi7E,EAAoBC,EAAQr0E,GAAW,SAARk0E,EAAkBG,EAAQpoF,OAAS,EAAK,GAAGkN,KAAK,qBAEjF8a,EAAIrS,KAAK,wBAAwBpC,KAAKmtE,EAAWwH,IACjDlgE,EAAIrS,KAAK,uBAAuBpC,KAAK40E,IAGvC3I,EAASr4E,UAAUqrD,OAAS,WAC1B,IAAIitB,EAAW/gF,KACXklF,EAAcnE,EAASmE,YACvBF,EAAejE,EAASiE,aACxBzB,EAAaxC,EAASwC,WACtBoG,EAAc,IAAIx9E,KAAK+4E,EAAaF,GACpC4E,EAAgB7I,EAAS8I,YAAYF,EAAa,QAClDG,EAAmB/I,EAAS8I,YAAYF,GACxCI,EAAgBhJ,EAAS8I,YAAYF,EAAa,QAEtDpG,EACGrzE,WAAW,GACXrD,KAAM,GAAK+8E,EAAgBE,EAAmBC,GAC9Ch6E,UAAU,sBACbgxE,EAAS2I,QAAUnG,EAAWtsE,KAAK,mBACnC8pE,EAASyC,gBAAkB,EAC3BzC,EAASiJ,qBACTjJ,EAAS2I,QAAQpjF,MAAK,SAAUK,EAAOsjF,GACrClJ,EAASp6D,KACP,mCACAsjE,OAKNnJ,EAASr4E,UAAUyhF,mBAAqB,SAA6BX,GACnE,IACIG,EADW1pF,KACQ0pF,QACnBxE,EAFWllF,KAEYklF,YACvBF,EAHWhlF,KAGaglF,aAHbhlF,KAINspF,uBAAuBC,GAChCG,EAAQx7E,YAAY,kEACpB,IAAIi8E,EAAuB,SAARZ,EAAiBG,EAAQpoF,OAAS,EAAI,EAEzDooF,EAAQr0E,GAAG80E,GAAct8E,SAAS,0BAClC67E,EAAQr0E,GAAW,SAARk0E,EAAiBY,EAAe,EAAIA,EAAe,GAAGt8E,SAAiB,SAAR07E,EAAiB,sBAAwB,uBATpGvpF,KAWN2mB,KACP,2DAZa3mB,KAcbklF,EACAF,IAIJlE,EAASr4E,UAAU2hF,iBAAmB,SAA2Bb,EAAKc,GACpE,IAMIN,EACAH,EACAE,EAPA5E,EADWllF,KACYklF,YACvBF,EAFWhlF,KAEaglF,aACxBzB,EAHWvjF,KAGWujF,WACtBC,EAJWxjF,KAIgBwjF,gBAJhBxjF,KAKN2Z,WAAY,EAIrB4pE,EACGtsE,KAAK,oGACL9I,cAEgB,IAARo7E,IACTA,EAAM,OACNc,GAAc,GAEXA,GAGH9G,EAAWtsE,KAAK,8CAA8C9I,SAC9Dy7E,EArBa5pF,KAqBY6pF,YAAY,IAAI19E,KAAK+4E,EAAaF,GAAe,QAC1E+E,EAtBa/pF,KAsBY6pF,YAAY,IAAI19E,KAAK+4E,EAAaF,GAAe,SAJ1E8E,EAlBa9pF,KAkBe6pF,YAAY,IAAI19E,KAAK+4E,EAAaF,GAAeuE,IAMnE,SAARA,GAAkBc,IACpB9G,EAAWhuE,OAAOu0E,GAAoBC,IAE5B,SAARR,GAAkBc,IACpB9G,EAAWztE,QAAQg0E,GAAoBF,GAEzC,IAAIF,EAAUnG,EAAWtsE,KAAK,mBA9BfjX,KA+BN0pF,QAAUA,EA/BJ1pF,KAgCNgqF,mBAAmBxG,GAhCbxjF,KAiCN2mB,KACP,mCAlCa3mB,KAoCL,SAARupF,EAAiBG,EAAQr0E,GAAGq0E,EAAQpoF,OAAS,GAAG,GAAKooF,EAAQr0E,GAAG,GAAG,IApCtDrV,KAsCN2mB,KACP,uDAvCa3mB,KAyCbklF,EACAF,IAIJlE,EAASr4E,UAAUuhF,mBAAqB,SAA6B70B,GACnE,IACIu0B,EADW1pF,KACQ0pF,QACnB7gB,EAFW7oE,KAEIghF,aACf5hD,EAHWp/B,KAGSo/B,SAExB+1B,EAAYA,GALGn1D,KAKmBwjF,iBAAmB,OACb,IANzBxjF,KAMKwjF,kBANLxjF,KAOJwjF,gBAAkBruB,GAE7Bu0B,EAAQx7E,YAAY,kEACpB,IAAIo8E,EAAwC,MAAjBn1B,EAAY,GAAW/1B,EAC9CmrD,EAAqC,KAAZp1B,EAAkB/1B,EAC3CorD,EAAwC,MAAjBr1B,EAAY,GAAW/1B,EAClDsqD,EAAQr0E,GAAG,GACRtF,UAAW,gBAAkB84D,EAAMyhB,EAAqB,GAAK,OAASzhB,EAAM,EAAIyhB,GAAsB,SACtGz8E,SAAS,uBACZ67E,EAAQr0E,GAAG,GACRtF,UAAW,gBAAkB84D,EAAM0hB,EAAwB,GAAK,OAAS1hB,EAAM,EAAI0hB,GAAyB,SAC5G18E,SAAS,0BACZ67E,EAAQr0E,GAAG,GACRtF,UAAW,gBAAkB84D,EAAM2hB,EAAqB,GAAK,OAAS3hB,EAAM,EAAI2hB,GAAsB,SACtG38E,SAAS,wBAGdizE,EAASr4E,UAAUi7E,UAAY,SAAoBxzE,GACjD,IAAI6wE,EAAW/gF,KACXyZ,EAASsnE,EAAStnE,OAClB8pE,EAAaxC,EAASwC,WACtBnkD,EAAW2hD,EAAS3hD,SACpBypC,EAAMkY,EAASC,kBACO,IAAf9wE,GAAoD,iBAAfA,IAC9CA,EAAa,GACRuJ,EAAOL,UAAWlJ,EAAa,IAEtC,IAAIwzE,EAAYliE,SAASu/D,EAAS2I,QAAQr0E,GAAG0rE,EAAS2I,QAAQpoF,OAAS,GAAGkN,KAAK,cAAe,IAC1Fi2E,EAAWjjE,SAASu/D,EAAS2I,QAAQr0E,GAAG0rE,EAAS2I,QAAQpoF,OAAS,GAAGkN,KAAK,aAAc,IAExFi8E,EADW,IAAIt+E,KAAKs4E,EAAUf,GACN7qE,UACxB6xE,GAAyB3J,EAASpnE,UACtC,GAAIF,EAAOkxE,SACLF,EAAe,IAAIt+E,KAAKsN,EAAOkxE,SAAS9xE,UAC1CkoE,EAAS0C,iBAFb,CAOA,GADA1C,EAASyC,iBAAmB,EACxBE,IAAc3C,EAASiE,aAAc,CACvC,IAAIwF,EAAmD,KAA5BzJ,EAAwB,gBAAU3hD,EACzD2qD,EAAgBt9E,EAAEs0E,EAAS8I,YAAYY,EAAc,SACtD16E,UAAW,gBAAkB84D,EAAM2hB,EAAqB,GAAK,OAAS3hB,EAAM,EAAI2hB,GAAsB,SACtG38E,SAAS,uBACZ01E,EAAWhuE,OAAOw0E,EAAc,IAChChJ,EAAS2I,QAAUnG,EAAWtsE,KAAK,mBACnC8pE,EAASp6D,KACP,mCACAo6D,EAAS2I,QAAQr0E,GAAG0rE,EAAS2I,QAAQpoF,OAAS,GAAG,IAGrDy/E,EAASpnE,WAAY,EACrBonE,EAASmJ,mBAAmB,QAC5B,IAAI/0B,EAAwC,IAA3B4rB,EAASyC,gBAAyBpkD,EAEnDmkD,EAAWrzE,WAAWA,GAAYH,UAAW,gBAAkB84D,EAAM1T,EAAY,GAAK,OAAS0T,EAAM,EAAI1T,GAAa,SAClHu1B,GACFnH,EAAW1wE,eAAc,WACvBkuE,EAASqJ,iBAAiB,WAGzB3wE,EAAOL,SACV2nE,EAASqJ,iBAAiB,UAI9BtJ,EAASr4E,UAAUk7E,UAAY,SAAoBzzE,GACjD,IAAI6wE,EAAW/gF,KACXyZ,EAASsnE,EAAStnE,OAClB8pE,EAAaxC,EAASwC,WACtBnkD,EAAW2hD,EAAS3hD,SACpBypC,EAAMkY,EAASC,kBACO,IAAf9wE,GAAoD,iBAAfA,IAC9CA,EAAa,GACRuJ,EAAOL,UAAWlJ,EAAa,IAEtC,IAAIyzE,EAAYniE,SAASu/D,EAAS2I,QAAQr0E,GAAG,GAAG7G,KAAK,cAAe,IAChEm2E,EAAWnjE,SAASu/D,EAAS2I,QAAQr0E,GAAG,GAAG7G,KAAK,aAAc,IAE9Do8E,EADW,IAAIz+E,KAAKw4E,EAAUhB,EAAY,GAAI,GACtB9qE,UACxB6xE,GAAyB3J,EAASpnE,UACtC,GAAIF,EAAOoxE,QAAS,CAClB,IAAIA,EAAU,IAAI1+E,KAAKsN,EAAOoxE,SAE9B,GAAID,GADJC,EAAU,IAAI1+E,KAAK0+E,EAAQhE,cAAegE,EAAQ/D,WAAY,IACnCjuE,UAEzB,YADAkoE,EAAS0C,aAKb,GADA1C,EAASyC,iBAAmB,EACxBG,IAAc5C,EAASiE,aAAc,CACvC,IAAIsF,EAAmD,KAA5BvJ,EAAwB,gBAAU3hD,EACzDwqD,EAAgBn9E,EAAEs0E,EAAS8I,YAAYe,EAAc,SACtD76E,UAAW,gBAAkB84D,EAAMyhB,EAAqB,GAAK,OAASzhB,EAAM,EAAIyhB,GAAsB,SACtGz8E,SAAS,uBACZ01E,EAAWztE,QAAQ8zE,EAAc,IACjC7I,EAAS2I,QAAUnG,EAAWtsE,KAAK,mBACnC8pE,EAASp6D,KACP,mCACAo6D,EAAS2I,QAAQr0E,GAAG,GAAG,IAG3B0rE,EAASpnE,WAAY,EACrBonE,EAASmJ,mBAAmB,QAC5B,IAAI/0B,EAAwC,IAA3B4rB,EAASyC,gBAAyBpkD,EACnDmkD,EACGrzE,WAAWA,GACXH,UAAW,gBAAkB84D,EAAM1T,EAAY,GAAK,OAAS0T,EAAM,EAAI1T,GAAa,SACnFu1B,GACFnH,EAAW1wE,eAAc,WACvBkuE,EAASqJ,iBAAiB,WAGzB3wE,EAAOL,SACV2nE,EAASqJ,iBAAiB,SAI9BtJ,EAASr4E,UAAUg7E,WAAa,SAAqBvzE,QAC/B,IAAfA,IAAwBA,EAAa,IAE1C,IACIqzE,EADWvjF,KACWujF,WACtBnkD,EAFWp/B,KAESo/B,SACpBypC,EAHW7oE,KAGIghF,aAEf7rB,EAA+B,IALpBn1D,KAIgBwjF,gBACWpkD,EAC1CmkD,EACGrzE,WAAWA,GACXH,UAAW,gBAAkB84D,EAAM1T,EAAY,GAAK,OAAS0T,EAAM,EAAI1T,GAAa,UAGzF2rB,EAASr4E,UAAUw8E,aAAe,SAAuBpD,EAAMF,EAAOzxE,GACpE,IAeI46E,EAfA/J,EAAW/gF,KACXyZ,EAASsnE,EAAStnE,OAClBovD,EAAMkY,EAASC,aACfuC,EAAaxC,EAASwC,WACtBnkD,EAAW2hD,EAAS3hD,SAiBxB,QAfoB,IAATyiD,IAAwBA,EAAOd,EAASmE,kBAE9B,IAAVvD,IAAyBA,EAAQZ,EAASiE,mBAC3B,IAAf90E,GAAoD,iBAAfA,IAE9CA,EAAa,GAERuJ,EAAOL,UAAWlJ,EAAa,IAIpC46E,EADEjJ,EAAOd,EAASmE,YACL,IAAI/4E,KAAK01E,EAAMF,EAAQ,GAAI,GAAG9oE,UAE9B,IAAI1M,KAAK01E,EAAMF,GAAO9oE,UAEjCY,EAAOkxE,SAAWG,EAAa,IAAI3+E,KAAKsN,EAAOkxE,SAAS9xE,UAC1D,OAAO,EAET,GAAIY,EAAOoxE,QAAS,CAClB,IAAIA,EAAU,IAAI1+E,KAAKsN,EAAOoxE,SAE9B,GAAIC,GADJD,EAAU,IAAI1+E,KAAK0+E,EAAQhE,cAAegE,EAAQ/D,WAAY,IACrCjuE,UACvB,OAAO,EAGX,IAAI8wE,EAAc,IAAIx9E,KAAK40E,EAASmE,YAAanE,EAASiE,cAAcnsE,UACpE0wE,EAAMuB,EAAanB,EAAc,OAAS,OAC1CoB,EAAehK,EAAS8I,YAAY,IAAI19E,KAAK01E,EAAMF,IACvDZ,EAASyC,gBAAkBzC,EAASyC,iBAAmB,EACvD,IACIwH,EADAC,EAAgBlK,EAASyC,gBAEzBkH,GAAyB3J,EAASpnE,WAA4B,IAAfzJ,EAC/C46E,EAAanB,GAEf5I,EAASyC,iBAAmB,EACvBzC,EAASpnE,WAAaonE,EAAS2I,QAAQr0E,GAAG0rE,EAAS2I,QAAQpoF,OAAS,GAAG6M,SAC5Eo1E,EAAWhuE,OAAOw1E,GAClBhK,EAAS2I,QAAUnG,EAAWtsE,KAAK,mBACnC+zE,EAAwC,MAArBC,EAAgB,GAAW7rD,EAC9C2hD,EAAS2I,QACNr0E,GAAG0rE,EAAS2I,QAAQpoF,OAAS,GAC7ByO,UAAW,gBAAkB84D,EAAMmiB,EAAiB,GAAK,OAASniB,EAAM,EAAImiB,GAAkB,SAC9Fn9E,SAAS,yBAGZkzE,EAASyC,iBAAmB,EACvBzC,EAASpnE,WAAaonE,EAAS2I,QAAQr0E,GAAG,GAAGlH,SAClDo1E,EAAWztE,QAAQi1E,GACnBhK,EAAS2I,QAAUnG,EAAWtsE,KAAK,mBACnC+zE,EAAwC,MAArBC,EAAgB,GAAW7rD,EAC9C2hD,EAAS2I,QACNr0E,GAAG,GACHtF,UAAW,gBAAkB84D,EAAMmiB,EAAiB,GAAK,OAASniB,EAAM,EAAImiB,GAAkB,SAC9Fn9E,SAAS,wBAEdkzE,EAASp6D,KACP,mCACQ,SAAR4iE,EACIxI,EAAS2I,QAAQr0E,GAAG0rE,EAAS2I,QAAQpoF,OAAS,GAAG,GACjDy/E,EAAS2I,QAAQr0E,GAAG,GAAG,IAG7B0rE,EAASpnE,WAAY,EACrBonE,EAASmJ,mBAAmBX,GAC5B,IAAI2B,EAA+C,IAA3BnK,EAASyC,gBAAyBpkD,EAC1DmkD,EACGrzE,WAAWA,GACXH,UAAW,gBAAkB84D,EAAMqiB,EAAmB,GAAK,OAASriB,EAAM,EAAIqiB,GAAoB,SACjGR,GACFnH,EAAW1wE,eAAc,WACvBkuE,EAASqJ,iBAAiBb,GAAK,MAG9B9vE,EAAOL,SAA0B,IAAflJ,GACrB6wE,EAASqJ,iBAAiBb,GAAK,IAInCzI,EAASr4E,UAAUg8E,SAAW,WACbzkF,KACNilF,aADMjlF,KACgBklF,YAAc,IAG/CpE,EAASr4E,UAAUk8E,SAAW,WACb3kF,KACNilF,aADMjlF,KACgBklF,YAAc,IAG/CpE,EAASr4E,UAAU0iF,YAAc,SAAsBC,EAASvb,GAC9D,IACI7uE,EADAY,GAAQ,EAEZ,IAAKiuE,EAAS,OAAO,EACrB,GAAI/sE,MAAMC,QAAQ8sE,GAChB,IAAK7uE,EAAI,EAAGA,EAAI6uE,EAAMvuE,OAAQN,GAAK,EAC7B6uE,EAAM7uE,GAAGqf,MAAQwvD,EAAM7uE,GAAGof,GACxByvD,EAAM7uE,GAAGqf,MAAQwvD,EAAM7uE,GAAGof,GACvBgrE,GAAW,IAAIj/E,KAAK0jE,EAAM7uE,GAAGof,IAAIvH,WAAeuyE,GAAW,IAAIj/E,KAAK0jE,EAAM7uE,GAAGqf,MAAMxH,YACtFjX,GAAQ,GAEDiuE,EAAM7uE,GAAGqf,KACd+qE,GAAW,IAAIj/E,KAAK0jE,EAAM7uE,GAAGqf,MAAMxH,YACrCjX,GAAQ,GAEDiuE,EAAM7uE,GAAGof,IACdgrE,GAAW,IAAIj/E,KAAK0jE,EAAM7uE,GAAGof,IAAIvH,YACnCjX,GAAQ,GAGHiuE,EAAM7uE,GAAGslF,KACd8E,IAAY,IAAIj/E,KAAK0jE,EAAM7uE,GAAGslF,MAAMztE,YACtCjX,GAAQ,GAEDwpF,IAAY,IAAIj/E,KAAK0jE,EAAM7uE,IAAI6X,YACxCjX,GAAQ,QAGHiuE,EAAMxvD,MAAQwvD,EAAMzvD,GACzByvD,EAAMxvD,MAAQwvD,EAAMzvD,GACjBgrE,GAAW,IAAIj/E,KAAK0jE,EAAMzvD,IAAIvH,WAAeuyE,GAAW,IAAIj/E,KAAK0jE,EAAMxvD,MAAMxH,YAChFjX,GAAQ,GAEDiuE,EAAMxvD,KACX+qE,GAAW,IAAIj/E,KAAK0jE,EAAMxvD,MAAMxH,YAClCjX,GAAQ,GAEDiuE,EAAMzvD,IACXgrE,GAAW,IAAIj/E,KAAK0jE,EAAMzvD,IAAIvH,YAChCjX,GAAQ,GAGHiuE,EAAMyW,KACf1kF,EAAQwpF,IAAY,IAAIj/E,KAAK0jE,EAAMyW,MAAMztE,UACf,mBAAVg3D,IAChBjuE,EAAQiuE,EAAM,IAAI1jE,KAAKi/E,KAEzB,OAAOxpF,GAGTk/E,EAASr4E,UAAU4iF,YAAc,SAAsB/E,GACrD,IAAI3kE,EAAI,IAAIxV,KAAKm6E,GACjB,OAAO,IAAIn6E,KAAKwV,EAAEklE,cAAellE,EAAEmlE,WAAa,EAAG,GAAGC,WAGxDjG,EAASr4E,UAAU6iF,aAAe,SAAuBhF,GAEvD,OADetmF,KACFyZ,OAAO6xE,aADLtrF,KAEGyZ,OAAO6xE,aAAaplF,KAFvBlG,KAEsCsmF,IAE7C,oDAJOtmF,KAI2D6pF,YAAYvD,EAAM,QAAW,SAJxFtmF,KAI6G6pF,YAAYvD,GAAS,SAJlItmF,KAIuJ6pF,YAAYvD,EAAM,QAAW,oBAAoBnlF,QAGzN2/E,EAASr4E,UAAUohF,YAAc,SAAsBloE,EAAGhO,GACxD,IAAIotE,EAAW/gF,KACXyZ,EAASsnE,EAAStnE,OAClB/K,EAAQqyE,EAASryE,MACrB,GAAI+K,EAAOowE,YACT,OAAOpwE,EAAOowE,YAAY3jF,KAAK66E,EAAUp/D,EAAGhO,GAE9C,IAAI2yE,EAAO,IAAIn6E,KAAKwV,GAChBkgE,EAAOyE,EAAKO,cACZlF,EAAQ2E,EAAKQ,WACbyE,EAAcxK,EAASiB,WAAWrgF,QAAQo/E,EAASW,eAAe8E,OAAOF,IACzEiF,EAAc,IAAKA,EAAc5J,GACrC,IAAI6J,EAAazK,EAASa,cAAc4E,OAAOF,GAEhC,SAAX3yE,IACkB2yE,EAAN,KAAV3E,EAAuB,IAAIx1E,KAAK01E,EAAO,EAAG,GAChC,IAAI11E,KAAK01E,EAAMF,EAAQ,EAAG,IAE3B,SAAXhuE,IACiB2yE,EAAL,IAAV3E,EAAsB,IAAIx1E,KAAK01E,EAAO,EAAG,IAC/B,IAAI11E,KAAK01E,EAAMF,EAAQ,EAAG,IAE3B,SAAXhuE,GAAgC,SAAXA,IACvBguE,EAAQ2E,EAAKQ,WACbjF,EAAOyE,EAAKO,eACZ0E,EAAcxK,EAASiB,WAAWrgF,QAAQo/E,EAASW,eAAe8E,OAAOF,KACvD,IAAKiF,EAAc5J,GACrC6J,EAAazK,EAASa,cAAc4E,OAAOF,IAG7C,IAYIr3B,EACAw8B,EAbAC,EAAgB,GAChBC,GAAQ,IAAIx/E,MAAO+3E,SAAS,EAAG,EAAG,EAAG,GACrC2G,EAAUpxE,EAAOoxE,QAAU,IAAI1+E,KAAKsN,EAAOoxE,SAAShyE,UAAY,KAChE8xE,EAAUlxE,EAAOkxE,QAAU,IAAIx+E,KAAKsN,EAAOkxE,SAAS9xE,UAAY,KAGhE+yE,EAAkB7K,EAASsK,YAAY,IAAIl/E,KAAKm6E,EAAKO,cAAeP,EAAKQ,YAAYjuE,UAAY,OACjGwyE,EAActK,EAASsK,YAAY/E,GACnCuF,EAAmC,IAApBpyE,EAAOqyE,SAAiB,EAAI,EAE3CC,EAAY,GACZC,EAAgBvyE,EAAOqyE,SAAW,EAAvB,EAGXG,EAAuB,IAAI9/E,KAAKm6E,EAAKO,cAAeP,EAAKQ,YAAYJ,SAGzE,GAF6B,IAAzBuF,IAA8BA,EAAuB,GAErDv9E,GAASA,EAAMpN,OACjB,IAAK,IAAIN,EAAI,EAAGA,EAAI0N,EAAMpN,OAAQN,GAAK,EACrC0qF,EAAchqF,KAAK,IAAIyK,KAAKuC,EAAM1N,IAAIkjF,SAAS,EAAG,EAAG,EAAG,IAI5D,IAAK,IAAIgI,EAAM,EAAGA,GAnBP,EAmBoBA,GAAO,EAAG,CA4FvC,IA3FA,IAAIC,EAAU,GACVztB,EAAO,SAAW0tB,GAEpB,IAAIhB,OAAU,EACViB,GAFJL,GAAY,GAEeC,EACvBp+E,EAAW,GACH,IAARq+E,GAAqB,IAARE,GAAaC,EAAYR,GAAoC,IAApBpyE,EAAOqyE,WAE/DO,GADAL,GAAY,GACWC,GAGzB,IAAIK,EAAiBF,EAAM,EAAK3yE,EAAOqyE,SAAW,EAC5CM,EAAM,EAAI,EAAK3yE,EAAOqyE,SACtBM,EAAM,EAAK3yE,EAAOqyE,SAEpBO,EAAY,GACdA,EAAYT,EAAkBS,EAAY,EAC1Cx+E,GAAY,qBACZu9E,EAAU,IAAIj/E,KAAKw1E,EAAQ,EAAI,EAAIE,EAAO,EAAIA,EAAMF,EAAQ,EAAI,EAAI,GAAKA,EAAQ,EAAG0K,GAAWxzE,YAE/FwzE,GAAa,GACGhB,GACdgB,GAAahB,EACbx9E,GAAY,qBACZu9E,EAAU,IAAIj/E,KAAKw1E,EAAQ,EAAI,GAAKE,EAAO,EAAIA,EAAMF,EAAQ,EAAI,GAAK,EAAIA,EAAQ,EAAG0K,GAAWxzE,WAEhGuyE,EAAU,IAAIj/E,KAAK01E,EAAMF,EAAO0K,GAAWxzE,UAI3CuyE,IAAYO,IAAS99E,GAAY,uBAGjC4L,EAAO2nE,aAAwC,IAAzBsK,EAAcpqF,OAClC8pF,GAAWM,EAAc,IAAMN,GAAWM,EAAc,KAAM79E,GAAY,0BACrE69E,EAAc/pF,QAAQypF,IAAY,IAAKv9E,GAAY,0BAE1D4L,EAAO8yE,YAAY5qF,QAAQ2qF,IAAiB,IAC9Cz+E,GAAY,yBAGd,IAAI2+E,EAAa,GAOjB,GANAf,GAAY,EACRhyE,EAAOpI,QACL0vE,EAASoK,YAAYC,EAAS3xE,EAAOpI,UACvCo6E,GAAY,GAGZA,IACF59E,GAAY,2BACZ2+E,EAAa,4IACT1pF,MAAMC,QAAQ0W,EAAOpI,SAAS,CAChC,IAAIo7E,EAAY,GAChBhzE,EAAOpI,OAAOtN,SAAQ,SAAU2oF,GAC9B,IAAIxxC,EAAQwxC,EAAGxxC,OAAS,GACpBuxC,EAAU9qF,QAAQu5C,GAAS,GAAK6lC,EAASoK,YAAYC,EAASsB,IAChED,EAAU/qF,KAAKw5C,MAGnBsxC,EAAa,uEAA4EC,EAAU93E,KAAI,SAAUumC,GAAS,OAAQ,gEAAqEA,EAAS,qBAAuBA,EAAS,IAAM,+BAAgC/5C,UAAWgD,KAAK,IAAO,wCAIjT,GAAIsV,EAAOkzE,cACT,IAAK,IAAIx7E,EAAI,EAAGA,EAAIsI,EAAOkzE,cAAcrrF,OAAQ6P,GAAK,EAChD4vE,EAASoK,YAAYC,EAAS3xE,EAAOkzE,cAAcx7E,GAAG0+D,SACxDhiE,GAAY,IAAO4L,EAAOkzE,cAAcx7E,GAAW,UAKzD89C,GAAW,GACN47B,GAAWO,EAAUP,GAAaF,GAAWS,EAAUT,KAC1D17B,GAAW,GAETx1C,EAAOw1C,UACL8xB,EAASoK,YAAYC,EAAS3xE,EAAOw1C,YACvCA,GAAW,GAGXA,IACFphD,GAAY,0BAId,IAAI++E,GADJxB,EAAU,IAAIj/E,KAAKi/E,IACGvE,cAClBgG,EAAWzB,EAAQtE,WACnBgG,EAAmB/L,EAASM,aAAamF,OAAO4E,GACpDe,IAAY,+BAAkCS,EAAU,iBAAqBC,EAAW,eAAmBR,EAAY,wBAA4Bx+E,EAAW,gBAAoB++E,EAAU,IAAMC,EAAW,IAAMR,EAAY,qDAA0DS,EAAmBN,EAAa,6BAA6BrrF,QAG/UirF,EAAM,EAAGA,GA9GT,EA8GsBA,GAAO,EAAG1tB,EAAM0tB,GAC/CL,GAAa,6BAAiCI,EAAU,SAG1D,OADAJ,EAAY,0CAA+ClK,EAAO,iBAAqBF,EAAQ,uBAA2B6J,EAAa,wBAA4BD,EAAc,KAAQQ,EAAY,UAIvMjL,EAASr4E,UAAUskF,iBAAmB,WAEpC,GADe/sF,KACFyZ,OAAOszE,iBAClB,OAFa/sF,KAEGyZ,OAAOszE,iBAAiB7mF,KAF3BlG,MAMf,IAFA,IAAIyZ,EAJWzZ,KAIOyZ,OAClBuzE,EAAe,GACVhsF,EAAI,EAAGA,EAAI,EAAGA,GAAK,EAAG,CAC7B,IAAIgrF,EAAYhrF,EAAIyY,EAAOqyE,SAAW,EAChC9qF,EAAI,EAAKyY,EAAOqyE,SACjB9qF,EAAIyY,EAAOqyE,SAEhBkB,GAAgB,kCAXHhtF,KAUUmiF,cAAc6J,GAC2B,SAElE,OAAQ,mDAAuDgB,EAAe,oBAAoB7rF,QAGpG2/E,EAASr4E,UAAUwkF,oBAAsB,WAEvC,OADejtF,KACFyZ,OAAOwzE,oBADLjtF,KAEGyZ,OAAOwzE,oBAAoB/mF,KAF9BlG,OAKP,wKALOA,KAKkLyZ,OAAOksE,YAAc,6DAAiE,+DAAmE,qIAAyIxkF,QAGre2/E,EAASr4E,UAAUo8E,kBAAoB,WACrC,IACI0G,EAAc/pE,SADHxhB,KACqBspB,IAAIrS,KAAK,2BAA2BzI,KAAK,qBAAsB,IACnG,MAAQ,wDAFOxO,KAE+DgiF,WAAWrtE,KAAI,SAAUsM,EAAGta,GAAS,MAAQ,uDAA0D4kF,IAAgB5kF,EAAQ,qCAAuC,IAAM,yBAA4Bsa,EAAI,yCAA2C9c,KAAK,IAAO,wBAGnV28E,EAASr4E,UAAUykF,mBAAqB,WAEtC,OADeltF,KACFyZ,OAAOyzE,mBADLltF,KAEGyZ,OAAOyzE,mBAAmBhnF,KAF7BlG,OAIP,sKAJOA,KAIgLyZ,OAAOmsE,WAAa,4DAAgE,8DAAkE,oIAAwIzkF,QAG/d2/E,EAASr4E,UAAU28E,iBAAmB,WACpC,IAAIrE,EAAW/gF,KACXklF,EAAcnE,EAASmE,YACvBiI,EAAUpM,EAAStnE,OAAO2zE,gBAAiB,IAAIjhF,MAAO06E,cAAgB,IACtE9F,EAAStnE,OAAOoxE,UAClBsC,EAAU70E,KAAKC,IAAI40E,EAAS,IAAIhhF,KAAK40E,EAAStnE,OAAOoxE,SAAShE,gBAEhE,IAAIwG,EAAUtM,EAAStnE,OAAO6zE,gBAAiB,IAAInhF,MAAO06E,cAAgB,IACtE9F,EAAStnE,OAAOkxE,UAClB0C,EAAU/0E,KAAKE,IAAI60E,EAAS,IAAIlhF,KAAK40E,EAAStnE,OAAOkxE,SAAS9D,gBAGhE,IADA,IAAI0G,EAAQ,GACHvsF,EAAImsF,EAASnsF,GAAKqsF,EAASrsF,GAAK,EACvCusF,EAAM7rF,KAAKV,GAEb,MAAQ,uDAA4DusF,EAAM54E,KAAI,SAAUktE,GAAQ,MAAQ,+BAAkCA,EAAO,uCAA2CA,IAASqD,EAAc,oCAAsC,IAAM,yBAA6BnE,EAASa,cAAc4E,QAAO,IAAIr6E,MAAOqhF,YAAY3L,IAAU,yCAA2C19E,KAAK,IAAO,wBAIpZ28E,EAASr4E,UAAUglF,mBAAqB,WACtC,IAEIC,EADAh/E,EADW1O,KACM0O,OADN1O,KACwB0O,MAAM,GAG7C,OADIA,IAASg/E,EAHE1tF,KAGoB8hF,sBAAsB0E,OAAO93E,IACxD,gEAAsEg/E,GAJ/D1tF,KAIsFyZ,OAAO2vE,uBAAyB,oBAGvItI,EAASr4E,UAAUklF,aAAe,WAEhC,OADe3tF,KACFyZ,OAAOk0E,aADL3tF,KAEGyZ,OAAOk0E,aAAaznF,KAFvBlG,OAIP,kFAJOA,KAI2FyZ,OAAwB,kBAAI,0BAA0BtY,QAGlK2/E,EAASr4E,UAAUmlF,aAAe,WAChC,IACI1kE,EADWlpB,KACIkpB,IACnB,OAFelpB,KAEFyZ,OAAOm0E,aAFL5tF,KAGGyZ,OAAOm0E,aAAa1nF,KAHvBlG,OAKP,yDAA4E,OAAdkpB,EAAI/C,MAAiB,SAAW,QAAU,8CALjGnmB,KAK4JyZ,OAAuB,iBAAI,wBAAwBtY,QAGhO2/E,EAASr4E,UAAUolF,cAAgB,WAEjC,OADe7tF,KACFyZ,OAAOo0E,cADL7tF,KAEGyZ,OAAOo0E,cAAc3nF,KAFxBlG,KAAAA,OAIP,kGAJOA,KAI0GyZ,OAAOq0E,cAJjH9tF,KAI0IitF,sBAAwB,IAAM,cAJxKjtF,KAIiMyZ,OAAOs0E,aAJxM/tF,KAIgOktF,qBAAuB,IAAM,kCAAkC/rF,QAGhT2/E,EAASr4E,UAAUulF,aAAe,WAChC,IACIjzE,EADW/a,KACIyZ,OACf6tC,EAAWvsC,EAAIusC,SACfnD,EAAUppC,EAAIopC,QACdklC,EAAStuE,EAAIsuE,OACb4E,EAASlzE,EAAIkzE,OACb7M,EAAcrmE,EAAIqmE,YAClB8M,EAAanzE,EAAImzE,WACjBx/E,EARW1O,KAQM0O,MACjBwyE,EATWlhF,KASckhF,cACzBoF,EAAO53E,GAASA,EAAMpN,OAASoN,EAAM,IAAK,IAAIvC,MAAO+3E,SAAS,EAAG,EAAG,GAGxE,OAFkB,+CAAkD9C,EAAc,iBAAmB,IAAM,KAAO95B,GAAY,IAAM,cAAiB+hC,EAXtIrpF,KAWwJ2tF,eAAiB,IAAM,YAAcxpC,EAX7LnkD,KAWgN6tF,gBAAkB,IAAM,YAAcK,EAXtPluF,KAW4Q+sF,mBAAqB,IAAM,kDAXvS/sF,KAWuWsrF,aAAahF,GAAS,0BAA4BpF,EAXzZlhF,KAWkbytF,qBAAuB,IAAM,YAAcQ,EAX7djuF,KAW+e4tF,eAAiB,IAAM,oBAAoBzsF,QAK3iB2/E,EAASr4E,UAAU0lF,kBAAoB,WACrC,IACIpzE,EADW/a,KACIyZ,OACf6tC,EAAWvsC,EAAIusC,SACfnD,EAAUppC,EAAIopC,QACdklC,EAAStuE,EAAIsuE,OACb4E,EAASlzE,EAAIkzE,OACb7M,EAAcrmE,EAAIqmE,YAClB8M,EAAanzE,EAAImzE,WACjBx/E,EARW1O,KAQM0O,MACjBwyE,EATWlhF,KASckhF,cACzBoF,EAAO53E,GAASA,EAAMpN,OAASoN,EAAM,IAAK,IAAIvC,MAAO+3E,SAAS,EAAG,EAAG,GAGxE,OAFiB,8CAAiD9C,EAAc,iBAAmB,IAAM,KAAO95B,GAAY,IAAM,cAAiB+hC,EAXpIrpF,KAWsJ2tF,eAAiB,IAAM,YAAcxpC,EAX3LnkD,KAW8M6tF,gBAAkB,IAAM,YAAcK,EAXpPluF,KAW0Q+sF,mBAAqB,IAAM,kDAXrS/sF,KAWqWsrF,aAAahF,GAAS,0BAA4BpF,EAXvZlhF,KAWgbytF,qBAAuB,IAAM,YAAcQ,EAX3djuF,KAW6e4tF,eAAiB,IAAM,oBAAoBzsF,QAKziB2/E,EAASr4E,UAAUqzE,YAAc,WAC/B,IACI/gE,EADW/a,KACIyZ,OACf6tC,EAAWvsC,EAAIusC,SACfnD,EAAUppC,EAAIopC,QACdklC,EAAStuE,EAAIsuE,OACb4E,EAASlzE,EAAIkzE,OACb7M,EAAcrmE,EAAIqmE,YAClB8M,EAAanzE,EAAImzE,WACjBx/E,EARW1O,KAQM0O,MACjBwyE,EATWlhF,KASckhF,cACzBoF,EAAO53E,GAASA,EAAMpN,OAASoN,EAAM,IAAK,IAAIvC,MAAO+3E,SAAS,EAAG,EAAG,GAGxE,OAFiB,0DAA6D9C,EAAc,iBAAmB,IAAM,KAAO95B,GAAY,IAAM,cAAiB+hC,EAXhJrpF,KAWkK2tF,eAAiB,IAAM,YAAcxpC,EAXvMnkD,KAW0N6tF,gBAAkB,IAAM,YAAcK,EAXhQluF,KAWsR+sF,mBAAqB,IAAM,oEAXjT/sF,KAWmYsrF,aAAahF,GAAS,0BAA4BpF,EAXrblhF,KAW8cytF,qBAAuB,IAAM,YAAcQ,EAXzfjuF,KAW2gB4tF,eAAiB,IAAM,oBAAoBzsF,QAKvkB2/E,EAASr4E,UAAU4lD,cAAgB,WACjC,IACItzC,EADW/a,KACIyZ,OACf6tC,EAAWvsC,EAAIusC,SACfnD,EAAUppC,EAAIopC,QACdklC,EAAStuE,EAAIsuE,OACb4E,EAASlzE,EAAIkzE,OACb7M,EAAcrmE,EAAIqmE,YAClB8M,EAAanzE,EAAImzE,WACjBx/E,EARW1O,KAQM0O,MACjBwyE,EATWlhF,KASckhF,cACzBoF,EAAO53E,GAASA,EAAMpN,OAASoN,EAAM,IAAK,IAAIvC,MAAO+3E,SAAS,EAAG,EAAG,GAGxE,OAFmB,kHAAyH9C,EAAc,iBAAmB,IAAM,KAAO95B,GAAY,IAAM,gBAAmB+hC,EAXhNrpF,KAWkO2tF,eAAiB,IAAM,cAAgBxpC,EAXzQnkD,KAW4R6tF,gBAAkB,IAAM,cAAgBK,EAXpUluF,KAW0V+sF,mBAAqB,IAAM,sDAXrX/sF,KAWybsrF,aAAahF,GAAS,8BAAgCpF,EAX/elhF,KAWwgBytF,qBAAuB,IAAM,cAAgBQ,EAXrjBjuF,KAWukB4tF,eAAiB,IAAM,kDAAkDzsF,QAKjqB2/E,EAASr4E,UAAUkQ,OAAS,WAC1B,IACIc,EADWzZ,KACOyZ,OACtB,GAAIA,EAAOd,OAAU,OAAOc,EAAOd,OAAOzS,KAF3BlG,MAGf,IAHeA,KAGDihF,OAAQ,CACpB,IAAIl8C,EAAYtrB,EAAOw/D,OAGvB,MAFkB,SAAdl0C,IAAwBA,EALf/kC,KAKoC4iF,YAAc,UAAY,SAEzD,YAAd79C,EAPS/kC,KAOkCquD,gBAC7B,UAAdtpB,EARS/kC,KAQgC87E,cARhC97E,KASGmuF,oBAElB,OAXenuF,KAWCguF,gBAGlBlN,EAASr4E,UAAU+8E,eAAiB,WAClC,IACIl8D,EADWtpB,KACIspB,IACfJ,EAFWlpB,KAEIkpB,IACnB,GAAKI,GAAQA,EAAIhoB,OAAjB,CACAgoB,EAAI/T,OAAO,4CAGX,IAFA,IAII7G,EAJA0/E,EAAW,GACXC,EAAa,GACRrtF,EAAI,EAAGA,GAAK,GAAIA,GAAK,EAAKotF,EAAS1sF,KAAKV,GACjD,IAAK,IAAI0O,EAAM,EAAGA,GAAO,GAAIA,GAAO,EAAK2+E,EAAW3sF,KAAKgO,GAGvDhB,EAXa1O,KAUF0O,OAVE1O,KAUgB0O,MAAMpN,OAC3B,CAXKtB,KAWK0O,MAAM,GAAGy1E,WAXdnkF,KAWmC0O,MAAM,GAAG01E,cAEjD,EAAC,IAAIj4E,MAAOg4E,YAAY,IAAIh4E,MAAOi4E,cAb9BpkF,KAeNsuF,mBAAqBplE,EAAIqlE,OAAOpnE,OAAO,CAC9Cu9C,YAAap7C,EAAIrS,KAAK,yBACtBvI,MAAOA,EACPy1C,SAAS,EACTqqC,cAAc,EACdC,iBApBazuF,KAoBcyZ,OAAOg1E,iBAClC50B,KAAM,CACJ,CACEhqD,OAAQu+E,GAEV,CACEM,SAAS,EACTpsF,QAAS,KAEX,CACEuN,OAAQw+E,EACRM,cAAeN,EAAW15E,KAAI,SAAUsM,GAAK,OAAQA,EAAI,GAAM,IAAMA,EAAKA,SA/BjEjhB,KAkCNsuF,mBAAmBhlE,IAAIrS,KAAK,cAAc/I,YAAY,6BAA6BL,SAAS,gCAGvGizE,EAASr4E,UAAUi9E,gBAAkB,WAEnC,GADe1lF,KACFsuF,mBAAoB,CAC/B,IAAIvzE,EAFS/a,KAEMsuF,mBAAmB5/E,MAAMiG,KAAI,SAAU0jC,GAAK,OAAO72B,SAAS62B,EAAG,OAC9E2vC,EAAQjtE,EAAI,GACZktE,EAAUltE,EAAI,GACdrM,EALS1O,KAKQ0O,OALR1O,KAK0B0O,MAAMpN,QALhCtB,KAKmD0O,MAAM,GACjEA,GAIHA,EAAQ,IAAIvC,KAAKuC,IACXw1E,SAAS8D,EAAOC,IAJtBv5E,EAAQ,IAAIvC,MACN+3E,SAAS8D,EAAOC,EAAS,EAAG,GARvBjoF,KAaJkyE,SAAS,CAACxjE,IAbN1O,KAcJsuF,mBAAmBvkE,QAdf/pB,KAeJsuF,mBAAmB/kE,iBAffvpB,KAgBGsuF,mBAhBHtuF,KAkBFspB,KAlBEtpB,KAkBcspB,IAAIhoB,QAlBlBtB,KAmBJspB,IAAIrS,KAAK,yBAAyB9I,UAI/C2yE,EAASr4E,UAAUg9C,OAAS,WAC1B,IAAIs7B,EAAW/gF,KACXuuB,EAAcwyD,EAASxyD,YACvBjF,EAAMy3D,EAASz3D,IACfJ,EAAM63D,EAAS73D,IACfkiD,EAAW2V,EAAS3V,SACpB6V,EAASF,EAASE,OAClBvyE,EAAQqyE,EAASryE,MACjB+K,EAASsnE,EAAStnE,OACtBsnE,EAAS8B,SAAU,EACnB9B,EAASv7B,QAAS,EAClBu7B,EAAS6N,SAAU,EAGnB7N,EAASoC,uBAET,IAAI4F,GAAer6E,GAAS+K,EAAO/K,MAG9B6f,EAKM7f,GACTqyE,EAAS7O,SAASxjE,EAAO,GALrBA,EAASqyE,EAAS7O,SAASxjE,EAAO,GAC7B+K,EAAO/K,OACdqyE,EAAS7O,SAAS6O,EAASiG,gBAAgBvtE,EAAO/K,OAAQ,GAO9DqyE,EAASuI,yBAGTvI,EAASyC,gBAAkB,EAC3BzC,EAASiJ,qBAGLjB,EAAehI,EAASgI,cACnBtvE,EAAO4vE,QAAU36E,GACxBqyE,EAASgI,aAAY,IAIlB9H,GAAU7V,GAAYA,EAAS9pE,QAAwB,OAAd4nB,EAAI/C,OAChDilD,EAAS/4D,QAAQ,SAGnB0uE,EAASxyD,aAAc,EAEvBwyD,EAAS2I,QAAQpjF,MAAK,SAAUK,EAAOsjF,GACrClJ,EAASp6D,KAAK,mCAAoCsjE,MAIhD3gE,GACFA,EAAIjX,QAAQ,iBAEV+4D,GACFA,EAAS/4D,QAAQ,iBAEnB0uE,EAASp6D,KAAK,2BAA4Bo6D,IAG5CD,EAASr4E,UAAUi9C,SAAW,WACb1lD,KACN4uF,SAAU,EADJ5uF,KAEFspB,KAFEtpB,KAGJspB,IAAIjX,QAAQ,mBAHRrS,KAKForE,UALEprE,KAMJorE,SAAS/4D,QAAQ,mBANbrS,KAQN2mB,KAAK,+BARC3mB,OAWjB8gF,EAASr4E,UAAUk9C,QAAU,WAC3B,IACIz8B,EADWlpB,KACIkpB,IAInB,GALelpB,KAEN4uF,SAAU,EAFJ5uF,KAGN6iF,SAAU,EAHJ7iF,KAKForE,SACX,GAAkB,OAAdliD,EAAI/C,MANKnmB,KAOForE,SAAS/4D,QAAQ,YACrB,CACL,IAAIsnB,EATO35B,KASaorE,SAAS58D,KAAK,YAClCqgF,EAVO7uF,KAUaorE,SAAS58D,KAAK,YAClCmrB,GAAYk1D,GACd3lE,EAAIukD,MAAM9zC,SAZD35B,KAYmBorE,UAZnBprE,KAgBF8lF,sBAhBE9lF,KAiBJ8lF,uBAjBI9lF,KAoBFspB,KApBEtpB,KAqBJspB,IAAIjX,QAAQ,kBArBRrS,KAuBForE,UAvBEprE,KAwBJorE,SAAS/4D,QAAQ,kBAxBbrS,KA0BN2mB,KAAK,6BA1BC3mB,OA6BjB8gF,EAASr4E,UAAUm9C,SAAW,WAC5B,IAAIm7B,EAAW/gF,KACf+gF,EAASv7B,QAAS,EAClBu7B,EAAS8B,SAAU,EAEd9B,EAASE,QACZ/jE,MAAMW,UAAS,WACTkjE,EAASt7C,OAASs7C,EAASt7C,MAAMv2B,IAAM6xE,EAASt7C,MAAMlc,UACnDw3D,EAAStnE,OAAO8jE,gBACnBwD,EAASt7C,MAAMlc,kBAGZw3D,EAASt7C,SAGhBs7C,EAASuN,qBACPvN,EAASuN,mBAAmB/kE,SAAWw3D,EAASuN,mBAAmB/kE,iBAChEw3D,EAASuN,oBAEdvN,EAASz3D,KACXy3D,EAASz3D,IAAIjX,QAAQ,mBAEnB0uE,EAAS3V,UACX2V,EAAS3V,SAAS/4D,QAAQ,mBAE5B0uE,EAASp6D,KAAK,+BAAgCo6D,IAGhDD,EAASr4E,UAAUghB,KAAO,WACxB,IAAIphB,EAEA04E,EAAW/gF,KACXkpB,EAAM63D,EAAS73D,IACfs8B,EAASu7B,EAASv7B,OAClBy7B,EAASF,EAASE,OAClB7V,EAAW2V,EAAS3V,SACpB3xD,EAASsnE,EAAStnE,OACtB,IAAI+rC,EAAJ,CAEA,GAAIy7B,EAQF,OAPAF,EAASz3D,IAAM7c,EAAEs0E,EAASpoE,UAC1BooE,EAASz3D,IAAI,GAAGwlE,WAAa/N,EAC7BA,EAASwC,WAAaxC,EAASz3D,IAAIrS,KAAK,4BACxC8pE,EAAS2I,QAAU3I,EAASwC,WAAWtsE,KAAK,mBAC5C8pE,EAAStc,aAAalvD,OAAOwrE,EAASz3D,KACtCy3D,EAASt7B,cACTs7B,EAASr7B,WAGX,IAAI3gB,EAAYtrB,EAAOw/D,OACL,SAAdl0C,IACFA,EAAYg8C,EAAS6B,YAAc,UAAY,SAEjD,IAAI30C,EAAe8yC,EAASpoE,SAExB00B,EAAc,CAChB3jB,SAAU0hD,EACVpa,WAAYv3C,EAAOs1E,cAAgB3jB,OAAWjrE,EAC9CmC,QAAS2rC,EACTwY,UAA8B,IAApBhtC,EAAOgtC,UAAoC,YAAd1hB,IAA2D,IAAhC7b,EAAIzP,OAAO+yC,QAAQ/F,WAA0C,IAApBhtC,EAAOgtC,SAClHD,qBAAsB/sC,EAAO+sC,qBAC7Bl2C,GAAI,CACFmZ,KAAM,WAEJs3D,EAASt7C,MADGzlC,KAEZ+gF,EAASz3D,IAAoB,YAAdyb,EAFH/kC,KAEmCspB,IAAIrS,KAAK,aAF5CjX,KAEiEspB,IAC7Ey3D,EAASwC,WAAaxC,EAASz3D,IAAIrS,KAAK,4BACxC8pE,EAAS2I,QAAU3I,EAASwC,WAAWtsE,KAAK,mBAC5C8pE,EAASz3D,IAAI,GAAGwlE,WAAa/N,EACX,gBAAdh8C,GACFt4B,EAAEs0E,EAASz3D,KAAKrS,KAAK,mBAAmBjF,KAAK,SAAS,WACpD+uE,EAASh3D,WAGbg3D,EAASt7B,UAEXD,OAAQ,WAAoBu7B,EAASr7B,YACrC37B,MAAO,WAAmBg3D,EAASp7B,WACnCiJ,OAAQ,WAAoBmyB,EAASn7B,cAGvB,UAAd7gB,IACFsI,EAAY3rC,KAAO+X,EAAOikE,UAC1BrwC,EAAYme,aAAe/xC,EAAOkkE,mBAEhClkE,EAAO8jE,gBAAkBwD,EAAS1kD,KACpC0kD,EAAS1kD,KAAKnO,OAAO4N,SAAS,CAC5B1d,IAAK2iE,EAAS3iE,IACd0c,OAASzyB,EAAM,CACbuwB,KAAMmoD,EAAS3iE,KACd/V,EAAI08B,GAAasI,EAAahlC,MAGnC04E,EAASt7C,MAAQvc,EAAI6b,GAAW5d,OAAOkmB,GACvC0zC,EAASt7C,MAAMhc,UAInBq3D,EAASr4E,UAAUshB,MAAQ,WACzB,IACIy7B,EADWxlD,KACOwlD,OAClBy7B,EAFWjhF,KAEOihF,OACtB,GAAKz7B,EACL,OAAIy7B,GAJWjhF,KAKJ2lD,eALI3lD,KAMJ4lD,iBANI5lD,KASFyZ,OAAO8jE,gBATLv9E,KASgCq8B,KAThCr8B,KAUJq8B,KAAKnO,OAAOpiB,OAVR9L,KAYJylC,MAAM1b,UAInB+2D,EAASr4E,UAAU8jB,KAAO,WAKxB,GAJevsB,KAENinF,YAFMjnF,KAIFihF,OAGX,OAPajhF,KAKJypB,YALIzpB,KAMJ2mB,KAAK,2BAND3mB,OAAAA,KAUDuuB,aAVCvuB,KAUuByZ,OAAO/K,OAV9B1O,KAWJkyE,SAXIlyE,KAWcgnF,gBAXdhnF,KAWuCyZ,OAAO/K,QAX9C1O,KAeForE,UAfEprE,KAgBJ8iF,oBAhBI9iF,KAkBFyZ,OAAOkzC,qBAlBL3sD,KAmBJijF,mBAnBIjjF,KAqBN2mB,KAAK,2BArBC3mB,OAwBjB8gF,EAASr4E,UAAU8gB,QAAU,WAE3B,IADevpB,KACF2mD,UAAb,CACA,IAAIr9B,EAFWtpB,KAEIspB,IAFJtpB,KAGN2mB,KAAK,6CAHC3mB,MAIXspB,GAAOA,EAAIjX,QAAQ,0BAJRrS,KAMN+pB,QANM/pB,KASForE,UATEprE,KAUJgjF,oBAVIhjF,KAYFyZ,OAAOkzC,qBAZL3sD,KAaJkjF,mBAbIljF,KAgBFsuF,qBAhBEtuF,KAiBAsuF,mBAAmB/kE,SAjBnBvpB,KAiBuCsuF,mBAAmB/kE,iBAjB1DvpB,KAkBGsuF,oBAGdhlE,GAAOA,EAAIhoB,eArBAtB,KAqB0BspB,IAAI,GAAGwlE,WAChD5xE,MAAMU,YAtBS5d,MAAAA,KAuBN2mD,WAAY,IAGvBziD,OAAOiF,iBAAkB23E,EAASr4E,UAAWilB,GAEtCozD,EA7uDmB,CA8uD1B75D,iBAEE+nE,WAAa,CACfxqF,KAAM,WACNmkB,OAAQ,CACNm4D,SAAUA,UAEZ35D,OAAQ,WACInnB,KACN+gF,SAAWl4D,mBAAmB,CAChCE,gBAAiB,YACjB9kB,YAAa68E,SACb53D,IAJQlpB,KAKRipB,QAAS,eALDjpB,KAON+gF,SAASh3D,MAAQ,SAAe7a,QACtB,IAAPA,IAAgBA,EAAK,aAE1B,IAAIoa,EAAM7c,EAAEyC,GACZ,GAAmB,IAAfoa,EAAIhoB,OAAR,CACA,IAAIy/E,EAAWz3D,EAAI,GAAGwlE,YACjB/N,GAAaA,IAAaA,EAASv7B,QACxCu7B,EAASh3D,WAGbtQ,OAAQ,CACNsnE,SAAU,CAERqG,gBAAYjnF,EACZ6hF,WAAY,OACZC,gBAAiB,OACjBC,SAAU,OACVC,cAAe,OACfX,YAAQrhF,EACR2rF,SAAU,EACVS,YAAa,CAAC,EAAG,GACjB58E,UAAU,EACVyxE,aAAa,EACbwH,mBAAoB,EACpBC,mBAAoB,EACpBxlD,UAAW,aACXwnD,QAAS,KACTF,QAAS,KACT17B,SAAU,KACV59C,OAAQ,KACRs7E,cAAe,KACf9G,WAAW,EACXzsE,SAAS,EACTs/D,eAAe,EACfoV,eAAe,EACfnI,aAAa,EACboI,cAAc,EACdnI,YAAY,EACZwH,mBAAejtF,EACfmtF,mBAAentF,EACfghF,YAAY,EACZY,iBAAkB,CAAEkN,KAAM,UAAWC,OAAQ,WAC7C9F,sBAAuB,cACvB8E,YAAY,EACZx/E,MAAO,KAEPg2D,YAAa,KACbuU,OAAQ,OACRyE,WAAW,EACXC,uBAAmBx9E,EACnBi0E,YAAa,KACbjJ,QAAS,KACT4X,eAAe,EACfp2B,qBAAqB,EACrBoiC,eAAe,EACf1F,QAAQ,EACR8F,kBAAmB,cACnBhrC,SAAS,EACTsqC,iBAAkB,OAClBR,QAAQ,EACR3mC,SAAU,KACVi2B,gBAAgB,EAChBlhD,KAAM,KACNje,IAAK,QACLqoC,SAAU,KACVD,sBAAsB,EAEtBumC,iBAAkB,KAClBzB,aAAc,KACdzB,YAAa,KACboD,oBAAqB,KACrBC,mBAAoB,KACpBS,aAAc,KACdC,aAAc,KACdC,cAAe,KACfG,aAAc,KACd3/B,cAAe,KACfytB,YAAa,KACbnjE,OAAQ,QAKd,SAASy2E,aAAcC,EAAOC,GAC5B,IAAIf,EAASvuF,KACTkpB,EAAMqlE,EAAOrlE,IACbqmE,EAAS9iF,EAAE4iF,GACXG,EAAWD,EAAO5oF,QAClBylF,EAAMmC,EAAO10B,KAAK21B,GACtB,IAAIpD,EAAIsC,QAAR,CAOA,IAAIpyB,EACAmzB,EACA5/B,EACAC,EACA4/B,EATJtD,EAAI9iE,IAAMimE,EACVnD,EAAIl9E,GAAKqgF,EAAO,GAChBnD,EAAIuD,SAAWvD,EAAI9iE,IAAIrS,KAAK,iBAC5Bm1E,EAAI1xB,MAAQ0xB,EAAIuD,SAAS14E,KAAK,gBAe9Bm1E,EAAIwD,cAAgB,SAA0B//E,EAAQ8+E,GACpDvC,EAAIjwB,eACJiwB,EAAIv8E,OAASA,EACbu8E,EAAIuC,cAAgBA,EACpBvC,EAAIuD,SAAS9iF,KAAK0hF,EAAOsB,aAAazD,GAAK,IAC3CA,EAAI1xB,MAAQ0xB,EAAIuD,SAAS14E,KAAK,gBAC9Bm1E,EAAIzsB,WACJysB,EAAIla,SAASka,EAAIv8E,OAAO,GAAI,GAAG,GAC/Bu8E,EAAIv2C,gBAENu2C,EAAIzsB,SAAW,WACT4uB,EAAO90E,OAAO+0E,eAChBpC,EAAI9iE,IAAIpb,YAAY,0BACfk+E,EAAIp5E,OAASo5E,EAAI9iE,IAAIpW,IAAI,CAAEF,MAAO,MAEzC,IAAI88E,EAAW,EACXC,EAAY3D,EAAI9iE,IAAI,GAAG5V,aAC3B4oD,EAAa8vB,EAAI1xB,MAAM,GAAGhnD,aAC1B+7E,EAAcnzB,EAAa8vB,EAAI1xB,MAAMp5D,OACrCuuD,EAAiBkgC,EAAY,EAAKN,EAAgBnzB,EAAa,EAC/DxM,EAAgBigC,EAAY,EAAMzzB,EAAa,EAC3C8vB,EAAIp5E,QACN88E,EAAW1D,EAAIp5E,MACXwO,SAASsuE,EAAU,MAAQA,IAAYA,GAAY,MACvD1D,EAAI9iE,IAAIpW,IAAI,CAAEF,MAAO88E,KAEnBvB,EAAO90E,OAAO+0E,eACXpC,EAAIp5E,QACPo5E,EAAI1xB,MAAMp0D,MAAK,SAAUK,EAAOq2D,GAC9B,IAAIvC,EAAOhuD,EAAEuwD,GAAQzyD,SAAS,QAC9BulF,EAAWx3E,KAAKC,IAAIu3E,EAAUr1B,EAAK,GAAGnnD,gBAExC84E,EAAI9iE,IAAIpW,IAAI,CAAEF,MAAS88E,EAAW,EAAK,QAEzC1D,EAAI9iE,IAAIzb,SAAS,4BAIrBu+E,EAAIla,SAAW,SAAqBD,EAAU/hE,EAAY8/E,QACpC,IAAf9/E,IAAwBA,EAAa,IAE1C,IAAI+/E,EAAiB7D,EAAIuD,SAAS14E,KAAM,mCAAsCg7D,EAAW,MAAQtrE,QACjG,QAA8B,IAAnBspF,IAAsD,IAApBA,EAA7C,CAGA,IAAIl4B,GAAiBk4B,EAAiB3zB,EAAcxM,EAEpDs8B,EAAIuD,SAASz/E,WAAWA,GACxBk8E,EAAIuD,SAAS5/E,UAAW,iBAAmBgoD,EAAe,SAGtDw2B,EAAO90E,OAAOy2E,wBAA0B9D,EAAIloC,aAAekoC,EAAIloC,cAAgB+rC,IACjF/yE,MAAMxP,qBAAqBgiF,GAC3BtD,EAAIuD,SAAS98E,eAAc,WACzBqK,MAAMxP,qBAAqBgiF,MAE7BS,KAIF/D,EAAIkD,YAAYW,EAAgBl4B,EAAc7nD,EAAY8/E,KAG5D5D,EAAIkD,YAAc,SAAwBprC,EAAaiR,EAAWjlD,EAAY8/E,QACnD,IAAd76B,IAETA,EAAYj4C,MAAMwB,aAAa0tE,EAAIuD,SAAS,GAAI,WAGvB,IAAhBzrC,IAA+BA,GAAe5rC,KAAK+J,OAAO8yC,EAAYrF,GAAgBwM,IAE7FpY,EAAc,IAAKA,EAAc,GAEjCA,GAAekoC,EAAI1xB,MAAMp5D,SAAU4iD,EAAckoC,EAAI1xB,MAAMp5D,OAAS,GACxE,IAAI8uF,EAAsBhE,EAAIloC,YAC9BkoC,EAAIloC,YAAcA,EAClBkoC,EAAIuD,SAAS14E,KAAK,yBAAyB/I,YAAY,wBAEvDk+E,EAAI1xB,MAAMxqD,WAAWA,GAErB,IAAImgF,EAAejE,EAAI1xB,MAAMrlD,GAAG6uC,GAAar2C,SAAS,wBAAwBkC,UAAU,IAGpFw+E,EAAO90E,OAAO+0E,cAChBpC,EAAI1xB,MAAMp0D,MAAK,SAAUK,EAAOq2D,GAC9B,IAAIszB,EAAU7jF,EAAEuwD,GAIZv7B,GAHgB6uD,EAAQ3pF,QAAU21D,GAChBxM,EAAeqF,IAEPmH,EAC1Bi0B,EAAWj4E,KAAKikD,KAAK6vB,EAAI74E,OAAS+oD,EAAa,GAAK,EAEpDk0B,GAAU,GAAK/uD,EACf+uD,EAAQ,MAAOA,EAAQ,KACvBA,GAAS,MAAOA,GAAS,KACzBl4E,KAAKuJ,IAAI4f,GAAc8uD,EACzBD,EAAQziF,SAAS,mBAEjByiF,EAAQpiF,YAAY,mBAEtBoiF,EAAQvgF,UAAW,oBAAsBolD,EAAYrF,GAAgB,QAAUy+B,EAAOkC,gBAAkB,IAAM,GAAK,eAAiBD,EAAQ,YAI5IR,QAA4C,IAAnBA,KAE3B5D,EAAI19E,MAAQ2hF,EAAa7hF,KAAK,qBAC9B49E,EAAIsE,aAAetE,EAAIuC,cAAgBvC,EAAIuC,cAAczqC,GAAekoC,EAAI19E,MAExE0hF,IAAwBlsC,IACtBkoC,EAAIlU,UACNkU,EAAIlU,SAASqW,EAAQnC,EAAI19E,MAAO09E,EAAIsE,cAEtCnC,EAAOxF,iBAKb,IACIzrD,EACA3J,EACAF,EACA2sD,EACApjD,EAEA0yB,EACAihC,EACAhhC,EACAs7B,EACA2F,EAsGAC,EAjHAvN,GAAiB,EAmLjBltD,IAAiBlN,EAAI8J,QAAQpP,iBAAkB,CAAEsS,SAAS,EAAOvlB,SAAS,GAC9Ey7E,EAAIv2C,aAAe,WACjBu2C,EAAI9iE,IAAIhZ,GAAG4Y,EAAIoN,YAAYC,MAAOmI,EAAkBtI,GACpDlN,EAAI5Y,GAAG,mBAAoBwuB,GAC3B5V,EAAI5Y,GAAG,mBAAoB4xB,GACvBqsD,EAAO90E,OAAOq3E,YAChB1E,EAAI9iE,IAAIhZ,GAAG,QAASygF,GAEtB3E,EAAI1xB,MAAMpqD,GAAG,QAASy2C,IAExBqlC,EAAIjwB,aAAe,WACjBiwB,EAAI9iE,IAAI3X,IAAIuX,EAAIoN,YAAYC,MAAOmI,EAAkBtI,GACrDlN,EAAIvX,IAAI,mBAAoBmtB,GAC5B5V,EAAIvX,IAAI,mBAAoBuwB,GACxBqsD,EAAO90E,OAAOq3E,YAChB1E,EAAI9iE,IAAI3X,IAAI,QAASo/E,GAEvB3E,EAAI1xB,MAAM/oD,IAAI,QAASo1C,IAGzBqlC,EAAI7/D,KAAO,WACT6/D,EAAIzsB,WACJysB,EAAIuD,SAAS5/E,UAAW,iBAAmB+/C,EAAe,SAAU5/C,WAAW,GAC9D,IAAbs/E,GAAkBpD,EAAI9iE,IAAIzb,SAAS,uBACnC2hF,IAAajB,EAAO10B,KAAKv4D,OAAS,GAAK8qF,EAAI9iE,IAAIzb,SAAS,sBAExDyhF,GAAelD,EAAIkD,YAAY,EAAGx/B,EAAc,GAEpDs8B,EAAIv2C,gBAGNu2C,EAAI7iE,QAAU,WACZ6iE,EAAIjwB,gBAGNiwB,EAAI7/D,OAnVJ,SAAS4jE,IACPT,EAAmBxyE,MAAM3P,uBAAsB,WAC7C6+E,EAAIkD,iBAAYnvF,OAAWA,EAAW,GACtCgwF,OAsIJ,SAASzxD,EAAiB7tB,GACpB8iB,GAAW2J,IACfzsB,EAAEmmB,iBACFsG,GAAY,EACZ7J,EAAyB,eAAX5iB,EAAExO,KAAwBwO,EAAEomB,cAAc,GAAGI,MAAQxmB,EAAEwmB,MACrE+oD,EAAgB3sD,EAChBuJ,GAAiB,IAAK7wB,MAAQ0M,UAE9ByqE,GAAiB,EACjB5zB,EAAiBxyC,MAAMwB,aAAa0tE,EAAIuD,SAAS,GAAI,KACrDhgC,EAAmBD,GAErB,SAAS5wB,EAAgBjuB,GAClBysB,IACLzsB,EAAEmmB,iBACFssD,GAAiB,EACjBlD,EAA2B,cAAXvvE,EAAExO,KAAuBwO,EAAEomB,cAAc,GAAGI,MAAQxmB,EAAEwmB,MACjE1D,IAEHzW,MAAMxP,qBAAqBgiF,GAC3B/7D,GAAU,EACV+7B,EAAiBxyC,MAAMwB,aAAa0tE,EAAIuD,SAAS,GAAI,KACrDhgC,EAAmBD,EACnB08B,EAAIuD,SAASz/E,WAAW,IAK1BygF,OAAWxwF,GADXwvD,EAAmBD,GADR0wB,EAAgB3sD,IAKJo8B,IACrBF,EAAmBE,EAAgBv3C,KAAKuoB,IAAMgvB,EAAeF,EAAmB,IAChFghC,EAAW,OAEThhC,EAAmBG,IACrBH,EAAmBG,EAAgBx3C,KAAKuoB,IAAM8uB,EAAmBG,EAAe,IAChF6gC,EAAW,OAGbvE,EAAIuD,SAAS5/E,UAAW,iBAAmB4/C,EAAmB,SAG9Dy8B,EAAIkD,iBAAYnvF,EAAWwvD,EAAkB,EAAG4+B,EAAO90E,OAAOu3E,yBAG9DJ,EAAoBjhC,EAAmBs7B,GAAiBt7B,EACxDs7B,EAAgBt7B,GAElB,SAASztB,IACP,IAAK5E,IAAc3J,EAGjB,OAFA2J,GAAY,OACZ3J,GAAU,GAcZ,IAAIokC,EAXJz6B,GAAY,EACZ3J,GAAU,EACVy4D,EAAIuD,SAASz/E,WAAW,IACpBygF,IACe,QAAbA,EACFvE,EAAIuD,SAAS5/E,UAAW,iBAAmB8/C,EAAe,SAE1Du8B,EAAIuD,SAAS5/E,UAAW,iBAAmB+/C,EAAe,UAM5DiI,GAHa,IAAI5rD,MAAO0M,UAEPmkB,EAAiB,IACnB2yB,EAEAA,EAAoBihC,EAAoBrC,EAAO90E,OAAOw3E,cAGvEl5B,EAAez/C,KAAKC,IAAID,KAAKE,IAAIu/C,EAAcjI,GAAeD,GAG9D,IAAI3L,EAAc5rC,KAAK+J,MAAM/J,KAAKuJ,KAAMk2C,EAAejI,GAAgBwM,IAGlEiyB,EAAO90E,OAAOy3E,WAAYn5B,GAAiB7T,EAAcoY,EAAcxM,GAG5Es8B,EAAIuD,SAAS5/E,UAAW,iBAAoByR,SAASu2C,EAAc,IAAO,SAG1Eq0B,EAAIkD,YAAYprC,EAAa6T,EAAc,IAAI,GAG3Cw2B,EAAO90E,OAAOy2E,yBAChBC,IACA/D,EAAIuD,SAAS98E,eAAc,WACzBqK,MAAMxP,qBAAqBgiF,OAK/BrjF,YAAW,WACTi3E,GAAiB,IAChB,KAIL,SAASyN,EAAiBlgF,GACxB,IAAIsgF,EAAStgF,EAAEsgF,OACXC,EAASvgF,EAAEugF,OACX94E,KAAKuJ,IAAIsvE,GAAU74E,KAAKuJ,IAAIuvE,KAChC9kF,aAAaukF,GAEbhgF,EAAEmmB,iBAEF9Z,MAAMxP,qBAAqBgiF,GAC3BhgC,EAAiBxyC,MAAMwB,aAAa0tE,EAAIuD,SAAS,GAAI,KACrDvD,EAAIuD,SAASz/E,WAAW,GAGxBygF,OAAWxwF,GADXwvD,EAAmBD,EAAiB0hC,GAIbvhC,IACrBF,EAAmBE,EACnB8gC,EAAW,OAEThhC,EAAmBG,IACrBH,EAAmBG,EACnB6gC,EAAW,OAGbvE,EAAIuD,SAAS5/E,UAAW,iBAAmB4/C,EAAmB,SAG9Dy8B,EAAIkD,iBAAYnvF,EAAWwvD,EAAkB,EAAG4+B,EAAO90E,OAAO43E,0BAG9DR,EAAoBxkF,YAAW,WAC7B+/E,EAAIuD,SAASz/E,WAAW,IACpBygF,IACe,QAAbA,EACFvE,EAAIuD,SAAS5/E,UAAW,iBAAmB8/C,EAAe,SAE1Du8B,EAAIuD,SAAS5/E,UAAW,iBAAmB+/C,EAAe,WAG/C,IAAI3jD,MAAO0M,UAC1B,IAAIk/C,EAAepI,EACnBoI,EAAez/C,KAAKC,IAAID,KAAKE,IAAIu/C,EAAcjI,GAAeD,GAG9D,IAAI3L,EAAc5rC,KAAK+J,MAAM/J,KAAKuJ,KAAMk2C,EAAejI,GAAgBwM,IAGlEiyB,EAAO90E,OAAOy3E,WAAYn5B,GAAiB7T,EAAcoY,EAAcxM,GAG5Es8B,EAAIuD,SAAS5/E,UAAW,iBAAoByR,SAASu2C,EAAc,IAAO,SAG1Eq0B,EAAIkD,YAAYprC,EAAa6T,EAAc,IAAI,KAC9C,MAGL,SAAShR,IACP,GAAKu8B,EAAL,CACApmE,MAAMxP,qBAAqBgiF,GAC3B,IAAIhhF,EAAQjC,EAAEzM,MAAMwO,KAAK,qBACzB49E,EAAIla,SAASxjE,KAyCjB,IAAI4iF,OAAuB,SAAUrqE,GACnC,SAASqqE,EAAOpoE,EAAKzP,QACH,IAAXA,IAAoBA,EAAS,IAElCwN,EAAgB/gB,KAAKlG,KAAMyZ,EAAQ,CAACyP,IACpC,IAGIu7C,EAMA2G,EATAmjB,EAASvuF,KAIb,GAHAuuF,EAAO90E,OAASyD,MAAM5U,OAAO,GAAI4gB,EAAIzP,OAAO80E,OAAQ90E,GAGhD80E,EAAO90E,OAAOirD,aAEY,KAD5BD,EAAeh4D,EAAE8hF,EAAO90E,OAAOirD,cACdpjE,OAAgB,OAAOitF,EAItCA,EAAO90E,OAAO0xD,UAChBC,EAAW3+D,EAAE8hF,EAAO90E,OAAO0xD,UAI7B,IAAI7K,EAAciuB,EAAO90E,OAAOs1E,cAAgB3jB,OAAWjrE,EAC3D,GAAIouF,EAAO90E,OAAOu3C,WAAY,CAC5B,IAAIA,EAAavkD,EAAE8hF,EAAO90E,OAAOu3C,YAC7BA,EAAW1vD,OAAS,IACtBg/D,EAActP,GAmBlB,SAASJ,IACP29B,EAAOgD,aAET,SAASlb,IACPkY,EAAO9kE,OAET,SAASg5D,EAAa5xE,GACpBA,EAAEmmB,iBAEJ,SAAS2rD,EAAY9xE,GACnB,IAAI09E,EAAO5nC,WAAc4nC,EAAO90E,OAAhC,CACA,IAAIwQ,EAAYxd,EAAEoE,EAAEtI,QAChBgmF,EAAO3L,aACN2L,EAAO/oC,SAAU+oC,EAAO1L,UACzB54D,EAAUjT,QAAQ,uBAAuB1V,SACzC8pE,GAAYA,EAAS9pE,OAAS,EAC5B2oB,EAAU,KAAOmhD,EAAS,IAAmD,IAA7CnhD,EAAUjT,QAAQ,gBAAgB1V,QACpEitF,EAAOxkE,QAE+C,IAA/Ctd,EAAEoE,EAAEtI,QAAQyO,QAAQ,gBAAgB1V,QAC7CitF,EAAOxkE,WAwCX,OA3EA7M,MAAM5U,OAAOimF,EAAQ,CACnBrlE,IAAKA,EACLu7C,aAAcA,EACdC,YAAaD,GAAgBA,EAAa,GAC1Cwc,OAAQxc,GAAgBA,EAAanjE,OAAS,EAC9CmvF,eAAgBvnE,EAAI7E,OAAOC,KAAShZ,IAAIE,UAAUC,UAAU2B,cAAczL,QAAQ,WAAa,GAAK2J,IAAIE,UAAUC,UAAU2B,cAAczL,QAAQ,UAAY,IAAOunB,EAAI7E,OAAOE,QAChLs1C,KAAM,GACNuR,SAAUA,EACVD,QAASC,GAAYA,EAAS,GAC9B9K,YAAaA,EACb/xC,aAAa,EACbi3B,QAAQ,EACRpnC,IAAKmwE,EAAO90E,OAAO2E,MA4BrBlB,MAAM5U,OAAOimF,EAAQ,CACnBiD,kBAAmB,WACjBtoE,EAAI5Y,GAAG,SAAUsgD,IAEnB6gC,kBAAmB,WACjBvoE,EAAIvX,IAAI,SAAUi/C,IAEpBkyB,kBAAmB,WACjByL,EAAOnjB,SAAS96D,GAAG,QAAS+lE,GACxBkY,EAAO90E,OAAOspE,gBAChBwL,EAAOnjB,SAAS96D,GAAG,kBAAmBmyE,GAClC8L,EAAOnjB,SAAS,KAClBmjB,EAAOnjB,SAAS,GAAG6B,oBAAqB,KAI9C+V,kBAAmB,WACjBuL,EAAOnjB,SAASz5D,IAAI,QAAS0kE,GACzBkY,EAAO90E,OAAOspE,gBAChBwL,EAAOnjB,SAASz5D,IAAI,kBAAmB8wE,GACnC8L,EAAOnjB,SAAS,WACXmjB,EAAOnjB,SAAS,GAAG6B,qBAIhCgW,iBAAkB,WAChB/5D,EAAI5Y,GAAG,QAASqyE,IAElBO,iBAAkB,WAChBh6D,EAAIvX,IAAI,QAASgxE,MAIrB4L,EAAOhiE,OAEAgiE,EAGJtnE,IAAkBqqE,EAAOpqE,UAAYD,GAC1CqqE,EAAO7oF,UAAYvE,OAAOijB,OAAQF,GAAmBA,EAAgBxe,WACrE6oF,EAAO7oF,UAAUxE,YAAcqtF,EAE/B,IAAI5jE,EAAqB,CAAE2O,KAAM,CAAEx0B,cAAc,IAwcjD,OAtcA6lB,EAAmB2O,KAAKnzB,IAAM,WAC5B,IAIImzB,EAHAnT,EADMlpB,KACIkpB,IACVzP,EAFMzZ,KAEOyZ,OACb2xD,EAHMprE,KAGSorE,SAQnB,OANI3xD,EAAO4iB,KACTA,EAAO5iB,EAAO4iB,KACL+uC,IACT/uC,EAAO+uC,EAAS/mE,QAAQ,SAAS/C,QAAU8pE,EAAS/mE,QAAQ,SAAS,GAAGy0C,QAErEzc,IAAQA,EAAOnT,EAAIkT,MAAMyc,MACvBxc,GAGTi1D,EAAO7oF,UAAUw+E,UAAY,WACdjnF,KACDorE,UADCprE,KAEFyZ,OAAOspE,eAFL/iF,KAE6BorE,SAASlkE,KAAK,YAAY,IAGtEoqF,EAAO7oF,UAAU8oF,WAAa,WAE5B,GADavxF,KACDwlD,OACZ,IAAK,IAAIxkD,EAAI,EAAGA,EAFHhB,KAEc65D,KAAKv4D,OAAQN,GAAK,EAFhChB,KAGC65D,KAAK74D,GAAG0tF,UAHT1uF,KAIF65D,KAAK74D,GAAG2+D,WAJN3/D,KAKF65D,KAAK74D,GAAGkxE,SALNlyE,KAKsB65D,KAAK74D,GAAG0N,MAAO,GAAG,KAKvD4iF,EAAO7oF,UAAUm6E,UAAY,WAC3B,IACI15D,EADSlpB,KACIkpB,IACbuc,EAFSzlC,KAEMylC,MACfhsB,EAHSzZ,KAGOyZ,OACpB,GAAsB,UAAlBA,EAAOw/D,OAAsB,OAAO,EACxC,GAAIxzC,GAAwB,YAAfA,EAAMpjC,KAAsB,OAAO,EAEhD,IAParC,KAODihF,QAPCjhF,KAOgBmrE,QAAS,CACpC,GAAsB,YAAlB1xD,EAAOw/D,OAAwB,OAAO,EAC1C,GAAI/vD,EAAI7E,OAAOC,IACb,QAAS4E,EAAI7E,OAAOO,KAEtB,GAAIsE,EAAIlW,OAAS,IACf,OAAO,EAET,GAAIkW,EAAI7E,OAAOI,SAAyB,WAAdyE,EAAI/C,MAC5B,OAAO,EAGX,OAAO,GAGTmrE,EAAO7oF,UAAU2rE,YAAc,WAC7B,IACI1lE,EADS1O,KACM0O,MACfgiF,EAFS1wF,KAEa0wF,aAC1B,OAHa1wF,KAGFyZ,OAAO26D,YAHLp0E,KAIGyZ,OAAO26D,YAAYluE,KAJtBlG,KAImC0O,EAAOgiF,GAEhDhiF,EAAMvK,KAAK,MAGpBmtF,EAAO7oF,UAAUypE,SAAW,SAAmBriE,EAAQK,GACrD,IACIkjE,EAAa,EACjB,GAA2B,IAFdpzE,KAEF65D,KAAKv4D,OAGd,OALWtB,KAGJ0O,MAAQmB,OAHJ7P,KAIJ+oF,YAAYl5E,GAGrB,IAAK,IAAI7O,EAAI,EAAGA,EAPHhB,KAOc65D,KAAKv4D,OAAQN,GAAK,EAPhChB,KAQA65D,KAAK74D,KARLhB,KAQmB65D,KAAK74D,GAAG0tF,UAR3B1uF,KASF65D,KAAK74D,GAAGkxE,SAASriE,EAAOujE,GAAaljE,GAC5CkjE,GAAc,IAKpBke,EAAO7oF,UAAU4qE,SAAW,WAE1B,OADarzE,KACC0O,OAGhB4iF,EAAO7oF,UAAUsgF,YAAc,SAAsB2I,GACnD,IAGIC,EAFA1f,EAAWyf,GAAe,GAC1BE,EAAkB,GAEtB,GAA2B,IAJd5xF,KAIF65D,KAAKv4D,OAEd,IADA,IAAIuwF,EALO7xF,KAKmByZ,OAAOogD,KAAKnnD,QAAO,SAAUuP,GAAK,OAAQA,EAAEysE,WACjE1tF,EAAI,EAAGA,EAAI6wF,EAAiBvwF,OAAQN,GAAK,OAEnBb,KAD7BwxF,EAASE,EAAiB7wF,IACf2tF,oBAAiDxuF,IAAlBwxF,EAAO9hF,SAAgE,IAAxC8hF,EAAO9hF,OAAOlO,QAAQswE,EAASjxE,IACtG4wF,EAAgBlwF,KAAKiwF,EAAOhD,cAAcgD,EAAO9hF,OAAOlO,QAAQswE,EAASjxE,MAEzE4wF,EAAgBlwF,KAAKuwE,EAASjxE,SAIlC,IAAK,IAAI0O,EAAM,EAAGA,EAfP1P,KAeoB65D,KAAKv4D,OAAQoO,GAAO,EAfxC1P,KAgBG65D,KAAKnqD,GAAKg/E,UACpBzc,EAASvwE,KAjBF1B,KAiBc65D,KAAKnqD,GAAKhB,OAC/BkjF,EAAgBlwF,KAlBT1B,KAkBqB65D,KAAKnqD,GAAKghF,eAKxCze,EAAStwE,aAAQxB,IAAc,IAvBtBH,KA0BN0O,MAAQujE,EA1BFjyE,KA2BN0wF,aAAekB,EA3BT5xF,KA4BN2mB,KAAK,6BA5BC3mB,KAAAA,KA4B4C0O,MA5B5C1O,KA4B0D0wF,cA5B1D1wF,KA6BFmrE,UA7BEnrE,KA8BJorE,SAAS37D,IA9BLzP,KA8BgBo0E,eA9BhBp0E,KA+BJorE,SAAS/4D,QAAQ,aAI5Bi/E,EAAO7oF,UAAUqpF,WAAa,SAAqBzC,EAAOC,GAExDF,aAAalpF,KADAlG,KACaqvF,EAAOC,IAGnCgC,EAAO7oF,UAAUspF,cAAgB,SAAwB1C,GACvD,IAEI1oF,EADS8F,EAAE4iF,GACI1oF,QAFN3G,KAGF65D,KAAKlzD,IAHH3G,KAGoB65D,KAAKlzD,GAAO4iB,SAHhCvpB,KAIJ65D,KAAKlzD,GAAO4iB,WAIvB+nE,EAAO7oF,UAAUolF,cAAgB,WAE/B,OADa7tF,KACFyZ,OAAOo0E,cADL7tF,KACoCyZ,OAAOo0E,cAAc3nF,KADzDlG,KAAAA,OAEL,sNAFKA,KAEqOyZ,OAAuB,iBAAI,8DAA8DtY,QAG7UmwF,EAAO7oF,UAAUonF,aAAe,SAAuBzD,EAAK4F,GAC1D,IACIC,EACAC,EAFAC,EAAa,kBAAoB/F,EAAIgG,UAAa,iBAAoBhG,EAAa,UAAK,IAAM,KAAOA,EAAI9kC,UAAY,IAWzH,OANE2qC,EADE7F,EAAIsC,QACO,yBAA4ByD,EAAa,2BAA+B/F,EAAW,QAAI,iBAGvF,yBAA4B+F,EAAa,4CADtDD,EAAkB9F,EAAIv8E,OAAO8E,KAAI,SAAUjG,EAAO/H,GAAS,MAAQ,yDAA8D+H,EAAQ,wBAA2B09E,EAAIuC,cAAgBvC,EAAIuC,cAAchoF,GAAS+H,GAAS,qCAAuCvK,KAAK,KAChJ,iCAGnH6tF,EAAYE,EAAgB/wF,OAAS8wF,EAAW9wF,QAGzDmwF,EAAO7oF,UAAUulF,aAAe,WAC9B,IAAIO,EAASvuF,KACT+a,EAAMwzE,EAAO90E,OAMjB,OAFkB,6CAHCsB,EAAIyzE,aAG0D,YAAc,IAAM,KAFtFzzE,EAAIusC,UAEqG,IAAM,gBADhHvsC,EAAIopC,QACyIoqC,EAAOV,gBAAkB,IAAM,qDAA0DU,EAAO10B,KAAKllD,KAAI,SAAUy3E,GAAO,OAAOmC,EAAOsB,aAAazD,MAASjoF,KAAK,IAAO,+FAAiGhD,QAKxamwF,EAAO7oF,UAAUqzE,YAAc,WAC7B,IAAIyS,EAASvuF,KACT+a,EAAMwzE,EAAO90E,OAMjB,OAFiB,wDAHEsB,EAAIyzE,aAGoE,YAAc,IAAM,KAFhGzzE,EAAIusC,UAE+G,IAAM,gBAD1HvsC,EAAIopC,QACmJoqC,EAAOV,gBAAkB,IAAM,uEAA4EU,EAAO10B,KAAKllD,KAAI,SAAUy3E,GAAO,OAAOmC,EAAOsB,aAAazD,MAASjoF,KAAK,IAAO,+FAAiGhD,QAKpcmwF,EAAO7oF,UAAU4lD,cAAgB,WAC/B,IAAIkgC,EAASvuF,KACT+a,EAAMwzE,EAAO90E,OAMjB,OAFmB,oHAHAsB,EAAIyzE,aAGsI,YAAc,IAAM,KAFlKzzE,EAAIusC,UAEiL,IAAM,oBAD5LvsC,EAAIopC,QACyNoqC,EAAOV,gBAAkB,IAAM,6DAAkEU,EAAO10B,KAAKllD,KAAI,SAAUy3E,GAAO,OAAOmC,EAAOsB,aAAazD,MAASjoF,KAAK,IAAO,yIAA2IhD,QAK1iBmwF,EAAO7oF,UAAUkQ,OAAS,WAExB,OADa3Y,KACFyZ,OAAOd,OADL3Y,KAC6ByZ,OAAOd,OAAOzS,KAD3ClG,MAAAA,KAEDihF,OAFCjhF,KAMCguF,eANDhuF,KAGA4iF,YAHA5iF,KAG6BquD,gBAH7BruD,KAIG87E,eAKlBwV,EAAO7oF,UAAUg9C,OAAS,WACxB,IAAI8oC,EAASvuF,KACTuuB,EAAcggE,EAAOhgE,YACrBjF,EAAMilE,EAAOjlE,IACbJ,EAAMqlE,EAAOrlE,IACbkiD,EAAWmjB,EAAOnjB,SAClB6V,EAASsN,EAAOtN,OAChBvyE,EAAQ6/E,EAAO7/E,MACf+K,EAAS80E,EAAO90E,OACpB80E,EAAO/oC,QAAS,EAChB+oC,EAAO1L,SAAU,EACjB0L,EAAOK,SAAU,EAGjBL,EAAOiD,oBAGPloE,EAAIrS,KAAK,kBAAkB3Q,MAAK,SAAUK,EAAO0oF,GAC/C,IAAIC,GAAc,IAEd/gE,GAAe9U,EAAO/K,OACpB6f,GAAe7f,KAEnB4gF,GAAc,GAEhBf,EAAOuD,WAAWzC,EAAOC,MAItB/gE,EAKM7f,GACT6/E,EAAOrc,SAASxjE,EAAO,GALnBA,EAAS6/E,EAAOrc,SAASxjE,EAAO,GAC3B+K,EAAO/K,OACd6/E,EAAOrc,SAASz4D,EAAO/K,MAAO,IAO7BuyE,GAAU7V,GAAYA,EAAS9pE,QAAwB,OAAd4nB,EAAI/C,OAChDilD,EAAS/4D,QAAQ,SAGnBk8E,EAAOhgE,aAAc,EAGjBjF,GACFA,EAAIjX,QAAQ,eAEV+4D,GACFA,EAAS/4D,QAAQ,eAEnBk8E,EAAO5nE,KAAK,yBAA0B4nE,IAGxC+C,EAAO7oF,UAAUi9C,SAAW,WACb1lD,KACN4uF,SAAU,EADJ5uF,KAGFspB,KAHEtpB,KAIJspB,IAAIjX,QAAQ,iBAJRrS,KAMForE,UANEprE,KAOJorE,SAAS/4D,QAAQ,iBAPbrS,KASN2mB,KAAK,6BATC3mB,OAYfsxF,EAAO7oF,UAAUk9C,QAAU,WACzB,IACIz8B,EADSlpB,KACIkpB,IAWjB,GAZalpB,KAEN4uF,SAAU,EAFJ5uF,KAGN6iF,SAAU,EAHJ7iF,KAMNyxF,oBANMzxF,KAQN65D,KAAK91D,SAAQ,SAAUqoF,GACxBA,EAAI7iE,SAAW6iE,EAAI7iE,aATZvpB,KAYForE,SACT,GAAkB,OAAdliD,EAAI/C,MAbGnmB,KAcForE,SAAS/4D,QAAQ,YACnB,CACL,IAAIsnB,EAhBK35B,KAgBaorE,SAAS58D,KAAK,YAChCqgF,EAjBK7uF,KAiBaorE,SAAS58D,KAAK,YAChCmrB,GAAYk1D,GACd3lE,EAAIukD,MAAM9zC,SAnBH35B,KAmBmBorE,UAnBnBprE,KAwBFspB,KAxBEtpB,KAyBJspB,IAAIjX,QAAQ,gBAzBRrS,KA2BForE,UA3BEprE,KA4BJorE,SAAS/4D,QAAQ,gBA5BbrS,KA8BN2mB,KAAK,2BA9BC3mB,OAiCfsxF,EAAO7oF,UAAUm9C,SAAW,WAC1B,IAAI2oC,EAASvuF,KACbuuF,EAAO/oC,QAAS,EAChB+oC,EAAO1L,SAAU,EAEZ0L,EAAOtN,QACV/jE,MAAMW,UAAS,WACT0wE,EAAO9oD,OAAS8oD,EAAO9oD,MAAMv2B,IAAMq/E,EAAO9oD,MAAMlc,UAC7CglE,EAAO90E,OAAO8jE,gBACjBgR,EAAO9oD,MAAMlc,kBAGVglE,EAAO9oD,SAId8oD,EAAOjlE,KACTilE,EAAOjlE,IAAIjX,QAAQ,iBAEjBk8E,EAAOnjB,UACTmjB,EAAOnjB,SAAS/4D,QAAQ,iBAE1Bk8E,EAAO5nE,KAAK,6BAA8B4nE,IAG5C+C,EAAO7oF,UAAUghB,KAAO,WACtB,IAAIphB,EAEAkmF,EAASvuF,KACTkpB,EAAMqlE,EAAOrlE,IACbs8B,EAAS+oC,EAAO/oC,OAChBy7B,EAASsN,EAAOtN,OAChB7V,EAAWmjB,EAAOnjB,SAClB9K,EAAciuB,EAAOjuB,YACrB7mD,EAAS80E,EAAO90E,OACpB,IAAI+rC,EAAJ,CAMA,GAL2B,IAAvB+oC,EAAO10B,KAAKv4D,QAAgBmY,EAAOogD,KAAKv4D,QAC1CmY,EAAOogD,KAAK91D,SAAQ,SAAUqoF,GAC5BmC,EAAO10B,KAAKn4D,KAAK0qF,MAGjBnL,EAMF,OALAsN,EAAOjlE,IAAM7c,EAAE8hF,EAAO51E,UACtB41E,EAAOjlE,IAAI,GAAG+oE,SAAW9D,EACzBA,EAAO9pB,aAAalvD,OAAOg5E,EAAOjlE,KAClCilE,EAAO9oC,cACP8oC,EAAO7oC,WAGT,IAAIk9B,EAAY2L,EAAO3L,YACnB79C,EAAY69C,EAAY,UAAY,QACpCv1C,EAAc,CAChB3jB,SAAU0hD,EACVpa,WAAYsP,EACZh+D,QAASisF,EAAO51E,SAChB8tC,cAAqC,IAApBhtC,EAAOgtC,SAA2BhtC,EAAOgtC,SAAWm8B,EACrEtyE,GAAI,CACFmZ,KAAM,WAEJ8kE,EAAO9oD,MADKzlC,KAEZuuF,EAAOjlE,IAAMs5D,EAFD5iF,KAEmBspB,IAAIrS,KAAK,WAF5BjX,KAE+CspB,IAC3DilE,EAAOjlE,IAAI,GAAG+oE,SAAW9D,EACzBA,EAAO9oC,UAETD,OAAQ,WAAoB+oC,EAAO7oC,YACnC37B,MAAO,WAAmBwkE,EAAO5oC,WACjCiJ,OAAQ,WAAoB2/B,EAAO3oC,cAGrB,UAAd7gB,IACFsI,EAAY3rC,KAAO+X,EAAOikE,UAC1BrwC,EAAYme,aAAe/xC,EAAOkkE,mBAEhClkE,EAAO8jE,gBAAkBgR,EAAOlyD,KAClCkyD,EAAOlyD,KAAKnO,OAAO4N,SAAS,CAC1B1d,IAAKmwE,EAAOnwE,IACZ0c,OAASzyB,EAAM,CACbuwB,KAAM21D,EAAOnwE,KACZ/V,EAAI08B,GAAasI,EAAahlC,MAGnCkmF,EAAO9oD,MAAQvc,EAAI6b,GAAW5d,OAAOkmB,GACrCkhD,EAAO9oD,MAAMhc,UAIjB6nE,EAAO7oF,UAAUshB,MAAQ,WACvB,IACIy7B,EADSxlD,KACOwlD,OAChBy7B,EAFSjhF,KAEOihF,OACpB,GAAKz7B,EACL,OAAIy7B,GAJSjhF,KAKJ2lD,eALI3lD,KAMJ4lD,iBANI5lD,KASFyZ,OAAO8jE,gBATLv9E,KAS8Bq8B,KAT9Br8B,KAUJq8B,KAAKnO,OAAOpiB,OAVR9L,KAYJylC,MAAM1b,UAIjBunE,EAAO7oF,UAAU8jB,KAAO,WAKtB,GAJavsB,KAENinF,YAFMjnF,KAIFihF,OAGT,OAPWjhF,KAKJypB,YALIzpB,KAMJ2mB,KAAK,yBAND3mB,OAAAA,KAUDuuB,aAVCvuB,KAUqByZ,OAAO/K,OAV5B1O,KAWJkyE,SAXIlyE,KAWYyZ,OAAO/K,OAXnB1O,KAeForE,UAfEprE,KAgBJ8iF,oBAhBI9iF,KAkBFyZ,OAAOkzC,qBAlBL3sD,KAmBJijF,mBAnBIjjF,KAqBN2mB,KAAK,yBArBC3mB,OAwBfsxF,EAAO7oF,UAAU8gB,QAAU,WAEzB,IADavpB,KACF2mD,UAAX,CACA,IAAIr9B,EAFStpB,KAEIspB,IAFJtpB,KAGN2mB,KAAK,2CAHC3mB,MAITspB,GAAOA,EAAIjX,QAAQ,wBAJVrS,KAMN+pB,QANM/pB,KASForE,UATEprE,KAUJgjF,oBAVIhjF,KAYFyZ,OAAOkzC,qBAZL3sD,KAaJkjF,mBAGL55D,GAAOA,EAAIhoB,eAhBFtB,KAgB0BspB,IAAI,GAAG+oE,SAC9Cn1E,MAAMU,YAjBO5d,MAAAA,KAkBN2mD,WAAY,IAGrBziD,OAAOiF,iBAAkBmoF,EAAO7oF,UAAWilB,GAEpC4jE,EAtjBiB,CAujBxBrqE,iBAEEqrE,SAAW,CACb9tF,KAAM,SACNmkB,OAAQ,CACN2oE,OAAQA,QAEVnqE,OAAQ,WACInnB,KACNuuF,OAAS1lE,mBAAmB,CAC9BE,gBAAiB,UACjB9kB,YAAaqtF,OACbpoE,IAJQlpB,KAKRipB,QAAS,aALDjpB,KAONuuF,OAAOxkE,MAAQ,SAAe7a,QACpB,IAAPA,IAAgBA,EAAK,WAE1B,IAAIoa,EAAM7c,EAAEyC,GACZ,GAAmB,IAAfoa,EAAIhoB,OAAR,CACA,IAAIitF,EAASjlE,EAAI,GAAG+oE,UACf9D,GAAWA,IAAWA,EAAO/oC,QAClC+oC,EAAOxkE,WAGXtQ,OAAQ,CACN80E,OAAQ,CAEN2B,wBAAwB,EACxBc,yBAAyB,EACzBK,0BAA0B,EAC1BP,YAAY,EACZtC,cAAc,EACdyC,cAAe,EACfC,UAAU,EACVr3B,KAAM,GAEN6K,YAAa,KACbuU,OAAQ,OACRyE,WAAW,EACXC,uBAAmBx9E,EACnBsmD,cAAUtmD,EACVi0E,YAAa,KACbjJ,QAAS,KACT4X,eAAe,EACfp2B,qBAAqB,EACrBoiC,eAAe,EACf/9B,gBAAY7wD,EACZgkD,SAAS,EACTsqC,iBAAkB,OAClBnnC,SAAU,KACVi2B,gBAAgB,EAChBlhD,KAAM,KACNje,IAAK,UAELyvE,cAAe,KACfl1E,OAAQ,QAKV45E,eAAiB,CACnB5wC,aAAc,SAAsBzyC,EAAI2B,GACtC,IAQIklD,EAPAzsC,EAAM7c,EAAEyC,GACR8E,EAAYsV,EAAI,GAAGtV,UACnBqE,EAAeiR,EAAI,GAAGjR,aACtB9E,EAAS+V,EAAI,GAAG5V,aAChB6jB,EAAWjO,EAAI,GAAG1a,aAAa,0BAE/B4jF,EAAuBlpE,EAAIrS,KAAK,iBAGhCw7E,EAAQnpE,EAAIlb,SAAS,uBAMzB,GALKmpB,IAAYA,EAAW,IACJ,iBAAbA,GAAyBA,EAAS51B,QAAQ,MAAQ,IAC3D41B,EAAY/V,SAAS+V,EAAU,IAAM,IAAOhkB,GAE1CgkB,EAAWhkB,IAAUgkB,EAAWhkB,GAChCk/E,EACEz+E,EAAYujB,IACdjO,EAAIjX,QAAQ,WAAYxB,GAlBlB7Q,KAmBF2mB,KAAK,WAAY2C,EAAI,GAAIzY,SAE1B,GAAImD,EAAYT,GAAU8E,EAAekf,EAAU,CACxD,GAAIi7D,EAAqBlxF,OAAS,IAChCy0D,EAAcy8B,EAAqBn9E,IAAI,GAAG,GAAG2gD,iBACzBD,EAAYtV,WAAasV,EAAYt8C,OAAOohD,gBAC9D,OAGJvxC,EAAIjX,QAAQ,WAAYxB,GA5BhB7Q,KA6BJ2mB,KAAK,WAAY2C,EAAI,GAAIzY,KAGjCsW,OAAQ,SAAgBjY,GACtB,IAAIoa,EAAM7c,EAAEyC,GACRga,EAAMlpB,KACV,SAAS0yF,EAAc7hF,GACrBqY,EAAIypE,eAAe52D,OAAO/7B,KAAM6Q,GAElCyY,EAAIhjB,MAAK,SAAUK,EAAOmU,GACxBA,EAAQ83E,wBAA0BF,EAClC53E,EAAQlR,iBAAiB,SAAUkR,EAAQ83E,6BAG/CrpE,QAAS,SAAiBra,GACdzC,EAAEyC,GACR5I,MAAK,SAAUK,EAAOmU,GACxBA,EAAQjR,oBAAoB,SAAUiR,EAAQ83E,gCACvC93E,EAAQ83E,6BAIjBC,iBAAmB,CACrBruF,KAAM,iBACN2iB,OAAQ,WAENjK,MAAM5U,OADItI,KACQ,CAChB2yF,eAAgB,CACd52D,OAAQw2D,eAAe5wC,aAAatmC,KAH9Brb,MAINmnB,OAAQorE,eAAeprE,OAAO9L,KAJxBrb,MAKNupB,QAASgpE,eAAehpE,QAAQlO,KAL1Brb,UASZsQ,GAAI,CACFgjD,WAAY,SAAoB9nB,GAC9B,IAAItiB,EAAMlpB,KACN0zC,EAASjnC,EAAE++B,GACXsnD,EAASp/C,EAAOz8B,KAAK,4BACrBy8B,EAAOziC,GAAG,6BAA+B6hF,EAAO7kF,IAAIylC,GACxDo/C,EAAOxsF,MAAK,SAAUK,EAAOuI,GAC3Bga,EAAIypE,eAAexrE,OAAOjY,OAG9B+xD,gBAAiB,SAAyBz1B,GACxC,IAAIkI,EAASjnC,EAAE++B,GACXtiB,EAAMlpB,KACN8yF,EAASp/C,EAAOz8B,KAAK,4BACrBy8B,EAAOziC,GAAG,6BAA+B6hF,EAAO7kF,IAAIylC,GACxDo/C,EAAOxsF,MAAK,SAAUK,EAAOuI,GAC3Bga,EAAIypE,eAAeppE,QAAQra,OAG/B8zC,SAAU,SAAkBvN,GAC1B,IAAIvsB,EAAMlpB,KACVy1C,EAAKnsB,IAAIrS,KAAK,4BAA4B3Q,MAAK,SAAUK,EAAOuI,GAC9Dga,EAAIypE,eAAexrE,OAAOjY,OAG9B2zC,iBAAkB,SAA0BpN,GAC1C,IAAIvsB,EAAMlpB,KACVy1C,EAAKnsB,IAAIrS,KAAK,4BAA4B3Q,MAAK,SAAUK,EAAOuI,GAC9Dga,EAAIypE,eAAeppE,QAAQra,SAM/B6jF,cAA8B,SAAU9rE,GAC1C,SAAS8rE,EAAc7pE,EAAKha,GAC1B+X,EAAgB/gB,KAAKlG,KAAM,GAAI,CAACkpB,IAChC,IAAI8pE,EAAMhzF,KACNspB,EAAM7c,EAAEyC,GACR+jF,EAAe3pE,EAAIrS,KAAK,kBAE5B+7E,EAAI1pE,IAAMA,EACV0pE,EAAI9jF,GAAKoa,EAAI,GACb0pE,EAAI9pE,IAAMA,EAEV8pE,EAAIE,OAASF,EAAI1pE,IAAIlb,SAAS,cAG9B4kF,EAAIvrE,iBAAiB,IAErB,IA4BI0rE,EACA71D,EACA3J,EA9BAy/D,EAA2B,OAAdlqE,EAAI/C,MACjBktE,EAAsB,QAAdnqE,EAAI/C,MACZmtE,EAAyB,WAAdpqE,EAAI/C,MAGnB6sE,EAAIl6E,KAAO,WAQT,OAPwBs6E,EAAaH,EAAe3pE,GAClCzW,eAAc,WAC9ByW,EAAIpb,YAAY,2DAChBob,EAAIjX,QAAQ,YACZ2gF,EAAIrsE,KAAK,sBAAuB2C,EAAI,OAEtCA,EAAIpb,YAAY,kBAAkBL,SAAS,iCACpCmlF,GAGTA,EAAIO,QAAU,WACZ,OAAIjqE,EAAIlb,SAAS,oBACjBkb,EAAIzb,SAAS,oCACbyb,EAAIjX,QAAQ,cAAe2gF,EAAIl6E,MAC/Bk6E,EAAIrsE,KAAK,4BAA6B2C,EAAI,GAAI0pE,EAAIl6E,OAHLk6E,GAQ/CA,EAAIlC,WAAiD,SAApCxnE,EAAI9a,KAAK,uBAM1B,IACIquB,EACAE,EAKAo4B,EACAnhD,EACAw/E,EACAC,EACAC,EACAC,EAEAt7E,EACA3E,EACAkgF,EA8PA/C,EACAgD,EA/QAt2D,EAAe,GAGfg2D,GAAU,EACVO,GAAe,EACfC,GAAoB,EACpBrkC,EAAiB,EAOjBskC,GAAY,EAIZ1+C,EAAUhsB,EAAIjlB,QAAQ,SAI1B,IAFIixC,EAAQr+B,KAAK,WAAW3V,OAAS,GAAKg0C,EAAQjxC,QAAQ,SAASkG,SAAS,YAAYjJ,OAAS,KAAK0yF,GAAY,GAC9G1+C,EAAQlnC,SAAS,eAAgB4lF,GAAY,IAC5ChB,EAAIE,OAAQ,CACf,IAAIe,EAAe/qE,EAAIme,OAAOC,YAAYgO,EAAQ,IAClD,GAAI2+C,EAAc,CAChB,IAAIC,EAAgBznF,EAAEwnF,GAClBryC,EAAqBsyC,EAAc9lF,SAAS,6BAE5C8lF,EAAc9lF,SAAS,iBACpB8lF,EAAc9lF,SAAS,sBAE1B+lF,EAAgBD,EAAc9lF,SAAS,wBAA0B8lF,EAAc9lF,SAAS,gBACxFwzC,EACFt4B,EAAIzb,SAAS,qCACJsmF,GACT7qE,EAAIzb,SAAS,gCAiBnB,SAAS6wB,EAAiB7tB,GACxB,GAAIysB,EAAW,CACb,GAAkB,YAAdpZ,OAAOyB,GAEF,OADP,GAAI,kBAAmB9U,GAAKA,EAAEomB,cAAc31B,OAAS,EAAK,OAI1DgoB,EAAIlb,SAAS,mBAGb3B,EAAEoE,EAAEtI,QAAQyO,QAAQ,gEAAgE1V,SAExFqyB,GAAU,EACVggE,GAAc,EACdr2D,GAAY,EACZT,OAAc18B,EACdqzF,OAAcrzF,EACC,eAAX0Q,EAAExO,OAAyB8wF,EAAUtiF,EAAEomB,cAAc,GAAG66C,YAC5Dv0C,EAAapb,EAAe,eAAXtR,EAAExO,KAAwBwO,EAAEomB,cAAc,GAAGG,MAAQvmB,EAAEumB,MACxEmG,EAAazI,EAAe,eAAXjkB,EAAExO,KAAwBwO,EAAEomB,cAAc,GAAGI,MAAQxmB,EAAEwmB,OAG1E,SAASyH,EAAgBjuB,GACvB,GAAKysB,EAAL,CACA,IAAIlG,EACAC,EACA/T,EACJ,GAAe,cAAXzS,EAAExO,KAAsB,CAC1B,GAAI8wF,GAAWtiF,EAAEqmB,QACf,IAAK,IAAIl2B,EAAI,EAAGA,EAAI6P,EAAEqmB,QAAQ51B,OAAQN,GAAK,EACrC6P,EAAEqmB,QAAQl2B,GAAG8wE,aAAeqhB,IAC9B7vE,EAAQzS,EAAEqmB,QAAQl2B,IAInBsiB,IAASA,EAAQzS,EAAEomB,cAAc,IACtCG,EAAQ9T,EAAM8T,MACdC,EAAQ/T,EAAM+T,WAEdD,EAAQvmB,EAAEumB,MACVC,EAAQxmB,EAAEwmB,MAEZ,GAAKD,GAAUC,EAMf,QAH2B,IAAhBwF,IACTA,KAAiBA,GAAevkB,KAAKuJ,IAAIwV,EAAQkG,EAAazI,GAAKxc,KAAKuJ,IAAIuV,EAAQmG,EAAapb,KAE9F0a,EAAL,CAOA,GAFA7oB,EAAYsV,EAAI,GAAGtV,WAEd2f,EAAS,CAEZ,IAAIygE,EAMJ,GAPA9qE,EAAIpb,YAAY,qBAEhBmK,EAAeiR,EAAI,GAAGjR,aACtB3E,EAAe4V,EAAI,GAAG5V,aAClBs/E,EAAIE,SACNU,EAAev7E,EAAe3E,GAE5BM,EAAYqE,EAEd,YADAilB,GAAY,GAGd,IAAI+2D,EAAsB5nF,EAAEoE,EAAEtI,QAAQyO,QAAQ,qBAgB9C,GAfIq9E,EAAoB/yF,QACtB+yF,EAAoB/tF,MAAK,SAAUguF,EAAoBC,GACjDA,IAAoBrlF,GAErBqlF,EAAgBl8E,aAAek8E,EAAgB7gF,cACN,SAAvCjH,EAAE8nF,GAAiBrhF,IAAI,eAEtB8/E,EAAIE,QAAUqB,EAAgBvgF,UAAY,GACxCg/E,EAAIE,QAAUqB,EAAgBvgF,UAAYugF,EAAgBl8E,aAAek8E,EAAgB7gF,gBAG/F0gF,GAAqB,MAIvBA,EAEF,YADA92D,GAAY,GAGVo2D,IACFD,EAAkBnqE,EAAI9a,KAAK,sBACP7M,QAAQ,MAAQ,IAAK8xF,EAAmBp7E,EAAemJ,SAASiyE,EAAiB,IAAO,KAE9G/jC,EAAiBpmC,EAAIlb,SAAS,kBAAoBqlF,EAAkB,EAElEK,IADEz7E,IAAiB3E,GAA8B,QAAdwQ,OAAOyB,KAAgBytE,GAK5DW,GAAoB,EAEtBpgE,GAAU,EACVoJ,EAAc1F,EAAQkG,EAAazI,OAER,IAAhB0+D,IAAgCR,EAAIE,OAASl/E,IAAc4/E,EAA6B,IAAd5/E,KAAoBw/E,GAAc,IAEtGR,EAAIE,OAChBn2D,EAAc,GAAK/oB,GAAa4/E,GAAiB5/E,EAAY4/E,EAC7D72D,EAAc,GAAK/oB,GAAa,GAAMA,EAAY,IAInC,QAAdkQ,OAAOyB,IAAgBnE,SAAS0C,OAAO0B,UAAUxkB,MAAM,KAAK,GAAI,IAAM,IACnE4xF,EAAIE,QAAwB,IAAdl/E,GAAoBw/E,IAAeM,GAAe,GACjEd,EAAIE,QAAUl/E,IAAc4/E,IAAiBJ,IAAeM,GAAe,IAG5EA,IAAgBd,EAAIE,QAAWE,IAClC9pE,EAAIpW,IAAI,6BAA8B,QACtCoW,EAAItV,UAAU4/E,GACdG,GAAoB,IAGlBD,GAAgBC,KACdljF,EAAE4B,YACJ5B,EAAEmmB,iBAEJm+B,GAAa69B,EAAIE,QAAU,EAAK56E,KAAKuoB,IAAKvoB,KAAKuJ,IAAIkb,GAAc,KAAUzkB,KAAKuoB,IAAK9D,EAAa,MAAU2yB,EACxG0jC,EACFH,EAAaljF,UAAW,iBAAmBolD,EAAY,SACpDl+C,KAAK,cAAclH,UAAW,WAAqBuI,KAAKuJ,IAAIkb,GAAe,GAA/B,IAAsC,KAAO,QAGxFi2D,EAAIE,OACN5pE,EAAI/e,WAAWwF,UAAW,iBAAmBolD,EAAY,SAEzD7rC,EAAIvZ,UAAW,iBAAmBolD,EAAY,WAK9C2+B,GAAgBC,IAAuBz7E,KAAKuoB,IAAKvoB,KAAKuJ,IAAIkb,GAAc,KAAU02D,IAAsBK,GAAgBx7E,KAAKuJ,IAAIkb,IAAkC,EAAlB02D,GACrJF,GAAU,EACVjqE,EAAIzb,SAAS,eAAeK,YAAY,mBAExCqlF,GAAU,EACVjqE,EAAIpb,YAAY,eAAeL,SAAS,kBAErC8lF,IACHrqE,EAAIjX,QAAQ,iBACZ2gF,EAAIrsE,KAAK,gCAAiC2C,EAAI,IAC9CqqE,GAAc,GAEhBrqE,EAAIjX,QAAQ,eAAgB,CAC1BZ,MAAOZ,EACPmD,UAAWA,EACXmhD,UAAWA,EACXp4B,YAAaA,IAEfi2D,EAAIrsE,KAAK,8BAA+B2C,EAAI,GAAI,CAC9C7X,MAAOZ,EACPmD,UAAWA,EACXmhD,UAAWA,EACXp4B,YAAaA,MAGf42D,GAAc,EACdrqE,EAAIpb,YAAY,6BAChBqlF,GAAU,QArHVj2D,GAAY,GAwHhB,SAAS4E,EAAerxB,GACtB,MAAe,aAAXA,EAAExO,MAAuBwO,EAAEyhE,gBAAkBzhE,EAAEyhE,eAAehxE,OAAS,GAAK6xF,GAC1EtiF,EAAEyhE,eAAe,GAAGR,aAAeqhB,GACrC71D,GAAY,EACZT,GAAc,EACdlJ,GAAU,OACVw/D,EAAU,OAIT71D,GAAc3J,GAKfwhC,IACF7rC,EAAIzb,SAAS,qBACbsnD,EAAY,GAEVi+B,EACFH,EAAaljF,UAAU,IACpBkH,KAAK,cAAclH,UAAU,IAG5BijF,EAAIE,OACN5pE,EAAI/e,WAAWwF,UAAU,IAEzBuZ,EAAIvZ,UAAU,IAIb+jF,IAAgBd,EAAIE,QAAWE,GAClC9pE,EAAIpW,IAAI,6BAA8B,IAGpCqgF,GACFjqE,EAAIzb,SAAS,kBACbyb,EAAIjX,QAAQ,cAAe2gF,EAAIl6E,MAC/Bk6E,EAAIrsE,KAAK,4BAA6B2C,EAAI,GAAI0pE,EAAIl6E,OAElDwQ,EAAIpb,YAAY,iBAElBovB,GAAY,EACZ3J,GAAU,OACNggE,IACFrqE,EAAIjX,QAAQ,eACZ2gF,EAAIrsE,KAAK,4BAA6B2C,EAAI,QAnC1CgU,GAAY,OACZ3J,GAAU,IAlMTqgE,GAAchB,EAAIE,QAAU5pE,EAAIzb,SAAS,iBAG1Cyb,EAAI9a,KAAK,qBACXklF,GAAyB,EAChBN,EACTK,EAAkB,GACTJ,EACTI,EAAkB,GACTH,IACTG,EAAkB,IAgOpB,IAAIe,GAAkB,EAClBC,EAAsB,EAE1B,SAASC,IACPF,GAAkB,EAClBX,GAAkB,EAClBY,EAAsB,EAClBt/B,IACF7rC,EAAIzb,SAAS,qBACbsnD,EAAY,GAEVi+B,EACFH,EAAaljF,UAAU,IACpBkH,KAAK,cAAclH,UAAU,IAG5BijF,EAAIE,OACN5pE,EAAI/e,WAAWwF,UAAU,IAEzBuZ,EAAIvZ,UAAU,IAIdwjF,GACFjqE,EAAIzb,SAAS,kBACbyb,EAAIjX,QAAQ,cAAe2gF,EAAIl6E,MAC/Bk6E,EAAIrsE,KAAK,4BAA6B2C,EAAI,GAAI0pE,EAAIl6E,OAElDwQ,EAAIpb,YAAY,iBAEdylF,IACFrqE,EAAIjX,QAAQ,eACZ2gF,EAAIrsE,KAAK,4BAA6B2C,EAAI,KAG9C,SAASynE,EAAiBlgF,GACxB,GAAK2jF,EAAL,CACA,IAAIrD,EAAStgF,EAAEsgF,OACXC,EAASvgF,EAAEugF,OACf,KAAI94E,KAAKuJ,IAAIsvE,GAAU74E,KAAKuJ,IAAIuvE,IAC5B9nE,EAAIlb,SAAS,mBAGb3B,EAAEoE,EAAEtI,QAAQyO,QAAQ,gEAAgE1V,QAAxF,CAMA,GAJAgL,aAAaukF,GAEb78E,EAAYsV,EAAI,GAAGtV,WAEd6/E,EAAiB,CAEpB,IAAIO,EAMJ,GAPA9qE,EAAIpb,YAAY,qBAEhBmK,EAAeiR,EAAI,GAAGjR,aACtB3E,EAAe4V,EAAI,GAAG5V,aAClBs/E,EAAIE,SACNU,EAAev7E,EAAe3E,GAE5BM,EAAYqE,EAEd,YADAm8E,GAAkB,GAGpB,IAAIH,EAAsB5nF,EAAEoE,EAAEtI,QAAQyO,QAAQ,qBAgB9C,GAfIq9E,EAAoB/yF,QACtB+yF,EAAoB/tF,MAAK,SAAUguF,EAAoBC,GACjDA,IAAoBrlF,GAErBqlF,EAAgBl8E,aAAek8E,EAAgB7gF,cACN,SAAvCjH,EAAE8nF,GAAiBrhF,IAAI,eAEtB8/E,EAAIE,QAAUqB,EAAgBvgF,UAAY,GACxCg/E,EAAIE,QAAUqB,EAAgBvgF,UAAYugF,EAAgBl8E,aAAek8E,EAAgB7gF,gBAG/F0gF,GAAqB,MAIvBA,EAEF,YADAI,GAAkB,GAGhBd,IACFD,EAAkBnqE,EAAI9a,KAAK,sBACP7M,QAAQ,MAAQ,IAAK8xF,EAAmBp7E,EAAemJ,SAASiyE,EAAiB,IAAO,KAGhH9/D,GAAU,EAEVoJ,EADA03D,GAAuBrD,OAGI,IAAhBoC,IAAgCR,EAAIE,OAASl/E,IAAc4/E,EAA6B,IAAd5/E,KAAoBw/E,GAAc,IAEtGR,EAAIE,OAChBn2D,EAAc,GAAK/oB,GAAa4/E,GAAiB5/E,EAAY4/E,EAC7D72D,EAAc,GAAK/oB,GAAa,GAAMA,EAAY,IAGjDnD,EAAE4B,YACJ5B,EAAEmmB,iBAGJm+B,EAAYp4B,EACRzkB,KAAKuJ,IAAIszC,GAAas+B,IACxBt+B,EAAYs+B,EAAmBn7E,KAAKuoB,IAAMvoB,KAAKuJ,IAAIszC,GAAas+B,EAAkB,IAC9ET,EAAIE,SAAU/9B,GAAaA,IAG7Bi+B,EACFH,EAAaljF,UAAW,iBAAmBolD,EAAY,SACpDl+C,KAAK,cAAclH,UAAW,WAAqBuI,KAAKuJ,IAAIkb,GAAe,GAA/B,IAAsC,KAAO,QAGxFi2D,EAAIE,OACN5pE,EAAI/e,WAAWwF,UAAW,iBAAmBolD,EAAY,SAEzD7rC,EAAIvZ,UAAW,iBAAmBolD,EAAY,SAI9C78C,KAAKuJ,IAAIszC,GAAas+B,GACxBF,GAAU,EACVjqE,EAAIzb,SAAS,eAAeK,YAAY,mBAExCqlF,GAAU,EACVjqE,EAAIpb,YAAY,eAAeL,SAAS,kBAErC8lF,IACHrqE,EAAIjX,QAAQ,iBACZ2gF,EAAIrsE,KAAK,gCAAiC2C,EAAI,IAC9CqqE,GAAc,GAEhBrqE,EAAIjX,QAAQ,eAAgB,CAC1BZ,MAAOZ,EACPmD,UAAWA,EACXmhD,UAAWA,EACXp4B,YAAaA,IAEfi2D,EAAIrsE,KAAK,8BAA+B2C,EAAI,GAAI,CAC9C7X,MAAOZ,EACPmD,UAAWA,EACXmhD,UAAWA,EACXp4B,YAAaA,MAGf42D,GAAc,EACdrqE,EAAIpb,YAAY,6BAChBqlF,GAAU,GAGZ1C,EAAoBxkF,WAAWqoF,EAAyB,OAG1D,OAAKp/C,EAAQh0C,QAAWgoB,EAAIhoB,QAE5BgoB,EAAI,GAAGqrE,gBAAkB3B,EAGzBA,EAAIn9C,aAAe,WACjB,IAAI3f,IAAU7S,QAAQO,iBAAkB,CAAEsS,SAAS,GACnD5M,EAAIhZ,GAAG4Y,EAAIoN,YAAYC,MAAOmI,EAAkBxI,GAChDhN,EAAI5Y,GAAG,mBAAoBwuB,GAC3B5V,EAAI5Y,GAAG,mBAAoB4xB,GACvB8wD,EAAIlC,aAAekC,EAAIE,QACzB5pE,EAAIhZ,GAAG,QAASygF,IAGpBiC,EAAI72B,aAAe,WACjB,IAAIjmC,IAAU7S,QAAQO,iBAAkB,CAAEsS,SAAS,GACnD5M,EAAI3X,IAAIuX,EAAIoN,YAAYC,MAAOmI,EAAkBxI,GACjDhN,EAAIvX,IAAI,mBAAoBmtB,GAC5B5V,EAAIvX,IAAI,mBAAoBuwB,GACxB8wD,EAAIlC,aAAekC,EAAIE,QACzB5pE,EAAI3X,IAAI,QAASo/E,IAKrBiC,EAAI3qE,aAGJ2qE,EAAIzmE,OAEGymE,GA9BsCA,EAoD/C,OAnBK/rE,IAAkB8rE,EAAc7rE,UAAYD,GACjD8rE,EAActqF,UAAYvE,OAAOijB,OAAQF,GAAmBA,EAAgBxe,WAC5EsqF,EAActqF,UAAUxE,YAAc8uF,EAEtCA,EAActqF,UAAU8jB,KAAO,WACnBvsB,KACN61C,gBAGNk9C,EAActqF,UAAU8gB,QAAU,WAChC,IAAIypE,EAAMhzF,KACVgzF,EAAIrsE,KAAK,wCAAyCqsE,GAClDA,EAAI1pE,IAAIjX,QAAQ,4BACT2gF,EAAI9jF,GAAGylF,gBACd3B,EAAI72B,eACJj/C,MAAMU,YAAYo1E,GAClBA,EAAM,MAGDD,EA3gBwB,CA4gB/B9rE,iBAEE2tE,gBAAkB,CACpBpwF,KAAM,gBACN2iB,OAAQ,WACN,IAAI+B,EAAMlpB,KACVkpB,EAAI8pE,IAAM91E,MAAM5U,OACdugB,mBAAmB,CACjBE,gBAAiB,eACjB9kB,YAAa8uF,cACb7pE,IAAKA,EACLD,QAAS,oBAEX,CACEnQ,KAAM,SAAc5J,GAClB,IAAI8jF,EAAM9pE,EAAI8pE,IAAI9pF,IAAIgG,GACtB,GAAI8jF,EAAO,OAAOA,EAAIl6E,QAGxBy6E,QAAS,SAAiBrkF,GACxB,IAAI8jF,EAAM9pE,EAAI8pE,IAAI9pF,IAAIgG,GACtB,GAAI8jF,EAAO,OAAOA,EAAIO,cAM9B5qE,OAAQ,CACNoqE,cAAeA,eAEjBziF,GAAI,CACFgjD,WAAY,SAAoB9nB,GAC9B,IAAItiB,EAAMlpB,KACN0zC,EAASjnC,EAAE++B,GACXqpD,EAAUnhD,EAAOz8B,KAAK,gBACtBy8B,EAAOziC,GAAG,iBAAmB4jF,EAAQ5mF,IAAIylC,GAC7CmhD,EAAQvuF,MAAK,SAAUK,EAAOuI,GAC5Bga,EAAI8pE,IAAI7rE,OAAOjY,OAGnB+xD,gBAAiB,SAAyBz1B,GACxC,IAAIkI,EAASjnC,EAAE++B,GACXtiB,EAAMlpB,KACN60F,EAAUnhD,EAAOz8B,KAAK,gBACtBy8B,EAAOziC,GAAG,iBAAmB4jF,EAAQ5mF,IAAIylC,GAC7CmhD,EAAQvuF,MAAK,SAAUK,EAAOuI,GAC5Bga,EAAI8pE,IAAIzpE,QAAQra,OAGpB8zC,SAAU,SAAkBvN,GAC1B,IAAIvsB,EAAMlpB,KACVy1C,EAAKnsB,IAAIrS,KAAK,gBAAgB3Q,MAAK,SAAUK,EAAOuI,GAClDga,EAAI8pE,IAAI7rE,OAAOjY,OAGnB2zC,iBAAkB,SAA0BpN,GAC1C,IAAIvsB,EAAMlpB,KACVy1C,EAAKnsB,IAAIrS,KAAK,gBAAgB3Q,MAAK,SAAUK,EAAOuI,GAClDga,EAAI8pE,IAAIzpE,QAAQra,SAMpB4lF,KAAO,CACTvrE,QAAS,SAAiBmd,GACxB,IAAI4O,EAAU7oC,EAAEi6B,GAAQ1vB,QAAQ,SAC3Bs+B,EAAQh0C,QACTg0C,EAAQ,GAAGy/C,eACbz/C,EAAQ,GAAGy/C,iBAGf5tE,OAAQ,SAAgBuf,GACtB,IAAIxd,EAAMlpB,KACNs1C,EAAU7oC,EAAEi6B,GAAQ1vB,QAAQ,SAAS3B,GAAG,GAGxC2/E,EAAkB1/C,EAAQr+B,KAAK,SACnC,GAA+B,IAA3B+9E,EAAgB1zF,QAAiBg0C,EAAQlnC,SAAS,QAAtD,CAGA,IAAI6mF,EAAiB/rE,EAAIzP,OAAOy7E,KAAKC,aAEd,IAAnBF,GACFD,EAAgB1uF,MAAK,SAAUK,EAAOyuF,GAChC3oF,EAAE2oF,GAAQ5mF,KAAK,cAAgB/B,EAAE2oF,GAAQ5mF,KAAK,QAAU/B,EAAE2oF,GAAQ5mF,KAAK,MAAOymF,MAKtF,IAAII,EAAiB,GACjBC,GAAiB,EA4BrB,GAAIpsE,EAAIzP,OAAOy7E,KAAKvxE,UAAYN,QAAQY,qBAAsB,CAC5D,IAAIN,EAAW2xB,EAAQ,GAAGigD,eAkB1B,OAjBK5xE,IACHA,EAAW,IAAIrY,IAAIkqF,sBAlBvB,SAA0BC,EAAS9xE,GACjC8xE,EAAQ1xF,SAAQ,SAAU2xF,GACxB,GAAIA,EAAMC,eAAgB,CACxB,GAAIzsE,EAAIzP,OAAOy7E,KAAKU,YAAcN,EAEhC,YADID,EAAe1zF,QAAQ+zF,EAAMntF,QAAU,GAAK8sF,EAAe3zF,KAAKg0F,EAAMntF,SAI5E+sF,GAAiB,EACjBpsE,EAAIgsE,KAAKW,UAAUH,EAAMntF,OAAQutF,GAEjCnyE,EAASoyE,UAAUL,EAAMntF,cAO+B,CACxDzC,KAAMwvC,EAAQ,MAGlB0/C,EAAgB1uF,MAAK,SAAUK,EAAOuI,GAChCA,EAAG8mF,sBACP9mF,EAAG8mF,qBAAsB,EACzBryE,EAASsyE,QAAQ/mF,YAEdomC,EAAQ,GAAGy/C,gBACdz/C,EAAQ,GAAGy/C,cAAgB,WACzBpxE,EAASuyE,oBACF5gD,EAAQ,GAAGy/C,qBACXz/C,EAAQ,GAAGigD,kBAkCnBjgD,EAAQ,GAAGy/C,gBACdz/C,EAAQ,GAAGy/C,cAXb,WACEz/C,EAAQ,GAAG6gD,gBAAiB,SACrB7gD,EAAQ,GAAG6gD,eAClB7gD,EAAQ3jC,IAAI,OAAQykF,GACpB9gD,EAAQ3jC,IAAI,SAAUykF,GAAa,GACnC9gD,EAAQr+B,KAAK,QAAQtF,IAAI,uBAAwBykF,GACjDltE,EAAIvX,IAAI,SAAUykF,KASf9gD,EAAQ,GAAG6gD,iBArBd7gD,EAAQ,GAAG6gD,gBAAiB,EAC5B7gD,EAAQhlC,GAAG,OAAQ8lF,GACnB9gD,EAAQhlC,GAAG,SAAU8lF,GAAa,GAClC9gD,EAAQr+B,KAAK,QAAQ3G,GAAG,uBAAwB8lF,GAChDltE,EAAI5Y,GAAG,SAAU8lF,IAsBnBA,IAtFA,SAASN,EAAgBV,GACnBC,EAAe1zF,QAAQyzF,IAAW,GACpCC,EAAetjF,OAAOsjF,EAAe1zF,QAAQyzF,GAAS,GAExDE,GAAiB,EACbpsE,EAAIzP,OAAOy7E,KAAKU,YAAcP,EAAe/zF,OAAS,IACxDg0F,GAAiB,EACjBpsE,EAAIgsE,KAAKW,UAAUR,EAAe,GAAIS,IAyC1C,SAASM,IACPltE,EAAIgsE,KAAKpsD,KAAKwM,GAAS,SAAU8/C,GAC3BlsE,EAAIzP,OAAOy7E,KAAKU,YAAcN,EAC5BD,EAAe1zF,QAAQyzF,GAAU,GAAKC,EAAe3zF,KAAK0zF,IAGhEE,GAAiB,EACjBpsE,EAAIgsE,KAAKW,UAAUT,EAAQU,SAiCjCO,aAAc,SAAsBjB,GAClC,IACIkB,EAAOlB,EAAOvhF,wBACd8vD,EAFM3jE,KAEUyZ,OAAOy7E,KAAKvxB,WAAa,EAE7C,OACE2yB,EAAKliF,KAAQ,EAAIuvD,GACd2yB,EAAKjiF,MAAS,EAAIsvD,GAClB2yB,EAAKliF,KAPApU,KAOYuT,OAASowD,GAC1B2yB,EAAKjiF,MARArU,KAQagT,MAAQ2wD,GAGjCkyB,UAAW,SAAmBU,EAAS/oF,GACrC,IAAI0b,EAAMlpB,KACNw2F,EAAW/pF,EAAE8pF,GAEbvnC,EAAKwnC,EAAShoF,KAAK,mBACnBhG,EAAMwmD,GAAMwnC,EAAShoF,KAAK,YAE9B,SAASioF,IACPD,EAAStoF,YAAY,QAAQL,SAAS,eAClCmhD,EACFwnC,EAAStjF,IAAI,mBAAqB,OAAS1K,EAAM,KACxCA,GACTguF,EAAShoF,KAAK,MAAOhG,GAEnBgF,GAAYA,EAAS+oF,GACzBC,EAASnkF,QAAQ,eACjB6W,EAAIvC,KAAK,aAAc6vE,EAAS,IAGlC,IAAKhuF,EAIH,OAHAguF,EAASnkF,QAAQ,aACjB6W,EAAIvC,KAAK,WAAY6vE,EAAS,SAC9BC,IAcF,IAAInc,EAAQ,IAAIhvE,IAAIY,MACpBouE,EAAMhpD,OAASmlE,EACfnc,EAAMhqD,QAbN,WACEkmE,EAAStoF,YAAY,QAAQL,SAAS,eAClCmhD,EACFwnC,EAAStjF,IAAI,mBAAqB,QAAUgW,EAAIzP,OAAOy7E,KAAKC,aAAe,IAAM,KAEjFqB,EAAShoF,KAAK,MAAO0a,EAAIzP,OAAOy7E,KAAKC,aAAe,IAElD3nF,GAAYA,EAAS+oF,GACzBC,EAASnkF,QAAQ,cACjB6W,EAAIvC,KAAK,YAAa6vE,EAAS,KAKjClc,EAAM9xE,IAAMA,EAEZguF,EAAS1nF,WAAW,YAAYA,WAAW,mBAG3C0nF,EAASnkF,QAAQ,aACjB6W,EAAIvC,KAAK,WAAY6vE,EAAS,KAEhC1tD,KAAM,SAAcpC,EAAQl5B,GAC1B,IAAI0b,EAAMlpB,KACNs1C,EAAU7oC,EAAEi6B,GACX4O,EAAQlnC,SAAS,UAAWknC,EAAUA,EAAQjxC,QAAQ,SAASgR,GAAG,IAChD,IAAnBigC,EAAQh0C,QAGZg0C,EAAQr+B,KAAK,SAAS3Q,MAAK,SAAUK,EAAOyuF,GAC5B3oF,EAAE2oF,GACJ/wF,QAAQ,yBAAyB/C,OAAS,GAGlD4nB,EAAIgsE,KAAKmB,aAAajB,KACpB5nF,EAAYA,EAAS4nF,GAClBlsE,EAAIgsE,KAAKW,UAAUT,SAM9BsB,OAAS,CACXlyF,KAAM,OACNiV,OAAQ,CACNy7E,KAAM,CACJC,YAAa,yIACbxxB,UAAW,EACXiyB,YAAY,EACZjyE,UAAU,IAGdwD,OAAQ,WAENjK,MAAM5U,OADItI,KACQ,CAChBk1F,KAAM,CACJ/tE,OAAQ2tE,KAAK3tE,OAAO9L,KAHdrb,MAINupB,QAASurE,KAAKvrE,QAAQlO,KAJhBrb,MAKN61F,UAAWf,KAAKe,UAAUx6E,KALpBrb,MAMN8oC,KAAMgsD,KAAKhsD,KAAKztB,KANVrb,MAONq2F,aAAcvB,KAAKuB,aAAah7E,KAP1Brb,UAWZsQ,GAAI,CACF0yC,SAAU,SAAkBvN,IAEtBA,EAAKnsB,IAAIrS,KAAK,SAAS3V,OAAS,GAAKm0C,EAAKnsB,IAAIlb,SAAS,UADjDpO,KAEJk1F,KAAK/tE,OAAOsuB,EAAKnsB,MAGzB+hB,YAAa,SAAqBoK,GACtBz1C,KACFyZ,OAAOy7E,KAAKvxE,UAAYN,QAAQY,uBACpCwxB,EAAKnsB,IAAIrS,KAAK,SAAS3V,OAAS,GAAKm0C,EAAKnsB,IAAIlb,SAAS,UAFjDpO,KAGJk1F,KAAK/tE,OAAOsuB,EAAKnsB,MAGzBu5B,iBAAkB,SAA0BpN,IAEtCA,EAAKnsB,IAAIrS,KAAK,SAAS3V,OAAS,GAAKm0C,EAAKnsB,IAAIlb,SAAS,UADjDpO,KAEJk1F,KAAK3rE,QAAQksB,EAAKnsB,MAG1BgqC,WAAY,SAAoB9nB,GAC9B,IACIkI,EAASjnC,EAAE++B,IACXkI,EAAOz8B,KAAK,SAAS3V,OAAS,GAAKoyC,EAAOtlC,SAAS,UAF7CpO,KAGJk1F,KAAK/tE,OAAOusB,IAGpButB,gBAAiB,SAAyBz1B,GAExC,IADUxrC,KACFyZ,OAAOy7E,KAAKvxE,WAAYN,QAAQY,qBAAxC,CACA,IAAIyvB,EAASjnC,EAAE++B,IACXkI,EAAOz8B,KAAK,SAAS3V,OAAS,GAAKoyC,EAAOtlC,SAAS,UAH7CpO,KAIJk1F,KAAK3rE,QAAQmqB,OAMrBijD,UAA0B,SAAU1vE,GACtC,SAAS0vE,EAAUztE,EAAKzP,QACN,IAAXA,IAAoBA,EAAS,IAElCwN,EAAgB/gB,KAAKlG,KAAMyZ,EAAQ,CAACyP,IAEpC,IAAI0tE,EAAQ52F,KAERksB,EAAW,GAKf0qE,EAAMnvE,iBAAiByE,GAEvB0qE,EAAMn9E,OAASyD,MAAM5U,OAAO4jB,EAAUzS,GAGtC,IAAI6P,EAAM7c,EAAEmqF,EAAMn9E,OAAOvK,IACzB,GAAmB,IAAfoa,EAAIhoB,OAAR,CAKA,GAHAs1F,EAAMttE,IAAMA,EACZstE,EAAM1nF,GAAKoa,EAAI,GAEXstE,EAAMttE,IAAI,GAAGutE,YAAa,CAC5B,IAAI3uF,EAAW0uF,EAAMttE,IAAI,GAAGutE,YAE5B,OADAD,EAAMrtE,UACCrhB,EA+ET,OA5EA0uF,EAAMttE,IAAI,GAAGutE,YAAcD,EAE3B15E,MAAM5U,OAAOsuF,EAAO,CAClBE,YAAaxtE,EAAIlb,SAAS,0BAE1B2oF,UAAWztE,EAAIrS,KAAK,sBACpB+/E,kBAAmB1tE,EAAIrS,KAAK,iCAuD9B2/E,EAAM/gD,aAAe,WACnB+gD,EAAMttE,IAAIhZ,GAAG,SAAU,wCAAyC2mF,GAChEL,EAAMttE,IAAIrS,KAAK,wBAAwB3G,GAAG,QAAS4mF,IAErDN,EAAMz6B,aAAe,WACnBy6B,EAAMttE,IAAI3X,IAAI,SAAU,wCAAyCslF,GACjEL,EAAMttE,IAAIrS,KAAK,wBAAwBtF,IAAI,QAASulF,IAItDN,EAAMvuE,aAGNuuE,EAAMrqE,OAECqqE,EAlEP,SAASK,EAAapmF,GACpB,IAAIA,EAAE0B,SAAU1B,EAAE0B,OAAO4kF,kBAAzB,CAIA,IAAI/rB,EAAW3+D,EAAEzM,MACbsrE,EAAUF,EAAS,GAAGE,QACtB8rB,EAAchsB,EAAS/mE,QAAQ,SAASsC,QAE5C,GAAIykE,EAAS/mE,QAAQ,SAAS/C,OAAS,EACjB,IAAhB81F,GACF9tE,EACGrS,KAAK,YAAYq0D,EAAU,WAAa,eAAe,2BAE5DhiD,EACGrS,KAAM,0BAA4BmgF,EAAc,GAAK,WACrDlwF,KAAK,UAAWokE,GAChBj5D,QAAQ,SAAU,CAAE8kF,mBAAmB,IAC1C/rB,EAASlkE,KAAK,iBAAiB,OAC1B,CACe,IAAhBkwF,GACFhsB,EAAS/mE,QAAQ,MAAMinE,EAAU,WAAa,eAAe,2BAE/D,IAAI+rB,EAAc/tE,EAAIrS,KAAM,mCAAqCmgF,EAAc,GAAK,oCAAuC91F,OACvHg2F,EAAYhuE,EAAIrS,KAAK,YAAY3V,OACjCi2F,EAAkBjuE,EAAIrS,KAAM,mCAAqCmgF,EAAc,GAAK,4BACnF9rB,EAEM+rB,IAAgBC,GACzBC,EAAgBrwF,KAAK,WAAW,GAAMmL,QAAQ,SAAU,CAAE8kF,mBAAmB,IAF7EI,EAAgBrwF,KAAK,WAAW,GAIlCqwF,EAAgBrwF,KAAK,gBAAiBmwF,EAAc,GAAKA,EAAcC,GAEzEV,EAAMY,uBAER,SAASN,IACP,IAGIO,EAHAC,EAAUjrF,EAAEzM,MACZ23F,EAAWD,EAAQtpF,SAAS,wBAC5BwpF,EAAcF,EAAQtpF,SAAS,iBAAmB,OAAS,MAE3DupF,GACFF,EAA0B,SAAhBG,EAAyB,MAAQ,OAC3CF,EAAQxpF,YAAY,8BAA8BL,SAAU,YAAc4pF,KAE1EnuE,EAAIrS,KAAK,+BAA+B/I,YAAY,wBACpDwpF,EAAQ7pF,SAAS,wBACjB4pF,EAAUG,GAEZF,EAAQrlF,QAAQ,iBAAkBolF,GAClCb,EAAMjwE,KAAK,4BAA6BiwE,EAAOa,IAqEnD,OAjDKxwE,IAAkB0vE,EAAUzvE,UAAYD,GAC7C0vE,EAAUluF,UAAYvE,OAAOijB,OAAQF,GAAmBA,EAAgBxe,WACxEkuF,EAAUluF,UAAUxE,YAAc0yF,EAElCA,EAAUluF,UAAUovF,qBAAuB,WACzC,IAAIjB,EAAQ52F,KACP42F,EAAME,aACXF,EAAMttE,IAAIrS,KAAK,gCAAgC3Q,MAAK,SAAUK,EAAOuI,GACnE,IAAIoa,EAAM7c,EAAEyC,GACRs7C,EAAUlhC,EAAI3iB,QACdmxF,EAAkBxuE,EAAI9a,KAAK,0BAC1BspF,GAAuC,KAApBA,GACtBxuE,EAAI9a,KAAK,yBAA0BooF,EAAMttE,IAAIrS,KAAK,YAAY5B,GAAGm1C,GAAS31C,YAKhF8hF,EAAUluF,UAAU+uF,oBAAsB,WAExC,GADYx3F,KACF+2F,UAAUz1F,OAAS,GADjBtB,KAC4Bg3F,kBAAkB11F,OAAS,EAAG,CACpE,IAAIy2F,EAFM/3F,KAEespB,IAAIrS,KAAK,sCAAsC3V,OAF9DtB,KAGJspB,IAAIyuE,EAAe,EAAI,WAAa,eAAe,0BAH/C/3F,KAIJg3F,kBAAkB//E,KAAK,8BAA8BpC,KAAKkjF,KAIpEpB,EAAUluF,UAAU8jB,KAAO,WACbvsB,KACN61C,eADM71C,KAEN63F,uBAFM73F,KAGNw3F,uBAGRb,EAAUluF,UAAU8gB,QAAU,WAC5B,IAAIqtE,EAAQ52F,KAEZ42F,EAAMttE,IAAIjX,QAAQ,2BAClBukF,EAAMjwE,KAAK,8CAA+CiwE,GAE1DA,EAAM/gD,eAEF+gD,EAAMttE,IAAI,KACZstE,EAAMttE,IAAI,GAAGutE,YAAc,YACpBD,EAAMttE,IAAI,GAAGutE,aAEtB35E,MAAMU,YAAYg5E,GAClBA,EAAQ,MAGHD,EA9JoB,CA+J3B1vE,iBAEE+wE,YAAc,CAChBxzF,KAAM,YACNmkB,OAAQ,CACNguE,UAAWA,WAEbxvE,OAAQ,WACInnB,KACNi4F,UAAYpvE,mBAAmB,CACjCE,gBAAiB,cACjB9kB,YAAa0yF,UACbztE,IAJQlpB,KAKRipB,QAAS,iBAGb3Y,GAAI,CACF2wD,gBAAiB,SAAyBz1B,GACxC,IAAItiB,EAAMlpB,KACVyM,EAAE++B,GAAOv0B,KAAK,oBAAoB3Q,MAAK,SAAUK,EAAOuxF,GACtDhvE,EAAI+uE,UAAU1uE,QAAQ2uE,OAG1B5kC,WAAY,SAAoB9nB,GAC9B,IAAItiB,EAAMlpB,KACVyM,EAAE++B,GAAOv0B,KAAK,oBAAoB3Q,MAAK,SAAUK,EAAOuxF,GACtDhvE,EAAI+uE,UAAU9wE,OAAO,CAAEjY,GAAIgpF,QAG/Br1C,iBAAkB,SAA0BpN,GAC1C,IAAIvsB,EAAMlpB,KACVy1C,EAAKnsB,IAAIrS,KAAK,oBAAoB3Q,MAAK,SAAUK,EAAOuxF,GACtDhvE,EAAI+uE,UAAU1uE,QAAQ2uE,OAG1Bl1C,SAAU,SAAkBvN,GAC1B,IAAIvsB,EAAMlpB,KACVy1C,EAAKnsB,IAAIrS,KAAK,oBAAoB3Q,MAAK,SAAUK,EAAOuxF,GACtDhvE,EAAI+uE,UAAU9wE,OAAO,CAAEjY,GAAIgpF,SAIjCjwE,MAAO,CACLkwE,kBAAmB,CACjBr6C,OAAQ,SAAgB71B,GACtB,IACIiwE,EAAUjwE,EAAM81B,IADV/9C,KAENi4F,UAAU9wE,OAAO,CAAEjY,GAAIgpF,KAE7B3uE,QAAS,SAAiBtB,GACxB,IACIiwE,EAAUjwE,EAAM81B,IADV/9C,KAENi4F,UAAU1uE,QAAQ2uE,OAM1BE,IAAM,CACRC,UAAW,SAAmBC,EAAO5uE,GACnC,IAAIR,EAAMlpB,KACNu4F,EAAS9rF,EAAE6rF,GACXruE,EAAYxd,EAAEid,GAClB,GAAyB,IAArBO,EAAU3oB,OAAd,CAEA2oB,EAAU/Z,WAAW,GAAGrC,SAAS,4BACjC,IAAItF,EAAS,CACXyK,MAAOiX,EAAU,GAAG3W,YACpBC,OAAQ0W,EAAU,GAAGvW,aACrBC,OAAQsW,EAAUtW,SAClB6kF,aAAcvuE,EAAU/W,IAAI,iBAC5BulF,OAAQxuE,EAAU/W,IAAI,YAEpBwlF,EAAM,CACR1lF,MAAOulF,EAAO,GAAGjlF,YACjBC,OAAQglF,EAAO,GAAG7kF,aAClBC,OAAQ4kF,EAAO5kF,SACfq1D,WAAY9rD,MAAMwB,aAAa65E,EAAO,GAAI,KAC1CtvB,WAAY/rD,MAAMwB,aAAa65E,EAAO,GAAI,MAG5CA,EAAO,GAAGI,eAAiB,CACzB1uE,UAAWA,EACX1hB,OAAQA,EACRmwF,IAAKA,GAGP,IAAIE,EAASF,EAAI/kF,OAAOU,KAAQqkF,EAAI1lF,MAAQ,GAC3BzK,EAAOoL,OAAOU,KAAQ9L,EAAOyK,MAAQ,GACtC0lF,EAAI1vB,WAChB6vB,EAASH,EAAI/kF,OAAOS,IAAOskF,EAAInlF,OAAS,GAC3BhL,EAAOoL,OAAOS,IAAO7L,EAAOgL,OAAS,GACtCmlF,EAAIzvB,WAChBZ,EAAS9/D,EAAOyK,MAAQ0lF,EAAI1lF,MAC5Bs1D,EAAS//D,EAAOgL,OAASmlF,EAAInlF,OAE7BilF,EAAelgF,KAAKikD,KAAK/6C,SAASjZ,EAAOiwF,aAAc,IAAMlgF,KAAKC,IAAI8vD,EAAQC,IAC9EkwB,EAAe,IAAKA,GAAgB,GAExCD,EAAO,GAAGO,wBAA0B,WAClCP,EAAOroF,WAAW,GAAGH,UAAU,IAC/Bka,EAAU/Z,WAAW,GACrB3H,EAAOyK,MAAQiX,EAAU,GAAG3W,YAC5B/K,EAAOgL,OAAS0W,EAAU,GAAGvW,aAC7BnL,EAAOoL,OAASsW,EAAUtW,SAC1B+kF,EAAI/kF,OAAS4kF,EAAO5kF,SAEpB,IAAIolF,EAAYL,EAAI/kF,OAAOU,KAAQqkF,EAAI1lF,MAAQ,GAC5BzK,EAAOoL,OAAOU,KAAQ9L,EAAOyK,MAAQ,GACtC0lF,EAAI1vB,WAClBgwB,EAAYN,EAAI/kF,OAAOS,IAAOskF,EAAInlF,OAAS,GAC5BhL,EAAOoL,OAAOS,IAAO7L,EAAOgL,OAAS,GACtCmlF,EAAIzvB,WAClBgwB,EAAY1wF,EAAOyK,MAAQ0lF,EAAI1lF,MAC/BkmF,EAAY3wF,EAAOgL,OAASmlF,EAAInlF,OAEpCglF,EAAOxoF,UAAW,gBAAmBgpF,EAAY,QAAWC,EAAY,gBAAkBC,EAAY,KAAOC,EAAY,MAG3HjvE,EACG/W,IAAI,UAAW,GACfnD,UAAW,SAAY,EAAIs4D,EAAU,KAAQ,EAAIC,EAAU,KAC9DiwB,EACG1qF,SAAS,cACTqF,IAAI,UAAW3K,EAAOkwF,OAAS,GAC/B1oF,UAAW,gBAAmB6oF,EAAS,QAAWC,EAAS,UAC9DN,EAAO1lF,eAAc,WACnBoX,EAAU/Z,WAAW,IACrBgN,MAAMa,WAAU,WACdkM,EAAU/W,IAAI,UAAW,GAAGnD,UAAU,cACtCwoF,EACGxoF,UAAW,gBAAmB6oF,EAAS,QAAWC,EAAS,gBAAkBxwB,EAAS,KAAOC,EAAS,KACtGp1D,IAAI,gBAAkBslF,EAAe,MACrCtlF,IAAI,aAAc,QAClBA,IAAI,UAAW,QAEpBgW,EAAI5Y,GAAG,SAAUioF,EAAO,GAAGO,yBACvB7uE,EAAU5lB,QAAQ,iBAAiB/C,OAAS,GAC9C2oB,EAAU5lB,QAAQ,iBAAiBiM,GAAG,SAAUioF,EAAO,GAAGO,8BAIhEK,WAAY,SAAoBb,GAC9B,IACIC,EAAS9rF,EAAE6rF,GACXc,EAAYb,EAAO,GAAGI,eAC1B,GAAKS,EAAL,CACA,IAAInvE,EAAYmvE,EAAUnvE,UACtB1hB,EAAS6wF,EAAU7wF,OACnBmwF,EAAMU,EAAUV,IACpB,GAAyB,IAArBzuE,EAAU3oB,OAAd,CAEA,IAAIs3F,EAASF,EAAI/kF,OAAOU,KAAQqkF,EAAI1lF,MAAQ,GAC3BzK,EAAOoL,OAAOU,KAAQ9L,EAAOyK,MAAQ,GACtC0lF,EAAI1vB,WAChB6vB,EAASH,EAAI/kF,OAAOS,IAAOskF,EAAInlF,OAAS,GAC3BhL,EAAOoL,OAAOS,IAAO7L,EAAOgL,OAAS,GACtCmlF,EAAIzvB,WAChBZ,EAAS9/D,EAAOyK,MAAQ0lF,EAAI1lF,MAC5Bs1D,EAAS//D,EAAOgL,OAASmlF,EAAInlF,OAhBvBvT,KAkBN2R,IAAI,SAAU4mF,EAAO,GAAGO,yBACxB7uE,EAAU5lB,QAAQ,iBAAiB/C,OAAS,GAC9C2oB,EAAU5lB,QAAQ,iBAAiBsN,IAAI,SAAU4mF,EAAO,GAAGO,yBAG7D7uE,EACG/W,IAAI,UAAW,GACfnD,UAAW,SAAY,EAAIs4D,EAAU,KAAQ,EAAIC,EAAU,KAC9DiwB,EACGroF,WAAW,IACXgD,IAAI,aAAc,IAClBA,IAAI,gBAAiB,IACrBA,IAAI,UAAW,KACfnD,UAAW,gBAAmB6oF,EAAS,QAAWC,EAAS,UAC9DN,EAAO1lF,eAAc,WACnB0lF,EACGrlF,IAAI,UAAW,IACfhF,YAAY,cACZ6B,UAAU,IACbmN,MAAMa,WAAU,WACdw6E,EAAO1lF,eAAc,WACnBoX,EACG/b,YAAY,4BACZgF,IAAI,UAAW,IACfnD,UAAU,IACVG,WAAW,gBAKtBuZ,KAAM,SAAc6uE,EAAO5uE,GACzB,IACI6uE,EAAS9rF,EAAE6rF,GAAOjjF,GAAG,GACrBgkF,EAAad,EAAOthF,KAAK,gBAC7B,GAAKshF,EAAOj3F,SACRi3F,EAAOnqF,SAAS,gBACfirF,EAAW/3F,QAAWi3F,EAAOnqF,SAAS,cAA3C,CAEA,GAPUpO,KAOF04F,IAAIlmC,SAAU,CACpB,GARQxyD,KAQA04F,IAAIlmC,WAAa+lC,EAAO,GAAM,OAR9Bv4F,KASJ04F,IAAI3uE,MATA/pB,KASU04F,IAAIlmC,UATdxyD,KAWN04F,IAAIlmC,SAAW+lC,EAAO,GACtBA,EAAOnqF,SAAS,aAZVpO,KAaJ04F,IAAIL,UAAUE,EAAQ7uE,GAAY6uE,EAAO/pF,KAAK,kBAElD+pF,EAAO1qF,SAAS,cAElB0qF,EAAOxhF,SAAS,iBAAiBlJ,SAAS,eAC1C0qF,EAAOlmF,QAAQ,cAEjB0X,MAAO,SAAeuuE,QACL,IAAVA,IAAmBA,EAAQ,eAEhC,IACIC,EAAS9rF,EAAE6rF,GAAOjjF,GAAG,GACrBgkF,EAAad,EAAOthF,KAAK,gBACxBshF,EAAOj3F,QACPi3F,EAAOnqF,SAAS,gBAChBirF,EAAW/3F,QAAWi3F,EAAOnqF,SAAS,gBALjCpO,KAMN04F,IAAIlmC,SAAW,KACf+lC,EAAOnqF,SAAS,aAPVpO,KAQJ04F,IAAIS,WAAWZ,GAEnBA,EAAOrqF,YAAY,cAErBqqF,EAAOxhF,SAAS,iBAAiB7I,YAAY,eAC7CqqF,EAAOlmF,QAAQ,eAEjB9D,OAAQ,SAAgB+pF,GAET7rF,EAAE6rF,GACHlqF,SAAS,cAFXpO,KAGC04F,IAAI3uE,MAAMuuE,GAHXt4F,KAEgC04F,IAAIjvE,KAAK6uE,KAKnDgB,MAAQ,CACV90F,KAAM,MACN2iB,OAAQ,WAENjK,MAAM5U,OADItI,KACQ,CAChB04F,IAAK,CACHlmC,SAAU,KACV6lC,UAAWD,IAAIC,UAAUh9E,KAJnBrb,MAKNm5F,WAAYf,IAAIe,WAAW99E,KALrBrb,MAMNypB,KAAM2uE,IAAI3uE,KAAKpO,KANTrb,MAON+pB,MAAOquE,IAAIruE,MAAM1O,KAPXrb,MAQNuO,OAAQ6pF,IAAI7pF,OAAO8M,KARbrb,UAYZw5C,OAAQ,CACN+/C,WAAY,SAAclgD,GACdr5C,KACN04F,IAAInqF,OAAO8qC,EAAWh1C,QAAQ,UAEpCm1F,YAAa,SAAcngD,EAAY30C,QACvB,IAATA,IAAkBA,EAAO,IAEpB1E,KACN04F,IAAIjvE,KAAK/kB,EAAKg0F,MAEpBe,aAAc,SAAepgD,EAAY30C,QACzB,IAATA,IAAkBA,EAAO,IAEpB1E,KACN04F,IAAI3uE,MAAMrlB,EAAKg0F,MAErBgB,gBAAiB,WACL15F,KACN04F,IAAI3uE,WAKV4vE,UAA0B,SAAUC,GACtC,SAASD,EAAUzwE,EAAKzP,QACN,IAAXA,IAAoBA,EAAS,IAElCmgF,EAAe1zF,KAAKlG,KAAMyZ,EAAQ,CAACyP,IAEnC,IAAI2wE,EAAK75F,KAELksB,EAAW,CACbhd,QAAI/O,EACJgrE,aAAShrE,EACT25F,YAAa,8BACbC,eAAe,EACfC,qBAAiB75F,EACjBumD,gBAAYvmD,EACZs8E,qBAAiBt8E,EACjB85F,WAAY,KACZvd,cAAUv8E,EACV+5F,YAAa,cACbC,iBAAkB,mCAClBC,OAAQ,oBACRC,QAAS,mBACTC,WAAY,uBACZC,eAAgB,4BAChBC,eAAgB,4BAChB/zC,cAAUtmD,EACV8d,kBAAkB,EAClBw8E,cAAc,EACdC,cAAc,EACdC,YAAY,EACZC,wBAAwB,EACxBC,YAAY,EACZ5Z,QAAQ,GAIV4Y,EAAGpyE,iBAAiByE,GAEpB2tE,EAAGpgF,OAASyD,MAAM5U,OAAO4jB,EAAUzS,GAEnC,IAOI67B,EAPAhsB,EAAM7c,EAAEotF,EAAGpgF,OAAOvK,IACtB,GAAmB,IAAfoa,EAAIhoB,OAAgB,OAAOu4F,EAE/B,GAAIvwE,EAAI,GAAGwxE,YAAe,OAAOxxE,EAAI,GAAGwxE,YAExCxxE,EAAI,GAAGwxE,YAAcjB,EAGrB,IAaIkB,EAOAxe,EAOAye,EAOAC,EAlCA10D,EAAYjd,EAAIjlB,QAAQ,WAC5B,GAAIilB,EAAIjlB,QAAQ,SAAS/C,OAAS,EAChCg0C,EAAUhsB,EAAIjlB,QAAQ,cACjB,GAAIkiC,EAAUjlC,OAAS,KAC5Bg0C,EAAU7oC,EAAEyc,EAAIme,OAAO0Y,YAAYxZ,EAAU,MAChCjlC,OAAQ,CACnB,IAAIk8B,EAAiBlU,EAAIjlB,QAAQ,SAAS4S,KAAK,iBAC3CumB,EAAe,IAAMA,EAAe,GAAGgF,QAAUhF,EAAe,GAAGgF,OAAO+E,WAAahB,EAAU,KACnG+O,EAAU9X,GAMZ/jB,EAAO4gF,QACTU,EAAWtuF,EAAEgN,EAAO4gF,SACkB,iBAAtBR,EAAGpgF,OAAO4gF,SAAwB/kD,IAClDylD,EAAWzlD,EAAQr+B,KAAK4iF,EAAGpgF,OAAO4gF,UAIhC5gF,EAAO6gF,WACT/d,EAAc9vE,EAAEgN,EAAO6gF,YACkB,iBAAzBT,EAAGpgF,OAAO6gF,YAA2BhlD,IACrDinC,EAAcjnC,EAAQr+B,KAAK4iF,EAAGpgF,OAAO6gF,aAInC7gF,EAAO8gF,eACTS,EAAkBvuF,EAAEgN,EAAO8gF,gBACkB,iBAA7BV,EAAGpgF,OAAO8gF,gBAA+BjlD,IACzD0lD,EAAkB1lD,EAAQr+B,KAAK4iF,EAAGpgF,OAAO8gF,iBAIvC9gF,EAAO+gF,eACTS,EAAkBxuF,EAAEgN,EAAO+gF,gBACkB,iBAA7BX,EAAGpgF,OAAO+gF,gBAA+BllD,IACzD2lD,EAAkB3lD,EAAQr+B,KAAK4iF,EAAGpgF,OAAO+gF,iBAI3C,IAQIz0C,EAuBAm1C,EAKA9vB,EAOA+vB,EA3CAN,EAAahB,EAAGpgF,OAAOohF,YAAcvxE,EAAIlb,SAAS,wBAClD6yE,EAAS4Y,EAAGpgF,OAAOwnE,QAAU33D,EAAIlb,SAAS,oBAuF9C,SAASgtF,EAAcvqF,GACrBA,EAAEmmB,iBAEJ,SAASyrD,EAAa5xE,GACpBgpF,EAAG1jC,OAAOtlD,GACVgpF,EAAGvwE,IAAIzb,SAAS,qBAElB,SAAS4oE,IACPojB,EAAGvwE,IAAIpb,YAAY,qBACD,WAAdgb,EAAI/C,OAAwBg1E,GAAqBA,EAAiB75F,QAAWu4F,EAAGpgF,OAAOsgF,eAAmBF,EAAGv7E,OAC/Gu7E,EAAGzjC,UAGP,SAASilC,IACP,IAAI3sF,EAAQmrF,EAAGzuB,SAAS37D,MAAMtO,QAGzB04F,EAAGqB,kBAAoBrB,EAAGqB,iBAAiB55F,OAAS,IACjDu4F,EAAGpgF,OAAOijE,UAAYmd,EAAGyB,eAAiBzB,EAAGpgF,OAAOijE,WAAamd,EAAGpgF,OAAOwgF,aAE9EJ,EAAGpgF,OAAOghF,eAEbZ,EAAGxuF,OAAOqD,GAAO,GAGrB,SAASg0E,EAAa7xE,EAAGy9D,GACvBurB,EAAGvwE,IAAIjX,QAAQ,kBAAmBi8D,GAClCurB,EAAGlzE,KAAK,8BAA+BkzE,EAAIvrB,GAE7C,SAASitB,EAAe1qF,GACtBgpF,EAAGzjC,QAAQvlD,GAEb,SAAS2qF,KACF3B,GAAOA,IAAOA,EAAGvwE,KAClBuwE,EAAGl+C,UACLk+C,EAAGvwE,IAAIpb,YAAY,qBACf2rF,EAAGgB,YACLhB,EAAGvwE,IAAIjlB,QAAQ,WAAW6J,YAAY,sFAI5C,SAASutF,KACF5B,GAAOA,IAAOA,EAAGvwE,KAClBuwE,EAAGl+C,UACLk+C,EAAGvwE,IAAIzb,SAAS,qBACZgsF,EAAGgB,YACLhB,EAAGvwE,IAAIjlB,QAAQ,WAAWwJ,SAAS,oDA6CzC,YAhLkC,IAAvBgsF,EAAGpgF,OAAOgtC,WAEZozC,EAAGpgF,OAAOgtC,UADZw6B,GAA6C,WAAd/3D,EAAI/C,OAKtC0zE,EAAGpgF,OAAOgtC,UAQe,KANzBV,EADE8zC,EAAGpgF,OAAOitC,WACEj6C,EAAEotF,EAAGpgF,OAAOitC,YACjBpR,GAAWA,EAAQh0C,OAAS,EACvBg0C,EAAQr+B,KAAK,uBAEbqS,EAAIvS,SAAS,wBAEbzV,SACdykD,EAAct5C,EAAE,0CACZ6oC,GAAWA,EAAQh0C,OACjBgoB,EAAIjlB,QAAQixC,GAASh0C,OAAS,GAAKilC,GAA+C,IAAlCjd,EAAIjlB,QAAQkiC,GAAWjlC,OACzEykD,EAAYhwC,aAAauT,GAEzBy8B,EAAYhwC,aAAau/B,EAAQr+B,KAAK,iBAAiB5B,GAAG,IAG5D0wC,EAAYhwC,aAAauT,IAM3BuwE,EAAGpgF,OAAOgjE,kBACZye,EAAmBzuF,EAAEotF,EAAGpgF,OAAOgjE,kBAK/BrR,EADEyuB,EAAGpgF,OAAO0xD,QACD1+D,EAAEotF,EAAGpgF,OAAO0xD,SAEZ7hD,EAAIrS,KAAK,wBAAwB5B,GAAG,GAI7CwkF,EAAGpgF,OAAOsgF,gBAEVoB,EADEtB,EAAGpgF,OAAOugF,gBACOvtF,EAAEotF,EAAGpgF,OAAOugF,iBAEZ1wE,EAAIrS,KAAK,8BAIhCiG,MAAM5U,OAAOuxF,EAAI,CACf3wE,IAAKA,EACLmT,KAAMnT,EAAIkT,MAAMlzB,IAAIogB,EAAIjlB,QAAQ,UAChCilB,IAAKA,EACLpa,GAAIoa,EAAI,GACRy8B,YAAaA,EACbW,WAAYX,GAAeA,EAAY,GACvCm1C,iBAAkBA,EAClBze,gBAAiBye,GAAoBA,EAAiB,GACtD9vB,SAAUA,EACVD,QAASC,EAAS,GAClB+vB,iBAAkBA,EAClBnB,gBAAiBmB,GAAoBA,EAAiB,GACtDO,wBAAwB,EACxBpmD,QAASA,EACT5O,OAAQ4O,GAAWA,EAAQ,GAC3B/O,UAAWA,EACXgB,SAAUhB,GAAaA,EAAU,GACjCw0D,SAAUA,EACVV,QAASU,GAAYA,EAAS,GAC9Bxe,YAAaA,EACb+d,WAAY/d,GAAeA,EAAY,GACvCye,gBAAiBA,EACjBT,eAAgBS,GAAmBA,EAAgB,GACnDC,gBAAiBA,EACjBT,eAAgBS,GAAmBA,EAAgB,GACnDU,cAAe,GACfr9E,MAAO,GACPg9E,cAAeJ,GAAoBA,EAAiB9sF,SAAS,gBAC7D2nD,iBAAa51D,EACbw7C,SAAS,EACTk/C,WAAYA,EACZ5Z,OAAQA,IAsDV4Y,EAAGhkD,aAAe,WAChBvsB,EAAIhZ,GAAG,SAAU8qF,GACbvB,EAAGpgF,OAAOsgF,eACZF,EAAGsB,iBAAiB7qF,GAAG,QAASirF,GAE9B1B,EAAGpgF,OAAOmhF,wBAA0Bf,EAAG9zC,aACzC8zC,EAAG9zC,YAAYz1C,GAAG,QAASirF,GAEzB1B,EAAGgB,YAA4B,QAAd3xE,EAAI/C,OAAmB0zE,EAAGx9D,MAAQkK,EAAUjlC,QAAUu4F,EAAGvkD,UAC5EukD,EAAGvkD,QAAQhlC,GAAG,iBAAkBkrF,GAChC3B,EAAGvkD,QAAQhlC,GAAG,gBAAiBmrF,IAEjC5B,EAAGzuB,SAAS96D,GAAG,QAASmyE,GACxBoX,EAAGzuB,SAAS96D,GAAG,OAAQmmE,GACvBojB,EAAGzuB,SAAS96D,GAAGupF,EAAGpgF,OAAOqgF,YAAauB,GACtCxB,EAAGzuB,SAAS96D,GAAG,cAAeoyE,IAEhCmX,EAAG19B,aAAe,WAChB7yC,EAAI3X,IAAI,SAAUypF,GACdvB,EAAGpgF,OAAOsgF,eACZF,EAAGsB,iBAAiBxpF,IAAI,QAAS4pF,GAE/B1B,EAAGpgF,OAAOmhF,wBAA0Bf,EAAG9zC,aACzC8zC,EAAG9zC,YAAYp0C,IAAI,QAAS4pF,GAE1B1B,EAAGgB,YAA4B,QAAd3xE,EAAI/C,OAAmB0zE,EAAGx9D,MAAQkK,EAAUjlC,QAAUu4F,EAAGvkD,UAC5EukD,EAAGvkD,QAAQ3jC,IAAI,iBAAkB6pF,GACjC3B,EAAGvkD,QAAQ3jC,IAAI,gBAAiB8pF,IAElC5B,EAAGzuB,SAASz5D,IAAI,QAAS8wE,GACzBoX,EAAGzuB,SAASz5D,IAAI,OAAQ8kE,GACxBojB,EAAGzuB,SAASz5D,IAAIkoF,EAAGpgF,OAAOqgF,YAAauB,GACvCxB,EAAGzuB,SAASz5D,IAAI,cAAe+wE,IAIjCmX,EAAGxxE,aAGHwxE,EAAGttE,OAEIstE,EA6WT,OA1WKD,IAAiBD,EAAUzyE,UAAY0yE,GAC5CD,EAAUlxF,UAAYvE,OAAOijB,OAAQyyE,GAAkBA,EAAenxF,WACtEkxF,EAAUlxF,UAAUxE,YAAc01F,EAElCA,EAAUlxF,UAAUmzF,MAAQ,SAAgB/qF,GAC1C,IAAIgpF,EAAK75F,KACT,IAAK65F,EAAGv7E,OAASzN,GAAKpE,EAAEoE,EAAEtI,QAAQ6F,SAAS,mBAEzC,OADAyrF,EAAGzjC,UACIyjC,EAET,IAAI8B,EAAgB9B,EAAGnrF,MAIvB,OAHAmrF,EAAGzuB,SAAS37D,IAAI,IAAI4C,QAAQ,UAAUiJ,QACtCu+E,EAAGvwE,IAAIjX,QAAQ,kBAAmBspF,GAClC9B,EAAGlzE,KAAK,8BAA+BkzE,EAAI8B,GACpC9B,GAGTF,EAAUlxF,UAAUozF,uBAAyB,WAC3C,IAAIhC,EAAK75F,KACT,IAAI65F,EAAGgB,WAAP,CACA,IAAI3xE,EAAM2wE,EAAG3wE,IACb2wE,EAAGsB,iBAAiBjrF,WAAW,GAAGsE,OAClCqlF,EAAGsB,iBAAiBjoF,IAAK,WAAagW,EAAIwC,IAAM,OAAS,UAAcmuE,EAAGG,gBAAgB1mF,YAAe,MAEzGumF,EAAGv7D,YAAcu7D,EAAGsB,iBAAiB,GAAGpnF,WACxC8lF,EAAGsB,iBAAiBjrF,WAAW,IAC/B2pF,EAAG6B,wBAAyB,IAG9B/B,EAAUlxF,UAAU0tD,OAAS,SAAiB2lC,GAC5C,IAAIjC,EAAK75F,KACT,GAAI65F,EAAGl+C,QAAW,OAAOk+C,EACzB,IAAI3wE,EAAM2wE,EAAG3wE,IAEb,SAASitC,IAcP,GAbI0jC,EAAG9zC,cAAiB8zC,EAAGqB,kBAAoBrB,EAAGqB,iBAAiB55F,QAAWu4F,EAAGpgF,OAAOghF,gBAAkBZ,EAAGvwE,IAAIlb,SAAS,uBAAyByrF,EAAGv7E,OACpJu7E,EAAGkC,eAELlC,EAAGvwE,IAAIzb,SAAS,uBACXgsF,EAAGsB,kBAAqBtB,EAAGsB,kBAAmD,IAA/BtB,EAAGsB,iBAAiB75F,SACtEu4F,EAAGvwE,IAAIzb,SAAS,wCAEbgsF,EAAGgB,YAAchB,EAAGsB,kBAAoBtB,EAAGsB,iBAAiB75F,OAAS,GAAmB,OAAd4nB,EAAI/C,QAC5E0zE,EAAG6B,wBACN7B,EAAGgC,yBAELhC,EAAGsB,iBAAiBjoF,IAAK,WAAagW,EAAIwC,IAAM,OAAS,SAAW,QAElEmuE,EAAGgB,WAAY,CACjB,IAAIt0D,EAAYszD,EAAGvwE,IAAIjlB,QAAQ,WAC/B,GAAIkiC,EAAUn4B,SAAS,iBAAmByrF,EAAGvkD,QAAS,CACpD,IAAIiO,EAAiBs2C,EAAGvkD,QAAQr+B,KAAK,iBACjCiqC,EAAgB3a,EAAUtvB,KAAK,gBACnCssC,EAAe11C,SAAS,qCACpB04B,EAAUn4B,SAAS,iBAAmBm4B,EAAUn4B,SAAS,2BAA6B8yC,EAAc5/C,QAAUiiD,EAAejiD,SAC/HiiD,EAAerzC,WAAW,GAC1BqzC,EAAe,GAAGvvC,WAAaktC,EAAc,GAAGxtC,aAChDrH,YAAW,WACTk3C,EAAerzC,WAAW,MACzB,MAGW,OAAdgZ,EAAI/C,OAAkBogB,EAAUjlC,OAClCilC,EAAU14B,SAAS,sCAEnB04B,EAAU14B,SAAS,qCACf04B,EAAUn4B,SAAS,iBACrBm4B,EAAU14B,SAAS,2BAIrBgsF,EAAGmB,iBAAmBnB,EAAGmB,gBAAgBntF,SAAS,uBACtDgsF,EAAGvwE,IAAIjX,QAAQ,oBACfwnF,EAAGlzE,KAAK,gCAAiCkzE,GAxC3CA,EAAGl+C,SAAU,EA0Cb,IAAIqgD,GAAa,EA4BjB,OA3BiB,IAAbF,GACEtyF,IAAIM,gBAAkB+vF,EAAG1uB,UAC3B6wB,GAAa,GAGL9yE,EAAI7E,OAAOC,KAAqB,QAAd4E,EAAI/C,MAE5B0zE,EAAGgB,YACDmB,GAAcnC,EAAGzuB,SAAS9vD,QAC9B66C,MAEI6lC,GAAcnC,EAAGzuB,SAAS9vD,SAC1BwgF,GAA+B,UAAlBA,EAASz5F,OAAiC,IAAby5F,EAK5C3lC,IAJAj5C,MAAMW,UAAS,WACbs4C,MACC,OAMH6lC,GAAcnC,EAAGzuB,SAAS9vD,QACZ,OAAd4N,EAAI/C,OAAkB0zE,EAAGgB,YAC3BhB,EAAGvwE,IAAIjlB,QAAQ,wCAAwC6P,WAAWgV,EAAIwC,IAAM,IAAM,GAEpFyqC,KAEK0jC,GAGTF,EAAUlxF,UAAU2tD,QAAU,WAC5B,IAAIyjC,EAAK75F,KACT,IAAK65F,EAAGl+C,QAAW,OAAOk+C,EAC1B,IAAI3wE,EAAM2wE,EAAG3wE,IAGb,GAFA2wE,EAAGzuB,SAAS37D,IAAI,IAAI4C,QAAQ,UAC5BwnF,EAAGvwE,IAAIpb,YAAY,2EACf2rF,EAAGgB,WAAY,CACjB,IAAIt0D,EAAYszD,EAAGvwE,IAAIjlB,QAAQ,WAC3Bk/C,EAAiBs2C,EAAGvkD,SAAWukD,EAAGvkD,QAAQr+B,KAAK,iBAEnD,GAAIsvB,EAAUn4B,SAAS,iBAAmBm1C,EAAejiD,OAAQ,CAC/D,IAAI4/C,EAAgB3a,EAAUtvB,KAAK,gBAInC,GAHA4iF,EAAGvwE,IAAIzW,eAAc,WACnB0wC,EAAer1C,YAAY,wCAEzBq4B,EAAUn4B,SAAS,iBAAmBm4B,EAAUn4B,SAAS,2BAA6B8yC,EAAc5/C,OAAQ,CAC9G,IAAI0S,EAAYuvC,EAAe,GAAGvvC,UAC9BioF,EAAmB/6C,EAAc,GAAGxtC,aACpCM,EAAYioF,IACd14C,EAAerzC,WAAW,GAC1BqzC,EAAe,GAAGvvC,UAAYA,EAAYioF,EAC1C5vF,YAAW,WACTk3C,EAAerzC,WAAW,MACzB,MAGPqzC,EAAer1C,YAAY,qCAAqCL,SAAS,qCAEzD,OAAdqb,EAAI/C,OAAkBogB,EAAUjlC,QAClCilC,EACGr4B,YAAY,qFACZL,SAAS,qCACZgsF,EAAGvwE,IAAIzW,eAAc,WACnB0zB,EAAUr4B,YAAY,0CAGxBq4B,EACGr4B,YAAY,qFACZL,SAAS,qCACZgsF,EAAGvwE,IAAIzW,eAAc,WACnB0zB,EAAUr4B,YAAY,wCAEpB2rF,EAAGvkD,SACLukD,EAAGvkD,QAAQr+B,KAAK,iBAAiB5E,QAAQ,WAmB/C,OAfKwnF,EAAGgB,YAAchB,EAAGsB,kBAAoBtB,EAAGsB,iBAAiB75F,OAAS,GAAmB,OAAd4nB,EAAI/C,OACjF0zE,EAAGsB,iBAAiBjoF,IAAK,WAAagW,EAAIwC,IAAM,OAAS,UAAcmuE,EAAGG,gBAAgB1mF,YAAe,MAEvGumF,EAAG9zC,cAAiB8zC,EAAGqB,kBAAoBrB,EAAGqB,iBAAiB55F,QAAWu4F,EAAGpgF,OAAOghF,eACtFZ,EAAGqC,eAGLrC,EAAGl+C,SAAU,EAEbk+C,EAAGzuB,SAASrhE,OAER8vF,EAAGmB,iBAAmBnB,EAAGmB,gBAAgB9sF,YAAY,uBAEzD2rF,EAAGvwE,IAAIjX,QAAQ,qBACfwnF,EAAGlzE,KAAK,kCAAmCkzE,GACpCA,GAGTF,EAAUlxF,UAAU8F,OAAS,WAI3B,OAHSvO,KACF27C,QADE37C,KACYo2D,UADZp2D,KAECm2D,QAAO,GAFRn2D,MAMX25F,EAAUlxF,UAAUszF,aAAe,WAKjC,OAJS/7F,KACF+lD,aADE/lD,KAEJ+lD,YAAYl4C,SAAS,yBAFjB7N,MAOX25F,EAAUlxF,UAAUyzF,aAAe,WAKjC,OAJSl8F,KACF+lD,aADE/lD,KAEJ+lD,YAAY73C,YAAY,yBAFpBlO,MAOX25F,EAAUlxF,UAAU4C,OAAS,SAAiBiT,EAAO69E,GACnD,IAAItC,EAAK75F,KAET,GADA65F,EAAG8B,cAAgB9B,EAAGv7E,OAAS,GAC3BA,IAAUu7E,EAAG8B,cAAiB,OAAO9B,EAEpCsC,IACEtC,EAAGl+C,SACNk+C,EAAG1jC,SAEL0jC,EAAGzuB,SAAS37D,IAAI6O,GAChBu7E,EAAGzuB,SAAS/4D,QAAQ,UAEtBwnF,EAAGv7E,MAAQA,EACXu7E,EAAGnrF,MAAQ4P,EAEX,IAAI48E,EAAmBrB,EAAGqB,iBACtB5xE,EAAMuwE,EAAGvwE,IACTyxE,EAAWlB,EAAGkB,SACdxe,EAAcsd,EAAGtd,YACjB0e,EAAkBpB,EAAGoB,gBACrBK,EAAgBzB,EAAGyB,cAoBvB,GAjBIh9E,EAAMhd,OAAS,GAAK25F,EACtBA,EAAgBptF,SAAS,uBAChBotF,GACTA,EAAgB/sF,YAAY,wBAI3BgtF,GAAoBA,EAAiB55F,QAAUgoB,EAAIlb,SAAS,sBACzDyrF,EAAGpgF,OAAOghF,cAAgBnxE,EAAIlb,SAAS,wBAEtB,IAAjBkQ,EAAMhd,OACRu4F,EAAGkC,eAEHlC,EAAGqC,gBAIHrC,EAAGpgF,OAAOghF,aAGZ,OAFAnxE,EAAIjX,QAAQ,mBAAoB,CAAEiM,MAAOA,EAAOq9E,cAAe9B,EAAG8B,gBAClE9B,EAAGlzE,KAAK,gCAAiCkzE,EAAIv7E,EAAOu7E,EAAG8B,eAChD9B,EAGT,IACIuC,EADAC,EAAa,GAEjB,GAAIf,EAAe,CAEjB,GADAzB,EAAG9jC,YAAcmlC,EAAiB,GAAGllC,cAChB,KAAjB13C,EAAMnd,OAMR,OALA04F,EAAG9jC,YAAYwH,cACXgf,GAAeA,EAAYjoE,OAC3BymF,GAAYA,EAASvmF,OACzB8U,EAAIjX,QAAQ,mBAAoB,CAAEiM,MAAOA,EAAOq9E,cAAe9B,EAAG8B,gBAClE9B,EAAGlzE,KAAK,gCAAiCkzE,EAAIv7E,EAAOu7E,EAAG8B,eAChD9B,EAGT,GADAuC,EAAUvC,EAAGpgF,OAAOwE,iBAAmBf,MAAMe,iBAAiBK,GAASA,EACnEu7E,EAAG9jC,YAAYt8C,OAAO0gD,UACxBkiC,EAAaxC,EAAG9jC,YAAYt8C,OAAO0gD,UAAUiiC,EAASvC,EAAG9jC,YAAY2E,QAAU,QAC1E,GAAIm/B,EAAG9jC,YAAYt8C,OAAOygD,aAC/B,IAAK,IAAIl5D,EAAI,EAAGA,EAAI64F,EAAG9jC,YAAY2E,MAAMp5D,OAAQN,GAAK,EAChD64F,EAAG9jC,YAAYt8C,OAAOygD,aAAakiC,EAASvC,EAAG9jC,YAAYt8C,OAAOihD,MAAM15D,GAAIA,IAC9Eq7F,EAAW36F,KAAKV,OAIjB,CACL,IAAI6O,EAC8BA,EAA9BgqF,EAAGpgF,OAAOwE,iBAA6Bf,MAAMe,iBAAiBK,EAAMnd,OAAOiM,eAAehM,MAAM,KAEzFkd,EAAMnd,OAAOiM,cAAchM,MAAM,KAE5C85F,EAAiBjkF,KAAK4iF,EAAGpgF,OAAOwgF,YAAY/rF,YAAY,uBAAuB5H,MAAK,SAAUk5D,EAAWxC,GACvG,IAAIszB,EAAU7jF,EAAEuwD,GACZs/B,EAAkB,GAClBC,EAAY1C,EAAGpgF,OAAOijE,SAAW4T,EAAQr5E,KAAK4iF,EAAGpgF,OAAOijE,UAAY4T,EACpEuJ,EAAGpgF,OAAOijE,WAAamd,EAAGpgF,OAAOwgF,aACnCsC,EAAYjM,GAEdiM,EAAUj2F,MAAK,SAAUk2F,EAAeC,GACtC,IAAIC,EAAWjwF,EAAEgwF,GAAY5nF,OAAO1T,OAAOiM,cACvCysF,EAAGpgF,OAAOwE,mBAAoBy+E,EAAWx/E,MAAMe,iBAAiBy+E,IACpEJ,EAAgB56F,KAAKg7F,MAEvBJ,EAAkBA,EAAgBn4F,KAAK,KAEvC,IADA,IAAIw4F,EAAa,EACR37F,EAAI,EAAGA,EAAI6O,EAAOvO,OAAQN,GAAK,EAClCs7F,EAAgB36F,QAAQkO,EAAO7O,KAAO,IAAK27F,GAAc,GAE3DA,IAAe9sF,EAAOvO,QAAYu4F,EAAGpgF,OAAO2gF,QAAU9J,EAAQr/E,GAAG4oF,EAAGpgF,OAAO2gF,QAG7EiC,EAAW36F,KAAK4uF,EAAQ,IAFxBA,EAAQziF,SAAS,0BAMjBgsF,EAAGpgF,OAAOihF,cACZQ,EAAiBjkF,KAAK4iF,EAAGpgF,OAAO0gF,kBAAkB7zF,MAAK,SAAUs2F,EAAYC,GAI3E,IAHA,IAAIn0C,EAAWj8C,EAAEowF,GACbC,EAAgBp0C,EAASjyC,QAAQojF,EAAGpgF,OAAOwgF,YAC3C3lF,GAAO,EACFtT,EAAI,EAAGA,EAAI87F,EAAcx7F,OAAQN,GAAK,EAAG,CAChD,IAAI+7F,EAAUD,EAAcznF,GAAGrU,GAC/B,GAAI+7F,EAAQ9rF,GAAG4oF,EAAGpgF,OAAO0gF,kBAAqB,MACzC4C,EAAQ3uF,SAAS,yBACpBkG,GAAO,GAGX,IAAI8lF,EAASP,EAAGpgF,OAAO2gF,QAAU1xC,EAASz3C,GAAG4oF,EAAGpgF,OAAO2gF,QACnD9lF,IAAS8lF,EAAU1xC,EAAS76C,SAAS,uBAClC66C,EAASx6C,YAAY,0BAG5B2rF,EAAGpgF,OAAOkhF,YACZO,EAAiBjkF,KAAK4iF,EAAGpgF,OAAOygF,aAAa5zF,MAAK,SAAUmoD,EAAY4rB,GACtE,IAAI2iB,EAAWvwF,EAAE4tE,GACb+f,EAASP,EAAGpgF,OAAO2gF,QAAU4C,EAAS/rF,GAAG4oF,EAAGpgF,OAAO2gF,QAK9B,IAHT4C,EAAS/lF,KAAK4iF,EAAGpgF,OAAOwgF,YAAYvnF,QAAO,SAAU/L,EAAOuI,GAC1E,OAAQzC,EAAEyC,GAAId,SAAS,0BAEX9M,QAAiB84F,EAG7B4C,EAAS9uF,YAAY,uBAFrB8uF,EAASnvF,SAAS,0BAsB1B,OAd0B,IAAtBwuF,EAAW/6F,QACTi7E,GAAeA,EAAY/nE,OAC3BumF,GAAYA,EAASzmF,SAErBioE,GAAeA,EAAYjoE,OAC3BymF,GAAYA,EAASvmF,QAEvB8mF,GAAiBzB,EAAG9jC,aACtB8jC,EAAG9jC,YAAYqH,YAAYi/B,GAG7B/yE,EAAIjX,QAAQ,mBAAoB,CAAEiM,MAAOA,EAAOq9E,cAAe9B,EAAG8B,cAAeU,WAAYA,IAC7FxC,EAAGlzE,KAAK,gCAAiCkzE,EAAIv7E,EAAOu7E,EAAG8B,cAAeU,GAE/DxC,GAGTF,EAAUlxF,UAAU8jB,KAAO,WACzB,IAAIstE,EAAK75F,KACL65F,EAAGgB,YAAchB,EAAGvwE,KAAOuwE,EAAGvwE,IAAIzb,SAAS,wBAC3CgsF,EAAG5Y,QAAU4Y,EAAGvwE,KAAOuwE,EAAGvwE,IAAIzb,SAAS,oBAC3CgsF,EAAGhkD,gBAGL8jD,EAAUlxF,UAAU8gB,QAAU,WAC5B,IAAIswE,EAAK75F,KACT65F,EAAGlzE,KAAK,8CAA+CkzE,GACvDA,EAAGvwE,IAAIjX,QAAQ,2BACfwnF,EAAG19B,eACC09B,EAAGvwE,IAAI,KACTuwE,EAAGvwE,IAAI,GAAGwxE,YAAc,YACjBjB,EAAGvwE,IAAI,GAAGwxE,aAEnB59E,MAAMU,YAAYi8E,IAGbF,EA1nBoB,CA2nB3B1yE,iBAEEg2E,YAAc,CAChBz4F,KAAM,YACNmkB,OAAQ,CACNgxE,UAAWA,WAEbxyE,OAAQ,WACInnB,KACN07E,UAAY7yD,mBAAmB,CACjCE,gBAAiB,aACjB9kB,YAAa01F,UACbzwE,IAJQlpB,KAKRipB,QAAS,cACTE,WAAY,qCAAqC/nB,MAAM,QAG3DkP,GAAI,CACFgjD,WAAY,SAAoB9nB,GAC9B,IAAItiB,EAAMlpB,KACVyM,EAAE++B,GAAOv0B,KAAK,mBAAmB3Q,MAAK,SAAUK,EAAOu2F,GACrD,IAAI7gB,EAAe5vE,EAAEywF,GACrBh0E,EAAIwyD,UAAUv0D,OAAOjK,MAAM5U,OAAO+zE,EAAa/sE,UAAW,CAAEJ,GAAIguF,SAGpEj8B,gBAAiB,SAAyBz1B,GACxC/+B,EAAE++B,GAAOv0B,KAAK,mBAAmB3Q,MAAK,SAAUK,EAAOu2F,GACjDA,EAAYpC,aAAeoC,EAAYpC,YAAYvxE,SACrD2zE,EAAYpC,YAAYvxE,cAI9By5B,SAAU,SAAkBvN,GAC1B,IAAIvsB,EAAMlpB,KACVy1C,EAAKnsB,IAAIrS,KAAK,mBAAmB3Q,MAAK,SAAUK,EAAOu2F,GACrD,IAAI7gB,EAAe5vE,EAAEywF,GACrBh0E,EAAIwyD,UAAUv0D,OAAOjK,MAAM5U,OAAO+zE,EAAa/sE,UAAW,CAAEJ,GAAIguF,QAEhD,QAAdh0E,EAAI/C,OAAmBsvB,EAAKpZ,MAAQoZ,EAAKpZ,KAAKnO,OAAO+O,eAAiBwY,EAAKlP,WAAakP,EAAKlP,UAAUjlC,OAAS,GAClHm0C,EAAKlP,UAAUtvB,KAAK,mBAAmB3Q,MAAK,SAAUK,EAAOu2F,GAC3D,IAAI7gB,EAAe5vE,EAAEywF,GACrBh0E,EAAIwyD,UAAUv0D,OAAOjK,MAAM5U,OAAO+zE,EAAa/sE,UAAW,CAAEJ,GAAIguF,SAItEr6C,iBAAkB,SAA0BpN,GAE1CA,EAAKnsB,IAAIrS,KAAK,mBAAmB3Q,MAAK,SAAUK,EAAOu2F,GACjDA,EAAYpC,aAAeoC,EAAYpC,YAAYvxE,SACrD2zE,EAAYpC,YAAYvxE,aAGV,QANRvpB,KAMFmmB,OAAmBsvB,EAAKpZ,MAAQoZ,EAAKpZ,KAAKnO,OAAO+O,eAAiBwY,EAAKlP,WAAakP,EAAKlP,UAAUjlC,OAAS,GAClHm0C,EAAKlP,UAAUtvB,KAAK,mBAAmB3Q,MAAK,SAAUK,EAAOu2F,GACvDA,EAAYpC,aAAeoC,EAAYpC,YAAYvxE,SACrD2zE,EAAYpC,YAAYvxE,eAMlCiwB,OAAQ,CACN2jD,mBAAoB,SAAe9jD,EAAY30C,QAC/B,IAATA,IAAkBA,EAAO,IAE9B,IACIm1F,EADM75F,KACG07E,UAAUxyE,IAAIxE,EAAKg3E,WAC5Bme,GAAMA,EAAG+B,SAEfwB,oBAAqB,SAAgB/jD,EAAY30C,QACjC,IAATA,IAAkBA,EAAO,IAE9B,IACIm1F,EADM75F,KACG07E,UAAUxyE,IAAIxE,EAAKg3E,WAC5Bme,GAAMA,EAAG1jC,QAAO,IAEtBknC,qBAAsB,SAAiBhkD,EAAY30C,QACnC,IAATA,IAAkBA,EAAO,IAE9B,IACIm1F,EADM75F,KACG07E,UAAUxyE,IAAIxE,EAAKg3E,WAC5Bme,GAAMA,EAAGzjC,WAEfknC,oBAAqB,SAAgBjkD,EAAY30C,QACjC,IAATA,IAAkBA,EAAO,IAE9B,IACIm1F,EADM75F,KACG07E,UAAUxyE,IAAIxE,EAAKg3E,WAC5Bme,GAAMA,EAAGtrF,WAGjB0Z,MAAO,CACLs1E,iBAAkB,CAChBz/C,OAAQ,SAAgB71B,GACtB,IACIi1E,EAAcj1E,EAAM81B,IACpBs+B,EAAe5vE,EAAEywF,GAFXl9F,KAGN07E,UAAUv0D,OAAOjK,MAAM5U,OAAO+zE,EAAa/sE,UAAW,CAAEJ,GAAIguF,MAElE3zE,QAAS,SAAiBtB,GACxB,IAAIi1E,EAAcj1E,EAAM81B,IACpBm/C,EAAYpC,aAAeoC,EAAYpC,YAAYvxE,SACrD2zE,EAAYpC,YAAYvxE,cAO9Bi0E,SAAyB,SAAUv2E,GACrC,SAASu2E,EAASt0E,EAAKzP,QACL,IAAXA,IAAoBA,EAAS,IAElCwN,EAAgB/gB,KAAKlG,KAAMyZ,EAAQ,CAACyP,IAEpC,IAAIjI,EAAIjhB,KAEJksB,EAAW,CACbuxE,YAAY,EACZC,SAAU,GACVC,kBAAkB,EAClBC,gBAAgB,EAChBC,sBAAsB,EACtBC,sBAAkB39F,EAClB49F,qBAAiB59F,EACjB69F,qBAAiB79F,EACjB89F,yBAAqB99F,EACrB+9F,2BAAuB/9F,EACvBg+F,2BAAuBh+F,EACvBi+F,2BAAuBj+F,EACvBk+F,4BAAwBl+F,EACxBm+F,mBAAen+F,GAIjB8gB,EAAEwG,iBAAiByE,GAEnBjL,EAAExH,OAASyD,MAAM5U,OAAO4jB,EAAUzS,GAElC,IAAI6P,EAAM7c,EAAEgN,EAAOvK,IAAImG,GAAG,GAC1B,GAAmB,IAAfiU,EAAIhoB,OAAgB,OAAO2f,EAE/B,GAAIqI,EAAI,GAAGi1E,WAAc,OAAOj1E,EAAI,GAAGi1E,WAEvCj1E,EAAI,GAAGi1E,WAAat9E,EAEpB,IAAIsiC,EAAiBj6B,EAAItS,QAAQ,iBAAiB3B,GAAG,GAgBrD,OAdA6H,MAAM5U,OAAO2Y,EAAG,CACdy8E,SAAUz8E,EAAExH,OAAOikF,SACnBp0E,IAAKA,EACLpa,GAAIoa,EAAI,GACRi6B,eAAgBA,EAChBvN,cAAeuN,EAAe,KAIhCtiC,EAAEoH,aAGFpH,EAAEsL,OAEKtL,EA0bT,OAvbKgG,IAAkBu2E,EAASt2E,UAAYD,GAC5Cu2E,EAAS/0F,UAAYvE,OAAOijB,OAAQF,GAAmBA,EAAgBxe,WACvE+0F,EAAS/0F,UAAUxE,YAAcu5F,EAEjCA,EAAS/0F,UAAU+1F,eAAiB,SAAyBC,GAC3D,IAAIC,EAAajyF,EAAEgyF,GACf/5F,EAAO,CACTF,KAAMk6F,EAAWznF,KAAK,iBAAiBpK,OACvCw8E,OAAQqV,EAAWznF,KAAK,mBAAmBpK,OAC3C8xF,WAAYD,EAAWznF,KAAK,wBAAwBpK,OACpD+xF,WAAYF,EAAWznF,KAAK,wBAAwBpK,OACpDohF,OAAQyQ,EAAWznF,KAAK,mBAAmBpK,OAC3C0zB,QAASm+D,EAAWtwF,SAAS,kBAC7B/L,KAAMq8F,EAAWtwF,SAAS,gBAAkB,OAAS,WACrDyG,KAAM6pF,EAAWznF,KAAK,iBAAiBpK,OACvCytE,MAAOokB,EAAWznF,KAAK,kBAAkBpK,OACzCgyF,SAAUH,EAAWznF,KAAK,sBAAsBzI,KAAK,OACrDswF,OAAQJ,EAAWtwF,SAAS,mBAE1B1J,EAAK67B,UACP77B,EAAKmQ,KAAO6pF,EAAW7xF,QAErBnI,EAAKmQ,MAAQnQ,EAAKi6F,aACpBj6F,EAAKmQ,KAAOnQ,EAAKmQ,KAAKhU,QAAS,oCAAyC6D,EAAe,WAAI,SAAW,KAEpGA,EAAKmQ,MAAQnQ,EAAKk6F,aACpBl6F,EAAKmQ,KAAOnQ,EAAKmQ,KAAKhU,QAAS,oCAAyC6D,EAAe,WAAI,SAAW,KAExG,IAAIq6F,EAASL,EAAWznF,KAAK,mBAAmB/D,IAAI,oBASpD,MARe,SAAX6rF,GAAgC,KAAXA,IAAiBA,OAAS5+F,GAEjD4+F,EADEA,GAA4B,iBAAXA,EACVA,EAAOl+F,QAAQ,OAAQ,IAAIA,QAAQ,IAAK,IAAIA,QAAQ,KAAM,IAAIA,QAAQ,KAAM,SAE5EV,EAEXuE,EAAKq6F,OAASA,EAEPr6F,GAGT84F,EAAS/0F,UAAUu2F,gBAAkB,WACnC,IAAI/9E,EAAIjhB,KACJ0E,EAAO,GAIX,OAHAuc,EAAEqI,IAAIrS,KAAK,6BAA6B3Q,MAAK,SAAUK,EAAO83F,GAC5D/5F,EAAKhD,KAAKuf,EAAEu9E,eAAeC,OAEtB/5F,GAGT84F,EAAS/0F,UAAU61F,cAAgB,SAAwBW,GACzD,IAAIh+E,EAAIjhB,KACJqyB,EAAUnV,MAAM5U,OAAO,CACzBjG,KAAM,OACNoM,MAAO,IACNwwF,GACH,GAAIh+E,EAAExH,OAAO6kF,cACX,OAAOr9E,EAAExH,OAAO6kF,cAAcp4F,KAAK+a,EAAGoR,GAExC,GAAIA,EAAQkO,QACV,MAAQ,+BAAoClO,EAAY,KAAI,SAE9D,IAAI5jB,EAAQvK,OAAO2B,KAAKwsB,EAAQ5jB,OAAOkG,KAAI,SAAUnG,GAAQ,OAAQA,EAAO,KAAS6jB,EAAQ5jB,MAAMD,GAAS,OAAUrK,KAAK,KAC3H,MAAQ,uCAA2CkuB,EAAY,KAAI,KAAOA,EAAQ6sE,SAAW,iBAAmB,IAAM,KAAO7sE,EAAQi1B,UAAY,IAAM,KAAQ74C,EAAQ,eAAiB4jB,EAAQ0sE,OAAU,qEAA2E1sE,EAAc,OAAI,sBAA0B,IAAM,uDAA2DA,EAAQ7tB,KAAQ,6BAAkC6tB,EAAY,KAAI,SAAY,IAAM,gBAAkBA,EAAQg3D,OAAU,+BAAoCh3D,EAAc,OAAI,SAAY,IAAM,0DAA8DA,EAAQssE,WAAc,oCAAyCtsE,EAAkB,WAAI,SAAY,IAAM,kBAAoBA,EAAQioD,MAAS,8BAAmCjoD,EAAa,MAAI,SAAY,IAAM,kBAAoBA,EAAQwsE,WAAaxsE,EAAQioD,MAAS,wCAA8CjoD,EAAgB,SAAI,WAAe,IAAM,kBAAoBA,EAAQxd,MAAQwd,EAAQ6sE,SAAY,8BAAkC7sE,EAAQxd,MAAQ,KAAOwd,EAAQ6sE,SAAW,gFAAkF,IAAM,SAAY,IAAM,kBAAoB7sE,EAAQusE,WAAc,oCAAyCvsE,EAAkB,WAAI,SAAY,IAAM,kCAAoCA,EAAQ47D,OAAU,+BAAoC57D,EAAc,OAAI,SAAY,IAAM,wCAG58CmrE,EAAS/0F,UAAU02F,eAAiB,SAAyBC,EAAkB54E,QACnD,IAArB44E,IAA8BA,EAAmBp/F,KAAK09F,eAC3C,IAAXl3E,IAAoBA,EAASxmB,KAAKyZ,OAAOkkF,iBAAmB,UAAY,UAE7E,IAAI18E,EAAIjhB,KACJ6M,EAAOuyF,EAAiBzqF,KAAI,SAAU0d,GAAW,OAAOpR,EAAEq9E,cAAcjsE,MAAaluB,KAAK,IAC9F8c,EAAEqI,IAAI9C,GAAQ3Z,IAGhB2wF,EAAS/0F,UAAU42F,eAAiB,WAIlC,IAHA,IAAItkF,EAEAhT,EAAO,GAAIC,EAAMC,UAAU3G,OACvB0G,KAAQD,EAAMC,GAAQC,UAAWD,GACzC,IAAIiZ,EAAIjhB,KACR,QAAIihB,EAAExH,OAAOqkF,mBAA4B/iF,EAAMkG,EAAExH,QAAQqkF,iBAAiB5sF,MAAM6J,EAAKhT,IAIvFy1F,EAAS/0F,UAAU62F,cAAgB,WAIjC,IAHA,IAAIvkF,EAEAhT,EAAO,GAAIC,EAAMC,UAAU3G,OACvB0G,KAAQD,EAAMC,GAAQC,UAAWD,GACzC,IAAIiZ,EAAIjhB,KACR,QAAIihB,EAAExH,OAAOskF,kBAA2BhjF,EAAMkG,EAAExH,QAAQskF,gBAAgB7sF,MAAM6J,EAAKhT,IAIrFy1F,EAAS/0F,UAAU82F,cAAgB,WAIjC,IAHA,IAAIxkF,EAEAhT,EAAO,GAAIC,EAAMC,UAAU3G,OACvB0G,KAAQD,EAAMC,GAAQC,UAAWD,GACzC,IAAIiZ,EAAIjhB,KACR,QAAIihB,EAAExH,OAAOukF,kBAA2BjjF,EAAMkG,EAAExH,QAAQukF,gBAAgB9sF,MAAM6J,EAAKhT,IAIrFy1F,EAAS/0F,UAAU+2F,kBAAoB,WAIrC,IAHA,IAAIzkF,EAEAhT,EAAO,GAAIC,EAAMC,UAAU3G,OACvB0G,KAAQD,EAAMC,GAAQC,UAAWD,GACzC,IAAIiZ,EAAIjhB,KACR,QAAIihB,EAAExH,OAAOwkF,sBAA+BljF,EAAMkG,EAAExH,QAAQwkF,oBAAoB/sF,MAAM6J,EAAKhT,IAI7Fy1F,EAAS/0F,UAAUg3F,oBAAsB,WAIvC,IAHA,IAAI1kF,EAEAhT,EAAO,GAAIC,EAAMC,UAAU3G,OACvB0G,KAAQD,EAAMC,GAAQC,UAAWD,GACzC,IAAIiZ,EAAIjhB,KACR,QAAIihB,EAAExH,OAAOykF,wBAAiCnjF,EAAMkG,EAAExH,QAAQykF,sBAAsBhtF,MAAM6J,EAAKhT,IAIjGy1F,EAAS/0F,UAAUi3F,oBAAsB,WAIvC,IAHA,IAAI3kF,EAEAhT,EAAO,GAAIC,EAAMC,UAAU3G,OACvB0G,KAAQD,EAAMC,GAAQC,UAAWD,GACzC,IAAIiZ,EAAIjhB,KACR,QAAIihB,EAAExH,OAAO0kF,wBAAiCpjF,EAAMkG,EAAExH,QAAQ0kF,sBAAsBjtF,MAAM6J,EAAKhT,IAIjGy1F,EAAS/0F,UAAUk3F,oBAAsB,WAIvC,IAHA,IAAI5kF,EAEAhT,EAAO,GAAIC,EAAMC,UAAU3G,OACvB0G,KAAQD,EAAMC,GAAQC,UAAWD,GACzC,IAAIiZ,EAAIjhB,KACR,QAAIihB,EAAExH,OAAO2kF,wBAAiCrjF,EAAMkG,EAAExH,QAAQ2kF,sBAAsBltF,MAAM6J,EAAKhT,IAIjGy1F,EAAS/0F,UAAUm3F,qBAAuB,WAIxC,IAHA,IAAI7kF,EAEAhT,EAAO,GAAIC,EAAMC,UAAU3G,OACvB0G,KAAQD,EAAMC,GAAQC,UAAWD,GACzC,IAAIiZ,EAAIjhB,KACR,GAAIihB,EAAExH,OAAO4kF,uBAA0B,OAAQtjF,EAAMkG,EAAExH,QAAQ4kF,uBAAuBntF,MAAM6J,EAAKhT,IAInGy1F,EAAS/0F,UAAU8pE,OAAS,WAC1B,IAAItxD,EAAIjhB,KACRihB,EAAEqI,IAAIrS,KAAK,6BAA6B3Q,MAAK,SAAUK,EAAO83F,GAC5D,IAAIC,EAAajyF,EAAEgyF,GACdx9E,EAAEy8E,WACLz8E,EAAEy8E,SAAWz8E,EAAE+9E,mBAEjB,IAAIjxF,EAAU,GACVskB,EAAUpR,EAAEy8E,SAAS/2F,GACrBk5F,EAAkB5+E,EAAEy8E,SAAS/2F,EAAQ,GACrCm5F,EAAc7+E,EAAEy8E,SAAS/2F,EAAQ,GACjCsa,EAAEo+E,eAAehtE,EAASwtE,EAAiBC,IAC7C/xF,EAAQrM,KAAK,iBAEXuf,EAAEq+E,cAAcjtE,EAASwtE,EAAiBC,IAC5C/xF,EAAQrM,KAAK,gBAEXuf,EAAEs+E,cAAcltE,EAASwtE,EAAiBC,IAC5C/xF,EAAQrM,KAAK,gBAEXuf,EAAEu+E,kBAAkBntE,EAASwtE,EAAiBC,IAChD/xF,EAAQrM,KAAK,qBAEXuf,EAAEw+E,oBAAoBptE,EAASwtE,EAAiBC,IAClD/xF,EAAQrM,KAAK,uBAEXuf,EAAEy+E,oBAAoBrtE,EAASwtE,EAAiBC,IAClD/xF,EAAQrM,KAAK,uBAEXuf,EAAE0+E,oBAAoBttE,EAASwtE,EAAiBC,IAClD/xF,EAAQrM,KAAK,uBAEf,IAAIq+F,EAAuB9+E,EAAE2+E,qBAAqBvtE,EAASwtE,EAAiBC,GACxEC,GAAwBA,EAAqBz+F,SACX,iBAAzBy+F,IACTA,EAAuBA,EAAqB3+F,MAAM,MAEpD2+F,EAAqBh8F,SAAQ,SAAUi8F,GACrCjyF,EAAQrM,KAAKs+F,OAGjBtB,EAAWxwF,YAAY,yHACvBH,EAAQhK,SAAQ,SAAU+J,GACxB4wF,EAAW7wF,SAASC,UAK1B0vF,EAAS/0F,UAAUmzF,MAAQ,WACjB57F,KACN09F,SAAW,GADL19F,KAENspB,IAAIzc,KAAK,KAGb2wF,EAAS/0F,UAAUw3F,cAAgB,SAAwBC,EAAiB3tB,QAC1D,IAAXA,IAAoBA,GAAS,GAElC,IAEI5rE,EACA2iB,EAHArI,EAAIjhB,KAcR,MAV+B,iBAApBkgG,GACTv5F,EAAQu5F,EACR52E,EAAMrI,EAAEqI,IAAIrS,KAAK,6BAA6B5B,GAAG1O,IACxCsa,EAAEy8E,UAAYz8E,EAAEy8E,SAAS/7F,QAAQu+F,IAAoB,GAC9Dv5F,EAAQsa,EAAEy8E,SAAS/7F,QAAQu+F,GAC3B52E,EAAMrI,EAAEqI,IAAI/e,WAAW8K,GAAG1O,IAG1BA,GADA2iB,EAAM7c,EAAEyzF,IACIv5F,QAEK,IAAf2iB,EAAIhoB,SAGRgoB,EAAInb,SACJ8S,EAAEy8E,SAAS3rF,OAAOpL,EAAO,GACrBsa,EAAExH,OAAOgkF,YAAclrB,GAAUtxD,EAAEsxD,UAJ9BtxD,GAQXu8E,EAAS/0F,UAAU03F,eAAiB,SAAyBC,EAAkB7tB,QAC7D,IAAXA,IAAoBA,GAAS,GAElC,IAAItxD,EAAIjhB,KACR,GAAI8C,MAAMC,QAAQq9F,GAAmB,CACnC,IAAIC,EAAsB,GAC1BD,EAAiBr8F,SAAQ,SAAUu8F,GACjCD,EAAoB3+F,KAAKuf,EAAEqI,IAAIrS,KAAK,6BAA6B5B,GAAGirF,OAEtED,EAAoBt8F,SAAQ,SAAUm8F,GACpCj/E,EAAEg/E,cAAcC,GAAiB,WAGnCzzF,EAAE2zF,GAAkB95F,MAAK,SAAUK,EAAOu5F,GACxCj/E,EAAEg/E,cAAcC,GAAiB,MAIrC,OADIj/E,EAAExH,OAAOgkF,YAAclrB,GAAUtxD,EAAEsxD,SAChCtxD,GAGTu8E,EAAS/0F,UAAU83F,WAAa,WAI9B,IAHA,IAAIhwF,EAAQ0hB,EAERlqB,EAAO,GAAIC,EAAMC,UAAU3G,OACvB0G,KAAQD,EAAMC,GAAQC,UAAWD,GACzC,IACIw4F,EACApnF,EACAoN,EAHAvF,EAAIjhB,KAgBR,MAZuB,kBAAZ+H,EAAK,IACEy4F,GAAfjwF,EAASxI,GAA4B,GAAIqR,EAAU7I,EAAO,GAAIiW,EAASjW,EAAO,KAE7DiwF,GAAjBvuE,EAAWlqB,GAA8B,GAAIye,EAASyL,EAAS,GAAI7Y,EAAU6Y,EAAS,SAElE,IAAZ7Y,IACTA,GAAU,QAEU,IAAXoN,IACTA,EAASvF,EAAExH,OAAOkkF,iBAAmB,UAAY,UAG5C18E,EAAEw/E,YAAY,CAACD,GAAepnF,EAASoN,IAGhDg3E,EAAS/0F,UAAUg4F,YAAc,WAI/B,IAHA,IAAIlwF,EAAQ0hB,EAERlqB,EAAO,GAAIC,EAAMC,UAAU3G,OACvB0G,KAAQD,EAAMC,GAAQC,UAAWD,GACzC,IACI04F,EACAtnF,EACAoN,EAHAvF,EAAIjhB,KAIe,kBAAZ+H,EAAK,IACE24F,GAAfnwF,EAASxI,GAA6B,GAAIqR,EAAU7I,EAAO,GAAIiW,EAASjW,EAAO,KAE9DmwF,GAAjBzuE,EAAWlqB,GAA+B,GAAIye,EAASyL,EAAS,GAAI7Y,EAAU6Y,EAAS,SAEnE,IAAZ7Y,IACTA,GAAU,QAEU,IAAXoN,IACTA,EAASvF,EAAExH,OAAOkkF,iBAAmB,UAAY,UAInD,IAAIgD,EAAqB1/E,EAAE+0B,cAAc39B,aACrCuoF,EAAe3/E,EAAE+0B,cAActiC,aAC/BmtF,EAAe5/E,EAAE+0B,cAAchiC,UAG/B8sF,EAAe,GACfC,EAAgB9/E,EAAEy8E,SAAShrF,QAAO,SAAUxD,GAAM,OAAOA,EAAGgwF,YAAa,GAC7EwB,EAAc38F,SAAQ,SAAUy8F,GAC1BO,EACa,WAAXv6E,EACFvF,EAAEy8E,SAAS3rF,OAAOkP,EAAEy8E,SAAS/7F,QAAQo/F,GAAgB,EAAGP,GAExDv/E,EAAEy8E,SAAS3rF,OAAOkP,EAAEy8E,SAAS/7F,QAAQo/F,GAAiB,EAAG,EAAGP,GAG9Dv/E,EAAEy8E,SAAoB,WAAXl3E,EAAsB,OAAS,WAAWg6E,GAEvDM,GAAgB7/E,EAAEq9E,cAAckC,MAElC,IAAIQ,EAAev0F,EAAEq0F,GA0BrB,GAzBI1nF,IACa,WAAXoN,GAAwBvF,EAAExH,OAAOkkF,kBACnCqD,EAAanzF,SAAS,8BAET,YAAX2Y,GAAwBvF,EAAExH,OAAOkkF,kBACnCqD,EAAanzF,SAAS,4BAGtBkzF,EACa,WAAXv6E,EACFw6E,EAAajrF,aAAakL,EAAEqI,IAAIrS,KAAK,oBAErC+pF,EAAa5qF,YAAY6K,EAAEqI,IAAIrS,KAAK,oBAGtCgK,EAAEqI,IAAI9C,GAAQw6E,GAIZ//E,EAAExH,OAAOgkF,YAAcx8E,EAAEsxD,SAEd,YAAX/rD,GAAyBu6E,IAC3B9/E,EAAE+0B,cAAchiC,UAAY6sF,GAAgB5/E,EAAE+0B,cAAc39B,aAAesoF,IAGzE1/E,EAAExH,OAAOmkF,iBAA+B,WAAXp3E,IAAwBvF,EAAExH,OAAOkkF,kBAAiC,YAAXn3E,GAAwBvF,EAAExH,OAAOkkF,mBAAqBoD,GAC5I,GAAI9/E,EAAExH,OAAOokF,qBAAsB,CACjC,IAAIoD,GAAS,EACThgF,EAAExH,OAAOkkF,kBAAqC,IAAjBkD,IAC/BI,GAAS,IAENhgF,EAAExH,OAAOkkF,kBAAqBkD,GAAgBF,EAAqBC,KAAkB,KACxFK,GAAS,GAEPA,GAAUhgF,EAAExE,OAAOrD,OAAUjZ,EAAY,QAE7C8gB,EAAExE,OAAOrD,OAAUjZ,EAAY,GAInC,OAAO8gB,GAGTu8E,EAAS/0F,UAAUy4F,WAAa,SAAqB7uE,QAClC,IAAZA,IAAqBA,EAAU,IAEpC,IAAIpR,EAAIjhB,KACJ+gG,EAAgB9/E,EAAEy8E,SAAShrF,QAAO,SAAUxD,GAAM,OAAOA,EAAGgwF,YAAa,GAQ7E,OAPI6B,GACF9/E,EAAEg/E,cAAch/E,EAAEy8E,SAAS/7F,QAAQo/F,IAErC9/E,EAAEs/E,WAAWrjF,MAAM5U,OAAO,CACxBjG,KAAM,WACN68F,UAAU,GACT7sE,IACIpR,GAGTu8E,EAAS/0F,UAAU04F,WAAa,WAC9B,IACIC,EACAC,EAFApgF,EAAIjhB,KAYR,GATAihB,EAAEy8E,SAAS35F,SAAQ,SAAUsuB,EAAS1rB,GAChC0rB,EAAQ6sE,WAAYkC,EAAqBz6F,WAEb,IAAvBy6F,GACLngF,EAAEqI,IAAIrS,KAAK,YAAY5B,GAAG+rF,GAAoBhzF,SAAS,oBACzDizF,GAAc,EACdpgF,EAAEg/E,cAAcmB,KAGfC,EAAa,CAChB,IAAIC,EAAmBrgF,EAAEqI,IAAIrS,KAAK,mBAC9BqqF,EAAiBhgG,QACnB2f,EAAEg/E,cAAcqB,GAGpB,OAAOrgF,GAGTu8E,EAAS/0F,UAAUgU,OAAS,SAAiBtM,EAAU6D,QACnC,IAAb7D,IAAsBA,EAAW,KAEtC,IAEIoxF,EAFAtgF,EAAIjhB,KACJwhG,EAAgBvgF,EAAE+0B,cAAchiC,UAEpC,QAAyB,IAAdA,EAA6ButF,EAAevtF,OAGrD,IADAutF,EAAetgF,EAAExH,OAAOkkF,iBAAmB,EAAI18E,EAAE+0B,cAAc39B,aAAe4I,EAAE+0B,cAActiC,gBACzE8tF,EAAiB,OAAOvgF,EAG/C,OADAA,EAAEsiC,eAAevvC,UAAUutF,EAAcpxF,GAClC8Q,GAGTu8E,EAAS/0F,UAAU8jB,KAAO,WACxB,IAAItL,EAAIjhB,KACHihB,EAAEy8E,UAAkC,IAAtBz8E,EAAEy8E,SAASp8F,SAC5B2f,EAAEy8E,SAAWz8E,EAAE+9E,mBAEb/9E,EAAExH,OAAOikF,UAAYz8E,EAAExH,OAAOikF,SAASp8F,QACzC2f,EAAEk+E,iBAEAl+E,EAAExH,OAAOgkF,YAAcx8E,EAAEsxD,SACzBtxD,EAAExH,OAAOmkF,gBAAkB38E,EAAExE,OAAO,IAG1C+gF,EAAS/0F,UAAU8gB,QAAU,WAC3B,IAAItI,EAAIjhB,KACRihB,EAAE0F,KAAK,6CAA8C1F,GACrDA,EAAEqI,IAAIjX,QAAQ,0BACV4O,EAAEqI,IAAI,KACRrI,EAAEqI,IAAI,GAAGi1E,WAAa,YACft9E,EAAEqI,IAAI,GAAGi1E,YAElBrhF,MAAMU,YAAYqD,IAGbu8E,EA/emB,CAgf1Bv2E,iBAEEw6E,WAAa,CACfj9F,KAAM,WACNmkB,OAAQ,CACN60E,SAAUA,UAEZr2E,OAAQ,WACInnB,KACN09F,SAAW70E,mBAAmB,CAChCE,gBAAiB,YACjB9kB,YAAau5F,SACbt0E,IAJQlpB,KAKRipB,QAAS,aACTE,WAAY,yFAAyF/nB,MAAM,QAG/GkP,GAAI,CACF2wD,gBAAiB,SAAyBz1B,GACxC,IAAItiB,EAAMlpB,KACVyM,EAAE++B,GAAOv0B,KAAK,kBAAkB3Q,MAAK,SAAUK,EAAO+6F,GACpDx4E,EAAIw0E,SAASn0E,QAAQm4E,OAGzBpuC,WAAY,SAAoB9nB,GAC9B,IAAItiB,EAAMlpB,KACVyM,EAAE++B,GAAOv0B,KAAK,kBAAkB3Q,MAAK,SAAUK,EAAO+6F,GACpDx4E,EAAIw0E,SAASv2E,OAAO,CAAEjY,GAAIwyF,QAG9B7+C,iBAAkB,SAA0BpN,GAC1C,IAAIvsB,EAAMlpB,KACVy1C,EAAKnsB,IAAIrS,KAAK,kBAAkB3Q,MAAK,SAAUK,EAAO+6F,GACpDx4E,EAAIw0E,SAASn0E,QAAQm4E,OAGzB1+C,SAAU,SAAkBvN,GAC1B,IAAIvsB,EAAMlpB,KACVy1C,EAAKnsB,IAAIrS,KAAK,kBAAkB3Q,MAAK,SAAUK,EAAO+6F,GACpDx4E,EAAIw0E,SAASv2E,OAAO,CAAEjY,GAAIwyF,SAIhCz5E,MAAO,CACL05E,gBAAiB,CACf7jD,OAAQ,SAAgB71B,GACtB,IACIy5E,EAAaz5E,EAAM81B,IADb/9C,KAEN09F,SAASv2E,OAAO,CAAEjY,GAAIwyF,KAE5Bn4E,QAAS,SAAiBtB,GACxB,IACIy5E,EAAaz5E,EAAM81B,IADb/9C,KAEN09F,SAASn0E,QAAQm4E,OAMzBE,WAA2B,SAAU36E,GACvC,SAAS26E,EAAW14E,EAAKzP,QACP,IAAXA,IAAoBA,EAAS,IAElCwN,EAAgB/gB,KAAKlG,KAAMyZ,EAAQ,CAACyP,IAEpC,IAAI24E,EAAa7hG,KAEbksB,EAAW,CACb9X,KAAK,EACL0tF,UAAW,EACXC,aAAc,EACdC,YAAa,GACbC,uBAAmB9hG,EACnB+hG,sBAAkB/hG,EAClB8nE,UAAW,KACXk6B,YAAY,GAIdN,EAAWp6E,iBAAiByE,GAE5B21E,EAAWpoF,OAASyD,MAAM5U,OAAO4jB,EAAUzS,GAG3C,IAAI6P,EAAM7c,EAAEo1F,EAAWpoF,OAAOvK,IAC9B,GAAmB,IAAfoa,EAAIhoB,OAAgB,OAAOugG,EAE/B,GAAIv4E,EAAI,GAAG84E,aAAgB,OAAO94E,EAAI,GAAG84E,aAEzC94E,EAAI,GAAG84E,aAAeP,EAGtB,IAOIp1B,EAPAn3B,EAAUhsB,EAAIjlB,QAAQ,SAASgR,GAAG,GAClCkuC,EAAiBjO,EAAQr+B,KAAK,iBAAiB5B,GAAG,GAGlDgtF,EAAU/4E,EAAIrS,KAAK,oBAKrBw1D,EADEo1B,EAAWpoF,OAAO+yD,WACN//D,EAAEo1F,EAAWpoF,OAAO+yD,YAEpBljD,EAAIrS,KAAK,YAIzB,IAAIqrF,EAAiBh5E,EAAIrS,KAAK,2BAC1BsrF,EAAWj5E,EAAIrS,KAAK,qBA4BxB,SAASurF,IACHX,EAAWpoF,OAAO0oF,YACpBN,EAAWM,aAGf,SAASM,EAAS5xF,GAChBA,EAAEmmB,iBAEJ,SAAS0rE,EAAkB7xF,GACzB,IAAIlK,EAAQ8F,EAAEzM,MAAM2G,QAChB8F,EAAEoE,EAAEtI,QAAQyO,QAAQ,iCAAiC1V,QACvDmL,EAAEzM,MAAMqS,QAAQ,8BAA+B1L,GAC/Ck7F,EAAWl7E,KAAK,qDAAsDk7E,EAAY7hG,KAAM2G,KAExF8F,EAAEzM,MAAMqS,QAAQ,6BAA8B1L,GAC9Ck7F,EAAWl7E,KAAK,mDAAoDk7E,EAAY7hG,KAAM2G,IAG1F,SAASg8F,IACPd,EAAWn0B,kBACXm0B,EAAWv4E,IAAIjX,QAAQ,qBACvBwvF,EAAWl7E,KAAK,iCAAkCk7E,GAEpD,SAASe,IACPf,EAAWgB,YACXhB,EAAWv4E,IAAIzb,SAAS,sBACxBg0F,EAAWv4E,IAAIjX,QAAQ,oBACvBwvF,EAAWl7E,KAAK,+BAAgCk7E,GAElD,SAASiB,IACPjB,EAAWv4E,IAAIpb,YAAY,sBAC3B2zF,EAAWv4E,IAAIjX,QAAQ,mBACvBwvF,EAAWl7E,KAAK,6BAA8Bk7E,GA6BhD,OAvFIA,EAAWpoF,OAAOrF,KACpBkV,EAAIzb,SAAS,kBAGfqP,MAAM5U,OAAOu5F,EAAY,CACvBv4E,IAAKA,EACLpa,GAAIoa,EAAI,GACR+4E,QAASA,EACTU,OAAQV,EAAQ,GAChB51B,YAAaA,EACbD,WAAYC,EAAY,GACxB61B,eAAgBA,EAChBU,cAAeV,EAAe,GAC9BW,mBAAoBX,EAAel0F,SAAS,kCAC5Cm0F,SAAUA,EACVW,QAASX,EAAS,GAClBY,aAAcZ,EAASn0F,SAAS,4BAChCknC,QAASA,EACT5O,OAAQ4O,EAAQ,GAChBiO,eAAgBA,EAChBvN,cAAeuN,EACfnvC,IAAKkV,EAAIlb,SAAS,mBAAqByzF,EAAWpoF,OAAOrF,IACzD4tF,YAAa,KAuCfH,EAAWhsD,aAAe,WACxBvsB,EAAIhZ,GAAG,kBAAmBkyF,GAC1Bl5E,EAAIhZ,GAAG,SAAUmyF,GACjBn5E,EAAIhZ,GAAG,QAAS,yBAA0BoyF,GAC1Cj2B,EAAYn8D,GAAG,eAAgBqyF,GAC/Bl2B,EAAYn8D,GAAG,QAASsyF,GACxBn2B,EAAYn8D,GAAG,OAAQwyF,GACvB55E,EAAI5Y,GAAG,SAAUkyF,IAEnBX,EAAW1lC,aAAe,WACxB7yC,EAAI3X,IAAI,kBAAmB6wF,GAC3Bl5E,EAAI3X,IAAI,SAAU8wF,GAClBn5E,EAAI3X,IAAI,QAAS,yBAA0B+wF,GAC3Cj2B,EAAY96D,IAAI,eAAgBgxF,GAChCl2B,EAAY96D,IAAI,QAASixF,GACzBn2B,EAAY96D,IAAI,OAAQmxF,GACxB55E,EAAIvX,IAAI,SAAU6wF,IAKpBX,EAAWx5E,aAGXw5E,EAAWt1E,OAEJs1E,EAsOT,OAnOK56E,IAAkB26E,EAAW16E,UAAYD,GAC9C26E,EAAWn5F,UAAYvE,OAAOijB,OAAQF,GAAmBA,EAAgBxe,WACzEm5F,EAAWn5F,UAAUxE,YAAc29F,EAEnCA,EAAWn5F,UAAU6S,MAAQ,WAG3B,OAFiBtb,KACNysE,YAAYnxD,QADNtb,MAKnB4hG,EAAWn5F,UAAUsB,KAAO,WAG1B,OAFiB/J,KACNysE,YAAY1iE,OADN/J,MAKnB4hG,EAAWn5F,UAAUmzF,MAAQ,WAG3B,OAFiB57F,KACNysE,YAAYh9D,IAAI,IAAI4C,QAAQ,UADtBrS,MAKnB4hG,EAAWn5F,UAAU4qE,SAAW,WAE9B,OADiBrzE,KACCysE,YAAYh9D,MAAMtO,QAGtCygG,EAAWn5F,UAAUypE,SAAW,SAAmBxjE,GAGjD,OAFiB1O,KACNysE,YAAYh9D,IAAIf,GAAO2D,QAAQ,UADzBrS,MAKnB4hG,EAAWn5F,UAAU26F,eAAiB,SAAyBjO,GAG7D,OAFiBn1F,KACNysE,YAAYj+D,KAAK,cAAe2mF,GAD1Bn1F,MAKnB4hG,EAAWn5F,UAAU05F,WAAa,WAChC,IACI1oF,EADazZ,KACOyZ,OACpB6P,EAFatpB,KAEIspB,IACjBlV,EAHapU,KAGIoU,IACjBkhC,EAJat1C,KAIQs1C,QACrBiO,EALavjD,KAKeujD,eAC5B8+C,EANariG,KAMQqiG,QACrB51B,EAPazsE,KAOYysE,YACzB81B,EARaviG,KAQSuiG,SACtBD,EATatiG,KASesiG,eAC5Be,EAAW/5E,EAAI,GAAG5V,aAClBu0D,EAAYxuD,EAAOwuD,UACvB,GAAI7zD,OAAY,CACd,IAAIkvF,EAAuB9hF,SAAS+hC,EAAerwC,IAAI,kBAAmB,IACtEqwF,EAAwBF,EAAW5pF,EAAOsoF,aAC9C,GAAIwB,IAA0BD,GAAwB//C,EAAejiD,OAAQ,CAC3E,IAAIkiG,EAAoBhiF,SAAS+hC,EAAerwC,IAAI,eAAgB,IAChEo+C,EAAmB/N,EAAe,GAAGlrC,aACrCorF,EAAmBlgD,EAAe,GAAG7vC,aAErCgwF,EADgBngD,EAAe,GAAGvvC,YACEs9C,EAAmBmyC,EACtDx7B,IACHA,EAAY3yB,EAAQ,GAAG5hC,aAAe8vF,EAAoBjB,EAAS9uF,cAAgB6uF,EAAe7uF,cAAgB+N,SAAS6gF,EAAQnvF,IAAI,cAAe,IAAMsO,SAAS6gF,EAAQnvF,IAAI,iBAAkB,KAErMu5D,EAAYv5D,IAAI,aAAe+0D,EAAY,MAC3C1kB,EAAerwC,IAAI,iBAAmBqwF,EAAwB,MAC1DG,GACFngD,EAAevvC,UAAUuvC,EAAe,GAAGlrC,aAAeorF,GAE5Dn6E,EAAIjX,QAAQ,yBA7BCrS,KA8BF2mB,KAAK,yCA9BH3mB,SAmCnB4hG,EAAWn5F,UAAUilE,gBAAkB,WACrC,IACIpkD,EADatpB,KACIspB,IAEjB5a,EAHa1O,KAEYysE,YACLh9D,MAAMtO,OAC1BuN,GAASA,EAAMpN,OACjBgoB,EAAIzb,SAAS,yBAEbyb,EAAIpb,YAAY,0BAIpB0zF,EAAWn5F,UAAUk7F,kBAAoB,SAA4B52F,QAChD,IAAdA,IAAuBA,EAAY,IAExC,IACIu1F,EAAiB71F,EAAG,uCAA2CM,EAAY,UAM/E,OALAu1F,EAAevsF,aAFE/V,KAEsBysE,aACvCvvD,MAAM5U,OAHWtI,KAGQ,CACvBsiG,eAAgBA,EAChBU,cAAeV,EAAe,KALftiG,MAUnB4hG,EAAWn5F,UAAUm7F,gBAAkB,SAA0B72F,QAC5C,IAAdA,IAAuBA,EAAY,IAYxC,OAViB/M,KACNsiG,eADMtiG,KACsBspB,IAAIrS,KAAK,2BACP,IAFxBjX,KAEFsiG,eAAehhG,QAFbtB,KAGJ2jG,kBAAkB52F,GAHd/M,KAKNspB,IAAIzb,SAAS,kCALP7N,KAMNijG,oBAAqB,EANfjjG,KAOFyZ,OAAO0oF,YAPLniG,KAQJmiG,aARIniG,MAanB4hG,EAAWn5F,UAAUo7F,gBAAkB,WAOrC,OANiB7jG,KACNspB,IAAIpb,YAAY,kCADVlO,KAENijG,oBAAqB,EAFfjjG,KAGFyZ,OAAO0oF,YAHLniG,KAIJmiG,aAJIniG,MASnB4hG,EAAWn5F,UAAUq7F,kBAAoB,WAOvC,OANiB9jG,KACFijG,mBADEjjG,KAEJ6jG,kBAFI7jG,KAIJ4jG,kBAJI5jG,MASnB4hG,EAAWn5F,UAAUy5F,iBAAmB,SAA2B6B,GAEjE,OADiB/jG,KACFyZ,OAAOyoF,iBADLliG,KAEGyZ,OAAOyoF,iBAAiBh8F,KAF3BlG,KAE4C+jG,GAErD,kEAAuEA,EAAa,sFAG9FnC,EAAWn5F,UAAUw5F,kBAAoB,WACvC,IACIp1F,EADAg1F,EAAa7hG,KAGf6M,EADEg1F,EAAWpoF,OAAOwoF,kBACbJ,EAAWpoF,OAAOwoF,kBAAkB/7F,KAAK27F,EAAYA,EAAWG,aAEhE,GAAMH,EAAWG,YAAYrtF,KAAI,SAAUovF,GAAc,OAAOlC,EAAWK,iBAAiB6B,MAAgB5/F,KAAK,IAEjF,IAArC09F,EAAWS,eAAehhG,OAC5BugG,EAAW8B,kBAAkB92F,GAE7Bg1F,EAAWS,eAAez1F,KAAKA,IAInC+0F,EAAWn5F,UAAUu7F,YAAc,SAAsBj3F,QACpC,IAAdA,IAAuBA,EAAY,IAExC,IACIw1F,EAAW91F,EAAG,iCAAqCM,EAAY,UAMnE,OAPiB/M,KAENspB,IAAI/T,OAAOgtF,GACtBrlF,MAAM5U,OAHWtI,KAGQ,CACvBuiG,SAAUA,EACVW,QAASX,EAAS,KALHviG,MAUnB4hG,EAAWn5F,UAAUw7F,UAAY,SAAoBl3F,QAChC,IAAdA,IAAuBA,EAAY,IAYxC,OAViB/M,KACNuiG,SADMviG,KACgBspB,IAAIrS,KAAK,qBACP,IAFlBjX,KAEFuiG,SAASjhG,QAFPtB,KAGJgkG,YAAYj3F,GAHR/M,KAKNspB,IAAIzb,SAAS,4BALP7N,KAMNmjG,cAAe,EANTnjG,KAOFyZ,OAAO0oF,YAPLniG,KAQJmiG,aARIniG,MAanB4hG,EAAWn5F,UAAUo6F,UAAY,WAO/B,OANiB7iG,KACNspB,IAAIpb,YAAY,4BADVlO,KAENmjG,cAAe,EAFTnjG,KAGFyZ,OAAO0oF,YAHLniG,KAIJmiG,aAJIniG,MASnB4hG,EAAWn5F,UAAUy7F,YAAc,WAOjC,OANiBlkG,KACFmjG,aADEnjG,KAEJ6iG,YAFI7iG,KAIJikG,YAJIjkG,MASnB4hG,EAAWn5F,UAAU8jB,KAAO,WAI1B,OAHiBvsB,KACN61C,eADM71C,KAEN0tE,kBAFM1tE,MAMnB4hG,EAAWn5F,UAAU8gB,QAAU,WACZvpB,KACN2mB,KAAK,+CADC3mB,MAAAA,KAENspB,IAAIjX,QAAQ,4BAFNrS,KAGNm8D,eAHMn8D,KAIFspB,IAAI,KAJFtpB,KAKJspB,IAAI,GAAG84E,aAAe,YALlBpiG,KAMGspB,IAAI,GAAG84E,cAE3BllF,MAAMU,YARW5d,OAWZ4hG,EAhXqB,CAiX5B36E,iBAEEk9E,aAAe,CACjB3/F,KAAM,aACNmkB,OAAQ,CACNi5E,WAAYA,YAEdz6E,OAAQ,WACInnB,KACN6hG,WAAah5E,mBAAmB,CAClCE,gBAAiB,cACjB9kB,YAAa29F,WACb14E,IAJQlpB,KAKRipB,QAAS,eACTE,WAAY,iMAAiM/nB,MAAM,QAGvNkP,GAAI,CACF2wD,gBAAiB,SAAyBz1B,GACxC,IAAItiB,EAAMlpB,KACVyM,EAAE++B,GAAOv0B,KAAK,oBAAoB3Q,MAAK,SAAUK,EAAOy9F,GACtDl7E,EAAI24E,WAAWt4E,QAAQ66E,OAG3B9wC,WAAY,SAAoB9nB,GAC9B,IAAItiB,EAAMlpB,KACVyM,EAAE++B,GAAOv0B,KAAK,oBAAoB3Q,MAAK,SAAUK,EAAOy9F,GACtDl7E,EAAI24E,WAAW16E,OAAOjK,MAAM5U,OAAO,CAAE4G,GAAIk1F,GAAgB33F,EAAE23F,GAAc90F,gBAG7EuzC,iBAAkB,SAA0BpN,GAC1C,IAAIvsB,EAAMlpB,KACVy1C,EAAKnsB,IAAIrS,KAAK,oBAAoB3Q,MAAK,SAAUK,EAAOy9F,GACtDl7E,EAAI24E,WAAWt4E,QAAQ66E,OAG3BphD,SAAU,SAAkBvN,GAC1B,IAAIvsB,EAAMlpB,KACVy1C,EAAKnsB,IAAIrS,KAAK,oBAAoB3Q,MAAK,SAAUK,EAAOy9F,GACtDl7E,EAAI24E,WAAW16E,OAAOjK,MAAM5U,OAAO,CAAE4G,GAAIk1F,GAAgB33F,EAAE23F,GAAc90F,iBAI/E2Y,MAAO,CACLo8E,kBAAmB,CACjBvmD,OAAQ,SAAgB71B,GACtB,IACIm8E,EAAen8E,EAAM81B,IADf/9C,KAEN6hG,WAAW16E,OAAOjK,MAAM5U,OAAO,CAAE4G,GAAIk1F,GAAgB33F,EAAE23F,GAAc90F,aAE3Eia,QAAS,SAAiBtB,GACxB,IACIm8E,EAAen8E,EAAM81B,IADf/9C,KAEN6hG,WAAWt4E,QAAQ66E,OAM/B,SAASE,aACP,IACItxF,EACAO,EACA+V,EAHStpB,KAGIspB,IAEftW,OADiC,IAJtBhT,KAIKyZ,OAAOzG,MAJZhT,KAKIyZ,OAAOzG,MAEdsW,EAAI,GAAGi7E,YAGfhxF,OADkC,IATvBvT,KASKyZ,OAAOlG,OATZvT,KAUKyZ,OAAOlG,OAEd+V,EAAI,GAAGsjD,aAEH,IAAV55D,GAdQhT,KAccghF,gBAA+B,IAAXztE,GAdlCvT,KAcyDwkG,eAKtExxF,EAAQA,EAAQwO,SAAS8H,EAAIpW,IAAI,gBAAiB,IAAMsO,SAAS8H,EAAIpW,IAAI,iBAAkB,IAC3FK,EAASA,EAASiO,SAAS8H,EAAIpW,IAAI,eAAgB,IAAMsO,SAAS8H,EAAIpW,IAAI,kBAAmB,IAE7FgK,MAAM5U,OAtBOtI,KAsBQ,CACnBgT,MAAOA,EACPO,OAAQA,EACR0qC,KAzBWj+C,KAyBEghF,eAAiBhuE,EAAQO,KAI1C,SAASkxF,eACP,IACIhrF,EADSzZ,KACOyZ,OAEhB8pE,EAHSvjF,KAGWujF,WACpBmhB,EAJS1kG,KAIWi+C,KACpBvyB,EALS1rB,KAKI2kG,aACbC,EANS5kG,KAMS4kG,SAClBC,EAPS7kG,KAOU8kG,SAAWrrF,EAAOqrF,QAAQnpD,QAC7CopD,EAAuBF,EARd7kG,KAQiC8kG,QAAQE,OAAO1jG,OARhDtB,KAQgEglG,OAAO1jG,OAChF0jG,EAASzhB,EAAWh5E,SAAU,IATrBvK,KASmCyZ,OAAiB,YAC7DwrF,EAAeJ,EAVN7kG,KAUyB8kG,QAAQE,OAAO1jG,OAAS0jG,EAAO1jG,OACjE4jG,EAAW,GACXC,EAAa,GACbC,EAAkB,GAEtB,SAASC,EAAgBC,GACvB,OAAK7rF,EAAO8rF,SACRD,IAAeN,EAAO1jG,OAAS,EAMrC,IAAIkkG,EAAe/rF,EAAOgsF,mBACE,mBAAjBD,IACTA,EAAe/rF,EAAOgsF,mBAAmBv/F,KAzB9BlG,OA4Bb,IAAI0lG,EAAcjsF,EAAOksF,kBACE,mBAAhBD,IACTA,EAAcjsF,EAAOksF,kBAAkBz/F,KA9B5BlG,OAiCb,IAAI4lG,EAjCS5lG,KAiCuBklG,SAAS5jG,OACzCukG,EAlCS7lG,KAkCyBklG,SAAS5jG,OAE3CwkG,EAAersF,EAAOqsF,aACtBC,GAAiBP,EACjBQ,EAAgB,EAChBr/F,EAAQ,EACZ,QAA0B,IAAf+9F,EAAX,CAaA,IAAIuB,EAaAC,EAvBwB,iBAAjBJ,GAA6BA,EAAankG,QAAQ,MAAQ,IACnEmkG,EAAgBt2F,WAAWs2F,EAAajlG,QAAQ,IAAK,KAAO,IAAO6jG,GA5CxD1kG,KA+CNmmG,aAAeL,EAGlBp6E,EAAOs5E,EAAO9xF,IAAI,CAAEkzF,WAAY,GAAIC,UAAW,KAC5CrB,EAAO9xF,IAAI,CAAEozF,YAAa,GAAIC,aAAc,KAG/C9sF,EAAO+sF,gBAAkB,IAEzBP,EADE3tF,KAAK8E,MAAM6nF,EAAexrF,EAAO+sF,mBAAqBvB,EAvD/CjlG,KAuDqEyZ,OAAO+sF,gBAC5DvB,EAEA3sF,KAAKikD,KAAK0oC,EAAexrF,EAAO+sF,iBAAmB/sF,EAAO+sF,gBAExD,SAAzB/sF,EAAOgtF,eAA2D,QAA/BhtF,EAAOitF,sBAC5CT,EAAyB3tF,KAAKC,IAAI0tF,EAAwBxsF,EAAOgtF,cAAgBhtF,EAAO+sF,mBAS5F,IAHA,IA2IIG,EA3IAH,EAAkB/sF,EAAO+sF,gBACzBI,EAAeX,EAAyBO,EACxCK,EAAiBvuF,KAAK8E,MAAM6nF,EAAexrF,EAAO+sF,iBAC7CxlG,EAAI,EAAGA,EAAIikG,EAAcjkG,GAAK,EAAG,CACxCklG,EAAY,EACZ,IAAIY,EAAQ9B,EAAO3vF,GAAGrU,GACtB,GAAIyY,EAAO+sF,gBAAkB,EAAG,CAE9B,IAAIO,OAAqB,EACrBpV,OAAS,EACTzF,OAAM,EACV,GAAmC,QAA/BzyE,EAAOitF,qBAAiCjtF,EAAOutF,eAAiB,EAAG,CACrE,IAAIv4C,EAAan2C,KAAK8E,MAAMpc,GAAKyY,EAAOutF,eAAiBvtF,EAAO+sF,kBAC5DS,EAAoBjmG,EAAIyY,EAAO+sF,gBAAkB/sF,EAAOutF,eAAiBv4C,EACzEy4C,EAAgC,IAAfz4C,EACjBh1C,EAAOutF,eACP1uF,KAAKE,IAAIF,KAAKikD,MAAM0oC,EAAex2C,EAAa+3C,EAAkB/sF,EAAOutF,gBAAkBR,GAAkB/sF,EAAOutF,gBAIxHD,GAFApV,EAAUsV,GADV/a,EAAM5zE,KAAK8E,MAAM6pF,EAAoBC,IACDA,EAAkBz4C,EAAah1C,EAAOutF,gBAE1C9a,EAAM+Z,EAA0BO,EAChEM,EACG5zF,IAAI,CACHi0F,4BAA6BJ,EAC7BK,yBAA0BL,EAC1BM,iBAAkBN,EAClBO,gBAAiBP,EACjBQ,MAAOR,QAE6B,WAA/BttF,EAAOitF,qBAEhBxa,EAAMlrF,GADN2wF,EAASr5E,KAAK8E,MAAMpc,EAAIwlG,IACJA,GAChB7U,EAASkV,GAAmBlV,IAAWkV,GAAkB3a,IAAQsa,EAAkB,KACrFta,GAAO,IACIsa,IACTta,EAAM,EACNyF,GAAU,IAKdA,EAAS3wF,GADTkrF,EAAM5zE,KAAK8E,MAAMpc,EAAI4lG,IACDA,EAEtBE,EAAM5zF,IACH,WA/GMlT,KA+GcghF,eAAiB,MAAQ,QACrC,IAARkL,GAAazyE,EAAOqsF,cAAoBrsF,EAAmB,aAAI,MAGpE,GAA6B,SAAzBqtF,EAAM5zF,IAAI,WAAd,CAEA,GAA6B,SAAzBuG,EAAOgtF,cAA0B,CACnC,IAAIe,EAAcl8F,IAAIU,iBAAiB86F,EAAM,GAAI,MAC7CW,EAAmBX,EAAM,GAAGr8F,MAAMsF,UAClC23F,EAAyBZ,EAAM,GAAGr8F,MAAMwF,gBAO5C,GANIw3F,IACFX,EAAM,GAAGr8F,MAAMsF,UAAY,QAEzB23F,IACFZ,EAAM,GAAGr8F,MAAMwF,gBAAkB,QAE/BwJ,EAAOkuF,aACTzB,EAhIOlmG,KAgIYghF,eACf8lB,EAAM3zF,YAAW,GACjB2zF,EAAMrzF,aAAY,QAGtB,GArIOzT,KAqIIghF,eAAgB,CACzB,IAAIhuE,EAAQxD,WAAWg4F,EAAYv7F,iBAAiB,UAChDizC,EAAc1vC,WAAWg4F,EAAYv7F,iBAAiB,iBACtDkzC,EAAe3vC,WAAWg4F,EAAYv7F,iBAAiB,kBACvDm6F,EAAa52F,WAAWg4F,EAAYv7F,iBAAiB,gBACrDq6F,EAAc92F,WAAWg4F,EAAYv7F,iBAAiB,iBACtD27F,EAAYJ,EAAYv7F,iBAAiB,cAE3Ci6F,EADE0B,GAA2B,eAAdA,EACH50F,EAAQozF,EAAaE,EAErBtzF,EAAQksC,EAAcC,EAAeinD,EAAaE,MAE3D,CACL,IAAI/yF,EAAS/D,WAAWg4F,EAAYv7F,iBAAiB,WACjDklD,EAAa3hD,WAAWg4F,EAAYv7F,iBAAiB,gBACrDmlD,EAAgB5hD,WAAWg4F,EAAYv7F,iBAAiB,mBACxDo6F,EAAY72F,WAAWg4F,EAAYv7F,iBAAiB,eACpDs6F,EAAe/2F,WAAWg4F,EAAYv7F,iBAAiB,kBACvD47F,EAAcL,EAAYv7F,iBAAiB,cAE7Ci6F,EADE2B,GAA+B,eAAhBA,EACLt0F,EAAS8yF,EAAYE,EAErBhzF,EAAS49C,EAAaC,EAAgBi1C,EAAYE,EAIhEkB,IACFX,EAAM,GAAGr8F,MAAMsF,UAAY03F,GAEzBC,IACFZ,EAAM,GAAGr8F,MAAMwF,gBAAkBy3F,GAE/BjuF,EAAOkuF,eAAgBzB,EAAY5tF,KAAK8E,MAAM8oF,SAElDA,GAAaxB,GAAejrF,EAAOgtF,cAAgB,GAAKX,GAAiBrsF,EAAOgtF,cAC5EhtF,EAAOkuF,eAAgBzB,EAAY5tF,KAAK8E,MAAM8oF,IAE9ClB,EAAOhkG,KA1KFhB,KA2KIghF,eACTgkB,EAAOhkG,GAAGyJ,MAAMuI,MAAQkzF,EAAY,KAEpClB,EAAOhkG,GAAGyJ,MAAM8I,OAAS2yF,EAAY,MAIvClB,EAAOhkG,KACTgkG,EAAOhkG,GAAG8mG,gBAAkB5B,GAE9Bd,EAAgB1jG,KAAKwkG,GAGjBzsF,EAAOsuF,gBACThC,EAAgBA,EAAiBG,EAAY,EAAMF,EAAgB,EAAKF,EAClD,IAAlBE,GAA6B,IAANhlG,IAAW+kG,EAAgBA,EAAiBrB,EAAa,EAAKoB,GAC/E,IAAN9kG,IAAW+kG,EAAgBA,EAAiBrB,EAAa,EAAKoB,GAC9DxtF,KAAKuJ,IAAIkkF,GAAiB,OAAYA,EAAgB,GACtDtsF,EAAOkuF,eAAgB5B,EAAgBztF,KAAK8E,MAAM2oF,IAClD,EAAUtsF,EAAOutF,gBAAmB,GAAK9B,EAASxjG,KAAKqkG,GAC3DZ,EAAWzjG,KAAKqkG,KAEZtsF,EAAOkuF,eAAgB5B,EAAgBztF,KAAK8E,MAAM2oF,KACjDp/F,EAAQ2R,KAAKE,IAlMTxY,KAkMoByZ,OAAOuuF,mBAAoBrhG,IAlM/C3G,KAkMgEyZ,OAAOutF,gBAAmB,GAAK9B,EAASxjG,KAAKqkG,GACtHZ,EAAWzjG,KAAKqkG,GAChBA,EAAgBA,EAAgBG,EAAYJ,GApMnC9lG,KAuMJmmG,aAAeD,EAAYJ,EAElCE,EAAgBE,EAEhBv/F,GAAS,GAcX,GAzNa3G,KA6MNmmG,YAAc7tF,KAAKC,IA7MbvY,KA6MwBmmG,YAAazB,GAAcgB,EAI9Dh6E,GAAOk5E,IAA+B,UAAlBnrF,EAAOwpD,QAAwC,cAAlBxpD,EAAOwpD,SACxDsgB,EAAWrwE,IAAI,CAAEF,MAlNNhT,KAkNsBmmG,YAAc1sF,EAAOqsF,aAAgB,OAEpErsF,EAAOwuF,iBApNEjoG,KAqNAghF,eAAkBuC,EAAWrwE,IAAI,CAAEF,MArNnChT,KAqNmDmmG,YAAc1sF,EAAOqsF,aAAgB,OAC5FviB,EAAWrwE,IAAI,CAAEK,OAtNbvT,KAsN8BmmG,YAAc1sF,EAAOqsF,aAAgB,QAG5ErsF,EAAO+sF,gBAAkB,IAzNhBxmG,KA0NJmmG,aAAeD,EAAYzsF,EAAOqsF,cAAgBG,EA1N9CjmG,KA2NJmmG,YAAc7tF,KAAKikD,KA3Nfv8D,KA2N2BmmG,YAAc1sF,EAAO+sF,iBAAmB/sF,EAAOqsF,aA3N1E9lG,KA4NAghF,eAAkBuC,EAAWrwE,IAAI,CAAEF,MA5NnChT,KA4NmDmmG,YAAc1sF,EAAOqsF,aAAgB,OAC5FviB,EAAWrwE,IAAI,CAAEK,OA7NbvT,KA6N8BmmG,YAAc1sF,EAAOqsF,aAAgB,OAC1ErsF,EAAOsuF,gBAAgB,CACzBpB,EAAgB,GAChB,IAAK,IAAIj3F,EAAM,EAAGA,EAAMw1F,EAAS5jG,OAAQoO,GAAO,EAAG,CACjD,IAAIw4F,EAAiBhD,EAASx1F,GAC1B+J,EAAOkuF,eAAgBO,EAAiB5vF,KAAK8E,MAAM8qF,IACnDhD,EAASx1F,GAnON1P,KAmOoBmmG,YAAcjB,EAAS,IAAMyB,EAAcjlG,KAAKwmG,GAE7EhD,EAAWyB,EAKf,IAAKltF,EAAOsuF,eAAgB,CAC1BpB,EAAgB,GAChB,IAAK,IAAIj/D,EAAM,EAAGA,EAAMw9D,EAAS5jG,OAAQomC,GAAO,EAAG,CACjD,IAAIygE,EAAmBjD,EAASx9D,GAC5BjuB,EAAOkuF,eAAgBQ,EAAmB7vF,KAAK8E,MAAM+qF,IACrDjD,EAASx9D,IA/OJ1nC,KA+OmBmmG,YAAczB,GACxCiC,EAAcjlG,KAAKymG,GAGvBjD,EAAWyB,EACPruF,KAAK8E,MApPEpd,KAoPWmmG,YAAczB,GAAcpsF,KAAK8E,MAAM8nF,EAASA,EAAS5jG,OAAS,IAAM,GAC5F4jG,EAASxjG,KArPA1B,KAqPYmmG,YAAczB,GAYvC,GATwB,IAApBQ,EAAS5jG,SAAgB4jG,EAAW,CAAC,IAEb,IAAxBzrF,EAAOqsF,eA1PE9lG,KA2PAghF,eACLt1D,EAAOs5E,EAAOtyF,OAAO2yF,GAAiBnyF,IAAI,CAAEkzF,WAAaN,EAAe,OACrEd,EAAOtyF,OAAO2yF,GAAiBnyF,IAAI,CAAEozF,YAAcR,EAAe,OAClEd,EAAOtyF,OAAO2yF,GAAiBnyF,IAAI,CAAEqzF,aAAeT,EAAe,QAG1ErsF,EAAOsuF,gBAAkBtuF,EAAO2uF,qBAAsB,CACxD,IAAIC,GAAgB,EACpBjD,EAAgBrhG,SAAQ,SAAUukG,GAChCD,IAAiBC,GAAkB7uF,EAAOqsF,aAAersF,EAAOqsF,aAAe,MAGjF,IAAIyC,IADJF,IAAiB5uF,EAAOqsF,cACMpB,EAC9BQ,EAAWA,EAASvwF,KAAI,SAAU6zF,GAChC,OAAIA,EAAO,GAAahD,EACpBgD,EAAOD,GAAkBA,GAAU7C,EAChC8C,KAIX,GAAI/uF,EAAOgvF,yBAA0B,CACnC,IAAIC,GAAkB,EAKtB,GAJAtD,EAAgBrhG,SAAQ,SAAUukG,GAChCI,IAAmBJ,GAAkB7uF,EAAOqsF,aAAersF,EAAOqsF,aAAe,OAEnF4C,IAAmBjvF,EAAOqsF,cACJpB,EAAY,CAChC,IAAIiE,IAAmBjE,EAAagE,IAAmB,EACvDxD,EAASnhG,SAAQ,SAAUykG,EAAMI,GAC/B1D,EAAS0D,GAAaJ,EAAOG,MAE/BxD,EAAWphG,SAAQ,SAAUykG,EAAMI,GACjCzD,EAAWyD,GAAaJ,EAAOG,OAKrCzrF,MAAM5U,OAhSOtI,KAgSQ,CACnBglG,OAAQA,EACRE,SAAUA,EACVC,WAAYA,EACZC,gBAAiBA,IAGfH,IAAiBF,GAvSR/kG,KAwSJ2mB,KAAK,sBAEVu+E,EAAS5jG,SAAWskG,IA1SX5lG,KA2SAyZ,OAAOovF,eA3SP7oG,KA2S+B8oG,gBA3S/B9oG,KA4SJ2mB,KAAK,yBAEVw+E,EAAW7jG,SAAWukG,GA9Sb7lG,KA+SJ2mB,KAAK,2BAGVlN,EAAOsvF,qBAAuBtvF,EAAOuvF,wBAlT5BhpG,KAmTJipG,sBAIX,SAASC,iBAAkBC,GACzB,IAGInoG,EAFAooG,EAAe,GACfC,EAAY,EAQhB,GANqB,iBAAVF,EAJEnpG,KAKJspG,cAAcH,IACF,IAAVA,GANEnpG,KAOJspG,cAPItpG,KAOiByZ,OAAO0vF,OAGD,SAVvBnpG,KAUFyZ,OAAOgtF,eAVLzmG,KAUwCyZ,OAAOgtF,cAAgB,EAC1E,GAXWzmG,KAWAyZ,OAAOsuF,eAXP/nG,KAYFupG,cAAcjjG,MAAK,SAAUK,EAAOmgG,GACzCsC,EAAa1nG,KAAKolG,WAGpB,IAAK9lG,EAAI,EAAGA,EAAIsX,KAAKikD,KAhBZv8D,KAgBwByZ,OAAOgtF,eAAgBzlG,GAAK,EAAG,CAC9D,IAAI2F,EAjBG3G,KAiBYkkD,YAAcljD,EACjC,GAAI2F,EAlBG3G,KAkBYglG,OAAO1jG,OAAU,MACpC8nG,EAAa1nG,KAnBN1B,KAmBkBglG,OAAO3vF,GAAG1O,GAAO,SAI9CyiG,EAAa1nG,KAvBF1B,KAuBcglG,OAAO3vF,GAvBrBrV,KAuB+BkkD,aAAa,IAIzD,IAAKljD,EAAI,EAAGA,EAAIooG,EAAa9nG,OAAQN,GAAK,EACxC,QAA+B,IAApBooG,EAAapoG,GAAoB,CAC1C,IAAIuS,EAAS61F,EAAapoG,GAAG0S,aAC7B21F,EAAY91F,EAAS81F,EAAY91F,EAAS81F,EAK1CA,GAnCSrpG,KAmCWujF,WAAWrwE,IAAI,SAAWm2F,EAAY,MAGhE,SAASJ,qBAGP,IAFA,IACIjE,EADShlG,KACOglG,OACXhkG,EAAI,EAAGA,EAAIgkG,EAAO1jG,OAAQN,GAAK,EACtCgkG,EAAOhkG,GAAGwoG,kBAHCxpG,KAG0BghF,eAAiBgkB,EAAOhkG,GAAGqwC,WAAa2zD,EAAOhkG,GAAGi0D,UAI3F,SAASw0C,qBAAsBt0C,QACV,IAAdA,IAAuBA,EAAan1D,MAAQA,KAAKm1D,WAAc,GAEpE,IACI17C,EADSzZ,KACOyZ,OAEhBurF,EAHShlG,KAGOglG,OAChBt5E,EAJS1rB,KAII2kG,aAEjB,GAAsB,IAAlBK,EAAO1jG,OAAX,MAC2C,IAAhC0jG,EAAO,GAAGwE,mBAPRxpG,KAOoDipG,qBAEjE,IAAIS,GAAgBv0C,EAChBzpC,IAAOg+E,EAAev0C,GAG1B6vC,EAAO92F,YAAYuL,EAAOkwF,mBAbb3pG,KAeN4pG,qBAAuB,GAfjB5pG,KAgBNupG,cAAgB,GAEvB,IAAK,IAAIvoG,EAAI,EAAGA,EAAIgkG,EAAO1jG,OAAQN,GAAK,EAAG,CACzC,IAAI8lG,EAAQ9B,EAAOhkG,GACf6oG,GACDH,GAAgBjwF,EAAOsuF,eArBf/nG,KAqBuC6vD,eAAiB,GAAMi3C,EAAM0C,oBAC1E1C,EAAMgB,gBAAkBruF,EAAOqsF,cACpC,GAAIrsF,EAAOuvF,uBAA0BvvF,EAAOsuF,gBAAkBtuF,EAAOqwF,WAAa,CAChF,IAAIC,IAAgBL,EAAe5C,EAAM0C,mBACrCQ,EAAaD,EAzBR/pG,KAyB6BolG,gBAAgBpkG,IACrC+oG,GAAe,GAAKA,EA1B5B/pG,KA0BiDi+C,KAAO,GACnD+rD,EAAa,GAAKA,GA3BvBhqG,KA2B4Ci+C,MACvC8rD,GAAe,GAAKC,GA5BzBhqG,KA4B8Ci+C,QA5B9Cj+C,KA8BAupG,cAAc7nG,KAAKolG,GA9BnB9mG,KA+BA4pG,qBAAqBloG,KAAKV,GACjCgkG,EAAO3vF,GAAGrU,GAAG6M,SAAS4L,EAAOkwF,oBAGjC7C,EAAM/tF,SAAW2S,GAAOm+E,EAAgBA,EAnC7B7pG,KAqCNupG,cAAgB98F,EArCVzM,KAqCmBupG,gBAGlC,SAASU,eAAgB90C,GAEvB,QAAyB,IAAdA,EAA2B,CACpC,IAAI+0C,EAFOlqG,KAEa2kG,cAAgB,EAAI,EAE5CxvC,EAJWn1D,MAAAA,KAImBm1D,WAJnBn1D,KAIwCm1D,UAAY+0C,GAAgB,EAEjF,IAAIzwF,EANSzZ,KAMOyZ,OAChB0wF,EAPSnqG,KAOe8vD,eAPf9vD,KAOuC6vD,eAChD92C,EARS/Y,KAQS+Y,SAClBqxF,EATSpqG,KASYoqG,YACrBC,EAVSrqG,KAUMqqG,MACfC,EAAeF,EACfG,EAASF,EACU,IAAnBF,GACFpxF,EAAW,EACXqxF,GAAc,EACdC,GAAQ,IAGRD,GADArxF,GAAYo8C,EAlBDn1D,KAkBoB6vD,gBAAkB,IACvB,EAC1Bw6C,EAAQtxF,GAAY,GAEtBmE,MAAM5U,OAtBOtI,KAsBQ,CACnB+Y,SAAUA,EACVqxF,YAAaA,EACbC,MAAOA,KAGL5wF,EAAOsvF,qBAAuBtvF,EAAOuvF,uBAA0BvvF,EAAOsuF,gBAAkBtuF,EAAOqwF,aA5BtF9pG,KA4B4GypG,qBAAqBt0C,GAE1Ii1C,IAAgBE,GA9BPtqG,KA+BJ2mB,KAAK,yBAEV0jF,IAAUE,GAjCDvqG,KAkCJ2mB,KAAK,oBAET2jF,IAAiBF,GAAiBG,IAAWF,IApCrCrqG,KAqCJ2mB,KAAK,YArCD3mB,KAwCN2mB,KAAK,WAAY5N,GAG1B,SAASyxF,sBACP,IAWIC,EATAzF,EAFShlG,KAEOglG,OAChBvrF,EAHSzZ,KAGOyZ,OAChB8pE,EAJSvjF,KAIWujF,WACpBr/B,EALSlkD,KAKYkkD,YACrBwmD,EANS1qG,KAMU0qG,UACnB7F,EAPS7kG,KAOU8kG,SAAWrrF,EAAOqrF,QAAQnpD,QAEjDqpD,EAAO92F,YAAcuL,EAAuB,iBAAI,IAAOA,EAAqB,eAAI,IAAOA,EAAqB,eAAI,IAAOA,EAAgC,0BAAI,IAAOA,EAA8B,wBAAI,IAAOA,EAA8B,0BAIvOgxF,EADE5F,EAZS7kG,KAaUujF,WAAWtsE,KAAM,IAAOwC,EAAiB,WAAI,6BAAgCyqC,EAAc,MAElG8gD,EAAO3vF,GAAG6uC,IAIdr2C,SAAS4L,EAAOkxF,kBAExBlxF,EAAOilD,OAEL+rC,EAAYr8F,SAASqL,EAAOmxF,qBAC9BrnB,EACGh5E,SAAU,IAAOkP,EAAiB,WAAI,SAAYA,EAA0B,oBAAI,8BAAiCixF,EAAY,MAC7H78F,SAAS4L,EAAOoxF,2BAEnBtnB,EACGh5E,SAAU,IAAOkP,EAAiB,WAAI,IAAOA,EAA0B,oBAAI,6BAAgCixF,EAAY,MACvH78F,SAAS4L,EAAOoxF,4BAIvB,IAAIC,EAAYL,EAAYh0F,QAAS,IAAOgD,EAAiB,YAAIpE,GAAG,GAAGxH,SAAS4L,EAAOsxF,gBACnFtxF,EAAOilD,MAA6B,IAArBosC,EAAUxpG,SAC3BwpG,EAAY9F,EAAO3vF,GAAG,IACZxH,SAAS4L,EAAOsxF,gBAG5B,IAAIC,EAAYP,EAAY5zF,QAAS,IAAO4C,EAAiB,YAAIpE,GAAG,GAAGxH,SAAS4L,EAAOwxF,gBACnFxxF,EAAOilD,MAA6B,IAArBssC,EAAU1pG,SAC3B0pG,EAAYhG,EAAO3vF,IAAI,IACbxH,SAAS4L,EAAOwxF,gBAExBxxF,EAAOilD,OAELosC,EAAU18F,SAASqL,EAAOmxF,qBAC5BrnB,EACGh5E,SAAU,IAAOkP,EAAiB,WAAI,SAAYA,EAA0B,oBAAI,8BAAkCqxF,EAAUt8F,KAAK,2BAA8B,MAC/JX,SAAS4L,EAAOyxF,yBAEnB3nB,EACGh5E,SAAU,IAAOkP,EAAiB,WAAI,IAAOA,EAA0B,oBAAI,6BAAiCqxF,EAAUt8F,KAAK,2BAA8B,MACzJX,SAAS4L,EAAOyxF,yBAEjBF,EAAU58F,SAASqL,EAAOmxF,qBAC5BrnB,EACGh5E,SAAU,IAAOkP,EAAiB,WAAI,SAAYA,EAA0B,oBAAI,8BAAkCuxF,EAAUx8F,KAAK,2BAA8B,MAC/JX,SAAS4L,EAAO0xF,yBAEnB5nB,EACGh5E,SAAU,IAAOkP,EAAiB,WAAI,IAAOA,EAA0B,oBAAI,6BAAiCuxF,EAAUx8F,KAAK,2BAA8B,MACzJX,SAAS4L,EAAO0xF,0BAKzB,SAASC,kBAAmBnb,GAC1B,IASI2Y,EARAzzC,EADSn1D,KACU2kG,aADV3kG,KACgCm1D,WADhCn1D,KACoDm1D,UAC7DgwC,EAFSnlG,KAEWmlG,WACpBD,EAHSllG,KAGSklG,SAClBzrF,EAJSzZ,KAIOyZ,OAChBymD,EALSlgE,KAKckkD,YACvBmnD,EANSrrG,KAMkB0qG,UAC3BY,EAPStrG,KAOkB4oG,UAC3B1kD,EAAc+rC,EAElB,QAA2B,IAAhB/rC,EAA6B,CACtC,IAAK,IAAIljD,EAAI,EAAGA,EAAImkG,EAAW7jG,OAAQN,GAAK,OACT,IAAtBmkG,EAAWnkG,EAAI,GACpBm0D,GAAagwC,EAAWnkG,IAAMm0D,EAAYgwC,EAAWnkG,EAAI,IAAOmkG,EAAWnkG,EAAI,GAAKmkG,EAAWnkG,IAAM,EACvGkjD,EAAcljD,EACLm0D,GAAagwC,EAAWnkG,IAAMm0D,EAAYgwC,EAAWnkG,EAAI,KAClEkjD,EAAcljD,EAAI,GAEXm0D,GAAagwC,EAAWnkG,KACjCkjD,EAAcljD,GAIdyY,EAAO8xF,sBACLrnD,EAAc,QAA4B,IAAhBA,KAA+BA,EAAc,GAG/E,GAAIghD,EAASvjG,QAAQwzD,IAAc,EACjCyzC,EAAY1D,EAASvjG,QAAQwzD,OACxB,CACL,IAAIq2C,EAAOlzF,KAAKE,IAAIiB,EAAOuuF,mBAAoB9jD,GAC/C0kD,EAAY4C,EAAOlzF,KAAK8E,OAAO8mC,EAAcsnD,GAAQ/xF,EAAOutF,gBAG9D,GADI4B,GAAa1D,EAAS5jG,SAAUsnG,EAAY1D,EAAS5jG,OAAS,GAC9D4iD,IAAgBgc,EAApB,CASA,IAAIwqC,EAAYlpF,SA3CHxhB,KA2CmBglG,OAAO3vF,GAAG6uC,GAAa11C,KAAK,4BAA8B01C,EAAa,IAEvGhnC,MAAM5U,OA7COtI,KA6CQ,CACnB4oG,UAAWA,EACX8B,UAAWA,EACXxqC,cAAeA,EACfhc,YAAaA,IAjDFlkD,KAmDN2mB,KAAK,qBAnDC3mB,KAoDN2mB,KAAK,mBACR0kF,IAAsBX,GArDb1qG,KAsDJ2mB,KAAK,oBAtDD3mB,KAwDFuuB,aAxDEvuB,KAwDoByZ,OAAOgyF,qBAxD3BzrG,KAyDJ2mB,KAAK,oBAtBRiiF,IAAc0C,IAnCPtrG,KAoCF4oG,UAAYA,EApCV5oG,KAqCF2mB,KAAK,oBAwBlB,SAAS+kF,mBAAoB76F,GAC3B,IACI4I,EADSzZ,KACOyZ,OAChBqtF,EAAQr6F,EAAEoE,EAAEtI,QAAQyO,QAAS,IAAOyC,EAAiB,YAAI,GACzDkyF,GAAa,EACjB,GAAI7E,EACF,IAAK,IAAI9lG,EAAI,EAAGA,EALLhB,KAKgBglG,OAAO1jG,OAAQN,GAAK,EALpChB,KAMEglG,OAAOhkG,KAAO8lG,IAAS6E,GAAa,GAInD,IAAI7E,IAAS6E,EAUX,OApBW3rG,KAkBJ4rG,kBAAezrG,OAlBXH,KAmBJ6rG,kBAAe1rG,GAnBXH,KAWJ4rG,aAAe9E,EAXX9mG,KAYA8kG,SAZA9kG,KAYkByZ,OAAOqrF,QAAQnpD,QAZjC37C,KAaF6rG,aAAerqF,SAAS/U,EAAEq6F,GAAOt4F,KAAK,2BAA4B,IAbhExO,KAeF6rG,aAAep/F,EAAEq6F,GAAOngG,QAO/B8S,EAAOqyF,0BAA+C3rG,IAtB7CH,KAsB4B6rG,cAtB5B7rG,KAsBiE6rG,eAtBjE7rG,KAsByFkkD,aAtBzFlkD,KAuBJ8rG,sBAIX,IAAIh4C,OAAS,CACXwwC,WAAYA,WACZG,aAAcA,aACdyE,iBAAkBA,iBAClBD,mBAAoBA,mBACpBQ,qBAAsBA,qBACtBQ,eAAgBA,eAChBO,oBAAqBA,oBACrBY,kBAAmBA,kBACnBM,mBAAoBA,oBAGtB,SAAShtF,aAAcC,QACP,IAATA,IAAkBA,EAAO3e,KAAKghF,eAAiB,IAAM,KAE1D,IAEIvnE,EAFSzZ,KAEOyZ,OAChBiS,EAHS1rB,KAGI2kG,aACbxvC,EAJSn1D,KAIUm1D,UACnBouB,EALSvjF,KAKWujF,WAExB,GAAI9pE,EAAOsyF,iBACT,OAAOrgF,GAAOypC,EAAYA,EAE5B,GAAI17C,EAAO8rF,QACT,OAAOpwC,EAGT,IAAIxF,EAAmBzyC,MAAMwB,aAAa6kE,EAAW,GAAI5kE,GAGzD,OAFI+M,IAAOikC,GAAoBA,GAExBA,GAAoB,EAG7B,SAASq8C,aAAc72C,EAAW82C,GAChC,IACIvgF,EADS1rB,KACI2kG,aACblrF,EAFSzZ,KAEOyZ,OAChB8pE,EAHSvjF,KAGWujF,WACpB2oB,EAJSlsG,KAIUksG,UACnBnzF,EALS/Y,KAKS+Y,SAClBoJ,EAAI,EACJ2S,EAAI,EAPK90B,KAUFghF,eACT7+D,EAAIuJ,GAAOypC,EAAYA,EAEvBrgC,EAAIqgC,EAGF17C,EAAOkuF,eACTxlF,EAAI7J,KAAK8E,MAAM+E,GACf2S,EAAIxc,KAAK8E,MAAM0X,IAGbrb,EAAO8rF,QACT2G,EAtBWlsG,KAsBMghF,eAAiB,aAAe,aAtBtChhF,KAsB4DghF,gBAAkB7+D,GAAK2S,EACpFrb,EAAOsyF,kBACjBxoB,EAAWxzE,UAAW,eAAiBoS,EAAI,OAAS2S,EAA/B,YAxBV90B,KA0BNmsG,kBA1BMnsG,KA0BqBm1D,UA1BrBn1D,KA2BNm1D,UA3BMn1D,KA2BaghF,eAAiB7+D,EAAI2S,EAI/C,IAAIq1E,EA/BSnqG,KA+Be8vD,eA/Bf9vD,KA+BuC6vD,gBAC7B,IAAnBs6C,EACY,GAECh1C,EAnCJn1D,KAmCuB6vD,gBAAkB,KAElC92C,GArCP/Y,KAsCJiqG,eAAe90C,GAtCXn1D,KAyCN2mB,KAAK,eAzCC3mB,KAyCsBm1D,UAAW82C,GAGhD,SAASp8C,eACP,OAAS7vD,KAAKklG,SAAS,GAGzB,SAASp1C,eACP,OAAS9vD,KAAKklG,SAASllG,KAAKklG,SAAS5jG,OAAS,GAGhD,SAAS8qG,YAAaj3C,EAAWg0C,EAAOkD,EAAcC,EAAiBnQ,GACrE,IAAI9zF,OAEe,IAAd8sD,IAAuBA,EAAY,QACzB,IAAVg0C,IAAmBA,EAAQnpG,KAAKyZ,OAAO0vF,YACtB,IAAjBkD,IAA0BA,GAAe,QACrB,IAApBC,IAA6BA,GAAkB,GACpD,IAAIzqC,EAAS7hE,KAETyZ,EAASooD,EAAOpoD,OAChByyF,EAAYrqC,EAAOqqC,UAEvB,GAAIrqC,EAAOloD,WAAaF,EAAO8yF,+BAC7B,OAAO,EAGT,IAEIx0C,EAFAlI,EAAegS,EAAOhS,eACtBC,EAAe+R,EAAO/R,eAS1B,GAPmDiI,EAA/Cu0C,GAAmBn3C,EAAYtF,EAA+BA,EACzDy8C,GAAmBn3C,EAAYrF,EAA+BA,EACjDqF,EAGtB0M,EAAOooC,eAAelyC,GAElBt+C,EAAO8rF,QAAS,CAClB,IAAI18B,EAAMhH,EAAOmf,eAWjB,OAVc,IAAVmoB,EACF+C,EAAUrjC,EAAM,aAAe,cAAgB9Q,EAG3Cm0C,EAAUv0F,SACZu0F,EAAUv0F,WAAWtP,EAAM,IAAQwgE,EAAM,OAAS,QAAU9Q,EAAc1vD,EAAImkG,SAAW,SAAUnkG,IAEnG6jG,EAAUrjC,EAAM,aAAe,cAAgB9Q,GAG5C,EAqCT,OAlCc,IAAVoxC,GACFtnC,EAAOynC,cAAc,GACrBznC,EAAOmqC,aAAaj0C,GAChBs0C,IACFxqC,EAAOl7C,KAAK,wBAAyBwiF,EAAOhN,GAC5Ct6B,EAAOl7C,KAAK,oBAGdk7C,EAAOynC,cAAcH,GACrBtnC,EAAOmqC,aAAaj0C,GAChBs0C,IACFxqC,EAAOl7C,KAAK,wBAAyBwiF,EAAOhN,GAC5Ct6B,EAAOl7C,KAAK,oBAETk7C,EAAOloD,YACVkoD,EAAOloD,WAAY,EACdkoD,EAAO4qC,oCACV5qC,EAAO4qC,kCAAoC,SAAuB57F,GAC3DgxD,IAAUA,EAAOlb,WAClB91C,EAAEtI,SAAWvI,OACjB6hE,EAAO0hB,WAAW,GAAG15E,oBAAoB,gBAAiBg4D,EAAO4qC,mCACjE5qC,EAAO0hB,WAAW,GAAG15E,oBAAoB,sBAAuBg4D,EAAO4qC,mCACvE5qC,EAAO4qC,kCAAoC,YACpC5qC,EAAO4qC,kCACVJ,GACFxqC,EAAOl7C,KAAK,oBAIlBk7C,EAAO0hB,WAAW,GAAG35E,iBAAiB,gBAAiBi4D,EAAO4qC,mCAC9D5qC,EAAO0hB,WAAW,GAAG35E,iBAAiB,sBAAuBi4D,EAAO4qC,sCAIjE,EAGT,IAAIt3C,UAAY,CACdz2C,aAAcA,aACdstF,aAAcA,aACdn8C,aAAcA,aACdC,aAAcA,aACds8C,YAAaA,aAGf,SAAS9C,cAAen5F,EAAU87F,GACnBjsG,KAEDyZ,OAAO8rF,SAFNvlG,KAGJujF,WAAWrzE,WAAWC,GAHlBnQ,KAMN2mB,KAAK,gBAAiBxW,EAAU87F,GAGzC,SAASS,gBAAiBL,EAAchpE,QAChB,IAAjBgpE,IAA0BA,GAAe,GAE9C,IACInoD,EADSlkD,KACYkkD,YACrBzqC,EAFSzZ,KAEOyZ,OAChBymD,EAHSlgE,KAGckgE,cAC3B,IAAIzmD,EAAO8rF,QAAX,CACI9rF,EAAOqwF,YALE9pG,KAMJkpG,mBAGT,IAAI3f,EAAMlmD,EASV,GARKkmD,IACgCA,EAA/BrlC,EAAcgc,EAAuB,OAChChc,EAAcgc,EAAuB,OACjC,SAbFlgE,KAgBN2mB,KAAK,mBAER0lF,GAAgBnoD,IAAgBgc,EAAe,CACjD,GAAY,UAARqpB,EAEF,YArBSvpF,KAoBF2mB,KAAK,6BApBH3mB,KAuBJ2mB,KAAK,8BACA,SAAR4iE,EAxBOvpF,KAyBF2mB,KAAK,4BAzBH3mB,KA2BF2mB,KAAK,8BAKlB,SAASgmF,gBAAiBN,EAAchpE,QAChB,IAAjBgpE,IAA0BA,GAAe,GAE9C,IACInoD,EADSlkD,KACYkkD,YACrBgc,EAFSlgE,KAEckgE,cACvBzmD,EAHSzZ,KAGOyZ,OAEpB,GALazZ,KAIN2Z,WAAY,GACfF,EAAO8rF,QAAX,CALavlG,KAMNspG,cAAc,GAErB,IAAI/f,EAAMlmD,EASV,GARKkmD,IACgCA,EAA/BrlC,EAAcgc,EAAuB,OAChChc,EAAcgc,EAAuB,OACjC,SAZFlgE,KAeN2mB,KAAK,iBAER0lF,GAAgBnoD,IAAgBgc,EAAe,CACjD,GAAY,UAARqpB,EAEF,YApBSvpF,KAmBF2mB,KAAK,2BAnBH3mB,KAsBJ2mB,KAAK,4BACA,SAAR4iE,EAvBOvpF,KAwBF2mB,KAAK,0BAxBH3mB,KA0BF2mB,KAAK,4BAKlB,IAAIimF,aAAe,CACjBtD,cAAeA,cACfoD,gBAAiBA,gBACjB75F,cAAe85F,iBAGjB,SAAS5qC,QAASp7D,EAAOwiG,EAAOkD,EAAclQ,GAC5C,IAAI9zF,OAEW,IAAV1B,IAAmBA,EAAQ,QACjB,IAAVwiG,IAAmBA,EAAQnpG,KAAKyZ,OAAO0vF,YACtB,IAAjBkD,IAA0BA,GAAe,GAC9C,IAAIxqC,EAAS7hE,KACTslG,EAAa3+F,EACb2+F,EAAa,IAAKA,EAAa,GAEnC,IAAI7rF,EAASooD,EAAOpoD,OAChByrF,EAAWrjC,EAAOqjC,SAClBC,EAAatjC,EAAOsjC,WACpBjlC,EAAgB2B,EAAO3B,cACvBhc,EAAc2d,EAAO3d,YACrBx4B,EAAMm2C,EAAO8iC,aACbuH,EAAYrqC,EAAOqqC,UACvB,GAAIrqC,EAAOloD,WAAaF,EAAO8yF,+BAC7B,OAAO,EAGT,IAAIf,EAAOlzF,KAAKE,IAAIqpD,EAAOpoD,OAAOuuF,mBAAoB1C,GAClDsD,EAAY4C,EAAOlzF,KAAK8E,OAAOkoF,EAAakG,GAAQ3pC,EAAOpoD,OAAOutF,gBAClE4B,GAAa1D,EAAS5jG,SAAUsnG,EAAY1D,EAAS5jG,OAAS,IAE7D4iD,GAAezqC,EAAOozF,cAAgB,MAAQ3sC,GAAiB,IAAMmsC,GACxExqC,EAAOl7C,KAAK,0BAGd,IAuBI0c,EAvBA8xB,GAAa+vC,EAAS0D,GAM1B,GAHA/mC,EAAOooC,eAAe90C,GAGlB17C,EAAO8xF,oBACT,IAAK,IAAIvqG,EAAI,EAAGA,EAAImkG,EAAW7jG,OAAQN,GAAK,GACrCsX,KAAK8E,MAAkB,IAAZ+3C,IAAoB78C,KAAK8E,MAAsB,IAAhB+nF,EAAWnkG,MACxDskG,EAAatkG,GAKnB,GAAI6gE,EAAOtzC,aAAe+2E,IAAephD,EAAa,CACpD,IAAK2d,EAAOirC,gBAAkB33C,EAAY0M,EAAO1M,WAAaA,EAAY0M,EAAOhS,eAC/E,OAAO,EAET,IAAKgS,EAAOkrC,gBAAkB53C,EAAY0M,EAAO1M,WAAaA,EAAY0M,EAAO/R,iBAC1E5L,GAAe,KAAOohD,EAAc,OAAO,EAWpD,GANgCjiE,EAA5BiiE,EAAaphD,EAA2B,OACnCohD,EAAaphD,EAA2B,OAC9B,QAIdx4B,IAAQypC,IAAc0M,EAAO1M,YAAgBzpC,GAAOypC,IAAc0M,EAAO1M,UAc5E,OAbA0M,EAAOupC,kBAAkB9F,GAErB7rF,EAAOqwF,YACTjoC,EAAOqnC,mBAETrnC,EAAO2oC,sBACe,UAAlB/wF,EAAOwpD,QACTpB,EAAOmqC,aAAa72C,GAEJ,UAAd9xB,IACFw+B,EAAO6qC,gBAAgBL,EAAchpE,GACrCw+B,EAAOhvD,cAAcw5F,EAAchpE,KAE9B,EAET,GAAI5pB,EAAO8rF,QAAS,CAClB,IAAI18B,EAAMhH,EAAOmf,eACbt4E,GAAKysD,EAcT,OAbIzpC,IACFhjB,EAAIwjG,EAAUzzF,YAAcyzF,EAAU54F,YAAc5K,GAExC,IAAVygG,EACF+C,EAAUrjC,EAAM,aAAe,aAAengE,EAG1CwjG,EAAUv0F,SACZu0F,EAAUv0F,WAAWtP,EAAM,IAAQwgE,EAAM,OAAS,OAASngE,EAAGL,EAAImkG,SAAW,SAAUnkG,IAEvF6jG,EAAUrjC,EAAM,aAAe,aAAengE,GAG3C,EAoCT,OAjCc,IAAVygG,GACFtnC,EAAOynC,cAAc,GACrBznC,EAAOmqC,aAAa72C,GACpB0M,EAAOupC,kBAAkB9F,GACzBzjC,EAAO2oC,sBACP3oC,EAAOl7C,KAAK,wBAAyBwiF,EAAOhN,GAC5Ct6B,EAAO6qC,gBAAgBL,EAAchpE,GACrCw+B,EAAOhvD,cAAcw5F,EAAchpE,KAEnCw+B,EAAOynC,cAAcH,GACrBtnC,EAAOmqC,aAAa72C,GACpB0M,EAAOupC,kBAAkB9F,GACzBzjC,EAAO2oC,sBACP3oC,EAAOl7C,KAAK,wBAAyBwiF,EAAOhN,GAC5Ct6B,EAAO6qC,gBAAgBL,EAAchpE,GAChCw+B,EAAOloD,YACVkoD,EAAOloD,WAAY,EACdkoD,EAAOmrC,gCACVnrC,EAAOmrC,8BAAgC,SAAuBn8F,GACvDgxD,IAAUA,EAAOlb,WAClB91C,EAAEtI,SAAWvI,OACjB6hE,EAAO0hB,WAAW,GAAG15E,oBAAoB,gBAAiBg4D,EAAOmrC,+BACjEnrC,EAAO0hB,WAAW,GAAG15E,oBAAoB,sBAAuBg4D,EAAOmrC,+BACvEnrC,EAAOmrC,8BAAgC,YAChCnrC,EAAOmrC,8BACdnrC,EAAOhvD,cAAcw5F,EAAchpE,MAGvCw+B,EAAO0hB,WAAW,GAAG35E,iBAAiB,gBAAiBi4D,EAAOmrC,+BAC9DnrC,EAAO0hB,WAAW,GAAG35E,iBAAiB,sBAAuBi4D,EAAOmrC,kCAIjE,EAGT,SAASC,YAAatmG,EAAOwiG,EAAOkD,EAAclQ,QACjC,IAAVx1F,IAAmBA,EAAQ,QACjB,IAAVwiG,IAAmBA,EAAQnpG,KAAKyZ,OAAO0vF,YACtB,IAAjBkD,IAA0BA,GAAe,GAE9C,IACIa,EAAWvmG,EAKf,OANa3G,KAEFyZ,OAAOilD,OAChBwuC,GAHWltG,KAGQmtG,cAHRntG,KAMC+hE,QAAQmrC,EAAU/D,EAAOkD,EAAclQ,GAIvD,SAASiR,UAAWjE,EAAOkD,EAAclQ,QACxB,IAAVgN,IAAmBA,EAAQnpG,KAAKyZ,OAAO0vF,YACtB,IAAjBkD,IAA0BA,GAAe,GAE9C,IACI5yF,EADSzZ,KACOyZ,OAChBE,EAFS3Z,KAEU2Z,UACnBy8D,EAHSp2E,KAGUkkD,YAAczqC,EAAOuuF,mBAAqB,EAAIvuF,EAAOutF,eAC5E,GAAIvtF,EAAOilD,KAAM,CACf,GAAI/kD,EAAa,OAAO,EALb3Z,KAMJqtG,UANIrtG,KAQJs+B,YARIt+B,KAQiBujF,WAAW,GAAGxvE,WAE5C,OAVa/T,KAUC+hE,QAVD/hE,KAUgBkkD,YAAckyB,EAAW+yB,EAAOkD,EAAclQ,GAI7E,SAASmR,UAAWnE,EAAOkD,EAAclQ,QACxB,IAAVgN,IAAmBA,EAAQnpG,KAAKyZ,OAAO0vF,YACtB,IAAjBkD,IAA0BA,GAAe,GAE9C,IACI5yF,EADSzZ,KACOyZ,OAChBE,EAFS3Z,KAEU2Z,UACnBurF,EAHSllG,KAGSklG,SAClBC,EAJSnlG,KAIWmlG,WACpBR,EALS3kG,KAKa2kG,aAE1B,GAAIlrF,EAAOilD,KAAM,CACf,GAAI/kD,EAAa,OAAO,EARb3Z,KASJqtG,UATIrtG,KAWJs+B,YAXIt+B,KAWiBujF,WAAW,GAAGxvE,WAG5C,SAASw5F,EAAU99F,GACjB,OAAIA,EAAM,GAAa6I,KAAK8E,MAAM9E,KAAKuJ,IAAIpS,IACpC6I,KAAK8E,MAAM3N,GAEpB,IAWIgvD,EAXA+uC,EAAsBD,EALV5I,EAbH3kG,KAayBm1D,WAbzBn1D,KAa6Cm1D,WAMtDs4C,EAAqBvI,EAASvwF,KAAI,SAAUlF,GAAO,OAAO89F,EAAU99F,MAIpEi+F,GAHuBvI,EAAWxwF,KAAI,SAAUlF,GAAO,OAAO89F,EAAU99F,MAE1Dy1F,EAASuI,EAAmB9rG,QAAQ6rG,IACvCtI,EAASuI,EAAmB9rG,QAAQ6rG,GAAuB,IAW1E,YAVwB,IAAbE,GAA4Bj0F,EAAO8rF,SAC5CL,EAASnhG,SAAQ,SAAUykG,IACpBkF,GAAYF,GAAuBhF,IAAQkF,EAAWlF,WAIvC,IAAbkF,IACTjvC,EAAY0mC,EAAWxjG,QAAQ+rG,IACf,IAAKjvC,EAhCVz+D,KAgC6BkkD,YAAc,GAhC3ClkD,KAkCC+hE,QAAQtD,EAAW0qC,EAAOkD,EAAclQ,GAIxD,SAASwR,WAAYxE,EAAOkD,EAAclQ,QACzB,IAAVgN,IAAmBA,EAAQnpG,KAAKyZ,OAAO0vF,YACtB,IAAjBkD,IAA0BA,GAAe,GAG9C,OADarsG,KACC+hE,QADD/hE,KACgBkkD,YAAailD,EAAOkD,EAAclQ,GAIjE,SAASyR,eAAgBzE,EAAOkD,EAAclQ,EAAUx4B,QACvC,IAAVwlC,IAAmBA,EAAQnpG,KAAKyZ,OAAO0vF,YACtB,IAAjBkD,IAA0BA,GAAe,QAC3B,IAAd1oC,IAAuBA,EAAY,IAExC,IACIh9D,EADS3G,KACMkkD,YACfsnD,EAAOlzF,KAAKE,IAFHxY,KAEcyZ,OAAOuuF,mBAAoBrhG,GAClDiiG,EAAY4C,EAAOlzF,KAAK8E,OAAOzW,EAAQ6kG,GAH9BxrG,KAG6CyZ,OAAOutF,gBAE7D7xC,EALSn1D,KAKU2kG,aALV3kG,KAKgCm1D,WALhCn1D,KAKoDm1D,UAEjE,GAAIA,GAPSn1D,KAOWklG,SAAS0D,GAAY,CAG3C,IAAIiF,EAVO7tG,KAUcklG,SAAS0D,GAE7BzzC,EAAY04C,GAZN7tG,KAWWklG,SAAS0D,EAAY,GACCiF,GAAelqC,IACzDh9D,GAbS3G,KAaOyZ,OAAOutF,oBAEpB,CAGL,IAAI0G,EAlBO1tG,KAkBWklG,SAAS0D,EAAY,GAEtCzzC,EAAYu4C,IApBN1tG,KAmBgBklG,SAAS0D,GACW8E,GAAY/pC,IACzDh9D,GArBS3G,KAqBOyZ,OAAOutF,gBAM3B,OAHArgG,EAAQ2R,KAAKC,IAAI5R,EAAO,GACxBA,EAAQ2R,KAAKE,IAAI7R,EAzBJ3G,KAyBkBmlG,WAAW7jG,OAAS,GAzBtCtB,KA2BC+hE,QAAQp7D,EAAOwiG,EAAOkD,EAAclQ,GAGpD,SAAS2P,sBACP,IAMIpB,EANA7oC,EAAS7hE,KACTyZ,EAASooD,EAAOpoD,OAChB8pE,EAAa1hB,EAAO0hB,WAEpBkjB,EAAyC,SAAzBhtF,EAAOgtF,cAA2B5kC,EAAOisC,uBAAyBr0F,EAAOgtF,cACzFsH,EAAelsC,EAAOgqC,aAE1B,GAAIpyF,EAAOilD,KAAM,CACf,GAAImD,EAAOloD,UAAa,OACxB+wF,EAAYlpF,SAAS/U,EAAEo1D,EAAO+pC,cAAcp9F,KAAK,2BAA4B,IACzEiL,EAAOsuF,eAENgG,EAAelsC,EAAOsrC,aAAgB1G,EAAgB,GACnDsH,EAAgBlsC,EAAOmjC,OAAO1jG,OAASugE,EAAOsrC,aAAiB1G,EAAgB,GAEnF5kC,EAAOwrC,UACPU,EAAexqB,EACZh5E,SAAU,IAAOkP,EAAiB,WAAI,6BAAgCixF,EAAY,WAAejxF,EAA0B,oBAAI,KAC/HpE,GAAG,GACH1O,QAEHuW,MAAMW,UAAS,WACbgkD,EAAOE,QAAQgsC,OAGjBlsC,EAAOE,QAAQgsC,GAERA,EAAelsC,EAAOmjC,OAAO1jG,OAASmlG,GAC/C5kC,EAAOwrC,UACPU,EAAexqB,EACZh5E,SAAU,IAAOkP,EAAiB,WAAI,6BAAgCixF,EAAY,WAAejxF,EAA0B,oBAAI,KAC/HpE,GAAG,GACH1O,QAEHuW,MAAMW,UAAS,WACbgkD,EAAOE,QAAQgsC,OAGjBlsC,EAAOE,QAAQgsC,QAGjBlsC,EAAOE,QAAQgsC,GAInB,IAAIjH,MAAQ,CACV/kC,QAASA,QACTkrC,YAAaA,YACbG,UAAWA,UACXE,UAAWA,UACXK,WAAYA,WACZC,eAAgBA,eAChB9B,oBAAqBA,qBAGvB,SAASkC,aACP,IAAInsC,EAAS7hE,KACTyZ,EAASooD,EAAOpoD,OAChB8pE,EAAa1hB,EAAO0hB,WAExBA,EAAWh5E,SAAU,IAAOkP,EAAiB,WAAI,IAAOA,EAA0B,qBAAItL,SAEtF,IAAI62F,EAASzhB,EAAWh5E,SAAU,IAAOkP,EAAiB,YAE1D,GAAIA,EAAOw0F,uBAAwB,CACjC,IAAIC,EAAiBz0F,EAAOutF,eAAkBhC,EAAO1jG,OAASmY,EAAOutF,eACrE,GAAIkH,IAAmBz0F,EAAOutF,eAAgB,CAC5C,IAAK,IAAIhmG,EAAI,EAAGA,EAAIktG,EAAgBltG,GAAK,EAAG,CAC1C,IAAImtG,EAAY1hG,EAAEjD,IAAIc,cAAc,QAAQuD,SAAW4L,EAAiB,WAAI,IAAOA,EAAsB,iBACzG8pE,EAAWhuE,OAAO44F,GAEpBnJ,EAASzhB,EAAWh5E,SAAU,IAAOkP,EAAiB,aAI7B,SAAzBA,EAAOgtF,eAA6BhtF,EAAO0zF,eAAgB1zF,EAAO0zF,aAAenI,EAAO1jG,QAE5FugE,EAAOsrC,aAAe70F,KAAKikD,KAAK/sD,WAAWiK,EAAO0zF,cAAgB1zF,EAAOgtF,cAAe,KACxF5kC,EAAOsrC,cAAgB1zF,EAAO20F,qBAC1BvsC,EAAOsrC,aAAenI,EAAO1jG,SAC/BugE,EAAOsrC,aAAenI,EAAO1jG,QAG/B,IAAI+sG,EAAgB,GAChBC,EAAe,GACnBtJ,EAAO1+F,MAAK,SAAUK,EAAOuI,GAC3B,IAAI43F,EAAQr6F,EAAEyC,GACVvI,EAAQk7D,EAAOsrC,cAAgBmB,EAAa5sG,KAAKwN,GACjDvI,EAAQq+F,EAAO1jG,QAAUqF,GAASq+F,EAAO1jG,OAASugE,EAAOsrC,cAAgBkB,EAAc3sG,KAAKwN,GAChG43F,EAAMt4F,KAAK,0BAA2B7H,MAExC,IAAK,IAAI+I,EAAM,EAAGA,EAAM4+F,EAAahtG,OAAQoO,GAAO,EAClD6zE,EAAWhuE,OAAO9I,EAAE6hG,EAAa5+F,GAAKyG,WAAU,IAAOtI,SAAS4L,EAAOmxF,sBAEzE,IAAK,IAAIljE,EAAM2mE,EAAc/sG,OAAS,EAAGomC,GAAO,EAAGA,GAAO,EACxD67C,EAAWztE,QAAQrJ,EAAE4hG,EAAc3mE,GAAKvxB,WAAU,IAAOtI,SAAS4L,EAAOmxF,sBAI7E,SAASyC,UACMrtG,KAEN2mB,KAAK,iBAEZ,IAOIumF,EAPAhpD,EAJSlkD,KAIYkkD,YACrB8gD,EALShlG,KAKOglG,OAChBmI,EANSntG,KAMamtG,aACtBJ,EAPS/sG,KAOe+sG,eACxBD,EARS9sG,KAQe8sG,eACxB5H,EATSllG,KASSklG,SAClBx5E,EAVS1rB,KAUI2kG,aAVJ3kG,KAYN+sG,gBAAiB,EAZX/sG,KAaN8sG,gBAAiB,EAExB,IACIvuD,GADiB2mD,EAAShhD,GAfjBlkD,KAgBqB0e,eAGlC,GAAIwlC,EAAcipD,EAChBD,EAAYlI,EAAO1jG,OAAyB,EAAf6rG,EAAqBjpD,EAClDgpD,GAAYC,EArBDntG,KAsBe+hE,QAAQmrC,EAAU,GAAG,GAAO,IACzB,IAAT3uD,GAvBTv+C,KAwBFgsG,cAActgF,GAxBZ1rB,KAwB0Bm1D,UAxB1Bn1D,KAwB6Cm1D,WAAa5W,QAEhE,GAAI2F,GAAe8gD,EAAO1jG,OAAS6rG,EAAc,CAEtDD,GAAYlI,EAAO1jG,OAAS4iD,EAAcipD,EAC1CD,GAAYC,EA7BDntG,KA8BiB+hE,QAAQmrC,EAAU,GAAG,GAAO,IACzB,IAAT3uD,GA/BXv+C,KAgCFgsG,cAActgF,GAhCZ1rB,KAgC0Bm1D,UAhC1Bn1D,KAgC6Cm1D,WAAa5W,GAhC1Dv+C,KAmCN+sG,eAAiBA,EAnCX/sG,KAoCN8sG,eAAiBA,EApCX9sG,KAsCN2mB,KAAK,WAGd,SAAS4nF,cACP,IACIhrB,EADSvjF,KACWujF,WACpB9pE,EAFSzZ,KAEOyZ,OAChBurF,EAHShlG,KAGOglG,OACpBzhB,EAAWh5E,SAAU,IAAOkP,EAAiB,WAAI,IAAOA,EAA0B,oBAAI,KAAQA,EAAiB,WAAI,IAAOA,EAAsB,iBAAItL,SACpJ62F,EAAOl2F,WAAW,2BAGpB,IAAI4vD,KAAO,CACTsvC,WAAYA,WACZX,QAASA,QACTkB,YAAaA,aAGf,SAASC,cAAeC,GAEtB,KAAIprF,QAAQC,QADCtjB,KACgByZ,OAAOi1F,eADvB1uG,KACgDyZ,OAAOovF,eADvD7oG,KAC+E2uG,UAD/E3uG,KACmGyZ,OAAO8rF,SAAvH,CACA,IAAIr2F,EAFSlP,KAEGkP,GAChBA,EAAGzE,MAAMmkG,OAAS,OAClB1/F,EAAGzE,MAAMmkG,OAASH,EAAS,mBAAqB,eAChDv/F,EAAGzE,MAAMmkG,OAASH,EAAS,eAAiB,YAC5Cv/F,EAAGzE,MAAMmkG,OAASH,EAAS,WAAa,QAG1C,SAASI,kBAEHxrF,QAAQC,OADCtjB,KACgByZ,OAAOovF,eADvB7oG,KAC+C2uG,UAD/C3uG,KACmEyZ,OAAO8rF,UAD1EvlG,KAENkP,GAAGzE,MAAMmkG,OAAS,IAG3B,IAAIE,WAAa,CACfN,cAAeA,cACfK,gBAAiBA,iBAGnB,SAASE,YAAa/J,GACpB,IACIzhB,EADSvjF,KACWujF,WACpB9pE,EAFSzZ,KAEOyZ,OAIpB,GAHIA,EAAOilD,MAHE1+D,KAIJuuG,cAEa,iBAAXvJ,GAAuB,WAAYA,EAC5C,IAAK,IAAIhkG,EAAI,EAAGA,EAAIgkG,EAAO1jG,OAAQN,GAAK,EAClCgkG,EAAOhkG,IAAMuiF,EAAWhuE,OAAOyvF,EAAOhkG,SAG5CuiF,EAAWhuE,OAAOyvF,GAEhBvrF,EAAOilD,MAbE1+D,KAcJguG,aAEHv0F,EAAOkK,UAAYN,QAAQM,UAhBpB3jB,KAiBJ8zD,SAIX,SAASk7C,aAAchK,GACrB,IACIvrF,EADSzZ,KACOyZ,OAChB8pE,EAFSvjF,KAEWujF,WACpBr/B,EAHSlkD,KAGYkkD,YAErBzqC,EAAOilD,MALE1+D,KAMJuuG,cAET,IAAIte,EAAiB/rC,EAAc,EACnC,GAAsB,iBAAX8gD,GAAuB,WAAYA,EAAQ,CACpD,IAAK,IAAIhkG,EAAI,EAAGA,EAAIgkG,EAAO1jG,OAAQN,GAAK,EAClCgkG,EAAOhkG,IAAMuiF,EAAWztE,QAAQkvF,EAAOhkG,IAE7CivF,EAAiB/rC,EAAc8gD,EAAO1jG,YAEtCiiF,EAAWztE,QAAQkvF,GAEjBvrF,EAAOilD,MAjBE1+D,KAkBJguG,aAEHv0F,EAAOkK,UAAYN,QAAQM,UApBpB3jB,KAqBJ8zD,SArBI9zD,KAuBN+hE,QAAQkuB,EAAgB,GAAG,GAGpC,SAASgf,SAAUtoG,EAAOq+F,GACxB,IACIzhB,EADSvjF,KACWujF,WACpB9pE,EAFSzZ,KAEOyZ,OAEhBy1F,EAJSlvG,KAGYkkD,YAErBzqC,EAAOilD,OACTwwC,GANWlvG,KAMiBmtG,aANjBntG,KAOJuuG,cAPIvuG,KAQJglG,OAASzhB,EAAWh5E,SAAU,IAAOkP,EAAiB,aAE/D,IAAI01F,EAVSnvG,KAUWglG,OAAO1jG,OAC/B,GAAIqF,GAAS,EAXA3G,KAYJgvG,aAAahK,QAGtB,GAAIr+F,GAASwoG,EAfAnvG,KAgBJ+uG,YAAY/J,OADrB,CAOA,IAHA,IAAI/U,EAAiBif,EAAoBvoG,EAAQuoG,EAAoB,EAAIA,EAErEE,EAAe,GACVpuG,EAAImuG,EAAa,EAAGnuG,GAAK2F,EAAO3F,GAAK,EAAG,CAC/C,IAAIquG,EAvBOrvG,KAuBeglG,OAAO3vF,GAAGrU,GACpCquG,EAAalhG,SACbihG,EAAap+F,QAAQq+F,GAGvB,GAAsB,iBAAXrK,GAAuB,WAAYA,EAAQ,CACpD,IAAK,IAAIt1F,EAAM,EAAGA,EAAMs1F,EAAO1jG,OAAQoO,GAAO,EACxCs1F,EAAOt1F,IAAQ6zE,EAAWhuE,OAAOyvF,EAAOt1F,IAE9CugF,EAAiBif,EAAoBvoG,EAAQuoG,EAAoBlK,EAAO1jG,OAAS4tG,OAEjF3rB,EAAWhuE,OAAOyvF,GAGpB,IAAK,IAAIt9D,EAAM,EAAGA,EAAM0nE,EAAa9tG,OAAQomC,GAAO,EAClD67C,EAAWhuE,OAAO65F,EAAa1nE,IAG7BjuB,EAAOilD,MAzCE1+D,KA0CJguG,aAEHv0F,EAAOkK,UAAYN,QAAQM,UA5CpB3jB,KA6CJ8zD,SAELr6C,EAAOilD,KA/CE1+D,KAgDJ+hE,QAAQkuB,EAhDJjwF,KAgD4BmtG,aAAc,GAAG,GAhD7CntG,KAkDJ+hE,QAAQkuB,EAAgB,GAAG,IAItC,SAASqf,YAAaC,GACpB,IACI91F,EADSzZ,KACOyZ,OAChB8pE,EAFSvjF,KAEWujF,WAGpB2rB,EALSlvG,KAGYkkD,YAGrBzqC,EAAOilD,OACTwwC,GAPWlvG,KAOiBmtG,aAPjBntG,KAQJuuG,cARIvuG,KASJglG,OAASzhB,EAAWh5E,SAAU,IAAOkP,EAAiB,aAE/D,IACI+1F,EADAvf,EAAiBif,EAGrB,GAA6B,iBAAlBK,GAA8B,WAAYA,EAAe,CAClE,IAAK,IAAIvuG,EAAI,EAAGA,EAAIuuG,EAAcjuG,OAAQN,GAAK,EAC7CwuG,EAAgBD,EAAcvuG,GAhBrBhB,KAiBEglG,OAAOwK,IAjBTxvG,KAiBkCglG,OAAO3vF,GAAGm6F,GAAerhG,SAChEqhG,EAAgBvf,IAAkBA,GAAkB,GAE1DA,EAAiB33E,KAAKC,IAAI03E,EAAgB,QAE1Cuf,EAAgBD,EAtBLvvG,KAuBAglG,OAAOwK,IAvBPxvG,KAuBgCglG,OAAO3vF,GAAGm6F,GAAerhG,SAChEqhG,EAAgBvf,IAAkBA,GAAkB,GACxDA,EAAiB33E,KAAKC,IAAI03E,EAAgB,GAGxCx2E,EAAOilD,MA5BE1+D,KA6BJguG,aAGHv0F,EAAOkK,UAAYN,QAAQM,UAhCpB3jB,KAiCJ8zD,SAELr6C,EAAOilD,KAnCE1+D,KAoCJ+hE,QAAQkuB,EApCJjwF,KAoC4BmtG,aAAc,GAAG,GApC7CntG,KAsCJ+hE,QAAQkuB,EAAgB,GAAG,GAItC,SAASwf,kBAIP,IAHA,IAEIF,EAAgB,GACXvuG,EAAI,EAAGA,EAHHhB,KAGcglG,OAAO1jG,OAAQN,GAAK,EAC7CuuG,EAAc7tG,KAAKV,GAJRhB,KAMNsvG,YAAYC,GAGrB,IAAIG,aAAe,CACjBX,YAAaA,YACbC,aAAcA,aACdC,SAAUA,SACVK,YAAaA,YACbG,gBAAiBA,iBAGnB,SAASpmC,aAAc53D,GACrB,IACI/M,EADS1E,KACK2vG,gBACdl2F,EAFSzZ,KAEOyZ,OAChByd,EAHSl3B,KAGQk3B,QAErB,IALal3B,KAKF2Z,YAAaF,EAAO8yF,+BAA/B,CAGA,IAAI17F,EAAIY,EACJZ,EAAE++F,gBAAiB/+F,EAAIA,EAAE++F,eAC7B,IAAI3lF,EAAYxd,EAAEoE,EAAEtI,QAEpB,IAAiC,YAA7BkR,EAAOo2F,mBACJ5lF,EAAUjT,QAbJhX,KAamBksG,WAAW5qG,UAE3CoD,EAAKorG,aAA0B,eAAXj/F,EAAExO,MACjBqC,EAAKorG,gBAAgB,UAAWj/F,IAAiB,IAAZA,EAAE6mB,WACvChzB,EAAKorG,cAAgB,WAAYj/F,GAAKA,EAAE82C,OAAS,GAClDjjD,EAAK44B,WAAa54B,EAAKivB,UAC3B,GAAIla,EAAOs2F,WAAa9lF,EAAUjT,QAAQyC,EAAOu2F,kBAAoBv2F,EAAOu2F,kBAAqB,IAAOv2F,EAAqB,gBAAI,GAnBpHzZ,KAoBJiwG,YAAa,OAGtB,IAAIx2F,EAAOgyC,cACJxhC,EAAUjT,QAAQyC,EAAOgyC,cAAc,GAD9C,CAIAv0B,EAAQg5E,SAAsB,eAAXr/F,EAAExO,KAAwBwO,EAAEomB,cAAc,GAAGG,MAAQvmB,EAAEumB,MAC1EF,EAAQi5E,SAAsB,eAAXt/F,EAAExO,KAAwBwO,EAAEomB,cAAc,GAAGI,MAAQxmB,EAAEwmB,MAC1E,IAAI+4E,EAASl5E,EAAQg5E,SACjBG,EAASn5E,EAAQi5E,SAIjBG,EAAqB72F,EAAO62F,oBAAsB72F,EAAO82F,sBACzDC,EAAqB/2F,EAAO+2F,oBAAsB/2F,EAAOg3F,sBAC7D,IACEH,KACKF,GAAUI,GACXJ,GAAU9kG,IAAIc,OAAO4G,MAAQw9F,GAHnC,CAuBA,GAfAtzF,MAAM5U,OAAO5D,EAAM,CACjB44B,WAAW,EACX3J,SAAS,EACT+8E,qBAAqB,EACrB7zE,iBAAa18B,EACbwwG,iBAAaxwG,IAGf+2B,EAAQk5E,OAASA,EACjBl5E,EAAQm5E,OAASA,EACjB3rG,EAAKs4B,eAAiB9f,MAAMc,MAtDfhe,KAuDNiwG,YAAa,EAvDPjwG,KAwDNskG,aAxDMtkG,KAyDN4wG,oBAAiBzwG,EACpBsZ,EAAOkqD,UAAY,IAAKj/D,EAAKmsG,oBAAqB,GACvC,eAAXhgG,EAAExO,KAAuB,CAC3B,IAAI20B,GAAiB,EACjB/M,EAAUhZ,GAAGvM,EAAKosG,gBAAiB95E,GAAiB,GAEtDxtB,IAAIM,eACD2C,EAAEjD,IAAIM,eAAemH,GAAGvM,EAAKosG,eAC7BtnG,IAAIM,gBAAkBmgB,EAAU,IAEnCzgB,IAAIM,cAAcC,OAGpB,IAAIgnG,EAAuB/5E,GAtEhBh3B,KAsEyCgxG,gBAAkBv3F,EAAOw3F,0BACzEx3F,EAAOy3F,+BAAiCH,IAC1ClgG,EAAEmmB,iBAxEOh3B,KA2EN2mB,KAAK,aAAc9V,MAG5B,SAASy4D,YAAa73D,GACpB,IACI/M,EADS1E,KACK2vG,gBACdl2F,EAFSzZ,KAEOyZ,OAChByd,EAHSl3B,KAGQk3B,QACjBxL,EAJS1rB,KAII2kG,aACb9zF,EAAIY,EAER,GADIZ,EAAE++F,gBAAiB/+F,EAAIA,EAAE++F,eACxBlrG,EAAK44B,WAMV,IAAI54B,EAAKorG,cAA2B,cAAXj/F,EAAExO,KAA3B,CACA,IAAI8uG,EAAyB,cAAXtgG,EAAExO,MAAwBwO,EAAEomB,gBAAkBpmB,EAAEomB,cAAc,IAAMpmB,EAAEyhE,eAAe,IACnGl7C,EAAmB,cAAXvmB,EAAExO,KAAuB8uG,EAAY/5E,MAAQvmB,EAAEumB,MACvDC,EAAmB,cAAXxmB,EAAExO,KAAuB8uG,EAAY95E,MAAQxmB,EAAEwmB,MAC3D,GAAIxmB,EAAEugG,wBAGJ,OAFAl6E,EAAQk5E,OAASh5E,OACjBF,EAAQm5E,OAASh5E,GAGnB,IAtBar3B,KAsBDgxG,eAYV,OAlCWhxG,KAwBJiwG,YAAa,OAChBvrG,EAAK44B,YACPpgB,MAAM5U,OAAO4uB,EAAS,CACpBk5E,OAAQh5E,EACRi5E,OAAQh5E,EACR64E,SAAU94E,EACV+4E,SAAU94E,IAEZ3yB,EAAKs4B,eAAiB9f,MAAMc,QAIhC,GAAItZ,EAAKorG,cAAgBr2F,EAAO43F,sBAAwB53F,EAAOilD,KAC7D,GArCW1+D,KAqCAwkG,cAET,GACGntE,EAAQH,EAAQm5E,QAxCVrwG,KAwC2Bm1D,WAxC3Bn1D,KAwC+C8vD,gBAClDz4B,EAAQH,EAAQm5E,QAzCbrwG,KAyC8Bm1D,WAzC9Bn1D,KAyCkD6vD,eAIzD,OAFAnrD,EAAK44B,WAAY,OACjB54B,EAAKivB,SAAU,QAGZ,GACJyD,EAAQF,EAAQk5E,QAhDRpwG,KAgDyBm1D,WAhDzBn1D,KAgD6C8vD,gBAClD14B,EAAQF,EAAQk5E,QAjDXpwG,KAiD4Bm1D,WAjD5Bn1D,KAiDgD6vD,eAEzD,OAGJ,GAAInrD,EAAKorG,cAAgBtmG,IAAIM,eACvB+G,EAAEtI,SAAWiB,IAAIM,eAAiB2C,EAAEoE,EAAEtI,QAAQ0I,GAAGvM,EAAKosG,cAGxD,OAFApsG,EAAKivB,SAAU,OAxDN3zB,KAyDFiwG,YAAa,GAOxB,GAHIvrG,EAAKgsG,qBA7DI1wG,KA8DJ2mB,KAAK,YAAa9V,KAEvBA,EAAEomB,eAAiBpmB,EAAEomB,cAAc31B,OAAS,GAAhD,CAEA41B,EAAQg5E,SAAW94E,EACnBF,EAAQi5E,SAAW94E,EAEnB,IAAIuhE,EAAQ1hE,EAAQg5E,SAAWh5E,EAAQk5E,OACnCvX,EAAQ3hE,EAAQi5E,SAAWj5E,EAAQm5E,OACvC,KAvEarwG,KAuEFyZ,OAAOkqD,WAAarrD,KAAKg5F,KAAMh5F,KAAKuoB,IAAK+3D,EAAO,GAAQtgF,KAAKuoB,IAAKg4D,EAAO,IAvEvE74F,KAuEsFyZ,OAAOkqD,WAA1G,CAGE,IAAI4tC,EADN,QAAgC,IAArB7sG,EAAKm4B,YAzEH78B,KA2ECghF,gBAAkB9pD,EAAQi5E,WAAaj5E,EAAQm5E,QA3EhDrwG,KA2EmEwkG,cAAgBttE,EAAQg5E,WAAah5E,EAAQk5E,OACzH1rG,EAAKm4B,aAAc,EAGd+7D,EAAQA,EAAUC,EAAQA,GAAU,KACvC0Y,EAA6D,IAA/Cj5F,KAAKk5F,MAAMl5F,KAAKuJ,IAAIg3E,GAAQvgF,KAAKuJ,IAAI+2E,IAAiBtgF,KAAKY,GACzExU,EAAKm4B,YAjFE78B,KAiFmBghF,eAAiBuwB,EAAa93F,EAAO83F,WAAc,GAAKA,EAAa93F,EAAO83F,YAY5G,GARI7sG,EAAKm4B,aArFI78B,KAsFJ2mB,KAAK,oBAAqB9V,QAEH,IAArBnM,EAAKisG,cACVz5E,EAAQg5E,WAAah5E,EAAQk5E,QAAUl5E,EAAQi5E,WAAaj5E,EAAQm5E,SACtE3rG,EAAKisG,aAAc,IAGnBjsG,EAAKm4B,YACPn4B,EAAK44B,WAAY,OAGnB,GAAK54B,EAAKisG,YAAV,CAjGa3wG,KAoGNiwG,YAAa,GACfx2F,EAAO8rF,SAAW10F,EAAE4B,YACvB5B,EAAEmmB,iBAEAvd,EAAOg4F,2BAA6Bh4F,EAAOi4F,QAC7C7gG,EAAEkmB,kBAGCryB,EAAKivB,UACJla,EAAOilD,MA7GA1+D,KA8GFqtG,UAET3oG,EAAKgrD,eAhHM1vD,KAgHkB0e,eAhHlB1e,KAiHJspG,cAAc,GAjHVtpG,KAkHA2Z,WAlHA3Z,KAmHFujF,WAAWlxE,QAAQ,qCAE5B3N,EAAKitG,qBAAsB,GAEvBl4F,EAAOq1F,aAAyC,IAvHzC9uG,KAuHsB8sG,iBAAqD,IAvH3E9sG,KAuHwD+sG,gBAvHxD/sG,KAwHFwuG,eAAc,GAxHZxuG,KA0HJ2mB,KAAK,kBAAmB9V,IA1HpB7Q,KA4HN2mB,KAAK,aAAc9V,GAC1BnM,EAAKivB,SAAU,EAEf,IAAI4qB,EA/HSv+C,KA+HKghF,eAAiB4X,EAAQC,EAC3C3hE,EAAQqnB,KAAOA,EAEfA,GAAQ9kC,EAAOm4F,WACXlmF,IAAO6yB,GAAQA,GAnINv+C,KAqIN4wG,eAAiBryD,EAAO,EAAI,OAAS,OAC5C75C,EAAKirD,iBAAmBpR,EAAO75C,EAAKgrD,eAEpC,IAAImiD,GAAsB,EACtBC,EAAkBr4F,EAAOq4F,gBA0B7B,GAzBIr4F,EAAO43F,sBACTS,EAAkB,GAEfvzD,EAAO,GAAK75C,EAAKirD,iBA7IT3vD,KA6ImC6vD,gBAC9CgiD,GAAsB,EAClBp4F,EAAOs4F,aAAcrtG,EAAKirD,iBA/InB3vD,KA+I8C6vD,eAAiB,EAAMv3C,KAAKuoB,KA/I1E7gC,KA+IwF6vD,eAAiBnrD,EAAKgrD,eAAiBnR,EAAOuzD,KACxIvzD,EAAO,GAAK75C,EAAKirD,iBAhJf3vD,KAgJyC8vD,iBACpD+hD,GAAsB,EAClBp4F,EAAOs4F,aAAcrtG,EAAKirD,iBAlJnB3vD,KAkJ8C8vD,eAAiB,EAAMx3C,KAAKuoB,IAlJ1E7gC,KAkJuF8vD,eAAiBprD,EAAKgrD,eAAiBnR,EAAOuzD,KAG9ID,IACFhhG,EAAEugG,yBAA0B,IAtJjBpxG,KA0JD8sG,gBAA4C,SA1J3C9sG,KA0JwB4wG,gBAA6BlsG,EAAKirD,iBAAmBjrD,EAAKgrD,iBAC7FhrD,EAAKirD,iBAAmBjrD,EAAKgrD,iBA3JlB1vD,KA6JD+sG,gBAA4C,SA7J3C/sG,KA6JwB4wG,gBAA6BlsG,EAAKirD,iBAAmBjrD,EAAKgrD,iBAC7FhrD,EAAKirD,iBAAmBjrD,EAAKgrD,gBAK3Bj2C,EAAOkqD,UAAY,EAAG,CACxB,KAAIrrD,KAAKuJ,IAAI08B,GAAQ9kC,EAAOkqD,WAAaj/D,EAAKmsG,oBAW5C,YADAnsG,EAAKirD,iBAAmBjrD,EAAKgrD,gBAT7B,IAAKhrD,EAAKmsG,mBAMR,OALAnsG,EAAKmsG,oBAAqB,EAC1B35E,EAAQk5E,OAASl5E,EAAQg5E,SACzBh5E,EAAQm5E,OAASn5E,EAAQi5E,SACzBzrG,EAAKirD,iBAAmBjrD,EAAKgrD,oBAC7Bx4B,EAAQqnB,KA1KDv+C,KA0KeghF,eAAiB9pD,EAAQg5E,SAAWh5E,EAAQk5E,OAASl5E,EAAQi5E,SAAWj5E,EAAQm5E,QASvG52F,EAAOu4F,eAAgBv4F,EAAO8rF,WAG/B9rF,EAAOy3E,UAAYz3E,EAAOsvF,qBAAuBtvF,EAAOuvF,yBAtL/ChpG,KAuLJorG,oBAvLIprG,KAwLJwqG,uBAEL/wF,EAAOy3E,WAEsB,IAA3BxsF,EAAKutG,WAAW3wG,QAClBoD,EAAKutG,WAAWvwG,KAAK,CACnBwlC,SAAUhQ,EA9LHl3B,KA8LkBghF,eAAiB,SAAW,UACrDpoE,KAAMlU,EAAKs4B,iBAGft4B,EAAKutG,WAAWvwG,KAAK,CACnBwlC,SAAUhQ,EAnMDl3B,KAmMgBghF,eAAiB,WAAa,YACvDpoE,KAAMsE,MAAMc,SApMHhe,KAwMNiqG,eAAevlG,EAAKirD,kBAxMd3vD,KA0MNgsG,aAAatnG,EAAKirD,4BAlMnBjrD,EAAKisG,aAAejsG,EAAKm4B,aARlB78B,KASF2mB,KAAK,oBAAqB9V,GAoMvC,SAAS04D,WAAY93D,GACnB,IAAIowD,EAAS7hE,KACT0E,EAAOm9D,EAAO8tC,gBAEdl2F,EAASooD,EAAOpoD,OAChByd,EAAU2qC,EAAO3qC,QACjBxL,EAAMm2C,EAAO8iC,aACbphB,EAAa1hB,EAAO0hB,WACpB4hB,EAAatjC,EAAOsjC,WACpBD,EAAWrjC,EAAOqjC,SAClBr0F,EAAIY,EAMR,GALIZ,EAAE++F,gBAAiB/+F,EAAIA,EAAE++F,eACzBlrG,EAAKgsG,qBACP7uC,EAAOl7C,KAAK,WAAY9V,GAE1BnM,EAAKgsG,qBAAsB,GACtBhsG,EAAK44B,UAMR,OALI54B,EAAKivB,SAAWla,EAAOq1F,YACzBjtC,EAAO2sC,eAAc,GAEvB9pG,EAAKivB,SAAU,OACfjvB,EAAKisG,aAAc,GAIjBl3F,EAAOq1F,YAAcpqG,EAAKivB,SAAWjvB,EAAK44B,aAAwC,IAA1BukC,EAAOirC,iBAAqD,IAA1BjrC,EAAOkrC,iBACnGlrC,EAAO2sC,eAAc,GAIvB,IA2BI0D,EA3BAC,EAAej1F,MAAMc,MACrBokB,EAAW+vE,EAAeztG,EAAKs4B,eAgBnC,GAbI6kC,EAAOouC,aACTpuC,EAAO6pC,mBAAmB76F,GAC1BgxD,EAAOl7C,KAAK,YAAa9V,GACrBuxB,EAAW,KAAQ+vE,EAAeztG,EAAK0tG,cAAiB,KAC1DvwC,EAAOl7C,KAAK,wBAAyB9V,IAIzCnM,EAAK0tG,cAAgBl1F,MAAMc,MAC3Bd,MAAMW,UAAS,WACRgkD,EAAOlb,YAAakb,EAAOouC,YAAa,OAG1CvrG,EAAK44B,YAAc54B,EAAKivB,UAAYkuC,EAAO+uC,gBAAmC,IAAjB15E,EAAQqnB,MAAc75C,EAAKirD,mBAAqBjrD,EAAKgrD,eAIrH,OAHAhrD,EAAK44B,WAAY,EACjB54B,EAAKivB,SAAU,OACfjvB,EAAKisG,aAAc,GAcrB,GAXAjsG,EAAK44B,WAAY,EACjB54B,EAAKivB,SAAU,EACfjvB,EAAKisG,aAAc,EAIjBuB,EADEz4F,EAAOu4F,aACItmF,EAAMm2C,EAAO1M,WAAa0M,EAAO1M,WAEhCzwD,EAAKirD,kBAGjBl2C,EAAO8rF,QAIX,GAAI9rF,EAAOy3E,SAAX,CACE,GAAIghB,GAAcrwC,EAAOhS,eAEvB,YADAgS,EAAOE,QAAQF,EAAO3d,aAGxB,GAAIguD,GAAcrwC,EAAO/R,eAMvB,YALI+R,EAAOmjC,OAAO1jG,OAAS4jG,EAAS5jG,OAClCugE,EAAOE,QAAQmjC,EAAS5jG,OAAS,GAEjCugE,EAAOE,QAAQF,EAAOmjC,OAAO1jG,OAAS,IAK1C,GAAImY,EAAO44F,iBAAkB,CAC3B,GAAI3tG,EAAKutG,WAAW3wG,OAAS,EAAG,CAC9B,IAAIgxG,EAAgB5tG,EAAKutG,WAAWv2E,MAChC62E,EAAgB7tG,EAAKutG,WAAWv2E,MAEhCnE,EAAW+6E,EAAcprE,SAAWqrE,EAAcrrE,SAClDtuB,EAAO05F,EAAc15F,KAAO25F,EAAc35F,KAC9CipD,EAAO2wC,SAAWj7E,EAAW3e,EAC7BipD,EAAO2wC,UAAY,EACfl6F,KAAKuJ,IAAIggD,EAAO2wC,UAAY/4F,EAAOg5F,0BACrC5wC,EAAO2wC,SAAW,IAIhB55F,EAAO,KAAQsE,MAAMc,MAAQs0F,EAAc15F,KAAQ,OACrDipD,EAAO2wC,SAAW,QAGpB3wC,EAAO2wC,SAAW,EAEpB3wC,EAAO2wC,UAAY/4F,EAAOi5F,8BAE1BhuG,EAAKutG,WAAW3wG,OAAS,EACzB,IAAIqxG,EAAmB,IAAOl5F,EAAOm5F,sBACjCC,EAAmBhxC,EAAO2wC,SAAWG,EAErCG,EAAcjxC,EAAO1M,UAAY09C,EACjCnnF,IAAOonF,GAAeA,GAE1B,IACIC,EAEAC,EAHAC,GAAW,EAEXC,EAA2C,GAA5B56F,KAAKuJ,IAAIggD,EAAO2wC,UAAiB/4F,EAAO05F,4BAE3D,GAAIL,EAAcjxC,EAAO/R,eACnBr2C,EAAO25F,wBACLN,EAAcjxC,EAAO/R,gBAAkBojD,IACzCJ,EAAcjxC,EAAO/R,eAAiBojD,GAExCH,EAAsBlxC,EAAO/R,eAC7BmjD,GAAW,EACXvuG,EAAKitG,qBAAsB,GAE3BmB,EAAcjxC,EAAO/R,eAEnBr2C,EAAOilD,MAAQjlD,EAAOsuF,iBAAkBiL,GAAe,QACtD,GAAIF,EAAcjxC,EAAOhS,eAC1Bp2C,EAAO25F,wBACLN,EAAcjxC,EAAOhS,eAAiBqjD,IACxCJ,EAAcjxC,EAAOhS,eAAiBqjD,GAExCH,EAAsBlxC,EAAOhS,eAC7BojD,GAAW,EACXvuG,EAAKitG,qBAAsB,GAE3BmB,EAAcjxC,EAAOhS,eAEnBp2C,EAAOilD,MAAQjlD,EAAOsuF,iBAAkBiL,GAAe,QACtD,GAAIv5F,EAAO45F,eAAgB,CAEhC,IADA,IAAIvI,EACK7pG,EAAI,EAAGA,EAAIikG,EAAS5jG,OAAQL,GAAK,EACxC,GAAIikG,EAASjkG,IAAM6xG,EAAa,CAC9BhI,EAAY7pG,EACZ,MASJ6xG,IAJEA,EADEx6F,KAAKuJ,IAAIqjF,EAAS4F,GAAagI,GAAex6F,KAAKuJ,IAAIqjF,EAAS4F,EAAY,GAAKgI,IAA0C,SAA1BjxC,EAAO+uC,eAC5F1L,EAAS4F,GAET5F,EAAS4F,EAAY,IAUvC,GANIkI,GACFnxC,EAAO7vD,KAAK,iBAAiB,WAC3B6vD,EAAOwrC,aAIa,IAApBxrC,EAAO2wC,UAMT,GAJEG,EADEjnF,EACiBpT,KAAKuJ,MAAMixF,EAAcjxC,EAAO1M,WAAa0M,EAAO2wC,UAEpDl6F,KAAKuJ,KAAKixF,EAAcjxC,EAAO1M,WAAa0M,EAAO2wC,UAEpE/4F,EAAO45F,eAAgB,CAQzB,IAAIC,EAAeh7F,KAAKuJ,KAAK6J,GAAOonF,EAAcA,GAAejxC,EAAO1M,WACpEo+C,EAAmB1xC,EAAOujC,gBAAgBvjC,EAAO3d,aAEnDyuD,EADEW,EAAeC,EACE95F,EAAO0vF,MACjBmK,EAAe,EAAIC,EACM,IAAf95F,EAAO0vF,MAEQ,IAAf1vF,EAAO0vF,YAGzB,GAAI1vF,EAAO45F,eAEhB,YADAxxC,EAAO+rC,iBAILn0F,EAAO25F,wBAA0BH,GACnCpxC,EAAOooC,eAAe8I,GACtBlxC,EAAOynC,cAAcqJ,GACrB9wC,EAAOmqC,aAAa8G,GACpBjxC,EAAO6qC,iBAAgB,EAAM7qC,EAAO+uC,gBACpC/uC,EAAOloD,WAAY,EACnB4pE,EAAW1wE,eAAc,WAClBgvD,IAAUA,EAAOlb,WAAcjiD,EAAKitG,sBACzC9vC,EAAOl7C,KAAK,kBACZk7C,EAAOynC,cAAc7vF,EAAO0vF,OAC5B98F,YAAW,WACTw1D,EAAOmqC,aAAa+G,GACpBxvB,EAAW1wE,eAAc,WAClBgvD,IAAUA,EAAOlb,WACtBkb,EAAOhvD,qBAER,QAEIgvD,EAAO2wC,UAChB3wC,EAAOooC,eAAe6I,GACtBjxC,EAAOynC,cAAcqJ,GACrB9wC,EAAOmqC,aAAa8G,GACpBjxC,EAAO6qC,iBAAgB,EAAM7qC,EAAO+uC,gBAC/B/uC,EAAOloD,YACVkoD,EAAOloD,WAAY,EACnB4pE,EAAW1wE,eAAc,WAClBgvD,IAAUA,EAAOlb,WACtBkb,EAAOhvD,qBAIXgvD,EAAOooC,eAAe6I,GAGxBjxC,EAAOupC,oBACPvpC,EAAO2oC,2BACF,GAAI/wF,EAAO45F,eAEhB,YADAxxC,EAAO+rC,mBAIJn0F,EAAO44F,kBAAoBjwE,GAAY3oB,EAAO+5F,gBACjD3xC,EAAOooC,iBACPpoC,EAAOupC,oBACPvpC,EAAO2oC,2BAtKX,CA8KA,IAFA,IAAIiJ,EAAY,EACZC,EAAY7xC,EAAOujC,gBAAgB,GAC9BpkG,EAAI,EAAGA,EAAImkG,EAAW7jG,OAAQN,GAAMA,EAAIyY,EAAOuuF,mBAAqB,EAAIvuF,EAAOutF,eAAiB,CACvG,IAAI2M,EAAe3yG,EAAIyY,EAAOuuF,mBAAqB,EAAI,EAAIvuF,EAAOutF,oBACvB,IAAhC7B,EAAWnkG,EAAI2yG,GACpBzB,GAAc/M,EAAWnkG,IAAMkxG,EAAa/M,EAAWnkG,EAAI2yG,KAC7DF,EAAYzyG,EACZ0yG,EAAYvO,EAAWnkG,EAAI2yG,GAAexO,EAAWnkG,IAE9CkxG,GAAc/M,EAAWnkG,KAClCyyG,EAAYzyG,EACZ0yG,EAAYvO,EAAWA,EAAW7jG,OAAS,GAAK6jG,EAAWA,EAAW7jG,OAAS,IAKnF,IAAIsyG,GAAS1B,EAAa/M,EAAWsO,IAAcC,EAC/Ct9B,EAAaq9B,EAAYh6F,EAAOuuF,mBAAqB,EAAI,EAAIvuF,EAAOutF,eAExE,GAAI5kE,EAAW3oB,EAAO+5F,aAAc,CAElC,IAAK/5F,EAAOo6F,WAEV,YADAhyC,EAAOE,QAAQF,EAAO3d,aAGM,SAA1B2d,EAAO+uC,iBACLgD,GAASn6F,EAAOq6F,gBAAmBjyC,EAAOE,QAAQ0xC,EAAYr9B,GAC3DvU,EAAOE,QAAQ0xC,IAEM,SAA1B5xC,EAAO+uC,iBACLgD,EAAS,EAAIn6F,EAAOq6F,gBAAoBjyC,EAAOE,QAAQ0xC,EAAYr9B,GAChEvU,EAAOE,QAAQ0xC,QAEnB,CAEL,IAAKh6F,EAAOs6F,YAEV,YADAlyC,EAAOE,QAAQF,EAAO3d,aAGA2d,EAAOmyC,aAAenjG,EAAEtI,SAAWs5D,EAAOmyC,WAAWC,QAAUpjG,EAAEtI,SAAWs5D,EAAOmyC,WAAWE,QAQ3GrjG,EAAEtI,SAAWs5D,EAAOmyC,WAAWC,OACxCpyC,EAAOE,QAAQ0xC,EAAYr9B,GAE3BvU,EAAOE,QAAQ0xC,IATe,SAA1B5xC,EAAO+uC,gBACT/uC,EAAOE,QAAQ0xC,EAAYr9B,GAEC,SAA1BvU,EAAO+uC,gBACT/uC,EAAOE,QAAQ0xC,MAUvB,SAAS7iD,WACP,IAEIn3C,EAFSzZ,KAEOyZ,OAChBvK,EAHSlP,KAGGkP,GAEhB,IAAIA,GAAyB,IAAnBA,EAAGoE,YAAb,CAGImG,EAAO06F,aAREn0G,KASJo0G,gBAIT,IAAItH,EAbS9sG,KAae8sG,eACxBC,EAdS/sG,KAce+sG,eACxB7H,EAfSllG,KAeSklG,SAfTllG,KAkBN8sG,gBAAiB,EAlBX9sG,KAmBN+sG,gBAAiB,EAnBX/sG,KAqBNskG,aArBMtkG,KAsBNykG,eAtBMzkG,KAwBNwqG,uBACuB,SAAzB/wF,EAAOgtF,eAA4BhtF,EAAOgtF,cAAgB,IAzBlDzmG,KAyB+DqqG,QAzB/DrqG,KAyBgFyZ,OAAOsuF,eAzBvF/nG,KA0BJ+hE,QA1BI/hE,KA0BWglG,OAAO1jG,OAAS,EAAG,GAAG,GAAO,GA1BxCtB,KA4BJ+hE,QA5BI/hE,KA4BWkkD,YAAa,GAAG,GAAO,GA5BlClkD,KA+BFq0G,UA/BEr0G,KA+BiBq0G,SAASC,SA/B1Bt0G,KA+B4Cq0G,SAASE,QA/BrDv0G,KAgCJq0G,SAASG,MAhCLx0G,KAmCN+sG,eAAiBA,EAnCX/sG,KAoCN8sG,eAAiBA,EApCX9sG,KAsCFyZ,OAAOovF,eAAiB3D,IAtCtBllG,KAsC0CklG,UAtC1CllG,KAuCJ8oG,iBAIX,SAAS9tD,QAASnqC,GACH7Q,KACDiwG,aADCjwG,KAEAyZ,OAAOg7F,eAAiB5jG,EAAEmmB,iBAF1Bh3B,KAGAyZ,OAAOi7F,0BAHP10G,KAG0C2Z,YACnD9I,EAAEkmB,kBACFlmB,EAAEimB,6BAKR,SAAS69E,WACP,IACIzI,EADSlsG,KACUksG,UACnBvH,EAFS3kG,KAEa2kG,aAFb3kG,KAGNmsG,kBAHMnsG,KAGqBm1D,UAHrBn1D,KAIFghF,eAJEhhF,KAMFm1D,UADLwvC,EACmBuH,EAAUzzF,YAAcyzF,EAAU54F,YAAe44F,EAAUh4F,YAE5Dg4F,EAAUh4F,WARrBlU,KAWJm1D,WAAa+2C,EAAUl4F,WAGN,IAdbhU,KAcFm1D,YAdEn1D,KAcyBm1D,UAAY,GAdrCn1D,KAgBNorG,oBAhBMprG,KAiBNwqG,sBAGP,IAAIL,EApBSnqG,KAoBe8vD,eApBf9vD,KAoBuC6vD,gBAC7B,IAAnBs6C,EACY,GAtBHnqG,KAwBWm1D,UAxBXn1D,KAwB8B6vD,gBAAkB,KAxBhD7vD,KA0Bc+Y,UA1Bd/Y,KA2BJiqG,eAAetF,GA3BX3kG,KA2BkCm1D,UA3BlCn1D,KA2BqDm1D,WA3BrDn1D,KA8BN2mB,KAAK,eA9BC3mB,KA8BsBm1D,WAAW,GAGhD,IAAIy/C,oBAAqB,EACzB,SAASC,sBAET,SAASh/D,eACP,IACIp8B,EADSzZ,KACOyZ,OAChB6c,EAFSt2B,KAEYs2B,YACrBpnB,EAHSlP,KAGGkP,GACZg9F,EAJSlsG,KAIUksG,UAJVlsG,KAMNqpE,aAAeA,aAAahuD,KANtBrb,MAAAA,KAONspE,YAAcA,YAAYjuD,KAPpBrb,MAAAA,KAQNupE,WAAaA,WAAWluD,KARlBrb,MASTyZ,EAAO8rF,UATEvlG,KAUJ20G,SAAWA,SAASt5F,KAVhBrb,OAAAA,KAaNg7C,QAAUA,QAAQ3/B,KAbZrb,MAeb,IAAI2Q,IAAY8I,EAAOi4F,OAGvB,IAAKruF,QAAQC,OAASD,QAAQG,cAC5BtU,EAAGtF,iBAAiB0sB,EAAYC,MAnBrBv2B,KAmBmCqpE,cAAc,GAC5D7/D,IAAII,iBAAiB0sB,EAAYE,KApBtBx2B,KAoBmCspE,YAAa34D,GAC3DnH,IAAII,iBAAiB0sB,EAAYG,IArBtBz2B,KAqBkCupE,YAAY,OACpD,CACL,GAAIlmD,QAAQC,MAAO,CACjB,IAAIM,IAAwC,eAAtB0S,EAAYC,QAA0BlT,QAAQO,kBAAmBnK,EAAOq7F,mBAAmB,CAAE5+E,SAAS,EAAMvlB,SAAS,GAC3IzB,EAAGtF,iBAAiB0sB,EAAYC,MAzBvBv2B,KAyBqCqpE,aAAczlD,GAC5D1U,EAAGtF,iBAAiB0sB,EAAYE,KA1BvBx2B,KA0BoCspE,YAAajmD,QAAQO,gBAAkB,CAAEsS,SAAS,EAAOvlB,QAASA,GAAYA,GAC3HzB,EAAGtF,iBAAiB0sB,EAAYG,IA3BvBz2B,KA2BmCupE,WAAY3lD,GACpD0S,EAAY2I,QACd/vB,EAAGtF,iBAAiB0sB,EAAY2I,OA7BzBj/B,KA6BwCupE,WAAY3lD,GAExDgxF,qBACHprG,IAAII,iBAAiB,aAAcirG,oBACnCD,oBAAqB,IAGpBn7F,EAAOi1F,gBAAkBxqF,OAAOI,MAAQJ,OAAOK,SAAa9K,EAAOi1F,gBAAkBrrF,QAAQC,OAASY,OAAOI,OAChHpV,EAAGtF,iBAAiB,YArCX5J,KAqC+BqpE,cAAc,GACtD7/D,IAAII,iBAAiB,YAtCZ5J,KAsCgCspE,YAAa34D,GACtDnH,IAAII,iBAAiB,UAvCZ5J,KAuC8BupE,YAAY,KAInD9vD,EAAOg7F,eAAiBh7F,EAAOi7F,2BACjCxlG,EAAGtF,iBAAiB,QA5CT5J,KA4CyBg7C,SAAS,GAE3CvhC,EAAO8rF,SACT2G,EAAUtiG,iBAAiB,SA/ChB5J,KA+CiC20G,UAI1Cl7F,EAAOs7F,qBAnDE/0G,KAoDJsQ,GAAI4T,OAAOI,KAAOJ,OAAOK,QAAU,0CAA4C,wBAA0BqsC,UAAU,GApD/G5wD,KAsDJsQ,GAAG,iBAAkBsgD,UAAU,GAI1C,SAASuL,eACP,IAEI1iD,EAFSzZ,KAEOyZ,OAChB6c,EAHSt2B,KAGYs2B,YACrBpnB,EAJSlP,KAIGkP,GACZg9F,EALSlsG,KAKUksG,UAEnBv7F,IAAY8I,EAAOi4F,OAGvB,IAAKruF,QAAQC,OAASD,QAAQG,cAC5BtU,EAAGrF,oBAAoBysB,EAAYC,MAXxBv2B,KAWsCqpE,cAAc,GAC/D7/D,IAAIK,oBAAoBysB,EAAYE,KAZzBx2B,KAYsCspE,YAAa34D,GAC9DnH,IAAIK,oBAAoBysB,EAAYG,IAbzBz2B,KAaqCupE,YAAY,OACvD,CACL,GAAIlmD,QAAQC,MAAO,CACjB,IAAIM,IAAwC,iBAAtB0S,EAAYC,QAA4BlT,QAAQO,kBAAmBnK,EAAOq7F,mBAAmB,CAAE5+E,SAAS,EAAMvlB,SAAS,GAC7IzB,EAAGrF,oBAAoBysB,EAAYC,MAjB1Bv2B,KAiBwCqpE,aAAczlD,GAC/D1U,EAAGrF,oBAAoBysB,EAAYE,KAlB1Bx2B,KAkBuCspE,YAAa34D,GAC7DzB,EAAGrF,oBAAoBysB,EAAYG,IAnB1Bz2B,KAmBsCupE,WAAY3lD,GACvD0S,EAAY2I,QACd/vB,EAAGrF,oBAAoBysB,EAAY2I,OArB5Bj/B,KAqB2CupE,WAAY3lD,IAG7DnK,EAAOi1F,gBAAkBxqF,OAAOI,MAAQJ,OAAOK,SAAa9K,EAAOi1F,gBAAkBrrF,QAAQC,OAASY,OAAOI,OAChHpV,EAAGrF,oBAAoB,YAzBd7J,KAyBkCqpE,cAAc,GACzD7/D,IAAIK,oBAAoB,YA1Bf7J,KA0BmCspE,YAAa34D,GACzDnH,IAAIK,oBAAoB,UA3Bf7J,KA2BiCupE,YAAY,KAItD9vD,EAAOg7F,eAAiBh7F,EAAOi7F,2BACjCxlG,EAAGrF,oBAAoB,QAhCZ7J,KAgC4Bg7C,SAAS,GAG9CvhC,EAAO8rF,SACT2G,EAAUriG,oBAAoB,SApCnB7J,KAoCoC20G,UApCpC30G,KAwCN2R,IAAKuS,OAAOI,KAAOJ,OAAOK,QAAU,0CAA4C,wBAA0BqsC,UAGnH,IAAIv/C,OAAS,CACXwkC,aAAcA,aACdsmB,aAAcA,cAGhB,SAASi4C,gBACP,IACIlwD,EADSlkD,KACYkkD,YACrB31B,EAFSvuB,KAEYuuB,YACrB4+E,EAHSntG,KAGamtG,kBAAoC,IAAjBA,IAA0BA,EAAe,GACtF,IAAI1zF,EAJSzZ,KAIOyZ,OAChB6P,EALStpB,KAKIspB,IACb6qF,EAAc16F,EAAO06F,YACzB,GAAKA,KAAgBA,GAAmD,IAApCjwG,OAAO2B,KAAKsuG,GAAa7yG,QAA7D,CAGA,IAAI+jE,EAVSrlE,KAUWg1G,cAAcb,GAEtC,GAAI9uC,GAZSrlE,KAYYi1G,oBAAsB5vC,EAAY,CACzD,IAAI6vC,EAAuB7vC,KAAc8uC,EAAcA,EAAY9uC,QAAcllE,EAC7E+0G,GACF,CAAC,gBAAiB,eAAgB,iBAAkB,qBAAsB,mBAAmBnxG,SAAQ,SAAUsa,GAC7G,IAAI81B,EAAa+gE,EAAqB72F,QACZ,IAAf81B,IAIT+gE,EAAqB72F,GAHT,kBAAVA,GAA6C,SAAf81B,GAAwC,SAAfA,EAEtC,kBAAV91B,EACqB7O,WAAW2kC,GAEX3yB,SAAS2yB,EAAY,IAJrB,WASpC,IAAIghE,EAAmBD,GA5BZl1G,KA4B2CunB,eAClD6tF,EAAc37F,EAAO+sF,gBAAkB,EACvC6O,EAAaF,EAAiB3O,gBAAkB,EAChD4O,IAAgBC,EAClB/rF,EAAIpb,YAAcuL,EAA6B,uBAAI,YAAeA,EAA6B,uBAAI,oBACzF27F,GAAeC,IACzB/rF,EAAIzb,SAAW4L,EAA6B,uBAAI,YACH,WAAzC07F,EAAiBzO,qBACnBp9E,EAAIzb,SAAW4L,EAA6B,uBAAI,oBAIpD,IAAI67F,EAAmBH,EAAiB9xE,WAAa8xE,EAAiB9xE,YAAc5pB,EAAO4pB,UACvFkyE,EAAc97F,EAAOilD,OAASy2C,EAAiB1O,gBAAkBhtF,EAAOgtF,eAAiB6O,GAEzFA,GAAoB/mF,GA3CbvuB,KA4CFw1G,kBAGTt4F,MAAM5U,OA/CKtI,KA+CSyZ,OAAQ07F,GAE5Bj4F,MAAM5U,OAjDKtI,KAiDU,CACnBgxG,eAlDShxG,KAkDcyZ,OAAOu3F,eAC9BlE,eAnDS9sG,KAmDcyZ,OAAOqzF,eAC9BC,eApDS/sG,KAoDcyZ,OAAOszF,iBApDrB/sG,KAuDJi1G,kBAAoB5vC,EAEvBkwC,GAAehnF,IAzDRvuB,KA0DFuuG,cA1DEvuG,KA2DFguG,aA3DEhuG,KA4DFykG,eA5DEzkG,KA6DF+hE,QAAS7d,EAAcipD,EA7DrBntG,KA6D4CmtG,aAAc,GAAG,IA7D7DntG,KAgEJ2mB,KAAK,aAAcwuF,KAI9B,SAASH,cAAeb,GAEtB,GAAKA,EAAL,CACA,IAAI9uC,GAAa,EAEbowC,EAASvxG,OAAO2B,KAAKsuG,GAAax/F,KAAI,SAAU+gG,GAClD,GAAqB,iBAAVA,GAA6C,IAAvBA,EAAM/zG,QAAQ,KAAY,CACzD,IAAIg0G,EAAWnmG,WAAWkmG,EAAME,OAAO,IAEvC,MAAO,CAAElnG,MADGpD,IAAIkI,YAAcmiG,EACPD,MAAOA,GAEhC,MAAO,CAAEhnG,MAAOgnG,EAAOA,MAAOA,MAGhCD,EAAOzsB,MAAK,SAAUxvE,EAAG4H,GAAK,OAAOI,SAAShI,EAAE9K,MAAO,IAAM8S,SAASJ,EAAE1S,MAAO,OAC/E,IAAK,IAAI1N,EAAI,EAAGA,EAAIy0G,EAAOn0G,OAAQN,GAAK,EAAG,CACzC,IAAI+Z,EAAM06F,EAAOz0G,GACb00G,EAAQ36F,EAAI26F,MACJ36F,EAAIrM,OACHpD,IAAI2H,aACfoyD,EAAaqwC,GAGjB,OAAOrwC,GAAc,OAGvB,IAAI8uC,YAAc,CAAEC,cAAeA,cAAeY,cAAeA,eAEjE,SAASa,aACP,IACIhjF,EADS7yB,KACW6yB,WACpBpZ,EAFSzZ,KAEOyZ,OAChBiS,EAHS1rB,KAGI0rB,IACbpC,EAJStpB,KAIIspB,IACbwsF,EAAW,GAEfA,EAASp0G,KAAK,eACdo0G,EAASp0G,KAAK+X,EAAO4pB,WAEjB5pB,EAAOy3E,UACT4kB,EAASp0G,KAAK,aAEZ+X,EAAOqwF,YACTgM,EAASp0G,KAAK,cAEZgqB,GACFoqF,EAASp0G,KAAK,OAEZ+X,EAAO+sF,gBAAkB,IAC3BsP,EAASp0G,KAAK,YACqB,WAA/B+X,EAAOitF,qBACToP,EAASp0G,KAAK,oBAGdwiB,OAAOK,SACTuxF,EAASp0G,KAAK,WAEZwiB,OAAOI,KACTwxF,EAASp0G,KAAK,OAGZ+X,EAAO8rF,SACTuQ,EAASp0G,KAAK,YAGhBo0G,EAAS/xG,SAAQ,SAAUm1B,GACzBrG,EAAWnxB,KAAK+X,EAAOs8F,uBAAyB78E,MAGlD5P,EAAIzb,SAASglB,EAAW1uB,KAAK,MAG/B,SAAS6xG,gBACP,IACI1sF,EADStpB,KACIspB,IACbuJ,EAFS7yB,KAEW6yB,WAExBvJ,EAAIpb,YAAY2kB,EAAW1uB,KAAK,MAGlC,IAAI4J,QAAU,CAAE8nG,WAAYA,WAAYG,cAAeA,eAEvD,SAASngB,UAAWU,EAAS/tF,EAAKytG,EAAQC,EAAOC,EAAkB3oG,GACjE,IAAI8sE,EACJ,SAAS87B,IACH5oG,GAAYA,IAEFf,EAAE8pF,GAAS1gF,OAAO,WAAW,IAEzB0gF,EAAQt8E,UAAak8F,EAmBvCC,IAlBI5tG,IACF8xE,EAAQ,IAAIhvE,IAAIY,OACVolB,OAAS8kF,EACf97B,EAAMhqD,QAAU8lF,EACZF,IACF57B,EAAM47B,MAAQA,GAEZD,IACF37B,EAAM27B,OAASA,GAEbztG,IACF8xE,EAAM9xE,IAAMA,IAGd4tG,IAQN,SAASC,gBACP,IAAIx0C,EAAS7hE,KAEb,SAASo2G,IACH,MAAOv0C,GAA8CA,IAAUA,EAAOlb,iBAC9CxmD,IAAxB0hE,EAAOy0C,eAA8Bz0C,EAAOy0C,cAAgB,GAC5Dz0C,EAAOy0C,eAAiBz0C,EAAO00C,aAAaj1G,SAC1CugE,EAAOpoD,OAAO+8F,qBAAuB30C,EAAO/N,SAChD+N,EAAOl7C,KAAK,iBANhBk7C,EAAO00C,aAAe10C,EAAOv4C,IAAIrS,KAAK,OAStC,IAAK,IAAIjW,EAAI,EAAGA,EAAI6gE,EAAO00C,aAAaj1G,OAAQN,GAAK,EAAG,CACtD,IAAIu1F,EAAU10B,EAAO00C,aAAav1G,GAClC6gE,EAAOg0B,UACLU,EACAA,EAAQkgB,YAAclgB,EAAQ3nF,aAAa,OAC3C2nF,EAAQ0f,QAAU1f,EAAQ3nF,aAAa,UACvC2nF,EAAQ2f,OAAS3f,EAAQ3nF,aAAa,UACtC,EACAwnG,IAKN,IAAIM,OAAS,CACX7gB,UAAWA,UACXwgB,cAAeA,eAGjB,SAASvN,gBACP,IACIrvF,EADSzZ,KACOyZ,OAChBk9F,EAFS32G,KAEU2uG,SACnBiI,EAHS52G,KAGkBglG,OAAO1jG,OAAS,GAAMmY,EAAOgsF,mBAAsBhsF,EAAOqsF,cAH5E9lG,KAGmGglG,OAAO1jG,OAAS,GAHnHtB,KAGkIglG,OAAO,GAAe,YAHxJhlG,KAGmKglG,OAAO1jG,OAEnLmY,EAAOgsF,oBAAsBhsF,EAAOksF,mBAAqBiR,EALhD52G,KAMJ2uG,SAAWiI,GANP52G,KAMmCi+C,KANnCj+C,KAQJ2uG,SAAsC,IARlC3uG,KAQcklG,SAAS5jG,OARvBtB,KAWN8sG,gBAXM9sG,KAWmB2uG,SAXnB3uG,KAYN+sG,gBAZM/sG,KAYmB2uG,SAG5BgI,IAfS32G,KAeY2uG,UAfZ3uG,KAe+B2mB,KAf/B3mB,KAe2C2uG,SAAW,OAAS,UAExEgI,GAAaA,IAjBJ32G,KAiByB2uG,WAjBzB3uG,KAkBJqqG,OAAQ,EAlBJrqG,KAmBJg0G,WAAWlgD,UAItB,IAAI+iD,gBAAkB,CAAE/N,cAAeA,eAEnC58E,SAAW,CACbK,MAAM,EACN8W,UAAW,aACXwsE,kBAAmB,YACnBhD,aAAc,EACd1D,MAAO,IACP5D,SAAS,EACTwP,sBAAsB,EAEtBxI,gCAAgC,EAGhC+D,oBAAoB,EACpBE,mBAAoB,GAGpBtf,UAAU,EACVmhB,kBAAkB,EAClBO,sBAAuB,EACvBQ,wBAAwB,EACxBD,4BAA6B,EAC7BT,8BAA+B,EAC/BW,gBAAgB,EAChBZ,wBAAyB,IAGzB3I,YAAY,EAGZ7B,gBAAgB,EAGhB8D,kBAAkB,EAGlB9oC,OAAQ,QAGRkxC,iBAAah0G,EAGb2lG,aAAc,EACdW,cAAe,EACfD,gBAAiB,EACjBE,oBAAqB,SACrBM,eAAgB,EAChBgB,mBAAoB,EACpBD,gBAAgB,EAChBK,sBAAsB,EACtB3C,mBAAoB,EACpBE,kBAAmB,EACnB4F,qBAAqB,EACrB9C,0BAA0B,EAG1BI,eAAe,EAGflB,cAAc,EAGdiK,WAAY,EACZL,WAAY,GACZ7C,eAAe,EACfqF,aAAa,EACbF,YAAY,EACZC,gBAAiB,GACjBN,aAAc,IACdxB,cAAc,EACdhB,gBAAgB,EAChBrtC,UAAW,EACX8tC,0BAA0B,EAC1BR,0BAA0B,EAC1BC,+BAA+B,EAC/BG,qBAAqB,EAGrByF,mBAAmB,EAGnB/E,YAAY,EACZD,gBAAiB,IAGjB/I,qBAAqB,EACrBC,uBAAuB,EAGvB8F,YAAY,EAGZ2F,eAAe,EACfC,0BAA0B,EAC1B5I,qBAAqB,EAGrBuK,eAAe,EACfG,qBAAqB,EAGrB93C,MAAM,EACN0vC,qBAAsB,EACtBjB,aAAc,KACdc,wBAAwB,EAGxBlB,gBAAgB,EAChBD,gBAAgB,EAChBrhD,aAAc,KACdskD,WAAW,EACXgH,eAAgB,oBAChB/G,kBAAmB,KAGnB8E,kBAAkB,EAGlBiB,uBAAwB,oBACxBiB,WAAY,eACZC,gBAAiB,+BACjBtM,iBAAkB,sBAClBE,0BAA2B,gCAC3BlB,kBAAmB,uBACnBiB,oBAAqB,yBACrBG,eAAgB,oBAChBG,wBAAyB,8BACzBD,eAAgB,oBAChBE,wBAAyB,8BACzB+L,aAAc,iBAGdzL,oBAAoB,GAKlB0L,WAAa,CACfrjD,OAAQA,OACRqB,UAAWA,UACXjlD,WAAY08F,aACZ9F,MAAOA,MACPpoC,KAAMA,KACNowC,WAAYA,WACZY,aAAcA,aACdr+F,OAAQA,OACR8iG,YAAaA,YACbrL,cAAe+N,gBACf9oG,QAASA,QACT2oG,OAAQA,QAGNU,iBAAmB,GAEnBC,OAAuB,SAAUC,GACnC,SAASD,IAIP,IAHA,IAAI9mG,EAIArB,EACAuK,EAHA1R,EAAO,GAAIC,EAAMC,UAAU3G,OACvB0G,KAAQD,EAAMC,GAAQC,UAAWD,GAGrB,IAAhBD,EAAKzG,QAAgByG,EAAK,GAAG9D,aAAe8D,EAAK,GAAG9D,cAAgBC,OACtEuV,EAAS1R,EAAK,IAEEmH,GAAfqB,EAASxI,GAAkB,GAAI0R,EAASlJ,EAAO,IAE7CkJ,IAAUA,EAAS,IAExBA,EAASyD,MAAM5U,OAAO,GAAImR,GACtBvK,IAAOuK,EAAOvK,KAAMuK,EAAOvK,GAAKA,GAEpCooG,EAAYpxG,KAAKlG,KAAMyZ,GAEvBvV,OAAO2B,KAAKsxG,YAAYpzG,SAAQ,SAAUwzG,GACxCrzG,OAAO2B,KAAKsxG,WAAWI,IAAiBxzG,SAAQ,SAAUyzG,GACnDH,EAAO5uG,UAAU+uG,KACpBH,EAAO5uG,UAAU+uG,GAAeL,WAAWI,GAAgBC,UAMjE,IAAI31C,EAAS7hE,UACiB,IAAnB6hE,EAAOn6C,UAChBm6C,EAAOn6C,QAAU,IAEnBxjB,OAAO2B,KAAKg8D,EAAOn6C,SAAS3jB,SAAQ,SAAU4jB,GAC5C,IAAIhoB,EAASkiE,EAAOn6C,QAAQC,GAC5B,GAAIhoB,EAAO8Z,OAAQ,CACjB,IAAIg+F,EAAkBvzG,OAAO2B,KAAKlG,EAAO8Z,QAAQ,GAC7CoO,EAAeloB,EAAO8Z,OAAOg+F,GACjC,GAA4B,iBAAjB5vF,GAA8C,OAAjBA,EAAyB,OACjE,KAAM4vF,KAAmBh+F,MAAU,YAAaoO,GAAiB,QACjC,IAA5BpO,EAAOg+F,KACTh+F,EAAOg+F,GAAmB,CAAE97D,SAAS,IAGF,iBAA5BliC,EAAOg+F,IACT,YAAah+F,EAAOg+F,KAEzBh+F,EAAOg+F,GAAiB97D,SAAU,GAE/BliC,EAAOg+F,KAAoBh+F,EAAOg+F,GAAmB,CAAE97D,SAAS,QAKzE,IAAI+7D,EAAex6F,MAAM5U,OAAO,GAAI4jB,UACpC21C,EAAOp6C,iBAAiBiwF,GAGxB71C,EAAOpoD,OAASyD,MAAM5U,OAAO,GAAIovG,EAAcN,iBAAkB39F,GACjEooD,EAAOt6C,eAAiBrK,MAAM5U,OAAO,GAAIu5D,EAAOpoD,QAChDooD,EAAO51C,aAAe/O,MAAM5U,OAAO,GAAImR,GAGvCooD,EAAOp1D,EAAIA,EAGX,IAAI6c,EAAM7c,EAAEo1D,EAAOpoD,OAAOvK,IAG1B,GAFAA,EAAKoa,EAAI,GAET,CAIA,GAAIA,EAAIhoB,OAAS,EAAG,CAClB,IAAIq2G,EAAU,GAKd,OAJAruF,EAAIhjB,MAAK,SAAUK,EAAO+9D,GACxB,IAAIkzC,EAAY16F,MAAM5U,OAAO,GAAImR,EAAQ,CAAEvK,GAAIw1D,IAC/CizC,EAAQj2G,KAAK,IAAI21G,EAAOO,OAEnBD,EAOT,IAAIp0B,EAyDIjgE,EACAmB,EAmER,OAjIAvV,EAAG2yD,OAASA,EACZv4C,EAAI5kB,KAAK,SAAUm9D,GAIf3yD,GAAMA,EAAG2oG,YAAc3oG,EAAG2oG,WAAW5tG,eACvCs5E,EAAa92E,EAAEyC,EAAG2oG,WAAW5tG,cAAe,IAAO43D,EAAOpoD,OAAmB,gBAElElP,SAAW,SAAUjF,GAAW,OAAOgkB,EAAI/e,SAASjF,IAE/Di+E,EAAaj6D,EAAI/e,SAAU,IAAOs3D,EAAOpoD,OAAmB,cAG9DyD,MAAM5U,OAAOu5D,EAAQ,CACnBv4C,IAAKA,EACLpa,GAAIA,EACJq0E,WAAYA,EACZ2oB,UAAW3oB,EAAW,GAGtB1wD,WAAY,GAGZmyE,OAAQv4F,IACR04F,WAAY,GACZD,SAAU,GACVE,gBAAiB,GAGjBpkB,aAAc,WACZ,MAAmC,eAA5Bnf,EAAOpoD,OAAO4pB,WAEvBmhE,WAAY,WACV,MAAmC,aAA5B3iC,EAAOpoD,OAAO4pB,WAGvB3X,IAA+B,QAAzBxc,EAAGq6E,IAAIn8E,eAAoD,QAAzBkc,EAAIpW,IAAI,aAChDyxF,aAA0C,eAA5B9iC,EAAOpoD,OAAO4pB,YAAwD,QAAzBn0B,EAAGq6E,IAAIn8E,eAAoD,QAAzBkc,EAAIpW,IAAI,cACrG0xF,SAAwC,gBAA9BrhB,EAAWrwE,IAAI,WAGzBgxC,YAAa,EACbwmD,UAAW,EAGXN,aAAa,EACbC,OAAO,EAGPl1C,UAAW,EACXg3C,kBAAmB,EACnBpzF,SAAU,EACVy5F,SAAU,EACV74F,WAAW,EAGXmzF,eAAgBjrC,EAAOpoD,OAAOqzF,eAC9BC,eAAgBlrC,EAAOpoD,OAAOszF,eAG9Bz2E,aACMhT,EAAQ,CAAC,aAAc,YAAa,WAAY,eAChDmB,EAAU,CAAC,YAAa,YAAa,WACrCpB,QAAQG,gBACViB,EAAU,CAAC,cAAe,cAAe,cAE3Co9C,EAAOi2C,iBAAmB,CACxBvhF,MAAOjT,EAAM,GACbkT,KAAMlT,EAAM,GACZmT,IAAKnT,EAAM,GACX2b,OAAQ3b,EAAM,IAEhBu+C,EAAOk2C,mBAAqB,CAC1BxhF,MAAO9R,EAAQ,GACf+R,KAAM/R,EAAQ,GACdgS,IAAKhS,EAAQ,IAERpB,QAAQC,QAAUu+C,EAAOpoD,OAAOi1F,cAAgB7sC,EAAOi2C,iBAAmBj2C,EAAOk2C,oBAE1FpI,gBAAiB,CACfryE,eAAWn9B,EACXwzB,aAASxzB,EACTuwG,yBAAqBvwG,EACrB68B,oBAAgB78B,EAChB08B,iBAAa18B,EACbwvD,sBAAkBxvD,EAClBuvD,oBAAgBvvD,EAChB0wG,wBAAoB1wG,EAEpB2wG,aAAc,wDAEdsB,cAAel1F,MAAMc,MACrBg6F,kBAAc73G,EAEd8xG,WAAY,GACZN,yBAAqBxxG,EACrB2vG,kBAAc3vG,EACdwwG,iBAAaxwG,GAIf8vG,YAAY,EAGZe,eAAgBnvC,EAAOpoD,OAAOu3F,eAE9B95E,QAAS,CACPk5E,OAAQ,EACRC,OAAQ,EACRH,SAAU,EACVC,SAAU,EACV5xD,KAAM,GAIRg4D,aAAc,GACdD,aAAc,IAKhBz0C,EAAOx5C,aAGHw5C,EAAOpoD,OAAO8S,MAChBs1C,EAAOt1C,OAIFs1C,GAGJy1C,IAAcD,EAAOnwF,UAAYowF,GACtCD,EAAO5uG,UAAYvE,OAAOijB,OAAQmwF,GAAeA,EAAY7uG,WAC7D4uG,EAAO5uG,UAAUxE,YAAcozG,EAE/B,IAAIzvG,EAAkB,CAAEwvG,iBAAkB,CAAEvvG,cAAc,GAAOqkB,SAAU,CAAErkB,cAAc,GAAO2P,MAAO,CAAE3P,cAAc,GAAO4E,EAAG,CAAE5E,cAAc,IA2PnJ,OAzPAwvG,EAAO5uG,UAAUqlG,qBAAuB,WACtC,IACIr0F,EADSzZ,KACOyZ,OAChBurF,EAFShlG,KAEOglG,OAChBG,EAHSnlG,KAGWmlG,WACpBT,EAJS1kG,KAIWi+C,KACpBiG,EALSlkD,KAKYkkD,YACrB+zD,EAAM,EACV,GAAIx+F,EAAOsuF,eAAgB,CAGzB,IAFA,IACImQ,EADAhS,EAAYlB,EAAO9gD,GAAa4jD,gBAE3B9mG,EAAIkjD,EAAc,EAAGljD,EAAIgkG,EAAO1jG,OAAQN,GAAK,EAChDgkG,EAAOhkG,KAAOk3G,IAEhBD,GAAO,GADP/R,GAAalB,EAAOhkG,GAAG8mG,iBAEPpD,IAAcwT,GAAY,IAG9C,IAAK,IAAIxoG,EAAMw0C,EAAc,EAAGx0C,GAAO,EAAGA,GAAO,EAC3Cs1F,EAAOt1F,KAASwoG,IAElBD,GAAO,GADP/R,GAAalB,EAAOt1F,GAAKo4F,iBAETpD,IAAcwT,GAAY,SAI9C,IAAK,IAAIxwE,EAAMwc,EAAc,EAAGxc,EAAMs9D,EAAO1jG,OAAQomC,GAAO,EACtDy9D,EAAWz9D,GAAOy9D,EAAWjhD,GAAewgD,IAC9CuT,GAAO,GAIb,OAAOA,GAGTZ,EAAO5uG,UAAUqrD,OAAS,WACxB,IAAI+N,EAAS7hE,KACb,GAAK6hE,IAAUA,EAAOlb,UAAtB,CACA,IAAIu+C,EAAWrjC,EAAOqjC,SAClBzrF,EAASooD,EAAOpoD,OAEhBA,EAAO06F,aACTtyC,EAAOuyC,gBAETvyC,EAAOyiC,aACPziC,EAAO4iC,eACP5iC,EAAOooC,iBACPpoC,EAAO2oC,sBAUH3oC,EAAOpoD,OAAOy3E,UAChB8a,IACInqC,EAAOpoD,OAAOqwF,YAChBjoC,EAAOqnC,sBAG4B,SAAhCrnC,EAAOpoD,OAAOgtF,eAA4B5kC,EAAOpoD,OAAOgtF,cAAgB,IAAM5kC,EAAOwoC,QAAUxoC,EAAOpoD,OAAOsuF,eACnGlmC,EAAOE,QAAQF,EAAOmjC,OAAO1jG,OAAS,EAAG,GAAG,GAAO,GAEnDugE,EAAOE,QAAQF,EAAO3d,YAAa,GAAG,GAAO,KAG1D8nD,IAGAvyF,EAAOovF,eAAiB3D,IAAarjC,EAAOqjC,UAC9CrjC,EAAOinC,gBAETjnC,EAAOl7C,KAAK,UA1BZ,SAASqlF,IACP,IAAImM,EAAiBt2C,EAAO8iC,cAAmC,EAApB9iC,EAAO1M,UAAiB0M,EAAO1M,UACtE4C,EAAez/C,KAAKE,IAAIF,KAAKC,IAAI4/F,EAAgBt2C,EAAO/R,gBAAiB+R,EAAOhS,gBACpFgS,EAAOmqC,aAAaj0C,GACpB8J,EAAOupC,oBACPvpC,EAAO2oC,wBAwBX6M,EAAO5uG,UAAU+sG,gBAAkB,SAA0B4C,EAAcC,QACrD,IAAfA,IAAwBA,GAAa,GAE1C,IACIC,EADSt4G,KACiByZ,OAAO4pB,UAKrC,OAJK+0E,IAEHA,EAAoC,eAArBE,EAAoC,WAAa,cAE7DF,IAAiBE,GAAuC,eAAjBF,GAAkD,aAAjBA,IANhEp4G,KAUNspB,IACJpb,YAAa,GAXHlO,KAWgByZ,OAA6B,uBAAI6+F,GAC3DzqG,SAAU,GAZA7N,KAYayZ,OAA6B,uBAAI2+F,GAZ9Cp4G,KAcNyZ,OAAO4pB,UAAY+0E,EAdbp4G,KAgBNglG,OAAO1+F,MAAK,SAAUg/F,EAAYiT,GAClB,aAAjBH,EACFG,EAAQ9tG,MAAMuI,MAAQ,GAEtBulG,EAAQ9tG,MAAM8I,OAAS,MApBdvT,KAwBN2mB,KAAK,mBACR0xF,GAzBSr4G,KAyBY8zD,UAzBZ9zD,MA8Bfq3G,EAAO5uG,UAAU8jB,KAAO,WACTvsB,KACFuuB,cADEvuB,KAGN2mB,KAAK,cAHC3mB,KAMFyZ,OAAO06F,aANLn0G,KAOJo0G,gBAPIp0G,KAWN61G,aAXM71G,KAcFyZ,OAAOilD,MAdL1+D,KAeJguG,aAfIhuG,KAmBNskG,aAnBMtkG,KAsBNykG,eAtBMzkG,KAwBFyZ,OAAOovF,eAxBL7oG,KAyBJ8oG,gBAzBI9oG,KA6BFyZ,OAAOq1F,YA7BL9uG,KA8BJwuG,gBA9BIxuG,KAiCFyZ,OAAO48F,eAjCLr2G,KAkCJq2G,gBAlCIr2G,KAsCFyZ,OAAOilD,KAtCL1+D,KAuCJ+hE,QAvCI/hE,KAuCWyZ,OAAOozF,aAvClB7sG,KAuCwCmtG,aAAc,EAvCtDntG,KAuCgEyZ,OAAOgyF,oBAvCvEzrG,KAyCJ+hE,QAzCI/hE,KAyCWyZ,OAAOozF,aAAc,EAzChC7sG,KAyC0CyZ,OAAOgyF,oBAzCjDzrG,KA6CN61C,eA7CM71C,KAgDNuuB,aAAc,EAhDRvuB,KAmDN2mB,KAAK,UAGd0wF,EAAO5uG,UAAU8gB,QAAU,SAAkBivF,EAAgBC,QACnC,IAAnBD,IAA4BA,GAAiB,QAC7B,IAAhBC,IAAyBA,GAAc,GAE5C,IAAI52C,EAAS7hE,KACTyZ,EAASooD,EAAOpoD,OAChB6P,EAAMu4C,EAAOv4C,IACbi6D,EAAa1hB,EAAO0hB,WACpByhB,EAASnjC,EAAOmjC,OAEpB,YAA6B,IAAlBnjC,EAAOpoD,QAA0BooD,EAAOlb,YAInDkb,EAAOl7C,KAAK,iBAGZk7C,EAAOtzC,aAAc,EAGrBszC,EAAO1F,eAGH1iD,EAAOilD,MACTmD,EAAO0sC,cAILkK,IACF52C,EAAOm0C,gBACP1sF,EAAIxa,WAAW,SACfy0E,EAAWz0E,WAAW,SAClBk2F,GAAUA,EAAO1jG,QACnB0jG,EACG92F,YAAY,CACXuL,EAAOkwF,kBACPlwF,EAAOkxF,iBACPlxF,EAAOsxF,eACPtxF,EAAOwxF,gBAAiB9mG,KAAK,MAC9B2K,WAAW,SACXA,WAAW,4BAIlB+yD,EAAOl7C,KAAK,WAGZziB,OAAO2B,KAAKg8D,EAAOv7C,iBAAiBviB,SAAQ,SAAUmO,GACpD2vD,EAAOlwD,IAAIO,OAGU,IAAnBsmG,IACF32C,EAAOv4C,IAAI,GAAGu4C,OAAS,KACvBA,EAAOv4C,IAAI5kB,KAAK,SAAU,MAC1BwY,MAAMU,YAAYikD,IAEpBA,EAAOlb,WAAY,GA7CV,MAkDX0wD,EAAOqB,eAAiB,SAAyBC,GAC/Cz7F,MAAM5U,OAAO8uG,iBAAkBuB,IAGjC/wG,EAAgBwvG,iBAAiBluG,IAAM,WACrC,OAAOkuG,kBAGTxvG,EAAgBskB,SAAShjB,IAAM,WAC7B,OAAOgjB,UAGTtkB,EAAgB4P,MAAMtO,IAAM,WAC1B,OAAOouG,GAGT1vG,EAAgB6E,EAAEvD,IAAM,WACtB,OAAOuD,GAGTvI,OAAOiF,iBAAkBkuG,EAAQzvG,GAE1ByvG,EArdiB,CAsdxBpwF,iBAEE2xF,SAAW,CACbp0G,KAAM,SACNkkB,MAAO,CACLrE,OAAQH,QAEVyE,OAAQ,CACNtE,OAAQH,SAIR20F,UAAY,CACdr0G,KAAM,UACNkkB,MAAO,CACLsK,QAAS3P,SAEXsF,OAAQ,CACNqK,QAAS3P,UAITy1F,QAKK,CACLC,SAAUztG,IAAIE,UAAUC,UAAU7J,MAAM,SACxCo3G,UALI50F,GAAK9Y,IAAIE,UAAUC,UAAU2B,cACzBgX,GAAGziB,QAAQ,WAAa,GAAKyiB,GAAGziB,QAAQ,UAAY,GAAKyiB,GAAGziB,QAAQ,WAAa,GAKzFs3G,YAAa,+CAA+C/zG,KAAKoG,IAAIE,UAAUC,YAN3E2Y,GAUJ80F,UAAY,CACd10G,KAAM,UACNkkB,MAAO,CACLywF,QAASL,SAEXnwF,OAAQ,CACNwwF,QAASL,UAITM,OAAS,CACX50G,KAAM,SACN2iB,OAAQ,WACN,IAAI06C,EAAS7hE,KACbkd,MAAM5U,OAAOu5D,EAAQ,CACnBrlD,OAAQ,CACN68F,cAAe,WACRx3C,IAAUA,EAAOlb,WAAckb,EAAOtzC,cAC3CszC,EAAOl7C,KAAK,gBACZk7C,EAAOl7C,KAAK,YAEd2yF,yBAA0B,WACnBz3C,IAAUA,EAAOlb,WAAckb,EAAOtzC,aAC3CszC,EAAOl7C,KAAK,0BAKpBrW,GAAI,CACFic,KAAM,WAGJjhB,IAAI1B,iBAAiB,SAFR5J,KAEyBwc,OAAO68F,eAG7C/tG,IAAI1B,iBAAiB,oBALR5J,KAKoCwc,OAAO88F,2BAE1D/vF,QAAS,WAEPje,IAAIzB,oBAAoB,SADX7J,KAC4Bwc,OAAO68F,eAChD/tG,IAAIzB,oBAAoB,oBAFX7J,KAEuCwc,OAAO88F,6BAK7DC,SAAW,CACb74G,KAAM4K,IAAIkuG,kBAAoBluG,IAAImuG,uBAClCC,OAAQ,SAAgBnxG,EAAQjD,QACb,IAAZA,IAAqBA,EAAU,IAEpC,IAAIu8D,EAAS7hE,KAGT2jB,EAAW,IAAIg2F,EADAJ,SAAS74G,OACI,SAAUk5G,GAIxC,GAAyB,IAArBA,EAAUt4G,OAAd,CAIA,IAAIu4G,EAAiB,WACnBh4C,EAAOl7C,KAAK,iBAAkBizF,EAAU,KAGtCtuG,IAAIiC,sBACNjC,IAAIiC,sBAAsBssG,GAE1BvuG,IAAIe,WAAWwtG,EAAgB,QAV/Bh4C,EAAOl7C,KAAK,iBAAkBizF,EAAU,OAc5Cj2F,EAASsyE,QAAQ1tF,EAAQ,CACvBgH,gBAA0C,IAAvBjK,EAAQiK,YAAoCjK,EAAQiK,WACvEuqG,eAAwC,IAAtBx0G,EAAQw0G,WAAmCx0G,EAAQw0G,UACrEC,mBAAgD,IAA1Bz0G,EAAQy0G,eAAuCz0G,EAAQy0G,gBAG/El4C,EAAOl+C,SAASq2F,UAAUt4G,KAAKiiB,IAEjC4I,KAAM,WAEJ,GAAKlJ,QAAQM,UADA3jB,KACoByZ,OAAOkK,SAAxC,CACA,GAFa3jB,KAEFyZ,OAAOwgG,eAEhB,IADA,IAAIC,EAHOl6G,KAGmBspB,IAAIjlB,UACzBrD,EAAI,EAAGA,EAAIk5G,EAAiB54G,OAAQN,GAAK,EAJvChB,KAKF2jB,SAAS+1F,OAAOQ,EAAiBl5G,IAL/BhB,KASN2jB,SAAS+1F,OATH15G,KASiBspB,IAAI,GAAI,CAAEwwF,UAT3B95G,KAS6CyZ,OAAO0gG,uBATpDn6G,KAYN2jB,SAAS+1F,OAZH15G,KAYiBujF,WAAW,GAAI,CAAEh0E,YAAY,MAE7Dga,QAAS,WACMvpB,KACN2jB,SAASq2F,UAAUj2G,SAAQ,SAAU4f,GAC1CA,EAASuyE,gBAFEl2F,KAIN2jB,SAASq2F,UAAY,KAI5BI,WAAa,CACf51G,KAAM,WACNiV,OAAQ,CACNkK,UAAU,EACVs2F,gBAAgB,EAChBE,sBAAsB,GAExBhzF,OAAQ,WAENjK,MAAM5U,OADOtI,KACQ,CACnB2jB,SAAU,CACR4I,KAAMgtF,SAAShtF,KAAKlR,KAHXrb,MAIT05G,OAAQH,SAASG,OAAOr+F,KAJfrb,MAKTupB,QAASgwF,SAAShwF,QAAQlO,KALjBrb,MAMTg6G,UAAW,OAIjB1pG,GAAI,CACFic,KAAM,WACSvsB,KACN2jB,SAAS4I,QAElBhD,QAAS,WACMvpB,KACN2jB,SAAS4F,aAKlB8wF,QAAU,CACZvmD,OAAQ,SAAgBvlB,GACtB,IAAIszB,EAAS7hE,KACT+a,EAAM8mD,EAAOpoD,OACbgtF,EAAgB1rF,EAAI0rF,cACpBO,EAAiBjsF,EAAIisF,eACrBe,EAAiBhtF,EAAIgtF,eACrB16C,EAAQwU,EAAOpoD,OAAOqrF,QACtBwV,EAAkBjtD,EAAMitD,gBACxBC,EAAiBltD,EAAMktD,eACvB5sD,EAAQkU,EAAOijC,QACf0V,EAAe7sD,EAAMttC,KACrBo6F,EAAa9sD,EAAMvtC,GACnB4kF,EAASr3C,EAAMq3C,OACf0V,EAAqB/sD,EAAMw3C,WAC3BwV,EAAchtD,EAAMgtD,YACpBC,EAAiBjtD,EAAMh6C,OAC3BkuD,EAAOupC,oBACP,IAEIyP,EAIAC,EACAC,EAPA72D,EAAc2d,EAAO3d,aAAe,EAGb22D,EAAvBh5C,EAAO8iC,aAA6B,QACpB9iC,EAAOmf,eAAiB,OAAS,MAIjD+mB,GACF+S,EAAcxiG,KAAK8E,MAAMqpF,EAAgB,GAAKO,EAAiBsT,EAC/DS,EAAeziG,KAAK8E,MAAMqpF,EAAgB,GAAKO,EAAiBuT,IAEhEO,EAAcrU,GAAiBO,EAAiB,GAAKsT,EACrDS,EAAe/T,EAAiBuT,GAElC,IAAIl6F,EAAO/H,KAAKC,KAAK2rC,GAAe,GAAK62D,EAAc,GACnD36F,EAAK9H,KAAKE,KAAK0rC,GAAe,GAAK42D,EAAa9V,EAAO1jG,OAAS,GAChEqS,GAAUkuD,EAAOsjC,WAAW9kF,IAAS,IAAMwhD,EAAOsjC,WAAW,IAAM,GASvE,SAAS6V,IACPn5C,EAAO4iC,eACP5iC,EAAOooC,iBACPpoC,EAAO2oC,sBACH3oC,EAAOqzB,MAAQrzB,EAAOpoD,OAAOy7E,KAAKv5C,SACpCkmB,EAAOqzB,KAAKpsD,OAIhB,GAhBA5rB,MAAM5U,OAAOu5D,EAAOijC,QAAS,CAC3BzkF,KAAMA,EACND,GAAIA,EACJzM,OAAQA,EACRwxF,WAAYtjC,EAAOsjC,aAYjBqV,IAAiBn6F,GAAQo6F,IAAer6F,IAAOmuB,EAKjD,OAJIszB,EAAOsjC,aAAeuV,GAAsB/mG,IAAWinG,GACzD/4C,EAAOmjC,OAAO9xF,IAAI2nG,EAAalnG,EAAS,WAE1CkuD,EAAOooC,iBAGT,GAAIpoC,EAAOpoD,OAAOqrF,QAAQ9qC,eAcxB,OAbA6H,EAAOpoD,OAAOqrF,QAAQ9qC,eAAe9zD,KAAK27D,EAAQ,CAChDluD,OAAQA,EACR0M,KAAMA,EACND,GAAIA,EACJ4kF,OAAS,WAEP,IADA,IAAIiW,EAAiB,GACZj6G,EAAIqf,EAAMrf,GAAKof,EAAIpf,GAAK,EAC/Bi6G,EAAev5G,KAAKsjG,EAAOhkG,IAE7B,OAAOi6G,EALD,UAQVD,IAGF,IAAIE,EAAiB,GACjBC,EAAgB,GACpB,GAAI5sE,EACFszB,EAAO0hB,WAAWtsE,KAAM,IAAO4qD,EAAOpoD,OAAiB,YAAItL,cAE3D,IAAK,IAAInN,EAAIw5G,EAAcx5G,GAAKy5G,EAAYz5G,GAAK,GAC3CA,EAAIqf,GAAQrf,EAAIof,IAClByhD,EAAO0hB,WAAWtsE,KAAM,IAAO4qD,EAAOpoD,OAAiB,WAAI,6BAAgCzY,EAAI,MAAQmN,SAI7G,IAAK,IAAIuB,EAAM,EAAGA,EAAMs1F,EAAO1jG,OAAQoO,GAAO,EACxCA,GAAO2Q,GAAQ3Q,GAAO0Q,SACE,IAAfq6F,GAA8BlsE,EACvC4sE,EAAcz5G,KAAKgO,IAEfA,EAAM+qG,GAAcU,EAAcz5G,KAAKgO,GACvCA,EAAM8qG,GAAgBU,EAAex5G,KAAKgO,KAIpDyrG,EAAcp3G,SAAQ,SAAU4C,GAC9Bk7D,EAAO0hB,WAAWhuE,OAAOolG,EAAY3V,EAAOr+F,GAAQA,OAEtDu0G,EAAelyB,MAAK,SAAUxvE,EAAG4H,GAAK,OAAOA,EAAI5H,KAAMzV,SAAQ,SAAU4C,GACvEk7D,EAAO0hB,WAAWztE,QAAQ6kG,EAAY3V,EAAOr+F,GAAQA,OAEvDk7D,EAAO0hB,WAAWh5E,SAAS,iBAAiB2I,IAAI2nG,EAAalnG,EAAS,MACtEqnG,KAEFL,YAAa,SAAqB7T,EAAOngG,GACvC,IACI8S,EADSzZ,KACOyZ,OAAOqrF,QAC3B,GAAIrrF,EAAOyV,OAFElvB,KAEc8kG,QAAQ51E,MAAMvoB,GACvC,OAHW3G,KAGG8kG,QAAQ51E,MAAMvoB,GAE9B,IAAIy0G,EAAW3hG,EAAOkhG,YAClBluG,EAAEgN,EAAOkhG,YAAYz0G,KANZlG,KAMyB8mG,EAAOngG,IACzC8F,EAAG,eAPMzM,KAOoByZ,OAAiB,WAAI,8BAAkC9S,EAAQ,KAAQmgG,EAAQ,UAGhH,OAFKsU,EAAS5sG,KAAK,4BAA8B4sG,EAAS5sG,KAAK,0BAA2B7H,GACtF8S,EAAOyV,QATElvB,KASc8kG,QAAQ51E,MAAMvoB,GAASy0G,GAC3CA,GAETrM,YAAa,SAAqB/J,GAEhC,GAAsB,iBAAXA,GAAuB,WAAYA,EAC5C,IAAK,IAAIhkG,EAAI,EAAGA,EAAIgkG,EAAO1jG,OAAQN,GAAK,EAClCgkG,EAAOhkG,IAHFhB,KAGe8kG,QAAQE,OAAOtjG,KAAKsjG,EAAOhkG,SAH1ChB,KAMJ8kG,QAAQE,OAAOtjG,KAAKsjG,GANhBhlG,KAQN8kG,QAAQhxC,QAAO,IAExBk7C,aAAc,SAAsBhK,GAClC,IACI9gD,EADSlkD,KACYkkD,YACrB+rC,EAAiB/rC,EAAc,EAC/Bm3D,EAAoB,EAExB,GAAIv4G,MAAMC,QAAQiiG,GAAS,CACzB,IAAK,IAAIhkG,EAAI,EAAGA,EAAIgkG,EAAO1jG,OAAQN,GAAK,EAClCgkG,EAAOhkG,IAPFhB,KAOe8kG,QAAQE,OAAOh0F,QAAQg0F,EAAOhkG,IAExDivF,EAAiB/rC,EAAc8gD,EAAO1jG,OACtC+5G,EAAoBrW,EAAO1jG,YAVhBtB,KAYJ8kG,QAAQE,OAAOh0F,QAAQg0F,GAEhC,GAdahlG,KAcFyZ,OAAOqrF,QAAQ51E,MAAO,CAC/B,IAAIA,EAfOlvB,KAeQ8kG,QAAQ51E,MACvB8uC,EAAW,GACf95D,OAAO2B,KAAKqpB,GAAOnrB,SAAQ,SAAUo6D,GACnC,IAAIm9C,EAAYpsF,EAAMivC,GAClBo9C,EAAgBD,EAAU9sG,KAAK,2BAC/B+sG,GACFD,EAAU9sG,KAAK,0BAA2BgT,SAAS+5F,EAAe,IAAM,GAE1Ev9C,EAASx8C,SAAS28C,EAAa,IAAMk9C,GAAqBC,KAvBjDt7G,KAyBJ8kG,QAAQ51E,MAAQ8uC,EAzBZh+D,KA2BN8kG,QAAQhxC,QAAO,GA3BT9zD,KA4BN+hE,QAAQkuB,EAAgB,IAEjCqf,YAAa,SAAqBC,GAEhC,GAAI,MAAOA,EAAX,CACA,IAAIrrD,EAFSlkD,KAEYkkD,YACzB,GAAIphD,MAAMC,QAAQwsG,GAChB,IAAK,IAAIvuG,EAAIuuG,EAAcjuG,OAAS,EAAGN,GAAK,EAAGA,GAAK,EAJzChB,KAKF8kG,QAAQE,OAAOjzF,OAAOw9F,EAAcvuG,GAAI,GALtChB,KAMEyZ,OAAOqrF,QAAQ51E,cANjBlvB,KAOO8kG,QAAQ51E,MAAMqgF,EAAcvuG,IAExCuuG,EAAcvuG,GAAKkjD,IAAeA,GAAe,GACrDA,EAAc5rC,KAAKC,IAAI2rC,EAAa,QAV3BlkD,KAaJ8kG,QAAQE,OAAOjzF,OAAOw9F,EAAe,GAbjCvvG,KAcAyZ,OAAOqrF,QAAQ51E,cAdflvB,KAeK8kG,QAAQ51E,MAAMqgF,GAE1BA,EAAgBrrD,IAAeA,GAAe,GAClDA,EAAc5rC,KAAKC,IAAI2rC,EAAa,GAlBzBlkD,KAoBN8kG,QAAQhxC,QAAO,GApBT9zD,KAqBN+hE,QAAQ7d,EAAa,KAE9BurD,gBAAiB,WACFzvG,KACN8kG,QAAQE,OAAS,GADXhlG,KAEFyZ,OAAOqrF,QAAQ51E,QAFblvB,KAGJ8kG,QAAQ51E,MAAQ,IAHZlvB,KAKN8kG,QAAQhxC,QAAO,GALT9zD,KAMN+hE,QAAQ,EAAG,KAIlBy5C,UAAY,CACdh3G,KAAM,UACNiV,OAAQ,CACNqrF,QAAS,CACPnpD,SAAS,EACTqpD,OAAQ,GACR91E,OAAO,EACPyrF,YAAa,KACb3gD,eAAgB,KAChBsgD,gBAAiB,EACjBC,eAAgB,IAGpBpzF,OAAQ,WAENjK,MAAM5U,OADOtI,KACQ,CACnB8kG,QAAS,CACPhxC,OAAQumD,QAAQvmD,OAAOz4C,KAHdrb,MAIT+uG,YAAasL,QAAQtL,YAAY1zF,KAJxBrb,MAKTgvG,aAAcqL,QAAQrL,aAAa3zF,KAL1Brb,MAMTsvG,YAAa+K,QAAQ/K,YAAYj0F,KANxBrb,MAOTyvG,gBAAiB4K,QAAQ5K,gBAAgBp0F,KAPhCrb,MAQT26G,YAAaN,QAAQM,YAAYt/F,KARxBrb,MASTglG,OATShlG,KASMyZ,OAAOqrF,QAAQE,OAC9B91E,MAAO,OAIb5e,GAAI,CACFmrG,WAAY,WAEV,GADaz7G,KACDyZ,OAAOqrF,QAAQnpD,QAA3B,CADa37C,KAEN6yB,WAAWnxB,KAFL1B,KAEmByZ,OAA6B,uBAAI,WACjE,IAAIiiG,EAAkB,CACpB3S,qBAAqB,GAEvB7rF,MAAM5U,OANOtI,KAMOyZ,OAAQiiG,GAC5Bx+F,MAAM5U,OAPOtI,KAOOunB,eAAgBm0F,GAPvB17G,KASDyZ,OAAOozF,cATN7sG,KAUJ8kG,QAAQhxC,WAGnBk4C,aAAc,WACChsG,KACDyZ,OAAOqrF,QAAQnpD,SADd37C,KAEN8kG,QAAQhxC,YAKjBnJ,SAAW,CACb5uB,OAAQ,SAAgBtqB,GACtB,IACIia,EADS1rB,KACI2kG,aACb9zF,EAAIY,EACJZ,EAAE++F,gBAAiB/+F,EAAIA,EAAE++F,eAC7B,IAAI+L,EAAK9qG,EAAEm3C,SAAWn3C,EAAE+qG,SAExB,IANa57G,KAMD8sG,iBANC9sG,KAM0BghF,gBAAyB,KAAP26B,GAN5C37G,KAMkEwkG,cAAuB,KAAPmX,GAAqB,KAAPA,GAC3G,OAAO,EAET,IATa37G,KASD+sG,iBATC/sG,KAS0BghF,gBAAyB,KAAP26B,GAT5C37G,KASkEwkG,cAAuB,KAAPmX,GAAqB,KAAPA,GAC3G,OAAO,EAET,KAAI9qG,EAAEgrG,UAAYhrG,EAAEirG,QAAUjrG,EAAEkrG,SAAWlrG,EAAEmrG,SAGzCxyG,IAAIM,eAAiBN,IAAIM,cAAcE,WAA0D,UAA7CR,IAAIM,cAAcE,SAASoD,eAA0E,aAA7C5D,IAAIM,cAAcE,SAASoD,gBAA3I,CAGA,GAlBapN,KAkBFyZ,OAAOwiG,SAASC,iBAA0B,KAAPP,GAAoB,KAAPA,GAAoB,KAAPA,GAAoB,KAAPA,GAAoB,KAAPA,GAAoB,KAAPA,GAAY,CACzH,IAAIQ,GAAS,EAEb,GArBWn8G,KAqBAspB,IAAIjlB,QAAS,IArBbrE,KAqB2ByZ,OAAiB,YAAInY,OAAS,GAA6E,IArBtItB,KAqBqEspB,IAAIjlB,QAAS,IArBlFrE,KAqBgGyZ,OAAuB,kBAAInY,OACpI,OAEF,IAAI86G,EAAc9wG,IAAI2H,WAClBopG,EAAe/wG,IAAIkI,YACnB8oG,EA1BOt8G,KA0BespB,IAAI3V,SAC1B+X,IAAO4wF,EAAajoG,MA3BbrU,KA2B4BspB,IAAI,GAAGpV,YAM9C,IALA,IAAIqoG,EAAc,CAChB,CAACD,EAAajoG,KAAMioG,EAAaloG,KACjC,CAACkoG,EAAajoG,KA9BLrU,KA8BmBgT,MAAOspG,EAAaloG,KAChD,CAACkoG,EAAajoG,KAAMioG,EAAaloG,IA/BxBpU,KA+BqCuT,QAC9C,CAAC+oG,EAAajoG,KAhCLrU,KAgCmBgT,MAAOspG,EAAaloG,IAhCvCpU,KAgCoDuT,SACtDvS,EAAI,EAAGA,EAAIu7G,EAAYj7G,OAAQN,GAAK,EAAG,CAC9C,IAAI00G,EAAQ6G,EAAYv7G,GAEtB00G,EAAM,IAAM,GAAKA,EAAM,IAAM0G,GAC1B1G,EAAM,IAAM,GAAKA,EAAM,IAAM2G,IAEhCF,GAAS,GAGb,IAAKA,EAAU,OA1CJn8G,KA4CFghF,gBACE,KAAP26B,GAAoB,KAAPA,GAAoB,KAAPA,GAAoB,KAAPA,IACrC9qG,EAAEmmB,eAAkBnmB,EAAEmmB,iBACnBnmB,EAAE2rG,aAAc,IAEZ,KAAPb,GAAoB,KAAPA,GAAejwF,KAAiB,KAAPiwF,GAAoB,KAAPA,IAAcjwF,IAjD5D1rB,KAiD2EotG,aACzE,KAAPuO,GAAoB,KAAPA,GAAejwF,KAAiB,KAAPiwF,GAAoB,KAAPA,IAAcjwF,IAlD5D1rB,KAkD2EstG,cAE3E,KAAPqO,GAAoB,KAAPA,GAAoB,KAAPA,GAAoB,KAAPA,IACrC9qG,EAAEmmB,eAAkBnmB,EAAEmmB,iBACnBnmB,EAAE2rG,aAAc,GAEd,KAAPb,GAAoB,KAAPA,GAxDN37G,KAwD0BotG,YAC1B,KAAPuO,GAAoB,KAAPA,GAzDN37G,KAyD0BstG,aAzD1BttG,KA2DN2mB,KAAK,WAAYg1F,KAG1BxlD,OAAQ,WACOn2D,KACFi8G,SAAStgE,UACpBlvC,EAAEjD,KAAK8G,GAAG,UAFGtQ,KAEei8G,SAASlgF,QAFxB/7B,KAGNi8G,SAAStgE,SAAU,IAE5Bya,QAAS,WACMp2D,KACDi8G,SAAStgE,UACrBlvC,EAAEjD,KAAKmI,IAAI,UAFE3R,KAEgBi8G,SAASlgF,QAFzB/7B,KAGNi8G,SAAStgE,SAAU,KAI1B8gE,WAAa,CACfj4G,KAAM,WACNiV,OAAQ,CACNwiG,SAAU,CACRtgE,SAAS,EACTugE,gBAAgB,IAGpB/0F,OAAQ,WAENjK,MAAM5U,OADOtI,KACQ,CACnBi8G,SAAU,CACRtgE,SAAS,EACTwa,OAAQxL,SAASwL,OAAO96C,KAJfrb,MAKTo2D,QAASzL,SAASyL,QAAQ/6C,KALjBrb,MAMT+7B,OAAQ4uB,SAAS5uB,OAAO1gB,KANfrb,UAUfsQ,GAAI,CACFic,KAAM,WACSvsB,KACFyZ,OAAOwiG,SAAStgE,SADd37C,KAEJi8G,SAAS9lD,UAGpB5sC,QAAS,WACMvpB,KACFi8G,SAAStgE,SADP37C,KAEJi8G,SAAS7lD,aAMxB,SAASsmD,mBACP,IACIC,EADY,YACenzG,IAE/B,IAAKmzG,EAAa,CAChB,IAAI7hG,EAAUtR,IAAIc,cAAc,OAChCwQ,EAAQpQ,aALM,UAKkB,WAChCiyG,EAA4C,mBAAvB7hG,EAAiB,QAcxC,OAXK6hG,GACAnzG,IAAIozG,gBACJpzG,IAAIozG,eAAeC,aAGuB,IAA1CrzG,IAAIozG,eAAeC,WAAW,GAAI,MAGrCF,EAAcnzG,IAAIozG,eAAeC,WAAW,eAAgB,QAGvDF,EAET,IAAIG,WAAa,CACfC,eAAgB7/F,MAAMc,MACtBg/F,yBAAqB78G,EACrB88G,kBAAmB,GACnBxrG,MAAO,WACL,OAAInG,IAAIE,UAAUC,UAAU9J,QAAQ,YAAc,EAAY,iBACvD+6G,mBAAqB,QAAU,cAExCnP,UAAW,SAAmB18F,GAE5B,IAIIqsG,EAAK,EACLC,EAAK,EACLC,EAAK,EACLC,EAAK,EAuDT,MApDI,WAAYxsG,IACdssG,EAAKtsG,EAAE0B,QAEL,eAAgB1B,IAClBssG,GAAMtsG,EAAEysG,WAAa,KAEnB,gBAAiBzsG,IACnBssG,GAAMtsG,EAAE0sG,YAAc,KAEpB,gBAAiB1sG,IACnBqsG,GAAMrsG,EAAE2sG,YAAc,KAIpB,SAAU3sG,GAAKA,EAAE8N,OAAS9N,EAAE4sG,kBAC9BP,EAAKC,EACLA,EAAK,GAGPC,EA7BiB,GA6BZF,EACLG,EA9BiB,GA8BZF,EAED,WAAYtsG,IACdwsG,EAAKxsG,EAAEugF,QAEL,WAAYvgF,IACdusG,EAAKvsG,EAAEsgF,QAGLtgF,EAAEgrG,WAAauB,IACjBA,EAAKC,EACLA,EAAK,IAGFD,GAAMC,IAAOxsG,EAAE6sG,YACE,IAAhB7sG,EAAE6sG,WACJN,GA7Cc,GA8CdC,GA9Cc,KAgDdD,GA/Cc,IAgDdC,GAhDc,MAqDdD,IAAOF,IACTA,EAAME,EAAK,GAAM,EAAI,GAEnBC,IAAOF,IACTA,EAAME,EAAK,GAAM,EAAI,GAGhB,CACLM,MAAOT,EACPU,MAAOT,EACPU,OAAQT,EACRU,OAAQT,IAGZU,iBAAkB,WACH/9G,KACNg+G,cAAe,GAExBC,iBAAkB,WACHj+G,KACNg+G,cAAe,GAExBjiF,OAAQ,SAAgBtqB,GACtB,IAAIZ,EAAIY,EACJowD,EAAS7hE,KACTyZ,EAASooD,EAAOpoD,OAAOq3E,WAEvBjvB,EAAOpoD,OAAO8rF,SAChB10F,EAAEmmB,iBAGJ,IAAIzuB,EAASs5D,EAAOv4C,IAIpB,GAH8C,cAA1Cu4C,EAAOpoD,OAAOq3E,WAAWotB,eAC3B31G,EAASkE,EAAEo1D,EAAOpoD,OAAOq3E,WAAWotB,gBAEjCr8C,EAAOm8C,eAAiBz1G,EAAO,GAAG8F,SAASwC,EAAEtI,UAAYkR,EAAO0kG,eAAkB,OAAO,EAE1FttG,EAAE++F,gBAAiB/+F,EAAIA,EAAE++F,eAC7B,IAAIwO,EAAQ,EACRC,EAAYx8C,EAAO8iC,cAAgB,EAAI,EAEvCjgG,EAAOo4G,WAAWvP,UAAU18F,GAEhC,GAAI4I,EAAO6kG,YACT,GAAIz8C,EAAOmf,eAAgB,CACzB,KAAI1oE,KAAKuJ,IAAInd,EAAKm5G,QAAUvlG,KAAKuJ,IAAInd,EAAKo5G,SACnC,OAAO,EADuCM,EAAQ15G,EAAKm5G,OAASQ,MAEtE,CAAA,KAAI/lG,KAAKuJ,IAAInd,EAAKo5G,QAAUxlG,KAAKuJ,IAAInd,EAAKm5G,SAC1C,OAAO,EAD8CO,EAAQ15G,EAAKo5G,YAGzEM,EAAQ9lG,KAAKuJ,IAAInd,EAAKm5G,QAAUvlG,KAAKuJ,IAAInd,EAAKo5G,SAAWp5G,EAAKm5G,OAASQ,GAAa35G,EAAKo5G,OAG3F,GAAc,IAAVM,EAAe,OAAO,EAI1B,GAFI3kG,EAAO8kG,SAAUH,GAASA,GAEzBv8C,EAAOpoD,OAAOy3E,SAoCZ,CAOL,IAAIstB,EAAa,CAAE5lG,KAAMsE,MAAMc,MAAOogG,MAAO9lG,KAAKuJ,IAAIu8F,GAAQ/6E,UAAW/qB,KAAKmmG,KAAKL,IAE/EpB,EADMn7C,EAAOivB,WACaksB,oBAC1B0B,EAAoB1B,GACnBwB,EAAW5lG,KAAOokG,EAAoBpkG,KAAO,KAC7C4lG,EAAWJ,OAASpB,EAAoBoB,OACxCI,EAAWn7E,YAAc25E,EAAoB35E,UAClD,IAAKq7E,EAAmB,CACtB78C,EAAOivB,WAAWksB,yBAAsB78G,EAEpC0hE,EAAOpoD,OAAOilD,MAChBmD,EAAOwrC,UAET,IAAInmE,EAAW26B,EAAOnjD,eAAkB0/F,EAAQ3kG,EAAOklG,YACnDrU,EAAezoC,EAAOuoC,YACtBG,EAAS1oC,EAAOwoC,MAepB,GAbInjE,GAAY26B,EAAOhS,iBAAkB3oB,EAAW26B,EAAOhS,gBACvD3oB,GAAY26B,EAAO/R,iBAAkB5oB,EAAW26B,EAAO/R,gBAE3D+R,EAAOynC,cAAc,GACrBznC,EAAOmqC,aAAa9kE,GACpB26B,EAAOooC,iBACPpoC,EAAOupC,oBACPvpC,EAAO2oC,wBAEDF,GAAgBzoC,EAAOuoC,cAAkBG,GAAU1oC,EAAOwoC,QAC9DxoC,EAAO2oC,sBAGL3oC,EAAOpoD,OAAO45F,eAAgB,CAYhC/mG,aAAau1D,EAAOivB,WAAWnhE,SAC/BkyC,EAAOivB,WAAWnhE,aAAUxvB,EAC5B,IAAIy+G,EAAsB/8C,EAAOivB,WAAWmsB,kBACxC2B,EAAoBt9G,QAAU,IAChCs9G,EAAoB1kG,QAEtB,IAAI2kG,EAAcD,EAAoBt9G,OAASs9G,EAAoBA,EAAoBt9G,OAAS,QAAKnB,EACjG2+G,EAAaF,EAAoB,GAErC,GADAA,EAAoBl9G,KAAK88G,GACrBK,IAAgBL,EAAWJ,MAAQS,EAAYT,OAASI,EAAWn7E,YAAcw7E,EAAYx7E,WAE/Fu7E,EAAoB7sG,OAAO,QACtB,GAAI6sG,EAAoBt9G,QAAU,IAClCk9G,EAAW5lG,KAAOkmG,EAAWlmG,KAAO,KACpCkmG,EAAWV,MAAQI,EAAWJ,OAAS,GACvCI,EAAWJ,OAAS,EACzB,CAOA,IAAIW,EAAkBX,EAAQ,EAAI,GAAM,GACxCv8C,EAAOivB,WAAWksB,oBAAsBwB,EACxCI,EAAoB7sG,OAAO,GAC3B8vD,EAAOivB,WAAWnhE,QAAUzS,MAAMW,UAAS,WACzCgkD,EAAO+rC,eAAe/rC,EAAOpoD,OAAO0vF,OAAO,OAAMhpG,EAAW4+G,KAC3D,GAEAl9C,EAAOivB,WAAWnhE,UAIrBkyC,EAAOivB,WAAWnhE,QAAUzS,MAAMW,UAAS,WAEzCgkD,EAAOivB,WAAWksB,oBAAsBwB,EACxCI,EAAoB7sG,OAAO,GAC3B8vD,EAAO+rC,eAAe/rC,EAAOpoD,OAAO0vF,OAAO,OAAMhpG,EAH3B,MAIrB,MAUP,GALKu+G,GAAqB78C,EAAOl7C,KAAK,SAAU9V,GAG5CgxD,EAAOpoD,OAAO46F,UAAYxyC,EAAOpoD,OAAOulG,8BAAgCn9C,EAAOwyC,SAASv6F,OAExFotB,IAAa26B,EAAOhS,gBAAkB3oB,IAAa26B,EAAO/R,eAAkB,OAAO,OAtI9D,CAE3B,IAAImvD,EAAW,CACbrmG,KAAMsE,MAAMc,MACZogG,MAAO9lG,KAAKuJ,IAAIu8F,GAChB/6E,UAAW/qB,KAAKmmG,KAAKL,GACrBc,IAAKztG,GAIHwrG,EAAoBp7C,EAAOivB,WAAWmsB,kBACtCA,EAAkB37G,QAAU,GAC9B27G,EAAkB/iG,QAEpB,IAAIilG,EAAYlC,EAAkB37G,OAAS27G,EAAkBA,EAAkB37G,OAAS,QAAKnB,EAmB7F,GAlBA88G,EAAkBv7G,KAAKu9G,GAQnBE,GACEF,EAAS57E,YAAc87E,EAAU97E,WAAa47E,EAASb,MAAQe,EAAUf,OAASa,EAASrmG,KAAOumG,EAAUvmG,KAAO,MACrHipD,EAAOivB,WAAWsuB,cAAcH,GAGlCp9C,EAAOivB,WAAWsuB,cAAcH,GAK9Bp9C,EAAOivB,WAAWuuB,cAAcJ,GAClC,OAAO,EA0GX,OAFIpuG,EAAEmmB,eAAkBnmB,EAAEmmB,iBACnBnmB,EAAE2rG,aAAc,GAChB,GAET4C,cAAe,SAAuBH,GAKpC,OAAIA,EAASb,OAAS,GAAKlhG,MAAMc,MAJpBhe,KAImC8wF,WAAWisB,eAAiB,KAgBxEkC,EAAS57E,UAAY,EApBZrjC,KAqBEqqG,QArBFrqG,KAqBkByZ,OAAOilD,MArBzB1+D,KAqB0C2Z,YArB1C3Z,KAsBFotG,YAtBEptG,KAuBF2mB,KAAK,SAAUs4F,EAASC,MAvBtBl/G,KAyBOoqG,cAzBPpqG,KAyB6ByZ,OAAOilD,MAzBpC1+D,KAyBqD2Z,YAzBrD3Z,KA0BJstG,YA1BIttG,KA2BJ2mB,KAAK,SAAUs4F,EAASC,MA3BpBl/G,KA8BN8wF,WAAWisB,gBAAiB,IAAKzxG,IAAIa,MAAQ0M,WAE7C,IAETwmG,cAAe,SAAuBJ,GACpC,IACIxlG,EADSzZ,KACOyZ,OAAOq3E,WAC3B,GAAImuB,EAAS57E,UAAY,GACvB,GAHWrjC,KAGAqqG,QAHArqG,KAGiByZ,OAAOilD,MAAQjlD,EAAO0kG,eAEhD,OAAO,OAEJ,GAPMn+G,KAOKoqG,cAPLpqG,KAO4ByZ,OAAOilD,MAAQjlD,EAAO0kG,eAE7D,OAAO,EAET,OAAO,GAEThoD,OAAQ,WACN,IACI1kD,EAAQqrG,WAAWrrG,QACvB,GAFazR,KAEFyZ,OAAO8rF,QAEhB,OAJWvlG,KAGJksG,UAAUriG,oBAAoB4H,EAH1BzR,KAGwC8wF,WAAW/0D,SACvD,EAET,IAAKtqB,EAAS,OAAO,EACrB,GAPazR,KAOF8wF,WAAWn1C,QAAW,OAAO,EACxC,IAAIpzC,EARSvI,KAQOspB,IAQpB,MAP8C,cATjCtpB,KASFyZ,OAAOq3E,WAAWotB,eAC3B31G,EAASkE,EAVEzM,KAUOyZ,OAAOq3E,WAAWotB,eAEtC31G,EAAO+H,GAAG,aAZGtQ,KAYkB8wF,WAAWitB,kBAC1Cx1G,EAAO+H,GAAG,aAbGtQ,KAakB8wF,WAAWmtB,kBAC1C11G,EAAO+H,GAAGmB,EAdGzR,KAcW8wF,WAAW/0D,QAdtB/7B,KAeN8wF,WAAWn1C,SAAU,GACrB,GAETya,QAAS,WACP,IACI3kD,EAAQqrG,WAAWrrG,QACvB,GAFazR,KAEFyZ,OAAO8rF,QAEhB,OAJWvlG,KAGJksG,UAAUtiG,iBAAiB6H,EAHvBzR,KAGqC8wF,WAAW/0D,SACpD,EAET,IAAKtqB,EAAS,OAAO,EACrB,IAPazR,KAOD8wF,WAAWn1C,QAAW,OAAO,EACzC,IAAIpzC,EARSvI,KAQOspB,IAMpB,MAL8C,cATjCtpB,KASFyZ,OAAOq3E,WAAWotB,eAC3B31G,EAASkE,EAVEzM,KAUOyZ,OAAOq3E,WAAWotB,eAEtC31G,EAAOoJ,IAAIF,EAZEzR,KAYY8wF,WAAW/0D,QAZvB/7B,KAaN8wF,WAAWn1C,SAAU,GACrB,IAIP2jE,aAAe,CACjB96G,KAAM,aACNiV,OAAQ,CACNq3E,WAAY,CACVn1C,SAAS,EACTwiE,gBAAgB,EAChBI,QAAQ,EACRD,aAAa,EACbK,YAAa,EACbT,aAAc,cAGlB/2F,OAAQ,WAENjK,MAAM5U,OADOtI,KACQ,CACnB8wF,WAAY,CACVn1C,SAAS,EACTwa,OAAQ2mD,WAAW3mD,OAAO96C,KAJjBrb,MAKTo2D,QAAS0mD,WAAW1mD,QAAQ/6C,KALnBrb,MAMT+7B,OAAQ+gF,WAAW/gF,OAAO1gB,KANjBrb,MAOT+9G,iBAAkBjB,WAAWiB,iBAAiB1iG,KAPrCrb,MAQTi+G,iBAAkBnB,WAAWmB,iBAAiB5iG,KARrCrb,MASTo/G,cAAetC,WAAWsC,cAAc/jG,KAT/Brb,MAUTq/G,cAAevC,WAAWuC,cAAchkG,KAV/Brb,MAWT+8G,eAAgB7/F,MAAMc,MACtBg/F,yBAAqB78G,EACrB88G,kBAAmB,OAIzB3sG,GAAI,CACFic,KAAM,YACSvsB,KACDyZ,OAAOq3E,WAAWn1C,SADjB37C,KACmCyZ,OAAO8rF,SAD1CvlG,KAEJ8wF,WAAW16B,UAFPp2D,KAIFyZ,OAAOq3E,WAAWn1C,SAJhB37C,KAIkC8wF,WAAW36B,UAE5D5sC,QAAS,WACMvpB,KACFyZ,OAAO8rF,SADLvlG,KAEJ8wF,WAAW36B,SAFPn2D,KAIF8wF,WAAWn1C,SAJT37C,KAI2B8wF,WAAW16B,aAKrDmpD,WAAa,CACfzrD,OAAQ,WAEN,IACIr6C,EADSzZ,KACOyZ,OAAOu6F,WAE3B,IAHah0G,KAGFyZ,OAAOilD,KAAlB,CACA,IAAI3jD,EAJS/a,KAIIg0G,WACbjX,EAAUhiF,EAAIgiF,QACdyiB,EAAUzkG,EAAIykG,QAEdA,GAAWA,EAAQl+G,OAAS,IARnBtB,KASAoqG,YACToV,EAAQ3xG,SAAS4L,EAAOgmG,eAExBD,EAAQtxG,YAAYuL,EAAOgmG,eAE7BD,EAdWx/G,KAcIyZ,OAAOovF,eAdX7oG,KAcmC2uG,SAAW,WAAa,eAAel1F,EAAOimG,YAE1F3iB,GAAWA,EAAQz7F,OAAS,IAhBnBtB,KAiBAqqG,MACTtN,EAAQlvF,SAAS4L,EAAOgmG,eAExB1iB,EAAQ7uF,YAAYuL,EAAOgmG,eAE7B1iB,EAtBW/8F,KAsBIyZ,OAAOovF,eAtBX7oG,KAsBmC2uG,SAAW,WAAa,eAAel1F,EAAOimG,cAGhGC,YAAa,SAAqB9uG,GAEhCA,EAAEmmB,iBADWh3B,KAEFoqG,cAFEpqG,KAEqByZ,OAAOilD,MAF5B1+D,KAGNstG,aAETsS,YAAa,SAAqB/uG,GAEhCA,EAAEmmB,iBADWh3B,KAEFqqG,QAFErqG,KAEeyZ,OAAOilD,MAFtB1+D,KAGNotG,aAET7gF,KAAM,WACJ,IAIIwwE,EACAyiB,EAJA/lG,EADSzZ,KACOyZ,OAAOu6F,YACrBv6F,EAAOw6F,QAAUx6F,EAAOy6F,UAI1Bz6F,EAAOw6F,SACTlX,EAAUtwF,EAAEgN,EAAOw6F,QAPRj0G,KASFyZ,OAAOq9F,mBACc,iBAAlBr9F,EAAOw6F,QACdlX,EAAQz7F,OAAS,GACyB,IAZpCtB,KAYCspB,IAAIrS,KAAKwC,EAAOw6F,QAAQ3yG,SAElCy7F,EAdS/8F,KAcQspB,IAAIrS,KAAKwC,EAAOw6F,UAGjCx6F,EAAOy6F,SACTsL,EAAU/yG,EAAEgN,EAAOy6F,QAlBRl0G,KAoBFyZ,OAAOq9F,mBACc,iBAAlBr9F,EAAOy6F,QACdsL,EAAQl+G,OAAS,GACyB,IAvBpCtB,KAuBCspB,IAAIrS,KAAKwC,EAAOy6F,QAAQ5yG,SAElCk+G,EAzBSx/G,KAyBQspB,IAAIrS,KAAKwC,EAAOy6F,UAIjCnX,GAAWA,EAAQz7F,OAAS,GAC9By7F,EAAQzsF,GAAG,QA9BAtQ,KA8BgBg0G,WAAW4L,aAEpCJ,GAAWA,EAAQl+G,OAAS,GAC9Bk+G,EAAQlvG,GAAG,QAjCAtQ,KAiCgBg0G,WAAW2L,aAGxCziG,MAAM5U,OApCOtI,KAoCOg0G,WAAY,CAC9BjX,QAASA,EACTkX,OAAQlX,GAAWA,EAAQ,GAC3ByiB,QAASA,EACTtL,OAAQsL,GAAWA,EAAQ,OAG/Bj2F,QAAS,WACP,IACIxO,EADS/a,KACIg0G,WACbjX,EAAUhiF,EAAIgiF,QACdyiB,EAAUzkG,EAAIykG,QACdziB,GAAWA,EAAQz7F,SACrBy7F,EAAQprF,IAAI,QALD3R,KAKiBg0G,WAAW4L,aACvC7iB,EAAQ7uF,YANGlO,KAMgByZ,OAAOu6F,WAAWyL,gBAE3CD,GAAWA,EAAQl+G,SACrBk+G,EAAQ7tG,IAAI,QATD3R,KASiBg0G,WAAW2L,aACvCH,EAAQtxG,YAVGlO,KAUgByZ,OAAOu6F,WAAWyL,kBAK/CI,aAAe,CACjBr7G,KAAM,aACNiV,OAAQ,CACNu6F,WAAY,CACVC,OAAQ,KACRC,OAAQ,KAER4L,aAAa,EACbL,cAAe,yBACfM,YAAa,uBACbL,UAAW,uBAGfv4F,OAAQ,WAENjK,MAAM5U,OADOtI,KACQ,CACnBg0G,WAAY,CACVznF,KAAMgzF,WAAWhzF,KAAKlR,KAHbrb,MAIT8zD,OAAQyrD,WAAWzrD,OAAOz4C,KAJjBrb,MAKTupB,QAASg2F,WAAWh2F,QAAQlO,KALnBrb,MAMT4/G,YAAaL,WAAWK,YAAYvkG,KAN3Brb,MAOT2/G,YAAaJ,WAAWI,YAAYtkG,KAP3Brb,UAWfsQ,GAAI,CACFic,KAAM,WACSvsB,KACNg0G,WAAWznF,OADLvsB,KAENg0G,WAAWlgD,UAEpBksD,OAAQ,WACOhgH,KACNg0G,WAAWlgD,UAEpBmsD,SAAU,WACKjgH,KACNg0G,WAAWlgD,UAEpBvqC,QAAS,WACMvpB,KACNg0G,WAAWzqF,WAEpBnO,MAAO,SAAevK,GACpB,IASMkxC,EARFhnC,EADS/a,KACIg0G,WACbjX,EAAUhiF,EAAIgiF,QACdyiB,EAAUzkG,EAAIykG,SAHLx/G,KAKJyZ,OAAOu6F,WAAW8L,aACrBrzG,EAAEoE,EAAEtI,QAAQ0I,GAAGuuG,IACf/yG,EAAEoE,EAAEtI,QAAQ0I,GAAG8rF,KAGfA,EACFh7C,EAAWg7C,EAAQ3uF,SAXVpO,KAW0ByZ,OAAOu6F,WAAW+L,aAC5CP,IACTz9D,EAAWy9D,EAAQpxG,SAbVpO,KAa0ByZ,OAAOu6F,WAAW+L,eAEtC,IAAbh+D,EAfO/hD,KAgBF2mB,KAAK,iBAhBH3mB,MAAAA,KAkBF2mB,KAAK,iBAlBH3mB,MAoBP+8F,GACFA,EAAQzuF,YArBCtO,KAqBkByZ,OAAOu6F,WAAW+L,aAE3CP,GACFA,EAAQlxG,YAxBCtO,KAwBkByZ,OAAOu6F,WAAW+L,iBAOnDG,WAAa,CACfpsD,OAAQ,WAEN,IACIpoC,EADS1rB,KACI0rB,IACbjS,EAFSzZ,KAEOyZ,OAAO0mG,WAC3B,GAAK1mG,EAAOvK,IAHClP,KAGamgH,WAAWjxG,IAHxBlP,KAGsCmgH,WAAW72F,KAAwC,IAHzFtpB,KAG+DmgH,WAAW72F,IAAIhoB,OAA3F,CACA,IAGI04C,EAHAirD,EAJSjlG,KAIa8kG,SAJb9kG,KAI+ByZ,OAAOqrF,QAAQnpD,QAJ9C37C,KAI+D8kG,QAAQE,OAAO1jG,OAJ9EtB,KAI8FglG,OAAO1jG,OAC9GgoB,EALStpB,KAKImgH,WAAW72F,IAGxB82F,EARSpgH,KAQMyZ,OAAOilD,KAAOpmD,KAAKikD,MAAM0oC,EAAsC,EARrEjlG,KAQsDmtG,cARtDntG,KAQkFyZ,OAAOutF,gBARzFhnG,KAQkHklG,SAAS5jG,OAcxI,GAtBatB,KASFyZ,OAAOilD,OAChB1kB,EAAU1hC,KAAKikD,MAVJv8D,KAUiBkkD,YAVjBlkD,KAUsCmtG,cAVtCntG,KAU6DyZ,OAAOutF,iBACjE/B,EAAe,EAA2B,EAX7CjlG,KAW8BmtG,eACvCnzD,GAAYirD,EAAsC,EAZzCjlG,KAY0BmtG,cAEjCnzD,EAAUomE,EAAQ,IAAKpmE,GAAWomE,GAClCpmE,EAAU,GAAsC,YAfzCh6C,KAeeyZ,OAAO4mG,iBAAgCrmE,EAAUomE,EAAQpmE,IAEnFA,OADqC,IAhB1Bh6C,KAgBY4oG,UAhBZ5oG,KAiBM4oG,UAjBN5oG,KAmBMkkD,aAAe,EAGd,YAAhBzqC,EAAOpX,MAtBErC,KAsB2BmgH,WAAWG,SAtBtCtgH,KAsBwDmgH,WAAWG,QAAQh/G,OAAS,EAAG,CAClG,IACIi/G,EACAC,EACAC,EAHAH,EAvBOtgH,KAuBUmgH,WAAWG,QAoBhC,GAhBI7mG,EAAOinG,iBA3BA1gH,KA4BFmgH,WAAWQ,WAAaL,EAAQjrG,GAAG,GA5BjCrV,KA4B2CghF,eAAiB,aAAe,gBAAe,GACnG13D,EAAIpW,IA7BKlT,KA6BMghF,eAAiB,QAAU,SA7BjChhF,KA6BoDmgH,WAAWQ,YAAclnG,EAAOmnG,mBAAqB,GAAM,MACpHnnG,EAAOmnG,mBAAqB,QAA8BzgH,IA9BrDH,KA8BmCkgE,gBA9BnClgE,KA+BAmgH,WAAWU,oBAAuB7mE,EA/BlCh6C,KA+BmDkgE,cA/BnDlgE,KAgCImgH,WAAWU,mBAAsBpnG,EAAOmnG,mBAAqB,EAhCjE5gH,KAiCEmgH,WAAWU,mBAAqBpnG,EAAOmnG,mBAAqB,EAjC9D5gH,KAkCWmgH,WAAWU,mBAAqB,IAlC3C7gH,KAmCEmgH,WAAWU,mBAAqB,IAG3CN,EAAavmE,EAtCJh6C,KAsCqBmgH,WAAWU,mBAEzCJ,IADAD,EAAYD,GAAcjoG,KAAKE,IAAI8nG,EAAQh/G,OAAQmY,EAAOmnG,oBAAsB,IACxDL,GAAc,GAExCD,EAAQpyG,YAAcuL,EAAwB,kBAAI,IAAOA,EAAwB,kBAAI,SAAYA,EAAwB,kBAAI,cAAiBA,EAAwB,kBAAI,SAAYA,EAAwB,kBAAI,cAAiBA,EAAwB,kBAAI,SAC3P6P,EAAIhoB,OAAS,EACfg/G,EAAQh6G,MAAK,SAAUK,EAAOm6G,GAC5B,IAAIC,EAAUt0G,EAAEq0G,GACZE,EAAcD,EAAQp6G,QACtBq6G,IAAgBhnE,GAClB+mE,EAAQlzG,SAAS4L,EAAOwnG,mBAEtBxnG,EAAOinG,iBACLM,GAAeT,GAAcS,GAAeR,GAC9CO,EAAQlzG,SAAW4L,EAAwB,kBAAI,SAE7CunG,IAAgBT,GAClBQ,EACGpqG,OACA9I,SAAW4L,EAAwB,kBAAI,SACvC9C,OACA9I,SAAW4L,EAAwB,kBAAI,cAExCunG,IAAgBR,GAClBO,EACGxqG,OACA1I,SAAW4L,EAAwB,kBAAI,SACvClD,OACA1I,SAAW4L,EAAwB,kBAAI,sBAI3C,CACL,IAAIsnG,EAAUT,EAAQjrG,GAAG2kC,GACrBgnE,EAAcD,EAAQp6G,QAE1B,GADAo6G,EAAQlzG,SAAS4L,EAAOwnG,mBACpBxnG,EAAOinG,eAAgB,CAGzB,IAFA,IAAIQ,EAAwBZ,EAAQjrG,GAAGkrG,GACnCY,EAAuBb,EAAQjrG,GAAGmrG,GAC7Bx/G,EAAIu/G,EAAYv/G,GAAKw/G,EAAWx/G,GAAK,EAC5Cs/G,EAAQjrG,GAAGrU,GAAG6M,SAAW4L,EAAwB,kBAAI,SAEvD,GAhFOzZ,KAgFIyZ,OAAOilD,KAChB,GAAIsiD,GAAeV,EAAQh/G,OAASmY,EAAOmnG,mBAAoB,CAC7D,IAAK,IAAIlxG,EAAM+J,EAAOmnG,mBAAoBlxG,GAAO,EAAGA,GAAO,EACzD4wG,EAAQjrG,GAAGirG,EAAQh/G,OAASoO,GAAK7B,SAAW4L,EAAwB,kBAAI,SAE1E6mG,EAAQjrG,GAAGirG,EAAQh/G,OAASmY,EAAOmnG,mBAAqB,GAAG/yG,SAAW4L,EAAwB,kBAAI,cAElGynG,EACGvqG,OACA9I,SAAW4L,EAAwB,kBAAI,SACvC9C,OACA9I,SAAW4L,EAAwB,kBAAI,cAC1C0nG,EACG5qG,OACA1I,SAAW4L,EAAwB,kBAAI,SACvClD,OACA1I,SAAW4L,EAAwB,kBAAI,mBAG5CynG,EACGvqG,OACA9I,SAAW4L,EAAwB,kBAAI,SACvC9C,OACA9I,SAAW4L,EAAwB,kBAAI,cAC1C0nG,EACG5qG,OACA1I,SAAW4L,EAAwB,kBAAI,SACvClD,OACA1I,SAAW4L,EAAwB,kBAAI,eAIhD,GAAIA,EAAOinG,eAAgB,CACzB,IAAIU,EAAuB9oG,KAAKE,IAAI8nG,EAAQh/G,OAAQmY,EAAOmnG,mBAAqB,GAC5ES,GAlHKrhH,KAkHqBmgH,WAAWQ,WAAaS,EAlH7CphH,KAkH6EmgH,WAAqB,YAAK,EAAMM,EAlH7GzgH,KAkH+HmgH,WAAWQ,WAC/I9F,EAAanvF,EAAM,QAAU,OACjC40F,EAAQptG,IApHClT,KAoHUghF,eAAiB65B,EAAa,MAAQwG,EAAgB,OAO7E,GAJoB,aAAhB5nG,EAAOpX,OACTinB,EAAIrS,KAAM,IAAOwC,EAAmB,cAAI5E,KAAK4E,EAAO6nG,sBAAsBtnE,EAAU,IACpF1wB,EAAIrS,KAAM,IAAOwC,EAAiB,YAAI5E,KAAK4E,EAAO8nG,oBAAoBnB,KAEpD,gBAAhB3mG,EAAOpX,KAAwB,CACjC,IAAIm/G,EAEFA,EADE/nG,EAAOgoG,oBA7HAzhH,KA8HqBghF,eAAiB,WAAa,aA9HnDhhF,KAgIqBghF,eAAiB,aAAe,WAEhE,IAAIr1B,GAAS3R,EAAU,GAAKomE,EACxB/3C,EAAS,EACTC,EAAS,EACgB,eAAzBk5C,EACFn5C,EAAS1c,EAET2c,EAAS3c,EAEXriC,EAAIrS,KAAM,IAAOwC,EAA2B,sBAAI1J,UAAW,6BAA+Bs4D,EAAS,YAAcC,EAAS,KAAMp4D,WA1IrHlQ,KA0IuIyZ,OAAO0vF,OAEvI,WAAhB1vF,EAAOpX,MAAqBoX,EAAOioG,cACrCp4F,EAAIzc,KAAK4M,EAAOioG,aA7IL1hH,KA6I0Bg6C,EAAU,EAAGomE,IA7IvCpgH,KA8IJ2mB,KAAK,mBA9ID3mB,KA8I6BspB,EAAI,KA9IjCtpB,KAgJJ2mB,KAAK,mBAhJD3mB,KAgJ6BspB,EAAI,IAE9CA,EAlJatpB,KAkJFyZ,OAAOovF,eAlJL7oG,KAkJ6B2uG,SAAW,WAAa,eAAel1F,EAAOimG,aAE1F/mG,OAAQ,WAEN,IACIc,EADSzZ,KACOyZ,OAAO0mG,WAC3B,GAAK1mG,EAAOvK,IAFClP,KAEamgH,WAAWjxG,IAFxBlP,KAEsCmgH,WAAW72F,KAAwC,IAFzFtpB,KAE+DmgH,WAAW72F,IAAIhoB,OAA3F,CACA,IAAI2jG,EAHSjlG,KAGa8kG,SAHb9kG,KAG+ByZ,OAAOqrF,QAAQnpD,QAH9C37C,KAG+D8kG,QAAQE,OAAO1jG,OAH9EtB,KAG8FglG,OAAO1jG,OAE9GgoB,EALStpB,KAKImgH,WAAW72F,IACxBq4F,EAAiB,GACrB,GAAoB,YAAhBloG,EAAOpX,KAAoB,CAE7B,IADA,IAAIu/G,EARO5hH,KAQkByZ,OAAOilD,KAAOpmD,KAAKikD,MAAM0oC,EAAsC,EARjFjlG,KAQkEmtG,cARlEntG,KAQ8FyZ,OAAOutF,gBARrGhnG,KAQ8HklG,SAAS5jG,OACzIN,EAAI,EAAGA,EAAI4gH,EAAiB5gH,GAAK,EACpCyY,EAAOooG,aACTF,GAAkBloG,EAAOooG,aAAa37G,KAX/BlG,KAW4CgB,EAAGyY,EAAOqoG,aAE7DH,GAAkB,IAAOloG,EAAoB,cAAI,WAAeA,EAAkB,YAAI,OAAWA,EAAoB,cAAI,IAG7H6P,EAAIzc,KAAK80G,GAhBE3hH,KAiBJmgH,WAAWG,QAAUh3F,EAAIrS,KAAM,IAAOwC,EAAkB,aAE7C,aAAhBA,EAAOpX,OAEPs/G,EADEloG,EAAOsoG,eACQtoG,EAAOsoG,eAAe77G,KArB9BlG,KAqB2CyZ,EAAOuoG,aAAcvoG,EAAOwoG,YAE/D,gBAAoBxoG,EAAmB,aAAvC,4BAEKA,EAAiB,WAAI,YAE7C6P,EAAIzc,KAAK80G,IAES,gBAAhBloG,EAAOpX,OAEPs/G,EADEloG,EAAOyoG,kBACQzoG,EAAOyoG,kBAAkBh8G,KA/BjClG,KA+B8CyZ,EAAO0oG,sBAE7C,gBAAoB1oG,EAA2B,qBAAI,YAEtE6P,EAAIzc,KAAK80G,IAES,WAAhBloG,EAAOpX,MArCErC,KAsCJ2mB,KAAK,mBAtCD3mB,KAsC4BmgH,WAAW72F,IAAI,MAG1DiD,KAAM,WACJ,IAAIs1C,EAAS7hE,KACTyZ,EAASooD,EAAOpoD,OAAO0mG,WAC3B,GAAK1mG,EAAOvK,GAAZ,CAEA,IAAIoa,EAAM7c,EAAEgN,EAAOvK,IACA,IAAfoa,EAAIhoB,SAGNugE,EAAOpoD,OAAOq9F,mBACU,iBAAdr9F,EAAOvK,IACdoa,EAAIhoB,OAAS,GACyB,IAAtCugE,EAAOv4C,IAAIrS,KAAKwC,EAAOvK,IAAI5N,SAE9BgoB,EAAMu4C,EAAOv4C,IAAIrS,KAAKwC,EAAOvK,KAGX,YAAhBuK,EAAOpX,MAAsBoX,EAAO2oG,WACtC94F,EAAIzb,SAAS4L,EAAO4oG,gBAGtB/4F,EAAIzb,SAAS4L,EAAO6oG,cAAgB7oG,EAAOpX,MAEvB,YAAhBoX,EAAOpX,MAAsBoX,EAAOinG,iBACtCp3F,EAAIzb,SAAU,GAAM4L,EAAoB,cAAKA,EAAW,KAAI,YAC5DooD,EAAOs+C,WAAWU,mBAAqB,EACnCpnG,EAAOmnG,mBAAqB,IAC9BnnG,EAAOmnG,mBAAqB,IAGZ,gBAAhBnnG,EAAOpX,MAA0BoX,EAAOgoG,qBAC1Cn4F,EAAIzb,SAAS4L,EAAO8oG,0BAGlB9oG,EAAO2oG,WACT94F,EAAIhZ,GAAG,QAAU,IAAOmJ,EAAkB,aAAI,SAAiB5I,GAC7DA,EAAEmmB,iBACF,IAAIrwB,EAAQ8F,EAAEzM,MAAM2G,QAAUk7D,EAAOpoD,OAAOutF,eACxCnlC,EAAOpoD,OAAOilD,OAAQ/3D,GAASk7D,EAAOsrC,cAC1CtrC,EAAOE,QAAQp7D,MAInBuW,MAAM5U,OAAOu5D,EAAOs+C,WAAY,CAC9B72F,IAAKA,EACLpa,GAAIoa,EAAI,QAGZC,QAAS,WACP,IACI9P,EADSzZ,KACOyZ,OAAO0mG,WAC3B,GAAK1mG,EAAOvK,IAFClP,KAEamgH,WAAWjxG,IAFxBlP,KAEsCmgH,WAAW72F,KAAwC,IAFzFtpB,KAE+DmgH,WAAW72F,IAAIhoB,OAA3F,CACA,IAAIgoB,EAHStpB,KAGImgH,WAAW72F,IAE5BA,EAAIpb,YAAYuL,EAAOsmG,aACvBz2F,EAAIpb,YAAYuL,EAAO6oG,cAAgB7oG,EAAOpX,MANjCrC,KAOFmgH,WAAWG,SAPTtgH,KAO2BmgH,WAAWG,QAAQpyG,YAAYuL,EAAOwnG,mBAC1ExnG,EAAO2oG,WACT94F,EAAI3X,IAAI,QAAU,IAAO8H,EAAkB,gBAK7C+oG,aAAe,CACjBh+G,KAAM,aACNiV,OAAQ,CACN0mG,WAAY,CACVjxG,GAAI,KACJuzG,cAAe,OACfL,WAAW,EACXtC,aAAa,EACb+B,aAAc,KACdK,kBAAmB,KACnBH,eAAgB,KAChBL,aAAc,KACdD,qBAAqB,EACrBp/G,KAAM,UACNq+G,gBAAgB,EAChBE,mBAAoB,EACpBU,sBAAuB,SAAUh6B,GAAU,OAAOA,GAClDi6B,oBAAqB,SAAUj6B,GAAU,OAAOA,GAChDw6B,YAAa,2BACbb,kBAAmB,kCACnBqB,cAAe,qBACfN,aAAc,4BACdC,WAAY,0BACZlC,YAAa,2BACboC,qBAAsB,qCACtBI,yBAA0B,yCAC1BF,eAAgB,8BAChB3C,UAAW,2BAGfv4F,OAAQ,WAENjK,MAAM5U,OADOtI,KACQ,CACnBmgH,WAAY,CACV5zF,KAAM2zF,WAAW3zF,KAAKlR,KAHbrb,MAIT2Y,OAAQunG,WAAWvnG,OAAO0C,KAJjBrb,MAKT8zD,OAAQosD,WAAWpsD,OAAOz4C,KALjBrb,MAMTupB,QAAS22F,WAAW32F,QAAQlO,KANnBrb,MAOT6gH,mBAAoB,MAI1BvwG,GAAI,CACFic,KAAM,WACSvsB,KACNmgH,WAAW5zF,OADLvsB,KAENmgH,WAAWxnG,SAFL3Y,KAGNmgH,WAAWrsD,UAEpB4uD,kBAAmB,YACJ1iH,KACFyZ,OAAOilD,WAEqB,IAH1B1+D,KAGY4oG,YAHZ5oG,KAEJmgH,WAAWrsD,UAKtB6uD,gBAAiB,WACF3iH,KACDyZ,OAAOilD,MADN1+D,KAEJmgH,WAAWrsD,UAGtB8uD,mBAAoB,WACL5iH,KACFyZ,OAAOilD,OADL1+D,KAEJmgH,WAAWxnG,SAFP3Y,KAGJmgH,WAAWrsD,WAGtB+uD,qBAAsB,WACP7iH,KACDyZ,OAAOilD,OADN1+D,KAEJmgH,WAAWxnG,SAFP3Y,KAGJmgH,WAAWrsD,WAGtBvqC,QAAS,WACMvpB,KACNmgH,WAAW52F,WAEpBnO,MAAO,SAAevK,GACP7Q,KAEJyZ,OAAO0mG,WAAWjxG,IAFdlP,KAGDyZ,OAAO0mG,WAAWL,aAHjB9/G,KAIDmgH,WAAW72F,IAAIhoB,OAAS,IAC9BmL,EAAEoE,EAAEtI,QAAQ6F,SALLpO,KAKqByZ,OAAO0mG,WAAW2B,gBAGjC,IARN9hH,KAOWmgH,WAAW72F,IAAIlb,SAP1BpO,KAO0CyZ,OAAO0mG,WAAWJ,aAP5D//G,KASF2mB,KAAK,iBATH3mB,MAAAA,KAWF2mB,KAAK,iBAXH3mB,MAAAA,KAaJmgH,WAAW72F,IAAIhb,YAbXtO,KAa8ByZ,OAAO0mG,WAAWJ,iBAM/D+C,UAAY,CACd9W,aAAc,WAEZ,GADahsG,KACDyZ,OAAOspG,UAAU7zG,IADhBlP,KAC8B+iH,UAAU7zG,GAArD,CACA,IAAI6zG,EAFS/iH,KAEU+iH,UACnBr3F,EAHS1rB,KAGI2kG,aACb5rF,EAJS/Y,KAIS+Y,SAClBiqG,EAAWD,EAAUC,SACrBC,EAAYF,EAAUE,UACtBC,EAAUH,EAAUG,QACpB55F,EAAMy5F,EAAUz5F,IAChB7P,EATSzZ,KASOyZ,OAAOspG,UAEvBI,EAAUH,EACVI,GAAUH,EAAYD,GAAYjqG,EAClC2S,GACF03F,GAAUA,GACG,GACXD,EAAUH,EAAWI,EACrBA,EAAS,IACCA,EAASJ,EAAWC,IAC9BE,EAAUF,EAAYG,GAEfA,EAAS,GAClBD,EAAUH,EAAWI,EACrBA,EAAS,GACAA,EAASJ,EAAWC,IAC7BE,EAAUF,EAAYG,GAzBXpjH,KA2BFghF,gBACTkiC,EAAQnzG,UAAW,eAAiBqzG,EAAS,aAC7CF,EAAQ,GAAGz4G,MAAMuI,MAAQmwG,EAAU,OAEnCD,EAAQnzG,UAAW,oBAAsBqzG,EAAS,UAClDF,EAAQ,GAAGz4G,MAAM8I,OAAS4vG,EAAU,MAElC1pG,EAAOnF,OACThI,aAnCWtM,KAmCS+iH,UAAUpzF,SAC9BrG,EAAI,GAAG7e,MAAMm2B,QAAU,EApCZ5gC,KAqCJ+iH,UAAUpzF,QAAUtjB,YAAW,WACpCid,EAAI,GAAG7e,MAAMm2B,QAAU,EACvBtX,EAAIpZ,WAAW,OACd,QAGPo5F,cAAe,SAAuBn5F,GACvBnQ,KACDyZ,OAAOspG,UAAU7zG,IADhBlP,KAC8B+iH,UAAU7zG,IADxClP,KAEN+iH,UAAUG,QAAQhzG,WAAWC,IAEtCm0F,WAAY,WAEV,GADatkG,KACDyZ,OAAOspG,UAAU7zG,IADhBlP,KAC8B+iH,UAAU7zG,GAArD,CAEA,IAAI6zG,EAHS/iH,KAGU+iH,UACnBG,EAAUH,EAAUG,QACpB55F,EAAMy5F,EAAUz5F,IAEpB45F,EAAQ,GAAGz4G,MAAMuI,MAAQ,GACzBkwG,EAAQ,GAAGz4G,MAAM8I,OAAS,GAC1B,IAIIyvG,EAJAC,EATSjjH,KASUghF,eAAiB13D,EAAI,GAAGhW,YAAcgW,EAAI,GAAG5V,aAEhEg7E,EAXS1uF,KAWQi+C,KAXRj+C,KAWsBmmG,YAC/Bkd,EAAc30B,GAAWu0B,EAZhBjjH,KAYmCi+C,MAG9C+kE,EADuC,SAd5BhjH,KAcFyZ,OAAOspG,UAAUC,SACfC,EAAYv0B,EAEZltE,SAjBAxhB,KAiBgByZ,OAAOspG,UAAUC,SAAU,IAjB3ChjH,KAoBFghF,eACTkiC,EAAQ,GAAGz4G,MAAMuI,MAAQgwG,EAAW,KAEpCE,EAAQ,GAAGz4G,MAAM8I,OAASyvG,EAAW,KAIrC15F,EAAI,GAAG7e,MAAM8J,QADXm6E,GAAW,EACU,OAEA,GA7BZ1uF,KA+BFyZ,OAAOspG,UAAUzuG,OAC1BgV,EAAI,GAAG7e,MAAMm2B,QAAU,GAEzB1jB,MAAM5U,OAAOy6G,EAAW,CACtBE,UAAWA,EACXv0B,QAASA,EACT20B,YAAaA,EACbL,SAAUA,IAEZD,EAAUz5F,IAxCGtpB,KAwCQyZ,OAAOovF,eAxCf7oG,KAwCuC2uG,SAAW,WAAa,eAxC/D3uG,KAwCqFyZ,OAAOspG,UAAUrD,aAErH4D,mBAAoB,SAA4BzyG,GAE9C,OADa7Q,KACFghF,eACW,eAAXnwE,EAAExO,MAAoC,cAAXwO,EAAExO,KAAwBwO,EAAEomB,cAAc,GAAGwyC,QAAU54D,EAAE44D,QAE3E,eAAX54D,EAAExO,MAAoC,cAAXwO,EAAExO,KAAwBwO,EAAEomB,cAAc,GAAGssF,QAAU1yG,EAAE0yG,SAE/FC,gBAAiB,SAAyB3yG,GACxC,IAQI4yG,EAPAV,EADS/iH,KACU+iH,UACnBr3F,EAFS1rB,KAEI2kG,aACbr7E,EAAMy5F,EAAUz5F,IAChB05F,EAAWD,EAAUC,SACrBC,EAAYF,EAAUE,UACtBS,EAAeX,EAAUW,aAG7BD,GAAkBV,EAAUO,mBAAmBzyG,GAAMyY,EAAI3V,SAT5C3T,KAS4DghF,eAAiB,OAAS,QAC7E,OAAjB0iC,EAAwBA,EAAeV,EAAW,KAAOC,EAAYD,GAC1ES,EAAgBnrG,KAAKC,IAAID,KAAKE,IAAIirG,EAAe,GAAI,GACjD/3F,IACF+3F,EAAgB,EAAIA,GAGtB,IAAIv8E,EAhBSlnC,KAgBS6vD,gBAhBT7vD,KAgBmC8vD,eAhBnC9vD,KAgB2D6vD,gBAAkB4zD,EAhB7EzjH,KAkBNiqG,eAAe/iE,GAlBTlnC,KAmBNgsG,aAAa9kE,GAnBPlnC,KAoBNorG,oBApBMprG,KAqBNwqG,uBAETmZ,YAAa,SAAqB9yG,GAChC,IACI4I,EADSzZ,KACOyZ,OAAOspG,UACvBA,EAFS/iH,KAEU+iH,UACnBx/B,EAHSvjF,KAGWujF,WACpBj6D,EAAMy5F,EAAUz5F,IAChB45F,EAAUH,EAAUG,QALXljH,KAMN+iH,UAAUzlF,WAAY,EANhBt9B,KAON+iH,UAAUW,aAAgB7yG,EAAEtI,SAAW26G,EAAQ,IAAMryG,EAAEtI,SAAW26G,EACrEH,EAAUO,mBAAmBzyG,GAAKA,EAAEtI,OAAOsL,wBARlC7T,KAQiEghF,eAAiB,OAAS,OAAS,KACjHnwE,EAAEmmB,iBACFnmB,EAAEkmB,kBAEFwsD,EAAWrzE,WAAW,KACtBgzG,EAAQhzG,WAAW,KACnB6yG,EAAUS,gBAAgB3yG,GAE1BvE,aAhBatM,KAgBO+iH,UAAUa,aAE9Bt6F,EAAIpZ,WAAW,GACXuJ,EAAOnF,MACTgV,EAAIpW,IAAI,UAAW,GApBRlT,KAsBFyZ,OAAO8rF,SAtBLvlG,KAuBJujF,WAAWrwE,IAAI,mBAAoB,QAvB/BlT,KAyBN2mB,KAAK,qBAAsB9V,IAEpCgzG,WAAY,SAAoBhzG,GAC9B,IACIkyG,EADS/iH,KACU+iH,UACnBx/B,EAFSvjF,KAEWujF,WACpBj6D,EAAMy5F,EAAUz5F,IAChB45F,EAAUH,EAAUG,QAJXljH,KAMD+iH,UAAUzlF,YAClBzsB,EAAEmmB,eAAkBnmB,EAAEmmB,iBACnBnmB,EAAE2rG,aAAc,EACvBuG,EAAUS,gBAAgB3yG,GAC1B0yE,EAAWrzE,WAAW,GACtBoZ,EAAIpZ,WAAW,GACfgzG,EAAQhzG,WAAW,GAZNlQ,KAaN2mB,KAAK,oBAAqB9V,KAEnCizG,UAAW,SAAmBjzG,GAC5B,IAEI4I,EAFSzZ,KAEOyZ,OAAOspG,UACvBA,EAHS/iH,KAGU+iH,UACnBx/B,EAJSvjF,KAIWujF,WACpBj6D,EAAMy5F,EAAUz5F,IALPtpB,KAOD+iH,UAAUzlF,YAPTt9B,KAQN+iH,UAAUzlF,WAAY,EARhBt9B,KASFyZ,OAAO8rF,UATLvlG,KAUJujF,WAAWrwE,IAAI,mBAAoB,IAC1CqwE,EAAWrzE,WAAW,KAEpBuJ,EAAOnF,OACThI,aAdWtM,KAcS+iH,UAAUa,aAdnB5jH,KAeJ+iH,UAAUa,YAAc1mG,MAAMW,UAAS,WAC5CyL,EAAIpW,IAAI,UAAW,GACnBoW,EAAIpZ,WAAW,OACd,MAlBQlQ,KAoBN2mB,KAAK,mBAAoB9V,GAC5B4I,EAAOsqG,eArBE/jH,KAsBJ4tG,mBAGXoW,gBAAiB,WAEf,GADahkH,KACDyZ,OAAOspG,UAAU7zG,GAA7B,CACA,IAAI6zG,EAFS/iH,KAEU+iH,UACnBjL,EAHS93G,KAGiB83G,iBAC1BC,EAJS/3G,KAImB+3G,mBAC5Bt+F,EALSzZ,KAKOyZ,OAEhBlR,EADMw6G,EAAUz5F,IACH,GACb8M,KAAiB/S,QAAQO,kBAAmBnK,EAAOq7F,mBAAmB,CAAE5+E,SAAS,EAAOvlB,SAAS,GACjGiT,KAAkBP,QAAQO,kBAAmBnK,EAAOq7F,mBAAmB,CAAE5+E,SAAS,EAAMvlB,SAAS,GAChG0S,QAAQC,OAKX/a,EAAOqB,iBAAiBkuG,EAAiBvhF,MAf9Bv2B,KAe4C+iH,UAAUY,YAAavtF,GAC9E7tB,EAAOqB,iBAAiBkuG,EAAiBthF,KAhB9Bx2B,KAgB2C+iH,UAAUc,WAAYztF,GAC5E7tB,EAAOqB,iBAAiBkuG,EAAiBrhF,IAjB9Bz2B,KAiB0C+iH,UAAUe,UAAWlgG,KAN1Erb,EAAOqB,iBAAiBmuG,EAAmBxhF,MAXhCv2B,KAW8C+iH,UAAUY,YAAavtF,GAChF5sB,IAAII,iBAAiBmuG,EAAmBvhF,KAZ7Bx2B,KAY0C+iH,UAAUc,WAAYztF,GAC3E5sB,IAAII,iBAAiBmuG,EAAmBthF,IAb7Bz2B,KAayC+iH,UAAUe,UAAWlgG,MAO7EqgG,iBAAkB,WAEhB,GADajkH,KACDyZ,OAAOspG,UAAU7zG,GAA7B,CACA,IAAI6zG,EAFS/iH,KAEU+iH,UACnBjL,EAHS93G,KAGiB83G,iBAC1BC,EAJS/3G,KAImB+3G,mBAC5Bt+F,EALSzZ,KAKOyZ,OAEhBlR,EADMw6G,EAAUz5F,IACH,GACb8M,KAAiB/S,QAAQO,kBAAmBnK,EAAOq7F,mBAAmB,CAAE5+E,SAAS,EAAOvlB,SAAS,GACjGiT,KAAkBP,QAAQO,kBAAmBnK,EAAOq7F,mBAAmB,CAAE5+E,SAAS,EAAMvlB,SAAS,GAChG0S,QAAQC,OAKX/a,EAAOsB,oBAAoBiuG,EAAiBvhF,MAfjCv2B,KAe+C+iH,UAAUY,YAAavtF,GACjF7tB,EAAOsB,oBAAoBiuG,EAAiBthF,KAhBjCx2B,KAgB8C+iH,UAAUc,WAAYztF,GAC/E7tB,EAAOsB,oBAAoBiuG,EAAiBrhF,IAjBjCz2B,KAiB6C+iH,UAAUe,UAAWlgG,KAN7Erb,EAAOsB,oBAAoBkuG,EAAmBxhF,MAXnCv2B,KAWiD+iH,UAAUY,YAAavtF,GACnF5sB,IAAIK,oBAAoBkuG,EAAmBvhF,KAZhCx2B,KAY6C+iH,UAAUc,WAAYztF,GAC9E5sB,IAAIK,oBAAoBkuG,EAAmBthF,IAbhCz2B,KAa4C+iH,UAAUe,UAAWlgG,MAOhF2I,KAAM,WAEJ,GADavsB,KACDyZ,OAAOspG,UAAU7zG,GAA7B,CACA,IAAI6zG,EAFS/iH,KAEU+iH,UACnBmB,EAHSlkH,KAGUspB,IACnB7P,EAJSzZ,KAIOyZ,OAAOspG,UAEvBz5F,EAAM7c,EAAEgN,EAAOvK,IANNlP,KAOFyZ,OAAOq9F,mBAA0C,iBAAdr9F,EAAOvK,IAAmBoa,EAAIhoB,OAAS,GAA0C,IAArC4iH,EAAUjtG,KAAKwC,EAAOvK,IAAI5N,SAClHgoB,EAAM46F,EAAUjtG,KAAKwC,EAAOvK,KAG9B,IAAIg0G,EAAU55F,EAAIrS,KAAM,IAXXjX,KAWyByZ,OAAOspG,UAAmB,WACzC,IAAnBG,EAAQ5hH,SACV4hH,EAAUz2G,EAAG,eAbFzM,KAa4ByZ,OAAOspG,UAAmB,UAAI,YACrEz5F,EAAI/T,OAAO2tG,IAGbhmG,MAAM5U,OAAOy6G,EAAW,CACtBz5F,IAAKA,EACLpa,GAAIoa,EAAI,GACR45F,QAASA,EACTiB,OAAQjB,EAAQ,KAGdzpG,EAAO2qG,WACTrB,EAAUiB,oBAGdz6F,QAAS,WACMvpB,KACN+iH,UAAUkB,qBAIjBI,YAAc,CAChB7/G,KAAM,YACNiV,OAAQ,CACNspG,UAAW,CACT7zG,GAAI,KACJ8zG,SAAU,OACV1uG,MAAM,EACN8vG,WAAW,EACXL,eAAe,EACfrE,UAAW,wBACX4E,UAAW,0BAGfn9F,OAAQ,WAENjK,MAAM5U,OADOtI,KACQ,CACnB+iH,UAAW,CACTx2F,KAAMu2F,UAAUv2F,KAAKlR,KAHZrb,MAITupB,QAASu5F,UAAUv5F,QAAQlO,KAJlBrb,MAKTskG,WAAYwe,UAAUxe,WAAWjpF,KALxBrb,MAMTgsG,aAAc8W,UAAU9W,aAAa3wF,KAN5Brb,MAOTspG,cAAewZ,UAAUxZ,cAAcjuF,KAP9Brb,MAQTgkH,gBAAiBlB,UAAUkB,gBAAgB3oG,KARlCrb,MASTikH,iBAAkBnB,UAAUmB,iBAAiB5oG,KATpCrb,MAUTwjH,gBAAiBV,UAAUU,gBAAgBnoG,KAVlCrb,MAWTsjH,mBAAoBR,UAAUQ,mBAAmBjoG,KAXxCrb,MAYT2jH,YAAab,UAAUa,YAAYtoG,KAZ1Brb,MAaT6jH,WAAYf,UAAUe,WAAWxoG,KAbxBrb,MAcT8jH,UAAWhB,UAAUgB,UAAUzoG,KAdtBrb,MAeTs9B,WAAW,EACX3N,QAAS,KACTi0F,YAAa,SAInBtzG,GAAI,CACFic,KAAM,WACSvsB,KACN+iH,UAAUx2F,OADJvsB,KAEN+iH,UAAUze,aAFJtkG,KAGN+iH,UAAU/W,gBAEnBl4C,OAAQ,WACO9zD,KACN+iH,UAAUze,cAEnB9nF,OAAQ,WACOxc,KACN+iH,UAAUze,cAEnBuV,eAAgB,WACD75G,KACN+iH,UAAUze,cAEnB0H,aAAc,WACChsG,KACN+iH,UAAU/W,gBAEnB1C,cAAe,SAAuBn5F,GACvBnQ,KACN+iH,UAAUzZ,cAAcn5F,IAEjCoZ,QAAS,WACMvpB,KACN+iH,UAAUx5F,aAKnBg7F,SAAW,CACbC,aAAc,SAAsBt1G,EAAI6J,GACtC,IACI2S,EADS1rB,KACI0rB,IAEbpC,EAAM7c,EAAEyC,GACRmvG,EAAY3yF,GAAO,EAAI,EAEvBnmB,EAAI+jB,EAAI9a,KAAK,yBAA2B,IACxC2T,EAAImH,EAAI9a,KAAK,0BACbsmB,EAAIxL,EAAI9a,KAAK,0BACbm9C,EAAQriC,EAAI9a,KAAK,8BACjBoyB,EAAUtX,EAAI9a,KAAK,gCAwBvB,GAtBI2T,GAAK2S,GACP3S,EAAIA,GAAK,IACT2S,EAAIA,GAAK,KAdE90B,KAeKghF,gBAChB7+D,EAAI5c,EACJuvB,EAAI,MAEJA,EAAIvvB,EACJ4c,EAAI,KAIJA,EADE,EAAIxgB,QAAQ,MAAQ,EACjB6f,SAASW,EAAG,IAAMpJ,EAAWslG,EAAa,IAE1Cl8F,EAAIpJ,EAAWslG,EAAa,KAGjCvpF,EADE,EAAInzB,QAAQ,MAAQ,EACjB6f,SAASsT,EAAG,IAAM/b,EAAY,IAE9B+b,EAAI/b,EAAY,KAGnB,MAAO6nB,EAA6C,CACtD,IAAI6jF,EAAiB7jF,GAAYA,EAAU,IAAM,EAAItoB,KAAKuJ,IAAI9I,IAC9DuQ,EAAI,GAAG7e,MAAMm2B,QAAU6jF,EAEzB,GAAI,MAAO94D,EACTriC,EAAIvZ,UAAW,eAAiBoS,EAAI,KAAO2S,EAAI,cAC1C,CACL,IAAI4vF,EAAe/4D,GAAUA,EAAQ,IAAM,EAAIrzC,KAAKuJ,IAAI9I,IACxDuQ,EAAIvZ,UAAW,eAAiBoS,EAAI,KAAO2S,EAAI,gBAAkB4vF,EAAe,OAGpF1Y,aAAc,WACZ,IAAInqC,EAAS7hE,KACTspB,EAAMu4C,EAAOv4C,IACb07E,EAASnjC,EAAOmjC,OAChBjsF,EAAW8oD,EAAO9oD,SAClBmsF,EAAWrjC,EAAOqjC,SACtB57E,EAAI/e,SAAS,4IACVjE,MAAK,SAAUK,EAAOuI,GACrB2yD,EAAO8iD,SAASH,aAAat1G,EAAI6J,MAErCisF,EAAO1+F,MAAK,SAAUg/F,EAAYiT,GAChC,IAAI1O,EAAgB0O,EAAQx/F,SACxB8oD,EAAOpoD,OAAOutF,eAAiB,GAAqC,SAAhCnlC,EAAOpoD,OAAOgtF,gBACpDoD,GAAiBvxF,KAAKikD,KAAK+oC,EAAa,GAAMvsF,GAAYmsF,EAAS5jG,OAAS,IAE9EuoG,EAAgBvxF,KAAKE,IAAIF,KAAKC,IAAIsxF,GAAgB,GAAI,GACtDp9F,EAAE8rG,GAASthG,KAAK,4IACb3Q,MAAK,SAAUK,EAAOuI,GACrB2yD,EAAO8iD,SAASH,aAAat1G,EAAI26F,UAIzCP,cAAe,SAAuBn5F,QAClB,IAAbA,IAAsBA,EAAWnQ,KAAKyZ,OAAO0vF,OAErCnpG,KACIspB,IACbrS,KAAK,4IACN3Q,MAAK,SAAUK,EAAOi+G,GACrB,IAAIC,EAAcp4G,EAAEm4G,GAChBE,EAAmBtjG,SAASqjG,EAAYr2G,KAAK,iCAAkC,KAAO2B,EACzE,IAAbA,IAAkB20G,EAAmB,GACzCD,EAAY30G,WAAW40G,QAK3BC,WAAa,CACfvgH,KAAM,WACNiV,OAAQ,CACNkrG,SAAU,CACRhpE,SAAS,IAGbx0B,OAAQ,WAENjK,MAAM5U,OADOtI,KACQ,CACnB2kH,SAAU,CACRH,aAAcD,SAASC,aAAanpG,KAH3Brb,MAITgsG,aAAcuY,SAASvY,aAAa3wF,KAJ3Brb,MAKTspG,cAAeib,SAASjb,cAAcjuF,KAL7Brb,UASfsQ,GAAI,CACFmrG,WAAY,WACGz7G,KACDyZ,OAAOkrG,SAAShpE,UADf37C,KAENyZ,OAAOsvF,qBAAsB,EAFvB/oG,KAGNunB,eAAewhF,qBAAsB,IAE9Cx8E,KAAM,WACSvsB,KACDyZ,OAAOkrG,SAAShpE,SADf37C,KAEN2kH,SAAS3Y,gBAElBA,aAAc,WACChsG,KACDyZ,OAAOkrG,SAAShpE,SADf37C,KAEN2kH,SAAS3Y,gBAElB1C,cAAe,SAAuBn5F,GACvBnQ,KACDyZ,OAAOkrG,SAAShpE,SADf37C,KAEN2kH,SAASrb,cAAcn5F,MAKhC60G,KAAO,CAETC,0BAA2B,SAAmCp0G,GAC5D,GAAIA,EAAEomB,cAAc31B,OAAS,EAAK,OAAO,EACzC,IAAI4jH,EAAKr0G,EAAEomB,cAAc,GAAGG,MACxB+tF,EAAKt0G,EAAEomB,cAAc,GAAGI,MACxB+tF,EAAKv0G,EAAEomB,cAAc,GAAGG,MACxBiuF,EAAKx0G,EAAEomB,cAAc,GAAGI,MAE5B,OADe/e,KAAKg5F,KAAMh5F,KAAKuoB,IAAMukF,EAAKF,EAAK,GAAQ5sG,KAAKuoB,IAAMwkF,EAAKF,EAAK,KAI9EG,eAAgB,SAAwBz0G,GACtC,IACI4I,EADSzZ,KACOyZ,OAAO8rG,KACvBA,EAFSvlH,KAEKulH,KACdC,EAAUD,EAAKC,QAGnB,GAFAD,EAAKE,oBAAqB,EAC1BF,EAAKG,kBAAmB,GACnBriG,QAAQW,SAAU,CACrB,GAAe,eAAXnT,EAAExO,MAAqC,eAAXwO,EAAExO,MAAyBwO,EAAEomB,cAAc31B,OAAS,EAClF,OAEFikH,EAAKE,oBAAqB,EAC1BD,EAAQG,WAAaX,KAAKC,0BAA0Bp0G,GAEjD20G,EAAQpK,UAAaoK,EAAQpK,SAAS95G,SACzCkkH,EAAQpK,SAAW3uG,EAAEoE,EAAEtI,QAAQyO,QAAS,IAd7BhX,KAc2CyZ,OAAiB,YACvC,IAA5B+rG,EAAQpK,SAAS95G,SAAgBkkH,EAAQpK,SAflCp7G,KAeoDglG,OAAO3vF,GAf3DrV,KAeqEkkD,cAChFshE,EAAQhvB,SAAWgvB,EAAQpK,SAASnkG,KAAK,kDACzCuuG,EAAQI,aAAeJ,EAAQhvB,SAAS3gF,OAAQ,IAAO4D,EAAqB,gBAC5E+rG,EAAQK,SAAWL,EAAQI,aAAap3G,KAAK,qBAAuBiL,EAAOosG,SACvC,IAAhCL,EAAQI,aAAatkH,SAKvBkkH,EAAQhvB,UACVgvB,EAAQhvB,SAAStmF,WAAW,GAzBjBlQ,KA2BNulH,KAAKO,WAAY,GAPpBN,EAAQhvB,cAAWr2F,GASzB4lH,gBAAiB,SAAyBl1G,GACxC,IACI4I,EADSzZ,KACOyZ,OAAO8rG,KACvBA,EAFSvlH,KAEKulH,KACdC,EAAUD,EAAKC,QACnB,IAAKniG,QAAQW,SAAU,CACrB,GAAe,cAAXnT,EAAExO,MAAoC,cAAXwO,EAAExO,MAAwBwO,EAAEomB,cAAc31B,OAAS,EAChF,OAEFikH,EAAKG,kBAAmB,EACxBF,EAAQQ,UAAYhB,KAAKC,0BAA0Bp0G,GAEhD20G,EAAQhvB,UAAwC,IAA5BgvB,EAAQhvB,SAASl1F,SACtC+hB,QAAQW,SACVuhG,EAAK55D,MAAQ96C,EAAE86C,MAAQ45D,EAAKb,aAE5Ba,EAAK55D,MAAS65D,EAAQQ,UAAYR,EAAQG,WAAcJ,EAAKb,aAE3Da,EAAK55D,MAAQ65D,EAAQK,WACvBN,EAAK55D,MAAS65D,EAAQK,SAAW,EAAMvtG,KAAKuoB,IAAO0kF,EAAK55D,MAAQ65D,EAAQK,SAAY,EAAI,KAEtFN,EAAK55D,MAAQlyC,EAAOk8F,WACtB4P,EAAK55D,MAASlyC,EAAOk8F,SAAW,EAAMr9F,KAAKuoB,IAAOpnB,EAAOk8F,SAAW4P,EAAK55D,MAAS,EAAI,KAExF65D,EAAQhvB,SAASzmF,UAAW,4BAA+Bw1G,EAAU,MAAI,OAE3EU,aAAc,SAAsBp1G,GAClC,IACI4I,EADSzZ,KACOyZ,OAAO8rG,KACvBA,EAFSvlH,KAEKulH,KACdC,EAAUD,EAAKC,QACnB,IAAKniG,QAAQW,SAAU,CACrB,IAAKuhG,EAAKE,qBAAuBF,EAAKG,iBACpC,OAEF,GAAe,aAAX70G,EAAExO,MAAmC,aAAXwO,EAAExO,MAAuBwO,EAAEyhE,eAAehxE,OAAS,IAAM4iB,OAAOK,QAC5F,OAEFghG,EAAKE,oBAAqB,EAC1BF,EAAKG,kBAAmB,EAErBF,EAAQhvB,UAAwC,IAA5BgvB,EAAQhvB,SAASl1F,SAC1CikH,EAAK55D,MAAQrzC,KAAKC,IAAID,KAAKE,IAAI+sG,EAAK55D,MAAO65D,EAAQK,UAAWpsG,EAAOk8F,UACrE6P,EAAQhvB,SAAStmF,WAhBJlQ,KAgBsByZ,OAAO0vF,OAAOp5F,UAAW,4BAA+Bw1G,EAAU,MAAI,KACzGA,EAAKb,aAAea,EAAK55D,MACzB45D,EAAKO,WAAY,EACE,IAAfP,EAAK55D,QAAe65D,EAAQpK,cAAWj7G,KAE7CkpE,aAAc,SAAsBx4D,GAClC,IACI00G,EADSvlH,KACKulH,KACdC,EAAUD,EAAKC,QACflrC,EAAQirC,EAAKjrC,MACZkrC,EAAQhvB,UAAwC,IAA5BgvB,EAAQhvB,SAASl1F,SACtCg5E,EAAMh9C,YACNpZ,OAAOK,SAAW1T,EAAE4B,YAAc5B,EAAEmmB,iBACxCsjD,EAAMh9C,WAAY,EAClBg9C,EAAM/8C,aAAapb,EAAe,eAAXtR,EAAExO,KAAwBwO,EAAEomB,cAAc,GAAGG,MAAQvmB,EAAEumB,MAC9EkjD,EAAM/8C,aAAazI,EAAe,eAAXjkB,EAAExO,KAAwBwO,EAAEomB,cAAc,GAAGI,MAAQxmB,EAAEwmB,SAEhFiyC,YAAa,SAAqBz4D,GAChC,IACI00G,EADSvlH,KACKulH,KACdC,EAAUD,EAAKC,QACflrC,EAAQirC,EAAKjrC,MACbk4B,EAAW+S,EAAK/S,SACpB,GAAKgT,EAAQhvB,UAAwC,IAA5BgvB,EAAQhvB,SAASl1F,SAL7BtB,KAMNiwG,YAAa,EACf31B,EAAMh9C,WAAckoF,EAAQpK,UAAjC,CAEK9gC,EAAM3mD,UACT2mD,EAAMtnE,MAAQwyG,EAAQhvB,SAAS,GAAGljF,YAClCgnE,EAAM/mE,OAASiyG,EAAQhvB,SAAS,GAAG9iF,aACnC4mE,EAAM81B,OAASlzF,MAAMwB,aAAa8mG,EAAQI,aAAa,GAAI,MAAQ,EACnEtrC,EAAM+1B,OAASnzF,MAAMwB,aAAa8mG,EAAQI,aAAa,GAAI,MAAQ,EACnEJ,EAAQU,WAAaV,EAAQpK,SAAS,GAAG9nG,YACzCkyG,EAAQW,YAAcX,EAAQpK,SAAS,GAAG1nG,aAC1C8xG,EAAQI,aAAa11G,WAAW,GAhBrBlQ,KAiBA0rB,MACT4uD,EAAM81B,QAAU91B,EAAM81B,OACtB91B,EAAM+1B,QAAU/1B,EAAM+1B,SAI1B,IAAI+V,EAAc9rC,EAAMtnE,MAAQuyG,EAAK55D,MACjC06D,EAAe/rC,EAAM/mE,OAASgyG,EAAK55D,MAEvC,KAAIy6D,EAAcZ,EAAQU,YAAcG,EAAeb,EAAQW,aAA/D,CAUA,GARA7rC,EAAMgsC,KAAOhuG,KAAKE,IAAMgtG,EAAQU,WAAa,EAAME,EAAc,EAAK,GACtE9rC,EAAMisC,MAAQjsC,EAAMgsC,KACpBhsC,EAAMksC,KAAOluG,KAAKE,IAAMgtG,EAAQW,YAAc,EAAME,EAAe,EAAK,GACxE/rC,EAAMmsC,MAAQnsC,EAAMksC,KAEpBlsC,EAAMosC,eAAevkG,EAAe,cAAXtR,EAAExO,KAAuBwO,EAAEomB,cAAc,GAAGG,MAAQvmB,EAAEumB,MAC/EkjD,EAAMosC,eAAe5xF,EAAe,cAAXjkB,EAAExO,KAAuBwO,EAAEomB,cAAc,GAAGI,MAAQxmB,EAAEwmB,OAE1EijD,EAAM3mD,UAAY4xF,EAAKO,UAAW,CACrC,GArCW9lH,KAsCFghF,iBAEJ1oE,KAAK8E,MAAMk9D,EAAMgsC,QAAUhuG,KAAK8E,MAAMk9D,EAAM81B,SAAW91B,EAAMosC,eAAevkG,EAAIm4D,EAAM/8C,aAAapb,GAChG7J,KAAK8E,MAAMk9D,EAAMisC,QAAUjuG,KAAK8E,MAAMk9D,EAAM81B,SAAW91B,EAAMosC,eAAevkG,EAAIm4D,EAAM/8C,aAAapb,GAIzG,YADAm4D,EAAMh9C,WAAY,GAElB,IA9CSt9B,KA+CDghF,iBAEL1oE,KAAK8E,MAAMk9D,EAAMksC,QAAUluG,KAAK8E,MAAMk9D,EAAM+1B,SAAW/1B,EAAMosC,eAAe5xF,EAAIwlD,EAAM/8C,aAAazI,GAChGxc,KAAK8E,MAAMk9D,EAAMmsC,QAAUnuG,KAAK8E,MAAMk9D,EAAM+1B,SAAW/1B,EAAMosC,eAAe5xF,EAAIwlD,EAAM/8C,aAAazI,GAIzG,YADAwlD,EAAMh9C,WAAY,GAIlBzsB,EAAE4B,YACJ5B,EAAEmmB,iBAEJnmB,EAAEkmB,kBAEFujD,EAAM3mD,SAAU,EAChB2mD,EAAM41B,SAAY51B,EAAMosC,eAAevkG,EAAIm4D,EAAM/8C,aAAapb,EAAKm4D,EAAM81B,OACzE91B,EAAM61B,SAAY71B,EAAMosC,eAAe5xF,EAAIwlD,EAAM/8C,aAAazI,EAAKwlD,EAAM+1B,OAErE/1B,EAAM41B,SAAW51B,EAAMgsC,OACzBhsC,EAAM41B,SAAY51B,EAAMgsC,KAAO,EAAMhuG,KAAKuoB,IAAOy5C,EAAMgsC,KAAOhsC,EAAM41B,SAAY,EAAI,KAElF51B,EAAM41B,SAAW51B,EAAMisC,OACzBjsC,EAAM41B,SAAY51B,EAAMisC,KAAO,EAAMjuG,KAAKuoB,IAAOy5C,EAAM41B,SAAW51B,EAAMisC,KAAQ,EAAI,KAGlFjsC,EAAM61B,SAAW71B,EAAMksC,OACzBlsC,EAAM61B,SAAY71B,EAAMksC,KAAO,EAAMluG,KAAKuoB,IAAOy5C,EAAMksC,KAAOlsC,EAAM61B,SAAY,EAAI,KAElF71B,EAAM61B,SAAW71B,EAAMmsC,OACzBnsC,EAAM61B,SAAY71B,EAAMmsC,KAAO,EAAMnuG,KAAKuoB,IAAOy5C,EAAM61B,SAAW71B,EAAMmsC,KAAQ,EAAI,KAIjFjU,EAASmU,gBAAiBnU,EAASmU,cAAgBrsC,EAAMosC,eAAevkG,GACxEqwF,EAASoU,gBAAiBpU,EAASoU,cAAgBtsC,EAAMosC,eAAe5xF,GACxE09E,EAASqU,WAAYrU,EAASqU,SAAW16G,KAAK6R,OACnDw0F,EAASrwF,GAAKm4D,EAAMosC,eAAevkG,EAAIqwF,EAASmU,gBAAkBx6G,KAAK6R,MAAQw0F,EAASqU,UAAY,EACpGrU,EAAS19E,GAAKwlD,EAAMosC,eAAe5xF,EAAI09E,EAASoU,gBAAkBz6G,KAAK6R,MAAQw0F,EAASqU,UAAY,EAChGvuG,KAAKuJ,IAAIy4D,EAAMosC,eAAevkG,EAAIqwF,EAASmU,eAAiB,IAAKnU,EAASrwF,EAAI,GAC9E7J,KAAKuJ,IAAIy4D,EAAMosC,eAAe5xF,EAAI09E,EAASoU,eAAiB,IAAKpU,EAAS19E,EAAI,GAClF09E,EAASmU,cAAgBrsC,EAAMosC,eAAevkG,EAC9CqwF,EAASoU,cAAgBtsC,EAAMosC,eAAe5xF,EAC9C09E,EAASqU,SAAW16G,KAAK6R,MAEzBwnG,EAAQI,aAAa71G,UAAW,eAAkBuqE,EAAc,SAAI,OAAUA,EAAc,SAAI,YAElG/Q,WAAY,WACV,IACIg8C,EADSvlH,KACKulH,KACdC,EAAUD,EAAKC,QACflrC,EAAQirC,EAAKjrC,MACbk4B,EAAW+S,EAAK/S,SACpB,GAAKgT,EAAQhvB,UAAwC,IAA5BgvB,EAAQhvB,SAASl1F,OAA1C,CACA,IAAKg5E,EAAMh9C,YAAcg9C,EAAM3mD,QAG7B,OAFA2mD,EAAMh9C,WAAY,OAClBg9C,EAAM3mD,SAAU,GAGlB2mD,EAAMh9C,WAAY,EAClBg9C,EAAM3mD,SAAU,EAChB,IAAImzF,EAAoB,IACpBC,EAAoB,IACpBC,EAAoBxU,EAASrwF,EAAI2kG,EACjCG,EAAe3sC,EAAM41B,SAAW8W,EAChCE,EAAoB1U,EAAS19E,EAAIiyF,EACjCI,EAAe7sC,EAAM61B,SAAW+W,EAGjB,IAAf1U,EAASrwF,IAAW2kG,EAAoBxuG,KAAKuJ,KAAKolG,EAAe3sC,EAAM41B,UAAYsC,EAASrwF,IAC7E,IAAfqwF,EAAS19E,IAAWiyF,EAAoBzuG,KAAKuJ,KAAKslG,EAAe7sC,EAAM61B,UAAYqC,EAAS19E,IAChG,IAAI69E,EAAmBr6F,KAAKC,IAAIuuG,EAAmBC,GAEnDzsC,EAAM41B,SAAW+W,EACjB3sC,EAAM61B,SAAWgX,EAGjB,IAAIf,EAAc9rC,EAAMtnE,MAAQuyG,EAAK55D,MACjC06D,EAAe/rC,EAAM/mE,OAASgyG,EAAK55D,MACvC2uB,EAAMgsC,KAAOhuG,KAAKE,IAAMgtG,EAAQU,WAAa,EAAME,EAAc,EAAK,GACtE9rC,EAAMisC,MAAQjsC,EAAMgsC,KACpBhsC,EAAMksC,KAAOluG,KAAKE,IAAMgtG,EAAQW,YAAc,EAAME,EAAe,EAAK,GACxE/rC,EAAMmsC,MAAQnsC,EAAMksC,KACpBlsC,EAAM41B,SAAW53F,KAAKC,IAAID,KAAKE,IAAI8hE,EAAM41B,SAAU51B,EAAMisC,MAAOjsC,EAAMgsC,MACtEhsC,EAAM61B,SAAW73F,KAAKC,IAAID,KAAKE,IAAI8hE,EAAM61B,SAAU71B,EAAMmsC,MAAOnsC,EAAMksC,MAEtEhB,EAAQI,aAAa11G,WAAWyiG,GAAkB5iG,UAAW,eAAkBuqE,EAAc,SAAI,OAAUA,EAAc,SAAI,WAE/H8sC,gBAAiB,WACf,IACI7B,EADSvlH,KACKulH,KACdC,EAAUD,EAAKC,QACfA,EAAQpK,UAHCp7G,KAGkBkgE,gBAHlBlgE,KAG2CkkD,cAClDshE,EAAQhvB,UACVgvB,EAAQhvB,SAASzmF,UAAU,+BAEzBy1G,EAAQI,cACVJ,EAAQI,aAAa71G,UAAU,sBAGjCw1G,EAAK55D,MAAQ,EACb45D,EAAKb,aAAe,EAEpBc,EAAQpK,cAAWj7G,EACnBqlH,EAAQhvB,cAAWr2F,EACnBqlH,EAAQI,kBAAezlH,IAI3BoO,OAAQ,SAAgBsC,GACtB,IACI00G,EADSvlH,KACKulH,KAEdA,EAAK55D,OAAwB,IAAf45D,EAAK55D,MAErB45D,EAAK8B,MAGL9B,EAAK+B,GAAGz2G,IAGZy2G,GAAI,SAAcz2G,GAChB,IAoBI02G,EACAC,EAGA5uB,EACAC,EACA7vB,EACAC,EACAw+C,EACAC,EACAtB,EACAC,EACAsB,EACAC,EACAC,EACAC,EACA5B,EACAC,EAnCAZ,EAFSvlH,KAEKulH,KACd9rG,EAHSzZ,KAGOyZ,OAAO8rG,KACvBC,EAAUD,EAAKC,QACflrC,EAAQirC,EAAKjrC,OAEZkrC,EAAQpK,WAPAp7G,KAQAyZ,OAAOqrF,SARP9kG,KAQyByZ,OAAOqrF,QAAQnpD,SARxC37C,KAQ0D8kG,QACnE0gB,EAAQpK,SATCp7G,KASiBujF,WAAWh5E,SAAU,IATtCvK,KASoDyZ,OAAuB,kBAEpF+rG,EAAQpK,SAXCp7G,KAWiBglG,OAAO3vF,GAXxBrV,KAWkCkkD,aAE7CshE,EAAQhvB,SAAWgvB,EAAQpK,SAASnkG,KAAK,kDACzCuuG,EAAQI,aAAeJ,EAAQhvB,SAAS3gF,OAAQ,IAAO4D,EAAqB,iBAEzE+rG,EAAQhvB,UAAwC,IAA5BgvB,EAAQhvB,SAASl1F,UAE1CkkH,EAAQpK,SAASvtG,SAAU,GAAM4L,EAAuB,uBAqBpB,IAAzB6gE,EAAM/8C,aAAapb,GAAqBtR,GACjD02G,EAAoB,aAAX12G,EAAExO,KAAsBwO,EAAEyhE,eAAe,GAAGl7C,MAAQvmB,EAAEumB,MAC/DowF,EAAoB,aAAX32G,EAAExO,KAAsBwO,EAAEyhE,eAAe,GAAGj7C,MAAQxmB,EAAEwmB,QAE/DkwF,EAASjtC,EAAM/8C,aAAapb,EAC5BqlG,EAASltC,EAAM/8C,aAAazI,GAG9BywF,EAAK55D,MAAQ65D,EAAQI,aAAap3G,KAAK,qBAAuBiL,EAAOosG,SACrEN,EAAKb,aAAec,EAAQI,aAAap3G,KAAK,qBAAuBiL,EAAOosG,SACxEh1G,GACFq1G,EAAaV,EAAQpK,SAAS,GAAG9nG,YACjC6yG,EAAcX,EAAQpK,SAAS,GAAG1nG,aAGlCklF,EAFU4sB,EAAQpK,SAASznG,SAASU,KAEhB6xG,EAAa,EAAMqB,EACvC1uB,EAFU2sB,EAAQpK,SAASznG,SAASS,IAEhB+xG,EAAc,EAAMqB,EAExCC,EAAajC,EAAQhvB,SAAS,GAAGljF,YACjCo0G,EAAclC,EAAQhvB,SAAS,GAAG9iF,aAClC0yG,EAAcqB,EAAalC,EAAK55D,MAChC06D,EAAeqB,EAAcnC,EAAK55D,MAIlCk8D,IAFAF,EAAgBrvG,KAAKE,IAAM0tG,EAAa,EAAME,EAAc,EAAK,IAGjE0B,IAFAF,EAAgBtvG,KAAKE,IAAM2tG,EAAc,EAAME,EAAe,EAAK,KAInEr9C,EAAa4vB,EAAQ2sB,EAAK55D,OAGTg8D,IACf3+C,EAAa2+C,GAEX3+C,EAAa6+C,IACf7+C,EAAa6+C,IANf5+C,EAAa4vB,EAAQ0sB,EAAK55D,OASTi8D,IACf3+C,EAAa2+C,GAEX3+C,EAAa6+C,IACf7+C,EAAa6+C,KAGf9+C,EAAa,EACbC,EAAa,GAEfu8C,EAAQI,aAAa11G,WAAW,KAAKH,UAAW,eAAiBi5D,EAAa,OAASC,EAAa,SACpGu8C,EAAQhvB,SAAStmF,WAAW,KAAKH,UAAW,4BAA+Bw1G,EAAU,MAAI,OAE3F8B,IAAK,WACH,IAEI9B,EAFSvlH,KAEKulH,KACd9rG,EAHSzZ,KAGOyZ,OAAO8rG,KACvBC,EAAUD,EAAKC,QAEdA,EAAQpK,WANAp7G,KAOAyZ,OAAOqrF,SAPP9kG,KAOyByZ,OAAOqrF,QAAQnpD,SAPxC37C,KAO0D8kG,QACnE0gB,EAAQpK,SARCp7G,KAQiBujF,WAAWh5E,SAAU,IARtCvK,KAQoDyZ,OAAuB,kBAEpF+rG,EAAQpK,SAVCp7G,KAUiBglG,OAAO3vF,GAVxBrV,KAUkCkkD,aAE7CshE,EAAQhvB,SAAWgvB,EAAQpK,SAASnkG,KAAK,kDACzCuuG,EAAQI,aAAeJ,EAAQhvB,SAAS3gF,OAAQ,IAAO4D,EAAqB,iBAEzE+rG,EAAQhvB,UAAwC,IAA5BgvB,EAAQhvB,SAASl1F,SAE1CikH,EAAK55D,MAAQ,EACb45D,EAAKb,aAAe,EACpBc,EAAQI,aAAa11G,WAAW,KAAKH,UAAU,sBAC/Cy1G,EAAQhvB,SAAStmF,WAAW,KAAKH,UAAU,+BAC3Cy1G,EAAQpK,SAASltG,YAAa,GAAMuL,EAAuB,kBAC3D+rG,EAAQpK,cAAWj7G,IAGrBg2D,OAAQ,WACN,IACIovD,EADSvlH,KACKulH,KAClB,IAAIA,EAAK5pE,QAAT,CACA4pE,EAAK5pE,SAAU,EAEf,IAAI/3B,IAA+C,eALtC5jB,KAKgBs2B,YAAYC,QAA0BlT,QAAQO,kBAL9D5jB,KAKwFyZ,OAAOq7F,mBAAmB,CAAE5+E,SAAS,EAAMvlB,SAAS,GACrJo3G,GAA4B1kG,QAAQO,iBAAkB,CAAEsS,SAAS,EAAOvlB,SAAS,GAEjFq3G,EAAgB,IARPhoH,KAQqByZ,OAAiB,WAG/C4J,QAAQW,UAXChkB,KAYJujF,WAAWjzE,GAAG,eAAgB03G,EAAezC,EAAKD,eAAgB1hG,GAZ9D5jB,KAaJujF,WAAWjzE,GAAG,gBAAiB03G,EAAezC,EAAKQ,gBAAiBniG,GAbhE5jB,KAcJujF,WAAWjzE,GAAG,aAAc03G,EAAezC,EAAKU,aAAcriG,IAC/B,eAf3B5jB,KAeKs2B,YAAYC,QAfjBv2B,KAgBJujF,WAAWjzE,GAhBPtQ,KAgBiBs2B,YAAYC,MAAOyxF,EAAezC,EAAKD,eAAgB1hG,GAhBxE5jB,KAiBJujF,WAAWjzE,GAjBPtQ,KAiBiBs2B,YAAYE,KAAMwxF,EAAezC,EAAKQ,gBAAiBgC,GAjBxE/nH,KAkBJujF,WAAWjzE,GAlBPtQ,KAkBiBs2B,YAAYG,IAAKuxF,EAAezC,EAAKU,aAAcriG,GAlBpE5jB,KAmBAs2B,YAAY2I,QAnBZj/B,KAoBFujF,WAAWjzE,GApBTtQ,KAoBmBs2B,YAAY2I,OAAQ+oF,EAAezC,EAAKU,aAAcriG,IApBzE5jB,KAyBNujF,WAAWjzE,GAzBLtQ,KAyBes2B,YAAYE,KAAO,IAzBlCx2B,KAyBgDyZ,OAAO8rG,KAAmB,eAAIA,EAAKj8C,YAAay+C,KAE/G3xD,QAAS,WACP,IACImvD,EADSvlH,KACKulH,KAClB,GAAKA,EAAK5pE,QAAV,CAFa37C,KAINulH,KAAK5pE,SAAU,EAEtB,IAAI/3B,IAA+C,eANtC5jB,KAMgBs2B,YAAYC,QAA0BlT,QAAQO,kBAN9D5jB,KAMwFyZ,OAAOq7F,mBAAmB,CAAE5+E,SAAS,EAAMvlB,SAAS,GACrJo3G,GAA4B1kG,QAAQO,iBAAkB,CAAEsS,SAAS,EAAOvlB,SAAS,GAEjFq3G,EAAgB,IATPhoH,KASqByZ,OAAiB,WAG/C4J,QAAQW,UAZChkB,KAaJujF,WAAW5xE,IAAI,eAAgBq2G,EAAezC,EAAKD,eAAgB1hG,GAb/D5jB,KAcJujF,WAAW5xE,IAAI,gBAAiBq2G,EAAezC,EAAKQ,gBAAiBniG,GAdjE5jB,KAeJujF,WAAW5xE,IAAI,aAAcq2G,EAAezC,EAAKU,aAAcriG,IAChC,eAhB3B5jB,KAgBKs2B,YAAYC,QAhBjBv2B,KAiBJujF,WAAW5xE,IAjBP3R,KAiBkBs2B,YAAYC,MAAOyxF,EAAezC,EAAKD,eAAgB1hG,GAjBzE5jB,KAkBJujF,WAAW5xE,IAlBP3R,KAkBkBs2B,YAAYE,KAAMwxF,EAAezC,EAAKQ,gBAAiBgC,GAlBzE/nH,KAmBJujF,WAAW5xE,IAnBP3R,KAmBkBs2B,YAAYG,IAAKuxF,EAAezC,EAAKU,aAAcriG,GAnBrE5jB,KAoBAs2B,YAAY2I,QApBZj/B,KAqBFujF,WAAW5xE,IArBT3R,KAqBoBs2B,YAAY2I,OAAQ+oF,EAAezC,EAAKU,aAAcriG,IArB1E5jB,KA0BNujF,WAAW5xE,IA1BL3R,KA0BgBs2B,YAAYE,KAAO,IA1BnCx2B,KA0BiDyZ,OAAO8rG,KAAmB,eAAIA,EAAKj8C,YAAay+C,MAI9GE,OAAS,CACXzjH,KAAM,OACNiV,OAAQ,CACN8rG,KAAM,CACJ5pE,SAAS,EACTkqE,SAAU,EACVlQ,SAAU,EACVpnG,QAAQ,EACR25G,eAAgB,wBAChBC,iBAAkB,wBAGtBhhG,OAAQ,WACN,IAAI06C,EAAS7hE,KACTulH,EAAO,CACT5pE,SAAS,EACTgQ,MAAO,EACP+4D,aAAc,EACdoB,WAAW,EACXN,QAAS,CACPpK,cAAUj7G,EACV+lH,gBAAY/lH,EACZgmH,iBAAahmH,EACbq2F,cAAUr2F,EACVylH,kBAAczlH,EACd0lH,SAAU,GAEZvrC,MAAO,CACLh9C,eAAWn9B,EACXwzB,aAASxzB,EACT+vG,cAAU/vG,EACVgwG,cAAUhwG,EACVmmH,UAAMnmH,EACNqmH,UAAMrmH,EACNomH,UAAMpmH,EACNsmH,UAAMtmH,EACN6S,WAAO7S,EACPoT,YAAQpT,EACRiwG,YAAQjwG,EACRkwG,YAAQlwG,EACRo9B,aAAc,GACdmpF,eAAgB,IAElBlU,SAAU,CACRrwF,OAAGhiB,EACH20B,OAAG30B,EACHwmH,mBAAexmH,EACfymH,mBAAezmH,EACf0mH,cAAU1mH,IAId,+HAAiIiB,MAAM,KAAK2C,SAAQ,SAAU6Y,GAC5J2oG,EAAK3oG,GAAcooG,KAAKpoG,GAAYvB,KAAKwmD,MAE3C3kD,MAAM5U,OAAOu5D,EAAQ,CACnB0jD,KAAMA,IAGR,IAAI55D,EAAQ,EACZznD,OAAO6f,eAAe89C,EAAO0jD,KAAM,QAAS,CAC1Cr8G,IAAK,WACH,OAAOyiD,GAETpjC,IAAK,SAAa7Z,GAChB,GAAIi9C,IAAUj9C,EAAO,CACnB,IAAI6nF,EAAU10B,EAAO0jD,KAAKC,QAAQhvB,SAAW30B,EAAO0jD,KAAKC,QAAQhvB,SAAS,QAAKr2F,EAC3Eo4G,EAAU12C,EAAO0jD,KAAKC,QAAQpK,SAAWv5C,EAAO0jD,KAAKC,QAAQpK,SAAS,QAAKj7G,EAC/E0hE,EAAOl7C,KAAK,aAAcjY,EAAO6nF,EAASgiB,GAE5C5sD,EAAQj9C,MAId4B,GAAI,CACFic,KAAM,WACSvsB,KACFyZ,OAAO8rG,KAAK5pE,SADV37C,KAEJulH,KAAKpvD,UAGhB5sC,QAAS,WACMvpB,KACNulH,KAAKnvD,WAEdgyD,WAAY,SAAoBv3G,GACjB7Q,KACDulH,KAAK5pE,SADJ37C,KAENulH,KAAKl8C,aAAax4D,IAE3Bw3G,SAAU,SAAkBx3G,GACb7Q,KACDulH,KAAK5pE,SADJ37C,KAENulH,KAAKh8C,WAAW14D,IAEzBy3G,UAAW,SAAmBz3G,GACf7Q,KACFyZ,OAAO8rG,KAAK5pE,SADV37C,KAC4BulH,KAAK5pE,SADjC37C,KACmDyZ,OAAO8rG,KAAKh3G,QAD/DvO,KAEJulH,KAAKh3G,OAAOsC,IAGvBgC,cAAe,WACA7S,KACFulH,KAAK5pE,SADH37C,KACqByZ,OAAO8rG,KAAK5pE,SADjC37C,KAEJulH,KAAK6B,mBAGhBmB,YAAa,WACEvoH,KACFulH,KAAK5pE,SADH37C,KACqByZ,OAAO8rG,KAAK5pE,SADjC37C,KACmDyZ,OAAO8rF,SAD1DvlG,KAEJulH,KAAK6B,qBAMhBoB,OAAS,CACXC,YAAa,SAAqB9hH,EAAO+hH,QACd,IAApBA,IAA6BA,GAAkB,GAEpD,IAAI7mD,EAAS7hE,KACTyZ,EAASooD,EAAOpoD,OAAOy7E,KAC3B,QAAqB,IAAVvuF,GACkB,IAAzBk7D,EAAOmjC,OAAO1jG,OAAlB,CACA,IAEI85G,EAFYv5C,EAAOijC,SAAWjjC,EAAOpoD,OAAOqrF,QAAQnpD,QAGpDkmB,EAAO0hB,WAAWh5E,SAAU,IAAOs3D,EAAOpoD,OAAiB,WAAI,6BAAgC9S,EAAQ,MACvGk7D,EAAOmjC,OAAO3vF,GAAG1O,GAEjBgiH,EAAUvN,EAASnkG,KAAM,IAAOwC,EAAmB,aAAI,SAAYA,EAAkB,YAAI,UAAaA,EAAmB,aAAI,MAC7H2hG,EAAShtG,SAASqL,EAAOmvG,eAAkBxN,EAAShtG,SAASqL,EAAOovG,cAAiBzN,EAAShtG,SAASqL,EAAOqvG,gBAChHH,EAAUA,EAAQ16G,IAAImtG,EAAS,KAEV,IAAnBuN,EAAQrnH,QAEZqnH,EAAQriH,MAAK,SAAUyiH,EAAYxyB,GACjC,IAAIC,EAAW/pF,EAAE8pF,GACjBC,EAAS3oF,SAAS4L,EAAOqvG,cAEzB,IAAIE,EAAaxyB,EAAShoF,KAAK,mBAC3BhG,EAAMguF,EAAShoF,KAAK,YACpBynG,EAASzf,EAAShoF,KAAK,eACvB0nG,EAAQ1f,EAAShoF,KAAK,cACtBy6G,EAAazyB,EAAS3gF,OAAO,WAEjCgsD,EAAOg0B,UAAUW,EAAS,GAAKhuF,GAAOwgH,EAAa/S,EAAQC,GAAO,GAAO,WACvE,GAAI,MAAOr0C,GAA8CA,KAAWA,GAAWA,EAAOpoD,UAAWooD,EAAOlb,UAAxG,CA+BA,GA9BIqiE,GACFxyB,EAAStjF,IAAI,mBAAqB,QAAW81G,EAAa,MAC1DxyB,EAAS1nF,WAAW,qBAEhBmnG,IACFzf,EAAShoF,KAAK,SAAUynG,GACxBzf,EAAS1nF,WAAW,gBAElBonG,IACF1f,EAAShoF,KAAK,QAAS0nG,GACvB1f,EAAS1nF,WAAW,eAElBm6G,EAAW3nH,QACb2nH,EAAW1+G,SAAS,UAAUjE,MAAK,SAAU4iH,EAAaC,GACxD,IAAIC,EAAU38G,EAAE08G,GAEZC,EAAQ56G,KAAK,iBACf46G,EAAQ56G,KAAK,SAAU46G,EAAQ56G,KAAK,gBACpC46G,EAAQt6G,WAAW,mBAIrBtG,IACFguF,EAAShoF,KAAK,MAAOhG,GACrBguF,EAAS1nF,WAAW,cAIxB0nF,EAAS3oF,SAAS4L,EAAOovG,aAAa36G,YAAYuL,EAAOqvG,cACzD1N,EAASnkG,KAAM,IAAOwC,EAAqB,gBAAItL,SAC3C0zD,EAAOpoD,OAAOilD,MAAQgqD,EAAiB,CACzC,IAAIW,EAAqBjO,EAAS5sG,KAAK,2BACvC,GAAI4sG,EAAShtG,SAASyzD,EAAOpoD,OAAOmxF,qBAAsB,CACxD,IAAI0e,EAAgBznD,EAAO0hB,WAAWh5E,SAAU,6BAAgC8+G,EAAqB,WAAexnD,EAAOpoD,OAA0B,oBAAI,KACzJooD,EAAOqzB,KAAKuzB,YAAYa,EAAc3iH,SAAS,OAC1C,CACL,IAAI4iH,EAAkB1nD,EAAO0hB,WAAWh5E,SAAU,IAAOs3D,EAAOpoD,OAA0B,oBAAI,6BAAgC4vG,EAAqB,MACnJxnD,EAAOqzB,KAAKuzB,YAAYc,EAAgB5iH,SAAS,IAGrDk7D,EAAOl7C,KAAK,iBAAkBy0F,EAAS,GAAI5kB,EAAS,IAChD30B,EAAOpoD,OAAOqwF,YAChBjoC,EAAOqnC,uBAIXrnC,EAAOl7C,KAAK,gBAAiBy0F,EAAS,GAAI5kB,EAAS,SAGvD1tD,KAAM,WACJ,IAAI+4B,EAAS7hE,KACTujF,EAAa1hB,EAAO0hB,WACpBm0B,EAAe71C,EAAOpoD,OACtBurF,EAASnjC,EAAOmjC,OAChB9gD,EAAc2d,EAAO3d,YACrB2gD,EAAYhjC,EAAOijC,SAAW4S,EAAa5S,QAAQnpD,QACnDliC,EAASi+F,EAAaxiB,KAEtBuR,EAAgBiR,EAAajR,cAKjC,SAAS+iB,EAAW7iH,GAClB,GAAIk+F,GACF,GAAIthB,EAAWh5E,SAAU,IAAOmtG,EAAuB,WAAI,6BAAgC/wG,EAAQ,MAAQrF,OACzG,OAAO,OAEJ,GAAI0jG,EAAOr+F,GAAU,OAAO,EACnC,OAAO,EAGT,SAAS2+F,EAAWiT,GAClB,OAAI1T,EACKp4F,EAAE8rG,GAAS/pG,KAAK,2BAElB/B,EAAE8rG,GAAS5xG,QAIpB,GArBsB,SAAlB8/F,IACFA,EAAgB,GAmBb5kC,EAAOqzB,KAAKu0B,qBAAsB5nD,EAAOqzB,KAAKu0B,oBAAqB,GACpE5nD,EAAOpoD,OAAOuvF,sBAChBzlB,EAAWh5E,SAAU,IAAOmtG,EAA8B,mBAAIpxG,MAAK,SAAUkkD,EAAS+tD,GACpF,IAAI5xG,EAAQk+F,EAAYp4F,EAAE8rG,GAAS/pG,KAAK,2BAA6B/B,EAAE8rG,GAAS5xG,QAChFk7D,EAAOqzB,KAAKuzB,YAAY9hH,WAErB,GAAI8/F,EAAgB,EACzB,IAAK,IAAIzlG,EAAIkjD,EAAaljD,EAAIkjD,EAAcuiD,EAAezlG,GAAK,EAC1DwoH,EAAWxoH,IAAM6gE,EAAOqzB,KAAKuzB,YAAYznH,QAG/C6gE,EAAOqzB,KAAKuzB,YAAYvkE,GAE1B,GAAIzqC,EAAOiwG,aACT,GAAIjjB,EAAgB,GAAMhtF,EAAOkwG,oBAAsBlwG,EAAOkwG,mBAAqB,EAAI,CAMrF,IALA,IAAIC,EAASnwG,EAAOkwG,mBAChB1R,EAAMxR,EACNojB,EAAWvxG,KAAKE,IAAI0rC,EAAc+zD,EAAM3/F,KAAKC,IAAIqxG,EAAQ3R,GAAMjT,EAAO1jG,QACtEwoH,EAAWxxG,KAAKC,IAAI2rC,EAAc5rC,KAAKC,IAAI0/F,EAAK2R,GAAS,GAEpDl6G,EAAMw0C,EAAcuiD,EAAe/2F,EAAMm6G,EAAUn6G,GAAO,EAC7D85G,EAAW95G,IAAQmyD,EAAOqzB,KAAKuzB,YAAY/4G,GAGjD,IAAK,IAAIg4B,EAAMoiF,EAAUpiF,EAAMwc,EAAaxc,GAAO,EAC7C8hF,EAAW9hF,IAAQm6B,EAAOqzB,KAAKuzB,YAAY/gF,OAE5C,CACL,IAAIojE,EAAYvnB,EAAWh5E,SAAU,IAAOmtG,EAA2B,gBACnE5M,EAAUxpG,OAAS,GAAKugE,EAAOqzB,KAAKuzB,YAAYnjB,EAAWwF,IAE/D,IAAIE,EAAYznB,EAAWh5E,SAAU,IAAOmtG,EAA2B,gBACnE1M,EAAU1pG,OAAS,GAAKugE,EAAOqzB,KAAKuzB,YAAYnjB,EAAW0F,OAMnE+e,OAAS,CACXvlH,KAAM,OACNiV,OAAQ,CACNy7E,KAAM,CACJv5C,SAAS,EACT+tE,cAAc,EACdC,mBAAoB,EACpBK,uBAAuB,EAEvBpB,aAAc,cACdE,aAAc,sBACdD,YAAa,qBACboB,eAAgB,0BAGpB9iG,OAAQ,WAENjK,MAAM5U,OADOtI,KACQ,CACnBk1F,KAAM,CACJu0B,oBAAoB,EACpB3gF,KAAM0/E,OAAO1/E,KAAKztB,KAJTrb,MAKTyoH,YAAaD,OAAOC,YAAYptG,KALvBrb,UASfsQ,GAAI,CACFmrG,WAAY,WACGz7G,KACFyZ,OAAOy7E,KAAKv5C,SADV37C,KAC4ByZ,OAAO48F,gBADnCr2G,KAEJyZ,OAAO48F,eAAgB,IAGlC9pF,KAAM,WACSvsB,KACFyZ,OAAOy7E,KAAKv5C,UADV37C,KAC6ByZ,OAAOilD,MAAuC,IAD3E1+D,KACmDyZ,OAAOozF,cAD1D7sG,KAEJk1F,KAAKpsD,QAGhBrsB,OAAQ,WACOzc,KACFyZ,OAAOy3E,WADLlxF,KACyByZ,OAAO45F,gBADhCrzG,KAEJk1F,KAAKpsD,QAGhBtsB,OAAQ,WACOxc,KACFyZ,OAAOy7E,KAAKv5C,SADV37C,KAEJk1F,KAAKpsD,QAGhBohF,kBAAmB,WACJlqH,KACFyZ,OAAOy7E,KAAKv5C,SADV37C,KAEJk1F,KAAKpsD,QAGhB4jE,gBAAiB,WACF1sG,KACFyZ,OAAOy7E,KAAKv5C,UADV37C,KAEAyZ,OAAOy7E,KAAK80B,wBAFZhqH,KAE8CyZ,OAAOy7E,KAAK80B,wBAF1DhqH,KAE2Fk1F,KAAKu0B,qBAFhGzpH,KAGFk1F,KAAKpsD,QAIlBj2B,cAAe,WACA7S,KACFyZ,OAAOy7E,KAAKv5C,UADV37C,KAC6ByZ,OAAOy7E,KAAK80B,uBADzChqH,KAEJk1F,KAAKpsD,QAGhBy/E,YAAa,WACEvoH,KACFyZ,OAAOy7E,KAAKv5C,SADV37C,KAC4ByZ,OAAO8rF,SADnCvlG,KAEJk1F,KAAKpsD,UAQhBqhF,WAAa,CACfC,aAAc,SAAsBjoG,EAAG2S,GACrC,IACM+0F,EACAC,EACAO,EAqBFC,EACAC,EAzBAC,EAIK,SAAUC,EAAOh7G,GAGtB,IAFAq6G,GAAY,EACZD,EAAWY,EAAMnpH,OACVuoH,EAAWC,EAAW,GAEvBW,EADJJ,EAAQR,EAAWC,GAAY,IACXr6G,EAClBq6G,EAAWO,EAEXR,EAAWQ,EAGf,OAAOR,GAuBX,OApBA7pH,KAAKmiB,EAAIA,EACTniB,KAAK80B,EAAIA,EACT90B,KAAKwgH,UAAYr+F,EAAE7gB,OAAS,EAO5BtB,KAAK0qH,YAAc,SAAqBtF,GACtC,OAAKA,GAGLmF,EAAKC,EAAaxqH,KAAKmiB,EAAGijG,GAC1BkF,EAAKC,EAAK,GAIAnF,EAAKplH,KAAKmiB,EAAEmoG,KAAQtqH,KAAK80B,EAAEy1F,GAAMvqH,KAAK80B,EAAEw1F,KAAStqH,KAAKmiB,EAAEooG,GAAMvqH,KAAKmiB,EAAEmoG,IAAQtqH,KAAK80B,EAAEw1F,IAR5E,GAUbtqH,MAGT2qH,uBAAwB,SAAgC1oG,GACzCjiB,KACD4qH,WAAWC,SADV7qH,KAEJ4qH,WAAWC,OAFP7qH,KAEuByZ,OAAOilD,KACrC,IAAIyrD,WAAWC,aAHRpqH,KAG4BmlG,WAAYljF,EAAEkjF,YACjD,IAAIglB,WAAWC,aAJRpqH,KAI4BklG,SAAUjjF,EAAEijF,YAGvD8G,aAAc,SAAsB8e,EAAgB7e,GAClD,IAEI/B,EACA6gB,EAHAlpD,EAAS7hE,KACTgrH,EAAanpD,EAAO+oD,WAAWK,QAGnC,SAASC,EAAuBjpG,GAK9B,IAAIkzC,EAAY0M,EAAO8iC,cAAgB9iC,EAAO1M,UAAY0M,EAAO1M,UAC7B,UAAhC0M,EAAOpoD,OAAOmxG,WAAWO,KAC3BtpD,EAAO+oD,WAAWD,uBAAuB1oG,GAGzC8oG,GAAuBlpD,EAAO+oD,WAAWC,OAAOH,aAAav1D,IAG1D41D,GAAuD,cAAhClpD,EAAOpoD,OAAOmxG,WAAWO,KACnDjhB,GAAcjoF,EAAE6tC,eAAiB7tC,EAAE4tC,iBAAmBgS,EAAO/R,eAAiB+R,EAAOhS,gBACrFk7D,GAAwB51D,EAAY0M,EAAOhS,gBAAkBq6C,EAAcjoF,EAAE4tC,gBAG3EgS,EAAOpoD,OAAOmxG,WAAWxkH,UAC3B2kH,EAAsB9oG,EAAE6tC,eAAiBi7D,GAE3C9oG,EAAEgoF,eAAe8gB,GACjB9oG,EAAE+pF,aAAa+e,EAAqBlpD,GACpC5/C,EAAEmpF,oBACFnpF,EAAEuoF,sBAEJ,GAAI1nG,MAAMC,QAAQioH,GAChB,IAAK,IAAIhqH,EAAI,EAAGA,EAAIgqH,EAAW1pH,OAAQN,GAAK,EACtCgqH,EAAWhqH,KAAOirG,GAAgB+e,EAAWhqH,aAAcq2G,QAC7D6T,EAAuBF,EAAWhqH,SAG7BgqH,aAAsB3T,QAAUpL,IAAiB+e,GAC1DE,EAAuBF,IAG3B1hB,cAAe,SAAuBn5F,EAAU87F,GAC9C,IAEIjrG,EAFA6gE,EAAS7hE,KACTgrH,EAAanpD,EAAO+oD,WAAWK,QAEnC,SAASG,EAAwBnpG,GAC/BA,EAAEqnF,cAAcn5F,EAAU0xD,GACT,IAAb1xD,IACF8R,EAAEyqF,kBACEzqF,EAAExI,OAAOqwF,YACX5sF,MAAMW,UAAS,WACboE,EAAEinF,sBAGNjnF,EAAEshE,WAAW1wE,eAAc,WACpBm4G,IACD/oG,EAAExI,OAAOilD,MAAwC,UAAhCmD,EAAOpoD,OAAOmxG,WAAWO,IAC5ClpG,EAAEorF,UAEJprF,EAAEpP,qBAIR,GAAI/P,MAAMC,QAAQioH,GAChB,IAAKhqH,EAAI,EAAGA,EAAIgqH,EAAW1pH,OAAQN,GAAK,EAClCgqH,EAAWhqH,KAAOirG,GAAgB+e,EAAWhqH,aAAcq2G,QAC7D+T,EAAwBJ,EAAWhqH,SAG9BgqH,aAAsB3T,QAAUpL,IAAiB+e,GAC1DI,EAAwBJ,KAI1BK,aAAe,CACjB7mH,KAAM,aACNiV,OAAQ,CACNmxG,WAAY,CACVK,aAAS9qH,EACTiG,SAAS,EACT+kH,GAAI,UAGRhkG,OAAQ,WAENjK,MAAM5U,OADOtI,KACQ,CACnB4qH,WAAY,CACVK,QAHSjrH,KAGOyZ,OAAOmxG,WAAWK,QAClCN,uBAAwBR,WAAWQ,uBAAuBtvG,KAJjDrb,MAKTgsG,aAAcme,WAAWne,aAAa3wF,KAL7Brb,MAMTspG,cAAe6gB,WAAW7gB,cAAcjuF,KAN/Brb,UAUfsQ,GAAI,CACFwjD,OAAQ,WACO9zD,KACD4qH,WAAWK,SADVjrH,KAEF4qH,WAAWC,SAFT7qH,KAGJ4qH,WAAWC,YAAS1qH,SAHhBH,KAIG4qH,WAAWC,SAG7BruG,OAAQ,WACOxc,KACD4qH,WAAWK,SADVjrH,KAEF4qH,WAAWC,SAFT7qH,KAGJ4qH,WAAWC,YAAS1qH,SAHhBH,KAIG4qH,WAAWC,SAG7BhR,eAAgB,WACD75G,KACD4qH,WAAWK,SADVjrH,KAEF4qH,WAAWC,SAFT7qH,KAGJ4qH,WAAWC,YAAS1qH,SAHhBH,KAIG4qH,WAAWC,SAG7B7e,aAAc,SAAsB72C,EAAW82C,GAChCjsG,KACD4qH,WAAWK,SADVjrH,KAEN4qH,WAAW5e,aAAa72C,EAAW82C,IAE5C3C,cAAe,SAAuBn5F,EAAU87F,GACjCjsG,KACD4qH,WAAWK,SADVjrH,KAEN4qH,WAAWthB,cAAcn5F,EAAU87F,MAK5Cqf,UAAY,CACd/+F,KAAM,WAEJ,GADavsB,KACDyZ,OAAO/N,QAAnB,CACA,IAAKJ,IAAII,UAAYJ,IAAII,QAAQE,UAG/B,OALW5L,KAGJyZ,OAAO/N,QAAQiwC,SAAU,OAHrB37C,KAIJyZ,OAAO8xG,eAAe5vE,SAAU,GAGzC,IAAIjwC,EAPS1L,KAOQ0L,QACrBA,EAAQ6iB,aAAc,EACtB7iB,EAAQ4uB,MAAQgxF,UAAUE,iBACrB9/G,EAAQ4uB,MAAM1zB,KAAQ8E,EAAQ4uB,MAAM5rB,SACzChD,EAAQ+/G,cAAc,EAAG//G,EAAQ4uB,MAAM5rB,MAX1B1O,KAWwCyZ,OAAOgyF,oBAX/CzrG,KAYDyZ,OAAO/N,QAAQC,cACzBL,IAAI1B,iBAAiB,WAbV5J,KAa6B0L,QAAQggH,uBAGpDniG,QAAS,WACMvpB,KACDyZ,OAAO/N,QAAQC,cACzBL,IAAIzB,oBAAoB,WAFb7J,KAEgC0L,QAAQggH,qBAGvDA,mBAAoB,WACL1rH,KACN0L,QAAQ4uB,MAAQgxF,UAAUE,gBADpBxrH,KAEN0L,QAAQ+/G,cAFFzrH,KAEuByZ,OAAO0vF,MAF9BnpG,KAE4C0L,QAAQ4uB,MAAM5rB,OAAO,IAEhF88G,cAAe,WACb,IAAIG,EAAYrgH,IAAIR,SAASK,SAAStI,MAAM,GAAGzB,MAAM,KAAKsR,QAAO,SAAUnR,GAAQ,MAAgB,KAATA,KACtF6+G,EAAQuL,EAAUrqH,OAGtB,MAAO,CAAEsF,IAFC+kH,EAAUvL,EAAQ,GAET1xG,MADPi9G,EAAUvL,EAAQ,KAGhCwL,WAAY,SAAoBhlH,EAAKD,GAEnC,GADa3G,KACD0L,QAAQ6iB,aADPvuB,KAC8ByZ,OAAO/N,QAAQiwC,QAA1D,CACA,IAAImrD,EAFS9mG,KAEMglG,OAAO3vF,GAAG1O,GACzB+H,EAAQ48G,UAAUO,QAAQ/kB,EAAMt4F,KAAK,iBACpClD,IAAIR,SAASK,SAAS2gH,SAASllH,KAClC8H,EAAQ9H,EAAM,IAAM8H,GAEtB,IAAIq9G,EAAezgH,IAAII,QAAQuwB,MAC3B8vF,GAAgBA,EAAar9G,QAAUA,IAR9B1O,KAWFyZ,OAAO/N,QAAQC,aACxBL,IAAII,QAAQC,aAAa,CAAE+C,MAAOA,GAAS,KAAMA,GAEjDpD,IAAII,QAAQE,UAAU,CAAE8C,MAAOA,GAAS,KAAMA,MAGlDm9G,QAAS,SAAiBh3G,GACxB,OAAOA,EAAKwK,WACTxe,QAAQ,OAAQ,KAChBA,QAAQ,WAAY,IACpBA,QAAQ,OAAQ,KAChBA,QAAQ,MAAO,IACfA,QAAQ,MAAO,KAEpB4qH,cAAe,SAAuBtiB,EAAOz6F,EAAO29F,GAElD,GAAI39F,EACF,IAAK,IAAI1N,EAAI,EAAGM,EAFLtB,KAEqBglG,OAAO1jG,OAAQN,EAAIM,EAAQN,GAAK,EAAG,CACjE,IAAI8lG,EAHK9mG,KAGUglG,OAAO3vF,GAAGrU,GAE7B,GADmBsqH,UAAUO,QAAQ/kB,EAAMt4F,KAAK,mBAC3BE,IAAUo4F,EAAM14F,SAL5BpO,KAK4CyZ,OAAOmxF,qBAAsB,CAChF,IAAIjkG,EAAQmgG,EAAMngG,QANX3G,KAOA+hE,QAAQp7D,EAAOwiG,EAAOkD,SAPtBrsG,KAWJ+hE,QAAQ,EAAGonC,EAAOkD,KAK3B2f,UAAY,CACdxnH,KAAM,UACNiV,OAAQ,CACN/N,QAAS,CACPiwC,SAAS,EACThwC,cAAc,EACd/E,IAAK,WAGTugB,OAAQ,WAENjK,MAAM5U,OADOtI,KACQ,CACnB0L,QAAS,CACP6gB,KAAM++F,UAAU/+F,KAAKlR,KAHZrb,MAIT4rH,WAAYN,UAAUM,WAAWvwG,KAJxBrb,MAKT0rH,mBAAoBJ,UAAUI,mBAAmBrwG,KALxCrb,MAMTyrH,cAAeH,UAAUG,cAAcpwG,KAN9Brb,MAOTupB,QAAS+hG,UAAU/hG,QAAQlO,KAPlBrb,UAWfsQ,GAAI,CACFic,KAAM,WACSvsB,KACFyZ,OAAO/N,QAAQiwC,SADb37C,KAEJ0L,QAAQ6gB,QAGnBhD,QAAS,WACMvpB,KACFyZ,OAAO/N,QAAQiwC,SADb37C,KAEJ0L,QAAQ6d,WAGnB1W,cAAe,WACA7S,KACF0L,QAAQ6iB,aADNvuB,KAEJ0L,QAAQkgH,WAFJ5rH,KAEsByZ,OAAO/N,QAAQ9E,IAFrC5G,KAEiDkkD,cAGhEqkE,YAAa,WACEvoH,KACF0L,QAAQ6iB,aADNvuB,KAC4ByZ,OAAO8rF,SADnCvlG,KAEJ0L,QAAQkgH,WAFJ5rH,KAEsByZ,OAAO/N,QAAQ9E,IAFrC5G,KAEiDkkD,gBAMhE+nE,eAAiB,CACnBC,YAAa,WACElsH,KACN2mB,KAAK,cACZ,IAAIwlG,EAAU3iH,IAAIsB,SAAS9I,KAAKnB,QAAQ,IAAK,IAE7C,GAAIsrH,IAJSnsH,KAGgBglG,OAAO3vF,GAHvBrV,KAGiCkkD,aAAa11C,KAAK,aAC/B,CAC/B,IAAI0+F,EALOltG,KAKWujF,WAAWh5E,SAAU,IALhCvK,KAK8CyZ,OAAiB,WAAI,eAAkB0yG,EAAU,MAAQxlH,QAClH,QAAwB,IAAbumG,EAA4B,OAN5BltG,KAOJ+hE,QAAQmrC,KAGnBkf,QAAS,WAEP,GADapsH,KACDurH,eAAeh9F,aADdvuB,KACqCyZ,OAAO8xG,eAAe5vE,QACxE,GAFa37C,KAEFyZ,OAAO8xG,eAAe5/G,cAAgBL,IAAII,SAAWJ,IAAII,QAAQC,aAC1EL,IAAII,QAAQC,aAAa,KAAM,KAAQ,IAH5B3L,KAG0CglG,OAAO3vF,GAHjDrV,KAG2DkkD,aAAa11C,KAAK,cAAkB,IAH/FxO,KAIJ2mB,KAAK,eACP,CACL,IAAImgF,EANO9mG,KAMQglG,OAAO3vF,GANfrV,KAMyBkkD,aAChCliD,EAAO8kG,EAAMt4F,KAAK,cAAgBs4F,EAAMt4F,KAAK,gBACjDhF,IAAIsB,SAAS9I,KAAOA,GAAQ,GARjBhC,KASJ2mB,KAAK,aAGhB4F,KAAM,WAEJ,MADavsB,KACDyZ,OAAO8xG,eAAe5vE,SADrB37C,KACwCyZ,OAAO/N,SAD/C1L,KACiEyZ,OAAO/N,QAAQiwC,SAA7F,CADa37C,KAENurH,eAAeh9F,aAAc,EACpC,IAAIvsB,EAAOwH,IAAIsB,SAAS9I,KAAKnB,QAAQ,IAAK,IAC1C,GAAImB,EAEF,IADA,IACShB,EAAI,EAAGM,EANLtB,KAMqBglG,OAAO1jG,OAAQN,EAAIM,EAAQN,GAAK,EAAG,CACjE,IAAI8lG,EAPK9mG,KAOUglG,OAAO3vF,GAAGrU,GAE7B,IADgB8lG,EAAMt4F,KAAK,cAAgBs4F,EAAMt4F,KAAK,mBACpCxM,IAAS8kG,EAAM14F,SATxBpO,KASwCyZ,OAAOmxF,qBAAsB,CAC5E,IAAIjkG,EAAQmgG,EAAMngG,QAVX3G,KAWA+hE,QAAQp7D,EANP,EALD3G,KAW6ByZ,OAAOgyF,oBAAoB,IAXxDzrG,KAeFyZ,OAAO8xG,eAAec,YAC/B5/G,EAAEnB,KAAKgF,GAAG,aAhBCtQ,KAgBoBurH,eAAeW,eAGlD3iG,QAAS,WACMvpB,KACFyZ,OAAO8xG,eAAec,YAC/B5/G,EAAEnB,KAAKqG,IAAI,aAFA3R,KAEqBurH,eAAeW,eAIjDI,iBAAmB,CACrB9nH,KAAM,kBACNiV,OAAQ,CACN8xG,eAAgB,CACd5vE,SAAS,EACThwC,cAAc,EACd0gH,YAAY,IAGhBllG,OAAQ,WAENjK,MAAM5U,OADOtI,KACQ,CACnBurH,eAAgB,CACdh9F,aAAa,EACbhC,KAAM0/F,eAAe1/F,KAAKlR,KAJjBrb,MAKTupB,QAAS0iG,eAAe1iG,QAAQlO,KALvBrb,MAMTosH,QAASH,eAAeG,QAAQ/wG,KANvBrb,MAOTksH,YAAaD,eAAeC,YAAY7wG,KAP/Brb,UAWfsQ,GAAI,CACFic,KAAM,WACSvsB,KACFyZ,OAAO8xG,eAAe5vE,SADpB37C,KAEJurH,eAAeh/F,QAG1BhD,QAAS,WACMvpB,KACFyZ,OAAO8xG,eAAe5vE,SADpB37C,KAEJurH,eAAehiG,WAG1B1W,cAAe,WACA7S,KACFurH,eAAeh9F,aADbvuB,KAEJurH,eAAea,WAG1B7D,YAAa,WACEvoH,KACFurH,eAAeh9F,aADbvuB,KACmCyZ,OAAO8rF,SAD1CvlG,KAEJurH,eAAea,aAM1BG,KAAO,CACTC,gBAAiB,SAAyBljG,GAExC,OADAA,EAAI9a,KAAK,WAAY,KACd8a,GAETmjG,mBAAoB,SAA4BnjG,GAE9C,OADAA,EAAI9a,KAAK,WAAY,MACd8a,GAETojG,UAAW,SAAmBpjG,EAAK6d,GAEjC,OADA7d,EAAI9a,KAAK,OAAQ24B,GACV7d,GAETqjG,WAAY,SAAoBrjG,EAAKylC,GAEnC,OADAzlC,EAAI9a,KAAK,aAAcugD,GAChBzlC,GAETsjG,UAAW,SAAmBtjG,GAE5B,OADAA,EAAI9a,KAAK,iBAAiB,GACnB8a,GAETujG,SAAU,SAAkBvjG,GAE1B,OADAA,EAAI9a,KAAK,iBAAiB,GACnB8a,GAETwjG,WAAY,SAAoBj8G,GAC9B,IACI4I,EADSzZ,KACOyZ,OAAO8yG,KAC3B,GAAkB,KAAd17G,EAAEm3C,QAAN,CACA,IAAI/9B,EAAYxd,EAAEoE,EAAEtI,QAHPvI,KAIFg0G,YAJEh0G,KAImBg0G,WAAWjX,SAAW9yE,EAAUhZ,GAJnDjR,KAI6Dg0G,WAAWjX,WAJxE/8F,KAKEqqG,QALFrqG,KAKmByZ,OAAOilD,MAL1B1+D,KAMFotG,YANEptG,KAQAqqG,MARArqG,KASFusH,KAAKQ,OAAOtzG,EAAOuzG,kBATjBhtH,KAWFusH,KAAKQ,OAAOtzG,EAAOwzG,mBAXjBjtH,KAcFg0G,YAdEh0G,KAcmBg0G,WAAWwL,SAAWv1F,EAAUhZ,GAdnDjR,KAc6Dg0G,WAAWwL,WAdxEx/G,KAeEoqG,cAfFpqG,KAeyByZ,OAAOilD,MAfhC1+D,KAgBFstG,YAhBEttG,KAkBAoqG,YAlBApqG,KAmBFusH,KAAKQ,OAAOtzG,EAAOyzG,mBAnBjBltH,KAqBFusH,KAAKQ,OAAOtzG,EAAO0zG,mBArBjBntH,KAwBFmgH,YAAcl2F,EAAUhZ,GAAI,IAxB1BjR,KAwBwCyZ,OAAO0mG,WAAsB,cAChFl2F,EAAU,GAAG7O,UAGjB2xG,OAAQ,SAAgB16F,GACtB,IACI+6F,EADSptH,KACausH,KAAKc,WACH,IAAxBD,EAAa9rH,SACjB8rH,EAAavgH,KAAK,IAClBugH,EAAavgH,KAAKwlB,KAEpBi7F,iBAAkB,WAGhB,IAFattH,KAEFyZ,OAAOilD,MAFL1+D,KAEqBg0G,WAAlC,CACA,IAAIj5F,EAHS/a,KAGIg0G,WACbjX,EAAUhiF,EAAIgiF,QACdyiB,EAAUzkG,EAAIykG,QAEdA,GAAWA,EAAQl+G,OAAS,IAPnBtB,KAQAoqG,aARApqG,KASFusH,KAAKK,UAAUpN,GATbx/G,KAUFusH,KAAKE,mBAAmBjN,KAVtBx/G,KAYFusH,KAAKM,SAASrN,GAZZx/G,KAaFusH,KAAKC,gBAAgBhN,KAG5BziB,GAAWA,EAAQz7F,OAAS,IAhBnBtB,KAiBAqqG,OAjBArqG,KAkBFusH,KAAKK,UAAU7vB,GAlBb/8F,KAmBFusH,KAAKE,mBAAmB1vB,KAnBtB/8F,KAqBFusH,KAAKM,SAAS9vB,GArBZ/8F,KAsBFusH,KAAKC,gBAAgBzvB,OAIlCwwB,iBAAkB,WAChB,IAAI1rD,EAAS7hE,KACTyZ,EAASooD,EAAOpoD,OAAO8yG,KACvB1qD,EAAOs+C,YAAct+C,EAAOpoD,OAAO0mG,WAAWiC,WAAavgD,EAAOs+C,WAAWG,SAAWz+C,EAAOs+C,WAAWG,QAAQh/G,QACpHugE,EAAOs+C,WAAWG,QAAQh6G,MAAK,SAAU06G,EAAawM,GACpD,IAAIC,EAAYhhH,EAAE+gH,GAClB3rD,EAAO0qD,KAAKC,gBAAgBiB,GAC5B5rD,EAAO0qD,KAAKG,UAAUe,EAAW,UACjC5rD,EAAO0qD,KAAKI,WAAWc,EAAWh0G,EAAOi0G,wBAAwB7sH,QAAQ,gBAAiB4sH,EAAU9mH,QAAU,QAIpH4lB,KAAM,WACSvsB,KAENspB,IAAI/T,OAFEvV,KAEYusH,KAAKc,YAG9B,IACItwB,EACAyiB,EAFA/lG,EALSzZ,KAKOyZ,OAAO8yG,KALdvsH,KAQFg0G,YAREh0G,KAQmBg0G,WAAWjX,UACzCA,EATW/8F,KASMg0G,WAAWjX,SATjB/8F,KAWFg0G,YAXEh0G,KAWmBg0G,WAAWwL,UACzCA,EAZWx/G,KAYMg0G,WAAWwL,SAE1BziB,IAdS/8F,KAeJusH,KAAKC,gBAAgBzvB,GAfjB/8F,KAgBJusH,KAAKG,UAAU3vB,EAAS,UAhBpB/8F,KAiBJusH,KAAKI,WAAW5vB,EAAStjF,EAAOwzG,kBACvClwB,EAAQzsF,GAAG,UAlBAtQ,KAkBkBusH,KAAKO,aAEhCtN,IApBSx/G,KAqBJusH,KAAKC,gBAAgBhN,GArBjBx/G,KAsBJusH,KAAKG,UAAUlN,EAAS,UAtBpBx/G,KAuBJusH,KAAKI,WAAWnN,EAAS/lG,EAAO0zG,kBACvC3N,EAAQlvG,GAAG,UAxBAtQ,KAwBkBusH,KAAKO,aAxBvB9sH,KA4BFmgH,YA5BEngH,KA4BmByZ,OAAO0mG,WAAWiC,WA5BrCpiH,KA4ByDmgH,WAAWG,SA5BpEtgH,KA4BsFmgH,WAAWG,QAAQh/G,QA5BzGtB,KA6BJmgH,WAAW72F,IAAIhZ,GAAG,UAAY,IA7B1BtQ,KA6BwCyZ,OAAO0mG,WAAsB,YA7BrEngH,KA6BgFusH,KAAKO,aAGpGvjG,QAAS,WACP,IAGIwzE,EACAyiB,EAJSx/G,KACFusH,KAAKc,YADHrtH,KACwBusH,KAAKc,WAAW/rH,OAAS,GADjDtB,KAC6DusH,KAAKc,WAAWl/G,SAD7EnO,KAKFg0G,YALEh0G,KAKmBg0G,WAAWjX,UACzCA,EANW/8F,KAMMg0G,WAAWjX,SANjB/8F,KAQFg0G,YAREh0G,KAQmBg0G,WAAWwL,UACzCA,EATWx/G,KASMg0G,WAAWwL,SAE1BziB,GACFA,EAAQprF,IAAI,UAZD3R,KAYmBusH,KAAKO,YAEjCtN,GACFA,EAAQ7tG,IAAI,UAfD3R,KAemBusH,KAAKO,YAfxB9sH,KAmBFmgH,YAnBEngH,KAmBmByZ,OAAO0mG,WAAWiC,WAnBrCpiH,KAmByDmgH,WAAWG,SAnBpEtgH,KAmBsFmgH,WAAWG,QAAQh/G,QAnBzGtB,KAoBJmgH,WAAW72F,IAAI3X,IAAI,UAAY,IApB3B3R,KAoByCyZ,OAAO0mG,WAAsB,YApBtEngH,KAoBiFusH,KAAKO,cAInGa,KAAO,CACTnpH,KAAM,OACNiV,OAAQ,CACN8yG,KAAM,CACJ5wE,SAAS,EACTiyE,kBAAmB,sBACnBT,iBAAkB,iBAClBF,iBAAkB,aAClBC,kBAAmB,0BACnBF,iBAAkB,yBAClBU,wBAAyB,0BAG7BvmG,OAAQ,WACN,IAAI06C,EAAS7hE,KACbkd,MAAM5U,OAAOu5D,EAAQ,CACnB0qD,KAAM,CACJc,WAAY5gH,EAAG,gBAAoBo1D,EAAOpoD,OAAO8yG,KAAsB,kBAAI,yDAG/EroH,OAAO2B,KAAK0mH,MAAMxoH,SAAQ,SAAU6Y,GAClCilD,EAAO0qD,KAAK3vG,GAAc2vG,KAAK3vG,GAAYvB,KAAKwmD,OAGpDvxD,GAAI,CACFic,KAAM,WACSvsB,KACDyZ,OAAO8yG,KAAK5wE,UADX37C,KAENusH,KAAKhgG,OAFCvsB,KAGNusH,KAAKe,qBAEdtN,OAAQ,WACOhgH,KACDyZ,OAAO8yG,KAAK5wE,SADX37C,KAENusH,KAAKe,oBAEdrN,SAAU,WACKjgH,KACDyZ,OAAO8yG,KAAK5wE,SADX37C,KAENusH,KAAKe,oBAEdO,iBAAkB,WACH7tH,KACDyZ,OAAO8yG,KAAK5wE,SADX37C,KAENusH,KAAKgB,oBAEdhkG,QAAS,WACMvpB,KACDyZ,OAAO8yG,KAAK5wE,SADX37C,KAENusH,KAAKhjG,aAOdukG,SAAW,CACbtZ,IAAK,WACH,IAAI3yC,EAAS7hE,KACT+tH,EAAiBlsD,EAAOmjC,OAAO3vF,GAAGwsD,EAAO3d,aACzCpmC,EAAQ+jD,EAAOpoD,OAAO46F,SAASv2F,MAC/BiwG,EAAev/G,KAAK,0BACtBsP,EAAQiwG,EAAev/G,KAAK,yBAA2BqzD,EAAOpoD,OAAO46F,SAASv2F,OAEhFxR,aAAau1D,EAAOwyC,SAAS1kF,SAC7BkyC,EAAOwyC,SAAS1kF,QAAUzS,MAAMW,UAAS,WACnCgkD,EAAOpoD,OAAO46F,SAAS2Z,iBACrBnsD,EAAOpoD,OAAOilD,MAChBmD,EAAOwrC,UACPxrC,EAAOyrC,UAAUzrC,EAAOpoD,OAAO0vF,OAAO,GAAM,GAC5CtnC,EAAOl7C,KAAK,aACFk7C,EAAOuoC,YAGPvoC,EAAOpoD,OAAO46F,SAAS4Z,gBAIjCpsD,EAAOwyC,SAASv6F,QAHhB+nD,EAAOE,QAAQF,EAAOmjC,OAAO1jG,OAAS,EAAGugE,EAAOpoD,OAAO0vF,OAAO,GAAM,GACpEtnC,EAAOl7C,KAAK,cAJZk7C,EAAOyrC,UAAUzrC,EAAOpoD,OAAO0vF,OAAO,GAAM,GAC5CtnC,EAAOl7C,KAAK,aAOLk7C,EAAOpoD,OAAOilD,MACvBmD,EAAOwrC,UACPxrC,EAAOurC,UAAUvrC,EAAOpoD,OAAO0vF,OAAO,GAAM,GAC5CtnC,EAAOl7C,KAAK,aACFk7C,EAAOwoC,MAGPxoC,EAAOpoD,OAAO46F,SAAS4Z,gBAIjCpsD,EAAOwyC,SAASv6F,QAHhB+nD,EAAOE,QAAQ,EAAGF,EAAOpoD,OAAO0vF,OAAO,GAAM,GAC7CtnC,EAAOl7C,KAAK,cAJZk7C,EAAOurC,UAAUvrC,EAAOpoD,OAAO0vF,OAAO,GAAM,GAC5CtnC,EAAOl7C,KAAK,aAOVk7C,EAAOpoD,OAAO8rF,SAAW1jC,EAAOwyC,SAASC,SAAWzyC,EAAOwyC,SAASG,QACvE12F,IAELyY,MAAO,WAEL,YAAuC,IAD1Bv2B,KACKq0G,SAAS1kF,WADd3vB,KAEFq0G,SAASC,UAFPt0G,KAGNq0G,SAASC,SAAU,EAHbt0G,KAIN2mB,KAAK,iBAJC3mB,KAKNq0G,SAASG,OACT,KAET16F,KAAM,WAEJ,QADa9Z,KACDq0G,SAASC,eACkB,IAF1Bt0G,KAEKq0G,SAAS1kF,UAFd3vB,KAIFq0G,SAAS1kF,UAClBrjB,aALWtM,KAKSq0G,SAAS1kF,SALlB3vB,KAMJq0G,SAAS1kF,aAAUxvB,GANfH,KAQNq0G,SAASC,SAAU,EARbt0G,KASN2mB,KAAK,iBACL,KAETunG,MAAO,SAAe/kB,GACPnpG,KACDq0G,SAASC,UADRt0G,KAEFq0G,SAASE,SAFPv0G,KAGFq0G,SAAS1kF,SAAWrjB,aAHlBtM,KAGsCq0G,SAAS1kF,SAH/C3vB,KAINq0G,SAASE,QAAS,EACX,IAAVpL,GALSnpG,KAKcyZ,OAAO46F,SAAS8Z,mBAL9BnuH,KASJujF,WAAW,GAAG35E,iBAAiB,gBAT3B5J,KASmDq0G,SAAS+S,iBAT5DpnH,KAUJujF,WAAW,GAAG35E,iBAAiB,sBAV3B5J,KAUyDq0G,SAAS+S,mBAVlEpnH,KAMJq0G,SAASE,QAAS,EANdv0G,KAOJq0G,SAASG,WAQlB4Z,WAAa,CACf5pH,KAAM,WACNiV,OAAQ,CACN46F,SAAU,CACR14D,SAAS,EACT79B,MAAO,IACPqwG,mBAAmB,EACnBE,sBAAsB,EACtBJ,iBAAiB,EACjBD,kBAAkB,IAGtB7mG,OAAQ,WACN,IAAI06C,EAAS7hE,KACbkd,MAAM5U,OAAOu5D,EAAQ,CACnBwyC,SAAU,CACRC,SAAS,EACTC,QAAQ,EACRC,IAAKsZ,SAAStZ,IAAIn5F,KAAKwmD,GACvBtrC,MAAOu3F,SAASv3F,MAAMlb,KAAKwmD,GAC3B/nD,KAAMg0G,SAASh0G,KAAKuB,KAAKwmD,GACzBqsD,MAAOJ,SAASI,MAAM7yG,KAAKwmD,GAC3BysD,mBAAoB,WACe,WAA7B7kH,SAAS8kH,iBAAgC1sD,EAAOwyC,SAASC,SAC3DzyC,EAAOwyC,SAAS6Z,QAEe,YAA7BzkH,SAAS8kH,iBAAiC1sD,EAAOwyC,SAASE,SAC5D1yC,EAAOwyC,SAASG,MAChB3yC,EAAOwyC,SAASE,QAAS,IAG7B6S,gBAAiB,SAAyBv2G,GACnCgxD,IAAUA,EAAOlb,WAAckb,EAAO0hB,YACvC1yE,EAAEtI,SAAWvI,OACjB6hE,EAAO0hB,WAAW,GAAG15E,oBAAoB,gBAAiBg4D,EAAOwyC,SAAS+S,iBAC1EvlD,EAAO0hB,WAAW,GAAG15E,oBAAoB,sBAAuBg4D,EAAOwyC,SAAS+S,iBAChFvlD,EAAOwyC,SAASE,QAAS,EACpB1yC,EAAOwyC,SAASC,QAGnBzyC,EAAOwyC,SAASG,MAFhB3yC,EAAOwyC,SAASv6F,aAQ1BxJ,GAAI,CACFic,KAAM,WACSvsB,KACFyZ,OAAO46F,SAAS14D,UADd37C,KAEJq0G,SAAS99E,QAChB9sB,SAASG,iBAAiB,mBAHf5J,KAG0Cq0G,SAASia,sBAGlEE,sBAAuB,SAA+BrlB,EAAOhN,GAC9Cn8F,KACFq0G,SAASC,UACdnY,IAFOn8F,KAEayZ,OAAO46F,SAASga,qBAF7BruH,KAGFq0G,SAAS6Z,MAAM/kB,GAHbnpG,KAKFq0G,SAASv6F,SAItB20G,gBAAiB,WACFzuH,KACFq0G,SAASC,UADPt0G,KAEAyZ,OAAO46F,SAASga,qBAFhBruH,KAGFq0G,SAASv6F,OAHP9Z,KAKFq0G,SAAS6Z,UAItB7F,SAAU,WACKroH,KACFyZ,OAAO8rF,SADLvlG,KACuBq0G,SAASE,SADhCv0G,KACkDyZ,OAAO46F,SAASga,sBADlEruH,KAEJq0G,SAASG,OAGpBjrF,QAAS,WACMvpB,KACFq0G,SAASC,SADPt0G,KAEJq0G,SAASv6F,OAElBrQ,SAASI,oBAAoB,mBAJhB7J,KAI2Cq0G,SAASia,uBAKnEI,KAAO,CACT1iB,aAAc,WAGZ,IAFA,IACIhH,EADShlG,KACOglG,OACXhkG,EAAI,EAAGA,EAAIgkG,EAAO1jG,OAAQN,GAAK,EAAG,CACzC,IAAIo6G,EAHOp7G,KAGWglG,OAAO3vF,GAAGrU,GAE5B2tH,GADSvT,EAAS,GAAG5R,kBAJdxpG,KAMCyZ,OAAOsyF,mBAAoB4iB,GAN5B3uH,KAMyCm1D,WACpD,IAAIy5D,EAAK,EAPE5uH,KAQCghF,iBACV4tC,EAAKD,EACLA,EAAK,GAEP,IAAIE,EAZO7uH,KAYeyZ,OAAOq1G,WAAWC,UACxCz2G,KAAKC,IAAI,EAAID,KAAKuJ,IAAIu5F,EAAS,GAAGriG,UAAW,GAC7C,EAAIT,KAAKE,IAAIF,KAAKC,IAAI6iG,EAAS,GAAGriG,UAAW,GAAI,GACrDqiG,EACGloG,IAAI,CACH0tB,QAASiuF,IAEV9+G,UAAW,eAAiB4+G,EAAK,OAASC,EAAK,cAGtDtlB,cAAe,SAAuBn5F,GACpC,IAAI0xD,EAAS7hE,KACTglG,EAASnjC,EAAOmjC,OAChBzhB,EAAa1hB,EAAO0hB,WAExB,GADAyhB,EAAO90F,WAAWC,GACd0xD,EAAOpoD,OAAOsyF,kBAAiC,IAAb57F,EAAgB,CACpD,IAAI6+G,GAAiB,EACrBhqB,EAAOnyF,eAAc,WACnB,IAAIm8G,GACCntD,IAAUA,EAAOlb,UAAtB,CACAqoE,GAAiB,EACjBntD,EAAOloD,WAAY,EAEnB,IADA,IAAIs1G,EAAgB,CAAC,sBAAuB,iBACnCjuH,EAAI,EAAGA,EAAIiuH,EAAc3tH,OAAQN,GAAK,EAC7CuiF,EAAWlxE,QAAQ48G,EAAcjuH,WAOvCkuH,WAAa,CACf1qH,KAAM,cACNiV,OAAQ,CACNq1G,WAAY,CACVC,WAAW,IAGf5nG,OAAQ,WAENjK,MAAM5U,OADOtI,KACQ,CACnB8uH,WAAY,CACV9iB,aAAc0iB,KAAK1iB,aAAa3wF,KAHvBrb,MAITspG,cAAeolB,KAAKplB,cAAcjuF,KAJzBrb,UAQfsQ,GAAI,CACFmrG,WAAY,WAEV,GAA6B,SADhBz7G,KACFyZ,OAAOwpD,OAAlB,CADajjE,KAEN6yB,WAAWnxB,KAFL1B,KAEmByZ,OAA6B,uBAAI,QACjE,IAAIiiG,EAAkB,CACpBjV,cAAe,EACfD,gBAAiB,EACjBQ,eAAgB,EAChB+B,qBAAqB,EACrBjD,aAAc,EACdiG,kBAAkB,GAEpB7uF,MAAM5U,OAXOtI,KAWOyZ,OAAQiiG,GAC5Bx+F,MAAM5U,OAZOtI,KAYOunB,eAAgBm0F,KAEtC1P,aAAc,WAEiB,SADhBhsG,KACFyZ,OAAOwpD,QADLjjE,KAEN8uH,WAAW9iB,gBAEpB1C,cAAe,SAAuBn5F,GAEP,SADhBnQ,KACFyZ,OAAOwpD,QADLjjE,KAEN8uH,WAAWxlB,cAAcn5F,MAKlCg/G,KAAO,CACTnjB,aAAc,WACZ,IAYIojB,EAXA9lG,EADStpB,KACIspB,IACbi6D,EAFSvjF,KAEWujF,WACpByhB,EAHShlG,KAGOglG,OAChBqqB,EAJSrvH,KAIYgT,MACrBs8G,EALStvH,KAKauT,OACtBmY,EANS1rB,KAMI2kG,aACbD,EAPS1kG,KAOWi+C,KACpBxkC,EARSzZ,KAQOyZ,OAAO81G,WACvBvuC,EATShhF,KASaghF,eACtB6jB,EAVS7kG,KAUU8kG,SAVV9kG,KAU4ByZ,OAAOqrF,QAAQnpD,QACpD6zE,EAAgB,EAEhB/1G,EAAOg2G,SACLzuC,GAE2B,KAD7BouC,EAAgB7rC,EAAWtsE,KAAK,wBACd3V,SAChB8tH,EAAgB3iH,EAAE,0CAClB82E,EAAWhuE,OAAO65G,IAEpBA,EAAcl8G,IAAI,CAAEK,OAAS87G,EAAc,QAGd,KAD7BD,EAAgB9lG,EAAIrS,KAAK,wBACP3V,SAChB8tH,EAAgB3iH,EAAE,0CAClB6c,EAAI/T,OAAO65G,KAIjB,IAAK,IAAIpuH,EAAI,EAAGA,EAAIgkG,EAAO1jG,OAAQN,GAAK,EAAG,CACzC,IAAIo6G,EAAWpW,EAAO3vF,GAAGrU,GACrBskG,EAAatkG,EACb6jG,IACFS,EAAa9jF,SAAS45F,EAAS5sG,KAAK,2BAA4B,KAElE,IAAIkhH,EAA0B,GAAbpqB,EACbjjF,EAAQ/J,KAAK8E,MAAMsyG,EAAa,KAChChkG,IACFgkG,GAAcA,EACdrtG,EAAQ/J,KAAK8E,OAAOsyG,EAAa,MAEnC,IAAI32G,EAAWT,KAAKC,IAAID,KAAKE,IAAI4iG,EAAS,GAAGriG,SAAU,IAAK,GACxD41G,EAAK,EACLC,EAAK,EACLe,EAAK,EACLrqB,EAAa,GAAM,GACrBqpB,EAAc,GAARtsG,EAAYqiF,EAClBirB,EAAK,IACKrqB,EAAa,GAAK,GAAM,GAClCqpB,EAAK,EACLgB,EAAc,GAARttG,EAAYqiF,IACRY,EAAa,GAAK,GAAM,GAClCqpB,EAAKjqB,EAAsB,EAARriF,EAAYqiF,EAC/BirB,EAAKjrB,IACKY,EAAa,GAAK,GAAM,IAClCqpB,GAAMjqB,EACNirB,EAAM,EAAIjrB,EAA4B,EAAbA,EAAiBriF,GAExCqJ,IACFijG,GAAMA,GAGH3tC,IACH4tC,EAAKD,EACLA,EAAK,GAGP,IAAI5+G,EAAY,YAAcixE,EAAe,GAAK0uC,GAAc,iBAAmB1uC,EAAe0uC,EAAa,GAAK,oBAAsBf,EAAK,OAASC,EAAK,OAASe,EAAK,MAM3K,GALI52G,GAAY,GAAKA,GAAY,IAC/By2G,EAA8B,GAAblqB,EAA+B,GAAXvsF,EACjC2S,IAAO8jG,EAA+B,IAAblqB,EAA+B,GAAXvsF,IAEnDqiG,EAASrrG,UAAUA,GACf0J,EAAOm2G,aAAc,CAEvB,IAAIC,EAAe7uC,EAAeo6B,EAASnkG,KAAK,6BAA+BmkG,EAASnkG,KAAK,4BACzF64G,EAAc9uC,EAAeo6B,EAASnkG,KAAK,8BAAgCmkG,EAASnkG,KAAK,+BACjE,IAAxB44G,EAAavuH,SACfuuH,EAAepjH,EAAG,oCAAuCu0E,EAAe,OAAS,OAAS,YAC1Fo6B,EAAS7lG,OAAOs6G,IAES,IAAvBC,EAAYxuH,SACdwuH,EAAcrjH,EAAG,oCAAuCu0E,EAAe,QAAU,UAAY,YAC7Fo6B,EAAS7lG,OAAOu6G,IAEdD,EAAavuH,SAAUuuH,EAAa,GAAGplH,MAAMm2B,QAAUtoB,KAAKC,KAAKQ,EAAU,IAC3E+2G,EAAYxuH,SAAUwuH,EAAY,GAAGrlH,MAAMm2B,QAAUtoB,KAAKC,IAAIQ,EAAU,KAUhF,GAPAwqE,EAAWrwE,IAAI,CACb68G,2BAA6B,YAAerrB,EAAa,EAAK,KAC9DsrB,wBAA0B,YAAetrB,EAAa,EAAK,KAC3DurB,uBAAyB,YAAevrB,EAAa,EAAK,KAC1D5jE,mBAAqB,YAAe4jE,EAAa,EAAK,OAGpDjrF,EAAOg2G,OACT,GAAIzuC,EACFouC,EAAcr/G,UAAW,qBAAwBs/G,EAAc,EAAK51G,EAAOy2G,cAAgB,QAAWb,EAAc,EAAK,0CAA6C51G,EAAkB,YAAI,SACvL,CACL,IAAI02G,EAAc73G,KAAKuJ,IAAI2tG,GAA6D,GAA3Cl3G,KAAK8E,MAAM9E,KAAKuJ,IAAI2tG,GAAiB,IAC9EtlB,EAAa,KACd5xF,KAAK83G,IAAmB,EAAdD,EAAkB73G,KAAKY,GAAM,KAAO,EAC5CZ,KAAKW,IAAmB,EAAdk3G,EAAkB73G,KAAKY,GAAM,KAAO,GAE/Cm3G,EAAS52G,EAAO62G,YAChBC,EAAS92G,EAAO62G,YAAcpmB,EAC9Bv2F,EAAS8F,EAAOy2G,aACpBd,EAAcr/G,UAAW,WAAasgH,EAAS,QAAUE,EAAS,uBAA0BjB,EAAe,EAAK37G,GAAU,QAAW27G,EAAe,EAAIiB,EAAU,uBAGtK,IAAIC,EAAW1X,QAAQE,UAAYF,QAAQG,aAAiBvU,EAAa,EAAK,EAC9EnhB,EACGxzE,UAAW,qBAAuBygH,EAAU,gBAjHlCxwH,KAiH2DghF,eAAiB,EAAIwuC,GAAiB,iBAjHjGxvH,KAiH2HghF,gBAAkBwuC,EAAgB,GAAK,SAEjLlmB,cAAe,SAAuBn5F,GACpC,IACImZ,EADStpB,KACIspB,IADJtpB,KAEOglG,OAEjB90F,WAAWC,GACX8G,KAAK,gHACL/G,WAAWC,GANDnQ,KAOFyZ,OAAO81G,WAAWE,SAPhBzvH,KAOkCghF,gBAC7C13D,EAAIrS,KAAK,uBAAuB/G,WAAWC,KAK7CsgH,WAAa,CACfjsH,KAAM,cACNiV,OAAQ,CACN81G,WAAY,CACVK,cAAc,EACdH,QAAQ,EACRS,aAAc,GACdI,YAAa,MAGjBnpG,OAAQ,WAENjK,MAAM5U,OADOtI,KACQ,CACnBuvH,WAAY,CACVvjB,aAAcmjB,KAAKnjB,aAAa3wF,KAHvBrb,MAITspG,cAAe6lB,KAAK7lB,cAAcjuF,KAJzBrb,UAQfsQ,GAAI,CACFmrG,WAAY,WAEV,GAA6B,SADhBz7G,KACFyZ,OAAOwpD,OAAlB,CADajjE,KAEN6yB,WAAWnxB,KAFL1B,KAEmByZ,OAA6B,uBAAI,QAFpDzZ,KAGN6yB,WAAWnxB,KAHL1B,KAGmByZ,OAA6B,uBAAI,MACjE,IAAIiiG,EAAkB,CACpBjV,cAAe,EACfD,gBAAiB,EACjBQ,eAAgB,EAChB+B,qBAAqB,EACrB+I,gBAAiB,EACjBhM,aAAc,EACdiC,gBAAgB,EAChBgE,kBAAkB,GAEpB7uF,MAAM5U,OAdOtI,KAcOyZ,OAAQiiG,GAC5Bx+F,MAAM5U,OAfOtI,KAeOunB,eAAgBm0F,KAEtC1P,aAAc,WAEiB,SADhBhsG,KACFyZ,OAAOwpD,QADLjjE,KAENuvH,WAAWvjB,gBAEpB1C,cAAe,SAAuBn5F,GAEP,SADhBnQ,KACFyZ,OAAOwpD,QADLjjE,KAENuvH,WAAWjmB,cAAcn5F,MAKlCugH,KAAO,CACT1kB,aAAc,WAIZ,IAHA,IACIhH,EADShlG,KACOglG,OAChBt5E,EAFS1rB,KAEI2kG,aACR3jG,EAAI,EAAGA,EAAIgkG,EAAO1jG,OAAQN,GAAK,EAAG,CACzC,IAAIo6G,EAAWpW,EAAO3vF,GAAGrU,GACrB+X,EAAWqiG,EAAS,GAAGriG,SALhB/Y,KAMAyZ,OAAOk3G,WAAWC,gBAC3B73G,EAAWT,KAAKC,IAAID,KAAKE,IAAI4iG,EAAS,GAAGriG,SAAU,IAAK,IAE1D,IAEI83G,GADU,IAAM93G,EAEhB+3G,EAAU,EACVnC,GAJSvT,EAAS,GAAG5R,kBAKrBolB,EAAK,EAYT,GA1BW5uH,KAeCghF,eAKDt1D,IACTmlG,GAAWA,IALXjC,EAAKD,EACLA,EAAK,EACLmC,GAAWD,EACXA,EAAU,GAKZzV,EAAS,GAAG3wG,MAAMguF,QAAUngF,KAAKuJ,IAAIvJ,KAAK+J,MAAMtJ,IAAaisF,EAAO1jG,OAxBzDtB,KA0BAyZ,OAAOk3G,WAAWf,aAAc,CAEzC,IAAIC,EA5BK7vH,KA4BiBghF,eAAiBo6B,EAASnkG,KAAK,6BAA+BmkG,EAASnkG,KAAK,4BAClG64G,EA7BK9vH,KA6BgBghF,eAAiBo6B,EAASnkG,KAAK,8BAAgCmkG,EAASnkG,KAAK,+BAC1E,IAAxB44G,EAAavuH,SACfuuH,EAAepjH,EAAG,oCA/BXzM,KA+ByDghF,eAAiB,OAAS,OAAS,YACnGo6B,EAAS7lG,OAAOs6G,IAES,IAAvBC,EAAYxuH,SACdwuH,EAAcrjH,EAAG,oCAnCVzM,KAmCwDghF,eAAiB,QAAU,UAAY,YACtGo6B,EAAS7lG,OAAOu6G,IAEdD,EAAavuH,SAAUuuH,EAAa,GAAGplH,MAAMm2B,QAAUtoB,KAAKC,KAAKQ,EAAU,IAC3E+2G,EAAYxuH,SAAUwuH,EAAY,GAAGrlH,MAAMm2B,QAAUtoB,KAAKC,IAAIQ,EAAU,IAE9EqiG,EACGrrG,UAAW,eAAiB4+G,EAAK,OAASC,EAAK,oBAAsBkC,EAAU,gBAAkBD,EAAU,UAGlHvnB,cAAe,SAAuBn5F,GACpC,IAAI0xD,EAAS7hE,KACTglG,EAASnjC,EAAOmjC,OAChB9gD,EAAc2d,EAAO3d,YACrBq/B,EAAa1hB,EAAO0hB,WAKxB,GAJAyhB,EACG90F,WAAWC,GACX8G,KAAK,gHACL/G,WAAWC,GACV0xD,EAAOpoD,OAAOsyF,kBAAiC,IAAb57F,EAAgB,CACpD,IAAI6+G,GAAiB,EAErBhqB,EAAO3vF,GAAG6uC,GAAarxC,eAAc,WACnC,IAAIm8G,GACCntD,IAAUA,EAAOlb,UAAtB,CAEAqoE,GAAiB,EACjBntD,EAAOloD,WAAY,EAEnB,IADA,IAAIs1G,EAAgB,CAAC,sBAAuB,iBACnCjuH,EAAI,EAAGA,EAAIiuH,EAAc3tH,OAAQN,GAAK,EAC7CuiF,EAAWlxE,QAAQ48G,EAAcjuH,WAOvC+vH,WAAa,CACfvsH,KAAM,cACNiV,OAAQ,CACNk3G,WAAY,CACVf,cAAc,EACdgB,eAAe,IAGnBzpG,OAAQ,WAENjK,MAAM5U,OADOtI,KACQ,CACnB2wH,WAAY,CACV3kB,aAAc0kB,KAAK1kB,aAAa3wF,KAHvBrb,MAITspG,cAAeonB,KAAKpnB,cAAcjuF,KAJzBrb,UAQfsQ,GAAI,CACFmrG,WAAY,WAEV,GAA6B,SADhBz7G,KACFyZ,OAAOwpD,OAAlB,CADajjE,KAEN6yB,WAAWnxB,KAFL1B,KAEmByZ,OAA6B,uBAAI,QAFpDzZ,KAGN6yB,WAAWnxB,KAHL1B,KAGmByZ,OAA6B,uBAAI,MACjE,IAAIiiG,EAAkB,CACpBjV,cAAe,EACfD,gBAAiB,EACjBQ,eAAgB,EAChB+B,qBAAqB,EACrBjD,aAAc,EACdiG,kBAAkB,GAEpB7uF,MAAM5U,OAZOtI,KAYOyZ,OAAQiiG,GAC5Bx+F,MAAM5U,OAbOtI,KAaOunB,eAAgBm0F,KAEtC1P,aAAc,WAEiB,SADhBhsG,KACFyZ,OAAOwpD,QADLjjE,KAEN2wH,WAAW3kB,gBAEpB1C,cAAe,SAAuBn5F,GAEP,SADhBnQ,KACFyZ,OAAOwpD,QADLjjE,KAEN2wH,WAAWrnB,cAAcn5F,MAKlC6gH,UAAY,CACdhlB,aAAc,WAcZ,IAbA,IACIqjB,EADSrvH,KACYgT,MACrBs8G,EAFStvH,KAEauT,OACtByxF,EAHShlG,KAGOglG,OAChBzhB,EAJSvjF,KAIWujF,WACpB6hB,EALSplG,KAKgBolG,gBACzB3rF,EANSzZ,KAMOyZ,OAAOw3G,gBACvBjwC,EAPShhF,KAOaghF,eACtBjxE,EARS/P,KAQUm1D,UACnBtQ,EAASm8B,EAA6BquC,EAAc,EAA3Bt/G,EAA8Cu/G,EAAe,EAA5Bv/G,EAC1DmhH,EAASlwC,EAAevnE,EAAOy3G,QAAUz3G,EAAOy3G,OAChD/7D,EAAY17C,EAAOpW,MAEdrC,EAAI,EAAGM,EAAS0jG,EAAO1jG,OAAQN,EAAIM,EAAQN,GAAK,EAAG,CAC1D,IAAIo6G,EAAWpW,EAAO3vF,GAAGrU,GACrBklG,EAAYd,EAAgBpkG,GAE5BmwH,GAAqBtsE,EADPu2D,EAAS,GAAG5R,kBACmBtD,EAAY,GAAMA,EAAazsF,EAAO0f,SAEnF03F,EAAU7vC,EAAekwC,EAASC,EAAmB,EACrDL,EAAU9vC,EAAe,EAAIkwC,EAASC,EAEtCC,GAAcj8D,EAAY78C,KAAKuJ,IAAIsvG,GAEnCE,EAAU53G,EAAO43G,QAEE,iBAAZA,IAAkD,IAA1BA,EAAQ1vH,QAAQ,OACjD0vH,EAAY7hH,WAAWiK,EAAO43G,SAAW,IAAOnrB,GAElD,IAAIj9B,EAAa+X,EAAe,EAAIqwC,EAAU,EAC1CroD,EAAagY,EAAeqwC,EAAU,EAAqB,EAG3D/4G,KAAKuJ,IAAImnD,GAAc,OAASA,EAAa,GAC7C1wD,KAAKuJ,IAAIonD,GAAc,OAASA,EAAa,GAC7C3wD,KAAKuJ,IAAIuvG,GAAc,OAASA,EAAa,GAC7C94G,KAAKuJ,IAAIgvG,GAAW,OAASA,EAAU,GACvCv4G,KAAKuJ,IAAIivG,GAAW,OAASA,EAAU,GAE3C,IAAIQ,EAAiB,eAAiBtoD,EAAa,MAAQC,EAAa,MAAQmoD,EAAa,gBAAkBN,EAAU,gBAAkBD,EAAU,OAIrJ,GAFAzV,EAASrrG,UAAUuhH,GACnBlW,EAAS,GAAG3wG,MAAMguF,OAAmD,EAAzCngF,KAAKuJ,IAAIvJ,KAAK+J,MAAM8uG,IAC5C13G,EAAOm2G,aAAc,CAEvB,IAAI2B,EAAkBvwC,EAAeo6B,EAASnkG,KAAK,6BAA+BmkG,EAASnkG,KAAK,4BAC5Fu6G,EAAiBxwC,EAAeo6B,EAASnkG,KAAK,8BAAgCmkG,EAASnkG,KAAK,+BACjE,IAA3Bs6G,EAAgBjwH,SAClBiwH,EAAkB9kH,EAAG,oCAAuCu0E,EAAe,OAAS,OAAS,YAC7Fo6B,EAAS7lG,OAAOg8G,IAEY,IAA1BC,EAAelwH,SACjBkwH,EAAiB/kH,EAAG,oCAAuCu0E,EAAe,QAAU,UAAY,YAChGo6B,EAAS7lG,OAAOi8G,IAEdD,EAAgBjwH,SAAUiwH,EAAgB,GAAG9mH,MAAMm2B,QAAUuwF,EAAmB,EAAIA,EAAmB,GACvGK,EAAelwH,SAAUkwH,EAAe,GAAG/mH,MAAMm2B,SAAYuwF,EAAoB,GAAKA,EAAmB,KAK7G9tG,QAAQG,eAAiBH,QAAQouG,yBAC1BluC,EAAW,GAAG94E,MACpBinH,kBAAoB7sE,EAAS,WAGpCykD,cAAe,SAAuBn5F,GACvBnQ,KACNglG,OACJ90F,WAAWC,GACX8G,KAAK,gHACL/G,WAAWC,KAIdwhH,gBAAkB,CACpBntH,KAAM,mBACNiV,OAAQ,CACNw3G,gBAAiB,CACfC,OAAQ,GACRG,QAAS,EACThuH,MAAO,IACP81B,SAAU,EACVy2F,cAAc,IAGlBzoG,OAAQ,WAENjK,MAAM5U,OADOtI,KACQ,CACnBixH,gBAAiB,CACfjlB,aAAcglB,UAAUhlB,aAAa3wF,KAH5Brb,MAITspG,cAAe0nB,UAAU1nB,cAAcjuF,KAJ9Brb,UAQfsQ,GAAI,CACFmrG,WAAY,WAEmB,cADhBz7G,KACFyZ,OAAOwpD,SADLjjE,KAGN6yB,WAAWnxB,KAHL1B,KAGmByZ,OAA6B,uBAAI,aAHpDzZ,KAIN6yB,WAAWnxB,KAJL1B,KAImByZ,OAA6B,uBAAI,MAJpDzZ,KAMNyZ,OAAOsvF,qBAAsB,EANvB/oG,KAONunB,eAAewhF,qBAAsB,IAE9CiD,aAAc,WAEiB,cADhBhsG,KACFyZ,OAAOwpD,QADLjjE,KAENixH,gBAAgBjlB,gBAEzB1C,cAAe,SAAuBn5F,GAEP,cADhBnQ,KACFyZ,OAAOwpD,QADLjjE,KAENixH,gBAAgB3nB,cAAcn5F,MAKvCyhH,OAAS,CACXrlG,KAAM,WACJ,IAEIslG,EAFS7xH,KACIyZ,OACMq4G,OACnBxa,EAHSt3G,KAGYiE,YACrB4tH,EAAahwD,kBAAkBy1C,GAJtBt3G,KAKJ8xH,OAAOjwD,OAASgwD,EAAahwD,OACpC3kD,MAAM5U,OANKtI,KAMS8xH,OAAOjwD,OAAOt6C,eAAgB,CAChDwhF,qBAAqB,EACrB+C,qBAAqB,IAEvB5uF,MAAM5U,OAVKtI,KAUS8xH,OAAOjwD,OAAOpoD,OAAQ,CACxCsvF,qBAAqB,EACrB+C,qBAAqB,KAEd5uF,MAAM9U,SAASypH,EAAahwD,UAd1B7hE,KAeJ8xH,OAAOjwD,OAAS,IAAIy1C,EAAYp6F,MAAM5U,OAAO,GAAIupH,EAAahwD,OAAQ,CAC3EmnC,uBAAuB,EACvBD,qBAAqB,EACrB+C,qBAAqB,KAlBZ9rG,KAoBJ8xH,OAAOC,eAAgB,GApBnB/xH,KAsBN8xH,OAAOjwD,OAAOv4C,IAAIzb,SAtBZ7N,KAsB4ByZ,OAAOq4G,OAAOE,sBAtB1ChyH,KAuBN8xH,OAAOjwD,OAAOvxD,GAAG,MAvBXtQ,KAuByB8xH,OAAOG,eAE/CA,aAAc,WACZ,IACIC,EADSlyH,KACa8xH,OAAOjwD,OACjC,GAAKqwD,EAAL,CACA,IAAIrmB,EAAeqmB,EAAarmB,aAC5BD,EAAesmB,EAAatmB,aAChC,KAAIA,GAAgBn/F,EAAEm/F,GAAcx9F,SALvBpO,KAKuCyZ,OAAOq4G,OAAOK,wBAC9D,MAAOtmB,GAAX,CACA,IAAIkC,EAMJ,GAJEA,EADEmkB,EAAaz4G,OAAOilD,KACPl9C,SAAS/U,EAAEylH,EAAatmB,cAAcp9F,KAAK,2BAA4B,IAEvEq9F,EAXJ7rG,KAaFyZ,OAAOilD,KAAM,CACtB,IAAIyrB,EAdOnqF,KAcekkD,YAdflkD,KAeAglG,OAAO3vF,GAAG80E,GAAc/7E,SAfxBpO,KAewCyZ,OAAOmxF,uBAf/C5qG,KAgBFqtG,UAhBErtG,KAkBFs+B,YAlBEt+B,KAkBmBujF,WAAW,GAAGxvE,WAC1Co2E,EAnBSnqF,KAmBakkD,aAExB,IAAIua,EArBOz+D,KAqBYglG,OAAO3vF,GAAG80E,GAActzE,QAAS,6BAAgCk3F,EAAe,MAAQ14F,GAAG,GAAG1O,QACjH6Z,EAtBOxgB,KAsBYglG,OAAO3vF,GAAG80E,GAAc1zE,QAAS,6BAAgCs3F,EAAe,MAAQ14F,GAAG,GAAG1O,QAC7EonG,OAAf,IAAdtvC,EAA4Cj+C,OACzB,IAAdA,EAA4Ci+C,EACnDj+C,EAAY2pE,EAAeA,EAAe1rB,EAA4Bj+C,EACzDi+C,EA1BXz+D,KA4BN+hE,QAAQgsC,MAEjBj6C,OAAQ,SAAgBxwB,GACtB,IACI4uF,EADSlyH,KACa8xH,OAAOjwD,OACjC,GAAKqwD,EAAL,CAEA,IAAIzrB,EAAsD,SAAtCyrB,EAAaz4G,OAAOgtF,cACpCyrB,EAAapkB,uBACbokB,EAAaz4G,OAAOgtF,cAEpB2rB,EARSpyH,KAQiByZ,OAAOq4G,OAAOM,iBACxCC,EAAYD,IAAqBF,EAAaz4G,OAAOilD,KACzD,GAVa1+D,KAUF0qG,YAAcwnB,EAAaxnB,WAAa2nB,EAAW,CAC5D,IACIC,EACAjvF,EAFAkvF,EAAqBL,EAAahuE,YAGtC,GAAIguE,EAAaz4G,OAAOilD,KAAM,CACxBwzD,EAAaltB,OAAO3vF,GAAGk9G,GAAoBnkH,SAAS8jH,EAAaz4G,OAAOmxF,uBAC1EsnB,EAAa7kB,UAEb6kB,EAAa5zF,YAAc4zF,EAAa3uC,WAAW,GAAGxvE,WACtDw+G,EAAqBL,EAAahuE,aAGpC,IAAIsuE,EAAkBN,EAAaltB,OAChC3vF,GAAGk9G,GACH17G,QAAS,6BAxBH7W,KAwBoD,UAAI,MAAQqV,GAAG,GACzE1O,QACC8rH,EAAkBP,EAAaltB,OAChC3vF,GAAGk9G,GACH97G,QAAS,6BA5BHzW,KA4BoD,UAAI,MAAQqV,GAAG,GACzE1O,QAC2C2rH,OAAf,IAApBE,EAAoDC,OAC3B,IAApBA,EAAoDD,EAC3DC,EAAkBF,GAAuBA,EAAqBC,EAAoCD,EAClGE,EAAkBF,EAAqBA,EAAqBC,EAAoCC,EACjFD,EACxBnvF,EAnCSrjC,KAmCUkkD,YAnCVlkD,KAmC+BkgE,cAAgB,OAAS,YAGjE78B,GADAivF,EArCStyH,KAqCe0qG,WArCf1qG,KAsC2BkgE,cAAgB,OAAS,OAE3DmyD,IACFC,GAAgC,SAAdjvF,EAAuB+uF,GAAoB,EAAIA,GAG/DF,EAAatoB,sBAAwBsoB,EAAatoB,qBAAqBjoG,QAAQ2wH,GAAkB,IAC/FJ,EAAaz4G,OAAOsuF,eAEpBuqB,EADEA,EAAiBC,EACFD,EAAiBh6G,KAAK8E,MAAMqpF,EAAgB,GAAK,EAEjD6rB,EAAiBh6G,KAAK8E,MAAMqpF,EAAgB,GAAK,EAE3D6rB,EAAiBC,IAC1BD,EAAiBA,EAAiB7rB,EAAgB,GAEpDyrB,EAAanwD,QAAQuwD,EAAgBhvF,EAAU,OAAInjC,IAKvD,IAAIuyH,EAAmB,EACnBC,EA5DS3yH,KA4DiByZ,OAAOq4G,OAAOK,sBAa5C,GAzEanyH,KA8DFyZ,OAAOgtF,cAAgB,IA9DrBzmG,KA8DkCyZ,OAAOsuF,iBACpD2qB,EA/DW1yH,KA+DeyZ,OAAOgtF,eA/DtBzmG,KAkEDyZ,OAAOq4G,OAAOc,uBACxBF,EAAmB,GAGrBA,EAAmBp6G,KAAK8E,MAAMs1G,GAE9BR,EAAaltB,OAAO92F,YAAYykH,GAC5BT,EAAaz4G,OAAOilD,MAASwzD,EAAaz4G,OAAOqrF,SAAWotB,EAAaz4G,OAAOqrF,QAAQnpD,QAC1F,IAAK,IAAI36C,EAAI,EAAGA,EAAI0xH,EAAkB1xH,GAAK,EACzCkxH,EAAa3uC,WAAWh5E,SAAU,8BA3EzBvK,KA2EiE0qG,UAAY1pG,GAAK,MAAQ6M,SAAS8kH,QAG9G,IAAK,IAAIjjH,EAAM,EAAGA,EAAMgjH,EAAkBhjH,GAAO,EAC/CwiH,EAAaltB,OAAO3vF,GA/EXrV,KA+EqB0qG,UAAYh7F,GAAK7B,SAAS8kH,MAK5DE,SAAW,CACbruH,KAAM,SACNiV,OAAQ,CACNq4G,OAAQ,CACNjwD,OAAQ,KACR+wD,sBAAsB,EACtBR,iBAAkB,EAClBD,sBAAuB,4BACvBH,qBAAsB,4BAG1B7qG,OAAQ,WAENjK,MAAM5U,OADOtI,KACQ,CACnB8xH,OAAQ,CACNjwD,OAAQ,KACRt1C,KAAMqlG,OAAOrlG,KAAKlR,KAJTrb,MAKT8zD,OAAQ89D,OAAO99D,OAAOz4C,KALbrb,MAMTiyH,aAAcL,OAAOK,aAAa52G,KANzBrb,UAUfsQ,GAAI,CACFmrG,WAAY,WACV,IAEIqW,EAFS9xH,KACIyZ,OACAq4G,OACZA,GAAWA,EAAOjwD,SAHV7hE,KAIN8xH,OAAOvlG,OAJDvsB,KAKN8xH,OAAOh+D,QAAO,KAEvBy0D,YAAa,WACEvoH,KACD8xH,OAAOjwD,QADN7hE,KAEN8xH,OAAOh+D,UAEhBA,OAAQ,WACO9zD,KACD8xH,OAAOjwD,QADN7hE,KAEN8xH,OAAOh+D,UAEhBt3C,OAAQ,WACOxc,KACD8xH,OAAOjwD,QADN7hE,KAEN8xH,OAAOh+D,UAEhB+lD,eAAgB,WACD75G,KACD8xH,OAAOjwD,QADN7hE,KAEN8xH,OAAOh+D,UAEhBw1C,cAAe,SAAuBn5F,GACpC,IACI+hH,EADSlyH,KACa8xH,OAAOjwD,OAC5BqwD,GACLA,EAAa5oB,cAAcn5F,IAE7B2iH,cAAe,WACb,IACIZ,EADSlyH,KACa8xH,OAAOjwD,OAC5BqwD,GAFQlyH,KAGF8xH,OAAOC,eAAiBG,GACjCA,EAAa3oG,aAkCrB,SAASwpG,WAAWC,GAClB,IAAI9pG,EAAMlpB,KACNkkH,EAAYz3G,EAAEumH,GAClB,GAAyB,IAArB9O,EAAU5iH,SACV4iH,EAAU,GAAGriD,OAAjB,CACA,IAAIgrC,EAEAomB,EACAC,EAFAz5G,EAAS,GAGTyqG,EAAU91G,SAAS,yBACrB81G,EACGr2G,SAAS,oBACTtD,SAAS,SACTsD,SAAS,kBACTtD,SAAS,QACTsD,SAAS,gBACZg/F,EAAeqX,EAAU35G,SAAS,SAASA,SAAS,eAAe5D,QACnEssH,GAAS,EACTC,EAAiBhP,EAAUjtG,KAAK,kBAAkB3V,OAAS,GAEzD4iH,EAAU11G,KAAK,eACjBiL,EAAS7V,KAAK6tB,MAAMyyF,EAAU11G,KAAK,gBAC1B01G,EAAU,GAAGiP,eACtB15G,EAASyqG,EAAU,GAAGiP,gBAEtB15G,EAASyqG,EAAU50G,UACnBpL,OAAO2B,KAAK4T,GAAQ1V,SAAQ,SAAU6C,GACpC,IAAI8H,EAAQ+K,EAAO7S,GACnB,GAAqB,iBAAV8H,GAA6C,IAAvBA,EAAM/M,QAAQ,MAAc+M,EAAM/M,QAAQ,KAAO,EAChF,IACE8X,EAAO7S,GAAOhD,KAAK6tB,MAAM/iB,GACzB,MAAOmC,cAMoB,IAAxB4I,EAAOozF,mBAAwD,IAAjBA,IACvDpzF,EAAOozF,aAAeA,GAGxB,IAAIhrC,EAAS34C,EAAI24C,OAAO16C,OAAO+8F,EAAU,GAAIzqG,GAIzCi6B,EAASwwE,EAAU7/G,QAAQ,QAAQqO,QAAO,SAAUwpD,EAAY1wB,GAClE,OAA+F,IAAxF/+B,EAAE++B,GAAO31B,OAAO,SAASA,OAAO,6CAA6CvU,UACnF+T,GAAG,GACN6uG,EAAU7/G,QAAQ,iDAAiDiM,GAAG,aAAc8iH,GACpFlP,EAAU7/G,QAAQ,UAAUiM,GAAG,aAAc8iH,GACzC1/E,GAAUA,EAAOpyC,QACnBoyC,EAAOpjC,GAAG,WAAY8iH,GAGxBvxD,EAAOvxD,GAAG,iBAAiB,WACzB4zG,EAAU7/G,QAAQ,iDAAiDsN,IAAI,aAAcyhH,GACrFlP,EAAU7/G,QAAQ,UAAUsN,IAAI,aAAcyhH,GAC1C1/E,GAAUA,EAAOpyC,QACnBoyC,EAAO/hC,IAAI,WAAYyhH,MAGvBH,GACFpxD,EAAOvxD,GAAG,eAAe,WACvB,GAAI4iH,EAAgB,CAClB,IAAI72F,EAAOnT,EAAIkT,MAAMlzB,IAAIg7G,EAAU7/G,QAAQ,UACtCg4B,IAAQA,EAAOnT,EAAIkT,MAAMyc,MAC9B,IAAI3qB,EAASmO,EAAKnO,OACdod,EAAWpd,EAAOslB,aAAaquB,EAAOmjC,OAAO3vF,GAAGwsD,EAAO3d,aAAa,IACpE5Y,GACFj/B,YAAW,WACT6hB,EAAO4N,SAASwP,EAAS1S,QACxB,QAGL1P,EAAIof,IAAI9zB,KAAK,CACXg3B,MAAOq2B,EAAOmjC,OAAO3vF,GAAGwsD,EAAO3d,kBAjCvC,SAASkvE,IACPvxD,EAAO/N,UArEXujD,OAAO7uF,IAAI,CACTowF,SACAM,UACAL,UACAO,OACAgB,WACAoB,UACAiB,WACA6C,aACAO,aACA2C,aACA6B,YACAU,WACAkD,OACA8B,OACAsB,aACAW,UACAM,iBACAqB,KACAS,WACAc,WACAuB,WACAM,WACAY,gBACAkB,WAoFF,IAAIQ,SAAW,CACb7uH,KAAM,SACNmkB,OAAQ,CACN0uF,OAAQA,QAEVlwF,OAAQ,WACInnB,KACN6hE,OAASh5C,mBAAmB,CAC9BE,gBAAiB,oBACjB9kB,YAAaozG,OACbpuF,QAAS,YAGb3Y,GAAI,CACFuyC,iBAAkB,SAA0BpN,GAC1C,IAAIvsB,EAAMlpB,KACVy1C,EAAKnsB,IAAIrS,KAAK,sCAAsC3Q,MAAK,SAAUK,EAAOqsH,GACxE9pG,EAAI24C,OAAOt4C,QAAQypG,OAGvBM,YAAa,SAAqB79E,GAChC,IAAIvsB,EAAMlpB,KACVy1C,EAAKnsB,IAAIrS,KAAK,wBAAwB3Q,MAAK,SAAUK,EAAOqsH,GAC1DD,WAAW7sH,KAAKgjB,EAAK8pG,OAGzBhwE,SAAU,SAAkBvN,GAC1B,IAAIvsB,EAAMlpB,KACVy1C,EAAKnsB,IAAIrS,KAAK,sCAAsC3Q,MAAK,SAAUK,EAAOqsH,GACxED,WAAW7sH,KAAKgjB,EAAK8pG,OAGzBjwE,WAAY,SAAoBtN,GAC9B,IAAIvsB,EAAMlpB,KACVy1C,EAAKnsB,IAAIrS,KAAK,sCAAsC3Q,MAAK,SAAUK,EAAOqsH,GACxE,IAAInxD,EAAS34C,EAAI24C,OAAO34D,IAAI8pH,GACxBnxD,GAAUA,EAAO/N,QAAU+N,EAAO/N,aAG1CR,WAAY,SAAoB9nB,GAC9B,IAAItiB,EAAMlpB,KACVyM,EAAE++B,GAAOv0B,KAAK,sCAAsC3Q,MAAK,SAAUK,EAAOqsH,GACxED,WAAW7sH,KAAKgjB,EAAK8pG,OAGzB3vE,QAAS,SAAiB7X,GACxB,IAAItiB,EAAMlpB,KACVyM,EAAE++B,GAAOv0B,KAAK,sCAAsC3Q,MAAK,SAAUK,EAAOqsH,GACxE,IAAInxD,EAAS34C,EAAI24C,OAAO34D,IAAI8pH,GACxBnxD,GAAUA,EAAO/N,QAAU+N,EAAO/N,aAG1CmN,gBAAiB,SAAyBz1B,GACxC,IAAItiB,EAAMlpB,KACVyM,EAAE++B,GAAOv0B,KAAK,sCAAsC3Q,MAAK,SAAUK,EAAOqsH,GACxE9pG,EAAI24C,OAAOt4C,QAAQypG,QAIzB/qG,MAAO,CACLsrG,cAAe,CACbz1E,OAAQ,SAAgB71B,GACtB,IACI+qG,EAAW/qG,EAAM81B,IACrBg1E,WAAW7sH,KAFDlG,KAEWgzH,IAEvBzpG,QAAS,SAAiBtB,GACxB,IACI+qG,EAAW/qG,EAAM81B,IADX/9C,KAEN6hE,OAAOt4C,QAAQypG,KAGvBQ,sBAAuB,CACrB11E,OAAQ,SAAgB71B,GACtB,IACI+qG,EAAW/qG,EAAM81B,IACrBg1E,WAAW7sH,KAFDlG,KAEWgzH,IAEvBzpG,QAAS,SAAiBtB,GACxB,IACI+qG,EAAW/qG,EAAM81B,IADX/9C,KAEN6hE,OAAOt4C,QAAQypG,OAQvBS,aAA6B,SAAUxsG,GACzC,SAASwsG,EAAavqG,EAAKzP,QACT,IAAXA,IAAoBA,EAAS,IAElCwN,EAAgB/gB,KAAKlG,KAAMyZ,EAAQ,CAACyP,IAEpC,IAAIkqC,EAAKpzD,KACTozD,EAAGlqC,IAAMA,EAET,IAAIgD,EAAWhP,MAAM5U,OAAO,CAC1BgI,GAAI,IACH4Y,EAAIzP,OAAOi6G,cAGdtgE,EAAG3rC,iBAAiByE,GAEpBknC,EAAG35C,OAASyD,MAAM5U,OAAO4jB,EAAUzS,GAEnCyD,MAAM5U,OAAO8qD,EAAI,CACfugE,SAAS,EACTnuE,QAAQ,EACRtB,YAAakP,EAAG35C,OAAOooD,OAAOgrC,aAC9BzuF,IAAKg1C,EAAG35C,OAAO2E,IACfotC,aAAc,CACZwJ,OAAO,EACP13B,WAAW,EACXihB,UAAMp+C,EACNo2B,WAAOp2B,EACP65C,aAAS75C,EACTyzH,SAAS,EACTnpB,iBAAatqG,EACb0zH,eAAW1zH,KAKfizD,EAAG/qC,aAGH+qC,EAAG7mC,OAGAtF,IAAkBwsG,EAAavsG,UAAYD,GAChDwsG,EAAahrH,UAAYvE,OAAOijB,OAAQF,GAAmBA,EAAgBxe,WAC3EgrH,EAAahrH,UAAUxE,YAAcwvH,EAErC,IAAI/lG,EAAqB,CAAE2O,KAAM,CAAEx0B,cAAc,IA6lBjD,OA3lBA6lB,EAAmB2O,KAAKnzB,IAAM,WAC5B,IACIuQ,EADMzZ,KACOyZ,OACbyP,EAFMlpB,KAEIkpB,IACd,OAAOzP,EAAO4iB,MAAQnT,EAAIkT,MAAMyc,MAGlC46E,EAAahrH,UAAUqrH,cAAgB,SAAwBjyD,GAC7D,IAAIzO,EAAKpzD,KACTozD,EAAGlP,YAAc2d,EAAO3d,YAExB,IAAIlK,EAAU6nB,EAAO3d,YAAc,EAC/Bk8D,EAAQhtD,EAAG35C,OAAOs6G,cAAgB3gE,EAAG35C,OAAOu6G,OAAO1yH,OAASugE,EAAOmjC,OAAO1jG,OAC1EugE,EAAOpoD,OAAOilD,OAChB0hD,GAAS,GACTpmE,GAAW6nB,EAAOsrC,cACJ,IAAKnzD,EAAUomE,EAAQpmE,GACjCA,EAAUomE,IAASpmE,GAAWomE,IAGpC,IASI74E,EATAwmF,EAAiB36D,EAAG35C,OAAOs6G,cAC3BlyD,EAAO0hB,WAAWtsE,KAAM,0CAA8C4qD,EAAkB,YAAI,MAC5FA,EAAOmjC,OAAO3vF,GAAGwsD,EAAO3d,aACxB+vE,EAAmB7gE,EAAG35C,OAAOs6G,cAC7BlyD,EAAO0hB,WAAWtsE,KAAM,0CAA8C4qD,EAAoB,cAAI,MAC9FA,EAAOmjC,OAAO3vF,GAAGwsD,EAAO3B,eAExB5K,EAAalC,EAAG9pC,IAAIrS,KAAK,0BACzBi9G,EAAW9gE,EAAG9pC,IAAIrS,KAAK,wBAmB3B,GAjBuB,SAAnBm8C,EAAG35C,OAAOpX,MAAmB+wD,EAAG35C,OAAO4tB,QAAgC,IAAtBiuB,EAAWh0D,QAAiC,QAAjB8xD,EAAGlqC,IAAI/C,QACrFohB,EAAW6rB,EAAGlqC,IAAIme,OAAOC,YAAY8rB,EAAG9pC,QAEtCgsC,EAAa7oD,EAAE86B,GAAUtwB,KAAK,0BAC9Bi9G,EAAWznH,EAAE86B,GAAUtwB,KAAK,yBAG5Bq+C,EAAWh0D,QAAU4yH,EAAS5yH,SAChCg0D,EAAWzgD,KAAKmlC,GAChBk6E,EAASr/G,KAAKurG,GACT74E,IAAYA,EAAW+tB,EAAWjxD,QAAQ,WAAW,IACtDkjC,GACF6rB,EAAGlqC,IAAIme,OAAO4W,KAAK1W,IAKnB6rB,EAAG+gE,SAAS7yH,OAAS,EAAG,CAC1B,IAAI8yH,EAAevyD,EAAOpoD,OAAOilD,KAAOqvD,EAAev/G,KAAK,2BAA6B4kD,EAAGlP,YAC5FkP,EAAGihE,qBAAqBp9G,KAAK,iCAAiC/I,YAAY,gCAC1EklD,EAAGihE,qBAAqBp9G,KAAM,wBAA2Bm9G,EAAe,MAAQvmH,SAAS,gCAI3F,IAAIymH,EAAqBL,EAAiBh9G,KAAK,SAC3Cq9G,EAAmBhzH,OAAS,GAC1B,UAAWgzH,EAAmB,IAAMA,EAAmB,GAAGpG,SAIlEuF,EAAahrH,UAAU4gE,aAAe,WACpC,IACI7d,EADKxrD,KACawrD,aACjBA,EAAawJ,QAClBxJ,EAAaluB,WAAY,IAG3Bm2F,EAAahrH,UAAU6gE,YAAc,SAAsBz4D,GACzD,IAAIuiD,EAAKpzD,KACLwrD,EAAe4H,EAAG5H,aAEjBA,EAAaluB,YACbkuB,EAAaooE,UAChBpoE,EAAaooE,SAAU,EACvBpoE,EAAaj1B,MAAmB,cAAX1lB,EAAExO,KAAuBwO,EAAEomB,cAAc,GAAGI,MAAQxmB,EAAEwmB,MACvE+7B,EAAG35C,OAAOs6G,cACZvoE,EAAai/C,YAAcr3C,EAAGyO,OAAO0hB,WAAWh5E,SAAS,wBAEzDihD,EAAai/C,YAAcr3C,EAAGyO,OAAOmjC,OAAO3vF,GAAG+9C,EAAGyO,OAAO3d,aAE3DsH,EAAaqoE,UAAY32G,MAAMc,OAEjCnN,EAAEmmB,iBACFw0B,EAAaxR,QAAqB,cAAXnpC,EAAExO,KAAuBwO,EAAEomB,cAAc,GAAGI,MAAQxmB,EAAEwmB,MAC7Em0B,EAAajN,KAAOiN,EAAaj1B,MAAQi1B,EAAaxR,QACtDoZ,EAAG9pC,IAAIpZ,WAAW,GAAGH,UAAW,kBAAqBy7C,EAAajN,KAAQ,WAG5Ek1E,EAAahrH,UAAU8gE,WAAa,WAClC,IAAInW,EAAKpzD,KACLwrD,EAAe4H,EAAG5H,aAEtB,GADAA,EAAaluB,WAAY,EACpBkuB,EAAaooE,QAAlB,CAIApoE,EAAaooE,SAAU,EACvBpoE,EAAawJ,OAAQ,EACrB,IAAIzW,EAAOjmC,KAAKuJ,IAAI2pC,EAAajN,MAC7Bnc,GAAW,IAAKj2B,MAAQ0M,UAAY2yC,EAAaqoE,UAChDzxF,EAAW,KAAOmc,EAAO,IAAQnc,GAAY,KAAOmc,EAAO,IAC9DrhC,MAAMW,UAAS,WACTu1C,EAAG9pC,MACDkiC,EAAajN,KAAO,EAAK6U,EAAG9pC,IAAIzb,SAAS,yBACtCulD,EAAG9pC,IAAIzb,SAAS,uBAEzBulD,EAAGzsC,KAAK,sBAAuBysC,GAC/BA,EAAG9pC,IAAIvZ,UAAU,IAAIG,WAAW,IAChCkjD,EAAGrpC,QACHyhC,EAAawJ,OAAQ,MAIZ,IAATzW,EACF6U,EAAG9pC,IAAIzb,SAAS,+BAA+BgF,eAAc,WAC3D24C,EAAawJ,OAAQ,EACrB5B,EAAG9pC,IAAIpb,YAAY,kCAGrBs9C,EAAawJ,OAAQ,EAEvB93C,MAAMW,UAAS,WACbu1C,EAAG9pC,IAAIvZ,UAAU,IAAIG,WAAW,aA7BhCs7C,EAAaooE,SAAU,GAkC3BH,EAAahrH,UAAU8rH,aAAe,WACpC,IAAInhE,EAAKpzD,KACT,GAAIozD,EAAG35C,OAAO86G,aAAgB,OAAOnhE,EAAG35C,OAAO86G,aAAaruH,KAAKktD,GAEjE,IAAIohE,EAAaphE,EAAG35C,OAAO+6G,WACtBphE,EAAG35C,OAAO+6G,YAAkC,SAApBphE,EAAG35C,OAAO0M,QAAoBquG,EAAa,SAExE,IAAIj2C,EAAqC,QAAjBnrB,EAAGlqC,IAAI/C,OAAoC,WAAjBitC,EAAGlqC,IAAI/C,QAAuBitC,EAAG35C,OAAO8kE,iBAAgD,GAA7BnrB,EAAG35C,OAAO8kE,iBAEnHk2C,OAAyD,IAA9BrhE,EAAG35C,OAAOi7G,gBAAkCthE,EAAG35C,OAAOu6G,OAAO1yH,OAAS,EAAI8xD,EAAG35C,OAAOi7G,gBAE/GC,EAA6B,SAAnBvhE,EAAG35C,OAAOpX,KAExB,OADkB,oDAA2E,SAApB+wD,EAAG35C,OAAO0M,MAAmB,4BAA8B,IAAM,iIAAyIwuG,EAAoX,GAAzW,+DAAqEp2C,EAAiC,GAAd,aAAoB,oDAAwDi2C,EAAc,SAAWA,EAAc,IAAM,0BAA6Bj2C,EAAoB,SAAWA,EAAmB,UAAa,IAAM,oDAA4D,gBAAkBk2C,EAAqB,wIAAiJrhE,EAAG35C,OAAmB,aAAI,+FAAoG,IAAM,gBAAkBk7G,EAAW,oIAA6IvhE,EAAG35C,OAAyB,mBAAI,0DAA6D,IAAM,wCAAwCtY,QAIhwCsyH,EAAahrH,UAAUolF,cAAgB,WACrC,IAAIz6B,EAAKpzD,KACT,GAAIozD,EAAG35C,OAAOo0E,cAAiB,OAAOz6B,EAAG35C,OAAOo0E,cAAc3nF,KAAKktD,GAEnE,IAAIohE,EAAaphE,EAAG35C,OAAO+6G,WAI3B,OAHKphE,EAAG35C,OAAO+6G,YAAkC,SAApBphE,EAAG35C,OAAO0M,QAAoBquG,EAAa,UAErD,kLAA2LA,EAAc,SAAWA,EAAc,IAAM,mHAAyHA,EAAc,SAAWA,EAAc,IAAM,8DAA+DrzH,QAIlesyH,EAAahrH,UAAUmsH,cAAgB,SAAwBC,EAASluH,GAEtE,OADS3G,KACFyZ,OAAOm7G,cADL50H,KACgCyZ,OAAOm7G,cAAc1uH,KADrDlG,KAC8D60H,EAASluH,IAC7D,kEAAuEA,EAAQ,eAAkBkuH,EAAU,wBAAwB1zH,QAIxJsyH,EAAahrH,UAAUqsH,aAAe,SAAuBC,EAAOpuH,GAElE,OADS3G,KACFyZ,OAAOq7G,aADL90H,KAC+ByZ,OAAOq7G,aAAa5uH,KADnDlG,KAC4D+0H,EAAOpuH,GAC9D,6GAAkHA,EAAQ,MAASouH,EAAMloH,KAAOkoH,EAAMloH,KAAOkoH,GAAS,gBAItLtB,EAAahrH,UAAUusH,gBAAkB,SAA0BD,EAAOpuH,GAExE,OADS3G,KACFyZ,OAAOu7G,gBADLh1H,KACkCyZ,OAAOu7G,gBAAgB9uH,KADzDlG,KACkE+0H,EAAOpuH,IACjE,2GAAgHA,EAAQ,0IAAkJouH,EAAM32G,IAAM22G,EAAM32G,IAAM22G,GAAS,iEAAoE5zH,QAIlYsyH,EAAahrH,UAAUwsH,YAAc,SAAsBF,EAAOpuH,GAEhE,OADS3G,KACFyZ,OAAOw7G,YADLj1H,KAC8ByZ,OAAOw7G,YAAY/uH,KADjDlG,KAC0D+0H,EAAOpuH,IACzD,kFAAuFA,EAAQ,0EAAgFouH,EAAM32G,IAAM22G,EAAM32G,IAAM22G,GAAS,2CAA4C5zH,QAI/QsyH,EAAahrH,UAAUkQ,OAAS,WAC9B,IAAIy6C,EAAKpzD,KACT,OAAIozD,EAAG35C,OAAOd,OAAiBy6C,EAAG35C,OAAOd,OAAOzS,KAAKktD,EAAIA,EAAG35C,SAChD,mDAAuD25C,EAAG35C,OAAY,MAAI,oGAA2G25C,EAAG35C,OAAY,MAAI,gBAAmB25C,EAAG35C,OAAO4tB,OAAuB,GAAd,aAAoB,mDAAwD+rB,EAAG35C,OAAO4tB,OAAS+rB,EAAGmhE,eAAiB,IAAM,kBAAoBnhE,EAAG35C,OAAO0qC,QAAUiP,EAAGy6B,gBAAkB,IAAM,4EAA+Ez6B,EAAG35C,OAAOy7G,eAAiB9hE,EAAG35C,OAAO0M,OAAS,qBAAyBitC,EAAG35C,OAAOu6G,OAAOr/G,KAAI,SAAUogH,EAAOpuH,GACtmB,OAAIouH,EAAMF,QAAkBzhE,EAAGwhE,cAAcG,EAAMF,QAASluH,GACrD,MACNxC,KAAK,KAAQ,8LAAoMivD,EAAG35C,OAAOs6G,cAAgB,GAAK3gE,EAAG35C,OAAOu6G,OAAOr/G,KAAI,SAAUogH,EAAOpuH,GACrR,OAAIouH,EAAMloH,OAA2B,iBAAVkoH,GAAsBA,aAAiB/0G,SAAW+0G,EAAMpzH,QAAQ,MAAQ,GAAKozH,EAAMpzH,QAAQ,MAAQ,EACrHyxD,EAAG0hE,aAAaC,EAAOpuH,IAEF,IAA1BysD,EAAG35C,OAAOooD,OAAOqzB,MAAkB9hC,EAAG35C,OAAOooD,OAAOqzB,MAAQ9hC,EAAG35C,OAAOooD,OAAOqzB,KAAKv5C,QAC7EyX,EAAG4hE,gBAAgBD,EAAOpuH,GAE5BysD,EAAG6hE,YAAYF,EAAOpuH,MAC5BxC,KAAK,MAAQ,oGAAoGhD,QAIlIsyH,EAAahrH,UAAU0sH,iBAAmB,WAExC,OADSn1H,KACFyZ,OAAO07G,iBADLn1H,KACmCyZ,OAAO07G,iBAAiBjvH,KAD3DlG,MAEY,2FAFZA,KAE+G2Y,SAAY,UAItI86G,EAAahrH,UAAU6yE,WAAa,WAElC,OADSt7E,KACFyZ,OAAO6hE,WADLt7E,KAC6ByZ,OAAO6hE,WAAWp1E,KAD/ClG,MAAAA,KAES2Y,UAKpB86G,EAAahrH,UAAUmzE,YAAc,WAEnC,OADS57E,KACFyZ,OAAOmiE,YADL57E,KAC8ByZ,OAAOmiE,YAAY11E,KADjDlG,MAEO,0CAFPA,KAEyD2Y,SAAY,UAMhF86G,EAAahrH,UAAUg9C,OAAS,SAAiBpjD,EAAM6M,GACrD,IAkBI8oG,EAlBA5kD,EAAKpzD,KACLkpB,EAAMkqC,EAAGlqC,IACTI,EAAM7c,EAAEyC,GAEZoa,EAAI,GAAG8rG,eAAiBhiE,EAExBA,EAAG9pC,IAAMA,EACT8pC,EAAGlkD,GAAKoa,EAAI,GACZ8pC,EAAG+oB,SAAW95E,EACd+wD,EAAG5N,QAAS,EAEZ4N,EAAGiiE,mBAAqBjiE,EAAG9pC,IAAIrS,KAAK,mCACpCm8C,EAAGkiE,iBAAmBliE,EAAG9pC,IAAIrS,KAAK,iCAClCm8C,EAAG4xC,OAAS5xC,EAAG9pC,IAAIrS,KAAK,wBACxBm8C,EAAGihE,qBAAuBjhE,EAAG9pC,IAAIrS,KAAK,2BACtCm8C,EAAG+gE,SAAW/gE,EAAG9pC,IAAIrS,KAAK,0BAK1B,IAAIygG,EAAex6F,MAAM5U,OAAO,GAAI8qD,EAAG35C,OAAOooD,OAAQ,CACpDgrC,aAAcz5C,EAAGlP,YACjB5zC,GAAI,CACF8K,MAAO,SAAevK,GACpBvE,aAAa0rG,GAET5kD,EAAG35C,OAAO87G,aACZvd,EAAe3rG,YAAW,WACxB+mD,EAAGoiE,qBACF,MAELpiE,EAAGzsC,KAAK,aAAc9V,GACtBuiD,EAAGzsC,KAAK,eAAgB9V,IAE1B4kH,YAAa,SAAqB5kH,GAChCvE,aAAa0rG,GACb5kD,EAAGzsC,KAAK,mBAAoB9V,GAC5BuiD,EAAGzsC,KAAK,qBAAsB9V,IAEhC03G,YAAa,WAEX,IADA,IAAIxgH,EAAO,GAAIC,EAAMC,UAAU3G,OACvB0G,KAAQD,EAAMC,GAAQC,UAAWD,GAEzC,IAAI65D,EAAS7hE,KACbozD,EAAG0gE,cAAcjyD,GACjBzO,EAAGzsC,KAAKzV,MAAMkiD,EAAI,CAAE,sBAAuBj4C,OAAQpT,KAErD2kG,gBAAiB,WAEf,IADA,IAAI3kG,EAAO,GAAIC,EAAMC,UAAU3G,OACvB0G,KAAQD,EAAMC,GAAQC,UAAWD,GAEzCorD,EAAGzsC,KAAKzV,MAAMkiD,EAAI,CAAE,0BAA2Bj4C,OAAQpT,KAEzD8K,cAAe,WAEb,IADA,IAAI9K,EAAO,GAAIC,EAAMC,UAAU3G,OACvB0G,KAAQD,EAAMC,GAAQC,UAAWD,GAEzCorD,EAAGzsC,KAAKzV,MAAMkiD,EAAI,CAAE,wBAAyBj4C,OAAQpT,KAEvD2tH,2BAA4B,WAE1B,IADA,IAAI3tH,EAAO,GAAIC,EAAMC,UAAU3G,OACvB0G,KAAQD,EAAMC,GAAQC,UAAWD,GAEzC,IAAI65D,EAAS7hE,KACbozD,EAAG0gE,cAAcjyD,GACjBzO,EAAGzsC,KAAKzV,MAAMkiD,EAAI,CAAE,qCAAsCj4C,OAAQpT,KAEpE4tH,yBAA0B,WAExB,IADA,IAAI5tH,EAAO,GAAIC,EAAMC,UAAU3G,OACvB0G,KAAQD,EAAMC,GAAQC,UAAWD,GAEzCorD,EAAGzsC,KAAKzV,MAAMkiD,EAAI,CAAE,mCAAoCj4C,OAAQpT,KAElE6tH,cAAe,WAEb,IADA,IAAI7tH,EAAO,GAAIC,EAAMC,UAAU3G,OACvB0G,KAAQD,EAAMC,GAAQC,UAAWD,GAEzCorD,EAAGzsC,KAAKzV,MAAMkiD,EAAI,CAAE,wBAAyBj4C,OAAQpT,KAEvD8tH,eAAgB,WAEd,IADA,IAAI9tH,EAAO,GAAIC,EAAMC,UAAU3G,OACvB0G,KAAQD,EAAMC,GAAQC,UAAWD,GAEzC,IAAIuwG,EAAUxwG,EAAK,GACnB0E,EAAE8rG,GAASrqG,YAAY,4BACvBklD,EAAGzsC,KAAKzV,MAAMkiD,EAAI,CAAE,yBAA0Bj4C,OAAQpT,QAIxDqrD,EAAG35C,OAAO+xC,cAAmC,SAAnB4H,EAAG35C,OAAOpX,MACtC6a,MAAM5U,OAAOovG,EAAapnG,GAAI,CAC5B83G,WAAY,SAAoBv3G,GAC9BuiD,EAAGiW,aAAax4D,GAChBuiD,EAAGzsC,KAAK,oBAAqB9V,IAE/BilH,kBAAmB,SAA2BjlH,GAC5CuiD,EAAGkW,YAAYz4D,GACfuiD,EAAGzsC,KAAK,2BAA4B9V,IAEtCw3G,SAAU,SAAkBx3G,GAC1BuiD,EAAGmW,WAAW14D,GACduiD,EAAGzsC,KAAK,kBAAmB9V,MAI7BuiD,EAAG35C,OAAOs6G,eACZ72G,MAAM5U,OAAOovG,EAAc,CACzB5S,QAAS,CACPE,OAAQ5xC,EAAG35C,OAAOu6G,OAClBrZ,YAAa,SAAqBoa,EAAOpuH,GACvC,OAAIouH,EAAMloH,OAA2B,iBAAVkoH,GAAsBA,aAAiB/0G,SAAW+0G,EAAMpzH,QAAQ,MAAQ,GAAKozH,EAAMpzH,QAAQ,MAAQ,EACrHyxD,EAAG0hE,aAAaC,EAAOpuH,IAEF,IAA1BysD,EAAG35C,OAAOooD,OAAOqzB,MAAkB9hC,EAAG35C,OAAOooD,OAAOqzB,MAAQ9hC,EAAG35C,OAAOooD,OAAOqzB,KAAKv5C,QAC7EyX,EAAG4hE,gBAAgBD,EAAOpuH,GAE5BysD,EAAG6hE,YAAYF,EAAOpuH,OAMrCysD,EAAGyO,OAAS34C,EAAI24C,OAAO16C,OAAOisC,EAAGiiE,mBAAoB3d,GAE9B,IAAnBtkD,EAAGlP,aACLkP,EAAG0gE,cAAc1gE,EAAGyO,QAElBzO,EAAG9pC,KACL8pC,EAAG9pC,IAAIjX,QAAQ,qBAEjB+gD,EAAGzsC,KAAK,+BAAgCysC,IAG1CqgE,EAAahrH,UAAUi9C,SAAW,WAChC,IAAI0N,EAAKpzD,KACLozD,EAAG9pC,KAA0B,eAAnB8pC,EAAG35C,OAAOpX,MACtB+wD,EAAG9pC,IAAIpW,IAAI,YAAa,QAEtBkgD,EAAG9pC,KACL8pC,EAAG9pC,IAAIjX,QAAQ,uBAEjB+gD,EAAGzsC,KAAK,mCAAoCysC,IAG9CqgE,EAAahrH,UAAUk9C,QAAU,WAC/B,IAAIyN,EAAKpzD,KACLozD,EAAGzM,YAGHyM,EAAGyO,QAAUzO,EAAGyO,OAAOt4C,UACzB6pC,EAAGyO,OAAOt4C,SAAQ,GAAM,GACxB6pC,EAAGyO,OAAS,YACLzO,EAAGyO,QAERzO,EAAG9pC,KACL8pC,EAAG9pC,IAAIjX,QAAQ,sBAEjB+gD,EAAGzsC,KAAK,iCAAkCysC,KAG5CqgE,EAAahrH,UAAUm9C,SAAW,WAChC,IAAIwN,EAAKpzD,KACLozD,EAAGzM,YACPyM,EAAG5N,QAAS,EACZ4N,EAAG9pC,IAAM,KACT8pC,EAAGlkD,GAAK,YACDkkD,EAAG9pC,WACH8pC,EAAGlkD,GACNkkD,EAAG9pC,KACL8pC,EAAG9pC,IAAIjX,QAAQ,uBAEjB+gD,EAAGzsC,KAAK,mCAAoCysC,KAI9CqgE,EAAahrH,UAAUk0E,SAAW,WAChC,IAAIvpB,EAAKpzD,KACT,GAAIozD,EAAG5N,OAAU,OAAO4N,EAExB,IAAIwpB,EAAWxpB,EAAGkoB,aAyBlB,OAvBAloB,EAAG/2B,KAAKnO,OAAO4N,SAAS,CACtB1d,IAAKg1C,EAAGh1C,IACR0c,MAAO,CACLx4B,QAASs6E,EACThkD,KAAMw6B,EAAGh1C,IACT9N,GAAI,CACFwyC,aAAc,SAAsBjyC,EAAG4kC,GACrC2d,EAAG/2B,KAAK/S,IAAIzb,SAAU,mDAAsDulD,EAAG35C,OAAY,OAC3F25C,EAAG3N,OAAO,OAAQhQ,EAAKvmC,KAEzBm8B,YAAa,SAAqBx6B,EAAG4kC,GACnC2d,EAAG1N,SAAS,OAAQjQ,EAAKvmC,KAE3B2tE,cAAe,SAAuBhsE,EAAG4kC,GACvC2d,EAAG/2B,KAAK/S,IAAIpb,YAAa,mFAAsFklD,EAAG35C,OAAY,OAC9H25C,EAAGzN,QAAQ,OAAQlQ,EAAKvmC,KAE1B4tE,aAAc,SAAsBjsE,EAAG4kC,GACrC2d,EAAGxN,SAAS,OAAQnQ,EAAKvmC,SAK1BkkD,GAGTqgE,EAAahrH,UAAUstH,eAAiB,WACtC,IAAI3iE,EAAKpzD,KACT,GAAIozD,EAAG5N,OAAU,OAAO4N,EAExB,IAEI4pB,EAAc,CAChBv2B,UAAU,EACVnkD,QAJmB8wD,EAAG+hE,mBAKtB7kH,GAAI,CACF6sE,UAAW,SAAmB9yB,GAC5B+I,EAAG3N,OAAO,QAAS4E,EAAMn7C,KAE3BkuE,YAAa,SAAqB/yB,GAChC+I,EAAG1N,SAAS,QAAS2E,EAAMn7C,KAE7BmuE,WAAY,SAAoBhzB,GAC9B+I,EAAGzN,QAAQ,QAAS0E,EAAMn7C,KAE5BouE,YAAa,SAAqBjzB,GAChC+I,EAAGxN,SAAS,QAASyE,EAAMn7C,OAgBjC,OAXIkkD,EAAG35C,OAAO8jE,gBAAkBnqB,EAAG/2B,KACjC+2B,EAAG/2B,KAAKnO,OAAO4N,SAAS,CACtB1d,IAAKg1C,EAAGh1C,IACR0c,MAAO,CACLlC,KAAMw6B,EAAGh1C,IACTisC,MAAO2yB,KAIX5pB,EAAG3tB,MAAQ2tB,EAAGlqC,IAAImhC,MAAMljC,OAAO61D,GAAavzD,OAEvC2pC,GAGTqgE,EAAahrH,UAAUs0E,UAAY,WACjC,IAAI3pB,EAAKpzD,KACT,GAAIozD,EAAG5N,OAAU,OAAO4N,EAExB,IAEI4pB,EAAc,CAChB16E,QAHc8wD,EAAGwoB,cAIjBl6E,KAAM0xD,EAAG35C,OAAOwjE,UAChB3sE,GAAI,CACF6sE,UAAW,SAAmB9yB,GAC5B+I,EAAG3N,OAAO,QAAS4E,EAAMn7C,KAE3BkuE,YAAa,SAAqB/yB,GAChC+I,EAAG1N,SAAS,QAAS2E,EAAMn7C,KAE7BmuE,WAAY,SAAoBhzB,GAC9B+I,EAAGzN,QAAQ,QAAS0E,EAAMn7C,KAE5BouE,YAAa,SAAqBjzB,GAChC+I,EAAGxN,SAAS,QAASyE,EAAMn7C,OAgBjC,OAXIkkD,EAAG35C,OAAO8jE,gBAAkBnqB,EAAG/2B,KACjC+2B,EAAG/2B,KAAKnO,OAAO4N,SAAS,CACtB1d,IAAKg1C,EAAGh1C,IACR0c,MAAO,CACLlC,KAAMw6B,EAAGh1C,IACTisC,MAAO2yB,KAIX5pB,EAAG3tB,MAAQ2tB,EAAGlqC,IAAImhC,MAAMljC,OAAO61D,GAAavzD,OAEvC2pC,GAITqgE,EAAahrH,UAAUutH,iBAAmB,WACxC,IAAI5iE,EAAKpzD,KAOT,MANuB,SAAnBozD,EAAG35C,OAAOpX,MACZ+wD,EAAG/2B,KAAK/S,IAAIzb,SAAS,mCAEnBulD,EAAG9pC,KAAO8pC,EAAG9pC,IAAIzb,SAAS,yBAC1BulD,EAAG35C,OAAOw8G,wBAA0B7iE,EAAGihE,qBAAqBxmH,SAAS,kCACzEulD,EAAGugE,SAAU,EACNvgE,GAGTqgE,EAAahrH,UAAUytH,kBAAoB,WACzC,IAAI9iE,EAAKpzD,KAOT,MANuB,SAAnBozD,EAAG35C,OAAOpX,MACZ+wD,EAAG/2B,KAAK/S,IAAIpb,YAAY,mCAEtBklD,EAAG9pC,KAAO8pC,EAAG9pC,IAAIpb,YAAY,yBAC7BklD,EAAG35C,OAAOw8G,wBAA0B7iE,EAAGihE,qBAAqBnmH,YAAY,kCAC5EklD,EAAGugE,SAAU,EACNvgE,GAGTqgE,EAAahrH,UAAU+sH,iBAAmB,WACxC,IAAIpiE,EAAKpzD,KAOT,MANuB,SAAnBozD,EAAG35C,OAAOpX,MACZ+wD,EAAG/2B,KAAK/S,IAAIhb,YAAY,mCAEtB8kD,EAAG9pC,KAAO8pC,EAAG9pC,IAAIhb,YAAY,yBAC7B8kD,EAAG35C,OAAOw8G,wBAA0B7iE,EAAGihE,qBAAqB/lH,YAAY,kCAC5E8kD,EAAGugE,SAAWvgE,EAAGugE,QACVvgE,GAGTqgE,EAAahrH,UAAUghB,KAAO,SAAe9iB,GAC3C,IAAIysD,EAAKpzD,KACLqC,EAAO+wD,EAAG35C,OAAOpX,KACrB,OAAI+wD,EAAG5N,QACD4N,EAAGyO,aAA2B,IAAVl7D,GACtBysD,EAAGyO,OAAOE,QAAQvgD,SAAS7a,EAAO,KAE7BysD,SAEY,IAAVzsD,IACTysD,EAAGlP,YAAcv9C,GAEN,eAATtE,GACF+wD,EAAG2iE,iBAEQ,SAAT1zH,GACF+wD,EAAGupB,WAEQ,UAATt6E,GACF+wD,EAAG2pB,YAEE3pB,IAGTqgE,EAAahrH,UAAUshB,MAAQ,WAC7B,IAAIqpC,EAAKpzD,KACT,OAAKozD,EAAG5N,QACH4N,EAAG35C,OAAO8jE,gBAAkBnqB,EAAG/2B,MAAyB,SAAhB+2B,EAAG+oB,SAC9C/oB,EAAG/2B,KAAKnO,OAAOpiB,QAEfsnD,EAAG3tB,MAAMzzB,KAAK,eAAe,WAC3BkL,MAAMW,UAAS,WACTu1C,EAAGzM,YACPyM,EAAG3tB,MAAMlc,iBACF6pC,EAAG3tB,aAGd2tB,EAAG3tB,MAAM1b,SAEJqpC,GAbkBA,GAgB3BqgE,EAAahrH,UAAU8jB,KAAO,aAE9BknG,EAAahrH,UAAU8gB,QAAU,WAC/B,IAAI6pC,EAAKpzD,KACTozD,EAAGzsC,KAAK,iDAAkDysC,GACtDA,EAAG9pC,MACL8pC,EAAG9pC,IAAIjX,QAAQ,8BACf+gD,EAAG9pC,IAAI,GAAG8rG,eAAiB,YACpBhiE,EAAG9pC,IAAI,GAAG8rG,gBAEnBl4G,MAAMU,YAAYw1C,GAClBA,EAAGzM,WAAY,EACfyM,EAAK,MAGPlvD,OAAOiF,iBAAkBsqH,EAAahrH,UAAWilB,GAE1C+lG,EA3oBuB,CA4oB9BxsG,iBAEEkvG,eAAiB,CACnB3xH,KAAM,eACNiV,OAAQ,CACNi6G,aAAc,CACZM,OAAQ,GACRuB,YAAY,EACZU,wBAAwB,EACxB5zH,KAAM,aACNglC,QAAQ,EACR8c,SAAS,EACTh+B,MAAO,QACP+uG,mBAAe/0H,EACfq0H,gBAAYr0H,EACZ88E,WAAW,EACXzxB,cAAc,EACd+yB,iBAAkB,OAClBC,mBAAoB,QACpB43C,aAAc,KACd1B,qBAAiBv0H,EACjBk8B,UAAMl8B,EACNie,IAAK,UACLm/D,gBAAgB,EAChBw2C,eAAe,EAEfQ,kBAAcp0H,EACd0tF,mBAAe1tF,EACfy0H,mBAAez0H,EACf20H,kBAAc30H,EACd60H,qBAAiB70H,EACjB80H,iBAAa90H,EACbm7E,gBAAYn7E,EACZy7E,iBAAaz7E,EACbg1H,sBAAkBh1H,EAElB0hE,OAAQ,CACNgrC,aAAc,EACd/G,aAAc,GACdqD,MAAO,IACPzqC,MAAM,EACN23C,eAAe,EACfrC,WAAY,CACVC,OAAQ,sBACRC,OAAQ,uBAEVqR,KAAM,CACJ5pE,SAAS,EACTkqE,SAAU,EACVlQ,SAAU,GAEZzgB,KAAM,CACJv5C,SAAS,MAKjBx0B,OAAQ,WACInnB,KACN0zH,aAAe7qG,mBAAmB,CACpCE,gBAAiB,4CACjB9kB,YAAawvH,aACbvqG,IAJQlpB,KAKRipB,QAAS,oBAGbN,OAAQ,CACN8qG,aAAcA,eAId4C,aAA6B,SAAU9wE,GACzC,SAAS8wE,EAAantG,EAAKzP,GACzB,IAAIotC,EAAiB3pC,MAAM5U,OAAO,CAChCgI,GAAI,IACH4Y,EAAIzP,OAAO2zG,aAAc3zG,GAG5B8rC,EAAMr/C,KAAKlG,KAAMkpB,EAAK29B,GAEtB,IAAIumE,EAAeptH,KAEnBotH,EAAalkG,IAAMA,EAEnBkkG,EAAa3zG,OAASotC,EAEtB,IAWIv9B,EAoDAgU,EACA3J,EACAkJ,EACAE,EACAC,EACAs5F,EApEAv7G,EAAMqyG,EAAa3zG,OACnBy1C,EAAOn0C,EAAIm0C,KACXzQ,EAAQ1jC,EAAI0jC,MACZ83E,EAAiBx7G,EAAIw7G,eACrBC,EAAWz7G,EAAIy7G,SACf3hH,EAAOkG,EAAIlG,KACXw9C,EAAct3C,EAAIs3C,YAClBC,EAAev3C,EAAIu3C,aACnBhL,EAAWvsC,EAAIusC,SACfmvE,EAAe17G,EAAI07G,aAGvB,GAAKrJ,EAAa3zG,OAAOvK,GAcvBoa,EAAM7c,EAAE2gH,EAAa3zG,OAAOvK,QAdD,CAE3B,IAAIwnH,EAAmBtJ,EAAaz0G,OAAO,CACzCu2C,KAAMA,EACNzQ,MAAOA,EACP83E,eAAgBA,EAChBC,SAAUA,EACV3hH,KAAMA,EACNw9C,YAAaA,EACb/K,SAAUA,IAGZh+B,EAAM7c,EAAEiqH,GAKV,GAAIptG,GAAOA,EAAIhoB,OAAS,GAAKgoB,EAAI,GAAGQ,QAClC,OAAOR,EAAI,GAAGQ,QAGhB,GAAmB,IAAfR,EAAIhoB,OACN,OAAO8rH,EAAa7jG,UAGtBrM,MAAM5U,OAAO8kH,EAAc,CACzB9jG,IAAKA,EACLpa,GAAIoa,EAAI,GACRjnB,KAAM,iBAGRinB,EAAI,GAAGQ,QAAUsjG,EAEb/6D,GACF/oC,EAAIrS,KAAK,8BAA8B3G,GAAG,SAAS,WACjD88G,EAAarjG,WAGjBT,EAAIhZ,GAAG,SAAS,SAAUO,GACpBwhD,GAAe5lD,EAAEoE,EAAEtI,QAAQyO,QAAQ,8BAA8B1V,SAGrE8rH,EAAazmG,KAAK,iCAAkCymG,GAChDqJ,GAAgBrJ,EAAarjG,YAGnCqjG,EAAa98G,GAAG,iBAAiB,WAC/BgZ,EAAI3X,IAAI,YAUV,IAuEIygD,EAvEA70B,EAAe,GACnB,SAASmB,EAAiB7tB,GACpBysB,IACJA,GAAY,EACZ3J,GAAU,EACVkJ,OAAc18B,EACd68B,EAAiB9f,MAAMc,MACvBuf,EAAapb,EAAe,eAAXtR,EAAExO,KAAwBwO,EAAEomB,cAAc,GAAGG,MAAQvmB,EAAEumB,MACxEmG,EAAazI,EAAe,eAAXjkB,EAAExO,KAAwBwO,EAAEomB,cAAc,GAAGI,MAAQxmB,EAAEwmB,OAE1E,SAASyH,EAAgBjuB,GACvB,GAAKysB,EAAL,CACA,IAAIlG,EAAmB,cAAXvmB,EAAExO,KAAuBwO,EAAEomB,cAAc,GAAGG,MAAQvmB,EAAEumB,MAC9DC,EAAmB,cAAXxmB,EAAExO,KAAuBwO,EAAEomB,cAAc,GAAGI,MAAQxmB,EAAEwmB,MAIlE,QAH2B,IAAhBwF,IACTA,KAAiBA,GAAevkB,KAAKuJ,IAAIwV,EAAQkG,EAAazI,GAAKxc,KAAKuJ,IAAIuV,EAAQmG,EAAapb,KAE/F0a,EACFS,GAAY,MADd,CAIAzsB,EAAEmmB,iBACGrD,IACHy5F,EAAa9jG,IAAIpb,YAAY,8BAC7Bk/G,EAAa9jG,IAAIpZ,WAAW,GAC5BomH,EAAqBlJ,EAAa9jG,IAAI,GAAG5V,aAAe,GAE1DigB,GAAU,EAEV,IAAIokC,EADJh7B,EAAe1F,EAAQkG,EAAazI,EAEhCiI,EAAc,IAChBg7B,EAAez/C,KAAKuoB,IAAK9D,EAAa,KAExCqwF,EAAa9jG,IAAIvZ,UAAW,kBAAoBgoD,EAAe,YAEjE,SAAS71B,IACP,IAAK5E,IAAc3J,EAGjB,OAFA2J,GAAY,OACZ3J,GAAU,GAKZ,GAFA2J,GAAY,EACZ3J,GAAU,EACU,IAAhBoJ,EAAJ,CAIA,IAAIqF,EAAWllB,MAAMc,MAAQgf,EAC7BowF,EAAa9jG,IAAIpZ,WAAW,IAC5Bk9G,EAAa9jG,IAAIzb,SAAS,8BAC1Bu/G,EAAa9jG,IAAIvZ,UAAU,KAGxBgtB,GAAe,IAAMqF,EAAW,MAC5BrF,GAAeu5F,EAAqB,IAEzClJ,EAAarjG,SA8CjB,OArBAqjG,EAAa98G,GAAG,QAAQ,WAClB88G,EAAa3zG,OAAO+xC,eArBxB4hE,EAAa9jG,IAAIhZ,GAAG4Y,EAAIoN,YAAYC,MAAOmI,EAAkB,CAAExI,SAAS,IACxEhN,EAAI5Y,GAAG,mBAAoBwuB,GAC3B5V,EAAI5Y,GAAG,mBAAoB4xB,IAsB3Bz1B,EAAE,0BAA0BnG,MAAK,SAAUK,EAAO6rD,GAChD,IAAImkE,EAAuBztG,EAAIkkG,aAAalkH,IAAIspD,GAC5CA,IAAa46D,EAAal+G,IAAMynH,GAClCA,EAAqB5sG,WAGrBuoC,GAnBN,SAASskE,IACPxkE,EAAYl1C,MAAMW,UAAS,WACrByf,GAAa3J,EACfijG,IAGFxJ,EAAarjG,UACZuoC,GAaDskE,MAGJxJ,EAAa98G,GAAG,uBAAuB,WACjC88G,EAAa3zG,OAAO+xC,eA9BxB4hE,EAAa9jG,IAAI3X,IAAIuX,EAAIoN,YAAYC,MAAOmI,EAAkB,CAAExI,SAAS,IACzEhN,EAAIvX,IAAI,mBAAoBmtB,GAC5B5V,EAAIvX,IAAI,mBAAoBuwB,IA+B5B52B,IAAIgB,aAAa8lD,MAGZg7D,EAqBT,OAlBK7nE,IAAQ8wE,EAAanvG,UAAYq+B,GACtC8wE,EAAa5tH,UAAYvE,OAAOijB,OAAQo+B,GAASA,EAAM98C,WACvD4tH,EAAa5tH,UAAUxE,YAAcoyH,EAErCA,EAAa5tH,UAAUkQ,OAAS,WAE9B,GADmB3Y,KACFyZ,OAAOd,OAAU,OADf3Y,KACmCyZ,OAAOd,OAAOzS,KADjDlG,KAAAA,MAEnB,IAAI+a,EAFe/a,KAEIyZ,OACnBy1C,EAAOn0C,EAAIm0C,KACXzQ,EAAQ1jC,EAAI0jC,MACZ83E,EAAiBx7G,EAAIw7G,eACrBC,EAAWz7G,EAAIy7G,SACf3hH,EAAOkG,EAAIlG,KACXw9C,EAAct3C,EAAIs3C,YAEtB,OAAQ,qCADOt3C,EAAIusC,UACyC,IAAM,6DAAkE4H,EAAQ,kCAAsCA,EAAO,SAAY,IAAM,gBAAkBzQ,EAAS,mCAAuCA,EAAQ,SAAY,IAAM,gBAAkB83E,EAAkB,8CAAkDA,EAAiB,SAAY,IAAM,gBAAkBlkE,EAAc,kDAAoD,IAAM,4EAAgFmkE,EAAY,sCAA0CA,EAAW,SAAY,IAAM,gBAAkB3hH,EAAQ,kCAAsCA,EAAO,SAAY,IAAM,wCAAwC1T,QAGzxBk1H,EA/MuB,CAgN9B9wE,OAEEsxE,eAAiB,CACnBryH,KAAM,eACNmkB,OAAQ,CACN0tG,aAAcA,cAEhBlvG,OAAQ,WACInnB,KACNotH,aAAelwG,MAAM5U,OACvB,GACAkhB,aAAa,CACXN,IAJMlpB,KAKNiE,YAAaoyH,aACbttG,gBAAiB,6BAIvBtP,OAAQ,CACN2zG,aAAc,CACZl+D,KAAM,KACNzQ,MAAO,KACP83E,eAAgB,KAChBC,SAAU,KACV3hH,KAAM,KACNw9C,aAAa,EACbC,aAAc,KACdmkE,cAAc,EACdjrE,cAAc,EACdlE,SAAU,KACV3uC,OAAQ,QAOVm+G,aAA6B,SAAU7vG,GACzC,SAAS6vG,EAAa5tG,EAAKzP,QACT,IAAXA,IAAoBA,EAAS,IAElCwN,EAAgB/gB,KAAKlG,KAAMyZ,EAAQ,CAACyP,IAEpC,IAAI6tG,EAAK/2H,KACT+2H,EAAG7tG,IAAMA,EAET,IAaI8tG,EAMA5rD,EAnBAl/C,EAAWhP,MAAM5U,OAAO,CAC1BgI,GAAI,IACH4Y,EAAIzP,OAAOw9G,mBAEiC,IAApC/qG,EAAS2rD,yBAClB3rD,EAAS2rD,uBAAuC,WAAd3uD,EAAI/C,OAIxC4wG,EAAGtvG,iBAAiByE,GAEpB6qG,EAAGt9G,OAASyD,MAAM5U,OAAO4jB,EAAUzS,GAG/Bs9G,EAAGt9G,OAAOy9G,WACZF,EAAYvqH,EAAEsqH,EAAGt9G,OAAOy9G,WACV51H,SAAU01H,EAAU,GAAGG,eAAiBJ,GAIpDA,EAAGt9G,OAAO0xD,UACZC,EAAW3+D,EAAEsqH,EAAGt9G,OAAO0xD,UACV7pE,SAAU8pE,EAAS,GAAG+rD,eAAiBJ,GAGtD,IAAIppH,EAAKuP,MAAMvP,KAEXyQ,EAAM3E,EAAO2E,KACZA,GAAO44G,GAAaA,EAAU11H,SAC7B01H,EAAUxoH,KAAK,QAAW4P,EAAM44G,EAAUxoH,KAAK,QAC1CwoH,EAAU//G,KAAK,KAAK3V,OAAS,IACpC8c,EAAM44G,EAAU//G,KAAK,KAAKzI,KAAK,UAG9B4P,GAAe,MAARA,GAAuB,KAARA,IAAcA,EAAM24G,EAAGt9G,OAAO2E,KAEzD,IAAI65D,EAAY8+C,EAAGt9G,OAAO9J,SAAW,WAAa,QAElDuN,MAAM5U,OAAOyuH,EAAI,CACfC,UAAWA,EACXE,SAAUF,GAAaA,EAAU,GACjC5rD,SAAUA,EACVD,QAASC,GAAYA,EAAS,GAC9Bz9D,GAAIA,EACJyQ,IAAKA,EACL1P,MAAOqoH,EAAGt9G,OAAO/K,OAAS,GAC1BupE,UAAWA,EACXU,UAAYV,EAAY,IAAMtqE,EAC9Bkc,cAAU1pB,EACVi3H,iBAAaj3H,IAGf,IAAIw7F,EAAgB,GACpB,SAASN,IACP,IAAI/8E,EAAQy4G,EAAG3rD,SAAS37D,MAAMtO,OAEzB41H,EAAGt9G,OAAO2gB,QACf28F,EAAGt9G,OAAO2gB,OAAOl0B,KAAK6wH,EAAIz4G,GAAO,SAAUo8C,GACzC,IAGIpmB,EAMA+iF,EACAC,EAVAC,EAAY,GACZC,EAAQT,EAAGt9G,OAAO+9G,MAAQl/G,KAAKE,IAAIu+G,EAAGt9G,OAAO+9G,MAAO98D,EAAMp5D,QAAUo5D,EAAMp5D,OAC9Ey1H,EAAGr8D,MAAQA,EAEPq8D,EAAGt9G,OAAOg+G,mBACZn5G,EAAQA,EAAMzd,QAAQ,sCAAuC,QAC7DyzC,EAAS,IAAI/zC,OAAQ,IAAM+d,EAAQ,IAAM,MAK3C,IAAK,IAAItd,EAAI,EAAGA,EAAIw2H,EAAOx2H,GAAK,EAAG,CACjC,IAAI02H,EAAgC,iBAAbh9D,EAAM15D,GAAkB05D,EAAM15D,GAAG+1H,EAAGt9G,OAAOk+G,eAAiBj9D,EAAM15D,GACrF07F,EAA+B,iBAAbhiC,EAAM15D,GAAkB05D,EAAM15D,GAAG+1H,EAAGt9G,OAAOm+G,cAAgBl9D,EAAM15D,GAC7E,IAANA,IACFq2H,EAAaK,EACbJ,EAAYP,EAAGr8D,MAAM15D,IAEvBu2H,GAAaR,EAAGv8D,WAAW,CACzB9rD,MAAOgpH,EACP7iH,KAAMkiH,EAAGt9G,OAAOg+G,iBAAmB/6B,EAAS77F,QAAQyzC,EAAQ,aAAeooD,GAC1E17F,GASL,GAPkB,KAAdu2H,GAA8B,KAAVj5G,GAAgBy4G,EAAGt9G,OAAOo+G,0BAChDN,GAAaR,EAAGv8D,WAAW,CACzB26B,aAAa,EACbtgF,KAAMkiH,EAAGt9G,OAAOo+G,2BAGpBd,EAAGK,YAAYngH,KAAK,MAAMpK,KAAK0qH,GAC3BR,EAAGt9G,OAAOq+G,UAAW,CACvB,IAAKT,IAAeC,EAClB,OAEF,GAA8D,IAA1DD,EAAWjqH,cAAczL,QAAQ2c,EAAMlR,eACzC,OAEF,GAAIuuF,EAAcvuF,gBAAkBkR,EAAMlR,cAExC,YADA2pH,EAAGroH,MAAQ,IAIb,GAAiE,IAA7DitF,EAAcvuF,cAAczL,QAAQ2c,EAAMlR,eAG5C,OAFAuuF,EAAgBr9E,OAChBy4G,EAAGroH,MAAQ,IAGb08D,EAAS37D,IAAI4nH,GACbjsD,EAAS,GAAG2sD,kBAAkBz5G,EAAMhd,OAAQ+1H,EAAW/1H,QAEvD,IAAIgtE,EAAuC,iBAAhByoD,EAAGroH,MAAM,GAAkBqoH,EAAGroH,MAAM,GAAGqoH,EAAGt9G,OAAOk+G,eAAiBZ,EAAGroH,MAAM,GACjG4/D,GAAiB+oD,EAAWjqH,gBAAkBkhE,EAAclhE,gBAC/D2pH,EAAGroH,MAAQ,CAAC4oH,GACZP,EAAGpwG,KAAK,mCAAoC,CAAC2wG,KAIjD37B,EAAgBr9E,KAGpB,SAAS05G,IACP,IAGIv9D,EACAi9D,EACAO,EAJAvpH,EADQ1O,KACM0O,MAKlB,GAJejC,EAFHzM,MAEYqE,QAAQ,wBAAwB/C,OAAS,GAK/D,GAAqB,aAAjBy1H,EAAG9+C,YAPGj4E,KAOgCsrE,QAAS,CACjD,IAAK,IAAItqE,EAAI,EAAGA,EAAI+1H,EAAGroH,MAAMpN,OAAQN,GAAK,GACxCi3H,EAAgC,iBAAhBlB,EAAGroH,MAAM1N,GAAkB+1H,EAAGroH,MAAM1N,GAAK+1H,EAAGroH,MAAM1N,GAAG+1H,EAAGt9G,OAAOk+G,kBAChEjpH,GAAkB,EAATupH,GAAuB,EAARvpH,GACrCqoH,EAAGroH,MAAMqD,OAAO/Q,EAAG,GAGvB+1H,EAAGmB,eACHnB,EAAGpwG,KAAK,mCAAoCowG,EAAGroH,YATnD,CAeA,IAAK,IAAIgB,EAAM,EAAGA,EAAMqnH,EAAGr8D,MAAMp5D,OAAQoO,GAAO,GAC9CgoH,EAAqC,iBAAlBX,EAAGr8D,MAAMhrD,GAAoBqnH,EAAGr8D,MAAMhrD,GAAKqnH,EAAGt9G,OAAOk+G,eAAiBZ,EAAGr8D,MAAMhrD,MAChFhB,GAAqB,EAAZgpH,GAA0B,EAARhpH,IAAa+rD,EAAOs8D,EAAGr8D,MAAMhrD,IAE5E,GAAqB,UAAjBqnH,EAAG9+C,UACL8+C,EAAGroH,MAAQ,CAAC+rD,QACP,GA3BKz6D,KA2BKsrE,QACfyrD,EAAGroH,MAAMhN,KAAK+4D,QAEd,IAAK,IAAI/yB,EAAM,EAAGA,EAAMqvF,EAAGroH,MAAMpN,OAAQomC,GAAO,GAC9CuwF,EAAkC,iBAAlBlB,EAAGroH,MAAMg5B,GAAoBqvF,EAAGroH,MAAMg5B,GAAKqvF,EAAGt9G,OAAOk+G,eAAiBZ,EAAGroH,MAAMg5B,MAChFh5B,GAAkB,EAATupH,GAAuB,EAARvpH,GACrCqoH,EAAGroH,MAAMqD,OAAO21B,EAAK,GAM3BqvF,EAAGmB,gBAGoB,UAAjBnB,EAAG9+C,WA1CGj4E,KA0C4BsrE,SAA6B,aAAjByrD,EAAG9+C,YACrD8+C,EAAGpwG,KAAK,mCAAoCowG,EAAGroH,QAGnD,SAASi0E,EAAY9xE,GACnB,IAAIoZ,EAAYxd,EAAEoE,EAAEtI,QAChB0hB,EAAUhZ,GAAG8lH,EAAG3rD,SAAS,KAAQ2rD,EAAGK,aAAentG,EAAUjT,QAAQ+/G,EAAGK,YAAY,IAAI91H,QAC5Fy1H,EAAGhtG,QAEL,SAASouG,IACPpB,EAAGttG,OAEL,SAASg5D,IACPs0C,EAAGttG,OAEL,SAASgtD,IACHsgD,EAAGK,YAAYngH,KAAK,sBAAsB3V,OAAS,GACvD+K,YAAW,WACT0qH,EAAGhtG,UACF,GAEL,SAAS6mC,IACPmmE,EAAGqB,mBAGL,SAASrwE,EAAUl3C,GACjB,GAAKkmH,EAAGvxE,OAAR,CACA,GAAkB,KAAd30C,EAAEm3C,QAIJ,OAFAn3C,EAAEmmB,sBACF+/F,EAAG3rD,SAASrhE,OAGd,GAAkB,KAAd8G,EAAEm3C,QAAgB,CAEpB,IAAIqwE,EAAqBtB,EAAGK,YAAYngH,KAAK,yCAC7C,OAAIohH,EAAmB/2H,QACrBuP,EAAEmmB,iBACFqhG,EAAmBhmH,QAAQ,cAC3B0kH,EAAG3rD,SAASrhE,aAGVgtH,EAAGt9G,OAAOq+G,YACZjnH,EAAEmmB,iBACF+/F,EAAG3rD,SAASrhE,SAIhB,GAAkB,KAAd8G,EAAEm3C,SAAgC,KAAdn3C,EAAEm3C,QAA1B,CACAn3C,EAAEmmB,iBACF,IACIshG,EADAC,EAAgBxB,EAAGK,YAAYngH,KAAK,mCAEpCshH,EAAcj3H,SAChBg3H,EAAWC,EAA4B,KAAd1nH,EAAEm3C,QAAiB,OAAS,QAAQ,OAC/C1mD,SAIdg3H,EAAWvB,EAAGK,YAAYngH,KAAK,MAAM5B,GAAiB,KAAdxE,EAAEm3C,QAAiB,EAAI+uE,EAAGK,YAAYngH,KAAK,MAAM3V,OAAS,IAEhGg3H,EAASlqH,SAAS,uCACtBmqH,EAAcrqH,YAAY,kCAC1BoqH,EAASzqH,SAAS,qCAEpB,SAAS2qH,IAGP,IAFA,IACIC,EADAp/E,EAAa5sC,EAAEzM,MAEVgB,EAAI,EAAGA,EAAI+1H,EAAGr8D,MAAMp5D,OAAQN,GAAK,EAAG,CAC3C,IAAI02H,EAAmC,iBAAhBX,EAAGr8D,MAAM15D,GAAkB+1H,EAAGr8D,MAAM15D,GAAG+1H,EAAGt9G,OAAOk+G,eAAiBZ,EAAGr8D,MAAM15D,GAC9F0N,EAAQ2qC,EAAW7qC,KAAK,cACxBkpH,IAAchpH,GAAqB,EAAZgpH,GAA0B,EAARhpH,IAC3C+pH,EAAc1B,EAAGr8D,MAAM15D,IAGvB+1H,EAAGt9G,OAAOi/G,2BACZ3B,EAAG3rD,SAAS37D,IAA2B,iBAAhBgpH,EAA2BA,EAAY1B,EAAGt9G,OAAOk+G,eAAiBc,GACzF1B,EAAG3rD,SAAS/4D,QAAQ,iBAEtB0kH,EAAGroH,MAAQ,CAAC+pH,GACZ1B,EAAGpwG,KAAK,mCAAoC,CAAC8xG,IAC7C1B,EAAGhtG,QA8DL,OA3DAgtG,EAAGlhF,aAAe,WACS,aAArBkhF,EAAGt9G,OAAOw/D,QAAyB89C,EAAGC,WACxCD,EAAGC,UAAU1mH,GAAG,QAAS6nH,GAEF,aAArBpB,EAAGt9G,OAAOw/D,QAAyB89C,EAAG3rD,WACxC2rD,EAAG3rD,SAAS96D,GAAG,QAASmyE,GACxBs0C,EAAG3rD,SAAS96D,GAAGymH,EAAGt9G,OAAOqgF,YAAauB,GAClCnyE,EAAI7E,OAAOE,QACb9X,EAAE,QAAQ6D,GAAG,QAASqyE,GAEtBo0C,EAAG3rD,SAAS96D,GAAG,OAAQmmE,GAEzBsgD,EAAG3rD,SAAS96D,GAAG,UAAWy3C,KAG9BgvE,EAAG56D,aAAe,WACS,aAArB46D,EAAGt9G,OAAOw/D,QAAyB89C,EAAGC,WACxCD,EAAGC,UAAUrlH,IAAI,QAASwmH,GAEH,aAArBpB,EAAGt9G,OAAOw/D,QAAyB89C,EAAG3rD,WACxC2rD,EAAG3rD,SAASz5D,IAAI,QAAS8wE,GACzBs0C,EAAG3rD,SAASz5D,IAAIolH,EAAGt9G,OAAOqgF,YAAauB,GACnCnyE,EAAI7E,OAAOE,QACb9X,EAAE,QAAQkF,IAAI,QAASgxE,GAEvBo0C,EAAG3rD,SAASz5D,IAAI,OAAQ8kE,GAE1BsgD,EAAG3rD,SAASz5D,IAAI,UAAWo2C,KAG/BgvE,EAAG4B,qBAAuB,WACxB5B,EAAGK,YAAY9mH,GAAG,QAAS,QAASkoH,GACpCtvG,EAAI5Y,GAAG,SAAUsgD,IAEnBmmE,EAAG6B,qBAAuB,WACxB7B,EAAGK,YAAYzlH,IAAI,QAAS,QAAS6mH,GACrCtvG,EAAIvX,IAAI,SAAUi/C,IAGpBmmE,EAAG8B,iBAAmB,WACpB9B,EAAGztG,IAAIhZ,GAAG,SAAU,8CAA+C0nH,GAC/DjB,EAAGt9G,OAAOi/D,gBAAkBq+C,EAAGt9G,OAAO9J,UACxConH,EAAGztG,IAAItX,KAAK,QAAS,eAAe,WAClCkL,MAAMW,UAAS,WACbk5G,EAAGhtG,eAKXgtG,EAAG+B,iBAAmB,WACpB/B,EAAGztG,IAAI3X,IAAI,SAAU,8CAA+CqmH,IAItEjB,EAAG1uG,aAGH0uG,EAAGxqG,OAEIwqG,EAGJ9vG,IAAkB6vG,EAAa5vG,UAAYD,GAChD6vG,EAAaruH,UAAYvE,OAAOijB,OAAQF,GAAmBA,EAAgBxe,WAC3EquH,EAAaruH,UAAUxE,YAAc6yH,EAErC,IAAIppG,EAAqB,CAAE2O,KAAM,CAAEx0B,cAAc,IA6cjD,OA3cA6lB,EAAmB2O,KAAKnzB,IAAM,WAC5B,IAIImzB,EAJA06F,EAAK/2H,KACLg3H,EAAYD,EAAGC,UACf5rD,EAAW2rD,EAAG3rD,SACdliD,EAAM6tG,EAAG7tG,IAEb,GAAI6tG,EAAGt9G,OAAO4iB,KACZA,EAAO06F,EAAGt9G,OAAO4iB,UACZ,GAAI26F,GAAa5rD,EAAU,CAChC,IAAI9hD,EAAM0tG,GAAa5rD,EACvB/uC,EAAO/S,EAAItS,QAAQ,SAAS1V,QAAUgoB,EAAItS,QAAQ,SAAS,GAAG8hC,OAGhE,OADKzc,IAAQA,EAAOnT,EAAIkT,MAAMyc,MACvBxc,GAGTy6F,EAAaruH,UAAU2vH,iBAAmB,WACxC,IAAI/vH,EAEA0uH,EAAK/2H,KACLorE,EAAW2rD,EAAG3rD,SACdliD,EAAM6tG,EAAG7tG,IACTkuG,EAAcL,EAAGK,YAEjB7zE,EAAiB6nB,EAAS/mE,QAAQ,iBACtC,GAA8B,IAA1Bk/C,EAAejiD,OAAnB,CACA,IAKIy3H,EALAC,EAAc5tD,EAASz3D,SACvBslH,EAAmB7tD,EAAS,GAAG93D,YAC/B4lH,EAAoB9tD,EAAS,GAAG13D,aAChCurD,EAAUmM,EAAS/mE,QAAQ,SAG/B46D,EAAQ56D,UAAUiC,MAAK,SAAUK,EAAOwyH,GACtC,IAAIJ,EAAJ,CACA,IAAI/uG,EAAYvd,EAAE0sH,GACdnvG,EAAUnU,OAAO0tC,GAAgBjiD,SAAUy3H,EAAc/uG,OAG/D,IASIovG,EATAC,EAAap6D,EAAQtrD,SACrBy9C,EAAgB5vC,SAAS+hC,EAAerwC,IAAI,kBAAmB,IAC/DomH,EAAiBr6D,EAAQ39D,OAAS,EAAI+3H,EAAWhlH,KAAOkvC,EAAe5vC,SAASU,KAAO,EACvFklH,EAAkBP,EAAY3kH,MAAQ4qD,EAAQ39D,OAAS,EAAI+3H,EAAWhlH,KAAO,IAAM6U,EAAIwC,IAAM,GAC7F0iD,EAAiB4qD,EAAY5kH,KAAOmvC,EAAe5vC,SAASS,IAAMmvC,EAAe,GAAGvvC,WAEpFi0D,EAAY1kB,EAAe,GAAGlrC,aAAe+4C,GAAiBgd,EAAiB7qB,EAAe,GAAGvvC,WAAao3D,EAAS,GAAG13D,aAE1H8lH,EAActwG,EAAIwC,IAAM,gBAAkB,eAE1CuzC,EAAQ39D,SAAWy1H,EAAGt9G,OAAOggH,cAC/BL,GAAgBlwG,EAAIwC,IAAMuzC,EAAQ,GAAG3rD,YAAcimH,EAAkBN,EAAmBM,IAAkC,OAAdrwG,EAAI/C,MAAiB,GAAK,KAGxIixG,EAAYlkH,IAAI,CACdmB,MAAQ4qD,EAAQ39D,OAAS,EAAIg4H,EAAiBC,GAAmB,KACjEnlH,IAAOg6D,EAAiB7qB,EAAe,GAAGvvC,UAAYklH,EAAqB,KAC3ElmH,OAASisD,EAAQ39D,OAAS,EAAI29D,EAAQ,GAAG3rD,YAAc2lH,GAAoB,OAE7E7B,EAAY7sH,SAAS,gCAAgC2I,MAAM7K,EAAM,CAC/D4/D,UAAYA,EAAY,OACnBuxD,GAAev6D,EAAQ39D,OAAS,IAAMy1H,EAAGt9G,OAAOggH,YAAeL,EAAe,KAAQ,GAAI/wH,MAGnGyuH,EAAaruH,UAAU6S,MAAQ,WACpBtb,KACNspB,IAAIrS,KAAK,sBAAsBqE,SAGpCw7G,EAAaruH,UAAU2xB,OAAS,SAAiB9b,GAC/C,IAAIy4G,EAAK/2H,KACT,GAAK+2H,EAAGt9G,OAAO2gB,OAAf,CAEA,IAAI9Q,EAAMytG,EAAGztG,IAEbytG,EAAGt9G,OAAO2gB,OAAOl0B,KAAK6wH,EAAIz4G,GAAO,SAAUo8C,GACzC,IAAI68D,EAAY,GACZC,EAAQT,EAAGt9G,OAAO+9G,MAAQl/G,KAAKE,IAAIu+G,EAAGt9G,OAAO+9G,MAAO98D,EAAMp5D,QAAUo5D,EAAMp5D,OAC9Ey1H,EAAGr8D,MAAQA,EACX,IAAK,IAAI15D,EAAI,EAAGA,EAAIw2H,EAAOx2H,GAAK,EAAG,CAGjC,IAFA,IAAI4O,GAAW,EACX8nH,EAAgC,iBAAbh9D,EAAM15D,GAAkB05D,EAAM15D,GAAG+1H,EAAGt9G,OAAOk+G,eAAiBj9D,EAAM15D,GAChFC,EAAI,EAAGA,EAAI81H,EAAGroH,MAAMpN,OAAQL,GAAK,EAAG,CAC3C,IAAIg3H,EAAgC,iBAAhBlB,EAAGroH,MAAMzN,GAAkB81H,EAAGroH,MAAMzN,GAAG81H,EAAGt9G,OAAOk+G,eAAiBZ,EAAGroH,MAAMzN,GAC3Fg3H,IAAWP,GAAsB,EAATO,GAA2B,EAAZP,IAAiB9nH,GAAW,GAEzE2nH,GAAaR,EAAGv8D,WAAW,CACzB9rD,MAAOgpH,EACP7iH,KAA0B,iBAAb6lD,EAAM15D,GAAkB05D,EAAM15D,GAAG+1H,EAAGt9G,OAAOm+G,cAAgBl9D,EAAM15D,GAC9Ei3E,UAAW8+C,EAAG9+C,UACdtqE,GAAIopH,EAAGppH,GACPgrE,UAAWo+C,EAAGp+C,UACd/oE,SAAUA,GACT5O,GAELsoB,EAAIrS,KAAK,0BAA0BpK,KAAK0qH,GACnB,IAAjB78D,EAAMp5D,OACa,IAAjBgd,EAAMhd,QACRgoB,EAAIrS,KAAK,2BAA2BzC,OACpC8U,EAAIrS,KAAK,6CAA6C3C,SAEtDgV,EAAIrS,KAAK,wBAAwBzC,OACjC8U,EAAIrS,KAAK,gDAAgD3C,SAG3DgV,EAAIrS,KAAK,uBAAuBzC,OAChC8U,EAAIrS,KAAK,iDAAiD3C,aAKhEwiH,EAAaruH,UAAUyvH,aAAe,WAGpC,IAFA,IAAInB,EAAK/2H,KACL05H,EAAa,GACR14H,EAAI,EAAGA,EAAI+1H,EAAGroH,MAAMpN,OAAQN,GAAK,EACxC04H,GAAc3C,EAAGv8D,WAAW,CAC1B9rD,MAA8B,iBAAhBqoH,EAAGroH,MAAM1N,GAAkB+1H,EAAGroH,MAAM1N,GAAG+1H,EAAGt9G,OAAOk+G,eAAiBZ,EAAGroH,MAAM1N,GACzF6T,KAA6B,iBAAhBkiH,EAAGroH,MAAM1N,GAAkB+1H,EAAGroH,MAAM1N,GAAG+1H,EAAGt9G,OAAOm+G,cAAgBb,EAAGroH,MAAM1N,GACvFi3E,UAAW8+C,EAAG9+C,UACdtqE,GAAIopH,EAAGppH,GACPgrE,UAAao+C,EAAY,UAAI,YAC7BnnH,UAAU,GACT5O,GAEL+1H,EAAGztG,IAAIrS,KAAK,2BAA2BpK,KAAK6sH,IAG9C5C,EAAaruH,UAAUkxH,cAAgB,WAEZ,aADhB35H,KACFyZ,OAAOw/D,QADLj5E,KACiCo3H,YADjCp3H,KAEJo3H,YAAYngH,KAAK,2BAA2B/I,YAAY,kCAE3DzB,EAAE,2BAA2ByB,YAAY,mCAI7C4oH,EAAaruH,UAAUmxH,cAAgB,WAEZ,aADhB55H,KACFyZ,OAAOw/D,QADLj5E,KACiCo3H,YADjCp3H,KAEJo3H,YAAYngH,KAAK,2BAA2BpJ,SAAS,kCAExDpB,EAAE,2BAA2BoB,SAAS,mCAI1CipH,EAAaruH,UAAUoxH,gBAAkB,WAEvC,OAAQ,yDADC75H,KAC8DyZ,OAAOqgH,eAAkB,SADvF95H,KACsGyZ,OAAqB,eAAK,IAAM,MAASyD,MAD/Ild,KAC0JkpB,IAAS,MAAI,qBAAwB,IAAM,gBAAgB/nB,QAGhO21H,EAAaruH,UAAUoyE,gBAAkB,WACvC,IAAIk8C,EAAK/2H,KACT,OAAI+2H,EAAGt9G,OAAOohE,gBAA0Bk8C,EAAGt9G,OAAOohE,gBAAgB30E,KAAK6wH,IAClD,wKAAmLA,EAAGt9G,OAAOqhE,qBAAuB,SAAW,kBAAuBi8C,EAAGt9G,OAA2B,qBAAI,uIAA8Is9G,EAAGt9G,OAAOo+D,uBAA0B,sDAA2Dk/C,EAAGt9G,OAA2B,qBAAI,sBAAyB,IAAM,yCAAyCtY,QAItoB21H,EAAaruH,UAAU+xD,WAAa,SAAqBC,EAAM9zD,GAE7D,GADS3G,KACFyZ,OAAO+gD,WAAc,OADnBx6D,KAC6ByZ,OAAO+gD,WAAWt0D,KAD/ClG,KACwDy6D,EAAM9zD,GAEvE,IAAI+wH,EAAYj9D,EAAK/rD,OAA+B,iBAAf+rD,EAAK/rD,MAAqB+rD,EAAK/rD,MAAM7N,QAAQ,KAAM,UAAY45D,EAAK/rD,MAUzG,OATyB,aAJhB1O,KAIFyZ,OAAOw/D,OACD,gDAAoDxe,EAAc,UAAI,6CAAkDA,EAAc,UAAI,WAAgBA,EAAc,UAAI,YAAgBi9D,EAAY,MAASj9D,EAAK7qD,SAAW,UAAY,IAAM,sCAA0C6qD,EAAc,UAAI,uFAA+FA,EAAS,KAAI,wEAC5ZA,EAAK06B,YAKJ,iLAA4L16B,EAAS,KAAI,wEAHzM,gFAAqFi9D,EAAY,mFAA2Fj9D,EAAS,KAAI,yEAKtMt5D,QAGlB21H,EAAaruH,UAAU8rH,aAAe,WACpC,IAAIwC,EAAK/2H,KACT,GAAI+2H,EAAGt9G,OAAO86G,aAAgB,OAAOwC,EAAGt9G,OAAO86G,aAAaruH,KAAK6wH,GACjE,IAAIx7C,EAAYw7C,EAAGt9G,OAAO8hE,eACD,IAAdA,GAA6Bw7C,EAAGC,WAAaD,EAAGC,UAAU11H,SACnEi6E,EAAYw7C,EAAGC,UAAU//G,KAAK,eAAepC,OAAO1T,QAEtD,IAAI44H,EAA+B,UAArBhD,EAAGt9G,OAAOw/D,OACpB+gD,EAAaD,EACZ,cAAgBhD,EAAGt9G,OAAOuwC,UAAa,2CAAgD+sE,EAAG8C,kBAAqB,6BAAgC,IAAM,WACrJ,0JAAqK9C,EAAGt9G,OAAuB,iBAAI,kDACpMwgH,EAAcF,EACb,uHAAgIhD,EAAGt9G,OAAyB,mBAAI,2CAChK,cAAgBs9G,EAAGt9G,OAAOuwC,UAAa,4CAAiD+sE,EAAG8C,kBAAqB,6BAAgC,IAAM,WAE3J,OADkB,+BAAkC9C,EAAGt9G,OAAOgiE,iBAAoB,SAAYs7C,EAAGt9G,OAAuB,iBAAK,IAAM,gFAAsFs9G,EAAGt9G,OAAOgiE,iBAAoB,SAAYs7C,EAAGt9G,OAAuB,iBAAK,IAAM,iBAAoBugH,EAAa,gBAAkBz+C,EAAa,8BAAkCA,EAAY,SAAY,IAAM,eAAiB0+C,EAAc,8CAAmDlD,EAAGl8C,kBAAqB,8CAA8C15E,QAIlkB21H,EAAaruH,UAAUyxH,eAAiB,WACtC,IAAInD,EAAK/2H,KACT,OAAI+2H,EAAGt9G,OAAOygH,eAAyBnD,EAAGt9G,OAAOygH,eAAeh0H,KAAK6wH,EAAIA,EAAGr8D,QACxD,+HAAuIq8D,EAAGt9G,OAAOggH,YAAgC,GAAlB,iBAAwB,yEAA4E1C,EAAGt9G,OAAOuwC,UAAY+sE,EAAG8C,kBAAoB,IAAM,wBAAwB14H,QAIpW21H,EAAaruH,UAAU6yE,WAAa,SAAqBy+C,GACvD,IAAIhD,EAAK/2H,KACT,OAAI+2H,EAAGt9G,OAAO6hE,WAAqBy7C,EAAGt9G,OAAO6hE,WAAWp1E,KAAK6wH,EAAIA,EAAGr8D,QAEpD,2GAAkHq8D,EAAGxC,aAAawF,GAAY,2KAAmLhD,EAAK,GAAI,KAAOA,EAAGt9G,OAAOkiE,eAAkB,SAAYo7C,EAAGt9G,OAAqB,eAAK,IAAM,8MAA0Ns9G,EAAGt9G,OAAmB,aAAI,yLAA2LtY,QAI71B21H,EAAaruH,UAAUmzE,YAAc,WACnC,IAAIm7C,EAAK/2H,KACT,OAAI+2H,EAAGt9G,OAAOmiE,YAAsBm7C,EAAGt9G,OAAOmiE,YAAY11E,KAAK6wH,EAAIA,EAAGr8D,QACrD,yFAAgGq8D,EAAGz7C,YAAW,GAAS,yCAAyCn6E,QAInL21H,EAAaruH,UAAUg9C,OAAS,SAAiBpjD,EAAM6M,GACrD,IAAI6nH,EAAK/2H,KACLkpB,EAAM6tG,EAAG7tG,IACTI,EAAM7c,EAAEyC,GAMZ,GALA6nH,EAAGztG,IAAMA,EACTytG,EAAG7nH,GAAKoa,EAAI,GACZytG,EAAG56C,SAAW95E,EACd00H,EAAGvxE,QAAS,EAEa,aAArBuxE,EAAGt9G,OAAOw/D,OACZ89C,EAAG4B,uBAEH5B,EAAGK,YAAYvpH,SAAS,4BACxBkpH,EAAG3rD,SAAS/4D,QAAQ,aACf,CAEL,IAAIgqE,EAAe/yD,EAAIrS,KAAK,cACH,SAArB8/G,EAAGt9G,OAAOw/D,QAAmC,QAAd/vD,EAAI/C,OAA2C,IAAxBk2D,EAAa/6E,SACrE+6E,EAAe5vE,EAAEyc,EAAIme,OAAOC,YAAYhe,IAAMrS,KAAK,eAErD8/G,EAAGr7C,UAAYxyD,EAAIwyD,UAAUv0D,OAAO,CAClCjY,GAAImtE,EACJ31B,WAAYp9B,EAAIrS,KAAK,uBACrBwjF,cAAc,EACdnqF,GAAI,CACFjF,OAAQ,SAAgBwuF,EAAIv7E,GACL,IAAjBA,EAAMhd,QAAgBy1H,EAAGr7C,UAAU//B,QACrCo7E,EAAGr7C,UAAUqgB,eAEbg7B,EAAGr7C,UAAUwgB,eAEf66B,EAAG38F,OAAO9b,OAMhBy4G,EAAG8B,mBAGH9B,EAAGmB,eAGCnB,EAAGt9G,OAAO0gH,qBAAuBpD,EAAG38F,OAAO,IAGjD28F,EAAGpwG,KAAK,+BAAgCowG,IAG1CD,EAAaruH,UAAU2gD,UAAY,WAKjC,OAJSppD,KACF07E,WADE17E,KACc07E,UAAUtQ,UADxBprE,KAEJ07E,UAAUtQ,SAAS9vD,QAFftb,MAOX82H,EAAaruH,UAAUi9C,SAAW,WAChC,IAAIqxE,EAAK/2H,KACgB,aAArB+2H,EAAGt9G,OAAOw/D,QAAyB89C,EAAGt9G,OAAO2vC,WAC/C2tE,EAAG3tE,YAEL2tE,EAAGpwG,KAAK,mCAAoCowG,IAG9CD,EAAaruH,UAAUk9C,QAAU,WAC/B,IAAIoxE,EAAK/2H,KACL+2H,EAAGpwE,YAGHowE,EAAGr7C,WAAaq7C,EAAGr7C,UAAUnyD,UAC/BwtG,EAAGr7C,UAAUnyD,UACbwtG,EAAGr7C,UAAY,YACRq7C,EAAGr7C,WAGa,aAArBq7C,EAAGt9G,OAAOw/D,QACZ89C,EAAG6B,uBACH7B,EAAGK,YAAYlpH,YAAY,4BAA4BC,SACvD4oH,EAAG3rD,SAAS/mE,QAAQ,mCAAmC6J,YAAY,mCAEnE6oH,EAAG+B,mBAGL/B,EAAGpwG,KAAK,iCAAkCowG,KAG5CD,EAAaruH,UAAUm9C,SAAW,WAChC,IAAImxE,EAAK/2H,KACL+2H,EAAGpwE,YACPowE,EAAGvxE,QAAS,EACZuxE,EAAGztG,IAAM,KACTytG,EAAG7nH,GAAK,YACD6nH,EAAGztG,WACHytG,EAAG7nH,GAEV6nH,EAAGpwG,KAAK,mCAAoCowG,KAG9CD,EAAaruH,UAAUk0E,SAAW,WAChC,IAAIo6C,EAAK/2H,KACT,GAAI+2H,EAAGvxE,OAAU,OAAOuxE,EACxB,IAAIn6C,EAAWm6C,EAAGz7C,aAyBlB,OAxBAy7C,EAAG16F,KAAKnO,OAAO4N,SAAS,CACtB1d,IAAK24G,EAAG34G,IACR0c,MAAO,CACLx4B,QAASs6E,EACThkD,KAAMm+F,EAAG34G,IACT9N,GAAI,CACFwyC,aAAc,SAAsBjyC,EAAG4kC,GACrCshF,EAAGtxE,OAAO,OAAQhQ,EAAKvmC,KAEzBm8B,YAAa,SAAqBx6B,EAAG4kC,GACnCshF,EAAGrxE,SAAS,OAAQjQ,EAAKvmC,KAE3B2tE,cAAe,SAAuBhsE,EAAG4kC,GACvCshF,EAAGpxE,QAAQ,OAAQlQ,EAAKvmC,KAE1B4tE,aAAc,SAAsBjsE,EAAG4kC,GACrCshF,EAAGnxE,SAAS,OAAQnQ,EAAKvmC,MAG7B5J,QAAS,CACP8T,QAAS29G,EAAGt9G,OAAOL,YAIlB29G,GAGTD,EAAaruH,UAAUs0E,UAAY,WACjC,IAAIg6C,EAAK/2H,KACT,GAAI+2H,EAAGvxE,OAAU,OAAOuxE,EACxB,IAEI/5C,EAAc,CAChB16E,QAHcy0H,EAAGn7C,cAIjBxiE,QAAS29G,EAAGt9G,OAAOL,QACnB1X,KAAMq1H,EAAGt9G,OAAOwjE,UAChBzxB,aAAcurE,EAAGt9G,OAAOyjE,kBACxB5sE,GAAI,CACF6sE,UAAW,SAAmB9yB,GAC5B0sE,EAAGtxE,OAAO,QAAS4E,EAAMn7C,KAE3BkuE,YAAa,SAAqB/yB,GAChC0sE,EAAGrxE,SAAS,QAAS2E,EAAMn7C,KAE7BmuE,WAAY,SAAoBhzB,GAC9B0sE,EAAGpxE,QAAQ,QAAS0E,EAAMn7C,KAE5BouE,YAAa,SAAqBjzB,GAChC0sE,EAAGnxE,SAAS,QAASyE,EAAMn7C,OAgBjC,OAXI6nH,EAAGt9G,OAAO8jE,gBAAkBw5C,EAAG16F,KACjC06F,EAAG16F,KAAKnO,OAAO4N,SAAS,CACtB1d,IAAK24G,EAAG34G,IACR0c,MAAO,CACLlC,KAAMm+F,EAAG34G,IACTisC,MAAO2yB,KAIX+5C,EAAGtxF,MAAQsxF,EAAG7tG,IAAImhC,MAAMljC,OAAO61D,GAAavzD,KAAKstG,EAAGt9G,OAAOL,SAEtD29G,GAGTD,EAAaruH,UAAU2xH,aAAe,WACpC,IAAIrD,EAAK/2H,KAEJ+2H,EAAGK,cACNL,EAAGK,YAAc3qH,EAAEsqH,EAAGmD,mBAEVnD,EAAG3rD,SAAS/mE,QAAQ,SACtB/C,QAAUy1H,EAAG3rD,SAAS/mE,QAAQ,iBAAiB/C,OAAS,GAAKy1H,EAAGt9G,OAAOggH,aACjF1C,EAAG3rD,SAAS/mE,QAAQ,iBAAiBwJ,SAAS,kCAGhD,IAAI01C,EAAiBwzE,EAAG3rD,SAAS/mE,QAAQ,iBACrC0yH,EAAGt9G,OAAO4gH,oBACZ5tH,EAAEsqH,EAAGt9G,OAAO4gH,qBAAqB9kH,OAAOwhH,EAAGK,aACR,IAA1B7zE,EAAejiD,OACxBy1H,EAAGK,YAAYhhH,YAAY2gH,EAAG3rD,WAE9B2rD,EAAGqB,mBACH70E,EAAehuC,OAAOwhH,EAAGK,cAE3BL,EAAGtxE,OAAO,WAAYsxE,EAAGK,aACzBL,EAAGrxE,SAAS,WAAYqxE,EAAGK,cAG7BN,EAAaruH,UAAUghB,KAAO,WAC5B,IAAIstG,EAAK/2H,KACT,OAAI+2H,EAAGvxE,QAEPuxE,EAAI,OADSA,EAAGt9G,OAAOw/D,OACF73E,MAAM,IAAIuT,KAAI,SAAUzF,EAAIvI,GAC/C,OAAc,IAAVA,EAAsBuI,EAAG5B,cACtB4B,KACN/K,KAAK,OALgB4yH,GAS1BD,EAAaruH,UAAUshB,MAAQ,WAC7B,IAAIgtG,EAAK/2H,KACT,OAAK+2H,EAAGvxE,QACiB,aAArBuxE,EAAGt9G,OAAOw/D,QACZ89C,EAAGpxE,UACHoxE,EAAGnxE,YACOmxE,EAAGt9G,OAAO8jE,gBAAkBw5C,EAAG16F,MAAyB,SAAhB06F,EAAG56C,SACrD46C,EAAG16F,KAAKnO,OAAOpiB,KAAK,CAAEsN,QAAS29G,EAAGt9G,OAAOL,WAEzC29G,EAAGtxF,MAAMzzB,KAAK,eAAe,WAC3BkL,MAAMW,UAAS,WACTk5G,EAAGpwE,YACPowE,EAAGtxF,MAAMlc,iBACFwtG,EAAGtxF,aAGdsxF,EAAGtxF,MAAM1b,SAEJgtG,GAhBkBA,GAmB3BD,EAAaruH,UAAU8jB,KAAO,WACnBvsB,KACN61C,gBAGLihF,EAAaruH,UAAU8gB,QAAU,WAC/B,IAAIwtG,EAAK/2H,KACT+2H,EAAGpwG,KAAK,iDAAkDowG,GAC1DA,EAAG56D,eACC46D,EAAG3rD,UAAY2rD,EAAG3rD,SAAS,WACtB2rD,EAAG3rD,SAAS,GAAG+rD,eAEpBJ,EAAGC,WAAaD,EAAGC,UAAU,WACxBD,EAAGC,UAAU,GAAGG,eAEzBj6G,MAAMU,YAAYm5G,GAClBA,EAAGpwE,WAAY,GAGjBziD,OAAOiF,iBAAkB2tH,EAAaruH,UAAWilB,GAE1CopG,EA5wBuB,CA6wB9B7vG,iBAEEqzG,eAAiB,CACnB91H,KAAM,eACNiV,OAAQ,CACNw9G,aAAc,CACZC,cAAU/2H,EACVgrE,aAAShrE,EACTk8B,UAAMl8B,EAGNk6H,yBAAqBl6H,EACrB03H,6BAAyB13H,EACzB23H,WAAW,EACXL,kBAAkB,EAClBgC,aAAa,EACbf,0BAA0B,EAC1B5+B,YAAa,QAEbprF,WAAOvO,EACPwP,UAAU,EAEVyqB,YAAQj6B,EACRq3H,WAAOr3H,EACPw3H,cAAe,KACfC,aAAc,OAEd3+C,OAAQ,OACRsF,iBAAkB,OAClBC,mBAAoB,QACpBjD,eAAWp7E,EACXu+E,qBAAsB,YACtBC,qBAAsB,SACtB9G,4BAAwB13E,EACxB26E,qBAAqB,EAErBmC,WAAW,EACXC,uBAAmB/8E,EAEnBiZ,SAAS,EAETgwC,WAAW,EACXsvB,eAAe,EACf6hD,aAAc,gBACdJ,qBAAqB,EAGrBL,oBAAgB35H,EAChB6pD,WAAW,EAGX2xB,oBAAgBx7E,EAChBs7E,sBAAkBt7E,EAGlBo9E,gBAAgB,EAChBn/D,IAAK,UAGL87G,oBAAgB/5H,EAChBm7E,gBAAYn7E,EACZy7E,iBAAaz7E,EACbq6D,gBAAYr6D,EACZ06E,qBAAiB16E,EACjBo0H,kBAAcp0H,IAIlBwoB,OAAQ,CACNmuG,aAAcA,cAEhB3vG,OAAQ,WACN,IAAI+B,EAAMlpB,KACVkpB,EAAI+tG,aAAe/5G,MAAM5U,OACvBugB,mBAAmB,CACjBE,qBAAiB5oB,EACjB8D,YAAa6yH,aACb5tG,IAAKA,EACLD,QAAS,mBAEX,CACEQ,KAAM,SAAc+wG,GAClB,IAAIzD,EAAK7tG,EAAI+tG,aAAa/tH,IAAIsxH,GAC9B,GAAIzD,GAAMA,EAAGttG,KAAQ,OAAOstG,EAAGttG,QAGjCM,MAAO,SAAeywG,GACpB,IAAIzD,EAAK7tG,EAAI+tG,aAAa/tH,IAAIsxH,GAC9B,GAAIzD,GAAMA,EAAGhtG,MAAS,OAAOgtG,EAAGhtG,aAQtC0wG,QAAwB,SAAUxzG,GACpC,SAASwzG,EAAQvxG,EAAKzP,QACJ,IAAXA,IAAoBA,EAAS,IAElCwN,EAAgB/gB,KAAKlG,KAAMyZ,EAAQ,CAACyP,IAEpC,IAAIwxG,EAAU16H,KAEVksB,EAAWhP,MAAM5U,OAAO,GAAI4gB,EAAIzP,OAAOihH,SAG3CA,EAAQjzG,iBAAiByE,GAEzBwuG,EAAQjhH,OAASyD,MAAM5U,OAAO4jB,EAAUzS,QACX,IAAlBA,EAAO9F,QAA0B0P,QAAQC,OAAoC,UAA3Bo3G,EAAQjhH,OAAOpH,UAC1EqoH,EAAQjhH,OAAO9F,OAAS,IAG1B,IACI+V,EADMgxG,EAAQjhH,OACCiQ,SACnB,IAAKA,EAAY,OAAOgxG,EAExB,IAAIzwG,EAAYxd,EAAEid,GAClB,GAAyB,IAArBO,EAAU3oB,OAAgB,OAAOo5H,EAErC,GAAIzwG,EAAU,GAAG0wG,UAAa,OAAO1wG,EAAU,GAAG0wG,UAElD,IAAIrxG,EAAM7c,EAAEiuH,EAAQ/hH,UAAUtD,GAAG,GAEjC6H,MAAM5U,OAAOoyH,EAAS,CACpBxxG,IAAKA,EACLe,UAAWA,EACXP,SAAUO,GAAaA,EAAU,GACjCX,IAAKA,EACLpa,GAAIoa,GAAOA,EAAI,GACfzU,KAAM6lH,EAAQjhH,OAAO5E,MAAQ,GAC7Bk+C,SAAS,EACTvN,QAAQ,IAGVv7B,EAAU,GAAG0wG,UAAYD,EAEzB,IACIp9F,EADAC,EAAe,GAEnB,SAASwpB,IACH2zE,EAAQl1E,OAAUk1E,EAAQpmH,OACvBomH,EAAQlmH,KAAKxU,MAEtB,SAAS46H,EAAe/pH,GAClB6pH,EAAQl1E,SACV/4C,EAAEoE,EAAEtI,QAAQyO,QAAQiT,GAAW3oB,QAC5BmL,EAAEoE,EAAEtI,QAAQyO,QAAQ0jH,EAAQpxG,KAAKhoB,SAEtCo5H,EAAQpmH,OAEV,SAASoqB,EAAiB7tB,GACpBysB,IACJA,GAAY,EACZC,EAAapb,EAAe,eAAXtR,EAAExO,KAAwBwO,EAAEomB,cAAc,GAAGG,MAAQvmB,EAAEumB,MACxEmG,EAAazI,EAAe,eAAXjkB,EAAExO,KAAwBwO,EAAEomB,cAAc,GAAGI,MAAQxmB,EAAEwmB,MACxEqjG,EAAQlmH,KAAKxU,OAEf,SAAS8+B,EAAgBjuB,GACvB,GAAKysB,EAAL,CACA,IAAInb,EAAe,cAAXtR,EAAExO,KAAuBwO,EAAEomB,cAAc,GAAGG,MAAQvmB,EAAEumB,MAC1DtC,EAAe,cAAXjkB,EAAExO,KAAuBwO,EAAEomB,cAAc,GAAGI,MAAQxmB,EAAEwmB,MAC/C/e,KAAKuoB,IACjBvoB,KAAKuoB,IAAM1e,EAAIob,EAAapb,EAAI,GAC9B7J,KAAKuoB,IAAM/L,EAAIyI,EAAazI,EAAI,GAClC,IACY,KACbwI,GAAY,EACZo9F,EAAQpmH,SAGZ,SAAS4tB,IACF5E,IACLA,GAAY,EACZo9F,EAAQpmH,QAEV,SAASypG,IACP2c,EAAQlmH,KAAKxU,MAEf,SAASi+G,IACPyc,EAAQpmH,OAEV,SAASumH,IACFvxG,EAAIlb,SAAS,eAChBkb,EAAIpb,YAAY,eAAeC,SA4CnC,OAxCAusH,EAAQ7kF,aAAe,WAErB,GADAvsB,EAAIhZ,GAAG,gBAAiBuqH,GACO,UAA3BH,EAAQjhH,OAAOpH,QAGjB,OAFA4X,EAAU3Z,GAAG,QAASy2C,QACtBt6C,EAAE,QAAQ6D,GAAG,QAASsqH,GAGxB,GAAIv3G,QAAQC,MAAO,CACjB,IAAI4S,IAAU7S,QAAQO,iBAAkB,CAAEsS,SAAS,GACnDjM,EAAU3Z,GAAG4Y,EAAIoN,YAAYC,MAAOmI,EAAkBxI,GACtDhN,EAAI5Y,GAAG,YAAawuB,GACpB5V,EAAI5Y,GAAG,mBAAoB4xB,QAE3BjY,EAAU3Z,GAAI+S,QAAQG,cAAgB,eAAiB,aAAeu6F,GACtE9zF,EAAU3Z,GAAI+S,QAAQG,cAAgB,eAAiB,aAAey6F,IAG1Eyc,EAAQv+D,aAAe,WAErB,GADA7yC,EAAI3X,IAAI,gBAAiBkpH,GACM,UAA3BH,EAAQjhH,OAAOpH,QAGjB,OAFA4X,EAAUtY,IAAI,QAASo1C,QACvBt6C,EAAE,QAAQkF,IAAI,QAASipH,GAGzB,GAAIv3G,QAAQC,MAAO,CACjB,IAAI4S,IAAU7S,QAAQO,iBAAkB,CAAEsS,SAAS,GACnDjM,EAAUtY,IAAIuX,EAAIoN,YAAYC,MAAOmI,EAAkBxI,GACvDhN,EAAIvX,IAAI,YAAamtB,GACrB5V,EAAIvX,IAAI,mBAAoBuwB,QAE5BjY,EAAUtY,IAAK0R,QAAQG,cAAgB,eAAiB,aAAeu6F,GACvE9zF,EAAUtY,IAAK0R,QAAQG,cAAgB,eAAiB,aAAey6F,IAK3Eyc,EAAQryG,aAERqyG,EAAQnuG,OAEDmuG,EAgKT,OA7JKzzG,IAAkBwzG,EAAQvzG,UAAYD,GAC3CwzG,EAAQhyH,UAAYvE,OAAOijB,OAAQF,GAAmBA,EAAgBxe,WACtEgyH,EAAQhyH,UAAUxE,YAAcw2H,EAEhCA,EAAQhyH,UAAUy+B,SAAW,SAAmBxd,GAC9C,IACIJ,EADUtpB,KACIspB,IACdJ,EAFUlpB,KAEIkpB,IACd4xG,EAHU96H,KAGcyZ,OAAO9F,QAAU,EAC7C2V,EAAIpW,IAAI,CAAEmB,KAAM,GAAID,IAAK,KACzB,IAOI64C,EACAC,EACAC,EACAC,EAVAnjC,EAAYxd,EAAEid,GALJ1pB,KAKwB0pB,UAClC3O,EAAM,CAACuO,EAAItW,QAASsW,EAAI/V,UACxBP,EAAQ+H,EAAI,GACZxH,EAASwH,EAAI,GAQjB,GANAuO,EAAIpW,IAAI,CAAEmB,KAAM,GAAID,IAAK,KAMrB6V,GAAaA,EAAU3oB,OAAS,EAAG,CAGrC,GAFA2rD,EAAchjC,EAAU9W,aACxB+5C,EAAejjC,EAAUxW,mBACE,IAAhBw5C,QAAuD,IAAjBC,EAA8B,CAC7E,IAAI6tE,EAAa9wG,EAAU,GAAGpW,wBAC9Bo5C,EAAc8tE,EAAW/nH,MACzBk6C,EAAe6tE,EAAWxnH,OAG5B,IAAIi6C,EAAevjC,EAAUtW,SAC7Bw5C,EAAmBK,EAAan5C,KAAO6U,EAAI7U,KAC3C+4C,EAAkBI,EAAap5C,IAAM8U,EAAI9U,IAEzC,IAAIq5C,EAAmBxjC,EAAU5lB,QAAQ,SACrCopD,EAAiBnsD,OAAS,IAC5B8rD,GAAmBK,EAAiB,GAAGz5C,WAG3C,IAAIq5C,EAAQ,CAAC,EAAG,EAAG,GACfh5C,EAAOg5C,EAAM,GACbj5C,EAAMi5C,EAAM,GAGZnmB,EAAW,MAEX3zB,EAASunH,EAAgB1tE,EAE3Bh5C,EAAMg5C,EAAkB75C,EAASunH,EACxBvnH,EAAS2V,EAAI3V,OAAS65C,EAAkBF,GAEjDhmB,EAAW,SACX9yB,EAAMg5C,EAAkBF,EAAe4tE,IAGvC5zF,EAAW,UACX9yB,EAAQ84C,EAAe,EAAKE,EAAoB75C,EAAS,IAC9C,EACTa,EAAM,EACGA,EAAMb,GAAU2V,EAAI3V,SAC7Ba,EAAM8U,EAAI3V,OAASA,EAAS,IAKf,QAAb2zB,GAAmC,WAAbA,IACxB7yB,EAAS44C,EAAc,EAAKE,EAAqBn6C,EAAQ,GAC9C,IAAKqB,EAAO,GACnBA,EAAOrB,EAAQkW,EAAIlW,QAASqB,EAAO6U,EAAIlW,MAAQA,EAAQ,GACvDqB,EAAO,IAAKA,EAAO,IACD,WAAb6yB,KACT7yB,EAAO84C,EAAmBn6C,GACf,GAAMqB,EAAOrB,EAAQkW,EAAIlW,SAC9BqB,EAAO,IAAKA,EAAO84C,EAAmBF,GACtC54C,EAAOrB,EAAQkW,EAAIlW,QAASqB,EAAO6U,EAAIlW,MAAQA,EAAQ,IAK/DsW,EAAIpW,IAAI,CAAEkB,IAAMA,EAAM,KAAOC,KAAOA,EAAO,QAG7ComH,EAAQhyH,UAAU+L,KAAO,SAAewmH,GACtC,IACI9xG,EADUlpB,KACIkpB,IACdI,EAFUtpB,KAEIspB,IACdW,EAHUjqB,KAGUiqB,UACxBf,EAAIpjB,KAAKyP,OAAO+T,GAJFtpB,KAKNknC,SAAS8zF,GACjB,IAAIC,EAAYxuH,EAAEuuH,GAUlB,OAhBch7H,KAON+yD,SAAU,EAPJ/yD,KAQNwlD,QAAS,EACjBv7B,EAAU5X,QAAQ,gBAClBiX,EAAIjX,QAAQ,gBACR4oH,EAAU35H,QAAU25H,EAAU,KAAOhxG,EAAU,IACjDgxG,EAAU5oH,QAAQ,gBAZNrS,KAcN2mB,KAAK,0BAdC3mB,MAedspB,EAAIpb,YAAY,eAAeL,SAAS,cAf1B7N,MAmBhBy6H,EAAQhyH,UAAU6L,KAAO,WACvB,IACIgV,EADUtpB,KACIspB,IACdW,EAFUjqB,KAEUiqB,UAOxB,OATcjqB,KAGN+yD,SAAU,EAHJ/yD,KAINwlD,QAAS,EACjBv7B,EAAU5X,QAAQ,gBAClBiX,EAAIjX,QAAQ,gBANErS,KAON2mB,KAAK,0BAPC3mB,MAQdspB,EAAIzb,SAAS,eAAeK,YAAY,cAR1BlO,MAYhBy6H,EAAQhyH,UAAUkQ,OAAS,WAEzB,GADc3Y,KACFyZ,OAAOd,OAAU,OADf3Y,KAC8ByZ,OAAOd,OAAOzS,KAD5ClG,KAAAA,MAEd,IAAI+a,EAFU/a,KAEIyZ,OAGlB,OAAQ,gCAFOsB,EAAIusC,UAEoC,IAAM,6CADlDvsC,EAAIlG,MACwG,IAAM,8BAA8B1T,QAG7Js5H,EAAQhyH,UAAU4/C,QAAU,SAAkBC,GAE5C,YAAuB,IAAZA,IADGtoD,KAINyZ,OAAO5E,KAAOyzC,EAJRtoD,KAKN6U,KAAOyzC,EALDtoD,KAMFspB,KANEtpB,KAOJspB,IAAI/e,SAAS,oBAAoBsC,KAAKy7C,GAPlCtoD,KASFwlD,QATExlD,KAUJknC,YAVIlnC,MAehBy6H,EAAQhyH,UAAU8jB,KAAO,WACTvsB,KACN61C,gBAGV4kF,EAAQhyH,UAAU8gB,QAAU,WACZvpB,KACDiqB,YADCjqB,KACoB2mD,YADpB3mD,KAENiqB,UAAU5X,QAAQ,yBAFZrS,KAGN2mB,KAAK,4CAHC3mB,MAAAA,KAINspB,IAAInb,gBAJEnO,KAKCiqB,UAAU,GAAG0wG,UALd36H,KAMNm8D,eACRj/C,MAAMU,YAPQ5d,MAAAA,KAQN2mD,WAAY,IAGf8zE,EApSkB,CAqSzBxzG,iBAEEi0G,UAAY,CACd12H,KAAM,UACNmkB,OAAQ,CACN8xG,QAASA,SAEXtzG,OAAQ,WACInnB,KACN06H,QAAU7xG,mBAAmB,CAC/BE,gBAAiB,WACjB9kB,YAAaw2H,QACbvxG,IAJQlpB,KAKRipB,QAAS,cALDjpB,KAON06H,QAAQlmH,KAAO,SAActF,GAC/B,IAAIoa,EAAM7c,EAAEyC,GACZ,GAAmB,IAAfoa,EAAIhoB,OAAR,CACA,IAAIo5H,EAAUpxG,EAAI,GAAGqxG,UACrB,GAAKD,EAEL,OADAA,EAAQlmH,KAAK8U,EAAI,IACVoxG,IAbC16H,KAeN06H,QAAQpmH,KAAO,SAAcpF,GAC/B,IAAIoa,EAAM7c,EAAEyC,GACZ,GAAmB,IAAfoa,EAAIhoB,OAAR,CACA,IAAIo5H,EAAUpxG,EAAI,GAAGqxG,UACrB,GAAKD,EAEL,OADAA,EAAQpmH,OACDomH,IArBC16H,KAuBN06H,QAAQryE,QAAU,SAAcn5C,EAAIo5C,GACtC,IAAIh/B,EAAM7c,EAAEyC,GACZ,GAAmB,IAAfoa,EAAIhoB,OAAR,CACA,IAAIo5H,EAAUpxG,EAAI,GAAGqxG,UACrB,GAAKD,EAEL,OADAA,EAAQryE,QAAQC,GACToyE,KAGXjhH,OAAQ,CACNihH,QAAS,CACPhxG,SAAU,KACV7U,KAAM,KACNyyC,SAAU,KACV3uC,OAAQ,KACRhF,OAAQ,EACRtB,QAAS,UAGb/B,GAAI,CACFgjD,WAAY,SAAoB9nB,GAC9B,IAAItiB,EAAMlpB,KACVyM,EAAE++B,GAAOv0B,KAAK,iBAAiB3Q,MAAK,SAAUK,EAAOuI,GACnD,IAAI2F,EAAOpI,EAAEyC,GAAIV,KAAK,gBACjBqG,GACLqU,EAAIwxG,QAAQvzG,OAAO,CAAEuC,SAAUxa,EAAI2F,KAAMA,QAG7CosD,gBAAiB,SAAyBz1B,GACxC/+B,EAAE++B,GAAOv0B,KAAK,iBAAiB3Q,MAAK,SAAUK,EAAOuI,GAC/CA,EAAGyrH,WAAazrH,EAAGyrH,UAAUpxG,cAGrCy5B,SAAU,SAAkBvN,GAC1B,IAAIvsB,EAAMlpB,KACVy1C,EAAKnsB,IAAIrS,KAAK,iBAAiB3Q,MAAK,SAAUK,EAAOuI,GACnD,IAAI2F,EAAOpI,EAAEyC,GAAIV,KAAK,gBACjBqG,GACLqU,EAAIwxG,QAAQvzG,OAAO,CAAEuC,SAAUxa,EAAI2F,KAAMA,OAEzB,QAAdqU,EAAI/C,OAAmBsvB,EAAKpZ,MAAQoZ,EAAKpZ,KAAKnO,OAAO+O,eAAiBwY,EAAKlP,WAAakP,EAAKlP,UAAUjlC,OAAS,GAClHm0C,EAAKlP,UAAUtvB,KAAK,iBAAiB3Q,MAAK,SAAUK,EAAOuI,GACzD,IAAI2F,EAAOpI,EAAEyC,GAAIV,KAAK,gBACjBqG,GACLqU,EAAIwxG,QAAQvzG,OAAO,CAAEuC,SAAUxa,EAAI2F,KAAMA,QAI/CguC,iBAAkB,SAA0BpN,GAE1CA,EAAKnsB,IAAIrS,KAAK,iBAAiB3Q,MAAK,SAAUK,EAAOuI,GAC/CA,EAAGyrH,WAAazrH,EAAGyrH,UAAUpxG,aAEjB,QAJRvpB,KAIFmmB,OAAmBsvB,EAAKpZ,MAAQoZ,EAAKpZ,KAAKnO,OAAO+O,eAAiBwY,EAAKlP,WAAakP,EAAKlP,UAAUjlC,OAAS,GAClHm0C,EAAKlP,UAAUtvB,KAAK,iBAAiB3Q,MAAK,SAAUK,EAAOuI,GACrDA,EAAGyrH,WAAazrH,EAAGyrH,UAAUpxG,eAKzCtB,MAAO,CACLkzG,eAAgB,CACdr9E,OAAQ,SAAgB71B,GACtB,IACI/Y,EAAK+Y,EAAM81B,IACXlpC,EAAOpI,EAAEyC,GAAIV,KAAK,gBACjBqG,GAHK7U,KAIN06H,QAAQvzG,OAAO,CAAEuC,SAAUxa,EAAI2F,KAAMA,KAE3Ci/C,OAAQ,SAAgB7rC,GACtB,IAAI/Y,EAAK+Y,EAAM81B,IACV7uC,EAAGyrH,WACJ1yG,GAASA,EAAMvjB,MAAQujB,EAAMvjB,KAAK+J,OAASwZ,EAAMvjB,KAAK+J,MAAM,iBAC9DS,EAAGyrH,UAAUtyE,QAAQpgC,EAAMvjB,KAAK+J,MAAM,kBAG1C8a,QAAS,SAAiBtB,GACxB,IAAI/Y,EAAK+Y,EAAM81B,IACX7uC,EAAGyrH,WAAazrH,EAAGyrH,UAAUpxG,cAQrC6xG,MAAsB,SAAUn0G,GAClC,SAASm0G,EAAMlyG,EAAKzP,QACF,IAAXA,IAAoBA,EAAS,IAGlCwN,EAAgB/gB,KAAKlG,KAAMyZ,EAAQ,CAACyP,IAEpC,IAEIgD,EAAWhP,MAAM5U,OAAO,GAAI4gB,EAAIzP,OAAO4hH,OAF/Br7H,KAKNynB,iBAAiByE,GALXlsB,KAONyZ,OAASyD,MAAM5U,OAAO4jB,EAAUzS,GAEtC,IACIvK,EAVQlP,KASIyZ,OACHvK,GACb,IAAKA,EAAM,OAXClP,KAaZ,IAAIspB,EAAM7c,EAAEyC,GACZ,OAAmB,IAAfoa,EAAIhoB,OAdItB,KAgBRspB,EAAI,GAAGgyG,QAAkBhyG,EAAI,GAAGgyG,SAEpCp+G,MAAM5U,OAlBMtI,KAkBQ,CAClBkpB,IAAKA,EACLI,IAAKA,EACLpa,GAAIoa,GAAOA,EAAI,KAGjBA,EAAI,GAAGgyG,QAxBKt7H,KAAAA,KA2BNqoB,aA3BMroB,KA6BNusB,OA7BMvsB,MAmPd,OAjNKinB,IAAkBm0G,EAAMl0G,UAAYD,GACzCm0G,EAAM3yH,UAAYvE,OAAOijB,OAAQF,GAAmBA,EAAgBxe,WACpE2yH,EAAM3yH,UAAUxE,YAAcm3H,EAE9BA,EAAM3yH,UAAU8yH,WAAa,WAC3B,IACIxgH,EADQ/a,KACIyZ,OAGhB,OAFWsB,EAAIkjC,KAEA,EADGljC,EAAIygH,YACa,GAGrCJ,EAAM3yH,UAAUgzH,iBAAmB,WACjC,IACIC,EADQ17H,KACOu7H,aACnB,OAAO,EAAIjjH,KAAKY,GAAKwiH,GAGvBN,EAAM3yH,UAAUkQ,OAAS,WAEvB,GADY3Y,KACFyZ,OAAOd,OAAU,OADf3Y,KAC4ByZ,OAAOd,OAAOzS,KAD1ClG,KAAAA,MAGZ,IAAI+a,EAHQ/a,KAGIyZ,OACZpX,EAAO0Y,EAAI1Y,KACXqM,EAAQqM,EAAIrM,MACZuvC,EAAOljC,EAAIkjC,KACX09E,EAAU5gH,EAAI4gH,QACdC,EAAgB7gH,EAAI6gH,cACpBC,EAAc9gH,EAAI8gH,YAClBL,EAAczgH,EAAIygH,YAClBM,EAAY/gH,EAAI+gH,UAChBC,EAAiBhhH,EAAIghH,eACrBC,EAAgBjhH,EAAIihH,cACpBC,EAAkBlhH,EAAIkhH,gBACtBC,EAAYnhH,EAAImhH,UAChBC,EAAiBphH,EAAIohH,eACrBC,EAAgBrhH,EAAIqhH,cACpBC,EAAkBthH,EAAIshH,gBAEtBC,EAAsB,eAATj6H,EACbq5H,EArBQ17H,KAqBOu7H,aACfj6H,EAtBQtB,KAsBOy7H,mBACf1iH,EAAWT,KAAKC,IAAID,KAAKE,IAAI9J,EAAO,GAAI,GAE5C,OAAQ,yCAA8CuvC,EAAO,gBAAoBq+E,EAAar+E,EAAO,EAAIA,GAAQ,oBAAwBA,EAAO,KAAOq+E,EAAar+E,EAAO,EAAIA,GAAQ,gBAAmBq+E,EAAc,4EAAiFr+E,EAAQu9E,EAAc,GAAM,IAAOv9E,EAAO,EAAK,iBAAmBA,EAAOu9E,GAAe,4BAAgCI,EAAgB,gCAAoCJ,EAAc,yBAA6BG,GAAW,QAAU,4FAAkG19E,EAAQu9E,EAAc,GAAM,IAAOv9E,EAAO,EAAK,iBAAmBA,EAAOu9E,GAAe,4BAAgCK,EAAc,gCAAoCL,EAAc,oCAAyCl6H,EAAS,EAAK,qCAA2CA,EAAS,GAAM,EAAIyX,GAAa,yBAA6B6iH,EAAgB,OAAUD,GAAW,QAAW,4BAAiC,gBAAkBC,EAAiB,yFAA8FA,EAAgB,kCAAsCJ,EAAc,2BAA+BG,GAAW,QAAU,wBAA6B19E,EAAO,EAAK,wBAA6BA,EAAO,EAAK,uBAA2By9E,EAAS,wCAA4C,IAA3Z,kGAA+gBz9E,EAAO,EAAK,IAAOA,EAAO,EAAziB,2BAAmlB49E,EAAc,gCAAoCL,EAAc,oCAAwCl6H,EAAS,qCAA0CA,GAAU,EAAIyX,GAAa,yBAA6B6iH,EAAgB,OAASD,GAAW,QAAU,sBAA2B19E,EAAO,EAAK,sBAA2BA,EAAO,EAAK,qBAAyBy9E,EAAS,qCAAyC,cAAgBI,EAAa,iGAAwGQ,EAAa,OAAS,OAAS,+BAAmCL,EAAkB,6BAAiCD,EAAgB,wBAA4BD,EAAiB,uBAA2BO,EAAcJ,GAAaE,EAAgB,IAAM,EAAK,GAAK,yEAA+EE,GAAc,UAAY,iBAAoBR,EAAY,oBAAuB,IAAM,cAAgBI,EAAa,iGAAwGI,EAAa,OAAS,OAAS,+BAAmCD,EAAkB,6BAAiCD,EAAgB,wBAA4BD,EAAiB,uBAA2BG,GAAc,EAAKR,EAAcE,EAAgB,EAAK,GAAM,GAAM,yEAA+EM,GAAc,UAAY,iBAAoBJ,EAAY,oBAAuB,IAAM,wBAAwB/6H,QAGnpGi6H,EAAM3yH,UAAUqrD,OAAS,SAAiB8jD,QACrB,IAAdA,IAAuBA,EAAY,IAExC,IACIn+F,EADQzZ,KACOyZ,OACf8iH,EAFQv8H,KAEYu8H,YAOxB,GALAr4H,OAAO2B,KAAK+xG,GAAW7zG,SAAQ,SAAUsa,QACP,IAArBu5F,EAAUv5F,KACnB5E,EAAO4E,GAASu5F,EAAUv5F,OAGH,IAAvBk+G,EAAYj7H,OAAgB,OATpBtB,KAWZ,IAAI0O,EAAQ+K,EAAO/K,MACfuvC,EAAOxkC,EAAOwkC,KACd09E,EAAUliH,EAAOkiH,QACjBC,EAAgBniH,EAAOmiH,cACvBC,EAAcpiH,EAAOoiH,YACrBL,EAAc/hH,EAAO+hH,YACrBM,EAAYriH,EAAOqiH,UACnBC,EAAiBtiH,EAAOsiH,eACxBC,EAAgBviH,EAAOuiH,cACvBC,EAAkBxiH,EAAOwiH,gBACzBC,EAAYziH,EAAOyiH,UACnBC,EAAiB1iH,EAAO0iH,eACxBC,EAAgB3iH,EAAO2iH,cACvBC,EAAkB5iH,EAAO4iH,gBAEzB/6H,EA1BQtB,KA0BOy7H,mBACf1iH,EAAWT,KAAKC,IAAID,KAAKE,IAAI9J,EAAO,GAAI,GACxCgtH,EA5BQ17H,KA4BOu7H,aACfe,EAA6B,eAAhB7iH,EAAOpX,KAEpBm6H,EAAW,CACbxpH,MAAQirC,EAAO,KACf1qC,QAAU+oH,EAAar+E,EAAO,EAAIA,GAAQ,KAC1Cw+E,QAAU,OAASx+E,EAAO,KAAOq+E,EAAar+E,EAAO,EAAIA,IAK3D,GAHA/5C,OAAO2B,KAAK22H,GAAUz4H,SAAQ,SAAUyK,GACtC+tH,EAAY/tH,KAAKA,EAAMguH,EAAShuH,OAE9B8tH,EAAY,CACd,IAAII,EAAY,CACd/6G,EAAI,KAAOs8B,EAAQu9E,EAAc,GAAM,IAAOv9E,EAAO,EAAK,iBAAmBA,EAAOu9E,GAAe,KACnGmB,OAAQf,EACRgB,eAAgBpB,EAChBqB,KAAMlB,GAAW,QAEfmB,EAAa,CACfn7G,EAAI,KAAOs8B,EAAQu9E,EAAc,GAAM,IAAOv9E,EAAO,EAAK,iBAAmBA,EAAOu9E,GAAe,KACnGmB,OAAQd,EACRe,eAAgBpB,EAChBuB,mBAAoBz7H,EAAS,EAC7B07H,oBAAsB17H,EAAS,GAAM,EAAIyX,GACzC8jH,KAAMjB,EAAgB,OAAUD,GAAW,QAE7Cz3H,OAAO2B,KAAK62H,GAAW34H,SAAQ,SAAUyK,GACvC+tH,EAAYtlH,KAAK,oBAAoBzI,KAAKA,EAAMkuH,EAAUluH,OAE5DtK,OAAO2B,KAAKi3H,GAAY/4H,SAAQ,SAAUyK,GACxC+tH,EAAYtlH,KAAK,qBAAqBzI,KAAKA,EAAMsuH,EAAWtuH,WAEzD,CACL,IAAIyuH,EAAc,CAChBN,OAAQf,EACRgB,eAAgBpB,EAChBqB,KAAMlB,GAAW,OACjBuB,GAAIj/E,EAAO,EACXk/E,GAAIl/E,EAAO,EACX/8B,EAAGw6G,GAED0B,EAAe,CACjBrtH,UAAY,cAAiBkuC,EAAO,EAAK,IAAOA,EAAO,EAAK,IAC5D0+E,OAAQd,EACRe,eAAgBpB,EAChBuB,mBAAoBz7H,EACpB07H,oBAAqB17H,GAAU,EAAIyX,GACnC8jH,KAAMjB,EAAgB,OAASD,GAAW,OAC1CuB,GAAIj/E,EAAO,EACXk/E,GAAIl/E,EAAO,EACX/8B,EAAGw6G,GAELx3H,OAAO2B,KAAKo3H,GAAal5H,SAAQ,SAAUyK,GACzC+tH,EAAYtlH,KAAK,sBAAsBzI,KAAKA,EAAMyuH,EAAYzuH,OAEhEtK,OAAO2B,KAAKu3H,GAAcr5H,SAAQ,SAAUyK,GAC1C+tH,EAAYtlH,KAAK,uBAAuBzI,KAAKA,EAAM4uH,EAAa5uH,OAGpE,GAAIstH,EAAW,CACb,IAAKS,EAAYtlH,KAAK,qBAAqB3V,OAAQ,CACjD,IAAI2/B,EAASx3B,SAASmB,gBAAgB,6BAA8B,QACpEq2B,EAAOjzB,UAAUC,IAAI,oBACrBsuH,EAAYhnH,OAAO0rB,GAErB,IAAIo8F,EAAY,CACdl7G,EAAG,MACH2S,EAAGwnG,EAAa,OAAS,MACzBgB,cAAerB,EACfsB,YAAavB,EACba,KAAMd,EACNyB,GAAIlB,EAAcJ,GAAaE,EAAgB,IAAM,EAAK,EAC1DqB,cAAe,SACfC,qBAAsBpB,GAAc,UAEtCp4H,OAAO2B,KAAKw3H,GAAWt5H,SAAQ,SAAUyK,GACvC+tH,EAAYtlH,KAAK,qBAAqBzI,KAAKA,EAAM6uH,EAAU7uH,OAE7D+tH,EAAYtlH,KAAK,qBAAqBpC,KAAKinH,QAE3CS,EAAYtlH,KAAK,qBAAqB9I,SAExC,GAAI+tH,EAAW,CACb,IAAKK,EAAYtlH,KAAK,qBAAqB3V,OAAQ,CACjD,IAAIq8H,EAAWl0H,SAASmB,gBAAgB,6BAA8B,QACtE+yH,EAAS3vH,UAAUC,IAAI,oBACvBsuH,EAAYhnH,OAAOooH,GAErB,IAAIC,EAAa,CACfz7G,EAAG,MACH2S,EAAGwnG,EAAa,OAAS,MACzBgB,cAAejB,EACfkB,YAAanB,EACbS,KAAMV,EACNqB,GAAIlB,GAAc,EAAKR,EAAcE,EAAgB,EAAK,GAAM,EAChEyB,cAAe,SACfC,qBAAsBpB,GAAc,UAEtCp4H,OAAO2B,KAAK+3H,GAAY75H,SAAQ,SAAUyK,GACxC+tH,EAAYtlH,KAAK,qBAAqBzI,KAAKA,EAAMovH,EAAWpvH,OAE9D+tH,EAAYtlH,KAAK,qBAAqBpC,KAAKqnH,QAE3CK,EAAYtlH,KAAK,qBAAqB9I,SAExC,OArIYnO,MAwIdo7H,EAAM3yH,UAAU8jB,KAAO,WACrB,IACIgwG,EAAc9vH,EADNzM,KACc2Y,UAAUtD,GAAG,GAOvC,OANAknH,EAAYjB,QAFAt7H,KAGZkd,MAAM5U,OAHMtI,KAGQ,CAClBu8H,YAAaA,EACbsB,WAAYtB,GAAeA,EAAY,KAL7Bv8H,KAONspB,IAAI/T,OAAOgnH,GAPLv8H,MAWdo7H,EAAM3yH,UAAU8gB,QAAU,WACZvpB,KACDspB,MADCtpB,KACY2mD,YADZ3mD,KAENspB,IAAIjX,QAAQ,uBAFNrS,KAGN2mB,KAAK,0CAHC3mB,MAAAA,KAINu8H,YAAYpuH,gBAJNnO,KAKCspB,IAAI,GAAGgyG,QACpBp+G,MAAMU,YANM5d,MAAAA,KAON2mD,WAAY,IAGby0E,EA1PgB,CA2PvBn0G,iBAEE62G,QAAU,CACZt5H,KAAM,QACNmkB,OAAQ,CACNyyG,MAAOA,OAETj0G,OAAQ,WACN,IAAI+B,EAAMlpB,KACVkpB,EAAImyG,MAAQxyG,mBAAmB,CAC7BE,gBAAiB,SACjB9kB,YAAam3H,MACblyG,IAAKA,EACLD,QAAS,YAEXC,EAAImyG,MAAMvnE,OAAS,SAAgB5kD,EAAI0oG,GAErC,GAAmB,IADTnrG,EAAEyC,GACJ5N,OAAR,CACA,IAAI+5H,EAAQnyG,EAAImyG,MAAMnyH,IAAIgG,GAC1B,GAAKmsH,EAEL,OADAA,EAAMvnE,OAAO8jD,GACNyjB,KAGX5hH,OAAQ,CACN4hH,MAAO,CACLnsH,GAAI,KACJ7M,KAAM,SACNqM,MAAO,EACPuvC,KAAM,IACN09E,QAAS,cACTC,cAAe,UACfC,YAAa,UACbL,YAAa,GACbM,UAAW,KACXC,eAAgB,UAChBC,cAAe,GACfC,gBAAiB,IACjBC,UAAW,KACXC,eAAgB,UAChBC,cAAe,GACfC,gBAAiB,MAGrB/rH,GAAI,CACFgjD,WAAY,SAAoB9nB,GAC9B,IAAItiB,EAAMlpB,KACVyM,EAAE++B,GAAOv0B,KAAK,eAAe3Q,MAAK,SAAUK,EAAOuI,GACjDga,EAAImyG,MAAMl0G,OAAOjK,MAAM5U,OAAO,CAAE4G,GAAIA,GAAMzC,EAAEyC,GAAII,WAAa,SAGjE2xD,gBAAiB,SAAyBz1B,GACxC/+B,EAAE++B,GAAOv0B,KAAK,eAAe3Q,MAAK,SAAUK,EAAOuI,GAC7CA,EAAGosH,SAAWpsH,EAAGosH,QAAQ/xG,cAGjCy5B,SAAU,SAAkBvN,GAC1B,IAAIvsB,EAAMlpB,KACVy1C,EAAKnsB,IAAIrS,KAAK,eAAe3Q,MAAK,SAAUK,EAAOuI,GACjDga,EAAImyG,MAAMl0G,OAAOjK,MAAM5U,OAAO,CAAE4G,GAAIA,GAAMzC,EAAEyC,GAAII,WAAa,SAGjEuzC,iBAAkB,SAA0BpN,GAC1CA,EAAKnsB,IAAIrS,KAAK,eAAe3Q,MAAK,SAAUK,EAAOuI,GAC7CA,EAAGosH,SAAWpsH,EAAGosH,QAAQ/xG,eAInCtB,MAAO,CACL81G,aAAc,CACZjgF,OAAQ,SAAgB71B,GACtB,IACI/Y,EAAK+Y,EAAM81B,IADL/9C,KAENq7H,MAAMl0G,OAAOjK,MAAM5U,OAAO,CAAE4G,GAAIA,GAAMzC,EAAEyC,GAAII,WAAa,MAE/Dia,QAAS,SAAiBtB,GACxB,IAAI/Y,EAAK+Y,EAAM81B,IACX7uC,EAAGosH,SAAWpsH,EAAGosH,QAAQ/xG,cAMjCy0G,SAAW,CACbx5H,KAAM,YAGJy5H,KAAO,CACTx0G,KAAM,SAAcva,QACN,IAAPA,IAAgBA,EAAK,uBAG1B,GAAKA,EAAL,CACA,IAAIoa,EAAM7c,EAAEyC,GAAI8H,QAAQ,uBACxB,GAAKsS,EAAIhoB,OAAT,CACA,IAAI48H,EAAU50G,EAAItS,QAAQ,SAAS3B,GAAG,GACtC,GAAI6oH,EAAQ58H,OAAQ,CAClB,IAAIm3F,EAASylC,EAAQhrH,IAAI,WACrBirH,EAAiBD,EAAQ,GAAGzzH,MAAMguF,OACtCylC,EAAQhrH,IAAI,UAAWsO,SAASi3E,GAAU,EAAG,GAAK,GAClDylC,EAAQ,GAAGE,aAAeD,EAE5B70G,EAAIjU,GAAG,GAAGxH,SAAS,6BAA6BwE,QAAQ,eAX9CrS,KAYN2mB,KAAK,aAAc2C,EAAIjU,GAAG,GAAG,OAEnC0U,MAAO,SAAe7a,QACR,IAAPA,IAAgBA,EAAK,8BAG1B,GAAKA,EAAL,CACA,IAAIoa,EAAM7c,EAAEyC,GAAI8H,QAAQ,8BACxB,GAAKsS,EAAIhoB,OAAT,CACA,IAAI48H,EAAU50G,EAAItS,QAAQ,SAAS3B,GAAG,GACtC,GAAI6oH,EAAQ58H,OAAQ,CAClB,IAAIm3F,EAASylC,EAAQ,GAAGE,aACxBF,EAAQhrH,IAAI,UAAWulF,UAChBylC,EAAQ,GAAGE,aAEpB90G,EAAIjU,GAAG,GAAGnH,YAAY,6BAA6BmE,QAAQ,eAVjDrS,KAWN2mB,KAAK,aAAc2C,EAAIjU,GAAG,GAAG,QAIjCgpH,OAAS,CACX75H,KAAM,OACN2iB,OAAQ,WACInnB,KACNs+H,KAAO,CACT70G,KAAMw0G,KAAKx0G,KAAKpO,KAFRrb,MAGR+pB,MAAOk0G,KAAKl0G,MAAM1O,KAHVrb,QAMZsQ,GAAI,CACF8K,MAAO,SAAevK,GACpB,IAAIqY,EAAMlpB,KACNu+H,EAAc9xH,EAAE,8BACf8xH,EAAYj9H,QACjBi9H,EAAYj4H,MAAK,SAAUK,EAAOuI,GAC3BzC,EAAEoE,EAAEtI,QAAQyO,QAAQ,8BAA8B1V,QACrD4nB,EAAIo1G,KAAKv0G,MAAM7a,QAKvBsqC,OAAQ,CACNglF,sBAAuB,SAAiBnlF,EAAY/pC,EAASuB,GAE3D,GAAIwoC,EAAWjrC,SAAS,6BAA8B,CACpD,GAAI3B,EAAEoE,EAAEtI,QAAQyO,QAAQ,kBAAkB1V,OAAU,OAF5CtB,KAGJs+H,KAAKv0G,MAAMsvB,QAHPr5C,KAKJs+H,KAAK70G,KAAK4vB,IAGlBolF,cAAe,WACHz+H,KACNs+H,KAAKv0G,WAKX20G,kBAAoB,CACtB/lH,OAAQ,SAAgB7Y,GACtB,IAAIib,EAAMjb,EAAK2Z,OACXklH,EAAc5jH,EAAI4jH,YAClBC,EAAc7jH,EAAI6jH,YAClBC,EAAsB9jH,EAAI8jH,oBAC1BC,EAAiB/jH,EAAI+jH,eACzB,MAAQ,0IAAgJH,EAAe,wDAA4DG,EAAiB,qBAAwB,IAAM,0GAA8GF,EAAe,yEAA6EC,EAAsB,uHAAmI,oFAAwF,mCAAsC,IAAM,wCAE3vBtyG,KAAM,SAAczsB,GAclB,SAAS0vE,EAAkB3+D,GACzB,IAAIkuH,EAAQj/H,EAAK4O,MAAMqwH,MACnBrwH,EAAQc,WAAWqB,EAAEtI,OAAOmG,OAC5B5J,OAAOsd,MAAM1T,GACfmC,EAAEtI,OAAOmG,MAAQqwH,GAGnBrwH,EAAQ4J,KAAKC,IAAI,EAAGD,KAAKE,IAAI,EAAG9J,IAChC5O,EAAKoyE,SAAS,CAAE6sD,MAAOrwH,KArBzB5O,EAAKk/H,iBAAmBl/H,EAAKopB,IAAI2mD,MAAM1oD,OAAO,CAC5CjY,GAAIpP,EAAKwpB,IAAIrS,KAAK,8BAClBuB,IAAK,EACLD,IAAK,EACLw3D,KAAM,IACNrhE,MAAO,EACP4B,GAAI,CACFuL,OAAQ,SAAgBg0D,EAAOnhE,GAC7B,IAAIqwH,EAAQzmH,KAAK8E,MAAc,IAAR1O,GAAe,IACtC5O,EAAKoyE,SAAS,CAAE6sD,MAAOA,QAe7Bj/H,EAAKwpB,IAAIhZ,GAAG,SAAU,0CAA2Ck/D,GAEjE1vE,EAAKm/H,yBAA2B,WAC9Bn/H,EAAKwpB,IAAI3X,IAAI,SAAU,0CAA2C69D,KAGtE1b,OAAQ,SAAgBh0D,GACtB,IAAI4O,EAAQ5O,EAAK4O,MACbqM,EAAMjb,EAAK2Z,OACXmlH,EAAc7jH,EAAI6jH,YAClBC,EAAsB9jH,EAAI8jH,oBAE1BE,EAAQrwH,EAAMqwH,MAClBj/H,EAAKk/H,iBAAiBtwH,MAAQqwH,EAC9Bj/H,EAAKk/H,iBAAiBzsD,SAClBqsD,GAAeC,EACjB/+H,EAAKwpB,IAAIrS,KAAK,kCAAkCxH,IAAIsvH,GAEpDj/H,EAAKwpB,IAAIrS,KAAK,iCAAiCpC,KAAKkqH,IAGxDx1G,QAAS,SAAiBzpB,GACpBA,EAAKk/H,kBAAoBl/H,EAAKk/H,iBAAiBz1G,SACjDzpB,EAAKk/H,iBAAiBz1G,iBAEjBzpB,EAAKk/H,iBAERl/H,EAAKm/H,0BAA4Bn/H,EAAKm/H,kCACnCn/H,EAAKm/H,2BAIZC,mBAAqB,CACvBvmH,OAAQ,WACN,MAAO,2JAETm7C,OAAQ,SAAgBh0D,GACtBA,EAAKwpB,IAAIrS,KAAK,kEAAkE/D,IAC9E,mBACApT,EAAK4O,MAAMqS,OAKbo+G,UAAY,CACdxmH,OAAQ,SAAgB7Y,GACtB,IAAIib,EAAMjb,EAAK2Z,OACX2lH,EAAWrkH,EAAIqkH,SACfC,EAAetkH,EAAIskH,aAEvB,MAAQ,8HAAoID,EAAY,qDAAyDC,EAAe,qBAAwB,IAAM,kEADvOtkH,EAAIukH,iBAC4T,mFAAyF,8EAAkF,0DAEpgB/yG,KAAM,SAAczsB,GAClB,SAAS0vE,EAAkB3+D,GACzB,IAAIkQ,EAAMjhB,EAAK4O,MAAMqS,IACjBrS,EAAQmC,EAAEtI,OAAOmG,MAAM7N,QAAQ,KAAM,IACzC,GAAIiE,OAAOsd,MAAM1T,KAAWA,GAA2B,IAAjBA,EAAMpN,QAAiC,IAAjBoN,EAAMpN,OAChEuP,EAAEtI,OAAOmG,MAAQqS,MADnB,CAIA,IACIi5B,EAAUx4B,SAAS9S,EAAO,IAE1BsrC,EADMx4B,SAAS,SAAU,MAE3B9S,EAAQ,OAENsrC,EANM,IAORtrC,EAAQ,OAEV5O,EAAKoyE,SAAS,CAAEnxD,IAAKrS,KAGvB5O,EAAKwpB,IAAIhZ,GAAG,SAAU,iCAAkCk/D,GAExD1vE,EAAKy/H,iBAAmB,WACtBz/H,EAAKwpB,IAAI3X,IAAI,SAAU,iCAAkC69D,KAG7D1b,OAAQ,SAAgBh0D,GACtB,IAAI4O,EAAQ5O,EAAK4O,MAGb4wH,EADMx/H,EAAK2Z,OACY6lH,iBAEvBv+G,EAAMrS,EAAMqS,IACZu+G,EACFx/H,EAAKwpB,IAAIrS,KAAK,gCAAgCxH,IAAIsR,GAElDjhB,EAAKwpB,IAAIrS,KAAK,+BAA+BpC,KAAKkM,IAGtDwI,QAAS,SAAiBzpB,GACpBA,EAAKy/H,kBAAoBz/H,EAAKy/H,0BAC3Bz/H,EAAKy/H,mBAIZC,iBAAmB,CACrB7mH,OAAQ,SAAgB7Y,GACtB,IAAIib,EAAMjb,EAAK2Z,OACXklH,EAAc5jH,EAAI4jH,YAClBC,EAAc7jH,EAAI6jH,YAClBC,EAAsB9jH,EAAI8jH,oBAC1BY,EAAe1kH,EAAI0kH,aACnBC,EAAsB3kH,EAAI2kH,oBAC1BC,EAAsB5kH,EAAI4kH,oBAC9B,MAAQ,yIAA+IhB,EAAe,wDAA4Dc,EAAe,qBAAwB,IAAM,wGAA4Gb,EAAe,yEAA6EC,EAAsB,2IAAyJ,kFAAsF,mCAAsC,IAAM,gFAAoFF,EAAe,wDAA4De,EAAsB,qBAAwB,IAAM,+GAAmHd,EAAe,yEAA6EC,EAAsB,kJAAgK,yFAA6F,mCAAsC,IAAM,gFAAoFF,EAAe,wDAA4DgB,EAAsB,qBAAwB,IAAM,+GAAmHf,EAAe,yEAA6EC,EAAsB,kJAAgK,yFAA6F,mCAAsC,IAAM,wCAE5sEtyG,KAAM,SAAczsB,GAwClB,SAAS0vE,EAAkB3+D,GACzB,IAAI+uH,EAAM,GAAGzkH,OAAQrb,EAAK4O,MAAMkxH,KAC5Bj5H,EAAQ6a,SAAS/U,EAAEoE,EAAEtI,QAAQiG,KAAK,oBAAqB,IACvDE,EAAQc,WAAWqB,EAAEtI,OAAOmG,OAC5B5J,OAAOsd,MAAM1T,GACfmC,EAAEtI,OAAOmG,MAAQkxH,EAAIj5H,IAIrB+H,EADY,IAAV/H,EACM2R,KAAKC,IAAI,EAAGD,KAAKE,IAAI,IAAK9J,IAE1B4J,KAAKC,IAAI,EAAGD,KAAKE,IAAI,IAAK9J,IAAU,IAG9CkxH,EAAIj5H,GAAS+H,EACb5O,EAAKoyE,SAAS,CAAE0tD,IAAKA,KAtDvB9/H,EAAK+/H,eAAiB//H,EAAKopB,IAAI2mD,MAAM1oD,OAAO,CAC1CjY,GAAIpP,EAAKwpB,IAAIrS,KAAK,4BAClBuB,IAAK,EACLD,IAAK,IACLw3D,KAAM,GACNrhE,MAAO,EACP4B,GAAI,CACFuL,OAAQ,SAAgBg0D,EAAOnhE,GAC7B5O,EAAKoyE,SAAS,CAAE4tD,IAAKpxH,QAI3B5O,EAAKigI,sBAAwBjgI,EAAKopB,IAAI2mD,MAAM1oD,OAAO,CACjDjY,GAAIpP,EAAKwpB,IAAIrS,KAAK,mCAClBuB,IAAK,EACLD,IAAK,EACLw3D,KAAM,KACNrhE,MAAO,EACP4B,GAAI,CACFuL,OAAQ,SAAgBg0D,EAAOnhE,GAC7B,IAAIqT,EAAIzJ,KAAK8E,MAAc,IAAR1O,GAAgB,IACnC5O,EAAKoyE,SAAS,CAAE0tD,IAAK,CAAC9/H,EAAK4O,MAAMkxH,IAAI,GAAI79G,EAAGjiB,EAAK4O,MAAMkxH,IAAI,UAIjE9/H,EAAKkgI,sBAAwBlgI,EAAKopB,IAAI2mD,MAAM1oD,OAAO,CACjDjY,GAAIpP,EAAKwpB,IAAIrS,KAAK,mCAClBuB,IAAK,EACLD,IAAK,EACLw3D,KAAM,KACNrhE,MAAO,EACP4B,GAAI,CACFuL,OAAQ,SAAgBg0D,EAAOnhE,GAC7B,IAAI0S,EAAI9I,KAAK8E,MAAc,IAAR1O,GAAgB,IACnC5O,EAAKoyE,SAAS,CAAE0tD,IAAK,CAAC9/H,EAAK4O,MAAMkxH,IAAI,GAAI9/H,EAAK4O,MAAMkxH,IAAI,GAAIx+G,SAuBlEthB,EAAKwpB,IAAIhZ,GAAG,SAAU,yCAA0Ck/D,GAEhE1vE,EAAKmgI,wBAA0B,WAC7BngI,EAAKwpB,IAAI3X,IAAI,SAAU,yCAA0C69D,KAGrE1b,OAAQ,SAAgBh0D,GACtB,IAAIopB,EAAMppB,EAAKopB,IACXxa,EAAQ5O,EAAK4O,MACbqM,EAAMjb,EAAK2Z,OACXmlH,EAAc7jH,EAAI6jH,YAClBC,EAAsB9jH,EAAI8jH,oBAE1Be,EAAMlxH,EAAMkxH,IACZE,EAAMpxH,EAAMoxH,IAEhBhgI,EAAK+/H,eAAenxH,MAAQoxH,EAC5BhgI,EAAKigI,sBAAsBrxH,MAAQkxH,EAAI,GACvC9/H,EAAKkgI,sBAAsBtxH,MAAQkxH,EAAI,GAEvC9/H,EAAK+/H,eAAettD,SACpBzyE,EAAKigI,sBAAsBxtD,SAC3BzyE,EAAKkgI,sBAAsBztD,SAE3B,IAAI2tD,EAAahjH,MAAMoF,cAAcs9G,EAAI,GAAIA,EAAI,GAAI,GACjDO,EAAUjjH,MAAMoF,cAAcs9G,EAAI,GAAI,EAAG,GACzCQ,EAAWljH,MAAMoF,cAAcs9G,EAAI,GAAI,EAAG,GAC1CS,EAAaT,EAAI,GAErB9/H,EAAK+/H,eAAev2G,IAAI,GAAG7e,MAAMonC,YAC/B,wBACC,OAASiuF,EAAM,gBAElBhgI,EAAKigI,sBAAsBz2G,IAAI,GAAG7e,MAAMonC,YACtC,wBACC,OAAUquF,EAAW,GAAM,KAAwB,IAAhBA,EAAW,GAAY,MAAyB,IAAhBA,EAAW,GAAY,MAE7FpgI,EAAKkgI,sBAAsB12G,IAAI,GAAG7e,MAAMonC,YACtC,wBACC,OAAuB,IAAbwuF,EAAoB,KAAqB,IAAbA,EAAoB,KAAqB,IAAbA,EAAoB,KAEzFvgI,EAAKigI,sBAAsBz2G,IAAIrS,KAAK,cAAc/D,IAChD,mBACC,oBAAsBgW,EAAIwC,IAAM,UAAY,YAAc,SAAYy0G,EAAQ,GAAM,KAAqB,IAAbA,EAAQ,GAAY,MAAsB,IAAbA,EAAQ,GAAY,WAAcC,EAAS,GAAM,KAAsB,IAAdA,EAAS,GAAY,MAAuB,IAAdA,EAAS,GAAY,OAGpOxB,GAAeC,GACjB/+H,EAAKwpB,IAAIrS,KAAK,gCAAgCxH,IAAK,GAAKqwH,GACxDhgI,EAAKwpB,IAAIrS,KAAK,uCAAuCxH,IAAK,GAAe,IAATmwH,EAAI,GAAY,IAChF9/H,EAAKwpB,IAAIrS,KAAK,uCAAuCxH,IAAK,GAAe,IAATmwH,EAAI,GAAY,KACvEhB,IACT9+H,EAAKwpB,IAAIrS,KAAK,+BAA+BpC,KAAM,GAAKirH,GACxDhgI,EAAKwpB,IAAIrS,KAAK,sCAAsCpC,KAAM,GAAe,IAAT+qH,EAAI,GAAY,IAChF9/H,EAAKwpB,IAAIrS,KAAK,sCAAsCpC,KAAM,GAAe,IAAT+qH,EAAI,GAAY,MAGpFr2G,QAAS,SAAiBzpB,GACpBA,EAAK+/H,gBAAkB//H,EAAK+/H,eAAet2G,SAC7CzpB,EAAK+/H,eAAet2G,UAElBzpB,EAAKigI,uBAAyBjgI,EAAKigI,sBAAsBx2G,SAC3DzpB,EAAKigI,sBAAsBx2G,UAEzBzpB,EAAKkgI,uBAAyBlgI,EAAKkgI,sBAAsBz2G,SAC3DzpB,EAAKkgI,sBAAsBz2G,iBAGtBzpB,EAAK+/H,sBACL//H,EAAKigI,6BACLjgI,EAAKkgI,sBAERlgI,EAAKmgI,yBAA2BngI,EAAKmgI,iCAClCngI,EAAKmgI,0BAIZK,gBAAkB,CACpB3nH,OAAQ,SAAgB7Y,GACtB,IAAIib,EAAMjb,EAAK2Z,OACXklH,EAAc5jH,EAAI4jH,YAClBC,EAAc7jH,EAAI6jH,YAClBC,EAAsB9jH,EAAI8jH,oBAC1BY,EAAe1kH,EAAI0kH,aACvB,MAAQ,wIAA8Id,EAAe,wDAA4Dc,EAAe,qBAAwB,IAAM,wGAA4Gb,EAAe,yEAA6EC,EAAsB,sHAAkI,kFAAsF,mCAAsC,IAAM,wCAElvBtyG,KAAM,SAAczsB,GAClBA,EAAK+/H,eAAiB//H,EAAKopB,IAAI2mD,MAAM1oD,OAAO,CAC1CjY,GAAIpP,EAAKwpB,IAAIrS,KAAK,4BAClBuB,IAAK,EACLD,IAAK,IACLw3D,KAAM,GACNrhE,MAAO,EACP4B,GAAI,CACFuL,OAAQ,SAAgBg0D,EAAOnhE,GAC7B5O,EAAKoyE,SAAS,CAAE4tD,IAAKpxH,SAK7BolD,OAAQ,SAAgBh0D,GACtB,IAAI4O,EAAQ5O,EAAK4O,MACbqM,EAAMjb,EAAK2Z,OACXmlH,EAAc7jH,EAAI6jH,YAClBC,EAAsB9jH,EAAI8jH,oBAE1BiB,EAAMpxH,EAAMoxH,IAEhBhgI,EAAK+/H,eAAenxH,MAAQoxH,EAC5BhgI,EAAK+/H,eAAettD,SACpBzyE,EAAK+/H,eAAev2G,IAAI,GAAG7e,MAAMonC,YAC/B,wBACC,OAASiuF,EAAM,gBAEdlB,GAAeC,EACjB/+H,EAAKwpB,IAAIrS,KAAK,gCAAgCxH,IAAK,GAAKqwH,GAC/ClB,GACT9+H,EAAKwpB,IAAIrS,KAAK,+BAA+BpC,KAAM,GAAKirH,IAG5Dv2G,QAAS,SAAiBzpB,GACpBA,EAAK+/H,gBAAkB//H,EAAK+/H,eAAet2G,SAC7CzpB,EAAK+/H,eAAet2G,iBAEfzpB,EAAK+/H,iBAIZU,uBAAyB,CAC3B5nH,OAAQ,SAAgB7Y,GACtB,IAAIib,EAAMjb,EAAK2Z,OACXklH,EAAc5jH,EAAI4jH,YAClBC,EAAc7jH,EAAI6jH,YAClBC,EAAsB9jH,EAAI8jH,oBAC1Bc,EAAsB5kH,EAAI4kH,oBAC9B,MAAQ,+IAAqJhB,EAAe,wDAA4DgB,EAAsB,qBAAwB,IAAM,+GAAmHf,EAAe,yEAA6EC,EAAsB,6HAAyI,yFAA6F,mCAAsC,IAAM,wCAErxBtyG,KAAM,SAAczsB,GAClBA,EAAKkgI,sBAAwBlgI,EAAKopB,IAAI2mD,MAAM1oD,OAAO,CACjDjY,GAAIpP,EAAKwpB,IAAIrS,KAAK,mCAClBuB,IAAK,EACLD,IAAK,EACLw3D,KAAM,KACNrhE,MAAO,EACP4B,GAAI,CACFuL,OAAQ,SAAgBg0D,EAAOnhE,GAC7B,IAAI0S,EAAI9I,KAAK8E,MAAc,IAAR1O,GAAgB,IACnC5O,EAAKoyE,SAAS,CAAE0tD,IAAK,CAAC9/H,EAAK4O,MAAMkxH,IAAI,GAAI9/H,EAAK4O,MAAMkxH,IAAI,GAAIx+G,UAKpE0yC,OAAQ,SAAgBh0D,GACtB,IAAI4O,EAAQ5O,EAAK4O,MACbwa,EAAMppB,EAAKopB,IACXnO,EAAMjb,EAAK2Z,OACXmlH,EAAc7jH,EAAI6jH,YAClBC,EAAsB9jH,EAAI8jH,oBAE1Be,EAAMlxH,EAAMkxH,IAEhB9/H,EAAKkgI,sBAAsBtxH,MAAQkxH,EAAI,GACvC9/H,EAAKkgI,sBAAsBztD,SAE3B,IAAI2tD,EAAahjH,MAAMoF,cAAcs9G,EAAI,GAAIA,EAAI,GAAIA,EAAI,IACrDO,EAAUjjH,MAAMoF,cAAcs9G,EAAI,GAAIA,EAAI,GAAI,GAC9CQ,EAAWljH,MAAMoF,cAAcs9G,EAAI,GAAIA,EAAI,GAAI,GAEnD9/H,EAAKkgI,sBAAsB12G,IAAI,GAAG7e,MAAMonC,YACtC,wBACC,OAAUquF,EAAW,GAAM,KAAwB,IAAhBA,EAAW,GAAY,MAAyB,IAAhBA,EAAW,GAAY,MAE7FpgI,EAAKkgI,sBAAsB12G,IAAIrS,KAAK,cAAc/D,IAChD,mBACC,oBAAsBgW,EAAIwC,IAAM,UAAY,YAAc,SAAYy0G,EAAQ,GAAM,KAAqB,IAAbA,EAAQ,GAAY,MAAsB,IAAbA,EAAQ,GAAY,WAAcC,EAAS,GAAM,KAAsB,IAAdA,EAAS,GAAY,MAAuB,IAAdA,EAAS,GAAY,OAEpOxB,GAAeC,EACjB/+H,EAAKwpB,IAAIrS,KAAK,uCAAuCxH,IAAK,GAAe,IAATmwH,EAAI,GAAY,IACvEhB,GACT9+H,EAAKwpB,IAAIrS,KAAK,sCAAsCpC,KAAM,GAAe,IAAT+qH,EAAI,GAAY,KAGpFr2G,QAAS,SAAiBzpB,GACpBA,EAAKkgI,uBAAyBlgI,EAAKkgI,sBAAsBz2G,SAC3DzpB,EAAKkgI,sBAAsBz2G,iBAEtBzpB,EAAKkgI,wBAMZQ,cAAgB,CAClB7nH,OAAQ,SAAgB7Y,GACtB,MAAQ,gIAAuIA,EAAK2Z,OAAOgnH,QAAQ9rH,KAAI,SAAUpP,GACzK,GAAIzC,MAAMC,QAAQwC,GAAI,CACpB,IAAI2mF,EAAM,yCAGV,OAFAA,GAAO3mF,EAAEoP,KAAI,SAAUsN,GAAK,MAAQ,iFAAsFA,EAAI,8BAAkCA,EAAI,8BAAiC9d,KAAK,IAC1M+nF,GAAO,SAGT,MAAQ,+EAAoF3mF,EAAI,8BAAkCA,EAAI,4BACrIpB,KAAK,IAAO,wCAEvBooB,KAAM,SAAczsB,GAClB,SAAS4gI,EAAmB7vH,GAC1B,IAAIkQ,EAAMtU,EAAEoE,EAAEtI,QAAQiG,KAAK,sBAC3B1O,EAAKoyE,SAAS,CACZnxD,IAAKA,IAITjhB,EAAKwpB,IAAIhZ,GAAG,QAAS,2DAA4DowH,GAEjF5gI,EAAK6gI,qBAAuB,WAC1B7gI,EAAKwpB,IAAI3X,IAAI,QAAS,iCAAkC+uH,KAG5Dn3G,QAAS,SAAiBzpB,GACpBA,EAAK6gI,sBACP7gI,EAAK6gI,8BAEA7gI,EAAK6gI,uBAIZC,2BAA6B,CAC/BjoH,OAAQ,WACN,MAAO,2SAET4T,KAAM,SAAczsB,GAClB,SAAS+gI,IACP,GAAI/gI,EAAKsa,aAAc,CACrB,IAAIW,EAAMjb,EAAKsa,aACX2G,EAAMhG,EAAIgG,IACVg+G,EAAQhkH,EAAIgkH,MAChBj/H,EAAKoyE,SAAS,CACZnxD,IAAKA,EACLg+G,MAAOA,KAIbj/H,EAAKwpB,IAAIhZ,GAAG,QAAS,8BAA+BuwH,GACpD/gI,EAAKghI,4BAA8B,WACjChhI,EAAKwpB,IAAI3X,IAAI,QAAS,8BAA+BkvH,KAGzD/sE,OAAQ,SAAgBh0D,GACtBA,EAAKwpB,IAAIrS,KAAK,2EAA2E/D,IACvF,mBACApT,EAAKsa,aAAa2G,KAEpBjhB,EAAKwpB,IAAIrS,KAAK,2EAA2E/D,IACvF,mBACApT,EAAK4O,MAAMqS,MAGfwI,QAAS,SAAiBzpB,GACpBA,EAAKghI,6BACPhhI,EAAKghI,qCAEAhhI,EAAKghI,8BAIZC,cAAgB,CAClBpoH,OAAQ,SAAgB7Y,GACtB,IAAIib,EAAMjb,EAAK2Z,OACXunH,EAAWjmH,EAAIimH,SACfC,EAAWlmH,EAAIkmH,SACfC,EAAmBnmH,EAAImmH,iBACvBC,EAAepmH,EAAIomH,aACnBC,EAAiBrmH,EAAIqmH,eACrBC,EAAgBtmH,EAAIsmH,cACxB,MAAQ,mIAAyIL,EAAY,qDAAyDG,EAAe,qBAAwB,IAAM,kGAAsGF,EAAY,sEAA0EC,EAAmB,6IAA2J,sFAA0F,mCAAsC,IAAM,6EAAiFF,EAAY,qDAAyDI,EAAiB,qBAAwB,IAAM,oGAAwGH,EAAY,sEAA0EC,EAAmB,+IAA6J,wFAA4F,mCAAsC,IAAM,6EAAiFF,EAAY,qDAAyDK,EAAgB,qBAAwB,IAAM,mGAAuGJ,EAAY,sEAA0EC,EAAmB,8IAA4J,uFAA2F,mCAAsC,IAAM,wCAEvmE30G,KAAM,SAAczsB,GAyClB,SAAS0vE,EAAkB3+D,GACzB,IAAI8R,EAAM,GAAGxH,OAAQrb,EAAK4O,MAAMiU,KAC5Bhc,EAAQ6a,SAAS/U,EAAEoE,EAAEtI,QAAQiG,KAAK,oBAAqB,IACvDE,EAAQ8S,SAAS3Q,EAAEtI,OAAOmG,MAAO,IACjC5J,OAAOsd,MAAM1T,GACfmC,EAAEtI,OAAOmG,MAAQiU,EAAIhc,IAGvB+H,EAAQ4J,KAAKC,IAAI,EAAGD,KAAKE,IAAI,IAAK9J,IAClCiU,EAAIhc,GAAS+H,EACb5O,EAAKoyE,SAAS,CAAEvvD,IAAKA,KAlDvB7iB,EAAKwhI,OAASxhI,EAAKopB,IAAI2mD,MAAM1oD,OAAO,CAClCjY,GAAIpP,EAAKwpB,IAAIrS,KAAK,yBAClBuB,IAAK,EACLD,IAAK,IACLw3D,KAAM,EACNrhE,MAAO,EACPuhE,UAAU,EACV3/D,GAAI,CACFuL,OAAQ,SAAgBg0D,EAAOnhE,GAC7B5O,EAAKoyE,SAAS,CAAEvvD,IAAK,CAACjU,EAAO5O,EAAK4O,MAAMiU,IAAI,GAAI7iB,EAAK4O,MAAMiU,IAAI,UAIrE7iB,EAAKyhI,SAAWzhI,EAAKopB,IAAI2mD,MAAM1oD,OAAO,CACpCjY,GAAIpP,EAAKwpB,IAAIrS,KAAK,2BAClBuB,IAAK,EACLD,IAAK,IACLw3D,KAAM,EACNrhE,MAAO,EACPuhE,UAAU,EACV3/D,GAAI,CACFuL,OAAQ,SAAgBg0D,EAAOnhE,GAC7B5O,EAAKoyE,SAAS,CAAEvvD,IAAK,CAAC7iB,EAAK4O,MAAMiU,IAAI,GAAIjU,EAAO5O,EAAK4O,MAAMiU,IAAI,UAIrE7iB,EAAK0hI,QAAU1hI,EAAKopB,IAAI2mD,MAAM1oD,OAAO,CACnCjY,GAAIpP,EAAKwpB,IAAIrS,KAAK,0BAClBuB,IAAK,EACLD,IAAK,IACLw3D,KAAM,EACNrhE,MAAO,EACPuhE,UAAU,EACV3/D,GAAI,CACFuL,OAAQ,SAAgBg0D,EAAOnhE,GAC7B5O,EAAKoyE,SAAS,CAAEvvD,IAAK,CAAC7iB,EAAK4O,MAAMiU,IAAI,GAAI7iB,EAAK4O,MAAMiU,IAAI,GAAIjU,SAkBlE5O,EAAKwpB,IAAIhZ,GAAG,SAAU,sCAAuCk/D,GAE7D1vE,EAAK2hI,qBAAuB,WAC1B3hI,EAAKwpB,IAAI3X,IAAI,SAAU,sCAAuC69D,KAGlE1b,OAAQ,SAAgBh0D,GACtB,IAAI4O,EAAQ5O,EAAK4O,MACb4yH,EAASxhI,EAAKwhI,OACdC,EAAWzhI,EAAKyhI,SAChBC,EAAU1hI,EAAK0hI,QAEfzmH,EAAMjb,EAAK2Z,OACXwnH,EAAWlmH,EAAIkmH,SACfC,EAAmBnmH,EAAImmH,iBAEvBv+G,EAAMjU,EAAMiU,IAEhB2+G,EAAO5yH,MAAQiU,EAAI,GACnB4+G,EAAS7yH,MAAQiU,EAAI,GACrB6+G,EAAQ9yH,MAAQiU,EAAI,GAEpB2+G,EAAO/uD,SACPgvD,EAAShvD,SACTivD,EAAQjvD,SAER+uD,EAAOh4G,IAAIrS,KAAK,cAAc/D,IAAI,mBAAqB,kCAAqCyP,EAAI,GAAM,KAAQA,EAAI,GAAM,eAAkBA,EAAI,GAAM,KAAQA,EAAI,GAAM,MACtK4+G,EAASj4G,IAAIrS,KAAK,cAAc/D,IAAI,mBAAqB,+BAAkCyP,EAAI,GAAM,QAAWA,EAAI,GAAM,UAAaA,EAAI,GAAM,UAAaA,EAAI,GAAM,MACxK6+G,EAAQl4G,IAAIrS,KAAK,cAAc/D,IAAI,mBAAqB,+BAAkCyP,EAAI,GAAM,KAAQA,EAAI,GAAM,aAAgBA,EAAI,GAAM,KAAQA,EAAI,GAAM,WAE9Js+G,GAAYC,GACdphI,EAAKwpB,IAAIrS,KAAK,oCAAoCxH,IAAIkT,EAAI,IAC1D7iB,EAAKwpB,IAAIrS,KAAK,sCAAsCxH,IAAIkT,EAAI,IAC5D7iB,EAAKwpB,IAAIrS,KAAK,qCAAqCxH,IAAIkT,EAAI,KAClDs+G,IACTnhI,EAAKwpB,IAAIrS,KAAK,mCAAmCpC,KAAK8N,EAAI,IAC1D7iB,EAAKwpB,IAAIrS,KAAK,qCAAqCpC,KAAK8N,EAAI,IAC5D7iB,EAAKwpB,IAAIrS,KAAK,oCAAoCpC,KAAK8N,EAAI,MAG/D4G,QAAS,SAAiBzpB,GACpBA,EAAKwhI,QAAUxhI,EAAKwhI,OAAO/3G,SAC7BzpB,EAAKwhI,OAAO/3G,UAEVzpB,EAAKyhI,UAAYzhI,EAAKyhI,SAASh4G,SACjCzpB,EAAKyhI,SAASh4G,UAEZzpB,EAAK0hI,SAAW1hI,EAAK0hI,QAAQj4G,SAC/BzpB,EAAK0hI,QAAQj4G,iBAGRzpB,EAAKwhI,cACLxhI,EAAKyhI,gBACLzhI,EAAK0hI,QAER1hI,EAAK2hI,sBAAwB3hI,EAAK2hI,8BAC/B3hI,EAAK2hI,uBAIZC,iBAAmB,CACrB/oH,OAAQ,SAAgB7Y,GACtB,IAAIib,EAAMjb,EAAK2Z,OACXklH,EAAc5jH,EAAI4jH,YAClBC,EAAc7jH,EAAI6jH,YAClBC,EAAsB9jH,EAAI8jH,oBAC1BsC,EAAepmH,EAAIomH,aACnBC,EAAiBrmH,EAAIqmH,eACrBC,EAAgBtmH,EAAIsmH,cACxB,MAAQ,yIAA+I1C,EAAe,wDAA4DwC,EAAe,qBAAwB,IAAM,wGAA4GvC,EAAe,yEAA6EC,EAAsB,yIAAuJ,kFAAsF,mCAAsC,IAAM,gFAAoFF,EAAe,wDAA4DyC,EAAiB,qBAAwB,IAAM,0GAA8GxC,EAAe,yEAA6EC,EAAsB,2IAAyJ,oFAAwF,mCAAsC,IAAM,gFAAoFF,EAAe,wDAA4D0C,EAAgB,qBAAwB,IAAM,yGAA6GzC,EAAe,yEAA6EC,EAAsB,0IAAwJ,mFAAuF,mCAAsC,IAAM,wCAE1pEtyG,KAAM,SAAczsB,GAsClB,SAAS0vE,EAAkB3+D,GACzB,IAAI8R,EAAM,GAAGxH,OAAQrb,EAAK4O,MAAMiU,KAC5Bhc,EAAQ6a,SAAS/U,EAAEoE,EAAEtI,QAAQiG,KAAK,oBAAqB,IACvDE,EAAQ8S,SAAS3Q,EAAEtI,OAAOmG,MAAO,IACjC5J,OAAOsd,MAAM1T,GACfmC,EAAEtI,OAAOmG,MAAQiU,EAAIhc,IAGvB+H,EAAQ4J,KAAKC,IAAI,EAAGD,KAAKE,IAAI,IAAK9J,IAClCiU,EAAIhc,GAAS+H,EACb5O,EAAKoyE,SAAS,CAAEvvD,IAAKA,KA/CvB7iB,EAAK6hI,eAAiB7hI,EAAKopB,IAAI2mD,MAAM1oD,OAAO,CAC1CjY,GAAIpP,EAAKwpB,IAAIrS,KAAK,4BAClBuB,IAAK,EACLD,IAAK,IACLw3D,KAAM,EACNrhE,MAAO,EACP4B,GAAI,CACFuL,OAAQ,SAAgBg0D,EAAOnhE,GAC7B5O,EAAKoyE,SAAS,CAAEvvD,IAAK,CAACjU,EAAO5O,EAAK4O,MAAMiU,IAAI,GAAI7iB,EAAK4O,MAAMiU,IAAI,UAIrE7iB,EAAK8hI,iBAAmB9hI,EAAKopB,IAAI2mD,MAAM1oD,OAAO,CAC5CjY,GAAIpP,EAAKwpB,IAAIrS,KAAK,8BAClBuB,IAAK,EACLD,IAAK,IACLw3D,KAAM,EACNrhE,MAAO,EACP4B,GAAI,CACFuL,OAAQ,SAAgBg0D,EAAOnhE,GAC7B5O,EAAKoyE,SAAS,CAAEvvD,IAAK,CAAC7iB,EAAK4O,MAAMiU,IAAI,GAAIjU,EAAO5O,EAAK4O,MAAMiU,IAAI,UAIrE7iB,EAAK+hI,gBAAkB/hI,EAAKopB,IAAI2mD,MAAM1oD,OAAO,CAC3CjY,GAAIpP,EAAKwpB,IAAIrS,KAAK,6BAClBuB,IAAK,EACLD,IAAK,IACLw3D,KAAM,EACNrhE,MAAO,EACP4B,GAAI,CACFuL,OAAQ,SAAgBg0D,EAAOnhE,GAC7B5O,EAAKoyE,SAAS,CAAEvvD,IAAK,CAAC7iB,EAAK4O,MAAMiU,IAAI,GAAI7iB,EAAK4O,MAAMiU,IAAI,GAAIjU,SAkBlE5O,EAAKwpB,IAAIhZ,GAAG,SAAU,yCAA0Ck/D,GAEhE1vE,EAAKgiI,wBAA0B,WAC7BhiI,EAAKwpB,IAAI3X,IAAI,SAAU,yCAA0C69D,KAGrE1b,OAAQ,SAAgBh0D,GACtB,IAAIopB,EAAMppB,EAAKopB,IACXxa,EAAQ5O,EAAK4O,MACbizH,EAAiB7hI,EAAK6hI,eACtBC,EAAmB9hI,EAAK8hI,iBACxBC,EAAkB/hI,EAAK+hI,gBAEvB9mH,EAAMjb,EAAK2Z,OACXmlH,EAAc7jH,EAAI6jH,YAClBC,EAAsB9jH,EAAI8jH,oBAE1Bl8G,EAAMjU,EAAMiU,IAEhBg/G,EAAejzH,MAAQiU,EAAI,GAC3Bi/G,EAAiBlzH,MAAQiU,EAAI,GAC7Bk/G,EAAgBnzH,MAAQiU,EAAI,GAE5Bg/G,EAAepvD,SACfqvD,EAAiBrvD,SACjBsvD,EAAgBtvD,SAEhBovD,EAAer4G,IAAI,GAAG7e,MAAMonC,YAAY,wBAA0B,OAAUlvB,EAAI,GAAM,KAAQA,EAAI,GAAM,KAAQA,EAAI,GAAM,KAC1Hi/G,EAAiBt4G,IAAI,GAAG7e,MAAMonC,YAAY,wBAA0B,OAAUlvB,EAAI,GAAM,KAAQA,EAAI,GAAM,KAAQA,EAAI,GAAM,KAC5Hk/G,EAAgBv4G,IAAI,GAAG7e,MAAMonC,YAAY,wBAA0B,OAAUlvB,EAAI,GAAM,KAAQA,EAAI,GAAM,KAAQA,EAAI,GAAM,KAE3H,IAAI0gB,EAAYna,EAAIwC,IAAM,UAAY,WAEtCi2G,EAAer4G,IAAIrS,KAAK,cAAc/D,IAAI,mBAAqB,mBAAqBmwB,EAAY,YAAe1gB,EAAI,GAAM,KAAQA,EAAI,GAAM,eAAkBA,EAAI,GAAM,KAAQA,EAAI,GAAM,MACzLi/G,EAAiBt4G,IAAIrS,KAAK,cAAc/D,IAAI,mBAAqB,mBAAqBmwB,EAAY,SAAY1gB,EAAI,GAAM,QAAWA,EAAI,GAAM,UAAaA,EAAI,GAAM,UAAaA,EAAI,GAAM,MAC3Lk/G,EAAgBv4G,IAAIrS,KAAK,cAAc/D,IAAI,mBAAqB,mBAAqBmwB,EAAY,SAAY1gB,EAAI,GAAM,KAAQA,EAAI,GAAM,aAAgBA,EAAI,GAAM,KAAQA,EAAI,GAAM,WAEjLi8G,GAAeC,GACjB/+H,EAAKwpB,IAAIrS,KAAK,gCAAgCxH,IAAIkT,EAAI,IACtD7iB,EAAKwpB,IAAIrS,KAAK,kCAAkCxH,IAAIkT,EAAI,IACxD7iB,EAAKwpB,IAAIrS,KAAK,iCAAiCxH,IAAIkT,EAAI,KAC9Ci8G,IACT9+H,EAAKwpB,IAAIrS,KAAK,+BAA+BpC,KAAK8N,EAAI,IACtD7iB,EAAKwpB,IAAIrS,KAAK,iCAAiCpC,KAAK8N,EAAI,IACxD7iB,EAAKwpB,IAAIrS,KAAK,gCAAgCpC,KAAK8N,EAAI,MAG3D4G,QAAS,SAAiBzpB,GACpBA,EAAK6hI,gBAAkB7hI,EAAK6hI,eAAep4G,SAC7CzpB,EAAK6hI,eAAep4G,UAElBzpB,EAAK8hI,kBAAoB9hI,EAAK8hI,iBAAiBr4G,SACjDzpB,EAAK8hI,iBAAiBr4G,UAEpBzpB,EAAK+hI,iBAAmB/hI,EAAK+hI,gBAAgBt4G,SAC/CzpB,EAAK+hI,gBAAgBt4G,iBAGhBzpB,EAAK6hI,sBACL7hI,EAAK8hI,wBACL9hI,EAAK+hI,gBAER/hI,EAAKgiI,yBAA2BhiI,EAAKgiI,iCAClChiI,EAAKgiI,0BAIZC,iBAAmB,CACrBppH,OAAQ,WACN,MAAO,4QAET4T,KAAM,SAAczsB,GAClB,IAGI6zB,EACAH,EACAC,EACA0sD,EACAC,EAEA4hD,EACAC,EACAC,EAXAh5G,EAAMppB,EAAKopB,IAaXI,EAAMxpB,EAAKwpB,IAEf,SAAS64G,EAAuBhgH,EAAG2S,GACjC,IAAI/S,GAAKI,EAAI6/G,EAAY3tH,MAAQ2tH,EAAYhvH,MACzCoO,GAAK0T,EAAIktG,EAAY5tH,KAAO4tH,EAAYzuH,OAC5CwO,EAAIzJ,KAAKC,IAAI,EAAGD,KAAKE,IAAI,EAAGuJ,IAC5BX,EAAI,EAAI9I,KAAKC,IAAI,EAAGD,KAAKE,IAAI,EAAG4I,IAEhCthB,EAAKoyE,SAAS,CAAE0tD,IAAK,CAAC9/H,EAAK4O,MAAMoxH,IAAK/9G,EAAGX,KAG3C,SAASsd,EAAiB7tB,GACxB,IAAI8iB,EAAJ,CACAH,EAAyB,eAAX3iB,EAAExO,KAAwBwO,EAAEomB,cAAc,GAAGG,MAAQvmB,EAAEumB,MACrE+oD,EAAgB3sD,EAChBC,EAAyB,eAAX5iB,EAAExO,KAAwBwO,EAAEomB,cAAc,GAAGI,MAAQxmB,EAAEwmB,MACrE+oD,EAAgB3sD,EAChB,IAAIxJ,EAAYxd,EAAEoE,EAAEtI,SACpB25H,EAAyBj4G,EAAUjT,QAAQ,oCAAoC1V,OAAS,KAEtF2gI,EAAmBh4G,EAAUjT,QAAQ,6BAA6B1V,OAAS,GAEzE2gI,IACFD,EAAc14G,EAAIrS,KAAK,6BAA6B,GAAGpD,wBACvDsuH,EAAuB3uG,EAAaC,KAElCyuG,GAA0BD,IAC5B34G,EAAIrS,KAAK,oCAAoCpJ,SAAS,4CAG1D,SAASixB,EAAgBjuB,IACjBoxH,GAAoBC,KAC1B/hD,EAA2B,cAAXtvE,EAAExO,KAAuBwO,EAAEomB,cAAc,GAAGG,MAAQvmB,EAAEumB,MACtEgpD,EAA2B,cAAXvvE,EAAExO,KAAuBwO,EAAEomB,cAAc,GAAGI,MAAQxmB,EAAEwmB,MACtExmB,EAAEmmB,iBACGrD,IAEHA,GAAU,EACNuuG,IACFF,EAAc14G,EAAIrS,KAAK,6BAA6B,GAAGpD,2BAGvDouH,GAAoBC,IACtBC,EAAuBhiD,EAAeC,IAG1C,SAASl+C,IACPvO,GAAU,GACNsuG,GAAoBC,IACtB54G,EAAIrS,KAAK,oCAAoC/I,YAAY,2CAE3D+zH,GAAmB,EACnBC,GAAyB,EAG3B,SAAS/pF,IACPr4C,EAAK4nB,QAAQ,eAAeosC,OAAOh0D,GAGrC,IAAI8jB,IAA4C,eAA1BsF,EAAIoN,YAAYC,QAA0BrN,EAAI8J,QAAQpP,kBAAkB,CAAEsS,SAAS,EAAMvlB,SAAS,GAExH7Q,EAAKwpB,IAAIhZ,GAAG4Y,EAAIoN,YAAYC,MAAOmI,EAAkB9a,GACrDsF,EAAI5Y,GAAG,mBAAoBwuB,GAC3B5V,EAAI5Y,GAAG,mBAAoB4xB,GAC3BhZ,EAAI5Y,GAAG,SAAU6nC,GAEjBr4C,EAAKsiI,sBAAwB,WAC3BtiI,EAAKwpB,IAAI3X,IAAIuX,EAAIoN,YAAYC,MAAOmI,EAAkB9a,GACtDsF,EAAIvX,IAAI,mBAAoBmtB,GAC5B5V,EAAIvX,IAAI,mBAAoBuwB,GAC5BhZ,EAAIvX,IAAI,SAAUwmC,KAGtB2b,OAAQ,SAAgBh0D,GACtB,IAAI4O,EAAQ5O,EAAK4O,MAEbkU,EAAMlU,EAAMkU,IACZg9G,EAAMlxH,EAAMkxH,IAEZyC,EAAeviI,EAAKwpB,IAAIrS,KAAK,6BAA6B,GAAG3D,YAC7DgvH,EAAgBxiI,EAAKwpB,IAAIrS,KAAK,6BAA6B,GAAGvD,aAElE5T,EAAKwpB,IAAIrS,KAAK,6BACX/D,IAAI,mBAAqB,OAAU0P,EAAI,GAAM,gBAEhD9iB,EAAKwpB,IAAIrS,KAAK,oCACX/D,IAAI,mBAAqB,OAAU0P,EAAI,GAAM,KAAiB,IAATA,EAAI,GAAY,MAAkB,IAATA,EAAI,GAAY,MAC9F7S,UAAW,aAAgBsyH,EAAezC,EAAI,GAAM,OAAU0C,GAAiB,EAAI1C,EAAI,IAAO,QAEnGr2G,QAAS,SAAiBzpB,GACpBA,EAAKsiI,uBAAyBtiI,EAAKsiI,+BAChCtiI,EAAKsiI,wBAIZG,iBAAmB,CACrB5pH,OAAQ,WACN,MAAO,gOAET4T,KAAM,SAAczsB,GAClB,IAGI6zB,EACAH,EACAC,EACA0sD,EACAC,EAEA4hD,EACAC,EACAC,EAXAh5G,EAAMppB,EAAKopB,IAaXI,EAAMxpB,EAAKwpB,IAEf,SAASk5G,EAAuBrgH,EAAG2S,GACjC,IAAI9T,GAAKmB,EAAI6/G,EAAY3tH,MAAQ2tH,EAAYhvH,MAAQ,IACjD+O,GAAK+S,EAAIktG,EAAY5tH,KAAO4tH,EAAYzuH,OAC5CyN,EAAI1I,KAAKC,IAAI,EAAGD,KAAKE,IAAI,IAAKwI,IAC9Be,EAAI,EAAIzJ,KAAKC,IAAI,EAAGD,KAAKE,IAAI,EAAGuJ,IAEhCjiB,EAAKoyE,SAAS,CAAE0tD,IAAK,CAAC5+G,EAAGe,EAAGjiB,EAAK4O,MAAMkxH,IAAI,MAG7C,SAASlhG,EAAiB7tB,GACxB,IAAI8iB,EAAJ,CACAH,EAAyB,eAAX3iB,EAAExO,KAAwBwO,EAAEomB,cAAc,GAAGG,MAAQvmB,EAAEumB,MACrE+oD,EAAgB3sD,EAChBC,EAAyB,eAAX5iB,EAAExO,KAAwBwO,EAAEomB,cAAc,GAAGI,MAAQxmB,EAAEwmB,MACrE+oD,EAAgB3sD,EAChB,IAAIxJ,EAAYxd,EAAEoE,EAAEtI,SACpB25H,EAAyBj4G,EAAUjT,QAAQ,oCAAoC1V,OAAS,KAEtF2gI,EAAmBh4G,EAAUjT,QAAQ,6BAA6B1V,OAAS,GAEzE2gI,IACFD,EAAc14G,EAAIrS,KAAK,6BAA6B,GAAGpD,wBACvD2uH,EAAuBhvG,EAAaC,KAElCyuG,GAA0BD,IAC5B34G,EAAIrS,KAAK,oCAAoCpJ,SAAS,4CAG1D,SAASixB,EAAgBjuB,IACjBoxH,GAAoBC,KAC1B/hD,EAA2B,cAAXtvE,EAAExO,KAAuBwO,EAAEomB,cAAc,GAAGG,MAAQvmB,EAAEumB,MACtEgpD,EAA2B,cAAXvvE,EAAExO,KAAuBwO,EAAEomB,cAAc,GAAGI,MAAQxmB,EAAEwmB,MACtExmB,EAAEmmB,iBACGrD,IAEHA,GAAU,EACNuuG,IACFF,EAAc14G,EAAIrS,KAAK,6BAA6B,GAAGpD,2BAGvDouH,GAAoBC,IACtBM,EAAuBriD,EAAeC,IAG1C,SAASl+C,IACPvO,GAAU,GACNsuG,GAAoBC,IACtB54G,EAAIrS,KAAK,oCAAoC/I,YAAY,2CAE3D+zH,GAAmB,EACnBC,GAAyB,EAG3B,SAAS/pF,IACPr4C,EAAK4nB,QAAQ,eAAeosC,OAAOh0D,GAGrC,IAAI8jB,IAA4C,eAA1BsF,EAAIoN,YAAYC,QAA0BrN,EAAI8J,QAAQpP,kBAAkB,CAAEsS,SAAS,EAAMvlB,SAAS,GAExH7Q,EAAKwpB,IAAIhZ,GAAG4Y,EAAIoN,YAAYC,MAAOmI,EAAkB9a,GACrDsF,EAAI5Y,GAAG,mBAAoBwuB,GAC3B5V,EAAI5Y,GAAG,mBAAoB4xB,GAC3BhZ,EAAI5Y,GAAG,SAAU6nC,GAEjBr4C,EAAKsiI,sBAAwB,WAC3BtiI,EAAKwpB,IAAI3X,IAAIuX,EAAIoN,YAAYC,MAAOmI,EAAkB9a,GACtDsF,EAAIvX,IAAI,mBAAoBmtB,GAC5B5V,EAAIvX,IAAI,mBAAoBuwB,GAC5BhZ,EAAIvX,IAAI,SAAUwmC,KAGtB2b,OAAQ,SAAgBh0D,GACtB,IAEI8/H,EAFQ9/H,EAAK4O,MAEDkxH,IAEZyC,EAAeviI,EAAKwpB,IAAIrS,KAAK,6BAA6B,GAAG3D,YAC7DgvH,EAAgBxiI,EAAKwpB,IAAIrS,KAAK,6BAA6B,GAAGvD,aAE9D+uH,EAAYvlH,MAAMoF,cAAcs9G,EAAI,GAAIA,EAAI,GAAI,GAEpD9/H,EAAKwpB,IAAIrS,KAAK,oCACX/D,IAAI,mBAAqB,OAAUuvH,EAAU,GAAM,KAAuB,IAAfA,EAAU,GAAY,MAAwB,IAAfA,EAAU,GAAY,MAChH1yH,UAAW,aAAgBsyH,GAAgBzC,EAAI,GAAK,KAAQ,OAAU0C,GAAiB,EAAI1C,EAAI,IAAO,QAE3Gr2G,QAAS,SAAiBzpB,GACpBA,EAAKsiI,uBAAyBtiI,EAAKsiI,+BAChCtiI,EAAKsiI,wBAIhB,SAASM,kBAGP,IAFA,IACIC,EAAU,GACL3hI,EAFG,IAEQA,EAAI,EAAGA,GAAK,EAAG,CACjC,IAAIwvF,EAAQxvF,EAAIsX,KAAKY,GAAK,IACtB4mH,EAAM,QAAc9+H,EACxB2hI,GAAW,gBAAmB,IAAwB,IAAlBrqH,KAAK83G,IAAI5/B,IAAgB,UAAc,IAAwB,IAAlBl4E,KAAKW,IAAIu3E,IAAgB,sBAA4BsvC,EAAM,0BAE9I,OAAO6C,EAET,IAAIC,YAAc,CAChBjqH,OAAQ,WACN,MAAQ,gLAA6L+pH,kBAAqB,wRAE5Nn2G,KAAM,SAAczsB,GAClB,IAGI6zB,EACAH,EACAC,EACA0sD,EACAC,EAEAyiD,EACAC,EACAC,EACAf,EACAC,EACAC,EAdAh5G,EAAMppB,EAAKopB,IAgBXI,EAAMxpB,EAAKwpB,IAEf,SAAS05G,EAAsB7gH,EAAG2S,GAChC,IAAImuG,EAAeJ,EAAUxuH,KAAOwuH,EAAU7vH,MAAQ,EAClDkwH,EAAeL,EAAUzuH,IAAMyuH,EAAUtvH,OAAS,EAElD4vH,EAAsB,IADX7qH,KAAKk5F,MAAM18E,EAAIouG,EAAc/gH,EAAI8gH,GAChB3qH,KAAKY,GAAK,GACtCiqH,EAAW,IAAKA,GAAY,KAChCA,EAAW,IAAMA,EACjBrjI,EAAKoyE,SAAS,CAAE4tD,IAAKqD,IAEvB,SAAShB,EAAuBhgH,EAAG2S,GACjC,IAAI/S,GAAKI,EAAI6/G,EAAY3tH,MAAQ2tH,EAAYhvH,MACzCoO,GAAK0T,EAAIktG,EAAY5tH,KAAO4tH,EAAYzuH,OAC5CwO,EAAIzJ,KAAKC,IAAI,EAAGD,KAAKE,IAAI,EAAGuJ,IAC5BX,EAAI,EAAI9I,KAAKC,IAAI,EAAGD,KAAKE,IAAI,EAAG4I,IAEhCthB,EAAKoyE,SAAS,CAAE0tD,IAAK,CAAC9/H,EAAK4O,MAAMoxH,IAAK/9G,EAAGX,KAG3C,SAASsd,EAAiB7tB,GACxB,IAAI8iB,EAAJ,CACAH,EAAyB,eAAX3iB,EAAExO,KAAwBwO,EAAEomB,cAAc,GAAGG,MAAQvmB,EAAEumB,MACrE+oD,EAAgB3sD,EAChBC,EAAyB,eAAX5iB,EAAExO,KAAwBwO,EAAEomB,cAAc,GAAGI,MAAQxmB,EAAEwmB,MACrE+oD,EAAgB3sD,EAChB,IAAIxJ,EAAYxd,EAAEoE,EAAEtI,QACpBw6H,EAAuB94G,EAAUjT,QAAQ,8BAA8B1V,OAAS,EAChFwhI,EAAiB74G,EAAUjT,QAAQ,UAAU1V,OAAS,GACtD4gI,EAAyBj4G,EAAUjT,QAAQ,oCAAoC1V,OAAS,KAEtF2gI,EAAmBh4G,EAAUjT,QAAQ,6BAA6B1V,OAAS,GAEzEwhI,IACFD,EAAYv5G,EAAIrS,KAAK,uBAAuB,GAAGpD,wBAC/CmvH,EAAsBxvG,EAAaC,IAEjCwuG,IACFD,EAAc14G,EAAIrS,KAAK,6BAA6B,GAAGpD,wBACvDsuH,EAAuB3uG,EAAaC,KAElCyuG,GAA0BD,IAC5B34G,EAAIrS,KAAK,oCAAoCpJ,SAAS,4CAG1D,SAASixB,EAAgBjuB,IACjBiyH,GAAkBC,GAA2Bd,GAAoBC,KACvE/hD,EAA2B,cAAXtvE,EAAExO,KAAuBwO,EAAEomB,cAAc,GAAGG,MAAQvmB,EAAEumB,MACtEgpD,EAA2B,cAAXvvE,EAAExO,KAAuBwO,EAAEomB,cAAc,GAAGI,MAAQxmB,EAAEwmB,MACtExmB,EAAEmmB,iBACGrD,IAEHA,GAAU,EACNovG,IACFF,EAAYv5G,EAAIrS,KAAK,uBAAuB,GAAGpD,yBAE7CquH,IACFF,EAAc14G,EAAIrS,KAAK,6BAA6B,GAAGpD,2BAGvDivH,GAAkBC,IACpBC,EAAsB7iD,EAAeC,IAEnC6hD,GAAoBC,IACtBC,EAAuBhiD,EAAeC,IAG1C,SAASl+C,IACPvO,GAAU,GACNsuG,GAAoBC,IACtB54G,EAAIrS,KAAK,oCAAoC/I,YAAY,2CAE3D40H,GAAiB,EACjBC,GAAuB,EACvBd,GAAmB,EACnBC,GAAyB,EAG3B,SAAS/pF,IACPr4C,EAAK4nB,QAAQ07G,MAAMtvE,OAAOh0D,GAG5B,IAAI8jB,IAA4C,eAA1BsF,EAAIoN,YAAYC,QAA0BrN,EAAI8J,QAAQpP,kBAAkB,CAAEsS,SAAS,EAAMvlB,SAAS,GAExH7Q,EAAKwpB,IAAIhZ,GAAG4Y,EAAIoN,YAAYC,MAAOmI,EAAkB9a,GACrDsF,EAAI5Y,GAAG,mBAAoBwuB,GAC3B5V,EAAI5Y,GAAG,mBAAoB4xB,GAC3BhZ,EAAI5Y,GAAG,SAAU6nC,GAEjBr4C,EAAKujI,mBAAqB,WACxBvjI,EAAKwpB,IAAI3X,IAAIuX,EAAIoN,YAAYC,MAAOmI,EAAkB9a,GACtDsF,EAAIvX,IAAI,mBAAoBmtB,GAC5B5V,EAAIvX,IAAI,mBAAoBuwB,GAC5BhZ,EAAIvX,IAAI,SAAUwmC,KAGtB2b,OAAQ,SAAgBh0D,GACtB,IAAI4O,EAAQ5O,EAAK4O,MAEbkU,EAAMlU,EAAMkU,IACZg9G,EAAMlxH,EAAMkxH,IAEZyC,EAAeviI,EAAKwpB,IAAIrS,KAAK,6BAA6B,GAAG3D,YAC7DgvH,EAAgBxiI,EAAKwpB,IAAIrS,KAAK,6BAA6B,GAAGvD,aAC9D4vH,EAAYxjI,EAAKwpB,IAAIrS,KAAK,uBAAuB,GAAG3D,YACpDiwH,EAAgBD,EAAY,EAC5BE,EAAW90H,EAAMoxH,IAAMxnH,KAAKY,GAAK,IAEjCuqH,EADaH,EAAY,EACK,EAC9BI,EAAKH,EAAgBjrH,KAAK83G,IAAIoT,IAAaD,EAAgBE,GAAkBA,EAC7EE,EAAKJ,EAAgBjrH,KAAKW,IAAIuqH,IAAaD,EAAgBE,GAAkBA,EACjF3jI,EAAKwpB,IAAIrS,KAAK,8BACX/D,IAAI,mBAAqB,OAAU0P,EAAI,GAAM,gBAC7C7S,UAAW,aAAe2zH,EAAK,OAASC,EAAK,OAEhD7jI,EAAKwpB,IAAIrS,KAAK,6BACX/D,IAAI,mBAAqB,OAAU0P,EAAI,GAAM,gBAEhD9iB,EAAKwpB,IAAIrS,KAAK,oCACX/D,IAAI,mBAAqB,OAAU0P,EAAI,GAAM,KAAiB,IAATA,EAAI,GAAY,MAAkB,IAATA,EAAI,GAAY,MAC9F7S,UAAW,aAAgBsyH,EAAezC,EAAI,GAAM,OAAU0C,GAAiB,EAAI1C,EAAI,IAAO,QAEnGr2G,QAAS,SAAiBzpB,GACpBA,EAAKujI,oBAAsBvjI,EAAKujI,4BAC7BvjI,EAAKujI,qBAIZO,YAA4B,SAAU38G,GACxC,SAAS28G,EAAY16G,EAAKzP,QACR,IAAXA,IAAoBA,EAAS,IAElCwN,EAAgB/gB,KAAKlG,KAAMyZ,EAAQ,CAACyP,IACpC,IAIIu7C,EAMA2G,EAKAnhD,EAfAnqB,EAAOE,KAKX,GAHAF,EAAK2Z,OAASyD,MAAM5U,OAAO,GAAI4gB,EAAIzP,OAAOoqH,YAAapqH,GAGnD3Z,EAAK2Z,OAAOirD,aAEc,KAD5BD,EAAeh4D,EAAE3M,EAAK2Z,OAAOirD,cACZpjE,OAAgB,OAAOxB,EA0C1C,SAASu2E,IACPv2E,EAAK2pB,OAEP,SAASg5D,EAAa5xE,GACpBA,EAAEmmB,iBAEJ,SAAS8sG,IACPhkI,EAAK2pB,OAEP,SAASk5D,EAAY9xE,GACnB,IAAI/Q,EAAK6mD,WAAc7mD,EAAK2Z,QACD,SAAvB3Z,EAAK2Z,OAAOw/D,OAAhB,CACA,IAAI8qD,EAAiBt3H,EAAEoE,EAAEtI,QACpBzI,EAAK0lD,SAAU1lD,EAAK+iF,UACrBkhD,EAAe/sH,QAAQ,uBAAuB1V,QAC9CyiI,EAAe/sH,QAAQ,8CAA8C1V,SACrE8pE,GAAYA,EAAS9pE,OAAS,EAC5ByiI,EAAe,KAAO34D,EAAS,IAAwD,IAAlD24D,EAAe/sH,QAAQ,gBAAgB1V,QAC9ExB,EAAKiqB,QAEiD,IAA/Ctd,EAAEoE,EAAEtI,QAAQyO,QAAQ,gBAAgB1V,QAC7CxB,EAAKiqB,WAwCT,OAnGIjqB,EAAK2Z,OAAO0xD,UACdC,EAAW3+D,EAAE3M,EAAK2Z,OAAO0xD,UAIvBrrE,EAAK2Z,OAAOiQ,WACdO,EAAYxd,EAAE3M,EAAK2Z,OAAOiQ,WAG5BxM,MAAM5U,OAAOxI,EAAM,CACjBopB,IAAKA,EACLu7C,aAAcA,EACdC,YAAaD,GAAgBA,EAAa,GAC1Cwc,OAAQxc,GAAgBA,EAAanjE,OAAS,EAC9C8pE,SAAUA,EACVD,QAASC,GAAYA,EAAS,GAC9BnhD,UAAWA,EACXP,SAAUO,GAAaA,EAAU,GACjCsE,aAAa,EACbi3B,QAAQ,EACRpnC,IAAKte,EAAK2Z,OAAO2E,IACjBsJ,QAAS,CACPs8G,eAAgBtF,kBAChBuF,gBAAiB/E,mBACjBn+G,IAAOo+G,UACP+E,cAAe1E,iBACf2E,aAAc7D,gBACd8D,oBAAqB7D,uBACrBE,QAAWD,cACX6D,yBAA0BzD,2BAC1B0D,WAAYvD,cACZwD,cAAe7C,iBACf8C,cAAezC,iBACf0C,cAAelC,iBACfa,MAASR,eA8Bb1lH,MAAM5U,OAAOxI,EAAM,CACjBgjF,kBAAmB,WACjBhjF,EAAKsrE,SAAS96D,GAAG,QAAS+lE,GACtBv2E,EAAK2Z,OAAOspE,gBACdjjF,EAAKsrE,SAAS96D,GAAG,kBAAmBmyE,GAChC3iF,EAAKsrE,SAAS,KAChBtrE,EAAKsrE,SAAS,GAAG6B,oBAAqB,KAI5C+V,kBAAmB,WACjBljF,EAAKsrE,SAASz5D,IAAI,QAAS0kE,GACvBv2E,EAAK2Z,OAAOspE,gBACdjjF,EAAKsrE,SAASz5D,IAAI,kBAAmB8wE,GACjC3iF,EAAKsrE,SAAS,WACTtrE,EAAKsrE,SAAS,GAAG6B,qBAI9By3D,mBAAoB,WAClB5kI,EAAKmqB,UAAU3Z,GAAG,QAASwzH,IAE7Ba,mBAAoB,WAClB7kI,EAAKmqB,UAAUtY,IAAI,QAASmyH,IAE9B7gD,iBAAkB,WAChB/5D,EAAI5Y,GAAG,QAASqyE,IAElBO,iBAAkB,WAChBh6D,EAAIvX,IAAI,QAASgxE,MAIrB7iF,EAAKysB,OAEEzsB,EAGJmnB,IAAkB28G,EAAY18G,UAAYD,GAC/C28G,EAAYn7H,UAAYvE,OAAOijB,OAAQF,GAAmBA,EAAgBxe,WAC1Em7H,EAAYn7H,UAAUxE,YAAc2/H,EAEpC,IAAIl2G,EAAqB,CAAE2O,KAAM,CAAEx0B,cAAc,IA0sBjD,OAxsBA6lB,EAAmB2O,KAAKnzB,IAAM,WAC5B,IAKImzB,EAJA+uC,EADMprE,KACSorE,SACfnhD,EAFMjqB,KAEUiqB,UAChBf,EAHMlpB,KAGIkpB,IACVzP,EAJMzZ,KAIOyZ,OAcjB,OAZIA,EAAO4iB,KACTA,EAAO5iB,EAAO4iB,MAEV+uC,IACF/uC,EAAO+uC,EAAS/mE,QAAQ,SAAS/C,QAAU8pE,EAAS/mE,QAAQ,SAAS,GAAGy0C,SAErEzc,GAAQpS,IACXoS,EAAOpS,EAAU5lB,QAAQ,SAAS/C,QAAU2oB,EAAU5lB,QAAQ,SAAS,GAAGy0C,SAGzEzc,IAAQA,EAAOnT,EAAIkT,MAAMyc,MAEvBxc,GAGTunG,EAAYn7H,UAAUotC,aAAe,WACxB71C,KACN4kI,cADM5kI,KACe4kI,cAAcvpH,KAD7Brb,MAAAA,KAEFyZ,OAAOmrH,eAFL5kI,KAGJkpB,IAAI5Y,GAAG,SAHHtQ,KAGkB4kI,gBAI/BhB,EAAYn7H,UAAU0zD,aAAe,WACxBn8D,KACFyZ,OAAOmrH,eADL5kI,KAEJkpB,IAAIvX,IAAI,SAFJ3R,KAEmB4kI,gBAIhChB,EAAYn7H,UAAUm8H,cAAgB,WAEpC,GADW5kI,KACDwlD,QADCxlD,KACespB,MADftpB,KAC2BihF,OAAtC,CACA,IAAI19B,EAFOvjD,KAEespB,IAAIrS,KAAK,iBACnC,GAAKssC,EAAejiD,OAApB,CACA,IAAIyZ,EAAMwoC,EAAe,GACNxoC,EAAI1C,cACJ0C,EAAIrH,aAErB6vC,EAAe11C,SAAS,0BAExB01C,EAAer1C,YAAY,6BAI/B01H,EAAYn7H,UAAUw+E,UAAY,WACrBjnF,KACDorE,UADCprE,KAEFyZ,OAAOspE,eAFL/iF,KAE2BorE,SAASlkE,KAAK,YAAY,IAGlE08H,EAAYn7H,UAAUo8H,aAAe,WACnC,IACI37G,EADOlpB,KACIkpB,IACXuc,EAFOzlC,KAEMylC,MACbhsB,EAHOzZ,KAGOyZ,OACdw/D,EAASx/D,EAAOw/D,OAChB6rD,EAAcrrH,EAAOqrH,YACzB,OAAIr/F,GAASA,EAAMpjC,KAAeojC,EAAMpjC,KACzB,SAAX42E,EAA4BA,EAPrBj5E,KAQFihF,OAAiB,KACtB/3D,EAAI7E,OAAOC,IACN4E,EAAI7E,OAAOO,KAAO,UAAYkgH,EAEnC57G,EAAIlW,OAAS,KAAQkW,EAAI7E,OAAOI,SAAyB,WAAdyE,EAAI/C,MAC1C,UAGF2+G,GAGTlB,EAAYn7H,UAAU2rE,YAAc,WAClC,IACI1lE,EADO1O,KACM0O,MACjB,OAFW1O,KAEFyZ,OAAO26D,YAFLp0E,KAGGyZ,OAAO26D,YAAYluE,KAHtBlG,KAGiC0O,GAErCA,EAAMqS,KAIf6iH,EAAYn7H,UAAUs8H,kBAAoB,SAA4BphI,GACpE,MAAO,CACL2U,KAAK8E,MAAe,GAATzZ,EAAI,IAAW,GAC1B2U,KAAK8E,MAAe,IAATzZ,EAAI,IAAa,IAC5B2U,KAAK8E,MAAe,IAATzZ,EAAI,IAAa,MAGhCigI,EAAYn7H,UAAUypE,SAAW,SAAmBxjE,EAAOs2H,QAC1C,IAAVt2H,IAAmBA,EAAQ,SACT,IAAlBs2H,IAA2BA,GAAgB,GAEhD,IAAIllI,EAAOE,KACX,QAAqB,IAAV0O,EAAX,CAEA,IAAIqM,EAAOjb,EAAK4O,OAAS,GACrBqS,EAAMhG,EAAIgG,IACV4B,EAAM5H,EAAI4H,IACVC,EAAM7H,EAAI6H,IACVg9G,EAAM7kH,EAAI6kH,IACVb,EAAQhkH,EAAIgkH,WAAsB,IAAVA,IAAmBA,EAAQ,GACvD,IAKI9rD,EALA6sD,EAAM/kH,EAAI+kH,IACVmF,EAAOlqH,EAAIkqH,KACXC,EAAOnqH,EAAImqH,KAEXC,EAAkBrlI,EAAK4O,QAAW5O,EAAK4O,QAAU5O,EAAK2Z,OAAO/K,MAkBjE,GAhBAxK,OAAO2B,KAAK6I,GAAO3K,SAAQ,SAAUoN,GACnC,GAAKrR,EAAK4O,YAAkC,IAAlB5O,EAAK4O,MAAMyC,GAArC,CAIA,IAAIknC,EAAI3pC,EAAMyC,GACVrO,MAAMC,QAAQs1C,GAChBA,EAAEt0C,SAAQ,SAAUqhI,EAAM1kG,GACpB0kG,IAAStlI,EAAK4O,MAAMyC,GAAGuvB,KACzBuyC,GAAe,MAGV56B,IAAMv4C,EAAK4O,MAAMyC,KAC1B8hE,GAAe,QAXfA,GAAe,KAcdA,EAAL,CAEA,GAAIvkE,EAAMiU,KAAOjU,EAAMu2H,KAAM,CAC3B,IAAI53E,EAAS3+C,EAAMiU,KAAOjU,EAAMu2H,KAC5B/jH,EAAImsC,EAAM,GACVlsC,EAAIksC,EAAM,GACVjsC,EAAIisC,EAAM,GACV7zC,EAAI6zC,EAAM,QAAe,IAAN7zC,IAAeA,EAAIulH,GAC1Cp8G,EAAM,CAACzB,EAAGC,EAAGC,GACbL,EAAM7D,MAAMuE,cAAcvQ,MAAMgM,MAAOyF,GACvCC,EAAM1F,MAAMwE,cAAcxQ,MAAMgM,MAAOyF,GACvCi9G,EAAM1iH,MAAMuF,cAAcvR,MAAMgM,MAAO0F,GACvCA,EAAM9iB,EAAKilI,kBAAkBniH,GAE7Bk9G,GADAF,EAAM9/H,EAAKilI,kBAAkBnF,IACnB,GACVb,EAAQvlH,EACRyrH,EAAO,CAACtiH,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAInJ,GAChC0rH,EAAO,CAACtiH,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAIpJ,GAGlC,GAAI9K,EAAMkU,KAAOlU,EAAMw2H,KAAM,CAC3B,IAAIv3E,EAASj/C,EAAMkU,KAAOlU,EAAMw2H,KAC5BlkH,EAAI2sC,EAAM,GACV5rC,EAAI4rC,EAAM,GACV/rC,EAAI+rC,EAAM,GACV03E,EAAM13E,EAAM,QAAiB,IAAR03E,IAAiBA,EAAMtG,GAChDn8G,EAAM,CAAC5B,EAAGe,EAAGH,GACbe,EAAMzF,MAAM4E,cAAc5Q,MAAMgM,MAAO0F,GACvC7B,EAAM7D,MAAMuE,cAAcvQ,MAAMgM,MAAOyF,GACvCi9G,EAAM1iH,MAAMuF,cAAcvR,MAAMgM,MAAO0F,GACvCA,EAAM9iB,EAAKilI,kBAAkBniH,GAE7Bk9G,GADAF,EAAM9/H,EAAKilI,kBAAkBnF,IACnB,GACVb,EAAQsG,EACRJ,EAAO,CAACtiH,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAI0iH,GAChCH,EAAO,CAACtiH,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAIyiH,GAGlC,GAAI32H,EAAMkxH,IAAK,CACb,IAAI0F,EAAQ52H,EAAMkxH,IACd2F,EAAMD,EAAM,GACZE,EAAMF,EAAM,GACZG,EAAMH,EAAM,GACZI,EAAMJ,EAAM,QAAiB,IAARI,IAAiBA,EAAM3G,GAChDa,EAAM,CAAC2F,EAAKC,EAAKC,GACjB7iH,EAAM1F,MAAMoF,cAAcpR,MAAMgM,MAAO0iH,GACvCj9G,EAAMzF,MAAM4E,cAAc5Q,MAAMgM,MAAO0F,GACvC7B,EAAM7D,MAAMuE,cAAcvQ,MAAMgM,MAAOyF,GACvCC,EAAM9iB,EAAKilI,kBAAkBniH,GAE7Bk9G,GADAF,EAAM9/H,EAAKilI,kBAAkBnF,IACnB,GACVb,EAAQ2G,EACRT,EAAO,CAACtiH,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAI+iH,GAChCR,EAAO,CAACtiH,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAI8iH,GAyBlC,GAtBIh3H,EAAMqS,MACR4B,EAAMzF,MAAM4D,cAAcpS,EAAMqS,KAChCA,EAAM7D,MAAMuE,cAAcvQ,MAAMgM,MAAOyF,GACvCC,EAAM1F,MAAMwE,cAAcxQ,MAAMgM,MAAOyF,GACvCi9G,EAAM1iH,MAAMuF,cAAcvR,MAAMgM,MAAO0F,GACvCA,EAAM9iB,EAAKilI,kBAAkBniH,GAE7Bk9G,GADAF,EAAM9/H,EAAKilI,kBAAkBnF,IACnB,GACVqF,EAAO,CAACtiH,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAIo8G,GAChCmG,EAAO,CAACtiH,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAIm8G,SAGP,IAAhBrwH,EAAMqwH,QACfA,EAAQrwH,EAAMqwH,WACK,IAARp8G,IACTsiH,EAAO,CAACtiH,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAIo8G,SAEf,IAARn8G,IACTsiH,EAAO,CAACtiH,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAIm8G,UAIX,IAAdrwH,EAAMoxH,IAAqB,CAC1Bl9G,EAAI,GAAd,IACI+iH,EAAM/iH,EAAI,GACVgjH,EAAMhjH,EAAI,GACdA,EAAM,CAAClU,EAAMoxH,IAAK6F,EAAKC,GACvBhG,EAAM1iH,MAAMuF,cAAcvR,MAAMgM,MAAO0F,GACvCD,EAAMzF,MAAM4E,cAAc5Q,MAAMgM,MAAO0F,GACvC7B,EAAM7D,MAAMuE,cAAcvQ,MAAMgM,MAAOyF,GACvCC,EAAM9iB,EAAKilI,kBAAkBniH,GAE7Bk9G,GADAF,EAAM9/H,EAAKilI,kBAAkBnF,IACnB,GACVqF,EAAO,CAACtiH,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAIo8G,GAChCmG,EAAO,CAACtiH,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAAIm8G,GAElCj/H,EAAK4O,MAAQ,CACXqS,IAAKA,EACLg+G,MAAOA,EACPe,IAAKA,EACLn9G,IAAKA,EACLC,IAAKA,EACLg9G,IAAKA,EACLqF,KAAMA,EACNC,KAAMA,GAEHplI,EAAKsa,eAAgBta,EAAKsa,aAAe8C,MAAM5U,OAAO,GAAIxI,EAAK4O,QACpE5O,EAAKipF,YAAYo8C,GACbrlI,EAAK0lD,QAAUw/E,GACjBllI,EAAKklI,mBAITpB,EAAYn7H,UAAU4qE,SAAW,WAE/B,OADWrzE,KACC0O,OAGdk1H,EAAYn7H,UAAUsgF,YAAc,SAAsB88C,QACpC,IAAfA,IAAwBA,GAAa,GAE1C,IACIz6D,EADOprE,KACSorE,SAChB18D,EAFO1O,KAEM0O,MACbub,EAHOjqB,KAGUiqB,UACrB,GAAIA,GAJOjqB,KAIWyZ,OAAOqsH,2BAA4B,CACvD,IAAIb,EAAOv2H,EAAMu2H,KACjBh7G,EAAU/W,IAAI,mBAAqB,QAAW+xH,EAAK9gI,KAAK,MAAS,KAMnE,GAJI0hI,GARO7lI,KASJ2mB,KAAK,kCATD3mB,KAS0C0O,GAGjD08D,GAAYA,EAAS9pE,OAAQ,CAC/B,IAAIsoD,EAbK5pD,KAaao0E,YAAY1lE,GAC9B08D,GAAYA,EAAS9pE,SACvB8pE,EAAS37D,IAAIm6C,GACTi8E,GACFz6D,EAAS/4D,QAAQ,aAMzBuxH,EAAYn7H,UAAUu8H,cAAgB,WACpC,IAAIllI,EAAOE,KACP0nB,EAAU5nB,EAAK4nB,QACnB5nB,EAAK2Z,OAAOiO,QAAQ3jB,SAAQ,SAAUkd,GACnB,iBAANA,GAAkByG,EAAQzG,IAAMyG,EAAQzG,GAAG6yC,OACpDpsC,EAAQzG,GAAG6yC,OAAOh0D,GACTmhB,GAAKA,EAAE6yC,QAChB7yC,EAAE6yC,OAAOh0D,OAKf8jI,EAAYn7H,UAAUqrD,OAAS,WAClB9zD,KACNglI,iBAGPpB,EAAYn7H,UAAUs9H,aAAe,WACnC,IAAIjmI,EAAOE,KACPyZ,EAAS3Z,EAAK2Z,OACdiO,EAAU5nB,EAAK4nB,QACf7a,EAAO,GAUX,OARA4M,EAAOiO,QAAQ3jB,SAAQ,SAAUkd,GACd,iBAANA,GAAkByG,EAAQzG,IAAMyG,EAAQzG,GAAGtI,OACpD9L,GAAQ6a,EAAQzG,GAAGtI,OAAO7Y,GACjBmhB,GAAKA,EAAEtI,SAChB9L,GAAQoU,EAAEtI,OAAO7Y,OAId+M,GAGT+2H,EAAYn7H,UAAU8rH,aAAe,WAEnC,GADWv0H,KACFyZ,OAAO86G,aACd,OAFSv0H,KAEGyZ,OAAO86G,aAAaruH,KAFvBlG,KAAAA,MAIX,IAAI+a,EAJO/a,KAIIyZ,OACXw/D,EAASl+D,EAAIk+D,OACb+sD,EAAkBjrH,EAAIirH,gBACtBC,EAAqBlrH,EAAIkrH,mBACzBC,EAAkBnrH,EAAImrH,gBAC1B,OAAQ,uHAA0I,SAAXjtD,EAAqB,kJAA4JgtD,EAAqB,oDAAuD,IAAM,gCAAoCD,EAAkB,oBAAiC,SAAX/sD,EAAqB,yGAAiHitD,EAAkB,iCAAoC,IAAM,kCAAkC/kI,QAG5rByiI,EAAYn7H,UAAUolF,cAAgB,WAEpC,OADW7tF,KACFyZ,OAAOo0E,cADL7tF,KAEGyZ,OAAOo0E,cAAc3nF,KAFxBlG,KAAAA,OAIH,wRAJGA,KAI2SyZ,OAAuB,iBAAI,sDAAsDtY,QAGzYyiI,EAAYn7H,UAAUulF,aAAe,WACnC,IACIjzE,EADO/a,KACIyZ,OACX6tC,EAAWvsC,EAAIusC,SAInB,OAFkB,uDADGvsC,EAAIorH,eACoE,+BAAiC,IAAM,KAAO7+E,GAAY,IAAM,aAJlJtnD,KAIwK+lI,eAAkB,oBAAoB5kI,QAK3NyiI,EAAYn7H,UAAUqzE,YAAc,WAClC,IACI/gE,EADO/a,KACIyZ,OACX6tC,EAAWvsC,EAAIusC,SACf8+E,EAAerrH,EAAIqrH,aAIvB,OAFiB,wEADIrrH,EAAIorH,eACoF,+BAAiC,IAAM,KAAO7+E,GAAY,IAAM,cAAiB8+E,EALnLpmI,KAKuM6tF,gBAAkB,IAAM,0FAL/N7tF,KAKqU+lI,eAAkB,kDAAkD5kI,QAKtZyiI,EAAYn7H,UAAU4lD,cAAgB,WACpC,IACItzC,EADO/a,KACIyZ,OACX6tC,EAAWvsC,EAAIusC,SACf++E,EAAiBtrH,EAAIsrH,eAIzB,OAFmB,mDAAsD/+E,GAAY,IAAM,4EADtEvsC,EAAIorH,eACqK,+BAAiC,IAAM,kBAAqBE,EAL/OrmI,KAKqQ6tF,gBAAkB,IAAM,uDAL7R7tF,KAK8V+lI,eAAkB,oEAAoE5kI,QAKjcyiI,EAAYn7H,UAAUmzE,YAAc,WAClC,IACI7gE,EADO/a,KACIyZ,OACX6tC,EAAWvsC,EAAIusC,SACfg/E,EAAcvrH,EAAIurH,YAClBH,EAAiBprH,EAAIorH,eAGzB,OAFiB,+CAAkD7+E,GAAY,IAAM,0CAA+Cg/E,EALzHtmI,KAK4Iu0H,eAAiB,IAAM,uCAA0C4R,EAAiB,+BAAiC,IAAM,yDALrQnmI,KAKyU+lI,eAAkB,oEAAoE5kI,QAK5ayiI,EAAYn7H,UAAU6yE,WAAa,WACjC,IACIvgE,EADO/a,KACIyZ,OACX6tC,EAAWvsC,EAAIusC,SACf6+E,EAAiBprH,EAAIorH,eAEzB,OADgB,6CAAgD7+E,GAAY,IAAM,2CAJvEtnD,KAI6Hu0H,eAAkB,qCAAwC4R,EAAiB,+BAAiC,IAAM,qDAJ/OnmI,KAI+S+lI,eAAkB,kDAAkD5kI,QAKhYyiI,EAAYn7H,UAAUkQ,OAAS,WAC7B,IACIc,EADOzZ,KACOyZ,OAClB,GAAIA,EAAOd,OAAU,OAAOc,EAAOd,OAAOzS,KAF/BlG,MAGX,GAHWA,KAGFihF,OAAU,OAHRjhF,KAGoBguF,eAC/B,GAAsB,SAAlBv0E,EAAOw/D,OACT,OALSj5E,KAKGs7E,aAGd,IAAIv2C,EARO/kC,KAQU6kI,eACrB,MAAkB,YAAd9/F,EATO/kC,KASgCquD,gBACzB,UAAdtpB,EAVO/kC,KAU8B87E,cACvB,UAAd/2C,EAXO/kC,KAW8B47E,mBAAzC,GAGFgoD,EAAYn7H,UAAUg9C,OAAS,WAC7B,IAAI3lD,EAAOE,KACPuuB,EAAczuB,EAAKyuB,YACnBjF,EAAMxpB,EAAKwpB,IACXJ,EAAMppB,EAAKopB,IACXkiD,EAAWtrE,EAAKsrE,SAChB6V,EAASnhF,EAAKmhF,OACdvyE,EAAQ5O,EAAK4O,MACb+K,EAAS3Z,EAAK2Z,OACdiO,EAAU5nB,EAAK4nB,QACnB5nB,EAAK+iF,SAAU,EACf/iF,EAAK0lD,QAAS,EACd1lD,EAAK8uF,SAAU,EAGf9uF,EAAK+1C,eAELp8B,EAAOiO,QAAQ3jB,SAAQ,SAAUkd,GACd,iBAANA,GAAkByG,EAAQzG,IAAMyG,EAAQzG,GAAGsL,KACpD7E,EAAQzG,GAAGsL,KAAKzsB,GACPmhB,GAAKA,EAAEsL,MAChBtL,EAAEsL,KAAKzsB,MAIX,IAAIipF,GAAer6E,GAAS+K,EAAO/K,MAG9B6f,EAOM7f,IACT5O,EAAKsa,aAAe8C,MAAM5U,OAAO,GAAIoG,GACrC5O,EAAKoyE,SAASxjE,GAAO,IARjBA,EAAS5O,EAAKoyE,SAASxjE,GAClB+K,EAAO/K,MACd5O,EAAKoyE,SAASz4D,EAAO/K,OAAO,GAClB+K,EAAO/K,OACjB5O,EAAKoyE,SAAS,CAAEnxD,IAAK,YAAa,GAQlCgoE,GAAejpF,EAAKipF,cACxBjpF,EAAKklI,gBAGDvrH,EAAOmrH,eACT9kI,EAAK8kI,iBAIF3jD,GAAU7V,GAAYA,EAAS9pE,QAAwB,OAAd4nB,EAAI/C,OAChDilD,EAAS/4D,QAAQ,SAGnBvS,EAAKyuB,aAAc,EAGfjF,GACFA,EAAIjX,QAAQ,oBAEV+4D,GACFA,EAAS/4D,QAAQ,oBAEnBvS,EAAK6mB,KAAK,8BAA+B7mB,IAG3C8jI,EAAYn7H,UAAUi9C,SAAW,WACpB1lD,KACN4uF,SAAU,EADJ5uF,KAEFspB,KAFEtpB,KAGJspB,IAAIjX,QAAQ,sBAHRrS,KAKForE,UALEprE,KAMJorE,SAAS/4D,QAAQ,sBANbrS,KAQN2mB,KAAK,kCARC3mB,OAWb4jI,EAAYn7H,UAAUk9C,QAAU,WAC9B,IAAI7lD,EAAOE,KACPkpB,EAAMppB,EAAKopB,IACXzP,EAAS3Z,EAAK2Z,OACdiO,EAAU5nB,EAAK4nB,QAOnB,GANA5nB,EAAK8uF,SAAU,EACf9uF,EAAK+iF,SAAU,EAGf/iF,EAAKq8D,eAEDr8D,EAAKsrE,SACP,GAAkB,OAAdliD,EAAI/C,MACNrmB,EAAKsrE,SAAS/4D,QAAQ,YACjB,CACL,IAAIsnB,EAAW75B,EAAKsrE,SAAS58D,KAAK,YAC9BqgF,EAAW/uF,EAAKsrE,SAAS58D,KAAK,YAC9BmrB,GAAYk1D,GACd3lE,EAAIukD,MAAM9zC,SAAS75B,EAAKsrE,UAI9B3xD,EAAOiO,QAAQ3jB,SAAQ,SAAUkd,GACd,iBAANA,GAAkByG,EAAQzG,IAAMyG,EAAQzG,GAAGsI,QACpD7B,EAAQzG,GAAGsI,QAAQzpB,GACVmhB,GAAKA,EAAEsI,SAChBtI,EAAEsI,QAAQzpB,MAIVA,EAAKwpB,KACPxpB,EAAKwpB,IAAIjX,QAAQ,qBAEfvS,EAAKsrE,UACPtrE,EAAKsrE,SAAS/4D,QAAQ,qBAExBvS,EAAK6mB,KAAK,gCAAiC7mB,IAG7C8jI,EAAYn7H,UAAUm9C,SAAW,WAC/B,IAAI9lD,EAAOE,KACXF,EAAK0lD,QAAS,EACd1lD,EAAK+iF,SAAU,EAEV/iF,EAAKmhF,QACR/jE,MAAMW,UAAS,WACT/d,EAAK2lC,OAAS3lC,EAAK2lC,MAAMv2B,IAAMpP,EAAK2lC,MAAMlc,UACvCzpB,EAAK2Z,OAAO8jE,gBACfz9E,EAAK2lC,MAAMlc,kBAGRzpB,EAAK2lC,SAGZ3lC,EAAKwpB,KACPxpB,EAAKwpB,IAAIjX,QAAQ,sBAEfvS,EAAKsrE,UACPtrE,EAAKsrE,SAAS/4D,QAAQ,sBAExBvS,EAAK6mB,KAAK,kCAAmC7mB,IAG/C8jI,EAAYn7H,UAAUghB,KAAO,WAC3B,IAAIphB,EAEAvI,EAAOE,KACPkpB,EAAMppB,EAAKopB,IACXs8B,EAAS1lD,EAAK0lD,OACdy7B,EAASnhF,EAAKmhF,OACd7V,EAAWtrE,EAAKsrE,SAChBnhD,EAAYnqB,EAAKmqB,UACjBxQ,EAAS3Z,EAAK2Z,OAClB,IAAI+rC,EAAJ,CAEA,GAAIy7B,EAMF,OALAnhF,EAAKwpB,IAAM7c,EAAE3M,EAAK6Y,UAClB7Y,EAAKwpB,IAAI,GAAGi9G,cAAgBzmI,EAC5BA,EAAK2kE,aAAalvD,OAAOzV,EAAKwpB,KAC9BxpB,EAAK2lD,cACL3lD,EAAK4lD,WAIP,IAAI8gF,EAAqB1mI,EAAK6Y,SAE9B,GAAsB,SAAlBc,EAAOw/D,OACTn5E,EAAKu8B,KAAKnO,OAAO4N,SAAS,CACxB1d,IAAKte,EAAKse,IACV0c,MAAO,CACLx4B,QAASkkI,EACT5tG,KAAM94B,EAAKse,IACX9N,GAAI,CACFwyC,aAAc,SAAsBjyC,EAAG4kC,GACrC31C,EAAKwpB,IAAMmsB,EAAKnsB,IAAIrS,KAAK,iBACzBnX,EAAKwpB,IAAI,GAAGi9G,cAAgBzmI,EAC5BA,EAAK2lD,UAEPpa,YAAa,WACXvrC,EAAK4lD,YAEPm3B,cAAe,WACb/8E,EAAK6lD,WAEPm3B,aAAc,WACZh9E,EAAK8lD,WACD9lD,EAAKwpB,KAAOxpB,EAAKwpB,IAAI,KACvBxpB,EAAKwpB,IAAI,GAAGi9G,cAAgB,YACrBzmI,EAAKwpB,IAAI,GAAGi9G,wBAMxB,CACL,IAAIxhG,EAAYjlC,EAAK+kI,eACjBp+E,EAAWhtC,EAAOgtC,SAClBA,MAAAA,IACgB,YAAd1hB,IAA2D,IAAhC7b,EAAIzP,OAAO+yC,QAAQ/F,WAAsBA,GAAW,GACjE,UAAd1hB,IAAyB0hB,GAAW,IAE1C,IAAIpZ,EAAc,CAChB3jB,SAAWO,GAAamhD,EACxBpa,WAAYv3C,EAAOs1E,cAAiB9kE,GAAamhD,OAAYjrE,EAC7DmC,QAASkkI,EACT//E,SAAUA,EACVD,qBAAsB/sC,EAAO+sC,qBAC7Bl2C,GAAI,CACFmZ,KAAM,WAEJ3pB,EAAK2lC,MADOzlC,KAEZF,EAAKwpB,IAAoB,YAAdyb,GAAyC,UAAdA,EAF1B/kC,KAEwDspB,IAAIrS,KAAK,iBAFjEjX,KAE0FspB,IACtGxpB,EAAKwpB,IAAI,GAAGi9G,cAAgBzmI,EAC5BA,EAAK2lD,UAEPD,OAAQ,WAAoB1lD,EAAK4lD,YACjC37B,MAAO,WAAmBjqB,EAAK6lD,WAC/BiJ,OAAQ,WACN9uD,EAAK8lD,WACD9lD,EAAKwpB,KAAOxpB,EAAKwpB,IAAI,KACvBxpB,EAAKwpB,IAAI,GAAGi9G,cAAgB,YACrBzmI,EAAKwpB,IAAI,GAAGi9G,kBAKT,UAAdxhG,IACFsI,EAAY3rC,KAAO+X,EAAOwjE,UAC1B5vC,EAAYme,aAAe/xC,EAAOyjE,mBAElB,UAAdn4C,IACFsI,EAAY3rC,KAAO+X,EAAOikE,UAC1BrwC,EAAYme,aAAe/xC,EAAOkkE,mBAEhClkE,EAAO8jE,gBAAkBz9E,EAAKu8B,KAChCv8B,EAAKu8B,KAAKnO,OAAO4N,SAAS,CACxB1d,IAAKte,EAAKse,IACV0c,OAASzyB,EAAM,CACbuwB,KAAM94B,EAAKse,KACV/V,EAAI08B,GAAasI,EAAahlC,MAGnCvI,EAAK2lC,MAAQvc,EAAI6b,GAAW5d,OAAOkmB,GACnCvtC,EAAK2lC,MAAMhc,WAKjBm6G,EAAYn7H,UAAUshB,MAAQ,WAC5B,IACIy7B,EADOxlD,KACOwlD,OACdy7B,EAFOjhF,KAEOihF,OAClB,GAAKz7B,EACL,OAAIy7B,GAJOjhF,KAKJ2lD,eALI3lD,KAMJ4lD,iBANI5lD,KASDyZ,OAAO8jE,gBATNv9E,KAS6Bq8B,MAAgC,SAT7Dr8B,KAS2CyZ,OAAOw/D,OATlDj5E,KAUJq8B,KAAKnO,OAAOpiB,OAVR9L,KAYJylC,MAAM1b,UAIf65G,EAAYn7H,UAAU8jB,KAAO,WAK3B,GAJWvsB,KAENinF,YAFMjnF,KAIFihF,OAGP,OAPSjhF,KAKJypB,YALIzpB,KAMJ2mB,KAAK,8BAND3mB,OAAAA,KAUDuuB,aAVCvuB,KAUmByZ,OAAO/K,OAV1B1O,KAWJkyE,SAXIlyE,KAWUyZ,OAAO/K,OAXjB1O,KAeForE,UAfEprE,KAgBJ8iF,oBAhBI9iF,KAkBFiqB,WAlBEjqB,KAmBJ0kI,qBAnBI1kI,KAqBFyZ,OAAOkzC,qBArBL3sD,KAsBJijF,mBAtBIjjF,KAwBN2mB,KAAK,8BAxBC3mB,OA2Bb4jI,EAAYn7H,UAAU8gB,QAAU,WAE9B,IADWvpB,KACF2mD,UAAT,CACA,IAAIr9B,EAFOtpB,KAEIspB,IAFJtpB,KAGN2mB,KAAK,gDAHC3mB,MAIPspB,GAAOA,EAAIjX,QAAQ,6BAJZrS,KAMN+pB,QANM/pB,KASNm8D,eATMn8D,KAUForE,UAVEprE,KAWJgjF,oBAXIhjF,KAaFiqB,WAbEjqB,KAcJ2kI,qBAdI3kI,KAgBFyZ,OAAOkzC,qBAhBL3sD,KAiBJkjF,mBAGH55D,GAAOA,EAAIhoB,eApBJtB,KAoB0BspB,IAAI,GAAGi9G,cAC5CrpH,MAAMU,YArBK5d,MAAAA,KAsBN2mD,WAAY,IAGnBziD,OAAOiF,iBAAkBy6H,EAAYn7H,UAAWilB,GAEzCk2G,EAp0BsB,CAq0B7B38G,iBAEEw/G,cAAgB,CAClBjiI,KAAM,cACNmkB,OAAQ,CACNi7G,YAAaA,aAEfz8G,OAAQ,WACInnB,KACN6jI,YAAch7G,mBAAmB,CACnCE,gBAAiB,gBACjB9kB,YAAa2/H,YACb16G,IAJQlpB,KAKRipB,QAAS,kBALDjpB,KAON6jI,YAAY95G,MAAQ,SAAe7a,QACzB,IAAPA,IAAgBA,EAAK,iBAE1B,IAAIoa,EAAM7c,EAAEyC,GACZ,GAAmB,IAAfoa,EAAIhoB,OAAR,CACA,IAAIuiI,EAAcv6G,EAAI,GAAGi9G,eACpB1C,GAAgBA,IAAgBA,EAAYr+E,QACjDq+E,EAAY95G,WAGhBtQ,OAAQ,CACNoqH,YAAa,CAEXn1H,MAAO,KACPgZ,QAAS,CACP,SACF+4G,QAAS,CACP,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WACpG,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WACpG,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WACpG,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WACpG,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WACpG,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WACpG,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,WACpG,CAAC,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,UAAW,YACtG0F,gBAAgB,EAChBvB,eAAe,EAEfjG,aAAa,EACbC,aAAa,EACb8H,oBAAoB,EAEpB1F,UAAU,EACVC,UAAU,EACV0F,iBAAiB,EAEjBvH,UAAU,EACVE,kBAAkB,EAElB6B,aAAc,IACdC,eAAgB,IAChBC,cAAe,IACf5B,aAAc,IACdC,oBAAqB,IACrBC,oBAAqB,IACrBN,aAAc,MACdP,eAAgB,IAGhBp6D,YAAa,KACbuU,OAAQ,UACR6rD,YAAa,QACb7nD,WAAW,EACXC,uBAAmB/8E,EACnBu9E,WAAW,EACXC,uBAAmBx9E,EACnBi0E,YAAa,KACb1qD,SAAU,KACVo8G,4BAA4B,EAC5B36D,QAAS,KACT4X,eAAe,EACfp2B,qBAAqB,EACrBoiC,eAAe,EACfq3C,cAAc,EACdC,gBAAgB,EAChB53C,iBAAkB,OAClB63C,aAAa,EACbJ,gBAAiB,OACjBF,gBAAiB,QACjBC,mBAAoB,OACpB3+E,SAAU,KACVi2B,gBAAgB,EAChBlhD,KAAM,KACNje,IAAK,SACLqoC,SAAU,KACVD,sBAAsB,EAEtBqnC,cAAe,KACf0mC,aAAc,KACdvmC,aAAc,KACd3/B,cAAe,KACfytB,YAAa,KACbF,YAAa,KACbjjE,OAAQ,QAKViuH,SAAW,CACbn9G,KAAM,SAAcuzC,GAClB,IAAI9zC,EAAMlpB,KACNswF,EAAU7jF,EAAEuwD,GAAQ3nD,GAAG,GAK3B,SAASyD,EAAKmmB,GACRA,GACFqxD,EAAQpiF,YAAY,wBACpBoiF,EAAQj+E,QAAQ,kBAChB6W,EAAIvC,KAAK,gBAAiB2pE,EAAQ,KAElCA,EAAQ,GAAGu2C,0BAA2B,EAExCv2C,EAAQr5E,KAAK,oBAAoB/I,YAAY,0BAC7CoiF,EAAQr5E,KAAK,uBAAuB9I,SAbjCmiF,EAAQhvF,SACbgvF,EAAQziF,SAAS,wBACjByiF,EAAQj+E,QAAQ,iBAChB6W,EAAIvC,KAAK,eAAgB2pE,EAAQ,IAa7BA,EAAQliF,SAAS,4BAA8BkiF,EAAQ,GAAGu2C,2BAC5Dv2C,EAAQj+E,QAAQ,wBAAyByG,GACzCoQ,EAAIvC,KAAK,uBAAwB2pE,EAAQ,GAAIx3E,GAC7Cw3E,EAAQr5E,KAAK,oBAAoBpJ,SAAS,0BAC1CyiF,EAAQr5E,KAAK,uBAAuBnB,QAAS,6CAAkDoH,MAAQgM,EAAS,MAAI,oBAAwB,aAGhJa,MAAO,SAAeizC,GACpB,IACIszB,EAAU7jF,EAAEuwD,GAAQ3nD,GAAG,GACtBi7E,EAAQhvF,SACbgvF,EAAQpiF,YAAY,wBACpBoiF,EAAQj+E,QAAQ,kBAJNrS,KAKN2mB,KAAK,gBAAiB2pE,EAAQ,MAEpC/hF,OAAQ,SAAgByuD,GACtB,IACIszB,EAAU7jF,EAAEuwD,GAAQ3nD,GAAG,GAC3B,GAAKi7E,EAAQhvF,OAAb,CACA,IAAIwlI,EAAYx2C,EAAQliF,SAAS,wBAHvBpO,KAIN+mI,SAASD,EAAY,QAAU,QAAQx2C,MAI3C02C,WAAa,CACfxiI,KAAM,WACN2iB,OAAQ,WAENjK,MAAM5U,OADItI,KACQ,CAChB+mI,SAAU,CACRt9G,KAAMm9G,SAASn9G,KAAKpO,KAHdrb,MAIN+pB,MAAO68G,SAAS78G,MAAM1O,KAJhBrb,MAKNuO,OAAQq4H,SAASr4H,OAAO8M,KALlBrb,UASZw5C,OAAQ,CACNytF,mBAAoB,SAAgB5tF,EAAY6tF,EAAar2H,GAE3D,IAAIwoC,EAAWh1C,QAAQ,yBAAyB/C,OAAhD,CACA,IAAI6lI,EAAkB9tF,EAAWh1C,QAAQ,kBAAkBgR,GAAG,GACzD8xH,EAAgB7lI,SACrBuP,EAAE+oC,iBAAkB,EAJV55C,KAKN+mI,SAASx4H,OAAO44H,EAAgB,OAEtCC,wBAAyB,SAAgB/tF,EAAY6tF,EAAar2H,GAChE,IACIs2H,EAAkB9tF,EAAWriC,QAAQ,kBAAkB3B,GAAG,GACzD8xH,EAAgB7lI,SACrBuP,EAAE+oC,iBAAkB,EAHV55C,KAIN+mI,SAASx4H,OAAO44H,EAAgB,QAKtCE,qBAAuB,CAEzBz/E,KAAM,CAAC,OAAQ,cAAe,QAC9B0/E,OAAQ,CAAC,SAAU,gBAAiB,UACpCC,UAAW,CAAC,YAAa,oBAAqB,aAC9CC,cAAe,CAAC,gBAAiB,kBAAmB,iBACpDC,YAAa,CAAC,cAAe,uBAAwB,qBACrDC,cAAe,CAAC,cAAe,uBAAwB,uBACvDC,KAAM,CAAC,OAAQ,OAAQ,cACvBrtD,MAAO,CAAC,QAAS,QAAS,eAC1BstD,UAAW,CAAC,YAAa,wBAAyB,iBAClDC,GAAI,CAAC,oCAAqC,oCAAqC,kBAC/EC,GAAI,CAAC,oCAAqC,oCAAqC,kBAC/EC,GAAI,CAAC,oCAAqC,oCAAqC,kBAC/EC,UAAW,CAAC,iBAAkB,oBAAqB,eACnDC,YAAa,CAAC,mBAAoB,sBAAuB,iBACzDC,WAAY,CAAC,kBAAmB,qBAAsB,gBACtDC,aAAc,CAAC,eAAgB,uBAAwB,eACvDC,UAAW,CAAC,uBAAwB,oCAAqC,aACzEC,YAAa,CAAC,yBAA0B,oCAAqC,eAC7EC,OAAQ,CAAC,kBAAmB,yBAA0B,UACtDC,QAAS,CAAC,kBAAmB,yBAA0B,YAGrDC,WAA2B,SAAUvhH,GACvC,SAASuhH,EAAWt/G,EAAKzP,GACvBwN,EAAgB/gB,KAAKlG,KAAMyZ,EAAQ,CAACyP,IACpC,IAAIppB,EAAOE,KAEPksB,EAAWhP,MAAM5U,OAAO,GAAI4gB,EAAIzP,OAAOgvH,YAG3C3oI,EAAK2nB,iBAAiByE,GAEtBpsB,EAAK2Z,OAASyD,MAAM5U,OAAO4jB,EAAUzS,GAErC,IAAIvK,EAAKpP,EAAK2Z,OAAOvK,GACrB,IAAKA,EAAM,OAAOpP,EAElB,IAAIwpB,EAAM7c,EAAEyC,GACZ,GAAmB,IAAfoa,EAAIhoB,OAAgB,OAAOxB,EAE/B,GAAIwpB,EAAI,GAAGo/G,aAAgB,OAAOp/G,EAAI,GAAGo/G,aAEzC,IAAIrvE,EAAa/vC,EAAI/e,SAAS,wBAuB9B,GAtBK8uD,EAAW/3D,SACdgoB,EAAI/T,OAAO,2DACX8jD,EAAa/vC,EAAI/e,SAAS,yBAG5B2S,MAAM5U,OAAOxI,EAAM,CACjBopB,IAAKA,EACLI,IAAKA,EACLpa,GAAIoa,EAAI,GACR+vC,WAAYA,EACZhtB,UAAWgtB,EAAW,KAEpB,UAAW5/C,IACb3Z,EAAK4O,MAAQ5O,EAAK2Z,OAAO/K,OAGF,qBAArB5O,EAAK2Z,OAAOkvH,OACTz/G,EAAI7E,OAAOa,SAAYgE,EAAI7E,OAAOE,UACrCzkB,EAAK2Z,OAAOkvH,KAAO,YAIY,iBAAxB7oI,EAAK2Z,OAAO2tC,QACrB,IACEtnD,EAAK2Z,OAAO2tC,QAAUxjD,KAAK6tB,MAAM3xB,EAAK2Z,OAAO2tC,SAC7C,MAAOp7B,GACP,MAAM,IAAIhmB,MAAM,4DAyDpB,OArDAsjB,EAAI,GAAGo/G,aAAe5oI,EAGtBA,EAAK8oI,cAAgB9oI,EAAK8oI,cAAcvtH,KAAKvb,GAC7CA,EAAK+oI,QAAU/oI,EAAK+oI,QAAQxtH,KAAKvb,GACjCA,EAAKgpI,OAAShpI,EAAKgpI,OAAOztH,KAAKvb,GAC/BA,EAAK42E,QAAU52E,EAAK42E,QAAQr7D,KAAKvb,GACjCA,EAAKipI,QAAUjpI,EAAKipI,QAAQ1tH,KAAKvb,GACjCA,EAAKkpI,kBAAoBlpI,EAAKkpI,kBAAkB3tH,KAAKvb,GACrDA,EAAKmpI,qBAAuBnpI,EAAKmpI,qBAAqB5tH,KAAKvb,GAG3DA,EAAK+1C,aAAe,WACO,YAArB/1C,EAAK2Z,OAAOkvH,MACd7oI,EAAKwpB,IAAIrS,KAAK,wBAAwB3G,GAAG,QAAS,SAAUxQ,EAAK8oI,eAE1C,qBAArB9oI,EAAK2Z,OAAOkvH,OACd7oI,EAAKopI,mBAAmB54H,GAAG,QAAS,SAAUxQ,EAAK8oI,eACnD9oI,EAAKwpB,IAAIjlB,QAAQ,SAASiM,GAAG,iBAAkBxQ,EAAKmpI,uBAE7B,YAArBnpI,EAAK2Z,OAAOkvH,MAAsB7oI,EAAK0sD,SACzC1sD,EAAK0sD,QAAQljC,IAAIhZ,GAAG,QAAS,SAAUxQ,EAAK8oI,eAE9C9oI,EAAKu5D,WAAW/oD,GAAG,QAASxQ,EAAKipI,SACjCjpI,EAAKu5D,WAAW/oD,GAAG,QAASxQ,EAAK+oI,SACjC/oI,EAAKu5D,WAAW/oD,GAAG,OAAQxQ,EAAKgpI,QAChChpI,EAAKu5D,WAAW/oD,GAAG,QAASxQ,EAAK42E,SAAS,GAC1CjqE,EAAEjD,KAAK8G,GAAG,kBAAmBxQ,EAAKkpI,oBAEpClpI,EAAKq8D,aAAe,WACO,YAArBr8D,EAAK2Z,OAAOkvH,MACd7oI,EAAKwpB,IAAIrS,KAAK,wBAAwBtF,IAAI,QAAS,SAAU7R,EAAK8oI,eAE3C,qBAArB9oI,EAAK2Z,OAAOkvH,OACd7oI,EAAKopI,mBAAmBv3H,IAAI,QAAS,SAAU7R,EAAK8oI,eACpD9oI,EAAKwpB,IAAIjlB,QAAQ,SAASsN,IAAI,iBAAkB7R,EAAKmpI,uBAE9B,YAArBnpI,EAAK2Z,OAAOkvH,MAAsB7oI,EAAK0sD,SACzC1sD,EAAK0sD,QAAQljC,IAAI3X,IAAI,QAAS,SAAU7R,EAAK8oI,eAE/C9oI,EAAKu5D,WAAW1nD,IAAI,QAAS7R,EAAKipI,SAClCjpI,EAAKu5D,WAAW1nD,IAAI,QAAS7R,EAAK+oI,SAClC/oI,EAAKu5D,WAAW1nD,IAAI,OAAQ7R,EAAKgpI,QACjChpI,EAAKu5D,WAAW1nD,IAAI,QAAS7R,EAAK42E,SAAS,GAC3CjqE,EAAEjD,KAAKmI,IAAI,kBAAmB7R,EAAKkpI,oBAIrClpI,EAAKuoB,aAGLvoB,EAAKysB,OAEEzsB,EA0XT,OAvXKmnB,IAAkBuhH,EAAWthH,UAAYD,GAC9CuhH,EAAW//H,UAAYvE,OAAOijB,OAAQF,GAAmBA,EAAgBxe,WACzE+/H,EAAW//H,UAAUxE,YAAcukI,EAEnCA,EAAW//H,UAAUypE,SAAW,SAAmBD,GAGjD,OAFWjyE,KACa0O,QACHujE,IAFVjyE,KAGN0O,MAAQujE,EAHFjyE,KAINq5D,WAAWxsD,KAAKolE,GAJVjyE,KAKNspB,IAAIjX,QAAQ,oBALNrS,KAKgC0O,OALhC1O,KAMN2mB,KAAK,iCANC3mB,KAAAA,KAM4C0O,QAN5C1O,MAUbwoI,EAAW//H,UAAU4qE,SAAW,WAE9B,OADWrzE,KACC0O,OAGd85H,EAAW//H,UAAU0gI,WAAa,WAChC,IAGIC,EAHAtpI,EAAOE,KACPqpI,EAAmB/9H,IAAIg+H,eACvBC,EAAgB,GAEpB,GAAIF,GAAoBA,EAAiBG,YAAc/8H,EAAE48H,EAAiBG,YAAYnlI,QAAQvE,EAAKwpB,KAAKhoB,OAAQ,CAE9G,IADA,IAAIkoI,EAAaH,EAAiBG,WAC3BA,GACLD,EAAc7nI,KAAK8nI,GACdA,EAAWlzH,aAAekzH,IAAeH,EAAiBI,YAC7DD,EAAa,MAEXA,IACFA,EAAaA,EAAWlzH,aAG5B8yH,EAAiB38H,EAAE88H,GAAevyH,QAAQ,KAAK/I,IAAIxB,EAAE88H,GAAeh/H,SAAS,MAE/E,GAAI6+H,GAAkBA,EAAe9nI,OAUnC,OATA8nI,EAAe9iI,MAAK,SAAUojI,EAAWC,GACvC,IAAIC,EAAYt+H,IAAIg+H,eAChBz5D,EAAQrmE,IAAIqgI,cAChBh6D,EAAMi6D,mBAAmBH,GACzBC,EAAUG,kBACVH,EAAUI,SAASn6D,GACnBrmE,IAAIygI,YAAY,UAAU,GAC1BL,EAAUG,qBAELjqI,EAET,IAAIoqI,EAAepqI,EAAKqqI,oBACxB,OAAKD,GACQpqI,EAAKopB,IAAIi+B,OAAOsC,OAAO3pD,EAAK2Z,OAAO2wH,YAAa,IAAI,SAAUzC,GACrEA,GAAQA,EAAKxmI,OAAOG,SACtBxB,EAAKi4H,kBAAkBmS,GACvB1gI,IAAIygI,YAAY,cAAc,EAAOtC,EAAKxmI,YAGvCmoB,IAAIrS,KAAK,SAASqE,QAClBxb,GARqBA,GAW9B0oI,EAAW//H,UAAU4hI,YAAc,WACjC,IAAIvqI,EAAOE,KACPkqI,EAAepqI,EAAKqqI,oBACxB,OAAKD,GACQpqI,EAAKopB,IAAIi+B,OAAOsC,OAAO3pD,EAAK2Z,OAAO6wH,aAAc,IAAI,SAAUC,GACtEA,GAAYA,EAASppI,OAAOG,SAC9BxB,EAAKi4H,kBAAkBmS,GACvB1gI,IAAIygI,YAAY,eAAe,EAAOM,EAASppI,YAG5CmoB,IAAIrS,KAAK,SAASqE,QAClBxb,GARqBA,GAW9B0oI,EAAW//H,UAAU+hI,kBAAoB,WAC5BxqI,KACNq5D,WAAWpiD,KAAK,4BAA4B9I,UAGnDq6H,EAAW//H,UAAUgiI,kBAAoB,WAC5BzqI,KACNq5D,WAAW9jD,OAAQ,wCADbvV,KAC+DyZ,OAAkB,YAAI,WAGlG+uH,EAAW//H,UAAUugI,kBAAoB,WAEvC,GAAyB,YADdhpI,KACFyZ,OAAOkvH,KAAhB,CACA,IAAIiB,EAAYt+H,IAAIg+H,eAChBoB,EAAuBj+H,EAAEm9H,EAAUJ,YAAYnlI,QAHxCrE,KAGqDqsC,WAAW/qC,QAAUsoI,EAAUJ,aAHpFxpI,KAGwGqsC,UACnH,GAAyB,qBAJdrsC,KAIFyZ,OAAOkvH,MAQhB,GAAyB,YAZd3oI,KAYFyZ,OAAOkvH,KAAoB,CAClC,IAAIgC,EAAuBl+H,EAAEm9H,EAAUJ,YAAYnlI,QAb1CrE,KAauDwsD,QAAQt9C,IAAI5N,QAAUsoI,EAAUJ,aAbvFxpI,KAa2GwsD,QAAQt9C,GAC5H,IAAKw7H,IAAyBC,EAE5B,YAhBO3qI,KAeF4qI,eAGP,IAAKhB,EAAUiB,aAAejB,EAAUkB,WAAY,CAClD,IACIx0C,EADQszC,EAAUmB,WAAW,GAChBl3H,wBACbm3H,EArBGhrI,KAqBWkpB,IAAIpjB,KAAK,IAAM0D,IAAIG,KArB9B3J,KAsBFg+E,YAAYsY,EAAKn0E,GAAK7W,IAAI6I,SAAW,GAAK62H,EAAO35F,WAAYilD,EAAKxhE,GAAKxpB,IAAI2I,SAAW,GAAK+2H,EAAO/1E,UAAWqhC,EAAKtjF,MAAOsjF,EAAK/iF,aAC1Hq2H,EAAUiB,aAvBZ7qI,KAwBF4qI,qBAnBFF,EALI1qI,KAQFirI,sBAREjrI,KAMFipI,yBAuBXT,EAAW//H,UAAUsgI,QAAU,SAAkBl4H,GAE/C,GADW7Q,KACFyZ,OAAOyxH,wBAA0Br6H,EAAEs6H,eAAiBt6H,EAAEs6H,cAAcC,QAAS,CACpF,IAAIv2H,EAAOhE,EAAEs6H,cAAcC,QAAQ,cACnCv6H,EAAEmmB,iBACFxtB,IAAIygI,YAAY,cAAc,EAAOp1H,KAIzC2zH,EAAW//H,UAAUiuE,QAAU,WAC7B,IACIhoE,EADO1O,KACMq5D,WAAWxsD,OADjB7M,KAGNspB,IAAIjX,QAAQ,oBAHNrS,KAIN2mB,KAAK,8BAJC3mB,MAAAA,KAMN0O,MAAQA,EANF1O,KAONspB,IAAIjX,QAAQ,oBAPNrS,KAOgC0O,OAPhC1O,KAQN2mB,KAAK,iCARC3mB,KAAAA,KAQ4C0O,QAGzD85H,EAAW//H,UAAUogI,QAAU,WAClB7oI,KACNwqI,oBADMxqI,KAENq5D,WAAW/9C,QAFLtb,KAGNspB,IAAIjX,QAAQ,oBAHNrS,KAIN2mB,KAAK,+BAJC3mB,OAObwoI,EAAW//H,UAAUqgI,OAAS,WAK5B,GAJW9oI,KACFyZ,OAAO07E,aAA0C,KAD/Cn1F,KACyBq5D,WAAWxsD,QADpC7M,KAEJyqI,oBAEkB,YAJdzqI,KAIFyZ,OAAOkvH,KAAoB,CAClC,IAAIiB,EAAYt+H,IAAIg+H,eAChBoB,EAAuBj+H,EAAEm9H,EAAUJ,YAAYnlI,QAN1CrE,KAMuDqsC,WAAW/qC,QAAUsoI,EAAUJ,aANtFxpI,KAM0GqsC,UACnG7iC,IAAIM,eAPX9J,KAOiCwsD,SAAW//C,EAAEjD,IAAIM,eAAekN,QAPjEhX,KAO8EwsD,QAAQljC,KAAKhoB,QACjFopI,GARV1qI,KASF4qI,eAGT,GAAyB,qBAZd5qI,KAYFyZ,OAAOkvH,KAA6B,CAC3C,IAAI0C,EAAc//H,IAAIg+H,eACO78H,EAAE4+H,EAAY7B,YAAYnlI,QAd9CrE,KAc2DqsC,WAAW/qC,QAAU+pI,EAAY7B,aAd5FxpI,KAcgHqsC,WAdhHrsC,KAgBFipI,uBAhBEjpI,KAmBNspB,IAAIjX,QAAQ,mBAnBNrS,KAoBN2mB,KAAK,6BApBC3mB,OAuBbwoI,EAAW//H,UAAUmgI,cAAgB,SAAwB/3H,GAC3D,IACI+4H,EAAYt+H,IAAIg+H,eAEpB,GAD2B78H,EAAEm9H,EAAUJ,YAAYnlI,QAFxCrE,KAEqDqsC,WAAW/qC,QAAUsoI,EAAUJ,aAFpFxpI,KAEwGqsC,UACnH,CACA,IAAIqiB,EAAYjiD,EAAEoE,EAAEtI,QAAQyO,QAAQ,UAChC03C,EAAUrqD,QAAQ,QAAQ/C,QAC5BuP,EAAEmmB,iBAEJ,IAAI2wB,EAAS+G,EAAUlgD,KAAK,eACxB88H,EATOtrI,KASWyZ,OAAO8xH,eATlBvrI,KASwCyZ,OAAO8xH,cAAc5jF,GACxE,GAAKA,IAAY0/E,qBAAqB1/E,IAAW2jF,GAGjD,GAFA58E,EAAUr8C,QAAQ,yBAA0Bs1C,GAXjC3nD,KAYN2mB,KAAK,2CAZC3mB,KAYiD2nD,GACxD2jF,EACEA,EAAWtwF,SAAWswF,EAAWtwF,QAd5Bh7C,KAc0C0uD,EAAU,QAD/D,CAIA,IAAI88E,EAAUnE,qBAAqB1/E,GAAQ,GAC3C,GAAgB,eAAZ6jF,EAIJ,GAAgB,gBAAZA,EAIJ,GAAuC,IAAnCA,EAAQ7pI,QAAQ,eAUpB6H,IAAIygI,YAAYuB,GAAS,OAVzB,CACE,IAAIC,EAAUD,EAAQpqI,MAAM,KAAK,GAC7BsqI,EAAcj/H,EAAEm9H,EAAUJ,YAC1BkC,EAAYrnI,QAAQonI,EAAQr+H,eAAe9L,QAAUoqI,EAAYz6H,GAAGw6H,GACtEjiI,IAAIygI,YAAY,eAAe,EAAO,OAEtCzgI,IAAIygI,YAAY,eAAe,EAAOwB,QAhC/BzrI,KAuBJqqI,mBAvBIrqI,KAmBJmpI,gBAqBTX,EAAW//H,UAAU0hI,kBAAoB,WACvC,GAAI7+H,IAAIg+H,aAAc,CACpB,IAAIqC,EAAMrgI,IAAIg+H,eACd,GAAIqC,EAAIZ,YAAcY,EAAIb,WACxB,OAAOa,EAAIZ,WAAW,QAEnB,GAAIvhI,IAAIogI,WAAapgI,IAAIogI,UAAUC,YACxC,OAAOrgI,IAAIogI,UAAUC,cAEvB,OAAO,MAITrB,EAAW//H,UAAUsvH,kBAAoB,SAA4BloD,GACnE,GAAIA,EACF,GAAIvkE,IAAIg+H,aAAc,CACpB,IAAIqC,EAAMrgI,IAAIg+H,eACdqC,EAAI5B,kBACJ4B,EAAI3B,SAASn6D,QACJrmE,IAAIogI,WAAa/5D,EAAM+7D,QAChC/7D,EAAM+7D,UAKZpD,EAAW//H,UAAUojI,cAAgB,WACnC,IAAI/rI,EAAOE,KACP6M,EAAO,GACX,SAASi/H,EAAankF,GACpB,IAAIwzB,EAA+B,OAAnBr7E,EAAKopB,IAAI/C,MAAiB,iBAAmB,WAC7D,GAAIrmB,EAAK2Z,OAAO8xH,eAAiBzrI,EAAK2Z,OAAO8xH,cAAc5jF,GAEzD,MAAQ,iEAAwEA,EAAS,MADxE7nD,EAAK2Z,OAAO8xH,cAAc5jF,GACkErlD,SAAW,IAAM,YAEhI,IAAK+kI,qBAAqB1/E,GAAW,MAAO,GAC5C,IAAIuzB,EAAcmsD,qBAAqB1/E,GAA2B,OAAnB7nD,EAAKopB,IAAI/C,MAAiB,EAAI,GAC7E,OAAQ,iEAAwEwhC,EAAS,MAASuzB,EAAYv5E,QAAQ,MAAQ,EAAIu5E,EAAe,aAAgBC,EAAY,KAAQD,EAAc,QAAW,aAAa/5E,OAc7N,OAZArB,EAAK2Z,OAAO2tC,QAAQrjD,SAAQ,SAAU4jD,EAAQ6G,GACxC1rD,MAAMC,QAAQ4kD,IAChBA,EAAO5jD,SAAQ,SAAUqd,GACvBvU,GAAQi/H,EAAa1qH,MAEnBotC,EAAc1uD,EAAK2Z,OAAO2tC,QAAQ9lD,OAAS,GAAKxB,EAAK2Z,OAAOsyH,WAC9Dl/H,GAAQ,mDAGVA,GAAQi/H,EAAankF,MAGlB96C,GAGT27H,EAAW//H,UAAUujI,cAAgB,WACxBhsI,KACNspB,IAAIxT,QAAS,oCADP9V,KACqD6rI,gBAAmB,WAGrFrD,EAAW//H,UAAUwjI,sBAAwB,WAC3C,IACIC,EADOlsI,KACOspB,IAAItS,QAAQ,eAAe1V,OAAS,GAA8C,SADzFtB,KACqDkpB,IAAI7E,OAAO6B,qBADhElmB,KAENkpI,mBAAqBz8H,EAAG,oEAAuEy/H,EAAS,aAAe,IAAM,gCAFvHlsI,KAEkK6rI,gBAAmB,iBAGlMrD,EAAW//H,UAAU0jI,cAAgB,WACnC,IACID,EADOlsI,KACOspB,IAAItS,QAAQ,eAAe1V,OAAS,EAD3CtB,KAENwsD,QAFMxsD,KAESkpB,IAAIsjC,QAAQrlC,OAAO,CACrC7kB,QAAU,kCAAqC4pI,EAAS,cAAgB,cAAgB,gEAH/ElsI,KAG0J6rI,gBAAmB,iCACtLl/E,qBAAqB,EACrBlG,UAAU,KAId+hF,EAAW//H,UAAUwiI,oBAAsB,WAC9BjrI,KACFkpI,mBAAmBrzH,OADjB7V,KAC6BkpB,IAAIpjB,MAAMxE,SADvCtB,KAENspB,IAAIjX,QAAQ,2BAFNrS,KAGN2mB,KAAK,6CAHC3mB,MAAAA,KAINkpB,IAAIpjB,KAAKyP,OAJHvV,KAIekpI,sBAG5BV,EAAW//H,UAAUwgI,qBAAuB,WAC/BjpI,KACNkpI,mBAAmB/6H,SADbnO,KAENspB,IAAIjX,QAAQ,4BAFNrS,KAGN2mB,KAAK,+CAHC3mB,OAMbwoI,EAAW//H,UAAUu1E,YAAc,SAAsBnxB,EAASC,EAASG,EAAaC,GACtF,IAAIptD,EAAOE,KAENF,EAAK0sD,UACVtoD,OAAOqM,OAAOzQ,EAAK0sD,QAAQ/yC,OAAQ,CACjCozC,QAASA,EACTC,QAASA,EACTG,YAAaA,EACbC,aAAcA,IAEhB5gD,aAAaxM,EAAKssI,gBAClBtsI,EAAKssI,eAAiB//H,YAAW,WAC1BvM,EAAK0sD,UACN1sD,EAAK0sD,QAAQhH,OACf1lD,EAAK0sD,QAAQhwC,UAEb1c,EAAKwpB,IAAIjX,QAAQ,0BACjBvS,EAAK6mB,KAAK,2CAA4C7mB,GACtDA,EAAK0sD,QAAQ/iC,WAEd,OAGL++G,EAAW//H,UAAUmiI,aAAe,WAClC,IAAI9qI,EAAOE,KACXsM,aAAaxM,EAAKssI,gBACbtsI,EAAK0sD,SAAY1sD,EAAK0sD,QAAQhH,SACnC1lD,EAAKssI,eAAiB//H,YAAW,WAC1BvM,EAAK0sD,UACV1sD,EAAKwpB,IAAIjX,QAAQ,2BACjBvS,EAAK6mB,KAAK,6CAA8C7mB,GACxDA,EAAK0sD,QAAQziC,WACZ,OAGLy+G,EAAW//H,UAAU8jB,KAAO,WAqB1B,OApBWvsB,KACF0O,MADE1O,KAEJq5D,WAAWxsD,KAFP7M,KAEiB0O,OAFjB1O,KAIJ0O,MAJI1O,KAISq5D,WAAWxsD,OAJpB7M,KAMFyZ,OAAO07E,aAA8B,KANnCn1F,KAMyB0O,OANzB1O,KAOJyqI,oBAEkB,YATdzqI,KASFyZ,OAAOkvH,KATL3oI,KAUJgsI,gBACyB,YAXrBhsI,KAWKyZ,OAAOkvH,KAXZ3oI,KAYJmsI,gBACyB,qBAbrBnsI,KAaKyZ,OAAOkvH,MAbZ3oI,KAcJisI,wBAdIjsI,KAiBN61C,eAjBM71C,KAkBNspB,IAAIjX,QAAQ,mBAlBNrS,KAmBN2mB,KAAK,6BAnBC3mB,MAAAA,MAuBbwoI,EAAW//H,UAAU8gB,QAAU,WAC7B,IAAIzpB,EAAOE,KACXF,EAAKwpB,IAAIjX,QAAQ,4BACjBvS,EAAK6mB,KAAK,+CAAgD7mB,GAC1DA,EAAKq8D,eACoB,qBAArBr8D,EAAK2Z,OAAOkvH,MAA+B7oI,EAAKopI,oBAClDppI,EAAKopI,mBAAmB/6H,SAEtBrO,EAAK0sD,UACP1sD,EAAK0sD,QAAQziC,OAAM,GACnBjqB,EAAK0sD,QAAQjjC,kBAERzpB,EAAKwpB,IAAI,GAAGo/G,aACnBxrH,MAAMU,YAAY9d,GAClBA,EAAO,MAGF0oI,EAleqB,CAme5BvhH,iBAEEolH,aAAe,CACjB7nI,KAAM,aACNiV,OAAQ,CACNgvH,WAAY,CACVv5H,GAAI,KACJy5H,KAAM,UACNj6H,WAAOvO,EACPorI,cAAe,KACfnkF,QAAS,CACP,CAAC,OAAQ,SAAU,YAAa,iBAChC,CAAC,cAAe,iBAChB,CAAC,OAAQ,SACT,CAAC,YAAa,KAAM,KAAM,MAC1B,CAAC,YAAa,cAAe,aAAc,gBAC3C,CAAC,YAAa,eACd,CAAC,SAAU,YACb2kF,UAAU,EACVzB,aAAc,mBACdF,YAAa,kBACbj1C,YAAa,KACb+1C,wBAAwB,IAG5B/jH,OAAQ,WACInnB,KACNyoI,WAAavrH,MAAM5U,OACrBugB,mBAAmB,CACjBE,gBAAiB,eACjB9kB,YAAaukI,WACbt/G,IALMlpB,KAMNipB,QAAS,mBAIfN,OAAQ,CACN6/G,WAAYA,YAEdl4H,GAAI,CACFgjD,WAAY,SAAoB9nB,GAC9B,IAAItiB,EAAMlpB,KACVyM,EAAE++B,GAAOv0B,KAAK,qBAAqB3Q,MAAK,SAAUK,EAAO2lI,GACvD,IAAIh9H,EAAU7C,EAAE6/H,GAAUh9H,UAC1B4Z,EAAIu/G,WAAWthH,OAAOjK,MAAM5U,OAAO,CAAE4G,GAAIo9H,GAAYh9H,GAAW,SAGpE2xD,gBAAiB,SAAyBz1B,GACxC/+B,EAAE++B,GAAOv0B,KAAK,qBAAqB3Q,MAAK,SAAUK,EAAO2lI,GACnDA,EAAS5D,cAAgB4D,EAAS5D,aAAan/G,cAGvDy5B,SAAU,SAAkBvN,GAC1B,IAAIvsB,EAAMlpB,KACVy1C,EAAKnsB,IAAIrS,KAAK,qBAAqB3Q,MAAK,SAAUK,EAAO2lI,GACvD,IAAIh9H,EAAU7C,EAAE6/H,GAAUh9H,UAC1B4Z,EAAIu/G,WAAWthH,OAAOjK,MAAM5U,OAAO,CAAE4G,GAAIo9H,GAAYh9H,GAAW,SAGpEuzC,iBAAkB,SAA0BpN,GAC1CA,EAAKnsB,IAAIrS,KAAK,qBAAqB3Q,MAAK,SAAUK,EAAO2lI,GACnDA,EAAS5D,cAAgB4D,EAAS5D,aAAan/G,eAIzDtB,MAAO,CACLskH,mBAAoB,CAClBzuF,OAAQ,SAAgB71B,GACtB,IACIqkH,EAAWrkH,EAAM81B,IACjBzuC,EAAU7C,EAAE6/H,GAAUh9H,UAFhBtP,KAGNyoI,WAAWthH,OAAOjK,MAAM5U,OAAO,CAAE4G,GAAIo9H,GAAYh9H,GAAW,MAElEia,QAAS,SAAiBtB,GACxB,IAAIqkH,EAAWrkH,EAAM81B,IACjBuuF,EAAS5D,cAAgB4D,EAAS5D,aAAan/G,cAMvDijH,UAAY,CACdhoI,KAAM,aAGJioI,WAAa,CACfjoI,KAAM,cAGJkoI,KAAqB,SAAUzlH,GACjC,SAASylH,EAAKxjH,EAAKzP,QACD,IAAXA,IAAoBA,EAAS,IAElCwN,EAAgB/gB,KAAKlG,KAAMyZ,EAAQ,CAACyP,IACpC,IAKIyjH,EALAC,EAAK5sI,KACT,IAAKsL,IAAIshI,GACP,MAAM,IAAI5mI,MAAM,sCAIa,IAApBsF,IAAIqhI,cACbA,GAAmC,KAArBrhI,IAAIqhI,aAA2C,KAApBrhI,IAAIqhI,YAAqB,aAAe,YAEnF,IAAIzgH,EAAWhP,MAAM5U,OACnB,GACA4gB,EAAIzP,OAAOmzH,GACX,CACEC,MAAO3jH,EAAIvb,GACXm/H,OAAQ5jH,EAAIiD,QACZC,SAAUlD,EAAIkD,SACdpZ,MAAOkW,EAAIlW,MACXO,OAAQ2V,EAAI3V,OACZoS,GAAIzB,OAAOyB,GACXC,UAAW1B,OAAO0B,UAClB+mH,YAAaA,IAKjBC,EAAGnlH,iBAAiByE,GAEpB0gH,EAAGnzH,OAASyD,MAAM5U,OAAO4jB,EAAUzS,GAEnC,IAAIszH,EAAW,GACXC,EAAa,0DAA4D5rI,MAAM,KAQnF,GAPA8C,OAAO2B,KAAK+mI,EAAGnzH,QAAQ1V,SAAQ,SAAUulC,GACvC,KAAI0jG,EAAWrrI,QAAQ2nC,IAAc,GAArC,CACA,IAAI6K,EAAay4F,EAAGnzH,OAAO6vB,GACvB,CAAC,UAAMnpC,GAAWwB,QAAQwyC,IAAe,IAC7C44F,EAASzjG,GAAa6K,QAGnBy4F,EAAGnzH,OAAOozH,MACb,MAAM,IAAI7mI,MAAM,6GAElB,IAAK4mI,EAAGnzH,OAAOwzH,YACb,MAAM,IAAIjnI,MAAM,2DAGlB,SAAS4qD,IACP,IAAIs8E,EAAWzgI,EAAE,eACO,IAApBygI,EAAS5rI,QACb4rI,EACGh6H,IAAI,CACHF,MAASkW,EAAS,MAAI,KACtB3V,OAAU2V,EAAU,OAAI,OAI9B,SAASikH,IACFP,EAAGQ,aACRR,EAAGQ,WAAWz7H,IAAI,oBAClBi7H,EAAGQ,WAAWj/H,UAyBhBy+H,EAAGS,GAAK,IAAI/hI,IAAIshI,GAAGU,GAAGP,GAEtB7vH,MAAM5U,OAAOskI,EAAGS,GAAI,CAClBE,UAAW,WACTrkH,EAAI5Y,GAAG,SAAUsgD,GACjBg8E,EAAGjmH,KAAK,gBACJimH,EAAGnzH,OAAO46F,UACZu4B,EAAGr2G,SAGPi3G,YAAa,WACXZ,EAAGjmH,KAAK,mBAEV8mH,UAAW,SAAmBC,GAC5Bd,EAAGjmH,KAAK,eAAgB+mH,IAE1BC,eAAgB,WACdf,EAAGjmH,KAAK,sBAEVinH,YAAa,SAAqBC,GAChC3kH,EAAIvX,IAAI,SAAUi/C,GAClBu8E,IAEAP,EAAGjmH,KAAK,iBAAkBknH,GACX,aAAXA,IACFjB,EAAGjmH,KAAK,mBACRimH,EAAGjmH,KAAK,qBAEK,aAAXknH,GACFjB,EAAGjmH,KAAK,mBAEVimH,EAAGjmF,WAAY,GAEjBmnF,iBAAkB,SAA0BD,EAAQE,GAClDnB,EAAGjmH,KAAK,wBAAyBknH,EAAQE,GACrCF,GAAUA,EAAOrpI,OAAoD,IAA5CqpI,EAAOrpI,KAAK7C,QAAQ,oBAA6BirI,EAAGnzH,OAAOu0H,iBA1D5F,SAAuBD,GAIrB,IAAI/wG,EAHC+wG,IACLnB,EAAGQ,WAAa3gI,GAAG,kDAAsDmgI,EAAGnzH,OAAOw0H,oBAAuB,gCAAqCrB,EAAGnzH,OAA0B,oBAAI,SAAY,IAAM,kFAAoFtY,QAGtRyrI,EAAGQ,WAAW98H,GAAG,cAAc,WAC7B0sB,EAAiB9f,MAAMc,SAEzB4uH,EAAGQ,WAAW98H,GAAG,SAAS,WAExB,KADe4M,MAAMc,MAAQgf,EACd,KAAf,CACA,GAAI+wG,EAGF,OAFAA,EAAQG,YACRf,IAGFP,EAAGr2G,QACH42G,QAEFjkH,EAAIpjB,KAAKyP,OAAOq3H,EAAGQ,aAwCfe,CAAcJ,IAGlBK,UAAW,SAAmBC,GAC5BlB,IACAjkH,EAAIvX,IAAI,SAAUi/C,GAClBg8E,EAAGjmH,KAAK,eAAgB0nH,GACxBzB,EAAGjmF,WAAY,KAInBimF,EAAGrgH,OAEHrP,MAAM5U,OAAOskI,EAAI,CACf1jH,IAAKA,IA6CT,OAzCKjC,IAAkBylH,EAAKxlH,UAAYD,GACxCylH,EAAKjkI,UAAYvE,OAAOijB,OAAQF,GAAmBA,EAAgBxe,WACnEikI,EAAKjkI,UAAUxE,YAAcyoI,EAE7BA,EAAKjkI,UAAU8tB,MAAQ,WACZv2B,KACF2mD,WADE3mD,KAEFqtI,IAFErtI,KAEOqtI,GAAGiB,WAGrB5B,EAAKjkI,UAAUylH,MAAQ,WACZluH,KACF2mD,WADE3mD,KAEFqtI,IAFErtI,KAEOqtI,GAAGkB,WAGrB7B,EAAKjkI,UAAU+lI,OAAS,WACbxuI,KACF2mD,WADE3mD,KAEFqtI,IAFErtI,KAEOqtI,GAAGoB,YAGrB/B,EAAKjkI,UAAUqR,KAAO,WACX9Z,KACF2mD,WADE3mD,KAEFqtI,IAFErtI,KAEOqtI,GAAGqB,UAGrBhC,EAAKjkI,UAAU8jB,KAAO,WACXvsB,KACF2mD,WADE3mD,KAEFqtI,IAFErtI,KAEOqtI,GAAGsB,UAGrBjC,EAAKjkI,UAAU8gB,QAAU,WACdvpB,KACN2mD,WAAY,EADN3mD,KAEN2mB,KAAK,wBACRzJ,MAAMU,YAHG5d,OAMJ0sI,EAvLe,CAwLtBzlH,iBAEE2nH,GAAK,CACPpqI,KAAM,KACNiV,OAAQ,CACNmzH,GAAI,CACFjxF,SAAS,EACT04D,UAAU,EACV25B,iBAAiB,EACjBC,oBAAqB,uBACrBY,UAAU,EACVC,YAAa5qH,OAAOI,KAAOJ,OAAOK,WAAaL,OAAOgB,QACtD2nH,MAAO,KACPC,OAAQ,KACR1gH,SAAU,KACVpZ,MAAO,KACPO,OAAQ,KACR05H,YAAa,sBACb8B,cAAe,eACfC,UAAW,KACXC,cAAc,EACdC,cAAc,EACdvpH,GAAI,KACJC,UAAW,KACX+mH,YAAa,KACbwC,IAAK,KACLC,OAAQ,KACRC,aAAc,KACdC,SAAU,KACVC,UAAW,KACXC,SAAU,KACVC,QAAS,KACTC,GAAI,KACJC,aAAc,KACdC,MAAO,KACPC,eAAgB,KAChBC,mBAAoB,OAGxB3oH,OAAQ,WACN,IAAI+B,EAAMlpB,KACVkpB,EAAI0jH,GAAK,CACPmD,UAAU,EACVC,SAAU,SAAkBjD,GAC1B,OAAO,IAAIL,KAAKxjH,EAAK6jH,IAEvBkD,QAAS,WACP,IAAI/mH,EAAI0jH,GAAGmD,SAAX,CACA,IAAI1/G,EAAS7mB,IAAIc,cAAc,UAC/B+lB,EAAOiB,OAAS,WACdpI,EAAIvC,KAAK,cACTuC,EAAI0jH,GAAGmD,UAAW,GAEpB1/G,EAAO7nB,IAAM,6CACbiE,EAAE,QAAQ8I,OAAO8a,OAIvB/f,GAAI,CACFic,KAAM,YACMvsB,KACFyZ,OAAOmzH,GAAGjxF,SADR37C,KACwBisB,aAAa2gH,KAAsC,IAD3E5sI,KAC+CisB,aAAa2gH,GAAGjxF,UAD/D37C,KACyF4sI,GAAGqD,aA6F5G,OA1EAlwI,WAAWyoB,IAAI,CACboK,aACAG,cACAE,YACAE,aACAG,cACAuE,YACAsiB,aACA1C,aACA2C,cACAS,oBACAsB,YACAM,OACA6F,SACAkC,UACAE,UACAS,cACA6B,QACAC,OACA0B,SACAmD,QACAK,cACAyB,UACAwB,UACA0C,QACAe,QACAK,YACAU,cACAyC,WACAkC,WACAgB,YACAE,aACAsF,cACA+B,YACAK,SACAiB,KACAsE,QACAiD,KACAM,KACA6B,KACA8C,QACAK,SACAC,MACAO,SACAqE,QACAyD,UACA+G,cACAuC,OACAmO,WACAsD,SACAO,iBACA+B,gBACA8B,OACAsB,YACAsB,MACA2D,YACAwE,WACA0C,aACAkvB,SACA8C,eACAU,eACAyD,eACAY,UACA4C,QACAE,SACAK,OACAoI,cACAO,WACAqF,aACAG,UACAC,WACAmC,KAGK7uI","file":"framework7-lite.bundle.min.js"} \ No newline at end of file diff --git a/public/Framework7/5/js/framework7-lite.d.ts b/public/Framework7/5/js/framework7-lite.d.ts new file mode 100644 index 0000000..4af92a7 --- /dev/null +++ b/public/Framework7/5/js/framework7-lite.d.ts @@ -0,0 +1,333 @@ +import Template7 from 'template7'; +import Dom7 from 'dom7'; +import Framework7 from '../components/app/app-class' + +// Helpers +import Request from '../utils/request'; +import Utils from '../utils/utils'; +import Support from '../utils/support'; +import Device from '../utils/device'; + +// Modules +import {Clicks as ClicksNamespace} from '../modules/clicks/clicks'; +import {Component as ComponentNamespace} from '../modules/component/component'; +import {Device as DeviceNamespace} from '../modules/device/device'; +import {Request as RequestNamespace} from '../modules/request/request'; +import {Resize as ResizeNamespace} from '../modules/resize/resize'; +import {Router as RouterNamespace} from '../modules/router/router'; +import {ServiceWorker as ServiceWorkerNamespace} from '../modules/service-worker/service-worker'; +import {Support as SupportNamespace} from '../modules/support/support'; +import {Touch as TouchNamespace} from '../modules/touch/touch'; +import {Utils as UtilsNamespace} from '../modules/utils/utils'; +import {ComponentClass as Component} from '../modules/component/component'; + +// Components +import {Accordion as AccordionNamespace} from '../components/accordion/accordion'; +import {Actions as ActionsNamespace} from '../components/actions/actions'; +import {Appbar as AppbarNamespace} from '../components/appbar/appbar'; +import {Autocomplete as AutocompleteNamespace} from '../components/autocomplete/autocomplete'; +import {Badge as BadgeNamespace} from '../components/badge/badge'; +import {Block as BlockNamespace} from '../components/block/block'; +import {Button as ButtonNamespace} from '../components/button/button'; +import {Calendar as CalendarNamespace} from '../components/calendar/calendar'; +import {Card as CardNamespace} from '../components/card/card'; +import {Checkbox as CheckboxNamespace} from '../components/checkbox/checkbox'; +import {Chip as ChipNamespace} from '../components/chip/chip'; +import {ColorPicker as ColorPickerNamespace} from '../components/color-picker/color-picker'; +import {ContactsList as ContactsListNamespace} from '../components/contacts-list/contacts-list'; +import {DataTable as DataTableNamespace} from '../components/data-table/data-table'; +import {Dialog as DialogNamespace} from '../components/dialog/dialog'; +import {Elevation as ElevationNamespace} from '../components/elevation/elevation'; +import {Fab as FabNamespace} from '../components/fab/fab'; +import {Form as FormNamespace} from '../components/form/form'; +import {Gauge as GaugeNamespace} from '../components/gauge/gauge'; +import {Grid as GridNamespace} from '../components/grid/grid'; +import {Icon as IconNamespace} from '../components/icon/icon'; +import {InfiniteScroll as InfiniteScrollNamespace} from '../components/infinite-scroll/infinite-scroll'; +import {Input as InputNamespace} from '../components/input/input'; +import {Lazy as LazyNamespace} from '../components/lazy/lazy'; +import {Link as LinkNamespace} from '../components/link/link'; +import {List as ListNamespace} from '../components/list/list'; +import {ListIndex as ListIndexNamespace} from '../components/list-index/list-index'; +import {LoginScreen as LoginScreenNamespace} from '../components/login-screen/login-screen'; +import {Menu as MenuNamespace} from '../components/menu/menu'; +import {Messagebar as MessagebarNamespace} from '../components/messagebar/messagebar'; +import {Messages as MessagesNamespace} from '../components/messages/messages'; +import {Modal as ModalNamespace} from '../components/modal/modal'; +import {Navbar as NavbarNamespace} from '../components/navbar/navbar'; +import {Notification as NotificationNamespace} from '../components/notification/notification'; +import {Page as PageNamespace} from '../components/page/page'; +import {Panel as PanelNamespace} from '../components/panel/panel'; +import {PhotoBrowser as PhotoBrowserNamespace} from '../components/photo-browser/photo-browser'; +import {Picker as PickerNamespace} from '../components/picker/picker'; +import {Popover as PopoverNamespace} from '../components/popover/popover'; +import {Popup as PopupNamespace} from '../components/popup/popup'; +import {Preloader as PreloaderNamespace} from '../components/preloader/preloader'; +import {Progressbar as ProgressbarNamespace} from '../components/progressbar/progressbar'; +import {PullToRefresh as PullToRefreshNamespace} from '../components/pull-to-refresh/pull-to-refresh'; +import {Radio as RadioNamespace} from '../components/radio/radio'; +import {Range as RangeNamespace} from '../components/range/range'; +import {Searchbar as SearchbarNamespace} from '../components/searchbar/searchbar'; +import {Sheet as SheetNamespace} from '../components/sheet/sheet'; +import {Skeleton as SkeletonNamespace} from '../components/skeleton/skeleton'; +import {SmartSelect as SmartSelectNamespace} from '../components/smart-select/smart-select'; +import {Sortable as SortableNamespace} from '../components/sortable/sortable'; +import {Statusbar as StatusbarNamespace} from '../components/statusbar/statusbar'; +import {Stepper as StepperNamespace} from '../components/stepper/stepper'; +import {Subnavbar as SubnavbarNamespace} from '../components/subnavbar/subnavbar'; +import {Swipeout as SwipeoutNamespace} from '../components/swipeout/swipeout'; +import {Swiper as SwiperNamespace} from '../components/swiper/swiper'; +import {Tabs as TabsNamespace} from '../components/tabs/tabs'; +import {TextEditor as TextEditorNamespace} from '../components/text-editor/text-editor'; +import {Timeline as TimelineNamespace} from '../components/timeline/timeline'; +import {Toast as ToastNamespace} from '../components/toast/toast'; +import {Toggle as ToggleNamespace} from '../components/toggle/toggle'; +import {Toolbar as ToolbarNamespace} from '../components/toolbar/toolbar'; +import {Tooltip as TooltipNamespace} from '../components/tooltip/tooltip'; +import {TouchRipple as TouchRippleNamespace} from '../components/touch-ripple/touch-ripple'; +import {Treeview as TreeviewNamespace} from '../components/treeview/treeview'; +import {Typography as TypographyNamespace} from '../components/typography/typography'; +import {Vi as ViNamespace} from '../components/vi/vi'; +import {View as ViewNamespace} from '../components/view/view'; +import {VirtualList as VirtualListNamespace} from '../components/virtual-list/virtual-list'; + +declare module '../components/app/app-class' { + interface Framework7Class extends ClicksNamespace.AppMethods{} + interface Framework7Params extends ClicksNamespace.AppParams{} + interface Framework7Events extends ClicksNamespace.AppEvents{} + interface Framework7Class extends ComponentNamespace.AppMethods{} + interface Framework7Params extends ComponentNamespace.AppParams{} + interface Framework7Events extends ComponentNamespace.AppEvents{} + interface Framework7Class extends DeviceNamespace.AppMethods{} + interface Framework7Params extends DeviceNamespace.AppParams{} + interface Framework7Events extends DeviceNamespace.AppEvents{} + interface Framework7Class extends RequestNamespace.AppMethods{} + interface Framework7Params extends RequestNamespace.AppParams{} + interface Framework7Events extends RequestNamespace.AppEvents{} + interface Framework7Class extends ResizeNamespace.AppMethods{} + interface Framework7Params extends ResizeNamespace.AppParams{} + interface Framework7Events extends ResizeNamespace.AppEvents{} + interface Framework7Class extends RouterNamespace.AppMethods{} + interface Framework7Params extends RouterNamespace.AppParams{} + interface Framework7Events extends RouterNamespace.AppEvents{} + interface Framework7Class extends ServiceWorkerNamespace.AppMethods{} + interface Framework7Params extends ServiceWorkerNamespace.AppParams{} + interface Framework7Events extends ServiceWorkerNamespace.AppEvents{} + interface Framework7Class extends SupportNamespace.AppMethods{} + interface Framework7Params extends SupportNamespace.AppParams{} + interface Framework7Events extends SupportNamespace.AppEvents{} + interface Framework7Class extends TouchNamespace.AppMethods{} + interface Framework7Params extends TouchNamespace.AppParams{} + interface Framework7Events extends TouchNamespace.AppEvents{} + interface Framework7Class extends UtilsNamespace.AppMethods{} + interface Framework7Params extends UtilsNamespace.AppParams{} + interface Framework7Events extends UtilsNamespace.AppEvents{} + interface Framework7Class extends AccordionNamespace.AppMethods{} + interface Framework7Params extends AccordionNamespace.AppParams{} + interface Framework7Events extends AccordionNamespace.AppEvents{} + interface Framework7Class extends ActionsNamespace.AppMethods{} + interface Framework7Params extends ActionsNamespace.AppParams{} + interface Framework7Events extends ActionsNamespace.AppEvents{} + interface Framework7Class extends AppbarNamespace.AppMethods{} + interface Framework7Params extends AppbarNamespace.AppParams{} + interface Framework7Events extends AppbarNamespace.AppEvents{} + interface Framework7Class extends AutocompleteNamespace.AppMethods{} + interface Framework7Params extends AutocompleteNamespace.AppParams{} + interface Framework7Events extends AutocompleteNamespace.AppEvents{} + interface Framework7Class extends BadgeNamespace.AppMethods{} + interface Framework7Params extends BadgeNamespace.AppParams{} + interface Framework7Events extends BadgeNamespace.AppEvents{} + interface Framework7Class extends BlockNamespace.AppMethods{} + interface Framework7Params extends BlockNamespace.AppParams{} + interface Framework7Events extends BlockNamespace.AppEvents{} + interface Framework7Class extends ButtonNamespace.AppMethods{} + interface Framework7Params extends ButtonNamespace.AppParams{} + interface Framework7Events extends ButtonNamespace.AppEvents{} + interface Framework7Class extends CalendarNamespace.AppMethods{} + interface Framework7Params extends CalendarNamespace.AppParams{} + interface Framework7Events extends CalendarNamespace.AppEvents{} + interface Framework7Class extends CardNamespace.AppMethods{} + interface Framework7Params extends CardNamespace.AppParams{} + interface Framework7Events extends CardNamespace.AppEvents{} + interface Framework7Class extends CheckboxNamespace.AppMethods{} + interface Framework7Params extends CheckboxNamespace.AppParams{} + interface Framework7Events extends CheckboxNamespace.AppEvents{} + interface Framework7Class extends ChipNamespace.AppMethods{} + interface Framework7Params extends ChipNamespace.AppParams{} + interface Framework7Events extends ChipNamespace.AppEvents{} + interface Framework7Class extends ColorPickerNamespace.AppMethods{} + interface Framework7Params extends ColorPickerNamespace.AppParams{} + interface Framework7Events extends ColorPickerNamespace.AppEvents{} + interface Framework7Class extends ContactsListNamespace.AppMethods{} + interface Framework7Params extends ContactsListNamespace.AppParams{} + interface Framework7Events extends ContactsListNamespace.AppEvents{} + interface Framework7Class extends DataTableNamespace.AppMethods{} + interface Framework7Params extends DataTableNamespace.AppParams{} + interface Framework7Events extends DataTableNamespace.AppEvents{} + interface Framework7Class extends DialogNamespace.AppMethods{} + interface Framework7Params extends DialogNamespace.AppParams{} + interface Framework7Events extends DialogNamespace.AppEvents{} + interface Framework7Class extends ElevationNamespace.AppMethods{} + interface Framework7Params extends ElevationNamespace.AppParams{} + interface Framework7Events extends ElevationNamespace.AppEvents{} + interface Framework7Class extends FabNamespace.AppMethods{} + interface Framework7Params extends FabNamespace.AppParams{} + interface Framework7Events extends FabNamespace.AppEvents{} + interface Framework7Class extends FormNamespace.AppMethods{} + interface Framework7Params extends FormNamespace.AppParams{} + interface Framework7Events extends FormNamespace.AppEvents{} + interface Framework7Class extends GaugeNamespace.AppMethods{} + interface Framework7Params extends GaugeNamespace.AppParams{} + interface Framework7Events extends GaugeNamespace.AppEvents{} + interface Framework7Class extends GridNamespace.AppMethods{} + interface Framework7Params extends GridNamespace.AppParams{} + interface Framework7Events extends GridNamespace.AppEvents{} + interface Framework7Class extends IconNamespace.AppMethods{} + interface Framework7Params extends IconNamespace.AppParams{} + interface Framework7Events extends IconNamespace.AppEvents{} + interface Framework7Class extends InfiniteScrollNamespace.AppMethods{} + interface Framework7Params extends InfiniteScrollNamespace.AppParams{} + interface Framework7Events extends InfiniteScrollNamespace.AppEvents{} + interface Framework7Class extends InputNamespace.AppMethods{} + interface Framework7Params extends InputNamespace.AppParams{} + interface Framework7Events extends InputNamespace.AppEvents{} + interface Framework7Class extends LazyNamespace.AppMethods{} + interface Framework7Params extends LazyNamespace.AppParams{} + interface Framework7Events extends LazyNamespace.AppEvents{} + interface Framework7Class extends LinkNamespace.AppMethods{} + interface Framework7Params extends LinkNamespace.AppParams{} + interface Framework7Events extends LinkNamespace.AppEvents{} + interface Framework7Class extends ListNamespace.AppMethods{} + interface Framework7Params extends ListNamespace.AppParams{} + interface Framework7Events extends ListNamespace.AppEvents{} + interface Framework7Class extends ListIndexNamespace.AppMethods{} + interface Framework7Params extends ListIndexNamespace.AppParams{} + interface Framework7Events extends ListIndexNamespace.AppEvents{} + interface Framework7Class extends LoginScreenNamespace.AppMethods{} + interface Framework7Params extends LoginScreenNamespace.AppParams{} + interface Framework7Events extends LoginScreenNamespace.AppEvents{} + interface Framework7Class extends MenuNamespace.AppMethods{} + interface Framework7Params extends MenuNamespace.AppParams{} + interface Framework7Events extends MenuNamespace.AppEvents{} + interface Framework7Class extends MessagebarNamespace.AppMethods{} + interface Framework7Params extends MessagebarNamespace.AppParams{} + interface Framework7Events extends MessagebarNamespace.AppEvents{} + interface Framework7Class extends MessagesNamespace.AppMethods{} + interface Framework7Params extends MessagesNamespace.AppParams{} + interface Framework7Events extends MessagesNamespace.AppEvents{} + interface Framework7Class extends ModalNamespace.AppMethods{} + interface Framework7Params extends ModalNamespace.AppParams{} + interface Framework7Events extends ModalNamespace.AppEvents{} + interface Framework7Class extends NavbarNamespace.AppMethods{} + interface Framework7Params extends NavbarNamespace.AppParams{} + interface Framework7Events extends NavbarNamespace.AppEvents{} + interface Framework7Class extends NotificationNamespace.AppMethods{} + interface Framework7Params extends NotificationNamespace.AppParams{} + interface Framework7Events extends NotificationNamespace.AppEvents{} + interface Framework7Class extends PageNamespace.AppMethods{} + interface Framework7Params extends PageNamespace.AppParams{} + interface Framework7Events extends PageNamespace.AppEvents{} + interface Framework7Class extends PanelNamespace.AppMethods{} + interface Framework7Params extends PanelNamespace.AppParams{} + interface Framework7Events extends PanelNamespace.AppEvents{} + interface Framework7Class extends PhotoBrowserNamespace.AppMethods{} + interface Framework7Params extends PhotoBrowserNamespace.AppParams{} + interface Framework7Events extends PhotoBrowserNamespace.AppEvents{} + interface Framework7Class extends PickerNamespace.AppMethods{} + interface Framework7Params extends PickerNamespace.AppParams{} + interface Framework7Events extends PickerNamespace.AppEvents{} + interface Framework7Class extends PopoverNamespace.AppMethods{} + interface Framework7Params extends PopoverNamespace.AppParams{} + interface Framework7Events extends PopoverNamespace.AppEvents{} + interface Framework7Class extends PopupNamespace.AppMethods{} + interface Framework7Params extends PopupNamespace.AppParams{} + interface Framework7Events extends PopupNamespace.AppEvents{} + interface Framework7Class extends PreloaderNamespace.AppMethods{} + interface Framework7Params extends PreloaderNamespace.AppParams{} + interface Framework7Events extends PreloaderNamespace.AppEvents{} + interface Framework7Class extends ProgressbarNamespace.AppMethods{} + interface Framework7Params extends ProgressbarNamespace.AppParams{} + interface Framework7Events extends ProgressbarNamespace.AppEvents{} + interface Framework7Class extends PullToRefreshNamespace.AppMethods{} + interface Framework7Params extends PullToRefreshNamespace.AppParams{} + interface Framework7Events extends PullToRefreshNamespace.AppEvents{} + interface Framework7Class extends RadioNamespace.AppMethods{} + interface Framework7Params extends RadioNamespace.AppParams{} + interface Framework7Events extends RadioNamespace.AppEvents{} + interface Framework7Class extends RangeNamespace.AppMethods{} + interface Framework7Params extends RangeNamespace.AppParams{} + interface Framework7Events extends RangeNamespace.AppEvents{} + interface Framework7Class extends SearchbarNamespace.AppMethods{} + interface Framework7Params extends SearchbarNamespace.AppParams{} + interface Framework7Events extends SearchbarNamespace.AppEvents{} + interface Framework7Class extends SheetNamespace.AppMethods{} + interface Framework7Params extends SheetNamespace.AppParams{} + interface Framework7Events extends SheetNamespace.AppEvents{} + interface Framework7Class extends SkeletonNamespace.AppMethods{} + interface Framework7Params extends SkeletonNamespace.AppParams{} + interface Framework7Events extends SkeletonNamespace.AppEvents{} + interface Framework7Class extends SmartSelectNamespace.AppMethods{} + interface Framework7Params extends SmartSelectNamespace.AppParams{} + interface Framework7Events extends SmartSelectNamespace.AppEvents{} + interface Framework7Class extends SortableNamespace.AppMethods{} + interface Framework7Params extends SortableNamespace.AppParams{} + interface Framework7Events extends SortableNamespace.AppEvents{} + interface Framework7Class extends StatusbarNamespace.AppMethods{} + interface Framework7Params extends StatusbarNamespace.AppParams{} + interface Framework7Events extends StatusbarNamespace.AppEvents{} + interface Framework7Class extends StepperNamespace.AppMethods{} + interface Framework7Params extends StepperNamespace.AppParams{} + interface Framework7Events extends StepperNamespace.AppEvents{} + interface Framework7Class extends SubnavbarNamespace.AppMethods{} + interface Framework7Params extends SubnavbarNamespace.AppParams{} + interface Framework7Events extends SubnavbarNamespace.AppEvents{} + interface Framework7Class extends SwipeoutNamespace.AppMethods{} + interface Framework7Params extends SwipeoutNamespace.AppParams{} + interface Framework7Events extends SwipeoutNamespace.AppEvents{} + interface Framework7Class extends SwiperNamespace.AppMethods{} + interface Framework7Params extends SwiperNamespace.AppParams{} + interface Framework7Events extends SwiperNamespace.AppEvents{} + interface Framework7Class extends TabsNamespace.AppMethods{} + interface Framework7Params extends TabsNamespace.AppParams{} + interface Framework7Events extends TabsNamespace.AppEvents{} + interface Framework7Class extends TextEditorNamespace.AppMethods{} + interface Framework7Params extends TextEditorNamespace.AppParams{} + interface Framework7Events extends TextEditorNamespace.AppEvents{} + interface Framework7Class extends TimelineNamespace.AppMethods{} + interface Framework7Params extends TimelineNamespace.AppParams{} + interface Framework7Events extends TimelineNamespace.AppEvents{} + interface Framework7Class extends ToastNamespace.AppMethods{} + interface Framework7Params extends ToastNamespace.AppParams{} + interface Framework7Events extends ToastNamespace.AppEvents{} + interface Framework7Class extends ToggleNamespace.AppMethods{} + interface Framework7Params extends ToggleNamespace.AppParams{} + interface Framework7Events extends ToggleNamespace.AppEvents{} + interface Framework7Class extends ToolbarNamespace.AppMethods{} + interface Framework7Params extends ToolbarNamespace.AppParams{} + interface Framework7Events extends ToolbarNamespace.AppEvents{} + interface Framework7Class extends TooltipNamespace.AppMethods{} + interface Framework7Params extends TooltipNamespace.AppParams{} + interface Framework7Events extends TooltipNamespace.AppEvents{} + interface Framework7Class extends TouchRippleNamespace.AppMethods{} + interface Framework7Params extends TouchRippleNamespace.AppParams{} + interface Framework7Events extends TouchRippleNamespace.AppEvents{} + interface Framework7Class extends TreeviewNamespace.AppMethods{} + interface Framework7Params extends TreeviewNamespace.AppParams{} + interface Framework7Events extends TreeviewNamespace.AppEvents{} + interface Framework7Class extends TypographyNamespace.AppMethods{} + interface Framework7Params extends TypographyNamespace.AppParams{} + interface Framework7Events extends TypographyNamespace.AppEvents{} + interface Framework7Class extends ViNamespace.AppMethods{} + interface Framework7Params extends ViNamespace.AppParams{} + interface Framework7Events extends ViNamespace.AppEvents{} + interface Framework7Class extends ViewNamespace.AppMethods{} + interface Framework7Params extends ViewNamespace.AppParams{} + interface Framework7Events extends ViewNamespace.AppEvents{} + interface Framework7Class extends VirtualListNamespace.AppMethods{} + interface Framework7Params extends VirtualListNamespace.AppParams{} + interface Framework7Events extends VirtualListNamespace.AppEvents{} +} + +export { Request, Utils, Support, Device }; +export { Template7, Dom7, Component }; +export default Framework7; diff --git a/public/Framework7/5/js/framework7-lite.js b/public/Framework7/5/js/framework7-lite.js new file mode 100644 index 0000000..53e0b8f --- /dev/null +++ b/public/Framework7/5/js/framework7-lite.js @@ -0,0 +1,11853 @@ +/** + * Framework7 5.7.14 + * Full featured mobile HTML framework for building iOS & Android apps + * https://framework7.io/ + * + * Copyright 2014-2020 Vladimir Kharlampidi + * + * Released under the MIT License + * + * Released on: November 9, 2020 + */ + +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : + typeof define === 'function' && define.amd ? define(factory) : + (global = global || self, global.Framework7 = factory()); +}(this, (function () { 'use strict'; + + /** + * Template7 1.4.2 + * Mobile-first HTML template engine + * + * http://www.idangero.us/template7/ + * + * Copyright 2019, Vladimir Kharlampidi + * The iDangero.us + * http://www.idangero.us/ + * + * Licensed under MIT + * + * Released on: June 14, 2019 + */ + + var t7ctx; + if (typeof window !== 'undefined') { + t7ctx = window; + } else if (typeof global !== 'undefined') { + t7ctx = global; + } else { + t7ctx = undefined; + } + + var Template7Context = t7ctx; + + var Template7Utils = { + quoteSingleRexExp: new RegExp('\'', 'g'), + quoteDoubleRexExp: new RegExp('"', 'g'), + isFunction: function isFunction(func) { + return typeof func === 'function'; + }, + escape: function escape(string) { + if ( string === void 0 ) string = ''; + + return string + .replace(/&/g, '&') + .replace(//g, '>') + .replace(/"/g, '"') + .replace(/'/g, '''); + }, + helperToSlices: function helperToSlices(string) { + var quoteDoubleRexExp = Template7Utils.quoteDoubleRexExp; + var quoteSingleRexExp = Template7Utils.quoteSingleRexExp; + var helperParts = string.replace(/[{}#}]/g, '').trim().split(' '); + var slices = []; + var shiftIndex; + var i; + var j; + for (i = 0; i < helperParts.length; i += 1) { + var part = helperParts[i]; + var blockQuoteRegExp = (void 0); + var openingQuote = (void 0); + if (i === 0) { slices.push(part); } + else if (part.indexOf('"') === 0 || part.indexOf('\'') === 0) { + blockQuoteRegExp = part.indexOf('"') === 0 ? quoteDoubleRexExp : quoteSingleRexExp; + openingQuote = part.indexOf('"') === 0 ? '"' : '\''; + // Plain String + if (part.match(blockQuoteRegExp).length === 2) { + // One word string + slices.push(part); + } else { + // Find closed Index + shiftIndex = 0; + for (j = i + 1; j < helperParts.length; j += 1) { + part += " " + (helperParts[j]); + if (helperParts[j].indexOf(openingQuote) >= 0) { + shiftIndex = j; + slices.push(part); + break; + } + } + if (shiftIndex) { i = shiftIndex; } + } + } else if (part.indexOf('=') > 0) { + // Hash + var hashParts = part.split('='); + var hashName = hashParts[0]; + var hashContent = hashParts[1]; + if (!blockQuoteRegExp) { + blockQuoteRegExp = hashContent.indexOf('"') === 0 ? quoteDoubleRexExp : quoteSingleRexExp; + openingQuote = hashContent.indexOf('"') === 0 ? '"' : '\''; + } + if (hashContent.match(blockQuoteRegExp).length !== 2) { + shiftIndex = 0; + for (j = i + 1; j < helperParts.length; j += 1) { + hashContent += " " + (helperParts[j]); + if (helperParts[j].indexOf(openingQuote) >= 0) { + shiftIndex = j; + break; + } + } + if (shiftIndex) { i = shiftIndex; } + } + var hash = [hashName, hashContent.replace(blockQuoteRegExp, '')]; + slices.push(hash); + } else { + // Plain variable + slices.push(part); + } + } + return slices; + }, + stringToBlocks: function stringToBlocks(string) { + var blocks = []; + var i; + var j; + if (!string) { return []; } + var stringBlocks = string.split(/({{[^{^}]*}})/); + for (i = 0; i < stringBlocks.length; i += 1) { + var block = stringBlocks[i]; + if (block === '') { continue; } + if (block.indexOf('{{') < 0) { + blocks.push({ + type: 'plain', + content: block, + }); + } else { + if (block.indexOf('{/') >= 0) { + continue; + } + block = block + .replace(/{{([#/])*([ ])*/, '{{$1') + .replace(/([ ])*}}/, '}}'); + if (block.indexOf('{#') < 0 && block.indexOf(' ') < 0 && block.indexOf('else') < 0) { + // Simple variable + blocks.push({ + type: 'variable', + contextName: block.replace(/[{}]/g, ''), + }); + continue; + } + // Helpers + var helperSlices = Template7Utils.helperToSlices(block); + var helperName = helperSlices[0]; + var isPartial = helperName === '>'; + var helperContext = []; + var helperHash = {}; + for (j = 1; j < helperSlices.length; j += 1) { + var slice = helperSlices[j]; + if (Array.isArray(slice)) { + // Hash + helperHash[slice[0]] = slice[1] === 'false' ? false : slice[1]; + } else { + helperContext.push(slice); + } + } + + if (block.indexOf('{#') >= 0) { + // Condition/Helper + var helperContent = ''; + var elseContent = ''; + var toSkip = 0; + var shiftIndex = (void 0); + var foundClosed = false; + var foundElse = false; + var depth = 0; + for (j = i + 1; j < stringBlocks.length; j += 1) { + if (stringBlocks[j].indexOf('{{#') >= 0) { + depth += 1; + } + if (stringBlocks[j].indexOf('{{/') >= 0) { + depth -= 1; + } + if (stringBlocks[j].indexOf(("{{#" + helperName)) >= 0) { + helperContent += stringBlocks[j]; + if (foundElse) { elseContent += stringBlocks[j]; } + toSkip += 1; + } else if (stringBlocks[j].indexOf(("{{/" + helperName)) >= 0) { + if (toSkip > 0) { + toSkip -= 1; + helperContent += stringBlocks[j]; + if (foundElse) { elseContent += stringBlocks[j]; } + } else { + shiftIndex = j; + foundClosed = true; + break; + } + } else if (stringBlocks[j].indexOf('else') >= 0 && depth === 0) { + foundElse = true; + } else { + if (!foundElse) { helperContent += stringBlocks[j]; } + if (foundElse) { elseContent += stringBlocks[j]; } + } + } + if (foundClosed) { + if (shiftIndex) { i = shiftIndex; } + if (helperName === 'raw') { + blocks.push({ + type: 'plain', + content: helperContent, + }); + } else { + blocks.push({ + type: 'helper', + helperName: helperName, + contextName: helperContext, + content: helperContent, + inverseContent: elseContent, + hash: helperHash, + }); + } + } + } else if (block.indexOf(' ') > 0) { + if (isPartial) { + helperName = '_partial'; + if (helperContext[0]) { + if (helperContext[0].indexOf('[') === 0) { helperContext[0] = helperContext[0].replace(/[[\]]/g, ''); } + else { helperContext[0] = "\"" + (helperContext[0].replace(/"|'/g, '')) + "\""; } + } + } + blocks.push({ + type: 'helper', + helperName: helperName, + contextName: helperContext, + hash: helperHash, + }); + } + } + } + return blocks; + }, + parseJsVariable: function parseJsVariable(expression, replace, object) { + return expression.split(/([+ \-*/^()&=|<>!%:?])/g).reduce(function (arr, part) { + if (!part) { + return arr; + } + if (part.indexOf(replace) < 0) { + arr.push(part); + return arr; + } + if (!object) { + arr.push(JSON.stringify('')); + return arr; + } + + var variable = object; + if (part.indexOf((replace + ".")) >= 0) { + part.split((replace + "."))[1].split('.').forEach(function (partName) { + if (partName in variable) { variable = variable[partName]; } + else { variable = undefined; } + }); + } + if ( + (typeof variable === 'string') + || Array.isArray(variable) + || (variable.constructor && variable.constructor === Object) + ) { + variable = JSON.stringify(variable); + } + if (variable === undefined) { variable = 'undefined'; } + + arr.push(variable); + return arr; + }, []).join(''); + + }, + parseJsParents: function parseJsParents(expression, parents) { + return expression.split(/([+ \-*^()&=|<>!%:?])/g).reduce(function (arr, part) { + if (!part) { + return arr; + } + + if (part.indexOf('../') < 0) { + arr.push(part); + return arr; + } + + if (!parents || parents.length === 0) { + arr.push(JSON.stringify('')); + return arr; + } + + var levelsUp = part.split('../').length - 1; + var parentData = levelsUp > parents.length ? parents[parents.length - 1] : parents[levelsUp - 1]; + + var variable = parentData; + var parentPart = part.replace(/..\//g, ''); + parentPart.split('.').forEach(function (partName) { + if (typeof variable[partName] !== 'undefined') { variable = variable[partName]; } + else { variable = 'undefined'; } + }); + if (variable === false || variable === true) { + arr.push(JSON.stringify(variable)); + return arr; + } + if (variable === null || variable === 'undefined') { + arr.push(JSON.stringify('')); + return arr; + } + arr.push(JSON.stringify(variable)); + return arr; + }, []).join(''); + }, + getCompileVar: function getCompileVar(name, ctx, data) { + if ( data === void 0 ) data = 'data_1'; + + var variable = ctx; + var parts; + var levelsUp = 0; + var newDepth; + if (name.indexOf('../') === 0) { + levelsUp = name.split('../').length - 1; + newDepth = variable.split('_')[1] - levelsUp; + variable = "ctx_" + (newDepth >= 1 ? newDepth : 1); + parts = name.split('../')[levelsUp].split('.'); + } else if (name.indexOf('@global') === 0) { + variable = 'Template7.global'; + parts = name.split('@global.')[1].split('.'); + } else if (name.indexOf('@root') === 0) { + variable = 'root'; + parts = name.split('@root.')[1].split('.'); + } else { + parts = name.split('.'); + } + for (var i = 0; i < parts.length; i += 1) { + var part = parts[i]; + if (part.indexOf('@') === 0) { + var dataLevel = data.split('_')[1]; + if (levelsUp > 0) { + dataLevel = newDepth; + } + if (i > 0) { + variable += "[(data_" + dataLevel + " && data_" + dataLevel + "." + (part.replace('@', '')) + ")]"; + } else { + variable = "(data_" + dataLevel + " && data_" + dataLevel + "." + (part.replace('@', '')) + ")"; + } + } else if (Number.isFinite ? Number.isFinite(part) : Template7Context.isFinite(part)) { + variable += "[" + part + "]"; + } else if (part === 'this' || part.indexOf('this.') >= 0 || part.indexOf('this[') >= 0 || part.indexOf('this(') >= 0) { + variable = part.replace('this', ctx); + } else { + variable += "." + part; + } + } + return variable; + }, + getCompiledArguments: function getCompiledArguments(contextArray, ctx, data) { + var arr = []; + for (var i = 0; i < contextArray.length; i += 1) { + if (/^['"]/.test(contextArray[i])) { arr.push(contextArray[i]); } + else if (/^(true|false|\d+)$/.test(contextArray[i])) { arr.push(contextArray[i]); } + else { + arr.push(Template7Utils.getCompileVar(contextArray[i], ctx, data)); + } + } + + return arr.join(', '); + }, + }; + + /* eslint no-eval: "off" */ + + var Template7Helpers = { + _partial: function _partial(partialName, options) { + var ctx = this; + var p = Template7Class.partials[partialName]; + if (!p || (p && !p.template)) { return ''; } + if (!p.compiled) { + p.compiled = new Template7Class(p.template).compile(); + } + Object.keys(options.hash).forEach(function (hashName) { + ctx[hashName] = options.hash[hashName]; + }); + return p.compiled(ctx, options.data, options.root); + }, + escape: function escape(context) { + if (typeof context === 'undefined' || context === null) { return ''; } + if (typeof context !== 'string') { + throw new Error('Template7: Passed context to "escape" helper should be a string'); + } + return Template7Utils.escape(context); + }, + if: function if$1(context, options) { + var ctx = context; + if (Template7Utils.isFunction(ctx)) { ctx = ctx.call(this); } + if (ctx) { + return options.fn(this, options.data); + } + + return options.inverse(this, options.data); + }, + unless: function unless(context, options) { + var ctx = context; + if (Template7Utils.isFunction(ctx)) { ctx = ctx.call(this); } + if (!ctx) { + return options.fn(this, options.data); + } + + return options.inverse(this, options.data); + }, + each: function each(context, options) { + var ctx = context; + var ret = ''; + var i = 0; + if (Template7Utils.isFunction(ctx)) { ctx = ctx.call(this); } + if (Array.isArray(ctx)) { + if (options.hash.reverse) { + ctx = ctx.reverse(); + } + for (i = 0; i < ctx.length; i += 1) { + ret += options.fn(ctx[i], { first: i === 0, last: i === ctx.length - 1, index: i }); + } + if (options.hash.reverse) { + ctx = ctx.reverse(); + } + } else { + // eslint-disable-next-line + for (var key in ctx) { + i += 1; + ret += options.fn(ctx[key], { key: key }); + } + } + if (i > 0) { return ret; } + return options.inverse(this); + }, + with: function with$1(context, options) { + var ctx = context; + if (Template7Utils.isFunction(ctx)) { ctx = context.call(this); } + return options.fn(ctx); + }, + join: function join(context, options) { + var ctx = context; + if (Template7Utils.isFunction(ctx)) { ctx = ctx.call(this); } + return ctx.join(options.hash.delimiter || options.hash.delimeter); + }, + js: function js(expression, options) { + var data = options.data; + var func; + var execute = expression; + ('index first last key').split(' ').forEach(function (prop) { + if (typeof data[prop] !== 'undefined') { + var re1 = new RegExp(("this.@" + prop), 'g'); + var re2 = new RegExp(("@" + prop), 'g'); + execute = execute + .replace(re1, JSON.stringify(data[prop])) + .replace(re2, JSON.stringify(data[prop])); + } + }); + if (options.root && execute.indexOf('@root') >= 0) { + execute = Template7Utils.parseJsVariable(execute, '@root', options.root); + } + if (execute.indexOf('@global') >= 0) { + execute = Template7Utils.parseJsVariable(execute, '@global', Template7Context.Template7.global); + } + if (execute.indexOf('../') >= 0) { + execute = Template7Utils.parseJsParents(execute, options.parents); + } + if (execute.indexOf('return') >= 0) { + func = "(function(){" + execute + "})"; + } else { + func = "(function(){return (" + execute + ")})"; + } + return eval(func).call(this); + }, + js_if: function js_if(expression, options) { + var data = options.data; + var func; + var execute = expression; + ('index first last key').split(' ').forEach(function (prop) { + if (typeof data[prop] !== 'undefined') { + var re1 = new RegExp(("this.@" + prop), 'g'); + var re2 = new RegExp(("@" + prop), 'g'); + execute = execute + .replace(re1, JSON.stringify(data[prop])) + .replace(re2, JSON.stringify(data[prop])); + } + }); + if (options.root && execute.indexOf('@root') >= 0) { + execute = Template7Utils.parseJsVariable(execute, '@root', options.root); + } + if (execute.indexOf('@global') >= 0) { + execute = Template7Utils.parseJsVariable(execute, '@global', Template7Context.Template7.global); + } + if (execute.indexOf('../') >= 0) { + execute = Template7Utils.parseJsParents(execute, options.parents); + } + if (execute.indexOf('return') >= 0) { + func = "(function(){" + execute + "})"; + } else { + func = "(function(){return (" + execute + ")})"; + } + var condition = eval(func).call(this); + if (condition) { + return options.fn(this, options.data); + } + + return options.inverse(this, options.data); + }, + }; + Template7Helpers.js_compare = Template7Helpers.js_if; + + var Template7Options = {}; + var Template7Partials = {}; + + var Template7Class = function Template7Class(template) { + var t = this; + t.template = template; + }; + + var staticAccessors = { options: { configurable: true },partials: { configurable: true },helpers: { configurable: true } }; + Template7Class.prototype.compile = function compile (template, depth) { + if ( template === void 0 ) template = this.template; + if ( depth === void 0 ) depth = 1; + + var t = this; + if (t.compiled) { return t.compiled; } + + if (typeof template !== 'string') { + throw new Error('Template7: Template must be a string'); + } + var stringToBlocks = Template7Utils.stringToBlocks; + var getCompileVar = Template7Utils.getCompileVar; + var getCompiledArguments = Template7Utils.getCompiledArguments; + + var blocks = stringToBlocks(template); + var ctx = "ctx_" + depth; + var data = "data_" + depth; + if (blocks.length === 0) { + return function empty() { return ''; }; + } + + function getCompileFn(block, newDepth) { + if (block.content) { return t.compile(block.content, newDepth); } + return function empty() { return ''; }; + } + function getCompileInverse(block, newDepth) { + if (block.inverseContent) { return t.compile(block.inverseContent, newDepth); } + return function empty() { return ''; }; + } + + var resultString = ''; + if (depth === 1) { + resultString += "(function (" + ctx + ", " + data + ", root) {\n"; + } else { + resultString += "(function (" + ctx + ", " + data + ") {\n"; + } + if (depth === 1) { + resultString += 'function isArray(arr){return Array.isArray(arr);}\n'; + resultString += 'function isFunction(func){return (typeof func === \'function\');}\n'; + resultString += 'function c(val, ctx) {if (typeof val !== "undefined" && val !== null) {if (isFunction(val)) {return val.call(ctx);} else return val;} else return "";}\n'; + resultString += 'root = root || ctx_1 || {};\n'; + } + resultString += 'var r = \'\';\n'; + var i; + for (i = 0; i < blocks.length; i += 1) { + var block = blocks[i]; + // Plain block + if (block.type === 'plain') { + // eslint-disable-next-line + resultString += "r +='" + ((block.content).replace(/\r/g, '\\r').replace(/\n/g, '\\n').replace(/'/g, '\\' + '\'')) + "';"; + continue; + } + var variable = (void 0); + var compiledArguments = (void 0); + // Variable block + if (block.type === 'variable') { + variable = getCompileVar(block.contextName, ctx, data); + resultString += "r += c(" + variable + ", " + ctx + ");"; + } + // Helpers block + if (block.type === 'helper') { + var parents = (void 0); + if (ctx !== 'ctx_1') { + var level = ctx.split('_')[1]; + var parentsString = "ctx_" + (level - 1); + for (var j = level - 2; j >= 1; j -= 1) { + parentsString += ", ctx_" + j; + } + parents = "[" + parentsString + "]"; + } else { + parents = "[" + ctx + "]"; + } + var dynamicHelper = (void 0); + if (block.helperName.indexOf('[') === 0) { + block.helperName = getCompileVar(block.helperName.replace(/[[\]]/g, ''), ctx, data); + dynamicHelper = true; + } + if (dynamicHelper || block.helperName in Template7Helpers) { + compiledArguments = getCompiledArguments(block.contextName, ctx, data); + resultString += "r += (Template7Helpers" + (dynamicHelper ? ("[" + (block.helperName) + "]") : ("." + (block.helperName))) + ").call(" + ctx + ", " + (compiledArguments && ((compiledArguments + ", "))) + "{hash:" + (JSON.stringify(block.hash)) + ", data: " + data + " || {}, fn: " + (getCompileFn(block, depth + 1)) + ", inverse: " + (getCompileInverse(block, depth + 1)) + ", root: root, parents: " + parents + "});"; + } else if (block.contextName.length > 0) { + throw new Error(("Template7: Missing helper: \"" + (block.helperName) + "\"")); + } else { + variable = getCompileVar(block.helperName, ctx, data); + resultString += "if (" + variable + ") {"; + resultString += "if (isArray(" + variable + ")) {"; + resultString += "r += (Template7Helpers.each).call(" + ctx + ", " + variable + ", {hash:" + (JSON.stringify(block.hash)) + ", data: " + data + " || {}, fn: " + (getCompileFn(block, depth + 1)) + ", inverse: " + (getCompileInverse(block, depth + 1)) + ", root: root, parents: " + parents + "});"; + resultString += '}else {'; + resultString += "r += (Template7Helpers.with).call(" + ctx + ", " + variable + ", {hash:" + (JSON.stringify(block.hash)) + ", data: " + data + " || {}, fn: " + (getCompileFn(block, depth + 1)) + ", inverse: " + (getCompileInverse(block, depth + 1)) + ", root: root, parents: " + parents + "});"; + resultString += '}}'; + } + } + } + resultString += '\nreturn r;})'; + + if (depth === 1) { + // eslint-disable-next-line + t.compiled = eval(resultString); + return t.compiled; + } + return resultString; + }; + staticAccessors.options.get = function () { + return Template7Options; + }; + staticAccessors.partials.get = function () { + return Template7Partials; + }; + staticAccessors.helpers.get = function () { + return Template7Helpers; + }; + + Object.defineProperties( Template7Class, staticAccessors ); + + function Template7() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + var template = args[0]; + var data = args[1]; + if (args.length === 2) { + var instance = new Template7Class(template); + var rendered = instance.compile()(data); + instance = null; + return (rendered); + } + return new Template7Class(template); + } + Template7.registerHelper = function registerHelper(name, fn) { + Template7Class.helpers[name] = fn; + }; + Template7.unregisterHelper = function unregisterHelper(name) { + Template7Class.helpers[name] = undefined; + delete Template7Class.helpers[name]; + }; + Template7.registerPartial = function registerPartial(name, template) { + Template7Class.partials[name] = { template: template }; + }; + Template7.unregisterPartial = function unregisterPartial(name) { + if (Template7Class.partials[name]) { + Template7Class.partials[name] = undefined; + delete Template7Class.partials[name]; + } + }; + Template7.compile = function compile(template, options) { + var instance = new Template7Class(template, options); + return instance.compile(); + }; + + Template7.options = Template7Class.options; + Template7.helpers = Template7Class.helpers; + Template7.partials = Template7Class.partials; + + /** + * SSR Window 2.0.0 + * Better handling for window object in SSR environment + * https://github.com/nolimits4web/ssr-window + * + * Copyright 2020, Vladimir Kharlampidi + * + * Licensed under MIT + * + * Released on: May 12, 2020 + */ + /* eslint-disable no-param-reassign */ + function isObject(obj) { + return (obj !== null && + typeof obj === 'object' && + 'constructor' in obj && + obj.constructor === Object); + } + function extend(target, src) { + if (target === void 0) { target = {}; } + if (src === void 0) { src = {}; } + Object.keys(src).forEach(function (key) { + if (typeof target[key] === 'undefined') + { target[key] = src[key]; } + else if (isObject(src[key]) && + isObject(target[key]) && + Object.keys(src[key]).length > 0) { + extend(target[key], src[key]); + } + }); + } + + var doc = typeof document !== 'undefined' ? document : {}; + var ssrDocument = { + body: {}, + addEventListener: function () { }, + removeEventListener: function () { }, + activeElement: { + blur: function () { }, + nodeName: '', + }, + querySelector: function () { + return null; + }, + querySelectorAll: function () { + return []; + }, + getElementById: function () { + return null; + }, + createEvent: function () { + return { + initEvent: function () { }, + }; + }, + createElement: function () { + return { + children: [], + childNodes: [], + style: {}, + setAttribute: function () { }, + getElementsByTagName: function () { + return []; + }, + }; + }, + createElementNS: function () { + return {}; + }, + importNode: function () { + return null; + }, + location: { + hash: '', + host: '', + hostname: '', + href: '', + origin: '', + pathname: '', + protocol: '', + search: '', + }, + }; + extend(doc, ssrDocument); + + var win = typeof window !== 'undefined' ? window : {}; + var ssrWindow = { + document: ssrDocument, + navigator: { + userAgent: '', + }, + location: { + hash: '', + host: '', + hostname: '', + href: '', + origin: '', + pathname: '', + protocol: '', + search: '', + }, + history: { + replaceState: function () { }, + pushState: function () { }, + go: function () { }, + back: function () { }, + }, + CustomEvent: function CustomEvent() { + return this; + }, + addEventListener: function () { }, + removeEventListener: function () { }, + getComputedStyle: function () { + return { + getPropertyValue: function () { + return ''; + }, + }; + }, + Image: function () { }, + Date: function () { }, + screen: {}, + setTimeout: function () { }, + clearTimeout: function () { }, + matchMedia: function () { + return {}; + }, + }; + extend(win, ssrWindow); + + /** + * Dom7 2.1.5 + * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API + * http://framework7.io/docs/dom.html + * + * Copyright 2020, Vladimir Kharlampidi + * The iDangero.us + * http://www.idangero.us/ + * + * Licensed under MIT + * + * Released on: May 15, 2020 + */ + + var Dom7 = function Dom7(arr) { + var self = this; + // Create array-like object + for (var i = 0; i < arr.length; i += 1) { + self[i] = arr[i]; + } + self.length = arr.length; + // Return collection with methods + return this; + }; + + function $(selector, context) { + var arr = []; + var i = 0; + if (selector && !context) { + if (selector instanceof Dom7) { + return selector; + } + } + if (selector) { + // String + if (typeof selector === 'string') { + var els; + var tempParent; + var html = selector.trim(); + if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) { + var toCreate = 'div'; + if (html.indexOf(':~]/)) { + // Pure ID selector + els = [doc.getElementById(selector.trim().split('#')[1])]; + } else { + // Other selectors + els = (context || doc).querySelectorAll(selector.trim()); + } + for (i = 0; i < els.length; i += 1) { + if (els[i]) { arr.push(els[i]); } + } + } + } else if (selector.nodeType || selector === win || selector === doc) { + // Node/element + arr.push(selector); + } else if (selector.length > 0 && selector[0].nodeType) { + // Array of elements or instance of Dom + for (i = 0; i < selector.length; i += 1) { + arr.push(selector[i]); + } + } + } + return new Dom7(arr); + } + + $.fn = Dom7.prototype; + $.Class = Dom7; + $.Dom7 = Dom7; + + function unique(arr) { + var uniqueArray = []; + for (var i = 0; i < arr.length; i += 1) { + if (uniqueArray.indexOf(arr[i]) === -1) { uniqueArray.push(arr[i]); } + } + return uniqueArray; + } + function toCamelCase(string) { + return string.toLowerCase().replace(/-(.)/g, function (match, group1) { return group1.toUpperCase(); }); + } + + function requestAnimationFrame(callback) { + if (win.requestAnimationFrame) { return win.requestAnimationFrame(callback); } + else if (win.webkitRequestAnimationFrame) { return win.webkitRequestAnimationFrame(callback); } + return win.setTimeout(callback, 1000 / 60); + } + function cancelAnimationFrame(id) { + if (win.cancelAnimationFrame) { return win.cancelAnimationFrame(id); } + else if (win.webkitCancelAnimationFrame) { return win.webkitCancelAnimationFrame(id); } + return win.clearTimeout(id); + } + + // Classes and attributes + function addClass(className) { + if (typeof className === 'undefined') { + return this; + } + var classes = className.split(' '); + for (var i = 0; i < classes.length; i += 1) { + for (var j = 0; j < this.length; j += 1) { + if (typeof this[j] !== 'undefined' && typeof this[j].classList !== 'undefined') { this[j].classList.add(classes[i]); } + } + } + return this; + } + function removeClass(className) { + var classes = className.split(' '); + for (var i = 0; i < classes.length; i += 1) { + for (var j = 0; j < this.length; j += 1) { + if (typeof this[j] !== 'undefined' && typeof this[j].classList !== 'undefined') { this[j].classList.remove(classes[i]); } + } + } + return this; + } + function hasClass(className) { + if (!this[0]) { return false; } + return this[0].classList.contains(className); + } + function toggleClass(className) { + var classes = className.split(' '); + for (var i = 0; i < classes.length; i += 1) { + for (var j = 0; j < this.length; j += 1) { + if (typeof this[j] !== 'undefined' && typeof this[j].classList !== 'undefined') { this[j].classList.toggle(classes[i]); } + } + } + return this; + } + function attr(attrs, value) { + var arguments$1 = arguments; + + if (arguments.length === 1 && typeof attrs === 'string') { + // Get attr + if (this[0]) { return this[0].getAttribute(attrs); } + return undefined; + } + + // Set attrs + for (var i = 0; i < this.length; i += 1) { + if (arguments$1.length === 2) { + // String + this[i].setAttribute(attrs, value); + } else { + // Object + // eslint-disable-next-line + for (var attrName in attrs) { + this[i][attrName] = attrs[attrName]; + this[i].setAttribute(attrName, attrs[attrName]); + } + } + } + return this; + } + // eslint-disable-next-line + function removeAttr(attr) { + for (var i = 0; i < this.length; i += 1) { + this[i].removeAttribute(attr); + } + return this; + } + // eslint-disable-next-line + function prop(props, value) { + var arguments$1 = arguments; + + if (arguments.length === 1 && typeof props === 'string') { + // Get prop + if (this[0]) { return this[0][props]; } + } else { + // Set props + for (var i = 0; i < this.length; i += 1) { + if (arguments$1.length === 2) { + // String + this[i][props] = value; + } else { + // Object + // eslint-disable-next-line + for (var propName in props) { + this[i][propName] = props[propName]; + } + } + } + return this; + } + } + function data(key, value) { + var el; + if (typeof value === 'undefined') { + el = this[0]; + // Get value + if (el) { + if (el.dom7ElementDataStorage && (key in el.dom7ElementDataStorage)) { + return el.dom7ElementDataStorage[key]; + } + + var dataKey = el.getAttribute(("data-" + key)); + if (dataKey) { + return dataKey; + } + return undefined; + } + return undefined; + } + + // Set value + for (var i = 0; i < this.length; i += 1) { + el = this[i]; + if (!el.dom7ElementDataStorage) { el.dom7ElementDataStorage = {}; } + el.dom7ElementDataStorage[key] = value; + } + return this; + } + function removeData(key) { + for (var i = 0; i < this.length; i += 1) { + var el = this[i]; + if (el.dom7ElementDataStorage && el.dom7ElementDataStorage[key]) { + el.dom7ElementDataStorage[key] = null; + delete el.dom7ElementDataStorage[key]; + } + } + } + function dataset() { + var el = this[0]; + if (!el) { return undefined; } + var dataset = {}; // eslint-disable-line + if (el.dataset) { + // eslint-disable-next-line + for (var dataKey in el.dataset) { + dataset[dataKey] = el.dataset[dataKey]; + } + } else { + for (var i = 0; i < el.attributes.length; i += 1) { + // eslint-disable-next-line + var attr = el.attributes[i]; + if (attr.name.indexOf('data-') >= 0) { + dataset[toCamelCase(attr.name.split('data-')[1])] = attr.value; + } + } + } + // eslint-disable-next-line + for (var key in dataset) { + if (dataset[key] === 'false') { dataset[key] = false; } + else if (dataset[key] === 'true') { dataset[key] = true; } + else if (parseFloat(dataset[key]) === dataset[key] * 1) { dataset[key] *= 1; } + } + return dataset; + } + function val(value) { + var dom = this; + if (typeof value === 'undefined') { + if (dom[0]) { + if (dom[0].multiple && dom[0].nodeName.toLowerCase() === 'select') { + var values = []; + for (var i = 0; i < dom[0].selectedOptions.length; i += 1) { + values.push(dom[0].selectedOptions[i].value); + } + return values; + } + return dom[0].value; + } + return undefined; + } + + for (var i$1 = 0; i$1 < dom.length; i$1 += 1) { + var el = dom[i$1]; + if (Array.isArray(value) && el.multiple && el.nodeName.toLowerCase() === 'select') { + for (var j = 0; j < el.options.length; j += 1) { + el.options[j].selected = value.indexOf(el.options[j].value) >= 0; + } + } else { + el.value = value; + } + } + return dom; + } + // Transforms + // eslint-disable-next-line + function transform(transform) { + for (var i = 0; i < this.length; i += 1) { + var elStyle = this[i].style; + elStyle.webkitTransform = transform; + elStyle.transform = transform; + } + return this; + } + function transition(duration) { + if (typeof duration !== 'string') { + duration = duration + "ms"; // eslint-disable-line + } + for (var i = 0; i < this.length; i += 1) { + var elStyle = this[i].style; + elStyle.webkitTransitionDuration = duration; + elStyle.transitionDuration = duration; + } + return this; + } + // Events + function on() { + var assign; + + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + var eventType = args[0]; + var targetSelector = args[1]; + var listener = args[2]; + var capture = args[3]; + if (typeof args[1] === 'function') { + (assign = args, eventType = assign[0], listener = assign[1], capture = assign[2]); + targetSelector = undefined; + } + if (!capture) { capture = false; } + + function handleLiveEvent(e) { + var target = e.target; + if (!target) { return; } + var eventData = e.target.dom7EventData || []; + if (eventData.indexOf(e) < 0) { + eventData.unshift(e); + } + if ($(target).is(targetSelector)) { listener.apply(target, eventData); } + else { + var parents = $(target).parents(); // eslint-disable-line + for (var k = 0; k < parents.length; k += 1) { + if ($(parents[k]).is(targetSelector)) { listener.apply(parents[k], eventData); } + } + } + } + function handleEvent(e) { + var eventData = e && e.target ? e.target.dom7EventData || [] : []; + if (eventData.indexOf(e) < 0) { + eventData.unshift(e); + } + listener.apply(this, eventData); + } + var events = eventType.split(' '); + var j; + for (var i = 0; i < this.length; i += 1) { + var el = this[i]; + if (!targetSelector) { + for (j = 0; j < events.length; j += 1) { + var event = events[j]; + if (!el.dom7Listeners) { el.dom7Listeners = {}; } + if (!el.dom7Listeners[event]) { el.dom7Listeners[event] = []; } + el.dom7Listeners[event].push({ + listener: listener, + proxyListener: handleEvent, + }); + el.addEventListener(event, handleEvent, capture); + } + } else { + // Live events + for (j = 0; j < events.length; j += 1) { + var event$1 = events[j]; + if (!el.dom7LiveListeners) { el.dom7LiveListeners = {}; } + if (!el.dom7LiveListeners[event$1]) { el.dom7LiveListeners[event$1] = []; } + el.dom7LiveListeners[event$1].push({ + listener: listener, + proxyListener: handleLiveEvent, + }); + el.addEventListener(event$1, handleLiveEvent, capture); + } + } + } + return this; + } + function off() { + var assign; + + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + var eventType = args[0]; + var targetSelector = args[1]; + var listener = args[2]; + var capture = args[3]; + if (typeof args[1] === 'function') { + (assign = args, eventType = assign[0], listener = assign[1], capture = assign[2]); + targetSelector = undefined; + } + if (!capture) { capture = false; } + + var events = eventType.split(' '); + for (var i = 0; i < events.length; i += 1) { + var event = events[i]; + for (var j = 0; j < this.length; j += 1) { + var el = this[j]; + var handlers = (void 0); + if (!targetSelector && el.dom7Listeners) { + handlers = el.dom7Listeners[event]; + } else if (targetSelector && el.dom7LiveListeners) { + handlers = el.dom7LiveListeners[event]; + } + if (handlers && handlers.length) { + for (var k = handlers.length - 1; k >= 0; k -= 1) { + var handler = handlers[k]; + if (listener && handler.listener === listener) { + el.removeEventListener(event, handler.proxyListener, capture); + handlers.splice(k, 1); + } else if (listener && handler.listener && handler.listener.dom7proxy && handler.listener.dom7proxy === listener) { + el.removeEventListener(event, handler.proxyListener, capture); + handlers.splice(k, 1); + } else if (!listener) { + el.removeEventListener(event, handler.proxyListener, capture); + handlers.splice(k, 1); + } + } + } + } + } + return this; + } + function once() { + var assign; + + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + var dom = this; + var eventName = args[0]; + var targetSelector = args[1]; + var listener = args[2]; + var capture = args[3]; + if (typeof args[1] === 'function') { + (assign = args, eventName = assign[0], listener = assign[1], capture = assign[2]); + targetSelector = undefined; + } + function onceHandler() { + var eventArgs = [], len = arguments.length; + while ( len-- ) eventArgs[ len ] = arguments[ len ]; + + listener.apply(this, eventArgs); + dom.off(eventName, targetSelector, onceHandler, capture); + if (onceHandler.dom7proxy) { + delete onceHandler.dom7proxy; + } + } + onceHandler.dom7proxy = listener; + return dom.on(eventName, targetSelector, onceHandler, capture); + } + function trigger() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + var events = args[0].split(' '); + var eventData = args[1]; + for (var i = 0; i < events.length; i += 1) { + var event = events[i]; + for (var j = 0; j < this.length; j += 1) { + var el = this[j]; + var evt = (void 0); + try { + evt = new win.CustomEvent(event, { + detail: eventData, + bubbles: true, + cancelable: true, + }); + } catch (e) { + evt = doc.createEvent('Event'); + evt.initEvent(event, true, true); + evt.detail = eventData; + } + // eslint-disable-next-line + el.dom7EventData = args.filter(function (data, dataIndex) { return dataIndex > 0; }); + el.dispatchEvent(evt); + el.dom7EventData = []; + delete el.dom7EventData; + } + } + return this; + } + function transitionEnd(callback) { + var events = ['webkitTransitionEnd', 'transitionend']; + var dom = this; + var i; + function fireCallBack(e) { + /* jshint validthis:true */ + if (e.target !== this) { return; } + callback.call(this, e); + for (i = 0; i < events.length; i += 1) { + dom.off(events[i], fireCallBack); + } + } + if (callback) { + for (i = 0; i < events.length; i += 1) { + dom.on(events[i], fireCallBack); + } + } + return this; + } + function animationEnd(callback) { + var events = ['webkitAnimationEnd', 'animationend']; + var dom = this; + var i; + function fireCallBack(e) { + if (e.target !== this) { return; } + callback.call(this, e); + for (i = 0; i < events.length; i += 1) { + dom.off(events[i], fireCallBack); + } + } + if (callback) { + for (i = 0; i < events.length; i += 1) { + dom.on(events[i], fireCallBack); + } + } + return this; + } + // Sizing/Styles + function width() { + if (this[0] === win) { + return win.innerWidth; + } + + if (this.length > 0) { + return parseFloat(this.css('width')); + } + + return null; + } + function outerWidth(includeMargins) { + if (this.length > 0) { + if (includeMargins) { + // eslint-disable-next-line + var styles = this.styles(); + return this[0].offsetWidth + parseFloat(styles.getPropertyValue('margin-right')) + parseFloat(styles.getPropertyValue('margin-left')); + } + return this[0].offsetWidth; + } + return null; + } + function height() { + if (this[0] === win) { + return win.innerHeight; + } + + if (this.length > 0) { + return parseFloat(this.css('height')); + } + + return null; + } + function outerHeight(includeMargins) { + if (this.length > 0) { + if (includeMargins) { + // eslint-disable-next-line + var styles = this.styles(); + return this[0].offsetHeight + parseFloat(styles.getPropertyValue('margin-top')) + parseFloat(styles.getPropertyValue('margin-bottom')); + } + return this[0].offsetHeight; + } + return null; + } + function offset() { + if (this.length > 0) { + var el = this[0]; + var box = el.getBoundingClientRect(); + var body = doc.body; + var clientTop = el.clientTop || body.clientTop || 0; + var clientLeft = el.clientLeft || body.clientLeft || 0; + var scrollTop = el === win ? win.scrollY : el.scrollTop; + var scrollLeft = el === win ? win.scrollX : el.scrollLeft; + return { + top: (box.top + scrollTop) - clientTop, + left: (box.left + scrollLeft) - clientLeft, + }; + } + + return null; + } + function hide() { + for (var i = 0; i < this.length; i += 1) { + this[i].style.display = 'none'; + } + return this; + } + function show() { + for (var i = 0; i < this.length; i += 1) { + var el = this[i]; + if (el.style.display === 'none') { + el.style.display = ''; + } + if (win.getComputedStyle(el, null).getPropertyValue('display') === 'none') { + // Still not visible + el.style.display = 'block'; + } + } + return this; + } + function styles() { + if (this[0]) { return win.getComputedStyle(this[0], null); } + return {}; + } + function css(props, value) { + var i; + if (arguments.length === 1) { + if (typeof props === 'string') { + if (this[0]) { return win.getComputedStyle(this[0], null).getPropertyValue(props); } + } else { + for (i = 0; i < this.length; i += 1) { + // eslint-disable-next-line + for (var prop in props) { + this[i].style[prop] = props[prop]; + } + } + return this; + } + } + if (arguments.length === 2 && typeof props === 'string') { + for (i = 0; i < this.length; i += 1) { + this[i].style[props] = value; + } + return this; + } + return this; + } + + // Dom manipulation + function toArray() { + var arr = []; + for (var i = 0; i < this.length; i += 1) { + arr.push(this[i]); + } + return arr; + } + // Iterate over the collection passing elements to `callback` + function each(callback) { + // Don't bother continuing without a callback + if (!callback) { return this; } + // Iterate over the current collection + for (var i = 0; i < this.length; i += 1) { + // If the callback returns false + if (callback.call(this[i], i, this[i]) === false) { + // End the loop early + return this; + } + } + // Return `this` to allow chained DOM operations + return this; + } + function forEach(callback) { + // Don't bother continuing without a callback + if (!callback) { return this; } + // Iterate over the current collection + for (var i = 0; i < this.length; i += 1) { + // If the callback returns false + if (callback.call(this[i], this[i], i) === false) { + // End the loop early + return this; + } + } + // Return `this` to allow chained DOM operations + return this; + } + function filter(callback) { + var matchedItems = []; + var dom = this; + for (var i = 0; i < dom.length; i += 1) { + if (callback.call(dom[i], i, dom[i])) { matchedItems.push(dom[i]); } + } + return new Dom7(matchedItems); + } + function map(callback) { + var modifiedItems = []; + var dom = this; + for (var i = 0; i < dom.length; i += 1) { + modifiedItems.push(callback.call(dom[i], i, dom[i])); + } + return new Dom7(modifiedItems); + } + // eslint-disable-next-line + function html(html) { + if (typeof html === 'undefined') { + return this[0] ? this[0].innerHTML : undefined; + } + + for (var i = 0; i < this.length; i += 1) { + this[i].innerHTML = html; + } + return this; + } + // eslint-disable-next-line + function text(text) { + if (typeof text === 'undefined') { + if (this[0]) { + return this[0].textContent.trim(); + } + return null; + } + + for (var i = 0; i < this.length; i += 1) { + this[i].textContent = text; + } + return this; + } + function is(selector) { + var el = this[0]; + var compareWith; + var i; + if (!el || typeof selector === 'undefined') { return false; } + if (typeof selector === 'string') { + if (el.matches) { return el.matches(selector); } + else if (el.webkitMatchesSelector) { return el.webkitMatchesSelector(selector); } + else if (el.msMatchesSelector) { return el.msMatchesSelector(selector); } + + compareWith = $(selector); + for (i = 0; i < compareWith.length; i += 1) { + if (compareWith[i] === el) { return true; } + } + return false; + } else if (selector === doc) { return el === doc; } + else if (selector === win) { return el === win; } + + if (selector.nodeType || selector instanceof Dom7) { + compareWith = selector.nodeType ? [selector] : selector; + for (i = 0; i < compareWith.length; i += 1) { + if (compareWith[i] === el) { return true; } + } + return false; + } + return false; + } + function indexOf(el) { + for (var i = 0; i < this.length; i += 1) { + if (this[i] === el) { return i; } + } + return -1; + } + function index() { + var child = this[0]; + var i; + if (child) { + i = 0; + // eslint-disable-next-line + while ((child = child.previousSibling) !== null) { + if (child.nodeType === 1) { i += 1; } + } + return i; + } + return undefined; + } + // eslint-disable-next-line + function eq(index) { + if (typeof index === 'undefined') { return this; } + var length = this.length; + var returnIndex; + if (index > length - 1) { + return new Dom7([]); + } + if (index < 0) { + returnIndex = length + index; + if (returnIndex < 0) { return new Dom7([]); } + return new Dom7([this[returnIndex]]); + } + return new Dom7([this[index]]); + } + function append() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + var newChild; + + for (var k = 0; k < args.length; k += 1) { + newChild = args[k]; + for (var i = 0; i < this.length; i += 1) { + if (typeof newChild === 'string') { + var tempDiv = doc.createElement('div'); + tempDiv.innerHTML = newChild; + while (tempDiv.firstChild) { + this[i].appendChild(tempDiv.firstChild); + } + } else if (newChild instanceof Dom7) { + for (var j = 0; j < newChild.length; j += 1) { + this[i].appendChild(newChild[j]); + } + } else { + this[i].appendChild(newChild); + } + } + } + + return this; + } + // eslint-disable-next-line + function appendTo(parent) { + $(parent).append(this); + return this; + } + function prepend(newChild) { + var i; + var j; + for (i = 0; i < this.length; i += 1) { + if (typeof newChild === 'string') { + var tempDiv = doc.createElement('div'); + tempDiv.innerHTML = newChild; + for (j = tempDiv.childNodes.length - 1; j >= 0; j -= 1) { + this[i].insertBefore(tempDiv.childNodes[j], this[i].childNodes[0]); + } + } else if (newChild instanceof Dom7) { + for (j = 0; j < newChild.length; j += 1) { + this[i].insertBefore(newChild[j], this[i].childNodes[0]); + } + } else { + this[i].insertBefore(newChild, this[i].childNodes[0]); + } + } + return this; + } + // eslint-disable-next-line + function prependTo(parent) { + $(parent).prepend(this); + return this; + } + function insertBefore(selector) { + var before = $(selector); + for (var i = 0; i < this.length; i += 1) { + if (before.length === 1) { + before[0].parentNode.insertBefore(this[i], before[0]); + } else if (before.length > 1) { + for (var j = 0; j < before.length; j += 1) { + before[j].parentNode.insertBefore(this[i].cloneNode(true), before[j]); + } + } + } + } + function insertAfter(selector) { + var after = $(selector); + for (var i = 0; i < this.length; i += 1) { + if (after.length === 1) { + after[0].parentNode.insertBefore(this[i], after[0].nextSibling); + } else if (after.length > 1) { + for (var j = 0; j < after.length; j += 1) { + after[j].parentNode.insertBefore(this[i].cloneNode(true), after[j].nextSibling); + } + } + } + } + function next(selector) { + if (this.length > 0) { + if (selector) { + if (this[0].nextElementSibling && $(this[0].nextElementSibling).is(selector)) { + return new Dom7([this[0].nextElementSibling]); + } + return new Dom7([]); + } + + if (this[0].nextElementSibling) { return new Dom7([this[0].nextElementSibling]); } + return new Dom7([]); + } + return new Dom7([]); + } + function nextAll(selector) { + var nextEls = []; + var el = this[0]; + if (!el) { return new Dom7([]); } + while (el.nextElementSibling) { + var next = el.nextElementSibling; // eslint-disable-line + if (selector) { + if ($(next).is(selector)) { nextEls.push(next); } + } else { nextEls.push(next); } + el = next; + } + return new Dom7(nextEls); + } + function prev(selector) { + if (this.length > 0) { + var el = this[0]; + if (selector) { + if (el.previousElementSibling && $(el.previousElementSibling).is(selector)) { + return new Dom7([el.previousElementSibling]); + } + return new Dom7([]); + } + + if (el.previousElementSibling) { return new Dom7([el.previousElementSibling]); } + return new Dom7([]); + } + return new Dom7([]); + } + function prevAll(selector) { + var prevEls = []; + var el = this[0]; + if (!el) { return new Dom7([]); } + while (el.previousElementSibling) { + var prev = el.previousElementSibling; // eslint-disable-line + if (selector) { + if ($(prev).is(selector)) { prevEls.push(prev); } + } else { prevEls.push(prev); } + el = prev; + } + return new Dom7(prevEls); + } + function siblings(selector) { + return this.nextAll(selector).add(this.prevAll(selector)); + } + function parent(selector) { + var parents = []; // eslint-disable-line + for (var i = 0; i < this.length; i += 1) { + if (this[i].parentNode !== null) { + if (selector) { + if ($(this[i].parentNode).is(selector)) { parents.push(this[i].parentNode); } + } else { + parents.push(this[i].parentNode); + } + } + } + return $(unique(parents)); + } + function parents(selector) { + var parents = []; // eslint-disable-line + for (var i = 0; i < this.length; i += 1) { + var parent = this[i].parentNode; // eslint-disable-line + while (parent) { + if (selector) { + if ($(parent).is(selector)) { parents.push(parent); } + } else { + parents.push(parent); + } + parent = parent.parentNode; + } + } + return $(unique(parents)); + } + function closest(selector) { + var closest = this; // eslint-disable-line + if (typeof selector === 'undefined') { + return new Dom7([]); + } + if (!closest.is(selector)) { + closest = closest.parents(selector).eq(0); + } + return closest; + } + function find(selector) { + var foundElements = []; + for (var i = 0; i < this.length; i += 1) { + var found = this[i].querySelectorAll(selector); + for (var j = 0; j < found.length; j += 1) { + foundElements.push(found[j]); + } + } + return new Dom7(foundElements); + } + function children(selector) { + var children = []; // eslint-disable-line + for (var i = 0; i < this.length; i += 1) { + var childNodes = this[i].childNodes; + + for (var j = 0; j < childNodes.length; j += 1) { + if (!selector) { + if (childNodes[j].nodeType === 1) { children.push(childNodes[j]); } + } else if (childNodes[j].nodeType === 1 && $(childNodes[j]).is(selector)) { + children.push(childNodes[j]); + } + } + } + return new Dom7(unique(children)); + } + function remove() { + for (var i = 0; i < this.length; i += 1) { + if (this[i].parentNode) { this[i].parentNode.removeChild(this[i]); } + } + return this; + } + function detach() { + return this.remove(); + } + function add() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + var dom = this; + var i; + var j; + for (i = 0; i < args.length; i += 1) { + var toAdd = $(args[i]); + for (j = 0; j < toAdd.length; j += 1) { + dom[dom.length] = toAdd[j]; + dom.length += 1; + } + } + return dom; + } + function empty() { + for (var i = 0; i < this.length; i += 1) { + var el = this[i]; + if (el.nodeType === 1) { + for (var j = 0; j < el.childNodes.length; j += 1) { + if (el.childNodes[j].parentNode) { + el.childNodes[j].parentNode.removeChild(el.childNodes[j]); + } + } + el.textContent = ''; + } + } + return this; + } + + var Methods = /*#__PURE__*/Object.freeze({ + addClass: addClass, + removeClass: removeClass, + hasClass: hasClass, + toggleClass: toggleClass, + attr: attr, + removeAttr: removeAttr, + prop: prop, + data: data, + removeData: removeData, + dataset: dataset, + val: val, + transform: transform, + transition: transition, + on: on, + off: off, + once: once, + trigger: trigger, + transitionEnd: transitionEnd, + animationEnd: animationEnd, + width: width, + outerWidth: outerWidth, + height: height, + outerHeight: outerHeight, + offset: offset, + hide: hide, + show: show, + styles: styles, + css: css, + toArray: toArray, + each: each, + forEach: forEach, + filter: filter, + map: map, + html: html, + text: text, + is: is, + indexOf: indexOf, + index: index, + eq: eq, + append: append, + appendTo: appendTo, + prepend: prepend, + prependTo: prependTo, + insertBefore: insertBefore, + insertAfter: insertAfter, + next: next, + nextAll: nextAll, + prev: prev, + prevAll: prevAll, + siblings: siblings, + parent: parent, + parents: parents, + closest: closest, + find: find, + children: children, + remove: remove, + detach: detach, + add: add, + empty: empty + }); + + function scrollTo() { + var assign; + + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + var left = args[0]; + var top = args[1]; + var duration = args[2]; + var easing = args[3]; + var callback = args[4]; + if (args.length === 4 && typeof easing === 'function') { + callback = easing; + (assign = args, left = assign[0], top = assign[1], duration = assign[2], callback = assign[3], easing = assign[4]); + } + if (typeof easing === 'undefined') { easing = 'swing'; } + + return this.each(function animate() { + var el = this; + var currentTop; + var currentLeft; + var maxTop; + var maxLeft; + var newTop; + var newLeft; + var scrollTop; // eslint-disable-line + var scrollLeft; // eslint-disable-line + var animateTop = top > 0 || top === 0; + var animateLeft = left > 0 || left === 0; + if (typeof easing === 'undefined') { + easing = 'swing'; + } + if (animateTop) { + currentTop = el.scrollTop; + if (!duration) { + el.scrollTop = top; + } + } + if (animateLeft) { + currentLeft = el.scrollLeft; + if (!duration) { + el.scrollLeft = left; + } + } + if (!duration) { return; } + if (animateTop) { + maxTop = el.scrollHeight - el.offsetHeight; + newTop = Math.max(Math.min(top, maxTop), 0); + } + if (animateLeft) { + maxLeft = el.scrollWidth - el.offsetWidth; + newLeft = Math.max(Math.min(left, maxLeft), 0); + } + var startTime = null; + if (animateTop && newTop === currentTop) { animateTop = false; } + if (animateLeft && newLeft === currentLeft) { animateLeft = false; } + function render(time) { + if ( time === void 0 ) time = new Date().getTime(); + + if (startTime === null) { + startTime = time; + } + var progress = Math.max(Math.min((time - startTime) / duration, 1), 0); + var easeProgress = easing === 'linear' ? progress : (0.5 - (Math.cos(progress * Math.PI) / 2)); + var done; + if (animateTop) { scrollTop = currentTop + (easeProgress * (newTop - currentTop)); } + if (animateLeft) { scrollLeft = currentLeft + (easeProgress * (newLeft - currentLeft)); } + if (animateTop && newTop > currentTop && scrollTop >= newTop) { + el.scrollTop = newTop; + done = true; + } + if (animateTop && newTop < currentTop && scrollTop <= newTop) { + el.scrollTop = newTop; + done = true; + } + if (animateLeft && newLeft > currentLeft && scrollLeft >= newLeft) { + el.scrollLeft = newLeft; + done = true; + } + if (animateLeft && newLeft < currentLeft && scrollLeft <= newLeft) { + el.scrollLeft = newLeft; + done = true; + } + + if (done) { + if (callback) { callback(); } + return; + } + if (animateTop) { el.scrollTop = scrollTop; } + if (animateLeft) { el.scrollLeft = scrollLeft; } + requestAnimationFrame(render); + } + requestAnimationFrame(render); + }); + } + // scrollTop(top, duration, easing, callback) { + function scrollTop() { + var assign; + + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + var top = args[0]; + var duration = args[1]; + var easing = args[2]; + var callback = args[3]; + if (args.length === 3 && typeof easing === 'function') { + (assign = args, top = assign[0], duration = assign[1], callback = assign[2], easing = assign[3]); + } + var dom = this; + if (typeof top === 'undefined') { + if (dom.length > 0) { return dom[0].scrollTop; } + return null; + } + return dom.scrollTo(undefined, top, duration, easing, callback); + } + function scrollLeft() { + var assign; + + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + var left = args[0]; + var duration = args[1]; + var easing = args[2]; + var callback = args[3]; + if (args.length === 3 && typeof easing === 'function') { + (assign = args, left = assign[0], duration = assign[1], callback = assign[2], easing = assign[3]); + } + var dom = this; + if (typeof left === 'undefined') { + if (dom.length > 0) { return dom[0].scrollLeft; } + return null; + } + return dom.scrollTo(left, undefined, duration, easing, callback); + } + + var Scroll = /*#__PURE__*/Object.freeze({ + scrollTo: scrollTo, + scrollTop: scrollTop, + scrollLeft: scrollLeft + }); + + function animate(initialProps, initialParams) { + var els = this; + var a = { + props: Object.assign({}, initialProps), + params: Object.assign({ + duration: 300, + easing: 'swing', // or 'linear' + /* Callbacks + begin(elements) + complete(elements) + progress(elements, complete, remaining, start, tweenValue) + */ + }, initialParams), + + elements: els, + animating: false, + que: [], + + easingProgress: function easingProgress(easing, progress) { + if (easing === 'swing') { + return 0.5 - (Math.cos(progress * Math.PI) / 2); + } + if (typeof easing === 'function') { + return easing(progress); + } + return progress; + }, + stop: function stop() { + if (a.frameId) { + cancelAnimationFrame(a.frameId); + } + a.animating = false; + a.elements.each(function (index, el) { + var element = el; + delete element.dom7AnimateInstance; + }); + a.que = []; + }, + done: function done(complete) { + a.animating = false; + a.elements.each(function (index, el) { + var element = el; + delete element.dom7AnimateInstance; + }); + if (complete) { complete(els); } + if (a.que.length > 0) { + var que = a.que.shift(); + a.animate(que[0], que[1]); + } + }, + animate: function animate(props, params) { + if (a.animating) { + a.que.push([props, params]); + return a; + } + var elements = []; + + // Define & Cache Initials & Units + a.elements.each(function (index, el) { + var initialFullValue; + var initialValue; + var unit; + var finalValue; + var finalFullValue; + + if (!el.dom7AnimateInstance) { a.elements[index].dom7AnimateInstance = a; } + + elements[index] = { + container: el, + }; + Object.keys(props).forEach(function (prop) { + initialFullValue = win.getComputedStyle(el, null).getPropertyValue(prop).replace(',', '.'); + initialValue = parseFloat(initialFullValue); + unit = initialFullValue.replace(initialValue, ''); + finalValue = parseFloat(props[prop]); + finalFullValue = props[prop] + unit; + elements[index][prop] = { + initialFullValue: initialFullValue, + initialValue: initialValue, + unit: unit, + finalValue: finalValue, + finalFullValue: finalFullValue, + currentValue: initialValue, + }; + }); + }); + + var startTime = null; + var time; + var elementsDone = 0; + var propsDone = 0; + var done; + var began = false; + + a.animating = true; + + function render() { + time = new Date().getTime(); + var progress; + var easeProgress; + // let el; + if (!began) { + began = true; + if (params.begin) { params.begin(els); } + } + if (startTime === null) { + startTime = time; + } + if (params.progress) { + // eslint-disable-next-line + params.progress(els, Math.max(Math.min((time - startTime) / params.duration, 1), 0), ((startTime + params.duration) - time < 0 ? 0 : (startTime + params.duration) - time), startTime); + } + + elements.forEach(function (element) { + var el = element; + if (done || el.done) { return; } + Object.keys(props).forEach(function (prop) { + if (done || el.done) { return; } + progress = Math.max(Math.min((time - startTime) / params.duration, 1), 0); + easeProgress = a.easingProgress(params.easing, progress); + var ref = el[prop]; + var initialValue = ref.initialValue; + var finalValue = ref.finalValue; + var unit = ref.unit; + el[prop].currentValue = initialValue + (easeProgress * (finalValue - initialValue)); + var currentValue = el[prop].currentValue; + + if ( + (finalValue > initialValue && currentValue >= finalValue) || + (finalValue < initialValue && currentValue <= finalValue)) { + el.container.style[prop] = finalValue + unit; + propsDone += 1; + if (propsDone === Object.keys(props).length) { + el.done = true; + elementsDone += 1; + } + if (elementsDone === elements.length) { + done = true; + } + } + if (done) { + a.done(params.complete); + return; + } + el.container.style[prop] = currentValue + unit; + }); + }); + if (done) { return; } + // Then call + a.frameId = requestAnimationFrame(render); + } + a.frameId = requestAnimationFrame(render); + return a; + }, + }; + + if (a.elements.length === 0) { + return els; + } + + var animateInstance; + for (var i = 0; i < a.elements.length; i += 1) { + if (a.elements[i].dom7AnimateInstance) { + animateInstance = a.elements[i].dom7AnimateInstance; + } else { a.elements[i].dom7AnimateInstance = a; } + } + if (!animateInstance) { + animateInstance = a; + } + + if (initialProps === 'stop') { + animateInstance.stop(); + } else { + animateInstance.animate(a.props, a.params); + } + + return els; + } + + function stop() { + var els = this; + for (var i = 0; i < els.length; i += 1) { + if (els[i].dom7AnimateInstance) { + els[i].dom7AnimateInstance.stop(); + } + } + } + + var Animate = /*#__PURE__*/Object.freeze({ + animate: animate, + stop: stop + }); + + var noTrigger = ('resize scroll').split(' '); + function eventShortcut(name) { + var ref; + + var args = [], len = arguments.length - 1; + while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ]; + if (typeof args[0] === 'undefined') { + for (var i = 0; i < this.length; i += 1) { + if (noTrigger.indexOf(name) < 0) { + if (name in this[i]) { this[i][name](); } + else { + $(this[i]).trigger(name); + } + } + } + return this; + } + return (ref = this).on.apply(ref, [ name ].concat( args )); + } + + function click() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return eventShortcut.bind(this).apply(void 0, [ 'click' ].concat( args )); + } + function blur() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return eventShortcut.bind(this).apply(void 0, [ 'blur' ].concat( args )); + } + function focus() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return eventShortcut.bind(this).apply(void 0, [ 'focus' ].concat( args )); + } + function focusin() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return eventShortcut.bind(this).apply(void 0, [ 'focusin' ].concat( args )); + } + function focusout() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return eventShortcut.bind(this).apply(void 0, [ 'focusout' ].concat( args )); + } + function keyup() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return eventShortcut.bind(this).apply(void 0, [ 'keyup' ].concat( args )); + } + function keydown() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return eventShortcut.bind(this).apply(void 0, [ 'keydown' ].concat( args )); + } + function keypress() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return eventShortcut.bind(this).apply(void 0, [ 'keypress' ].concat( args )); + } + function submit() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return eventShortcut.bind(this).apply(void 0, [ 'submit' ].concat( args )); + } + function change() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return eventShortcut.bind(this).apply(void 0, [ 'change' ].concat( args )); + } + function mousedown() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return eventShortcut.bind(this).apply(void 0, [ 'mousedown' ].concat( args )); + } + function mousemove() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return eventShortcut.bind(this).apply(void 0, [ 'mousemove' ].concat( args )); + } + function mouseup() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return eventShortcut.bind(this).apply(void 0, [ 'mouseup' ].concat( args )); + } + function mouseenter() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return eventShortcut.bind(this).apply(void 0, [ 'mouseenter' ].concat( args )); + } + function mouseleave() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return eventShortcut.bind(this).apply(void 0, [ 'mouseleave' ].concat( args )); + } + function mouseout() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return eventShortcut.bind(this).apply(void 0, [ 'mouseout' ].concat( args )); + } + function mouseover() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return eventShortcut.bind(this).apply(void 0, [ 'mouseover' ].concat( args )); + } + function touchstart() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return eventShortcut.bind(this).apply(void 0, [ 'touchstart' ].concat( args )); + } + function touchend() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return eventShortcut.bind(this).apply(void 0, [ 'touchend' ].concat( args )); + } + function touchmove() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return eventShortcut.bind(this).apply(void 0, [ 'touchmove' ].concat( args )); + } + function resize() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return eventShortcut.bind(this).apply(void 0, [ 'resize' ].concat( args )); + } + function scroll() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return eventShortcut.bind(this).apply(void 0, [ 'scroll' ].concat( args )); + } + + var eventShortcuts = /*#__PURE__*/Object.freeze({ + click: click, + blur: blur, + focus: focus, + focusin: focusin, + focusout: focusout, + keyup: keyup, + keydown: keydown, + keypress: keypress, + submit: submit, + change: change, + mousedown: mousedown, + mousemove: mousemove, + mouseup: mouseup, + mouseenter: mouseenter, + mouseleave: mouseleave, + mouseout: mouseout, + mouseover: mouseover, + touchstart: touchstart, + touchend: touchend, + touchmove: touchmove, + resize: resize, + scroll: scroll + }); + + [Methods, Scroll, Animate, eventShortcuts].forEach(function (group) { + Object.keys(group).forEach(function (methodName) { + $.fn[methodName] = group[methodName]; + }); + }); + + /* eslint no-control-regex: "off" */ + + // Remove Diacritics + var defaultDiacriticsRemovalap = [ + { base: 'A', letters: '\u0041\u24B6\uFF21\u00C0\u00C1\u00C2\u1EA6\u1EA4\u1EAA\u1EA8\u00C3\u0100\u0102\u1EB0\u1EAE\u1EB4\u1EB2\u0226\u01E0\u00C4\u01DE\u1EA2\u00C5\u01FA\u01CD\u0200\u0202\u1EA0\u1EAC\u1EB6\u1E00\u0104\u023A\u2C6F' }, + { base: 'AA', letters: '\uA732' }, + { base: 'AE', letters: '\u00C6\u01FC\u01E2' }, + { base: 'AO', letters: '\uA734' }, + { base: 'AU', letters: '\uA736' }, + { base: 'AV', letters: '\uA738\uA73A' }, + { base: 'AY', letters: '\uA73C' }, + { base: 'B', letters: '\u0042\u24B7\uFF22\u1E02\u1E04\u1E06\u0243\u0182\u0181' }, + { base: 'C', letters: '\u0043\u24B8\uFF23\u0106\u0108\u010A\u010C\u00C7\u1E08\u0187\u023B\uA73E' }, + { base: 'D', letters: '\u0044\u24B9\uFF24\u1E0A\u010E\u1E0C\u1E10\u1E12\u1E0E\u0110\u018B\u018A\u0189\uA779' }, + { base: 'DZ', letters: '\u01F1\u01C4' }, + { base: 'Dz', letters: '\u01F2\u01C5' }, + { base: 'E', letters: '\u0045\u24BA\uFF25\u00C8\u00C9\u00CA\u1EC0\u1EBE\u1EC4\u1EC2\u1EBC\u0112\u1E14\u1E16\u0114\u0116\u00CB\u1EBA\u011A\u0204\u0206\u1EB8\u1EC6\u0228\u1E1C\u0118\u1E18\u1E1A\u0190\u018E' }, + { base: 'F', letters: '\u0046\u24BB\uFF26\u1E1E\u0191\uA77B' }, + { base: 'G', letters: '\u0047\u24BC\uFF27\u01F4\u011C\u1E20\u011E\u0120\u01E6\u0122\u01E4\u0193\uA7A0\uA77D\uA77E' }, + { base: 'H', letters: '\u0048\u24BD\uFF28\u0124\u1E22\u1E26\u021E\u1E24\u1E28\u1E2A\u0126\u2C67\u2C75\uA78D' }, + { base: 'I', letters: '\u0049\u24BE\uFF29\u00CC\u00CD\u00CE\u0128\u012A\u012C\u0130\u00CF\u1E2E\u1EC8\u01CF\u0208\u020A\u1ECA\u012E\u1E2C\u0197' }, + { base: 'J', letters: '\u004A\u24BF\uFF2A\u0134\u0248' }, + { base: 'K', letters: '\u004B\u24C0\uFF2B\u1E30\u01E8\u1E32\u0136\u1E34\u0198\u2C69\uA740\uA742\uA744\uA7A2' }, + { base: 'L', letters: '\u004C\u24C1\uFF2C\u013F\u0139\u013D\u1E36\u1E38\u013B\u1E3C\u1E3A\u0141\u023D\u2C62\u2C60\uA748\uA746\uA780' }, + { base: 'LJ', letters: '\u01C7' }, + { base: 'Lj', letters: '\u01C8' }, + { base: 'M', letters: '\u004D\u24C2\uFF2D\u1E3E\u1E40\u1E42\u2C6E\u019C' }, + { base: 'N', letters: '\u004E\u24C3\uFF2E\u01F8\u0143\u00D1\u1E44\u0147\u1E46\u0145\u1E4A\u1E48\u0220\u019D\uA790\uA7A4' }, + { base: 'NJ', letters: '\u01CA' }, + { base: 'Nj', letters: '\u01CB' }, + { base: 'O', letters: '\u004F\u24C4\uFF2F\u00D2\u00D3\u00D4\u1ED2\u1ED0\u1ED6\u1ED4\u00D5\u1E4C\u022C\u1E4E\u014C\u1E50\u1E52\u014E\u022E\u0230\u00D6\u022A\u1ECE\u0150\u01D1\u020C\u020E\u01A0\u1EDC\u1EDA\u1EE0\u1EDE\u1EE2\u1ECC\u1ED8\u01EA\u01EC\u00D8\u01FE\u0186\u019F\uA74A\uA74C' }, + { base: 'OI', letters: '\u01A2' }, + { base: 'OO', letters: '\uA74E' }, + { base: 'OU', letters: '\u0222' }, + { base: 'OE', letters: '\u008C\u0152' }, + { base: 'oe', letters: '\u009C\u0153' }, + { base: 'P', letters: '\u0050\u24C5\uFF30\u1E54\u1E56\u01A4\u2C63\uA750\uA752\uA754' }, + { base: 'Q', letters: '\u0051\u24C6\uFF31\uA756\uA758\u024A' }, + { base: 'R', letters: '\u0052\u24C7\uFF32\u0154\u1E58\u0158\u0210\u0212\u1E5A\u1E5C\u0156\u1E5E\u024C\u2C64\uA75A\uA7A6\uA782' }, + { base: 'S', letters: '\u0053\u24C8\uFF33\u1E9E\u015A\u1E64\u015C\u1E60\u0160\u1E66\u1E62\u1E68\u0218\u015E\u2C7E\uA7A8\uA784' }, + { base: 'T', letters: '\u0054\u24C9\uFF34\u1E6A\u0164\u1E6C\u021A\u0162\u1E70\u1E6E\u0166\u01AC\u01AE\u023E\uA786' }, + { base: 'TZ', letters: '\uA728' }, + { base: 'U', letters: '\u0055\u24CA\uFF35\u00D9\u00DA\u00DB\u0168\u1E78\u016A\u1E7A\u016C\u00DC\u01DB\u01D7\u01D5\u01D9\u1EE6\u016E\u0170\u01D3\u0214\u0216\u01AF\u1EEA\u1EE8\u1EEE\u1EEC\u1EF0\u1EE4\u1E72\u0172\u1E76\u1E74\u0244' }, + { base: 'V', letters: '\u0056\u24CB\uFF36\u1E7C\u1E7E\u01B2\uA75E\u0245' }, + { base: 'VY', letters: '\uA760' }, + { base: 'W', letters: '\u0057\u24CC\uFF37\u1E80\u1E82\u0174\u1E86\u1E84\u1E88\u2C72' }, + { base: 'X', letters: '\u0058\u24CD\uFF38\u1E8A\u1E8C' }, + { base: 'Y', letters: '\u0059\u24CE\uFF39\u1EF2\u00DD\u0176\u1EF8\u0232\u1E8E\u0178\u1EF6\u1EF4\u01B3\u024E\u1EFE' }, + { base: 'Z', letters: '\u005A\u24CF\uFF3A\u0179\u1E90\u017B\u017D\u1E92\u1E94\u01B5\u0224\u2C7F\u2C6B\uA762' }, + { base: 'a', letters: '\u0061\u24D0\uFF41\u1E9A\u00E0\u00E1\u00E2\u1EA7\u1EA5\u1EAB\u1EA9\u00E3\u0101\u0103\u1EB1\u1EAF\u1EB5\u1EB3\u0227\u01E1\u00E4\u01DF\u1EA3\u00E5\u01FB\u01CE\u0201\u0203\u1EA1\u1EAD\u1EB7\u1E01\u0105\u2C65\u0250' }, + { base: 'aa', letters: '\uA733' }, + { base: 'ae', letters: '\u00E6\u01FD\u01E3' }, + { base: 'ao', letters: '\uA735' }, + { base: 'au', letters: '\uA737' }, + { base: 'av', letters: '\uA739\uA73B' }, + { base: 'ay', letters: '\uA73D' }, + { base: 'b', letters: '\u0062\u24D1\uFF42\u1E03\u1E05\u1E07\u0180\u0183\u0253' }, + { base: 'c', letters: '\u0063\u24D2\uFF43\u0107\u0109\u010B\u010D\u00E7\u1E09\u0188\u023C\uA73F\u2184' }, + { base: 'd', letters: '\u0064\u24D3\uFF44\u1E0B\u010F\u1E0D\u1E11\u1E13\u1E0F\u0111\u018C\u0256\u0257\uA77A' }, + { base: 'dz', letters: '\u01F3\u01C6' }, + { base: 'e', letters: '\u0065\u24D4\uFF45\u00E8\u00E9\u00EA\u1EC1\u1EBF\u1EC5\u1EC3\u1EBD\u0113\u1E15\u1E17\u0115\u0117\u00EB\u1EBB\u011B\u0205\u0207\u1EB9\u1EC7\u0229\u1E1D\u0119\u1E19\u1E1B\u0247\u025B\u01DD' }, + { base: 'f', letters: '\u0066\u24D5\uFF46\u1E1F\u0192\uA77C' }, + { base: 'g', letters: '\u0067\u24D6\uFF47\u01F5\u011D\u1E21\u011F\u0121\u01E7\u0123\u01E5\u0260\uA7A1\u1D79\uA77F' }, + { base: 'h', letters: '\u0068\u24D7\uFF48\u0125\u1E23\u1E27\u021F\u1E25\u1E29\u1E2B\u1E96\u0127\u2C68\u2C76\u0265' }, + { base: 'hv', letters: '\u0195' }, + { base: 'i', letters: '\u0069\u24D8\uFF49\u00EC\u00ED\u00EE\u0129\u012B\u012D\u00EF\u1E2F\u1EC9\u01D0\u0209\u020B\u1ECB\u012F\u1E2D\u0268\u0131' }, + { base: 'j', letters: '\u006A\u24D9\uFF4A\u0135\u01F0\u0249' }, + { base: 'k', letters: '\u006B\u24DA\uFF4B\u1E31\u01E9\u1E33\u0137\u1E35\u0199\u2C6A\uA741\uA743\uA745\uA7A3' }, + { base: 'l', letters: '\u006C\u24DB\uFF4C\u0140\u013A\u013E\u1E37\u1E39\u013C\u1E3D\u1E3B\u017F\u0142\u019A\u026B\u2C61\uA749\uA781\uA747' }, + { base: 'lj', letters: '\u01C9' }, + { base: 'm', letters: '\u006D\u24DC\uFF4D\u1E3F\u1E41\u1E43\u0271\u026F' }, + { base: 'n', letters: '\u006E\u24DD\uFF4E\u01F9\u0144\u00F1\u1E45\u0148\u1E47\u0146\u1E4B\u1E49\u019E\u0272\u0149\uA791\uA7A5' }, + { base: 'nj', letters: '\u01CC' }, + { base: 'o', letters: '\u006F\u24DE\uFF4F\u00F2\u00F3\u00F4\u1ED3\u1ED1\u1ED7\u1ED5\u00F5\u1E4D\u022D\u1E4F\u014D\u1E51\u1E53\u014F\u022F\u0231\u00F6\u022B\u1ECF\u0151\u01D2\u020D\u020F\u01A1\u1EDD\u1EDB\u1EE1\u1EDF\u1EE3\u1ECD\u1ED9\u01EB\u01ED\u00F8\u01FF\u0254\uA74B\uA74D\u0275' }, + { base: 'oi', letters: '\u01A3' }, + { base: 'ou', letters: '\u0223' }, + { base: 'oo', letters: '\uA74F' }, + { base: 'p', letters: '\u0070\u24DF\uFF50\u1E55\u1E57\u01A5\u1D7D\uA751\uA753\uA755' }, + { base: 'q', letters: '\u0071\u24E0\uFF51\u024B\uA757\uA759' }, + { base: 'r', letters: '\u0072\u24E1\uFF52\u0155\u1E59\u0159\u0211\u0213\u1E5B\u1E5D\u0157\u1E5F\u024D\u027D\uA75B\uA7A7\uA783' }, + { base: 's', letters: '\u0073\u24E2\uFF53\u00DF\u015B\u1E65\u015D\u1E61\u0161\u1E67\u1E63\u1E69\u0219\u015F\u023F\uA7A9\uA785\u1E9B' }, + { base: 't', letters: '\u0074\u24E3\uFF54\u1E6B\u1E97\u0165\u1E6D\u021B\u0163\u1E71\u1E6F\u0167\u01AD\u0288\u2C66\uA787' }, + { base: 'tz', letters: '\uA729' }, + { base: 'u', letters: '\u0075\u24E4\uFF55\u00F9\u00FA\u00FB\u0169\u1E79\u016B\u1E7B\u016D\u00FC\u01DC\u01D8\u01D6\u01DA\u1EE7\u016F\u0171\u01D4\u0215\u0217\u01B0\u1EEB\u1EE9\u1EEF\u1EED\u1EF1\u1EE5\u1E73\u0173\u1E77\u1E75\u0289' }, + { base: 'v', letters: '\u0076\u24E5\uFF56\u1E7D\u1E7F\u028B\uA75F\u028C' }, + { base: 'vy', letters: '\uA761' }, + { base: 'w', letters: '\u0077\u24E6\uFF57\u1E81\u1E83\u0175\u1E87\u1E85\u1E98\u1E89\u2C73' }, + { base: 'x', letters: '\u0078\u24E7\uFF58\u1E8B\u1E8D' }, + { base: 'y', letters: '\u0079\u24E8\uFF59\u1EF3\u00FD\u0177\u1EF9\u0233\u1E8F\u00FF\u1EF7\u1E99\u1EF5\u01B4\u024F\u1EFF' }, + { base: 'z', letters: '\u007A\u24E9\uFF5A\u017A\u1E91\u017C\u017E\u1E93\u1E95\u01B6\u0225\u0240\u2C6C\uA763' } ]; + + var diacriticsMap = {}; + for (var i = 0; i < defaultDiacriticsRemovalap.length; i += 1) { + var letters = defaultDiacriticsRemovalap[i].letters; + for (var j = 0; j < letters.length; j += 1) { + diacriticsMap[letters[j]] = defaultDiacriticsRemovalap[i].base; + } + } + + var uniqueNumber = 1; + + var Utils = { + uniqueNumber: function uniqueNumber$1() { + uniqueNumber += 1; + return uniqueNumber; + }, + id: function id(mask, map) { + if ( mask === void 0 ) mask = 'xxxxxxxxxx'; + if ( map === void 0 ) map = '0123456789abcdef'; + + var length = map.length; + return mask.replace(/x/g, function () { return map[Math.floor((Math.random() * length))]; }); + }, + mdPreloaderContent: "\n \n \n \n \n \n \n \n \n \n ".trim(), + iosPreloaderContent: ("\n \n " + ([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11].map(function () { return ''; }).join('')) + "\n \n ").trim(), + auroraPreloaderContent: "\n \n \n \n ", + eventNameToColonCase: function eventNameToColonCase(eventName) { + var hasColon; + return eventName.split('').map(function (char, index) { + if (char.match(/[A-Z]/) && index !== 0 && !hasColon) { + hasColon = true; + return (":" + (char.toLowerCase())); + } + return char.toLowerCase(); + }).join(''); + }, + deleteProps: function deleteProps(obj) { + var object = obj; + Object.keys(object).forEach(function (key) { + try { + object[key] = null; + } catch (e) { + // no setter for object + } + try { + delete object[key]; + } catch (e) { + // something got wrong + } + }); + }, + nextTick: function nextTick(callback, delay) { + if ( delay === void 0 ) delay = 0; + + return setTimeout(callback, delay); + }, + nextFrame: function nextFrame(callback) { + return Utils.requestAnimationFrame(function () { + Utils.requestAnimationFrame(callback); + }); + }, + now: function now() { + return Date.now(); + }, + requestAnimationFrame: function requestAnimationFrame(callback) { + return win.requestAnimationFrame(callback); + }, + cancelAnimationFrame: function cancelAnimationFrame(id) { + return win.cancelAnimationFrame(id); + }, + removeDiacritics: function removeDiacritics(str) { + return str.replace(/[^\u0000-\u007E]/g, function (a) { return diacriticsMap[a] || a; }); + }, + parseUrlQuery: function parseUrlQuery(url) { + var query = {}; + var urlToParse = url || win.location.href; + var i; + var params; + var param; + var length; + if (typeof urlToParse === 'string' && urlToParse.length) { + urlToParse = urlToParse.indexOf('?') > -1 ? urlToParse.replace(/\S*\?/, '') : ''; + params = urlToParse.split('&').filter(function (paramsPart) { return paramsPart !== ''; }); + length = params.length; + + for (i = 0; i < length; i += 1) { + param = params[i].replace(/#\S+/g, '').split('='); + query[decodeURIComponent(param[0])] = typeof param[1] === 'undefined' ? undefined : decodeURIComponent(param.slice(1).join('=')) || ''; + } + } + return query; + }, + getTranslate: function getTranslate(el, axis) { + if ( axis === void 0 ) axis = 'x'; + + var matrix; + var curTransform; + var transformMatrix; + + var curStyle = win.getComputedStyle(el, null); + + if (win.WebKitCSSMatrix) { + curTransform = curStyle.transform || curStyle.webkitTransform; + if (curTransform.split(',').length > 6) { + curTransform = curTransform.split(', ').map(function (a) { return a.replace(',', '.'); }).join(', '); + } + // Some old versions of Webkit choke when 'none' is passed; pass + // empty string instead in this case + transformMatrix = new win.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform); + } else { + transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,'); + matrix = transformMatrix.toString().split(','); + } + + if (axis === 'x') { + // Latest Chrome and webkits Fix + if (win.WebKitCSSMatrix) { curTransform = transformMatrix.m41; } + // Crazy IE10 Matrix + else if (matrix.length === 16) { curTransform = parseFloat(matrix[12]); } + // Normal Browsers + else { curTransform = parseFloat(matrix[4]); } + } + if (axis === 'y') { + // Latest Chrome and webkits Fix + if (win.WebKitCSSMatrix) { curTransform = transformMatrix.m42; } + // Crazy IE10 Matrix + else if (matrix.length === 16) { curTransform = parseFloat(matrix[13]); } + // Normal Browsers + else { curTransform = parseFloat(matrix[5]); } + } + return curTransform || 0; + }, + serializeObject: function serializeObject(obj, parents) { + if ( parents === void 0 ) parents = []; + + if (typeof obj === 'string') { return obj; } + var resultArray = []; + var separator = '&'; + var newParents; + function varName(name) { + if (parents.length > 0) { + var parentParts = ''; + for (var j = 0; j < parents.length; j += 1) { + if (j === 0) { parentParts += parents[j]; } + else { parentParts += "[" + (encodeURIComponent(parents[j])) + "]"; } + } + return (parentParts + "[" + (encodeURIComponent(name)) + "]"); + } + return encodeURIComponent(name); + } + function varValue(value) { + return encodeURIComponent(value); + } + Object.keys(obj).forEach(function (prop) { + var toPush; + if (Array.isArray(obj[prop])) { + toPush = []; + for (var i = 0; i < obj[prop].length; i += 1) { + if (!Array.isArray(obj[prop][i]) && typeof obj[prop][i] === 'object') { + newParents = parents.slice(); + newParents.push(prop); + newParents.push(String(i)); + toPush.push(Utils.serializeObject(obj[prop][i], newParents)); + } else { + toPush.push(((varName(prop)) + "[]=" + (varValue(obj[prop][i])))); + } + } + if (toPush.length > 0) { resultArray.push(toPush.join(separator)); } + } else if (obj[prop] === null || obj[prop] === '') { + resultArray.push(((varName(prop)) + "=")); + } else if (typeof obj[prop] === 'object') { + // Object, convert to named array + newParents = parents.slice(); + newParents.push(prop); + toPush = Utils.serializeObject(obj[prop], newParents); + if (toPush !== '') { resultArray.push(toPush); } + } else if (typeof obj[prop] !== 'undefined' && obj[prop] !== '') { + // Should be string or plain value + resultArray.push(((varName(prop)) + "=" + (varValue(obj[prop])))); + } else if (obj[prop] === '') { resultArray.push(varName(prop)); } + }); + return resultArray.join(separator); + }, + isObject: function isObject(o) { + return typeof o === 'object' && o !== null && o.constructor && o.constructor === Object; + }, + merge: function merge() { + var args = [], len$1 = arguments.length; + while ( len$1-- ) args[ len$1 ] = arguments[ len$1 ]; + + var to = args[0]; + args.splice(0, 1); + var from = args; + + for (var i = 0; i < from.length; i += 1) { + var nextSource = args[i]; + if (nextSource !== undefined && nextSource !== null) { + var keysArray = Object.keys(Object(nextSource)); + for (var nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) { + var nextKey = keysArray[nextIndex]; + var desc = Object.getOwnPropertyDescriptor(nextSource, nextKey); + if (desc !== undefined && desc.enumerable) { + to[nextKey] = nextSource[nextKey]; + } + } + } + } + return to; + }, + extend: function extend() { + var args = [], len$1 = arguments.length; + while ( len$1-- ) args[ len$1 ] = arguments[ len$1 ]; + + var deep = true; + var to; + var from; + if (typeof args[0] === 'boolean') { + deep = args[0]; + to = args[1]; + args.splice(0, 2); + from = args; + } else { + to = args[0]; + args.splice(0, 1); + from = args; + } + for (var i = 0; i < from.length; i += 1) { + var nextSource = args[i]; + if (nextSource !== undefined && nextSource !== null) { + var keysArray = Object.keys(Object(nextSource)); + for (var nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) { + var nextKey = keysArray[nextIndex]; + var desc = Object.getOwnPropertyDescriptor(nextSource, nextKey); + if (desc !== undefined && desc.enumerable) { + if (!deep) { + to[nextKey] = nextSource[nextKey]; + } else if (Utils.isObject(to[nextKey]) && Utils.isObject(nextSource[nextKey])) { + Utils.extend(to[nextKey], nextSource[nextKey]); + } else if (!Utils.isObject(to[nextKey]) && Utils.isObject(nextSource[nextKey])) { + to[nextKey] = {}; + Utils.extend(to[nextKey], nextSource[nextKey]); + } else { + to[nextKey] = nextSource[nextKey]; + } + } + } + } + } + return to; + }, + colorHexToRgb: function colorHexToRgb(hex) { + var h = hex.replace(/^#?([a-f\d])([a-f\d])([a-f\d])$/i, function (m, r, g, b) { return r + r + g + g + b + b; }); + var result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(h); + return result + ? result.slice(1).map(function (n) { return parseInt(n, 16); }) + : null; + }, + colorRgbToHex: function colorRgbToHex(r, g, b) { + var result = [r, g, b].map(function (n) { + var hex = n.toString(16); + return hex.length === 1 ? ("0" + hex) : hex; + }).join(''); + return ("#" + result); + }, + colorRgbToHsl: function colorRgbToHsl(r, g, b) { + r /= 255; // eslint-disable-line + g /= 255; // eslint-disable-line + b /= 255; // eslint-disable-line + var max = Math.max(r, g, b); + var min = Math.min(r, g, b); + var d = max - min; + var h; + if (d === 0) { h = 0; } + else if (max === r) { h = ((g - b) / d) % 6; } + else if (max === g) { h = (b - r) / d + 2; } + else if (max === b) { h = (r - g) / d + 4; } + var l = (min + max) / 2; + var s = d === 0 ? 0 : d / (1 - Math.abs(2 * l - 1)); + if (h < 0) { h = 360 / 60 + h; } + return [h * 60, s, l]; + }, + colorHslToRgb: function colorHslToRgb(h, s, l) { + var c = (1 - Math.abs(2 * l - 1)) * s; + var hp = h / 60; + var x = c * (1 - Math.abs((hp % 2) - 1)); + var rgb1; + if (Number.isNaN(h) || typeof h === 'undefined') { + rgb1 = [0, 0, 0]; + } else if (hp <= 1) { rgb1 = [c, x, 0]; } + else if (hp <= 2) { rgb1 = [x, c, 0]; } + else if (hp <= 3) { rgb1 = [0, c, x]; } + else if (hp <= 4) { rgb1 = [0, x, c]; } + else if (hp <= 5) { rgb1 = [x, 0, c]; } + else if (hp <= 6) { rgb1 = [c, 0, x]; } + var m = l - (c / 2); + return rgb1.map(function (n) { return Math.max(0, Math.min(255, Math.round(255 * (n + m)))); }); + }, + colorHsbToHsl: function colorHsbToHsl(h, s, b) { + var HSL = { + h: h, + s: 0, + l: 0, + }; + var HSB = { h: h, s: s, b: b }; + + HSL.l = (2 - HSB.s) * HSB.b / 2; + HSL.s = HSL.l && HSL.l < 1 ? HSB.s * HSB.b / (HSL.l < 0.5 ? HSL.l * 2 : 2 - HSL.l * 2) : HSL.s; + + return [HSL.h, HSL.s, HSL.l]; + }, + colorHslToHsb: function colorHslToHsb(h, s, l) { + var HSB = { + h: h, + s: 0, + b: 0, + }; + var HSL = { h: h, s: s, l: l }; + + var t = HSL.s * (HSL.l < 0.5 ? HSL.l : 1 - HSL.l); + HSB.b = HSL.l + t; + HSB.s = HSL.l > 0 ? 2 * t / HSB.b : HSB.s; + + return [HSB.h, HSB.s, HSB.b]; + }, + colorThemeCSSProperties: function colorThemeCSSProperties() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + var hex; + var rgb; + if (args.length === 1) { + hex = args[0]; + rgb = Utils.colorHexToRgb(hex); + } else if (args.length === 3) { + rgb = args; + hex = Utils.colorRgbToHex.apply(Utils, rgb); + } + if (!rgb) { return {}; } + var hsl = Utils.colorRgbToHsl.apply(Utils, rgb); + var hslShade = [hsl[0], hsl[1], Math.max(0, (hsl[2] - 0.08))]; + var hslTint = [hsl[0], hsl[1], Math.max(0, (hsl[2] + 0.08))]; + var shade = Utils.colorRgbToHex.apply(Utils, Utils.colorHslToRgb.apply(Utils, hslShade)); + var tint = Utils.colorRgbToHex.apply(Utils, Utils.colorHslToRgb.apply(Utils, hslTint)); + return { + '--f7-theme-color': hex, + '--f7-theme-color-rgb': rgb.join(', '), + '--f7-theme-color-shade': shade, + '--f7-theme-color-tint': tint, + }; + }, + }; + + var Support = (function Support() { + return { + touch: !!(('ontouchstart' in win) || (win.DocumentTouch && doc instanceof win.DocumentTouch)), + + pointerEvents: !!win.PointerEvent && ('maxTouchPoints' in win.navigator) && win.navigator.maxTouchPoints >= 0, + + observer: (function checkObserver() { + return ('MutationObserver' in win || 'WebkitMutationObserver' in win); + }()), + + passiveListener: (function checkPassiveListener() { + var supportsPassive = false; + try { + var opts = Object.defineProperty({}, 'passive', { + // eslint-disable-next-line + get: function get() { + supportsPassive = true; + }, + }); + win.addEventListener('testPassiveListener', null, opts); + } catch (e) { + // No support + } + return supportsPassive; + }()), + + gestures: (function checkGestures() { + return 'ongesturestart' in win; + }()), + + intersectionObserver: (function checkObserver() { + return ('IntersectionObserver' in win); + }()), + }; + }()); + + var Device = (function Device() { + var platform = win.navigator.platform; + var ua = win.navigator.userAgent; + + var device = { + ios: false, + android: false, + androidChrome: false, + desktop: false, + iphone: false, + ipod: false, + ipad: false, + edge: false, + ie: false, + firefox: false, + macos: false, + windows: false, + cordova: !!(win.cordova || win.phonegap), + phonegap: !!(win.cordova || win.phonegap), + electron: false, + nwjs: false, + }; + + var screenWidth = win.screen.width; + var screenHeight = win.screen.height; + + var android = ua.match(/(Android);?[\s\/]+([\d.]+)?/); // eslint-disable-line + var ipad = ua.match(/(iPad).*OS\s([\d_]+)/); + var ipod = ua.match(/(iPod)(.*OS\s([\d_]+))?/); + var iphone = !ipad && ua.match(/(iPhone\sOS|iOS)\s([\d_]+)/); + var ie = ua.indexOf('MSIE ') >= 0 || ua.indexOf('Trident/') >= 0; + var edge = ua.indexOf('Edge/') >= 0; + var firefox = ua.indexOf('Gecko/') >= 0 && ua.indexOf('Firefox/') >= 0; + var windows = platform === 'Win32'; + var electron = ua.toLowerCase().indexOf('electron') >= 0; + var nwjs = typeof nw !== 'undefined' && typeof process !== 'undefined' && typeof process.versions !== 'undefined' && typeof process.versions.nw !== 'undefined'; + var macos = platform === 'MacIntel'; + + // iPadOs 13 fix + var iPadScreens = [ + '1024x1366', + '1366x1024', + '834x1194', + '1194x834', + '834x1112', + '1112x834', + '768x1024', + '1024x768', + '820x1180', + '1180x820', + '810x1080', + '1080x810' ]; + if (!ipad + && macos + && Support.touch + && iPadScreens.indexOf((screenWidth + "x" + screenHeight)) >= 0 + ) { + ipad = ua.match(/(Version)\/([\d.]+)/); + if (!ipad) { ipad = [0, 1, '13_0_0']; } + macos = false; + } + + device.ie = ie; + device.edge = edge; + device.firefox = firefox; + + // Android + if (android && !windows) { + device.os = 'android'; + device.osVersion = android[2]; + device.android = true; + device.androidChrome = ua.toLowerCase().indexOf('chrome') >= 0; + } + if (ipad || iphone || ipod) { + device.os = 'ios'; + device.ios = true; + } + // iOS + if (iphone && !ipod) { + device.osVersion = iphone[2].replace(/_/g, '.'); + device.iphone = true; + } + if (ipad) { + device.osVersion = ipad[2].replace(/_/g, '.'); + device.ipad = true; + } + if (ipod) { + device.osVersion = ipod[3] ? ipod[3].replace(/_/g, '.') : null; + device.ipod = true; + } + // iOS 8+ changed UA + if (device.ios && device.osVersion && ua.indexOf('Version/') >= 0) { + if (device.osVersion.split('.')[0] === '10') { + device.osVersion = ua.toLowerCase().split('version/')[1].split(' ')[0]; + } + } + + // Webview + device.webView = !!((iphone || ipad || ipod) && (ua.match(/.*AppleWebKit(?!.*Safari)/i) || win.navigator.standalone)) + || (win.matchMedia && win.matchMedia('(display-mode: standalone)').matches); + device.webview = device.webView; + device.standalone = device.webView; + + // Desktop + device.desktop = !(device.ios || device.android) || electron || nwjs; + if (device.desktop) { + device.electron = electron; + device.nwjs = nwjs; + device.macos = macos; + device.windows = windows; + if (device.macos) { + device.os = 'macos'; + } + if (device.windows) { + device.os = 'windows'; + } + } + + // Pixel Ratio + device.pixelRatio = win.devicePixelRatio || 1; + + // Color Scheme + var DARK = '(prefers-color-scheme: dark)'; + var LIGHT = '(prefers-color-scheme: light)'; + device.prefersColorScheme = function prefersColorTheme() { + var theme; + if (win.matchMedia && win.matchMedia(LIGHT).matches) { + theme = 'light'; + } + if (win.matchMedia && win.matchMedia(DARK).matches) { + theme = 'dark'; + } + return theme; + }; + + // Export object + return device; + }()); + + var EventsClass = function EventsClass(parents) { + if ( parents === void 0 ) parents = []; + + var self = this; + self.eventsParents = parents; + self.eventsListeners = {}; + }; + + EventsClass.prototype.on = function on (events, handler, priority) { + var self = this; + if (typeof handler !== 'function') { return self; } + var method = priority ? 'unshift' : 'push'; + events.split(' ').forEach(function (event) { + if (!self.eventsListeners[event]) { self.eventsListeners[event] = []; } + self.eventsListeners[event][method](handler); + }); + return self; + }; + + EventsClass.prototype.once = function once (events, handler, priority) { + var self = this; + if (typeof handler !== 'function') { return self; } + function onceHandler() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + self.off(events, onceHandler); + if (onceHandler.f7proxy) { + delete onceHandler.f7proxy; + } + handler.apply(self, args); + } + onceHandler.f7proxy = handler; + return self.on(events, onceHandler, priority); + }; + + EventsClass.prototype.off = function off (events, handler) { + var self = this; + if (!self.eventsListeners) { return self; } + events.split(' ').forEach(function (event) { + if (typeof handler === 'undefined') { + self.eventsListeners[event] = []; + } else if (self.eventsListeners[event]) { + self.eventsListeners[event].forEach(function (eventHandler, index) { + if (eventHandler === handler || (eventHandler.f7proxy && eventHandler.f7proxy === handler)) { + self.eventsListeners[event].splice(index, 1); + } + }); + } + }); + return self; + }; + + EventsClass.prototype.emit = function emit () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + var self = this; + if (!self.eventsListeners) { return self; } + var events; + var data; + var context; + var eventsParents; + if (typeof args[0] === 'string' || Array.isArray(args[0])) { + events = args[0]; + data = args.slice(1, args.length); + context = self; + eventsParents = self.eventsParents; + } else { + events = args[0].events; + data = args[0].data; + context = args[0].context || self; + eventsParents = args[0].local ? [] : args[0].parents || self.eventsParents; + } + var eventsArray = Array.isArray(events) ? events : events.split(' '); + var localEvents = eventsArray.map(function (eventName) { return eventName.replace('local::', ''); }); + var parentEvents = eventsArray.filter(function (eventName) { return eventName.indexOf('local::') < 0; }); + + localEvents.forEach(function (event) { + if (self.eventsListeners && self.eventsListeners[event]) { + var handlers = []; + self.eventsListeners[event].forEach(function (eventHandler) { + handlers.push(eventHandler); + }); + handlers.forEach(function (eventHandler) { + eventHandler.apply(context, data); + }); + } + }); + if (eventsParents && eventsParents.length > 0) { + eventsParents.forEach(function (eventsParent) { + eventsParent.emit.apply(eventsParent, [ parentEvents ].concat( data )); + }); + } + return self; + }; + + var Framework7Class = /*@__PURE__*/(function (EventsClass) { + function Framework7Class(params, parents) { + if ( params === void 0 ) params = {}; + if ( parents === void 0 ) parents = []; + + EventsClass.call(this, parents); + var self = this; + self.params = params; + + if (self.params && self.params.on) { + Object.keys(self.params.on).forEach(function (eventName) { + self.on(eventName, self.params.on[eventName]); + }); + } + } + + if ( EventsClass ) Framework7Class.__proto__ = EventsClass; + Framework7Class.prototype = Object.create( EventsClass && EventsClass.prototype ); + Framework7Class.prototype.constructor = Framework7Class; + + var staticAccessors = { components: { configurable: true } }; + + // eslint-disable-next-line + Framework7Class.prototype.useModuleParams = function useModuleParams (module, instanceParams) { + if (module.params) { + var originalParams = {}; + Object.keys(module.params).forEach(function (paramKey) { + if (typeof instanceParams[paramKey] === 'undefined') { return; } + originalParams[paramKey] = Utils.extend({}, instanceParams[paramKey]); + }); + Utils.extend(instanceParams, module.params); + Object.keys(originalParams).forEach(function (paramKey) { + Utils.extend(instanceParams[paramKey], originalParams[paramKey]); + }); + } + }; + + Framework7Class.prototype.useModulesParams = function useModulesParams (instanceParams) { + var instance = this; + if (!instance.modules) { return; } + Object.keys(instance.modules).forEach(function (moduleName) { + var module = instance.modules[moduleName]; + // Extend params + if (module.params) { + Utils.extend(instanceParams, module.params); + } + }); + }; + + Framework7Class.prototype.useModule = function useModule (moduleName, moduleParams) { + if ( moduleName === void 0 ) moduleName = ''; + if ( moduleParams === void 0 ) moduleParams = {}; + + var instance = this; + if (!instance.modules) { return; } + var module = typeof moduleName === 'string' ? instance.modules[moduleName] : moduleName; + if (!module) { return; } + + // Extend instance methods and props + if (module.instance) { + Object.keys(module.instance).forEach(function (modulePropName) { + var moduleProp = module.instance[modulePropName]; + if (typeof moduleProp === 'function') { + instance[modulePropName] = moduleProp.bind(instance); + } else { + instance[modulePropName] = moduleProp; + } + }); + } + // Add event listeners + if (module.on && instance.on) { + Object.keys(module.on).forEach(function (moduleEventName) { + instance.on(moduleEventName, module.on[moduleEventName]); + }); + } + // Add vnode hooks + if (module.vnode) { + if (!instance.vnodeHooks) { instance.vnodeHooks = {}; } + Object.keys(module.vnode).forEach(function (vnodeId) { + Object.keys(module.vnode[vnodeId]).forEach(function (hookName) { + var handler = module.vnode[vnodeId][hookName]; + if (!instance.vnodeHooks[hookName]) { instance.vnodeHooks[hookName] = {}; } + if (!instance.vnodeHooks[hookName][vnodeId]) { instance.vnodeHooks[hookName][vnodeId] = []; } + instance.vnodeHooks[hookName][vnodeId].push(handler.bind(instance)); + }); + }); + } + // Module create callback + if (module.create) { + module.create.bind(instance)(moduleParams); + } + }; + + Framework7Class.prototype.useModules = function useModules (modulesParams) { + if ( modulesParams === void 0 ) modulesParams = {}; + + var instance = this; + if (!instance.modules) { return; } + Object.keys(instance.modules).forEach(function (moduleName) { + var moduleParams = modulesParams[moduleName] || {}; + instance.useModule(moduleName, moduleParams); + }); + }; + + staticAccessors.components.set = function (components) { + var Class = this; + if (!Class.use) { return; } + Class.use(components); + }; + + Framework7Class.installModule = function installModule (module) { + var params = [], len = arguments.length - 1; + while ( len-- > 0 ) params[ len ] = arguments[ len + 1 ]; + + var Class = this; + if (!Class.prototype.modules) { Class.prototype.modules = {}; } + var name = module.name || (((Object.keys(Class.prototype.modules).length) + "_" + (Utils.now()))); + Class.prototype.modules[name] = module; + // Prototype + if (module.proto) { + Object.keys(module.proto).forEach(function (key) { + Class.prototype[key] = module.proto[key]; + }); + } + // Class + if (module.static) { + Object.keys(module.static).forEach(function (key) { + Class[key] = module.static[key]; + }); + } + // Callback + if (module.install) { + module.install.apply(Class, params); + } + return Class; + }; + + Framework7Class.use = function use (module) { + var params = [], len = arguments.length - 1; + while ( len-- > 0 ) params[ len ] = arguments[ len + 1 ]; + + var Class = this; + if (Array.isArray(module)) { + module.forEach(function (m) { return Class.installModule(m); }); + return Class; + } + return Class.installModule.apply(Class, [ module ].concat( params )); + }; + + Object.defineProperties( Framework7Class, staticAccessors ); + + return Framework7Class; + }(EventsClass)); + + function ConstructorMethods (parameters) { + if ( parameters === void 0 ) parameters = {}; + + var defaultSelector = parameters.defaultSelector; + var Constructor = parameters.constructor; + var domProp = parameters.domProp; + var app = parameters.app; + var addMethods = parameters.addMethods; + var methods = { + create: function create() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + if (app) { return new (Function.prototype.bind.apply( Constructor, [ null ].concat( [app], args) )); } + return new (Function.prototype.bind.apply( Constructor, [ null ].concat( args) )); + }, + get: function get(el) { + if ( el === void 0 ) el = defaultSelector; + + if (el instanceof Constructor) { return el; } + var $el = $(el); + if ($el.length === 0) { return undefined; } + return $el[0][domProp]; + }, + destroy: function destroy(el) { + var instance = methods.get(el); + if (instance && instance.destroy) { return instance.destroy(); } + return undefined; + }, + }; + if (addMethods && Array.isArray(addMethods)) { + addMethods.forEach(function (methodName) { + methods[methodName] = function (el) { + if ( el === void 0 ) el = defaultSelector; + var args = [], len = arguments.length - 1; + while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ]; + + var instance = methods.get(el); + if (instance && instance[methodName]) { return instance[methodName].apply(instance, args); } + return undefined; + }; + }); + } + return methods; + } + + function ModalMethods (parameters) { + if ( parameters === void 0 ) parameters = {}; + + var defaultSelector = parameters.defaultSelector; + var Constructor = parameters.constructor; + var app = parameters.app; + var methods = Utils.extend( + ConstructorMethods({ + defaultSelector: defaultSelector, + constructor: Constructor, + app: app, + domProp: 'f7Modal', + }), + { + open: function open(el, animate, targetEl) { + var $el = $(el); + if ($el.length > 1 && targetEl) { + // check if same modal in other page + var $targetPage = $(targetEl).parents('.page'); + if ($targetPage.length) { + $el.each(function (index, modalEl) { + var $modalEl = $(modalEl); + if ($modalEl.parents($targetPage)[0] === $targetPage[0]) { + $el = $modalEl; + } + }); + } + } + if ($el.length > 1) { + $el = $el.eq($el.length - 1); + } + if (!$el.length) { return undefined; } + var instance = $el[0].f7Modal; + if (!instance) { + var params = $el.dataset(); + instance = new Constructor(app, Object.assign({}, {el: $el}, params)); + } + return instance.open(animate); + }, + close: function close(el, animate, targetEl) { + if ( el === void 0 ) el = defaultSelector; + + var $el = $(el); + if (!$el.length) { return undefined; } + if ($el.length > 1) { + // check if close link (targetEl) in this modal + var $parentEl; + if (targetEl) { + var $targetEl = $(targetEl); + if ($targetEl.length) { + $parentEl = $targetEl.parents($el); + } + } + if ($parentEl && $parentEl.length > 0) { + $el = $parentEl; + } else { + $el = $el.eq($el.length - 1); + } + } + var instance = $el[0].f7Modal; + if (!instance) { + var params = $el.dataset(); + instance = new Constructor(app, Object.assign({}, {el: $el}, params)); + } + return instance.close(animate); + }, + } + ); + return methods; + } + + var fetchedModules = []; + function loadModule(moduleToLoad) { + var Framework7 = this; + return new Promise(function (resolve, reject) { + var app = Framework7.instance; + var modulePath; + var moduleObj; + var moduleFunc; + if (!moduleToLoad) { + reject(new Error('Framework7: Lazy module must be specified')); + return; + } + + function install(module) { + Framework7.use(module); + + if (app) { + app.useModuleParams(module, app.params); + app.useModule(module); + } + } + + if (typeof moduleToLoad === 'string') { + var matchNamePattern = moduleToLoad.match(/([a-z0-9-]*)/i); + if (moduleToLoad.indexOf('.') < 0 && matchNamePattern && matchNamePattern[0].length === moduleToLoad.length) { + if (!app || (app && !app.params.lazyModulesPath)) { + reject(new Error('Framework7: "lazyModulesPath" app parameter must be specified to fetch module by name')); + return; + } + modulePath = (app.params.lazyModulesPath) + "/" + moduleToLoad + ".js"; + } else { + modulePath = moduleToLoad; + } + } else if (typeof moduleToLoad === 'function') { + moduleFunc = moduleToLoad; + } else { + // considering F7-Plugin object + moduleObj = moduleToLoad; + } + + if (moduleFunc) { + var module = moduleFunc(Framework7, false); + if (!module) { + reject(new Error('Framework7: Can\'t find Framework7 component in specified component function')); + return; + } + // Check if it was added + if (Framework7.prototype.modules && Framework7.prototype.modules[module.name]) { + resolve(); + return; + } + // Install It + install(module); + + resolve(); + } + if (moduleObj) { + var module$1 = moduleObj; + if (!module$1) { + reject(new Error('Framework7: Can\'t find Framework7 component in specified component')); + return; + } + // Check if it was added + if (Framework7.prototype.modules && Framework7.prototype.modules[module$1.name]) { + resolve(); + return; + } + // Install It + install(module$1); + + resolve(); + } + if (modulePath) { + if (fetchedModules.indexOf(modulePath) >= 0) { + resolve(); + return; + } + fetchedModules.push(modulePath); + var scriptLoad = new Promise(function (resolveScript, rejectScript) { + Framework7.request.get( + modulePath, + function (scriptContent) { + var id = Utils.id(); + var callbackLoadName = "f7_component_loader_callback_" + id; + + var scriptEl = doc.createElement('script'); + scriptEl.innerHTML = "window." + callbackLoadName + " = function (Framework7, Framework7AutoInstallComponent) {return " + (scriptContent.trim()) + "}"; + $('head').append(scriptEl); + + var componentLoader = win[callbackLoadName]; + delete win[callbackLoadName]; + $(scriptEl).remove(); + + var module = componentLoader(Framework7, false); + + if (!module) { + rejectScript(new Error(("Framework7: Can't find Framework7 component in " + modulePath + " file"))); + return; + } + + // Check if it was added + if (Framework7.prototype.modules && Framework7.prototype.modules[module.name]) { + resolveScript(); + return; + } + + // Install It + install(module); + + resolveScript(); + }, + function (xhr, status) { + rejectScript(xhr, status); + } + ); + }); + var styleLoad = new Promise(function (resolveStyle) { + Framework7.request.get( + modulePath.replace('.js', app.rtl ? '.rtl.css' : '.css'), + function (styleContent) { + var styleEl = doc.createElement('style'); + styleEl.innerHTML = styleContent; + $('head').append(styleEl); + + resolveStyle(); + }, + function () { + resolveStyle(); + } + ); + }); + + Promise.all([scriptLoad, styleLoad]).then(function () { + resolve(); + }).catch(function (err) { + reject(err); + }); + } + }); + } + + var Framework7 = /*@__PURE__*/(function (Framework7Class) { + function Framework7(params) { + Framework7Class.call(this, params); + if (Framework7.instance) { + throw new Error('Framework7 is already initialized and can\'t be initialized more than once'); + } + + var passedParams = Utils.extend({}, params); + + // App Instance + var app = this; + + Framework7.instance = app; + + // Default + var defaults = { + version: '1.0.0', + id: 'io.framework7.testapp', + root: 'body', + theme: 'auto', + language: win.navigator.language, + routes: [], + name: 'Framework7', + lazyModulesPath: null, + initOnDeviceReady: true, + init: true, + autoDarkTheme: false, + iosTranslucentBars: true, + iosTranslucentModals: true, + component: undefined, + componentUrl: undefined, + }; + + // Extend defaults with modules params + app.useModulesParams(defaults); + + // Extend defaults with passed params + app.params = Utils.extend(defaults, params); + + var $rootEl = $(app.params.root); + + Utils.extend(app, { + // App Id + id: app.params.id, + // App Name + name: app.params.name, + // App version + version: app.params.version, + // Routes + routes: app.params.routes, + // Lang + language: app.params.language, + // Root + root: $rootEl, + // RTL + rtl: $rootEl.css('direction') === 'rtl', + // Theme + theme: (function getTheme() { + if (app.params.theme === 'auto') { + if (Device.ios) { return 'ios'; } + if (Device.desktop && Device.electron) { return 'aurora'; } + return 'md'; + } + return app.params.theme; + }()), + // Initially passed parameters + passedParams: passedParams, + online: win.navigator.onLine, + }); + + // Save Root + if (app.root && app.root[0]) { + app.root[0].f7 = app; + } + + // Install Modules + app.useModules(); + + // Init Data & Methods + app.initData(); + + // Auto Dark Theme + var DARK = '(prefers-color-scheme: dark)'; + var LIGHT = '(prefers-color-scheme: light)'; + app.mq = {}; + if (win.matchMedia) { + app.mq.dark = win.matchMedia(DARK); + app.mq.light = win.matchMedia(LIGHT); + } + app.colorSchemeListener = function colorSchemeListener(ref) { + var matches = ref.matches; + var media = ref.media; + + if (!matches) { + return; + } + var html = doc.querySelector('html'); + if (media === DARK) { + html.classList.add('theme-dark'); + app.darkTheme = true; + app.emit('darkThemeChange', true); + } else if (media === LIGHT) { + html.classList.remove('theme-dark'); + app.darkTheme = false; + app.emit('darkThemeChange', false); + } + }; + + // Init + if (app.params.init) { + if (Device.cordova && app.params.initOnDeviceReady) { + $(doc).on('deviceready', function () { + app.init(); + }); + } else { + app.init(); + } + } + + // Return app instance + return app; + } + + if ( Framework7Class ) Framework7.__proto__ = Framework7Class; + Framework7.prototype = Object.create( Framework7Class && Framework7Class.prototype ); + Framework7.prototype.constructor = Framework7; + + var prototypeAccessors = { $: { configurable: true },t7: { configurable: true } }; + var staticAccessors = { Dom7: { configurable: true },$: { configurable: true },Template7: { configurable: true },Class: { configurable: true },Events: { configurable: true } }; + + Framework7.prototype.initData = function initData () { + var app = this; + + // Data + app.data = {}; + if (app.params.data && typeof app.params.data === 'function') { + Utils.extend(app.data, app.params.data.bind(app)()); + } else if (app.params.data) { + Utils.extend(app.data, app.params.data); + } + // Methods + app.methods = {}; + if (app.params.methods) { + Object.keys(app.params.methods).forEach(function (methodName) { + if (typeof app.params.methods[methodName] === 'function') { + app.methods[methodName] = app.params.methods[methodName].bind(app); + } else { + app.methods[methodName] = app.params.methods[methodName]; + } + }); + } + }; + + Framework7.prototype.enableAutoDarkTheme = function enableAutoDarkTheme () { + if (!win.matchMedia) { return; } + var app = this; + var html = doc.querySelector('html'); + if (app.mq.dark && app.mq.light) { + app.mq.dark.addListener(app.colorSchemeListener); + app.mq.light.addListener(app.colorSchemeListener); + } + if (app.mq.dark && app.mq.dark.matches) { + html.classList.add('theme-dark'); + app.darkTheme = true; + app.emit('darkThemeChange', true); + } else if (app.mq.light && app.mq.light.matches) { + html.classList.remove('theme-dark'); + app.darkTheme = false; + app.emit('darkThemeChange', false); + } + }; + + Framework7.prototype.disableAutoDarkTheme = function disableAutoDarkTheme () { + if (!win.matchMedia) { return; } + var app = this; + if (app.mq.dark) { app.mq.dark.removeListener(app.colorSchemeListener); } + if (app.mq.light) { app.mq.light.removeListener(app.colorSchemeListener); } + }; + + Framework7.prototype.initAppComponent = function initAppComponent (callback) { + var app = this; + app.router.componentLoader( + app.params.component, + app.params.componentUrl, + { componentOptions: { el: app.root[0], root: true } }, + function (el) { + app.root = $(el); + app.root[0].f7 = app; + app.rootComponent = el.f7Component; + if (callback) { callback(); } + }, + function () {} + ); + }; + + // eslint-disable-next-line + Framework7.prototype._init = function _init () { + var app = this; + if (app.initialized) { return app; } + + app.root.addClass('framework7-initializing'); + + // RTL attr + if (app.rtl) { + $('html').attr('dir', 'rtl'); + } + + // Auto Dark Theme + if (app.params.autoDarkTheme) { + app.enableAutoDarkTheme(); + } + + // Watch for online/offline state + win.addEventListener('offline', function () { + app.online = false; + app.emit('offline'); + app.emit('connection', false); + }); + win.addEventListener('online', function () { + app.online = true; + app.emit('online'); + app.emit('connection', true); + }); + + // Root class + app.root.addClass('framework7-root'); + + // Theme class + $('html').removeClass('ios md aurora').addClass(app.theme); + + // iOS Translucent + if (app.params.iosTranslucentBars && app.theme === 'ios' && Device.ios) { + $('html').addClass('ios-translucent-bars'); + } + if (app.params.iosTranslucentModals && app.theme === 'ios' && Device.ios) { + $('html').addClass('ios-translucent-modals'); + } + + // Init class + Utils.nextFrame(function () { + app.root.removeClass('framework7-initializing'); + }); + // Emit, init other modules + app.initialized = true; + app.emit('init'); + + return app; + }; + + Framework7.prototype.init = function init () { + var app = this; + if (app.params.component || app.params.componentUrl) { + app.initAppComponent(function () { + app._init(); // eslint-disable-line + }); + } else { + app._init(); // eslint-disable-line + } + }; + + // eslint-disable-next-line + Framework7.prototype.loadModule = function loadModule () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return Framework7.loadModule.apply(Framework7, args); + }; + + // eslint-disable-next-line + Framework7.prototype.loadModules = function loadModules () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return Framework7.loadModules.apply(Framework7, args); + }; + + Framework7.prototype.getVnodeHooks = function getVnodeHooks (hook, id) { + var app = this; + if (!app.vnodeHooks || !app.vnodeHooks[hook]) { return []; } + return app.vnodeHooks[hook][id] || []; + }; + + // eslint-disable-next-line + prototypeAccessors.$.get = function () { + return $; + }; + // eslint-disable-next-line + prototypeAccessors.t7.get = function () { + return Template7; + }; + + staticAccessors.Dom7.get = function () { + return $; + }; + + staticAccessors.$.get = function () { + return $; + }; + + staticAccessors.Template7.get = function () { + return Template7; + }; + + staticAccessors.Class.get = function () { + return Framework7Class; + }; + + staticAccessors.Events.get = function () { + return EventsClass; + }; + + Object.defineProperties( Framework7.prototype, prototypeAccessors ); + Object.defineProperties( Framework7, staticAccessors ); + + return Framework7; + }(Framework7Class)); + + Framework7.ModalMethods = ModalMethods; + Framework7.ConstructorMethods = ConstructorMethods; + + Framework7.loadModule = loadModule; + Framework7.loadModules = function loadModules(modules) { + return Promise.all(modules.map(function (module) { return Framework7.loadModule(module); })); + }; + + var globals = {}; + var jsonpRequests = 0; + + function Request(requestOptions) { + var globalsNoCallbacks = Utils.extend({}, globals); + ('beforeCreate beforeOpen beforeSend error complete success statusCode').split(' ').forEach(function (callbackName) { + delete globalsNoCallbacks[callbackName]; + }); + var defaults = Utils.extend({ + url: win.location.toString(), + method: 'GET', + data: false, + async: true, + cache: true, + user: '', + password: '', + headers: {}, + xhrFields: {}, + statusCode: {}, + processData: true, + dataType: 'text', + contentType: 'application/x-www-form-urlencoded', + timeout: 0, + }, globalsNoCallbacks); + + var options = Utils.extend({}, defaults, requestOptions); + var proceedRequest; + + // Function to run XHR callbacks and events + function fireCallback(callbackName) { + var data = [], len = arguments.length - 1; + while ( len-- > 0 ) data[ len ] = arguments[ len + 1 ]; + + /* + Callbacks: + beforeCreate (options), + beforeOpen (xhr, options), + beforeSend (xhr, options), + error (xhr, status, message), + complete (xhr, status), + success (response, status, xhr), + statusCode () + */ + var globalCallbackValue; + var optionCallbackValue; + if (globals[callbackName]) { + globalCallbackValue = globals[callbackName].apply(globals, data); + } + if (options[callbackName]) { + optionCallbackValue = options[callbackName].apply(options, data); + } + if (typeof globalCallbackValue !== 'boolean') { globalCallbackValue = true; } + if (typeof optionCallbackValue !== 'boolean') { optionCallbackValue = true; } + return (globalCallbackValue && optionCallbackValue); + } + + // Before create callback + proceedRequest = fireCallback('beforeCreate', options); + if (proceedRequest === false) { return undefined; } + + // For jQuery guys + if (options.type) { options.method = options.type; } + + // Parameters Prefix + var paramsPrefix = options.url.indexOf('?') >= 0 ? '&' : '?'; + + // UC method + var method = options.method.toUpperCase(); + + // Data to modify GET URL + if ((method === 'GET' || method === 'HEAD' || method === 'OPTIONS' || method === 'DELETE') && options.data) { + var stringData; + if (typeof options.data === 'string') { + // Should be key=value string + if (options.data.indexOf('?') >= 0) { stringData = options.data.split('?')[1]; } + else { stringData = options.data; } + } else { + // Should be key=value object + stringData = Utils.serializeObject(options.data); + } + if (stringData.length) { + options.url += paramsPrefix + stringData; + if (paramsPrefix === '?') { paramsPrefix = '&'; } + } + } + + // JSONP + if (options.dataType === 'json' && options.url.indexOf('callback=') >= 0) { + var callbackName = "f7jsonp_" + (Date.now() + ((jsonpRequests += 1))); + var abortTimeout; + var callbackSplit = options.url.split('callback='); + var requestUrl = (callbackSplit[0]) + "callback=" + callbackName; + if (callbackSplit[1].indexOf('&') >= 0) { + var addVars = callbackSplit[1].split('&').filter(function (el) { return el.indexOf('=') > 0; }).join('&'); + if (addVars.length > 0) { requestUrl += "&" + addVars; } + } + + // Create script + var script = doc.createElement('script'); + script.type = 'text/javascript'; + script.onerror = function onerror() { + clearTimeout(abortTimeout); + fireCallback('error', null, 'scripterror', 'scripterror'); + fireCallback('complete', null, 'scripterror'); + }; + script.src = requestUrl; + + // Handler + win[callbackName] = function jsonpCallback(data) { + clearTimeout(abortTimeout); + fireCallback('success', data); + script.parentNode.removeChild(script); + script = null; + delete win[callbackName]; + }; + doc.querySelector('head').appendChild(script); + + if (options.timeout > 0) { + abortTimeout = setTimeout(function () { + script.parentNode.removeChild(script); + script = null; + fireCallback('error', null, 'timeout', 'timeout'); + }, options.timeout); + } + + return undefined; + } + + // Cache for GET/HEAD requests + if (method === 'GET' || method === 'HEAD' || method === 'OPTIONS' || method === 'DELETE') { + if (options.cache === false) { + options.url += paramsPrefix + "_nocache" + (Date.now()); + } + } + + // Create XHR + var xhr = new XMLHttpRequest(); + + // Save Request URL + xhr.requestUrl = options.url; + xhr.requestParameters = options; + + // Before open callback + proceedRequest = fireCallback('beforeOpen', xhr, options); + if (proceedRequest === false) { return xhr; } + + // Open XHR + xhr.open(method, options.url, options.async, options.user, options.password); + + // Create POST Data + var postData = null; + + if ((method === 'POST' || method === 'PUT' || method === 'PATCH') && options.data) { + if (options.processData) { + var postDataInstances = [ArrayBuffer, Blob, Document, FormData]; + // Post Data + if (postDataInstances.indexOf(options.data.constructor) >= 0) { + postData = options.data; + } else { + // POST Headers + var boundary = "---------------------------" + (Date.now().toString(16)); + + if (options.contentType === 'multipart/form-data') { + xhr.setRequestHeader('Content-Type', ("multipart/form-data; boundary=" + boundary)); + } else { + xhr.setRequestHeader('Content-Type', options.contentType); + } + postData = ''; + var data$1 = Utils.serializeObject(options.data); + if (options.contentType === 'multipart/form-data') { + data$1 = data$1.split('&'); + var newData = []; + for (var i = 0; i < data$1.length; i += 1) { + newData.push(("Content-Disposition: form-data; name=\"" + (data$1[i].split('=')[0]) + "\"\r\n\r\n" + (data$1[i].split('=')[1]) + "\r\n")); + } + postData = "--" + boundary + "\r\n" + (newData.join(("--" + boundary + "\r\n"))) + "--" + boundary + "--\r\n"; + } else if (options.contentType === 'application/json') { + postData = JSON.stringify(options.data); + } else { + postData = data$1; + } + } + } else { + postData = options.data; + xhr.setRequestHeader('Content-Type', options.contentType); + } + } + if (options.dataType === 'json' && (!options.headers || !options.headers.Accept)) { + xhr.setRequestHeader('Accept', 'application/json'); + } + + // Additional headers + if (options.headers) { + Object.keys(options.headers).forEach(function (headerName) { + if (typeof options.headers[headerName] === 'undefined') { return; } + xhr.setRequestHeader(headerName, options.headers[headerName]); + }); + } + + // Check for crossDomain + if (typeof options.crossDomain === 'undefined') { + // eslint-disable-next-line + options.crossDomain = /^([\w-]+:)?\/\/([^\/]+)/.test(options.url) && RegExp.$2 !== win.location.host; + } + + if (!options.crossDomain) { + xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest'); + } + + if (options.xhrFields) { + Utils.extend(xhr, options.xhrFields); + } + + + // Handle XHR + xhr.onload = function onload() { + if ((xhr.status >= 200 && xhr.status < 300) || xhr.status === 0) { + var responseData; + if (options.dataType === 'json') { + var parseError; + try { + responseData = JSON.parse(xhr.responseText); + } catch (err) { + parseError = true; + } + if (!parseError) { + fireCallback('success', responseData, xhr.status, xhr); + } else { + fireCallback('error', xhr, 'parseerror', 'parseerror'); + } + } else { + responseData = xhr.responseType === 'text' || xhr.responseType === '' ? xhr.responseText : xhr.response; + fireCallback('success', responseData, xhr.status, xhr); + } + } else { + fireCallback('error', xhr, xhr.status, xhr.statusText); + } + if (options.statusCode) { + if (globals.statusCode && globals.statusCode[xhr.status]) { globals.statusCode[xhr.status](xhr); } + if (options.statusCode[xhr.status]) { options.statusCode[xhr.status](xhr); } + } + fireCallback('complete', xhr, xhr.status); + }; + + xhr.onerror = function onerror() { + fireCallback('error', xhr, xhr.status, xhr.status); + fireCallback('complete', xhr, 'error'); + }; + + // Timeout + if (options.timeout > 0) { + xhr.timeout = options.timeout; + xhr.ontimeout = function () { + fireCallback('error', xhr, 'timeout', 'timeout'); + fireCallback('complete', xhr, 'timeout'); + }; + } + + // Ajax start callback + proceedRequest = fireCallback('beforeSend', xhr, options); + if (proceedRequest === false) { return xhr; } + + // Send XHR + xhr.send(postData); + + // Return XHR object + return xhr; + } + function RequestShortcut(method) { + var assign, assign$1; + + var args = [], len = arguments.length - 1; + while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ]; + var ref = []; + var url = ref[0]; + var data = ref[1]; + var success = ref[2]; + var error = ref[3]; + var dataType = ref[4]; + if (typeof args[1] === 'function') { + (assign = args, url = assign[0], success = assign[1], error = assign[2], dataType = assign[3]); + } else { + (assign$1 = args, url = assign$1[0], data = assign$1[1], success = assign$1[2], error = assign$1[3], dataType = assign$1[4]); + } + [success, error].forEach(function (callback) { + if (typeof callback === 'string') { + dataType = callback; + if (callback === success) { success = undefined; } + else { error = undefined; } + } + }); + dataType = dataType || (method === 'json' || method === 'postJSON' ? 'json' : undefined); + var requestOptions = { + url: url, + method: method === 'post' || method === 'postJSON' ? 'POST' : 'GET', + data: data, + success: success, + error: error, + dataType: dataType, + }; + if (method === 'postJSON') { + Utils.extend(requestOptions, { + contentType: 'application/json', + processData: false, + crossDomain: true, + data: typeof data === 'string' ? data : JSON.stringify(data), + }); + } + return Request(requestOptions); + } + function RequestShortcutPromise(method) { + var args = [], len = arguments.length - 1; + while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ]; + + var url = args[0]; + var data = args[1]; + var dataType = args[2]; + return new Promise(function (resolve, reject) { + RequestShortcut( + method, + url, + data, + function (responseData, status, xhr) { + resolve({ data: responseData, status: status, xhr: xhr }); + }, + function (xhr, status, message) { + // eslint-disable-next-line + reject({ xhr: xhr, status: status, message: message }); + }, + dataType + ); + }); + } + Object.assign(Request, { + get: function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return RequestShortcut.apply(void 0, [ 'get' ].concat( args )); + }, + post: function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return RequestShortcut.apply(void 0, [ 'post' ].concat( args )); + }, + json: function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return RequestShortcut.apply(void 0, [ 'json' ].concat( args )); + }, + getJSON: function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return RequestShortcut.apply(void 0, [ 'json' ].concat( args )); + }, + postJSON: function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return RequestShortcut.apply(void 0, [ 'postJSON' ].concat( args )); + }, + }); + + Request.promise = function requestPromise(requestOptions) { + return new Promise(function (resolve, reject) { + Request(Object.assign(requestOptions, { + success: function success(data, status, xhr) { + resolve({ data: data, status: status, xhr: xhr }); + }, + error: function error(xhr, status, message) { + // eslint-disable-next-line + reject({ xhr: xhr, status: status, message: message }); + }, + })); + }); + }; + Object.assign(Request.promise, { + get: function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return RequestShortcutPromise.apply(void 0, [ 'get' ].concat( args )); + }, + post: function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return RequestShortcutPromise.apply(void 0, [ 'post' ].concat( args )); + }, + json: function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return RequestShortcutPromise.apply(void 0, [ 'json' ].concat( args )); + }, + getJSON: function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return RequestShortcutPromise.apply(void 0, [ 'json' ].concat( args )); + }, + postJSON: function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return RequestShortcutPromise.apply(void 0, [ 'postJSON' ].concat( args )); + }, + }); + + Request.setup = function setup(options) { + if (options.type && !options.method) { + Utils.extend(options, { method: options.type }); + } + Utils.extend(globals, options); + }; + + var DeviceModule = { + name: 'device', + proto: { + device: Device, + }, + static: { + device: Device, + }, + on: { + init: function init() { + var classNames = []; + var html = doc.querySelector('html'); + var metaStatusbar = doc.querySelector('meta[name="apple-mobile-web-app-status-bar-style"]'); + if (!html) { return; } + if (Device.standalone && Device.ios && metaStatusbar && metaStatusbar.content === 'black-translucent') { + classNames.push('device-full-viewport'); + } + + // Pixel Ratio + classNames.push(("device-pixel-ratio-" + (Math.floor(Device.pixelRatio)))); + // OS classes + if (Device.os && !Device.desktop) { + classNames.push( + ("device-" + (Device.os)) + ); + } else if (Device.desktop) { + classNames.push('device-desktop'); + if (Device.os) { + classNames.push(("device-" + (Device.os))); + } + } + if (Device.cordova || Device.phonegap) { + classNames.push('device-cordova'); + } + + // Add html classes + classNames.forEach(function (className) { + html.classList.add(className); + }); + }, + }, + }; + + var SupportModule = { + name: 'support', + proto: { + support: Support, + }, + static: { + support: Support, + }, + }; + + var UtilsModule = { + name: 'utils', + proto: { + utils: Utils, + }, + static: { + utils: Utils, + }, + }; + + var ResizeModule = { + name: 'resize', + instance: { + getSize: function getSize() { + var app = this; + if (!app.root[0]) { return { width: 0, height: 0, left: 0, top: 0 }; } + var offset = app.root.offset(); + var ref = [app.root[0].offsetWidth, app.root[0].offsetHeight, offset.left, offset.top]; + var width = ref[0]; + var height = ref[1]; + var left = ref[2]; + var top = ref[3]; + app.width = width; + app.height = height; + app.left = left; + app.top = top; + return { width: width, height: height, left: left, top: top }; + }, + }, + on: { + init: function init() { + var app = this; + + // Get Size + app.getSize(); + + // Emit resize + win.addEventListener('resize', function () { + app.emit('resize'); + }, false); + + // Emit orientationchange + win.addEventListener('orientationchange', function () { + app.emit('orientationchange'); + }); + }, + orientationchange: function orientationchange() { + var app = this; + // Fix iPad weird body scroll + if (app.device.ipad) { + doc.body.scrollLeft = 0; + setTimeout(function () { + doc.body.scrollLeft = 0; + }, 0); + } + }, + resize: function resize() { + var app = this; + app.getSize(); + }, + }, + }; + + /* eslint no-param-reassign: "off" */ + + var RequestModule = { + name: 'request', + proto: { + request: Request, + }, + static: { + request: Request, + }, + }; + + /* eslint-disable no-nested-ternary */ + + function initTouch() { + var app = this; + var params = app.params.touch; + var useRipple = params[((app.theme) + "TouchRipple")]; + + if (Device.ios && Device.webView) { + // Strange hack required for iOS 8 webview to work on inputs + win.addEventListener('touchstart', function () {}); + } + + var touchStartX; + var touchStartY; + var targetElement; + var isMoved; + var tapHoldFired; + var tapHoldTimeout; + var preventClick; + + var activableElement; + var activeTimeout; + + var rippleWave; + var rippleTarget; + var rippleTimeout; + + function findActivableElement(el) { + var target = $(el); + var parents = target.parents(params.activeStateElements); + if (target.closest('.no-active-state').length) { + return null; + } + var activable; + if (target.is(params.activeStateElements)) { + activable = target; + } + if (parents.length > 0) { + activable = activable ? activable.add(parents) : parents; + } + if (activable && activable.length > 1) { + var newActivable = []; + var preventPropagation; + for (var i = 0; i < activable.length; i += 1) { + if (!preventPropagation) { + newActivable.push(activable[i]); + if (activable.eq(i).hasClass('prevent-active-state-propagation') + || activable.eq(i).hasClass('no-active-state-propagation') + ) { + preventPropagation = true; + } + } + } + activable = $(newActivable); + } + return activable || target; + } + + function isInsideScrollableView(el) { + var pageContent = el.parents('.page-content'); + return pageContent.length > 0; + } + + function addActive() { + if (!activableElement) { return; } + activableElement.addClass('active-state'); + } + function removeActive() { + if (!activableElement) { return; } + activableElement.removeClass('active-state'); + activableElement = null; + } + + // Ripple handlers + function findRippleElement(el) { + var rippleElements = params.touchRippleElements; + var $el = $(el); + if ($el.is(rippleElements)) { + if ($el.hasClass('no-ripple')) { + return false; + } + return $el; + } + if ($el.parents(rippleElements).length > 0) { + var rippleParent = $el.parents(rippleElements).eq(0); + if (rippleParent.hasClass('no-ripple')) { + return false; + } + return rippleParent; + } + return false; + } + function createRipple($el, x, y) { + if (!$el) { return; } + rippleWave = app.touchRipple.create($el, x, y); + } + + function removeRipple() { + if (!rippleWave) { return; } + rippleWave.remove(); + rippleWave = undefined; + rippleTarget = undefined; + } + function rippleTouchStart(el) { + rippleTarget = findRippleElement(el); + if (!rippleTarget || rippleTarget.length === 0) { + rippleTarget = undefined; + return; + } + var inScrollable = isInsideScrollableView(rippleTarget); + + if (!inScrollable) { + removeRipple(); + createRipple(rippleTarget, touchStartX, touchStartY); + } else { + clearTimeout(rippleTimeout); + rippleTimeout = setTimeout(function () { + removeRipple(); + createRipple(rippleTarget, touchStartX, touchStartY); + }, 80); + } + } + function rippleTouchMove() { + clearTimeout(rippleTimeout); + removeRipple(); + } + function rippleTouchEnd() { + if (!rippleWave && rippleTarget && !isMoved) { + clearTimeout(rippleTimeout); + createRipple(rippleTarget, touchStartX, touchStartY); + setTimeout(removeRipple, 0); + } else { + removeRipple(); + } + } + + // Mouse Handlers + function handleMouseDown(e) { + var $activableEl = findActivableElement(e.target); + if ($activableEl) { + $activableEl.addClass('active-state'); + if ('which' in e && e.which === 3) { + setTimeout(function () { + $('.active-state').removeClass('active-state'); + }, 0); + } + } + + if (useRipple) { + touchStartX = e.pageX; + touchStartY = e.pageY; + rippleTouchStart(e.target, e.pageX, e.pageY); + } + } + function handleMouseMove() { + if (!params.activeStateOnMouseMove) { + $('.active-state').removeClass('active-state'); + } + if (useRipple) { + rippleTouchMove(); + } + } + function handleMouseUp() { + $('.active-state').removeClass('active-state'); + if (useRipple) { + rippleTouchEnd(); + } + } + + function handleTouchCancel() { + targetElement = null; + + // Remove Active State + clearTimeout(activeTimeout); + clearTimeout(tapHoldTimeout); + if (params.activeState) { + removeActive(); + } + + // Remove Ripple + if (useRipple) { + rippleTouchEnd(); + } + } + + function handleTouchStart(e) { + isMoved = false; + tapHoldFired = false; + preventClick = false; + if (e.targetTouches.length > 1) { + if (activableElement) { removeActive(); } + return true; + } + if (e.touches.length > 1 && activableElement) { + removeActive(); + } + if (params.tapHold) { + if (tapHoldTimeout) { clearTimeout(tapHoldTimeout); } + tapHoldTimeout = setTimeout(function () { + if (e && e.touches && e.touches.length > 1) { return; } + tapHoldFired = true; + e.preventDefault(); + preventClick = true; + $(e.target).trigger('taphold', e); + app.emit('taphold', e); + }, params.tapHoldDelay); + } + targetElement = e.target; + touchStartX = e.targetTouches[0].pageX; + touchStartY = e.targetTouches[0].pageY; + + if (params.activeState) { + activableElement = findActivableElement(targetElement); + if (activableElement && !isInsideScrollableView(activableElement)) { + addActive(); + } else if (activableElement) { + activeTimeout = setTimeout(addActive, 80); + } + } + if (useRipple) { + rippleTouchStart(targetElement); + } + return true; + } + function handleTouchMove(e) { + var touch; + var distance; + if (e.type === 'touchmove') { + touch = e.targetTouches[0]; + distance = params.touchClicksDistanceThreshold; + } + + if (distance && touch) { + var pageX = touch.pageX; + var pageY = touch.pageY; + if (Math.abs(pageX - touchStartX) > distance || Math.abs(pageY - touchStartY) > distance) { + isMoved = true; + } + } else { + isMoved = true; + } + if (isMoved) { + preventClick = true; + if (params.tapHold) { + clearTimeout(tapHoldTimeout); + } + if (params.activeState) { + clearTimeout(activeTimeout); + removeActive(); + } + if (useRipple) { + rippleTouchMove(); + } + } + } + function handleTouchEnd(e) { + clearTimeout(activeTimeout); + clearTimeout(tapHoldTimeout); + if (doc.activeElement === e.target) { + if (params.activeState) { removeActive(); } + if (useRipple) { + rippleTouchEnd(); + } + return true; + } + if (params.activeState) { + addActive(); + setTimeout(removeActive, 0); + } + if (useRipple) { + rippleTouchEnd(); + } + if ((params.tapHoldPreventClicks && tapHoldFired) || preventClick) { + if (e.cancelable) { e.preventDefault(); } + preventClick = true; + return false; + } + return true; + } + function handleClick(e) { + var isOverswipe = e && e.detail && e.detail === 'f7Overswipe'; + var localPreventClick = preventClick; + if (targetElement && e.target !== targetElement) { + if (isOverswipe) { + localPreventClick = false; + } else { + localPreventClick = true; + } + } + if (params.tapHold && params.tapHoldPreventClicks && tapHoldFired) { + localPreventClick = true; + } + if (localPreventClick) { + e.stopImmediatePropagation(); + e.stopPropagation(); + e.preventDefault(); + } + + if (params.tapHold) { + tapHoldTimeout = setTimeout( + function () { + tapHoldFired = false; + }, + (Device.ios || Device.androidChrome ? 100 : 400) + ); + } + preventClick = false; + targetElement = null; + + return !localPreventClick; + } + + function emitAppTouchEvent(name, e) { + app.emit({ + events: name, + data: [e], + }); + } + function appClick(e) { + emitAppTouchEvent('click', e); + } + function appTouchStartActive(e) { + emitAppTouchEvent('touchstart touchstart:active', e); + } + function appTouchMoveActive(e) { + emitAppTouchEvent('touchmove touchmove:active', e); + } + function appTouchEndActive(e) { + emitAppTouchEvent('touchend touchend:active', e); + } + function appTouchStartPassive(e) { + emitAppTouchEvent('touchstart:passive', e); + } + function appTouchMovePassive(e) { + emitAppTouchEvent('touchmove:passive', e); + } + function appTouchEndPassive(e) { + emitAppTouchEvent('touchend:passive', e); + } + function appGestureActive(e) { + emitAppTouchEvent(((e.type) + " " + (e.type) + ":active"), e); + } + function appGesturePassive(e) { + emitAppTouchEvent(((e.type) + ":passive"), e); + } + + + var passiveListener = Support.passiveListener ? { passive: true } : false; + var passiveListenerCapture = Support.passiveListener ? { passive: true, capture: true } : true; + var activeListener = Support.passiveListener ? { passive: false } : false; + var activeListenerCapture = Support.passiveListener ? { passive: false, capture: true } : true; + + doc.addEventListener('click', appClick, true); + + if (Support.passiveListener) { + doc.addEventListener(app.touchEvents.start, appTouchStartActive, activeListenerCapture); + doc.addEventListener(app.touchEvents.move, appTouchMoveActive, activeListener); + doc.addEventListener(app.touchEvents.end, appTouchEndActive, activeListener); + + doc.addEventListener(app.touchEvents.start, appTouchStartPassive, passiveListenerCapture); + doc.addEventListener(app.touchEvents.move, appTouchMovePassive, passiveListener); + doc.addEventListener(app.touchEvents.end, appTouchEndPassive, passiveListener); + if (Support.touch && Support.gestures) { + doc.addEventListener('gesturestart', appGestureActive, activeListener); + doc.addEventListener('gesturechange', appGestureActive, activeListener); + doc.addEventListener('gestureend', appGestureActive, activeListener); + + doc.addEventListener('gesturestart', appGesturePassive, passiveListener); + doc.addEventListener('gesturechange', appGesturePassive, passiveListener); + doc.addEventListener('gestureend', appGesturePassive, passiveListener); + } + } else { + doc.addEventListener(app.touchEvents.start, function (e) { + appTouchStartActive(e); + appTouchStartPassive(e); + }, true); + doc.addEventListener(app.touchEvents.move, function (e) { + appTouchMoveActive(e); + appTouchMovePassive(e); + }, false); + doc.addEventListener(app.touchEvents.end, function (e) { + appTouchEndActive(e); + appTouchEndPassive(e); + }, false); + if (Support.touch && Support.gestures) { + doc.addEventListener('gesturestart', function (e) { + appGestureActive(e); + appGesturePassive(e); + }, false); + doc.addEventListener('gesturechange', function (e) { + appGestureActive(e); + appGesturePassive(e); + }, false); + doc.addEventListener('gestureend', function (e) { + appGestureActive(e); + appGesturePassive(e); + }, false); + } + } + + if (Support.touch) { + app.on('click', handleClick); + app.on('touchstart', handleTouchStart); + app.on('touchmove', handleTouchMove); + app.on('touchend', handleTouchEnd); + doc.addEventListener('touchcancel', handleTouchCancel, { passive: true }); + } else if (params.activeState) { + app.on('touchstart', handleMouseDown); + app.on('touchmove', handleMouseMove); + app.on('touchend', handleMouseUp); + doc.addEventListener('pointercancel', handleMouseUp, { passive: true }); + } + doc.addEventListener('contextmenu', function (e) { + if (params.disableContextMenu && (Device.ios || Device.android || Device.cordova)) { + e.preventDefault(); + } + if (useRipple) { + if (activableElement) { removeActive(); } + rippleTouchEnd(); + } + }); + } + + var TouchModule = { + name: 'touch', + params: { + touch: { + // Clicks + touchClicksDistanceThreshold: 5, + // ContextMenu + disableContextMenu: false, + // Tap Hold + tapHold: false, + tapHoldDelay: 750, + tapHoldPreventClicks: true, + // Active State + activeState: true, + 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: false, + mdTouchRipple: true, + iosTouchRipple: false, + auroraTouchRipple: false, + 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', + }, + }, + instance: { + touchEvents: { + start: Support.touch ? 'touchstart' : (Support.pointerEvents ? 'pointerdown' : 'mousedown'), + move: Support.touch ? 'touchmove' : (Support.pointerEvents ? 'pointermove' : 'mousemove'), + end: Support.touch ? 'touchend' : (Support.pointerEvents ? 'pointerup' : 'mouseup'), + }, + }, + on: { + init: initTouch, + }, + }; + + /** + * Tokenize input string. + */ + function lexer(str) { + var tokens = []; + var i = 0; + while (i < str.length) { + var char = str[i]; + if (char === "*" || char === "+" || char === "?") { + tokens.push({ type: "MODIFIER", index: i, value: str[i++] }); + continue; + } + if (char === "\\") { + tokens.push({ type: "ESCAPED_CHAR", index: i++, value: str[i++] }); + continue; + } + if (char === "{") { + tokens.push({ type: "OPEN", index: i, value: str[i++] }); + continue; + } + if (char === "}") { + tokens.push({ type: "CLOSE", index: i, value: str[i++] }); + continue; + } + if (char === ":") { + var name = ""; + var j = i + 1; + while (j < str.length) { + var code = str.charCodeAt(j); + if ( + // `0-9` + (code >= 48 && code <= 57) || + // `A-Z` + (code >= 65 && code <= 90) || + // `a-z` + (code >= 97 && code <= 122) || + // `_` + code === 95) { + name += str[j++]; + continue; + } + break; + } + if (!name) + { throw new TypeError("Missing parameter name at " + i); } + tokens.push({ type: "NAME", index: i, value: name }); + i = j; + continue; + } + if (char === "(") { + var count = 1; + var pattern = ""; + var j = i + 1; + if (str[j] === "?") { + throw new TypeError("Pattern cannot start with \"?\" at " + j); + } + while (j < str.length) { + if (str[j] === "\\") { + pattern += str[j++] + str[j++]; + continue; + } + if (str[j] === ")") { + count--; + if (count === 0) { + j++; + break; + } + } + else if (str[j] === "(") { + count++; + if (str[j + 1] !== "?") { + throw new TypeError("Capturing groups are not allowed at " + j); + } + } + pattern += str[j++]; + } + if (count) + { throw new TypeError("Unbalanced pattern at " + i); } + if (!pattern) + { throw new TypeError("Missing pattern at " + i); } + tokens.push({ type: "PATTERN", index: i, value: pattern }); + i = j; + continue; + } + tokens.push({ type: "CHAR", index: i, value: str[i++] }); + } + tokens.push({ type: "END", index: i, value: "" }); + return tokens; + } + /** + * Parse a string for the raw tokens. + */ + function parse(str, options) { + if (options === void 0) { options = {}; } + var tokens = lexer(str); + var _a = options.prefixes, prefixes = _a === void 0 ? "./" : _a; + var defaultPattern = "[^" + escapeString(options.delimiter || "/#?") + "]+?"; + var result = []; + var key = 0; + var i = 0; + var path = ""; + var tryConsume = function (type) { + if (i < tokens.length && tokens[i].type === type) + { return tokens[i++].value; } + }; + var mustConsume = function (type) { + var value = tryConsume(type); + if (value !== undefined) + { return value; } + var _a = tokens[i], nextType = _a.type, index = _a.index; + throw new TypeError("Unexpected " + nextType + " at " + index + ", expected " + type); + }; + var consumeText = function () { + var result = ""; + var value; + // tslint:disable-next-line + while ((value = tryConsume("CHAR") || tryConsume("ESCAPED_CHAR"))) { + result += value; + } + return result; + }; + while (i < tokens.length) { + var char = tryConsume("CHAR"); + var name = tryConsume("NAME"); + var pattern = tryConsume("PATTERN"); + if (name || pattern) { + var prefix = char || ""; + if (prefixes.indexOf(prefix) === -1) { + path += prefix; + prefix = ""; + } + if (path) { + result.push(path); + path = ""; + } + result.push({ + name: name || key++, + prefix: prefix, + suffix: "", + pattern: pattern || defaultPattern, + modifier: tryConsume("MODIFIER") || "" + }); + continue; + } + var value = char || tryConsume("ESCAPED_CHAR"); + if (value) { + path += value; + continue; + } + if (path) { + result.push(path); + path = ""; + } + var open = tryConsume("OPEN"); + if (open) { + var prefix = consumeText(); + var name_1 = tryConsume("NAME") || ""; + var pattern_1 = tryConsume("PATTERN") || ""; + var suffix = consumeText(); + mustConsume("CLOSE"); + result.push({ + name: name_1 || (pattern_1 ? key++ : ""), + pattern: name_1 && !pattern_1 ? defaultPattern : pattern_1, + prefix: prefix, + suffix: suffix, + modifier: tryConsume("MODIFIER") || "" + }); + continue; + } + mustConsume("END"); + } + return result; + } + /** + * Compile a string to a template function for the path. + */ + function compile(str, options) { + return tokensToFunction(parse(str, options), options); + } + /** + * Expose a method for transforming tokens into the path function. + */ + function tokensToFunction(tokens, options) { + if (options === void 0) { options = {}; } + var reFlags = flags(options); + var _a = options.encode, encode = _a === void 0 ? function (x) { return x; } : _a, _b = options.validate, validate = _b === void 0 ? true : _b; + // Compile all the tokens into regexps. + var matches = tokens.map(function (token) { + if (typeof token === "object") { + return new RegExp("^(?:" + token.pattern + ")$", reFlags); + } + }); + return function (data) { + var path = ""; + for (var i = 0; i < tokens.length; i++) { + var token = tokens[i]; + if (typeof token === "string") { + path += token; + continue; + } + var value = data ? data[token.name] : undefined; + var optional = token.modifier === "?" || token.modifier === "*"; + var repeat = token.modifier === "*" || token.modifier === "+"; + if (Array.isArray(value)) { + if (!repeat) { + throw new TypeError("Expected \"" + token.name + "\" to not repeat, but got an array"); + } + if (value.length === 0) { + if (optional) + { continue; } + throw new TypeError("Expected \"" + token.name + "\" to not be empty"); + } + for (var j = 0; j < value.length; j++) { + var segment = encode(value[j], token); + if (validate && !matches[i].test(segment)) { + throw new TypeError("Expected all \"" + token.name + "\" to match \"" + token.pattern + "\", but got \"" + segment + "\""); + } + path += token.prefix + segment + token.suffix; + } + continue; + } + if (typeof value === "string" || typeof value === "number") { + var segment = encode(String(value), token); + if (validate && !matches[i].test(segment)) { + throw new TypeError("Expected \"" + token.name + "\" to match \"" + token.pattern + "\", but got \"" + segment + "\""); + } + path += token.prefix + segment + token.suffix; + continue; + } + if (optional) + { continue; } + var typeOfMessage = repeat ? "an array" : "a string"; + throw new TypeError("Expected \"" + token.name + "\" to be " + typeOfMessage); + } + return path; + }; + } + /** + * Escape a regular expression string. + */ + function escapeString(str) { + return str.replace(/([.+*?=^!:${}()[\]|/\\])/g, "\\$1"); + } + /** + * Get the flags for a regexp from the options. + */ + function flags(options) { + return options && options.sensitive ? "" : "i"; + } + /** + * Pull out keys from a regexp. + */ + function regexpToRegexp(path, keys) { + if (!keys) + { return path; } + // Use a negative lookahead to match only capturing groups. + var groups = path.source.match(/\((?!\?)/g); + if (groups) { + for (var i = 0; i < groups.length; i++) { + keys.push({ + name: i, + prefix: "", + suffix: "", + modifier: "", + pattern: "" + }); + } + } + return path; + } + /** + * Transform an array into a regexp. + */ + function arrayToRegexp(paths, keys, options) { + var parts = paths.map(function (path) { return pathToRegexp(path, keys, options).source; }); + return new RegExp("(?:" + parts.join("|") + ")", flags(options)); + } + /** + * Create a path regexp from string input. + */ + function stringToRegexp(path, keys, options) { + return tokensToRegexp(parse(path, options), keys, options); + } + /** + * Expose a function for taking tokens and returning a RegExp. + */ + function tokensToRegexp(tokens, keys, options) { + if (options === void 0) { options = {}; } + var _a = options.strict, strict = _a === void 0 ? false : _a, _b = options.start, start = _b === void 0 ? true : _b, _c = options.end, end = _c === void 0 ? true : _c, _d = options.encode, encode = _d === void 0 ? function (x) { return x; } : _d; + var endsWith = "[" + escapeString(options.endsWith || "") + "]|$"; + var delimiter = "[" + escapeString(options.delimiter || "/#?") + "]"; + var route = start ? "^" : ""; + // Iterate over the tokens and create our regexp string. + for (var _i = 0, tokens_1 = tokens; _i < tokens_1.length; _i++) { + var token = tokens_1[_i]; + if (typeof token === "string") { + route += escapeString(encode(token)); + } + else { + var prefix = escapeString(encode(token.prefix)); + var suffix = escapeString(encode(token.suffix)); + if (token.pattern) { + if (keys) + { keys.push(token); } + if (prefix || suffix) { + if (token.modifier === "+" || token.modifier === "*") { + var mod = token.modifier === "*" ? "?" : ""; + route += "(?:" + prefix + "((?:" + token.pattern + ")(?:" + suffix + prefix + "(?:" + token.pattern + "))*)" + suffix + ")" + mod; + } + else { + route += "(?:" + prefix + "(" + token.pattern + ")" + suffix + ")" + token.modifier; + } + } + else { + route += "(" + token.pattern + ")" + token.modifier; + } + } + else { + route += "(?:" + prefix + suffix + ")" + token.modifier; + } + } + } + if (end) { + if (!strict) + { route += delimiter + "?"; } + route += !options.endsWith ? "$" : "(?=" + endsWith + ")"; + } + else { + var endToken = tokens[tokens.length - 1]; + var isEndDelimited = typeof endToken === "string" + ? delimiter.indexOf(endToken[endToken.length - 1]) > -1 + : // tslint:disable-next-line + endToken === undefined; + if (!strict) { + route += "(?:" + delimiter + "(?=" + endsWith + "))?"; + } + if (!isEndDelimited) { + route += "(?=" + delimiter + "|" + endsWith + ")"; + } + } + return new RegExp(route, flags(options)); + } + /** + * Normalize the given path string, returning a regular expression. + * + * An empty array can be passed in for the keys, which will hold the + * placeholder key descriptions. For example, using `/user/:id`, `keys` will + * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`. + */ + function pathToRegexp(path, keys, options) { + if (path instanceof RegExp) + { return regexpToRegexp(path, keys); } + if (Array.isArray(path)) + { return arrayToRegexp(path, keys, options); } + return stringToRegexp(path, keys, options); + } + + var History = { + queue: [], + clearQueue: function clearQueue() { + if (History.queue.length === 0) { return; } + var currentQueue = History.queue.shift(); + currentQueue(); + }, + routerQueue: [], + clearRouterQueue: function clearRouterQueue() { + if (History.routerQueue.length === 0) { return; } + var currentQueue = History.routerQueue.pop(); + var router = currentQueue.router; + var stateUrl = currentQueue.stateUrl; + var action = currentQueue.action; + + var animate = router.params.animate; + if (router.params.pushStateAnimate === false) { animate = false; } + + if (action === 'back') { + router.back({ animate: animate, pushState: false }); + } + if (action === 'load') { + router.navigate(stateUrl, { animate: animate, pushState: false }); + } + }, + handle: function handle(e) { + if (History.blockPopstate) { return; } + var app = this; + // const mainView = app.views.main; + var state = e.state; + History.previousState = History.state; + History.state = state; + + History.allowChange = true; + History.clearQueue(); + + state = History.state; + if (!state) { state = {}; } + + app.views.forEach(function (view) { + var router = view.router; + var viewState = state[view.id]; + if (!viewState && view.params.pushState) { + viewState = { + url: view.router.history[0], + }; + } + if (!viewState) { return; } + var stateUrl = viewState.url || undefined; + + var animate = router.params.animate; + if (router.params.pushStateAnimate === false) { animate = false; } + + if (stateUrl !== router.url) { + if (router.history.indexOf(stateUrl) >= 0) { + // Go Back + if (router.allowPageChange) { + router.back({ animate: animate, pushState: false }); + } else { + History.routerQueue.push({ + action: 'back', + router: router, + }); + } + } else if (router.allowPageChange) { + // Load page + router.navigate(stateUrl, { animate: animate, pushState: false }); + } else { + History.routerQueue.unshift({ + action: 'load', + stateUrl: stateUrl, + router: router, + }); + } + } + }); + }, + initViewState: function initViewState(viewId, viewState) { + var obj; + + var newState = Utils.extend({}, (History.state || {}), ( obj = {}, obj[viewId] = viewState, obj )); + History.state = newState; + win.history.replaceState(newState, ''); + }, + push: function push(viewId, viewState, url) { + var obj; + + if (!History.allowChange) { + History.queue.push(function () { + History.push(viewId, viewState, url); + }); + return; + } + History.previousState = History.state; + var newState = Utils.extend({}, (History.previousState || {}), ( obj = {}, obj[viewId] = viewState, obj )); + History.state = newState; + win.history.pushState(newState, '', url); + }, + replace: function replace(viewId, viewState, url) { + var obj; + + if (!History.allowChange) { + History.queue.push(function () { + History.replace(viewId, viewState, url); + }); + return; + } + History.previousState = History.state; + var newState = Utils.extend({}, (History.previousState || {}), ( obj = {}, obj[viewId] = viewState, obj )); + History.state = newState; + win.history.replaceState(newState, '', url); + }, + go: function go(index) { + History.allowChange = false; + win.history.go(index); + }, + back: function back() { + History.allowChange = false; + win.history.back(); + }, + allowChange: true, + previousState: {}, + state: win.history.state, + blockPopstate: true, + init: function init(app) { + $(win).on('load', function () { + setTimeout(function () { + History.blockPopstate = false; + }, 0); + }); + + if (doc.readyState && doc.readyState === 'complete') { + History.blockPopstate = false; + } + + $(win).on('popstate', History.handle.bind(app)); + }, + }; + + function SwipeBack(r) { + var router = r; + var $el = router.$el; + var $navbarsEl = router.$navbarsEl; + var app = router.app; + var params = router.params; + var isTouched = false; + var isMoved = false; + var touchesStart = {}; + var isScrolling; + var $currentPageEl = []; + var $previousPageEl = []; + var viewContainerWidth; + var touchesDiff; + var allowViewTouchMove = true; + var touchStartTime; + var $currentNavbarEl = []; + var $previousNavbarEl = []; + var dynamicNavbar; + var $pageShadowEl; + var $pageOpacityEl; + + var animatableNavEls; + + var paramsSwipeBackAnimateShadow = params[((app.theme) + "SwipeBackAnimateShadow")]; + var paramsSwipeBackAnimateOpacity = params[((app.theme) + "SwipeBackAnimateOpacity")]; + var paramsSwipeBackActiveArea = params[((app.theme) + "SwipeBackActiveArea")]; + var paramsSwipeBackThreshold = params[((app.theme) + "SwipeBackThreshold")]; + + var transformOrigin = app.rtl ? 'right center' : 'left center'; + var transformOriginTitleLarge = app.rtl + ? 'calc(100% - var(--f7-navbar-large-title-padding-left) - var(--f7-safe-area-left)) center' + : 'calc(var(--f7-navbar-large-title-padding-left) + var(--f7-safe-area-left)) center'; + + + function animatableNavElements() { + var els = []; + var inverter = app.rtl ? -1 : 1; + var currentNavIsTransparent = $currentNavbarEl.hasClass('navbar-transparent') && !$currentNavbarEl.hasClass('navbar-large') && !$currentNavbarEl.hasClass('navbar-transparent-visible'); + var currentNavIsLarge = $currentNavbarEl.hasClass('navbar-large'); + var currentNavIsCollapsed = $currentNavbarEl.hasClass('navbar-large-collapsed'); + var currentNavIsLargeTransparent = $currentNavbarEl.hasClass('navbar-large-transparent') + || ( + $currentNavbarEl.hasClass('navbar-large') + && $currentNavbarEl.hasClass('navbar-transparent') + ); + var previousNavIsTransparent = $previousNavbarEl.hasClass('navbar-transparent') && !$previousNavbarEl.hasClass('navbar-large') && !$previousNavbarEl.hasClass('navbar-transparent-visible'); + var previousNavIsLarge = $previousNavbarEl.hasClass('navbar-large'); + var previousNavIsCollapsed = $previousNavbarEl.hasClass('navbar-large-collapsed'); + var previousNavIsLargeTransparent = $previousNavbarEl.hasClass('navbar-large-transparent') + || ( + $previousNavbarEl.hasClass('navbar-large') + && $previousNavbarEl.hasClass('navbar-transparent') + ); + var fromLarge = currentNavIsLarge && !currentNavIsCollapsed; + var toLarge = previousNavIsLarge && !previousNavIsCollapsed; + var $currentNavElements = $currentNavbarEl.find('.left, .title, .right, .subnavbar, .fading, .title-large, .navbar-bg'); + var $previousNavElements = $previousNavbarEl.find('.left, .title, .right, .subnavbar, .fading, .title-large, .navbar-bg'); + var activeNavBackIconText; + var previousNavBackIconText; + + if (params.iosAnimateNavbarBackIcon) { + if ($currentNavbarEl.hasClass('sliding') || $currentNavbarEl.find('.navbar-inner.sliding').length) { + activeNavBackIconText = $currentNavbarEl.find('.left').find('.back .icon + span').eq(0); + } else { + activeNavBackIconText = $currentNavbarEl.find('.left.sliding').find('.back .icon + span').eq(0); + } + if ($previousNavbarEl.hasClass('sliding') || $previousNavbarEl.find('.navbar-inner.sliding').length) { + previousNavBackIconText = $previousNavbarEl.find('.left').find('.back .icon + span').eq(0); + } else { + previousNavBackIconText = $previousNavbarEl.find('.left.sliding').find('.back .icon + span').eq(0); + } + if (activeNavBackIconText.length) { + $previousNavElements.each(function (index, el) { + if (!$(el).hasClass('title')) { return; } + el.f7NavbarLeftOffset += activeNavBackIconText.prev('.icon')[0].offsetWidth; + }); + } + } + $currentNavElements + .each(function (index, navEl) { + var $navEl = $(navEl); + var isSubnavbar = $navEl.hasClass('subnavbar'); + var isLeft = $navEl.hasClass('left'); + var isTitle = $navEl.hasClass('title'); + var isBg = $navEl.hasClass('navbar-bg'); + if ((isTitle || isBg) && currentNavIsTransparent) { return; } + if (!fromLarge && $navEl.hasClass('.title-large')) { return; } + var el = { + el: navEl, + }; + if (fromLarge) { + if (isTitle) { return; } + if ($navEl.hasClass('title-large')) { + if (els.indexOf(el) < 0) { els.push(el); } + el.overflow = 'visible'; + $navEl.find('.title-large-text').each(function (subIndex, subNavEl) { + els.push({ + el: subNavEl, + transform: function (progress) { return ("translateX(" + (progress * 100 * inverter) + "%)"); }, + }); + }); + return; + } + } + if (toLarge) { + if (!fromLarge) { + if ($navEl.hasClass('title-large')) { + if (els.indexOf(el) < 0) { els.push(el); } + el.opacity = 0; + } + } + if (isLeft) { + if (els.indexOf(el) < 0) { els.push(el); } + el.opacity = function (progress) { return (1 - (Math.pow( progress, 0.33 ))); }; + $navEl.find('.back span').each(function (subIndex, subNavEl) { + els.push({ + el: subNavEl, + 'transform-origin': transformOrigin, + transform: function (progress) { return ("translateX(calc(" + progress + " * (var(--f7-navbarTitleLargeOffset) - var(--f7-navbarLeftTextOffset)))) translateY(calc(" + progress + " * (var(--f7-navbar-large-title-height) - var(--f7-navbar-large-title-padding-vertical) / 2))) scale(" + (1 + (1 * progress)) + ")"); }, + }); + }); + return; + } + } + if (isBg) { + if (els.indexOf(el) < 0) { els.push(el); } + if (!fromLarge && !toLarge) { + if (currentNavIsCollapsed) { + if (currentNavIsLargeTransparent) { + el.className = 'ios-swipeback-navbar-bg-large'; + } + el.transform = function (progress) { return ("translateX(" + (100 * progress * inverter) + "%) translateY(calc(-1 * var(--f7-navbar-large-title-height)))"); }; + } else { + el.transform = function (progress) { return ("translateX(" + (100 * progress * inverter) + "%)"); }; + } + } + if (!fromLarge && toLarge) { + el.className = 'ios-swipeback-navbar-bg-large'; + el.transform = function (progress) { return ("translateX(" + (100 * progress * inverter) + "%) translateY(calc(-1 * " + (1 - progress) + " * var(--f7-navbar-large-title-height)))"); }; + } + if (fromLarge && toLarge) { + el.transform = function (progress) { return ("translateX(" + (100 * progress * inverter) + "%)"); }; + } + if (fromLarge && !toLarge) { + el.transform = function (progress) { return ("translateX(" + (100 * progress * inverter) + "%) translateY(calc(-" + progress + " * var(--f7-navbar-large-title-height)))"); }; + } + return; + } + if ($navEl.hasClass('title-large')) { return; } + var isSliding = $navEl.hasClass('sliding') || $navEl.parents('.navbar-inner.sliding').length; + if (els.indexOf(el) < 0) { els.push(el); } + if (!isSubnavbar || (isSubnavbar && !isSliding)) { + el.opacity = function (progress) { return (1 - (Math.pow( progress, 0.33 ))); }; + } + if (isSliding) { + var transformTarget = el; + if (isLeft && activeNavBackIconText.length && params.iosAnimateNavbarBackIcon) { + var textEl = { el: activeNavBackIconText[0] }; + transformTarget = textEl; + els.push(textEl); + } + transformTarget.transform = function (progress) { + var activeNavTranslate = progress * transformTarget.el.f7NavbarRightOffset; + if (Device.pixelRatio === 1) { activeNavTranslate = Math.round(activeNavTranslate); } + if (isSubnavbar && currentNavIsLarge) { + return ("translate3d(" + activeNavTranslate + "px, calc(-1 * var(--f7-navbar-large-collapse-progress) * var(--f7-navbar-large-title-height)), 0)"); + } + return ("translate3d(" + activeNavTranslate + "px,0,0)"); + }; + } + }); + $previousNavElements + .each(function (index, navEl) { + var $navEl = $(navEl); + var isSubnavbar = $navEl.hasClass('subnavbar'); + var isLeft = $navEl.hasClass('left'); + var isTitle = $navEl.hasClass('title'); + var isBg = $navEl.hasClass('navbar-bg'); + if ((isTitle || isBg) && previousNavIsTransparent) { return; } + var el = { + el: navEl, + }; + if (toLarge) { + if (isTitle) { return; } + if (els.indexOf(el) < 0) { els.push(el); } + + if ($navEl.hasClass('title-large')) { + el.opacity = 1; + el.overflow = 'visible'; + $navEl.find('.title-large-text').each(function (subIndex, subNavEl) { + els.push({ + el: subNavEl, + 'transform-origin': transformOriginTitleLarge, + opacity: function (progress) { return (Math.pow( progress, 3 )); }, + transform: function (progress) { return ("translateX(calc(" + (1 - progress) + " * (var(--f7-navbarLeftTextOffset) - var(--f7-navbarTitleLargeOffset)))) translateY(calc(" + (progress - 1) + " * var(--f7-navbar-large-title-height) + " + (1 - progress) + " * var(--f7-navbar-large-title-padding-vertical))) scale(" + (0.5 + progress * 0.5) + ")"); }, + }); + }); + return; + } + } + if (isBg) { + if (els.indexOf(el) < 0) { els.push(el); } + if (!fromLarge && !toLarge) { + if (previousNavIsCollapsed) { + if (previousNavIsLargeTransparent) { + el.className = 'ios-swipeback-navbar-bg-large'; + } + el.transform = function (progress) { return ("translateX(" + ((-100 + 100 * progress) * inverter) + "%) translateY(calc(-1 * var(--f7-navbar-large-title-height)))"); }; + } else { + el.transform = function (progress) { return ("translateX(" + ((-100 + 100 * progress) * inverter) + "%)"); }; + } + } + if (!fromLarge && toLarge) { + el.transform = function (progress) { return ("translateX(" + ((-100 + 100 * progress) * inverter) + "%) translateY(calc(-1 * " + (1 - progress) + " * var(--f7-navbar-large-title-height)))"); }; + } + if (fromLarge && !toLarge) { + el.className = 'ios-swipeback-navbar-bg-large'; + el.transform = function (progress) { return ("translateX(" + ((-100 + 100 * progress) * inverter) + "%) translateY(calc(-" + progress + " * var(--f7-navbar-large-title-height)))"); }; + } + if (fromLarge && toLarge) { + el.transform = function (progress) { return ("translateX(" + ((-100 + 100 * progress) * inverter) + "%)"); }; + } + + return; + } + if ($navEl.hasClass('title-large')) { return; } + var isSliding = $navEl.hasClass('sliding') || $previousNavbarEl.children('.navbar-inner.sliding').length; + if (els.indexOf(el) < 0) { els.push(el); } + if (!isSubnavbar || (isSubnavbar && !isSliding)) { + el.opacity = function (progress) { return (Math.pow( progress, 3 )); }; + } + if (isSliding) { + var transformTarget = el; + if (isLeft && previousNavBackIconText.length && params.iosAnimateNavbarBackIcon) { + var textEl = { el: previousNavBackIconText[0] }; + transformTarget = textEl; + els.push(textEl); + } + transformTarget.transform = function (progress) { + var previousNavTranslate = transformTarget.el.f7NavbarLeftOffset * (1 - progress); + if (Device.pixelRatio === 1) { previousNavTranslate = Math.round(previousNavTranslate); } + if (isSubnavbar && previousNavIsLarge) { + return ("translate3d(" + previousNavTranslate + "px, calc(-1 * var(--f7-navbar-large-collapse-progress) * var(--f7-navbar-large-title-height)), 0)"); + } + return ("translate3d(" + previousNavTranslate + "px,0,0)"); + }; + } + }); + return els; + } + + function setAnimatableNavElements(ref) { + if ( ref === void 0 ) ref = {}; + var progress = ref.progress; + var reset = ref.reset; + var transition = ref.transition; + var reflow = ref.reflow; + + var styles = ['overflow', 'transform', 'transform-origin', 'opacity']; + if (transition === true || transition === false) { + for (var i = 0; i < animatableNavEls.length; i += 1) { + var el = animatableNavEls[i]; + if (el && el.el) { + if (transition === true) { el.el.classList.add('navbar-page-transitioning'); } + if (transition === false) { el.el.classList.remove('navbar-page-transitioning'); } + } + } + } + if (reflow && animatableNavEls.length && animatableNavEls[0] && animatableNavEls[0].el) { + // eslint-disable-next-line + animatableNavEls[0].el._clientLeft = animatableNavEls[0].el.clientLeft; + } + for (var i$1 = 0; i$1 < animatableNavEls.length; i$1 += 1) { + var el$1 = animatableNavEls[i$1]; + if (el$1 && el$1.el) { + if (el$1.className && !el$1.classNameSet && !reset) { + el$1.el.classList.add(el$1.className); + el$1.classNameSet = true; + } + if (el$1.className && reset) { + el$1.el.classList.remove(el$1.className); + } + for (var j = 0; j < styles.length; j += 1) { + var styleProp = styles[j]; + if (el$1[styleProp]) { + if (reset) { + el$1.el.style[styleProp] = ''; + } else if (typeof el$1[styleProp] === 'function') { + el$1.el.style[styleProp] = el$1[styleProp](progress); + } else { + el$1.el.style[styleProp] = el$1[styleProp]; + } + } + } + } + } + } + + function handleTouchStart(e) { + var swipeBackEnabled = params[((app.theme) + "SwipeBack")]; + if (!allowViewTouchMove || !swipeBackEnabled || isTouched || (app.swipeout && app.swipeout.el) || !router.allowPageChange) { return; } + if ($(e.target).closest('.range-slider, .calendar-months').length > 0) { return; } + if ($(e.target).closest('.page-master, .page-master-detail').length > 0 && params.masterDetailBreakpoint > 0 && app.width >= params.masterDetailBreakpoint) { return; } + isMoved = false; + isTouched = true; + isScrolling = undefined; + touchesStart.x = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX; + touchesStart.y = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY; + touchStartTime = Utils.now(); + dynamicNavbar = router.dynamicNavbar; + } + function handleTouchMove(e) { + if (!isTouched) { return; } + var pageX = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX; + var pageY = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY; + if (typeof isScrolling === 'undefined') { + isScrolling = !!(isScrolling || Math.abs(pageY - touchesStart.y) > Math.abs(pageX - touchesStart.x)) || (pageX < touchesStart.x && !app.rtl) || (pageX > touchesStart.x && app.rtl); + } + if (isScrolling || e.f7PreventSwipeBack || app.preventSwipeBack) { + isTouched = false; + return; + } + if (!isMoved) { + // Calc values during first move fired + var cancel = false; + var target = $(e.target); + + var swipeout = target.closest('.swipeout'); + if (swipeout.length > 0) { + if (!app.rtl && swipeout.find('.swipeout-actions-left').length > 0) { cancel = true; } + if (app.rtl && swipeout.find('.swipeout-actions-right').length > 0) { cancel = true; } + } + + $currentPageEl = target.closest('.page'); + if ($currentPageEl.hasClass('no-swipeback') || target.closest('.no-swipeback, .card-opened').length > 0) { cancel = true; } + $previousPageEl = $el.find('.page-previous:not(.stacked)'); + if ($previousPageEl.length > 1) { + $previousPageEl = $previousPageEl.eq($previousPageEl.length - 1); + } + var notFromBorder = touchesStart.x - $el.offset().left > paramsSwipeBackActiveArea; + viewContainerWidth = $el.width(); + if (app.rtl) { + notFromBorder = touchesStart.x < ($el.offset().left - $el[0].scrollLeft) + (viewContainerWidth - paramsSwipeBackActiveArea); + } else { + notFromBorder = touchesStart.x - $el.offset().left > paramsSwipeBackActiveArea; + } + if (notFromBorder) { cancel = true; } + if ($previousPageEl.length === 0 || $currentPageEl.length === 0) { cancel = true; } + if (cancel) { + isTouched = false; + return; + } + + if (paramsSwipeBackAnimateShadow) { + $pageShadowEl = $currentPageEl.find('.page-shadow-effect'); + if ($pageShadowEl.length === 0) { + $pageShadowEl = $('
                          '); + $currentPageEl.append($pageShadowEl); + } + } + if (paramsSwipeBackAnimateOpacity) { + $pageOpacityEl = $previousPageEl.find('.page-opacity-effect'); + if ($pageOpacityEl.length === 0) { + $pageOpacityEl = $('
                          '); + $previousPageEl.append($pageOpacityEl); + } + } + + if (dynamicNavbar) { + $currentNavbarEl = $navbarsEl.find('.navbar-current:not(.stacked)'); + $previousNavbarEl = $navbarsEl.find('.navbar-previous:not(.stacked)'); + if ($previousNavbarEl.length > 1) { + $previousNavbarEl = $previousNavbarEl.eq($previousNavbarEl.length - 1); + } + + animatableNavEls = animatableNavElements(); + } + + // Close/Hide Any Picker + if ($('.sheet.modal-in').length > 0 && app.sheet) { + app.sheet.close($('.sheet.modal-in')); + } + } + e.f7PreventSwipePanel = true; + isMoved = true; + app.preventSwipePanelBySwipeBack = true; + e.preventDefault(); + + // RTL inverter + var inverter = app.rtl ? -1 : 1; + + // Touches diff + touchesDiff = (pageX - touchesStart.x - paramsSwipeBackThreshold) * inverter; + if (touchesDiff < 0) { touchesDiff = 0; } + var percentage = Math.min(Math.max(touchesDiff / viewContainerWidth, 0), 1); + + // Swipe Back Callback + var callbackData = { + percentage: percentage, + progress: percentage, + currentPageEl: $currentPageEl[0], + previousPageEl: $previousPageEl[0], + currentNavbarEl: $currentNavbarEl[0], + previousNavbarEl: $previousNavbarEl[0], + }; + $el.trigger('swipeback:move', callbackData); + router.emit('swipebackMove', callbackData); + + // Transform pages + var currentPageTranslate = touchesDiff * inverter; + var previousPageTranslate = ((touchesDiff / 5) - (viewContainerWidth / 5)) * inverter; + if (!app.rtl) { + currentPageTranslate = Math.min(currentPageTranslate, viewContainerWidth); + previousPageTranslate = Math.min(previousPageTranslate, 0); + } else { + currentPageTranslate = Math.max(currentPageTranslate, -viewContainerWidth); + previousPageTranslate = Math.max(previousPageTranslate, 0); + } + if (Device.pixelRatio === 1) { + currentPageTranslate = Math.round(currentPageTranslate); + previousPageTranslate = Math.round(previousPageTranslate); + } + + router.swipeBackActive = true; + $([$currentPageEl[0], $previousPageEl[0]]).addClass('page-swipeback-active'); + + $currentPageEl.transform(("translate3d(" + currentPageTranslate + "px,0,0)")); + if (paramsSwipeBackAnimateShadow) { $pageShadowEl[0].style.opacity = 1 - (1 * percentage); } + + if (app.theme === 'ios') { + $previousPageEl.transform(("translate3d(" + previousPageTranslate + "px,0,0)")); + } + if (paramsSwipeBackAnimateOpacity) { $pageOpacityEl[0].style.opacity = 1 - (1 * percentage); } + + // Dynamic Navbars Animation + if (!dynamicNavbar) { return; } + + setAnimatableNavElements({ progress: percentage }); + } + function handleTouchEnd() { + app.preventSwipePanelBySwipeBack = false; + if (!isTouched || !isMoved) { + isTouched = false; + isMoved = false; + return; + } + isTouched = false; + isMoved = false; + router.swipeBackActive = false; + var $pages = $([$currentPageEl[0], $previousPageEl[0]]); + $pages.removeClass('page-swipeback-active'); + if (touchesDiff === 0) { + $pages.transform(''); + if ($pageShadowEl && $pageShadowEl.length > 0) { $pageShadowEl.remove(); } + if ($pageOpacityEl && $pageOpacityEl.length > 0) { $pageOpacityEl.remove(); } + if (dynamicNavbar) { + setAnimatableNavElements({ reset: true }); + } + return; + } + var timeDiff = Utils.now() - touchStartTime; + var pageChanged = false; + // Swipe back to previous page + if ( + (timeDiff < 300 && touchesDiff > 10) + || (timeDiff >= 300 && touchesDiff > viewContainerWidth / 2) + ) { + $currentPageEl.removeClass('page-current').addClass(("page-next" + (app.theme !== 'ios' ? ' page-next-on-right' : ''))); + $previousPageEl.removeClass('page-previous').addClass('page-current').removeAttr('aria-hidden'); + if ($pageShadowEl) { $pageShadowEl[0].style.opacity = ''; } + if ($pageOpacityEl) { $pageOpacityEl[0].style.opacity = ''; } + if (dynamicNavbar) { + router.setNavbarPosition($currentNavbarEl, 'next'); + router.setNavbarPosition($previousNavbarEl, 'current', false); + } + pageChanged = true; + } + // Reset custom styles + // Add transitioning class for transition-duration + $pages.addClass('page-transitioning page-transitioning-swipeback'); + if (!pageChanged) { + // eslint-disable-next-line + $currentPageEl[0]._clientLeft = $currentPageEl[0].clientLeft; + } + $pages.transform(''); + + if (dynamicNavbar) { + setAnimatableNavElements({ progress: pageChanged ? 1 : 0, transition: true, reflow: !pageChanged }); + } + allowViewTouchMove = false; + router.allowPageChange = false; + + // Swipe Back Callback + var callbackData = { + currentPageEl: $currentPageEl[0], + previousPageEl: $previousPageEl[0], + currentNavbarEl: $currentNavbarEl[0], + previousNavbarEl: $previousNavbarEl[0], + }; + + if (pageChanged) { + // Update Route + router.currentRoute = $previousPageEl[0].f7Page.route; + router.currentPage = $previousPageEl[0]; + + // Page before animation callback + router.pageCallback('beforeOut', $currentPageEl, $currentNavbarEl, 'current', 'next', { route: $currentPageEl[0].f7Page.route, swipeBack: true }); + router.pageCallback('beforeIn', $previousPageEl, $previousNavbarEl, 'previous', 'current', { route: $previousPageEl[0].f7Page.route, swipeBack: true }, $currentPageEl[0]); + + $el.trigger('swipeback:beforechange', callbackData); + router.emit('swipebackBeforeChange', callbackData); + } else { + $el.trigger('swipeback:beforereset', callbackData); + router.emit('swipebackBeforeReset', callbackData); + } + + $currentPageEl.transitionEnd(function () { + $pages.removeClass('page-transitioning page-transitioning-swipeback'); + if (dynamicNavbar) { + setAnimatableNavElements({ reset: true, transition: false }); + } + allowViewTouchMove = true; + router.allowPageChange = true; + if (pageChanged) { + // Update History + if (router.history.length === 1) { + router.history.unshift(router.url); + } + router.history.pop(); + router.saveHistory(); + + // Update push state + if (params.pushState) { + History.back(); + } + + // Page after animation callback + router.pageCallback('afterOut', $currentPageEl, $currentNavbarEl, 'current', 'next', { route: $currentPageEl[0].f7Page.route, swipeBack: true }); + router.pageCallback('afterIn', $previousPageEl, $previousNavbarEl, 'previous', 'current', { route: $previousPageEl[0].f7Page.route, swipeBack: true }); + + // Remove Old Page + if (params.stackPages && router.initialPages.indexOf($currentPageEl[0]) >= 0) { + $currentPageEl.addClass('stacked'); + if (dynamicNavbar) { + $currentNavbarEl.addClass('stacked'); + } + } else { + router.pageCallback('beforeRemove', $currentPageEl, $currentNavbarEl, 'next', { swipeBack: true }); + router.removePage($currentPageEl); + if (dynamicNavbar) { + router.removeNavbar($currentNavbarEl); + } + } + + $el.trigger('swipeback:afterchange', callbackData); + router.emit('swipebackAfterChange', callbackData); + + router.emit('routeChanged', router.currentRoute, router.previousRoute, router); + + if (params.preloadPreviousPage) { + router.back(router.history[router.history.length - 2], { preload: true }); + } + } else { + $el.trigger('swipeback:afterreset', callbackData); + router.emit('swipebackAfterReset', callbackData); + } + if ($pageShadowEl && $pageShadowEl.length > 0) { $pageShadowEl.remove(); } + if ($pageOpacityEl && $pageOpacityEl.length > 0) { $pageOpacityEl.remove(); } + }); + } + + function attachEvents() { + var passiveListener = (app.touchEvents.start === 'touchstart' && Support.passiveListener) ? { passive: true, capture: false } : false; + $el.on(app.touchEvents.start, handleTouchStart, passiveListener); + app.on('touchmove:active', handleTouchMove); + app.on('touchend:passive', handleTouchEnd); + } + function detachEvents() { + var passiveListener = (app.touchEvents.start === 'touchstart' && Support.passiveListener) ? { passive: true, capture: false } : false; + $el.off(app.touchEvents.start, handleTouchStart, passiveListener); + app.off('touchmove:active', handleTouchMove); + app.off('touchend:passive', handleTouchEnd); + } + + attachEvents(); + + router.on('routerDestroy', detachEvents); + } + + function redirect (direction, route, options) { + var router = this; + var redirect = route.route.redirect; + if (options.initial && router.params.pushState) { + options.replaceState = true; // eslint-disable-line + options.history = true; // eslint-disable-line + } + function redirectResolve(redirectUrl, redirectOptions) { + if ( redirectOptions === void 0 ) redirectOptions = {}; + + router.allowPageChange = true; + router[direction](redirectUrl, Utils.extend({}, options, redirectOptions)); + } + function redirectReject() { + router.allowPageChange = true; + } + if (typeof redirect === 'function') { + router.allowPageChange = false; + var redirectUrl = redirect.call(router, route, redirectResolve, redirectReject); + if (redirectUrl && typeof redirectUrl === 'string') { + router.allowPageChange = true; + return router[direction](redirectUrl, options); + } + return router; + } + return router[direction](redirect, options); + } + + function processQueue(router, routerQueue, routeQueue, to, from, resolve, reject) { + var queue = []; + + if (Array.isArray(routeQueue)) { + queue.push.apply(queue, routeQueue); + } else if (routeQueue && typeof routeQueue === 'function') { + queue.push(routeQueue); + } + if (routerQueue) { + if (Array.isArray(routerQueue)) { + queue.push.apply(queue, routerQueue); + } else { + queue.push(routerQueue); + } + } + + function next() { + if (queue.length === 0) { + resolve(); + return; + } + var queueItem = queue.shift(); + + queueItem.call( + router, + to, + from, + function () { + next(); + }, + function () { + reject(); + } + ); + } + next(); + } + + function processRouteQueue (to, from, resolve, reject) { + var router = this; + function enterNextRoute() { + if (to && to.route && (router.params.routesBeforeEnter || to.route.beforeEnter)) { + router.allowPageChange = false; + processQueue( + router, + router.params.routesBeforeEnter, + to.route.beforeEnter, + to, + from, + function () { + router.allowPageChange = true; + resolve(); + }, + function () { + reject(); + } + ); + } else { + resolve(); + } + } + function leaveCurrentRoute() { + if (from && from.route && (router.params.routesBeforeLeave || from.route.beforeLeave)) { + router.allowPageChange = false; + processQueue( + router, + router.params.routesBeforeLeave, + from.route.beforeLeave, + to, + from, + function () { + router.allowPageChange = true; + enterNextRoute(); + }, + function () { + reject(); + } + ); + } else { + enterNextRoute(); + } + } + leaveCurrentRoute(); + } + + function appRouterCheck (router, method) { + if (!router.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." + method + "(...)")); + } + } + + function asyncComponent (router, asyncComponent, resolve, reject) { + function resolvePromise(componentPromise) { + componentPromise + .then(function (c) { + // eslint-disable-next-line + resolve({ component: c.default || c._default || c }); + }) + .catch(function (err) { + reject(); + throw new Error(err); + }); + } + if (asyncComponent instanceof Promise) { + resolvePromise(asyncComponent); + return; + } + var asyncComponentResult = asyncComponent.call(router); + if (asyncComponentResult instanceof Promise) { + resolvePromise(asyncComponentResult); + } else { + resolve({ component: asyncComponentResult }); + } + } + + function refreshPage() { + var router = this; + appRouterCheck(router, 'refreshPage'); + return router.navigate(router.currentRoute.url, { + ignoreCache: true, + reloadCurrent: true, + }); + } + + function forward(el, forwardOptions) { + if ( forwardOptions === void 0 ) forwardOptions = {}; + + var router = this; + var $el = $(el); + var app = router.app; + var view = router.view; + var options = Utils.extend(false, { + animate: router.params.animate, + pushState: true, + replaceState: false, + history: true, + reloadCurrent: router.params.reloadPages, + reloadPrevious: false, + reloadAll: false, + clearPreviousHistory: false, + reloadDetail: router.params.reloadDetail, + on: {}, + }, forwardOptions); + + var masterDetailEnabled = router.params.masterDetailBreakpoint > 0; + var isMaster = masterDetailEnabled && options.route && options.route.route && options.route.route.master === true; + var masterPageEl; + var otherDetailPageEl; + + var currentRouteIsModal = router.currentRoute.modal; + var modalType; + if (!currentRouteIsModal) { + ('popup popover sheet loginScreen actions customModal panel').split(' ').forEach(function (modalLoadProp) { + if (router.currentRoute && router.currentRoute.route && router.currentRoute.route[modalLoadProp]) { + currentRouteIsModal = true; + modalType = modalLoadProp; + } + }); + } + + if (currentRouteIsModal) { + var modalToClose = router.currentRoute.modal + || router.currentRoute.route.modalInstance + || app[modalType].get(); + var previousUrl = router.history[router.history.length - 2]; + var previousRoute = router.findMatchingRoute(previousUrl); + if (!previousRoute && previousUrl) { + previousRoute = { + url: previousUrl, + path: previousUrl.split('?')[0], + query: Utils.parseUrlQuery(previousUrl), + route: { + path: previousUrl.split('?')[0], + url: previousUrl, + }, + }; + } + + router.modalRemove(modalToClose); + } + + var dynamicNavbar = router.dynamicNavbar; + + var $viewEl = router.$el; + var $newPage = $el; + var reload = options.reloadPrevious || options.reloadCurrent || options.reloadAll; + var $oldPage; + + var $navbarsEl; + var $newNavbarEl; + var $oldNavbarEl; + + router.allowPageChange = false; + if ($newPage.length === 0) { + router.allowPageChange = true; + return router; + } + + if ($newPage.length) { + // Remove theme elements + router.removeThemeElements($newPage); + } + + if (dynamicNavbar) { + $newNavbarEl = $newPage.children('.navbar'); + $navbarsEl = router.$navbarsEl; + if ($newNavbarEl.length === 0 && $newPage[0] && $newPage[0].f7Page) { + // Try from pageData + $newNavbarEl = $newPage[0].f7Page.$navbarEl; + } + } + + // Save Keep Alive Cache + if (options.route && options.route.route && options.route.route.keepAlive && !options.route.route.keepAliveData) { + options.route.route.keepAliveData = { + pageEl: $el[0], + }; + } + + // Pages In View + var $pagesInView = $viewEl + .children('.page:not(.stacked)') + .filter(function (index, pageInView) { return pageInView !== $newPage[0]; }); + + // Navbars In View + var $navbarsInView; + if (dynamicNavbar) { + $navbarsInView = $navbarsEl + .children('.navbar:not(.stacked)') + .filter(function (index, navbarInView) { return navbarInView !== $newNavbarEl[0]; }); + } + + // Exit when reload previous and only 1 page in view so nothing ro reload + if (options.reloadPrevious && $pagesInView.length < 2) { + router.allowPageChange = true; + return router; + } + + // Find Detail' master page + var isDetail; + var reloadDetail; + var isDetailRoot; + if (masterDetailEnabled && !options.reloadAll) { + for (var i = 0; i < $pagesInView.length; i += 1) { + if (!masterPageEl + && $pagesInView[i].classList.contains('page-master') + ) { + masterPageEl = $pagesInView[i]; + continue; // eslint-disable-line + } + } + isDetail = !isMaster && masterPageEl; + + if (isDetail) { + // Find Other Detail + if (masterPageEl) { + for (var i$1 = 0; i$1 < $pagesInView.length; i$1 += 1) { + if ($pagesInView[i$1].classList.contains('page-master-detail') + ) { + otherDetailPageEl = $pagesInView[i$1]; + continue; // eslint-disable-line + } + } + } + } + reloadDetail = isDetail && options.reloadDetail && app.width >= router.params.masterDetailBreakpoint && masterPageEl; + } + if (isDetail) { + isDetailRoot = !otherDetailPageEl || reloadDetail || options.reloadAll || options.reloadCurrent; + } + + // New Page + var newPagePosition = 'next'; + if (options.reloadCurrent || options.reloadAll || reloadDetail) { + newPagePosition = 'current'; + } else if (options.reloadPrevious) { + newPagePosition = 'previous'; + } + $newPage + .removeClass('page-previous page-current page-next') + .addClass(("page-" + newPagePosition + (isMaster ? ' page-master' : '') + (isDetail ? ' page-master-detail' : '') + (isDetailRoot ? ' page-master-detail-root' : ''))) + .removeClass('stacked') + .trigger('page:unstack') + .trigger('page:position', { position: newPagePosition }); + router.emit('pageUnstack', $newPage[0]); + router.emit('pagePosition', $newPage[0], newPagePosition); + + if (isMaster || isDetail) { + $newPage.trigger('page:role', { role: isMaster ? 'master' : 'detail', root: !!isDetailRoot }); + router.emit('pageRole', $newPage[0], { role: isMaster ? 'master' : 'detail', detailRoot: !!isDetailRoot }); + } + + if (dynamicNavbar && $newNavbarEl.length) { + $newNavbarEl + .removeClass('navbar-previous navbar-current navbar-next') + .addClass(("navbar-" + newPagePosition + (isMaster ? ' navbar-master' : '') + (isDetail ? ' navbar-master-detail' : '') + (isDetailRoot ? ' navbar-master-detail-root' : ''))) + .removeClass('stacked'); + $newNavbarEl.trigger('navbar:position', { position: newPagePosition }); + router.emit('navbarPosition', $newNavbarEl[0], newPagePosition); + if (isMaster || isDetail) { + router.emit('navbarRole', $newNavbarEl[0], { role: isMaster ? 'master' : 'detail', detailRoot: !!isDetailRoot }); + } + } + + // Find Old Page + if (options.reloadCurrent || reloadDetail) { + $oldPage = $pagesInView.eq($pagesInView.length - 1); + if (dynamicNavbar) { + // $oldNavbarEl = $navbarsInView.eq($pagesInView.length - 1); + $oldNavbarEl = $(app.navbar.getElByPage($oldPage)); + } + } else if (options.reloadPrevious) { + $oldPage = $pagesInView.eq($pagesInView.length - 2); + if (dynamicNavbar) { + // $oldNavbarEl = $navbarsInView.eq($pagesInView.length - 2); + $oldNavbarEl = $(app.navbar.getElByPage($oldPage)); + } + } else if (options.reloadAll) { + $oldPage = $pagesInView.filter(function (index, pageEl) { return pageEl !== $newPage[0]; }); + if (dynamicNavbar) { + $oldNavbarEl = $navbarsInView.filter(function (index, navbarEl) { return navbarEl !== $newNavbarEl[0]; }); + } + } else { + var removedPageEls = []; + var removedNavbarEls = []; + if ($pagesInView.length > 1) { + var i$2 = 0; + for (i$2 = 0; i$2 < $pagesInView.length - 1; i$2 += 1) { + if (masterPageEl + && $pagesInView[i$2] === masterPageEl + ) { + $pagesInView.eq(i$2).addClass('page-master-stacked'); + $pagesInView.eq(i$2).trigger('page:masterstack'); + router.emit('pageMasterStack', $pagesInView[i$2]); + if (dynamicNavbar) { + $(app.navbar.getElByPage(masterPageEl)).addClass('navbar-master-stacked'); + router.emit('navbarMasterStack', app.navbar.getElByPage(masterPageEl)); + } + continue; // eslint-disable-line + } + var oldNavbarEl = app.navbar.getElByPage($pagesInView.eq(i$2)); + if (router.params.stackPages) { + $pagesInView.eq(i$2).addClass('stacked'); + $pagesInView.eq(i$2).trigger('page:stack'); + router.emit('pageStack', $pagesInView[i$2]); + if (dynamicNavbar) { + $(oldNavbarEl).addClass('stacked'); + } + } else { + // Page remove event + removedPageEls.push($pagesInView[i$2]); + router.pageCallback('beforeRemove', $pagesInView[i$2], $navbarsInView && $navbarsInView[i$2], 'previous', undefined, options); + router.removePage($pagesInView[i$2]); + if (dynamicNavbar && oldNavbarEl) { + removedNavbarEls.push(oldNavbarEl); + router.removeNavbar(oldNavbarEl); + } + } + } + } + $oldPage = $viewEl + .children('.page:not(.stacked)') + .filter(function (index, pageEl) { return pageEl !== $newPage[0] && removedPageEls.indexOf(pageEl) < 0; }); + if (dynamicNavbar) { + $oldNavbarEl = $navbarsEl + .children('.navbar:not(.stacked)') + .filter(function (index, navbarEl) { return navbarEl !== $newNavbarEl[0] && removedNavbarEls.indexOf(removedNavbarEls) < 0; }); + } + removedPageEls = []; + removedNavbarEls = []; + } + + if (isDetail && !options.reloadAll) { + if ($oldPage.length > 1 || reloadDetail) { + $oldPage = $oldPage.filter(function (pageIndex, pageEl) { return !pageEl.classList.contains('page-master'); }); + } + if ($oldNavbarEl && ($oldNavbarEl.length > 1 || reloadDetail)) { + $oldNavbarEl = $oldNavbarEl.filter(function (navbarIndex, navbarEl) { return !navbarEl.classList.contains('navbar-master'); }); + } + } + + // Push State + if (router.params.pushState && (options.pushState || options.replaceState) && !options.reloadPrevious) { + var pushStateRoot = router.params.pushStateRoot || ''; + History[options.reloadCurrent || (reloadDetail && otherDetailPageEl) || options.reloadAll || options.replaceState ? 'replace' : 'push']( + view.id, + { + url: options.route.url, + }, + pushStateRoot + router.params.pushStateSeparator + options.route.url + ); + } + + if (!options.reloadPrevious) { + // Current Page & Navbar + router.currentPageEl = $newPage[0]; + if (dynamicNavbar && $newNavbarEl.length) { + router.currentNavbarEl = $newNavbarEl[0]; + } else { + delete router.currentNavbarEl; + } + + // Current Route + router.currentRoute = options.route; + } + + // Update router history + var url = options.route.url; + + if (options.history) { + if (((options.reloadCurrent || (reloadDetail && otherDetailPageEl)) && router.history.length) > 0 || options.replaceState) { + router.history[router.history.length - (options.reloadPrevious ? 2 : 1)] = url; + } else if (options.reloadPrevious) { + router.history[router.history.length - 2] = url; + } else if (options.reloadAll) { + router.history = [url]; + } else { + router.history.push(url); + } + } + router.saveHistory(); + + // Insert new page and navbar + var newPageInDom = $newPage.parents(doc).length > 0; + var f7Component = $newPage[0].f7Component; + if (options.reloadPrevious) { + if (f7Component && !newPageInDom) { + f7Component.$mount(function (componentEl) { + $(componentEl).insertBefore($oldPage); + }); + } else { + $newPage.insertBefore($oldPage); + } + if (dynamicNavbar && $newNavbarEl.length) { + if ($newNavbarEl.find('.title-large').length) { + $newNavbarEl.addClass('navbar-large'); + } + if ($oldNavbarEl.length) { + $newNavbarEl.insertBefore($oldNavbarEl); + } else { + if (!router.$navbarsEl.parents(doc).length) { + router.$el.prepend(router.$navbarsEl); + } + $navbarsEl.append($newNavbarEl); + } + } + } else { + if ($oldPage.next('.page')[0] !== $newPage[0]) { + if (f7Component && !newPageInDom) { + f7Component.$mount(function (componentEl) { + $viewEl.append(componentEl); + }); + } else { + $viewEl.append($newPage[0]); + } + } + if (dynamicNavbar && $newNavbarEl.length) { + if ($newNavbarEl.find('.title-large').length) { + $newNavbarEl.addClass('navbar-large'); + } + if (!router.$navbarsEl.parents(doc).length) { + router.$el.prepend(router.$navbarsEl); + } + $navbarsEl.append($newNavbarEl[0]); + } + } + if (!newPageInDom) { + router.pageCallback('mounted', $newPage, $newNavbarEl, newPagePosition, (reload ? newPagePosition : 'current'), options, $oldPage); + } else if (options.route && options.route.route && options.route.route.keepAlive && !$newPage[0].f7PageMounted) { + $newPage[0].f7PageMounted = true; + router.pageCallback('mounted', $newPage, $newNavbarEl, newPagePosition, (reload ? newPagePosition : 'current'), options, $oldPage); + } + + // Remove old page + if ((options.reloadCurrent || reloadDetail) && $oldPage.length > 0) { + if (router.params.stackPages && router.initialPages.indexOf($oldPage[0]) >= 0) { + $oldPage.addClass('stacked'); + $oldPage.trigger('page:stack'); + router.emit('pageStack', $oldPage[0]); + if (dynamicNavbar) { + $oldNavbarEl.addClass('stacked'); + } + } else { + // Page remove event + router.pageCallback('beforeOut', $oldPage, $oldNavbarEl, 'current', undefined, options); + router.pageCallback('afterOut', $oldPage, $oldNavbarEl, 'current', undefined, options); + router.pageCallback('beforeRemove', $oldPage, $oldNavbarEl, 'current', undefined, options); + router.removePage($oldPage); + if (dynamicNavbar && $oldNavbarEl && $oldNavbarEl.length) { + router.removeNavbar($oldNavbarEl); + } + } + } else if (options.reloadAll) { + $oldPage.each(function (index, pageEl) { + var $oldPageEl = $(pageEl); + var $oldNavbarElEl = $(app.navbar.getElByPage($oldPageEl)); + if (router.params.stackPages && router.initialPages.indexOf($oldPageEl[0]) >= 0) { + $oldPageEl.addClass('stacked'); + $oldPageEl.trigger('page:stack'); + router.emit('pageStack', $oldPageEl[0]); + if (dynamicNavbar) { + $oldNavbarElEl.addClass('stacked'); + } + } else { + // Page remove event + if ($oldPageEl.hasClass('page-current')) { + router.pageCallback('beforeOut', $oldPage, $oldNavbarEl, 'current', undefined, options); + router.pageCallback('afterOut', $oldPage, $oldNavbarEl, 'current', undefined, options); + } + router.pageCallback('beforeRemove', $oldPageEl, $oldNavbarEl && $oldNavbarEl.eq(index), 'previous', undefined, options); + router.removePage($oldPageEl); + if (dynamicNavbar && $oldNavbarElEl.length) { + router.removeNavbar($oldNavbarElEl); + } + } + }); + } else if (options.reloadPrevious) { + if (router.params.stackPages && router.initialPages.indexOf($oldPage[0]) >= 0) { + $oldPage.addClass('stacked'); + $oldPage.trigger('page:stack'); + router.emit('pageStack', $oldPage[0]); + if (dynamicNavbar) { + $oldNavbarEl.addClass('stacked'); + } + } else { + // Page remove event + router.pageCallback('beforeRemove', $oldPage, $oldNavbarEl, 'previous', undefined, options); + router.removePage($oldPage); + if (dynamicNavbar && $oldNavbarEl && $oldNavbarEl.length) { + router.removeNavbar($oldNavbarEl); + } + } + } + + // Load Tab + if (options.route.route.tab) { + router.tabLoad(options.route.route.tab, Utils.extend({}, options, { + history: false, + pushState: false, + })); + } + + // Check master detail + if (masterDetailEnabled) { + view.checkMasterDetailBreakpoint(); + } + + // Page init and before init events + router.pageCallback('init', $newPage, $newNavbarEl, newPagePosition, reload ? newPagePosition : 'current', options, $oldPage); + + if (options.reloadCurrent || options.reloadAll || reloadDetail) { + router.allowPageChange = true; + router.pageCallback('beforeIn', $newPage, $newNavbarEl, newPagePosition, 'current', options); + $newPage.removeAttr('aria-hidden'); + if (dynamicNavbar && $newNavbarEl) { + $newNavbarEl.removeAttr('aria-hidden'); + } + router.pageCallback('afterIn', $newPage, $newNavbarEl, newPagePosition, 'current', options); + if (options.reloadCurrent && options.clearPreviousHistory) { router.clearPreviousHistory(); } + if (reloadDetail) { + router.setPagePosition($(masterPageEl), 'previous'); + if (masterPageEl.f7Page && masterPageEl.f7Page.navbarEl) { + router.setNavbarPosition($(masterPageEl.f7Page.navbarEl), 'previous'); + } + } + return router; + } + if (options.reloadPrevious) { + router.allowPageChange = true; + return router; + } + + // Before animation event + router.pageCallback('beforeOut', $oldPage, $oldNavbarEl, 'current', 'previous', options); + router.pageCallback('beforeIn', $newPage, $newNavbarEl, 'next', 'current', options); + + // Animation + function afterAnimation() { + router.setPagePosition($newPage, 'current', false); + router.setPagePosition($oldPage, 'previous', !$oldPage.hasClass('page-master')); + if (dynamicNavbar) { + router.setNavbarPosition($newNavbarEl, 'current', false); + router.setNavbarPosition($oldNavbarEl, 'previous', !$oldNavbarEl.hasClass('navbar-master')); + } + // After animation event + router.allowPageChange = true; + router.pageCallback('afterOut', $oldPage, $oldNavbarEl, 'current', 'previous', options); + router.pageCallback('afterIn', $newPage, $newNavbarEl, 'next', 'current', options); + + var keepOldPage = (router.params.preloadPreviousPage || router.params[((app.theme) + "SwipeBack")]) && !isMaster; + if (!keepOldPage) { + if ($newPage.hasClass('smart-select-page') || $newPage.hasClass('photo-browser-page') || $newPage.hasClass('autocomplete-page') || $newPage.hasClass('color-picker-page')) { + keepOldPage = true; + } + } + if (!keepOldPage) { + if (router.params.stackPages) { + $oldPage.addClass('stacked'); + $oldPage.trigger('page:stack'); + router.emit('pageStack', $oldPage[0]); + if (dynamicNavbar) { + $oldNavbarEl.addClass('stacked'); + } + } else if (!($newPage.attr('data-name') && $newPage.attr('data-name') === 'smart-select-page')) { + // Remove event + router.pageCallback('beforeRemove', $oldPage, $oldNavbarEl, 'previous', undefined, options); + router.removePage($oldPage); + if (dynamicNavbar && $oldNavbarEl.length) { + router.removeNavbar($oldNavbarEl); + } + } + } + if (options.clearPreviousHistory) { router.clearPreviousHistory(); } + router.emit('routeChanged', router.currentRoute, router.previousRoute, router); + + if (router.params.pushState) { + History.clearRouterQueue(); + } + } + function setPositionClasses() { + router.setPagePosition($oldPage, 'current', false); + router.setPagePosition($newPage, 'next', false); + if (dynamicNavbar) { + router.setNavbarPosition($oldNavbarEl, 'current', false); + router.setNavbarPosition($newNavbarEl, 'next', false); + } + } + if (options.animate && !(isMaster && app.width >= router.params.masterDetailBreakpoint)) { + var delay = router.params[((router.app.theme) + "PageLoadDelay")]; + var transition = router.params.transition; + if (options.transition) { transition = options.transition; } + if (!transition && router.currentRoute && router.currentRoute.route) { + transition = router.currentRoute.route.transition; + } + if (!transition && router.currentRoute && router.currentRoute.route.options) { + transition = router.currentRoute.route.options.transition; + } + if (transition) { + $newPage[0].f7PageTransition = transition; + } + + if (delay) { + setTimeout(function () { + setPositionClasses(); + router.animate($oldPage, $newPage, $oldNavbarEl, $newNavbarEl, 'forward', transition, function () { + afterAnimation(); + }); + }, delay); + } else { + setPositionClasses(); + router.animate($oldPage, $newPage, $oldNavbarEl, $newNavbarEl, 'forward', transition, function () { + afterAnimation(); + }); + } + } else { + afterAnimation(); + } + return router; + } + function load(loadParams, loadOptions, ignorePageChange) { + if ( loadParams === void 0 ) loadParams = {}; + if ( loadOptions === void 0 ) loadOptions = {}; + + var router = this; + if (!router.allowPageChange && !ignorePageChange) { return router; } + var params = loadParams; + var options = loadOptions; + var url = params.url; + var content = params.content; + var el = params.el; + var pageName = params.pageName; + var template = params.template; + var templateUrl = params.templateUrl; + var component = params.component; + var componentUrl = params.componentUrl; + + if (!options.reloadCurrent + && options.route + && options.route.route + && options.route.route.parentPath + && router.currentRoute.route + && router.currentRoute.route.parentPath === options.route.route.parentPath) { + // Do something nested + if (options.route.url === router.url) { + router.allowPageChange = true; + return false; + } + // Check for same params + var sameParams = Object.keys(options.route.params).length === Object.keys(router.currentRoute.params).length; + if (sameParams) { + // Check for equal params name + Object.keys(options.route.params).forEach(function (paramName) { + if ( + !(paramName in router.currentRoute.params) + || (router.currentRoute.params[paramName] !== options.route.params[paramName]) + ) { + sameParams = false; + } + }); + } + if (sameParams) { + if (options.route.route.tab) { + return router.tabLoad(options.route.route.tab, options); + } + return false; + } + if (!sameParams + && options.route.route.tab + && router.currentRoute.route.tab + && router.currentRoute.parentPath === options.route.parentPath + ) { + return router.tabLoad(options.route.route.tab, options); + } + } + + if ( + options.route + && options.route.url + && router.url === options.route.url + && !(options.reloadCurrent || options.reloadPrevious) + && !router.params.allowDuplicateUrls + ) { + router.allowPageChange = true; + return false; + } + + if (!options.route && url) { + options.route = router.parseRouteUrl(url); + Utils.extend(options.route, { route: { url: url, path: url } }); + } + + // Component Callbacks + function resolve(pageEl, newOptions) { + return router.forward(pageEl, Utils.extend(options, newOptions)); + } + function reject() { + router.allowPageChange = true; + return router; + } + + if (url || templateUrl || componentUrl || component) { + router.allowPageChange = false; + } + + // Proceed + if (content) { + router.forward(router.getPageEl(content), options); + } else if (template || templateUrl) { + // Parse template and send page element + try { + router.pageTemplateLoader(template, templateUrl, options, resolve, reject); + } catch (err) { + router.allowPageChange = true; + throw err; + } + } else if (el) { + // Load page from specified HTMLElement or by page name in pages container + router.forward(router.getPageEl(el), options); + } else if (pageName) { + // Load page by page name in pages container + router.forward(router.$el.children((".page[data-name=\"" + pageName + "\"]")).eq(0), options); + } else if (component || componentUrl) { + // Load from component (F7/Vue/React/...) + try { + router.pageComponentLoader(router.el, component, componentUrl, options, resolve, reject); + } catch (err) { + router.allowPageChange = true; + throw err; + } + } else if (url) { + // Load using XHR + if (router.xhr) { + router.xhr.abort(); + router.xhr = false; + } + router.xhrRequest(url, options) + .then(function (pageContent) { + router.forward(router.getPageEl(pageContent), options); + }) + .catch(function () { + router.allowPageChange = true; + }); + } + return router; + } + function navigate(navigateParams, navigateOptions) { + if ( navigateOptions === void 0 ) navigateOptions = {}; + + var router = this; + if (router.swipeBackActive) { return router; } + var url; + var createRoute; + var name; + var path; + var query; + var params; + var route; + if (typeof navigateParams === 'string') { + url = navigateParams; + } else { + url = navigateParams.url; + createRoute = navigateParams.route; + name = navigateParams.name; + path = navigateParams.path; + query = navigateParams.query; + params = navigateParams.params; + } + if (name || path) { + url = router.generateUrl({ path: path, name: name, params: params, query: query }); + if (url) { + return router.navigate(url, navigateOptions); + } + return router; + } + var app = router.app; + appRouterCheck(router, 'navigate'); + if (url === '#' || url === '') { + return router; + } + + var navigateUrl = url.replace('./', ''); + if (navigateUrl[0] !== '/' && navigateUrl.indexOf('#') !== 0) { + var currentPath = router.currentRoute.parentPath || router.currentRoute.path; + navigateUrl = ((currentPath ? (currentPath + "/") : '/') + navigateUrl) + .replace('///', '/') + .replace('//', '/'); + } + if (createRoute) { + route = Utils.extend(router.parseRouteUrl(navigateUrl), { + route: Utils.extend({}, createRoute), + }); + } else { + route = router.findMatchingRoute(navigateUrl); + } + + if (!route) { + return router; + } + if (route.route && route.route.viewName) { + var anotherViewName = route.route.viewName; + var anotherView = app.views[anotherViewName]; + if (!anotherView) { + throw new Error(("Framework7: There is no View with \"" + anotherViewName + "\" name that was specified in this route")); + } + if (anotherView !== router.view) { + return anotherView.router.navigate(navigateParams, navigateOptions); + } + } + + if (route.route.redirect) { + return redirect.call(router, 'navigate', route, navigateOptions); + } + + + var options = {}; + if (route.route.options) { + Utils.extend(options, route.route.options, navigateOptions); + } else { + Utils.extend(options, navigateOptions); + } + options.route = route; + + if (options && options.context) { + route.context = options.context; + options.route.context = options.context; + } + + function resolve() { + var routerLoaded = false; + ('popup popover sheet loginScreen actions customModal panel').split(' ').forEach(function (modalLoadProp) { + if (route.route[modalLoadProp] && !routerLoaded) { + routerLoaded = true; + router.modalLoad(modalLoadProp, route, options); + } + }); + if (route.route.keepAlive && route.route.keepAliveData) { + router.load({ el: route.route.keepAliveData.pageEl }, options, false); + routerLoaded = true; + } + ('url content component pageName el componentUrl template templateUrl').split(' ').forEach(function (pageLoadProp) { + var obj; + + if (route.route[pageLoadProp] && !routerLoaded) { + routerLoaded = true; + router.load(( obj = {}, obj[pageLoadProp] = route.route[pageLoadProp], obj ), options, false); + } + }); + if (routerLoaded) { return; } + // Async + function asyncResolve(resolveParams, resolveOptions) { + router.allowPageChange = false; + var resolvedAsModal = false; + if (resolveOptions && resolveOptions.context) { + if (!route.context) { route.context = resolveOptions.context; } + else { route.context = Utils.extend({}, route.context, resolveOptions.context); } + options.route.context = route.context; + } + ('popup popover sheet loginScreen actions customModal panel').split(' ').forEach(function (modalLoadProp) { + if (resolveParams[modalLoadProp]) { + resolvedAsModal = true; + var modalRoute = Utils.extend({}, route, { route: resolveParams }); + router.allowPageChange = true; + router.modalLoad(modalLoadProp, modalRoute, Utils.extend(options, resolveOptions)); + } + }); + if (resolvedAsModal) { return; } + router.load(resolveParams, Utils.extend(options, resolveOptions), true); + } + function asyncReject() { + router.allowPageChange = true; + } + if (route.route.async) { + router.allowPageChange = false; + route.route.async.call(router, options.route, router.currentRoute, asyncResolve, asyncReject); + } + if (route.route.asyncComponent) { + asyncComponent(router, route.route.asyncComponent, asyncResolve, asyncReject); + } + } + function reject() { + router.allowPageChange = true; + } + + if (router.params.masterDetailBreakpoint > 0 && route.route.masterRoute) { + // load detail route + var preloadMaster = true; + var masterLoaded = false; + if (router.currentRoute && router.currentRoute.route) { + if ( + router.currentRoute.route.master + && ( + router.currentRoute.route === route.route.masterRoute + || router.currentRoute.route.path === route.route.masterRoute.path + ) + ) { + preloadMaster = false; + } + if ( + router.currentRoute.route.masterRoute + && (router.currentRoute.route.masterRoute === route.route.masterRoute + || router.currentRoute.route.masterRoute.path === route.route.masterRoute.path + ) + ) { + preloadMaster = false; + masterLoaded = true; + } + } + if (preloadMaster || (masterLoaded && navigateOptions.reloadAll)) { + router.navigate({ path: route.route.masterRoute.path, params: route.params || {} }, { + animate: false, + reloadAll: navigateOptions.reloadAll, + reloadCurrent: navigateOptions.reloadCurrent, + reloadPrevious: navigateOptions.reloadPrevious, + pushState: !navigateOptions.initial, + history: !navigateOptions.initial, + once: { + pageAfterIn: function pageAfterIn() { + router.navigate(navigateParams, Utils.extend({}, navigateOptions, { + animate: false, + reloadAll: false, + reloadCurrent: false, + reloadPrevious: false, + history: !navigateOptions.initial, + pushState: !navigateOptions.initial, + })); + }, + }, + }); + return router; + } + } + + processRouteQueue.call( + router, + route, + router.currentRoute, + function () { + if (route.route.modules) { + app + .loadModules(Array.isArray(route.route.modules) ? route.route.modules : [route.route.modules]) + .then(function () { + resolve(); + }) + .catch(function () { + reject(); + }); + } else { + resolve(); + } + }, + function () { + reject(); + } + ); + + // Return Router + return router; + } + + function tabLoad(tabRoute, loadOptions) { + if ( loadOptions === void 0 ) loadOptions = {}; + + var router = this; + var options = Utils.extend({ + animate: router.params.animate, + pushState: true, + history: true, + parentPageEl: null, + preload: false, + on: {}, + }, loadOptions); + + var currentRoute; + var previousRoute; + if (options.route) { + // Set Route + if (!options.preload && options.route !== router.currentRoute) { + previousRoute = router.previousRoute; + router.currentRoute = options.route; + } + if (options.preload) { + currentRoute = options.route; + previousRoute = router.currentRoute; + } else { + currentRoute = router.currentRoute; + if (!previousRoute) { previousRoute = router.previousRoute; } + } + + // Update Browser History + if (router.params.pushState && options.pushState && !options.reloadPrevious) { + History.replace( + router.view.id, + { + url: options.route.url, + }, + (router.params.pushStateRoot || '') + router.params.pushStateSeparator + options.route.url + ); + } + + // Update Router History + if (options.history) { + router.history[Math.max(router.history.length - 1, 0)] = options.route.url; + router.saveHistory(); + } + } + + // Show Tab + var $parentPageEl = $(options.parentPageEl || router.currentPageEl); + var tabEl; + if ($parentPageEl.length && $parentPageEl.find(("#" + (tabRoute.id))).length) { + tabEl = $parentPageEl.find(("#" + (tabRoute.id))).eq(0); + } else if (router.view.selector) { + tabEl = (router.view.selector) + " #" + (tabRoute.id); + } else { + tabEl = "#" + (tabRoute.id); + } + var tabShowResult = router.app.tab.show({ + tabEl: tabEl, + animate: options.animate, + tabRoute: options.route, + }); + + var $newTabEl = tabShowResult.$newTabEl; + var $oldTabEl = tabShowResult.$oldTabEl; + var animated = tabShowResult.animated; + var onTabsChanged = tabShowResult.onTabsChanged; + + if ($newTabEl && $newTabEl.parents('.page').length > 0 && options.route) { + var tabParentPageData = $newTabEl.parents('.page')[0].f7Page; + if (tabParentPageData && options.route) { + tabParentPageData.route = options.route; + } + } + + // Tab Content Loaded + function onTabLoaded(contentEl) { + // Remove theme elements + router.removeThemeElements($newTabEl); + + var tabEventTarget = $newTabEl; + if (typeof contentEl !== 'string') { tabEventTarget = $(contentEl); } + + tabEventTarget.trigger('tab:init tab:mounted', tabRoute); + router.emit('tabInit tabMounted', $newTabEl[0], tabRoute); + + if ($oldTabEl && $oldTabEl.length) { + if (animated) { + onTabsChanged(function () { + router.emit('routeChanged', router.currentRoute, router.previousRoute, router); + if (router.params.unloadTabContent) { + router.tabRemove($oldTabEl, $newTabEl, tabRoute); + } + }); + } else { + router.emit('routeChanged', router.currentRoute, router.previousRoute, router); + if (router.params.unloadTabContent) { + router.tabRemove($oldTabEl, $newTabEl, tabRoute); + } + } + } + } + + if ($newTabEl[0].f7RouterTabLoaded) { + if (!$oldTabEl || !$oldTabEl.length) { return router; } + if (animated) { + onTabsChanged(function () { + router.emit('routeChanged', router.currentRoute, router.previousRoute, router); + }); + } else { + router.emit('routeChanged', router.currentRoute, router.previousRoute, router); + } + return router; + } + + // Load Tab Content + function loadTab(loadTabParams, loadTabOptions) { + // Load Tab Props + var url = loadTabParams.url; + var content = loadTabParams.content; + var el = loadTabParams.el; + var template = loadTabParams.template; + var templateUrl = loadTabParams.templateUrl; + var component = loadTabParams.component; + var componentUrl = loadTabParams.componentUrl; + // Component/Template Callbacks + function resolve(contentEl) { + router.allowPageChange = true; + if (!contentEl) { return; } + if (typeof contentEl === 'string') { + $newTabEl.html(contentEl); + } else { + $newTabEl.html(''); + if (contentEl.f7Component) { + contentEl.f7Component.$mount(function (componentEl) { + $newTabEl.append(componentEl); + }); + } else { + $newTabEl.append(contentEl); + } + } + $newTabEl[0].f7RouterTabLoaded = true; + onTabLoaded(contentEl); + } + function reject() { + router.allowPageChange = true; + return router; + } + + if (content) { + resolve(content); + } else if (template || templateUrl) { + try { + router.tabTemplateLoader(template, templateUrl, loadTabOptions, resolve, reject); + } catch (err) { + router.allowPageChange = true; + throw err; + } + } else if (el) { + resolve(el); + } else if (component || componentUrl) { + // Load from component (F7/Vue/React/...) + try { + router.tabComponentLoader($newTabEl[0], component, componentUrl, loadTabOptions, resolve, reject); + } catch (err) { + router.allowPageChange = true; + throw err; + } + } else if (url) { + // Load using XHR + if (router.xhr) { + router.xhr.abort(); + router.xhr = false; + } + router.xhrRequest(url, loadTabOptions) + .then(function (tabContent) { + resolve(tabContent); + }) + .catch(function () { + router.allowPageChange = true; + }); + } + } + + var hasContentLoadProp; + ('url content component el componentUrl template templateUrl').split(' ').forEach(function (tabLoadProp) { + var obj; + + if (tabRoute[tabLoadProp]) { + hasContentLoadProp = true; + loadTab(( obj = {}, obj[tabLoadProp] = tabRoute[tabLoadProp], obj ), options); + } + }); + + // Async + function asyncResolve(resolveParams, resolveOptions) { + loadTab(resolveParams, Utils.extend(options, resolveOptions)); + } + function asyncReject() { + router.allowPageChange = true; + } + if (tabRoute.async) { + tabRoute.async.call(router, currentRoute, previousRoute, asyncResolve, asyncReject); + } else if (tabRoute.asyncComponent) { + asyncComponent(router, tabRoute.asyncComponent, asyncResolve, asyncReject); + } else if (!hasContentLoadProp) { + router.allowPageChange = true; + } + + return router; + } + function tabRemove($oldTabEl, $newTabEl, tabRoute) { + var router = this; + + var hasTabComponentChild; + if ($oldTabEl[0]) { + $oldTabEl[0].f7RouterTabLoaded = false; + delete $oldTabEl[0].f7RouterTabLoaded; + } + $oldTabEl.children().each(function (index, tabChild) { + if (tabChild.f7Component) { + hasTabComponentChild = true; + $(tabChild).trigger('tab:beforeremove', tabRoute); + tabChild.f7Component.$destroy(); + } + }); + if (!hasTabComponentChild) { + $oldTabEl.trigger('tab:beforeremove', tabRoute); + } + router.emit('tabBeforeRemove', $oldTabEl[0], $newTabEl[0], tabRoute); + router.removeTabContent($oldTabEl[0], tabRoute); + } + + function modalLoad(modalType, route, loadOptions) { + if ( loadOptions === void 0 ) loadOptions = {}; + + var router = this; + var app = router.app; + var isPanel = modalType === 'panel'; + var modalOrPanel = isPanel ? 'panel' : 'modal'; + + var options = Utils.extend({ + animate: router.params.animate, + pushState: true, + history: true, + on: {}, + }, loadOptions); + + var modalParams = Utils.extend({}, route.route[modalType]); + var modalRoute = route.route; + + function onModalLoaded() { + // Create Modal + var modal = app[modalType].create(modalParams); + modalRoute.modalInstance = modal; + + var hasEl = modal.el; + + function closeOnSwipeBack() { + modal.close(); + } + modal.on((modalOrPanel + "Open"), function () { + if (!hasEl) { + // Remove theme elements + router.removeThemeElements(modal.el); + + // Emit events + modal.$el.trigger(((modalType.toLowerCase()) + ":init " + (modalType.toLowerCase()) + ":mounted"), route, modal); + router.emit(((!isPanel ? 'modalInit' : '') + " " + modalType + "Init " + modalType + "Mounted"), modal.el, route, modal); + } + router.once('swipeBackMove', closeOnSwipeBack); + }); + modal.on((modalOrPanel + "Close"), function () { + router.off('swipeBackMove', closeOnSwipeBack); + if (!modal.closeByRouter) { + router.back(); + } + }); + + modal.on((modalOrPanel + "Closed"), function () { + modal.$el.trigger(((modalType.toLowerCase()) + ":beforeremove"), route, modal); + modal.emit(("" + (!isPanel ? 'modalBeforeRemove ' : '') + modalType + "BeforeRemove"), modal.el, route, modal); + var modalComponent = modal.el.f7Component; + if (modalComponent) { + modalComponent.$destroy(); + } + Utils.nextTick(function () { + if (modalComponent || modalParams.component) { + router.removeModal(modal.el); + } + modal.destroy(); + delete modal.route; + delete modalRoute.modalInstance; + }); + }); + + if (options.route) { + // Update Browser History + if (router.params.pushState && options.pushState) { + History.push( + router.view.id, + { + url: options.route.url, + modal: modalType, + }, + (router.params.pushStateRoot || '') + router.params.pushStateSeparator + options.route.url + ); + } + + // Set Route + if (options.route !== router.currentRoute) { + modal.route = Utils.extend(options.route, { modal: modal }); + router.currentRoute = modal.route; + } + + // Update Router History + if (options.history) { + router.history.push(options.route.url); + router.saveHistory(); + } + } + + if (hasEl) { + // Remove theme elements + router.removeThemeElements(modal.el); + + // Emit events + modal.$el.trigger(((modalType.toLowerCase()) + ":init " + (modalType.toLowerCase()) + ":mounted"), route, modal); + router.emit((modalOrPanel + "Init " + modalType + "Init " + modalType + "Mounted"), modal.el, route, modal); + } + + // Open + modal.open(); + } + + // Load Modal Content + function loadModal(loadModalParams, loadModalOptions) { + // Load Modal Props + var url = loadModalParams.url; + var content = loadModalParams.content; + var template = loadModalParams.template; + var templateUrl = loadModalParams.templateUrl; + var component = loadModalParams.component; + var componentUrl = loadModalParams.componentUrl; + + // Component/Template Callbacks + function resolve(contentEl) { + if (contentEl) { + if (typeof contentEl === 'string') { + modalParams.content = contentEl; + } else if (contentEl.f7Component) { + contentEl.f7Component.$mount(function (componentEl) { + modalParams.el = componentEl; + app.root.append(componentEl); + }); + } else { + modalParams.el = contentEl; + } + onModalLoaded(); + } + } + function reject() { + router.allowPageChange = true; + return router; + } + + if (content) { + resolve(content); + } else if (template || templateUrl) { + try { + router.modalTemplateLoader(template, templateUrl, loadModalOptions, resolve, reject); + } catch (err) { + router.allowPageChange = true; + throw err; + } + } else if (component || componentUrl) { + // Load from component (F7/Vue/React/...) + try { + router.modalComponentLoader(app.root[0], component, componentUrl, loadModalOptions, resolve, reject); + } catch (err) { + router.allowPageChange = true; + throw err; + } + } else if (url) { + // Load using XHR + if (router.xhr) { + router.xhr.abort(); + router.xhr = false; + } + router.xhrRequest(url, loadModalOptions) + .then(function (modalContent) { + modalParams.content = modalContent; + onModalLoaded(); + }) + .catch(function () { + router.allowPageChange = true; + }); + } else { + onModalLoaded(); + } + } + + var foundLoadProp; + ('url content component el componentUrl template templateUrl').split(' ').forEach(function (modalLoadProp) { + var obj; + + if (modalParams[modalLoadProp] && !foundLoadProp) { + foundLoadProp = true; + loadModal(( obj = {}, obj[modalLoadProp] = modalParams[modalLoadProp], obj ), options); + } + }); + if (!foundLoadProp && modalType === 'actions') { + onModalLoaded(); + } + + // Async + function asyncResolve(resolveParams, resolveOptions) { + loadModal(resolveParams, Utils.extend(options, resolveOptions)); + } + function asyncReject() { + router.allowPageChange = true; + } + if (modalParams.async) { + modalParams.async.call(router, options.route, router.currentRoute, asyncResolve, asyncReject); + } + if (modalParams.asyncComponent) { + asyncComponent(router, modalParams.asyncComponent, asyncResolve, asyncReject); + } + return router; + } + function modalRemove(modal) { + Utils.extend(modal, { closeByRouter: true }); + modal.close(); + } + + function backward(el, backwardOptions) { + var router = this; + var $el = $(el); + var app = router.app; + var view = router.view; + + var options = Utils.extend({ + animate: router.params.animate, + pushState: true, + replaceState: false, + }, backwardOptions); + + var masterDetailEnabled = router.params.masterDetailBreakpoint > 0; + var isMaster = masterDetailEnabled && options.route && options.route.route && options.route.route.master === true; + var masterPageEl; + var masterPageRemoved; + + var dynamicNavbar = router.dynamicNavbar; + + var $newPage = $el; + var $oldPage = router.$el.children('.page-current'); + var currentIsMaster = masterDetailEnabled && $oldPage.hasClass('page-master'); + + if ($newPage.length) { + // Remove theme elements + router.removeThemeElements($newPage); + } + + var $navbarsEl; + var $newNavbarEl; + var $oldNavbarEl; + + if (dynamicNavbar) { + $newNavbarEl = $newPage.children('.navbar'); + $navbarsEl = router.$navbarsEl; + if ($newNavbarEl.length === 0 && $newPage[0] && $newPage[0].f7Page) { + // Try from pageData + $newNavbarEl = $newPage[0].f7Page.$navbarEl; + } + $oldNavbarEl = $navbarsEl.find('.navbar-current'); + } + + router.allowPageChange = false; + if ($newPage.length === 0 || $oldPage.length === 0) { + router.allowPageChange = true; + return router; + } + + // Remove theme elements + router.removeThemeElements($newPage); + + // Save Keep Alive Cache + if (options.route && options.route.route && options.route.route.keepAlive && !options.route.route.keepAliveData) { + options.route.route.keepAliveData = { + pageEl: $el[0], + }; + } + + // Pages In View + var isDetail; + var isDetailRoot; + if (masterDetailEnabled) { + var $pagesInView = router.$el + .children('.page:not(.stacked)') + .filter(function (index, pageInView) { return pageInView !== $newPage[0]; }); + + // Find Detail' master page + for (var i = 0; i < $pagesInView.length; i += 1) { + if (!masterPageEl + && $pagesInView[i].classList.contains('page-master') + ) { + masterPageEl = $pagesInView[i]; + continue; // eslint-disable-line + } + } + + isDetail = !isMaster + && masterPageEl + && (router.history.indexOf(options.route.url) > router.history.indexOf(masterPageEl.f7Page.route.url)); + + if (!isDetail && !isMaster && masterPageEl && masterPageEl.f7Page && options.route.route.masterRoute) { + isDetail = options.route.route.masterRoute.path === masterPageEl.f7Page.route.route.path; + } + } + if (isDetail && masterPageEl && masterPageEl.f7Page) { + isDetailRoot = router.history.indexOf(options.route.url) - router.history.indexOf(masterPageEl.f7Page.route.url) === 1; + } + + // New Page + $newPage + .addClass(("page-previous" + (isMaster ? ' page-master' : '') + (isDetail ? ' page-master-detail' : '') + (isDetailRoot ? ' page-master-detail-root' : ''))) + .removeClass('stacked') + .removeAttr('aria-hidden') + .trigger('page:unstack') + .trigger('page:position', { position: 'previous' }); + router.emit('pageUnstack', $newPage[0]); + router.emit('pagePosition', $newPage[0], 'previous'); + if (isMaster || isDetail) { + $newPage.trigger('page:role', { role: isMaster ? 'master' : 'detail', root: !!isDetailRoot }); + router.emit('pageRole', $newPage[0], { role: isMaster ? 'master' : 'detail', detailRoot: !!isDetailRoot }); + } + + if (dynamicNavbar && $newNavbarEl.length > 0) { + $newNavbarEl + .addClass(("navbar-previous" + (isMaster ? ' navbar-master' : '') + (isDetail ? ' navbar-master-detail' : '') + (isDetailRoot ? ' navbar-master-detail-root' : ''))) + .removeClass('stacked') + .removeAttr('aria-hidden'); + $newNavbarEl.trigger('navbar:position', { position: 'previous' }); + router.emit('navbarPosition', $newNavbarEl[0], 'previous'); + if (isMaster || isDetailRoot) { + router.emit('navbarRole', $newNavbarEl[0], { role: isMaster ? 'master' : 'detail', detailRoot: !!isDetailRoot }); + } + } + + // Remove previous page in case of "forced" + var backIndex; + if (options.force) { + if ($oldPage.prev('.page-previous:not(.stacked)').length > 0 || $oldPage.prev('.page-previous').length === 0) { + if (router.history.indexOf(options.route.url) >= 0) { + backIndex = router.history.length - router.history.indexOf(options.route.url) - 1; + router.history = router.history.slice(0, router.history.indexOf(options.route.url) + 2); + view.history = router.history; + } else if (router.history[[router.history.length - 2]]) { + router.history[router.history.length - 2] = options.route.url; + } else { + router.history.unshift(router.url); + } + + if (backIndex && router.params.stackPages) { + $oldPage.prevAll('.page-previous').each(function (index, pageToRemove) { + var $pageToRemove = $(pageToRemove); + var $navbarToRemove; + if (dynamicNavbar) { + // $navbarToRemove = $oldNavbarEl.prevAll('.navbar-previous').eq(index); + $navbarToRemove = $(app.navbar.getElByPage($pageToRemove)); + } + if ($pageToRemove[0] !== $newPage[0] && $pageToRemove.index() > $newPage.index()) { + if (router.initialPages.indexOf($pageToRemove[0]) >= 0) { + $pageToRemove.addClass('stacked'); + $pageToRemove.trigger('page:stack'); + router.emit('pageStack', $pageToRemove[0]); + if (dynamicNavbar) { + $navbarToRemove.addClass('stacked'); + } + } else { + router.pageCallback('beforeRemove', $pageToRemove, $navbarToRemove, 'previous', undefined, options); + if ($pageToRemove[0] === masterPageEl) { + masterPageRemoved = true; + } + router.removePage($pageToRemove); + if (dynamicNavbar && $navbarToRemove.length > 0) { + router.removeNavbar($navbarToRemove); + } + } + } + }); + } else { + var $pageToRemove = $oldPage.prev('.page-previous:not(.stacked)'); + var $navbarToRemove; + if (dynamicNavbar) { + // $navbarToRemove = $oldNavbarEl.prev('.navbar-inner:not(.stacked)'); + $navbarToRemove = $(app.navbar.getElByPage($pageToRemove)); + } + if (router.params.stackPages && router.initialPages.indexOf($pageToRemove[0]) >= 0) { + $pageToRemove.addClass('stacked'); + $pageToRemove.trigger('page:stack'); + router.emit('pageStack', $pageToRemove[0]); + $navbarToRemove.addClass('stacked'); + } else if ($pageToRemove.length > 0) { + router.pageCallback('beforeRemove', $pageToRemove, $navbarToRemove, 'previous', undefined, options); + if ($pageToRemove[0] === masterPageEl) { + masterPageRemoved = true; + } + router.removePage($pageToRemove); + if (dynamicNavbar && $navbarToRemove.length) { + router.removeNavbar($navbarToRemove); + } + } + } + } + } + + // Insert new page + var newPageInDom = $newPage.parents(doc).length > 0; + var f7Component = $newPage[0].f7Component; + + function insertPage() { + if ($newPage.next($oldPage).length === 0) { + if (!newPageInDom && f7Component) { + f7Component.$mount(function (componentEl) { + $(componentEl).insertBefore($oldPage); + }); + } else { + $newPage.insertBefore($oldPage); + } + } + if (dynamicNavbar && $newNavbarEl.length) { + if ($newNavbarEl.find('.title-large').length) { + $newNavbarEl.addClass('navbar-large'); + } + $newNavbarEl.insertBefore($oldNavbarEl); + if ($oldNavbarEl.length > 0) { + $newNavbarEl.insertBefore($oldNavbarEl); + } else { + if (!router.$navbarsEl.parents(doc).length) { + router.$el.prepend(router.$navbarsEl); + } + $navbarsEl.append($newNavbarEl); + } + } + if (!newPageInDom) { + router.pageCallback('mounted', $newPage, $newNavbarEl, 'previous', 'current', options, $oldPage); + } else if (options.route && options.route.route && options.route.route.keepAlive && !$newPage[0].f7PageMounted) { + $newPage[0].f7PageMounted = true; + router.pageCallback('mounted', $newPage, $newNavbarEl, 'previous', 'current', options, $oldPage); + } + } + + if (options.preload) { + // Insert Page + insertPage(); + // Tab route + if (options.route.route.tab) { + router.tabLoad(options.route.route.tab, Utils.extend({}, options, { + history: false, + pushState: false, + preload: true, + })); + } + if (isMaster) { + $newPage + .removeClass('page-master-stacked') + .trigger('page:masterunstack'); + router.emit('pageMasterUnstack', $newPage[0]); + if (dynamicNavbar) { + $(app.navbar.getElByPage($newPage)).removeClass('navbar-master-stacked'); + router.emit('navbarMasterUnstack', app.navbar.getElByPage($newPage)); + } + } + // Page init and before init events + router.pageCallback('init', $newPage, $newNavbarEl, 'previous', 'current', options, $oldPage); + var $previousPages = $newPage.prevAll('.page-previous:not(.stacked):not(.page-master)'); + if ($previousPages.length > 0) { + $previousPages.each(function (index, pageToRemove) { + var $pageToRemove = $(pageToRemove); + var $navbarToRemove; + if (dynamicNavbar) { + // $navbarToRemove = $newNavbarEl.prevAll('.navbar-previous:not(.stacked)').eq(index); + $navbarToRemove = $(app.navbar.getElByPage($pageToRemove)); + } + if (router.params.stackPages && router.initialPages.indexOf(pageToRemove) >= 0) { + $pageToRemove.addClass('stacked'); + $pageToRemove.trigger('page:stack'); + router.emit('pageStack', $pageToRemove[0]); + if (dynamicNavbar) { + $navbarToRemove.addClass('stacked'); + } + } else { + router.pageCallback('beforeRemove', $pageToRemove, $navbarToRemove, 'previous', undefined); + router.removePage($pageToRemove); + if (dynamicNavbar && $navbarToRemove.length) { + router.removeNavbar($navbarToRemove); + } + } + }); + } + router.allowPageChange = true; + return router; + } + + // History State + if (!(Device.ie || Device.edge || (Device.firefox && !Device.ios))) { + if (router.params.pushState && options.pushState) { + if (options.replaceState) { + var pushStateRoot = router.params.pushStateRoot || ''; + History.replace( + view.id, + { + url: options.route.url, + }, + pushStateRoot + router.params.pushStateSeparator + options.route.url + ); + } else if (backIndex) { + History.go(-backIndex); + } else { + History.back(); + } + } + } + + // Update History + if (options.replaceState) { + router.history[router.history.length - 1] = options.route.url; + } else { + if (router.history.length === 1) { + router.history.unshift(router.url); + } + router.history.pop(); + } + router.saveHistory(); + + // Current Page & Navbar + router.currentPageEl = $newPage[0]; + if (dynamicNavbar && $newNavbarEl.length) { + router.currentNavbarEl = $newNavbarEl[0]; + } else { + delete router.currentNavbarEl; + } + + // Current Route + router.currentRoute = options.route; + + // History State + if (Device.ie || Device.edge || (Device.firefox && !Device.ios)) { + if (router.params.pushState && options.pushState) { + if (options.replaceState) { + var pushStateRoot$1 = router.params.pushStateRoot || ''; + History.replace( + view.id, + { + url: options.route.url, + }, + pushStateRoot$1 + router.params.pushStateSeparator + options.route.url + ); + } else if (backIndex) { + History.go(-backIndex); + } else { + History.back(); + } + } + } + + // Insert Page + insertPage(); + + // Load Tab + if (options.route.route.tab) { + router.tabLoad(options.route.route.tab, Utils.extend({}, options, { + history: false, + pushState: false, + })); + } + + // Check master detail + + if (masterDetailEnabled && (currentIsMaster || masterPageRemoved)) { + view.checkMasterDetailBreakpoint(false); + } + + // Page init and before init events + router.pageCallback('init', $newPage, $newNavbarEl, 'previous', 'current', options, $oldPage); + + // Before animation callback + router.pageCallback('beforeOut', $oldPage, $oldNavbarEl, 'current', 'next', options); + router.pageCallback('beforeIn', $newPage, $newNavbarEl, 'previous', 'current', options); + + // Animation + function afterAnimation() { + // Set classes + router.setPagePosition($newPage, 'current', false); + router.setPagePosition($oldPage, 'next', true); + if (dynamicNavbar) { + router.setNavbarPosition($newNavbarEl, 'current', false); + router.setNavbarPosition($oldNavbarEl, 'next', true); + } + + // After animation event + router.pageCallback('afterOut', $oldPage, $oldNavbarEl, 'current', 'next', options); + router.pageCallback('afterIn', $newPage, $newNavbarEl, 'previous', 'current', options); + + // Remove Old Page + if (router.params.stackPages && router.initialPages.indexOf($oldPage[0]) >= 0) { + $oldPage.addClass('stacked'); + $oldPage.trigger('page:stack'); + router.emit('pageStack', $oldPage[0]); + if (dynamicNavbar) { + $oldNavbarEl.addClass('stacked'); + } + } else { + router.pageCallback('beforeRemove', $oldPage, $oldNavbarEl, 'next', undefined, options); + router.removePage($oldPage); + if (dynamicNavbar && $oldNavbarEl.length) { + router.removeNavbar($oldNavbarEl); + } + } + + router.allowPageChange = true; + router.emit('routeChanged', router.currentRoute, router.previousRoute, router); + + // Preload previous page + var preloadPreviousPage = router.params.preloadPreviousPage || router.params[((app.theme) + "SwipeBack")]; + if (preloadPreviousPage && router.history[router.history.length - 2] && !isMaster) { + router.back(router.history[router.history.length - 2], { preload: true }); + } + if (router.params.pushState) { + History.clearRouterQueue(); + } + } + + function setPositionClasses() { + router.setPagePosition($oldPage, 'current'); + router.setPagePosition($newPage, 'previous', false); + if (dynamicNavbar) { + router.setNavbarPosition($oldNavbarEl, 'current'); + router.setNavbarPosition($newNavbarEl, 'previous', false); + } + } + + if (options.animate && !(currentIsMaster && app.width >= router.params.masterDetailBreakpoint)) { + var transition = router.params.transition; + if ($oldPage[0] && $oldPage[0].f7PageTransition) { + transition = $oldPage[0].f7PageTransition; + delete $oldPage[0].f7PageTransition; + } + if (options.transition) { transition = options.transition; } + if (!transition && router.previousRoute && router.previousRoute.route) { + transition = router.previousRoute.route.transition; + } + if (!transition && router.previousRoute && router.previousRoute.route && router.previousRoute.route.options) { + transition = router.previousRoute.route.options.transition; + } + setPositionClasses(); + router.animate($oldPage, $newPage, $oldNavbarEl, $newNavbarEl, 'backward', transition, function () { + afterAnimation(); + }); + } else { + afterAnimation(); + } + + return router; + } + function loadBack(backParams, backOptions, ignorePageChange) { + var router = this; + + if (!router.allowPageChange && !ignorePageChange) { return router; } + var params = backParams; + var options = backOptions; + var url = params.url; + var content = params.content; + var el = params.el; + var pageName = params.pageName; + var template = params.template; + var templateUrl = params.templateUrl; + var component = params.component; + var componentUrl = params.componentUrl; + + if ( + options.route.url + && router.url === options.route.url + && !(options.reloadCurrent || options.reloadPrevious) + && !router.params.allowDuplicateUrls + ) { + return false; + } + + if (!options.route && url) { + options.route = router.parseRouteUrl(url); + } + + // Component Callbacks + function resolve(pageEl, newOptions) { + return router.backward(pageEl, Utils.extend(options, newOptions)); + } + function reject() { + router.allowPageChange = true; + return router; + } + + if (url || templateUrl || componentUrl || component) { + router.allowPageChange = false; + } + + // Proceed + if (content) { + router.backward(router.getPageEl(content), options); + } else if (template || templateUrl) { + // Parse template and send page element + try { + router.pageTemplateLoader(template, templateUrl, options, resolve, reject); + } catch (err) { + router.allowPageChange = true; + throw err; + } + } else if (el) { + // Load page from specified HTMLElement or by page name in pages container + router.backward(router.getPageEl(el), options); + } else if (pageName) { + // Load page by page name in pages container + router.backward(router.$el.children((".page[data-name=\"" + pageName + "\"]")).eq(0), options); + } else if (component || componentUrl) { + // Load from component (F7/Vue/React/...) + try { + router.pageComponentLoader(router.el, component, componentUrl, options, resolve, reject); + } catch (err) { + router.allowPageChange = true; + throw err; + } + } else if (url) { + // Load using XHR + if (router.xhr) { + router.xhr.abort(); + router.xhr = false; + } + router.xhrRequest(url, options) + .then(function (pageContent) { + router.backward(router.getPageEl(pageContent), options); + }) + .catch(function () { + router.allowPageChange = true; + }); + } + return router; + } + function back() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + var router = this; + if (router.swipeBackActive) { return router; } + var navigateUrl; + var navigateOptions; + var route; + if (typeof args[0] === 'object') { + navigateOptions = args[0] || {}; + } else { + navigateUrl = args[0]; + navigateOptions = args[1] || {}; + } + + var name = navigateOptions.name; + var params = navigateOptions.params; + var query = navigateOptions.query; + if (name) { + navigateUrl = router.generateUrl({ name: name, params: params, query: query }); + if (navigateUrl) { + return router.back(navigateUrl, Utils.extend({}, navigateOptions, { + name: null, + params: null, + query: null, + })); + } + return router; + } + + var app = router.app; + appRouterCheck(router, 'back'); + + var currentRouteIsModal = router.currentRoute.modal; + var modalType; + if (!currentRouteIsModal) { + ('popup popover sheet loginScreen actions customModal panel').split(' ').forEach(function (modalLoadProp) { + if (router.currentRoute.route[modalLoadProp]) { + currentRouteIsModal = true; + modalType = modalLoadProp; + } + }); + } + if (currentRouteIsModal) { + var modalToClose = router.currentRoute.modal + || router.currentRoute.route.modalInstance + || app[modalType].get(); + var previousUrl = router.history[router.history.length - 2]; + var previousRoute; + // check if previous route is modal too + if (modalToClose && modalToClose.$el) { + var prevOpenedModals = modalToClose.$el.prevAll('.modal-in'); + if (prevOpenedModals.length && prevOpenedModals[0].f7Modal) { + var modalEl = prevOpenedModals[0]; + // check if current router not inside of the modalEl + if (!router.$el.parents(modalEl).length) { + previousRoute = modalEl.f7Modal.route; + } + } + } + if (!previousRoute) { + previousRoute = router.findMatchingRoute(previousUrl); + } + + if (!previousRoute && previousUrl) { + previousRoute = { + url: previousUrl, + path: previousUrl.split('?')[0], + query: Utils.parseUrlQuery(previousUrl), + route: { + path: previousUrl.split('?')[0], + url: previousUrl, + }, + }; + } + if (!navigateUrl || navigateUrl.replace(/[# ]/g, '').trim().length === 0) { + if (!previousRoute || !modalToClose) { + return router; + } + } + var forceOtherUrl = navigateOptions.force && previousRoute && navigateUrl; + if (previousRoute && modalToClose) { + var isBrokenPushState = Device.ie || Device.edge || (Device.firefox && !Device.ios); + var needHistoryBack = router.params.pushState && navigateOptions.pushState !== false; + var currentRouteWithoutPushState = router.currentRoute && router.currentRoute.route && router.currentRoute.route.options && router.currentRoute.route.options.pushState === false; + if (needHistoryBack && !isBrokenPushState && !currentRouteWithoutPushState) { + History.back(); + } + router.currentRoute = previousRoute; + router.history.pop(); + router.saveHistory(); + + if (needHistoryBack && isBrokenPushState && !currentRouteWithoutPushState) { + History.back(); + } + + router.modalRemove(modalToClose); + if (forceOtherUrl) { + router.navigate(navigateUrl, { reloadCurrent: true }); + } + } else if (modalToClose) { + router.modalRemove(modalToClose); + if (navigateUrl) { + router.navigate(navigateUrl, { reloadCurrent: true }); + } + } + return router; + } + var $previousPage = router.$el.children('.page-current').prevAll('.page-previous:not(.page-master)').eq(0); + + var skipMaster; + if (router.params.masterDetailBreakpoint > 0) { + var classes = []; + router.$el.children('.page').each(function (index, pageEl) { + classes.push(pageEl.className); + }); + + var $previousMaster = router.$el.children('.page-current').prevAll('.page-master').eq(0); + if ($previousMaster.length) { + var expectedPreviousPageUrl = router.history[router.history.length - 2]; + var expectedPreviousPageRoute = router.findMatchingRoute(expectedPreviousPageUrl); + if (expectedPreviousPageRoute && $previousMaster[0].f7Page && expectedPreviousPageRoute.route === $previousMaster[0].f7Page.route.route) { + $previousPage = $previousMaster; + if (!navigateOptions.preload) { + skipMaster = app.width >= router.params.masterDetailBreakpoint; + } + } + } + } + + if (!navigateOptions.force && $previousPage.length && !skipMaster) { + if (router.params.pushState + && $previousPage[0].f7Page + && router.history[router.history.length - 2] !== $previousPage[0].f7Page.route.url + ) { + router.back( + router.history[router.history.length - 2], + Utils.extend(navigateOptions, { force: true }) + ); + return router; + } + var previousPageRoute = $previousPage[0].f7Page.route; + + processRouteQueue.call( + router, + previousPageRoute, + router.currentRoute, + function () { + router.loadBack({ el: $previousPage }, Utils.extend(navigateOptions, { + route: previousPageRoute, + })); + }, + function () {} + ); + + return router; + } + + // Navigate URL + if (navigateUrl === '#') { + navigateUrl = undefined; + } + if (navigateUrl && navigateUrl[0] !== '/' && navigateUrl.indexOf('#') !== 0) { + navigateUrl = ((router.path || '/') + navigateUrl).replace('//', '/'); + } + if (!navigateUrl && router.history.length > 1) { + navigateUrl = router.history[router.history.length - 2]; + } + if (skipMaster && !navigateOptions.force && router.history[router.history.length - 3]) { + return router.back(router.history[router.history.length - 3], Utils.extend({}, navigateOptions || {}, { + force: true, + animate: false, + })); + } + if (skipMaster && !navigateOptions.force) { + return router; + } + + // Find route to load + route = router.findMatchingRoute(navigateUrl); + if (!route) { + if (navigateUrl) { + route = { + url: navigateUrl, + path: navigateUrl.split('?')[0], + query: Utils.parseUrlQuery(navigateUrl), + route: { + path: navigateUrl.split('?')[0], + url: navigateUrl, + }, + }; + } + } + if (!route) { + return router; + } + + if (route.route.redirect) { + return redirect.call(router, 'back', route, navigateOptions); + } + + var options = {}; + if (route.route.options) { + Utils.extend(options, route.route.options, navigateOptions); + } else { + Utils.extend(options, navigateOptions); + } + options.route = route; + + if (options && options.context) { + route.context = options.context; + options.route.context = options.context; + } + + var backForceLoaded; + if (options.force && router.params.stackPages) { + router.$el.children('.page-previous.stacked').each(function (index, pageEl) { + if (pageEl.f7Page && pageEl.f7Page.route && pageEl.f7Page.route.url === route.url) { + backForceLoaded = true; + router.loadBack({ el: pageEl }, options); + } + }); + if (backForceLoaded) { + return router; + } + } + function resolve() { + var routerLoaded = false; + if (route.route.keepAlive && route.route.keepAliveData) { + router.loadBack({ el: route.route.keepAliveData.pageEl }, options); + routerLoaded = true; + } + ('url content component pageName el componentUrl template templateUrl').split(' ').forEach(function (pageLoadProp) { + var obj; + + if (route.route[pageLoadProp] && !routerLoaded) { + routerLoaded = true; + router.loadBack(( obj = {}, obj[pageLoadProp] = route.route[pageLoadProp], obj ), options); + } + }); + if (routerLoaded) { return; } + // Async + function asyncResolve(resolveParams, resolveOptions) { + router.allowPageChange = false; + if (resolveOptions && resolveOptions.context) { + if (!route.context) { route.context = resolveOptions.context; } + else { route.context = Utils.extend({}, route.context, resolveOptions.context); } + options.route.context = route.context; + } + router.loadBack(resolveParams, Utils.extend(options, resolveOptions), true); + } + function asyncReject() { + router.allowPageChange = true; + } + if (route.route.async) { + router.allowPageChange = false; + route.route.async.call(router, route, router.currentRoute, asyncResolve, asyncReject); + } + if (route.route.asyncComponent) { + asyncComponent(router, route.route.asyncComponent, asyncResolve, asyncReject); + } + } + function reject() { + router.allowPageChange = true; + } + + if (options.preload) { + resolve(); + } else { + processRouteQueue.call( + router, + route, + router.currentRoute, + function () { + if (route.route.modules) { + app + .loadModules(Array.isArray(route.route.modules) ? route.route.modules : [route.route.modules]) + .then(function () { + resolve(); + }) + .catch(function () { + reject(); + }); + } else { + resolve(); + } + }, + function () { + reject(); + } + ); + } + + // Return Router + return router; + } + + function clearPreviousPages(router) { + appRouterCheck(router, 'clearPreviousPages'); + var app = router.app; + var dynamicNavbar = router.dynamicNavbar; + + var $pagesToRemove = router.$el + .children('.page') + .filter(function (index, pageInView) { + if (router.currentRoute && (router.currentRoute.modal || router.currentRoute.panel)) { return true; } + return pageInView !== router.currentPageEl; + }); + + $pagesToRemove.each(function (index, pageEl) { + var $oldPageEl = $(pageEl); + var $oldNavbarEl = $(app.navbar.getElByPage($oldPageEl)); + if (router.params.stackPages && router.initialPages.indexOf($oldPageEl[0]) >= 0) { + $oldPageEl.addClass('stacked'); + if (dynamicNavbar) { + $oldNavbarEl.addClass('stacked'); + } + } else { + // Page remove event + router.pageCallback('beforeRemove', $oldPageEl, $oldNavbarEl, 'previous', undefined, {}); + router.removePage($oldPageEl); + if (dynamicNavbar && $oldNavbarEl.length) { + router.removeNavbar($oldNavbarEl); + } + } + }); + } + + function clearPreviousHistory() { + var router = this; + appRouterCheck(router, 'clearPreviousHistory'); + var url = router.history[router.history.length - 1]; + + clearPreviousPages(router); + + router.history = [url]; + router.view.history = [url]; + router.saveHistory(); + } + + var Router = /*@__PURE__*/(function (Framework7Class) { + function Router(app, view) { + Framework7Class.call(this, {}, [typeof view === 'undefined' ? app : view]); + var router = this; + + // Is App Router + router.isAppRouter = typeof view === 'undefined'; + + if (router.isAppRouter) { + // App Router + Utils.extend(false, router, { + app: app, + params: app.params.view, + routes: app.routes || [], + cache: app.cache, + }); + } else { + // View Router + Utils.extend(false, router, { + app: app, + view: view, + viewId: view.id, + params: view.params, + routes: view.routes, + $el: view.$el, + el: view.el, + $navbarsEl: view.$navbarsEl, + navbarsEl: view.navbarsEl, + history: view.history, + scrollHistory: view.scrollHistory, + cache: app.cache, + dynamicNavbar: app.theme === 'ios' && view.params.iosDynamicNavbar, + initialPages: [], + initialNavbars: [], + }); + } + + // Install Modules + router.useModules(); + + // Temporary Dom + router.tempDom = doc.createElement('div'); + + // AllowPageChage + router.allowPageChange = true; + + // Current Route + var currentRoute = {}; + var previousRoute = {}; + Object.defineProperty(router, 'currentRoute', { + enumerable: true, + configurable: true, + set: function set(newRoute) { + if ( newRoute === void 0 ) newRoute = {}; + + previousRoute = Utils.extend({}, currentRoute); + currentRoute = newRoute; + if (!currentRoute) { return; } + router.url = currentRoute.url; + router.emit('routeChange', newRoute, previousRoute, router); + }, + get: function get() { + return currentRoute; + }, + }); + Object.defineProperty(router, 'previousRoute', { + enumerable: true, + configurable: true, + get: function get() { + return previousRoute; + }, + set: function set(newRoute) { + previousRoute = newRoute; + }, + }); + + return router; + } + + if ( Framework7Class ) Router.__proto__ = Framework7Class; + Router.prototype = Object.create( Framework7Class && Framework7Class.prototype ); + Router.prototype.constructor = Router; + + Router.prototype.animatableNavElements = function animatableNavElements ($newNavbarEl, $oldNavbarEl, toLarge, fromLarge, direction) { + var router = this; + var dynamicNavbar = router.dynamicNavbar; + var animateIcon = router.params.iosAnimateNavbarBackIcon; + + var newNavEls; + var oldNavEls; + function animatableNavEl($el, $navbarInner) { + var isSliding = $el.hasClass('sliding') || $navbarInner.hasClass('sliding'); + var isSubnavbar = $el.hasClass('subnavbar'); + var needsOpacityTransition = isSliding ? !isSubnavbar : true; + var $iconEl = $el.find('.back .icon'); + var isIconLabel; + if (isSliding && animateIcon && $el.hasClass('left') && $iconEl.length > 0 && $iconEl.next('span').length) { + $el = $iconEl.next('span'); // eslint-disable-line + isIconLabel = true; + } + return { + $el: $el, + isIconLabel: isIconLabel, + leftOffset: $el[0].f7NavbarLeftOffset, + rightOffset: $el[0].f7NavbarRightOffset, + isSliding: isSliding, + isSubnavbar: isSubnavbar, + needsOpacityTransition: needsOpacityTransition, + }; + } + if (dynamicNavbar) { + newNavEls = []; + oldNavEls = []; + $newNavbarEl.children('.navbar-inner').children('.left, .right, .title, .subnavbar').each(function (index, navEl) { + var $navEl = $(navEl); + if ($navEl.hasClass('left') && fromLarge && direction === 'forward') { return; } + if ($navEl.hasClass('title') && toLarge) { return; } + newNavEls.push(animatableNavEl($navEl, $newNavbarEl.children('.navbar-inner'))); + }); + if (!($oldNavbarEl.hasClass('navbar-master') && router.params.masterDetailBreakpoint > 0 && router.app.width >= router.params.masterDetailBreakpoint)) { + $oldNavbarEl.children('.navbar-inner').children('.left, .right, .title, .subnavbar').each(function (index, navEl) { + var $navEl = $(navEl); + if ($navEl.hasClass('left') && toLarge && !fromLarge && direction === 'forward') { return; } + if ($navEl.hasClass('left') && toLarge && direction === 'backward') { return; } + if ($navEl.hasClass('title') && fromLarge) { + return; + } + oldNavEls.push(animatableNavEl($navEl, $oldNavbarEl.children('.navbar-inner'))); + }); + } + [oldNavEls, newNavEls].forEach(function (navEls) { + navEls.forEach(function (navEl) { + var n = navEl; + var isSliding = navEl.isSliding; + var $el = navEl.$el; + var otherEls = navEls === oldNavEls ? newNavEls : oldNavEls; + if (!(isSliding && $el.hasClass('title') && otherEls)) { return; } + otherEls.forEach(function (otherNavEl) { + if (otherNavEl.isIconLabel) { + var iconTextEl = otherNavEl.$el[0]; + n.leftOffset += iconTextEl ? (iconTextEl.offsetLeft || 0) : 0; + } + }); + }); + }); + } + + return { newNavEls: newNavEls, oldNavEls: oldNavEls }; + }; + + Router.prototype.animate = function animate ($oldPageEl, $newPageEl, $oldNavbarEl, $newNavbarEl, direction, transition, callback) { + var router = this; + if (router.params.animateCustom) { + router.params.animateCustom.apply(router, [$oldPageEl, $newPageEl, $oldNavbarEl, $newNavbarEl, direction, callback]); + return; + } + var dynamicNavbar = router.dynamicNavbar; + var ios = router.app.theme === 'ios'; + if (transition) { + var routerCustomTransitionClass = "router-transition-custom router-transition-" + transition + "-" + direction; + // Animate + var onCustomTransitionDone = function () { + router.$el.removeClass(routerCustomTransitionClass); + if (dynamicNavbar && router.$navbarsEl.length) { + if ($newNavbarEl) { + router.$navbarsEl.prepend($newNavbarEl); + } + if ($oldNavbarEl) { + router.$navbarsEl.prepend($oldNavbarEl); + } + } + if (callback) { callback(); } + }; + + (direction === 'forward' ? $newPageEl : $oldPageEl).animationEnd(onCustomTransitionDone); + if (dynamicNavbar) { + if ($newNavbarEl && $newPageEl) { + router.setNavbarPosition($newNavbarEl, ''); + $newNavbarEl.removeClass('navbar-next navbar-previous navbar-current'); + $newPageEl.prepend($newNavbarEl); + } + if ($oldNavbarEl && $oldPageEl) { + router.setNavbarPosition($oldNavbarEl, ''); + $oldNavbarEl.removeClass('navbar-next navbar-previous navbar-current'); + $oldPageEl.prepend($oldNavbarEl); + } + } + + router.$el.addClass(routerCustomTransitionClass); + return; + } + + + // Router Animation class + var routerTransitionClass = "router-transition-" + direction + " router-transition"; + + var newNavEls; + var oldNavEls; + + var fromLarge; + var toLarge; + + var oldIsLarge; + var newIsLarge; + + if (ios && dynamicNavbar) { + var betweenMasterAndDetail = router.params.masterDetailBreakpoint > 0 && router.app.width >= router.params.masterDetailBreakpoint + && ( + ($oldNavbarEl.hasClass('navbar-master') && $newNavbarEl.hasClass('navbar-master-detail')) + || ($oldNavbarEl.hasClass('navbar-master-detail') && $newNavbarEl.hasClass('navbar-master')) + ); + if (!betweenMasterAndDetail) { + oldIsLarge = $oldNavbarEl && $oldNavbarEl.hasClass('navbar-large'); + newIsLarge = $newNavbarEl && $newNavbarEl.hasClass('navbar-large'); + fromLarge = oldIsLarge && !$oldNavbarEl.hasClass('navbar-large-collapsed'); + toLarge = newIsLarge && !$newNavbarEl.hasClass('navbar-large-collapsed'); + } + var navEls = router.animatableNavElements($newNavbarEl, $oldNavbarEl, toLarge, fromLarge, direction); + newNavEls = navEls.newNavEls; + oldNavEls = navEls.oldNavEls; + } + + function animateNavbars(progress) { + if (!(ios && dynamicNavbar)) { return; } + if (progress === 1) { + if (toLarge) { + $newNavbarEl.addClass('router-navbar-transition-to-large'); + $oldNavbarEl.addClass('router-navbar-transition-to-large'); + } + if (fromLarge) { + $newNavbarEl.addClass('router-navbar-transition-from-large'); + $oldNavbarEl.addClass('router-navbar-transition-from-large'); + } + } + newNavEls.forEach(function (navEl) { + var $el = navEl.$el; + var offset = direction === 'forward' ? navEl.rightOffset : navEl.leftOffset; + if (navEl.isSliding) { + if (navEl.isSubnavbar && newIsLarge) { + $el[0].style.setProperty('transform', ("translate3d(" + (offset * (1 - progress)) + "px, calc(-1 * var(--f7-navbar-large-collapse-progress) * var(--f7-navbar-large-title-height)), 0)"), 'important'); + } else { + $el.transform(("translate3d(" + (offset * (1 - progress)) + "px,0,0)")); + } + } + }); + oldNavEls.forEach(function (navEl) { + var $el = navEl.$el; + var offset = direction === 'forward' ? navEl.leftOffset : navEl.rightOffset; + if (navEl.isSliding) { + if (navEl.isSubnavbar && oldIsLarge) { + $el.transform(("translate3d(" + (offset * (progress)) + "px, calc(-1 * var(--f7-navbar-large-collapse-progress) * var(--f7-navbar-large-title-height)), 0)")); + } else { + $el.transform(("translate3d(" + (offset * (progress)) + "px,0,0)")); + } + } + }); + } + + // AnimationEnd Callback + function onDone() { + if (router.dynamicNavbar) { + if ($newNavbarEl) { + $newNavbarEl.removeClass('router-navbar-transition-to-large router-navbar-transition-from-large'); + $newNavbarEl.addClass('navbar-no-title-large-transition'); + Utils.nextFrame(function () { + $newNavbarEl.removeClass('navbar-no-title-large-transition'); + }); + } + if ($oldNavbarEl) { + $oldNavbarEl.removeClass('router-navbar-transition-to-large router-navbar-transition-from-large'); + } + if ($newNavbarEl.hasClass('sliding') || $newNavbarEl.children('.navbar-inner.sliding').length) { + $newNavbarEl.find('.title, .left, .right, .left .icon, .subnavbar').transform(''); + } else { + $newNavbarEl.find('.sliding').transform(''); + } + if ($oldNavbarEl.hasClass('sliding') || $oldNavbarEl.children('.navbar-inner.sliding').length) { + $oldNavbarEl.find('.title, .left, .right, .left .icon, .subnavbar').transform(''); + } else { + $oldNavbarEl.find('.sliding').transform(''); + } + } + router.$el.removeClass(routerTransitionClass); + if (callback) { callback(); } + } + + (direction === 'forward' ? $newPageEl : $oldPageEl).animationEnd(function () { + onDone(); + }); + + // Animate + if (dynamicNavbar) { + // Prepare Navbars + animateNavbars(0); + Utils.nextFrame(function () { + // Add class, start animation + animateNavbars(1); + router.$el.addClass(routerTransitionClass); + }); + } else { + // Add class, start animation + router.$el.addClass(routerTransitionClass); + } + }; + + Router.prototype.removeModal = function removeModal (modalEl) { + var router = this; + router.removeEl(modalEl); + }; + // eslint-disable-next-line + Router.prototype.removeTabContent = function removeTabContent (tabEl) { + var $tabEl = $(tabEl); + $tabEl.html(''); + }; + + Router.prototype.removeNavbar = function removeNavbar (el) { + var router = this; + router.removeEl(el); + }; + + Router.prototype.removePage = function removePage (el) { + var $el = $(el); + var f7Page = $el && $el[0] && $el[0].f7Page; + var router = this; + if (f7Page && f7Page.route && f7Page.route.route && f7Page.route.route.keepAlive) { + $el.remove(); + return; + } + router.removeEl(el); + }; + + Router.prototype.removeEl = function removeEl (el) { + if (!el) { return; } + var router = this; + var $el = $(el); + if ($el.length === 0) { return; } + $el.find('.tab').each(function (tabIndex, tabEl) { + $(tabEl).children().each(function (index, tabChild) { + if (tabChild.f7Component) { + $(tabChild).trigger('tab:beforeremove'); + tabChild.f7Component.$destroy(); + } + }); + }); + if ($el[0].f7Component && $el[0].f7Component.$destroy) { + $el[0].f7Component.$destroy(); + } + if (!router.params.removeElements) { + return; + } + if (router.params.removeElementsWithTimeout) { + setTimeout(function () { + $el.remove(); + }, router.params.removeElementsTimeout); + } else { + $el.remove(); + } + }; + + Router.prototype.getPageEl = function getPageEl (content) { + var router = this; + if (typeof content === 'string') { + router.tempDom.innerHTML = content; + } else { + if ($(content).hasClass('page')) { + return content; + } + router.tempDom.innerHTML = ''; + $(router.tempDom).append(content); + } + + return router.findElement('.page', router.tempDom); + }; + + Router.prototype.findElement = function findElement (stringSelector, container, notStacked) { + var router = this; + var view = router.view; + var app = router.app; + + // Modals Selector + var modalsSelector = '.popup, .dialog, .popover, .actions-modal, .sheet-modal, .login-screen, .page'; + + var $container = $(container); + var selector = stringSelector; + if (notStacked) { selector += ':not(.stacked)'; } + + var found = $container + .find(selector) + .filter(function (index, el) { return $(el).parents(modalsSelector).length === 0; }); + + if (found.length > 1) { + if (typeof view.selector === 'string') { + // Search in related view + found = $container.find(((view.selector) + " " + selector)); + } + if (found.length > 1) { + // Search in main view + found = $container.find(("." + (app.params.viewMainClass) + " " + selector)); + } + } + if (found.length === 1) { return found; } + + // Try to find not stacked + if (!notStacked) { found = router.findElement(selector, $container, true); } + if (found && found.length === 1) { return found; } + if (found && found.length > 1) { return $(found[0]); } + return undefined; + }; + + Router.prototype.flattenRoutes = function flattenRoutes (routes) { + if ( routes === void 0 ) routes = this.routes; + + var router = this; + var flattenedRoutes = []; + routes.forEach(function (route) { + var hasTabRoutes = false; + if ('tabs' in route && route.tabs) { + var mergedPathsRoutes = route.tabs.map(function (tabRoute) { + var tRoute = Utils.extend({}, route, { + path: (((route.path) + "/" + (tabRoute.path))).replace('///', '/').replace('//', '/'), + parentPath: route.path, + tab: tabRoute, + }); + delete tRoute.tabs; + delete tRoute.routes; + return tRoute; + }); + hasTabRoutes = true; + flattenedRoutes = flattenedRoutes.concat(router.flattenRoutes(mergedPathsRoutes)); + } + if ('detailRoutes' in route) { + var mergedPathsRoutes$1 = route.detailRoutes.map(function (detailRoute) { + var dRoute = Utils.extend({}, detailRoute); + dRoute.masterRoute = route; + dRoute.masterRoutePath = route.path; + return dRoute; + }); + flattenedRoutes = flattenedRoutes.concat(route, router.flattenRoutes(mergedPathsRoutes$1)); + } + if ('routes' in route) { + var mergedPathsRoutes$2 = route.routes.map(function (childRoute) { + var cRoute = Utils.extend({}, childRoute); + cRoute.path = (((route.path) + "/" + (cRoute.path))).replace('///', '/').replace('//', '/'); + return cRoute; + }); + if (hasTabRoutes) { + flattenedRoutes = flattenedRoutes.concat(router.flattenRoutes(mergedPathsRoutes$2)); + } else { + flattenedRoutes = flattenedRoutes.concat(route, router.flattenRoutes(mergedPathsRoutes$2)); + } + } + if (!('routes' in route) && !('tabs' in route && route.tabs) && !('detailRoutes' in route)) { + flattenedRoutes.push(route); + } + }); + return flattenedRoutes; + }; + + // eslint-disable-next-line + Router.prototype.parseRouteUrl = function parseRouteUrl (url) { + if (!url) { return {}; } + var query = Utils.parseUrlQuery(url); + var hash = url.split('#')[1]; + var params = {}; + var path = url.split('#')[0].split('?')[0]; + return { + query: query, + hash: hash, + params: params, + url: url, + path: path, + }; + }; + + Router.prototype.generateUrl = function generateUrl (parameters) { + if ( parameters === void 0 ) parameters = {}; + + if (typeof parameters === 'string') { + return parameters; + } + var name = parameters.name; + var path = parameters.path; + var params = parameters.params; + var query = parameters.query; + if (!name && !path) { + throw new Error('Framework7: "name" or "path" parameter is required'); + } + var router = this; + var route = name + ? router.findRouteByKey('name', name) + : router.findRouteByKey('path', path); + + if (!route) { + if (name) { + throw new Error(("Framework7: route with name \"" + name + "\" not found")); + } else { + throw new Error(("Framework7: route with path \"" + path + "\" not found")); + } + } + var url = router.constructRouteUrl(route, { params: params, query: query }); + if (!url) { + throw new Error(("Framework7: can't construct URL for route with name \"" + name + "\"")); + } + return url; + }; + + // eslint-disable-next-line + Router.prototype.constructRouteUrl = function constructRouteUrl (route, ref) { + if ( ref === void 0 ) ref = {}; + var params = ref.params; + var query = ref.query; + + var path = route.path; + var toUrl = compile(path); + var url; + try { + url = toUrl(params || {}); + } catch (error) { + throw new Error(("Framework7: error constructing route URL from passed params:\nRoute: " + path + "\n" + (error.toString()))); + } + + if (query) { + if (typeof query === 'string') { url += "?" + query; } + else { url += "?" + (Utils.serializeObject(query)); } + } + + return url; + }; + + Router.prototype.findTabRoute = function findTabRoute (tabEl) { + var router = this; + var $tabEl = $(tabEl); + var parentPath = router.currentRoute.route.parentPath; + var tabId = $tabEl.attr('id'); + var flattenedRoutes = router.flattenRoutes(router.routes); + var foundTabRoute; + flattenedRoutes.forEach(function (route) { + if ( + route.parentPath === parentPath + && route.tab + && route.tab.id === tabId + ) { + foundTabRoute = route; + } + }); + return foundTabRoute; + }; + + Router.prototype.findRouteByKey = function findRouteByKey (key, value) { + var router = this; + var routes = router.routes; + var flattenedRoutes = router.flattenRoutes(routes); + var matchingRoute; + + flattenedRoutes.forEach(function (route) { + if (matchingRoute) { return; } + if (route[key] === value) { + matchingRoute = route; + } + }); + return matchingRoute; + }; + + Router.prototype.findMatchingRoute = function findMatchingRoute (url) { + if (!url) { return undefined; } + var router = this; + var routes = router.routes; + var flattenedRoutes = router.flattenRoutes(routes); + var ref = router.parseRouteUrl(url); + var path = ref.path; + var query = ref.query; + var hash = ref.hash; + var params = ref.params; + var matchingRoute; + flattenedRoutes.forEach(function (route) { + if (matchingRoute) { return; } + var keys = []; + + var pathsToMatch = [route.path]; + if (route.alias) { + if (typeof route.alias === 'string') { pathsToMatch.push(route.alias); } + else if (Array.isArray(route.alias)) { + route.alias.forEach(function (aliasPath) { + pathsToMatch.push(aliasPath); + }); + } + } + + var matched; + pathsToMatch.forEach(function (pathToMatch) { + if (matched) { return; } + matched = pathToRegexp(pathToMatch, keys).exec(path); + }); + + if (matched) { + keys.forEach(function (keyObj, index) { + if (typeof keyObj.name === 'number') { return; } + var paramValue = matched[index + 1]; + if (typeof paramValue === 'undefined' || paramValue === null) { + params[keyObj.name] = paramValue; + } else { + params[keyObj.name] = decodeURIComponent(paramValue); + } + }); + + var parentPath; + if (route.parentPath) { + parentPath = path.split('/').slice(0, route.parentPath.split('/').length - 1).join('/'); + } + + matchingRoute = { + query: query, + hash: hash, + params: params, + url: url, + path: path, + parentPath: parentPath, + route: route, + name: route.name, + }; + } + }); + return matchingRoute; + }; + + // eslint-disable-next-line + Router.prototype.replaceRequestUrlParams = function replaceRequestUrlParams (url, options) { + if ( url === void 0 ) url = ''; + if ( options === void 0 ) options = {}; + + var compiledUrl = url; + if (typeof compiledUrl === 'string' + && compiledUrl.indexOf('{{') >= 0 + && options + && options.route + && options.route.params + && Object.keys(options.route.params).length + ) { + Object.keys(options.route.params).forEach(function (paramName) { + var regExp = new RegExp(("{{" + paramName + "}}"), 'g'); + compiledUrl = compiledUrl.replace(regExp, options.route.params[paramName] || ''); + }); + } + return compiledUrl; + }; + + Router.prototype.removeFromXhrCache = function removeFromXhrCache (url) { + var router = this; + var xhrCache = router.cache.xhr; + var index = false; + for (var i = 0; i < xhrCache.length; i += 1) { + if (xhrCache[i].url === url) { index = i; } + } + if (index !== false) { xhrCache.splice(index, 1); } + }; + + Router.prototype.xhrRequest = function xhrRequest (requestUrl, options) { + var router = this; + var params = router.params; + var ignoreCache = options.ignoreCache; + var url = requestUrl; + + var hasQuery = url.indexOf('?') >= 0; + if (params.passRouteQueryToRequest + && options + && options.route + && options.route.query + && Object.keys(options.route.query).length + ) { + url += "" + (hasQuery ? '&' : '?') + (Utils.serializeObject(options.route.query)); + hasQuery = true; + } + + if (params.passRouteParamsToRequest + && options + && options.route + && options.route.params + && Object.keys(options.route.params).length + ) { + url += "" + (hasQuery ? '&' : '?') + (Utils.serializeObject(options.route.params)); + hasQuery = true; + } + + if (url.indexOf('{{') >= 0) { + url = router.replaceRequestUrlParams(url, options); + } + // should we ignore get params or not + if (params.xhrCacheIgnoreGetParameters && url.indexOf('?') >= 0) { + url = url.split('?')[0]; + } + return new Promise(function (resolve, reject) { + if (params.xhrCache && !ignoreCache && url.indexOf('nocache') < 0 && params.xhrCacheIgnore.indexOf(url) < 0) { + for (var i = 0; i < router.cache.xhr.length; i += 1) { + var cachedUrl = router.cache.xhr[i]; + if (cachedUrl.url === url) { + // Check expiration + if (Utils.now() - cachedUrl.time < params.xhrCacheDuration) { + // Load from cache + resolve(cachedUrl.content); + return; + } + } + } + } + router.xhr = router.app.request({ + url: url, + method: 'GET', + beforeSend: function beforeSend(xhr) { + router.emit('routerAjaxStart', xhr, options); + }, + complete: function complete(xhr, status) { + router.emit('routerAjaxComplete', xhr); + if ((status !== 'error' && status !== 'timeout' && (xhr.status >= 200 && xhr.status < 300)) || xhr.status === 0) { + if (params.xhrCache && xhr.responseText !== '') { + router.removeFromXhrCache(url); + router.cache.xhr.push({ + url: url, + time: Utils.now(), + content: xhr.responseText, + }); + } + router.emit('routerAjaxSuccess', xhr, options); + resolve(xhr.responseText); + } else { + router.emit('routerAjaxError', xhr, options); + reject(xhr); + } + }, + error: function error(xhr) { + router.emit('routerAjaxError', xhr, options); + reject(xhr); + }, + }); + }); + }; + + Router.prototype.setNavbarPosition = function setNavbarPosition ($el, position, ariaHidden) { + var router = this; + $el.removeClass('navbar-previous navbar-current navbar-next'); + if (position) { + $el.addClass(("navbar-" + position)); + } + + if (ariaHidden === false) { + $el.removeAttr('aria-hidden'); + } else if (ariaHidden === true) { + $el.attr('aria-hidden', 'true'); + } + $el.trigger('navbar:position', { position: position }); + router.emit('navbarPosition', $el[0], position); + }; + + Router.prototype.setPagePosition = function setPagePosition ($el, position, ariaHidden) { + var router = this; + $el.removeClass('page-previous page-current page-next'); + $el.addClass(("page-" + position)); + if (ariaHidden === false) { + $el.removeAttr('aria-hidden'); + } else if (ariaHidden === true) { + $el.attr('aria-hidden', 'true'); + } + $el.trigger('page:position', { position: position }); + router.emit('pagePosition', $el[0], position); + }; + + // Remove theme elements + Router.prototype.removeThemeElements = function removeThemeElements (el) { + var router = this; + var theme = router.app.theme; + var toRemove; + if (theme === 'ios') { + toRemove = '.md-only, .aurora-only, .if-md, .if-aurora, .if-not-ios, .not-ios'; + } else if (theme === 'md') { + toRemove = '.ios-only, .aurora-only, .if-ios, .if-aurora, .if-not-md, .not-md'; + } else if (theme === 'aurora') { + toRemove = '.ios-only, .md-only, .if-ios, .if-md, .if-not-aurora, .not-aurora'; + } + $(el).find(toRemove).remove(); + }; + + Router.prototype.getPageData = function getPageData (pageEl, navbarEl, from, to, route, pageFromEl) { + if ( route === void 0 ) route = {}; + + var router = this; + var $pageEl = $(pageEl).eq(0); + var $navbarEl = $(navbarEl).eq(0); + var currentPage = $pageEl[0].f7Page || {}; + var direction; + var pageFrom; + if ((from === 'next' && to === 'current') || (from === 'current' && to === 'previous')) { direction = 'forward'; } + if ((from === 'current' && to === 'next') || (from === 'previous' && to === 'current')) { direction = 'backward'; } + if (currentPage && !currentPage.fromPage) { + var $pageFromEl = $(pageFromEl); + if ($pageFromEl.length) { + pageFrom = $pageFromEl[0].f7Page; + } + } + pageFrom = currentPage.pageFrom || pageFrom; + if (pageFrom && pageFrom.pageFrom) { + pageFrom.pageFrom = null; + } + var page = { + app: router.app, + view: router.view, + router: router, + $el: $pageEl, + el: $pageEl[0], + $pageEl: $pageEl, + pageEl: $pageEl[0], + $navbarEl: $navbarEl, + navbarEl: $navbarEl[0], + name: $pageEl.attr('data-name'), + position: from, + from: from, + to: to, + direction: direction, + route: currentPage.route ? currentPage.route : route, + pageFrom: pageFrom, + }; + + $pageEl[0].f7Page = page; + return page; + }; + + // Callbacks + Router.prototype.pageCallback = function pageCallback (callback, pageEl, navbarEl, from, to, options, pageFromEl) { + if ( options === void 0 ) options = {}; + + if (!pageEl) { return; } + var router = this; + var $pageEl = $(pageEl); + if (!$pageEl.length) { return; } + var $navbarEl = $(navbarEl); + var route = options.route; + var restoreScrollTopOnBack = router.params.restoreScrollTopOnBack + && !( + router.params.masterDetailBreakpoint > 0 + && $pageEl.hasClass('page-master') + && router.app.width >= router.params.masterDetailBreakpoint + ); + var keepAlive = $pageEl[0].f7Page && $pageEl[0].f7Page.route && $pageEl[0].f7Page.route.route && $pageEl[0].f7Page.route.route.keepAlive; + + if (callback === 'beforeRemove' && keepAlive) { + callback = 'beforeUnmount'; // eslint-disable-line + } + + var camelName = "page" + (callback[0].toUpperCase() + callback.slice(1, callback.length)); + var colonName = "page:" + (callback.toLowerCase()); + + var page = {}; + if (callback === 'beforeRemove' && $pageEl[0].f7Page) { + page = Utils.extend($pageEl[0].f7Page, { from: from, to: to, position: from }); + } else { + page = router.getPageData($pageEl[0], $navbarEl[0], from, to, route, pageFromEl); + } + page.swipeBack = !!options.swipeBack; + + var ref = options.route ? options.route.route : {}; + var on = ref.on; if ( on === void 0 ) on = {}; + var once = ref.once; if ( once === void 0 ) once = {}; + if (options.on) { + Utils.extend(on, options.on); + } + if (options.once) { + Utils.extend(once, options.once); + } + + function attachEvents() { + if ($pageEl[0].f7RouteEventsAttached) { return; } + $pageEl[0].f7RouteEventsAttached = true; + if (on && Object.keys(on).length > 0) { + $pageEl[0].f7RouteEventsOn = on; + Object.keys(on).forEach(function (eventName) { + on[eventName] = on[eventName].bind(router); + $pageEl.on(Utils.eventNameToColonCase(eventName), on[eventName]); + }); + } + if (once && Object.keys(once).length > 0) { + $pageEl[0].f7RouteEventsOnce = once; + Object.keys(once).forEach(function (eventName) { + once[eventName] = once[eventName].bind(router); + $pageEl.once(Utils.eventNameToColonCase(eventName), once[eventName]); + }); + } + } + + function detachEvents() { + if (!$pageEl[0].f7RouteEventsAttached) { return; } + if ($pageEl[0].f7RouteEventsOn) { + Object.keys($pageEl[0].f7RouteEventsOn).forEach(function (eventName) { + $pageEl.off(Utils.eventNameToColonCase(eventName), $pageEl[0].f7RouteEventsOn[eventName]); + }); + } + if ($pageEl[0].f7RouteEventsOnce) { + Object.keys($pageEl[0].f7RouteEventsOnce).forEach(function (eventName) { + $pageEl.off(Utils.eventNameToColonCase(eventName), $pageEl[0].f7RouteEventsOnce[eventName]); + }); + } + $pageEl[0].f7RouteEventsAttached = null; + $pageEl[0].f7RouteEventsOn = null; + $pageEl[0].f7RouteEventsOnce = null; + delete $pageEl[0].f7RouteEventsAttached; + delete $pageEl[0].f7RouteEventsOn; + delete $pageEl[0].f7RouteEventsOnce; + } + + if (callback === 'mounted') { + attachEvents(); + } + if (callback === 'init') { + if (restoreScrollTopOnBack && (from === 'previous' || !from) && to === 'current' && router.scrollHistory[page.route.url] && !$pageEl.hasClass('no-restore-scroll')) { + var $pageContent = $pageEl.find('.page-content'); + if ($pageContent.length > 0) { + // eslint-disable-next-line + $pageContent = $pageContent.filter(function (pageContentIndex, pageContentEl) { + return ( + $(pageContentEl).parents('.tab:not(.tab-active)').length === 0 + && !$(pageContentEl).is('.tab:not(.tab-active)') + ); + }); + } + $pageContent.scrollTop(router.scrollHistory[page.route.url]); + } + attachEvents(); + if ($pageEl[0].f7PageInitialized) { + $pageEl.trigger('page:reinit', page); + router.emit('pageReinit', page); + return; + } + $pageEl[0].f7PageInitialized = true; + } + if (restoreScrollTopOnBack && callback === 'beforeOut' && from === 'current' && to === 'previous') { + // Save scroll position + var $pageContent$1 = $pageEl.find('.page-content'); + if ($pageContent$1.length > 0) { + // eslint-disable-next-line + $pageContent$1 = $pageContent$1.filter(function (pageContentIndex, pageContentEl) { + return ( + $(pageContentEl).parents('.tab:not(.tab-active)').length === 0 + && !$(pageContentEl).is('.tab:not(.tab-active)') + ); + }); + } + router.scrollHistory[page.route.url] = $pageContent$1.scrollTop(); + } + if (restoreScrollTopOnBack && callback === 'beforeOut' && from === 'current' && to === 'next') { + // Delete scroll position + delete router.scrollHistory[page.route.url]; + } + + $pageEl.trigger(colonName, page); + router.emit(camelName, page); + + if (callback === 'beforeRemove' || callback === 'beforeUnmount') { + detachEvents(); + if (!keepAlive) { + if ($pageEl[0].f7Page && $pageEl[0].f7Page.navbarEl) { + delete $pageEl[0].f7Page.navbarEl.f7Page; + } + $pageEl[0].f7Page = null; + } + } + }; + + Router.prototype.saveHistory = function saveHistory () { + var router = this; + router.view.history = router.history; + if (router.params.pushState) { + win.localStorage[("f7router-" + (router.view.id) + "-history")] = JSON.stringify(router.history); + } + }; + + Router.prototype.restoreHistory = function restoreHistory () { + var router = this; + if (router.params.pushState && win.localStorage[("f7router-" + (router.view.id) + "-history")]) { + router.history = JSON.parse(win.localStorage[("f7router-" + (router.view.id) + "-history")]); + router.view.history = router.history; + } + }; + + Router.prototype.clearHistory = function clearHistory () { + var router = this; + router.history = []; + if (router.view) { router.view.history = []; } + router.saveHistory(); + }; + + Router.prototype.updateCurrentUrl = function updateCurrentUrl (newUrl) { + var router = this; + appRouterCheck(router, 'updateCurrentUrl'); + // Update history + if (router.history.length) { + router.history[router.history.length - 1] = newUrl; + } else { + router.history.push(newUrl); + } + + // Update current route params + var ref = router.parseRouteUrl(newUrl); + var query = ref.query; + var hash = ref.hash; + var params = ref.params; + var url = ref.url; + var path = ref.path; + if (router.currentRoute) { + Utils.extend(router.currentRoute, { + query: query, + hash: hash, + params: params, + url: url, + path: path, + }); + } + + if (router.params.pushState) { + var pushStateRoot = router.params.pushStateRoot || ''; + History.replace( + router.view.id, + { + url: newUrl, + }, + pushStateRoot + router.params.pushStateSeparator + newUrl + ); + } + + // Save History + router.saveHistory(); + + router.emit('routeUrlUpdate', router.currentRoute, router); + }; + + Router.prototype.init = function init () { + var router = this; + var app = router.app; + var view = router.view; + + // Init Swipeback + if ( + (view && router.params.iosSwipeBack && app.theme === 'ios') + || (view && router.params.mdSwipeBack && app.theme === 'md') + || (view && router.params.auroraSwipeBack && app.theme === 'aurora') + ) { + SwipeBack(router); + } + + var initUrl = router.params.url; + var documentUrl = doc.location.href.split(doc.location.origin)[1]; + var historyRestored; + var ref = router.params; + var pushState = ref.pushState; + var pushStateOnLoad = ref.pushStateOnLoad; + var pushStateSeparator = ref.pushStateSeparator; + var pushStateAnimateOnLoad = ref.pushStateAnimateOnLoad; + var ref$1 = router.params; + var pushStateRoot = ref$1.pushStateRoot; + if (win.cordova && pushState && !pushStateSeparator && !pushStateRoot && doc.location.pathname.indexOf('index.html')) { + // eslint-disable-next-line + console.warn('Framework7: wrong or not complete pushState configuration, trying to guess pushStateRoot'); + pushStateRoot = doc.location.pathname.split('index.html')[0]; + } + if (!pushState || !pushStateOnLoad) { + if (!initUrl) { + initUrl = documentUrl; + } + if (doc.location.search && initUrl.indexOf('?') < 0) { + initUrl += doc.location.search; + } + if (doc.location.hash && initUrl.indexOf('#') < 0) { + initUrl += doc.location.hash; + } + } else { + if (pushStateRoot && documentUrl.indexOf(pushStateRoot) >= 0) { + documentUrl = documentUrl.split(pushStateRoot)[1]; + if (documentUrl === '') { documentUrl = '/'; } + } + if (pushStateSeparator.length > 0 && documentUrl.indexOf(pushStateSeparator) >= 0) { + initUrl = documentUrl.split(pushStateSeparator)[1]; + } else { + initUrl = documentUrl; + } + router.restoreHistory(); + if (router.history.indexOf(initUrl) >= 0) { + router.history = router.history.slice(0, router.history.indexOf(initUrl) + 1); + } else if (router.params.url === initUrl) { + router.history = [initUrl]; + } else if (History.state && History.state[view.id] && History.state[view.id].url === router.history[router.history.length - 1]) { + initUrl = router.history[router.history.length - 1]; + } else { + router.history = [documentUrl.split(pushStateSeparator)[0] || '/', initUrl]; + } + if (router.history.length > 1) { + historyRestored = true; + } else { + router.history = []; + } + router.saveHistory(); + } + var currentRoute; + if (router.history.length > 1) { + // Will load page + currentRoute = router.findMatchingRoute(router.history[0]); + if (!currentRoute) { + currentRoute = Utils.extend(router.parseRouteUrl(router.history[0]), { + route: { + url: router.history[0], + path: router.history[0].split('?')[0], + }, + }); + } + } else { + // Don't load page + currentRoute = router.findMatchingRoute(initUrl); + if (!currentRoute) { + currentRoute = Utils.extend(router.parseRouteUrl(initUrl), { + route: { + url: initUrl, + path: initUrl.split('?')[0], + }, + }); + } + } + + if (router.params.stackPages) { + router.$el.children('.page').each(function (index, pageEl) { + var $pageEl = $(pageEl); + router.initialPages.push($pageEl[0]); + if (router.dynamicNavbar && $pageEl.children('.navbar').length > 0) { + router.initialNavbars.push($pageEl.children('.navbar')[0]); + } + }); + } + + if (router.$el.children('.page:not(.stacked)').length === 0 && initUrl && router.params.loadInitialPage) { + // No pages presented in DOM, reload new page + router.navigate(initUrl, { + initial: true, + reloadCurrent: true, + pushState: false, + }); + } else if (router.$el.children('.page:not(.stacked)').length) { + // Init current DOM page + var hasTabRoute; + router.currentRoute = currentRoute; + router.$el.children('.page:not(.stacked)').each(function (index, pageEl) { + var $pageEl = $(pageEl); + var $navbarEl; + router.setPagePosition($pageEl, 'current'); + if (router.dynamicNavbar) { + $navbarEl = $pageEl.children('.navbar'); + if ($navbarEl.length > 0) { + if (!router.$navbarsEl.parents(doc).length) { + router.$el.prepend(router.$navbarsEl); + } + router.setNavbarPosition($navbarEl, 'current'); + router.$navbarsEl.append($navbarEl); + if ($navbarEl.children('.title-large').length) { + $navbarEl.addClass('navbar-large'); + } + $pageEl.children('.navbar').remove(); + } else { + router.$navbarsEl.addClass('navbar-hidden'); + if ($navbarEl.children('.title-large').length) { + router.$navbarsEl.addClass('navbar-hidden navbar-large-hidden'); + } + } + } + if (router.currentRoute && router.currentRoute.route && router.currentRoute.route.master && router.params.masterDetailBreakpoint > 0) { + $pageEl.addClass('page-master'); + $pageEl.trigger('page:role', { role: 'master' }); + if ($navbarEl && $navbarEl.length) { + $navbarEl.addClass('navbar-master'); + } + view.checkMasterDetailBreakpoint(); + } + var initOptions = { + route: router.currentRoute, + }; + if (router.currentRoute && router.currentRoute.route && router.currentRoute.route.options) { + Utils.extend(initOptions, router.currentRoute.route.options); + } + router.currentPageEl = $pageEl[0]; + if (router.dynamicNavbar && $navbarEl.length) { + router.currentNavbarEl = $navbarEl[0]; + } + router.removeThemeElements($pageEl); + if (router.dynamicNavbar && $navbarEl.length) { + router.removeThemeElements($navbarEl); + } + if (initOptions.route.route.tab) { + hasTabRoute = true; + router.tabLoad(initOptions.route.route.tab, Utils.extend({}, initOptions)); + } + router.pageCallback('init', $pageEl, $navbarEl, 'current', undefined, initOptions); + }); + if (historyRestored) { + router.navigate(initUrl, { + initial: true, + pushState: false, + history: false, + animate: pushStateAnimateOnLoad, + once: { + pageAfterIn: function pageAfterIn() { + var preloadPreviousPage = router.params.preloadPreviousPage || router.params[((app.theme) + "SwipeBack")]; + if (preloadPreviousPage && router.history.length > 2) { + router.back({ preload: true }); + } + }, + }, + }); + } + if (!historyRestored && !hasTabRoute) { + router.history.push(initUrl); + router.saveHistory(); + } + } + if (initUrl && pushState && pushStateOnLoad && (!History.state || !History.state[view.id])) { + History.initViewState(view.id, { + url: initUrl, + }); + } + router.emit('local::init routerInit', router); + }; + + Router.prototype.destroy = function destroy () { + var router = this; + + router.emit('local::destroy routerDestroy', router); + + // Delete props & methods + Object.keys(router).forEach(function (routerProp) { + router[routerProp] = null; + delete router[routerProp]; + }); + + router = null; + }; + + return Router; + }(Framework7Class)); + + // Load + Router.prototype.forward = forward; + Router.prototype.load = load; + Router.prototype.navigate = navigate; + Router.prototype.refreshPage = refreshPage; + // Tab + Router.prototype.tabLoad = tabLoad; + Router.prototype.tabRemove = tabRemove; + // Modal + Router.prototype.modalLoad = modalLoad; + Router.prototype.modalRemove = modalRemove; + // Back + Router.prototype.backward = backward; + Router.prototype.loadBack = loadBack; + Router.prototype.back = back; + // Clear history + Router.prototype.clearPreviousHistory = clearPreviousHistory; + + var RouterModule = { + name: 'router', + static: { + Router: Router, + }, + instance: { + cache: { + xhr: [], + templates: [], + components: [], + }, + }, + create: function create() { + var instance = this; + if (instance.app) { + // View Router + if (instance.params.router) { + instance.router = new Router(instance.app, instance); + } + } else { + // App Router + instance.router = new Router(instance); + } + }, + }; + + function resizableView(view) { + var app = view.app; + if (view.resizableInitialized) { return; } + Utils.extend(view, { + resizable: true, + resizableWidth: null, + resizableInitialized: true, + }); + var $htmlEl = $('html'); + var $el = view.$el; + if (!$el) { return; } + + var $resizeHandlerEl; + + var isTouched; + var isMoved; + var touchesStart = {}; + var touchesDiff; + var width; + + var minWidth; + var maxWidth; + + function transformCSSWidth(v) { + if (!v) { return null; } + if (v.indexOf('%') >= 0 || v.indexOf('vw') >= 0) { + return parseInt(v, 10) / 100 * app.width; + } + var newV = parseInt(v, 10); + if (Number.isNaN(newV)) { return null; } + return newV; + } + + function isResizable() { + return view.resizable && $el.hasClass('view-resizable') && $el.hasClass('view-master-detail'); + } + + function handleTouchStart(e) { + if (!isResizable()) { return; } + touchesStart.x = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX; + touchesStart.y = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY; + isMoved = false; + isTouched = true; + var $pageMasterEl = $el.children('.page-master'); + minWidth = transformCSSWidth($pageMasterEl.css('min-width')); + maxWidth = transformCSSWidth($pageMasterEl.css('max-width')); + } + function handleTouchMove(e) { + if (!isTouched) { return; } + e.f7PreventSwipePanel = true; + var pageX = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX; + + if (!isMoved) { + width = $resizeHandlerEl[0].offsetLeft + $resizeHandlerEl[0].offsetWidth; + $el.addClass('view-resizing'); + $htmlEl.css('cursor', 'col-resize'); + } + + isMoved = true; + + e.preventDefault(); + + touchesDiff = (pageX - touchesStart.x); + + var newWidth = width + touchesDiff; + if (minWidth && !Number.isNaN(minWidth)) { + newWidth = Math.max(newWidth, minWidth); + } + if (maxWidth && !Number.isNaN(maxWidth)) { + newWidth = Math.min(newWidth, maxWidth); + } + newWidth = Math.min(Math.max(newWidth, 0), app.width); + + view.resizableWidth = newWidth; + $htmlEl[0].style.setProperty('--f7-page-master-width', (newWidth + "px")); + + $el.trigger('view:resize', newWidth); + view.emit('local::resize viewResize', view, newWidth); + } + function handleTouchEnd() { + $('html').css('cursor', ''); + if (!isTouched || !isMoved) { + isTouched = false; + isMoved = false; + return; + } + isTouched = false; + isMoved = false; + + $htmlEl[0].style.setProperty('--f7-page-master-width', ((view.resizableWidth) + "px")); + $el.removeClass('view-resizing'); + } + + function handleResize() { + if (!view.resizableWidth) { return; } + minWidth = transformCSSWidth($resizeHandlerEl.css('min-width')); + maxWidth = transformCSSWidth($resizeHandlerEl.css('max-width')); + + if (minWidth && !Number.isNaN(minWidth) && view.resizableWidth < minWidth) { + view.resizableWidth = Math.max(view.resizableWidth, minWidth); + } + if (maxWidth && !Number.isNaN(maxWidth) && view.resizableWidth > maxWidth) { + view.resizableWidth = Math.min(view.resizableWidth, maxWidth); + } + view.resizableWidth = Math.min(Math.max(view.resizableWidth, 0), app.width); + + $htmlEl[0].style.setProperty('--f7-page-master-width', ((view.resizableWidth) + "px")); + } + + $resizeHandlerEl = view.$el.children('.view-resize-handler'); + if (!$resizeHandlerEl.length) { + view.$el.append('
                          '); + $resizeHandlerEl = view.$el.children('.view-resize-handler'); + } + view.$resizeHandlerEl = $resizeHandlerEl; + + $el.addClass('view-resizable'); + + // Add Events + var passive = Support.passiveListener ? { passive: true } : false; + + view.$el.on(app.touchEvents.start, '.view-resize-handler', handleTouchStart, passive); + app.on('touchmove:active', handleTouchMove); + app.on('touchend:passive', handleTouchEnd); + app.on('resize', handleResize); + view.on('beforeOpen', handleResize); + + view.once('viewDestroy', function () { + $el.removeClass('view-resizable'); + view.$resizeHandlerEl.remove(); + view.$el.off(app.touchEvents.start, '.view-resize-handler', handleTouchStart, passive); + app.off('touchmove:active', handleTouchMove); + app.off('touchend:passive', handleTouchEnd); + app.off('resize', handleResize); + view.off('beforeOpen', handleResize); + }); + } + + var View = /*@__PURE__*/(function (Framework7Class) { + function View(appInstance, el, viewParams) { + if ( viewParams === void 0 ) viewParams = {}; + + Framework7Class.call(this, viewParams, [appInstance]); + + var app = appInstance; + var $el = $(el); + var view = this; + + var defaults = { + routes: [], + routesAdd: [], + }; + + if ($el.length === 0) { + var message = 'Framework7: can\'t create a View instance because '; + message += (typeof el === 'string') + ? ("the selector \"" + el + "\" didn't match any element") + : 'el must be an HTMLElement or Dom7 object'; + + throw new Error(message); + } + + // Default View params + view.params = Utils.extend(defaults, app.params.view, viewParams); + + // Routes + if (view.params.routes.length > 0) { + view.routes = view.params.routes; + } else { + view.routes = [].concat(app.routes, view.params.routesAdd); + } + + // Selector + var selector; + if (typeof el === 'string') { selector = el; } + else { + // Supposed to be HTMLElement or Dom7 + selector = ($el.attr('id') ? ("#" + ($el.attr('id'))) : '') + ($el.attr('class') ? ("." + ($el.attr('class').replace(/ /g, '.').replace('.active', ''))) : ''); + } + + // DynamicNavbar + var $navbarsEl; + if (app.theme === 'ios' && view.params.iosDynamicNavbar) { + $navbarsEl = $el.children('.navbars').eq(0); + if ($navbarsEl.length === 0) { + $navbarsEl = $(''); + } + } + + // View Props + Utils.extend(false, view, { + app: app, + $el: $el, + el: $el[0], + name: view.params.name, + main: view.params.main || $el.hasClass('view-main'), + $navbarsEl: $navbarsEl, + navbarsEl: $navbarsEl ? $navbarsEl[0] : undefined, + selector: selector, + history: [], + scrollHistory: {}, + }); + + // Save in DOM + $el[0].f7View = view; + + // Install Modules + view.useModules(); + + // Add to app + app.views.push(view); + if (view.main) { + app.views.main = view; + } + if (view.name) { + app.views[view.name] = view; + } + + // Index + view.index = app.views.indexOf(view); + + // View ID + var viewId; + if (view.name) { + viewId = "view_" + (view.name); + } else if (view.main) { + viewId = 'view_main'; + } else { + viewId = "view_" + (view.index); + } + view.id = viewId; + + // Init View + if (app.initialized) { + view.init(); + } else { + app.on('init', function () { + view.init(); + }); + } + + return view; + } + + if ( Framework7Class ) View.__proto__ = Framework7Class; + View.prototype = Object.create( Framework7Class && Framework7Class.prototype ); + View.prototype.constructor = View; + + View.prototype.destroy = function destroy () { + var view = this; + var app = view.app; + + view.$el.trigger('view:beforedestroy'); + view.emit('local::beforeDestroy viewBeforeDestroy', view); + + app.off('resize', view.checkMasterDetailBreakpoint); + + if (view.main) { + app.views.main = null; + delete app.views.main; + } else if (view.name) { + app.views[view.name] = null; + delete app.views[view.name]; + } + view.$el[0].f7View = null; + delete view.$el[0].f7View; + + app.views.splice(app.views.indexOf(view), 1); + + // Destroy Router + if (view.params.router && view.router) { + view.router.destroy(); + } + + view.emit('local::destroy viewDestroy', view); + + // Delete props & methods + Object.keys(view).forEach(function (viewProp) { + view[viewProp] = null; + delete view[viewProp]; + }); + + view = null; + }; + + View.prototype.checkMasterDetailBreakpoint = function checkMasterDetailBreakpoint (force) { + var view = this; + var app = view.app; + var wasMasterDetail = view.$el.hasClass('view-master-detail'); + var isMasterDetail = app.width >= view.params.masterDetailBreakpoint && view.$el.children('.page-master').length; + if ((typeof force === 'undefined' && isMasterDetail) || force === true) { + view.$el.addClass('view-master-detail'); + if (!wasMasterDetail) { + view.emit('local::masterDetailBreakpoint viewMasterDetailBreakpoint', view); + view.$el.trigger('view:masterDetailBreakpoint'); + } + } else { + view.$el.removeClass('view-master-detail'); + if (wasMasterDetail) { + view.emit('local::masterDetailBreakpoint viewMasterDetailBreakpoint', view); + view.$el.trigger('view:masterDetailBreakpoint'); + } + } + }; + + View.prototype.initMasterDetail = function initMasterDetail () { + var view = this; + var app = view.app; + view.checkMasterDetailBreakpoint = view.checkMasterDetailBreakpoint.bind(view); + view.checkMasterDetailBreakpoint(); + if (view.params.masterDetailResizable) { + resizableView(view); + } + app.on('resize', view.checkMasterDetailBreakpoint); + }; + + View.prototype.init = function init () { + var view = this; + if (view.params.router) { + if (view.params.masterDetailBreakpoint > 0) { + view.initMasterDetail(); + } + view.router.init(); + view.$el.trigger('view:init'); + view.emit('local::init viewInit', view); + } + }; + + return View; + }(Framework7Class)); + + // Use Router + View.use(RouterModule); + + function initClicks(app) { + function handleClicks(e) { + var $clickedEl = $(e.target); + var $clickedLinkEl = $clickedEl.closest('a'); + var isLink = $clickedLinkEl.length > 0; + var url = isLink && $clickedLinkEl.attr('href'); + // const isTabLink = isLink && $clickedLinkEl.hasClass('tab-link') && ($clickedLinkEl.attr('data-tab') || (url && url.indexOf('#') === 0)); + + // Check if link is external + if (isLink) { + // eslint-disable-next-line + if ($clickedLinkEl.is(app.params.clicks.externalLinks) || (url && url.indexOf('javascript:') >= 0)) { + var target = $clickedLinkEl.attr('target'); + if ( + url + && win.cordova + && win.cordova.InAppBrowser + && (target === '_system' || target === '_blank') + ) { + e.preventDefault(); + win.cordova.InAppBrowser.open(url, target); + } + return; + } + } + + // Modules Clicks + Object.keys(app.modules).forEach(function (moduleName) { + var moduleClicks = app.modules[moduleName].clicks; + if (!moduleClicks) { return; } + if (e.preventF7Router) { return; } + Object.keys(moduleClicks).forEach(function (clickSelector) { + var matchingClickedElement = $clickedEl.closest(clickSelector).eq(0); + if (matchingClickedElement.length > 0) { + moduleClicks[clickSelector].call(app, matchingClickedElement, matchingClickedElement.dataset(), e); + } + }); + }); + + // Load Page + var clickedLinkData = {}; + if (isLink) { + e.preventDefault(); + clickedLinkData = $clickedLinkEl.dataset(); + } + + // Prevent Router + if (e.preventF7Router) { return; } + if ($clickedLinkEl.hasClass('prevent-router') || $clickedLinkEl.hasClass('router-prevent')) { return; } + + var validUrl = url && url.length > 0 && url[0] !== '#'; + if (validUrl || $clickedLinkEl.hasClass('back')) { + var view; + if (clickedLinkData.view && clickedLinkData.view === 'current') { + view = app.views.current; + } else if (clickedLinkData.view) { + view = $(clickedLinkData.view)[0].f7View; + } else { + view = $clickedEl.parents('.view')[0] && $clickedEl.parents('.view')[0].f7View; + if (!$clickedLinkEl.hasClass('back') && view && view.params.linksView) { + if (typeof view.params.linksView === 'string') { view = $(view.params.linksView)[0].f7View; } + else if (view.params.linksView instanceof View) { view = view.params.linksView; } + } + } + if (!view) { + if (app.views.main) { view = app.views.main; } + } + if (!view || !view.router) { return; } + if (clickedLinkData.context && typeof clickedLinkData.context === 'string') { + try { + clickedLinkData.context = JSON.parse(clickedLinkData.context); + } catch (err) { + // something wrong there + } + } + if ($clickedLinkEl[0].f7RouteProps) { + clickedLinkData.props = $clickedLinkEl[0].f7RouteProps; + } + if ($clickedLinkEl.hasClass('back')) { view.router.back(url, clickedLinkData); } + else { view.router.navigate(url, clickedLinkData); } + } + } + + app.on('click', handleClicks); + } + var ClicksModule = { + name: 'clicks', + params: { + clicks: { + // External Links + externalLinks: '.external', + }, + }, + on: { + init: function init() { + var app = this; + initClicks(app); + }, + }, + }; + + var HistoryModule = { + name: 'history', + static: { + history: History, + }, + on: { + init: function init() { + History.init(this); + }, + }, + }; + + var SW = { + registrations: [], + register: function register(path, scope) { + var app = this; + if (!('serviceWorker' in win.navigator) || !app.serviceWorker.container) { + return new Promise(function (resolve, reject) { + reject(new Error('Service worker is not supported')); + }); + } + return new Promise(function (resolve, reject) { + app.serviceWorker.container.register(path, (scope ? { scope: scope } : {})) + .then(function (reg) { + SW.registrations.push(reg); + app.emit('serviceWorkerRegisterSuccess', reg); + resolve(reg); + }).catch(function (error) { + app.emit('serviceWorkerRegisterError', error); + reject(error); + }); + }); + }, + unregister: function unregister(registration) { + var app = this; + if (!('serviceWorker' in win.navigator) || !app.serviceWorker.container) { + return new Promise(function (resolve, reject) { + reject(new Error('Service worker is not supported')); + }); + } + var registrations; + if (!registration) { registrations = SW.registrations; } + else if (Array.isArray(registration)) { registrations = registration; } + else { registrations = [registration]; } + return Promise.all(registrations.map(function (reg) { return new Promise(function (resolve, reject) { + reg.unregister() + .then(function () { + if (SW.registrations.indexOf(reg) >= 0) { + SW.registrations.splice(SW.registrations.indexOf(reg), 1); + } + app.emit('serviceWorkerUnregisterSuccess', reg); + resolve(); + }) + .catch(function (error) { + app.emit('serviceWorkerUnregisterError', reg, error); + reject(error); + }); + }); })); + }, + }; + + var ServiceWorkerModule = { + name: 'sw', + params: { + serviceWorker: { + path: undefined, + scope: undefined, + }, + }, + create: function create() { + var app = this; + Utils.extend(app, { + serviceWorker: { + container: ('serviceWorker' in win.navigator) ? win.navigator.serviceWorker : undefined, + registrations: SW.registrations, + register: SW.register.bind(app), + unregister: SW.unregister.bind(app), + }, + }); + }, + on: { + init: function init() { + if (!('serviceWorker' in win.navigator)) { return; } + var app = this; + if (!app.serviceWorker.container) { return; } + var paths = app.params.serviceWorker.path; + var scope = app.params.serviceWorker.scope; + if (!paths || (Array.isArray(paths) && !paths.length)) { return; } + var toRegister = Array.isArray(paths) ? paths : [paths]; + toRegister.forEach(function (path) { + app.serviceWorker.register(path, scope); + }); + }, + }, + }; + + var Statusbar = { + hide: function hide() { + if (Device.cordova && win.StatusBar) { + win.StatusBar.hide(); + } + }, + show: function show() { + if (Device.cordova && win.StatusBar) { + win.StatusBar.show(); + } + }, + onClick: function onClick() { + var app = this; + var pageContent; + if ($('.popup.modal-in').length > 0) { + // Check for opened popup + pageContent = $('.popup.modal-in').find('.page:not(.page-previous):not(.page-next):not(.cached)').find('.page-content'); + } else if ($('.panel.panel-in').length > 0) { + // Check for opened panel + pageContent = $('.panel.panel-in').find('.page:not(.page-previous):not(.page-next):not(.cached)').find('.page-content'); + } else if ($('.views > .view.tab-active').length > 0) { + // View in tab bar app layout + pageContent = $('.views > .view.tab-active').find('.page:not(.page-previous):not(.page-next):not(.cached)').find('.page-content'); + } else if ($('.views').length > 0) { + pageContent = $('.views').find('.page:not(.page-previous):not(.page-next):not(.cached)').find('.page-content'); + } else { + pageContent = app.root.children('.view').find('.page:not(.page-previous):not(.page-next):not(.cached)').find('.page-content'); + } + + if (pageContent && pageContent.length > 0) { + // Check for tab + if (pageContent.hasClass('tab')) { + pageContent = pageContent.parent('.tabs').children('.page-content.tab-active'); + } + if (pageContent.length > 0) { pageContent.scrollTop(0, 300); } + } + }, + setTextColor: function setTextColor(color) { + if (Device.cordova && win.StatusBar) { + if (color === 'white') { + win.StatusBar.styleLightContent(); + } else { + win.StatusBar.styleDefault(); + } + } + }, + setBackgroundColor: function setBackgroundColor(color) { + if (Device.cordova && win.StatusBar) { + win.StatusBar.backgroundColorByHexString(color); + } + }, + isVisible: function isVisible() { + if (Device.cordova && win.StatusBar) { + return win.StatusBar.isVisible; + } + return false; + }, + overlaysWebView: function overlaysWebView(overlays) { + if ( overlays === void 0 ) overlays = true; + + if (Device.cordova && win.StatusBar) { + win.StatusBar.overlaysWebView(overlays); + } + }, + init: function init() { + var app = this; + var params = app.params.statusbar; + if (!params.enabled) { return; } + + if (Device.cordova && win.StatusBar) { + if (params.scrollTopOnClick) { + $(win).on('statusTap', Statusbar.onClick.bind(app)); + } + if (Device.ios) { + if (params.iosOverlaysWebView) { + win.StatusBar.overlaysWebView(true); + } else { + win.StatusBar.overlaysWebView(false); + } + if (params.iosTextColor === 'white') { + win.StatusBar.styleLightContent(); + } else { + win.StatusBar.styleDefault(); + } + } + if (Device.android) { + if (params.androidOverlaysWebView) { + win.StatusBar.overlaysWebView(true); + } else { + win.StatusBar.overlaysWebView(false); + } + if (params.androidTextColor === 'white') { + win.StatusBar.styleLightContent(); + } else { + win.StatusBar.styleDefault(); + } + } + } + if (params.iosBackgroundColor && Device.ios) { + Statusbar.setBackgroundColor(params.iosBackgroundColor); + } + if (params.androidBackgroundColor && Device.android) { + Statusbar.setBackgroundColor(params.androidBackgroundColor); + } + }, + }; + + var Statusbar$1 = { + name: 'statusbar', + params: { + statusbar: { + enabled: true, + + scrollTopOnClick: true, + + iosOverlaysWebView: true, + iosTextColor: 'black', + iosBackgroundColor: null, + + androidOverlaysWebView: false, + androidTextColor: 'black', + androidBackgroundColor: null, + }, + }, + create: function create() { + var app = this; + Utils.extend(app, { + statusbar: { + hide: Statusbar.hide, + show: Statusbar.show, + overlaysWebView: Statusbar.overlaysWebView, + setTextColor: Statusbar.setTextColor, + setBackgroundColor: Statusbar.setBackgroundColor, + isVisible: Statusbar.isVisible, + init: Statusbar.init.bind(app), + }, + }); + }, + on: { + init: function init() { + var app = this; + Statusbar.init.call(app); + }, + }, + }; + + function getCurrentView(app) { + var $popoverView = $('.popover.modal-in .view'); + var $popupView = $('.popup.modal-in .view'); + var $panelView = $('.panel.panel-in .view'); + var $viewsEl = $('.views'); + if ($viewsEl.length === 0) { $viewsEl = app.root; } + // Find active view as tab + var $viewEl = $viewsEl.children('.view'); + if ($viewEl.length === 0) { + $viewEl = $viewsEl.children('.tabs').children('.view'); + } + // Propably in tabs or split view + if ($viewEl.length > 1) { + if ($viewEl.hasClass('tab')) { + // Tabs + $viewEl = $viewsEl.children('.view.tab-active'); + if ($viewEl.length === 0) { + $viewEl = $viewsEl.children('.tabs').children('.view.tab-active'); + } + } + } + if ($popoverView.length > 0 && $popoverView[0].f7View) { return $popoverView[0].f7View; } + if ($popupView.length > 0 && $popupView[0].f7View) { return $popupView[0].f7View; } + if ($panelView.length > 0 && $panelView[0].f7View) { return $panelView[0].f7View; } + if ($viewEl.length > 0) { + if ($viewEl.length === 1 && $viewEl[0].f7View) { return $viewEl[0].f7View; } + if ($viewEl.length > 1) { + return app.views.main; + } + } + return undefined; + } + + var View$1 = { + name: 'view', + params: { + view: { + name: undefined, + main: false, + router: true, + linksView: null, + stackPages: false, + xhrCache: true, + xhrCacheIgnore: [], + xhrCacheIgnoreGetParameters: false, + xhrCacheDuration: 1000 * 60 * 10, // Ten minutes + componentCache: true, + preloadPreviousPage: true, + allowDuplicateUrls: false, + reloadPages: false, + reloadDetail: false, + masterDetailBreakpoint: 0, + masterDetailResizable: false, + removeElements: true, + removeElementsWithTimeout: false, + removeElementsTimeout: 0, + restoreScrollTopOnBack: true, + unloadTabContent: true, + passRouteQueryToRequest: true, + passRouteParamsToRequest: false, + loadInitialPage: true, + // Swipe Back + iosSwipeBack: true, + iosSwipeBackAnimateShadow: true, + iosSwipeBackAnimateOpacity: true, + iosSwipeBackActiveArea: 30, + iosSwipeBackThreshold: 0, + mdSwipeBack: false, + mdSwipeBackAnimateShadow: true, + mdSwipeBackAnimateOpacity: false, + mdSwipeBackActiveArea: 30, + mdSwipeBackThreshold: 0, + auroraSwipeBack: false, + auroraSwipeBackAnimateShadow: false, + auroraSwipeBackAnimateOpacity: true, + auroraSwipeBackActiveArea: 30, + auroraSwipeBackThreshold: 0, + // Push State + pushState: false, + pushStateRoot: undefined, + pushStateAnimate: true, + pushStateAnimateOnLoad: false, + pushStateSeparator: '#!', + pushStateOnLoad: true, + // Animate Pages + animate: true, + // iOS Dynamic Navbar + iosDynamicNavbar: true, + // Animate iOS Navbar Back Icon + iosAnimateNavbarBackIcon: true, + // Delays + iosPageLoadDelay: 0, + mdPageLoadDelay: 0, + auroraPageLoadDelay: 0, + // Routes hooks + routesBeforeEnter: null, + routesBeforeLeave: null, + }, + }, + static: { + View: View, + }, + create: function create() { + var app = this; + Utils.extend(app, { + views: Utils.extend([], { + create: function create(el, params) { + return new View(app, el, params); + }, + get: function get(viewEl) { + var $viewEl = $(viewEl); + if ($viewEl.length && $viewEl[0].f7View) { return $viewEl[0].f7View; } + return undefined; + }, + }), + }); + Object.defineProperty(app.views, 'current', { + enumerable: true, + configurable: true, + get: function get() { + return getCurrentView(app); + }, + }); + // Alias + app.view = app.views; + }, + on: { + init: function init() { + var app = this; + $('.view-init').each(function (index, viewEl) { + if (viewEl.f7View) { return; } + var viewParams = $(viewEl).dataset(); + app.views.create(viewEl, viewParams); + }); + }, + 'modalOpen panelOpen': function onOpen(instance) { + var app = this; + instance.$el.find('.view-init').each(function (index, viewEl) { + if (viewEl.f7View) { return; } + var viewParams = $(viewEl).dataset(); + app.views.create(viewEl, viewParams); + }); + }, + 'modalBeforeDestroy panelBeforeDestroy': function onClose(instance) { + if (!instance || !instance.$el) { return; } + instance.$el.find('.view-init').each(function (index, viewEl) { + var view = viewEl.f7View; + if (!view) { return; } + view.destroy(); + }); + }, + }, + vnode: { + 'view-init': { + insert: function insert(vnode) { + var app = this; + var viewEl = vnode.elm; + if (viewEl.f7View) { return; } + var viewParams = $(viewEl).dataset(); + app.views.create(viewEl, viewParams); + }, + destroy: function destroy(vnode) { + var viewEl = vnode.elm; + var view = viewEl.f7View; + if (!view) { return; } + view.destroy(); + }, + }, + }, + }; + + var Navbar = { + size: function size(el) { + var app = this; + + var $el = $(el); + + if ($el.hasClass('navbars')) { + $el = $el.children('.navbar').each(function (index, navbarEl) { + app.navbar.size(navbarEl); + }); + return; + } + + var $innerEl = $el.children('.navbar-inner'); + if (!$innerEl.length) { return; } + + var needCenterTitle = ( + $innerEl.hasClass('navbar-inner-centered-title') + || app.params.navbar[((app.theme) + "CenterTitle")] + ); + var needLeftTitle = app.theme === 'ios' && !app.params.navbar[((app.theme) + "CenterTitle")]; + + if (!needCenterTitle && !needLeftTitle) { return; } + + if ( + $el.hasClass('stacked') + || $el.parents('.stacked').length > 0 + || $el.parents('.tab:not(.tab-active)').length > 0 + || $el.parents('.popup:not(.modal-in)').length > 0 + ) { + return; + } + + if (app.theme !== 'ios' && app.params.navbar[((app.theme) + "CenterTitle")]) { + $innerEl.addClass('navbar-inner-centered-title'); + } + if (app.theme === 'ios' && !app.params.navbar.iosCenterTitle) { + $innerEl.addClass('navbar-inner-left-title'); + } + + var $viewEl = $el.parents('.view').eq(0); + var left = app.rtl ? $innerEl.children('.right') : $innerEl.children('.left'); + var right = app.rtl ? $innerEl.children('.left') : $innerEl.children('.right'); + var title = $innerEl.children('.title'); + var subnavbar = $innerEl.children('.subnavbar'); + var noLeft = left.length === 0; + var noRight = right.length === 0; + var leftWidth = noLeft ? 0 : left.outerWidth(true); + var rightWidth = noRight ? 0 : right.outerWidth(true); + var titleWidth = title.outerWidth(true); + var navbarStyles = $innerEl.styles(); + var navbarWidth = $innerEl[0].offsetWidth; + var navbarInnerWidth = navbarWidth - parseInt(navbarStyles.paddingLeft, 10) - parseInt(navbarStyles.paddingRight, 10); + var isPrevious = $el.hasClass('navbar-previous'); + var sliding = $innerEl.hasClass('sliding'); + + var router; + var dynamicNavbar; + + if ($viewEl.length > 0 && $viewEl[0].f7View) { + router = $viewEl[0].f7View.router; + dynamicNavbar = router && router.dynamicNavbar; + } + + var currLeft; + var diff; + if (noRight) { + currLeft = navbarInnerWidth - titleWidth; + } + if (noLeft) { + currLeft = 0; + } + if (!noLeft && !noRight) { + currLeft = ((navbarInnerWidth - rightWidth - titleWidth) + leftWidth) / 2; + } + var requiredLeft = (navbarInnerWidth - titleWidth) / 2; + if (navbarInnerWidth - leftWidth - rightWidth > titleWidth) { + if (requiredLeft < leftWidth) { + requiredLeft = leftWidth; + } + if (requiredLeft + titleWidth > navbarInnerWidth - rightWidth) { + requiredLeft = navbarInnerWidth - rightWidth - titleWidth; + } + diff = requiredLeft - currLeft; + } else { + diff = 0; + } + + // RTL inverter + var inverter = app.rtl ? -1 : 1; + + if (dynamicNavbar && app.theme === 'ios') { + if (title.hasClass('sliding') || (title.length > 0 && sliding)) { + var titleLeftOffset = -(currLeft + diff) * inverter; + var titleRightOffset = (navbarInnerWidth - currLeft - diff - titleWidth) * inverter; + + if (isPrevious) { + if (router && router.params.iosAnimateNavbarBackIcon) { + var activeNavbarBackLink = $el.parent().find('.navbar-current').children('.left.sliding').find('.back .icon ~ span'); + if (activeNavbarBackLink.length > 0) { + titleLeftOffset += activeNavbarBackLink[0].offsetLeft; + } + } + } + title[0].f7NavbarLeftOffset = titleLeftOffset; + title[0].f7NavbarRightOffset = titleRightOffset; + } + if (!noLeft && (left.hasClass('sliding') || sliding)) { + if (app.rtl) { + left[0].f7NavbarLeftOffset = (-(navbarInnerWidth - left[0].offsetWidth) / 2) * inverter; + left[0].f7NavbarRightOffset = leftWidth * inverter; + } else { + left[0].f7NavbarLeftOffset = -leftWidth; + left[0].f7NavbarRightOffset = ((navbarInnerWidth - left[0].offsetWidth) / 2); + if (router && router.params.iosAnimateNavbarBackIcon && left.find('.back .icon').length > 0) { + if (left.find('.back .icon ~ span').length) { + var leftOffset = left[0].f7NavbarLeftOffset; + var rightOffset = left[0].f7NavbarRightOffset; + left[0].f7NavbarLeftOffset = 0; + left[0].f7NavbarRightOffset = 0; + left.find('.back .icon ~ span')[0].f7NavbarLeftOffset = leftOffset; + left.find('.back .icon ~ span')[0].f7NavbarRightOffset = rightOffset - left.find('.back .icon')[0].offsetWidth; + } + } + } + } + if (!noRight && (right.hasClass('sliding') || sliding)) { + if (app.rtl) { + right[0].f7NavbarLeftOffset = -rightWidth * inverter; + right[0].f7NavbarRightOffset = ((navbarInnerWidth - right[0].offsetWidth) / 2) * inverter; + } else { + right[0].f7NavbarLeftOffset = -(navbarInnerWidth - right[0].offsetWidth) / 2; + right[0].f7NavbarRightOffset = rightWidth; + } + } + if (subnavbar.length && (subnavbar.hasClass('sliding') || sliding)) { + subnavbar[0].f7NavbarLeftOffset = app.rtl ? subnavbar[0].offsetWidth : -subnavbar[0].offsetWidth; + subnavbar[0].f7NavbarRightOffset = -subnavbar[0].f7NavbarLeftOffset; + } + } + + // Center title + if (needCenterTitle) { + var titleLeft = diff; + if (app.rtl && noLeft && noRight && title.length > 0) { titleLeft = -titleLeft; } + title.css({ left: (titleLeft + "px") }); + } + }, + hide: function hide(el, animate, hideStatusbar) { + if ( animate === void 0 ) animate = true; + if ( hideStatusbar === void 0 ) hideStatusbar = false; + + var app = this; + var $el = $(el); + var isDynamic = $el.hasClass('navbar') && $el.parent('.navbars').length; + if (isDynamic) { $el = $el.parents('.navbars'); } + if (!$el.length) { return; } + if ($el.hasClass('navbar-hidden')) { return; } + var className = "navbar-hidden" + (animate ? ' navbar-transitioning' : ''); + var currentIsLarge = isDynamic + ? $el.find('.navbar-current .title-large').length + : $el.find('.title-large').length; + if (currentIsLarge) { + className += ' navbar-large-hidden'; + } + if (hideStatusbar) { + className += ' navbar-hidden-statusbar'; + } + $el.transitionEnd(function () { + $el.removeClass('navbar-transitioning'); + }); + $el.addClass(className); + if (isDynamic) { + $el.children('.navbar').each(function (index, subEl) { + $(subEl).trigger('navbar:hide'); + app.emit('navbarHide', subEl); + }); + } else { + $el.trigger('navbar:hide'); + app.emit('navbarHide', $el[0]); + } + }, + show: function show(el, animate) { + if ( el === void 0 ) el = '.navbar-hidden'; + if ( animate === void 0 ) animate = true; + + var app = this; + var $el = $(el); + var isDynamic = $el.hasClass('navbar') && $el.parent('.navbars').length; + if (isDynamic) { $el = $el.parents('.navbars'); } + if (!$el.length) { return; } + if (!$el.hasClass('navbar-hidden')) { return; } + if (animate) { + $el.addClass('navbar-transitioning'); + $el.transitionEnd(function () { + $el.removeClass('navbar-transitioning'); + }); + } + $el.removeClass('navbar-hidden navbar-large-hidden navbar-hidden-statusbar'); + if (isDynamic) { + $el.children('.navbar').each(function (index, subEl) { + $(subEl).trigger('navbar:show'); + app.emit('navbarShow', subEl); + }); + } else { + $el.trigger('navbar:show'); + app.emit('navbarShow', $el[0]); + } + }, + getElByPage: function getElByPage(page) { + var $pageEl; + var $navbarEl; + var pageData; + if (page.$navbarEl || page.$el) { + pageData = page; + $pageEl = page.$el; + } else { + $pageEl = $(page); + if ($pageEl.length > 0) { pageData = $pageEl[0].f7Page; } + } + if (pageData && pageData.$navbarEl && pageData.$navbarEl.length > 0) { + $navbarEl = pageData.$navbarEl; + } else if ($pageEl) { + $navbarEl = $pageEl.children('.navbar'); + } + if (!$navbarEl || ($navbarEl && $navbarEl.length === 0)) { return undefined; } + return $navbarEl[0]; + }, + getPageByEl: function getPageByEl(navbarEl) { + var $navbarEl = $(navbarEl); + if ($navbarEl.parents('.page').length) { + return $navbarEl.parents('.page')[0]; + } + var pageEl; + $navbarEl.parents('.view').find('.page').each(function (index, el) { + if (el && el.f7Page && el.f7Page.navbarEl && $navbarEl[0] === el.f7Page.navbarEl) { + pageEl = el; + } + }); + return pageEl; + }, + + collapseLargeTitle: function collapseLargeTitle(navbarEl) { + var app = this; + var $navbarEl = $(navbarEl); + if ($navbarEl.hasClass('navbars')) { + $navbarEl = $navbarEl.find('.navbar'); + if ($navbarEl.length > 1) { + $navbarEl = $(navbarEl).find('.navbar-large.navbar-current'); + } + if ($navbarEl.length > 1 || !$navbarEl.length) { + return; + } + } + var $pageEl = $(app.navbar.getPageByEl($navbarEl)); + $navbarEl.addClass('navbar-large-collapsed'); + $pageEl.eq(0).addClass('page-with-navbar-large-collapsed').trigger('page:navbarlargecollapsed'); + app.emit('pageNavbarLargeCollapsed', $pageEl[0]); + $navbarEl.trigger('navbar:collapse'); + app.emit('navbarCollapse', $navbarEl[0]); + }, + expandLargeTitle: function expandLargeTitle(navbarEl) { + var app = this; + var $navbarEl = $(navbarEl); + if ($navbarEl.hasClass('navbars')) { + $navbarEl = $navbarEl.find('.navbar-large'); + if ($navbarEl.length > 1) { + $navbarEl = $(navbarEl).find('.navbar-large.navbar-current'); + } + if ($navbarEl.length > 1 || !$navbarEl.length) { + return; + } + } + var $pageEl = $(app.navbar.getPageByEl($navbarEl)); + $navbarEl.removeClass('navbar-large-collapsed'); + $pageEl.eq(0).removeClass('page-with-navbar-large-collapsed').trigger('page:navbarlargeexpanded'); + app.emit('pageNavbarLargeExpanded', $pageEl[0]); + $navbarEl.trigger('navbar:expand'); + app.emit('navbarExpand', $navbarEl[0]); + }, + toggleLargeTitle: function toggleLargeTitle(navbarEl) { + var app = this; + var $navbarEl = $(navbarEl); + if ($navbarEl.hasClass('navbars')) { + $navbarEl = $navbarEl.find('.navbar-large'); + if ($navbarEl.length > 1) { + $navbarEl = $(navbarEl).find('.navbar-large.navbar-current'); + } + if ($navbarEl.length > 1 || !$navbarEl.length) { + return; + } + } + if ($navbarEl.hasClass('navbar-large-collapsed')) { + app.navbar.expandLargeTitle($navbarEl); + } else { + app.navbar.collapseLargeTitle($navbarEl); + } + }, + initNavbarOnScroll: function initNavbarOnScroll(pageEl, navbarEl, needHide, needCollapse, needTransparent) { + var app = this; + var $pageEl = $(pageEl); + var $navbarEl = $(navbarEl); + var $titleLargeEl = $navbarEl.find('.title-large'); + var isLarge = $titleLargeEl.length || $navbarEl.hasClass('.navbar-large'); + var navbarHideHeight = 44; + var snapPageScrollToLargeTitle = app.params.navbar.snapPageScrollToLargeTitle; + var snapPageScrollToTransparentNavbar = app.params.navbar.snapPageScrollToTransparentNavbar; + + var previousScrollTop; + var currentScrollTop; + + var scrollHeight; + var offsetHeight; + var reachEnd; + var action; + var navbarHidden; + + var navbarCollapsed; + var navbarTitleLargeHeight; + + var navbarOffsetHeight; + + if (needCollapse || (needHide && isLarge)) { + navbarTitleLargeHeight = $navbarEl.css('--f7-navbar-large-title-height'); + + if (navbarTitleLargeHeight && navbarTitleLargeHeight.indexOf('px') >= 0) { + navbarTitleLargeHeight = parseInt(navbarTitleLargeHeight, 10); + if (Number.isNaN(navbarTitleLargeHeight) && $titleLargeEl.length) { + navbarTitleLargeHeight = $titleLargeEl[0].offsetHeight; + } else if (Number.isNaN(navbarTitleLargeHeight)) { + if (app.theme === 'ios') { navbarTitleLargeHeight = 52; } + else if (app.theme === 'md') { navbarTitleLargeHeight = 48; } + else if (app.theme === 'aurora') { navbarTitleLargeHeight = 38; } + } + } else if ($titleLargeEl.length) { + navbarTitleLargeHeight = $titleLargeEl[0].offsetHeight; + } else { // eslint-disable-next-line + if (app.theme === 'ios') { navbarTitleLargeHeight = 52; } + else if (app.theme === 'md') { navbarTitleLargeHeight = 48; } + else if (app.theme === 'aurora') { navbarTitleLargeHeight = 38; } + } + } + + if (needHide && isLarge) { + navbarHideHeight += navbarTitleLargeHeight; + } + + var scrollChanged; + var scrollContent; + var scrollTimeoutId; + var touchEndTimeoutId; + var touchSnapTimeout = 70; + var desktopSnapTimeout = 300; + + function snapLargeNavbar() { + var inSearchbarExpanded = $navbarEl.hasClass('with-searchbar-expandable-enabled'); + if (inSearchbarExpanded) { return; } + if (!scrollContent || currentScrollTop < 0) { return; } + if (currentScrollTop >= navbarTitleLargeHeight / 2 && currentScrollTop < navbarTitleLargeHeight) { + $(scrollContent).scrollTop(navbarTitleLargeHeight, 100); + } else if (currentScrollTop < navbarTitleLargeHeight) { + $(scrollContent).scrollTop(0, 200); + } + } + + function snapTransparentNavbar() { + var inSearchbarExpanded = $navbarEl.hasClass('with-searchbar-expandable-enabled'); + if (inSearchbarExpanded) { return; } + if (!scrollContent || currentScrollTop < 0) { return; } + if (currentScrollTop >= navbarOffsetHeight / 2 && currentScrollTop < navbarOffsetHeight) { + $(scrollContent).scrollTop(navbarOffsetHeight, 100); + } else if (currentScrollTop < navbarOffsetHeight) { + $(scrollContent).scrollTop(0, 200); + } + } + + function handleNavbarTransparent() { + var isHidden = $navbarEl.hasClass('navbar-hidden') || $navbarEl.parent('.navbars').hasClass('navbar-hidden'); + var inSearchbarExpanded = $navbarEl.hasClass('with-searchbar-expandable-enabled'); + if (inSearchbarExpanded || isHidden) { return; } + if (!navbarOffsetHeight) { + navbarOffsetHeight = navbarEl.offsetHeight; + } + var opacity = currentScrollTop / navbarOffsetHeight; + var notTransparent = $navbarEl.hasClass('navbar-transparent-visible'); + opacity = Math.max(Math.min(opacity, 1), 0); + + if ((notTransparent && opacity === 1) || (!notTransparent && opacity === 0)) { + $navbarEl.find('.navbar-bg, .title').css('opacity', ''); + return; + } + if (notTransparent && opacity === 0) { + $navbarEl.trigger('navbar:transparenthide'); + app.emit('navbarTransparentHide', $navbarEl[0]); + $navbarEl.removeClass('navbar-transparent-visible'); + $navbarEl.find('.navbar-bg, .title').css('opacity', ''); + return; + } + if (!notTransparent && opacity === 1) { + $navbarEl.trigger('navbar:transparentshow'); + app.emit('navbarTransparentShow', $navbarEl[0]); + $navbarEl.addClass('navbar-transparent-visible'); + $navbarEl.find('.navbar-bg, .title').css('opacity', ''); + return; + } + + $navbarEl.find('.navbar-bg, .title').css('opacity', opacity); + + if (snapPageScrollToTransparentNavbar) { + if (!Support.touch) { + clearTimeout(scrollTimeoutId); + scrollTimeoutId = setTimeout(function () { + snapTransparentNavbar(); + }, desktopSnapTimeout); + } else if (touchEndTimeoutId) { + clearTimeout(touchEndTimeoutId); + touchEndTimeoutId = null; + touchEndTimeoutId = setTimeout(function () { + snapTransparentNavbar(); + clearTimeout(touchEndTimeoutId); + touchEndTimeoutId = null; + }, touchSnapTimeout); + } + } + } + + var previousCollapseProgress = null; + var collapseProgress = null; + function handleLargeNavbarCollapse() { + var isHidden = $navbarEl.hasClass('navbar-hidden') || $navbarEl.parent('.navbars').hasClass('navbar-hidden'); + if (isHidden) { return; } + var isLargeTransparent = $navbarEl.hasClass('navbar-large-transparent') + || ( + $navbarEl.hasClass('navbar-large') + && $navbarEl.hasClass('navbar-transparent') + ); + previousCollapseProgress = collapseProgress; + collapseProgress = Math.min(Math.max((currentScrollTop / navbarTitleLargeHeight), 0), 1); + var previousCollapseWasInMiddle = previousCollapseProgress > 0 && previousCollapseProgress < 1; + var inSearchbarExpanded = $navbarEl.hasClass('with-searchbar-expandable-enabled'); + if (inSearchbarExpanded) { return; } + navbarCollapsed = $navbarEl.hasClass('navbar-large-collapsed'); + if (collapseProgress === 0 && navbarCollapsed) { + app.navbar.expandLargeTitle($navbarEl[0]); + } else if (collapseProgress === 1 && !navbarCollapsed) { + app.navbar.collapseLargeTitle($navbarEl[0]); + } + if ( + (collapseProgress === 0 && navbarCollapsed) + || (collapseProgress === 0 && previousCollapseWasInMiddle) + || (collapseProgress === 1 && !navbarCollapsed) + || (collapseProgress === 1 && previousCollapseWasInMiddle) + ) { + if (app.theme === 'md') { + $navbarEl.find('.navbar-inner').css('overflow', ''); + } + $navbarEl.find('.title').css('opacity', ''); + $navbarEl.find('.title-large-text, .subnavbar').css('transform', ''); + if (isLargeTransparent) { + $navbarEl.find('.navbar-bg').css('opacity', ''); + } else { + $navbarEl.find('.navbar-bg').css('transform', ''); + } + } else if (collapseProgress > 0 && collapseProgress < 1) { + if (app.theme === 'md') { + $navbarEl.find('.navbar-inner').css('overflow', 'visible'); + } + $navbarEl.find('.title').css('opacity', collapseProgress); + $navbarEl.find('.title-large-text, .subnavbar').css('transform', ("translate3d(0px, " + (-1 * collapseProgress * navbarTitleLargeHeight) + "px, 0)")); + if (isLargeTransparent) { + $navbarEl.find('.navbar-bg').css('opacity', collapseProgress); + } else { + $navbarEl.find('.navbar-bg').css('transform', ("translate3d(0px, " + (-1 * collapseProgress * navbarTitleLargeHeight) + "px, 0)")); + } + } + + if (snapPageScrollToLargeTitle) { + if (!Support.touch) { + clearTimeout(scrollTimeoutId); + scrollTimeoutId = setTimeout(function () { + snapLargeNavbar(); + }, desktopSnapTimeout); + } else if (touchEndTimeoutId) { + clearTimeout(touchEndTimeoutId); + touchEndTimeoutId = null; + touchEndTimeoutId = setTimeout(function () { + snapLargeNavbar(); + clearTimeout(touchEndTimeoutId); + touchEndTimeoutId = null; + }, touchSnapTimeout); + } + } + } + + function handleTitleHideShow() { + if ($pageEl.hasClass('page-with-card-opened')) { return; } + scrollHeight = scrollContent.scrollHeight; + offsetHeight = scrollContent.offsetHeight; + reachEnd = currentScrollTop + offsetHeight >= scrollHeight; + navbarHidden = $navbarEl.hasClass('navbar-hidden') || $navbarEl.parent('.navbars').hasClass('navbar-hidden'); + if (reachEnd) { + if (app.params.navbar.showOnPageScrollEnd) { + action = 'show'; + } + } else if (previousScrollTop > currentScrollTop) { + if (app.params.navbar.showOnPageScrollTop || currentScrollTop <= navbarHideHeight) { + action = 'show'; + } else { + action = 'hide'; + } + } else if (currentScrollTop > navbarHideHeight) { + action = 'hide'; + } else { + action = 'show'; + } + + if (action === 'show' && navbarHidden) { + app.navbar.show($navbarEl); + navbarHidden = false; + } else if (action === 'hide' && !navbarHidden) { + app.navbar.hide($navbarEl); + navbarHidden = true; + } + previousScrollTop = currentScrollTop; + } + + function handleScroll(e) { + scrollContent = this; + if (e && e.target && e.target !== scrollContent) { + return; + } + currentScrollTop = scrollContent.scrollTop; + scrollChanged = currentScrollTop; + if (needCollapse) { + handleLargeNavbarCollapse(); + } else if (needTransparent) { + handleNavbarTransparent(); + } + if ($pageEl.hasClass('page-previous')) { return; } + if (needHide) { + handleTitleHideShow(); + } + } + function handeTouchStart() { + scrollChanged = false; + } + function handleTouchEnd() { + clearTimeout(touchEndTimeoutId); + touchEndTimeoutId = null; + touchEndTimeoutId = setTimeout(function () { + if (scrollChanged !== false) { + if (needTransparent && !needCollapse) { + snapTransparentNavbar(); + } else { + snapLargeNavbar(); + } + clearTimeout(touchEndTimeoutId); + touchEndTimeoutId = null; + } + }, touchSnapTimeout); + } + $pageEl.on('scroll', '.page-content', handleScroll, true); + if (Support.touch && ((needCollapse && snapPageScrollToLargeTitle) || (needTransparent && snapPageScrollToTransparentNavbar))) { + app.on('touchstart:passive', handeTouchStart); + app.on('touchend:passive', handleTouchEnd); + } + if (needCollapse) { + $pageEl.find('.page-content').each(function (pageContentIndex, pageContentEl) { + if (pageContentEl.scrollTop > 0) { handleScroll.call(pageContentEl); } + }); + } else if (needTransparent) { + $pageEl.find('.page-content').each(function (pageContentIndex, pageContentEl) { + if (pageContentEl.scrollTop > 0) { handleScroll.call(pageContentEl); } + }); + } + $pageEl[0].f7DetachNavbarScrollHandlers = function f7DetachNavbarScrollHandlers() { + delete $pageEl[0].f7DetachNavbarScrollHandlers; + $pageEl.off('scroll', '.page-content', handleScroll, true); + if (Support.touch && ((needCollapse && snapPageScrollToLargeTitle) || (needTransparent && snapPageScrollToTransparentNavbar))) { + app.off('touchstart:passive', handeTouchStart); + app.off('touchend:passive', handleTouchEnd); + } + }; + }, + }; + var Navbar$1 = { + name: 'navbar', + create: function create() { + var app = this; + Utils.extend(app, { + navbar: { + size: Navbar.size.bind(app), + hide: Navbar.hide.bind(app), + show: Navbar.show.bind(app), + getElByPage: Navbar.getElByPage.bind(app), + getPageByEl: Navbar.getPageByEl.bind(app), + collapseLargeTitle: Navbar.collapseLargeTitle.bind(app), + expandLargeTitle: Navbar.expandLargeTitle.bind(app), + toggleLargeTitle: Navbar.toggleLargeTitle.bind(app), + initNavbarOnScroll: Navbar.initNavbarOnScroll.bind(app), + }, + }); + }, + params: { + navbar: { + scrollTopOnTitleClick: true, + iosCenterTitle: true, + mdCenterTitle: false, + auroraCenterTitle: true, + hideOnPageScroll: false, + showOnPageScrollEnd: true, + showOnPageScrollTop: true, + collapseLargeTitleOnScroll: true, + snapPageScrollToLargeTitle: true, + snapPageScrollToTransparentNavbar: true, + }, + }, + on: { + 'panelBreakpoint panelCollapsedBreakpoint panelResize viewResize resize viewMasterDetailBreakpoint': function onPanelResize() { + var app = this; + $('.navbar').each(function (index, navbarEl) { + app.navbar.size(navbarEl); + }); + }, + pageBeforeRemove: function pageBeforeRemove(page) { + if (page.$el[0].f7DetachNavbarScrollHandlers) { + page.$el[0].f7DetachNavbarScrollHandlers(); + } + }, + pageBeforeIn: function pageBeforeIn(page) { + var app = this; + if (app.theme !== 'ios') { return; } + var $navbarsEl; + var view = page.$el.parents('.view')[0].f7View; + var navbarEl = app.navbar.getElByPage(page); + if (!navbarEl) { + $navbarsEl = page.$el.parents('.view').children('.navbars'); + } else { + $navbarsEl = $(navbarEl).parents('.navbars'); + } + if (page.$el.hasClass('no-navbar') || (view.router.dynamicNavbar && !navbarEl)) { + var animate = !!(page.pageFrom && page.router.history.length > 0); + app.navbar.hide($navbarsEl, animate); + } else { + app.navbar.show($navbarsEl); + } + }, + pageReinit: function pageReinit(page) { + var app = this; + var $navbarEl = $(app.navbar.getElByPage(page)); + if (!$navbarEl || $navbarEl.length === 0) { return; } + app.navbar.size($navbarEl); + }, + pageInit: function pageInit(page) { + var app = this; + var $navbarEl = $(app.navbar.getElByPage(page)); + if (!$navbarEl || $navbarEl.length === 0) { return; } + + // Size + app.navbar.size($navbarEl); + + // Need Collapse On Scroll + var needCollapseOnScrollHandler; + if ($navbarEl.find('.title-large').length > 0) { + $navbarEl.addClass('navbar-large'); + } + if ($navbarEl.hasClass('navbar-large')) { + if (app.params.navbar.collapseLargeTitleOnScroll) { needCollapseOnScrollHandler = true; } + page.$el.addClass('page-with-navbar-large'); + } + + // Need transparent on scroll + var needTransparentOnScroll; + if (!needCollapseOnScrollHandler && $navbarEl.hasClass('navbar-transparent')) { + needTransparentOnScroll = true; + } + + // Need Hide On Scroll + var needHideOnScrollHandler; + if ( + app.params.navbar.hideOnPageScroll + || page.$el.find('.hide-navbar-on-scroll').length + || page.$el.hasClass('hide-navbar-on-scroll') + || page.$el.find('.hide-bars-on-scroll').length + || page.$el.hasClass('hide-bars-on-scroll') + ) { + if ( + page.$el.find('.keep-navbar-on-scroll').length + || page.$el.hasClass('keep-navbar-on-scroll') + || page.$el.find('.keep-bars-on-scroll').length + || page.$el.hasClass('keep-bars-on-scroll') + ) { + needHideOnScrollHandler = false; + } else { + needHideOnScrollHandler = true; + } + } + + if (needCollapseOnScrollHandler || needHideOnScrollHandler || needTransparentOnScroll) { + app.navbar.initNavbarOnScroll(page.el, $navbarEl[0], needHideOnScrollHandler, needCollapseOnScrollHandler, needTransparentOnScroll); + } + }, + 'panelOpen panelSwipeOpen modalOpen': function onPanelModalOpen(instance) { + var app = this; + instance.$el.find('.navbar:not(.navbar-previous):not(.stacked)').each(function (index, navbarEl) { + app.navbar.size(navbarEl); + }); + }, + tabShow: function tabShow(tabEl) { + var app = this; + $(tabEl).find('.navbar:not(.navbar-previous):not(.stacked)').each(function (index, navbarEl) { + app.navbar.size(navbarEl); + }); + }, + }, + clicks: { + '.navbar .title': function onTitleClick($clickedEl) { + var app = this; + if (!app.params.navbar.scrollTopOnTitleClick) { return; } + if ($clickedEl.closest('a').length > 0) { + return; + } + var $pageContentEl; + + // Find active page + var $navbarEl = $clickedEl.parents('.navbar'); + var $navbarsEl = $navbarEl.parents('.navbars'); + + // Static Layout + $pageContentEl = $navbarEl.parents('.page-content'); + + if ($pageContentEl.length === 0) { + // Fixed Layout + if ($navbarEl.parents('.page').length > 0) { + $pageContentEl = $navbarEl.parents('.page').find('.page-content'); + } + // Through Layout iOS + if ($pageContentEl.length === 0 && $navbarsEl.length) { + if ($navbarsEl.nextAll('.page-current:not(.stacked)').length > 0) { + $pageContentEl = $navbarsEl.nextAll('.page-current:not(.stacked)').find('.page-content'); + } + } + // Through Layout + if ($pageContentEl.length === 0) { + if ($navbarEl.nextAll('.page-current:not(.stacked)').length > 0) { + $pageContentEl = $navbarEl.nextAll('.page-current:not(.stacked)').find('.page-content'); + } + } + } + if ($pageContentEl && $pageContentEl.length > 0) { + // Check for tab + if ($pageContentEl.hasClass('tab')) { + $pageContentEl = $pageContentEl.parent('.tabs').children('.page-content.tab-active'); + } + if ($pageContentEl.length > 0) { $pageContentEl.scrollTop(0, 300); } + } + }, + }, + vnode: { + navbar: { + postpatch: function postpatch(vnode) { + var app = this; + app.navbar.size(vnode.elm); + }, + }, + }, + }; + + var Toolbar = { + setHighlight: function setHighlight(tabbarEl) { + var app = this; + if (app.theme !== 'md') { return; } + + var $tabbarEl = $(tabbarEl); + + if ($tabbarEl.length === 0 || !($tabbarEl.hasClass('tabbar') || $tabbarEl.hasClass('tabbar-labels'))) { return; } + + var $highlightEl = $tabbarEl.find('.tab-link-highlight'); + var tabLinksCount = $tabbarEl.find('.tab-link').length; + if (tabLinksCount === 0) { + $highlightEl.remove(); + return; + } + + if ($highlightEl.length === 0) { + $tabbarEl.children('.toolbar-inner').append(''); + $highlightEl = $tabbarEl.find('.tab-link-highlight'); + } else if ($highlightEl.next().length) { + $tabbarEl.children('.toolbar-inner').append($highlightEl); + } + + var $activeLink = $tabbarEl.find('.tab-link-active'); + var highlightWidth; + var highlightTranslate; + + if ($tabbarEl.hasClass('tabbar-scrollable') && $activeLink && $activeLink[0]) { + highlightWidth = ($activeLink[0].offsetWidth) + "px"; + highlightTranslate = ($activeLink[0].offsetLeft) + "px"; + } else { + var activeIndex = $activeLink.index(); + highlightWidth = (100 / tabLinksCount) + "%"; + highlightTranslate = ((app.rtl ? -activeIndex : activeIndex) * 100) + "%"; + } + + Utils.nextFrame(function () { + $highlightEl + .css('width', highlightWidth) + .transform(("translate3d(" + highlightTranslate + ",0,0)")); + }); + }, + init: function init(tabbarEl) { + var app = this; + app.toolbar.setHighlight(tabbarEl); + }, + hide: function hide(el, animate) { + if ( animate === void 0 ) animate = true; + + var app = this; + var $el = $(el); + if ($el.hasClass('toolbar-hidden')) { return; } + var className = "toolbar-hidden" + (animate ? ' toolbar-transitioning' : ''); + $el.transitionEnd(function () { + $el.removeClass('toolbar-transitioning'); + }); + $el.addClass(className); + $el.trigger('toolbar:hide'); + app.emit('toolbarHide', $el[0]); + }, + show: function show(el, animate) { + if ( animate === void 0 ) animate = true; + + var app = this; + var $el = $(el); + if (!$el.hasClass('toolbar-hidden')) { return; } + if (animate) { + $el.addClass('toolbar-transitioning'); + $el.transitionEnd(function () { + $el.removeClass('toolbar-transitioning'); + }); + } + $el.removeClass('toolbar-hidden'); + $el.trigger('toolbar:show'); + app.emit('toolbarShow', $el[0]); + }, + initToolbarOnScroll: function initToolbarOnScroll(pageEl) { + var app = this; + var $pageEl = $(pageEl); + var $toolbarEl = $pageEl.parents('.view').children('.toolbar'); + if ($toolbarEl.length === 0) { + $toolbarEl = $pageEl.find('.toolbar'); + } + if ($toolbarEl.length === 0) { + $toolbarEl = $pageEl.parents('.views').children('.tabbar, .tabbar-labels'); + } + if ($toolbarEl.length === 0) { + return; + } + + var previousScrollTop; + var currentScrollTop; + + var scrollHeight; + var offsetHeight; + var reachEnd; + var action; + var toolbarHidden; + function handleScroll(e) { + if ($pageEl.hasClass('page-with-card-opened')) { return; } + if ($pageEl.hasClass('page-previous')) { return; } + var scrollContent = this; + if (e && e.target && e.target !== scrollContent) { + return; + } + currentScrollTop = scrollContent.scrollTop; + scrollHeight = scrollContent.scrollHeight; + offsetHeight = scrollContent.offsetHeight; + reachEnd = currentScrollTop + offsetHeight >= scrollHeight; + toolbarHidden = $toolbarEl.hasClass('toolbar-hidden'); + + if (reachEnd) { + if (app.params.toolbar.showOnPageScrollEnd) { + action = 'show'; + } + } else if (previousScrollTop > currentScrollTop) { + if (app.params.toolbar.showOnPageScrollTop || currentScrollTop <= 44) { + action = 'show'; + } else { + action = 'hide'; + } + } else if (currentScrollTop > 44) { + action = 'hide'; + } else { + action = 'show'; + } + + if (action === 'show' && toolbarHidden) { + app.toolbar.show($toolbarEl); + toolbarHidden = false; + } else if (action === 'hide' && !toolbarHidden) { + app.toolbar.hide($toolbarEl); + toolbarHidden = true; + } + + previousScrollTop = currentScrollTop; + } + $pageEl.on('scroll', '.page-content', handleScroll, true); + $pageEl[0].f7ScrollToolbarHandler = handleScroll; + }, + }; + var Toolbar$1 = { + name: 'toolbar', + create: function create() { + var app = this; + Utils.extend(app, { + toolbar: { + hide: Toolbar.hide.bind(app), + show: Toolbar.show.bind(app), + setHighlight: Toolbar.setHighlight.bind(app), + initToolbarOnScroll: Toolbar.initToolbarOnScroll.bind(app), + init: Toolbar.init.bind(app), + }, + }); + }, + params: { + toolbar: { + hideOnPageScroll: false, + showOnPageScrollEnd: true, + showOnPageScrollTop: true, + }, + }, + on: { + pageBeforeRemove: function pageBeforeRemove(page) { + if (page.$el[0].f7ScrollToolbarHandler) { + page.$el.off('scroll', '.page-content', page.$el[0].f7ScrollToolbarHandler, true); + } + }, + pageBeforeIn: function pageBeforeIn(page) { + var app = this; + var $toolbarEl = page.$el.parents('.view').children('.toolbar'); + if ($toolbarEl.length === 0) { + $toolbarEl = page.$el.parents('.views').children('.tabbar, .tabbar-labels'); + } + if ($toolbarEl.length === 0) { + $toolbarEl = page.$el.find('.toolbar'); + } + if ($toolbarEl.length === 0) { + return; + } + if (page.$el.hasClass('no-toolbar')) { + app.toolbar.hide($toolbarEl); + } else { + app.toolbar.show($toolbarEl); + } + }, + pageInit: function pageInit(page) { + var app = this; + page.$el.find('.tabbar, .tabbar-labels').each(function (index, tabbarEl) { + app.toolbar.init(tabbarEl); + }); + if ( + app.params.toolbar.hideOnPageScroll + || page.$el.find('.hide-toolbar-on-scroll').length + || page.$el.hasClass('hide-toolbar-on-scroll') + || page.$el.find('.hide-bars-on-scroll').length + || page.$el.hasClass('hide-bars-on-scroll') + ) { + if ( + page.$el.find('.keep-toolbar-on-scroll').length + || page.$el.hasClass('keep-toolbar-on-scroll') + || page.$el.find('.keep-bars-on-scroll').length + || page.$el.hasClass('keep-bars-on-scroll') + ) { + return; + } + app.toolbar.initToolbarOnScroll(page.el); + } + }, + init: function init() { + var app = this; + app.root.find('.tabbar, .tabbar-labels').each(function (index, tabbarEl) { + app.toolbar.init(tabbarEl); + }); + }, + }, + vnode: { + tabbar: { + insert: function insert(vnode) { + var app = this; + app.toolbar.init(vnode.elm); + }, + }, + }, + }; + + var Subnavbar = { + name: 'subnavbar', + on: { + pageInit: function pageInit(page) { + if (page.$navbarEl && page.$navbarEl.length && page.$navbarEl.find('.subnavbar').length) { + page.$el.addClass('page-with-subnavbar'); + } + if (page.$el.find('.subnavbar').length) { + page.$el.addClass('page-with-subnavbar'); + } + }, + }, + }; + + var TouchRipple = function TouchRipple($el, x, y) { + var ripple = this; + if (!$el) { return undefined; } + var box = $el[0].getBoundingClientRect(); + var center = { + x: x - box.left, + y: y - box.top, + }; + var width = box.width; + var height = box.height; + var diameter = Math.max((Math.pow( ((Math.pow( height, 2 )) + (Math.pow( width, 2 ))), 0.5 )), 48); + + ripple.$rippleWaveEl = $(("
                          ")); + + $el.prepend(ripple.$rippleWaveEl); + + ripple.rippleTransform = "translate3d(" + (-center.x + (width / 2)) + "px, " + (-center.y + (height / 2)) + "px, 0) scale(1)"; + + Utils.nextFrame(function () { + if (!ripple || !ripple.$rippleWaveEl) { return; } + ripple.$rippleWaveEl.transform(ripple.rippleTransform); + }); + + return ripple; + }; + + TouchRipple.prototype.destroy = function destroy () { + var ripple = this; + if (ripple.$rippleWaveEl) { + ripple.$rippleWaveEl.remove(); + } + Object.keys(ripple).forEach(function (key) { + ripple[key] = null; + delete ripple[key]; + }); + ripple = null; + }; + + TouchRipple.prototype.remove = function remove () { + var ripple = this; + if (ripple.removing) { return; } + var $rippleWaveEl = this.$rippleWaveEl; + var rippleTransform = this.rippleTransform; + var removeTimeout = Utils.nextTick(function () { + ripple.destroy(); + }, 400); + ripple.removing = true; + $rippleWaveEl + .addClass('ripple-wave-fill') + .transform(rippleTransform.replace('scale(1)', 'scale(1.01)')) + .transitionEnd(function () { + clearTimeout(removeTimeout); + Utils.nextFrame(function () { + $rippleWaveEl + .addClass('ripple-wave-out') + .transform(rippleTransform.replace('scale(1)', 'scale(1.01)')); + + removeTimeout = Utils.nextTick(function () { + ripple.destroy(); + }, 700); + + $rippleWaveEl.transitionEnd(function () { + clearTimeout(removeTimeout); + ripple.destroy(); + }); + }); + }); + }; + + var TouchRipple$1 = { + name: 'touch-ripple', + static: { + TouchRipple: TouchRipple, + }, + create: function create() { + var app = this; + app.touchRipple = { + create: function create() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return new (Function.prototype.bind.apply( TouchRipple, [ null ].concat( args) )); + }, + }; + }, + }; + + var openedModals = []; + var dialogsQueue = []; + function clearDialogsQueue() { + if (dialogsQueue.length === 0) { return; } + var dialog = dialogsQueue.shift(); + dialog.open(); + } + var Modal = /*@__PURE__*/(function (Framework7Class) { + function Modal(app, params) { + Framework7Class.call(this, params, [app]); + + var modal = this; + + var defaults = {}; + + // Extend defaults with modules params + modal.useModulesParams(defaults); + + modal.params = Utils.extend(defaults, params); + modal.opened = false; + + // Install Modules + modal.useModules(); + + return this; + } + + if ( Framework7Class ) Modal.__proto__ = Framework7Class; + Modal.prototype = Object.create( Framework7Class && Framework7Class.prototype ); + Modal.prototype.constructor = Modal; + + Modal.prototype.onOpen = function onOpen () { + var modal = this; + modal.opened = true; + openedModals.push(modal); + $('html').addClass(("with-modal-" + (modal.type.toLowerCase()))); + modal.$el.trigger(("modal:open " + (modal.type.toLowerCase()) + ":open")); + modal.emit(("local::open modalOpen " + (modal.type) + "Open"), modal); + }; + + Modal.prototype.onOpened = function onOpened () { + var modal = this; + modal.$el.trigger(("modal:opened " + (modal.type.toLowerCase()) + ":opened")); + modal.emit(("local::opened modalOpened " + (modal.type) + "Opened"), modal); + }; + + Modal.prototype.onClose = function onClose () { + var modal = this; + modal.opened = false; + if (!modal.type || !modal.$el) { return; } + openedModals.splice(openedModals.indexOf(modal), 1); + $('html').removeClass(("with-modal-" + (modal.type.toLowerCase()))); + modal.$el.trigger(("modal:close " + (modal.type.toLowerCase()) + ":close")); + modal.emit(("local::close modalClose " + (modal.type) + "Close"), modal); + }; + + Modal.prototype.onClosed = function onClosed () { + var modal = this; + if (!modal.type || !modal.$el) { return; } + modal.$el.removeClass('modal-out'); + modal.$el.hide(); + modal.$el.trigger(("modal:closed " + (modal.type.toLowerCase()) + ":closed")); + modal.emit(("local::closed modalClosed " + (modal.type) + "Closed"), modal); + }; + + Modal.prototype.open = function open (animateModal) { + var modal = this; + var app = modal.app; + var $el = modal.$el; + var $backdropEl = modal.$backdropEl; + var type = modal.type; + var animate = true; + if (typeof animateModal !== 'undefined') { animate = animateModal; } + else if (typeof modal.params.animate !== 'undefined') { + animate = modal.params.animate; + } + + if (!$el || $el.hasClass('modal-in')) { + return modal; + } + + if (type === 'dialog' && app.params.modal.queueDialogs) { + var pushToQueue; + if ($('.dialog.modal-in').length > 0) { + pushToQueue = true; + } else if (openedModals.length > 0) { + openedModals.forEach(function (openedModal) { + if (openedModal.type === 'dialog') { pushToQueue = true; } + }); + } + if (pushToQueue) { + dialogsQueue.push(modal); + return modal; + } + } + + var $modalParentEl = $el.parent(); + var wasInDom = $el.parents(doc).length > 0; + if (app.params.modal.moveToRoot && !$modalParentEl.is(app.root)) { + app.root.append($el); + modal.once((type + "Closed"), function () { + if (wasInDom) { + $modalParentEl.append($el); + } else { + $el.remove(); + } + }); + } + // Show Modal + $el.show(); + + /* eslint no-underscore-dangle: ["error", { "allow": ["_clientLeft"] }] */ + modal._clientLeft = $el[0].clientLeft; + + // Modal + function transitionEnd() { + if ($el.hasClass('modal-out')) { + modal.onClosed(); + } else if ($el.hasClass('modal-in')) { + modal.onOpened(); + } + } + if (animate) { + if ($backdropEl) { + $backdropEl.removeClass('not-animated'); + $backdropEl.addClass('backdrop-in'); + } + $el + .animationEnd(function () { + transitionEnd(); + }); + $el + .transitionEnd(function () { + transitionEnd(); + }); + $el + .removeClass('modal-out not-animated') + .addClass('modal-in'); + modal.onOpen(); + } else { + if ($backdropEl) { + $backdropEl.addClass('backdrop-in not-animated'); + } + $el.removeClass('modal-out').addClass('modal-in not-animated'); + modal.onOpen(); + modal.onOpened(); + } + + return modal; + }; + + Modal.prototype.close = function close (animateModal) { + var modal = this; + var $el = modal.$el; + var $backdropEl = modal.$backdropEl; + + var animate = true; + if (typeof animateModal !== 'undefined') { animate = animateModal; } + else if (typeof modal.params.animate !== 'undefined') { + animate = modal.params.animate; + } + + if (!$el || !$el.hasClass('modal-in')) { + if (dialogsQueue.indexOf(modal) >= 0) { + dialogsQueue.splice(dialogsQueue.indexOf(modal), 1); + } + return modal; + } + + // backdrop + if ($backdropEl) { + var needToHideBackdrop = true; + if (modal.type === 'popup') { + modal.$el.prevAll('.popup.modal-in').each(function (index, popupEl) { + var popupInstance = popupEl.f7Modal; + if (!popupInstance) { return; } + if ( + popupInstance.params.closeByBackdropClick + && popupInstance.params.backdrop + && popupInstance.backdropEl === modal.backdropEl + ) { + needToHideBackdrop = false; + } + }); + } + if (needToHideBackdrop) { + $backdropEl[animate ? 'removeClass' : 'addClass']('not-animated'); + $backdropEl.removeClass('backdrop-in'); + } + } + + // Modal + $el[animate ? 'removeClass' : 'addClass']('not-animated'); + function transitionEnd() { + if ($el.hasClass('modal-out')) { + modal.onClosed(); + } else if ($el.hasClass('modal-in')) { + modal.onOpened(); + } + } + if (animate) { + $el + .animationEnd(function () { + transitionEnd(); + }); + $el + .transitionEnd(function () { + transitionEnd(); + }); + $el + .removeClass('modal-in') + .addClass('modal-out'); + // Emit close + modal.onClose(); + } else { + $el + .addClass('not-animated') + .removeClass('modal-in') + .addClass('modal-out'); + // Emit close + modal.onClose(); + modal.onClosed(); + } + + if (modal.type === 'dialog') { + clearDialogsQueue(); + } + + return modal; + }; + + Modal.prototype.destroy = function destroy () { + var modal = this; + if (modal.destroyed) { return; } + modal.emit(("local::beforeDestroy modalBeforeDestroy " + (modal.type) + "BeforeDestroy"), modal); + if (modal.$el) { + modal.$el.trigger(("modal:beforedestroy " + (modal.type.toLowerCase()) + ":beforedestroy")); + if (modal.$el.length && modal.$el[0].f7Modal) { + delete modal.$el[0].f7Modal; + } + } + Utils.deleteProps(modal); + modal.destroyed = true; + }; + + return Modal; + }(Framework7Class)); + + var CustomModal = /*@__PURE__*/(function (Modal) { + function CustomModal(app, params) { + var extendedParams = Utils.extend({ + backdrop: true, + closeByBackdropClick: true, + on: {}, + }, params); + + // Extends with open/close Modal methods; + Modal.call(this, app, extendedParams); + + var customModal = this; + + customModal.params = extendedParams; + + // Find Element + var $el; + if (!customModal.params.el) { + $el = $(customModal.params.content); + } else { + $el = $(customModal.params.el); + } + + if ($el && $el.length > 0 && $el[0].f7Modal) { + return $el[0].f7Modal; + } + + if ($el.length === 0) { + return customModal.destroy(); + } + var $backdropEl; + if (customModal.params.backdrop) { + $backdropEl = app.root.children('.custom-modal-backdrop'); + if ($backdropEl.length === 0) { + $backdropEl = $('
                          '); + app.root.append($backdropEl); + } + } + + function handleClick(e) { + if (!customModal || customModal.destroyed) { return; } + if ($backdropEl && e.target === $backdropEl[0]) { + customModal.close(); + } + } + + customModal.on('customModalOpened', function () { + if (customModal.params.closeByBackdropClick && customModal.params.backdrop) { + app.on('click', handleClick); + } + }); + customModal.on('customModalClose', function () { + if (customModal.params.closeByBackdropClick && customModal.params.backdrop) { + app.off('click', handleClick); + } + }); + + Utils.extend(customModal, { + app: app, + $el: $el, + el: $el[0], + $backdropEl: $backdropEl, + backdropEl: $backdropEl && $backdropEl[0], + type: 'customModal', + }); + + $el[0].f7Modal = customModal; + + return customModal; + } + + if ( Modal ) CustomModal.__proto__ = Modal; + CustomModal.prototype = Object.create( Modal && Modal.prototype ); + CustomModal.prototype.constructor = CustomModal; + + return CustomModal; + }(Modal)); + + var Modal$1 = { + name: 'modal', + static: { + Modal: Modal, + CustomModal: CustomModal, + }, + create: function create() { + var app = this; + app.customModal = { + create: function create(params) { + return new CustomModal(app, params); + }, + }; + }, + params: { + modal: { + moveToRoot: true, + queueDialogs: true, + }, + }, + }; + + /** + * Framework7 5.7.14 + * Full featured mobile HTML framework for building iOS & Android apps + * https://framework7.io/ + * + * Copyright 2014-2020 Vladimir Kharlampidi + * + * Released under the MIT License + * + * Released on: November 9, 2020 + */ + + // Install Core Modules & Components + + Framework7.use([ + DeviceModule, + SupportModule, + UtilsModule, + ResizeModule, + RequestModule, + TouchModule, + ClicksModule, + RouterModule, + HistoryModule, + ServiceWorkerModule, + Statusbar$1, + View$1, + Navbar$1, + Toolbar$1, + Subnavbar, + TouchRipple$1, + Modal$1 ]); + + return Framework7; + +}))); diff --git a/public/Framework7/5/js/framework7-lite.min.js b/public/Framework7/5/js/framework7-lite.min.js new file mode 100644 index 0000000..b43d159 --- /dev/null +++ b/public/Framework7/5/js/framework7-lite.min.js @@ -0,0 +1,14 @@ +/** + * Framework7 5.7.14 + * Full featured mobile HTML framework for building iOS & Android apps + * https://framework7.io/ + * + * Copyright 2014-2020 Vladimir Kharlampidi + * + * Released under the MIT License + * + * Released on: November 9, 2020 + */ + +!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e=e||self).Framework7=t()}(this,(function(){"use strict";var t7ctx;t7ctx="undefined"!=typeof window?window:"undefined"!=typeof global?global:void 0;var Template7Context=t7ctx,Template7Utils={quoteSingleRexExp:new RegExp("'","g"),quoteDoubleRexExp:new RegExp('"',"g"),isFunction:function(e){return"function"==typeof e},escape:function(e){return void 0===e&&(e=""),e.replace(/&/g,"&").replace(//g,">").replace(/"/g,""").replace(/'/g,"'")},helperToSlices:function(e){var t,a,r,n=Template7Utils.quoteDoubleRexExp,o=Template7Utils.quoteSingleRexExp,i=e.replace(/[{}#}]/g,"").trim().split(" "),s=[];for(a=0;a=0){t=r,s.push(l);break}t&&(a=t)}else if(l.indexOf("=")>0){var p=l.split("="),h=p[0],d=p[1];if(u||(u=0===d.indexOf('"')?n:o,c=0===d.indexOf('"')?'"':"'"),2!==d.match(u).length){for(t=0,r=a+1;r=0){t=r;break}t&&(a=t)}var f=[h,d.replace(u,"")];s.push(f)}else s.push(l)}return s},stringToBlocks:function(e){var t,a,r=[];if(!e)return[];var n=e.split(/({{[^{^}]*}})/);for(t=0;t=0)continue;if((o=o.replace(/{{([#/])*([ ])*/,"{{$1").replace(/([ ])*}}/,"}}")).indexOf("{#")<0&&o.indexOf(" ")<0&&o.indexOf("else")<0){r.push({type:"variable",contextName:o.replace(/[{}]/g,"")});continue}var i=Template7Utils.helperToSlices(o),s=i[0],l=">"===s,u=[],c={};for(a=1;a=0){var h="",d="",f=0,v=void 0,g=!1,m=!1,b=0;for(a=t+1;a=0&&(b+=1),n[a].indexOf("{{/")>=0&&(b-=1),n[a].indexOf("{{#"+s)>=0)h+=n[a],m&&(d+=n[a]),f+=1;else if(n[a].indexOf("{{/"+s)>=0){if(!(f>0)){v=a,g=!0;break}f-=1,h+=n[a],m&&(d+=n[a])}else n[a].indexOf("else")>=0&&0===b?m=!0:(m||(h+=n[a]),m&&(d+=n[a]));g&&(v&&(t=v),"raw"===s?r.push({type:"plain",content:h}):r.push({type:"helper",helperName:s,contextName:u,content:h,inverseContent:d,hash:c}))}else o.indexOf(" ")>0&&(l&&(s="_partial",u[0]&&(0===u[0].indexOf("[")?u[0]=u[0].replace(/[[\]]/g,""):u[0]='"'+u[0].replace(/"|'/g,"")+'"')),r.push({type:"helper",helperName:s,contextName:u,hash:c}))}}return r},parseJsVariable:function(e,t,a){return e.split(/([+ \-*/^()&=|<>!%:?])/g).reduce((function(e,r){if(!r)return e;if(r.indexOf(t)<0)return e.push(r),e;if(!a)return e.push(JSON.stringify("")),e;var n=a;return r.indexOf(t+".")>=0&&r.split(t+".")[1].split(".").forEach((function(e){n=e in n?n[e]:void 0})),("string"==typeof n||Array.isArray(n)||n.constructor&&n.constructor===Object)&&(n=JSON.stringify(n)),void 0===n&&(n="undefined"),e.push(n),e}),[]).join("")},parseJsParents:function(e,t){return e.split(/([+ \-*^()&=|<>!%:?])/g).reduce((function(e,a){if(!a)return e;if(a.indexOf("../")<0)return e.push(a),e;if(!t||0===t.length)return e.push(JSON.stringify("")),e;var r=a.split("../").length-1,n=r>t.length?t[t.length-1]:t[r-1];return a.replace(/..\//g,"").split(".").forEach((function(e){n=void 0!==n[e]?n[e]:"undefined"})),!1===n||!0===n?(e.push(JSON.stringify(n)),e):null===n||"undefined"===n?(e.push(JSON.stringify("")),e):(e.push(JSON.stringify(n)),e)}),[]).join("")},getCompileVar:function(e,t,a){void 0===a&&(a="data_1");var r,n,o=t,i=0;0===e.indexOf("../")?(i=e.split("../").length-1,n=o.split("_")[1]-i,o="ctx_"+(n>=1?n:1),r=e.split("../")[i].split(".")):0===e.indexOf("@global")?(o="Template7.global",r=e.split("@global.")[1].split(".")):0===e.indexOf("@root")?(o="root",r=e.split("@root.")[1].split(".")):r=e.split(".");for(var s=0;s0&&(u=n),s>0?o+="[(data_"+u+" && data_"+u+"."+l.replace("@","")+")]":o="(data_"+u+" && data_"+u+"."+l.replace("@","")+")"}else(Number.isFinite?Number.isFinite(l):Template7Context.isFinite(l))?o+="["+l+"]":"this"===l||l.indexOf("this.")>=0||l.indexOf("this[")>=0||l.indexOf("this(")>=0?o=l.replace("this",t):o+="."+l}return o},getCompiledArguments:function(e,t,a){for(var r=[],n=0;n0?r:t.inverse(this)},with:function(e,t){var a=e;return Template7Utils.isFunction(a)&&(a=e.call(this)),t.fn(a)},join:function(e,t){var a=e;return Template7Utils.isFunction(a)&&(a=a.call(this)),a.join(t.hash.delimiter||t.hash.delimeter)},js:function js(expression,options){var data=options.data,func,execute=expression;return"index first last key".split(" ").forEach((function(e){if(void 0!==data[e]){var t=new RegExp("this.@"+e,"g"),a=new RegExp("@"+e,"g");execute=execute.replace(t,JSON.stringify(data[e])).replace(a,JSON.stringify(data[e]))}})),options.root&&execute.indexOf("@root")>=0&&(execute=Template7Utils.parseJsVariable(execute,"@root",options.root)),execute.indexOf("@global")>=0&&(execute=Template7Utils.parseJsVariable(execute,"@global",Template7Context.Template7.global)),execute.indexOf("../")>=0&&(execute=Template7Utils.parseJsParents(execute,options.parents)),func=execute.indexOf("return")>=0?"(function(){"+execute+"})":"(function(){return ("+execute+")})",eval(func).call(this)},js_if:function js_if(expression,options){var data=options.data,func,execute=expression;"index first last key".split(" ").forEach((function(e){if(void 0!==data[e]){var t=new RegExp("this.@"+e,"g"),a=new RegExp("@"+e,"g");execute=execute.replace(t,JSON.stringify(data[e])).replace(a,JSON.stringify(data[e]))}})),options.root&&execute.indexOf("@root")>=0&&(execute=Template7Utils.parseJsVariable(execute,"@root",options.root)),execute.indexOf("@global")>=0&&(execute=Template7Utils.parseJsVariable(execute,"@global",Template7Context.Template7.global)),execute.indexOf("../")>=0&&(execute=Template7Utils.parseJsParents(execute,options.parents)),func=execute.indexOf("return")>=0?"(function(){"+execute+"})":"(function(){return ("+execute+")})";var condition=eval(func).call(this);return condition?options.fn(this,options.data):options.inverse(this,options.data)}};Template7Helpers.js_compare=Template7Helpers.js_if;var Template7Options={},Template7Partials={},Template7Class=function(e){this.template=e},staticAccessors={options:{configurable:!0},partials:{configurable:!0},helpers:{configurable:!0}};function Template7(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var a=e[0],r=e[1];if(2===e.length){var n=new Template7Class(a),o=n.compile()(r);return n=null,o}return new Template7Class(a)}function isObject(e){return null!==e&&"object"==typeof e&&"constructor"in e&&e.constructor===Object}function extend(e,t){void 0===e&&(e={}),void 0===t&&(t={}),Object.keys(t).forEach((function(a){void 0===e[a]?e[a]=t[a]:isObject(t[a])&&isObject(e[a])&&Object.keys(t[a]).length>0&&extend(e[a],t[a])}))}Template7Class.prototype.compile=function compile(template,depth){void 0===template&&(template=this.template),void 0===depth&&(depth=1);var t=this;if(t.compiled)return t.compiled;if("string"!=typeof template)throw new Error("Template7: Template must be a string");var stringToBlocks=Template7Utils.stringToBlocks,getCompileVar=Template7Utils.getCompileVar,getCompiledArguments=Template7Utils.getCompiledArguments,blocks=stringToBlocks(template),ctx="ctx_"+depth,data="data_"+depth;if(0===blocks.length)return function(){return""};function getCompileFn(e,a){return e.content?t.compile(e.content,a):function(){return""}}function getCompileInverse(e,a){return e.inverseContent?t.compile(e.inverseContent,a):function(){return""}}var resultString="",i;for(resultString+=1===depth?"(function ("+ctx+", "+data+", root) {\n":"(function ("+ctx+", "+data+") {\n",1===depth&&(resultString+="function isArray(arr){return Array.isArray(arr);}\n",resultString+="function isFunction(func){return (typeof func === 'function');}\n",resultString+='function c(val, ctx) {if (typeof val !== "undefined" && val !== null) {if (isFunction(val)) {return val.call(ctx);} else return val;} else return "";}\n',resultString+="root = root || ctx_1 || {};\n"),resultString+="var r = '';\n",i=0;i=1;j-=1)parentsString+=", ctx_"+j;parents="["+parentsString+"]"}else parents="["+ctx+"]";var dynamicHelper=void 0;if(0===block.helperName.indexOf("[")&&(block.helperName=getCompileVar(block.helperName.replace(/[[\]]/g,""),ctx,data),dynamicHelper=!0),dynamicHelper||block.helperName in Template7Helpers)compiledArguments=getCompiledArguments(block.contextName,ctx,data),resultString+="r += (Template7Helpers"+(dynamicHelper?"["+block.helperName+"]":"."+block.helperName)+").call("+ctx+", "+(compiledArguments&&compiledArguments+", ")+"{hash:"+JSON.stringify(block.hash)+", data: "+data+" || {}, fn: "+getCompileFn(block,depth+1)+", inverse: "+getCompileInverse(block,depth+1)+", root: root, parents: "+parents+"});";else{if(block.contextName.length>0)throw new Error('Template7: Missing helper: "'+block.helperName+'"');variable=getCompileVar(block.helperName,ctx,data),resultString+="if ("+variable+") {",resultString+="if (isArray("+variable+")) {",resultString+="r += (Template7Helpers.each).call("+ctx+", "+variable+", {hash:"+JSON.stringify(block.hash)+", data: "+data+" || {}, fn: "+getCompileFn(block,depth+1)+", inverse: "+getCompileInverse(block,depth+1)+", root: root, parents: "+parents+"});",resultString+="}else {",resultString+="r += (Template7Helpers.with).call("+ctx+", "+variable+", {hash:"+JSON.stringify(block.hash)+", data: "+data+" || {}, fn: "+getCompileFn(block,depth+1)+", inverse: "+getCompileInverse(block,depth+1)+", root: root, parents: "+parents+"});",resultString+="}}"}}}else resultString+="r +='"+block.content.replace(/\r/g,"\\r").replace(/\n/g,"\\n").replace(/'/g,"\\'")+"';"}return resultString+="\nreturn r;})",1===depth?(t.compiled=eval(resultString),t.compiled):resultString},staticAccessors.options.get=function(){return Template7Options},staticAccessors.partials.get=function(){return Template7Partials},staticAccessors.helpers.get=function(){return Template7Helpers},Object.defineProperties(Template7Class,staticAccessors),Template7.registerHelper=function(e,t){Template7Class.helpers[e]=t},Template7.unregisterHelper=function(e){Template7Class.helpers[e]=void 0,delete Template7Class.helpers[e]},Template7.registerPartial=function(e,t){Template7Class.partials[e]={template:t}},Template7.unregisterPartial=function(e){Template7Class.partials[e]&&(Template7Class.partials[e]=void 0,delete Template7Class.partials[e])},Template7.compile=function(e,t){return new Template7Class(e,t).compile()},Template7.options=Template7Class.options,Template7.helpers=Template7Class.helpers,Template7.partials=Template7Class.partials;var doc="undefined"!=typeof document?document:{},ssrDocument={body:{},addEventListener:function(){},removeEventListener:function(){},activeElement:{blur:function(){},nodeName:""},querySelector:function(){return null},querySelectorAll:function(){return[]},getElementById:function(){return null},createEvent:function(){return{initEvent:function(){}}},createElement:function(){return{children:[],childNodes:[],style:{},setAttribute:function(){},getElementsByTagName:function(){return[]}}},createElementNS:function(){return{}},importNode:function(){return null},location:{hash:"",host:"",hostname:"",href:"",origin:"",pathname:"",protocol:"",search:""}};extend(doc,ssrDocument);var win="undefined"!=typeof window?window:{},ssrWindow={document:ssrDocument,navigator:{userAgent:""},location:{hash:"",host:"",hostname:"",href:"",origin:"",pathname:"",protocol:"",search:""},history:{replaceState:function(){},pushState:function(){},go:function(){},back:function(){}},CustomEvent:function(){return this},addEventListener:function(){},removeEventListener:function(){},getComputedStyle:function(){return{getPropertyValue:function(){return""}}},Image:function(){},Date:function(){},screen:{},setTimeout:function(){},clearTimeout:function(){},matchMedia:function(){return{}}};extend(win,ssrWindow);var Dom7=function(e){for(var t=0;t=0&&i.indexOf(">")>=0){var s="div";for(0===i.indexOf(":~]/)?(t||doc).querySelectorAll(e.trim()):[doc.getElementById(e.trim().split("#")[1])],r=0;r0&&e[0].nodeType)for(r=0;r=0&&(t[toCamelCase(n.name.split("data-")[1])]=n.value)}for(var o in t)"false"===t[o]?t[o]=!1:"true"===t[o]?t[o]=!0:parseFloat(t[o])===1*t[o]&&(t[o]*=1);return t}}function val(e){if(void 0!==e){for(var t=0;t=0;else a.value=e}return this}if(this[0]){if(this[0].multiple&&"select"===this[0].nodeName.toLowerCase()){for(var n=[],o=0;o=0;d-=1){var f=h[d];o&&f.listener===o||o&&f.listener&&f.listener.dom7proxy&&f.listener.dom7proxy===o?(p.removeEventListener(u,f.proxyListener,i),h.splice(d,1)):o||(p.removeEventListener(u,f.proxyListener,i),h.splice(d,1))}}return this}function once(){for(var e,t=[],a=arguments.length;a--;)t[a]=arguments[a];var r=this,n=t[0],o=t[1],i=t[2],s=t[3];function l(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];i.apply(this,e),r.off(n,o,l,s),l.dom7proxy&&delete l.dom7proxy}return"function"==typeof t[1]&&(n=(e=t)[0],i=e[1],s=e[2],o=void 0),l.dom7proxy=i,r.on(n,o,l,s)}function trigger(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];for(var a=e[0].split(" "),r=e[1],n=0;n0})),s.dispatchEvent(l),s.dom7EventData=[],delete s.dom7EventData}return this}function transitionEnd(e){var t,a=["webkitTransitionEnd","transitionend"],r=this;function n(o){if(o.target===this)for(e.call(this,o),t=0;t0?parseFloat(this.css("width")):null}function outerWidth(e){if(this.length>0){if(e){var t=this.styles();return this[0].offsetWidth+parseFloat(t.getPropertyValue("margin-right"))+parseFloat(t.getPropertyValue("margin-left"))}return this[0].offsetWidth}return null}function height(){return this[0]===win?win.innerHeight:this.length>0?parseFloat(this.css("height")):null}function outerHeight(e){if(this.length>0){if(e){var t=this.styles();return this[0].offsetHeight+parseFloat(t.getPropertyValue("margin-top"))+parseFloat(t.getPropertyValue("margin-bottom"))}return this[0].offsetHeight}return null}function offset(){if(this.length>0){var e=this[0],t=e.getBoundingClientRect(),a=doc.body,r=e.clientTop||a.clientTop||0,n=e.clientLeft||a.clientLeft||0,o=e===win?win.scrollY:e.scrollTop,i=e===win?win.scrollX:e.scrollLeft;return{top:t.top+o-r,left:t.left+i-n}}return null}function hide(){for(var e=0;ea-1?[]:e<0?(t=a+e)<0?[]:[this[t]]:[this[e]])}function append(){for(var e,t=[],a=arguments.length;a--;)t[a]=arguments[a];for(var r=0;r=0;a-=1)this[t].insertBefore(r.childNodes[a],this[t].childNodes[0])}else if(e instanceof Dom7)for(a=0;a1)for(var r=0;r1)for(var r=0;r0?e?this[0].nextElementSibling&&$(this[0].nextElementSibling).is(e)?new Dom7([this[0].nextElementSibling]):new Dom7([]):this[0].nextElementSibling?new Dom7([this[0].nextElementSibling]):new Dom7([]):new Dom7([])}function nextAll(e){var t=[],a=this[0];if(!a)return new Dom7([]);for(;a.nextElementSibling;){var r=a.nextElementSibling;e?$(r).is(e)&&t.push(r):t.push(r),a=r}return new Dom7(t)}function prev(e){if(this.length>0){var t=this[0];return e?t.previousElementSibling&&$(t.previousElementSibling).is(e)?new Dom7([t.previousElementSibling]):new Dom7([]):t.previousElementSibling?new Dom7([t.previousElementSibling]):new Dom7([])}return new Dom7([])}function prevAll(e){var t=[],a=this[0];if(!a)return new Dom7([]);for(;a.previousElementSibling;){var r=a.previousElementSibling;e?$(r).is(e)&&t.push(r):t.push(r),a=r}return new Dom7(t)}function siblings(e){return this.nextAll(e).add(this.prevAll(e))}function parent(e){for(var t=[],a=0;a0||0===n,v=r>0||0===r;if(void 0===i&&(i="swing"),f&&(e=d.scrollTop,o||(d.scrollTop=n)),v&&(t=d.scrollLeft,o||(d.scrollLeft=r)),o){f&&(a=d.scrollHeight-d.offsetHeight,u=Math.max(Math.min(n,a),0)),v&&(l=d.scrollWidth-d.offsetWidth,c=Math.max(Math.min(r,l),0));var g=null;f&&u===e&&(f=!1),v&&c===t&&(v=!1),requestAnimationFrame((function a(r){void 0===r&&(r=(new Date).getTime()),null===g&&(g=r);var n,l=Math.max(Math.min((r-g)/o,1),0),m="linear"===i?l:.5-Math.cos(l*Math.PI)/2;f&&(p=e+m*(u-e)),v&&(h=t+m*(c-t)),f&&u>e&&p>=u&&(d.scrollTop=u,n=!0),f&&ut&&h>=c&&(d.scrollLeft=c,n=!0),v&&c0?s[0].scrollTop:null:s.scrollTo(void 0,r,n,o,i)}function scrollLeft(){for(var e,t=[],a=arguments.length;a--;)t[a]=arguments[a];var r=t[0],n=t[1],o=t[2],i=t[3];3===t.length&&"function"==typeof o&&(r=(e=t)[0],n=e[1],i=e[2],o=e[3]);var s=this;return void 0===r?s.length>0?s[0].scrollLeft:null:s.scrollTo(r,void 0,n,o,i)}var Scroll=Object.freeze({scrollTo:scrollTo,scrollTop:scrollTop,scrollLeft:scrollLeft});function animate(e,t){var a,r=this,n={props:Object.assign({},e),params:Object.assign({duration:300,easing:"swing"},t),elements:r,animating:!1,que:[],easingProgress:function(e,t){return"swing"===e?.5-Math.cos(t*Math.PI)/2:"function"==typeof e?e(t):t},stop:function(){n.frameId&&cancelAnimationFrame(n.frameId),n.animating=!1,n.elements.each((function(e,t){delete t.dom7AnimateInstance})),n.que=[]},done:function(e){if(n.animating=!1,n.elements.each((function(e,t){delete t.dom7AnimateInstance})),e&&e(r),n.que.length>0){var t=n.que.shift();n.animate(t[0],t[1])}},animate:function(e,t){if(n.animating)return n.que.push([e,t]),n;var a=[];n.elements.each((function(t,r){var o,i,s,l,u;r.dom7AnimateInstance||(n.elements[t].dom7AnimateInstance=n),a[t]={container:r},Object.keys(e).forEach((function(n){o=win.getComputedStyle(r,null).getPropertyValue(n).replace(",","."),i=parseFloat(o),s=o.replace(i,""),l=parseFloat(e[n]),u=e[n]+s,a[t][n]={initialFullValue:o,initialValue:i,unit:s,finalValue:l,finalFullValue:u,currentValue:i}}))}));var o,i,s=null,l=0,u=0,c=!1;return n.animating=!0,n.frameId=requestAnimationFrame((function p(){var h,d;o=(new Date).getTime(),c||(c=!0,t.begin&&t.begin(r)),null===s&&(s=o),t.progress&&t.progress(r,Math.max(Math.min((o-s)/t.duration,1),0),s+t.duration-o<0?0:s+t.duration-o,s),a.forEach((function(r){var c=r;i||c.done||Object.keys(e).forEach((function(r){if(!i&&!c.done){h=Math.max(Math.min((o-s)/t.duration,1),0),d=n.easingProgress(t.easing,h);var p=c[r],f=p.initialValue,v=p.finalValue,g=p.unit;c[r].currentValue=f+d*(v-f);var m=c[r].currentValue;(v>f&&m>=v||v0;)a[r]=arguments[r+1];if(void 0===a[0]){for(var n=0;n\n \n \n \n \n \n \n \n \n '.trim(),iosPreloaderContent:('\n \n '+[0,1,2,3,4,5,6,7,8,9,10,11].map((function(){return''})).join("")+"\n \n ").trim(),auroraPreloaderContent:'\n \n \n \n ',eventNameToColonCase:function(e){var t;return e.split("").map((function(e,a){return e.match(/[A-Z]/)&&0!==a&&!t?(t=!0,":"+e.toLowerCase()):e.toLowerCase()})).join("")},deleteProps:function(e){var t=e;Object.keys(t).forEach((function(e){try{t[e]=null}catch(e){}try{delete t[e]}catch(e){}}))},nextTick:function(e,t){return void 0===t&&(t=0),setTimeout(e,t)},nextFrame:function(e){return Utils.requestAnimationFrame((function(){Utils.requestAnimationFrame(e)}))},now:function(){return Date.now()},requestAnimationFrame:function(e){return win.requestAnimationFrame(e)},cancelAnimationFrame:function(e){return win.cancelAnimationFrame(e)},removeDiacritics:function(e){return e.replace(/[^\u0000-\u007E]/g,(function(e){return diacriticsMap[e]||e}))},parseUrlQuery:function(e){var t,a,r,n,o={},i=e||win.location.href;if("string"==typeof i&&i.length)for(n=(a=(i=i.indexOf("?")>-1?i.replace(/\S*\?/,""):"").split("&").filter((function(e){return""!==e}))).length,t=0;t6&&(r=r.split(", ").map((function(e){return e.replace(",",".")})).join(", ")),n=new win.WebKitCSSMatrix("none"===r?"":r)):a=(n=o.MozTransform||o.OTransform||o.MsTransform||o.msTransform||o.transform||o.getPropertyValue("transform").replace("translate(","matrix(1, 0, 0, 1,")).toString().split(","),"x"===t&&(r=win.WebKitCSSMatrix?n.m41:16===a.length?parseFloat(a[12]):parseFloat(a[4])),"y"===t&&(r=win.WebKitCSSMatrix?n.m42:16===a.length?parseFloat(a[13]):parseFloat(a[5])),r||0},serializeObject:function(e,t){if(void 0===t&&(t=[]),"string"==typeof e)return e;var a,r=[];function n(e){if(t.length>0){for(var a="",r=0;r0?2*o/r.b:r.s,[r.h,r.s,r.b]},colorThemeCSSProperties:function(){for(var e,t,a=[],r=arguments.length;r--;)a[r]=arguments[r];if(1===a.length?(e=a[0],t=Utils.colorHexToRgb(e)):3===a.length&&(t=a,e=Utils.colorRgbToHex.apply(Utils,t)),!t)return{};var n=Utils.colorRgbToHsl.apply(Utils,t),o=[n[0],n[1],Math.max(0,n[2]-.08)],i=[n[0],n[1],Math.max(0,n[2]+.08)],s=Utils.colorRgbToHex.apply(Utils,Utils.colorHslToRgb.apply(Utils,o)),l=Utils.colorRgbToHex.apply(Utils,Utils.colorHslToRgb.apply(Utils,i));return{"--f7-theme-color":e,"--f7-theme-color-rgb":t.join(", "),"--f7-theme-color-shade":s,"--f7-theme-color-tint":l}}},Support={touch:!!("ontouchstart"in win||win.DocumentTouch&&doc instanceof win.DocumentTouch),pointerEvents:!!win.PointerEvent&&"maxTouchPoints"in win.navigator&&win.navigator.maxTouchPoints>=0,observer:"MutationObserver"in win||"WebkitMutationObserver"in win,passiveListener:function(){var e=!1;try{var t=Object.defineProperty({},"passive",{get:function(){e=!0}});win.addEventListener("testPassiveListener",null,t)}catch(e){}return e}(),gestures:"ongesturestart"in win,intersectionObserver:"IntersectionObserver"in win},Device=function(){var e=win.navigator.platform,t=win.navigator.userAgent,a={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:!(!win.cordova&&!win.phonegap),phonegap:!(!win.cordova&&!win.phonegap),electron:!1,nwjs:!1},r=win.screen.width,n=win.screen.height,o=t.match(/(Android);?[\s\/]+([\d.]+)?/),i=t.match(/(iPad).*OS\s([\d_]+)/),s=t.match(/(iPod)(.*OS\s([\d_]+))?/),l=!i&&t.match(/(iPhone\sOS|iOS)\s([\d_]+)/),u=t.indexOf("MSIE ")>=0||t.indexOf("Trident/")>=0,c=t.indexOf("Edge/")>=0,p=t.indexOf("Gecko/")>=0&&t.indexOf("Firefox/")>=0,h="Win32"===e,d=t.toLowerCase().indexOf("electron")>=0,f="undefined"!=typeof nw&&"undefined"!=typeof process&&void 0!==process.versions&&void 0!==process.versions.nw,v="MacIntel"===e;!i&&v&&Support.touch&&["1024x1366","1366x1024","834x1194","1194x834","834x1112","1112x834","768x1024","1024x768","820x1180","1180x820","810x1080","1080x810"].indexOf(r+"x"+n)>=0&&((i=t.match(/(Version)\/([\d.]+)/))||(i=[0,1,"13_0_0"]),v=!1),a.ie=u,a.edge=c,a.firefox=p,o&&!h&&(a.os="android",a.osVersion=o[2],a.android=!0,a.androidChrome=t.toLowerCase().indexOf("chrome")>=0),(i||l||s)&&(a.os="ios",a.ios=!0),l&&!s&&(a.osVersion=l[2].replace(/_/g,"."),a.iphone=!0),i&&(a.osVersion=i[2].replace(/_/g,"."),a.ipad=!0),s&&(a.osVersion=s[3]?s[3].replace(/_/g,"."):null,a.ipod=!0),a.ios&&a.osVersion&&t.indexOf("Version/")>=0&&"10"===a.osVersion.split(".")[0]&&(a.osVersion=t.toLowerCase().split("version/")[1].split(" ")[0]),a.webView=!(!(l||i||s)||!t.match(/.*AppleWebKit(?!.*Safari)/i)&&!win.navigator.standalone)||win.matchMedia&&win.matchMedia("(display-mode: standalone)").matches,a.webview=a.webView,a.standalone=a.webView,a.desktop=!(a.ios||a.android)||d||f,a.desktop&&(a.electron=d,a.nwjs=f,a.macos=v,a.windows=h,a.macos&&(a.os="macos"),a.windows&&(a.os="windows")),a.pixelRatio=win.devicePixelRatio||1;return a.prefersColorScheme=function(){var e;return win.matchMedia&&win.matchMedia("(prefers-color-scheme: light)").matches&&(e="light"),win.matchMedia&&win.matchMedia("(prefers-color-scheme: dark)").matches&&(e="dark"),e},a}(),EventsClass=function(e){void 0===e&&(e=[]);this.eventsParents=e,this.eventsListeners={}};EventsClass.prototype.on=function(e,t,a){var r=this;if("function"!=typeof t)return r;var n=a?"unshift":"push";return e.split(" ").forEach((function(e){r.eventsListeners[e]||(r.eventsListeners[e]=[]),r.eventsListeners[e][n](t)})),r},EventsClass.prototype.once=function(e,t,a){var r=this;if("function"!=typeof t)return r;function n(){for(var a=[],o=arguments.length;o--;)a[o]=arguments[o];r.off(e,n),n.f7proxy&&delete n.f7proxy,t.apply(r,a)}return n.f7proxy=t,r.on(e,n,a)},EventsClass.prototype.off=function(e,t){var a=this;return a.eventsListeners?(e.split(" ").forEach((function(e){void 0===t?a.eventsListeners[e]=[]:a.eventsListeners[e]&&a.eventsListeners[e].forEach((function(r,n){(r===t||r.f7proxy&&r.f7proxy===t)&&a.eventsListeners[e].splice(n,1)}))})),a):a},EventsClass.prototype.emit=function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var a,r,n,o,i=this;if(!i.eventsListeners)return i;"string"==typeof e[0]||Array.isArray(e[0])?(a=e[0],r=e.slice(1,e.length),n=i,o=i.eventsParents):(a=e[0].events,r=e[0].data,n=e[0].context||i,o=e[0].local?[]:e[0].parents||i.eventsParents);var s=Array.isArray(a)?a:a.split(" "),l=s.map((function(e){return e.replace("local::","")})),u=s.filter((function(e){return e.indexOf("local::")<0}));return l.forEach((function(e){if(i.eventsListeners&&i.eventsListeners[e]){var t=[];i.eventsListeners[e].forEach((function(e){t.push(e)})),t.forEach((function(e){e.apply(n,r)}))}})),o&&o.length>0&&o.forEach((function(e){e.emit.apply(e,[u].concat(r))})),i};var Framework7Class=function(e){function t(t,a){void 0===t&&(t={}),void 0===a&&(a=[]),e.call(this,a);var r=this;r.params=t,r.params&&r.params.on&&Object.keys(r.params.on).forEach((function(e){r.on(e,r.params.on[e])}))}e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t;var a={components:{configurable:!0}};return t.prototype.useModuleParams=function(e,t){if(e.params){var a={};Object.keys(e.params).forEach((function(e){void 0!==t[e]&&(a[e]=Utils.extend({},t[e]))})),Utils.extend(t,e.params),Object.keys(a).forEach((function(e){Utils.extend(t[e],a[e])}))}},t.prototype.useModulesParams=function(e){var t=this;t.modules&&Object.keys(t.modules).forEach((function(a){var r=t.modules[a];r.params&&Utils.extend(e,r.params)}))},t.prototype.useModule=function(e,t){void 0===e&&(e=""),void 0===t&&(t={});var a=this;if(a.modules){var r="string"==typeof e?a.modules[e]:e;r&&(r.instance&&Object.keys(r.instance).forEach((function(e){var t=r.instance[e];a[e]="function"==typeof t?t.bind(a):t})),r.on&&a.on&&Object.keys(r.on).forEach((function(e){a.on(e,r.on[e])})),r.vnode&&(a.vnodeHooks||(a.vnodeHooks={}),Object.keys(r.vnode).forEach((function(e){Object.keys(r.vnode[e]).forEach((function(t){var n=r.vnode[e][t];a.vnodeHooks[t]||(a.vnodeHooks[t]={}),a.vnodeHooks[t][e]||(a.vnodeHooks[t][e]=[]),a.vnodeHooks[t][e].push(n.bind(a))}))}))),r.create&&r.create.bind(a)(t))}},t.prototype.useModules=function(e){void 0===e&&(e={});var t=this;t.modules&&Object.keys(t.modules).forEach((function(a){var r=e[a]||{};t.useModule(a,r)}))},a.components.set=function(e){this.use&&this.use(e)},t.installModule=function(e){for(var t=[],a=arguments.length-1;a-- >0;)t[a]=arguments[a+1];var r=this;r.prototype.modules||(r.prototype.modules={});var n=e.name||Object.keys(r.prototype.modules).length+"_"+Utils.now();return r.prototype.modules[n]=e,e.proto&&Object.keys(e.proto).forEach((function(t){r.prototype[t]=e.proto[t]})),e.static&&Object.keys(e.static).forEach((function(t){r[t]=e.static[t]})),e.install&&e.install.apply(r,t),r},t.use=function(e){for(var t=[],a=arguments.length-1;a-- >0;)t[a]=arguments[a+1];var r=this;return Array.isArray(e)?(e.forEach((function(e){return r.installModule(e)})),r):r.installModule.apply(r,[e].concat(t))},Object.defineProperties(t,a),t}(EventsClass);function ConstructorMethods(e){void 0===e&&(e={});var t=e.defaultSelector,a=e.constructor,r=e.domProp,n=e.app,o=e.addMethods,i={create:function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];return n?new(Function.prototype.bind.apply(a,[null].concat([n],e))):new(Function.prototype.bind.apply(a,[null].concat(e)))},get:function(e){if(void 0===e&&(e=t),e instanceof a)return e;var n=$(e);return 0!==n.length?n[0][r]:void 0},destroy:function(e){var t=i.get(e);if(t&&t.destroy)return t.destroy()}};return o&&Array.isArray(o)&&o.forEach((function(e){i[e]=function(a){void 0===a&&(a=t);for(var r=[],n=arguments.length-1;n-- >0;)r[n]=arguments[n+1];var o=i.get(a);if(o&&o[e])return o[e].apply(o,r)}})),i}function ModalMethods(e){void 0===e&&(e={});var t=e.defaultSelector,a=e.constructor,r=e.app;return Utils.extend(ConstructorMethods({defaultSelector:t,constructor:a,app:r,domProp:"f7Modal"}),{open:function(e,t,n){var o=$(e);if(o.length>1&&n){var i=$(n).parents(".page");i.length&&o.each((function(e,t){var a=$(t);a.parents(i)[0]===i[0]&&(o=a)}))}if(o.length>1&&(o=o.eq(o.length-1)),o.length){var s=o[0].f7Modal;if(!s){var l=o.dataset();s=new a(r,Object.assign({},{el:o},l))}return s.open(t)}},close:function(e,n,o){void 0===e&&(e=t);var i=$(e);if(i.length){if(i.length>1){var s;if(o){var l=$(o);l.length&&(s=l.parents(i))}i=s&&s.length>0?s:i.eq(i.length-1)}var u=i[0].f7Modal;if(!u){var c=i.dataset();u=new a(r,Object.assign({},{el:i},c))}return u.close(n)}}})}var fetchedModules=[];function loadModule(e){var t=this;return new Promise((function(a,r){var n,o,i,s=t.instance;if(e){if("string"==typeof e){var l=e.match(/([a-z0-9-]*)/i);if(e.indexOf(".")<0&&l&&l[0].length===e.length){if(!s||s&&!s.params.lazyModulesPath)return void r(new Error('Framework7: "lazyModulesPath" app parameter must be specified to fetch module by name'));n=s.params.lazyModulesPath+"/"+e+".js"}else n=e}else"function"==typeof e?i=e:o=e;if(i){var u=i(t,!1);if(!u)return void r(new Error("Framework7: Can't find Framework7 component in specified component function"));if(t.prototype.modules&&t.prototype.modules[u.name])return void a();d(u),a()}if(o){var c=o;if(!c)return void r(new Error("Framework7: Can't find Framework7 component in specified component"));if(t.prototype.modules&&t.prototype.modules[c.name])return void a();d(c),a()}if(n){if(fetchedModules.indexOf(n)>=0)return void a();fetchedModules.push(n);var p=new Promise((function(e,a){t.request.get(n,(function(r){var o="f7_component_loader_callback_"+Utils.id(),i=doc.createElement("script");i.innerHTML="window."+o+" = function (Framework7, Framework7AutoInstallComponent) {return "+r.trim()+"}",$("head").append(i);var s=win[o];delete win[o],$(i).remove();var l=s(t,!1);l?(t.prototype.modules&&t.prototype.modules[l.name]||d(l),e()):a(new Error("Framework7: Can't find Framework7 component in "+n+" file"))}),(function(e,t){a(e,t)}))})),h=new Promise((function(e){t.request.get(n.replace(".js",s.rtl?".rtl.css":".css"),(function(t){var a=doc.createElement("style");a.innerHTML=t,$("head").append(a),e()}),(function(){e()}))}));Promise.all([p,h]).then((function(){a()})).catch((function(e){r(e)}))}}else r(new Error("Framework7: Lazy module must be specified"));function d(e){t.use(e),s&&(s.useModuleParams(e,s.params),s.useModule(e))}}))}var Framework7=function(e){function t(a){if(e.call(this,a),t.instance)throw new Error("Framework7 is already initialized and can't be initialized more than once");var r=Utils.extend({},a),n=this;t.instance=n;var o={version:"1.0.0",id:"io.framework7.testapp",root:"body",theme:"auto",language:win.navigator.language,routes:[],name:"Framework7",lazyModulesPath:null,initOnDeviceReady:!0,init:!0,autoDarkTheme:!1,iosTranslucentBars:!0,iosTranslucentModals:!0,component:void 0,componentUrl:void 0};n.useModulesParams(o),n.params=Utils.extend(o,a);var i=$(n.params.root);Utils.extend(n,{id:n.params.id,name:n.params.name,version:n.params.version,routes:n.params.routes,language:n.params.language,root:i,rtl:"rtl"===i.css("direction"),theme:"auto"===n.params.theme?Device.ios?"ios":Device.desktop&&Device.electron?"aurora":"md":n.params.theme,passedParams:r,online:win.navigator.onLine}),n.root&&n.root[0]&&(n.root[0].f7=n),n.useModules(),n.initData();var s="(prefers-color-scheme: dark)",l="(prefers-color-scheme: light)";return n.mq={},win.matchMedia&&(n.mq.dark=win.matchMedia(s),n.mq.light=win.matchMedia(l)),n.colorSchemeListener=function(e){var t=e.matches,a=e.media;if(t){var r=doc.querySelector("html");a===s?(r.classList.add("theme-dark"),n.darkTheme=!0,n.emit("darkThemeChange",!0)):a===l&&(r.classList.remove("theme-dark"),n.darkTheme=!1,n.emit("darkThemeChange",!1))}},n.params.init&&(Device.cordova&&n.params.initOnDeviceReady?$(doc).on("deviceready",(function(){n.init()})):n.init()),n}e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t;var a={$:{configurable:!0},t7:{configurable:!0}},r={Dom7:{configurable:!0},$:{configurable:!0},Template7:{configurable:!0},Class:{configurable:!0},Events:{configurable:!0}};return t.prototype.initData=function(){var e=this;e.data={},e.params.data&&"function"==typeof e.params.data?Utils.extend(e.data,e.params.data.bind(e)()):e.params.data&&Utils.extend(e.data,e.params.data),e.methods={},e.params.methods&&Object.keys(e.params.methods).forEach((function(t){"function"==typeof e.params.methods[t]?e.methods[t]=e.params.methods[t].bind(e):e.methods[t]=e.params.methods[t]}))},t.prototype.enableAutoDarkTheme=function(){if(win.matchMedia){var e=this,t=doc.querySelector("html");e.mq.dark&&e.mq.light&&(e.mq.dark.addListener(e.colorSchemeListener),e.mq.light.addListener(e.colorSchemeListener)),e.mq.dark&&e.mq.dark.matches?(t.classList.add("theme-dark"),e.darkTheme=!0,e.emit("darkThemeChange",!0)):e.mq.light&&e.mq.light.matches&&(t.classList.remove("theme-dark"),e.darkTheme=!1,e.emit("darkThemeChange",!1))}},t.prototype.disableAutoDarkTheme=function(){if(win.matchMedia){this.mq.dark&&this.mq.dark.removeListener(this.colorSchemeListener),this.mq.light&&this.mq.light.removeListener(this.colorSchemeListener)}},t.prototype.initAppComponent=function(e){var t=this;t.router.componentLoader(t.params.component,t.params.componentUrl,{componentOptions:{el:t.root[0],root:!0}},(function(a){t.root=$(a),t.root[0].f7=t,t.rootComponent=a.f7Component,e&&e()}),(function(){}))},t.prototype._init=function(){var e=this;return e.initialized||(e.root.addClass("framework7-initializing"),e.rtl&&$("html").attr("dir","rtl"),e.params.autoDarkTheme&&e.enableAutoDarkTheme(),win.addEventListener("offline",(function(){e.online=!1,e.emit("offline"),e.emit("connection",!1)})),win.addEventListener("online",(function(){e.online=!0,e.emit("online"),e.emit("connection",!0)})),e.root.addClass("framework7-root"),$("html").removeClass("ios md aurora").addClass(e.theme),e.params.iosTranslucentBars&&"ios"===e.theme&&Device.ios&&$("html").addClass("ios-translucent-bars"),e.params.iosTranslucentModals&&"ios"===e.theme&&Device.ios&&$("html").addClass("ios-translucent-modals"),Utils.nextFrame((function(){e.root.removeClass("framework7-initializing")})),e.initialized=!0,e.emit("init")),e},t.prototype.init=function(){var e=this;e.params.component||e.params.componentUrl?e.initAppComponent((function(){e._init()})):e._init()},t.prototype.loadModule=function(){for(var e=[],a=arguments.length;a--;)e[a]=arguments[a];return t.loadModule.apply(t,e)},t.prototype.loadModules=function(){for(var e=[],a=arguments.length;a--;)e[a]=arguments[a];return t.loadModules.apply(t,e)},t.prototype.getVnodeHooks=function(e,t){return this.vnodeHooks&&this.vnodeHooks[e]&&this.vnodeHooks[e][t]||[]},a.$.get=function(){return $},a.t7.get=function(){return Template7},r.Dom7.get=function(){return $},r.$.get=function(){return $},r.Template7.get=function(){return Template7},r.Class.get=function(){return e},r.Events.get=function(){return EventsClass},Object.defineProperties(t.prototype,a),Object.defineProperties(t,r),t}(Framework7Class);Framework7.ModalMethods=ModalMethods,Framework7.ConstructorMethods=ConstructorMethods,Framework7.loadModule=loadModule,Framework7.loadModules=function(e){return Promise.all(e.map((function(e){return Framework7.loadModule(e)})))};var globals={},jsonpRequests=0;function Request(e){var t=Utils.extend({},globals);"beforeCreate beforeOpen beforeSend error complete success statusCode".split(" ").forEach((function(e){delete t[e]}));var a=Utils.extend({url:win.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},t),r=Utils.extend({},a,e);function n(e){for(var t,a,n=[],o=arguments.length-1;o-- >0;)n[o]=arguments[o+1];return globals[e]&&(t=globals[e].apply(globals,n)),r[e]&&(a=r[e].apply(r,n)),"boolean"!=typeof t&&(t=!0),"boolean"!=typeof a&&(a=!0),t&&a}if(!1!==n("beforeCreate",r)){r.type&&(r.method=r.type);var o,i=r.url.indexOf("?")>=0?"&":"?",s=r.method.toUpperCase();if(("GET"===s||"HEAD"===s||"OPTIONS"===s||"DELETE"===s)&&r.data)(o="string"==typeof r.data?r.data.indexOf("?")>=0?r.data.split("?")[1]:r.data:Utils.serializeObject(r.data)).length&&(r.url+=i+o,"?"===i&&(i="&"));if("json"===r.dataType&&r.url.indexOf("callback=")>=0){var l,u="f7jsonp_"+(Date.now()+(jsonpRequests+=1)),c=r.url.split("callback="),p=c[0]+"callback="+u;if(c[1].indexOf("&")>=0){var h=c[1].split("&").filter((function(e){return e.indexOf("=")>0})).join("&");h.length>0&&(p+="&"+h)}var d=doc.createElement("script");return d.type="text/javascript",d.onerror=function(){clearTimeout(l),n("error",null,"scripterror","scripterror"),n("complete",null,"scripterror")},d.src=p,win[u]=function(e){clearTimeout(l),n("success",e),d.parentNode.removeChild(d),d=null,delete win[u]},doc.querySelector("head").appendChild(d),void(r.timeout>0&&(l=setTimeout((function(){d.parentNode.removeChild(d),d=null,n("error",null,"timeout","timeout")}),r.timeout)))}"GET"!==s&&"HEAD"!==s&&"OPTIONS"!==s&&"DELETE"!==s||!1===r.cache&&(r.url+=i+"_nocache"+Date.now());var f=new XMLHttpRequest;if(f.requestUrl=r.url,f.requestParameters=r,!1===n("beforeOpen",f,r))return f;f.open(s,r.url,r.async,r.user,r.password);var v=null;if(("POST"===s||"PUT"===s||"PATCH"===s)&&r.data)if(r.processData)if([ArrayBuffer,Blob,Document,FormData].indexOf(r.data.constructor)>=0)v=r.data;else{var g="---------------------------"+Date.now().toString(16);"multipart/form-data"===r.contentType?f.setRequestHeader("Content-Type","multipart/form-data; boundary="+g):f.setRequestHeader("Content-Type",r.contentType),v="";var m=Utils.serializeObject(r.data);if("multipart/form-data"===r.contentType){m=m.split("&");for(var b=[],y=0;y=200&&f.status<300||0===f.status)if("json"===r.dataType){var t;try{e=JSON.parse(f.responseText)}catch(e){t=!0}t?n("error",f,"parseerror","parseerror"):n("success",e,f.status,f)}else n("success",e="text"===f.responseType||""===f.responseType?f.responseText:f.response,f.status,f);else n("error",f,f.status,f.statusText);r.statusCode&&(globals.statusCode&&globals.statusCode[f.status]&&globals.statusCode[f.status](f),r.statusCode[f.status]&&r.statusCode[f.status](f)),n("complete",f,f.status)},f.onerror=function(){n("error",f,f.status,f.status),n("complete",f,"error")},r.timeout>0&&(f.timeout=r.timeout,f.ontimeout=function(){n("error",f,"timeout","timeout"),n("complete",f,"timeout")}),!1===n("beforeSend",f,r)?f:(f.send(v),f)}}function RequestShortcut(e){for(var t,a,r=[],n=arguments.length-1;n-- >0;)r[n]=arguments[n+1];var o=[],i=o[0],s=o[1],l=o[2],u=o[3],c=o[4];"function"==typeof r[1]?(i=(t=r)[0],l=t[1],u=t[2],c=t[3]):(i=(a=r)[0],s=a[1],l=a[2],u=a[3],c=a[4]),[l,u].forEach((function(e){"string"==typeof e&&(c=e,e===l?l=void 0:u=void 0)}));var p={url:i,method:"post"===e||"postJSON"===e?"POST":"GET",data:s,success:l,error:u,dataType:c=c||("json"===e||"postJSON"===e?"json":void 0)};return"postJSON"===e&&Utils.extend(p,{contentType:"application/json",processData:!1,crossDomain:!0,data:"string"==typeof s?s:JSON.stringify(s)}),Request(p)}function RequestShortcutPromise(e){for(var t=[],a=arguments.length-1;a-- >0;)t[a]=arguments[a+1];var r=t[0],n=t[1],o=t[2];return new Promise((function(t,a){RequestShortcut(e,r,n,(function(e,a,r){t({data:e,status:a,xhr:r})}),(function(e,t,r){a({xhr:e,status:t,message:r})}),o)}))}Object.assign(Request,{get:function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];return RequestShortcut.apply(void 0,["get"].concat(e))},post:function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];return RequestShortcut.apply(void 0,["post"].concat(e))},json:function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];return RequestShortcut.apply(void 0,["json"].concat(e))},getJSON:function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];return RequestShortcut.apply(void 0,["json"].concat(e))},postJSON:function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];return RequestShortcut.apply(void 0,["postJSON"].concat(e))}}),Request.promise=function(e){return new Promise((function(t,a){Request(Object.assign(e,{success:function(e,a,r){t({data:e,status:a,xhr:r})},error:function(e,t,r){a({xhr:e,status:t,message:r})}}))}))},Object.assign(Request.promise,{get:function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];return RequestShortcutPromise.apply(void 0,["get"].concat(e))},post:function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];return RequestShortcutPromise.apply(void 0,["post"].concat(e))},json:function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];return RequestShortcutPromise.apply(void 0,["json"].concat(e))},getJSON:function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];return RequestShortcutPromise.apply(void 0,["json"].concat(e))},postJSON:function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];return RequestShortcutPromise.apply(void 0,["postJSON"].concat(e))}}),Request.setup=function(e){e.type&&!e.method&&Utils.extend(e,{method:e.type}),Utils.extend(globals,e)};var DeviceModule={name:"device",proto:{device:Device},static:{device:Device},on:{init:function(){var e=[],t=doc.querySelector("html"),a=doc.querySelector('meta[name="apple-mobile-web-app-status-bar-style"]');t&&(Device.standalone&&Device.ios&&a&&"black-translucent"===a.content&&e.push("device-full-viewport"),e.push("device-pixel-ratio-"+Math.floor(Device.pixelRatio)),Device.os&&!Device.desktop?e.push("device-"+Device.os):Device.desktop&&(e.push("device-desktop"),Device.os&&e.push("device-"+Device.os)),(Device.cordova||Device.phonegap)&&e.push("device-cordova"),e.forEach((function(e){t.classList.add(e)})))}}},SupportModule={name:"support",proto:{support:Support},static:{support:Support}},UtilsModule={name:"utils",proto:{utils:Utils},static:{utils:Utils}},ResizeModule={name:"resize",instance:{getSize:function(){if(!this.root[0])return{width:0,height:0,left:0,top:0};var e=this.root.offset(),t=[this.root[0].offsetWidth,this.root[0].offsetHeight,e.left,e.top],a=t[0],r=t[1],n=t[2],o=t[3];return this.width=a,this.height=r,this.left=n,this.top=o,{width:a,height:r,left:n,top:o}}},on:{init:function(){var e=this;e.getSize(),win.addEventListener("resize",(function(){e.emit("resize")}),!1),win.addEventListener("orientationchange",(function(){e.emit("orientationchange")}))},orientationchange:function(){this.device.ipad&&(doc.body.scrollLeft=0,setTimeout((function(){doc.body.scrollLeft=0}),0))},resize:function(){this.getSize()}}},RequestModule={name:"request",proto:{request:Request},static:{request:Request}};function initTouch(){var e,t,a,r,n,o,i,s,l,u,c,p,h=this,d=h.params.touch,f=d[h.theme+"TouchRipple"];function v(e){var t,a=$(e),r=a.parents(d.activeStateElements);if(a.closest(".no-active-state").length)return null;if(a.is(d.activeStateElements)&&(t=a),r.length>0&&(t=t?t.add(r):r),t&&t.length>1){for(var n,o=[],i=0;i0}function m(){s&&s.addClass("active-state")}function b(){s&&(s.removeClass("active-state"),s=null)}function y(e,t,a){e&&(u=h.touchRipple.create(e,t,a))}function w(){u&&(u.remove(),u=void 0,c=void 0)}function C(a){(c=function(e){var t=d.touchRippleElements,a=$(e);if(a.is(t))return!a.hasClass("no-ripple")&&a;if(a.parents(t).length>0){var r=a.parents(t).eq(0);return!r.hasClass("no-ripple")&&r}return!1}(a))&&0!==c.length?g(c)?(clearTimeout(p),p=setTimeout((function(){w(),y(c,e,t)}),80)):(w(),y(c,e,t)):c=void 0}function x(){clearTimeout(p),w()}function k(){u||!c||r?w():(clearTimeout(p),y(c,e,t),setTimeout(w,0))}function S(){$(".active-state").removeClass("active-state"),f&&k()}function E(e,t){h.emit({events:e,data:[t]})}function T(e){E("touchstart touchstart:active",e)}function P(e){E("touchmove touchmove:active",e)}function R(e){E("touchend touchend:active",e)}function O(e){E("touchstart:passive",e)}function D(e){E("touchmove:passive",e)}function L(e){E("touchend:passive",e)}function M(e){E(e.type+" "+e.type+":active",e)}function N(e){E(e.type+":passive",e)}Device.ios&&Device.webView&&win.addEventListener("touchstart",(function(){}));var A=!!Support.passiveListener&&{passive:!0},U=!Support.passiveListener||{passive:!0,capture:!0},B=!!Support.passiveListener&&{passive:!1},H=!Support.passiveListener||{passive:!1,capture:!0};doc.addEventListener("click",(function(e){E("click",e)}),!0),Support.passiveListener?(doc.addEventListener(h.touchEvents.start,T,H),doc.addEventListener(h.touchEvents.move,P,B),doc.addEventListener(h.touchEvents.end,R,B),doc.addEventListener(h.touchEvents.start,O,U),doc.addEventListener(h.touchEvents.move,D,A),doc.addEventListener(h.touchEvents.end,L,A),Support.touch&&Support.gestures&&(doc.addEventListener("gesturestart",M,B),doc.addEventListener("gesturechange",M,B),doc.addEventListener("gestureend",M,B),doc.addEventListener("gesturestart",N,A),doc.addEventListener("gesturechange",N,A),doc.addEventListener("gestureend",N,A))):(doc.addEventListener(h.touchEvents.start,(function(e){T(e),O(e)}),!0),doc.addEventListener(h.touchEvents.move,(function(e){P(e),D(e)}),!1),doc.addEventListener(h.touchEvents.end,(function(e){R(e),L(e)}),!1),Support.touch&&Support.gestures&&(doc.addEventListener("gesturestart",(function(e){M(e),N(e)}),!1),doc.addEventListener("gesturechange",(function(e){M(e),N(e)}),!1),doc.addEventListener("gestureend",(function(e){M(e),N(e)}),!1))),Support.touch?(h.on("click",(function(e){var t=e&&e.detail&&"f7Overswipe"===e.detail,r=i;return a&&e.target!==a&&(r=!t),d.tapHold&&d.tapHoldPreventClicks&&n&&(r=!0),r&&(e.stopImmediatePropagation(),e.stopPropagation(),e.preventDefault()),d.tapHold&&(o=setTimeout((function(){n=!1}),Device.ios||Device.androidChrome?100:400)),i=!1,a=null,!r})),h.on("touchstart",(function(u){return r=!1,n=!1,i=!1,u.targetTouches.length>1?(s&&b(),!0):(u.touches.length>1&&s&&b(),d.tapHold&&(o&&clearTimeout(o),o=setTimeout((function(){u&&u.touches&&u.touches.length>1||(n=!0,u.preventDefault(),i=!0,$(u.target).trigger("taphold",u),h.emit("taphold",u))}),d.tapHoldDelay)),a=u.target,e=u.targetTouches[0].pageX,t=u.targetTouches[0].pageY,d.activeState&&((s=v(a))&&!g(s)?m():s&&(l=setTimeout(m,80))),f&&C(a),!0)})),h.on("touchmove",(function(a){var n,s;if("touchmove"===a.type&&(n=a.targetTouches[0],s=d.touchClicksDistanceThreshold),s&&n){var u=n.pageX,c=n.pageY;(Math.abs(u-e)>s||Math.abs(c-t)>s)&&(r=!0)}else r=!0;r&&(i=!0,d.tapHold&&clearTimeout(o),d.activeState&&(clearTimeout(l),b()),f&&x())})),h.on("touchend",(function(e){return clearTimeout(l),clearTimeout(o),doc.activeElement===e.target?(d.activeState&&b(),f&&k(),!0):(d.activeState&&(m(),setTimeout(b,0)),f&&k(),!(d.tapHoldPreventClicks&&n||i)||(e.cancelable&&e.preventDefault(),i=!0,!1))})),doc.addEventListener("touchcancel",(function(){a=null,clearTimeout(l),clearTimeout(o),d.activeState&&b(),f&&k()}),{passive:!0})):d.activeState&&(h.on("touchstart",(function(a){var r=v(a.target);r&&(r.addClass("active-state"),"which"in a&&3===a.which&&setTimeout((function(){$(".active-state").removeClass("active-state")}),0)),f&&(e=a.pageX,t=a.pageY,C(a.target,a.pageX,a.pageY))})),h.on("touchmove",(function(){d.activeStateOnMouseMove||$(".active-state").removeClass("active-state"),f&&x()})),h.on("touchend",S),doc.addEventListener("pointercancel",S,{passive:!0})),doc.addEventListener("contextmenu",(function(e){d.disableContextMenu&&(Device.ios||Device.android||Device.cordova)&&e.preventDefault(),f&&(s&&b(),k())}))}var TouchModule={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"}},instance:{touchEvents:{start:Support.touch?"touchstart":Support.pointerEvents?"pointerdown":"mousedown",move:Support.touch?"touchmove":Support.pointerEvents?"pointermove":"mousemove",end:Support.touch?"touchend":Support.pointerEvents?"pointerup":"mouseup"}},on:{init:initTouch}};function lexer(e){for(var t=[],a=0;a=48&&l<=57||l>=65&&l<=90||l>=97&&l<=122||95===l))break;i+=e[s++]}if(!i)throw new TypeError("Missing parameter name at "+a);t.push({type:"NAME",index:a,value:i}),a=s}else t.push({type:"CLOSE",index:a,value:e[a++]});else t.push({type:"OPEN",index:a,value:e[a++]});else t.push({type:"ESCAPED_CHAR",index:a++,value:e[a++]});else t.push({type:"MODIFIER",index:a,value:e[a++]})}return t.push({type:"END",index:a,value:""}),t}function parse(e,t){void 0===t&&(t={});for(var a=lexer(e),r=t.prefixes,n=void 0===r?"./":r,o="[^"+escapeString(t.delimiter||"/#?")+"]+?",i=[],s=0,l=0,u="",c=function(e){if(l-1:void 0===w;n||(d+="(?:"+h+"(?="+p+"))?"),C||(d+="(?="+h+"|"+p+")")}return new RegExp(d,flags(a))}function pathToRegexp(e,t,a){return e instanceof RegExp?regexpToRegexp(e,t):Array.isArray(e)?arrayToRegexp(e,t,a):stringToRegexp(e,t,a)}var History={queue:[],clearQueue:function(){0!==History.queue.length&&History.queue.shift()()},routerQueue:[],clearRouterQueue:function(){if(0!==History.routerQueue.length){var e=History.routerQueue.pop(),t=e.router,a=e.stateUrl,r=e.action,n=t.params.animate;!1===t.params.pushStateAnimate&&(n=!1),"back"===r&&t.back({animate:n,pushState:!1}),"load"===r&&t.navigate(a,{animate:n,pushState:!1})}},handle:function(e){if(!History.blockPopstate){var t=e.state;History.previousState=History.state,History.state=t,History.allowChange=!0,History.clearQueue(),(t=History.state)||(t={}),this.views.forEach((function(e){var a=e.router,r=t[e.id];if(!r&&e.params.pushState&&(r={url:e.router.history[0]}),r){var n=r.url||void 0,o=a.params.animate;!1===a.params.pushStateAnimate&&(o=!1),n!==a.url&&(a.history.indexOf(n)>=0?a.allowPageChange?a.back({animate:o,pushState:!1}):History.routerQueue.push({action:"back",router:a}):a.allowPageChange?a.navigate(n,{animate:o,pushState:!1}):History.routerQueue.unshift({action:"load",stateUrl:n,router:a}))}}))}},initViewState:function(e,t){var a,r=Utils.extend({},History.state||{},((a={})[e]=t,a));History.state=r,win.history.replaceState(r,"")},push:function(e,t,a){var r;if(History.allowChange){History.previousState=History.state;var n=Utils.extend({},History.previousState||{},((r={})[e]=t,r));History.state=n,win.history.pushState(n,"",a)}else History.queue.push((function(){History.push(e,t,a)}))},replace:function(e,t,a){var r;if(History.allowChange){History.previousState=History.state;var n=Utils.extend({},History.previousState||{},((r={})[e]=t,r));History.state=n,win.history.replaceState(n,"",a)}else History.queue.push((function(){History.replace(e,t,a)}))},go:function(e){History.allowChange=!1,win.history.go(e)},back:function(){History.allowChange=!1,win.history.back()},allowChange:!0,previousState:{},state:win.history.state,blockPopstate:!0,init:function(e){$(win).on("load",(function(){setTimeout((function(){History.blockPopstate=!1}),0)})),doc.readyState&&"complete"===doc.readyState&&(History.blockPopstate=!1),$(win).on("popstate",History.handle.bind(e))}};function SwipeBack(e){var t,a,r,n,o,i,s,l,u,c=e,p=c.$el,h=c.$navbarsEl,d=c.app,f=c.params,v=!1,g=!1,m={},b=[],y=[],w=!0,C=[],x=[],k=f[d.theme+"SwipeBackAnimateShadow"],S=f[d.theme+"SwipeBackAnimateOpacity"],E=f[d.theme+"SwipeBackActiveArea"],T=f[d.theme+"SwipeBackThreshold"],P=d.rtl?"right center":"left center",R=d.rtl?"calc(100% - var(--f7-navbar-large-title-padding-left) - var(--f7-safe-area-left)) center":"calc(var(--f7-navbar-large-title-padding-left) + var(--f7-safe-area-left)) center";function O(e){void 0===e&&(e={});var t=e.progress,a=e.reset,r=e.transition,n=e.reflow,o=["overflow","transform","transform-origin","opacity"];if(!0===r||!1===r)for(var i=0;i0||$(e.target).closest(".page-master, .page-master-detail").length>0&&f.masterDetailBreakpoint>0&&d.width>=f.masterDetailBreakpoint||(g=!1,v=!0,t=void 0,m.x="touchstart"===e.type?e.targetTouches[0].pageX:e.pageX,m.y="touchstart"===e.type?e.targetTouches[0].pageY:e.pageY,n=Utils.now(),o=c.dynamicNavbar)}function L(e){if(v){var n="touchmove"===e.type?e.targetTouches[0].pageX:e.pageX,u="touchmove"===e.type?e.targetTouches[0].pageY:e.pageY;if(void 0===t&&(t=!!(t||Math.abs(u-m.y)>Math.abs(n-m.x))||nm.x&&d.rtl),t||e.f7PreventSwipeBack||d.preventSwipeBack)v=!1;else{if(!g){var w=!1,D=$(e.target),L=D.closest(".swipeout");L.length>0&&(!d.rtl&&L.find(".swipeout-actions-left").length>0&&(w=!0),d.rtl&&L.find(".swipeout-actions-right").length>0&&(w=!0)),((b=D.closest(".page")).hasClass("no-swipeback")||D.closest(".no-swipeback, .card-opened").length>0)&&(w=!0),(y=p.find(".page-previous:not(.stacked)")).length>1&&(y=y.eq(y.length-1));m.x,p.offset().left;if(a=p.width(),(d.rtl?m.xE)&&(w=!0),0!==y.length&&0!==b.length||(w=!0),w)return void(v=!1);k&&0===(i=b.find(".page-shadow-effect")).length&&(i=$('
                          '),b.append(i)),S&&0===(s=y.find(".page-opacity-effect")).length&&(s=$('
                          '),y.append(s)),o&&(C=h.find(".navbar-current:not(.stacked)"),(x=h.find(".navbar-previous:not(.stacked)")).length>1&&(x=x.eq(x.length-1)),l=function(){var e,t,a=[],r=d.rtl?-1:1,n=C.hasClass("navbar-transparent")&&!C.hasClass("navbar-large")&&!C.hasClass("navbar-transparent-visible"),o=C.hasClass("navbar-large"),i=C.hasClass("navbar-large-collapsed"),s=C.hasClass("navbar-large-transparent")||C.hasClass("navbar-large")&&C.hasClass("navbar-transparent"),l=x.hasClass("navbar-transparent")&&!x.hasClass("navbar-large")&&!x.hasClass("navbar-transparent-visible"),u=x.hasClass("navbar-large"),c=x.hasClass("navbar-large-collapsed"),p=x.hasClass("navbar-large-transparent")||x.hasClass("navbar-large")&&x.hasClass("navbar-transparent"),h=o&&!i,v=u&&!c,g=C.find(".left, .title, .right, .subnavbar, .fading, .title-large, .navbar-bg"),m=x.find(".left, .title, .right, .subnavbar, .fading, .title-large, .navbar-bg");return f.iosAnimateNavbarBackIcon&&(e=C.hasClass("sliding")||C.find(".navbar-inner.sliding").length?C.find(".left").find(".back .icon + span").eq(0):C.find(".left.sliding").find(".back .icon + span").eq(0),t=x.hasClass("sliding")||x.find(".navbar-inner.sliding").length?x.find(".left").find(".back .icon + span").eq(0):x.find(".left.sliding").find(".back .icon + span").eq(0),e.length&&m.each((function(t,a){$(a).hasClass("title")&&(a.f7NavbarLeftOffset+=e.prev(".icon")[0].offsetWidth)}))),g.each((function(t,l){var u=$(l),c=u.hasClass("subnavbar"),p=u.hasClass("left"),d=u.hasClass("title"),g=u.hasClass("navbar-bg");if((!d&&!g||!n)&&(h||!u.hasClass(".title-large"))){var m={el:l};if(h){if(d)return;if(u.hasClass("title-large"))return a.indexOf(m)<0&&a.push(m),m.overflow="visible",void u.find(".title-large-text").each((function(e,t){a.push({el:t,transform:function(e){return"translateX("+100*e*r+"%)"}})}))}if(v&&(h||u.hasClass("title-large")&&(a.indexOf(m)<0&&a.push(m),m.opacity=0),p))return a.indexOf(m)<0&&a.push(m),m.opacity=function(e){return 1-Math.pow(e,.33)},void u.find(".back span").each((function(e,t){a.push({el:t,"transform-origin":P,transform:function(e){return"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(g)return a.indexOf(m)<0&&a.push(m),h||v||(i?(s&&(m.className="ios-swipeback-navbar-bg-large"),m.transform=function(e){return"translateX("+100*e*r+"%) translateY(calc(-1 * var(--f7-navbar-large-title-height)))"}):m.transform=function(e){return"translateX("+100*e*r+"%)"}),!h&&v&&(m.className="ios-swipeback-navbar-bg-large",m.transform=function(e){return"translateX("+100*e*r+"%) translateY(calc(-1 * "+(1-e)+" * var(--f7-navbar-large-title-height)))"}),h&&v&&(m.transform=function(e){return"translateX("+100*e*r+"%)"}),void(h&&!v&&(m.transform=function(e){return"translateX("+100*e*r+"%) translateY(calc(-"+e+" * var(--f7-navbar-large-title-height)))"}));if(!u.hasClass("title-large")){var b=u.hasClass("sliding")||u.parents(".navbar-inner.sliding").length;if(a.indexOf(m)<0&&a.push(m),(!c||c&&!b)&&(m.opacity=function(e){return 1-Math.pow(e,.33)}),b){var y=m;if(p&&e.length&&f.iosAnimateNavbarBackIcon){var w={el:e[0]};y=w,a.push(w)}y.transform=function(e){var t=e*y.el.f7NavbarRightOffset;return 1===Device.pixelRatio&&(t=Math.round(t)),c&&o?"translate3d("+t+"px, calc(-1 * var(--f7-navbar-large-collapse-progress) * var(--f7-navbar-large-title-height)), 0)":"translate3d("+t+"px,0,0)"}}}}})),m.each((function(e,n){var o=$(n),i=o.hasClass("subnavbar"),s=o.hasClass("left"),d=o.hasClass("title"),g=o.hasClass("navbar-bg");if(!d&&!g||!l){var m={el:n};if(v){if(d)return;if(a.indexOf(m)<0&&a.push(m),o.hasClass("title-large"))return m.opacity=1,m.overflow="visible",void o.find(".title-large-text").each((function(e,t){a.push({el:t,"transform-origin":R,opacity:function(e){return Math.pow(e,3)},transform:function(e){return"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(g)return a.indexOf(m)<0&&a.push(m),h||v||(c?(p&&(m.className="ios-swipeback-navbar-bg-large"),m.transform=function(e){return"translateX("+(100*e-100)*r+"%) translateY(calc(-1 * var(--f7-navbar-large-title-height)))"}):m.transform=function(e){return"translateX("+(100*e-100)*r+"%)"}),!h&&v&&(m.transform=function(e){return"translateX("+(100*e-100)*r+"%) translateY(calc(-1 * "+(1-e)+" * var(--f7-navbar-large-title-height)))"}),h&&!v&&(m.className="ios-swipeback-navbar-bg-large",m.transform=function(e){return"translateX("+(100*e-100)*r+"%) translateY(calc(-"+e+" * var(--f7-navbar-large-title-height)))"}),void(h&&v&&(m.transform=function(e){return"translateX("+(100*e-100)*r+"%)"}));if(!o.hasClass("title-large")){var b=o.hasClass("sliding")||x.children(".navbar-inner.sliding").length;if(a.indexOf(m)<0&&a.push(m),(!i||i&&!b)&&(m.opacity=function(e){return Math.pow(e,3)}),b){var y=m;if(s&&t.length&&f.iosAnimateNavbarBackIcon){var w={el:t[0]};y=w,a.push(w)}y.transform=function(e){var t=y.el.f7NavbarLeftOffset*(1-e);return 1===Device.pixelRatio&&(t=Math.round(t)),i&&u?"translate3d("+t+"px, calc(-1 * var(--f7-navbar-large-collapse-progress) * var(--f7-navbar-large-title-height)), 0)":"translate3d("+t+"px,0,0)"}}}}})),a}()),$(".sheet.modal-in").length>0&&d.sheet&&d.sheet.close($(".sheet.modal-in"))}e.f7PreventSwipePanel=!0,g=!0,d.preventSwipePanelBySwipeBack=!0,e.preventDefault();var M=d.rtl?-1:1;(r=(n-m.x-T)*M)<0&&(r=0);var N=Math.min(Math.max(r/a,0),1),A={percentage:N,progress:N,currentPageEl:b[0],previousPageEl:y[0],currentNavbarEl:C[0],previousNavbarEl:x[0]};p.trigger("swipeback:move",A),c.emit("swipebackMove",A);var U=r*M,B=(r/5-a/5)*M;d.rtl?(U=Math.max(U,-a),B=Math.max(B,0)):(U=Math.min(U,a),B=Math.min(B,0)),1===Device.pixelRatio&&(U=Math.round(U),B=Math.round(B)),c.swipeBackActive=!0,$([b[0],y[0]]).addClass("page-swipeback-active"),b.transform("translate3d("+U+"px,0,0)"),k&&(i[0].style.opacity=1-1*N),"ios"===d.theme&&y.transform("translate3d("+B+"px,0,0)"),S&&(s[0].style.opacity=1-1*N),o&&O({progress:N})}}}function M(){if(d.preventSwipePanelBySwipeBack=!1,!v||!g)return v=!1,void(g=!1);v=!1,g=!1,c.swipeBackActive=!1;var e=$([b[0],y[0]]);if(e.removeClass("page-swipeback-active"),0===r)return e.transform(""),i&&i.length>0&&i.remove(),s&&s.length>0&&s.remove(),void(o&&O({reset:!0}));var t=Utils.now()-n,l=!1;(t<300&&r>10||t>=300&&r>a/2)&&(b.removeClass("page-current").addClass("page-next"+("ios"!==d.theme?" page-next-on-right":"")),y.removeClass("page-previous").addClass("page-current").removeAttr("aria-hidden"),i&&(i[0].style.opacity=""),s&&(s[0].style.opacity=""),o&&(c.setNavbarPosition(C,"next"),c.setNavbarPosition(x,"current",!1)),l=!0),e.addClass("page-transitioning page-transitioning-swipeback"),l||(b[0]._clientLeft=b[0].clientLeft),e.transform(""),o&&O({progress:l?1:0,transition:!0,reflow:!l}),w=!1,c.allowPageChange=!1;var u={currentPageEl:b[0],previousPageEl:y[0],currentNavbarEl:C[0],previousNavbarEl:x[0]};l?(c.currentRoute=y[0].f7Page.route,c.currentPage=y[0],c.pageCallback("beforeOut",b,C,"current","next",{route:b[0].f7Page.route,swipeBack:!0}),c.pageCallback("beforeIn",y,x,"previous","current",{route:y[0].f7Page.route,swipeBack:!0},b[0]),p.trigger("swipeback:beforechange",u),c.emit("swipebackBeforeChange",u)):(p.trigger("swipeback:beforereset",u),c.emit("swipebackBeforeReset",u)),b.transitionEnd((function(){e.removeClass("page-transitioning page-transitioning-swipeback"),o&&O({reset:!0,transition:!1}),w=!0,c.allowPageChange=!0,l?(1===c.history.length&&c.history.unshift(c.url),c.history.pop(),c.saveHistory(),f.pushState&&History.back(),c.pageCallback("afterOut",b,C,"current","next",{route:b[0].f7Page.route,swipeBack:!0}),c.pageCallback("afterIn",y,x,"previous","current",{route:y[0].f7Page.route,swipeBack:!0}),f.stackPages&&c.initialPages.indexOf(b[0])>=0?(b.addClass("stacked"),o&&C.addClass("stacked")):(c.pageCallback("beforeRemove",b,C,"next",{swipeBack:!0}),c.removePage(b),o&&c.removeNavbar(C)),p.trigger("swipeback:afterchange",u),c.emit("swipebackAfterChange",u),c.emit("routeChanged",c.currentRoute,c.previousRoute,c),f.preloadPreviousPage&&c.back(c.history[c.history.length-2],{preload:!0})):(p.trigger("swipeback:afterreset",u),c.emit("swipebackAfterReset",u)),i&&i.length>0&&i.remove(),s&&s.length>0&&s.remove()}))}u=!("touchstart"!==d.touchEvents.start||!Support.passiveListener)&&{passive:!0,capture:!1},p.on(d.touchEvents.start,D,u),d.on("touchmove:active",L),d.on("touchend:passive",M),c.on("routerDestroy",(function(){var e=!("touchstart"!==d.touchEvents.start||!Support.passiveListener)&&{passive:!0,capture:!1};p.off(d.touchEvents.start,D,e),d.off("touchmove:active",L),d.off("touchend:passive",M)}))}function redirect(e,t,a){var r=this,n=t.route.redirect;if(a.initial&&r.params.pushState&&(a.replaceState=!0,a.history=!0),"function"==typeof n){r.allowPageChange=!1;var o=n.call(r,t,(function(t,n){void 0===n&&(n={}),r.allowPageChange=!0,r[e](t,Utils.extend({},a,n))}),(function(){r.allowPageChange=!0}));return o&&"string"==typeof o?(r.allowPageChange=!0,r[e](o,a)):r}return r[e](n,a)}function processQueue(e,t,a,r,n,o,i){var s=[];Array.isArray(a)?s.push.apply(s,a):a&&"function"==typeof a&&s.push(a),t&&(Array.isArray(t)?s.push.apply(s,t):s.push(t)),function t(){0!==s.length?s.shift().call(e,r,n,(function(){t()}),(function(){i()})):o()}()}function processRouteQueue(e,t,a,r){var n=this;function o(){e&&e.route&&(n.params.routesBeforeEnter||e.route.beforeEnter)?(n.allowPageChange=!1,processQueue(n,n.params.routesBeforeEnter,e.route.beforeEnter,e,t,(function(){n.allowPageChange=!0,a()}),(function(){r()}))):a()}t&&t.route&&(n.params.routesBeforeLeave||t.route.beforeLeave)?(n.allowPageChange=!1,processQueue(n,n.params.routesBeforeLeave,t.route.beforeLeave,e,t,(function(){n.allowPageChange=!0,o()}),(function(){r()}))):o()}function appRouterCheck(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 asyncComponent(e,t,a,r){function n(e){e.then((function(e){a({component:e.default||e._default||e})})).catch((function(e){throw r(),new Error(e)}))}if(t instanceof Promise)n(t);else{var o=t.call(e);o instanceof Promise?n(o):a({component:o})}}function refreshPage(){return appRouterCheck(this,"refreshPage"),this.navigate(this.currentRoute.url,{ignoreCache:!0,reloadCurrent:!0})}function forward(e,t){void 0===t&&(t={});var a,r,n,o=this,i=$(e),s=o.app,l=o.view,u=Utils.extend(!1,{animate:o.params.animate,pushState:!0,replaceState:!1,history:!0,reloadCurrent:o.params.reloadPages,reloadPrevious:!1,reloadAll:!1,clearPreviousHistory:!1,reloadDetail:o.params.reloadDetail,on:{}},t),c=o.params.masterDetailBreakpoint>0,p=c&&u.route&&u.route.route&&!0===u.route.route.master,h=o.currentRoute.modal;if(h||"popup popover sheet loginScreen actions customModal panel".split(" ").forEach((function(e){o.currentRoute&&o.currentRoute.route&&o.currentRoute.route[e]&&(h=!0,n=e)})),h){var d=o.currentRoute.modal||o.currentRoute.route.modalInstance||s[n].get(),f=o.history[o.history.length-2],v=o.findMatchingRoute(f);!v&&f&&(v={url:f,path:f.split("?")[0],query:Utils.parseUrlQuery(f),route:{path:f.split("?")[0],url:f}}),o.modalRemove(d)}var g,m,b,y,w=o.dynamicNavbar,C=o.$el,x=i,k=u.reloadPrevious||u.reloadCurrent||u.reloadAll;if(o.allowPageChange=!1,0===x.length)return o.allowPageChange=!0,o;x.length&&o.removeThemeElements(x),w&&(b=x.children(".navbar"),m=o.$navbarsEl,0===b.length&&x[0]&&x[0].f7Page&&(b=x[0].f7Page.$navbarEl)),u.route&&u.route.route&&u.route.route.keepAlive&&!u.route.route.keepAliveData&&(u.route.route.keepAliveData={pageEl:i[0]});var S,E,T,P,R=C.children(".page:not(.stacked)").filter((function(e,t){return t!==x[0]}));if(w&&(S=m.children(".navbar:not(.stacked)").filter((function(e,t){return t!==b[0]}))),u.reloadPrevious&&R.length<2)return o.allowPageChange=!0,o;if(c&&!u.reloadAll){for(var O=0;O=o.params.masterDetailBreakpoint&&a}E&&(P=!r||T||u.reloadAll||u.reloadCurrent);var L="next";if(u.reloadCurrent||u.reloadAll||T?L="current":u.reloadPrevious&&(L="previous"),x.removeClass("page-previous page-current page-next").addClass("page-"+L+(p?" page-master":"")+(E?" page-master-detail":"")+(P?" page-master-detail-root":"")).removeClass("stacked").trigger("page:unstack").trigger("page:position",{position:L}),o.emit("pageUnstack",x[0]),o.emit("pagePosition",x[0],L),(p||E)&&(x.trigger("page:role",{role:p?"master":"detail",root:!!P}),o.emit("pageRole",x[0],{role:p?"master":"detail",detailRoot:!!P})),w&&b.length&&(b.removeClass("navbar-previous navbar-current navbar-next").addClass("navbar-"+L+(p?" navbar-master":"")+(E?" navbar-master-detail":"")+(P?" navbar-master-detail-root":"")).removeClass("stacked"),b.trigger("navbar:position",{position:L}),o.emit("navbarPosition",b[0],L),(p||E)&&o.emit("navbarRole",b[0],{role:p?"master":"detail",detailRoot:!!P})),u.reloadCurrent||T)g=R.eq(R.length-1),w&&(y=$(s.navbar.getElByPage(g)));else if(u.reloadPrevious)g=R.eq(R.length-2),w&&(y=$(s.navbar.getElByPage(g)));else if(u.reloadAll)g=R.filter((function(e,t){return t!==x[0]})),w&&(y=S.filter((function(e,t){return t!==b[0]})));else{var M=[],N=[];if(R.length>1){var A=0;for(A=0;A1||T)&&(g=g.filter((function(e,t){return!t.classList.contains("page-master")}))),y&&(y.length>1||T)&&(y=y.filter((function(e,t){return!t.classList.contains("navbar-master")})))),o.params.pushState&&(u.pushState||u.replaceState)&&!u.reloadPrevious){var B=o.params.pushStateRoot||"";History[u.reloadCurrent||T&&r||u.reloadAll||u.replaceState?"replace":"push"](l.id,{url:u.route.url},B+o.params.pushStateSeparator+u.route.url)}u.reloadPrevious||(o.currentPageEl=x[0],w&&b.length?o.currentNavbarEl=b[0]:delete o.currentNavbarEl,o.currentRoute=u.route);var H=u.route.url;u.history&&(((u.reloadCurrent||T&&r)&&o.history.length)>0||u.replaceState?o.history[o.history.length-(u.reloadPrevious?2:1)]=H:u.reloadPrevious?o.history[o.history.length-2]=H:u.reloadAll?o.history=[H]:o.history.push(H)),o.saveHistory();var q=x.parents(doc).length>0,j=x[0].f7Component;if(u.reloadPrevious?(j&&!q?j.$mount((function(e){$(e).insertBefore(g)})):x.insertBefore(g),w&&b.length&&(b.find(".title-large").length&&b.addClass("navbar-large"),y.length?b.insertBefore(y):(o.$navbarsEl.parents(doc).length||o.$el.prepend(o.$navbarsEl),m.append(b)))):(g.next(".page")[0]!==x[0]&&(j&&!q?j.$mount((function(e){C.append(e)})):C.append(x[0])),w&&b.length&&(b.find(".title-large").length&&b.addClass("navbar-large"),o.$navbarsEl.parents(doc).length||o.$el.prepend(o.$navbarsEl),m.append(b[0]))),q?u.route&&u.route.route&&u.route.route.keepAlive&&!x[0].f7PageMounted&&(x[0].f7PageMounted=!0,o.pageCallback("mounted",x,b,L,k?L:"current",u,g)):o.pageCallback("mounted",x,b,L,k?L:"current",u,g),(u.reloadCurrent||T)&&g.length>0?o.params.stackPages&&o.initialPages.indexOf(g[0])>=0?(g.addClass("stacked"),g.trigger("page:stack"),o.emit("pageStack",g[0]),w&&y.addClass("stacked")):(o.pageCallback("beforeOut",g,y,"current",void 0,u),o.pageCallback("afterOut",g,y,"current",void 0,u),o.pageCallback("beforeRemove",g,y,"current",void 0,u),o.removePage(g),w&&y&&y.length&&o.removeNavbar(y)):u.reloadAll?g.each((function(e,t){var a=$(t),r=$(s.navbar.getElByPage(a));o.params.stackPages&&o.initialPages.indexOf(a[0])>=0?(a.addClass("stacked"),a.trigger("page:stack"),o.emit("pageStack",a[0]),w&&r.addClass("stacked")):(a.hasClass("page-current")&&(o.pageCallback("beforeOut",g,y,"current",void 0,u),o.pageCallback("afterOut",g,y,"current",void 0,u)),o.pageCallback("beforeRemove",a,y&&y.eq(e),"previous",void 0,u),o.removePage(a),w&&r.length&&o.removeNavbar(r))})):u.reloadPrevious&&(o.params.stackPages&&o.initialPages.indexOf(g[0])>=0?(g.addClass("stacked"),g.trigger("page:stack"),o.emit("pageStack",g[0]),w&&y.addClass("stacked")):(o.pageCallback("beforeRemove",g,y,"previous",void 0,u),o.removePage(g),w&&y&&y.length&&o.removeNavbar(y))),u.route.route.tab&&o.tabLoad(u.route.route.tab,Utils.extend({},u,{history:!1,pushState:!1})),c&&l.checkMasterDetailBreakpoint(),o.pageCallback("init",x,b,L,k?L:"current",u,g),u.reloadCurrent||u.reloadAll||T)return o.allowPageChange=!0,o.pageCallback("beforeIn",x,b,L,"current",u),x.removeAttr("aria-hidden"),w&&b&&b.removeAttr("aria-hidden"),o.pageCallback("afterIn",x,b,L,"current",u),u.reloadCurrent&&u.clearPreviousHistory&&o.clearPreviousHistory(),T&&(o.setPagePosition($(a),"previous"),a.f7Page&&a.f7Page.navbarEl&&o.setNavbarPosition($(a.f7Page.navbarEl),"previous")),o;if(u.reloadPrevious)return o.allowPageChange=!0,o;function F(){o.setPagePosition(x,"current",!1),o.setPagePosition(g,"previous",!g.hasClass("page-master")),w&&(o.setNavbarPosition(b,"current",!1),o.setNavbarPosition(y,"previous",!y.hasClass("navbar-master"))),o.allowPageChange=!0,o.pageCallback("afterOut",g,y,"current","previous",u),o.pageCallback("afterIn",x,b,"next","current",u);var e=(o.params.preloadPreviousPage||o.params[s.theme+"SwipeBack"])&&!p;e||(x.hasClass("smart-select-page")||x.hasClass("photo-browser-page")||x.hasClass("autocomplete-page")||x.hasClass("color-picker-page"))&&(e=!0),e||(o.params.stackPages?(g.addClass("stacked"),g.trigger("page:stack"),o.emit("pageStack",g[0]),w&&y.addClass("stacked")):x.attr("data-name")&&"smart-select-page"===x.attr("data-name")||(o.pageCallback("beforeRemove",g,y,"previous",void 0,u),o.removePage(g),w&&y.length&&o.removeNavbar(y))),u.clearPreviousHistory&&o.clearPreviousHistory(),o.emit("routeChanged",o.currentRoute,o.previousRoute,o),o.params.pushState&&History.clearRouterQueue()}function V(){o.setPagePosition(g,"current",!1),o.setPagePosition(x,"next",!1),w&&(o.setNavbarPosition(y,"current",!1),o.setNavbarPosition(b,"next",!1))}if(o.pageCallback("beforeOut",g,y,"current","previous",u),o.pageCallback("beforeIn",x,b,"next","current",u),!u.animate||p&&s.width>=o.params.masterDetailBreakpoint)F();else{var z=o.params[o.app.theme+"PageLoadDelay"],W=o.params.transition;u.transition&&(W=u.transition),!W&&o.currentRoute&&o.currentRoute.route&&(W=o.currentRoute.route.transition),!W&&o.currentRoute&&o.currentRoute.route.options&&(W=o.currentRoute.route.options.transition),W&&(x[0].f7PageTransition=W),z?setTimeout((function(){V(),o.animate(g,x,y,b,"forward",W,(function(){F()}))}),z):(V(),o.animate(g,x,y,b,"forward",W,(function(){F()})))}return o}function load(e,t,a){void 0===e&&(e={}),void 0===t&&(t={});var r=this;if(!r.allowPageChange&&!a)return r;var n=e,o=t,i=n.url,s=n.content,l=n.el,u=n.pageName,c=n.template,p=n.templateUrl,h=n.component,d=n.componentUrl;if(!o.reloadCurrent&&o.route&&o.route.route&&o.route.route.parentPath&&r.currentRoute.route&&r.currentRoute.route.parentPath===o.route.route.parentPath){if(o.route.url===r.url)return r.allowPageChange=!0,!1;var f=Object.keys(o.route.params).length===Object.keys(r.currentRoute.params).length;if(f&&Object.keys(o.route.params).forEach((function(e){e in r.currentRoute.params&&r.currentRoute.params[e]===o.route.params[e]||(f=!1)})),f)return!!o.route.route.tab&&r.tabLoad(o.route.route.tab,o);if(!f&&o.route.route.tab&&r.currentRoute.route.tab&&r.currentRoute.parentPath===o.route.parentPath)return r.tabLoad(o.route.route.tab,o)}if(o.route&&o.route.url&&r.url===o.route.url&&!o.reloadCurrent&&!o.reloadPrevious&&!r.params.allowDuplicateUrls)return r.allowPageChange=!0,!1;function v(e,t){return r.forward(e,Utils.extend(o,t))}function g(){return r.allowPageChange=!0,r}if(!o.route&&i&&(o.route=r.parseRouteUrl(i),Utils.extend(o.route,{route:{url:i,path:i}})),(i||p||d||h)&&(r.allowPageChange=!1),s)r.forward(r.getPageEl(s),o);else if(c||p)try{r.pageTemplateLoader(c,p,o,v,g)}catch(e){throw r.allowPageChange=!0,e}else if(l)r.forward(r.getPageEl(l),o);else if(u)r.forward(r.$el.children('.page[data-name="'+u+'"]').eq(0),o);else if(h||d)try{r.pageComponentLoader(r.el,h,d,o,v,g)}catch(e){throw r.allowPageChange=!0,e}else i&&(r.xhr&&(r.xhr.abort(),r.xhr=!1),r.xhrRequest(i,o).then((function(e){r.forward(r.getPageEl(e),o)})).catch((function(){r.allowPageChange=!0})));return r}function navigate(e,t){void 0===t&&(t={});var a,r,n,o,i,s,l,u=this;if(u.swipeBackActive)return u;if("string"==typeof e?a=e:(a=e.url,r=e.route,n=e.name,o=e.path,i=e.query,s=e.params),n||o)return(a=u.generateUrl({path:o,name:n,params:s,query:i}))?u.navigate(a,t):u;var c=u.app;if(appRouterCheck(u,"navigate"),"#"===a||""===a)return u;var p=a.replace("./","");if("/"!==p[0]&&0!==p.indexOf("#")){var h=u.currentRoute.parentPath||u.currentRoute.path;p=((h?h+"/":"/")+p).replace("///","/").replace("//","/")}if(!(l=r?Utils.extend(u.parseRouteUrl(p),{route:Utils.extend({},r)}):u.findMatchingRoute(p)))return u;if(l.route&&l.route.viewName){var d=l.route.viewName,f=c.views[d];if(!f)throw new Error('Framework7: There is no View with "'+d+'" name that was specified in this route');if(f!==u.view)return f.router.navigate(e,t)}if(l.route.redirect)return redirect.call(u,"navigate",l,t);var v={};function g(){var e=!1;function t(e,t){u.allowPageChange=!1;var a=!1;t&&t.context&&(l.context?l.context=Utils.extend({},l.context,t.context):l.context=t.context,v.route.context=l.context),"popup popover sheet loginScreen actions customModal panel".split(" ").forEach((function(r){if(e[r]){a=!0;var n=Utils.extend({},l,{route:e});u.allowPageChange=!0,u.modalLoad(r,n,Utils.extend(v,t))}})),a||u.load(e,Utils.extend(v,t),!0)}function a(){u.allowPageChange=!0}"popup popover sheet loginScreen actions customModal panel".split(" ").forEach((function(t){l.route[t]&&!e&&(e=!0,u.modalLoad(t,l,v))})),l.route.keepAlive&&l.route.keepAliveData&&(u.load({el:l.route.keepAliveData.pageEl},v,!1),e=!0),"url content component pageName el componentUrl template templateUrl".split(" ").forEach((function(t){var a;l.route[t]&&!e&&(e=!0,u.load(((a={})[t]=l.route[t],a),v,!1))})),e||(l.route.async&&(u.allowPageChange=!1,l.route.async.call(u,v.route,u.currentRoute,t,a)),l.route.asyncComponent&&asyncComponent(u,l.route.asyncComponent,t,a))}function m(){u.allowPageChange=!0}if(l.route.options?Utils.extend(v,l.route.options,t):Utils.extend(v,t),v.route=l,v&&v.context&&(l.context=v.context,v.route.context=v.context),u.params.masterDetailBreakpoint>0&&l.route.masterRoute){var b=!0,y=!1;if(u.currentRoute&&u.currentRoute.route&&(!u.currentRoute.route.master||u.currentRoute.route!==l.route.masterRoute&&u.currentRoute.route.path!==l.route.masterRoute.path||(b=!1),!u.currentRoute.route.masterRoute||u.currentRoute.route.masterRoute!==l.route.masterRoute&&u.currentRoute.route.masterRoute.path!==l.route.masterRoute.path||(b=!1,y=!0)),b||y&&t.reloadAll)return u.navigate({path:l.route.masterRoute.path,params:l.params||{}},{animate:!1,reloadAll:t.reloadAll,reloadCurrent:t.reloadCurrent,reloadPrevious:t.reloadPrevious,pushState:!t.initial,history:!t.initial,once:{pageAfterIn:function(){u.navigate(e,Utils.extend({},t,{animate:!1,reloadAll:!1,reloadCurrent:!1,reloadPrevious:!1,history:!t.initial,pushState:!t.initial}))}}}),u}return processRouteQueue.call(u,l,u.currentRoute,(function(){l.route.modules?c.loadModules(Array.isArray(l.route.modules)?l.route.modules:[l.route.modules]).then((function(){g()})).catch((function(){m()})):g()}),(function(){m()})),u}function tabLoad(e,t){void 0===t&&(t={});var a,r,n=this,o=Utils.extend({animate:n.params.animate,pushState:!0,history:!0,parentPageEl:null,preload:!1,on:{}},t);o.route&&(o.preload||o.route===n.currentRoute||(r=n.previousRoute,n.currentRoute=o.route),o.preload?(a=o.route,r=n.currentRoute):(a=n.currentRoute,r||(r=n.previousRoute)),n.params.pushState&&o.pushState&&!o.reloadPrevious&&History.replace(n.view.id,{url:o.route.url},(n.params.pushStateRoot||"")+n.params.pushStateSeparator+o.route.url),o.history&&(n.history[Math.max(n.history.length-1,0)]=o.route.url,n.saveHistory()));var i,s=$(o.parentPageEl||n.currentPageEl);i=s.length&&s.find("#"+e.id).length?s.find("#"+e.id).eq(0):n.view.selector?n.view.selector+" #"+e.id:"#"+e.id;var l,u=n.app.tab.show({tabEl:i,animate:o.animate,tabRoute:o.route}),c=u.$newTabEl,p=u.$oldTabEl,h=u.animated,d=u.onTabsChanged;if(c&&c.parents(".page").length>0&&o.route){var f=c.parents(".page")[0].f7Page;f&&o.route&&(f.route=o.route)}if(c[0].f7RouterTabLoaded)return p&&p.length?(h?d((function(){n.emit("routeChanged",n.currentRoute,n.previousRoute,n)})):n.emit("routeChanged",n.currentRoute,n.previousRoute,n),n):n;function v(t,a){var r=t.url,o=t.content,i=t.el,s=t.template,l=t.templateUrl,u=t.component,f=t.componentUrl;function v(t){n.allowPageChange=!0,t&&("string"==typeof t?c.html(t):(c.html(""),t.f7Component?t.f7Component.$mount((function(e){c.append(e)})):c.append(t)),c[0].f7RouterTabLoaded=!0,function(t){n.removeThemeElements(c);var a=c;"string"!=typeof t&&(a=$(t)),a.trigger("tab:init tab:mounted",e),n.emit("tabInit tabMounted",c[0],e),p&&p.length&&(h?d((function(){n.emit("routeChanged",n.currentRoute,n.previousRoute,n),n.params.unloadTabContent&&n.tabRemove(p,c,e)})):(n.emit("routeChanged",n.currentRoute,n.previousRoute,n),n.params.unloadTabContent&&n.tabRemove(p,c,e)))}(t))}function g(){return n.allowPageChange=!0,n}if(o)v(o);else if(s||l)try{n.tabTemplateLoader(s,l,a,v,g)}catch(e){throw n.allowPageChange=!0,e}else if(i)v(i);else if(u||f)try{n.tabComponentLoader(c[0],u,f,a,v,g)}catch(e){throw n.allowPageChange=!0,e}else r&&(n.xhr&&(n.xhr.abort(),n.xhr=!1),n.xhrRequest(r,a).then((function(e){v(e)})).catch((function(){n.allowPageChange=!0})))}function g(e,t){v(e,Utils.extend(o,t))}function m(){n.allowPageChange=!0}return"url content component el componentUrl template templateUrl".split(" ").forEach((function(t){var a;e[t]&&(l=!0,v(((a={})[t]=e[t],a),o))})),e.async?e.async.call(n,a,r,g,m):e.asyncComponent?asyncComponent(n,e.asyncComponent,g,m):l||(n.allowPageChange=!0),n}function tabRemove(e,t,a){var r;e[0]&&(e[0].f7RouterTabLoaded=!1,delete e[0].f7RouterTabLoaded),e.children().each((function(e,t){t.f7Component&&(r=!0,$(t).trigger("tab:beforeremove",a),t.f7Component.$destroy())})),r||e.trigger("tab:beforeremove",a),this.emit("tabBeforeRemove",e[0],t[0],a),this.removeTabContent(e[0],a)}function modalLoad(e,t,a){void 0===a&&(a={});var r,n=this,o=n.app,i="panel"===e,s=i?"panel":"modal",l=Utils.extend({animate:n.params.animate,pushState:!0,history:!0,on:{}},a),u=Utils.extend({},t.route[e]),c=t.route;function p(){var a=o[e].create(u);c.modalInstance=a;var r=a.el;function p(){a.close()}a.on(s+"Open",(function(){r||(n.removeThemeElements(a.el),a.$el.trigger(e.toLowerCase()+":init "+e.toLowerCase()+":mounted",t,a),n.emit((i?"":"modalInit")+" "+e+"Init "+e+"Mounted",a.el,t,a)),n.once("swipeBackMove",p)})),a.on(s+"Close",(function(){n.off("swipeBackMove",p),a.closeByRouter||n.back()})),a.on(s+"Closed",(function(){a.$el.trigger(e.toLowerCase()+":beforeremove",t,a),a.emit((i?"":"modalBeforeRemove ")+e+"BeforeRemove",a.el,t,a);var r=a.el.f7Component;r&&r.$destroy(),Utils.nextTick((function(){(r||u.component)&&n.removeModal(a.el),a.destroy(),delete a.route,delete c.modalInstance}))})),l.route&&(n.params.pushState&&l.pushState&&History.push(n.view.id,{url:l.route.url,modal:e},(n.params.pushStateRoot||"")+n.params.pushStateSeparator+l.route.url),l.route!==n.currentRoute&&(a.route=Utils.extend(l.route,{modal:a}),n.currentRoute=a.route),l.history&&(n.history.push(l.route.url),n.saveHistory())),r&&(n.removeThemeElements(a.el),a.$el.trigger(e.toLowerCase()+":init "+e.toLowerCase()+":mounted",t,a),n.emit(s+"Init "+e+"Init "+e+"Mounted",a.el,t,a)),a.open()}function h(e,t){var a=e.url,r=e.content,i=e.template,s=e.templateUrl,l=e.component,c=e.componentUrl;function h(e){e&&("string"==typeof e?u.content=e:e.f7Component?e.f7Component.$mount((function(e){u.el=e,o.root.append(e)})):u.el=e,p())}function d(){return n.allowPageChange=!0,n}if(r)h(r);else if(i||s)try{n.modalTemplateLoader(i,s,t,h,d)}catch(e){throw n.allowPageChange=!0,e}else if(l||c)try{n.modalComponentLoader(o.root[0],l,c,t,h,d)}catch(e){throw n.allowPageChange=!0,e}else a?(n.xhr&&(n.xhr.abort(),n.xhr=!1),n.xhrRequest(a,t).then((function(e){u.content=e,p()})).catch((function(){n.allowPageChange=!0}))):p()}function d(e,t){h(e,Utils.extend(l,t))}function f(){n.allowPageChange=!0}return"url content component el componentUrl template templateUrl".split(" ").forEach((function(e){var t;u[e]&&!r&&(r=!0,h(((t={})[e]=u[e],t),l))})),r||"actions"!==e||p(),u.async&&u.async.call(n,l.route,n.currentRoute,d,f),u.asyncComponent&&asyncComponent(n,u.asyncComponent,d,f),n}function modalRemove(e){Utils.extend(e,{closeByRouter:!0}),e.close()}function backward(e,t){var a,r,n,o,i,s,l,u,c=this,p=$(e),h=c.app,d=c.view,f=Utils.extend({animate:c.params.animate,pushState:!0,replaceState:!1},t),v=c.params.masterDetailBreakpoint>0,g=v&&f.route&&f.route.route&&!0===f.route.route.master,m=c.dynamicNavbar,b=p,y=c.$el.children(".page-current"),w=v&&y.hasClass("page-master");if(b.length&&c.removeThemeElements(b),m&&(o=b.children(".navbar"),n=c.$navbarsEl,0===o.length&&b[0]&&b[0].f7Page&&(o=b[0].f7Page.$navbarEl),i=n.find(".navbar-current")),c.allowPageChange=!1,0===b.length||0===y.length)return c.allowPageChange=!0,c;if(c.removeThemeElements(b),f.route&&f.route.route&&f.route.route.keepAlive&&!f.route.route.keepAliveData&&(f.route.route.keepAliveData={pageEl:p[0]}),v){for(var C=c.$el.children(".page:not(.stacked)").filter((function(e,t){return t!==b[0]})),x=0;xc.history.indexOf(a.f7Page.route.url))&&!g&&a&&a.f7Page&&f.route.route.masterRoute&&(s=f.route.route.masterRoute.path===a.f7Page.route.route.path)}if(s&&a&&a.f7Page&&(l=c.history.indexOf(f.route.url)-c.history.indexOf(a.f7Page.route.url)==1),b.addClass("page-previous"+(g?" page-master":"")+(s?" page-master-detail":"")+(l?" page-master-detail-root":"")).removeClass("stacked").removeAttr("aria-hidden").trigger("page:unstack").trigger("page:position",{position:"previous"}),c.emit("pageUnstack",b[0]),c.emit("pagePosition",b[0],"previous"),(g||s)&&(b.trigger("page:role",{role:g?"master":"detail",root:!!l}),c.emit("pageRole",b[0],{role:g?"master":"detail",detailRoot:!!l})),m&&o.length>0&&(o.addClass("navbar-previous"+(g?" navbar-master":"")+(s?" navbar-master-detail":"")+(l?" navbar-master-detail-root":"")).removeClass("stacked").removeAttr("aria-hidden"),o.trigger("navbar:position",{position:"previous"}),c.emit("navbarPosition",o[0],"previous"),(g||l)&&c.emit("navbarRole",o[0],{role:g?"master":"detail",detailRoot:!!l})),f.force&&(y.prev(".page-previous:not(.stacked)").length>0||0===y.prev(".page-previous").length))if(c.history.indexOf(f.route.url)>=0?(u=c.history.length-c.history.indexOf(f.route.url)-1,c.history=c.history.slice(0,c.history.indexOf(f.route.url)+2),d.history=c.history):c.history[[c.history.length-2]]?c.history[c.history.length-2]=f.route.url:c.history.unshift(c.url),u&&c.params.stackPages)y.prevAll(".page-previous").each((function(e,t){var n,o=$(t);m&&(n=$(h.navbar.getElByPage(o))),o[0]!==b[0]&&o.index()>b.index()&&(c.initialPages.indexOf(o[0])>=0?(o.addClass("stacked"),o.trigger("page:stack"),c.emit("pageStack",o[0]),m&&n.addClass("stacked")):(c.pageCallback("beforeRemove",o,n,"previous",void 0,f),o[0]===a&&(r=!0),c.removePage(o),m&&n.length>0&&c.removeNavbar(n)))}));else{var k,S=y.prev(".page-previous:not(.stacked)");m&&(k=$(h.navbar.getElByPage(S))),c.params.stackPages&&c.initialPages.indexOf(S[0])>=0?(S.addClass("stacked"),S.trigger("page:stack"),c.emit("pageStack",S[0]),k.addClass("stacked")):S.length>0&&(c.pageCallback("beforeRemove",S,k,"previous",void 0,f),S[0]===a&&(r=!0),c.removePage(S),m&&k.length&&c.removeNavbar(k))}var E=b.parents(doc).length>0,T=b[0].f7Component;function P(){0===b.next(y).length&&(!E&&T?T.$mount((function(e){$(e).insertBefore(y)})):b.insertBefore(y)),m&&o.length&&(o.find(".title-large").length&&o.addClass("navbar-large"),o.insertBefore(i),i.length>0?o.insertBefore(i):(c.$navbarsEl.parents(doc).length||c.$el.prepend(c.$navbarsEl),n.append(o))),E?f.route&&f.route.route&&f.route.route.keepAlive&&!b[0].f7PageMounted&&(b[0].f7PageMounted=!0,c.pageCallback("mounted",b,o,"previous","current",f,y)):c.pageCallback("mounted",b,o,"previous","current",f,y)}if(f.preload){P(),f.route.route.tab&&c.tabLoad(f.route.route.tab,Utils.extend({},f,{history:!1,pushState:!1,preload:!0})),g&&(b.removeClass("page-master-stacked").trigger("page:masterunstack"),c.emit("pageMasterUnstack",b[0]),m&&($(h.navbar.getElByPage(b)).removeClass("navbar-master-stacked"),c.emit("navbarMasterUnstack",h.navbar.getElByPage(b)))),c.pageCallback("init",b,o,"previous","current",f,y);var R=b.prevAll(".page-previous:not(.stacked):not(.page-master)");return R.length>0&&R.each((function(e,t){var a,r=$(t);m&&(a=$(h.navbar.getElByPage(r))),c.params.stackPages&&c.initialPages.indexOf(t)>=0?(r.addClass("stacked"),r.trigger("page:stack"),c.emit("pageStack",r[0]),m&&a.addClass("stacked")):(c.pageCallback("beforeRemove",r,a,"previous",void 0),c.removePage(r),m&&a.length&&c.removeNavbar(a))})),c.allowPageChange=!0,c}if(!(Device.ie||Device.edge||Device.firefox&&!Device.ios)&&c.params.pushState&&f.pushState)if(f.replaceState){var O=c.params.pushStateRoot||"";History.replace(d.id,{url:f.route.url},O+c.params.pushStateSeparator+f.route.url)}else u?History.go(-u):History.back();if(f.replaceState?c.history[c.history.length-1]=f.route.url:(1===c.history.length&&c.history.unshift(c.url),c.history.pop()),c.saveHistory(),c.currentPageEl=b[0],m&&o.length?c.currentNavbarEl=o[0]:delete c.currentNavbarEl,c.currentRoute=f.route,(Device.ie||Device.edge||Device.firefox&&!Device.ios)&&c.params.pushState&&f.pushState)if(f.replaceState){var D=c.params.pushStateRoot||"";History.replace(d.id,{url:f.route.url},D+c.params.pushStateSeparator+f.route.url)}else u?History.go(-u):History.back();function L(){c.setPagePosition(b,"current",!1),c.setPagePosition(y,"next",!0),m&&(c.setNavbarPosition(o,"current",!1),c.setNavbarPosition(i,"next",!0)),c.pageCallback("afterOut",y,i,"current","next",f),c.pageCallback("afterIn",b,o,"previous","current",f),c.params.stackPages&&c.initialPages.indexOf(y[0])>=0?(y.addClass("stacked"),y.trigger("page:stack"),c.emit("pageStack",y[0]),m&&i.addClass("stacked")):(c.pageCallback("beforeRemove",y,i,"next",void 0,f),c.removePage(y),m&&i.length&&c.removeNavbar(i)),c.allowPageChange=!0,c.emit("routeChanged",c.currentRoute,c.previousRoute,c),(c.params.preloadPreviousPage||c.params[h.theme+"SwipeBack"])&&c.history[c.history.length-2]&&!g&&c.back(c.history[c.history.length-2],{preload:!0}),c.params.pushState&&History.clearRouterQueue()}if(P(),f.route.route.tab&&c.tabLoad(f.route.route.tab,Utils.extend({},f,{history:!1,pushState:!1})),v&&(w||r)&&d.checkMasterDetailBreakpoint(!1),c.pageCallback("init",b,o,"previous","current",f,y),c.pageCallback("beforeOut",y,i,"current","next",f),c.pageCallback("beforeIn",b,o,"previous","current",f),!f.animate||w&&h.width>=c.params.masterDetailBreakpoint)L();else{var M=c.params.transition;y[0]&&y[0].f7PageTransition&&(M=y[0].f7PageTransition,delete y[0].f7PageTransition),f.transition&&(M=f.transition),!M&&c.previousRoute&&c.previousRoute.route&&(M=c.previousRoute.route.transition),!M&&c.previousRoute&&c.previousRoute.route&&c.previousRoute.route.options&&(M=c.previousRoute.route.options.transition),c.setPagePosition(y,"current"),c.setPagePosition(b,"previous",!1),m&&(c.setNavbarPosition(i,"current"),c.setNavbarPosition(o,"previous",!1)),c.animate(y,b,i,o,"backward",M,(function(){L()}))}return c}function loadBack(e,t,a){var r=this;if(!r.allowPageChange&&!a)return r;var n=e,o=t,i=n.url,s=n.content,l=n.el,u=n.pageName,c=n.template,p=n.templateUrl,h=n.component,d=n.componentUrl;if(o.route.url&&r.url===o.route.url&&!o.reloadCurrent&&!o.reloadPrevious&&!r.params.allowDuplicateUrls)return!1;function f(e,t){return r.backward(e,Utils.extend(o,t))}function v(){return r.allowPageChange=!0,r}if(!o.route&&i&&(o.route=r.parseRouteUrl(i)),(i||p||d||h)&&(r.allowPageChange=!1),s)r.backward(r.getPageEl(s),o);else if(c||p)try{r.pageTemplateLoader(c,p,o,f,v)}catch(e){throw r.allowPageChange=!0,e}else if(l)r.backward(r.getPageEl(l),o);else if(u)r.backward(r.$el.children('.page[data-name="'+u+'"]').eq(0),o);else if(h||d)try{r.pageComponentLoader(r.el,h,d,o,f,v)}catch(e){throw r.allowPageChange=!0,e}else i&&(r.xhr&&(r.xhr.abort(),r.xhr=!1),r.xhrRequest(i,o).then((function(e){r.backward(r.getPageEl(e),o)})).catch((function(){r.allowPageChange=!0})));return r}function back(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];var a,r,n,o=this;if(o.swipeBackActive)return o;"object"==typeof e[0]?r=e[0]||{}:(a=e[0],r=e[1]||{});var i=r.name,s=r.params,l=r.query;if(i)return(a=o.generateUrl({name:i,params:s,query:l}))?o.back(a,Utils.extend({},r,{name:null,params:null,query:null})):o;var u=o.app;appRouterCheck(o,"back");var c,p=o.currentRoute.modal;if(p||"popup popover sheet loginScreen actions customModal panel".split(" ").forEach((function(e){o.currentRoute.route[e]&&(p=!0,c=e)})),p){var h,d=o.currentRoute.modal||o.currentRoute.route.modalInstance||u[c].get(),f=o.history[o.history.length-2];if(d&&d.$el){var v=d.$el.prevAll(".modal-in");if(v.length&&v[0].f7Modal){var g=v[0];o.$el.parents(g).length||(h=g.f7Modal.route)}}if(h||(h=o.findMatchingRoute(f)),!h&&f&&(h={url:f,path:f.split("?")[0],query:Utils.parseUrlQuery(f),route:{path:f.split("?")[0],url:f}}),!(a&&0!==a.replace(/[# ]/g,"").trim().length||h&&d))return o;var m=r.force&&h&&a;if(h&&d){var b=Device.ie||Device.edge||Device.firefox&&!Device.ios,y=o.params.pushState&&!1!==r.pushState,w=o.currentRoute&&o.currentRoute.route&&o.currentRoute.route.options&&!1===o.currentRoute.route.options.pushState;!y||b||w||History.back(),o.currentRoute=h,o.history.pop(),o.saveHistory(),y&&b&&!w&&History.back(),o.modalRemove(d),m&&o.navigate(a,{reloadCurrent:!0})}else d&&(o.modalRemove(d),a&&o.navigate(a,{reloadCurrent:!0}));return o}var C,x=o.$el.children(".page-current").prevAll(".page-previous:not(.page-master)").eq(0);if(o.params.masterDetailBreakpoint>0){var k=[];o.$el.children(".page").each((function(e,t){k.push(t.className)}));var S=o.$el.children(".page-current").prevAll(".page-master").eq(0);if(S.length){var E=o.history[o.history.length-2],T=o.findMatchingRoute(E);T&&S[0].f7Page&&T.route===S[0].f7Page.route.route&&(x=S,r.preload||(C=u.width>=o.params.masterDetailBreakpoint))}}if(!r.force&&x.length&&!C){if(o.params.pushState&&x[0].f7Page&&o.history[o.history.length-2]!==x[0].f7Page.route.url)return o.back(o.history[o.history.length-2],Utils.extend(r,{force:!0})),o;var P=x[0].f7Page.route;return processRouteQueue.call(o,P,o.currentRoute,(function(){o.loadBack({el:x},Utils.extend(r,{route:P}))}),(function(){})),o}if("#"===a&&(a=void 0),a&&"/"!==a[0]&&0!==a.indexOf("#")&&(a=((o.path||"/")+a).replace("//","/")),!a&&o.history.length>1&&(a=o.history[o.history.length-2]),C&&!r.force&&o.history[o.history.length-3])return o.back(o.history[o.history.length-3],Utils.extend({},r||{},{force:!0,animate:!1}));if(C&&!r.force)return o;if((n=o.findMatchingRoute(a))||a&&(n={url:a,path:a.split("?")[0],query:Utils.parseUrlQuery(a),route:{path:a.split("?")[0],url:a}}),!n)return o;if(n.route.redirect)return redirect.call(o,"back",n,r);var R,O={};if(n.route.options?Utils.extend(O,n.route.options,r):Utils.extend(O,r),O.route=n,O&&O.context&&(n.context=O.context,O.route.context=O.context),O.force&&o.params.stackPages&&(o.$el.children(".page-previous.stacked").each((function(e,t){t.f7Page&&t.f7Page.route&&t.f7Page.route.url===n.url&&(R=!0,o.loadBack({el:t},O))})),R))return o;function $(){var e=!1;function t(e,t){o.allowPageChange=!1,t&&t.context&&(n.context?n.context=Utils.extend({},n.context,t.context):n.context=t.context,O.route.context=n.context),o.loadBack(e,Utils.extend(O,t),!0)}function a(){o.allowPageChange=!0}n.route.keepAlive&&n.route.keepAliveData&&(o.loadBack({el:n.route.keepAliveData.pageEl},O),e=!0),"url content component pageName el componentUrl template templateUrl".split(" ").forEach((function(t){var a;n.route[t]&&!e&&(e=!0,o.loadBack(((a={})[t]=n.route[t],a),O))})),e||(n.route.async&&(o.allowPageChange=!1,n.route.async.call(o,n,o.currentRoute,t,a)),n.route.asyncComponent&&asyncComponent(o,n.route.asyncComponent,t,a))}function D(){o.allowPageChange=!0}return O.preload?$():processRouteQueue.call(o,n,o.currentRoute,(function(){n.route.modules?u.loadModules(Array.isArray(n.route.modules)?n.route.modules:[n.route.modules]).then((function(){$()})).catch((function(){D()})):$()}),(function(){D()})),o}function clearPreviousPages(e){appRouterCheck(e,"clearPreviousPages");var t=e.app,a=e.dynamicNavbar;e.$el.children(".page").filter((function(t,a){return!(!e.currentRoute||!e.currentRoute.modal&&!e.currentRoute.panel)||a!==e.currentPageEl})).each((function(r,n){var o=$(n),i=$(t.navbar.getElByPage(o));e.params.stackPages&&e.initialPages.indexOf(o[0])>=0?(o.addClass("stacked"),a&&i.addClass("stacked")):(e.pageCallback("beforeRemove",o,i,"previous",void 0,{}),e.removePage(o),a&&i.length&&e.removeNavbar(i))}))}function clearPreviousHistory(){appRouterCheck(this,"clearPreviousHistory");var e=this.history[this.history.length-1];clearPreviousPages(this),this.history=[e],this.view.history=[e],this.saveHistory()}var Router=function(e){function t(t,a){e.call(this,{},[void 0===a?t:a]);var r=this;r.isAppRouter=void 0===a,r.isAppRouter?Utils.extend(!1,r,{app:t,params:t.params.view,routes:t.routes||[],cache:t.cache}):Utils.extend(!1,r,{app:t,view:a,viewId:a.id,params:a.params,routes:a.routes,$el:a.$el,el:a.el,$navbarsEl:a.$navbarsEl,navbarsEl:a.navbarsEl,history:a.history,scrollHistory:a.scrollHistory,cache:t.cache,dynamicNavbar:"ios"===t.theme&&a.params.iosDynamicNavbar,initialPages:[],initialNavbars:[]}),r.useModules(),r.tempDom=doc.createElement("div"),r.allowPageChange=!0;var n={},o={};return Object.defineProperty(r,"currentRoute",{enumerable:!0,configurable:!0,set:function(e){void 0===e&&(e={}),o=Utils.extend({},n),(n=e)&&(r.url=n.url,r.emit("routeChange",e,o,r))},get:function(){return n}}),Object.defineProperty(r,"previousRoute",{enumerable:!0,configurable:!0,get:function(){return o},set:function(e){o=e}}),r}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.animatableNavElements=function(e,t,a,r,n){var o,i,s=this.dynamicNavbar,l=this.params.iosAnimateNavbarBackIcon;function u(e,t){var a,r=e.hasClass("sliding")||t.hasClass("sliding"),n=e.hasClass("subnavbar"),o=!r||!n,i=e.find(".back .icon");return r&&l&&e.hasClass("left")&&i.length>0&&i.next("span").length&&(e=i.next("span"),a=!0),{$el:e,isIconLabel:a,leftOffset:e[0].f7NavbarLeftOffset,rightOffset:e[0].f7NavbarRightOffset,isSliding:r,isSubnavbar:n,needsOpacityTransition:o}}return s&&(o=[],i=[],e.children(".navbar-inner").children(".left, .right, .title, .subnavbar").each((function(t,i){var s=$(i);s.hasClass("left")&&r&&"forward"===n||s.hasClass("title")&&a||o.push(u(s,e.children(".navbar-inner")))})),t.hasClass("navbar-master")&&this.params.masterDetailBreakpoint>0&&this.app.width>=this.params.masterDetailBreakpoint||t.children(".navbar-inner").children(".left, .right, .title, .subnavbar").each((function(e,o){var s=$(o);s.hasClass("left")&&a&&!r&&"forward"===n||s.hasClass("left")&&a&&"backward"===n||s.hasClass("title")&&r||i.push(u(s,t.children(".navbar-inner")))})),[i,o].forEach((function(e){e.forEach((function(t){var a=t,r=t.isSliding,n=t.$el,s=e===i?o:i;r&&n.hasClass("title")&&s&&s.forEach((function(e){if(e.isIconLabel){var t=e.$el[0];a.leftOffset+=t&&t.offsetLeft||0}}))}))}))),{newNavEls:o,oldNavEls:i}},t.prototype.animate=function(e,t,a,r,n,o,i){var s=this;if(s.params.animateCustom)s.params.animateCustom.apply(s,[e,t,a,r,n,i]);else{var l=s.dynamicNavbar,u="ios"===s.app.theme;if(o){var c="router-transition-custom router-transition-"+o+"-"+n;return("forward"===n?t:e).animationEnd((function(){s.$el.removeClass(c),l&&s.$navbarsEl.length&&(r&&s.$navbarsEl.prepend(r),a&&s.$navbarsEl.prepend(a)),i&&i()})),l&&(r&&t&&(s.setNavbarPosition(r,""),r.removeClass("navbar-next navbar-previous navbar-current"),t.prepend(r)),a&&e&&(s.setNavbarPosition(a,""),a.removeClass("navbar-next navbar-previous navbar-current"),e.prepend(a))),void s.$el.addClass(c)}var p,h,d,f,v,g,m="router-transition-"+n+" router-transition";if(u&&l){s.params.masterDetailBreakpoint>0&&s.app.width>=s.params.masterDetailBreakpoint&&(a.hasClass("navbar-master")&&r.hasClass("navbar-master-detail")||a.hasClass("navbar-master-detail")&&r.hasClass("navbar-master"))||(v=a&&a.hasClass("navbar-large"),g=r&&r.hasClass("navbar-large"),d=v&&!a.hasClass("navbar-large-collapsed"),f=g&&!r.hasClass("navbar-large-collapsed"));var b=s.animatableNavElements(r,a,f,d,n);p=b.newNavEls,h=b.oldNavEls}("forward"===n?t:e).animationEnd((function(){s.dynamicNavbar&&(r&&(r.removeClass("router-navbar-transition-to-large router-navbar-transition-from-large"),r.addClass("navbar-no-title-large-transition"),Utils.nextFrame((function(){r.removeClass("navbar-no-title-large-transition")}))),a&&a.removeClass("router-navbar-transition-to-large router-navbar-transition-from-large"),r.hasClass("sliding")||r.children(".navbar-inner.sliding").length?r.find(".title, .left, .right, .left .icon, .subnavbar").transform(""):r.find(".sliding").transform(""),a.hasClass("sliding")||a.children(".navbar-inner.sliding").length?a.find(".title, .left, .right, .left .icon, .subnavbar").transform(""):a.find(".sliding").transform("")),s.$el.removeClass(m),i&&i()})),l?(y(0),Utils.nextFrame((function(){y(1),s.$el.addClass(m)}))):s.$el.addClass(m)}function y(e){u&&l&&(1===e&&(f&&(r.addClass("router-navbar-transition-to-large"),a.addClass("router-navbar-transition-to-large")),d&&(r.addClass("router-navbar-transition-from-large"),a.addClass("router-navbar-transition-from-large"))),p.forEach((function(t){var a=t.$el,r="forward"===n?t.rightOffset:t.leftOffset;t.isSliding&&(t.isSubnavbar&&g?a[0].style.setProperty("transform","translate3d("+r*(1-e)+"px, calc(-1 * var(--f7-navbar-large-collapse-progress) * var(--f7-navbar-large-title-height)), 0)","important"):a.transform("translate3d("+r*(1-e)+"px,0,0)"))})),h.forEach((function(t){var a=t.$el,r="forward"===n?t.leftOffset:t.rightOffset;t.isSliding&&(t.isSubnavbar&&v?a.transform("translate3d("+r*e+"px, calc(-1 * var(--f7-navbar-large-collapse-progress) * var(--f7-navbar-large-title-height)), 0)"):a.transform("translate3d("+r*e+"px,0,0)"))})))}},t.prototype.removeModal=function(e){this.removeEl(e)},t.prototype.removeTabContent=function(e){$(e).html("")},t.prototype.removeNavbar=function(e){this.removeEl(e)},t.prototype.removePage=function(e){var t=$(e),a=t&&t[0]&&t[0].f7Page;a&&a.route&&a.route.route&&a.route.route.keepAlive?t.remove():this.removeEl(e)},t.prototype.removeEl=function(e){if(e){var t=$(e);0!==t.length&&(t.find(".tab").each((function(e,t){$(t).children().each((function(e,t){t.f7Component&&($(t).trigger("tab:beforeremove"),t.f7Component.$destroy())}))})),t[0].f7Component&&t[0].f7Component.$destroy&&t[0].f7Component.$destroy(),this.params.removeElements&&(this.params.removeElementsWithTimeout?setTimeout((function(){t.remove()}),this.params.removeElementsTimeout):t.remove()))}},t.prototype.getPageEl=function(e){if("string"==typeof e)this.tempDom.innerHTML=e;else{if($(e).hasClass("page"))return e;this.tempDom.innerHTML="",$(this.tempDom).append(e)}return this.findElement(".page",this.tempDom)},t.prototype.findElement=function(e,t,a){var r=this.view,n=this.app,o=$(t),i=e;a&&(i+=":not(.stacked)");var s=o.find(i).filter((function(e,t){return 0===$(t).parents(".popup, .dialog, .popover, .actions-modal, .sheet-modal, .login-screen, .page").length}));return s.length>1&&("string"==typeof r.selector&&(s=o.find(r.selector+" "+i)),s.length>1&&(s=o.find("."+n.params.viewMainClass+" "+i))),1===s.length?s:(a||(s=this.findElement(i,o,!0)),s&&1===s.length?s:s&&s.length>1?$(s[0]):void 0)},t.prototype.flattenRoutes=function(e){void 0===e&&(e=this.routes);var t=this,a=[];return e.forEach((function(e){var r=!1;if("tabs"in e&&e.tabs){var n=e.tabs.map((function(t){var a=Utils.extend({},e,{path:(e.path+"/"+t.path).replace("///","/").replace("//","/"),parentPath:e.path,tab:t});return delete a.tabs,delete a.routes,a}));r=!0,a=a.concat(t.flattenRoutes(n))}if("detailRoutes"in e){var o=e.detailRoutes.map((function(t){var a=Utils.extend({},t);return a.masterRoute=e,a.masterRoutePath=e.path,a}));a=a.concat(e,t.flattenRoutes(o))}if("routes"in e){var i=e.routes.map((function(t){var a=Utils.extend({},t);return a.path=(e.path+"/"+a.path).replace("///","/").replace("//","/"),a}));a=r?a.concat(t.flattenRoutes(i)):a.concat(e,t.flattenRoutes(i))}"routes"in e||"tabs"in e&&e.tabs||"detailRoutes"in e||a.push(e)})),a},t.prototype.parseRouteUrl=function(e){if(!e)return{};var t=Utils.parseUrlQuery(e),a=e.split("#")[1],r=e.split("#")[0].split("?")[0];return{query:t,hash:a,params:{},url:e,path:r}},t.prototype.generateUrl=function(e){if(void 0===e&&(e={}),"string"==typeof e)return e;var t=e.name,a=e.path,r=e.params,n=e.query;if(!t&&!a)throw new Error('Framework7: "name" or "path" parameter is required');var o=t?this.findRouteByKey("name",t):this.findRouteByKey("path",a);if(!o)throw t?new Error('Framework7: route with name "'+t+'" not found'):new Error('Framework7: route with path "'+a+'" not found');var i=this.constructRouteUrl(o,{params:r,query:n});if(!i)throw new Error("Framework7: can't construct URL for route with name \""+t+'"');return i},t.prototype.constructRouteUrl=function(e,t){void 0===t&&(t={});var a,r=t.params,n=t.query,o=e.path,i=compile(o);try{a=i(r||{})}catch(e){throw new Error("Framework7: error constructing route URL from passed params:\nRoute: "+o+"\n"+e.toString())}return n&&(a+="string"==typeof n?"?"+n:"?"+Utils.serializeObject(n)),a},t.prototype.findTabRoute=function(e){var t,a=$(e),r=this.currentRoute.route.parentPath,n=a.attr("id");return this.flattenRoutes(this.routes).forEach((function(e){e.parentPath===r&&e.tab&&e.tab.id===n&&(t=e)})),t},t.prototype.findRouteByKey=function(e,t){var a,r=this.routes;return this.flattenRoutes(r).forEach((function(r){a||r[e]===t&&(a=r)})),a},t.prototype.findMatchingRoute=function(e){if(e){var t,a=this.routes,r=this.flattenRoutes(a),n=this.parseRouteUrl(e),o=n.path,i=n.query,s=n.hash,l=n.params;return r.forEach((function(a){if(!t){var r,n,u=[],c=[a.path];if(a.alias&&("string"==typeof a.alias?c.push(a.alias):Array.isArray(a.alias)&&a.alias.forEach((function(e){c.push(e)}))),c.forEach((function(e){r||(r=pathToRegexp(e,u).exec(o))})),r)u.forEach((function(e,t){if("number"!=typeof e.name){var a=r[t+1];l[e.name]=null==a?a:decodeURIComponent(a)}})),a.parentPath&&(n=o.split("/").slice(0,a.parentPath.split("/").length-1).join("/")),t={query:i,hash:s,params:l,url:e,path:o,parentPath:n,route:a,name:a.name}}})),t}},t.prototype.replaceRequestUrlParams=function(e,t){void 0===e&&(e=""),void 0===t&&(t={});var a=e;return"string"==typeof a&&a.indexOf("{{")>=0&&t&&t.route&&t.route.params&&Object.keys(t.route.params).length&&Object.keys(t.route.params).forEach((function(e){var r=new RegExp("{{"+e+"}}","g");a=a.replace(r,t.route.params[e]||"")})),a},t.prototype.removeFromXhrCache=function(e){for(var t=this.cache.xhr,a=!1,r=0;r=0;return r.passRouteQueryToRequest&&t&&t.route&&t.route.query&&Object.keys(t.route.query).length&&(o+=(i?"&":"?")+Utils.serializeObject(t.route.query),i=!0),r.passRouteParamsToRequest&&t&&t.route&&t.route.params&&Object.keys(t.route.params).length&&(o+=(i?"&":"?")+Utils.serializeObject(t.route.params),i=!0),o.indexOf("{{")>=0&&(o=a.replaceRequestUrlParams(o,t)),r.xhrCacheIgnoreGetParameters&&o.indexOf("?")>=0&&(o=o.split("?")[0]),new Promise((function(e,i){if(r.xhrCache&&!n&&o.indexOf("nocache")<0&&r.xhrCacheIgnore.indexOf(o)<0)for(var s=0;s=200&&n.status<300||0===n.status?(r.xhrCache&&""!==n.responseText&&(a.removeFromXhrCache(o),a.cache.xhr.push({url:o,time:Utils.now(),content:n.responseText})),a.emit("routerAjaxSuccess",n,t),e(n.responseText)):(a.emit("routerAjaxError",n,t),i(n))},error:function(e){a.emit("routerAjaxError",e,t),i(e)}})}))},t.prototype.setNavbarPosition=function(e,t,a){e.removeClass("navbar-previous navbar-current navbar-next"),t&&e.addClass("navbar-"+t),!1===a?e.removeAttr("aria-hidden"):!0===a&&e.attr("aria-hidden","true"),e.trigger("navbar:position",{position:t}),this.emit("navbarPosition",e[0],t)},t.prototype.setPagePosition=function(e,t,a){e.removeClass("page-previous page-current page-next"),e.addClass("page-"+t),!1===a?e.removeAttr("aria-hidden"):!0===a&&e.attr("aria-hidden","true"),e.trigger("page:position",{position:t}),this.emit("pagePosition",e[0],t)},t.prototype.removeThemeElements=function(e){var t,a=this.app.theme;"ios"===a?t=".md-only, .aurora-only, .if-md, .if-aurora, .if-not-ios, .not-ios":"md"===a?t=".ios-only, .aurora-only, .if-ios, .if-aurora, .if-not-md, .not-md":"aurora"===a&&(t=".ios-only, .md-only, .if-ios, .if-md, .if-not-aurora, .not-aurora"),$(e).find(t).remove()},t.prototype.getPageData=function(e,t,a,r,n,o){void 0===n&&(n={});var i,s,l=$(e).eq(0),u=$(t).eq(0),c=l[0].f7Page||{};if(("next"===a&&"current"===r||"current"===a&&"previous"===r)&&(i="forward"),("current"===a&&"next"===r||"previous"===a&&"current"===r)&&(i="backward"),c&&!c.fromPage){var p=$(o);p.length&&(s=p[0].f7Page)}(s=c.pageFrom||s)&&s.pageFrom&&(s.pageFrom=null);var h={app:this.app,view:this.view,router:this,$el:l,el:l[0],$pageEl:l,pageEl:l[0],$navbarEl:u,navbarEl:u[0],name:l.attr("data-name"),position:a,from:a,to:r,direction:i,route:c.route?c.route:n,pageFrom:s};return l[0].f7Page=h,h},t.prototype.pageCallback=function(e,t,a,r,n,o,i){if(void 0===o&&(o={}),t){var s=this,l=$(t);if(l.length){var u=$(a),c=o.route,p=s.params.restoreScrollTopOnBack&&!(s.params.masterDetailBreakpoint>0&&l.hasClass("page-master")&&s.app.width>=s.params.masterDetailBreakpoint),h=l[0].f7Page&&l[0].f7Page.route&&l[0].f7Page.route.route&&l[0].f7Page.route.route.keepAlive;"beforeRemove"===e&&h&&(e="beforeUnmount");var d="page"+(e[0].toUpperCase()+e.slice(1,e.length)),f="page:"+e.toLowerCase(),v={};(v="beforeRemove"===e&&l[0].f7Page?Utils.extend(l[0].f7Page,{from:r,to:n,position:r}):s.getPageData(l[0],u[0],r,n,c,i)).swipeBack=!!o.swipeBack;var g=o.route?o.route.route:{},m=g.on;void 0===m&&(m={});var b=g.once;if(void 0===b&&(b={}),o.on&&Utils.extend(m,o.on),o.once&&Utils.extend(b,o.once),"mounted"===e&&C(),"init"===e){if(p&&("previous"===r||!r)&&"current"===n&&s.scrollHistory[v.route.url]&&!l.hasClass("no-restore-scroll")){var y=l.find(".page-content");y.length>0&&(y=y.filter((function(e,t){return 0===$(t).parents(".tab:not(.tab-active)").length&&!$(t).is(".tab:not(.tab-active)")}))),y.scrollTop(s.scrollHistory[v.route.url])}if(C(),l[0].f7PageInitialized)return l.trigger("page:reinit",v),void s.emit("pageReinit",v);l[0].f7PageInitialized=!0}if(p&&"beforeOut"===e&&"current"===r&&"previous"===n){var w=l.find(".page-content");w.length>0&&(w=w.filter((function(e,t){return 0===$(t).parents(".tab:not(.tab-active)").length&&!$(t).is(".tab:not(.tab-active)")}))),s.scrollHistory[v.route.url]=w.scrollTop()}p&&"beforeOut"===e&&"current"===r&&"next"===n&&delete s.scrollHistory[v.route.url],l.trigger(f,v),s.emit(d,v),"beforeRemove"!==e&&"beforeUnmount"!==e||(l[0].f7RouteEventsAttached&&(l[0].f7RouteEventsOn&&Object.keys(l[0].f7RouteEventsOn).forEach((function(e){l.off(Utils.eventNameToColonCase(e),l[0].f7RouteEventsOn[e])})),l[0].f7RouteEventsOnce&&Object.keys(l[0].f7RouteEventsOnce).forEach((function(e){l.off(Utils.eventNameToColonCase(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),h||(l[0].f7Page&&l[0].f7Page.navbarEl&&delete l[0].f7Page.navbarEl.f7Page,l[0].f7Page=null))}}function C(){l[0].f7RouteEventsAttached||(l[0].f7RouteEventsAttached=!0,m&&Object.keys(m).length>0&&(l[0].f7RouteEventsOn=m,Object.keys(m).forEach((function(e){m[e]=m[e].bind(s),l.on(Utils.eventNameToColonCase(e),m[e])}))),b&&Object.keys(b).length>0&&(l[0].f7RouteEventsOnce=b,Object.keys(b).forEach((function(e){b[e]=b[e].bind(s),l.once(Utils.eventNameToColonCase(e),b[e])}))))}},t.prototype.saveHistory=function(){this.view.history=this.history,this.params.pushState&&(win.localStorage["f7router-"+this.view.id+"-history"]=JSON.stringify(this.history))},t.prototype.restoreHistory=function(){this.params.pushState&&win.localStorage["f7router-"+this.view.id+"-history"]&&(this.history=JSON.parse(win.localStorage["f7router-"+this.view.id+"-history"]),this.view.history=this.history)},t.prototype.clearHistory=function(){this.history=[],this.view&&(this.view.history=[]),this.saveHistory()},t.prototype.updateCurrentUrl=function(e){appRouterCheck(this,"updateCurrentUrl"),this.history.length?this.history[this.history.length-1]=e:this.history.push(e);var t=this.parseRouteUrl(e),a=t.query,r=t.hash,n=t.params,o=t.url,i=t.path;if(this.currentRoute&&Utils.extend(this.currentRoute,{query:a,hash:r,params:n,url:o,path:i}),this.params.pushState){var s=this.params.pushStateRoot||"";History.replace(this.view.id,{url:e},s+this.params.pushStateSeparator+e)}this.saveHistory(),this.emit("routeUrlUpdate",this.currentRoute,this)},t.prototype.init=function(){var e=this,t=e.app,a=e.view;(a&&e.params.iosSwipeBack&&"ios"===t.theme||a&&e.params.mdSwipeBack&&"md"===t.theme||a&&e.params.auroraSwipeBack&&"aurora"===t.theme)&&SwipeBack(e);var r,n,o=e.params.url,i=doc.location.href.split(doc.location.origin)[1],s=e.params,l=s.pushState,u=s.pushStateOnLoad,c=s.pushStateSeparator,p=s.pushStateAnimateOnLoad,h=e.params.pushStateRoot;if(win.cordova&&l&&!c&&!h&&doc.location.pathname.indexOf("index.html")&&(console.warn("Framework7: wrong or not complete pushState configuration, trying to guess pushStateRoot"),h=doc.location.pathname.split("index.html")[0]),l&&u?(h&&i.indexOf(h)>=0&&""===(i=i.split(h)[1])&&(i="/"),o=c.length>0&&i.indexOf(c)>=0?i.split(c)[1]:i,e.restoreHistory(),e.history.indexOf(o)>=0?e.history=e.history.slice(0,e.history.indexOf(o)+1):e.params.url===o?e.history=[o]:History.state&&History.state[a.id]&&History.state[a.id].url===e.history[e.history.length-1]?o=e.history[e.history.length-1]:e.history=[i.split(c)[0]||"/",o],e.history.length>1?r=!0:e.history=[],e.saveHistory()):(o||(o=i),doc.location.search&&o.indexOf("?")<0&&(o+=doc.location.search),doc.location.hash&&o.indexOf("#")<0&&(o+=doc.location.hash)),e.history.length>1?(n=e.findMatchingRoute(e.history[0]))||(n=Utils.extend(e.parseRouteUrl(e.history[0]),{route:{url:e.history[0],path:e.history[0].split("?")[0]}})):(n=e.findMatchingRoute(o))||(n=Utils.extend(e.parseRouteUrl(o),{route:{url:o,path:o.split("?")[0]}})),e.params.stackPages&&e.$el.children(".page").each((function(t,a){var r=$(a);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,pushState:!1});else if(e.$el.children(".page:not(.stacked)").length){var d;e.currentRoute=n,e.$el.children(".page:not(.stacked)").each((function(t,r){var n,o=$(r);e.setPagePosition(o,"current"),e.dynamicNavbar&&((n=o.children(".navbar")).length>0?(e.$navbarsEl.parents(doc).length||e.$el.prepend(e.$navbarsEl),e.setNavbarPosition(n,"current"),e.$navbarsEl.append(n),n.children(".title-large").length&&n.addClass("navbar-large"),o.children(".navbar").remove()):(e.$navbarsEl.addClass("navbar-hidden"),n.children(".title-large").length&&e.$navbarsEl.addClass("navbar-hidden navbar-large-hidden"))),e.currentRoute&&e.currentRoute.route&&e.currentRoute.route.master&&e.params.masterDetailBreakpoint>0&&(o.addClass("page-master"),o.trigger("page:role",{role:"master"}),n&&n.length&&n.addClass("navbar-master"),a.checkMasterDetailBreakpoint());var i={route:e.currentRoute};e.currentRoute&&e.currentRoute.route&&e.currentRoute.route.options&&Utils.extend(i,e.currentRoute.route.options),e.currentPageEl=o[0],e.dynamicNavbar&&n.length&&(e.currentNavbarEl=n[0]),e.removeThemeElements(o),e.dynamicNavbar&&n.length&&e.removeThemeElements(n),i.route.route.tab&&(d=!0,e.tabLoad(i.route.route.tab,Utils.extend({},i))),e.pageCallback("init",o,n,"current",void 0,i)})),r&&e.navigate(o,{initial:!0,pushState:!1,history:!1,animate:p,once:{pageAfterIn:function(){(e.params.preloadPreviousPage||e.params[t.theme+"SwipeBack"])&&e.history.length>2&&e.back({preload:!0})}}}),r||d||(e.history.push(o),e.saveHistory())}!(o&&l&&u)||History.state&&History.state[a.id]||History.initViewState(a.id,{url:o}),e.emit("local::init routerInit",e)},t.prototype.destroy=function(){var e=this;e.emit("local::destroy routerDestroy",e),Object.keys(e).forEach((function(t){e[t]=null,delete e[t]})),e=null},t}(Framework7Class);Router.prototype.forward=forward,Router.prototype.load=load,Router.prototype.navigate=navigate,Router.prototype.refreshPage=refreshPage,Router.prototype.tabLoad=tabLoad,Router.prototype.tabRemove=tabRemove,Router.prototype.modalLoad=modalLoad,Router.prototype.modalRemove=modalRemove,Router.prototype.backward=backward,Router.prototype.loadBack=loadBack,Router.prototype.back=back,Router.prototype.clearPreviousHistory=clearPreviousHistory;var RouterModule={name:"router",static:{Router:Router},instance:{cache:{xhr:[],templates:[],components:[]}},create:function(){this.app?this.params.router&&(this.router=new Router(this.app,this)):this.router=new Router(this)}};function resizableView(e){var t=e.app;if(!e.resizableInitialized){Utils.extend(e,{resizable:!0,resizableWidth:null,resizableInitialized:!0});var a=$("html"),r=e.$el;if(r){var n,o,i,s,l,u,c,p={};(n=e.$el.children(".view-resize-handler")).length||(e.$el.append('
                          '),n=e.$el.children(".view-resize-handler")),e.$resizeHandlerEl=n,r.addClass("view-resizable");var h=!!Support.passiveListener&&{passive:!0};e.$el.on(t.touchEvents.start,".view-resize-handler",f,h),t.on("touchmove:active",v),t.on("touchend:passive",g),t.on("resize",m),e.on("beforeOpen",m),e.once("viewDestroy",(function(){r.removeClass("view-resizable"),e.$resizeHandlerEl.remove(),e.$el.off(t.touchEvents.start,".view-resize-handler",f,h),t.off("touchmove:active",v),t.off("touchend:passive",g),t.off("resize",m),e.off("beforeOpen",m)}))}}function d(e){if(!e)return null;if(e.indexOf("%")>=0||e.indexOf("vw")>=0)return parseInt(e,10)/100*t.width;var a=parseInt(e,10);return Number.isNaN(a)?null:a}function f(t){if(e.resizable&&r.hasClass("view-resizable")&&r.hasClass("view-master-detail")){p.x="touchstart"===t.type?t.targetTouches[0].pageX:t.pageX,p.y="touchstart"===t.type?t.targetTouches[0].pageY:t.pageY,i=!1,o=!0;var a=r.children(".page-master");u=d(a.css("min-width")),c=d(a.css("max-width"))}}function v(h){if(o){h.f7PreventSwipePanel=!0;var d="touchmove"===h.type?h.targetTouches[0].pageX:h.pageX;i||(l=n[0].offsetLeft+n[0].offsetWidth,r.addClass("view-resizing"),a.css("cursor","col-resize")),i=!0,h.preventDefault(),s=d-p.x;var f=l+s;u&&!Number.isNaN(u)&&(f=Math.max(f,u)),c&&!Number.isNaN(c)&&(f=Math.min(f,c)),f=Math.min(Math.max(f,0),t.width),e.resizableWidth=f,a[0].style.setProperty("--f7-page-master-width",f+"px"),r.trigger("view:resize",f),e.emit("local::resize viewResize",e,f)}}function g(){if($("html").css("cursor",""),!o||!i)return o=!1,void(i=!1);o=!1,i=!1,a[0].style.setProperty("--f7-page-master-width",e.resizableWidth+"px"),r.removeClass("view-resizing")}function m(){e.resizableWidth&&(u=d(n.css("min-width")),c=d(n.css("max-width")),u&&!Number.isNaN(u)&&e.resizableWidthc&&(e.resizableWidth=Math.min(e.resizableWidth,c)),e.resizableWidth=Math.min(Math.max(e.resizableWidth,0),t.width),a[0].style.setProperty("--f7-page-master-width",e.resizableWidth+"px"))}}var View=function(e){function t(t,a,r){void 0===r&&(r={}),e.call(this,r,[t]);var n,o,i,s=t,l=$(a),u=this;if(0===l.length){var c="Framework7: can't create a View instance because ";throw new Error(c+="string"==typeof a?'the selector "'+a+"\" didn't match any element":"el must be an HTMLElement or Dom7 object")}return u.params=Utils.extend({routes:[],routesAdd:[]},s.params.view,r),u.params.routes.length>0?u.routes=u.params.routes:u.routes=[].concat(s.routes,u.params.routesAdd),n="string"==typeof a?a:(l.attr("id")?"#"+l.attr("id"):"")+(l.attr("class")?"."+l.attr("class").replace(/ /g,".").replace(".active",""):""),"ios"===s.theme&&u.params.iosDynamicNavbar&&0===(o=l.children(".navbars").eq(0)).length&&(o=$('')),Utils.extend(!1,u,{app:s,$el:l,el:l[0],name:u.params.name,main:u.params.main||l.hasClass("view-main"),$navbarsEl:o,navbarsEl:o?o[0]:void 0,selector:n,history:[],scrollHistory:{}}),l[0].f7View=u,u.useModules(),s.views.push(u),u.main&&(s.views.main=u),u.name&&(s.views[u.name]=u),u.index=s.views.indexOf(u),i=u.name?"view_"+u.name:u.main?"view_main":"view_"+u.index,u.id=i,s.initialized?u.init():s.on("init",(function(){u.init()})),u}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.destroy=function(){var e=this,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((function(t){e[t]=null,delete e[t]})),e=null},t.prototype.checkMasterDetailBreakpoint=function(e){var t=this.app,a=this.$el.hasClass("view-master-detail"),r=t.width>=this.params.masterDetailBreakpoint&&this.$el.children(".page-master").length;void 0===e&&r||!0===e?(this.$el.addClass("view-master-detail"),a||(this.emit("local::masterDetailBreakpoint viewMasterDetailBreakpoint",this),this.$el.trigger("view:masterDetailBreakpoint"))):(this.$el.removeClass("view-master-detail"),a&&(this.emit("local::masterDetailBreakpoint viewMasterDetailBreakpoint",this),this.$el.trigger("view:masterDetailBreakpoint")))},t.prototype.initMasterDetail=function(){var e=this.app;this.checkMasterDetailBreakpoint=this.checkMasterDetailBreakpoint.bind(this),this.checkMasterDetailBreakpoint(),this.params.masterDetailResizable&&resizableView(this),e.on("resize",this.checkMasterDetailBreakpoint)},t.prototype.init=function(){this.params.router&&(this.params.masterDetailBreakpoint>0&&this.initMasterDetail(),this.router.init(),this.$el.trigger("view:init"),this.emit("local::init viewInit",this))},t}(Framework7Class);function initClicks(e){e.on("click",(function(t){var a=$(t.target),r=a.closest("a"),n=r.length>0,o=n&&r.attr("href");if(n&&(r.is(e.params.clicks.externalLinks)||o&&o.indexOf("javascript:")>=0)){var i=r.attr("target");o&&win.cordova&&win.cordova.InAppBrowser&&("_system"===i||"_blank"===i)&&(t.preventDefault(),win.cordova.InAppBrowser.open(o,i))}else{Object.keys(e.modules).forEach((function(r){var n=e.modules[r].clicks;n&&(t.preventF7Router||Object.keys(n).forEach((function(r){var o=a.closest(r).eq(0);o.length>0&&n[r].call(e,o,o.dataset(),t)})))}));var s={};if(n&&(t.preventDefault(),s=r.dataset()),!t.preventF7Router)if(!r.hasClass("prevent-router")&&!r.hasClass("router-prevent"))if(o&&o.length>0&&"#"!==o[0]||r.hasClass("back")){var l;if(s.view&&"current"===s.view?l=e.views.current:s.view?l=$(s.view)[0].f7View:(l=a.parents(".view")[0]&&a.parents(".view")[0].f7View,!r.hasClass("back")&&l&&l.params.linksView&&("string"==typeof l.params.linksView?l=$(l.params.linksView)[0].f7View:l.params.linksView instanceof View&&(l=l.params.linksView))),l||e.views.main&&(l=e.views.main),!l||!l.router)return;if(s.context&&"string"==typeof s.context)try{s.context=JSON.parse(s.context)}catch(e){}r[0].f7RouteProps&&(s.props=r[0].f7RouteProps),r.hasClass("back")?l.router.back(o,s):l.router.navigate(o,s)}}}))}View.use(RouterModule);var ClicksModule={name:"clicks",params:{clicks:{externalLinks:".external"}},on:{init:function(){initClicks(this)}}},HistoryModule={name:"history",static:{history:History},on:{init:function(){History.init(this)}}},SW={registrations:[],register:function(e,t){var a=this;return"serviceWorker"in win.navigator&&a.serviceWorker.container?new Promise((function(r,n){a.serviceWorker.container.register(e,t?{scope:t}:{}).then((function(e){SW.registrations.push(e),a.emit("serviceWorkerRegisterSuccess",e),r(e)})).catch((function(e){a.emit("serviceWorkerRegisterError",e),n(e)}))})):new Promise((function(e,t){t(new Error("Service worker is not supported"))}))},unregister:function(e){var t,a=this;return"serviceWorker"in win.navigator&&a.serviceWorker.container?(t=e?Array.isArray(e)?e:[e]:SW.registrations,Promise.all(t.map((function(e){return new Promise((function(t,r){e.unregister().then((function(){SW.registrations.indexOf(e)>=0&&SW.registrations.splice(SW.registrations.indexOf(e),1),a.emit("serviceWorkerUnregisterSuccess",e),t()})).catch((function(t){a.emit("serviceWorkerUnregisterError",e,t),r(t)}))}))})))):new Promise((function(e,t){t(new Error("Service worker is not supported"))}))}},ServiceWorkerModule={name:"sw",params:{serviceWorker:{path:void 0,scope:void 0}},create:function(){Utils.extend(this,{serviceWorker:{container:"serviceWorker"in win.navigator?win.navigator.serviceWorker:void 0,registrations:SW.registrations,register:SW.register.bind(this),unregister:SW.unregister.bind(this)}})},on:{init:function(){if("serviceWorker"in win.navigator){var e=this;if(e.serviceWorker.container){var t=e.params.serviceWorker.path,a=e.params.serviceWorker.scope;if(t&&(!Array.isArray(t)||t.length))(Array.isArray(t)?t:[t]).forEach((function(t){e.serviceWorker.register(t,a)}))}}}}},Statusbar={hide:function(){Device.cordova&&win.StatusBar&&win.StatusBar.hide()},show:function(){Device.cordova&&win.StatusBar&&win.StatusBar.show()},onClick:function(){var e;(e=$(".popup.modal-in").length>0?$(".popup.modal-in").find(".page:not(.page-previous):not(.page-next):not(.cached)").find(".page-content"):$(".panel.panel-in").length>0?$(".panel.panel-in").find(".page:not(.page-previous):not(.page-next):not(.cached)").find(".page-content"):$(".views > .view.tab-active").length>0?$(".views > .view.tab-active").find(".page:not(.page-previous):not(.page-next):not(.cached)").find(".page-content"):$(".views").length>0?$(".views").find(".page:not(.page-previous):not(.page-next):not(.cached)").find(".page-content"):this.root.children(".view").find(".page:not(.page-previous):not(.page-next):not(.cached)").find(".page-content"))&&e.length>0&&(e.hasClass("tab")&&(e=e.parent(".tabs").children(".page-content.tab-active")),e.length>0&&e.scrollTop(0,300))},setTextColor:function(e){Device.cordova&&win.StatusBar&&("white"===e?win.StatusBar.styleLightContent():win.StatusBar.styleDefault())},setBackgroundColor:function(e){Device.cordova&&win.StatusBar&&win.StatusBar.backgroundColorByHexString(e)},isVisible:function(){return!(!Device.cordova||!win.StatusBar)&&win.StatusBar.isVisible},overlaysWebView:function(e){void 0===e&&(e=!0),Device.cordova&&win.StatusBar&&win.StatusBar.overlaysWebView(e)},init:function(){var e=this.params.statusbar;e.enabled&&(Device.cordova&&win.StatusBar&&(e.scrollTopOnClick&&$(win).on("statusTap",Statusbar.onClick.bind(this)),Device.ios&&(e.iosOverlaysWebView?win.StatusBar.overlaysWebView(!0):win.StatusBar.overlaysWebView(!1),"white"===e.iosTextColor?win.StatusBar.styleLightContent():win.StatusBar.styleDefault()),Device.android&&(e.androidOverlaysWebView?win.StatusBar.overlaysWebView(!0):win.StatusBar.overlaysWebView(!1),"white"===e.androidTextColor?win.StatusBar.styleLightContent():win.StatusBar.styleDefault())),e.iosBackgroundColor&&Device.ios&&Statusbar.setBackgroundColor(e.iosBackgroundColor),e.androidBackgroundColor&&Device.android&&Statusbar.setBackgroundColor(e.androidBackgroundColor))}},Statusbar$1={name:"statusbar",params:{statusbar:{enabled:!0,scrollTopOnClick:!0,iosOverlaysWebView:!0,iosTextColor:"black",iosBackgroundColor:null,androidOverlaysWebView:!1,androidTextColor:"black",androidBackgroundColor:null}},create:function(){Utils.extend(this,{statusbar:{hide:Statusbar.hide,show:Statusbar.show,overlaysWebView:Statusbar.overlaysWebView,setTextColor:Statusbar.setTextColor,setBackgroundColor:Statusbar.setBackgroundColor,isVisible:Statusbar.isVisible,init:Statusbar.init.bind(this)}})},on:{init:function(){Statusbar.init.call(this)}}};function getCurrentView(e){var t=$(".popover.modal-in .view"),a=$(".popup.modal-in .view"),r=$(".panel.panel-in .view"),n=$(".views");0===n.length&&(n=e.root);var o=n.children(".view");if(0===o.length&&(o=n.children(".tabs").children(".view")),o.length>1&&o.hasClass("tab")&&0===(o=n.children(".view.tab-active")).length&&(o=n.children(".tabs").children(".view.tab-active")),t.length>0&&t[0].f7View)return t[0].f7View;if(a.length>0&&a[0].f7View)return a[0].f7View;if(r.length>0&&r[0].f7View)return r[0].f7View;if(o.length>0){if(1===o.length&&o[0].f7View)return o[0].f7View;if(o.length>1)return e.views.main}}var View$1={name:"view",params:{view:{name:void 0,main:!1,router:!0,linksView:null,stackPages:!1,xhrCache:!0,xhrCacheIgnore:[],xhrCacheIgnoreGetParameters:!1,xhrCacheDuration:6e5,componentCache:!0,preloadPreviousPage:!0,allowDuplicateUrls:!1,reloadPages:!1,reloadDetail:!1,masterDetailBreakpoint:0,masterDetailResizable:!1,removeElements:!0,removeElementsWithTimeout:!1,removeElementsTimeout:0,restoreScrollTopOnBack:!0,unloadTabContent:!0,passRouteQueryToRequest:!0,passRouteParamsToRequest:!1,loadInitialPage:!0,iosSwipeBack:!0,iosSwipeBackAnimateShadow:!0,iosSwipeBackAnimateOpacity:!0,iosSwipeBackActiveArea:30,iosSwipeBackThreshold:0,mdSwipeBack:!1,mdSwipeBackAnimateShadow:!0,mdSwipeBackAnimateOpacity:!1,mdSwipeBackActiveArea:30,mdSwipeBackThreshold:0,auroraSwipeBack:!1,auroraSwipeBackAnimateShadow:!1,auroraSwipeBackAnimateOpacity:!0,auroraSwipeBackActiveArea:30,auroraSwipeBackThreshold:0,pushState:!1,pushStateRoot:void 0,pushStateAnimate:!0,pushStateAnimateOnLoad:!1,pushStateSeparator:"#!",pushStateOnLoad:!0,animate:!0,iosDynamicNavbar:!0,iosAnimateNavbarBackIcon:!0,iosPageLoadDelay:0,mdPageLoadDelay:0,auroraPageLoadDelay:0,routesBeforeEnter:null,routesBeforeLeave:null}},static:{View:View},create:function(){var e=this;Utils.extend(e,{views:Utils.extend([],{create:function(t,a){return new View(e,t,a)},get:function(e){var t=$(e);if(t.length&&t[0].f7View)return t[0].f7View}})}),Object.defineProperty(e.views,"current",{enumerable:!0,configurable:!0,get:function(){return getCurrentView(e)}}),e.view=e.views},on:{init:function(){var e=this;$(".view-init").each((function(t,a){if(!a.f7View){var r=$(a).dataset();e.views.create(a,r)}}))},"modalOpen panelOpen":function(e){var t=this;e.$el.find(".view-init").each((function(e,a){if(!a.f7View){var r=$(a).dataset();t.views.create(a,r)}}))},"modalBeforeDestroy panelBeforeDestroy":function(e){e&&e.$el&&e.$el.find(".view-init").each((function(e,t){var a=t.f7View;a&&a.destroy()}))}},vnode:{"view-init":{insert:function(e){var t=e.elm;if(!t.f7View){var a=$(t).dataset();this.views.create(t,a)}},destroy:function(e){var t=e.elm.f7View;t&&t.destroy()}}}},Navbar={size:function(e){var t=this,a=$(e);if(a.hasClass("navbars"))a=a.children(".navbar").each((function(e,a){t.navbar.size(a)}));else{var r=a.children(".navbar-inner");if(r.length){var n=r.hasClass("navbar-inner-centered-title")||t.params.navbar[t.theme+"CenterTitle"],o="ios"===t.theme&&!t.params.navbar[t.theme+"CenterTitle"];if((n||o)&&!(a.hasClass("stacked")||a.parents(".stacked").length>0||a.parents(".tab:not(.tab-active)").length>0||a.parents(".popup:not(.modal-in)").length>0)){"ios"!==t.theme&&t.params.navbar[t.theme+"CenterTitle"]&&r.addClass("navbar-inner-centered-title"),"ios"!==t.theme||t.params.navbar.iosCenterTitle||r.addClass("navbar-inner-left-title");var i,s,l,u,c=a.parents(".view").eq(0),p=t.rtl?r.children(".right"):r.children(".left"),h=t.rtl?r.children(".left"):r.children(".right"),d=r.children(".title"),f=r.children(".subnavbar"),v=0===p.length,g=0===h.length,m=v?0:p.outerWidth(!0),b=g?0:h.outerWidth(!0),y=d.outerWidth(!0),w=r.styles(),C=r[0].offsetWidth-parseInt(w.paddingLeft,10)-parseInt(w.paddingRight,10),x=a.hasClass("navbar-previous"),k=r.hasClass("sliding");c.length>0&&c[0].f7View&&(s=(i=c[0].f7View.router)&&i.dynamicNavbar),g&&(l=C-y),v&&(l=0),v||g||(l=(C-b-y+m)/2);var S=(C-y)/2;C-m-b>y?(SC-b&&(S=C-b-y),u=S-l):u=0;var E=t.rtl?-1:1;if(s&&"ios"===t.theme){if(d.hasClass("sliding")||d.length>0&&k){var T=-(l+u)*E,P=(C-l-u-y)*E;if(x&&i&&i.params.iosAnimateNavbarBackIcon){var R=a.parent().find(".navbar-current").children(".left.sliding").find(".back .icon ~ span");R.length>0&&(T+=R[0].offsetLeft)}d[0].f7NavbarLeftOffset=T,d[0].f7NavbarRightOffset=P}if(!v&&(p.hasClass("sliding")||k))if(t.rtl)p[0].f7NavbarLeftOffset=-(C-p[0].offsetWidth)/2*E,p[0].f7NavbarRightOffset=m*E;else if(p[0].f7NavbarLeftOffset=-m,p[0].f7NavbarRightOffset=(C-p[0].offsetWidth)/2,i&&i.params.iosAnimateNavbarBackIcon&&p.find(".back .icon").length>0&&p.find(".back .icon ~ span").length){var O=p[0].f7NavbarLeftOffset,D=p[0].f7NavbarRightOffset;p[0].f7NavbarLeftOffset=0,p[0].f7NavbarRightOffset=0,p.find(".back .icon ~ span")[0].f7NavbarLeftOffset=O,p.find(".back .icon ~ span")[0].f7NavbarRightOffset=D-p.find(".back .icon")[0].offsetWidth}g||!h.hasClass("sliding")&&!k||(t.rtl?(h[0].f7NavbarLeftOffset=-b*E,h[0].f7NavbarRightOffset=(C-h[0].offsetWidth)/2*E):(h[0].f7NavbarLeftOffset=-(C-h[0].offsetWidth)/2,h[0].f7NavbarRightOffset=b)),f.length&&(f.hasClass("sliding")||k)&&(f[0].f7NavbarLeftOffset=t.rtl?f[0].offsetWidth:-f[0].offsetWidth,f[0].f7NavbarRightOffset=-f[0].f7NavbarLeftOffset)}if(n){var L=u;t.rtl&&v&&g&&d.length>0&&(L=-L),d.css({left:L+"px"})}}}}},hide:function(e,t,a){void 0===t&&(t=!0),void 0===a&&(a=!1);var r=this,n=$(e),o=n.hasClass("navbar")&&n.parent(".navbars").length;if(o&&(n=n.parents(".navbars")),n.length&&!n.hasClass("navbar-hidden")){var i="navbar-hidden"+(t?" navbar-transitioning":"");(o?n.find(".navbar-current .title-large").length:n.find(".title-large").length)&&(i+=" navbar-large-hidden"),a&&(i+=" navbar-hidden-statusbar"),n.transitionEnd((function(){n.removeClass("navbar-transitioning")})),n.addClass(i),o?n.children(".navbar").each((function(e,t){$(t).trigger("navbar:hide"),r.emit("navbarHide",t)})):(n.trigger("navbar:hide"),r.emit("navbarHide",n[0]))}},show:function(e,t){void 0===e&&(e=".navbar-hidden"),void 0===t&&(t=!0);var a=this,r=$(e),n=r.hasClass("navbar")&&r.parent(".navbars").length;n&&(r=r.parents(".navbars")),r.length&&r.hasClass("navbar-hidden")&&(t&&(r.addClass("navbar-transitioning"),r.transitionEnd((function(){r.removeClass("navbar-transitioning")}))),r.removeClass("navbar-hidden navbar-large-hidden navbar-hidden-statusbar"),n?r.children(".navbar").each((function(e,t){$(t).trigger("navbar:show"),a.emit("navbarShow",t)})):(r.trigger("navbar:show"),a.emit("navbarShow",r[0])))},getElByPage:function(e){var t,a,r;if(e.$navbarEl||e.$el?(r=e,t=e.$el):(t=$(e)).length>0&&(r=t[0].f7Page),r&&r.$navbarEl&&r.$navbarEl.length>0?a=r.$navbarEl:t&&(a=t.children(".navbar")),a&&(!a||0!==a.length))return a[0]},getPageByEl:function(e){var t,a=$(e);return a.parents(".page").length?a.parents(".page")[0]:(a.parents(".view").find(".page").each((function(e,r){r&&r.f7Page&&r.f7Page.navbarEl&&a[0]===r.f7Page.navbarEl&&(t=r)})),t)},collapseLargeTitle:function(e){var t=$(e);if(!(t.hasClass("navbars")&&((t=t.find(".navbar")).length>1&&(t=$(e).find(".navbar-large.navbar-current")),t.length>1||!t.length))){var a=$(this.navbar.getPageByEl(t));t.addClass("navbar-large-collapsed"),a.eq(0).addClass("page-with-navbar-large-collapsed").trigger("page:navbarlargecollapsed"),this.emit("pageNavbarLargeCollapsed",a[0]),t.trigger("navbar:collapse"),this.emit("navbarCollapse",t[0])}},expandLargeTitle:function(e){var t=$(e);if(!(t.hasClass("navbars")&&((t=t.find(".navbar-large")).length>1&&(t=$(e).find(".navbar-large.navbar-current")),t.length>1||!t.length))){var a=$(this.navbar.getPageByEl(t));t.removeClass("navbar-large-collapsed"),a.eq(0).removeClass("page-with-navbar-large-collapsed").trigger("page:navbarlargeexpanded"),this.emit("pageNavbarLargeExpanded",a[0]),t.trigger("navbar:expand"),this.emit("navbarExpand",t[0])}},toggleLargeTitle:function(e){var t=$(e);t.hasClass("navbars")&&((t=t.find(".navbar-large")).length>1&&(t=$(e).find(".navbar-large.navbar-current")),t.length>1||!t.length)||(t.hasClass("navbar-large-collapsed")?this.navbar.expandLargeTitle(t):this.navbar.collapseLargeTitle(t))},initNavbarOnScroll:function(e,t,a,r,n){var o,i,s,l,u,c,p,h,d,f,v,g,m,b,y=this,w=$(e),C=$(t),x=C.find(".title-large"),k=x.length||C.hasClass(".navbar-large"),S=44,E=y.params.navbar.snapPageScrollToLargeTitle,T=y.params.navbar.snapPageScrollToTransparentNavbar;(r||a&&k)&&((d=C.css("--f7-navbar-large-title-height"))&&d.indexOf("px")>=0?(d=parseInt(d,10),Number.isNaN(d)&&x.length?d=x[0].offsetHeight:Number.isNaN(d)&&("ios"===y.theme?d=52:"md"===y.theme?d=48:"aurora"===y.theme&&(d=38))):x.length?d=x[0].offsetHeight:"ios"===y.theme?d=52:"md"===y.theme?d=48:"aurora"===y.theme&&(d=38)),a&&k&&(S+=d);function P(){C.hasClass("with-searchbar-expandable-enabled")||!g||i<0||(i>=d/2&&i=f/2&&i0&&O<1;C.hasClass("with-searchbar-expandable-enabled")||(h=C.hasClass("navbar-large-collapsed"),0===D&&h?y.navbar.expandLargeTitle(C[0]):1!==D||h||y.navbar.collapseLargeTitle(C[0]),0===D&&h||0===D&&t||1===D&&!h||1===D&&t?("md"===y.theme&&C.find(".navbar-inner").css("overflow",""),C.find(".title").css("opacity",""),C.find(".title-large-text, .subnavbar").css("transform",""),e?C.find(".navbar-bg").css("opacity",""):C.find(".navbar-bg").css("transform","")):D>0&&D<1&&("md"===y.theme&&C.find(".navbar-inner").css("overflow","visible"),C.find(".title").css("opacity",D),C.find(".title-large-text, .subnavbar").css("transform","translate3d(0px, "+-1*D*d+"px, 0)"),e?C.find(".navbar-bg").css("opacity",D):C.find(".navbar-bg").css("transform","translate3d(0px, "+-1*D*d+"px, 0)")),E&&(Support.touch?b&&(clearTimeout(b),b=null,b=setTimeout((function(){P(),clearTimeout(b),b=null}),70)):(clearTimeout(m),m=setTimeout((function(){P()}),300))))}}():n&&function(){var e=C.hasClass("navbar-hidden")||C.parent(".navbars").hasClass("navbar-hidden");if(!C.hasClass("with-searchbar-expandable-enabled")&&!e){f||(f=t.offsetHeight);var a=i/f,r=C.hasClass("navbar-transparent-visible");if(a=Math.max(Math.min(a,1),0),r&&1===a||!r&&0===a)C.find(".navbar-bg, .title").css("opacity","");else{if(r&&0===a)return C.trigger("navbar:transparenthide"),y.emit("navbarTransparentHide",C[0]),C.removeClass("navbar-transparent-visible"),void C.find(".navbar-bg, .title").css("opacity","");if(!r&&1===a)return C.trigger("navbar:transparentshow"),y.emit("navbarTransparentShow",C[0]),C.addClass("navbar-transparent-visible"),void C.find(".navbar-bg, .title").css("opacity","");C.find(".navbar-bg, .title").css("opacity",a),T&&(Support.touch?b&&(clearTimeout(b),b=null,b=setTimeout((function(){R(),clearTimeout(b),b=null}),70)):(clearTimeout(m),m=setTimeout((function(){R()}),300)))}}}(),w.hasClass("page-previous")||a&&(w.hasClass("page-with-card-opened")||(s=g.scrollHeight,l=g.offsetHeight,u=i+l>=s,p=C.hasClass("navbar-hidden")||C.parent(".navbars").hasClass("navbar-hidden"),u?y.params.navbar.showOnPageScrollEnd&&(c="show"):c=o>i?y.params.navbar.showOnPageScrollTop||i<=S?"show":"hide":i>S?"hide":"show","show"===c&&p?(y.navbar.show(C),p=!1):"hide"!==c||p||(y.navbar.hide(C),p=!0),o=i)))}function M(){v=!1}function N(){clearTimeout(b),b=null,b=setTimeout((function(){!1!==v&&(n&&!r?R():P(),clearTimeout(b),b=null)}),70)}w.on("scroll",".page-content",L,!0),Support.touch&&(r&&E||n&&T)&&(y.on("touchstart:passive",M),y.on("touchend:passive",N)),(r||n)&&w.find(".page-content").each((function(e,t){t.scrollTop>0&&L.call(t)})),w[0].f7DetachNavbarScrollHandlers=function(){delete w[0].f7DetachNavbarScrollHandlers,w.off("scroll",".page-content",L,!0),Support.touch&&(r&&E||n&&T)&&(y.off("touchstart:passive",M),y.off("touchend:passive",N))}}},Navbar$1={name:"navbar",create:function(){var e=this;Utils.extend(e,{navbar:{size:Navbar.size.bind(e),hide:Navbar.hide.bind(e),show:Navbar.show.bind(e),getElByPage:Navbar.getElByPage.bind(e),getPageByEl:Navbar.getPageByEl.bind(e),collapseLargeTitle:Navbar.collapseLargeTitle.bind(e),expandLargeTitle:Navbar.expandLargeTitle.bind(e),toggleLargeTitle:Navbar.toggleLargeTitle.bind(e),initNavbarOnScroll:Navbar.initNavbarOnScroll.bind(e)}})},params:{navbar:{scrollTopOnTitleClick:!0,iosCenterTitle:!0,mdCenterTitle:!1,auroraCenterTitle:!0,hideOnPageScroll:!1,showOnPageScrollEnd:!0,showOnPageScrollTop:!0,collapseLargeTitleOnScroll:!0,snapPageScrollToLargeTitle:!0,snapPageScrollToTransparentNavbar:!0}},on:{"panelBreakpoint panelCollapsedBreakpoint panelResize viewResize resize viewMasterDetailBreakpoint":function(){var e=this;$(".navbar").each((function(t,a){e.navbar.size(a)}))},pageBeforeRemove:function(e){e.$el[0].f7DetachNavbarScrollHandlers&&e.$el[0].f7DetachNavbarScrollHandlers()},pageBeforeIn:function(e){if("ios"===this.theme){var t,a=e.$el.parents(".view")[0].f7View,r=this.navbar.getElByPage(e);if(t=r?$(r).parents(".navbars"):e.$el.parents(".view").children(".navbars"),e.$el.hasClass("no-navbar")||a.router.dynamicNavbar&&!r){var n=!!(e.pageFrom&&e.router.history.length>0);this.navbar.hide(t,n)}else this.navbar.show(t)}},pageReinit:function(e){var t=$(this.navbar.getElByPage(e));t&&0!==t.length&&this.navbar.size(t)},pageInit:function(e){var t,a,r,n=$(this.navbar.getElByPage(e));n&&0!==n.length&&(this.navbar.size(n),n.find(".title-large").length>0&&n.addClass("navbar-large"),n.hasClass("navbar-large")&&(this.params.navbar.collapseLargeTitleOnScroll&&(t=!0),e.$el.addClass("page-with-navbar-large")),!t&&n.hasClass("navbar-transparent")&&(a=!0),(this.params.navbar.hideOnPageScroll||e.$el.find(".hide-navbar-on-scroll").length||e.$el.hasClass("hide-navbar-on-scroll")||e.$el.find(".hide-bars-on-scroll").length||e.$el.hasClass("hide-bars-on-scroll"))&&(r=!(e.$el.find(".keep-navbar-on-scroll").length||e.$el.hasClass("keep-navbar-on-scroll")||e.$el.find(".keep-bars-on-scroll").length||e.$el.hasClass("keep-bars-on-scroll"))),(t||r||a)&&this.navbar.initNavbarOnScroll(e.el,n[0],r,t,a))},"panelOpen panelSwipeOpen modalOpen":function(e){var t=this;e.$el.find(".navbar:not(.navbar-previous):not(.stacked)").each((function(e,a){t.navbar.size(a)}))},tabShow:function(e){var t=this;$(e).find(".navbar:not(.navbar-previous):not(.stacked)").each((function(e,a){t.navbar.size(a)}))}},clicks:{".navbar .title":function(e){if(this.params.navbar.scrollTopOnTitleClick&&!(e.closest("a").length>0)){var t,a=e.parents(".navbar"),r=a.parents(".navbars");0===(t=a.parents(".page-content")).length&&(a.parents(".page").length>0&&(t=a.parents(".page").find(".page-content")),0===t.length&&r.length&&r.nextAll(".page-current:not(.stacked)").length>0&&(t=r.nextAll(".page-current:not(.stacked)").find(".page-content")),0===t.length&&a.nextAll(".page-current:not(.stacked)").length>0&&(t=a.nextAll(".page-current:not(.stacked)").find(".page-content"))),t&&t.length>0&&(t.hasClass("tab")&&(t=t.parent(".tabs").children(".page-content.tab-active")),t.length>0&&t.scrollTop(0,300))}}},vnode:{navbar:{postpatch:function(e){this.navbar.size(e.elm)}}}},Toolbar={setHighlight:function(e){if("md"===this.theme){var t=$(e);if(0!==t.length&&(t.hasClass("tabbar")||t.hasClass("tabbar-labels"))){var a=t.find(".tab-link-highlight"),r=t.find(".tab-link").length;if(0!==r){0===a.length?(t.children(".toolbar-inner").append(''),a=t.find(".tab-link-highlight")):a.next().length&&t.children(".toolbar-inner").append(a);var n,o,i=t.find(".tab-link-active");if(t.hasClass("tabbar-scrollable")&&i&&i[0])n=i[0].offsetWidth+"px",o=i[0].offsetLeft+"px";else{var s=i.index();n=100/r+"%",o=100*(this.rtl?-s:s)+"%"}Utils.nextFrame((function(){a.css("width",n).transform("translate3d("+o+",0,0)")}))}else a.remove()}}},init:function(e){this.toolbar.setHighlight(e)},hide:function(e,t){void 0===t&&(t=!0);var a=$(e);if(!a.hasClass("toolbar-hidden")){var r="toolbar-hidden"+(t?" toolbar-transitioning":"");a.transitionEnd((function(){a.removeClass("toolbar-transitioning")})),a.addClass(r),a.trigger("toolbar:hide"),this.emit("toolbarHide",a[0])}},show:function(e,t){void 0===t&&(t=!0);var a=$(e);a.hasClass("toolbar-hidden")&&(t&&(a.addClass("toolbar-transitioning"),a.transitionEnd((function(){a.removeClass("toolbar-transitioning")}))),a.removeClass("toolbar-hidden"),a.trigger("toolbar:show"),this.emit("toolbarShow",a[0]))},initToolbarOnScroll:function(e){var t,a,r,n,o,i,s,l=this,u=$(e),c=u.parents(".view").children(".toolbar");(0===c.length&&(c=u.find(".toolbar")),0===c.length&&(c=u.parents(".views").children(".tabbar, .tabbar-labels")),0!==c.length)&&(u.on("scroll",".page-content",p,!0),u[0].f7ScrollToolbarHandler=p);function p(e){if(!u.hasClass("page-with-card-opened")&&!u.hasClass("page-previous")){e&&e.target&&e.target!==this||(a=this.scrollTop,r=this.scrollHeight,n=this.offsetHeight,o=a+n>=r,s=c.hasClass("toolbar-hidden"),o?l.params.toolbar.showOnPageScrollEnd&&(i="show"):i=t>a?l.params.toolbar.showOnPageScrollTop||a<=44?"show":"hide":a>44?"hide":"show","show"===i&&s?(l.toolbar.show(c),s=!1):"hide"!==i||s||(l.toolbar.hide(c),s=!0),t=a)}}}},Toolbar$1={name:"toolbar",create:function(){Utils.extend(this,{toolbar:{hide:Toolbar.hide.bind(this),show:Toolbar.show.bind(this),setHighlight:Toolbar.setHighlight.bind(this),initToolbarOnScroll:Toolbar.initToolbarOnScroll.bind(this),init:Toolbar.init.bind(this)}})},params:{toolbar:{hideOnPageScroll:!1,showOnPageScrollEnd:!0,showOnPageScrollTop:!0}},on:{pageBeforeRemove:function(e){e.$el[0].f7ScrollToolbarHandler&&e.$el.off("scroll",".page-content",e.$el[0].f7ScrollToolbarHandler,!0)},pageBeforeIn:function(e){var t=e.$el.parents(".view").children(".toolbar");0===t.length&&(t=e.$el.parents(".views").children(".tabbar, .tabbar-labels")),0===t.length&&(t=e.$el.find(".toolbar")),0!==t.length&&(e.$el.hasClass("no-toolbar")?this.toolbar.hide(t):this.toolbar.show(t))},pageInit:function(e){var t=this;if(e.$el.find(".tabbar, .tabbar-labels").each((function(e,a){t.toolbar.init(a)})),t.params.toolbar.hideOnPageScroll||e.$el.find(".hide-toolbar-on-scroll").length||e.$el.hasClass("hide-toolbar-on-scroll")||e.$el.find(".hide-bars-on-scroll").length||e.$el.hasClass("hide-bars-on-scroll")){if(e.$el.find(".keep-toolbar-on-scroll").length||e.$el.hasClass("keep-toolbar-on-scroll")||e.$el.find(".keep-bars-on-scroll").length||e.$el.hasClass("keep-bars-on-scroll"))return;t.toolbar.initToolbarOnScroll(e.el)}},init:function(){var e=this;e.root.find(".tabbar, .tabbar-labels").each((function(t,a){e.toolbar.init(a)}))}},vnode:{tabbar:{insert:function(e){this.toolbar.init(e.elm)}}}},Subnavbar={name:"subnavbar",on:{pageInit:function(e){e.$navbarEl&&e.$navbarEl.length&&e.$navbarEl.find(".subnavbar").length&&e.$el.addClass("page-with-subnavbar"),e.$el.find(".subnavbar").length&&e.$el.addClass("page-with-subnavbar")}}},TouchRipple=function(e,t,a){var r=this;if(e){var n=e[0].getBoundingClientRect(),o=t-n.left,i=a-n.top,s=n.width,l=n.height,u=Math.max(Math.pow(Math.pow(l,2)+Math.pow(s,2),.5),48);return r.$rippleWaveEl=$('
                          '),e.prepend(r.$rippleWaveEl),r.rippleTransform="translate3d("+(s/2-o)+"px, "+(l/2-i)+"px, 0) scale(1)",Utils.nextFrame((function(){r&&r.$rippleWaveEl&&r.$rippleWaveEl.transform(r.rippleTransform)})),r}};TouchRipple.prototype.destroy=function(){var e=this;e.$rippleWaveEl&&e.$rippleWaveEl.remove(),Object.keys(e).forEach((function(t){e[t]=null,delete e[t]})),e=null},TouchRipple.prototype.remove=function(){var e=this;if(!e.removing){var t=this.$rippleWaveEl,a=this.rippleTransform,r=Utils.nextTick((function(){e.destroy()}),400);e.removing=!0,t.addClass("ripple-wave-fill").transform(a.replace("scale(1)","scale(1.01)")).transitionEnd((function(){clearTimeout(r),Utils.nextFrame((function(){t.addClass("ripple-wave-out").transform(a.replace("scale(1)","scale(1.01)")),r=Utils.nextTick((function(){e.destroy()}),700),t.transitionEnd((function(){clearTimeout(r),e.destroy()}))}))}))}};var TouchRipple$1={name:"touch-ripple",static:{TouchRipple:TouchRipple},create:function(){this.touchRipple={create:function(){for(var e=[],t=arguments.length;t--;)e[t]=arguments[t];return new(Function.prototype.bind.apply(TouchRipple,[null].concat(e)))}}}},openedModals=[],dialogsQueue=[];function clearDialogsQueue(){0!==dialogsQueue.length&&dialogsQueue.shift().open()}var Modal=function(e){function t(t,a){e.call(this,a,[t]);var r={};return this.useModulesParams(r),this.params=Utils.extend(r,a),this.opened=!1,this.useModules(),this}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t.prototype.onOpen=function(){this.opened=!0,openedModals.push(this),$("html").addClass("with-modal-"+this.type.toLowerCase()),this.$el.trigger("modal:open "+this.type.toLowerCase()+":open"),this.emit("local::open modalOpen "+this.type+"Open",this)},t.prototype.onOpened=function(){this.$el.trigger("modal:opened "+this.type.toLowerCase()+":opened"),this.emit("local::opened modalOpened "+this.type+"Opened",this)},t.prototype.onClose=function(){this.opened=!1,this.type&&this.$el&&(openedModals.splice(openedModals.indexOf(this),1),$("html").removeClass("with-modal-"+this.type.toLowerCase()),this.$el.trigger("modal:close "+this.type.toLowerCase()+":close"),this.emit("local::close modalClose "+this.type+"Close",this))},t.prototype.onClosed=function(){this.type&&this.$el&&(this.$el.removeClass("modal-out"),this.$el.hide(),this.$el.trigger("modal:closed "+this.type.toLowerCase()+":closed"),this.emit("local::closed modalClosed "+this.type+"Closed",this))},t.prototype.open=function(e){var t,a=this,r=a.app,n=a.$el,o=a.$backdropEl,i=a.type,s=!0;if(void 0!==e?s=e:void 0!==a.params.animate&&(s=a.params.animate),!n||n.hasClass("modal-in"))return a;if("dialog"===i&&r.params.modal.queueDialogs&&($(".dialog.modal-in").length>0?t=!0:openedModals.length>0&&openedModals.forEach((function(e){"dialog"===e.type&&(t=!0)})),t))return dialogsQueue.push(a),a;var l=n.parent(),u=n.parents(doc).length>0;function c(){n.hasClass("modal-out")?a.onClosed():n.hasClass("modal-in")&&a.onOpened()}return r.params.modal.moveToRoot&&!l.is(r.root)&&(r.root.append(n),a.once(i+"Closed",(function(){u?l.append(n):n.remove()}))),n.show(),a._clientLeft=n[0].clientLeft,s?(o&&(o.removeClass("not-animated"),o.addClass("backdrop-in")),n.animationEnd((function(){c()})),n.transitionEnd((function(){c()})),n.removeClass("modal-out not-animated").addClass("modal-in"),a.onOpen()):(o&&o.addClass("backdrop-in not-animated"),n.removeClass("modal-out").addClass("modal-in not-animated"),a.onOpen(),a.onOpened()),a},t.prototype.close=function(e){var t=this,a=t.$el,r=t.$backdropEl,n=!0;if(void 0!==e?n=e:void 0!==t.params.animate&&(n=t.params.animate),!a||!a.hasClass("modal-in"))return dialogsQueue.indexOf(t)>=0&&dialogsQueue.splice(dialogsQueue.indexOf(t),1),t;if(r){var o=!0;"popup"===t.type&&t.$el.prevAll(".popup.modal-in").each((function(e,a){var r=a.f7Modal;r&&r.params.closeByBackdropClick&&r.params.backdrop&&r.backdropEl===t.backdropEl&&(o=!1)})),o&&(r[n?"removeClass":"addClass"]("not-animated"),r.removeClass("backdrop-in"))}function i(){a.hasClass("modal-out")?t.onClosed():a.hasClass("modal-in")&&t.onOpened()}return a[n?"removeClass":"addClass"]("not-animated"),n?(a.animationEnd((function(){i()})),a.transitionEnd((function(){i()})),a.removeClass("modal-in").addClass("modal-out"),t.onClose()):(a.addClass("not-animated").removeClass("modal-in").addClass("modal-out"),t.onClose(),t.onClosed()),"dialog"===t.type&&clearDialogsQueue(),t},t.prototype.destroy=function(){this.destroyed||(this.emit("local::beforeDestroy modalBeforeDestroy "+this.type+"BeforeDestroy",this),this.$el&&(this.$el.trigger("modal:beforedestroy "+this.type.toLowerCase()+":beforedestroy"),this.$el.length&&this.$el[0].f7Modal&&delete this.$el[0].f7Modal),Utils.deleteProps(this),this.destroyed=!0)},t}(Framework7Class),CustomModal=function(e){function t(t,a){var r=Utils.extend({backdrop:!0,closeByBackdropClick:!0,on:{}},a);e.call(this,t,r);var n,o,i=this;if(i.params=r,(n=i.params.el?$(i.params.el):$(i.params.content))&&n.length>0&&n[0].f7Modal)return n[0].f7Modal;if(0===n.length)return i.destroy();function s(e){i&&!i.destroyed&&o&&e.target===o[0]&&i.close()}return i.params.backdrop&&0===(o=t.root.children(".custom-modal-backdrop")).length&&(o=$('
                          '),t.root.append(o)),i.on("customModalOpened",(function(){i.params.closeByBackdropClick&&i.params.backdrop&&t.on("click",s)})),i.on("customModalClose",(function(){i.params.closeByBackdropClick&&i.params.backdrop&&t.off("click",s)})),Utils.extend(i,{app:t,$el:n,el:n[0],$backdropEl:o,backdropEl:o&&o[0],type:"customModal"}),n[0].f7Modal=i,i}return e&&(t.__proto__=e),t.prototype=Object.create(e&&e.prototype),t.prototype.constructor=t,t}(Modal),Modal$1={name:"modal",static:{Modal:Modal,CustomModal:CustomModal},create:function(){var e=this;e.customModal={create:function(t){return new CustomModal(e,t)}}},params:{modal:{moveToRoot:!0,queueDialogs:!0}}};return Framework7.use([DeviceModule,SupportModule,UtilsModule,ResizeModule,RequestModule,TouchModule,ClicksModule,RouterModule,HistoryModule,ServiceWorkerModule,Statusbar$1,View$1,Navbar$1,Toolbar$1,Subnavbar,TouchRipple$1,Modal$1]),Framework7})); +//# sourceMappingURL=framework7-lite.min.js.map \ No newline at end of file diff --git a/public/Framework7/5/js/framework7-lite.min.js.map b/public/Framework7/5/js/framework7-lite.min.js.map new file mode 100644 index 0000000..8e6a1d2 --- /dev/null +++ b/public/Framework7/5/js/framework7-lite.min.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["0"],"names":["global","factory","exports","module","define","amd","self","Framework7","this","t7ctx","window","undefined","Template7Context","Template7Utils","quoteSingleRexExp","RegExp","quoteDoubleRexExp","isFunction","func","escape","string","replace","helperToSlices","shiftIndex","i","j","helperParts","trim","split","slices","length","part","blockQuoteRegExp","openingQuote","push","indexOf","match","hashParts","hashName","hashContent","hash","stringToBlocks","blocks","stringBlocks","block","type","content","contextName","helperSlices","helperName","isPartial","helperContext","helperHash","slice","Array","isArray","helperContent","elseContent","toSkip","foundClosed","foundElse","depth","inverseContent","parseJsVariable","expression","object","reduce","arr","JSON","stringify","variable","forEach","partName","constructor","Object","join","parseJsParents","parents","levelsUp","getCompileVar","name","ctx","data","parts","newDepth","dataLevel","Number","isFinite","getCompiledArguments","contextArray","test","Template7Helpers","_partial","partialName","options","p","Template7Class","partials","template","compiled","compile","keys","root","context","Error","if","call","fn","inverse","unless","each","ret","reverse","first","last","index","key","with","delimiter","delimeter","js","execute","prop","re1","re2","Template7","eval","js_if","condition","js_compare","Template7Options","Template7Partials","staticAccessors","configurable","helpers","args","len","arguments","instance","rendered","isObject","obj","extend","target","src","prototype","t","getCompileFn","getCompileInverse","resultString","compiledArguments","level","parentsString","dynamicHelper","get","defineProperties","registerHelper","unregisterHelper","registerPartial","unregisterPartial","doc","document","ssrDocument","body","addEventListener","removeEventListener","activeElement","blur","nodeName","querySelector","querySelectorAll","getElementById","createEvent","initEvent","createElement","children","childNodes","style","setAttribute","getElementsByTagName","createElementNS","importNode","location","host","hostname","href","origin","pathname","protocol","search","win","ssrWindow","navigator","userAgent","history","replaceState","pushState","go","back","CustomEvent","getComputedStyle","getPropertyValue","Image","Date","screen","setTimeout","clearTimeout","matchMedia","Dom7","$","selector","els","tempParent","html","toCreate","innerHTML","nodeType","unique","uniqueArray","toCamelCase","toLowerCase","group1","toUpperCase","requestAnimationFrame","callback","webkitRequestAnimationFrame","cancelAnimationFrame","id","webkitCancelAnimationFrame","addClass","className","classes","classList","add","removeClass","remove","hasClass","contains","toggleClass","toggle","attr","attrs","value","arguments$1","getAttribute","attrName","removeAttr","removeAttribute","props","propName","el","dom7ElementDataStorage","dataKey","removeData","dataset","attributes","parseFloat","val","i$1","multiple","selected","values","selectedOptions","transform","elStyle","webkitTransform","transition","duration","webkitTransitionDuration","transitionDuration","on","assign","eventType","targetSelector","listener","capture","handleLiveEvent","e","eventData","dom7EventData","unshift","is","apply","k","handleEvent","events","event$1","dom7LiveListeners","proxyListener","event","dom7Listeners","off","handlers","handler","dom7proxy","splice","once","dom","eventName","onceHandler","eventArgs","trigger","evt","detail","bubbles","cancelable","filter","dataIndex","dispatchEvent","transitionEnd","fireCallBack","animationEnd","width","innerWidth","css","outerWidth","includeMargins","styles","offsetWidth","height","innerHeight","outerHeight","offsetHeight","offset","box","getBoundingClientRect","clientTop","clientLeft","scrollTop","scrollY","scrollLeft","scrollX","top","left","hide","display","show","toArray","matchedItems","map","modifiedItems","text","textContent","compareWith","matches","webkitMatchesSelector","msMatchesSelector","child","previousSibling","eq","returnIndex","append","newChild","tempDiv","firstChild","appendChild","appendTo","parent","prepend","insertBefore","prependTo","before","parentNode","cloneNode","insertAfter","after","nextSibling","next","nextElementSibling","nextAll","nextEls","prev","previousElementSibling","prevAll","prevEls","siblings","closest","find","foundElements","found","removeChild","detach","toAdd","empty","Class","Methods","freeze","scrollTo","easing","currentTop","currentLeft","maxTop","maxLeft","newTop","newLeft","animateTop","animateLeft","scrollHeight","Math","max","min","scrollWidth","startTime","render","time","getTime","done","progress","easeProgress","cos","PI","Scroll","animate","initialProps","initialParams","animateInstance","a","params","elements","animating","que","easingProgress","stop","frameId","dom7AnimateInstance","complete","shift","initialFullValue","initialValue","unit","finalValue","finalFullValue","container","currentValue","elementsDone","propsDone","began","begin","element","ref","Animate","noTrigger","eventShortcut","concat","click","bind","focus","focusin","focusout","keyup","keydown","keypress","submit","change","mousedown","mousemove","mouseup","mouseenter","mouseleave","mouseout","mouseover","touchstart","touchend","touchmove","resize","scroll","eventShortcuts","group","methodName","defaultDiacriticsRemovalap","base","letters","diacriticsMap","uniqueNumber","Utils","mask","floor","random","mdPreloaderContent","iosPreloaderContent","auroraPreloaderContent","eventNameToColonCase","hasColon","char","deleteProps","nextTick","delay","nextFrame","now","removeDiacritics","str","parseUrlQuery","url","param","query","urlToParse","paramsPart","decodeURIComponent","getTranslate","axis","matrix","curTransform","transformMatrix","curStyle","WebKitCSSMatrix","MozTransform","OTransform","MsTransform","msTransform","toString","m41","m42","serializeObject","newParents","resultArray","varName","parentParts","encodeURIComponent","varValue","toPush","String","o","merge","len$1","to","from","nextSource","keysArray","nextIndex","nextKey","desc","getOwnPropertyDescriptor","enumerable","deep","colorHexToRgb","hex","h","m","r","g","b","result","exec","n","parseInt","colorRgbToHex","colorRgbToHsl","d","l","abs","colorHslToRgb","s","rgb1","c","hp","x","isNaN","round","colorHsbToHsl","HSL","HSB","colorHslToHsb","colorThemeCSSProperties","rgb","hsl","hslShade","hslTint","shade","tint","--f7-theme-color","--f7-theme-color-rgb","--f7-theme-color-shade","--f7-theme-color-tint","Support","touch","DocumentTouch","pointerEvents","PointerEvent","maxTouchPoints","observer","passiveListener","supportsPassive","opts","defineProperty","gestures","intersectionObserver","Device","platform","ua","device","ios","android","androidChrome","desktop","iphone","ipod","ipad","edge","ie","firefox","macos","windows","cordova","phonegap","electron","nwjs","screenWidth","screenHeight","nw","process","versions","os","osVersion","webView","standalone","webview","pixelRatio","devicePixelRatio","prefersColorScheme","theme","EventsClass","eventsParents","eventsListeners","priority","method","f7proxy","eventHandler","emit","local","eventsArray","localEvents","parentEvents","eventsParent","Framework7Class","__proto__","create","components","useModuleParams","instanceParams","originalParams","paramKey","useModulesParams","modules","moduleName","useModule","moduleParams","modulePropName","moduleProp","moduleEventName","vnode","vnodeHooks","vnodeId","hookName","useModules","modulesParams","set","use","installModule","proto","static","install","ConstructorMethods","parameters","defaultSelector","Constructor","domProp","app","addMethods","methods","Function","$el","destroy","ModalMethods","open","targetEl","$targetPage","modalEl","$modalEl","f7Modal","close","$parentEl","$targetEl","fetchedModules","loadModule","moduleToLoad","Promise","resolve","reject","modulePath","moduleObj","moduleFunc","matchNamePattern","lazyModulesPath","module$1","scriptLoad","resolveScript","rejectScript","request","scriptContent","callbackLoadName","scriptEl","componentLoader","xhr","status","styleLoad","resolveStyle","rtl","styleContent","styleEl","all","then","catch","err","passedParams","defaults","version","language","routes","initOnDeviceReady","init","autoDarkTheme","iosTranslucentBars","iosTranslucentModals","component","componentUrl","$rootEl","online","onLine","f7","initData","DARK","LIGHT","mq","dark","light","colorSchemeListener","media","darkTheme","prototypeAccessors","t7","Events","enableAutoDarkTheme","addListener","disableAutoDarkTheme","removeListener","initAppComponent","router","componentOptions","rootComponent","f7Component","_init","initialized","loadModules","getVnodeHooks","hook","globals","jsonpRequests","Request","requestOptions","globalsNoCallbacks","callbackName","async","cache","user","password","headers","xhrFields","statusCode","processData","dataType","contentType","timeout","fireCallback","globalCallbackValue","optionCallbackValue","stringData","paramsPrefix","abortTimeout","callbackSplit","requestUrl","addVars","script","onerror","XMLHttpRequest","requestParameters","postData","ArrayBuffer","Blob","Document","FormData","boundary","setRequestHeader","data$1","newData","Accept","headerName","crossDomain","$2","onload","responseData","parseError","parse","responseText","responseType","response","statusText","ontimeout","send","RequestShortcut","assign$1","success","error","RequestShortcutPromise","message","post","json","getJSON","postJSON","promise","setup","DeviceModule","classNames","metaStatusbar","SupportModule","support","UtilsModule","utils","ResizeModule","getSize","orientationchange","RequestModule","initTouch","touchStartX","touchStartY","targetElement","isMoved","tapHoldFired","tapHoldTimeout","preventClick","activableElement","activeTimeout","rippleWave","rippleTarget","rippleTimeout","useRipple","findActivableElement","activable","activeStateElements","preventPropagation","newActivable","isInsideScrollableView","addActive","removeActive","createRipple","y","touchRipple","removeRipple","rippleTouchStart","rippleElements","touchRippleElements","rippleParent","findRippleElement","rippleTouchMove","rippleTouchEnd","handleMouseUp","emitAppTouchEvent","appTouchStartActive","appTouchMoveActive","appTouchEndActive","appTouchStartPassive","appTouchMovePassive","appTouchEndPassive","appGestureActive","appGesturePassive","passive","passiveListenerCapture","activeListener","activeListenerCapture","touchEvents","start","move","end","isOverswipe","localPreventClick","tapHold","tapHoldPreventClicks","stopImmediatePropagation","stopPropagation","preventDefault","targetTouches","touches","tapHoldDelay","pageX","pageY","activeState","distance","touchClicksDistanceThreshold","$activableEl","which","activeStateOnMouseMove","disableContextMenu","TouchModule","mdTouchRipple","iosTouchRipple","auroraTouchRipple","lexer","tokens","count","pattern","TypeError","code","charCodeAt","_a","prefixes","defaultPattern","escapeString","path","tryConsume","mustConsume","nextType","consumeText","prefix","suffix","modifier","name_1","pattern_1","tokensToFunction","reFlags","flags","encode","_b","validate","token","optional","repeat","segment","typeOfMessage","sensitive","regexpToRegexp","groups","source","arrayToRegexp","paths","pathToRegexp","stringToRegexp","tokensToRegexp","strict","_c","_d","endsWith","route","_i","tokens_1","mod","endToken","isEndDelimited","History","queue","clearQueue","currentQueue","routerQueue","clearRouterQueue","pop","stateUrl","action","pushStateAnimate","navigate","handle","blockPopstate","state","previousState","allowChange","views","view","viewState","allowPageChange","initViewState","viewId","newState","readyState","SwipeBack","isScrolling","viewContainerWidth","touchesDiff","touchStartTime","dynamicNavbar","$pageShadowEl","$pageOpacityEl","animatableNavEls","$navbarsEl","isTouched","touchesStart","$currentPageEl","$previousPageEl","allowViewTouchMove","$currentNavbarEl","$previousNavbarEl","paramsSwipeBackAnimateShadow","paramsSwipeBackAnimateOpacity","paramsSwipeBackActiveArea","paramsSwipeBackThreshold","transformOrigin","transformOriginTitleLarge","setAnimatableNavElements","reset","reflow","_clientLeft","el$1","classNameSet","styleProp","handleTouchStart","swipeBackEnabled","swipeout","masterDetailBreakpoint","handleTouchMove","f7PreventSwipeBack","preventSwipeBack","cancel","activeNavBackIconText","previousNavBackIconText","inverter","currentNavIsTransparent","currentNavIsLarge","currentNavIsCollapsed","currentNavIsLargeTransparent","previousNavIsTransparent","previousNavIsLarge","previousNavIsCollapsed","previousNavIsLargeTransparent","fromLarge","toLarge","$currentNavElements","$previousNavElements","iosAnimateNavbarBackIcon","f7NavbarLeftOffset","navEl","$navEl","isSubnavbar","isLeft","isTitle","isBg","overflow","subIndex","subNavEl","opacity","pow","transform-origin","isSliding","transformTarget","textEl","activeNavTranslate","f7NavbarRightOffset","previousNavTranslate","animatableNavElements","sheet","f7PreventSwipePanel","preventSwipePanelBySwipeBack","percentage","callbackData","currentPageEl","previousPageEl","currentNavbarEl","previousNavbarEl","currentPageTranslate","previousPageTranslate","swipeBackActive","handleTouchEnd","$pages","timeDiff","pageChanged","setNavbarPosition","currentRoute","f7Page","currentPage","pageCallback","swipeBack","saveHistory","stackPages","initialPages","removePage","removeNavbar","previousRoute","preloadPreviousPage","preload","redirect","direction","initial","redirectUrl","redirectOptions","processQueue","routeQueue","processRouteQueue","enterNextRoute","routesBeforeEnter","beforeEnter","routesBeforeLeave","beforeLeave","appRouterCheck","asyncComponent","resolvePromise","componentPromise","default","_default","asyncComponentResult","refreshPage","ignoreCache","reloadCurrent","forward","forwardOptions","masterPageEl","otherDetailPageEl","modalType","reloadPages","reloadPrevious","reloadAll","clearPreviousHistory","reloadDetail","masterDetailEnabled","isMaster","master","currentRouteIsModal","modal","modalLoadProp","modalToClose","modalInstance","previousUrl","findMatchingRoute","modalRemove","$oldPage","$newNavbarEl","$oldNavbarEl","$viewEl","$newPage","reload","removeThemeElements","$navbarEl","keepAlive","keepAliveData","pageEl","$navbarsInView","isDetail","isDetailRoot","$pagesInView","pageInView","navbarInView","newPagePosition","position","role","detailRoot","navbar","getElByPage","navbarEl","removedPageEls","removedNavbarEls","i$2","oldNavbarEl","pageIndex","navbarIndex","pushStateRoot","pushStateSeparator","newPageInDom","$mount","componentEl","f7PageMounted","$oldPageEl","$oldNavbarElEl","tab","tabLoad","checkMasterDetailBreakpoint","setPagePosition","afterAnimation","keepOldPage","setPositionClasses","f7PageTransition","load","loadParams","loadOptions","ignorePageChange","pageName","templateUrl","parentPath","sameParams","paramName","allowDuplicateUrls","newOptions","parseRouteUrl","getPageEl","pageTemplateLoader","pageComponentLoader","abort","xhrRequest","pageContent","navigateParams","navigateOptions","createRoute","generateUrl","navigateUrl","currentPath","viewName","anotherViewName","anotherView","routerLoaded","asyncResolve","resolveParams","resolveOptions","resolvedAsModal","modalRoute","modalLoad","asyncReject","pageLoadProp","masterRoute","preloadMaster","masterLoaded","pageAfterIn","tabRoute","parentPageEl","tabEl","$parentPageEl","hasContentLoadProp","tabShowResult","$newTabEl","$oldTabEl","animated","onTabsChanged","tabParentPageData","f7RouterTabLoaded","loadTab","loadTabParams","loadTabOptions","contentEl","tabEventTarget","unloadTabContent","tabRemove","onTabLoaded","tabTemplateLoader","tabComponentLoader","tabContent","tabLoadProp","hasTabComponentChild","tabChild","$destroy","removeTabContent","foundLoadProp","isPanel","modalOrPanel","modalParams","onModalLoaded","hasEl","closeOnSwipeBack","closeByRouter","modalComponent","removeModal","loadModal","loadModalParams","loadModalOptions","modalTemplateLoader","modalComponentLoader","modalContent","backward","backwardOptions","masterPageRemoved","backIndex","currentIsMaster","force","pageToRemove","$navbarToRemove","$pageToRemove","insertPage","$previousPages","pushStateRoot$1","loadBack","backParams","backOptions","prevOpenedModals","forceOtherUrl","isBrokenPushState","needHistoryBack","currentRouteWithoutPushState","skipMaster","$previousPage","$previousMaster","expectedPreviousPageUrl","expectedPreviousPageRoute","previousPageRoute","backForceLoaded","clearPreviousPages","panel","Router","isAppRouter","navbarsEl","scrollHistory","iosDynamicNavbar","initialNavbars","tempDom","newRoute","newNavEls","oldNavEls","animateIcon","animatableNavEl","$navbarInner","isIconLabel","needsOpacityTransition","$iconEl","leftOffset","rightOffset","navEls","otherEls","otherNavEl","iconTextEl","offsetLeft","$newPageEl","animateCustom","routerCustomTransitionClass","oldIsLarge","newIsLarge","routerTransitionClass","animateNavbars","setProperty","removeEl","tabIndex","removeElements","removeElementsWithTimeout","removeElementsTimeout","findElement","stringSelector","notStacked","$container","flattenRoutes","flattenedRoutes","hasTabRoutes","tabs","mergedPathsRoutes","tRoute","mergedPathsRoutes$1","detailRoutes","detailRoute","dRoute","masterRoutePath","mergedPathsRoutes$2","childRoute","cRoute","findRouteByKey","constructRouteUrl","toUrl","findTabRoute","foundTabRoute","$tabEl","tabId","matchingRoute","matched","pathsToMatch","alias","aliasPath","pathToMatch","keyObj","paramValue","replaceRequestUrlParams","compiledUrl","regExp","removeFromXhrCache","xhrCache","hasQuery","passRouteQueryToRequest","passRouteParamsToRequest","xhrCacheIgnoreGetParameters","xhrCacheIgnore","cachedUrl","xhrCacheDuration","beforeSend","ariaHidden","toRemove","getPageData","pageFromEl","pageFrom","$pageEl","fromPage","$pageFromEl","page","restoreScrollTopOnBack","camelName","colonName","attachEvents","$pageContent","pageContentIndex","pageContentEl","f7PageInitialized","$pageContent$1","f7RouteEventsAttached","f7RouteEventsOn","f7RouteEventsOnce","localStorage","restoreHistory","clearHistory","updateCurrentUrl","newUrl","iosSwipeBack","mdSwipeBack","auroraSwipeBack","historyRestored","initUrl","documentUrl","pushStateOnLoad","pushStateAnimateOnLoad","console","warn","loadInitialPage","hasTabRoute","initOptions","routerProp","RouterModule","templates","resizableView","resizableInitialized","resizable","resizableWidth","$htmlEl","$resizeHandlerEl","minWidth","maxWidth","handleResize","transformCSSWidth","v","newV","$pageMasterEl","newWidth","View","appInstance","viewParams","routesAdd","main","f7View","viewProp","wasMasterDetail","isMasterDetail","initMasterDetail","masterDetailResizable","initClicks","$clickedEl","$clickedLinkEl","isLink","clicks","externalLinks","InAppBrowser","moduleClicks","preventF7Router","clickSelector","matchingClickedElement","clickedLinkData","current","linksView","f7RouteProps","ClicksModule","HistoryModule","SW","registrations","register","scope","serviceWorker","reg","unregister","registration","ServiceWorkerModule","Statusbar","StatusBar","onClick","setTextColor","color","styleLightContent","styleDefault","setBackgroundColor","backgroundColorByHexString","isVisible","overlaysWebView","overlays","statusbar","enabled","scrollTopOnClick","iosOverlaysWebView","iosTextColor","androidOverlaysWebView","androidTextColor","iosBackgroundColor","androidBackgroundColor","Statusbar$1","getCurrentView","$popoverView","$popupView","$panelView","$viewsEl","View$1","componentCache","iosSwipeBackAnimateShadow","iosSwipeBackAnimateOpacity","iosSwipeBackActiveArea","iosSwipeBackThreshold","mdSwipeBackAnimateShadow","mdSwipeBackAnimateOpacity","mdSwipeBackActiveArea","mdSwipeBackThreshold","auroraSwipeBackAnimateShadow","auroraSwipeBackAnimateOpacity","auroraSwipeBackActiveArea","auroraSwipeBackThreshold","iosPageLoadDelay","mdPageLoadDelay","auroraPageLoadDelay","viewEl","modalOpen panelOpen","modalBeforeDestroy panelBeforeDestroy","view-init","insert","elm","Navbar","size","$innerEl","needCenterTitle","needLeftTitle","iosCenterTitle","currLeft","diff","right","title","subnavbar","noLeft","noRight","leftWidth","rightWidth","titleWidth","navbarStyles","navbarInnerWidth","paddingLeft","paddingRight","isPrevious","sliding","requiredLeft","titleLeftOffset","titleRightOffset","activeNavbarBackLink","titleLeft","hideStatusbar","isDynamic","subEl","pageData","getPageByEl","collapseLargeTitle","expandLargeTitle","toggleLargeTitle","initNavbarOnScroll","needHide","needCollapse","needTransparent","previousScrollTop","currentScrollTop","reachEnd","navbarHidden","navbarCollapsed","navbarTitleLargeHeight","navbarOffsetHeight","scrollChanged","scrollContent","scrollTimeoutId","touchEndTimeoutId","$titleLargeEl","isLarge","navbarHideHeight","snapPageScrollToLargeTitle","snapPageScrollToTransparentNavbar","snapLargeNavbar","snapTransparentNavbar","previousCollapseProgress","collapseProgress","handleScroll","isLargeTransparent","previousCollapseWasInMiddle","handleLargeNavbarCollapse","isHidden","notTransparent","handleNavbarTransparent","showOnPageScrollEnd","showOnPageScrollTop","handeTouchStart","f7DetachNavbarScrollHandlers","Navbar$1","scrollTopOnTitleClick","mdCenterTitle","auroraCenterTitle","hideOnPageScroll","collapseLargeTitleOnScroll","panelBreakpoint panelCollapsedBreakpoint panelResize viewResize resize viewMasterDetailBreakpoint","pageBeforeRemove","pageBeforeIn","pageReinit","pageInit","needCollapseOnScrollHandler","needTransparentOnScroll","needHideOnScrollHandler","panelOpen panelSwipeOpen modalOpen","tabShow",".navbar .title","$pageContentEl","postpatch","Toolbar","setHighlight","tabbarEl","$tabbarEl","$highlightEl","tabLinksCount","highlightWidth","highlightTranslate","$activeLink","activeIndex","toolbar","initToolbarOnScroll","toolbarHidden","$toolbarEl","f7ScrollToolbarHandler","Toolbar$1","tabbar","Subnavbar","TouchRipple","ripple","center","diameter","$rippleWaveEl","rippleTransform","removing","removeTimeout","TouchRipple$1","openedModals","dialogsQueue","clearDialogsQueue","Modal","opened","onOpen","onOpened","onClose","onClosed","animateModal","pushToQueue","$backdropEl","queueDialogs","openedModal","$modalParentEl","wasInDom","moveToRoot","needToHideBackdrop","popupEl","popupInstance","closeByBackdropClick","backdrop","backdropEl","destroyed","CustomModal","extendedParams","customModal","handleClick","Modal$1"],"mappings":"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","file":"framework7-lite.min.js"} \ No newline at end of file diff --git a/public/Framework7/5/js/framework7.bundle.d.ts b/public/Framework7/5/js/framework7.bundle.d.ts new file mode 100644 index 0000000..4af92a7 --- /dev/null +++ b/public/Framework7/5/js/framework7.bundle.d.ts @@ -0,0 +1,333 @@ +import Template7 from 'template7'; +import Dom7 from 'dom7'; +import Framework7 from '../components/app/app-class' + +// Helpers +import Request from '../utils/request'; +import Utils from '../utils/utils'; +import Support from '../utils/support'; +import Device from '../utils/device'; + +// Modules +import {Clicks as ClicksNamespace} from '../modules/clicks/clicks'; +import {Component as ComponentNamespace} from '../modules/component/component'; +import {Device as DeviceNamespace} from '../modules/device/device'; +import {Request as RequestNamespace} from '../modules/request/request'; +import {Resize as ResizeNamespace} from '../modules/resize/resize'; +import {Router as RouterNamespace} from '../modules/router/router'; +import {ServiceWorker as ServiceWorkerNamespace} from '../modules/service-worker/service-worker'; +import {Support as SupportNamespace} from '../modules/support/support'; +import {Touch as TouchNamespace} from '../modules/touch/touch'; +import {Utils as UtilsNamespace} from '../modules/utils/utils'; +import {ComponentClass as Component} from '../modules/component/component'; + +// Components +import {Accordion as AccordionNamespace} from '../components/accordion/accordion'; +import {Actions as ActionsNamespace} from '../components/actions/actions'; +import {Appbar as AppbarNamespace} from '../components/appbar/appbar'; +import {Autocomplete as AutocompleteNamespace} from '../components/autocomplete/autocomplete'; +import {Badge as BadgeNamespace} from '../components/badge/badge'; +import {Block as BlockNamespace} from '../components/block/block'; +import {Button as ButtonNamespace} from '../components/button/button'; +import {Calendar as CalendarNamespace} from '../components/calendar/calendar'; +import {Card as CardNamespace} from '../components/card/card'; +import {Checkbox as CheckboxNamespace} from '../components/checkbox/checkbox'; +import {Chip as ChipNamespace} from '../components/chip/chip'; +import {ColorPicker as ColorPickerNamespace} from '../components/color-picker/color-picker'; +import {ContactsList as ContactsListNamespace} from '../components/contacts-list/contacts-list'; +import {DataTable as DataTableNamespace} from '../components/data-table/data-table'; +import {Dialog as DialogNamespace} from '../components/dialog/dialog'; +import {Elevation as ElevationNamespace} from '../components/elevation/elevation'; +import {Fab as FabNamespace} from '../components/fab/fab'; +import {Form as FormNamespace} from '../components/form/form'; +import {Gauge as GaugeNamespace} from '../components/gauge/gauge'; +import {Grid as GridNamespace} from '../components/grid/grid'; +import {Icon as IconNamespace} from '../components/icon/icon'; +import {InfiniteScroll as InfiniteScrollNamespace} from '../components/infinite-scroll/infinite-scroll'; +import {Input as InputNamespace} from '../components/input/input'; +import {Lazy as LazyNamespace} from '../components/lazy/lazy'; +import {Link as LinkNamespace} from '../components/link/link'; +import {List as ListNamespace} from '../components/list/list'; +import {ListIndex as ListIndexNamespace} from '../components/list-index/list-index'; +import {LoginScreen as LoginScreenNamespace} from '../components/login-screen/login-screen'; +import {Menu as MenuNamespace} from '../components/menu/menu'; +import {Messagebar as MessagebarNamespace} from '../components/messagebar/messagebar'; +import {Messages as MessagesNamespace} from '../components/messages/messages'; +import {Modal as ModalNamespace} from '../components/modal/modal'; +import {Navbar as NavbarNamespace} from '../components/navbar/navbar'; +import {Notification as NotificationNamespace} from '../components/notification/notification'; +import {Page as PageNamespace} from '../components/page/page'; +import {Panel as PanelNamespace} from '../components/panel/panel'; +import {PhotoBrowser as PhotoBrowserNamespace} from '../components/photo-browser/photo-browser'; +import {Picker as PickerNamespace} from '../components/picker/picker'; +import {Popover as PopoverNamespace} from '../components/popover/popover'; +import {Popup as PopupNamespace} from '../components/popup/popup'; +import {Preloader as PreloaderNamespace} from '../components/preloader/preloader'; +import {Progressbar as ProgressbarNamespace} from '../components/progressbar/progressbar'; +import {PullToRefresh as PullToRefreshNamespace} from '../components/pull-to-refresh/pull-to-refresh'; +import {Radio as RadioNamespace} from '../components/radio/radio'; +import {Range as RangeNamespace} from '../components/range/range'; +import {Searchbar as SearchbarNamespace} from '../components/searchbar/searchbar'; +import {Sheet as SheetNamespace} from '../components/sheet/sheet'; +import {Skeleton as SkeletonNamespace} from '../components/skeleton/skeleton'; +import {SmartSelect as SmartSelectNamespace} from '../components/smart-select/smart-select'; +import {Sortable as SortableNamespace} from '../components/sortable/sortable'; +import {Statusbar as StatusbarNamespace} from '../components/statusbar/statusbar'; +import {Stepper as StepperNamespace} from '../components/stepper/stepper'; +import {Subnavbar as SubnavbarNamespace} from '../components/subnavbar/subnavbar'; +import {Swipeout as SwipeoutNamespace} from '../components/swipeout/swipeout'; +import {Swiper as SwiperNamespace} from '../components/swiper/swiper'; +import {Tabs as TabsNamespace} from '../components/tabs/tabs'; +import {TextEditor as TextEditorNamespace} from '../components/text-editor/text-editor'; +import {Timeline as TimelineNamespace} from '../components/timeline/timeline'; +import {Toast as ToastNamespace} from '../components/toast/toast'; +import {Toggle as ToggleNamespace} from '../components/toggle/toggle'; +import {Toolbar as ToolbarNamespace} from '../components/toolbar/toolbar'; +import {Tooltip as TooltipNamespace} from '../components/tooltip/tooltip'; +import {TouchRipple as TouchRippleNamespace} from '../components/touch-ripple/touch-ripple'; +import {Treeview as TreeviewNamespace} from '../components/treeview/treeview'; +import {Typography as TypographyNamespace} from '../components/typography/typography'; +import {Vi as ViNamespace} from '../components/vi/vi'; +import {View as ViewNamespace} from '../components/view/view'; +import {VirtualList as VirtualListNamespace} from '../components/virtual-list/virtual-list'; + +declare module '../components/app/app-class' { + interface Framework7Class extends ClicksNamespace.AppMethods{} + interface Framework7Params extends ClicksNamespace.AppParams{} + interface Framework7Events extends ClicksNamespace.AppEvents{} + interface Framework7Class extends ComponentNamespace.AppMethods{} + interface Framework7Params extends ComponentNamespace.AppParams{} + interface Framework7Events extends ComponentNamespace.AppEvents{} + interface Framework7Class extends DeviceNamespace.AppMethods{} + interface Framework7Params extends DeviceNamespace.AppParams{} + interface Framework7Events extends DeviceNamespace.AppEvents{} + interface Framework7Class extends RequestNamespace.AppMethods{} + interface Framework7Params extends RequestNamespace.AppParams{} + interface Framework7Events extends RequestNamespace.AppEvents{} + interface Framework7Class extends ResizeNamespace.AppMethods{} + interface Framework7Params extends ResizeNamespace.AppParams{} + interface Framework7Events extends ResizeNamespace.AppEvents{} + interface Framework7Class extends RouterNamespace.AppMethods{} + interface Framework7Params extends RouterNamespace.AppParams{} + interface Framework7Events extends RouterNamespace.AppEvents{} + interface Framework7Class extends ServiceWorkerNamespace.AppMethods{} + interface Framework7Params extends ServiceWorkerNamespace.AppParams{} + interface Framework7Events extends ServiceWorkerNamespace.AppEvents{} + interface Framework7Class extends SupportNamespace.AppMethods{} + interface Framework7Params extends SupportNamespace.AppParams{} + interface Framework7Events extends SupportNamespace.AppEvents{} + interface Framework7Class extends TouchNamespace.AppMethods{} + interface Framework7Params extends TouchNamespace.AppParams{} + interface Framework7Events extends TouchNamespace.AppEvents{} + interface Framework7Class extends UtilsNamespace.AppMethods{} + interface Framework7Params extends UtilsNamespace.AppParams{} + interface Framework7Events extends UtilsNamespace.AppEvents{} + interface Framework7Class extends AccordionNamespace.AppMethods{} + interface Framework7Params extends AccordionNamespace.AppParams{} + interface Framework7Events extends AccordionNamespace.AppEvents{} + interface Framework7Class extends ActionsNamespace.AppMethods{} + interface Framework7Params extends ActionsNamespace.AppParams{} + interface Framework7Events extends ActionsNamespace.AppEvents{} + interface Framework7Class extends AppbarNamespace.AppMethods{} + interface Framework7Params extends AppbarNamespace.AppParams{} + interface Framework7Events extends AppbarNamespace.AppEvents{} + interface Framework7Class extends AutocompleteNamespace.AppMethods{} + interface Framework7Params extends AutocompleteNamespace.AppParams{} + interface Framework7Events extends AutocompleteNamespace.AppEvents{} + interface Framework7Class extends BadgeNamespace.AppMethods{} + interface Framework7Params extends BadgeNamespace.AppParams{} + interface Framework7Events extends BadgeNamespace.AppEvents{} + interface Framework7Class extends BlockNamespace.AppMethods{} + interface Framework7Params extends BlockNamespace.AppParams{} + interface Framework7Events extends BlockNamespace.AppEvents{} + interface Framework7Class extends ButtonNamespace.AppMethods{} + interface Framework7Params extends ButtonNamespace.AppParams{} + interface Framework7Events extends ButtonNamespace.AppEvents{} + interface Framework7Class extends CalendarNamespace.AppMethods{} + interface Framework7Params extends CalendarNamespace.AppParams{} + interface Framework7Events extends CalendarNamespace.AppEvents{} + interface Framework7Class extends CardNamespace.AppMethods{} + interface Framework7Params extends CardNamespace.AppParams{} + interface Framework7Events extends CardNamespace.AppEvents{} + interface Framework7Class extends CheckboxNamespace.AppMethods{} + interface Framework7Params extends CheckboxNamespace.AppParams{} + interface Framework7Events extends CheckboxNamespace.AppEvents{} + interface Framework7Class extends ChipNamespace.AppMethods{} + interface Framework7Params extends ChipNamespace.AppParams{} + interface Framework7Events extends ChipNamespace.AppEvents{} + interface Framework7Class extends ColorPickerNamespace.AppMethods{} + interface Framework7Params extends ColorPickerNamespace.AppParams{} + interface Framework7Events extends ColorPickerNamespace.AppEvents{} + interface Framework7Class extends ContactsListNamespace.AppMethods{} + interface Framework7Params extends ContactsListNamespace.AppParams{} + interface Framework7Events extends ContactsListNamespace.AppEvents{} + interface Framework7Class extends DataTableNamespace.AppMethods{} + interface Framework7Params extends DataTableNamespace.AppParams{} + interface Framework7Events extends DataTableNamespace.AppEvents{} + interface Framework7Class extends DialogNamespace.AppMethods{} + interface Framework7Params extends DialogNamespace.AppParams{} + interface Framework7Events extends DialogNamespace.AppEvents{} + interface Framework7Class extends ElevationNamespace.AppMethods{} + interface Framework7Params extends ElevationNamespace.AppParams{} + interface Framework7Events extends ElevationNamespace.AppEvents{} + interface Framework7Class extends FabNamespace.AppMethods{} + interface Framework7Params extends FabNamespace.AppParams{} + interface Framework7Events extends FabNamespace.AppEvents{} + interface Framework7Class extends FormNamespace.AppMethods{} + interface Framework7Params extends FormNamespace.AppParams{} + interface Framework7Events extends FormNamespace.AppEvents{} + interface Framework7Class extends GaugeNamespace.AppMethods{} + interface Framework7Params extends GaugeNamespace.AppParams{} + interface Framework7Events extends GaugeNamespace.AppEvents{} + interface Framework7Class extends GridNamespace.AppMethods{} + interface Framework7Params extends GridNamespace.AppParams{} + interface Framework7Events extends GridNamespace.AppEvents{} + interface Framework7Class extends IconNamespace.AppMethods{} + interface Framework7Params extends IconNamespace.AppParams{} + interface Framework7Events extends IconNamespace.AppEvents{} + interface Framework7Class extends InfiniteScrollNamespace.AppMethods{} + interface Framework7Params extends InfiniteScrollNamespace.AppParams{} + interface Framework7Events extends InfiniteScrollNamespace.AppEvents{} + interface Framework7Class extends InputNamespace.AppMethods{} + interface Framework7Params extends InputNamespace.AppParams{} + interface Framework7Events extends InputNamespace.AppEvents{} + interface Framework7Class extends LazyNamespace.AppMethods{} + interface Framework7Params extends LazyNamespace.AppParams{} + interface Framework7Events extends LazyNamespace.AppEvents{} + interface Framework7Class extends LinkNamespace.AppMethods{} + interface Framework7Params extends LinkNamespace.AppParams{} + interface Framework7Events extends LinkNamespace.AppEvents{} + interface Framework7Class extends ListNamespace.AppMethods{} + interface Framework7Params extends ListNamespace.AppParams{} + interface Framework7Events extends ListNamespace.AppEvents{} + interface Framework7Class extends ListIndexNamespace.AppMethods{} + interface Framework7Params extends ListIndexNamespace.AppParams{} + interface Framework7Events extends ListIndexNamespace.AppEvents{} + interface Framework7Class extends LoginScreenNamespace.AppMethods{} + interface Framework7Params extends LoginScreenNamespace.AppParams{} + interface Framework7Events extends LoginScreenNamespace.AppEvents{} + interface Framework7Class extends MenuNamespace.AppMethods{} + interface Framework7Params extends MenuNamespace.AppParams{} + interface Framework7Events extends MenuNamespace.AppEvents{} + interface Framework7Class extends MessagebarNamespace.AppMethods{} + interface Framework7Params extends MessagebarNamespace.AppParams{} + interface Framework7Events extends MessagebarNamespace.AppEvents{} + interface Framework7Class extends MessagesNamespace.AppMethods{} + interface Framework7Params extends MessagesNamespace.AppParams{} + interface Framework7Events extends MessagesNamespace.AppEvents{} + interface Framework7Class extends ModalNamespace.AppMethods{} + interface Framework7Params extends ModalNamespace.AppParams{} + interface Framework7Events extends ModalNamespace.AppEvents{} + interface Framework7Class extends NavbarNamespace.AppMethods{} + interface Framework7Params extends NavbarNamespace.AppParams{} + interface Framework7Events extends NavbarNamespace.AppEvents{} + interface Framework7Class extends NotificationNamespace.AppMethods{} + interface Framework7Params extends NotificationNamespace.AppParams{} + interface Framework7Events extends NotificationNamespace.AppEvents{} + interface Framework7Class extends PageNamespace.AppMethods{} + interface Framework7Params extends PageNamespace.AppParams{} + interface Framework7Events extends PageNamespace.AppEvents{} + interface Framework7Class extends PanelNamespace.AppMethods{} + interface Framework7Params extends PanelNamespace.AppParams{} + interface Framework7Events extends PanelNamespace.AppEvents{} + interface Framework7Class extends PhotoBrowserNamespace.AppMethods{} + interface Framework7Params extends PhotoBrowserNamespace.AppParams{} + interface Framework7Events extends PhotoBrowserNamespace.AppEvents{} + interface Framework7Class extends PickerNamespace.AppMethods{} + interface Framework7Params extends PickerNamespace.AppParams{} + interface Framework7Events extends PickerNamespace.AppEvents{} + interface Framework7Class extends PopoverNamespace.AppMethods{} + interface Framework7Params extends PopoverNamespace.AppParams{} + interface Framework7Events extends PopoverNamespace.AppEvents{} + interface Framework7Class extends PopupNamespace.AppMethods{} + interface Framework7Params extends PopupNamespace.AppParams{} + interface Framework7Events extends PopupNamespace.AppEvents{} + interface Framework7Class extends PreloaderNamespace.AppMethods{} + interface Framework7Params extends PreloaderNamespace.AppParams{} + interface Framework7Events extends PreloaderNamespace.AppEvents{} + interface Framework7Class extends ProgressbarNamespace.AppMethods{} + interface Framework7Params extends ProgressbarNamespace.AppParams{} + interface Framework7Events extends ProgressbarNamespace.AppEvents{} + interface Framework7Class extends PullToRefreshNamespace.AppMethods{} + interface Framework7Params extends PullToRefreshNamespace.AppParams{} + interface Framework7Events extends PullToRefreshNamespace.AppEvents{} + interface Framework7Class extends RadioNamespace.AppMethods{} + interface Framework7Params extends RadioNamespace.AppParams{} + interface Framework7Events extends RadioNamespace.AppEvents{} + interface Framework7Class extends RangeNamespace.AppMethods{} + interface Framework7Params extends RangeNamespace.AppParams{} + interface Framework7Events extends RangeNamespace.AppEvents{} + interface Framework7Class extends SearchbarNamespace.AppMethods{} + interface Framework7Params extends SearchbarNamespace.AppParams{} + interface Framework7Events extends SearchbarNamespace.AppEvents{} + interface Framework7Class extends SheetNamespace.AppMethods{} + interface Framework7Params extends SheetNamespace.AppParams{} + interface Framework7Events extends SheetNamespace.AppEvents{} + interface Framework7Class extends SkeletonNamespace.AppMethods{} + interface Framework7Params extends SkeletonNamespace.AppParams{} + interface Framework7Events extends SkeletonNamespace.AppEvents{} + interface Framework7Class extends SmartSelectNamespace.AppMethods{} + interface Framework7Params extends SmartSelectNamespace.AppParams{} + interface Framework7Events extends SmartSelectNamespace.AppEvents{} + interface Framework7Class extends SortableNamespace.AppMethods{} + interface Framework7Params extends SortableNamespace.AppParams{} + interface Framework7Events extends SortableNamespace.AppEvents{} + interface Framework7Class extends StatusbarNamespace.AppMethods{} + interface Framework7Params extends StatusbarNamespace.AppParams{} + interface Framework7Events extends StatusbarNamespace.AppEvents{} + interface Framework7Class extends StepperNamespace.AppMethods{} + interface Framework7Params extends StepperNamespace.AppParams{} + interface Framework7Events extends StepperNamespace.AppEvents{} + interface Framework7Class extends SubnavbarNamespace.AppMethods{} + interface Framework7Params extends SubnavbarNamespace.AppParams{} + interface Framework7Events extends SubnavbarNamespace.AppEvents{} + interface Framework7Class extends SwipeoutNamespace.AppMethods{} + interface Framework7Params extends SwipeoutNamespace.AppParams{} + interface Framework7Events extends SwipeoutNamespace.AppEvents{} + interface Framework7Class extends SwiperNamespace.AppMethods{} + interface Framework7Params extends SwiperNamespace.AppParams{} + interface Framework7Events extends SwiperNamespace.AppEvents{} + interface Framework7Class extends TabsNamespace.AppMethods{} + interface Framework7Params extends TabsNamespace.AppParams{} + interface Framework7Events extends TabsNamespace.AppEvents{} + interface Framework7Class extends TextEditorNamespace.AppMethods{} + interface Framework7Params extends TextEditorNamespace.AppParams{} + interface Framework7Events extends TextEditorNamespace.AppEvents{} + interface Framework7Class extends TimelineNamespace.AppMethods{} + interface Framework7Params extends TimelineNamespace.AppParams{} + interface Framework7Events extends TimelineNamespace.AppEvents{} + interface Framework7Class extends ToastNamespace.AppMethods{} + interface Framework7Params extends ToastNamespace.AppParams{} + interface Framework7Events extends ToastNamespace.AppEvents{} + interface Framework7Class extends ToggleNamespace.AppMethods{} + interface Framework7Params extends ToggleNamespace.AppParams{} + interface Framework7Events extends ToggleNamespace.AppEvents{} + interface Framework7Class extends ToolbarNamespace.AppMethods{} + interface Framework7Params extends ToolbarNamespace.AppParams{} + interface Framework7Events extends ToolbarNamespace.AppEvents{} + interface Framework7Class extends TooltipNamespace.AppMethods{} + interface Framework7Params extends TooltipNamespace.AppParams{} + interface Framework7Events extends TooltipNamespace.AppEvents{} + interface Framework7Class extends TouchRippleNamespace.AppMethods{} + interface Framework7Params extends TouchRippleNamespace.AppParams{} + interface Framework7Events extends TouchRippleNamespace.AppEvents{} + interface Framework7Class extends TreeviewNamespace.AppMethods{} + interface Framework7Params extends TreeviewNamespace.AppParams{} + interface Framework7Events extends TreeviewNamespace.AppEvents{} + interface Framework7Class extends TypographyNamespace.AppMethods{} + interface Framework7Params extends TypographyNamespace.AppParams{} + interface Framework7Events extends TypographyNamespace.AppEvents{} + interface Framework7Class extends ViNamespace.AppMethods{} + interface Framework7Params extends ViNamespace.AppParams{} + interface Framework7Events extends ViNamespace.AppEvents{} + interface Framework7Class extends ViewNamespace.AppMethods{} + interface Framework7Params extends ViewNamespace.AppParams{} + interface Framework7Events extends ViewNamespace.AppEvents{} + interface Framework7Class extends VirtualListNamespace.AppMethods{} + interface Framework7Params extends VirtualListNamespace.AppParams{} + interface Framework7Events extends VirtualListNamespace.AppEvents{} +} + +export { Request, Utils, Support, Device }; +export { Template7, Dom7, Component }; +export default Framework7; diff --git a/public/Framework7/5/js/framework7.bundle.js b/public/Framework7/5/js/framework7.bundle.js new file mode 100644 index 0000000..ff03232 --- /dev/null +++ b/public/Framework7/5/js/framework7.bundle.js @@ -0,0 +1,42790 @@ +/** + * Framework7 5.7.14 + * Full featured mobile HTML framework for building iOS & Android apps + * https://framework7.io/ + * + * Copyright 2014-2020 Vladimir Kharlampidi + * + * Released under the MIT License + * + * Released on: November 9, 2020 + */ + +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : + typeof define === 'function' && define.amd ? define(factory) : + (global = global || self, global.Framework7 = factory()); +}(this, (function () { 'use strict'; + + /** + * Template7 1.4.2 + * Mobile-first HTML template engine + * + * http://www.idangero.us/template7/ + * + * Copyright 2019, Vladimir Kharlampidi + * The iDangero.us + * http://www.idangero.us/ + * + * Licensed under MIT + * + * Released on: June 14, 2019 + */ + + var t7ctx; + if (typeof window !== 'undefined') { + t7ctx = window; + } else if (typeof global !== 'undefined') { + t7ctx = global; + } else { + t7ctx = undefined; + } + + var Template7Context = t7ctx; + + var Template7Utils = { + quoteSingleRexExp: new RegExp('\'', 'g'), + quoteDoubleRexExp: new RegExp('"', 'g'), + isFunction: function isFunction(func) { + return typeof func === 'function'; + }, + escape: function escape(string) { + if ( string === void 0 ) string = ''; + + return string + .replace(/&/g, '&') + .replace(//g, '>') + .replace(/"/g, '"') + .replace(/'/g, '''); + }, + helperToSlices: function helperToSlices(string) { + var quoteDoubleRexExp = Template7Utils.quoteDoubleRexExp; + var quoteSingleRexExp = Template7Utils.quoteSingleRexExp; + var helperParts = string.replace(/[{}#}]/g, '').trim().split(' '); + var slices = []; + var shiftIndex; + var i; + var j; + for (i = 0; i < helperParts.length; i += 1) { + var part = helperParts[i]; + var blockQuoteRegExp = (void 0); + var openingQuote = (void 0); + if (i === 0) { slices.push(part); } + else if (part.indexOf('"') === 0 || part.indexOf('\'') === 0) { + blockQuoteRegExp = part.indexOf('"') === 0 ? quoteDoubleRexExp : quoteSingleRexExp; + openingQuote = part.indexOf('"') === 0 ? '"' : '\''; + // Plain String + if (part.match(blockQuoteRegExp).length === 2) { + // One word string + slices.push(part); + } else { + // Find closed Index + shiftIndex = 0; + for (j = i + 1; j < helperParts.length; j += 1) { + part += " " + (helperParts[j]); + if (helperParts[j].indexOf(openingQuote) >= 0) { + shiftIndex = j; + slices.push(part); + break; + } + } + if (shiftIndex) { i = shiftIndex; } + } + } else if (part.indexOf('=') > 0) { + // Hash + var hashParts = part.split('='); + var hashName = hashParts[0]; + var hashContent = hashParts[1]; + if (!blockQuoteRegExp) { + blockQuoteRegExp = hashContent.indexOf('"') === 0 ? quoteDoubleRexExp : quoteSingleRexExp; + openingQuote = hashContent.indexOf('"') === 0 ? '"' : '\''; + } + if (hashContent.match(blockQuoteRegExp).length !== 2) { + shiftIndex = 0; + for (j = i + 1; j < helperParts.length; j += 1) { + hashContent += " " + (helperParts[j]); + if (helperParts[j].indexOf(openingQuote) >= 0) { + shiftIndex = j; + break; + } + } + if (shiftIndex) { i = shiftIndex; } + } + var hash = [hashName, hashContent.replace(blockQuoteRegExp, '')]; + slices.push(hash); + } else { + // Plain variable + slices.push(part); + } + } + return slices; + }, + stringToBlocks: function stringToBlocks(string) { + var blocks = []; + var i; + var j; + if (!string) { return []; } + var stringBlocks = string.split(/({{[^{^}]*}})/); + for (i = 0; i < stringBlocks.length; i += 1) { + var block = stringBlocks[i]; + if (block === '') { continue; } + if (block.indexOf('{{') < 0) { + blocks.push({ + type: 'plain', + content: block, + }); + } else { + if (block.indexOf('{/') >= 0) { + continue; + } + block = block + .replace(/{{([#/])*([ ])*/, '{{$1') + .replace(/([ ])*}}/, '}}'); + if (block.indexOf('{#') < 0 && block.indexOf(' ') < 0 && block.indexOf('else') < 0) { + // Simple variable + blocks.push({ + type: 'variable', + contextName: block.replace(/[{}]/g, ''), + }); + continue; + } + // Helpers + var helperSlices = Template7Utils.helperToSlices(block); + var helperName = helperSlices[0]; + var isPartial = helperName === '>'; + var helperContext = []; + var helperHash = {}; + for (j = 1; j < helperSlices.length; j += 1) { + var slice = helperSlices[j]; + if (Array.isArray(slice)) { + // Hash + helperHash[slice[0]] = slice[1] === 'false' ? false : slice[1]; + } else { + helperContext.push(slice); + } + } + + if (block.indexOf('{#') >= 0) { + // Condition/Helper + var helperContent = ''; + var elseContent = ''; + var toSkip = 0; + var shiftIndex = (void 0); + var foundClosed = false; + var foundElse = false; + var depth = 0; + for (j = i + 1; j < stringBlocks.length; j += 1) { + if (stringBlocks[j].indexOf('{{#') >= 0) { + depth += 1; + } + if (stringBlocks[j].indexOf('{{/') >= 0) { + depth -= 1; + } + if (stringBlocks[j].indexOf(("{{#" + helperName)) >= 0) { + helperContent += stringBlocks[j]; + if (foundElse) { elseContent += stringBlocks[j]; } + toSkip += 1; + } else if (stringBlocks[j].indexOf(("{{/" + helperName)) >= 0) { + if (toSkip > 0) { + toSkip -= 1; + helperContent += stringBlocks[j]; + if (foundElse) { elseContent += stringBlocks[j]; } + } else { + shiftIndex = j; + foundClosed = true; + break; + } + } else if (stringBlocks[j].indexOf('else') >= 0 && depth === 0) { + foundElse = true; + } else { + if (!foundElse) { helperContent += stringBlocks[j]; } + if (foundElse) { elseContent += stringBlocks[j]; } + } + } + if (foundClosed) { + if (shiftIndex) { i = shiftIndex; } + if (helperName === 'raw') { + blocks.push({ + type: 'plain', + content: helperContent, + }); + } else { + blocks.push({ + type: 'helper', + helperName: helperName, + contextName: helperContext, + content: helperContent, + inverseContent: elseContent, + hash: helperHash, + }); + } + } + } else if (block.indexOf(' ') > 0) { + if (isPartial) { + helperName = '_partial'; + if (helperContext[0]) { + if (helperContext[0].indexOf('[') === 0) { helperContext[0] = helperContext[0].replace(/[[\]]/g, ''); } + else { helperContext[0] = "\"" + (helperContext[0].replace(/"|'/g, '')) + "\""; } + } + } + blocks.push({ + type: 'helper', + helperName: helperName, + contextName: helperContext, + hash: helperHash, + }); + } + } + } + return blocks; + }, + parseJsVariable: function parseJsVariable(expression, replace, object) { + return expression.split(/([+ \-*/^()&=|<>!%:?])/g).reduce(function (arr, part) { + if (!part) { + return arr; + } + if (part.indexOf(replace) < 0) { + arr.push(part); + return arr; + } + if (!object) { + arr.push(JSON.stringify('')); + return arr; + } + + var variable = object; + if (part.indexOf((replace + ".")) >= 0) { + part.split((replace + "."))[1].split('.').forEach(function (partName) { + if (partName in variable) { variable = variable[partName]; } + else { variable = undefined; } + }); + } + if ( + (typeof variable === 'string') + || Array.isArray(variable) + || (variable.constructor && variable.constructor === Object) + ) { + variable = JSON.stringify(variable); + } + if (variable === undefined) { variable = 'undefined'; } + + arr.push(variable); + return arr; + }, []).join(''); + + }, + parseJsParents: function parseJsParents(expression, parents) { + return expression.split(/([+ \-*^()&=|<>!%:?])/g).reduce(function (arr, part) { + if (!part) { + return arr; + } + + if (part.indexOf('../') < 0) { + arr.push(part); + return arr; + } + + if (!parents || parents.length === 0) { + arr.push(JSON.stringify('')); + return arr; + } + + var levelsUp = part.split('../').length - 1; + var parentData = levelsUp > parents.length ? parents[parents.length - 1] : parents[levelsUp - 1]; + + var variable = parentData; + var parentPart = part.replace(/..\//g, ''); + parentPart.split('.').forEach(function (partName) { + if (typeof variable[partName] !== 'undefined') { variable = variable[partName]; } + else { variable = 'undefined'; } + }); + if (variable === false || variable === true) { + arr.push(JSON.stringify(variable)); + return arr; + } + if (variable === null || variable === 'undefined') { + arr.push(JSON.stringify('')); + return arr; + } + arr.push(JSON.stringify(variable)); + return arr; + }, []).join(''); + }, + getCompileVar: function getCompileVar(name, ctx, data) { + if ( data === void 0 ) data = 'data_1'; + + var variable = ctx; + var parts; + var levelsUp = 0; + var newDepth; + if (name.indexOf('../') === 0) { + levelsUp = name.split('../').length - 1; + newDepth = variable.split('_')[1] - levelsUp; + variable = "ctx_" + (newDepth >= 1 ? newDepth : 1); + parts = name.split('../')[levelsUp].split('.'); + } else if (name.indexOf('@global') === 0) { + variable = 'Template7.global'; + parts = name.split('@global.')[1].split('.'); + } else if (name.indexOf('@root') === 0) { + variable = 'root'; + parts = name.split('@root.')[1].split('.'); + } else { + parts = name.split('.'); + } + for (var i = 0; i < parts.length; i += 1) { + var part = parts[i]; + if (part.indexOf('@') === 0) { + var dataLevel = data.split('_')[1]; + if (levelsUp > 0) { + dataLevel = newDepth; + } + if (i > 0) { + variable += "[(data_" + dataLevel + " && data_" + dataLevel + "." + (part.replace('@', '')) + ")]"; + } else { + variable = "(data_" + dataLevel + " && data_" + dataLevel + "." + (part.replace('@', '')) + ")"; + } + } else if (Number.isFinite ? Number.isFinite(part) : Template7Context.isFinite(part)) { + variable += "[" + part + "]"; + } else if (part === 'this' || part.indexOf('this.') >= 0 || part.indexOf('this[') >= 0 || part.indexOf('this(') >= 0) { + variable = part.replace('this', ctx); + } else { + variable += "." + part; + } + } + return variable; + }, + getCompiledArguments: function getCompiledArguments(contextArray, ctx, data) { + var arr = []; + for (var i = 0; i < contextArray.length; i += 1) { + if (/^['"]/.test(contextArray[i])) { arr.push(contextArray[i]); } + else if (/^(true|false|\d+)$/.test(contextArray[i])) { arr.push(contextArray[i]); } + else { + arr.push(Template7Utils.getCompileVar(contextArray[i], ctx, data)); + } + } + + return arr.join(', '); + }, + }; + + /* eslint no-eval: "off" */ + + var Template7Helpers = { + _partial: function _partial(partialName, options) { + var ctx = this; + var p = Template7Class.partials[partialName]; + if (!p || (p && !p.template)) { return ''; } + if (!p.compiled) { + p.compiled = new Template7Class(p.template).compile(); + } + Object.keys(options.hash).forEach(function (hashName) { + ctx[hashName] = options.hash[hashName]; + }); + return p.compiled(ctx, options.data, options.root); + }, + escape: function escape(context) { + if (typeof context === 'undefined' || context === null) { return ''; } + if (typeof context !== 'string') { + throw new Error('Template7: Passed context to "escape" helper should be a string'); + } + return Template7Utils.escape(context); + }, + if: function if$1(context, options) { + var ctx = context; + if (Template7Utils.isFunction(ctx)) { ctx = ctx.call(this); } + if (ctx) { + return options.fn(this, options.data); + } + + return options.inverse(this, options.data); + }, + unless: function unless(context, options) { + var ctx = context; + if (Template7Utils.isFunction(ctx)) { ctx = ctx.call(this); } + if (!ctx) { + return options.fn(this, options.data); + } + + return options.inverse(this, options.data); + }, + each: function each(context, options) { + var ctx = context; + var ret = ''; + var i = 0; + if (Template7Utils.isFunction(ctx)) { ctx = ctx.call(this); } + if (Array.isArray(ctx)) { + if (options.hash.reverse) { + ctx = ctx.reverse(); + } + for (i = 0; i < ctx.length; i += 1) { + ret += options.fn(ctx[i], { first: i === 0, last: i === ctx.length - 1, index: i }); + } + if (options.hash.reverse) { + ctx = ctx.reverse(); + } + } else { + // eslint-disable-next-line + for (var key in ctx) { + i += 1; + ret += options.fn(ctx[key], { key: key }); + } + } + if (i > 0) { return ret; } + return options.inverse(this); + }, + with: function with$1(context, options) { + var ctx = context; + if (Template7Utils.isFunction(ctx)) { ctx = context.call(this); } + return options.fn(ctx); + }, + join: function join(context, options) { + var ctx = context; + if (Template7Utils.isFunction(ctx)) { ctx = ctx.call(this); } + return ctx.join(options.hash.delimiter || options.hash.delimeter); + }, + js: function js(expression, options) { + var data = options.data; + var func; + var execute = expression; + ('index first last key').split(' ').forEach(function (prop) { + if (typeof data[prop] !== 'undefined') { + var re1 = new RegExp(("this.@" + prop), 'g'); + var re2 = new RegExp(("@" + prop), 'g'); + execute = execute + .replace(re1, JSON.stringify(data[prop])) + .replace(re2, JSON.stringify(data[prop])); + } + }); + if (options.root && execute.indexOf('@root') >= 0) { + execute = Template7Utils.parseJsVariable(execute, '@root', options.root); + } + if (execute.indexOf('@global') >= 0) { + execute = Template7Utils.parseJsVariable(execute, '@global', Template7Context.Template7.global); + } + if (execute.indexOf('../') >= 0) { + execute = Template7Utils.parseJsParents(execute, options.parents); + } + if (execute.indexOf('return') >= 0) { + func = "(function(){" + execute + "})"; + } else { + func = "(function(){return (" + execute + ")})"; + } + return eval(func).call(this); + }, + js_if: function js_if(expression, options) { + var data = options.data; + var func; + var execute = expression; + ('index first last key').split(' ').forEach(function (prop) { + if (typeof data[prop] !== 'undefined') { + var re1 = new RegExp(("this.@" + prop), 'g'); + var re2 = new RegExp(("@" + prop), 'g'); + execute = execute + .replace(re1, JSON.stringify(data[prop])) + .replace(re2, JSON.stringify(data[prop])); + } + }); + if (options.root && execute.indexOf('@root') >= 0) { + execute = Template7Utils.parseJsVariable(execute, '@root', options.root); + } + if (execute.indexOf('@global') >= 0) { + execute = Template7Utils.parseJsVariable(execute, '@global', Template7Context.Template7.global); + } + if (execute.indexOf('../') >= 0) { + execute = Template7Utils.parseJsParents(execute, options.parents); + } + if (execute.indexOf('return') >= 0) { + func = "(function(){" + execute + "})"; + } else { + func = "(function(){return (" + execute + ")})"; + } + var condition = eval(func).call(this); + if (condition) { + return options.fn(this, options.data); + } + + return options.inverse(this, options.data); + }, + }; + Template7Helpers.js_compare = Template7Helpers.js_if; + + var Template7Options = {}; + var Template7Partials = {}; + + var Template7Class = function Template7Class(template) { + var t = this; + t.template = template; + }; + + var staticAccessors = { options: { configurable: true },partials: { configurable: true },helpers: { configurable: true } }; + Template7Class.prototype.compile = function compile (template, depth) { + if ( template === void 0 ) template = this.template; + if ( depth === void 0 ) depth = 1; + + var t = this; + if (t.compiled) { return t.compiled; } + + if (typeof template !== 'string') { + throw new Error('Template7: Template must be a string'); + } + var stringToBlocks = Template7Utils.stringToBlocks; + var getCompileVar = Template7Utils.getCompileVar; + var getCompiledArguments = Template7Utils.getCompiledArguments; + + var blocks = stringToBlocks(template); + var ctx = "ctx_" + depth; + var data = "data_" + depth; + if (blocks.length === 0) { + return function empty() { return ''; }; + } + + function getCompileFn(block, newDepth) { + if (block.content) { return t.compile(block.content, newDepth); } + return function empty() { return ''; }; + } + function getCompileInverse(block, newDepth) { + if (block.inverseContent) { return t.compile(block.inverseContent, newDepth); } + return function empty() { return ''; }; + } + + var resultString = ''; + if (depth === 1) { + resultString += "(function (" + ctx + ", " + data + ", root) {\n"; + } else { + resultString += "(function (" + ctx + ", " + data + ") {\n"; + } + if (depth === 1) { + resultString += 'function isArray(arr){return Array.isArray(arr);}\n'; + resultString += 'function isFunction(func){return (typeof func === \'function\');}\n'; + resultString += 'function c(val, ctx) {if (typeof val !== "undefined" && val !== null) {if (isFunction(val)) {return val.call(ctx);} else return val;} else return "";}\n'; + resultString += 'root = root || ctx_1 || {};\n'; + } + resultString += 'var r = \'\';\n'; + var i; + for (i = 0; i < blocks.length; i += 1) { + var block = blocks[i]; + // Plain block + if (block.type === 'plain') { + // eslint-disable-next-line + resultString += "r +='" + ((block.content).replace(/\r/g, '\\r').replace(/\n/g, '\\n').replace(/'/g, '\\' + '\'')) + "';"; + continue; + } + var variable = (void 0); + var compiledArguments = (void 0); + // Variable block + if (block.type === 'variable') { + variable = getCompileVar(block.contextName, ctx, data); + resultString += "r += c(" + variable + ", " + ctx + ");"; + } + // Helpers block + if (block.type === 'helper') { + var parents = (void 0); + if (ctx !== 'ctx_1') { + var level = ctx.split('_')[1]; + var parentsString = "ctx_" + (level - 1); + for (var j = level - 2; j >= 1; j -= 1) { + parentsString += ", ctx_" + j; + } + parents = "[" + parentsString + "]"; + } else { + parents = "[" + ctx + "]"; + } + var dynamicHelper = (void 0); + if (block.helperName.indexOf('[') === 0) { + block.helperName = getCompileVar(block.helperName.replace(/[[\]]/g, ''), ctx, data); + dynamicHelper = true; + } + if (dynamicHelper || block.helperName in Template7Helpers) { + compiledArguments = getCompiledArguments(block.contextName, ctx, data); + resultString += "r += (Template7Helpers" + (dynamicHelper ? ("[" + (block.helperName) + "]") : ("." + (block.helperName))) + ").call(" + ctx + ", " + (compiledArguments && ((compiledArguments + ", "))) + "{hash:" + (JSON.stringify(block.hash)) + ", data: " + data + " || {}, fn: " + (getCompileFn(block, depth + 1)) + ", inverse: " + (getCompileInverse(block, depth + 1)) + ", root: root, parents: " + parents + "});"; + } else if (block.contextName.length > 0) { + throw new Error(("Template7: Missing helper: \"" + (block.helperName) + "\"")); + } else { + variable = getCompileVar(block.helperName, ctx, data); + resultString += "if (" + variable + ") {"; + resultString += "if (isArray(" + variable + ")) {"; + resultString += "r += (Template7Helpers.each).call(" + ctx + ", " + variable + ", {hash:" + (JSON.stringify(block.hash)) + ", data: " + data + " || {}, fn: " + (getCompileFn(block, depth + 1)) + ", inverse: " + (getCompileInverse(block, depth + 1)) + ", root: root, parents: " + parents + "});"; + resultString += '}else {'; + resultString += "r += (Template7Helpers.with).call(" + ctx + ", " + variable + ", {hash:" + (JSON.stringify(block.hash)) + ", data: " + data + " || {}, fn: " + (getCompileFn(block, depth + 1)) + ", inverse: " + (getCompileInverse(block, depth + 1)) + ", root: root, parents: " + parents + "});"; + resultString += '}}'; + } + } + } + resultString += '\nreturn r;})'; + + if (depth === 1) { + // eslint-disable-next-line + t.compiled = eval(resultString); + return t.compiled; + } + return resultString; + }; + staticAccessors.options.get = function () { + return Template7Options; + }; + staticAccessors.partials.get = function () { + return Template7Partials; + }; + staticAccessors.helpers.get = function () { + return Template7Helpers; + }; + + Object.defineProperties( Template7Class, staticAccessors ); + + function Template7() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + var template = args[0]; + var data = args[1]; + if (args.length === 2) { + var instance = new Template7Class(template); + var rendered = instance.compile()(data); + instance = null; + return (rendered); + } + return new Template7Class(template); + } + Template7.registerHelper = function registerHelper(name, fn) { + Template7Class.helpers[name] = fn; + }; + Template7.unregisterHelper = function unregisterHelper(name) { + Template7Class.helpers[name] = undefined; + delete Template7Class.helpers[name]; + }; + Template7.registerPartial = function registerPartial(name, template) { + Template7Class.partials[name] = { template: template }; + }; + Template7.unregisterPartial = function unregisterPartial(name) { + if (Template7Class.partials[name]) { + Template7Class.partials[name] = undefined; + delete Template7Class.partials[name]; + } + }; + Template7.compile = function compile(template, options) { + var instance = new Template7Class(template, options); + return instance.compile(); + }; + + Template7.options = Template7Class.options; + Template7.helpers = Template7Class.helpers; + Template7.partials = Template7Class.partials; + + /** + * SSR Window 2.0.0 + * Better handling for window object in SSR environment + * https://github.com/nolimits4web/ssr-window + * + * Copyright 2020, Vladimir Kharlampidi + * + * Licensed under MIT + * + * Released on: May 12, 2020 + */ + /* eslint-disable no-param-reassign */ + function isObject(obj) { + return (obj !== null && + typeof obj === 'object' && + 'constructor' in obj && + obj.constructor === Object); + } + function extend(target, src) { + if (target === void 0) { target = {}; } + if (src === void 0) { src = {}; } + Object.keys(src).forEach(function (key) { + if (typeof target[key] === 'undefined') + { target[key] = src[key]; } + else if (isObject(src[key]) && + isObject(target[key]) && + Object.keys(src[key]).length > 0) { + extend(target[key], src[key]); + } + }); + } + + var doc = typeof document !== 'undefined' ? document : {}; + var ssrDocument = { + body: {}, + addEventListener: function () { }, + removeEventListener: function () { }, + activeElement: { + blur: function () { }, + nodeName: '', + }, + querySelector: function () { + return null; + }, + querySelectorAll: function () { + return []; + }, + getElementById: function () { + return null; + }, + createEvent: function () { + return { + initEvent: function () { }, + }; + }, + createElement: function () { + return { + children: [], + childNodes: [], + style: {}, + setAttribute: function () { }, + getElementsByTagName: function () { + return []; + }, + }; + }, + createElementNS: function () { + return {}; + }, + importNode: function () { + return null; + }, + location: { + hash: '', + host: '', + hostname: '', + href: '', + origin: '', + pathname: '', + protocol: '', + search: '', + }, + }; + extend(doc, ssrDocument); + + var win = typeof window !== 'undefined' ? window : {}; + var ssrWindow = { + document: ssrDocument, + navigator: { + userAgent: '', + }, + location: { + hash: '', + host: '', + hostname: '', + href: '', + origin: '', + pathname: '', + protocol: '', + search: '', + }, + history: { + replaceState: function () { }, + pushState: function () { }, + go: function () { }, + back: function () { }, + }, + CustomEvent: function CustomEvent() { + return this; + }, + addEventListener: function () { }, + removeEventListener: function () { }, + getComputedStyle: function () { + return { + getPropertyValue: function () { + return ''; + }, + }; + }, + Image: function () { }, + Date: function () { }, + screen: {}, + setTimeout: function () { }, + clearTimeout: function () { }, + matchMedia: function () { + return {}; + }, + }; + extend(win, ssrWindow); + + /** + * Dom7 2.1.5 + * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API + * http://framework7.io/docs/dom.html + * + * Copyright 2020, Vladimir Kharlampidi + * The iDangero.us + * http://www.idangero.us/ + * + * Licensed under MIT + * + * Released on: May 15, 2020 + */ + + var Dom7 = function Dom7(arr) { + var self = this; + // Create array-like object + for (var i = 0; i < arr.length; i += 1) { + self[i] = arr[i]; + } + self.length = arr.length; + // Return collection with methods + return this; + }; + + function $(selector, context) { + var arr = []; + var i = 0; + if (selector && !context) { + if (selector instanceof Dom7) { + return selector; + } + } + if (selector) { + // String + if (typeof selector === 'string') { + var els; + var tempParent; + var html = selector.trim(); + if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) { + var toCreate = 'div'; + if (html.indexOf(':~]/)) { + // Pure ID selector + els = [doc.getElementById(selector.trim().split('#')[1])]; + } else { + // Other selectors + els = (context || doc).querySelectorAll(selector.trim()); + } + for (i = 0; i < els.length; i += 1) { + if (els[i]) { arr.push(els[i]); } + } + } + } else if (selector.nodeType || selector === win || selector === doc) { + // Node/element + arr.push(selector); + } else if (selector.length > 0 && selector[0].nodeType) { + // Array of elements or instance of Dom + for (i = 0; i < selector.length; i += 1) { + arr.push(selector[i]); + } + } + } + return new Dom7(arr); + } + + $.fn = Dom7.prototype; + $.Class = Dom7; + $.Dom7 = Dom7; + + function unique(arr) { + var uniqueArray = []; + for (var i = 0; i < arr.length; i += 1) { + if (uniqueArray.indexOf(arr[i]) === -1) { uniqueArray.push(arr[i]); } + } + return uniqueArray; + } + function toCamelCase(string) { + return string.toLowerCase().replace(/-(.)/g, function (match, group1) { return group1.toUpperCase(); }); + } + + function requestAnimationFrame(callback) { + if (win.requestAnimationFrame) { return win.requestAnimationFrame(callback); } + else if (win.webkitRequestAnimationFrame) { return win.webkitRequestAnimationFrame(callback); } + return win.setTimeout(callback, 1000 / 60); + } + function cancelAnimationFrame(id) { + if (win.cancelAnimationFrame) { return win.cancelAnimationFrame(id); } + else if (win.webkitCancelAnimationFrame) { return win.webkitCancelAnimationFrame(id); } + return win.clearTimeout(id); + } + + // Classes and attributes + function addClass(className) { + if (typeof className === 'undefined') { + return this; + } + var classes = className.split(' '); + for (var i = 0; i < classes.length; i += 1) { + for (var j = 0; j < this.length; j += 1) { + if (typeof this[j] !== 'undefined' && typeof this[j].classList !== 'undefined') { this[j].classList.add(classes[i]); } + } + } + return this; + } + function removeClass(className) { + var classes = className.split(' '); + for (var i = 0; i < classes.length; i += 1) { + for (var j = 0; j < this.length; j += 1) { + if (typeof this[j] !== 'undefined' && typeof this[j].classList !== 'undefined') { this[j].classList.remove(classes[i]); } + } + } + return this; + } + function hasClass(className) { + if (!this[0]) { return false; } + return this[0].classList.contains(className); + } + function toggleClass(className) { + var classes = className.split(' '); + for (var i = 0; i < classes.length; i += 1) { + for (var j = 0; j < this.length; j += 1) { + if (typeof this[j] !== 'undefined' && typeof this[j].classList !== 'undefined') { this[j].classList.toggle(classes[i]); } + } + } + return this; + } + function attr(attrs, value) { + var arguments$1 = arguments; + + if (arguments.length === 1 && typeof attrs === 'string') { + // Get attr + if (this[0]) { return this[0].getAttribute(attrs); } + return undefined; + } + + // Set attrs + for (var i = 0; i < this.length; i += 1) { + if (arguments$1.length === 2) { + // String + this[i].setAttribute(attrs, value); + } else { + // Object + // eslint-disable-next-line + for (var attrName in attrs) { + this[i][attrName] = attrs[attrName]; + this[i].setAttribute(attrName, attrs[attrName]); + } + } + } + return this; + } + // eslint-disable-next-line + function removeAttr(attr) { + for (var i = 0; i < this.length; i += 1) { + this[i].removeAttribute(attr); + } + return this; + } + // eslint-disable-next-line + function prop(props, value) { + var arguments$1 = arguments; + + if (arguments.length === 1 && typeof props === 'string') { + // Get prop + if (this[0]) { return this[0][props]; } + } else { + // Set props + for (var i = 0; i < this.length; i += 1) { + if (arguments$1.length === 2) { + // String + this[i][props] = value; + } else { + // Object + // eslint-disable-next-line + for (var propName in props) { + this[i][propName] = props[propName]; + } + } + } + return this; + } + } + function data(key, value) { + var el; + if (typeof value === 'undefined') { + el = this[0]; + // Get value + if (el) { + if (el.dom7ElementDataStorage && (key in el.dom7ElementDataStorage)) { + return el.dom7ElementDataStorage[key]; + } + + var dataKey = el.getAttribute(("data-" + key)); + if (dataKey) { + return dataKey; + } + return undefined; + } + return undefined; + } + + // Set value + for (var i = 0; i < this.length; i += 1) { + el = this[i]; + if (!el.dom7ElementDataStorage) { el.dom7ElementDataStorage = {}; } + el.dom7ElementDataStorage[key] = value; + } + return this; + } + function removeData(key) { + for (var i = 0; i < this.length; i += 1) { + var el = this[i]; + if (el.dom7ElementDataStorage && el.dom7ElementDataStorage[key]) { + el.dom7ElementDataStorage[key] = null; + delete el.dom7ElementDataStorage[key]; + } + } + } + function dataset() { + var el = this[0]; + if (!el) { return undefined; } + var dataset = {}; // eslint-disable-line + if (el.dataset) { + // eslint-disable-next-line + for (var dataKey in el.dataset) { + dataset[dataKey] = el.dataset[dataKey]; + } + } else { + for (var i = 0; i < el.attributes.length; i += 1) { + // eslint-disable-next-line + var attr = el.attributes[i]; + if (attr.name.indexOf('data-') >= 0) { + dataset[toCamelCase(attr.name.split('data-')[1])] = attr.value; + } + } + } + // eslint-disable-next-line + for (var key in dataset) { + if (dataset[key] === 'false') { dataset[key] = false; } + else if (dataset[key] === 'true') { dataset[key] = true; } + else if (parseFloat(dataset[key]) === dataset[key] * 1) { dataset[key] *= 1; } + } + return dataset; + } + function val(value) { + var dom = this; + if (typeof value === 'undefined') { + if (dom[0]) { + if (dom[0].multiple && dom[0].nodeName.toLowerCase() === 'select') { + var values = []; + for (var i = 0; i < dom[0].selectedOptions.length; i += 1) { + values.push(dom[0].selectedOptions[i].value); + } + return values; + } + return dom[0].value; + } + return undefined; + } + + for (var i$1 = 0; i$1 < dom.length; i$1 += 1) { + var el = dom[i$1]; + if (Array.isArray(value) && el.multiple && el.nodeName.toLowerCase() === 'select') { + for (var j = 0; j < el.options.length; j += 1) { + el.options[j].selected = value.indexOf(el.options[j].value) >= 0; + } + } else { + el.value = value; + } + } + return dom; + } + // Transforms + // eslint-disable-next-line + function transform(transform) { + for (var i = 0; i < this.length; i += 1) { + var elStyle = this[i].style; + elStyle.webkitTransform = transform; + elStyle.transform = transform; + } + return this; + } + function transition(duration) { + if (typeof duration !== 'string') { + duration = duration + "ms"; // eslint-disable-line + } + for (var i = 0; i < this.length; i += 1) { + var elStyle = this[i].style; + elStyle.webkitTransitionDuration = duration; + elStyle.transitionDuration = duration; + } + return this; + } + // Events + function on() { + var assign; + + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + var eventType = args[0]; + var targetSelector = args[1]; + var listener = args[2]; + var capture = args[3]; + if (typeof args[1] === 'function') { + (assign = args, eventType = assign[0], listener = assign[1], capture = assign[2]); + targetSelector = undefined; + } + if (!capture) { capture = false; } + + function handleLiveEvent(e) { + var target = e.target; + if (!target) { return; } + var eventData = e.target.dom7EventData || []; + if (eventData.indexOf(e) < 0) { + eventData.unshift(e); + } + if ($(target).is(targetSelector)) { listener.apply(target, eventData); } + else { + var parents = $(target).parents(); // eslint-disable-line + for (var k = 0; k < parents.length; k += 1) { + if ($(parents[k]).is(targetSelector)) { listener.apply(parents[k], eventData); } + } + } + } + function handleEvent(e) { + var eventData = e && e.target ? e.target.dom7EventData || [] : []; + if (eventData.indexOf(e) < 0) { + eventData.unshift(e); + } + listener.apply(this, eventData); + } + var events = eventType.split(' '); + var j; + for (var i = 0; i < this.length; i += 1) { + var el = this[i]; + if (!targetSelector) { + for (j = 0; j < events.length; j += 1) { + var event = events[j]; + if (!el.dom7Listeners) { el.dom7Listeners = {}; } + if (!el.dom7Listeners[event]) { el.dom7Listeners[event] = []; } + el.dom7Listeners[event].push({ + listener: listener, + proxyListener: handleEvent, + }); + el.addEventListener(event, handleEvent, capture); + } + } else { + // Live events + for (j = 0; j < events.length; j += 1) { + var event$1 = events[j]; + if (!el.dom7LiveListeners) { el.dom7LiveListeners = {}; } + if (!el.dom7LiveListeners[event$1]) { el.dom7LiveListeners[event$1] = []; } + el.dom7LiveListeners[event$1].push({ + listener: listener, + proxyListener: handleLiveEvent, + }); + el.addEventListener(event$1, handleLiveEvent, capture); + } + } + } + return this; + } + function off() { + var assign; + + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + var eventType = args[0]; + var targetSelector = args[1]; + var listener = args[2]; + var capture = args[3]; + if (typeof args[1] === 'function') { + (assign = args, eventType = assign[0], listener = assign[1], capture = assign[2]); + targetSelector = undefined; + } + if (!capture) { capture = false; } + + var events = eventType.split(' '); + for (var i = 0; i < events.length; i += 1) { + var event = events[i]; + for (var j = 0; j < this.length; j += 1) { + var el = this[j]; + var handlers = (void 0); + if (!targetSelector && el.dom7Listeners) { + handlers = el.dom7Listeners[event]; + } else if (targetSelector && el.dom7LiveListeners) { + handlers = el.dom7LiveListeners[event]; + } + if (handlers && handlers.length) { + for (var k = handlers.length - 1; k >= 0; k -= 1) { + var handler = handlers[k]; + if (listener && handler.listener === listener) { + el.removeEventListener(event, handler.proxyListener, capture); + handlers.splice(k, 1); + } else if (listener && handler.listener && handler.listener.dom7proxy && handler.listener.dom7proxy === listener) { + el.removeEventListener(event, handler.proxyListener, capture); + handlers.splice(k, 1); + } else if (!listener) { + el.removeEventListener(event, handler.proxyListener, capture); + handlers.splice(k, 1); + } + } + } + } + } + return this; + } + function once() { + var assign; + + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + var dom = this; + var eventName = args[0]; + var targetSelector = args[1]; + var listener = args[2]; + var capture = args[3]; + if (typeof args[1] === 'function') { + (assign = args, eventName = assign[0], listener = assign[1], capture = assign[2]); + targetSelector = undefined; + } + function onceHandler() { + var eventArgs = [], len = arguments.length; + while ( len-- ) eventArgs[ len ] = arguments[ len ]; + + listener.apply(this, eventArgs); + dom.off(eventName, targetSelector, onceHandler, capture); + if (onceHandler.dom7proxy) { + delete onceHandler.dom7proxy; + } + } + onceHandler.dom7proxy = listener; + return dom.on(eventName, targetSelector, onceHandler, capture); + } + function trigger() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + var events = args[0].split(' '); + var eventData = args[1]; + for (var i = 0; i < events.length; i += 1) { + var event = events[i]; + for (var j = 0; j < this.length; j += 1) { + var el = this[j]; + var evt = (void 0); + try { + evt = new win.CustomEvent(event, { + detail: eventData, + bubbles: true, + cancelable: true, + }); + } catch (e) { + evt = doc.createEvent('Event'); + evt.initEvent(event, true, true); + evt.detail = eventData; + } + // eslint-disable-next-line + el.dom7EventData = args.filter(function (data, dataIndex) { return dataIndex > 0; }); + el.dispatchEvent(evt); + el.dom7EventData = []; + delete el.dom7EventData; + } + } + return this; + } + function transitionEnd(callback) { + var events = ['webkitTransitionEnd', 'transitionend']; + var dom = this; + var i; + function fireCallBack(e) { + /* jshint validthis:true */ + if (e.target !== this) { return; } + callback.call(this, e); + for (i = 0; i < events.length; i += 1) { + dom.off(events[i], fireCallBack); + } + } + if (callback) { + for (i = 0; i < events.length; i += 1) { + dom.on(events[i], fireCallBack); + } + } + return this; + } + function animationEnd(callback) { + var events = ['webkitAnimationEnd', 'animationend']; + var dom = this; + var i; + function fireCallBack(e) { + if (e.target !== this) { return; } + callback.call(this, e); + for (i = 0; i < events.length; i += 1) { + dom.off(events[i], fireCallBack); + } + } + if (callback) { + for (i = 0; i < events.length; i += 1) { + dom.on(events[i], fireCallBack); + } + } + return this; + } + // Sizing/Styles + function width() { + if (this[0] === win) { + return win.innerWidth; + } + + if (this.length > 0) { + return parseFloat(this.css('width')); + } + + return null; + } + function outerWidth(includeMargins) { + if (this.length > 0) { + if (includeMargins) { + // eslint-disable-next-line + var styles = this.styles(); + return this[0].offsetWidth + parseFloat(styles.getPropertyValue('margin-right')) + parseFloat(styles.getPropertyValue('margin-left')); + } + return this[0].offsetWidth; + } + return null; + } + function height() { + if (this[0] === win) { + return win.innerHeight; + } + + if (this.length > 0) { + return parseFloat(this.css('height')); + } + + return null; + } + function outerHeight(includeMargins) { + if (this.length > 0) { + if (includeMargins) { + // eslint-disable-next-line + var styles = this.styles(); + return this[0].offsetHeight + parseFloat(styles.getPropertyValue('margin-top')) + parseFloat(styles.getPropertyValue('margin-bottom')); + } + return this[0].offsetHeight; + } + return null; + } + function offset() { + if (this.length > 0) { + var el = this[0]; + var box = el.getBoundingClientRect(); + var body = doc.body; + var clientTop = el.clientTop || body.clientTop || 0; + var clientLeft = el.clientLeft || body.clientLeft || 0; + var scrollTop = el === win ? win.scrollY : el.scrollTop; + var scrollLeft = el === win ? win.scrollX : el.scrollLeft; + return { + top: (box.top + scrollTop) - clientTop, + left: (box.left + scrollLeft) - clientLeft, + }; + } + + return null; + } + function hide() { + for (var i = 0; i < this.length; i += 1) { + this[i].style.display = 'none'; + } + return this; + } + function show() { + for (var i = 0; i < this.length; i += 1) { + var el = this[i]; + if (el.style.display === 'none') { + el.style.display = ''; + } + if (win.getComputedStyle(el, null).getPropertyValue('display') === 'none') { + // Still not visible + el.style.display = 'block'; + } + } + return this; + } + function styles() { + if (this[0]) { return win.getComputedStyle(this[0], null); } + return {}; + } + function css(props, value) { + var i; + if (arguments.length === 1) { + if (typeof props === 'string') { + if (this[0]) { return win.getComputedStyle(this[0], null).getPropertyValue(props); } + } else { + for (i = 0; i < this.length; i += 1) { + // eslint-disable-next-line + for (var prop in props) { + this[i].style[prop] = props[prop]; + } + } + return this; + } + } + if (arguments.length === 2 && typeof props === 'string') { + for (i = 0; i < this.length; i += 1) { + this[i].style[props] = value; + } + return this; + } + return this; + } + + // Dom manipulation + function toArray() { + var arr = []; + for (var i = 0; i < this.length; i += 1) { + arr.push(this[i]); + } + return arr; + } + // Iterate over the collection passing elements to `callback` + function each(callback) { + // Don't bother continuing without a callback + if (!callback) { return this; } + // Iterate over the current collection + for (var i = 0; i < this.length; i += 1) { + // If the callback returns false + if (callback.call(this[i], i, this[i]) === false) { + // End the loop early + return this; + } + } + // Return `this` to allow chained DOM operations + return this; + } + function forEach(callback) { + // Don't bother continuing without a callback + if (!callback) { return this; } + // Iterate over the current collection + for (var i = 0; i < this.length; i += 1) { + // If the callback returns false + if (callback.call(this[i], this[i], i) === false) { + // End the loop early + return this; + } + } + // Return `this` to allow chained DOM operations + return this; + } + function filter(callback) { + var matchedItems = []; + var dom = this; + for (var i = 0; i < dom.length; i += 1) { + if (callback.call(dom[i], i, dom[i])) { matchedItems.push(dom[i]); } + } + return new Dom7(matchedItems); + } + function map(callback) { + var modifiedItems = []; + var dom = this; + for (var i = 0; i < dom.length; i += 1) { + modifiedItems.push(callback.call(dom[i], i, dom[i])); + } + return new Dom7(modifiedItems); + } + // eslint-disable-next-line + function html(html) { + if (typeof html === 'undefined') { + return this[0] ? this[0].innerHTML : undefined; + } + + for (var i = 0; i < this.length; i += 1) { + this[i].innerHTML = html; + } + return this; + } + // eslint-disable-next-line + function text(text) { + if (typeof text === 'undefined') { + if (this[0]) { + return this[0].textContent.trim(); + } + return null; + } + + for (var i = 0; i < this.length; i += 1) { + this[i].textContent = text; + } + return this; + } + function is(selector) { + var el = this[0]; + var compareWith; + var i; + if (!el || typeof selector === 'undefined') { return false; } + if (typeof selector === 'string') { + if (el.matches) { return el.matches(selector); } + else if (el.webkitMatchesSelector) { return el.webkitMatchesSelector(selector); } + else if (el.msMatchesSelector) { return el.msMatchesSelector(selector); } + + compareWith = $(selector); + for (i = 0; i < compareWith.length; i += 1) { + if (compareWith[i] === el) { return true; } + } + return false; + } else if (selector === doc) { return el === doc; } + else if (selector === win) { return el === win; } + + if (selector.nodeType || selector instanceof Dom7) { + compareWith = selector.nodeType ? [selector] : selector; + for (i = 0; i < compareWith.length; i += 1) { + if (compareWith[i] === el) { return true; } + } + return false; + } + return false; + } + function indexOf(el) { + for (var i = 0; i < this.length; i += 1) { + if (this[i] === el) { return i; } + } + return -1; + } + function index() { + var child = this[0]; + var i; + if (child) { + i = 0; + // eslint-disable-next-line + while ((child = child.previousSibling) !== null) { + if (child.nodeType === 1) { i += 1; } + } + return i; + } + return undefined; + } + // eslint-disable-next-line + function eq(index) { + if (typeof index === 'undefined') { return this; } + var length = this.length; + var returnIndex; + if (index > length - 1) { + return new Dom7([]); + } + if (index < 0) { + returnIndex = length + index; + if (returnIndex < 0) { return new Dom7([]); } + return new Dom7([this[returnIndex]]); + } + return new Dom7([this[index]]); + } + function append() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + var newChild; + + for (var k = 0; k < args.length; k += 1) { + newChild = args[k]; + for (var i = 0; i < this.length; i += 1) { + if (typeof newChild === 'string') { + var tempDiv = doc.createElement('div'); + tempDiv.innerHTML = newChild; + while (tempDiv.firstChild) { + this[i].appendChild(tempDiv.firstChild); + } + } else if (newChild instanceof Dom7) { + for (var j = 0; j < newChild.length; j += 1) { + this[i].appendChild(newChild[j]); + } + } else { + this[i].appendChild(newChild); + } + } + } + + return this; + } + // eslint-disable-next-line + function appendTo(parent) { + $(parent).append(this); + return this; + } + function prepend(newChild) { + var i; + var j; + for (i = 0; i < this.length; i += 1) { + if (typeof newChild === 'string') { + var tempDiv = doc.createElement('div'); + tempDiv.innerHTML = newChild; + for (j = tempDiv.childNodes.length - 1; j >= 0; j -= 1) { + this[i].insertBefore(tempDiv.childNodes[j], this[i].childNodes[0]); + } + } else if (newChild instanceof Dom7) { + for (j = 0; j < newChild.length; j += 1) { + this[i].insertBefore(newChild[j], this[i].childNodes[0]); + } + } else { + this[i].insertBefore(newChild, this[i].childNodes[0]); + } + } + return this; + } + // eslint-disable-next-line + function prependTo(parent) { + $(parent).prepend(this); + return this; + } + function insertBefore(selector) { + var before = $(selector); + for (var i = 0; i < this.length; i += 1) { + if (before.length === 1) { + before[0].parentNode.insertBefore(this[i], before[0]); + } else if (before.length > 1) { + for (var j = 0; j < before.length; j += 1) { + before[j].parentNode.insertBefore(this[i].cloneNode(true), before[j]); + } + } + } + } + function insertAfter(selector) { + var after = $(selector); + for (var i = 0; i < this.length; i += 1) { + if (after.length === 1) { + after[0].parentNode.insertBefore(this[i], after[0].nextSibling); + } else if (after.length > 1) { + for (var j = 0; j < after.length; j += 1) { + after[j].parentNode.insertBefore(this[i].cloneNode(true), after[j].nextSibling); + } + } + } + } + function next(selector) { + if (this.length > 0) { + if (selector) { + if (this[0].nextElementSibling && $(this[0].nextElementSibling).is(selector)) { + return new Dom7([this[0].nextElementSibling]); + } + return new Dom7([]); + } + + if (this[0].nextElementSibling) { return new Dom7([this[0].nextElementSibling]); } + return new Dom7([]); + } + return new Dom7([]); + } + function nextAll(selector) { + var nextEls = []; + var el = this[0]; + if (!el) { return new Dom7([]); } + while (el.nextElementSibling) { + var next = el.nextElementSibling; // eslint-disable-line + if (selector) { + if ($(next).is(selector)) { nextEls.push(next); } + } else { nextEls.push(next); } + el = next; + } + return new Dom7(nextEls); + } + function prev(selector) { + if (this.length > 0) { + var el = this[0]; + if (selector) { + if (el.previousElementSibling && $(el.previousElementSibling).is(selector)) { + return new Dom7([el.previousElementSibling]); + } + return new Dom7([]); + } + + if (el.previousElementSibling) { return new Dom7([el.previousElementSibling]); } + return new Dom7([]); + } + return new Dom7([]); + } + function prevAll(selector) { + var prevEls = []; + var el = this[0]; + if (!el) { return new Dom7([]); } + while (el.previousElementSibling) { + var prev = el.previousElementSibling; // eslint-disable-line + if (selector) { + if ($(prev).is(selector)) { prevEls.push(prev); } + } else { prevEls.push(prev); } + el = prev; + } + return new Dom7(prevEls); + } + function siblings(selector) { + return this.nextAll(selector).add(this.prevAll(selector)); + } + function parent(selector) { + var parents = []; // eslint-disable-line + for (var i = 0; i < this.length; i += 1) { + if (this[i].parentNode !== null) { + if (selector) { + if ($(this[i].parentNode).is(selector)) { parents.push(this[i].parentNode); } + } else { + parents.push(this[i].parentNode); + } + } + } + return $(unique(parents)); + } + function parents(selector) { + var parents = []; // eslint-disable-line + for (var i = 0; i < this.length; i += 1) { + var parent = this[i].parentNode; // eslint-disable-line + while (parent) { + if (selector) { + if ($(parent).is(selector)) { parents.push(parent); } + } else { + parents.push(parent); + } + parent = parent.parentNode; + } + } + return $(unique(parents)); + } + function closest(selector) { + var closest = this; // eslint-disable-line + if (typeof selector === 'undefined') { + return new Dom7([]); + } + if (!closest.is(selector)) { + closest = closest.parents(selector).eq(0); + } + return closest; + } + function find(selector) { + var foundElements = []; + for (var i = 0; i < this.length; i += 1) { + var found = this[i].querySelectorAll(selector); + for (var j = 0; j < found.length; j += 1) { + foundElements.push(found[j]); + } + } + return new Dom7(foundElements); + } + function children(selector) { + var children = []; // eslint-disable-line + for (var i = 0; i < this.length; i += 1) { + var childNodes = this[i].childNodes; + + for (var j = 0; j < childNodes.length; j += 1) { + if (!selector) { + if (childNodes[j].nodeType === 1) { children.push(childNodes[j]); } + } else if (childNodes[j].nodeType === 1 && $(childNodes[j]).is(selector)) { + children.push(childNodes[j]); + } + } + } + return new Dom7(unique(children)); + } + function remove() { + for (var i = 0; i < this.length; i += 1) { + if (this[i].parentNode) { this[i].parentNode.removeChild(this[i]); } + } + return this; + } + function detach() { + return this.remove(); + } + function add() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + var dom = this; + var i; + var j; + for (i = 0; i < args.length; i += 1) { + var toAdd = $(args[i]); + for (j = 0; j < toAdd.length; j += 1) { + dom[dom.length] = toAdd[j]; + dom.length += 1; + } + } + return dom; + } + function empty() { + for (var i = 0; i < this.length; i += 1) { + var el = this[i]; + if (el.nodeType === 1) { + for (var j = 0; j < el.childNodes.length; j += 1) { + if (el.childNodes[j].parentNode) { + el.childNodes[j].parentNode.removeChild(el.childNodes[j]); + } + } + el.textContent = ''; + } + } + return this; + } + + var Methods = /*#__PURE__*/Object.freeze({ + addClass: addClass, + removeClass: removeClass, + hasClass: hasClass, + toggleClass: toggleClass, + attr: attr, + removeAttr: removeAttr, + prop: prop, + data: data, + removeData: removeData, + dataset: dataset, + val: val, + transform: transform, + transition: transition, + on: on, + off: off, + once: once, + trigger: trigger, + transitionEnd: transitionEnd, + animationEnd: animationEnd, + width: width, + outerWidth: outerWidth, + height: height, + outerHeight: outerHeight, + offset: offset, + hide: hide, + show: show, + styles: styles, + css: css, + toArray: toArray, + each: each, + forEach: forEach, + filter: filter, + map: map, + html: html, + text: text, + is: is, + indexOf: indexOf, + index: index, + eq: eq, + append: append, + appendTo: appendTo, + prepend: prepend, + prependTo: prependTo, + insertBefore: insertBefore, + insertAfter: insertAfter, + next: next, + nextAll: nextAll, + prev: prev, + prevAll: prevAll, + siblings: siblings, + parent: parent, + parents: parents, + closest: closest, + find: find, + children: children, + remove: remove, + detach: detach, + add: add, + empty: empty + }); + + function scrollTo() { + var assign; + + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + var left = args[0]; + var top = args[1]; + var duration = args[2]; + var easing = args[3]; + var callback = args[4]; + if (args.length === 4 && typeof easing === 'function') { + callback = easing; + (assign = args, left = assign[0], top = assign[1], duration = assign[2], callback = assign[3], easing = assign[4]); + } + if (typeof easing === 'undefined') { easing = 'swing'; } + + return this.each(function animate() { + var el = this; + var currentTop; + var currentLeft; + var maxTop; + var maxLeft; + var newTop; + var newLeft; + var scrollTop; // eslint-disable-line + var scrollLeft; // eslint-disable-line + var animateTop = top > 0 || top === 0; + var animateLeft = left > 0 || left === 0; + if (typeof easing === 'undefined') { + easing = 'swing'; + } + if (animateTop) { + currentTop = el.scrollTop; + if (!duration) { + el.scrollTop = top; + } + } + if (animateLeft) { + currentLeft = el.scrollLeft; + if (!duration) { + el.scrollLeft = left; + } + } + if (!duration) { return; } + if (animateTop) { + maxTop = el.scrollHeight - el.offsetHeight; + newTop = Math.max(Math.min(top, maxTop), 0); + } + if (animateLeft) { + maxLeft = el.scrollWidth - el.offsetWidth; + newLeft = Math.max(Math.min(left, maxLeft), 0); + } + var startTime = null; + if (animateTop && newTop === currentTop) { animateTop = false; } + if (animateLeft && newLeft === currentLeft) { animateLeft = false; } + function render(time) { + if ( time === void 0 ) time = new Date().getTime(); + + if (startTime === null) { + startTime = time; + } + var progress = Math.max(Math.min((time - startTime) / duration, 1), 0); + var easeProgress = easing === 'linear' ? progress : (0.5 - (Math.cos(progress * Math.PI) / 2)); + var done; + if (animateTop) { scrollTop = currentTop + (easeProgress * (newTop - currentTop)); } + if (animateLeft) { scrollLeft = currentLeft + (easeProgress * (newLeft - currentLeft)); } + if (animateTop && newTop > currentTop && scrollTop >= newTop) { + el.scrollTop = newTop; + done = true; + } + if (animateTop && newTop < currentTop && scrollTop <= newTop) { + el.scrollTop = newTop; + done = true; + } + if (animateLeft && newLeft > currentLeft && scrollLeft >= newLeft) { + el.scrollLeft = newLeft; + done = true; + } + if (animateLeft && newLeft < currentLeft && scrollLeft <= newLeft) { + el.scrollLeft = newLeft; + done = true; + } + + if (done) { + if (callback) { callback(); } + return; + } + if (animateTop) { el.scrollTop = scrollTop; } + if (animateLeft) { el.scrollLeft = scrollLeft; } + requestAnimationFrame(render); + } + requestAnimationFrame(render); + }); + } + // scrollTop(top, duration, easing, callback) { + function scrollTop() { + var assign; + + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + var top = args[0]; + var duration = args[1]; + var easing = args[2]; + var callback = args[3]; + if (args.length === 3 && typeof easing === 'function') { + (assign = args, top = assign[0], duration = assign[1], callback = assign[2], easing = assign[3]); + } + var dom = this; + if (typeof top === 'undefined') { + if (dom.length > 0) { return dom[0].scrollTop; } + return null; + } + return dom.scrollTo(undefined, top, duration, easing, callback); + } + function scrollLeft() { + var assign; + + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + var left = args[0]; + var duration = args[1]; + var easing = args[2]; + var callback = args[3]; + if (args.length === 3 && typeof easing === 'function') { + (assign = args, left = assign[0], duration = assign[1], callback = assign[2], easing = assign[3]); + } + var dom = this; + if (typeof left === 'undefined') { + if (dom.length > 0) { return dom[0].scrollLeft; } + return null; + } + return dom.scrollTo(left, undefined, duration, easing, callback); + } + + var Scroll = /*#__PURE__*/Object.freeze({ + scrollTo: scrollTo, + scrollTop: scrollTop, + scrollLeft: scrollLeft + }); + + function animate(initialProps, initialParams) { + var els = this; + var a = { + props: Object.assign({}, initialProps), + params: Object.assign({ + duration: 300, + easing: 'swing', // or 'linear' + /* Callbacks + begin(elements) + complete(elements) + progress(elements, complete, remaining, start, tweenValue) + */ + }, initialParams), + + elements: els, + animating: false, + que: [], + + easingProgress: function easingProgress(easing, progress) { + if (easing === 'swing') { + return 0.5 - (Math.cos(progress * Math.PI) / 2); + } + if (typeof easing === 'function') { + return easing(progress); + } + return progress; + }, + stop: function stop() { + if (a.frameId) { + cancelAnimationFrame(a.frameId); + } + a.animating = false; + a.elements.each(function (index, el) { + var element = el; + delete element.dom7AnimateInstance; + }); + a.que = []; + }, + done: function done(complete) { + a.animating = false; + a.elements.each(function (index, el) { + var element = el; + delete element.dom7AnimateInstance; + }); + if (complete) { complete(els); } + if (a.que.length > 0) { + var que = a.que.shift(); + a.animate(que[0], que[1]); + } + }, + animate: function animate(props, params) { + if (a.animating) { + a.que.push([props, params]); + return a; + } + var elements = []; + + // Define & Cache Initials & Units + a.elements.each(function (index, el) { + var initialFullValue; + var initialValue; + var unit; + var finalValue; + var finalFullValue; + + if (!el.dom7AnimateInstance) { a.elements[index].dom7AnimateInstance = a; } + + elements[index] = { + container: el, + }; + Object.keys(props).forEach(function (prop) { + initialFullValue = win.getComputedStyle(el, null).getPropertyValue(prop).replace(',', '.'); + initialValue = parseFloat(initialFullValue); + unit = initialFullValue.replace(initialValue, ''); + finalValue = parseFloat(props[prop]); + finalFullValue = props[prop] + unit; + elements[index][prop] = { + initialFullValue: initialFullValue, + initialValue: initialValue, + unit: unit, + finalValue: finalValue, + finalFullValue: finalFullValue, + currentValue: initialValue, + }; + }); + }); + + var startTime = null; + var time; + var elementsDone = 0; + var propsDone = 0; + var done; + var began = false; + + a.animating = true; + + function render() { + time = new Date().getTime(); + var progress; + var easeProgress; + // let el; + if (!began) { + began = true; + if (params.begin) { params.begin(els); } + } + if (startTime === null) { + startTime = time; + } + if (params.progress) { + // eslint-disable-next-line + params.progress(els, Math.max(Math.min((time - startTime) / params.duration, 1), 0), ((startTime + params.duration) - time < 0 ? 0 : (startTime + params.duration) - time), startTime); + } + + elements.forEach(function (element) { + var el = element; + if (done || el.done) { return; } + Object.keys(props).forEach(function (prop) { + if (done || el.done) { return; } + progress = Math.max(Math.min((time - startTime) / params.duration, 1), 0); + easeProgress = a.easingProgress(params.easing, progress); + var ref = el[prop]; + var initialValue = ref.initialValue; + var finalValue = ref.finalValue; + var unit = ref.unit; + el[prop].currentValue = initialValue + (easeProgress * (finalValue - initialValue)); + var currentValue = el[prop].currentValue; + + if ( + (finalValue > initialValue && currentValue >= finalValue) || + (finalValue < initialValue && currentValue <= finalValue)) { + el.container.style[prop] = finalValue + unit; + propsDone += 1; + if (propsDone === Object.keys(props).length) { + el.done = true; + elementsDone += 1; + } + if (elementsDone === elements.length) { + done = true; + } + } + if (done) { + a.done(params.complete); + return; + } + el.container.style[prop] = currentValue + unit; + }); + }); + if (done) { return; } + // Then call + a.frameId = requestAnimationFrame(render); + } + a.frameId = requestAnimationFrame(render); + return a; + }, + }; + + if (a.elements.length === 0) { + return els; + } + + var animateInstance; + for (var i = 0; i < a.elements.length; i += 1) { + if (a.elements[i].dom7AnimateInstance) { + animateInstance = a.elements[i].dom7AnimateInstance; + } else { a.elements[i].dom7AnimateInstance = a; } + } + if (!animateInstance) { + animateInstance = a; + } + + if (initialProps === 'stop') { + animateInstance.stop(); + } else { + animateInstance.animate(a.props, a.params); + } + + return els; + } + + function stop() { + var els = this; + for (var i = 0; i < els.length; i += 1) { + if (els[i].dom7AnimateInstance) { + els[i].dom7AnimateInstance.stop(); + } + } + } + + var Animate = /*#__PURE__*/Object.freeze({ + animate: animate, + stop: stop + }); + + var noTrigger = ('resize scroll').split(' '); + function eventShortcut(name) { + var ref; + + var args = [], len = arguments.length - 1; + while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ]; + if (typeof args[0] === 'undefined') { + for (var i = 0; i < this.length; i += 1) { + if (noTrigger.indexOf(name) < 0) { + if (name in this[i]) { this[i][name](); } + else { + $(this[i]).trigger(name); + } + } + } + return this; + } + return (ref = this).on.apply(ref, [ name ].concat( args )); + } + + function click() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return eventShortcut.bind(this).apply(void 0, [ 'click' ].concat( args )); + } + function blur() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return eventShortcut.bind(this).apply(void 0, [ 'blur' ].concat( args )); + } + function focus() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return eventShortcut.bind(this).apply(void 0, [ 'focus' ].concat( args )); + } + function focusin() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return eventShortcut.bind(this).apply(void 0, [ 'focusin' ].concat( args )); + } + function focusout() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return eventShortcut.bind(this).apply(void 0, [ 'focusout' ].concat( args )); + } + function keyup() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return eventShortcut.bind(this).apply(void 0, [ 'keyup' ].concat( args )); + } + function keydown() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return eventShortcut.bind(this).apply(void 0, [ 'keydown' ].concat( args )); + } + function keypress() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return eventShortcut.bind(this).apply(void 0, [ 'keypress' ].concat( args )); + } + function submit() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return eventShortcut.bind(this).apply(void 0, [ 'submit' ].concat( args )); + } + function change() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return eventShortcut.bind(this).apply(void 0, [ 'change' ].concat( args )); + } + function mousedown() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return eventShortcut.bind(this).apply(void 0, [ 'mousedown' ].concat( args )); + } + function mousemove() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return eventShortcut.bind(this).apply(void 0, [ 'mousemove' ].concat( args )); + } + function mouseup() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return eventShortcut.bind(this).apply(void 0, [ 'mouseup' ].concat( args )); + } + function mouseenter() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return eventShortcut.bind(this).apply(void 0, [ 'mouseenter' ].concat( args )); + } + function mouseleave() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return eventShortcut.bind(this).apply(void 0, [ 'mouseleave' ].concat( args )); + } + function mouseout() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return eventShortcut.bind(this).apply(void 0, [ 'mouseout' ].concat( args )); + } + function mouseover() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return eventShortcut.bind(this).apply(void 0, [ 'mouseover' ].concat( args )); + } + function touchstart() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return eventShortcut.bind(this).apply(void 0, [ 'touchstart' ].concat( args )); + } + function touchend() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return eventShortcut.bind(this).apply(void 0, [ 'touchend' ].concat( args )); + } + function touchmove() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return eventShortcut.bind(this).apply(void 0, [ 'touchmove' ].concat( args )); + } + function resize() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return eventShortcut.bind(this).apply(void 0, [ 'resize' ].concat( args )); + } + function scroll() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return eventShortcut.bind(this).apply(void 0, [ 'scroll' ].concat( args )); + } + + var eventShortcuts = /*#__PURE__*/Object.freeze({ + click: click, + blur: blur, + focus: focus, + focusin: focusin, + focusout: focusout, + keyup: keyup, + keydown: keydown, + keypress: keypress, + submit: submit, + change: change, + mousedown: mousedown, + mousemove: mousemove, + mouseup: mouseup, + mouseenter: mouseenter, + mouseleave: mouseleave, + mouseout: mouseout, + mouseover: mouseover, + touchstart: touchstart, + touchend: touchend, + touchmove: touchmove, + resize: resize, + scroll: scroll + }); + + [Methods, Scroll, Animate, eventShortcuts].forEach(function (group) { + Object.keys(group).forEach(function (methodName) { + $.fn[methodName] = group[methodName]; + }); + }); + + /* eslint no-control-regex: "off" */ + + // Remove Diacritics + var defaultDiacriticsRemovalap = [ + { base: 'A', letters: '\u0041\u24B6\uFF21\u00C0\u00C1\u00C2\u1EA6\u1EA4\u1EAA\u1EA8\u00C3\u0100\u0102\u1EB0\u1EAE\u1EB4\u1EB2\u0226\u01E0\u00C4\u01DE\u1EA2\u00C5\u01FA\u01CD\u0200\u0202\u1EA0\u1EAC\u1EB6\u1E00\u0104\u023A\u2C6F' }, + { base: 'AA', letters: '\uA732' }, + { base: 'AE', letters: '\u00C6\u01FC\u01E2' }, + { base: 'AO', letters: '\uA734' }, + { base: 'AU', letters: '\uA736' }, + { base: 'AV', letters: '\uA738\uA73A' }, + { base: 'AY', letters: '\uA73C' }, + { base: 'B', letters: '\u0042\u24B7\uFF22\u1E02\u1E04\u1E06\u0243\u0182\u0181' }, + { base: 'C', letters: '\u0043\u24B8\uFF23\u0106\u0108\u010A\u010C\u00C7\u1E08\u0187\u023B\uA73E' }, + { base: 'D', letters: '\u0044\u24B9\uFF24\u1E0A\u010E\u1E0C\u1E10\u1E12\u1E0E\u0110\u018B\u018A\u0189\uA779' }, + { base: 'DZ', letters: '\u01F1\u01C4' }, + { base: 'Dz', letters: '\u01F2\u01C5' }, + { base: 'E', letters: '\u0045\u24BA\uFF25\u00C8\u00C9\u00CA\u1EC0\u1EBE\u1EC4\u1EC2\u1EBC\u0112\u1E14\u1E16\u0114\u0116\u00CB\u1EBA\u011A\u0204\u0206\u1EB8\u1EC6\u0228\u1E1C\u0118\u1E18\u1E1A\u0190\u018E' }, + { base: 'F', letters: '\u0046\u24BB\uFF26\u1E1E\u0191\uA77B' }, + { base: 'G', letters: '\u0047\u24BC\uFF27\u01F4\u011C\u1E20\u011E\u0120\u01E6\u0122\u01E4\u0193\uA7A0\uA77D\uA77E' }, + { base: 'H', letters: '\u0048\u24BD\uFF28\u0124\u1E22\u1E26\u021E\u1E24\u1E28\u1E2A\u0126\u2C67\u2C75\uA78D' }, + { base: 'I', letters: '\u0049\u24BE\uFF29\u00CC\u00CD\u00CE\u0128\u012A\u012C\u0130\u00CF\u1E2E\u1EC8\u01CF\u0208\u020A\u1ECA\u012E\u1E2C\u0197' }, + { base: 'J', letters: '\u004A\u24BF\uFF2A\u0134\u0248' }, + { base: 'K', letters: '\u004B\u24C0\uFF2B\u1E30\u01E8\u1E32\u0136\u1E34\u0198\u2C69\uA740\uA742\uA744\uA7A2' }, + { base: 'L', letters: '\u004C\u24C1\uFF2C\u013F\u0139\u013D\u1E36\u1E38\u013B\u1E3C\u1E3A\u0141\u023D\u2C62\u2C60\uA748\uA746\uA780' }, + { base: 'LJ', letters: '\u01C7' }, + { base: 'Lj', letters: '\u01C8' }, + { base: 'M', letters: '\u004D\u24C2\uFF2D\u1E3E\u1E40\u1E42\u2C6E\u019C' }, + { base: 'N', letters: '\u004E\u24C3\uFF2E\u01F8\u0143\u00D1\u1E44\u0147\u1E46\u0145\u1E4A\u1E48\u0220\u019D\uA790\uA7A4' }, + { base: 'NJ', letters: '\u01CA' }, + { base: 'Nj', letters: '\u01CB' }, + { base: 'O', letters: '\u004F\u24C4\uFF2F\u00D2\u00D3\u00D4\u1ED2\u1ED0\u1ED6\u1ED4\u00D5\u1E4C\u022C\u1E4E\u014C\u1E50\u1E52\u014E\u022E\u0230\u00D6\u022A\u1ECE\u0150\u01D1\u020C\u020E\u01A0\u1EDC\u1EDA\u1EE0\u1EDE\u1EE2\u1ECC\u1ED8\u01EA\u01EC\u00D8\u01FE\u0186\u019F\uA74A\uA74C' }, + { base: 'OI', letters: '\u01A2' }, + { base: 'OO', letters: '\uA74E' }, + { base: 'OU', letters: '\u0222' }, + { base: 'OE', letters: '\u008C\u0152' }, + { base: 'oe', letters: '\u009C\u0153' }, + { base: 'P', letters: '\u0050\u24C5\uFF30\u1E54\u1E56\u01A4\u2C63\uA750\uA752\uA754' }, + { base: 'Q', letters: '\u0051\u24C6\uFF31\uA756\uA758\u024A' }, + { base: 'R', letters: '\u0052\u24C7\uFF32\u0154\u1E58\u0158\u0210\u0212\u1E5A\u1E5C\u0156\u1E5E\u024C\u2C64\uA75A\uA7A6\uA782' }, + { base: 'S', letters: '\u0053\u24C8\uFF33\u1E9E\u015A\u1E64\u015C\u1E60\u0160\u1E66\u1E62\u1E68\u0218\u015E\u2C7E\uA7A8\uA784' }, + { base: 'T', letters: '\u0054\u24C9\uFF34\u1E6A\u0164\u1E6C\u021A\u0162\u1E70\u1E6E\u0166\u01AC\u01AE\u023E\uA786' }, + { base: 'TZ', letters: '\uA728' }, + { base: 'U', letters: '\u0055\u24CA\uFF35\u00D9\u00DA\u00DB\u0168\u1E78\u016A\u1E7A\u016C\u00DC\u01DB\u01D7\u01D5\u01D9\u1EE6\u016E\u0170\u01D3\u0214\u0216\u01AF\u1EEA\u1EE8\u1EEE\u1EEC\u1EF0\u1EE4\u1E72\u0172\u1E76\u1E74\u0244' }, + { base: 'V', letters: '\u0056\u24CB\uFF36\u1E7C\u1E7E\u01B2\uA75E\u0245' }, + { base: 'VY', letters: '\uA760' }, + { base: 'W', letters: '\u0057\u24CC\uFF37\u1E80\u1E82\u0174\u1E86\u1E84\u1E88\u2C72' }, + { base: 'X', letters: '\u0058\u24CD\uFF38\u1E8A\u1E8C' }, + { base: 'Y', letters: '\u0059\u24CE\uFF39\u1EF2\u00DD\u0176\u1EF8\u0232\u1E8E\u0178\u1EF6\u1EF4\u01B3\u024E\u1EFE' }, + { base: 'Z', letters: '\u005A\u24CF\uFF3A\u0179\u1E90\u017B\u017D\u1E92\u1E94\u01B5\u0224\u2C7F\u2C6B\uA762' }, + { base: 'a', letters: '\u0061\u24D0\uFF41\u1E9A\u00E0\u00E1\u00E2\u1EA7\u1EA5\u1EAB\u1EA9\u00E3\u0101\u0103\u1EB1\u1EAF\u1EB5\u1EB3\u0227\u01E1\u00E4\u01DF\u1EA3\u00E5\u01FB\u01CE\u0201\u0203\u1EA1\u1EAD\u1EB7\u1E01\u0105\u2C65\u0250' }, + { base: 'aa', letters: '\uA733' }, + { base: 'ae', letters: '\u00E6\u01FD\u01E3' }, + { base: 'ao', letters: '\uA735' }, + { base: 'au', letters: '\uA737' }, + { base: 'av', letters: '\uA739\uA73B' }, + { base: 'ay', letters: '\uA73D' }, + { base: 'b', letters: '\u0062\u24D1\uFF42\u1E03\u1E05\u1E07\u0180\u0183\u0253' }, + { base: 'c', letters: '\u0063\u24D2\uFF43\u0107\u0109\u010B\u010D\u00E7\u1E09\u0188\u023C\uA73F\u2184' }, + { base: 'd', letters: '\u0064\u24D3\uFF44\u1E0B\u010F\u1E0D\u1E11\u1E13\u1E0F\u0111\u018C\u0256\u0257\uA77A' }, + { base: 'dz', letters: '\u01F3\u01C6' }, + { base: 'e', letters: '\u0065\u24D4\uFF45\u00E8\u00E9\u00EA\u1EC1\u1EBF\u1EC5\u1EC3\u1EBD\u0113\u1E15\u1E17\u0115\u0117\u00EB\u1EBB\u011B\u0205\u0207\u1EB9\u1EC7\u0229\u1E1D\u0119\u1E19\u1E1B\u0247\u025B\u01DD' }, + { base: 'f', letters: '\u0066\u24D5\uFF46\u1E1F\u0192\uA77C' }, + { base: 'g', letters: '\u0067\u24D6\uFF47\u01F5\u011D\u1E21\u011F\u0121\u01E7\u0123\u01E5\u0260\uA7A1\u1D79\uA77F' }, + { base: 'h', letters: '\u0068\u24D7\uFF48\u0125\u1E23\u1E27\u021F\u1E25\u1E29\u1E2B\u1E96\u0127\u2C68\u2C76\u0265' }, + { base: 'hv', letters: '\u0195' }, + { base: 'i', letters: '\u0069\u24D8\uFF49\u00EC\u00ED\u00EE\u0129\u012B\u012D\u00EF\u1E2F\u1EC9\u01D0\u0209\u020B\u1ECB\u012F\u1E2D\u0268\u0131' }, + { base: 'j', letters: '\u006A\u24D9\uFF4A\u0135\u01F0\u0249' }, + { base: 'k', letters: '\u006B\u24DA\uFF4B\u1E31\u01E9\u1E33\u0137\u1E35\u0199\u2C6A\uA741\uA743\uA745\uA7A3' }, + { base: 'l', letters: '\u006C\u24DB\uFF4C\u0140\u013A\u013E\u1E37\u1E39\u013C\u1E3D\u1E3B\u017F\u0142\u019A\u026B\u2C61\uA749\uA781\uA747' }, + { base: 'lj', letters: '\u01C9' }, + { base: 'm', letters: '\u006D\u24DC\uFF4D\u1E3F\u1E41\u1E43\u0271\u026F' }, + { base: 'n', letters: '\u006E\u24DD\uFF4E\u01F9\u0144\u00F1\u1E45\u0148\u1E47\u0146\u1E4B\u1E49\u019E\u0272\u0149\uA791\uA7A5' }, + { base: 'nj', letters: '\u01CC' }, + { base: 'o', letters: '\u006F\u24DE\uFF4F\u00F2\u00F3\u00F4\u1ED3\u1ED1\u1ED7\u1ED5\u00F5\u1E4D\u022D\u1E4F\u014D\u1E51\u1E53\u014F\u022F\u0231\u00F6\u022B\u1ECF\u0151\u01D2\u020D\u020F\u01A1\u1EDD\u1EDB\u1EE1\u1EDF\u1EE3\u1ECD\u1ED9\u01EB\u01ED\u00F8\u01FF\u0254\uA74B\uA74D\u0275' }, + { base: 'oi', letters: '\u01A3' }, + { base: 'ou', letters: '\u0223' }, + { base: 'oo', letters: '\uA74F' }, + { base: 'p', letters: '\u0070\u24DF\uFF50\u1E55\u1E57\u01A5\u1D7D\uA751\uA753\uA755' }, + { base: 'q', letters: '\u0071\u24E0\uFF51\u024B\uA757\uA759' }, + { base: 'r', letters: '\u0072\u24E1\uFF52\u0155\u1E59\u0159\u0211\u0213\u1E5B\u1E5D\u0157\u1E5F\u024D\u027D\uA75B\uA7A7\uA783' }, + { base: 's', letters: '\u0073\u24E2\uFF53\u00DF\u015B\u1E65\u015D\u1E61\u0161\u1E67\u1E63\u1E69\u0219\u015F\u023F\uA7A9\uA785\u1E9B' }, + { base: 't', letters: '\u0074\u24E3\uFF54\u1E6B\u1E97\u0165\u1E6D\u021B\u0163\u1E71\u1E6F\u0167\u01AD\u0288\u2C66\uA787' }, + { base: 'tz', letters: '\uA729' }, + { base: 'u', letters: '\u0075\u24E4\uFF55\u00F9\u00FA\u00FB\u0169\u1E79\u016B\u1E7B\u016D\u00FC\u01DC\u01D8\u01D6\u01DA\u1EE7\u016F\u0171\u01D4\u0215\u0217\u01B0\u1EEB\u1EE9\u1EEF\u1EED\u1EF1\u1EE5\u1E73\u0173\u1E77\u1E75\u0289' }, + { base: 'v', letters: '\u0076\u24E5\uFF56\u1E7D\u1E7F\u028B\uA75F\u028C' }, + { base: 'vy', letters: '\uA761' }, + { base: 'w', letters: '\u0077\u24E6\uFF57\u1E81\u1E83\u0175\u1E87\u1E85\u1E98\u1E89\u2C73' }, + { base: 'x', letters: '\u0078\u24E7\uFF58\u1E8B\u1E8D' }, + { base: 'y', letters: '\u0079\u24E8\uFF59\u1EF3\u00FD\u0177\u1EF9\u0233\u1E8F\u00FF\u1EF7\u1E99\u1EF5\u01B4\u024F\u1EFF' }, + { base: 'z', letters: '\u007A\u24E9\uFF5A\u017A\u1E91\u017C\u017E\u1E93\u1E95\u01B6\u0225\u0240\u2C6C\uA763' } ]; + + var diacriticsMap = {}; + for (var i = 0; i < defaultDiacriticsRemovalap.length; i += 1) { + var letters = defaultDiacriticsRemovalap[i].letters; + for (var j = 0; j < letters.length; j += 1) { + diacriticsMap[letters[j]] = defaultDiacriticsRemovalap[i].base; + } + } + + var uniqueNumber = 1; + + var Utils = { + uniqueNumber: function uniqueNumber$1() { + uniqueNumber += 1; + return uniqueNumber; + }, + id: function id(mask, map) { + if ( mask === void 0 ) mask = 'xxxxxxxxxx'; + if ( map === void 0 ) map = '0123456789abcdef'; + + var length = map.length; + return mask.replace(/x/g, function () { return map[Math.floor((Math.random() * length))]; }); + }, + mdPreloaderContent: "\n \n \n \n \n \n \n \n \n \n ".trim(), + iosPreloaderContent: ("\n \n " + ([0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11].map(function () { return ''; }).join('')) + "\n \n ").trim(), + auroraPreloaderContent: "\n \n \n \n ", + eventNameToColonCase: function eventNameToColonCase(eventName) { + var hasColon; + return eventName.split('').map(function (char, index) { + if (char.match(/[A-Z]/) && index !== 0 && !hasColon) { + hasColon = true; + return (":" + (char.toLowerCase())); + } + return char.toLowerCase(); + }).join(''); + }, + deleteProps: function deleteProps(obj) { + var object = obj; + Object.keys(object).forEach(function (key) { + try { + object[key] = null; + } catch (e) { + // no setter for object + } + try { + delete object[key]; + } catch (e) { + // something got wrong + } + }); + }, + nextTick: function nextTick(callback, delay) { + if ( delay === void 0 ) delay = 0; + + return setTimeout(callback, delay); + }, + nextFrame: function nextFrame(callback) { + return Utils.requestAnimationFrame(function () { + Utils.requestAnimationFrame(callback); + }); + }, + now: function now() { + return Date.now(); + }, + requestAnimationFrame: function requestAnimationFrame(callback) { + return win.requestAnimationFrame(callback); + }, + cancelAnimationFrame: function cancelAnimationFrame(id) { + return win.cancelAnimationFrame(id); + }, + removeDiacritics: function removeDiacritics(str) { + return str.replace(/[^\u0000-\u007E]/g, function (a) { return diacriticsMap[a] || a; }); + }, + parseUrlQuery: function parseUrlQuery(url) { + var query = {}; + var urlToParse = url || win.location.href; + var i; + var params; + var param; + var length; + if (typeof urlToParse === 'string' && urlToParse.length) { + urlToParse = urlToParse.indexOf('?') > -1 ? urlToParse.replace(/\S*\?/, '') : ''; + params = urlToParse.split('&').filter(function (paramsPart) { return paramsPart !== ''; }); + length = params.length; + + for (i = 0; i < length; i += 1) { + param = params[i].replace(/#\S+/g, '').split('='); + query[decodeURIComponent(param[0])] = typeof param[1] === 'undefined' ? undefined : decodeURIComponent(param.slice(1).join('=')) || ''; + } + } + return query; + }, + getTranslate: function getTranslate(el, axis) { + if ( axis === void 0 ) axis = 'x'; + + var matrix; + var curTransform; + var transformMatrix; + + var curStyle = win.getComputedStyle(el, null); + + if (win.WebKitCSSMatrix) { + curTransform = curStyle.transform || curStyle.webkitTransform; + if (curTransform.split(',').length > 6) { + curTransform = curTransform.split(', ').map(function (a) { return a.replace(',', '.'); }).join(', '); + } + // Some old versions of Webkit choke when 'none' is passed; pass + // empty string instead in this case + transformMatrix = new win.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform); + } else { + transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,'); + matrix = transformMatrix.toString().split(','); + } + + if (axis === 'x') { + // Latest Chrome and webkits Fix + if (win.WebKitCSSMatrix) { curTransform = transformMatrix.m41; } + // Crazy IE10 Matrix + else if (matrix.length === 16) { curTransform = parseFloat(matrix[12]); } + // Normal Browsers + else { curTransform = parseFloat(matrix[4]); } + } + if (axis === 'y') { + // Latest Chrome and webkits Fix + if (win.WebKitCSSMatrix) { curTransform = transformMatrix.m42; } + // Crazy IE10 Matrix + else if (matrix.length === 16) { curTransform = parseFloat(matrix[13]); } + // Normal Browsers + else { curTransform = parseFloat(matrix[5]); } + } + return curTransform || 0; + }, + serializeObject: function serializeObject(obj, parents) { + if ( parents === void 0 ) parents = []; + + if (typeof obj === 'string') { return obj; } + var resultArray = []; + var separator = '&'; + var newParents; + function varName(name) { + if (parents.length > 0) { + var parentParts = ''; + for (var j = 0; j < parents.length; j += 1) { + if (j === 0) { parentParts += parents[j]; } + else { parentParts += "[" + (encodeURIComponent(parents[j])) + "]"; } + } + return (parentParts + "[" + (encodeURIComponent(name)) + "]"); + } + return encodeURIComponent(name); + } + function varValue(value) { + return encodeURIComponent(value); + } + Object.keys(obj).forEach(function (prop) { + var toPush; + if (Array.isArray(obj[prop])) { + toPush = []; + for (var i = 0; i < obj[prop].length; i += 1) { + if (!Array.isArray(obj[prop][i]) && typeof obj[prop][i] === 'object') { + newParents = parents.slice(); + newParents.push(prop); + newParents.push(String(i)); + toPush.push(Utils.serializeObject(obj[prop][i], newParents)); + } else { + toPush.push(((varName(prop)) + "[]=" + (varValue(obj[prop][i])))); + } + } + if (toPush.length > 0) { resultArray.push(toPush.join(separator)); } + } else if (obj[prop] === null || obj[prop] === '') { + resultArray.push(((varName(prop)) + "=")); + } else if (typeof obj[prop] === 'object') { + // Object, convert to named array + newParents = parents.slice(); + newParents.push(prop); + toPush = Utils.serializeObject(obj[prop], newParents); + if (toPush !== '') { resultArray.push(toPush); } + } else if (typeof obj[prop] !== 'undefined' && obj[prop] !== '') { + // Should be string or plain value + resultArray.push(((varName(prop)) + "=" + (varValue(obj[prop])))); + } else if (obj[prop] === '') { resultArray.push(varName(prop)); } + }); + return resultArray.join(separator); + }, + isObject: function isObject(o) { + return typeof o === 'object' && o !== null && o.constructor && o.constructor === Object; + }, + merge: function merge() { + var args = [], len$1 = arguments.length; + while ( len$1-- ) args[ len$1 ] = arguments[ len$1 ]; + + var to = args[0]; + args.splice(0, 1); + var from = args; + + for (var i = 0; i < from.length; i += 1) { + var nextSource = args[i]; + if (nextSource !== undefined && nextSource !== null) { + var keysArray = Object.keys(Object(nextSource)); + for (var nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) { + var nextKey = keysArray[nextIndex]; + var desc = Object.getOwnPropertyDescriptor(nextSource, nextKey); + if (desc !== undefined && desc.enumerable) { + to[nextKey] = nextSource[nextKey]; + } + } + } + } + return to; + }, + extend: function extend() { + var args = [], len$1 = arguments.length; + while ( len$1-- ) args[ len$1 ] = arguments[ len$1 ]; + + var deep = true; + var to; + var from; + if (typeof args[0] === 'boolean') { + deep = args[0]; + to = args[1]; + args.splice(0, 2); + from = args; + } else { + to = args[0]; + args.splice(0, 1); + from = args; + } + for (var i = 0; i < from.length; i += 1) { + var nextSource = args[i]; + if (nextSource !== undefined && nextSource !== null) { + var keysArray = Object.keys(Object(nextSource)); + for (var nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) { + var nextKey = keysArray[nextIndex]; + var desc = Object.getOwnPropertyDescriptor(nextSource, nextKey); + if (desc !== undefined && desc.enumerable) { + if (!deep) { + to[nextKey] = nextSource[nextKey]; + } else if (Utils.isObject(to[nextKey]) && Utils.isObject(nextSource[nextKey])) { + Utils.extend(to[nextKey], nextSource[nextKey]); + } else if (!Utils.isObject(to[nextKey]) && Utils.isObject(nextSource[nextKey])) { + to[nextKey] = {}; + Utils.extend(to[nextKey], nextSource[nextKey]); + } else { + to[nextKey] = nextSource[nextKey]; + } + } + } + } + } + return to; + }, + colorHexToRgb: function colorHexToRgb(hex) { + var h = hex.replace(/^#?([a-f\d])([a-f\d])([a-f\d])$/i, function (m, r, g, b) { return r + r + g + g + b + b; }); + var result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(h); + return result + ? result.slice(1).map(function (n) { return parseInt(n, 16); }) + : null; + }, + colorRgbToHex: function colorRgbToHex(r, g, b) { + var result = [r, g, b].map(function (n) { + var hex = n.toString(16); + return hex.length === 1 ? ("0" + hex) : hex; + }).join(''); + return ("#" + result); + }, + colorRgbToHsl: function colorRgbToHsl(r, g, b) { + r /= 255; // eslint-disable-line + g /= 255; // eslint-disable-line + b /= 255; // eslint-disable-line + var max = Math.max(r, g, b); + var min = Math.min(r, g, b); + var d = max - min; + var h; + if (d === 0) { h = 0; } + else if (max === r) { h = ((g - b) / d) % 6; } + else if (max === g) { h = (b - r) / d + 2; } + else if (max === b) { h = (r - g) / d + 4; } + var l = (min + max) / 2; + var s = d === 0 ? 0 : d / (1 - Math.abs(2 * l - 1)); + if (h < 0) { h = 360 / 60 + h; } + return [h * 60, s, l]; + }, + colorHslToRgb: function colorHslToRgb(h, s, l) { + var c = (1 - Math.abs(2 * l - 1)) * s; + var hp = h / 60; + var x = c * (1 - Math.abs((hp % 2) - 1)); + var rgb1; + if (Number.isNaN(h) || typeof h === 'undefined') { + rgb1 = [0, 0, 0]; + } else if (hp <= 1) { rgb1 = [c, x, 0]; } + else if (hp <= 2) { rgb1 = [x, c, 0]; } + else if (hp <= 3) { rgb1 = [0, c, x]; } + else if (hp <= 4) { rgb1 = [0, x, c]; } + else if (hp <= 5) { rgb1 = [x, 0, c]; } + else if (hp <= 6) { rgb1 = [c, 0, x]; } + var m = l - (c / 2); + return rgb1.map(function (n) { return Math.max(0, Math.min(255, Math.round(255 * (n + m)))); }); + }, + colorHsbToHsl: function colorHsbToHsl(h, s, b) { + var HSL = { + h: h, + s: 0, + l: 0, + }; + var HSB = { h: h, s: s, b: b }; + + HSL.l = (2 - HSB.s) * HSB.b / 2; + HSL.s = HSL.l && HSL.l < 1 ? HSB.s * HSB.b / (HSL.l < 0.5 ? HSL.l * 2 : 2 - HSL.l * 2) : HSL.s; + + return [HSL.h, HSL.s, HSL.l]; + }, + colorHslToHsb: function colorHslToHsb(h, s, l) { + var HSB = { + h: h, + s: 0, + b: 0, + }; + var HSL = { h: h, s: s, l: l }; + + var t = HSL.s * (HSL.l < 0.5 ? HSL.l : 1 - HSL.l); + HSB.b = HSL.l + t; + HSB.s = HSL.l > 0 ? 2 * t / HSB.b : HSB.s; + + return [HSB.h, HSB.s, HSB.b]; + }, + colorThemeCSSProperties: function colorThemeCSSProperties() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + var hex; + var rgb; + if (args.length === 1) { + hex = args[0]; + rgb = Utils.colorHexToRgb(hex); + } else if (args.length === 3) { + rgb = args; + hex = Utils.colorRgbToHex.apply(Utils, rgb); + } + if (!rgb) { return {}; } + var hsl = Utils.colorRgbToHsl.apply(Utils, rgb); + var hslShade = [hsl[0], hsl[1], Math.max(0, (hsl[2] - 0.08))]; + var hslTint = [hsl[0], hsl[1], Math.max(0, (hsl[2] + 0.08))]; + var shade = Utils.colorRgbToHex.apply(Utils, Utils.colorHslToRgb.apply(Utils, hslShade)); + var tint = Utils.colorRgbToHex.apply(Utils, Utils.colorHslToRgb.apply(Utils, hslTint)); + return { + '--f7-theme-color': hex, + '--f7-theme-color-rgb': rgb.join(', '), + '--f7-theme-color-shade': shade, + '--f7-theme-color-tint': tint, + }; + }, + }; + + var Support = (function Support() { + return { + touch: !!(('ontouchstart' in win) || (win.DocumentTouch && doc instanceof win.DocumentTouch)), + + pointerEvents: !!win.PointerEvent && ('maxTouchPoints' in win.navigator) && win.navigator.maxTouchPoints >= 0, + + observer: (function checkObserver() { + return ('MutationObserver' in win || 'WebkitMutationObserver' in win); + }()), + + passiveListener: (function checkPassiveListener() { + var supportsPassive = false; + try { + var opts = Object.defineProperty({}, 'passive', { + // eslint-disable-next-line + get: function get() { + supportsPassive = true; + }, + }); + win.addEventListener('testPassiveListener', null, opts); + } catch (e) { + // No support + } + return supportsPassive; + }()), + + gestures: (function checkGestures() { + return 'ongesturestart' in win; + }()), + + intersectionObserver: (function checkObserver() { + return ('IntersectionObserver' in win); + }()), + }; + }()); + + var Device = (function Device() { + var platform = win.navigator.platform; + var ua = win.navigator.userAgent; + + var device = { + ios: false, + android: false, + androidChrome: false, + desktop: false, + iphone: false, + ipod: false, + ipad: false, + edge: false, + ie: false, + firefox: false, + macos: false, + windows: false, + cordova: !!(win.cordova || win.phonegap), + phonegap: !!(win.cordova || win.phonegap), + electron: false, + nwjs: false, + }; + + var screenWidth = win.screen.width; + var screenHeight = win.screen.height; + + var android = ua.match(/(Android);?[\s\/]+([\d.]+)?/); // eslint-disable-line + var ipad = ua.match(/(iPad).*OS\s([\d_]+)/); + var ipod = ua.match(/(iPod)(.*OS\s([\d_]+))?/); + var iphone = !ipad && ua.match(/(iPhone\sOS|iOS)\s([\d_]+)/); + var ie = ua.indexOf('MSIE ') >= 0 || ua.indexOf('Trident/') >= 0; + var edge = ua.indexOf('Edge/') >= 0; + var firefox = ua.indexOf('Gecko/') >= 0 && ua.indexOf('Firefox/') >= 0; + var windows = platform === 'Win32'; + var electron = ua.toLowerCase().indexOf('electron') >= 0; + var nwjs = typeof nw !== 'undefined' && typeof process !== 'undefined' && typeof process.versions !== 'undefined' && typeof process.versions.nw !== 'undefined'; + var macos = platform === 'MacIntel'; + + // iPadOs 13 fix + var iPadScreens = [ + '1024x1366', + '1366x1024', + '834x1194', + '1194x834', + '834x1112', + '1112x834', + '768x1024', + '1024x768', + '820x1180', + '1180x820', + '810x1080', + '1080x810' ]; + if (!ipad + && macos + && Support.touch + && iPadScreens.indexOf((screenWidth + "x" + screenHeight)) >= 0 + ) { + ipad = ua.match(/(Version)\/([\d.]+)/); + if (!ipad) { ipad = [0, 1, '13_0_0']; } + macos = false; + } + + device.ie = ie; + device.edge = edge; + device.firefox = firefox; + + // Android + if (android && !windows) { + device.os = 'android'; + device.osVersion = android[2]; + device.android = true; + device.androidChrome = ua.toLowerCase().indexOf('chrome') >= 0; + } + if (ipad || iphone || ipod) { + device.os = 'ios'; + device.ios = true; + } + // iOS + if (iphone && !ipod) { + device.osVersion = iphone[2].replace(/_/g, '.'); + device.iphone = true; + } + if (ipad) { + device.osVersion = ipad[2].replace(/_/g, '.'); + device.ipad = true; + } + if (ipod) { + device.osVersion = ipod[3] ? ipod[3].replace(/_/g, '.') : null; + device.ipod = true; + } + // iOS 8+ changed UA + if (device.ios && device.osVersion && ua.indexOf('Version/') >= 0) { + if (device.osVersion.split('.')[0] === '10') { + device.osVersion = ua.toLowerCase().split('version/')[1].split(' ')[0]; + } + } + + // Webview + device.webView = !!((iphone || ipad || ipod) && (ua.match(/.*AppleWebKit(?!.*Safari)/i) || win.navigator.standalone)) + || (win.matchMedia && win.matchMedia('(display-mode: standalone)').matches); + device.webview = device.webView; + device.standalone = device.webView; + + // Desktop + device.desktop = !(device.ios || device.android) || electron || nwjs; + if (device.desktop) { + device.electron = electron; + device.nwjs = nwjs; + device.macos = macos; + device.windows = windows; + if (device.macos) { + device.os = 'macos'; + } + if (device.windows) { + device.os = 'windows'; + } + } + + // Pixel Ratio + device.pixelRatio = win.devicePixelRatio || 1; + + // Color Scheme + var DARK = '(prefers-color-scheme: dark)'; + var LIGHT = '(prefers-color-scheme: light)'; + device.prefersColorScheme = function prefersColorTheme() { + var theme; + if (win.matchMedia && win.matchMedia(LIGHT).matches) { + theme = 'light'; + } + if (win.matchMedia && win.matchMedia(DARK).matches) { + theme = 'dark'; + } + return theme; + }; + + // Export object + return device; + }()); + + var EventsClass = function EventsClass(parents) { + if ( parents === void 0 ) parents = []; + + var self = this; + self.eventsParents = parents; + self.eventsListeners = {}; + }; + + EventsClass.prototype.on = function on (events, handler, priority) { + var self = this; + if (typeof handler !== 'function') { return self; } + var method = priority ? 'unshift' : 'push'; + events.split(' ').forEach(function (event) { + if (!self.eventsListeners[event]) { self.eventsListeners[event] = []; } + self.eventsListeners[event][method](handler); + }); + return self; + }; + + EventsClass.prototype.once = function once (events, handler, priority) { + var self = this; + if (typeof handler !== 'function') { return self; } + function onceHandler() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + self.off(events, onceHandler); + if (onceHandler.f7proxy) { + delete onceHandler.f7proxy; + } + handler.apply(self, args); + } + onceHandler.f7proxy = handler; + return self.on(events, onceHandler, priority); + }; + + EventsClass.prototype.off = function off (events, handler) { + var self = this; + if (!self.eventsListeners) { return self; } + events.split(' ').forEach(function (event) { + if (typeof handler === 'undefined') { + self.eventsListeners[event] = []; + } else if (self.eventsListeners[event]) { + self.eventsListeners[event].forEach(function (eventHandler, index) { + if (eventHandler === handler || (eventHandler.f7proxy && eventHandler.f7proxy === handler)) { + self.eventsListeners[event].splice(index, 1); + } + }); + } + }); + return self; + }; + + EventsClass.prototype.emit = function emit () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + var self = this; + if (!self.eventsListeners) { return self; } + var events; + var data; + var context; + var eventsParents; + if (typeof args[0] === 'string' || Array.isArray(args[0])) { + events = args[0]; + data = args.slice(1, args.length); + context = self; + eventsParents = self.eventsParents; + } else { + events = args[0].events; + data = args[0].data; + context = args[0].context || self; + eventsParents = args[0].local ? [] : args[0].parents || self.eventsParents; + } + var eventsArray = Array.isArray(events) ? events : events.split(' '); + var localEvents = eventsArray.map(function (eventName) { return eventName.replace('local::', ''); }); + var parentEvents = eventsArray.filter(function (eventName) { return eventName.indexOf('local::') < 0; }); + + localEvents.forEach(function (event) { + if (self.eventsListeners && self.eventsListeners[event]) { + var handlers = []; + self.eventsListeners[event].forEach(function (eventHandler) { + handlers.push(eventHandler); + }); + handlers.forEach(function (eventHandler) { + eventHandler.apply(context, data); + }); + } + }); + if (eventsParents && eventsParents.length > 0) { + eventsParents.forEach(function (eventsParent) { + eventsParent.emit.apply(eventsParent, [ parentEvents ].concat( data )); + }); + } + return self; + }; + + var Framework7Class = /*@__PURE__*/(function (EventsClass) { + function Framework7Class(params, parents) { + if ( params === void 0 ) params = {}; + if ( parents === void 0 ) parents = []; + + EventsClass.call(this, parents); + var self = this; + self.params = params; + + if (self.params && self.params.on) { + Object.keys(self.params.on).forEach(function (eventName) { + self.on(eventName, self.params.on[eventName]); + }); + } + } + + if ( EventsClass ) Framework7Class.__proto__ = EventsClass; + Framework7Class.prototype = Object.create( EventsClass && EventsClass.prototype ); + Framework7Class.prototype.constructor = Framework7Class; + + var staticAccessors = { components: { configurable: true } }; + + // eslint-disable-next-line + Framework7Class.prototype.useModuleParams = function useModuleParams (module, instanceParams) { + if (module.params) { + var originalParams = {}; + Object.keys(module.params).forEach(function (paramKey) { + if (typeof instanceParams[paramKey] === 'undefined') { return; } + originalParams[paramKey] = Utils.extend({}, instanceParams[paramKey]); + }); + Utils.extend(instanceParams, module.params); + Object.keys(originalParams).forEach(function (paramKey) { + Utils.extend(instanceParams[paramKey], originalParams[paramKey]); + }); + } + }; + + Framework7Class.prototype.useModulesParams = function useModulesParams (instanceParams) { + var instance = this; + if (!instance.modules) { return; } + Object.keys(instance.modules).forEach(function (moduleName) { + var module = instance.modules[moduleName]; + // Extend params + if (module.params) { + Utils.extend(instanceParams, module.params); + } + }); + }; + + Framework7Class.prototype.useModule = function useModule (moduleName, moduleParams) { + if ( moduleName === void 0 ) moduleName = ''; + if ( moduleParams === void 0 ) moduleParams = {}; + + var instance = this; + if (!instance.modules) { return; } + var module = typeof moduleName === 'string' ? instance.modules[moduleName] : moduleName; + if (!module) { return; } + + // Extend instance methods and props + if (module.instance) { + Object.keys(module.instance).forEach(function (modulePropName) { + var moduleProp = module.instance[modulePropName]; + if (typeof moduleProp === 'function') { + instance[modulePropName] = moduleProp.bind(instance); + } else { + instance[modulePropName] = moduleProp; + } + }); + } + // Add event listeners + if (module.on && instance.on) { + Object.keys(module.on).forEach(function (moduleEventName) { + instance.on(moduleEventName, module.on[moduleEventName]); + }); + } + // Add vnode hooks + if (module.vnode) { + if (!instance.vnodeHooks) { instance.vnodeHooks = {}; } + Object.keys(module.vnode).forEach(function (vnodeId) { + Object.keys(module.vnode[vnodeId]).forEach(function (hookName) { + var handler = module.vnode[vnodeId][hookName]; + if (!instance.vnodeHooks[hookName]) { instance.vnodeHooks[hookName] = {}; } + if (!instance.vnodeHooks[hookName][vnodeId]) { instance.vnodeHooks[hookName][vnodeId] = []; } + instance.vnodeHooks[hookName][vnodeId].push(handler.bind(instance)); + }); + }); + } + // Module create callback + if (module.create) { + module.create.bind(instance)(moduleParams); + } + }; + + Framework7Class.prototype.useModules = function useModules (modulesParams) { + if ( modulesParams === void 0 ) modulesParams = {}; + + var instance = this; + if (!instance.modules) { return; } + Object.keys(instance.modules).forEach(function (moduleName) { + var moduleParams = modulesParams[moduleName] || {}; + instance.useModule(moduleName, moduleParams); + }); + }; + + staticAccessors.components.set = function (components) { + var Class = this; + if (!Class.use) { return; } + Class.use(components); + }; + + Framework7Class.installModule = function installModule (module) { + var params = [], len = arguments.length - 1; + while ( len-- > 0 ) params[ len ] = arguments[ len + 1 ]; + + var Class = this; + if (!Class.prototype.modules) { Class.prototype.modules = {}; } + var name = module.name || (((Object.keys(Class.prototype.modules).length) + "_" + (Utils.now()))); + Class.prototype.modules[name] = module; + // Prototype + if (module.proto) { + Object.keys(module.proto).forEach(function (key) { + Class.prototype[key] = module.proto[key]; + }); + } + // Class + if (module.static) { + Object.keys(module.static).forEach(function (key) { + Class[key] = module.static[key]; + }); + } + // Callback + if (module.install) { + module.install.apply(Class, params); + } + return Class; + }; + + Framework7Class.use = function use (module) { + var params = [], len = arguments.length - 1; + while ( len-- > 0 ) params[ len ] = arguments[ len + 1 ]; + + var Class = this; + if (Array.isArray(module)) { + module.forEach(function (m) { return Class.installModule(m); }); + return Class; + } + return Class.installModule.apply(Class, [ module ].concat( params )); + }; + + Object.defineProperties( Framework7Class, staticAccessors ); + + return Framework7Class; + }(EventsClass)); + + function ConstructorMethods (parameters) { + if ( parameters === void 0 ) parameters = {}; + + var defaultSelector = parameters.defaultSelector; + var Constructor = parameters.constructor; + var domProp = parameters.domProp; + var app = parameters.app; + var addMethods = parameters.addMethods; + var methods = { + create: function create() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + if (app) { return new (Function.prototype.bind.apply( Constructor, [ null ].concat( [app], args) )); } + return new (Function.prototype.bind.apply( Constructor, [ null ].concat( args) )); + }, + get: function get(el) { + if ( el === void 0 ) el = defaultSelector; + + if (el instanceof Constructor) { return el; } + var $el = $(el); + if ($el.length === 0) { return undefined; } + return $el[0][domProp]; + }, + destroy: function destroy(el) { + var instance = methods.get(el); + if (instance && instance.destroy) { return instance.destroy(); } + return undefined; + }, + }; + if (addMethods && Array.isArray(addMethods)) { + addMethods.forEach(function (methodName) { + methods[methodName] = function (el) { + if ( el === void 0 ) el = defaultSelector; + var args = [], len = arguments.length - 1; + while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ]; + + var instance = methods.get(el); + if (instance && instance[methodName]) { return instance[methodName].apply(instance, args); } + return undefined; + }; + }); + } + return methods; + } + + function ModalMethods (parameters) { + if ( parameters === void 0 ) parameters = {}; + + var defaultSelector = parameters.defaultSelector; + var Constructor = parameters.constructor; + var app = parameters.app; + var methods = Utils.extend( + ConstructorMethods({ + defaultSelector: defaultSelector, + constructor: Constructor, + app: app, + domProp: 'f7Modal', + }), + { + open: function open(el, animate, targetEl) { + var $el = $(el); + if ($el.length > 1 && targetEl) { + // check if same modal in other page + var $targetPage = $(targetEl).parents('.page'); + if ($targetPage.length) { + $el.each(function (index, modalEl) { + var $modalEl = $(modalEl); + if ($modalEl.parents($targetPage)[0] === $targetPage[0]) { + $el = $modalEl; + } + }); + } + } + if ($el.length > 1) { + $el = $el.eq($el.length - 1); + } + if (!$el.length) { return undefined; } + var instance = $el[0].f7Modal; + if (!instance) { + var params = $el.dataset(); + instance = new Constructor(app, Object.assign({}, {el: $el}, params)); + } + return instance.open(animate); + }, + close: function close(el, animate, targetEl) { + if ( el === void 0 ) el = defaultSelector; + + var $el = $(el); + if (!$el.length) { return undefined; } + if ($el.length > 1) { + // check if close link (targetEl) in this modal + var $parentEl; + if (targetEl) { + var $targetEl = $(targetEl); + if ($targetEl.length) { + $parentEl = $targetEl.parents($el); + } + } + if ($parentEl && $parentEl.length > 0) { + $el = $parentEl; + } else { + $el = $el.eq($el.length - 1); + } + } + var instance = $el[0].f7Modal; + if (!instance) { + var params = $el.dataset(); + instance = new Constructor(app, Object.assign({}, {el: $el}, params)); + } + return instance.close(animate); + }, + } + ); + return methods; + } + + var fetchedModules = []; + function loadModule(moduleToLoad) { + var Framework7 = this; + return new Promise(function (resolve, reject) { + var app = Framework7.instance; + var modulePath; + var moduleObj; + var moduleFunc; + if (!moduleToLoad) { + reject(new Error('Framework7: Lazy module must be specified')); + return; + } + + function install(module) { + Framework7.use(module); + + if (app) { + app.useModuleParams(module, app.params); + app.useModule(module); + } + } + + if (typeof moduleToLoad === 'string') { + var matchNamePattern = moduleToLoad.match(/([a-z0-9-]*)/i); + if (moduleToLoad.indexOf('.') < 0 && matchNamePattern && matchNamePattern[0].length === moduleToLoad.length) { + if (!app || (app && !app.params.lazyModulesPath)) { + reject(new Error('Framework7: "lazyModulesPath" app parameter must be specified to fetch module by name')); + return; + } + modulePath = (app.params.lazyModulesPath) + "/" + moduleToLoad + ".js"; + } else { + modulePath = moduleToLoad; + } + } else if (typeof moduleToLoad === 'function') { + moduleFunc = moduleToLoad; + } else { + // considering F7-Plugin object + moduleObj = moduleToLoad; + } + + if (moduleFunc) { + var module = moduleFunc(Framework7, false); + if (!module) { + reject(new Error('Framework7: Can\'t find Framework7 component in specified component function')); + return; + } + // Check if it was added + if (Framework7.prototype.modules && Framework7.prototype.modules[module.name]) { + resolve(); + return; + } + // Install It + install(module); + + resolve(); + } + if (moduleObj) { + var module$1 = moduleObj; + if (!module$1) { + reject(new Error('Framework7: Can\'t find Framework7 component in specified component')); + return; + } + // Check if it was added + if (Framework7.prototype.modules && Framework7.prototype.modules[module$1.name]) { + resolve(); + return; + } + // Install It + install(module$1); + + resolve(); + } + if (modulePath) { + if (fetchedModules.indexOf(modulePath) >= 0) { + resolve(); + return; + } + fetchedModules.push(modulePath); + var scriptLoad = new Promise(function (resolveScript, rejectScript) { + Framework7.request.get( + modulePath, + function (scriptContent) { + var id = Utils.id(); + var callbackLoadName = "f7_component_loader_callback_" + id; + + var scriptEl = doc.createElement('script'); + scriptEl.innerHTML = "window." + callbackLoadName + " = function (Framework7, Framework7AutoInstallComponent) {return " + (scriptContent.trim()) + "}"; + $('head').append(scriptEl); + + var componentLoader = win[callbackLoadName]; + delete win[callbackLoadName]; + $(scriptEl).remove(); + + var module = componentLoader(Framework7, false); + + if (!module) { + rejectScript(new Error(("Framework7: Can't find Framework7 component in " + modulePath + " file"))); + return; + } + + // Check if it was added + if (Framework7.prototype.modules && Framework7.prototype.modules[module.name]) { + resolveScript(); + return; + } + + // Install It + install(module); + + resolveScript(); + }, + function (xhr, status) { + rejectScript(xhr, status); + } + ); + }); + var styleLoad = new Promise(function (resolveStyle) { + Framework7.request.get( + modulePath.replace('.js', app.rtl ? '.rtl.css' : '.css'), + function (styleContent) { + var styleEl = doc.createElement('style'); + styleEl.innerHTML = styleContent; + $('head').append(styleEl); + + resolveStyle(); + }, + function () { + resolveStyle(); + } + ); + }); + + Promise.all([scriptLoad, styleLoad]).then(function () { + resolve(); + }).catch(function (err) { + reject(err); + }); + } + }); + } + + var Framework7 = /*@__PURE__*/(function (Framework7Class) { + function Framework7(params) { + Framework7Class.call(this, params); + if (Framework7.instance) { + throw new Error('Framework7 is already initialized and can\'t be initialized more than once'); + } + + var passedParams = Utils.extend({}, params); + + // App Instance + var app = this; + + Framework7.instance = app; + + // Default + var defaults = { + version: '1.0.0', + id: 'io.framework7.testapp', + root: 'body', + theme: 'auto', + language: win.navigator.language, + routes: [], + name: 'Framework7', + lazyModulesPath: null, + initOnDeviceReady: true, + init: true, + autoDarkTheme: false, + iosTranslucentBars: true, + iosTranslucentModals: true, + component: undefined, + componentUrl: undefined, + }; + + // Extend defaults with modules params + app.useModulesParams(defaults); + + // Extend defaults with passed params + app.params = Utils.extend(defaults, params); + + var $rootEl = $(app.params.root); + + Utils.extend(app, { + // App Id + id: app.params.id, + // App Name + name: app.params.name, + // App version + version: app.params.version, + // Routes + routes: app.params.routes, + // Lang + language: app.params.language, + // Root + root: $rootEl, + // RTL + rtl: $rootEl.css('direction') === 'rtl', + // Theme + theme: (function getTheme() { + if (app.params.theme === 'auto') { + if (Device.ios) { return 'ios'; } + if (Device.desktop && Device.electron) { return 'aurora'; } + return 'md'; + } + return app.params.theme; + }()), + // Initially passed parameters + passedParams: passedParams, + online: win.navigator.onLine, + }); + + // Save Root + if (app.root && app.root[0]) { + app.root[0].f7 = app; + } + + // Install Modules + app.useModules(); + + // Init Data & Methods + app.initData(); + + // Auto Dark Theme + var DARK = '(prefers-color-scheme: dark)'; + var LIGHT = '(prefers-color-scheme: light)'; + app.mq = {}; + if (win.matchMedia) { + app.mq.dark = win.matchMedia(DARK); + app.mq.light = win.matchMedia(LIGHT); + } + app.colorSchemeListener = function colorSchemeListener(ref) { + var matches = ref.matches; + var media = ref.media; + + if (!matches) { + return; + } + var html = doc.querySelector('html'); + if (media === DARK) { + html.classList.add('theme-dark'); + app.darkTheme = true; + app.emit('darkThemeChange', true); + } else if (media === LIGHT) { + html.classList.remove('theme-dark'); + app.darkTheme = false; + app.emit('darkThemeChange', false); + } + }; + + // Init + if (app.params.init) { + if (Device.cordova && app.params.initOnDeviceReady) { + $(doc).on('deviceready', function () { + app.init(); + }); + } else { + app.init(); + } + } + + // Return app instance + return app; + } + + if ( Framework7Class ) Framework7.__proto__ = Framework7Class; + Framework7.prototype = Object.create( Framework7Class && Framework7Class.prototype ); + Framework7.prototype.constructor = Framework7; + + var prototypeAccessors = { $: { configurable: true },t7: { configurable: true } }; + var staticAccessors = { Dom7: { configurable: true },$: { configurable: true },Template7: { configurable: true },Class: { configurable: true },Events: { configurable: true } }; + + Framework7.prototype.initData = function initData () { + var app = this; + + // Data + app.data = {}; + if (app.params.data && typeof app.params.data === 'function') { + Utils.extend(app.data, app.params.data.bind(app)()); + } else if (app.params.data) { + Utils.extend(app.data, app.params.data); + } + // Methods + app.methods = {}; + if (app.params.methods) { + Object.keys(app.params.methods).forEach(function (methodName) { + if (typeof app.params.methods[methodName] === 'function') { + app.methods[methodName] = app.params.methods[methodName].bind(app); + } else { + app.methods[methodName] = app.params.methods[methodName]; + } + }); + } + }; + + Framework7.prototype.enableAutoDarkTheme = function enableAutoDarkTheme () { + if (!win.matchMedia) { return; } + var app = this; + var html = doc.querySelector('html'); + if (app.mq.dark && app.mq.light) { + app.mq.dark.addListener(app.colorSchemeListener); + app.mq.light.addListener(app.colorSchemeListener); + } + if (app.mq.dark && app.mq.dark.matches) { + html.classList.add('theme-dark'); + app.darkTheme = true; + app.emit('darkThemeChange', true); + } else if (app.mq.light && app.mq.light.matches) { + html.classList.remove('theme-dark'); + app.darkTheme = false; + app.emit('darkThemeChange', false); + } + }; + + Framework7.prototype.disableAutoDarkTheme = function disableAutoDarkTheme () { + if (!win.matchMedia) { return; } + var app = this; + if (app.mq.dark) { app.mq.dark.removeListener(app.colorSchemeListener); } + if (app.mq.light) { app.mq.light.removeListener(app.colorSchemeListener); } + }; + + Framework7.prototype.initAppComponent = function initAppComponent (callback) { + var app = this; + app.router.componentLoader( + app.params.component, + app.params.componentUrl, + { componentOptions: { el: app.root[0], root: true } }, + function (el) { + app.root = $(el); + app.root[0].f7 = app; + app.rootComponent = el.f7Component; + if (callback) { callback(); } + }, + function () {} + ); + }; + + // eslint-disable-next-line + Framework7.prototype._init = function _init () { + var app = this; + if (app.initialized) { return app; } + + app.root.addClass('framework7-initializing'); + + // RTL attr + if (app.rtl) { + $('html').attr('dir', 'rtl'); + } + + // Auto Dark Theme + if (app.params.autoDarkTheme) { + app.enableAutoDarkTheme(); + } + + // Watch for online/offline state + win.addEventListener('offline', function () { + app.online = false; + app.emit('offline'); + app.emit('connection', false); + }); + win.addEventListener('online', function () { + app.online = true; + app.emit('online'); + app.emit('connection', true); + }); + + // Root class + app.root.addClass('framework7-root'); + + // Theme class + $('html').removeClass('ios md aurora').addClass(app.theme); + + // iOS Translucent + if (app.params.iosTranslucentBars && app.theme === 'ios' && Device.ios) { + $('html').addClass('ios-translucent-bars'); + } + if (app.params.iosTranslucentModals && app.theme === 'ios' && Device.ios) { + $('html').addClass('ios-translucent-modals'); + } + + // Init class + Utils.nextFrame(function () { + app.root.removeClass('framework7-initializing'); + }); + // Emit, init other modules + app.initialized = true; + app.emit('init'); + + return app; + }; + + Framework7.prototype.init = function init () { + var app = this; + if (app.params.component || app.params.componentUrl) { + app.initAppComponent(function () { + app._init(); // eslint-disable-line + }); + } else { + app._init(); // eslint-disable-line + } + }; + + // eslint-disable-next-line + Framework7.prototype.loadModule = function loadModule () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return Framework7.loadModule.apply(Framework7, args); + }; + + // eslint-disable-next-line + Framework7.prototype.loadModules = function loadModules () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return Framework7.loadModules.apply(Framework7, args); + }; + + Framework7.prototype.getVnodeHooks = function getVnodeHooks (hook, id) { + var app = this; + if (!app.vnodeHooks || !app.vnodeHooks[hook]) { return []; } + return app.vnodeHooks[hook][id] || []; + }; + + // eslint-disable-next-line + prototypeAccessors.$.get = function () { + return $; + }; + // eslint-disable-next-line + prototypeAccessors.t7.get = function () { + return Template7; + }; + + staticAccessors.Dom7.get = function () { + return $; + }; + + staticAccessors.$.get = function () { + return $; + }; + + staticAccessors.Template7.get = function () { + return Template7; + }; + + staticAccessors.Class.get = function () { + return Framework7Class; + }; + + staticAccessors.Events.get = function () { + return EventsClass; + }; + + Object.defineProperties( Framework7.prototype, prototypeAccessors ); + Object.defineProperties( Framework7, staticAccessors ); + + return Framework7; + }(Framework7Class)); + + Framework7.ModalMethods = ModalMethods; + Framework7.ConstructorMethods = ConstructorMethods; + + Framework7.loadModule = loadModule; + Framework7.loadModules = function loadModules(modules) { + return Promise.all(modules.map(function (module) { return Framework7.loadModule(module); })); + }; + + var DeviceModule = { + name: 'device', + proto: { + device: Device, + }, + static: { + device: Device, + }, + on: { + init: function init() { + var classNames = []; + var html = doc.querySelector('html'); + var metaStatusbar = doc.querySelector('meta[name="apple-mobile-web-app-status-bar-style"]'); + if (!html) { return; } + if (Device.standalone && Device.ios && metaStatusbar && metaStatusbar.content === 'black-translucent') { + classNames.push('device-full-viewport'); + } + + // Pixel Ratio + classNames.push(("device-pixel-ratio-" + (Math.floor(Device.pixelRatio)))); + // OS classes + if (Device.os && !Device.desktop) { + classNames.push( + ("device-" + (Device.os)) + ); + } else if (Device.desktop) { + classNames.push('device-desktop'); + if (Device.os) { + classNames.push(("device-" + (Device.os))); + } + } + if (Device.cordova || Device.phonegap) { + classNames.push('device-cordova'); + } + + // Add html classes + classNames.forEach(function (className) { + html.classList.add(className); + }); + }, + }, + }; + + var SupportModule = { + name: 'support', + proto: { + support: Support, + }, + static: { + support: Support, + }, + }; + + var UtilsModule = { + name: 'utils', + proto: { + utils: Utils, + }, + static: { + utils: Utils, + }, + }; + + var ResizeModule = { + name: 'resize', + instance: { + getSize: function getSize() { + var app = this; + if (!app.root[0]) { return { width: 0, height: 0, left: 0, top: 0 }; } + var offset = app.root.offset(); + var ref = [app.root[0].offsetWidth, app.root[0].offsetHeight, offset.left, offset.top]; + var width = ref[0]; + var height = ref[1]; + var left = ref[2]; + var top = ref[3]; + app.width = width; + app.height = height; + app.left = left; + app.top = top; + return { width: width, height: height, left: left, top: top }; + }, + }, + on: { + init: function init() { + var app = this; + + // Get Size + app.getSize(); + + // Emit resize + win.addEventListener('resize', function () { + app.emit('resize'); + }, false); + + // Emit orientationchange + win.addEventListener('orientationchange', function () { + app.emit('orientationchange'); + }); + }, + orientationchange: function orientationchange() { + var app = this; + // Fix iPad weird body scroll + if (app.device.ipad) { + doc.body.scrollLeft = 0; + setTimeout(function () { + doc.body.scrollLeft = 0; + }, 0); + } + }, + resize: function resize() { + var app = this; + app.getSize(); + }, + }, + }; + + var globals = {}; + var jsonpRequests = 0; + + function Request(requestOptions) { + var globalsNoCallbacks = Utils.extend({}, globals); + ('beforeCreate beforeOpen beforeSend error complete success statusCode').split(' ').forEach(function (callbackName) { + delete globalsNoCallbacks[callbackName]; + }); + var defaults = Utils.extend({ + url: win.location.toString(), + method: 'GET', + data: false, + async: true, + cache: true, + user: '', + password: '', + headers: {}, + xhrFields: {}, + statusCode: {}, + processData: true, + dataType: 'text', + contentType: 'application/x-www-form-urlencoded', + timeout: 0, + }, globalsNoCallbacks); + + var options = Utils.extend({}, defaults, requestOptions); + var proceedRequest; + + // Function to run XHR callbacks and events + function fireCallback(callbackName) { + var data = [], len = arguments.length - 1; + while ( len-- > 0 ) data[ len ] = arguments[ len + 1 ]; + + /* + Callbacks: + beforeCreate (options), + beforeOpen (xhr, options), + beforeSend (xhr, options), + error (xhr, status, message), + complete (xhr, status), + success (response, status, xhr), + statusCode () + */ + var globalCallbackValue; + var optionCallbackValue; + if (globals[callbackName]) { + globalCallbackValue = globals[callbackName].apply(globals, data); + } + if (options[callbackName]) { + optionCallbackValue = options[callbackName].apply(options, data); + } + if (typeof globalCallbackValue !== 'boolean') { globalCallbackValue = true; } + if (typeof optionCallbackValue !== 'boolean') { optionCallbackValue = true; } + return (globalCallbackValue && optionCallbackValue); + } + + // Before create callback + proceedRequest = fireCallback('beforeCreate', options); + if (proceedRequest === false) { return undefined; } + + // For jQuery guys + if (options.type) { options.method = options.type; } + + // Parameters Prefix + var paramsPrefix = options.url.indexOf('?') >= 0 ? '&' : '?'; + + // UC method + var method = options.method.toUpperCase(); + + // Data to modify GET URL + if ((method === 'GET' || method === 'HEAD' || method === 'OPTIONS' || method === 'DELETE') && options.data) { + var stringData; + if (typeof options.data === 'string') { + // Should be key=value string + if (options.data.indexOf('?') >= 0) { stringData = options.data.split('?')[1]; } + else { stringData = options.data; } + } else { + // Should be key=value object + stringData = Utils.serializeObject(options.data); + } + if (stringData.length) { + options.url += paramsPrefix + stringData; + if (paramsPrefix === '?') { paramsPrefix = '&'; } + } + } + + // JSONP + if (options.dataType === 'json' && options.url.indexOf('callback=') >= 0) { + var callbackName = "f7jsonp_" + (Date.now() + ((jsonpRequests += 1))); + var abortTimeout; + var callbackSplit = options.url.split('callback='); + var requestUrl = (callbackSplit[0]) + "callback=" + callbackName; + if (callbackSplit[1].indexOf('&') >= 0) { + var addVars = callbackSplit[1].split('&').filter(function (el) { return el.indexOf('=') > 0; }).join('&'); + if (addVars.length > 0) { requestUrl += "&" + addVars; } + } + + // Create script + var script = doc.createElement('script'); + script.type = 'text/javascript'; + script.onerror = function onerror() { + clearTimeout(abortTimeout); + fireCallback('error', null, 'scripterror', 'scripterror'); + fireCallback('complete', null, 'scripterror'); + }; + script.src = requestUrl; + + // Handler + win[callbackName] = function jsonpCallback(data) { + clearTimeout(abortTimeout); + fireCallback('success', data); + script.parentNode.removeChild(script); + script = null; + delete win[callbackName]; + }; + doc.querySelector('head').appendChild(script); + + if (options.timeout > 0) { + abortTimeout = setTimeout(function () { + script.parentNode.removeChild(script); + script = null; + fireCallback('error', null, 'timeout', 'timeout'); + }, options.timeout); + } + + return undefined; + } + + // Cache for GET/HEAD requests + if (method === 'GET' || method === 'HEAD' || method === 'OPTIONS' || method === 'DELETE') { + if (options.cache === false) { + options.url += paramsPrefix + "_nocache" + (Date.now()); + } + } + + // Create XHR + var xhr = new XMLHttpRequest(); + + // Save Request URL + xhr.requestUrl = options.url; + xhr.requestParameters = options; + + // Before open callback + proceedRequest = fireCallback('beforeOpen', xhr, options); + if (proceedRequest === false) { return xhr; } + + // Open XHR + xhr.open(method, options.url, options.async, options.user, options.password); + + // Create POST Data + var postData = null; + + if ((method === 'POST' || method === 'PUT' || method === 'PATCH') && options.data) { + if (options.processData) { + var postDataInstances = [ArrayBuffer, Blob, Document, FormData]; + // Post Data + if (postDataInstances.indexOf(options.data.constructor) >= 0) { + postData = options.data; + } else { + // POST Headers + var boundary = "---------------------------" + (Date.now().toString(16)); + + if (options.contentType === 'multipart/form-data') { + xhr.setRequestHeader('Content-Type', ("multipart/form-data; boundary=" + boundary)); + } else { + xhr.setRequestHeader('Content-Type', options.contentType); + } + postData = ''; + var data$1 = Utils.serializeObject(options.data); + if (options.contentType === 'multipart/form-data') { + data$1 = data$1.split('&'); + var newData = []; + for (var i = 0; i < data$1.length; i += 1) { + newData.push(("Content-Disposition: form-data; name=\"" + (data$1[i].split('=')[0]) + "\"\r\n\r\n" + (data$1[i].split('=')[1]) + "\r\n")); + } + postData = "--" + boundary + "\r\n" + (newData.join(("--" + boundary + "\r\n"))) + "--" + boundary + "--\r\n"; + } else if (options.contentType === 'application/json') { + postData = JSON.stringify(options.data); + } else { + postData = data$1; + } + } + } else { + postData = options.data; + xhr.setRequestHeader('Content-Type', options.contentType); + } + } + if (options.dataType === 'json' && (!options.headers || !options.headers.Accept)) { + xhr.setRequestHeader('Accept', 'application/json'); + } + + // Additional headers + if (options.headers) { + Object.keys(options.headers).forEach(function (headerName) { + if (typeof options.headers[headerName] === 'undefined') { return; } + xhr.setRequestHeader(headerName, options.headers[headerName]); + }); + } + + // Check for crossDomain + if (typeof options.crossDomain === 'undefined') { + // eslint-disable-next-line + options.crossDomain = /^([\w-]+:)?\/\/([^\/]+)/.test(options.url) && RegExp.$2 !== win.location.host; + } + + if (!options.crossDomain) { + xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest'); + } + + if (options.xhrFields) { + Utils.extend(xhr, options.xhrFields); + } + + + // Handle XHR + xhr.onload = function onload() { + if ((xhr.status >= 200 && xhr.status < 300) || xhr.status === 0) { + var responseData; + if (options.dataType === 'json') { + var parseError; + try { + responseData = JSON.parse(xhr.responseText); + } catch (err) { + parseError = true; + } + if (!parseError) { + fireCallback('success', responseData, xhr.status, xhr); + } else { + fireCallback('error', xhr, 'parseerror', 'parseerror'); + } + } else { + responseData = xhr.responseType === 'text' || xhr.responseType === '' ? xhr.responseText : xhr.response; + fireCallback('success', responseData, xhr.status, xhr); + } + } else { + fireCallback('error', xhr, xhr.status, xhr.statusText); + } + if (options.statusCode) { + if (globals.statusCode && globals.statusCode[xhr.status]) { globals.statusCode[xhr.status](xhr); } + if (options.statusCode[xhr.status]) { options.statusCode[xhr.status](xhr); } + } + fireCallback('complete', xhr, xhr.status); + }; + + xhr.onerror = function onerror() { + fireCallback('error', xhr, xhr.status, xhr.status); + fireCallback('complete', xhr, 'error'); + }; + + // Timeout + if (options.timeout > 0) { + xhr.timeout = options.timeout; + xhr.ontimeout = function () { + fireCallback('error', xhr, 'timeout', 'timeout'); + fireCallback('complete', xhr, 'timeout'); + }; + } + + // Ajax start callback + proceedRequest = fireCallback('beforeSend', xhr, options); + if (proceedRequest === false) { return xhr; } + + // Send XHR + xhr.send(postData); + + // Return XHR object + return xhr; + } + function RequestShortcut(method) { + var assign, assign$1; + + var args = [], len = arguments.length - 1; + while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ]; + var ref = []; + var url = ref[0]; + var data = ref[1]; + var success = ref[2]; + var error = ref[3]; + var dataType = ref[4]; + if (typeof args[1] === 'function') { + (assign = args, url = assign[0], success = assign[1], error = assign[2], dataType = assign[3]); + } else { + (assign$1 = args, url = assign$1[0], data = assign$1[1], success = assign$1[2], error = assign$1[3], dataType = assign$1[4]); + } + [success, error].forEach(function (callback) { + if (typeof callback === 'string') { + dataType = callback; + if (callback === success) { success = undefined; } + else { error = undefined; } + } + }); + dataType = dataType || (method === 'json' || method === 'postJSON' ? 'json' : undefined); + var requestOptions = { + url: url, + method: method === 'post' || method === 'postJSON' ? 'POST' : 'GET', + data: data, + success: success, + error: error, + dataType: dataType, + }; + if (method === 'postJSON') { + Utils.extend(requestOptions, { + contentType: 'application/json', + processData: false, + crossDomain: true, + data: typeof data === 'string' ? data : JSON.stringify(data), + }); + } + return Request(requestOptions); + } + function RequestShortcutPromise(method) { + var args = [], len = arguments.length - 1; + while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ]; + + var url = args[0]; + var data = args[1]; + var dataType = args[2]; + return new Promise(function (resolve, reject) { + RequestShortcut( + method, + url, + data, + function (responseData, status, xhr) { + resolve({ data: responseData, status: status, xhr: xhr }); + }, + function (xhr, status, message) { + // eslint-disable-next-line + reject({ xhr: xhr, status: status, message: message }); + }, + dataType + ); + }); + } + Object.assign(Request, { + get: function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return RequestShortcut.apply(void 0, [ 'get' ].concat( args )); + }, + post: function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return RequestShortcut.apply(void 0, [ 'post' ].concat( args )); + }, + json: function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return RequestShortcut.apply(void 0, [ 'json' ].concat( args )); + }, + getJSON: function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return RequestShortcut.apply(void 0, [ 'json' ].concat( args )); + }, + postJSON: function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return RequestShortcut.apply(void 0, [ 'postJSON' ].concat( args )); + }, + }); + + Request.promise = function requestPromise(requestOptions) { + return new Promise(function (resolve, reject) { + Request(Object.assign(requestOptions, { + success: function success(data, status, xhr) { + resolve({ data: data, status: status, xhr: xhr }); + }, + error: function error(xhr, status, message) { + // eslint-disable-next-line + reject({ xhr: xhr, status: status, message: message }); + }, + })); + }); + }; + Object.assign(Request.promise, { + get: function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return RequestShortcutPromise.apply(void 0, [ 'get' ].concat( args )); + }, + post: function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return RequestShortcutPromise.apply(void 0, [ 'post' ].concat( args )); + }, + json: function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return RequestShortcutPromise.apply(void 0, [ 'json' ].concat( args )); + }, + getJSON: function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return RequestShortcutPromise.apply(void 0, [ 'json' ].concat( args )); + }, + postJSON: function () { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + return RequestShortcutPromise.apply(void 0, [ 'postJSON' ].concat( args )); + }, + }); + + Request.setup = function setup(options) { + if (options.type && !options.method) { + Utils.extend(options, { method: options.type }); + } + Utils.extend(globals, options); + }; + + /* eslint no-param-reassign: "off" */ + + var RequestModule = { + name: 'request', + proto: { + request: Request, + }, + static: { + request: Request, + }, + }; + + /* eslint-disable no-nested-ternary */ + + function initTouch() { + var app = this; + var params = app.params.touch; + var useRipple = params[((app.theme) + "TouchRipple")]; + + if (Device.ios && Device.webView) { + // Strange hack required for iOS 8 webview to work on inputs + win.addEventListener('touchstart', function () {}); + } + + var touchStartX; + var touchStartY; + var targetElement; + var isMoved; + var tapHoldFired; + var tapHoldTimeout; + var preventClick; + + var activableElement; + var activeTimeout; + + var rippleWave; + var rippleTarget; + var rippleTimeout; + + function findActivableElement(el) { + var target = $(el); + var parents = target.parents(params.activeStateElements); + if (target.closest('.no-active-state').length) { + return null; + } + var activable; + if (target.is(params.activeStateElements)) { + activable = target; + } + if (parents.length > 0) { + activable = activable ? activable.add(parents) : parents; + } + if (activable && activable.length > 1) { + var newActivable = []; + var preventPropagation; + for (var i = 0; i < activable.length; i += 1) { + if (!preventPropagation) { + newActivable.push(activable[i]); + if (activable.eq(i).hasClass('prevent-active-state-propagation') + || activable.eq(i).hasClass('no-active-state-propagation') + ) { + preventPropagation = true; + } + } + } + activable = $(newActivable); + } + return activable || target; + } + + function isInsideScrollableView(el) { + var pageContent = el.parents('.page-content'); + return pageContent.length > 0; + } + + function addActive() { + if (!activableElement) { return; } + activableElement.addClass('active-state'); + } + function removeActive() { + if (!activableElement) { return; } + activableElement.removeClass('active-state'); + activableElement = null; + } + + // Ripple handlers + function findRippleElement(el) { + var rippleElements = params.touchRippleElements; + var $el = $(el); + if ($el.is(rippleElements)) { + if ($el.hasClass('no-ripple')) { + return false; + } + return $el; + } + if ($el.parents(rippleElements).length > 0) { + var rippleParent = $el.parents(rippleElements).eq(0); + if (rippleParent.hasClass('no-ripple')) { + return false; + } + return rippleParent; + } + return false; + } + function createRipple($el, x, y) { + if (!$el) { return; } + rippleWave = app.touchRipple.create($el, x, y); + } + + function removeRipple() { + if (!rippleWave) { return; } + rippleWave.remove(); + rippleWave = undefined; + rippleTarget = undefined; + } + function rippleTouchStart(el) { + rippleTarget = findRippleElement(el); + if (!rippleTarget || rippleTarget.length === 0) { + rippleTarget = undefined; + return; + } + var inScrollable = isInsideScrollableView(rippleTarget); + + if (!inScrollable) { + removeRipple(); + createRipple(rippleTarget, touchStartX, touchStartY); + } else { + clearTimeout(rippleTimeout); + rippleTimeout = setTimeout(function () { + removeRipple(); + createRipple(rippleTarget, touchStartX, touchStartY); + }, 80); + } + } + function rippleTouchMove() { + clearTimeout(rippleTimeout); + removeRipple(); + } + function rippleTouchEnd() { + if (!rippleWave && rippleTarget && !isMoved) { + clearTimeout(rippleTimeout); + createRipple(rippleTarget, touchStartX, touchStartY); + setTimeout(removeRipple, 0); + } else { + removeRipple(); + } + } + + // Mouse Handlers + function handleMouseDown(e) { + var $activableEl = findActivableElement(e.target); + if ($activableEl) { + $activableEl.addClass('active-state'); + if ('which' in e && e.which === 3) { + setTimeout(function () { + $('.active-state').removeClass('active-state'); + }, 0); + } + } + + if (useRipple) { + touchStartX = e.pageX; + touchStartY = e.pageY; + rippleTouchStart(e.target, e.pageX, e.pageY); + } + } + function handleMouseMove() { + if (!params.activeStateOnMouseMove) { + $('.active-state').removeClass('active-state'); + } + if (useRipple) { + rippleTouchMove(); + } + } + function handleMouseUp() { + $('.active-state').removeClass('active-state'); + if (useRipple) { + rippleTouchEnd(); + } + } + + function handleTouchCancel() { + targetElement = null; + + // Remove Active State + clearTimeout(activeTimeout); + clearTimeout(tapHoldTimeout); + if (params.activeState) { + removeActive(); + } + + // Remove Ripple + if (useRipple) { + rippleTouchEnd(); + } + } + + function handleTouchStart(e) { + isMoved = false; + tapHoldFired = false; + preventClick = false; + if (e.targetTouches.length > 1) { + if (activableElement) { removeActive(); } + return true; + } + if (e.touches.length > 1 && activableElement) { + removeActive(); + } + if (params.tapHold) { + if (tapHoldTimeout) { clearTimeout(tapHoldTimeout); } + tapHoldTimeout = setTimeout(function () { + if (e && e.touches && e.touches.length > 1) { return; } + tapHoldFired = true; + e.preventDefault(); + preventClick = true; + $(e.target).trigger('taphold', e); + app.emit('taphold', e); + }, params.tapHoldDelay); + } + targetElement = e.target; + touchStartX = e.targetTouches[0].pageX; + touchStartY = e.targetTouches[0].pageY; + + if (params.activeState) { + activableElement = findActivableElement(targetElement); + if (activableElement && !isInsideScrollableView(activableElement)) { + addActive(); + } else if (activableElement) { + activeTimeout = setTimeout(addActive, 80); + } + } + if (useRipple) { + rippleTouchStart(targetElement); + } + return true; + } + function handleTouchMove(e) { + var touch; + var distance; + if (e.type === 'touchmove') { + touch = e.targetTouches[0]; + distance = params.touchClicksDistanceThreshold; + } + + if (distance && touch) { + var pageX = touch.pageX; + var pageY = touch.pageY; + if (Math.abs(pageX - touchStartX) > distance || Math.abs(pageY - touchStartY) > distance) { + isMoved = true; + } + } else { + isMoved = true; + } + if (isMoved) { + preventClick = true; + if (params.tapHold) { + clearTimeout(tapHoldTimeout); + } + if (params.activeState) { + clearTimeout(activeTimeout); + removeActive(); + } + if (useRipple) { + rippleTouchMove(); + } + } + } + function handleTouchEnd(e) { + clearTimeout(activeTimeout); + clearTimeout(tapHoldTimeout); + if (doc.activeElement === e.target) { + if (params.activeState) { removeActive(); } + if (useRipple) { + rippleTouchEnd(); + } + return true; + } + if (params.activeState) { + addActive(); + setTimeout(removeActive, 0); + } + if (useRipple) { + rippleTouchEnd(); + } + if ((params.tapHoldPreventClicks && tapHoldFired) || preventClick) { + if (e.cancelable) { e.preventDefault(); } + preventClick = true; + return false; + } + return true; + } + function handleClick(e) { + var isOverswipe = e && e.detail && e.detail === 'f7Overswipe'; + var localPreventClick = preventClick; + if (targetElement && e.target !== targetElement) { + if (isOverswipe) { + localPreventClick = false; + } else { + localPreventClick = true; + } + } + if (params.tapHold && params.tapHoldPreventClicks && tapHoldFired) { + localPreventClick = true; + } + if (localPreventClick) { + e.stopImmediatePropagation(); + e.stopPropagation(); + e.preventDefault(); + } + + if (params.tapHold) { + tapHoldTimeout = setTimeout( + function () { + tapHoldFired = false; + }, + (Device.ios || Device.androidChrome ? 100 : 400) + ); + } + preventClick = false; + targetElement = null; + + return !localPreventClick; + } + + function emitAppTouchEvent(name, e) { + app.emit({ + events: name, + data: [e], + }); + } + function appClick(e) { + emitAppTouchEvent('click', e); + } + function appTouchStartActive(e) { + emitAppTouchEvent('touchstart touchstart:active', e); + } + function appTouchMoveActive(e) { + emitAppTouchEvent('touchmove touchmove:active', e); + } + function appTouchEndActive(e) { + emitAppTouchEvent('touchend touchend:active', e); + } + function appTouchStartPassive(e) { + emitAppTouchEvent('touchstart:passive', e); + } + function appTouchMovePassive(e) { + emitAppTouchEvent('touchmove:passive', e); + } + function appTouchEndPassive(e) { + emitAppTouchEvent('touchend:passive', e); + } + function appGestureActive(e) { + emitAppTouchEvent(((e.type) + " " + (e.type) + ":active"), e); + } + function appGesturePassive(e) { + emitAppTouchEvent(((e.type) + ":passive"), e); + } + + + var passiveListener = Support.passiveListener ? { passive: true } : false; + var passiveListenerCapture = Support.passiveListener ? { passive: true, capture: true } : true; + var activeListener = Support.passiveListener ? { passive: false } : false; + var activeListenerCapture = Support.passiveListener ? { passive: false, capture: true } : true; + + doc.addEventListener('click', appClick, true); + + if (Support.passiveListener) { + doc.addEventListener(app.touchEvents.start, appTouchStartActive, activeListenerCapture); + doc.addEventListener(app.touchEvents.move, appTouchMoveActive, activeListener); + doc.addEventListener(app.touchEvents.end, appTouchEndActive, activeListener); + + doc.addEventListener(app.touchEvents.start, appTouchStartPassive, passiveListenerCapture); + doc.addEventListener(app.touchEvents.move, appTouchMovePassive, passiveListener); + doc.addEventListener(app.touchEvents.end, appTouchEndPassive, passiveListener); + if (Support.touch && Support.gestures) { + doc.addEventListener('gesturestart', appGestureActive, activeListener); + doc.addEventListener('gesturechange', appGestureActive, activeListener); + doc.addEventListener('gestureend', appGestureActive, activeListener); + + doc.addEventListener('gesturestart', appGesturePassive, passiveListener); + doc.addEventListener('gesturechange', appGesturePassive, passiveListener); + doc.addEventListener('gestureend', appGesturePassive, passiveListener); + } + } else { + doc.addEventListener(app.touchEvents.start, function (e) { + appTouchStartActive(e); + appTouchStartPassive(e); + }, true); + doc.addEventListener(app.touchEvents.move, function (e) { + appTouchMoveActive(e); + appTouchMovePassive(e); + }, false); + doc.addEventListener(app.touchEvents.end, function (e) { + appTouchEndActive(e); + appTouchEndPassive(e); + }, false); + if (Support.touch && Support.gestures) { + doc.addEventListener('gesturestart', function (e) { + appGestureActive(e); + appGesturePassive(e); + }, false); + doc.addEventListener('gesturechange', function (e) { + appGestureActive(e); + appGesturePassive(e); + }, false); + doc.addEventListener('gestureend', function (e) { + appGestureActive(e); + appGesturePassive(e); + }, false); + } + } + + if (Support.touch) { + app.on('click', handleClick); + app.on('touchstart', handleTouchStart); + app.on('touchmove', handleTouchMove); + app.on('touchend', handleTouchEnd); + doc.addEventListener('touchcancel', handleTouchCancel, { passive: true }); + } else if (params.activeState) { + app.on('touchstart', handleMouseDown); + app.on('touchmove', handleMouseMove); + app.on('touchend', handleMouseUp); + doc.addEventListener('pointercancel', handleMouseUp, { passive: true }); + } + doc.addEventListener('contextmenu', function (e) { + if (params.disableContextMenu && (Device.ios || Device.android || Device.cordova)) { + e.preventDefault(); + } + if (useRipple) { + if (activableElement) { removeActive(); } + rippleTouchEnd(); + } + }); + } + + var TouchModule = { + name: 'touch', + params: { + touch: { + // Clicks + touchClicksDistanceThreshold: 5, + // ContextMenu + disableContextMenu: false, + // Tap Hold + tapHold: false, + tapHoldDelay: 750, + tapHoldPreventClicks: true, + // Active State + activeState: true, + 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: false, + mdTouchRipple: true, + iosTouchRipple: false, + auroraTouchRipple: false, + 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', + }, + }, + instance: { + touchEvents: { + start: Support.touch ? 'touchstart' : (Support.pointerEvents ? 'pointerdown' : 'mousedown'), + move: Support.touch ? 'touchmove' : (Support.pointerEvents ? 'pointermove' : 'mousemove'), + end: Support.touch ? 'touchend' : (Support.pointerEvents ? 'pointerup' : 'mouseup'), + }, + }, + on: { + init: initTouch, + }, + }; + + /** + * Tokenize input string. + */ + function lexer(str) { + var tokens = []; + var i = 0; + while (i < str.length) { + var char = str[i]; + if (char === "*" || char === "+" || char === "?") { + tokens.push({ type: "MODIFIER", index: i, value: str[i++] }); + continue; + } + if (char === "\\") { + tokens.push({ type: "ESCAPED_CHAR", index: i++, value: str[i++] }); + continue; + } + if (char === "{") { + tokens.push({ type: "OPEN", index: i, value: str[i++] }); + continue; + } + if (char === "}") { + tokens.push({ type: "CLOSE", index: i, value: str[i++] }); + continue; + } + if (char === ":") { + var name = ""; + var j = i + 1; + while (j < str.length) { + var code = str.charCodeAt(j); + if ( + // `0-9` + (code >= 48 && code <= 57) || + // `A-Z` + (code >= 65 && code <= 90) || + // `a-z` + (code >= 97 && code <= 122) || + // `_` + code === 95) { + name += str[j++]; + continue; + } + break; + } + if (!name) + { throw new TypeError("Missing parameter name at " + i); } + tokens.push({ type: "NAME", index: i, value: name }); + i = j; + continue; + } + if (char === "(") { + var count = 1; + var pattern = ""; + var j = i + 1; + if (str[j] === "?") { + throw new TypeError("Pattern cannot start with \"?\" at " + j); + } + while (j < str.length) { + if (str[j] === "\\") { + pattern += str[j++] + str[j++]; + continue; + } + if (str[j] === ")") { + count--; + if (count === 0) { + j++; + break; + } + } + else if (str[j] === "(") { + count++; + if (str[j + 1] !== "?") { + throw new TypeError("Capturing groups are not allowed at " + j); + } + } + pattern += str[j++]; + } + if (count) + { throw new TypeError("Unbalanced pattern at " + i); } + if (!pattern) + { throw new TypeError("Missing pattern at " + i); } + tokens.push({ type: "PATTERN", index: i, value: pattern }); + i = j; + continue; + } + tokens.push({ type: "CHAR", index: i, value: str[i++] }); + } + tokens.push({ type: "END", index: i, value: "" }); + return tokens; + } + /** + * Parse a string for the raw tokens. + */ + function parse(str, options) { + if (options === void 0) { options = {}; } + var tokens = lexer(str); + var _a = options.prefixes, prefixes = _a === void 0 ? "./" : _a; + var defaultPattern = "[^" + escapeString(options.delimiter || "/#?") + "]+?"; + var result = []; + var key = 0; + var i = 0; + var path = ""; + var tryConsume = function (type) { + if (i < tokens.length && tokens[i].type === type) + { return tokens[i++].value; } + }; + var mustConsume = function (type) { + var value = tryConsume(type); + if (value !== undefined) + { return value; } + var _a = tokens[i], nextType = _a.type, index = _a.index; + throw new TypeError("Unexpected " + nextType + " at " + index + ", expected " + type); + }; + var consumeText = function () { + var result = ""; + var value; + // tslint:disable-next-line + while ((value = tryConsume("CHAR") || tryConsume("ESCAPED_CHAR"))) { + result += value; + } + return result; + }; + while (i < tokens.length) { + var char = tryConsume("CHAR"); + var name = tryConsume("NAME"); + var pattern = tryConsume("PATTERN"); + if (name || pattern) { + var prefix = char || ""; + if (prefixes.indexOf(prefix) === -1) { + path += prefix; + prefix = ""; + } + if (path) { + result.push(path); + path = ""; + } + result.push({ + name: name || key++, + prefix: prefix, + suffix: "", + pattern: pattern || defaultPattern, + modifier: tryConsume("MODIFIER") || "" + }); + continue; + } + var value = char || tryConsume("ESCAPED_CHAR"); + if (value) { + path += value; + continue; + } + if (path) { + result.push(path); + path = ""; + } + var open = tryConsume("OPEN"); + if (open) { + var prefix = consumeText(); + var name_1 = tryConsume("NAME") || ""; + var pattern_1 = tryConsume("PATTERN") || ""; + var suffix = consumeText(); + mustConsume("CLOSE"); + result.push({ + name: name_1 || (pattern_1 ? key++ : ""), + pattern: name_1 && !pattern_1 ? defaultPattern : pattern_1, + prefix: prefix, + suffix: suffix, + modifier: tryConsume("MODIFIER") || "" + }); + continue; + } + mustConsume("END"); + } + return result; + } + /** + * Compile a string to a template function for the path. + */ + function compile(str, options) { + return tokensToFunction(parse(str, options), options); + } + /** + * Expose a method for transforming tokens into the path function. + */ + function tokensToFunction(tokens, options) { + if (options === void 0) { options = {}; } + var reFlags = flags(options); + var _a = options.encode, encode = _a === void 0 ? function (x) { return x; } : _a, _b = options.validate, validate = _b === void 0 ? true : _b; + // Compile all the tokens into regexps. + var matches = tokens.map(function (token) { + if (typeof token === "object") { + return new RegExp("^(?:" + token.pattern + ")$", reFlags); + } + }); + return function (data) { + var path = ""; + for (var i = 0; i < tokens.length; i++) { + var token = tokens[i]; + if (typeof token === "string") { + path += token; + continue; + } + var value = data ? data[token.name] : undefined; + var optional = token.modifier === "?" || token.modifier === "*"; + var repeat = token.modifier === "*" || token.modifier === "+"; + if (Array.isArray(value)) { + if (!repeat) { + throw new TypeError("Expected \"" + token.name + "\" to not repeat, but got an array"); + } + if (value.length === 0) { + if (optional) + { continue; } + throw new TypeError("Expected \"" + token.name + "\" to not be empty"); + } + for (var j = 0; j < value.length; j++) { + var segment = encode(value[j], token); + if (validate && !matches[i].test(segment)) { + throw new TypeError("Expected all \"" + token.name + "\" to match \"" + token.pattern + "\", but got \"" + segment + "\""); + } + path += token.prefix + segment + token.suffix; + } + continue; + } + if (typeof value === "string" || typeof value === "number") { + var segment = encode(String(value), token); + if (validate && !matches[i].test(segment)) { + throw new TypeError("Expected \"" + token.name + "\" to match \"" + token.pattern + "\", but got \"" + segment + "\""); + } + path += token.prefix + segment + token.suffix; + continue; + } + if (optional) + { continue; } + var typeOfMessage = repeat ? "an array" : "a string"; + throw new TypeError("Expected \"" + token.name + "\" to be " + typeOfMessage); + } + return path; + }; + } + /** + * Escape a regular expression string. + */ + function escapeString(str) { + return str.replace(/([.+*?=^!:${}()[\]|/\\])/g, "\\$1"); + } + /** + * Get the flags for a regexp from the options. + */ + function flags(options) { + return options && options.sensitive ? "" : "i"; + } + /** + * Pull out keys from a regexp. + */ + function regexpToRegexp(path, keys) { + if (!keys) + { return path; } + // Use a negative lookahead to match only capturing groups. + var groups = path.source.match(/\((?!\?)/g); + if (groups) { + for (var i = 0; i < groups.length; i++) { + keys.push({ + name: i, + prefix: "", + suffix: "", + modifier: "", + pattern: "" + }); + } + } + return path; + } + /** + * Transform an array into a regexp. + */ + function arrayToRegexp(paths, keys, options) { + var parts = paths.map(function (path) { return pathToRegexp(path, keys, options).source; }); + return new RegExp("(?:" + parts.join("|") + ")", flags(options)); + } + /** + * Create a path regexp from string input. + */ + function stringToRegexp(path, keys, options) { + return tokensToRegexp(parse(path, options), keys, options); + } + /** + * Expose a function for taking tokens and returning a RegExp. + */ + function tokensToRegexp(tokens, keys, options) { + if (options === void 0) { options = {}; } + var _a = options.strict, strict = _a === void 0 ? false : _a, _b = options.start, start = _b === void 0 ? true : _b, _c = options.end, end = _c === void 0 ? true : _c, _d = options.encode, encode = _d === void 0 ? function (x) { return x; } : _d; + var endsWith = "[" + escapeString(options.endsWith || "") + "]|$"; + var delimiter = "[" + escapeString(options.delimiter || "/#?") + "]"; + var route = start ? "^" : ""; + // Iterate over the tokens and create our regexp string. + for (var _i = 0, tokens_1 = tokens; _i < tokens_1.length; _i++) { + var token = tokens_1[_i]; + if (typeof token === "string") { + route += escapeString(encode(token)); + } + else { + var prefix = escapeString(encode(token.prefix)); + var suffix = escapeString(encode(token.suffix)); + if (token.pattern) { + if (keys) + { keys.push(token); } + if (prefix || suffix) { + if (token.modifier === "+" || token.modifier === "*") { + var mod = token.modifier === "*" ? "?" : ""; + route += "(?:" + prefix + "((?:" + token.pattern + ")(?:" + suffix + prefix + "(?:" + token.pattern + "))*)" + suffix + ")" + mod; + } + else { + route += "(?:" + prefix + "(" + token.pattern + ")" + suffix + ")" + token.modifier; + } + } + else { + route += "(" + token.pattern + ")" + token.modifier; + } + } + else { + route += "(?:" + prefix + suffix + ")" + token.modifier; + } + } + } + if (end) { + if (!strict) + { route += delimiter + "?"; } + route += !options.endsWith ? "$" : "(?=" + endsWith + ")"; + } + else { + var endToken = tokens[tokens.length - 1]; + var isEndDelimited = typeof endToken === "string" + ? delimiter.indexOf(endToken[endToken.length - 1]) > -1 + : // tslint:disable-next-line + endToken === undefined; + if (!strict) { + route += "(?:" + delimiter + "(?=" + endsWith + "))?"; + } + if (!isEndDelimited) { + route += "(?=" + delimiter + "|" + endsWith + ")"; + } + } + return new RegExp(route, flags(options)); + } + /** + * Normalize the given path string, returning a regular expression. + * + * An empty array can be passed in for the keys, which will hold the + * placeholder key descriptions. For example, using `/user/:id`, `keys` will + * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`. + */ + function pathToRegexp(path, keys, options) { + if (path instanceof RegExp) + { return regexpToRegexp(path, keys); } + if (Array.isArray(path)) + { return arrayToRegexp(path, keys, options); } + return stringToRegexp(path, keys, options); + } + + var History = { + queue: [], + clearQueue: function clearQueue() { + if (History.queue.length === 0) { return; } + var currentQueue = History.queue.shift(); + currentQueue(); + }, + routerQueue: [], + clearRouterQueue: function clearRouterQueue() { + if (History.routerQueue.length === 0) { return; } + var currentQueue = History.routerQueue.pop(); + var router = currentQueue.router; + var stateUrl = currentQueue.stateUrl; + var action = currentQueue.action; + + var animate = router.params.animate; + if (router.params.pushStateAnimate === false) { animate = false; } + + if (action === 'back') { + router.back({ animate: animate, pushState: false }); + } + if (action === 'load') { + router.navigate(stateUrl, { animate: animate, pushState: false }); + } + }, + handle: function handle(e) { + if (History.blockPopstate) { return; } + var app = this; + // const mainView = app.views.main; + var state = e.state; + History.previousState = History.state; + History.state = state; + + History.allowChange = true; + History.clearQueue(); + + state = History.state; + if (!state) { state = {}; } + + app.views.forEach(function (view) { + var router = view.router; + var viewState = state[view.id]; + if (!viewState && view.params.pushState) { + viewState = { + url: view.router.history[0], + }; + } + if (!viewState) { return; } + var stateUrl = viewState.url || undefined; + + var animate = router.params.animate; + if (router.params.pushStateAnimate === false) { animate = false; } + + if (stateUrl !== router.url) { + if (router.history.indexOf(stateUrl) >= 0) { + // Go Back + if (router.allowPageChange) { + router.back({ animate: animate, pushState: false }); + } else { + History.routerQueue.push({ + action: 'back', + router: router, + }); + } + } else if (router.allowPageChange) { + // Load page + router.navigate(stateUrl, { animate: animate, pushState: false }); + } else { + History.routerQueue.unshift({ + action: 'load', + stateUrl: stateUrl, + router: router, + }); + } + } + }); + }, + initViewState: function initViewState(viewId, viewState) { + var obj; + + var newState = Utils.extend({}, (History.state || {}), ( obj = {}, obj[viewId] = viewState, obj )); + History.state = newState; + win.history.replaceState(newState, ''); + }, + push: function push(viewId, viewState, url) { + var obj; + + if (!History.allowChange) { + History.queue.push(function () { + History.push(viewId, viewState, url); + }); + return; + } + History.previousState = History.state; + var newState = Utils.extend({}, (History.previousState || {}), ( obj = {}, obj[viewId] = viewState, obj )); + History.state = newState; + win.history.pushState(newState, '', url); + }, + replace: function replace(viewId, viewState, url) { + var obj; + + if (!History.allowChange) { + History.queue.push(function () { + History.replace(viewId, viewState, url); + }); + return; + } + History.previousState = History.state; + var newState = Utils.extend({}, (History.previousState || {}), ( obj = {}, obj[viewId] = viewState, obj )); + History.state = newState; + win.history.replaceState(newState, '', url); + }, + go: function go(index) { + History.allowChange = false; + win.history.go(index); + }, + back: function back() { + History.allowChange = false; + win.history.back(); + }, + allowChange: true, + previousState: {}, + state: win.history.state, + blockPopstate: true, + init: function init(app) { + $(win).on('load', function () { + setTimeout(function () { + History.blockPopstate = false; + }, 0); + }); + + if (doc.readyState && doc.readyState === 'complete') { + History.blockPopstate = false; + } + + $(win).on('popstate', History.handle.bind(app)); + }, + }; + + function SwipeBack(r) { + var router = r; + var $el = router.$el; + var $navbarsEl = router.$navbarsEl; + var app = router.app; + var params = router.params; + var isTouched = false; + var isMoved = false; + var touchesStart = {}; + var isScrolling; + var $currentPageEl = []; + var $previousPageEl = []; + var viewContainerWidth; + var touchesDiff; + var allowViewTouchMove = true; + var touchStartTime; + var $currentNavbarEl = []; + var $previousNavbarEl = []; + var dynamicNavbar; + var $pageShadowEl; + var $pageOpacityEl; + + var animatableNavEls; + + var paramsSwipeBackAnimateShadow = params[((app.theme) + "SwipeBackAnimateShadow")]; + var paramsSwipeBackAnimateOpacity = params[((app.theme) + "SwipeBackAnimateOpacity")]; + var paramsSwipeBackActiveArea = params[((app.theme) + "SwipeBackActiveArea")]; + var paramsSwipeBackThreshold = params[((app.theme) + "SwipeBackThreshold")]; + + var transformOrigin = app.rtl ? 'right center' : 'left center'; + var transformOriginTitleLarge = app.rtl + ? 'calc(100% - var(--f7-navbar-large-title-padding-left) - var(--f7-safe-area-left)) center' + : 'calc(var(--f7-navbar-large-title-padding-left) + var(--f7-safe-area-left)) center'; + + + function animatableNavElements() { + var els = []; + var inverter = app.rtl ? -1 : 1; + var currentNavIsTransparent = $currentNavbarEl.hasClass('navbar-transparent') && !$currentNavbarEl.hasClass('navbar-large') && !$currentNavbarEl.hasClass('navbar-transparent-visible'); + var currentNavIsLarge = $currentNavbarEl.hasClass('navbar-large'); + var currentNavIsCollapsed = $currentNavbarEl.hasClass('navbar-large-collapsed'); + var currentNavIsLargeTransparent = $currentNavbarEl.hasClass('navbar-large-transparent') + || ( + $currentNavbarEl.hasClass('navbar-large') + && $currentNavbarEl.hasClass('navbar-transparent') + ); + var previousNavIsTransparent = $previousNavbarEl.hasClass('navbar-transparent') && !$previousNavbarEl.hasClass('navbar-large') && !$previousNavbarEl.hasClass('navbar-transparent-visible'); + var previousNavIsLarge = $previousNavbarEl.hasClass('navbar-large'); + var previousNavIsCollapsed = $previousNavbarEl.hasClass('navbar-large-collapsed'); + var previousNavIsLargeTransparent = $previousNavbarEl.hasClass('navbar-large-transparent') + || ( + $previousNavbarEl.hasClass('navbar-large') + && $previousNavbarEl.hasClass('navbar-transparent') + ); + var fromLarge = currentNavIsLarge && !currentNavIsCollapsed; + var toLarge = previousNavIsLarge && !previousNavIsCollapsed; + var $currentNavElements = $currentNavbarEl.find('.left, .title, .right, .subnavbar, .fading, .title-large, .navbar-bg'); + var $previousNavElements = $previousNavbarEl.find('.left, .title, .right, .subnavbar, .fading, .title-large, .navbar-bg'); + var activeNavBackIconText; + var previousNavBackIconText; + + if (params.iosAnimateNavbarBackIcon) { + if ($currentNavbarEl.hasClass('sliding') || $currentNavbarEl.find('.navbar-inner.sliding').length) { + activeNavBackIconText = $currentNavbarEl.find('.left').find('.back .icon + span').eq(0); + } else { + activeNavBackIconText = $currentNavbarEl.find('.left.sliding').find('.back .icon + span').eq(0); + } + if ($previousNavbarEl.hasClass('sliding') || $previousNavbarEl.find('.navbar-inner.sliding').length) { + previousNavBackIconText = $previousNavbarEl.find('.left').find('.back .icon + span').eq(0); + } else { + previousNavBackIconText = $previousNavbarEl.find('.left.sliding').find('.back .icon + span').eq(0); + } + if (activeNavBackIconText.length) { + $previousNavElements.each(function (index, el) { + if (!$(el).hasClass('title')) { return; } + el.f7NavbarLeftOffset += activeNavBackIconText.prev('.icon')[0].offsetWidth; + }); + } + } + $currentNavElements + .each(function (index, navEl) { + var $navEl = $(navEl); + var isSubnavbar = $navEl.hasClass('subnavbar'); + var isLeft = $navEl.hasClass('left'); + var isTitle = $navEl.hasClass('title'); + var isBg = $navEl.hasClass('navbar-bg'); + if ((isTitle || isBg) && currentNavIsTransparent) { return; } + if (!fromLarge && $navEl.hasClass('.title-large')) { return; } + var el = { + el: navEl, + }; + if (fromLarge) { + if (isTitle) { return; } + if ($navEl.hasClass('title-large')) { + if (els.indexOf(el) < 0) { els.push(el); } + el.overflow = 'visible'; + $navEl.find('.title-large-text').each(function (subIndex, subNavEl) { + els.push({ + el: subNavEl, + transform: function (progress) { return ("translateX(" + (progress * 100 * inverter) + "%)"); }, + }); + }); + return; + } + } + if (toLarge) { + if (!fromLarge) { + if ($navEl.hasClass('title-large')) { + if (els.indexOf(el) < 0) { els.push(el); } + el.opacity = 0; + } + } + if (isLeft) { + if (els.indexOf(el) < 0) { els.push(el); } + el.opacity = function (progress) { return (1 - (Math.pow( progress, 0.33 ))); }; + $navEl.find('.back span').each(function (subIndex, subNavEl) { + els.push({ + el: subNavEl, + 'transform-origin': transformOrigin, + transform: function (progress) { return ("translateX(calc(" + progress + " * (var(--f7-navbarTitleLargeOffset) - var(--f7-navbarLeftTextOffset)))) translateY(calc(" + progress + " * (var(--f7-navbar-large-title-height) - var(--f7-navbar-large-title-padding-vertical) / 2))) scale(" + (1 + (1 * progress)) + ")"); }, + }); + }); + return; + } + } + if (isBg) { + if (els.indexOf(el) < 0) { els.push(el); } + if (!fromLarge && !toLarge) { + if (currentNavIsCollapsed) { + if (currentNavIsLargeTransparent) { + el.className = 'ios-swipeback-navbar-bg-large'; + } + el.transform = function (progress) { return ("translateX(" + (100 * progress * inverter) + "%) translateY(calc(-1 * var(--f7-navbar-large-title-height)))"); }; + } else { + el.transform = function (progress) { return ("translateX(" + (100 * progress * inverter) + "%)"); }; + } + } + if (!fromLarge && toLarge) { + el.className = 'ios-swipeback-navbar-bg-large'; + el.transform = function (progress) { return ("translateX(" + (100 * progress * inverter) + "%) translateY(calc(-1 * " + (1 - progress) + " * var(--f7-navbar-large-title-height)))"); }; + } + if (fromLarge && toLarge) { + el.transform = function (progress) { return ("translateX(" + (100 * progress * inverter) + "%)"); }; + } + if (fromLarge && !toLarge) { + el.transform = function (progress) { return ("translateX(" + (100 * progress * inverter) + "%) translateY(calc(-" + progress + " * var(--f7-navbar-large-title-height)))"); }; + } + return; + } + if ($navEl.hasClass('title-large')) { return; } + var isSliding = $navEl.hasClass('sliding') || $navEl.parents('.navbar-inner.sliding').length; + if (els.indexOf(el) < 0) { els.push(el); } + if (!isSubnavbar || (isSubnavbar && !isSliding)) { + el.opacity = function (progress) { return (1 - (Math.pow( progress, 0.33 ))); }; + } + if (isSliding) { + var transformTarget = el; + if (isLeft && activeNavBackIconText.length && params.iosAnimateNavbarBackIcon) { + var textEl = { el: activeNavBackIconText[0] }; + transformTarget = textEl; + els.push(textEl); + } + transformTarget.transform = function (progress) { + var activeNavTranslate = progress * transformTarget.el.f7NavbarRightOffset; + if (Device.pixelRatio === 1) { activeNavTranslate = Math.round(activeNavTranslate); } + if (isSubnavbar && currentNavIsLarge) { + return ("translate3d(" + activeNavTranslate + "px, calc(-1 * var(--f7-navbar-large-collapse-progress) * var(--f7-navbar-large-title-height)), 0)"); + } + return ("translate3d(" + activeNavTranslate + "px,0,0)"); + }; + } + }); + $previousNavElements + .each(function (index, navEl) { + var $navEl = $(navEl); + var isSubnavbar = $navEl.hasClass('subnavbar'); + var isLeft = $navEl.hasClass('left'); + var isTitle = $navEl.hasClass('title'); + var isBg = $navEl.hasClass('navbar-bg'); + if ((isTitle || isBg) && previousNavIsTransparent) { return; } + var el = { + el: navEl, + }; + if (toLarge) { + if (isTitle) { return; } + if (els.indexOf(el) < 0) { els.push(el); } + + if ($navEl.hasClass('title-large')) { + el.opacity = 1; + el.overflow = 'visible'; + $navEl.find('.title-large-text').each(function (subIndex, subNavEl) { + els.push({ + el: subNavEl, + 'transform-origin': transformOriginTitleLarge, + opacity: function (progress) { return (Math.pow( progress, 3 )); }, + transform: function (progress) { return ("translateX(calc(" + (1 - progress) + " * (var(--f7-navbarLeftTextOffset) - var(--f7-navbarTitleLargeOffset)))) translateY(calc(" + (progress - 1) + " * var(--f7-navbar-large-title-height) + " + (1 - progress) + " * var(--f7-navbar-large-title-padding-vertical))) scale(" + (0.5 + progress * 0.5) + ")"); }, + }); + }); + return; + } + } + if (isBg) { + if (els.indexOf(el) < 0) { els.push(el); } + if (!fromLarge && !toLarge) { + if (previousNavIsCollapsed) { + if (previousNavIsLargeTransparent) { + el.className = 'ios-swipeback-navbar-bg-large'; + } + el.transform = function (progress) { return ("translateX(" + ((-100 + 100 * progress) * inverter) + "%) translateY(calc(-1 * var(--f7-navbar-large-title-height)))"); }; + } else { + el.transform = function (progress) { return ("translateX(" + ((-100 + 100 * progress) * inverter) + "%)"); }; + } + } + if (!fromLarge && toLarge) { + el.transform = function (progress) { return ("translateX(" + ((-100 + 100 * progress) * inverter) + "%) translateY(calc(-1 * " + (1 - progress) + " * var(--f7-navbar-large-title-height)))"); }; + } + if (fromLarge && !toLarge) { + el.className = 'ios-swipeback-navbar-bg-large'; + el.transform = function (progress) { return ("translateX(" + ((-100 + 100 * progress) * inverter) + "%) translateY(calc(-" + progress + " * var(--f7-navbar-large-title-height)))"); }; + } + if (fromLarge && toLarge) { + el.transform = function (progress) { return ("translateX(" + ((-100 + 100 * progress) * inverter) + "%)"); }; + } + + return; + } + if ($navEl.hasClass('title-large')) { return; } + var isSliding = $navEl.hasClass('sliding') || $previousNavbarEl.children('.navbar-inner.sliding').length; + if (els.indexOf(el) < 0) { els.push(el); } + if (!isSubnavbar || (isSubnavbar && !isSliding)) { + el.opacity = function (progress) { return (Math.pow( progress, 3 )); }; + } + if (isSliding) { + var transformTarget = el; + if (isLeft && previousNavBackIconText.length && params.iosAnimateNavbarBackIcon) { + var textEl = { el: previousNavBackIconText[0] }; + transformTarget = textEl; + els.push(textEl); + } + transformTarget.transform = function (progress) { + var previousNavTranslate = transformTarget.el.f7NavbarLeftOffset * (1 - progress); + if (Device.pixelRatio === 1) { previousNavTranslate = Math.round(previousNavTranslate); } + if (isSubnavbar && previousNavIsLarge) { + return ("translate3d(" + previousNavTranslate + "px, calc(-1 * var(--f7-navbar-large-collapse-progress) * var(--f7-navbar-large-title-height)), 0)"); + } + return ("translate3d(" + previousNavTranslate + "px,0,0)"); + }; + } + }); + return els; + } + + function setAnimatableNavElements(ref) { + if ( ref === void 0 ) ref = {}; + var progress = ref.progress; + var reset = ref.reset; + var transition = ref.transition; + var reflow = ref.reflow; + + var styles = ['overflow', 'transform', 'transform-origin', 'opacity']; + if (transition === true || transition === false) { + for (var i = 0; i < animatableNavEls.length; i += 1) { + var el = animatableNavEls[i]; + if (el && el.el) { + if (transition === true) { el.el.classList.add('navbar-page-transitioning'); } + if (transition === false) { el.el.classList.remove('navbar-page-transitioning'); } + } + } + } + if (reflow && animatableNavEls.length && animatableNavEls[0] && animatableNavEls[0].el) { + // eslint-disable-next-line + animatableNavEls[0].el._clientLeft = animatableNavEls[0].el.clientLeft; + } + for (var i$1 = 0; i$1 < animatableNavEls.length; i$1 += 1) { + var el$1 = animatableNavEls[i$1]; + if (el$1 && el$1.el) { + if (el$1.className && !el$1.classNameSet && !reset) { + el$1.el.classList.add(el$1.className); + el$1.classNameSet = true; + } + if (el$1.className && reset) { + el$1.el.classList.remove(el$1.className); + } + for (var j = 0; j < styles.length; j += 1) { + var styleProp = styles[j]; + if (el$1[styleProp]) { + if (reset) { + el$1.el.style[styleProp] = ''; + } else if (typeof el$1[styleProp] === 'function') { + el$1.el.style[styleProp] = el$1[styleProp](progress); + } else { + el$1.el.style[styleProp] = el$1[styleProp]; + } + } + } + } + } + } + + function handleTouchStart(e) { + var swipeBackEnabled = params[((app.theme) + "SwipeBack")]; + if (!allowViewTouchMove || !swipeBackEnabled || isTouched || (app.swipeout && app.swipeout.el) || !router.allowPageChange) { return; } + if ($(e.target).closest('.range-slider, .calendar-months').length > 0) { return; } + if ($(e.target).closest('.page-master, .page-master-detail').length > 0 && params.masterDetailBreakpoint > 0 && app.width >= params.masterDetailBreakpoint) { return; } + isMoved = false; + isTouched = true; + isScrolling = undefined; + touchesStart.x = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX; + touchesStart.y = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY; + touchStartTime = Utils.now(); + dynamicNavbar = router.dynamicNavbar; + } + function handleTouchMove(e) { + if (!isTouched) { return; } + var pageX = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX; + var pageY = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY; + if (typeof isScrolling === 'undefined') { + isScrolling = !!(isScrolling || Math.abs(pageY - touchesStart.y) > Math.abs(pageX - touchesStart.x)) || (pageX < touchesStart.x && !app.rtl) || (pageX > touchesStart.x && app.rtl); + } + if (isScrolling || e.f7PreventSwipeBack || app.preventSwipeBack) { + isTouched = false; + return; + } + if (!isMoved) { + // Calc values during first move fired + var cancel = false; + var target = $(e.target); + + var swipeout = target.closest('.swipeout'); + if (swipeout.length > 0) { + if (!app.rtl && swipeout.find('.swipeout-actions-left').length > 0) { cancel = true; } + if (app.rtl && swipeout.find('.swipeout-actions-right').length > 0) { cancel = true; } + } + + $currentPageEl = target.closest('.page'); + if ($currentPageEl.hasClass('no-swipeback') || target.closest('.no-swipeback, .card-opened').length > 0) { cancel = true; } + $previousPageEl = $el.find('.page-previous:not(.stacked)'); + if ($previousPageEl.length > 1) { + $previousPageEl = $previousPageEl.eq($previousPageEl.length - 1); + } + var notFromBorder = touchesStart.x - $el.offset().left > paramsSwipeBackActiveArea; + viewContainerWidth = $el.width(); + if (app.rtl) { + notFromBorder = touchesStart.x < ($el.offset().left - $el[0].scrollLeft) + (viewContainerWidth - paramsSwipeBackActiveArea); + } else { + notFromBorder = touchesStart.x - $el.offset().left > paramsSwipeBackActiveArea; + } + if (notFromBorder) { cancel = true; } + if ($previousPageEl.length === 0 || $currentPageEl.length === 0) { cancel = true; } + if (cancel) { + isTouched = false; + return; + } + + if (paramsSwipeBackAnimateShadow) { + $pageShadowEl = $currentPageEl.find('.page-shadow-effect'); + if ($pageShadowEl.length === 0) { + $pageShadowEl = $('
                          '); + $currentPageEl.append($pageShadowEl); + } + } + if (paramsSwipeBackAnimateOpacity) { + $pageOpacityEl = $previousPageEl.find('.page-opacity-effect'); + if ($pageOpacityEl.length === 0) { + $pageOpacityEl = $('
                          '); + $previousPageEl.append($pageOpacityEl); + } + } + + if (dynamicNavbar) { + $currentNavbarEl = $navbarsEl.find('.navbar-current:not(.stacked)'); + $previousNavbarEl = $navbarsEl.find('.navbar-previous:not(.stacked)'); + if ($previousNavbarEl.length > 1) { + $previousNavbarEl = $previousNavbarEl.eq($previousNavbarEl.length - 1); + } + + animatableNavEls = animatableNavElements(); + } + + // Close/Hide Any Picker + if ($('.sheet.modal-in').length > 0 && app.sheet) { + app.sheet.close($('.sheet.modal-in')); + } + } + e.f7PreventSwipePanel = true; + isMoved = true; + app.preventSwipePanelBySwipeBack = true; + e.preventDefault(); + + // RTL inverter + var inverter = app.rtl ? -1 : 1; + + // Touches diff + touchesDiff = (pageX - touchesStart.x - paramsSwipeBackThreshold) * inverter; + if (touchesDiff < 0) { touchesDiff = 0; } + var percentage = Math.min(Math.max(touchesDiff / viewContainerWidth, 0), 1); + + // Swipe Back Callback + var callbackData = { + percentage: percentage, + progress: percentage, + currentPageEl: $currentPageEl[0], + previousPageEl: $previousPageEl[0], + currentNavbarEl: $currentNavbarEl[0], + previousNavbarEl: $previousNavbarEl[0], + }; + $el.trigger('swipeback:move', callbackData); + router.emit('swipebackMove', callbackData); + + // Transform pages + var currentPageTranslate = touchesDiff * inverter; + var previousPageTranslate = ((touchesDiff / 5) - (viewContainerWidth / 5)) * inverter; + if (!app.rtl) { + currentPageTranslate = Math.min(currentPageTranslate, viewContainerWidth); + previousPageTranslate = Math.min(previousPageTranslate, 0); + } else { + currentPageTranslate = Math.max(currentPageTranslate, -viewContainerWidth); + previousPageTranslate = Math.max(previousPageTranslate, 0); + } + if (Device.pixelRatio === 1) { + currentPageTranslate = Math.round(currentPageTranslate); + previousPageTranslate = Math.round(previousPageTranslate); + } + + router.swipeBackActive = true; + $([$currentPageEl[0], $previousPageEl[0]]).addClass('page-swipeback-active'); + + $currentPageEl.transform(("translate3d(" + currentPageTranslate + "px,0,0)")); + if (paramsSwipeBackAnimateShadow) { $pageShadowEl[0].style.opacity = 1 - (1 * percentage); } + + if (app.theme === 'ios') { + $previousPageEl.transform(("translate3d(" + previousPageTranslate + "px,0,0)")); + } + if (paramsSwipeBackAnimateOpacity) { $pageOpacityEl[0].style.opacity = 1 - (1 * percentage); } + + // Dynamic Navbars Animation + if (!dynamicNavbar) { return; } + + setAnimatableNavElements({ progress: percentage }); + } + function handleTouchEnd() { + app.preventSwipePanelBySwipeBack = false; + if (!isTouched || !isMoved) { + isTouched = false; + isMoved = false; + return; + } + isTouched = false; + isMoved = false; + router.swipeBackActive = false; + var $pages = $([$currentPageEl[0], $previousPageEl[0]]); + $pages.removeClass('page-swipeback-active'); + if (touchesDiff === 0) { + $pages.transform(''); + if ($pageShadowEl && $pageShadowEl.length > 0) { $pageShadowEl.remove(); } + if ($pageOpacityEl && $pageOpacityEl.length > 0) { $pageOpacityEl.remove(); } + if (dynamicNavbar) { + setAnimatableNavElements({ reset: true }); + } + return; + } + var timeDiff = Utils.now() - touchStartTime; + var pageChanged = false; + // Swipe back to previous page + if ( + (timeDiff < 300 && touchesDiff > 10) + || (timeDiff >= 300 && touchesDiff > viewContainerWidth / 2) + ) { + $currentPageEl.removeClass('page-current').addClass(("page-next" + (app.theme !== 'ios' ? ' page-next-on-right' : ''))); + $previousPageEl.removeClass('page-previous').addClass('page-current').removeAttr('aria-hidden'); + if ($pageShadowEl) { $pageShadowEl[0].style.opacity = ''; } + if ($pageOpacityEl) { $pageOpacityEl[0].style.opacity = ''; } + if (dynamicNavbar) { + router.setNavbarPosition($currentNavbarEl, 'next'); + router.setNavbarPosition($previousNavbarEl, 'current', false); + } + pageChanged = true; + } + // Reset custom styles + // Add transitioning class for transition-duration + $pages.addClass('page-transitioning page-transitioning-swipeback'); + if (!pageChanged) { + // eslint-disable-next-line + $currentPageEl[0]._clientLeft = $currentPageEl[0].clientLeft; + } + $pages.transform(''); + + if (dynamicNavbar) { + setAnimatableNavElements({ progress: pageChanged ? 1 : 0, transition: true, reflow: !pageChanged }); + } + allowViewTouchMove = false; + router.allowPageChange = false; + + // Swipe Back Callback + var callbackData = { + currentPageEl: $currentPageEl[0], + previousPageEl: $previousPageEl[0], + currentNavbarEl: $currentNavbarEl[0], + previousNavbarEl: $previousNavbarEl[0], + }; + + if (pageChanged) { + // Update Route + router.currentRoute = $previousPageEl[0].f7Page.route; + router.currentPage = $previousPageEl[0]; + + // Page before animation callback + router.pageCallback('beforeOut', $currentPageEl, $currentNavbarEl, 'current', 'next', { route: $currentPageEl[0].f7Page.route, swipeBack: true }); + router.pageCallback('beforeIn', $previousPageEl, $previousNavbarEl, 'previous', 'current', { route: $previousPageEl[0].f7Page.route, swipeBack: true }, $currentPageEl[0]); + + $el.trigger('swipeback:beforechange', callbackData); + router.emit('swipebackBeforeChange', callbackData); + } else { + $el.trigger('swipeback:beforereset', callbackData); + router.emit('swipebackBeforeReset', callbackData); + } + + $currentPageEl.transitionEnd(function () { + $pages.removeClass('page-transitioning page-transitioning-swipeback'); + if (dynamicNavbar) { + setAnimatableNavElements({ reset: true, transition: false }); + } + allowViewTouchMove = true; + router.allowPageChange = true; + if (pageChanged) { + // Update History + if (router.history.length === 1) { + router.history.unshift(router.url); + } + router.history.pop(); + router.saveHistory(); + + // Update push state + if (params.pushState) { + History.back(); + } + + // Page after animation callback + router.pageCallback('afterOut', $currentPageEl, $currentNavbarEl, 'current', 'next', { route: $currentPageEl[0].f7Page.route, swipeBack: true }); + router.pageCallback('afterIn', $previousPageEl, $previousNavbarEl, 'previous', 'current', { route: $previousPageEl[0].f7Page.route, swipeBack: true }); + + // Remove Old Page + if (params.stackPages && router.initialPages.indexOf($currentPageEl[0]) >= 0) { + $currentPageEl.addClass('stacked'); + if (dynamicNavbar) { + $currentNavbarEl.addClass('stacked'); + } + } else { + router.pageCallback('beforeRemove', $currentPageEl, $currentNavbarEl, 'next', { swipeBack: true }); + router.removePage($currentPageEl); + if (dynamicNavbar) { + router.removeNavbar($currentNavbarEl); + } + } + + $el.trigger('swipeback:afterchange', callbackData); + router.emit('swipebackAfterChange', callbackData); + + router.emit('routeChanged', router.currentRoute, router.previousRoute, router); + + if (params.preloadPreviousPage) { + router.back(router.history[router.history.length - 2], { preload: true }); + } + } else { + $el.trigger('swipeback:afterreset', callbackData); + router.emit('swipebackAfterReset', callbackData); + } + if ($pageShadowEl && $pageShadowEl.length > 0) { $pageShadowEl.remove(); } + if ($pageOpacityEl && $pageOpacityEl.length > 0) { $pageOpacityEl.remove(); } + }); + } + + function attachEvents() { + var passiveListener = (app.touchEvents.start === 'touchstart' && Support.passiveListener) ? { passive: true, capture: false } : false; + $el.on(app.touchEvents.start, handleTouchStart, passiveListener); + app.on('touchmove:active', handleTouchMove); + app.on('touchend:passive', handleTouchEnd); + } + function detachEvents() { + var passiveListener = (app.touchEvents.start === 'touchstart' && Support.passiveListener) ? { passive: true, capture: false } : false; + $el.off(app.touchEvents.start, handleTouchStart, passiveListener); + app.off('touchmove:active', handleTouchMove); + app.off('touchend:passive', handleTouchEnd); + } + + attachEvents(); + + router.on('routerDestroy', detachEvents); + } + + function redirect (direction, route, options) { + var router = this; + var redirect = route.route.redirect; + if (options.initial && router.params.pushState) { + options.replaceState = true; // eslint-disable-line + options.history = true; // eslint-disable-line + } + function redirectResolve(redirectUrl, redirectOptions) { + if ( redirectOptions === void 0 ) redirectOptions = {}; + + router.allowPageChange = true; + router[direction](redirectUrl, Utils.extend({}, options, redirectOptions)); + } + function redirectReject() { + router.allowPageChange = true; + } + if (typeof redirect === 'function') { + router.allowPageChange = false; + var redirectUrl = redirect.call(router, route, redirectResolve, redirectReject); + if (redirectUrl && typeof redirectUrl === 'string') { + router.allowPageChange = true; + return router[direction](redirectUrl, options); + } + return router; + } + return router[direction](redirect, options); + } + + function processQueue(router, routerQueue, routeQueue, to, from, resolve, reject) { + var queue = []; + + if (Array.isArray(routeQueue)) { + queue.push.apply(queue, routeQueue); + } else if (routeQueue && typeof routeQueue === 'function') { + queue.push(routeQueue); + } + if (routerQueue) { + if (Array.isArray(routerQueue)) { + queue.push.apply(queue, routerQueue); + } else { + queue.push(routerQueue); + } + } + + function next() { + if (queue.length === 0) { + resolve(); + return; + } + var queueItem = queue.shift(); + + queueItem.call( + router, + to, + from, + function () { + next(); + }, + function () { + reject(); + } + ); + } + next(); + } + + function processRouteQueue (to, from, resolve, reject) { + var router = this; + function enterNextRoute() { + if (to && to.route && (router.params.routesBeforeEnter || to.route.beforeEnter)) { + router.allowPageChange = false; + processQueue( + router, + router.params.routesBeforeEnter, + to.route.beforeEnter, + to, + from, + function () { + router.allowPageChange = true; + resolve(); + }, + function () { + reject(); + } + ); + } else { + resolve(); + } + } + function leaveCurrentRoute() { + if (from && from.route && (router.params.routesBeforeLeave || from.route.beforeLeave)) { + router.allowPageChange = false; + processQueue( + router, + router.params.routesBeforeLeave, + from.route.beforeLeave, + to, + from, + function () { + router.allowPageChange = true; + enterNextRoute(); + }, + function () { + reject(); + } + ); + } else { + enterNextRoute(); + } + } + leaveCurrentRoute(); + } + + function appRouterCheck (router, method) { + if (!router.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." + method + "(...)")); + } + } + + function asyncComponent (router, asyncComponent, resolve, reject) { + function resolvePromise(componentPromise) { + componentPromise + .then(function (c) { + // eslint-disable-next-line + resolve({ component: c.default || c._default || c }); + }) + .catch(function (err) { + reject(); + throw new Error(err); + }); + } + if (asyncComponent instanceof Promise) { + resolvePromise(asyncComponent); + return; + } + var asyncComponentResult = asyncComponent.call(router); + if (asyncComponentResult instanceof Promise) { + resolvePromise(asyncComponentResult); + } else { + resolve({ component: asyncComponentResult }); + } + } + + function refreshPage() { + var router = this; + appRouterCheck(router, 'refreshPage'); + return router.navigate(router.currentRoute.url, { + ignoreCache: true, + reloadCurrent: true, + }); + } + + function forward(el, forwardOptions) { + if ( forwardOptions === void 0 ) forwardOptions = {}; + + var router = this; + var $el = $(el); + var app = router.app; + var view = router.view; + var options = Utils.extend(false, { + animate: router.params.animate, + pushState: true, + replaceState: false, + history: true, + reloadCurrent: router.params.reloadPages, + reloadPrevious: false, + reloadAll: false, + clearPreviousHistory: false, + reloadDetail: router.params.reloadDetail, + on: {}, + }, forwardOptions); + + var masterDetailEnabled = router.params.masterDetailBreakpoint > 0; + var isMaster = masterDetailEnabled && options.route && options.route.route && options.route.route.master === true; + var masterPageEl; + var otherDetailPageEl; + + var currentRouteIsModal = router.currentRoute.modal; + var modalType; + if (!currentRouteIsModal) { + ('popup popover sheet loginScreen actions customModal panel').split(' ').forEach(function (modalLoadProp) { + if (router.currentRoute && router.currentRoute.route && router.currentRoute.route[modalLoadProp]) { + currentRouteIsModal = true; + modalType = modalLoadProp; + } + }); + } + + if (currentRouteIsModal) { + var modalToClose = router.currentRoute.modal + || router.currentRoute.route.modalInstance + || app[modalType].get(); + var previousUrl = router.history[router.history.length - 2]; + var previousRoute = router.findMatchingRoute(previousUrl); + if (!previousRoute && previousUrl) { + previousRoute = { + url: previousUrl, + path: previousUrl.split('?')[0], + query: Utils.parseUrlQuery(previousUrl), + route: { + path: previousUrl.split('?')[0], + url: previousUrl, + }, + }; + } + + router.modalRemove(modalToClose); + } + + var dynamicNavbar = router.dynamicNavbar; + + var $viewEl = router.$el; + var $newPage = $el; + var reload = options.reloadPrevious || options.reloadCurrent || options.reloadAll; + var $oldPage; + + var $navbarsEl; + var $newNavbarEl; + var $oldNavbarEl; + + router.allowPageChange = false; + if ($newPage.length === 0) { + router.allowPageChange = true; + return router; + } + + if ($newPage.length) { + // Remove theme elements + router.removeThemeElements($newPage); + } + + if (dynamicNavbar) { + $newNavbarEl = $newPage.children('.navbar'); + $navbarsEl = router.$navbarsEl; + if ($newNavbarEl.length === 0 && $newPage[0] && $newPage[0].f7Page) { + // Try from pageData + $newNavbarEl = $newPage[0].f7Page.$navbarEl; + } + } + + // Save Keep Alive Cache + if (options.route && options.route.route && options.route.route.keepAlive && !options.route.route.keepAliveData) { + options.route.route.keepAliveData = { + pageEl: $el[0], + }; + } + + // Pages In View + var $pagesInView = $viewEl + .children('.page:not(.stacked)') + .filter(function (index, pageInView) { return pageInView !== $newPage[0]; }); + + // Navbars In View + var $navbarsInView; + if (dynamicNavbar) { + $navbarsInView = $navbarsEl + .children('.navbar:not(.stacked)') + .filter(function (index, navbarInView) { return navbarInView !== $newNavbarEl[0]; }); + } + + // Exit when reload previous and only 1 page in view so nothing ro reload + if (options.reloadPrevious && $pagesInView.length < 2) { + router.allowPageChange = true; + return router; + } + + // Find Detail' master page + var isDetail; + var reloadDetail; + var isDetailRoot; + if (masterDetailEnabled && !options.reloadAll) { + for (var i = 0; i < $pagesInView.length; i += 1) { + if (!masterPageEl + && $pagesInView[i].classList.contains('page-master') + ) { + masterPageEl = $pagesInView[i]; + continue; // eslint-disable-line + } + } + isDetail = !isMaster && masterPageEl; + + if (isDetail) { + // Find Other Detail + if (masterPageEl) { + for (var i$1 = 0; i$1 < $pagesInView.length; i$1 += 1) { + if ($pagesInView[i$1].classList.contains('page-master-detail') + ) { + otherDetailPageEl = $pagesInView[i$1]; + continue; // eslint-disable-line + } + } + } + } + reloadDetail = isDetail && options.reloadDetail && app.width >= router.params.masterDetailBreakpoint && masterPageEl; + } + if (isDetail) { + isDetailRoot = !otherDetailPageEl || reloadDetail || options.reloadAll || options.reloadCurrent; + } + + // New Page + var newPagePosition = 'next'; + if (options.reloadCurrent || options.reloadAll || reloadDetail) { + newPagePosition = 'current'; + } else if (options.reloadPrevious) { + newPagePosition = 'previous'; + } + $newPage + .removeClass('page-previous page-current page-next') + .addClass(("page-" + newPagePosition + (isMaster ? ' page-master' : '') + (isDetail ? ' page-master-detail' : '') + (isDetailRoot ? ' page-master-detail-root' : ''))) + .removeClass('stacked') + .trigger('page:unstack') + .trigger('page:position', { position: newPagePosition }); + router.emit('pageUnstack', $newPage[0]); + router.emit('pagePosition', $newPage[0], newPagePosition); + + if (isMaster || isDetail) { + $newPage.trigger('page:role', { role: isMaster ? 'master' : 'detail', root: !!isDetailRoot }); + router.emit('pageRole', $newPage[0], { role: isMaster ? 'master' : 'detail', detailRoot: !!isDetailRoot }); + } + + if (dynamicNavbar && $newNavbarEl.length) { + $newNavbarEl + .removeClass('navbar-previous navbar-current navbar-next') + .addClass(("navbar-" + newPagePosition + (isMaster ? ' navbar-master' : '') + (isDetail ? ' navbar-master-detail' : '') + (isDetailRoot ? ' navbar-master-detail-root' : ''))) + .removeClass('stacked'); + $newNavbarEl.trigger('navbar:position', { position: newPagePosition }); + router.emit('navbarPosition', $newNavbarEl[0], newPagePosition); + if (isMaster || isDetail) { + router.emit('navbarRole', $newNavbarEl[0], { role: isMaster ? 'master' : 'detail', detailRoot: !!isDetailRoot }); + } + } + + // Find Old Page + if (options.reloadCurrent || reloadDetail) { + $oldPage = $pagesInView.eq($pagesInView.length - 1); + if (dynamicNavbar) { + // $oldNavbarEl = $navbarsInView.eq($pagesInView.length - 1); + $oldNavbarEl = $(app.navbar.getElByPage($oldPage)); + } + } else if (options.reloadPrevious) { + $oldPage = $pagesInView.eq($pagesInView.length - 2); + if (dynamicNavbar) { + // $oldNavbarEl = $navbarsInView.eq($pagesInView.length - 2); + $oldNavbarEl = $(app.navbar.getElByPage($oldPage)); + } + } else if (options.reloadAll) { + $oldPage = $pagesInView.filter(function (index, pageEl) { return pageEl !== $newPage[0]; }); + if (dynamicNavbar) { + $oldNavbarEl = $navbarsInView.filter(function (index, navbarEl) { return navbarEl !== $newNavbarEl[0]; }); + } + } else { + var removedPageEls = []; + var removedNavbarEls = []; + if ($pagesInView.length > 1) { + var i$2 = 0; + for (i$2 = 0; i$2 < $pagesInView.length - 1; i$2 += 1) { + if (masterPageEl + && $pagesInView[i$2] === masterPageEl + ) { + $pagesInView.eq(i$2).addClass('page-master-stacked'); + $pagesInView.eq(i$2).trigger('page:masterstack'); + router.emit('pageMasterStack', $pagesInView[i$2]); + if (dynamicNavbar) { + $(app.navbar.getElByPage(masterPageEl)).addClass('navbar-master-stacked'); + router.emit('navbarMasterStack', app.navbar.getElByPage(masterPageEl)); + } + continue; // eslint-disable-line + } + var oldNavbarEl = app.navbar.getElByPage($pagesInView.eq(i$2)); + if (router.params.stackPages) { + $pagesInView.eq(i$2).addClass('stacked'); + $pagesInView.eq(i$2).trigger('page:stack'); + router.emit('pageStack', $pagesInView[i$2]); + if (dynamicNavbar) { + $(oldNavbarEl).addClass('stacked'); + } + } else { + // Page remove event + removedPageEls.push($pagesInView[i$2]); + router.pageCallback('beforeRemove', $pagesInView[i$2], $navbarsInView && $navbarsInView[i$2], 'previous', undefined, options); + router.removePage($pagesInView[i$2]); + if (dynamicNavbar && oldNavbarEl) { + removedNavbarEls.push(oldNavbarEl); + router.removeNavbar(oldNavbarEl); + } + } + } + } + $oldPage = $viewEl + .children('.page:not(.stacked)') + .filter(function (index, pageEl) { return pageEl !== $newPage[0] && removedPageEls.indexOf(pageEl) < 0; }); + if (dynamicNavbar) { + $oldNavbarEl = $navbarsEl + .children('.navbar:not(.stacked)') + .filter(function (index, navbarEl) { return navbarEl !== $newNavbarEl[0] && removedNavbarEls.indexOf(removedNavbarEls) < 0; }); + } + removedPageEls = []; + removedNavbarEls = []; + } + + if (isDetail && !options.reloadAll) { + if ($oldPage.length > 1 || reloadDetail) { + $oldPage = $oldPage.filter(function (pageIndex, pageEl) { return !pageEl.classList.contains('page-master'); }); + } + if ($oldNavbarEl && ($oldNavbarEl.length > 1 || reloadDetail)) { + $oldNavbarEl = $oldNavbarEl.filter(function (navbarIndex, navbarEl) { return !navbarEl.classList.contains('navbar-master'); }); + } + } + + // Push State + if (router.params.pushState && (options.pushState || options.replaceState) && !options.reloadPrevious) { + var pushStateRoot = router.params.pushStateRoot || ''; + History[options.reloadCurrent || (reloadDetail && otherDetailPageEl) || options.reloadAll || options.replaceState ? 'replace' : 'push']( + view.id, + { + url: options.route.url, + }, + pushStateRoot + router.params.pushStateSeparator + options.route.url + ); + } + + if (!options.reloadPrevious) { + // Current Page & Navbar + router.currentPageEl = $newPage[0]; + if (dynamicNavbar && $newNavbarEl.length) { + router.currentNavbarEl = $newNavbarEl[0]; + } else { + delete router.currentNavbarEl; + } + + // Current Route + router.currentRoute = options.route; + } + + // Update router history + var url = options.route.url; + + if (options.history) { + if (((options.reloadCurrent || (reloadDetail && otherDetailPageEl)) && router.history.length) > 0 || options.replaceState) { + router.history[router.history.length - (options.reloadPrevious ? 2 : 1)] = url; + } else if (options.reloadPrevious) { + router.history[router.history.length - 2] = url; + } else if (options.reloadAll) { + router.history = [url]; + } else { + router.history.push(url); + } + } + router.saveHistory(); + + // Insert new page and navbar + var newPageInDom = $newPage.parents(doc).length > 0; + var f7Component = $newPage[0].f7Component; + if (options.reloadPrevious) { + if (f7Component && !newPageInDom) { + f7Component.$mount(function (componentEl) { + $(componentEl).insertBefore($oldPage); + }); + } else { + $newPage.insertBefore($oldPage); + } + if (dynamicNavbar && $newNavbarEl.length) { + if ($newNavbarEl.find('.title-large').length) { + $newNavbarEl.addClass('navbar-large'); + } + if ($oldNavbarEl.length) { + $newNavbarEl.insertBefore($oldNavbarEl); + } else { + if (!router.$navbarsEl.parents(doc).length) { + router.$el.prepend(router.$navbarsEl); + } + $navbarsEl.append($newNavbarEl); + } + } + } else { + if ($oldPage.next('.page')[0] !== $newPage[0]) { + if (f7Component && !newPageInDom) { + f7Component.$mount(function (componentEl) { + $viewEl.append(componentEl); + }); + } else { + $viewEl.append($newPage[0]); + } + } + if (dynamicNavbar && $newNavbarEl.length) { + if ($newNavbarEl.find('.title-large').length) { + $newNavbarEl.addClass('navbar-large'); + } + if (!router.$navbarsEl.parents(doc).length) { + router.$el.prepend(router.$navbarsEl); + } + $navbarsEl.append($newNavbarEl[0]); + } + } + if (!newPageInDom) { + router.pageCallback('mounted', $newPage, $newNavbarEl, newPagePosition, (reload ? newPagePosition : 'current'), options, $oldPage); + } else if (options.route && options.route.route && options.route.route.keepAlive && !$newPage[0].f7PageMounted) { + $newPage[0].f7PageMounted = true; + router.pageCallback('mounted', $newPage, $newNavbarEl, newPagePosition, (reload ? newPagePosition : 'current'), options, $oldPage); + } + + // Remove old page + if ((options.reloadCurrent || reloadDetail) && $oldPage.length > 0) { + if (router.params.stackPages && router.initialPages.indexOf($oldPage[0]) >= 0) { + $oldPage.addClass('stacked'); + $oldPage.trigger('page:stack'); + router.emit('pageStack', $oldPage[0]); + if (dynamicNavbar) { + $oldNavbarEl.addClass('stacked'); + } + } else { + // Page remove event + router.pageCallback('beforeOut', $oldPage, $oldNavbarEl, 'current', undefined, options); + router.pageCallback('afterOut', $oldPage, $oldNavbarEl, 'current', undefined, options); + router.pageCallback('beforeRemove', $oldPage, $oldNavbarEl, 'current', undefined, options); + router.removePage($oldPage); + if (dynamicNavbar && $oldNavbarEl && $oldNavbarEl.length) { + router.removeNavbar($oldNavbarEl); + } + } + } else if (options.reloadAll) { + $oldPage.each(function (index, pageEl) { + var $oldPageEl = $(pageEl); + var $oldNavbarElEl = $(app.navbar.getElByPage($oldPageEl)); + if (router.params.stackPages && router.initialPages.indexOf($oldPageEl[0]) >= 0) { + $oldPageEl.addClass('stacked'); + $oldPageEl.trigger('page:stack'); + router.emit('pageStack', $oldPageEl[0]); + if (dynamicNavbar) { + $oldNavbarElEl.addClass('stacked'); + } + } else { + // Page remove event + if ($oldPageEl.hasClass('page-current')) { + router.pageCallback('beforeOut', $oldPage, $oldNavbarEl, 'current', undefined, options); + router.pageCallback('afterOut', $oldPage, $oldNavbarEl, 'current', undefined, options); + } + router.pageCallback('beforeRemove', $oldPageEl, $oldNavbarEl && $oldNavbarEl.eq(index), 'previous', undefined, options); + router.removePage($oldPageEl); + if (dynamicNavbar && $oldNavbarElEl.length) { + router.removeNavbar($oldNavbarElEl); + } + } + }); + } else if (options.reloadPrevious) { + if (router.params.stackPages && router.initialPages.indexOf($oldPage[0]) >= 0) { + $oldPage.addClass('stacked'); + $oldPage.trigger('page:stack'); + router.emit('pageStack', $oldPage[0]); + if (dynamicNavbar) { + $oldNavbarEl.addClass('stacked'); + } + } else { + // Page remove event + router.pageCallback('beforeRemove', $oldPage, $oldNavbarEl, 'previous', undefined, options); + router.removePage($oldPage); + if (dynamicNavbar && $oldNavbarEl && $oldNavbarEl.length) { + router.removeNavbar($oldNavbarEl); + } + } + } + + // Load Tab + if (options.route.route.tab) { + router.tabLoad(options.route.route.tab, Utils.extend({}, options, { + history: false, + pushState: false, + })); + } + + // Check master detail + if (masterDetailEnabled) { + view.checkMasterDetailBreakpoint(); + } + + // Page init and before init events + router.pageCallback('init', $newPage, $newNavbarEl, newPagePosition, reload ? newPagePosition : 'current', options, $oldPage); + + if (options.reloadCurrent || options.reloadAll || reloadDetail) { + router.allowPageChange = true; + router.pageCallback('beforeIn', $newPage, $newNavbarEl, newPagePosition, 'current', options); + $newPage.removeAttr('aria-hidden'); + if (dynamicNavbar && $newNavbarEl) { + $newNavbarEl.removeAttr('aria-hidden'); + } + router.pageCallback('afterIn', $newPage, $newNavbarEl, newPagePosition, 'current', options); + if (options.reloadCurrent && options.clearPreviousHistory) { router.clearPreviousHistory(); } + if (reloadDetail) { + router.setPagePosition($(masterPageEl), 'previous'); + if (masterPageEl.f7Page && masterPageEl.f7Page.navbarEl) { + router.setNavbarPosition($(masterPageEl.f7Page.navbarEl), 'previous'); + } + } + return router; + } + if (options.reloadPrevious) { + router.allowPageChange = true; + return router; + } + + // Before animation event + router.pageCallback('beforeOut', $oldPage, $oldNavbarEl, 'current', 'previous', options); + router.pageCallback('beforeIn', $newPage, $newNavbarEl, 'next', 'current', options); + + // Animation + function afterAnimation() { + router.setPagePosition($newPage, 'current', false); + router.setPagePosition($oldPage, 'previous', !$oldPage.hasClass('page-master')); + if (dynamicNavbar) { + router.setNavbarPosition($newNavbarEl, 'current', false); + router.setNavbarPosition($oldNavbarEl, 'previous', !$oldNavbarEl.hasClass('navbar-master')); + } + // After animation event + router.allowPageChange = true; + router.pageCallback('afterOut', $oldPage, $oldNavbarEl, 'current', 'previous', options); + router.pageCallback('afterIn', $newPage, $newNavbarEl, 'next', 'current', options); + + var keepOldPage = (router.params.preloadPreviousPage || router.params[((app.theme) + "SwipeBack")]) && !isMaster; + if (!keepOldPage) { + if ($newPage.hasClass('smart-select-page') || $newPage.hasClass('photo-browser-page') || $newPage.hasClass('autocomplete-page') || $newPage.hasClass('color-picker-page')) { + keepOldPage = true; + } + } + if (!keepOldPage) { + if (router.params.stackPages) { + $oldPage.addClass('stacked'); + $oldPage.trigger('page:stack'); + router.emit('pageStack', $oldPage[0]); + if (dynamicNavbar) { + $oldNavbarEl.addClass('stacked'); + } + } else if (!($newPage.attr('data-name') && $newPage.attr('data-name') === 'smart-select-page')) { + // Remove event + router.pageCallback('beforeRemove', $oldPage, $oldNavbarEl, 'previous', undefined, options); + router.removePage($oldPage); + if (dynamicNavbar && $oldNavbarEl.length) { + router.removeNavbar($oldNavbarEl); + } + } + } + if (options.clearPreviousHistory) { router.clearPreviousHistory(); } + router.emit('routeChanged', router.currentRoute, router.previousRoute, router); + + if (router.params.pushState) { + History.clearRouterQueue(); + } + } + function setPositionClasses() { + router.setPagePosition($oldPage, 'current', false); + router.setPagePosition($newPage, 'next', false); + if (dynamicNavbar) { + router.setNavbarPosition($oldNavbarEl, 'current', false); + router.setNavbarPosition($newNavbarEl, 'next', false); + } + } + if (options.animate && !(isMaster && app.width >= router.params.masterDetailBreakpoint)) { + var delay = router.params[((router.app.theme) + "PageLoadDelay")]; + var transition = router.params.transition; + if (options.transition) { transition = options.transition; } + if (!transition && router.currentRoute && router.currentRoute.route) { + transition = router.currentRoute.route.transition; + } + if (!transition && router.currentRoute && router.currentRoute.route.options) { + transition = router.currentRoute.route.options.transition; + } + if (transition) { + $newPage[0].f7PageTransition = transition; + } + + if (delay) { + setTimeout(function () { + setPositionClasses(); + router.animate($oldPage, $newPage, $oldNavbarEl, $newNavbarEl, 'forward', transition, function () { + afterAnimation(); + }); + }, delay); + } else { + setPositionClasses(); + router.animate($oldPage, $newPage, $oldNavbarEl, $newNavbarEl, 'forward', transition, function () { + afterAnimation(); + }); + } + } else { + afterAnimation(); + } + return router; + } + function load(loadParams, loadOptions, ignorePageChange) { + if ( loadParams === void 0 ) loadParams = {}; + if ( loadOptions === void 0 ) loadOptions = {}; + + var router = this; + if (!router.allowPageChange && !ignorePageChange) { return router; } + var params = loadParams; + var options = loadOptions; + var url = params.url; + var content = params.content; + var el = params.el; + var pageName = params.pageName; + var template = params.template; + var templateUrl = params.templateUrl; + var component = params.component; + var componentUrl = params.componentUrl; + + if (!options.reloadCurrent + && options.route + && options.route.route + && options.route.route.parentPath + && router.currentRoute.route + && router.currentRoute.route.parentPath === options.route.route.parentPath) { + // Do something nested + if (options.route.url === router.url) { + router.allowPageChange = true; + return false; + } + // Check for same params + var sameParams = Object.keys(options.route.params).length === Object.keys(router.currentRoute.params).length; + if (sameParams) { + // Check for equal params name + Object.keys(options.route.params).forEach(function (paramName) { + if ( + !(paramName in router.currentRoute.params) + || (router.currentRoute.params[paramName] !== options.route.params[paramName]) + ) { + sameParams = false; + } + }); + } + if (sameParams) { + if (options.route.route.tab) { + return router.tabLoad(options.route.route.tab, options); + } + return false; + } + if (!sameParams + && options.route.route.tab + && router.currentRoute.route.tab + && router.currentRoute.parentPath === options.route.parentPath + ) { + return router.tabLoad(options.route.route.tab, options); + } + } + + if ( + options.route + && options.route.url + && router.url === options.route.url + && !(options.reloadCurrent || options.reloadPrevious) + && !router.params.allowDuplicateUrls + ) { + router.allowPageChange = true; + return false; + } + + if (!options.route && url) { + options.route = router.parseRouteUrl(url); + Utils.extend(options.route, { route: { url: url, path: url } }); + } + + // Component Callbacks + function resolve(pageEl, newOptions) { + return router.forward(pageEl, Utils.extend(options, newOptions)); + } + function reject() { + router.allowPageChange = true; + return router; + } + + if (url || templateUrl || componentUrl || component) { + router.allowPageChange = false; + } + + // Proceed + if (content) { + router.forward(router.getPageEl(content), options); + } else if (template || templateUrl) { + // Parse template and send page element + try { + router.pageTemplateLoader(template, templateUrl, options, resolve, reject); + } catch (err) { + router.allowPageChange = true; + throw err; + } + } else if (el) { + // Load page from specified HTMLElement or by page name in pages container + router.forward(router.getPageEl(el), options); + } else if (pageName) { + // Load page by page name in pages container + router.forward(router.$el.children((".page[data-name=\"" + pageName + "\"]")).eq(0), options); + } else if (component || componentUrl) { + // Load from component (F7/Vue/React/...) + try { + router.pageComponentLoader(router.el, component, componentUrl, options, resolve, reject); + } catch (err) { + router.allowPageChange = true; + throw err; + } + } else if (url) { + // Load using XHR + if (router.xhr) { + router.xhr.abort(); + router.xhr = false; + } + router.xhrRequest(url, options) + .then(function (pageContent) { + router.forward(router.getPageEl(pageContent), options); + }) + .catch(function () { + router.allowPageChange = true; + }); + } + return router; + } + function navigate(navigateParams, navigateOptions) { + if ( navigateOptions === void 0 ) navigateOptions = {}; + + var router = this; + if (router.swipeBackActive) { return router; } + var url; + var createRoute; + var name; + var path; + var query; + var params; + var route; + if (typeof navigateParams === 'string') { + url = navigateParams; + } else { + url = navigateParams.url; + createRoute = navigateParams.route; + name = navigateParams.name; + path = navigateParams.path; + query = navigateParams.query; + params = navigateParams.params; + } + if (name || path) { + url = router.generateUrl({ path: path, name: name, params: params, query: query }); + if (url) { + return router.navigate(url, navigateOptions); + } + return router; + } + var app = router.app; + appRouterCheck(router, 'navigate'); + if (url === '#' || url === '') { + return router; + } + + var navigateUrl = url.replace('./', ''); + if (navigateUrl[0] !== '/' && navigateUrl.indexOf('#') !== 0) { + var currentPath = router.currentRoute.parentPath || router.currentRoute.path; + navigateUrl = ((currentPath ? (currentPath + "/") : '/') + navigateUrl) + .replace('///', '/') + .replace('//', '/'); + } + if (createRoute) { + route = Utils.extend(router.parseRouteUrl(navigateUrl), { + route: Utils.extend({}, createRoute), + }); + } else { + route = router.findMatchingRoute(navigateUrl); + } + + if (!route) { + return router; + } + if (route.route && route.route.viewName) { + var anotherViewName = route.route.viewName; + var anotherView = app.views[anotherViewName]; + if (!anotherView) { + throw new Error(("Framework7: There is no View with \"" + anotherViewName + "\" name that was specified in this route")); + } + if (anotherView !== router.view) { + return anotherView.router.navigate(navigateParams, navigateOptions); + } + } + + if (route.route.redirect) { + return redirect.call(router, 'navigate', route, navigateOptions); + } + + + var options = {}; + if (route.route.options) { + Utils.extend(options, route.route.options, navigateOptions); + } else { + Utils.extend(options, navigateOptions); + } + options.route = route; + + if (options && options.context) { + route.context = options.context; + options.route.context = options.context; + } + + function resolve() { + var routerLoaded = false; + ('popup popover sheet loginScreen actions customModal panel').split(' ').forEach(function (modalLoadProp) { + if (route.route[modalLoadProp] && !routerLoaded) { + routerLoaded = true; + router.modalLoad(modalLoadProp, route, options); + } + }); + if (route.route.keepAlive && route.route.keepAliveData) { + router.load({ el: route.route.keepAliveData.pageEl }, options, false); + routerLoaded = true; + } + ('url content component pageName el componentUrl template templateUrl').split(' ').forEach(function (pageLoadProp) { + var obj; + + if (route.route[pageLoadProp] && !routerLoaded) { + routerLoaded = true; + router.load(( obj = {}, obj[pageLoadProp] = route.route[pageLoadProp], obj ), options, false); + } + }); + if (routerLoaded) { return; } + // Async + function asyncResolve(resolveParams, resolveOptions) { + router.allowPageChange = false; + var resolvedAsModal = false; + if (resolveOptions && resolveOptions.context) { + if (!route.context) { route.context = resolveOptions.context; } + else { route.context = Utils.extend({}, route.context, resolveOptions.context); } + options.route.context = route.context; + } + ('popup popover sheet loginScreen actions customModal panel').split(' ').forEach(function (modalLoadProp) { + if (resolveParams[modalLoadProp]) { + resolvedAsModal = true; + var modalRoute = Utils.extend({}, route, { route: resolveParams }); + router.allowPageChange = true; + router.modalLoad(modalLoadProp, modalRoute, Utils.extend(options, resolveOptions)); + } + }); + if (resolvedAsModal) { return; } + router.load(resolveParams, Utils.extend(options, resolveOptions), true); + } + function asyncReject() { + router.allowPageChange = true; + } + if (route.route.async) { + router.allowPageChange = false; + route.route.async.call(router, options.route, router.currentRoute, asyncResolve, asyncReject); + } + if (route.route.asyncComponent) { + asyncComponent(router, route.route.asyncComponent, asyncResolve, asyncReject); + } + } + function reject() { + router.allowPageChange = true; + } + + if (router.params.masterDetailBreakpoint > 0 && route.route.masterRoute) { + // load detail route + var preloadMaster = true; + var masterLoaded = false; + if (router.currentRoute && router.currentRoute.route) { + if ( + router.currentRoute.route.master + && ( + router.currentRoute.route === route.route.masterRoute + || router.currentRoute.route.path === route.route.masterRoute.path + ) + ) { + preloadMaster = false; + } + if ( + router.currentRoute.route.masterRoute + && (router.currentRoute.route.masterRoute === route.route.masterRoute + || router.currentRoute.route.masterRoute.path === route.route.masterRoute.path + ) + ) { + preloadMaster = false; + masterLoaded = true; + } + } + if (preloadMaster || (masterLoaded && navigateOptions.reloadAll)) { + router.navigate({ path: route.route.masterRoute.path, params: route.params || {} }, { + animate: false, + reloadAll: navigateOptions.reloadAll, + reloadCurrent: navigateOptions.reloadCurrent, + reloadPrevious: navigateOptions.reloadPrevious, + pushState: !navigateOptions.initial, + history: !navigateOptions.initial, + once: { + pageAfterIn: function pageAfterIn() { + router.navigate(navigateParams, Utils.extend({}, navigateOptions, { + animate: false, + reloadAll: false, + reloadCurrent: false, + reloadPrevious: false, + history: !navigateOptions.initial, + pushState: !navigateOptions.initial, + })); + }, + }, + }); + return router; + } + } + + processRouteQueue.call( + router, + route, + router.currentRoute, + function () { + if (route.route.modules) { + app + .loadModules(Array.isArray(route.route.modules) ? route.route.modules : [route.route.modules]) + .then(function () { + resolve(); + }) + .catch(function () { + reject(); + }); + } else { + resolve(); + } + }, + function () { + reject(); + } + ); + + // Return Router + return router; + } + + function tabLoad(tabRoute, loadOptions) { + if ( loadOptions === void 0 ) loadOptions = {}; + + var router = this; + var options = Utils.extend({ + animate: router.params.animate, + pushState: true, + history: true, + parentPageEl: null, + preload: false, + on: {}, + }, loadOptions); + + var currentRoute; + var previousRoute; + if (options.route) { + // Set Route + if (!options.preload && options.route !== router.currentRoute) { + previousRoute = router.previousRoute; + router.currentRoute = options.route; + } + if (options.preload) { + currentRoute = options.route; + previousRoute = router.currentRoute; + } else { + currentRoute = router.currentRoute; + if (!previousRoute) { previousRoute = router.previousRoute; } + } + + // Update Browser History + if (router.params.pushState && options.pushState && !options.reloadPrevious) { + History.replace( + router.view.id, + { + url: options.route.url, + }, + (router.params.pushStateRoot || '') + router.params.pushStateSeparator + options.route.url + ); + } + + // Update Router History + if (options.history) { + router.history[Math.max(router.history.length - 1, 0)] = options.route.url; + router.saveHistory(); + } + } + + // Show Tab + var $parentPageEl = $(options.parentPageEl || router.currentPageEl); + var tabEl; + if ($parentPageEl.length && $parentPageEl.find(("#" + (tabRoute.id))).length) { + tabEl = $parentPageEl.find(("#" + (tabRoute.id))).eq(0); + } else if (router.view.selector) { + tabEl = (router.view.selector) + " #" + (tabRoute.id); + } else { + tabEl = "#" + (tabRoute.id); + } + var tabShowResult = router.app.tab.show({ + tabEl: tabEl, + animate: options.animate, + tabRoute: options.route, + }); + + var $newTabEl = tabShowResult.$newTabEl; + var $oldTabEl = tabShowResult.$oldTabEl; + var animated = tabShowResult.animated; + var onTabsChanged = tabShowResult.onTabsChanged; + + if ($newTabEl && $newTabEl.parents('.page').length > 0 && options.route) { + var tabParentPageData = $newTabEl.parents('.page')[0].f7Page; + if (tabParentPageData && options.route) { + tabParentPageData.route = options.route; + } + } + + // Tab Content Loaded + function onTabLoaded(contentEl) { + // Remove theme elements + router.removeThemeElements($newTabEl); + + var tabEventTarget = $newTabEl; + if (typeof contentEl !== 'string') { tabEventTarget = $(contentEl); } + + tabEventTarget.trigger('tab:init tab:mounted', tabRoute); + router.emit('tabInit tabMounted', $newTabEl[0], tabRoute); + + if ($oldTabEl && $oldTabEl.length) { + if (animated) { + onTabsChanged(function () { + router.emit('routeChanged', router.currentRoute, router.previousRoute, router); + if (router.params.unloadTabContent) { + router.tabRemove($oldTabEl, $newTabEl, tabRoute); + } + }); + } else { + router.emit('routeChanged', router.currentRoute, router.previousRoute, router); + if (router.params.unloadTabContent) { + router.tabRemove($oldTabEl, $newTabEl, tabRoute); + } + } + } + } + + if ($newTabEl[0].f7RouterTabLoaded) { + if (!$oldTabEl || !$oldTabEl.length) { return router; } + if (animated) { + onTabsChanged(function () { + router.emit('routeChanged', router.currentRoute, router.previousRoute, router); + }); + } else { + router.emit('routeChanged', router.currentRoute, router.previousRoute, router); + } + return router; + } + + // Load Tab Content + function loadTab(loadTabParams, loadTabOptions) { + // Load Tab Props + var url = loadTabParams.url; + var content = loadTabParams.content; + var el = loadTabParams.el; + var template = loadTabParams.template; + var templateUrl = loadTabParams.templateUrl; + var component = loadTabParams.component; + var componentUrl = loadTabParams.componentUrl; + // Component/Template Callbacks + function resolve(contentEl) { + router.allowPageChange = true; + if (!contentEl) { return; } + if (typeof contentEl === 'string') { + $newTabEl.html(contentEl); + } else { + $newTabEl.html(''); + if (contentEl.f7Component) { + contentEl.f7Component.$mount(function (componentEl) { + $newTabEl.append(componentEl); + }); + } else { + $newTabEl.append(contentEl); + } + } + $newTabEl[0].f7RouterTabLoaded = true; + onTabLoaded(contentEl); + } + function reject() { + router.allowPageChange = true; + return router; + } + + if (content) { + resolve(content); + } else if (template || templateUrl) { + try { + router.tabTemplateLoader(template, templateUrl, loadTabOptions, resolve, reject); + } catch (err) { + router.allowPageChange = true; + throw err; + } + } else if (el) { + resolve(el); + } else if (component || componentUrl) { + // Load from component (F7/Vue/React/...) + try { + router.tabComponentLoader($newTabEl[0], component, componentUrl, loadTabOptions, resolve, reject); + } catch (err) { + router.allowPageChange = true; + throw err; + } + } else if (url) { + // Load using XHR + if (router.xhr) { + router.xhr.abort(); + router.xhr = false; + } + router.xhrRequest(url, loadTabOptions) + .then(function (tabContent) { + resolve(tabContent); + }) + .catch(function () { + router.allowPageChange = true; + }); + } + } + + var hasContentLoadProp; + ('url content component el componentUrl template templateUrl').split(' ').forEach(function (tabLoadProp) { + var obj; + + if (tabRoute[tabLoadProp]) { + hasContentLoadProp = true; + loadTab(( obj = {}, obj[tabLoadProp] = tabRoute[tabLoadProp], obj ), options); + } + }); + + // Async + function asyncResolve(resolveParams, resolveOptions) { + loadTab(resolveParams, Utils.extend(options, resolveOptions)); + } + function asyncReject() { + router.allowPageChange = true; + } + if (tabRoute.async) { + tabRoute.async.call(router, currentRoute, previousRoute, asyncResolve, asyncReject); + } else if (tabRoute.asyncComponent) { + asyncComponent(router, tabRoute.asyncComponent, asyncResolve, asyncReject); + } else if (!hasContentLoadProp) { + router.allowPageChange = true; + } + + return router; + } + function tabRemove($oldTabEl, $newTabEl, tabRoute) { + var router = this; + + var hasTabComponentChild; + if ($oldTabEl[0]) { + $oldTabEl[0].f7RouterTabLoaded = false; + delete $oldTabEl[0].f7RouterTabLoaded; + } + $oldTabEl.children().each(function (index, tabChild) { + if (tabChild.f7Component) { + hasTabComponentChild = true; + $(tabChild).trigger('tab:beforeremove', tabRoute); + tabChild.f7Component.$destroy(); + } + }); + if (!hasTabComponentChild) { + $oldTabEl.trigger('tab:beforeremove', tabRoute); + } + router.emit('tabBeforeRemove', $oldTabEl[0], $newTabEl[0], tabRoute); + router.removeTabContent($oldTabEl[0], tabRoute); + } + + function modalLoad(modalType, route, loadOptions) { + if ( loadOptions === void 0 ) loadOptions = {}; + + var router = this; + var app = router.app; + var isPanel = modalType === 'panel'; + var modalOrPanel = isPanel ? 'panel' : 'modal'; + + var options = Utils.extend({ + animate: router.params.animate, + pushState: true, + history: true, + on: {}, + }, loadOptions); + + var modalParams = Utils.extend({}, route.route[modalType]); + var modalRoute = route.route; + + function onModalLoaded() { + // Create Modal + var modal = app[modalType].create(modalParams); + modalRoute.modalInstance = modal; + + var hasEl = modal.el; + + function closeOnSwipeBack() { + modal.close(); + } + modal.on((modalOrPanel + "Open"), function () { + if (!hasEl) { + // Remove theme elements + router.removeThemeElements(modal.el); + + // Emit events + modal.$el.trigger(((modalType.toLowerCase()) + ":init " + (modalType.toLowerCase()) + ":mounted"), route, modal); + router.emit(((!isPanel ? 'modalInit' : '') + " " + modalType + "Init " + modalType + "Mounted"), modal.el, route, modal); + } + router.once('swipeBackMove', closeOnSwipeBack); + }); + modal.on((modalOrPanel + "Close"), function () { + router.off('swipeBackMove', closeOnSwipeBack); + if (!modal.closeByRouter) { + router.back(); + } + }); + + modal.on((modalOrPanel + "Closed"), function () { + modal.$el.trigger(((modalType.toLowerCase()) + ":beforeremove"), route, modal); + modal.emit(("" + (!isPanel ? 'modalBeforeRemove ' : '') + modalType + "BeforeRemove"), modal.el, route, modal); + var modalComponent = modal.el.f7Component; + if (modalComponent) { + modalComponent.$destroy(); + } + Utils.nextTick(function () { + if (modalComponent || modalParams.component) { + router.removeModal(modal.el); + } + modal.destroy(); + delete modal.route; + delete modalRoute.modalInstance; + }); + }); + + if (options.route) { + // Update Browser History + if (router.params.pushState && options.pushState) { + History.push( + router.view.id, + { + url: options.route.url, + modal: modalType, + }, + (router.params.pushStateRoot || '') + router.params.pushStateSeparator + options.route.url + ); + } + + // Set Route + if (options.route !== router.currentRoute) { + modal.route = Utils.extend(options.route, { modal: modal }); + router.currentRoute = modal.route; + } + + // Update Router History + if (options.history) { + router.history.push(options.route.url); + router.saveHistory(); + } + } + + if (hasEl) { + // Remove theme elements + router.removeThemeElements(modal.el); + + // Emit events + modal.$el.trigger(((modalType.toLowerCase()) + ":init " + (modalType.toLowerCase()) + ":mounted"), route, modal); + router.emit((modalOrPanel + "Init " + modalType + "Init " + modalType + "Mounted"), modal.el, route, modal); + } + + // Open + modal.open(); + } + + // Load Modal Content + function loadModal(loadModalParams, loadModalOptions) { + // Load Modal Props + var url = loadModalParams.url; + var content = loadModalParams.content; + var template = loadModalParams.template; + var templateUrl = loadModalParams.templateUrl; + var component = loadModalParams.component; + var componentUrl = loadModalParams.componentUrl; + + // Component/Template Callbacks + function resolve(contentEl) { + if (contentEl) { + if (typeof contentEl === 'string') { + modalParams.content = contentEl; + } else if (contentEl.f7Component) { + contentEl.f7Component.$mount(function (componentEl) { + modalParams.el = componentEl; + app.root.append(componentEl); + }); + } else { + modalParams.el = contentEl; + } + onModalLoaded(); + } + } + function reject() { + router.allowPageChange = true; + return router; + } + + if (content) { + resolve(content); + } else if (template || templateUrl) { + try { + router.modalTemplateLoader(template, templateUrl, loadModalOptions, resolve, reject); + } catch (err) { + router.allowPageChange = true; + throw err; + } + } else if (component || componentUrl) { + // Load from component (F7/Vue/React/...) + try { + router.modalComponentLoader(app.root[0], component, componentUrl, loadModalOptions, resolve, reject); + } catch (err) { + router.allowPageChange = true; + throw err; + } + } else if (url) { + // Load using XHR + if (router.xhr) { + router.xhr.abort(); + router.xhr = false; + } + router.xhrRequest(url, loadModalOptions) + .then(function (modalContent) { + modalParams.content = modalContent; + onModalLoaded(); + }) + .catch(function () { + router.allowPageChange = true; + }); + } else { + onModalLoaded(); + } + } + + var foundLoadProp; + ('url content component el componentUrl template templateUrl').split(' ').forEach(function (modalLoadProp) { + var obj; + + if (modalParams[modalLoadProp] && !foundLoadProp) { + foundLoadProp = true; + loadModal(( obj = {}, obj[modalLoadProp] = modalParams[modalLoadProp], obj ), options); + } + }); + if (!foundLoadProp && modalType === 'actions') { + onModalLoaded(); + } + + // Async + function asyncResolve(resolveParams, resolveOptions) { + loadModal(resolveParams, Utils.extend(options, resolveOptions)); + } + function asyncReject() { + router.allowPageChange = true; + } + if (modalParams.async) { + modalParams.async.call(router, options.route, router.currentRoute, asyncResolve, asyncReject); + } + if (modalParams.asyncComponent) { + asyncComponent(router, modalParams.asyncComponent, asyncResolve, asyncReject); + } + return router; + } + function modalRemove(modal) { + Utils.extend(modal, { closeByRouter: true }); + modal.close(); + } + + function backward(el, backwardOptions) { + var router = this; + var $el = $(el); + var app = router.app; + var view = router.view; + + var options = Utils.extend({ + animate: router.params.animate, + pushState: true, + replaceState: false, + }, backwardOptions); + + var masterDetailEnabled = router.params.masterDetailBreakpoint > 0; + var isMaster = masterDetailEnabled && options.route && options.route.route && options.route.route.master === true; + var masterPageEl; + var masterPageRemoved; + + var dynamicNavbar = router.dynamicNavbar; + + var $newPage = $el; + var $oldPage = router.$el.children('.page-current'); + var currentIsMaster = masterDetailEnabled && $oldPage.hasClass('page-master'); + + if ($newPage.length) { + // Remove theme elements + router.removeThemeElements($newPage); + } + + var $navbarsEl; + var $newNavbarEl; + var $oldNavbarEl; + + if (dynamicNavbar) { + $newNavbarEl = $newPage.children('.navbar'); + $navbarsEl = router.$navbarsEl; + if ($newNavbarEl.length === 0 && $newPage[0] && $newPage[0].f7Page) { + // Try from pageData + $newNavbarEl = $newPage[0].f7Page.$navbarEl; + } + $oldNavbarEl = $navbarsEl.find('.navbar-current'); + } + + router.allowPageChange = false; + if ($newPage.length === 0 || $oldPage.length === 0) { + router.allowPageChange = true; + return router; + } + + // Remove theme elements + router.removeThemeElements($newPage); + + // Save Keep Alive Cache + if (options.route && options.route.route && options.route.route.keepAlive && !options.route.route.keepAliveData) { + options.route.route.keepAliveData = { + pageEl: $el[0], + }; + } + + // Pages In View + var isDetail; + var isDetailRoot; + if (masterDetailEnabled) { + var $pagesInView = router.$el + .children('.page:not(.stacked)') + .filter(function (index, pageInView) { return pageInView !== $newPage[0]; }); + + // Find Detail' master page + for (var i = 0; i < $pagesInView.length; i += 1) { + if (!masterPageEl + && $pagesInView[i].classList.contains('page-master') + ) { + masterPageEl = $pagesInView[i]; + continue; // eslint-disable-line + } + } + + isDetail = !isMaster + && masterPageEl + && (router.history.indexOf(options.route.url) > router.history.indexOf(masterPageEl.f7Page.route.url)); + + if (!isDetail && !isMaster && masterPageEl && masterPageEl.f7Page && options.route.route.masterRoute) { + isDetail = options.route.route.masterRoute.path === masterPageEl.f7Page.route.route.path; + } + } + if (isDetail && masterPageEl && masterPageEl.f7Page) { + isDetailRoot = router.history.indexOf(options.route.url) - router.history.indexOf(masterPageEl.f7Page.route.url) === 1; + } + + // New Page + $newPage + .addClass(("page-previous" + (isMaster ? ' page-master' : '') + (isDetail ? ' page-master-detail' : '') + (isDetailRoot ? ' page-master-detail-root' : ''))) + .removeClass('stacked') + .removeAttr('aria-hidden') + .trigger('page:unstack') + .trigger('page:position', { position: 'previous' }); + router.emit('pageUnstack', $newPage[0]); + router.emit('pagePosition', $newPage[0], 'previous'); + if (isMaster || isDetail) { + $newPage.trigger('page:role', { role: isMaster ? 'master' : 'detail', root: !!isDetailRoot }); + router.emit('pageRole', $newPage[0], { role: isMaster ? 'master' : 'detail', detailRoot: !!isDetailRoot }); + } + + if (dynamicNavbar && $newNavbarEl.length > 0) { + $newNavbarEl + .addClass(("navbar-previous" + (isMaster ? ' navbar-master' : '') + (isDetail ? ' navbar-master-detail' : '') + (isDetailRoot ? ' navbar-master-detail-root' : ''))) + .removeClass('stacked') + .removeAttr('aria-hidden'); + $newNavbarEl.trigger('navbar:position', { position: 'previous' }); + router.emit('navbarPosition', $newNavbarEl[0], 'previous'); + if (isMaster || isDetailRoot) { + router.emit('navbarRole', $newNavbarEl[0], { role: isMaster ? 'master' : 'detail', detailRoot: !!isDetailRoot }); + } + } + + // Remove previous page in case of "forced" + var backIndex; + if (options.force) { + if ($oldPage.prev('.page-previous:not(.stacked)').length > 0 || $oldPage.prev('.page-previous').length === 0) { + if (router.history.indexOf(options.route.url) >= 0) { + backIndex = router.history.length - router.history.indexOf(options.route.url) - 1; + router.history = router.history.slice(0, router.history.indexOf(options.route.url) + 2); + view.history = router.history; + } else if (router.history[[router.history.length - 2]]) { + router.history[router.history.length - 2] = options.route.url; + } else { + router.history.unshift(router.url); + } + + if (backIndex && router.params.stackPages) { + $oldPage.prevAll('.page-previous').each(function (index, pageToRemove) { + var $pageToRemove = $(pageToRemove); + var $navbarToRemove; + if (dynamicNavbar) { + // $navbarToRemove = $oldNavbarEl.prevAll('.navbar-previous').eq(index); + $navbarToRemove = $(app.navbar.getElByPage($pageToRemove)); + } + if ($pageToRemove[0] !== $newPage[0] && $pageToRemove.index() > $newPage.index()) { + if (router.initialPages.indexOf($pageToRemove[0]) >= 0) { + $pageToRemove.addClass('stacked'); + $pageToRemove.trigger('page:stack'); + router.emit('pageStack', $pageToRemove[0]); + if (dynamicNavbar) { + $navbarToRemove.addClass('stacked'); + } + } else { + router.pageCallback('beforeRemove', $pageToRemove, $navbarToRemove, 'previous', undefined, options); + if ($pageToRemove[0] === masterPageEl) { + masterPageRemoved = true; + } + router.removePage($pageToRemove); + if (dynamicNavbar && $navbarToRemove.length > 0) { + router.removeNavbar($navbarToRemove); + } + } + } + }); + } else { + var $pageToRemove = $oldPage.prev('.page-previous:not(.stacked)'); + var $navbarToRemove; + if (dynamicNavbar) { + // $navbarToRemove = $oldNavbarEl.prev('.navbar-inner:not(.stacked)'); + $navbarToRemove = $(app.navbar.getElByPage($pageToRemove)); + } + if (router.params.stackPages && router.initialPages.indexOf($pageToRemove[0]) >= 0) { + $pageToRemove.addClass('stacked'); + $pageToRemove.trigger('page:stack'); + router.emit('pageStack', $pageToRemove[0]); + $navbarToRemove.addClass('stacked'); + } else if ($pageToRemove.length > 0) { + router.pageCallback('beforeRemove', $pageToRemove, $navbarToRemove, 'previous', undefined, options); + if ($pageToRemove[0] === masterPageEl) { + masterPageRemoved = true; + } + router.removePage($pageToRemove); + if (dynamicNavbar && $navbarToRemove.length) { + router.removeNavbar($navbarToRemove); + } + } + } + } + } + + // Insert new page + var newPageInDom = $newPage.parents(doc).length > 0; + var f7Component = $newPage[0].f7Component; + + function insertPage() { + if ($newPage.next($oldPage).length === 0) { + if (!newPageInDom && f7Component) { + f7Component.$mount(function (componentEl) { + $(componentEl).insertBefore($oldPage); + }); + } else { + $newPage.insertBefore($oldPage); + } + } + if (dynamicNavbar && $newNavbarEl.length) { + if ($newNavbarEl.find('.title-large').length) { + $newNavbarEl.addClass('navbar-large'); + } + $newNavbarEl.insertBefore($oldNavbarEl); + if ($oldNavbarEl.length > 0) { + $newNavbarEl.insertBefore($oldNavbarEl); + } else { + if (!router.$navbarsEl.parents(doc).length) { + router.$el.prepend(router.$navbarsEl); + } + $navbarsEl.append($newNavbarEl); + } + } + if (!newPageInDom) { + router.pageCallback('mounted', $newPage, $newNavbarEl, 'previous', 'current', options, $oldPage); + } else if (options.route && options.route.route && options.route.route.keepAlive && !$newPage[0].f7PageMounted) { + $newPage[0].f7PageMounted = true; + router.pageCallback('mounted', $newPage, $newNavbarEl, 'previous', 'current', options, $oldPage); + } + } + + if (options.preload) { + // Insert Page + insertPage(); + // Tab route + if (options.route.route.tab) { + router.tabLoad(options.route.route.tab, Utils.extend({}, options, { + history: false, + pushState: false, + preload: true, + })); + } + if (isMaster) { + $newPage + .removeClass('page-master-stacked') + .trigger('page:masterunstack'); + router.emit('pageMasterUnstack', $newPage[0]); + if (dynamicNavbar) { + $(app.navbar.getElByPage($newPage)).removeClass('navbar-master-stacked'); + router.emit('navbarMasterUnstack', app.navbar.getElByPage($newPage)); + } + } + // Page init and before init events + router.pageCallback('init', $newPage, $newNavbarEl, 'previous', 'current', options, $oldPage); + var $previousPages = $newPage.prevAll('.page-previous:not(.stacked):not(.page-master)'); + if ($previousPages.length > 0) { + $previousPages.each(function (index, pageToRemove) { + var $pageToRemove = $(pageToRemove); + var $navbarToRemove; + if (dynamicNavbar) { + // $navbarToRemove = $newNavbarEl.prevAll('.navbar-previous:not(.stacked)').eq(index); + $navbarToRemove = $(app.navbar.getElByPage($pageToRemove)); + } + if (router.params.stackPages && router.initialPages.indexOf(pageToRemove) >= 0) { + $pageToRemove.addClass('stacked'); + $pageToRemove.trigger('page:stack'); + router.emit('pageStack', $pageToRemove[0]); + if (dynamicNavbar) { + $navbarToRemove.addClass('stacked'); + } + } else { + router.pageCallback('beforeRemove', $pageToRemove, $navbarToRemove, 'previous', undefined); + router.removePage($pageToRemove); + if (dynamicNavbar && $navbarToRemove.length) { + router.removeNavbar($navbarToRemove); + } + } + }); + } + router.allowPageChange = true; + return router; + } + + // History State + if (!(Device.ie || Device.edge || (Device.firefox && !Device.ios))) { + if (router.params.pushState && options.pushState) { + if (options.replaceState) { + var pushStateRoot = router.params.pushStateRoot || ''; + History.replace( + view.id, + { + url: options.route.url, + }, + pushStateRoot + router.params.pushStateSeparator + options.route.url + ); + } else if (backIndex) { + History.go(-backIndex); + } else { + History.back(); + } + } + } + + // Update History + if (options.replaceState) { + router.history[router.history.length - 1] = options.route.url; + } else { + if (router.history.length === 1) { + router.history.unshift(router.url); + } + router.history.pop(); + } + router.saveHistory(); + + // Current Page & Navbar + router.currentPageEl = $newPage[0]; + if (dynamicNavbar && $newNavbarEl.length) { + router.currentNavbarEl = $newNavbarEl[0]; + } else { + delete router.currentNavbarEl; + } + + // Current Route + router.currentRoute = options.route; + + // History State + if (Device.ie || Device.edge || (Device.firefox && !Device.ios)) { + if (router.params.pushState && options.pushState) { + if (options.replaceState) { + var pushStateRoot$1 = router.params.pushStateRoot || ''; + History.replace( + view.id, + { + url: options.route.url, + }, + pushStateRoot$1 + router.params.pushStateSeparator + options.route.url + ); + } else if (backIndex) { + History.go(-backIndex); + } else { + History.back(); + } + } + } + + // Insert Page + insertPage(); + + // Load Tab + if (options.route.route.tab) { + router.tabLoad(options.route.route.tab, Utils.extend({}, options, { + history: false, + pushState: false, + })); + } + + // Check master detail + + if (masterDetailEnabled && (currentIsMaster || masterPageRemoved)) { + view.checkMasterDetailBreakpoint(false); + } + + // Page init and before init events + router.pageCallback('init', $newPage, $newNavbarEl, 'previous', 'current', options, $oldPage); + + // Before animation callback + router.pageCallback('beforeOut', $oldPage, $oldNavbarEl, 'current', 'next', options); + router.pageCallback('beforeIn', $newPage, $newNavbarEl, 'previous', 'current', options); + + // Animation + function afterAnimation() { + // Set classes + router.setPagePosition($newPage, 'current', false); + router.setPagePosition($oldPage, 'next', true); + if (dynamicNavbar) { + router.setNavbarPosition($newNavbarEl, 'current', false); + router.setNavbarPosition($oldNavbarEl, 'next', true); + } + + // After animation event + router.pageCallback('afterOut', $oldPage, $oldNavbarEl, 'current', 'next', options); + router.pageCallback('afterIn', $newPage, $newNavbarEl, 'previous', 'current', options); + + // Remove Old Page + if (router.params.stackPages && router.initialPages.indexOf($oldPage[0]) >= 0) { + $oldPage.addClass('stacked'); + $oldPage.trigger('page:stack'); + router.emit('pageStack', $oldPage[0]); + if (dynamicNavbar) { + $oldNavbarEl.addClass('stacked'); + } + } else { + router.pageCallback('beforeRemove', $oldPage, $oldNavbarEl, 'next', undefined, options); + router.removePage($oldPage); + if (dynamicNavbar && $oldNavbarEl.length) { + router.removeNavbar($oldNavbarEl); + } + } + + router.allowPageChange = true; + router.emit('routeChanged', router.currentRoute, router.previousRoute, router); + + // Preload previous page + var preloadPreviousPage = router.params.preloadPreviousPage || router.params[((app.theme) + "SwipeBack")]; + if (preloadPreviousPage && router.history[router.history.length - 2] && !isMaster) { + router.back(router.history[router.history.length - 2], { preload: true }); + } + if (router.params.pushState) { + History.clearRouterQueue(); + } + } + + function setPositionClasses() { + router.setPagePosition($oldPage, 'current'); + router.setPagePosition($newPage, 'previous', false); + if (dynamicNavbar) { + router.setNavbarPosition($oldNavbarEl, 'current'); + router.setNavbarPosition($newNavbarEl, 'previous', false); + } + } + + if (options.animate && !(currentIsMaster && app.width >= router.params.masterDetailBreakpoint)) { + var transition = router.params.transition; + if ($oldPage[0] && $oldPage[0].f7PageTransition) { + transition = $oldPage[0].f7PageTransition; + delete $oldPage[0].f7PageTransition; + } + if (options.transition) { transition = options.transition; } + if (!transition && router.previousRoute && router.previousRoute.route) { + transition = router.previousRoute.route.transition; + } + if (!transition && router.previousRoute && router.previousRoute.route && router.previousRoute.route.options) { + transition = router.previousRoute.route.options.transition; + } + setPositionClasses(); + router.animate($oldPage, $newPage, $oldNavbarEl, $newNavbarEl, 'backward', transition, function () { + afterAnimation(); + }); + } else { + afterAnimation(); + } + + return router; + } + function loadBack(backParams, backOptions, ignorePageChange) { + var router = this; + + if (!router.allowPageChange && !ignorePageChange) { return router; } + var params = backParams; + var options = backOptions; + var url = params.url; + var content = params.content; + var el = params.el; + var pageName = params.pageName; + var template = params.template; + var templateUrl = params.templateUrl; + var component = params.component; + var componentUrl = params.componentUrl; + + if ( + options.route.url + && router.url === options.route.url + && !(options.reloadCurrent || options.reloadPrevious) + && !router.params.allowDuplicateUrls + ) { + return false; + } + + if (!options.route && url) { + options.route = router.parseRouteUrl(url); + } + + // Component Callbacks + function resolve(pageEl, newOptions) { + return router.backward(pageEl, Utils.extend(options, newOptions)); + } + function reject() { + router.allowPageChange = true; + return router; + } + + if (url || templateUrl || componentUrl || component) { + router.allowPageChange = false; + } + + // Proceed + if (content) { + router.backward(router.getPageEl(content), options); + } else if (template || templateUrl) { + // Parse template and send page element + try { + router.pageTemplateLoader(template, templateUrl, options, resolve, reject); + } catch (err) { + router.allowPageChange = true; + throw err; + } + } else if (el) { + // Load page from specified HTMLElement or by page name in pages container + router.backward(router.getPageEl(el), options); + } else if (pageName) { + // Load page by page name in pages container + router.backward(router.$el.children((".page[data-name=\"" + pageName + "\"]")).eq(0), options); + } else if (component || componentUrl) { + // Load from component (F7/Vue/React/...) + try { + router.pageComponentLoader(router.el, component, componentUrl, options, resolve, reject); + } catch (err) { + router.allowPageChange = true; + throw err; + } + } else if (url) { + // Load using XHR + if (router.xhr) { + router.xhr.abort(); + router.xhr = false; + } + router.xhrRequest(url, options) + .then(function (pageContent) { + router.backward(router.getPageEl(pageContent), options); + }) + .catch(function () { + router.allowPageChange = true; + }); + } + return router; + } + function back() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + var router = this; + if (router.swipeBackActive) { return router; } + var navigateUrl; + var navigateOptions; + var route; + if (typeof args[0] === 'object') { + navigateOptions = args[0] || {}; + } else { + navigateUrl = args[0]; + navigateOptions = args[1] || {}; + } + + var name = navigateOptions.name; + var params = navigateOptions.params; + var query = navigateOptions.query; + if (name) { + navigateUrl = router.generateUrl({ name: name, params: params, query: query }); + if (navigateUrl) { + return router.back(navigateUrl, Utils.extend({}, navigateOptions, { + name: null, + params: null, + query: null, + })); + } + return router; + } + + var app = router.app; + appRouterCheck(router, 'back'); + + var currentRouteIsModal = router.currentRoute.modal; + var modalType; + if (!currentRouteIsModal) { + ('popup popover sheet loginScreen actions customModal panel').split(' ').forEach(function (modalLoadProp) { + if (router.currentRoute.route[modalLoadProp]) { + currentRouteIsModal = true; + modalType = modalLoadProp; + } + }); + } + if (currentRouteIsModal) { + var modalToClose = router.currentRoute.modal + || router.currentRoute.route.modalInstance + || app[modalType].get(); + var previousUrl = router.history[router.history.length - 2]; + var previousRoute; + // check if previous route is modal too + if (modalToClose && modalToClose.$el) { + var prevOpenedModals = modalToClose.$el.prevAll('.modal-in'); + if (prevOpenedModals.length && prevOpenedModals[0].f7Modal) { + var modalEl = prevOpenedModals[0]; + // check if current router not inside of the modalEl + if (!router.$el.parents(modalEl).length) { + previousRoute = modalEl.f7Modal.route; + } + } + } + if (!previousRoute) { + previousRoute = router.findMatchingRoute(previousUrl); + } + + if (!previousRoute && previousUrl) { + previousRoute = { + url: previousUrl, + path: previousUrl.split('?')[0], + query: Utils.parseUrlQuery(previousUrl), + route: { + path: previousUrl.split('?')[0], + url: previousUrl, + }, + }; + } + if (!navigateUrl || navigateUrl.replace(/[# ]/g, '').trim().length === 0) { + if (!previousRoute || !modalToClose) { + return router; + } + } + var forceOtherUrl = navigateOptions.force && previousRoute && navigateUrl; + if (previousRoute && modalToClose) { + var isBrokenPushState = Device.ie || Device.edge || (Device.firefox && !Device.ios); + var needHistoryBack = router.params.pushState && navigateOptions.pushState !== false; + var currentRouteWithoutPushState = router.currentRoute && router.currentRoute.route && router.currentRoute.route.options && router.currentRoute.route.options.pushState === false; + if (needHistoryBack && !isBrokenPushState && !currentRouteWithoutPushState) { + History.back(); + } + router.currentRoute = previousRoute; + router.history.pop(); + router.saveHistory(); + + if (needHistoryBack && isBrokenPushState && !currentRouteWithoutPushState) { + History.back(); + } + + router.modalRemove(modalToClose); + if (forceOtherUrl) { + router.navigate(navigateUrl, { reloadCurrent: true }); + } + } else if (modalToClose) { + router.modalRemove(modalToClose); + if (navigateUrl) { + router.navigate(navigateUrl, { reloadCurrent: true }); + } + } + return router; + } + var $previousPage = router.$el.children('.page-current').prevAll('.page-previous:not(.page-master)').eq(0); + + var skipMaster; + if (router.params.masterDetailBreakpoint > 0) { + var classes = []; + router.$el.children('.page').each(function (index, pageEl) { + classes.push(pageEl.className); + }); + + var $previousMaster = router.$el.children('.page-current').prevAll('.page-master').eq(0); + if ($previousMaster.length) { + var expectedPreviousPageUrl = router.history[router.history.length - 2]; + var expectedPreviousPageRoute = router.findMatchingRoute(expectedPreviousPageUrl); + if (expectedPreviousPageRoute && $previousMaster[0].f7Page && expectedPreviousPageRoute.route === $previousMaster[0].f7Page.route.route) { + $previousPage = $previousMaster; + if (!navigateOptions.preload) { + skipMaster = app.width >= router.params.masterDetailBreakpoint; + } + } + } + } + + if (!navigateOptions.force && $previousPage.length && !skipMaster) { + if (router.params.pushState + && $previousPage[0].f7Page + && router.history[router.history.length - 2] !== $previousPage[0].f7Page.route.url + ) { + router.back( + router.history[router.history.length - 2], + Utils.extend(navigateOptions, { force: true }) + ); + return router; + } + var previousPageRoute = $previousPage[0].f7Page.route; + + processRouteQueue.call( + router, + previousPageRoute, + router.currentRoute, + function () { + router.loadBack({ el: $previousPage }, Utils.extend(navigateOptions, { + route: previousPageRoute, + })); + }, + function () {} + ); + + return router; + } + + // Navigate URL + if (navigateUrl === '#') { + navigateUrl = undefined; + } + if (navigateUrl && navigateUrl[0] !== '/' && navigateUrl.indexOf('#') !== 0) { + navigateUrl = ((router.path || '/') + navigateUrl).replace('//', '/'); + } + if (!navigateUrl && router.history.length > 1) { + navigateUrl = router.history[router.history.length - 2]; + } + if (skipMaster && !navigateOptions.force && router.history[router.history.length - 3]) { + return router.back(router.history[router.history.length - 3], Utils.extend({}, navigateOptions || {}, { + force: true, + animate: false, + })); + } + if (skipMaster && !navigateOptions.force) { + return router; + } + + // Find route to load + route = router.findMatchingRoute(navigateUrl); + if (!route) { + if (navigateUrl) { + route = { + url: navigateUrl, + path: navigateUrl.split('?')[0], + query: Utils.parseUrlQuery(navigateUrl), + route: { + path: navigateUrl.split('?')[0], + url: navigateUrl, + }, + }; + } + } + if (!route) { + return router; + } + + if (route.route.redirect) { + return redirect.call(router, 'back', route, navigateOptions); + } + + var options = {}; + if (route.route.options) { + Utils.extend(options, route.route.options, navigateOptions); + } else { + Utils.extend(options, navigateOptions); + } + options.route = route; + + if (options && options.context) { + route.context = options.context; + options.route.context = options.context; + } + + var backForceLoaded; + if (options.force && router.params.stackPages) { + router.$el.children('.page-previous.stacked').each(function (index, pageEl) { + if (pageEl.f7Page && pageEl.f7Page.route && pageEl.f7Page.route.url === route.url) { + backForceLoaded = true; + router.loadBack({ el: pageEl }, options); + } + }); + if (backForceLoaded) { + return router; + } + } + function resolve() { + var routerLoaded = false; + if (route.route.keepAlive && route.route.keepAliveData) { + router.loadBack({ el: route.route.keepAliveData.pageEl }, options); + routerLoaded = true; + } + ('url content component pageName el componentUrl template templateUrl').split(' ').forEach(function (pageLoadProp) { + var obj; + + if (route.route[pageLoadProp] && !routerLoaded) { + routerLoaded = true; + router.loadBack(( obj = {}, obj[pageLoadProp] = route.route[pageLoadProp], obj ), options); + } + }); + if (routerLoaded) { return; } + // Async + function asyncResolve(resolveParams, resolveOptions) { + router.allowPageChange = false; + if (resolveOptions && resolveOptions.context) { + if (!route.context) { route.context = resolveOptions.context; } + else { route.context = Utils.extend({}, route.context, resolveOptions.context); } + options.route.context = route.context; + } + router.loadBack(resolveParams, Utils.extend(options, resolveOptions), true); + } + function asyncReject() { + router.allowPageChange = true; + } + if (route.route.async) { + router.allowPageChange = false; + route.route.async.call(router, route, router.currentRoute, asyncResolve, asyncReject); + } + if (route.route.asyncComponent) { + asyncComponent(router, route.route.asyncComponent, asyncResolve, asyncReject); + } + } + function reject() { + router.allowPageChange = true; + } + + if (options.preload) { + resolve(); + } else { + processRouteQueue.call( + router, + route, + router.currentRoute, + function () { + if (route.route.modules) { + app + .loadModules(Array.isArray(route.route.modules) ? route.route.modules : [route.route.modules]) + .then(function () { + resolve(); + }) + .catch(function () { + reject(); + }); + } else { + resolve(); + } + }, + function () { + reject(); + } + ); + } + + // Return Router + return router; + } + + function clearPreviousPages(router) { + appRouterCheck(router, 'clearPreviousPages'); + var app = router.app; + var dynamicNavbar = router.dynamicNavbar; + + var $pagesToRemove = router.$el + .children('.page') + .filter(function (index, pageInView) { + if (router.currentRoute && (router.currentRoute.modal || router.currentRoute.panel)) { return true; } + return pageInView !== router.currentPageEl; + }); + + $pagesToRemove.each(function (index, pageEl) { + var $oldPageEl = $(pageEl); + var $oldNavbarEl = $(app.navbar.getElByPage($oldPageEl)); + if (router.params.stackPages && router.initialPages.indexOf($oldPageEl[0]) >= 0) { + $oldPageEl.addClass('stacked'); + if (dynamicNavbar) { + $oldNavbarEl.addClass('stacked'); + } + } else { + // Page remove event + router.pageCallback('beforeRemove', $oldPageEl, $oldNavbarEl, 'previous', undefined, {}); + router.removePage($oldPageEl); + if (dynamicNavbar && $oldNavbarEl.length) { + router.removeNavbar($oldNavbarEl); + } + } + }); + } + + function clearPreviousHistory() { + var router = this; + appRouterCheck(router, 'clearPreviousHistory'); + var url = router.history[router.history.length - 1]; + + clearPreviousPages(router); + + router.history = [url]; + router.view.history = [url]; + router.saveHistory(); + } + + var Router = /*@__PURE__*/(function (Framework7Class) { + function Router(app, view) { + Framework7Class.call(this, {}, [typeof view === 'undefined' ? app : view]); + var router = this; + + // Is App Router + router.isAppRouter = typeof view === 'undefined'; + + if (router.isAppRouter) { + // App Router + Utils.extend(false, router, { + app: app, + params: app.params.view, + routes: app.routes || [], + cache: app.cache, + }); + } else { + // View Router + Utils.extend(false, router, { + app: app, + view: view, + viewId: view.id, + params: view.params, + routes: view.routes, + $el: view.$el, + el: view.el, + $navbarsEl: view.$navbarsEl, + navbarsEl: view.navbarsEl, + history: view.history, + scrollHistory: view.scrollHistory, + cache: app.cache, + dynamicNavbar: app.theme === 'ios' && view.params.iosDynamicNavbar, + initialPages: [], + initialNavbars: [], + }); + } + + // Install Modules + router.useModules(); + + // Temporary Dom + router.tempDom = doc.createElement('div'); + + // AllowPageChage + router.allowPageChange = true; + + // Current Route + var currentRoute = {}; + var previousRoute = {}; + Object.defineProperty(router, 'currentRoute', { + enumerable: true, + configurable: true, + set: function set(newRoute) { + if ( newRoute === void 0 ) newRoute = {}; + + previousRoute = Utils.extend({}, currentRoute); + currentRoute = newRoute; + if (!currentRoute) { return; } + router.url = currentRoute.url; + router.emit('routeChange', newRoute, previousRoute, router); + }, + get: function get() { + return currentRoute; + }, + }); + Object.defineProperty(router, 'previousRoute', { + enumerable: true, + configurable: true, + get: function get() { + return previousRoute; + }, + set: function set(newRoute) { + previousRoute = newRoute; + }, + }); + + return router; + } + + if ( Framework7Class ) Router.__proto__ = Framework7Class; + Router.prototype = Object.create( Framework7Class && Framework7Class.prototype ); + Router.prototype.constructor = Router; + + Router.prototype.animatableNavElements = function animatableNavElements ($newNavbarEl, $oldNavbarEl, toLarge, fromLarge, direction) { + var router = this; + var dynamicNavbar = router.dynamicNavbar; + var animateIcon = router.params.iosAnimateNavbarBackIcon; + + var newNavEls; + var oldNavEls; + function animatableNavEl($el, $navbarInner) { + var isSliding = $el.hasClass('sliding') || $navbarInner.hasClass('sliding'); + var isSubnavbar = $el.hasClass('subnavbar'); + var needsOpacityTransition = isSliding ? !isSubnavbar : true; + var $iconEl = $el.find('.back .icon'); + var isIconLabel; + if (isSliding && animateIcon && $el.hasClass('left') && $iconEl.length > 0 && $iconEl.next('span').length) { + $el = $iconEl.next('span'); // eslint-disable-line + isIconLabel = true; + } + return { + $el: $el, + isIconLabel: isIconLabel, + leftOffset: $el[0].f7NavbarLeftOffset, + rightOffset: $el[0].f7NavbarRightOffset, + isSliding: isSliding, + isSubnavbar: isSubnavbar, + needsOpacityTransition: needsOpacityTransition, + }; + } + if (dynamicNavbar) { + newNavEls = []; + oldNavEls = []; + $newNavbarEl.children('.navbar-inner').children('.left, .right, .title, .subnavbar').each(function (index, navEl) { + var $navEl = $(navEl); + if ($navEl.hasClass('left') && fromLarge && direction === 'forward') { return; } + if ($navEl.hasClass('title') && toLarge) { return; } + newNavEls.push(animatableNavEl($navEl, $newNavbarEl.children('.navbar-inner'))); + }); + if (!($oldNavbarEl.hasClass('navbar-master') && router.params.masterDetailBreakpoint > 0 && router.app.width >= router.params.masterDetailBreakpoint)) { + $oldNavbarEl.children('.navbar-inner').children('.left, .right, .title, .subnavbar').each(function (index, navEl) { + var $navEl = $(navEl); + if ($navEl.hasClass('left') && toLarge && !fromLarge && direction === 'forward') { return; } + if ($navEl.hasClass('left') && toLarge && direction === 'backward') { return; } + if ($navEl.hasClass('title') && fromLarge) { + return; + } + oldNavEls.push(animatableNavEl($navEl, $oldNavbarEl.children('.navbar-inner'))); + }); + } + [oldNavEls, newNavEls].forEach(function (navEls) { + navEls.forEach(function (navEl) { + var n = navEl; + var isSliding = navEl.isSliding; + var $el = navEl.$el; + var otherEls = navEls === oldNavEls ? newNavEls : oldNavEls; + if (!(isSliding && $el.hasClass('title') && otherEls)) { return; } + otherEls.forEach(function (otherNavEl) { + if (otherNavEl.isIconLabel) { + var iconTextEl = otherNavEl.$el[0]; + n.leftOffset += iconTextEl ? (iconTextEl.offsetLeft || 0) : 0; + } + }); + }); + }); + } + + return { newNavEls: newNavEls, oldNavEls: oldNavEls }; + }; + + Router.prototype.animate = function animate ($oldPageEl, $newPageEl, $oldNavbarEl, $newNavbarEl, direction, transition, callback) { + var router = this; + if (router.params.animateCustom) { + router.params.animateCustom.apply(router, [$oldPageEl, $newPageEl, $oldNavbarEl, $newNavbarEl, direction, callback]); + return; + } + var dynamicNavbar = router.dynamicNavbar; + var ios = router.app.theme === 'ios'; + if (transition) { + var routerCustomTransitionClass = "router-transition-custom router-transition-" + transition + "-" + direction; + // Animate + var onCustomTransitionDone = function () { + router.$el.removeClass(routerCustomTransitionClass); + if (dynamicNavbar && router.$navbarsEl.length) { + if ($newNavbarEl) { + router.$navbarsEl.prepend($newNavbarEl); + } + if ($oldNavbarEl) { + router.$navbarsEl.prepend($oldNavbarEl); + } + } + if (callback) { callback(); } + }; + + (direction === 'forward' ? $newPageEl : $oldPageEl).animationEnd(onCustomTransitionDone); + if (dynamicNavbar) { + if ($newNavbarEl && $newPageEl) { + router.setNavbarPosition($newNavbarEl, ''); + $newNavbarEl.removeClass('navbar-next navbar-previous navbar-current'); + $newPageEl.prepend($newNavbarEl); + } + if ($oldNavbarEl && $oldPageEl) { + router.setNavbarPosition($oldNavbarEl, ''); + $oldNavbarEl.removeClass('navbar-next navbar-previous navbar-current'); + $oldPageEl.prepend($oldNavbarEl); + } + } + + router.$el.addClass(routerCustomTransitionClass); + return; + } + + + // Router Animation class + var routerTransitionClass = "router-transition-" + direction + " router-transition"; + + var newNavEls; + var oldNavEls; + + var fromLarge; + var toLarge; + + var oldIsLarge; + var newIsLarge; + + if (ios && dynamicNavbar) { + var betweenMasterAndDetail = router.params.masterDetailBreakpoint > 0 && router.app.width >= router.params.masterDetailBreakpoint + && ( + ($oldNavbarEl.hasClass('navbar-master') && $newNavbarEl.hasClass('navbar-master-detail')) + || ($oldNavbarEl.hasClass('navbar-master-detail') && $newNavbarEl.hasClass('navbar-master')) + ); + if (!betweenMasterAndDetail) { + oldIsLarge = $oldNavbarEl && $oldNavbarEl.hasClass('navbar-large'); + newIsLarge = $newNavbarEl && $newNavbarEl.hasClass('navbar-large'); + fromLarge = oldIsLarge && !$oldNavbarEl.hasClass('navbar-large-collapsed'); + toLarge = newIsLarge && !$newNavbarEl.hasClass('navbar-large-collapsed'); + } + var navEls = router.animatableNavElements($newNavbarEl, $oldNavbarEl, toLarge, fromLarge, direction); + newNavEls = navEls.newNavEls; + oldNavEls = navEls.oldNavEls; + } + + function animateNavbars(progress) { + if (!(ios && dynamicNavbar)) { return; } + if (progress === 1) { + if (toLarge) { + $newNavbarEl.addClass('router-navbar-transition-to-large'); + $oldNavbarEl.addClass('router-navbar-transition-to-large'); + } + if (fromLarge) { + $newNavbarEl.addClass('router-navbar-transition-from-large'); + $oldNavbarEl.addClass('router-navbar-transition-from-large'); + } + } + newNavEls.forEach(function (navEl) { + var $el = navEl.$el; + var offset = direction === 'forward' ? navEl.rightOffset : navEl.leftOffset; + if (navEl.isSliding) { + if (navEl.isSubnavbar && newIsLarge) { + $el[0].style.setProperty('transform', ("translate3d(" + (offset * (1 - progress)) + "px, calc(-1 * var(--f7-navbar-large-collapse-progress) * var(--f7-navbar-large-title-height)), 0)"), 'important'); + } else { + $el.transform(("translate3d(" + (offset * (1 - progress)) + "px,0,0)")); + } + } + }); + oldNavEls.forEach(function (navEl) { + var $el = navEl.$el; + var offset = direction === 'forward' ? navEl.leftOffset : navEl.rightOffset; + if (navEl.isSliding) { + if (navEl.isSubnavbar && oldIsLarge) { + $el.transform(("translate3d(" + (offset * (progress)) + "px, calc(-1 * var(--f7-navbar-large-collapse-progress) * var(--f7-navbar-large-title-height)), 0)")); + } else { + $el.transform(("translate3d(" + (offset * (progress)) + "px,0,0)")); + } + } + }); + } + + // AnimationEnd Callback + function onDone() { + if (router.dynamicNavbar) { + if ($newNavbarEl) { + $newNavbarEl.removeClass('router-navbar-transition-to-large router-navbar-transition-from-large'); + $newNavbarEl.addClass('navbar-no-title-large-transition'); + Utils.nextFrame(function () { + $newNavbarEl.removeClass('navbar-no-title-large-transition'); + }); + } + if ($oldNavbarEl) { + $oldNavbarEl.removeClass('router-navbar-transition-to-large router-navbar-transition-from-large'); + } + if ($newNavbarEl.hasClass('sliding') || $newNavbarEl.children('.navbar-inner.sliding').length) { + $newNavbarEl.find('.title, .left, .right, .left .icon, .subnavbar').transform(''); + } else { + $newNavbarEl.find('.sliding').transform(''); + } + if ($oldNavbarEl.hasClass('sliding') || $oldNavbarEl.children('.navbar-inner.sliding').length) { + $oldNavbarEl.find('.title, .left, .right, .left .icon, .subnavbar').transform(''); + } else { + $oldNavbarEl.find('.sliding').transform(''); + } + } + router.$el.removeClass(routerTransitionClass); + if (callback) { callback(); } + } + + (direction === 'forward' ? $newPageEl : $oldPageEl).animationEnd(function () { + onDone(); + }); + + // Animate + if (dynamicNavbar) { + // Prepare Navbars + animateNavbars(0); + Utils.nextFrame(function () { + // Add class, start animation + animateNavbars(1); + router.$el.addClass(routerTransitionClass); + }); + } else { + // Add class, start animation + router.$el.addClass(routerTransitionClass); + } + }; + + Router.prototype.removeModal = function removeModal (modalEl) { + var router = this; + router.removeEl(modalEl); + }; + // eslint-disable-next-line + Router.prototype.removeTabContent = function removeTabContent (tabEl) { + var $tabEl = $(tabEl); + $tabEl.html(''); + }; + + Router.prototype.removeNavbar = function removeNavbar (el) { + var router = this; + router.removeEl(el); + }; + + Router.prototype.removePage = function removePage (el) { + var $el = $(el); + var f7Page = $el && $el[0] && $el[0].f7Page; + var router = this; + if (f7Page && f7Page.route && f7Page.route.route && f7Page.route.route.keepAlive) { + $el.remove(); + return; + } + router.removeEl(el); + }; + + Router.prototype.removeEl = function removeEl (el) { + if (!el) { return; } + var router = this; + var $el = $(el); + if ($el.length === 0) { return; } + $el.find('.tab').each(function (tabIndex, tabEl) { + $(tabEl).children().each(function (index, tabChild) { + if (tabChild.f7Component) { + $(tabChild).trigger('tab:beforeremove'); + tabChild.f7Component.$destroy(); + } + }); + }); + if ($el[0].f7Component && $el[0].f7Component.$destroy) { + $el[0].f7Component.$destroy(); + } + if (!router.params.removeElements) { + return; + } + if (router.params.removeElementsWithTimeout) { + setTimeout(function () { + $el.remove(); + }, router.params.removeElementsTimeout); + } else { + $el.remove(); + } + }; + + Router.prototype.getPageEl = function getPageEl (content) { + var router = this; + if (typeof content === 'string') { + router.tempDom.innerHTML = content; + } else { + if ($(content).hasClass('page')) { + return content; + } + router.tempDom.innerHTML = ''; + $(router.tempDom).append(content); + } + + return router.findElement('.page', router.tempDom); + }; + + Router.prototype.findElement = function findElement (stringSelector, container, notStacked) { + var router = this; + var view = router.view; + var app = router.app; + + // Modals Selector + var modalsSelector = '.popup, .dialog, .popover, .actions-modal, .sheet-modal, .login-screen, .page'; + + var $container = $(container); + var selector = stringSelector; + if (notStacked) { selector += ':not(.stacked)'; } + + var found = $container + .find(selector) + .filter(function (index, el) { return $(el).parents(modalsSelector).length === 0; }); + + if (found.length > 1) { + if (typeof view.selector === 'string') { + // Search in related view + found = $container.find(((view.selector) + " " + selector)); + } + if (found.length > 1) { + // Search in main view + found = $container.find(("." + (app.params.viewMainClass) + " " + selector)); + } + } + if (found.length === 1) { return found; } + + // Try to find not stacked + if (!notStacked) { found = router.findElement(selector, $container, true); } + if (found && found.length === 1) { return found; } + if (found && found.length > 1) { return $(found[0]); } + return undefined; + }; + + Router.prototype.flattenRoutes = function flattenRoutes (routes) { + if ( routes === void 0 ) routes = this.routes; + + var router = this; + var flattenedRoutes = []; + routes.forEach(function (route) { + var hasTabRoutes = false; + if ('tabs' in route && route.tabs) { + var mergedPathsRoutes = route.tabs.map(function (tabRoute) { + var tRoute = Utils.extend({}, route, { + path: (((route.path) + "/" + (tabRoute.path))).replace('///', '/').replace('//', '/'), + parentPath: route.path, + tab: tabRoute, + }); + delete tRoute.tabs; + delete tRoute.routes; + return tRoute; + }); + hasTabRoutes = true; + flattenedRoutes = flattenedRoutes.concat(router.flattenRoutes(mergedPathsRoutes)); + } + if ('detailRoutes' in route) { + var mergedPathsRoutes$1 = route.detailRoutes.map(function (detailRoute) { + var dRoute = Utils.extend({}, detailRoute); + dRoute.masterRoute = route; + dRoute.masterRoutePath = route.path; + return dRoute; + }); + flattenedRoutes = flattenedRoutes.concat(route, router.flattenRoutes(mergedPathsRoutes$1)); + } + if ('routes' in route) { + var mergedPathsRoutes$2 = route.routes.map(function (childRoute) { + var cRoute = Utils.extend({}, childRoute); + cRoute.path = (((route.path) + "/" + (cRoute.path))).replace('///', '/').replace('//', '/'); + return cRoute; + }); + if (hasTabRoutes) { + flattenedRoutes = flattenedRoutes.concat(router.flattenRoutes(mergedPathsRoutes$2)); + } else { + flattenedRoutes = flattenedRoutes.concat(route, router.flattenRoutes(mergedPathsRoutes$2)); + } + } + if (!('routes' in route) && !('tabs' in route && route.tabs) && !('detailRoutes' in route)) { + flattenedRoutes.push(route); + } + }); + return flattenedRoutes; + }; + + // eslint-disable-next-line + Router.prototype.parseRouteUrl = function parseRouteUrl (url) { + if (!url) { return {}; } + var query = Utils.parseUrlQuery(url); + var hash = url.split('#')[1]; + var params = {}; + var path = url.split('#')[0].split('?')[0]; + return { + query: query, + hash: hash, + params: params, + url: url, + path: path, + }; + }; + + Router.prototype.generateUrl = function generateUrl (parameters) { + if ( parameters === void 0 ) parameters = {}; + + if (typeof parameters === 'string') { + return parameters; + } + var name = parameters.name; + var path = parameters.path; + var params = parameters.params; + var query = parameters.query; + if (!name && !path) { + throw new Error('Framework7: "name" or "path" parameter is required'); + } + var router = this; + var route = name + ? router.findRouteByKey('name', name) + : router.findRouteByKey('path', path); + + if (!route) { + if (name) { + throw new Error(("Framework7: route with name \"" + name + "\" not found")); + } else { + throw new Error(("Framework7: route with path \"" + path + "\" not found")); + } + } + var url = router.constructRouteUrl(route, { params: params, query: query }); + if (!url) { + throw new Error(("Framework7: can't construct URL for route with name \"" + name + "\"")); + } + return url; + }; + + // eslint-disable-next-line + Router.prototype.constructRouteUrl = function constructRouteUrl (route, ref) { + if ( ref === void 0 ) ref = {}; + var params = ref.params; + var query = ref.query; + + var path = route.path; + var toUrl = compile(path); + var url; + try { + url = toUrl(params || {}); + } catch (error) { + throw new Error(("Framework7: error constructing route URL from passed params:\nRoute: " + path + "\n" + (error.toString()))); + } + + if (query) { + if (typeof query === 'string') { url += "?" + query; } + else { url += "?" + (Utils.serializeObject(query)); } + } + + return url; + }; + + Router.prototype.findTabRoute = function findTabRoute (tabEl) { + var router = this; + var $tabEl = $(tabEl); + var parentPath = router.currentRoute.route.parentPath; + var tabId = $tabEl.attr('id'); + var flattenedRoutes = router.flattenRoutes(router.routes); + var foundTabRoute; + flattenedRoutes.forEach(function (route) { + if ( + route.parentPath === parentPath + && route.tab + && route.tab.id === tabId + ) { + foundTabRoute = route; + } + }); + return foundTabRoute; + }; + + Router.prototype.findRouteByKey = function findRouteByKey (key, value) { + var router = this; + var routes = router.routes; + var flattenedRoutes = router.flattenRoutes(routes); + var matchingRoute; + + flattenedRoutes.forEach(function (route) { + if (matchingRoute) { return; } + if (route[key] === value) { + matchingRoute = route; + } + }); + return matchingRoute; + }; + + Router.prototype.findMatchingRoute = function findMatchingRoute (url) { + if (!url) { return undefined; } + var router = this; + var routes = router.routes; + var flattenedRoutes = router.flattenRoutes(routes); + var ref = router.parseRouteUrl(url); + var path = ref.path; + var query = ref.query; + var hash = ref.hash; + var params = ref.params; + var matchingRoute; + flattenedRoutes.forEach(function (route) { + if (matchingRoute) { return; } + var keys = []; + + var pathsToMatch = [route.path]; + if (route.alias) { + if (typeof route.alias === 'string') { pathsToMatch.push(route.alias); } + else if (Array.isArray(route.alias)) { + route.alias.forEach(function (aliasPath) { + pathsToMatch.push(aliasPath); + }); + } + } + + var matched; + pathsToMatch.forEach(function (pathToMatch) { + if (matched) { return; } + matched = pathToRegexp(pathToMatch, keys).exec(path); + }); + + if (matched) { + keys.forEach(function (keyObj, index) { + if (typeof keyObj.name === 'number') { return; } + var paramValue = matched[index + 1]; + if (typeof paramValue === 'undefined' || paramValue === null) { + params[keyObj.name] = paramValue; + } else { + params[keyObj.name] = decodeURIComponent(paramValue); + } + }); + + var parentPath; + if (route.parentPath) { + parentPath = path.split('/').slice(0, route.parentPath.split('/').length - 1).join('/'); + } + + matchingRoute = { + query: query, + hash: hash, + params: params, + url: url, + path: path, + parentPath: parentPath, + route: route, + name: route.name, + }; + } + }); + return matchingRoute; + }; + + // eslint-disable-next-line + Router.prototype.replaceRequestUrlParams = function replaceRequestUrlParams (url, options) { + if ( url === void 0 ) url = ''; + if ( options === void 0 ) options = {}; + + var compiledUrl = url; + if (typeof compiledUrl === 'string' + && compiledUrl.indexOf('{{') >= 0 + && options + && options.route + && options.route.params + && Object.keys(options.route.params).length + ) { + Object.keys(options.route.params).forEach(function (paramName) { + var regExp = new RegExp(("{{" + paramName + "}}"), 'g'); + compiledUrl = compiledUrl.replace(regExp, options.route.params[paramName] || ''); + }); + } + return compiledUrl; + }; + + Router.prototype.removeFromXhrCache = function removeFromXhrCache (url) { + var router = this; + var xhrCache = router.cache.xhr; + var index = false; + for (var i = 0; i < xhrCache.length; i += 1) { + if (xhrCache[i].url === url) { index = i; } + } + if (index !== false) { xhrCache.splice(index, 1); } + }; + + Router.prototype.xhrRequest = function xhrRequest (requestUrl, options) { + var router = this; + var params = router.params; + var ignoreCache = options.ignoreCache; + var url = requestUrl; + + var hasQuery = url.indexOf('?') >= 0; + if (params.passRouteQueryToRequest + && options + && options.route + && options.route.query + && Object.keys(options.route.query).length + ) { + url += "" + (hasQuery ? '&' : '?') + (Utils.serializeObject(options.route.query)); + hasQuery = true; + } + + if (params.passRouteParamsToRequest + && options + && options.route + && options.route.params + && Object.keys(options.route.params).length + ) { + url += "" + (hasQuery ? '&' : '?') + (Utils.serializeObject(options.route.params)); + hasQuery = true; + } + + if (url.indexOf('{{') >= 0) { + url = router.replaceRequestUrlParams(url, options); + } + // should we ignore get params or not + if (params.xhrCacheIgnoreGetParameters && url.indexOf('?') >= 0) { + url = url.split('?')[0]; + } + return new Promise(function (resolve, reject) { + if (params.xhrCache && !ignoreCache && url.indexOf('nocache') < 0 && params.xhrCacheIgnore.indexOf(url) < 0) { + for (var i = 0; i < router.cache.xhr.length; i += 1) { + var cachedUrl = router.cache.xhr[i]; + if (cachedUrl.url === url) { + // Check expiration + if (Utils.now() - cachedUrl.time < params.xhrCacheDuration) { + // Load from cache + resolve(cachedUrl.content); + return; + } + } + } + } + router.xhr = router.app.request({ + url: url, + method: 'GET', + beforeSend: function beforeSend(xhr) { + router.emit('routerAjaxStart', xhr, options); + }, + complete: function complete(xhr, status) { + router.emit('routerAjaxComplete', xhr); + if ((status !== 'error' && status !== 'timeout' && (xhr.status >= 200 && xhr.status < 300)) || xhr.status === 0) { + if (params.xhrCache && xhr.responseText !== '') { + router.removeFromXhrCache(url); + router.cache.xhr.push({ + url: url, + time: Utils.now(), + content: xhr.responseText, + }); + } + router.emit('routerAjaxSuccess', xhr, options); + resolve(xhr.responseText); + } else { + router.emit('routerAjaxError', xhr, options); + reject(xhr); + } + }, + error: function error(xhr) { + router.emit('routerAjaxError', xhr, options); + reject(xhr); + }, + }); + }); + }; + + Router.prototype.setNavbarPosition = function setNavbarPosition ($el, position, ariaHidden) { + var router = this; + $el.removeClass('navbar-previous navbar-current navbar-next'); + if (position) { + $el.addClass(("navbar-" + position)); + } + + if (ariaHidden === false) { + $el.removeAttr('aria-hidden'); + } else if (ariaHidden === true) { + $el.attr('aria-hidden', 'true'); + } + $el.trigger('navbar:position', { position: position }); + router.emit('navbarPosition', $el[0], position); + }; + + Router.prototype.setPagePosition = function setPagePosition ($el, position, ariaHidden) { + var router = this; + $el.removeClass('page-previous page-current page-next'); + $el.addClass(("page-" + position)); + if (ariaHidden === false) { + $el.removeAttr('aria-hidden'); + } else if (ariaHidden === true) { + $el.attr('aria-hidden', 'true'); + } + $el.trigger('page:position', { position: position }); + router.emit('pagePosition', $el[0], position); + }; + + // Remove theme elements + Router.prototype.removeThemeElements = function removeThemeElements (el) { + var router = this; + var theme = router.app.theme; + var toRemove; + if (theme === 'ios') { + toRemove = '.md-only, .aurora-only, .if-md, .if-aurora, .if-not-ios, .not-ios'; + } else if (theme === 'md') { + toRemove = '.ios-only, .aurora-only, .if-ios, .if-aurora, .if-not-md, .not-md'; + } else if (theme === 'aurora') { + toRemove = '.ios-only, .md-only, .if-ios, .if-md, .if-not-aurora, .not-aurora'; + } + $(el).find(toRemove).remove(); + }; + + Router.prototype.getPageData = function getPageData (pageEl, navbarEl, from, to, route, pageFromEl) { + if ( route === void 0 ) route = {}; + + var router = this; + var $pageEl = $(pageEl).eq(0); + var $navbarEl = $(navbarEl).eq(0); + var currentPage = $pageEl[0].f7Page || {}; + var direction; + var pageFrom; + if ((from === 'next' && to === 'current') || (from === 'current' && to === 'previous')) { direction = 'forward'; } + if ((from === 'current' && to === 'next') || (from === 'previous' && to === 'current')) { direction = 'backward'; } + if (currentPage && !currentPage.fromPage) { + var $pageFromEl = $(pageFromEl); + if ($pageFromEl.length) { + pageFrom = $pageFromEl[0].f7Page; + } + } + pageFrom = currentPage.pageFrom || pageFrom; + if (pageFrom && pageFrom.pageFrom) { + pageFrom.pageFrom = null; + } + var page = { + app: router.app, + view: router.view, + router: router, + $el: $pageEl, + el: $pageEl[0], + $pageEl: $pageEl, + pageEl: $pageEl[0], + $navbarEl: $navbarEl, + navbarEl: $navbarEl[0], + name: $pageEl.attr('data-name'), + position: from, + from: from, + to: to, + direction: direction, + route: currentPage.route ? currentPage.route : route, + pageFrom: pageFrom, + }; + + $pageEl[0].f7Page = page; + return page; + }; + + // Callbacks + Router.prototype.pageCallback = function pageCallback (callback, pageEl, navbarEl, from, to, options, pageFromEl) { + if ( options === void 0 ) options = {}; + + if (!pageEl) { return; } + var router = this; + var $pageEl = $(pageEl); + if (!$pageEl.length) { return; } + var $navbarEl = $(navbarEl); + var route = options.route; + var restoreScrollTopOnBack = router.params.restoreScrollTopOnBack + && !( + router.params.masterDetailBreakpoint > 0 + && $pageEl.hasClass('page-master') + && router.app.width >= router.params.masterDetailBreakpoint + ); + var keepAlive = $pageEl[0].f7Page && $pageEl[0].f7Page.route && $pageEl[0].f7Page.route.route && $pageEl[0].f7Page.route.route.keepAlive; + + if (callback === 'beforeRemove' && keepAlive) { + callback = 'beforeUnmount'; // eslint-disable-line + } + + var camelName = "page" + (callback[0].toUpperCase() + callback.slice(1, callback.length)); + var colonName = "page:" + (callback.toLowerCase()); + + var page = {}; + if (callback === 'beforeRemove' && $pageEl[0].f7Page) { + page = Utils.extend($pageEl[0].f7Page, { from: from, to: to, position: from }); + } else { + page = router.getPageData($pageEl[0], $navbarEl[0], from, to, route, pageFromEl); + } + page.swipeBack = !!options.swipeBack; + + var ref = options.route ? options.route.route : {}; + var on = ref.on; if ( on === void 0 ) on = {}; + var once = ref.once; if ( once === void 0 ) once = {}; + if (options.on) { + Utils.extend(on, options.on); + } + if (options.once) { + Utils.extend(once, options.once); + } + + function attachEvents() { + if ($pageEl[0].f7RouteEventsAttached) { return; } + $pageEl[0].f7RouteEventsAttached = true; + if (on && Object.keys(on).length > 0) { + $pageEl[0].f7RouteEventsOn = on; + Object.keys(on).forEach(function (eventName) { + on[eventName] = on[eventName].bind(router); + $pageEl.on(Utils.eventNameToColonCase(eventName), on[eventName]); + }); + } + if (once && Object.keys(once).length > 0) { + $pageEl[0].f7RouteEventsOnce = once; + Object.keys(once).forEach(function (eventName) { + once[eventName] = once[eventName].bind(router); + $pageEl.once(Utils.eventNameToColonCase(eventName), once[eventName]); + }); + } + } + + function detachEvents() { + if (!$pageEl[0].f7RouteEventsAttached) { return; } + if ($pageEl[0].f7RouteEventsOn) { + Object.keys($pageEl[0].f7RouteEventsOn).forEach(function (eventName) { + $pageEl.off(Utils.eventNameToColonCase(eventName), $pageEl[0].f7RouteEventsOn[eventName]); + }); + } + if ($pageEl[0].f7RouteEventsOnce) { + Object.keys($pageEl[0].f7RouteEventsOnce).forEach(function (eventName) { + $pageEl.off(Utils.eventNameToColonCase(eventName), $pageEl[0].f7RouteEventsOnce[eventName]); + }); + } + $pageEl[0].f7RouteEventsAttached = null; + $pageEl[0].f7RouteEventsOn = null; + $pageEl[0].f7RouteEventsOnce = null; + delete $pageEl[0].f7RouteEventsAttached; + delete $pageEl[0].f7RouteEventsOn; + delete $pageEl[0].f7RouteEventsOnce; + } + + if (callback === 'mounted') { + attachEvents(); + } + if (callback === 'init') { + if (restoreScrollTopOnBack && (from === 'previous' || !from) && to === 'current' && router.scrollHistory[page.route.url] && !$pageEl.hasClass('no-restore-scroll')) { + var $pageContent = $pageEl.find('.page-content'); + if ($pageContent.length > 0) { + // eslint-disable-next-line + $pageContent = $pageContent.filter(function (pageContentIndex, pageContentEl) { + return ( + $(pageContentEl).parents('.tab:not(.tab-active)').length === 0 + && !$(pageContentEl).is('.tab:not(.tab-active)') + ); + }); + } + $pageContent.scrollTop(router.scrollHistory[page.route.url]); + } + attachEvents(); + if ($pageEl[0].f7PageInitialized) { + $pageEl.trigger('page:reinit', page); + router.emit('pageReinit', page); + return; + } + $pageEl[0].f7PageInitialized = true; + } + if (restoreScrollTopOnBack && callback === 'beforeOut' && from === 'current' && to === 'previous') { + // Save scroll position + var $pageContent$1 = $pageEl.find('.page-content'); + if ($pageContent$1.length > 0) { + // eslint-disable-next-line + $pageContent$1 = $pageContent$1.filter(function (pageContentIndex, pageContentEl) { + return ( + $(pageContentEl).parents('.tab:not(.tab-active)').length === 0 + && !$(pageContentEl).is('.tab:not(.tab-active)') + ); + }); + } + router.scrollHistory[page.route.url] = $pageContent$1.scrollTop(); + } + if (restoreScrollTopOnBack && callback === 'beforeOut' && from === 'current' && to === 'next') { + // Delete scroll position + delete router.scrollHistory[page.route.url]; + } + + $pageEl.trigger(colonName, page); + router.emit(camelName, page); + + if (callback === 'beforeRemove' || callback === 'beforeUnmount') { + detachEvents(); + if (!keepAlive) { + if ($pageEl[0].f7Page && $pageEl[0].f7Page.navbarEl) { + delete $pageEl[0].f7Page.navbarEl.f7Page; + } + $pageEl[0].f7Page = null; + } + } + }; + + Router.prototype.saveHistory = function saveHistory () { + var router = this; + router.view.history = router.history; + if (router.params.pushState) { + win.localStorage[("f7router-" + (router.view.id) + "-history")] = JSON.stringify(router.history); + } + }; + + Router.prototype.restoreHistory = function restoreHistory () { + var router = this; + if (router.params.pushState && win.localStorage[("f7router-" + (router.view.id) + "-history")]) { + router.history = JSON.parse(win.localStorage[("f7router-" + (router.view.id) + "-history")]); + router.view.history = router.history; + } + }; + + Router.prototype.clearHistory = function clearHistory () { + var router = this; + router.history = []; + if (router.view) { router.view.history = []; } + router.saveHistory(); + }; + + Router.prototype.updateCurrentUrl = function updateCurrentUrl (newUrl) { + var router = this; + appRouterCheck(router, 'updateCurrentUrl'); + // Update history + if (router.history.length) { + router.history[router.history.length - 1] = newUrl; + } else { + router.history.push(newUrl); + } + + // Update current route params + var ref = router.parseRouteUrl(newUrl); + var query = ref.query; + var hash = ref.hash; + var params = ref.params; + var url = ref.url; + var path = ref.path; + if (router.currentRoute) { + Utils.extend(router.currentRoute, { + query: query, + hash: hash, + params: params, + url: url, + path: path, + }); + } + + if (router.params.pushState) { + var pushStateRoot = router.params.pushStateRoot || ''; + History.replace( + router.view.id, + { + url: newUrl, + }, + pushStateRoot + router.params.pushStateSeparator + newUrl + ); + } + + // Save History + router.saveHistory(); + + router.emit('routeUrlUpdate', router.currentRoute, router); + }; + + Router.prototype.init = function init () { + var router = this; + var app = router.app; + var view = router.view; + + // Init Swipeback + if ( + (view && router.params.iosSwipeBack && app.theme === 'ios') + || (view && router.params.mdSwipeBack && app.theme === 'md') + || (view && router.params.auroraSwipeBack && app.theme === 'aurora') + ) { + SwipeBack(router); + } + + var initUrl = router.params.url; + var documentUrl = doc.location.href.split(doc.location.origin)[1]; + var historyRestored; + var ref = router.params; + var pushState = ref.pushState; + var pushStateOnLoad = ref.pushStateOnLoad; + var pushStateSeparator = ref.pushStateSeparator; + var pushStateAnimateOnLoad = ref.pushStateAnimateOnLoad; + var ref$1 = router.params; + var pushStateRoot = ref$1.pushStateRoot; + if (win.cordova && pushState && !pushStateSeparator && !pushStateRoot && doc.location.pathname.indexOf('index.html')) { + // eslint-disable-next-line + console.warn('Framework7: wrong or not complete pushState configuration, trying to guess pushStateRoot'); + pushStateRoot = doc.location.pathname.split('index.html')[0]; + } + if (!pushState || !pushStateOnLoad) { + if (!initUrl) { + initUrl = documentUrl; + } + if (doc.location.search && initUrl.indexOf('?') < 0) { + initUrl += doc.location.search; + } + if (doc.location.hash && initUrl.indexOf('#') < 0) { + initUrl += doc.location.hash; + } + } else { + if (pushStateRoot && documentUrl.indexOf(pushStateRoot) >= 0) { + documentUrl = documentUrl.split(pushStateRoot)[1]; + if (documentUrl === '') { documentUrl = '/'; } + } + if (pushStateSeparator.length > 0 && documentUrl.indexOf(pushStateSeparator) >= 0) { + initUrl = documentUrl.split(pushStateSeparator)[1]; + } else { + initUrl = documentUrl; + } + router.restoreHistory(); + if (router.history.indexOf(initUrl) >= 0) { + router.history = router.history.slice(0, router.history.indexOf(initUrl) + 1); + } else if (router.params.url === initUrl) { + router.history = [initUrl]; + } else if (History.state && History.state[view.id] && History.state[view.id].url === router.history[router.history.length - 1]) { + initUrl = router.history[router.history.length - 1]; + } else { + router.history = [documentUrl.split(pushStateSeparator)[0] || '/', initUrl]; + } + if (router.history.length > 1) { + historyRestored = true; + } else { + router.history = []; + } + router.saveHistory(); + } + var currentRoute; + if (router.history.length > 1) { + // Will load page + currentRoute = router.findMatchingRoute(router.history[0]); + if (!currentRoute) { + currentRoute = Utils.extend(router.parseRouteUrl(router.history[0]), { + route: { + url: router.history[0], + path: router.history[0].split('?')[0], + }, + }); + } + } else { + // Don't load page + currentRoute = router.findMatchingRoute(initUrl); + if (!currentRoute) { + currentRoute = Utils.extend(router.parseRouteUrl(initUrl), { + route: { + url: initUrl, + path: initUrl.split('?')[0], + }, + }); + } + } + + if (router.params.stackPages) { + router.$el.children('.page').each(function (index, pageEl) { + var $pageEl = $(pageEl); + router.initialPages.push($pageEl[0]); + if (router.dynamicNavbar && $pageEl.children('.navbar').length > 0) { + router.initialNavbars.push($pageEl.children('.navbar')[0]); + } + }); + } + + if (router.$el.children('.page:not(.stacked)').length === 0 && initUrl && router.params.loadInitialPage) { + // No pages presented in DOM, reload new page + router.navigate(initUrl, { + initial: true, + reloadCurrent: true, + pushState: false, + }); + } else if (router.$el.children('.page:not(.stacked)').length) { + // Init current DOM page + var hasTabRoute; + router.currentRoute = currentRoute; + router.$el.children('.page:not(.stacked)').each(function (index, pageEl) { + var $pageEl = $(pageEl); + var $navbarEl; + router.setPagePosition($pageEl, 'current'); + if (router.dynamicNavbar) { + $navbarEl = $pageEl.children('.navbar'); + if ($navbarEl.length > 0) { + if (!router.$navbarsEl.parents(doc).length) { + router.$el.prepend(router.$navbarsEl); + } + router.setNavbarPosition($navbarEl, 'current'); + router.$navbarsEl.append($navbarEl); + if ($navbarEl.children('.title-large').length) { + $navbarEl.addClass('navbar-large'); + } + $pageEl.children('.navbar').remove(); + } else { + router.$navbarsEl.addClass('navbar-hidden'); + if ($navbarEl.children('.title-large').length) { + router.$navbarsEl.addClass('navbar-hidden navbar-large-hidden'); + } + } + } + if (router.currentRoute && router.currentRoute.route && router.currentRoute.route.master && router.params.masterDetailBreakpoint > 0) { + $pageEl.addClass('page-master'); + $pageEl.trigger('page:role', { role: 'master' }); + if ($navbarEl && $navbarEl.length) { + $navbarEl.addClass('navbar-master'); + } + view.checkMasterDetailBreakpoint(); + } + var initOptions = { + route: router.currentRoute, + }; + if (router.currentRoute && router.currentRoute.route && router.currentRoute.route.options) { + Utils.extend(initOptions, router.currentRoute.route.options); + } + router.currentPageEl = $pageEl[0]; + if (router.dynamicNavbar && $navbarEl.length) { + router.currentNavbarEl = $navbarEl[0]; + } + router.removeThemeElements($pageEl); + if (router.dynamicNavbar && $navbarEl.length) { + router.removeThemeElements($navbarEl); + } + if (initOptions.route.route.tab) { + hasTabRoute = true; + router.tabLoad(initOptions.route.route.tab, Utils.extend({}, initOptions)); + } + router.pageCallback('init', $pageEl, $navbarEl, 'current', undefined, initOptions); + }); + if (historyRestored) { + router.navigate(initUrl, { + initial: true, + pushState: false, + history: false, + animate: pushStateAnimateOnLoad, + once: { + pageAfterIn: function pageAfterIn() { + var preloadPreviousPage = router.params.preloadPreviousPage || router.params[((app.theme) + "SwipeBack")]; + if (preloadPreviousPage && router.history.length > 2) { + router.back({ preload: true }); + } + }, + }, + }); + } + if (!historyRestored && !hasTabRoute) { + router.history.push(initUrl); + router.saveHistory(); + } + } + if (initUrl && pushState && pushStateOnLoad && (!History.state || !History.state[view.id])) { + History.initViewState(view.id, { + url: initUrl, + }); + } + router.emit('local::init routerInit', router); + }; + + Router.prototype.destroy = function destroy () { + var router = this; + + router.emit('local::destroy routerDestroy', router); + + // Delete props & methods + Object.keys(router).forEach(function (routerProp) { + router[routerProp] = null; + delete router[routerProp]; + }); + + router = null; + }; + + return Router; + }(Framework7Class)); + + // Load + Router.prototype.forward = forward; + Router.prototype.load = load; + Router.prototype.navigate = navigate; + Router.prototype.refreshPage = refreshPage; + // Tab + Router.prototype.tabLoad = tabLoad; + Router.prototype.tabRemove = tabRemove; + // Modal + Router.prototype.modalLoad = modalLoad; + Router.prototype.modalRemove = modalRemove; + // Back + Router.prototype.backward = backward; + Router.prototype.loadBack = loadBack; + Router.prototype.back = back; + // Clear history + Router.prototype.clearPreviousHistory = clearPreviousHistory; + + var RouterModule = { + name: 'router', + static: { + Router: Router, + }, + instance: { + cache: { + xhr: [], + templates: [], + components: [], + }, + }, + create: function create() { + var instance = this; + if (instance.app) { + // View Router + if (instance.params.router) { + instance.router = new Router(instance.app, instance); + } + } else { + // App Router + instance.router = new Router(instance); + } + }, + }; + + function resizableView(view) { + var app = view.app; + if (view.resizableInitialized) { return; } + Utils.extend(view, { + resizable: true, + resizableWidth: null, + resizableInitialized: true, + }); + var $htmlEl = $('html'); + var $el = view.$el; + if (!$el) { return; } + + var $resizeHandlerEl; + + var isTouched; + var isMoved; + var touchesStart = {}; + var touchesDiff; + var width; + + var minWidth; + var maxWidth; + + function transformCSSWidth(v) { + if (!v) { return null; } + if (v.indexOf('%') >= 0 || v.indexOf('vw') >= 0) { + return parseInt(v, 10) / 100 * app.width; + } + var newV = parseInt(v, 10); + if (Number.isNaN(newV)) { return null; } + return newV; + } + + function isResizable() { + return view.resizable && $el.hasClass('view-resizable') && $el.hasClass('view-master-detail'); + } + + function handleTouchStart(e) { + if (!isResizable()) { return; } + touchesStart.x = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX; + touchesStart.y = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY; + isMoved = false; + isTouched = true; + var $pageMasterEl = $el.children('.page-master'); + minWidth = transformCSSWidth($pageMasterEl.css('min-width')); + maxWidth = transformCSSWidth($pageMasterEl.css('max-width')); + } + function handleTouchMove(e) { + if (!isTouched) { return; } + e.f7PreventSwipePanel = true; + var pageX = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX; + + if (!isMoved) { + width = $resizeHandlerEl[0].offsetLeft + $resizeHandlerEl[0].offsetWidth; + $el.addClass('view-resizing'); + $htmlEl.css('cursor', 'col-resize'); + } + + isMoved = true; + + e.preventDefault(); + + touchesDiff = (pageX - touchesStart.x); + + var newWidth = width + touchesDiff; + if (minWidth && !Number.isNaN(minWidth)) { + newWidth = Math.max(newWidth, minWidth); + } + if (maxWidth && !Number.isNaN(maxWidth)) { + newWidth = Math.min(newWidth, maxWidth); + } + newWidth = Math.min(Math.max(newWidth, 0), app.width); + + view.resizableWidth = newWidth; + $htmlEl[0].style.setProperty('--f7-page-master-width', (newWidth + "px")); + + $el.trigger('view:resize', newWidth); + view.emit('local::resize viewResize', view, newWidth); + } + function handleTouchEnd() { + $('html').css('cursor', ''); + if (!isTouched || !isMoved) { + isTouched = false; + isMoved = false; + return; + } + isTouched = false; + isMoved = false; + + $htmlEl[0].style.setProperty('--f7-page-master-width', ((view.resizableWidth) + "px")); + $el.removeClass('view-resizing'); + } + + function handleResize() { + if (!view.resizableWidth) { return; } + minWidth = transformCSSWidth($resizeHandlerEl.css('min-width')); + maxWidth = transformCSSWidth($resizeHandlerEl.css('max-width')); + + if (minWidth && !Number.isNaN(minWidth) && view.resizableWidth < minWidth) { + view.resizableWidth = Math.max(view.resizableWidth, minWidth); + } + if (maxWidth && !Number.isNaN(maxWidth) && view.resizableWidth > maxWidth) { + view.resizableWidth = Math.min(view.resizableWidth, maxWidth); + } + view.resizableWidth = Math.min(Math.max(view.resizableWidth, 0), app.width); + + $htmlEl[0].style.setProperty('--f7-page-master-width', ((view.resizableWidth) + "px")); + } + + $resizeHandlerEl = view.$el.children('.view-resize-handler'); + if (!$resizeHandlerEl.length) { + view.$el.append('
                          '); + $resizeHandlerEl = view.$el.children('.view-resize-handler'); + } + view.$resizeHandlerEl = $resizeHandlerEl; + + $el.addClass('view-resizable'); + + // Add Events + var passive = Support.passiveListener ? { passive: true } : false; + + view.$el.on(app.touchEvents.start, '.view-resize-handler', handleTouchStart, passive); + app.on('touchmove:active', handleTouchMove); + app.on('touchend:passive', handleTouchEnd); + app.on('resize', handleResize); + view.on('beforeOpen', handleResize); + + view.once('viewDestroy', function () { + $el.removeClass('view-resizable'); + view.$resizeHandlerEl.remove(); + view.$el.off(app.touchEvents.start, '.view-resize-handler', handleTouchStart, passive); + app.off('touchmove:active', handleTouchMove); + app.off('touchend:passive', handleTouchEnd); + app.off('resize', handleResize); + view.off('beforeOpen', handleResize); + }); + } + + var View = /*@__PURE__*/(function (Framework7Class) { + function View(appInstance, el, viewParams) { + if ( viewParams === void 0 ) viewParams = {}; + + Framework7Class.call(this, viewParams, [appInstance]); + + var app = appInstance; + var $el = $(el); + var view = this; + + var defaults = { + routes: [], + routesAdd: [], + }; + + if ($el.length === 0) { + var message = 'Framework7: can\'t create a View instance because '; + message += (typeof el === 'string') + ? ("the selector \"" + el + "\" didn't match any element") + : 'el must be an HTMLElement or Dom7 object'; + + throw new Error(message); + } + + // Default View params + view.params = Utils.extend(defaults, app.params.view, viewParams); + + // Routes + if (view.params.routes.length > 0) { + view.routes = view.params.routes; + } else { + view.routes = [].concat(app.routes, view.params.routesAdd); + } + + // Selector + var selector; + if (typeof el === 'string') { selector = el; } + else { + // Supposed to be HTMLElement or Dom7 + selector = ($el.attr('id') ? ("#" + ($el.attr('id'))) : '') + ($el.attr('class') ? ("." + ($el.attr('class').replace(/ /g, '.').replace('.active', ''))) : ''); + } + + // DynamicNavbar + var $navbarsEl; + if (app.theme === 'ios' && view.params.iosDynamicNavbar) { + $navbarsEl = $el.children('.navbars').eq(0); + if ($navbarsEl.length === 0) { + $navbarsEl = $(''); + } + } + + // View Props + Utils.extend(false, view, { + app: app, + $el: $el, + el: $el[0], + name: view.params.name, + main: view.params.main || $el.hasClass('view-main'), + $navbarsEl: $navbarsEl, + navbarsEl: $navbarsEl ? $navbarsEl[0] : undefined, + selector: selector, + history: [], + scrollHistory: {}, + }); + + // Save in DOM + $el[0].f7View = view; + + // Install Modules + view.useModules(); + + // Add to app + app.views.push(view); + if (view.main) { + app.views.main = view; + } + if (view.name) { + app.views[view.name] = view; + } + + // Index + view.index = app.views.indexOf(view); + + // View ID + var viewId; + if (view.name) { + viewId = "view_" + (view.name); + } else if (view.main) { + viewId = 'view_main'; + } else { + viewId = "view_" + (view.index); + } + view.id = viewId; + + // Init View + if (app.initialized) { + view.init(); + } else { + app.on('init', function () { + view.init(); + }); + } + + return view; + } + + if ( Framework7Class ) View.__proto__ = Framework7Class; + View.prototype = Object.create( Framework7Class && Framework7Class.prototype ); + View.prototype.constructor = View; + + View.prototype.destroy = function destroy () { + var view = this; + var app = view.app; + + view.$el.trigger('view:beforedestroy'); + view.emit('local::beforeDestroy viewBeforeDestroy', view); + + app.off('resize', view.checkMasterDetailBreakpoint); + + if (view.main) { + app.views.main = null; + delete app.views.main; + } else if (view.name) { + app.views[view.name] = null; + delete app.views[view.name]; + } + view.$el[0].f7View = null; + delete view.$el[0].f7View; + + app.views.splice(app.views.indexOf(view), 1); + + // Destroy Router + if (view.params.router && view.router) { + view.router.destroy(); + } + + view.emit('local::destroy viewDestroy', view); + + // Delete props & methods + Object.keys(view).forEach(function (viewProp) { + view[viewProp] = null; + delete view[viewProp]; + }); + + view = null; + }; + + View.prototype.checkMasterDetailBreakpoint = function checkMasterDetailBreakpoint (force) { + var view = this; + var app = view.app; + var wasMasterDetail = view.$el.hasClass('view-master-detail'); + var isMasterDetail = app.width >= view.params.masterDetailBreakpoint && view.$el.children('.page-master').length; + if ((typeof force === 'undefined' && isMasterDetail) || force === true) { + view.$el.addClass('view-master-detail'); + if (!wasMasterDetail) { + view.emit('local::masterDetailBreakpoint viewMasterDetailBreakpoint', view); + view.$el.trigger('view:masterDetailBreakpoint'); + } + } else { + view.$el.removeClass('view-master-detail'); + if (wasMasterDetail) { + view.emit('local::masterDetailBreakpoint viewMasterDetailBreakpoint', view); + view.$el.trigger('view:masterDetailBreakpoint'); + } + } + }; + + View.prototype.initMasterDetail = function initMasterDetail () { + var view = this; + var app = view.app; + view.checkMasterDetailBreakpoint = view.checkMasterDetailBreakpoint.bind(view); + view.checkMasterDetailBreakpoint(); + if (view.params.masterDetailResizable) { + resizableView(view); + } + app.on('resize', view.checkMasterDetailBreakpoint); + }; + + View.prototype.init = function init () { + var view = this; + if (view.params.router) { + if (view.params.masterDetailBreakpoint > 0) { + view.initMasterDetail(); + } + view.router.init(); + view.$el.trigger('view:init'); + view.emit('local::init viewInit', view); + } + }; + + return View; + }(Framework7Class)); + + // Use Router + View.use(RouterModule); + + function initClicks(app) { + function handleClicks(e) { + var $clickedEl = $(e.target); + var $clickedLinkEl = $clickedEl.closest('a'); + var isLink = $clickedLinkEl.length > 0; + var url = isLink && $clickedLinkEl.attr('href'); + // const isTabLink = isLink && $clickedLinkEl.hasClass('tab-link') && ($clickedLinkEl.attr('data-tab') || (url && url.indexOf('#') === 0)); + + // Check if link is external + if (isLink) { + // eslint-disable-next-line + if ($clickedLinkEl.is(app.params.clicks.externalLinks) || (url && url.indexOf('javascript:') >= 0)) { + var target = $clickedLinkEl.attr('target'); + if ( + url + && win.cordova + && win.cordova.InAppBrowser + && (target === '_system' || target === '_blank') + ) { + e.preventDefault(); + win.cordova.InAppBrowser.open(url, target); + } + return; + } + } + + // Modules Clicks + Object.keys(app.modules).forEach(function (moduleName) { + var moduleClicks = app.modules[moduleName].clicks; + if (!moduleClicks) { return; } + if (e.preventF7Router) { return; } + Object.keys(moduleClicks).forEach(function (clickSelector) { + var matchingClickedElement = $clickedEl.closest(clickSelector).eq(0); + if (matchingClickedElement.length > 0) { + moduleClicks[clickSelector].call(app, matchingClickedElement, matchingClickedElement.dataset(), e); + } + }); + }); + + // Load Page + var clickedLinkData = {}; + if (isLink) { + e.preventDefault(); + clickedLinkData = $clickedLinkEl.dataset(); + } + + // Prevent Router + if (e.preventF7Router) { return; } + if ($clickedLinkEl.hasClass('prevent-router') || $clickedLinkEl.hasClass('router-prevent')) { return; } + + var validUrl = url && url.length > 0 && url[0] !== '#'; + if (validUrl || $clickedLinkEl.hasClass('back')) { + var view; + if (clickedLinkData.view && clickedLinkData.view === 'current') { + view = app.views.current; + } else if (clickedLinkData.view) { + view = $(clickedLinkData.view)[0].f7View; + } else { + view = $clickedEl.parents('.view')[0] && $clickedEl.parents('.view')[0].f7View; + if (!$clickedLinkEl.hasClass('back') && view && view.params.linksView) { + if (typeof view.params.linksView === 'string') { view = $(view.params.linksView)[0].f7View; } + else if (view.params.linksView instanceof View) { view = view.params.linksView; } + } + } + if (!view) { + if (app.views.main) { view = app.views.main; } + } + if (!view || !view.router) { return; } + if (clickedLinkData.context && typeof clickedLinkData.context === 'string') { + try { + clickedLinkData.context = JSON.parse(clickedLinkData.context); + } catch (err) { + // something wrong there + } + } + if ($clickedLinkEl[0].f7RouteProps) { + clickedLinkData.props = $clickedLinkEl[0].f7RouteProps; + } + if ($clickedLinkEl.hasClass('back')) { view.router.back(url, clickedLinkData); } + else { view.router.navigate(url, clickedLinkData); } + } + } + + app.on('click', handleClicks); + } + var ClicksModule = { + name: 'clicks', + params: { + clicks: { + // External Links + externalLinks: '.external', + }, + }, + on: { + init: function init() { + var app = this; + initClicks(app); + }, + }, + }; + + var RouterTemplateLoaderModule = { + name: 'routerTemplateLoader', + proto: { + templateLoader: function templateLoader(template, templateUrl, options, resolve, reject) { + var router = this; + function compile(t) { + var compiledHtml; + var context; + try { + context = options.context || {}; + if (typeof context === 'function') { context = context.call(router); } + else if (typeof context === 'string') { + try { + context = JSON.parse(context); + } catch (err) { + reject(); + throw (err); + } + } + if (typeof t === 'function') { + compiledHtml = t(context); + } else { + compiledHtml = Template7.compile(t)(Utils.extend({}, context || {}, { + $app: router.app, + $root: Utils.extend({}, router.app.data, router.app.methods), + $route: options.route, + $f7route: options.route, + $router: router, + $f7router: router, + $theme: { + ios: router.app.theme === 'ios', + md: router.app.theme === 'md', + aurora: router.app.theme === 'aurora', + }, + })); + } + } catch (err) { + reject(); + throw (err); + } + resolve(compiledHtml, { context: context }); + } + if (templateUrl) { + // Load via XHR + if (router.xhr) { + router.xhr.abort(); + router.xhr = false; + } + router + .xhrRequest(templateUrl, options) + .then(function (templateContent) { + compile(templateContent); + }) + .catch(function () { + reject(); + }); + } else { + compile(template); + } + }, + + modalTemplateLoader: function modalTemplateLoader(template, templateUrl, options, resolve, reject) { + var router = this; + return router.templateLoader(template, templateUrl, options, function (html) { + resolve(html); + }, reject); + }, + + tabTemplateLoader: function tabTemplateLoader(template, templateUrl, options, resolve, reject) { + var router = this; + return router.templateLoader(template, templateUrl, options, function (html) { + resolve(html); + }, reject); + }, + + pageTemplateLoader: function pageTemplateLoader(template, templateUrl, options, resolve, reject) { + var router = this; + return router.templateLoader(template, templateUrl, options, function (html, newOptions) { + if ( newOptions === void 0 ) newOptions = {}; + + resolve(router.getPageEl(html), newOptions); + }, reject); + }, + }, + }; + + var RouterComponentLoaderModule = { + name: 'routerComponentLoader', + proto: { + componentLoader: function componentLoader(component, componentUrl, options, resolve, reject) { + if ( options === void 0 ) options = {}; + + var router = this; + var app = router.app; + var url = typeof component === 'string' ? component : componentUrl; + var compiledUrl = router.replaceRequestUrlParams(url, options); + function compile(componentOptions) { + var context = options.context || {}; + if (typeof context === 'function') { context = context.call(router); } + else if (typeof context === 'string') { + try { + context = JSON.parse(context); + } catch (err) { + reject(err); + throw (err); + } + } + var extendContext = Utils.merge( + {}, + context, + { + $route: options.route, + $f7route: options.route, + $router: router, + $f7router: router, + $theme: { + ios: app.theme === 'ios', + md: app.theme === 'md', + aurora: app.theme === 'aurora', + }, + } + ); + if (options.componentOptions && options.componentOptions.el) { + componentOptions.el = options.componentOptions.el; + } + if (options.componentOptions && options.componentOptions.root) { + componentOptions.root = options.componentOptions.root; + } + app.component.create(componentOptions, extendContext) + .then(function (createdComponent) { + resolve(createdComponent.el); + }) + .catch(function (err) { + reject(err); + throw new Error(err); + }); + } + var cachedComponent; + if (compiledUrl && router.params.componentCache) { + router.cache.components.forEach(function (cached) { + if (cached.url === compiledUrl) { cachedComponent = cached.component; } + }); + } + if (compiledUrl && cachedComponent) { + compile(cachedComponent); + } else if (compiledUrl && !cachedComponent) { + // Load via XHR + if (router.xhr) { + router.xhr.abort(); + router.xhr = false; + } + router + .xhrRequest(url, options) + .then(function (loadedComponent) { + var parsedComponent = app.component.parse(loadedComponent); + if (router.params.componentCache) { + router.cache.components.push({ + url: compiledUrl, + component: parsedComponent, + }); + } + compile(parsedComponent); + }) + .catch(function (err) { + reject(); + throw (err); + }); + } else { + compile(component); + } + }, + + modalComponentLoader: function modalComponentLoader(rootEl, component, componentUrl, options, resolve, reject) { + var router = this; + router.componentLoader(component, componentUrl, options, function (el) { + resolve(el); + }, reject); + }, + + tabComponentLoader: function tabComponentLoader(tabEl, component, componentUrl, options, resolve, reject) { + var router = this; + router.componentLoader(component, componentUrl, options, function (el) { + resolve(el); + }, reject); + }, + + pageComponentLoader: function pageComponentLoader(routerEl, component, componentUrl, options, resolve, reject) { + var router = this; + router.componentLoader(component, componentUrl, options, function (el, newOptions) { + if ( newOptions === void 0 ) newOptions = {}; + + resolve(el, newOptions); + }, reject); + }, + }, + }; + + function vnode(sel, data, children, text, elm) { + var key = data === undefined ? undefined : data.key; + return { sel: sel, data: data, children: children, + text: text, elm: elm, key: key }; + } + + var array = Array.isArray; + function primitive(s) { + return typeof s === 'string' || typeof s === 'number'; + } + + function addNS(data, children, sel) { + data.ns = 'http://www.w3.org/2000/svg'; + if (sel !== 'foreignObject' && children !== undefined) { + for (var i = 0; i < children.length; ++i) { + var childData = children[i].data; + if (childData !== undefined) { + addNS(childData, children[i].children, children[i].sel); + } + } + } + } + function h(sel, b, c) { + var data = {}, children, text, i; + if (c !== undefined) { + data = b; + if (array(c)) { + children = c; + } + else if (primitive(c)) { + text = c; + } + else if (c && c.sel) { + children = [c]; + } + } + else if (b !== undefined) { + if (array(b)) { + children = b; + } + else if (primitive(b)) { + text = b; + } + else if (b && b.sel) { + children = [b]; + } + else { + data = b; + } + } + if (array(children)) { + for (i = 0; i < children.length; ++i) { + if (primitive(children[i])) + { children[i] = vnode(undefined, undefined, undefined, children[i], undefined); } + } + } + if (sel[0] === 's' && sel[1] === 'v' && sel[2] === 'g' && + (sel.length === 3 || sel[3] === '.' || sel[3] === '#')) { + addNS(data, children, sel); + } + return vnode(sel, data, children, text, undefined); + } + + var customComponents = {}; + + /* eslint no-use-before-define: "off" */ + + var selfClosing = 'area base br col command embed hr img input keygen link menuitem meta param source track wbr'.split(' '); + var propsAttrs = 'hidden checked disabled readonly selected autofocus autoplay required multiple value indeterminate'.split(' '); + var booleanProps = 'hidden checked disabled readonly selected autofocus autoplay required multiple readOnly indeterminate'.split(' '); + var tempDomDIV = doc.createElement('div'); + var tempDomTBODY; + var tempDomTROW; + + function toCamelCase$1(name) { + return name + .split('-') + .map(function (word, index) { + if (index === 0) { return word.toLowerCase(); } + return word[0].toUpperCase() + word.substr(1); + }) + .join(''); + } + function contextFromAttrs() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + var context = {}; + args.forEach(function (obj) { + if ( obj === void 0 ) obj = {}; + + Object.keys(obj).forEach(function (key) { + context[toCamelCase$1(key)] = obj[key]; + }); + }); + + return context; + } + + function createCustomComponent(ref) { + var app = ref.app; + var vnode = ref.vnode; + var tagName = ref.tagName; + var data = ref.data; + + app.component.create( + Object.assign({ el: vnode.elm }, customComponents[tagName]), + { + $props: contextFromAttrs(data.attrs || {}, data.props || {}), + }, + vnode.children + ).then(function (c) { + if (vnode.data && vnode.data.on && c && c.$el) { + Object.keys(vnode.data.on).forEach(function (eventName) { + c.$el.on(eventName, vnode.data.on[eventName]); + }); + } + // eslint-disable-next-line + vnode.elm.__component__ = c; + }); + } + function updateCustomComponent(vnode) { + // eslint-disable-next-line + var component = vnode && vnode.elm && vnode.elm.__component__; + if (!component) { return; } + var newProps = contextFromAttrs(vnode.data.attrs || {}, vnode.data.props || {}); + component.$children = vnode.children; + Object.assign(component.$props, newProps); + component.$update(); + } + function destroyCustomComponent(vnode) { + // eslint-disable-next-line + var component = vnode && vnode.elm && vnode.elm.__component__; + + if (component) { + var el = component.el; + var $el = component.$el; + if (vnode.data && vnode.data.on && $el) { + Object.keys(vnode.data.on).forEach(function (eventName) { + $el.off(eventName, vnode.data.on[eventName]); + }); + } + if (component.$destroy) { component.$destroy(); } + if (el && el.parentNode) { el.parentNode.removeChild(el); } + delete vnode.elm.__component__; // eslint-disable-line + } + } + + function getHooks(data, app, initial, isRoot, tagName) { + var hooks = {}; + var insert = []; + var destroy = []; + var update = []; + var postpatch = []; + var isFakeElement = false; + if (data && data.attrs && data.attrs.component) { + // eslint-disable-next-line + tagName = data.attrs.component; + delete data.attrs.component; + isFakeElement = true; + } + var isCustomComponent = tagName && tagName.indexOf('-') > 0 && customComponents[tagName]; + if (isCustomComponent) { + insert.push(function (vnode) { + if (vnode.sel !== tagName && !isFakeElement) { return; } + createCustomComponent({ app: app, vnode: vnode, tagName: tagName, data: data }); + }); + destroy.push(function (vnode) { + destroyCustomComponent(vnode); + }); + update.push(function (oldVnode, vnode) { + updateCustomComponent(vnode); + }); + } + + if (!isCustomComponent) { + if (!data || !data.attrs || !data.attrs.class) { return hooks; } + + var classNames = data.attrs.class; + classNames.split(' ').forEach(function (className) { + if (!initial) { + insert.push.apply(insert, app.getVnodeHooks('insert', className)); + } + destroy.push.apply(destroy, app.getVnodeHooks('destroy', className)); + update.push.apply(update, app.getVnodeHooks('update', className)); + postpatch.push.apply(postpatch, app.getVnodeHooks('postpatch', className)); + }); + } + + if (isRoot && !initial) { + postpatch.push(function (oldVnode, vnode) { + var vn = vnode || oldVnode; + if (!vn) { return; } + if (vn.data && vn.data.context && vn.data.context.$options.updated) { + vn.data.context.$hook('updated'); + } + }); + } + if (insert.length === 0 && destroy.length === 0 && update.length === 0 && postpatch.length === 0) { + return hooks; + } + + if (insert.length) { + hooks.insert = function (vnode) { + insert.forEach(function (f) { return f(vnode); }); + }; + } + if (destroy.length) { + hooks.destroy = function (vnode) { + destroy.forEach(function (f) { return f(vnode); }); + }; + } + if (update.length) { + hooks.update = function (oldVnode, vnode) { + update.forEach(function (f) { return f(oldVnode, vnode); }); + }; + } + if (postpatch.length) { + hooks.postpatch = function (oldVnode, vnode) { + postpatch.forEach(function (f) { return f(oldVnode, vnode); }); + }; + } + + return hooks; + } + function getEventHandler(handlerString, context, ref) { + if ( ref === void 0 ) ref = {}; + var stop = ref.stop; + var prevent = ref.prevent; + var once = ref.once; + + var fired = false; + var methodName; + var method; + var needMethodBind = true; + + if (handlerString.indexOf('(') < 0) { + methodName = handlerString; + } else { + methodName = handlerString.split('(')[0]; + } + if (methodName.indexOf('.') >= 0) { + methodName.split('.').forEach(function (path, pathIndex) { + if (pathIndex === 0 && path === 'this') { return; } + if (pathIndex === 0 && path === 'window') { + // eslint-disable-next-line + method = win; + needMethodBind = false; + return; + } + if (!method) { method = context; } + if (method[path]) { method = method[path]; } + else { + throw new Error(("Framework7: Component doesn't have method \"" + (methodName.split('.').slice(0, pathIndex + 1).join('.')) + "\"")); + } + }); + } else { + if (!context[methodName]) { + throw new Error(("Framework7: Component doesn't have method \"" + methodName + "\"")); + } + method = context[methodName]; + } + if (needMethodBind) { + method = method.bind(context); + } + + function handler() { + var args = [], len = arguments.length; + while ( len-- ) args[ len ] = arguments[ len ]; + + var e = args[0]; + var customArgs = []; + if (once && fired) { return; } + if (stop) { e.stopPropagation(); } + if (prevent) { e.preventDefault(); } + fired = true; + if (handlerString.indexOf('(') < 0) { + customArgs = args; + } else { + var handlerArguments = handlerString + .split('(')[1] + .split(')')[0] + .replace(/'[^']*'|"[^"]*"/g, function (a) { return a.replace(/,/g, '<_comma_>'); }) + .split(',') + .map(function (a) { return a.replace(/<_comma_>/g, ','); }); + handlerArguments.forEach(function (argument) { + var arg = argument.trim(); + // eslint-disable-next-line + if (!isNaN(arg)) { arg = parseFloat(arg); } + else if (arg === 'true') { arg = true; } + else if (arg === 'false') { arg = false; } + else if (arg === 'null') { arg = null; } + else if (arg === 'undefined') { arg = undefined; } + else if (arg[0] === '"') { arg = arg.replace(/"/g, ''); } + else if (arg[0] === '\'') { arg = arg.replace(/'/g, ''); } + else if (arg.indexOf('.') > 0) { + var deepArg; + arg.split('.').forEach(function (path) { + if (!deepArg) { deepArg = context; } + deepArg = deepArg[path]; + }); + arg = deepArg; + } else { + arg = context[arg]; + } + customArgs.push(arg); + }); + } + + method.apply(void 0, customArgs); + } + + return handler; + } + + function getData(el, context, app, initial, isRoot, tagName) { + var data = { context: context }; + var attributes = el.attributes; + Array.prototype.forEach.call(attributes, function (attr) { + var attrName = attr.name; + var attrValue = attr.value; + if (propsAttrs.indexOf(attrName) >= 0) { + // Props + if (!data.props) { data.props = {}; } + if (attrName === 'readonly') { + attrName = 'readOnly'; + } + if (tagName === 'option' && attrName === 'value') { + if (!data.attrs) { data.attrs = {}; } + data.attrs.value = attrValue; + } + if (booleanProps.indexOf(attrName) >= 0) { + // eslint-disable-next-line + data.props[attrName] = attrValue === false ? false : true; + } else { + data.props[attrName] = attrValue; + } + } else if (attrName === 'key') { + // Key + data.key = attrValue; + } else if (attrName.indexOf('@') === 0) { + // Events + if (!data.on) { data.on = {}; } + var eventName = attrName.substr(1); + var stop = false; + var prevent = false; + var once = false; + if (eventName.indexOf('.') >= 0) { + eventName.split('.').forEach(function (eventNamePart, eventNameIndex) { + if (eventNameIndex === 0) { eventName = eventNamePart; } + else { + if (eventNamePart === 'stop') { stop = true; } + if (eventNamePart === 'prevent') { prevent = true; } + if (eventNamePart === 'once') { once = true; } + } + }); + } + data.on[eventName] = getEventHandler(attrValue, context, { stop: stop, prevent: prevent, once: once }); + } else if (attrName === 'style') { + // Style + if (attrValue.indexOf('{') >= 0 && attrValue.indexOf('}') >= 0) { + try { + data.style = JSON.parse(attrValue); + } catch (e) { + if (!data.attrs) { data.attrs = {}; } + data.attrs.style = attrValue; + } + } else { + if (!data.attrs) { data.attrs = {}; } + data.attrs.style = attrValue; + } + } else { + // Rest of attribures + if (!data.attrs) { data.attrs = {}; } + data.attrs[attrName] = attrValue; + + // ID -> Key + if (attrName === 'id' && !data.key && !isRoot) { + data.key = attrValue; + } + } + }); + if (isRoot && context && context.$id && context.$style && context.$styleScoped) { + if (!data.attrs) { data.attrs = {}; } + data.attrs[("data-f7-" + (context.$id))] = ''; + } + var hooks = getHooks(data, app, initial, isRoot, tagName); + hooks.prepatch = function (oldVnode, vnode) { + if (!oldVnode || !vnode) { return; } + if (oldVnode && oldVnode.data && oldVnode.data.props) { + Object.keys(oldVnode.data.props).forEach(function (key) { + if (booleanProps.indexOf(key) < 0) { return; } + if (!vnode.data) { vnode.data = {}; } + if (!vnode.data.props) { vnode.data.props = {}; } + if (oldVnode.data.props[key] === true && !(key in vnode.data.props)) { + vnode.data.props[key] = false; + } + }); + } + }; + if (hooks) { + data.hook = hooks; + } + return data; + } + + function getChildren(el, context, app, initial) { + var children = []; + var nodes = el.childNodes; + for (var i = 0; i < nodes.length; i += 1) { + var childNode = nodes[i]; + var child = elementToVNode(childNode, context, app, initial); + if (Array.isArray(child)) { + children.push.apply(children, child); + } else if (child) { + children.push(child); + } + } + return children; + } + + function getSlots(slotEl, context, app, initial) { + var slotName = slotEl.getAttribute('name') || 'default'; + var slots = (context.$children || []) + .filter(function (childEl) { + var childSlotName = 'default'; + if (childEl.data) { + childSlotName = (childEl.data.attrs && childEl.data.attrs.slot) || 'default'; + } + return childSlotName === slotName; + }); + if (slots.length === 0) { + return getChildren(slotEl, context, app, initial); + } + return slots; + } + + function elementToVNode(el, context, app, initial, isRoot) { + if (el.nodeType === 3) { + // text + return el.textContent; + } + if (el.nodeType !== 1) { return null; } + // element (statement adds inline SVG compatibility) + var tagName = (el instanceof win.SVGElement) ? el.nodeName : el.nodeName.toLowerCase(); + if (tagName === 'slot') { + return getSlots(el, context, app, initial); + } + + return h( + tagName, + getData(el, context, app, initial, isRoot, tagName), + selfClosing.indexOf(tagName) >= 0 ? [] : getChildren(el, context, app, initial) + ); + } + + function vdom (html, context, initial) { + if ( html === void 0 ) html = ''; + + // Save to temp dom + var htmlTrim = html.trim(); + var tempDom = tempDomDIV; + if (htmlTrim.indexOf(' 0 ? hashIdx : sel.length; + var dot = dotIdx > 0 ? dotIdx : sel.length; + var tag = hashIdx !== -1 || dotIdx !== -1 ? sel.slice(0, Math.min(hash, dot)) : sel; + var elm = vnode.elm = isDef(data) && isDef(i = data.ns) ? api.createElementNS(i, tag) + : api.createElement(tag); + if (hash < dot) + { elm.setAttribute('id', sel.slice(hash + 1, dot)); } + if (dotIdx > 0) + { elm.setAttribute('class', sel.slice(dot + 1).replace(/\./g, ' ')); } + for (i = 0; i < cbs.create.length; ++i) + { cbs.create[i](emptyNode, vnode); } + if (array(children)) { + for (i = 0; i < children.length; ++i) { + var ch = children[i]; + if (ch != null) { + api.appendChild(elm, createElm(ch, insertedVnodeQueue)); + } + } + } + else if (primitive(vnode.text)) { + api.appendChild(elm, api.createTextNode(vnode.text)); + } + i = vnode.data.hook; // Reuse variable + if (isDef(i)) { + if (i.create) + { i.create(emptyNode, vnode); } + if (i.insert) + { insertedVnodeQueue.push(vnode); } + } + } + else { + vnode.elm = api.createTextNode(vnode.text); + } + return vnode.elm; + } + function addVnodes(parentElm, before, vnodes, startIdx, endIdx, insertedVnodeQueue) { + for (; startIdx <= endIdx; ++startIdx) { + var ch = vnodes[startIdx]; + if (ch != null) { + api.insertBefore(parentElm, createElm(ch, insertedVnodeQueue), before); + } + } + } + function invokeDestroyHook(vnode) { + var i, j, data = vnode.data; + if (data !== undefined) { + if (isDef(i = data.hook) && isDef(i = i.destroy)) + { i(vnode); } + for (i = 0; i < cbs.destroy.length; ++i) + { cbs.destroy[i](vnode); } + if (vnode.children !== undefined) { + for (j = 0; j < vnode.children.length; ++j) { + i = vnode.children[j]; + if (i != null && typeof i !== "string") { + invokeDestroyHook(i); + } + } + } + } + } + function removeVnodes(parentElm, vnodes, startIdx, endIdx) { + for (; startIdx <= endIdx; ++startIdx) { + var i_1 = void 0, listeners = void 0, rm = void 0, ch = vnodes[startIdx]; + if (ch != null) { + if (isDef(ch.sel)) { + invokeDestroyHook(ch); + listeners = cbs.remove.length + 1; + rm = createRmCb(ch.elm, listeners); + for (i_1 = 0; i_1 < cbs.remove.length; ++i_1) + { cbs.remove[i_1](ch, rm); } + if (isDef(i_1 = ch.data) && isDef(i_1 = i_1.hook) && isDef(i_1 = i_1.remove)) { + i_1(ch, rm); + } + else { + rm(); + } + } + else { + api.removeChild(parentElm, ch.elm); + } + } + } + } + function updateChildren(parentElm, oldCh, newCh, insertedVnodeQueue) { + var oldStartIdx = 0, newStartIdx = 0; + var oldEndIdx = oldCh.length - 1; + var oldStartVnode = oldCh[0]; + var oldEndVnode = oldCh[oldEndIdx]; + var newEndIdx = newCh.length - 1; + var newStartVnode = newCh[0]; + var newEndVnode = newCh[newEndIdx]; + var oldKeyToIdx; + var idxInOld; + var elmToMove; + var before; + while (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) { + if (oldStartVnode == null) { + oldStartVnode = oldCh[++oldStartIdx]; // Vnode might have been moved left + } + else if (oldEndVnode == null) { + oldEndVnode = oldCh[--oldEndIdx]; + } + else if (newStartVnode == null) { + newStartVnode = newCh[++newStartIdx]; + } + else if (newEndVnode == null) { + newEndVnode = newCh[--newEndIdx]; + } + else if (sameVnode(oldStartVnode, newStartVnode)) { + patchVnode(oldStartVnode, newStartVnode, insertedVnodeQueue); + oldStartVnode = oldCh[++oldStartIdx]; + newStartVnode = newCh[++newStartIdx]; + } + else if (sameVnode(oldEndVnode, newEndVnode)) { + patchVnode(oldEndVnode, newEndVnode, insertedVnodeQueue); + oldEndVnode = oldCh[--oldEndIdx]; + newEndVnode = newCh[--newEndIdx]; + } + else if (sameVnode(oldStartVnode, newEndVnode)) { + patchVnode(oldStartVnode, newEndVnode, insertedVnodeQueue); + api.insertBefore(parentElm, oldStartVnode.elm, api.nextSibling(oldEndVnode.elm)); + oldStartVnode = oldCh[++oldStartIdx]; + newEndVnode = newCh[--newEndIdx]; + } + else if (sameVnode(oldEndVnode, newStartVnode)) { + patchVnode(oldEndVnode, newStartVnode, insertedVnodeQueue); + api.insertBefore(parentElm, oldEndVnode.elm, oldStartVnode.elm); + oldEndVnode = oldCh[--oldEndIdx]; + newStartVnode = newCh[++newStartIdx]; + } + else { + if (oldKeyToIdx === undefined) { + oldKeyToIdx = createKeyToOldIdx(oldCh, oldStartIdx, oldEndIdx); + } + idxInOld = oldKeyToIdx[newStartVnode.key]; + if (isUndef(idxInOld)) { + api.insertBefore(parentElm, createElm(newStartVnode, insertedVnodeQueue), oldStartVnode.elm); + newStartVnode = newCh[++newStartIdx]; + } + else { + elmToMove = oldCh[idxInOld]; + if (elmToMove.sel !== newStartVnode.sel) { + api.insertBefore(parentElm, createElm(newStartVnode, insertedVnodeQueue), oldStartVnode.elm); + } + else { + patchVnode(elmToMove, newStartVnode, insertedVnodeQueue); + oldCh[idxInOld] = undefined; + api.insertBefore(parentElm, elmToMove.elm, oldStartVnode.elm); + } + newStartVnode = newCh[++newStartIdx]; + } + } + } + if (oldStartIdx <= oldEndIdx || newStartIdx <= newEndIdx) { + if (oldStartIdx > oldEndIdx) { + before = newCh[newEndIdx + 1] == null ? null : newCh[newEndIdx + 1].elm; + addVnodes(parentElm, before, newCh, newStartIdx, newEndIdx, insertedVnodeQueue); + } + else { + removeVnodes(parentElm, oldCh, oldStartIdx, oldEndIdx); + } + } + } + function patchVnode(oldVnode, vnode, insertedVnodeQueue) { + var i, hook; + if (isDef(i = vnode.data) && isDef(hook = i.hook) && isDef(i = hook.prepatch)) { + i(oldVnode, vnode); + } + var elm = vnode.elm = oldVnode.elm; + var oldCh = oldVnode.children; + var ch = vnode.children; + if (oldVnode === vnode) + { return; } + if (vnode.data !== undefined) { + for (i = 0; i < cbs.update.length; ++i) + { cbs.update[i](oldVnode, vnode); } + i = vnode.data.hook; + if (isDef(i) && isDef(i = i.update)) + { i(oldVnode, vnode); } + } + if (isUndef(vnode.text)) { + if (isDef(oldCh) && isDef(ch)) { + if (oldCh !== ch) + { updateChildren(elm, oldCh, ch, insertedVnodeQueue); } + } + else if (isDef(ch)) { + if (isDef(oldVnode.text)) + { api.setTextContent(elm, ''); } + addVnodes(elm, null, ch, 0, ch.length - 1, insertedVnodeQueue); + } + else if (isDef(oldCh)) { + removeVnodes(elm, oldCh, 0, oldCh.length - 1); + } + else if (isDef(oldVnode.text)) { + api.setTextContent(elm, ''); + } + } + else if (oldVnode.text !== vnode.text) { + api.setTextContent(elm, vnode.text); + } + if (isDef(hook) && isDef(i = hook.postpatch)) { + i(oldVnode, vnode); + } + } + return function patch(oldVnode, vnode) { + var i, elm, parent; + var insertedVnodeQueue = []; + for (i = 0; i < cbs.pre.length; ++i) + { cbs.pre[i](); } + if (!isVnode(oldVnode)) { + oldVnode = emptyNodeAt(oldVnode); + } + if (sameVnode(oldVnode, vnode)) { + patchVnode(oldVnode, vnode, insertedVnodeQueue); + } + else { + elm = oldVnode.elm; + parent = api.parentNode(elm); + createElm(vnode, insertedVnodeQueue); + if (parent !== null) { + api.insertBefore(parent, vnode.elm, api.nextSibling(elm)); + removeVnodes(parent, [oldVnode], 0, 0); + } + } + for (i = 0; i < insertedVnodeQueue.length; ++i) { + insertedVnodeQueue[i].data.hook.insert(insertedVnodeQueue[i]); + } + for (i = 0; i < cbs.post.length; ++i) + { cbs.post[i](); } + return vnode; + }; + } + + var xlinkNS = 'http://www.w3.org/1999/xlink'; + var xmlNS = 'http://www.w3.org/XML/1998/namespace'; + var colonChar = 58; + var xChar = 120; + function updateAttrs(oldVnode, vnode) { + var key, elm = vnode.elm, oldAttrs = oldVnode.data.attrs, attrs = vnode.data.attrs; + if (!oldAttrs && !attrs) + { return; } + if (oldAttrs === attrs) + { return; } + oldAttrs = oldAttrs || {}; + attrs = attrs || {}; + // update modified attributes, add new attributes + for (key in attrs) { + var cur = attrs[key]; + var old = oldAttrs[key]; + if (old !== cur) { + if (cur === true) { + elm.setAttribute(key, ""); + } + else if (cur === false) { + elm.removeAttribute(key); + } + else { + if (key.charCodeAt(0) !== xChar) { + elm.setAttribute(key, cur); + } + else if (key.charCodeAt(3) === colonChar) { + // Assume xml namespace + elm.setAttributeNS(xmlNS, key, cur); + } + else if (key.charCodeAt(5) === colonChar) { + // Assume xlink namespace + elm.setAttributeNS(xlinkNS, key, cur); + } + else { + elm.setAttribute(key, cur); + } + } + } + } + // remove removed attributes + // use `in` operator since the previous `for` iteration uses it (.i.e. add even attributes with undefined value) + // the other option is to remove all attributes with value == undefined + for (key in oldAttrs) { + if (!(key in attrs)) { + elm.removeAttribute(key); + } + } + } + var attributesModule = { create: updateAttrs, update: updateAttrs }; + + function updateProps(oldVnode, vnode) { + var key, cur, old, elm = vnode.elm, oldProps = oldVnode.data.props, props = vnode.data.props; + if (!oldProps && !props) + { return; } + if (oldProps === props) + { return; } + oldProps = oldProps || {}; + props = props || {}; + for (key in oldProps) { + if (!props[key]) { + delete elm[key]; + } + } + for (key in props) { + cur = props[key]; + old = oldProps[key]; + if (old !== cur && (key !== 'value' || elm[key] !== cur)) { + elm[key] = cur; + } + } + } + var propsModule = { create: updateProps, update: updateProps }; + + var raf = (typeof window !== 'undefined' && window.requestAnimationFrame) || setTimeout; + var nextFrame = function (fn) { raf(function () { raf(fn); }); }; + function setNextFrame(obj, prop, val) { + nextFrame(function () { obj[prop] = val; }); + } + function updateStyle(oldVnode, vnode) { + var cur, name, elm = vnode.elm, oldStyle = oldVnode.data.style, style = vnode.data.style; + if (!oldStyle && !style) + { return; } + if (oldStyle === style) + { return; } + oldStyle = oldStyle || {}; + style = style || {}; + var oldHasDel = 'delayed' in oldStyle; + for (name in oldStyle) { + if (!style[name]) { + if (name[0] === '-' && name[1] === '-') { + elm.style.removeProperty(name); + } + else { + elm.style[name] = ''; + } + } + } + for (name in style) { + cur = style[name]; + if (name === 'delayed' && style.delayed) { + for (var name2 in style.delayed) { + cur = style.delayed[name2]; + if (!oldHasDel || cur !== oldStyle.delayed[name2]) { + setNextFrame(elm.style, name2, cur); + } + } + } + else if (name !== 'remove' && cur !== oldStyle[name]) { + if (name[0] === '-' && name[1] === '-') { + elm.style.setProperty(name, cur); + } + else { + elm.style[name] = cur; + } + } + } + } + function applyDestroyStyle(vnode) { + var style, name, elm = vnode.elm, s = vnode.data.style; + if (!s || !(style = s.destroy)) + { return; } + for (name in style) { + elm.style[name] = style[name]; + } + } + function applyRemoveStyle(vnode, rm) { + var s = vnode.data.style; + if (!s || !s.remove) { + rm(); + return; + } + var name, elm = vnode.elm, i = 0, compStyle, style = s.remove, amount = 0, applied = []; + for (name in style) { + applied.push(name); + elm.style[name] = style[name]; + } + compStyle = getComputedStyle(elm); + var props = compStyle['transition-property'].split(', '); + for (; i < props.length; ++i) { + if (applied.indexOf(props[i]) !== -1) + { amount++; } + } + elm.addEventListener('transitionend', function (ev) { + if (ev.target === elm) + { --amount; } + if (amount === 0) + { rm(); } + }); + } + var styleModule = { + create: updateStyle, + update: updateStyle, + destroy: applyDestroyStyle, + remove: applyRemoveStyle + }; + + function invokeHandler(handler, event, args) { + if (typeof handler === 'function') { + // call function handler + handler.apply(void 0, [ event ].concat( args )); + } + } + function handleEvent(event, args, vnode) { + var name = event.type; + var on = vnode.data.on; + // call event handler(s) if exists + if (on && on[name]) { + invokeHandler(on[name], event, args); + } + } + function createListener() { + return function handler(event) { + var args = [], len = arguments.length - 1; + while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ]; + + handleEvent(event, args, handler.vnode); + }; + } + function updateEvents(oldVnode, vnode) { + var oldOn = oldVnode.data.on; + var oldListener = oldVnode.listener; + var oldElm = oldVnode.elm; + var on = vnode && vnode.data.on; + var elm = (vnode && vnode.elm); + // optimization for reused immutable handlers + if (oldOn === on) { + return; + } + // remove existing listeners which no longer used + if (oldOn && oldListener) { + // if element changed or deleted we remove all existing listeners unconditionally + if (!on) { + Object.keys(oldOn).forEach(function (name) { + $(oldElm).off(name, oldListener); + }); + } else { + Object.keys(oldOn).forEach(function (name) { + if (!on[name]) { + $(oldElm).off(name, oldListener); + } + }); + } + } + // add new listeners which has not already attached + if (on) { + // reuse existing listener or create new + var listener = oldVnode.listener || createListener(); + vnode.listener = listener; + // update vnode for listener + listener.vnode = vnode; + // if element changed or added we add all needed listeners unconditionally + if (!oldOn) { + Object.keys(on).forEach(function (name) { + $(elm).on(name, listener); + }); + } else { + Object.keys(on).forEach(function (name) { + if (!oldOn[name]) { + $(elm).on(name, listener); + } + }); + } + } + } + + var eventListenersModule = { + create: updateEvents, + update: updateEvents, + destroy: updateEvents, + }; + + /* eslint import/no-named-as-default: off */ + + var patch = init([ + attributesModule, + propsModule, + styleModule, + eventListenersModule ]); + + var componentMixins = {}; + + /* eslint no-underscore-dangle: "off" */ + + var Component = function Component(app, options, extendContext, children) { + if ( options === void 0 ) options = {}; + if ( extendContext === void 0 ) extendContext = {}; + + var id = Utils.id(); + var self = this; + Utils.merge( + self, + { $props: {} }, + extendContext, + { + $: $, + $$: $, + $dom7: $, + $app: app, + $f7: app, + $options: Utils.extend({ id: id }, options), + $id: options.isClassComponent ? self.constructor.id : (options.id || id), + $mixins: options.isClassComponent ? self.constructor.mixins : options.mixins, + $children: children || [], + $isRootComponent: !!options.root, + } + ); + var $options = self.$options; + + + if (self.$mixins && self.$mixins.length) { + for (var i = self.$mixins.length - 1; i >= 0; i -= 1) { + var mixin = self.$mixins[i]; + if (typeof mixin === 'string') { + if (componentMixins[mixin]) { self.$mixins[i] = componentMixins[mixin]; } + else { self.$mixins.splice(i, 1); } + } + } + } + + Object.defineProperty(self, '$slots', { + enumerable: true, + configurable: true, + get: function get() { + var slots = {}; + self.$children.forEach(function (childVNode) { + var childSlotName = 'default'; + if (childVNode.data) { + childSlotName = (childVNode.data.attrs && childVNode.data.attrs.slot) || 'default'; + } + if (!slots[childSlotName]) { slots[childSlotName] = []; } + slots[childSlotName].push(childVNode); + }); + return slots; + }, + }); + + + // Root data and methods + Object.defineProperty(self, '$root', { + enumerable: true, + configurable: true, + get: function get() { + if (self.$isRootComponent) { + return self; + } + if (app.rootComponent) { + if (!self.$onRootUpdated) { + self.$onRootUpdated = function () { return self.$update(); }; + app.on('rootComponentUpdated', self.$onRootUpdated); + } + return app.rootComponent; + } + var root = Utils.merge({}, app.data, app.methods); + if (win && win.Proxy) { + root = new win.Proxy(root, { + set: function set(target, name, val) { + app.data[name] = val; + }, + deleteProperty: function deleteProperty(target, name) { + delete app.data[name]; + delete app.methods[name]; + }, + has: function has(target, name) { + return (name in app.data || name in app.methods); + }, + }); + } + return root; + }, + set: function set() {}, + }); + + // Bind render + if ($options.render) { $options.render = $options.render.bind(self); } + + // Bind methods + var methods = {}; + if (self.$mixins && self.$mixins.length) { + self.$mixins.forEach(function (mixin) { + if (mixin.methods) { Object.assign(methods, mixin.methods); } + }); + } + if ($options.methods) { + Object.assign(methods, $options.methods); + } + Object.keys(methods).forEach(function (methodName) { + self[methodName] = methods[methodName].bind(self); + }); + + // Bind Events + if ($options.on) { + Object.keys($options.on).forEach(function (eventName) { + $options.on[eventName] = $options.on[eventName].bind(self); + }); + } + if ($options.once) { + Object.keys($options.once).forEach(function (eventName) { + $options.once[eventName] = $options.once[eventName].bind(self); + }); + } + + self.$style = $options.isClassComponent ? self.constructor.style : $options.style; + self.$styleScoped = $options.isClassComponent ? self.constructor.styleScoped : $options.styleScoped; + + self.__updateQueue = []; + + return new Promise(function (resolve, reject) { + self.$hook('data', true) + .then(function (datas) { + var data = {}; + datas.forEach(function (dt) { + Object.assign(data, dt || {}); + }); + Utils.extend(self, data); + self.$hook('beforeCreate'); + var html = self.$render(); + + if (self.$options.el) { + html = html.trim(); + self.$vnode = vdom(html, self, true); + if (self.$style) { + self.$styleEl = doc.createElement('style'); + self.$styleEl.innerHTML = self.$style; + } + self.el = self.$options.el; + patch(self.el, self.$vnode); + self.el = self.$vnode.elm; + self.$el = $(self.el); + + self.$attachEvents(); + self.el.f7Component = self; + self.$hook('created'); + self.$mount(); + resolve(self); + return; + } + // Make Dom + if (html && typeof html === 'string') { + html = html.trim(); + self.$vnode = vdom(html, self, true); + self.el = doc.createElement(self.$vnode.sel || 'div'); + patch(self.el, self.$vnode); + self.$el = $(self.el); + } else if (html) { + self.el = html; + self.$el = $(self.el); + } + if (self.$style) { + self.$styleEl = doc.createElement('style'); + self.$styleEl.innerHTML = self.$style; + } + + self.$attachEvents(); + + if (self.el) { + self.el.f7Component = self; + } + + self.$hook('created'); + resolve(self); + }) + .catch(function (err) { + reject(err); + }); + }); + }; + + Component.prototype.$attachEvents = function $attachEvents () { + var self = this; + var $options = self.$options; + var $el = self.$el; + if (self.$mixins && self.$mixins.length) { + self.$detachEventsHandlers = {}; + self.$mixins.forEach(function (mixin) { + if (mixin.on) { + Object.keys(mixin.on).forEach(function (eventName) { + var handler = mixin.on[eventName].bind(self); + if (!self.$detachEventsHandlers[eventName]) { self.$detachEventsHandlers[eventName] = []; } + self.$detachEventsHandlers[eventName].push(handler); + $el.on(Utils.eventNameToColonCase(eventName), handler); + }); + } + if (mixin.once) { + Object.keys(mixin.once).forEach(function (eventName) { + var handler = mixin.once[eventName].bind(self); + if (!self.$detachEventsHandlers[eventName]) { self.$detachEventsHandlers[eventName] = []; } + self.$detachEventsHandlers[eventName].push(handler); + $el.once(Utils.eventNameToColonCase(eventName), handler); + }); + } + }); + } + if ($options.on) { + Object.keys($options.on).forEach(function (eventName) { + $el.on(Utils.eventNameToColonCase(eventName), $options.on[eventName]); + }); + } + if ($options.once) { + Object.keys($options.once).forEach(function (eventName) { + $el.once(Utils.eventNameToColonCase(eventName), $options.once[eventName]); + }); + } + }; + + Component.prototype.$detachEvents = function $detachEvents () { + var self = this; + var $options = self.$options; + var $el = self.$el; + if ($options.on) { + Object.keys($options.on).forEach(function (eventName) { + $el.off(Utils.eventNameToColonCase(eventName), $options.on[eventName]); + }); + } + if ($options.once) { + Object.keys($options.once).forEach(function (eventName) { + $el.off(Utils.eventNameToColonCase(eventName), $options.once[eventName]); + }); + } + if (!self.$detachEventsHandlers) { return; } + Object.keys(self.$detachEventsHandlers).forEach(function (eventName) { + var handlers = self.$detachEventsHandlers[eventName]; + handlers.forEach(function (handler) { + $el.off(Utils.eventNameToColonCase(eventName), handler); + }); + self.$detachEventsHandlers[eventName] = []; + delete self.$detachEventsHandlers[eventName]; + }); + self.$detachEventsHandlers = null; + delete self.$detachEventsHandlers; + }; + + Component.prototype.$render = function $render () { + var self = this; + var $options = self.$options; + var html = ''; + if ($options.render) { + html = $options.render(); + } else if (self.render) { + html = self.render.call(self); + } else if ($options.template) { + if (typeof $options.template === 'string') { + html = Template7.compile($options.template)(self); + } else { + // Supposed to be function + html = $options.template(self); + } + } + return html; + }; + + Component.prototype.$startUpdateQueue = function $startUpdateQueue () { + var self = this; + if (self.__requestAnimationFrameId) { return; } + function update() { + var html = self.$render(); + + // Make Dom + if (html && typeof html === 'string') { + html = html.trim(); + var newVNode = vdom(html, self, false); + self.$vnode = patch(self.$vnode, newVNode); + } + } + self.__requestAnimationFrameId = win.requestAnimationFrame(function () { + if (self.__updateIsPending) { update(); } + var resolvers = [].concat( self.__updateQueue ); + self.__updateQueue = []; + self.__updateIsPending = false; + win.cancelAnimationFrame(self.__requestAnimationFrameId); + delete self.__requestAnimationFrameId; + delete self.__updateIsPending; + resolvers.forEach(function (resolver) { return resolver(); }); + resolvers = []; + }); + }; + + Component.prototype.$tick = function $tick (callback) { + var self = this; + return new Promise(function (resolve) { + function resolver() { + resolve(); + if (callback) { callback(); } + } + self.__updateQueue.push(resolver); + self.$startUpdateQueue(); + }); + }; + + Component.prototype.$update = function $update (callback) { + var self = this; + return new Promise(function (resolve) { + function resolver() { + resolve(); + if (callback) { callback(); } + if (self.$isRootComponent) { + self.$f7.emit('rootComponentUpdated'); + } + } + self.__updateIsPending = true; + self.__updateQueue.push(resolver); + self.$startUpdateQueue(); + }); + }; + + Component.prototype.$setState = function $setState (mergeState, callback) { + if ( mergeState === void 0 ) mergeState = {}; + + var self = this; + Utils.merge(self, mergeState); + return self.$update(callback); + }; + + Component.prototype.$f7ready = function $f7ready (callback) { + var this$1 = this; + + if (this.$f7.initialized) { + callback(this.$f7); + return; + } + this.$f7.once('init', function () { + callback(this$1.$f7); + }); + }; + + Component.prototype.$mount = function $mount (mountMethod) { + var self = this; + self.$hook('beforeMount'); + if (self.$styleEl) { $('head').append(self.$styleEl); } + if (mountMethod) { mountMethod(self.el); } + self.$hook('mounted'); + }; + + Component.prototype.$destroy = function $destroy () { + var self = this; + self.$hook('beforeDestroy'); + + if (self.$styleEl) { $(self.$styleEl).remove(); } + if (self.$onRootUpdated) { + self.$f7.off('rootComponentUpdated', self.$onRootUpdated); + delete self.$onRootUpdated; + } + + self.$detachEvents(); + self.$hook('destroyed'); + // Delete component instance + if (self.el && self.el.f7Component) { + self.el.f7Component = null; + delete self.el.f7Component; + } + // Patch with empty node + if (self.$vnode) { + self.$vnode = patch(self.$vnode, { sel: self.$vnode.sel, data: {} }); + } + // Clear update queue + win.cancelAnimationFrame(self.__requestAnimationFrameId); + + // Delete all props + Utils.deleteProps(self); + }; + + Component.prototype.$hook = function $hook (name, async) { + var self = this; + if (async) { + var promises = []; + if (self.$mixins && self.$mixins.length) { + self.$mixins.forEach(function (mixin) { + if (mixin[name]) { promises.push(mixin[name].call(self)); } + }); + } + if (self[name] && typeof self[name] === 'function') { + promises.push(self[name].call(self)); + } + if (self.$options[name]) { + promises.push(self.$options[name].call(self)); + } + return Promise.all(promises); + } + if (self.$mixins && self.$mixins.length) { + self.$mixins.forEach(function (mixin) { + if (mixin[name] && typeof mixin[name] === 'function') { + mixin[name].call(self); + } + }); + } + if (self.$options[name]) { return self.$options[name].call(self); } + if (self[name]) { return self[name].call(self); } + return undefined; + }; + + function parseComponent(componentString) { + var id = Utils.id(); + var callbackCreateName = "f7_component_create_callback_" + id; + var callbackRenderName = "f7_component_render_callback_" + id; + + // Template + var template; + var hasTemplate = componentString.match(//); + var templateType = hasTemplate[2] || 't7'; + if (hasTemplate) { + template = componentString + .split(//) + .filter(function (item, index) { return index > 0; }) + .join('') + .filter(function (item, index, arr) { return index < arr.length - 1; }) + .join('') + .replace(/{{#raw}}([ \n]*)