diff --git a/fittrackee/dist/index.html b/fittrackee/dist/index.html index 10b95e26..1432213a 100644 --- a/fittrackee/dist/index.html +++ b/fittrackee/dist/index.html @@ -1 +1 @@ -FitTrackee
\ No newline at end of file +FitTrackee
\ No newline at end of file diff --git a/fittrackee/dist/service-worker.js b/fittrackee/dist/service-worker.js index f66be017..8647f901 100644 --- a/fittrackee/dist/service-worker.js +++ b/fittrackee/dist/service-worker.js @@ -1,2 +1,2 @@ -if(!self.define){let s,i={};const e=(e,t)=>(e=new URL(e+".js",t).href,i[e]||new Promise((i=>{if("document"in self){const s=document.createElement("script");s.src=e,s.onload=i,document.head.appendChild(s)}else s=e,importScripts(e),i()})).then((()=>{let s=i[e];if(!s)throw new Error(`Module ${e} didn’t register its module`);return s})));self.define=(t,r)=>{const a=s||("document"in self?document.currentScript.src:"")||location.href;if(i[a])return;let n={};const l=s=>e(s,a),c={module:{uri:a},exports:n,require:l};i[a]=Promise.all(t.map((s=>c[s]||l(s)))).then((s=>(r(...s),n)))}}define(["./workbox-db5fc017"],(function(s){"use strict";s.setCacheNameDetails({prefix:"fittrackee_client"}),self.addEventListener("message",(s=>{s.data&&"SKIP_WAITING"===s.data.type&&self.skipWaiting()})),s.precacheAndRoute([{url:"/img/bike.svg",revision:"ab4faed007625b209af72b9b8dce84db"},{url:"/img/weather/breeze.svg",revision:"428c6ccb838f8e91dc4826c5b650a98b"},{url:"/img/weather/clear-day.svg",revision:"f3e8628de2e5089f508f03944f8be951"},{url:"/img/weather/clear-night.svg",revision:"6a0d6579a93e89fdf1a2a95b398e0935"},{url:"/img/weather/cloudy.svg",revision:"c52fe62c9d9fea2cdf5ae2813b3df366"},{url:"/img/weather/fog.svg",revision:"9f4d74289594eb83f9c175d13167a0eb"},{url:"/img/weather/partly-cloudy-day.svg",revision:"f730c2e4f4c014e8b49c9d4a0a141b90"},{url:"/img/weather/partly-cloudy-night.svg",revision:"0d9270901c4dffbc05f3998d835171c8"},{url:"/img/weather/pour-rain.svg",revision:"91eb3159ba8781d258d8c384a8ef987c"},{url:"/img/weather/rain.svg",revision:"c52ca88ce0ddf4de0fc29167e578b2be"},{url:"/img/weather/sleet.svg",revision:"97d61d89332f912c1ec27bcbe077b7bd"},{url:"/img/weather/snow.svg",revision:"9e88c89c0d6d14174e9665e98932dd80"},{url:"/img/weather/temperature.svg",revision:"d42b62d0b57d5d326506277d87b70435"},{url:"/img/weather/wind.svg",revision:"d75fbe559220d7b2b9577a98a91f38d0"},{url:"/img/workouts/finish.svg",revision:"375196b7ade7c07c3b64ac4cb8b850a8"},{url:"/img/workouts/mountains.svg",revision:"0b94f1d4a050a86ca5ac89ab3ed60f9c"},{url:"/img/workouts/start.svg",revision:"97f6a197b6c2869e0cb2ff0e7697af86"},{url:"/index.html",revision:"55a53972b8b932b5bc11b4334585033c"},{url:"/manifest.json",revision:"c61028ca6e9f81bf958e6b66238e2d7c"},{url:"/robots.txt",revision:"b6216d61c03e6ce0c9aea6ca7808f7ca"},{url:"/static/css/admin.73df498d.css",revision:null},{url:"/static/css/app.b6bd588e.css",revision:null},{url:"/static/css/fork-awesome.min.css",revision:"82c1118c918377daaa71a320ab8eea42"},{url:"/static/css/leaflet.css",revision:"5c761a156eea82263d8bacf1718fe04d"},{url:"/static/css/profile.9f83730d.css",revision:null},{url:"/static/css/reset.e2527ec6.css",revision:null},{url:"/static/css/statistics.40e24e75.css",revision:null},{url:"/static/css/workouts.9970f29e.css",revision:null},{url:"/static/fonts/forkawesome-webfont.eot",revision:"e719f9244c69e28e7d00e725ca1e280e"},{url:"/static/fonts/forkawesome-webfont.svg",revision:"d58987a18774d859d98af95281c1dee5"},{url:"/static/fonts/forkawesome-webfont.ttf",revision:"fe45770c6c277da3921355d971045ea5"},{url:"/static/fonts/forkawesome-webfont.woff",revision:"92cd4d8328b2ae614386a01ff935a9f3"},{url:"/static/fonts/forkawesome-webfont.woff2",revision:"12ee76445f0383c58529169d700b6650"},{url:"/static/fonts/pt-sans-v9-latin-700.01a58da9.eot",revision:null},{url:"/static/fonts/pt-sans-v9-latin-700.51b1613b.woff2",revision:null},{url:"/static/fonts/pt-sans-v9-latin-700.5ff2a2d7.woff",revision:null},{url:"/static/fonts/pt-sans-v9-latin-700.6514157e.ttf",revision:null},{url:"/static/fonts/pt-sans-v9-latin-italic.10011d51.woff2",revision:null},{url:"/static/fonts/pt-sans-v9-latin-italic.6206408d.ttf",revision:null},{url:"/static/fonts/pt-sans-v9-latin-italic.8293436e.eot",revision:null},{url:"/static/fonts/pt-sans-v9-latin-italic.fe36f54f.woff",revision:null},{url:"/static/fonts/pt-sans-v9-latin-regular.b5b74f16.woff",revision:null},{url:"/static/fonts/pt-sans-v9-latin-regular.c43bc0a2.ttf",revision:null},{url:"/static/fonts/pt-sans-v9-latin-regular.c5a514ae.eot",revision:null},{url:"/static/fonts/pt-sans-v9-latin-regular.e7867499.woff2",revision:null},{url:"/static/img/map.5b26d82b.svg",revision:null},{url:"/static/img/pt-sans-v9-latin-700.b8a7047e.svg",revision:null},{url:"/static/img/pt-sans-v9-latin-italic.0b285c83.svg",revision:null},{url:"/static/img/pt-sans-v9-latin-regular.59a385b4.svg",revision:null},{url:"/static/js/243.d3fff3a7.js",revision:null},{url:"/static/js/431.52f71cad.js",revision:null},{url:"/static/js/633.5eb61510.js",revision:null},{url:"/static/js/858.ec3b00a9.js",revision:null},{url:"/static/js/93.611a4415.js",revision:null},{url:"/static/js/admin.c4231dfb.js",revision:null},{url:"/static/js/app.bfd1d501.js",revision:null},{url:"/static/js/chunk-vendors.561352b4.js",revision:null},{url:"/static/js/profile.984aa6f4.js",revision:null},{url:"/static/js/reset.49874687.js",revision:null},{url:"/static/js/statistics.5231fa2f.js",revision:null},{url:"/static/js/workouts.6988dc66.js",revision:null}],{})})); +if(!self.define){let s,i={};const e=(e,t)=>(e=new URL(e+".js",t).href,i[e]||new Promise((i=>{if("document"in self){const s=document.createElement("script");s.src=e,s.onload=i,document.head.appendChild(s)}else s=e,importScripts(e),i()})).then((()=>{let s=i[e];if(!s)throw new Error(`Module ${e} didn’t register its module`);return s})));self.define=(t,r)=>{const a=s||("document"in self?document.currentScript.src:"")||location.href;if(i[a])return;let n={};const l=s=>e(s,a),c={module:{uri:a},exports:n,require:l};i[a]=Promise.all(t.map((s=>c[s]||l(s)))).then((s=>(r(...s),n)))}}define(["./workbox-db5fc017"],(function(s){"use strict";s.setCacheNameDetails({prefix:"fittrackee_client"}),self.addEventListener("message",(s=>{s.data&&"SKIP_WAITING"===s.data.type&&self.skipWaiting()})),s.precacheAndRoute([{url:"/img/bike.svg",revision:"ab4faed007625b209af72b9b8dce84db"},{url:"/img/weather/breeze.svg",revision:"428c6ccb838f8e91dc4826c5b650a98b"},{url:"/img/weather/clear-day.svg",revision:"f3e8628de2e5089f508f03944f8be951"},{url:"/img/weather/clear-night.svg",revision:"6a0d6579a93e89fdf1a2a95b398e0935"},{url:"/img/weather/cloudy.svg",revision:"c52fe62c9d9fea2cdf5ae2813b3df366"},{url:"/img/weather/fog.svg",revision:"9f4d74289594eb83f9c175d13167a0eb"},{url:"/img/weather/partly-cloudy-day.svg",revision:"f730c2e4f4c014e8b49c9d4a0a141b90"},{url:"/img/weather/partly-cloudy-night.svg",revision:"0d9270901c4dffbc05f3998d835171c8"},{url:"/img/weather/pour-rain.svg",revision:"91eb3159ba8781d258d8c384a8ef987c"},{url:"/img/weather/rain.svg",revision:"c52ca88ce0ddf4de0fc29167e578b2be"},{url:"/img/weather/sleet.svg",revision:"97d61d89332f912c1ec27bcbe077b7bd"},{url:"/img/weather/snow.svg",revision:"9e88c89c0d6d14174e9665e98932dd80"},{url:"/img/weather/temperature.svg",revision:"d42b62d0b57d5d326506277d87b70435"},{url:"/img/weather/wind.svg",revision:"d75fbe559220d7b2b9577a98a91f38d0"},{url:"/img/workouts/finish.svg",revision:"375196b7ade7c07c3b64ac4cb8b850a8"},{url:"/img/workouts/mountains.svg",revision:"0b94f1d4a050a86ca5ac89ab3ed60f9c"},{url:"/img/workouts/start.svg",revision:"97f6a197b6c2869e0cb2ff0e7697af86"},{url:"/index.html",revision:"c30914d466d40a1876b5328c80621802"},{url:"/manifest.json",revision:"c61028ca6e9f81bf958e6b66238e2d7c"},{url:"/robots.txt",revision:"b6216d61c03e6ce0c9aea6ca7808f7ca"},{url:"/static/css/admin.73df498d.css",revision:null},{url:"/static/css/app.6b717ec5.css",revision:null},{url:"/static/css/fork-awesome.min.css",revision:"82c1118c918377daaa71a320ab8eea42"},{url:"/static/css/leaflet.css",revision:"5c761a156eea82263d8bacf1718fe04d"},{url:"/static/css/profile.9f83730d.css",revision:null},{url:"/static/css/reset.e2527ec6.css",revision:null},{url:"/static/css/statistics.40e24e75.css",revision:null},{url:"/static/css/workouts.9970f29e.css",revision:null},{url:"/static/fonts/forkawesome-webfont.eot",revision:"e719f9244c69e28e7d00e725ca1e280e"},{url:"/static/fonts/forkawesome-webfont.svg",revision:"d58987a18774d859d98af95281c1dee5"},{url:"/static/fonts/forkawesome-webfont.ttf",revision:"fe45770c6c277da3921355d971045ea5"},{url:"/static/fonts/forkawesome-webfont.woff",revision:"92cd4d8328b2ae614386a01ff935a9f3"},{url:"/static/fonts/forkawesome-webfont.woff2",revision:"12ee76445f0383c58529169d700b6650"},{url:"/static/fonts/pt-sans-v9-latin-700.01a58da9.eot",revision:null},{url:"/static/fonts/pt-sans-v9-latin-700.51b1613b.woff2",revision:null},{url:"/static/fonts/pt-sans-v9-latin-700.5ff2a2d7.woff",revision:null},{url:"/static/fonts/pt-sans-v9-latin-700.6514157e.ttf",revision:null},{url:"/static/fonts/pt-sans-v9-latin-italic.10011d51.woff2",revision:null},{url:"/static/fonts/pt-sans-v9-latin-italic.6206408d.ttf",revision:null},{url:"/static/fonts/pt-sans-v9-latin-italic.8293436e.eot",revision:null},{url:"/static/fonts/pt-sans-v9-latin-italic.fe36f54f.woff",revision:null},{url:"/static/fonts/pt-sans-v9-latin-regular.b5b74f16.woff",revision:null},{url:"/static/fonts/pt-sans-v9-latin-regular.c43bc0a2.ttf",revision:null},{url:"/static/fonts/pt-sans-v9-latin-regular.c5a514ae.eot",revision:null},{url:"/static/fonts/pt-sans-v9-latin-regular.e7867499.woff2",revision:null},{url:"/static/img/map.5b26d82b.svg",revision:null},{url:"/static/img/pt-sans-v9-latin-700.b8a7047e.svg",revision:null},{url:"/static/img/pt-sans-v9-latin-italic.0b285c83.svg",revision:null},{url:"/static/img/pt-sans-v9-latin-regular.59a385b4.svg",revision:null},{url:"/static/js/243.d3fff3a7.js",revision:null},{url:"/static/js/431.52f71cad.js",revision:null},{url:"/static/js/633.5eb61510.js",revision:null},{url:"/static/js/858.ec3b00a9.js",revision:null},{url:"/static/js/93.611a4415.js",revision:null},{url:"/static/js/admin.c4231dfb.js",revision:null},{url:"/static/js/app.b793fcb5.js",revision:null},{url:"/static/js/chunk-vendors.561352b4.js",revision:null},{url:"/static/js/profile.984aa6f4.js",revision:null},{url:"/static/js/reset.eae5999b.js",revision:null},{url:"/static/js/statistics.7cce80c4.js",revision:null},{url:"/static/js/workouts.bbc7589b.js",revision:null}],{})})); //# sourceMappingURL=service-worker.js.map diff --git a/fittrackee/dist/service-worker.js.map b/fittrackee/dist/service-worker.js.map index 9ad2414a..c7fe5c12 100644 --- a/fittrackee/dist/service-worker.js.map +++ b/fittrackee/dist/service-worker.js.map @@ -1 +1 @@ -{"version":3,"file":"service-worker.js","sources":["../../../../../../tmp/20e47f35d8b9edd20489b5c94e52ec25/service-worker.js"],"sourcesContent":["import {setCacheNameDetails as workbox_core_setCacheNameDetails} from '/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/workbox-core/setCacheNameDetails.mjs';\nimport {precacheAndRoute as workbox_precaching_precacheAndRoute} from '/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/workbox-precaching/precacheAndRoute.mjs';/**\n * Welcome to your Workbox-powered service worker!\n *\n * You'll need to register this file in your web app.\n * See https://goo.gl/nhQhGp\n *\n * The rest of the code is auto-generated. Please don't update this file\n * directly; instead, make changes to your Workbox build configuration\n * and re-run your build process.\n * See https://goo.gl/2aRDsh\n */\n\n\n\n\n\nworkbox_core_setCacheNameDetails({prefix: \"fittrackee_client\"});\n\n\nself.addEventListener('message', (event) => {\n if (event.data && event.data.type === 'SKIP_WAITING') {\n self.skipWaiting();\n }\n});\n\n\n\n\n/**\n * The precacheAndRoute() method efficiently caches and responds to\n * requests for URLs in the manifest.\n * See https://goo.gl/S9QRab\n */\nworkbox_precaching_precacheAndRoute([\n {\n \"url\": \"/img/bike.svg\",\n \"revision\": \"ab4faed007625b209af72b9b8dce84db\"\n },\n {\n \"url\": \"/img/weather/breeze.svg\",\n \"revision\": \"428c6ccb838f8e91dc4826c5b650a98b\"\n },\n {\n \"url\": \"/img/weather/clear-day.svg\",\n \"revision\": \"f3e8628de2e5089f508f03944f8be951\"\n },\n {\n \"url\": \"/img/weather/clear-night.svg\",\n \"revision\": \"6a0d6579a93e89fdf1a2a95b398e0935\"\n },\n {\n \"url\": \"/img/weather/cloudy.svg\",\n \"revision\": \"c52fe62c9d9fea2cdf5ae2813b3df366\"\n },\n {\n \"url\": \"/img/weather/fog.svg\",\n \"revision\": \"9f4d74289594eb83f9c175d13167a0eb\"\n },\n {\n \"url\": \"/img/weather/partly-cloudy-day.svg\",\n \"revision\": \"f730c2e4f4c014e8b49c9d4a0a141b90\"\n },\n {\n \"url\": \"/img/weather/partly-cloudy-night.svg\",\n \"revision\": \"0d9270901c4dffbc05f3998d835171c8\"\n },\n {\n \"url\": \"/img/weather/pour-rain.svg\",\n \"revision\": \"91eb3159ba8781d258d8c384a8ef987c\"\n },\n {\n \"url\": \"/img/weather/rain.svg\",\n \"revision\": \"c52ca88ce0ddf4de0fc29167e578b2be\"\n },\n {\n \"url\": \"/img/weather/sleet.svg\",\n \"revision\": \"97d61d89332f912c1ec27bcbe077b7bd\"\n },\n {\n \"url\": \"/img/weather/snow.svg\",\n \"revision\": \"9e88c89c0d6d14174e9665e98932dd80\"\n },\n {\n \"url\": \"/img/weather/temperature.svg\",\n \"revision\": \"d42b62d0b57d5d326506277d87b70435\"\n },\n {\n \"url\": \"/img/weather/wind.svg\",\n \"revision\": \"d75fbe559220d7b2b9577a98a91f38d0\"\n },\n {\n \"url\": \"/img/workouts/finish.svg\",\n \"revision\": \"375196b7ade7c07c3b64ac4cb8b850a8\"\n },\n {\n \"url\": \"/img/workouts/mountains.svg\",\n \"revision\": \"0b94f1d4a050a86ca5ac89ab3ed60f9c\"\n },\n {\n \"url\": \"/img/workouts/start.svg\",\n \"revision\": \"97f6a197b6c2869e0cb2ff0e7697af86\"\n },\n {\n \"url\": \"/index.html\",\n \"revision\": \"55a53972b8b932b5bc11b4334585033c\"\n },\n {\n \"url\": \"/manifest.json\",\n \"revision\": \"c61028ca6e9f81bf958e6b66238e2d7c\"\n },\n {\n \"url\": \"/robots.txt\",\n \"revision\": \"b6216d61c03e6ce0c9aea6ca7808f7ca\"\n },\n {\n \"url\": \"/static/css/admin.73df498d.css\",\n \"revision\": null\n },\n {\n \"url\": \"/static/css/app.b6bd588e.css\",\n \"revision\": null\n },\n {\n \"url\": \"/static/css/fork-awesome.min.css\",\n \"revision\": \"82c1118c918377daaa71a320ab8eea42\"\n },\n {\n \"url\": \"/static/css/leaflet.css\",\n \"revision\": \"5c761a156eea82263d8bacf1718fe04d\"\n },\n {\n \"url\": \"/static/css/profile.9f83730d.css\",\n \"revision\": null\n },\n {\n \"url\": \"/static/css/reset.e2527ec6.css\",\n \"revision\": null\n },\n {\n \"url\": \"/static/css/statistics.40e24e75.css\",\n \"revision\": null\n },\n {\n \"url\": \"/static/css/workouts.9970f29e.css\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/forkawesome-webfont.eot\",\n \"revision\": \"e719f9244c69e28e7d00e725ca1e280e\"\n },\n {\n \"url\": \"/static/fonts/forkawesome-webfont.svg\",\n \"revision\": \"d58987a18774d859d98af95281c1dee5\"\n },\n {\n \"url\": \"/static/fonts/forkawesome-webfont.ttf\",\n \"revision\": \"fe45770c6c277da3921355d971045ea5\"\n },\n {\n \"url\": \"/static/fonts/forkawesome-webfont.woff\",\n \"revision\": \"92cd4d8328b2ae614386a01ff935a9f3\"\n },\n {\n \"url\": \"/static/fonts/forkawesome-webfont.woff2\",\n \"revision\": \"12ee76445f0383c58529169d700b6650\"\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-700.01a58da9.eot\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-700.51b1613b.woff2\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-700.5ff2a2d7.woff\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-700.6514157e.ttf\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-italic.10011d51.woff2\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-italic.6206408d.ttf\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-italic.8293436e.eot\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-italic.fe36f54f.woff\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-regular.b5b74f16.woff\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-regular.c43bc0a2.ttf\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-regular.c5a514ae.eot\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-regular.e7867499.woff2\",\n \"revision\": null\n },\n {\n \"url\": \"/static/img/map.5b26d82b.svg\",\n \"revision\": null\n },\n {\n \"url\": \"/static/img/pt-sans-v9-latin-700.b8a7047e.svg\",\n \"revision\": null\n },\n {\n \"url\": \"/static/img/pt-sans-v9-latin-italic.0b285c83.svg\",\n \"revision\": null\n },\n {\n \"url\": \"/static/img/pt-sans-v9-latin-regular.59a385b4.svg\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/243.d3fff3a7.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/431.52f71cad.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/633.5eb61510.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/858.ec3b00a9.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/93.611a4415.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/admin.c4231dfb.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/app.bfd1d501.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/chunk-vendors.561352b4.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/profile.984aa6f4.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/reset.49874687.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/statistics.5231fa2f.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/workouts.6988dc66.js\",\n \"revision\": null\n }\n], {});\n\n\n\n\n\n\n\n\n"],"names":["workbox_core_setCacheNameDetails","prefix","self","addEventListener","event","data","type","skipWaiting","workbox_precaching_precacheAndRoute","url","revision"],"mappings":"0nBAiBAA,EAAAA,oBAAiC,CAACC,OAAQ,sBAG1CC,KAAKC,iBAAiB,WAAYC,IAC5BA,EAAMC,MAA4B,iBAApBD,EAAMC,KAAKC,MAC3BJ,KAAKK,aACP,IAWFC,EAAAA,iBAAoC,CAClC,CACEC,IAAO,gBACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,6BACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,uCACPC,SAAY,oCAEd,CACED,IAAO,6BACPC,SAAY,oCAEd,CACED,IAAO,wBACPC,SAAY,oCAEd,CACED,IAAO,yBACPC,SAAY,oCAEd,CACED,IAAO,wBACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,wBACPC,SAAY,oCAEd,CACED,IAAO,2BACPC,SAAY,oCAEd,CACED,IAAO,8BACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,cACPC,SAAY,oCAEd,CACED,IAAO,iBACPC,SAAY,oCAEd,CACED,IAAO,cACPC,SAAY,oCAEd,CACED,IAAO,iCACPC,SAAY,MAEd,CACED,IAAO,+BACPC,SAAY,MAEd,CACED,IAAO,mCACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,mCACPC,SAAY,MAEd,CACED,IAAO,iCACPC,SAAY,MAEd,CACED,IAAO,sCACPC,SAAY,MAEd,CACED,IAAO,oCACPC,SAAY,MAEd,CACED,IAAO,wCACPC,SAAY,oCAEd,CACED,IAAO,wCACPC,SAAY,oCAEd,CACED,IAAO,wCACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oCAEd,CACED,IAAO,0CACPC,SAAY,oCAEd,CACED,IAAO,kDACPC,SAAY,MAEd,CACED,IAAO,oDACPC,SAAY,MAEd,CACED,IAAO,mDACPC,SAAY,MAEd,CACED,IAAO,kDACPC,SAAY,MAEd,CACED,IAAO,uDACPC,SAAY,MAEd,CACED,IAAO,qDACPC,SAAY,MAEd,CACED,IAAO,qDACPC,SAAY,MAEd,CACED,IAAO,sDACPC,SAAY,MAEd,CACED,IAAO,uDACPC,SAAY,MAEd,CACED,IAAO,sDACPC,SAAY,MAEd,CACED,IAAO,sDACPC,SAAY,MAEd,CACED,IAAO,wDACPC,SAAY,MAEd,CACED,IAAO,+BACPC,SAAY,MAEd,CACED,IAAO,gDACPC,SAAY,MAEd,CACED,IAAO,mDACPC,SAAY,MAEd,CACED,IAAO,oDACPC,SAAY,MAEd,CACED,IAAO,6BACPC,SAAY,MAEd,CACED,IAAO,6BACPC,SAAY,MAEd,CACED,IAAO,6BACPC,SAAY,MAEd,CACED,IAAO,6BACPC,SAAY,MAEd,CACED,IAAO,4BACPC,SAAY,MAEd,CACED,IAAO,+BACPC,SAAY,MAEd,CACED,IAAO,6BACPC,SAAY,MAEd,CACED,IAAO,uCACPC,SAAY,MAEd,CACED,IAAO,iCACPC,SAAY,MAEd,CACED,IAAO,+BACPC,SAAY,MAEd,CACED,IAAO,oCACPC,SAAY,MAEd,CACED,IAAO,kCACPC,SAAY,OAEb,CAAA"} \ No newline at end of file +{"version":3,"file":"service-worker.js","sources":["../../../../../../tmp/949f0fe8e5bb005a6a769af007b978f4/service-worker.js"],"sourcesContent":["import {setCacheNameDetails as workbox_core_setCacheNameDetails} from '/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/workbox-core/setCacheNameDetails.mjs';\nimport {precacheAndRoute as workbox_precaching_precacheAndRoute} from '/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/workbox-precaching/precacheAndRoute.mjs';/**\n * Welcome to your Workbox-powered service worker!\n *\n * You'll need to register this file in your web app.\n * See https://goo.gl/nhQhGp\n *\n * The rest of the code is auto-generated. Please don't update this file\n * directly; instead, make changes to your Workbox build configuration\n * and re-run your build process.\n * See https://goo.gl/2aRDsh\n */\n\n\n\n\n\nworkbox_core_setCacheNameDetails({prefix: \"fittrackee_client\"});\n\n\nself.addEventListener('message', (event) => {\n if (event.data && event.data.type === 'SKIP_WAITING') {\n self.skipWaiting();\n }\n});\n\n\n\n\n/**\n * The precacheAndRoute() method efficiently caches and responds to\n * requests for URLs in the manifest.\n * See https://goo.gl/S9QRab\n */\nworkbox_precaching_precacheAndRoute([\n {\n \"url\": \"/img/bike.svg\",\n \"revision\": \"ab4faed007625b209af72b9b8dce84db\"\n },\n {\n \"url\": \"/img/weather/breeze.svg\",\n \"revision\": \"428c6ccb838f8e91dc4826c5b650a98b\"\n },\n {\n \"url\": \"/img/weather/clear-day.svg\",\n \"revision\": \"f3e8628de2e5089f508f03944f8be951\"\n },\n {\n \"url\": \"/img/weather/clear-night.svg\",\n \"revision\": \"6a0d6579a93e89fdf1a2a95b398e0935\"\n },\n {\n \"url\": \"/img/weather/cloudy.svg\",\n \"revision\": \"c52fe62c9d9fea2cdf5ae2813b3df366\"\n },\n {\n \"url\": \"/img/weather/fog.svg\",\n \"revision\": \"9f4d74289594eb83f9c175d13167a0eb\"\n },\n {\n \"url\": \"/img/weather/partly-cloudy-day.svg\",\n \"revision\": \"f730c2e4f4c014e8b49c9d4a0a141b90\"\n },\n {\n \"url\": \"/img/weather/partly-cloudy-night.svg\",\n \"revision\": \"0d9270901c4dffbc05f3998d835171c8\"\n },\n {\n \"url\": \"/img/weather/pour-rain.svg\",\n \"revision\": \"91eb3159ba8781d258d8c384a8ef987c\"\n },\n {\n \"url\": \"/img/weather/rain.svg\",\n \"revision\": \"c52ca88ce0ddf4de0fc29167e578b2be\"\n },\n {\n \"url\": \"/img/weather/sleet.svg\",\n \"revision\": \"97d61d89332f912c1ec27bcbe077b7bd\"\n },\n {\n \"url\": \"/img/weather/snow.svg\",\n \"revision\": \"9e88c89c0d6d14174e9665e98932dd80\"\n },\n {\n \"url\": \"/img/weather/temperature.svg\",\n \"revision\": \"d42b62d0b57d5d326506277d87b70435\"\n },\n {\n \"url\": \"/img/weather/wind.svg\",\n \"revision\": \"d75fbe559220d7b2b9577a98a91f38d0\"\n },\n {\n \"url\": \"/img/workouts/finish.svg\",\n \"revision\": \"375196b7ade7c07c3b64ac4cb8b850a8\"\n },\n {\n \"url\": \"/img/workouts/mountains.svg\",\n \"revision\": \"0b94f1d4a050a86ca5ac89ab3ed60f9c\"\n },\n {\n \"url\": \"/img/workouts/start.svg\",\n \"revision\": \"97f6a197b6c2869e0cb2ff0e7697af86\"\n },\n {\n \"url\": \"/index.html\",\n \"revision\": \"c30914d466d40a1876b5328c80621802\"\n },\n {\n \"url\": \"/manifest.json\",\n \"revision\": \"c61028ca6e9f81bf958e6b66238e2d7c\"\n },\n {\n \"url\": \"/robots.txt\",\n \"revision\": \"b6216d61c03e6ce0c9aea6ca7808f7ca\"\n },\n {\n \"url\": \"/static/css/admin.73df498d.css\",\n \"revision\": null\n },\n {\n \"url\": \"/static/css/app.6b717ec5.css\",\n \"revision\": null\n },\n {\n \"url\": \"/static/css/fork-awesome.min.css\",\n \"revision\": \"82c1118c918377daaa71a320ab8eea42\"\n },\n {\n \"url\": \"/static/css/leaflet.css\",\n \"revision\": \"5c761a156eea82263d8bacf1718fe04d\"\n },\n {\n \"url\": \"/static/css/profile.9f83730d.css\",\n \"revision\": null\n },\n {\n \"url\": \"/static/css/reset.e2527ec6.css\",\n \"revision\": null\n },\n {\n \"url\": \"/static/css/statistics.40e24e75.css\",\n \"revision\": null\n },\n {\n \"url\": \"/static/css/workouts.9970f29e.css\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/forkawesome-webfont.eot\",\n \"revision\": \"e719f9244c69e28e7d00e725ca1e280e\"\n },\n {\n \"url\": \"/static/fonts/forkawesome-webfont.svg\",\n \"revision\": \"d58987a18774d859d98af95281c1dee5\"\n },\n {\n \"url\": \"/static/fonts/forkawesome-webfont.ttf\",\n \"revision\": \"fe45770c6c277da3921355d971045ea5\"\n },\n {\n \"url\": \"/static/fonts/forkawesome-webfont.woff\",\n \"revision\": \"92cd4d8328b2ae614386a01ff935a9f3\"\n },\n {\n \"url\": \"/static/fonts/forkawesome-webfont.woff2\",\n \"revision\": \"12ee76445f0383c58529169d700b6650\"\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-700.01a58da9.eot\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-700.51b1613b.woff2\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-700.5ff2a2d7.woff\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-700.6514157e.ttf\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-italic.10011d51.woff2\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-italic.6206408d.ttf\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-italic.8293436e.eot\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-italic.fe36f54f.woff\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-regular.b5b74f16.woff\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-regular.c43bc0a2.ttf\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-regular.c5a514ae.eot\",\n \"revision\": null\n },\n {\n \"url\": \"/static/fonts/pt-sans-v9-latin-regular.e7867499.woff2\",\n \"revision\": null\n },\n {\n \"url\": \"/static/img/map.5b26d82b.svg\",\n \"revision\": null\n },\n {\n \"url\": \"/static/img/pt-sans-v9-latin-700.b8a7047e.svg\",\n \"revision\": null\n },\n {\n \"url\": \"/static/img/pt-sans-v9-latin-italic.0b285c83.svg\",\n \"revision\": null\n },\n {\n \"url\": \"/static/img/pt-sans-v9-latin-regular.59a385b4.svg\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/243.d3fff3a7.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/431.52f71cad.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/633.5eb61510.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/858.ec3b00a9.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/93.611a4415.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/admin.c4231dfb.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/app.b793fcb5.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/chunk-vendors.561352b4.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/profile.984aa6f4.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/reset.eae5999b.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/statistics.7cce80c4.js\",\n \"revision\": null\n },\n {\n \"url\": \"/static/js/workouts.bbc7589b.js\",\n \"revision\": null\n }\n], {});\n\n\n\n\n\n\n\n\n"],"names":["workbox_core_setCacheNameDetails","prefix","self","addEventListener","event","data","type","skipWaiting","workbox_precaching_precacheAndRoute","url","revision"],"mappings":"0nBAiBAA,EAAAA,oBAAiC,CAACC,OAAQ,sBAG1CC,KAAKC,iBAAiB,WAAYC,IAC5BA,EAAMC,MAA4B,iBAApBD,EAAMC,KAAKC,MAC3BJ,KAAKK,aACP,IAWFC,EAAAA,iBAAoC,CAClC,CACEC,IAAO,gBACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,6BACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,uBACPC,SAAY,oCAEd,CACED,IAAO,qCACPC,SAAY,oCAEd,CACED,IAAO,uCACPC,SAAY,oCAEd,CACED,IAAO,6BACPC,SAAY,oCAEd,CACED,IAAO,wBACPC,SAAY,oCAEd,CACED,IAAO,yBACPC,SAAY,oCAEd,CACED,IAAO,wBACPC,SAAY,oCAEd,CACED,IAAO,+BACPC,SAAY,oCAEd,CACED,IAAO,wBACPC,SAAY,oCAEd,CACED,IAAO,2BACPC,SAAY,oCAEd,CACED,IAAO,8BACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,cACPC,SAAY,oCAEd,CACED,IAAO,iBACPC,SAAY,oCAEd,CACED,IAAO,cACPC,SAAY,oCAEd,CACED,IAAO,iCACPC,SAAY,MAEd,CACED,IAAO,+BACPC,SAAY,MAEd,CACED,IAAO,mCACPC,SAAY,oCAEd,CACED,IAAO,0BACPC,SAAY,oCAEd,CACED,IAAO,mCACPC,SAAY,MAEd,CACED,IAAO,iCACPC,SAAY,MAEd,CACED,IAAO,sCACPC,SAAY,MAEd,CACED,IAAO,oCACPC,SAAY,MAEd,CACED,IAAO,wCACPC,SAAY,oCAEd,CACED,IAAO,wCACPC,SAAY,oCAEd,CACED,IAAO,wCACPC,SAAY,oCAEd,CACED,IAAO,yCACPC,SAAY,oCAEd,CACED,IAAO,0CACPC,SAAY,oCAEd,CACED,IAAO,kDACPC,SAAY,MAEd,CACED,IAAO,oDACPC,SAAY,MAEd,CACED,IAAO,mDACPC,SAAY,MAEd,CACED,IAAO,kDACPC,SAAY,MAEd,CACED,IAAO,uDACPC,SAAY,MAEd,CACED,IAAO,qDACPC,SAAY,MAEd,CACED,IAAO,qDACPC,SAAY,MAEd,CACED,IAAO,sDACPC,SAAY,MAEd,CACED,IAAO,uDACPC,SAAY,MAEd,CACED,IAAO,sDACPC,SAAY,MAEd,CACED,IAAO,sDACPC,SAAY,MAEd,CACED,IAAO,wDACPC,SAAY,MAEd,CACED,IAAO,+BACPC,SAAY,MAEd,CACED,IAAO,gDACPC,SAAY,MAEd,CACED,IAAO,mDACPC,SAAY,MAEd,CACED,IAAO,oDACPC,SAAY,MAEd,CACED,IAAO,6BACPC,SAAY,MAEd,CACED,IAAO,6BACPC,SAAY,MAEd,CACED,IAAO,6BACPC,SAAY,MAEd,CACED,IAAO,6BACPC,SAAY,MAEd,CACED,IAAO,4BACPC,SAAY,MAEd,CACED,IAAO,+BACPC,SAAY,MAEd,CACED,IAAO,6BACPC,SAAY,MAEd,CACED,IAAO,uCACPC,SAAY,MAEd,CACED,IAAO,iCACPC,SAAY,MAEd,CACED,IAAO,+BACPC,SAAY,MAEd,CACED,IAAO,oCACPC,SAAY,MAEd,CACED,IAAO,kCACPC,SAAY,OAEb,CAAA"} \ No newline at end of file diff --git a/fittrackee/dist/static/css/app.6b717ec5.css b/fittrackee/dist/static/css/app.6b717ec5.css new file mode 100644 index 00000000..1b94566e --- /dev/null +++ b/fittrackee/dist/static/css/app.6b717ec5.css @@ -0,0 +1 @@ +#footer[data-v-2c73279e]{display:flex;bottom:0;position:fixed;width:100%;background:var(--footer-background-color);color:var(--footer-color);font-size:.9em}#footer a[data-v-2c73279e]{text-decoration:none}#footer .footer-items[data-v-2c73279e]{display:flex;align-content:center;justify-content:center;width:100%}#footer .footer-items .footer-item[data-v-2c73279e]{padding:10px 10px;border-top:solid 1px var(--footer-border-color);text-align:center}@media screen and (max-width:500px){#footer .footer-items[data-v-2c73279e]{font-size:.85em}#footer .footer-items .footer-item[data-v-2c73279e]{padding:5px 5px}#footer .footer-items .bullet[data-v-2c73279e]{padding:5px 0}}.user-picture{display:flex;justify-content:center;align-items:center;min-width:30%;line-height:1.2em}.user-picture img{border-radius:50%;height:90px;width:90px}.user-picture .no-picture{color:var(--app-a-color);font-size:5.5em}[data-v-95c1cc02]:root{--app-background-color:#fff;--app-color:#2c3e50;--app-color-light:#808b96;--app-a-color:#40578a;--app-shadow-color:#d3d3d3;--app-loading-color:#f3f3f3;--app-loading-top-color:var(--app-color);--button-hover-color:#fff;--button-cancel-bg-color:#fff;--button-cancel-color:var(--app-color);--button-confirm-bg-color:#fff;--button-confirm-color:var(--app-color);--button-danger-bg-color:#fff;--button-danger-color:#dc3545;--button-danger-hover-bg-color:#dc3545;--button-danger-hover-color:#fff;--card-border-color:#c4c7cf;--input-border-color:#9da3af;--input-bg-color:#fff;--input-error-color:#dc3545;--dropdown-hover-color:#eff0f5;--custom-checkbox-border-color:#9da3af;--custom-checkbox-checked-bg-color:#9da3af;--custom-checkbox-checked-color:#fff;--calendar-border-color:#c4c7cf;--calendar-week-end-color:#f5f5f5;--calendar-today-color:#eff1f3;--modal-background-color:rgba(0,0,0,.3);--nav-bar-background-color:#fff;--nav-bar-link-active:#485b6e;--nav-border-color:#c5ccdb;--mobile-menu-selected-color:#fff;--mobile-menu-selected-bgcolor:#9da3af;--footer-background-color:#fff;--footer-border-color:#ebeef3;--footer-color:#8b8c8c;--alert-background-color:#d6dde3;--alert-color:#3f3f3f;--info-background-color:#e5e7ea;--info-color:var(--app-color);--error-background-color:#ffd2d2;--error-color:#db1924;--success-background-color:#d9ecd9;--success-color:#306430;--disabled-background-color:#e0e0e0;--disabled-color:#a3a3a3;--disabled-sport-color:#616161;--scroll-button-bg-color:hsla(0,0%,100%,.7);--workout-trophy-color:#daa520;--workout-img-color:invert(22%) sepia(25%) saturate(646%) hue-rotate(169deg) brightness(97%) contrast(96%);--workout-no-map-bg-color:#eaeaea;--workout-no-map-color:#666;--cell-heading-bg-color:#eee;--cell-heading-color:#696969;--svg-filter:drop-shadow(10px 10px 10px var(--app-shadow-color));--password-bg-color:#d7dadf;--password-color-weak:#e46d6e;--password-color-medium:#f8bc4a;--password-color-good:#acc578;--password-color-strong:#57c255}#nav[data-v-95c1cc02]{background:var(--nav-bar-background-color);display:flex;padding:15px 10px}#nav .nav-container[data-v-95c1cc02]{display:flex;margin-left:auto;margin-right:auto;padding:0 15px 15px 15px;max-width:1140px;width:100%;border-bottom:solid 1px var(--nav-border-color)}#nav a.router-link-exact-active[data-v-95c1cc02]{color:var(--nav-bar-link-active);font-weight:700}#nav .app-name[data-v-95c1cc02]{font-size:1.2em;font-weight:700;margin-right:10px}#nav .app-name[data-v-95c1cc02]:hover{cursor:pointer}#nav .fa[data-v-95c1cc02]{font-size:1.2em}#nav .close-icon[data-v-95c1cc02],#nav .hamburger-icon[data-v-95c1cc02],#nav .nav-icon-open[data-v-95c1cc02]{display:none}#nav .nav-items[data-v-95c1cc02]{display:flex;flex:1;justify-content:space-between;line-height:1.8em;width:100%}#nav .nav-items .nav-items-close[data-v-95c1cc02]{display:none}#nav .nav-items .nav-items-app-menu[data-v-95c1cc02],#nav .nav-items .nav-items-user-menu[data-v-95c1cc02]{display:flex;margin:0;padding:0}#nav .nav-items .nav-items-group[data-v-95c1cc02]{display:flex}#nav .nav-items .nav-item[data-v-95c1cc02]{padding:0 10px}#nav .nav-items .nav-item.dropdown-wrapper[data-v-95c1cc02]{width:60px}#nav .nav-items .nav-item[data-v-95c1cc02] .dropdown-list{margin-left:-10px;padding-left:10px;width:75px}#nav .nav-items .nav-link[data-v-95c1cc02]{color:var(--app-a-color);cursor:pointer}#nav .nav-items .nav-profile-img[data-v-95c1cc02]{margin-bottom:-10px}#nav .nav-items .nav-profile-img[data-v-95c1cc02] .user-picture img{height:32px;width:32px;-o-object-fit:cover;object-fit:cover}#nav .nav-items .nav-profile-img[data-v-95c1cc02] .user-picture .no-picture{font-size:1.7em}#nav .nav-items .nav-separator[data-v-95c1cc02]{display:none}@media screen and (max-width:1000px){#nav .hamburger-icon[data-v-95c1cc02]{display:block}#nav .nav-icon-open[data-v-95c1cc02]{display:block;text-align:right;width:100%}#nav .nav-icon-open.menu-open[data-v-95c1cc02]{display:none}#nav .close-icon[data-v-95c1cc02]{display:block}#nav .close-icon.menu-closed[data-v-95c1cc02],#nav .nav-items[data-v-95c1cc02]{display:none}#nav .nav-items.menu-open[data-v-95c1cc02]{display:flex;flex-direction:column;justify-content:flex-start;z-index:1001;position:absolute;top:0;right:0;bottom:0;left:0;background:var(--nav-bar-background-color)}#nav .nav-items.menu-open .nav-items-app-menu[data-v-95c1cc02],#nav .nav-items.menu-open .nav-items-close[data-v-95c1cc02],#nav .nav-items.menu-open .nav-items-user-menu[data-v-95c1cc02]{display:flex;flex-direction:column}#nav .nav-items.menu-open .nav-items-close[data-v-95c1cc02]{align-items:center;display:flex;flex-direction:row;justify-content:space-between}#nav .nav-items.menu-open .nav-items-close .app-name[data-v-95c1cc02]{padding:15px 25px}#nav .nav-items.menu-open .nav-items-group[data-v-95c1cc02]{display:flex;flex-direction:column}#nav .nav-items.menu-open .nav-item[data-v-95c1cc02]{padding:7px 25px}#nav .nav-items.menu-open .nav-profile-img[data-v-95c1cc02]{display:none}#nav .nav-items.menu-open .nav-separator[data-v-95c1cc02]{display:flex;border-top:solid 1px var(--nav-border-color);margin:0 20px;padding:0}}#no-config[data-v-47759238]{display:flex;align-items:center;justify-content:space-around;padding:10px;height:100%}#no-config .error-page[data-v-47759238]{display:flex;flex-direction:column;align-items:center;max-width:100%}#no-config .error-page .error-img[data-v-47759238]{width:150px}#no-config .error-page .error-img svg[data-v-47759238]{stroke:none;fill-rule:nonzero;fill:var(--app-color);filter:var(--svg-filter)}#no-config .error-page .error-message[data-v-47759238]{font-size:1.2em;text-align:center}@media screen and (max-width:1000px){#no-config .error-page .error-message[data-v-47759238]{font-size:1em}}:root{--app-background-color:#fff;--app-color:#2c3e50;--app-color-light:#808b96;--app-a-color:#40578a;--app-shadow-color:#d3d3d3;--app-loading-color:#f3f3f3;--app-loading-top-color:var(--app-color);--button-hover-color:#fff;--button-cancel-bg-color:#fff;--button-cancel-color:var(--app-color);--button-confirm-bg-color:#fff;--button-confirm-color:var(--app-color);--button-danger-bg-color:#fff;--button-danger-color:#dc3545;--button-danger-hover-bg-color:#dc3545;--button-danger-hover-color:#fff;--card-border-color:#c4c7cf;--input-border-color:#9da3af;--input-bg-color:#fff;--input-error-color:#dc3545;--dropdown-hover-color:#eff0f5;--custom-checkbox-border-color:#9da3af;--custom-checkbox-checked-bg-color:#9da3af;--custom-checkbox-checked-color:#fff;--calendar-border-color:#c4c7cf;--calendar-week-end-color:#f5f5f5;--calendar-today-color:#eff1f3;--modal-background-color:rgba(0,0,0,.3);--nav-bar-background-color:#fff;--nav-bar-link-active:#485b6e;--nav-border-color:#c5ccdb;--mobile-menu-selected-color:#fff;--mobile-menu-selected-bgcolor:#9da3af;--footer-background-color:#fff;--footer-border-color:#ebeef3;--footer-color:#8b8c8c;--alert-background-color:#d6dde3;--alert-color:#3f3f3f;--info-background-color:#e5e7ea;--info-color:var(--app-color);--error-background-color:#ffd2d2;--error-color:#db1924;--success-background-color:#d9ecd9;--success-color:#306430;--disabled-background-color:#e0e0e0;--disabled-color:#a3a3a3;--disabled-sport-color:#616161;--scroll-button-bg-color:hsla(0,0%,100%,.7);--workout-trophy-color:#daa520;--workout-img-color:invert(22%) sepia(25%) saturate(646%) hue-rotate(169deg) brightness(97%) contrast(96%);--workout-no-map-bg-color:#eaeaea;--workout-no-map-color:#666;--cell-heading-bg-color:#eee;--cell-heading-color:#696969;--svg-filter:drop-shadow(10px 10px 10px var(--app-shadow-color));--password-bg-color:#d7dadf;--password-color-weak:#e46d6e;--password-color-medium:#f8bc4a;--password-color-good:#acc578;--password-color-strong:#57c255}#app,body{margin:0}#app{font-family:PT Sans,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--app-color);background-color:var(--app-background-color);min-height:100vh}a{color:var(--app-a-color);text-decoration:none}img{max-width:100%}input,select,textarea{background-color:var(--input-bg-color);border-radius:4px;border:solid 1px var(--input-border-color);padding:10px}input:disabled,select:disabled,textarea:disabled{background-color:var(--disabled-background-color);border-color:var(--disabled-color)}form.errors :invalid{outline:2px solid var(--input-error-color)}label{font-weight:700}button{background:var(--app-background-color);border:solid 1px var(--input-border-color);border-radius:4px;box-shadow:2px 2px 2px var(--app-shadow-color);color:var(--app-color);padding:6px 14px}button:hover{background:var(--app-color);color:var(--button-hover-color)}button:enabled:active{box-shadow:2px 0 2px var(--app-shadow-color);transform:translateY(2px)}button.confirm:disabled,button:disabled{background:var(--disabled-background-color);border-color:var(--disabled-color);color:var(--disabled-color)}button.cancel{background:var(--button-cancel-bg-color);color:var(--button-cancel-color)}button.cancel:hover{background:var(--app-color);color:var(--button-hover-color)}button.confirm{background:var(--button-confirm-bg-color);color:var(--button-confirm-color)}button.confirm:hover{background:var(--app-color);color:var(--button-hover-color)}button.danger{background:var(--button-danger-bg-color);color:var(--button-danger-color)}button.danger:hover{background:var(--button-danger-hover-bg-color);color:var(--button-danger-hover-color)}button.danger:disabled{background:var(--disabled-background-color);border-color:var(--disabled-color);color:var(--disabled-color)}.box{border:solid 1px var(--card-border-color);margin:10px}.box,.info-box{border-radius:4px;padding:10px}.info-box{background-color:var(--info-background-color);color:var(--info-color);font-size:.8em}.container{display:flex;margin-left:auto;margin-right:auto;padding-left:15px;padding-right:15px;max-width:1140px}.form-box .form-items{display:flex;flex-direction:column}.form-box .form-items input{margin:10px;padding:5px}.form-info{color:var(--alert-color);font-size:.8em;margin-top:-2px;padding:0 15px}.success-message{margin:20px 0;background-color:var(--success-background-color);color:var(--success-color)}.upper{text-transform:uppercase}.view{padding-bottom:35px;background-color:var(--app-background-color)}.fa-trophy{color:var(--workout-trophy-color)}.mountains{margin-bottom:-3px;height:16px;filter:var(--workout-img-color)}.section-title{font-weight:700;padding-top:15px;padding-left:10px;text-transform:capitalize}.no-map{background-color:var(--workout-no-map-bg-color);background-image:url(/static/img/map.5b26d82b.svg);background-size:contain;background-repeat:no-repeat;background-position:50%;color:var(--workout-no-map-color);font-style:italic;font-weight:700;text-align:center;vertical-align:center}.custom-checkboxes-group{display:flex;justify-content:space-around}.custom-checkboxes-group .custom-checkboxes{display:inline-flex}@media screen and (max-width:300px){.custom-checkboxes-group .custom-checkboxes{display:flex;flex-direction:column;align-items:center;gap:5px}}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label{font-weight:400;float:left;padding:0 5px;cursor:pointer}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label input{display:none}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label span{border:solid 1px var(--custom-checkbox-border-color);border-radius:5px;display:block;font-size:.9em;padding:2px 6px;text-align:center}.custom-checkboxes-group .custom-checkboxes .custom-checkbox input:checked+span{background-color:var(--custom-checkbox-checked-bg-color);color:var(--custom-checkbox-checked-color)}.description-list dl{display:flex;flex-direction:column;width:100%}.description-list dl dt{font-weight:700}.description-list dl dd{margin-bottom:10px}.center-card{margin:0 auto;width:700px}.center-card.with-margin{margin-top:100px}@media screen and (max-width:1000px){.center-card{width:100%;margin:0 auto 50px auto}}.text-center{text-align:center}.text-left{text-align:left}.responsive-table{margin-bottom:15px}.responsive-table table{width:100%;padding:10px;font-size:.9em;border-collapse:collapse}.responsive-table table thead th{vertical-align:center;padding:10px;border-bottom:2px solid var(--card-border-color)}.responsive-table table tbody{font-size:.95em}.responsive-table table tbody td{padding:10px;border-bottom:1px solid var(--card-border-color)}.responsive-table table tbody tr:last-child td{border:none}.responsive-table table .cell-heading{background:var(--cell-heading-bg-color);color:var(--cell-heading-color);display:none;font-size:10px;font-weight:700;padding:5px;position:absolute;text-transform:uppercase;top:0;left:0}@media screen and (max-width:700px){.responsive-table table thead{left:-9999px;position:absolute;visibility:hidden}.responsive-table table tr{border-bottom:0;display:flex;flex-direction:row;flex-wrap:wrap;margin-bottom:40px}.responsive-table table td{margin:0 -1px -1px 0;padding-top:25px!important;position:relative;text-align:center;width:45%}.responsive-table table tbody tr:last-child td,.responsive-table table td{border:1px solid var(--card-border-color)}.responsive-table table .cell-heading{display:flex}}@media screen and (max-width:500px){.responsive-table table td{width:100%}}.profile-buttons{display:flex;gap:10px}.medium-sport-img{height:35px;width:35px;margin:0 auto}.app-container{height:calc(100vh - 130px)}.app-container.hide-scroll{overflow:hidden}.app-container .app-loading{display:flex;align-items:center;height:100%}.scroll{display:flex;justify-content:flex-end;position:fixed;bottom:42px;right:-15px;padding:0 25px}.scroll .scroll-button{background-color:var(--scroll-button-bg-color);border-radius:4px;box-shadow:1px 1px 3px #d3d3d3;display:none;padding:0 10px}.scroll .scroll-button.display-button{display:block}.user-limit-help[data-v-24ec93e2]{display:flex}.user-limit-help span[data-v-24ec93e2]{font-style:italic}.user-limit-help .fa-info-circle[data-v-24ec93e2]{margin-right:10px}.no-contact[data-v-24ec93e2]{font-style:italic}.stat-card{flex:1;max-width:25%}@media screen and (max-width:700px){.stat-card{flex:1 0 50%;max-width:49%}}.stat-card .stat-content{display:flex;flex-direction:row;justify-content:space-between;padding:10px 20px}.stat-card .stat-content .stat-icon{width:30%;text-align:center;vertical-align:center}@media screen and (max-width:1000px){.stat-card .stat-content .stat-icon{width:50%;text-align:left}}.stat-card .stat-content .stat-icon .fa{font-size:3em}@media screen and (max-width:1000px){.stat-card .stat-content .stat-icon .fa{font-size:2em}}@media screen and (max-width:500px){.stat-card .stat-content .stat-icon .fa{font-size:1.5em}}.stat-card .stat-content .stat-details{width:70%;text-align:right}@media screen and (max-width:1000px){.stat-card .stat-content .stat-details{width:100%}}.stat-card .stat-content .stat-details .stat-huge{font-size:1.7em;font-weight:700}@media screen and (max-width:1000px){.stat-card .stat-content .stat-details .stat-huge{font-size:1.3em}}@media screen and (max-width:500px){.stat-card .stat-content .stat-details .stat-huge{font-size:1em}}.stat-card .stat-content .stat-details .stat{font-size:1em}@media screen and (max-width:1000px){.stat-card .stat-content .stat-details .stat{font-size:.9em}}@media screen and (max-width:500px){.stat-card .stat-content .stat-details .stat{font-size:.8em}}.card{border:solid 1px var(--card-border-color);border-radius:4px;margin:10px}.card .card-title{font-weight:700;border-bottom:solid 1px var(--card-border-color);padding:10px 20px}.card .card-content{padding:10px 20px}#admin-menu[data-v-0dd66f89]{display:flex}#admin-menu.center-card[data-v-0dd66f89]{width:100%}#admin-menu[data-v-0dd66f89] .card{flex-grow:1}#admin-menu[data-v-0dd66f89] .card .admin-menu{padding:0 10px}#admin-menu[data-v-0dd66f89] .card .admin-menu dd{margin-bottom:30px}#admin-menu[data-v-0dd66f89] .card .admin-menu .application-config-details{display:flex;flex-direction:column}#admin-menu[data-v-0dd66f89] .card .admin-menu .application-config-details .email-sending-status,#admin-menu[data-v-0dd66f89] .card .admin-menu .application-config-details .registration-status{font-weight:700}#admin-sports table td[data-v-6d62af67]{font-size:1.1em}#admin-sports .sport-img[data-v-6d62af67]{height:35px;width:35px;margin:0 auto}#admin-sports .has-workouts[data-v-6d62af67]{font-size:.95em;font-style:italic;padding:0 10px}#admin-sports .sport-action[data-v-6d62af67]{padding-left:40px}#admin-sports .action-button[data-v-6d62af67]{display:block}#admin-sports .top-button[data-v-6d62af67]{display:none}@media screen and (max-width:700px){#admin-sports .sport-action[data-v-6d62af67]{padding-left:10px}#admin-sports .has-workouts[data-v-6d62af67]{padding-top:5px}#admin-sports .action-button[data-v-6d62af67]{display:flex;align-items:center;flex-wrap:wrap;flex-direction:column}#admin-sports .top-button[data-v-6d62af67]{display:block;margin-bottom:20px}}.table-selects[data-v-72463173]{display:flex;justify-content:space-between;margin:10px 0}.table-selects label select[data-v-72463173]{margin-left:10px;padding:5px}@media screen and (max-width:700px){.table-selects[data-v-72463173]{flex-wrap:wrap}.table-selects label[data-v-72463173]{margin-bottom:10px}.table-selects label select[data-v-72463173]{margin-left:0}}.pagination-center[data-v-3a9a4a65]{display:flex;justify-content:center;font-size:.9em}.pagination-center .pagination[data-v-3a9a4a65]{display:flex;padding-left:0;list-style:none;border-radius:.25rem}.pagination-center .pagination .page-next[data-v-3a9a4a65],.pagination-center .pagination .page-prev[data-v-3a9a4a65],.pagination-center .pagination .page[data-v-3a9a4a65]{border:solid 1px var(--card-border-color);padding:10px 15px}.pagination-center .pagination .page-next.active[data-v-3a9a4a65],.pagination-center .pagination .page-prev.active[data-v-3a9a4a65],.pagination-center .pagination .page.active[data-v-3a9a4a65]{font-weight:700}.pagination-center .pagination .page-next.disabled[data-v-3a9a4a65],.pagination-center .pagination .page-prev.disabled[data-v-3a9a4a65],.pagination-center .pagination .page.disabled[data-v-3a9a4a65]{cursor:default}.pagination-center .pagination .page-next.disabled a[data-v-3a9a4a65],.pagination-center .pagination .page-prev.disabled a[data-v-3a9a4a65],.pagination-center .pagination .page.disabled a[data-v-3a9a4a65]{cursor:default;pointer-events:none;color:var(--disabled-color)}.pagination-center .pagination .page[data-v-3a9a4a65]{margin-left:-1px}.pagination-center .pagination .page-prev[data-v-3a9a4a65]{border-top-left-radius:5px;border-bottom-left-radius:5px}.pagination-center .pagination .page-next[data-v-3a9a4a65]{border-top-right-radius:5px;border-bottom-right-radius:5px;margin-left:-1px}.pagination-center .pagination .fa[data-v-3a9a4a65]{font-size:.8em;padding:0 5px}@media screen and (max-width:1000px){.pagination-center .pagination .page[data-v-3a9a4a65]{display:none}}.users-filters[data-v-627a8e91]{display:flex;align-items:center;padding:10px 0;gap:10px}.users-filters .fa[data-v-627a8e91]{font-size:1.5em}.users-filters .fa-disabled[data-v-627a8e91]{color:var(--disabled-color)}.users-filters .search-username[data-v-627a8e91]{display:flex;align-items:center;justify-content:space-between;gap:10px;border:solid 1px var(--card-border-color);border-radius:4px;color:var(--info-color);width:45%}.users-filters .search-username input[data-v-627a8e91]{border:none;height:12px;width:90%}.users-filters .search-username input[data-v-627a8e91]:focus{outline:none}.users-filters .search-username .fa-times[data-v-627a8e91]{padding-right:10px}@media screen and (max-width:700px){.users-filters .search-username[data-v-627a8e91]{width:400px}}@media screen and (max-width:500px){.users-filters .search-username[data-v-627a8e91]{width:90%}}#admin-users .top-button[data-v-dc12ff78]{display:none}#admin-users .no-users[data-v-dc12ff78]{display:flex;justify-content:center;padding:20px 0;font-weight:700}#admin-users table td[data-v-dc12ff78]{font-size:1.1em}#admin-users .left-text[data-v-dc12ff78]{text-align:left}#admin-users[data-v-dc12ff78] .user-picture img{height:30px;width:30px}#admin-users[data-v-dc12ff78] .user-picture .no-picture{font-size:2em}@media screen and (max-width:700px){#admin-users .top-button[data-v-dc12ff78]{display:block;margin-bottom:20px}#admin-users .pagination-center[data-v-dc12ff78]{margin-top:-30px}}.user-header[data-v-20291951]{display:flex;align-items:stretch}.user-header .user-details[data-v-20291951]{flex-grow:1;padding:10px;display:flex;flex-direction:column;align-items:center}.user-header .user-details .user-name[data-v-20291951]{font-size:2em;height:60%}.user-header .user-details .user-stats[data-v-20291951]{display:flex;gap:40px}.user-header .user-details .user-stats .user-stat[data-v-20291951]{display:flex;flex-direction:column;align-items:center;padding-top:10px}.user-header .user-details .user-stats .user-stat .stat-label[data-v-20291951],.user-header .user-details .user-stats .user-stat .stat-number[data-v-20291951]{padding:0 5px}.user-header .user-details .user-stats .user-stat .stat-number[data-v-20291951],.user-header .user-details .user-stats .user-stat[data-v-20291951] .distance{font-weight:700;font-size:1.5em}@media screen and (max-width:500px){.user-header .user-details .user-name[data-v-20291951]{font-size:1.5em}.user-header .user-details .user-stats[data-v-20291951]{gap:20px}.user-header .user-details .user-stats .user-stat .stat-number[data-v-20291951],.user-header .user-details .user-stats .user-stat[data-v-20291951] .distance{font-weight:700;font-size:1.2em}.user-header .user-details .user-stats .user-stat.hide-small[data-v-20291951]{display:none}}.profile-tabs-checkboxes{display:flex;justify-content:center;flex-wrap:wrap;gap:5px}#user-profile[data-v-9729cba4]{margin:auto;width:700px}@media screen and (max-width:1000px){#user-profile[data-v-9729cba4]{width:100%;margin:0 auto 50px auto}}#user-infos .user-bio[data-v-217519af]{white-space:pre-wrap}#user-infos .alert-message[data-v-217519af]{margin:0}#user-infos .profile-buttons[data-v-217519af]{display:flex;flex-wrap:wrap}#user-infos .email-form[data-v-217519af]{display:flex}#user-infos .email-form form[data-v-217519af]{width:100%}#user-infos .email-form .form-buttons[data-v-217519af]{display:flex;gap:10px;margin-top:10px}.password-strength[data-v-74e71df5]{cursor:default;display:flex;flex-direction:column}.password-strength .password-slider[data-v-74e71df5]{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;border-radius:8px;height:5px;outline:none;padding:0}.password-strength .strength-0[data-v-74e71df5],.password-strength .strength-1[data-v-74e71df5]{background:var(--password-bg-color);background-image:linear-gradient(to right,var(--password-color-weak) 0,var(--password-color-weak) 100%);background-repeat:no-repeat}.password-strength .strength-2[data-v-74e71df5]{background:var(--password-bg-color);background-image:linear-gradient(to right,var(--password-color-medium) 0,var(--password-color-medium) 100%);background-repeat:no-repeat}.password-strength .strength-3[data-v-74e71df5]{background:var(--password-bg-color);background-image:linear-gradient(to right,var(--password-color-good) 0,var(--password-color-good) 100%);background-repeat:no-repeat}.password-strength .strength-4[data-v-74e71df5]{background:var(--password-bg-color);background-image:linear-gradient(to right,var(--password-color-strong) 0,var(--password-color-strong) 100%);background-repeat:no-repeat}.password-strength .password-slider[data-v-74e71df5]::-moz-range-thumb,.password-strength .password-slider[data-v-74e71df5]::-webkit-slider-thumb{opacity:0}.password-strength .password-slider[data-v-74e71df5]::-webkit-slider-thumb{-webkit-appearance:none}.password-strength .password-slider[data-v-74e71df5]::-moz-range-thumb{-moz-appearance:none;appearance:none}.password-strength .password-strength-details[data-v-74e71df5]{margin-bottom:5px;margin-top:-10px;padding:0 10px}.password-strength .password-strength-details .password-strength-value[data-v-74e71df5]{font-size:.85em}.password-strength .password-strength-details .info-box[data-v-74e71df5]{padding:1px 10px}.password-strength .password-strength-details .info-box .password-feedback[data-v-74e71df5]{padding-left:20px}.password-input[data-v-5a126514]{display:flex;flex-direction:column}.password-input .show-password[data-v-5a126514]{font-style:italic;font-size:.85em;text-align:right;margin-top:-7.5px;padding-right:10px;cursor:pointer}.form-items .password-input[data-v-37b8c4c8] .show-password{font-weight:400;font-size:.8em;margin-top:-4px;padding-left:0}.form-items .password-input[data-v-37b8c4c8] .form-info{font-weight:400;padding-left:10px}.form-items .password-input[data-v-37b8c4c8] .password-strength-details{font-weight:400;margin-top:0}.form-buttons[data-v-37b8c4c8]{flex-direction:row}@media screen and (max-width:500px){.form-buttons[data-v-37b8c4c8]{flex-direction:column}}.form-items .password-input[data-v-5e5a4552] .show-password{font-weight:400;font-size:.8em;margin-top:-4px;padding-left:0}.form-buttons[data-v-5e5a4552]{flex-direction:row}@media screen and (max-width:500px){.form-buttons[data-v-5e5a4552]{flex-direction:column}}#user-picture-edition .user-picture-form[data-v-687e9604]{display:flex;flex-direction:column;margin-top:10px}#user-picture-edition .user-picture-form form[data-v-687e9604]{display:flex;flex-direction:column;gap:10px;justify-content:flex-start}#user-picture-edition .user-picture-form form input[data-v-687e9604]{margin-top:10px;padding:5px}#user-picture-edition .user-picture-form form span[data-v-687e9604]{font-style:italic;font-size:.9em;padding-left:5px}#user-picture-edition .user-picture-form form .picture-help[data-v-687e9604]{display:flex}#user-picture-edition .user-picture-form form .picture-help span[data-v-687e9604]{font-style:italic;padding:10px}#user-picture-edition .user-picture-form form .picture-help .fa-info-circle[data-v-687e9604]{margin-right:10px}#user-picture-edition .user-picture-form .picture-buttons[data-v-687e9604]{display:flex;flex-direction:row;align-items:center;gap:10px}@media screen and (max-width:500px){#user-picture-edition .user-picture-form .picture-buttons[data-v-687e9604],#user-picture-edition .user-picture-form .picture-help[data-v-687e9604]{flex-direction:column;align-items:stretch}}#tz-dropdown[data-v-47ea2903]{display:flex;flex-direction:column;position:relative}#tz-dropdown .tz-dropdown-list[data-v-47ea2903]{background-color:var(--input-bg-color);border-radius:4px;border:solid 1px var(--input-border-color);padding:5px 0;position:absolute;overflow-y:auto;top:20px;left:0;right:0;max-height:200px;width:inherit}#tz-dropdown .tz-dropdown-item[data-v-47ea2903]{cursor:pointer;font-size:.9em;font-weight:400;padding:5px}#tz-dropdown .tz-dropdown-item.focus[data-v-47ea2903]{background-color:var(--dropdown-hover-color)}#user-preferences-edition .form-items[data-v-3b8a9a12]{padding-top:5px}#user-preferences-edition .form-checkboxes .checkboxes-label[data-v-3b8a9a12]{font-weight:700}#user-preferences-edition .form-checkboxes .checkboxes[data-v-3b8a9a12]{display:flex;gap:10px;flex-wrap:wrap}#user-preferences-edition .form-checkboxes .checkboxes .checkbox-label[data-v-3b8a9a12]{padding-left:5px}#user-preferences-edition .form-checkboxes .checkboxes label[data-v-3b8a9a12]{font-weight:400}#user-preferences-edition #date_format[data-v-3b8a9a12],#user-preferences-edition #language[data-v-3b8a9a12]{padding:5px}#new-oauth2-app #new-oauth2-title[data-v-0657ee77]{font-size:1.05em;font-weight:700;padding:0 10px}#new-oauth2-app #apps-form .form-items[data-v-0657ee77]{display:flex;flex-direction:column}#new-oauth2-app #apps-form .form-items input[type=text][data-v-0657ee77]{height:20px}#new-oauth2-app #apps-form .form-items .form-item-scope[data-v-0657ee77]{padding:10px}#new-oauth2-app #apps-form .form-items .form-item-scope .form-item-scope-label[data-v-0657ee77]{font-weight:700}#new-oauth2-app #apps-form .form-items .form-item-scope .form-item-scope-checkboxes[data-v-0657ee77]{padding-bottom:10px}#new-oauth2-app #apps-form .form-items .form-item-scope .form-item-scope-checkboxes .scope-label[data-v-0657ee77]{height:inherit}#new-oauth2-app #apps-form .form-items .form-item-scope .form-item-scope-checkboxes .scope-description[data-v-0657ee77]{font-style:italic;margin:0 5px}#new-oauth2-app #apps-form .form-items .form-item[data-v-0657ee77]{display:flex;flex-direction:column;padding:10px}#new-oauth2-app #apps-form .form-buttons[data-v-0657ee77]{display:flex;justify-content:flex-end}#new-oauth2-app #apps-form .form-buttons button[data-v-0657ee77]{margin:5px}#authorize-oauth2-app #authorize-oauth2-title[data-v-3b2fe9ed]{font-size:1.05em;font-weight:700;padding:0 10px}#authorize-oauth2-app .oauth2-access[data-v-3b2fe9ed]{padding:0 10px}#authorize-oauth2-app .authorize-oauth2-buttons[data-v-3b2fe9ed]{display:flex}#authorize-oauth2-app .authorize-oauth2-buttons button[data-v-3b2fe9ed]{margin:5px}#oauth2-app .app-buttons[data-v-3a844fa2]{display:flex;flex-wrap:wrap;gap:10px}#oauth2-app .app-secret[data-v-3a844fa2]{word-break:break-word}#oauth2-app .client-scopes[data-v-3a844fa2]{display:flex;flex-wrap:wrap}#oauth2-app .client-scopes .client-scope[data-v-3a844fa2]{padding-right:15px}#oauth2-app .fa-copy[data-v-3a844fa2]{font-size:.9em}#oauth2-app .no-description[data-v-3a844fa2]{font-style:italic}#oauth2-app .no-app[data-v-3a844fa2]{font-style:italic;padding:10px 0}#oauth2-apps-list ul[data-v-efa45ea0]{list-style:square}#oauth2-apps-list ul li[data-v-efa45ea0]{padding-bottom:10px}#oauth2-apps-list .app-issued-at[data-v-efa45ea0]{font-size:.85em;font-style:italic;padding-left:10px}#oauth2-apps-list .apps-list[data-v-efa45ea0]{font-size:1.05em;font-weight:700}#oauth2-apps-list .app-list-buttons[data-v-efa45ea0]{display:flex;gap:10px}#oauth2-apps-list .no-apps[data-v-efa45ea0]{font-style:italic;padding-bottom:20px}#user-sport-preferences .sport-img[data-v-74e52489]{height:35px;width:35px;margin:0 auto}#user-sport-preferences .sport-color[data-v-74e52489]{border:none;margin:6px 1px 6px 0;padding:0;width:40px}#user-sport-preferences .sport-label[data-v-74e52489]{width:170px}#user-sport-preferences .disabled-sport[data-v-74e52489]{font-style:italic;color:var(--disabled-sport-color)}#user-sport-preferences .disabled-sport .disabled-message[data-v-74e52489]{font-size:.9em}#user-sport-preferences .disabled-sport .cell-heading[data-v-74e52489]{font-style:normal}#user-sport-preferences .action-buttons[data-v-74e52489]{width:70px}#user-sport-preferences .edition-buttons[data-v-74e52489]{display:flex;flex-wrap:wrap;gap:5px;line-height:1.3em}#user-sport-preferences .edition-buttons button[data-v-74e52489]{text-align:center;min-width:80px}#user-sport-preferences .threshold-input[data-v-74e52489]{padding:5px;width:50px}#user-sport-preferences .mobile-display[data-v-74e52489]{display:none}#user-sport-preferences div.error-message[data-v-74e52489]{margin:0}@media screen and (max-width:700px){#user-sport-preferences .action-buttons[data-v-74e52489],#user-sport-preferences .sport-label[data-v-74e52489]{width:45%}#user-sport-preferences .edition-buttons[data-v-74e52489]{justify-content:center}#user-sport-preferences .mobile-display[data-v-74e52489]{display:flex;margin:20px 0 10px}}@media screen and (max-width:500px){#user-sport-preferences .action-buttons[data-v-74e52489],#user-sport-preferences .sport-label[data-v-74e52489]{width:100%}}[data-v-74257266]:root{--app-background-color:#fff;--app-color:#2c3e50;--app-color-light:#808b96;--app-a-color:#40578a;--app-shadow-color:#d3d3d3;--app-loading-color:#f3f3f3;--app-loading-top-color:var(--app-color);--button-hover-color:#fff;--button-cancel-bg-color:#fff;--button-cancel-color:var(--app-color);--button-confirm-bg-color:#fff;--button-confirm-color:var(--app-color);--button-danger-bg-color:#fff;--button-danger-color:#dc3545;--button-danger-hover-bg-color:#dc3545;--button-danger-hover-color:#fff;--card-border-color:#c4c7cf;--input-border-color:#9da3af;--input-bg-color:#fff;--input-error-color:#dc3545;--dropdown-hover-color:#eff0f5;--custom-checkbox-border-color:#9da3af;--custom-checkbox-checked-bg-color:#9da3af;--custom-checkbox-checked-color:#fff;--calendar-border-color:#c4c7cf;--calendar-week-end-color:#f5f5f5;--calendar-today-color:#eff1f3;--modal-background-color:rgba(0,0,0,.3);--nav-bar-background-color:#fff;--nav-bar-link-active:#485b6e;--nav-border-color:#c5ccdb;--mobile-menu-selected-color:#fff;--mobile-menu-selected-bgcolor:#9da3af;--footer-background-color:#fff;--footer-border-color:#ebeef3;--footer-color:#8b8c8c;--alert-background-color:#d6dde3;--alert-color:#3f3f3f;--info-background-color:#e5e7ea;--info-color:var(--app-color);--error-background-color:#ffd2d2;--error-color:#db1924;--success-background-color:#d9ecd9;--success-color:#306430;--disabled-background-color:#e0e0e0;--disabled-color:#a3a3a3;--disabled-sport-color:#616161;--scroll-button-bg-color:hsla(0,0%,100%,.7);--workout-trophy-color:#daa520;--workout-img-color:invert(22%) sepia(25%) saturate(646%) hue-rotate(169deg) brightness(97%) contrast(96%);--workout-no-map-bg-color:#eaeaea;--workout-no-map-color:#666;--cell-heading-bg-color:#eee;--cell-heading-color:#696969;--svg-filter:drop-shadow(10px 10px 10px var(--app-shadow-color));--password-bg-color:#d7dadf;--password-color-weak:#e46d6e;--password-color-medium:#f8bc4a;--password-color-good:#acc578;--password-color-strong:#57c255}@font-face{font-family:PT Sans;font-style:normal;font-weight:400;src:url(/static/fonts/pt-sans-v9-latin-regular.c5a514ae.eot);src:local("PT Sans"),local("PTSans-Regular"),url(/static/fonts/pt-sans-v9-latin-regular.c5a514ae.eot?#iefix) format("embedded-opentype"),url(/static/fonts/pt-sans-v9-latin-regular.e7867499.woff2) format("woff2"),url(/static/fonts/pt-sans-v9-latin-regular.b5b74f16.woff) format("woff"),url(/static/fonts/pt-sans-v9-latin-regular.c43bc0a2.ttf) format("truetype"),url(/static/img/pt-sans-v9-latin-regular.59a385b4.svg#PTSans) format("svg")}@font-face{font-family:PT Sans;font-style:italic;font-weight:400;src:url(/static/fonts/pt-sans-v9-latin-italic.8293436e.eot);src:local("PT Sans Italic"),local("PTSans-Italic"),url(/static/fonts/pt-sans-v9-latin-italic.8293436e.eot?#iefix) format("embedded-opentype"),url(/static/fonts/pt-sans-v9-latin-italic.10011d51.woff2) format("woff2"),url(/static/fonts/pt-sans-v9-latin-italic.fe36f54f.woff) format("woff"),url(/static/fonts/pt-sans-v9-latin-italic.6206408d.ttf) format("truetype"),url(/static/img/pt-sans-v9-latin-italic.0b285c83.svg#PTSans) format("svg")}@font-face{font-family:PT Sans;font-style:normal;font-weight:700;src:url(/static/fonts/pt-sans-v9-latin-700.01a58da9.eot);src:local("PT Sans Bold"),local("PTSans-Bold"),url(/static/fonts/pt-sans-v9-latin-700.01a58da9.eot?#iefix) format("embedded-opentype"),url(/static/fonts/pt-sans-v9-latin-700.51b1613b.woff2) format("woff2"),url(/static/fonts/pt-sans-v9-latin-700.5ff2a2d7.woff) format("woff"),url(/static/fonts/pt-sans-v9-latin-700.6514157e.ttf) format("truetype"),url(/static/img/pt-sans-v9-latin-700.b8a7047e.svg#PTSans) format("svg")}body[data-v-74257266]{margin:0}#app[data-v-74257266]{font-family:PT Sans,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--app-color);background-color:var(--app-background-color);margin:0;min-height:100vh}a[data-v-74257266]{color:var(--app-a-color);text-decoration:none}img[data-v-74257266]{max-width:100%}input[data-v-74257266],select[data-v-74257266],textarea[data-v-74257266]{background-color:var(--input-bg-color);border-radius:4px;border:solid 1px var(--input-border-color);padding:10px}input[data-v-74257266]:disabled,select[data-v-74257266]:disabled,textarea[data-v-74257266]:disabled{background-color:var(--disabled-background-color);border-color:var(--disabled-color)}form.errors[data-v-74257266] :invalid{outline:2px solid var(--input-error-color)}label[data-v-74257266]{font-weight:700}button[data-v-74257266]{background:var(--app-background-color);border:solid 1px var(--input-border-color);border-radius:4px;box-shadow:2px 2px 2px var(--app-shadow-color);color:var(--app-color);padding:6px 14px}button[data-v-74257266]:hover{background:var(--app-color);color:var(--button-hover-color)}button[data-v-74257266]:enabled:active{box-shadow:2px 0 2px var(--app-shadow-color);transform:translateY(2px)}button.confirm[data-v-74257266]:disabled,button[data-v-74257266]:disabled{background:var(--disabled-background-color);border-color:var(--disabled-color);color:var(--disabled-color)}button.cancel[data-v-74257266]{background:var(--button-cancel-bg-color);color:var(--button-cancel-color)}button.cancel[data-v-74257266]:hover{background:var(--app-color);color:var(--button-hover-color)}button.confirm[data-v-74257266]{background:var(--button-confirm-bg-color);color:var(--button-confirm-color)}button.confirm[data-v-74257266]:hover{background:var(--app-color);color:var(--button-hover-color)}button.danger[data-v-74257266]{background:var(--button-danger-bg-color);color:var(--button-danger-color)}button.danger[data-v-74257266]:hover{background:var(--button-danger-hover-bg-color);color:var(--button-danger-hover-color)}button.danger[data-v-74257266]:disabled{background:var(--disabled-background-color);border-color:var(--disabled-color);color:var(--disabled-color)}.box[data-v-74257266]{border:solid 1px var(--card-border-color);border-radius:4px;padding:10px;margin:10px}.info-box[data-v-74257266]{background-color:var(--info-background-color);border-radius:4px;color:var(--info-color);font-size:.8em;padding:10px}.container[data-v-74257266]{display:flex;margin-left:auto;margin-right:auto;padding-left:15px;padding-right:15px;max-width:1140px}.form-box .form-items[data-v-74257266]{display:flex;flex-direction:column}.form-box .form-items input[data-v-74257266]{margin:10px;padding:5px}.form-info[data-v-74257266]{color:var(--alert-color);font-size:.8em;margin-top:-2px;padding:0 15px}.success-message[data-v-74257266]{margin:20px 0;background-color:var(--success-background-color);color:var(--success-color)}.upper[data-v-74257266]{text-transform:uppercase}.view[data-v-74257266]{padding-bottom:35px;background-color:var(--app-background-color)}.fa-trophy[data-v-74257266]{color:var(--workout-trophy-color)}.mountains[data-v-74257266]{margin-bottom:-3px;height:16px;filter:var(--workout-img-color)}.section-title[data-v-74257266]{font-weight:700;padding-top:15px;padding-left:10px;text-transform:capitalize}.no-map[data-v-74257266]{background-color:var(--workout-no-map-bg-color);background-image:url(/static/img/map.5b26d82b.svg);background-size:contain;background-repeat:no-repeat;background-position:50%;color:var(--workout-no-map-color);font-style:italic;font-weight:700;text-align:center;vertical-align:center}.custom-checkboxes-group[data-v-74257266]{display:flex;justify-content:space-around}.custom-checkboxes-group .custom-checkboxes[data-v-74257266]{display:inline-flex}@media screen and (max-width:300px){.custom-checkboxes-group .custom-checkboxes[data-v-74257266]{display:flex;flex-direction:column;align-items:center;gap:5px}}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label[data-v-74257266]{font-weight:400;float:left;padding:0 5px;cursor:pointer}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label input[data-v-74257266]{display:none}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label span[data-v-74257266]{border:solid 1px var(--custom-checkbox-border-color);border-radius:5px;display:block;font-size:.9em;padding:2px 6px;text-align:center}.custom-checkboxes-group .custom-checkboxes .custom-checkbox input:checked+span[data-v-74257266]{background-color:var(--custom-checkbox-checked-bg-color);color:var(--custom-checkbox-checked-color)}.description-list dl[data-v-74257266]{display:flex;flex-direction:column;width:100%}.description-list dl dt[data-v-74257266]{font-weight:700}.description-list dl dd[data-v-74257266]{margin-bottom:10px}.center-card[data-v-74257266]{margin:0 auto;width:700px}.center-card.with-margin[data-v-74257266]{margin-top:100px}@media screen and (max-width:1000px){.center-card[data-v-74257266]{width:100%;margin:0 auto 50px auto}}.text-center[data-v-74257266]{text-align:center}.text-left[data-v-74257266]{text-align:left}.responsive-table[data-v-74257266]{margin-bottom:15px}.responsive-table table[data-v-74257266]{width:100%;padding:10px;font-size:.9em;border-collapse:collapse}.responsive-table table thead th[data-v-74257266]{vertical-align:center;padding:10px;border-bottom:2px solid var(--card-border-color)}.responsive-table table tbody[data-v-74257266]{font-size:.95em}.responsive-table table tbody td[data-v-74257266]{padding:10px;border-bottom:1px solid var(--card-border-color)}.responsive-table table tbody tr:last-child td[data-v-74257266]{border:none}.responsive-table table .cell-heading[data-v-74257266]{background:var(--cell-heading-bg-color);color:var(--cell-heading-color);display:none;font-size:10px;font-weight:700;padding:5px;position:absolute;text-transform:uppercase;top:0;left:0}@media screen and (max-width:700px){.responsive-table table thead[data-v-74257266]{left:-9999px;position:absolute;visibility:hidden}.responsive-table table tr[data-v-74257266]{border-bottom:0;display:flex;flex-direction:row;flex-wrap:wrap;margin-bottom:40px}.responsive-table table td[data-v-74257266]{border:1px solid var(--card-border-color);margin:0 -1px -1px 0;padding-top:25px!important;position:relative;text-align:center;width:45%}.responsive-table table tbody tr:last-child td[data-v-74257266]{border:1px solid var(--card-border-color)}.responsive-table table .cell-heading[data-v-74257266]{display:flex}}@media screen and (max-width:500px){.responsive-table table td[data-v-74257266]{width:100%}}.profile-buttons[data-v-74257266]{display:flex;gap:10px}.medium-sport-img[data-v-74257266]{height:35px;width:35px;margin:0 auto}.about-text[data-v-74257266]{margin-top:200px}@media screen and (max-width:700px){.about-text[data-v-74257266]{margin-top:0}}.about-text .fa-padding[data-v-74257266]{padding-right:10px}#bike[data-v-795f7f5f]{display:flex;justify-content:center;margin-top:180px;padding:10px}#bike .bike-img[data-v-795f7f5f]{max-width:200px}@media screen and (max-width:700px){#bike[data-v-795f7f5f]{margin-top:10px}#bike .bike-img[data-v-795f7f5f]{max-width:150px}}#about[data-v-bffb50d0]{display:flex;height:100%}#about .container[data-v-bffb50d0]{display:flex;flex-direction:row;justify-content:space-evenly;margin-bottom:20px;width:100%}#about .container .container-sub[data-v-bffb50d0]{min-width:50%;height:100%}#about .container .about-details[data-v-bffb50d0]{width:100%}@media screen and (max-width:1000px){#about[data-v-bffb50d0]{height:auto}#about .container .container-sub[data-v-bffb50d0]{align-items:center}#about .container .container-sub .bike-img[data-v-bffb50d0]{max-width:60%}}@media screen and (max-width:700px){#about .container[data-v-bffb50d0]{flex-direction:column}}.static-map{display:flex;position:relative}.static-map.display-hover{position:absolute;margin-left:20px;margin-top:3px;width:400px;height:225px;z-index:100}.static-map .bg-map-image{background-size:cover;background-position:50%;opacity:.6;height:200px;width:100%}.static-map .map-attribution{top:0;right:0;font-size:11px;position:absolute}.static-map .map-attribution-text{background-color:hsla(0,0%,100%,.7)}.mountains[data-v-96abcc38]{padding-right:5px}.timeline-workout[data-v-96abcc38]{margin-bottom:20px}.timeline-workout .box[data-v-96abcc38]{flex-direction:column;padding:0}.timeline-workout .box .workout-user-date[data-v-96abcc38]{display:flex;justify-content:space-between;align-items:flex-start;padding:5px 10px}.timeline-workout .box .workout-user-date .workout-user[data-v-96abcc38]{display:flex}.timeline-workout .box .workout-user-date .workout-user[data-v-96abcc38] .user-picture img{height:25px;width:25px}.timeline-workout .box .workout-user-date .workout-user[data-v-96abcc38] .user-picture .no-picture{font-size:1.5em}.timeline-workout .box .workout-user-date .workout-user .workout-user-name[data-v-96abcc38]{white-space:nowrap;padding-left:5px}.timeline-workout .box .workout-user-date .workout-date[data-v-96abcc38]{font-size:.85em;font-style:italic;white-space:nowrap}.timeline-workout .box .workout-user-date .workout-title[data-v-96abcc38]{display:block;text-align:center;padding:0 10px}@media screen and (max-width:500px){.timeline-workout .box .workout-user-date .workout-title[data-v-96abcc38]{display:none}}.timeline-workout .box .workout-map[data-v-96abcc38]{background-color:var(--workout-no-map-bg-color);height:150px}.timeline-workout .box .workout-map .no-map[data-v-96abcc38]{line-height:150px}.timeline-workout .box .workout-map[data-v-96abcc38] .bg-map-image{height:150px}.timeline-workout .box .workout-data[data-v-96abcc38]{display:flex;padding:5px;font-size:.9em}.timeline-workout .box .workout-data .sport-img[data-v-96abcc38]{height:25px;width:25px}.timeline-workout .box .workout-data .data[data-v-96abcc38],.timeline-workout .box .workout-data .img[data-v-96abcc38]{display:flex;align-items:center}.timeline-workout .box .workout-data .data .data-values[data-v-96abcc38],.timeline-workout .box .workout-data .img .data-values[data-v-96abcc38]{display:flex;flex-wrap:wrap}.timeline-workout .box .workout-data .img[data-v-96abcc38]{justify-content:flex-end;width:10%}.timeline-workout .box .workout-data .data[data-v-96abcc38]{justify-content:center;width:22%}@media screen and (max-width:500px){.timeline-workout .box .workout-data .img[data-v-96abcc38]{justify-content:center;width:20%}.timeline-workout .box .workout-data .data[data-v-96abcc38]{justify-content:center;width:40%}.timeline-workout .box .workout-data .altitude[data-v-96abcc38],.timeline-workout .box .workout-data .elevation[data-v-96abcc38]{display:none}}.timeline-workout .box .workout-data.without-gpx .data[data-v-96abcc38],.timeline-workout .box .workout-data.without-gpx .img[data-v-96abcc38]{justify-content:center;width:33%}.timeline-workout .box .workout-data[data-v-96abcc38],.timeline-workout .box .workout-map[data-v-96abcc38]{cursor:pointer}.timeline-workout .box .no-cursor[data-v-96abcc38]{cursor:default}.timeline-workout .box .fa[data-v-96abcc38]{padding-right:10px}.no-workouts[data-v-4b4d15fb]{display:flex;justify-content:center}#timeline[data-v-35567bf2]{margin-bottom:20px}#timeline .more-workouts[data-v-35567bf2]{display:flex;justify-content:center}.calendar-workout{display:flex;padding:1px;cursor:pointer}.calendar-workout .sport-img{width:18px;height:18px}.calendar-workout sup{position:relative;top:-8px;left:-3px;width:2px}.calendar-workout sup .custom-fa-small{font-size:.7em}@media screen and (max-width:700px){.calendar-workout .sport-img{padding:3px;width:20px;height:20px}.calendar-workout sup .custom-fa-small{font-size:.6em}}.calendar-workouts-chart[data-v-52d4310a]{display:flex}.calendar-workouts-chart .workouts-chart[data-v-52d4310a]{position:relative}.calendar-workouts-chart .workouts-chart .workouts-count[data-v-52d4310a]{display:flex;justify-content:center;position:absolute;top:4px;left:6px;width:20px;font-size:1.1em;font-weight:700}@media screen and (max-width:700px){.calendar-workouts-chart .workouts-chart .workouts-count[data-v-52d4310a]{top:16px;left:6px}.calendar-workouts-chart .workouts-chart[data-v-52d4310a] .donut-chart{padding-top:12px}.calendar-workouts-chart .workouts-chart[data-v-52d4310a] .donut-chart svg g circle{stroke-width:2;stroke-opacity:.8}}.calendar-workouts-chart .workouts-pane[data-v-52d4310a]{display:flex;padding-left:40px}.calendar-workouts-chart .workouts-pane .more-workouts[data-v-52d4310a]{background:#f5f5f5;border-radius:4px;box-shadow:0 4px 8px 0 rgba(0,0,0,.2),0 6px 20px 0 rgba(0,0,0,.19);position:absolute;top:52px;left:0;min-width:60px;margin-bottom:20px;padding:10px 10px;display:flex;flex-wrap:wrap;z-index:1000}@media screen and (max-width:700px){.calendar-workouts-chart .workouts-pane .more-workouts[data-v-52d4310a]{min-width:70px}}.calendar-workouts-chart .workouts-pane .more-workouts .calendar-more[data-v-52d4310a]{position:absolute;font-size:.9em;top:5px;right:5px}.calendar-workouts .desktop-display{display:flex}.calendar-workouts .mobile-display{display:none}.calendar-workouts .workouts-display{display:flex;flex-wrap:wrap;position:relative;margin:0 10px 0 0}.calendar-workouts .donut-display{display:flex;height:34px;width:34px}@media screen and (max-width:700px){.calendar-workouts .desktop-display{display:none}.calendar-workouts .mobile-display{display:flex}}.calendar-cells{display:flex;flex-direction:column;width:100%}.calendar-cells .calendar-row{display:flex;flex-wrap:wrap;border-top:solid 1px var(--calendar-border-color)}.calendar-cells .calendar-row .calendar-cell{border-right:solid 1px var(--calendar-border-color);height:40px;flex-grow:1;flex-basis:8%;padding:5px 10px 5px 5px;width:8%;position:relative}.calendar-cells .calendar-row .calendar-cell .calendar-cell-day{position:absolute;font-size:.8em;line-height:1;top:.5em;right:.5em;font-weight:700}.calendar-cells .calendar-row .calendar-cell:last-child{border-right:0}@media screen and (max-width:700px){.calendar-cells .calendar-row .calendar-cell:last-child .calendar-workouts .more-workouts{left:-45px}}.calendar-cells .calendar-row .disabled-cell{color:var(--app-color-light)}.calendar-cells .calendar-row .week-end{background:var(--calendar-week-end-color)}.calendar-cells .calendar-row .today{background:var(--calendar-today-color)}@media screen and (max-width:700px){.calendar-cells .calendar-row:last-child .calendar-workouts .more-workouts{top:inherit;bottom:20px}}.calendar-days{display:flex;flex-direction:row;border-top:solid 1px var(--calendar-border-color)}.calendar-days .calendar-day{flex-grow:1;padding:5px;text-align:center;text-transform:uppercase;color:var(--app-color-light)}.calendar-header{display:flex;flex-direction:row}.calendar-header .calendar-arrow,.calendar-header .calendar-month{flex-grow:1;padding:10px}.calendar-header .calendar-arrow-left{text-align:left;cursor:pointer}.calendar-header .calendar-arrow-right{text-align:right;cursor:pointer}.calendar-header .calendar-month{font-weight:700;text-align:center;text-transform:uppercase}#user-calendar .calendar-card,#user-calendar .calendar-card .card-content{padding:0}.start-chart .chart-radio[data-v-d5e9b348]{display:flex;justify-content:space-between;flex-wrap:wrap;padding:10px}.start-chart .chart-radio label[data-v-d5e9b348]{font-size:.85em;font-weight:400}@media screen and (max-width:700px){.start-chart .chart-radio label[data-v-d5e9b348]{padding-bottom:10px}}.user-month-stats[data-v-1bcddc12] .card-content{padding:10px}.records-card[data-v-8d17c606]{width:100%;padding-bottom:3px}.records-card[data-v-8d17c606] .card{font-size:.9em}.records-card[data-v-8d17c606] .card .card-title{display:flex;font-size:.9em}.records-card[data-v-8d17c606] .card .card-title .sport-img{padding-right:10px;height:20px;width:20px}.records-card[data-v-8d17c606] .card .card-content{font-size:.9em;padding:10px}.records-card[data-v-8d17c606] .card .card-content .record{display:flex;align-items:center;justify-content:space-between}.records-card[data-v-8d17c606] .card .card-content .record span{padding:2px}.records-card[data-v-8d17c606] .card .card-content .record .record-type{flex-grow:1}.records-card[data-v-8d17c606] .card .card-content .record .record-value{font-weight:700;white-space:nowrap;padding-right:10px}.records-card[data-v-8d17c606] .card .card-content .record .record-date{white-space:nowrap;min-width:30%;text-align:right}@media screen and (max-width:1000px){.records-card[data-v-8d17c606] .card,.records-card[data-v-8d17c606] .card .card-title{font-size:1em}.records-card[data-v-8d17c606] .card .card-title .sport-img{height:22px;width:22px}}.user-records .no-records[data-v-f0c85cb8]{border:solid 1px var(--card-border-color);border-radius:4px;padding:10px;margin:10px}#user-stats{display:flex;flex:1 0 25%;justify-content:space-around;flex-wrap:wrap}#dashboard .dashboard-container[data-v-4c0893c1]{display:flex;flex-direction:row}#dashboard .dashboard-container .dashboard-sub-container[data-v-4c0893c1]{display:flex;flex-direction:column}#dashboard .dashboard-container .left-container[data-v-4c0893c1]{width:32%}#dashboard .dashboard-container .right-container[data-v-4c0893c1]{width:68%}#dashboard .mobile-menu[data-v-4c0893c1]{display:none}@media screen and (max-width:1000px){#dashboard[data-v-4c0893c1]{padding-bottom:60px}#dashboard .dashboard-container[data-v-4c0893c1]{display:flex;flex-direction:column}#dashboard .dashboard-container .left-container[data-v-4c0893c1],#dashboard .dashboard-container .right-container[data-v-4c0893c1]{width:100%}#dashboard .mobile-menu[data-v-4c0893c1]{display:flex}#dashboard .mobile-menu .box[data-v-4c0893c1]{display:flex;justify-content:space-between;padding:0;width:100%}#dashboard .mobile-menu .box .mobile-menu-item[data-v-4c0893c1]{display:flex;justify-content:space-around;border:none;border-radius:4px;box-shadow:none;font-size:.95em;padding:10px;width:25%}#dashboard .mobile-menu .box .mobile-menu-item .fa-trophy[data-v-4c0893c1]{color:var(--app-color)}#dashboard .mobile-menu .box .mobile-menu-item.is-selected[data-v-4c0893c1]{color:var(--mobile-menu-selected-color);background-color:var(--mobile-menu-selected-bgcolor)}#dashboard .mobile-menu .box .mobile-menu-item.is-selected .fa-trophy[data-v-4c0893c1]{color:var(--mobile-menu-selected-color)}#dashboard .is-hidden[data-v-4c0893c1]{display:none}}#error[data-v-b60bfa80]{display:flex;align-items:center;justify-content:center;height:75vh;text-align:center}#error .error-content[data-v-b60bfa80]{margin-top:50px}#error .error-content h1[data-v-b60bfa80]{font-size:6em;text-shadow:4px 4px 0 var(--app-shadow-color)}#error .error-content p[data-v-b60bfa80]{font-size:1.2em;margin:30px 0}[data-v-b3c885de]:root{--app-background-color:#fff;--app-color:#2c3e50;--app-color-light:#808b96;--app-a-color:#40578a;--app-shadow-color:#d3d3d3;--app-loading-color:#f3f3f3;--app-loading-top-color:var(--app-color);--button-hover-color:#fff;--button-cancel-bg-color:#fff;--button-cancel-color:var(--app-color);--button-confirm-bg-color:#fff;--button-confirm-color:var(--app-color);--button-danger-bg-color:#fff;--button-danger-color:#dc3545;--button-danger-hover-bg-color:#dc3545;--button-danger-hover-color:#fff;--card-border-color:#c4c7cf;--input-border-color:#9da3af;--input-bg-color:#fff;--input-error-color:#dc3545;--dropdown-hover-color:#eff0f5;--custom-checkbox-border-color:#9da3af;--custom-checkbox-checked-bg-color:#9da3af;--custom-checkbox-checked-color:#fff;--calendar-border-color:#c4c7cf;--calendar-week-end-color:#f5f5f5;--calendar-today-color:#eff1f3;--modal-background-color:rgba(0,0,0,.3);--nav-bar-background-color:#fff;--nav-bar-link-active:#485b6e;--nav-border-color:#c5ccdb;--mobile-menu-selected-color:#fff;--mobile-menu-selected-bgcolor:#9da3af;--footer-background-color:#fff;--footer-border-color:#ebeef3;--footer-color:#8b8c8c;--alert-background-color:#d6dde3;--alert-color:#3f3f3f;--info-background-color:#e5e7ea;--info-color:var(--app-color);--error-background-color:#ffd2d2;--error-color:#db1924;--success-background-color:#d9ecd9;--success-color:#306430;--disabled-background-color:#e0e0e0;--disabled-color:#a3a3a3;--disabled-sport-color:#616161;--scroll-button-bg-color:hsla(0,0%,100%,.7);--workout-trophy-color:#daa520;--workout-img-color:invert(22%) sepia(25%) saturate(646%) hue-rotate(169deg) brightness(97%) contrast(96%);--workout-no-map-bg-color:#eaeaea;--workout-no-map-color:#666;--cell-heading-bg-color:#eee;--cell-heading-color:#696969;--svg-filter:drop-shadow(10px 10px 10px var(--app-shadow-color));--password-bg-color:#d7dadf;--password-color-weak:#e46d6e;--password-color-medium:#f8bc4a;--password-color-good:#acc578;--password-color-strong:#57c255}#user-auth-form[data-v-b3c885de]{display:flex}#user-auth-form #user-form[data-v-b3c885de]{width:60%}#user-auth-form #user-form .account[data-v-b3c885de]{font-size:.9em;padding-left:10px}#user-auth-form #user-form .links[data-v-b3c885de]{font-size:.9em;font-style:italic;padding:0 10px}#user-auth-form #user-form button[data-v-b3c885de]{margin:10px;border:solid 1px var(--app-color)}#user-auth-form #user-form button[data-v-b3c885de]:disabled{border-color:var(--disabled-color)}#user-auth-form #user-form .success-message[data-v-b3c885de]{margin:10px}@media screen and (max-width:1000px){#user-auth-form[data-v-b3c885de]{margin-bottom:50px}#user-auth-form #user-form[data-v-b3c885de]{width:100%}}.user-form[data-v-b3c885de]{margin-top:200px}@media screen and (max-width:700px){.user-form[data-v-b3c885de]{margin-top:10px}}#loginOrRegister[data-v-58043acb]{display:flex}#loginOrRegister .container[data-v-58043acb]{display:flex;flex-direction:row;justify-content:space-evenly;margin-bottom:20px;width:100%}#loginOrRegister .container .container-sub[data-v-58043acb]{min-width:50%;height:100%}@media screen and (max-width:1000px){#loginOrRegister[data-v-58043acb]{height:auto}#loginOrRegister .container .container-sub[data-v-58043acb]{align-items:center}#loginOrRegister .container .container-sub .bike-img[data-v-58043acb]{max-width:60%}}@media screen and (max-width:700px){#loginOrRegister .container[data-v-58043acb]{flex-direction:column}}.alert-message[data-v-69d7e4ff]{background:var(--alert-background-color);color:var(--alert-color);border-radius:4px;margin:10px;padding:10px}.custom-textarea[data-v-8cf5cc64]{display:flex;flex-direction:column}.custom-textarea .remaining-chars[data-v-8cf5cc64]{font-size:.8em;font-style:italic}.strong[data-v-f46ff1d6]{font-weight:700}.dropdown-list[data-v-2d3b4eac]{list-style-type:none;background-color:#fff;padding:0;margin-top:5px;margin-left:-20px!important;position:absolute;text-align:left;border:1px solid #d3d3d3;box-shadow:2px 2px 5px #d3d3d3;width:auto!important}.dropdown-list li[data-v-2d3b4eac]{padding-top:5px;padding-right:5px}.dropdown-list li[data-v-2d3b4eac]:last-child{padding-bottom:5px}.dropdown-item[data-v-2d3b4eac]{cursor:default}.dropdown-item.selected[data-v-2d3b4eac]{font-weight:700}.dropdown-item.selected[data-v-2d3b4eac]:after{content:" ✔"}.error-message[data-v-2659a79a]{background:var(--error-background-color);color:var(--error-color);border-radius:4px;margin:10px;padding:10px}.loader[data-v-4c9921ee]{animation:spin-4c9921ee 2s linear infinite;border:14px solid var(--app-loading-color);border-top:14px solid var(--app-loading-top-color);border-radius:50%;height:60px;margin-left:41%;width:60px}@keyframes spin-4c9921ee{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}#modal[data-v-e8fcfaba]{position:fixed;top:0;bottom:0;left:0;right:0;background-color:var(--modal-background-color);padding:10px;z-index:1240}#modal .custom-modal[data-v-e8fcfaba]{background-color:var(--app-background-color);border-radius:4px;max-width:500px;margin:25% auto;z-index:1250}@media screen and (max-width:1000px){#modal .custom-modal[data-v-e8fcfaba]{margin:15% auto;width:100%}}@media screen and (max-width:700px){#modal .custom-modal[data-v-e8fcfaba]{margin:50% 0;width:100%}}#modal .custom-modal[data-v-e8fcfaba] .card{border:0;margin:0}#modal .custom-modal[data-v-e8fcfaba] .card .card-content{display:flex;flex-direction:column}#modal .custom-modal[data-v-e8fcfaba] .card .card-content .modal-message{padding:10px}#modal .custom-modal[data-v-e8fcfaba] .card .card-content .modal-message span{font-weight:700}#modal .custom-modal[data-v-e8fcfaba] .card .card-content .modal-buttons{display:flex;justify-content:flex-end}#modal .custom-modal[data-v-e8fcfaba] .card .card-content .modal-buttons button{margin:5px} \ No newline at end of file diff --git a/fittrackee/dist/static/css/app.b6bd588e.css b/fittrackee/dist/static/css/app.b6bd588e.css deleted file mode 100644 index 60c9d394..00000000 --- a/fittrackee/dist/static/css/app.b6bd588e.css +++ /dev/null @@ -1 +0,0 @@ -#footer[data-v-2c73279e]{display:flex;bottom:0;position:fixed;width:100%;background:var(--footer-background-color);color:var(--footer-color);font-size:.9em}#footer a[data-v-2c73279e]{text-decoration:none}#footer .footer-items[data-v-2c73279e]{display:flex;align-content:center;justify-content:center;width:100%}#footer .footer-items .footer-item[data-v-2c73279e]{padding:10px 10px;border-top:solid 1px var(--footer-border-color);text-align:center}@media screen and (max-width:500px){#footer .footer-items[data-v-2c73279e]{font-size:.85em}#footer .footer-items .footer-item[data-v-2c73279e]{padding:5px 5px}#footer .footer-items .bullet[data-v-2c73279e]{padding:5px 0}}.user-picture{display:flex;justify-content:center;align-items:center;min-width:30%;line-height:1.2em}.user-picture img{border-radius:50%;height:90px;width:90px}.user-picture .no-picture{color:var(--app-a-color);font-size:5.5em}[data-v-95c1cc02]:root{--app-background-color:#fff;--app-color:#2c3e50;--app-color-light:#808b96;--app-a-color:#40578a;--app-shadow-color:#d3d3d3;--app-loading-color:#f3f3f3;--app-loading-top-color:var(--app-color);--button-hover-color:#fff;--button-cancel-bg-color:#fff;--button-cancel-color:var(--app-color);--button-confirm-bg-color:#fff;--button-confirm-color:var(--app-color);--button-danger-bg-color:#fff;--button-danger-color:#dc3545;--button-danger-hover-bg-color:#dc3545;--button-danger-hover-color:#fff;--card-border-color:#c4c7cf;--input-border-color:#9da3af;--input-bg-color:#fff;--input-error-color:#dc3545;--dropdown-hover-color:#eff0f5;--custom-checkbox-border-color:#9da3af;--custom-checkbox-checked-bg-color:#9da3af;--custom-checkbox-checked-color:#fff;--calendar-border-color:#c4c7cf;--calendar-week-end-color:#f5f5f5;--calendar-today-color:#eff1f3;--modal-background-color:rgba(0,0,0,.3);--nav-bar-background-color:#fff;--nav-bar-link-active:#485b6e;--nav-border-color:#c5ccdb;--mobile-menu-selected-color:#fff;--mobile-menu-selected-bgcolor:#9da3af;--footer-background-color:#fff;--footer-border-color:#ebeef3;--footer-color:#8b8c8c;--alert-background-color:#d6dde3;--alert-color:#3f3f3f;--info-background-color:#e5e7ea;--info-color:var(--app-color);--error-background-color:#ffd2d2;--error-color:#db1924;--success-background-color:#d9ecd9;--success-color:#306430;--disabled-background-color:#e0e0e0;--disabled-color:#a3a3a3;--disabled-sport-color:#616161;--scroll-button-bg-color:hsla(0,0%,100%,.7);--workout-trophy-color:#daa520;--workout-img-color:invert(22%) sepia(25%) saturate(646%) hue-rotate(169deg) brightness(97%) contrast(96%);--workout-no-map-bg-color:#eaeaea;--workout-no-map-color:#666;--cell-heading-bg-color:#eee;--cell-heading-color:#696969;--svg-filter:drop-shadow(10px 10px 10px var(--app-shadow-color));--password-bg-color:#d7dadf;--password-color-weak:#e46d6e;--password-color-medium:#f8bc4a;--password-color-good:#acc578;--password-color-strong:#57c255}#nav[data-v-95c1cc02]{background:var(--nav-bar-background-color);display:flex;padding:15px 10px}#nav .nav-container[data-v-95c1cc02]{display:flex;margin-left:auto;margin-right:auto;padding:0 15px 15px 15px;max-width:1140px;width:100%;border-bottom:solid 1px var(--nav-border-color)}#nav a.router-link-exact-active[data-v-95c1cc02]{color:var(--nav-bar-link-active);font-weight:700}#nav .app-name[data-v-95c1cc02]{font-size:1.2em;font-weight:700;margin-right:10px}#nav .app-name[data-v-95c1cc02]:hover{cursor:pointer}#nav .fa[data-v-95c1cc02]{font-size:1.2em}#nav .close-icon[data-v-95c1cc02],#nav .hamburger-icon[data-v-95c1cc02],#nav .nav-icon-open[data-v-95c1cc02]{display:none}#nav .nav-items[data-v-95c1cc02]{display:flex;flex:1;justify-content:space-between;line-height:1.8em;width:100%}#nav .nav-items .nav-items-close[data-v-95c1cc02]{display:none}#nav .nav-items .nav-items-app-menu[data-v-95c1cc02],#nav .nav-items .nav-items-user-menu[data-v-95c1cc02]{display:flex;margin:0;padding:0}#nav .nav-items .nav-items-group[data-v-95c1cc02]{display:flex}#nav .nav-items .nav-item[data-v-95c1cc02]{padding:0 10px}#nav .nav-items .nav-item.dropdown-wrapper[data-v-95c1cc02]{width:60px}#nav .nav-items .nav-item[data-v-95c1cc02] .dropdown-list{margin-left:-10px;padding-left:10px;width:75px}#nav .nav-items .nav-link[data-v-95c1cc02]{color:var(--app-a-color);cursor:pointer}#nav .nav-items .nav-profile-img[data-v-95c1cc02]{margin-bottom:-10px}#nav .nav-items .nav-profile-img[data-v-95c1cc02] .user-picture img{height:32px;width:32px;-o-object-fit:cover;object-fit:cover}#nav .nav-items .nav-profile-img[data-v-95c1cc02] .user-picture .no-picture{font-size:1.7em}#nav .nav-items .nav-separator[data-v-95c1cc02]{display:none}@media screen and (max-width:1000px){#nav .hamburger-icon[data-v-95c1cc02]{display:block}#nav .nav-icon-open[data-v-95c1cc02]{display:block;text-align:right;width:100%}#nav .nav-icon-open.menu-open[data-v-95c1cc02]{display:none}#nav .close-icon[data-v-95c1cc02]{display:block}#nav .close-icon.menu-closed[data-v-95c1cc02],#nav .nav-items[data-v-95c1cc02]{display:none}#nav .nav-items.menu-open[data-v-95c1cc02]{display:flex;flex-direction:column;justify-content:flex-start;z-index:1001;position:absolute;top:0;right:0;bottom:0;left:0;background:var(--nav-bar-background-color)}#nav .nav-items.menu-open .nav-items-app-menu[data-v-95c1cc02],#nav .nav-items.menu-open .nav-items-close[data-v-95c1cc02],#nav .nav-items.menu-open .nav-items-user-menu[data-v-95c1cc02]{display:flex;flex-direction:column}#nav .nav-items.menu-open .nav-items-close[data-v-95c1cc02]{align-items:center;display:flex;flex-direction:row;justify-content:space-between}#nav .nav-items.menu-open .nav-items-close .app-name[data-v-95c1cc02]{padding:15px 25px}#nav .nav-items.menu-open .nav-items-group[data-v-95c1cc02]{display:flex;flex-direction:column}#nav .nav-items.menu-open .nav-item[data-v-95c1cc02]{padding:7px 25px}#nav .nav-items.menu-open .nav-profile-img[data-v-95c1cc02]{display:none}#nav .nav-items.menu-open .nav-separator[data-v-95c1cc02]{display:flex;border-top:solid 1px var(--nav-border-color);margin:0 20px;padding:0}}#no-config[data-v-47759238]{display:flex;align-items:center;justify-content:space-around;padding:10px;height:100%}#no-config .error-page[data-v-47759238]{display:flex;flex-direction:column;align-items:center;max-width:100%}#no-config .error-page .error-img[data-v-47759238]{width:150px}#no-config .error-page .error-img svg[data-v-47759238]{stroke:none;fill-rule:nonzero;fill:var(--app-color);filter:var(--svg-filter)}#no-config .error-page .error-message[data-v-47759238]{font-size:1.2em;text-align:center}@media screen and (max-width:1000px){#no-config .error-page .error-message[data-v-47759238]{font-size:1em}}:root{--app-background-color:#fff;--app-color:#2c3e50;--app-color-light:#808b96;--app-a-color:#40578a;--app-shadow-color:#d3d3d3;--app-loading-color:#f3f3f3;--app-loading-top-color:var(--app-color);--button-hover-color:#fff;--button-cancel-bg-color:#fff;--button-cancel-color:var(--app-color);--button-confirm-bg-color:#fff;--button-confirm-color:var(--app-color);--button-danger-bg-color:#fff;--button-danger-color:#dc3545;--button-danger-hover-bg-color:#dc3545;--button-danger-hover-color:#fff;--card-border-color:#c4c7cf;--input-border-color:#9da3af;--input-bg-color:#fff;--input-error-color:#dc3545;--dropdown-hover-color:#eff0f5;--custom-checkbox-border-color:#9da3af;--custom-checkbox-checked-bg-color:#9da3af;--custom-checkbox-checked-color:#fff;--calendar-border-color:#c4c7cf;--calendar-week-end-color:#f5f5f5;--calendar-today-color:#eff1f3;--modal-background-color:rgba(0,0,0,.3);--nav-bar-background-color:#fff;--nav-bar-link-active:#485b6e;--nav-border-color:#c5ccdb;--mobile-menu-selected-color:#fff;--mobile-menu-selected-bgcolor:#9da3af;--footer-background-color:#fff;--footer-border-color:#ebeef3;--footer-color:#8b8c8c;--alert-background-color:#d6dde3;--alert-color:#3f3f3f;--info-background-color:#e5e7ea;--info-color:var(--app-color);--error-background-color:#ffd2d2;--error-color:#db1924;--success-background-color:#d9ecd9;--success-color:#306430;--disabled-background-color:#e0e0e0;--disabled-color:#a3a3a3;--disabled-sport-color:#616161;--scroll-button-bg-color:hsla(0,0%,100%,.7);--workout-trophy-color:#daa520;--workout-img-color:invert(22%) sepia(25%) saturate(646%) hue-rotate(169deg) brightness(97%) contrast(96%);--workout-no-map-bg-color:#eaeaea;--workout-no-map-color:#666;--cell-heading-bg-color:#eee;--cell-heading-color:#696969;--svg-filter:drop-shadow(10px 10px 10px var(--app-shadow-color));--password-bg-color:#d7dadf;--password-color-weak:#e46d6e;--password-color-medium:#f8bc4a;--password-color-good:#acc578;--password-color-strong:#57c255}#app,body{margin:0}#app{font-family:PT Sans,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--app-color);background-color:var(--app-background-color);min-height:100vh}a{color:var(--app-a-color);text-decoration:none}img{max-width:100%}input,select,textarea{background-color:var(--input-bg-color);border-radius:4px;border:solid 1px var(--input-border-color);padding:10px}input:disabled,select:disabled,textarea:disabled{background-color:var(--disabled-background-color);border-color:var(--disabled-color)}form.errors :invalid{outline:2px solid var(--input-error-color)}label{font-weight:700}button{background:var(--app-background-color);border:solid 1px var(--input-border-color);border-radius:4px;box-shadow:2px 2px 2px var(--app-shadow-color);color:var(--app-color);padding:6px 14px}button:hover{background:var(--app-color);color:var(--button-hover-color)}button:enabled:active{box-shadow:2px 0 2px var(--app-shadow-color);transform:translateY(2px)}button.confirm:disabled,button:disabled{background:var(--disabled-background-color);border-color:var(--disabled-color);color:var(--disabled-color)}button.cancel{background:var(--button-cancel-bg-color);color:var(--button-cancel-color)}button.cancel:hover{background:var(--app-color);color:var(--button-hover-color)}button.confirm{background:var(--button-confirm-bg-color);color:var(--button-confirm-color)}button.confirm:hover{background:var(--app-color);color:var(--button-hover-color)}button.danger{background:var(--button-danger-bg-color);color:var(--button-danger-color)}button.danger:hover{background:var(--button-danger-hover-bg-color);color:var(--button-danger-hover-color)}button.danger:disabled{background:var(--disabled-background-color);border-color:var(--disabled-color);color:var(--disabled-color)}.box{border:solid 1px var(--card-border-color);margin:10px}.box,.info-box{border-radius:4px;padding:10px}.info-box{background-color:var(--info-background-color);color:var(--info-color);font-size:.8em}.container{display:flex;margin-left:auto;margin-right:auto;padding-left:15px;padding-right:15px;max-width:1140px}.form-box .form-items{display:flex;flex-direction:column}.form-box .form-items input{margin:10px;padding:5px}.form-info{color:var(--alert-color);font-size:.8em;margin-top:-2px;padding:0 15px}.success-message{margin:20px 0;background-color:var(--success-background-color);color:var(--success-color)}.upper{text-transform:uppercase}.view{padding-bottom:35px;background-color:var(--app-background-color)}.fa-trophy{color:var(--workout-trophy-color)}.mountains{margin-bottom:-3px;height:16px;filter:var(--workout-img-color)}.section-title{font-weight:700;padding-top:15px;padding-left:10px;text-transform:capitalize}.no-map{background-color:var(--workout-no-map-bg-color);background-image:url(/static/img/map.5b26d82b.svg);background-size:contain;background-repeat:no-repeat;background-position:50%;color:var(--workout-no-map-color);font-style:italic;font-weight:700;text-align:center;vertical-align:center}.custom-checkboxes-group{display:flex;justify-content:space-around}.custom-checkboxes-group .custom-checkboxes{display:inline-flex}@media screen and (max-width:300px){.custom-checkboxes-group .custom-checkboxes{display:flex;flex-direction:column;align-items:center;gap:5px}}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label{font-weight:400;float:left;padding:0 5px;cursor:pointer}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label input{display:none}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label span{border:solid 1px var(--custom-checkbox-border-color);border-radius:5px;display:block;font-size:.9em;padding:2px 6px;text-align:center}.custom-checkboxes-group .custom-checkboxes .custom-checkbox input:checked+span{background-color:var(--custom-checkbox-checked-bg-color);color:var(--custom-checkbox-checked-color)}.description-list dl{display:flex;flex-direction:column;width:100%}.description-list dl dt{font-weight:700}.description-list dl dd{margin-bottom:10px}.center-card{margin:0 auto;width:700px}.center-card.with-margin{margin-top:100px}@media screen and (max-width:1000px){.center-card{width:100%;margin:0 auto 50px auto}}.text-center{text-align:center}.text-left{text-align:left}.responsive-table{margin-bottom:15px}.responsive-table table{width:100%;padding:10px;font-size:.9em;border-collapse:collapse}.responsive-table table thead th{vertical-align:center;padding:10px;border-bottom:2px solid var(--card-border-color)}.responsive-table table tbody{font-size:.95em}.responsive-table table tbody td{padding:10px;border-bottom:1px solid var(--card-border-color)}.responsive-table table tbody tr:last-child td{border:none}.responsive-table table .cell-heading{background:var(--cell-heading-bg-color);color:var(--cell-heading-color);display:none;font-size:10px;font-weight:700;padding:5px;position:absolute;text-transform:uppercase;top:0;left:0}@media screen and (max-width:700px){.responsive-table table thead{left:-9999px;position:absolute;visibility:hidden}.responsive-table table tr{border-bottom:0;display:flex;flex-direction:row;flex-wrap:wrap;margin-bottom:40px}.responsive-table table td{margin:0 -1px -1px 0;padding-top:25px!important;position:relative;text-align:center;width:45%}.responsive-table table tbody tr:last-child td,.responsive-table table td{border:1px solid var(--card-border-color)}.responsive-table table .cell-heading{display:flex}}@media screen and (max-width:500px){.responsive-table table td{width:100%}}.profile-buttons{display:flex;gap:10px}.medium-sport-img{height:35px;width:35px;margin:0 auto}.app-container{height:calc(100vh - 130px)}.app-container.hide-scroll{overflow:hidden}.app-container .app-loading{display:flex;align-items:center;height:100%}.scroll{display:flex;justify-content:flex-end;position:fixed;bottom:42px;right:-15px;padding:0 25px}.scroll .scroll-button{background-color:var(--scroll-button-bg-color);border-radius:4px;box-shadow:1px 1px 3px #d3d3d3;display:none;padding:0 10px}.scroll .scroll-button.display-button{display:block}.user-limit-help[data-v-24ec93e2]{display:flex}.user-limit-help span[data-v-24ec93e2]{font-style:italic}.user-limit-help .fa-info-circle[data-v-24ec93e2]{margin-right:10px}.no-contact[data-v-24ec93e2]{font-style:italic}.stat-card{flex:1;max-width:25%}@media screen and (max-width:700px){.stat-card{flex:1 0 50%;max-width:49%}}.stat-card .stat-content{display:flex;flex-direction:row;justify-content:space-between;padding:10px 20px}.stat-card .stat-content .stat-icon{width:30%;text-align:center;vertical-align:center}@media screen and (max-width:1000px){.stat-card .stat-content .stat-icon{width:50%;text-align:left}}.stat-card .stat-content .stat-icon .fa{font-size:3em}@media screen and (max-width:1000px){.stat-card .stat-content .stat-icon .fa{font-size:2em}}@media screen and (max-width:500px){.stat-card .stat-content .stat-icon .fa{font-size:1.5em}}.stat-card .stat-content .stat-details{width:70%;text-align:right}@media screen and (max-width:1000px){.stat-card .stat-content .stat-details{width:100%}}.stat-card .stat-content .stat-details .stat-huge{font-size:1.7em;font-weight:700}@media screen and (max-width:1000px){.stat-card .stat-content .stat-details .stat-huge{font-size:1.3em}}@media screen and (max-width:500px){.stat-card .stat-content .stat-details .stat-huge{font-size:1em}}.stat-card .stat-content .stat-details .stat{font-size:1em}@media screen and (max-width:1000px){.stat-card .stat-content .stat-details .stat{font-size:.9em}}@media screen and (max-width:500px){.stat-card .stat-content .stat-details .stat{font-size:.8em}}.card{border:solid 1px var(--card-border-color);border-radius:4px;margin:10px}.card .card-title{font-weight:700;border-bottom:solid 1px var(--card-border-color);padding:10px 20px}.card .card-content{padding:10px 20px}#admin-menu[data-v-0dd66f89]{display:flex}#admin-menu.center-card[data-v-0dd66f89]{width:100%}#admin-menu[data-v-0dd66f89] .card{flex-grow:1}#admin-menu[data-v-0dd66f89] .card .admin-menu{padding:0 10px}#admin-menu[data-v-0dd66f89] .card .admin-menu dd{margin-bottom:30px}#admin-menu[data-v-0dd66f89] .card .admin-menu .application-config-details{display:flex;flex-direction:column}#admin-menu[data-v-0dd66f89] .card .admin-menu .application-config-details .email-sending-status,#admin-menu[data-v-0dd66f89] .card .admin-menu .application-config-details .registration-status{font-weight:700}#admin-sports table td[data-v-6d62af67]{font-size:1.1em}#admin-sports .sport-img[data-v-6d62af67]{height:35px;width:35px;margin:0 auto}#admin-sports .has-workouts[data-v-6d62af67]{font-size:.95em;font-style:italic;padding:0 10px}#admin-sports .sport-action[data-v-6d62af67]{padding-left:40px}#admin-sports .action-button[data-v-6d62af67]{display:block}#admin-sports .top-button[data-v-6d62af67]{display:none}@media screen and (max-width:700px){#admin-sports .sport-action[data-v-6d62af67]{padding-left:10px}#admin-sports .has-workouts[data-v-6d62af67]{padding-top:5px}#admin-sports .action-button[data-v-6d62af67]{display:flex;align-items:center;flex-wrap:wrap;flex-direction:column}#admin-sports .top-button[data-v-6d62af67]{display:block;margin-bottom:20px}}.table-selects[data-v-72463173]{display:flex;justify-content:space-between;margin:10px 0}.table-selects label select[data-v-72463173]{margin-left:10px;padding:5px}@media screen and (max-width:700px){.table-selects[data-v-72463173]{flex-wrap:wrap}.table-selects label[data-v-72463173]{margin-bottom:10px}.table-selects label select[data-v-72463173]{margin-left:0}}.pagination-center[data-v-3a9a4a65]{display:flex;justify-content:center;font-size:.9em}.pagination-center .pagination[data-v-3a9a4a65]{display:flex;padding-left:0;list-style:none;border-radius:.25rem}.pagination-center .pagination .page-next[data-v-3a9a4a65],.pagination-center .pagination .page-prev[data-v-3a9a4a65],.pagination-center .pagination .page[data-v-3a9a4a65]{border:solid 1px var(--card-border-color);padding:10px 15px}.pagination-center .pagination .page-next.active[data-v-3a9a4a65],.pagination-center .pagination .page-prev.active[data-v-3a9a4a65],.pagination-center .pagination .page.active[data-v-3a9a4a65]{font-weight:700}.pagination-center .pagination .page-next.disabled[data-v-3a9a4a65],.pagination-center .pagination .page-prev.disabled[data-v-3a9a4a65],.pagination-center .pagination .page.disabled[data-v-3a9a4a65]{cursor:default}.pagination-center .pagination .page-next.disabled a[data-v-3a9a4a65],.pagination-center .pagination .page-prev.disabled a[data-v-3a9a4a65],.pagination-center .pagination .page.disabled a[data-v-3a9a4a65]{cursor:default;pointer-events:none;color:var(--disabled-color)}.pagination-center .pagination .page[data-v-3a9a4a65]{margin-left:-1px}.pagination-center .pagination .page-prev[data-v-3a9a4a65]{border-top-left-radius:5px;border-bottom-left-radius:5px}.pagination-center .pagination .page-next[data-v-3a9a4a65]{border-top-right-radius:5px;border-bottom-right-radius:5px;margin-left:-1px}.pagination-center .pagination .fa[data-v-3a9a4a65]{font-size:.8em;padding:0 5px}@media screen and (max-width:1000px){.pagination-center .pagination .page[data-v-3a9a4a65]{display:none}}.users-filters[data-v-627a8e91]{display:flex;align-items:center;padding:10px 0;gap:10px}.users-filters .fa[data-v-627a8e91]{font-size:1.5em}.users-filters .fa-disabled[data-v-627a8e91]{color:var(--disabled-color)}.users-filters .search-username[data-v-627a8e91]{display:flex;align-items:center;justify-content:space-between;gap:10px;border:solid 1px var(--card-border-color);border-radius:4px;color:var(--info-color);width:45%}.users-filters .search-username input[data-v-627a8e91]{border:none;height:12px;width:90%}.users-filters .search-username input[data-v-627a8e91]:focus{outline:none}.users-filters .search-username .fa-times[data-v-627a8e91]{padding-right:10px}@media screen and (max-width:700px){.users-filters .search-username[data-v-627a8e91]{width:400px}}@media screen and (max-width:500px){.users-filters .search-username[data-v-627a8e91]{width:90%}}#admin-users .top-button[data-v-dc12ff78]{display:none}#admin-users .no-users[data-v-dc12ff78]{display:flex;justify-content:center;padding:20px 0;font-weight:700}#admin-users table td[data-v-dc12ff78]{font-size:1.1em}#admin-users .left-text[data-v-dc12ff78]{text-align:left}#admin-users[data-v-dc12ff78] .user-picture img{height:30px;width:30px}#admin-users[data-v-dc12ff78] .user-picture .no-picture{font-size:2em}@media screen and (max-width:700px){#admin-users .top-button[data-v-dc12ff78]{display:block;margin-bottom:20px}#admin-users .pagination-center[data-v-dc12ff78]{margin-top:-30px}}.user-header[data-v-20291951]{display:flex;align-items:stretch}.user-header .user-details[data-v-20291951]{flex-grow:1;padding:10px;display:flex;flex-direction:column;align-items:center}.user-header .user-details .user-name[data-v-20291951]{font-size:2em;height:60%}.user-header .user-details .user-stats[data-v-20291951]{display:flex;gap:40px}.user-header .user-details .user-stats .user-stat[data-v-20291951]{display:flex;flex-direction:column;align-items:center;padding-top:10px}.user-header .user-details .user-stats .user-stat .stat-label[data-v-20291951],.user-header .user-details .user-stats .user-stat .stat-number[data-v-20291951]{padding:0 5px}.user-header .user-details .user-stats .user-stat .stat-number[data-v-20291951],.user-header .user-details .user-stats .user-stat[data-v-20291951] .distance{font-weight:700;font-size:1.5em}@media screen and (max-width:500px){.user-header .user-details .user-name[data-v-20291951]{font-size:1.5em}.user-header .user-details .user-stats[data-v-20291951]{gap:20px}.user-header .user-details .user-stats .user-stat .stat-number[data-v-20291951],.user-header .user-details .user-stats .user-stat[data-v-20291951] .distance{font-weight:700;font-size:1.2em}.user-header .user-details .user-stats .user-stat.hide-small[data-v-20291951]{display:none}}.profile-tabs-checkboxes{display:flex;justify-content:center;flex-wrap:wrap;gap:5px}#user-profile[data-v-9729cba4]{margin:auto;width:700px}@media screen and (max-width:1000px){#user-profile[data-v-9729cba4]{width:100%;margin:0 auto 50px auto}}#user-infos .user-bio[data-v-217519af]{white-space:pre-wrap}#user-infos .alert-message[data-v-217519af]{margin:0}#user-infos .profile-buttons[data-v-217519af]{display:flex;flex-wrap:wrap}#user-infos .email-form[data-v-217519af]{display:flex}#user-infos .email-form form[data-v-217519af]{width:100%}#user-infos .email-form .form-buttons[data-v-217519af]{display:flex;gap:10px;margin-top:10px}.password-strength[data-v-74e71df5]{cursor:default;display:flex;flex-direction:column}.password-strength .password-slider[data-v-74e71df5]{-webkit-appearance:none;-moz-appearance:none;appearance:none;border:none;border-radius:8px;height:5px;outline:none;padding:0}.password-strength .strength-0[data-v-74e71df5],.password-strength .strength-1[data-v-74e71df5]{background:var(--password-bg-color);background-image:linear-gradient(to right,var(--password-color-weak) 0,var(--password-color-weak) 100%);background-repeat:no-repeat}.password-strength .strength-2[data-v-74e71df5]{background:var(--password-bg-color);background-image:linear-gradient(to right,var(--password-color-medium) 0,var(--password-color-medium) 100%);background-repeat:no-repeat}.password-strength .strength-3[data-v-74e71df5]{background:var(--password-bg-color);background-image:linear-gradient(to right,var(--password-color-good) 0,var(--password-color-good) 100%);background-repeat:no-repeat}.password-strength .strength-4[data-v-74e71df5]{background:var(--password-bg-color);background-image:linear-gradient(to right,var(--password-color-strong) 0,var(--password-color-strong) 100%);background-repeat:no-repeat}.password-strength .password-slider[data-v-74e71df5]::-moz-range-thumb,.password-strength .password-slider[data-v-74e71df5]::-webkit-slider-thumb{opacity:0}.password-strength .password-slider[data-v-74e71df5]::-webkit-slider-thumb{-webkit-appearance:none}.password-strength .password-slider[data-v-74e71df5]::-moz-range-thumb{-moz-appearance:none;appearance:none}.password-strength .password-strength-details[data-v-74e71df5]{margin-bottom:5px;margin-top:-10px;padding:0 10px}.password-strength .password-strength-details .password-strength-value[data-v-74e71df5]{font-size:.85em}.password-strength .password-strength-details .info-box[data-v-74e71df5]{padding:1px 10px}.password-strength .password-strength-details .info-box .password-feedback[data-v-74e71df5]{padding-left:20px}.password-input[data-v-5a126514]{display:flex;flex-direction:column}.password-input .show-password[data-v-5a126514]{font-style:italic;font-size:.85em;text-align:right;margin-top:-7.5px;padding-right:10px;cursor:pointer}.form-items .password-input[data-v-37b8c4c8] .show-password{font-weight:400;font-size:.8em;margin-top:-4px;padding-left:0}.form-items .password-input[data-v-37b8c4c8] .form-info{font-weight:400;padding-left:10px}.form-items .password-input[data-v-37b8c4c8] .password-strength-details{font-weight:400;margin-top:0}.form-buttons[data-v-37b8c4c8]{flex-direction:row}@media screen and (max-width:500px){.form-buttons[data-v-37b8c4c8]{flex-direction:column}}.form-items .password-input[data-v-5e5a4552] .show-password{font-weight:400;font-size:.8em;margin-top:-4px;padding-left:0}.form-buttons[data-v-5e5a4552]{flex-direction:row}@media screen and (max-width:500px){.form-buttons[data-v-5e5a4552]{flex-direction:column}}#user-picture-edition .user-picture-form[data-v-687e9604]{display:flex;flex-direction:column;margin-top:10px}#user-picture-edition .user-picture-form form[data-v-687e9604]{display:flex;flex-direction:column;gap:10px;justify-content:flex-start}#user-picture-edition .user-picture-form form input[data-v-687e9604]{margin-top:10px;padding:5px}#user-picture-edition .user-picture-form form span[data-v-687e9604]{font-style:italic;font-size:.9em;padding-left:5px}#user-picture-edition .user-picture-form form .picture-help[data-v-687e9604]{display:flex}#user-picture-edition .user-picture-form form .picture-help span[data-v-687e9604]{font-style:italic;padding:10px}#user-picture-edition .user-picture-form form .picture-help .fa-info-circle[data-v-687e9604]{margin-right:10px}#user-picture-edition .user-picture-form .picture-buttons[data-v-687e9604]{display:flex;flex-direction:row;align-items:center;gap:10px}@media screen and (max-width:500px){#user-picture-edition .user-picture-form .picture-buttons[data-v-687e9604],#user-picture-edition .user-picture-form .picture-help[data-v-687e9604]{flex-direction:column;align-items:stretch}}#tz-dropdown[data-v-47ea2903]{display:flex;flex-direction:column;position:relative}#tz-dropdown .tz-dropdown-list[data-v-47ea2903]{background-color:var(--input-bg-color);border-radius:4px;border:solid 1px var(--input-border-color);padding:5px 0;position:absolute;overflow-y:auto;top:20px;left:0;right:0;max-height:200px;width:inherit}#tz-dropdown .tz-dropdown-item[data-v-47ea2903]{cursor:pointer;font-size:.9em;font-weight:400;padding:5px}#tz-dropdown .tz-dropdown-item.focus[data-v-47ea2903]{background-color:var(--dropdown-hover-color)}#user-preferences-edition .form-items[data-v-065d5e6c]{padding-top:5px}#user-preferences-edition .form-checkboxes .checkboxes-label[data-v-065d5e6c]{font-weight:700}#user-preferences-edition .form-checkboxes .checkboxes[data-v-065d5e6c]{display:flex;gap:10px;flex-wrap:wrap}#user-preferences-edition .form-checkboxes .checkboxes .checkbox-label[data-v-065d5e6c]{padding-left:5px}#user-preferences-edition .form-checkboxes .checkboxes label[data-v-065d5e6c]{font-weight:400}#new-oauth2-app #new-oauth2-title[data-v-0657ee77]{font-size:1.05em;font-weight:700;padding:0 10px}#new-oauth2-app #apps-form .form-items[data-v-0657ee77]{display:flex;flex-direction:column}#new-oauth2-app #apps-form .form-items input[type=text][data-v-0657ee77]{height:20px}#new-oauth2-app #apps-form .form-items .form-item-scope[data-v-0657ee77]{padding:10px}#new-oauth2-app #apps-form .form-items .form-item-scope .form-item-scope-label[data-v-0657ee77]{font-weight:700}#new-oauth2-app #apps-form .form-items .form-item-scope .form-item-scope-checkboxes[data-v-0657ee77]{padding-bottom:10px}#new-oauth2-app #apps-form .form-items .form-item-scope .form-item-scope-checkboxes .scope-label[data-v-0657ee77]{height:inherit}#new-oauth2-app #apps-form .form-items .form-item-scope .form-item-scope-checkboxes .scope-description[data-v-0657ee77]{font-style:italic;margin:0 5px}#new-oauth2-app #apps-form .form-items .form-item[data-v-0657ee77]{display:flex;flex-direction:column;padding:10px}#new-oauth2-app #apps-form .form-buttons[data-v-0657ee77]{display:flex;justify-content:flex-end}#new-oauth2-app #apps-form .form-buttons button[data-v-0657ee77]{margin:5px}#authorize-oauth2-app #authorize-oauth2-title[data-v-3b2fe9ed]{font-size:1.05em;font-weight:700;padding:0 10px}#authorize-oauth2-app .oauth2-access[data-v-3b2fe9ed]{padding:0 10px}#authorize-oauth2-app .authorize-oauth2-buttons[data-v-3b2fe9ed]{display:flex}#authorize-oauth2-app .authorize-oauth2-buttons button[data-v-3b2fe9ed]{margin:5px}#oauth2-app .app-buttons[data-v-3a844fa2]{display:flex;flex-wrap:wrap;gap:10px}#oauth2-app .app-secret[data-v-3a844fa2]{word-break:break-word}#oauth2-app .client-scopes[data-v-3a844fa2]{display:flex;flex-wrap:wrap}#oauth2-app .client-scopes .client-scope[data-v-3a844fa2]{padding-right:15px}#oauth2-app .fa-copy[data-v-3a844fa2]{font-size:.9em}#oauth2-app .no-description[data-v-3a844fa2]{font-style:italic}#oauth2-app .no-app[data-v-3a844fa2]{font-style:italic;padding:10px 0}#oauth2-apps-list ul[data-v-efa45ea0]{list-style:square}#oauth2-apps-list ul li[data-v-efa45ea0]{padding-bottom:10px}#oauth2-apps-list .app-issued-at[data-v-efa45ea0]{font-size:.85em;font-style:italic;padding-left:10px}#oauth2-apps-list .apps-list[data-v-efa45ea0]{font-size:1.05em;font-weight:700}#oauth2-apps-list .app-list-buttons[data-v-efa45ea0]{display:flex;gap:10px}#oauth2-apps-list .no-apps[data-v-efa45ea0]{font-style:italic;padding-bottom:20px}#user-sport-preferences .sport-img[data-v-74e52489]{height:35px;width:35px;margin:0 auto}#user-sport-preferences .sport-color[data-v-74e52489]{border:none;margin:6px 1px 6px 0;padding:0;width:40px}#user-sport-preferences .sport-label[data-v-74e52489]{width:170px}#user-sport-preferences .disabled-sport[data-v-74e52489]{font-style:italic;color:var(--disabled-sport-color)}#user-sport-preferences .disabled-sport .disabled-message[data-v-74e52489]{font-size:.9em}#user-sport-preferences .disabled-sport .cell-heading[data-v-74e52489]{font-style:normal}#user-sport-preferences .action-buttons[data-v-74e52489]{width:70px}#user-sport-preferences .edition-buttons[data-v-74e52489]{display:flex;flex-wrap:wrap;gap:5px;line-height:1.3em}#user-sport-preferences .edition-buttons button[data-v-74e52489]{text-align:center;min-width:80px}#user-sport-preferences .threshold-input[data-v-74e52489]{padding:5px;width:50px}#user-sport-preferences .mobile-display[data-v-74e52489]{display:none}#user-sport-preferences div.error-message[data-v-74e52489]{margin:0}@media screen and (max-width:700px){#user-sport-preferences .action-buttons[data-v-74e52489],#user-sport-preferences .sport-label[data-v-74e52489]{width:45%}#user-sport-preferences .edition-buttons[data-v-74e52489]{justify-content:center}#user-sport-preferences .mobile-display[data-v-74e52489]{display:flex;margin:20px 0 10px}}@media screen and (max-width:500px){#user-sport-preferences .action-buttons[data-v-74e52489],#user-sport-preferences .sport-label[data-v-74e52489]{width:100%}}[data-v-74257266]:root{--app-background-color:#fff;--app-color:#2c3e50;--app-color-light:#808b96;--app-a-color:#40578a;--app-shadow-color:#d3d3d3;--app-loading-color:#f3f3f3;--app-loading-top-color:var(--app-color);--button-hover-color:#fff;--button-cancel-bg-color:#fff;--button-cancel-color:var(--app-color);--button-confirm-bg-color:#fff;--button-confirm-color:var(--app-color);--button-danger-bg-color:#fff;--button-danger-color:#dc3545;--button-danger-hover-bg-color:#dc3545;--button-danger-hover-color:#fff;--card-border-color:#c4c7cf;--input-border-color:#9da3af;--input-bg-color:#fff;--input-error-color:#dc3545;--dropdown-hover-color:#eff0f5;--custom-checkbox-border-color:#9da3af;--custom-checkbox-checked-bg-color:#9da3af;--custom-checkbox-checked-color:#fff;--calendar-border-color:#c4c7cf;--calendar-week-end-color:#f5f5f5;--calendar-today-color:#eff1f3;--modal-background-color:rgba(0,0,0,.3);--nav-bar-background-color:#fff;--nav-bar-link-active:#485b6e;--nav-border-color:#c5ccdb;--mobile-menu-selected-color:#fff;--mobile-menu-selected-bgcolor:#9da3af;--footer-background-color:#fff;--footer-border-color:#ebeef3;--footer-color:#8b8c8c;--alert-background-color:#d6dde3;--alert-color:#3f3f3f;--info-background-color:#e5e7ea;--info-color:var(--app-color);--error-background-color:#ffd2d2;--error-color:#db1924;--success-background-color:#d9ecd9;--success-color:#306430;--disabled-background-color:#e0e0e0;--disabled-color:#a3a3a3;--disabled-sport-color:#616161;--scroll-button-bg-color:hsla(0,0%,100%,.7);--workout-trophy-color:#daa520;--workout-img-color:invert(22%) sepia(25%) saturate(646%) hue-rotate(169deg) brightness(97%) contrast(96%);--workout-no-map-bg-color:#eaeaea;--workout-no-map-color:#666;--cell-heading-bg-color:#eee;--cell-heading-color:#696969;--svg-filter:drop-shadow(10px 10px 10px var(--app-shadow-color));--password-bg-color:#d7dadf;--password-color-weak:#e46d6e;--password-color-medium:#f8bc4a;--password-color-good:#acc578;--password-color-strong:#57c255}@font-face{font-family:PT Sans;font-style:normal;font-weight:400;src:url(/static/fonts/pt-sans-v9-latin-regular.c5a514ae.eot);src:local("PT Sans"),local("PTSans-Regular"),url(/static/fonts/pt-sans-v9-latin-regular.c5a514ae.eot?#iefix) format("embedded-opentype"),url(/static/fonts/pt-sans-v9-latin-regular.e7867499.woff2) format("woff2"),url(/static/fonts/pt-sans-v9-latin-regular.b5b74f16.woff) format("woff"),url(/static/fonts/pt-sans-v9-latin-regular.c43bc0a2.ttf) format("truetype"),url(/static/img/pt-sans-v9-latin-regular.59a385b4.svg#PTSans) format("svg")}@font-face{font-family:PT Sans;font-style:italic;font-weight:400;src:url(/static/fonts/pt-sans-v9-latin-italic.8293436e.eot);src:local("PT Sans Italic"),local("PTSans-Italic"),url(/static/fonts/pt-sans-v9-latin-italic.8293436e.eot?#iefix) format("embedded-opentype"),url(/static/fonts/pt-sans-v9-latin-italic.10011d51.woff2) format("woff2"),url(/static/fonts/pt-sans-v9-latin-italic.fe36f54f.woff) format("woff"),url(/static/fonts/pt-sans-v9-latin-italic.6206408d.ttf) format("truetype"),url(/static/img/pt-sans-v9-latin-italic.0b285c83.svg#PTSans) format("svg")}@font-face{font-family:PT Sans;font-style:normal;font-weight:700;src:url(/static/fonts/pt-sans-v9-latin-700.01a58da9.eot);src:local("PT Sans Bold"),local("PTSans-Bold"),url(/static/fonts/pt-sans-v9-latin-700.01a58da9.eot?#iefix) format("embedded-opentype"),url(/static/fonts/pt-sans-v9-latin-700.51b1613b.woff2) format("woff2"),url(/static/fonts/pt-sans-v9-latin-700.5ff2a2d7.woff) format("woff"),url(/static/fonts/pt-sans-v9-latin-700.6514157e.ttf) format("truetype"),url(/static/img/pt-sans-v9-latin-700.b8a7047e.svg#PTSans) format("svg")}body[data-v-74257266]{margin:0}#app[data-v-74257266]{font-family:PT Sans,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--app-color);background-color:var(--app-background-color);margin:0;min-height:100vh}a[data-v-74257266]{color:var(--app-a-color);text-decoration:none}img[data-v-74257266]{max-width:100%}input[data-v-74257266],select[data-v-74257266],textarea[data-v-74257266]{background-color:var(--input-bg-color);border-radius:4px;border:solid 1px var(--input-border-color);padding:10px}input[data-v-74257266]:disabled,select[data-v-74257266]:disabled,textarea[data-v-74257266]:disabled{background-color:var(--disabled-background-color);border-color:var(--disabled-color)}form.errors[data-v-74257266] :invalid{outline:2px solid var(--input-error-color)}label[data-v-74257266]{font-weight:700}button[data-v-74257266]{background:var(--app-background-color);border:solid 1px var(--input-border-color);border-radius:4px;box-shadow:2px 2px 2px var(--app-shadow-color);color:var(--app-color);padding:6px 14px}button[data-v-74257266]:hover{background:var(--app-color);color:var(--button-hover-color)}button[data-v-74257266]:enabled:active{box-shadow:2px 0 2px var(--app-shadow-color);transform:translateY(2px)}button.confirm[data-v-74257266]:disabled,button[data-v-74257266]:disabled{background:var(--disabled-background-color);border-color:var(--disabled-color);color:var(--disabled-color)}button.cancel[data-v-74257266]{background:var(--button-cancel-bg-color);color:var(--button-cancel-color)}button.cancel[data-v-74257266]:hover{background:var(--app-color);color:var(--button-hover-color)}button.confirm[data-v-74257266]{background:var(--button-confirm-bg-color);color:var(--button-confirm-color)}button.confirm[data-v-74257266]:hover{background:var(--app-color);color:var(--button-hover-color)}button.danger[data-v-74257266]{background:var(--button-danger-bg-color);color:var(--button-danger-color)}button.danger[data-v-74257266]:hover{background:var(--button-danger-hover-bg-color);color:var(--button-danger-hover-color)}button.danger[data-v-74257266]:disabled{background:var(--disabled-background-color);border-color:var(--disabled-color);color:var(--disabled-color)}.box[data-v-74257266]{border:solid 1px var(--card-border-color);border-radius:4px;padding:10px;margin:10px}.info-box[data-v-74257266]{background-color:var(--info-background-color);border-radius:4px;color:var(--info-color);font-size:.8em;padding:10px}.container[data-v-74257266]{display:flex;margin-left:auto;margin-right:auto;padding-left:15px;padding-right:15px;max-width:1140px}.form-box .form-items[data-v-74257266]{display:flex;flex-direction:column}.form-box .form-items input[data-v-74257266]{margin:10px;padding:5px}.form-info[data-v-74257266]{color:var(--alert-color);font-size:.8em;margin-top:-2px;padding:0 15px}.success-message[data-v-74257266]{margin:20px 0;background-color:var(--success-background-color);color:var(--success-color)}.upper[data-v-74257266]{text-transform:uppercase}.view[data-v-74257266]{padding-bottom:35px;background-color:var(--app-background-color)}.fa-trophy[data-v-74257266]{color:var(--workout-trophy-color)}.mountains[data-v-74257266]{margin-bottom:-3px;height:16px;filter:var(--workout-img-color)}.section-title[data-v-74257266]{font-weight:700;padding-top:15px;padding-left:10px;text-transform:capitalize}.no-map[data-v-74257266]{background-color:var(--workout-no-map-bg-color);background-image:url(/static/img/map.5b26d82b.svg);background-size:contain;background-repeat:no-repeat;background-position:50%;color:var(--workout-no-map-color);font-style:italic;font-weight:700;text-align:center;vertical-align:center}.custom-checkboxes-group[data-v-74257266]{display:flex;justify-content:space-around}.custom-checkboxes-group .custom-checkboxes[data-v-74257266]{display:inline-flex}@media screen and (max-width:300px){.custom-checkboxes-group .custom-checkboxes[data-v-74257266]{display:flex;flex-direction:column;align-items:center;gap:5px}}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label[data-v-74257266]{font-weight:400;float:left;padding:0 5px;cursor:pointer}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label input[data-v-74257266]{display:none}.custom-checkboxes-group .custom-checkboxes .custom-checkbox label span[data-v-74257266]{border:solid 1px var(--custom-checkbox-border-color);border-radius:5px;display:block;font-size:.9em;padding:2px 6px;text-align:center}.custom-checkboxes-group .custom-checkboxes .custom-checkbox input:checked+span[data-v-74257266]{background-color:var(--custom-checkbox-checked-bg-color);color:var(--custom-checkbox-checked-color)}.description-list dl[data-v-74257266]{display:flex;flex-direction:column;width:100%}.description-list dl dt[data-v-74257266]{font-weight:700}.description-list dl dd[data-v-74257266]{margin-bottom:10px}.center-card[data-v-74257266]{margin:0 auto;width:700px}.center-card.with-margin[data-v-74257266]{margin-top:100px}@media screen and (max-width:1000px){.center-card[data-v-74257266]{width:100%;margin:0 auto 50px auto}}.text-center[data-v-74257266]{text-align:center}.text-left[data-v-74257266]{text-align:left}.responsive-table[data-v-74257266]{margin-bottom:15px}.responsive-table table[data-v-74257266]{width:100%;padding:10px;font-size:.9em;border-collapse:collapse}.responsive-table table thead th[data-v-74257266]{vertical-align:center;padding:10px;border-bottom:2px solid var(--card-border-color)}.responsive-table table tbody[data-v-74257266]{font-size:.95em}.responsive-table table tbody td[data-v-74257266]{padding:10px;border-bottom:1px solid var(--card-border-color)}.responsive-table table tbody tr:last-child td[data-v-74257266]{border:none}.responsive-table table .cell-heading[data-v-74257266]{background:var(--cell-heading-bg-color);color:var(--cell-heading-color);display:none;font-size:10px;font-weight:700;padding:5px;position:absolute;text-transform:uppercase;top:0;left:0}@media screen and (max-width:700px){.responsive-table table thead[data-v-74257266]{left:-9999px;position:absolute;visibility:hidden}.responsive-table table tr[data-v-74257266]{border-bottom:0;display:flex;flex-direction:row;flex-wrap:wrap;margin-bottom:40px}.responsive-table table td[data-v-74257266]{border:1px solid var(--card-border-color);margin:0 -1px -1px 0;padding-top:25px!important;position:relative;text-align:center;width:45%}.responsive-table table tbody tr:last-child td[data-v-74257266]{border:1px solid var(--card-border-color)}.responsive-table table .cell-heading[data-v-74257266]{display:flex}}@media screen and (max-width:500px){.responsive-table table td[data-v-74257266]{width:100%}}.profile-buttons[data-v-74257266]{display:flex;gap:10px}.medium-sport-img[data-v-74257266]{height:35px;width:35px;margin:0 auto}.about-text[data-v-74257266]{margin-top:200px}@media screen and (max-width:700px){.about-text[data-v-74257266]{margin-top:0}}.about-text .fa-padding[data-v-74257266]{padding-right:10px}#bike[data-v-795f7f5f]{display:flex;justify-content:center;margin-top:180px;padding:10px}#bike .bike-img[data-v-795f7f5f]{max-width:200px}@media screen and (max-width:700px){#bike[data-v-795f7f5f]{margin-top:10px}#bike .bike-img[data-v-795f7f5f]{max-width:150px}}#about[data-v-bffb50d0]{display:flex;height:100%}#about .container[data-v-bffb50d0]{display:flex;flex-direction:row;justify-content:space-evenly;margin-bottom:20px;width:100%}#about .container .container-sub[data-v-bffb50d0]{min-width:50%;height:100%}#about .container .about-details[data-v-bffb50d0]{width:100%}@media screen and (max-width:1000px){#about[data-v-bffb50d0]{height:auto}#about .container .container-sub[data-v-bffb50d0]{align-items:center}#about .container .container-sub .bike-img[data-v-bffb50d0]{max-width:60%}}@media screen and (max-width:700px){#about .container[data-v-bffb50d0]{flex-direction:column}}.static-map{display:flex;position:relative}.static-map.display-hover{position:absolute;margin-left:20px;margin-top:3px;width:400px;height:225px;z-index:100}.static-map .bg-map-image{background-size:cover;background-position:50%;opacity:.6;height:200px;width:100%}.static-map .map-attribution{top:0;right:0;font-size:11px;position:absolute}.static-map .map-attribution-text{background-color:hsla(0,0%,100%,.7)}.mountains[data-v-96abcc38]{padding-right:5px}.timeline-workout[data-v-96abcc38]{margin-bottom:20px}.timeline-workout .box[data-v-96abcc38]{flex-direction:column;padding:0}.timeline-workout .box .workout-user-date[data-v-96abcc38]{display:flex;justify-content:space-between;align-items:flex-start;padding:5px 10px}.timeline-workout .box .workout-user-date .workout-user[data-v-96abcc38]{display:flex}.timeline-workout .box .workout-user-date .workout-user[data-v-96abcc38] .user-picture img{height:25px;width:25px}.timeline-workout .box .workout-user-date .workout-user[data-v-96abcc38] .user-picture .no-picture{font-size:1.5em}.timeline-workout .box .workout-user-date .workout-user .workout-user-name[data-v-96abcc38]{white-space:nowrap;padding-left:5px}.timeline-workout .box .workout-user-date .workout-date[data-v-96abcc38]{font-size:.85em;font-style:italic;white-space:nowrap}.timeline-workout .box .workout-user-date .workout-title[data-v-96abcc38]{display:block;text-align:center;padding:0 10px}@media screen and (max-width:500px){.timeline-workout .box .workout-user-date .workout-title[data-v-96abcc38]{display:none}}.timeline-workout .box .workout-map[data-v-96abcc38]{background-color:var(--workout-no-map-bg-color);height:150px}.timeline-workout .box .workout-map .no-map[data-v-96abcc38]{line-height:150px}.timeline-workout .box .workout-map[data-v-96abcc38] .bg-map-image{height:150px}.timeline-workout .box .workout-data[data-v-96abcc38]{display:flex;padding:5px;font-size:.9em}.timeline-workout .box .workout-data .sport-img[data-v-96abcc38]{height:25px;width:25px}.timeline-workout .box .workout-data .data[data-v-96abcc38],.timeline-workout .box .workout-data .img[data-v-96abcc38]{display:flex;align-items:center}.timeline-workout .box .workout-data .data .data-values[data-v-96abcc38],.timeline-workout .box .workout-data .img .data-values[data-v-96abcc38]{display:flex;flex-wrap:wrap}.timeline-workout .box .workout-data .img[data-v-96abcc38]{justify-content:flex-end;width:10%}.timeline-workout .box .workout-data .data[data-v-96abcc38]{justify-content:center;width:22%}@media screen and (max-width:500px){.timeline-workout .box .workout-data .img[data-v-96abcc38]{justify-content:center;width:20%}.timeline-workout .box .workout-data .data[data-v-96abcc38]{justify-content:center;width:40%}.timeline-workout .box .workout-data .altitude[data-v-96abcc38],.timeline-workout .box .workout-data .elevation[data-v-96abcc38]{display:none}}.timeline-workout .box .workout-data.without-gpx .data[data-v-96abcc38],.timeline-workout .box .workout-data.without-gpx .img[data-v-96abcc38]{justify-content:center;width:33%}.timeline-workout .box .workout-data[data-v-96abcc38],.timeline-workout .box .workout-map[data-v-96abcc38]{cursor:pointer}.timeline-workout .box .no-cursor[data-v-96abcc38]{cursor:default}.timeline-workout .box .fa[data-v-96abcc38]{padding-right:10px}.no-workouts[data-v-4b4d15fb]{display:flex;justify-content:center}#timeline[data-v-35567bf2]{margin-bottom:20px}#timeline .more-workouts[data-v-35567bf2]{display:flex;justify-content:center}.calendar-workout{display:flex;padding:1px;cursor:pointer}.calendar-workout .sport-img{width:18px;height:18px}.calendar-workout sup{position:relative;top:-8px;left:-3px;width:2px}.calendar-workout sup .custom-fa-small{font-size:.7em}@media screen and (max-width:700px){.calendar-workout .sport-img{padding:3px;width:20px;height:20px}.calendar-workout sup .custom-fa-small{font-size:.6em}}.calendar-workouts-chart[data-v-52d4310a]{display:flex}.calendar-workouts-chart .workouts-chart[data-v-52d4310a]{position:relative}.calendar-workouts-chart .workouts-chart .workouts-count[data-v-52d4310a]{display:flex;justify-content:center;position:absolute;top:4px;left:6px;width:20px;font-size:1.1em;font-weight:700}@media screen and (max-width:700px){.calendar-workouts-chart .workouts-chart .workouts-count[data-v-52d4310a]{top:16px;left:6px}.calendar-workouts-chart .workouts-chart[data-v-52d4310a] .donut-chart{padding-top:12px}.calendar-workouts-chart .workouts-chart[data-v-52d4310a] .donut-chart svg g circle{stroke-width:2;stroke-opacity:.8}}.calendar-workouts-chart .workouts-pane[data-v-52d4310a]{display:flex;padding-left:40px}.calendar-workouts-chart .workouts-pane .more-workouts[data-v-52d4310a]{background:#f5f5f5;border-radius:4px;box-shadow:0 4px 8px 0 rgba(0,0,0,.2),0 6px 20px 0 rgba(0,0,0,.19);position:absolute;top:52px;left:0;min-width:60px;margin-bottom:20px;padding:10px 10px;display:flex;flex-wrap:wrap;z-index:1000}@media screen and (max-width:700px){.calendar-workouts-chart .workouts-pane .more-workouts[data-v-52d4310a]{min-width:70px}}.calendar-workouts-chart .workouts-pane .more-workouts .calendar-more[data-v-52d4310a]{position:absolute;font-size:.9em;top:5px;right:5px}.calendar-workouts .desktop-display{display:flex}.calendar-workouts .mobile-display{display:none}.calendar-workouts .workouts-display{display:flex;flex-wrap:wrap;position:relative;margin:0 10px 0 0}.calendar-workouts .donut-display{display:flex;height:34px;width:34px}@media screen and (max-width:700px){.calendar-workouts .desktop-display{display:none}.calendar-workouts .mobile-display{display:flex}}.calendar-cells{display:flex;flex-direction:column;width:100%}.calendar-cells .calendar-row{display:flex;flex-wrap:wrap;border-top:solid 1px var(--calendar-border-color)}.calendar-cells .calendar-row .calendar-cell{border-right:solid 1px var(--calendar-border-color);height:40px;flex-grow:1;flex-basis:8%;padding:5px 10px 5px 5px;width:8%;position:relative}.calendar-cells .calendar-row .calendar-cell .calendar-cell-day{position:absolute;font-size:.8em;line-height:1;top:.5em;right:.5em;font-weight:700}.calendar-cells .calendar-row .calendar-cell:last-child{border-right:0}@media screen and (max-width:700px){.calendar-cells .calendar-row .calendar-cell:last-child .calendar-workouts .more-workouts{left:-45px}}.calendar-cells .calendar-row .disabled-cell{color:var(--app-color-light)}.calendar-cells .calendar-row .week-end{background:var(--calendar-week-end-color)}.calendar-cells .calendar-row .today{background:var(--calendar-today-color)}@media screen and (max-width:700px){.calendar-cells .calendar-row:last-child .calendar-workouts .more-workouts{top:inherit;bottom:20px}}.calendar-days{display:flex;flex-direction:row;border-top:solid 1px var(--calendar-border-color)}.calendar-days .calendar-day{flex-grow:1;padding:5px;text-align:center;text-transform:uppercase;color:var(--app-color-light)}.calendar-header{display:flex;flex-direction:row}.calendar-header .calendar-arrow,.calendar-header .calendar-month{flex-grow:1;padding:10px}.calendar-header .calendar-arrow-left{text-align:left;cursor:pointer}.calendar-header .calendar-arrow-right{text-align:right;cursor:pointer}.calendar-header .calendar-month{font-weight:700;text-align:center;text-transform:uppercase}#user-calendar .calendar-card,#user-calendar .calendar-card .card-content{padding:0}.start-chart .chart-radio[data-v-d5e9b348]{display:flex;justify-content:space-between;flex-wrap:wrap;padding:10px}.start-chart .chart-radio label[data-v-d5e9b348]{font-size:.85em;font-weight:400}@media screen and (max-width:700px){.start-chart .chart-radio label[data-v-d5e9b348]{padding-bottom:10px}}.user-month-stats[data-v-1bcddc12] .card-content{padding:10px}.records-card[data-v-8d17c606]{width:100%;padding-bottom:3px}.records-card[data-v-8d17c606] .card{font-size:.9em}.records-card[data-v-8d17c606] .card .card-title{display:flex;font-size:.9em}.records-card[data-v-8d17c606] .card .card-title .sport-img{padding-right:10px;height:20px;width:20px}.records-card[data-v-8d17c606] .card .card-content{font-size:.9em;padding:10px}.records-card[data-v-8d17c606] .card .card-content .record{display:flex;align-items:center;justify-content:space-between}.records-card[data-v-8d17c606] .card .card-content .record span{padding:2px}.records-card[data-v-8d17c606] .card .card-content .record .record-type{flex-grow:1}.records-card[data-v-8d17c606] .card .card-content .record .record-value{font-weight:700;white-space:nowrap;padding-right:10px}.records-card[data-v-8d17c606] .card .card-content .record .record-date{white-space:nowrap;min-width:30%;text-align:right}@media screen and (max-width:1000px){.records-card[data-v-8d17c606] .card,.records-card[data-v-8d17c606] .card .card-title{font-size:1em}.records-card[data-v-8d17c606] .card .card-title .sport-img{height:22px;width:22px}}.user-records .no-records[data-v-f0c85cb8]{border:solid 1px var(--card-border-color);border-radius:4px;padding:10px;margin:10px}#user-stats{display:flex;flex:1 0 25%;justify-content:space-around;flex-wrap:wrap}#dashboard .dashboard-container[data-v-4c0893c1]{display:flex;flex-direction:row}#dashboard .dashboard-container .dashboard-sub-container[data-v-4c0893c1]{display:flex;flex-direction:column}#dashboard .dashboard-container .left-container[data-v-4c0893c1]{width:32%}#dashboard .dashboard-container .right-container[data-v-4c0893c1]{width:68%}#dashboard .mobile-menu[data-v-4c0893c1]{display:none}@media screen and (max-width:1000px){#dashboard[data-v-4c0893c1]{padding-bottom:60px}#dashboard .dashboard-container[data-v-4c0893c1]{display:flex;flex-direction:column}#dashboard .dashboard-container .left-container[data-v-4c0893c1],#dashboard .dashboard-container .right-container[data-v-4c0893c1]{width:100%}#dashboard .mobile-menu[data-v-4c0893c1]{display:flex}#dashboard .mobile-menu .box[data-v-4c0893c1]{display:flex;justify-content:space-between;padding:0;width:100%}#dashboard .mobile-menu .box .mobile-menu-item[data-v-4c0893c1]{display:flex;justify-content:space-around;border:none;border-radius:4px;box-shadow:none;font-size:.95em;padding:10px;width:25%}#dashboard .mobile-menu .box .mobile-menu-item .fa-trophy[data-v-4c0893c1]{color:var(--app-color)}#dashboard .mobile-menu .box .mobile-menu-item.is-selected[data-v-4c0893c1]{color:var(--mobile-menu-selected-color);background-color:var(--mobile-menu-selected-bgcolor)}#dashboard .mobile-menu .box .mobile-menu-item.is-selected .fa-trophy[data-v-4c0893c1]{color:var(--mobile-menu-selected-color)}#dashboard .is-hidden[data-v-4c0893c1]{display:none}}#error[data-v-b60bfa80]{display:flex;align-items:center;justify-content:center;height:75vh;text-align:center}#error .error-content[data-v-b60bfa80]{margin-top:50px}#error .error-content h1[data-v-b60bfa80]{font-size:6em;text-shadow:4px 4px 0 var(--app-shadow-color)}#error .error-content p[data-v-b60bfa80]{font-size:1.2em;margin:30px 0}[data-v-b3c885de]:root{--app-background-color:#fff;--app-color:#2c3e50;--app-color-light:#808b96;--app-a-color:#40578a;--app-shadow-color:#d3d3d3;--app-loading-color:#f3f3f3;--app-loading-top-color:var(--app-color);--button-hover-color:#fff;--button-cancel-bg-color:#fff;--button-cancel-color:var(--app-color);--button-confirm-bg-color:#fff;--button-confirm-color:var(--app-color);--button-danger-bg-color:#fff;--button-danger-color:#dc3545;--button-danger-hover-bg-color:#dc3545;--button-danger-hover-color:#fff;--card-border-color:#c4c7cf;--input-border-color:#9da3af;--input-bg-color:#fff;--input-error-color:#dc3545;--dropdown-hover-color:#eff0f5;--custom-checkbox-border-color:#9da3af;--custom-checkbox-checked-bg-color:#9da3af;--custom-checkbox-checked-color:#fff;--calendar-border-color:#c4c7cf;--calendar-week-end-color:#f5f5f5;--calendar-today-color:#eff1f3;--modal-background-color:rgba(0,0,0,.3);--nav-bar-background-color:#fff;--nav-bar-link-active:#485b6e;--nav-border-color:#c5ccdb;--mobile-menu-selected-color:#fff;--mobile-menu-selected-bgcolor:#9da3af;--footer-background-color:#fff;--footer-border-color:#ebeef3;--footer-color:#8b8c8c;--alert-background-color:#d6dde3;--alert-color:#3f3f3f;--info-background-color:#e5e7ea;--info-color:var(--app-color);--error-background-color:#ffd2d2;--error-color:#db1924;--success-background-color:#d9ecd9;--success-color:#306430;--disabled-background-color:#e0e0e0;--disabled-color:#a3a3a3;--disabled-sport-color:#616161;--scroll-button-bg-color:hsla(0,0%,100%,.7);--workout-trophy-color:#daa520;--workout-img-color:invert(22%) sepia(25%) saturate(646%) hue-rotate(169deg) brightness(97%) contrast(96%);--workout-no-map-bg-color:#eaeaea;--workout-no-map-color:#666;--cell-heading-bg-color:#eee;--cell-heading-color:#696969;--svg-filter:drop-shadow(10px 10px 10px var(--app-shadow-color));--password-bg-color:#d7dadf;--password-color-weak:#e46d6e;--password-color-medium:#f8bc4a;--password-color-good:#acc578;--password-color-strong:#57c255}#user-auth-form[data-v-b3c885de]{display:flex}#user-auth-form #user-form[data-v-b3c885de]{width:60%}#user-auth-form #user-form .account[data-v-b3c885de]{font-size:.9em;padding-left:10px}#user-auth-form #user-form .links[data-v-b3c885de]{font-size:.9em;font-style:italic;padding:0 10px}#user-auth-form #user-form button[data-v-b3c885de]{margin:10px;border:solid 1px var(--app-color)}#user-auth-form #user-form button[data-v-b3c885de]:disabled{border-color:var(--disabled-color)}#user-auth-form #user-form .success-message[data-v-b3c885de]{margin:10px}@media screen and (max-width:1000px){#user-auth-form[data-v-b3c885de]{margin-bottom:50px}#user-auth-form #user-form[data-v-b3c885de]{width:100%}}.user-form[data-v-b3c885de]{margin-top:200px}@media screen and (max-width:700px){.user-form[data-v-b3c885de]{margin-top:10px}}#loginOrRegister[data-v-58043acb]{display:flex}#loginOrRegister .container[data-v-58043acb]{display:flex;flex-direction:row;justify-content:space-evenly;margin-bottom:20px;width:100%}#loginOrRegister .container .container-sub[data-v-58043acb]{min-width:50%;height:100%}@media screen and (max-width:1000px){#loginOrRegister[data-v-58043acb]{height:auto}#loginOrRegister .container .container-sub[data-v-58043acb]{align-items:center}#loginOrRegister .container .container-sub .bike-img[data-v-58043acb]{max-width:60%}}@media screen and (max-width:700px){#loginOrRegister .container[data-v-58043acb]{flex-direction:column}}.alert-message[data-v-69d7e4ff]{background:var(--alert-background-color);color:var(--alert-color);border-radius:4px;margin:10px;padding:10px}.custom-textarea[data-v-8cf5cc64]{display:flex;flex-direction:column}.custom-textarea .remaining-chars[data-v-8cf5cc64]{font-size:.8em;font-style:italic}.strong[data-v-f46ff1d6]{font-weight:700}.dropdown-list[data-v-2d3b4eac]{list-style-type:none;background-color:#fff;padding:0;margin-top:5px;margin-left:-20px!important;position:absolute;text-align:left;border:1px solid #d3d3d3;box-shadow:2px 2px 5px #d3d3d3;width:auto!important}.dropdown-list li[data-v-2d3b4eac]{padding-top:5px;padding-right:5px}.dropdown-list li[data-v-2d3b4eac]:last-child{padding-bottom:5px}.dropdown-item[data-v-2d3b4eac]{cursor:default}.dropdown-item.selected[data-v-2d3b4eac]{font-weight:700}.dropdown-item.selected[data-v-2d3b4eac]:after{content:" ✔"}.error-message[data-v-2659a79a]{background:var(--error-background-color);color:var(--error-color);border-radius:4px;margin:10px;padding:10px}.loader[data-v-4c9921ee]{animation:spin-4c9921ee 2s linear infinite;border:14px solid var(--app-loading-color);border-top:14px solid var(--app-loading-top-color);border-radius:50%;height:60px;margin-left:41%;width:60px}@keyframes spin-4c9921ee{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}#modal[data-v-e8fcfaba]{position:fixed;top:0;bottom:0;left:0;right:0;background-color:var(--modal-background-color);padding:10px;z-index:1240}#modal .custom-modal[data-v-e8fcfaba]{background-color:var(--app-background-color);border-radius:4px;max-width:500px;margin:25% auto;z-index:1250}@media screen and (max-width:1000px){#modal .custom-modal[data-v-e8fcfaba]{margin:15% auto;width:100%}}@media screen and (max-width:700px){#modal .custom-modal[data-v-e8fcfaba]{margin:50% 0;width:100%}}#modal .custom-modal[data-v-e8fcfaba] .card{border:0;margin:0}#modal .custom-modal[data-v-e8fcfaba] .card .card-content{display:flex;flex-direction:column}#modal .custom-modal[data-v-e8fcfaba] .card .card-content .modal-message{padding:10px}#modal .custom-modal[data-v-e8fcfaba] .card .card-content .modal-message span{font-weight:700}#modal .custom-modal[data-v-e8fcfaba] .card .card-content .modal-buttons{display:flex;justify-content:flex-end}#modal .custom-modal[data-v-e8fcfaba] .card .card-content .modal-buttons button{margin:5px} \ No newline at end of file diff --git a/fittrackee/dist/static/js/app.b793fcb5.js b/fittrackee/dist/static/js/app.b793fcb5.js new file mode 100644 index 00000000..6e9c8f1a --- /dev/null +++ b/fittrackee/dist/static/js/app.b793fcb5.js @@ -0,0 +1,2 @@ +(function(){var e={5167:function(e,t,n){"use strict";var r=n(594),a=n(8566),o=n(2894),s=n(5801),i=n(2024);const l=r.Z.create({baseURL:(0,i.k)()});l.interceptors.request.use((e=>{const t=new AbortController;e.signal=t.signal;const n=(0,a.a)(e);a.j.set(n,t);const r=o.Z.getters[s.YN.GETTERS.AUTH_TOKEN];if(r){const t=`Bearer ${r}`;e.headers&&e.headers.Authorization!==t&&(e.headers.Authorization=`Bearer ${r}`)}return e}),(e=>Promise.reject(e))),l.interceptors.response.use((e=>((0,a.a)(e.config),e)),(e=>("canceled"!==e.message&&(0,a.a)(e.response.config),Promise.reject(e)))),t["Z"]=l},8566:function(e,t,n){"use strict";n.d(t,{a:function(){return o},j:function(){return r}});const r=new Map,a=e=>{const{method:t,url:n,params:r={},data:a={}}=e;return[t,n,JSON.stringify(r),JSON.stringify(a)].join("")},o=e=>{const t=a(e);if(r.has(t)){const e=r.get(t)||{};e?.abort(),r.delete(t)}return t}},2540:function(e,t,n){"use strict";var r=n(9150);const a=["nb","nl"];function o(){const e=n(4612),t={};return e.keys().forEach((n=>{const r=n.match(/([A-Za-z0-9-_]+)\./i);if(r&&r.length>1&&!a.includes(r[1])){const a=r[1];t[a]=e(n).default}})),t}t["Z"]=(0,r.o)({legacy:!1,locale:"en",fallbackLocale:"en",globalInjection:!0,messages:o()})},9923:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return S}});var r={CONTACT_ADMIN:e=>{const{normalize:t}=e;return t(["Kontaktiere den Administrator"])},FITTRACKEE_DESCRIPTION:e=>{const{normalize:t}=e;return t(["FitTrackee ist ein selbst-gehosteter Outdoor-Aktivitäts-Tracker."])},FITTRACKEE_LICENSE:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["unter ",n(r(0))," Lizenz "])},SOURCE_CODE:e=>{const{normalize:t}=e;return t(["Quellcode"])}},a={ACTION:e=>{const{normalize:t}=e;return t(["Aktion"])},ACTIVATE_USER_ACCOUNT:e=>{const{normalize:t}=e;return t(["Aktiviere Konto"])},ACTIVE:e=>{const{normalize:t}=e;return t(["Aktiv"])},ADMIN_RIGHTS_DELETE_USER_ACCOUNT:e=>{const{normalize:t}=e;return t(["Hinzufügen/Entfernen von Administratorrechten, Lösche Nutzerkonto."])},ADMIN:e=>{const{normalize:t}=e;return t(["Admin"])},ADMINISTRATION:e=>{const{normalize:t}=e;return t(["Administration"])},APPLICATION:e=>{const{normalize:t}=e;return t(["Anwendung"])},APP_CONFIG:{ADMIN_CONTACT:e=>{const{normalize:t}=e;return t(["Kontakt-E-Mail des Administrators"])},MAX_USERS_LABEL:e=>{const{normalize:t}=e;return t(["Max. Anzahl aktiver Nutzer"])},MAX_USERS_HELP:e=>{const{normalize:t}=e;return t(["Wenn 0, gibt es keine Registrierungslimitierung.."])},MAX_FILES_IN_ZIP_LABEL:e=>{const{normalize:t}=e;return t(["Max. Dateianzahl im zip Archiv"])},NO_CONTACT_EMAIL:e=>{const{normalize:t}=e;return t(["keine Kontakt-E-Mail"])},SINGLE_UPLOAD_MAX_SIZE_LABEL:e=>{const{normalize:t}=e;return t(["Max. Größe der hochgeladenen Dateien (in Mb)"])},TITLE:e=>{const{normalize:t}=e;return t(["Anwendungskonfiguration"])},ZIP_UPLOAD_MAX_SIZE_LABEL:e=>{const{normalize:t}=e;return t(["Max. Größe des zip Archives (in Mb)"])}},BACK_TO_ADMIN:e=>{const{normalize:t}=e;return t(["Zurück zu Admin"])},CONFIRM_USER_ACCOUNT_DELETION:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Möchtest du wirklich das ",n(r(0))," Konto löschen? Alle Daten werden gelöscht. Dieser Vorgang kann nicht rückgängig gemacht werden."])},CONFIRM_USER_PASSWORD_RESET:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Möchtest du wirklich das ",n(r(0))," Passwort zurücksetzen?"])},CURRENT_EMAIL:e=>{const{normalize:t}=e;return t(["Aktuelle E-Mail"])},DELETE_USER:e=>{const{normalize:t}=e;return t(["Lösche Nutzer"])},EMAIL_SENDING_DISABLED:e=>{const{normalize:t}=e;return t(["E-Mail-Versand ist deaktiviert."])},ENABLE_DISABLE_SPORTS:e=>{const{normalize:t}=e;return t(["Aktivieren/Deaktivieren von Sportarten."])},NEW_EMAIL:e=>{const{normalize:t}=e;return t(["Neue E-Mail"])},PASSWORD_RESET_SUCCESSFUL:e=>{const{normalize:t}=e;return t(["Das wasswort wurde zurückgesetzt."])},REGISTRATION_DISABLED:e=>{const{normalize:t}=e;return t(["Registrierung ist derzeit deaktiviert."])},REGISTRATION_ENABLED:e=>{const{normalize:t}=e;return t(["Registrierung ist derzeit aktiviert."])},RESET_USER_PASSWORD:e=>{const{normalize:t}=e;return t(["Passwort zurücksetzen"])},SPORTS:{TABLE:{ACTIVE:e=>{const{normalize:t}=e;return t(["Aktiv"])},HAS_WORKOUTS:e=>{const{normalize:t}=e;return t(["Trainings existieren"])},IMAGE:e=>{const{normalize:t}=e;return t(["Bild"])},LABEL:e=>{const{normalize:t}=e;return t(["Titel"])}},TITLE:e=>{const{normalize:t}=e;return t(["Sportarten Administration"])}},UPDATE_APPLICATION_DESCRIPTION:e=>{const{normalize:t}=e;return t(["Aktualisiere Anwemdungskonfiguration (maximale Anzahl an registrierten Nutzern, maximale Dateigröße)."])},UPDATE_USER_EMAIL:e=>{const{normalize:t}=e;return t(["Aktualisiere E-Mail"])},USER:e=>{const{normalize:t}=e;return t(["Nutzer"])},USER_EMAIL_UPDATE_SUCCESSFUL:e=>{const{normalize:t}=e;return t(["Die E-Mail Adresse wurde aktualisiert."])},USERS:{TABLE:{ADD_ADMIN_RIGHTS:e=>{const{normalize:t}=e;return t(["Administratorrechte hinzufügen"])},REMOVE_ADMIN_RIGHTS:e=>{const{normalize:t}=e;return t(["Administratorrechte entfernen"])}},SELECTS:{ORDER_BY:{ADMIN:e=>{const{normalize:t}=e;return t(["Adminstatus"])},CREATED_AT:e=>{const{normalize:t}=e;return t(["Registrierungsdatum"])},IS_ACTIVE:e=>{const{normalize:t}=e;return t(["Accountstatus"])},USERNAME:e=>{const{normalize:t}=e;return t(["Nutzername"])},WORKOUTS_COUNT:e=>{const{normalize:t}=e;return t(["Trainingsanzahl"])}}}}},o={ERROR:{UNKNOWN:e=>{const{normalize:t}=e;return t(["Fehler. Bitte versuche es erneut oder kontaktiere den Administrator."])},"at least one file in zip archive exceeds size limit, please check the archive":e=>{const{normalize:t}=e;return t(["Mindestens eine Datei im ZIP-Archiv überschreitet das Größenlimit, bitte überprüfe das Archiv."])},"email: valid email must be provided":e=>{const{normalize:t}=e;return t(["E-Mail: Eine gültige E-Mail muss angegeben werden."])},"error during gpx processing":e=>{const{normalize:t}=e;return t(["Fehler bei der GPX-Verarbeitung."])},"error during gpx file parsing":e=>{const{normalize:t}=e;return t(["Fehler beim Einlesen der GPX-Datei"])},"error on getting configuration":e=>{const{normalize:t}=e;return t(["Fehler beim Abrufen der Konfiguration."])},"error when updating configuration":e=>{const{normalize:t}=e;return t(["Fehler beim Aktualisieren der Konfiguration"])},"error, please try again or contact the administrator":e=>{const{normalize:t}=e;return t(["Fehler. Bitte versuche es erneut oder kontaktiere den Administrator."])},"error, registration is disabled":e=>{const{normalize:t}=e;return t(["Fehler. Die Registrierung ist deaktiviert."])},"file extension not allowed":e=>{const{normalize:t}=e;return t(["Dateierweiterung ist nicht erlaubt."])},"file size is greater than the allowed size":e=>{const{normalize:t}=e;return t(["Die Datei ist größer als erlaubt."])},"invalid credentials":e=>{const{normalize:t}=e;return t(["Ungültige Anmeldedaten."])},"invalid payload":e=>{const{normalize:t}=e;return t(["Die bereitgestellten Daten sind ungültig."])},"invalid token, please log in again":e=>{const{normalize:t}=e;return t(["Ungültiges Token, bitte erneut anmelden."])},"invalid token, please request a new token":e=>{const{normalize:t}=e;return t(["Ungültiges Token, bitte erneut anmelden."])},"Network Error":e=>{const{normalize:t}=e;return t(["Netzwerkfehler."])},"new email must be different than curent email":e=>{const{normalize:t}=e;return t(["Die neue E-Mail muss sich von der aktuellen E-Mail unterscheiden"])},"no file part":e=>{const{normalize:t}=e;return t(["Keine Datei angegeben."])},"no selected file":e=>{const{normalize:t}=e;return t(["Keine Datei ausgewählt."])},"the number of files in the archive exceeds the limit":e=>{const{normalize:t}=e;return t(["Die Anzahl der Dateien im Archiv überschreitet die Begrenzung."])},"password: password and password confirmation do not match":e=>{const{normalize:t}=e;return t(["Passwort: Passwort und Passwortbestätigung stimmen nicht überein."])},"provide a valid auth token":e=>{const{normalize:t}=e;return t(["Gebe ein gültiges Authentifizierungstoken an."])},"sorry, that username is already taken":e=>{const{normalize:t}=e;return t(["Es tut mir leid, der Benutzername ist schon vergeben."])},"sport does not exist":e=>{const{normalize:t}=e;return t(["Sportart existiert nicht."])},"signature expired, please log in again":e=>{const{normalize:t}=e;return t(["Die Signatur ist abgelaufen. Bitte melde dich erneut an."])},"successfully registered":e=>{const{normalize:t}=e;return t(["Registrierung erfolgreich."])},"user does not exist":e=>{const{normalize:t}=e;return t(["Der Nutzer existiert nicht."])},"valid email must be provided for admin contact":e=>{const{normalize:t}=e;return t(["Um den Administrator zu kontaktieren, muss eine gültige E-Mail-Adresse angegeben werden"])},"you can not delete your account, no other user has admin rights":e=>{const{normalize:t}=e;return t(["Du kannst Dein Konto nicht löschen, da kein anderer Nutzer hat Administratorrechte besitzt."])},"you do not have permissions":e=>{const{normalize:t}=e;return t(["Du hast keine Berechtigung."])}},PAGINATION:{PREVIOUS:e=>{const{normalize:t}=e;return t(["Vorhergehende"])},NEXT:e=>{const{normalize:t}=e;return t(["Nächste"])}}},s={"ACCOUNT-CONFIRMATION-RESEND":e=>{const{normalize:t}=e;return t(["Bestätigungs-E-Mail erneut senden"])},AUTHORIZE:e=>{const{normalize:t}=e;return t(["Autorisieren"])},BACK:e=>{const{normalize:t}=e;return t(["Zurück"])},CANCEL:e=>{const{normalize:t}=e;return t(["Abbrechen"])},CLEAR_FILTER:e=>{const{normalize:t}=e;return t(["Filter löschen"])},DELETE_MY_ACCOUNT:e=>{const{normalize:t}=e;return t(["Mein Konto löschen"])},DISABLE:e=>{const{normalize:t}=e;return t(["Deaktivieren"])},EDIT:e=>{const{normalize:t}=e;return t(["Bearbeiten"])},ENABLE:e=>{const{normalize:t}=e;return t(["Aktivieren"])},FILTER:e=>{const{normalize:t}=e;return t(["Filter"])},LOGIN:e=>{const{normalize:t}=e;return t(["Anmelden"])},NO:e=>{const{normalize:t}=e;return t(["Nein"])},REGISTER:e=>{const{normalize:t}=e;return t(["Registrieren"])},RESET:e=>{const{normalize:t}=e;return t(["Zurücksetzen"])},SUBMIT:e=>{const{normalize:t}=e;return t(["Speichern"])},YES:e=>{const{normalize:t}=e;return t(["Ja"])}},i={ABOUT:e=>{const{normalize:t}=e;return t(["Über"])},CONFIRMATION:e=>{const{normalize:t}=e;return t(["Bestätigung"])},CONTACT:e=>{const{normalize:t}=e;return t(["Kontakt"])},DAY:e=>{const{normalize:t,plural:n}=e;return n([t(["Tag"]),t(["Tage"])])},DISPLAYED:e=>{const{normalize:t}=e;return t(["Angezeigt"])},DOCUMENTATION:e=>{const{normalize:t}=e;return t(["Dokumentation (en)"])},HERE:e=>{const{normalize:t}=e;return t(["hier"])},HIDDEN:e=>{const{normalize:t}=e;return t(["Versteckt"])},HOME:e=>{const{normalize:t}=e;return t(["Startseite"])},SELECTS:{ORDER_BY:{LABEL:e=>{const{normalize:t}=e;return t(["sortiert nach"])}},ORDER:{LABEL:e=>{const{normalize:t}=e;return t(["sortieren"])},ASC:e=>{const{normalize:t}=e;return t(["aufsteigend"])},DESC:e=>{const{normalize:t}=e;return t(["absteigend"])}},PER_PAGE:{LABEL:e=>{const{normalize:t}=e;return t(["pro Seite"])}}},TOTAL:e=>{const{normalize:t}=e;return t(["Insgesamt"])}},l={DASHBOARD:e=>{const{normalize:t}=e;return t(["Dashboard"])},THIS_MONTH:e=>{const{normalize:t}=e;return t(["Dieser Monat"])}},c={UNKNOWN:e=>{const{normalize:t}=e;return t(["Fehler. Bitte versuche es erneut oder kontaktiere den Administrator."])},APP_ERROR:e=>{const{normalize:t}=e;return t(["Bei der Anwendung scheinen einige Probleme aufgetreten zu sein.
Bitte versuche es später noch einmal oder kontaktiere den Administrator."])},NOT_FOUND:{PAGE:e=>{const{normalize:t}=e;return t(["Seite nicht gefunden"])},WORKOUT:e=>{const{normalize:t}=e;return t(["Training nicht gefunden"])}},SOMETHING_WRONG:e=>{const{normalize:t}=e;return t(["Etwas lief schief"])}},u={ADD_A_NEW_APP:e=>{const{normalize:t}=e;return t(["Eine neue OAuth2-Anwendung hinzufügen"])},APP:{CLIENT_ID:e=>{const{normalize:t}=e;return t(["ID"])},CLIENT_SECRET:e=>{const{normalize:t}=e;return t(["Geheimnis"])},DESCRIPTION:e=>{const{normalize:t}=e;return t(["Anwendungsbeschreibung"])},ISSUE_AT:e=>{const{normalize:t}=e;return t(["Erstellt am"])},NAME:e=>{const{normalize:t}=e;return t(["Anwendungsname"])},REDIRECT_URL:e=>{const{normalize:t}=e;return t(["Weiterleitungs-URL"])},SCOPE:{LABEL:e=>{const{normalize:t}=e;return t(["Geltungsbereich"])},"profile:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["erlaubt Schreibzugriff auf auth-Endpunkte"])},"profile:read_DESCRIPTION":e=>{const{normalize:t}=e;return t(["erlaubt Lesezugriff auf auth-Endpunkte"])},"users:read_DESCRIPTION":e=>{const{normalize:t}=e;return t(["erlaubt Lesezugriff auf users-Endpunkte"])},"users:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["erlaubt Schreibzugriff auf users-Endpunkte"])},"workouts:read_DESCRIPTION":e=>{const{normalize:t}=e;return t(["erlaubt Lesezugriff auf workouts-Endpunkte"])},"workouts:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["erlaubt Schreibzugriff auf workouts-Endpunkte"])},"application:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["erlaubt Schreibzugriff auf die Anwendungskonfiguration"])}},URL:e=>{const{normalize:t}=e;return t(["Anwendungs-URL"])}},APP_CREATED_SUCCESSFULLY:e=>{const{normalize:t}=e;return t(["Anwendung erfolgreich erstellt. Stelle sicher, dass du das Geheimnis kopierst, du kannst es nicht erneut anzeigen."])},APP_DELETION_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Bist sicher, dass du diese App löschen willst?"])},APP_REQUESTING_ACCESS:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Die Anwendung ",n(r(0))," fragt an:"])},APPS_LIST:e=>{const{normalize:t}=e;return t(["OAuth2-Anwendungen"])},AUTHORIZE_APP:e=>{const{normalize:t,interpolate:n,list:r}=e;return t([n(r(0))," den Zugriff auf deinen Account erlauben?"])},COPY_TO_CLIPBOARD:e=>{const{normalize:t}=e;return t(["in Zwischenablage kopieren"])},DELETE_APP:e=>{const{normalize:t}=e;return t(["Anwendung löschen"])},NEW_APP:e=>{const{normalize:t}=e;return t(["Anwendung hinzufügen"])},NO_APP:e=>{const{normalize:t}=e;return t(["Anwendung wurde nicht gefunden!"])},NO_APPS:e=>{const{normalize:t}=e;return t(["keine Anwendungen"])},NO_DESCRIPTION:e=>{const{normalize:t}=e;return t(["keine Beschreibung"])},REVOKE_ALL_TOKENS:e=>{const{normalize:t}=e;return t(["Alle Tokens zurückrufen"])},TOKENS_REVOCATION_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Bist du sicher, dass du alle Tokens zurückrufen möchtest?"])},TOKENS_REVOKED:e=>{const{normalize:t}=e;return t(["Alle vorhandenen und vergebenen Tokens wurde zurückgerufen."])}},d={"Cycling (Sport)":{LABEL:e=>{const{normalize:t}=e;return t(["Radfahren (Sport)"])}},"Cycling (Transport)":{LABEL:e=>{const{normalize:t}=e;return t(["Radfahren (Pendeln)"])}},"Cycling (Virtual)":{LABEL:e=>{const{normalize:t}=e;return t(["Radfahren (Virtuell)"])}},Hiking:{LABEL:e=>{const{normalize:t}=e;return t(["Wandern"])}},"Mountain Biking":{LABEL:e=>{const{normalize:t}=e;return t(["Mountainbiken"])}},"Mountain Biking (Electric)":{LABEL:e=>{const{normalize:t}=e;return t(["Mountainbiken (elektrisch)"])}},Rowing:{LABEL:e=>{const{normalize:t}=e;return t(["Rudern"])}},Running:{LABEL:e=>{const{normalize:t}=e;return t(["Laufen"])}},"Skiing (Alpine)":{LABEL:e=>{const{normalize:t}=e;return t(["Skifahren (Alpin)"])}},"Skiing (Cross Country)":{LABEL:e=>{const{normalize:t}=e;return t(["Skifahren (Langlauf)"])}},Snowshoes:{LABEL:e=>{const{normalize:t}=e;return t(["Schneeschuhe"])}},Trail:{LABEL:e=>{const{normalize:t}=e;return t(["Trail"])}},Walking:{LABEL:e=>{const{normalize:t}=e;return t(["Gehen"])}}},m={STATISTICS:e=>{const{normalize:t}=e;return t(["Statistik"])},TIME_FRAMES:{week:e=>{const{normalize:t}=e;return t(["Woche"])},month:e=>{const{normalize:t}=e;return t(["Monat"])},year:e=>{const{normalize:t}=e;return t(["Jahr"])}}},_={ACCOUNT_CONFIRMATION_NOT_RECEIVED:e=>{const{normalize:t}=e;return t(["Hast du keine Anweisungen erhalten?"])},ACCOUNT_CONFIRMATION_SENT:e=>{const{normalize:t}=e;return t(["Prüfe deine E-Mail. Eine neue Bestätigungs-E-Mail wurde an die angegebene Adresse geschickt."])},ADMIN:e=>{const{normalize:t}=e;return t(["Admin"])},ALREADY_HAVE_ACCOUNT:e=>{const{normalize:t}=e;return t(["Hast du bereits ein Konto?"])},CONFIRM_ACCOUNT_DELETION:e=>{const{normalize:t}=e;return t(["Möchtest du dein Konto wirklich löschen? Alle Daten werden gelöscht. Dieser Vorgang kann nicht rückgängig gemacht werden"])},CURRENT_PASSWORD:e=>{const{normalize:t}=e;return t(["Aktuelles Passwort"])},EMAIL:e=>{const{normalize:t}=e;return t(["E-Mail"])},EMAIL_INFO:e=>{const{normalize:t}=e;return t(["Gebe eine gültige E-Mail-Adresse an."])},ENTER_PASSWORD:e=>{const{normalize:t}=e;return t(["Gebe ein Passwort ein"])},FILTER_ON_USERNAME:e=>{const{normalize:t}=e;return t(["Nach Benutzernamen filtern"])},HIDE_PASSWORD:e=>{const{normalize:t}=e;return t(["Passwort verbergen"])},INVALID_TOKEN:e=>{const{normalize:t}=e;return t(["Ungültiges Token, bitte fordere ein neues Passworts an."])},LANGUAGE:e=>{const{normalize:t}=e;return t(["Sprache"])},LOG_IN:e=>{const{normalize:t}=e;return t(["Anmelden"])},LOGIN:e=>{const{normalize:t}=e;return t(["Anmeldung"])},LOGOUT:e=>{const{normalize:t}=e;return t(["Abmelden"])},NEW_PASSWORD:e=>{const{normalize:t}=e;return t(["Neues Passwort"])},NO_USERS_FOUND:e=>{const{normalize:t}=e;return t(["Keine Nutzer gefunden."])},PASSWORD:e=>{const{normalize:t}=e;return t(["Passwort"])},PASSWORD_INFO:e=>{const{normalize:t}=e;return t(["Mindestens 8 Zeichen sind erforderlich."])},PASSWORD_FORGOTTEN:e=>{const{normalize:t}=e;return t(["Passwort vergessen?"])},PASSWORD_RESET:e=>{const{normalize:t}=e;return t(["Passwort zurücksetzen"])},PASSWORD_SENT_EMAIL_TEXT:e=>{const{normalize:t}=e;return t(["Prüfe Deine E-Mail. Wenn Deine Adresse in der Datenbank enthalten ist, wirst du eine E-Mail mit einem Link erhalten um Dein Passwort zurückzusetzen."])},PASSWORD_STRENGTH:{WEAK:e=>{const{normalize:t}=e;return t(["schwach"])},AVERAGE:e=>{const{normalize:t}=e;return t(["mittel"])},GOOD:e=>{const{normalize:t}=e;return t(["gut"])},STRONG:e=>{const{normalize:t}=e;return t(["start"])},LABEL:e=>{const{normalize:t}=e;return t(["Passwortstärke"])},SUGGESTIONS:{l33t:e=>{const{normalize:t}=e;return t(["Vermeide vorhersehbare Buchstabenersetzungen wie ","@"," für a."])},reverseWords:e=>{const{normalize:t}=e;return t(["Vermeide umgekehrte Schreibweisen gebräuchlicher Wörter."])},allUppercase:e=>{const{normalize:t}=e;return t(["Schreibe einige, aber nicht alle Buchstaben groß."])},capitalization:e=>{const{normalize:t}=e;return t(["Schreibe mehr als nur den ersten Buchstaben groß."])},dates:e=>{const{normalize:t}=e;return t(["Vermeide Daten und Jahreszahlen, die mit Dir in Verbindung gebracht werden."])},recentYears:e=>{const{normalize:t}=e;return t(["Vermeide Angabe von letzten Jahreszahlen."])},associatedYears:e=>{const{normalize:t}=e;return t(["Vermeide Jahreszahlen, die mit Dir in Verbindung gebracht werden."])},sequences:e=>{const{normalize:t}=e;return t(["Vermeide gebräuchliche Zeichenfolgen."])},repeated:e=>{const{normalize:t}=e;return t(["Vermeide wiederholungen von Wörtern und Zeichen."])},longerKeyboardPattern:e=>{const{normalize:t}=e;return t(["Verwende längere Tastaturmuster und ändere mehrmals die Schreibrichtung."])},anotherWord:e=>{const{normalize:t}=e;return t(["Füge weitere weniger gebräuchliche Wörter hinzu."])},useWords:e=>{const{normalize:t}=e;return t(["Verwenden Sie mehrere Wörter, aber vermeide gebräuchliche Ausdrücke."])},noNeed:e=>{const{normalize:t}=e;return t(["Du kannst sichere Passwörter erstellen, ohne Symbole, Zahlen oder Großbuchstaben zu verwenden."])},pwned:e=>{const{normalize:t}=e;return t(["Wenn Sie dieses Passwort auch anderweitig verwenden, sollten Sie es ändern."])}}},PASSWORD_UPDATED:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Dein Passwort wurde aktualisiert. Klicke ",n(r(0))," um dich anzumelden."])},PROFILE:{ACCOUNT_EDITION:e=>{const{normalize:t}=e;return t(["Kontoausgabe"])},ASCENT_DATA:e=>{const{normalize:t}=e;return t(["Anstiegs-bezogene Daten (Aufnahmen, gesamt)"])},BACK_TO_PROFILE:e=>{const{normalize:t}=e;return t(["Zurück zum Profil"])},BIO:e=>{const{normalize:t}=e;return t(["Biographie"])},BIRTH_DATE:e=>{const{normalize:t}=e;return t(["Geburtsdatum"])},DATE_FORMAT:e=>{const{normalize:t}=e;return t(["Datumsanzeigeformat"])},EDIT:e=>{const{normalize:t}=e;return t(["Profil bearbeiten"])},EDIT_PREFERENCES:e=>{const{normalize:t}=e;return t(["Einstellungen ändern"])},EDIT_SPORTS_PREFERENCES:e=>{const{normalize:t}=e;return t(["Einstellungen für Sportarten ändern"])},ERRORED_EMAIL_UPDATE:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Bitte ",n(r(0))," um Deine E-Mail Adresse nochmals zu ändern oder kontaktiere den Administrator"])},FIRST_NAME:e=>{const{normalize:t}=e;return t(["Vorname"])},FIRST_DAY_OF_WEEK:e=>{const{normalize:t}=e;return t(["Erster Tag der Woche"])},LANGUAGE:e=>{const{normalize:t}=e;return t(["Sprache"])},LAST_NAME:e=>{const{normalize:t}=e;return t(["Nachname"])},LOCATION:e=>{const{normalize:t}=e;return t(["Ort"])},MONDAY:e=>{const{normalize:t}=e;return t(["Montag"])},PICTURE:e=>{const{normalize:t}=e;return t(["Bild"])},PICTURE_EDITION:e=>{const{normalize:t}=e;return t(["Bildausgabe"])},PICTURE_UPDATE:e=>{const{normalize:t}=e;return t(["Bild aktualisieren"])},PICTURE_REMOVE:e=>{const{normalize:t}=e;return t(["Bild entfernen"])},PREFERENCES_EDITION:e=>{const{normalize:t}=e;return t(["Einstellungsausgabe"])},PROFILE_EDITION:e=>{const{normalize:t}=e;return t(["Profil-Ausgabe"])},REGISTRATION_DATE:e=>{const{normalize:t}=e;return t(["Registrierungsdatum"])},SPORTS_EDITION:e=>{const{normalize:t}=e;return t(["Sportarten-Einstellungsausgabe"])},SUNDAY:e=>{const{normalize:t}=e;return t(["Sontag"])},TABS:{ACCOUNT:e=>{const{normalize:t}=e;return t(["Konto"])},APPS:e=>{const{normalize:t}=e;return t(["Anwendungen"])},PICTURE:e=>{const{normalize:t}=e;return t(["Bild"])},PREFERENCES:e=>{const{normalize:t}=e;return t(["Einstellungen"])},PROFILE:e=>{const{normalize:t}=e;return t(["Profil"])},SPORTS:e=>{const{normalize:t}=e;return t(["Sportarten"])}},SPORT:{ACTION:e=>{const{normalize:t}=e;return t(["Aktion"])},COLOR:e=>{const{normalize:t}=e;return t(["Farbe"])},DISABLED_BY_ADMIN:e=>{const{normalize:t}=e;return t(["vom Admin deaktiviert"])},IS_ACTIVE:e=>{const{normalize:t}=e;return t(["aktiv"])},LABEL:e=>{const{normalize:t}=e;return t(["Titel"])},STOPPED_SPEED_THRESHOLD:e=>{const{normalize:t}=e;return t(["Geschwindigkeitsschwellenwert für Stopp"])}},SUCCESSFUL_EMAIL_UPDATE:e=>{const{normalize:t}=e;return t(["Dein Konto wurde erfolgreich aktualisiert. Bitte prüfe Deine E-Mail um die neue E-Mail Adresse zu bestätigen."])},SUCCESSFUL_REGISTRATION:e=>{const{normalize:t}=e;return t(["Dein Konto wurde erfolgreich erstellt."])},SUCCESSFUL_REGISTRATION_WITH_EMAIL:e=>{const{normalize:t}=e;return t(["Ein Aktivierungslink für Dein Konto wurde an die angegebene E-Mail Adresse geschickt."])},SUCCESSFUL_UPDATE:e=>{const{normalize:t}=e;return t(["Dein Konto wurde erfolgreich aktualisiert."])},UNITS:{LABEL:e=>{const{normalize:t}=e;return t(["Einheiten für die Distanz"])},IMPERIAL:e=>{const{normalize:t}=e;return t(["Imperiales System (ft, mi)"])},METRIC:e=>{const{normalize:t}=e;return t(["Metrisches System (m, km)"])}},TIMEZONE:e=>{const{normalize:t}=e;return t(["Zeitzone"])}},REGISTER:e=>{const{normalize:t}=e;return t(["Registrieren"])},RESENT_ACCOUNT_CONFIRMATION:e=>{const{normalize:t}=e;return t(["E-Mail zur Kontobestätigung erneut senden"])},REGISTER_DISABLED:e=>{const{normalize:t}=e;return t(["Entschuldigung, die Registrierung ist deaktiviert."])},RESET_PASSWORD:e=>{const{normalize:t}=e;return t(["Passwort zurücksetzen"])},SHOW_PASSWORD:e=>{const{normalize:t}=e;return t(["Passwort anzeigen"])},THIS_USER_ACCOUNT_IS_INACTIVE:e=>{const{normalize:t}=e;return t(["Dieser Account ist inaktiv."])},USER_PICTURE:e=>{const{normalize:t}=e;return t(["Benutzerbild"])},USERNAME:e=>{const{normalize:t}=e;return t(["Nutzername"])},USERNAME_INFO:e=>{const{normalize:t}=e;return t(["3 bis 30 Zeichen sind erforderlich, nur alphanumerische Zeichen und der Unterstrich _ sind erlaubt."])}},E={ADD_WORKOUT:e=>{const{normalize:t}=e;return t(["Training hinzufügen"])},ANALYSIS:e=>{const{normalize:t}=e;return t(["Analyse"])},ASCENT:e=>{const{normalize:t}=e;return t(["Aufstieg"])},AVE_SPEED:e=>{const{normalize:t}=e;return t(["Durchschn. Geschwindigkeit"])},AVERAGE_SPEED:e=>{const{normalize:t}=e;return t(["Durchschnittsgeschwindigkeit"])},BACK_TO_WORKOUT:e=>{const{normalize:t}=e;return t(["zurück zum Training"])},DATE:e=>{const{normalize:t}=e;return t(["Datum"])},DESCENT:e=>{const{normalize:t}=e;return t(["Abstieg"])},DISPLAY_FILTERS:e=>{const{normalize:t}=e;return t(["zeige Filter"])},DISTANCE:e=>{const{normalize:t}=e;return t(["Entfernung"])},DURATION:e=>{const{normalize:t}=e;return t(["Dauer"])},EDIT_WORKOUT:e=>{const{normalize:t}=e;return t(["Training bearbeiten"])},ELEVATION:e=>{const{normalize:t}=e;return t(["Höhe"])},END:e=>{const{normalize:t}=e;return t(["Ende"])},FROM:e=>{const{normalize:t}=e;return t(["Von"])},GPX_FILE:e=>{const{normalize:t}=e;return t([".gpx Datei"])},HIDE_FILTERS:e=>{const{normalize:t}=e;return t(["verberge Filter"])},LATEST_WORKOUTS:e=>{const{normalize:t}=e;return t(["Letzte Trainings"])},LOAD_MORE_WORKOUT:e=>{const{normalize:t}=e;return t(["Lade mehr Trainings"])},MAX_ALTITUDE:e=>{const{normalize:t}=e;return t(["maximale Höhe"])},MAX_FILES:e=>{const{normalize:t}=e;return t(["Maximale Dateianzahl"])},MAX_SIZE:e=>{const{normalize:t}=e;return t(["Maximalgröße"])},MAX_SPEED:e=>{const{normalize:t}=e;return t(["Max. Geschwindigkeit"])},MIN_ALTITUDE:e=>{const{normalize:t}=e;return t(["minimale Höhe"])},NEXT_SEGMENT:e=>{const{normalize:t}=e;return t(["Nächstes Segment"])},NEXT_WORKOUT:e=>{const{normalize:t}=e;return t(["Nächstes Training"])},NO_DATA_CLEANING:e=>{const{normalize:t}=e;return t(["Daten aus gpx, ohne Bereinigung"])},NO_FILE_PROVIDED:e=>{const{normalize:t}=e;return t(["Keine Datei angegeben"])},NO_FOLDER:e=>{const{normalize:t}=e;return t(["enthält keinen Ordner"])},NO_MAP:e=>{const{normalize:t}=e;return t(["Keine Karte"])},NO_NEXT_SEGMENT:e=>{const{normalize:t}=e;return t(["Kein nächstes Segment"])},NO_NEXT_WORKOUT:e=>{const{normalize:t}=e;return t(["Kein nächstes Training"])},NO_NOTES:e=>{const{normalize:t}=e;return t(["Keine Anmerkungen"])},NO_PREVIOUS_SEGMENT:e=>{const{normalize:t}=e;return t(["Kein vorheriges Segment"])},NO_PREVIOUS_WORKOUT:e=>{const{normalize:t}=e;return t(["Kein vorheriges Training"])},NO_RECORDS:e=>{const{normalize:t}=e;return t(["Keine Aufzeichnungen."])},NO_WORKOUTS:e=>{const{normalize:t}=e;return t(["Keine Trainings."])},NOTES:e=>{const{normalize:t}=e;return t(["Anmerkungen"])},PAUSES:e=>{const{normalize:t}=e;return t(["Pausen"])},PREVIOUS_SEGMENT:e=>{const{normalize:t}=e;return t(["Vorheriges Segment"])},PREVIOUS_WORKOUT:e=>{const{normalize:t}=e;return t(["Vorheriges Training"])},RECORD:e=>{const{normalize:t,plural:n}=e;return n([t(["Aufzeichnung"]),t(["Aufzeichnungen"])])},RECORD_AS:e=>{const{normalize:t}=e;return t(["Durchschn. Geschwindigkeit"])},RECORD_FD:e=>{const{normalize:t}=e;return t(["Weiteste Entfernung"])},RECORD_HA:e=>{const{normalize:t}=e;return t(["Höchster Anstieg"])},RECORD_LD:e=>{const{normalize:t}=e;return t(["Längste Dauer"])},RECORD_MS:e=>{const{normalize:t}=e;return t(["Max. Geschwindigkeit"])},REMAINING_CHARS:e=>{const{normalize:t}=e;return t(["verbleibende Zeichen"])},SEGMENT:e=>{const{normalize:t,plural:n}=e;return n([t(["Segment"]),t(["Segmente"])])},SPEED:e=>{const{normalize:t}=e;return t(["Geschwindigkeit"])},SPORT:e=>{const{normalize:t,plural:n}=e;return n([t(["Sportart"]),t(["Sportarten"])])},START:e=>{const{normalize:t}=e;return t(["Start"])},START_AND_FINISH:e=>{const{normalize:t}=e;return t(["Start und Ziel"])},START_ELEVATION_AT_ZERO:e=>{const{normalize:t}=e;return t(["Höhenachse bei Null starten"])},TITLE:e=>{const{normalize:t}=e;return t(["Titel"])},TO:e=>{const{normalize:t}=e;return t(["bis"])},TOTAL_DURATION:e=>{const{normalize:t}=e;return t(["Gesamtdauer"])},UPLOAD_FIRST_WORKOUT:e=>{const{normalize:t}=e;return t(["Füge erstes Training hinzu!"])},WEATHER:{HUMIDITY:e=>{const{normalize:t}=e;return t(["Luftfeuchtigkeit"])},TEMPERATURE:e=>{const{normalize:t}=e;return t(["Temperatur"])},WIND:e=>{const{normalize:t}=e;return t(["Wind"])},WIND_DIRECTIONS:{N:e=>{const{normalize:t}=e;return t(["N"])},NNE:e=>{const{normalize:t}=e;return t(["NNO"])},NE:e=>{const{normalize:t}=e;return t(["NO"])},ENE:e=>{const{normalize:t}=e;return t(["ONO"])},E:e=>{const{normalize:t}=e;return t(["O"])},ESE:e=>{const{normalize:t}=e;return t(["OSO"])},SE:e=>{const{normalize:t}=e;return t(["SO"])},SSE:e=>{const{normalize:t}=e;return t(["SSO"])},S:e=>{const{normalize:t}=e;return t(["S"])},SSW:e=>{const{normalize:t}=e;return t(["SSW"])},SW:e=>{const{normalize:t}=e;return t(["SW"])},WSW:e=>{const{normalize:t}=e;return t(["WSW"])},W:e=>{const{normalize:t}=e;return t(["W"])},WNW:e=>{const{normalize:t}=e;return t(["WNW"])},NW:e=>{const{normalize:t}=e;return t(["NW"])},NNW:e=>{const{normalize:t}=e;return t(["NNW"])}},DARK_SKY:{"clear-day":e=>{const{normalize:t}=e;return t(["klarer Tag"])},"clear-night":e=>{const{normalize:t}=e;return t(["klare Nacht"])},cloudy:e=>{const{normalize:t}=e;return t(["wolkig"])},fog:e=>{const{normalize:t}=e;return t(["Nebel"])},"partly-cloudy-day":e=>{const{normalize:t}=e;return t(["teilweise bewölkter Tag"])},"partly-cloudy-night":e=>{const{normalize:t}=e;return t(["teilweise bewölkte Nacht"])},rain:e=>{const{normalize:t}=e;return t(["Regen"])},sleet:e=>{const{normalize:t}=e;return t(["Schneeregen"])},snow:e=>{const{normalize:t}=e;return t(["Schnee"])},wind:e=>{const{normalize:t}=e;return t(["Wind"])}}},WITH_GPX:e=>{const{normalize:t}=e;return t(["mit .gpx Datei"])},WITHOUT_GPX:e=>{const{normalize:t}=e;return t(["ohne .gpx Datei"])},WORKOUT:e=>{const{normalize:t,plural:n}=e;return n([t(["Training"]),t(["Trainings"])])},WORKOUT_DATE:e=>{const{normalize:t}=e;return t(["Trainingsdatum"])},WORKOUT_DELETION_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Bist du sicher, dass du dieses Training löschen möchtest?"])},ZIP_ARCHIVE:e=>{const{normalize:t}=e;return t([".zip Datei"])},ZIP_ARCHIVE_DESCRIPTION:e=>{const{normalize:t}=e;return t(["oder .zip Datei mit .gpx Dateien"])}},S={about:r,admin:a,api:o,buttons:s,common:i,dashboard:l,error:c,oauth2:u,sports:d,statistics:m,user:_,workouts:E}},8757:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return S}});var r={CONTACT_ADMIN:e=>{const{normalize:t}=e;return t(["Contact the administrator"])},FITTRACKEE_DESCRIPTION:e=>{const{normalize:t}=e;return t(["FitTrackee is a self-hosted outdoor activity tracker."])},FITTRACKEE_LICENSE:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["under ",n(r(0))," license "])},SOURCE_CODE:e=>{const{normalize:t}=e;return t(["Source code"])}},a={ACTION:e=>{const{normalize:t}=e;return t(["Action"])},ACTIVATE_USER_ACCOUNT:e=>{const{normalize:t}=e;return t(["Activate account"])},ACTIVE:e=>{const{normalize:t}=e;return t(["Active"])},ADMIN_RIGHTS_DELETE_USER_ACCOUNT:e=>{const{normalize:t}=e;return t(["Add/remove admin rights, delete user account."])},ADMIN:e=>{const{normalize:t}=e;return t(["Admin"])},ADMINISTRATION:e=>{const{normalize:t}=e;return t(["Administration"])},APPLICATION:e=>{const{normalize:t}=e;return t(["Application"])},APP_CONFIG:{ADMIN_CONTACT:e=>{const{normalize:t}=e;return t(["Administrator email for contact"])},MAX_USERS_LABEL:e=>{const{normalize:t}=e;return t(["Max. number of active users"])},MAX_USERS_HELP:e=>{const{normalize:t}=e;return t(["If 0, no limitation on registration."])},MAX_FILES_IN_ZIP_LABEL:e=>{const{normalize:t}=e;return t(["Max. files of zip archive"])},NO_CONTACT_EMAIL:e=>{const{normalize:t}=e;return t(["no contact email"])},SINGLE_UPLOAD_MAX_SIZE_LABEL:e=>{const{normalize:t}=e;return t(["Max. size of uploaded files (in Mb)"])},TITLE:e=>{const{normalize:t}=e;return t(["Application configuration"])},ZIP_UPLOAD_MAX_SIZE_LABEL:e=>{const{normalize:t}=e;return t(["Max. size of zip archive (in Mb)"])}},BACK_TO_ADMIN:e=>{const{normalize:t}=e;return t(["Back to admin"])},CONFIRM_USER_ACCOUNT_DELETION:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Are you sure you want to delete ",n(r(0))," account? All data will be deleted, this cannot be undone."])},CONFIRM_USER_PASSWORD_RESET:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Are you sure you want to reset ",n(r(0))," password?"])},CURRENT_EMAIL:e=>{const{normalize:t}=e;return t(["Current email"])},DELETE_USER:e=>{const{normalize:t}=e;return t(["Delete user"])},EMAIL_SENDING_DISABLED:e=>{const{normalize:t}=e;return t(["Email sending is disabled."])},ENABLE_DISABLE_SPORTS:e=>{const{normalize:t}=e;return t(["Enable/disable sports."])},NEW_EMAIL:e=>{const{normalize:t}=e;return t(["New email"])},PASSWORD_RESET_SUCCESSFUL:e=>{const{normalize:t}=e;return t(["The password has been reset."])},REGISTRATION_DISABLED:e=>{const{normalize:t}=e;return t(["Registration is currently disabled."])},REGISTRATION_ENABLED:e=>{const{normalize:t}=e;return t(["Registration is currently enabled."])},RESET_USER_PASSWORD:e=>{const{normalize:t}=e;return t(["Reset password"])},SPORTS:{TABLE:{ACTIVE:e=>{const{normalize:t}=e;return t(["Active"])},HAS_WORKOUTS:e=>{const{normalize:t}=e;return t(["workouts exist"])},IMAGE:e=>{const{normalize:t}=e;return t(["Image"])},LABEL:e=>{const{normalize:t}=e;return t(["Label"])}},TITLE:e=>{const{normalize:t}=e;return t(["Sports administration"])}},UPDATE_APPLICATION_DESCRIPTION:e=>{const{normalize:t}=e;return t(["Update application configuration (maximum number of registered users, maximum files size)."])},UPDATE_USER_EMAIL:e=>{const{normalize:t}=e;return t(["Update email"])},USER:e=>{const{normalize:t,plural:n}=e;return n([t(["user"]),t(["users"])])},USER_EMAIL_UPDATE_SUCCESSFUL:e=>{const{normalize:t}=e;return t(["The email address has been updated."])},USERS:{TABLE:{ADD_ADMIN_RIGHTS:e=>{const{normalize:t}=e;return t(["Add admin rights"])},REMOVE_ADMIN_RIGHTS:e=>{const{normalize:t}=e;return t(["Remove admin rights"])}},SELECTS:{ORDER_BY:{ADMIN:e=>{const{normalize:t}=e;return t(["admin status"])},CREATED_AT:e=>{const{normalize:t}=e;return t(["registration date"])},IS_ACTIVE:e=>{const{normalize:t}=e;return t(["account status"])},USERNAME:e=>{const{normalize:t}=e;return t(["username"])},WORKOUTS_COUNT:e=>{const{normalize:t}=e;return t(["workout count"])}}}}},o={ERROR:{UNKNOWN:e=>{const{normalize:t}=e;return t(["Error. Please try again or contact the administrator."])},"at least one file in zip archive exceeds size limit, please check the archive":e=>{const{normalize:t}=e;return t(["At least one file in zip archive exceeds size limit, please check the archive."])},"email: valid email must be provided":e=>{const{normalize:t}=e;return t(["Email: valid email must be provided."])},"error during gpx processing":e=>{const{normalize:t}=e;return t(["Error during gpx processing."])},"error during gpx file parsing":e=>{const{normalize:t}=e;return t(["Error during gpx file parsing."])},"error on getting configuration":e=>{const{normalize:t}=e;return t(["Error on getting configuration."])},"error when updating configuration":e=>{const{normalize:t}=e;return t(["Error when updating configuration"])},"error, please try again or contact the administrator":e=>{const{normalize:t}=e;return t(["Error, please try again or contact the administrator."])},"error, registration is disabled":e=>{const{normalize:t}=e;return t(["Error, registration is disabled."])},"file extension not allowed":e=>{const{normalize:t}=e;return t(["File extension not allowed."])},"file size is greater than the allowed size":e=>{const{normalize:t}=e;return t(["File size is greater than the allowed size."])},"invalid credentials":e=>{const{normalize:t}=e;return t(["Invalid credentials."])},"invalid payload":e=>{const{normalize:t}=e;return t(["Provided data are invalid."])},"invalid token, please log in again":e=>{const{normalize:t}=e;return t(["Invalid token, please log in again."])},"invalid token, please request a new token":e=>{const{normalize:t}=e;return t(["Invalid token, please log in again."])},"Network Error":e=>{const{normalize:t}=e;return t(["Network Error."])},"new email must be different than curent email":e=>{const{normalize:t}=e;return t(["The new email must be different than curent email"])},"no file part":e=>{const{normalize:t}=e;return t(["No file provided."])},"no selected file":e=>{const{normalize:t}=e;return t(["No selected file."])},"the number of files in the archive exceeds the limit":e=>{const{normalize:t}=e;return t(["The number of files in the archive exceeds the limit."])},"password: password and password confirmation do not match":e=>{const{normalize:t}=e;return t(["Password: password and password confirmation don't match."])},"provide a valid auth token":e=>{const{normalize:t}=e;return t(["Provide a valid auth token."])},"sorry, that username is already taken":e=>{const{normalize:t}=e;return t(["Sorry, that username is already taken."])},"sport does not exist":e=>{const{normalize:t}=e;return t(["Sport does not exist."])},"signature expired, please log in again":e=>{const{normalize:t}=e;return t(["Signature expired. Please log in again."])},"successfully registered":e=>{const{normalize:t}=e;return t(["Successfully registered."])},"user does not exist":e=>{const{normalize:t}=e;return t(["User does not exist."])},"valid email must be provided for admin contact":e=>{const{normalize:t}=e;return t(["A valid email must be provided for administrator contact"])},"you can not delete your account, no other user has admin rights":e=>{const{normalize:t}=e;return t(["You can not delete your account, no other user has admin rights."])},"you do not have permissions":e=>{const{normalize:t}=e;return t(["You do not have permissions."])}},PAGINATION:{PREVIOUS:e=>{const{normalize:t}=e;return t(["previous"])},NEXT:e=>{const{normalize:t}=e;return t(["next"])}}},s={"ACCOUNT-CONFIRMATION-RESEND":e=>{const{normalize:t}=e;return t(["Resend confirmation email"])},AUTHORIZE:e=>{const{normalize:t}=e;return t(["Authorize"])},BACK:e=>{const{normalize:t}=e;return t(["Back"])},CANCEL:e=>{const{normalize:t}=e;return t(["Cancel"])},CLEAR_FILTER:e=>{const{normalize:t}=e;return t(["Clear filters"])},DELETE_MY_ACCOUNT:e=>{const{normalize:t}=e;return t(["Delete my account"])},DISABLE:e=>{const{normalize:t}=e;return t(["Disable"])},EDIT:e=>{const{normalize:t}=e;return t(["Edit"])},ENABLE:e=>{const{normalize:t}=e;return t(["Enable"])},FILTER:e=>{const{normalize:t}=e;return t(["Filter"])},LOGIN:e=>{const{normalize:t}=e;return t(["Log in"])},NO:e=>{const{normalize:t}=e;return t(["No"])},REGISTER:e=>{const{normalize:t}=e;return t(["Register"])},RESET:e=>{const{normalize:t}=e;return t(["Reset"])},SUBMIT:e=>{const{normalize:t}=e;return t(["Submit"])},YES:e=>{const{normalize:t}=e;return t(["Yes"])}},i={ABOUT:e=>{const{normalize:t}=e;return t(["about"])},CONFIRMATION:e=>{const{normalize:t}=e;return t(["Confirmation"])},CONTACT:e=>{const{normalize:t}=e;return t(["contact"])},DAY:e=>{const{normalize:t,plural:n}=e;return n([t(["day"]),t(["days"])])},DISPLAYED:e=>{const{normalize:t}=e;return t(["Displayed"])},DOCUMENTATION:e=>{const{normalize:t}=e;return t(["documentation"])},HERE:e=>{const{normalize:t}=e;return t(["here"])},HIDDEN:e=>{const{normalize:t}=e;return t(["Hidden"])},HOME:e=>{const{normalize:t}=e;return t(["Home"])},SELECTS:{ORDER_BY:{LABEL:e=>{const{normalize:t}=e;return t(["order by"])}},ORDER:{LABEL:e=>{const{normalize:t}=e;return t(["sort"])},ASC:e=>{const{normalize:t}=e;return t(["ascending"])},DESC:e=>{const{normalize:t}=e;return t(["descending"])}},PER_PAGE:{LABEL:e=>{const{normalize:t}=e;return t(["par page"])}}},TOTAL:e=>{const{normalize:t}=e;return t(["Total"])}},l={DASHBOARD:e=>{const{normalize:t}=e;return t(["Dashboard"])},THIS_MONTH:e=>{const{normalize:t}=e;return t(["This month"])}},c={UNKNOWN:e=>{const{normalize:t}=e;return t(["Error. Please try again or contact the administrator."])},APP_ERROR:e=>{const{normalize:t}=e;return t(["The application seems to have encountered some issues.
Please try again later or contact the administrator."])},NOT_FOUND:{PAGE:e=>{const{normalize:t}=e;return t(["Page not found"])},WORKOUT:e=>{const{normalize:t}=e;return t(["Workout not found"])}},SOMETHING_WRONG:e=>{const{normalize:t}=e;return t(["Something went wrong"])}},u={ADD_A_NEW_APP:e=>{const{normalize:t}=e;return t(["Add a new OAuth2 application"])},APP:{CLIENT_ID:e=>{const{normalize:t}=e;return t(["Id"])},CLIENT_SECRET:e=>{const{normalize:t}=e;return t(["Secret"])},DESCRIPTION:e=>{const{normalize:t}=e;return t(["Application description"])},ISSUE_AT:e=>{const{normalize:t}=e;return t(["Issue at"])},NAME:e=>{const{normalize:t}=e;return t(["Application name"])},REDIRECT_URL:e=>{const{normalize:t}=e;return t(["Redirect URL"])},SCOPE:{LABEL:e=>{const{normalize:t}=e;return t(["Scope"])},"application:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["grants write access to application configuration."])},"profile:read_DESCRIPTION":e=>{const{normalize:t}=e;return t(["grants read access to auth endpoints."])},"profile:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["grants write access to auth endpoints."])},"users:read_DESCRIPTION":e=>{const{normalize:t}=e;return t(["grants read access to users endpoints."])},"users:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["grants write access to users endpoints."])},"workouts:read_DESCRIPTION":e=>{const{normalize:t}=e;return t(["grants read access to workouts endpoints."])},"workouts:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["grants write access to workouts endpoints."])}},URL:e=>{const{normalize:t}=e;return t(["Application URL"])}},APP_CREATED_SUCCESSFULLY:e=>{const{normalize:t}=e;return t(["Application created successfully. Make sure to copy the secret now, it won't show up again."])},APP_DELETION_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Are you sure you want to delete this app?"])},APP_REQUESTING_ACCESS:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["The application ",n(r(0))," is requesting:"])},APPS_LIST:e=>{const{normalize:t}=e;return t(["OAuth2 applications"])},AUTHORIZE_APP:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Authorize ",n(r(0))," to use your account?"])},COPY_TO_CLIPBOARD:e=>{const{normalize:t}=e;return t(["copy to the clipboard"])},DELETE_APP:e=>{const{normalize:t}=e;return t(["Delete application"])},NEW_APP:e=>{const{normalize:t}=e;return t(["Add an application"])},NO_APP:e=>{const{normalize:t}=e;return t(["Application not found!"])},NO_APPS:e=>{const{normalize:t}=e;return t(["no applications"])},NO_DESCRIPTION:e=>{const{normalize:t}=e;return t(["no description"])},REVOKE_ALL_TOKENS:e=>{const{normalize:t}=e;return t(["Revoke all tokens"])},TOKENS_REVOCATION_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Are you sure you want to revoke all tokens?"])},TOKENS_REVOKED:e=>{const{normalize:t}=e;return t(["All existing associated tokens have been revoked."])}},d={"Cycling (Sport)":{LABEL:e=>{const{normalize:t}=e;return t(["Cycling (Sport)"])}},"Cycling (Transport)":{LABEL:e=>{const{normalize:t}=e;return t(["Cycling (Transport)"])}},"Cycling (Virtual)":{LABEL:e=>{const{normalize:t}=e;return t(["Cycling (Virtual)"])}},Hiking:{LABEL:e=>{const{normalize:t}=e;return t(["Hiking"])}},"Mountain Biking":{LABEL:e=>{const{normalize:t}=e;return t(["Mountain Biking"])}},"Mountain Biking (Electric)":{LABEL:e=>{const{normalize:t}=e;return t(["Mountain Biking (Electric)"])}},Rowing:{LABEL:e=>{const{normalize:t}=e;return t(["Rowing"])}},Running:{LABEL:e=>{const{normalize:t}=e;return t(["Running"])}},"Skiing (Alpine)":{LABEL:e=>{const{normalize:t}=e;return t(["Skiing (Alpine)"])}},"Skiing (Cross Country)":{LABEL:e=>{const{normalize:t}=e;return t(["Skiing (Cross Country)"])}},Snowshoes:{LABEL:e=>{const{normalize:t}=e;return t(["Snowshoes"])}},Trail:{LABEL:e=>{const{normalize:t}=e;return t(["Trail"])}},Walking:{LABEL:e=>{const{normalize:t}=e;return t(["Walking"])}}},m={STATISTICS:e=>{const{normalize:t}=e;return t(["Statistics"])},TIME_FRAMES:{week:e=>{const{normalize:t}=e;return t(["week"])},month:e=>{const{normalize:t}=e;return t(["month"])},year:e=>{const{normalize:t}=e;return t(["year"])}}},_={ACCOUNT_CONFIRMATION_NOT_RECEIVED:e=>{const{normalize:t}=e;return t(["Didn't received instructions?"])},ACCOUNT_CONFIRMATION_SENT:e=>{const{normalize:t}=e;return t(["Check your email. A new confirmation email has been sent to the address provided."])},ADMIN:e=>{const{normalize:t}=e;return t(["Admin"])},ALREADY_HAVE_ACCOUNT:e=>{const{normalize:t}=e;return t(["Already have an account?"])},CONFIRM_ACCOUNT_DELETION:e=>{const{normalize:t}=e;return t(["Are you sure you want to delete your account? All data will be deleted, this cannot be undone"])},CURRENT_PASSWORD:e=>{const{normalize:t}=e;return t(["Current password"])},EMAIL:e=>{const{normalize:t}=e;return t(["Email"])},EMAIL_INFO:e=>{const{normalize:t}=e;return t(["Enter a valid email address."])},ENTER_PASSWORD:e=>{const{normalize:t}=e;return t(["Enter a password"])},FILTER_ON_USERNAME:e=>{const{normalize:t}=e;return t(["Filter on username"])},HIDE_PASSWORD:e=>{const{normalize:t}=e;return t(["hide password"])},INVALID_TOKEN:e=>{const{normalize:t}=e;return t(["Invalid token, please request a new password reset."])},LANGUAGE:e=>{const{normalize:t}=e;return t(["Language"])},LOG_IN:e=>{const{normalize:t}=e;return t(["log in"])},LOGIN:e=>{const{normalize:t}=e;return t(["Login"])},LOGOUT:e=>{const{normalize:t}=e;return t(["Logout"])},NEW_PASSWORD:e=>{const{normalize:t}=e;return t(["New password"])},NO_USERS_FOUND:e=>{const{normalize:t}=e;return t(["No users found."])},PASSWORD:e=>{const{normalize:t}=e;return t(["Password"])},PASSWORD_INFO:e=>{const{normalize:t}=e;return t(["At least 8 characters required."])},PASSWORD_FORGOTTEN:e=>{const{normalize:t}=e;return t(["Forgot password?"])},PASSWORD_RESET:e=>{const{normalize:t}=e;return t(["Password reset"])},PASSWORD_SENT_EMAIL_TEXT:e=>{const{normalize:t}=e;return t(["Check your email. If your address is in our database, you'll received an email with a link to reset your password."])},PASSWORD_STRENGTH:{WEAK:e=>{const{normalize:t}=e;return t(["weak"])},AVERAGE:e=>{const{normalize:t}=e;return t(["average"])},GOOD:e=>{const{normalize:t}=e;return t(["good"])},STRONG:e=>{const{normalize:t}=e;return t(["strong"])},LABEL:e=>{const{normalize:t}=e;return t(["password strength"])},SUGGESTIONS:{l33t:e=>{const{normalize:t}=e;return t(["Avoid predictable letter substitutions like ","@"," for a."])},reverseWords:e=>{const{normalize:t}=e;return t(["Avoid reversed spellings of common words."])},allUppercase:e=>{const{normalize:t}=e;return t(["Capitalize some, but not all letters."])},capitalization:e=>{const{normalize:t}=e;return t(["Capitalize more than the first letter."])},dates:e=>{const{normalize:t}=e;return t(["Avoid dates and years that are associated with you."])},recentYears:e=>{const{normalize:t}=e;return t(["Avoid recent years."])},associatedYears:e=>{const{normalize:t}=e;return t(["Avoid years that are associated with you."])},sequences:e=>{const{normalize:t}=e;return t(["Avoid common character sequences."])},repeated:e=>{const{normalize:t}=e;return t(["Avoid repeated words and characters."])},longerKeyboardPattern:e=>{const{normalize:t}=e;return t(["Use longer keyboard patterns and change typing direction multiple times."])},anotherWord:e=>{const{normalize:t}=e;return t(["Add more words that are less common."])},useWords:e=>{const{normalize:t}=e;return t(["Use multiple words, but avoid common phrases."])},noNeed:e=>{const{normalize:t}=e;return t(["You can create strong passwords without using symbols, numbers, or uppercase letters."])},pwned:e=>{const{normalize:t}=e;return t(["If you use this password elsewhere, you should change it."])}}},PASSWORD_UPDATED:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Your password have been updated. Click ",n(r(0))," to log in."])},PROFILE:{ACCOUNT_EDITION:e=>{const{normalize:t}=e;return t(["Account edition"])},ASCENT_DATA:e=>{const{normalize:t}=e;return t(["Ascent-related data (records, total)"])},BACK_TO_PROFILE:e=>{const{normalize:t}=e;return t(["Back to profile"])},BIO:e=>{const{normalize:t}=e;return t(["Bio"])},BIRTH_DATE:e=>{const{normalize:t}=e;return t(["Birth date"])},DATE_FORMAT:e=>{const{normalize:t}=e;return t(["Date display format"])},EDIT:e=>{const{normalize:t}=e;return t(["Edit profile"])},EDIT_PREFERENCES:e=>{const{normalize:t}=e;return t(["Edit preferences"])},EDIT_SPORTS_PREFERENCES:e=>{const{normalize:t}=e;return t(["Edit sports preferences"])},ERRORED_EMAIL_UPDATE:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Please ",n(r(0))," to change your email address again or contact the administrator"])},FIRST_NAME:e=>{const{normalize:t}=e;return t(["First name"])},FIRST_DAY_OF_WEEK:e=>{const{normalize:t}=e;return t(["First day of week"])},LANGUAGE:e=>{const{normalize:t}=e;return t(["Language"])},LAST_NAME:e=>{const{normalize:t}=e;return t(["Last name"])},LOCATION:e=>{const{normalize:t}=e;return t(["Location"])},MONDAY:e=>{const{normalize:t}=e;return t(["Monday"])},PICTURE:e=>{const{normalize:t}=e;return t(["Picture"])},PICTURE_EDITION:e=>{const{normalize:t}=e;return t(["Picture edition"])},PICTURE_UPDATE:e=>{const{normalize:t}=e;return t(["Update picture"])},PICTURE_REMOVE:e=>{const{normalize:t}=e;return t(["Remove picture"])},PREFERENCES_EDITION:e=>{const{normalize:t}=e;return t(["Preferences edition"])},PROFILE_EDITION:e=>{const{normalize:t}=e;return t(["Profile edition"])},REGISTRATION_DATE:e=>{const{normalize:t}=e;return t(["Registration date"])},SPORTS_EDITION:e=>{const{normalize:t}=e;return t(["Sports preferences edition"])},SUNDAY:e=>{const{normalize:t}=e;return t(["Sunday"])},TABS:{ACCOUNT:e=>{const{normalize:t}=e;return t(["account"])},APPS:e=>{const{normalize:t}=e;return t(["apps"])},PICTURE:e=>{const{normalize:t}=e;return t(["picture"])},PREFERENCES:e=>{const{normalize:t}=e;return t(["preferences"])},PROFILE:e=>{const{normalize:t}=e;return t(["profile"])},SPORTS:e=>{const{normalize:t}=e;return t(["sports"])}},SPORT:{ACTION:e=>{const{normalize:t}=e;return t(["action"])},COLOR:e=>{const{normalize:t}=e;return t(["color"])},DISABLED_BY_ADMIN:e=>{const{normalize:t}=e;return t(["disabled by admin"])},IS_ACTIVE:e=>{const{normalize:t}=e;return t(["active"])},LABEL:e=>{const{normalize:t}=e;return t(["label"])},STOPPED_SPEED_THRESHOLD:e=>{const{normalize:t}=e;return t(["stopped speed threshold"])}},SUCCESSFUL_EMAIL_UPDATE:e=>{const{normalize:t}=e;return t(["Your account has been updated successfully. Please check your email to confirm your new email address."])},SUCCESSFUL_REGISTRATION:e=>{const{normalize:t}=e;return t(["Your account has been created successfully."])},SUCCESSFUL_REGISTRATION_WITH_EMAIL:e=>{const{normalize:t}=e;return t(["A link to activate your account has been emailed to the address provided."])},SUCCESSFUL_UPDATE:e=>{const{normalize:t}=e;return t(["Your account has been updated successfully."])},UNITS:{LABEL:e=>{const{normalize:t}=e;return t(["Units for distance"])},IMPERIAL:e=>{const{normalize:t}=e;return t(["Imperial system (ft, mi)"])},METRIC:e=>{const{normalize:t}=e;return t(["Metric system (m, km)"])}},TIMEZONE:e=>{const{normalize:t}=e;return t(["Timezone"])}},REGISTER:e=>{const{normalize:t}=e;return t(["Register"])},RESENT_ACCOUNT_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Resend account confirmation email"])},REGISTER_DISABLED:e=>{const{normalize:t}=e;return t(["Sorry, registration is disabled."])},RESET_PASSWORD:e=>{const{normalize:t}=e;return t(["Reset your password"])},SHOW_PASSWORD:e=>{const{normalize:t}=e;return t(["show password"])},THIS_USER_ACCOUNT_IS_INACTIVE:e=>{const{normalize:t}=e;return t(["This user account is inactive."])},USER_PICTURE:e=>{const{normalize:t}=e;return t(["user picture"])},USERNAME:e=>{const{normalize:t}=e;return t(["Username"])},USERNAME_INFO:e=>{const{normalize:t}=e;return t(['3 to 30 characters required, only alphanumeric characters and the underscore character "_" allowed.'])}},E={ADD_WORKOUT:e=>{const{normalize:t}=e;return t(["Add a workout"])},ANALYSIS:e=>{const{normalize:t}=e;return t(["analysis"])},ASCENT:e=>{const{normalize:t}=e;return t(["ascent"])},AVE_SPEED:e=>{const{normalize:t}=e;return t(["ave. speed"])},AVERAGE_SPEED:e=>{const{normalize:t}=e;return t(["average speed"])},BACK_TO_WORKOUT:e=>{const{normalize:t}=e;return t(["back to workout"])},DATE:e=>{const{normalize:t}=e;return t(["date"])},DESCENT:e=>{const{normalize:t}=e;return t(["descent"])},DISPLAY_FILTERS:e=>{const{normalize:t}=e;return t(["display filters"])},DISTANCE:e=>{const{normalize:t}=e;return t(["distance"])},DURATION:e=>{const{normalize:t}=e;return t(["duration"])},EDIT_WORKOUT:e=>{const{normalize:t}=e;return t(["Edit the workout"])},ELEVATION:e=>{const{normalize:t}=e;return t(["elevation"])},END:e=>{const{normalize:t}=e;return t(["end"])},FROM:e=>{const{normalize:t}=e;return t(["from"])},GPX_FILE:e=>{const{normalize:t}=e;return t([".gpx file"])},HIDE_FILTERS:e=>{const{normalize:t}=e;return t(["hide filters"])},INVALID_DISTANCE:e=>{const{normalize:t}=e;return t(["The distance must be greater than 0"])},INVALID_DURATION:e=>{const{normalize:t}=e;return t(["The duration must be greater than 0 seconds"])},LATEST_WORKOUTS:e=>{const{normalize:t}=e;return t(["Latest workouts"])},LOAD_MORE_WORKOUT:e=>{const{normalize:t}=e;return t(["Load more workouts"])},MAX_ALTITUDE:e=>{const{normalize:t}=e;return t(["max. altitude"])},MAX_FILES:e=>{const{normalize:t}=e;return t(["max files"])},MAX_SIZE:e=>{const{normalize:t}=e;return t(["max size"])},MAX_SPEED:e=>{const{normalize:t}=e;return t(["max. speed"])},MIN_ALTITUDE:e=>{const{normalize:t}=e;return t(["min. altitude"])},NEXT_SEGMENT:e=>{const{normalize:t}=e;return t(["No next segment"])},NEXT_WORKOUT:e=>{const{normalize:t}=e;return t(["Next workout"])},NO_DATA_CLEANING:e=>{const{normalize:t}=e;return t(["data from gpx, without any cleaning"])},NO_FILE_PROVIDED:e=>{const{normalize:t}=e;return t(["No file provided"])},NO_FOLDER:e=>{const{normalize:t}=e;return t(["no folder inside"])},NO_MAP:e=>{const{normalize:t}=e;return t(["No map"])},NO_NEXT_SEGMENT:e=>{const{normalize:t}=e;return t(["No next segment"])},NO_NEXT_WORKOUT:e=>{const{normalize:t}=e;return t(["No next workout"])},NO_NOTES:e=>{const{normalize:t}=e;return t(["No notes"])},NO_PREVIOUS_SEGMENT:e=>{const{normalize:t}=e;return t(["No previous segment"])},NO_PREVIOUS_WORKOUT:e=>{const{normalize:t}=e;return t(["No previous workout"])},NO_RECORDS:e=>{const{normalize:t}=e;return t(["No records."])},NO_WORKOUTS:e=>{const{normalize:t}=e;return t(["No workouts."])},NOTES:e=>{const{normalize:t}=e;return t(["notes"])},PAUSES:e=>{const{normalize:t}=e;return t(["pauses"])},PREVIOUS_SEGMENT:e=>{const{normalize:t}=e;return t(["Previous segment"])},PREVIOUS_WORKOUT:e=>{const{normalize:t}=e;return t(["Previous workout"])},RECORD:e=>{const{normalize:t,plural:n}=e;return n([t(["record"]),t(["records"])])},RECORD_AS:e=>{const{normalize:t}=e;return t(["Ave. speed"])},RECORD_FD:e=>{const{normalize:t}=e;return t(["Farthest distance"])},RECORD_HA:e=>{const{normalize:t}=e;return t(["Highest ascent"])},RECORD_LD:e=>{const{normalize:t}=e;return t(["Longest duration"])},RECORD_MS:e=>{const{normalize:t}=e;return t(["Max. speed"])},REMAINING_CHARS:e=>{const{normalize:t}=e;return t(["remaining characters"])},SEGMENT:e=>{const{normalize:t,plural:n}=e;return n([t(["segment"]),t(["segments"])])},SPEED:e=>{const{normalize:t}=e;return t(["speed"])},SPORT:e=>{const{normalize:t,plural:n}=e;return n([t(["sport"]),t(["sports"])])},START:e=>{const{normalize:t}=e;return t(["start"])},START_AND_FINISH:e=>{const{normalize:t}=e;return t(["Start and finish"])},START_ELEVATION_AT_ZERO:e=>{const{normalize:t}=e;return t(["start elevation axis at zero"])},TITLE:e=>{const{normalize:t}=e;return t(["title"])},TO:e=>{const{normalize:t}=e;return t(["to"])},TOTAL_DURATION:e=>{const{normalize:t}=e;return t(["total duration"])},UPLOAD_FIRST_WORKOUT:e=>{const{normalize:t}=e;return t(["Upload one!"])},WEATHER:{HUMIDITY:e=>{const{normalize:t}=e;return t(["humidity"])},TEMPERATURE:e=>{const{normalize:t}=e;return t(["temperature"])},WIND:e=>{const{normalize:t}=e;return t(["wind"])},WIND_DIRECTIONS:{N:e=>{const{normalize:t}=e;return t(["N"])},NNE:e=>{const{normalize:t}=e;return t(["NNE"])},NE:e=>{const{normalize:t}=e;return t(["NE"])},ENE:e=>{const{normalize:t}=e;return t(["ENE"])},E:e=>{const{normalize:t}=e;return t(["E"])},ESE:e=>{const{normalize:t}=e;return t(["ESE"])},SE:e=>{const{normalize:t}=e;return t(["SE"])},SSE:e=>{const{normalize:t}=e;return t(["SSE"])},S:e=>{const{normalize:t}=e;return t(["S"])},SSW:e=>{const{normalize:t}=e;return t(["SSW"])},SW:e=>{const{normalize:t}=e;return t(["SW"])},WSW:e=>{const{normalize:t}=e;return t(["WSW"])},W:e=>{const{normalize:t}=e;return t(["W"])},WNW:e=>{const{normalize:t}=e;return t(["WNW"])},NW:e=>{const{normalize:t}=e;return t(["NW"])},NNW:e=>{const{normalize:t}=e;return t(["NNW"])}},DARK_SKY:{"clear-day":e=>{const{normalize:t}=e;return t(["clear day"])},"clear-night":e=>{const{normalize:t}=e;return t(["clear night"])},cloudy:e=>{const{normalize:t}=e;return t(["cloudy"])},fog:e=>{const{normalize:t}=e;return t(["fog"])},"partly-cloudy-day":e=>{const{normalize:t}=e;return t(["partly cloudy day"])},"partly-cloudy-night":e=>{const{normalize:t}=e;return t(["partly cloudy night"])},rain:e=>{const{normalize:t}=e;return t(["rain"])},sleet:e=>{const{normalize:t}=e;return t(["sleet"])},snow:e=>{const{normalize:t}=e;return t(["snow"])},wind:e=>{const{normalize:t}=e;return t(["wind"])}}},WITH_GPX:e=>{const{normalize:t}=e;return t(["with .gpx file"])},WITHOUT_GPX:e=>{const{normalize:t}=e;return t(["without .gpx file"])},WORKOUT:e=>{const{normalize:t,plural:n}=e;return n([t(["workout"]),t(["workouts"])])},WORKOUT_DATE:e=>{const{normalize:t}=e;return t(["workout date"])},WORKOUT_DELETION_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Are you sure you want to delete this workout?"])},ZIP_ARCHIVE:e=>{const{normalize:t}=e;return t([".zip file"])},ZIP_ARCHIVE_DESCRIPTION:e=>{const{normalize:t}=e;return t(["or .zip file containing .gpx files"])}},S={about:r,admin:a,api:o,buttons:s,common:i,dashboard:l,error:c,oauth2:u,sports:d,statistics:m,user:_,workouts:E}},6625:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return S}});var r={CONTACT_ADMIN:e=>{const{normalize:t}=e;return t(["Contacter l'administrateur"])},FITTRACKEE_DESCRIPTION:e=>{const{normalize:t}=e;return t(["FitTrackee est un tracker d'activités sportives (en extérieur)."])},FITTRACKEE_LICENSE:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["sous licence ",n(r(0))," (en) "])},SOURCE_CODE:e=>{const{normalize:t}=e;return t(["Code source (en)"])}},a={ACTION:e=>{const{normalize:t}=e;return t(["Action"])},ACTIVATE_USER_ACCOUNT:e=>{const{normalize:t}=e;return t(["Activer le compte"])},ACTIVE:e=>{const{normalize:t}=e;return t(["Actif"])},ADMIN_RIGHTS_DELETE_USER_ACCOUNT:e=>{const{normalize:t}=e;return t(["Ajouter/retirer des droits d'administration, supprimer des comptes utilisateurs."])},ADMIN:e=>{const{normalize:t}=e;return t(["Admin"])},ADMINISTRATION:e=>{const{normalize:t}=e;return t(["Administration"])},APPLICATION:e=>{const{normalize:t}=e;return t(["Application"])},APP_CONFIG:{ADMIN_CONTACT:e=>{const{normalize:t}=e;return t(["Email de l'administrateur pour contact "])},MAX_USERS_LABEL:e=>{const{normalize:t}=e;return t(["Nombre maximum d'utilisateurs actifs "])},MAX_USERS_HELP:e=>{const{normalize:t}=e;return t(["Si égal à 0, pas limite d'inscription"])},MAX_FILES_IN_ZIP_LABEL:e=>{const{normalize:t}=e;return t(["Nombre max. de fichiers dans une archive zip "])},NO_CONTACT_EMAIL:e=>{const{normalize:t}=e;return t(["non renseigné"])},SINGLE_UPLOAD_MAX_SIZE_LABEL:e=>{const{normalize:t}=e;return t(["Taille max. des fichiers (en Mo) "])},TITLE:e=>{const{normalize:t}=e;return t(["Configuration de l'application"])},ZIP_UPLOAD_MAX_SIZE_LABEL:e=>{const{normalize:t}=e;return t(["Taille max. des archives zip (en Mo) "])}},BACK_TO_ADMIN:e=>{const{normalize:t}=e;return t(["Revenir à l'admin"])},CONFIRM_USER_ACCOUNT_DELETION:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Êtes-vous sûr de vouloir supprimer le compte de l'utilisateur ",n(r(0))," ? Toutes les données seront définitivement."])},CONFIRM_USER_PASSWORD_RESET:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Êtes-vous sûr de vouloir réinitialiser le mot de passe de l'utilisateur ",n(r(0))," ?"])},CURRENT_EMAIL:e=>{const{normalize:t}=e;return t(["Adresse email actuelle"])},DELETE_USER:e=>{const{normalize:t}=e;return t(["Supprimer l'utilisateur"])},EMAIL_SENDING_DISABLED:e=>{const{normalize:t}=e;return t(["L'envoi d'emails est désactivé."])},ENABLE_DISABLE_SPORTS:e=>{const{normalize:t}=e;return t(["Activer/désactiver des sports."])},NEW_EMAIL:e=>{const{normalize:t}=e;return t(["Nouvelle adresse email"])},PASSWORD_RESET_SUCCESSFUL:e=>{const{normalize:t}=e;return t(["Le mot de passe a été réinitialisé."])},REGISTRATION_DISABLED:e=>{const{normalize:t}=e;return t(["Les inscriptions sont actuellement désactivées."])},REGISTRATION_ENABLED:e=>{const{normalize:t}=e;return t(["Les inscriptions sont actuellement activées."])},RESET_USER_PASSWORD:e=>{const{normalize:t}=e;return t(["Réinit. le mot de passe"])},SPORTS:{TABLE:{ACTIVE:e=>{const{normalize:t}=e;return t(["Actif"])},HAS_WORKOUTS:e=>{const{normalize:t}=e;return t(["des séances existent"])},IMAGE:e=>{const{normalize:t}=e;return t(["Image"])},LABEL:e=>{const{normalize:t}=e;return t(["Label"])}},TITLE:e=>{const{normalize:t}=e;return t(["Administration - Sports"])}},UPDATE_APPLICATION_DESCRIPTION:e=>{const{normalize:t}=e;return t(["Configurer l'application (nombre maximum d'utilisateurs inscrits, taille maximale des fichers)."])},UPDATE_USER_EMAIL:e=>{const{normalize:t}=e;return t(["Changer l'email"])},USER:e=>{const{normalize:t,plural:n}=e;return n([t(["utilisateur"]),t(["utilisateurs"])])},USER_EMAIL_UPDATE_SUCCESSFUL:e=>{const{normalize:t}=e;return t(["L'adresse email a été mise à jour."])},USERS:{TABLE:{ADD_ADMIN_RIGHTS:e=>{const{normalize:t}=e;return t(["Ajouter les droits d'admin"])},REMOVE_ADMIN_RIGHTS:e=>{const{normalize:t}=e;return t(["Retirer les droits d'admin"])}},SELECTS:{ORDER_BY:{ADMIN:e=>{const{normalize:t}=e;return t(["status administrateur"])},CREATED_AT:e=>{const{normalize:t}=e;return t(["date d'inscription"])},IS_ACTIVE:e=>{const{normalize:t}=e;return t(["statut du compte"])},USERNAME:e=>{const{normalize:t}=e;return t(["nom d'utilisateur"])},WORKOUTS_COUNT:e=>{const{normalize:t}=e;return t(["nombre de séances"])}}}}},o={ERROR:{UNKNOWN:e=>{const{normalize:t}=e;return t(["Erreur. Veuillez réessayer ou contacter l'administrateur."])},"at least one file in zip archive exceeds size limit, please check the archive":e=>{const{normalize:t}=e;return t(["Au moins un fichier de l'archive zip dépasse la taille maximale, veuillez vérifier l'archive."])},"email: valid email must be provided":e=>{const{normalize:t}=e;return t(["Courriel : une adresse électronique valide doit être fournie."])},"error during gpx processing":e=>{const{normalize:t}=e;return t(["Erreur lors du traitement du fichier gpx."])},"error during gpx file parsing":e=>{const{normalize:t}=e;return t(["Erreur lors de l'analyse du fichier."])},"error on getting configuration":e=>{const{normalize:t}=e;return t(["Erreur lors de la récupération de la configuration."])},"error when updating configuration":e=>{const{normalize:t}=e;return t(["Erreur lors de la mise à jour de la configuration"])},"error, please try again or contact the administrator":e=>{const{normalize:t}=e;return t(["Erreur, veuillez réessayer ou contacter l'administrateur."])},"error, registration is disabled":e=>{const{normalize:t}=e;return t(["Erreur, les inscriptions sont désactivées."])},"file extension not allowed":e=>{const{normalize:t}=e;return t(["Extension de fichier non autorisée."])},"file size is greater than the allowed size":e=>{const{normalize:t}=e;return t(["La taille du fichier est supérieure à la limite autorisée."])},"invalid credentials":e=>{const{normalize:t}=e;return t(["Identifiants invalides."])},"invalid payload":e=>{const{normalize:t}=e;return t(["Données fournies incorrectes."])},"invalid token, please log in again":e=>{const{normalize:t}=e;return t(["Jeton de connexion invalide, merci de vous reconnecter."])},"invalid token, please request a new token":e=>{const{normalize:t}=e;return t(["Jeton de connexion, merci de vous reconnecter."])},"no file part":e=>{const{normalize:t}=e;return t(["Pas de fichier fourni."])},"no selected file":e=>{const{normalize:t}=e;return t(["Pas de fichier sélectionné."])},"Network Error":e=>{const{normalize:t}=e;return t(["Erreur réseau."])},"new email must be different than curent email":e=>{const{normalize:t}=e;return t(["La nouvelle addresse électronique doit être differente de l'adresse actuelle"])},"password: password and password confirmation do not match":e=>{const{normalize:t}=e;return t(["Mot de passe : les mots de passe saisis sont différents."])},"provide a valid auth token":e=>{const{normalize:t}=e;return t(["Merci de fournir un jeton de connexion valide."])},"sport does not exist":e=>{const{normalize:t}=e;return t(["Ce sport n'existe pas."])},"signature expired, please log in again":e=>{const{normalize:t}=e;return t(["Signature expirée. Merci de vous reconnecter."])},"sorry, that username is already taken":e=>{const{normalize:t}=e;return t(["Désolé, ce nom d'utilisateur est déjà utilisé."])},"successfully registered":e=>{const{normalize:t}=e;return t(["Inscription validée."])},"the number of files in the archive exceeds the limit":e=>{const{normalize:t}=e;return t(["Le nombre de fichiers de l'archive dépasse la limite."])},"user does not exist":e=>{const{normalize:t}=e;return t(["L'utilisateur n'existe pas."])},"valid email must be provided for admin contact":e=>{const{normalize:t}=e;return t(["Une adresse électronique doit être fournie pour le contact de l'administrateur"])},"you can not delete your account, no other user has admin rights":e=>{const{normalize:t}=e;return t(["Vous ne pouvez pas supprimer votre compte, aucun autre utilisateur n'a des droits d'administration."])},"you do not have permissions":e=>{const{normalize:t}=e;return t(["Vous n'avez pas les permissions nécessaires."])}},PAGINATION:{PREVIOUS:e=>{const{normalize:t}=e;return t(["précédent"])},NEXT:e=>{const{normalize:t}=e;return t(["suivant"])}}},s={"ACCOUNT-CONFIRMATION-RESEND":e=>{const{normalize:t}=e;return t(["Renvoyer le message de confirmation"])},AUTHORIZE:e=>{const{normalize:t}=e;return t(["Autoriser"])},BACK:e=>{const{normalize:t}=e;return t(["Retour"])},CANCEL:e=>{const{normalize:t}=e;return t(["Annuler"])},CLEAR_FILTER:e=>{const{normalize:t}=e;return t(["Réinitialiser"])},DELETE_MY_ACCOUNT:e=>{const{normalize:t}=e;return t(["Supprimer mon compte"])},DISABLE:e=>{const{normalize:t}=e;return t(["Désactiver"])},EDIT:e=>{const{normalize:t}=e;return t(["Modifier"])},ENABLE:e=>{const{normalize:t}=e;return t(["Activer"])},FILTER:e=>{const{normalize:t}=e;return t(["Filtrer"])},LOGIN:e=>{const{normalize:t}=e;return t(["Se connecter"])},NO:e=>{const{normalize:t}=e;return t(["Non"])},REGISTER:e=>{const{normalize:t}=e;return t(["S'inscrire"])},RESET:e=>{const{normalize:t}=e;return t(["Réinit."])},SUBMIT:e=>{const{normalize:t}=e;return t(["Valider"])},YES:e=>{const{normalize:t}=e;return t(["Oui"])}},i={ABOUT:e=>{const{normalize:t}=e;return t(["à propos"])},CONFIRMATION:e=>{const{normalize:t}=e;return t(["Confirmation"])},CONTACT:e=>{const{normalize:t}=e;return t(["contact"])},DAY:e=>{const{normalize:t,plural:n}=e;return n([t(["jour"]),t(["jours"])])},DISPLAYED:e=>{const{normalize:t}=e;return t(["Affiché"])},DOCUMENTATION:e=>{const{normalize:t}=e;return t(["documentation (en)"])},HERE:e=>{const{normalize:t}=e;return t(["ici"])},HIDDEN:e=>{const{normalize:t}=e;return t(["Masqué"])},HOME:e=>{const{normalize:t}=e;return t(["Accueil"])},SELECTS:{ORDER_BY:{LABEL:e=>{const{normalize:t}=e;return t(["trier par "])}},ORDER:{LABEL:e=>{const{normalize:t}=e;return t(["tri"])},ASC:e=>{const{normalize:t}=e;return t(["ascendant"])},DESC:e=>{const{normalize:t}=e;return t(["descendant"])}},PER_PAGE:{LABEL:e=>{const{normalize:t}=e;return t(["par page"])}}},TOTAL:e=>{const{normalize:t}=e;return t(["Total"])}},l={DASHBOARD:e=>{const{normalize:t}=e;return t(["Tableau de bord"])},THIS_MONTH:e=>{const{normalize:t}=e;return t(["Ce mois-ci"])}},c={UNKNOWN:e=>{const{normalize:t}=e;return t(["Erreur. Veuillez réessayer ou contacter l'administrateur."])},APP_ERROR:e=>{const{normalize:t}=e;return t(["L'application semble rencontrer quelques problèmes.
Veuillez réessayer plus tard ou contacter l'administrateur."])},NOT_FOUND:{PAGE:e=>{const{normalize:t}=e;return t(["Page introuvable"])},WORKOUT:e=>{const{normalize:t}=e;return t(["Séance introuvable"])}},SOMETHING_WRONG:e=>{const{normalize:t}=e;return t(["Une erreur s'est produite"])}},u={ADD_A_NEW_APP:e=>{const{normalize:t}=e;return t(["Ajouter une nouvelle application OAuth2"])},APP:{CLIENT_ID:e=>{const{normalize:t}=e;return t(["Identifiant"])},CLIENT_SECRET:e=>{const{normalize:t}=e;return t(["Secret"])},DESCRIPTION:e=>{const{normalize:t}=e;return t(["Description de l'application"])},ISSUE_AT:e=>{const{normalize:t}=e;return t(["Créée le"])},NAME:e=>{const{normalize:t}=e;return t(["Nom de l'application"])},REDIRECT_URL:e=>{const{normalize:t}=e;return t(["URL de redirection"])},SCOPE:{LABEL:e=>{const{normalize:t}=e;return t(["Scope"])},"application:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["donne les droits en écriture à la configuration de l'application."])},"profile:read_DESCRIPTION":e=>{const{normalize:t}=e;return t(["donne les droits en lecture aux routes auth."])},"profile:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["donne les droits en écriture aux routes auth."])},"users:read_DESCRIPTION":e=>{const{normalize:t}=e;return t(["donne les droits en lecture aux routes users."])},"users:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["donne les droits en écriture aux routes users."])},"workouts:read_DESCRIPTION":e=>{const{normalize:t}=e;return t(["donne les droits en lecture aux routes workouts."])},"workouts:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["donne les droits en écriture aux routes workouts."])}},URL:e=>{const{normalize:t}=e;return t(["URL de l'application"])}},APP_CREATED_SUCCESSFULLY:e=>{const{normalize:t}=e;return t(["Application créée avec succès. Assurez-vous de copier le secret maintenant, il ne s'affichera plus."])},APP_DELETION_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Êtes-vous sûr de vouloir supprimer cette application ?"])},APP_REQUESTING_ACCESS:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["L'application ",n(r(0))," demande les accès suivants :"])},APPS_LIST:e=>{const{normalize:t}=e;return t(["Applications OAuth2"])},AUTHORIZE_APP:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Autoriser ",n(r(0))," à utiliser votre compte ?"])},COPY_TO_CLIPBOARD:e=>{const{normalize:t}=e;return t(["copier dans le presse papier"])},DELETE_APP:e=>{const{normalize:t}=e;return t(["Supprimer l'application"])},NEW_APP:e=>{const{normalize:t}=e;return t(["Ajouter une application"])},NO_APP:e=>{const{normalize:t}=e;return t(["Application introuvable !"])},NO_APPS:e=>{const{normalize:t}=e;return t(["pas de applications"])},NO_DESCRIPTION:e=>{const{normalize:t}=e;return t(["pas de description"])},REVOKE_ALL_TOKENS:e=>{const{normalize:t}=e;return t(["Révoquer tous les jetons"])},TOKENS_REVOCATION_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Êtes-vous sûr de vouloir révoquer tous les jetons ?"])},TOKENS_REVOKED:e=>{const{normalize:t}=e;return t(["Tous les jetons associés existants ont été révoqués."])}},d={"Cycling (Sport)":{LABEL:e=>{const{normalize:t}=e;return t(["Vélo (Sport)"])}},"Cycling (Transport)":{LABEL:e=>{const{normalize:t}=e;return t(["Vélo (Transport)"])}},"Cycling (Virtual)":{LABEL:e=>{const{normalize:t}=e;return t(["Vélo (Virtuel)"])}},Hiking:{LABEL:e=>{const{normalize:t}=e;return t(["Randonnée"])}},"Mountain Biking":{LABEL:e=>{const{normalize:t}=e;return t(["VTT"])}},"Mountain Biking (Electric)":{LABEL:e=>{const{normalize:t}=e;return t(["VTT (Électrique)"])}},Rowing:{LABEL:e=>{const{normalize:t}=e;return t(["Aviron"])}},Running:{LABEL:e=>{const{normalize:t}=e;return t(["Course"])}},"Skiing (Alpine)":{LABEL:e=>{const{normalize:t}=e;return t(["Ski (Alpin)"])}},"Skiing (Cross Country)":{LABEL:e=>{const{normalize:t}=e;return t(["Ski (Randonnée)"])}},Snowshoes:{LABEL:e=>{const{normalize:t}=e;return t(["Raquettes"])}},Trail:{LABEL:e=>{const{normalize:t}=e;return t(["Trail"])}},Walking:{LABEL:e=>{const{normalize:t}=e;return t(["Marche"])}}},m={STATISTICS:e=>{const{normalize:t}=e;return t(["Statistiques"])},TIME_FRAMES:{week:e=>{const{normalize:t}=e;return t(["semaine"])},month:e=>{const{normalize:t}=e;return t(["mois"])},year:e=>{const{normalize:t}=e;return t(["année"])}}},_={ACCOUNT_CONFIRMATION_NOT_RECEIVED:e=>{const{normalize:t}=e;return t(["Vous n'avez pas reçu les instructions ?"])},ACCOUNT_CONFIRMATION_SENT:e=>{const{normalize:t}=e;return t(["Vérifiez vos courriels. Un nouveau courriel de confirmation a été envoyé à l'adresse électronique fournie."])},ADMIN:e=>{const{normalize:t}=e;return t(["Admin"])},ALREADY_HAVE_ACCOUNT:e=>{const{normalize:t}=e;return t(["Vous avez déjà un compte ?"])},CONFIRM_ACCOUNT_DELETION:e=>{const{normalize:t}=e;return t(["Êtes-vous sûr·e de vouloir supprimer votre compte ? Toutes les données seront définitivement effacés"])},CURRENT_PASSWORD:e=>{const{normalize:t}=e;return t(["Mot de passe actuel"])},EMAIL:e=>{const{normalize:t}=e;return t(["Courriel"])},EMAIL_INFO:e=>{const{normalize:t}=e;return t(["Saisissez une adresse électronique valide."])},ENTER_PASSWORD:e=>{const{normalize:t}=e;return t(["Saisissez un mot de passe"])},FILTER_ON_USERNAME:e=>{const{normalize:t}=e;return t(["Filtrer sur le nom d'utilisateur"])},HIDE_PASSWORD:e=>{const{normalize:t}=e;return t(["masquer le mot de passe"])},INVALID_TOKEN:e=>{const{normalize:t}=e;return t(["Jeton invalide, veuillez demander une nouvelle réinitialisation de mot de passe."])},LANGUAGE:e=>{const{normalize:t}=e;return t(["Langue"])},LOG_IN:e=>{const{normalize:t}=e;return t(["connecter"])},LOGIN:e=>{const{normalize:t}=e;return t(["Se connecter"])},LOGOUT:e=>{const{normalize:t}=e;return t(["Se déconnecter"])},NEW_PASSWORD:e=>{const{normalize:t}=e;return t(["Nouveau mot de passe"])},NO_USERS_FOUND:e=>{const{normalize:t}=e;return t(["Aucun utilisateur trouvé."])},PASSWORD:e=>{const{normalize:t}=e;return t(["Mot de passe"])},PASSWORD_INFO:e=>{const{normalize:t}=e;return t(["8 caractères minimum."])},PASSWORD_FORGOTTEN:e=>{const{normalize:t}=e;return t(["Mot de passe oublié ?"])},PASSWORD_RESET:e=>{const{normalize:t}=e;return t(["Réinitialisation du mot de passe"])},PASSWORD_SENT_EMAIL_TEXT:e=>{const{normalize:t}=e;return t(["Vérifiez vos courriels. Si vote adresse est dans notre base de données, vous recevrez un courriel avec un lien pour réinitialiser votre mot de passe."])},PASSWORD_STRENGTH:{WEAK:e=>{const{normalize:t}=e;return t(["faible"])},AVERAGE:e=>{const{normalize:t}=e;return t(["moyenne"])},GOOD:e=>{const{normalize:t}=e;return t(["bonne"])},STRONG:e=>{const{normalize:t}=e;return t(["forte"])},LABEL:e=>{const{normalize:t}=e;return t(["robustesse du mot de passe"])},SUGGESTIONS:{l33t:e=>{const{normalize:t}=e;return t(["Évitez les substitutions de lettres prévisibles comme ","@"," pour a."])},reverseWords:e=>{const{normalize:t}=e;return t(["Évitez les orthographes inversées des mots courants."])},allUppercase:e=>{const{normalize:t}=e;return t(["Mettez quelques lettres en majuscules, mais pas toutes."])},capitalization:e=>{const{normalize:t}=e;return t(["Capitalisez mais pas seulement la première lettre."])},dates:e=>{const{normalize:t}=e;return t(["Évitez les dates et les années qui vous sont associées. (ex : date ou année de naissance)."])},recentYears:e=>{const{normalize:t}=e;return t(["Évitez les dernières années."])},associatedYears:e=>{const{normalize:t}=e;return t(["Évitez les années qui vous sont associées. (ex : date de naissance)."])},sequences:e=>{const{normalize:t}=e;return t(["Évitez les séquences de caractères courantes."])},repeated:e=>{const{normalize:t}=e;return t(["Évitez les mots et les caractères répétés."])},longerKeyboardPattern:e=>{const{normalize:t}=e;return t(["Utilisez des motifs de clavier plus longs et changez de sens de frappe plusieurs fois."])},anotherWord:e=>{const{normalize:t}=e;return t(["Ajoutez des mots moins courants."])},useWords:e=>{const{normalize:t}=e;return t(["Utilisez plusieurs mots, mais évitez les phrases courantes."])},noNeed:e=>{const{normalize:t}=e;return t(["Vous pouvez créer des mots de passe forts sans utiliser de symboles, de chiffres ou de lettres majuscules."])},pwned:e=>{const{normalize:t}=e;return t(["Si vous utilisez ce mot de passe ailleurs, vous devriez le modifier."])}}},PASSWORD_UPDATED:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Votre mot de passe a été mis à jour. Cliquez ",n(r(0))," pour vous connecter."])},PROFILE:{ACCOUNT_EDITION:e=>{const{normalize:t}=e;return t(["Mise à jour du compte"])},ASCENT_DATA:e=>{const{normalize:t}=e;return t(["Données relatives au dénivelé positif (records, total)"])},BACK_TO_PROFILE:e=>{const{normalize:t}=e;return t(["Revenir au profil"])},BIO:e=>{const{normalize:t}=e;return t(["Bio"])},BIRTH_DATE:e=>{const{normalize:t}=e;return t(["Date de naissance"])},DATE_FORMAT:e=>{const{normalize:t}=e;return t(["Format d'affichage de la date"])},EDIT:e=>{const{normalize:t}=e;return t(["Modifier le profil"])},EDIT_PREFERENCES:e=>{const{normalize:t}=e;return t(["Modifier les préférences"])},EDIT_SPORTS_PREFERENCES:e=>{const{normalize:t}=e;return t(["Modifier les préférences des sports"])},ERRORED_EMAIL_UPDATE:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Veuillez vous ",n(r(0))," pour changer de nouveau votre adresse électronique ou contacter l'administrateur"])},FIRST_DAY_OF_WEEK:e=>{const{normalize:t}=e;return t(["Premier jour de la semaine"])},FIRST_NAME:e=>{const{normalize:t}=e;return t(["Prénom"])},LANGUAGE:e=>{const{normalize:t}=e;return t(["Langue"])},LAST_NAME:e=>{const{normalize:t}=e;return t(["Nom"])},LOCATION:e=>{const{normalize:t}=e;return t(["Lieu"])},MONDAY:e=>{const{normalize:t}=e;return t(["Lundi"])},PICTURE:e=>{const{normalize:t}=e;return t(["Image de profil"])},PICTURE_EDITION:e=>{const{normalize:t}=e;return t(["Mise à jour de l'image de profil"])},PICTURE_UPDATE:e=>{const{normalize:t}=e;return t(["Mettre à jour l'image"])},PICTURE_REMOVE:e=>{const{normalize:t}=e;return t(["Supprimer"])},PREFERENCES_EDITION:e=>{const{normalize:t}=e;return t(["Mise à jour des préférences"])},PROFILE_EDITION:e=>{const{normalize:t}=e;return t(["Mise à jour du profil"])},REGISTRATION_DATE:e=>{const{normalize:t}=e;return t(["Date d'inscription"])},SPORTS_EDITION:e=>{const{normalize:t}=e;return t(["Mise à jour des préférences des sports"])},SUNDAY:e=>{const{normalize:t}=e;return t(["Dimanche"])},TABS:{ACCOUNT:e=>{const{normalize:t}=e;return t(["compte"])},APPS:e=>{const{normalize:t}=e;return t(["apps"])},PICTURE:e=>{const{normalize:t}=e;return t(["image"])},PREFERENCES:e=>{const{normalize:t}=e;return t(["préférences"])},PROFILE:e=>{const{normalize:t}=e;return t(["profil"])},SPORTS:e=>{const{normalize:t}=e;return t(["sports"])}},UNITS:{LABEL:e=>{const{normalize:t}=e;return t(["Unités pour les distances"])},IMPERIAL:e=>{const{normalize:t}=e;return t(["Système impérial (ft, mi)"])},METRIC:e=>{const{normalize:t}=e;return t(["Système métrique (m, km)"])}},SPORT:{ACTION:e=>{const{normalize:t}=e;return t(["action"])},COLOR:e=>{const{normalize:t}=e;return t(["couleur"])},DISABLED_BY_ADMIN:e=>{const{normalize:t}=e;return t(["désactivé par l'administrateur"])},IS_ACTIVE:e=>{const{normalize:t}=e;return t(["actif"])},LABEL:e=>{const{normalize:t}=e;return t(["label"])},STOPPED_SPEED_THRESHOLD:e=>{const{normalize:t}=e;return t(["seuil de vitesse arrêtée"])}},SUCCESSFUL_EMAIL_UPDATE:e=>{const{normalize:t}=e;return t(["Votre compte a été modifié avec succès. Veuillez vérifier votre boîte de réception pour valider votre nouvelle adresse électronique."])},SUCCESSFUL_REGISTRATION:e=>{const{normalize:t}=e;return t(["Votre compte a été créé avec succès."])},SUCCESSFUL_REGISTRATION_WITH_EMAIL:e=>{const{normalize:t}=e;return t(["Un lien pour activer votre compte a été envoyé à l'adresse électronique fournie."])},SUCCESSFUL_UPDATE:e=>{const{normalize:t}=e;return t(["Votre compte a été modifié avec succès."])},TIMEZONE:e=>{const{normalize:t}=e;return t(["Fuseau horaire"])}},REGISTER:e=>{const{normalize:t}=e;return t(["S'inscrire"])},REGISTER_DISABLED:e=>{const{normalize:t}=e;return t(["Désolé, les inscriptions sont désactivées."])},RESENT_ACCOUNT_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Envoyer à nouveau le courriel de confirmation de compte"])},RESET_PASSWORD:e=>{const{normalize:t}=e;return t(["Réinitialiser votre mot de passe"])},SHOW_PASSWORD:e=>{const{normalize:t}=e;return t(["afficher le mot de passe"])},THIS_USER_ACCOUNT_IS_INACTIVE:e=>{const{normalize:t}=e;return t(["Le compte de cet utilisateur est inactif."])},USER_PICTURE:e=>{const{normalize:t}=e;return t(["photo de l'utilisateur"])},USERNAME:e=>{const{normalize:t}=e;return t(["Nom d'utilisateur"])},USERNAME_INFO:e=>{const{normalize:t}=e;return t(["3 à 30 caractères requis, seuls les caractères alphanumériques et le caractère _ sont autorisés."])}},E={ADD_WORKOUT:e=>{const{normalize:t}=e;return t(["Ajouter une séance"])},ANALYSIS:e=>{const{normalize:t}=e;return t(["analyse"])},ASCENT:e=>{const{normalize:t}=e;return t(["dénivelé positif"])},AVERAGE_SPEED:e=>{const{normalize:t}=e;return t(["vitesse moyenne"])},AVE_SPEED:e=>{const{normalize:t}=e;return t(["vitesse moy."])},BACK_TO_WORKOUT:e=>{const{normalize:t}=e;return t(["revenir à la séance"])},DATE:e=>{const{normalize:t}=e;return t(["date"])},DESCENT:e=>{const{normalize:t}=e;return t(["dénivelé négatif"])},DISPLAY_FILTERS:e=>{const{normalize:t}=e;return t(["afficher les filtres"])},DISTANCE:e=>{const{normalize:t}=e;return t(["distance"])},DURATION:e=>{const{normalize:t}=e;return t(["durée"])},EDIT_WORKOUT:e=>{const{normalize:t}=e;return t(["Modifier la séance"])},ELEVATION:e=>{const{normalize:t}=e;return t(["altitude"])},END:e=>{const{normalize:t}=e;return t(["fin"])},FROM:e=>{const{normalize:t}=e;return t(["à partir de"])},GPX_FILE:e=>{const{normalize:t}=e;return t(["fichier .gpx"])},HIDE_FILTERS:e=>{const{normalize:t}=e;return t(["masquer les filtres"])},INVALID_DISTANCE:e=>{const{normalize:t}=e;return t(["La distance doit être supérieure à 0"])},INVALID_DURATION:e=>{const{normalize:t}=e;return t(["La durée doit être supérieure à 0 secondes"])},LATEST_WORKOUTS:e=>{const{normalize:t}=e;return t(["Séances récentes"])},LOAD_MORE_WORKOUT:e=>{const{normalize:t}=e;return t(["Charger les séances suivantes"])},MAX_ALTITUDE:e=>{const{normalize:t}=e;return t(["altitude max"])},MAX_FILES:e=>{const{normalize:t}=e;return t(["fichiers max. "])},MAX_SIZE:e=>{const{normalize:t}=e;return t(["taille max. "])},MAX_SPEED:e=>{const{normalize:t}=e;return t(["vitesse max"])},MIN_ALTITUDE:e=>{const{normalize:t}=e;return t(["altitude min"])},NEXT_SEGMENT:e=>{const{normalize:t}=e;return t(["Segment suivant"])},NEXT_WORKOUT:e=>{const{normalize:t}=e;return t(["Séance suivante"])},NO_DATA_CLEANING:e=>{const{normalize:t}=e;return t(["données issues du fichier gpx, sans correction"])},NO_FILE_PROVIDED:e=>{const{normalize:t}=e;return t(["Pas de fichier fourni"])},NO_FOLDER:e=>{const{normalize:t}=e;return t(["pas de répertoire"])},NO_MAP:e=>{const{normalize:t}=e;return t(["Pas de carte"])},NO_NEXT_SEGMENT:e=>{const{normalize:t}=e;return t(["Pas de segment suivant"])},NO_NEXT_WORKOUT:e=>{const{normalize:t}=e;return t(["Pas de séance suivante"])},NO_NOTES:e=>{const{normalize:t}=e;return t(["Pas de notes"])},NO_PREVIOUS_SEGMENT:e=>{const{normalize:t}=e;return t(["Pas de segment précédent"])},NO_PREVIOUS_WORKOUT:e=>{const{normalize:t}=e;return t(["Pas de séance précédente"])},NO_RECORDS:e=>{const{normalize:t}=e;return t(["Pas de records."])},NO_WORKOUTS:e=>{const{normalize:t}=e;return t(["Pas de séances."])},NOTES:e=>{const{normalize:t}=e;return t(["notes"])},PAUSES:e=>{const{normalize:t}=e;return t(["pauses"])},PREVIOUS_SEGMENT:e=>{const{normalize:t}=e;return t(["Segment précédent"])},PREVIOUS_WORKOUT:e=>{const{normalize:t}=e;return t(["Séance précédente"])},RECORD:e=>{const{normalize:t,plural:n}=e;return n([t(["record"]),t(["records"])])},RECORD_AS:e=>{const{normalize:t}=e;return t(["Vitesse moy."])},RECORD_FD:e=>{const{normalize:t}=e;return t(["Distance la + longue"])},RECORD_HA:e=>{const{normalize:t}=e;return t(["Dénivelé positif le + élevé"])},RECORD_LD:e=>{const{normalize:t}=e;return t(["Durée la + longue"])},RECORD_MS:e=>{const{normalize:t}=e;return t(["Vitesse max."])},REMAINING_CHARS:e=>{const{normalize:t}=e;return t(["nombre de caractères restants "])},SEGMENT:e=>{const{normalize:t,plural:n}=e;return n([t(["segment"]),t(["segments"])])},SPEED:e=>{const{normalize:t}=e;return t(["vitesse"])},SPORT:e=>{const{normalize:t,plural:n}=e;return n([t(["sport"]),t(["sports"])])},START:e=>{const{normalize:t}=e;return t(["début"])},START_AND_FINISH:e=>{const{normalize:t}=e;return t(["Départ et arrivée"])},START_ELEVATION_AT_ZERO:e=>{const{normalize:t}=e;return t(["démarrer l'axe de l'altitude à 0"])},TITLE:e=>{const{normalize:t}=e;return t(["titre"])},TO:e=>{const{normalize:t}=e;return t(["jusqu'au"])},TOTAL_DURATION:e=>{const{normalize:t}=e;return t(["durée totale"])},UPLOAD_FIRST_WORKOUT:e=>{const{normalize:t}=e;return t(["Ajoutez votre première séance !"])},WEATHER:{HUMIDITY:e=>{const{normalize:t}=e;return t(["humidité"])},TEMPERATURE:e=>{const{normalize:t}=e;return t(["température"])},WIND:e=>{const{normalize:t}=e;return t(["vent"])},WIND_DIRECTIONS:{N:e=>{const{normalize:t}=e;return t(["N"])},NNE:e=>{const{normalize:t}=e;return t(["NNE"])},NE:e=>{const{normalize:t}=e;return t(["NE"])},ENE:e=>{const{normalize:t}=e;return t(["ENE"])},E:e=>{const{normalize:t}=e;return t(["E"])},ESE:e=>{const{normalize:t}=e;return t(["ESE"])},SE:e=>{const{normalize:t}=e;return t(["SE"])},SSE:e=>{const{normalize:t}=e;return t(["SSE"])},S:e=>{const{normalize:t}=e;return t(["S"])},SSW:e=>{const{normalize:t}=e;return t(["SSO"])},SW:e=>{const{normalize:t}=e;return t(["SO"])},WSW:e=>{const{normalize:t}=e;return t(["OSO"])},W:e=>{const{normalize:t}=e;return t(["O"])},WNW:e=>{const{normalize:t}=e;return t(["ONO"])},NW:e=>{const{normalize:t}=e;return t(["NO"])},NNW:e=>{const{normalize:t}=e;return t(["NNO"])}},DARK_SKY:{"clear-day":e=>{const{normalize:t}=e;return t(["ensoleillé"])},"clear-night":e=>{const{normalize:t}=e;return t(["nuit claire"])},cloudy:e=>{const{normalize:t}=e;return t(["nuageux"])},fog:e=>{const{normalize:t}=e;return t(["brouillard"])},"partly-cloudy-day":e=>{const{normalize:t}=e;return t(["partiellement nuageux"])},"partly-cloudy-night":e=>{const{normalize:t}=e;return t(["nuit partiellement nuageuse"])},rain:e=>{const{normalize:t}=e;return t(["pluie"])},sleet:e=>{const{normalize:t}=e;return t(["neige fondue"])},snow:e=>{const{normalize:t}=e;return t(["neige"])},wind:e=>{const{normalize:t}=e;return t(["venteux"])}}},WITH_GPX:e=>{const{normalize:t}=e;return t(["avec un fichier .gpx"])},WITHOUT_GPX:e=>{const{normalize:t}=e;return t(["sans fichier .gpx"])},WORKOUT:e=>{const{normalize:t,plural:n}=e;return n([t(["séance"]),t(["séances"])])},WORKOUT_DATE:e=>{const{normalize:t}=e;return t(["date de la séance"])},WORKOUT_DELETION_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Etes-vous sûr de vouloir supprimer cette séance ?"])},ZIP_ARCHIVE:e=>{const{normalize:t}=e;return t(["archive .zip"])},ZIP_ARCHIVE_DESCRIPTION:e=>{const{normalize:t}=e;return t(["ou une archive .zip contenant des fichiers .gpx"])}},S={about:r,admin:a,api:o,buttons:s,common:i,dashboard:l,error:c,oauth2:u,sports:d,statistics:m,user:_,workouts:E}},8891:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return S}});var r={},a={},o={},s={},i={},l={},c={},u={},d={},m={},_={},E={},S={about:r,admin:a,api:o,buttons:s,common:i,dashboard:l,error:c,oauth2:u,sports:d,statistics:m,user:_,workouts:E}},701:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return S}});var r={},a={},o={},s={},i={},l={},c={},u={},d={},m={},_={},E={},S={about:r,admin:a,api:o,buttons:s,common:i,dashboard:l,error:c,oauth2:u,sports:d,statistics:m,user:_,workouts:E}},4970:function(e,t,n){"use strict";var r=n(3148),a=n(7028),o=n(9963),s=n(2343),i=n(5205);(0,i.z)("/service-worker.js",{ready(){console.log("App is being served from cache by a service worker.\nFor more details, visit https://goo.gl/AFskqB")},registered(){console.log("Service worker has been registered.")},cached(){console.log("Content has been cached for offline use.")},updatefound(){console.log("New content is downloading.")},updated(){console.log("New content is available; please refresh.")},offline(){console.log("No internet connection found. App is running in offline mode.")},error(e){console.error("Error during service worker registration:",e)}});var l=n(6252),c=n(2262),u=n(3577);const d=e=>((0,l.dD)("data-v-2c73279e"),e=e(),(0,l.Cn)(),e),m={id:"footer"},_={class:"footer-items"},E={class:"footer-item"},S=d((()=>(0,l._)("strong",null,"FitTrackee",-1))),T=d((()=>(0,l._)("div",{class:"footer-item bullet"},"•",-1))),p={class:"footer-item"},A={key:0,class:"footer-item bullet"},O={key:1,class:"footer-item"},I=["href"],R=d((()=>(0,l._)("div",{class:"footer-item bullet"},"•",-1))),U={class:"footer-item"},g={href:"https://samr1.github.io/FitTrackee/",target:"_blank",rel:"noopener noreferrer"};var N=(0,l.aZ)({__name:"Footer",props:{version:null,adminContact:null},setup(e){const t=e,{adminContact:n,version:r}=(0,c.BK)(t);return(e,t)=>{const a=(0,l.up)("router-link");return(0,l.wg)(),(0,l.iD)("div",m,[(0,l._)("div",_,[(0,l._)("div",E,[S,(0,l.Uk)(" v"+(0,u.zw)((0,c.SU)(r)),1)]),T,(0,l._)("div",p,[(0,l.Wm)(a,{to:"/about"},{default:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)(e.$t("common.ABOUT")),1)])),_:1})]),(0,c.SU)(n)?((0,l.wg)(),(0,l.iD)("div",A,"•")):(0,l.kq)("",!0),(0,c.SU)(n)?((0,l.wg)(),(0,l.iD)("div",O,[(0,l._)("a",{href:`mailto:${(0,c.SU)(n)}`},(0,u.zw)(e.$t("common.CONTACT")),9,I)])):(0,l.kq)("",!0),R,(0,l._)("div",U,[(0,l._)("a",g,(0,u.zw)(e.$t("common.DOCUMENTATION")),1)])])])}}}),h=n(3744);const z=(0,h.Z)(N,[["__scopeId","data-v-2c73279e"]]);var w=z,f=(n(7658),n(6595)),v=n(5801),C=n(9917),D=n(6287);const k=e=>((0,l.dD)("data-v-95c1cc02"),e=e(),(0,l.Cn)(),e),P={id:"nav"},L={class:"nav-container"},M={class:"nav-app-name"},b={class:"nav-items-close"},y=k((()=>(0,l._)("div",{class:"app-name"},"FitTrackee",-1))),G={key:0,class:"nav-items-group"},F=k((()=>(0,l._)("div",{class:"nav-item nav-separator"},null,-1))),W={class:"nav-items-user-menu"},K={key:0,class:"nav-items-group"},Y={class:"nav-item nav-profile-img"},x={key:1,class:"nav-items-group"},B=k((()=>(0,l._)("i",{class:"fa fa-language"},null,-1)));var $=(0,l.aZ)({__name:"NavBar",emits:["menuInteraction"],setup(e,{emit:t}){const n=(0,C.o)(),r=(0,l.Fl)((()=>n.getters[v.YN.GETTERS.AUTH_USER_PROFILE])),a=(0,l.Fl)((()=>n.getters[v.YN.GETTERS.IS_AUTHENTICATED])),o=(0,l.Fl)((()=>n.getters[v.SY.GETTERS.LANGUAGE])),s=(0,c.iH)(!1);function i(){s.value=!0,t("menuInteraction",!0)}function d(){s.value=!1,t("menuInteraction",!1)}function m(e){n.dispatch(v.SY.ACTIONS.UPDATE_APPLICATION_LANGUAGE,e.value.toString())}function _(){n.dispatch(v.YN.ACTIONS.LOGOUT)}return(e,t)=>{const n=(0,l.up)("router-link"),E=(0,l.up)("Dropdown");return(0,l.wg)(),(0,l.iD)("div",P,[(0,l._)("div",L,[(0,l._)("div",M,[(0,l._)("div",{class:"nav-item app-name",onClick:t[0]||(t[0]=t=>e.$router.push("/"))}," FitTrackee ")]),(0,l._)("div",{class:(0,u.C_)(["nav-icon-open",{"menu-open":s.value}])},[(0,l._)("i",{class:"fa fa-bars hamburger-icon",onClick:t[1]||(t[1]=e=>i())})],2),(0,l._)("div",{class:(0,u.C_)(["nav-items",{"menu-open":s.value}])},[(0,l._)("div",b,[y,(0,l._)("i",{class:(0,u.C_)(["fa fa-close close-icon nav-item",{"menu-closed":!s.value}]),onClick:t[2]||(t[2]=e=>d())},null,2)]),(0,l._)("div",{class:"nav-items-app-menu",onClick:t[3]||(t[3]=e=>d())},[(0,c.SU)(a)?((0,l.wg)(),(0,l.iD)("div",G,[(0,l.Wm)(n,{class:"nav-item",to:"/"},{default:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)(e.$t("dashboard.DASHBOARD")),1)])),_:1}),(0,l.Wm)(n,{class:"nav-item",to:"/workouts"},{default:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)((0,u.kC)(e.$t("workouts.WORKOUT",2))),1)])),_:1}),(0,l.Wm)(n,{class:"nav-item",to:"/statistics"},{default:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)(e.$t("statistics.STATISTICS")),1)])),_:1}),(0,l.Wm)(n,{class:"nav-item",to:"/workouts/add"},{default:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)(e.$t("workouts.ADD_WORKOUT")),1)])),_:1}),(0,c.SU)(a)&&(0,c.SU)(r).admin?((0,l.wg)(),(0,l.j4)(n,{key:0,class:"nav-item",to:"/admin"},{default:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)(e.$t("admin.ADMIN")),1)])),_:1})):(0,l.kq)("",!0),F])):(0,l.kq)("",!0)]),(0,l._)("div",W,[(0,c.SU)(a)?((0,l.wg)(),(0,l.iD)("div",K,[(0,l._)("div",Y,[(0,l.Wm)(f.Z,{user:(0,c.SU)(r)},null,8,["user"])]),(0,l.Wm)(n,{class:"nav-item",to:"/profile",onClick:d},{default:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)((0,c.SU)(r).username),1)])),_:1}),(0,l._)("div",{class:"nav-item nav-link",onClick:_},(0,u.zw)(e.$t("user.LOGOUT")),1)])):((0,l.wg)(),(0,l.iD)("div",x,[(0,l.Wm)(n,{class:"nav-item",to:"/login",onClick:d},{default:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)(e.$t("user.LOGIN")),1)])),_:1}),(0,l.Wm)(n,{class:"nav-item",to:"/register",onClick:d},{default:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)(e.$t("user.REGISTER")),1)])),_:1})])),(0,c.SU)(D.mT)&&(0,c.SU)(o)?((0,l.wg)(),(0,l.j4)(E,{key:2,class:"nav-item",options:(0,c.SU)(D.mT),selected:(0,c.SU)(o),onSelected:m},{default:(0,l.w5)((()=>[B])),_:1},8,["options","selected"])):(0,l.kq)("",!0)])],2)])])}}});const Z=(0,h.Z)($,[["__scopeId","data-v-95c1cc02"]]);var H=Z,q=n(7167);const V={id:"no-config"},j={class:"error-page"},X={class:"error-img"},J=["innerHTML"];var Q=(0,l.aZ)({__name:"NoConfig",setup(e){return(e,t)=>((0,l.wg)(),(0,l.iD)("div",V,[(0,l._)("div",j,[(0,l._)("div",X,[(0,l.Wm)(q.Z)]),(0,l._)("p",{class:"error-message",innerHTML:e.$t("error.APP_ERROR")},null,8,J)])]))}});const ee=(0,h.Z)(Q,[["__scopeId","data-v-47759238"]]);var te=ee;const ne=(0,l._)("div",{id:"top"},null,-1),re={key:0,class:"app-container"},ae={class:"app-loading"},oe={class:"container scroll"},se=(0,l._)("i",{class:"fa fa-chevron-up","aria-hidden":"true"},null,-1),ie=[se];var le=(0,l.aZ)({__name:"App",setup(e){const t=(0,C.o)(),n=(0,l.Fl)((()=>t.getters[v.SY.GETTERS.APP_CONFIG])),r=(0,l.Fl)((()=>t.getters[v.SY.GETTERS.APP_LOADING])),a=(0,c.iH)(!1),o=(0,c.iH)(!1);function s(e){a.value=e}function i(e){return e.getBoundingClientRect().top=0}function d(){window.onscroll=()=>{const e=document.querySelector("#bottom");o.value=null!==e&&i(e)}}function m(){window.scrollTo({top:0,behavior:"smooth"}),setTimeout((()=>{o.value=!1}),300)}function _(){let e="en";try{const t=navigator.language.split("-")[0];t in D.v1&&(e=t)}catch(n){e="en"}t.dispatch(v.SY.ACTIONS.UPDATE_APPLICATION_LANGUAGE,e)}return(0,l.wF)((()=>{_(),t.dispatch(v.SY.ACTIONS.GET_APPLICATION_CONFIG)})),(0,l.bv)((()=>d())),(e,t)=>{const i=(0,l.up)("Loader"),d=(0,l.up)("router-view");return(0,l.wg)(),(0,l.iD)(l.HY,null,[ne,(0,l.Wm)(H,{onMenuInteraction:s}),(0,c.SU)(r)?((0,l.wg)(),(0,l.iD)("div",re,[(0,l._)("div",ae,[(0,l.Wm)(i)])])):((0,l.wg)(),(0,l.iD)("div",{key:1,class:(0,u.C_)(["app-container",{"hide-scroll":a.value}])},[(0,c.SU)(n)?((0,l.wg)(),(0,l.j4)(d,{key:0})):((0,l.wg)(),(0,l.j4)(te,{key:1}))],2)),(0,l._)("div",oe,[(0,l._)("div",{class:(0,u.C_)(["scroll-button",{"display-button":o.value}]),onClick:m},ie,2)]),(0,c.SU)(n)?((0,l.wg)(),(0,l.j4)(w,{key:2,version:(0,c.SU)(n)?(0,c.SU)(n).version:"",adminContact:(0,c.SU)(n).admin_contact},null,8,["version","adminContact"])):(0,l.kq)("",!0)],64)}}});const ce=le;var ue=ce,de=n(2540),me=n(7351),_e=n(2894);const Ee={class:"alert-message"},Se=["innerHTML"];var Te=(0,l.aZ)({__name:"AlertMessage",props:{message:null},setup(e){const t=e,{message:n}=(0,c.BK)(t);return(e,t)=>((0,l.wg)(),(0,l.iD)("div",Ee,[(0,l._)("div",{innerHTML:e.$t((0,c.SU)(n))},null,8,Se)]))}});const pe=(0,h.Z)(Te,[["__scopeId","data-v-69d7e4ff"]]);var Ae=pe,Oe=n(2531);const Ie={class:"custom-textarea"},Re=["id","name","maxLenght","disabled"],Ue={class:"remaining-chars"};var ge=(0,l.aZ)({__name:"CustomTextArea",props:{name:null,charLimit:{default:500},disabled:{type:Boolean,default:!1},input:{default:""}},emits:["updateValue"],setup(e,{emit:t}){const n=e,r=(0,c.iH)("");function a(e){t("updateValue",e.target.value)}return(0,l.YP)((()=>n.input),(e=>{r.value=null===e?"":e})),(t,n)=>((0,l.wg)(),(0,l.iD)("div",Ie,[(0,l.wy)((0,l._)("textarea",{id:e.name,name:e.name,maxLenght:e.charLimit,disabled:e.disabled,"onUpdate:modelValue":n[0]||(n[0]=e=>r.value=e),onInput:a},null,40,Re),[[o.nr,r.value]]),(0,l._)("div",Ue,(0,u.zw)(t.$t("workouts.REMAINING_CHARS"))+": "+(0,u.zw)(r.value.length)+"/"+(0,u.zw)(e.charLimit),1)]))}});const Ne=(0,h.Z)(ge,[["__scopeId","data-v-8cf5cc64"]]);var he=Ne,ze=n(3649),we=(0,l.aZ)({__name:"Distance",props:{distance:null,unitFrom:null,useImperialUnits:{type:Boolean},digits:{default:2},displayUnit:{type:Boolean,default:!0},speed:{type:Boolean,default:!1},strong:{type:Boolean,default:!1}},setup(e){const t=e,{digits:n,displayUnit:r,distance:a,speed:o,strong:s,unitFrom:i,useImperialUnits:d}=(0,c.BK)(t),m=(0,l.Fl)((()=>d.value?ze.Dl[i.value].defaultTarget:i.value)),_=(0,l.Fl)((()=>d.value?(0,ze.sC)(a.value,i.value,m.value,n.value):parseFloat(a.value.toFixed(n.value))));return(e,t)=>((0,l.wg)(),(0,l.iD)(l.HY,null,[(0,l._)("span",{class:(0,u.C_)(["distance",{strong:(0,c.SU)(s)}])},(0,u.zw)((0,c.SU)(_)),3),(0,l.Uk)(" "+(0,u.zw)(" ")+" "),(0,c.SU)(r)?((0,l.wg)(),(0,l.iD)("span",{key:0,class:(0,u.C_)(["unit",{strong:(0,c.SU)(s)}])},(0,u.zw)((0,c.SU)(m))+(0,u.zw)((0,c.SU)(o)?"/h":""),3)):(0,l.kq)("",!0)],64))}});const fe=(0,h.Z)(we,[["__scopeId","data-v-f46ff1d6"]]);var ve=fe,Ce=n(2201);const De={class:"dropdown-wrapper"},ke={key:0,class:"dropdown-list"},Pe=["onClick"];var Le=(0,l.aZ)({__name:"Dropdown",props:{options:null,selected:null},emits:{selected:e=>e},setup(e,{emit:t}){const n=e,r=(0,Ce.yj)(),a=(0,c.iH)(!1),o=n.options.map((e=>e));function s(){a.value=!a.value}function i(e){t("selected",e),a.value=!1}return(0,l.YP)((()=>r.path),(()=>a.value=!1)),(t,n)=>((0,l.wg)(),(0,l.iD)("div",De,[(0,l._)("div",{class:"dropdown-selected",onClick:s},[(0,l.WI)(t.$slots,"default")]),a.value?((0,l.wg)(),(0,l.iD)("ul",ke,[((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)((0,c.SU)(o),((t,n)=>((0,l.wg)(),(0,l.iD)("li",{class:(0,u.C_)(["dropdown-item",{selected:t.value===e.selected}]),key:n,onClick:e=>i(t)},(0,u.zw)(t.label),11,Pe)))),128))])):(0,l.kq)("",!0)]))}});const Me=(0,h.Z)(Le,[["__scopeId","data-v-2d3b4eac"]]);var be=Me;const ye={class:"error-message"},Ge={key:0},Fe={key:1};var We=(0,l.aZ)({__name:"ErrorMessage",props:{message:null},setup(e){const t=e,{message:n}=(0,c.BK)(t);return(e,t)=>((0,l.wg)(),(0,l.iD)("div",ye,[Array.isArray((0,c.SU)(n))?((0,l.wg)(),(0,l.iD)("ul",Ge,[((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)((0,c.SU)(n),((t,n)=>((0,l.wg)(),(0,l.iD)("li",{key:n},(0,u.zw)(e.$t(t)),1)))),128))])):((0,l.wg)(),(0,l.iD)("div",Fe,(0,u.zw)(e.$t((0,c.SU)(n))),1))]))}});const Ke=(0,h.Z)(We,[["__scopeId","data-v-2659a79a"]]);var Ye=Ke;const xe={version:"1.1",id:"Capa_1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",x:"0px",y:"0px",viewBox:"0 0 491.737 491.737",style:{"enable-background":"new 0 0 491.737 491.737"},"xml:space":"preserve"},Be=(0,l._)("desc",{id:"cyclingSportDescription"}," silhouette of a person riding a bicycle ",-1),$e=(0,l._)("g",null,[(0,l._)("path",{d:"M321.097,112.359c20.973,12.338,47.985,5.315,60.293-15.652c12.34-20.973,5.35-47.974-15.623-60.304\n\t\tc-21.009-12.332-47.99-5.317-60.314,15.65C293.129,73.036,300.103,100.027,321.097,112.359z"}),(0,l._)("path",{d:"M393.081,264.102c-2.414,0-4.8,0.194-7.169,0.362l-14.431-71.605l4.702-1.757c10.666-3.987,16.093-15.868,12.098-26.54\n\t\tc-3.994-10.681-15.946-16.084-26.531-12.09l-51.823,19.38l-2.321-18.864c6.3-13.193,5.541-29.78-4.767-41.482\n\t\tc-21.224-24.092-47.12-12.508-55.191-5.976l-106.884,86.555l0.016,0.024c-3.319,2.893-6.089,6.485-7.86,10.842\n\t\tc-2.191,5.396-2.596,11.067-1.564,16.384c-8.503,0.669-15.255,7.571-15.255,16.246c0,9.085,7.346,16.44,16.432,16.48l-6.797,15.906\n\t\tc-8.62-2.465-17.674-3.866-27.066-3.866C44.27,264.102,0,308.354,0,362.754c0,54.403,44.27,98.663,98.668,98.663\n\t\tc54.403,0,98.652-44.26,98.652-98.663c0-36.228-19.683-67.867-48.858-85.024l10.957-25.652h17.767l60.281,24.462l-32.201,52.773\n\t\tc-8.297,13.612-3.994,31.382,9.615,39.685c4.691,2.86,9.878,4.229,15,4.229c9.729,0,19.234-4.929,24.677-13.838l29.339-48.095\n\t\tl19.072,11.511c-5.447,12.227-8.54,25.726-8.54,39.95c0,54.403,44.254,98.663,98.652,98.663c54.402,0,98.656-44.26,98.656-98.663\n\t\tC491.737,308.354,447.483,264.102,393.081,264.102z M98.668,436.671c-40.756,0-73.923-33.161-73.923-73.917\n\t\tc0-40.756,33.167-73.909,73.923-73.909c5.944,0,11.649,0.896,17.188,2.224l-20.476,47.893\n\t\tc-11.758,1.619-20.843,11.598-20.843,23.792c0,13.323,10.808,24.132,24.13,24.132c8.767,0,16.367-4.745,20.589-11.76h52.065\n\t\tC165.395,409.988,135.188,436.671,98.668,436.671z M171.322,350.383h-52.065c-0.355-0.588-0.708-1.176-1.112-1.732l20.476-47.901\n\t\tC155.679,311.776,167.793,329.595,171.322,350.383z M296.781,290.175l7.666-12.564c4.416-7.233,5.431-16.038,2.774-24.084\n\t\tc-2.661-8.046-8.718-14.515-16.562-17.704l-52.725-21.395l32.443-26.281l1.804,14.691c0.756,6.267,4.366,11.841,9.761,15.12\n\t\tc3.271,1.981,6.979,2.988,10.698,2.988c2.435,0,4.88-0.435,7.218-1.306l48.15-18.001l13.627,67.691\n\t\tc-18.268,6.162-34.117,17.51-45.848,32.314L296.781,290.175z M375.396,337.633l-38.003-22.94\n\t\tc7.877-9.118,17.787-16.319,29.205-20.734L375.396,337.633z M393.081,436.671c-40.757,0-73.907-33.161-73.907-73.917\n\t\tc0-9.544,1.965-18.597,5.268-26.983l44.541,26.888c0,0.032-0.016,0.064-0.016,0.095c0,13.323,10.808,24.132,24.114,24.132\n\t\tc13.322,0,24.118-10.81,24.118-24.132c0-10.478-6.721-19.307-16.06-22.64l-10.277-51.043c0.756-0.024,1.463-0.226,2.22-0.226\n\t\tc40.757,0,73.911,33.153,73.911,73.909C466.992,403.51,433.838,436.671,393.081,436.671z"})],-1),Ze=[Be,$e];function He(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",xe,Ze)}var qe={name:"CyclingSport"};const Ve=(0,h.Z)(qe,[["render",He]]);var je=Ve;const Xe={version:"1.1",id:"Capa_1",x:"0px",y:"0px",viewBox:"0 0 491.737 491.737",style:{"enable-background":"new 0 0 491.737 491.737"},"xml:space":"preserve",xmlns:"http://www.w3.org/2000/svg","xmlns:svg":"http://www.w3.org/2000/svg"},Je=(0,l._)("desc",{id:"cyclingTransportDescription"}," silhouette of a person riding a bicycle (for transportation) ",-1),Qe=(0,l._)("g",{id:"g147"},[(0,l._)("path",{d:"m 189.097,82.359 c 20.97701,12.331184 47.97442,5.308784 60.293,-15.652 12.32942,-20.979222 5.35418,-47.981117 -15.623,-60.304 -21.00482,-12.3391184 -47.99,-5.317 -60.314,15.65 -12.324,20.983 -5.34599,47.967183 15.644,60.306 z",id:"path143"}),(0,l._)("path",{d:"m 393.081,264.102 c -2.414,0 -4.8,0.194 -7.169,0.362 l -14.431,-71.605 4.702,-1.757 c 10.666,-3.987 16.093,-15.868 12.098,-26.54 -3.994,-10.681 -15.946,-16.084 -26.531,-12.09 l -63.05508,-1.53717 C 284.04753,137.09803 248.90259,106.55858 243.33317,101.62481 217.77732,75.090916 186.1698,85.012419 178.0988,91.544419 L 140.764,192.085 l 0.016,0.024 c -3.319,2.893 -6.089,6.485 -7.86,10.842 -2.191,5.396 -2.596,11.067 -1.564,16.384 -8.503,0.669 -15.255,7.571 -15.255,16.246 0,9.085 7.346,16.44 16.432,16.48 l -6.797,15.906 c -8.62,-2.465 -17.674,-3.866 -27.066,-3.866 C 44.27,264.102 0,308.354 0,362.754 c 0,54.403 44.27,98.663 98.668,98.663 54.403,0 98.652,-44.26 98.652,-98.663 0,-36.228 -19.683,-67.867 -48.858,-85.024 l 10.957,-25.652 h 17.767 l 60.281,24.462 -32.201,52.773 c -8.297,13.612 -3.994,31.382 9.615,39.685 4.691,2.86 9.878,4.229 15,4.229 9.729,0 19.234,-4.929 24.677,-13.838 l 29.339,-48.095 19.072,11.511 c -5.447,12.227 -8.54,25.726 -8.54,39.95 0,54.403 44.254,98.663 98.652,98.663 54.402,0 98.656,-44.26 98.656,-98.663 0,-54.401 -44.254,-98.653 -98.656,-98.653 z M 98.668,436.671 c -40.756,0 -73.923,-33.161 -73.923,-73.917 0,-40.756 33.167,-73.909 73.923,-73.909 5.944,0 11.649,0.896 17.188,2.224 L 95.38,338.962 c -11.758,1.619 -20.843,11.598 -20.843,23.792 0,13.323 10.808,24.132 24.13,24.132 8.767,0 16.367,-4.745 20.589,-11.76 h 52.065 c -5.926,34.862 -36.133,61.545 -72.653,61.545 z m 72.654,-86.288 h -52.065 c -0.355,-0.588 -0.708,-1.176 -1.112,-1.732 l 20.476,-47.901 c 17.058,11.026 29.172,28.845 32.701,49.633 z m 125.459,-60.208 7.666,-12.564 c 4.416,-7.233 5.431,-16.038 2.774,-24.084 -2.661,-8.046 -8.718,-14.515 -16.562,-17.704 l -73.83357,-31.7176 16.7558,-45.21274 c 10.36934,4.13303 41.82171,27.90767 45.77423,28.08592 3.271,1.981 8.57725,1.46711 12.29625,1.46711 2.435,0 18.50584,0.70472 20.84384,-0.16628 L 343.32113,188.03378 361.635,269.33 c -18.268,6.162 -34.117,17.51 -45.848,32.314 z m 78.615,47.458 -38.003,-22.94 c 7.877,-9.118 17.787,-16.319 29.205,-20.734 z m 17.685,99.038 c -40.757,0 -73.907,-33.161 -73.907,-73.917 0,-9.544 1.965,-18.597 5.268,-26.983 l 44.541,26.888 c 0,0.032 -0.016,0.064 -0.016,0.095 0,13.323 10.808,24.132 24.114,24.132 13.322,0 24.118,-10.81 24.118,-24.132 0,-10.478 -6.721,-19.307 -16.06,-22.64 l -10.277,-51.043 c 0.756,-0.024 1.463,-0.226 2.22,-0.226 40.757,0 73.911,33.153 73.911,73.909 -10e-4,40.756 -33.155,73.917 -73.912,73.917 z",id:"path145"})],-1),et=[Je,Qe];function tt(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",Xe,et)}var nt={name:"CyclingTransport"};const rt=(0,h.Z)(nt,[["render",tt]]);var at=rt;const ot={version:"1.1",id:"Capa_1",x:"0px",y:"0px",viewBox:"0 0 491.737 491.737",style:{"enable-background":"new 0 0 491.737 491.737"},"xml:space":"preserve",xmlns:"http://www.w3.org/2000/svg","xmlns:svg":"http://www.w3.org/2000/svg"},st=(0,l.uE)(' silhouette of a person riding a bicycle with virtual indicator ',4),it=[st];function lt(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",ot,it)}var ct={name:"CyclingVirtual"};const ut=(0,h.Z)(ct,[["render",lt]]);var dt=ut;const mt={version:"1.1",id:"Capa_1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",x:"0px",y:"0px",viewBox:"0 0 463.507 463.507",style:{"enable-background":"new 0 0 463.507 463.507"},"xml:space":"preserve"},_t=(0,l._)("desc",{id:"hikingDescription"},"silhouette of a person hiking",-1),Et=(0,l._)("g",null,[(0,l._)("path",{d:"M246.413,78.492c21.688,0,39.255-17.573,39.255-39.251c0-21.67-17.567-39.24-39.255-39.24\n\t\tc-21.652,0-39.242,17.57-39.242,39.24C207.171,60.919,224.761,78.492,246.413,78.492z"}),(0,l._)("path",{d:"M386.604,202.858c0-11.185-9.066-20.251-20.253-20.251h-68.479l-38.62-54.832l0.127-0.933\n\t\tc1.378-10.474-1.474-21.067-7.911-29.444c-6.441-8.378-15.932-13.852-26.408-15.23c-11.596-1.511-22.592,2.224-30.852,9.225V45.779\n\t\tc0-7.847-6.362-14.217-14.225-14.217H140.59c-7.867,0-14.225,6.37-14.225,14.217v168.953c0,20.68,15.821,37.476,35.979,39.446\n\t\tl-3.043,7.073l-23.859,90.136l-53.73,72.188c-8.006,10.768-5.794,25.987,4.984,34.001c4.348,3.245,9.443,4.811,14.491,4.811\n\t\tc7.422,0,14.729-3.385,19.511-9.795l56.529-75.945c1.851-2.484,3.213-5.299,4.003-8.289l16.266-61.414l44.521,40.877l-6.076,88.603\n\t\tc-0.917,13.393,9.177,24.99,22.58,25.908c0.552,0.04,1.124,0.056,1.691,0.056c12.66,0,23.339-9.819,24.208-22.642l6.882-100.264\n\t\tc0.508-7.364-2.371-14.572-7.815-19.564l-45.994-42.219l13.992-90.613l19.331,27.435c3.801,5.387,9.972,8.592,16.552,8.592h70.882\n\t\tl1.339,232.294c0,4.478,3.626,8.101,8.101,8.101c4.479,0,8.101-3.624,8.101-8.101l-1.339-234.036\n\t\tC381.588,218.245,386.604,211.15,386.604,202.858z"})],-1),St=[_t,Et];function Tt(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",mt,St)}var pt={name:"Hiking"};const At=(0,h.Z)(pt,[["render",Tt]]);var Ot=At;const It={version:"1.1",id:"Capa_1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",x:"0px",y:"0px",viewBox:"0 0 503.162 503.162",style:{"enable-background":"new 0 0 503.162 503.162"},"xml:space":"preserve"},Rt=(0,l._)("desc",{id:"mountainBikingDescription"}," silhouette of a person riding a mountain bike ",-1),Ut=(0,l._)("g",null,[(0,l._)("g",null,[(0,l._)("path",{d:"M149.951,67.997c15.711-7.143,22.739-25.675,15.596-41.416c-7.124-15.701-25.723-22.682-41.453-15.539\n\t\t\tc-15.721,7.134-22.702,25.752-15.578,41.444C115.679,68.216,134.23,75.14,149.951,67.997z"}),(0,l._)("path",{d:"M87.517,89.072l-32.828,87.755c-1.979,5.967-1.683,12.594,1.1,18.733c4.055,8.922,12.604,14.525,21.755,15.271\n\t\t\tl76.873,6.244l29.137,64.184c4.122,9.046,14.832,13.148,23.906,9.017c9.075-4.131,13.072-14.859,8.951-23.944l-36.424-80.201\n\t\t\tc0,0-3.605-13.76-21.343-14.133l-43.873-2.572l21.009-55.166l31.671,20.588c5.584,3.663,10.997,3.682,15.1,1.722l55.051-24.997\n\t\t\tc17.069-7.755,6.952-30.036-10.108-22.29l-47.506,21.707l-53.55-34.846c0,0-11.638-8.013-24.241-2.285\n\t\t\tC102.205,73.858,91.112,77.243,87.517,89.072z"}),(0,l._)("path",{d:"M423.687,182.488l-2.61,15.042c-2.123,12.154-13.35,25.092-25.092,28.888l-3.711,1.195\n\t\t\tc3.041-16.543,1.282-34.148-6.215-50.633c-19.498-42.974-70.094-61.87-112.943-42.419\n\t\t\tc-42.878,19.479-61.936,70.017-42.438,112.981c17.069,37.562,57.881,56.744,96.534,47.966l-0.784,1.415\n\t\t\tc-5.968,10.796-20.817,19.221-33.144,18.8l-17.892-0.622c-12.336-0.411-30.514,5.002-40.603,12.116l-22.376,15.759\n\t\t\tc-10.107,7.104-28.276,12.632-40.612,12.354l-12.001-0.277c12.718-22.845,14.889-51.159,3.242-76.806\n\t\t\tc-19.517-42.955-70.074-61.879-113.019-42.381c-42.792,19.44-61.87,70.007-42.372,112.933\n\t\t\tc16.667,36.711,56.084,55.788,93.914,48.444l-1.32,2.056c-6.675,10.385-22.08,18.398-34.406,17.92l-32.79-1.291\n\t\t\tc-12.326-0.497-24.021,8.97-26.096,21.143l-2.62,15.339c-0.564,3.271-0.354,6.11,0.401,8.501c-0.43,1.778-0.736,3.548-0.736,5.326\n\t\t\tv9.562c0,10.557,8.568,19.125,19.125,19.125h460.932c10.557,0,19.115-8.568,19.106-19.125l-0.125-167.507\n\t\t\tc0-2.782-0.593-5.221-1.616-7.286c1.396-3.806,2.057-7.841,1.598-11.839l-4.677-40.497c-1.415-12.249-9.763-29.146-18.637-37.724\n\t\t\tl-36.127-34.951C434.712,167.418,425.79,170.325,423.687,182.488z"})])],-1),gt=[Rt,Ut];function Nt(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",It,gt)}var ht={name:"MountainBiking"};const zt=(0,h.Z)(ht,[["render",Nt]]);var wt=zt;const ft={version:"1.1",id:"Capa_1",xmlns:"http://www.w3.org/2000/svg","xmlns:svg":"http://www.w3.org/2000/svg",x:"0px",y:"0px",viewBox:"0 0 503.162 503.162",style:{"enable-background":"new 0 0 503.162 503.162"},"xml:space":"preserve"},vt=(0,l.uE)(' silhouette of a person riding an electric mountain bike ',18),Ct=[vt];function Dt(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",ft,Ct)}var kt={name:"MountainBikingElectric"};const Pt=(0,h.Z)(kt,[["render",Dt]]);var Lt=Pt;const Mt={version:"1.1",id:"Capa_1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",x:"0px",y:"0px",viewBox:"0 0 534.51 534.51",style:{"enable-background":"new 0 0 534.51 534.51"},"xml:space":"preserve"},bt=(0,l._)("desc",{id:"rowingDescription"},"silhouette of a person rowing",-1),yt=(0,l._)("g",null,[(0,l._)("g",null,[(0,l._)("path",{d:"M70.517,393.857h132.622l-67.205,68.631c-3.28,3.385-3.204,8.797,0.172,12.076c1.597,1.568,3.72,2.43,5.958,2.43\n\t\t\tc2.305,0,4.533-0.947,6.12-2.572l78.881-80.555h221.315c12.45,0,30.676-6.006,40.296-13.914\n\t\t\tc8.788-7.229,19.049-16.217,26.345-24.299c10.375-9.811,22.214-23.639-4.255-22.834c-6.98,0.248-206.789,0.02-223.926,0\n\t\t\tl47.144-48.139l22.176-22.032l28.209,9.17c10.414,3.385,22.472-0.803,26.919-9.362c4.446-8.558,0.268-18.407-9.343-21.993\n\t\t\tl-17.404-6.512l54.698-54.774c12.507,6.617,28.362,4.867,38.899-5.671l46.541-46.607c13.11-13.015,13.11-33.957,0-46.923\n\t\t\tc-12.909-13.034-34.042-13.034-46.942,0l-46.512,46.598c-10.892,10.815-12.508,27.139-5.26,39.742l-57.853,59.077L253.744,183.09\n\t\t\tc-1.482-0.851-14.153-5.786-26.833-10.643c-14.898-5.719-30.371,0.583-34.53,13.971l-7.525,24.241l-35.324,118.451\n\t\t\tc-0.468,1.34-0.603,2.562-0.746,3.711H14.136c-12.45,0-17.662,8.836-11.618,19.727l23.237,21.592\n\t\t\tC39.123,385.068,58.066,393.857,70.517,393.857z M272.63,248.727c1.797-5.967,8.099-9.39,14.075-7.64l51.37,14.975l-33.038,33.737\n\t\t\tl-43.453,43.012h-14.2L272.63,248.727z"}),(0,l._)("circle",{cx:"248.953",cy:"109.842",r:"52.326"})])],-1),Gt=[bt,yt];function Ft(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",Mt,Gt)}var Wt={name:"Rowing"};const Kt=(0,h.Z)(Wt,[["render",Ft]]);var Yt=Kt;const xt={version:"1.1",id:"Capa_1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",x:"0px",y:"0px",viewBox:"0 0 494.49 494.49",style:{"enable-background":"new 0 0 494.49 494.49"},"xml:space":"preserve"},Bt=(0,l._)("desc",{id:"runningDescription"},"silhouette of a running person",-1),$t=(0,l._)("g",null,[(0,l._)("path",{d:"M282.74,80.771c22.318,0,40.401-18.08,40.401-40.389C323.141,18.084,305.058,0,282.74,0\n\t\tc-22.281,0-40.378,18.084-40.378,40.383C242.362,62.691,260.458,80.771,282.74,80.771z"}),(0,l._)("path",{d:"M400.207,188.547H331.47l-38.766-55.03l0.123-0.944c1.384-10.514-1.475-21.146-7.94-29.556\n\t\tc-6.461-8.409-16.007-13.903-26.52-15.287c-10.926-1.429-22.619,3.12-31.206,8.646c-1.441,0.928-84.97,54.921-84.97,54.921\n\t\tc-5.175,3.358-8.542,8.877-9.165,15.016c-0.634,6.13,1.574,12.222,5.976,16.541l58.982,58l-6.417,48.954l-18.707,65.584l-67.8-19.4\n\t\tc-12.911-3.676-26.44,3.796-30.159,16.747c-3.699,12.951,3.799,26.459,16.758,30.168l91.271,26.109\n\t\tc2.192,0.627,4.444,0.936,6.7,0.936c4.113,0,8.195-1.04,11.848-3.073c5.655-3.146,9.833-8.409,11.611-14.635l21.963-77.057\n\t\tl26.365,36.639l6.684,119.628c0.73,12.991,11.501,23.036,24.349,23.036c0.441,0,0.92-0.016,1.379-0.039\n\t\tc13.453-0.748,23.745-12.262,23-25.713l-7.083-126.736c-0.271-4.643-1.846-9.116-4.56-12.887l-32.24-44.811l11.959-91.279\n\t\tl19.409,27.555c3.794,5.407,10.005,8.624,16.613,8.624h79.28c11.226,0,20.326-9.101,20.326-20.329\n\t\tC420.533,197.647,411.432,188.547,400.207,188.547z M204.606,190.357l-19.026-18.717l23.476-15.206L204.606,190.357z"})],-1),Zt=[Bt,$t];function Ht(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",xt,Zt)}var qt={name:"Running"};const Vt=(0,h.Z)(qt,[["render",Ht]]);var jt=Vt;const Xt={version:"1.1",id:"Capa_1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",x:"0px",y:"0px",viewBox:"0 0 522.362 522.362",style:{"enable-background":"new 0 0 522.362 522.362"},"xml:space":"preserve"},Jt=(0,l._)("desc",{id:"alpineSkiingDescription"},"silhouette of a person skiing",-1),Qt=(0,l._)("g",null,[(0,l._)("g",null,[(0,l._)("path",{d:"M14.314,351.859L408.088,461.78c4.484,1.311,9.104,1.97,13.731,1.97l0,0c17.471,0,33.746-9.429,42.467-24.604\n\t\t\tc2.716-4.724,3.137-10.27,1.157-15.214c-1.912-4.762-5.767-8.31-10.576-9.744c-7.373-2.237-15.481,1.109-22.146,9.229\n\t\t\tc-3.548,4.303-9.496,6.244-15.07,4.714l-136.467-38.078c1.396-0.555,2.812-1.195,4.236-2.065l103.266-63.15\n\t\t\tc15.443-9.362,18.493-33.957,7.812-43.883l-64.758-60.233l39.972-21.688l69.682,9.744c5.23,0.736,9.744-2.037,10.079-6.187\n\t\t\tc0.344-4.141-3.624-8.1-8.855-8.826l-48.605-6.828l22.472-12.192c39.895-23.275,5.823-85.192-35.334-63.112l-87.554,61.19\n\t\t\tl-117.503-16.515l2.543-12.087c0.545-2.582-1.109-5.116-3.691-5.661c-2.572-0.593-5.116,1.1-5.661,3.701l-2.678,12.709\n\t\t\tl-18.331-2.582c-5.231-0.727-9.467,2.123-9.467,6.369s4.236,8.281,9.467,9.017l15.176,2.123l-2.544,12.087\n\t\t\tc-0.545,2.582,1.109,5.125,3.691,5.671c0.334,0.076,0.66,0.105,0.994,0.105c2.209,0,4.198-1.54,4.676-3.787l2.678-12.737\n\t\t\tl102.414,14.315l-5.308,3.72c-4.332,3.022-10.155,9.151-11.723,14.201c-3.844,12.45-1.473,26.717,10.452,37.705l68.802,62.175\n\t\t\tc0,0-50.978,31.776-74.998,46.397c-14.219,8.606-13.674,23.858-6.129,33.393L23.705,318.199\n\t\t\tc-10.012-2.792-20.569,2.554-23.113,11.695C-2,339.169,4.159,349.029,14.314,351.859z"}),(0,l._)("path",{d:"M450.842,72.003c-15.291,16.715-14.201,42.667,2.639,58.121c16.706,15.31,42.716,14.086,58.073-2.668\n\t\t\tc15.386-16.677,14.172-42.734-2.544-58.016C492.305,54.064,466.17,55.192,450.842,72.003z"})])],-1),en=[Jt,Qt];function tn(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",Xt,en)}var nn={name:"SkiingAlpine"};const rn=(0,h.Z)(nn,[["render",tn]]);var an=rn;const on={version:"1.1",id:"Capa_1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",x:"0px",y:"0px",viewBox:"0 0 296 296",style:{"enable-background":"new 0 0 296 296"},"xml:space":"preserve"},sn=(0,l._)("desc",{id:"crossCountrySkiingDescription"}," silhouette of a person skiing (cross country) ",-1),ln=(0,l._)("g",null,[(0,l._)("path",{d:"M241.313,246.906h-39.564l0.456-1.273c5.62-18.374,3.479-37.58-6.027-54.278c-5.653-9.929-13.443-18.018-22.745-23.959\n\t\tl12.886-51.126c3.035-12.05-4.272-24.266-16.322-27.301c-2.634-0.664-5.278-0.826-7.833-0.559\n\t\tc-0.151-0.011-0.299-0.032-0.452-0.038c-26.03-1.077-51.443,8.485-70.33,25.993L41.586,82.855\n\t\tc-4.332-2.741-10.065-1.451-12.806,2.881s-1.451,10.065,2.88,12.806l47.625,30.136c-2.557,6.013-0.962,13.224,4.375,17.531\n\t\tc2.774,2.24,6.104,3.33,9.413,3.33c4.377-0.001,8.717-1.907,11.68-5.579l0.478-0.591c8.686-10.766,20.465-18.479,33.484-22.317\n\t\tl-11.095,44.046c-1.061,4.214-0.854,8.448,0.374,12.305c-12.908,17.917-28.398,33.68-46.198,46.979l-14.649,10.727\n\t\tc-3.938,2.943-6.001,7.798-6.005,11.798H8.25c-4.556,0-8.083,4.131-8.083,8.688v2.063c0,4.556,3.527,8.25,8.083,8.25h55.188\n\t\th161.375H280c9.113,0,16.167-7.387,16.167-16.5v-2.5H241.313z M153.974,192.398c0.741-0.153,1.471-0.231,2.188-0.457\n\t\tc5.742,3.406,10.53,8.313,13.945,14.311c5.378,9.447,6.59,20.402,3.41,30.797l-1.799,5.674c-0.447,1.461-0.656,3.184-0.657,4.184\n\t\th-69.909C121.581,231.906,139.297,213.274,153.974,192.398z M167,57.938c0-15.378,12.466-27.844,27.844-27.844\n\t\ts27.844,12.466,27.844,27.844s-12.466,27.844-27.844,27.844S167,73.315,167,57.938z"})],-1),cn=[sn,ln];function un(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",on,cn)}var dn={name:"SkiingCrossCountry"};const mn=(0,h.Z)(dn,[["render",un]]);var _n=mn;const En={version:"1.1",id:"Capa_1",x:"0px",y:"0px",viewBox:"0 0 494.49 494.49",style:{"enable-background":"new 0 0 494.49 494.49"},"xml:space":"preserve",xmlns:"http://www.w3.org/2000/svg","xmlns:svg":"http://www.w3.org/2000/svg"},Sn=(0,l.uE)('silhouette of a person with snowshoes',6),Tn=[Sn];function pn(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",En,Tn)}var An={name:"Snowshoes"};const On=(0,h.Z)(An,[["render",pn]]);var In=On;const Rn={version:"1.1",id:"Capa_1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",x:"0px",y:"0px",viewBox:"0 0 535.876 535.876",style:{"enable-background":"new 0 0 535.876 535.876"},"xml:space":"preserve"},Un=(0,l._)("desc",{id:"trailDescription"},"silhouette of a person running (trail)",-1),gn=(0,l._)("g",null,[(0,l._)("g",null,[(0,l._)("path",{d:"M505.204,326.949c-5.805-10.892-15.176-10.862-20.923,0.067l-7.114,13.512c-5.757,10.92-20.416,19.775-32.752,19.775\n\t\t\th-16.753c-12.346,0-29.645,6.847-38.643,15.29l-32.35,30.342l-1.233-105.388c0.822-18.446-10.596-24.634-10.596-24.634\n\t\t\tl-56.543-25.972l33.67-67.645l38.527,22.912c0,0,15.472,9.715,26.727-9.324l37.026-63.093c1.625-3.519,2.094-7.564,1.052-11.609\n\t\t\tc-2.381-9.256-11.81-14.86-21.095-12.479c-4.083,1.042-7.459,3.49-9.754,6.713l-30.772,51.962l-62.777-37.102\n\t\t\tc-4.733-2.716-10.519-3.691-16.257-2.209l-78.345,20.12c-5.03,1.291-8.96,4.762-11.017,9.142l-38.097,76.165\n\t\t\tc-2.591,3.854-3.624,8.73-2.371,13.607c2.285,8.941,11.456,14.363,20.435,12.059c5.04-1.291,8.951-4.743,10.997-9.161\n\t\t\tl35.314-70.858l28.936-7.296l-76.203,149.921l-65.981,16.734c-1.759,0.393-3.48,1.023-5.163,1.836\n\t\t\tc-10.596,5.412-14.679,18.179-9.267,28.803c4.733,9.266,15.252,13.636,24.901,10.978l78.067-20.187\n\t\t\tc18.6-4.093,23.313-14.449,23.313-14.449l30.581-58.79l62.28,35.678l0.593,86.216c0.01,1.08,0.259,2.161,0.421,3.241l-11.6-4.188\n\t\t\tc-11.608-4.188-30.57-4.608-42.361-0.956l-26.135,8.128c-11.79,3.663-30.791,3.338-42.447-0.717l-19.221-6.694\n\t\t\tc-11.657-4.054-28.831-0.984-38.374,6.838L109.9,433.954c-9.544,7.822-26.67,10.72-38.25,6.483L40.84,429.135\n\t\t\tc-11.58-4.256-25.608,1.157-31.336,12.097l-7.21,13.789c-5.728,10.93-0.354,19.794,11.982,19.794H500.27\n\t\t\tc12.336,0,24.309-9.802,26.728-21.907l8.004-39.981c2.409-12.097-0.325-30.733-6.14-41.616L505.204,326.949z"}),(0,l._)("path",{d:"M326.395,126.625c17.806-4.562,28.563-22.721,23.983-40.526c-4.581-17.844-22.74-28.554-40.555-23.983\n\t\t\tc-17.796,4.581-28.535,22.711-23.964,40.535C290.439,120.476,308.599,131.205,326.395,126.625z"})])],-1),Nn=[Un,gn];function hn(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",Rn,Nn)}var zn={name:"Trail"};const wn=(0,h.Z)(zn,[["render",hn]]);var fn=wn;const vn={version:"1.1",id:"Capa_1",x:"0px",y:"0px",viewBox:"0 0 494.49 494.49",style:{"enable-background":"new 0 0 494.49 494.49"},"xml:space":"preserve",xmlns:"http://www.w3.org/2000/svg","xmlns:svg":"http://www.w3.org/2000/svg"},Cn=(0,l.uE)('silhouette of a walking person',3),Dn=[Cn];function kn(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",vn,Dn)}var Pn={name:"Walking"};const Ln=(0,h.Z)(Pn,[["render",kn]]);var Mn=Ln;const bn=["title"];var yn=(0,l.aZ)({__name:"index",props:{sportLabel:null,color:null,title:{default:""}},setup(e){const t=e,{color:n,sportLabel:r,title:a}=(0,c.BK)(t),o=(0,l.f3)("sportColors");return(e,t)=>((0,l.wg)(),(0,l.iD)("div",{class:"sport-img",style:(0,u.j5)({fill:(0,c.SU)(n)?(0,c.SU)(n):(0,c.SU)(o)[(0,c.SU)(r)]}),title:(0,c.SU)(a)?(0,c.SU)(a):e.$t(`sports.${(0,c.SU)(r)}.LABEL`)},["Cycling (Sport)"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(je,{key:0})):(0,l.kq)("",!0),"Cycling (Transport)"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(at,{key:1})):(0,l.kq)("",!0),"Cycling (Virtual)"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(dt,{key:2})):(0,l.kq)("",!0),"Hiking"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(Ot,{key:3})):(0,l.kq)("",!0),"Mountain Biking"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(wt,{key:4})):(0,l.kq)("",!0),"Mountain Biking (Electric)"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(Lt,{key:5})):(0,l.kq)("",!0),"Rowing"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(Yt,{key:6})):(0,l.kq)("",!0),"Running"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(jt,{key:7})):(0,l.kq)("",!0),"Skiing (Alpine)"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(an,{key:8})):(0,l.kq)("",!0),"Skiing (Cross Country)"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(_n,{key:9})):(0,l.kq)("",!0),"Snowshoes"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(In,{key:10})):(0,l.kq)("",!0),"Trail"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(fn,{key:11})):(0,l.kq)("",!0),"Walking"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(Mn,{key:12})):(0,l.kq)("",!0)],12,bn))}});const Gn=yn;var Fn=Gn;const Wn={class:"loader"};function Kn(e,t){return(0,l.wg)(),(0,l.iD)("div",Wn)}const Yn={},xn=(0,h.Z)(Yn,[["render",Kn],["__scopeId","data-v-4c9921ee"]]);var Bn=xn;const $n={id:"modal"},Zn={class:"custom-modal"},Hn={key:0,class:"modal-message"},qn={key:1,class:"modal-message"},Vn={class:"modal-buttons"};var jn=(0,l.aZ)({__name:"Modal",props:{title:null,message:null,strongMessage:{default:()=>null}},emits:["cancelAction","confirmAction"],setup(e,{emit:t}){const n=e,r=(0,C.o)(),{title:a,message:o,strongMessage:s}=(0,c.BK)(n),i=(0,l.Fl)((()=>r.getters[v.SY.GETTERS.ERROR_MESSAGES]));return(0,l.Ah)((()=>r.commit(v.SY.MUTATIONS.EMPTY_ERROR_MESSAGES))),(e,n)=>{const r=(0,l.up)("i18n-t"),d=(0,l.up)("ErrorMessage"),m=(0,l.up)("Card");return(0,l.wg)(),(0,l.iD)("div",$n,[(0,l._)("div",Zn,[(0,l.Wm)(m,null,{title:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)((0,c.SU)(a)),1)])),content:(0,l.w5)((()=>[(0,c.SU)(s)?((0,l.wg)(),(0,l.iD)("div",Hn,[(0,l.Wm)(r,{keypath:(0,c.SU)(o)},{default:(0,l.w5)((()=>[(0,l._)("span",null,(0,u.zw)((0,c.SU)(s)),1)])),_:1},8,["keypath"])])):((0,l.wg)(),(0,l.iD)("div",qn,(0,u.zw)((0,c.SU)(o)),1)),(0,c.SU)(i)?((0,l.wg)(),(0,l.j4)(d,{key:2,message:(0,c.SU)(i)},null,8,["message"])):(0,l.kq)("",!0),(0,l._)("div",Vn,[(0,c.SU)(i)?(0,l.kq)("",!0):((0,l.wg)(),(0,l.iD)("button",{key:0,class:"confirm",onClick:n[0]||(n[0]=e=>t("confirmAction"))},(0,u.zw)(e.$t("buttons.YES")),1)),(0,l._)("button",{class:"cancel",onClick:n[1]||(n[1]=e=>t("cancelAction"))},(0,u.zw)(e.$t("buttons."+((0,c.SU)(i)?"CANCEL":"NO"))),1)])])),_:1})])])}}});const Xn=(0,h.Z)(jn,[["__scopeId","data-v-e8fcfaba"]]);var Jn=Xn;const Qn=[{target:Ae,name:"AlertMessage"},{target:Oe.Z,name:"Card"},{target:he,name:"CustomTextArea"},{target:ve,name:"Distance"},{target:be,name:"Dropdown"},{target:Ye,name:"ErrorMessage"},{target:Bn,name:"Loader"},{target:Jn,name:"Modal"},{target:Fn,name:"SportImage"}],er={mounted:(e,t)=>{e.clickOutsideEvent=function(n){e===n.target||e.contains(n.target)||t.value(n)},document.body.addEventListener("click",e.clickOutsideEvent),document.body.addEventListener("touchstart",e.clickOutsideEvent)},unmounted:function(e){e.clickOutsideEvent&&(document.body.removeEventListener("click",e.clickOutsideEvent),document.body.removeEventListener("touchstart",e.clickOutsideEvent),e.clickOutsideEvent=void 0)}};var tr=n(631);r.kL.register(r.ZL,r.jn,r.od,r.De,r.Dx,r.u,r.Gu,r.vn,r.uw,r.ST,r.f$,a.Z);const nr=(0,o.ri)(ue).provide("sportColors",tr.Zo).use(de.Z).use(_e.Z).use(me.Z).use(s.ZP,{name:"VFullscreen"}).directive("click-outside",er);Qn.forEach((e=>{nr.component(e.name,e.target)})),nr.mount("#app")},7351:function(e,t,n){"use strict";n.d(t,{Z:function(){return wl}});var r=n(2201),a=(n(7658),n(6252)),o=n(3577),s=n(9963),i=n(2262),l=n(5801),c=n(9917),u=n(8966);const d=e=>((0,a.dD)("data-v-24ec93e2"),e=e(),(0,a.Cn)(),e),m={id:"admin-app",class:"admin-card"},_=["onSubmit"],E={for:"admin_contact"},S=["value"],T=["disabled"],p={for:"max_users"},A=["disabled"],O={class:"user-limit-help"},I={class:"info-box"},R=d((()=>(0,a._)("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1))),U={for:"max_single_file_size"},g=["disabled"],N={for:"max_zip_file_size"},h=["disabled"],z={for:"gpx_limit_import"},w=["disabled"],f={key:1,class:"form-buttons"},v={class:"confirm",type:"submit"},C=["onClick"],D={key:2,class:"form-buttons"};var k=(0,a.aZ)({__name:"AdminApplication",props:{appConfig:null,edition:{type:Boolean,default:!1}},setup(e){const t=e,{edition:n}=(0,i.BK)(t),d=(0,c.o)(),k=(0,r.tv)(),P=(0,i.qj)({admin_contact:"",max_users:0,max_single_file_size:0,max_zip_file_size:0,gpx_limit_import:0}),L=(0,a.Fl)((()=>d.getters[l.SY.GETTERS.ERROR_MESSAGES]));function M(e){Object.keys(P).map((t=>{["max_single_file_size","max_zip_file_size"].includes(t)?P[t]=(0,u.j)(e[t]):P[t]=e[t]}))}function b(){M(t.appConfig),d.commit(l.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),k.push("/admin/application")}function y(){const e=Object.assign({},P);e.max_single_file_size*=1048576,e.max_zip_file_size*=1048576,d.dispatch(l.SY.ACTIONS.UPDATE_APPLICATION_CONFIG,e)}return(0,a.wF)((()=>{t.appConfig&&M(t.appConfig)})),(e,t)=>{const r=(0,a.up)("ErrorMessage"),l=(0,a.up)("Card");return(0,a.wg)(),(0,a.iD)("div",m,[(0,a.Wm)(l,null,{title:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.$t("admin.APP_CONFIG.TITLE")),1)])),content:(0,a.w5)((()=>[(0,a._)("form",{class:"admin-form",onSubmit:(0,s.iM)(y,["prevent"])},[(0,a._)("label",E,[(0,a.Uk)((0,o.zw)(e.$t("admin.APP_CONFIG.ADMIN_CONTACT"))+": ",1),(0,i.SU)(n)||P.admin_contact?(0,a.wy)(((0,a.wg)(),(0,a.iD)("input",{key:1,id:"admin_contact",name:"admin_contact",type:"email","onUpdate:modelValue":t[0]||(t[0]=e=>P.admin_contact=e),disabled:!(0,i.SU)(n)},null,8,T)),[[s.nr,P.admin_contact]]):((0,a.wg)(),(0,a.iD)("input",{key:0,class:"no-contact",value:e.$t("admin.APP_CONFIG.NO_CONTACT_EMAIL"),disabled:""},null,8,S))]),(0,a._)("label",p,[(0,a.Uk)((0,o.zw)(e.$t("admin.APP_CONFIG.MAX_USERS_LABEL"))+": ",1),(0,a.wy)((0,a._)("input",{id:"max_users",name:"max_users",type:"number",min:"0","onUpdate:modelValue":t[1]||(t[1]=e=>P.max_users=e),disabled:!(0,i.SU)(n)},null,8,A),[[s.nr,P.max_users]])]),(0,a._)("div",O,[(0,a._)("span",I,[R,(0,a.Uk)(" "+(0,o.zw)(e.$t("admin.APP_CONFIG.MAX_USERS_HELP")),1)])]),(0,a._)("label",U,[(0,a.Uk)((0,o.zw)(e.$t("admin.APP_CONFIG.SINGLE_UPLOAD_MAX_SIZE_LABEL"))+": ",1),(0,a.wy)((0,a._)("input",{id:"max_single_file_size",name:"max_single_file_size",type:"number",step:"0.1",min:"0","onUpdate:modelValue":t[2]||(t[2]=e=>P.max_single_file_size=e),disabled:!(0,i.SU)(n)},null,8,g),[[s.nr,P.max_single_file_size]])]),(0,a._)("label",N,[(0,a.Uk)((0,o.zw)(e.$t("admin.APP_CONFIG.ZIP_UPLOAD_MAX_SIZE_LABEL"))+": ",1),(0,a.wy)((0,a._)("input",{id:"max_zip_file_size",name:"max_zip_file_size",type:"number",step:"0.1",min:"0","onUpdate:modelValue":t[3]||(t[3]=e=>P.max_zip_file_size=e),disabled:!(0,i.SU)(n)},null,8,h),[[s.nr,P.max_zip_file_size]])]),(0,a._)("label",z,[(0,a.Uk)((0,o.zw)(e.$t("admin.APP_CONFIG.MAX_FILES_IN_ZIP_LABEL"))+": ",1),(0,a.wy)((0,a._)("input",{id:"gpx_limit_import",name:"gpx_limit_import",type:"number",min:"0","onUpdate:modelValue":t[4]||(t[4]=e=>P.gpx_limit_import=e),disabled:!(0,i.SU)(n)},null,8,w),[[s.nr,P.gpx_limit_import]])]),(0,i.SU)(L)?((0,a.wg)(),(0,a.j4)(r,{key:0,message:(0,i.SU)(L)},null,8,["message"])):(0,a.kq)("",!0),(0,i.SU)(n)?((0,a.wg)(),(0,a.iD)("div",f,[(0,a._)("button",v,(0,o.zw)(e.$t("buttons.SUBMIT")),1),(0,a._)("button",{class:"cancel",onClick:(0,s.iM)(b,["prevent"])},(0,o.zw)(e.$t("buttons.CANCEL")),9,C)])):((0,a.wg)(),(0,a.iD)("div",D,[(0,a._)("button",{class:"confirm",onClick:t[5]||(t[5]=(0,s.iM)((t=>e.$router.push("/admin/application/edit")),["prevent"]))},(0,o.zw)(e.$t("buttons.EDIT")),1),(0,a._)("button",{class:"cancel",onClick:t[6]||(t[6]=(0,s.iM)((t=>e.$router.push("/admin")),["prevent"]))},(0,o.zw)(e.$t("admin.BACK_TO_ADMIN")),1)]))],40,_)])),_:1})])}}}),P=n(3744);const L=(0,P.Z)(k,[["__scopeId","data-v-24ec93e2"]]);var M=L;const b={class:"stat-card"},y={class:"stat-content box"},G={class:"stat-icon"},F={class:"stat-details"},W={class:"stat-huge"},K={class:"stat"};var Y=(0,a.aZ)({__name:"StatCard",props:{icon:null,text:null,value:null},setup(e){const t=e,{icon:n,text:r,value:s}=(0,i.BK)(t);return(e,t)=>((0,a.wg)(),(0,a.iD)("div",b,[(0,a._)("div",y,[(0,a._)("div",G,[(0,a._)("i",{class:(0,o.C_)(["fa",`fa-${(0,i.SU)(n)}`])},null,2)]),(0,a._)("div",F,[(0,a._)("div",W,(0,o.zw)((0,i.SU)(s)),1),(0,a._)("div",K,(0,o.zw)((0,i.SU)(r)),1)])])]))}});const x=Y;var B=x;const $={id:"user-stats"};var Z=(0,a.aZ)({__name:"AppStatsCards",props:{appStatistics:null},setup(e){const t=e,{appStatistics:n}=(0,i.BK)(t),r=(0,a.Fl)((()=>(0,u.Z)(n.value.uploads_dir_size,!1)));return(e,t)=>((0,a.wg)(),(0,a.iD)("div",$,[(0,a.Wm)(B,{icon:"users",value:(0,i.SU)(n).users,text:e.$t("admin.USER",(0,i.SU)(n).users)},null,8,["value","text"]),(0,a.Wm)(B,{icon:"tags",value:(0,i.SU)(n).sports,text:e.$t("workouts.SPORT",(0,i.SU)(n).sports)},null,8,["value","text"]),(0,a.Wm)(B,{icon:"calendar",value:(0,i.SU)(n).workouts,text:e.$t("workouts.WORKOUT",(0,i.SU)(n).workouts)},null,8,["value","text"]),(0,a.Wm)(B,{icon:"folder-open",value:(0,i.SU)(r).size,text:(0,i.SU)(r).suffix},null,8,["value","text"])]))}});const H=Z;var q=H,V=n(2531);const j=e=>((0,a.dD)("data-v-0dd66f89"),e=e(),(0,a.Cn)(),e),X={id:"admin-menu",class:"center-card"},J={class:"admin-menu description-list"},Q={class:"application-config-details"},ee=j((()=>(0,a._)("br",null,null,-1))),te={class:"registration-status"},ne={key:0,class:"email-sending-status"},re=j((()=>(0,a._)("i",{class:"fa fa-exclamation-triangle","aria-hidden":"true"},null,-1)));var ae=(0,a.aZ)({__name:"AdminMenu",props:{appConfig:null,appStatistics:{default:()=>({})}},setup(e){const t=e,{appConfig:n,appStatistics:r}=(0,i.BK)(t);return(e,t)=>{const s=(0,a.up)("router-link");return(0,a.wg)(),(0,a.iD)("div",X,[(0,a.Wm)(V.Z,null,{title:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.$t("admin.ADMINISTRATION")),1)])),content:(0,a.w5)((()=>[(0,a.Wm)(q,{appStatistics:(0,i.SU)(r)},null,8,["appStatistics"]),(0,a._)("div",J,[(0,a._)("dl",null,[(0,a._)("dt",null,[(0,a.Wm)(s,{to:"/admin/application"},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.$t("admin.APPLICATION")),1)])),_:1})]),(0,a._)("dd",Q,[(0,a.Uk)((0,o.zw)(e.$t("admin.UPDATE_APPLICATION_DESCRIPTION")),1),ee,(0,a._)("span",te,(0,o.zw)(e.$t("admin.REGISTRATION_"+((0,i.SU)(n).is_registration_enabled?"ENABLED":"DISABLED"))),1),(0,i.SU)(n).is_email_sending_enabled?(0,a.kq)("",!0):((0,a.wg)(),(0,a.iD)("span",ne,[re,(0,a.Uk)(" "+(0,o.zw)(e.$t("admin.EMAIL_SENDING_DISABLED")),1)]))]),(0,a._)("dt",null,[(0,a.Wm)(s,{to:"/admin/sports"},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)((0,o.kC)(e.$t("workouts.SPORT",0))),1)])),_:1})]),(0,a._)("dd",null,(0,o.zw)(e.$t("admin.ENABLE_DISABLE_SPORTS")),1),(0,a._)("dt",null,[(0,a.Wm)(s,{to:"/admin/users"},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)((0,o.kC)(e.$t("admin.USER",0))),1)])),_:1})]),(0,a._)("dd",null,(0,o.zw)(e.$t("admin.ADMIN_RIGHTS_DELETE_USER_ACCOUNT")),1)])])])),_:1})])}}});const oe=(0,P.Z)(ae,[["__scopeId","data-v-0dd66f89"]]);var se=oe,ie=n(9150),le=n(631);const ce=e=>((0,a.dD)("data-v-6d62af67"),e=e(),(0,a.Cn)(),e),ue={id:"admin-sports",class:"admin-card"},de={class:"responsive-table"},me=ce((()=>(0,a._)("th",null,"#",-1))),_e={class:"text-left"},Ee={class:"text-left sport-action"},Se=ce((()=>(0,a._)("th",null,null,-1))),Te={class:"text-center"},pe=ce((()=>(0,a._)("span",{class:"cell-heading"},"id",-1))),Ae={class:"cell-heading"},Oe={class:"sport-label"},Ie={class:"cell-heading"},Re={class:"text-center"},Ue={class:"cell-heading"},ge={class:"sport-action"},Ne={class:"cell-heading"},he={class:"action-button"},ze=["onClick"],we={key:0,class:"has-workouts"},fe=ce((()=>(0,a._)("i",{class:"fa fa-warning","aria-hidden":"true"},null,-1)));var ve=(0,a.aZ)({__name:"AdminSports",setup(e){const{t:t}=(0,ie.QT)(),n=(0,c.o)(),r=(0,a.Fl)((()=>(0,le.xH)(n.getters[l.O8.GETTERS.SPORTS],t))),u=(0,a.Fl)((()=>n.getters[l.SY.GETTERS.ERROR_MESSAGES]));function d(e,t){n.dispatch(l.O8.ACTIONS.UPDATE_SPORTS,{id:e,isActive:t})}return(e,t)=>{const n=(0,a.up)("SportImage"),l=(0,a.up)("ErrorMessage"),c=(0,a.up)("Card");return(0,a.wg)(),(0,a.iD)("div",ue,[(0,a.Wm)(c,null,{title:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.$t("admin.SPORTS.TITLE")),1)])),content:(0,a.w5)((()=>[(0,a._)("button",{class:"top-button",onClick:t[0]||(t[0]=(0,s.iM)((t=>e.$router.push("/admin")),["prevent"]))},(0,o.zw)(e.$t("admin.BACK_TO_ADMIN")),1),(0,a._)("div",de,[(0,a._)("table",null,[(0,a._)("thead",null,[(0,a._)("tr",null,[me,(0,a._)("th",null,(0,o.zw)(e.$t("admin.SPORTS.TABLE.IMAGE")),1),(0,a._)("th",_e,(0,o.zw)(e.$t("admin.SPORTS.TABLE.LABEL")),1),(0,a._)("th",null,(0,o.zw)(e.$t("admin.SPORTS.TABLE.ACTIVE")),1),(0,a._)("th",Ee,(0,o.zw)(e.$t("admin.ACTION")),1),Se])]),(0,a._)("tbody",null,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,i.SU)(r),(t=>((0,a.wg)(),(0,a.iD)("tr",{key:t.id},[(0,a._)("td",Te,[pe,(0,a.Uk)(" "+(0,o.zw)(t.id),1)]),(0,a._)("td",null,[(0,a._)("span",Ae,(0,o.zw)(e.$t("admin.SPORTS.TABLE.IMAGE")),1),(0,a.Wm)(n,{title:t.translatedLabel,"sport-label":t.label,color:t.color},null,8,["title","sport-label","color"])]),(0,a._)("td",Oe,[(0,a._)("span",Ie,(0,o.zw)(e.$t("admin.SPORTS.TABLE.LABEL")),1),(0,a.Uk)(" "+(0,o.zw)(t.translatedLabel),1)]),(0,a._)("td",Re,[(0,a._)("span",Ue,(0,o.zw)(e.$t("admin.SPORTS.TABLE.ACTIVE")),1),(0,a._)("i",{class:(0,o.C_)("fa fa"+(t.is_active?"-check":"")),"aria-hidden":"true"},null,2)]),(0,a._)("td",ge,[(0,a._)("span",Ne,(0,o.zw)(e.$t("admin.ACTION")),1),(0,a._)("div",he,[(0,a._)("button",{class:(0,o.C_)({danger:t.is_active}),onClick:e=>d(t.id,!t.is_active)},(0,o.zw)(e.$t(`buttons.${t.is_active?"DIS":"EN"}ABLE`)),11,ze),t.has_workouts?((0,a.wg)(),(0,a.iD)("span",we,[fe,(0,a.Uk)(" "+(0,o.zw)(e.$t("admin.SPORTS.TABLE.HAS_WORKOUTS")),1)])):(0,a.kq)("",!0)])])])))),128))])]),(0,i.SU)(u)?((0,a.wg)(),(0,a.j4)(l,{key:0,message:(0,i.SU)(u)},null,8,["message"])):(0,a.kq)("",!0),(0,a._)("button",{onClick:t[1]||(t[1]=(0,s.iM)((t=>e.$router.push("/admin")),["prevent"]))},(0,o.zw)(e.$t("admin.BACK_TO_ADMIN")),1)])])),_:1})])}}});const Ce=(0,P.Z)(ve,[["__scopeId","data-v-6d62af67"]]);var De=Ce,ke=n(8626),Pe=n(5020),Le=n(6595);const Me={class:"users-filters"},be={class:"search-username"},ye=["onKeyup","placeholder"];var Ge=(0,a.aZ)({__name:"UsersNameFilter",emits:["filterOnUsername"],setup(e,{emit:t}){const n=(0,r.yj)(),l=(0,i.iH)(n.query.q?n.query.q:"");function c(){""!==l.value&&t("filterOnUsername",l)}function u(){l.value="",t("filterOnUsername",l.value)}return(e,t)=>((0,a.wg)(),(0,a.iD)("div",Me,[(0,a._)("div",be,[(0,a.wy)((0,a._)("input",{id:"username",name:"username","onUpdate:modelValue":t[0]||(t[0]=e=>l.value=e),onKeyup:(0,s.D2)(c,["enter"]),placeholder:e.$t("user.FILTER_ON_USERNAME")},null,40,ye),[[s.nr,l.value,void 0,{trim:!0}]]),""!==l.value?((0,a.wg)(),(0,a.iD)("i",{key:0,class:"fa fa-times","aria-hidden":"true",onClick:u})):(0,a.kq)("",!0)]),(0,a._)("i",{class:(0,o.C_)(["fa fa-search",{"fa-disabled":""===l.value}]),"aria-hidden":"true",onClick:c},null,2)]))}});const Fe=(0,P.Z)(Ge,[["__scopeId","data-v-627a8e91"]]);var We=Fe,Ke=n(2766),Ye=n(6558);const xe=e=>((0,a.dD)("data-v-dc12ff78"),e=e(),(0,a.Cn)(),e),Be={id:"admin-users",class:"admin-card"},$e={key:0,class:"no-users"},Ze={key:1,class:"responsive-table"},He=xe((()=>(0,a._)("th",null,"#",-1))),qe={class:"left-text"},Ve={class:"left-text"},je={class:"left-text"},Xe={class:"cell-heading"},Je={class:"cell-heading"},Qe={class:"cell-heading"},et={class:"cell-heading"},tt={class:"text-center"},nt={class:"cell-heading"},rt={class:"text-center"},at={class:"cell-heading"},ot={class:"text-center"},st={class:"cell-heading"},it={class:"text-center"},lt={class:"cell-heading"},ct=["disabled","onClick"];var ut=(0,a.aZ)({__name:"AdminUsers",setup(e){const t=(0,c.o)(),n=(0,r.yj)(),u=(0,r.tv)(),d=["is_active","admin","created_at","username","workouts_count"],m="created_at";let _=(0,i.qj)((0,Ke.pm)(n.query,d,m));const E=(0,a.Fl)((()=>t.getters[l.YN.GETTERS.AUTH_USER_PROFILE])),S=(0,a.Fl)((()=>t.getters[l.RT.GETTERS.USERS])),T=(0,a.Fl)((()=>t.getters[l.RT.GETTERS.USERS_PAGINATION])),p=(0,a.Fl)((()=>t.getters[l.SY.GETTERS.ERROR_MESSAGES]));function A(e){t.dispatch(l.RT.ACTIONS.GET_USERS,e)}function O(e){R("q",e.value)}function I(e,n){t.dispatch(l.RT.ACTIONS.UPDATE_USER,{username:e,admin:n})}function R(e,t){_[e]=t,"per_page"===e&&(_.page=1),u.push({path:"/admin/users",query:_})}return(0,a.wF)((()=>A(_))),(0,a.Ah)((()=>{t.dispatch(l.RT.ACTIONS.EMPTY_USERS)})),(0,a.YP)((()=>n.query),(e=>{_=(0,Ke.pm)(e,d,m,{query:_}),A(_)})),(e,t)=>{const n=(0,a.up)("router-link"),r=(0,a.up)("ErrorMessage"),l=(0,a.up)("Card");return(0,a.wg)(),(0,a.iD)("div",Be,[(0,a.Wm)(l,null,{title:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)((0,o.kC)(e.$t("admin.USER",0))),1)])),content:(0,a.w5)((()=>[(0,a._)("button",{class:"top-button",onClick:t[0]||(t[0]=(0,s.iM)((t=>e.$router.push("/admin")),["prevent"]))},(0,o.zw)(e.$t("admin.BACK_TO_ADMIN")),1),(0,a.Wm)(We,{onFilterOnUsername:O}),(0,a.Wm)(ke.Z,{sort:(0,i.SU)(Ke.fS),order_by:d,query:(0,i.SU)(_),message:"admin.USERS.SELECTS.ORDER_BY",onUpdateSelect:R},null,8,["sort","query"]),0===(0,i.SU)(S).length?((0,a.wg)(),(0,a.iD)("div",$e,(0,o.zw)(e.$t("user.NO_USERS_FOUND")),1)):((0,a.wg)(),(0,a.iD)("div",Ze,[(0,a._)("table",null,[(0,a._)("thead",null,[(0,a._)("tr",null,[He,(0,a._)("th",qe,(0,o.zw)(e.$t("user.USERNAME")),1),(0,a._)("th",Ve,(0,o.zw)(e.$t("user.EMAIL")),1),(0,a._)("th",je,(0,o.zw)(e.$t("user.PROFILE.REGISTRATION_DATE")),1),(0,a._)("th",null,(0,o.zw)((0,o.kC)(e.$t("workouts.WORKOUT",0))),1),(0,a._)("th",null,(0,o.zw)(e.$t("admin.ACTIVE")),1),(0,a._)("th",null,(0,o.zw)(e.$t("user.ADMIN")),1),(0,a._)("th",null,(0,o.zw)(e.$t("admin.ACTION")),1)])]),(0,a._)("tbody",null,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,i.SU)(S),(t=>((0,a.wg)(),(0,a.iD)("tr",{key:t.username},[(0,a._)("td",null,[(0,a._)("span",Xe,(0,o.zw)(e.$t("user.PROFILE.PICTURE")),1),(0,a.Wm)(Le.Z,{user:t},null,8,["user"])]),(0,a._)("td",null,[(0,a._)("span",Je,(0,o.zw)(e.$t("user.USERNAME")),1),(0,a.Wm)(n,{to:`/admin/users/${t.username}`},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(t.username),1)])),_:2},1032,["to"])]),(0,a._)("td",null,[(0,a._)("span",Qe,(0,o.zw)(e.$t("user.EMAIL")),1),(0,a.Uk)(" "+(0,o.zw)(t.email),1)]),(0,a._)("td",null,[(0,a._)("span",et,(0,o.zw)(e.$t("user.PROFILE.REGISTRATION_DATE")),1),(0,a.Uk)(" "+(0,o.zw)((0,i.SU)(Ye.p6)(t.created_at,(0,i.SU)(E).timezone,(0,i.SU)(E).date_format)),1)]),(0,a._)("td",tt,[(0,a._)("span",nt,(0,o.zw)((0,o.kC)(e.$t("workouts.WORKOUT",0))),1),(0,a.Uk)(" "+(0,o.zw)(t.nb_workouts),1)]),(0,a._)("td",rt,[(0,a._)("span",at,(0,o.zw)(e.$t("admin.ACTIVE")),1),(0,a._)("i",{class:(0,o.C_)(`fa fa${t.is_active?"-check":""}-square-o`),"aria-hidden":"true"},null,2)]),(0,a._)("td",ot,[(0,a._)("span",st,(0,o.zw)(e.$t("user.ADMIN")),1),(0,a._)("i",{class:(0,o.C_)(`fa fa${t.admin?"-check":""}-square-o`),"aria-hidden":"true"},null,2)]),(0,a._)("td",it,[(0,a._)("span",lt,(0,o.zw)(e.$t("admin.ACTION")),1),(0,a._)("button",{class:(0,o.C_)({danger:t.admin}),disabled:t.username===(0,i.SU)(E).username,onClick:e=>I(t.username,!t.admin)},(0,o.zw)(e.$t(`admin.USERS.TABLE.${t.admin?"REMOVE":"ADD"}_ADMIN_RIGHTS`)),11,ct)])])))),128))])]),(0,i.SU)(T).page?((0,a.wg)(),(0,a.j4)(Pe.Z,{key:0,path:"/admin/users",pagination:(0,i.SU)(T),query:(0,i.SU)(_)},null,8,["pagination","query"])):(0,a.kq)("",!0),(0,i.SU)(p)?((0,a.wg)(),(0,a.j4)(r,{key:1,message:(0,i.SU)(p)},null,8,["message"])):(0,a.kq)("",!0),(0,a._)("button",{onClick:t[1]||(t[1]=(0,s.iM)((t=>e.$router.push("/admin")),["prevent"]))},(0,o.zw)(e.$t("admin.BACK_TO_ADMIN")),1)]))])),_:1})])}}});const dt=(0,P.Z)(ut,[["__scopeId","data-v-dc12ff78"]]);var mt=dt,_t=n(2179);const Et={class:"profile-tabs custom-checkboxes-group"},St={class:"profile-tabs-checkboxes custom-checkboxes"},Tt=["id","name","checked","disabled","onInput"];var pt=(0,a.aZ)({__name:"UserProfileTabs",props:{tabs:null,selectedTab:null,edition:{type:Boolean},disabled:{type:Boolean,default:!1}},setup(e){const t=e,{tabs:n,selectedTab:r,disabled:s}=(0,i.BK)(t);function l(e){switch(e){case"ACCOUNT":case"PICTURE":return`/profile/edit/${e.toLocaleLowerCase()}`;case"APPS":case"PREFERENCES":case"SPORTS":return`/profile${t.edition?"/edit":""}/${e.toLocaleLowerCase()}`;default:case"PROFILE":return"/profile"+(t.edition?"/edit":"")}}return(e,t)=>((0,a.wg)(),(0,a.iD)("div",Et,[(0,a._)("div",St,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,i.SU)(n),(t=>((0,a.wg)(),(0,a.iD)("div",{class:"profile-tab custom-checkbox",key:t},[(0,a._)("label",null,[(0,a._)("input",{type:"radio",id:t,name:t,checked:(0,i.SU)(r).split("/")[0]===t,disabled:(0,i.SU)(s),onInput:n=>e.$router.push(l(t))},null,40,Tt),(0,a._)("span",null,(0,o.zw)(e.$t(`user.PROFILE.TABS.${t}`)),1)])])))),128))])]))}});const At=pt;var Ot=At;const It={id:"user-profile"},Rt={class:"box"};var Ut=(0,a.aZ)({__name:"index",props:{user:null,tab:null},setup(e){const t=e,{user:n,tab:r}=(0,i.BK)(t),o=["PROFILE","PREFERENCES","SPORTS","APPS"];return(e,t)=>{const s=(0,a.up)("router-view");return(0,a.wg)(),(0,a.iD)("div",It,[(0,a.Wm)(_t.Z,{user:(0,i.SU)(n)},null,8,["user"]),(0,a._)("div",Rt,[(0,a.Wm)(Ot,{tabs:o,selectedTab:(0,i.SU)(r),edition:!1},null,8,["selectedTab"]),(0,a.Wm)(s,{user:(0,i.SU)(n)},null,8,["user"])])])}}});const gt=(0,P.Z)(Ut,[["__scopeId","data-v-9729cba4"]]);var Nt=gt,ht=n(1585),zt=n(6287);const wt={id:"user-preferences",class:"description-list"},ft={class:"profile-buttons"};var vt=(0,a.aZ)({__name:"UserPreferences",props:{user:null},setup(e){const t=e,n=(0,c.o)(),r=(0,a.Fl)((()=>n.getters[l.SY.GETTERS.LANGUAGE])),s=(0,a.Fl)((()=>t.user.language?zt.zK[t.user.language]:zt.zK.en)),u=(0,a.Fl)((()=>t.user.weekm?"MONDAY":"SUNDAY")),d=(0,a.Fl)((()=>t.user.timezone?t.user.timezone:"Europe/Paris")),m=(0,a.Fl)((()=>t.user.date_format?t.user.date_format:"MM/dd/yyyy")),_=(0,a.Fl)((()=>t.user.display_ascent?"DISPLAYED":"HIDDEN"));return(t,n)=>((0,a.wg)(),(0,a.iD)("div",wt,[(0,a._)("dl",null,[(0,a._)("dt",null,(0,o.zw)(t.$t("user.PROFILE.LANGUAGE"))+":",1),(0,a._)("dd",null,(0,o.zw)((0,i.SU)(s)),1),(0,a._)("dt",null,(0,o.zw)(t.$t("user.PROFILE.TIMEZONE"))+":",1),(0,a._)("dd",null,(0,o.zw)((0,i.SU)(d)),1),(0,a._)("dt",null,(0,o.zw)(t.$t("user.PROFILE.DATE_FORMAT"))+":",1),(0,a._)("dd",null,(0,o.zw)((0,i.SU)(Ye.mh)((0,i.SU)(m),(0,i.SU)(r))),1),(0,a._)("dt",null,(0,o.zw)(t.$t("user.PROFILE.FIRST_DAY_OF_WEEK"))+":",1),(0,a._)("dd",null,(0,o.zw)(t.$t(`user.PROFILE.${(0,i.SU)(u)}`)),1),(0,a._)("dt",null,(0,o.zw)(t.$t("user.PROFILE.UNITS.LABEL"))+":",1),(0,a._)("dd",null,(0,o.zw)(t.$t("user.PROFILE.UNITS."+(e.user.imperial_units?"IMPERIAL":"METRIC"))),1),(0,a._)("dt",null,(0,o.zw)(t.$t("user.PROFILE.ASCENT_DATA"))+":",1),(0,a._)("dd",null,(0,o.zw)(t.$t(`common.${(0,i.SU)(_)}`)),1)]),(0,a._)("div",ft,[(0,a._)("button",{onClick:n[0]||(n[0]=e=>t.$router.push("/profile/edit/preferences"))},(0,o.zw)(t.$t("user.PROFILE.EDIT_PREFERENCES")),1),(0,a._)("button",{onClick:n[1]||(n[1]=e=>t.$router.push("/"))},(0,o.zw)(t.$t("common.HOME")),1)])]))}});const Ct=vt;var Dt=Ct;const kt={id:"user-profile-edition",class:"center-card"};var Pt=(0,a.aZ)({__name:"index",props:{user:null,tab:null},setup(e){const t=e,n=(0,c.o)(),{user:r,tab:s}=(0,i.BK)(t),u=["PROFILE","ACCOUNT","PICTURE","PREFERENCES","SPORTS"],d=(0,a.Fl)((()=>n.getters[l.YN.GETTERS.USER_LOADING]));return(e,t)=>{const n=(0,a.up)("router-view"),l=(0,a.up)("Card");return(0,a.wg)(),(0,a.iD)("div",kt,[(0,a.Wm)(l,null,{title:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.$t(`user.PROFILE.${(0,i.SU)(s)}_EDITION`)),1)])),content:(0,a.w5)((()=>[(0,a.Wm)(Ot,{tabs:u,selectedTab:(0,i.SU)(s),edition:!0,disabled:(0,i.SU)(d)},null,8,["selectedTab","disabled"]),(0,a.Wm)(n,{user:(0,i.SU)(r)},null,8,["user"])])),_:1})])}}});const Lt=Pt;var Mt=Lt,bt=n(8403);const yt={id:"user-infos-edition"},Gt={class:"profile-form form-box"},Ft={key:1,class:"info-box success-message"},Wt=["onSubmit"],Kt={class:"form-items",for:"email"},Yt=["disabled"],xt={class:"form-items",for:"password-field"},Bt={class:"form-items",for:"new-password-field"},$t={class:"form-buttons"},Zt={class:"confirm",type:"submit"};var Ht=(0,a.aZ)({__name:"UserAccountEdition",props:{user:null},setup(e){const t=e,{user:n}=(0,i.BK)(t),r=(0,c.o)(),u=(0,i.qj)({email:"",password:"",new_password:""}),d=(0,a.Fl)((()=>r.getters[l.YN.GETTERS.USER_LOADING])),m=(0,a.Fl)((()=>r.getters[l.SY.GETTERS.APP_CONFIG])),_=(0,a.Fl)((()=>r.getters[l.YN.GETTERS.IS_SUCCESS])),E=(0,i.iH)(!1),S=(0,a.Fl)((()=>r.getters[l.SY.GETTERS.ERROR_MESSAGES])),T=(0,i.iH)(!1),p=(0,i.iH)(!1);function A(){T.value=!0}function O(e){u.email=e.email}function I(e){u.password=e}function R(e){u.new_password=e}function U(){const e={email:u.email,password:u.password};u.new_password&&(e.new_password=u.new_password),E.value=u.email!==n.value.email,r.dispatch(l.YN.ACTIONS.UPDATE_USER_ACCOUNT,e)}function g(e){p.value=e}function N(e){r.dispatch(l.YN.ACTIONS.DELETE_ACCOUNT,{username:e})}return(0,a.bv)((()=>{t.user&&O(t.user)})),(0,a.Ah)((()=>{r.commit(l.YN.MUTATIONS.UPDATE_IS_SUCCESS,!1),r.commit(l.SY.MUTATIONS.EMPTY_ERROR_MESSAGES)})),(0,a.YP)((()=>_.value),(async e=>{e&&(I(""),R(""),O(n.value),T.value=!1)})),(0,a.YP)((()=>n.value.email),(async()=>{O(n.value)})),(e,t)=>{const r=(0,a.up)("Modal"),l=(0,a.up)("ErrorMessage");return(0,a.wg)(),(0,a.iD)("div",yt,[p.value?((0,a.wg)(),(0,a.j4)(r,{key:0,title:e.$t("common.CONFIRMATION"),message:e.$t("user.CONFIRM_ACCOUNT_DELETION"),onConfirmAction:t[0]||(t[0]=e=>N((0,i.SU)(n).username)),onCancelAction:t[1]||(t[1]=e=>g(!1))},null,8,["title","message"])):(0,a.kq)("",!0),(0,a._)("div",Gt,[(0,i.SU)(S)?((0,a.wg)(),(0,a.j4)(l,{key:0,message:(0,i.SU)(S)},null,8,["message"])):(0,a.kq)("",!0),(0,i.SU)(_)?((0,a.wg)(),(0,a.iD)("div",Ft,(0,o.zw)(e.$t(`user.PROFILE.SUCCESSFUL_${E.value&&(0,i.SU)(m).is_email_sending_enabled?"EMAIL_":""}UPDATE`)),1)):(0,a.kq)("",!0),(0,a._)("form",{class:(0,o.C_)({errors:T.value}),onSubmit:(0,s.iM)(U,["prevent"])},[(0,a._)("label",Kt,[(0,a.Uk)((0,o.zw)(e.$t("user.EMAIL"))+"* ",1),(0,a.wy)((0,a._)("input",{id:"email","onUpdate:modelValue":t[2]||(t[2]=e=>u.email=e),disabled:(0,i.SU)(d),required:!0,onInvalid:A},null,40,Yt),[[s.nr,u.email]])]),(0,a._)("label",xt,[(0,a.Uk)((0,o.zw)(e.$t("user.CURRENT_PASSWORD"))+"* ",1),(0,a.Wm)(bt.Z,{id:"password-field",disabled:(0,i.SU)(d),password:u.password,required:!0,onUpdatePassword:I,onPasswordError:A},null,8,["disabled","password"])]),(0,a._)("label",Bt,[(0,a.Uk)((0,o.zw)(e.$t("user.NEW_PASSWORD"))+" ",1),(0,a.Wm)(bt.Z,{id:"new-password-field",disabled:(0,i.SU)(d),checkStrength:!0,password:u.new_password,isSuccess:!1,onUpdatePassword:R,onPasswordError:A},null,8,["disabled","password"])]),(0,a._)("div",$t,[(0,a._)("button",Zt,(0,o.zw)(e.$t("buttons.SUBMIT")),1),(0,a._)("button",{class:"cancel",onClick:t[3]||(t[3]=(0,s.iM)((t=>e.$router.push("/profile")),["prevent"]))},(0,o.zw)(e.$t("buttons.CANCEL")),1),(0,a._)("button",{class:"danger",onClick:t[4]||(t[4]=(0,s.iM)((e=>g(!0)),["prevent"]))},(0,o.zw)(e.$t("buttons.DELETE_MY_ACCOUNT")),1)])],42,Wt)])])}}});const qt=(0,P.Z)(Ht,[["__scopeId","data-v-37b8c4c8"]]);var Vt=qt,jt=n(4850);const Xt={id:"user-infos-edition"},Jt={class:"profile-form form-box"},Qt=["onSubmit"],en={class:"form-items",for:"registrationDate"},tn=["value"],nn={class:"form-items",for:"first_name"},rn=["disabled"],an={class:"form-items",for:"last_name"},on={class:"form-items",for:"birth_date"},sn=["disabled"],ln={class:"form-items",for:"location"},cn=["disabled"],un={class:"form-items"},dn={class:"form-buttons"},mn={class:"confirm",type:"submit"};var _n=(0,a.aZ)({__name:"UserInfosEdition",props:{user:null},setup(e){const t=e,n=(0,c.o)(),r=(0,i.qj)({first_name:"",last_name:"",birth_date:"",location:"",bio:""}),u=(0,a.Fl)((()=>t.user.created_at?(0,Ye.p6)(t.user.created_at,t.user.timezone,t.user.date_format):"")),d=(0,a.Fl)((()=>n.getters[l.YN.GETTERS.USER_LOADING])),m=(0,a.Fl)((()=>n.getters[l.SY.GETTERS.ERROR_MESSAGES]));function _(e){r.first_name=e.first_name?e.first_name:"",r.last_name=e.last_name?e.last_name:"",r.birth_date=e.birth_date?(0,jt.Z)(new Date(e.birth_date),"yyyy-MM-dd"):"",r.location=e.location?e.location:"",r.bio=e.bio?e.bio:""}function E(e){r.bio=e}function S(){n.dispatch(l.YN.ACTIONS.UPDATE_USER_PROFILE,r)}return(0,a.bv)((()=>{t.user&&_(t.user)})),(0,a.Ah)((()=>{n.commit(l.SY.MUTATIONS.EMPTY_ERROR_MESSAGES)})),(e,t)=>{const n=(0,a.up)("ErrorMessage"),l=(0,a.up)("CustomTextArea");return(0,a.wg)(),(0,a.iD)("div",Xt,[(0,a._)("div",Jt,[(0,i.SU)(m)?((0,a.wg)(),(0,a.j4)(n,{key:0,message:(0,i.SU)(m)},null,8,["message"])):(0,a.kq)("",!0),(0,a._)("form",{onSubmit:(0,s.iM)(S,["prevent"])},[(0,a._)("label",en,[(0,a.Uk)((0,o.zw)(e.$t("user.PROFILE.REGISTRATION_DATE"))+" ",1),(0,a._)("input",{id:"registrationDate",value:(0,i.SU)(u),disabled:""},null,8,tn)]),(0,a._)("label",nn,[(0,a.Uk)((0,o.zw)(e.$t("user.PROFILE.FIRST_NAME"))+" ",1),(0,a.wy)((0,a._)("input",{id:"first_name","onUpdate:modelValue":t[0]||(t[0]=e=>r.first_name=e),disabled:(0,i.SU)(d)},null,8,rn),[[s.nr,r.first_name]])]),(0,a._)("label",an,[(0,a.Uk)((0,o.zw)(e.$t("user.PROFILE.LAST_NAME"))+" ",1),(0,a.wy)((0,a._)("input",{id:"last_name","onUpdate:modelValue":t[1]||(t[1]=e=>r.last_name=e)},null,512),[[s.nr,r.last_name]])]),(0,a._)("label",on,[(0,a.Uk)((0,o.zw)(e.$t("user.PROFILE.BIRTH_DATE"))+" ",1),(0,a.wy)((0,a._)("input",{id:"birth_date",type:"date",class:"birth-date","onUpdate:modelValue":t[2]||(t[2]=e=>r.birth_date=e),disabled:(0,i.SU)(d)},null,8,sn),[[s.nr,r.birth_date]])]),(0,a._)("label",ln,[(0,a.Uk)((0,o.zw)(e.$t("user.PROFILE.LOCATION"))+" ",1),(0,a.wy)((0,a._)("input",{id:"location","onUpdate:modelValue":t[3]||(t[3]=e=>r.location=e),disabled:(0,i.SU)(d)},null,8,cn),[[s.nr,r.location]])]),(0,a._)("label",un,[(0,a.Uk)((0,o.zw)(e.$t("user.PROFILE.BIO"))+" ",1),(0,a.Wm)(l,{name:"bio",charLimit:200,input:r.bio,disabled:(0,i.SU)(d),onUpdateValue:E},null,8,["input","disabled"])]),(0,a._)("div",dn,[(0,a._)("button",mn,(0,o.zw)(e.$t("buttons.SUBMIT")),1),(0,a._)("button",{class:"cancel",onClick:t[4]||(t[4]=(0,s.iM)((t=>e.$router.push("/profile")),["prevent"]))},(0,o.zw)(e.$t("buttons.CANCEL")),1)])],40,Qt)])])}}});const En=(0,P.Z)(_n,[["__scopeId","data-v-5e5a4552"]]);var Sn=En;const Tn=e=>((0,a.dD)("data-v-687e9604"),e=e(),(0,a.Cn)(),e),pn={id:"user-picture-edition"},An={class:"user-picture-form"},On=["onSubmit"],In={class:"picture-help"},Rn={class:"info-box"},Un=Tn((()=>(0,a._)("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1))),gn={class:"picture-buttons"},Nn=["disabled"];var hn=(0,a.aZ)({__name:"UserPictureEdition",props:{user:null},setup(e){const t=e,n=(0,c.o)(),{user:r}=(0,i.BK)(t),d=(0,a.Fl)((()=>n.getters[l.SY.GETTERS.ERROR_MESSAGES])),m=(0,a.Fl)((()=>n.getters[l.SY.GETTERS.APP_CONFIG])),_=m.value.max_single_file_size?(0,u.Z)(m.value.max_single_file_size):"",E=(0,i.iH)(null);function S(){n.dispatch(l.YN.ACTIONS.DELETE_PICTURE)}function T(e){e.target.files&&(E.value=e.target.files[0])}function p(){E.value&&n.dispatch(l.YN.ACTIONS.UPDATE_USER_PICTURE,{picture:E.value})}return(0,a.Ah)((()=>{n.commit(l.SY.MUTATIONS.EMPTY_ERROR_MESSAGES)})),(e,t)=>{const n=(0,a.up)("ErrorMessage");return(0,a.wg)(),(0,a.iD)("div",pn,[(0,a._)("div",An,[(0,i.SU)(d)?((0,a.wg)(),(0,a.j4)(n,{key:0,message:(0,i.SU)(d)},null,8,["message"])):(0,a.kq)("",!0),(0,a.Wm)(Le.Z,{user:(0,i.SU)(r)},null,8,["user"]),(0,a._)("form",{onSubmit:(0,s.iM)(p,["prevent"])},[(0,a._)("input",{type:"file",name:"picture",accept:".png,.jpg,.gif",onInput:T},null,32),(0,a._)("div",In,[(0,a._)("span",Rn,[Un,(0,a.Uk)(" "+(0,o.zw)(e.$t("workouts.MAX_SIZE"))+": "+(0,o.zw)((0,i.SU)(_)),1)])]),(0,a._)("div",gn,[(0,a._)("button",{type:"submit",disabled:!E.value},(0,o.zw)(e.$t("user.PROFILE.PICTURE_UPDATE")),9,Nn),(0,i.SU)(r).picture?((0,a.wg)(),(0,a.iD)("button",{key:0,class:"danger",onClick:S},(0,o.zw)(e.$t("user.PROFILE.PICTURE_REMOVE")),1)):(0,a.kq)("",!0),(0,a._)("button",{class:"cancel",onClick:t[0]||(t[0]=t=>e.$router.push("/profile"))},(0,o.zw)(e.$t("user.PROFILE.BACK_TO_PROFILE")),1)])],40,On)])])}}});const zn=(0,P.Z)(hn,[["__scopeId","data-v-687e9604"]]);var wn=zn;const fn=["Africa/Abidjan","Africa/Accra","Africa/Algiers","Africa/Bissau","Africa/Cairo","Africa/Casablanca","Africa/Ceuta","Africa/El_Aaiun","Africa/Johannesburg","Africa/Juba","Africa/Khartoum","Africa/Lagos","Africa/Maputo","Africa/Monrovia","Africa/Nairobi","Africa/Ndjamena","Africa/Sao_Tome","Africa/Tripoli","Africa/Tunis","Africa/Windhoek","America/Adak","America/Anchorage","America/Araguaina","America/Argentina/Buenos_Aires","America/Argentina/Catamarca","America/Argentina/Cordoba","America/Argentina/Jujuy","America/Argentina/La_Rioja","America/Argentina/Mendoza","America/Argentina/Rio_Gallegos","America/Argentina/Salta","America/Argentina/San_Juan","America/Argentina/San_Luis","America/Argentina/Tucuman","America/Argentina/Ushuaia","America/Asuncion","America/Atikokan","America/Bahia","America/Bahia_Banderas","America/Barbados","America/Belem","America/Belize","America/Blanc-Sablon","America/Boa_Vista","America/Bogota","America/Boise","America/Cambridge_Bay","America/Campo_Grande","America/Cancun","America/Caracas","America/Cayenne","America/Chicago","America/Chihuahua","America/Costa_Rica","America/Creston","America/Cuiaba","America/Curacao","America/Danmarkshavn","America/Dawson","America/Dawson_Creek","America/Denver","America/Detroit","America/Edmonton","America/Eirunepe","America/El_Salvador","America/Fortaleza","America/Fort_Nelson","America/Glace_Bay","America/Godthab","America/Goose_Bay","America/Grand_Turk","America/Guatemala","America/Guayaquil","America/Guyana","America/Halifax","America/Havana","America/Hermosillo","America/Indiana/Indianapolis","America/Indiana/Knox","America/Indiana/Marengo","America/Indiana/Petersburg","America/Indiana/Tell_City","America/Indiana/Vevay","America/Indiana/Vincennes","America/Indiana/Winamac","America/Inuvik","America/Iqaluit","America/Jamaica","America/Juneau","America/Kentucky/Louisville","America/Kentucky/Monticello","America/La_Paz","America/Lima","America/Los_Angeles","America/Maceio","America/Managua","America/Manaus","America/Martinique","America/Matamoros","America/Mazatlan","America/Menominee","America/Merida","America/Metlakatla","America/Mexico_City","America/Miquelon","America/Moncton","America/Monterrey","America/Montevideo","America/Nassau","America/New_York","America/Nipigon","America/Nome","America/Noronha","America/North_Dakota/Beulah","America/North_Dakota/Center","America/North_Dakota/New_Salem","America/Ojinaga","America/Panama","America/Pangnirtung","America/Paramaribo","America/Phoenix","America/Port-au-Prince","America/Port_of_Spain","America/Porto_Velho","America/Puerto_Rico","America/Punta_Arenas","America/Rainy_River","America/Rankin_Inlet","America/Recife","America/Regina","America/Resolute","America/Rio_Branco","America/Santarem","America/Santiago","America/Santo_Domingo","America/Sao_Paulo","America/Scoresbysund","America/Sitka","America/St_Johns","America/Swift_Current","America/Tegucigalpa","America/Thule","America/Thunder_Bay","America/Tijuana","America/Toronto","America/Vancouver","America/Whitehorse","America/Winnipeg","America/Yakutat","America/Yellowknife","Antarctica/Casey","Antarctica/Davis","Antarctica/DumontDUrville","Antarctica/Macquarie","Antarctica/Mawson","Antarctica/Palmer","Antarctica/Rothera","Antarctica/Syowa","Antarctica/Troll","Antarctica/Vostok","Asia/Almaty","Asia/Amman","Asia/Anadyr","Asia/Aqtau","Asia/Aqtobe","Asia/Ashgabat","Asia/Atyrau","Asia/Baghdad","Asia/Baku","Asia/Bangkok","Asia/Barnaul","Asia/Beirut","Asia/Bishkek","Asia/Brunei","Asia/Chita","Asia/Choibalsan","Asia/Colombo","Asia/Damascus","Asia/Dhaka","Asia/Dili","Asia/Dubai","Asia/Dushanbe","Asia/Famagusta","Asia/Gaza","Asia/Hebron","Asia/Ho_Chi_Minh","Asia/Hong_Kong","Asia/Hovd","Asia/Irkutsk","Asia/Jakarta","Asia/Jayapura","Asia/Jerusalem","Asia/Kabul","Asia/Kamchatka","Asia/Karachi","Asia/Kathmandu","Asia/Khandyga","Asia/Kolkata","Asia/Krasnoyarsk","Asia/Kuala_Lumpur","Asia/Kuching","Asia/Macau","Asia/Magadan","Asia/Makassar","Asia/Manila","Asia/Nicosia","Asia/Novokuznetsk","Asia/Novosibirsk","Asia/Omsk","Asia/Oral","Asia/Pontianak","Asia/Pyongyang","Asia/Qatar","Asia/Qostanay","Asia/Qyzylorda","Asia/Riyadh","Asia/Sakhalin","Asia/Samarkand","Asia/Seoul","Asia/Shanghai","Asia/Singapore","Asia/Srednekolymsk","Asia/Taipei","Asia/Tashkent","Asia/Tbilisi","Asia/Tehran","Asia/Thimphu","Asia/Tokyo","Asia/Tomsk","Asia/Ulaanbaatar","Asia/Urumqi","Asia/Ust-Nera","Asia/Vladivostok","Asia/Yakutsk","Asia/Yangon","Asia/Yekaterinburg","Asia/Yerevan","Atlantic/Azores","Atlantic/Bermuda","Atlantic/Canary","Atlantic/Cape_Verde","Atlantic/Faroe","Atlantic/Madeira","Atlantic/Reykjavik","Atlantic/South_Georgia","Atlantic/Stanley","Australia/Adelaide","Australia/Brisbane","Australia/Broken_Hill","Australia/Currie","Australia/Darwin","Australia/Eucla","Australia/Hobart","Australia/Lindeman","Australia/Lord_Howe","Australia/Melbourne","Australia/Perth","Australia/Sydney","Europe/Amsterdam","Europe/Andorra","Europe/Astrakhan","Europe/Athens","Europe/Belgrade","Europe/Berlin","Europe/Brussels","Europe/Bucharest","Europe/Budapest","Europe/Chisinau","Europe/Copenhagen","Europe/Dublin","Europe/Gibraltar","Europe/Helsinki","Europe/Istanbul","Europe/Kaliningrad","Europe/Kiev","Europe/Kirov","Europe/Lisbon","Europe/London","Europe/Luxembourg","Europe/Madrid","Europe/Malta","Europe/Minsk","Europe/Monaco","Europe/Moscow","Europe/Oslo","Europe/Paris","Europe/Prague","Europe/Riga","Europe/Rome","Europe/Samara","Europe/Saratov","Europe/Simferopol","Europe/Sofia","Europe/Stockholm","Europe/Tallinn","Europe/Tirane","Europe/Ulyanovsk","Europe/Uzhgorod","Europe/Vienna","Europe/Vilnius","Europe/Volgograd","Europe/Warsaw","Europe/Zaporozhye","Europe/Zurich","Indian/Chagos","Indian/Christmas","Indian/Cocos","Indian/Kerguelen","Indian/Mahe","Indian/Maldives","Indian/Mauritius","Indian/Reunion","Pacific/Apia","Pacific/Auckland","Pacific/Bougainville","Pacific/Chatham","Pacific/Chuuk","Pacific/Easter","Pacific/Efate","Pacific/Enderbury","Pacific/Fakaofo","Pacific/Fiji","Pacific/Funafuti","Pacific/Galapagos","Pacific/Gambier","Pacific/Guadalcanal","Pacific/Guam","Pacific/Honolulu","Pacific/Kiritimati","Pacific/Kosrae","Pacific/Kwajalein","Pacific/Majuro","Pacific/Marquesas","Pacific/Nauru","Pacific/Niue","Pacific/Norfolk","Pacific/Noumea","Pacific/Pago_Pago","Pacific/Palau","Pacific/Pitcairn","Pacific/Pohnpei","Pacific/Port_Moresby","Pacific/Rarotonga","Pacific/Tahiti","Pacific/Tarawa","Pacific/Tongatapu","Pacific/Wake","Pacific/Wallis"],vn={id:"tz-dropdown"},Cn=["value","disabled","onKeydown"],Dn=["onClick","onMouseover","autofocus"];var kn=(0,a.aZ)({__name:"TimezoneDropdown",props:{input:null,disabled:{type:Boolean,default:!1}},emits:["updateTimezone"],setup(e,{emit:t}){const n=e,{input:r,disabled:l}=(0,i.BK)(n),c=(0,i.iH)(n.input),u=(0,i.iH)(!1),d=(0,i.iH)(null),m=(0,i.iH)(0);function _(e){return e.toLowerCase().match(c.value.toLowerCase())}function E(e){m.value=e}function S(e){c.value=e,u.value=!1,t("updateTimezone",e)}function T(e){e.preventDefault(),d.value?.firstElementChild?.innerHTML&&S(d.value?.firstElementChild?.innerHTML)}function p(e){e.preventDefault(),u.value=!0,c.value=e.target.value.trim()}return(0,a.YP)((()=>n.input),(e=>{c.value=e})),(e,t)=>((0,a.wg)(),(0,a.iD)("div",vn,[(0,a._)("input",{class:"tz-dropdown-input",id:"timezone",name:"timezone",value:c.value,disabled:(0,i.SU)(l),required:"",onKeydown:[t[0]||(t[0]=(0,s.D2)((e=>S((0,i.SU)(r))),["esc"])),(0,s.D2)(T,["enter"])],onInput:p},null,40,Cn),u.value?((0,a.wg)(),(0,a.iD)("ul",{key:0,class:"tz-dropdown-list",ref_key:"tzList",ref:d},[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,i.SU)(fn).filter((e=>_(e))),((e,t)=>((0,a.wg)(),(0,a.iD)("li",{key:e,class:(0,o.C_)(["tz-dropdown-item",{focus:t===m.value}]),onClick:t=>S(e),onMouseover:e=>E(t),autofocus:t===m.value},(0,o.zw)(e),43,Dn)))),128))],512)):(0,a.kq)("",!0)]))}});const Pn=(0,P.Z)(kn,[["__scopeId","data-v-47ea2903"]]);var Ln=Pn;const Mn={id:"user-preferences-edition"},bn={class:"profile-form form-box"},yn=["onSubmit"],Gn={class:"form-items"},Fn=["disabled"],Wn=["value"],Kn={class:"form-items"},Yn={class:"form-items"},xn=["disabled"],Bn=["value"],$n={class:"form-items form-checkboxes"},Zn={class:"checkboxes-label"},Hn={class:"checkboxes"},qn=["id","name","checked","disabled","onInput"],Vn={class:"checkbox-label"},jn={class:"form-items form-checkboxes"},Xn={class:"checkboxes-label"},Jn={class:"checkboxes"},Qn=["id","name","checked","disabled","onInput"],er={class:"checkbox-label"},tr={class:"form-items form-checkboxes"},nr={class:"checkboxes-label"},rr={class:"checkboxes"},ar=["id","name","checked","disabled","onInput"],or={class:"checkbox-label"},sr={class:"form-buttons"},ir={class:"confirm",type:"submit"};var lr=(0,a.aZ)({__name:"UserPreferencesEdition",props:{user:null},setup(e){const t=e,n=(0,c.o)(),r=(0,i.qj)({display_ascent:!0,imperial_units:!1,language:"",timezone:"Europe/Paris",date_format:"dd/MM/yyyy",weekm:!1}),u=[{label:"SUNDAY",value:!1},{label:"MONDAY",value:!0}],d=[{label:"METRIC",value:!1},{label:"IMPERIAL",value:!0}],m=[{label:"DISPLAYED",value:!0},{label:"HIDDEN",value:!1}],_=(0,a.Fl)((()=>n.getters[l.YN.GETTERS.USER_LOADING])),E=(0,a.Fl)((()=>n.getters[l.SY.GETTERS.ERROR_MESSAGES])),S=(0,a.Fl)((()=>(0,Ye.d2)((new Date).toUTCString(),t.user.timezone,r.language)));function T(e){r.display_ascent=e.display_ascent,r.imperial_units=!!e.imperial_units&&e.imperial_units,r.language=e.language?e.language:"en",r.timezone=e.timezone?e.timezone:"Europe/Paris",r.date_format=e.date_format?e.date_format:"dd/MM/yyyy",r.weekm=!!e.weekm&&e.weekm}function p(){n.dispatch(l.YN.ACTIONS.UPDATE_USER_PREFERENCES,r)}function A(e){r.timezone=e}function O(e){r.display_ascent=e}function I(e){r.imperial_units=e}function R(e){r.weekm=e}return(0,a.bv)((()=>{t.user&&T(t.user)})),(0,a.Ah)((()=>{n.commit(l.SY.MUTATIONS.EMPTY_ERROR_MESSAGES)})),(e,t)=>{const n=(0,a.up)("ErrorMessage");return(0,a.wg)(),(0,a.iD)("div",Mn,[(0,a._)("div",bn,[(0,i.SU)(E)?((0,a.wg)(),(0,a.j4)(n,{key:0,message:(0,i.SU)(E)},null,8,["message"])):(0,a.kq)("",!0),(0,a._)("form",{onSubmit:(0,s.iM)(p,["prevent"])},[(0,a._)("label",Gn,[(0,a.Uk)((0,o.zw)(e.$t("user.PROFILE.LANGUAGE"))+" ",1),(0,a.wy)((0,a._)("select",{id:"language","onUpdate:modelValue":t[0]||(t[0]=e=>r.language=e),disabled:(0,i.SU)(_)},[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,i.SU)(zt.mT),(e=>((0,a.wg)(),(0,a.iD)("option",{value:e.value,key:e.value},(0,o.zw)(e.label),9,Wn)))),128))],8,Fn),[[s.bM,r.language]])]),(0,a._)("label",Kn,[(0,a.Uk)((0,o.zw)(e.$t("user.PROFILE.TIMEZONE"))+" ",1),(0,a.Wm)(Ln,{input:r.timezone,disabled:(0,i.SU)(_),onUpdateTimezone:A},null,8,["input","disabled"])]),(0,a._)("label",Yn,[(0,a.Uk)((0,o.zw)(e.$t("user.PROFILE.DATE_FORMAT"))+" ",1),(0,a.wy)((0,a._)("select",{id:"date_format","onUpdate:modelValue":t[1]||(t[1]=e=>r.date_format=e),disabled:(0,i.SU)(_)},[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,i.SU)(S),(e=>((0,a.wg)(),(0,a.iD)("option",{value:e.value,key:e.value},(0,o.zw)(e.label),9,Bn)))),128))],8,xn),[[s.bM,r.date_format]])]),(0,a._)("div",$n,[(0,a._)("span",Zn,(0,o.zw)(e.$t("user.PROFILE.FIRST_DAY_OF_WEEK")),1),(0,a._)("div",Hn,[((0,a.wg)(),(0,a.iD)(a.HY,null,(0,a.Ko)(u,(t=>(0,a._)("label",{key:t.label},[(0,a._)("input",{type:"radio",id:t.label,name:t.label,checked:t.value===r.weekm,disabled:(0,i.SU)(_),onInput:e=>R(t.value)},null,40,qn),(0,a._)("span",Vn,(0,o.zw)(e.$t(`user.PROFILE.${t.label}`)),1)]))),64))])]),(0,a._)("div",jn,[(0,a._)("span",Xn,(0,o.zw)(e.$t("user.PROFILE.UNITS.LABEL")),1),(0,a._)("div",Jn,[((0,a.wg)(),(0,a.iD)(a.HY,null,(0,a.Ko)(d,(t=>(0,a._)("label",{key:t.label},[(0,a._)("input",{type:"radio",id:t.label,name:t.label,checked:t.value===r.imperial_units,disabled:(0,i.SU)(_),onInput:e=>I(t.value)},null,40,Qn),(0,a._)("span",er,(0,o.zw)(e.$t(`user.PROFILE.UNITS.${t.label}`)),1)]))),64))])]),(0,a._)("div",tr,[(0,a._)("span",nr,(0,o.zw)(e.$t("user.PROFILE.ASCENT_DATA")),1),(0,a._)("div",rr,[((0,a.wg)(),(0,a.iD)(a.HY,null,(0,a.Ko)(m,(t=>(0,a._)("label",{key:t.label},[(0,a._)("input",{type:"radio",id:t.label,name:t.label,checked:t.value===r.display_ascent,disabled:(0,i.SU)(_),onInput:e=>O(t.value)},null,40,ar),(0,a._)("span",or,(0,o.zw)(e.$t(`common.${t.label}`)),1)]))),64))])]),(0,a._)("div",sr,[(0,a._)("button",ir,(0,o.zw)(e.$t("buttons.SUBMIT")),1),(0,a._)("button",{class:"cancel",onClick:t[2]||(t[2]=(0,s.iM)((t=>e.$router.push("/profile/preferences")),["prevent"]))},(0,o.zw)(e.$t("buttons.CANCEL")),1)])],40,yn)])])}}});const cr=(0,P.Z)(lr,[["__scopeId","data-v-3b8a9a12"]]);var ur=cr;const dr=["profile:read","profile:write","users:read","users:write","workouts:read","workouts:write"],mr=["application:write"],_r={id:"new-oauth2-app"},Er={id:"new-oauth2-title"},Sr={id:"apps-form"},Tr=["onSubmit"],pr={class:"form-items"},Ar={class:"form-item"},Or={for:"app-name"},Ir={class:"form-item"},Rr={for:"app-description"},Ur={class:"form-item"},gr={for:"app-url"},Nr={class:"form-item"},hr={for:"app-redirect-uri"},zr={class:"form-item-scope"},wr={class:"form-item-scope-label"},fr={class:"scope-label"},vr=["name","checked","onChange"],Cr=["innerHTML"],Dr={class:"form-buttons"},kr=["disabled"];var Pr=(0,a.aZ)({__name:"AddUserApp",props:{authUser:null},setup(e){const t=e,n=(0,c.o)(),r=(0,i.qj)({client_name:"",client_uri:"",client_description:"",redirect_uri:""}),u=(0,i.qj)([]),d=(0,a.Fl)((()=>S(t.authUser,mr,dr)));function m(){const e={client_name:r.client_name,client_description:r.client_description,client_uri:r.client_uri,redirect_uris:[r.redirect_uri],scope:u.sort().join(" ")};n.dispatch(l.Km.ACTIONS.CREATE_CLIENT,e)}function _(e){r.client_description=e}function E(e){const t=u.indexOf(e);t>-1?u.splice(t,1):u.push(e)}function S(e,t,n){const r=[...n];return e.admin&&r.push(...t),r.sort()}return(e,t)=>{const n=(0,a.up)("CustomTextArea");return(0,a.wg)(),(0,a.iD)("div",_r,[(0,a._)("h1",Er,(0,o.zw)(e.$t("oauth2.ADD_A_NEW_APP")),1),(0,a._)("div",Sr,[(0,a._)("form",{onSubmit:(0,s.iM)(m,["prevent"])},[(0,a._)("div",pr,[(0,a._)("div",Ar,[(0,a._)("label",Or,(0,o.zw)(e.$t("oauth2.APP.NAME"))+"*",1),(0,a.wy)((0,a._)("input",{id:"app-name",type:"text",required:"","onUpdate:modelValue":t[0]||(t[0]=e=>r.client_name=e)},null,512),[[s.nr,r.client_name]])]),(0,a._)("div",Ir,[(0,a._)("label",Rr,(0,o.zw)(e.$t("oauth2.APP.DESCRIPTION")),1),(0,a.Wm)(n,{name:"app-description",charLimit:200,input:r.description,onUpdateValue:_},null,8,["input"])]),(0,a._)("div",Ur,[(0,a._)("label",gr,(0,o.zw)(e.$t("oauth2.APP.URL"))+"*",1),(0,a.wy)((0,a._)("input",{id:"app-url",type:"text",required:"","onUpdate:modelValue":t[1]||(t[1]=e=>r.client_uri=e)},null,512),[[s.nr,r.client_uri]])]),(0,a._)("div",Nr,[(0,a._)("label",hr,(0,o.zw)(e.$t("oauth2.APP.REDIRECT_URL"))+"* ",1),(0,a.wy)((0,a._)("input",{id:"app-redirect-uri",type:"text",required:"","onUpdate:modelValue":t[2]||(t[2]=e=>r.redirect_uri=e)},null,512),[[s.nr,r.redirect_uri]])]),(0,a._)("div",zr,[(0,a._)("div",wr,(0,o.zw)(e.$t("oauth2.APP.SCOPE.LABEL"))+"* ",1),((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,i.SU)(d),(t=>((0,a.wg)(),(0,a.iD)("div",{class:"form-item-scope-checkboxes",key:t},[(0,a._)("label",fr,[(0,a._)("input",{type:"checkbox",name:t,checked:u.includes(t),onChange:e=>E(t)},null,40,vr),(0,a._)("code",null,(0,o.zw)(t),1)]),(0,a._)("p",{class:"scope-description",innerHTML:e.$t(`oauth2.APP.SCOPE.${t}_DESCRIPTION`)},null,8,Cr)])))),128))])]),(0,a._)("div",Dr,[(0,a._)("button",{class:"confirm",type:"submit",disabled:0===u.length},(0,o.zw)(e.$t("buttons.SUBMIT")),9,kr),(0,a._)("button",{class:"cancel",onClick:t[3]||(t[3]=(0,s.iM)((()=>e.$router.push("/profile/apps")),["prevent"]))},(0,o.zw)(e.$t("buttons.CANCEL")),1)])],40,Tr)])])}}});const Lr=(0,P.Z)(Pr,[["__scopeId","data-v-0657ee77"]]);var Mr=Lr;const br={id:"authorize-oauth2-app"},yr={key:0},Gr={id:"authorize-oauth2-title"},Fr={class:"oauth2-access description-list"},Wr={class:"client-scope"},Kr=["innerHTML"],Yr={class:"authorize-oauth2-buttons"},xr={key:1},Br={class:"no-app"};var $r=(0,a.aZ)({__name:"AuthorizeUserApp",setup(e){const t=(0,r.yj)(),n=(0,c.o)(),s=(0,a.Fl)((()=>n.getters[l.Km.GETTERS.CLIENT])),u=(0,a.Fl)((()=>n.getters[l.SY.GETTERS.ERROR_MESSAGES]));function d(){t.query.client_id&&"string"===typeof t.query.client_id&&n.dispatch(l.Km.ACTIONS.GET_CLIENT_BY_CLIENT_ID,t.query.client_id)}function m(){n.dispatch(l.Km.ACTIONS.AUTHORIZE_CLIENT,{client_id:`${t.query.client_id}`,redirect_uri:`${t.query.redirect_uri}`,response_type:`${t.query.response_type}`,scope:`${t.query.scope}`,state:`${t.query.state?t.query.state:""}`,code_challenge:`${t.query.code_challenge?t.query.code_challenge:""}`,code_challenge_method:`${t.query.code_challenge_method?t.query.code_challenge_method:""}`})}return(0,a.wF)((()=>d())),(e,t)=>{const n=(0,a.up)("router-link"),r=(0,a.up)("i18n-t"),l=(0,a.up)("ErrorMessage");return(0,a.wg)(),(0,a.iD)("div",br,[(0,i.SU)(s).client_id?((0,a.wg)(),(0,a.iD)("div",yr,[(0,a._)("h1",Gr,[(0,a.Wm)(r,{keypath:"oauth2.AUTHORIZE_APP"},{default:(0,a.w5)((()=>[(0,a.Wm)(n,{to:{name:"UserApp",params:{id:(0,i.SU)(s).id}}},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)((0,i.SU)(s).name),1)])),_:1},8,["to"])])),_:1})]),(0,i.SU)(u)?((0,a.wg)(),(0,a.j4)(l,{key:0,message:(0,i.SU)(u)},null,8,["message"])):(0,a.kq)("",!0),(0,a._)("div",Fr,[(0,a._)("p",null,(0,o.zw)(e.$t("oauth2.APP_REQUESTING_ACCESS")),1),(0,a._)("dl",null,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,i.SU)(s).scope.split(" "),(t=>((0,a.wg)(),(0,a.iD)(a.HY,{key:t},[(0,a._)("dt",Wr,[(0,a._)("code",null,(0,o.zw)(t),1)]),(0,a._)("dd",{innerHTML:e.$t(`oauth2.APP.SCOPE.${t}_DESCRIPTION`)},null,8,Kr)],64)))),128))]),(0,a._)("div",Yr,[(0,a._)("button",{class:"danger",onClick:m},(0,o.zw)(e.$t("buttons.AUTHORIZE")),1),(0,a._)("button",{class:"cancel",onClick:t[0]||(t[0]=t=>e.$router.push("/profile/apps"))},(0,o.zw)(e.$t("buttons.CANCEL")),1)])])])):((0,a.wg)(),(0,a.iD)("div",xr,[(0,a._)("p",Br,(0,o.zw)(e.$t("oauth2.NO_APP")),1),(0,a._)("button",{onClick:t[1]||(t[1]=t=>e.$router.push("/profile/apps"))},(0,o.zw)(e.$t("buttons.BACK")),1)]))])}}});const Zr=(0,P.Z)($r,[["__scopeId","data-v-3b2fe9ed"]]);var Hr=Zr;const qr={id:"oauth2-apps"};var Vr=(0,a.aZ)({__name:"index",props:{user:null},setup(e){const t=e,n=(0,c.o)(),{user:r}=(0,i.BK)(t);return(0,a.Ah)((()=>{n.commit(l.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),n.commit(l.Km.MUTATIONS.SET_CLIENTS,[])})),(e,t)=>{const n=(0,a.up)("router-view");return(0,a.wg)(),(0,a.iD)("div",qr,[(0,a.Wm)(n,{authUser:(0,i.SU)(r)},null,8,["authUser"])])}}});const jr=Vr;var Xr=jr;const Jr={id:"oauth2-app",class:"description-list"},Qr={key:1},ea={key:0,class:"info-box success-message"},ta=["title"],na={key:0},ra={key:1,class:"app-secret"},aa=["title"],oa={class:"client-scopes"},sa={class:"app-buttons"},ia={key:2},la={class:"no-app"};var ca=(0,a.aZ)({__name:"UserApp",props:{authUser:null,afterCreation:{type:Boolean,default:!1}},setup(e){const t=e,n=(0,r.yj)(),s=(0,c.o)(),{afterCreation:u,authUser:d}=(0,i.BK)(t),m=(0,a.Fl)((()=>s.getters[l.Km.GETTERS.CLIENT])),_=(0,a.Fl)((()=>s.getters[l.Km.GETTERS.REVOCATION_SUCCESSFUL])),E=(0,i.iH)(!1),S=(0,i.iH)(null),T=(0,i.iH)(!1),p=(0,i.iH)(!1),A=(0,i.iH)(!1);function O(){!u.value&&n.params.id&&"string"===typeof n.params.id&&s.dispatch(l.Km.ACTIONS.GET_CLIENT_BY_ID,+n.params.id)}function I(e){S.value=e?"oauth2.APP_DELETION_CONFIRMATION":"oauth2.TOKENS_REVOCATION_CONFIRMATION",R(!0)}function R(e){E.value=e,e||(S.value=null)}function U(e){"oauth2.APP_DELETION_CONFIRMATION"===S.value?s.dispatch(l.Km.ACTIONS.DELETE_CLIENT,e):s.dispatch(l.Km.ACTIONS.REVOKE_ALL_TOKENS,e)}function g(){navigator.clipboard.writeText(m.value.client_id),T.value=!0,p.value=!1,setTimeout((()=>{T.value=!1}),3e3)}function N(){m.value.client_secret&&(navigator.clipboard.writeText(m.value.client_secret),p.value=!0,T.value=!1,setTimeout((()=>{p.value=!1}),3e3))}return(0,a.wF)((()=>{O(),navigator.clipboard&&(A.value=!0)})),(0,a.Ah)((()=>{s.commit(l.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),s.commit(l.Km.MUTATIONS.EMPTY_CLIENT),s.commit(l.Km.MUTATIONS.SET_REVOCATION_SUCCESSFUL,!1)})),(0,a.YP)((()=>_.value),(e=>{e&&R(!1)})),(e,t)=>{const n=(0,a.up)("Modal");return(0,a.wg)(),(0,a.iD)("div",Jr,[E.value?((0,a.wg)(),(0,a.j4)(n,{key:0,title:e.$t("common.CONFIRMATION"),message:e.$t(S.value),onConfirmAction:t[0]||(t[0]=e=>U((0,i.SU)(m).id)),onCancelAction:t[1]||(t[1]=e=>R(!1))},null,8,["title","message"])):(0,a.kq)("",!0),(0,i.SU)(m)&&(0,i.SU)(m).client_id?((0,a.wg)(),(0,a.iD)("div",Qr,[(0,i.SU)(u)||(0,i.SU)(_)?((0,a.wg)(),(0,a.iD)("div",ea,(0,o.zw)(e.$t((0,i.SU)(u)?"oauth2.APP_CREATED_SUCCESSFULLY":"oauth2.TOKENS_REVOKED")),1)):(0,a.kq)("",!0),(0,a._)("dl",null,[(0,a._)("dt",null,(0,o.zw)(e.$t("oauth2.APP.CLIENT_ID"))+":",1),(0,a._)("dd",null,[(0,a.Uk)((0,o.zw)((0,i.SU)(m).client_id)+" ",1),(0,i.SU)(u)&&A.value?((0,a.wg)(),(0,a.iD)("i",{key:0,class:(0,o.C_)("fa fa-"+(T.value?"check":"copy")),"aria-hidden":"true",title:e.$t("oauth2.COPY_TO_CLIPBOARD"),onClick:g},null,10,ta)):(0,a.kq)("",!0)]),(0,i.SU)(u)&&(0,i.SU)(m).client_secret?((0,a.wg)(),(0,a.iD)("dt",na,(0,o.zw)(e.$t("oauth2.APP.CLIENT_SECRET"))+": ",1)):(0,a.kq)("",!0),(0,i.SU)(u)&&(0,i.SU)(m).client_secret?((0,a.wg)(),(0,a.iD)("dd",ra,[(0,a.Uk)((0,o.zw)((0,i.SU)(m).client_secret)+" ",1),A.value?((0,a.wg)(),(0,a.iD)("i",{key:0,class:(0,o.C_)("fa fa-"+(p.value?"check":"copy")),"aria-hidden":"true",title:e.$t("oauth2.COPY_TO_CLIPBOARD"),onClick:N},null,10,aa)):(0,a.kq)("",!0)])):(0,a.kq)("",!0),(0,a._)("dt",null,(0,o.zw)((0,o.kC)(e.$t("oauth2.APP.ISSUE_AT")))+":",1),(0,a._)("dd",null,(0,o.zw)((0,i.SU)(Ye.p6)((0,i.SU)(m).issued_at,(0,i.SU)(d).timezone,(0,i.SU)(d).date_format)),1),(0,a._)("dt",null,(0,o.zw)(e.$t("oauth2.APP.NAME"))+":",1),(0,a._)("dd",null,(0,o.zw)((0,i.SU)(m).name),1),(0,a._)("dt",null,(0,o.zw)(e.$t("oauth2.APP.DESCRIPTION"))+":",1),(0,a._)("dd",{class:(0,o.C_)({"no-description":!(0,i.SU)(m).client_description})},(0,o.zw)((0,i.SU)(m).client_description?(0,i.SU)(m).client_description:e.$t("oauth2.NO_DESCRIPTION")),3),(0,a._)("dt",null,(0,o.zw)(e.$t("oauth2.APP.URL"))+":",1),(0,a._)("dd",null,(0,o.zw)((0,i.SU)(m).website),1),(0,a._)("dt",null,(0,o.zw)(e.$t("oauth2.APP.REDIRECT_URL"))+":",1),(0,a._)("dd",null,(0,o.zw)((0,i.SU)(m).redirect_uris.length>0?(0,i.SU)(m).redirect_uris[0]:""),1),(0,a._)("dt",null,(0,o.zw)(e.$t("oauth2.APP.SCOPE.LABEL"))+":",1),(0,a._)("dd",oa,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,i.SU)(m).scope.split(" "),(e=>((0,a.wg)(),(0,a.iD)("span",{class:"client-scope",key:e},[(0,a._)("code",null,(0,o.zw)(e),1)])))),128))])]),(0,a._)("div",sa,[(0,a._)("button",{class:"danger",onClick:t[2]||(t[2]=e=>I(!1))},(0,o.zw)(e.$t("oauth2.REVOKE_ALL_TOKENS")),1),(0,a._)("button",{class:"danger",onClick:t[3]||(t[3]=e=>I(!0))},(0,o.zw)(e.$t("oauth2.DELETE_APP")),1),(0,a._)("button",{onClick:t[4]||(t[4]=t=>e.$router.push("/profile/apps"))},(0,o.zw)(e.$t("buttons.BACK")),1)])])):((0,a.wg)(),(0,a.iD)("div",ia,[(0,a._)("p",la,(0,o.zw)(e.$t("oauth2.NO_APP")),1),(0,a._)("button",{onClick:t[5]||(t[5]=t=>e.$router.push("/profile/apps"))},(0,o.zw)(e.$t("buttons.BACK")),1)]))])}}});const ua=(0,P.Z)(ca,[["__scopeId","data-v-3a844fa2"]]);var da=ua;const ma={id:"oauth2-apps-list"},_a={class:"apps-list"},Ea={key:0},Sa={class:"app-issued-at"},Ta={key:1,class:"no-apps"},pa={class:"app-list-buttons"};var Aa=(0,a.aZ)({__name:"UserAppsList",props:{authUser:null},setup(e){const t=e,n=(0,c.o)(),s=(0,r.yj)(),{authUser:u}=(0,i.BK)(t),d=(0,a.Fl)((()=>n.getters[l.Km.GETTERS.CLIENTS])),m=(0,a.Fl)((()=>n.getters[l.Km.GETTERS.CLIENTS_PAGINATION]));let _=E(s.query);function E(e){const t={};return e.page&&(t.page=(0,Ke.z_)(e.page,Ke.Hf)),t}function S(e){n.dispatch(l.Km.ACTIONS.GET_CLIENTS,e)}return(0,a.wF)((()=>{S(_)})),(0,a.YP)((()=>s.query),(async e=>{_=E(e),S(_)})),(e,t)=>{const n=(0,a.up)("router-link");return(0,a.wg)(),(0,a.iD)("div",ma,[(0,a._)("p",_a,(0,o.zw)(e.$t("oauth2.APPS_LIST")),1),(0,i.SU)(d).length>0?((0,a.wg)(),(0,a.iD)("ul",Ea,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,i.SU)(d),(t=>((0,a.wg)(),(0,a.iD)("li",{key:t.client_id},[(0,a.Wm)(n,{to:{name:"UserApp",params:{id:t.id}}},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(t.name),1)])),_:2},1032,["to"]),(0,a._)("span",Sa,(0,o.zw)(e.$t("oauth2.APP.ISSUE_AT"))+" "+(0,o.zw)((0,i.SU)(Ye.p6)(t.issued_at,(0,i.SU)(u).timezone,(0,i.SU)(u).date_format)),1)])))),128))])):((0,a.wg)(),(0,a.iD)("div",Ta,(0,o.zw)(e.$t("oauth2.NO_APPS")),1)),(0,i.SU)(d).length>0?((0,a.wg)(),(0,a.j4)(Pe.Z,{key:2,pagination:(0,i.SU)(m),path:"/profile/apps",query:(0,i.SU)(_)},null,8,["pagination","query"])):(0,a.kq)("",!0),(0,a._)("div",pa,[(0,a._)("button",{onClick:t[0]||(t[0]=t=>e.$router.push("/profile/apps/new"))},(0,o.zw)(e.$t("oauth2.NEW_APP")),1),(0,a._)("button",{onClick:t[1]||(t[1]=t=>e.$router.push("/"))},(0,o.zw)(e.$t("common.HOME")),1)])])}}});const Oa=(0,P.Z)(Aa,[["__scopeId","data-v-efa45ea0"]]);var Ia=Oa;const Ra={id:"user-sport-preferences"},Ua={key:0,class:"responsive-table"},ga={class:"mobile-display"},Na={key:0,class:"profile-buttons mobile-display"},ha={key:1,class:"profile-buttons"},za={class:"text-left"},wa={key:0},fa={class:"cell-heading"},va=["value"],Ca={class:"cell-heading"},Da={key:0,class:"disabled-message"},ka={key:1,class:"fa fa-refresh fa-spin fa-fw"},Pa={class:"cell-heading"},La={class:"cell-heading"},Ma=["checked"],ba={class:"cell-heading"},ya=["value"],Ga={key:1},Fa={key:0,class:"action-buttons"},Wa={class:"cell-heading"},Ka=["onClick"],Ya={key:1,class:"edition-buttons"},xa=["disabled"],Ba=["disabled","onClick"],$a=["disabled"],Za={key:0,class:"profile-buttons"},Ha={key:1,class:"profile-buttons"};var qa=(0,a.aZ)({__name:"UserSportPreferences",props:{user:null,isEdition:{type:Boolean}},setup(e){const t=e,n=(0,c.o)(),{t:r}=(0,ie.QT)(),{isEdition:u,user:d}=(0,i.BK)(t),m="#838383",_=(0,a.f3)("sportColors"),E=(0,a.Fl)((()=>n.getters[l.O8.GETTERS.SPORTS])),S=(0,a.Fl)((()=>(0,le.xH)(E.value,r,"is_active",d.value.sports_list))),T=(0,a.Fl)((()=>n.getters[l.YN.GETTERS.USER_LOADING])),p=(0,a.Fl)((()=>n.getters[l.SY.GETTERS.ERROR_MESSAGES])),A=(0,i.qj)({sport_id:0,color:null,is_active:!0,stopped_speed_threshold:1});function O(e){null!==e?(A.sport_id=e.id,A.color=e.color?e.color:_?_[e.label]:m,A.is_active=e.is_active_for_user,A.stopped_speed_threshold=e.stopped_speed_threshold):N()}function I(e){return A.sport_id===e}function R(e){A.color=e.target.value}function U(e){A.stopped_speed_threshold=parseFloat(e.target.value)}function g(e){A.is_active=e.target.checked}function N(){A.sport_id=0,A.color=null,A.is_active=!0,A.stopped_speed_threshold=1,n.commit(l.SY.MUTATIONS.EMPTY_ERROR_MESSAGES)}function h(e){e.preventDefault(),n.dispatch(l.YN.ACTIONS.UPDATE_USER_SPORT_PREFERENCES,A)}function z(e,t){e.preventDefault(),n.dispatch(l.YN.ACTIONS.RESET_USER_SPORT_PREFERENCES,t)}return(0,a.YP)((()=>T.value),(e=>{e||p.value||N()})),(e,t)=>{const n=(0,a.up)("SportImage"),r=(0,a.up)("ErrorMessage");return(0,a.wg)(),(0,a.iD)("div",Ra,[(0,i.SU)(E).length>0?((0,a.wg)(),(0,a.iD)("div",Ua,[(0,a._)("div",ga,[(0,i.SU)(u)?((0,a.wg)(),(0,a.iD)("div",Na,[(0,a._)("button",{class:"cancel",onClick:t[0]||(t[0]=(0,s.iM)((t=>e.$router.push("/profile/sports")),["prevent"]))},(0,o.zw)(e.$t("buttons.BACK")),1)])):((0,a.wg)(),(0,a.iD)("div",ha,[(0,a._)("button",{onClick:t[1]||(t[1]=t=>e.$router.push("/profile/edit/sports"))},(0,o.zw)(e.$t("user.PROFILE.EDIT_SPORTS_PREFERENCES")),1),(0,a._)("button",{onClick:t[2]||(t[2]=t=>e.$router.push("/"))},(0,o.zw)(e.$t("common.HOME")),1)]))]),(0,a._)("table",null,[(0,a._)("thead",null,[(0,a._)("tr",null,[(0,a._)("th",null,(0,o.zw)(e.$t("user.PROFILE.SPORT.COLOR")),1),(0,a._)("th",za,(0,o.zw)(e.$t("workouts.SPORT",0)),1),(0,a._)("th",null,(0,o.zw)(e.$t("workouts.WORKOUT",0)),1),(0,a._)("th",null,(0,o.zw)(e.$t("user.PROFILE.SPORT.IS_ACTIVE")),1),(0,a._)("th",null,(0,o.zw)(e.$t("user.PROFILE.SPORT.STOPPED_SPEED_THRESHOLD")),1),(0,i.SU)(u)?((0,a.wg)(),(0,a.iD)("th",wa,(0,o.zw)(e.$t("user.PROFILE.SPORT.ACTION")),1)):(0,a.kq)("",!0)])]),(0,a._)("tbody",null,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,i.SU)(S),(s=>((0,a.wg)(),(0,a.iD)("tr",{key:s.id},[(0,a._)("td",null,[(0,a._)("span",fa,(0,o.zw)(e.$t("user.PROFILE.SPORT.COLOR")),1),I(s.id)?((0,a.wg)(),(0,a.iD)("input",{key:0,class:"sport-color",type:"color",value:A.color,onInput:R},null,40,va)):((0,a.wg)(),(0,a.j4)(n,{key:1,title:s.translatedLabel,"sport-label":s.label,color:s.color?s.color:(0,i.SU)(_)[s.label]},null,8,["title","sport-label","color"]))]),(0,a._)("td",{class:(0,o.C_)(["sport-label",{"disabled-sport":!s.is_active}])},[(0,a._)("span",Ca,(0,o.zw)(e.$t("user.PROFILE.SPORT.LABEL")),1),(0,a.Uk)(" "+(0,o.zw)(s.translatedLabel)+" ",1),s.is_active?(0,a.kq)("",!0):((0,a.wg)(),(0,a.iD)("span",Da," ("+(0,o.zw)(e.$t("user.PROFILE.SPORT.DISABLED_BY_ADMIN"))+") ",1)),(0,i.SU)(T)&&I(s.id)?((0,a.wg)(),(0,a.iD)("i",ka)):(0,a.kq)("",!0),(0,i.SU)(p)&&A.sport_id===s.id?((0,a.wg)(),(0,a.j4)(r,{key:2,message:(0,i.SU)(p)},null,8,["message"])):(0,a.kq)("",!0)],2),(0,a._)("td",{class:(0,o.C_)(["text-center",{"disabled-sport":!s.is_active}])},[(0,a._)("span",Pa,(0,o.zw)(e.$t("workouts.WORKOUT",0)),1),(0,a._)("i",{class:(0,o.C_)("fa fa"+((0,i.SU)(d).sports_list.includes(s.id)?"-check":"")),"aria-hidden":"true"},null,2)],2),(0,a._)("td",{class:(0,o.C_)(["text-center",{"disabled-sport":!s.is_active}])},[(0,a._)("span",La,(0,o.zw)(e.$t("user.PROFILE.SPORT.IS_ACTIVE")),1),I(s.id)&&s.is_active?((0,a.wg)(),(0,a.iD)("input",{key:0,type:"checkbox",checked:s.is_active_for_user,onChange:g},null,40,Ma)):((0,a.wg)(),(0,a.iD)("i",{key:1,class:(0,o.C_)("fa fa"+(s.is_active_for_user?"-check":"")),"aria-hidden":"true"},null,2))],2),(0,a._)("td",{class:(0,o.C_)(["text-center",{"disabled-sport":!s.is_active}])},[(0,a._)("span",ba,(0,o.zw)(e.$t("user.PROFILE.SPORT.STOPPED_SPEED_THRESHOLD")),1),I(s.id)&&s.is_active?((0,a.wg)(),(0,a.iD)("input",{key:0,class:"threshold-input",type:"number",min:"0",step:"0.1",value:A.stopped_speed_threshold,onInput:U},null,40,ya)):((0,a.wg)(),(0,a.iD)("span",Ga,(0,o.zw)(s.stopped_speed_threshold),1))],2),(0,i.SU)(u)?((0,a.wg)(),(0,a.iD)("td",Fa,[(0,a._)("span",Wa,(0,o.zw)(e.$t("user.PROFILE.SPORT.ACTION")),1),0===A.sport_id?((0,a.wg)(),(0,a.iD)("button",{key:0,onClick:e=>O(s)},(0,o.zw)(e.$t("buttons.EDIT")),9,Ka)):(0,a.kq)("",!0),I(s.id)?((0,a.wg)(),(0,a.iD)("div",Ya,[(0,a._)("button",{disabled:(0,i.SU)(T),onClick:h},(0,o.zw)(e.$t("buttons.SUBMIT")),9,xa),(0,a._)("button",{disabled:(0,i.SU)(T),onClick:e=>z(e,s.id)},(0,o.zw)(e.$t("buttons.RESET")),9,Ba),(0,a._)("button",{disabled:(0,i.SU)(T),onClick:t[3]||(t[3]=e=>O(null))},(0,o.zw)(e.$t("buttons.CANCEL")),9,$a)])):(0,a.kq)("",!0)])):(0,a.kq)("",!0)])))),128))])]),(0,i.SU)(u)?((0,a.wg)(),(0,a.iD)("div",Za,[(0,a._)("button",{class:"cancel",onClick:t[4]||(t[4]=(0,s.iM)((t=>e.$router.push("/profile/sports")),["prevent"]))},(0,o.zw)(e.$t("buttons.BACK")),1)])):((0,a.wg)(),(0,a.iD)("div",Ha,[(0,a._)("button",{onClick:t[5]||(t[5]=t=>e.$router.push("/profile/edit/sports"))},(0,o.zw)(e.$t("user.PROFILE.EDIT_SPORTS_PREFERENCES")),1),(0,a._)("button",{onClick:t[6]||(t[6]=t=>e.$router.push("/"))},(0,o.zw)(e.$t("common.HOME")),1)]))])):(0,a.kq)("",!0)])}}});const Va=(0,P.Z)(qa,[["__scopeId","data-v-74e52489"]]);var ja=Va,Xa=n(2894);const Ja=e=>((0,a.dD)("data-v-74257266"),e=e(),(0,a.Cn)(),e),Qa={class:"about-text"},eo=["innerHTML"],to=Ja((()=>(0,a._)("i",{class:"fa fa-book fa-padding","aria-hidden":"true"},null,-1))),no={href:"https://samr1.github.io/FitTrackee/",target:"_blank",rel:"noopener noreferrer"},ro=Ja((()=>(0,a._)("i",{class:"fa fa-github fa-padding","aria-hidden":"true"},null,-1))),ao={href:"https://github.com/SamR1/FitTrackee",target:"_blank",rel:"noopener noreferrer"},oo=Ja((()=>(0,a._)("i",{class:"fa fa-balance-scale fa-padding","aria-hidden":"true"},null,-1))),so=Ja((()=>(0,a._)("a",{href:"https://choosealicense.com/licenses/agpl-3.0/",target:"_blank",rel:"noopener noreferrer"}," AGPLv3 ",-1))),io={key:0},lo=Ja((()=>(0,a._)("i",{class:"fa fa-envelope-o fa-padding","aria-hidden":"true"},null,-1))),co=["href"];var uo=(0,a.aZ)({__name:"About",setup(e){const t=(0,c.o)(),n=(0,a.Fl)((()=>t.getters[l.SY.GETTERS.APP_CONFIG]));return(e,t)=>{const r=(0,a.up)("i18n-t");return(0,a.wg)(),(0,a.iD)("div",Qa,[(0,a._)("div",null,[(0,a._)("p",{class:"error-message",innerHTML:e.$t("about.FITTRACKEE_DESCRIPTION")},null,8,eo),(0,a._)("p",null,[to,(0,a._)("a",no,(0,o.zw)((0,o.kC)(e.$t("common.DOCUMENTATION"))),1)]),(0,a._)("p",null,[ro,(0,a._)("a",ao,(0,o.zw)(e.$t("about.SOURCE_CODE")),1)]),(0,a._)("p",null,[oo,(0,a.Wm)(r,{keypath:"about.FITTRACKEE_LICENSE"},{default:(0,a.w5)((()=>[so])),_:1})]),(0,i.SU)(n).admin_contact?((0,a.wg)(),(0,a.iD)("div",io,[lo,(0,a._)("a",{href:`mailto:${(0,i.SU)(n).admin_contact}`},(0,o.zw)(e.$t("about.CONTACT_ADMIN")),9,co)])):(0,a.kq)("",!0)])])}}});const mo=(0,P.Z)(uo,[["__scopeId","data-v-74257266"]]);var _o=mo;const Eo={id:"bike"},So=["src"];function To(e,t){return(0,a.wg)(),(0,a.iD)("div",Eo,[(0,a._)("img",{class:"bike-img",src:"/img/bike.svg",alt:"mountain bike"},null,8,So)])}const po={},Ao=(0,P.Z)(po,[["render",To],["__scopeId","data-v-795f7f5f"]]);var Oo=Ao;const Io={id:"about",class:"view"},Ro={class:"container"},Uo={class:"container-sub"},go={class:"container-sub about-details"};var No=(0,a.aZ)({__name:"AboutView",setup(e){return(e,t)=>((0,a.wg)(),(0,a.iD)("div",Io,[(0,a._)("div",Ro,[(0,a._)("div",Uo,[(0,a.Wm)(Oo)]),(0,a._)("div",go,[(0,a.Wm)(_o)])])]))}});const ho=(0,P.Z)(No,[["__scopeId","data-v-bffb50d0"]]);var zo=ho,wo=n(1818),fo=n(2056);const vo=e=>((0,a.dD)("data-v-96abcc38"),e=e(),(0,a.Cn)(),e),Co={class:"timeline-workout"},Do={class:"box"},ko={class:"workout-user-date"},Po={class:"workout-user"},Lo=["title"],Mo={key:0},bo={key:1,class:"no-map"},yo={class:"img"},Go={class:"data"},Fo=vo((()=>(0,a._)("i",{class:"fa fa-clock-o","aria-hidden":"true"},null,-1))),Wo={key:0},Ko={class:"data"},Yo=vo((()=>(0,a._)("i",{class:"fa fa-road","aria-hidden":"true"},null,-1))),xo={key:0,class:"data elevation"},Bo=["alt"],$o={class:"data-values"},Zo={key:1,class:"data altitude"},Ho=vo((()=>(0,a._)("i",{class:"fa fa-location-arrow","aria-hidden":"true"},null,-1))),qo={class:"data-values"};var Vo=(0,a.aZ)({__name:"WorkoutCard",props:{user:null,useImperialUnits:{type:Boolean},workout:{default:()=>({})},sport:{default:()=>({})}},setup(e){const t=e,n=(0,c.o)(),{user:r,workout:s,sport:u,useImperialUnits:d}=(0,i.BK)(t),m=(0,a.Fl)((()=>n.getters[l.SY.GETTERS.LOCALE]));return(e,t)=>{const n=(0,a.up)("router-link"),l=(0,a.up)("SportImage"),c=(0,a.up)("Distance");return(0,a.wg)(),(0,a.iD)("div",Co,[(0,a._)("div",Do,[(0,a._)("div",ko,[(0,a._)("div",Po,[(0,a.Wm)(Le.Z,{user:(0,i.SU)(r)},null,8,["user"]),(0,i.SU)(r).username?((0,a.wg)(),(0,a.j4)(n,{key:0,class:"workout-user-name",to:{name:"User",params:{username:(0,i.SU)(r).username}}},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)((0,i.SU)(r).username),1)])),_:1},8,["to"])):(0,a.kq)("",!0)]),(0,i.SU)(s).id?((0,a.wg)(),(0,a.j4)(n,{key:0,class:"workout-title",to:{name:"Workout",params:{workoutId:(0,i.SU)(s).id}}},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)((0,i.SU)(s).title),1)])),_:1},8,["to"])):(0,a.kq)("",!0),(0,i.SU)(s).workout_date&&(0,i.SU)(r)?((0,a.wg)(),(0,a.iD)("div",{key:1,class:"workout-date",title:(0,i.SU)(Ye.p6)((0,i.SU)(s).workout_date,(0,i.SU)(r).timezone,(0,i.SU)(r).date_format)},(0,o.zw)((0,i.SU)(wo.Z)(new Date((0,i.SU)(s).workout_date),new Date,{addSuffix:!0,locale:(0,i.SU)(m)})),9,Lo)):(0,a.kq)("",!0)]),(0,a._)("div",{class:(0,o.C_)(["workout-map",{"no-cursor":!(0,i.SU)(s)}]),onClick:t[0]||(t[0]=t=>(0,i.SU)(s).id?e.$router.push({name:"Workout",params:{workoutId:(0,i.SU)(s).id}}):null)},[(0,i.SU)(s)?((0,a.wg)(),(0,a.iD)("div",Mo,[(0,i.SU)(s).with_gpx?((0,a.wg)(),(0,a.j4)(fo.Z,{key:0,workout:(0,i.SU)(s)},null,8,["workout"])):((0,a.wg)(),(0,a.iD)("div",bo,(0,o.zw)(e.$t("workouts.NO_MAP")),1))])):(0,a.kq)("",!0)],2),(0,a._)("div",{class:(0,o.C_)(["workout-data",{"without-gpx":(0,i.SU)(s)&&!(0,i.SU)(s).with_gpx}]),onClick:t[1]||(t[1]=t=>(0,i.SU)(s).id?e.$router.push({name:"Workout",params:{workoutId:(0,i.SU)(s).id}}):null)},[(0,a._)("div",yo,[(0,i.SU)(u).label?((0,a.wg)(),(0,a.j4)(l,{key:0,"sport-label":(0,i.SU)(u).label,color:(0,i.SU)(u).color},null,8,["sport-label","color"])):(0,a.kq)("",!0)]),(0,a._)("div",Go,[Fo,(0,i.SU)(s)?((0,a.wg)(),(0,a.iD)("span",Wo,(0,o.zw)((0,i.SU)(s).moving),1)):(0,a.kq)("",!0)]),(0,a._)("div",Ko,[Yo,(0,i.SU)(s).id?((0,a.wg)(),(0,a.j4)(c,{key:0,distance:(0,i.SU)(s).distance,digits:3,unitFrom:"km",useImperialUnits:(0,i.SU)(d)},null,8,["distance","useImperialUnits"])):(0,a.kq)("",!0)]),(0,i.SU)(s)&&(0,i.SU)(s).with_gpx?((0,a.wg)(),(0,a.iD)("div",xo,[(0,a._)("img",{class:"mountains",src:"/img/workouts/mountains.svg",alt:e.$t("workouts.ELEVATION")},null,8,Bo),(0,a._)("div",$o,[(0,i.SU)(s).id?((0,a.wg)(),(0,a.j4)(c,{key:0,distance:(0,i.SU)(s).min_alt,unitFrom:"m",displayUnit:!1,useImperialUnits:(0,i.SU)(d)},null,8,["distance","useImperialUnits"])):(0,a.kq)("",!0),(0,a.Uk)("/ "),(0,i.SU)(s).id?((0,a.wg)(),(0,a.j4)(c,{key:1,distance:(0,i.SU)(s).max_alt,unitFrom:"m",useImperialUnits:(0,i.SU)(d)},null,8,["distance","useImperialUnits"])):(0,a.kq)("",!0)])])):(0,a.kq)("",!0),(0,i.SU)(s)&&(0,i.SU)(s).with_gpx?((0,a.wg)(),(0,a.iD)("div",Zo,[Ho,(0,a._)("div",qo,[(0,a.Uk)(" +"),(0,i.SU)(s).id?((0,a.wg)(),(0,a.j4)(c,{key:0,distance:(0,i.SU)(s).ascent,unitFrom:"m",displayUnit:!1,useImperialUnits:(0,i.SU)(d)},null,8,["distance","useImperialUnits"])):(0,a.kq)("",!0),(0,a.Uk)("/- "),(0,i.SU)(s).id?((0,a.wg)(),(0,a.j4)(c,{key:1,distance:(0,i.SU)(s).descent,unitFrom:"m",useImperialUnits:(0,i.SU)(d)},null,8,["distance","useImperialUnits"])):(0,a.kq)("",!0)])])):(0,a.kq)("",!0)],2)])])}}});const jo=(0,P.Z)(Vo,[["__scopeId","data-v-96abcc38"]]);var Xo=jo,Jo=n(5630),Qo=n(3768);const es={id:"timeline"},ts={class:"section-title"},ns={key:0},rs={key:1},as={key:1,class:"more-workouts"};var os=(0,a.aZ)({__name:"Timeline",props:{sports:null,user:null},setup(e){const t=e,n=(0,c.o)(),{sports:r,user:s}=(0,i.BK)(t),u=(0,i.iH)(1),d=5,m=t.user.nb_workouts>=d?d:t.user.nb_workouts;(0,a.wF)((()=>S()));const _=(0,a.Fl)((()=>n.getters[l.aX.GETTERS.TIMELINE_WORKOUTS])),E=(0,a.Fl)((()=>_.value.length>0&&null!==_.value[_.value.length-1].previous_workout));function S(){n.dispatch(l.aX.ACTIONS.GET_TIMELINE_WORKOUTS,{page:u.value,per_page:d,...Qo.eR})}function T(){u.value+=1,n.dispatch(l.aX.ACTIONS.GET_MORE_TIMELINE_WORKOUTS,{page:u.value,per_page:d,...Qo.eR})}return(e,t)=>((0,a.wg)(),(0,a.iD)("div",es,[(0,a._)("div",ts,(0,o.zw)(e.$t("workouts.LATEST_WORKOUTS")),1),(0,i.SU)(s).nb_workouts>0&&0===(0,i.SU)(_).length?((0,a.wg)(),(0,a.iD)("div",ns,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)([...Array((0,i.SU)(m)).keys()],(e=>((0,a.wg)(),(0,a.j4)(Xo,{user:(0,i.SU)(s),useImperialUnits:(0,i.SU)(s).imperial_units,key:e},null,8,["user","useImperialUnits"])))),128))])):((0,a.wg)(),(0,a.iD)("div",rs,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,i.SU)(_),(e=>((0,a.wg)(),(0,a.j4)(Xo,{workout:e,sport:(0,i.SU)(_).length>0?(0,i.SU)(r).filter((t=>t.id===e.sport_id))[0]:null,user:(0,i.SU)(s),useImperialUnits:(0,i.SU)(s).imperial_units,key:e.id},null,8,["workout","sport","user","useImperialUnits"])))),128)),0===(0,i.SU)(_).length?((0,a.wg)(),(0,a.j4)(Jo.Z,{key:0})):(0,a.kq)("",!0),(0,i.SU)(E)?((0,a.wg)(),(0,a.iD)("div",as,[(0,a._)("button",{onClick:T},(0,o.zw)(e.$t("workouts.LOAD_MORE_WORKOUT")),1)])):(0,a.kq)("",!0)]))]))}});const ss=(0,P.Z)(os,[["__scopeId","data-v-35567bf2"]]);var is=ss,ls=n(1640),cs=n(4559),us=n(7349),ds=n(1743),ms=n(9160),_s=n(1085);const Es=["title"];var Ss=(0,a.aZ)({__name:"CalendarWorkout",props:{displayHARecord:{type:Boolean},workout:null,sportLabel:null,sportColor:null},setup(e){const t=e,{displayHARecord:n,workout:r,sportLabel:o,sportColor:s}=(0,i.BK)(t);return(e,t)=>{const l=(0,a.up)("SportImage");return(0,a.wg)(),(0,a.iD)("div",{class:"calendar-workout",onClick:t[0]||(t[0]=t=>e.$router.push({name:"Workout",params:{workoutId:(0,i.SU)(r).id}}))},[(0,a.Wm)(l,{"sport-label":(0,i.SU)(o),title:(0,i.SU)(r).title,color:(0,i.SU)(s)},null,8,["sport-label","title","color"]),(0,a._)("sup",null,[(0,i.SU)(r).records.length>0?((0,a.wg)(),(0,a.iD)("i",{key:0,class:"fa fa-trophy custom-fa-small","aria-hidden":"true",title:(0,i.SU)(r).records.filter((e=>!!(0,i.SU)(n)||"HA"!==e.record_type)).map((t=>` ${e.$t(`workouts.RECORD_${t.record_type}`)}`))},null,8,Es)):(0,a.kq)("",!0)])])}}});const Ts=Ss;var ps=Ts;const As={class:"donut-chart"},Os={height:"34",width:"34",viewBox:"0 0 34 34"},Is=["stroke","stroke-dashoffset","transform"];var Rs=(0,a.aZ)({__name:"DonutChart",props:{colors:null,datasets:null},setup(e){const t=e,{colors:n,datasets:r}=(0,i.BK)(t);let o=-90;const s=16,l=16,c=14,u=2*Math.PI*c;function d(e,t){return t-e*t}function m(e,t){const n=`rotate(${o}, ${s}, ${l})`;return o=360*t+o,n}return(e,t)=>((0,a.wg)(),(0,a.iD)("div",As,[((0,a.wg)(),(0,a.iD)("svg",Os,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(Object.entries((0,i.SU)(r)),((e,t)=>((0,a.wg)(),(0,a.iD)("g",{key:t},[(0,a._)("circle",{cx:s,cy:l,r:c,fill:"transparent",stroke:(0,i.SU)(n)[+e[0]],"stroke-dashoffset":d(e[1].percentage,u),"stroke-dasharray":u,"stroke-width":"3","stroke-opacity":"0.8",transform:m(t,e[1].percentage)},null,8,Is)])))),128))]))]))}});const Us=Rs;var gs=Us;const Ns={class:"calendar-workouts-chart"},hs={class:"workouts-count"},zs={key:0,class:"workouts-pane"},ws={class:"more-workouts"};var fs=(0,a.aZ)({__name:"CalendarWorkoutsChart",props:{colors:null,datasets:null,sports:null,workouts:null},setup(e){const t=e,{colors:n,datasets:r,sports:s,workouts:l}=(0,i.BK)(t),c=(0,i.iH)(!0);function u(e){e.stopPropagation(),c.value=!c.value}return(e,t)=>{const d=(0,a.Q2)("click-outside");return(0,a.wg)(),(0,a.iD)("div",Ns,[(0,a._)("div",{class:"workouts-chart",onClick:u},[(0,a._)("div",hs,(0,o.zw)((0,i.SU)(l).length),1),(0,a.Wm)(gs,{datasets:(0,i.SU)(r),colors:(0,i.SU)(n)},null,8,["datasets","colors"])]),c.value?(0,a.kq)("",!0):((0,a.wg)(),(0,a.iD)("div",zs,[(0,a.wy)(((0,a.wg)(),(0,a.iD)("div",ws,[(0,a._)("i",{class:"fa fa-times calendar-more","aria-hidden":"true",onClick:u}),((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,i.SU)(l),((e,t)=>((0,a.wg)(),(0,a.j4)(ps,{key:t,workout:e,sportLabel:(0,i.SU)(le.PA)(e,(0,i.SU)(s)),sportColor:(0,i.SU)(le.CM)(e,(0,i.SU)(s))},null,8,["workout","sportLabel","sportColor"])))),128))])),[[d,u]])]))])}}});const vs=(0,P.Z)(fs,[["__scopeId","data-v-52d4310a"]]);var Cs=vs;const Ds={class:"calendar-workouts"},ks={class:"desktop-display"},Ps={key:0,class:"workouts-display"},Ls={key:1,class:"donut-display"},Ms={class:"mobile-display"},bs={key:0,class:"donut-display"};var ys=(0,a.aZ)({__name:"CalendarWorkouts",props:{displayHARecord:{type:Boolean},workouts:null,sports:null},setup(e){const t=e,{displayHARecord:n,workouts:r,sports:o}=(0,i.BK)(t),s=(0,a.Fl)((()=>(0,Qo.BN)(t.workouts))),l=(0,a.Fl)((()=>(0,le.Yx)(t.sports))),c=6;return(e,t)=>((0,a.wg)(),(0,a.iD)("div",Ds,[(0,a._)("div",ks,[(0,i.SU)(r).length<=c?((0,a.wg)(),(0,a.iD)("div",Ps,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,i.SU)(r).slice(0,c),((e,t)=>((0,a.wg)(),(0,a.j4)(ps,{key:t,displayHARecord:(0,i.SU)(n),workout:e,sportLabel:(0,i.SU)(le.PA)(e,(0,i.SU)(o)),sportColor:(0,i.SU)(le.CM)(e,(0,i.SU)(o))},null,8,["displayHARecord","workout","sportLabel","sportColor"])))),128))])):((0,a.wg)(),(0,a.iD)("div",Ls,[(0,a.Wm)(Cs,{workouts:(0,i.SU)(r),sports:(0,i.SU)(o),datasets:(0,i.SU)(s),colors:(0,i.SU)(l)},null,8,["workouts","sports","datasets","colors"])]))]),(0,a._)("div",Ms,[(0,i.SU)(r).length>0?((0,a.wg)(),(0,a.iD)("div",bs,[(0,a.Wm)(Cs,{workouts:(0,i.SU)(r),sports:(0,i.SU)(o),datasets:(0,i.SU)(s),colors:(0,i.SU)(l)},null,8,["workouts","sports","datasets","colors"])])):(0,a.kq)("",!0)])]))}});const Gs=ys;var Fs=Gs;const Ws={class:"calendar-cells"},Ks={class:"calendar-cell-day"};var Ys=(0,a.aZ)({__name:"CalendarCells",props:{currentDay:null,displayHARecord:{type:Boolean},endDate:null,sports:null,startDate:null,timezone:null,weekStartingMonday:{type:Boolean},workouts:null},setup(e){const t=e,{currentDay:n,displayHARecord:r,endDate:s,sports:l,startDate:c,timezone:u,weekStartingMonday:d,workouts:m}=(0,i.BK)(t),_=(0,i.iH)([]);function E(){_.value=[];let e=c.value;while(e<=s.value){const t=[];for(let n=0;n<7;n++)t.push(e),e=(0,us.Z)(e,1);_.value.push(t)}}function S(e){return d.value?[5,6].includes(e):[0,6].includes(e)}function T(e,t){return t?t.filter((t=>(0,ds.Z)((0,Ye.eB)(t.workout_date,u.value),e))).reverse():[]}return(0,a.bv)((()=>E())),(0,a.YP)((()=>t.currentDay),(()=>E())),(e,t)=>((0,a.wg)(),(0,a.iD)("div",Ws,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(_.value,((e,t)=>((0,a.wg)(),(0,a.iD)("div",{class:"calendar-row",key:t},[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(e,((e,t)=>((0,a.wg)(),(0,a.iD)("div",{class:(0,o.C_)(["calendar-cell",{"disabled-cell":!(0,i.SU)(ms.Z)(e,(0,i.SU)(n)),"week-end":S(t),today:(0,i.SU)(_s.Z)(e)}]),key:t},[(0,a.Wm)(Fs,{workouts:T(e,(0,i.SU)(m)),sports:(0,i.SU)(l),displayHARecord:(0,i.SU)(r)},null,8,["workouts","sports","displayHARecord"]),(0,a._)("div",Ks,(0,o.zw)((0,i.SU)(jt.Z)(e,"d")),1)],2)))),128))])))),128))]))}});const xs=Ys;var Bs=xs;const $s={class:"calendar-days"};var Zs=(0,a.aZ)({__name:"CalendarDays",props:{startDate:null,localeOptions:null},setup(e){const t=e,n=[];for(let r=0;r<7;r++)n.push((0,us.Z)(t.startDate,r));return(t,r)=>((0,a.wg)(),(0,a.iD)("div",$s,[((0,a.wg)(),(0,a.iD)(a.HY,null,(0,a.Ko)(n,((t,n)=>(0,a._)("div",{class:"calendar-day",key:n},(0,o.zw)((0,i.SU)(jt.Z)(t,"EEE",{locale:e.localeOptions})),1))),64))]))}});const Hs=Zs;var qs=Hs;const Vs={class:"calendar-header"},js=(0,a._)("i",{class:"fa fa-chevron-left","aria-hidden":"true"},null,-1),Xs=[js],Js={class:"calendar-month"},Qs=(0,a._)("i",{class:"fa fa-chevron-right","aria-hidden":"true"},null,-1),ei=[Qs];var ti=(0,a.aZ)({__name:"CalendarHeader",props:{day:null,localeOptions:null},emits:["displayNextMonth","displayPreviousMonth"],setup(e,{emit:t}){const n=e,{day:r,localeOptions:s}=(0,i.BK)(n);return(e,n)=>((0,a.wg)(),(0,a.iD)("div",Vs,[(0,a._)("div",{class:"calendar-arrow calendar-arrow-left",onClick:n[0]||(n[0]=e=>t("displayPreviousMonth"))},Xs),(0,a._)("div",Js,[(0,a._)("span",null,(0,o.zw)((0,i.SU)(jt.Z)((0,i.SU)(r),"MMM yyyy",{locale:(0,i.SU)(s)})),1)]),(0,a._)("div",{class:"calendar-arrow calendar-arrow-right",onClick:n[1]||(n[1]=e=>t("displayNextMonth"))},ei)]))}});const ni=ti;var ri=ni;const ai={id:"user-calendar"},oi={class:"calendar-card box"};var si=(0,a.aZ)({__name:"index",props:{sports:null,user:null},setup(e){const t=e,n=(0,c.o)(),{sports:r,user:o}=(0,i.BK)(t),s="yyyy-MM-dd",u=(0,i.iH)(new Date),d=(0,i.iH)((0,Ye.yx)(u.value,t.user.weekm)),m=(0,a.Fl)((()=>n.getters[l.aX.GETTERS.CALENDAR_WORKOUTS])),_=(0,a.Fl)((()=>n.getters[l.SY.GETTERS.LOCALE]));function E(){d.value=(0,Ye.yx)(u.value,t.user.weekm);const e={from:(0,jt.Z)(d.value.start,s),to:(0,jt.Z)(d.value.end,s),page:1,per_page:100,...Qo.eR};n.dispatch(l.aX.ACTIONS.GET_CALENDAR_WORKOUTS,e)}function S(){u.value=(0,ls.Z)(u.value,1),E()}function T(){u.value=(0,cs.Z)(u.value,1),E()}return(0,a.wF)((()=>E())),(e,t)=>((0,a.wg)(),(0,a.iD)("div",ai,[(0,a._)("div",oi,[(0,a.Wm)(ri,{day:u.value,"locale-options":(0,i.SU)(_),onDisplayNextMonth:S,onDisplayPreviousMonth:T},null,8,["day","locale-options"]),(0,a.Wm)(qs,{"start-date":d.value.start,"locale-options":(0,i.SU)(_)},null,8,["start-date","locale-options"]),(0,a.Wm)(Bs,{currentDay:u.value,displayHARecord:(0,i.SU)(o).display_ascent,"end-date":d.value.end,sports:(0,i.SU)(r),"start-date":d.value.start,timezone:(0,i.SU)(o).timezone,workouts:(0,i.SU)(m),weekStartingMonday:(0,i.SU)(o).weekm},null,8,["currentDay","displayHARecord","end-date","sports","start-date","timezone","workouts","weekStartingMonday"])])]))}});const ii=si;var li=ii,ci=n(3703),ui=n(4135),di=n(436);const mi={class:"user-month-stats"};var _i=(0,a.aZ)({__name:"UserMonthStats",props:{sports:null,user:null},setup(e){const t=e,{sports:n,user:r}=(0,i.BK)(t),s=new Date,l={duration:"week",start:(0,ci.Z)(s),end:(0,ui.Z)(s)},c=t.sports.map((e=>e.id));return(e,t)=>{const s=(0,a.up)("Card");return(0,a.wg)(),(0,a.iD)("div",mi,[(0,a.Wm)(s,null,{title:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.$t("dashboard.THIS_MONTH")),1)])),content:(0,a.w5)((()=>[(0,a.Wm)(di.Z,{sports:(0,i.SU)(n),user:(0,i.SU)(r),"chart-params":l,"displayed-sport-ids":(0,i.SU)(c),"hide-chart-if-no-data":!0},null,8,["sports","user","displayed-sport-ids"])])),_:1})])}}});const Ei=(0,P.Z)(_i,[["__scopeId","data-v-1bcddc12"]]);var Si=Ei,Ti=n(2540),pi=n(3649);const{locale:Ai}=Ti.Z.global,Oi=(e,t,n,r)=>{const a="km",o=n?pi.Dl[a].defaultTarget:a,s="m",i=n?pi.Dl[s].defaultTarget:s;let l;switch(e.record_type){case"AS":case"MS":l=`${(0,pi.sC)(+e.value,a,o,2)} ${o}/h`;break;case"FD":l=`${(0,pi.sC)(+e.value,a,o,3)} ${o}`;break;case"HA":l=`${(0,pi.sC)(+e.value,s,i,2)} ${i}`;break;case"LD":l=e.value;break;default:throw new Error(`Invalid record type, expected: "AS", "FD", "HA", "LD", "MD", got: "${e.record_type}"`)}return{workout_date:(0,Ye.p6)(e.workout_date,t,r,!1),workout_id:e.workout_id,id:e.id,record_type:e.record_type,value:l}},Ii=(e,t)=>{const n=e.label.toLowerCase(),r=t.label.toLowerCase();return n>r?1:n(o=(0,Ye.mh)(o,Ai.value),e.filter((e=>!!a||"HA"!==e.record_type)).reduce(((e,a)=>{const s=t.find((e=>e.id===a.sport_id));return s&&s.label&&(void 0===e[s.translatedLabel]&&(e[s.translatedLabel]={label:s.label,color:s.color,records:[]}),e[s.translatedLabel].records.push(Oi(a,n,r,o))),e}),{})),Ui={class:"records-card"},gi={class:"record-type"},Ni={class:"record-value"},hi={class:"record-date"};var zi=(0,a.aZ)({__name:"RecordsCard",props:{records:null,sportTranslatedLabel:null},setup(e){const t=e,{records:n,sportTranslatedLabel:r}=(0,i.BK)(t),{t:s}=(0,ie.QT)();function l(e){const t=[];return e.map((e=>{t.push({...e,label:s(`workouts.RECORD_${e.record_type}`)})})),t.sort(Ii)}return(e,t)=>{const s=(0,a.up)("SportImage"),c=(0,a.up)("router-link"),u=(0,a.up)("Card");return(0,a.wg)(),(0,a.iD)("div",Ui,[(0,a.Wm)(u,null,{title:(0,a.w5)((()=>[(0,a.Wm)(s,{"sport-label":(0,i.SU)(n).label,color:(0,i.SU)(n).color},null,8,["sport-label","color"]),(0,a.Uk)(" "+(0,o.zw)((0,i.SU)(r)),1)])),content:(0,a.w5)((()=>[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(l((0,i.SU)(n).records),(e=>((0,a.wg)(),(0,a.iD)("div",{class:"record",key:e.id},[(0,a._)("span",gi,(0,o.zw)(e.label),1),(0,a._)("span",Ni,(0,o.zw)(e.value),1),(0,a._)("span",hi,[(0,a.Wm)(c,{to:{name:"Workout",params:{workoutId:e.workout_id}}},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.workout_date),1)])),_:2},1032,["to"])])])))),128))])),_:1})])}}});const wi=(0,P.Z)(zi,[["__scopeId","data-v-8d17c606"]]);var fi=wi;const vi=e=>((0,a.dD)("data-v-f0c85cb8"),e=e(),(0,a.Cn)(),e),Ci={class:"user-records-section"},Di={class:"section-title"},ki=vi((()=>(0,a._)("i",{class:"fa fa-trophy custom-fa-small","aria-hidden":"true"},null,-1))),Pi={class:"user-records"},Li={key:0,class:"no-records"};var Mi=(0,a.aZ)({__name:"index",props:{sports:null,user:null},setup(e){const t=e,{t:n}=(0,ie.QT)(),r=(0,a.Fl)((()=>Ri(t.user.records,(0,le.xH)(t.sports,n),t.user.timezone,t.user.imperial_units,t.user.display_ascent,t.user.date_format)));return(t,n)=>((0,a.wg)(),(0,a.iD)("div",Ci,[(0,a._)("div",Di,[ki,(0,a.Uk)(" "+(0,o.zw)(t.$t("workouts.RECORD",2)),1)]),(0,a._)("div",Pi,[0===Object.keys((0,i.SU)(r)).length?((0,a.wg)(),(0,a.iD)("div",Li,(0,o.zw)(t.$t("workouts.NO_RECORDS")),1)):(0,a.kq)("",!0),((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(Object.keys((0,i.SU)(r)).sort(),(t=>((0,a.wg)(),(0,a.j4)(fi,{sportTranslatedLabel:t,records:(0,i.SU)(r)[t],key:t,useImperialUnits:e.user.imperial_units},null,8,["sportTranslatedLabel","records","useImperialUnits"])))),128))])]))}});const bi=(0,P.Z)(Mi,[["__scopeId","data-v-f0c85cb8"]]);var yi=bi;const Gi={id:"user-stats"};var Fi=(0,a.aZ)({__name:"index",props:{user:null},setup(e){const t=e,{t:n}=(0,ie.QT)(),{user:r}=(0,i.BK)(t),o=(0,a.Fl)((()=>t.user.total_duration)),s=(0,a.Fl)((()=>E(o))),l="km",c=r.value.imperial_units?pi.Dl[l].defaultTarget:l,u=(0,a.Fl)((()=>r.value.imperial_units?(0,pi.sC)(r.value.total_distance,l,c,2):parseFloat(r.value.total_distance.toFixed(2)))),d="m",m=r.value.imperial_units?pi.Dl[d].defaultTarget:d,_=(0,a.Fl)((()=>r.value.imperial_units?(0,pi.sC)(r.value.total_ascent,d,m,2):parseFloat(r.value.total_ascent.toFixed(2))));function E(e){const t=e.value.match(/day/g)?e.value.split(", ")[1]:e.value;return{days:e.value.match(/day/g)?`${e.value.split(" ")[0]} ${e.value.match(/days/g)?n("common.DAY",2):n("common.DAY",1)}`:`0 ${n("common.DAY",2)},`,duration:`${t.split(":")[0]}h ${t.split(":")[1]}min`}}return(e,t)=>((0,a.wg)(),(0,a.iD)("div",Gi,[(0,a.Wm)(B,{icon:"calendar",value:(0,i.SU)(r).nb_workouts,text:e.$t("workouts.WORKOUT",(0,i.SU)(r).nb_workouts)},null,8,["value","text"]),(0,a.Wm)(B,{icon:"road",value:(0,i.SU)(u),text:"mi"===(0,i.SU)(c)?"miles":(0,i.SU)(c)},null,8,["value","text"]),(0,i.SU)(r).display_ascent?((0,a.wg)(),(0,a.j4)(B,{key:0,icon:"location-arrow",value:(0,i.SU)(_),text:"ft"===(0,i.SU)(m)?"feet":(0,i.SU)(m)},null,8,["value","text"])):(0,a.kq)("",!0),(0,a.Wm)(B,{icon:"clock-o",value:(0,i.SU)(s).days,text:(0,i.SU)(s).duration},null,8,["value","text"]),(0,i.SU)(r).display_ascent?(0,a.kq)("",!0):((0,a.wg)(),(0,a.j4)(B,{key:1,icon:"tags",value:(0,i.SU)(r).nb_sports,text:e.$t("workouts.SPORT",(0,i.SU)(r).nb_sports)},null,8,["value","text"]))]))}});const Wi=Fi;var Ki=Wi;const Yi=e=>((0,a.dD)("data-v-4c0893c1"),e=e(),(0,a.Cn)(),e),xi={key:0,id:"dashboard",class:"view"},Bi={class:"container mobile-menu"},$i={class:"box"},Zi=Yi((()=>(0,a._)("i",{class:"fa fa-calendar","aria-hidden":"true"},null,-1))),Hi=[Zi],qi=Yi((()=>(0,a._)("i",{class:"fa fa-bar-chart","aria-hidden":"true"},null,-1))),Vi=[qi],ji=Yi((()=>(0,a._)("i",{class:"fa fa-map-o","aria-hidden":"true"},null,-1))),Xi=[ji],Ji=Yi((()=>(0,a._)("i",{class:"fa fa-trophy","aria-hidden":"true"},null,-1))),Qi=[Ji],el={class:"container"},tl={class:"container dashboard-container"},nl={class:"left-container dashboard-sub-container"},rl={class:"right-container dashboard-sub-container"},al=Yi((()=>(0,a._)("div",{id:"bottom"},null,-1))),ol={key:1,class:"app-loading"};var sl=(0,a.aZ)({__name:"Dashboard",setup(e){const t=(0,c.o)(),n=(0,a.Fl)((()=>t.getters[l.YN.GETTERS.AUTH_USER_PROFILE])),r=(0,a.Fl)((()=>t.getters[l.O8.GETTERS.SPORTS])),s=(0,i.iH)("calendar");function u(e){s.value=e}return(0,a.wF)((()=>t.dispatch(l.YN.ACTIONS.GET_USER_PROFILE))),(e,t)=>{const l=(0,a.up)("Loader");return(0,i.SU)(n).username&&(0,i.SU)(r).length>0?((0,a.wg)(),(0,a.iD)("div",xi,[(0,a._)("div",Bi,[(0,a._)("div",$i,[(0,a._)("div",{class:(0,o.C_)(["mobile-menu-item",{"is-selected":"calendar"===s.value}]),onClick:t[0]||(t[0]=e=>u("calendar"))},Hi,2),(0,a._)("div",{class:(0,o.C_)(["mobile-menu-item",{"is-selected":"chart"===s.value}]),onClick:t[1]||(t[1]=e=>u("chart"))},Vi,2),(0,a._)("div",{class:(0,o.C_)(["mobile-menu-item",{"is-selected":"timeline"===s.value}]),onClick:t[2]||(t[2]=e=>u("timeline"))},Xi,2),(0,a._)("div",{class:(0,o.C_)(["mobile-menu-item",{"is-selected":"records"===s.value}]),onClick:t[3]||(t[3]=e=>u("records"))},Qi,2)])]),(0,a._)("div",el,[(0,a.Wm)(Ki,{user:(0,i.SU)(n)},null,8,["user"])]),(0,a._)("div",tl,[(0,a._)("div",nl,[(0,a.Wm)(Si,{sports:(0,i.SU)(r),user:(0,i.SU)(n),class:(0,o.C_)({"is-hidden":!("chart"===s.value)})},null,8,["sports","user","class"]),(0,a.Wm)(yi,{sports:(0,i.SU)(r),user:(0,i.SU)(n),class:(0,o.C_)({"is-hidden":!("records"===s.value)})},null,8,["sports","user","class"])]),(0,a._)("div",rl,[(0,a.Wm)(li,{sports:(0,i.SU)(r),user:(0,i.SU)(n),class:(0,o.C_)({"is-hidden":!("calendar"===s.value)})},null,8,["sports","user","class"]),(0,a.Wm)(is,{sports:(0,i.SU)(r),user:(0,i.SU)(n),class:(0,o.C_)({"is-hidden":!("timeline"===s.value)})},null,8,["sports","user","class"])])]),al])):((0,a.wg)(),(0,a.iD)("div",ol,[(0,a.Wm)(l)]))}}});const il=(0,P.Z)(sl,[["__scopeId","data-v-4c0893c1"]]);var ll=il,cl=n(8273);const ul={class:"not-found view"};var dl=(0,a.aZ)({__name:"NotFoundView",setup(e){return(e,t)=>((0,a.wg)(),(0,a.iD)("div",ul,[(0,a.Wm)(cl.Z)]))}});const ml=dl;var _l=ml,El=n(2411);const Sl={id:"loginOrRegister",class:"view"},Tl={class:"container"},pl={class:"container-sub"},Al={class:"container-sub"};var Ol=(0,a.aZ)({__name:"LoginOrRegister",props:{action:null},setup(e){const t=e,{action:n}=(0,i.BK)(t);return(e,t)=>((0,a.wg)(),(0,a.iD)("div",Sl,[(0,a._)("div",Tl,[(0,a._)("div",pl,[(0,a.Wm)(Oo)]),(0,a._)("div",Al,[(0,a.Wm)(El.Z,{action:(0,i.SU)(n)},null,8,["action"])])])]))}});const Il=(0,P.Z)(Ol,[["__scopeId","data-v-58043acb"]]);var Rl=Il;const Ul=e=>{const t=/(\/profile)(\/edit)*(\/*)/,n=e.replace(t,"").toUpperCase();return""===n?"PROFILE":n.toUpperCase()},gl=[{path:"/",name:"Dashboard",component:ll},{path:"/login",name:"Login",component:Rl,props:{action:"login"}},{path:"/register",name:"Register",component:Rl,props:{action:"register"}},{path:"/account-confirmation",name:"AccountConfirmation",component:()=>n.e(845).then(n.bind(n,4264))},{path:"/account-confirmation/resend",name:"AccountConfirmationResend",component:()=>n.e(24).then(n.bind(n,5639)),props:{action:"account-confirmation-resend"}},{path:"/account-confirmation/email-sent",name:"AccountConfirmationEmailSend",component:()=>n.e(24).then(n.bind(n,5639)),props:{action:"email-sent"}},{path:"/password-reset/sent",name:"PasswordEmailSent",component:()=>n.e(24).then(n.bind(n,1627)),props:{action:"request-sent"}},{path:"/password-reset/request",name:"PasswordResetRequest",component:()=>n.e(24).then(n.bind(n,1627)),props:{action:"reset-request"}},{path:"/password-reset/password-updated",name:"PasswordUpdated",component:()=>n.e(24).then(n.bind(n,1627)),props:{action:"password-updated"}},{path:"/password-reset",name:"PasswordReset",component:()=>n.e(24).then(n.bind(n,1627)),props:{action:"reset"}},{path:"/email-update",name:"EmailUpdate",component:()=>n.e(845).then(n.bind(n,8160))},{path:"/profile",name:"Profile",component:()=>n.e(845).then(n.bind(n,1133)),children:[{path:"",name:"UserProfile",component:Nt,props:e=>({tab:Ul(e.path)}),children:[{path:"",name:"UserInfos",component:ht.Z},{path:"preferences",name:"UserPreferences",component:Dt},{path:"sports",name:"UserSportPreferences",component:ja,props:{isEdition:!1}},{path:"apps",name:"UserApps",component:Xr,children:[{path:"",name:"UserAppsList",component:Ia},{path:":id",name:"UserApp",component:da},{path:":id/created",name:"CreatedUserApp",component:da,props:{afterCreation:!0}},{path:"new",name:"AddUserApp",component:Mr},{path:"authorize",name:"AuthorizeUserApp",component:Hr}]}]},{path:"edit",name:"UserProfileEdition",component:Mt,props:e=>({tab:Ul(e.path)}),children:[{path:"",name:"UserInfosEdition",component:Sn},{path:"account",name:"UserAccountEdition",component:Vt},{path:"picture",name:"UserPictureEdition",component:wn},{path:"preferences",name:"UserPreferencesEdition",component:ur},{path:"sports",name:"UserSportPreferencesEdition",component:ja,props:{isEdition:!0}}]}]},{path:"/statistics",name:"Statistics",component:()=>n.e(193).then(n.bind(n,7885))},{path:"/users/:username",name:"User",component:()=>n.e(845).then(n.bind(n,9453))},{path:"/workouts",name:"Workouts",component:()=>n.e(401).then(n.bind(n,3372))},{path:"/workouts/:workoutId",name:"Workout",component:()=>n.e(401).then(n.bind(n,3847)),props:{displaySegment:!1}},{path:"/workouts/:workoutId/edit",name:"EditWorkout",component:()=>n.e(401).then(n.bind(n,8237))},{path:"/workouts/:workoutId/segment/:segmentId",name:"WorkoutSegment",component:()=>n.e(401).then(n.bind(n,3847)),props:{displaySegment:!0}},{path:"/workouts/add",name:"AddWorkout",component:()=>n.e(401).then(n.bind(n,4189))},{path:"/admin",name:"Administration",component:()=>n.e(328).then(n.bind(n,6e3)),children:[{path:"",name:"AdministrationMenu",component:se},{path:"application",name:"ApplicationAdministration",component:M},{path:"application/edit",name:"ApplicationAdministrationEdition",component:M,props:{edition:!0}},{path:"sports",name:"SportsAdministration",component:De},{path:"users/:username",name:"UserFromAdmin",component:()=>n.e(845).then(n.bind(n,9453)),props:{fromAdmin:!0}},{path:"users",name:"UsersAdministration",component:mt}]},{path:"/about",name:"About",component:zo},{path:"/:pathMatch(.*)*",name:"not-found",component:_l}],Nl=(0,r.p7)({history:(0,r.PO)("/"),routes:gl}),hl=["/login","/password-reset","/password-reset/password-updated","/password-reset/request","/password-reset/sent","/register","/account-confirmation","/account-confirmation/resend","/account-confirmation/email-sent"],zl=["/email-update","/about"];Nl.beforeEach(((e,t,n)=>{Xa.Z.dispatch(l.YN.ACTIONS.CHECK_AUTH_USER).then((()=>{if(zl.includes(e.path))return n();if(Xa.Z.getters[l.YN.GETTERS.IS_AUTHENTICATED]&&hl.includes(e.path))return n("/");if(Xa.Z.getters[l.YN.GETTERS.IS_AUTHENTICATED]||hl.includes(e.path))n();else{const t="/"===e.path?{path:"/login"}:{path:"/login",query:{from:e.fullPath}};n(t)}})).catch((e=>{console.error(e),n()}))}));var wl=Nl},5801:function(e,t,n){"use strict";var r,a,o,s,i,l,c,u,d,m,_,E,S,T,p,A,O,I;n.d(t,{YN:function(){return h},Km:function(){return z},SY:function(){return U},O8:function(){return g},gu:function(){return N},RT:function(){return w},aX:function(){return f}}),function(e){e["CHECK_AUTH_USER"]="CHECK_AUTH_USER",e["CONFIRM_ACCOUNT"]="CONFIRM_ACCOUNT",e["CONFIRM_EMAIL"]="CONFIRM_EMAIL",e["DELETE_ACCOUNT"]="DELETE_ACCOUNT",e["DELETE_PICTURE"]="DELETE_PICTURE",e["GET_USER_PROFILE"]="GET_USER_PROFILE",e["LOGIN_OR_REGISTER"]="LOGIN_OR_REGISTER",e["LOGOUT"]="LOGOUT",e["SEND_PASSWORD_RESET_REQUEST"]="SEND_PASSWORD_RESET_REQUEST",e["RESEND_ACCOUNT_CONFIRMATION_EMAIL"]="RESEND_ACCOUNT_CONFIRMATION_EMAIL",e["RESET_USER_PASSWORD"]="RESET_USER_PASSWORD",e["RESET_USER_SPORT_PREFERENCES"]="RESET_USER_SPORT_PREFERENCES",e["UPDATE_USER_ACCOUNT"]="UPDATE_USER_ACCOUNT",e["UPDATE_USER_PICTURE"]="UPDATE_USER_PICTURE",e["UPDATE_USER_PROFILE"]="UPDATE_USER_PROFILE",e["UPDATE_USER_PREFERENCES"]="UPDATE_USER_PREFERENCES",e["UPDATE_USER_SPORT_PREFERENCES"]="UPDATE_USER_SPORT_PREFERENCES"}(r||(r={})),function(e){e["AUTH_TOKEN"]="AUTH_TOKEN",e["AUTH_USER_PROFILE"]="AUTH_USER_PROFILE",e["IS_ADMIN"]="IS_ADMIN",e["IS_AUTHENTICATED"]="IS_AUTHENTICATED",e["IS_SUCCESS"]="IS_SUCCESS",e["IS_REGISTRATION_SUCCESS"]="IS_REGISTRATION_SUCCESS",e["USER_LOADING"]="USER_LOADING"}(a||(a={})),function(e){e["CLEAR_AUTH_USER_TOKEN"]="CLEAR_AUTH_USER_TOKEN",e["UPDATE_AUTH_TOKEN"]="UPDATE_AUTH_TOKEN",e["UPDATE_AUTH_USER_PROFILE"]="UPDATE_AUTH_USER_PROFILE",e["UPDATE_IS_SUCCESS"]="UPDATE_USER_IS_SUCCESS",e["UPDATE_IS_REGISTRATION_SUCCESS"]="UPDATE_IS_REGISTRATION_SUCCESS",e["UPDATE_USER_LOADING"]="UPDATE_USER_LOADING"}(o||(o={})),function(e){e["AUTHORIZE_CLIENT"]="AUTHORIZE_CLIENT",e["CREATE_CLIENT"]="CREATE_CLIENT",e["DELETE_CLIENT"]="DELETE_CLIENT",e["GET_CLIENTS"]="GET_CLIENTS",e["GET_CLIENT_BY_CLIENT_ID"]="GET_CLIENT_BY_CLIENT_ID",e["GET_CLIENT_BY_ID"]="GET_CLIENT_BY_ID",e["REVOKE_ALL_TOKENS"]="REVOKE_ALL_TOKENS"}(s||(s={})),function(e){e["CLIENT"]="CLIENT",e["CLIENTS"]="CLIENTS",e["CLIENTS_PAGINATION"]="CLIENTS_PAGINATION",e["REVOCATION_SUCCESSFUL"]="REVOCATION_SUCCESSFUL"}(i||(i={})),function(e){e["EMPTY_CLIENT"]="EMPTY_CLIENT",e["SET_CLIENT"]="SET_CLIENT",e["SET_CLIENTS"]="SET_CLIENTS",e["SET_CLIENTS_PAGINATION"]="SET_CLIENTS_PAGINATION",e["SET_REVOCATION_SUCCESSFUL"]="SET_REVOCATION_SUCCESSFUL"}(l||(l={})),function(e){e["GET_APPLICATION_CONFIG"]="GET_APPLICATION_CONFIG",e["GET_APPLICATION_STATS"]="GET_APPLICATION_STATS",e["UPDATE_APPLICATION_CONFIG"]="UPDATE_APPLICATION_CONFIG",e["UPDATE_APPLICATION_LANGUAGE"]="UPDATE_APPLICATION_LANGUAGE"}(c||(c={})),function(e){e["APP_CONFIG"]="APP_CONFIG",e["APP_LOADING"]="APP_LOADING",e["APP_STATS"]="APP_STATS",e["ERROR_MESSAGES"]="ERROR_MESSAGES",e["LANGUAGE"]="LANGUAGE",e["LOCALE"]="LOCALE"}(u||(u={})),function(e){e["EMPTY_ERROR_MESSAGES"]="EMPTY_ERROR_MESSAGES",e["SET_ERROR_MESSAGES"]="SET_ERROR_MESSAGES",e["UPDATE_APPLICATION_CONFIG"]="UPDATE_APPLICATION_CONFIG",e["UPDATE_APPLICATION_LOADING"]="UPDATE_APPLICATION_LOADING",e["UPDATE_APPLICATION_STATS"]="UPDATE_APPLICATION_STATS",e["UPDATE_LANG"]="UPDATE_LANG"}(d||(d={})),function(e){e["GET_SPORTS"]="GET_SPORTS",e["UPDATE_SPORTS"]="UPDATE_SPORTS"}(m||(m={})),function(e){e["SPORTS"]="SPORTS"}(_||(_={})),function(e){e["SET_SPORTS"]="SET_SPORTS"}(E||(E={})),function(e){e["GET_USER_STATS"]="GET_USER_STATS"}(S||(S={})),function(e){e["USER_STATS"]="USER_STATS"}(T||(T={})),function(e){e["EMPTY_USER_STATS"]="EMPTY_USER_STATS",e["UPDATE_USER_STATS"]="UPDATE_USER_STATS"}(p||(p={})),function(e){e["EMPTY_USER"]="EMPTY_USER",e["EMPTY_USERS"]="EMPTY_USERS",e["GET_USER"]="GET_USER",e["GET_USERS"]="GET_USERS",e["UPDATE_USER"]="UPDATE_USER",e["DELETE_USER_ACCOUNT"]="DELETE_USER_ACCOUNT"}(A||(A={})),function(e){e["USER"]="USER",e["USERS"]="USERS",e["USERS_IS_SUCCESS"]="USERS_IS_SUCCESS",e["USERS_LOADING"]="USERS_LOADING",e["USERS_PAGINATION"]="USERS_PAGINATION"}(O||(O={})),function(e){e["UPDATE_USER"]="UPDATE_USER",e["UPDATE_USER_IN_USERS"]="UPDATE_USER_IN_USERS",e["UPDATE_USERS"]="UPDATE_USERS",e["UPDATE_USERS_LOADING"]="UPDATE_USERS_LOADING",e["UPDATE_USERS_PAGINATION"]="UPDATE_USERS_PAGINATION",e["UPDATE_IS_SUCCESS"]="UPDATE_IS_SUCCESS"}(I||(I={}));var R=n(52);const U={ACTIONS:c,GETTERS:u,MUTATIONS:d},g={ACTIONS:m,GETTERS:_,MUTATIONS:E},N={ACTIONS:S,GETTERS:T,MUTATIONS:p},h={ACTIONS:r,GETTERS:a,MUTATIONS:o},z={ACTIONS:s,GETTERS:i,MUTATIONS:l},w={ACTIONS:A,GETTERS:O,MUTATIONS:I},f={ACTIONS:R.tW,GETTERS:R.JP,MUTATIONS:R.CW}},2894:function(e,t,n){"use strict";n.d(t,{Z:function(){return de}});var r=n(3907),a=(n(7658),n(5167)),o=n(594),s=n(8566),i=n(2024);const l=o.Z.create({baseURL:(0,i.k)()});l.interceptors.request.use((e=>{const t=new AbortController;e.signal=t.signal;const n=(0,s.a)(e);return s.j.set(n,t),e}),(e=>Promise.reject(e))),l.interceptors.response.use((e=>((0,s.a)(e.config),e)),(e=>("canceled"!==e.message&&(0,s.a)(e.response.config),Promise.reject(e))));var c=l,u=n(7351),d=n(5801);const m=(e,t)=>{e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z["delete"](`users/${t.username}`).then((n=>{204===n.status?t.fromAdmin?u.Z.push("/admin/users"):e.dispatch(d.YN.ACTIONS.LOGOUT).then((()=>u.Z.push("/"))):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t)))},_={[d.RT.ACTIONS.EMPTY_USER](e){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(d.RT.MUTATIONS.UPDATE_USER,{})},[d.RT.ACTIONS.EMPTY_USERS](e){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(d.RT.MUTATIONS.UPDATE_USERS,[]),e.commit(d.RT.MUTATIONS.UPDATE_USERS_PAGINATION,{})},[d.RT.ACTIONS.GET_USER](e,t){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(d.RT.MUTATIONS.UPDATE_USERS_LOADING,!0),a.Z.get(`users/${t}`).then((t=>{"success"===t.data.status?e.commit(d.RT.MUTATIONS.UPDATE_USER,t.data.data.users[0]):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t))).finally((()=>e.commit(d.RT.MUTATIONS.UPDATE_USERS_LOADING,!1)))},[d.RT.ACTIONS.GET_USERS](e,t){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(d.RT.MUTATIONS.UPDATE_USERS_LOADING,!0),a.Z.get("users",{params:t}).then((t=>{"success"===t.data.status?(e.commit(d.RT.MUTATIONS.UPDATE_USERS,t.data.data.users),e.commit(d.RT.MUTATIONS.UPDATE_USERS_PAGINATION,t.data.pagination)):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t))).finally((()=>e.commit(d.RT.MUTATIONS.UPDATE_USERS_LOADING,!1)))},[d.RT.ACTIONS.UPDATE_USER](e,t){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(d.RT.MUTATIONS.UPDATE_IS_SUCCESS,!1);const n={};void 0!==t.admin&&(n.admin=t.admin),t.resetPassword&&(n.reset_password=t.resetPassword),t.activate&&(n.activate=t.activate),void 0!==t.new_email&&(n.new_email=t.new_email),a.Z.patch(`users/${t.username}`,n).then((n=>{"success"===n.data.status?(e.commit(d.RT.MUTATIONS.UPDATE_USER_IN_USERS,n.data.data.users[0]),(t.resetPassword||t.new_email)&&e.commit(d.RT.MUTATIONS.UPDATE_IS_SUCCESS,!0),(t.activate||t.new_email)&&e.commit(d.RT.MUTATIONS.UPDATE_USER,n.data.data.users[0])):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t))).finally((()=>e.commit(d.RT.MUTATIONS.UPDATE_USERS_LOADING,!1)))},[d.RT.ACTIONS.DELETE_USER_ACCOUNT](e,t){m(e,{username:t.username,fromAdmin:!0})}},E=e=>{localStorage.removeItem("authToken"),e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(d.gu.MUTATIONS.EMPTY_USER_STATS),e.commit(d.YN.MUTATIONS.CLEAR_AUTH_USER_TOKEN),e.commit(d.RT.MUTATIONS.UPDATE_USERS,[]),e.commit(d.aX.MUTATIONS.EMPTY_WORKOUTS),e.commit(d.aX.MUTATIONS.EMPTY_WORKOUT),u.Z.push("/login")},S={[d.YN.ACTIONS.CHECK_AUTH_USER](e){window.localStorage.authToken&&!e.getters[d.YN.GETTERS.IS_AUTHENTICATED]&&(e.commit(d.YN.MUTATIONS.UPDATE_AUTH_TOKEN,window.localStorage.authToken),e.dispatch(d.YN.ACTIONS.GET_USER_PROFILE)),!window.localStorage.authToken&&e.getters[d.YN.GETTERS.IS_AUTHENTICATED]&&E(e)},[d.YN.ACTIONS.CONFIRM_ACCOUNT](e,t){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),c.post("auth/account/confirm",{token:t.token}).then((t=>{if("success"===t.data.status){const n=t.data.auth_token;window.localStorage.setItem("authToken",n),e.commit(d.YN.MUTATIONS.UPDATE_AUTH_TOKEN,n),e.dispatch(d.YN.ACTIONS.GET_USER_PROFILE).then((()=>u.Z.push("/")))}else(0,i.S)(e,null)})).catch((t=>{(0,i.S)(e,t)}))},[d.YN.ACTIONS.CONFIRM_EMAIL](e,t){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(d.YN.MUTATIONS.UPDATE_IS_SUCCESS,!1),c.post("/auth/email/update",{token:t.token}).then((n=>{"success"===n.data.status?(e.commit(d.YN.MUTATIONS.UPDATE_IS_SUCCESS,!0),t.refreshUser&&e.dispatch(d.YN.ACTIONS.GET_USER_PROFILE).then((()=>u.Z.push("/profile/edit/account"))),u.Z.push("/profile/edit/account")):(0,i.S)(e,null)})).catch((t=>{(0,i.S)(e,t)}))},[d.YN.ACTIONS.GET_USER_PROFILE](e){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z.get("auth/profile").then((t=>{"success"===t.data.status?(e.commit(d.YN.MUTATIONS.UPDATE_AUTH_USER_PROFILE,t.data.data),t.data.data.language&&e.dispatch(d.SY.ACTIONS.UPDATE_APPLICATION_LANGUAGE,t.data.data.language),e.dispatch(d.O8.ACTIONS.GET_SPORTS)):((0,i.S)(e,null),E(e))})).catch((t=>{"canceled"!==t.message&&((0,i.S)(e,t),E(e))}))},[d.YN.ACTIONS.LOGIN_OR_REGISTER](e,t){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(d.YN.MUTATIONS.UPDATE_IS_REGISTRATION_SUCCESS,!1),c.post(`/auth/${t.actionType}`,t.formData).then((n=>{if("success"===n.data.status)if("login"===t.actionType){const r=n.data.auth_token;window.localStorage.setItem("authToken",r),e.commit(d.YN.MUTATIONS.UPDATE_AUTH_TOKEN,r),e.dispatch(d.YN.ACTIONS.GET_USER_PROFILE).then((()=>u.Z.push("string"===typeof t.redirectUrl?t.redirectUrl:"/")))}else u.Z.push("/login").then((()=>e.commit(d.YN.MUTATIONS.UPDATE_IS_REGISTRATION_SUCCESS,!0)));else(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t)))},[d.YN.ACTIONS.LOGOUT](e){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z.post("auth/logout").then((t=>{"success"===t.data.status?E(e):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t)))},[d.YN.ACTIONS.UPDATE_USER_PROFILE](e,t){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(d.YN.MUTATIONS.UPDATE_USER_LOADING,!0),a.Z.post("auth/profile/edit",t).then((t=>{"success"===t.data.status?(e.commit(d.YN.MUTATIONS.UPDATE_AUTH_USER_PROFILE,t.data.data),u.Z.push("/profile")):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t))).finally((()=>e.commit(d.YN.MUTATIONS.UPDATE_USER_LOADING,!1)))},[d.YN.ACTIONS.UPDATE_USER_ACCOUNT](e,t){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(d.YN.MUTATIONS.UPDATE_USER_LOADING,!0),e.commit(d.YN.MUTATIONS.UPDATE_IS_SUCCESS,!1),a.Z.patch("auth/profile/edit/account",t).then((t=>{"success"===t.data.status?(e.commit(d.YN.MUTATIONS.UPDATE_AUTH_USER_PROFILE,t.data.data),e.commit(d.YN.MUTATIONS.UPDATE_IS_SUCCESS,!0)):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t))).finally((()=>e.commit(d.YN.MUTATIONS.UPDATE_USER_LOADING,!1)))},[d.YN.ACTIONS.UPDATE_USER_PREFERENCES](e,t){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(d.YN.MUTATIONS.UPDATE_USER_LOADING,!0),a.Z.post("auth/profile/edit/preferences",t).then((t=>{"success"===t.data.status?(e.commit(d.YN.MUTATIONS.UPDATE_AUTH_USER_PROFILE,t.data.data),e.dispatch(d.SY.ACTIONS.UPDATE_APPLICATION_LANGUAGE,t.data.data.language).then((()=>u.Z.push("/profile/preferences")))):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t))).finally((()=>e.commit(d.YN.MUTATIONS.UPDATE_USER_LOADING,!1)))},[d.YN.ACTIONS.RESET_USER_SPORT_PREFERENCES](e,t){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(d.YN.MUTATIONS.UPDATE_USER_LOADING,!0),a.Z["delete"](`auth/profile/reset/sports/${t}`).then((t=>{204===t.status?e.dispatch(d.O8.ACTIONS.GET_SPORTS):(0,i.S)(e,null)})).catch((t=>{(0,i.S)(e,t),e.commit(d.YN.MUTATIONS.UPDATE_USER_LOADING,!1)}))},[d.YN.ACTIONS.UPDATE_USER_SPORT_PREFERENCES](e,t){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(d.YN.MUTATIONS.UPDATE_USER_LOADING,!0),a.Z.post("auth/profile/edit/sports",t).then((t=>{"success"===t.data.status?e.dispatch(d.O8.ACTIONS.GET_SPORTS):(0,i.S)(e,null)})).catch((t=>{(0,i.S)(e,t),e.commit(d.YN.MUTATIONS.UPDATE_USER_LOADING,!1)}))},[d.YN.ACTIONS.UPDATE_USER_PICTURE](e,t){if(e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(d.YN.MUTATIONS.UPDATE_USER_LOADING,!0),!t.picture)throw new Error("No file part");const n=new FormData;n.append("file",t.picture),a.Z.post("auth/picture",n,{headers:{"content-type":"multipart/form-data"}}).then((t=>{"success"===t.data.status?e.dispatch(d.YN.ACTIONS.GET_USER_PROFILE).then((()=>u.Z.push("/profile"))):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t))).finally((()=>e.commit(d.YN.MUTATIONS.UPDATE_USER_LOADING,!1)))},[d.YN.ACTIONS.DELETE_ACCOUNT](e,t){m(e,t)},[d.YN.ACTIONS.DELETE_PICTURE](e){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(d.YN.MUTATIONS.UPDATE_USER_LOADING,!0),a.Z["delete"]("auth/picture").then((t=>{204===t.status?e.dispatch(d.YN.ACTIONS.GET_USER_PROFILE).then((()=>u.Z.push("/profile"))):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t))).finally((()=>e.commit(d.YN.MUTATIONS.UPDATE_USER_LOADING,!1)))},[d.YN.ACTIONS.SEND_PASSWORD_RESET_REQUEST](e,t){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),c.post("auth/password/reset-request",t).then((t=>{"success"===t.data.status?u.Z.push("/password-reset/sent"):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t)))},[d.YN.ACTIONS.RESEND_ACCOUNT_CONFIRMATION_EMAIL](e,t){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),c.post("auth/account/resend-confirmation",t).then((t=>{"success"===t.data.status?u.Z.push("/account-confirmation/email-sent"):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t)))},[d.YN.ACTIONS.RESET_USER_PASSWORD](e,t){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),c.post("auth/password/update",t).then((t=>{"success"===t.data.status?u.Z.push("/password-reset/password-updated"):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t)))}},T={[d.YN.GETTERS.AUTH_TOKEN]:e=>e.authToken,[d.YN.GETTERS.AUTH_USER_PROFILE]:e=>e.authUserProfile,[d.YN.GETTERS.IS_AUTHENTICATED]:e=>null!==e.authToken,[d.YN.GETTERS.IS_ADMIN]:e=>e.authUserProfile&&e.authUserProfile.admin,[d.YN.GETTERS.IS_REGISTRATION_SUCCESS]:e=>e.isRegistrationSuccess,[d.YN.GETTERS.IS_SUCCESS]:e=>e.isSuccess,[d.YN.GETTERS.USER_LOADING]:e=>e.loading},p={[d.YN.MUTATIONS.CLEAR_AUTH_USER_TOKEN](e){e.authToken=null,e.authUserProfile={}},[d.YN.MUTATIONS.UPDATE_AUTH_TOKEN](e,t){e.authToken=t},[d.YN.MUTATIONS.UPDATE_AUTH_USER_PROFILE](e,t){e.authUserProfile=t},[d.YN.MUTATIONS.UPDATE_IS_REGISTRATION_SUCCESS](e,t){e.isRegistrationSuccess=t},[d.YN.MUTATIONS.UPDATE_IS_SUCCESS](e,t){e.isSuccess=t},[d.YN.MUTATIONS.UPDATE_USER_LOADING](e,t){e.loading=t}},A={authToken:null,authUserProfile:{},isSuccess:!1,isRegistrationSuccess:!1,loading:!1},O={state:A,actions:S,getters:T,mutations:p};var I=O;const R=(e,t)=>{e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z.get(t).then((t=>{"success"===t.data.status?e.commit(d.Km.MUTATIONS.SET_CLIENT,t.data.data.client):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t)))},U={[d.Km.ACTIONS.AUTHORIZE_CLIENT](e,t){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES);const n=new FormData;n.set("client_id",t.client_id),n.set("response_type",t.response_type),n.set("scope",t.scope),n.set("confirm","true"),t.state&&n.set("state",t.state),t.code_challenge&&n.set("code_challenge",t.code_challenge),t.code_challenge_method&&n.set("code_challenge_method",t.code_challenge_method),a.Z.post("oauth/authorize",n,{headers:{"Content-Type":"multipart/form-data"}}).then((t=>{200==t.status&&t.data.redirect_url?window.location.href=t.data.redirect_url:(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t)))},[d.Km.ACTIONS.CREATE_CLIENT](e,t){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z.post("oauth/apps",t).then((t=>{"created"===t.data.status?(e.commit(d.Km.MUTATIONS.SET_CLIENT,t.data.data.client),u.Z.push(`/profile/apps/${t.data.data.client.id}/created`)):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t)))},[d.Km.ACTIONS.DELETE_CLIENT](e,t){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z["delete"](`oauth/apps/${t}`).then((t=>{204===t.status?e.dispatch(d.Km.ACTIONS.GET_CLIENTS).then((()=>u.Z.push("/profile/apps"))):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t)))},[d.Km.ACTIONS.GET_CLIENT_BY_CLIENT_ID](e,t){R(e,`oauth/apps/${t}`)},[d.Km.ACTIONS.GET_CLIENT_BY_ID](e,t){R(e,`oauth/apps/${t}/by_id`)},[d.Km.ACTIONS.GET_CLIENTS](e,t){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z.get("oauth/apps",{params:t}).then((t=>{"success"===t.data.status?(e.commit(d.Km.MUTATIONS.SET_CLIENTS,t.data.data.clients),e.commit(d.Km.MUTATIONS.SET_CLIENTS_PAGINATION,t.data.pagination)):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t)))},[d.Km.ACTIONS.REVOKE_ALL_TOKENS](e,t){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(d.Km.MUTATIONS.SET_REVOCATION_SUCCESSFUL,!1),a.Z.post(`oauth/apps/${t}/revoke`).then((t=>{"success"===t.data.status?e.commit(d.Km.MUTATIONS.SET_REVOCATION_SUCCESSFUL,!0):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t)))}},g={[d.Km.GETTERS.CLIENT]:e=>e.client,[d.Km.GETTERS.CLIENTS]:e=>e.clients,[d.Km.GETTERS.CLIENTS_PAGINATION]:e=>e.pagination,[d.Km.GETTERS.REVOCATION_SUCCESSFUL]:e=>e.revocationSuccessful},N={[d.Km.MUTATIONS.SET_CLIENT](e,t){e.client=t},[d.Km.MUTATIONS.EMPTY_CLIENT](e){e.client={}},[d.Km.MUTATIONS.SET_CLIENTS](e,t){e.clients=t},[d.Km.MUTATIONS.SET_CLIENTS_PAGINATION](e,t){e.pagination=t},[d.Km.MUTATIONS.SET_REVOCATION_SUCCESSFUL](e,t){e.revocationSuccessful=t}},h={client:{},clients:[],pagination:{},revocationSuccessful:!1},z={state:h,actions:U,getters:g,mutations:N};var w=z,f=n(2540);const{locale:v}=f.Z.global,C={[d.SY.ACTIONS.GET_APPLICATION_CONFIG](e){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(d.SY.MUTATIONS.UPDATE_APPLICATION_LOADING,!0),a.Z.get("config").then((t=>{"success"===t.data.status?e.commit(d.SY.MUTATIONS.UPDATE_APPLICATION_CONFIG,t.data.data):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t))).finally((()=>e.commit(d.SY.MUTATIONS.UPDATE_APPLICATION_LOADING,!1)))},[d.SY.ACTIONS.GET_APPLICATION_STATS](e){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z.get("stats/all").then((t=>{"success"===t.data.status?e.commit(d.SY.MUTATIONS.UPDATE_APPLICATION_STATS,t.data.data):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t)))},[d.SY.ACTIONS.UPDATE_APPLICATION_CONFIG](e,t){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z.patch("config",t).then((t=>{"success"===t.data.status?(e.commit(d.SY.MUTATIONS.UPDATE_APPLICATION_CONFIG,t.data.data),u.Z.push("/admin/application")):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t)))},[d.SY.ACTIONS.UPDATE_APPLICATION_LANGUAGE](e,t){document.querySelector("html")?.setAttribute("lang",t),e.commit(d.SY.MUTATIONS.UPDATE_LANG,t),v.value=t}},D={[d.SY.GETTERS.APP_CONFIG]:e=>e.application.config,[d.SY.GETTERS.APP_LOADING]:e=>e.appLoading,[d.SY.GETTERS.APP_STATS]:e=>e.application.statistics,[d.SY.GETTERS.ERROR_MESSAGES]:e=>e.errorMessages,[d.SY.GETTERS.LANGUAGE]:e=>e.language,[d.SY.GETTERS.LOCALE]:e=>e.locale};var k=n(6287);const P={[d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES](e){e.errorMessages=null},[d.SY.MUTATIONS.SET_ERROR_MESSAGES](e,t){e.errorMessages=t},[d.SY.MUTATIONS.UPDATE_APPLICATION_CONFIG](e,t){e.application.config=t},[d.SY.MUTATIONS.UPDATE_APPLICATION_LOADING](e,t){e.appLoading=t},[d.SY.MUTATIONS.UPDATE_APPLICATION_STATS](e,t){e.application.statistics=t},[d.SY.MUTATIONS.UPDATE_LANG](e,t){e.language=t,e.locale=k.v1[t]}};var L=n(5826);const M={root:!0,language:"en",locale:L.Z,errorMessages:null,application:{statistics:{sports:0,uploads_dir_size:0,users:0,workouts:0}},appLoading:!1},b={[d.O8.ACTIONS.GET_SPORTS](e){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z.get("sports").then((t=>{"success"===t.data.status?(e.commit(d.O8.MUTATIONS.SET_SPORTS,t.data.data.sports),e.commit(d.YN.MUTATIONS.UPDATE_USER_LOADING,!1)):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t)))},[d.O8.ACTIONS.UPDATE_SPORTS](e,t){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z.patch(`sports/${t.id}`,{is_active:t.isActive}).then((t=>{"success"===t.data.status?e.dispatch(d.O8.ACTIONS.GET_SPORTS):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t)))}},y={[d.O8.GETTERS.SPORTS]:e=>e.sports},G={[d.O8.MUTATIONS.SET_SPORTS](e,t){e.sports=t}},F={sports:[]},W={state:F,actions:b,getters:y,mutations:G};var K=W;const Y={[d.gu.ACTIONS.GET_USER_STATS](e,t){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z.get(`stats/${t.username}/${t.filterType}`,{params:t.params}).then((t=>{"success"===t.data.status?e.commit(d.gu.MUTATIONS.UPDATE_USER_STATS,t.data.data.statistics):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t)))}},x={[d.gu.GETTERS.USER_STATS]:e=>e.statistics},B={[d.gu.MUTATIONS.UPDATE_USER_STATS](e,t){e.statistics=t},[d.gu.MUTATIONS.EMPTY_USER_STATS](e){e.statistics={}}},$={statistics:{}},Z={state:$,actions:Y,getters:x,mutations:B};var H=Z;const q={[d.RT.GETTERS.USER]:e=>e.user,[d.RT.GETTERS.USERS]:e=>e.users,[d.RT.GETTERS.USERS_IS_SUCCESS]:e=>e.isSuccess,[d.RT.GETTERS.USERS_LOADING]:e=>e.loading,[d.RT.GETTERS.USERS_PAGINATION]:e=>e.pagination},V={[d.RT.MUTATIONS.UPDATE_USER](e,t){e.user=t},[d.RT.MUTATIONS.UPDATE_USER_IN_USERS](e,t){e.users=e.users.map((e=>e.username===t.username?t:e))},[d.RT.MUTATIONS.UPDATE_USERS](e,t){e.users=t},[d.RT.MUTATIONS.UPDATE_USERS_LOADING](e,t){e.loading=t},[d.RT.MUTATIONS.UPDATE_USERS_PAGINATION](e,t){e.pagination=t},[d.RT.MUTATIONS.UPDATE_IS_SUCCESS](e,t){e.isSuccess=t}},j={user:{},users:[],loading:!1,isSuccess:!1,pagination:{}},X={state:j,actions:_,getters:q,mutations:V};var J=X,Q=n(52);const ee=(e,t,n)=>{e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z.get("workouts",{params:t}).then((t=>{"success"===t.data.status?(e.commit(d.aX.MUTATIONS[n],t.data.data.workouts),n===Q.CW.SET_USER_WORKOUTS&&e.commit(d.aX.MUTATIONS.SET_WORKOUTS_PAGINATION,t.data.pagination)):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t)))},te={[d.aX.ACTIONS.GET_CALENDAR_WORKOUTS](e,t){e.commit(d.aX.MUTATIONS.EMPTY_CALENDAR_WORKOUTS),ee(e,t,Q.CW.SET_CALENDAR_WORKOUTS)},[d.aX.ACTIONS.GET_USER_WORKOUTS](e,t){ee(e,t,Q.CW.SET_USER_WORKOUTS)},[d.aX.ACTIONS.GET_TIMELINE_WORKOUTS](e,t){ee(e,t,Q.CW.SET_TIMELINE_WORKOUTS)},[d.aX.ACTIONS.GET_MORE_TIMELINE_WORKOUTS](e,t){ee(e,t,Q.CW.ADD_TIMELINE_WORKOUTS)},[d.aX.ACTIONS.GET_WORKOUT_DATA](e,t){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(d.aX.MUTATIONS.SET_WORKOUT_LOADING,!0);const n=t.segmentId?`/segment/${t.segmentId}`:"";a.Z.get(`workouts/${t.workoutId}`).then((r=>{const o=r.data.data.workouts[0];if("success"===r.data.status){if(t.segmentId&&(0===o.segments.length||!o.segments[+t.segmentId-1]))throw new Error("WORKOUT_NOT_FOUND");e.commit(d.aX.MUTATIONS.SET_WORKOUT,r.data.data.workouts[0]),r.data.data.workouts[0].with_gpx&&(a.Z.get(`workouts/${t.workoutId}/chart_data${n}`).then((t=>{"success"===t.data.status&&e.commit(d.aX.MUTATIONS.SET_WORKOUT_CHART_DATA,t.data.data.chart_data)})),a.Z.get(`workouts/${t.workoutId}/gpx${n}`).then((t=>{"success"===t.data.status&&e.commit(d.aX.MUTATIONS.SET_WORKOUT_GPX,t.data.data.gpx)})))}else e.commit(d.aX.MUTATIONS.EMPTY_WORKOUT),(0,i.S)(e,null)})).catch((t=>{e.commit(d.aX.MUTATIONS.EMPTY_WORKOUT),(0,i.S)(e,t)})).finally((()=>e.commit(d.aX.MUTATIONS.SET_WORKOUT_LOADING,!1)))},[d.aX.ACTIONS.DELETE_WORKOUT](e,t){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(d.aX.MUTATIONS.SET_WORKOUT_LOADING,!0),a.Z["delete"](`workouts/${t.workoutId}`).then((()=>{e.commit(d.aX.MUTATIONS.EMPTY_WORKOUT),e.dispatch(d.YN.ACTIONS.GET_USER_PROFILE),u.Z.push("/")})).catch((t=>{(0,i.S)(e,t)})).finally((()=>e.commit(d.aX.MUTATIONS.SET_WORKOUT_LOADING,!1)))},[d.aX.ACTIONS.EDIT_WORKOUT](e,t){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(d.aX.MUTATIONS.SET_WORKOUT_LOADING,!0),a.Z.patch(`workouts/${t.workoutId}`,t.data).then((()=>{e.dispatch(d.YN.ACTIONS.GET_USER_PROFILE),e.dispatch(d.aX.ACTIONS.GET_WORKOUT_DATA,{workoutId:t.workoutId}).then((()=>{u.Z.push({name:"Workout",params:{workoutId:t.workoutId}})}))})).catch((t=>{(0,i.S)(e,t)})).finally((()=>e.commit(d.aX.MUTATIONS.SET_WORKOUT_LOADING,!1)))},[d.aX.ACTIONS.ADD_WORKOUT](e,t){if(e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(d.aX.MUTATIONS.SET_WORKOUT_LOADING,!0),!t.file)throw new Error("No file part");const n=t.notes.replace(/"/g,'\\"'),r=new FormData;r.append("file",t.file),r.append("data",`{"sport_id": ${t.sport_id}, "notes": "${n}"}`),a.Z.post("workouts",r,{headers:{"content-type":"multipart/form-data"}}).then((t=>{if("created"===t.data.status){e.dispatch(d.YN.ACTIONS.GET_USER_PROFILE);const n=t.data.data.workouts[0];u.Z.push(1===t.data.data.workouts.length?`/workouts/${n.id}`:"/")}})).catch((t=>{(0,i.S)(e,t)})).finally((()=>e.commit(d.aX.MUTATIONS.SET_WORKOUT_LOADING,!1)))},[d.aX.ACTIONS.ADD_WORKOUT_WITHOUT_GPX](e,t){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(d.aX.MUTATIONS.SET_WORKOUT_LOADING,!0),a.Z.post("workouts/no_gpx",t).then((t=>{if("created"===t.data.status){e.dispatch(d.YN.ACTIONS.GET_USER_PROFILE);const n=t.data.data.workouts[0];u.Z.push(`/workouts/${n.id}`)}})).catch((t=>{(0,i.S)(e,t)})).finally((()=>e.commit(d.aX.MUTATIONS.SET_WORKOUT_LOADING,!1)))}},ne={[d.aX.GETTERS.CALENDAR_WORKOUTS]:e=>e.calendar_workouts,[d.aX.GETTERS.TIMELINE_WORKOUTS]:e=>e.timeline_workouts,[d.aX.GETTERS.USER_WORKOUTS]:e=>e.user_workouts,[d.aX.GETTERS.WORKOUT_DATA]:e=>e.workoutData,[d.aX.GETTERS.WORKOUTS_PAGINATION]:e=>e.pagination},re={[d.aX.MUTATIONS.ADD_TIMELINE_WORKOUTS](e,t){e.timeline_workouts=e.timeline_workouts.concat(t)},[d.aX.MUTATIONS.SET_CALENDAR_WORKOUTS](e,t){e.calendar_workouts=t},[d.aX.MUTATIONS.SET_TIMELINE_WORKOUTS](e,t){e.timeline_workouts=t},[d.aX.MUTATIONS.SET_USER_WORKOUTS](e,t){e.user_workouts=t},[d.aX.MUTATIONS.SET_WORKOUTS_PAGINATION](e,t){e.pagination=t},[d.aX.MUTATIONS.SET_WORKOUT](e,t){e.workoutData.workout=t},[d.aX.MUTATIONS.SET_WORKOUT_CHART_DATA](e,t){e.workoutData.chartData=t},[d.aX.MUTATIONS.SET_WORKOUT_GPX](e,t){e.workoutData.gpx=t},[d.aX.MUTATIONS.SET_WORKOUT_LOADING](e,t){e.workoutData.loading=t},[d.aX.MUTATIONS.EMPTY_CALENDAR_WORKOUTS](e){e.calendar_workouts=[]},[d.aX.MUTATIONS.EMPTY_WORKOUTS](e){e.calendar_workouts=[],e.user_workouts=[],e.timeline_workouts=[]},[d.aX.MUTATIONS.EMPTY_WORKOUT](e){e.workoutData={gpx:"",loading:!1,workout:{},chartData:[]}}},ae={calendar_workouts:[],timeline_workouts:[],pagination:{},user_workouts:[],workoutData:{gpx:"",loading:!1,workout:{},chartData:[]}},oe={state:ae,actions:te,getters:ne,mutations:re};var se=oe;const ie={authUserModule:I,oAuthModule:w,sportsModule:K,statsModule:H,usersModule:J,workoutsModule:se},le={state:M,actions:C,getters:D,mutations:P,modules:ie};var ce=le;const ue=(0,r.MT)(ce);var de=ue},52:function(e,t,n){"use strict";var r,a,o;n.d(t,{CW:function(){return o},JP:function(){return a},tW:function(){return r}}),function(e){e["ADD_WORKOUT"]="ADD_WORKOUT",e["ADD_WORKOUT_WITHOUT_GPX"]="ADD_WORKOUT_WITHOUT_GPX",e["DELETE_WORKOUT"]="DELETE_WORKOUT",e["EDIT_WORKOUT"]="EDIT_WORKOUT",e["GET_CALENDAR_WORKOUTS"]="GET_CALENDAR_WORKOUTS",e["GET_USER_WORKOUTS"]="GET_USER_WORKOUTS",e["GET_TIMELINE_WORKOUTS"]="GET_TIMELINE_WORKOUTS",e["GET_MORE_TIMELINE_WORKOUTS"]="GET_MORE_TIMELINE_WORKOUTS",e["GET_WORKOUT_DATA"]="GET_WORKOUT_DATA"}(r||(r={})),function(e){e["CALENDAR_WORKOUTS"]="CALENDAR_WORKOUTS",e["TIMELINE_WORKOUTS"]="TIMELINE_WORKOUTS",e["USER_WORKOUTS"]="USER_WORKOUTS",e["WORKOUT_DATA"]="WORKOUT_DATA",e["WORKOUTS_PAGINATION"]="WORKOUTS_PAGINATION"}(a||(a={})),function(e){e["ADD_TIMELINE_WORKOUTS"]="ADD_TIMELINE_WORKOUTS",e["EMPTY_WORKOUTS"]="EMPTY_WORKOUTS",e["EMPTY_CALENDAR_WORKOUTS"]="EMPTY_CALENDAR_WORKOUTS",e["EMPTY_WORKOUT"]="EMPTY_WORKOUT",e["SET_CALENDAR_WORKOUTS"]="SET_CALENDAR_WORKOUTS",e["SET_TIMELINE_WORKOUTS"]="SET_TIMELINE_WORKOUTS",e["SET_USER_WORKOUTS"]="SET_USER_WORKOUTS",e["SET_WORKOUT"]="SET_WORKOUT",e["SET_WORKOUT_GPX"]="SET_WORKOUT_GPX",e["SET_WORKOUT_CHART_DATA"]="SET_WORKOUT_CHART_DATA",e["SET_WORKOUT_LOADING"]="SET_WORKOUT_LOADING",e["SET_WORKOUTS_PAGINATION"]="SET_WORKOUTS_PAGINATION"}(o||(o={}))},9917:function(e,t,n){"use strict";n.d(t,{o:function(){return a}});var r=n(3907);function a(){return(0,r.oR)()}},2766:function(e,t,n){"use strict";n.d(t,{Hf:function(){return a},Ne:function(){return c},fS:function(){return r},lM:function(){return d},pm:function(){return l},z_:function(){return s}});const r=["asc","desc"],a=1,o=10,s=(e,t)=>e&&"string"===typeof e&&+e>0?+e:t,i=(e,t,n)=>e&&"string"===typeof e&&t.includes(e)?e:n,l=(e,t,n,l)=>{const c=l||{},u=c.defaultSort||"asc",d={};return d.page=s(e.page,a),d.per_page=s(e.per_page,o),d.order=i(e.order,r,u),d.order_by=i(e.order_by,t,n),"string"===typeof e.q?d.q=e.q:delete d.q,d},c=["from","to","ave_speed_from","ave_speed_to","max_speed_from","max_speed_to","distance_from","distance_to","duration_from","duration_to","sport_id"],u=(e,t=1)=>Array.from({length:e-t+1},((e,n)=>t+n)),d=(e,t)=>{if(e<0)return[];if(e<9)return u(e);let n=[1,2];return t<4?n=n.concat([3,4,5]):t<6?n=n.concat(u(t+2,3)):(n=n.concat(["..."]),t=e-2&&n[n.length-1]{switch(e){case"week":return(0,r.Z)(t,{weekStartsOn:n?1:0});case"year":return(0,a.Z)(t);case"month":return(0,o.Z)(t);default:throw new Error(`Invalid duration, expected: "week", "month", "year", got: "${e}"`)}},p=(e,t)=>{switch(e){case"week":return(0,s.Z)(t,7);case"year":return(0,i.Z)(t,1);case"month":return(0,l.Z)(t,1);default:throw new Error(`Invalid duration, expected: "week", "month", "year", got: "${e}"`)}},A=(e,t)=>(0,m.utcToZonedTime)(new Date(e),t),O=(e,t)=>{const n=(0,o.Z)(e),a=(0,c.Z)(e),s=t?1:0;return{start:(0,r.Z)(n,{weekStartsOn:s}),end:(0,u.Z)(a,{weekStartsOn:s})}},I=(e,t=null,n=null)=>(t||(t="yyyy/MM/dd"),t=g(t,S.value),n||(n="HH:mm"),{workout_date:(0,d.Z)(e,t,{locale:E.v1[S.value]}),workout_time:(0,d.Z)(e,n)}),R=["MM/dd/yyyy","dd/MM/yyyy","yyyy-MM-dd","date_string"],U={de:"do MMM yyyy",en:"MMM. do, yyyy",fr:"d MMM yyyy"},g=(e,t)=>"date_string"===e?U[t]:e,N=(e,t,n,r=!0,a=null)=>(a||(a=S.value),(0,d.Z)(A(e,t),`${g(n,a)}${r?" HH:mm":""}`,{locale:E.v1[a]})),h=(e,t,n=null)=>{const r=n||S.value,a=[];return R.map((n=>{const o=g(n,r);a.push({label:`${o} - ${N(e,t,o,!1,r)}`,value:n})})),a}},8966:function(e,t,n){"use strict";n.d(t,{Z:function(){return a},j:function(){return o}});const r=["bytes","KB","MB","GB","TB"],a=(e,t=!0)=>{const n=Math.floor(Math.log(e)/Math.log(1024));if(!e)return t?"0 bytes":{size:"0",suffix:"bytes"};const a=(e/Math.pow(1024,n)).toFixed(1),o=r[n];return t?`${a}${o}`:{size:a,suffix:o}},o=e=>{const t=e/1048576;return+t.toFixed(2)}},2024:function(e,t,n){"use strict";n.d(t,{S:function(){return o},k:function(){return a}});var r=n(5801);const a=()=>"/api/",o=(e,t,n="UNKNOWN")=>{if(t&&"canceled"===t.message)return;const a=t?.response&&t.response.data?t.response.data:null;if(401===t?.response?.status&&"invalid_token"===a?.error)return localStorage.removeItem("authToken"),void e.dispatch(r.YN.ACTIONS.CHECK_AUTH_USER);const o=t?t.response?413===t.response.status?"file size is greater than the allowed size":a?.message?a.message:n:t.message?t.message:n:n;e.commit(r.SY.MUTATIONS.SET_ERROR_MESSAGES,o.includes("\n")?o.split("\n").filter((e=>""!==e)).map((e=>`api.ERROR.${e}`)):`api.ERROR.${o}`)}},6287:function(e,t,n){"use strict";n.d(t,{mT:function(){return u},v1:function(){return i},zK:function(){return l}});var r=n(879),a=n(5826),o=n(5830),s=n(2540);const i={de:r.Z,en:a.Z,fr:o.Z},l={de:"Deutsch",en:"English",fr:"Français"},{availableLocales:c}=s.Z.global,u=c.map((e=>({label:l[e],value:e})))},631:function(e,t,n){"use strict";n.d(t,{CM:function(){return l},PA:function(){return i},Yx:function(){return a},Zo:function(){return r},xH:function(){return s}});const r={"Cycling (Sport)":"#4c9792","Cycling (Transport)":"#88af98","Cycling (Virtual)":"#64a360",Hiking:"#bb757c","Mountain Biking":"#d4b371","Mountain Biking (Electric)":"#fc9d6f",Rowing:"#fcce72",Running:"#835b83","Skiing (Alpine)":"#67a4bd","Skiing (Cross Country)":"#9498d0",Snowshoes:"#5780a8",Trail:"#09a98a",Walking:"#838383"},a=e=>{const t={};return e.map((e=>t[e.id]=e.color?e.color:r[e.label])),t},o=(e,t)=>{const n=e.translatedLabel.toLowerCase(),r=t.translatedLabel.toLowerCase();return n>r?1:ne.filter((e=>"all"===n||(r.includes(e.id)||e[n]))).map((e=>({...e,translatedLabel:t(`sports.${e.label}.LABEL`)}))).sort(o),i=(e,t)=>t.filter((t=>t.id===e.sport_id)).map((e=>e.label))[0],l=(e,t)=>t.filter((t=>t.id===e.sport_id)).map((e=>e.color))[0]},9318:function(e,t,n){"use strict";n.d(t,{FN:function(){return C},aZ:function(){return v},v1:function(){return f}});n(7658);var r=n(4850),a=n(8148),o=n(9319),s=n(584),i=n(4559),l=n(3703),c=n(876),u=n(7090),d=n(4135),m=n(1593),_=n(7982),E=n(3500),S=n(1640),T=n(2540),p=n(6558),A=n(6287),O=n(631),I=n(3649);const{locale:R}=T.Z.global,U={week:{api:"yyyy-MM-dd",chart:"MM/dd/yyyy"},month:{api:"yyyy-MM",chart:"MM/yyyy"},year:{api:"yyyy",chart:"yyyy"}},g=["average_speed","nb_workouts","total_duration","total_distance","total_ascent","total_descent"],N=(e,t)=>{const n=[];for(let r=(0,p.Nh)(e.duration,e.start,t);r<=e.end;r=(0,p.xA)(e.duration,r))n.push(r);return n},h=(e,t,n=!1)=>{const r={label:e,backgroundColor:[t],data:[]};return n&&(r.type="line",r.borderColor=[t],r.spanGaps=!0),r},z=e=>{const t={average_speed:[],nb_workouts:[],total_distance:[],total_duration:[],total_ascent:[],total_descent:[]};return e.map((e=>{const n=e.color?e.color:O.Zo[e.label];t.average_speed.push(h(e.label,n,!0)),t.nb_workouts.push(h(e.label,n)),t.total_distance.push(h(e.label,n)),t.total_duration.push(h(e.label,n)),t.total_ascent.push(h(e.label,n)),t.total_descent.push(h(e.label,n))})),t},w=(e,t,n)=>{switch(e){case"average_speed":case"total_distance":case"total_ascent":case"total_descent":return(0,I.f3)(["average_speed","total_distance"].includes(e)?"km":"m",t,n);default:case"nb_workouts":case"total_duration":return t}},f=(e,t,n,a,o,s,i)=>{const l=N(e,t),c=U[e.duration],u=n.filter((e=>a.includes(e.id))),d=[],m=z(u),_={};return u.map((e=>_[e.label]=e.id)),l.map((t=>{const n=(0,r.Z)(t,c.api),a=(0,r.Z)(t,"week"===e.duration?(0,p.mh)(i,R.value):c.chart,{locale:A.v1[R.value]});d.push(a),g.map((e=>{m[e].map((t=>{t.data.push(n in o&&_[t.label]in o[n]?w(e,o[n][_[t.label]][e],s):"average_speed"===e?null:0)}))}))})),{labels:d,datasets:m}},v=(e,t,n)=>{const r=n?1:0,m="year"===t?(0,a.Z)((0,o.Z)(e,9)):"week"===t?(0,s.Z)((0,i.Z)(e,2),{weekStartsOn:r}):(0,l.Z)((0,i.Z)(e,11)),_="year"===t?(0,c.Z)(e):"week"===t?(0,u.Z)(e,{weekStartsOn:r}):(0,d.Z)(e);return{duration:t,end:_,start:m}},C=(e,t,n)=>{const{duration:r,start:T,end:p}=e,A=n?1:0;return{duration:r,end:"year"===r?(0,c.Z)(t?(0,o.Z)(p,1):(0,m.Z)(p,1)):"week"===r?(0,u.Z)(t?(0,_.Z)(p,1):(0,E.Z)(p,1),{weekStartsOn:A}):(0,d.Z)(t?(0,i.Z)(p,1):(0,S.Z)(p,1)),start:"year"===r?(0,a.Z)(t?(0,o.Z)(T,1):(0,m.Z)(T,1)):"week"===r?(0,s.Z)(t?(0,_.Z)(T,1):(0,E.Z)(T,1),{weekStartsOn:A}):(0,l.Z)(t?(0,i.Z)(T,1):(0,S.Z)(T,1))}}},3649:function(e,t,n){"use strict";n.d(t,{Dl:function(){return r},f3:function(){return s},sC:function(){return o}});const r={ft:{unit:"ft",system:"imperial",multiplier:1,defaultTarget:"m"},mi:{unit:"mi",system:"imperial",multiplier:5280,defaultTarget:"km"},m:{unit:"m",system:"metric",multiplier:1,defaultTarget:"ft"},km:{unit:"m",system:"metric",multiplier:1e3,defaultTarget:"mi"}},a={metric:{imperial:3.280839895,metric:1},imperial:{metric:1/3.280839895,imperial:1}},o=(e,t,n,o=3)=>{const s=r[t],i=r[n],l=e*s.multiplier*a[s.system][i.system]/i.multiplier;return null!==o?parseFloat(l.toFixed(o)):l},s=(e,t,n)=>{const a=n?r[e].defaultTarget:e;return n?o(t,e,a,2):t}},3768:function(e,t,n){"use strict";n.d(t,{BN:function(){return o},EX:function(){return a},eR:function(){return s}});n(7658);var r=n(3649);const a=(e,t,n)=>{const a={speed:{label:t("workouts.SPEED"),backgroundColor:["#FFFFFF"],borderColor:["#8884d8"],borderWidth:2,data:[],yAxisID:"ySpeed"},elevation:{label:t("workouts.ELEVATION"),backgroundColor:["#e5e5e5"],borderColor:["#cccccc"],borderWidth:1,fill:!0,data:[],yAxisID:"yElevation"}},o=[],s=[],i=[];return e.map((e=>{o.push(e.distance),s.push(e.duration),a.speed.data.push((0,r.f3)("km",e.speed,n)),a.elevation.data.push((0,r.f3)("m",e.elevation,n)),i.push({latitude:e.latitude,longitude:e.longitude})})),{distance_labels:o,duration_labels:s,datasets:a,coordinates:i}},o=e=>{const t=e.length;if(0===t)return{};const n={};return e.map((e=>{n[e.sport_id]||(n[e.sport_id]={count:0,percentage:0}),n[e.sport_id].count+=1,n[e.sport_id].percentage=n[e.sport_id].count/t})),n},s={order:"desc",order_by:"workout_date"}},2531:function(e,t,n){"use strict";n.d(t,{Z:function(){return d}});var r=n(6252);const a={class:"card"},o={class:"card-title"},s={class:"card-content"};function i(e,t){return(0,r.wg)(),(0,r.iD)("div",a,[(0,r._)("div",o,[(0,r.WI)(e.$slots,"title")]),(0,r._)("div",s,[(0,r.WI)(e.$slots,"content")])])}var l=n(3744);const c={},u=(0,l.Z)(c,[["render",i]]);var d=u},8626:function(e,t,n){"use strict";n.d(t,{Z:function(){return T}});var r=n(6252),a=n(3577),o=n(2262);const s={class:"table-selects"},i=["value"],l=["value"],c=["value"],u=["value"],d=["value"],m=["value"];var _=(0,r.aZ)({__name:"FilterSelects",props:{order_by:null,query:null,sort:null,message:null},emits:["updateSelect"],setup(e,{emit:t}){const n=e,{order_by:_,query:E,sort:S,message:T}=(0,o.BK)(n),p=[10,25,50,100];function A(e){t("updateSelect",e.target.id,e.target.value)}return(e,t)=>((0,r.wg)(),(0,r.iD)("div",s,[(0,r._)("label",null,[(0,r.Uk)((0,a.zw)(e.$t("common.SELECTS.ORDER_BY.LABEL"))+": ",1),(0,r._)("select",{name:"order_by",id:"order_by",value:(0,o.SU)(E).order_by,onChange:A},[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)((0,o.SU)(_),(t=>((0,r.wg)(),(0,r.iD)("option",{value:t,key:t},(0,a.zw)(e.$t(`${(0,o.SU)(T)}.${t.toUpperCase()}`)),9,l)))),128))],40,i)]),(0,r._)("label",null,[(0,r.Uk)((0,a.zw)(e.$t("common.SELECTS.ORDER.LABEL"))+": ",1),(0,r._)("select",{name:"order",id:"order",value:(0,o.SU)(E).order,onChange:A},[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)((0,o.SU)(S),(t=>((0,r.wg)(),(0,r.iD)("option",{value:t,key:t},(0,a.zw)(e.$t(`common.SELECTS.ORDER.${t.toUpperCase()}`)),9,u)))),128))],40,c)]),(0,r._)("label",null,[(0,r.Uk)((0,a.zw)(e.$t("common.SELECTS.PER_PAGE.LABEL"))+": ",1),(0,r._)("select",{name:"per_page",id:"per_page",value:(0,o.SU)(E).per_page,onChange:A},[((0,r.wg)(),(0,r.iD)(r.HY,null,(0,r.Ko)(p,(e=>(0,r._)("option",{value:e,key:e},(0,a.zw)(e),9,m))),64))],40,d)])]))}}),E=n(3744);const S=(0,E.Z)(_,[["__scopeId","data-v-72463173"]]);var T=S},7167:function(e,t,n){"use strict";n.d(t,{Z:function(){return d}});var r=n(6252);const a={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -51 512 512"},o=(0,r.uE)('',1),s=[o];function i(e,t,n,o,i,l){return(0,r.wg)(),(0,r.iD)("svg",a,s)}var l={name:"ErrorImg"},c=n(3744);const u=(0,c.Z)(l,[["render",i]]);var d=u},8273:function(e,t,n){"use strict";n.d(t,{Z:function(){return E}});var r=n(6252),a=n(2262),o=(n(7658),n(3577));const s={id:"error"},i={class:"error-content"};var l=(0,r.aZ)({__name:"Error",props:{title:null,message:null,buttonText:null,path:{default:"/"}},setup(e){const t=e,{buttonText:n,title:l,message:c,path:u}=(0,a.BK)(t);return(e,t)=>((0,r.wg)(),(0,r.iD)("div",s,[(0,r._)("div",i,[(0,r._)("h1",null,(0,o.zw)((0,a.SU)(l)),1),(0,r._)("p",null,(0,o.zw)((0,a.SU)(c)),1),(0,a.SU)(n)?((0,r.wg)(),(0,r.iD)("button",{key:0,onClick:t[0]||(t[0]=t=>e.$router.push((0,a.SU)(u))),class:"upper"},(0,o.zw)((0,a.SU)(n)),1)):(0,r.kq)("",!0)])]))}}),c=n(3744);const u=(0,c.Z)(l,[["__scopeId","data-v-b60bfa80"]]);var d=u,m=(0,r.aZ)({__name:"NotFound",props:{target:{default:"PAGE"}},setup(e){const t=e,{target:n}=(0,a.BK)(t),o=(0,a.iH)(),s=(0,a.iH)(!1);function i(){o.value=setTimeout((()=>{s.value=!0}),500)}return(0,r.bv)((()=>i())),(0,r.Ah)((()=>{o.value&&clearTimeout(o.value)})),(e,t)=>s.value?((0,r.wg)(),(0,r.j4)(d,{key:0,title:"404",message:e.$t(`error.NOT_FOUND.${(0,a.SU)(n)}`),"button-text":e.$t("common.HOME")},null,8,["message","button-text"])):(0,r.kq)("",!0)}});const _=m;var E=_},5020:function(e,t,n){"use strict";n.d(t,{Z:function(){return T}});var r=n(6252),a=n(3577),o=n(2262),s=n(2766);const i=e=>((0,r.dD)("data-v-3a9a4a65"),e=e(),(0,r.Cn)(),e),l={class:"pagination-center","aria-label":"navigation"},c={class:"pagination"},u=i((()=>(0,r._)("i",{class:"fa fa-chevron-left","aria-hidden":"true"},null,-1))),d={key:0},m=i((()=>(0,r._)("i",{class:"fa fa-chevron-right","aria-hidden":"true"},null,-1)));var _=(0,r.aZ)({__name:"Pagination",props:{pagination:null,path:null,query:null},setup(e){const t=e,{pagination:n,path:i,query:_}=(0,o.BK)(t);function E(e,t){const n=Object.assign({},_.value);return n.page=t?e+t:e,n}return(e,t)=>{const _=(0,r.up)("router-link");return(0,r.wg)(),(0,r.iD)("nav",l,[(0,r._)("ul",c,[(0,r._)("li",{class:(0,a.C_)(["page-prev",{disabled:!(0,o.SU)(n).has_prev}])},[(0,r.Wm)(_,{class:"page-link",to:{path:(0,o.SU)(i),query:E((0,o.SU)(n).page,-1)},disabled:!(0,o.SU)(n).has_prev},{default:(0,r.w5)((({navigate:t})=>[(0,r.WI)(e.$slots,"default",{onClick:e=>(0,o.SU)(n).has_next?t:null},(()=>[(0,r.Uk)((0,a.zw)(e.$t("api.PAGINATION.PREVIOUS"))+" ",1),u]))])),_:3},8,["to","disabled"])],2),((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)((0,o.SU)(s.lM)((0,o.SU)(n).pages,(0,o.SU)(n).page),(e=>((0,r.wg)(),(0,r.iD)("li",{key:e,class:(0,a.C_)(["page",{active:e===(0,o.SU)(n).page}])},["..."===e?((0,r.wg)(),(0,r.iD)("span",d," ... ")):((0,r.wg)(),(0,r.j4)(_,{key:1,class:"page-link",to:{path:(0,o.SU)(i),query:E(+e)}},{default:(0,r.w5)((()=>[(0,r.Uk)((0,a.zw)(e),1)])),_:2},1032,["to"]))],2)))),128)),(0,r._)("li",{class:(0,a.C_)(["page-next",{disabled:!(0,o.SU)(n).has_next}])},[(0,r.Wm)(_,{class:"page-link",to:{path:(0,o.SU)(i),query:E((0,o.SU)(n).page,1)},disabled:!(0,o.SU)(n).has_next},{default:(0,r.w5)((({navigate:t})=>[(0,r.WI)(e.$slots,"default",{onClick:e=>(0,o.SU)(n).has_next?t:null},(()=>[(0,r.Uk)((0,a.zw)(e.$t("api.PAGINATION.NEXT"))+" ",1),m]))])),_:3},8,["to","disabled"])],2)])])}}}),E=n(3744);const S=(0,E.Z)(_,[["__scopeId","data-v-3a9a4a65"]]);var T=S},8403:function(e,t,n){"use strict";n.d(t,{Z:function(){return v}});var r=n(6252),a=n(2262),o=n(9963),s=n(3577),i=n(4366),l=n(5801),c=n(9917);const u=async e=>{const t=await n.e(881).then(n.bind(n,410)),r=await n.e(881).then(n.bind(n,8288)),a=await n.e(881).then(n.bind(n,6947)),o=await n.e(881).then(n.bind(n,8056)),s={de:o,en:r,fr:a,nb:r,nl:r},l=s[e],c={graphs:t.default.adjacencyGraphs,dictionary:{...t.default.dictionary,...l.default.dictionary}};i.Mu.setOptions(c)},d=e=>{switch(e){case 2:return"AVERAGE";case 3:return"GOOD";case 4:return"STRONG";default:return"WEAK"}},m={class:"password-strength"},_=["value"],E={key:0,class:"password-strength-details"},S={class:"password-strength-value"},T={key:0,class:"info-box"},p={class:"password-feedback"};var A=(0,r.aZ)({__name:"PasswordStength",props:{password:null},setup(e){const t=e,{password:n}=(0,a.BK)(t),o=(0,c.o)(),A=(0,r.Fl)((()=>o.getters[l.SY.GETTERS.LANGUAGE])),O=(0,r.Fl)((()=>o.getters[l.YN.GETTERS.IS_SUCCESS])),I=(0,a.iH)(0),R=(0,a.iH)(""),U=(0,a.iH)([]),g=(0,a.iH)("0% 100%");function N(e){const t=(0,i.tu)(e);I.value=t.score,R.value=d(I.value),U.value=t.feedback.suggestions,g.value=100*I.value/4+"% 100%"}return(0,r.wF)((async()=>await u(A.value))),(0,r.YP)((()=>A.value),(async e=>{await u(e)})),(0,r.YP)((()=>n.value),(async e=>{O.value?R.value="":N(e)})),(e,t)=>((0,r.wg)(),(0,r.iD)("div",m,[(0,r._)("input",{class:(0,s.C_)(["password-slider",`strength-${I.value}`]),style:(0,s.j5)({backgroundSize:g.value}),type:"range",value:I.value,min:"0",max:"4",step:"1"},null,14,_),R.value?((0,r.wg)(),(0,r.iD)("div",E,[(0,r._)("span",S,(0,s.zw)(e.$t("user.PASSWORD_STRENGTH.LABEL"))+": "+(0,s.zw)(e.$t(`user.PASSWORD_STRENGTH.${R.value}`)),1),U.value.length>0?((0,r.wg)(),(0,r.iD)("div",T,[(0,r._)("ul",p,[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)(U.value,(t=>((0,r.wg)(),(0,r.iD)("li",{key:t},(0,s.zw)(e.$t(`user.PASSWORD_STRENGTH.SUGGESTIONS.${t}`)),1)))),128))])])):(0,r.kq)("",!0)])):(0,r.kq)("",!0)]))}}),O=n(3744);const I=(0,O.Z)(A,[["__scopeId","data-v-74e71df5"]]);var R=I;const U=e=>((0,r.dD)("data-v-5a126514"),e=e(),(0,r.Cn)(),e),g={class:"password-input"},N=["id","disabled","placeholder","required","type"],h={key:0,class:"form-info"},z=U((()=>(0,r._)("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1)));var w=(0,r.aZ)({__name:"PasswordInput",props:{checkStrength:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},id:{default:"password"},password:{default:""},placeholder:null,required:{type:Boolean,default:!1}},emits:["updatePassword","passwordError"],setup(e,{emit:t}){const n=e,{checkStrength:i,disabled:l,id:c,password:u,placeholder:d,required:m}=(0,a.BK)(n),_=(0,a.iH)(!1),E=(0,a.iH)("");function S(){_.value=!_.value}function T(e){t("updatePassword",e.target.value)}function p(){t("passwordError")}return(0,r.YP)((()=>u.value),(e=>{""===e&&(E.value="")})),(e,t)=>((0,r.wg)(),(0,r.iD)("div",g,[(0,r.wy)((0,r._)("input",{id:(0,a.SU)(c),disabled:(0,a.SU)(l),placeholder:(0,a.SU)(d),required:(0,a.SU)(m),type:_.value?"text":"password","onUpdate:modelValue":t[0]||(t[0]=e=>E.value=e),minlength:"8",onInput:T,onInvalid:p},null,40,N),[[o.YZ,E.value]]),(0,r._)("div",{class:"show-password",onClick:S},[(0,r.Uk)((0,s.zw)(e.$t(`user.${_.value?"HIDE":"SHOW"}_PASSWORD`))+" ",1),(0,r._)("i",{class:(0,s.C_)(["fa","fa-eye"+(_.value?"-slash":"")]),"aria-hidden":"true"},null,2)]),(0,a.SU)(i)?((0,r.wg)(),(0,r.iD)("div",h,[z,(0,r.Uk)(" "+(0,s.zw)(e.$t("user.PASSWORD_INFO")),1)])):(0,r.kq)("",!0),(0,a.SU)(i)?((0,r.wg)(),(0,r.j4)(R,{key:1,password:E.value},null,8,["password"])):(0,r.kq)("",!0)]))}});const f=(0,O.Z)(w,[["__scopeId","data-v-5a126514"]]);var v=f},2056:function(e,t,n){"use strict";n.d(t,{Z:function(){return u}});var r=n(6252),a=n(3577),o=n(2262),s=n(2024);const i=(0,r._)("div",{class:"map-attribution"},[(0,r._)("span",{class:"map-attribution-text"},"©"),(0,r._)("a",{class:"map-attribution-text",href:"https://www.openstreetmap.org/copyright",target:"_blank",rel:"noopener noreferrer"}," OpenStreetMap ")],-1);var l=(0,r.aZ)({__name:"StaticMap",props:{workout:null,displayHover:{type:Boolean,default:!1}},setup(e){const t=e,{displayHover:n}=(0,o.BK)(t),l=`${(0,s.k)()}workouts/map/${t.workout.map}`;return(e,t)=>((0,r.wg)(),(0,r.iD)("div",{class:(0,a.C_)(["static-map",{"display-hover":(0,o.SU)(n)}])},[(0,o.SU)(n)?((0,r.wg)(),(0,r.iD)("img",{key:0,src:l,alt:""})):((0,r.wg)(),(0,r.iD)("div",{key:1,class:"bg-map-image",style:(0,a.j5)({backgroundImage:`url(${l})`})},null,4)),i],2))}});const c=l;var u=c},436:function(e,t,n){"use strict";n.d(t,{Z:function(){return y}});var r=n(6252),a=n(3577);const o={class:"start-chart"},s={key:0},i={key:1},l={class:"chart-radio"},c=["checked"],u=["checked"],d=["checked"],m={key:0},_=["checked"],E={key:1},S=["checked"],T={key:2},p=["checked"];function A(e,t,n,A,O,I){const R=(0,r.up)("Chart");return(0,r.wg)(),(0,r.iD)("div",o,[e.hideChartIfNoData&&e.emptyStats?((0,r.wg)(),(0,r.iD)("div",s,(0,a.zw)(e.$t("workouts.NO_WORKOUTS")),1)):((0,r.wg)(),(0,r.iD)("div",i,[(0,r._)("div",l,[(0,r._)("label",null,[(0,r._)("input",{type:"radio",name:"total_distance",checked:"total_distance"===e.displayedData,onClick:t[0]||(t[0]=(...t)=>e.updateDisplayData&&e.updateDisplayData(...t))},null,8,c),(0,r.Uk)(" "+(0,a.zw)(e.$t("workouts.DISTANCE")),1)]),(0,r._)("label",null,[(0,r._)("input",{type:"radio",name:"total_duration",checked:"total_duration"===e.displayedData,onClick:t[1]||(t[1]=(...t)=>e.updateDisplayData&&e.updateDisplayData(...t))},null,8,u),(0,r.Uk)(" "+(0,a.zw)(e.$t("workouts.DURATION")),1)]),(0,r._)("label",null,[(0,r._)("input",{type:"radio",name:"nb_workouts",checked:"nb_workouts"===e.displayedData,onClick:t[2]||(t[2]=(...t)=>e.updateDisplayData&&e.updateDisplayData(...t))},null,8,d),(0,r.Uk)(" "+(0,a.zw)(e.$t("workouts.WORKOUT",2)),1)]),e.fullStats?((0,r.wg)(),(0,r.iD)("label",m,[(0,r._)("input",{type:"radio",name:"average_speed",checked:"average_speed"===e.displayedData,onClick:t[3]||(t[3]=(...t)=>e.updateDisplayData&&e.updateDisplayData(...t))},null,8,_),(0,r.Uk)(" "+(0,a.zw)(e.$t("workouts.AVERAGE_SPEED")),1)])):(0,r.kq)("",!0),e.fullStats?((0,r.wg)(),(0,r.iD)("label",E,[(0,r._)("input",{type:"radio",name:"total_ascent",checked:"total_ascent"===e.displayedData,onClick:t[4]||(t[4]=(...t)=>e.updateDisplayData&&e.updateDisplayData(...t))},null,8,S),(0,r.Uk)(" "+(0,a.zw)(e.$t("workouts.ASCENT")),1)])):(0,r.kq)("",!0),e.fullStats?((0,r.wg)(),(0,r.iD)("label",T,[(0,r._)("input",{type:"radio",name:"total_descent",checked:"total_descent"===e.displayedData,onClick:t[5]||(t[5]=(...t)=>e.updateDisplayData&&e.updateDisplayData(...t))},null,8,p),(0,r.Uk)(" "+(0,a.zw)(e.$t("workouts.DESCENT")),1)])):(0,r.kq)("",!0)]),e.labels.length>0?((0,r.wg)(),(0,r.j4)(R,{key:0,datasets:e.datasets,labels:e.labels,displayedData:e.displayedData,displayedSportIds:e.displayedSportIds,fullStats:e.fullStats,useImperialUnits:e.user.imperial_units},null,8,["datasets","labels","displayedData","displayedSportIds","fullStats","useImperialUnits"])):(0,r.kq)("",!0)]))])}var O=n(4850),I=n(2262);const R={class:"chart"};function U(e,t,n,a,o,s){const i=(0,r.up)("BarChart");return(0,r.wg)(),(0,r.iD)("div",R,[(0,r.Wm)(i,(0,r.dG)(e.barChartProps,{class:"bar-chart"}),null,16)])}var g=n(6518),N=n(9150);const h=(e,t=!1)=>{let n="0";t&&(n=String(Math.floor(e/86400)),e%=86400);const r=String(Math.floor(e/3600)).padStart(2,"0");e%=3600;const a=String(Math.floor(e/60)).padStart(2,"0"),o=String(e%60).padStart(2,"0");return t?`${"0"===n?"":`${n}d `}${"00"===r?"":`${r}h `}${a}m ${o}s`:`${"00"===r?"":`${r}:`}${a}:${o}`};var z=n(3649);const w=(e,t,n,r=!0,a="km")=>{const o=n?z.Dl[a].defaultTarget:a;switch(e){case"average_speed":return`${t.toFixed(2)} ${o}/h`;case"total_duration":return h(t,r);case"total_distance":case"total_ascent":case"total_descent":return`${t.toFixed(2)} ${o}`;default:return t.toString()}};var f=(0,r.aZ)({name:"Chart",components:{BarChart:g.vz},props:{datasets:{type:Object,required:!0},labels:{type:Object,required:!0},displayedData:{type:String,required:!0},displayedSportIds:{type:Array,required:!0},fullStats:{type:Boolean,required:!0},useImperialUnits:{type:Boolean,required:!0}},setup(e){const{t:t}=(0,N.QT)();function n(e){return isNaN(e)?0:+e}function a(e,t){return n(e)+n(t)}function o(e){return["total_ascent","total_descent"].includes(e)?"m":"km"}const s=(0,r.Fl)((()=>({labels:e.labels,datasets:JSON.parse(JSON.stringify(e.datasets))}))),i=(0,r.Fl)((()=>({responsive:!0,maintainAspectRatio:!0,animation:!1,layout:{padding:{top:e.fullStats?40:22}},scales:{x:{stacked:!0,grid:{drawOnChartArea:!1}},y:{stacked:"average_speed"!==e.displayedData,grid:{drawOnChartArea:!1},ticks:{maxTicksLimit:6,callback:function(t){return w(e.displayedData,+t,e.useImperialUnits,!1,o(e.displayedData))}},afterFit:function(t){t.width=e.fullStats?90:60}}},plugins:{datalabels:{anchor:"end",align:"end",color:function(t){return"average_speed"===e.displayedData&&t.dataset.backgroundColor?t.dataset.backgroundColor[0]:"#666666"},rotation:function(t){return e.fullStats&&t.chart.chartArea.width<580?310:0},display:function(t){return!(e.fullStats&&t.chart.chartArea.width<300)&&("average_speed"!==e.displayedData||1==e.displayedSportIds.length&&"auto")},formatter:function(t,n){if("average_speed"===e.displayedData)return w(e.displayedData,t,e.useImperialUnits,!1);{const t=n.chart.data.datasets.map((e=>e.data[n.dataIndex])).reduce(((e,t)=>a(e,t)),0);return n.datasetIndex===e.displayedSportIds.length-1&&t>0?w(e.displayedData,t,e.useImperialUnits,!1,o(e.displayedData)):null}}},legend:{display:!1},tooltip:{interaction:{intersect:!0,mode:"index",position:"average_speed"===e.displayedData?"nearest":"average"},filter:function(e){return"0"!==e.formattedValue},callbacks:{label:function(n){let r=t(`sports.${n.dataset.label}.LABEL`)||"";return r&&(r+=": "),null!==n.parsed.y&&(r+=w(e.displayedData,n.parsed.y,e.useImperialUnits,!0,o(e.displayedData))),r},footer:function(n){if("average_speed"===e.displayedData)return"";let r=0;return n.map((e=>{r+=e.parsed.y})),`${t("common.TOTAL")}: `+w(e.displayedData,r,e.useImperialUnits,!0,o(e.displayedData))}}}}}))),{barChartProps:l}=(0,g.xZ)({chartData:s,options:i});return{barChartProps:l}}}),v=n(3744);const C=(0,v.Z)(f,[["render",U]]);var D=C,k=n(5801),P=n(9917),L=n(9318),M=(0,r.aZ)({name:"UserMonthStats",components:{Chart:D},props:{sports:{type:Object,required:!0},user:{type:Object,required:!0},chartParams:{type:Object,required:!0},displayedSportIds:{type:Array,default:()=>[]},fullStats:{type:Boolean,default:!1},hideChartIfNoData:{type:Boolean,default:!1}},setup(e){const t=(0,P.o)(),n=(0,I.iH)("total_distance"),a=(0,r.Fl)((()=>t.getters[k.gu.GETTERS.USER_STATS])),o=(0,r.Fl)((()=>(0,L.v1)(e.chartParams,e.user.weekm,e.sports,e.displayedSportIds,a.value,e.user.imperial_units,e.user.date_format)));function s(n){t.dispatch(k.gu.ACTIONS.GET_USER_STATS,{username:e.user.username,filterType:"by_time",params:n})}function i(e){n.value=e.target.name}function l(e,t){return{from:(0,O.Z)(e.start,"yyyy-MM-dd"),to:(0,O.Z)(e.end,"yyyy-MM-dd"),time:"week"===e.duration?"week"+(t.weekm?"m":""):e.duration}}return(0,r.wF)((()=>s(l(e.chartParams,e.user)))),(0,r.YP)((()=>e.chartParams),(async t=>{s(l(t,e.user))})),{datasets:(0,r.Fl)((()=>o.value.datasets[n.value])),labels:(0,r.Fl)((()=>o.value.labels)),emptyStats:(0,r.Fl)((()=>0===Object.keys(a.value).length)),displayedData:n,updateDisplayData:i}}});const b=(0,v.Z)(M,[["render",A],["__scopeId","data-v-d5e9b348"]]);var y=b},2179:function(e,t,n){"use strict";n.d(t,{Z:function(){return N}});var r=n(6252),a=n(2262),o=n(3577),s=n(6595),i=n(5801),l=n(9917);const c={class:"box user-header"},u={class:"user-details"},d={class:"user-name"},m={class:"user-stats"},_={class:"user-stat"},E={class:"stat-number"},S={class:"stat-label"},T={class:"user-stat"},p={class:"stat-label"},A={class:"user-stat hide-small"},O={class:"stat-number"},I={class:"stat-label"};var R=(0,r.aZ)({__name:"UserHeader",props:{user:null},setup(e){const t=e,{user:n}=(0,a.BK)(t),R=(0,l.o)(),U=(0,r.Fl)((()=>R.getters[i.YN.GETTERS.AUTH_USER_PROFILE]));return(e,t)=>{const i=(0,r.up)("Distance");return(0,r.wg)(),(0,r.iD)("div",c,[(0,r.Wm)(s.Z,{user:(0,a.SU)(n)},null,8,["user"]),(0,r._)("div",u,[(0,r._)("div",d,(0,o.zw)((0,a.SU)(n).username),1),(0,r._)("div",m,[(0,r._)("div",_,[(0,r._)("span",E,(0,o.zw)((0,a.SU)(n).nb_workouts),1),(0,r._)("span",S,(0,o.zw)(e.$t("workouts.WORKOUT",(0,a.SU)(n).nb_workouts)),1)]),(0,r._)("div",T,[(0,r.Wm)(i,{distance:(0,a.SU)(n).total_distance,unitFrom:"km",digits:0,displayUnit:!1,useImperialUnits:(0,a.SU)(U).imperial_units},null,8,["distance","useImperialUnits"]),(0,r._)("span",p,(0,o.zw)((0,a.SU)(U).imperial_units?"miles":"km"),1)]),(0,r._)("div",A,[(0,r._)("span",O,(0,o.zw)((0,a.SU)(n).nb_sports),1),(0,r._)("span",I,(0,o.zw)(e.$t("workouts.SPORT",(0,a.SU)(n).nb_sports)),1)])])])])}}}),U=n(3744);const g=(0,U.Z)(R,[["__scopeId","data-v-20291951"]]);var N=g},1585:function(e,t,n){"use strict";n.d(t,{Z:function(){return f}});n(7658);var r=n(6252),a=n(2262),o=n(3577),s=n(9963),i=n(4850),l=n(5801),c=n(9917),u=n(6558),d=n(6287);const m={id:"user-infos",class:"description-list"},_={key:1,class:"info-box success-message"},E={key:4,class:"email-form form-box"},S={class:"form-items",for:"email"},T={class:"form-items",for:"email"},p={class:"form-buttons"},A={class:"confirm",type:"submit"},O=["onClick"],I={key:5},R={class:"user-bio"},U={key:0,class:"profile-buttons"},g=["onClick"],N={key:1,class:"profile-buttons"};var h=(0,r.aZ)({__name:"UserInfos",props:{user:null,fromAdmin:{type:Boolean,default:!1}},setup(e){const t=e,n=(0,c.o)(),{user:h,fromAdmin:z}=(0,a.BK)(t),w=(0,r.Fl)((()=>n.getters[l.SY.GETTERS.LANGUAGE])),f=(0,r.Fl)((()=>n.getters[l.YN.GETTERS.AUTH_USER_PROFILE])),v=(0,r.Fl)((()=>t.user.created_at?(0,u.p6)(t.user.created_at,f.value.timezone,f.value.date_format):"")),C=(0,r.Fl)((()=>t.user.birth_date?(0,i.Z)(new Date(t.user.birth_date),`${(0,u.mh)(f.value.date_format,w.value)}`,{locale:d.v1[w.value]}):"")),D=(0,r.Fl)((()=>n.getters[l.RT.GETTERS.USERS_IS_SUCCESS])),k=(0,r.Fl)((()=>n.getters[l.SY.GETTERS.ERROR_MESSAGES])),P=(0,r.Fl)((()=>n.getters[l.SY.GETTERS.APP_CONFIG])),L=(0,a.iH)(""),M=(0,a.iH)(!1),b=(0,a.iH)(!1),y=(0,a.iH)(""),G=(0,a.iH)("");function F(e){L.value=e,""!==e&&n.commit(l.RT.MUTATIONS.UPDATE_IS_SUCCESS,!1)}function W(e){n.dispatch(l.RT.ACTIONS.DELETE_USER_ACCOUNT,{username:e})}function K(e){G.value="password-reset",n.dispatch(l.RT.ACTIONS.UPDATE_USER,{username:e,resetPassword:!0})}function Y(e){n.dispatch(l.RT.ACTIONS.UPDATE_USER,{username:e,activate:!0})}function x(){Z(),y.value=h.value.email_to_confirm?h.value.email_to_confirm:"",b.value=!0,G.value="email-update"}function B(){y.value="",b.value=!1}function $(e){n.dispatch(l.RT.ACTIONS.UPDATE_USER,{username:e,new_email:y.value})}function Z(){n.commit(l.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),n.commit(l.RT.MUTATIONS.UPDATE_IS_SUCCESS,!1),G.value=""}return(0,r.Ah)((()=>Z())),(0,r.YP)((()=>D.value),(e=>{e&&(F(""),B())})),(e,t)=>{const n=(0,r.up)("Modal"),i=(0,r.up)("AlertMessage"),l=(0,r.up)("ErrorMessage");return(0,r.wg)(),(0,r.iD)("div",m,[L.value?((0,r.wg)(),(0,r.j4)(n,{key:0,title:e.$t("common.CONFIRMATION"),message:"delete"===L.value?"admin.CONFIRM_USER_ACCOUNT_DELETION":"admin.CONFIRM_USER_PASSWORD_RESET",strongMessage:(0,a.SU)(h).username,onConfirmAction:t[0]||(t[0]=e=>"delete"===L.value?W((0,a.SU)(h).username):K((0,a.SU)(h).username)),onCancelAction:t[1]||(t[1]=e=>F(""))},null,8,["title","message","strongMessage"])):(0,r.kq)("",!0),(0,a.SU)(D)?((0,r.wg)(),(0,r.iD)("div",_,(0,o.zw)(e.$t(`admin.${"password-reset"===G.value?"PASSWORD_RESET":"USER_EMAIL_UPDATE"}_SUCCESSFUL`)),1)):(0,r.kq)("",!0),(0,a.SU)(h).is_active?(0,r.kq)("",!0):((0,r.wg)(),(0,r.j4)(i,{key:2,message:"user.THIS_USER_ACCOUNT_IS_INACTIVE"})),(0,a.SU)(k)?((0,r.wg)(),(0,r.j4)(l,{key:3,message:(0,a.SU)(k)},null,8,["message"])):(0,r.kq)("",!0),b.value?((0,r.wg)(),(0,r.iD)("div",E,[(0,r._)("form",{class:(0,o.C_)({errors:M.value}),onSubmit:t[4]||(t[4]=(0,s.iM)((e=>$((0,a.SU)(h).username)),["prevent"]))},[(0,r._)("label",S,[(0,r.Uk)((0,o.zw)(e.$t("admin.CURRENT_EMAIL"))+" ",1),(0,r.wy)((0,r._)("input",{id:"email",type:"email","onUpdate:modelValue":t[2]||(t[2]=e=>(0,a.SU)(h).email=e),disabled:""},null,512),[[s.nr,(0,a.SU)(h).email]])]),(0,r._)("label",T,[(0,r.Uk)((0,o.zw)(e.$t("admin.NEW_EMAIL"))+"* ",1),(0,r.wy)((0,r._)("input",{id:"new-email",type:"email",required:"","onUpdate:modelValue":t[3]||(t[3]=e=>y.value=e)},null,512),[[s.nr,y.value]])]),(0,r._)("div",p,[(0,r._)("button",A,(0,o.zw)(e.$t("buttons.SUBMIT")),1),(0,r._)("button",{class:"cancel",onClick:(0,s.iM)(B,["prevent"])},(0,o.zw)(e.$t("buttons.CANCEL")),9,O)])],34)])):((0,r.wg)(),(0,r.iD)("div",I,[(0,r._)("dl",null,[(0,r._)("dt",null,(0,o.zw)(e.$t("user.PROFILE.REGISTRATION_DATE"))+":",1),(0,r._)("dd",null,(0,o.zw)((0,a.SU)(v)),1),(0,r._)("dt",null,(0,o.zw)(e.$t("user.PROFILE.FIRST_NAME"))+":",1),(0,r._)("dd",null,(0,o.zw)((0,a.SU)(h).first_name),1),(0,r._)("dt",null,(0,o.zw)(e.$t("user.PROFILE.LAST_NAME"))+":",1),(0,r._)("dd",null,(0,o.zw)((0,a.SU)(h).last_name),1),(0,r._)("dt",null,(0,o.zw)(e.$t("user.PROFILE.BIRTH_DATE"))+":",1),(0,r._)("dd",null,(0,o.zw)((0,a.SU)(C)),1),(0,r._)("dt",null,(0,o.zw)(e.$t("user.PROFILE.LOCATION"))+":",1),(0,r._)("dd",null,(0,o.zw)((0,a.SU)(h).location),1),(0,r._)("dt",null,(0,o.zw)(e.$t("user.PROFILE.BIO"))+":",1),(0,r._)("dd",R,(0,o.zw)((0,a.SU)(h).bio),1)]),(0,a.SU)(z)?((0,r.wg)(),(0,r.iD)("div",U,[(0,a.SU)(f).username!==(0,a.SU)(h).username?((0,r.wg)(),(0,r.iD)("button",{key:0,class:"danger",onClick:t[5]||(t[5]=(0,s.iM)((e=>F("delete")),["prevent"]))},(0,o.zw)(e.$t("admin.DELETE_USER")),1)):(0,r.kq)("",!0),(0,a.SU)(h).is_active?(0,r.kq)("",!0):((0,r.wg)(),(0,r.iD)("button",{key:1,onClick:t[6]||(t[6]=(0,s.iM)((e=>Y((0,a.SU)(h).username)),["prevent"]))},(0,o.zw)(e.$t("admin.ACTIVATE_USER_ACCOUNT")),1)),(0,a.SU)(f).username!==(0,a.SU)(h).username?((0,r.wg)(),(0,r.iD)("button",{key:2,onClick:(0,s.iM)(x,["prevent"])},(0,o.zw)(e.$t("admin.UPDATE_USER_EMAIL")),9,g)):(0,r.kq)("",!0),(0,a.SU)(f).username!==(0,a.SU)(h).username&&(0,a.SU)(P).is_email_sending_enabled?((0,r.wg)(),(0,r.iD)("button",{key:3,onClick:t[7]||(t[7]=(0,s.iM)((e=>F("reset")),["prevent"]))},(0,o.zw)(e.$t("admin.RESET_USER_PASSWORD")),1)):(0,r.kq)("",!0),(0,r._)("button",{onClick:t[8]||(t[8]=t=>e.$router.go(-1))},(0,o.zw)(e.$t("buttons.BACK")),1)])):((0,r.wg)(),(0,r.iD)("div",N,[(0,r._)("button",{onClick:t[9]||(t[9]=t=>e.$router.push("/profile/edit"))},(0,o.zw)(e.$t("user.PROFILE.EDIT")),1),(0,r._)("button",{onClick:t[10]||(t[10]=t=>e.$router.push("/"))},(0,o.zw)(e.$t("common.HOME")),1)]))]))])}}}),z=n(3744);const w=(0,z.Z)(h,[["__scopeId","data-v-217519af"]]);var f=w},2411:function(e,t,n){"use strict";n.d(t,{Z:function(){return C}});var r=n(6252),a=n(3577),o=n(2262),s=n(9963),i=n(2201),l=n(8403),c=n(5801),u=n(9917);const d=e=>((0,r.dD)("data-v-b3c885de"),e=e(),(0,r.Cn)(),e),m={id:"user-form"},_={key:2,class:"info-box success-message"},E={class:"form-items"},S=["disabled","placeholder"],T={key:1,class:"form-info"},p=d((()=>(0,r._)("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1))),A=["disabled","placeholder"],O={key:3,class:"form-info"},I=d((()=>(0,r._)("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1))),R=["disabled"],U={key:3},g={key:0},N={key:4},h={class:"account"},z={key:5};var w=(0,r.aZ)({__name:"UserAuthForm",props:{action:null,token:{default:""}},setup(e){const t=e,n=(0,i.yj)(),d=(0,u.o)(),{action:w}=(0,o.BK)(t),f=(0,o.qj)({username:"",email:"",password:""}),v=(0,r.Fl)((()=>G(t.action))),C=(0,r.Fl)((()=>d.getters[c.SY.GETTERS.ERROR_MESSAGES])),D=(0,r.Fl)((()=>d.getters[c.YN.GETTERS.IS_REGISTRATION_SUCCESS])),k=(0,r.Fl)((()=>d.getters[c.YN.GETTERS.IS_SUCCESS])),P=(0,r.Fl)((()=>d.getters[c.SY.GETTERS.APP_CONFIG])),L=(0,r.Fl)((()=>d.getters[c.SY.GETTERS.LANGUAGE])),M=(0,r.Fl)((()=>"register"===t.action&&!P.value.is_registration_enabled)),b=(0,r.Fl)((()=>["reset-request","account-confirmation-resend"].includes(t.action)&&!P.value.is_email_sending_enabled)),y=(0,o.iH)(!1);function G(e){switch(e){case"reset-request":case"reset":return"buttons.SUBMIT";default:return`buttons.${t.action.toUpperCase()}`}}function F(){y.value=!0}function W(e){f.password=e}function K(e){switch(e){case"reset":return t.token?d.dispatch(c.YN.ACTIONS.RESET_USER_PASSWORD,{password:f.password,token:t.token}):d.commit(c.SY.MUTATIONS.SET_ERROR_MESSAGES,"user.INVALID_TOKEN");case"reset-request":return d.dispatch(c.YN.ACTIONS.SEND_PASSWORD_RESET_REQUEST,{email:f.email});case"account-confirmation-resend":return d.dispatch(c.YN.ACTIONS.RESEND_ACCOUNT_CONFIRMATION_EMAIL,{email:f.email});default:f["language"]=L.value,d.dispatch(c.YN.ACTIONS.LOGIN_OR_REGISTER,{actionType:e,formData:f,redirectUrl:n.query.from})}}function Y(){f.username="",f.email="",f.password=""}return(0,r.Ah)((()=>d.commit(c.SY.MUTATIONS.EMPTY_ERROR_MESSAGES))),(0,r.YP)((()=>n.path),(async()=>{d.commit(c.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),d.commit(c.YN.MUTATIONS.UPDATE_IS_SUCCESS,!1),d.commit(c.YN.MUTATIONS.UPDATE_IS_REGISTRATION_SUCCESS,!1),y.value=!1,Y()})),(e,t)=>{const n=(0,r.up)("AlertMessage"),i=(0,r.up)("router-link"),c=(0,r.up)("ErrorMessage");return(0,r.wg)(),(0,r.iD)("div",{id:"user-auth-form",class:(0,a.C_)(`${["reset","reset-request"].includes((0,o.SU)(w))?(0,o.SU)(w):"user-form"}`)},[(0,r._)("div",m,[(0,r._)("div",{class:(0,a.C_)(["form-box",{disabled:(0,o.SU)(M)}])},[(0,o.SU)(M)?((0,r.wg)(),(0,r.j4)(n,{key:0,message:"user.REGISTER_DISABLED"})):(0,r.kq)("",!0),(0,o.SU)(b)?((0,r.wg)(),(0,r.j4)(n,{key:1,message:"admin.EMAIL_SENDING_DISABLED"})):(0,r.kq)("",!0),(0,o.SU)(k)||(0,o.SU)(D)?((0,r.wg)(),(0,r.iD)("div",_,(0,a.zw)(e.$t("user.PROFILE.SUCCESSFUL_"+((0,o.SU)(D)?"REGISTRATION"+((0,o.SU)(P).is_email_sending_enabled?"_WITH_EMAIL":""):"UPDATE"))),1)):(0,r.kq)("",!0),(0,r._)("form",{class:(0,a.C_)({errors:y.value}),onSubmit:t[2]||(t[2]=(0,s.iM)((e=>K((0,o.SU)(w))),["prevent"]))},[(0,r._)("div",E,["register"===(0,o.SU)(w)?(0,r.wy)(((0,r.wg)(),(0,r.iD)("input",{key:0,id:"username",disabled:(0,o.SU)(M),required:"",pattern:"[a-zA-Z0-9_]+",minlength:"3",maxlength:"30",onInvalid:F,"onUpdate:modelValue":t[0]||(t[0]=e=>f.username=e),placeholder:e.$t("user.USERNAME")},null,40,S)),[[s.nr,f.username]]):(0,r.kq)("",!0),"register"===(0,o.SU)(w)?((0,r.wg)(),(0,r.iD)("div",T,[p,(0,r.Uk)(" "+(0,a.zw)(e.$t("user.USERNAME_INFO")),1)])):(0,r.kq)("",!0),"reset"!==(0,o.SU)(w)?(0,r.wy)(((0,r.wg)(),(0,r.iD)("input",{key:2,id:"email",disabled:(0,o.SU)(M)||(0,o.SU)(b),required:"",onInvalid:F,type:"email","onUpdate:modelValue":t[1]||(t[1]=e=>f.email=e),placeholder:e.$t("user.EMAIL")},null,40,A)),[[s.nr,f.email]]):(0,r.kq)("",!0),["reset-request","register","account-confirmation-resend"].includes((0,o.SU)(w))?((0,r.wg)(),(0,r.iD)("div",O,[I,(0,r.Uk)(" "+(0,a.zw)(e.$t("user.EMAIL_INFO")),1)])):(0,r.kq)("",!0),["account-confirmation-resend","reset-request"].includes((0,o.SU)(w))?(0,r.kq)("",!0):((0,r.wg)(),(0,r.j4)(l.Z,{key:4,disabled:(0,o.SU)(M),required:!0,placeholder:"reset"===(0,o.SU)(w)?e.$t("user.ENTER_PASSWORD"):e.$t("user.PASSWORD"),password:f.password,checkStrength:["reset","register"].includes((0,o.SU)(w)),onUpdatePassword:W,onPasswordError:F},null,8,["disabled","placeholder","password","checkStrength"]))]),(0,r._)("button",{type:"submit",disabled:(0,o.SU)(M)||(0,o.SU)(b)},(0,a.zw)(e.$t((0,o.SU)(v))),9,R)],34),"login"===(0,o.SU)(w)?((0,r.wg)(),(0,r.iD)("div",U,[(0,r.Wm)(i,{class:"links",to:"/register"},{default:(0,r.w5)((()=>[(0,r.Uk)((0,a.zw)(e.$t("user.REGISTER")),1)])),_:1}),(0,o.SU)(P).is_email_sending_enabled?((0,r.wg)(),(0,r.iD)("span",g,"-")):(0,r.kq)("",!0),(0,o.SU)(P).is_email_sending_enabled?((0,r.wg)(),(0,r.j4)(i,{key:1,class:"links",to:"/password-reset/request"},{default:(0,r.w5)((()=>[(0,r.Uk)((0,a.zw)(e.$t("user.PASSWORD_FORGOTTEN")),1)])),_:1})):(0,r.kq)("",!0)])):(0,r.kq)("",!0),"register"===(0,o.SU)(w)?((0,r.wg)(),(0,r.iD)("div",N,[(0,r._)("span",h,(0,a.zw)(e.$t("user.ALREADY_HAVE_ACCOUNT")),1),(0,r.Wm)(i,{class:"links",to:"/login"},{default:(0,r.w5)((()=>[(0,r.Uk)((0,a.zw)(e.$t("user.LOGIN")),1)])),_:1})])):(0,r.kq)("",!0),["login","register"].includes((0,o.SU)(w))&&(0,o.SU)(P).is_email_sending_enabled?((0,r.wg)(),(0,r.iD)("div",z,[(0,r.Wm)(i,{class:"links",to:"/account-confirmation/resend"},{default:(0,r.w5)((()=>[(0,r.Uk)((0,a.zw)(e.$t("user.ACCOUNT_CONFIRMATION_NOT_RECEIVED")),1)])),_:1})])):(0,r.kq)("",!0),(0,o.SU)(C)?((0,r.wg)(),(0,r.j4)(c,{key:6,message:(0,o.SU)(C)},null,8,["message"])):(0,r.kq)("",!0)],2)])],2)}}}),f=n(3744);const v=(0,f.Z)(w,[["__scopeId","data-v-b3c885de"]]);var C=v},6595:function(e,t,n){"use strict";n.d(t,{Z:function(){return _}});var r=n(6252),a=n(2262),o=n(2024);const s={class:"user-picture"},i=["alt","src"],l={key:1,class:"no-picture"},c=(0,r._)("i",{class:"fa fa-user-circle-o","aria-hidden":"true"},null,-1),u=[c];var d=(0,r.aZ)({__name:"UserPicture",props:{user:null},setup(e){const t=e,n=(0,r.Fl)((()=>t.user.picture?`${(0,o.k)()}users/${t.user.username}/picture?${Date.now()}`:""));return(e,t)=>((0,r.wg)(),(0,r.iD)("div",s,[""!==(0,a.SU)(n)?((0,r.wg)(),(0,r.iD)("img",{key:0,class:"profile-user-img",alt:e.$t("user.USER_PICTURE"),src:(0,a.SU)(n)},null,8,i)):((0,r.wg)(),(0,r.iD)("div",l,u))]))}});const m=d;var _=m},5630:function(e,t,n){"use strict";n.d(t,{Z:function(){return u}});var r=n(6252),a=n(3577);const o={class:"no-workouts box"};function s(e,t){const n=(0,r.up)("router-link");return(0,r.wg)(),(0,r.iD)("div",o,[(0,r._)("div",null,[(0,r.Uk)((0,a.zw)(e.$t("workouts.NO_WORKOUTS"))+" ",1),(0,r.Wm)(n,{to:"/workouts/add"},{default:(0,r.w5)((()=>[(0,r.Uk)((0,a.zw)(e.$t("workouts.UPLOAD_FIRST_WORKOUT")),1)])),_:1})])])}var i=n(3744);const l={},c=(0,i.Z)(l,[["render",s],["__scopeId","data-v-4b4d15fb"]]);var u=c},4612:function(e,t,n){var r={"./de/de.ts":9923,"./en/en.ts":8757,"./fr/fr.ts":6625,"./nb/nb.ts":8891,"./nl/nl.ts":701};function a(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=4612}},t={};function n(r){var a=t[r];if(void 0!==a)return a.exports;var o=t[r]={exports:{}};return e[r].call(o.exports,o,o.exports,n),o.exports}n.m=e,function(){var e=[];n.O=function(t,r,a,o){if(!r){var s=1/0;for(u=0;u=o)&&Object.keys(n.O).every((function(e){return n.O[e](r[l])}))?r.splice(l--,1):(i=!1,o0&&e[u-1][2]>o;u--)e[u]=e[u-1];e[u]=[r,a,o]}}(),function(){n.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return n.d(t,{a:t}),t}}(),function(){var e,t=Object.getPrototypeOf?function(e){return Object.getPrototypeOf(e)}:function(e){return e.__proto__};n.t=function(r,a){if(1&a&&(r=this(r)),8&a)return r;if("object"===typeof r&&r){if(4&a&&r.__esModule)return r;if(16&a&&"function"===typeof r.then)return r}var o=Object.create(null);n.r(o);var s={};e=e||[null,t({}),t([]),t(t)];for(var i=2&a&&r;"object"==typeof i&&!~e.indexOf(i);i=t(i))Object.getOwnPropertyNames(i).forEach((function(e){s[e]=function(){return r[e]}}));return s["default"]=function(){return r},n.d(o,s),o}}(),function(){n.d=function(e,t){for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}}(),function(){n.f={},n.e=function(e){return Promise.all(Object.keys(n.f).reduce((function(t,r){return n.f[r](e,t),t}),[]))}}(),function(){n.u=function(e){return"static/js/"+({24:"reset",193:"statistics",328:"admin",401:"workouts",845:"profile",881:"password"}[e]||e)+"."+{24:"eae5999b",93:"611a4415",193:"7cce80c4",243:"d3fff3a7",328:"c4231dfb",401:"bbc7589b",431:"52f71cad",633:"5eb61510",845:"984aa6f4",858:"ec3b00a9",881:"cfeb5ed6"}[e]+".js"}}(),function(){n.miniCssF=function(e){return"static/css/"+{24:"reset",193:"statistics",328:"admin",401:"workouts",845:"profile"}[e]+"."+{24:"e2527ec6",193:"40e24e75",328:"73df498d",401:"9970f29e",845:"9f83730d"}[e]+".css"}}(),function(){n.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"===typeof window)return window}}()}(),function(){n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)}}(),function(){var e={},t="fittrackee_client:";n.l=function(r,a,o,s){if(e[r])e[r].push(a);else{var i,l;if(void 0!==o)for(var c=document.getElementsByTagName("script"),u=0;u {\n const controller = new AbortController()\n config.signal = controller.signal\n const requestKey = removeRequestIfPending(config)\n pendingRequests.set(requestKey, controller)\n\n const authToken = store.getters[AUTH_USER_STORE.GETTERS.AUTH_TOKEN]\n if (authToken) {\n const auth = `Bearer ${authToken}`\n if (config.headers && config.headers.Authorization !== auth) {\n config.headers.Authorization = `Bearer ${authToken}`\n }\n }\n return config\n },\n (error) => Promise.reject(error)\n)\n\nauthApi.interceptors.response.use(\n (response) => {\n removeRequestIfPending(response.config)\n return response\n },\n (error) => {\n if (error.message !== 'canceled') {\n removeRequestIfPending(error.response.config)\n }\n return Promise.reject(error)\n }\n)\n\nexport default authApi\n","import { AxiosRequestConfig } from 'axios'\n\nexport const pendingRequests = new Map()\n\nconst generateRequestKey = (config: AxiosRequestConfig): string => {\n const { method, url, params = {}, data = {} } = config\n return [method, url, JSON.stringify(params), JSON.stringify(data)].join('')\n}\n\nexport const removeRequestIfPending = (config: AxiosRequestConfig): string => {\n const requestKey = generateRequestKey(config)\n if (pendingRequests.has(requestKey)) {\n const controller = pendingRequests.get(requestKey) || {}\n controller?.abort()\n pendingRequests.delete(requestKey)\n }\n return requestKey\n}\n","import { createI18n, LocaleMessages, VueMessageType } from 'vue-i18n'\n\n/**\n * Load locale messages\n *\n * The loaded `JSON` locale messages is pre-compiled by `@intlify/vue-i18n-loader`, which is integrated into `vue-cli-plugin-i18n`.\n * See: https://github.com/intlify/vue-i18n-loader#rocket-i18n-resource-pre-compilation\n */\nconst disabledLanguages = ['nb', 'nl'] // to remove after norwegian translations release\n\nfunction loadLocaleMessages(): Record> {\n const locales = require.context('./locales', true, /[A-Za-z0-9-_,\\s]+\\.ts$/i)\n const messages: Record> = {}\n locales.keys().forEach((key) => {\n const matched = key.match(/([A-Za-z0-9-_]+)\\./i)\n if (\n matched &&\n matched.length > 1 &&\n !disabledLanguages.includes(matched[1])\n ) {\n const locale = matched[1]\n messages[locale] = locales(key).default\n }\n })\n return messages\n}\n\nexport default createI18n({\n legacy: false,\n locale: 'en',\n fallbackLocale: 'en',\n globalInjection: true,\n messages: loadLocaleMessages(),\n})\n","export default {\n \"CONTACT_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kontaktiere den Administrator\"])},\n \"FITTRACKEE_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"FitTrackee ist ein selbst-gehosteter Outdoor-Aktivitäts-Tracker.\"])},\n \"FITTRACKEE_LICENSE\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"unter \", _interpolate(_list(0)), \" Lizenz \"])},\n \"SOURCE_CODE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Quellcode\"])}\n}","export default {\n \"ACTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aktion\"])},\n \"ACTIVATE_USER_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aktiviere Konto\"])},\n \"ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aktiv\"])},\n \"ADMIN_RIGHTS_DELETE_USER_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hinzufügen/Entfernen von Administratorrechten, Lösche Nutzerkonto.\"])},\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Admin\"])},\n \"ADMINISTRATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Administration\"])},\n \"APPLICATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anwendung\"])},\n \"APP_CONFIG\": {\n \"ADMIN_CONTACT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kontakt-E-Mail des Administrators\"])},\n \"MAX_USERS_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. Anzahl aktiver Nutzer\"])},\n \"MAX_USERS_HELP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Wenn 0, gibt es keine Registrierungslimitierung..\"])},\n \"MAX_FILES_IN_ZIP_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. Dateianzahl im zip Archiv\"])},\n \"NO_CONTACT_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"keine Kontakt-E-Mail\"])},\n \"SINGLE_UPLOAD_MAX_SIZE_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. Größe der hochgeladenen Dateien (in Mb)\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anwendungskonfiguration\"])},\n \"ZIP_UPLOAD_MAX_SIZE_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. Größe des zip Archives (in Mb)\"])}\n },\n \"BACK_TO_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Zurück zu Admin\"])},\n \"CONFIRM_USER_ACCOUNT_DELETION\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Möchtest du wirklich das \", _interpolate(_list(0)), \" Konto löschen? Alle Daten werden gelöscht. Dieser Vorgang kann nicht rückgängig gemacht werden.\"])},\n \"CONFIRM_USER_PASSWORD_RESET\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Möchtest du wirklich das \", _interpolate(_list(0)), \" Passwort zurücksetzen?\"])},\n \"CURRENT_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aktuelle E-Mail\"])},\n \"DELETE_USER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Lösche Nutzer\"])},\n \"EMAIL_SENDING_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"E-Mail-Versand ist deaktiviert.\"])},\n \"ENABLE_DISABLE_SPORTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aktivieren/Deaktivieren von Sportarten.\"])},\n \"NEW_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Neue E-Mail\"])},\n \"PASSWORD_RESET_SUCCESSFUL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Das wasswort wurde zurückgesetzt.\"])},\n \"REGISTRATION_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registrierung ist derzeit deaktiviert.\"])},\n \"REGISTRATION_ENABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registrierung ist derzeit aktiviert.\"])},\n \"RESET_USER_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Passwort zurücksetzen\"])},\n \"SPORTS\": {\n \"TABLE\": {\n \"ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aktiv\"])},\n \"HAS_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Trainings existieren\"])},\n \"IMAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bild\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Titel\"])}\n },\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sportarten Administration\"])}\n },\n \"UPDATE_APPLICATION_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aktualisiere Anwemdungskonfiguration (maximale Anzahl an registrierten Nutzern, maximale Dateigröße).\"])},\n \"UPDATE_USER_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aktualisiere E-Mail\"])},\n \"USER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nutzer\"])},\n \"USER_EMAIL_UPDATE_SUCCESSFUL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Die E-Mail Adresse wurde aktualisiert.\"])},\n \"USERS\": {\n \"TABLE\": {\n \"ADD_ADMIN_RIGHTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Administratorrechte hinzufügen\"])},\n \"REMOVE_ADMIN_RIGHTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Administratorrechte entfernen\"])}\n },\n \"SELECTS\": {\n \"ORDER_BY\": {\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Adminstatus\"])},\n \"CREATED_AT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registrierungsdatum\"])},\n \"IS_ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Accountstatus\"])},\n \"USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nutzername\"])},\n \"WORKOUTS_COUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Trainingsanzahl\"])}\n }\n }\n }\n}","export default {\n \"ERROR\": {\n \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fehler. Bitte versuche es erneut oder kontaktiere den Administrator.\"])},\n \"at least one file in zip archive exceeds size limit, please check the archive\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mindestens eine Datei im ZIP-Archiv überschreitet das Größenlimit, bitte überprüfe das Archiv.\"])},\n \"email: valid email must be provided\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"E-Mail: Eine gültige E-Mail muss angegeben werden.\"])},\n \"error during gpx processing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fehler bei der GPX-Verarbeitung.\"])},\n \"error during gpx file parsing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fehler beim Einlesen der GPX-Datei\"])},\n \"error on getting configuration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fehler beim Abrufen der Konfiguration.\"])},\n \"error when updating configuration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fehler beim Aktualisieren der Konfiguration\"])},\n \"error, please try again or contact the administrator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fehler. Bitte versuche es erneut oder kontaktiere den Administrator.\"])},\n \"error, registration is disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fehler. Die Registrierung ist deaktiviert.\"])},\n \"file extension not allowed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dateierweiterung ist nicht erlaubt.\"])},\n \"file size is greater than the allowed size\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Die Datei ist größer als erlaubt.\"])},\n \"invalid credentials\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ungültige Anmeldedaten.\"])},\n \"invalid payload\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Die bereitgestellten Daten sind ungültig.\"])},\n \"invalid token, please log in again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ungültiges Token, bitte erneut anmelden.\"])},\n \"invalid token, please request a new token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ungültiges Token, bitte erneut anmelden.\"])},\n \"Network Error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Netzwerkfehler.\"])},\n \"new email must be different than curent email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Die neue E-Mail muss sich von der aktuellen E-Mail unterscheiden\"])},\n \"no file part\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Keine Datei angegeben.\"])},\n \"no selected file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Keine Datei ausgewählt.\"])},\n \"the number of files in the archive exceeds the limit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Die Anzahl der Dateien im Archiv überschreitet die Begrenzung.\"])},\n \"password: password and password confirmation do not match\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Passwort: Passwort und Passwortbestätigung stimmen nicht überein.\"])},\n \"provide a valid auth token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gebe ein gültiges Authentifizierungstoken an.\"])},\n \"sorry, that username is already taken\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Es tut mir leid, der Benutzername ist schon vergeben.\"])},\n \"sport does not exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sportart existiert nicht.\"])},\n \"signature expired, please log in again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Die Signatur ist abgelaufen. Bitte melde dich erneut an.\"])},\n \"successfully registered\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registrierung erfolgreich.\"])},\n \"user does not exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Der Nutzer existiert nicht.\"])},\n \"valid email must be provided for admin contact\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Um den Administrator zu kontaktieren, muss eine gültige E-Mail-Adresse angegeben werden\"])},\n \"you can not delete your account, no other user has admin rights\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Du kannst Dein Konto nicht löschen, da kein anderer Nutzer hat Administratorrechte besitzt.\"])},\n \"you do not have permissions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Du hast keine Berechtigung.\"])}\n },\n \"PAGINATION\": {\n \"PREVIOUS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vorhergehende\"])},\n \"NEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nächste\"])}\n }\n}","export default {\n \"ACCOUNT-CONFIRMATION-RESEND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bestätigungs-E-Mail erneut senden\"])},\n \"AUTHORIZE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Autorisieren\"])},\n \"BACK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Zurück\"])},\n \"CANCEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Abbrechen\"])},\n \"CLEAR_FILTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filter löschen\"])},\n \"DELETE_MY_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mein Konto löschen\"])},\n \"DISABLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Deaktivieren\"])},\n \"EDIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bearbeiten\"])},\n \"ENABLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aktivieren\"])},\n \"FILTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filter\"])},\n \"LOGIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anmelden\"])},\n \"NO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nein\"])},\n \"REGISTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registrieren\"])},\n \"RESET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Zurücksetzen\"])},\n \"SUBMIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Speichern\"])},\n \"YES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ja\"])}\n}","export default {\n \"ABOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Über\"])},\n \"CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bestätigung\"])},\n \"CONTACT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kontakt\"])},\n \"DAY\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"Tag\"]), _normalize([\"Tage\"])])},\n \"DISPLAYED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Angezeigt\"])},\n \"DOCUMENTATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dokumentation (en)\"])},\n \"HERE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"hier\"])},\n \"HIDDEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Versteckt\"])},\n \"HOME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Startseite\"])},\n \"SELECTS\": {\n \"ORDER_BY\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sortiert nach\"])}\n },\n \"ORDER\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sortieren\"])},\n \"ASC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"aufsteigend\"])},\n \"DESC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"absteigend\"])}\n },\n \"PER_PAGE\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"pro Seite\"])}\n }\n },\n \"TOTAL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Insgesamt\"])}\n}","export default {\n \"DASHBOARD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dashboard\"])},\n \"THIS_MONTH\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dieser Monat\"])}\n}","export default {\n \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fehler. Bitte versuche es erneut oder kontaktiere den Administrator.\"])},\n \"APP_ERROR\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bei der Anwendung scheinen einige Probleme aufgetreten zu sein.
Bitte versuche es später noch einmal oder kontaktiere den Administrator.\"])},\n \"NOT_FOUND\": {\n \"PAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Seite nicht gefunden\"])},\n \"WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Training nicht gefunden\"])}\n },\n \"SOMETHING_WRONG\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Etwas lief schief\"])}\n}","export default {\n \"ADD_A_NEW_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Eine neue OAuth2-Anwendung hinzufügen\"])},\n \"APP\": {\n \"CLIENT_ID\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ID\"])},\n \"CLIENT_SECRET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geheimnis\"])},\n \"DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anwendungsbeschreibung\"])},\n \"ISSUE_AT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erstellt am\"])},\n \"NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anwendungsname\"])},\n \"REDIRECT_URL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Weiterleitungs-URL\"])},\n \"SCOPE\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geltungsbereich\"])},\n \"profile:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"erlaubt Schreibzugriff auf auth-Endpunkte\"])},\n \"profile:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"erlaubt Lesezugriff auf auth-Endpunkte\"])},\n \"users:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"erlaubt Lesezugriff auf users-Endpunkte\"])},\n \"users:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"erlaubt Schreibzugriff auf users-Endpunkte\"])},\n \"workouts:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"erlaubt Lesezugriff auf workouts-Endpunkte\"])},\n \"workouts:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"erlaubt Schreibzugriff auf workouts-Endpunkte\"])},\n \"application:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"erlaubt Schreibzugriff auf die Anwendungskonfiguration\"])}\n },\n \"URL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anwendungs-URL\"])}\n },\n \"APP_CREATED_SUCCESSFULLY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anwendung erfolgreich erstellt. Stelle sicher, dass du das Geheimnis kopierst, du kannst es nicht erneut anzeigen.\"])},\n \"APP_DELETION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bist sicher, dass du diese App löschen willst?\"])},\n \"APP_REQUESTING_ACCESS\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Die Anwendung \", _interpolate(_list(0)), \" fragt an:\"])},\n \"APPS_LIST\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"OAuth2-Anwendungen\"])},\n \"AUTHORIZE_APP\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" den Zugriff auf deinen Account erlauben?\"])},\n \"COPY_TO_CLIPBOARD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"in Zwischenablage kopieren\"])},\n \"DELETE_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anwendung löschen\"])},\n \"NEW_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anwendung hinzufügen\"])},\n \"NO_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anwendung wurde nicht gefunden!\"])},\n \"NO_APPS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"keine Anwendungen\"])},\n \"NO_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"keine Beschreibung\"])},\n \"REVOKE_ALL_TOKENS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Alle Tokens zurückrufen\"])},\n \"TOKENS_REVOCATION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bist du sicher, dass du alle Tokens zurückrufen möchtest?\"])},\n \"TOKENS_REVOKED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Alle vorhandenen und vergebenen Tokens wurde zurückgerufen.\"])}\n}","export default {\n \"Cycling (Sport)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Radfahren (Sport)\"])}\n },\n \"Cycling (Transport)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Radfahren (Pendeln)\"])}\n },\n \"Cycling (Virtual)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Radfahren (Virtuell)\"])}\n },\n \"Hiking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Wandern\"])}\n },\n \"Mountain Biking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mountainbiken\"])}\n },\n \"Mountain Biking (Electric)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mountainbiken (elektrisch)\"])}\n },\n \"Rowing\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Rudern\"])}\n },\n \"Running\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Laufen\"])}\n },\n \"Skiing (Alpine)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Skifahren (Alpin)\"])}\n },\n \"Skiing (Cross Country)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Skifahren (Langlauf)\"])}\n },\n \"Snowshoes\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Schneeschuhe\"])}\n },\n \"Trail\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Trail\"])}\n },\n \"Walking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gehen\"])}\n }\n}","export default {\n \"STATISTICS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Statistik\"])},\n \"TIME_FRAMES\": {\n \"week\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Woche\"])},\n \"month\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Monat\"])},\n \"year\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Jahr\"])}\n }\n}","export default {\n \"ACCOUNT_CONFIRMATION_NOT_RECEIVED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hast du keine Anweisungen erhalten?\"])},\n \"ACCOUNT_CONFIRMATION_SENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Prüfe deine E-Mail. Eine neue Bestätigungs-E-Mail wurde an die angegebene Adresse geschickt.\"])},\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Admin\"])},\n \"ALREADY_HAVE_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hast du bereits ein Konto?\"])},\n \"CONFIRM_ACCOUNT_DELETION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Möchtest du dein Konto wirklich löschen? Alle Daten werden gelöscht. Dieser Vorgang kann nicht rückgängig gemacht werden\"])},\n \"CURRENT_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aktuelles Passwort\"])},\n \"EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"E-Mail\"])},\n \"EMAIL_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gebe eine gültige E-Mail-Adresse an.\"])},\n \"ENTER_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gebe ein Passwort ein\"])},\n \"FILTER_ON_USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nach Benutzernamen filtern\"])},\n \"HIDE_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Passwort verbergen\"])},\n \"INVALID_TOKEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ungültiges Token, bitte fordere ein neues Passworts an.\"])},\n \"LANGUAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sprache\"])},\n \"LOG_IN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anmelden\"])},\n \"LOGIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anmeldung\"])},\n \"LOGOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Abmelden\"])},\n \"NEW_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Neues Passwort\"])},\n \"NO_USERS_FOUND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Keine Nutzer gefunden.\"])},\n \"PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Passwort\"])},\n \"PASSWORD_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mindestens 8 Zeichen sind erforderlich.\"])},\n \"PASSWORD_FORGOTTEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Passwort vergessen?\"])},\n \"PASSWORD_RESET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Passwort zurücksetzen\"])},\n \"PASSWORD_SENT_EMAIL_TEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Prüfe Deine E-Mail. Wenn Deine Adresse in der Datenbank enthalten ist, wirst du eine E-Mail mit einem Link erhalten um Dein Passwort zurückzusetzen.\"])},\n \"PASSWORD_STRENGTH\": {\n \"WEAK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"schwach\"])},\n \"AVERAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"mittel\"])},\n \"GOOD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"gut\"])},\n \"STRONG\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"start\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Passwortstärke\"])},\n \"SUGGESTIONS\": {\n \"l33t\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vermeide vorhersehbare Buchstabenersetzungen wie \", \"@\", \" für a.\"])},\n \"reverseWords\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vermeide umgekehrte Schreibweisen gebräuchlicher Wörter.\"])},\n \"allUppercase\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Schreibe einige, aber nicht alle Buchstaben groß.\"])},\n \"capitalization\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Schreibe mehr als nur den ersten Buchstaben groß.\"])},\n \"dates\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vermeide Daten und Jahreszahlen, die mit Dir in Verbindung gebracht werden.\"])},\n \"recentYears\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vermeide Angabe von letzten Jahreszahlen.\"])},\n \"associatedYears\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vermeide Jahreszahlen, die mit Dir in Verbindung gebracht werden.\"])},\n \"sequences\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vermeide gebräuchliche Zeichenfolgen.\"])},\n \"repeated\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vermeide wiederholungen von Wörtern und Zeichen.\"])},\n \"longerKeyboardPattern\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Verwende längere Tastaturmuster und ändere mehrmals die Schreibrichtung.\"])},\n \"anotherWord\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Füge weitere weniger gebräuchliche Wörter hinzu.\"])},\n \"useWords\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Verwenden Sie mehrere Wörter, aber vermeide gebräuchliche Ausdrücke.\"])},\n \"noNeed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Du kannst sichere Passwörter erstellen, ohne Symbole, Zahlen oder Großbuchstaben zu verwenden.\"])},\n \"pwned\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Wenn Sie dieses Passwort auch anderweitig verwenden, sollten Sie es ändern.\"])}\n }\n },\n \"PASSWORD_UPDATED\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Dein Passwort wurde aktualisiert. Klicke \", _interpolate(_list(0)), \" um dich anzumelden.\"])},\n \"PROFILE\": {\n \"ACCOUNT_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kontoausgabe\"])},\n \"ASCENT_DATA\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anstiegs-bezogene Daten (Aufnahmen, gesamt)\"])},\n \"BACK_TO_PROFILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Zurück zum Profil\"])},\n \"BIO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Biographie\"])},\n \"BIRTH_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geburtsdatum\"])},\n \"DATE_FORMAT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Datumsanzeigeformat\"])},\n \"EDIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Profil bearbeiten\"])},\n \"EDIT_PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Einstellungen ändern\"])},\n \"EDIT_SPORTS_PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Einstellungen für Sportarten ändern\"])},\n \"ERRORED_EMAIL_UPDATE\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Bitte \", _interpolate(_list(0)), \" um Deine E-Mail Adresse nochmals zu ändern oder kontaktiere den Administrator\"])},\n \"FIRST_NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vorname\"])},\n \"FIRST_DAY_OF_WEEK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erster Tag der Woche\"])},\n \"LANGUAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sprache\"])},\n \"LAST_NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nachname\"])},\n \"LOCATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ort\"])},\n \"MONDAY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Montag\"])},\n \"PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bild\"])},\n \"PICTURE_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bildausgabe\"])},\n \"PICTURE_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bild aktualisieren\"])},\n \"PICTURE_REMOVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bild entfernen\"])},\n \"PREFERENCES_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Einstellungsausgabe\"])},\n \"PROFILE_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Profil-Ausgabe\"])},\n \"REGISTRATION_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registrierungsdatum\"])},\n \"SPORTS_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sportarten-Einstellungsausgabe\"])},\n \"SUNDAY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sontag\"])},\n \"TABS\": {\n \"ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Konto\"])},\n \"APPS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anwendungen\"])},\n \"PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bild\"])},\n \"PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Einstellungen\"])},\n \"PROFILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Profil\"])},\n \"SPORTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sportarten\"])}\n },\n \"SPORT\": {\n \"ACTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aktion\"])},\n \"COLOR\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Farbe\"])},\n \"DISABLED_BY_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vom Admin deaktiviert\"])},\n \"IS_ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"aktiv\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Titel\"])},\n \"STOPPED_SPEED_THRESHOLD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geschwindigkeitsschwellenwert für Stopp\"])}\n },\n \"SUCCESSFUL_EMAIL_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dein Konto wurde erfolgreich aktualisiert. Bitte prüfe Deine E-Mail um die neue E-Mail Adresse zu bestätigen.\"])},\n \"SUCCESSFUL_REGISTRATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dein Konto wurde erfolgreich erstellt.\"])},\n \"SUCCESSFUL_REGISTRATION_WITH_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ein Aktivierungslink für Dein Konto wurde an die angegebene E-Mail Adresse geschickt.\"])},\n \"SUCCESSFUL_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dein Konto wurde erfolgreich aktualisiert.\"])},\n \"UNITS\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Einheiten für die Distanz\"])},\n \"IMPERIAL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Imperiales System (ft, mi)\"])},\n \"METRIC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Metrisches System (m, km)\"])}\n },\n \"TIMEZONE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Zeitzone\"])}\n },\n \"REGISTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registrieren\"])},\n \"RESENT_ACCOUNT_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"E-Mail zur Kontobestätigung erneut senden\"])},\n \"REGISTER_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Entschuldigung, die Registrierung ist deaktiviert.\"])},\n \"RESET_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Passwort zurücksetzen\"])},\n \"SHOW_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Passwort anzeigen\"])},\n \"THIS_USER_ACCOUNT_IS_INACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dieser Account ist inaktiv.\"])},\n \"USER_PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Benutzerbild\"])},\n \"USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nutzername\"])},\n \"USERNAME_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"3 bis 30 Zeichen sind erforderlich, nur alphanumerische Zeichen und der Unterstrich _ sind erlaubt.\"])}\n}","export default {\n \"ADD_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Training hinzufügen\"])},\n \"ANALYSIS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Analyse\"])},\n \"ASCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aufstieg\"])},\n \"AVE_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Durchschn. Geschwindigkeit\"])},\n \"AVERAGE_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Durchschnittsgeschwindigkeit\"])},\n \"BACK_TO_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"zurück zum Training\"])},\n \"DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Datum\"])},\n \"DESCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Abstieg\"])},\n \"DISPLAY_FILTERS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"zeige Filter\"])},\n \"DISTANCE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Entfernung\"])},\n \"DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dauer\"])},\n \"EDIT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Training bearbeiten\"])},\n \"ELEVATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Höhe\"])},\n \"END\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ende\"])},\n \"FROM\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Von\"])},\n \"GPX_FILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\".gpx Datei\"])},\n \"HIDE_FILTERS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"verberge Filter\"])},\n \"LATEST_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Letzte Trainings\"])},\n \"LOAD_MORE_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Lade mehr Trainings\"])},\n \"MAX_ALTITUDE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"maximale Höhe\"])},\n \"MAX_FILES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Maximale Dateianzahl\"])},\n \"MAX_SIZE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Maximalgröße\"])},\n \"MAX_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. Geschwindigkeit\"])},\n \"MIN_ALTITUDE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"minimale Höhe\"])},\n \"NEXT_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nächstes Segment\"])},\n \"NEXT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nächstes Training\"])},\n \"NO_DATA_CLEANING\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Daten aus gpx, ohne Bereinigung\"])},\n \"NO_FILE_PROVIDED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Keine Datei angegeben\"])},\n \"NO_FOLDER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"enthält keinen Ordner\"])},\n \"NO_MAP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Keine Karte\"])},\n \"NO_NEXT_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kein nächstes Segment\"])},\n \"NO_NEXT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kein nächstes Training\"])},\n \"NO_NOTES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Keine Anmerkungen\"])},\n \"NO_PREVIOUS_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kein vorheriges Segment\"])},\n \"NO_PREVIOUS_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kein vorheriges Training\"])},\n \"NO_RECORDS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Keine Aufzeichnungen.\"])},\n \"NO_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Keine Trainings.\"])},\n \"NOTES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anmerkungen\"])},\n \"PAUSES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pausen\"])},\n \"PREVIOUS_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vorheriges Segment\"])},\n \"PREVIOUS_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vorheriges Training\"])},\n \"RECORD\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"Aufzeichnung\"]), _normalize([\"Aufzeichnungen\"])])},\n \"RECORD_AS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Durchschn. Geschwindigkeit\"])},\n \"RECORD_FD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Weiteste Entfernung\"])},\n \"RECORD_HA\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Höchster Anstieg\"])},\n \"RECORD_LD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Längste Dauer\"])},\n \"RECORD_MS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. Geschwindigkeit\"])},\n \"REMAINING_CHARS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"verbleibende Zeichen\"])},\n \"SEGMENT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"Segment\"]), _normalize([\"Segmente\"])])},\n \"SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geschwindigkeit\"])},\n \"SPORT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"Sportart\"]), _normalize([\"Sportarten\"])])},\n \"START\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Start\"])},\n \"START_AND_FINISH\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Start und Ziel\"])},\n \"START_ELEVATION_AT_ZERO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Höhenachse bei Null starten\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Titel\"])},\n \"TO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"bis\"])},\n \"TOTAL_DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gesamtdauer\"])},\n \"UPLOAD_FIRST_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Füge erstes Training hinzu!\"])},\n \"WEATHER\": {\n \"HUMIDITY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Luftfeuchtigkeit\"])},\n \"TEMPERATURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Temperatur\"])},\n \"WIND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Wind\"])},\n \"WIND_DIRECTIONS\": {\n \"N\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"N\"])},\n \"NNE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NNO\"])},\n \"NE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NO\"])},\n \"ENE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ONO\"])},\n \"E\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"O\"])},\n \"ESE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"OSO\"])},\n \"SE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SO\"])},\n \"SSE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SSO\"])},\n \"S\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"S\"])},\n \"SSW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SSW\"])},\n \"SW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SW\"])},\n \"WSW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"WSW\"])},\n \"W\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"W\"])},\n \"WNW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"WNW\"])},\n \"NW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NW\"])},\n \"NNW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NNW\"])}\n },\n \"DARK_SKY\": {\n \"clear-day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"klarer Tag\"])},\n \"clear-night\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"klare Nacht\"])},\n \"cloudy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"wolkig\"])},\n \"fog\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nebel\"])},\n \"partly-cloudy-day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"teilweise bewölkter Tag\"])},\n \"partly-cloudy-night\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"teilweise bewölkte Nacht\"])},\n \"rain\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Regen\"])},\n \"sleet\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Schneeregen\"])},\n \"snow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Schnee\"])},\n \"wind\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Wind\"])}\n }\n },\n \"WITH_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"mit .gpx Datei\"])},\n \"WITHOUT_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ohne .gpx Datei\"])},\n \"WORKOUT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"Training\"]), _normalize([\"Trainings\"])])},\n \"WORKOUT_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Trainingsdatum\"])},\n \"WORKOUT_DELETION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bist du sicher, dass du dieses Training löschen möchtest?\"])},\n \"ZIP_ARCHIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\".zip Datei\"])},\n \"ZIP_ARCHIVE_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"oder .zip Datei mit .gpx Dateien\"])}\n}","import AboutTranslations from './about.json'\nimport AdministrationTranslations from './administration.json'\nimport ApiTranslations from './api.json'\nimport ButtonsTranslations from './buttons.json'\nimport CommonTranslations from './common.json'\nimport DashboardTranslations from './dashboard.json'\nimport ErrorTranslations from './error.json'\nimport OAuth2Translations from './oauth2.json'\nimport SportsTranslations from './sports.json'\nimport StatisticsTranslations from './statistics.json'\nimport UserTranslations from './user.json'\nimport WorkoutsTranslations from './workouts.json'\n\nexport default {\n about: AboutTranslations,\n admin: AdministrationTranslations,\n api: ApiTranslations,\n buttons: ButtonsTranslations,\n common: CommonTranslations,\n dashboard: DashboardTranslations,\n error: ErrorTranslations,\n oauth2: OAuth2Translations,\n sports: SportsTranslations,\n statistics: StatisticsTranslations,\n user: UserTranslations,\n workouts: WorkoutsTranslations,\n}\n","export default {\n \"CONTACT_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Contact the administrator\"])},\n \"FITTRACKEE_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"FitTrackee is a self-hosted outdoor activity tracker.\"])},\n \"FITTRACKEE_LICENSE\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"under \", _interpolate(_list(0)), \" license \"])},\n \"SOURCE_CODE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Source code\"])}\n}","export default {\n \"ACTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Action\"])},\n \"ACTIVATE_USER_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Activate account\"])},\n \"ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Active\"])},\n \"ADMIN_RIGHTS_DELETE_USER_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Add/remove admin rights, delete user account.\"])},\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Admin\"])},\n \"ADMINISTRATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Administration\"])},\n \"APPLICATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Application\"])},\n \"APP_CONFIG\": {\n \"ADMIN_CONTACT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Administrator email for contact\"])},\n \"MAX_USERS_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. number of active users\"])},\n \"MAX_USERS_HELP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"If 0, no limitation on registration.\"])},\n \"MAX_FILES_IN_ZIP_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. files of zip archive\"])},\n \"NO_CONTACT_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"no contact email\"])},\n \"SINGLE_UPLOAD_MAX_SIZE_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. size of uploaded files (in Mb)\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Application configuration\"])},\n \"ZIP_UPLOAD_MAX_SIZE_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. size of zip archive (in Mb)\"])}\n },\n \"BACK_TO_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Back to admin\"])},\n \"CONFIRM_USER_ACCOUNT_DELETION\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Are you sure you want to delete \", _interpolate(_list(0)), \" account? All data will be deleted, this cannot be undone.\"])},\n \"CONFIRM_USER_PASSWORD_RESET\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Are you sure you want to reset \", _interpolate(_list(0)), \" password?\"])},\n \"CURRENT_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Current email\"])},\n \"DELETE_USER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Delete user\"])},\n \"EMAIL_SENDING_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email sending is disabled.\"])},\n \"ENABLE_DISABLE_SPORTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enable/disable sports.\"])},\n \"NEW_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"New email\"])},\n \"PASSWORD_RESET_SUCCESSFUL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The password has been reset.\"])},\n \"REGISTRATION_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registration is currently disabled.\"])},\n \"REGISTRATION_ENABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registration is currently enabled.\"])},\n \"RESET_USER_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reset password\"])},\n \"SPORTS\": {\n \"TABLE\": {\n \"ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Active\"])},\n \"HAS_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"workouts exist\"])},\n \"IMAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Image\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Label\"])}\n },\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sports administration\"])}\n },\n \"UPDATE_APPLICATION_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Update application configuration (maximum number of registered users, maximum files size).\"])},\n \"UPDATE_USER_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Update email\"])},\n \"USER\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"user\"]), _normalize([\"users\"])])},\n \"USER_EMAIL_UPDATE_SUCCESSFUL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The email address has been updated.\"])},\n \"USERS\": {\n \"TABLE\": {\n \"ADD_ADMIN_RIGHTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Add admin rights\"])},\n \"REMOVE_ADMIN_RIGHTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Remove admin rights\"])}\n },\n \"SELECTS\": {\n \"ORDER_BY\": {\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"admin status\"])},\n \"CREATED_AT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"registration date\"])},\n \"IS_ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"account status\"])},\n \"USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"username\"])},\n \"WORKOUTS_COUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"workout count\"])}\n }\n }\n }\n}","export default {\n \"ERROR\": {\n \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error. Please try again or contact the administrator.\"])},\n \"at least one file in zip archive exceeds size limit, please check the archive\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"At least one file in zip archive exceeds size limit, please check the archive.\"])},\n \"email: valid email must be provided\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email: valid email must be provided.\"])},\n \"error during gpx processing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error during gpx processing.\"])},\n \"error during gpx file parsing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error during gpx file parsing.\"])},\n \"error on getting configuration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error on getting configuration.\"])},\n \"error when updating configuration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error when updating configuration\"])},\n \"error, please try again or contact the administrator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error, please try again or contact the administrator.\"])},\n \"error, registration is disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error, registration is disabled.\"])},\n \"file extension not allowed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"File extension not allowed.\"])},\n \"file size is greater than the allowed size\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"File size is greater than the allowed size.\"])},\n \"invalid credentials\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Invalid credentials.\"])},\n \"invalid payload\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Provided data are invalid.\"])},\n \"invalid token, please log in again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Invalid token, please log in again.\"])},\n \"invalid token, please request a new token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Invalid token, please log in again.\"])},\n \"Network Error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Network Error.\"])},\n \"new email must be different than curent email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The new email must be different than curent email\"])},\n \"no file part\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No file provided.\"])},\n \"no selected file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No selected file.\"])},\n \"the number of files in the archive exceeds the limit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The number of files in the archive exceeds the limit.\"])},\n \"password: password and password confirmation do not match\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Password: password and password confirmation don't match.\"])},\n \"provide a valid auth token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Provide a valid auth token.\"])},\n \"sorry, that username is already taken\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sorry, that username is already taken.\"])},\n \"sport does not exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sport does not exist.\"])},\n \"signature expired, please log in again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Signature expired. Please log in again.\"])},\n \"successfully registered\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Successfully registered.\"])},\n \"user does not exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"User does not exist.\"])},\n \"valid email must be provided for admin contact\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"A valid email must be provided for administrator contact\"])},\n \"you can not delete your account, no other user has admin rights\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"You can not delete your account, no other user has admin rights.\"])},\n \"you do not have permissions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"You do not have permissions.\"])}\n },\n \"PAGINATION\": {\n \"PREVIOUS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"previous\"])},\n \"NEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"next\"])}\n }\n}","export default {\n \"ACCOUNT-CONFIRMATION-RESEND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Resend confirmation email\"])},\n \"AUTHORIZE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Authorize\"])},\n \"BACK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Back\"])},\n \"CANCEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cancel\"])},\n \"CLEAR_FILTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Clear filters\"])},\n \"DELETE_MY_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Delete my account\"])},\n \"DISABLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Disable\"])},\n \"EDIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit\"])},\n \"ENABLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enable\"])},\n \"FILTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filter\"])},\n \"LOGIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Log in\"])},\n \"NO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No\"])},\n \"REGISTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Register\"])},\n \"RESET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reset\"])},\n \"SUBMIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Submit\"])},\n \"YES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Yes\"])}\n}","export default {\n \"ABOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"about\"])},\n \"CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Confirmation\"])},\n \"CONTACT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"contact\"])},\n \"DAY\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"day\"]), _normalize([\"days\"])])},\n \"DISPLAYED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Displayed\"])},\n \"DOCUMENTATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"documentation\"])},\n \"HERE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"here\"])},\n \"HIDDEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hidden\"])},\n \"HOME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Home\"])},\n \"SELECTS\": {\n \"ORDER_BY\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"order by\"])}\n },\n \"ORDER\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sort\"])},\n \"ASC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ascending\"])},\n \"DESC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"descending\"])}\n },\n \"PER_PAGE\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"par page\"])}\n }\n },\n \"TOTAL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Total\"])}\n}","export default {\n \"DASHBOARD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dashboard\"])},\n \"THIS_MONTH\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This month\"])}\n}","export default {\n \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error. Please try again or contact the administrator.\"])},\n \"APP_ERROR\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The application seems to have encountered some issues.
Please try again later or contact the administrator.\"])},\n \"NOT_FOUND\": {\n \"PAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Page not found\"])},\n \"WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Workout not found\"])}\n },\n \"SOMETHING_WRONG\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Something went wrong\"])}\n}","export default {\n \"ADD_A_NEW_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Add a new OAuth2 application\"])},\n \"APP\": {\n \"CLIENT_ID\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Id\"])},\n \"CLIENT_SECRET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Secret\"])},\n \"DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Application description\"])},\n \"ISSUE_AT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Issue at\"])},\n \"NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Application name\"])},\n \"REDIRECT_URL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Redirect URL\"])},\n \"SCOPE\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Scope\"])},\n \"application:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"grants write access to application configuration.\"])},\n \"profile:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"grants read access to auth endpoints.\"])},\n \"profile:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"grants write access to auth endpoints.\"])},\n \"users:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"grants read access to users endpoints.\"])},\n \"users:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"grants write access to users endpoints.\"])},\n \"workouts:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"grants read access to workouts endpoints.\"])},\n \"workouts:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"grants write access to workouts endpoints.\"])}\n },\n \"URL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Application URL\"])}\n },\n \"APP_CREATED_SUCCESSFULLY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Application created successfully. Make sure to copy the secret now, it won't show up again.\"])},\n \"APP_DELETION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Are you sure you want to delete this app?\"])},\n \"APP_REQUESTING_ACCESS\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"The application \", _interpolate(_list(0)), \" is requesting:\"])},\n \"APPS_LIST\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"OAuth2 applications\"])},\n \"AUTHORIZE_APP\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Authorize \", _interpolate(_list(0)), \" to use your account?\"])},\n \"COPY_TO_CLIPBOARD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"copy to the clipboard\"])},\n \"DELETE_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Delete application\"])},\n \"NEW_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Add an application\"])},\n \"NO_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Application not found!\"])},\n \"NO_APPS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"no applications\"])},\n \"NO_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"no description\"])},\n \"REVOKE_ALL_TOKENS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Revoke all tokens\"])},\n \"TOKENS_REVOCATION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Are you sure you want to revoke all tokens?\"])},\n \"TOKENS_REVOKED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"All existing associated tokens have been revoked.\"])}\n}","export default {\n \"Cycling (Sport)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cycling (Sport)\"])}\n },\n \"Cycling (Transport)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cycling (Transport)\"])}\n },\n \"Cycling (Virtual)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cycling (Virtual)\"])}\n },\n \"Hiking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hiking\"])}\n },\n \"Mountain Biking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mountain Biking\"])}\n },\n \"Mountain Biking (Electric)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mountain Biking (Electric)\"])}\n },\n \"Rowing\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Rowing\"])}\n },\n \"Running\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Running\"])}\n },\n \"Skiing (Alpine)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Skiing (Alpine)\"])}\n },\n \"Skiing (Cross Country)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Skiing (Cross Country)\"])}\n },\n \"Snowshoes\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Snowshoes\"])}\n },\n \"Trail\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Trail\"])}\n },\n \"Walking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Walking\"])}\n }\n}","export default {\n \"STATISTICS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Statistics\"])},\n \"TIME_FRAMES\": {\n \"week\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"week\"])},\n \"month\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"month\"])},\n \"year\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"year\"])}\n }\n}","export default {\n \"ACCOUNT_CONFIRMATION_NOT_RECEIVED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Didn't received instructions?\"])},\n \"ACCOUNT_CONFIRMATION_SENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Check your email. A new confirmation email has been sent to the address provided.\"])},\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Admin\"])},\n \"ALREADY_HAVE_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Already have an account?\"])},\n \"CONFIRM_ACCOUNT_DELETION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Are you sure you want to delete your account? All data will be deleted, this cannot be undone\"])},\n \"CURRENT_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Current password\"])},\n \"EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email\"])},\n \"EMAIL_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enter a valid email address.\"])},\n \"ENTER_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enter a password\"])},\n \"FILTER_ON_USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filter on username\"])},\n \"HIDE_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"hide password\"])},\n \"INVALID_TOKEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Invalid token, please request a new password reset.\"])},\n \"LANGUAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Language\"])},\n \"LOG_IN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"log in\"])},\n \"LOGIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Login\"])},\n \"LOGOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Logout\"])},\n \"NEW_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"New password\"])},\n \"NO_USERS_FOUND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No users found.\"])},\n \"PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Password\"])},\n \"PASSWORD_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"At least 8 characters required.\"])},\n \"PASSWORD_FORGOTTEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Forgot password?\"])},\n \"PASSWORD_RESET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Password reset\"])},\n \"PASSWORD_SENT_EMAIL_TEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Check your email. If your address is in our database, you'll received an email with a link to reset your password.\"])},\n \"PASSWORD_STRENGTH\": {\n \"WEAK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"weak\"])},\n \"AVERAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"average\"])},\n \"GOOD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"good\"])},\n \"STRONG\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"strong\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"password strength\"])},\n \"SUGGESTIONS\": {\n \"l33t\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Avoid predictable letter substitutions like \", \"@\", \" for a.\"])},\n \"reverseWords\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Avoid reversed spellings of common words.\"])},\n \"allUppercase\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Capitalize some, but not all letters.\"])},\n \"capitalization\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Capitalize more than the first letter.\"])},\n \"dates\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Avoid dates and years that are associated with you.\"])},\n \"recentYears\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Avoid recent years.\"])},\n \"associatedYears\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Avoid years that are associated with you.\"])},\n \"sequences\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Avoid common character sequences.\"])},\n \"repeated\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Avoid repeated words and characters.\"])},\n \"longerKeyboardPattern\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Use longer keyboard patterns and change typing direction multiple times.\"])},\n \"anotherWord\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Add more words that are less common.\"])},\n \"useWords\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Use multiple words, but avoid common phrases.\"])},\n \"noNeed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"You can create strong passwords without using symbols, numbers, or uppercase letters.\"])},\n \"pwned\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"If you use this password elsewhere, you should change it.\"])}\n }\n },\n \"PASSWORD_UPDATED\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Your password have been updated. Click \", _interpolate(_list(0)), \" to log in.\"])},\n \"PROFILE\": {\n \"ACCOUNT_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Account edition\"])},\n \"ASCENT_DATA\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ascent-related data (records, total)\"])},\n \"BACK_TO_PROFILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Back to profile\"])},\n \"BIO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bio\"])},\n \"BIRTH_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Birth date\"])},\n \"DATE_FORMAT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Date display format\"])},\n \"EDIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit profile\"])},\n \"EDIT_PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit preferences\"])},\n \"EDIT_SPORTS_PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit sports preferences\"])},\n \"ERRORED_EMAIL_UPDATE\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Please \", _interpolate(_list(0)), \" to change your email address again or contact the administrator\"])},\n \"FIRST_NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"First name\"])},\n \"FIRST_DAY_OF_WEEK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"First day of week\"])},\n \"LANGUAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Language\"])},\n \"LAST_NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Last name\"])},\n \"LOCATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Location\"])},\n \"MONDAY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Monday\"])},\n \"PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Picture\"])},\n \"PICTURE_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Picture edition\"])},\n \"PICTURE_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Update picture\"])},\n \"PICTURE_REMOVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Remove picture\"])},\n \"PREFERENCES_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Preferences edition\"])},\n \"PROFILE_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Profile edition\"])},\n \"REGISTRATION_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registration date\"])},\n \"SPORTS_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sports preferences edition\"])},\n \"SUNDAY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sunday\"])},\n \"TABS\": {\n \"ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"account\"])},\n \"APPS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"apps\"])},\n \"PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"picture\"])},\n \"PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"preferences\"])},\n \"PROFILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"profile\"])},\n \"SPORTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sports\"])}\n },\n \"SPORT\": {\n \"ACTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"action\"])},\n \"COLOR\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"color\"])},\n \"DISABLED_BY_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"disabled by admin\"])},\n \"IS_ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"active\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"label\"])},\n \"STOPPED_SPEED_THRESHOLD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"stopped speed threshold\"])}\n },\n \"SUCCESSFUL_EMAIL_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Your account has been updated successfully. Please check your email to confirm your new email address.\"])},\n \"SUCCESSFUL_REGISTRATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Your account has been created successfully.\"])},\n \"SUCCESSFUL_REGISTRATION_WITH_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"A link to activate your account has been emailed to the address provided.\"])},\n \"SUCCESSFUL_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Your account has been updated successfully.\"])},\n \"UNITS\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Units for distance\"])},\n \"IMPERIAL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Imperial system (ft, mi)\"])},\n \"METRIC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Metric system (m, km)\"])}\n },\n \"TIMEZONE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Timezone\"])}\n },\n \"REGISTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Register\"])},\n \"RESENT_ACCOUNT_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Resend account confirmation email\"])},\n \"REGISTER_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sorry, registration is disabled.\"])},\n \"RESET_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reset your password\"])},\n \"SHOW_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"show password\"])},\n \"THIS_USER_ACCOUNT_IS_INACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This user account is inactive.\"])},\n \"USER_PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"user picture\"])},\n \"USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Username\"])},\n \"USERNAME_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"3 to 30 characters required, only alphanumeric characters and the underscore character \\\"_\\\" allowed.\"])}\n}","export default {\n \"ADD_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Add a workout\"])},\n \"ANALYSIS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"analysis\"])},\n \"ASCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ascent\"])},\n \"AVE_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ave. speed\"])},\n \"AVERAGE_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"average speed\"])},\n \"BACK_TO_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"back to workout\"])},\n \"DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"date\"])},\n \"DESCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"descent\"])},\n \"DISPLAY_FILTERS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"display filters\"])},\n \"DISTANCE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"distance\"])},\n \"DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"duration\"])},\n \"EDIT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit the workout\"])},\n \"ELEVATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"elevation\"])},\n \"END\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"end\"])},\n \"FROM\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"from\"])},\n \"GPX_FILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\".gpx file\"])},\n \"HIDE_FILTERS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"hide filters\"])},\n \"INVALID_DISTANCE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The distance must be greater than 0\"])},\n \"INVALID_DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The duration must be greater than 0 seconds\"])},\n \"LATEST_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Latest workouts\"])},\n \"LOAD_MORE_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Load more workouts\"])},\n \"MAX_ALTITUDE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"max. altitude\"])},\n \"MAX_FILES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"max files\"])},\n \"MAX_SIZE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"max size\"])},\n \"MAX_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"max. speed\"])},\n \"MIN_ALTITUDE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"min. altitude\"])},\n \"NEXT_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No next segment\"])},\n \"NEXT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Next workout\"])},\n \"NO_DATA_CLEANING\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"data from gpx, without any cleaning\"])},\n \"NO_FILE_PROVIDED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No file provided\"])},\n \"NO_FOLDER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"no folder inside\"])},\n \"NO_MAP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No map\"])},\n \"NO_NEXT_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No next segment\"])},\n \"NO_NEXT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No next workout\"])},\n \"NO_NOTES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No notes\"])},\n \"NO_PREVIOUS_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No previous segment\"])},\n \"NO_PREVIOUS_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No previous workout\"])},\n \"NO_RECORDS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No records.\"])},\n \"NO_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No workouts.\"])},\n \"NOTES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"notes\"])},\n \"PAUSES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"pauses\"])},\n \"PREVIOUS_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Previous segment\"])},\n \"PREVIOUS_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Previous workout\"])},\n \"RECORD\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"record\"]), _normalize([\"records\"])])},\n \"RECORD_AS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ave. speed\"])},\n \"RECORD_FD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Farthest distance\"])},\n \"RECORD_HA\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Highest ascent\"])},\n \"RECORD_LD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Longest duration\"])},\n \"RECORD_MS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. speed\"])},\n \"REMAINING_CHARS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"remaining characters\"])},\n \"SEGMENT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"segment\"]), _normalize([\"segments\"])])},\n \"SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"speed\"])},\n \"SPORT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"sport\"]), _normalize([\"sports\"])])},\n \"START\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"start\"])},\n \"START_AND_FINISH\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Start and finish\"])},\n \"START_ELEVATION_AT_ZERO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"start elevation axis at zero\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"title\"])},\n \"TO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"to\"])},\n \"TOTAL_DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"total duration\"])},\n \"UPLOAD_FIRST_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Upload one!\"])},\n \"WEATHER\": {\n \"HUMIDITY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"humidity\"])},\n \"TEMPERATURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"temperature\"])},\n \"WIND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"wind\"])},\n \"WIND_DIRECTIONS\": {\n \"N\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"N\"])},\n \"NNE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NNE\"])},\n \"NE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NE\"])},\n \"ENE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ENE\"])},\n \"E\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"E\"])},\n \"ESE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ESE\"])},\n \"SE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SE\"])},\n \"SSE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SSE\"])},\n \"S\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"S\"])},\n \"SSW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SSW\"])},\n \"SW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SW\"])},\n \"WSW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"WSW\"])},\n \"W\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"W\"])},\n \"WNW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"WNW\"])},\n \"NW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NW\"])},\n \"NNW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NNW\"])}\n },\n \"DARK_SKY\": {\n \"clear-day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"clear day\"])},\n \"clear-night\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"clear night\"])},\n \"cloudy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"cloudy\"])},\n \"fog\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"fog\"])},\n \"partly-cloudy-day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"partly cloudy day\"])},\n \"partly-cloudy-night\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"partly cloudy night\"])},\n \"rain\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"rain\"])},\n \"sleet\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sleet\"])},\n \"snow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"snow\"])},\n \"wind\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"wind\"])}\n }\n },\n \"WITH_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"with .gpx file\"])},\n \"WITHOUT_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"without .gpx file\"])},\n \"WORKOUT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"workout\"]), _normalize([\"workouts\"])])},\n \"WORKOUT_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"workout date\"])},\n \"WORKOUT_DELETION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Are you sure you want to delete this workout?\"])},\n \"ZIP_ARCHIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\".zip file\"])},\n \"ZIP_ARCHIVE_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"or .zip file containing .gpx files\"])}\n}","import AboutTranslations from './about.json'\nimport AdministrationTranslations from './administration.json'\nimport ApiTranslations from './api.json'\nimport ButtonsTranslations from './buttons.json'\nimport CommonTranslations from './common.json'\nimport DashboardTranslations from './dashboard.json'\nimport ErrorTranslations from './error.json'\nimport OAuth2Translations from './oauth2.json'\nimport SportsTranslations from './sports.json'\nimport StatisticsTranslations from './statistics.json'\nimport UserTranslations from './user.json'\nimport WorkoutsTranslations from './workouts.json'\n\nexport default {\n about: AboutTranslations,\n admin: AdministrationTranslations,\n api: ApiTranslations,\n buttons: ButtonsTranslations,\n common: CommonTranslations,\n dashboard: DashboardTranslations,\n error: ErrorTranslations,\n oauth2: OAuth2Translations,\n sports: SportsTranslations,\n statistics: StatisticsTranslations,\n user: UserTranslations,\n workouts: WorkoutsTranslations,\n}\n","export default {\n \"CONTACT_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Contacter l'administrateur\"])},\n \"FITTRACKEE_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"FitTrackee est un tracker d'activités sportives (en extérieur).\"])},\n \"FITTRACKEE_LICENSE\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"sous licence \", _interpolate(_list(0)), \" (en) \"])},\n \"SOURCE_CODE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Code source (en)\"])}\n}","export default {\n \"ACTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Action\"])},\n \"ACTIVATE_USER_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Activer le compte\"])},\n \"ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Actif\"])},\n \"ADMIN_RIGHTS_DELETE_USER_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ajouter/retirer des droits d'administration, supprimer des comptes utilisateurs.\"])},\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Admin\"])},\n \"ADMINISTRATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Administration\"])},\n \"APPLICATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Application\"])},\n \"APP_CONFIG\": {\n \"ADMIN_CONTACT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email de l'administrateur pour contact \"])},\n \"MAX_USERS_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nombre maximum d'utilisateurs actifs \"])},\n \"MAX_USERS_HELP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Si égal à 0, pas limite d'inscription\"])},\n \"MAX_FILES_IN_ZIP_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nombre max. de fichiers dans une archive zip \"])},\n \"NO_CONTACT_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"non renseigné\"])},\n \"SINGLE_UPLOAD_MAX_SIZE_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Taille max. des fichiers (en Mo) \"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Configuration de l'application\"])},\n \"ZIP_UPLOAD_MAX_SIZE_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Taille max. des archives zip (en Mo) \"])}\n },\n \"BACK_TO_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Revenir à l'admin\"])},\n \"CONFIRM_USER_ACCOUNT_DELETION\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Êtes-vous sûr de vouloir supprimer le compte de l'utilisateur \", _interpolate(_list(0)), \" ? Toutes les données seront définitivement.\"])},\n \"CONFIRM_USER_PASSWORD_RESET\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Êtes-vous sûr de vouloir réinitialiser le mot de passe de l'utilisateur \", _interpolate(_list(0)), \" ?\"])},\n \"CURRENT_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Adresse email actuelle\"])},\n \"DELETE_USER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Supprimer l'utilisateur\"])},\n \"EMAIL_SENDING_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"L'envoi d'emails est désactivé.\"])},\n \"ENABLE_DISABLE_SPORTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Activer/désactiver des sports.\"])},\n \"NEW_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nouvelle adresse email\"])},\n \"PASSWORD_RESET_SUCCESSFUL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Le mot de passe a été réinitialisé.\"])},\n \"REGISTRATION_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Les inscriptions sont actuellement désactivées.\"])},\n \"REGISTRATION_ENABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Les inscriptions sont actuellement activées.\"])},\n \"RESET_USER_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Réinit. le mot de passe\"])},\n \"SPORTS\": {\n \"TABLE\": {\n \"ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Actif\"])},\n \"HAS_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"des séances existent\"])},\n \"IMAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Image\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Label\"])}\n },\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Administration - Sports\"])}\n },\n \"UPDATE_APPLICATION_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Configurer l'application (nombre maximum d'utilisateurs inscrits, taille maximale des fichers).\"])},\n \"UPDATE_USER_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Changer l'email\"])},\n \"USER\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"utilisateur\"]), _normalize([\"utilisateurs\"])])},\n \"USER_EMAIL_UPDATE_SUCCESSFUL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"L'adresse email a été mise à jour.\"])},\n \"USERS\": {\n \"TABLE\": {\n \"ADD_ADMIN_RIGHTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ajouter les droits d'admin\"])},\n \"REMOVE_ADMIN_RIGHTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Retirer les droits d'admin\"])}\n },\n \"SELECTS\": {\n \"ORDER_BY\": {\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"status administrateur\"])},\n \"CREATED_AT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"date d'inscription\"])},\n \"IS_ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"statut du compte\"])},\n \"USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nom d'utilisateur\"])},\n \"WORKOUTS_COUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nombre de séances\"])}\n }\n }\n }\n}","export default {\n \"ERROR\": {\n \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur. Veuillez réessayer ou contacter l'administrateur.\"])},\n \"at least one file in zip archive exceeds size limit, please check the archive\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Au moins un fichier de l'archive zip dépasse la taille maximale, veuillez vérifier l'archive.\"])},\n \"email: valid email must be provided\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Courriel : une adresse électronique valide doit être fournie.\"])},\n \"error during gpx processing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur lors du traitement du fichier gpx.\"])},\n \"error during gpx file parsing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur lors de l'analyse du fichier.\"])},\n \"error on getting configuration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur lors de la récupération de la configuration.\"])},\n \"error when updating configuration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur lors de la mise à jour de la configuration\"])},\n \"error, please try again or contact the administrator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur, veuillez réessayer ou contacter l'administrateur.\"])},\n \"error, registration is disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur, les inscriptions sont désactivées.\"])},\n \"file extension not allowed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Extension de fichier non autorisée.\"])},\n \"file size is greater than the allowed size\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"La taille du fichier est supérieure à la limite autorisée.\"])},\n \"invalid credentials\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Identifiants invalides.\"])},\n \"invalid payload\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Données fournies incorrectes.\"])},\n \"invalid token, please log in again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Jeton de connexion invalide, merci de vous reconnecter.\"])},\n \"invalid token, please request a new token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Jeton de connexion, merci de vous reconnecter.\"])},\n \"no file part\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de fichier fourni.\"])},\n \"no selected file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de fichier sélectionné.\"])},\n \"Network Error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur réseau.\"])},\n \"new email must be different than curent email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"La nouvelle addresse électronique doit être differente de l'adresse actuelle\"])},\n \"password: password and password confirmation do not match\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mot de passe : les mots de passe saisis sont différents.\"])},\n \"provide a valid auth token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Merci de fournir un jeton de connexion valide.\"])},\n \"sport does not exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ce sport n'existe pas.\"])},\n \"signature expired, please log in again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Signature expirée. Merci de vous reconnecter.\"])},\n \"sorry, that username is already taken\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Désolé, ce nom d'utilisateur est déjà utilisé.\"])},\n \"successfully registered\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Inscription validée.\"])},\n \"the number of files in the archive exceeds the limit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Le nombre de fichiers de l'archive dépasse la limite.\"])},\n \"user does not exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"L'utilisateur n'existe pas.\"])},\n \"valid email must be provided for admin contact\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Une adresse électronique doit être fournie pour le contact de l'administrateur\"])},\n \"you can not delete your account, no other user has admin rights\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vous ne pouvez pas supprimer votre compte, aucun autre utilisateur n'a des droits d'administration.\"])},\n \"you do not have permissions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vous n'avez pas les permissions nécessaires.\"])}\n },\n \"PAGINATION\": {\n \"PREVIOUS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"précédent\"])},\n \"NEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"suivant\"])}\n }\n}","export default {\n \"ACCOUNT-CONFIRMATION-RESEND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Renvoyer le message de confirmation\"])},\n \"AUTHORIZE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Autoriser\"])},\n \"BACK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Retour\"])},\n \"CANCEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Annuler\"])},\n \"CLEAR_FILTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Réinitialiser\"])},\n \"DELETE_MY_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Supprimer mon compte\"])},\n \"DISABLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Désactiver\"])},\n \"EDIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Modifier\"])},\n \"ENABLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Activer\"])},\n \"FILTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filtrer\"])},\n \"LOGIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Se connecter\"])},\n \"NO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Non\"])},\n \"REGISTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"S'inscrire\"])},\n \"RESET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Réinit.\"])},\n \"SUBMIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Valider\"])},\n \"YES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Oui\"])}\n}","export default {\n \"ABOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"à propos\"])},\n \"CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Confirmation\"])},\n \"CONTACT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"contact\"])},\n \"DAY\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"jour\"]), _normalize([\"jours\"])])},\n \"DISPLAYED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Affiché\"])},\n \"DOCUMENTATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"documentation (en)\"])},\n \"HERE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ici\"])},\n \"HIDDEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Masqué\"])},\n \"HOME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Accueil\"])},\n \"SELECTS\": {\n \"ORDER_BY\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"trier par \"])}\n },\n \"ORDER\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"tri\"])},\n \"ASC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ascendant\"])},\n \"DESC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"descendant\"])}\n },\n \"PER_PAGE\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"par page\"])}\n }\n },\n \"TOTAL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Total\"])}\n}","export default {\n \"DASHBOARD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tableau de bord\"])},\n \"THIS_MONTH\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ce mois-ci\"])}\n}","export default {\n \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur. Veuillez réessayer ou contacter l'administrateur.\"])},\n \"APP_ERROR\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"L'application semble rencontrer quelques problèmes.
Veuillez réessayer plus tard ou contacter l'administrateur.\"])},\n \"NOT_FOUND\": {\n \"PAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Page introuvable\"])},\n \"WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Séance introuvable\"])}\n },\n \"SOMETHING_WRONG\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Une erreur s'est produite\"])}\n}","export default {\n \"ADD_A_NEW_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ajouter une nouvelle application OAuth2\"])},\n \"APP\": {\n \"CLIENT_ID\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Identifiant\"])},\n \"CLIENT_SECRET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Secret\"])},\n \"DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Description de l'application\"])},\n \"ISSUE_AT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Créée le\"])},\n \"NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nom de l'application\"])},\n \"REDIRECT_URL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"URL de redirection\"])},\n \"SCOPE\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Scope\"])},\n \"application:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"donne les droits en écriture à la configuration de l'application.\"])},\n \"profile:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"donne les droits en lecture aux routes auth.\"])},\n \"profile:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"donne les droits en écriture aux routes auth.\"])},\n \"users:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"donne les droits en lecture aux routes users.\"])},\n \"users:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"donne les droits en écriture aux routes users.\"])},\n \"workouts:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"donne les droits en lecture aux routes workouts.\"])},\n \"workouts:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"donne les droits en écriture aux routes workouts.\"])}\n },\n \"URL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"URL de l'application\"])}\n },\n \"APP_CREATED_SUCCESSFULLY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Application créée avec succès. Assurez-vous de copier le secret maintenant, il ne s'affichera plus.\"])},\n \"APP_DELETION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Êtes-vous sûr de vouloir supprimer cette application ?\"])},\n \"APP_REQUESTING_ACCESS\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"L'application \", _interpolate(_list(0)), \" demande les accès suivants :\"])},\n \"APPS_LIST\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Applications OAuth2\"])},\n \"AUTHORIZE_APP\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Autoriser \", _interpolate(_list(0)), \" à utiliser votre compte ?\"])},\n \"COPY_TO_CLIPBOARD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"copier dans le presse papier\"])},\n \"DELETE_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Supprimer l'application\"])},\n \"NEW_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ajouter une application\"])},\n \"NO_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Application introuvable !\"])},\n \"NO_APPS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"pas de applications\"])},\n \"NO_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"pas de description\"])},\n \"REVOKE_ALL_TOKENS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Révoquer tous les jetons\"])},\n \"TOKENS_REVOCATION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Êtes-vous sûr de vouloir révoquer tous les jetons ?\"])},\n \"TOKENS_REVOKED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tous les jetons associés existants ont été révoqués.\"])}\n}","export default {\n \"Cycling (Sport)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vélo (Sport)\"])}\n },\n \"Cycling (Transport)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vélo (Transport)\"])}\n },\n \"Cycling (Virtual)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vélo (Virtuel)\"])}\n },\n \"Hiking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Randonnée\"])}\n },\n \"Mountain Biking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"VTT\"])}\n },\n \"Mountain Biking (Electric)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"VTT (Électrique)\"])}\n },\n \"Rowing\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aviron\"])}\n },\n \"Running\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Course\"])}\n },\n \"Skiing (Alpine)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ski (Alpin)\"])}\n },\n \"Skiing (Cross Country)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ski (Randonnée)\"])}\n },\n \"Snowshoes\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Raquettes\"])}\n },\n \"Trail\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Trail\"])}\n },\n \"Walking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Marche\"])}\n }\n}","export default {\n \"STATISTICS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Statistiques\"])},\n \"TIME_FRAMES\": {\n \"week\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"semaine\"])},\n \"month\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"mois\"])},\n \"year\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"année\"])}\n }\n}","export default {\n \"ACCOUNT_CONFIRMATION_NOT_RECEIVED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vous n'avez pas reçu les instructions ?\"])},\n \"ACCOUNT_CONFIRMATION_SENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vérifiez vos courriels. Un nouveau courriel de confirmation a été envoyé à l'adresse électronique fournie.\"])},\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Admin\"])},\n \"ALREADY_HAVE_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vous avez déjà un compte ?\"])},\n \"CONFIRM_ACCOUNT_DELETION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Êtes-vous sûr·e de vouloir supprimer votre compte ? Toutes les données seront définitivement effacés\"])},\n \"CURRENT_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mot de passe actuel\"])},\n \"EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Courriel\"])},\n \"EMAIL_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Saisissez une adresse électronique valide.\"])},\n \"ENTER_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Saisissez un mot de passe\"])},\n \"FILTER_ON_USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filtrer sur le nom d'utilisateur\"])},\n \"HIDE_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"masquer le mot de passe\"])},\n \"INVALID_TOKEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Jeton invalide, veuillez demander une nouvelle réinitialisation de mot de passe.\"])},\n \"LANGUAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Langue\"])},\n \"LOG_IN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"connecter\"])},\n \"LOGIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Se connecter\"])},\n \"LOGOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Se déconnecter\"])},\n \"NEW_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nouveau mot de passe\"])},\n \"NO_USERS_FOUND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aucun utilisateur trouvé.\"])},\n \"PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mot de passe\"])},\n \"PASSWORD_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"8 caractères minimum.\"])},\n \"PASSWORD_FORGOTTEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mot de passe oublié ?\"])},\n \"PASSWORD_RESET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Réinitialisation du mot de passe\"])},\n \"PASSWORD_SENT_EMAIL_TEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vérifiez vos courriels. Si vote adresse est dans notre base de données, vous recevrez un courriel avec un lien pour réinitialiser votre mot de passe.\"])},\n \"PASSWORD_STRENGTH\": {\n \"WEAK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"faible\"])},\n \"AVERAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"moyenne\"])},\n \"GOOD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"bonne\"])},\n \"STRONG\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"forte\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"robustesse du mot de passe\"])},\n \"SUGGESTIONS\": {\n \"l33t\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Évitez les substitutions de lettres prévisibles comme \", \"@\", \" pour a.\"])},\n \"reverseWords\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Évitez les orthographes inversées des mots courants.\"])},\n \"allUppercase\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mettez quelques lettres en majuscules, mais pas toutes.\"])},\n \"capitalization\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Capitalisez mais pas seulement la première lettre.\"])},\n \"dates\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Évitez les dates et les années qui vous sont associées. (ex : date ou année de naissance).\"])},\n \"recentYears\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Évitez les dernières années.\"])},\n \"associatedYears\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Évitez les années qui vous sont associées. (ex : date de naissance).\"])},\n \"sequences\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Évitez les séquences de caractères courantes.\"])},\n \"repeated\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Évitez les mots et les caractères répétés.\"])},\n \"longerKeyboardPattern\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Utilisez des motifs de clavier plus longs et changez de sens de frappe plusieurs fois.\"])},\n \"anotherWord\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ajoutez des mots moins courants.\"])},\n \"useWords\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Utilisez plusieurs mots, mais évitez les phrases courantes.\"])},\n \"noNeed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vous pouvez créer des mots de passe forts sans utiliser de symboles, de chiffres ou de lettres majuscules.\"])},\n \"pwned\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Si vous utilisez ce mot de passe ailleurs, vous devriez le modifier.\"])}\n }\n },\n \"PASSWORD_UPDATED\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Votre mot de passe a été mis à jour. Cliquez \", _interpolate(_list(0)), \" pour vous connecter.\"])},\n \"PROFILE\": {\n \"ACCOUNT_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mise à jour du compte\"])},\n \"ASCENT_DATA\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Données relatives au dénivelé positif (records, total)\"])},\n \"BACK_TO_PROFILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Revenir au profil\"])},\n \"BIO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bio\"])},\n \"BIRTH_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Date de naissance\"])},\n \"DATE_FORMAT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Format d'affichage de la date\"])},\n \"EDIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Modifier le profil\"])},\n \"EDIT_PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Modifier les préférences\"])},\n \"EDIT_SPORTS_PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Modifier les préférences des sports\"])},\n \"ERRORED_EMAIL_UPDATE\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Veuillez vous \", _interpolate(_list(0)), \" pour changer de nouveau votre adresse électronique ou contacter l'administrateur\"])},\n \"FIRST_DAY_OF_WEEK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Premier jour de la semaine\"])},\n \"FIRST_NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Prénom\"])},\n \"LANGUAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Langue\"])},\n \"LAST_NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nom\"])},\n \"LOCATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Lieu\"])},\n \"MONDAY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Lundi\"])},\n \"PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Image de profil\"])},\n \"PICTURE_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mise à jour de l'image de profil\"])},\n \"PICTURE_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mettre à jour l'image\"])},\n \"PICTURE_REMOVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Supprimer\"])},\n \"PREFERENCES_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mise à jour des préférences\"])},\n \"PROFILE_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mise à jour du profil\"])},\n \"REGISTRATION_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Date d'inscription\"])},\n \"SPORTS_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mise à jour des préférences des sports\"])},\n \"SUNDAY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dimanche\"])},\n \"TABS\": {\n \"ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"compte\"])},\n \"APPS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"apps\"])},\n \"PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"image\"])},\n \"PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"préférences\"])},\n \"PROFILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"profil\"])},\n \"SPORTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sports\"])}\n },\n \"UNITS\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unités pour les distances\"])},\n \"IMPERIAL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Système impérial (ft, mi)\"])},\n \"METRIC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Système métrique (m, km)\"])}\n },\n \"SPORT\": {\n \"ACTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"action\"])},\n \"COLOR\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"couleur\"])},\n \"DISABLED_BY_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"désactivé par l'administrateur\"])},\n \"IS_ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"actif\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"label\"])},\n \"STOPPED_SPEED_THRESHOLD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"seuil de vitesse arrêtée\"])}\n },\n \"SUCCESSFUL_EMAIL_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Votre compte a été modifié avec succès. Veuillez vérifier votre boîte de réception pour valider votre nouvelle adresse électronique.\"])},\n \"SUCCESSFUL_REGISTRATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Votre compte a été créé avec succès.\"])},\n \"SUCCESSFUL_REGISTRATION_WITH_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Un lien pour activer votre compte a été envoyé à l'adresse électronique fournie.\"])},\n \"SUCCESSFUL_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Votre compte a été modifié avec succès.\"])},\n \"TIMEZONE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fuseau horaire\"])}\n },\n \"REGISTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"S'inscrire\"])},\n \"REGISTER_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Désolé, les inscriptions sont désactivées.\"])},\n \"RESENT_ACCOUNT_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Envoyer à nouveau le courriel de confirmation de compte\"])},\n \"RESET_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Réinitialiser votre mot de passe\"])},\n \"SHOW_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"afficher le mot de passe\"])},\n \"THIS_USER_ACCOUNT_IS_INACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Le compte de cet utilisateur est inactif.\"])},\n \"USER_PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"photo de l'utilisateur\"])},\n \"USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nom d'utilisateur\"])},\n \"USERNAME_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"3 à 30 caractères requis, seuls les caractères alphanumériques et le caractère _ sont autorisés.\"])}\n}","export default {\n \"ADD_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ajouter une séance\"])},\n \"ANALYSIS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"analyse\"])},\n \"ASCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"dénivelé positif\"])},\n \"AVERAGE_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vitesse moyenne\"])},\n \"AVE_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vitesse moy.\"])},\n \"BACK_TO_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"revenir à la séance\"])},\n \"DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"date\"])},\n \"DESCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"dénivelé négatif\"])},\n \"DISPLAY_FILTERS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"afficher les filtres\"])},\n \"DISTANCE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"distance\"])},\n \"DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"durée\"])},\n \"EDIT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Modifier la séance\"])},\n \"ELEVATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"altitude\"])},\n \"END\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"fin\"])},\n \"FROM\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"à partir de\"])},\n \"GPX_FILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"fichier .gpx\"])},\n \"HIDE_FILTERS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"masquer les filtres\"])},\n \"INVALID_DISTANCE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"La distance doit être supérieure à 0\"])},\n \"INVALID_DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"La durée doit être supérieure à 0 secondes\"])},\n \"LATEST_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Séances récentes\"])},\n \"LOAD_MORE_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Charger les séances suivantes\"])},\n \"MAX_ALTITUDE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"altitude max\"])},\n \"MAX_FILES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"fichiers max. \"])},\n \"MAX_SIZE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"taille max. \"])},\n \"MAX_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vitesse max\"])},\n \"MIN_ALTITUDE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"altitude min\"])},\n \"NEXT_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Segment suivant\"])},\n \"NEXT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Séance suivante\"])},\n \"NO_DATA_CLEANING\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"données issues du fichier gpx, sans correction\"])},\n \"NO_FILE_PROVIDED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de fichier fourni\"])},\n \"NO_FOLDER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"pas de répertoire\"])},\n \"NO_MAP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de carte\"])},\n \"NO_NEXT_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de segment suivant\"])},\n \"NO_NEXT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de séance suivante\"])},\n \"NO_NOTES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de notes\"])},\n \"NO_PREVIOUS_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de segment précédent\"])},\n \"NO_PREVIOUS_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de séance précédente\"])},\n \"NO_RECORDS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de records.\"])},\n \"NO_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de séances.\"])},\n \"NOTES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"notes\"])},\n \"PAUSES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"pauses\"])},\n \"PREVIOUS_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Segment précédent\"])},\n \"PREVIOUS_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Séance précédente\"])},\n \"RECORD\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"record\"]), _normalize([\"records\"])])},\n \"RECORD_AS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vitesse moy.\"])},\n \"RECORD_FD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Distance la + longue\"])},\n \"RECORD_HA\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dénivelé positif le + élevé\"])},\n \"RECORD_LD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Durée la + longue\"])},\n \"RECORD_MS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vitesse max.\"])},\n \"REMAINING_CHARS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nombre de caractères restants \"])},\n \"SEGMENT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"segment\"]), _normalize([\"segments\"])])},\n \"SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vitesse\"])},\n \"SPORT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"sport\"]), _normalize([\"sports\"])])},\n \"START\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"début\"])},\n \"START_AND_FINISH\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Départ et arrivée\"])},\n \"START_ELEVATION_AT_ZERO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"démarrer l'axe de l'altitude à 0\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"titre\"])},\n \"TO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"jusqu'au\"])},\n \"TOTAL_DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"durée totale\"])},\n \"UPLOAD_FIRST_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ajoutez votre première séance !\"])},\n \"WEATHER\": {\n \"HUMIDITY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"humidité\"])},\n \"TEMPERATURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"température\"])},\n \"WIND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vent\"])},\n \"WIND_DIRECTIONS\": {\n \"N\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"N\"])},\n \"NNE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NNE\"])},\n \"NE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NE\"])},\n \"ENE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ENE\"])},\n \"E\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"E\"])},\n \"ESE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ESE\"])},\n \"SE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SE\"])},\n \"SSE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SSE\"])},\n \"S\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"S\"])},\n \"SSW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SSO\"])},\n \"SW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SO\"])},\n \"WSW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"OSO\"])},\n \"W\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"O\"])},\n \"WNW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ONO\"])},\n \"NW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NO\"])},\n \"NNW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NNO\"])}\n },\n \"DARK_SKY\": {\n \"clear-day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ensoleillé\"])},\n \"clear-night\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nuit claire\"])},\n \"cloudy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nuageux\"])},\n \"fog\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"brouillard\"])},\n \"partly-cloudy-day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"partiellement nuageux\"])},\n \"partly-cloudy-night\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nuit partiellement nuageuse\"])},\n \"rain\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"pluie\"])},\n \"sleet\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"neige fondue\"])},\n \"snow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"neige\"])},\n \"wind\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"venteux\"])}\n }\n },\n \"WITH_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"avec un fichier .gpx\"])},\n \"WITHOUT_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sans fichier .gpx\"])},\n \"WORKOUT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"séance\"]), _normalize([\"séances\"])])},\n \"WORKOUT_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"date de la séance\"])},\n \"WORKOUT_DELETION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Etes-vous sûr de vouloir supprimer cette séance ?\"])},\n \"ZIP_ARCHIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"archive .zip\"])},\n \"ZIP_ARCHIVE_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ou une archive .zip contenant des fichiers .gpx\"])}\n}","import AboutTranslations from './about.json'\nimport AdministrationTranslations from './administration.json'\nimport ApiTranslations from './api.json'\nimport ButtonsTranslations from './buttons.json'\nimport CommonTranslations from './common.json'\nimport DashboardTranslations from './dashboard.json'\nimport ErrorTranslations from './error.json'\nimport OAuth2Translations from './oauth2.json'\nimport SportsTranslations from './sports.json'\nimport StatisticsTranslations from './statistics.json'\nimport UserTranslations from './user.json'\nimport WorkoutsTranslations from './workouts.json'\n\nexport default {\n about: AboutTranslations,\n admin: AdministrationTranslations,\n api: ApiTranslations,\n buttons: ButtonsTranslations,\n common: CommonTranslations,\n dashboard: DashboardTranslations,\n error: ErrorTranslations,\n oauth2: OAuth2Translations,\n sports: SportsTranslations,\n statistics: StatisticsTranslations,\n user: UserTranslations,\n workouts: WorkoutsTranslations,\n}\n","export default {\n \n}","export default {\n \n}","export default {\n \n}","export default {\n \n}","export default {\n \n}","export default {\n \n}","export default {\n \n}","export default {\n \n}","export default {\n \n}","export default {\n \n}","export default {\n \n}","export default {\n \n}","import AboutTranslations from './about.json'\nimport AdministrationTranslations from './administration.json'\nimport ApiTranslations from './api.json'\nimport ButtonsTranslations from './buttons.json'\nimport CommonTranslations from './common.json'\nimport DashboardTranslations from './dashboard.json'\nimport ErrorTranslations from './error.json'\nimport OAuth2Translations from './oauth2.json'\nimport SportsTranslations from './sports.json'\nimport StatisticsTranslations from './statistics.json'\nimport UserTranslations from './user.json'\nimport WorkoutsTranslations from './workouts.json'\n\nexport default {\n about: AboutTranslations,\n admin: AdministrationTranslations,\n api: ApiTranslations,\n buttons: ButtonsTranslations,\n common: CommonTranslations,\n dashboard: DashboardTranslations,\n error: ErrorTranslations,\n oauth2: OAuth2Translations,\n sports: SportsTranslations,\n statistics: StatisticsTranslations,\n user: UserTranslations,\n workouts: WorkoutsTranslations,\n}\n","export default {\n \n}","export default {\n \n}","export default {\n \n}","export default {\n \n}","export default {\n \n}","export default {\n \n}","export default {\n \n}","export default {\n \n}","export default {\n \n}","export default {\n \n}","export default {\n \n}","export default {\n \n}","import AboutTranslations from './about.json'\nimport AdministrationTranslations from './administration.json'\nimport ApiTranslations from './api.json'\nimport ButtonsTranslations from './buttons.json'\nimport CommonTranslations from './common.json'\nimport DashboardTranslations from './dashboard.json'\nimport ErrorTranslations from './error.json'\nimport OAuth2Translations from './oauth2.json'\nimport SportsTranslations from './sports.json'\nimport StatisticsTranslations from './statistics.json'\nimport UserTranslations from './user.json'\nimport WorkoutsTranslations from './workouts.json'\n\nexport default {\n about: AboutTranslations,\n admin: AdministrationTranslations,\n api: ApiTranslations,\n buttons: ButtonsTranslations,\n common: CommonTranslations,\n dashboard: DashboardTranslations,\n error: ErrorTranslations,\n oauth2: OAuth2Translations,\n sports: SportsTranslations,\n statistics: StatisticsTranslations,\n user: UserTranslations,\n workouts: WorkoutsTranslations,\n}\n","/* eslint-disable no-console */\n\nimport { register } from 'register-service-worker'\n\nif (process.env.NODE_ENV === 'production') {\n register(`${process.env.BASE_URL}service-worker.js`, {\n ready() {\n console.log(\n 'App is being served from cache by a service worker.\\n' +\n 'For more details, visit https://goo.gl/AFskqB'\n )\n },\n registered() {\n console.log('Service worker has been registered.')\n },\n cached() {\n console.log('Content has been cached for offline use.')\n },\n updatefound() {\n console.log('New content is downloading.')\n },\n updated() {\n console.log('New content is available; please refresh.')\n },\n offline() {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n )\n },\n error(error) {\n console.error('Error during service worker registration:', error)\n },\n })\n}\n","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, unref as _unref, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-2c73279e\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"footer\" }\nconst _hoisted_2 = { class: \"footer-items\" }\nconst _hoisted_3 = { class: \"footer-item\" }\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"strong\", null, \"FitTrackee\", -1))\nconst _hoisted_5 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"footer-item bullet\" }, \"•\", -1))\nconst _hoisted_6 = { class: \"footer-item\" }\nconst _hoisted_7 = {\n key: 0,\n class: \"footer-item bullet\"\n}\nconst _hoisted_8 = {\n key: 1,\n class: \"footer-item\"\n}\nconst _hoisted_9 = [\"href\"]\nconst _hoisted_10 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"footer-item bullet\" }, \"•\", -1))\nconst _hoisted_11 = { class: \"footer-item\" }\nconst _hoisted_12 = {\n href: \"https://samr1.github.io/FitTrackee/\",\n target: \"_blank\",\n rel: \"noopener noreferrer\"\n}\n\nimport { toRefs } from 'vue'\n\n interface Props {\n version: string\n adminContact?: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'Footer',\n props: {\n version: null,\n adminContact: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n version: string\n adminContact?: string\n };\n\n \n\n const { adminContact, version } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_link = _resolveComponent(\"router-link\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _hoisted_4,\n _createTextVNode(\" v\" + _toDisplayString(_unref(version)), 1)\n ]),\n _hoisted_5,\n _createElementVNode(\"div\", _hoisted_6, [\n _createVNode(_component_router_link, { to: \"/about\" }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('common.ABOUT')), 1)\n ]),\n _: 1\n })\n ]),\n (_unref(adminContact))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_7, \"•\"))\n : _createCommentVNode(\"\", true),\n (_unref(adminContact))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_8, [\n _createElementVNode(\"a\", {\n href: `mailto:${_unref(adminContact)}`\n }, _toDisplayString(_ctx.$t('common.CONTACT')), 9, _hoisted_9)\n ]))\n : _createCommentVNode(\"\", true),\n _hoisted_10,\n _createElementVNode(\"div\", _hoisted_11, [\n _createElementVNode(\"a\", _hoisted_12, _toDisplayString(_ctx.$t('common.DOCUMENTATION')), 1)\n ])\n ])\n ]))\n}\n}\n\n})","import script from \"./Footer.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Footer.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Footer.vue?vue&type=style&index=0&id=2c73279e&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-2c73279e\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, unref as _unref, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-95c1cc02\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"nav\" }\nconst _hoisted_2 = { class: \"nav-container\" }\nconst _hoisted_3 = { class: \"nav-app-name\" }\nconst _hoisted_4 = { class: \"nav-items-close\" }\nconst _hoisted_5 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"app-name\" }, \"FitTrackee\", -1))\nconst _hoisted_6 = {\n key: 0,\n class: \"nav-items-group\"\n}\nconst _hoisted_7 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"nav-item nav-separator\" }, null, -1))\nconst _hoisted_8 = { class: \"nav-items-user-menu\" }\nconst _hoisted_9 = {\n key: 0,\n class: \"nav-items-group\"\n}\nconst _hoisted_10 = { class: \"nav-item nav-profile-img\" }\nconst _hoisted_11 = {\n key: 1,\n class: \"nav-items-group\"\n}\nconst _hoisted_12 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", { class: \"fa fa-language\" }, null, -1))\n\nimport { ComputedRef, computed, ref, capitalize } from 'vue'\n\n import UserPicture from '@/components/User/UserPicture.vue'\n import { AUTH_USER_STORE, ROOT_STORE } from '@/store/constants'\n import { IDropdownOption } from '@/types/forms'\n import { IAuthUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { availableLanguages } from '@/utils/locales'\n\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'NavBar',\n emits: ['menuInteraction'],\n setup(__props, { emit }) {\n\n \n\n const store = useStore()\n\n const authUser: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.AUTH_USER_PROFILE]\n )\n const isAuthenticated: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.IS_AUTHENTICATED]\n )\n const language: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.LANGUAGE]\n )\n const isMenuOpen = ref(false)\n\n function openMenu() {\n isMenuOpen.value = true\n emit('menuInteraction', true)\n }\n function closeMenu() {\n isMenuOpen.value = false\n emit('menuInteraction', false)\n }\n function updateLanguage(option: IDropdownOption) {\n store.dispatch(\n ROOT_STORE.ACTIONS.UPDATE_APPLICATION_LANGUAGE,\n option.value.toString()\n )\n }\n function logout() {\n store.dispatch(AUTH_USER_STORE.ACTIONS.LOGOUT)\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_Dropdown = _resolveComponent(\"Dropdown\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", {\n class: \"nav-item app-name\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$router.push('/')))\n }, \" FitTrackee \")\n ]),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"nav-icon-open\", { 'menu-open': isMenuOpen.value }])\n }, [\n _createElementVNode(\"i\", {\n class: \"fa fa-bars hamburger-icon\",\n onClick: _cache[1] || (_cache[1] = ($event: any) => (openMenu()))\n })\n ], 2),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"nav-items\", { 'menu-open': isMenuOpen.value }])\n }, [\n _createElementVNode(\"div\", _hoisted_4, [\n _hoisted_5,\n _createElementVNode(\"i\", {\n class: _normalizeClass([\"fa fa-close close-icon nav-item\", { 'menu-closed': !isMenuOpen.value }]),\n onClick: _cache[2] || (_cache[2] = ($event: any) => (closeMenu()))\n }, null, 2)\n ]),\n _createElementVNode(\"div\", {\n class: \"nav-items-app-menu\",\n onClick: _cache[3] || (_cache[3] = ($event: any) => (closeMenu()))\n }, [\n (_unref(isAuthenticated))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_6, [\n _createVNode(_component_router_link, {\n class: \"nav-item\",\n to: \"/\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('dashboard.DASHBOARD')), 1)\n ]),\n _: 1\n }),\n _createVNode(_component_router_link, {\n class: \"nav-item\",\n to: \"/workouts\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(capitalize(_ctx.$t('workouts.WORKOUT', 2))), 1)\n ]),\n _: 1\n }),\n _createVNode(_component_router_link, {\n class: \"nav-item\",\n to: \"/statistics\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('statistics.STATISTICS')), 1)\n ]),\n _: 1\n }),\n _createVNode(_component_router_link, {\n class: \"nav-item\",\n to: \"/workouts/add\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('workouts.ADD_WORKOUT')), 1)\n ]),\n _: 1\n }),\n (_unref(isAuthenticated) && _unref(authUser).admin)\n ? (_openBlock(), _createBlock(_component_router_link, {\n key: 0,\n class: \"nav-item\",\n to: \"/admin\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.ADMIN')), 1)\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true),\n _hoisted_7\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", _hoisted_8, [\n (_unref(isAuthenticated))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_9, [\n _createElementVNode(\"div\", _hoisted_10, [\n _createVNode(UserPicture, { user: _unref(authUser) }, null, 8, [\"user\"])\n ]),\n _createVNode(_component_router_link, {\n class: \"nav-item\",\n to: \"/profile\",\n onClick: closeMenu\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_unref(authUser).username), 1)\n ]),\n _: 1\n }),\n _createElementVNode(\"div\", {\n class: \"nav-item nav-link\",\n onClick: logout\n }, _toDisplayString(_ctx.$t('user.LOGOUT')), 1)\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_11, [\n _createVNode(_component_router_link, {\n class: \"nav-item\",\n to: \"/login\",\n onClick: closeMenu\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('user.LOGIN')), 1)\n ]),\n _: 1\n }),\n _createVNode(_component_router_link, {\n class: \"nav-item\",\n to: \"/register\",\n onClick: closeMenu\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('user.REGISTER')), 1)\n ]),\n _: 1\n })\n ])),\n (_unref(availableLanguages) && _unref(language))\n ? (_openBlock(), _createBlock(_component_Dropdown, {\n key: 2,\n class: \"nav-item\",\n options: _unref(availableLanguages),\n selected: _unref(language),\n onSelected: updateLanguage\n }, {\n default: _withCtx(() => [\n _hoisted_12\n ]),\n _: 1\n }, 8, [\"options\", \"selected\"]))\n : _createCommentVNode(\"\", true)\n ])\n ], 2)\n ])\n ]))\n}\n}\n\n})","import script from \"./NavBar.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./NavBar.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./NavBar.vue?vue&type=style&index=0&id=95c1cc02&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-95c1cc02\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createVNode as _createVNode, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-47759238\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"no-config\" }\nconst _hoisted_2 = { class: \"error-page\" }\nconst _hoisted_3 = { class: \"error-img\" }\nconst _hoisted_4 = [\"innerHTML\"]\n\nimport ErrorImg from '@/components/Common/Images/ErrorImg.vue'\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'NoConfig',\n setup(__props) {\n\n \nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createVNode(ErrorImg)\n ]),\n _createElementVNode(\"p\", {\n class: \"error-message\",\n innerHTML: _ctx.$t('error.APP_ERROR')\n }, null, 8, _hoisted_4)\n ])\n ]))\n}\n}\n\n})","import script from \"./NoConfig.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./NoConfig.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./NoConfig.vue?vue&type=style&index=0&id=47759238&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-47759238\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, createVNode as _createVNode, unref as _unref, resolveComponent as _resolveComponent, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createBlock as _createBlock, normalizeClass as _normalizeClass, Fragment as _Fragment } from \"vue\"\n\nconst _hoisted_1 = /*#__PURE__*/_createElementVNode(\"div\", { id: \"top\" }, null, -1)\nconst _hoisted_2 = {\n key: 0,\n class: \"app-container\"\n}\nconst _hoisted_3 = { class: \"app-loading\" }\nconst _hoisted_4 = { class: \"container scroll\" }\nconst _hoisted_5 = /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-chevron-up\",\n \"aria-hidden\": \"true\"\n}, null, -1)\nconst _hoisted_6 = [\n _hoisted_5\n]\n\nimport { ComputedRef, computed, ref, onBeforeMount, onMounted } from 'vue'\n\n import Footer from '@/components/Footer.vue'\n import NavBar from '@/components/NavBar.vue'\n import NoConfig from '@/components/NoConfig.vue'\n import { ROOT_STORE } from '@/store/constants'\n import { TAppConfig } from '@/types/application'\n import { useStore } from '@/use/useStore'\n import { localeFromLanguage } from '@/utils/locales'\n\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'App',\n setup(__props) {\n\n const store = useStore()\n\n const appConfig: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.APP_CONFIG]\n )\n const appLoading: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.APP_LOADING]\n )\n const hideScrollBar = ref(false)\n const displayScrollButton = ref(false)\n\n onBeforeMount(() => {\n initLanguage()\n store.dispatch(ROOT_STORE.ACTIONS.GET_APPLICATION_CONFIG)\n })\n onMounted(() => scroll())\n\n function updateHideScrollBar(isMenuOpen: boolean) {\n hideScrollBar.value = isMenuOpen\n }\n function isScrolledToBottom(element: Element): boolean {\n return (\n element.getBoundingClientRect().top < window.innerHeight &&\n element.getBoundingClientRect().bottom >= 0\n )\n }\n function scroll() {\n window.onscroll = () => {\n const bottom = document.querySelector('#bottom')\n displayScrollButton.value = bottom !== null && isScrolledToBottom(bottom)\n }\n }\n function scrollToTop() {\n window.scrollTo({\n top: 0,\n behavior: 'smooth',\n })\n setTimeout(() => {\n displayScrollButton.value = false\n }, 300)\n }\n function initLanguage() {\n let language = 'en'\n try {\n const navigatorLanguage = navigator.language.split('-')[0]\n if (navigatorLanguage in localeFromLanguage) {\n language = navigatorLanguage\n }\n } catch (e) {\n language = 'en'\n }\n store.dispatch(ROOT_STORE.ACTIONS.UPDATE_APPLICATION_LANGUAGE, language)\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _component_Loader = _resolveComponent(\"Loader\")!\n const _component_router_view = _resolveComponent(\"router-view\")!\n\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _hoisted_1,\n _createVNode(NavBar, { onMenuInteraction: updateHideScrollBar }),\n (_unref(appLoading))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createVNode(_component_Loader)\n ])\n ]))\n : (_openBlock(), _createElementBlock(\"div\", {\n key: 1,\n class: _normalizeClass([\"app-container\", { 'hide-scroll': hideScrollBar.value }])\n }, [\n (_unref(appConfig))\n ? (_openBlock(), _createBlock(_component_router_view, { key: 0 }))\n : (_openBlock(), _createBlock(NoConfig, { key: 1 }))\n ], 2)),\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"scroll-button\", { 'display-button': displayScrollButton.value }]),\n onClick: scrollToTop\n }, _hoisted_6, 2)\n ]),\n (_unref(appConfig))\n ? (_openBlock(), _createBlock(Footer, {\n key: 2,\n version: _unref(appConfig) ? _unref(appConfig).version : '',\n adminContact: _unref(appConfig).admin_contact\n }, null, 8, [\"version\", \"adminContact\"]))\n : _createCommentVNode(\"\", true)\n ], 64))\n}\n}\n\n})","import script from \"./App.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./App.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./App.vue?vue&type=style&index=0&id=2930d5e0&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-69d7e4ff\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"alert-message\" }\nconst _hoisted_2 = [\"innerHTML\"]\n\nimport { toRefs } from 'vue'\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'AlertMessage',\n props: {\n message: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n message: string\n };\n\n \n const { message } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", {\n innerHTML: _ctx.$t(_unref(message))\n }, null, 8, _hoisted_2)\n ]))\n}\n}\n\n})","import script from \"./AlertMessage.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AlertMessage.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./AlertMessage.vue?vue&type=style&index=0&id=69d7e4ff&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-69d7e4ff\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { vModelText as _vModelText, createElementVNode as _createElementVNode, withDirectives as _withDirectives, toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-8cf5cc64\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"custom-textarea\" }\nconst _hoisted_2 = [\"id\", \"name\", \"maxLenght\", \"disabled\"]\nconst _hoisted_3 = { class: \"remaining-chars\" }\n\nimport { ref, watch, withDefaults } from 'vue'\n\n interface Props {\n name: string\n charLimit?: number\n disabled?: boolean\n input?: string | null\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'CustomTextArea',\n props: {\n name: null,\n charLimit: { default: 500 },\n disabled: { type: Boolean, default: false },\n input: { default: '' }\n },\n emits: ['updateValue'],\n setup(__props: any, { emit }) {\n\nconst props = __props as { name: string, charLimit: number, disabled: boolean, input: string | null };\n\n \n\n \n\n const text = ref('')\n\n function updateText(event: Event & { target: HTMLInputElement }) {\n emit('updateValue', event.target.value)\n }\n\n watch(\n () => props.input,\n (value) => {\n text.value = value === null ? '' : value\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _withDirectives(_createElementVNode(\"textarea\", {\n id: __props.name,\n name: __props.name,\n maxLenght: __props.charLimit,\n disabled: __props.disabled,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((text).value = $event)),\n onInput: updateText\n }, null, 40, _hoisted_2), [\n [_vModelText, text.value]\n ]),\n _createElementVNode(\"div\", _hoisted_3, _toDisplayString(_ctx.$t('workouts.REMAINING_CHARS')) + \": \" + _toDisplayString(text.value.length) + \"/\" + _toDisplayString(__props.charLimit), 1)\n ]))\n}\n}\n\n})","import script from \"./CustomTextArea.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./CustomTextArea.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./CustomTextArea.vue?vue&type=style&index=0&id=8cf5cc64&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-8cf5cc64\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createTextVNode as _createTextVNode, Fragment as _Fragment } from \"vue\"\n\nimport { ComputedRef, computed, toRefs, withDefaults } from 'vue'\n\n import { TUnit } from '@/types/units'\n import { units, convertDistance } from '@/utils/units'\n\n interface Props {\n distance: number\n unitFrom: TUnit\n useImperialUnits: boolean\n digits?: number\n displayUnit?: boolean\n speed?: boolean\n strong?: boolean\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'Distance',\n props: {\n distance: null,\n unitFrom: null,\n useImperialUnits: { type: Boolean },\n digits: { default: 2 },\n displayUnit: { type: Boolean, default: true },\n speed: { type: Boolean, default: false },\n strong: { type: Boolean, default: false }\n },\n setup(__props: any) {\n\nconst props = __props as { distance: number, unitFrom: TUnit, useImperialUnits: boolean, digits: number, displayUnit: boolean, speed: boolean, strong: boolean };\n\n \n\n const {\n digits,\n displayUnit,\n distance,\n speed,\n strong,\n unitFrom,\n useImperialUnits,\n } = toRefs(props)\n const unitTo: ComputedRef = computed(() =>\n useImperialUnits.value\n ? units[unitFrom.value].defaultTarget\n : unitFrom.value\n )\n const convertedDistance = computed(() =>\n useImperialUnits.value\n ? convertDistance(\n distance.value,\n unitFrom.value,\n unitTo.value,\n digits.value\n )\n : parseFloat(distance.value.toFixed(digits.value))\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _createElementVNode(\"span\", {\n class: _normalizeClass([\"distance\", { strong: _unref(strong) }])\n }, _toDisplayString(_unref(convertedDistance)), 3),\n _createTextVNode(\" \" + _toDisplayString(' ') + \" \"),\n (_unref(displayUnit))\n ? (_openBlock(), _createElementBlock(\"span\", {\n key: 0,\n class: _normalizeClass([\"unit\", { strong: _unref(strong) }])\n }, _toDisplayString(_unref(unitTo)) + _toDisplayString(_unref(speed) ? '/h' : ''), 3))\n : _createCommentVNode(\"\", true)\n ], 64))\n}\n}\n\n})","import script from \"./Distance.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Distance.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Distance.vue?vue&type=style&index=0&id=f46ff1d6&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-f46ff1d6\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { renderSlot as _renderSlot, createElementVNode as _createElementVNode, unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-2d3b4eac\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"dropdown-wrapper\" }\nconst _hoisted_2 = {\n key: 0,\n class: \"dropdown-list\"\n}\nconst _hoisted_3 = [\"onClick\"]\n\nimport { ref, watch } from 'vue'\n import { useRoute } from 'vue-router'\n\n import { IDropdownOption, TDropdownOptions } from '@/types/forms'\n interface Props {\n options: TDropdownOptions\n selected: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'Dropdown',\n props: {\n options: null,\n selected: null\n },\n emits: {\n selected: (option: IDropdownOption) => option,\n },\n setup(__props: any, { emit }) {\n\nconst props = __props as {\n options: TDropdownOptions\n selected: string\n };\n\n \n\n \n\n const route = useRoute()\n const isOpen = ref(false)\n const dropdownOptions = props.options.map((option) => option)\n\n function toggleDropdown() {\n isOpen.value = !isOpen.value\n }\n function updateSelected(option: IDropdownOption) {\n emit('selected', option)\n isOpen.value = false\n }\n\n watch(\n () => route.path,\n () => (isOpen.value = false)\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", {\n class: \"dropdown-selected\",\n onClick: toggleDropdown\n }, [\n _renderSlot(_ctx.$slots, \"default\")\n ]),\n (isOpen.value)\n ? (_openBlock(), _createElementBlock(\"ul\", _hoisted_2, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(dropdownOptions), (option, index) => {\n return (_openBlock(), _createElementBlock(\"li\", {\n class: _normalizeClass([\"dropdown-item\", { selected: option.value === __props.selected }]),\n key: index,\n onClick: ($event: any) => (updateSelected(option))\n }, _toDisplayString(option.label), 11, _hoisted_3))\n }), 128))\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n}\n}\n\n})","import script from \"./Dropdown.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Dropdown.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Dropdown.vue?vue&type=style&index=0&id=2d3b4eac&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-2d3b4eac\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-2659a79a\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"error-message\" }\nconst _hoisted_2 = { key: 0 }\nconst _hoisted_3 = { key: 1 }\n\nimport { toRefs } from 'vue'\n\n interface Props {\n message: string | string[]\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'ErrorMessage',\n props: {\n message: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n message: string | string[]\n };\n\n \n const { message } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (Array.isArray(_unref(message)))\n ? (_openBlock(), _createElementBlock(\"ul\", _hoisted_2, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(message), (subMessage, index) => {\n return (_openBlock(), _createElementBlock(\"li\", { key: index }, _toDisplayString(_ctx.$t(subMessage)), 1))\n }), 128))\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_3, _toDisplayString(_ctx.$t(_unref(message))), 1))\n ]))\n}\n}\n\n})","import script from \"./ErrorMessage.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./ErrorMessage.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./ErrorMessage.vue?vue&type=style&index=0&id=2659a79a&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-2659a79a\"]])\n\nexport default __exports__","\n\n\n","import { render } from \"./CyclingSport.vue?vue&type=template&id=be8023a2\"\nimport script from \"./CyclingSport.vue?vue&type=script&lang=js\"\nexport * from \"./CyclingSport.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./CyclingTransport.vue?vue&type=template&id=97af5148\"\nimport script from \"./CyclingTransport.vue?vue&type=script&lang=js\"\nexport * from \"./CyclingTransport.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./CyclingVirtual.vue?vue&type=template&id=ec8f7bb6\"\nimport script from \"./CyclingVirtual.vue?vue&type=script&lang=js\"\nexport * from \"./CyclingVirtual.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./Hiking.vue?vue&type=template&id=40903dc4\"\nimport script from \"./Hiking.vue?vue&type=script&lang=js\"\nexport * from \"./Hiking.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./MountainBiking.vue?vue&type=template&id=5bdbc6e8\"\nimport script from \"./MountainBiking.vue?vue&type=script&lang=js\"\nexport * from \"./MountainBiking.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./MountainBikingElectric.vue?vue&type=template&id=21e72aec\"\nimport script from \"./MountainBikingElectric.vue?vue&type=script&lang=js\"\nexport * from \"./MountainBikingElectric.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./Rowing.vue?vue&type=template&id=31ae2dd5\"\nimport script from \"./Rowing.vue?vue&type=script&lang=js\"\nexport * from \"./Rowing.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./Running.vue?vue&type=template&id=4d47a4fe\"\nimport script from \"./Running.vue?vue&type=script&lang=js\"\nexport * from \"./Running.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./SkiingAlpine.vue?vue&type=template&id=3ebf3bca\"\nimport script from \"./SkiingAlpine.vue?vue&type=script&lang=js\"\nexport * from \"./SkiingAlpine.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./SkiingCrossCountry.vue?vue&type=template&id=1561bbe6\"\nimport script from \"./SkiingCrossCountry.vue?vue&type=script&lang=js\"\nexport * from \"./SkiingCrossCountry.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./Snowshoes.vue?vue&type=template&id=67df2761\"\nimport script from \"./Snowshoes.vue?vue&type=script&lang=js\"\nexport * from \"./Snowshoes.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./Trail.vue?vue&type=template&id=32a14156\"\nimport script from \"./Trail.vue?vue&type=script&lang=js\"\nexport * from \"./Trail.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./Walking.vue?vue&type=template&id=2ed4f5f4\"\nimport script from \"./Walking.vue?vue&type=script&lang=js\"\nexport * from \"./Walking.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, normalizeStyle as _normalizeStyle, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = [\"title\"]\n\nimport { inject, toRefs, withDefaults } from 'vue'\n\n import CyclingSport from '@/components/Common/Images/SportImage/CyclingSport.vue'\n import CyclingTransport from '@/components/Common/Images/SportImage/CyclingTransport.vue'\n import CyclingVirtual from '@/components/Common/Images/SportImage/CyclingVirtual.vue'\n import Hiking from '@/components/Common/Images/SportImage/Hiking.vue'\n import MountainBiking from '@/components/Common/Images/SportImage/MountainBiking.vue'\n import MountainBikingElectric from '@/components/Common/Images/SportImage/MountainBikingElectric.vue'\n import Rowing from '@/components/Common/Images/SportImage/Rowing.vue'\n import Running from '@/components/Common/Images/SportImage/Running.vue'\n import SkiingAlpine from '@/components/Common/Images/SportImage/SkiingAlpine.vue'\n import SkiingCrossCountry from '@/components/Common/Images/SportImage/SkiingCrossCountry.vue'\n import Snowshoes from '@/components/Common/Images/SportImage/Snowshoes.vue'\n import Trail from '@/components/Common/Images/SportImage/Trail.vue'\n import Walking from '@/components/Common/Images/SportImage/Walking.vue'\n\n interface Props {\n sportLabel: string\n color: string | null\n title?: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'index',\n props: {\n sportLabel: null,\n color: null,\n title: { default: '' }\n },\n setup(__props: any) {\n\nconst props = __props as { sportLabel: string, color: string | null, title: string };\n\n \n\n const { color, sportLabel, title } = toRefs(props)\n const sportColors = inject('sportColors')\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"sport-img\",\n style: _normalizeStyle({ fill: _unref(color) ? _unref(color) : _unref(sportColors)[_unref(sportLabel)] }),\n title: _unref(title) ? _unref(title) : _ctx.$t(`sports.${_unref(sportLabel)}.LABEL`)\n }, [\n (_unref(sportLabel) === 'Cycling (Sport)')\n ? (_openBlock(), _createBlock(CyclingSport, { key: 0 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Cycling (Transport)')\n ? (_openBlock(), _createBlock(CyclingTransport, { key: 1 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Cycling (Virtual)')\n ? (_openBlock(), _createBlock(CyclingVirtual, { key: 2 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Hiking')\n ? (_openBlock(), _createBlock(Hiking, { key: 3 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Mountain Biking')\n ? (_openBlock(), _createBlock(MountainBiking, { key: 4 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Mountain Biking (Electric)')\n ? (_openBlock(), _createBlock(MountainBikingElectric, { key: 5 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Rowing')\n ? (_openBlock(), _createBlock(Rowing, { key: 6 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Running')\n ? (_openBlock(), _createBlock(Running, { key: 7 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Skiing (Alpine)')\n ? (_openBlock(), _createBlock(SkiingAlpine, { key: 8 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Skiing (Cross Country)')\n ? (_openBlock(), _createBlock(SkiingCrossCountry, { key: 9 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Snowshoes')\n ? (_openBlock(), _createBlock(Snowshoes, { key: 10 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Trail')\n ? (_openBlock(), _createBlock(Trail, { key: 11 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Walking')\n ? (_openBlock(), _createBlock(Walking, { key: 12 }))\n : _createCommentVNode(\"\", true)\n ], 12, _hoisted_1))\n}\n}\n\n})","import script from \"./index.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n\n","import { render } from \"./Loader.vue?vue&type=template&id=4c9921ee&scoped=true\"\nconst script = {}\n\nimport \"./Loader.vue?vue&type=style&index=0&id=4c9921ee&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-4c9921ee\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-e8fcfaba\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"modal\" }\nconst _hoisted_2 = { class: \"custom-modal\" }\nconst _hoisted_3 = {\n key: 0,\n class: \"modal-message\"\n}\nconst _hoisted_4 = {\n key: 1,\n class: \"modal-message\"\n}\nconst _hoisted_5 = { class: \"modal-buttons\" }\n\nimport { ComputedRef, computed, toRefs, withDefaults, onUnmounted } from 'vue'\n\n import { ROOT_STORE } from '@/store/constants'\n import { useStore } from '@/use/useStore'\n\n interface Props {\n title: string\n message: string\n strongMessage?: string | null\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'Modal',\n props: {\n title: null,\n message: null,\n strongMessage: { default: () => null }\n },\n emits: ['cancelAction', 'confirmAction'],\n setup(__props: any, { emit }) {\n\nconst props = __props as { title: string, message: string, strongMessage: string | null };\n\n \n\n \n\n const store = useStore()\n\n const { title, message, strongMessage } = toRefs(props)\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n onUnmounted(() => store.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES))\n\nreturn (_ctx: any,_cache: any) => {\n const _component_i18n_t = _resolveComponent(\"i18n-t\")!\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n const _component_Card = _resolveComponent(\"Card\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createVNode(_component_Card, null, {\n title: _withCtx(() => [\n _createTextVNode(_toDisplayString(_unref(title)), 1)\n ]),\n content: _withCtx(() => [\n (_unref(strongMessage))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n _createVNode(_component_i18n_t, { keypath: _unref(message) }, {\n default: _withCtx(() => [\n _createElementVNode(\"span\", null, _toDisplayString(_unref(strongMessage)), 1)\n ]),\n _: 1\n }, 8, [\"keypath\"])\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_4, _toDisplayString(_unref(message)), 1)),\n (_unref(errorMessages))\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 2,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_5, [\n (!_unref(errorMessages))\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 0,\n class: \"confirm\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (emit('confirmAction')))\n }, _toDisplayString(_ctx.$t('buttons.YES')), 1))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _cache[1] || (_cache[1] = ($event: any) => (emit('cancelAction')))\n }, _toDisplayString(_ctx.$t(`buttons.${_unref(errorMessages) ? 'CANCEL' : 'NO'}`)), 1)\n ])\n ]),\n _: 1\n })\n ])\n ]))\n}\n}\n\n})","import script from \"./Modal.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Modal.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Modal.vue?vue&type=style&index=0&id=e8fcfaba&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-e8fcfaba\"]])\n\nexport default __exports__","import AlertMessage from '@/components/Common/AlertMessage.vue'\nimport Card from '@/components/Common/Card.vue'\nimport CustomTextArea from '@/components/Common/CustomTextArea.vue'\nimport Distance from '@/components/Common/Distance.vue'\nimport Dropdown from '@/components/Common/Dropdown.vue'\nimport ErrorMessage from '@/components/Common/ErrorMessage.vue'\nimport SportImage from '@/components/Common/Images/SportImage/index.vue'\nimport Loader from '@/components/Common/Loader.vue'\nimport Modal from '@/components/Common/Modal.vue'\n\nexport const customComponents = [\n { target: AlertMessage, name: 'AlertMessage' },\n { target: Card, name: 'Card' },\n { target: CustomTextArea, name: 'CustomTextArea' },\n { target: Distance, name: 'Distance' },\n { target: Dropdown, name: 'Dropdown' },\n { target: ErrorMessage, name: 'ErrorMessage' },\n { target: Loader, name: 'Loader' },\n { target: Modal, name: 'Modal' },\n { target: SportImage, name: 'SportImage' },\n]\n","import { Directive, DirectiveBinding } from 'vue'\n\ninterface ClickOutsideHTMLElement extends HTMLElement {\n clickOutsideEvent?: (event: MouseEvent | TouchEvent) => void\n}\n\nexport const clickOutsideDirective: Directive = {\n mounted: (\n element: ClickOutsideHTMLElement,\n binding: DirectiveBinding\n ): void => {\n element.clickOutsideEvent = function (event) {\n if (!(element === event.target || element.contains(event.target))) {\n binding.value(event)\n }\n }\n document.body.addEventListener('click', element.clickOutsideEvent)\n document.body.addEventListener('touchstart', element.clickOutsideEvent)\n },\n unmounted: function (element: ClickOutsideHTMLElement): void {\n if (element.clickOutsideEvent) {\n document.body.removeEventListener('click', element.clickOutsideEvent)\n document.body.removeEventListener('touchstart', element.clickOutsideEvent)\n element.clickOutsideEvent = undefined\n }\n },\n}\n","import {\n Chart,\n BarElement,\n LineElement,\n PointElement,\n Legend,\n Title,\n Tooltip,\n Filler,\n BarController,\n CategoryScale,\n LineController,\n LinearScale,\n} from 'chart.js'\nimport ChartDataLabels from 'chartjs-plugin-datalabels'\nimport { createApp } from 'vue'\nimport VueFullscreen from 'vue-fullscreen'\n\nimport './registerServiceWorker'\nimport App from './App.vue'\nimport i18n from './i18n'\nimport router from './router'\nimport store from './store'\n\nimport { customComponents } from '@/custom-components'\nimport { clickOutsideDirective } from '@/directives'\nimport { sportColors } from '@/utils/sports'\n\nChart.register(\n BarElement,\n LineElement,\n PointElement,\n Legend,\n Title,\n Tooltip,\n Filler,\n BarController,\n CategoryScale,\n LineController,\n LinearScale,\n ChartDataLabels\n)\n\nconst app = createApp(App)\n .provide('sportColors', sportColors)\n .use(i18n)\n .use(store)\n .use(router)\n .use(VueFullscreen, { name: 'VFullscreen' })\n .directive('click-outside', clickOutsideDirective)\n\ncustomComponents.forEach((component) => {\n app.component(component.name, component.target)\n})\n\napp.mount('#app')\n","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, unref as _unref, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, vModelText as _vModelText, withDirectives as _withDirectives, createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, createBlock as _createBlock, withModifiers as _withModifiers, withCtx as _withCtx, createVNode as _createVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-24ec93e2\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"admin-app\",\n class: \"admin-card\"\n}\nconst _hoisted_2 = [\"onSubmit\"]\nconst _hoisted_3 = { for: \"admin_contact\" }\nconst _hoisted_4 = [\"value\"]\nconst _hoisted_5 = [\"disabled\"]\nconst _hoisted_6 = { for: \"max_users\" }\nconst _hoisted_7 = [\"disabled\"]\nconst _hoisted_8 = { class: \"user-limit-help\" }\nconst _hoisted_9 = { class: \"info-box\" }\nconst _hoisted_10 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-info-circle\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_11 = { for: \"max_single_file_size\" }\nconst _hoisted_12 = [\"disabled\"]\nconst _hoisted_13 = { for: \"max_zip_file_size\" }\nconst _hoisted_14 = [\"disabled\"]\nconst _hoisted_15 = { for: \"gpx_limit_import\" }\nconst _hoisted_16 = [\"disabled\"]\nconst _hoisted_17 = {\n key: 1,\n class: \"form-buttons\"\n}\nconst _hoisted_18 = {\n class: \"confirm\",\n type: \"submit\"\n}\nconst _hoisted_19 = [\"onClick\"]\nconst _hoisted_20 = {\n key: 2,\n class: \"form-buttons\"\n}\n\nimport {\n ComputedRef,\n computed,\n reactive,\n withDefaults,\n onBeforeMount,\n toRefs,\n } from 'vue'\n import { useRouter } from 'vue-router'\n\n import { ROOT_STORE } from '@/store/constants'\n import { TAppConfig, TAppConfigForm } from '@/types/application'\n import { useStore } from '@/use/useStore'\n import { getFileSizeInMB } from '@/utils/files'\n\n interface Props {\n appConfig: TAppConfig\n edition?: boolean\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'AdminApplication',\n props: {\n appConfig: null,\n edition: { type: Boolean, default: false }\n },\n setup(__props: any) {\n\nconst props = __props as { appConfig: TAppConfig, edition: boolean };\n\n \n const { edition } = toRefs(props)\n\n const store = useStore()\n const router = useRouter()\n\n const appData: TAppConfigForm = reactive({\n admin_contact: '',\n max_users: 0,\n max_single_file_size: 0,\n max_zip_file_size: 0,\n gpx_limit_import: 0,\n })\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n\n onBeforeMount(() => {\n if (props.appConfig) {\n updateForm(props.appConfig)\n }\n })\n\n function updateForm(appConfig: TAppConfig) {\n Object.keys(appData).map((key) => {\n ['max_single_file_size', 'max_zip_file_size'].includes(key)\n ? // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n (appData[key] = getFileSizeInMB(appConfig[key]))\n : // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n (appData[key] = appConfig[key])\n })\n }\n function onCancel() {\n updateForm(props.appConfig)\n store.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n router.push('/admin/application')\n }\n function onSubmit() {\n const formData: TAppConfigForm = Object.assign({}, appData)\n formData.max_single_file_size *= 1048576\n formData.max_zip_file_size *= 1048576\n store.dispatch(ROOT_STORE.ACTIONS.UPDATE_APPLICATION_CONFIG, formData)\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n const _component_Card = _resolveComponent(\"Card\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_Card, null, {\n title: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.APP_CONFIG.TITLE')), 1)\n ]),\n content: _withCtx(() => [\n _createElementVNode(\"form\", {\n class: \"admin-form\",\n onSubmit: _withModifiers(onSubmit, [\"prevent\"])\n }, [\n _createElementVNode(\"label\", _hoisted_3, [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.APP_CONFIG.ADMIN_CONTACT')) + \": \", 1),\n (!_unref(edition) && !appData.admin_contact)\n ? (_openBlock(), _createElementBlock(\"input\", {\n key: 0,\n class: \"no-contact\",\n value: _ctx.$t('admin.APP_CONFIG.NO_CONTACT_EMAIL'),\n disabled: \"\"\n }, null, 8, _hoisted_4))\n : _withDirectives((_openBlock(), _createElementBlock(\"input\", {\n key: 1,\n id: \"admin_contact\",\n name: \"admin_contact\",\n type: \"email\",\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((appData.admin_contact) = $event)),\n disabled: !_unref(edition)\n }, null, 8, _hoisted_5)), [\n [_vModelText, appData.admin_contact]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_6, [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.APP_CONFIG.MAX_USERS_LABEL')) + \": \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"max_users\",\n name: \"max_users\",\n type: \"number\",\n min: \"0\",\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((appData.max_users) = $event)),\n disabled: !_unref(edition)\n }, null, 8, _hoisted_7), [\n [_vModelText, appData.max_users]\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_8, [\n _createElementVNode(\"span\", _hoisted_9, [\n _hoisted_10,\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('admin.APP_CONFIG.MAX_USERS_HELP')), 1)\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_11, [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.APP_CONFIG.SINGLE_UPLOAD_MAX_SIZE_LABEL')) + \": \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"max_single_file_size\",\n name: \"max_single_file_size\",\n type: \"number\",\n step: \"0.1\",\n min: \"0\",\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((appData.max_single_file_size) = $event)),\n disabled: !_unref(edition)\n }, null, 8, _hoisted_12), [\n [_vModelText, appData.max_single_file_size]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_13, [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.APP_CONFIG.ZIP_UPLOAD_MAX_SIZE_LABEL')) + \": \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"max_zip_file_size\",\n name: \"max_zip_file_size\",\n type: \"number\",\n step: \"0.1\",\n min: \"0\",\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = ($event: any) => ((appData.max_zip_file_size) = $event)),\n disabled: !_unref(edition)\n }, null, 8, _hoisted_14), [\n [_vModelText, appData.max_zip_file_size]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_15, [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.APP_CONFIG.MAX_FILES_IN_ZIP_LABEL')) + \": \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"gpx_limit_import\",\n name: \"gpx_limit_import\",\n type: \"number\",\n min: \"0\",\n \"onUpdate:modelValue\": _cache[4] || (_cache[4] = ($event: any) => ((appData.gpx_limit_import) = $event)),\n disabled: !_unref(edition)\n }, null, 8, _hoisted_16), [\n [_vModelText, appData.gpx_limit_import]\n ])\n ]),\n (_unref(errorMessages))\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 0,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true),\n (_unref(edition))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_17, [\n _createElementVNode(\"button\", _hoisted_18, _toDisplayString(_ctx.$t('buttons.SUBMIT')), 1),\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _withModifiers(onCancel, [\"prevent\"])\n }, _toDisplayString(_ctx.$t('buttons.CANCEL')), 9, _hoisted_19)\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_20, [\n _createElementVNode(\"button\", {\n class: \"confirm\",\n onClick: _cache[5] || (_cache[5] = _withModifiers(($event: any) => (_ctx.$router.push('/admin/application/edit')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('buttons.EDIT')), 1),\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _cache[6] || (_cache[6] = _withModifiers(($event: any) => (_ctx.$router.push('/admin')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('admin.BACK_TO_ADMIN')), 1)\n ]))\n ], 40, _hoisted_2)\n ]),\n _: 1\n })\n ]))\n}\n}\n\n})","import script from \"./AdminApplication.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AdminApplication.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./AdminApplication.vue?vue&type=style&index=0&id=24ec93e2&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-24ec93e2\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"stat-card\" }\nconst _hoisted_2 = { class: \"stat-content box\" }\nconst _hoisted_3 = { class: \"stat-icon\" }\nconst _hoisted_4 = { class: \"stat-details\" }\nconst _hoisted_5 = { class: \"stat-huge\" }\nconst _hoisted_6 = { class: \"stat\" }\n\nimport { toRefs } from 'vue'\n\n interface Props {\n icon: string\n text: string\n value: string | number\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'StatCard',\n props: {\n icon: null,\n text: null,\n value: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n icon: string\n text: string\n value: string | number\n };\n\n \n const { icon, text, value } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"i\", {\n class: _normalizeClass([\"fa\", `fa-${_unref(icon)}`])\n }, null, 2)\n ]),\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"div\", _hoisted_5, _toDisplayString(_unref(value)), 1),\n _createElementVNode(\"div\", _hoisted_6, _toDisplayString(_unref(text)), 1)\n ])\n ])\n ]))\n}\n}\n\n})","import script from \"./StatCard.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./StatCard.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./StatCard.vue?vue&type=style&index=0&id=6cbb3351&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { id: \"user-stats\" }\n\nimport { computed, toRefs } from 'vue'\n\n import StatCard from '@/components/Common/StatCard.vue'\n import { IAppStatistics } from '@/types/application'\n import { getReadableFileSize } from '@/utils/files'\n\n interface Props {\n appStatistics: IAppStatistics\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'AppStatsCards',\n props: {\n appStatistics: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n appStatistics: IAppStatistics\n };\n\n \n\n const { appStatistics } = toRefs(props)\n const uploadDirSize = computed(() =>\n getReadableFileSize(appStatistics.value.uploads_dir_size, false)\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(StatCard, {\n icon: \"users\",\n value: _unref(appStatistics).users,\n text: _ctx.$t('admin.USER', _unref(appStatistics).users)\n }, null, 8, [\"value\", \"text\"]),\n _createVNode(StatCard, {\n icon: \"tags\",\n value: _unref(appStatistics).sports,\n text: _ctx.$t('workouts.SPORT', _unref(appStatistics).sports)\n }, null, 8, [\"value\", \"text\"]),\n _createVNode(StatCard, {\n icon: \"calendar\",\n value: _unref(appStatistics).workouts,\n text: _ctx.$t('workouts.WORKOUT', _unref(appStatistics).workouts)\n }, null, 8, [\"value\", \"text\"]),\n _createVNode(StatCard, {\n icon: \"folder-open\",\n value: _unref(uploadDirSize).size,\n text: _unref(uploadDirSize).suffix\n }, null, 8, [\"value\", \"text\"])\n ]))\n}\n}\n\n})","import script from \"./AppStatsCards.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AppStatsCards.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./AppStatsCards.vue?vue&type=style&index=0&id=61c5053e&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, unref as _unref, createVNode as _createVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-0dd66f89\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"admin-menu\",\n class: \"center-card\"\n}\nconst _hoisted_2 = { class: \"admin-menu description-list\" }\nconst _hoisted_3 = { class: \"application-config-details\" }\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_5 = { class: \"registration-status\" }\nconst _hoisted_6 = {\n key: 0,\n class: \"email-sending-status\"\n}\nconst _hoisted_7 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-exclamation-triangle\",\n \"aria-hidden\": \"true\"\n}, null, -1))\n\nimport { capitalize, toRefs, withDefaults } from 'vue'\n\n import AppStatsCards from '@/components/Administration/AppStatsCards.vue'\n import Card from '@/components/Common/Card.vue'\n import { IAppStatistics, TAppConfig } from '@/types/application'\n\n interface Props {\n appConfig: TAppConfig\n appStatistics?: IAppStatistics\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'AdminMenu',\n props: {\n appConfig: null,\n appStatistics: { default: () => ({} as IAppStatistics) }\n },\n setup(__props: any) {\n\nconst props = __props as { appConfig: TAppConfig, appStatistics: IAppStatistics };\n\n \n\n const { appConfig, appStatistics } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_link = _resolveComponent(\"router-link\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(Card, null, {\n title: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.ADMINISTRATION')), 1)\n ]),\n content: _withCtx(() => [\n _createVNode(AppStatsCards, { appStatistics: _unref(appStatistics) }, null, 8, [\"appStatistics\"]),\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"dl\", null, [\n _createElementVNode(\"dt\", null, [\n _createVNode(_component_router_link, { to: \"/admin/application\" }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.APPLICATION')), 1)\n ]),\n _: 1\n })\n ]),\n _createElementVNode(\"dd\", _hoisted_3, [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.UPDATE_APPLICATION_DESCRIPTION')), 1),\n _hoisted_4,\n _createElementVNode(\"span\", _hoisted_5, _toDisplayString(_ctx.$t(\n `admin.REGISTRATION_${\n _unref(appConfig).is_registration_enabled ? 'ENABLED' : 'DISABLED'\n }`\n )), 1),\n (!_unref(appConfig).is_email_sending_enabled)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_6, [\n _hoisted_7,\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('admin.EMAIL_SENDING_DISABLED')), 1)\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"dt\", null, [\n _createVNode(_component_router_link, { to: \"/admin/sports\" }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(capitalize(_ctx.$t('workouts.SPORT', 0))), 1)\n ]),\n _: 1\n })\n ]),\n _createElementVNode(\"dd\", null, _toDisplayString(_ctx.$t('admin.ENABLE_DISABLE_SPORTS')), 1),\n _createElementVNode(\"dt\", null, [\n _createVNode(_component_router_link, { to: \"/admin/users\" }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(capitalize(_ctx.$t('admin.USER', 0))), 1)\n ]),\n _: 1\n })\n ]),\n _createElementVNode(\"dd\", null, _toDisplayString(_ctx.$t('admin.ADMIN_RIGHTS_DELETE_USER_ACCOUNT')), 1)\n ])\n ])\n ]),\n _: 1\n })\n ]))\n}\n}\n\n})","import script from \"./AdminMenu.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AdminMenu.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./AdminMenu.vue?vue&type=style&index=0&id=0dd66f89&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-0dd66f89\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, withModifiers as _withModifiers, createElementVNode as _createElementVNode, unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, resolveComponent as _resolveComponent, createVNode as _createVNode, normalizeClass as _normalizeClass, createCommentVNode as _createCommentVNode, createBlock as _createBlock, withCtx as _withCtx, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-6d62af67\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"admin-sports\",\n class: \"admin-card\"\n}\nconst _hoisted_2 = { class: \"responsive-table\" }\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"th\", null, \"#\", -1))\nconst _hoisted_4 = { class: \"text-left\" }\nconst _hoisted_5 = { class: \"text-left sport-action\" }\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"th\", null, null, -1))\nconst _hoisted_7 = { class: \"text-center\" }\nconst _hoisted_8 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"cell-heading\" }, \"id\", -1))\nconst _hoisted_9 = { class: \"cell-heading\" }\nconst _hoisted_10 = { class: \"sport-label\" }\nconst _hoisted_11 = { class: \"cell-heading\" }\nconst _hoisted_12 = { class: \"text-center\" }\nconst _hoisted_13 = { class: \"cell-heading\" }\nconst _hoisted_14 = { class: \"sport-action\" }\nconst _hoisted_15 = { class: \"cell-heading\" }\nconst _hoisted_16 = { class: \"action-button\" }\nconst _hoisted_17 = [\"onClick\"]\nconst _hoisted_18 = {\n key: 0,\n class: \"has-workouts\"\n}\nconst _hoisted_19 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-warning\",\n \"aria-hidden\": \"true\"\n}, null, -1))\n\nimport { ComputedRef, computed } from 'vue'\n import { useI18n } from 'vue-i18n'\n\n import { ROOT_STORE, SPORTS_STORE } from '@/store/constants'\n import { ITranslatedSport } from '@/types/sports'\n import { useStore } from '@/use/useStore'\n import { translateSports } from '@/utils/sports'\n\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'AdminSports',\n setup(__props) {\n\n const { t } = useI18n()\n const store = useStore()\n\n const translatedSports: ComputedRef = computed(() =>\n translateSports(store.getters[SPORTS_STORE.GETTERS.SPORTS], t)\n )\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n\n function updateSportStatus(id: number, isActive: boolean) {\n store.dispatch(SPORTS_STORE.ACTIONS.UPDATE_SPORTS, {\n id,\n isActive,\n })\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _component_SportImage = _resolveComponent(\"SportImage\")!\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n const _component_Card = _resolveComponent(\"Card\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_Card, null, {\n title: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.SPORTS.TITLE')), 1)\n ]),\n content: _withCtx(() => [\n _createElementVNode(\"button\", {\n class: \"top-button\",\n onClick: _cache[0] || (_cache[0] = _withModifiers(($event: any) => (_ctx.$router.push('/admin')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('admin.BACK_TO_ADMIN')), 1),\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"table\", null, [\n _createElementVNode(\"thead\", null, [\n _createElementVNode(\"tr\", null, [\n _hoisted_3,\n _createElementVNode(\"th\", null, _toDisplayString(_ctx.$t('admin.SPORTS.TABLE.IMAGE')), 1),\n _createElementVNode(\"th\", _hoisted_4, _toDisplayString(_ctx.$t('admin.SPORTS.TABLE.LABEL')), 1),\n _createElementVNode(\"th\", null, _toDisplayString(_ctx.$t('admin.SPORTS.TABLE.ACTIVE')), 1),\n _createElementVNode(\"th\", _hoisted_5, _toDisplayString(_ctx.$t('admin.ACTION')), 1),\n _hoisted_6\n ])\n ]),\n _createElementVNode(\"tbody\", null, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(translatedSports), (sport) => {\n return (_openBlock(), _createElementBlock(\"tr\", {\n key: sport.id\n }, [\n _createElementVNode(\"td\", _hoisted_7, [\n _hoisted_8,\n _createTextVNode(\" \" + _toDisplayString(sport.id), 1)\n ]),\n _createElementVNode(\"td\", null, [\n _createElementVNode(\"span\", _hoisted_9, _toDisplayString(_ctx.$t('admin.SPORTS.TABLE.IMAGE')), 1),\n _createVNode(_component_SportImage, {\n title: sport.translatedLabel,\n \"sport-label\": sport.label,\n color: sport.color\n }, null, 8, [\"title\", \"sport-label\", \"color\"])\n ]),\n _createElementVNode(\"td\", _hoisted_10, [\n _createElementVNode(\"span\", _hoisted_11, _toDisplayString(_ctx.$t('admin.SPORTS.TABLE.LABEL')), 1),\n _createTextVNode(\" \" + _toDisplayString(sport.translatedLabel), 1)\n ]),\n _createElementVNode(\"td\", _hoisted_12, [\n _createElementVNode(\"span\", _hoisted_13, _toDisplayString(_ctx.$t('admin.SPORTS.TABLE.ACTIVE')), 1),\n _createElementVNode(\"i\", {\n class: _normalizeClass(`fa fa${sport.is_active ? '-check' : ''}`),\n \"aria-hidden\": \"true\"\n }, null, 2)\n ]),\n _createElementVNode(\"td\", _hoisted_14, [\n _createElementVNode(\"span\", _hoisted_15, _toDisplayString(_ctx.$t('admin.ACTION')), 1),\n _createElementVNode(\"div\", _hoisted_16, [\n _createElementVNode(\"button\", {\n class: _normalizeClass({ danger: sport.is_active }),\n onClick: ($event: any) => (updateSportStatus(sport.id, !sport.is_active))\n }, _toDisplayString(_ctx.$t(`buttons.${sport.is_active ? 'DIS' : 'EN'}ABLE`)), 11, _hoisted_17),\n (sport.has_workouts)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_18, [\n _hoisted_19,\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('admin.SPORTS.TABLE.HAS_WORKOUTS')), 1)\n ]))\n : _createCommentVNode(\"\", true)\n ])\n ])\n ]))\n }), 128))\n ])\n ]),\n (_unref(errorMessages))\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 0,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"button\", {\n onClick: _cache[1] || (_cache[1] = _withModifiers(($event: any) => (_ctx.$router.push('/admin')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('admin.BACK_TO_ADMIN')), 1)\n ])\n ]),\n _: 1\n })\n ]))\n}\n}\n\n})","import script from \"./AdminSports.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AdminSports.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./AdminSports.vue?vue&type=style&index=0&id=6d62af67&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-6d62af67\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { vModelText as _vModelText, withKeys as _withKeys, createElementVNode as _createElementVNode, withDirectives as _withDirectives, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, normalizeClass as _normalizeClass, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-627a8e91\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"users-filters\" }\nconst _hoisted_2 = { class: \"search-username\" }\nconst _hoisted_3 = [\"onKeyup\", \"placeholder\"]\n\nimport { ref } from 'vue'\n import { useRoute } from 'vue-router'\n\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UsersNameFilter',\n emits: ['filterOnUsername'],\n setup(__props, { emit }) {\n\n const route = useRoute()\n const username = ref(route.query.q ? route.query.q : '')\n\n \n function searchUsers() {\n if (username.value !== '') {\n emit('filterOnUsername', username)\n }\n }\n function resetFilter() {\n username.value = ''\n emit('filterOnUsername', username.value)\n }\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _withDirectives(_createElementVNode(\"input\", {\n id: \"username\",\n name: \"username\",\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((username).value = $event)),\n onKeyup: _withKeys(searchUsers, [\"enter\"]),\n placeholder: _ctx.$t('user.FILTER_ON_USERNAME')\n }, null, 40, _hoisted_3), [\n [\n _vModelText,\n username.value,\n void 0,\n { trim: true }\n ]\n ]),\n (username.value !== '')\n ? (_openBlock(), _createElementBlock(\"i\", {\n key: 0,\n class: \"fa fa-times\",\n \"aria-hidden\": \"true\",\n onClick: resetFilter\n }))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"i\", {\n class: _normalizeClass([\"fa fa-search\", { 'fa-disabled': username.value === '' }]),\n \"aria-hidden\": \"true\",\n onClick: searchUsers\n }, null, 2)\n ]))\n}\n}\n\n})","import script from \"./UsersNameFilter.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./UsersNameFilter.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./UsersNameFilter.vue?vue&type=style&index=0&id=627a8e91&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-627a8e91\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, withModifiers as _withModifiers, createElementVNode as _createElementVNode, createVNode as _createVNode, unref as _unref, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, renderList as _renderList, Fragment as _Fragment, resolveComponent as _resolveComponent, withCtx as _withCtx, normalizeClass as _normalizeClass, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-dc12ff78\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"admin-users\",\n class: \"admin-card\"\n}\nconst _hoisted_2 = {\n key: 0,\n class: \"no-users\"\n}\nconst _hoisted_3 = {\n key: 1,\n class: \"responsive-table\"\n}\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"th\", null, \"#\", -1))\nconst _hoisted_5 = { class: \"left-text\" }\nconst _hoisted_6 = { class: \"left-text\" }\nconst _hoisted_7 = { class: \"left-text\" }\nconst _hoisted_8 = { class: \"cell-heading\" }\nconst _hoisted_9 = { class: \"cell-heading\" }\nconst _hoisted_10 = { class: \"cell-heading\" }\nconst _hoisted_11 = { class: \"cell-heading\" }\nconst _hoisted_12 = { class: \"text-center\" }\nconst _hoisted_13 = { class: \"cell-heading\" }\nconst _hoisted_14 = { class: \"text-center\" }\nconst _hoisted_15 = { class: \"cell-heading\" }\nconst _hoisted_16 = { class: \"text-center\" }\nconst _hoisted_17 = { class: \"cell-heading\" }\nconst _hoisted_18 = { class: \"text-center\" }\nconst _hoisted_19 = { class: \"cell-heading\" }\nconst _hoisted_20 = [\"disabled\", \"onClick\"]\n\nimport {\n ComputedRef,\n Ref,\n computed,\n reactive,\n watch,\n capitalize,\n onBeforeMount,\n onUnmounted,\n } from 'vue'\n import { LocationQuery, useRoute, useRouter } from 'vue-router'\n\n import FilterSelects from '@/components/Common/FilterSelects.vue'\n import Pagination from '@/components/Common/Pagination.vue'\n import UserPicture from '@/components/User/UserPicture.vue'\n import UsersNameFilter from '@/components/Users/UsersNameFilter.vue'\n import { AUTH_USER_STORE, ROOT_STORE, USERS_STORE } from '@/store/constants'\n import { IPagination, TPaginationPayload } from '@/types/api'\n import { IAuthUserProfile, IUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { getQuery, sortList } from '@/utils/api'\n import { formatDate } from '@/utils/dates'\n\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'AdminUsers',\n setup(__props) {\n\n const store = useStore()\n const route = useRoute()\n const router = useRouter()\n\n const orderByList: string[] = [\n 'is_active',\n 'admin',\n 'created_at',\n 'username',\n 'workouts_count',\n ]\n const defaultOrderBy = 'created_at'\n let query: TPaginationPayload = reactive(\n getQuery(route.query, orderByList, defaultOrderBy)\n )\n const authUser: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.AUTH_USER_PROFILE]\n )\n const users: ComputedRef = computed(\n () => store.getters[USERS_STORE.GETTERS.USERS]\n )\n const pagination: ComputedRef = computed(\n () => store.getters[USERS_STORE.GETTERS.USERS_PAGINATION]\n )\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n\n onBeforeMount(() => loadUsers(query))\n\n function loadUsers(queryParams: TPaginationPayload) {\n store.dispatch(USERS_STORE.ACTIONS.GET_USERS, queryParams)\n }\n function searchUsers(username: Ref) {\n reloadUsers('q', username.value)\n }\n\n function updateUser(username: string, admin: boolean) {\n store.dispatch(USERS_STORE.ACTIONS.UPDATE_USER, {\n username,\n admin,\n })\n }\n function reloadUsers(queryParam: string, queryValue: string) {\n query[queryParam] = queryValue\n if (queryParam === 'per_page') {\n query.page = 1\n }\n router.push({ path: '/admin/users', query })\n }\n\n onUnmounted(() => {\n store.dispatch(USERS_STORE.ACTIONS.EMPTY_USERS)\n })\n\n watch(\n () => route.query,\n (newQuery: LocationQuery) => {\n query = getQuery(newQuery, orderByList, defaultOrderBy, { query })\n loadUsers(query)\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n const _component_Card = _resolveComponent(\"Card\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_Card, null, {\n title: _withCtx(() => [\n _createTextVNode(_toDisplayString(capitalize(_ctx.$t('admin.USER', 0))), 1)\n ]),\n content: _withCtx(() => [\n _createElementVNode(\"button\", {\n class: \"top-button\",\n onClick: _cache[0] || (_cache[0] = _withModifiers(($event: any) => (_ctx.$router.push('/admin')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('admin.BACK_TO_ADMIN')), 1),\n _createVNode(UsersNameFilter, { onFilterOnUsername: searchUsers }),\n _createVNode(FilterSelects, {\n sort: _unref(sortList),\n order_by: orderByList,\n query: _unref(query),\n message: \"admin.USERS.SELECTS.ORDER_BY\",\n onUpdateSelect: reloadUsers\n }, null, 8, [\"sort\", \"query\"]),\n (_unref(users).length === 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, _toDisplayString(_ctx.$t('user.NO_USERS_FOUND')), 1))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n _createElementVNode(\"table\", null, [\n _createElementVNode(\"thead\", null, [\n _createElementVNode(\"tr\", null, [\n _hoisted_4,\n _createElementVNode(\"th\", _hoisted_5, _toDisplayString(_ctx.$t('user.USERNAME')), 1),\n _createElementVNode(\"th\", _hoisted_6, _toDisplayString(_ctx.$t('user.EMAIL')), 1),\n _createElementVNode(\"th\", _hoisted_7, _toDisplayString(_ctx.$t('user.PROFILE.REGISTRATION_DATE')), 1),\n _createElementVNode(\"th\", null, _toDisplayString(capitalize(_ctx.$t('workouts.WORKOUT', 0))), 1),\n _createElementVNode(\"th\", null, _toDisplayString(_ctx.$t('admin.ACTIVE')), 1),\n _createElementVNode(\"th\", null, _toDisplayString(_ctx.$t('user.ADMIN')), 1),\n _createElementVNode(\"th\", null, _toDisplayString(_ctx.$t('admin.ACTION')), 1)\n ])\n ]),\n _createElementVNode(\"tbody\", null, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(users), (user) => {\n return (_openBlock(), _createElementBlock(\"tr\", {\n key: user.username\n }, [\n _createElementVNode(\"td\", null, [\n _createElementVNode(\"span\", _hoisted_8, _toDisplayString(_ctx.$t('user.PROFILE.PICTURE')), 1),\n _createVNode(UserPicture, { user: user }, null, 8, [\"user\"])\n ]),\n _createElementVNode(\"td\", null, [\n _createElementVNode(\"span\", _hoisted_9, _toDisplayString(_ctx.$t('user.USERNAME')), 1),\n _createVNode(_component_router_link, {\n to: `/admin/users/${user.username}`\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(user.username), 1)\n ]),\n _: 2\n }, 1032, [\"to\"])\n ]),\n _createElementVNode(\"td\", null, [\n _createElementVNode(\"span\", _hoisted_10, _toDisplayString(_ctx.$t('user.EMAIL')), 1),\n _createTextVNode(\" \" + _toDisplayString(user.email), 1)\n ]),\n _createElementVNode(\"td\", null, [\n _createElementVNode(\"span\", _hoisted_11, _toDisplayString(_ctx.$t('user.PROFILE.REGISTRATION_DATE')), 1),\n _createTextVNode(\" \" + _toDisplayString(_unref(formatDate)(\n user.created_at,\n _unref(authUser).timezone,\n _unref(authUser).date_format\n )), 1)\n ]),\n _createElementVNode(\"td\", _hoisted_12, [\n _createElementVNode(\"span\", _hoisted_13, _toDisplayString(capitalize(_ctx.$t('workouts.WORKOUT', 0))), 1),\n _createTextVNode(\" \" + _toDisplayString(user.nb_workouts), 1)\n ]),\n _createElementVNode(\"td\", _hoisted_14, [\n _createElementVNode(\"span\", _hoisted_15, _toDisplayString(_ctx.$t('admin.ACTIVE')), 1),\n _createElementVNode(\"i\", {\n class: _normalizeClass(`fa fa${user.is_active ? '-check' : ''}-square-o`),\n \"aria-hidden\": \"true\"\n }, null, 2)\n ]),\n _createElementVNode(\"td\", _hoisted_16, [\n _createElementVNode(\"span\", _hoisted_17, _toDisplayString(_ctx.$t('user.ADMIN')), 1),\n _createElementVNode(\"i\", {\n class: _normalizeClass(`fa fa${user.admin ? '-check' : ''}-square-o`),\n \"aria-hidden\": \"true\"\n }, null, 2)\n ]),\n _createElementVNode(\"td\", _hoisted_18, [\n _createElementVNode(\"span\", _hoisted_19, _toDisplayString(_ctx.$t('admin.ACTION')), 1),\n _createElementVNode(\"button\", {\n class: _normalizeClass({ danger: user.admin }),\n disabled: user.username === _unref(authUser).username,\n onClick: ($event: any) => (updateUser(user.username, !user.admin))\n }, _toDisplayString(_ctx.$t(\n `admin.USERS.TABLE.${\n user.admin ? 'REMOVE' : 'ADD'\n }_ADMIN_RIGHTS`\n )), 11, _hoisted_20)\n ])\n ]))\n }), 128))\n ])\n ]),\n (_unref(pagination).page)\n ? (_openBlock(), _createBlock(Pagination, {\n key: 0,\n path: \"/admin/users\",\n pagination: _unref(pagination),\n query: _unref(query)\n }, null, 8, [\"pagination\", \"query\"]))\n : _createCommentVNode(\"\", true),\n (_unref(errorMessages))\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 1,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"button\", {\n onClick: _cache[1] || (_cache[1] = _withModifiers(($event: any) => (_ctx.$router.push('/admin')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('admin.BACK_TO_ADMIN')), 1)\n ]))\n ]),\n _: 1\n })\n ]))\n}\n}\n\n})","import script from \"./AdminUsers.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AdminUsers.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./AdminUsers.vue?vue&type=style&index=0&id=dc12ff78&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-dc12ff78\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString } from \"vue\"\n\nconst _hoisted_1 = { class: \"profile-tabs custom-checkboxes-group\" }\nconst _hoisted_2 = { class: \"profile-tabs-checkboxes custom-checkboxes\" }\nconst _hoisted_3 = [\"id\", \"name\", \"checked\", \"disabled\", \"onInput\"]\n\nimport { toRefs, withDefaults } from 'vue'\n\n interface Props {\n tabs: string[]\n selectedTab: string\n edition: boolean\n disabled?: boolean\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserProfileTabs',\n props: {\n tabs: null,\n selectedTab: null,\n edition: { type: Boolean },\n disabled: { type: Boolean, default: false }\n },\n setup(__props: any) {\n\nconst props = __props as { tabs: string[], selectedTab: string, edition: boolean, disabled: boolean };\n\n \n\n const { tabs, selectedTab, disabled } = toRefs(props)\n\n function getPath(tab: string) {\n switch (tab) {\n case 'ACCOUNT':\n case 'PICTURE':\n return `/profile/edit/${tab.toLocaleLowerCase()}`\n case 'APPS':\n case 'PREFERENCES':\n case 'SPORTS':\n return `/profile${\n props.edition ? '/edit' : ''\n }/${tab.toLocaleLowerCase()}`\n default:\n case 'PROFILE':\n return `/profile${props.edition ? '/edit' : ''}`\n }\n }\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(tabs), (tab) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"profile-tab custom-checkbox\",\n key: tab\n }, [\n _createElementVNode(\"label\", null, [\n _createElementVNode(\"input\", {\n type: \"radio\",\n id: tab,\n name: tab,\n checked: _unref(selectedTab).split('/')[0] === tab,\n disabled: _unref(disabled),\n onInput: ($event: any) => (_ctx.$router.push(getPath(tab)))\n }, null, 40, _hoisted_3),\n _createElementVNode(\"span\", null, _toDisplayString(_ctx.$t(`user.PROFILE.TABS.${tab}`)), 1)\n ])\n ]))\n }), 128))\n ])\n ]))\n}\n}\n\n})","import script from \"./UserProfileTabs.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserProfileTabs.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserProfileTabs.vue?vue&type=style&index=0&id=01b05f01&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, resolveComponent as _resolveComponent, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-9729cba4\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"user-profile\" }\nconst _hoisted_2 = { class: \"box\" }\n\nimport { toRefs } from 'vue'\n\n import UserHeader from '@/components/User/ProfileDisplay/UserHeader.vue'\n import UserProfileTabs from '@/components/User/UserProfileTabs.vue'\n import { IUserProfile } from '@/types/user'\n\n interface Props {\n user: IUserProfile\n tab: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'index',\n props: {\n user: null,\n tab: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IUserProfile\n tab: string\n };\n\n \n\n const { user, tab } = toRefs(props)\n const tabs = ['PROFILE', 'PREFERENCES', 'SPORTS', 'APPS']\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_view = _resolveComponent(\"router-view\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(UserHeader, { user: _unref(user) }, null, 8, [\"user\"]),\n _createElementVNode(\"div\", _hoisted_2, [\n _createVNode(UserProfileTabs, {\n tabs: tabs,\n selectedTab: _unref(tab),\n edition: false\n }, null, 8, [\"selectedTab\"]),\n _createVNode(_component_router_view, { user: _unref(user) }, null, 8, [\"user\"])\n ])\n ]))\n}\n}\n\n})","import script from \"./index.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./index.vue?vue&type=style&index=0&id=9729cba4&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-9729cba4\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, unref as _unref, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n id: \"user-preferences\",\n class: \"description-list\"\n}\nconst _hoisted_2 = { class: \"profile-buttons\" }\n\nimport { computed, ComputedRef } from 'vue'\n\n import { ROOT_STORE } from '@/store/constants'\n import { IAuthUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { getDateFormat } from '@/utils/dates'\n import { languageLabels } from '@/utils/locales'\n\n interface Props {\n user: IAuthUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserPreferences',\n props: {\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IAuthUserProfile\n };\n\n \n\n const store = useStore()\n\n const appLanguage: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.LANGUAGE]\n )\n const userLanguage = computed(() =>\n props.user.language\n ? languageLabels[props.user.language]\n : languageLabels['en']\n )\n const fistDayOfWeek = computed(() => (props.user.weekm ? 'MONDAY' : 'SUNDAY'))\n const timezone = computed(() =>\n props.user.timezone ? props.user.timezone : 'Europe/Paris'\n )\n const date_format = computed(() =>\n props.user.date_format ? props.user.date_format : 'MM/dd/yyyy'\n )\n const display_ascent = computed(() =>\n props.user.display_ascent ? 'DISPLAYED' : 'HIDDEN'\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"dl\", null, [\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.LANGUAGE')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_unref(userLanguage)), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.TIMEZONE')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_unref(timezone)), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.DATE_FORMAT')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_unref(getDateFormat)(_unref(date_format), _unref(appLanguage))), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.FIRST_DAY_OF_WEEK')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_ctx.$t(`user.PROFILE.${_unref(fistDayOfWeek)}`)), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.UNITS.LABEL')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_ctx.$t(\n `user.PROFILE.UNITS.${__props.user.imperial_units ? 'IMPERIAL' : 'METRIC'}`\n )), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.ASCENT_DATA')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_ctx.$t(`common.${_unref(display_ascent)}`)), 1)\n ]),\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"button\", {\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$router.push('/profile/edit/preferences')))\n }, _toDisplayString(_ctx.$t('user.PROFILE.EDIT_PREFERENCES')), 1),\n _createElementVNode(\"button\", {\n onClick: _cache[1] || (_cache[1] = ($event: any) => (_ctx.$router.push('/')))\n }, _toDisplayString(_ctx.$t('common.HOME')), 1)\n ])\n ]))\n}\n}\n\n})","import script from \"./UserPreferences.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserPreferences.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, createVNode as _createVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n id: \"user-profile-edition\",\n class: \"center-card\"\n}\n\nimport { computed, toRefs } from 'vue'\n\n import UserProfileTabs from '@/components/User/UserProfileTabs.vue'\n import { AUTH_USER_STORE } from '@/store/constants'\n import { IUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n\n interface Props {\n user: IUserProfile\n tab: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'index',\n props: {\n user: null,\n tab: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IUserProfile\n tab: string\n };\n\n \n\n const store = useStore()\n\n const { user, tab } = toRefs(props)\n const tabs = ['PROFILE', 'ACCOUNT', 'PICTURE', 'PREFERENCES', 'SPORTS']\n const loading = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.USER_LOADING]\n )\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_view = _resolveComponent(\"router-view\")!\n const _component_Card = _resolveComponent(\"Card\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_Card, null, {\n title: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t(`user.PROFILE.${_unref(tab)}_EDITION`)), 1)\n ]),\n content: _withCtx(() => [\n _createVNode(UserProfileTabs, {\n tabs: tabs,\n selectedTab: _unref(tab),\n edition: true,\n disabled: _unref(loading)\n }, null, 8, [\"selectedTab\", \"disabled\"]),\n _createVNode(_component_router_view, { user: _unref(user) }, null, 8, [\"user\"])\n ]),\n _: 1\n })\n ]))\n}\n}\n\n})","import script from \"./index.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { resolveComponent as _resolveComponent, unref as _unref, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, createElementBlock as _createElementBlock, vModelText as _vModelText, createElementVNode as _createElementVNode, withDirectives as _withDirectives, createTextVNode as _createTextVNode, createVNode as _createVNode, withModifiers as _withModifiers, normalizeClass as _normalizeClass, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-37b8c4c8\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"user-infos-edition\" }\nconst _hoisted_2 = { class: \"profile-form form-box\" }\nconst _hoisted_3 = {\n key: 1,\n class: \"info-box success-message\"\n}\nconst _hoisted_4 = [\"onSubmit\"]\nconst _hoisted_5 = {\n class: \"form-items\",\n for: \"email\"\n}\nconst _hoisted_6 = [\"disabled\"]\nconst _hoisted_7 = {\n class: \"form-items\",\n for: \"password-field\"\n}\nconst _hoisted_8 = {\n class: \"form-items\",\n for: \"new-password-field\"\n}\nconst _hoisted_9 = { class: \"form-buttons\" }\nconst _hoisted_10 = {\n class: \"confirm\",\n type: \"submit\"\n}\n\nimport {\n ComputedRef,\n Ref,\n computed,\n reactive,\n ref,\n toRefs,\n onMounted,\n watch,\n onUnmounted,\n } from 'vue'\n\n import PasswordInput from '@/components/Common/PasswordInput.vue'\n import { AUTH_USER_STORE, ROOT_STORE } from '@/store/constants'\n import { TAppConfig } from '@/types/application'\n import { IUserProfile, IUserAccountPayload } from '@/types/user'\n import { useStore } from '@/use/useStore'\n\n interface Props {\n user: IUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserAccountEdition',\n props: {\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IUserProfile\n };\n\n \n const { user } = toRefs(props)\n\n const store = useStore()\n const userForm: IUserAccountPayload = reactive({\n email: '',\n password: '',\n new_password: '',\n })\n const loading = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.USER_LOADING]\n )\n const appConfig: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.APP_CONFIG]\n )\n const isSuccess: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.IS_SUCCESS]\n )\n const emailUpdate = ref(false)\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n const formErrors = ref(false)\n const displayModal: Ref = ref(false)\n\n onMounted(() => {\n if (props.user) {\n updateUserForm(props.user)\n }\n })\n\n function invalidateForm() {\n formErrors.value = true\n }\n function updateUserForm(user: IUserProfile) {\n userForm.email = user.email\n }\n function updatePassword(password: string) {\n userForm.password = password\n }\n function updateNewPassword(new_password: string) {\n userForm.new_password = new_password\n }\n function updateProfile() {\n const payload: IUserAccountPayload = {\n email: userForm.email,\n password: userForm.password,\n }\n if (userForm.new_password) {\n payload.new_password = userForm.new_password\n }\n emailUpdate.value = userForm.email !== user.value.email\n store.dispatch(AUTH_USER_STORE.ACTIONS.UPDATE_USER_ACCOUNT, payload)\n }\n function updateDisplayModal(value: boolean) {\n displayModal.value = value\n }\n function deleteAccount(username: string) {\n store.dispatch(AUTH_USER_STORE.ACTIONS.DELETE_ACCOUNT, { username })\n }\n\n onUnmounted(() => {\n store.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_IS_SUCCESS, false)\n store.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n })\n\n watch(\n () => isSuccess.value,\n async (isSuccessValue) => {\n if (isSuccessValue) {\n updatePassword('')\n updateNewPassword('')\n updateUserForm(user.value)\n formErrors.value = false\n }\n }\n )\n watch(\n () => user.value.email,\n async () => {\n updateUserForm(user.value)\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n const _component_Modal = _resolveComponent(\"Modal\")!\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (displayModal.value)\n ? (_openBlock(), _createBlock(_component_Modal, {\n key: 0,\n title: _ctx.$t('common.CONFIRMATION'),\n message: _ctx.$t('user.CONFIRM_ACCOUNT_DELETION'),\n onConfirmAction: _cache[0] || (_cache[0] = ($event: any) => (deleteAccount(_unref(user).username))),\n onCancelAction: _cache[1] || (_cache[1] = ($event: any) => (updateDisplayModal(false)))\n }, null, 8, [\"title\", \"message\"]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_2, [\n (_unref(errorMessages))\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 0,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true),\n (_unref(isSuccess))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, _toDisplayString(_ctx.$t(\n `user.PROFILE.SUCCESSFUL_${\n emailUpdate.value && _unref(appConfig).is_email_sending_enabled ? 'EMAIL_' : ''\n }UPDATE`\n )), 1))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"form\", {\n class: _normalizeClass({ errors: formErrors.value }),\n onSubmit: _withModifiers(updateProfile, [\"prevent\"])\n }, [\n _createElementVNode(\"label\", _hoisted_5, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.EMAIL')) + \"* \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"email\",\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((userForm.email) = $event)),\n disabled: _unref(loading),\n required: true,\n onInvalid: invalidateForm\n }, null, 40, _hoisted_6), [\n [_vModelText, userForm.email]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_7, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.CURRENT_PASSWORD')) + \"* \", 1),\n _createVNode(PasswordInput, {\n id: \"password-field\",\n disabled: _unref(loading),\n password: userForm.password,\n required: true,\n onUpdatePassword: updatePassword,\n onPasswordError: invalidateForm\n }, null, 8, [\"disabled\", \"password\"])\n ]),\n _createElementVNode(\"label\", _hoisted_8, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.NEW_PASSWORD')) + \" \", 1),\n _createVNode(PasswordInput, {\n id: \"new-password-field\",\n disabled: _unref(loading),\n checkStrength: true,\n password: userForm.new_password,\n isSuccess: false,\n onUpdatePassword: updateNewPassword,\n onPasswordError: invalidateForm\n }, null, 8, [\"disabled\", \"password\"])\n ]),\n _createElementVNode(\"div\", _hoisted_9, [\n _createElementVNode(\"button\", _hoisted_10, _toDisplayString(_ctx.$t('buttons.SUBMIT')), 1),\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _cache[3] || (_cache[3] = _withModifiers(($event: any) => (_ctx.$router.push('/profile')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('buttons.CANCEL')), 1),\n _createElementVNode(\"button\", {\n class: \"danger\",\n onClick: _cache[4] || (_cache[4] = _withModifiers(($event: any) => (updateDisplayModal(true)), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('buttons.DELETE_MY_ACCOUNT')), 1)\n ])\n ], 42, _hoisted_4)\n ])\n ]))\n}\n}\n\n})","import script from \"./UserAccountEdition.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserAccountEdition.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserAccountEdition.vue?vue&type=style&index=0&id=37b8c4c8&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-37b8c4c8\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, vModelText as _vModelText, withDirectives as _withDirectives, createVNode as _createVNode, withModifiers as _withModifiers, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-5e5a4552\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"user-infos-edition\" }\nconst _hoisted_2 = { class: \"profile-form form-box\" }\nconst _hoisted_3 = [\"onSubmit\"]\nconst _hoisted_4 = {\n class: \"form-items\",\n for: \"registrationDate\"\n}\nconst _hoisted_5 = [\"value\"]\nconst _hoisted_6 = {\n class: \"form-items\",\n for: \"first_name\"\n}\nconst _hoisted_7 = [\"disabled\"]\nconst _hoisted_8 = {\n class: \"form-items\",\n for: \"last_name\"\n}\nconst _hoisted_9 = {\n class: \"form-items\",\n for: \"birth_date\"\n}\nconst _hoisted_10 = [\"disabled\"]\nconst _hoisted_11 = {\n class: \"form-items\",\n for: \"location\"\n}\nconst _hoisted_12 = [\"disabled\"]\nconst _hoisted_13 = { class: \"form-items\" }\nconst _hoisted_14 = { class: \"form-buttons\" }\nconst _hoisted_15 = {\n class: \"confirm\",\n type: \"submit\"\n}\n\nimport { format } from 'date-fns'\n import { ComputedRef, computed, reactive, onMounted, onUnmounted } from 'vue'\n\n import { AUTH_USER_STORE, ROOT_STORE } from '@/store/constants'\n import { IUserProfile, IUserPayload, IAuthUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { formatDate } from '@/utils/dates'\n\n interface Props {\n user: IAuthUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserInfosEdition',\n props: {\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IAuthUserProfile\n };\n\n \n\n const store = useStore()\n\n const userForm: IUserPayload = reactive({\n first_name: '',\n last_name: '',\n birth_date: '',\n location: '',\n bio: '',\n })\n const registrationDate = computed(() =>\n props.user.created_at\n ? formatDate(\n props.user.created_at,\n props.user.timezone,\n props.user.date_format\n )\n : ''\n )\n const loading = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.USER_LOADING]\n )\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n\n onMounted(() => {\n if (props.user) {\n updateUserForm(props.user)\n }\n })\n\n function updateUserForm(user: IUserProfile) {\n userForm.first_name = user.first_name ? user.first_name : ''\n userForm.last_name = user.last_name ? user.last_name : ''\n userForm.birth_date = user.birth_date\n ? format(new Date(user.birth_date), 'yyyy-MM-dd')\n : ''\n userForm.location = user.location ? user.location : ''\n userForm.bio = user.bio ? user.bio : ''\n }\n function updateBio(value: string) {\n userForm.bio = value\n }\n function updateProfile() {\n store.dispatch(AUTH_USER_STORE.ACTIONS.UPDATE_USER_PROFILE, userForm)\n }\n\n onUnmounted(() => {\n store.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n })\n\nreturn (_ctx: any,_cache: any) => {\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n const _component_CustomTextArea = _resolveComponent(\"CustomTextArea\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n (_unref(errorMessages))\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 0,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"form\", {\n onSubmit: _withModifiers(updateProfile, [\"prevent\"])\n }, [\n _createElementVNode(\"label\", _hoisted_4, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PROFILE.REGISTRATION_DATE')) + \" \", 1),\n _createElementVNode(\"input\", {\n id: \"registrationDate\",\n value: _unref(registrationDate),\n disabled: \"\"\n }, null, 8, _hoisted_5)\n ]),\n _createElementVNode(\"label\", _hoisted_6, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PROFILE.FIRST_NAME')) + \" \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"first_name\",\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((userForm.first_name) = $event)),\n disabled: _unref(loading)\n }, null, 8, _hoisted_7), [\n [_vModelText, userForm.first_name]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_8, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PROFILE.LAST_NAME')) + \" \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"last_name\",\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((userForm.last_name) = $event))\n }, null, 512), [\n [_vModelText, userForm.last_name]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_9, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PROFILE.BIRTH_DATE')) + \" \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"birth_date\",\n type: \"date\",\n class: \"birth-date\",\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((userForm.birth_date) = $event)),\n disabled: _unref(loading)\n }, null, 8, _hoisted_10), [\n [_vModelText, userForm.birth_date]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_11, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PROFILE.LOCATION')) + \" \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"location\",\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = ($event: any) => ((userForm.location) = $event)),\n disabled: _unref(loading)\n }, null, 8, _hoisted_12), [\n [_vModelText, userForm.location]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_13, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PROFILE.BIO')) + \" \", 1),\n _createVNode(_component_CustomTextArea, {\n name: \"bio\",\n charLimit: 200,\n input: userForm.bio,\n disabled: _unref(loading),\n onUpdateValue: updateBio\n }, null, 8, [\"input\", \"disabled\"])\n ]),\n _createElementVNode(\"div\", _hoisted_14, [\n _createElementVNode(\"button\", _hoisted_15, _toDisplayString(_ctx.$t('buttons.SUBMIT')), 1),\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _cache[4] || (_cache[4] = _withModifiers(($event: any) => (_ctx.$router.push('/profile')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('buttons.CANCEL')), 1)\n ])\n ], 40, _hoisted_3)\n ])\n ]))\n}\n}\n\n})","import script from \"./UserInfosEdition.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserInfosEdition.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserInfosEdition.vue?vue&type=style&index=0&id=5e5a4552&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-5e5a4552\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createVNode as _createVNode, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, createElementBlock as _createElementBlock, withModifiers as _withModifiers, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-687e9604\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"user-picture-edition\" }\nconst _hoisted_2 = { class: \"user-picture-form\" }\nconst _hoisted_3 = [\"onSubmit\"]\nconst _hoisted_4 = { class: \"picture-help\" }\nconst _hoisted_5 = { class: \"info-box\" }\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-info-circle\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_7 = { class: \"picture-buttons\" }\nconst _hoisted_8 = [\"disabled\"]\n\nimport { ComputedRef, Ref, computed, ref, toRefs, onUnmounted } from 'vue'\n\n import UserPicture from '@/components/User/UserPicture.vue'\n import { AUTH_USER_STORE, ROOT_STORE } from '@/store/constants'\n import { TAppConfig } from '@/types/application'\n import { IUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { getReadableFileSize } from '@/utils/files'\n\n interface Props {\n user: IUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserPictureEdition',\n props: {\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IUserProfile\n };\n\n \n\n const store = useStore()\n\n const { user } = toRefs(props)\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n const appConfig: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.APP_CONFIG]\n )\n const fileSizeLimit = appConfig.value.max_single_file_size\n ? getReadableFileSize(appConfig.value.max_single_file_size)\n : ''\n const pictureFile: Ref = ref(null)\n\n function deleteUserPicture() {\n store.dispatch(AUTH_USER_STORE.ACTIONS.DELETE_PICTURE)\n }\n function updatePictureFile(event: Event & { target: HTMLInputElement }) {\n if (event.target.files) {\n pictureFile.value = event.target.files[0]\n }\n }\n function updateUserPicture() {\n if (pictureFile.value) {\n store.dispatch(AUTH_USER_STORE.ACTIONS.UPDATE_USER_PICTURE, {\n picture: pictureFile.value,\n })\n }\n }\n\n onUnmounted(() => {\n store.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n })\n\nreturn (_ctx: any,_cache: any) => {\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n (_unref(errorMessages))\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 0,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true),\n _createVNode(UserPicture, { user: _unref(user) }, null, 8, [\"user\"]),\n _createElementVNode(\"form\", {\n onSubmit: _withModifiers(updateUserPicture, [\"prevent\"])\n }, [\n _createElementVNode(\"input\", {\n type: \"file\",\n name: \"picture\",\n accept: \".png,.jpg,.gif\",\n onInput: updatePictureFile\n }, null, 32),\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"span\", _hoisted_5, [\n _hoisted_6,\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.MAX_SIZE')) + \": \" + _toDisplayString(_unref(fileSizeLimit)), 1)\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_7, [\n _createElementVNode(\"button\", {\n type: \"submit\",\n disabled: !pictureFile.value\n }, _toDisplayString(_ctx.$t('user.PROFILE.PICTURE_UPDATE')), 9, _hoisted_8),\n (_unref(user).picture)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 0,\n class: \"danger\",\n onClick: deleteUserPicture\n }, _toDisplayString(_ctx.$t('user.PROFILE.PICTURE_REMOVE')), 1))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$router.push('/profile')))\n }, _toDisplayString(_ctx.$t('user.PROFILE.BACK_TO_PROFILE')), 1)\n ])\n ], 40, _hoisted_3)\n ])\n ]))\n}\n}\n\n})","import script from \"./UserPictureEdition.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserPictureEdition.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserPictureEdition.vue?vue&type=style&index=0&id=687e9604&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-687e9604\"]])\n\nexport default __exports__","export const timeZones = [\n 'Africa/Abidjan',\n 'Africa/Accra',\n 'Africa/Algiers',\n 'Africa/Bissau',\n 'Africa/Cairo',\n 'Africa/Casablanca',\n 'Africa/Ceuta',\n 'Africa/El_Aaiun',\n 'Africa/Johannesburg',\n 'Africa/Juba',\n 'Africa/Khartoum',\n 'Africa/Lagos',\n 'Africa/Maputo',\n 'Africa/Monrovia',\n 'Africa/Nairobi',\n 'Africa/Ndjamena',\n 'Africa/Sao_Tome',\n 'Africa/Tripoli',\n 'Africa/Tunis',\n 'Africa/Windhoek',\n 'America/Adak',\n 'America/Anchorage',\n 'America/Araguaina',\n 'America/Argentina/Buenos_Aires',\n 'America/Argentina/Catamarca',\n 'America/Argentina/Cordoba',\n 'America/Argentina/Jujuy',\n 'America/Argentina/La_Rioja',\n 'America/Argentina/Mendoza',\n 'America/Argentina/Rio_Gallegos',\n 'America/Argentina/Salta',\n 'America/Argentina/San_Juan',\n 'America/Argentina/San_Luis',\n 'America/Argentina/Tucuman',\n 'America/Argentina/Ushuaia',\n 'America/Asuncion',\n 'America/Atikokan',\n 'America/Bahia',\n 'America/Bahia_Banderas',\n 'America/Barbados',\n 'America/Belem',\n 'America/Belize',\n 'America/Blanc-Sablon',\n 'America/Boa_Vista',\n 'America/Bogota',\n 'America/Boise',\n 'America/Cambridge_Bay',\n 'America/Campo_Grande',\n 'America/Cancun',\n 'America/Caracas',\n 'America/Cayenne',\n 'America/Chicago',\n 'America/Chihuahua',\n 'America/Costa_Rica',\n 'America/Creston',\n 'America/Cuiaba',\n 'America/Curacao',\n 'America/Danmarkshavn',\n 'America/Dawson',\n 'America/Dawson_Creek',\n 'America/Denver',\n 'America/Detroit',\n 'America/Edmonton',\n 'America/Eirunepe',\n 'America/El_Salvador',\n 'America/Fortaleza',\n 'America/Fort_Nelson',\n 'America/Glace_Bay',\n 'America/Godthab',\n 'America/Goose_Bay',\n 'America/Grand_Turk',\n 'America/Guatemala',\n 'America/Guayaquil',\n 'America/Guyana',\n 'America/Halifax',\n 'America/Havana',\n 'America/Hermosillo',\n 'America/Indiana/Indianapolis',\n 'America/Indiana/Knox',\n 'America/Indiana/Marengo',\n 'America/Indiana/Petersburg',\n 'America/Indiana/Tell_City',\n 'America/Indiana/Vevay',\n 'America/Indiana/Vincennes',\n 'America/Indiana/Winamac',\n 'America/Inuvik',\n 'America/Iqaluit',\n 'America/Jamaica',\n 'America/Juneau',\n 'America/Kentucky/Louisville',\n 'America/Kentucky/Monticello',\n 'America/La_Paz',\n 'America/Lima',\n 'America/Los_Angeles',\n 'America/Maceio',\n 'America/Managua',\n 'America/Manaus',\n 'America/Martinique',\n 'America/Matamoros',\n 'America/Mazatlan',\n 'America/Menominee',\n 'America/Merida',\n 'America/Metlakatla',\n 'America/Mexico_City',\n 'America/Miquelon',\n 'America/Moncton',\n 'America/Monterrey',\n 'America/Montevideo',\n 'America/Nassau',\n 'America/New_York',\n 'America/Nipigon',\n 'America/Nome',\n 'America/Noronha',\n 'America/North_Dakota/Beulah',\n 'America/North_Dakota/Center',\n 'America/North_Dakota/New_Salem',\n 'America/Ojinaga',\n 'America/Panama',\n 'America/Pangnirtung',\n 'America/Paramaribo',\n 'America/Phoenix',\n 'America/Port-au-Prince',\n 'America/Port_of_Spain',\n 'America/Porto_Velho',\n 'America/Puerto_Rico',\n 'America/Punta_Arenas',\n 'America/Rainy_River',\n 'America/Rankin_Inlet',\n 'America/Recife',\n 'America/Regina',\n 'America/Resolute',\n 'America/Rio_Branco',\n 'America/Santarem',\n 'America/Santiago',\n 'America/Santo_Domingo',\n 'America/Sao_Paulo',\n 'America/Scoresbysund',\n 'America/Sitka',\n 'America/St_Johns',\n 'America/Swift_Current',\n 'America/Tegucigalpa',\n 'America/Thule',\n 'America/Thunder_Bay',\n 'America/Tijuana',\n 'America/Toronto',\n 'America/Vancouver',\n 'America/Whitehorse',\n 'America/Winnipeg',\n 'America/Yakutat',\n 'America/Yellowknife',\n 'Antarctica/Casey',\n 'Antarctica/Davis',\n 'Antarctica/DumontDUrville',\n 'Antarctica/Macquarie',\n 'Antarctica/Mawson',\n 'Antarctica/Palmer',\n 'Antarctica/Rothera',\n 'Antarctica/Syowa',\n 'Antarctica/Troll',\n 'Antarctica/Vostok',\n 'Asia/Almaty',\n 'Asia/Amman',\n 'Asia/Anadyr',\n 'Asia/Aqtau',\n 'Asia/Aqtobe',\n 'Asia/Ashgabat',\n 'Asia/Atyrau',\n 'Asia/Baghdad',\n 'Asia/Baku',\n 'Asia/Bangkok',\n 'Asia/Barnaul',\n 'Asia/Beirut',\n 'Asia/Bishkek',\n 'Asia/Brunei',\n 'Asia/Chita',\n 'Asia/Choibalsan',\n 'Asia/Colombo',\n 'Asia/Damascus',\n 'Asia/Dhaka',\n 'Asia/Dili',\n 'Asia/Dubai',\n 'Asia/Dushanbe',\n 'Asia/Famagusta',\n 'Asia/Gaza',\n 'Asia/Hebron',\n 'Asia/Ho_Chi_Minh',\n 'Asia/Hong_Kong',\n 'Asia/Hovd',\n 'Asia/Irkutsk',\n 'Asia/Jakarta',\n 'Asia/Jayapura',\n 'Asia/Jerusalem',\n 'Asia/Kabul',\n 'Asia/Kamchatka',\n 'Asia/Karachi',\n 'Asia/Kathmandu',\n 'Asia/Khandyga',\n 'Asia/Kolkata',\n 'Asia/Krasnoyarsk',\n 'Asia/Kuala_Lumpur',\n 'Asia/Kuching',\n 'Asia/Macau',\n 'Asia/Magadan',\n 'Asia/Makassar',\n 'Asia/Manila',\n 'Asia/Nicosia',\n 'Asia/Novokuznetsk',\n 'Asia/Novosibirsk',\n 'Asia/Omsk',\n 'Asia/Oral',\n 'Asia/Pontianak',\n 'Asia/Pyongyang',\n 'Asia/Qatar',\n 'Asia/Qostanay',\n 'Asia/Qyzylorda',\n 'Asia/Riyadh',\n 'Asia/Sakhalin',\n 'Asia/Samarkand',\n 'Asia/Seoul',\n 'Asia/Shanghai',\n 'Asia/Singapore',\n 'Asia/Srednekolymsk',\n 'Asia/Taipei',\n 'Asia/Tashkent',\n 'Asia/Tbilisi',\n 'Asia/Tehran',\n 'Asia/Thimphu',\n 'Asia/Tokyo',\n 'Asia/Tomsk',\n 'Asia/Ulaanbaatar',\n 'Asia/Urumqi',\n 'Asia/Ust-Nera',\n 'Asia/Vladivostok',\n 'Asia/Yakutsk',\n 'Asia/Yangon',\n 'Asia/Yekaterinburg',\n 'Asia/Yerevan',\n 'Atlantic/Azores',\n 'Atlantic/Bermuda',\n 'Atlantic/Canary',\n 'Atlantic/Cape_Verde',\n 'Atlantic/Faroe',\n 'Atlantic/Madeira',\n 'Atlantic/Reykjavik',\n 'Atlantic/South_Georgia',\n 'Atlantic/Stanley',\n 'Australia/Adelaide',\n 'Australia/Brisbane',\n 'Australia/Broken_Hill',\n 'Australia/Currie',\n 'Australia/Darwin',\n 'Australia/Eucla',\n 'Australia/Hobart',\n 'Australia/Lindeman',\n 'Australia/Lord_Howe',\n 'Australia/Melbourne',\n 'Australia/Perth',\n 'Australia/Sydney',\n 'Europe/Amsterdam',\n 'Europe/Andorra',\n 'Europe/Astrakhan',\n 'Europe/Athens',\n 'Europe/Belgrade',\n 'Europe/Berlin',\n 'Europe/Brussels',\n 'Europe/Bucharest',\n 'Europe/Budapest',\n 'Europe/Chisinau',\n 'Europe/Copenhagen',\n 'Europe/Dublin',\n 'Europe/Gibraltar',\n 'Europe/Helsinki',\n 'Europe/Istanbul',\n 'Europe/Kaliningrad',\n 'Europe/Kiev',\n 'Europe/Kirov',\n 'Europe/Lisbon',\n 'Europe/London',\n 'Europe/Luxembourg',\n 'Europe/Madrid',\n 'Europe/Malta',\n 'Europe/Minsk',\n 'Europe/Monaco',\n 'Europe/Moscow',\n 'Europe/Oslo',\n 'Europe/Paris',\n 'Europe/Prague',\n 'Europe/Riga',\n 'Europe/Rome',\n 'Europe/Samara',\n 'Europe/Saratov',\n 'Europe/Simferopol',\n 'Europe/Sofia',\n 'Europe/Stockholm',\n 'Europe/Tallinn',\n 'Europe/Tirane',\n 'Europe/Ulyanovsk',\n 'Europe/Uzhgorod',\n 'Europe/Vienna',\n 'Europe/Vilnius',\n 'Europe/Volgograd',\n 'Europe/Warsaw',\n 'Europe/Zaporozhye',\n 'Europe/Zurich',\n 'Indian/Chagos',\n 'Indian/Christmas',\n 'Indian/Cocos',\n 'Indian/Kerguelen',\n 'Indian/Mahe',\n 'Indian/Maldives',\n 'Indian/Mauritius',\n 'Indian/Reunion',\n 'Pacific/Apia',\n 'Pacific/Auckland',\n 'Pacific/Bougainville',\n 'Pacific/Chatham',\n 'Pacific/Chuuk',\n 'Pacific/Easter',\n 'Pacific/Efate',\n 'Pacific/Enderbury',\n 'Pacific/Fakaofo',\n 'Pacific/Fiji',\n 'Pacific/Funafuti',\n 'Pacific/Galapagos',\n 'Pacific/Gambier',\n 'Pacific/Guadalcanal',\n 'Pacific/Guam',\n 'Pacific/Honolulu',\n 'Pacific/Kiritimati',\n 'Pacific/Kosrae',\n 'Pacific/Kwajalein',\n 'Pacific/Majuro',\n 'Pacific/Marquesas',\n 'Pacific/Nauru',\n 'Pacific/Niue',\n 'Pacific/Norfolk',\n 'Pacific/Noumea',\n 'Pacific/Pago_Pago',\n 'Pacific/Palau',\n 'Pacific/Pitcairn',\n 'Pacific/Pohnpei',\n 'Pacific/Port_Moresby',\n 'Pacific/Rarotonga',\n 'Pacific/Tahiti',\n 'Pacific/Tarawa',\n 'Pacific/Tongatapu',\n 'Pacific/Wake',\n 'Pacific/Wallis',\n]\n","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, withKeys as _withKeys, createElementVNode as _createElementVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-47ea2903\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"tz-dropdown\" }\nconst _hoisted_2 = [\"value\", \"disabled\", \"onKeydown\"]\nconst _hoisted_3 = [\"onClick\", \"onMouseover\", \"autofocus\"]\n\nimport { Ref, ref, toRefs, watch, withDefaults } from 'vue'\n\n import { timeZones } from '@/utils/timezone'\n\n interface Props {\n input: string\n disabled?: boolean\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'TimezoneDropdown',\n props: {\n input: null,\n disabled: { type: Boolean, default: false }\n },\n emits: ['updateTimezone'],\n setup(__props: any, { emit }) {\n\nconst props = __props as { input: string, disabled: boolean };\n\n \n\n \n\n const { input, disabled } = toRefs(props)\n const timezone: Ref = ref(props.input)\n const isOpen: Ref = ref(false)\n const tzList: Ref = ref(null)\n const focusItemIndex: Ref = ref(0)\n\n function matchTimezone(t: string): RegExpMatchArray | null {\n return t.toLowerCase().match(timezone.value.toLowerCase())\n }\n function onMouseOver(index: number) {\n focusItemIndex.value = index\n }\n function onUpdateTimezone(value: string) {\n timezone.value = value\n isOpen.value = false\n emit('updateTimezone', value)\n }\n function onEnter(event: Event & { target: HTMLInputElement }) {\n event.preventDefault()\n if (tzList.value?.firstElementChild?.innerHTML) {\n onUpdateTimezone(tzList.value?.firstElementChild?.innerHTML)\n }\n }\n function openDropdown(event: Event & { target: HTMLInputElement }) {\n event.preventDefault()\n isOpen.value = true\n timezone.value = event.target.value.trim()\n }\n\n watch(\n () => props.input,\n (value) => {\n timezone.value = value\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"input\", {\n class: \"tz-dropdown-input\",\n id: \"timezone\",\n name: \"timezone\",\n value: timezone.value,\n disabled: _unref(disabled),\n required: \"\",\n onKeydown: [\n _cache[0] || (_cache[0] = _withKeys(($event: any) => (onUpdateTimezone(_unref(input))), [\"esc\"])),\n _withKeys(onEnter, [\"enter\"])\n ],\n onInput: openDropdown\n }, null, 40, _hoisted_2),\n (isOpen.value)\n ? (_openBlock(), _createElementBlock(\"ul\", {\n key: 0,\n class: \"tz-dropdown-list\",\n ref_key: \"tzList\",\n ref: tzList\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(timeZones).filter((t) => matchTimezone(t)), (tz, index) => {\n return (_openBlock(), _createElementBlock(\"li\", {\n key: tz,\n class: _normalizeClass([\"tz-dropdown-item\", { focus: index === focusItemIndex.value }]),\n onClick: ($event: any) => (onUpdateTimezone(tz)),\n onMouseover: ($event: any) => (onMouseOver(index)),\n autofocus: index === focusItemIndex.value\n }, _toDisplayString(tz), 43, _hoisted_3))\n }), 128))\n ], 512))\n : _createCommentVNode(\"\", true)\n ]))\n}\n}\n\n})","import script from \"./TimezoneDropdown.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./TimezoneDropdown.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./TimezoneDropdown.vue?vue&type=style&index=0&id=47ea2903&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-47ea2903\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, renderList as _renderList, Fragment as _Fragment, createElementBlock as _createElementBlock, vModelSelect as _vModelSelect, createElementVNode as _createElementVNode, withDirectives as _withDirectives, createTextVNode as _createTextVNode, createVNode as _createVNode, withModifiers as _withModifiers, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-3b8a9a12\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"user-preferences-edition\" }\nconst _hoisted_2 = { class: \"profile-form form-box\" }\nconst _hoisted_3 = [\"onSubmit\"]\nconst _hoisted_4 = { class: \"form-items\" }\nconst _hoisted_5 = [\"disabled\"]\nconst _hoisted_6 = [\"value\"]\nconst _hoisted_7 = { class: \"form-items\" }\nconst _hoisted_8 = { class: \"form-items\" }\nconst _hoisted_9 = [\"disabled\"]\nconst _hoisted_10 = [\"value\"]\nconst _hoisted_11 = { class: \"form-items form-checkboxes\" }\nconst _hoisted_12 = { class: \"checkboxes-label\" }\nconst _hoisted_13 = { class: \"checkboxes\" }\nconst _hoisted_14 = [\"id\", \"name\", \"checked\", \"disabled\", \"onInput\"]\nconst _hoisted_15 = { class: \"checkbox-label\" }\nconst _hoisted_16 = { class: \"form-items form-checkboxes\" }\nconst _hoisted_17 = { class: \"checkboxes-label\" }\nconst _hoisted_18 = { class: \"checkboxes\" }\nconst _hoisted_19 = [\"id\", \"name\", \"checked\", \"disabled\", \"onInput\"]\nconst _hoisted_20 = { class: \"checkbox-label\" }\nconst _hoisted_21 = { class: \"form-items form-checkboxes\" }\nconst _hoisted_22 = { class: \"checkboxes-label\" }\nconst _hoisted_23 = { class: \"checkboxes\" }\nconst _hoisted_24 = [\"id\", \"name\", \"checked\", \"disabled\", \"onInput\"]\nconst _hoisted_25 = { class: \"checkbox-label\" }\nconst _hoisted_26 = { class: \"form-buttons\" }\nconst _hoisted_27 = {\n class: \"confirm\",\n type: \"submit\"\n}\n\nimport { ComputedRef, computed, reactive, onMounted, onUnmounted } from 'vue'\n\n import TimezoneDropdown from '@/components/User/ProfileEdition/TimezoneDropdown.vue'\n import { AUTH_USER_STORE, ROOT_STORE } from '@/store/constants'\n import { IUserPreferencesPayload, IAuthUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { availableDateFormatOptions } from '@/utils/dates'\n import { availableLanguages } from '@/utils/locales'\n\n interface Props {\n user: IAuthUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserPreferencesEdition',\n props: {\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IAuthUserProfile\n };\n\n \n\n const store = useStore()\n\n const userForm: IUserPreferencesPayload = reactive({\n display_ascent: true,\n imperial_units: false,\n language: '',\n timezone: 'Europe/Paris',\n date_format: 'dd/MM/yyyy',\n weekm: false,\n })\n const weekStart = [\n {\n label: 'SUNDAY',\n value: false,\n },\n {\n label: 'MONDAY',\n value: true,\n },\n ]\n const imperialUnits = [\n {\n label: 'METRIC',\n value: false,\n },\n {\n label: 'IMPERIAL',\n value: true,\n },\n ]\n const ascentData = [\n {\n label: 'DISPLAYED',\n value: true,\n },\n {\n label: 'HIDDEN',\n value: false,\n },\n ]\n const loading = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.USER_LOADING]\n )\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n const dateFormatOptions = computed(() =>\n availableDateFormatOptions(\n new Date().toUTCString(),\n props.user.timezone,\n userForm.language\n )\n )\n\n onMounted(() => {\n if (props.user) {\n updateUserForm(props.user)\n }\n })\n\n function updateUserForm(user: IAuthUserProfile) {\n userForm.display_ascent = user.display_ascent\n userForm.imperial_units = user.imperial_units ? user.imperial_units : false\n userForm.language = user.language ? user.language : 'en'\n userForm.timezone = user.timezone ? user.timezone : 'Europe/Paris'\n userForm.date_format = user.date_format ? user.date_format : 'dd/MM/yyyy'\n userForm.weekm = user.weekm ? user.weekm : false\n }\n function updateProfile() {\n store.dispatch(AUTH_USER_STORE.ACTIONS.UPDATE_USER_PREFERENCES, userForm)\n }\n function updateTZ(value: string) {\n userForm.timezone = value\n }\n function updateAscentDisplay(value: boolean) {\n userForm.display_ascent = value\n }\n function updateImperialUnit(value: boolean) {\n userForm.imperial_units = value\n }\n function updateWeekM(value: boolean) {\n userForm.weekm = value\n }\n\n onUnmounted(() => {\n store.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n })\n\nreturn (_ctx: any,_cache: any) => {\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n (_unref(errorMessages))\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 0,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"form\", {\n onSubmit: _withModifiers(updateProfile, [\"prevent\"])\n }, [\n _createElementVNode(\"label\", _hoisted_4, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PROFILE.LANGUAGE')) + \" \", 1),\n _withDirectives(_createElementVNode(\"select\", {\n id: \"language\",\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((userForm.language) = $event)),\n disabled: _unref(loading)\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(availableLanguages), (lang) => {\n return (_openBlock(), _createElementBlock(\"option\", {\n value: lang.value,\n key: lang.value\n }, _toDisplayString(lang.label), 9, _hoisted_6))\n }), 128))\n ], 8, _hoisted_5), [\n [_vModelSelect, userForm.language]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_7, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PROFILE.TIMEZONE')) + \" \", 1),\n _createVNode(TimezoneDropdown, {\n input: userForm.timezone,\n disabled: _unref(loading),\n onUpdateTimezone: updateTZ\n }, null, 8, [\"input\", \"disabled\"])\n ]),\n _createElementVNode(\"label\", _hoisted_8, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PROFILE.DATE_FORMAT')) + \" \", 1),\n _withDirectives(_createElementVNode(\"select\", {\n id: \"date_format\",\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((userForm.date_format) = $event)),\n disabled: _unref(loading)\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(dateFormatOptions), (dateFormat) => {\n return (_openBlock(), _createElementBlock(\"option\", {\n value: dateFormat.value,\n key: dateFormat.value\n }, _toDisplayString(dateFormat.label), 9, _hoisted_10))\n }), 128))\n ], 8, _hoisted_9), [\n [_vModelSelect, userForm.date_format]\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_11, [\n _createElementVNode(\"span\", _hoisted_12, _toDisplayString(_ctx.$t('user.PROFILE.FIRST_DAY_OF_WEEK')), 1),\n _createElementVNode(\"div\", _hoisted_13, [\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList(weekStart, (start) => {\n return _createElementVNode(\"label\", {\n key: start.label\n }, [\n _createElementVNode(\"input\", {\n type: \"radio\",\n id: start.label,\n name: start.label,\n checked: start.value === userForm.weekm,\n disabled: _unref(loading),\n onInput: ($event: any) => (updateWeekM(start.value))\n }, null, 40, _hoisted_14),\n _createElementVNode(\"span\", _hoisted_15, _toDisplayString(_ctx.$t(`user.PROFILE.${start.label}`)), 1)\n ])\n }), 64))\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_16, [\n _createElementVNode(\"span\", _hoisted_17, _toDisplayString(_ctx.$t('user.PROFILE.UNITS.LABEL')), 1),\n _createElementVNode(\"div\", _hoisted_18, [\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList(imperialUnits, (unit) => {\n return _createElementVNode(\"label\", {\n key: unit.label\n }, [\n _createElementVNode(\"input\", {\n type: \"radio\",\n id: unit.label,\n name: unit.label,\n checked: unit.value === userForm.imperial_units,\n disabled: _unref(loading),\n onInput: ($event: any) => (updateImperialUnit(unit.value))\n }, null, 40, _hoisted_19),\n _createElementVNode(\"span\", _hoisted_20, _toDisplayString(_ctx.$t(`user.PROFILE.UNITS.${unit.label}`)), 1)\n ])\n }), 64))\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_21, [\n _createElementVNode(\"span\", _hoisted_22, _toDisplayString(_ctx.$t('user.PROFILE.ASCENT_DATA')), 1),\n _createElementVNode(\"div\", _hoisted_23, [\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList(ascentData, (status) => {\n return _createElementVNode(\"label\", {\n key: status.label\n }, [\n _createElementVNode(\"input\", {\n type: \"radio\",\n id: status.label,\n name: status.label,\n checked: status.value === userForm.display_ascent,\n disabled: _unref(loading),\n onInput: ($event: any) => (updateAscentDisplay(status.value))\n }, null, 40, _hoisted_24),\n _createElementVNode(\"span\", _hoisted_25, _toDisplayString(_ctx.$t(`common.${status.label}`)), 1)\n ])\n }), 64))\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_26, [\n _createElementVNode(\"button\", _hoisted_27, _toDisplayString(_ctx.$t('buttons.SUBMIT')), 1),\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _cache[2] || (_cache[2] = _withModifiers(($event: any) => (_ctx.$router.push('/profile/preferences')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('buttons.CANCEL')), 1)\n ])\n ], 40, _hoisted_3)\n ])\n ]))\n}\n}\n\n})","import script from \"./UserPreferencesEdition.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserPreferencesEdition.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserPreferencesEdition.vue?vue&type=style&index=0&id=3b8a9a12&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-3b8a9a12\"]])\n\nexport default __exports__","export const oauth2_scopes = [\n 'profile:read',\n 'profile:write',\n 'users:read',\n 'users:write',\n 'workouts:read',\n 'workouts:write',\n]\n\nexport const admin_oauth2_scopes = ['application:write']\n","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, vModelText as _vModelText, withDirectives as _withDirectives, resolveComponent as _resolveComponent, createVNode as _createVNode, unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, withModifiers as _withModifiers, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-0657ee77\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"new-oauth2-app\" }\nconst _hoisted_2 = { id: \"new-oauth2-title\" }\nconst _hoisted_3 = { id: \"apps-form\" }\nconst _hoisted_4 = [\"onSubmit\"]\nconst _hoisted_5 = { class: \"form-items\" }\nconst _hoisted_6 = { class: \"form-item\" }\nconst _hoisted_7 = { for: \"app-name\" }\nconst _hoisted_8 = { class: \"form-item\" }\nconst _hoisted_9 = { for: \"app-description\" }\nconst _hoisted_10 = { class: \"form-item\" }\nconst _hoisted_11 = { for: \"app-url\" }\nconst _hoisted_12 = { class: \"form-item\" }\nconst _hoisted_13 = { for: \"app-redirect-uri\" }\nconst _hoisted_14 = { class: \"form-item-scope\" }\nconst _hoisted_15 = { class: \"form-item-scope-label\" }\nconst _hoisted_16 = { class: \"scope-label\" }\nconst _hoisted_17 = [\"name\", \"checked\", \"onChange\"]\nconst _hoisted_18 = [\"innerHTML\"]\nconst _hoisted_19 = { class: \"form-buttons\" }\nconst _hoisted_20 = [\"disabled\"]\n\nimport { computed, reactive } from 'vue'\n\n import { OAUTH2_STORE } from '@/store/constants'\n import { IOAuth2ClientPayload } from '@/types/oauth'\n import { IAuthUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { admin_oauth2_scopes, oauth2_scopes } from '@/utils/oauth'\n\n interface Props {\n authUser: IAuthUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'AddUserApp',\n props: {\n authUser: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n authUser: IAuthUserProfile\n };\n\n \n\n const store = useStore()\n const appForm = reactive({\n client_name: '',\n client_uri: '',\n client_description: '',\n redirect_uri: '',\n })\n const scopes: string[] = reactive([])\n const filtered_scopes = computed(() =>\n getScopes(props.authUser, admin_oauth2_scopes, oauth2_scopes)\n )\n\n function createApp() {\n const payload: IOAuth2ClientPayload = {\n client_name: appForm.client_name,\n client_description: appForm.client_description,\n client_uri: appForm.client_uri,\n redirect_uris: [appForm.redirect_uri],\n scope: scopes.sort().join(' '),\n }\n store.dispatch(OAUTH2_STORE.ACTIONS.CREATE_CLIENT, payload)\n }\n function updateDescription(value: string) {\n appForm.client_description = value\n }\n function updateScopes(scope: string) {\n const index = scopes.indexOf(scope)\n if (index > -1) {\n scopes.splice(index, 1)\n } else {\n scopes.push(scope)\n }\n }\n function getScopes(\n authUser: IAuthUserProfile,\n admin_scopes: string[],\n scopes: string[]\n ) {\n const filtered_scopes = [...scopes]\n if (authUser.admin) {\n filtered_scopes.push(...admin_scopes)\n }\n return filtered_scopes.sort()\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _component_CustomTextArea = _resolveComponent(\"CustomTextArea\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"h1\", _hoisted_2, _toDisplayString(_ctx.$t('oauth2.ADD_A_NEW_APP')), 1),\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"form\", {\n onSubmit: _withModifiers(createApp, [\"prevent\"])\n }, [\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"div\", _hoisted_6, [\n _createElementVNode(\"label\", _hoisted_7, _toDisplayString(_ctx.$t('oauth2.APP.NAME')) + \"*\", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"app-name\",\n type: \"text\",\n required: \"\",\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((appForm.client_name) = $event))\n }, null, 512), [\n [_vModelText, appForm.client_name]\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_8, [\n _createElementVNode(\"label\", _hoisted_9, _toDisplayString(_ctx.$t('oauth2.APP.DESCRIPTION')), 1),\n _createVNode(_component_CustomTextArea, {\n name: \"app-description\",\n charLimit: 200,\n input: appForm.description,\n onUpdateValue: updateDescription\n }, null, 8, [\"input\"])\n ]),\n _createElementVNode(\"div\", _hoisted_10, [\n _createElementVNode(\"label\", _hoisted_11, _toDisplayString(_ctx.$t('oauth2.APP.URL')) + \"*\", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"app-url\",\n type: \"text\",\n required: \"\",\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((appForm.client_uri) = $event))\n }, null, 512), [\n [_vModelText, appForm.client_uri]\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_12, [\n _createElementVNode(\"label\", _hoisted_13, _toDisplayString(_ctx.$t('oauth2.APP.REDIRECT_URL')) + \"* \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"app-redirect-uri\",\n type: \"text\",\n required: \"\",\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((appForm.redirect_uri) = $event))\n }, null, 512), [\n [_vModelText, appForm.redirect_uri]\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_14, [\n _createElementVNode(\"div\", _hoisted_15, _toDisplayString(_ctx.$t('oauth2.APP.SCOPE.LABEL')) + \"* \", 1),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(filtered_scopes), (scope) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"form-item-scope-checkboxes\",\n key: scope\n }, [\n _createElementVNode(\"label\", _hoisted_16, [\n _createElementVNode(\"input\", {\n type: \"checkbox\",\n name: scope,\n checked: scopes.includes(scope),\n onChange: ($event: any) => (updateScopes(scope))\n }, null, 40, _hoisted_17),\n _createElementVNode(\"code\", null, _toDisplayString(scope), 1)\n ]),\n _createElementVNode(\"p\", {\n class: \"scope-description\",\n innerHTML: _ctx.$t(`oauth2.APP.SCOPE.${scope}_DESCRIPTION`)\n }, null, 8, _hoisted_18)\n ]))\n }), 128))\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_19, [\n _createElementVNode(\"button\", {\n class: \"confirm\",\n type: \"submit\",\n disabled: scopes.length === 0\n }, _toDisplayString(_ctx.$t('buttons.SUBMIT')), 9, _hoisted_20),\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _cache[3] || (_cache[3] = _withModifiers(() => _ctx.$router.push('/profile/apps'), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('buttons.CANCEL')), 1)\n ])\n ], 40, _hoisted_4)\n ])\n ]))\n}\n}\n\n})","import script from \"./AddUserApp.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AddUserApp.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./AddUserApp.vue?vue&type=style&index=0&id=0657ee77&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-0657ee77\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, createElementVNode as _createElementVNode, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, renderList as _renderList, Fragment as _Fragment, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-3b2fe9ed\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"authorize-oauth2-app\" }\nconst _hoisted_2 = { key: 0 }\nconst _hoisted_3 = { id: \"authorize-oauth2-title\" }\nconst _hoisted_4 = { class: \"oauth2-access description-list\" }\nconst _hoisted_5 = { class: \"client-scope\" }\nconst _hoisted_6 = [\"innerHTML\"]\nconst _hoisted_7 = { class: \"authorize-oauth2-buttons\" }\nconst _hoisted_8 = { key: 1 }\nconst _hoisted_9 = { class: \"no-app\" }\n\nimport { computed, ComputedRef, onBeforeMount } from 'vue'\n import { useRoute } from 'vue-router'\n\n import { OAUTH2_STORE, ROOT_STORE } from '@/store/constants'\n import { IOAuth2Client } from '@/types/oauth'\n import { useStore } from '@/use/useStore'\n\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'AuthorizeUserApp',\n setup(__props) {\n\n const route = useRoute()\n const store = useStore()\n\n const client: ComputedRef = computed(\n () => store.getters[OAUTH2_STORE.GETTERS.CLIENT]\n )\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n\n onBeforeMount(() => loadApp())\n\n function loadApp() {\n if (route.query.client_id && typeof route.query.client_id === 'string') {\n store.dispatch(\n OAUTH2_STORE.ACTIONS.GET_CLIENT_BY_CLIENT_ID,\n route.query.client_id\n )\n }\n }\n\n function authorizeApp() {\n store.dispatch(OAUTH2_STORE.ACTIONS.AUTHORIZE_CLIENT, {\n client_id: `${route.query.client_id}`,\n redirect_uri: `${route.query.redirect_uri}`,\n response_type: `${route.query.response_type}`,\n scope: `${route.query.scope}`,\n state: `${route.query.state ? route.query.state : ''}`,\n code_challenge: `${\n route.query.code_challenge ? route.query.code_challenge : ''\n }`,\n code_challenge_method: `${\n route.query.code_challenge_method\n ? route.query.code_challenge_method\n : ''\n }`,\n })\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_i18n_t = _resolveComponent(\"i18n-t\")!\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_unref(client).client_id)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [\n _createElementVNode(\"h1\", _hoisted_3, [\n _createVNode(_component_i18n_t, { keypath: \"oauth2.AUTHORIZE_APP\" }, {\n default: _withCtx(() => [\n _createVNode(_component_router_link, {\n to: { name: 'UserApp', params: { id: _unref(client).id } }\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_unref(client).name), 1)\n ]),\n _: 1\n }, 8, [\"to\"])\n ]),\n _: 1\n })\n ]),\n (_unref(errorMessages))\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 0,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"p\", null, _toDisplayString(_ctx.$t('oauth2.APP_REQUESTING_ACCESS')), 1),\n _createElementVNode(\"dl\", null, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(client).scope.split(' '), (scope) => {\n return (_openBlock(), _createElementBlock(_Fragment, { key: scope }, [\n _createElementVNode(\"dt\", _hoisted_5, [\n _createElementVNode(\"code\", null, _toDisplayString(scope), 1)\n ]),\n _createElementVNode(\"dd\", {\n innerHTML: _ctx.$t(`oauth2.APP.SCOPE.${scope}_DESCRIPTION`)\n }, null, 8, _hoisted_6)\n ], 64))\n }), 128))\n ]),\n _createElementVNode(\"div\", _hoisted_7, [\n _createElementVNode(\"button\", {\n class: \"danger\",\n onClick: authorizeApp\n }, _toDisplayString(_ctx.$t('buttons.AUTHORIZE')), 1),\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$router.push('/profile/apps')))\n }, _toDisplayString(_ctx.$t('buttons.CANCEL')), 1)\n ])\n ])\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_8, [\n _createElementVNode(\"p\", _hoisted_9, _toDisplayString(_ctx.$t('oauth2.NO_APP')), 1),\n _createElementVNode(\"button\", {\n onClick: _cache[1] || (_cache[1] = ($event: any) => (_ctx.$router.push('/profile/apps')))\n }, _toDisplayString(_ctx.$t('buttons.BACK')), 1)\n ]))\n ]))\n}\n}\n\n})","import script from \"./AuthorizeUserApp.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AuthorizeUserApp.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./AuthorizeUserApp.vue?vue&type=style&index=0&id=3b2fe9ed&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-3b2fe9ed\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, resolveComponent as _resolveComponent, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { id: \"oauth2-apps\" }\n\nimport { onUnmounted, toRefs } from 'vue'\n\n import { OAUTH2_STORE, ROOT_STORE } from '@/store/constants'\n import { IAuthUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n\n interface Props {\n user: IAuthUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'index',\n props: {\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IAuthUserProfile\n };\n\n \n\n const store = useStore()\n\n const { user } = toRefs(props)\n\n onUnmounted(() => {\n store.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n store.commit(OAUTH2_STORE.MUTATIONS.SET_CLIENTS, [])\n })\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_view = _resolveComponent(\"router-view\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_router_view, { authUser: _unref(user) }, null, 8, [\"authUser\"])\n ]))\n}\n}\n\n})","import script from \"./index.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { resolveComponent as _resolveComponent, unref as _unref, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, createElementBlock as _createElementBlock, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, createTextVNode as _createTextVNode, renderList as _renderList, Fragment as _Fragment, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-3a844fa2\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"oauth2-app\",\n class: \"description-list\"\n}\nconst _hoisted_2 = { key: 1 }\nconst _hoisted_3 = {\n key: 0,\n class: \"info-box success-message\"\n}\nconst _hoisted_4 = [\"title\"]\nconst _hoisted_5 = { key: 0 }\nconst _hoisted_6 = {\n key: 1,\n class: \"app-secret\"\n}\nconst _hoisted_7 = [\"title\"]\nconst _hoisted_8 = { class: \"client-scopes\" }\nconst _hoisted_9 = { class: \"app-buttons\" }\nconst _hoisted_10 = { key: 2 }\nconst _hoisted_11 = { class: \"no-app\" }\n\nimport {\n ComputedRef,\n Ref,\n capitalize,\n computed,\n onBeforeMount,\n toRefs,\n ref,\n onUnmounted,\n withDefaults,\n watch,\n } from 'vue'\n import { useRoute } from 'vue-router'\n\n import { OAUTH2_STORE, ROOT_STORE } from '@/store/constants'\n import { IOAuth2Client } from '@/types/oauth'\n import { IAuthUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { formatDate } from '@/utils/dates'\n\n interface Props {\n authUser: IAuthUserProfile\n afterCreation?: boolean\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserApp',\n props: {\n authUser: null,\n afterCreation: { type: Boolean, default: false }\n },\n setup(__props: any) {\n\nconst props = __props as { authUser: IAuthUserProfile, afterCreation: boolean };\n\n \n const route = useRoute()\n const store = useStore()\n\n const { afterCreation, authUser } = toRefs(props)\n const client: ComputedRef = computed(\n () => store.getters[OAUTH2_STORE.GETTERS.CLIENT]\n )\n const revocationSuccessful: ComputedRef = computed(\n () => store.getters[OAUTH2_STORE.GETTERS.REVOCATION_SUCCESSFUL]\n )\n const displayModal: Ref = ref(false)\n const messageToDisplay: Ref = ref(null)\n const idCopied: Ref = ref(false)\n const secretCopied: Ref = ref(false)\n const clipboardSupport: Ref = ref(false)\n\n onBeforeMount(() => {\n loadClient()\n if (navigator.clipboard) {\n clipboardSupport.value = true\n }\n })\n\n function loadClient() {\n // after creation, client is already in store\n if (\n !afterCreation.value &&\n route.params.id &&\n typeof route.params.id === 'string'\n ) {\n store.dispatch(OAUTH2_STORE.ACTIONS.GET_CLIENT_BY_ID, +route.params.id)\n }\n }\n function updateMessageToDisplay(forDelete: boolean) {\n messageToDisplay.value = forDelete\n ? 'oauth2.APP_DELETION_CONFIRMATION'\n : 'oauth2.TOKENS_REVOCATION_CONFIRMATION'\n updateDisplayModal(true)\n }\n function updateDisplayModal(value: boolean) {\n displayModal.value = value\n if (!value) {\n messageToDisplay.value = null\n }\n }\n function confirmAction(clientId: number) {\n if (messageToDisplay.value === 'oauth2.APP_DELETION_CONFIRMATION') {\n store.dispatch(OAUTH2_STORE.ACTIONS.DELETE_CLIENT, clientId)\n } else {\n store.dispatch(OAUTH2_STORE.ACTIONS.REVOKE_ALL_TOKENS, clientId)\n }\n }\n function copyIdToClipboard() {\n navigator.clipboard.writeText(client.value.client_id)\n idCopied.value = true\n secretCopied.value = false\n setTimeout(() => {\n idCopied.value = false\n }, 3000)\n }\n function copySecretToClipboard() {\n if (client.value.client_secret) {\n navigator.clipboard.writeText(client.value.client_secret)\n secretCopied.value = true\n idCopied.value = false\n setTimeout(() => {\n secretCopied.value = false\n }, 3000)\n }\n }\n onUnmounted(() => {\n store.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n store.commit(OAUTH2_STORE.MUTATIONS.EMPTY_CLIENT)\n store.commit(OAUTH2_STORE.MUTATIONS.SET_REVOCATION_SUCCESSFUL, false)\n })\n\n watch(\n () => revocationSuccessful.value,\n (newValue) => {\n if (newValue) {\n updateDisplayModal(false)\n }\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n const _component_Modal = _resolveComponent(\"Modal\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (displayModal.value)\n ? (_openBlock(), _createBlock(_component_Modal, {\n key: 0,\n title: _ctx.$t('common.CONFIRMATION'),\n message: _ctx.$t(messageToDisplay.value),\n onConfirmAction: _cache[0] || (_cache[0] = ($event: any) => (confirmAction(_unref(client).id))),\n onCancelAction: _cache[1] || (_cache[1] = ($event: any) => (updateDisplayModal(false)))\n }, null, 8, [\"title\", \"message\"]))\n : _createCommentVNode(\"\", true),\n (_unref(client) && _unref(client).client_id)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [\n (_unref(afterCreation) || _unref(revocationSuccessful))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, _toDisplayString(_ctx.$t(\n _unref(afterCreation)\n ? 'oauth2.APP_CREATED_SUCCESSFULLY'\n : 'oauth2.TOKENS_REVOKED'\n )), 1))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"dl\", null, [\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('oauth2.APP.CLIENT_ID')) + \":\", 1),\n _createElementVNode(\"dd\", null, [\n _createTextVNode(_toDisplayString(_unref(client).client_id) + \" \", 1),\n (_unref(afterCreation) && clipboardSupport.value)\n ? (_openBlock(), _createElementBlock(\"i\", {\n key: 0,\n class: _normalizeClass(`fa fa-${idCopied.value ? 'check' : 'copy'}`),\n \"aria-hidden\": \"true\",\n title: _ctx.$t('oauth2.COPY_TO_CLIPBOARD'),\n onClick: copyIdToClipboard\n }, null, 10, _hoisted_4))\n : _createCommentVNode(\"\", true)\n ]),\n (_unref(afterCreation) && _unref(client).client_secret)\n ? (_openBlock(), _createElementBlock(\"dt\", _hoisted_5, _toDisplayString(_ctx.$t('oauth2.APP.CLIENT_SECRET')) + \": \", 1))\n : _createCommentVNode(\"\", true),\n (_unref(afterCreation) && _unref(client).client_secret)\n ? (_openBlock(), _createElementBlock(\"dd\", _hoisted_6, [\n _createTextVNode(_toDisplayString(_unref(client).client_secret) + \" \", 1),\n (clipboardSupport.value)\n ? (_openBlock(), _createElementBlock(\"i\", {\n key: 0,\n class: _normalizeClass(`fa fa-${secretCopied.value ? 'check' : 'copy'}`),\n \"aria-hidden\": \"true\",\n title: _ctx.$t('oauth2.COPY_TO_CLIPBOARD'),\n onClick: copySecretToClipboard\n }, null, 10, _hoisted_7))\n : _createCommentVNode(\"\", true)\n ]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"dt\", null, _toDisplayString(capitalize(_ctx.$t('oauth2.APP.ISSUE_AT'))) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_unref(formatDate)(\n _unref(client).issued_at,\n _unref(authUser).timezone,\n _unref(authUser).date_format\n )), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('oauth2.APP.NAME')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_unref(client).name), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('oauth2.APP.DESCRIPTION')) + \":\", 1),\n _createElementVNode(\"dd\", {\n class: _normalizeClass({ 'no-description': !_unref(client).client_description })\n }, _toDisplayString(_unref(client).client_description\n ? _unref(client).client_description\n : _ctx.$t('oauth2.NO_DESCRIPTION')), 3),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('oauth2.APP.URL')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_unref(client).website), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('oauth2.APP.REDIRECT_URL')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_unref(client).redirect_uris.length > 0 ? _unref(client).redirect_uris[0] : ''), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('oauth2.APP.SCOPE.LABEL')) + \":\", 1),\n _createElementVNode(\"dd\", _hoisted_8, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(client).scope.split(' '), (scope) => {\n return (_openBlock(), _createElementBlock(\"span\", {\n class: \"client-scope\",\n key: scope\n }, [\n _createElementVNode(\"code\", null, _toDisplayString(scope), 1)\n ]))\n }), 128))\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_9, [\n _createElementVNode(\"button\", {\n class: \"danger\",\n onClick: _cache[2] || (_cache[2] = ($event: any) => (updateMessageToDisplay(false)))\n }, _toDisplayString(_ctx.$t('oauth2.REVOKE_ALL_TOKENS')), 1),\n _createElementVNode(\"button\", {\n class: \"danger\",\n onClick: _cache[3] || (_cache[3] = ($event: any) => (updateMessageToDisplay(true)))\n }, _toDisplayString(_ctx.$t('oauth2.DELETE_APP')), 1),\n _createElementVNode(\"button\", {\n onClick: _cache[4] || (_cache[4] = ($event: any) => (_ctx.$router.push('/profile/apps')))\n }, _toDisplayString(_ctx.$t('buttons.BACK')), 1)\n ])\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_10, [\n _createElementVNode(\"p\", _hoisted_11, _toDisplayString(_ctx.$t('oauth2.NO_APP')), 1),\n _createElementVNode(\"button\", {\n onClick: _cache[5] || (_cache[5] = ($event: any) => (_ctx.$router.push('/profile/apps')))\n }, _toDisplayString(_ctx.$t('buttons.BACK')), 1)\n ]))\n ]))\n}\n}\n\n})","import script from \"./UserApp.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserApp.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserApp.vue?vue&type=style&index=0&id=3a844fa2&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-3a844fa2\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, createCommentVNode as _createCommentVNode, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-efa45ea0\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"oauth2-apps-list\" }\nconst _hoisted_2 = { class: \"apps-list\" }\nconst _hoisted_3 = { key: 0 }\nconst _hoisted_4 = { class: \"app-issued-at\" }\nconst _hoisted_5 = {\n key: 1,\n class: \"no-apps\"\n}\nconst _hoisted_6 = { class: \"app-list-buttons\" }\n\nimport { ComputedRef, computed, onBeforeMount, toRefs, watch } from 'vue'\n import { LocationQuery, useRoute } from 'vue-router'\n\n import Pagination from '@/components/Common/Pagination.vue'\n import { OAUTH2_STORE } from '@/store/constants'\n import { IPagination } from '@/types/api'\n import { IOAuth2Client, IOauth2ClientsPayload } from '@/types/oauth'\n import { IAuthUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { defaultPage, getNumberQueryValue } from '@/utils/api'\n import { formatDate } from '@/utils/dates'\n\n interface Props {\n authUser: IAuthUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserAppsList',\n props: {\n authUser: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n authUser: IAuthUserProfile\n };\n\n \n\n const store = useStore()\n const route = useRoute()\n\n const { authUser } = toRefs(props)\n const clients: ComputedRef = computed(\n () => store.getters[OAUTH2_STORE.GETTERS.CLIENTS]\n )\n\n const pagination: ComputedRef = computed(\n () => store.getters[OAUTH2_STORE.GETTERS.CLIENTS_PAGINATION]\n )\n let query: IOauth2ClientsPayload = getClientsQuery(route.query)\n\n onBeforeMount(() => {\n loadClients(query)\n })\n\n function getClientsQuery(newQuery: LocationQuery): IOauth2ClientsPayload {\n const clientsQuery: IOauth2ClientsPayload = {}\n if (newQuery.page) {\n clientsQuery.page = getNumberQueryValue(newQuery.page, defaultPage)\n }\n return clientsQuery\n }\n function loadClients(payload: IOauth2ClientsPayload) {\n store.dispatch(OAUTH2_STORE.ACTIONS.GET_CLIENTS, payload)\n }\n\n watch(\n () => route.query,\n async (newQuery) => {\n query = getClientsQuery(newQuery)\n loadClients(query)\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_link = _resolveComponent(\"router-link\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"p\", _hoisted_2, _toDisplayString(_ctx.$t('oauth2.APPS_LIST')), 1),\n (_unref(clients).length > 0)\n ? (_openBlock(), _createElementBlock(\"ul\", _hoisted_3, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(clients), (client) => {\n return (_openBlock(), _createElementBlock(\"li\", {\n key: client.client_id\n }, [\n _createVNode(_component_router_link, {\n to: { name: 'UserApp', params: { id: client.id } }\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(client.name), 1)\n ]),\n _: 2\n }, 1032, [\"to\"]),\n _createElementVNode(\"span\", _hoisted_4, _toDisplayString(_ctx.$t('oauth2.APP.ISSUE_AT')) + \" \" + _toDisplayString(_unref(formatDate)(\n client.issued_at,\n _unref(authUser).timezone,\n _unref(authUser).date_format\n )), 1)\n ]))\n }), 128))\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_5, _toDisplayString(_ctx.$t('oauth2.NO_APPS')), 1)),\n (_unref(clients).length > 0)\n ? (_openBlock(), _createBlock(Pagination, {\n key: 2,\n pagination: _unref(pagination),\n path: \"/profile/apps\",\n query: _unref(query)\n }, null, 8, [\"pagination\", \"query\"]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_6, [\n _createElementVNode(\"button\", {\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$router.push('/profile/apps/new')))\n }, _toDisplayString(_ctx.$t('oauth2.NEW_APP')), 1),\n _createElementVNode(\"button\", {\n onClick: _cache[1] || (_cache[1] = ($event: any) => (_ctx.$router.push('/')))\n }, _toDisplayString(_ctx.$t('common.HOME')), 1)\n ])\n ]))\n}\n}\n\n})","import script from \"./UserAppsList.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserAppsList.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserAppsList.vue?vue&type=style&index=0&id=efa45ea0&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-efa45ea0\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, withModifiers as _withModifiers, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, renderList as _renderList, Fragment as _Fragment, resolveComponent as _resolveComponent, createBlock as _createBlock, createTextVNode as _createTextVNode, normalizeClass as _normalizeClass, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-74e52489\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"user-sport-preferences\" }\nconst _hoisted_2 = {\n key: 0,\n class: \"responsive-table\"\n}\nconst _hoisted_3 = { class: \"mobile-display\" }\nconst _hoisted_4 = {\n key: 0,\n class: \"profile-buttons mobile-display\"\n}\nconst _hoisted_5 = {\n key: 1,\n class: \"profile-buttons\"\n}\nconst _hoisted_6 = { class: \"text-left\" }\nconst _hoisted_7 = { key: 0 }\nconst _hoisted_8 = { class: \"cell-heading\" }\nconst _hoisted_9 = [\"value\"]\nconst _hoisted_10 = { class: \"cell-heading\" }\nconst _hoisted_11 = {\n key: 0,\n class: \"disabled-message\"\n}\nconst _hoisted_12 = {\n key: 1,\n class: \"fa fa-refresh fa-spin fa-fw\"\n}\nconst _hoisted_13 = { class: \"cell-heading\" }\nconst _hoisted_14 = { class: \"cell-heading\" }\nconst _hoisted_15 = [\"checked\"]\nconst _hoisted_16 = { class: \"cell-heading\" }\nconst _hoisted_17 = [\"value\"]\nconst _hoisted_18 = { key: 1 }\nconst _hoisted_19 = {\n key: 0,\n class: \"action-buttons\"\n}\nconst _hoisted_20 = { class: \"cell-heading\" }\nconst _hoisted_21 = [\"onClick\"]\nconst _hoisted_22 = {\n key: 1,\n class: \"edition-buttons\"\n}\nconst _hoisted_23 = [\"disabled\"]\nconst _hoisted_24 = [\"disabled\", \"onClick\"]\nconst _hoisted_25 = [\"disabled\"]\nconst _hoisted_26 = {\n key: 0,\n class: \"profile-buttons\"\n}\nconst _hoisted_27 = {\n key: 1,\n class: \"profile-buttons\"\n}\n\nimport { ComputedRef, computed, inject, reactive, toRefs, watch } from 'vue'\n import { useI18n } from 'vue-i18n'\n\n import { AUTH_USER_STORE, ROOT_STORE, SPORTS_STORE } from '@/store/constants'\n import { ISport, ITranslatedSport } from '@/types/sports'\n import { IUserProfile, IUserSportPreferencesPayload } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { translateSports } from '@/utils/sports'\n\n interface Props {\n user: IUserProfile\n isEdition: boolean\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserSportPreferences',\n props: {\n user: null,\n isEdition: { type: Boolean }\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IUserProfile\n isEdition: boolean\n };\n\n \n\n const store = useStore()\n const { t } = useI18n()\n\n const { isEdition, user } = toRefs(props)\n const defaultColor = '#838383'\n const sportColors: Record | undefined = inject('sportColors')\n const sports: ComputedRef = computed(\n () => store.getters[SPORTS_STORE.GETTERS.SPORTS]\n )\n const translatedSports: ComputedRef = computed(() =>\n translateSports(sports.value, t, 'is_active', user.value.sports_list)\n )\n const loading = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.USER_LOADING]\n )\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n const sportPayload: IUserSportPreferencesPayload = reactive({\n sport_id: 0,\n color: null,\n is_active: true,\n stopped_speed_threshold: 1,\n })\n\n function updateSportInEdition(sport: ISport | null) {\n if (sport !== null) {\n sportPayload.sport_id = sport.id\n sportPayload.color = sport.color\n ? sport.color\n : sportColors\n ? sportColors[sport.label]\n : defaultColor\n sportPayload.is_active = sport.is_active_for_user\n sportPayload.stopped_speed_threshold = sport.stopped_speed_threshold\n } else {\n resetSportPayload()\n }\n }\n function isSportInEdition(sportId: number) {\n return sportPayload.sport_id === sportId\n }\n function updateColor(event: Event & { target: HTMLInputElement }) {\n sportPayload.color = event.target.value\n }\n function updateThreshold(event: Event & { target: HTMLInputElement }) {\n sportPayload.stopped_speed_threshold = parseFloat(event.target.value)\n }\n function updateIsActive(event: Event & { target: HTMLInputElement }) {\n sportPayload.is_active = event.target.checked\n }\n function resetSportPayload() {\n sportPayload.sport_id = 0\n sportPayload.color = null\n sportPayload.is_active = true\n sportPayload.stopped_speed_threshold = 1\n store.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n }\n function updateSport(event: Event) {\n event.preventDefault()\n store.dispatch(\n AUTH_USER_STORE.ACTIONS.UPDATE_USER_SPORT_PREFERENCES,\n sportPayload\n )\n }\n function resetSport(event: Event, sportId: number) {\n event.preventDefault()\n store.dispatch(\n AUTH_USER_STORE.ACTIONS.RESET_USER_SPORT_PREFERENCES,\n sportId\n )\n }\n\n watch(\n () => loading.value,\n (newIsLoading) => {\n if (!newIsLoading && !errorMessages.value) {\n resetSportPayload()\n }\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n const _component_SportImage = _resolveComponent(\"SportImage\")!\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_unref(sports).length > 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n (_unref(isEdition))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_4, [\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _cache[0] || (_cache[0] = _withModifiers(($event: any) => (_ctx.$router.push('/profile/sports')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('buttons.BACK')), 1)\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_5, [\n _createElementVNode(\"button\", {\n onClick: _cache[1] || (_cache[1] = ($event: any) => (_ctx.$router.push('/profile/edit/sports')))\n }, _toDisplayString(_ctx.$t('user.PROFILE.EDIT_SPORTS_PREFERENCES')), 1),\n _createElementVNode(\"button\", {\n onClick: _cache[2] || (_cache[2] = ($event: any) => (_ctx.$router.push('/')))\n }, _toDisplayString(_ctx.$t('common.HOME')), 1)\n ]))\n ]),\n _createElementVNode(\"table\", null, [\n _createElementVNode(\"thead\", null, [\n _createElementVNode(\"tr\", null, [\n _createElementVNode(\"th\", null, _toDisplayString(_ctx.$t('user.PROFILE.SPORT.COLOR')), 1),\n _createElementVNode(\"th\", _hoisted_6, _toDisplayString(_ctx.$t('workouts.SPORT', 0)), 1),\n _createElementVNode(\"th\", null, _toDisplayString(_ctx.$t('workouts.WORKOUT', 0)), 1),\n _createElementVNode(\"th\", null, _toDisplayString(_ctx.$t('user.PROFILE.SPORT.IS_ACTIVE')), 1),\n _createElementVNode(\"th\", null, _toDisplayString(_ctx.$t('user.PROFILE.SPORT.STOPPED_SPEED_THRESHOLD')), 1),\n (_unref(isEdition))\n ? (_openBlock(), _createElementBlock(\"th\", _hoisted_7, _toDisplayString(_ctx.$t('user.PROFILE.SPORT.ACTION')), 1))\n : _createCommentVNode(\"\", true)\n ])\n ]),\n _createElementVNode(\"tbody\", null, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(translatedSports), (sport) => {\n return (_openBlock(), _createElementBlock(\"tr\", {\n key: sport.id\n }, [\n _createElementVNode(\"td\", null, [\n _createElementVNode(\"span\", _hoisted_8, _toDisplayString(_ctx.$t('user.PROFILE.SPORT.COLOR')), 1),\n (isSportInEdition(sport.id))\n ? (_openBlock(), _createElementBlock(\"input\", {\n key: 0,\n class: \"sport-color\",\n type: \"color\",\n value: sportPayload.color,\n onInput: updateColor\n }, null, 40, _hoisted_9))\n : (_openBlock(), _createBlock(_component_SportImage, {\n key: 1,\n title: sport.translatedLabel,\n \"sport-label\": sport.label,\n color: sport.color ? sport.color : _unref(sportColors)[sport.label]\n }, null, 8, [\"title\", \"sport-label\", \"color\"]))\n ]),\n _createElementVNode(\"td\", {\n class: _normalizeClass([\"sport-label\", { 'disabled-sport': !sport.is_active }])\n }, [\n _createElementVNode(\"span\", _hoisted_10, _toDisplayString(_ctx.$t('user.PROFILE.SPORT.LABEL')), 1),\n _createTextVNode(\" \" + _toDisplayString(sport.translatedLabel) + \" \", 1),\n (!sport.is_active)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_11, \" (\" + _toDisplayString(_ctx.$t('user.PROFILE.SPORT.DISABLED_BY_ADMIN')) + \") \", 1))\n : _createCommentVNode(\"\", true),\n (_unref(loading) && isSportInEdition(sport.id))\n ? (_openBlock(), _createElementBlock(\"i\", _hoisted_12))\n : _createCommentVNode(\"\", true),\n (_unref(errorMessages) && sportPayload.sport_id === sport.id)\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 2,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true)\n ], 2),\n _createElementVNode(\"td\", {\n class: _normalizeClass([\"text-center\", { 'disabled-sport': !sport.is_active }])\n }, [\n _createElementVNode(\"span\", _hoisted_13, _toDisplayString(_ctx.$t('workouts.WORKOUT', 0)), 1),\n _createElementVNode(\"i\", {\n class: _normalizeClass(`fa fa${\n _unref(user).sports_list.includes(sport.id) ? '-check' : ''\n }`),\n \"aria-hidden\": \"true\"\n }, null, 2)\n ], 2),\n _createElementVNode(\"td\", {\n class: _normalizeClass([\"text-center\", { 'disabled-sport': !sport.is_active }])\n }, [\n _createElementVNode(\"span\", _hoisted_14, _toDisplayString(_ctx.$t('user.PROFILE.SPORT.IS_ACTIVE')), 1),\n (isSportInEdition(sport.id) && sport.is_active)\n ? (_openBlock(), _createElementBlock(\"input\", {\n key: 0,\n type: \"checkbox\",\n checked: sport.is_active_for_user,\n onChange: updateIsActive\n }, null, 40, _hoisted_15))\n : (_openBlock(), _createElementBlock(\"i\", {\n key: 1,\n class: _normalizeClass(`fa fa${sport.is_active_for_user ? '-check' : ''}`),\n \"aria-hidden\": \"true\"\n }, null, 2))\n ], 2),\n _createElementVNode(\"td\", {\n class: _normalizeClass([\"text-center\", { 'disabled-sport': !sport.is_active }])\n }, [\n _createElementVNode(\"span\", _hoisted_16, _toDisplayString(_ctx.$t('user.PROFILE.SPORT.STOPPED_SPEED_THRESHOLD')), 1),\n (isSportInEdition(sport.id) && sport.is_active)\n ? (_openBlock(), _createElementBlock(\"input\", {\n key: 0,\n class: \"threshold-input\",\n type: \"number\",\n min: \"0\",\n step: \"0.1\",\n value: sportPayload.stopped_speed_threshold,\n onInput: updateThreshold\n }, null, 40, _hoisted_17))\n : (_openBlock(), _createElementBlock(\"span\", _hoisted_18, _toDisplayString(sport.stopped_speed_threshold), 1))\n ], 2),\n (_unref(isEdition))\n ? (_openBlock(), _createElementBlock(\"td\", _hoisted_19, [\n _createElementVNode(\"span\", _hoisted_20, _toDisplayString(_ctx.$t('user.PROFILE.SPORT.ACTION')), 1),\n (sportPayload.sport_id === 0)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 0,\n onClick: ($event: any) => (updateSportInEdition(sport))\n }, _toDisplayString(_ctx.$t('buttons.EDIT')), 9, _hoisted_21))\n : _createCommentVNode(\"\", true),\n (isSportInEdition(sport.id))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_22, [\n _createElementVNode(\"button\", {\n disabled: _unref(loading),\n onClick: updateSport\n }, _toDisplayString(_ctx.$t('buttons.SUBMIT')), 9, _hoisted_23),\n _createElementVNode(\"button\", {\n disabled: _unref(loading),\n onClick: (e) => resetSport(e, sport.id)\n }, _toDisplayString(_ctx.$t('buttons.RESET')), 9, _hoisted_24),\n _createElementVNode(\"button\", {\n disabled: _unref(loading),\n onClick: _cache[3] || (_cache[3] = ($event: any) => (updateSportInEdition(null)))\n }, _toDisplayString(_ctx.$t('buttons.CANCEL')), 9, _hoisted_25)\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n }), 128))\n ])\n ]),\n (_unref(isEdition))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_26, [\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _cache[4] || (_cache[4] = _withModifiers(($event: any) => (_ctx.$router.push('/profile/sports')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('buttons.BACK')), 1)\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_27, [\n _createElementVNode(\"button\", {\n onClick: _cache[5] || (_cache[5] = ($event: any) => (_ctx.$router.push('/profile/edit/sports')))\n }, _toDisplayString(_ctx.$t('user.PROFILE.EDIT_SPORTS_PREFERENCES')), 1),\n _createElementVNode(\"button\", {\n onClick: _cache[6] || (_cache[6] = ($event: any) => (_ctx.$router.push('/')))\n }, _toDisplayString(_ctx.$t('common.HOME')), 1)\n ]))\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n}\n}\n\n})","import script from \"./UserSportPreferences.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserSportPreferences.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserSportPreferences.vue?vue&type=style&index=0&id=74e52489&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-74e52489\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, unref as _unref, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-74257266\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"about-text\" }\nconst _hoisted_2 = [\"innerHTML\"]\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-book fa-padding\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_4 = {\n href: \"https://samr1.github.io/FitTrackee/\",\n target: \"_blank\",\n rel: \"noopener noreferrer\"\n}\nconst _hoisted_5 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-github fa-padding\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_6 = {\n href: \"https://github.com/SamR1/FitTrackee\",\n target: \"_blank\",\n rel: \"noopener noreferrer\"\n}\nconst _hoisted_7 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-balance-scale fa-padding\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_8 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"a\", {\n href: \"https://choosealicense.com/licenses/agpl-3.0/\",\n target: \"_blank\",\n rel: \"noopener noreferrer\"\n}, \" AGPLv3 \", -1))\nconst _hoisted_9 = { key: 0 }\nconst _hoisted_10 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-envelope-o fa-padding\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_11 = [\"href\"]\n\nimport { ComputedRef, computed, capitalize } from 'vue'\n\n import { ROOT_STORE } from '@/store/constants'\n import { TAppConfig } from '@/types/application'\n import { useStore } from '@/use/useStore'\n\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'About',\n setup(__props) {\n\n const store = useStore()\n const appConfig: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.APP_CONFIG]\n )\n\nreturn (_ctx: any,_cache: any) => {\n const _component_i18n_t = _resolveComponent(\"i18n-t\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"p\", {\n class: \"error-message\",\n innerHTML: _ctx.$t('about.FITTRACKEE_DESCRIPTION')\n }, null, 8, _hoisted_2),\n _createElementVNode(\"p\", null, [\n _hoisted_3,\n _createElementVNode(\"a\", _hoisted_4, _toDisplayString(capitalize(_ctx.$t('common.DOCUMENTATION'))), 1)\n ]),\n _createElementVNode(\"p\", null, [\n _hoisted_5,\n _createElementVNode(\"a\", _hoisted_6, _toDisplayString(_ctx.$t('about.SOURCE_CODE')), 1)\n ]),\n _createElementVNode(\"p\", null, [\n _hoisted_7,\n _createVNode(_component_i18n_t, { keypath: \"about.FITTRACKEE_LICENSE\" }, {\n default: _withCtx(() => [\n _hoisted_8\n ]),\n _: 1\n })\n ]),\n (_unref(appConfig).admin_contact)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_9, [\n _hoisted_10,\n _createElementVNode(\"a\", {\n href: `mailto:${_unref(appConfig).admin_contact}`\n }, _toDisplayString(_ctx.$t('about.CONTACT_ADMIN')), 9, _hoisted_11)\n ]))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n}\n}\n\n})","import script from \"./About.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./About.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./About.vue?vue&type=style&index=0&id=74257266&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-74257266\"]])\n\nexport default __exports__","\n\n\n","import { render } from \"./BikePic.vue?vue&type=template&id=795f7f5f&scoped=true\"\nconst script = {}\n\nimport \"./BikePic.vue?vue&type=style&index=0&id=795f7f5f&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-795f7f5f\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createVNode as _createVNode, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-bffb50d0\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"about\",\n class: \"view\"\n}\nconst _hoisted_2 = { class: \"container\" }\nconst _hoisted_3 = { class: \"container-sub\" }\nconst _hoisted_4 = { class: \"container-sub about-details\" }\n\nimport About from '@/components/About.vue'\n import BikePic from '@/components/BikePic.vue'\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'AboutView',\n setup(__props) {\n\n \nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createVNode(BikePic)\n ]),\n _createElementVNode(\"div\", _hoisted_4, [\n _createVNode(About)\n ])\n ])\n ]))\n}\n}\n\n})","import script from \"./AboutView.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./AboutView.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./AboutView.vue?vue&type=style&index=0&id=bffb50d0&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-bffb50d0\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, createElementBlock as _createElementBlock, normalizeClass as _normalizeClass, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-96abcc38\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"timeline-workout\" }\nconst _hoisted_2 = { class: \"box\" }\nconst _hoisted_3 = { class: \"workout-user-date\" }\nconst _hoisted_4 = { class: \"workout-user\" }\nconst _hoisted_5 = [\"title\"]\nconst _hoisted_6 = { key: 0 }\nconst _hoisted_7 = {\n key: 1,\n class: \"no-map\"\n}\nconst _hoisted_8 = { class: \"img\" }\nconst _hoisted_9 = { class: \"data\" }\nconst _hoisted_10 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-clock-o\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_11 = { key: 0 }\nconst _hoisted_12 = { class: \"data\" }\nconst _hoisted_13 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-road\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_14 = {\n key: 0,\n class: \"data elevation\"\n}\nconst _hoisted_15 = [\"alt\"]\nconst _hoisted_16 = { class: \"data-values\" }\nconst _hoisted_17 = {\n key: 1,\n class: \"data altitude\"\n}\nconst _hoisted_18 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-location-arrow\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_19 = { class: \"data-values\" }\n\nimport { Locale, formatDistance } from 'date-fns'\n import { ComputedRef, computed, toRefs, withDefaults } from 'vue'\n\n import StaticMap from '@/components/Common/StaticMap.vue'\n import UserPicture from '@/components/User/UserPicture.vue'\n import { ROOT_STORE } from '@/store/constants'\n import { ISport } from '@/types/sports'\n import { IUserProfile } from '@/types/user'\n import { IWorkout } from '@/types/workouts'\n import { useStore } from '@/use/useStore'\n import { formatDate } from '@/utils/dates'\n\n interface Props {\n user: IUserProfile\n useImperialUnits: boolean\n workout?: IWorkout\n sport?: ISport\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'WorkoutCard',\n props: {\n user: null,\n useImperialUnits: { type: Boolean },\n workout: { default: () => ({} as IWorkout) },\n sport: { default: () => ({} as ISport) }\n },\n setup(__props: any) {\n\nconst props = __props as { user: IUserProfile, useImperialUnits: boolean, workout: IWorkout, sport: ISport };\n\n \n\n const store = useStore()\n\n const { user, workout, sport, useImperialUnits } = toRefs(props)\n const locale: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.LOCALE]\n )\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_SportImage = _resolveComponent(\"SportImage\")!\n const _component_Distance = _resolveComponent(\"Distance\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n _createVNode(UserPicture, { user: _unref(user) }, null, 8, [\"user\"]),\n (_unref(user).username)\n ? (_openBlock(), _createBlock(_component_router_link, {\n key: 0,\n class: \"workout-user-name\",\n to: {\n name: 'User',\n params: { username: _unref(user).username },\n }\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_unref(user).username), 1)\n ]),\n _: 1\n }, 8, [\"to\"]))\n : _createCommentVNode(\"\", true)\n ]),\n (_unref(workout).id)\n ? (_openBlock(), _createBlock(_component_router_link, {\n key: 0,\n class: \"workout-title\",\n to: {\n name: 'Workout',\n params: { workoutId: _unref(workout).id },\n }\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_unref(workout).title), 1)\n ]),\n _: 1\n }, 8, [\"to\"]))\n : _createCommentVNode(\"\", true),\n (_unref(workout).workout_date && _unref(user))\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 1,\n class: \"workout-date\",\n title: \n _unref(formatDate)(_unref(workout).workout_date, _unref(user).timezone, _unref(user).date_format)\n \n }, _toDisplayString(_unref(formatDistance)(new Date(_unref(workout).workout_date), new Date(), {\n addSuffix: true,\n locale: _unref(locale),\n })), 9, _hoisted_5))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"workout-map\", { 'no-cursor': !_unref(workout) }]),\n onClick: _cache[0] || (_cache[0] = ($event: any) => (\n _unref(workout).id\n ? _ctx.$router.push({\n name: 'Workout',\n params: { workoutId: _unref(workout).id },\n })\n : null\n ))\n }, [\n (_unref(workout))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_6, [\n (_unref(workout).with_gpx)\n ? (_openBlock(), _createBlock(StaticMap, {\n key: 0,\n workout: _unref(workout)\n }, null, 8, [\"workout\"]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_7, _toDisplayString(_ctx.$t('workouts.NO_MAP')), 1))\n ]))\n : _createCommentVNode(\"\", true)\n ], 2),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"workout-data\", { 'without-gpx': _unref(workout) && !_unref(workout).with_gpx }]),\n onClick: _cache[1] || (_cache[1] = ($event: any) => (\n _unref(workout).id\n ? _ctx.$router.push({\n name: 'Workout',\n params: { workoutId: _unref(workout).id },\n })\n : null\n ))\n }, [\n _createElementVNode(\"div\", _hoisted_8, [\n (_unref(sport).label)\n ? (_openBlock(), _createBlock(_component_SportImage, {\n key: 0,\n \"sport-label\": _unref(sport).label,\n color: _unref(sport).color\n }, null, 8, [\"sport-label\", \"color\"]))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", _hoisted_9, [\n _hoisted_10,\n (_unref(workout))\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_11, _toDisplayString(_unref(workout).moving), 1))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", _hoisted_12, [\n _hoisted_13,\n (_unref(workout).id)\n ? (_openBlock(), _createBlock(_component_Distance, {\n key: 0,\n distance: _unref(workout).distance,\n digits: 3,\n unitFrom: \"km\",\n useImperialUnits: _unref(useImperialUnits)\n }, null, 8, [\"distance\", \"useImperialUnits\"]))\n : _createCommentVNode(\"\", true)\n ]),\n (_unref(workout) && _unref(workout).with_gpx)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_14, [\n _createElementVNode(\"img\", {\n class: \"mountains\",\n src: \"/img/workouts/mountains.svg\",\n alt: _ctx.$t('workouts.ELEVATION')\n }, null, 8, _hoisted_15),\n _createElementVNode(\"div\", _hoisted_16, [\n (_unref(workout).id)\n ? (_openBlock(), _createBlock(_component_Distance, {\n key: 0,\n distance: _unref(workout).min_alt,\n unitFrom: \"m\",\n displayUnit: false,\n useImperialUnits: _unref(useImperialUnits)\n }, null, 8, [\"distance\", \"useImperialUnits\"]))\n : _createCommentVNode(\"\", true),\n _createTextVNode(\"/ \"),\n (_unref(workout).id)\n ? (_openBlock(), _createBlock(_component_Distance, {\n key: 1,\n distance: _unref(workout).max_alt,\n unitFrom: \"m\",\n useImperialUnits: _unref(useImperialUnits)\n }, null, 8, [\"distance\", \"useImperialUnits\"]))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n : _createCommentVNode(\"\", true),\n (_unref(workout) && _unref(workout).with_gpx)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_17, [\n _hoisted_18,\n _createElementVNode(\"div\", _hoisted_19, [\n _createTextVNode(\" +\"),\n (_unref(workout).id)\n ? (_openBlock(), _createBlock(_component_Distance, {\n key: 0,\n distance: _unref(workout).ascent,\n unitFrom: \"m\",\n displayUnit: false,\n useImperialUnits: _unref(useImperialUnits)\n }, null, 8, [\"distance\", \"useImperialUnits\"]))\n : _createCommentVNode(\"\", true),\n _createTextVNode(\"/- \"),\n (_unref(workout).id)\n ? (_openBlock(), _createBlock(_component_Distance, {\n key: 1,\n distance: _unref(workout).descent,\n unitFrom: \"m\",\n useImperialUnits: _unref(useImperialUnits)\n }, null, 8, [\"distance\", \"useImperialUnits\"]))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n : _createCommentVNode(\"\", true)\n ], 2)\n ])\n ]))\n}\n}\n\n})","import script from \"./WorkoutCard.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./WorkoutCard.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./WorkoutCard.vue?vue&type=style&index=0&id=96abcc38&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-96abcc38\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-35567bf2\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"timeline\" }\nconst _hoisted_2 = { class: \"section-title\" }\nconst _hoisted_3 = { key: 0 }\nconst _hoisted_4 = { key: 1 }\nconst _hoisted_5 = {\n key: 1,\n class: \"more-workouts\"\n}\n\nimport { ComputedRef, computed, ref, onBeforeMount, toRefs } from 'vue'\n\n import WorkoutCard from '@/components/Workout/WorkoutCard.vue'\n import NoWorkouts from '@/components/Workouts/NoWorkouts.vue'\n import { WORKOUTS_STORE } from '@/store/constants'\n import { ISport } from '@/types/sports'\n import { IUserProfile } from '@/types/user'\n import { IWorkout } from '@/types/workouts'\n import { useStore } from '@/use/useStore'\n import { defaultOrder } from '@/utils/workouts'\n\n interface Props {\n sports: ISport[]\n user: IUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'Timeline',\n props: {\n sports: null,\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n sports: ISport[]\n user: IUserProfile\n };\n\n \n\n const store = useStore()\n\n const { sports, user } = toRefs(props)\n const page = ref(1)\n const per_page = 5\n const initWorkoutsCount =\n props.user.nb_workouts >= per_page ? per_page : props.user.nb_workouts\n onBeforeMount(() => loadWorkouts())\n const workouts: ComputedRef = computed(\n () => store.getters[WORKOUTS_STORE.GETTERS.TIMELINE_WORKOUTS]\n )\n const moreWorkoutsExist: ComputedRef = computed(() =>\n workouts.value.length > 0\n ? workouts.value[workouts.value.length - 1].previous_workout !== null\n : false\n )\n\n function loadWorkouts() {\n store.dispatch(WORKOUTS_STORE.ACTIONS.GET_TIMELINE_WORKOUTS, {\n page: page.value,\n per_page,\n ...defaultOrder,\n })\n }\n function loadMoreWorkouts() {\n page.value += 1\n store.dispatch(WORKOUTS_STORE.ACTIONS.GET_MORE_TIMELINE_WORKOUTS, {\n page: page.value,\n per_page,\n ...defaultOrder,\n })\n }\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, _toDisplayString(_ctx.$t('workouts.LATEST_WORKOUTS')), 1),\n (_unref(user).nb_workouts > 0 && _unref(workouts).length === 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList([...Array(_unref(initWorkoutsCount)).keys()], (index) => {\n return (_openBlock(), _createBlock(WorkoutCard, {\n user: _unref(user),\n useImperialUnits: _unref(user).imperial_units,\n key: index\n }, null, 8, [\"user\", \"useImperialUnits\"]))\n }), 128))\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_4, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(workouts), (workout) => {\n return (_openBlock(), _createBlock(WorkoutCard, {\n workout: workout,\n sport: \n _unref(workouts).length > 0\n ? _unref(sports).filter((s) => s.id === workout.sport_id)[0]\n : null\n ,\n user: _unref(user),\n useImperialUnits: _unref(user).imperial_units,\n key: workout.id\n }, null, 8, [\"workout\", \"sport\", \"user\", \"useImperialUnits\"]))\n }), 128)),\n (_unref(workouts).length === 0)\n ? (_openBlock(), _createBlock(NoWorkouts, { key: 0 }))\n : _createCommentVNode(\"\", true),\n (_unref(moreWorkoutsExist))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_5, [\n _createElementVNode(\"button\", { onClick: loadMoreWorkouts }, _toDisplayString(_ctx.$t('workouts.LOAD_MORE_WORKOUT')), 1)\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n ]))\n}\n}\n\n})","import script from \"./Timeline.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Timeline.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Timeline.vue?vue&type=style&index=0&id=35567bf2&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-35567bf2\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, resolveComponent as _resolveComponent, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode } from \"vue\"\n\nconst _hoisted_1 = [\"title\"]\n\nimport { toRefs } from 'vue'\n\n import { IWorkout } from '@/types/workouts'\n interface Props {\n displayHARecord: boolean\n workout: IWorkout\n sportLabel: string\n sportColor: string | null\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'CalendarWorkout',\n props: {\n displayHARecord: { type: Boolean },\n workout: null,\n sportLabel: null,\n sportColor: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n displayHARecord: boolean\n workout: IWorkout\n sportLabel: string\n sportColor: string | null\n };\n\n \n\n const { displayHARecord, workout, sportLabel, sportColor } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n const _component_SportImage = _resolveComponent(\"SportImage\")!\n\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"calendar-workout\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (\n _ctx.$router.push({ name: 'Workout', params: { workoutId: _unref(workout).id } })\n ))\n }, [\n _createVNode(_component_SportImage, {\n \"sport-label\": _unref(sportLabel),\n title: _unref(workout).title,\n color: _unref(sportColor)\n }, null, 8, [\"sport-label\", \"title\", \"color\"]),\n _createElementVNode(\"sup\", null, [\n (_unref(workout).records.length > 0)\n ? (_openBlock(), _createElementBlock(\"i\", {\n key: 0,\n class: \"fa fa-trophy custom-fa-small\",\n \"aria-hidden\": \"true\",\n title: \n _unref(workout).records\n .filter((record) =>\n _unref(displayHARecord) ? true : record.record_type !== 'HA'\n )\n .map((record) => ` ${_ctx.$t(`workouts.RECORD_${record.record_type}`)}`)\n \n }, null, 8, _hoisted_1))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n}\n}\n\n})","import script from \"./CalendarWorkout.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./CalendarWorkout.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./CalendarWorkout.vue?vue&type=style&index=0&id=331e1c8b&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createElementVNode as _createElementVNode } from \"vue\"\n\nconst _hoisted_1 = { class: \"donut-chart\" }\nconst _hoisted_2 = {\n height: \"34\",\n width: \"34\",\n viewBox: \"0 0 34 34\"\n}\nconst _hoisted_3 = [\"stroke\", \"stroke-dashoffset\", \"transform\"]\n\nimport { toRefs } from 'vue'\n\n interface Props {\n colors: Record\n datasets: Record>\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'DonutChart',\n props: {\n colors: null,\n datasets: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n colors: Record\n datasets: Record>\n };\n\n \n\n const { colors, datasets } = toRefs(props)\n let angleOffset = -90\n const cx = 16\n const cy = 16\n const radius = 14\n const circumference = 2 * Math.PI * radius\n\n function calculateStrokeDashOffset(\n percentage: number,\n circumference: number\n ): number {\n return circumference - percentage * circumference\n }\n function returnCircleTransformValue(\n index: number,\n percentage: number\n ): string {\n const rotation = `rotate(${angleOffset}, ${cx}, ${cy})`\n angleOffset = percentage * 360 + angleOffset\n return rotation\n }\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_openBlock(), _createElementBlock(\"svg\", _hoisted_2, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(Object.entries(_unref(datasets)), (data, index) => {\n return (_openBlock(), _createElementBlock(\"g\", { key: index }, [\n _createElementVNode(\"circle\", {\n cx: cx,\n cy: cy,\n r: radius,\n fill: \"transparent\",\n stroke: _unref(colors)[+data[0]],\n \"stroke-dashoffset\": \n calculateStrokeDashOffset(data[1].percentage, circumference)\n ,\n \"stroke-dasharray\": circumference,\n \"stroke-width\": \"3\",\n \"stroke-opacity\": \"0.8\",\n transform: returnCircleTransformValue(index, data[1].percentage)\n }, null, 8, _hoisted_3)\n ]))\n }), 128))\n ]))\n ]))\n}\n}\n\n})","import script from \"./DonutChart.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./DonutChart.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, createVNode as _createVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createBlock as _createBlock, resolveDirective as _resolveDirective, withDirectives as _withDirectives, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-52d4310a\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"calendar-workouts-chart\" }\nconst _hoisted_2 = { class: \"workouts-count\" }\nconst _hoisted_3 = {\n key: 0,\n class: \"workouts-pane\"\n}\nconst _hoisted_4 = { class: \"more-workouts\" }\n\nimport { ref, toRefs } from 'vue'\n\n import CalendarWorkout from '@/components/Dashboard/UserCalendar/CalendarWorkout.vue'\n import DonutChart from '@/components/Dashboard/UserCalendar/DonutChart.vue'\n import { ISport } from '@/types/sports'\n import { IWorkout } from '@/types/workouts'\n import { getSportColor, getSportLabel } from '@/utils/sports'\n\n interface Props {\n colors: Record\n datasets: Record>\n sports: ISport[]\n workouts: IWorkout[]\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'CalendarWorkoutsChart',\n props: {\n colors: null,\n datasets: null,\n sports: null,\n workouts: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n colors: Record\n datasets: Record>\n sports: ISport[]\n workouts: IWorkout[]\n };\n\n \n\n const { colors, datasets, sports, workouts } = toRefs(props)\n const isHidden = ref(true)\n\n function togglePane(event: Event & { target: HTMLElement }) {\n event.stopPropagation()\n isHidden.value = !isHidden.value\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _directive_click_outside = _resolveDirective(\"click-outside\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", {\n class: \"workouts-chart\",\n onClick: togglePane\n }, [\n _createElementVNode(\"div\", _hoisted_2, _toDisplayString(_unref(workouts).length), 1),\n _createVNode(DonutChart, {\n datasets: _unref(datasets),\n colors: _unref(colors)\n }, null, 8, [\"datasets\", \"colors\"])\n ]),\n (!isHidden.value)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n _withDirectives((_openBlock(), _createElementBlock(\"div\", _hoisted_4, [\n _createElementVNode(\"i\", {\n class: \"fa fa-times calendar-more\",\n \"aria-hidden\": \"true\",\n onClick: togglePane\n }),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(workouts), (workout, index) => {\n return (_openBlock(), _createBlock(CalendarWorkout, {\n key: index,\n workout: workout,\n sportLabel: _unref(getSportLabel)(workout, _unref(sports)),\n sportColor: _unref(getSportColor)(workout, _unref(sports))\n }, null, 8, [\"workout\", \"sportLabel\", \"sportColor\"]))\n }), 128))\n ])), [\n [_directive_click_outside, togglePane]\n ])\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n}\n}\n\n})","import script from \"./CalendarWorkoutsChart.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./CalendarWorkoutsChart.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./CalendarWorkoutsChart.vue?vue&type=style&index=0&id=52d4310a&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-52d4310a\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createVNode as _createVNode, createElementVNode as _createElementVNode } from \"vue\"\n\nconst _hoisted_1 = { class: \"calendar-workouts\" }\nconst _hoisted_2 = { class: \"desktop-display\" }\nconst _hoisted_3 = {\n key: 0,\n class: \"workouts-display\"\n}\nconst _hoisted_4 = {\n key: 1,\n class: \"donut-display\"\n}\nconst _hoisted_5 = { class: \"mobile-display\" }\nconst _hoisted_6 = {\n key: 0,\n class: \"donut-display\"\n}\n\nimport { computed, toRefs } from 'vue'\n\n import CalendarWorkout from '@/components/Dashboard/UserCalendar/CalendarWorkout.vue'\n import CalendarWorkoutsChart from '@/components/Dashboard/UserCalendar/CalendarWorkoutsChart.vue'\n import { ISport } from '@/types/sports'\n import { IWorkout } from '@/types/workouts'\n import { getSportColor, getSportLabel, sportIdColors } from '@/utils/sports'\n import { getDonutDatasets } from '@/utils/workouts'\n\n interface Props {\n displayHARecord: boolean\n workouts: IWorkout[]\n sports: ISport[]\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'CalendarWorkouts',\n props: {\n displayHARecord: { type: Boolean },\n workouts: null,\n sports: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n displayHARecord: boolean\n workouts: IWorkout[]\n sports: ISport[]\n };\n\n \n\n const { displayHARecord, workouts, sports } = toRefs(props)\n const chartDatasets = computed(() => getDonutDatasets(props.workouts))\n const colors = computed(() => sportIdColors(props.sports))\n const displayedWorkoutCount = 6\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n (_unref(workouts).length <= displayedWorkoutCount)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(workouts).slice(0, displayedWorkoutCount), (workout, index) => {\n return (_openBlock(), _createBlock(CalendarWorkout, {\n key: index,\n displayHARecord: _unref(displayHARecord),\n workout: workout,\n sportLabel: _unref(getSportLabel)(workout, _unref(sports)),\n sportColor: _unref(getSportColor)(workout, _unref(sports))\n }, null, 8, [\"displayHARecord\", \"workout\", \"sportLabel\", \"sportColor\"]))\n }), 128))\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_4, [\n _createVNode(CalendarWorkoutsChart, {\n workouts: _unref(workouts),\n sports: _unref(sports),\n datasets: _unref(chartDatasets),\n colors: _unref(colors)\n }, null, 8, [\"workouts\", \"sports\", \"datasets\", \"colors\"])\n ]))\n ]),\n _createElementVNode(\"div\", _hoisted_5, [\n (_unref(workouts).length > 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_6, [\n _createVNode(CalendarWorkoutsChart, {\n workouts: _unref(workouts),\n sports: _unref(sports),\n datasets: _unref(chartDatasets),\n colors: _unref(colors)\n }, null, 8, [\"workouts\", \"sports\", \"datasets\", \"colors\"])\n ]))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n}\n}\n\n})","import script from \"./CalendarWorkouts.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./CalendarWorkouts.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./CalendarWorkouts.vue?vue&type=style&index=0&id=5aab7455&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, unref as _unref, createVNode as _createVNode, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass } from \"vue\"\n\nconst _hoisted_1 = { class: \"calendar-cells\" }\nconst _hoisted_2 = { class: \"calendar-cell-day\" }\n\nimport { addDays, format, isSameDay, isSameMonth, isToday } from 'date-fns'\n import { Ref, ref, toRefs, watch, onMounted } from 'vue'\n\n import CalendarWorkouts from '@/components/Dashboard/UserCalendar/CalendarWorkouts.vue'\n import { ISport } from '@/types/sports'\n import { IWorkout } from '@/types/workouts'\n import { getDateWithTZ } from '@/utils/dates'\n\n interface Props {\n currentDay: Date\n displayHARecord: boolean\n endDate: Date\n sports: ISport[]\n startDate: Date\n timezone: string\n weekStartingMonday: boolean\n workouts: IWorkout[]\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'CalendarCells',\n props: {\n currentDay: null,\n displayHARecord: { type: Boolean },\n endDate: null,\n sports: null,\n startDate: null,\n timezone: null,\n weekStartingMonday: { type: Boolean },\n workouts: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n currentDay: Date\n displayHARecord: boolean\n endDate: Date\n sports: ISport[]\n startDate: Date\n timezone: string\n weekStartingMonday: boolean\n workouts: IWorkout[]\n };\n\n \n\n const {\n currentDay,\n displayHARecord,\n endDate,\n sports,\n startDate,\n timezone,\n weekStartingMonday,\n workouts,\n } = toRefs(props)\n const rows: Ref = ref([])\n\n onMounted(() => getDays())\n\n function getDays() {\n rows.value = []\n let day = startDate.value\n while (day <= endDate.value) {\n const days: Date[] = []\n for (let i = 0; i < 7; i++) {\n days.push(day)\n day = addDays(day, 1)\n }\n rows.value.push(days)\n }\n }\n function isWeekEnd(day: number): boolean {\n return weekStartingMonday.value\n ? [5, 6].includes(day)\n : [0, 6].includes(day)\n }\n function filterWorkouts(day: Date, workouts: IWorkout[]) {\n if (workouts) {\n return workouts\n .filter((workout) =>\n isSameDay(getDateWithTZ(workout.workout_date, timezone.value), day)\n )\n .reverse()\n }\n return []\n }\n\n watch(\n () => props.currentDay,\n () => getDays()\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(rows.value, (row, index) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"calendar-row\",\n key: index\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(row, (day, i) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: _normalizeClass([\"calendar-cell\", {\n 'disabled-cell': !_unref(isSameMonth)(day, _unref(currentDay)),\n 'week-end': isWeekEnd(i),\n today: _unref(isToday)(day),\n }]),\n key: i\n }, [\n _createVNode(CalendarWorkouts, {\n workouts: filterWorkouts(day, _unref(workouts)),\n sports: _unref(sports),\n displayHARecord: _unref(displayHARecord)\n }, null, 8, [\"workouts\", \"sports\", \"displayHARecord\"]),\n _createElementVNode(\"div\", _hoisted_2, _toDisplayString(_unref(format)(day, 'd')), 1)\n ], 2))\n }), 128))\n ]))\n }), 128))\n ]))\n}\n}\n\n})","import script from \"./CalendarCells.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./CalendarCells.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./CalendarCells.vue?vue&type=style&index=0&id=34b99f0e&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, unref as _unref, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode } from \"vue\"\n\nconst _hoisted_1 = { class: \"calendar-days\" }\n\nimport { Locale, format, addDays } from 'date-fns'\n\n interface Props {\n startDate: Date\n localeOptions: Locale\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'CalendarDays',\n props: {\n startDate: null,\n localeOptions: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n startDate: Date\n localeOptions: Locale\n };\n\n \n\n const days = []\n for (let i = 0; i < 7; i++) {\n days.push(addDays(props.startDate, i))\n }\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList(days, (day, index) => {\n return _createElementVNode(\"div\", {\n class: \"calendar-day\",\n key: index\n }, _toDisplayString(_unref(format)(day, 'EEE', { locale: __props.localeOptions })), 1)\n }), 64))\n ]))\n}\n}\n\n})","import script from \"./CalendarDays.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./CalendarDays.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./CalendarDays.vue?vue&type=style&index=0&id=4f3dc99e&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, unref as _unref, toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"calendar-header\" }\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-chevron-left\",\n \"aria-hidden\": \"true\"\n}, null, -1)\nconst _hoisted_3 = [\n _hoisted_2\n]\nconst _hoisted_4 = { class: \"calendar-month\" }\nconst _hoisted_5 = /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-chevron-right\",\n \"aria-hidden\": \"true\"\n}, null, -1)\nconst _hoisted_6 = [\n _hoisted_5\n]\n\nimport { Locale, format } from 'date-fns'\n import { toRefs } from 'vue'\n\n interface Props {\n day: Date\n localeOptions: Locale\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'CalendarHeader',\n props: {\n day: null,\n localeOptions: null\n },\n emits: ['displayNextMonth', 'displayPreviousMonth'],\n setup(__props: any, { emit }) {\n\nconst props = __props as {\n day: Date\n localeOptions: Locale\n };\n\n \n\n \n\n const { day, localeOptions } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", {\n class: \"calendar-arrow calendar-arrow-left\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (emit('displayPreviousMonth')))\n }, _hoisted_3),\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"span\", null, _toDisplayString(_unref(format)(_unref(day), 'MMM yyyy', { locale: _unref(localeOptions) })), 1)\n ]),\n _createElementVNode(\"div\", {\n class: \"calendar-arrow calendar-arrow-right\",\n onClick: _cache[1] || (_cache[1] = ($event: any) => (emit('displayNextMonth')))\n }, _hoisted_6)\n ]))\n}\n}\n\n})","import script from \"./CalendarHeader.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./CalendarHeader.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./CalendarHeader.vue?vue&type=style&index=0&id=79a65a70&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { id: \"user-calendar\" }\nconst _hoisted_2 = { class: \"calendar-card box\" }\n\nimport { Locale, addMonths, format, subMonths } from 'date-fns'\n import { ComputedRef, computed, ref, toRefs, onBeforeMount } from 'vue'\n\n import CalendarCells from '@/components/Dashboard/UserCalendar/CalendarCells.vue'\n import CalendarDays from '@/components/Dashboard/UserCalendar/CalendarDays.vue'\n import CalendarHeader from '@/components/Dashboard/UserCalendar/CalendarHeader.vue'\n import { ROOT_STORE, WORKOUTS_STORE } from '@/store/constants'\n import { ISport } from '@/types/sports'\n import { IAuthUserProfile } from '@/types/user'\n import { IWorkout, TWorkoutsPayload } from '@/types/workouts'\n import { useStore } from '@/use/useStore'\n import { getCalendarStartAndEnd } from '@/utils/dates'\n import { defaultOrder } from '@/utils/workouts'\n\n interface Props {\n sports: ISport[]\n user: IAuthUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'index',\n props: {\n sports: null,\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n sports: ISport[]\n user: IAuthUserProfile\n };\n\n \n\n const store = useStore()\n\n const { sports, user } = toRefs(props)\n const dateFormat = 'yyyy-MM-dd'\n const day = ref(new Date())\n const calendarDates = ref(getCalendarStartAndEnd(day.value, props.user.weekm))\n const calendarWorkouts: ComputedRef = computed(\n () => store.getters[WORKOUTS_STORE.GETTERS.CALENDAR_WORKOUTS]\n )\n const localeOptions: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.LOCALE]\n )\n\n onBeforeMount(() => getCalendarWorkouts())\n\n function getCalendarWorkouts() {\n calendarDates.value = getCalendarStartAndEnd(day.value, props.user.weekm)\n const apiParams: TWorkoutsPayload = {\n from: format(calendarDates.value.start, dateFormat),\n to: format(calendarDates.value.end, dateFormat),\n page: 1,\n per_page: 100,\n ...defaultOrder,\n }\n store.dispatch(WORKOUTS_STORE.ACTIONS.GET_CALENDAR_WORKOUTS, apiParams)\n }\n function displayNextMonth() {\n day.value = addMonths(day.value, 1)\n getCalendarWorkouts()\n }\n function displayPreviousMonth() {\n day.value = subMonths(day.value, 1)\n getCalendarWorkouts()\n }\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createVNode(CalendarHeader, {\n day: day.value,\n \"locale-options\": _unref(localeOptions),\n onDisplayNextMonth: displayNextMonth,\n onDisplayPreviousMonth: displayPreviousMonth\n }, null, 8, [\"day\", \"locale-options\"]),\n _createVNode(CalendarDays, {\n \"start-date\": calendarDates.value.start,\n \"locale-options\": _unref(localeOptions)\n }, null, 8, [\"start-date\", \"locale-options\"]),\n _createVNode(CalendarCells, {\n currentDay: day.value,\n displayHARecord: _unref(user).display_ascent,\n \"end-date\": calendarDates.value.end,\n sports: _unref(sports),\n \"start-date\": calendarDates.value.start,\n timezone: _unref(user).timezone,\n workouts: _unref(calendarWorkouts),\n weekStartingMonday: _unref(user).weekm\n }, null, 8, [\"currentDay\", \"displayHARecord\", \"end-date\", \"sports\", \"start-date\", \"timezone\", \"workouts\", \"weekStartingMonday\"])\n ])\n ]))\n}\n}\n\n})","import script from \"./index.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./index.vue?vue&type=style&index=0&id=3e7444d9&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, unref as _unref, createVNode as _createVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-1bcddc12\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"user-month-stats\" }\n\nimport { endOfMonth, startOfMonth } from 'date-fns'\n import { toRefs } from 'vue'\n\n import StatChart from '@/components/Common/StatsChart/index.vue'\n import { ISport } from '@/types/sports'\n import { IUserProfile } from '@/types/user'\n\n interface Props {\n sports: ISport[]\n user: IUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserMonthStats',\n props: {\n sports: null,\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n sports: ISport[]\n user: IUserProfile\n };\n\n \n\n const { sports, user } = toRefs(props)\n const date = new Date()\n const chartParams = {\n duration: 'week',\n start: startOfMonth(date),\n end: endOfMonth(date),\n }\n const selectedSportIds = props.sports.map((sport) => sport.id)\n\nreturn (_ctx: any,_cache: any) => {\n const _component_Card = _resolveComponent(\"Card\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_Card, null, {\n title: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('dashboard.THIS_MONTH')), 1)\n ]),\n content: _withCtx(() => [\n _createVNode(StatChart, {\n sports: _unref(sports),\n user: _unref(user),\n \"chart-params\": chartParams,\n \"displayed-sport-ids\": _unref(selectedSportIds),\n \"hide-chart-if-no-data\": true\n }, null, 8, [\"sports\", \"user\", \"displayed-sport-ids\"])\n ]),\n _: 1\n })\n ]))\n}\n}\n\n})","import script from \"./UserMonthStats.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserMonthStats.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserMonthStats.vue?vue&type=style&index=0&id=1bcddc12&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-1bcddc12\"]])\n\nexport default __exports__","import createI18n from '@/i18n'\nimport { ITranslatedSport } from '@/types/sports'\nimport { TUnit } from '@/types/units'\nimport { ICardRecord, IRecord, IRecordsBySports } from '@/types/workouts'\nimport { formatDate, getDateFormat } from '@/utils/dates'\nimport { convertDistance, units } from '@/utils/units'\n\nconst { locale } = createI18n.global\n\nexport const formatRecord = (\n record: IRecord,\n tz: string,\n useImperialUnits: boolean,\n date_format: string\n): Record => {\n const distanceUnitFrom: TUnit = 'km'\n const distanceUnitTo: TUnit = useImperialUnits\n ? units[distanceUnitFrom].defaultTarget\n : distanceUnitFrom\n const ascentUnitFrom: TUnit = 'm'\n const ascentUnitTo: TUnit = useImperialUnits\n ? units[ascentUnitFrom].defaultTarget\n : ascentUnitFrom\n let value\n switch (record.record_type) {\n case 'AS':\n case 'MS':\n value = `${convertDistance(\n +record.value,\n distanceUnitFrom,\n distanceUnitTo,\n 2\n )} ${distanceUnitTo}/h`\n break\n case 'FD':\n value = `${convertDistance(\n +record.value,\n distanceUnitFrom,\n distanceUnitTo,\n 3\n )} ${distanceUnitTo}`\n break\n case 'HA':\n value = `${convertDistance(\n +record.value,\n ascentUnitFrom,\n ascentUnitTo,\n 2\n )} ${ascentUnitTo}`\n break\n case 'LD':\n value = record.value\n break\n default:\n throw new Error(\n `Invalid record type, expected: \"AS\", \"FD\", \"HA\", \"LD\", \"MD\", got: \"${record.record_type}\"`\n )\n }\n return {\n workout_date: formatDate(record.workout_date, tz, date_format, false),\n workout_id: record.workout_id,\n id: record.id,\n record_type: record.record_type,\n value: value,\n }\n}\n\nexport const sortRecords = (a: ICardRecord, b: ICardRecord): number => {\n const recordALabel = a.label.toLowerCase()\n const recordBLabel = b.label.toLowerCase()\n return recordALabel > recordBLabel ? 1 : recordALabel < recordBLabel ? -1 : 0\n}\n\nexport const getRecordsBySports = (\n records: IRecord[],\n translatedSports: ITranslatedSport[],\n tz: string,\n useImperialUnits: boolean,\n display_ascent: boolean,\n date_format: string\n): IRecordsBySports => {\n date_format = getDateFormat(date_format, locale.value)\n return records\n .filter((r) => (display_ascent ? true : r.record_type !== 'HA'))\n .reduce((sportList: IRecordsBySports, record) => {\n const sport = translatedSports.find((s) => s.id === record.sport_id)\n if (sport && sport.label) {\n if (sportList[sport.translatedLabel] === void 0) {\n sportList[sport.translatedLabel] = {\n label: sport.label,\n color: sport.color,\n records: [],\n }\n }\n sportList[sport.translatedLabel].records.push(\n formatRecord(record, tz, useImperialUnits, date_format)\n )\n }\n return sportList\n }, {})\n}\n","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, resolveComponent as _resolveComponent, createVNode as _createVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createElementVNode as _createElementVNode, withCtx as _withCtx, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-8d17c606\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"records-card\" }\nconst _hoisted_2 = { class: \"record-type\" }\nconst _hoisted_3 = { class: \"record-value\" }\nconst _hoisted_4 = { class: \"record-date\" }\n\nimport { toRefs } from 'vue'\n import { useI18n } from 'vue-i18n'\n\n import { ICardRecord, IRecord, IRecordsBySports } from '@/types/workouts'\n import { sortRecords } from '@/utils/records'\n\n interface Props {\n records: IRecordsBySports\n sportTranslatedLabel: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'RecordsCard',\n props: {\n records: null,\n sportTranslatedLabel: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n records: IRecordsBySports\n sportTranslatedLabel: string\n };\n\n \n\n const { records, sportTranslatedLabel } = toRefs(props)\n\n const { t } = useI18n()\n\n function getTranslatedRecords(records: IRecord[]): ICardRecord[] {\n const translatedRecords: ICardRecord[] = []\n records.map((record) => {\n translatedRecords.push({\n ...record,\n label: t(`workouts.RECORD_${record.record_type}`),\n })\n })\n return translatedRecords.sort(sortRecords)\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _component_SportImage = _resolveComponent(\"SportImage\")!\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_Card = _resolveComponent(\"Card\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_Card, null, {\n title: _withCtx(() => [\n _createVNode(_component_SportImage, {\n \"sport-label\": _unref(records).label,\n color: _unref(records).color\n }, null, 8, [\"sport-label\", \"color\"]),\n _createTextVNode(\" \" + _toDisplayString(_unref(sportTranslatedLabel)), 1)\n ]),\n content: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(getTranslatedRecords(_unref(records).records), (record) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"record\",\n key: record.id\n }, [\n _createElementVNode(\"span\", _hoisted_2, _toDisplayString(record.label), 1),\n _createElementVNode(\"span\", _hoisted_3, _toDisplayString(record.value), 1),\n _createElementVNode(\"span\", _hoisted_4, [\n _createVNode(_component_router_link, {\n to: {\n name: 'Workout',\n params: { workoutId: record.workout_id },\n }\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(record.workout_date), 1)\n ]),\n _: 2\n }, 1032, [\"to\"])\n ])\n ]))\n }), 128))\n ]),\n _: 1\n })\n ]))\n}\n}\n\n})","import script from \"./RecordsCard.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./RecordsCard.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./RecordsCard.vue?vue&type=style&index=0&id=8d17c606&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-8d17c606\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, unref as _unref, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, renderList as _renderList, Fragment as _Fragment, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-f0c85cb8\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"user-records-section\" }\nconst _hoisted_2 = { class: \"section-title\" }\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-trophy custom-fa-small\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_4 = { class: \"user-records\" }\nconst _hoisted_5 = {\n key: 0,\n class: \"no-records\"\n}\n\nimport { computed } from 'vue'\n import { useI18n } from 'vue-i18n'\n\n import RecordsCard from '@/components/Dashboard/UserRecords/RecordsCard.vue'\n import { ISport } from '@/types/sports'\n import { IAuthUserProfile } from '@/types/user'\n import { getRecordsBySports } from '@/utils/records'\n import { translateSports } from '@/utils/sports'\n\n interface Props {\n sports: ISport[]\n user: IAuthUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'index',\n props: {\n sports: null,\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n sports: ISport[]\n user: IAuthUserProfile\n };\n\n \n\n const { t } = useI18n()\n\n const recordsBySport = computed(() =>\n getRecordsBySports(\n props.user.records,\n translateSports(props.sports, t),\n props.user.timezone,\n props.user.imperial_units,\n props.user.display_ascent,\n props.user.date_format\n )\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _hoisted_3,\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.RECORD', 2)), 1)\n ]),\n _createElementVNode(\"div\", _hoisted_4, [\n (Object.keys(_unref(recordsBySport)).length === 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_5, _toDisplayString(_ctx.$t('workouts.NO_RECORDS')), 1))\n : _createCommentVNode(\"\", true),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(Object.keys(_unref(recordsBySport)).sort(), (sportTranslatedLabel) => {\n return (_openBlock(), _createBlock(RecordsCard, {\n sportTranslatedLabel: sportTranslatedLabel,\n records: _unref(recordsBySport)[sportTranslatedLabel],\n key: sportTranslatedLabel,\n useImperialUnits: __props.user.imperial_units\n }, null, 8, [\"sportTranslatedLabel\", \"records\", \"useImperialUnits\"]))\n }), 128))\n ])\n ]))\n}\n}\n\n})","import script from \"./index.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./index.vue?vue&type=style&index=0&id=f0c85cb8&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-f0c85cb8\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { id: \"user-stats\" }\n\nimport { ComputedRef, computed, toRefs } from 'vue'\n import { useI18n } from 'vue-i18n'\n\n import StatCard from '@/components/Common/StatCard.vue'\n import { TUnit } from '@/types/units'\n import { IAuthUserProfile } from '@/types/user'\n import { convertDistance, units } from '@/utils/units'\n interface Props {\n user: IAuthUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'index',\n props: {\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IAuthUserProfile\n };\n\n \n\n const { t } = useI18n()\n\n const { user } = toRefs(props)\n const userTotalDuration: ComputedRef = computed(\n () => props.user.total_duration\n )\n const totalDuration = computed(() => get_duration(userTotalDuration))\n const distanceUnitFrom: TUnit = 'km'\n const distanceUnitTo: TUnit = user.value.imperial_units\n ? units[distanceUnitFrom].defaultTarget\n : distanceUnitFrom\n const totalDistance: ComputedRef = computed(() =>\n user.value.imperial_units\n ? convertDistance(user.value.total_distance, distanceUnitFrom, distanceUnitTo, 2)\n : parseFloat(user.value.total_distance.toFixed(2)))\n const ascentUnitFrom: TUnit = 'm'\n const ascentUnitTo: TUnit = user.value.imperial_units\n ? units[ascentUnitFrom].defaultTarget\n : ascentUnitFrom\n const totalAscent: ComputedRef = computed(() =>\n user.value.imperial_units\n ? convertDistance(user.value.total_ascent, ascentUnitFrom, ascentUnitTo, 2)\n : parseFloat(user.value.total_ascent.toFixed(2)))\n\n\n function get_duration(total_duration: ComputedRef) {\n const duration = total_duration.value.match(/day/g)\n ? total_duration.value.split(', ')[1]\n : total_duration.value\n return {\n days: total_duration.value.match(/day/g)\n ? `${total_duration.value.split(' ')[0]} ${\n total_duration.value.match(/days/g)\n ? t('common.DAY', 2)\n : t('common.DAY', 1)\n }`\n : `0 ${t('common.DAY', 2)},`,\n duration: `${duration.split(':')[0]}h ${duration.split(':')[1]}min`,\n }\n }\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(StatCard, {\n icon: \"calendar\",\n value: _unref(user).nb_workouts,\n text: _ctx.$t('workouts.WORKOUT', _unref(user).nb_workouts)\n }, null, 8, [\"value\", \"text\"]),\n _createVNode(StatCard, {\n icon: \"road\",\n value: _unref(totalDistance),\n text: _unref(distanceUnitTo) === 'mi' ? 'miles' : _unref(distanceUnitTo)\n }, null, 8, [\"value\", \"text\"]),\n (_unref(user).display_ascent)\n ? (_openBlock(), _createBlock(StatCard, {\n key: 0,\n icon: \"location-arrow\",\n value: _unref(totalAscent),\n text: _unref(ascentUnitTo) === 'ft' ? 'feet' : _unref(ascentUnitTo)\n }, null, 8, [\"value\", \"text\"]))\n : _createCommentVNode(\"\", true),\n _createVNode(StatCard, {\n icon: \"clock-o\",\n value: _unref(totalDuration).days,\n text: _unref(totalDuration).duration\n }, null, 8, [\"value\", \"text\"]),\n (!_unref(user).display_ascent)\n ? (_openBlock(), _createBlock(StatCard, {\n key: 1,\n icon: \"tags\",\n value: _unref(user).nb_sports,\n text: _ctx.$t('workouts.SPORT', _unref(user).nb_sports)\n }, null, 8, [\"value\", \"text\"]))\n : _createCommentVNode(\"\", true)\n ]))\n}\n}\n\n})","import script from \"./index.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./index.vue?vue&type=style&index=0&id=22dcb990&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, resolveComponent as _resolveComponent, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-4c0893c1\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n key: 0,\n id: \"dashboard\",\n class: \"view\"\n}\nconst _hoisted_2 = { class: \"container mobile-menu\" }\nconst _hoisted_3 = { class: \"box\" }\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-calendar\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_5 = [\n _hoisted_4\n]\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-bar-chart\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_7 = [\n _hoisted_6\n]\nconst _hoisted_8 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-map-o\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_9 = [\n _hoisted_8\n]\nconst _hoisted_10 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-trophy\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_11 = [\n _hoisted_10\n]\nconst _hoisted_12 = { class: \"container\" }\nconst _hoisted_13 = { class: \"container dashboard-container\" }\nconst _hoisted_14 = { class: \"left-container dashboard-sub-container\" }\nconst _hoisted_15 = { class: \"right-container dashboard-sub-container\" }\nconst _hoisted_16 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { id: \"bottom\" }, null, -1))\nconst _hoisted_17 = {\n key: 1,\n class: \"app-loading\"\n}\n\nimport { ComputedRef, Ref, computed, onBeforeMount, ref } from 'vue'\n\n import Timeline from '@/components/Dashboard/Timeline.vue'\n import UserCalendar from '@/components/Dashboard/UserCalendar/index.vue'\n import UserMonthStats from '@/components/Dashboard/UserMonthStats.vue'\n import UserRecords from '@/components/Dashboard/UserRecords/index.vue'\n import UserStatsCards from '@/components/Dashboard/UserStatsCards/index.vue'\n import { AUTH_USER_STORE, SPORTS_STORE } from '@/store/constants'\n import { ISport } from '@/types/sports'\n import { IAuthUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'Dashboard',\n setup(__props) {\n\n const store = useStore()\n\n const authUser: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.AUTH_USER_PROFILE]\n )\n const sports: ComputedRef = computed(\n () => store.getters[SPORTS_STORE.GETTERS.SPORTS]\n )\n const isSelected: Ref = ref('calendar')\n\n onBeforeMount(() => store.dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE))\n\n function updateDisplayColumn(target: string) {\n isSelected.value = target\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _component_Loader = _resolveComponent(\"Loader\")!\n\n return (_unref(authUser).username && _unref(sports).length > 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"mobile-menu-item\", { 'is-selected': isSelected.value === 'calendar' }]),\n onClick: _cache[0] || (_cache[0] = ($event: any) => (updateDisplayColumn('calendar')))\n }, _hoisted_5, 2),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"mobile-menu-item\", { 'is-selected': isSelected.value === 'chart' }]),\n onClick: _cache[1] || (_cache[1] = ($event: any) => (updateDisplayColumn('chart')))\n }, _hoisted_7, 2),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"mobile-menu-item\", { 'is-selected': isSelected.value === 'timeline' }]),\n onClick: _cache[2] || (_cache[2] = ($event: any) => (updateDisplayColumn('timeline')))\n }, _hoisted_9, 2),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"mobile-menu-item\", { 'is-selected': isSelected.value === 'records' }]),\n onClick: _cache[3] || (_cache[3] = ($event: any) => (updateDisplayColumn('records')))\n }, _hoisted_11, 2)\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_12, [\n _createVNode(UserStatsCards, { user: _unref(authUser) }, null, 8, [\"user\"])\n ]),\n _createElementVNode(\"div\", _hoisted_13, [\n _createElementVNode(\"div\", _hoisted_14, [\n _createVNode(UserMonthStats, {\n sports: _unref(sports),\n user: _unref(authUser),\n class: _normalizeClass({ 'is-hidden': !(isSelected.value === 'chart') })\n }, null, 8, [\"sports\", \"user\", \"class\"]),\n _createVNode(UserRecords, {\n sports: _unref(sports),\n user: _unref(authUser),\n class: _normalizeClass({ 'is-hidden': !(isSelected.value === 'records') })\n }, null, 8, [\"sports\", \"user\", \"class\"])\n ]),\n _createElementVNode(\"div\", _hoisted_15, [\n _createVNode(UserCalendar, {\n sports: _unref(sports),\n user: _unref(authUser),\n class: _normalizeClass({ 'is-hidden': !(isSelected.value === 'calendar') })\n }, null, 8, [\"sports\", \"user\", \"class\"]),\n _createVNode(Timeline, {\n sports: _unref(sports),\n user: _unref(authUser),\n class: _normalizeClass({ 'is-hidden': !(isSelected.value === 'timeline') })\n }, null, 8, [\"sports\", \"user\", \"class\"])\n ])\n ]),\n _hoisted_16\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_17, [\n _createVNode(_component_Loader)\n ]))\n}\n}\n\n})","import script from \"./Dashboard.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Dashboard.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Dashboard.vue?vue&type=style&index=0&id=4c0893c1&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-4c0893c1\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"not-found view\" }\n\nimport NotFound from '@/components/Common/NotFound.vue'\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'NotFoundView',\n setup(__props) {\n\n \nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(NotFound)\n ]))\n}\n}\n\n})","import script from \"./NotFoundView.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./NotFoundView.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createVNode as _createVNode, createElementVNode as _createElementVNode, unref as _unref, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-58043acb\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"loginOrRegister\",\n class: \"view\"\n}\nconst _hoisted_2 = { class: \"container\" }\nconst _hoisted_3 = { class: \"container-sub\" }\nconst _hoisted_4 = { class: \"container-sub\" }\n\nimport { toRefs } from 'vue'\n\n import BikePic from '@/components/BikePic.vue'\n import LoginOrRegisterForm from '@/components/User/UserAuthForm.vue'\n\n interface Props {\n action: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'LoginOrRegister',\n props: {\n action: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n action: string\n };\n\n \n\n const { action } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createVNode(BikePic)\n ]),\n _createElementVNode(\"div\", _hoisted_4, [\n _createVNode(LoginOrRegisterForm, { action: _unref(action) }, null, 8, [\"action\"])\n ])\n ])\n ]))\n}\n}\n\n})","import script from \"./LoginOrRegister.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./LoginOrRegister.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./LoginOrRegister.vue?vue&type=style&index=0&id=58043acb&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-58043acb\"]])\n\nexport default __exports__","import { createRouter, createWebHistory, RouteRecordRaw } from 'vue-router'\n\nimport AdminApplication from '@/components/Administration/AdminApplication.vue'\nimport AdminMenu from '@/components/Administration/AdminMenu.vue'\nimport AdminSports from '@/components/Administration/AdminSports.vue'\nimport AdminUsers from '@/components/Administration/AdminUsers.vue'\nimport Profile from '@/components/User/ProfileDisplay/index.vue'\nimport UserInfos from '@/components/User/ProfileDisplay/UserInfos.vue'\nimport UserPreferences from '@/components/User/ProfileDisplay/UserPreferences.vue'\nimport ProfileEdition from '@/components/User/ProfileEdition/index.vue'\nimport UserAccountEdition from '@/components/User/ProfileEdition/UserAccountEdition.vue'\nimport UserInfosEdition from '@/components/User/ProfileEdition/UserInfosEdition.vue'\nimport UserPictureEdition from '@/components/User/ProfileEdition/UserPictureEdition.vue'\nimport UserPreferencesEdition from '@/components/User/ProfileEdition/UserPreferencesEdition.vue'\nimport AddUserApp from '@/components/User/UserApps/AddUserApp.vue'\nimport AuthorizeUserApp from '@/components/User/UserApps/AuthorizeUserApp.vue'\nimport UserApps from '@/components/User/UserApps/index.vue'\nimport UserApp from '@/components/User/UserApps/UserApp.vue'\nimport UserAppsList from '@/components/User/UserApps/UserAppsList.vue'\nimport UserSportPreferences from '@/components/User/UserSportPreferences.vue'\nimport store from '@/store'\nimport { AUTH_USER_STORE } from '@/store/constants'\nimport AboutView from '@/views/AboutView.vue'\nimport Dashboard from '@/views/Dashboard.vue'\nimport NotFoundView from '@/views/NotFoundView.vue'\nimport LoginOrRegister from '@/views/user/LoginOrRegister.vue'\n\nconst getTabFromPath = (path: string): string => {\n const regex = /(\\/profile)(\\/edit)*(\\/*)/\n const tag = path.replace(regex, '').toUpperCase()\n return tag === '' ? 'PROFILE' : tag.toUpperCase()\n}\n\nconst routes: Array = [\n {\n path: '/',\n name: 'Dashboard',\n component: Dashboard,\n },\n {\n path: '/login',\n name: 'Login',\n component: LoginOrRegister,\n props: { action: 'login' },\n },\n {\n path: '/register',\n name: 'Register',\n component: LoginOrRegister,\n props: { action: 'register' },\n },\n {\n path: '/account-confirmation',\n name: 'AccountConfirmation',\n component: () =>\n import(\n /* webpackChunkName: 'profile' */ '@/views/user/AccountConfirmationView.vue'\n ),\n },\n {\n path: '/account-confirmation/resend',\n name: 'AccountConfirmationResend',\n component: () =>\n import(\n /* webpackChunkName: 'reset' */ '@/views/user/AccountConfirmationResendView.vue'\n ),\n props: { action: 'account-confirmation-resend' },\n },\n {\n path: '/account-confirmation/email-sent',\n name: 'AccountConfirmationEmailSend',\n component: () =>\n import(\n /* webpackChunkName: 'reset' */ '@/views/user/AccountConfirmationResendView.vue'\n ),\n props: { action: 'email-sent' },\n },\n {\n path: '/password-reset/sent',\n name: 'PasswordEmailSent',\n component: () =>\n import(\n /* webpackChunkName: 'reset' */ '@/views/user/PasswordResetView.vue'\n ),\n props: { action: 'request-sent' },\n },\n {\n path: '/password-reset/request',\n name: 'PasswordResetRequest',\n component: () =>\n import(\n /* webpackChunkName: 'reset' */ '@/views/user/PasswordResetView.vue'\n ),\n props: { action: 'reset-request' },\n },\n {\n path: '/password-reset/password-updated',\n name: 'PasswordUpdated',\n component: () =>\n import(\n /* webpackChunkName: 'reset' */ '@/views/user/PasswordResetView.vue'\n ),\n props: { action: 'password-updated' },\n },\n {\n path: '/password-reset',\n name: 'PasswordReset',\n component: () =>\n import(\n /* webpackChunkName: 'reset' */ '@/views/user/PasswordResetView.vue'\n ),\n props: { action: 'reset' },\n },\n {\n path: '/email-update',\n name: 'EmailUpdate',\n component: () =>\n import(\n /* webpackChunkName: 'profile' */ '@/views/user/EmailUpdateView.vue'\n ),\n },\n {\n path: '/profile',\n name: 'Profile',\n component: () =>\n import(/* webpackChunkName: 'profile' */ '@/views/user/ProfileView.vue'),\n children: [\n {\n path: '',\n name: 'UserProfile',\n component: Profile,\n props: (route) => ({\n tab: getTabFromPath(route.path),\n }),\n children: [\n {\n path: '',\n name: 'UserInfos',\n component: UserInfos,\n },\n {\n path: 'preferences',\n name: 'UserPreferences',\n component: UserPreferences,\n },\n {\n path: 'sports',\n name: 'UserSportPreferences',\n component: UserSportPreferences,\n props: { isEdition: false },\n },\n {\n path: 'apps',\n name: 'UserApps',\n component: UserApps,\n children: [\n {\n path: '',\n name: 'UserAppsList',\n component: UserAppsList,\n },\n {\n path: ':id',\n name: 'UserApp',\n component: UserApp,\n },\n {\n path: ':id/created',\n name: 'CreatedUserApp',\n component: UserApp,\n props: { afterCreation: true },\n },\n {\n path: 'new',\n name: 'AddUserApp',\n component: AddUserApp,\n },\n {\n path: 'authorize',\n name: 'AuthorizeUserApp',\n component: AuthorizeUserApp,\n },\n ],\n },\n ],\n },\n {\n path: 'edit',\n name: 'UserProfileEdition',\n component: ProfileEdition,\n props: (route) => ({\n tab: getTabFromPath(route.path),\n }),\n children: [\n {\n path: '',\n name: 'UserInfosEdition',\n component: UserInfosEdition,\n },\n {\n path: 'account',\n name: 'UserAccountEdition',\n component: UserAccountEdition,\n },\n {\n path: 'picture',\n name: 'UserPictureEdition',\n component: UserPictureEdition,\n },\n {\n path: 'preferences',\n name: 'UserPreferencesEdition',\n component: UserPreferencesEdition,\n },\n {\n path: 'sports',\n name: 'UserSportPreferencesEdition',\n component: UserSportPreferences,\n props: { isEdition: true },\n },\n ],\n },\n ],\n },\n {\n path: '/statistics',\n name: 'Statistics',\n component: () =>\n import(/* webpackChunkName: 'statistics' */ '@/views/StatisticsView.vue'),\n },\n {\n path: '/users/:username',\n name: 'User',\n component: () =>\n import(/* webpackChunkName: 'profile' */ '@/views/user/UserView.vue'),\n },\n {\n path: '/workouts',\n name: 'Workouts',\n component: () =>\n import(\n /* webpackChunkName: 'workouts' */ '@/views/workouts/WorkoutsView.vue'\n ),\n },\n {\n path: '/workouts/:workoutId',\n name: 'Workout',\n component: () =>\n import(/* webpackChunkName: 'workouts' */ '@/views/workouts/Workout.vue'),\n props: { displaySegment: false },\n },\n {\n path: '/workouts/:workoutId/edit',\n name: 'EditWorkout',\n component: () =>\n import(\n /* webpackChunkName: 'workouts' */ '@/views/workouts/EditWorkout.vue'\n ),\n },\n {\n path: '/workouts/:workoutId/segment/:segmentId',\n name: 'WorkoutSegment',\n component: () =>\n import(/* webpackChunkName: 'workouts' */ '@/views/workouts/Workout.vue'),\n props: { displaySegment: true },\n },\n {\n path: '/workouts/add',\n name: 'AddWorkout',\n component: () =>\n import(\n /* webpackChunkName: 'workouts' */ '@/views/workouts/AddWorkout.vue'\n ),\n },\n {\n path: '/admin',\n name: 'Administration',\n component: () =>\n import(/* webpackChunkName: 'admin' */ '@/views/AdminView.vue'),\n children: [\n {\n path: '',\n name: 'AdministrationMenu',\n component: AdminMenu,\n },\n {\n path: 'application',\n name: 'ApplicationAdministration',\n component: AdminApplication,\n },\n {\n path: 'application/edit',\n name: 'ApplicationAdministrationEdition',\n component: AdminApplication,\n props: { edition: true },\n },\n {\n path: 'sports',\n name: 'SportsAdministration',\n component: AdminSports,\n },\n {\n path: 'users/:username',\n name: 'UserFromAdmin',\n component: () =>\n import(/* webpackChunkName: 'profile' */ '@/views/user/UserView.vue'),\n props: { fromAdmin: true },\n },\n {\n path: 'users',\n name: 'UsersAdministration',\n component: AdminUsers,\n },\n ],\n },\n {\n path: '/about',\n name: 'About',\n component: AboutView,\n },\n {\n path: '/:pathMatch(.*)*',\n name: 'not-found',\n component: NotFoundView,\n },\n]\n\nconst router = createRouter({\n history: createWebHistory(process.env.BASE_URL),\n routes,\n})\n\nconst pathsWithoutAuthentication = [\n '/login',\n '/password-reset',\n '/password-reset/password-updated',\n '/password-reset/request',\n '/password-reset/sent',\n '/register',\n '/account-confirmation',\n '/account-confirmation/resend',\n '/account-confirmation/email-sent',\n]\n\nconst pathsWithoutChecks = ['/email-update', '/about']\n\nrouter.beforeEach((to, from, next) => {\n store\n .dispatch(AUTH_USER_STORE.ACTIONS.CHECK_AUTH_USER)\n .then(() => {\n if (pathsWithoutChecks.includes(to.path)) {\n return next()\n }\n if (\n store.getters[AUTH_USER_STORE.GETTERS.IS_AUTHENTICATED] &&\n pathsWithoutAuthentication.includes(to.path)\n ) {\n return next('/')\n }\n if (\n !store.getters[AUTH_USER_STORE.GETTERS.IS_AUTHENTICATED] &&\n !pathsWithoutAuthentication.includes(to.path)\n ) {\n const path =\n to.path === '/'\n ? { path: '/login' }\n : { path: '/login', query: { from: to.fullPath } }\n next(path)\n } else {\n next()\n }\n })\n .catch((error) => {\n console.error(error)\n next()\n })\n})\n\nexport default router\n","export enum AuthUserActions {\n CHECK_AUTH_USER = 'CHECK_AUTH_USER',\n CONFIRM_ACCOUNT = 'CONFIRM_ACCOUNT',\n CONFIRM_EMAIL = 'CONFIRM_EMAIL',\n DELETE_ACCOUNT = 'DELETE_ACCOUNT',\n DELETE_PICTURE = 'DELETE_PICTURE',\n GET_USER_PROFILE = 'GET_USER_PROFILE',\n LOGIN_OR_REGISTER = 'LOGIN_OR_REGISTER',\n LOGOUT = 'LOGOUT',\n SEND_PASSWORD_RESET_REQUEST = 'SEND_PASSWORD_RESET_REQUEST',\n RESEND_ACCOUNT_CONFIRMATION_EMAIL = 'RESEND_ACCOUNT_CONFIRMATION_EMAIL',\n RESET_USER_PASSWORD = 'RESET_USER_PASSWORD',\n RESET_USER_SPORT_PREFERENCES = 'RESET_USER_SPORT_PREFERENCES',\n UPDATE_USER_ACCOUNT = 'UPDATE_USER_ACCOUNT',\n UPDATE_USER_PICTURE = 'UPDATE_USER_PICTURE',\n UPDATE_USER_PROFILE = 'UPDATE_USER_PROFILE',\n UPDATE_USER_PREFERENCES = 'UPDATE_USER_PREFERENCES',\n UPDATE_USER_SPORT_PREFERENCES = 'UPDATE_USER_SPORT_PREFERENCES',\n}\n\nexport enum AuthUserGetters {\n AUTH_TOKEN = 'AUTH_TOKEN',\n AUTH_USER_PROFILE = 'AUTH_USER_PROFILE',\n IS_ADMIN = 'IS_ADMIN',\n IS_AUTHENTICATED = 'IS_AUTHENTICATED',\n IS_SUCCESS = 'IS_SUCCESS',\n IS_REGISTRATION_SUCCESS = 'IS_REGISTRATION_SUCCESS',\n USER_LOADING = 'USER_LOADING',\n}\n\nexport enum AuthUserMutations {\n CLEAR_AUTH_USER_TOKEN = 'CLEAR_AUTH_USER_TOKEN',\n UPDATE_AUTH_TOKEN = 'UPDATE_AUTH_TOKEN',\n UPDATE_AUTH_USER_PROFILE = 'UPDATE_AUTH_USER_PROFILE',\n UPDATE_IS_SUCCESS = 'UPDATE_USER_IS_SUCCESS',\n UPDATE_IS_REGISTRATION_SUCCESS = 'UPDATE_IS_REGISTRATION_SUCCESS',\n UPDATE_USER_LOADING = 'UPDATE_USER_LOADING',\n}\n","export enum OAuth2Actions {\n AUTHORIZE_CLIENT = 'AUTHORIZE_CLIENT',\n CREATE_CLIENT = 'CREATE_CLIENT',\n DELETE_CLIENT = 'DELETE_CLIENT',\n GET_CLIENTS = 'GET_CLIENTS',\n GET_CLIENT_BY_CLIENT_ID = 'GET_CLIENT_BY_CLIENT_ID',\n GET_CLIENT_BY_ID = 'GET_CLIENT_BY_ID',\n REVOKE_ALL_TOKENS = 'REVOKE_ALL_TOKENS',\n}\n\nexport enum OAuth2Getters {\n CLIENT = 'CLIENT',\n CLIENTS = 'CLIENTS',\n CLIENTS_PAGINATION = 'CLIENTS_PAGINATION',\n REVOCATION_SUCCESSFUL = 'REVOCATION_SUCCESSFUL',\n}\n\nexport enum OAuth2Mutations {\n EMPTY_CLIENT = 'EMPTY_CLIENT',\n SET_CLIENT = 'SET_CLIENT',\n SET_CLIENTS = 'SET_CLIENTS',\n SET_CLIENTS_PAGINATION = 'SET_CLIENTS_PAGINATION',\n SET_REVOCATION_SUCCESSFUL = 'SET_REVOCATION_SUCCESSFUL',\n}\n","export enum RootActions {\n GET_APPLICATION_CONFIG = 'GET_APPLICATION_CONFIG',\n GET_APPLICATION_STATS = 'GET_APPLICATION_STATS',\n UPDATE_APPLICATION_CONFIG = 'UPDATE_APPLICATION_CONFIG',\n UPDATE_APPLICATION_LANGUAGE = 'UPDATE_APPLICATION_LANGUAGE',\n}\n\nexport enum RootGetters {\n APP_CONFIG = 'APP_CONFIG',\n APP_LOADING = 'APP_LOADING',\n APP_STATS = 'APP_STATS',\n ERROR_MESSAGES = 'ERROR_MESSAGES',\n LANGUAGE = 'LANGUAGE',\n LOCALE = 'LOCALE', // date-fns\n}\n\nexport enum RootMutations {\n EMPTY_ERROR_MESSAGES = 'EMPTY_ERROR_MESSAGES',\n SET_ERROR_MESSAGES = 'SET_ERROR_MESSAGES',\n UPDATE_APPLICATION_CONFIG = 'UPDATE_APPLICATION_CONFIG',\n UPDATE_APPLICATION_LOADING = 'UPDATE_APPLICATION_LOADING',\n UPDATE_APPLICATION_STATS = 'UPDATE_APPLICATION_STATS',\n UPDATE_LANG = 'UPDATE_LANG',\n}\n","export enum SportsActions {\n GET_SPORTS = 'GET_SPORTS',\n UPDATE_SPORTS = 'UPDATE_SPORTS',\n}\n\nexport enum SportsGetters {\n SPORTS = 'SPORTS',\n}\n\nexport enum SportsMutation {\n SET_SPORTS = 'SET_SPORTS',\n}\n","export enum StatisticsActions {\n GET_USER_STATS = 'GET_USER_STATS',\n}\n\nexport enum StatisticsGetters {\n USER_STATS = 'USER_STATS',\n}\n\nexport enum StatisticsMutations {\n EMPTY_USER_STATS = 'EMPTY_USER_STATS',\n UPDATE_USER_STATS = 'UPDATE_USER_STATS',\n}\n","export enum UsersActions {\n EMPTY_USER = 'EMPTY_USER',\n EMPTY_USERS = 'EMPTY_USERS',\n GET_USER = 'GET_USER',\n GET_USERS = 'GET_USERS',\n UPDATE_USER = 'UPDATE_USER',\n DELETE_USER_ACCOUNT = 'DELETE_USER_ACCOUNT',\n}\n\nexport enum UsersGetters {\n USER = 'USER',\n USERS = 'USERS',\n USERS_IS_SUCCESS = 'USERS_IS_SUCCESS',\n USERS_LOADING = 'USERS_LOADING',\n USERS_PAGINATION = 'USERS_PAGINATION',\n}\n\nexport enum UsersMutations {\n UPDATE_USER = 'UPDATE_USER',\n UPDATE_USER_IN_USERS = 'UPDATE_USER_IN_USERS',\n UPDATE_USERS = 'UPDATE_USERS',\n UPDATE_USERS_LOADING = 'UPDATE_USERS_LOADING',\n UPDATE_USERS_PAGINATION = 'UPDATE_USERS_PAGINATION',\n UPDATE_IS_SUCCESS = 'UPDATE_IS_SUCCESS',\n}\n","import {\n AuthUserActions,\n AuthUserGetters,\n AuthUserMutations,\n} from '@/store/modules/authUser/enums'\nimport {\n OAuth2Actions,\n OAuth2Getters,\n OAuth2Mutations,\n} from '@/store/modules/oauth2/enums'\nimport {\n RootActions,\n RootGetters,\n RootMutations,\n} from '@/store/modules/root/enums'\nimport {\n SportsActions,\n SportsGetters,\n SportsMutation,\n} from '@/store/modules/sports/enums'\nimport {\n StatisticsActions,\n StatisticsGetters,\n StatisticsMutations,\n} from '@/store/modules/statistics/enums'\nimport {\n UsersActions,\n UsersGetters,\n UsersMutations,\n} from '@/store/modules/users/enums'\nimport {\n WorkoutsActions,\n WorkoutsGetters,\n WorkoutsMutations,\n} from '@/store/modules/workouts/enums'\n\nexport const ROOT_STORE = {\n ACTIONS: RootActions,\n GETTERS: RootGetters,\n MUTATIONS: RootMutations,\n}\n\nexport const SPORTS_STORE = {\n ACTIONS: SportsActions,\n GETTERS: SportsGetters,\n MUTATIONS: SportsMutation,\n}\n\nexport const STATS_STORE = {\n ACTIONS: StatisticsActions,\n GETTERS: StatisticsGetters,\n MUTATIONS: StatisticsMutations,\n}\n\nexport const AUTH_USER_STORE = {\n ACTIONS: AuthUserActions,\n GETTERS: AuthUserGetters,\n MUTATIONS: AuthUserMutations,\n}\nexport const OAUTH2_STORE = {\n ACTIONS: OAuth2Actions,\n GETTERS: OAuth2Getters,\n MUTATIONS: OAuth2Mutations,\n}\n\nexport const USERS_STORE = {\n ACTIONS: UsersActions,\n GETTERS: UsersGetters,\n MUTATIONS: UsersMutations,\n}\n\nexport const WORKOUTS_STORE = {\n ACTIONS: WorkoutsActions,\n GETTERS: WorkoutsGetters,\n MUTATIONS: WorkoutsMutations,\n}\n","import axios from 'axios'\n\nimport { pendingRequests, removeRequestIfPending } from '@/api/pending'\nimport { getApiUrl } from '@/utils'\n\nconst api = axios.create({\n baseURL: getApiUrl(),\n})\n\napi.interceptors.request.use(\n (config) => {\n const controller = new AbortController()\n config.signal = controller.signal\n const requestKey = removeRequestIfPending(config)\n pendingRequests.set(requestKey, controller)\n return config\n },\n (error) => Promise.reject(error)\n)\n\napi.interceptors.response.use(\n (response) => {\n removeRequestIfPending(response.config)\n return response\n },\n (error) => {\n if (error.message !== 'canceled') {\n removeRequestIfPending(error.response.config)\n }\n return Promise.reject(error)\n }\n)\n\nexport default api\n","import { ActionContext, ActionTree } from 'vuex'\n\nimport authApi from '@/api/authApi'\nimport router from '@/router'\nimport { AUTH_USER_STORE, ROOT_STORE, USERS_STORE } from '@/store/constants'\nimport { IAuthUserState } from '@/store/modules/authUser/types'\nimport { IRootState } from '@/store/modules/root/types'\nimport { IUsersActions, IUsersState } from '@/store/modules/users/types'\nimport { TPaginationPayload } from '@/types/api'\nimport { IAdminUserPayload, IUserDeletionPayload } from '@/types/user'\nimport { handleError } from '@/utils'\n\nexport const deleteUserAccount = (\n context:\n | ActionContext\n | ActionContext,\n payload: IUserDeletionPayload\n): void => {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .delete(`users/${payload.username}`)\n .then((res) => {\n if (res.status === 204) {\n if (payload.fromAdmin) {\n router.push('/admin/users')\n } else {\n context\n .dispatch(AUTH_USER_STORE.ACTIONS.LOGOUT)\n .then(() => router.push('/'))\n }\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n}\n\nexport const actions: ActionTree & IUsersActions = {\n [USERS_STORE.ACTIONS.EMPTY_USER](\n context: ActionContext\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USER, {})\n },\n [USERS_STORE.ACTIONS.EMPTY_USERS](\n context: ActionContext\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USERS, [])\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USERS_PAGINATION, {})\n },\n [USERS_STORE.ACTIONS.GET_USER](\n context: ActionContext,\n username: string\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USERS_LOADING, true)\n authApi\n .get(`users/${username}`)\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n USERS_STORE.MUTATIONS.UPDATE_USER,\n res.data.data.users[0]\n )\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n .finally(() =>\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USERS_LOADING, false)\n )\n },\n [USERS_STORE.ACTIONS.GET_USERS](\n context: ActionContext,\n payload: TPaginationPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USERS_LOADING, true)\n authApi\n .get('users', { params: payload })\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n USERS_STORE.MUTATIONS.UPDATE_USERS,\n res.data.data.users\n )\n context.commit(\n USERS_STORE.MUTATIONS.UPDATE_USERS_PAGINATION,\n res.data.pagination\n )\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n .finally(() =>\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USERS_LOADING, false)\n )\n },\n [USERS_STORE.ACTIONS.UPDATE_USER](\n context: ActionContext,\n payload: IAdminUserPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(USERS_STORE.MUTATIONS.UPDATE_IS_SUCCESS, false)\n const data: Record = {}\n if (payload.admin !== undefined) {\n data.admin = payload.admin\n }\n if (payload.resetPassword) {\n data.reset_password = payload.resetPassword\n }\n if (payload.activate) {\n data.activate = payload.activate\n }\n if (payload.new_email !== undefined) {\n data.new_email = payload.new_email\n }\n authApi\n .patch(`users/${payload.username}`, data)\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n USERS_STORE.MUTATIONS.UPDATE_USER_IN_USERS,\n res.data.data.users[0]\n )\n if (payload.resetPassword || payload.new_email) {\n context.commit(USERS_STORE.MUTATIONS.UPDATE_IS_SUCCESS, true)\n }\n if (payload.activate || payload.new_email) {\n context.commit(\n USERS_STORE.MUTATIONS.UPDATE_USER,\n res.data.data.users[0]\n )\n }\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n .finally(() =>\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USERS_LOADING, false)\n )\n },\n [USERS_STORE.ACTIONS.DELETE_USER_ACCOUNT](\n context: ActionContext,\n payload: IUserDeletionPayload\n ): void {\n deleteUserAccount(context, {\n username: payload.username,\n fromAdmin: true,\n })\n },\n}\n","import { ActionContext, ActionTree } from 'vuex'\n\nimport authApi from '@/api/authApi'\nimport api from '@/api/defaultApi'\nimport router from '@/router'\nimport {\n AUTH_USER_STORE,\n ROOT_STORE,\n SPORTS_STORE,\n STATS_STORE,\n USERS_STORE,\n WORKOUTS_STORE,\n} from '@/store/constants'\nimport {\n IAuthUserActions,\n IAuthUserState,\n} from '@/store/modules/authUser/types'\nimport { IRootState } from '@/store/modules/root/types'\nimport { deleteUserAccount } from '@/store/modules/users/actions'\nimport {\n ILoginOrRegisterData,\n IUserAccountPayload,\n IUserDeletionPayload,\n IUserAccountUpdatePayload,\n IUserEmailPayload,\n IUserPasswordResetPayload,\n IUserPayload,\n IUserPicturePayload,\n IUserPreferencesPayload,\n IUserSportPreferencesPayload,\n} from '@/types/user'\nimport { handleError } from '@/utils'\n\nconst removeAuthUserData = (\n context: ActionContext\n) => {\n localStorage.removeItem('authToken')\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(STATS_STORE.MUTATIONS.EMPTY_USER_STATS)\n context.commit(AUTH_USER_STORE.MUTATIONS.CLEAR_AUTH_USER_TOKEN)\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USERS, [])\n context.commit(WORKOUTS_STORE.MUTATIONS.EMPTY_WORKOUTS)\n context.commit(WORKOUTS_STORE.MUTATIONS.EMPTY_WORKOUT)\n router.push('/login')\n}\n\nexport const actions: ActionTree &\n IAuthUserActions = {\n [AUTH_USER_STORE.ACTIONS.CHECK_AUTH_USER](\n context: ActionContext\n ): void {\n if (\n window.localStorage.authToken &&\n !context.getters[AUTH_USER_STORE.GETTERS.IS_AUTHENTICATED]\n ) {\n context.commit(\n AUTH_USER_STORE.MUTATIONS.UPDATE_AUTH_TOKEN,\n window.localStorage.authToken\n )\n context.dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n }\n // after logout in another tab\n if (\n !window.localStorage.authToken &&\n context.getters[AUTH_USER_STORE.GETTERS.IS_AUTHENTICATED]\n ) {\n removeAuthUserData(context)\n }\n },\n [AUTH_USER_STORE.ACTIONS.CONFIRM_ACCOUNT](\n context: ActionContext,\n payload: IUserAccountUpdatePayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n api\n .post('auth/account/confirm', { token: payload.token })\n .then((res) => {\n if (res.data.status === 'success') {\n const token = res.data.auth_token\n window.localStorage.setItem('authToken', token)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_AUTH_TOKEN, token)\n context\n .dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n .then(() => router.push('/'))\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => {\n handleError(context, error)\n })\n },\n [AUTH_USER_STORE.ACTIONS.CONFIRM_EMAIL](\n context: ActionContext,\n payload: IUserAccountUpdatePayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_IS_SUCCESS, false)\n api\n .post('/auth/email/update', { token: payload.token })\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_IS_SUCCESS, true)\n if (payload.refreshUser) {\n context\n .dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n .then(() => {\n return router.push('/profile/edit/account')\n })\n }\n router.push('/profile/edit/account')\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => {\n handleError(context, error)\n })\n },\n [AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE](\n context: ActionContext\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .get('auth/profile')\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n AUTH_USER_STORE.MUTATIONS.UPDATE_AUTH_USER_PROFILE,\n res.data.data\n )\n if (res.data.data.language) {\n context.dispatch(\n ROOT_STORE.ACTIONS.UPDATE_APPLICATION_LANGUAGE,\n res.data.data.language\n )\n }\n context.dispatch(SPORTS_STORE.ACTIONS.GET_SPORTS)\n } else {\n handleError(context, null)\n removeAuthUserData(context)\n }\n })\n .catch((error) => {\n if (error.message !== 'canceled') {\n handleError(context, error)\n removeAuthUserData(context)\n }\n })\n },\n [AUTH_USER_STORE.ACTIONS.LOGIN_OR_REGISTER](\n context: ActionContext,\n data: ILoginOrRegisterData\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(\n AUTH_USER_STORE.MUTATIONS.UPDATE_IS_REGISTRATION_SUCCESS,\n false\n )\n api\n .post(`/auth/${data.actionType}`, data.formData)\n .then((res) => {\n if (res.data.status === 'success') {\n if (data.actionType === 'login') {\n const token = res.data.auth_token\n window.localStorage.setItem('authToken', token)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_AUTH_TOKEN, token)\n context\n .dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n .then(() =>\n router.push(\n typeof data.redirectUrl === 'string' ? data.redirectUrl : '/'\n )\n )\n } else {\n router\n .push('/login')\n .then(() =>\n context.commit(\n AUTH_USER_STORE.MUTATIONS.UPDATE_IS_REGISTRATION_SUCCESS,\n true\n )\n )\n }\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n [AUTH_USER_STORE.ACTIONS.LOGOUT](\n context: ActionContext\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .post('auth/logout')\n .then((res) => {\n if (res.data.status === 'success') {\n removeAuthUserData(context)\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n [AUTH_USER_STORE.ACTIONS.UPDATE_USER_PROFILE](\n context: ActionContext,\n payload: IUserPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, true)\n authApi\n .post('auth/profile/edit', payload)\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n AUTH_USER_STORE.MUTATIONS.UPDATE_AUTH_USER_PROFILE,\n res.data.data\n )\n router.push('/profile')\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n .finally(() =>\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, false)\n )\n },\n [AUTH_USER_STORE.ACTIONS.UPDATE_USER_ACCOUNT](\n context: ActionContext,\n payload: IUserAccountPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, true)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_IS_SUCCESS, false)\n authApi\n .patch('auth/profile/edit/account', payload)\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n AUTH_USER_STORE.MUTATIONS.UPDATE_AUTH_USER_PROFILE,\n res.data.data\n )\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_IS_SUCCESS, true)\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n .finally(() =>\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, false)\n )\n },\n [AUTH_USER_STORE.ACTIONS.UPDATE_USER_PREFERENCES](\n context: ActionContext,\n payload: IUserPreferencesPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, true)\n authApi\n .post('auth/profile/edit/preferences', payload)\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n AUTH_USER_STORE.MUTATIONS.UPDATE_AUTH_USER_PROFILE,\n res.data.data\n )\n context\n .dispatch(\n ROOT_STORE.ACTIONS.UPDATE_APPLICATION_LANGUAGE,\n res.data.data.language\n )\n .then(() => router.push('/profile/preferences'))\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n .finally(() =>\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, false)\n )\n },\n [AUTH_USER_STORE.ACTIONS.RESET_USER_SPORT_PREFERENCES](\n context: ActionContext,\n sportId: number\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, true)\n authApi\n .delete(`auth/profile/reset/sports/${sportId}`)\n .then((res) => {\n if (res.status === 204) {\n context.dispatch(SPORTS_STORE.ACTIONS.GET_SPORTS)\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => {\n handleError(context, error)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, false)\n })\n },\n [AUTH_USER_STORE.ACTIONS.UPDATE_USER_SPORT_PREFERENCES](\n context: ActionContext,\n payload: IUserSportPreferencesPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, true)\n authApi\n .post('auth/profile/edit/sports', payload)\n .then((res) => {\n if (res.data.status === 'success') {\n context.dispatch(SPORTS_STORE.ACTIONS.GET_SPORTS)\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => {\n handleError(context, error)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, false)\n })\n },\n [AUTH_USER_STORE.ACTIONS.UPDATE_USER_PICTURE](\n context: ActionContext,\n payload: IUserPicturePayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, true)\n if (!payload.picture) {\n throw new Error('No file part')\n }\n const form = new FormData()\n form.append('file', payload.picture)\n authApi\n .post('auth/picture', form, {\n headers: {\n 'content-type': 'multipart/form-data',\n },\n })\n .then((res) => {\n if (res.data.status === 'success') {\n context\n .dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n .then(() => router.push('/profile'))\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n .finally(() =>\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, false)\n )\n },\n [AUTH_USER_STORE.ACTIONS.DELETE_ACCOUNT](\n context: ActionContext,\n payload: IUserDeletionPayload\n ): void {\n deleteUserAccount(context, payload)\n },\n [AUTH_USER_STORE.ACTIONS.DELETE_PICTURE](\n context: ActionContext\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, true)\n authApi\n .delete(`auth/picture`)\n .then((res) => {\n if (res.status === 204) {\n context\n .dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n .then(() => router.push('/profile'))\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n .finally(() =>\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, false)\n )\n },\n [AUTH_USER_STORE.ACTIONS.SEND_PASSWORD_RESET_REQUEST](\n context: ActionContext,\n payload: IUserEmailPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n api\n .post('auth/password/reset-request', payload)\n .then((res) => {\n if (res.data.status === 'success') {\n router.push('/password-reset/sent')\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n [AUTH_USER_STORE.ACTIONS.RESEND_ACCOUNT_CONFIRMATION_EMAIL](\n context: ActionContext,\n payload: IUserEmailPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n api\n .post('auth/account/resend-confirmation', payload)\n .then((res) => {\n if (res.data.status === 'success') {\n router.push('/account-confirmation/email-sent')\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n [AUTH_USER_STORE.ACTIONS.RESET_USER_PASSWORD](\n context: ActionContext,\n payload: IUserPasswordResetPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n api\n .post('auth/password/update', payload)\n .then((res) => {\n if (res.data.status === 'success') {\n router.push('/password-reset/password-updated')\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n}\n","import { GetterTree } from 'vuex'\n\nimport { AUTH_USER_STORE } from '@/store/constants'\nimport {\n IAuthUserGetters,\n IAuthUserState,\n} from '@/store/modules/authUser/types'\nimport { IRootState } from '@/store/modules/root/types'\n\nexport const getters: GetterTree &\n IAuthUserGetters = {\n [AUTH_USER_STORE.GETTERS.AUTH_TOKEN]: (state: IAuthUserState) => {\n return state.authToken\n },\n [AUTH_USER_STORE.GETTERS.AUTH_USER_PROFILE]: (state: IAuthUserState) => {\n return state.authUserProfile\n },\n [AUTH_USER_STORE.GETTERS.IS_AUTHENTICATED]: (state: IAuthUserState) => {\n return state.authToken !== null\n },\n [AUTH_USER_STORE.GETTERS.IS_ADMIN]: (state: IAuthUserState) => {\n return state.authUserProfile && state.authUserProfile.admin\n },\n [AUTH_USER_STORE.GETTERS.IS_REGISTRATION_SUCCESS]: (\n state: IAuthUserState\n ) => {\n return state.isRegistrationSuccess\n },\n [AUTH_USER_STORE.GETTERS.IS_SUCCESS]: (state: IAuthUserState) => {\n return state.isSuccess\n },\n [AUTH_USER_STORE.GETTERS.USER_LOADING]: (state: IAuthUserState) => {\n return state.loading\n },\n}\n","import { MutationTree } from 'vuex'\n\nimport { AUTH_USER_STORE } from '@/store/constants'\nimport {\n IAuthUserState,\n TAuthUserMutations,\n} from '@/store/modules/authUser/types'\nimport { IAuthUserProfile } from '@/types/user'\n\nexport const mutations: MutationTree & TAuthUserMutations = {\n [AUTH_USER_STORE.MUTATIONS.CLEAR_AUTH_USER_TOKEN](state: IAuthUserState) {\n state.authToken = null\n state.authUserProfile = {}\n },\n [AUTH_USER_STORE.MUTATIONS.UPDATE_AUTH_TOKEN](\n state: IAuthUserState,\n authToken: string\n ) {\n state.authToken = authToken\n },\n [AUTH_USER_STORE.MUTATIONS.UPDATE_AUTH_USER_PROFILE](\n state: IAuthUserState,\n authUserProfile: IAuthUserProfile\n ) {\n state.authUserProfile = authUserProfile\n },\n [AUTH_USER_STORE.MUTATIONS.UPDATE_IS_REGISTRATION_SUCCESS](\n state: IAuthUserState,\n isRegistrationSuccess: boolean\n ) {\n state.isRegistrationSuccess = isRegistrationSuccess\n },\n [AUTH_USER_STORE.MUTATIONS.UPDATE_IS_SUCCESS](\n state: IAuthUserState,\n isSuccess: boolean\n ) {\n state.isSuccess = isSuccess\n },\n [AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING](\n state: IAuthUserState,\n loading: boolean\n ) {\n state.loading = loading\n },\n}\n","import { IAuthUserState } from '@/store/modules/authUser/types'\nimport { IAuthUserProfile } from '@/types/user'\n\nexport const authUserState: IAuthUserState = {\n authToken: null,\n authUserProfile: {},\n isSuccess: false,\n isRegistrationSuccess: false,\n loading: false,\n}\n","import { Module } from 'vuex'\n\nimport { actions } from '@/store/modules/authUser/actions'\nimport { getters } from '@/store/modules/authUser/getters'\nimport { mutations } from '@/store/modules/authUser/mutations'\nimport { authUserState } from '@/store/modules/authUser/state'\nimport { IAuthUserState } from '@/store/modules/authUser/types'\nimport { IRootState } from '@/store/modules/root/types'\n\nconst authUser: Module = {\n state: authUserState,\n actions,\n getters,\n mutations,\n}\n\nexport default authUser\n","import { ActionContext, ActionTree } from 'vuex'\n\nimport authApi from '@/api/authApi'\nimport router from '@/router'\nimport { OAUTH2_STORE, ROOT_STORE } from '@/store/constants'\nimport { IOAuth2Actions, IOAuth2State } from '@/store/modules/oauth2/types'\nimport { IRootState } from '@/store/modules/root/types'\nimport {\n IOauth2ClientsPayload,\n IOAuth2ClientPayload,\n IOAuth2ClientAuthorizePayload,\n} from '@/types/oauth'\nimport { handleError } from '@/utils'\n\nconst get_client = (\n context: ActionContext,\n url: string\n) => {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .get(url)\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(OAUTH2_STORE.MUTATIONS.SET_CLIENT, res.data.data.client)\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n}\n\nexport const actions: ActionTree & IOAuth2Actions = {\n [OAUTH2_STORE.ACTIONS.AUTHORIZE_CLIENT](\n context: ActionContext,\n payload: IOAuth2ClientAuthorizePayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n const form = new FormData()\n form.set('client_id', payload.client_id)\n form.set('response_type', payload.response_type)\n form.set('scope', payload.scope)\n form.set('confirm', 'true')\n if (payload.state) {\n form.set('state', payload.state)\n }\n if (payload.code_challenge) {\n form.set('code_challenge', payload.code_challenge)\n }\n if (payload.code_challenge_method) {\n form.set('code_challenge_method', payload.code_challenge_method)\n }\n\n authApi\n .post('oauth/authorize', form, {\n headers: {\n 'Content-Type': 'multipart/form-data',\n },\n })\n .then((res) => {\n if (res.status == 200 && res.data.redirect_url) {\n window.location.href = res.data.redirect_url\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n [OAUTH2_STORE.ACTIONS.CREATE_CLIENT](\n context: ActionContext,\n payload: IOAuth2ClientPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .post('oauth/apps', payload)\n .then((res) => {\n if (res.data.status === 'created') {\n context.commit(\n OAUTH2_STORE.MUTATIONS.SET_CLIENT,\n res.data.data.client\n )\n router.push(`/profile/apps/${res.data.data.client.id}/created`)\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n [OAUTH2_STORE.ACTIONS.DELETE_CLIENT](\n context: ActionContext,\n id: number\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .delete(`oauth/apps/${id}`)\n .then((res) => {\n if (res.status === 204) {\n context\n .dispatch(OAUTH2_STORE.ACTIONS.GET_CLIENTS)\n .then(() => router.push('/profile/apps'))\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n [OAUTH2_STORE.ACTIONS.GET_CLIENT_BY_CLIENT_ID](\n context: ActionContext,\n client_id: string\n ): void {\n get_client(context, `oauth/apps/${client_id}`)\n },\n [OAUTH2_STORE.ACTIONS.GET_CLIENT_BY_ID](\n context: ActionContext,\n id: number\n ): void {\n get_client(context, `oauth/apps/${id}/by_id`)\n },\n [OAUTH2_STORE.ACTIONS.GET_CLIENTS](\n context: ActionContext,\n payload: IOauth2ClientsPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .get('oauth/apps', {\n params: payload,\n })\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n OAUTH2_STORE.MUTATIONS.SET_CLIENTS,\n res.data.data.clients\n )\n context.commit(\n OAUTH2_STORE.MUTATIONS.SET_CLIENTS_PAGINATION,\n res.data.pagination\n )\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n [OAUTH2_STORE.ACTIONS.REVOKE_ALL_TOKENS](\n context: ActionContext,\n id: number\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(OAUTH2_STORE.MUTATIONS.SET_REVOCATION_SUCCESSFUL, false)\n authApi\n .post(`oauth/apps/${id}/revoke`)\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(OAUTH2_STORE.MUTATIONS.SET_REVOCATION_SUCCESSFUL, true)\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n}\n","import { GetterTree } from 'vuex'\n\nimport { OAUTH2_STORE } from '@/store/constants'\nimport { IOAuth2Getters, IOAuth2State } from '@/store/modules/oauth2/types'\nimport { IRootState } from '@/store/modules/root/types'\n\nexport const getters: GetterTree & IOAuth2Getters = {\n [OAUTH2_STORE.GETTERS.CLIENT]: (state: IOAuth2State) => state.client,\n [OAUTH2_STORE.GETTERS.CLIENTS]: (state: IOAuth2State) => state.clients,\n [OAUTH2_STORE.GETTERS.CLIENTS_PAGINATION]: (state: IOAuth2State) =>\n state.pagination,\n [OAUTH2_STORE.GETTERS.REVOCATION_SUCCESSFUL]: (state: IOAuth2State) =>\n state.revocationSuccessful,\n}\n","import { MutationTree } from 'vuex'\n\nimport { OAUTH2_STORE } from '@/store/constants'\nimport { IOAuth2State, TOAuth2Mutations } from '@/store/modules/oauth2/types'\nimport { IPagination } from '@/types/api'\nimport { IOAuth2Client } from '@/types/oauth'\n\nexport const mutations: MutationTree & TOAuth2Mutations = {\n [OAUTH2_STORE.MUTATIONS.SET_CLIENT](\n state: IOAuth2State,\n client: IOAuth2Client\n ) {\n state.client = client\n },\n [OAUTH2_STORE.MUTATIONS.EMPTY_CLIENT](state: IOAuth2State) {\n state.client = {}\n },\n [OAUTH2_STORE.MUTATIONS.SET_CLIENTS](\n state: IOAuth2State,\n clients: IOAuth2Client[]\n ) {\n state.clients = clients\n },\n [OAUTH2_STORE.MUTATIONS.SET_CLIENTS_PAGINATION](\n state: IOAuth2State,\n pagination: IPagination\n ) {\n state.pagination = pagination\n },\n [OAUTH2_STORE.MUTATIONS.SET_REVOCATION_SUCCESSFUL](\n state: IOAuth2State,\n revocationSuccessful: boolean\n ) {\n state.revocationSuccessful = revocationSuccessful\n },\n}\n","import { IOAuth2State } from '@/store/modules/oauth2/types'\nimport { IPagination } from '@/types/api'\nimport { IOAuth2Client } from '@/types/oauth'\n\nexport const oAuth2State: IOAuth2State = {\n client: {},\n clients: [],\n pagination: {},\n revocationSuccessful: false,\n}\n","import { Module } from 'vuex'\n\nimport { actions } from '@/store/modules/oauth2/actions'\nimport { getters } from '@/store/modules/oauth2/getters'\nimport { mutations } from '@/store/modules/oauth2/mutations'\nimport { oAuth2State } from '@/store/modules/oauth2/state'\nimport { IOAuth2State } from '@/store/modules/oauth2/types'\nimport { IRootState } from '@/store/modules/root/types'\n\nconst oauth2: Module = {\n state: oAuth2State,\n actions,\n getters,\n mutations,\n}\n\nexport default oauth2\n","import { ActionContext, ActionTree } from 'vuex'\n\nimport authApi from '@/api/authApi'\nimport createI18n from '@/i18n'\nimport router from '@/router'\nimport { ROOT_STORE } from '@/store/constants'\nimport { IRootActions, IRootState } from '@/store/modules/root/types'\nimport { TAppConfigForm } from '@/types/application'\nimport { handleError } from '@/utils'\n\nconst { locale } = createI18n.global\n\nexport const actions: ActionTree & IRootActions = {\n [ROOT_STORE.ACTIONS.GET_APPLICATION_CONFIG](\n context: ActionContext\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(ROOT_STORE.MUTATIONS.UPDATE_APPLICATION_LOADING, true)\n authApi\n .get('config')\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n ROOT_STORE.MUTATIONS.UPDATE_APPLICATION_CONFIG,\n res.data.data\n )\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n .finally(() =>\n context.commit(ROOT_STORE.MUTATIONS.UPDATE_APPLICATION_LOADING, false)\n )\n },\n [ROOT_STORE.ACTIONS.GET_APPLICATION_STATS](\n context: ActionContext\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .get('stats/all')\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n ROOT_STORE.MUTATIONS.UPDATE_APPLICATION_STATS,\n res.data.data\n )\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n [ROOT_STORE.ACTIONS.UPDATE_APPLICATION_CONFIG](\n context: ActionContext,\n payload: TAppConfigForm\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .patch('config', payload)\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n ROOT_STORE.MUTATIONS.UPDATE_APPLICATION_CONFIG,\n res.data.data\n )\n router.push('/admin/application')\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n [ROOT_STORE.ACTIONS.UPDATE_APPLICATION_LANGUAGE](\n context: ActionContext,\n language: string\n ): void {\n document.querySelector('html')?.setAttribute('lang', language)\n context.commit(ROOT_STORE.MUTATIONS.UPDATE_LANG, language)\n locale.value = language\n },\n}\n","import { GetterTree } from 'vuex'\n\nimport { ROOT_STORE } from '@/store/constants'\nimport { IRootGetters, IRootState } from '@/store/modules/root/types'\n\nexport const getters: GetterTree & IRootGetters = {\n [ROOT_STORE.GETTERS.APP_CONFIG]: (state: IRootState) => {\n return state.application.config\n },\n [ROOT_STORE.GETTERS.APP_LOADING]: (state: IRootState) => {\n return state.appLoading\n },\n [ROOT_STORE.GETTERS.APP_STATS]: (state: IRootState) => {\n return state.application.statistics\n },\n [ROOT_STORE.GETTERS.ERROR_MESSAGES]: (state: IRootState) => {\n return state.errorMessages\n },\n [ROOT_STORE.GETTERS.LANGUAGE]: (state: IRootState) => {\n return state.language\n },\n [ROOT_STORE.GETTERS.LOCALE]: (state: IRootState) => {\n return state.locale\n },\n}\n","import { MutationTree } from 'vuex'\n\nimport { ROOT_STORE } from '@/store/constants'\nimport { IRootState, TRootMutations } from '@/store/modules/root/types'\nimport { TAppConfig, IAppStatistics } from '@/types/application'\nimport { localeFromLanguage } from '@/utils/locales'\n\nexport const mutations: MutationTree & TRootMutations = {\n [ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES](state: IRootState) {\n state.errorMessages = null\n },\n [ROOT_STORE.MUTATIONS.SET_ERROR_MESSAGES](\n state: IRootState,\n errorMessages: string | string[]\n ) {\n state.errorMessages = errorMessages\n },\n [ROOT_STORE.MUTATIONS.UPDATE_APPLICATION_CONFIG](\n state: IRootState,\n config: TAppConfig\n ) {\n state.application.config = config\n },\n [ROOT_STORE.MUTATIONS.UPDATE_APPLICATION_LOADING](\n state: IRootState,\n loading: boolean\n ) {\n state.appLoading = loading\n },\n [ROOT_STORE.MUTATIONS.UPDATE_APPLICATION_STATS](\n state: IRootState,\n statistics: IAppStatistics\n ) {\n state.application.statistics = statistics\n },\n [ROOT_STORE.MUTATIONS.UPDATE_LANG](state: IRootState, language: string) {\n state.language = language\n state.locale = localeFromLanguage[language]\n },\n}\n","import { enUS } from 'date-fns/locale'\n\nimport { IRootState } from '@/store/modules/root/types'\nimport { IApplication } from '@/types/application'\n\nexport const state: IRootState = {\n root: true,\n language: 'en',\n locale: enUS,\n errorMessages: null,\n application: {\n statistics: {\n sports: 0,\n uploads_dir_size: 0,\n users: 0,\n workouts: 0,\n },\n },\n appLoading: false,\n}\n","import { ActionContext, ActionTree } from 'vuex'\n\nimport authApi from '@/api/authApi'\nimport { AUTH_USER_STORE, ROOT_STORE, SPORTS_STORE } from '@/store/constants'\nimport { IRootState } from '@/store/modules/root/types'\nimport { ISportsActions, ISportsState } from '@/store/modules/sports/types'\nimport { ISportPayload } from '@/types/sports'\nimport { handleError } from '@/utils'\n\nexport const actions: ActionTree & ISportsActions = {\n [SPORTS_STORE.ACTIONS.GET_SPORTS](\n context: ActionContext\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .get('sports')\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n SPORTS_STORE.MUTATIONS.SET_SPORTS,\n res.data.data.sports\n )\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, false)\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n [SPORTS_STORE.ACTIONS.UPDATE_SPORTS](\n context: ActionContext,\n payload: ISportPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .patch(`sports/${payload.id}`, { is_active: payload.isActive })\n .then((res) => {\n if (res.data.status === 'success') {\n context.dispatch(SPORTS_STORE.ACTIONS.GET_SPORTS)\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n}\n","import { GetterTree } from 'vuex'\n\nimport { SPORTS_STORE } from '@/store/constants'\nimport { IRootState } from '@/store/modules/root/types'\nimport { ISportsGetters, ISportsState } from '@/store/modules/sports/types'\n\nexport const getters: GetterTree & ISportsGetters = {\n [SPORTS_STORE.GETTERS.SPORTS]: (state: ISportsState) => state.sports,\n}\n","import { MutationTree } from 'vuex'\n\nimport { SPORTS_STORE } from '@/store/constants'\nimport { ISportsState, TSportsMutations } from '@/store/modules/sports/types'\nimport { ISport } from '@/types/sports'\n\nexport const mutations: MutationTree & TSportsMutations = {\n [SPORTS_STORE.MUTATIONS.SET_SPORTS](state: ISportsState, sports: ISport[]) {\n state.sports = sports\n },\n}\n","import { ISportsState } from '@/store/modules/sports/types'\n\nexport const sportsState: ISportsState = {\n sports: [],\n}\n","import { Module } from 'vuex'\n\nimport { IRootState } from '@/store/modules/root/types'\nimport { actions } from '@/store/modules/sports/actions'\nimport { getters } from '@/store/modules/sports/getters'\nimport { mutations } from '@/store/modules/sports/mutations'\nimport { sportsState } from '@/store/modules/sports/state'\nimport { ISportsState } from '@/store/modules/sports/types'\n\nconst sports: Module = {\n state: sportsState,\n actions,\n getters,\n mutations,\n}\n\nexport default sports\n","import { ActionContext, ActionTree } from 'vuex'\n\nimport authApi from '@/api/authApi'\nimport { STATS_STORE, ROOT_STORE } from '@/store/constants'\nimport { IRootState } from '@/store/modules/root/types'\nimport {\n IStatisticsActions,\n IStatisticsState,\n} from '@/store/modules/statistics/types'\nimport { IUserStatisticsPayload } from '@/types/statistics'\nimport { handleError } from '@/utils'\n\nexport const actions: ActionTree &\n IStatisticsActions = {\n [STATS_STORE.ACTIONS.GET_USER_STATS](\n context: ActionContext,\n payload: IUserStatisticsPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .get(`stats/${payload.username}/${payload.filterType}`, {\n params: payload.params,\n })\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n STATS_STORE.MUTATIONS.UPDATE_USER_STATS,\n res.data.data.statistics\n )\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n}\n","import { GetterTree } from 'vuex'\n\nimport { STATS_STORE } from '@/store/constants'\nimport { IRootState } from '@/store/modules/root/types'\nimport {\n IStatisticsGetters,\n IStatisticsState,\n} from '@/store/modules/statistics/types'\n\nexport const getters: GetterTree &\n IStatisticsGetters = {\n [STATS_STORE.GETTERS.USER_STATS]: (state: IStatisticsState) => {\n return state.statistics\n },\n}\n","import { MutationTree } from 'vuex'\n\nimport { STATS_STORE } from '@/store/constants'\nimport {\n IStatisticsState,\n TStatisticsMutations,\n} from '@/store/modules/statistics/types'\nimport { TStatisticsFromApi } from '@/types/statistics'\n\nexport const mutations: MutationTree & TStatisticsMutations =\n {\n [STATS_STORE.MUTATIONS.UPDATE_USER_STATS](\n state: IStatisticsState,\n statistics: TStatisticsFromApi\n ) {\n state.statistics = statistics\n },\n [STATS_STORE.MUTATIONS.EMPTY_USER_STATS](state: IStatisticsState) {\n state.statistics = {}\n },\n }\n","import { IStatisticsState } from '@/store/modules/statistics/types'\nimport { TStatisticsFromApi } from '@/types/statistics'\n\nexport const statisticsState: IStatisticsState = {\n statistics: {},\n}\n","import { Module } from 'vuex'\n\nimport { IRootState } from '@/store/modules/root/types'\nimport { actions } from '@/store/modules/statistics/actions'\nimport { getters } from '@/store/modules/statistics/getters'\nimport { mutations } from '@/store/modules/statistics/mutations'\nimport { statisticsState } from '@/store/modules/statistics/state'\nimport { IStatisticsState } from '@/store/modules/statistics/types'\n\nconst statistics: Module = {\n state: statisticsState,\n actions,\n getters,\n mutations,\n}\n\nexport default statistics\n","import { GetterTree } from 'vuex'\n\nimport { USERS_STORE } from '@/store/constants'\nimport { IRootState } from '@/store/modules/root/types'\nimport { IUsersGetters, IUsersState } from '@/store/modules/users/types'\n\nexport const getters: GetterTree & IUsersGetters = {\n [USERS_STORE.GETTERS.USER]: (state: IUsersState) => {\n return state.user\n },\n [USERS_STORE.GETTERS.USERS]: (state: IUsersState) => {\n return state.users\n },\n [USERS_STORE.GETTERS.USERS_IS_SUCCESS]: (state: IUsersState) => {\n return state.isSuccess\n },\n [USERS_STORE.GETTERS.USERS_LOADING]: (state: IUsersState) => {\n return state.loading\n },\n [USERS_STORE.GETTERS.USERS_PAGINATION]: (state: IUsersState) => {\n return state.pagination\n },\n}\n","import { MutationTree } from 'vuex'\n\nimport { USERS_STORE } from '@/store/constants'\nimport { IUsersState, TUsersMutations } from '@/store/modules/users/types'\nimport { IPagination } from '@/types/api'\nimport { IUserProfile } from '@/types/user'\n\nexport const mutations: MutationTree & TUsersMutations = {\n [USERS_STORE.MUTATIONS.UPDATE_USER](state: IUsersState, user: IUserProfile) {\n state.user = user\n },\n [USERS_STORE.MUTATIONS.UPDATE_USER_IN_USERS](\n state: IUsersState,\n updatedUser: IUserProfile\n ) {\n state.users = state.users.map((user) => {\n if (user.username === updatedUser.username) {\n return updatedUser\n }\n return user\n })\n },\n [USERS_STORE.MUTATIONS.UPDATE_USERS](\n state: IUsersState,\n users: IUserProfile[]\n ) {\n state.users = users\n },\n [USERS_STORE.MUTATIONS.UPDATE_USERS_LOADING](\n state: IUsersState,\n loading: boolean\n ) {\n state.loading = loading\n },\n [USERS_STORE.MUTATIONS.UPDATE_USERS_PAGINATION](\n state: IUsersState,\n pagination: IPagination\n ) {\n state.pagination = pagination\n },\n [USERS_STORE.MUTATIONS.UPDATE_IS_SUCCESS](\n state: IUsersState,\n isSuccess: boolean\n ) {\n state.isSuccess = isSuccess\n },\n}\n","import { IUsersState } from '@/store/modules/users/types'\nimport { IPagination } from '@/types/api'\nimport { IUserProfile } from '@/types/user'\n\nexport const usersState: IUsersState = {\n user: {},\n users: [],\n loading: false,\n isSuccess: false,\n pagination: {},\n}\n","import { Module } from 'vuex'\n\nimport { IRootState } from '@/store/modules/root/types'\nimport { actions } from '@/store/modules/users/actions'\nimport { getters } from '@/store/modules/users/getters'\nimport { mutations } from '@/store/modules/users/mutations'\nimport { usersState } from '@/store/modules/users/state'\nimport { IUsersState } from '@/store/modules/users/types'\n\nconst users: Module = {\n state: usersState,\n actions,\n getters,\n mutations,\n}\n\nexport default users\n","import { ActionContext, ActionTree } from 'vuex'\n\nimport authApi from '@/api/authApi'\nimport router from '@/router'\nimport { ROOT_STORE, AUTH_USER_STORE, WORKOUTS_STORE } from '@/store/constants'\nimport { IRootState } from '@/store/modules/root/types'\nimport { WorkoutsMutations } from '@/store/modules/workouts/enums'\nimport {\n IWorkoutsActions,\n IWorkoutsState,\n} from '@/store/modules/workouts/types'\nimport {\n IWorkout,\n IWorkoutForm,\n IWorkoutPayload,\n TWorkoutsPayload,\n} from '@/types/workouts'\nimport { handleError } from '@/utils'\n\nconst getWorkouts = (\n context: ActionContext,\n payload: TWorkoutsPayload,\n target: WorkoutsMutations\n): void => {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .get('workouts', {\n params: payload,\n })\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(WORKOUTS_STORE.MUTATIONS[target], res.data.data.workouts)\n if (target === WorkoutsMutations['SET_USER_WORKOUTS']) {\n context.commit(\n WORKOUTS_STORE.MUTATIONS.SET_WORKOUTS_PAGINATION,\n res.data.pagination\n )\n }\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n}\n\nexport const actions: ActionTree &\n IWorkoutsActions = {\n [WORKOUTS_STORE.ACTIONS.GET_CALENDAR_WORKOUTS](\n context: ActionContext,\n payload: TWorkoutsPayload\n ): void {\n context.commit(WORKOUTS_STORE.MUTATIONS.EMPTY_CALENDAR_WORKOUTS)\n getWorkouts(context, payload, WorkoutsMutations['SET_CALENDAR_WORKOUTS'])\n },\n [WORKOUTS_STORE.ACTIONS.GET_USER_WORKOUTS](\n context: ActionContext,\n payload: TWorkoutsPayload\n ): void {\n getWorkouts(context, payload, WorkoutsMutations['SET_USER_WORKOUTS'])\n },\n [WORKOUTS_STORE.ACTIONS.GET_TIMELINE_WORKOUTS](\n context: ActionContext,\n payload: TWorkoutsPayload\n ): void {\n getWorkouts(context, payload, WorkoutsMutations['SET_TIMELINE_WORKOUTS'])\n },\n [WORKOUTS_STORE.ACTIONS.GET_MORE_TIMELINE_WORKOUTS](\n context: ActionContext,\n payload: TWorkoutsPayload\n ): void {\n getWorkouts(context, payload, WorkoutsMutations['ADD_TIMELINE_WORKOUTS'])\n },\n [WORKOUTS_STORE.ACTIONS.GET_WORKOUT_DATA](\n context: ActionContext,\n payload: IWorkoutPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, true)\n const segmentUrl = payload.segmentId ? `/segment/${payload.segmentId}` : ''\n authApi\n .get(`workouts/${payload.workoutId}`)\n .then((res) => {\n const workout: IWorkout = res.data.data.workouts[0]\n if (res.data.status === 'success') {\n if (\n payload.segmentId &&\n (workout.segments.length === 0 ||\n !workout.segments[+payload.segmentId - 1])\n ) {\n throw new Error('WORKOUT_NOT_FOUND')\n }\n context.commit(\n WORKOUTS_STORE.MUTATIONS.SET_WORKOUT,\n res.data.data.workouts[0]\n )\n if (res.data.data.workouts[0].with_gpx) {\n authApi\n .get(`workouts/${payload.workoutId}/chart_data${segmentUrl}`)\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_CHART_DATA,\n res.data.data.chart_data\n )\n }\n })\n authApi\n .get(`workouts/${payload.workoutId}/gpx${segmentUrl}`)\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_GPX,\n res.data.data.gpx\n )\n }\n })\n }\n } else {\n context.commit(WORKOUTS_STORE.MUTATIONS.EMPTY_WORKOUT)\n handleError(context, null)\n }\n })\n .catch((error) => {\n context.commit(WORKOUTS_STORE.MUTATIONS.EMPTY_WORKOUT)\n handleError(context, error)\n })\n .finally(() =>\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, false)\n )\n },\n [WORKOUTS_STORE.ACTIONS.DELETE_WORKOUT](\n context: ActionContext,\n payload: IWorkoutPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, true)\n authApi\n .delete(`workouts/${payload.workoutId}`)\n .then(() => {\n context.commit(WORKOUTS_STORE.MUTATIONS.EMPTY_WORKOUT)\n context.dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n router.push('/')\n })\n .catch((error) => {\n handleError(context, error)\n })\n .finally(() =>\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, false)\n )\n },\n [WORKOUTS_STORE.ACTIONS.EDIT_WORKOUT](\n context: ActionContext,\n payload: IWorkoutPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, true)\n authApi\n .patch(`workouts/${payload.workoutId}`, payload.data)\n .then(() => {\n context.dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n context\n .dispatch(WORKOUTS_STORE.ACTIONS.GET_WORKOUT_DATA, {\n workoutId: payload.workoutId,\n })\n .then(() => {\n router.push({\n name: 'Workout',\n params: { workoutId: payload.workoutId },\n })\n })\n })\n .catch((error) => {\n handleError(context, error)\n })\n .finally(() =>\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, false)\n )\n },\n [WORKOUTS_STORE.ACTIONS.ADD_WORKOUT](\n context: ActionContext,\n payload: IWorkoutForm\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, true)\n if (!payload.file) {\n throw new Error('No file part')\n }\n const notes = payload.notes.replace(/\"/g, '\\\\\"')\n const form = new FormData()\n form.append('file', payload.file)\n form.append(\n 'data',\n `{\"sport_id\": ${payload.sport_id}, \"notes\": \"${notes}\"}`\n )\n authApi\n .post('workouts', form, {\n headers: {\n 'content-type': 'multipart/form-data',\n },\n })\n .then((res) => {\n if (res.data.status === 'created') {\n context.dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n const workout: IWorkout = res.data.data.workouts[0]\n router.push(\n res.data.data.workouts.length === 1\n ? `/workouts/${workout.id}`\n : '/'\n )\n }\n })\n .catch((error) => {\n handleError(context, error)\n })\n .finally(() =>\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, false)\n )\n },\n [WORKOUTS_STORE.ACTIONS.ADD_WORKOUT_WITHOUT_GPX](\n context: ActionContext,\n payload: IWorkoutForm\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, true)\n authApi\n .post('workouts/no_gpx', payload)\n .then((res) => {\n if (res.data.status === 'created') {\n context.dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n const workout: IWorkout = res.data.data.workouts[0]\n router.push(`/workouts/${workout.id}`)\n }\n })\n .catch((error) => {\n handleError(context, error)\n })\n .finally(() =>\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, false)\n )\n },\n}\n","import { GetterTree } from 'vuex'\n\nimport { WORKOUTS_STORE } from '@/store/constants'\nimport { IRootState } from '@/store/modules/root/types'\nimport {\n IWorkoutsGetters,\n IWorkoutsState,\n} from '@/store/modules/workouts/types'\n\nexport const getters: GetterTree &\n IWorkoutsGetters = {\n [WORKOUTS_STORE.GETTERS.CALENDAR_WORKOUTS]: (state: IWorkoutsState) => {\n return state.calendar_workouts\n },\n [WORKOUTS_STORE.GETTERS.TIMELINE_WORKOUTS]: (state: IWorkoutsState) => {\n return state.timeline_workouts\n },\n [WORKOUTS_STORE.GETTERS.USER_WORKOUTS]: (state: IWorkoutsState) => {\n return state.user_workouts\n },\n [WORKOUTS_STORE.GETTERS.WORKOUT_DATA]: (state: IWorkoutsState) => {\n return state.workoutData\n },\n [WORKOUTS_STORE.GETTERS.WORKOUTS_PAGINATION]: (state: IWorkoutsState) => {\n return state.pagination\n },\n}\n","import { MutationTree } from 'vuex'\n\nimport { WORKOUTS_STORE } from '@/store/constants'\nimport {\n IWorkoutsState,\n TWorkoutsMutations,\n} from '@/store/modules/workouts/types'\nimport { IPagination } from '@/types/api'\nimport { IWorkout, IWorkoutApiChartData } from '@/types/workouts'\n\nexport const mutations: MutationTree & TWorkoutsMutations = {\n [WORKOUTS_STORE.MUTATIONS.ADD_TIMELINE_WORKOUTS](\n state: IWorkoutsState,\n workouts: IWorkout[]\n ) {\n state.timeline_workouts = state.timeline_workouts.concat(workouts)\n },\n [WORKOUTS_STORE.MUTATIONS.SET_CALENDAR_WORKOUTS](\n state: IWorkoutsState,\n workouts: IWorkout[]\n ) {\n state.calendar_workouts = workouts\n },\n [WORKOUTS_STORE.MUTATIONS.SET_TIMELINE_WORKOUTS](\n state: IWorkoutsState,\n workouts: IWorkout[]\n ) {\n state.timeline_workouts = workouts\n },\n [WORKOUTS_STORE.MUTATIONS.SET_USER_WORKOUTS](\n state: IWorkoutsState,\n workouts: IWorkout[]\n ) {\n state.user_workouts = workouts\n },\n [WORKOUTS_STORE.MUTATIONS.SET_WORKOUTS_PAGINATION](\n state: IWorkoutsState,\n pagination: IPagination\n ) {\n state.pagination = pagination\n },\n [WORKOUTS_STORE.MUTATIONS.SET_WORKOUT](\n state: IWorkoutsState,\n workout: IWorkout\n ) {\n state.workoutData.workout = workout\n },\n [WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_CHART_DATA](\n state: IWorkoutsState,\n chartData: IWorkoutApiChartData[]\n ) {\n state.workoutData.chartData = chartData\n },\n [WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_GPX](\n state: IWorkoutsState,\n gpx: string\n ) {\n state.workoutData.gpx = gpx\n },\n [WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING](\n state: IWorkoutsState,\n loading: boolean\n ) {\n state.workoutData.loading = loading\n },\n [WORKOUTS_STORE.MUTATIONS.EMPTY_CALENDAR_WORKOUTS](state: IWorkoutsState) {\n state.calendar_workouts = []\n },\n [WORKOUTS_STORE.MUTATIONS.EMPTY_WORKOUTS](state: IWorkoutsState) {\n state.calendar_workouts = []\n state.user_workouts = []\n state.timeline_workouts = []\n },\n [WORKOUTS_STORE.MUTATIONS.EMPTY_WORKOUT](state: IWorkoutsState) {\n state.workoutData = {\n gpx: '',\n loading: false,\n workout: {},\n chartData: [],\n }\n },\n}\n","import { IWorkoutsState } from '@/store/modules/workouts/types'\nimport { IPagination } from '@/types/api'\nimport { IWorkout } from '@/types/workouts'\n\nexport const workoutsState: IWorkoutsState = {\n calendar_workouts: [],\n timeline_workouts: [],\n pagination: {},\n user_workouts: [],\n workoutData: {\n gpx: '',\n loading: false,\n workout: {},\n chartData: [],\n },\n}\n","import { Module } from 'vuex'\n\nimport { IRootState } from '@/store/modules/root/types'\nimport { actions } from '@/store/modules/workouts/actions'\nimport { getters } from '@/store/modules/workouts/getters'\nimport { mutations } from '@/store/modules/workouts/mutations'\nimport { workoutsState } from '@/store/modules/workouts/state'\nimport { IWorkoutsState } from '@/store/modules/workouts/types'\n\nconst workouts: Module = {\n state: workoutsState,\n actions,\n getters,\n mutations,\n}\n\nexport default workouts\n","import { Module, ModuleTree } from 'vuex'\n\nimport authUserModule from '@/store/modules/authUser'\nimport oAuthModule from '@/store/modules/oauth2'\nimport { actions } from '@/store/modules/root/actions'\nimport { getters } from '@/store/modules/root/getters'\nimport { mutations } from '@/store/modules/root/mutations'\nimport { state } from '@/store/modules/root/state'\nimport { IRootState } from '@/store/modules/root/types'\nimport sportsModule from '@/store/modules/sports'\nimport statsModule from '@/store/modules/statistics'\nimport usersModule from '@/store/modules/users'\nimport workoutsModule from '@/store/modules/workouts'\n\nconst modules: ModuleTree = {\n authUserModule,\n oAuthModule,\n sportsModule,\n statsModule,\n usersModule,\n workoutsModule,\n}\n\nconst root: Module = {\n state,\n actions,\n getters,\n mutations,\n modules,\n}\n\nexport default root\n","import { createStore } from 'vuex'\n\nimport root from '@/store/modules/root'\nimport { IRootState } from '@/store/modules/root/types'\n\nconst store = createStore(root)\n\nexport default store\n","export enum WorkoutsActions {\n ADD_WORKOUT = 'ADD_WORKOUT',\n ADD_WORKOUT_WITHOUT_GPX = 'ADD_WORKOUT_WITHOUT_GPX',\n DELETE_WORKOUT = 'DELETE_WORKOUT',\n EDIT_WORKOUT = 'EDIT_WORKOUT',\n GET_CALENDAR_WORKOUTS = 'GET_CALENDAR_WORKOUTS',\n GET_USER_WORKOUTS = 'GET_USER_WORKOUTS',\n GET_TIMELINE_WORKOUTS = 'GET_TIMELINE_WORKOUTS',\n GET_MORE_TIMELINE_WORKOUTS = 'GET_MORE_TIMELINE_WORKOUTS',\n GET_WORKOUT_DATA = 'GET_WORKOUT_DATA',\n}\n\nexport enum WorkoutsGetters {\n CALENDAR_WORKOUTS = 'CALENDAR_WORKOUTS',\n TIMELINE_WORKOUTS = 'TIMELINE_WORKOUTS',\n USER_WORKOUTS = 'USER_WORKOUTS',\n WORKOUT_DATA = 'WORKOUT_DATA',\n WORKOUTS_PAGINATION = 'WORKOUTS_PAGINATION',\n}\n\nexport enum WorkoutsMutations {\n ADD_TIMELINE_WORKOUTS = 'ADD_TIMELINE_WORKOUTS',\n EMPTY_WORKOUTS = 'EMPTY_WORKOUTS',\n EMPTY_CALENDAR_WORKOUTS = 'EMPTY_CALENDAR_WORKOUTS',\n EMPTY_WORKOUT = 'EMPTY_WORKOUT',\n SET_CALENDAR_WORKOUTS = 'SET_CALENDAR_WORKOUTS',\n SET_TIMELINE_WORKOUTS = 'SET_TIMELINE_WORKOUTS',\n SET_USER_WORKOUTS = 'SET_USER_WORKOUTS',\n SET_WORKOUT = 'SET_WORKOUT',\n SET_WORKOUT_GPX = 'SET_WORKOUT_GPX',\n SET_WORKOUT_CHART_DATA = 'SET_WORKOUT_CHART_DATA',\n SET_WORKOUT_LOADING = 'SET_WORKOUT_LOADING',\n SET_WORKOUTS_PAGINATION = 'SET_WORKOUTS_PAGINATION',\n}\n","import { useStore as VuexStore } from 'vuex'\n\nimport { Store } from '@/store/types'\n\nexport function useStore(): Store {\n return VuexStore() as Store\n}\n","import { LocationQuery } from 'vue-router'\n\nimport { IQueryOptions, TPaginationPayload } from '@/types/api'\n\nexport const sortList: string[] = ['asc', 'desc']\nexport const defaultPage = 1\nexport const defaultPerPage = 10\n\nexport const getNumberQueryValue = (\n queryValue: string | (string | null)[] | null,\n defaultValue: number\n): number => {\n return queryValue && typeof queryValue === 'string' && +queryValue > 0\n ? +queryValue\n : defaultValue\n}\n\nexport const getStringQueryValue = (\n queryValue: string | (string | null)[] | null,\n availableValues: string[],\n defaultValue: string\n): string => {\n return queryValue &&\n typeof queryValue === 'string' &&\n availableValues.includes(queryValue)\n ? queryValue\n : defaultValue\n}\n\nexport const getQuery = (\n locationQuery: LocationQuery,\n orderByList: string[],\n defaultOrderBy: string,\n options?: IQueryOptions\n): TPaginationPayload => {\n const queryOptions = options || {}\n const defaultSort = queryOptions.defaultSort || 'asc'\n const query = {}\n\n query.page = getNumberQueryValue(locationQuery.page, defaultPage)\n query.per_page = getNumberQueryValue(locationQuery.per_page, defaultPerPage)\n query.order = getStringQueryValue(locationQuery.order, sortList, defaultSort)\n query.order_by = getStringQueryValue(\n locationQuery.order_by,\n orderByList,\n defaultOrderBy\n )\n if (typeof locationQuery.q === 'string') {\n query.q = locationQuery.q\n } else {\n delete query.q\n }\n\n return query\n}\n\nexport const workoutsPayloadKeys = [\n 'from',\n 'to',\n 'ave_speed_from',\n 'ave_speed_to',\n 'max_speed_from',\n 'max_speed_to',\n 'distance_from',\n 'distance_to',\n 'duration_from',\n 'duration_to',\n 'sport_id',\n]\n\nconst getRange = (stop: number, start = 1): number[] => {\n return Array.from({ length: stop - start + 1 }, (_, i) => start + i)\n}\n\nexport const rangePagination = (\n pages: number,\n currentPage: number\n): (string | number)[] => {\n if (pages < 0) {\n return []\n }\n\n if (pages < 9) {\n return getRange(pages)\n }\n\n let pagination: (string | number)[] = [1, 2]\n if (currentPage < 4) {\n pagination = pagination.concat([3, 4, 5])\n } else if (currentPage < 6) {\n pagination = pagination.concat(getRange(currentPage + 2, 3))\n } else {\n pagination = pagination.concat(['...'])\n if (currentPage < pages - 2) {\n pagination = pagination.concat(getRange(currentPage + 2, currentPage - 2))\n }\n }\n if (currentPage + 2 <= pages - 2) {\n pagination = pagination.concat(['...'])\n pagination = pagination.concat(getRange(pages, pages - 1))\n } else {\n if (\n pagination[pagination.length - 1] !== '...' &&\n pagination[pagination.length - 1] >= pages - 2 &&\n pagination[pagination.length - 1] < pages\n ) {\n pagination = pagination.concat(\n getRange(pages, +pagination[pagination.length - 1] + 1)\n )\n } else {\n pagination = pagination.concat(\n getRange(\n pages,\n currentPage < pages - 3 ? currentPage + 3 : currentPage - 5\n )\n )\n }\n }\n\n return pagination\n}\n","import {\n addDays,\n addMonths,\n addYears,\n endOfMonth,\n endOfWeek,\n format,\n startOfMonth,\n startOfWeek,\n startOfYear,\n} from 'date-fns'\nimport { utcToZonedTime } from 'date-fns-tz'\n\nimport createI18n from '@/i18n'\nimport { localeFromLanguage } from '@/utils/locales'\n\nconst { locale } = createI18n.global\n\nexport const getStartDate = (\n duration: string,\n day: Date,\n weekStartingMonday: boolean\n): Date => {\n switch (duration) {\n case 'week':\n return startOfWeek(day, { weekStartsOn: weekStartingMonday ? 1 : 0 })\n case 'year':\n return startOfYear(day)\n case 'month':\n return startOfMonth(day)\n default:\n throw new Error(\n `Invalid duration, expected: \"week\", \"month\", \"year\", got: \"${duration}\"`\n )\n }\n}\n\nexport const incrementDate = (duration: string, day: Date): Date => {\n switch (duration) {\n case 'week':\n return addDays(day, 7)\n case 'year':\n return addYears(day, 1)\n case 'month':\n return addMonths(day, 1)\n default:\n throw new Error(\n `Invalid duration, expected: \"week\", \"month\", \"year\", got: \"${duration}\"`\n )\n }\n}\n\nexport const getDateWithTZ = (dateInUTC: string, tz: string): Date => {\n return utcToZonedTime(new Date(dateInUTC), tz)\n}\n\nexport const getCalendarStartAndEnd = (\n date: Date,\n weekStartingMonday: boolean\n): Record => {\n const monthStart = startOfMonth(date)\n const monthEnd = endOfMonth(date)\n const weekStartsOn = weekStartingMonday ? 1 : 0\n return {\n start: startOfWeek(monthStart, { weekStartsOn }),\n end: endOfWeek(monthEnd, { weekStartsOn }),\n }\n}\n\nexport const formatWorkoutDate = (\n dateTime: Date,\n dateFormat: string | null = null,\n timeFormat: string | null = null\n): Record => {\n if (!dateFormat) {\n dateFormat = 'yyyy/MM/dd'\n }\n dateFormat = getDateFormat(dateFormat, locale.value)\n if (!timeFormat) {\n timeFormat = 'HH:mm'\n }\n return {\n workout_date: format(dateTime, dateFormat, {\n locale: localeFromLanguage[locale.value],\n }),\n workout_time: format(dateTime, timeFormat),\n }\n}\n\nconst availableDateFormats = [\n 'MM/dd/yyyy',\n 'dd/MM/yyyy',\n 'yyyy-MM-dd',\n 'date_string',\n]\nconst dateStringFormats: Record = {\n de: 'do MMM yyyy',\n en: 'MMM. do, yyyy',\n fr: 'd MMM yyyy',\n // nb: 'do MMM yyyy',\n // nl: 'd MMM yyyy',\n}\n\nexport const getDateFormat = (dateFormat: string, language: string): string => {\n return dateFormat === 'date_string' ? dateStringFormats[language] : dateFormat\n}\n\nexport const formatDate = (\n dateString: string,\n timezone: string,\n dateFormat: string,\n withTime = true,\n language: string | null = null\n): string => {\n if (!language) {\n language = locale.value\n }\n return format(\n getDateWithTZ(dateString, timezone),\n `${getDateFormat(dateFormat, language)}${withTime ? ' HH:mm' : ''}`,\n { locale: localeFromLanguage[language] }\n )\n}\n\nexport const availableDateFormatOptions = (\n inputDate: string,\n timezone: string,\n language: string | null = null\n) => {\n const l: string = language ? language : locale.value\n const options: Record[] = []\n availableDateFormats.map((df) => {\n const dateFormat = getDateFormat(df, l)\n options.push({\n label: `${dateFormat} - ${formatDate(\n inputDate,\n timezone,\n dateFormat,\n false,\n l\n )}`,\n value: df,\n })\n })\n return options\n}\n","const suffixes = ['bytes', 'KB', 'MB', 'GB', 'TB']\n\nexport const getReadableFileSize = (\n fileSize: number,\n asText = true\n): string | Record => {\n const i = Math.floor(Math.log(fileSize) / Math.log(1024))\n if (!fileSize) {\n return asText ? '0 bytes' : { size: '0', suffix: 'bytes' }\n }\n const size = (fileSize / Math.pow(1024, i)).toFixed(1)\n const suffix = suffixes[i]\n return asText ? `${size}${suffix}` : { size, suffix }\n}\n\nexport const getFileSizeInMB = (fileSize: number): number => {\n const value = fileSize / 1048576\n return (!fileSize && 0) || +value.toFixed(2)\n}\n","import { AxiosError } from 'axios'\nimport { ActionContext } from 'vuex'\n\nimport { AUTH_USER_STORE, ROOT_STORE } from '@/store/constants'\nimport { IAuthUserState } from '@/store/modules/authUser/types'\nimport { IOAuth2State } from '@/store/modules/oauth2/types'\nimport { IRootState } from '@/store/modules/root/types'\nimport { ISportsState } from '@/store/modules/sports/types'\nimport { IStatisticsState } from '@/store/modules/statistics/types'\nimport { IUsersState } from '@/store/modules/users/types'\nimport { IWorkoutsState } from '@/store/modules/workouts/types'\nimport { IApiErrorMessage } from '@/types/api'\n\nexport const getApiUrl = (): string => {\n return process.env.NODE_ENV === 'production'\n ? '/api/'\n : `${process.env.VUE_APP_API_URL}/api/`\n}\n\nexport const handleError = (\n context:\n | ActionContext\n | ActionContext\n | ActionContext\n | ActionContext\n | ActionContext\n | ActionContext\n | ActionContext,\n error: AxiosError | null,\n msg = 'UNKNOWN'\n): void => {\n // if request is cancelled, no error to display\n if (error && error.message === 'canceled') {\n return\n }\n\n const errorInfo: IApiErrorMessage | null =\n error?.response && error.response.data ? error.response.data : null\n\n // if stored token is blacklisted, disconnect user\n if (error?.response?.status === 401 && errorInfo?.error === 'invalid_token') {\n localStorage.removeItem('authToken')\n context.dispatch(AUTH_USER_STORE.ACTIONS.CHECK_AUTH_USER)\n return\n }\n\n const errorMessages = !error\n ? msg\n : error.response\n ? error.response.status === 413\n ? 'file size is greater than the allowed size'\n : errorInfo?.message\n ? errorInfo.message\n : msg\n : error.message\n ? error.message\n : msg\n context.commit(\n ROOT_STORE.MUTATIONS.SET_ERROR_MESSAGES,\n errorMessages.includes('\\n')\n ? errorMessages\n .split('\\n')\n .filter((m: string) => m !== '')\n .map((m: string) => `api.ERROR.${m}`)\n : `api.ERROR.${errorMessages}`\n )\n}\n","/* eslint-disable import/no-duplicates */\nimport { Locale } from 'date-fns'\nimport { de, enUS, fr } from 'date-fns/locale'\n\nimport createI18n from '@/i18n'\n\nexport const localeFromLanguage: Record = {\n de: de,\n en: enUS,\n fr: fr,\n // nb: nb, // disabled for now\n // nl: nl, // disabled for now\n}\n\nexport const languageLabels: Record = {\n de: 'Deutsch',\n en: 'English',\n fr: 'Français',\n // nb: 'Norsk bokmål', // disabled for now\n // nl: 'Nederlands', // disabled for now\n}\n\nconst { availableLocales } = createI18n.global\nexport const availableLanguages = availableLocales.map((l) => {\n return { label: languageLabels[l], value: l }\n})\n","import { ISport, ITranslatedSport, TActiveStatus } from '@/types/sports'\nimport { IWorkout } from '@/types/workouts'\n\nexport const sportColors: Record = {\n 'Cycling (Sport)': '#4c9792',\n 'Cycling (Transport)': '#88af98',\n 'Cycling (Virtual)': '#64a360',\n Hiking: '#bb757c',\n 'Mountain Biking': '#d4b371',\n 'Mountain Biking (Electric)': '#fc9d6f',\n Rowing: '#fcce72',\n Running: '#835b83',\n 'Skiing (Alpine)': '#67a4bd',\n 'Skiing (Cross Country)': '#9498d0',\n Snowshoes: '#5780a8',\n Trail: '#09a98a',\n Walking: '#838383',\n}\n\nexport const sportIdColors = (sports: ISport[]): Record => {\n const colors: Record = {}\n sports.map(\n (sport) =>\n (colors[sport.id] = sport.color ? sport.color : sportColors[sport.label])\n )\n return colors\n}\n\nconst sortSports = (a: ITranslatedSport, b: ITranslatedSport): number => {\n const sportATranslatedLabel = a.translatedLabel.toLowerCase()\n const sportBTranslatedLabel = b.translatedLabel.toLowerCase()\n return sportATranslatedLabel > sportBTranslatedLabel\n ? 1\n : sportATranslatedLabel < sportBTranslatedLabel\n ? -1\n : 0\n}\n\nexport const translateSports = (\n sports: ISport[],\n t: CallableFunction,\n activeStatus: TActiveStatus = 'all',\n sportsToInclude: number[] = []\n): ITranslatedSport[] =>\n sports\n .filter((sport) =>\n activeStatus === 'all'\n ? true\n : sportsToInclude.includes(sport.id) || sport[activeStatus]\n )\n .map((sport) => ({\n ...sport,\n translatedLabel: t(`sports.${sport.label}.LABEL`),\n }))\n .sort(sortSports)\n\nexport const getSportLabel = (workout: IWorkout, sports: ISport[]): string => {\n return sports\n .filter((sport) => sport.id === workout.sport_id)\n .map((sport) => sport.label)[0]\n}\n\nexport const getSportColor = (\n workout: IWorkout,\n sports: ISport[]\n): string | null => {\n return sports\n .filter((sport) => sport.id === workout.sport_id)\n .map((sport) => sport.color)[0]\n}\n","import {\n addMonths,\n addWeeks,\n addYears,\n endOfMonth,\n endOfWeek,\n endOfYear,\n format,\n startOfMonth,\n startOfWeek,\n startOfYear,\n subMonths,\n subWeeks,\n subYears,\n} from 'date-fns'\n\nimport createI18n from '@/i18n'\nimport { IChartDataset } from '@/types/chart'\nimport { ISport } from '@/types/sports'\nimport {\n IStatisticsChartData,\n IStatisticsDateParams,\n TStatisticsDatasetKeys,\n TStatisticsDatasets,\n TStatisticsFromApi,\n} from '@/types/statistics'\nimport { incrementDate, getStartDate, getDateFormat } from '@/utils/dates'\nimport { localeFromLanguage } from '@/utils/locales'\nimport { sportColors } from '@/utils/sports'\nimport { convertStatsDistance } from '@/utils/units'\n\nconst { locale } = createI18n.global\n\nconst dateFormats: Record> = {\n week: {\n api: 'yyyy-MM-dd',\n chart: 'MM/dd/yyyy',\n },\n month: {\n api: 'yyyy-MM',\n chart: 'MM/yyyy',\n },\n year: {\n api: 'yyyy',\n chart: 'yyyy',\n },\n}\n\nexport const datasetKeys: TStatisticsDatasetKeys[] = [\n 'average_speed',\n 'nb_workouts',\n 'total_duration',\n 'total_distance',\n 'total_ascent',\n 'total_descent',\n]\n\nexport const getDateKeys = (\n params: IStatisticsDateParams,\n weekStartingMonday: boolean\n): Date[] => {\n const days = []\n for (\n let day = getStartDate(params.duration, params.start, weekStartingMonday);\n day <= params.end;\n day = incrementDate(params.duration, day)\n ) {\n days.push(day)\n }\n return days\n}\n\nconst getStatisticsChartDataset = (\n sportLabel: string,\n color: string,\n isLineChart = false\n): IChartDataset => {\n const dataset: IChartDataset = {\n label: sportLabel,\n backgroundColor: [color],\n data: [],\n }\n if (isLineChart) {\n dataset.type = 'line'\n dataset.borderColor = [color]\n dataset.spanGaps = true\n }\n return dataset\n}\n\nexport const getDatasets = (displayedSports: ISport[]): TStatisticsDatasets => {\n const datasets: TStatisticsDatasets = {\n average_speed: [],\n nb_workouts: [],\n total_distance: [],\n total_duration: [],\n total_ascent: [],\n total_descent: [],\n }\n displayedSports.map((sport) => {\n const color = sport.color ? sport.color : sportColors[sport.label]\n datasets.average_speed.push(\n getStatisticsChartDataset(sport.label, color, true)\n )\n datasets.nb_workouts.push(getStatisticsChartDataset(sport.label, color))\n datasets.total_distance.push(getStatisticsChartDataset(sport.label, color))\n datasets.total_duration.push(getStatisticsChartDataset(sport.label, color))\n datasets.total_ascent.push(getStatisticsChartDataset(sport.label, color))\n datasets.total_descent.push(getStatisticsChartDataset(sport.label, color))\n })\n return datasets\n}\n\nexport const convertStatsValue = (\n datasetKey: TStatisticsDatasetKeys,\n value: number,\n useImperialUnits: boolean\n): number => {\n switch (datasetKey) {\n case 'average_speed':\n case 'total_distance':\n case 'total_ascent':\n case 'total_descent':\n return convertStatsDistance(\n ['average_speed', 'total_distance'].includes(datasetKey) ? 'km' : 'm',\n value,\n useImperialUnits\n )\n default:\n case 'nb_workouts':\n case 'total_duration':\n return value\n }\n}\n\nexport const formatStats = (\n params: IStatisticsDateParams,\n weekStartingMonday: boolean,\n sports: ISport[],\n displayedSportsId: number[],\n apiStats: TStatisticsFromApi,\n useImperialUnits: boolean,\n userDateFormat: string\n): IStatisticsChartData => {\n const dayKeys = getDateKeys(params, weekStartingMonday)\n const dateFormat = dateFormats[params.duration]\n const displayedSports = sports.filter((sport) =>\n displayedSportsId.includes(sport.id)\n )\n const labels: string[] = []\n const datasets = getDatasets(displayedSports)\n const sportsId: Record = {}\n displayedSports.map(\n (displayedSport) => (sportsId[displayedSport.label] = displayedSport.id)\n )\n\n dayKeys.map((key) => {\n const date: string = format(key, dateFormat.api)\n const label: string = format(\n key,\n params.duration === 'week'\n ? getDateFormat(userDateFormat, locale.value)\n : dateFormat.chart,\n { locale: localeFromLanguage[locale.value] }\n )\n labels.push(label)\n datasetKeys.map((datasetKey) => {\n datasets[datasetKey].map((dataset) => {\n dataset.data.push(\n date in apiStats && sportsId[dataset.label] in apiStats[date]\n ? convertStatsValue(\n datasetKey,\n apiStats[date][sportsId[dataset.label]][datasetKey],\n useImperialUnits\n )\n : datasetKey === 'average_speed'\n ? null\n : 0\n )\n })\n })\n })\n return {\n labels,\n datasets,\n }\n}\n\nexport const getStatsDateParams = (\n date: Date,\n timeFrame: string,\n weekStartingMonday: boolean\n): IStatisticsDateParams => {\n const weekStartsOn = weekStartingMonday ? 1 : 0\n const start =\n timeFrame === 'year'\n ? startOfYear(subYears(date, 9))\n : timeFrame === 'week'\n ? startOfWeek(subMonths(date, 2), { weekStartsOn })\n : startOfMonth(subMonths(date, 11)) // month\n const end =\n timeFrame === 'year'\n ? endOfYear(date)\n : timeFrame === 'week'\n ? endOfWeek(date, { weekStartsOn })\n : endOfMonth(date) // month\n return {\n duration: timeFrame,\n end,\n start,\n }\n}\n\nexport const updateChartParams = (\n chartParams: IStatisticsDateParams,\n backward: boolean,\n weekStartingMonday: boolean\n): IStatisticsDateParams => {\n const { duration, start, end } = chartParams\n const weekStartsOn = weekStartingMonday ? 1 : 0\n return {\n duration,\n end:\n duration === 'year'\n ? endOfYear(backward ? subYears(end, 1) : addYears(end, 1))\n : duration === 'week'\n ? endOfWeek(backward ? subWeeks(end, 1) : addWeeks(end, 1), {\n weekStartsOn,\n })\n : endOfMonth(backward ? subMonths(end, 1) : addMonths(end, 1)),\n start:\n duration === 'year'\n ? startOfYear(backward ? subYears(start, 1) : addYears(start, 1))\n : duration === 'week'\n ? startOfWeek(backward ? subWeeks(start, 1) : addWeeks(start, 1), {\n weekStartsOn,\n })\n : startOfMonth(backward ? subMonths(start, 1) : addMonths(start, 1)),\n }\n}\n","import { IUnit, TFactor, TUnit } from '@/types/units'\n\nexport const units: Record = {\n ft: {\n unit: 'ft',\n system: 'imperial',\n multiplier: 1,\n defaultTarget: 'm',\n },\n mi: {\n unit: 'mi',\n system: 'imperial',\n multiplier: 5280,\n defaultTarget: 'km',\n },\n m: {\n unit: 'm',\n system: 'metric',\n multiplier: 1,\n defaultTarget: 'ft',\n },\n km: {\n unit: 'm',\n system: 'metric',\n multiplier: 1000,\n defaultTarget: 'mi',\n },\n}\n\nconst factors: TFactor = {\n metric: {\n imperial: 3.280839895,\n metric: 1,\n },\n imperial: {\n metric: 1 / 3.280839895,\n imperial: 1,\n },\n}\n\nexport const convertDistance = (\n distance: number,\n from: TUnit,\n to: TUnit,\n digits: number | null = 3\n): number => {\n const unitFrom = units[from]\n const unitTo = units[to]\n const convertedDistance =\n (distance * unitFrom.multiplier * factors[unitFrom.system][unitTo.system]) /\n unitTo.multiplier\n if (digits !== null) {\n return parseFloat(convertedDistance.toFixed(digits))\n }\n return convertedDistance\n}\n\nexport const convertStatsDistance = (\n unitFrom: TUnit,\n value: number,\n useImperialUnits: boolean\n): number => {\n const unitTo = useImperialUnits ? units[unitFrom].defaultTarget : unitFrom\n return useImperialUnits ? convertDistance(value, unitFrom, unitTo, 2) : value\n}\n","import {\n IWorkout,\n IWorkoutApiChartData,\n IWorkoutChartData,\n TCoordinates,\n TWorkoutDatasets,\n} from '@/types/workouts'\nimport { convertStatsDistance } from '@/utils/units'\n\nexport const getDatasets = (\n chartData: IWorkoutApiChartData[],\n t: CallableFunction,\n useImperialUnits: boolean\n): IWorkoutChartData => {\n const datasets: TWorkoutDatasets = {\n speed: {\n label: t('workouts.SPEED'),\n backgroundColor: ['#FFFFFF'],\n borderColor: ['#8884d8'],\n borderWidth: 2,\n data: [],\n yAxisID: 'ySpeed',\n },\n elevation: {\n label: t('workouts.ELEVATION'),\n backgroundColor: ['#e5e5e5'],\n borderColor: ['#cccccc'],\n borderWidth: 1,\n fill: true,\n data: [],\n yAxisID: 'yElevation',\n },\n }\n const distance_labels: unknown[] = []\n const duration_labels: unknown[] = []\n const coordinates: TCoordinates[] = []\n\n chartData.map((data) => {\n distance_labels.push(data.distance)\n duration_labels.push(data.duration)\n datasets.speed.data.push(\n convertStatsDistance('km', data.speed, useImperialUnits)\n )\n datasets.elevation.data.push(\n convertStatsDistance('m', data.elevation, useImperialUnits)\n )\n coordinates.push({ latitude: data.latitude, longitude: data.longitude })\n })\n\n return { distance_labels, duration_labels, datasets, coordinates }\n}\n\nexport const getDonutDatasets = (\n workouts: IWorkout[]\n): Record> => {\n const total = workouts.length\n if (total === 0) {\n return {}\n }\n\n const datasets: Record> = {}\n workouts.map((workout) => {\n if (!datasets[workout.sport_id]) {\n datasets[workout.sport_id] = {\n count: 0,\n percentage: 0,\n }\n }\n datasets[workout.sport_id].count += 1\n datasets[workout.sport_id].percentage =\n datasets[workout.sport_id].count / total\n })\n\n return datasets\n}\n\nexport const defaultOrder = {\n order: 'desc',\n order_by: 'workout_date',\n}\n","\n\n\n","import { render } from \"./Card.vue?vue&type=template&id=ad374c24\"\nconst script = {}\n\nimport \"./Card.vue?vue&type=style&index=0&id=ad374c24&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-72463173\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"table-selects\" }\nconst _hoisted_2 = [\"value\"]\nconst _hoisted_3 = [\"value\"]\nconst _hoisted_4 = [\"value\"]\nconst _hoisted_5 = [\"value\"]\nconst _hoisted_6 = [\"value\"]\nconst _hoisted_7 = [\"value\"]\n\nimport { toRefs } from 'vue'\n\n import { TPaginationPayload } from '@/types/api'\n\n interface Props {\n order_by: string[]\n query: TPaginationPayload\n sort: string[]\n message: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'FilterSelects',\n props: {\n order_by: null,\n query: null,\n sort: null,\n message: null\n },\n emits: ['updateSelect'],\n setup(__props: any, { emit }) {\n\nconst props = __props as {\n order_by: string[]\n query: TPaginationPayload\n sort: string[]\n message: string\n };\n\n \n\n \n\n const { order_by, query, sort, message } = toRefs(props)\n const perPage = [10, 25, 50, 100]\n\n function onSelectUpdate(event: Event & { target: HTMLInputElement }) {\n emit('updateSelect', event.target.id, event.target.value)\n }\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"label\", null, [\n _createTextVNode(_toDisplayString(_ctx.$t('common.SELECTS.ORDER_BY.LABEL')) + \": \", 1),\n _createElementVNode(\"select\", {\n name: \"order_by\",\n id: \"order_by\",\n value: _unref(query).order_by,\n onChange: onSelectUpdate\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(order_by), (order) => {\n return (_openBlock(), _createElementBlock(\"option\", {\n value: order,\n key: order\n }, _toDisplayString(_ctx.$t(`${_unref(message)}.${order.toUpperCase()}`)), 9, _hoisted_3))\n }), 128))\n ], 40, _hoisted_2)\n ]),\n _createElementVNode(\"label\", null, [\n _createTextVNode(_toDisplayString(_ctx.$t('common.SELECTS.ORDER.LABEL')) + \": \", 1),\n _createElementVNode(\"select\", {\n name: \"order\",\n id: \"order\",\n value: _unref(query).order,\n onChange: onSelectUpdate\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(sort), (order) => {\n return (_openBlock(), _createElementBlock(\"option\", {\n value: order,\n key: order\n }, _toDisplayString(_ctx.$t(`common.SELECTS.ORDER.${order.toUpperCase()}`)), 9, _hoisted_5))\n }), 128))\n ], 40, _hoisted_4)\n ]),\n _createElementVNode(\"label\", null, [\n _createTextVNode(_toDisplayString(_ctx.$t('common.SELECTS.PER_PAGE.LABEL')) + \": \", 1),\n _createElementVNode(\"select\", {\n name: \"per_page\",\n id: \"per_page\",\n value: _unref(query).per_page,\n onChange: onSelectUpdate\n }, [\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList(perPage, (nb) => {\n return _createElementVNode(\"option\", {\n value: nb,\n key: nb\n }, _toDisplayString(nb), 9, _hoisted_7)\n }), 64))\n ], 40, _hoisted_6)\n ])\n ]))\n}\n}\n\n})","import script from \"./FilterSelects.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./FilterSelects.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./FilterSelects.vue?vue&type=style&index=0&id=72463173&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-72463173\"]])\n\nexport default __exports__","\n\n\n","import { render } from \"./ErrorImg.vue?vue&type=template&id=e620aed4\"\nimport script from \"./ErrorImg.vue?vue&type=script&lang=js\"\nexport * from \"./ErrorImg.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-b60bfa80\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"error\" }\nconst _hoisted_2 = { class: \"error-content\" }\n\nimport { toRefs, withDefaults } from 'vue'\n\n interface Props {\n title: string\n message: string\n buttonText: string\n path?: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'Error',\n props: {\n title: null,\n message: null,\n buttonText: null,\n path: { default: '/' }\n },\n setup(__props: any) {\n\nconst props = __props as { title: string, message: string, buttonText: string, path: string };\n\n \n const { buttonText, title, message, path } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"h1\", null, _toDisplayString(_unref(title)), 1),\n _createElementVNode(\"p\", null, _toDisplayString(_unref(message)), 1),\n (_unref(buttonText))\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 0,\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$router.push(_unref(path)))),\n class: \"upper\"\n }, _toDisplayString(_unref(buttonText)), 1))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n}\n}\n\n})","import script from \"./Error.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Error.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Error.vue?vue&type=style&index=0&id=b60bfa80&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-b60bfa80\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode } from \"vue\"\n\nimport { Ref, onMounted, ref, toRefs, withDefaults, onUnmounted } from 'vue'\n\n import Error from '@/components/Common/Error.vue'\n interface Props {\n target?: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'NotFound',\n props: {\n target: { default: 'PAGE' }\n },\n setup(__props: any) {\n\nconst props = __props as { target: string };\n\n \n const { target } = toRefs(props)\n const timer = ref()\n const errorDisplayed: Ref = ref(false)\n\n onMounted(() => displayError())\n\n function displayError() {\n timer.value = setTimeout(() => {\n errorDisplayed.value = true\n }, 500)\n }\n\n onUnmounted(() => {\n if (timer.value) {\n clearTimeout(timer.value)\n }\n })\n\nreturn (_ctx: any,_cache: any) => {\n return (errorDisplayed.value)\n ? (_openBlock(), _createBlock(Error, {\n key: 0,\n title: \"404\",\n message: _ctx.$t(`error.NOT_FOUND.${_unref(target)}`),\n \"button-text\": _ctx.$t('common.HOME')\n }, null, 8, [\"message\", \"button-text\"]))\n : _createCommentVNode(\"\", true)\n}\n}\n\n})","import script from \"./NotFound.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./NotFound.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, renderSlot as _renderSlot, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, normalizeClass as _normalizeClass, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-3a9a4a65\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n class: \"pagination-center\",\n \"aria-label\": \"navigation\"\n}\nconst _hoisted_2 = { class: \"pagination\" }\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-chevron-left\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_4 = { key: 0 }\nconst _hoisted_5 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-chevron-right\",\n \"aria-hidden\": \"true\"\n}, null, -1))\n\nimport { toRefs } from 'vue'\n\n import { IPagination, TPaginationPayload } from '@/types/api'\n import { IOauth2ClientsPayload } from '@/types/oauth'\n import { TWorkoutsPayload } from '@/types/workouts'\n import { rangePagination } from '@/utils/api'\n\n interface Props {\n pagination: IPagination\n path: string\n query: TWorkoutsPayload | TPaginationPayload | IOauth2ClientsPayload\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'Pagination',\n props: {\n pagination: null,\n path: null,\n query: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n pagination: IPagination\n path: string\n query: TWorkoutsPayload | TPaginationPayload | IOauth2ClientsPayload\n };\n\n \n\n const { pagination, path, query } = toRefs(props)\n\n function getQuery(\n page: number,\n cursor?: number\n ): TPaginationPayload | IOauth2ClientsPayload {\n const newQuery = Object.assign({}, query.value)\n newQuery.page = cursor ? page + cursor : page\n return newQuery\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_link = _resolveComponent(\"router-link\")!\n\n return (_openBlock(), _createElementBlock(\"nav\", _hoisted_1, [\n _createElementVNode(\"ul\", _hoisted_2, [\n _createElementVNode(\"li\", {\n class: _normalizeClass([\"page-prev\", { disabled: !_unref(pagination).has_prev }])\n }, [\n _createVNode(_component_router_link, {\n class: \"page-link\",\n to: { path: _unref(path), query: getQuery(_unref(pagination).page, -1) },\n disabled: !_unref(pagination).has_prev\n }, {\n default: _withCtx(({ navigate }) => [\n _renderSlot(_ctx.$slots, \"default\", {\n onClick: ($event: any) => (_unref(pagination).has_next ? navigate : null)\n }, () => [\n _createTextVNode(_toDisplayString(_ctx.$t('api.PAGINATION.PREVIOUS')) + \" \", 1),\n _hoisted_3\n ])\n ]),\n _: 3\n }, 8, [\"to\", \"disabled\"])\n ], 2),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(rangePagination)(_unref(pagination).pages, _unref(pagination).page), (page) => {\n return (_openBlock(), _createElementBlock(\"li\", {\n key: page,\n class: _normalizeClass([\"page\", { active: page === _unref(pagination).page }])\n }, [\n (page === '...')\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_4, \" ... \"))\n : (_openBlock(), _createBlock(_component_router_link, {\n key: 1,\n class: \"page-link\",\n to: { path: _unref(path), query: getQuery(+page) }\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(page), 1)\n ]),\n _: 2\n }, 1032, [\"to\"]))\n ], 2))\n }), 128)),\n _createElementVNode(\"li\", {\n class: _normalizeClass([\"page-next\", { disabled: !_unref(pagination).has_next }])\n }, [\n _createVNode(_component_router_link, {\n class: \"page-link\",\n to: { path: _unref(path), query: getQuery(_unref(pagination).page, 1) },\n disabled: !_unref(pagination).has_next\n }, {\n default: _withCtx(({ navigate }) => [\n _renderSlot(_ctx.$slots, \"default\", {\n onClick: ($event: any) => (_unref(pagination).has_next ? navigate : null)\n }, () => [\n _createTextVNode(_toDisplayString(_ctx.$t('api.PAGINATION.NEXT')) + \" \", 1),\n _hoisted_5\n ])\n ]),\n _: 3\n }, 8, [\"to\", \"disabled\"])\n ], 2)\n ])\n ]))\n}\n}\n\n})","import script from \"./Pagination.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Pagination.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Pagination.vue?vue&type=style&index=0&id=3a9a4a65&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-3a9a4a65\"]])\n\nexport default __exports__","import { zxcvbnOptions } from '@zxcvbn-ts/core'\n\nexport const setZxcvbnOptions = async (language: string) => {\n const zxcvbnCommonPackage = await import(\n /* webpackChunkName: \"password\" */ '@zxcvbn-ts/language-common'\n )\n const zxcvbnEnPackage = await import(\n /* webpackChunkName: \"password\" */ '@zxcvbn-ts/language-en'\n )\n const zxcvbnFrPackage = await import(\n /* webpackChunkName: \"password\" */ '@zxcvbn-ts/language-fr'\n )\n const zxcvbnDePackage = await import(\n /* webpackChunkName: \"password\" */ '@zxcvbn-ts/language-de'\n )\n const zxcvbnLangPackages: Record = {\n de: zxcvbnDePackage,\n en: zxcvbnEnPackage,\n fr: zxcvbnFrPackage,\n // no package available for norwegian bokmal, fallback on english\n nb: zxcvbnEnPackage,\n // no package available for dutch (Nederlands), fallback on english\n nl: zxcvbnEnPackage,\n }\n const zxcvbnPackage = zxcvbnLangPackages[language]\n const options = {\n graphs: zxcvbnCommonPackage.default.adjacencyGraphs,\n dictionary: {\n ...zxcvbnCommonPackage.default.dictionary,\n ...zxcvbnPackage.default.dictionary,\n },\n }\n zxcvbnOptions.setOptions(options)\n}\n\nexport const getPasswordStrength = (strength: number): string => {\n switch (strength) {\n case 2:\n return 'AVERAGE'\n case 3:\n return 'GOOD'\n case 4:\n return 'STRONG'\n default:\n return 'WEAK'\n }\n}\n","import { defineComponent as _defineComponent } from 'vue'\nimport { normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-74e71df5\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"password-strength\" }\nconst _hoisted_2 = [\"value\"]\nconst _hoisted_3 = {\n key: 0,\n class: \"password-strength-details\"\n}\nconst _hoisted_4 = { class: \"password-strength-value\" }\nconst _hoisted_5 = {\n key: 0,\n class: \"info-box\"\n}\nconst _hoisted_6 = { class: \"password-feedback\" }\n\nimport { zxcvbn } from '@zxcvbn-ts/core'\n import {\n ComputedRef,\n Ref,\n computed,\n ref,\n onBeforeMount,\n toRefs,\n watch,\n } from 'vue'\n\n import { AUTH_USER_STORE, ROOT_STORE } from '@/store/constants'\n import { useStore } from '@/use/useStore'\n import { getPasswordStrength, setZxcvbnOptions } from '@/utils/password'\n\n interface Props {\n password: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'PasswordStength',\n props: {\n password: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n password: string\n };\n\n \n const { password } = toRefs(props)\n\n const store = useStore()\n const language: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.LANGUAGE]\n )\n const isSuccess: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.IS_SUCCESS]\n )\n const passwordScore: Ref = ref(0)\n const passwordStrength: Ref = ref('')\n const passwordSuggestions: Ref = ref([])\n const backgroundSize = ref('0% 100%')\n\n onBeforeMount(async () => await setZxcvbnOptions(language.value))\n\n function calculatePasswordStrength(password: string) {\n const zxcvbnResult = zxcvbn(password)\n passwordScore.value = zxcvbnResult.score\n passwordStrength.value = getPasswordStrength(passwordScore.value)\n passwordSuggestions.value = zxcvbnResult.feedback.suggestions\n backgroundSize.value = (passwordScore.value * 100) / 4 + '% 100%'\n }\n\n watch(\n () => language.value,\n async (newLanguageValue) => {\n await setZxcvbnOptions(newLanguageValue)\n }\n )\n watch(\n () => password.value,\n async (newPassword) => {\n if (isSuccess.value) {\n passwordStrength.value = ''\n } else {\n calculatePasswordStrength(newPassword)\n }\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"input\", {\n class: _normalizeClass([\"password-slider\", `strength-${passwordScore.value}`]),\n style: _normalizeStyle({ backgroundSize: backgroundSize.value }),\n type: \"range\",\n value: passwordScore.value,\n min: \"0\",\n max: \"4\",\n step: \"1\"\n }, null, 14, _hoisted_2),\n (passwordStrength.value)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n _createElementVNode(\"span\", _hoisted_4, _toDisplayString(_ctx.$t('user.PASSWORD_STRENGTH.LABEL')) + \": \" + _toDisplayString(_ctx.$t(`user.PASSWORD_STRENGTH.${passwordStrength.value}`)), 1),\n (passwordSuggestions.value.length > 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_5, [\n _createElementVNode(\"ul\", _hoisted_6, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(passwordSuggestions.value, (suggestion) => {\n return (_openBlock(), _createElementBlock(\"li\", { key: suggestion }, _toDisplayString(_ctx.$t(`user.PASSWORD_STRENGTH.SUGGESTIONS.${suggestion}`)), 1))\n }), 128))\n ])\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n}\n}\n\n})","import script from \"./PasswordStength.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./PasswordStength.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./PasswordStength.vue?vue&type=style&index=0&id=74e71df5&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-74e71df5\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, vModelDynamic as _vModelDynamic, createElementVNode as _createElementVNode, withDirectives as _withDirectives, toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, createTextVNode as _createTextVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-5a126514\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"password-input\" }\nconst _hoisted_2 = [\"id\", \"disabled\", \"placeholder\", \"required\", \"type\"]\nconst _hoisted_3 = {\n key: 0,\n class: \"form-info\"\n}\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-info-circle\",\n \"aria-hidden\": \"true\"\n}, null, -1))\n\nimport { Ref, ref, toRefs, watch, withDefaults } from 'vue'\n\n import PasswordStrength from '@/components/Common/PasswordStength.vue'\n\n interface Props {\n checkStrength?: boolean\n disabled?: boolean\n id?: string\n password?: string\n placeholder?: string\n required?: boolean\n }\n\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'PasswordInput',\n props: {\n checkStrength: { type: Boolean, default: false },\n disabled: { type: Boolean, default: false },\n id: { default: 'password' },\n password: { default: '' },\n placeholder: null,\n required: { type: Boolean, default: false }\n },\n emits: ['updatePassword', 'passwordError'],\n setup(__props: any, { emit }) {\n\nconst props = __props as { checkStrength: boolean, disabled: boolean, id: string, password: string, placeholder?: string, required: boolean };\n\n \n const { checkStrength, disabled, id, password, placeholder, required } =\n toRefs(props)\n\n const showPassword: Ref = ref(false)\n const passwordValue: Ref = ref('')\n\n \n\n function togglePassword() {\n showPassword.value = !showPassword.value\n }\n function updatePassword(event: Event & { target: HTMLInputElement }) {\n emit('updatePassword', event.target.value)\n }\n function invalidPassword() {\n emit('passwordError')\n }\n\n watch(\n () => password.value,\n (newPassword) => {\n if (newPassword === '') {\n passwordValue.value = ''\n }\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _withDirectives(_createElementVNode(\"input\", {\n id: _unref(id),\n disabled: _unref(disabled),\n placeholder: _unref(placeholder),\n required: _unref(required),\n type: showPassword.value ? 'text' : 'password',\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((passwordValue).value = $event)),\n minlength: \"8\",\n onInput: updatePassword,\n onInvalid: invalidPassword\n }, null, 40, _hoisted_2), [\n [_vModelDynamic, passwordValue.value]\n ]),\n _createElementVNode(\"div\", {\n class: \"show-password\",\n onClick: togglePassword\n }, [\n _createTextVNode(_toDisplayString(_ctx.$t(`user.${showPassword.value ? 'HIDE' : 'SHOW'}_PASSWORD`)) + \" \", 1),\n _createElementVNode(\"i\", {\n class: _normalizeClass([\"fa\", `fa-eye${showPassword.value ? '-slash' : ''}`]),\n \"aria-hidden\": \"true\"\n }, null, 2)\n ]),\n (_unref(checkStrength))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n _hoisted_4,\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('user.PASSWORD_INFO')), 1)\n ]))\n : _createCommentVNode(\"\", true),\n (_unref(checkStrength))\n ? (_openBlock(), _createBlock(PasswordStrength, {\n key: 1,\n password: passwordValue.value\n }, null, 8, [\"password\"]))\n : _createCommentVNode(\"\", true)\n ]))\n}\n}\n\n})","import script from \"./PasswordInput.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./PasswordInput.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./PasswordInput.vue?vue&type=style&index=0&id=5a126514&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-5a126514\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, normalizeStyle as _normalizeStyle, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass } from \"vue\"\n\nconst _hoisted_1 = /*#__PURE__*/_createElementVNode(\"div\", { class: \"map-attribution\" }, [\n /*#__PURE__*/_createElementVNode(\"span\", { class: \"map-attribution-text\" }, \"©\"),\n /*#__PURE__*/_createElementVNode(\"a\", {\n class: \"map-attribution-text\",\n href: \"https://www.openstreetmap.org/copyright\",\n target: \"_blank\",\n rel: \"noopener noreferrer\"\n }, \" OpenStreetMap \")\n], -1)\n\nimport { toRefs, withDefaults } from 'vue'\n\n import { IWorkout } from '@/types/workouts'\n import { getApiUrl } from '@/utils'\n\n interface Props {\n workout: IWorkout\n displayHover?: boolean\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'StaticMap',\n props: {\n workout: null,\n displayHover: { type: Boolean, default: false }\n },\n setup(__props: any) {\n\nconst props = __props as { workout: IWorkout, displayHover: boolean };\n\n \n const { displayHover } = toRefs(props)\n const imageUrl = `${getApiUrl()}workouts/map/${props.workout.map}`\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: _normalizeClass([\"static-map\", { 'display-hover': _unref(displayHover) }])\n }, [\n (_unref(displayHover))\n ? (_openBlock(), _createElementBlock(\"img\", {\n key: 0,\n src: imageUrl,\n alt: \"\"\n }))\n : (_openBlock(), _createElementBlock(\"div\", {\n key: 1,\n class: \"bg-map-image\",\n style: _normalizeStyle({\n backgroundImage: `url(${imageUrl})`,\n })\n }, null, 4)),\n _hoisted_1\n ], 2))\n}\n}\n\n})","import script from \"./StaticMap.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./StaticMap.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./StaticMap.vue?vue&type=style&index=0&id=6b7e4baf&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-d5e9b348\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"start-chart\" }\nconst _hoisted_2 = { key: 0 }\nconst _hoisted_3 = { key: 1 }\nconst _hoisted_4 = { class: \"chart-radio\" }\nconst _hoisted_5 = [\"checked\"]\nconst _hoisted_6 = [\"checked\"]\nconst _hoisted_7 = [\"checked\"]\nconst _hoisted_8 = { key: 0 }\nconst _hoisted_9 = [\"checked\"]\nconst _hoisted_10 = { key: 1 }\nconst _hoisted_11 = [\"checked\"]\nconst _hoisted_12 = { key: 2 }\nconst _hoisted_13 = [\"checked\"]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_Chart = _resolveComponent(\"Chart\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_ctx.hideChartIfNoData && _ctx.emptyStats)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, _toDisplayString(_ctx.$t('workouts.NO_WORKOUTS')), 1))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"label\", null, [\n _createElementVNode(\"input\", {\n type: \"radio\",\n name: \"total_distance\",\n checked: _ctx.displayedData === 'total_distance',\n onClick: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => (_ctx.updateDisplayData && _ctx.updateDisplayData(...args)))\n }, null, 8, _hoisted_5),\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.DISTANCE')), 1)\n ]),\n _createElementVNode(\"label\", null, [\n _createElementVNode(\"input\", {\n type: \"radio\",\n name: \"total_duration\",\n checked: _ctx.displayedData === 'total_duration',\n onClick: _cache[1] || (_cache[1] = \n//@ts-ignore\n(...args) => (_ctx.updateDisplayData && _ctx.updateDisplayData(...args)))\n }, null, 8, _hoisted_6),\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.DURATION')), 1)\n ]),\n _createElementVNode(\"label\", null, [\n _createElementVNode(\"input\", {\n type: \"radio\",\n name: \"nb_workouts\",\n checked: _ctx.displayedData === 'nb_workouts',\n onClick: _cache[2] || (_cache[2] = \n//@ts-ignore\n(...args) => (_ctx.updateDisplayData && _ctx.updateDisplayData(...args)))\n }, null, 8, _hoisted_7),\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.WORKOUT', 2)), 1)\n ]),\n (_ctx.fullStats)\n ? (_openBlock(), _createElementBlock(\"label\", _hoisted_8, [\n _createElementVNode(\"input\", {\n type: \"radio\",\n name: \"average_speed\",\n checked: _ctx.displayedData === 'average_speed',\n onClick: _cache[3] || (_cache[3] = \n//@ts-ignore\n(...args) => (_ctx.updateDisplayData && _ctx.updateDisplayData(...args)))\n }, null, 8, _hoisted_9),\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.AVERAGE_SPEED')), 1)\n ]))\n : _createCommentVNode(\"\", true),\n (_ctx.fullStats)\n ? (_openBlock(), _createElementBlock(\"label\", _hoisted_10, [\n _createElementVNode(\"input\", {\n type: \"radio\",\n name: \"total_ascent\",\n checked: _ctx.displayedData === 'total_ascent',\n onClick: _cache[4] || (_cache[4] = \n//@ts-ignore\n(...args) => (_ctx.updateDisplayData && _ctx.updateDisplayData(...args)))\n }, null, 8, _hoisted_11),\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.ASCENT')), 1)\n ]))\n : _createCommentVNode(\"\", true),\n (_ctx.fullStats)\n ? (_openBlock(), _createElementBlock(\"label\", _hoisted_12, [\n _createElementVNode(\"input\", {\n type: \"radio\",\n name: \"total_descent\",\n checked: _ctx.displayedData === 'total_descent',\n onClick: _cache[5] || (_cache[5] = \n//@ts-ignore\n(...args) => (_ctx.updateDisplayData && _ctx.updateDisplayData(...args)))\n }, null, 8, _hoisted_13),\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.DESCENT')), 1)\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n (_ctx.labels.length > 0)\n ? (_openBlock(), _createBlock(_component_Chart, {\n key: 0,\n datasets: _ctx.datasets,\n labels: _ctx.labels,\n displayedData: _ctx.displayedData,\n displayedSportIds: _ctx.displayedSportIds,\n fullStats: _ctx.fullStats,\n useImperialUnits: _ctx.user.imperial_units\n }, null, 8, [\"datasets\", \"labels\", \"displayedData\", \"displayedSportIds\", \"fullStats\", \"useImperialUnits\"]))\n : _createCommentVNode(\"\", true)\n ]))\n ]))\n}","import { resolveComponent as _resolveComponent, mergeProps as _mergeProps, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"chart\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_BarChart = _resolveComponent(\"BarChart\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_BarChart, _mergeProps(_ctx.barChartProps, { class: \"bar-chart\" }), null, 16)\n ]))\n}","export const formatDuration = (\n totalSeconds: number,\n formatWithUnits = false\n): string => {\n let days = '0'\n if (formatWithUnits) {\n days = String(Math.floor(totalSeconds / 86400))\n totalSeconds %= 86400\n }\n const hours = String(Math.floor(totalSeconds / 3600)).padStart(2, '0')\n totalSeconds %= 3600\n const minutes = String(Math.floor(totalSeconds / 60)).padStart(2, '0')\n const seconds = String(totalSeconds % 60).padStart(2, '0')\n if (formatWithUnits) {\n return `${days === '0' ? '' : `${days}d `}${\n hours === '00' ? '' : `${hours}h `\n }${minutes}m ${seconds}s`\n }\n return `${hours === '00' ? '' : `${hours}:`}${minutes}:${seconds}`\n}\n","import { TStatisticsDatasetKeys } from '@/types/statistics'\nimport { formatDuration } from '@/utils/duration'\nimport { units } from '@/utils/units'\n\nexport const formatTooltipValue = (\n displayedData: TStatisticsDatasetKeys,\n value: number,\n useImperialUnits: boolean,\n formatWithUnits = true,\n unitFrom = 'km'\n): string => {\n const unitTo = useImperialUnits ? units[unitFrom].defaultTarget : unitFrom\n switch (displayedData) {\n case 'average_speed':\n return `${value.toFixed(2)} ${unitTo}/h`\n case 'total_duration':\n return formatDuration(value, formatWithUnits)\n case 'total_distance':\n case 'total_ascent':\n case 'total_descent':\n return `${value.toFixed(2)} ${unitTo}`\n default:\n return value.toString()\n }\n}\n","\n import { ChartOptions, LayoutItem } from 'chart.js'\n import { PropType, computed, defineComponent } from 'vue'\n import { BarChart, useBarChart } from 'vue-chart-3'\n import { useI18n } from 'vue-i18n'\n\n import { IChartDataset } from '@/types/chart'\n import { TStatisticsDatasetKeys } from '@/types/statistics'\n import { formatTooltipValue } from '@/utils/tooltip'\n\n export default defineComponent({\n name: 'Chart',\n components: {\n BarChart,\n },\n props: {\n datasets: {\n type: Object as PropType,\n required: true,\n },\n labels: {\n type: Object as PropType,\n required: true,\n },\n displayedData: {\n type: String as PropType,\n required: true,\n },\n displayedSportIds: {\n type: Array as PropType,\n required: true,\n },\n fullStats: {\n type: Boolean,\n required: true,\n },\n useImperialUnits: {\n type: Boolean,\n required: true,\n },\n },\n setup(props) {\n const { t } = useI18n()\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n function getNumber(value: any): number {\n return isNaN(value) ? 0 : +value\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n function getSum(total: any, value: any): number {\n return getNumber(total) + getNumber(value)\n }\n function getUnit(displayedData: string) {\n return ['total_ascent', 'total_descent'].includes(displayedData)\n ? 'm'\n : 'km'\n }\n const chartData = computed(() => ({\n labels: props.labels,\n // workaround to avoid dataset modification\n datasets: JSON.parse(JSON.stringify(props.datasets)),\n }))\n const options = computed>(() => ({\n responsive: true,\n maintainAspectRatio: true,\n animation: false,\n layout: {\n padding: {\n top: props.fullStats ? 40 : 22,\n },\n },\n scales: {\n x: {\n stacked: true,\n grid: {\n drawOnChartArea: false,\n },\n },\n y: {\n stacked: props.displayedData !== 'average_speed',\n grid: {\n drawOnChartArea: false,\n },\n ticks: {\n maxTicksLimit: 6,\n callback: function (value) {\n return formatTooltipValue(\n props.displayedData,\n +value,\n props.useImperialUnits,\n false,\n getUnit(props.displayedData)\n )\n },\n },\n afterFit: function (scale: LayoutItem) {\n scale.width = props.fullStats ? 90 : 60\n },\n },\n },\n plugins: {\n datalabels: {\n anchor: 'end',\n align: 'end',\n color: function (context) {\n return props.displayedData === 'average_speed' &&\n context.dataset.backgroundColor\n ? // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n context.dataset.backgroundColor[0]\n : '#666666'\n },\n rotation: function (context) {\n return props.fullStats && context.chart.chartArea.width < 580\n ? 310\n : 0\n },\n display: function (context) {\n return props.fullStats && context.chart.chartArea.width < 300\n ? false\n : props.displayedData === 'average_speed'\n ? props.displayedSportIds.length == 1\n ? 'auto'\n : false\n : true\n },\n formatter: function (value, context) {\n if (props.displayedData === 'average_speed') {\n return formatTooltipValue(\n props.displayedData,\n value,\n props.useImperialUnits,\n false\n )\n } else {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n const total: number = context.chart.data.datasets\n .map((d) => d.data[context.dataIndex])\n .reduce((total, value) => getSum(total, value), 0)\n return context.datasetIndex ===\n props.displayedSportIds.length - 1 && total > 0\n ? formatTooltipValue(\n props.displayedData,\n total,\n props.useImperialUnits,\n false,\n getUnit(props.displayedData)\n )\n : null\n }\n },\n },\n legend: {\n display: false,\n },\n tooltip: {\n interaction: {\n intersect: true,\n mode: 'index',\n position:\n props.displayedData === 'average_speed' ? 'nearest' : 'average',\n },\n filter: function (tooltipItem) {\n return tooltipItem.formattedValue !== '0'\n },\n callbacks: {\n label: function (context) {\n let label = t(`sports.${context.dataset.label}.LABEL`) || ''\n if (label) {\n label += ': '\n }\n if (context.parsed.y !== null) {\n label += formatTooltipValue(\n props.displayedData,\n context.parsed.y,\n props.useImperialUnits,\n true,\n getUnit(props.displayedData)\n )\n }\n return label\n },\n footer: function (tooltipItems) {\n if (props.displayedData === 'average_speed') {\n return ''\n }\n let sum = 0\n tooltipItems.map((tooltipItem) => {\n sum += tooltipItem.parsed.y\n })\n return (\n `${t('common.TOTAL')}: ` +\n formatTooltipValue(\n props.displayedData,\n sum,\n props.useImperialUnits,\n true,\n getUnit(props.displayedData)\n )\n )\n },\n },\n },\n },\n }))\n const { barChartProps } = useBarChart({\n chartData,\n options,\n })\n return { barChartProps }\n },\n })\n","import { render } from \"./Chart.vue?vue&type=template&id=1d43a4a8&ts=true\"\nimport script from \"./Chart.vue?vue&type=script&lang=ts\"\nexport * from \"./Chart.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n import { format } from 'date-fns'\n import {\n ComputedRef,\n PropType,\n Ref,\n computed,\n defineComponent,\n ref,\n watch,\n onBeforeMount,\n } from 'vue'\n\n import Chart from '@/components/Common/StatsChart/Chart.vue'\n import { STATS_STORE } from '@/store/constants'\n import { ISport } from '@/types/sports'\n import {\n IStatisticsChartData,\n TStatisticsDatasetKeys,\n IStatisticsDateParams,\n TStatisticsFromApi,\n IStatisticsParams,\n } from '@/types/statistics'\n import { IAuthUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { formatStats } from '@/utils/statistics'\n\n export default defineComponent({\n name: 'UserMonthStats',\n components: {\n Chart,\n },\n props: {\n sports: {\n type: Object as PropType,\n required: true,\n },\n user: {\n type: Object as PropType,\n required: true,\n },\n chartParams: {\n type: Object as PropType,\n required: true,\n },\n displayedSportIds: {\n type: Array as PropType,\n default: () => [],\n },\n fullStats: {\n type: Boolean,\n default: false,\n },\n hideChartIfNoData: {\n type: Boolean,\n default: false,\n },\n },\n setup(props) {\n const store = useStore()\n\n const displayedData: Ref = ref('total_distance')\n const statistics: ComputedRef = computed(\n () => store.getters[STATS_STORE.GETTERS.USER_STATS]\n )\n const formattedStats: ComputedRef = computed(() =>\n formatStats(\n props.chartParams,\n props.user.weekm,\n props.sports,\n props.displayedSportIds,\n statistics.value,\n props.user.imperial_units,\n props.user.date_format\n )\n )\n\n onBeforeMount(() =>\n getStatistics(getApiParams(props.chartParams, props.user))\n )\n\n function getStatistics(apiParams: IStatisticsParams) {\n store.dispatch(STATS_STORE.ACTIONS.GET_USER_STATS, {\n username: props.user.username,\n filterType: 'by_time',\n params: apiParams,\n })\n }\n function updateDisplayData(\n event: Event & {\n target: HTMLInputElement & { name: TStatisticsDatasetKeys }\n }\n ) {\n displayedData.value = event.target.name\n }\n function getApiParams(\n chartParams: IStatisticsDateParams,\n user: IAuthUserProfile\n ): IStatisticsParams {\n return {\n from: format(chartParams.start, 'yyyy-MM-dd'),\n to: format(chartParams.end, 'yyyy-MM-dd'),\n time:\n chartParams.duration === 'week'\n ? `week${user.weekm ? 'm' : ''}`\n : chartParams.duration,\n }\n }\n\n watch(\n () => props.chartParams,\n async (newParams) => {\n getStatistics(getApiParams(newParams, props.user))\n }\n )\n\n return {\n datasets: computed(\n () => formattedStats.value.datasets[displayedData.value]\n ),\n labels: computed(() => formattedStats.value.labels),\n emptyStats: computed(() => Object.keys(statistics.value).length === 0),\n displayedData,\n updateDisplayData,\n }\n },\n })\n","import { render } from \"./index.vue?vue&type=template&id=d5e9b348&scoped=true&ts=true\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\nimport \"./index.vue?vue&type=style&index=0&id=d5e9b348&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-d5e9b348\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-20291951\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"box user-header\" }\nconst _hoisted_2 = { class: \"user-details\" }\nconst _hoisted_3 = { class: \"user-name\" }\nconst _hoisted_4 = { class: \"user-stats\" }\nconst _hoisted_5 = { class: \"user-stat\" }\nconst _hoisted_6 = { class: \"stat-number\" }\nconst _hoisted_7 = { class: \"stat-label\" }\nconst _hoisted_8 = { class: \"user-stat\" }\nconst _hoisted_9 = { class: \"stat-label\" }\nconst _hoisted_10 = { class: \"user-stat hide-small\" }\nconst _hoisted_11 = { class: \"stat-number\" }\nconst _hoisted_12 = { class: \"stat-label\" }\n\nimport { computed, ComputedRef, toRefs } from 'vue'\n\n import UserPicture from '@/components/User/UserPicture.vue'\n import { AUTH_USER_STORE } from '@/store/constants'\n import { IAuthUserProfile, IUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n\n interface Props {\n user: IUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserHeader',\n props: {\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IUserProfile\n };\n\n \n\n const { user } = toRefs(props)\n\n const store = useStore()\n\n const authUser: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.AUTH_USER_PROFILE]\n )\n\nreturn (_ctx: any,_cache: any) => {\n const _component_Distance = _resolveComponent(\"Distance\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(UserPicture, { user: _unref(user) }, null, 8, [\"user\"]),\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, _toDisplayString(_unref(user).username), 1),\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"span\", _hoisted_6, _toDisplayString(_unref(user).nb_workouts), 1),\n _createElementVNode(\"span\", _hoisted_7, _toDisplayString(_ctx.$t('workouts.WORKOUT', _unref(user).nb_workouts)), 1)\n ]),\n _createElementVNode(\"div\", _hoisted_8, [\n _createVNode(_component_Distance, {\n distance: _unref(user).total_distance,\n unitFrom: \"km\",\n digits: 0,\n displayUnit: false,\n useImperialUnits: _unref(authUser).imperial_units\n }, null, 8, [\"distance\", \"useImperialUnits\"]),\n _createElementVNode(\"span\", _hoisted_9, _toDisplayString(_unref(authUser).imperial_units ? 'miles' : 'km'), 1)\n ]),\n _createElementVNode(\"div\", _hoisted_10, [\n _createElementVNode(\"span\", _hoisted_11, _toDisplayString(_unref(user).nb_sports), 1),\n _createElementVNode(\"span\", _hoisted_12, _toDisplayString(_ctx.$t('workouts.SPORT', _unref(user).nb_sports)), 1)\n ])\n ])\n ])\n ]))\n}\n}\n\n})","import script from \"./UserHeader.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserHeader.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserHeader.vue?vue&type=style&index=0&id=20291951&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-20291951\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, createElementBlock as _createElementBlock, vModelText as _vModelText, createElementVNode as _createElementVNode, withDirectives as _withDirectives, createTextVNode as _createTextVNode, withModifiers as _withModifiers, normalizeClass as _normalizeClass, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-217519af\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"user-infos\",\n class: \"description-list\"\n}\nconst _hoisted_2 = {\n key: 1,\n class: \"info-box success-message\"\n}\nconst _hoisted_3 = {\n key: 4,\n class: \"email-form form-box\"\n}\nconst _hoisted_4 = {\n class: \"form-items\",\n for: \"email\"\n}\nconst _hoisted_5 = {\n class: \"form-items\",\n for: \"email\"\n}\nconst _hoisted_6 = { class: \"form-buttons\" }\nconst _hoisted_7 = {\n class: \"confirm\",\n type: \"submit\"\n}\nconst _hoisted_8 = [\"onClick\"]\nconst _hoisted_9 = { key: 5 }\nconst _hoisted_10 = { class: \"user-bio\" }\nconst _hoisted_11 = {\n key: 0,\n class: \"profile-buttons\"\n}\nconst _hoisted_12 = [\"onClick\"]\nconst _hoisted_13 = {\n key: 1,\n class: \"profile-buttons\"\n}\n\nimport { format } from 'date-fns'\n import {\n ComputedRef,\n Ref,\n computed,\n ref,\n toRefs,\n withDefaults,\n watch,\n onUnmounted,\n } from 'vue'\n\n import { AUTH_USER_STORE, ROOT_STORE, USERS_STORE } from '@/store/constants'\n import { TAppConfig } from '@/types/application'\n import { IAuthUserProfile, IUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { formatDate, getDateFormat } from '@/utils/dates'\n import { localeFromLanguage } from '@/utils/locales'\n\n interface Props {\n user: IUserProfile\n fromAdmin?: boolean\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserInfos',\n props: {\n user: null,\n fromAdmin: { type: Boolean, default: false }\n },\n setup(__props: any) {\n\nconst props = __props as { user: IUserProfile, fromAdmin: boolean };\n\n \n\n const store = useStore()\n\n const { user, fromAdmin } = toRefs(props)\n const language: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.LANGUAGE]\n )\n const authUser: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.AUTH_USER_PROFILE]\n )\n const registrationDate = computed(() =>\n props.user.created_at\n ? formatDate(\n props.user.created_at,\n authUser.value.timezone,\n authUser.value.date_format\n )\n : ''\n )\n const birthDate = computed(() =>\n props.user.birth_date\n ? format(\n new Date(props.user.birth_date),\n `${getDateFormat(authUser.value.date_format, language.value)}`,\n { locale: localeFromLanguage[language.value] }\n )\n : ''\n )\n const isSuccess = computed(\n () => store.getters[USERS_STORE.GETTERS.USERS_IS_SUCCESS]\n )\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n const appConfig: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.APP_CONFIG]\n )\n const displayModal: Ref = ref('')\n const formErrors = ref(false)\n const displayUserEmailForm: Ref = ref(false)\n const newUserEmail: Ref = ref('')\n const currentAction: Ref = ref('')\n\n function updateDisplayModal(value: string) {\n displayModal.value = value\n if (value !== '') {\n store.commit(USERS_STORE.MUTATIONS.UPDATE_IS_SUCCESS, false)\n }\n }\n function deleteUserAccount(username: string) {\n store.dispatch(USERS_STORE.ACTIONS.DELETE_USER_ACCOUNT, { username })\n }\n function resetUserPassword(username: string) {\n currentAction.value = 'password-reset'\n store.dispatch(USERS_STORE.ACTIONS.UPDATE_USER, {\n username,\n resetPassword: true,\n })\n }\n function confirmUserAccount(username: string) {\n store.dispatch(USERS_STORE.ACTIONS.UPDATE_USER, {\n username,\n activate: true,\n })\n }\n function displayEmailForm() {\n resetErrorsAndSuccess()\n newUserEmail.value = user.value.email_to_confirm\n ? user.value.email_to_confirm\n : ''\n displayUserEmailForm.value = true\n currentAction.value = 'email-update'\n }\n function hideEmailForm() {\n newUserEmail.value = ''\n displayUserEmailForm.value = false\n }\n function updateUserEmail(username: string) {\n store.dispatch(USERS_STORE.ACTIONS.UPDATE_USER, {\n username,\n new_email: newUserEmail.value,\n })\n }\n function resetErrorsAndSuccess() {\n store.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n store.commit(USERS_STORE.MUTATIONS.UPDATE_IS_SUCCESS, false)\n currentAction.value = ''\n }\n\n onUnmounted(() => resetErrorsAndSuccess())\n\n watch(\n () => isSuccess.value,\n (newIsSuccess) => {\n if (newIsSuccess) {\n updateDisplayModal('')\n hideEmailForm()\n }\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n const _component_Modal = _resolveComponent(\"Modal\")!\n const _component_AlertMessage = _resolveComponent(\"AlertMessage\")!\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (displayModal.value)\n ? (_openBlock(), _createBlock(_component_Modal, {\n key: 0,\n title: _ctx.$t('common.CONFIRMATION'),\n message: \n displayModal.value === 'delete'\n ? 'admin.CONFIRM_USER_ACCOUNT_DELETION'\n : 'admin.CONFIRM_USER_PASSWORD_RESET'\n ,\n strongMessage: _unref(user).username,\n onConfirmAction: _cache[0] || (_cache[0] = ($event: any) => (\n displayModal.value === 'delete'\n ? deleteUserAccount(_unref(user).username)\n : resetUserPassword(_unref(user).username)\n )),\n onCancelAction: _cache[1] || (_cache[1] = ($event: any) => (updateDisplayModal('')))\n }, null, 8, [\"title\", \"message\", \"strongMessage\"]))\n : _createCommentVNode(\"\", true),\n (_unref(isSuccess))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, _toDisplayString(_ctx.$t(\n `admin.${\n currentAction.value === 'password-reset'\n ? 'PASSWORD_RESET'\n : 'USER_EMAIL_UPDATE'\n }_SUCCESSFUL`\n )), 1))\n : _createCommentVNode(\"\", true),\n (!_unref(user).is_active)\n ? (_openBlock(), _createBlock(_component_AlertMessage, {\n key: 2,\n message: \"user.THIS_USER_ACCOUNT_IS_INACTIVE\"\n }))\n : _createCommentVNode(\"\", true),\n (_unref(errorMessages))\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 3,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true),\n (displayUserEmailForm.value)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n _createElementVNode(\"form\", {\n class: _normalizeClass({ errors: formErrors.value }),\n onSubmit: _cache[4] || (_cache[4] = _withModifiers(($event: any) => (updateUserEmail(_unref(user).username)), [\"prevent\"]))\n }, [\n _createElementVNode(\"label\", _hoisted_4, [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.CURRENT_EMAIL')) + \" \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"email\",\n type: \"email\",\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((_unref(user).email) = $event)),\n disabled: \"\"\n }, null, 512), [\n [_vModelText, _unref(user).email]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_5, [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.NEW_EMAIL')) + \"* \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"new-email\",\n type: \"email\",\n required: \"\",\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = ($event: any) => ((newUserEmail).value = $event))\n }, null, 512), [\n [_vModelText, newUserEmail.value]\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_6, [\n _createElementVNode(\"button\", _hoisted_7, _toDisplayString(_ctx.$t('buttons.SUBMIT')), 1),\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _withModifiers(hideEmailForm, [\"prevent\"])\n }, _toDisplayString(_ctx.$t('buttons.CANCEL')), 9, _hoisted_8)\n ])\n ], 34)\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_9, [\n _createElementVNode(\"dl\", null, [\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.REGISTRATION_DATE')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_unref(registrationDate)), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.FIRST_NAME')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_unref(user).first_name), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.LAST_NAME')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_unref(user).last_name), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.BIRTH_DATE')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_unref(birthDate)), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.LOCATION')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_unref(user).location), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.BIO')) + \":\", 1),\n _createElementVNode(\"dd\", _hoisted_10, _toDisplayString(_unref(user).bio), 1)\n ]),\n (_unref(fromAdmin))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_11, [\n (_unref(authUser).username !== _unref(user).username)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 0,\n class: \"danger\",\n onClick: _cache[5] || (_cache[5] = _withModifiers(($event: any) => (updateDisplayModal('delete')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('admin.DELETE_USER')), 1))\n : _createCommentVNode(\"\", true),\n (!_unref(user).is_active)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 1,\n onClick: _cache[6] || (_cache[6] = _withModifiers(($event: any) => (confirmUserAccount(_unref(user).username)), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('admin.ACTIVATE_USER_ACCOUNT')), 1))\n : _createCommentVNode(\"\", true),\n (_unref(authUser).username !== _unref(user).username)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 2,\n onClick: _withModifiers(displayEmailForm, [\"prevent\"])\n }, _toDisplayString(_ctx.$t('admin.UPDATE_USER_EMAIL')), 9, _hoisted_12))\n : _createCommentVNode(\"\", true),\n (\n _unref(authUser).username !== _unref(user).username &&\n _unref(appConfig).is_email_sending_enabled\n )\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 3,\n onClick: _cache[7] || (_cache[7] = _withModifiers(($event: any) => (updateDisplayModal('reset')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('admin.RESET_USER_PASSWORD')), 1))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"button\", {\n onClick: _cache[8] || (_cache[8] = ($event: any) => (_ctx.$router.go(-1)))\n }, _toDisplayString(_ctx.$t('buttons.BACK')), 1)\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_13, [\n _createElementVNode(\"button\", {\n onClick: _cache[9] || (_cache[9] = ($event: any) => (_ctx.$router.push('/profile/edit')))\n }, _toDisplayString(_ctx.$t('user.PROFILE.EDIT')), 1),\n _createElementVNode(\"button\", {\n onClick: _cache[10] || (_cache[10] = ($event: any) => (_ctx.$router.push('/')))\n }, _toDisplayString(_ctx.$t('common.HOME')), 1)\n ]))\n ]))\n ]))\n}\n}\n\n})","import script from \"./UserInfos.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserInfos.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserInfos.vue?vue&type=style&index=0&id=217519af&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-217519af\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, createElementBlock as _createElementBlock, vModelText as _vModelText, withDirectives as _withDirectives, createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, withModifiers as _withModifiers, normalizeClass as _normalizeClass, withCtx as _withCtx, createVNode as _createVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-b3c885de\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"user-form\" }\nconst _hoisted_2 = {\n key: 2,\n class: \"info-box success-message\"\n}\nconst _hoisted_3 = { class: \"form-items\" }\nconst _hoisted_4 = [\"disabled\", \"placeholder\"]\nconst _hoisted_5 = {\n key: 1,\n class: \"form-info\"\n}\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-info-circle\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_7 = [\"disabled\", \"placeholder\"]\nconst _hoisted_8 = {\n key: 3,\n class: \"form-info\"\n}\nconst _hoisted_9 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-info-circle\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_10 = [\"disabled\"]\nconst _hoisted_11 = { key: 3 }\nconst _hoisted_12 = { key: 0 }\nconst _hoisted_13 = { key: 4 }\nconst _hoisted_14 = { class: \"account\" }\nconst _hoisted_15 = { key: 5 }\n\nimport {\n ComputedRef,\n computed,\n onUnmounted,\n reactive,\n ref,\n toRefs,\n watch,\n withDefaults,\n } from 'vue'\n import { useRoute } from 'vue-router'\n\n import PasswordInput from '@/components/Common/PasswordInput.vue'\n import { AUTH_USER_STORE, ROOT_STORE } from '@/store/constants'\n import { TAppConfig } from '@/types/application'\n import { ILoginRegisterFormData } from '@/types/user'\n import { useStore } from '@/use/useStore'\n\n interface Props {\n action: string\n token?: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserAuthForm',\n props: {\n action: null,\n token: { default: '' }\n },\n setup(__props: any) {\n\nconst props = __props as { action: string, token: string };\n\n \n\n const route = useRoute()\n const store = useStore()\n\n const { action } = toRefs(props)\n const formData: ILoginRegisterFormData = reactive({\n username: '',\n email: '',\n password: '',\n })\n const buttonText: ComputedRef = computed(() =>\n getButtonText(props.action)\n )\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n const isRegistrationSuccess: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.IS_REGISTRATION_SUCCESS]\n )\n const isSuccess: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.IS_SUCCESS]\n )\n const appConfig: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.APP_CONFIG]\n )\n const language: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.LANGUAGE]\n )\n const registration_disabled: ComputedRef = computed(\n () =>\n props.action === 'register' && !appConfig.value.is_registration_enabled\n )\n const sendingEmailDisabled: ComputedRef = computed(\n () =>\n ['reset-request', 'account-confirmation-resend'].includes(props.action) &&\n !appConfig.value.is_email_sending_enabled\n )\n const formErrors = ref(false)\n\n function getButtonText(action: string): string {\n switch (action) {\n case 'reset-request':\n case 'reset':\n return 'buttons.SUBMIT'\n default:\n return `buttons.${props.action.toUpperCase()}`\n }\n }\n function invalidateForm() {\n formErrors.value = true\n }\n function updatePassword(password: string) {\n formData.password = password\n }\n function onSubmit(actionType: string) {\n switch (actionType) {\n case 'reset':\n if (!props.token) {\n return store.commit(\n ROOT_STORE.MUTATIONS.SET_ERROR_MESSAGES,\n 'user.INVALID_TOKEN'\n )\n }\n return store.dispatch(AUTH_USER_STORE.ACTIONS.RESET_USER_PASSWORD, {\n password: formData.password,\n token: props.token,\n })\n case 'reset-request':\n return store.dispatch(\n AUTH_USER_STORE.ACTIONS.SEND_PASSWORD_RESET_REQUEST,\n {\n email: formData.email,\n }\n )\n case 'account-confirmation-resend':\n return store.dispatch(\n AUTH_USER_STORE.ACTIONS.RESEND_ACCOUNT_CONFIRMATION_EMAIL,\n {\n email: formData.email,\n }\n )\n default:\n formData['language'] = language.value\n store.dispatch(AUTH_USER_STORE.ACTIONS.LOGIN_OR_REGISTER, {\n actionType,\n formData,\n redirectUrl: route.query.from,\n })\n }\n }\n function resetFormData() {\n formData.username = ''\n formData.email = ''\n formData.password = ''\n }\n\n onUnmounted(() => store.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES))\n\n watch(\n () => route.path,\n async () => {\n store.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n store.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_IS_SUCCESS, false)\n store.commit(\n AUTH_USER_STORE.MUTATIONS.UPDATE_IS_REGISTRATION_SUCCESS,\n false\n )\n formErrors.value = false\n resetFormData()\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n const _component_AlertMessage = _resolveComponent(\"AlertMessage\")!\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n\n return (_openBlock(), _createElementBlock(\"div\", {\n id: \"user-auth-form\",\n class: _normalizeClass(`${\n ['reset', 'reset-request'].includes(_unref(action)) ? _unref(action) : 'user-form'\n }`)\n }, [\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"form-box\", {\n disabled: _unref(registration_disabled),\n }])\n }, [\n (_unref(registration_disabled))\n ? (_openBlock(), _createBlock(_component_AlertMessage, {\n key: 0,\n message: \"user.REGISTER_DISABLED\"\n }))\n : _createCommentVNode(\"\", true),\n (_unref(sendingEmailDisabled))\n ? (_openBlock(), _createBlock(_component_AlertMessage, {\n key: 1,\n message: \"admin.EMAIL_SENDING_DISABLED\"\n }))\n : _createCommentVNode(\"\", true),\n (_unref(isSuccess) || _unref(isRegistrationSuccess))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, _toDisplayString(_ctx.$t(\n `user.PROFILE.SUCCESSFUL_${\n _unref(isRegistrationSuccess)\n ? `REGISTRATION${\n _unref(appConfig).is_email_sending_enabled ? '_WITH_EMAIL' : ''\n }`\n : 'UPDATE'\n }`\n )), 1))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"form\", {\n class: _normalizeClass({ errors: formErrors.value }),\n onSubmit: _cache[2] || (_cache[2] = _withModifiers(($event: any) => (onSubmit(_unref(action))), [\"prevent\"]))\n }, [\n _createElementVNode(\"div\", _hoisted_3, [\n (_unref(action) === 'register')\n ? _withDirectives((_openBlock(), _createElementBlock(\"input\", {\n key: 0,\n id: \"username\",\n disabled: _unref(registration_disabled),\n required: \"\",\n pattern: \"[a-zA-Z0-9_]+\",\n minlength: \"3\",\n maxlength: \"30\",\n onInvalid: invalidateForm,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((formData.username) = $event)),\n placeholder: _ctx.$t('user.USERNAME')\n }, null, 40, _hoisted_4)), [\n [_vModelText, formData.username]\n ])\n : _createCommentVNode(\"\", true),\n (_unref(action) === 'register')\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_5, [\n _hoisted_6,\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('user.USERNAME_INFO')), 1)\n ]))\n : _createCommentVNode(\"\", true),\n (_unref(action) !== 'reset')\n ? _withDirectives((_openBlock(), _createElementBlock(\"input\", {\n key: 2,\n id: \"email\",\n disabled: _unref(registration_disabled) || _unref(sendingEmailDisabled),\n required: \"\",\n onInvalid: invalidateForm,\n type: \"email\",\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((formData.email) = $event)),\n placeholder: _ctx.$t('user.EMAIL')\n }, null, 40, _hoisted_7)), [\n [_vModelText, formData.email]\n ])\n : _createCommentVNode(\"\", true),\n (\n [\n 'reset-request',\n 'register',\n 'account-confirmation-resend',\n ].includes(_unref(action))\n )\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_8, [\n _hoisted_9,\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('user.EMAIL_INFO')), 1)\n ]))\n : _createCommentVNode(\"\", true),\n (\n !['account-confirmation-resend', 'reset-request'].includes(\n _unref(action)\n )\n )\n ? (_openBlock(), _createBlock(PasswordInput, {\n key: 4,\n disabled: _unref(registration_disabled),\n required: true,\n placeholder: \n _unref(action) === 'reset'\n ? _ctx.$t('user.ENTER_PASSWORD')\n : _ctx.$t('user.PASSWORD')\n ,\n password: formData.password,\n checkStrength: ['reset', 'register'].includes(_unref(action)),\n onUpdatePassword: updatePassword,\n onPasswordError: invalidateForm\n }, null, 8, [\"disabled\", \"placeholder\", \"password\", \"checkStrength\"]))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"button\", {\n type: \"submit\",\n disabled: _unref(registration_disabled) || _unref(sendingEmailDisabled)\n }, _toDisplayString(_ctx.$t(_unref(buttonText))), 9, _hoisted_10)\n ], 34),\n (_unref(action) === 'login')\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_11, [\n _createVNode(_component_router_link, {\n class: \"links\",\n to: \"/register\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('user.REGISTER')), 1)\n ]),\n _: 1\n }),\n (_unref(appConfig).is_email_sending_enabled)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_12, \"-\"))\n : _createCommentVNode(\"\", true),\n (_unref(appConfig).is_email_sending_enabled)\n ? (_openBlock(), _createBlock(_component_router_link, {\n key: 1,\n class: \"links\",\n to: \"/password-reset/request\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PASSWORD_FORGOTTEN')), 1)\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true)\n ]))\n : _createCommentVNode(\"\", true),\n (_unref(action) === 'register')\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_13, [\n _createElementVNode(\"span\", _hoisted_14, _toDisplayString(_ctx.$t('user.ALREADY_HAVE_ACCOUNT')), 1),\n _createVNode(_component_router_link, {\n class: \"links\",\n to: \"/login\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('user.LOGIN')), 1)\n ]),\n _: 1\n })\n ]))\n : _createCommentVNode(\"\", true),\n (\n ['login', 'register'].includes(_unref(action)) &&\n _unref(appConfig).is_email_sending_enabled\n )\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_15, [\n _createVNode(_component_router_link, {\n class: \"links\",\n to: \"/account-confirmation/resend\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('user.ACCOUNT_CONFIRMATION_NOT_RECEIVED')), 1)\n ]),\n _: 1\n })\n ]))\n : _createCommentVNode(\"\", true),\n (_unref(errorMessages))\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 6,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true)\n ], 2)\n ])\n ], 2))\n}\n}\n\n})","import script from \"./UserAuthForm.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserAuthForm.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserAuthForm.vue?vue&type=style&index=0&id=b3c885de&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-b3c885de\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode } from \"vue\"\n\nconst _hoisted_1 = { class: \"user-picture\" }\nconst _hoisted_2 = [\"alt\", \"src\"]\nconst _hoisted_3 = {\n key: 1,\n class: \"no-picture\"\n}\nconst _hoisted_4 = /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-user-circle-o\",\n \"aria-hidden\": \"true\"\n}, null, -1)\nconst _hoisted_5 = [\n _hoisted_4\n]\n\nimport { computed } from 'vue'\n\n import { IUserProfile } from '@/types/user'\n import { getApiUrl } from '@/utils'\n\n interface Props {\n user: IUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserPicture',\n props: {\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IUserProfile\n };\n\n \n\n const authUserPictureUrl = computed(() =>\n props.user.picture\n ? `${getApiUrl()}users/${props.user.username}/picture?${Date.now()}`\n : ''\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_unref(authUserPictureUrl) !== '')\n ? (_openBlock(), _createElementBlock(\"img\", {\n key: 0,\n class: \"profile-user-img\",\n alt: _ctx.$t('user.USER_PICTURE'),\n src: _unref(authUserPictureUrl)\n }, null, 8, _hoisted_2))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_3, _hoisted_5))\n ]))\n}\n}\n\n})","import script from \"./UserPicture.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserPicture.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserPicture.vue?vue&type=style&index=0&id=26bea286&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n\n","import { render } from \"./NoWorkouts.vue?vue&type=template&id=4b4d15fb&scoped=true\"\nconst script = {}\n\nimport \"./NoWorkouts.vue?vue&type=style&index=0&id=4b4d15fb&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-4b4d15fb\"]])\n\nexport default __exports__","var map = {\n\t\"./de/de.ts\": 9923,\n\t\"./en/en.ts\": 8757,\n\t\"./fr/fr.ts\": 6625,\n\t\"./nb/nb.ts\": 8891,\n\t\"./nl/nl.ts\": 701\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 4612;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? function(obj) { return Object.getPrototypeOf(obj); } : function(obj) { return obj.__proto__; };\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach(function(key) { def[key] = function() { return value[key]; }; });\n\t}\n\tdef['default'] = function() { return value; };\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"static/js/\" + ({\"24\":\"reset\",\"193\":\"statistics\",\"328\":\"admin\",\"401\":\"workouts\",\"845\":\"profile\",\"881\":\"password\"}[chunkId] || chunkId) + \".\" + {\"24\":\"eae5999b\",\"93\":\"611a4415\",\"193\":\"7cce80c4\",\"243\":\"d3fff3a7\",\"328\":\"c4231dfb\",\"401\":\"bbc7589b\",\"431\":\"52f71cad\",\"633\":\"5eb61510\",\"845\":\"984aa6f4\",\"858\":\"ec3b00a9\",\"881\":\"cfeb5ed6\"}[chunkId] + \".js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"static/css/\" + {\"24\":\"reset\",\"193\":\"statistics\",\"328\":\"admin\",\"401\":\"workouts\",\"845\":\"profile\"}[chunkId] + \".\" + {\"24\":\"e2527ec6\",\"193\":\"40e24e75\",\"328\":\"73df498d\",\"401\":\"9970f29e\",\"845\":\"9f83730d\"}[chunkId] + \".css\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","var inProgress = {};\nvar dataWebpackPrefix = \"fittrackee_client:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t};\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"/\";","var createStylesheet = function(chunkId, fullhref, resolve, reject) {\n\tvar linkTag = document.createElement(\"link\");\n\n\tlinkTag.rel = \"stylesheet\";\n\tlinkTag.type = \"text/css\";\n\tvar onLinkComplete = function(event) {\n\t\t// avoid mem leaks.\n\t\tlinkTag.onerror = linkTag.onload = null;\n\t\tif (event.type === 'load') {\n\t\t\tresolve();\n\t\t} else {\n\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\tvar realHref = event && event.target && event.target.href || fullhref;\n\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + realHref + \")\");\n\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n\t\t\terr.type = errorType;\n\t\t\terr.request = realHref;\n\t\t\tlinkTag.parentNode.removeChild(linkTag)\n\t\t\treject(err);\n\t\t}\n\t}\n\tlinkTag.onerror = linkTag.onload = onLinkComplete;\n\tlinkTag.href = fullhref;\n\n\tdocument.head.appendChild(linkTag);\n\treturn linkTag;\n};\nvar findStylesheet = function(href, fullhref) {\n\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n\tfor(var i = 0; i < existingLinkTags.length; i++) {\n\t\tvar tag = existingLinkTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return tag;\n\t}\n\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n\tfor(var i = 0; i < existingStyleTags.length; i++) {\n\t\tvar tag = existingStyleTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\");\n\t\tif(dataHref === href || dataHref === fullhref) return tag;\n\t}\n};\nvar loadStylesheet = function(chunkId) {\n\treturn new Promise(function(resolve, reject) {\n\t\tvar href = __webpack_require__.miniCssF(chunkId);\n\t\tvar fullhref = __webpack_require__.p + href;\n\t\tif(findStylesheet(href, fullhref)) return resolve();\n\t\tcreateStylesheet(chunkId, fullhref, resolve, reject);\n\t});\n}\n// object to store loaded CSS chunks\nvar installedCssChunks = {\n\t143: 0\n};\n\n__webpack_require__.f.miniCss = function(chunkId, promises) {\n\tvar cssChunks = {\"24\":1,\"193\":1,\"328\":1,\"401\":1,\"845\":1};\n\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n\t\tpromises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(function() {\n\t\t\tinstalledCssChunks[chunkId] = 0;\n\t\t}, function(e) {\n\t\t\tdelete installedCssChunks[chunkId];\n\t\t\tthrow e;\n\t\t}));\n\t}\n};\n\n// no hmr","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t143: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkfittrackee_client\"] = self[\"webpackChunkfittrackee_client\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [998], function() { return __webpack_require__(4970); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["authApi","axios","baseURL","getApiUrl","interceptors","request","use","config","controller","AbortController","signal","requestKey","removeRequestIfPending","pendingRequests","authToken","store","AUTH_USER_STORE","auth","headers","Authorization","error","Promise","reject","response","message","Map","generateRequestKey","method","url","params","data","JSON","stringify","join","has","get","abort","delete","disabledLanguages","loadLocaleMessages","locales","require","messages","keys","forEach","key","matched","match","length","includes","locale","default","createI18n","legacy","fallbackLocale","globalInjection","ctx","normalize","_normalize","interpolate","_interpolate","list","_list","plural","_plural","about","AboutTranslations","admin","AdministrationTranslations","api","ApiTranslations","buttons","ButtonsTranslations","common","CommonTranslations","dashboard","DashboardTranslations","ErrorTranslations","oauth2","OAuth2Translations","sports","SportsTranslations","statistics","StatisticsTranslations","user","UserTranslations","workouts","WorkoutsTranslations","register","ready","console","log","registered","cached","updatefound","updated","offline","_withScopeId","n","_pushScopeId","_popScopeId","_hoisted_1","id","_hoisted_2","class","_hoisted_3","_hoisted_4","_createElementVNode","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","href","target","rel","_defineComponent","__name","props","version","adminContact","setup","__props","toRefs","_ctx","_cache","_component_router_link","_resolveComponent","_openBlock","_createElementBlock","_createTextVNode","_toDisplayString","_unref","_createVNode","to","_withCtx","$t","_","_createCommentVNode","__exports__","emits","emit","useStore","authUser","computed","getters","isAuthenticated","language","ROOT_STORE","isMenuOpen","ref","openMenu","value","closeMenu","updateLanguage","option","dispatch","toString","logout","_component_Dropdown","onClick","$event","$router","push","_normalizeClass","capitalize","_createBlock","UserPicture","username","availableLanguages","options","selected","onSelected","ErrorImg","innerHTML","appConfig","appLoading","hideScrollBar","displayScrollButton","updateHideScrollBar","isScrolledToBottom","element","getBoundingClientRect","top","window","innerHeight","bottom","scroll","onscroll","document","querySelector","scrollToTop","scrollTo","behavior","setTimeout","initLanguage","navigatorLanguage","navigator","split","localeFromLanguage","e","onBeforeMount","onMounted","_component_Loader","_component_router_view","_Fragment","NavBar","onMenuInteraction","NoConfig","Footer","admin_contact","name","charLimit","disabled","type","Boolean","input","text","updateText","event","watch","_withDirectives","maxLenght","onInput","_vModelText","distance","unitFrom","useImperialUnits","digits","displayUnit","speed","strong","unitTo","units","defaultTarget","convertedDistance","convertDistance","parseFloat","toFixed","route","useRoute","isOpen","dropdownOptions","map","toggleDropdown","updateSelected","path","_renderSlot","$slots","_renderList","index","label","Array","isArray","subMessage","xmlns","x","y","viewBox","style","d","render","cx","cy","r","sportLabel","color","title","sportColors","inject","_normalizeStyle","fill","CyclingSport","CyclingTransport","CyclingVirtual","Hiking","MountainBiking","MountainBikingElectric","Rowing","Running","SkiingAlpine","SkiingCrossCountry","Snowshoes","Trail","Walking","script","strongMessage","errorMessages","onUnmounted","commit","_component_i18n_t","_component_ErrorMessage","_component_Card","content","keypath","customComponents","AlertMessage","Card","CustomTextArea","Distance","Dropdown","ErrorMessage","Loader","Modal","SportImage","clickOutsideDirective","mounted","binding","clickOutsideEvent","contains","body","addEventListener","unmounted","removeEventListener","undefined","Chart","BarElement","LineElement","PointElement","Legend","Title","Tooltip","Filler","BarController","CategoryScale","LineController","LinearScale","ChartDataLabels","app","createApp","App","provide","i18n","router","VueFullscreen","directive","component","mount","for","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","_hoisted_17","_hoisted_18","_hoisted_19","_hoisted_20","edition","useRouter","appData","reactive","max_users","max_single_file_size","max_zip_file_size","gpx_limit_import","updateForm","Object","getFileSizeInMB","onCancel","onSubmit","formData","assign","_withModifiers","min","step","icon","appStatistics","uploadDirSize","getReadableFileSize","uploads_dir_size","StatCard","users","size","suffix","AppStatsCards","is_registration_enabled","is_email_sending_enabled","t","useI18n","translatedSports","translateSports","SPORTS_STORE","updateSportStatus","isActive","_component_SportImage","sport","translatedLabel","is_active","danger","has_workouts","query","q","searchUsers","resetFilter","onKeyup","_withKeys","placeholder","trim","orderByList","defaultOrderBy","getQuery","USERS_STORE","pagination","loadUsers","queryParams","reloadUsers","updateUser","queryParam","queryValue","page","newQuery","UsersNameFilter","onFilterOnUsername","FilterSelects","sort","sortList","order_by","onUpdateSelect","email","formatDate","created_at","timezone","date_format","nb_workouts","Pagination","tabs","selectedTab","getPath","tab","toLocaleLowerCase","checked","UserHeader","UserProfileTabs","appLanguage","userLanguage","languageLabels","fistDayOfWeek","weekm","display_ascent","getDateFormat","imperial_units","loading","userForm","password","new_password","isSuccess","emailUpdate","formErrors","displayModal","invalidateForm","updateUserForm","updatePassword","updateNewPassword","updateProfile","payload","updateDisplayModal","deleteAccount","async","isSuccessValue","_component_Modal","onConfirmAction","onCancelAction","errors","required","onInvalid","PasswordInput","onUpdatePassword","onPasswordError","checkStrength","first_name","last_name","birth_date","location","bio","registrationDate","format","Date","updateBio","_component_CustomTextArea","onUpdateValue","fileSizeLimit","pictureFile","deleteUserPicture","updatePictureFile","files","updateUserPicture","picture","accept","timeZones","tzList","focusItemIndex","matchTimezone","toLowerCase","onMouseOver","onUpdateTimezone","onEnter","preventDefault","firstElementChild","openDropdown","onKeydown","ref_key","filter","tz","focus","onMouseover","autofocus","_hoisted_21","_hoisted_22","_hoisted_23","_hoisted_24","_hoisted_25","_hoisted_26","_hoisted_27","weekStart","imperialUnits","ascentData","dateFormatOptions","availableDateFormatOptions","toUTCString","updateTZ","updateAscentDisplay","updateImperialUnit","updateWeekM","lang","_vModelSelect","TimezoneDropdown","dateFormat","start","unit","status","oauth2_scopes","admin_oauth2_scopes","appForm","client_name","client_uri","client_description","redirect_uri","scopes","filtered_scopes","getScopes","redirect_uris","scope","OAUTH2_STORE","updateDescription","updateScopes","indexOf","splice","admin_scopes","description","onChange","client","loadApp","client_id","authorizeApp","response_type","state","code_challenge","code_challenge_method","afterCreation","revocationSuccessful","messageToDisplay","idCopied","secretCopied","clipboardSupport","loadClient","updateMessageToDisplay","forDelete","confirmAction","clientId","copyIdToClipboard","clipboard","writeText","copySecretToClipboard","client_secret","newValue","issued_at","website","clients","getClientsQuery","clientsQuery","getNumberQueryValue","defaultPage","loadClients","isEdition","defaultColor","sports_list","sportPayload","sport_id","stopped_speed_threshold","updateSportInEdition","is_active_for_user","resetSportPayload","isSportInEdition","sportId","updateColor","updateThreshold","updateIsActive","updateSport","resetSport","newIsLoading","src","alt","BikePic","About","workout","_component_Distance","workoutId","workout_date","formatDistance","addSuffix","with_gpx","StaticMap","moving","min_alt","max_alt","ascent","descent","per_page","initWorkoutsCount","loadWorkouts","WORKOUTS_STORE","moreWorkoutsExist","previous_workout","defaultOrder","loadMoreWorkouts","WorkoutCard","s","NoWorkouts","displayHARecord","sportColor","records","record","record_type","height","width","colors","datasets","angleOffset","radius","circumference","Math","PI","calculateStrokeDashOffset","percentage","returnCircleTransformValue","rotation","entries","stroke","transform","isHidden","togglePane","stopPropagation","_directive_click_outside","_resolveDirective","DonutChart","CalendarWorkout","getSportLabel","getSportColor","chartDatasets","getDonutDatasets","sportIdColors","displayedWorkoutCount","slice","CalendarWorkoutsChart","currentDay","endDate","startDate","weekStartingMonday","rows","getDays","day","days","i","addDays","isWeekEnd","filterWorkouts","isSameDay","getDateWithTZ","reverse","row","isSameMonth","today","isToday","CalendarWorkouts","localeOptions","calendarDates","getCalendarStartAndEnd","calendarWorkouts","getCalendarWorkouts","apiParams","from","end","displayNextMonth","addMonths","displayPreviousMonth","subMonths","CalendarHeader","onDisplayNextMonth","onDisplayPreviousMonth","CalendarDays","CalendarCells","date","chartParams","duration","startOfMonth","endOfMonth","selectedSportIds","StatChart","formatRecord","distanceUnitFrom","distanceUnitTo","ascentUnitFrom","ascentUnitTo","Error","workout_id","sortRecords","a","b","recordALabel","recordBLabel","getRecordsBySports","reduce","sportList","find","sportTranslatedLabel","getTranslatedRecords","translatedRecords","recordsBySport","RecordsCard","userTotalDuration","total_duration","totalDuration","get_duration","totalDistance","total_distance","totalAscent","total_ascent","nb_sports","isSelected","updateDisplayColumn","UserStatsCards","UserMonthStats","UserRecords","UserCalendar","Timeline","NotFound","action","LoginOrRegisterForm","getTabFromPath","regex","tag","replace","toUpperCase","routes","Dashboard","LoginOrRegister","children","Profile","UserInfos","UserPreferences","UserSportPreferences","UserApps","UserAppsList","UserApp","AddUserApp","AuthorizeUserApp","ProfileEdition","UserInfosEdition","UserAccountEdition","UserPictureEdition","UserPreferencesEdition","displaySegment","AdminMenu","AdminApplication","AdminSports","fromAdmin","AdminUsers","AboutView","NotFoundView","createRouter","history","createWebHistory","process","pathsWithoutAuthentication","pathsWithoutChecks","beforeEach","next","then","fullPath","catch","AuthUserActions","AuthUserGetters","AuthUserMutations","OAuth2Actions","OAuth2Getters","OAuth2Mutations","RootActions","RootGetters","RootMutations","SportsActions","SportsGetters","SportsMutation","StatisticsActions","StatisticsGetters","StatisticsMutations","UsersActions","UsersGetters","UsersMutations","ACTIONS","GETTERS","MUTATIONS","STATS_STORE","WorkoutsActions","WorkoutsGetters","WorkoutsMutations","deleteUserAccount","context","res","handleError","actions","finally","resetPassword","reset_password","activate","new_email","removeAuthUserData","localStorage","removeItem","token","auth_token","setItem","refreshUser","actionType","redirectUrl","form","FormData","append","authUserProfile","isRegistrationSuccess","mutations","authUserState","get_client","set","redirect_url","oAuth2State","setAttribute","application","root","enUS","sportsState","filterType","statisticsState","updatedUser","usersState","getWorkouts","segmentUrl","segmentId","segments","chart_data","gpx","file","notes","calendar_workouts","timeline_workouts","user_workouts","workoutData","concat","chartData","workoutsState","modules","authUserModule","oAuthModule","sportsModule","statsModule","usersModule","workoutsModule","createStore","VuexStore","defaultPerPage","defaultValue","getStringQueryValue","availableValues","locationQuery","queryOptions","defaultSort","order","workoutsPayloadKeys","getRange","stop","rangePagination","pages","currentPage","getStartDate","startOfWeek","weekStartsOn","startOfYear","incrementDate","addYears","dateInUTC","utcToZonedTime","monthStart","monthEnd","endOfWeek","formatWorkoutDate","dateTime","timeFormat","workout_time","availableDateFormats","dateStringFormats","de","en","fr","dateString","withTime","inputDate","l","df","suffixes","fileSize","asText","floor","pow","msg","errorInfo","m","availableLocales","sortSports","sportATranslatedLabel","sportBTranslatedLabel","activeStatus","sportsToInclude","dateFormats","week","chart","month","year","datasetKeys","getDateKeys","getStatisticsChartDataset","isLineChart","dataset","backgroundColor","borderColor","spanGaps","getDatasets","displayedSports","average_speed","total_descent","convertStatsValue","datasetKey","convertStatsDistance","formatStats","displayedSportsId","apiStats","userDateFormat","dayKeys","labels","sportsId","displayedSport","getStatsDateParams","timeFrame","subYears","endOfYear","updateChartParams","backward","subWeeks","addWeeks","ft","system","multiplier","mi","km","factors","metric","imperial","borderWidth","yAxisID","elevation","distance_labels","duration_labels","coordinates","latitude","longitude","total","count","perPage","onSelectUpdate","nb","buttonText","timer","errorDisplayed","displayError","clearTimeout","cursor","has_prev","navigate","has_next","active","setZxcvbnOptions","zxcvbnCommonPackage","zxcvbnEnPackage","zxcvbnFrPackage","zxcvbnDePackage","zxcvbnLangPackages","nl","zxcvbnPackage","graphs","adjacencyGraphs","dictionary","zxcvbnOptions","getPasswordStrength","strength","passwordScore","passwordStrength","passwordSuggestions","backgroundSize","calculatePasswordStrength","zxcvbnResult","zxcvbn","score","feedback","suggestions","newLanguageValue","newPassword","max","suggestion","showPassword","passwordValue","togglePassword","invalidPassword","minlength","_vModelDynamic","PasswordStrength","displayHover","imageUrl","backgroundImage","$props","$setup","$data","$options","_component_Chart","hideChartIfNoData","emptyStats","displayedData","args","updateDisplayData","fullStats","displayedSportIds","_component_BarChart","_mergeProps","barChartProps","formatDuration","totalSeconds","formatWithUnits","String","hours","padStart","minutes","seconds","formatTooltipValue","defineComponent","components","BarChart","getNumber","isNaN","getSum","getUnit","parse","responsive","maintainAspectRatio","animation","layout","padding","scales","stacked","grid","drawOnChartArea","ticks","maxTicksLimit","callback","afterFit","scale","plugins","datalabels","anchor","align","chartArea","display","formatter","dataIndex","datasetIndex","legend","tooltip","interaction","intersect","mode","position","tooltipItem","formattedValue","callbacks","parsed","footer","tooltipItems","sum","useBarChart","formattedStats","getStatistics","getApiParams","time","newParams","birthDate","displayUserEmailForm","newUserEmail","currentAction","resetUserPassword","confirmUserAccount","displayEmailForm","resetErrorsAndSuccess","email_to_confirm","hideEmailForm","updateUserEmail","newIsSuccess","_component_AlertMessage","go","getButtonText","registration_disabled","sendingEmailDisabled","resetFormData","pattern","maxlength","authUserPictureUrl","now","webpackContext","req","webpackContextResolve","__webpack_require__","o","code","resolve","module","exports","__webpack_module_cache__","moduleId","cachedModule","__webpack_modules__","call","deferred","O","result","chunkIds","fn","priority","notFulfilled","Infinity","fulfilled","j","every","getter","__esModule","leafPrototypes","getProto","getPrototypeOf","obj","__proto__","this","ns","create","def","current","getOwnPropertyNames","definition","defineProperty","enumerable","f","chunkId","all","promises","u","miniCssF","g","globalThis","Function","prop","prototype","hasOwnProperty","inProgress","dataWebpackPrefix","done","needAttach","scripts","getElementsByTagName","getAttribute","createElement","charset","timeout","nc","onScriptComplete","prev","onerror","onload","doneFns","parentNode","removeChild","bind","head","appendChild","Symbol","toStringTag","p","createStylesheet","fullhref","linkTag","onLinkComplete","errorType","realHref","err","findStylesheet","existingLinkTags","dataHref","existingStyleTags","loadStylesheet","installedCssChunks","miniCss","cssChunks","installedChunks","installedChunkData","promise","loadingEnded","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","self","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file diff --git a/fittrackee/dist/static/js/app.bfd1d501.js b/fittrackee/dist/static/js/app.bfd1d501.js deleted file mode 100644 index f4b8d1dd..00000000 --- a/fittrackee/dist/static/js/app.bfd1d501.js +++ /dev/null @@ -1,2 +0,0 @@ -(function(){var e={5167:function(e,t,n){"use strict";var r=n(594),a=n(8566),o=n(2894),s=n(5801),i=n(2024);const l=r.Z.create({baseURL:(0,i.k)()});l.interceptors.request.use((e=>{const t=new AbortController;e.signal=t.signal;const n=(0,a.a)(e);a.j.set(n,t);const r=o.Z.getters[s.YN.GETTERS.AUTH_TOKEN];if(r){const t=`Bearer ${r}`;e.headers&&e.headers.Authorization!==t&&(e.headers.Authorization=`Bearer ${r}`)}return e}),(e=>Promise.reject(e))),l.interceptors.response.use((e=>((0,a.a)(e.config),e)),(e=>("canceled"!==e.message&&(0,a.a)(e.response.config),Promise.reject(e)))),t["Z"]=l},8566:function(e,t,n){"use strict";n.d(t,{a:function(){return o},j:function(){return r}});const r=new Map,a=e=>{const{method:t,url:n,params:r={},data:a={}}=e;return[t,n,JSON.stringify(r),JSON.stringify(a)].join("")},o=e=>{const t=a(e);if(r.has(t)){const e=r.get(t)||{};e?.abort(),r.delete(t)}return t}},2540:function(e,t,n){"use strict";var r=n(9150);const a=["nb"];function o(){const e=n(4612),t={};return e.keys().forEach((n=>{const r=n.match(/([A-Za-z0-9-_]+)\./i);if(r&&r.length>1&&!a.includes(r[1])){const a=r[1];t[a]=e(n).default}})),t}t["Z"]=(0,r.o)({legacy:!1,locale:"en",fallbackLocale:"en",globalInjection:!0,messages:o()})},9923:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return S}});var r={CONTACT_ADMIN:e=>{const{normalize:t}=e;return t(["Kontaktiere den Administrator"])},FITTRACKEE_DESCRIPTION:e=>{const{normalize:t}=e;return t(["FitTrackee ist ein selbst-gehosteter Outdoor-Aktivitäts-Tracker."])},FITTRACKEE_LICENSE:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["unter ",n(r(0))," Lizenz "])},SOURCE_CODE:e=>{const{normalize:t}=e;return t(["Quellcode"])}},a={ACTION:e=>{const{normalize:t}=e;return t(["Aktion"])},ACTIVATE_USER_ACCOUNT:e=>{const{normalize:t}=e;return t(["Aktiviere Konto"])},ACTIVE:e=>{const{normalize:t}=e;return t(["Aktiv"])},ADMIN_RIGHTS_DELETE_USER_ACCOUNT:e=>{const{normalize:t}=e;return t(["Hinzufügen/Entfernen von Administratorrechten, Lösche Nutzerkonto."])},ADMIN:e=>{const{normalize:t}=e;return t(["Admin"])},ADMINISTRATION:e=>{const{normalize:t}=e;return t(["Administration"])},APPLICATION:e=>{const{normalize:t}=e;return t(["Anwendung"])},APP_CONFIG:{ADMIN_CONTACT:e=>{const{normalize:t}=e;return t(["Kontakt-E-Mail des Administrators"])},MAX_USERS_LABEL:e=>{const{normalize:t}=e;return t(["Max. Anzahl aktiver Nutzer"])},MAX_USERS_HELP:e=>{const{normalize:t}=e;return t(["Wenn 0, gibt es keine Registrierungslimitierung.."])},MAX_FILES_IN_ZIP_LABEL:e=>{const{normalize:t}=e;return t(["Max. Dateianzahl im zip Archiv"])},NO_CONTACT_EMAIL:e=>{const{normalize:t}=e;return t(["keine Kontakt-E-Mail"])},SINGLE_UPLOAD_MAX_SIZE_LABEL:e=>{const{normalize:t}=e;return t(["Max. Größe der hochgeladenen Dateien (in Mb)"])},TITLE:e=>{const{normalize:t}=e;return t(["Anwendungskonfiguration"])},ZIP_UPLOAD_MAX_SIZE_LABEL:e=>{const{normalize:t}=e;return t(["Max. Größe des zip Archives (in Mb)"])}},BACK_TO_ADMIN:e=>{const{normalize:t}=e;return t(["Zurück zu Admin"])},CONFIRM_USER_ACCOUNT_DELETION:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Möchtest du wirklich das ",n(r(0))," Konto löschen? Alle Daten werden gelöscht. Dieser Vorgang kann nicht rückgängig gemacht werden."])},CONFIRM_USER_PASSWORD_RESET:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Möchtest du wirklich das ",n(r(0))," Passwort zurücksetzen?"])},CURRENT_EMAIL:e=>{const{normalize:t}=e;return t(["Aktuelle E-Mail"])},DELETE_USER:e=>{const{normalize:t}=e;return t(["Lösche Nutzer"])},EMAIL_SENDING_DISABLED:e=>{const{normalize:t}=e;return t(["E-Mail-Versand ist deaktiviert."])},ENABLE_DISABLE_SPORTS:e=>{const{normalize:t}=e;return t(["Aktivieren/Deaktivieren von Sportarten."])},NEW_EMAIL:e=>{const{normalize:t}=e;return t(["Neue E-Mail"])},PASSWORD_RESET_SUCCESSFUL:e=>{const{normalize:t}=e;return t(["Das wasswort wurde zurückgesetzt."])},REGISTRATION_DISABLED:e=>{const{normalize:t}=e;return t(["Registrierung ist derzeit deaktiviert."])},REGISTRATION_ENABLED:e=>{const{normalize:t}=e;return t(["Registrierung ist derzeit aktiviert."])},RESET_USER_PASSWORD:e=>{const{normalize:t}=e;return t(["Passwort zurücksetzen"])},SPORTS:{TABLE:{ACTIVE:e=>{const{normalize:t}=e;return t(["Aktiv"])},HAS_WORKOUTS:e=>{const{normalize:t}=e;return t(["Trainings existieren"])},IMAGE:e=>{const{normalize:t}=e;return t(["Bild"])},LABEL:e=>{const{normalize:t}=e;return t(["Titel"])}},TITLE:e=>{const{normalize:t}=e;return t(["Sportarten Administration"])}},UPDATE_APPLICATION_DESCRIPTION:e=>{const{normalize:t}=e;return t(["Aktualisiere Anwemdungskonfiguration (maximale Anzahl an registrierten Nutzern, maximale Dateigröße)."])},UPDATE_USER_EMAIL:e=>{const{normalize:t}=e;return t(["Aktualisiere E-Mail"])},USER:e=>{const{normalize:t}=e;return t(["Nutzer"])},USER_EMAIL_UPDATE_SUCCESSFUL:e=>{const{normalize:t}=e;return t(["Die E-Mail Adresse wurde aktualisiert."])},USERS:{TABLE:{ADD_ADMIN_RIGHTS:e=>{const{normalize:t}=e;return t(["Administratorrechte hinzufügen"])},REMOVE_ADMIN_RIGHTS:e=>{const{normalize:t}=e;return t(["Administratorrechte entfernen"])}},SELECTS:{ORDER_BY:{ADMIN:e=>{const{normalize:t}=e;return t(["Adminstatus"])},CREATED_AT:e=>{const{normalize:t}=e;return t(["Registrierungsdatum"])},IS_ACTIVE:e=>{const{normalize:t}=e;return t(["Accountstatus"])},USERNAME:e=>{const{normalize:t}=e;return t(["Nutzername"])},WORKOUTS_COUNT:e=>{const{normalize:t}=e;return t(["Trainingsanzahl"])}}}}},o={ERROR:{UNKNOWN:e=>{const{normalize:t}=e;return t(["Fehler. Bitte versuche es erneut oder kontaktiere den Administrator."])},"at least one file in zip archive exceeds size limit, please check the archive":e=>{const{normalize:t}=e;return t(["Mindestens eine Datei im ZIP-Archiv überschreitet das Größenlimit, bitte überprüfe das Archiv."])},"email: valid email must be provided":e=>{const{normalize:t}=e;return t(["E-Mail: Eine gültige E-Mail muss angegeben werden."])},"error during gpx processing":e=>{const{normalize:t}=e;return t(["Fehler bei der GPX-Verarbeitung."])},"error during gpx file parsing":e=>{const{normalize:t}=e;return t(["Fehler beim Einlesen der GPX-Datei"])},"error on getting configuration":e=>{const{normalize:t}=e;return t(["Fehler beim Abrufen der Konfiguration."])},"error when updating configuration":e=>{const{normalize:t}=e;return t(["Fehler beim Aktualisieren der Konfiguration"])},"error, please try again or contact the administrator":e=>{const{normalize:t}=e;return t(["Fehler. Bitte versuche es erneut oder kontaktiere den Administrator."])},"error, registration is disabled":e=>{const{normalize:t}=e;return t(["Fehler. Die Registrierung ist deaktiviert."])},"file extension not allowed":e=>{const{normalize:t}=e;return t(["Dateierweiterung ist nicht erlaubt."])},"file size is greater than the allowed size":e=>{const{normalize:t}=e;return t(["Die Datei ist größer als erlaubt."])},"invalid credentials":e=>{const{normalize:t}=e;return t(["Ungültige Anmeldedaten."])},"invalid payload":e=>{const{normalize:t}=e;return t(["Die bereitgestellten Daten sind ungültig."])},"invalid token, please log in again":e=>{const{normalize:t}=e;return t(["Ungültiges Token, bitte erneut anmelden."])},"invalid token, please request a new token":e=>{const{normalize:t}=e;return t(["Ungültiges Token, bitte erneut anmelden."])},"Network Error":e=>{const{normalize:t}=e;return t(["Netzwerkfehler."])},"new email must be different than curent email":e=>{const{normalize:t}=e;return t(["Die neue E-Mail muss sich von der aktuellen E-Mail unterscheiden"])},"no file part":e=>{const{normalize:t}=e;return t(["Keine Datei angegeben."])},"no selected file":e=>{const{normalize:t}=e;return t(["Keine Datei ausgewählt."])},"the number of files in the archive exceeds the limit":e=>{const{normalize:t}=e;return t(["Die Anzahl der Dateien im Archiv überschreitet die Begrenzung."])},"password: password and password confirmation do not match":e=>{const{normalize:t}=e;return t(["Passwort: Passwort und Passwortbestätigung stimmen nicht überein."])},"provide a valid auth token":e=>{const{normalize:t}=e;return t(["Gebe ein gültiges Authentifizierungstoken an."])},"sorry, that username is already taken":e=>{const{normalize:t}=e;return t(["Es tut mir leid, der Benutzername ist schon vergeben."])},"sport does not exist":e=>{const{normalize:t}=e;return t(["Sportart existiert nicht."])},"signature expired, please log in again":e=>{const{normalize:t}=e;return t(["Die Signatur ist abgelaufen. Bitte melde dich erneut an."])},"successfully registered":e=>{const{normalize:t}=e;return t(["Registrierung erfolgreich."])},"user does not exist":e=>{const{normalize:t}=e;return t(["Der Nutzer existiert nicht."])},"valid email must be provided for admin contact":e=>{const{normalize:t}=e;return t(["Um den Administrator zu kontaktieren, muss eine gültige E-Mail-Adresse angegeben werden"])},"you can not delete your account, no other user has admin rights":e=>{const{normalize:t}=e;return t(["Du kannst Dein Konto nicht löschen, da kein anderer Nutzer hat Administratorrechte besitzt."])},"you do not have permissions":e=>{const{normalize:t}=e;return t(["Du hast keine Berechtigung."])}},PAGINATION:{PREVIOUS:e=>{const{normalize:t}=e;return t(["Vorhergehende"])},NEXT:e=>{const{normalize:t}=e;return t(["Nächste"])}}},s={"ACCOUNT-CONFIRMATION-RESEND":e=>{const{normalize:t}=e;return t(["Bestätigungs-E-Mail erneut senden"])},AUTHORIZE:e=>{const{normalize:t}=e;return t(["Autorisieren"])},BACK:e=>{const{normalize:t}=e;return t(["Zurück"])},CANCEL:e=>{const{normalize:t}=e;return t(["Abbrechen"])},CLEAR_FILTER:e=>{const{normalize:t}=e;return t(["Filter löschen"])},DELETE_MY_ACCOUNT:e=>{const{normalize:t}=e;return t(["Mein Konto löschen"])},DISABLE:e=>{const{normalize:t}=e;return t(["Deaktivieren"])},EDIT:e=>{const{normalize:t}=e;return t(["Bearbeiten"])},ENABLE:e=>{const{normalize:t}=e;return t(["Aktivieren"])},FILTER:e=>{const{normalize:t}=e;return t(["Filter"])},LOGIN:e=>{const{normalize:t}=e;return t(["Anmelden"])},NO:e=>{const{normalize:t}=e;return t(["Nein"])},REGISTER:e=>{const{normalize:t}=e;return t(["Registrieren"])},RESET:e=>{const{normalize:t}=e;return t(["Zurücksetzen"])},SUBMIT:e=>{const{normalize:t}=e;return t(["Speichern"])},YES:e=>{const{normalize:t}=e;return t(["Ja"])}},i={ABOUT:e=>{const{normalize:t}=e;return t(["Über"])},CONFIRMATION:e=>{const{normalize:t}=e;return t(["Bestätigung"])},CONTACT:e=>{const{normalize:t}=e;return t(["Kontakt"])},DAY:e=>{const{normalize:t,plural:n}=e;return n([t(["Tag"]),t(["Tage"])])},DISPLAYED:e=>{const{normalize:t}=e;return t(["Angezeigt"])},DOCUMENTATION:e=>{const{normalize:t}=e;return t(["Dokumentation (en)"])},HERE:e=>{const{normalize:t}=e;return t(["hier"])},HIDDEN:e=>{const{normalize:t}=e;return t(["Versteckt"])},HOME:e=>{const{normalize:t}=e;return t(["Startseite"])},SELECTS:{ORDER_BY:{LABEL:e=>{const{normalize:t}=e;return t(["sortiert nach"])}},ORDER:{LABEL:e=>{const{normalize:t}=e;return t(["sortieren"])},ASC:e=>{const{normalize:t}=e;return t(["aufsteigend"])},DESC:e=>{const{normalize:t}=e;return t(["absteigend"])}},PER_PAGE:{LABEL:e=>{const{normalize:t}=e;return t(["pro Seite"])}}},TOTAL:e=>{const{normalize:t}=e;return t(["Insgesamt"])}},l={DASHBOARD:e=>{const{normalize:t}=e;return t(["Dashboard"])},THIS_MONTH:e=>{const{normalize:t}=e;return t(["Dieser Monat"])}},c={UNKNOWN:e=>{const{normalize:t}=e;return t(["Fehler. Bitte versuche es erneut oder kontaktiere den Administrator."])},APP_ERROR:e=>{const{normalize:t}=e;return t(["Bei der Anwendung scheinen einige Probleme aufgetreten zu sein.
Bitte versuche es später noch einmal oder kontaktiere den Administrator."])},NOT_FOUND:{PAGE:e=>{const{normalize:t}=e;return t(["Seite nicht gefunden"])},WORKOUT:e=>{const{normalize:t}=e;return t(["Training nicht gefunden"])}},SOMETHING_WRONG:e=>{const{normalize:t}=e;return t(["Etwas lief schief"])}},u={ADD_A_NEW_APP:e=>{const{normalize:t}=e;return t(["Eine neue OAuth2-Anwendung hinzufügen"])},APP:{CLIENT_ID:e=>{const{normalize:t}=e;return t(["ID"])},CLIENT_SECRET:e=>{const{normalize:t}=e;return t(["Geheimnis"])},DESCRIPTION:e=>{const{normalize:t}=e;return t(["Anwendungsbeschreibung"])},ISSUE_AT:e=>{const{normalize:t}=e;return t(["Erstellt am"])},NAME:e=>{const{normalize:t}=e;return t(["Anwendungsname"])},REDIRECT_URL:e=>{const{normalize:t}=e;return t(["Weiterleitungs-URL"])},SCOPE:{LABEL:e=>{const{normalize:t}=e;return t(["Geltungsbereich"])},"profile:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["erlaubt Schreibzugriff auf auth-Endpunkte"])},"profile:read_DESCRIPTION":e=>{const{normalize:t}=e;return t(["erlaubt Lesezugriff auf auth-Endpunkte"])},"users:read_DESCRIPTION":e=>{const{normalize:t}=e;return t(["erlaubt Lesezugriff auf users-Endpunkte"])},"users:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["erlaubt Schreibzugriff auf users-Endpunkte"])},"workouts:read_DESCRIPTION":e=>{const{normalize:t}=e;return t(["erlaubt Lesezugriff auf workouts-Endpunkte"])},"workouts:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["erlaubt Schreibzugriff auf workouts-Endpunkte"])},"application:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["erlaubt Schreibzugriff auf die Anwendungskonfiguration"])}},URL:e=>{const{normalize:t}=e;return t(["Anwendungs-URL"])}},APP_CREATED_SUCCESSFULLY:e=>{const{normalize:t}=e;return t(["Anwendung erfolgreich erstellt. Stelle sicher, dass du das Geheimnis kopierst, du kannst es nicht erneut anzeigen."])},APP_DELETION_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Bist sicher, dass du diese App löschen willst?"])},APP_REQUESTING_ACCESS:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Die Anwendung ",n(r(0))," fragt an:"])},APPS_LIST:e=>{const{normalize:t}=e;return t(["OAuth2-Anwendungen"])},AUTHORIZE_APP:e=>{const{normalize:t,interpolate:n,list:r}=e;return t([n(r(0))," den Zugriff auf deinen Account erlauben?"])},COPY_TO_CLIPBOARD:e=>{const{normalize:t}=e;return t(["in Zwischenablage kopieren"])},DELETE_APP:e=>{const{normalize:t}=e;return t(["Anwendung löschen"])},NEW_APP:e=>{const{normalize:t}=e;return t(["Anwendung hinzufügen"])},NO_APP:e=>{const{normalize:t}=e;return t(["Anwendung wurde nicht gefunden!"])},NO_APPS:e=>{const{normalize:t}=e;return t(["keine Anwendungen"])},NO_DESCRIPTION:e=>{const{normalize:t}=e;return t(["keine Beschreibung"])},REVOKE_ALL_TOKENS:e=>{const{normalize:t}=e;return t(["Alle Tokens zurückrufen"])},TOKENS_REVOCATION_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Bist du sicher, dass du alle Tokens zurückrufen möchtest?"])},TOKENS_REVOKED:e=>{const{normalize:t}=e;return t(["Alle vorhandenen und vergebenen Tokens wurde zurückgerufen."])}},d={"Cycling (Sport)":{LABEL:e=>{const{normalize:t}=e;return t(["Radfahren (Sport)"])}},"Cycling (Transport)":{LABEL:e=>{const{normalize:t}=e;return t(["Radfahren (Pendeln)"])}},"Cycling (Virtual)":{LABEL:e=>{const{normalize:t}=e;return t(["Radfahren (Virtuell)"])}},Hiking:{LABEL:e=>{const{normalize:t}=e;return t(["Wandern"])}},"Mountain Biking":{LABEL:e=>{const{normalize:t}=e;return t(["Mountainbiken"])}},"Mountain Biking (Electric)":{LABEL:e=>{const{normalize:t}=e;return t(["Mountainbiken (elektrisch)"])}},Rowing:{LABEL:e=>{const{normalize:t}=e;return t(["Rudern"])}},Running:{LABEL:e=>{const{normalize:t}=e;return t(["Laufen"])}},"Skiing (Alpine)":{LABEL:e=>{const{normalize:t}=e;return t(["Skifahren (Alpin)"])}},"Skiing (Cross Country)":{LABEL:e=>{const{normalize:t}=e;return t(["Skifahren (Langlauf)"])}},Snowshoes:{LABEL:e=>{const{normalize:t}=e;return t(["Schneeschuhe"])}},Trail:{LABEL:e=>{const{normalize:t}=e;return t(["Trail"])}},Walking:{LABEL:e=>{const{normalize:t}=e;return t(["Gehen"])}}},m={STATISTICS:e=>{const{normalize:t}=e;return t(["Statistik"])},TIME_FRAMES:{week:e=>{const{normalize:t}=e;return t(["Woche"])},month:e=>{const{normalize:t}=e;return t(["Monat"])},year:e=>{const{normalize:t}=e;return t(["Jahr"])}}},_={ACCOUNT_CONFIRMATION_NOT_RECEIVED:e=>{const{normalize:t}=e;return t(["Hast du keine Anweisungen erhalten?"])},ACCOUNT_CONFIRMATION_SENT:e=>{const{normalize:t}=e;return t(["Prüfe deine E-Mail. Eine neue Bestätigungs-E-Mail wurde an die angegebene Adresse geschickt."])},ADMIN:e=>{const{normalize:t}=e;return t(["Admin"])},ALREADY_HAVE_ACCOUNT:e=>{const{normalize:t}=e;return t(["Hast du bereits ein Konto?"])},CONFIRM_ACCOUNT_DELETION:e=>{const{normalize:t}=e;return t(["Möchtest du dein Konto wirklich löschen? Alle Daten werden gelöscht. Dieser Vorgang kann nicht rückgängig gemacht werden"])},CURRENT_PASSWORD:e=>{const{normalize:t}=e;return t(["Aktuelles Passwort"])},EMAIL:e=>{const{normalize:t}=e;return t(["E-Mail"])},EMAIL_INFO:e=>{const{normalize:t}=e;return t(["Gebe eine gültige E-Mail-Adresse an."])},ENTER_PASSWORD:e=>{const{normalize:t}=e;return t(["Gebe ein Passwort ein"])},FILTER_ON_USERNAME:e=>{const{normalize:t}=e;return t(["Nach Benutzernamen filtern"])},HIDE_PASSWORD:e=>{const{normalize:t}=e;return t(["Passwort verbergen"])},INVALID_TOKEN:e=>{const{normalize:t}=e;return t(["Ungültiges Token, bitte fordere ein neues Passworts an."])},LANGUAGE:e=>{const{normalize:t}=e;return t(["Sprache"])},LOG_IN:e=>{const{normalize:t}=e;return t(["Anmelden"])},LOGIN:e=>{const{normalize:t}=e;return t(["Anmeldung"])},LOGOUT:e=>{const{normalize:t}=e;return t(["Abmelden"])},NEW_PASSWORD:e=>{const{normalize:t}=e;return t(["Neues Passwort"])},NO_USERS_FOUND:e=>{const{normalize:t}=e;return t(["Keine Nutzer gefunden."])},PASSWORD:e=>{const{normalize:t}=e;return t(["Passwort"])},PASSWORD_INFO:e=>{const{normalize:t}=e;return t(["Mindestens 8 Zeichen sind erforderlich."])},PASSWORD_FORGOTTEN:e=>{const{normalize:t}=e;return t(["Passwort vergessen?"])},PASSWORD_RESET:e=>{const{normalize:t}=e;return t(["Passwort zurücksetzen"])},PASSWORD_SENT_EMAIL_TEXT:e=>{const{normalize:t}=e;return t(["Prüfe Deine E-Mail. Wenn Deine Adresse in der Datenbank enthalten ist, wirst du eine E-Mail mit einem Link erhalten um Dein Passwort zurückzusetzen."])},PASSWORD_STRENGTH:{WEAK:e=>{const{normalize:t}=e;return t(["schwach"])},AVERAGE:e=>{const{normalize:t}=e;return t(["mittel"])},GOOD:e=>{const{normalize:t}=e;return t(["gut"])},STRONG:e=>{const{normalize:t}=e;return t(["start"])},LABEL:e=>{const{normalize:t}=e;return t(["Passwortstärke"])},SUGGESTIONS:{l33t:e=>{const{normalize:t}=e;return t(["Vermeide vorhersehbare Buchstabenersetzungen wie ","@"," für a."])},reverseWords:e=>{const{normalize:t}=e;return t(["Vermeide umgekehrte Schreibweisen gebräuchlicher Wörter."])},allUppercase:e=>{const{normalize:t}=e;return t(["Schreibe einige, aber nicht alle Buchstaben groß."])},capitalization:e=>{const{normalize:t}=e;return t(["Schreibe mehr als nur den ersten Buchstaben groß."])},dates:e=>{const{normalize:t}=e;return t(["Vermeide Daten und Jahreszahlen, die mit Dir in Verbindung gebracht werden."])},recentYears:e=>{const{normalize:t}=e;return t(["Vermeide Angabe von letzten Jahreszahlen."])},associatedYears:e=>{const{normalize:t}=e;return t(["Vermeide Jahreszahlen, die mit Dir in Verbindung gebracht werden."])},sequences:e=>{const{normalize:t}=e;return t(["Vermeide gebräuchliche Zeichenfolgen."])},repeated:e=>{const{normalize:t}=e;return t(["Vermeide wiederholungen von Wörtern und Zeichen."])},longerKeyboardPattern:e=>{const{normalize:t}=e;return t(["Verwende längere Tastaturmuster und ändere mehrmals die Schreibrichtung."])},anotherWord:e=>{const{normalize:t}=e;return t(["Füge weitere weniger gebräuchliche Wörter hinzu."])},useWords:e=>{const{normalize:t}=e;return t(["Verwenden Sie mehrere Wörter, aber vermeide gebräuchliche Ausdrücke."])},noNeed:e=>{const{normalize:t}=e;return t(["Du kannst sichere Passwörter erstellen, ohne Symbole, Zahlen oder Großbuchstaben zu verwenden."])},pwned:e=>{const{normalize:t}=e;return t(["Wenn Sie dieses Passwort auch anderweitig verwenden, sollten Sie es ändern."])}}},PASSWORD_UPDATED:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Dein Passwort wurde aktualisiert. Klicke ",n(r(0))," um dich anzumelden."])},PROFILE:{ACCOUNT_EDITION:e=>{const{normalize:t}=e;return t(["Kontoausgabe"])},ASCENT_DATA:e=>{const{normalize:t}=e;return t(["Anstiegs-bezogene Daten (Aufnahmen, gesamt)"])},BACK_TO_PROFILE:e=>{const{normalize:t}=e;return t(["Zurück zum Profil"])},BIO:e=>{const{normalize:t}=e;return t(["Biographie"])},BIRTH_DATE:e=>{const{normalize:t}=e;return t(["Geburtsdatum"])},DATE_FORMAT:e=>{const{normalize:t}=e;return t(["Datumsanzeigeformat"])},EDIT:e=>{const{normalize:t}=e;return t(["Profil bearbeiten"])},EDIT_PREFERENCES:e=>{const{normalize:t}=e;return t(["Einstellungen ändern"])},EDIT_SPORTS_PREFERENCES:e=>{const{normalize:t}=e;return t(["Einstellungen für Sportarten ändern"])},ERRORED_EMAIL_UPDATE:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Bitte ",n(r(0))," um Deine E-Mail Adresse nochmals zu ändern oder kontaktiere den Administrator"])},FIRST_NAME:e=>{const{normalize:t}=e;return t(["Vorname"])},FIRST_DAY_OF_WEEK:e=>{const{normalize:t}=e;return t(["Erster Tag der Woche"])},LANGUAGE:e=>{const{normalize:t}=e;return t(["Sprache"])},LAST_NAME:e=>{const{normalize:t}=e;return t(["Nachname"])},LOCATION:e=>{const{normalize:t}=e;return t(["Ort"])},MONDAY:e=>{const{normalize:t}=e;return t(["Montag"])},PICTURE:e=>{const{normalize:t}=e;return t(["Bild"])},PICTURE_EDITION:e=>{const{normalize:t}=e;return t(["Bildausgabe"])},PICTURE_UPDATE:e=>{const{normalize:t}=e;return t(["Bild aktualisieren"])},PICTURE_REMOVE:e=>{const{normalize:t}=e;return t(["Bild entfernen"])},PREFERENCES_EDITION:e=>{const{normalize:t}=e;return t(["Einstellungsausgabe"])},PROFILE_EDITION:e=>{const{normalize:t}=e;return t(["Profil-Ausgabe"])},REGISTRATION_DATE:e=>{const{normalize:t}=e;return t(["Registrierungsdatum"])},SPORTS_EDITION:e=>{const{normalize:t}=e;return t(["Sportarten-Einstellungsausgabe"])},SUNDAY:e=>{const{normalize:t}=e;return t(["Sontag"])},TABS:{ACCOUNT:e=>{const{normalize:t}=e;return t(["Konto"])},APPS:e=>{const{normalize:t}=e;return t(["Anwendungen"])},PICTURE:e=>{const{normalize:t}=e;return t(["Bild"])},PREFERENCES:e=>{const{normalize:t}=e;return t(["Einstellungen"])},PROFILE:e=>{const{normalize:t}=e;return t(["Profil"])},SPORTS:e=>{const{normalize:t}=e;return t(["Sportarten"])}},SPORT:{ACTION:e=>{const{normalize:t}=e;return t(["Aktion"])},COLOR:e=>{const{normalize:t}=e;return t(["Farbe"])},DISABLED_BY_ADMIN:e=>{const{normalize:t}=e;return t(["vom Admin deaktiviert"])},IS_ACTIVE:e=>{const{normalize:t}=e;return t(["aktiv"])},LABEL:e=>{const{normalize:t}=e;return t(["Titel"])},STOPPED_SPEED_THRESHOLD:e=>{const{normalize:t}=e;return t(["Geschwindigkeitsschwellenwert für Stopp"])}},SUCCESSFUL_EMAIL_UPDATE:e=>{const{normalize:t}=e;return t(["Dein Konto wurde erfolgreich aktualisiert. Bitte prüfe Deine E-Mail um die neue E-Mail Adresse zu bestätigen."])},SUCCESSFUL_REGISTRATION:e=>{const{normalize:t}=e;return t(["Dein Konto wurde erfolgreich erstellt."])},SUCCESSFUL_REGISTRATION_WITH_EMAIL:e=>{const{normalize:t}=e;return t(["Ein Aktivierungslink für Dein Konto wurde an die angegebene E-Mail Adresse geschickt."])},SUCCESSFUL_UPDATE:e=>{const{normalize:t}=e;return t(["Dein Konto wurde erfolgreich aktualisiert."])},UNITS:{LABEL:e=>{const{normalize:t}=e;return t(["Einheiten für die Distanz"])},IMPERIAL:e=>{const{normalize:t}=e;return t(["Imperiales System (ft, mi)"])},METRIC:e=>{const{normalize:t}=e;return t(["Metrisches System (m, km)"])}},TIMEZONE:e=>{const{normalize:t}=e;return t(["Zeitzone"])}},REGISTER:e=>{const{normalize:t}=e;return t(["Registrieren"])},RESENT_ACCOUNT_CONFIRMATION:e=>{const{normalize:t}=e;return t(["E-Mail zur Kontobestätigung erneut senden"])},REGISTER_DISABLED:e=>{const{normalize:t}=e;return t(["Entschuldigung, die Registrierung ist deaktiviert."])},RESET_PASSWORD:e=>{const{normalize:t}=e;return t(["Passwort zurücksetzen"])},SHOW_PASSWORD:e=>{const{normalize:t}=e;return t(["Passwort anzeigen"])},THIS_USER_ACCOUNT_IS_INACTIVE:e=>{const{normalize:t}=e;return t(["Dieser Account ist inaktiv."])},USER_PICTURE:e=>{const{normalize:t}=e;return t(["Benutzerbild"])},USERNAME:e=>{const{normalize:t}=e;return t(["Nutzername"])},USERNAME_INFO:e=>{const{normalize:t}=e;return t(["3 bis 30 Zeichen sind erforderlich, nur alphanumerische Zeichen und der Unterstrich _ sind erlaubt."])}},E={ADD_WORKOUT:e=>{const{normalize:t}=e;return t(["Training hinzufügen"])},ANALYSIS:e=>{const{normalize:t}=e;return t(["Analyse"])},ASCENT:e=>{const{normalize:t}=e;return t(["Aufstieg"])},AVE_SPEED:e=>{const{normalize:t}=e;return t(["Durchschn. Geschwindigkeit"])},AVERAGE_SPEED:e=>{const{normalize:t}=e;return t(["Durchschnittsgeschwindigkeit"])},BACK_TO_WORKOUT:e=>{const{normalize:t}=e;return t(["zurück zum Training"])},DATE:e=>{const{normalize:t}=e;return t(["Datum"])},DESCENT:e=>{const{normalize:t}=e;return t(["Abstieg"])},DISPLAY_FILTERS:e=>{const{normalize:t}=e;return t(["zeige Filter"])},DISTANCE:e=>{const{normalize:t}=e;return t(["Entfernung"])},DURATION:e=>{const{normalize:t}=e;return t(["Dauer"])},EDIT_WORKOUT:e=>{const{normalize:t}=e;return t(["Training bearbeiten"])},ELEVATION:e=>{const{normalize:t}=e;return t(["Höhe"])},END:e=>{const{normalize:t}=e;return t(["Ende"])},FROM:e=>{const{normalize:t}=e;return t(["Von"])},GPX_FILE:e=>{const{normalize:t}=e;return t([".gpx Datei"])},HIDE_FILTERS:e=>{const{normalize:t}=e;return t(["verberge Filter"])},LATEST_WORKOUTS:e=>{const{normalize:t}=e;return t(["Letzte Trainings"])},LOAD_MORE_WORKOUT:e=>{const{normalize:t}=e;return t(["Lade mehr Trainings"])},MAX_ALTITUDE:e=>{const{normalize:t}=e;return t(["maximale Höhe"])},MAX_FILES:e=>{const{normalize:t}=e;return t(["Maximale Dateianzahl"])},MAX_SIZE:e=>{const{normalize:t}=e;return t(["Maximalgröße"])},MAX_SPEED:e=>{const{normalize:t}=e;return t(["Max. Geschwindigkeit"])},MIN_ALTITUDE:e=>{const{normalize:t}=e;return t(["minimale Höhe"])},NEXT_SEGMENT:e=>{const{normalize:t}=e;return t(["Nächstes Segment"])},NEXT_WORKOUT:e=>{const{normalize:t}=e;return t(["Nächstes Training"])},NO_DATA_CLEANING:e=>{const{normalize:t}=e;return t(["Daten aus gpx, ohne Bereinigung"])},NO_FILE_PROVIDED:e=>{const{normalize:t}=e;return t(["Keine Datei angegeben"])},NO_FOLDER:e=>{const{normalize:t}=e;return t(["enthält keinen Ordner"])},NO_MAP:e=>{const{normalize:t}=e;return t(["Keine Karte"])},NO_NEXT_SEGMENT:e=>{const{normalize:t}=e;return t(["Kein nächstes Segment"])},NO_NEXT_WORKOUT:e=>{const{normalize:t}=e;return t(["Kein nächstes Training"])},NO_NOTES:e=>{const{normalize:t}=e;return t(["Keine Anmerkungen"])},NO_PREVIOUS_SEGMENT:e=>{const{normalize:t}=e;return t(["Kein vorheriges Segment"])},NO_PREVIOUS_WORKOUT:e=>{const{normalize:t}=e;return t(["Kein vorheriges Training"])},NO_RECORDS:e=>{const{normalize:t}=e;return t(["Keine Aufzeichnungen."])},NO_WORKOUTS:e=>{const{normalize:t}=e;return t(["Keine Trainings."])},NOTES:e=>{const{normalize:t}=e;return t(["Anmerkungen"])},PAUSES:e=>{const{normalize:t}=e;return t(["Pausen"])},PREVIOUS_SEGMENT:e=>{const{normalize:t}=e;return t(["Vorheriges Segment"])},PREVIOUS_WORKOUT:e=>{const{normalize:t}=e;return t(["Vorheriges Training"])},RECORD:e=>{const{normalize:t,plural:n}=e;return n([t(["Aufzeichnung"]),t(["Aufzeichnungen"])])},RECORD_AS:e=>{const{normalize:t}=e;return t(["Durchschn. Geschwindigkeit"])},RECORD_FD:e=>{const{normalize:t}=e;return t(["Weiteste Entfernung"])},RECORD_HA:e=>{const{normalize:t}=e;return t(["Höchster Anstieg"])},RECORD_LD:e=>{const{normalize:t}=e;return t(["Längste Dauer"])},RECORD_MS:e=>{const{normalize:t}=e;return t(["Max. Geschwindigkeit"])},REMAINING_CHARS:e=>{const{normalize:t}=e;return t(["verbleibende Zeichen"])},SEGMENT:e=>{const{normalize:t,plural:n}=e;return n([t(["Segment"]),t(["Segmente"])])},SPEED:e=>{const{normalize:t}=e;return t(["Geschwindigkeit"])},SPORT:e=>{const{normalize:t,plural:n}=e;return n([t(["Sportart"]),t(["Sportarten"])])},START:e=>{const{normalize:t}=e;return t(["Start"])},START_AND_FINISH:e=>{const{normalize:t}=e;return t(["Start und Ziel"])},START_ELEVATION_AT_ZERO:e=>{const{normalize:t}=e;return t(["Höhenachse bei Null starten"])},TITLE:e=>{const{normalize:t}=e;return t(["Titel"])},TO:e=>{const{normalize:t}=e;return t(["bis"])},TOTAL_DURATION:e=>{const{normalize:t}=e;return t(["Gesamtdauer"])},UPLOAD_FIRST_WORKOUT:e=>{const{normalize:t}=e;return t(["Füge erstes Training hinzu!"])},WEATHER:{HUMIDITY:e=>{const{normalize:t}=e;return t(["Luftfeuchtigkeit"])},TEMPERATURE:e=>{const{normalize:t}=e;return t(["Temperatur"])},WIND:e=>{const{normalize:t}=e;return t(["Wind"])},WIND_DIRECTIONS:{N:e=>{const{normalize:t}=e;return t(["N"])},NNE:e=>{const{normalize:t}=e;return t(["NNO"])},NE:e=>{const{normalize:t}=e;return t(["NO"])},ENE:e=>{const{normalize:t}=e;return t(["ONO"])},E:e=>{const{normalize:t}=e;return t(["O"])},ESE:e=>{const{normalize:t}=e;return t(["OSO"])},SE:e=>{const{normalize:t}=e;return t(["SO"])},SSE:e=>{const{normalize:t}=e;return t(["SSO"])},S:e=>{const{normalize:t}=e;return t(["S"])},SSW:e=>{const{normalize:t}=e;return t(["SSW"])},SW:e=>{const{normalize:t}=e;return t(["SW"])},WSW:e=>{const{normalize:t}=e;return t(["WSW"])},W:e=>{const{normalize:t}=e;return t(["W"])},WNW:e=>{const{normalize:t}=e;return t(["WNW"])},NW:e=>{const{normalize:t}=e;return t(["NW"])},NNW:e=>{const{normalize:t}=e;return t(["NNW"])}},DARK_SKY:{"clear-day":e=>{const{normalize:t}=e;return t(["klarer Tag"])},"clear-night":e=>{const{normalize:t}=e;return t(["klare Nacht"])},cloudy:e=>{const{normalize:t}=e;return t(["wolkig"])},fog:e=>{const{normalize:t}=e;return t(["Nebel"])},"partly-cloudy-day":e=>{const{normalize:t}=e;return t(["teilweise bewölkter Tag"])},"partly-cloudy-night":e=>{const{normalize:t}=e;return t(["teilweise bewölkte Nacht"])},rain:e=>{const{normalize:t}=e;return t(["Regen"])},sleet:e=>{const{normalize:t}=e;return t(["Schneeregen"])},snow:e=>{const{normalize:t}=e;return t(["Schnee"])},wind:e=>{const{normalize:t}=e;return t(["Wind"])}}},WITH_GPX:e=>{const{normalize:t}=e;return t(["mit .gpx Datei"])},WITHOUT_GPX:e=>{const{normalize:t}=e;return t(["ohne .gpx Datei"])},WORKOUT:e=>{const{normalize:t,plural:n}=e;return n([t(["Training"]),t(["Trainings"])])},WORKOUT_DATE:e=>{const{normalize:t}=e;return t(["Trainingsdatum"])},WORKOUT_DELETION_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Bist du sicher, dass du dieses Training löschen möchtest?"])},ZIP_ARCHIVE:e=>{const{normalize:t}=e;return t([".zip Datei"])},ZIP_ARCHIVE_DESCRIPTION:e=>{const{normalize:t}=e;return t(["oder .zip Datei mit .gpx Dateien"])}},S={about:r,admin:a,api:o,buttons:s,common:i,dashboard:l,error:c,oauth2:u,sports:d,statistics:m,user:_,workouts:E}},8757:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return S}});var r={CONTACT_ADMIN:e=>{const{normalize:t}=e;return t(["Contact the administrator"])},FITTRACKEE_DESCRIPTION:e=>{const{normalize:t}=e;return t(["FitTrackee is a self-hosted outdoor activity tracker."])},FITTRACKEE_LICENSE:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["under ",n(r(0))," license "])},SOURCE_CODE:e=>{const{normalize:t}=e;return t(["Source code"])}},a={ACTION:e=>{const{normalize:t}=e;return t(["Action"])},ACTIVATE_USER_ACCOUNT:e=>{const{normalize:t}=e;return t(["Activate account"])},ACTIVE:e=>{const{normalize:t}=e;return t(["Active"])},ADMIN_RIGHTS_DELETE_USER_ACCOUNT:e=>{const{normalize:t}=e;return t(["Add/remove admin rights, delete user account."])},ADMIN:e=>{const{normalize:t}=e;return t(["Admin"])},ADMINISTRATION:e=>{const{normalize:t}=e;return t(["Administration"])},APPLICATION:e=>{const{normalize:t}=e;return t(["Application"])},APP_CONFIG:{ADMIN_CONTACT:e=>{const{normalize:t}=e;return t(["Administrator email for contact"])},MAX_USERS_LABEL:e=>{const{normalize:t}=e;return t(["Max. number of active users"])},MAX_USERS_HELP:e=>{const{normalize:t}=e;return t(["If 0, no limitation on registration."])},MAX_FILES_IN_ZIP_LABEL:e=>{const{normalize:t}=e;return t(["Max. files of zip archive"])},NO_CONTACT_EMAIL:e=>{const{normalize:t}=e;return t(["no contact email"])},SINGLE_UPLOAD_MAX_SIZE_LABEL:e=>{const{normalize:t}=e;return t(["Max. size of uploaded files (in Mb)"])},TITLE:e=>{const{normalize:t}=e;return t(["Application configuration"])},ZIP_UPLOAD_MAX_SIZE_LABEL:e=>{const{normalize:t}=e;return t(["Max. size of zip archive (in Mb)"])}},BACK_TO_ADMIN:e=>{const{normalize:t}=e;return t(["Back to admin"])},CONFIRM_USER_ACCOUNT_DELETION:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Are you sure you want to delete ",n(r(0))," account? All data will be deleted, this cannot be undone."])},CONFIRM_USER_PASSWORD_RESET:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Are you sure you want to reset ",n(r(0))," password?"])},CURRENT_EMAIL:e=>{const{normalize:t}=e;return t(["Current email"])},DELETE_USER:e=>{const{normalize:t}=e;return t(["Delete user"])},EMAIL_SENDING_DISABLED:e=>{const{normalize:t}=e;return t(["Email sending is disabled."])},ENABLE_DISABLE_SPORTS:e=>{const{normalize:t}=e;return t(["Enable/disable sports."])},NEW_EMAIL:e=>{const{normalize:t}=e;return t(["New email"])},PASSWORD_RESET_SUCCESSFUL:e=>{const{normalize:t}=e;return t(["The password has been reset."])},REGISTRATION_DISABLED:e=>{const{normalize:t}=e;return t(["Registration is currently disabled."])},REGISTRATION_ENABLED:e=>{const{normalize:t}=e;return t(["Registration is currently enabled."])},RESET_USER_PASSWORD:e=>{const{normalize:t}=e;return t(["Reset password"])},SPORTS:{TABLE:{ACTIVE:e=>{const{normalize:t}=e;return t(["Active"])},HAS_WORKOUTS:e=>{const{normalize:t}=e;return t(["workouts exist"])},IMAGE:e=>{const{normalize:t}=e;return t(["Image"])},LABEL:e=>{const{normalize:t}=e;return t(["Label"])}},TITLE:e=>{const{normalize:t}=e;return t(["Sports administration"])}},UPDATE_APPLICATION_DESCRIPTION:e=>{const{normalize:t}=e;return t(["Update application configuration (maximum number of registered users, maximum files size)."])},UPDATE_USER_EMAIL:e=>{const{normalize:t}=e;return t(["Update email"])},USER:e=>{const{normalize:t,plural:n}=e;return n([t(["user"]),t(["users"])])},USER_EMAIL_UPDATE_SUCCESSFUL:e=>{const{normalize:t}=e;return t(["The email address has been updated."])},USERS:{TABLE:{ADD_ADMIN_RIGHTS:e=>{const{normalize:t}=e;return t(["Add admin rights"])},REMOVE_ADMIN_RIGHTS:e=>{const{normalize:t}=e;return t(["Remove admin rights"])}},SELECTS:{ORDER_BY:{ADMIN:e=>{const{normalize:t}=e;return t(["admin status"])},CREATED_AT:e=>{const{normalize:t}=e;return t(["registration date"])},IS_ACTIVE:e=>{const{normalize:t}=e;return t(["account status"])},USERNAME:e=>{const{normalize:t}=e;return t(["username"])},WORKOUTS_COUNT:e=>{const{normalize:t}=e;return t(["workout count"])}}}}},o={ERROR:{UNKNOWN:e=>{const{normalize:t}=e;return t(["Error. Please try again or contact the administrator."])},"at least one file in zip archive exceeds size limit, please check the archive":e=>{const{normalize:t}=e;return t(["At least one file in zip archive exceeds size limit, please check the archive."])},"email: valid email must be provided":e=>{const{normalize:t}=e;return t(["Email: valid email must be provided."])},"error during gpx processing":e=>{const{normalize:t}=e;return t(["Error during gpx processing."])},"error during gpx file parsing":e=>{const{normalize:t}=e;return t(["Error during gpx file parsing."])},"error on getting configuration":e=>{const{normalize:t}=e;return t(["Error on getting configuration."])},"error when updating configuration":e=>{const{normalize:t}=e;return t(["Error when updating configuration"])},"error, please try again or contact the administrator":e=>{const{normalize:t}=e;return t(["Error, please try again or contact the administrator."])},"error, registration is disabled":e=>{const{normalize:t}=e;return t(["Error, registration is disabled."])},"file extension not allowed":e=>{const{normalize:t}=e;return t(["File extension not allowed."])},"file size is greater than the allowed size":e=>{const{normalize:t}=e;return t(["File size is greater than the allowed size."])},"invalid credentials":e=>{const{normalize:t}=e;return t(["Invalid credentials."])},"invalid payload":e=>{const{normalize:t}=e;return t(["Provided data are invalid."])},"invalid token, please log in again":e=>{const{normalize:t}=e;return t(["Invalid token, please log in again."])},"invalid token, please request a new token":e=>{const{normalize:t}=e;return t(["Invalid token, please log in again."])},"Network Error":e=>{const{normalize:t}=e;return t(["Network Error."])},"new email must be different than curent email":e=>{const{normalize:t}=e;return t(["The new email must be different than curent email"])},"no file part":e=>{const{normalize:t}=e;return t(["No file provided."])},"no selected file":e=>{const{normalize:t}=e;return t(["No selected file."])},"the number of files in the archive exceeds the limit":e=>{const{normalize:t}=e;return t(["The number of files in the archive exceeds the limit."])},"password: password and password confirmation do not match":e=>{const{normalize:t}=e;return t(["Password: password and password confirmation don't match."])},"provide a valid auth token":e=>{const{normalize:t}=e;return t(["Provide a valid auth token."])},"sorry, that username is already taken":e=>{const{normalize:t}=e;return t(["Sorry, that username is already taken."])},"sport does not exist":e=>{const{normalize:t}=e;return t(["Sport does not exist."])},"signature expired, please log in again":e=>{const{normalize:t}=e;return t(["Signature expired. Please log in again."])},"successfully registered":e=>{const{normalize:t}=e;return t(["Successfully registered."])},"user does not exist":e=>{const{normalize:t}=e;return t(["User does not exist."])},"valid email must be provided for admin contact":e=>{const{normalize:t}=e;return t(["A valid email must be provided for administrator contact"])},"you can not delete your account, no other user has admin rights":e=>{const{normalize:t}=e;return t(["You can not delete your account, no other user has admin rights."])},"you do not have permissions":e=>{const{normalize:t}=e;return t(["You do not have permissions."])}},PAGINATION:{PREVIOUS:e=>{const{normalize:t}=e;return t(["previous"])},NEXT:e=>{const{normalize:t}=e;return t(["next"])}}},s={"ACCOUNT-CONFIRMATION-RESEND":e=>{const{normalize:t}=e;return t(["Resend confirmation email"])},AUTHORIZE:e=>{const{normalize:t}=e;return t(["Authorize"])},BACK:e=>{const{normalize:t}=e;return t(["Back"])},CANCEL:e=>{const{normalize:t}=e;return t(["Cancel"])},CLEAR_FILTER:e=>{const{normalize:t}=e;return t(["Clear filters"])},DELETE_MY_ACCOUNT:e=>{const{normalize:t}=e;return t(["Delete my account"])},DISABLE:e=>{const{normalize:t}=e;return t(["Disable"])},EDIT:e=>{const{normalize:t}=e;return t(["Edit"])},ENABLE:e=>{const{normalize:t}=e;return t(["Enable"])},FILTER:e=>{const{normalize:t}=e;return t(["Filter"])},LOGIN:e=>{const{normalize:t}=e;return t(["Log in"])},NO:e=>{const{normalize:t}=e;return t(["No"])},REGISTER:e=>{const{normalize:t}=e;return t(["Register"])},RESET:e=>{const{normalize:t}=e;return t(["Reset"])},SUBMIT:e=>{const{normalize:t}=e;return t(["Submit"])},YES:e=>{const{normalize:t}=e;return t(["Yes"])}},i={ABOUT:e=>{const{normalize:t}=e;return t(["about"])},CONFIRMATION:e=>{const{normalize:t}=e;return t(["Confirmation"])},CONTACT:e=>{const{normalize:t}=e;return t(["contact"])},DAY:e=>{const{normalize:t,plural:n}=e;return n([t(["day"]),t(["days"])])},DISPLAYED:e=>{const{normalize:t}=e;return t(["Displayed"])},DOCUMENTATION:e=>{const{normalize:t}=e;return t(["documentation"])},HERE:e=>{const{normalize:t}=e;return t(["here"])},HIDDEN:e=>{const{normalize:t}=e;return t(["Hidden"])},HOME:e=>{const{normalize:t}=e;return t(["Home"])},SELECTS:{ORDER_BY:{LABEL:e=>{const{normalize:t}=e;return t(["order by"])}},ORDER:{LABEL:e=>{const{normalize:t}=e;return t(["sort"])},ASC:e=>{const{normalize:t}=e;return t(["ascending"])},DESC:e=>{const{normalize:t}=e;return t(["descending"])}},PER_PAGE:{LABEL:e=>{const{normalize:t}=e;return t(["par page"])}}},TOTAL:e=>{const{normalize:t}=e;return t(["Total"])}},l={DASHBOARD:e=>{const{normalize:t}=e;return t(["Dashboard"])},THIS_MONTH:e=>{const{normalize:t}=e;return t(["This month"])}},c={UNKNOWN:e=>{const{normalize:t}=e;return t(["Error. Please try again or contact the administrator."])},APP_ERROR:e=>{const{normalize:t}=e;return t(["The application seems to have encountered some issues.
Please try again later or contact the administrator."])},NOT_FOUND:{PAGE:e=>{const{normalize:t}=e;return t(["Page not found"])},WORKOUT:e=>{const{normalize:t}=e;return t(["Workout not found"])}},SOMETHING_WRONG:e=>{const{normalize:t}=e;return t(["Something went wrong"])}},u={ADD_A_NEW_APP:e=>{const{normalize:t}=e;return t(["Add a new OAuth2 application"])},APP:{CLIENT_ID:e=>{const{normalize:t}=e;return t(["Id"])},CLIENT_SECRET:e=>{const{normalize:t}=e;return t(["Secret"])},DESCRIPTION:e=>{const{normalize:t}=e;return t(["Application description"])},ISSUE_AT:e=>{const{normalize:t}=e;return t(["Issue at"])},NAME:e=>{const{normalize:t}=e;return t(["Application name"])},REDIRECT_URL:e=>{const{normalize:t}=e;return t(["Redirect URL"])},SCOPE:{LABEL:e=>{const{normalize:t}=e;return t(["Scope"])},"application:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["grants write access to application configuration."])},"profile:read_DESCRIPTION":e=>{const{normalize:t}=e;return t(["grants read access to auth endpoints."])},"profile:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["grants write access to auth endpoints."])},"users:read_DESCRIPTION":e=>{const{normalize:t}=e;return t(["grants read access to users endpoints."])},"users:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["grants write access to users endpoints."])},"workouts:read_DESCRIPTION":e=>{const{normalize:t}=e;return t(["grants read access to workouts endpoints."])},"workouts:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["grants write access to workouts endpoints."])}},URL:e=>{const{normalize:t}=e;return t(["Application URL"])}},APP_CREATED_SUCCESSFULLY:e=>{const{normalize:t}=e;return t(["Application created successfully. Make sure to copy the secret now, it won't show up again."])},APP_DELETION_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Are you sure you want to delete this app?"])},APP_REQUESTING_ACCESS:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["The application ",n(r(0))," is requesting:"])},APPS_LIST:e=>{const{normalize:t}=e;return t(["OAuth2 applications"])},AUTHORIZE_APP:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Authorize ",n(r(0))," to use your account?"])},COPY_TO_CLIPBOARD:e=>{const{normalize:t}=e;return t(["copy to the clipboard"])},DELETE_APP:e=>{const{normalize:t}=e;return t(["Delete application"])},NEW_APP:e=>{const{normalize:t}=e;return t(["Add an application"])},NO_APP:e=>{const{normalize:t}=e;return t(["Application not found!"])},NO_APPS:e=>{const{normalize:t}=e;return t(["no applications"])},NO_DESCRIPTION:e=>{const{normalize:t}=e;return t(["no description"])},REVOKE_ALL_TOKENS:e=>{const{normalize:t}=e;return t(["Revoke all tokens"])},TOKENS_REVOCATION_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Are you sure you want to revoke all tokens?"])},TOKENS_REVOKED:e=>{const{normalize:t}=e;return t(["All existing associated tokens have been revoked."])}},d={"Cycling (Sport)":{LABEL:e=>{const{normalize:t}=e;return t(["Cycling (Sport)"])}},"Cycling (Transport)":{LABEL:e=>{const{normalize:t}=e;return t(["Cycling (Transport)"])}},"Cycling (Virtual)":{LABEL:e=>{const{normalize:t}=e;return t(["Cycling (Virtual)"])}},Hiking:{LABEL:e=>{const{normalize:t}=e;return t(["Hiking"])}},"Mountain Biking":{LABEL:e=>{const{normalize:t}=e;return t(["Mountain Biking"])}},"Mountain Biking (Electric)":{LABEL:e=>{const{normalize:t}=e;return t(["Mountain Biking (Electric)"])}},Rowing:{LABEL:e=>{const{normalize:t}=e;return t(["Rowing"])}},Running:{LABEL:e=>{const{normalize:t}=e;return t(["Running"])}},"Skiing (Alpine)":{LABEL:e=>{const{normalize:t}=e;return t(["Skiing (Alpine)"])}},"Skiing (Cross Country)":{LABEL:e=>{const{normalize:t}=e;return t(["Skiing (Cross Country)"])}},Snowshoes:{LABEL:e=>{const{normalize:t}=e;return t(["Snowshoes"])}},Trail:{LABEL:e=>{const{normalize:t}=e;return t(["Trail"])}},Walking:{LABEL:e=>{const{normalize:t}=e;return t(["Walking"])}}},m={STATISTICS:e=>{const{normalize:t}=e;return t(["Statistics"])},TIME_FRAMES:{week:e=>{const{normalize:t}=e;return t(["week"])},month:e=>{const{normalize:t}=e;return t(["month"])},year:e=>{const{normalize:t}=e;return t(["year"])}}},_={ACCOUNT_CONFIRMATION_NOT_RECEIVED:e=>{const{normalize:t}=e;return t(["Didn't received instructions?"])},ACCOUNT_CONFIRMATION_SENT:e=>{const{normalize:t}=e;return t(["Check your email. A new confirmation email has been sent to the address provided."])},ADMIN:e=>{const{normalize:t}=e;return t(["Admin"])},ALREADY_HAVE_ACCOUNT:e=>{const{normalize:t}=e;return t(["Already have an account?"])},CONFIRM_ACCOUNT_DELETION:e=>{const{normalize:t}=e;return t(["Are you sure you want to delete your account? All data will be deleted, this cannot be undone"])},CURRENT_PASSWORD:e=>{const{normalize:t}=e;return t(["Current password"])},EMAIL:e=>{const{normalize:t}=e;return t(["Email"])},EMAIL_INFO:e=>{const{normalize:t}=e;return t(["Enter a valid email address."])},ENTER_PASSWORD:e=>{const{normalize:t}=e;return t(["Enter a password"])},FILTER_ON_USERNAME:e=>{const{normalize:t}=e;return t(["Filter on username"])},HIDE_PASSWORD:e=>{const{normalize:t}=e;return t(["hide password"])},INVALID_TOKEN:e=>{const{normalize:t}=e;return t(["Invalid token, please request a new password reset."])},LANGUAGE:e=>{const{normalize:t}=e;return t(["Language"])},LOG_IN:e=>{const{normalize:t}=e;return t(["log in"])},LOGIN:e=>{const{normalize:t}=e;return t(["Login"])},LOGOUT:e=>{const{normalize:t}=e;return t(["Logout"])},NEW_PASSWORD:e=>{const{normalize:t}=e;return t(["New password"])},NO_USERS_FOUND:e=>{const{normalize:t}=e;return t(["No users found."])},PASSWORD:e=>{const{normalize:t}=e;return t(["Password"])},PASSWORD_INFO:e=>{const{normalize:t}=e;return t(["At least 8 characters required."])},PASSWORD_FORGOTTEN:e=>{const{normalize:t}=e;return t(["Forgot password?"])},PASSWORD_RESET:e=>{const{normalize:t}=e;return t(["Password reset"])},PASSWORD_SENT_EMAIL_TEXT:e=>{const{normalize:t}=e;return t(["Check your email. If your address is in our database, you'll received an email with a link to reset your password."])},PASSWORD_STRENGTH:{WEAK:e=>{const{normalize:t}=e;return t(["weak"])},AVERAGE:e=>{const{normalize:t}=e;return t(["average"])},GOOD:e=>{const{normalize:t}=e;return t(["good"])},STRONG:e=>{const{normalize:t}=e;return t(["strong"])},LABEL:e=>{const{normalize:t}=e;return t(["password strength"])},SUGGESTIONS:{l33t:e=>{const{normalize:t}=e;return t(["Avoid predictable letter substitutions like ","@"," for a."])},reverseWords:e=>{const{normalize:t}=e;return t(["Avoid reversed spellings of common words."])},allUppercase:e=>{const{normalize:t}=e;return t(["Capitalize some, but not all letters."])},capitalization:e=>{const{normalize:t}=e;return t(["Capitalize more than the first letter."])},dates:e=>{const{normalize:t}=e;return t(["Avoid dates and years that are associated with you."])},recentYears:e=>{const{normalize:t}=e;return t(["Avoid recent years."])},associatedYears:e=>{const{normalize:t}=e;return t(["Avoid years that are associated with you."])},sequences:e=>{const{normalize:t}=e;return t(["Avoid common character sequences."])},repeated:e=>{const{normalize:t}=e;return t(["Avoid repeated words and characters."])},longerKeyboardPattern:e=>{const{normalize:t}=e;return t(["Use longer keyboard patterns and change typing direction multiple times."])},anotherWord:e=>{const{normalize:t}=e;return t(["Add more words that are less common."])},useWords:e=>{const{normalize:t}=e;return t(["Use multiple words, but avoid common phrases."])},noNeed:e=>{const{normalize:t}=e;return t(["You can create strong passwords without using symbols, numbers, or uppercase letters."])},pwned:e=>{const{normalize:t}=e;return t(["If you use this password elsewhere, you should change it."])}}},PASSWORD_UPDATED:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Your password have been updated. Click ",n(r(0))," to log in."])},PROFILE:{ACCOUNT_EDITION:e=>{const{normalize:t}=e;return t(["Account edition"])},ASCENT_DATA:e=>{const{normalize:t}=e;return t(["Ascent-related data (records, total)"])},BACK_TO_PROFILE:e=>{const{normalize:t}=e;return t(["Back to profile"])},BIO:e=>{const{normalize:t}=e;return t(["Bio"])},BIRTH_DATE:e=>{const{normalize:t}=e;return t(["Birth date"])},DATE_FORMAT:e=>{const{normalize:t}=e;return t(["Date display format"])},EDIT:e=>{const{normalize:t}=e;return t(["Edit profile"])},EDIT_PREFERENCES:e=>{const{normalize:t}=e;return t(["Edit preferences"])},EDIT_SPORTS_PREFERENCES:e=>{const{normalize:t}=e;return t(["Edit sports preferences"])},ERRORED_EMAIL_UPDATE:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Please ",n(r(0))," to change your email address again or contact the administrator"])},FIRST_NAME:e=>{const{normalize:t}=e;return t(["First name"])},FIRST_DAY_OF_WEEK:e=>{const{normalize:t}=e;return t(["First day of week"])},LANGUAGE:e=>{const{normalize:t}=e;return t(["Language"])},LAST_NAME:e=>{const{normalize:t}=e;return t(["Last name"])},LOCATION:e=>{const{normalize:t}=e;return t(["Location"])},MONDAY:e=>{const{normalize:t}=e;return t(["Monday"])},PICTURE:e=>{const{normalize:t}=e;return t(["Picture"])},PICTURE_EDITION:e=>{const{normalize:t}=e;return t(["Picture edition"])},PICTURE_UPDATE:e=>{const{normalize:t}=e;return t(["Update picture"])},PICTURE_REMOVE:e=>{const{normalize:t}=e;return t(["Remove picture"])},PREFERENCES_EDITION:e=>{const{normalize:t}=e;return t(["Preferences edition"])},PROFILE_EDITION:e=>{const{normalize:t}=e;return t(["Profile edition"])},REGISTRATION_DATE:e=>{const{normalize:t}=e;return t(["Registration date"])},SPORTS_EDITION:e=>{const{normalize:t}=e;return t(["Sports preferences edition"])},SUNDAY:e=>{const{normalize:t}=e;return t(["Sunday"])},TABS:{ACCOUNT:e=>{const{normalize:t}=e;return t(["account"])},APPS:e=>{const{normalize:t}=e;return t(["apps"])},PICTURE:e=>{const{normalize:t}=e;return t(["picture"])},PREFERENCES:e=>{const{normalize:t}=e;return t(["preferences"])},PROFILE:e=>{const{normalize:t}=e;return t(["profile"])},SPORTS:e=>{const{normalize:t}=e;return t(["sports"])}},SPORT:{ACTION:e=>{const{normalize:t}=e;return t(["action"])},COLOR:e=>{const{normalize:t}=e;return t(["color"])},DISABLED_BY_ADMIN:e=>{const{normalize:t}=e;return t(["disabled by admin"])},IS_ACTIVE:e=>{const{normalize:t}=e;return t(["active"])},LABEL:e=>{const{normalize:t}=e;return t(["label"])},STOPPED_SPEED_THRESHOLD:e=>{const{normalize:t}=e;return t(["stopped speed threshold"])}},SUCCESSFUL_EMAIL_UPDATE:e=>{const{normalize:t}=e;return t(["Your account has been updated successfully. Please check your email to confirm your new email address."])},SUCCESSFUL_REGISTRATION:e=>{const{normalize:t}=e;return t(["Your account has been created successfully."])},SUCCESSFUL_REGISTRATION_WITH_EMAIL:e=>{const{normalize:t}=e;return t(["A link to activate your account has been emailed to the address provided."])},SUCCESSFUL_UPDATE:e=>{const{normalize:t}=e;return t(["Your account has been updated successfully."])},UNITS:{LABEL:e=>{const{normalize:t}=e;return t(["Units for distance"])},IMPERIAL:e=>{const{normalize:t}=e;return t(["Imperial system (ft, mi)"])},METRIC:e=>{const{normalize:t}=e;return t(["Metric system (m, km)"])}},TIMEZONE:e=>{const{normalize:t}=e;return t(["Timezone"])}},REGISTER:e=>{const{normalize:t}=e;return t(["Register"])},RESENT_ACCOUNT_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Resend account confirmation email"])},REGISTER_DISABLED:e=>{const{normalize:t}=e;return t(["Sorry, registration is disabled."])},RESET_PASSWORD:e=>{const{normalize:t}=e;return t(["Reset your password"])},SHOW_PASSWORD:e=>{const{normalize:t}=e;return t(["show password"])},THIS_USER_ACCOUNT_IS_INACTIVE:e=>{const{normalize:t}=e;return t(["This user account is inactive."])},USER_PICTURE:e=>{const{normalize:t}=e;return t(["user picture"])},USERNAME:e=>{const{normalize:t}=e;return t(["Username"])},USERNAME_INFO:e=>{const{normalize:t}=e;return t(['3 to 30 characters required, only alphanumeric characters and the underscore character "_" allowed.'])}},E={ADD_WORKOUT:e=>{const{normalize:t}=e;return t(["Add a workout"])},ANALYSIS:e=>{const{normalize:t}=e;return t(["analysis"])},ASCENT:e=>{const{normalize:t}=e;return t(["ascent"])},AVE_SPEED:e=>{const{normalize:t}=e;return t(["ave. speed"])},AVERAGE_SPEED:e=>{const{normalize:t}=e;return t(["average speed"])},BACK_TO_WORKOUT:e=>{const{normalize:t}=e;return t(["back to workout"])},DATE:e=>{const{normalize:t}=e;return t(["date"])},DESCENT:e=>{const{normalize:t}=e;return t(["descent"])},DISPLAY_FILTERS:e=>{const{normalize:t}=e;return t(["display filters"])},DISTANCE:e=>{const{normalize:t}=e;return t(["distance"])},DURATION:e=>{const{normalize:t}=e;return t(["duration"])},EDIT_WORKOUT:e=>{const{normalize:t}=e;return t(["Edit the workout"])},ELEVATION:e=>{const{normalize:t}=e;return t(["elevation"])},END:e=>{const{normalize:t}=e;return t(["end"])},FROM:e=>{const{normalize:t}=e;return t(["from"])},GPX_FILE:e=>{const{normalize:t}=e;return t([".gpx file"])},HIDE_FILTERS:e=>{const{normalize:t}=e;return t(["hide filters"])},INVALID_DISTANCE:e=>{const{normalize:t}=e;return t(["The distance must be greater than 0"])},INVALID_DURATION:e=>{const{normalize:t}=e;return t(["The duration must be greater than 0 seconds"])},LATEST_WORKOUTS:e=>{const{normalize:t}=e;return t(["Latest workouts"])},LOAD_MORE_WORKOUT:e=>{const{normalize:t}=e;return t(["Load more workouts"])},MAX_ALTITUDE:e=>{const{normalize:t}=e;return t(["max. altitude"])},MAX_FILES:e=>{const{normalize:t}=e;return t(["max files"])},MAX_SIZE:e=>{const{normalize:t}=e;return t(["max size"])},MAX_SPEED:e=>{const{normalize:t}=e;return t(["max. speed"])},MIN_ALTITUDE:e=>{const{normalize:t}=e;return t(["min. altitude"])},NEXT_SEGMENT:e=>{const{normalize:t}=e;return t(["No next segment"])},NEXT_WORKOUT:e=>{const{normalize:t}=e;return t(["Next workout"])},NO_DATA_CLEANING:e=>{const{normalize:t}=e;return t(["data from gpx, without any cleaning"])},NO_FILE_PROVIDED:e=>{const{normalize:t}=e;return t(["No file provided"])},NO_FOLDER:e=>{const{normalize:t}=e;return t(["no folder inside"])},NO_MAP:e=>{const{normalize:t}=e;return t(["No map"])},NO_NEXT_SEGMENT:e=>{const{normalize:t}=e;return t(["No next segment"])},NO_NEXT_WORKOUT:e=>{const{normalize:t}=e;return t(["No next workout"])},NO_NOTES:e=>{const{normalize:t}=e;return t(["No notes"])},NO_PREVIOUS_SEGMENT:e=>{const{normalize:t}=e;return t(["No previous segment"])},NO_PREVIOUS_WORKOUT:e=>{const{normalize:t}=e;return t(["No previous workout"])},NO_RECORDS:e=>{const{normalize:t}=e;return t(["No records."])},NO_WORKOUTS:e=>{const{normalize:t}=e;return t(["No workouts."])},NOTES:e=>{const{normalize:t}=e;return t(["notes"])},PAUSES:e=>{const{normalize:t}=e;return t(["pauses"])},PREVIOUS_SEGMENT:e=>{const{normalize:t}=e;return t(["Previous segment"])},PREVIOUS_WORKOUT:e=>{const{normalize:t}=e;return t(["Previous workout"])},RECORD:e=>{const{normalize:t,plural:n}=e;return n([t(["record"]),t(["records"])])},RECORD_AS:e=>{const{normalize:t}=e;return t(["Ave. speed"])},RECORD_FD:e=>{const{normalize:t}=e;return t(["Farthest distance"])},RECORD_HA:e=>{const{normalize:t}=e;return t(["Highest ascent"])},RECORD_LD:e=>{const{normalize:t}=e;return t(["Longest duration"])},RECORD_MS:e=>{const{normalize:t}=e;return t(["Max. speed"])},REMAINING_CHARS:e=>{const{normalize:t}=e;return t(["remaining characters"])},SEGMENT:e=>{const{normalize:t,plural:n}=e;return n([t(["segment"]),t(["segments"])])},SPEED:e=>{const{normalize:t}=e;return t(["speed"])},SPORT:e=>{const{normalize:t,plural:n}=e;return n([t(["sport"]),t(["sports"])])},START:e=>{const{normalize:t}=e;return t(["start"])},START_AND_FINISH:e=>{const{normalize:t}=e;return t(["Start and finish"])},START_ELEVATION_AT_ZERO:e=>{const{normalize:t}=e;return t(["start elevation axis at zero"])},TITLE:e=>{const{normalize:t}=e;return t(["title"])},TO:e=>{const{normalize:t}=e;return t(["to"])},TOTAL_DURATION:e=>{const{normalize:t}=e;return t(["total duration"])},UPLOAD_FIRST_WORKOUT:e=>{const{normalize:t}=e;return t(["Upload one!"])},WEATHER:{HUMIDITY:e=>{const{normalize:t}=e;return t(["humidity"])},TEMPERATURE:e=>{const{normalize:t}=e;return t(["temperature"])},WIND:e=>{const{normalize:t}=e;return t(["wind"])},WIND_DIRECTIONS:{N:e=>{const{normalize:t}=e;return t(["N"])},NNE:e=>{const{normalize:t}=e;return t(["NNE"])},NE:e=>{const{normalize:t}=e;return t(["NE"])},ENE:e=>{const{normalize:t}=e;return t(["ENE"])},E:e=>{const{normalize:t}=e;return t(["E"])},ESE:e=>{const{normalize:t}=e;return t(["ESE"])},SE:e=>{const{normalize:t}=e;return t(["SE"])},SSE:e=>{const{normalize:t}=e;return t(["SSE"])},S:e=>{const{normalize:t}=e;return t(["S"])},SSW:e=>{const{normalize:t}=e;return t(["SSW"])},SW:e=>{const{normalize:t}=e;return t(["SW"])},WSW:e=>{const{normalize:t}=e;return t(["WSW"])},W:e=>{const{normalize:t}=e;return t(["W"])},WNW:e=>{const{normalize:t}=e;return t(["WNW"])},NW:e=>{const{normalize:t}=e;return t(["NW"])},NNW:e=>{const{normalize:t}=e;return t(["NNW"])}},DARK_SKY:{"clear-day":e=>{const{normalize:t}=e;return t(["clear day"])},"clear-night":e=>{const{normalize:t}=e;return t(["clear night"])},cloudy:e=>{const{normalize:t}=e;return t(["cloudy"])},fog:e=>{const{normalize:t}=e;return t(["fog"])},"partly-cloudy-day":e=>{const{normalize:t}=e;return t(["partly cloudy day"])},"partly-cloudy-night":e=>{const{normalize:t}=e;return t(["partly cloudy night"])},rain:e=>{const{normalize:t}=e;return t(["rain"])},sleet:e=>{const{normalize:t}=e;return t(["sleet"])},snow:e=>{const{normalize:t}=e;return t(["snow"])},wind:e=>{const{normalize:t}=e;return t(["wind"])}}},WITH_GPX:e=>{const{normalize:t}=e;return t(["with .gpx file"])},WITHOUT_GPX:e=>{const{normalize:t}=e;return t(["without .gpx file"])},WORKOUT:e=>{const{normalize:t,plural:n}=e;return n([t(["workout"]),t(["workouts"])])},WORKOUT_DATE:e=>{const{normalize:t}=e;return t(["workout date"])},WORKOUT_DELETION_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Are you sure you want to delete this workout?"])},ZIP_ARCHIVE:e=>{const{normalize:t}=e;return t([".zip file"])},ZIP_ARCHIVE_DESCRIPTION:e=>{const{normalize:t}=e;return t(["or .zip file containing .gpx files"])}},S={about:r,admin:a,api:o,buttons:s,common:i,dashboard:l,error:c,oauth2:u,sports:d,statistics:m,user:_,workouts:E}},6625:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return S}});var r={CONTACT_ADMIN:e=>{const{normalize:t}=e;return t(["Contacter l'administrateur"])},FITTRACKEE_DESCRIPTION:e=>{const{normalize:t}=e;return t(["FitTrackee est un tracker d'activités sportives (en extérieur)."])},FITTRACKEE_LICENSE:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["sous licence ",n(r(0))," (en) "])},SOURCE_CODE:e=>{const{normalize:t}=e;return t(["Code source (en)"])}},a={ACTION:e=>{const{normalize:t}=e;return t(["Action"])},ACTIVATE_USER_ACCOUNT:e=>{const{normalize:t}=e;return t(["Activer le compte"])},ACTIVE:e=>{const{normalize:t}=e;return t(["Actif"])},ADMIN_RIGHTS_DELETE_USER_ACCOUNT:e=>{const{normalize:t}=e;return t(["Ajouter/retirer des droits d'administration, supprimer des comptes utilisateurs."])},ADMIN:e=>{const{normalize:t}=e;return t(["Admin"])},ADMINISTRATION:e=>{const{normalize:t}=e;return t(["Administration"])},APPLICATION:e=>{const{normalize:t}=e;return t(["Application"])},APP_CONFIG:{ADMIN_CONTACT:e=>{const{normalize:t}=e;return t(["Email de l'administrateur pour contact "])},MAX_USERS_LABEL:e=>{const{normalize:t}=e;return t(["Nombre maximum d'utilisateurs actifs "])},MAX_USERS_HELP:e=>{const{normalize:t}=e;return t(["Si égal à 0, pas limite d'inscription"])},MAX_FILES_IN_ZIP_LABEL:e=>{const{normalize:t}=e;return t(["Nombre max. de fichiers dans une archive zip "])},NO_CONTACT_EMAIL:e=>{const{normalize:t}=e;return t(["non renseigné"])},SINGLE_UPLOAD_MAX_SIZE_LABEL:e=>{const{normalize:t}=e;return t(["Taille max. des fichiers (en Mo) "])},TITLE:e=>{const{normalize:t}=e;return t(["Configuration de l'application"])},ZIP_UPLOAD_MAX_SIZE_LABEL:e=>{const{normalize:t}=e;return t(["Taille max. des archives zip (en Mo) "])}},BACK_TO_ADMIN:e=>{const{normalize:t}=e;return t(["Revenir à l'admin"])},CONFIRM_USER_ACCOUNT_DELETION:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Êtes-vous sûr de vouloir supprimer le compte de l'utilisateur ",n(r(0))," ? Toutes les données seront définitivement."])},CONFIRM_USER_PASSWORD_RESET:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Êtes-vous sûr de vouloir réinitialiser le mot de passe de l'utilisateur ",n(r(0))," ?"])},CURRENT_EMAIL:e=>{const{normalize:t}=e;return t(["Adresse email actuelle"])},DELETE_USER:e=>{const{normalize:t}=e;return t(["Supprimer l'utilisateur"])},EMAIL_SENDING_DISABLED:e=>{const{normalize:t}=e;return t(["L'envoi d'emails est désactivé."])},ENABLE_DISABLE_SPORTS:e=>{const{normalize:t}=e;return t(["Activer/désactiver des sports."])},NEW_EMAIL:e=>{const{normalize:t}=e;return t(["Nouvelle adresse email"])},PASSWORD_RESET_SUCCESSFUL:e=>{const{normalize:t}=e;return t(["Le mot de passe a été réinitialisé."])},REGISTRATION_DISABLED:e=>{const{normalize:t}=e;return t(["Les inscriptions sont actuellement désactivées."])},REGISTRATION_ENABLED:e=>{const{normalize:t}=e;return t(["Les inscriptions sont actuellement activées."])},RESET_USER_PASSWORD:e=>{const{normalize:t}=e;return t(["Réinit. le mot de passe"])},SPORTS:{TABLE:{ACTIVE:e=>{const{normalize:t}=e;return t(["Actif"])},HAS_WORKOUTS:e=>{const{normalize:t}=e;return t(["des séances existent"])},IMAGE:e=>{const{normalize:t}=e;return t(["Image"])},LABEL:e=>{const{normalize:t}=e;return t(["Label"])}},TITLE:e=>{const{normalize:t}=e;return t(["Administration - Sports"])}},UPDATE_APPLICATION_DESCRIPTION:e=>{const{normalize:t}=e;return t(["Configurer l'application (nombre maximum d'utilisateurs inscrits, taille maximale des fichers)."])},UPDATE_USER_EMAIL:e=>{const{normalize:t}=e;return t(["Changer l'email"])},USER:e=>{const{normalize:t,plural:n}=e;return n([t(["utilisateur"]),t(["utilisateurs"])])},USER_EMAIL_UPDATE_SUCCESSFUL:e=>{const{normalize:t}=e;return t(["L'adresse email a été mise à jour."])},USERS:{TABLE:{ADD_ADMIN_RIGHTS:e=>{const{normalize:t}=e;return t(["Ajouter les droits d'admin"])},REMOVE_ADMIN_RIGHTS:e=>{const{normalize:t}=e;return t(["Retirer les droits d'admin"])}},SELECTS:{ORDER_BY:{ADMIN:e=>{const{normalize:t}=e;return t(["status administrateur"])},CREATED_AT:e=>{const{normalize:t}=e;return t(["date d'inscription"])},IS_ACTIVE:e=>{const{normalize:t}=e;return t(["statut du compte"])},USERNAME:e=>{const{normalize:t}=e;return t(["nom d'utilisateur"])},WORKOUTS_COUNT:e=>{const{normalize:t}=e;return t(["nombre de séances"])}}}}},o={ERROR:{UNKNOWN:e=>{const{normalize:t}=e;return t(["Erreur. Veuillez réessayer ou contacter l'administrateur."])},"at least one file in zip archive exceeds size limit, please check the archive":e=>{const{normalize:t}=e;return t(["Au moins un fichier de l'archive zip dépasse la taille maximale, veuillez vérifier l'archive."])},"email: valid email must be provided":e=>{const{normalize:t}=e;return t(["Courriel : une adresse électronique valide doit être fournie."])},"error during gpx processing":e=>{const{normalize:t}=e;return t(["Erreur lors du traitement du fichier gpx."])},"error during gpx file parsing":e=>{const{normalize:t}=e;return t(["Erreur lors de l'analyse du fichier."])},"error on getting configuration":e=>{const{normalize:t}=e;return t(["Erreur lors de la récupération de la configuration."])},"error when updating configuration":e=>{const{normalize:t}=e;return t(["Erreur lors de la mise à jour de la configuration"])},"error, please try again or contact the administrator":e=>{const{normalize:t}=e;return t(["Erreur, veuillez réessayer ou contacter l'administrateur."])},"error, registration is disabled":e=>{const{normalize:t}=e;return t(["Erreur, les inscriptions sont désactivées."])},"file extension not allowed":e=>{const{normalize:t}=e;return t(["Extension de fichier non autorisée."])},"file size is greater than the allowed size":e=>{const{normalize:t}=e;return t(["La taille du fichier est supérieure à la limite autorisée."])},"invalid credentials":e=>{const{normalize:t}=e;return t(["Identifiants invalides."])},"invalid payload":e=>{const{normalize:t}=e;return t(["Données fournies incorrectes."])},"invalid token, please log in again":e=>{const{normalize:t}=e;return t(["Jeton de connexion invalide, merci de vous reconnecter."])},"invalid token, please request a new token":e=>{const{normalize:t}=e;return t(["Jeton de connexion, merci de vous reconnecter."])},"no file part":e=>{const{normalize:t}=e;return t(["Pas de fichier fourni."])},"no selected file":e=>{const{normalize:t}=e;return t(["Pas de fichier sélectionné."])},"Network Error":e=>{const{normalize:t}=e;return t(["Erreur réseau."])},"new email must be different than curent email":e=>{const{normalize:t}=e;return t(["La nouvelle addresse électronique doit être differente de l'adresse actuelle"])},"password: password and password confirmation do not match":e=>{const{normalize:t}=e;return t(["Mot de passe : les mots de passe saisis sont différents."])},"provide a valid auth token":e=>{const{normalize:t}=e;return t(["Merci de fournir un jeton de connexion valide."])},"sport does not exist":e=>{const{normalize:t}=e;return t(["Ce sport n'existe pas."])},"signature expired, please log in again":e=>{const{normalize:t}=e;return t(["Signature expirée. Merci de vous reconnecter."])},"sorry, that username is already taken":e=>{const{normalize:t}=e;return t(["Désolé, ce nom d'utilisateur est déjà utilisé."])},"successfully registered":e=>{const{normalize:t}=e;return t(["Inscription validée."])},"the number of files in the archive exceeds the limit":e=>{const{normalize:t}=e;return t(["Le nombre de fichiers de l'archive dépasse la limite."])},"user does not exist":e=>{const{normalize:t}=e;return t(["L'utilisateur n'existe pas."])},"valid email must be provided for admin contact":e=>{const{normalize:t}=e;return t(["Une adresse électronique doit être fournie pour le contact de l'administrateur"])},"you can not delete your account, no other user has admin rights":e=>{const{normalize:t}=e;return t(["Vous ne pouvez pas supprimer votre compte, aucun autre utilisateur n'a des droits d'administration."])},"you do not have permissions":e=>{const{normalize:t}=e;return t(["Vous n'avez pas les permissions nécessaires."])}},PAGINATION:{PREVIOUS:e=>{const{normalize:t}=e;return t(["précédent"])},NEXT:e=>{const{normalize:t}=e;return t(["suivant"])}}},s={"ACCOUNT-CONFIRMATION-RESEND":e=>{const{normalize:t}=e;return t(["Renvoyer le message de confirmation"])},AUTHORIZE:e=>{const{normalize:t}=e;return t(["Autoriser"])},BACK:e=>{const{normalize:t}=e;return t(["Retour"])},CANCEL:e=>{const{normalize:t}=e;return t(["Annuler"])},CLEAR_FILTER:e=>{const{normalize:t}=e;return t(["Réinitialiser"])},DELETE_MY_ACCOUNT:e=>{const{normalize:t}=e;return t(["Supprimer mon compte"])},DISABLE:e=>{const{normalize:t}=e;return t(["Désactiver"])},EDIT:e=>{const{normalize:t}=e;return t(["Modifier"])},ENABLE:e=>{const{normalize:t}=e;return t(["Activer"])},FILTER:e=>{const{normalize:t}=e;return t(["Filtrer"])},LOGIN:e=>{const{normalize:t}=e;return t(["Se connecter"])},NO:e=>{const{normalize:t}=e;return t(["Non"])},REGISTER:e=>{const{normalize:t}=e;return t(["S'inscrire"])},RESET:e=>{const{normalize:t}=e;return t(["Réinit."])},SUBMIT:e=>{const{normalize:t}=e;return t(["Valider"])},YES:e=>{const{normalize:t}=e;return t(["Oui"])}},i={ABOUT:e=>{const{normalize:t}=e;return t(["à propos"])},CONFIRMATION:e=>{const{normalize:t}=e;return t(["Confirmation"])},CONTACT:e=>{const{normalize:t}=e;return t(["contact"])},DAY:e=>{const{normalize:t,plural:n}=e;return n([t(["jour"]),t(["jours"])])},DISPLAYED:e=>{const{normalize:t}=e;return t(["Affiché"])},DOCUMENTATION:e=>{const{normalize:t}=e;return t(["documentation (en)"])},HERE:e=>{const{normalize:t}=e;return t(["ici"])},HIDDEN:e=>{const{normalize:t}=e;return t(["Masqué"])},HOME:e=>{const{normalize:t}=e;return t(["Accueil"])},SELECTS:{ORDER_BY:{LABEL:e=>{const{normalize:t}=e;return t(["trier par "])}},ORDER:{LABEL:e=>{const{normalize:t}=e;return t(["tri"])},ASC:e=>{const{normalize:t}=e;return t(["ascendant"])},DESC:e=>{const{normalize:t}=e;return t(["descendant"])}},PER_PAGE:{LABEL:e=>{const{normalize:t}=e;return t(["par page"])}}},TOTAL:e=>{const{normalize:t}=e;return t(["Total"])}},l={DASHBOARD:e=>{const{normalize:t}=e;return t(["Tableau de bord"])},THIS_MONTH:e=>{const{normalize:t}=e;return t(["Ce mois-ci"])}},c={UNKNOWN:e=>{const{normalize:t}=e;return t(["Erreur. Veuillez réessayer ou contacter l'administrateur."])},APP_ERROR:e=>{const{normalize:t}=e;return t(["L'application semble rencontrer quelques problèmes.
Veuillez réessayer plus tard ou contacter l'administrateur."])},NOT_FOUND:{PAGE:e=>{const{normalize:t}=e;return t(["Page introuvable"])},WORKOUT:e=>{const{normalize:t}=e;return t(["Séance introuvable"])}},SOMETHING_WRONG:e=>{const{normalize:t}=e;return t(["Une erreur s'est produite"])}},u={ADD_A_NEW_APP:e=>{const{normalize:t}=e;return t(["Ajouter une nouvelle application OAuth2"])},APP:{CLIENT_ID:e=>{const{normalize:t}=e;return t(["Identifiant"])},CLIENT_SECRET:e=>{const{normalize:t}=e;return t(["Secret"])},DESCRIPTION:e=>{const{normalize:t}=e;return t(["Description de l'application"])},ISSUE_AT:e=>{const{normalize:t}=e;return t(["Créée le"])},NAME:e=>{const{normalize:t}=e;return t(["Nom de l'application"])},REDIRECT_URL:e=>{const{normalize:t}=e;return t(["URL de redirection"])},SCOPE:{LABEL:e=>{const{normalize:t}=e;return t(["Scope"])},"application:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["donne les droits en écriture à la configuration de l'application."])},"profile:read_DESCRIPTION":e=>{const{normalize:t}=e;return t(["donne les droits en lecture aux routes auth."])},"profile:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["donne les droits en écriture aux routes auth."])},"users:read_DESCRIPTION":e=>{const{normalize:t}=e;return t(["donne les droits en lecture aux routes users."])},"users:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["donne les droits en écriture aux routes users."])},"workouts:read_DESCRIPTION":e=>{const{normalize:t}=e;return t(["donne les droits en lecture aux routes workouts."])},"workouts:write_DESCRIPTION":e=>{const{normalize:t}=e;return t(["donne les droits en écriture aux routes workouts."])}},URL:e=>{const{normalize:t}=e;return t(["URL de l'application"])}},APP_CREATED_SUCCESSFULLY:e=>{const{normalize:t}=e;return t(["Application créée avec succès. Assurez-vous de copier le secret maintenant, il ne s'affichera plus."])},APP_DELETION_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Êtes-vous sûr de vouloir supprimer cette application ?"])},APP_REQUESTING_ACCESS:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["L'application ",n(r(0))," demande les accès suivants :"])},APPS_LIST:e=>{const{normalize:t}=e;return t(["Applications OAuth2"])},AUTHORIZE_APP:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Autoriser ",n(r(0))," à utiliser votre compte ?"])},COPY_TO_CLIPBOARD:e=>{const{normalize:t}=e;return t(["copier dans le presse papier"])},DELETE_APP:e=>{const{normalize:t}=e;return t(["Supprimer l'application"])},NEW_APP:e=>{const{normalize:t}=e;return t(["Ajouter une application"])},NO_APP:e=>{const{normalize:t}=e;return t(["Application introuvable !"])},NO_APPS:e=>{const{normalize:t}=e;return t(["pas de applications"])},NO_DESCRIPTION:e=>{const{normalize:t}=e;return t(["pas de description"])},REVOKE_ALL_TOKENS:e=>{const{normalize:t}=e;return t(["Révoquer tous les jetons"])},TOKENS_REVOCATION_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Êtes-vous sûr de vouloir révoquer tous les jetons ?"])},TOKENS_REVOKED:e=>{const{normalize:t}=e;return t(["Tous les jetons associés existants ont été révoqués."])}},d={"Cycling (Sport)":{LABEL:e=>{const{normalize:t}=e;return t(["Vélo (Sport)"])}},"Cycling (Transport)":{LABEL:e=>{const{normalize:t}=e;return t(["Vélo (Transport)"])}},"Cycling (Virtual)":{LABEL:e=>{const{normalize:t}=e;return t(["Vélo (Virtuel)"])}},Hiking:{LABEL:e=>{const{normalize:t}=e;return t(["Randonnée"])}},"Mountain Biking":{LABEL:e=>{const{normalize:t}=e;return t(["VTT"])}},"Mountain Biking (Electric)":{LABEL:e=>{const{normalize:t}=e;return t(["VTT (Électrique)"])}},Rowing:{LABEL:e=>{const{normalize:t}=e;return t(["Aviron"])}},Running:{LABEL:e=>{const{normalize:t}=e;return t(["Course"])}},"Skiing (Alpine)":{LABEL:e=>{const{normalize:t}=e;return t(["Ski (Alpin)"])}},"Skiing (Cross Country)":{LABEL:e=>{const{normalize:t}=e;return t(["Ski (Randonnée)"])}},Snowshoes:{LABEL:e=>{const{normalize:t}=e;return t(["Raquettes"])}},Trail:{LABEL:e=>{const{normalize:t}=e;return t(["Trail"])}},Walking:{LABEL:e=>{const{normalize:t}=e;return t(["Marche"])}}},m={STATISTICS:e=>{const{normalize:t}=e;return t(["Statistiques"])},TIME_FRAMES:{week:e=>{const{normalize:t}=e;return t(["semaine"])},month:e=>{const{normalize:t}=e;return t(["mois"])},year:e=>{const{normalize:t}=e;return t(["année"])}}},_={ACCOUNT_CONFIRMATION_NOT_RECEIVED:e=>{const{normalize:t}=e;return t(["Vous n'avez pas reçu les instructions ?"])},ACCOUNT_CONFIRMATION_SENT:e=>{const{normalize:t}=e;return t(["Vérifiez vos courriels. Un nouveau courriel de confirmation a été envoyé à l'adresse électronique fournie."])},ADMIN:e=>{const{normalize:t}=e;return t(["Admin"])},ALREADY_HAVE_ACCOUNT:e=>{const{normalize:t}=e;return t(["Vous avez déjà un compte ?"])},CONFIRM_ACCOUNT_DELETION:e=>{const{normalize:t}=e;return t(["Êtes-vous sûr·e de vouloir supprimer votre compte ? Toutes les données seront définitivement effacés"])},CURRENT_PASSWORD:e=>{const{normalize:t}=e;return t(["Mot de passe actuel"])},EMAIL:e=>{const{normalize:t}=e;return t(["Courriel"])},EMAIL_INFO:e=>{const{normalize:t}=e;return t(["Saisissez une adresse électronique valide."])},ENTER_PASSWORD:e=>{const{normalize:t}=e;return t(["Saisissez un mot de passe"])},FILTER_ON_USERNAME:e=>{const{normalize:t}=e;return t(["Filtrer sur le nom d'utilisateur"])},HIDE_PASSWORD:e=>{const{normalize:t}=e;return t(["masquer le mot de passe"])},INVALID_TOKEN:e=>{const{normalize:t}=e;return t(["Jeton invalide, veuillez demander une nouvelle réinitialisation de mot de passe."])},LANGUAGE:e=>{const{normalize:t}=e;return t(["Langue"])},LOG_IN:e=>{const{normalize:t}=e;return t(["connecter"])},LOGIN:e=>{const{normalize:t}=e;return t(["Se connecter"])},LOGOUT:e=>{const{normalize:t}=e;return t(["Se déconnecter"])},NEW_PASSWORD:e=>{const{normalize:t}=e;return t(["Nouveau mot de passe"])},NO_USERS_FOUND:e=>{const{normalize:t}=e;return t(["Aucun utilisateur trouvé."])},PASSWORD:e=>{const{normalize:t}=e;return t(["Mot de passe"])},PASSWORD_INFO:e=>{const{normalize:t}=e;return t(["8 caractères minimum."])},PASSWORD_FORGOTTEN:e=>{const{normalize:t}=e;return t(["Mot de passe oublié ?"])},PASSWORD_RESET:e=>{const{normalize:t}=e;return t(["Réinitialisation du mot de passe"])},PASSWORD_SENT_EMAIL_TEXT:e=>{const{normalize:t}=e;return t(["Vérifiez vos courriels. Si vote adresse est dans notre base de données, vous recevrez un courriel avec un lien pour réinitialiser votre mot de passe."])},PASSWORD_STRENGTH:{WEAK:e=>{const{normalize:t}=e;return t(["faible"])},AVERAGE:e=>{const{normalize:t}=e;return t(["moyenne"])},GOOD:e=>{const{normalize:t}=e;return t(["bonne"])},STRONG:e=>{const{normalize:t}=e;return t(["forte"])},LABEL:e=>{const{normalize:t}=e;return t(["robustesse du mot de passe"])},SUGGESTIONS:{l33t:e=>{const{normalize:t}=e;return t(["Évitez les substitutions de lettres prévisibles comme ","@"," pour a."])},reverseWords:e=>{const{normalize:t}=e;return t(["Évitez les orthographes inversées des mots courants."])},allUppercase:e=>{const{normalize:t}=e;return t(["Mettez quelques lettres en majuscules, mais pas toutes."])},capitalization:e=>{const{normalize:t}=e;return t(["Capitalisez mais pas seulement la première lettre."])},dates:e=>{const{normalize:t}=e;return t(["Évitez les dates et les années qui vous sont associées. (ex : date ou année de naissance)."])},recentYears:e=>{const{normalize:t}=e;return t(["Évitez les dernières années."])},associatedYears:e=>{const{normalize:t}=e;return t(["Évitez les années qui vous sont associées. (ex : date de naissance)."])},sequences:e=>{const{normalize:t}=e;return t(["Évitez les séquences de caractères courantes."])},repeated:e=>{const{normalize:t}=e;return t(["Évitez les mots et les caractères répétés."])},longerKeyboardPattern:e=>{const{normalize:t}=e;return t(["Utilisez des motifs de clavier plus longs et changez de sens de frappe plusieurs fois."])},anotherWord:e=>{const{normalize:t}=e;return t(["Ajoutez des mots moins courants."])},useWords:e=>{const{normalize:t}=e;return t(["Utilisez plusieurs mots, mais évitez les phrases courantes."])},noNeed:e=>{const{normalize:t}=e;return t(["Vous pouvez créer des mots de passe forts sans utiliser de symboles, de chiffres ou de lettres majuscules."])},pwned:e=>{const{normalize:t}=e;return t(["Si vous utilisez ce mot de passe ailleurs, vous devriez le modifier."])}}},PASSWORD_UPDATED:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Votre mot de passe a été mis à jour. Cliquez ",n(r(0))," pour vous connecter."])},PROFILE:{ACCOUNT_EDITION:e=>{const{normalize:t}=e;return t(["Mise à jour du compte"])},ASCENT_DATA:e=>{const{normalize:t}=e;return t(["Données relatives au dénivelé positif (records, total)"])},BACK_TO_PROFILE:e=>{const{normalize:t}=e;return t(["Revenir au profil"])},BIO:e=>{const{normalize:t}=e;return t(["Bio"])},BIRTH_DATE:e=>{const{normalize:t}=e;return t(["Date de naissance"])},DATE_FORMAT:e=>{const{normalize:t}=e;return t(["Format d'affichage de la date"])},EDIT:e=>{const{normalize:t}=e;return t(["Modifier le profil"])},EDIT_PREFERENCES:e=>{const{normalize:t}=e;return t(["Modifier les préférences"])},EDIT_SPORTS_PREFERENCES:e=>{const{normalize:t}=e;return t(["Modifier les préférences des sports"])},ERRORED_EMAIL_UPDATE:e=>{const{normalize:t,interpolate:n,list:r}=e;return t(["Veuillez vous ",n(r(0))," pour changer de nouveau votre adresse électronique ou contacter l'administrateur"])},FIRST_DAY_OF_WEEK:e=>{const{normalize:t}=e;return t(["Premier jour de la semaine"])},FIRST_NAME:e=>{const{normalize:t}=e;return t(["Prénom"])},LANGUAGE:e=>{const{normalize:t}=e;return t(["Langue"])},LAST_NAME:e=>{const{normalize:t}=e;return t(["Nom"])},LOCATION:e=>{const{normalize:t}=e;return t(["Lieu"])},MONDAY:e=>{const{normalize:t}=e;return t(["Lundi"])},PICTURE:e=>{const{normalize:t}=e;return t(["Image de profil"])},PICTURE_EDITION:e=>{const{normalize:t}=e;return t(["Mise à jour de l'image de profil"])},PICTURE_UPDATE:e=>{const{normalize:t}=e;return t(["Mettre à jour l'image"])},PICTURE_REMOVE:e=>{const{normalize:t}=e;return t(["Supprimer"])},PREFERENCES_EDITION:e=>{const{normalize:t}=e;return t(["Mise à jour des préférences"])},PROFILE_EDITION:e=>{const{normalize:t}=e;return t(["Mise à jour du profil"])},REGISTRATION_DATE:e=>{const{normalize:t}=e;return t(["Date d'inscription"])},SPORTS_EDITION:e=>{const{normalize:t}=e;return t(["Mise à jour des préférences des sports"])},SUNDAY:e=>{const{normalize:t}=e;return t(["Dimanche"])},TABS:{ACCOUNT:e=>{const{normalize:t}=e;return t(["compte"])},APPS:e=>{const{normalize:t}=e;return t(["apps"])},PICTURE:e=>{const{normalize:t}=e;return t(["image"])},PREFERENCES:e=>{const{normalize:t}=e;return t(["préférences"])},PROFILE:e=>{const{normalize:t}=e;return t(["profil"])},SPORTS:e=>{const{normalize:t}=e;return t(["sports"])}},UNITS:{LABEL:e=>{const{normalize:t}=e;return t(["Unités pour les distances"])},IMPERIAL:e=>{const{normalize:t}=e;return t(["Système impérial (ft, mi)"])},METRIC:e=>{const{normalize:t}=e;return t(["Système métrique (m, km)"])}},SPORT:{ACTION:e=>{const{normalize:t}=e;return t(["action"])},COLOR:e=>{const{normalize:t}=e;return t(["couleur"])},DISABLED_BY_ADMIN:e=>{const{normalize:t}=e;return t(["désactivé par l'administrateur"])},IS_ACTIVE:e=>{const{normalize:t}=e;return t(["actif"])},LABEL:e=>{const{normalize:t}=e;return t(["label"])},STOPPED_SPEED_THRESHOLD:e=>{const{normalize:t}=e;return t(["seuil de vitesse arrêtée"])}},SUCCESSFUL_EMAIL_UPDATE:e=>{const{normalize:t}=e;return t(["Votre compte a été modifié avec succès. Veuillez vérifier votre boîte de réception pour valider votre nouvelle adresse électronique."])},SUCCESSFUL_REGISTRATION:e=>{const{normalize:t}=e;return t(["Votre compte a été créé avec succès."])},SUCCESSFUL_REGISTRATION_WITH_EMAIL:e=>{const{normalize:t}=e;return t(["Un lien pour activer votre compte a été envoyé à l'adresse électronique fournie."])},SUCCESSFUL_UPDATE:e=>{const{normalize:t}=e;return t(["Votre compte a été modifié avec succès."])},TIMEZONE:e=>{const{normalize:t}=e;return t(["Fuseau horaire"])}},REGISTER:e=>{const{normalize:t}=e;return t(["S'inscrire"])},REGISTER_DISABLED:e=>{const{normalize:t}=e;return t(["Désolé, les inscriptions sont désactivées."])},RESENT_ACCOUNT_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Envoyer à nouveau le courriel de confirmation de compte"])},RESET_PASSWORD:e=>{const{normalize:t}=e;return t(["Réinitialiser votre mot de passe"])},SHOW_PASSWORD:e=>{const{normalize:t}=e;return t(["afficher le mot de passe"])},THIS_USER_ACCOUNT_IS_INACTIVE:e=>{const{normalize:t}=e;return t(["Le compte de cet utilisateur est inactif."])},USER_PICTURE:e=>{const{normalize:t}=e;return t(["photo de l'utilisateur"])},USERNAME:e=>{const{normalize:t}=e;return t(["Nom d'utilisateur"])},USERNAME_INFO:e=>{const{normalize:t}=e;return t(["3 à 30 caractères requis, seuls les caractères alphanumériques et le caractère _ sont autorisés."])}},E={ADD_WORKOUT:e=>{const{normalize:t}=e;return t(["Ajouter une séance"])},ANALYSIS:e=>{const{normalize:t}=e;return t(["analyse"])},ASCENT:e=>{const{normalize:t}=e;return t(["dénivelé positif"])},AVERAGE_SPEED:e=>{const{normalize:t}=e;return t(["vitesse moyenne"])},AVE_SPEED:e=>{const{normalize:t}=e;return t(["vitesse moy."])},BACK_TO_WORKOUT:e=>{const{normalize:t}=e;return t(["revenir à la séance"])},DATE:e=>{const{normalize:t}=e;return t(["date"])},DESCENT:e=>{const{normalize:t}=e;return t(["dénivelé négatif"])},DISPLAY_FILTERS:e=>{const{normalize:t}=e;return t(["afficher les filtres"])},DISTANCE:e=>{const{normalize:t}=e;return t(["distance"])},DURATION:e=>{const{normalize:t}=e;return t(["durée"])},EDIT_WORKOUT:e=>{const{normalize:t}=e;return t(["Modifier la séance"])},ELEVATION:e=>{const{normalize:t}=e;return t(["altitude"])},END:e=>{const{normalize:t}=e;return t(["fin"])},FROM:e=>{const{normalize:t}=e;return t(["à partir de"])},GPX_FILE:e=>{const{normalize:t}=e;return t(["fichier .gpx"])},HIDE_FILTERS:e=>{const{normalize:t}=e;return t(["masquer les filtres"])},INVALID_DISTANCE:e=>{const{normalize:t}=e;return t(["La distance doit être supérieure à 0"])},INVALID_DURATION:e=>{const{normalize:t}=e;return t(["La durée doit être supérieure à 0 secondes"])},LATEST_WORKOUTS:e=>{const{normalize:t}=e;return t(["Séances récentes"])},LOAD_MORE_WORKOUT:e=>{const{normalize:t}=e;return t(["Charger les séances suivantes"])},MAX_ALTITUDE:e=>{const{normalize:t}=e;return t(["altitude max"])},MAX_FILES:e=>{const{normalize:t}=e;return t(["fichiers max. "])},MAX_SIZE:e=>{const{normalize:t}=e;return t(["taille max. "])},MAX_SPEED:e=>{const{normalize:t}=e;return t(["vitesse max"])},MIN_ALTITUDE:e=>{const{normalize:t}=e;return t(["altitude min"])},NEXT_SEGMENT:e=>{const{normalize:t}=e;return t(["Segment suivant"])},NEXT_WORKOUT:e=>{const{normalize:t}=e;return t(["Séance suivante"])},NO_DATA_CLEANING:e=>{const{normalize:t}=e;return t(["données issues du fichier gpx, sans correction"])},NO_FILE_PROVIDED:e=>{const{normalize:t}=e;return t(["Pas de fichier fourni"])},NO_FOLDER:e=>{const{normalize:t}=e;return t(["pas de répertoire"])},NO_MAP:e=>{const{normalize:t}=e;return t(["Pas de carte"])},NO_NEXT_SEGMENT:e=>{const{normalize:t}=e;return t(["Pas de segment suivant"])},NO_NEXT_WORKOUT:e=>{const{normalize:t}=e;return t(["Pas de séance suivante"])},NO_NOTES:e=>{const{normalize:t}=e;return t(["Pas de notes"])},NO_PREVIOUS_SEGMENT:e=>{const{normalize:t}=e;return t(["Pas de segment précédent"])},NO_PREVIOUS_WORKOUT:e=>{const{normalize:t}=e;return t(["Pas de séance précédente"])},NO_RECORDS:e=>{const{normalize:t}=e;return t(["Pas de records."])},NO_WORKOUTS:e=>{const{normalize:t}=e;return t(["Pas de séances."])},NOTES:e=>{const{normalize:t}=e;return t(["notes"])},PAUSES:e=>{const{normalize:t}=e;return t(["pauses"])},PREVIOUS_SEGMENT:e=>{const{normalize:t}=e;return t(["Segment précédent"])},PREVIOUS_WORKOUT:e=>{const{normalize:t}=e;return t(["Séance précédente"])},RECORD:e=>{const{normalize:t,plural:n}=e;return n([t(["record"]),t(["records"])])},RECORD_AS:e=>{const{normalize:t}=e;return t(["Vitesse moy."])},RECORD_FD:e=>{const{normalize:t}=e;return t(["Distance la + longue"])},RECORD_HA:e=>{const{normalize:t}=e;return t(["Dénivelé positif le + élevé"])},RECORD_LD:e=>{const{normalize:t}=e;return t(["Durée la + longue"])},RECORD_MS:e=>{const{normalize:t}=e;return t(["Vitesse max."])},REMAINING_CHARS:e=>{const{normalize:t}=e;return t(["nombre de caractères restants "])},SEGMENT:e=>{const{normalize:t,plural:n}=e;return n([t(["segment"]),t(["segments"])])},SPEED:e=>{const{normalize:t}=e;return t(["vitesse"])},SPORT:e=>{const{normalize:t,plural:n}=e;return n([t(["sport"]),t(["sports"])])},START:e=>{const{normalize:t}=e;return t(["début"])},START_AND_FINISH:e=>{const{normalize:t}=e;return t(["Départ et arrivée"])},START_ELEVATION_AT_ZERO:e=>{const{normalize:t}=e;return t(["démarrer l'axe de l'altitude à 0"])},TITLE:e=>{const{normalize:t}=e;return t(["titre"])},TO:e=>{const{normalize:t}=e;return t(["jusqu'au"])},TOTAL_DURATION:e=>{const{normalize:t}=e;return t(["durée totale"])},UPLOAD_FIRST_WORKOUT:e=>{const{normalize:t}=e;return t(["Ajoutez votre première séance !"])},WEATHER:{HUMIDITY:e=>{const{normalize:t}=e;return t(["humidité"])},TEMPERATURE:e=>{const{normalize:t}=e;return t(["température"])},WIND:e=>{const{normalize:t}=e;return t(["vent"])},WIND_DIRECTIONS:{N:e=>{const{normalize:t}=e;return t(["N"])},NNE:e=>{const{normalize:t}=e;return t(["NNE"])},NE:e=>{const{normalize:t}=e;return t(["NE"])},ENE:e=>{const{normalize:t}=e;return t(["ENE"])},E:e=>{const{normalize:t}=e;return t(["E"])},ESE:e=>{const{normalize:t}=e;return t(["ESE"])},SE:e=>{const{normalize:t}=e;return t(["SE"])},SSE:e=>{const{normalize:t}=e;return t(["SSE"])},S:e=>{const{normalize:t}=e;return t(["S"])},SSW:e=>{const{normalize:t}=e;return t(["SSO"])},SW:e=>{const{normalize:t}=e;return t(["SO"])},WSW:e=>{const{normalize:t}=e;return t(["OSO"])},W:e=>{const{normalize:t}=e;return t(["O"])},WNW:e=>{const{normalize:t}=e;return t(["ONO"])},NW:e=>{const{normalize:t}=e;return t(["NO"])},NNW:e=>{const{normalize:t}=e;return t(["NNO"])}},DARK_SKY:{"clear-day":e=>{const{normalize:t}=e;return t(["ensoleillé"])},"clear-night":e=>{const{normalize:t}=e;return t(["nuit claire"])},cloudy:e=>{const{normalize:t}=e;return t(["nuageux"])},fog:e=>{const{normalize:t}=e;return t(["brouillard"])},"partly-cloudy-day":e=>{const{normalize:t}=e;return t(["partiellement nuageux"])},"partly-cloudy-night":e=>{const{normalize:t}=e;return t(["nuit partiellement nuageuse"])},rain:e=>{const{normalize:t}=e;return t(["pluie"])},sleet:e=>{const{normalize:t}=e;return t(["neige fondue"])},snow:e=>{const{normalize:t}=e;return t(["neige"])},wind:e=>{const{normalize:t}=e;return t(["venteux"])}}},WITH_GPX:e=>{const{normalize:t}=e;return t(["avec un fichier .gpx"])},WITHOUT_GPX:e=>{const{normalize:t}=e;return t(["sans fichier .gpx"])},WORKOUT:e=>{const{normalize:t,plural:n}=e;return n([t(["séance"]),t(["séances"])])},WORKOUT_DATE:e=>{const{normalize:t}=e;return t(["date de la séance"])},WORKOUT_DELETION_CONFIRMATION:e=>{const{normalize:t}=e;return t(["Etes-vous sûr de vouloir supprimer cette séance ?"])},ZIP_ARCHIVE:e=>{const{normalize:t}=e;return t(["archive .zip"])},ZIP_ARCHIVE_DESCRIPTION:e=>{const{normalize:t}=e;return t(["ou une archive .zip contenant des fichiers .gpx"])}},S={about:r,admin:a,api:o,buttons:s,common:i,dashboard:l,error:c,oauth2:u,sports:d,statistics:m,user:_,workouts:E}},8891:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return S}});var r={},a={},o={},s={},i={},l={},c={},u={},d={},m={},_={},E={},S={about:r,admin:a,api:o,buttons:s,common:i,dashboard:l,error:c,oauth2:u,sports:d,statistics:m,user:_,workouts:E}},701:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return S}});var r={},a={},o={},s={},i={},l={},c={},u={},d={},m={},_={},E={},S={about:r,admin:a,api:o,buttons:s,common:i,dashboard:l,error:c,oauth2:u,sports:d,statistics:m,user:_,workouts:E}},4970:function(e,t,n){"use strict";var r=n(3148),a=n(7028),o=n(9963),s=n(2343),i=n(5205);(0,i.z)("/service-worker.js",{ready(){console.log("App is being served from cache by a service worker.\nFor more details, visit https://goo.gl/AFskqB")},registered(){console.log("Service worker has been registered.")},cached(){console.log("Content has been cached for offline use.")},updatefound(){console.log("New content is downloading.")},updated(){console.log("New content is available; please refresh.")},offline(){console.log("No internet connection found. App is running in offline mode.")},error(e){console.error("Error during service worker registration:",e)}});var l=n(6252),c=n(2262),u=n(3577);const d=e=>((0,l.dD)("data-v-2c73279e"),e=e(),(0,l.Cn)(),e),m={id:"footer"},_={class:"footer-items"},E={class:"footer-item"},S=d((()=>(0,l._)("strong",null,"FitTrackee",-1))),T=d((()=>(0,l._)("div",{class:"footer-item bullet"},"•",-1))),p={class:"footer-item"},A={key:0,class:"footer-item bullet"},O={key:1,class:"footer-item"},I=["href"],R=d((()=>(0,l._)("div",{class:"footer-item bullet"},"•",-1))),U={class:"footer-item"},g={href:"https://samr1.github.io/FitTrackee/",target:"_blank",rel:"noopener noreferrer"};var N=(0,l.aZ)({__name:"Footer",props:{version:null,adminContact:null},setup(e){const t=e,{adminContact:n,version:r}=(0,c.BK)(t);return(e,t)=>{const a=(0,l.up)("router-link");return(0,l.wg)(),(0,l.iD)("div",m,[(0,l._)("div",_,[(0,l._)("div",E,[S,(0,l.Uk)(" v"+(0,u.zw)((0,c.SU)(r)),1)]),T,(0,l._)("div",p,[(0,l.Wm)(a,{to:"/about"},{default:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)(e.$t("common.ABOUT")),1)])),_:1})]),(0,c.SU)(n)?((0,l.wg)(),(0,l.iD)("div",A,"•")):(0,l.kq)("",!0),(0,c.SU)(n)?((0,l.wg)(),(0,l.iD)("div",O,[(0,l._)("a",{href:`mailto:${(0,c.SU)(n)}`},(0,u.zw)(e.$t("common.CONTACT")),9,I)])):(0,l.kq)("",!0),R,(0,l._)("div",U,[(0,l._)("a",g,(0,u.zw)(e.$t("common.DOCUMENTATION")),1)])])])}}}),h=n(3744);const z=(0,h.Z)(N,[["__scopeId","data-v-2c73279e"]]);var w=z,f=(n(7658),n(6595)),v=n(5801),C=n(9917),D=n(6287);const k=e=>((0,l.dD)("data-v-95c1cc02"),e=e(),(0,l.Cn)(),e),P={id:"nav"},L={class:"nav-container"},M={class:"nav-app-name"},b={class:"nav-items-close"},y=k((()=>(0,l._)("div",{class:"app-name"},"FitTrackee",-1))),G={key:0,class:"nav-items-group"},F=k((()=>(0,l._)("div",{class:"nav-item nav-separator"},null,-1))),W={class:"nav-items-user-menu"},K={key:0,class:"nav-items-group"},Y={class:"nav-item nav-profile-img"},x={key:1,class:"nav-items-group"},B=k((()=>(0,l._)("i",{class:"fa fa-language"},null,-1)));var $=(0,l.aZ)({__name:"NavBar",emits:["menuInteraction"],setup(e,{emit:t}){const n=(0,C.o)(),r=(0,l.Fl)((()=>n.getters[v.YN.GETTERS.AUTH_USER_PROFILE])),a=(0,l.Fl)((()=>n.getters[v.YN.GETTERS.IS_AUTHENTICATED])),o=(0,l.Fl)((()=>n.getters[v.SY.GETTERS.LANGUAGE])),s=(0,c.iH)(!1);function i(){s.value=!0,t("menuInteraction",!0)}function d(){s.value=!1,t("menuInteraction",!1)}function m(e){n.dispatch(v.SY.ACTIONS.UPDATE_APPLICATION_LANGUAGE,e.value.toString())}function _(){n.dispatch(v.YN.ACTIONS.LOGOUT)}return(e,t)=>{const n=(0,l.up)("router-link"),E=(0,l.up)("Dropdown");return(0,l.wg)(),(0,l.iD)("div",P,[(0,l._)("div",L,[(0,l._)("div",M,[(0,l._)("div",{class:"nav-item app-name",onClick:t[0]||(t[0]=t=>e.$router.push("/"))}," FitTrackee ")]),(0,l._)("div",{class:(0,u.C_)(["nav-icon-open",{"menu-open":s.value}])},[(0,l._)("i",{class:"fa fa-bars hamburger-icon",onClick:t[1]||(t[1]=e=>i())})],2),(0,l._)("div",{class:(0,u.C_)(["nav-items",{"menu-open":s.value}])},[(0,l._)("div",b,[y,(0,l._)("i",{class:(0,u.C_)(["fa fa-close close-icon nav-item",{"menu-closed":!s.value}]),onClick:t[2]||(t[2]=e=>d())},null,2)]),(0,l._)("div",{class:"nav-items-app-menu",onClick:t[3]||(t[3]=e=>d())},[(0,c.SU)(a)?((0,l.wg)(),(0,l.iD)("div",G,[(0,l.Wm)(n,{class:"nav-item",to:"/"},{default:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)(e.$t("dashboard.DASHBOARD")),1)])),_:1}),(0,l.Wm)(n,{class:"nav-item",to:"/workouts"},{default:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)((0,u.kC)(e.$t("workouts.WORKOUT",2))),1)])),_:1}),(0,l.Wm)(n,{class:"nav-item",to:"/statistics"},{default:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)(e.$t("statistics.STATISTICS")),1)])),_:1}),(0,l.Wm)(n,{class:"nav-item",to:"/workouts/add"},{default:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)(e.$t("workouts.ADD_WORKOUT")),1)])),_:1}),(0,c.SU)(a)&&(0,c.SU)(r).admin?((0,l.wg)(),(0,l.j4)(n,{key:0,class:"nav-item",to:"/admin"},{default:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)(e.$t("admin.ADMIN")),1)])),_:1})):(0,l.kq)("",!0),F])):(0,l.kq)("",!0)]),(0,l._)("div",W,[(0,c.SU)(a)?((0,l.wg)(),(0,l.iD)("div",K,[(0,l._)("div",Y,[(0,l.Wm)(f.Z,{user:(0,c.SU)(r)},null,8,["user"])]),(0,l.Wm)(n,{class:"nav-item",to:"/profile",onClick:d},{default:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)((0,c.SU)(r).username),1)])),_:1}),(0,l._)("div",{class:"nav-item nav-link",onClick:_},(0,u.zw)(e.$t("user.LOGOUT")),1)])):((0,l.wg)(),(0,l.iD)("div",x,[(0,l.Wm)(n,{class:"nav-item",to:"/login",onClick:d},{default:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)(e.$t("user.LOGIN")),1)])),_:1}),(0,l.Wm)(n,{class:"nav-item",to:"/register",onClick:d},{default:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)(e.$t("user.REGISTER")),1)])),_:1})])),(0,c.SU)(D.mT)&&(0,c.SU)(o)?((0,l.wg)(),(0,l.j4)(E,{key:2,class:"nav-item",options:(0,c.SU)(D.mT),selected:(0,c.SU)(o),onSelected:m},{default:(0,l.w5)((()=>[B])),_:1},8,["options","selected"])):(0,l.kq)("",!0)])],2)])])}}});const Z=(0,h.Z)($,[["__scopeId","data-v-95c1cc02"]]);var H=Z,q=n(7167);const V={id:"no-config"},j={class:"error-page"},X={class:"error-img"},J=["innerHTML"];var Q=(0,l.aZ)({__name:"NoConfig",setup(e){return(e,t)=>((0,l.wg)(),(0,l.iD)("div",V,[(0,l._)("div",j,[(0,l._)("div",X,[(0,l.Wm)(q.Z)]),(0,l._)("p",{class:"error-message",innerHTML:e.$t("error.APP_ERROR")},null,8,J)])]))}});const ee=(0,h.Z)(Q,[["__scopeId","data-v-47759238"]]);var te=ee;const ne=(0,l._)("div",{id:"top"},null,-1),re={key:0,class:"app-container"},ae={class:"app-loading"},oe={class:"container scroll"},se=(0,l._)("i",{class:"fa fa-chevron-up","aria-hidden":"true"},null,-1),ie=[se];var le=(0,l.aZ)({__name:"App",setup(e){const t=(0,C.o)(),n=(0,l.Fl)((()=>t.getters[v.SY.GETTERS.APP_CONFIG])),r=(0,l.Fl)((()=>t.getters[v.SY.GETTERS.APP_LOADING])),a=(0,c.iH)(!1),o=(0,c.iH)(!1);function s(e){a.value=e}function i(e){return e.getBoundingClientRect().top=0}function d(){window.onscroll=()=>{const e=document.querySelector("#bottom");o.value=null!==e&&i(e)}}function m(){window.scrollTo({top:0,behavior:"smooth"}),setTimeout((()=>{o.value=!1}),300)}function _(){let e="en";try{const t=navigator.language.split("-")[0];t in D.v1&&(e=t)}catch(n){e="en"}t.dispatch(v.SY.ACTIONS.UPDATE_APPLICATION_LANGUAGE,e)}return(0,l.wF)((()=>{_(),t.dispatch(v.SY.ACTIONS.GET_APPLICATION_CONFIG)})),(0,l.bv)((()=>d())),(e,t)=>{const i=(0,l.up)("Loader"),d=(0,l.up)("router-view");return(0,l.wg)(),(0,l.iD)(l.HY,null,[ne,(0,l.Wm)(H,{onMenuInteraction:s}),(0,c.SU)(r)?((0,l.wg)(),(0,l.iD)("div",re,[(0,l._)("div",ae,[(0,l.Wm)(i)])])):((0,l.wg)(),(0,l.iD)("div",{key:1,class:(0,u.C_)(["app-container",{"hide-scroll":a.value}])},[(0,c.SU)(n)?((0,l.wg)(),(0,l.j4)(d,{key:0})):((0,l.wg)(),(0,l.j4)(te,{key:1}))],2)),(0,l._)("div",oe,[(0,l._)("div",{class:(0,u.C_)(["scroll-button",{"display-button":o.value}]),onClick:m},ie,2)]),(0,c.SU)(n)?((0,l.wg)(),(0,l.j4)(w,{key:2,version:(0,c.SU)(n)?(0,c.SU)(n).version:"",adminContact:(0,c.SU)(n).admin_contact},null,8,["version","adminContact"])):(0,l.kq)("",!0)],64)}}});const ce=le;var ue=ce,de=n(2540),me=n(6176),_e=n(2894);const Ee={class:"alert-message"},Se=["innerHTML"];var Te=(0,l.aZ)({__name:"AlertMessage",props:{message:null},setup(e){const t=e,{message:n}=(0,c.BK)(t);return(e,t)=>((0,l.wg)(),(0,l.iD)("div",Ee,[(0,l._)("div",{innerHTML:e.$t((0,c.SU)(n))},null,8,Se)]))}});const pe=(0,h.Z)(Te,[["__scopeId","data-v-69d7e4ff"]]);var Ae=pe,Oe=n(2531);const Ie={class:"custom-textarea"},Re=["id","name","maxLenght","disabled"],Ue={class:"remaining-chars"};var ge=(0,l.aZ)({__name:"CustomTextArea",props:{name:null,charLimit:{default:500},disabled:{type:Boolean,default:!1},input:{default:""}},emits:["updateValue"],setup(e,{emit:t}){const n=e,r=(0,c.iH)("");function a(e){t("updateValue",e.target.value)}return(0,l.YP)((()=>n.input),(e=>{r.value=null===e?"":e})),(t,n)=>((0,l.wg)(),(0,l.iD)("div",Ie,[(0,l.wy)((0,l._)("textarea",{id:e.name,name:e.name,maxLenght:e.charLimit,disabled:e.disabled,"onUpdate:modelValue":n[0]||(n[0]=e=>r.value=e),onInput:a},null,40,Re),[[o.nr,r.value]]),(0,l._)("div",Ue,(0,u.zw)(t.$t("workouts.REMAINING_CHARS"))+": "+(0,u.zw)(r.value.length)+"/"+(0,u.zw)(e.charLimit),1)]))}});const Ne=(0,h.Z)(ge,[["__scopeId","data-v-8cf5cc64"]]);var he=Ne,ze=n(3649),we=(0,l.aZ)({__name:"Distance",props:{distance:null,unitFrom:null,useImperialUnits:{type:Boolean},digits:{default:2},displayUnit:{type:Boolean,default:!0},speed:{type:Boolean,default:!1},strong:{type:Boolean,default:!1}},setup(e){const t=e,{digits:n,displayUnit:r,distance:a,speed:o,strong:s,unitFrom:i,useImperialUnits:d}=(0,c.BK)(t),m=(0,l.Fl)((()=>d.value?ze.Dl[i.value].defaultTarget:i.value)),_=(0,l.Fl)((()=>d.value?(0,ze.sC)(a.value,i.value,m.value,n.value):parseFloat(a.value.toFixed(n.value))));return(e,t)=>((0,l.wg)(),(0,l.iD)(l.HY,null,[(0,l._)("span",{class:(0,u.C_)(["distance",{strong:(0,c.SU)(s)}])},(0,u.zw)((0,c.SU)(_)),3),(0,l.Uk)(" "+(0,u.zw)(" ")+" "),(0,c.SU)(r)?((0,l.wg)(),(0,l.iD)("span",{key:0,class:(0,u.C_)(["unit",{strong:(0,c.SU)(s)}])},(0,u.zw)((0,c.SU)(m))+(0,u.zw)((0,c.SU)(o)?"/h":""),3)):(0,l.kq)("",!0)],64))}});const fe=(0,h.Z)(we,[["__scopeId","data-v-f46ff1d6"]]);var ve=fe,Ce=n(2201);const De={class:"dropdown-wrapper"},ke={key:0,class:"dropdown-list"},Pe=["onClick"];var Le=(0,l.aZ)({__name:"Dropdown",props:{options:null,selected:null},emits:{selected:e=>e},setup(e,{emit:t}){const n=e,r=(0,Ce.yj)(),a=(0,c.iH)(!1),o=n.options.map((e=>e));function s(){a.value=!a.value}function i(e){t("selected",e),a.value=!1}return(0,l.YP)((()=>r.path),(()=>a.value=!1)),(t,n)=>((0,l.wg)(),(0,l.iD)("div",De,[(0,l._)("div",{class:"dropdown-selected",onClick:s},[(0,l.WI)(t.$slots,"default")]),a.value?((0,l.wg)(),(0,l.iD)("ul",ke,[((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)((0,c.SU)(o),((t,n)=>((0,l.wg)(),(0,l.iD)("li",{class:(0,u.C_)(["dropdown-item",{selected:t.value===e.selected}]),key:n,onClick:e=>i(t)},(0,u.zw)(t.label),11,Pe)))),128))])):(0,l.kq)("",!0)]))}});const Me=(0,h.Z)(Le,[["__scopeId","data-v-2d3b4eac"]]);var be=Me;const ye={class:"error-message"},Ge={key:0},Fe={key:1};var We=(0,l.aZ)({__name:"ErrorMessage",props:{message:null},setup(e){const t=e,{message:n}=(0,c.BK)(t);return(e,t)=>((0,l.wg)(),(0,l.iD)("div",ye,[Array.isArray((0,c.SU)(n))?((0,l.wg)(),(0,l.iD)("ul",Ge,[((0,l.wg)(!0),(0,l.iD)(l.HY,null,(0,l.Ko)((0,c.SU)(n),((t,n)=>((0,l.wg)(),(0,l.iD)("li",{key:n},(0,u.zw)(e.$t(t)),1)))),128))])):((0,l.wg)(),(0,l.iD)("div",Fe,(0,u.zw)(e.$t((0,c.SU)(n))),1))]))}});const Ke=(0,h.Z)(We,[["__scopeId","data-v-2659a79a"]]);var Ye=Ke;const xe={version:"1.1",id:"Capa_1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",x:"0px",y:"0px",viewBox:"0 0 491.737 491.737",style:{"enable-background":"new 0 0 491.737 491.737"},"xml:space":"preserve"},Be=(0,l._)("desc",{id:"cyclingSportDescription"}," silhouette of a person riding a bicycle ",-1),$e=(0,l._)("g",null,[(0,l._)("path",{d:"M321.097,112.359c20.973,12.338,47.985,5.315,60.293-15.652c12.34-20.973,5.35-47.974-15.623-60.304\n\t\tc-21.009-12.332-47.99-5.317-60.314,15.65C293.129,73.036,300.103,100.027,321.097,112.359z"}),(0,l._)("path",{d:"M393.081,264.102c-2.414,0-4.8,0.194-7.169,0.362l-14.431-71.605l4.702-1.757c10.666-3.987,16.093-15.868,12.098-26.54\n\t\tc-3.994-10.681-15.946-16.084-26.531-12.09l-51.823,19.38l-2.321-18.864c6.3-13.193,5.541-29.78-4.767-41.482\n\t\tc-21.224-24.092-47.12-12.508-55.191-5.976l-106.884,86.555l0.016,0.024c-3.319,2.893-6.089,6.485-7.86,10.842\n\t\tc-2.191,5.396-2.596,11.067-1.564,16.384c-8.503,0.669-15.255,7.571-15.255,16.246c0,9.085,7.346,16.44,16.432,16.48l-6.797,15.906\n\t\tc-8.62-2.465-17.674-3.866-27.066-3.866C44.27,264.102,0,308.354,0,362.754c0,54.403,44.27,98.663,98.668,98.663\n\t\tc54.403,0,98.652-44.26,98.652-98.663c0-36.228-19.683-67.867-48.858-85.024l10.957-25.652h17.767l60.281,24.462l-32.201,52.773\n\t\tc-8.297,13.612-3.994,31.382,9.615,39.685c4.691,2.86,9.878,4.229,15,4.229c9.729,0,19.234-4.929,24.677-13.838l29.339-48.095\n\t\tl19.072,11.511c-5.447,12.227-8.54,25.726-8.54,39.95c0,54.403,44.254,98.663,98.652,98.663c54.402,0,98.656-44.26,98.656-98.663\n\t\tC491.737,308.354,447.483,264.102,393.081,264.102z M98.668,436.671c-40.756,0-73.923-33.161-73.923-73.917\n\t\tc0-40.756,33.167-73.909,73.923-73.909c5.944,0,11.649,0.896,17.188,2.224l-20.476,47.893\n\t\tc-11.758,1.619-20.843,11.598-20.843,23.792c0,13.323,10.808,24.132,24.13,24.132c8.767,0,16.367-4.745,20.589-11.76h52.065\n\t\tC165.395,409.988,135.188,436.671,98.668,436.671z M171.322,350.383h-52.065c-0.355-0.588-0.708-1.176-1.112-1.732l20.476-47.901\n\t\tC155.679,311.776,167.793,329.595,171.322,350.383z M296.781,290.175l7.666-12.564c4.416-7.233,5.431-16.038,2.774-24.084\n\t\tc-2.661-8.046-8.718-14.515-16.562-17.704l-52.725-21.395l32.443-26.281l1.804,14.691c0.756,6.267,4.366,11.841,9.761,15.12\n\t\tc3.271,1.981,6.979,2.988,10.698,2.988c2.435,0,4.88-0.435,7.218-1.306l48.15-18.001l13.627,67.691\n\t\tc-18.268,6.162-34.117,17.51-45.848,32.314L296.781,290.175z M375.396,337.633l-38.003-22.94\n\t\tc7.877-9.118,17.787-16.319,29.205-20.734L375.396,337.633z M393.081,436.671c-40.757,0-73.907-33.161-73.907-73.917\n\t\tc0-9.544,1.965-18.597,5.268-26.983l44.541,26.888c0,0.032-0.016,0.064-0.016,0.095c0,13.323,10.808,24.132,24.114,24.132\n\t\tc13.322,0,24.118-10.81,24.118-24.132c0-10.478-6.721-19.307-16.06-22.64l-10.277-51.043c0.756-0.024,1.463-0.226,2.22-0.226\n\t\tc40.757,0,73.911,33.153,73.911,73.909C466.992,403.51,433.838,436.671,393.081,436.671z"})],-1),Ze=[Be,$e];function He(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",xe,Ze)}var qe={name:"CyclingSport"};const Ve=(0,h.Z)(qe,[["render",He]]);var je=Ve;const Xe={version:"1.1",id:"Capa_1",x:"0px",y:"0px",viewBox:"0 0 491.737 491.737",style:{"enable-background":"new 0 0 491.737 491.737"},"xml:space":"preserve",xmlns:"http://www.w3.org/2000/svg","xmlns:svg":"http://www.w3.org/2000/svg"},Je=(0,l._)("desc",{id:"cyclingTransportDescription"}," silhouette of a person riding a bicycle (for transportation) ",-1),Qe=(0,l._)("g",{id:"g147"},[(0,l._)("path",{d:"m 189.097,82.359 c 20.97701,12.331184 47.97442,5.308784 60.293,-15.652 12.32942,-20.979222 5.35418,-47.981117 -15.623,-60.304 -21.00482,-12.3391184 -47.99,-5.317 -60.314,15.65 -12.324,20.983 -5.34599,47.967183 15.644,60.306 z",id:"path143"}),(0,l._)("path",{d:"m 393.081,264.102 c -2.414,0 -4.8,0.194 -7.169,0.362 l -14.431,-71.605 4.702,-1.757 c 10.666,-3.987 16.093,-15.868 12.098,-26.54 -3.994,-10.681 -15.946,-16.084 -26.531,-12.09 l -63.05508,-1.53717 C 284.04753,137.09803 248.90259,106.55858 243.33317,101.62481 217.77732,75.090916 186.1698,85.012419 178.0988,91.544419 L 140.764,192.085 l 0.016,0.024 c -3.319,2.893 -6.089,6.485 -7.86,10.842 -2.191,5.396 -2.596,11.067 -1.564,16.384 -8.503,0.669 -15.255,7.571 -15.255,16.246 0,9.085 7.346,16.44 16.432,16.48 l -6.797,15.906 c -8.62,-2.465 -17.674,-3.866 -27.066,-3.866 C 44.27,264.102 0,308.354 0,362.754 c 0,54.403 44.27,98.663 98.668,98.663 54.403,0 98.652,-44.26 98.652,-98.663 0,-36.228 -19.683,-67.867 -48.858,-85.024 l 10.957,-25.652 h 17.767 l 60.281,24.462 -32.201,52.773 c -8.297,13.612 -3.994,31.382 9.615,39.685 4.691,2.86 9.878,4.229 15,4.229 9.729,0 19.234,-4.929 24.677,-13.838 l 29.339,-48.095 19.072,11.511 c -5.447,12.227 -8.54,25.726 -8.54,39.95 0,54.403 44.254,98.663 98.652,98.663 54.402,0 98.656,-44.26 98.656,-98.663 0,-54.401 -44.254,-98.653 -98.656,-98.653 z M 98.668,436.671 c -40.756,0 -73.923,-33.161 -73.923,-73.917 0,-40.756 33.167,-73.909 73.923,-73.909 5.944,0 11.649,0.896 17.188,2.224 L 95.38,338.962 c -11.758,1.619 -20.843,11.598 -20.843,23.792 0,13.323 10.808,24.132 24.13,24.132 8.767,0 16.367,-4.745 20.589,-11.76 h 52.065 c -5.926,34.862 -36.133,61.545 -72.653,61.545 z m 72.654,-86.288 h -52.065 c -0.355,-0.588 -0.708,-1.176 -1.112,-1.732 l 20.476,-47.901 c 17.058,11.026 29.172,28.845 32.701,49.633 z m 125.459,-60.208 7.666,-12.564 c 4.416,-7.233 5.431,-16.038 2.774,-24.084 -2.661,-8.046 -8.718,-14.515 -16.562,-17.704 l -73.83357,-31.7176 16.7558,-45.21274 c 10.36934,4.13303 41.82171,27.90767 45.77423,28.08592 3.271,1.981 8.57725,1.46711 12.29625,1.46711 2.435,0 18.50584,0.70472 20.84384,-0.16628 L 343.32113,188.03378 361.635,269.33 c -18.268,6.162 -34.117,17.51 -45.848,32.314 z m 78.615,47.458 -38.003,-22.94 c 7.877,-9.118 17.787,-16.319 29.205,-20.734 z m 17.685,99.038 c -40.757,0 -73.907,-33.161 -73.907,-73.917 0,-9.544 1.965,-18.597 5.268,-26.983 l 44.541,26.888 c 0,0.032 -0.016,0.064 -0.016,0.095 0,13.323 10.808,24.132 24.114,24.132 13.322,0 24.118,-10.81 24.118,-24.132 0,-10.478 -6.721,-19.307 -16.06,-22.64 l -10.277,-51.043 c 0.756,-0.024 1.463,-0.226 2.22,-0.226 40.757,0 73.911,33.153 73.911,73.909 -10e-4,40.756 -33.155,73.917 -73.912,73.917 z",id:"path145"})],-1),et=[Je,Qe];function tt(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",Xe,et)}var nt={name:"CyclingTransport"};const rt=(0,h.Z)(nt,[["render",tt]]);var at=rt;const ot={version:"1.1",id:"Capa_1",x:"0px",y:"0px",viewBox:"0 0 491.737 491.737",style:{"enable-background":"new 0 0 491.737 491.737"},"xml:space":"preserve",xmlns:"http://www.w3.org/2000/svg","xmlns:svg":"http://www.w3.org/2000/svg"},st=(0,l.uE)(' silhouette of a person riding a bicycle with virtual indicator ',4),it=[st];function lt(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",ot,it)}var ct={name:"CyclingVirtual"};const ut=(0,h.Z)(ct,[["render",lt]]);var dt=ut;const mt={version:"1.1",id:"Capa_1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",x:"0px",y:"0px",viewBox:"0 0 463.507 463.507",style:{"enable-background":"new 0 0 463.507 463.507"},"xml:space":"preserve"},_t=(0,l._)("desc",{id:"hikingDescription"},"silhouette of a person hiking",-1),Et=(0,l._)("g",null,[(0,l._)("path",{d:"M246.413,78.492c21.688,0,39.255-17.573,39.255-39.251c0-21.67-17.567-39.24-39.255-39.24\n\t\tc-21.652,0-39.242,17.57-39.242,39.24C207.171,60.919,224.761,78.492,246.413,78.492z"}),(0,l._)("path",{d:"M386.604,202.858c0-11.185-9.066-20.251-20.253-20.251h-68.479l-38.62-54.832l0.127-0.933\n\t\tc1.378-10.474-1.474-21.067-7.911-29.444c-6.441-8.378-15.932-13.852-26.408-15.23c-11.596-1.511-22.592,2.224-30.852,9.225V45.779\n\t\tc0-7.847-6.362-14.217-14.225-14.217H140.59c-7.867,0-14.225,6.37-14.225,14.217v168.953c0,20.68,15.821,37.476,35.979,39.446\n\t\tl-3.043,7.073l-23.859,90.136l-53.73,72.188c-8.006,10.768-5.794,25.987,4.984,34.001c4.348,3.245,9.443,4.811,14.491,4.811\n\t\tc7.422,0,14.729-3.385,19.511-9.795l56.529-75.945c1.851-2.484,3.213-5.299,4.003-8.289l16.266-61.414l44.521,40.877l-6.076,88.603\n\t\tc-0.917,13.393,9.177,24.99,22.58,25.908c0.552,0.04,1.124,0.056,1.691,0.056c12.66,0,23.339-9.819,24.208-22.642l6.882-100.264\n\t\tc0.508-7.364-2.371-14.572-7.815-19.564l-45.994-42.219l13.992-90.613l19.331,27.435c3.801,5.387,9.972,8.592,16.552,8.592h70.882\n\t\tl1.339,232.294c0,4.478,3.626,8.101,8.101,8.101c4.479,0,8.101-3.624,8.101-8.101l-1.339-234.036\n\t\tC381.588,218.245,386.604,211.15,386.604,202.858z"})],-1),St=[_t,Et];function Tt(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",mt,St)}var pt={name:"Hiking"};const At=(0,h.Z)(pt,[["render",Tt]]);var Ot=At;const It={version:"1.1",id:"Capa_1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",x:"0px",y:"0px",viewBox:"0 0 503.162 503.162",style:{"enable-background":"new 0 0 503.162 503.162"},"xml:space":"preserve"},Rt=(0,l._)("desc",{id:"mountainBikingDescription"}," silhouette of a person riding a mountain bike ",-1),Ut=(0,l._)("g",null,[(0,l._)("g",null,[(0,l._)("path",{d:"M149.951,67.997c15.711-7.143,22.739-25.675,15.596-41.416c-7.124-15.701-25.723-22.682-41.453-15.539\n\t\t\tc-15.721,7.134-22.702,25.752-15.578,41.444C115.679,68.216,134.23,75.14,149.951,67.997z"}),(0,l._)("path",{d:"M87.517,89.072l-32.828,87.755c-1.979,5.967-1.683,12.594,1.1,18.733c4.055,8.922,12.604,14.525,21.755,15.271\n\t\t\tl76.873,6.244l29.137,64.184c4.122,9.046,14.832,13.148,23.906,9.017c9.075-4.131,13.072-14.859,8.951-23.944l-36.424-80.201\n\t\t\tc0,0-3.605-13.76-21.343-14.133l-43.873-2.572l21.009-55.166l31.671,20.588c5.584,3.663,10.997,3.682,15.1,1.722l55.051-24.997\n\t\t\tc17.069-7.755,6.952-30.036-10.108-22.29l-47.506,21.707l-53.55-34.846c0,0-11.638-8.013-24.241-2.285\n\t\t\tC102.205,73.858,91.112,77.243,87.517,89.072z"}),(0,l._)("path",{d:"M423.687,182.488l-2.61,15.042c-2.123,12.154-13.35,25.092-25.092,28.888l-3.711,1.195\n\t\t\tc3.041-16.543,1.282-34.148-6.215-50.633c-19.498-42.974-70.094-61.87-112.943-42.419\n\t\t\tc-42.878,19.479-61.936,70.017-42.438,112.981c17.069,37.562,57.881,56.744,96.534,47.966l-0.784,1.415\n\t\t\tc-5.968,10.796-20.817,19.221-33.144,18.8l-17.892-0.622c-12.336-0.411-30.514,5.002-40.603,12.116l-22.376,15.759\n\t\t\tc-10.107,7.104-28.276,12.632-40.612,12.354l-12.001-0.277c12.718-22.845,14.889-51.159,3.242-76.806\n\t\t\tc-19.517-42.955-70.074-61.879-113.019-42.381c-42.792,19.44-61.87,70.007-42.372,112.933\n\t\t\tc16.667,36.711,56.084,55.788,93.914,48.444l-1.32,2.056c-6.675,10.385-22.08,18.398-34.406,17.92l-32.79-1.291\n\t\t\tc-12.326-0.497-24.021,8.97-26.096,21.143l-2.62,15.339c-0.564,3.271-0.354,6.11,0.401,8.501c-0.43,1.778-0.736,3.548-0.736,5.326\n\t\t\tv9.562c0,10.557,8.568,19.125,19.125,19.125h460.932c10.557,0,19.115-8.568,19.106-19.125l-0.125-167.507\n\t\t\tc0-2.782-0.593-5.221-1.616-7.286c1.396-3.806,2.057-7.841,1.598-11.839l-4.677-40.497c-1.415-12.249-9.763-29.146-18.637-37.724\n\t\t\tl-36.127-34.951C434.712,167.418,425.79,170.325,423.687,182.488z"})])],-1),gt=[Rt,Ut];function Nt(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",It,gt)}var ht={name:"MountainBiking"};const zt=(0,h.Z)(ht,[["render",Nt]]);var wt=zt;const ft={version:"1.1",id:"Capa_1",xmlns:"http://www.w3.org/2000/svg","xmlns:svg":"http://www.w3.org/2000/svg",x:"0px",y:"0px",viewBox:"0 0 503.162 503.162",style:{"enable-background":"new 0 0 503.162 503.162"},"xml:space":"preserve"},vt=(0,l.uE)(' silhouette of a person riding an electric mountain bike ',18),Ct=[vt];function Dt(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",ft,Ct)}var kt={name:"MountainBikingElectric"};const Pt=(0,h.Z)(kt,[["render",Dt]]);var Lt=Pt;const Mt={version:"1.1",id:"Capa_1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",x:"0px",y:"0px",viewBox:"0 0 534.51 534.51",style:{"enable-background":"new 0 0 534.51 534.51"},"xml:space":"preserve"},bt=(0,l._)("desc",{id:"rowingDescription"},"silhouette of a person rowing",-1),yt=(0,l._)("g",null,[(0,l._)("g",null,[(0,l._)("path",{d:"M70.517,393.857h132.622l-67.205,68.631c-3.28,3.385-3.204,8.797,0.172,12.076c1.597,1.568,3.72,2.43,5.958,2.43\n\t\t\tc2.305,0,4.533-0.947,6.12-2.572l78.881-80.555h221.315c12.45,0,30.676-6.006,40.296-13.914\n\t\t\tc8.788-7.229,19.049-16.217,26.345-24.299c10.375-9.811,22.214-23.639-4.255-22.834c-6.98,0.248-206.789,0.02-223.926,0\n\t\t\tl47.144-48.139l22.176-22.032l28.209,9.17c10.414,3.385,22.472-0.803,26.919-9.362c4.446-8.558,0.268-18.407-9.343-21.993\n\t\t\tl-17.404-6.512l54.698-54.774c12.507,6.617,28.362,4.867,38.899-5.671l46.541-46.607c13.11-13.015,13.11-33.957,0-46.923\n\t\t\tc-12.909-13.034-34.042-13.034-46.942,0l-46.512,46.598c-10.892,10.815-12.508,27.139-5.26,39.742l-57.853,59.077L253.744,183.09\n\t\t\tc-1.482-0.851-14.153-5.786-26.833-10.643c-14.898-5.719-30.371,0.583-34.53,13.971l-7.525,24.241l-35.324,118.451\n\t\t\tc-0.468,1.34-0.603,2.562-0.746,3.711H14.136c-12.45,0-17.662,8.836-11.618,19.727l23.237,21.592\n\t\t\tC39.123,385.068,58.066,393.857,70.517,393.857z M272.63,248.727c1.797-5.967,8.099-9.39,14.075-7.64l51.37,14.975l-33.038,33.737\n\t\t\tl-43.453,43.012h-14.2L272.63,248.727z"}),(0,l._)("circle",{cx:"248.953",cy:"109.842",r:"52.326"})])],-1),Gt=[bt,yt];function Ft(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",Mt,Gt)}var Wt={name:"Rowing"};const Kt=(0,h.Z)(Wt,[["render",Ft]]);var Yt=Kt;const xt={version:"1.1",id:"Capa_1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",x:"0px",y:"0px",viewBox:"0 0 494.49 494.49",style:{"enable-background":"new 0 0 494.49 494.49"},"xml:space":"preserve"},Bt=(0,l._)("desc",{id:"runningDescription"},"silhouette of a running person",-1),$t=(0,l._)("g",null,[(0,l._)("path",{d:"M282.74,80.771c22.318,0,40.401-18.08,40.401-40.389C323.141,18.084,305.058,0,282.74,0\n\t\tc-22.281,0-40.378,18.084-40.378,40.383C242.362,62.691,260.458,80.771,282.74,80.771z"}),(0,l._)("path",{d:"M400.207,188.547H331.47l-38.766-55.03l0.123-0.944c1.384-10.514-1.475-21.146-7.94-29.556\n\t\tc-6.461-8.409-16.007-13.903-26.52-15.287c-10.926-1.429-22.619,3.12-31.206,8.646c-1.441,0.928-84.97,54.921-84.97,54.921\n\t\tc-5.175,3.358-8.542,8.877-9.165,15.016c-0.634,6.13,1.574,12.222,5.976,16.541l58.982,58l-6.417,48.954l-18.707,65.584l-67.8-19.4\n\t\tc-12.911-3.676-26.44,3.796-30.159,16.747c-3.699,12.951,3.799,26.459,16.758,30.168l91.271,26.109\n\t\tc2.192,0.627,4.444,0.936,6.7,0.936c4.113,0,8.195-1.04,11.848-3.073c5.655-3.146,9.833-8.409,11.611-14.635l21.963-77.057\n\t\tl26.365,36.639l6.684,119.628c0.73,12.991,11.501,23.036,24.349,23.036c0.441,0,0.92-0.016,1.379-0.039\n\t\tc13.453-0.748,23.745-12.262,23-25.713l-7.083-126.736c-0.271-4.643-1.846-9.116-4.56-12.887l-32.24-44.811l11.959-91.279\n\t\tl19.409,27.555c3.794,5.407,10.005,8.624,16.613,8.624h79.28c11.226,0,20.326-9.101,20.326-20.329\n\t\tC420.533,197.647,411.432,188.547,400.207,188.547z M204.606,190.357l-19.026-18.717l23.476-15.206L204.606,190.357z"})],-1),Zt=[Bt,$t];function Ht(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",xt,Zt)}var qt={name:"Running"};const Vt=(0,h.Z)(qt,[["render",Ht]]);var jt=Vt;const Xt={version:"1.1",id:"Capa_1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",x:"0px",y:"0px",viewBox:"0 0 522.362 522.362",style:{"enable-background":"new 0 0 522.362 522.362"},"xml:space":"preserve"},Jt=(0,l._)("desc",{id:"alpineSkiingDescription"},"silhouette of a person skiing",-1),Qt=(0,l._)("g",null,[(0,l._)("g",null,[(0,l._)("path",{d:"M14.314,351.859L408.088,461.78c4.484,1.311,9.104,1.97,13.731,1.97l0,0c17.471,0,33.746-9.429,42.467-24.604\n\t\t\tc2.716-4.724,3.137-10.27,1.157-15.214c-1.912-4.762-5.767-8.31-10.576-9.744c-7.373-2.237-15.481,1.109-22.146,9.229\n\t\t\tc-3.548,4.303-9.496,6.244-15.07,4.714l-136.467-38.078c1.396-0.555,2.812-1.195,4.236-2.065l103.266-63.15\n\t\t\tc15.443-9.362,18.493-33.957,7.812-43.883l-64.758-60.233l39.972-21.688l69.682,9.744c5.23,0.736,9.744-2.037,10.079-6.187\n\t\t\tc0.344-4.141-3.624-8.1-8.855-8.826l-48.605-6.828l22.472-12.192c39.895-23.275,5.823-85.192-35.334-63.112l-87.554,61.19\n\t\t\tl-117.503-16.515l2.543-12.087c0.545-2.582-1.109-5.116-3.691-5.661c-2.572-0.593-5.116,1.1-5.661,3.701l-2.678,12.709\n\t\t\tl-18.331-2.582c-5.231-0.727-9.467,2.123-9.467,6.369s4.236,8.281,9.467,9.017l15.176,2.123l-2.544,12.087\n\t\t\tc-0.545,2.582,1.109,5.125,3.691,5.671c0.334,0.076,0.66,0.105,0.994,0.105c2.209,0,4.198-1.54,4.676-3.787l2.678-12.737\n\t\t\tl102.414,14.315l-5.308,3.72c-4.332,3.022-10.155,9.151-11.723,14.201c-3.844,12.45-1.473,26.717,10.452,37.705l68.802,62.175\n\t\t\tc0,0-50.978,31.776-74.998,46.397c-14.219,8.606-13.674,23.858-6.129,33.393L23.705,318.199\n\t\t\tc-10.012-2.792-20.569,2.554-23.113,11.695C-2,339.169,4.159,349.029,14.314,351.859z"}),(0,l._)("path",{d:"M450.842,72.003c-15.291,16.715-14.201,42.667,2.639,58.121c16.706,15.31,42.716,14.086,58.073-2.668\n\t\t\tc15.386-16.677,14.172-42.734-2.544-58.016C492.305,54.064,466.17,55.192,450.842,72.003z"})])],-1),en=[Jt,Qt];function tn(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",Xt,en)}var nn={name:"SkiingAlpine"};const rn=(0,h.Z)(nn,[["render",tn]]);var an=rn;const on={version:"1.1",id:"Capa_1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",x:"0px",y:"0px",viewBox:"0 0 296 296",style:{"enable-background":"new 0 0 296 296"},"xml:space":"preserve"},sn=(0,l._)("desc",{id:"crossCountrySkiingDescription"}," silhouette of a person skiing (cross country) ",-1),ln=(0,l._)("g",null,[(0,l._)("path",{d:"M241.313,246.906h-39.564l0.456-1.273c5.62-18.374,3.479-37.58-6.027-54.278c-5.653-9.929-13.443-18.018-22.745-23.959\n\t\tl12.886-51.126c3.035-12.05-4.272-24.266-16.322-27.301c-2.634-0.664-5.278-0.826-7.833-0.559\n\t\tc-0.151-0.011-0.299-0.032-0.452-0.038c-26.03-1.077-51.443,8.485-70.33,25.993L41.586,82.855\n\t\tc-4.332-2.741-10.065-1.451-12.806,2.881s-1.451,10.065,2.88,12.806l47.625,30.136c-2.557,6.013-0.962,13.224,4.375,17.531\n\t\tc2.774,2.24,6.104,3.33,9.413,3.33c4.377-0.001,8.717-1.907,11.68-5.579l0.478-0.591c8.686-10.766,20.465-18.479,33.484-22.317\n\t\tl-11.095,44.046c-1.061,4.214-0.854,8.448,0.374,12.305c-12.908,17.917-28.398,33.68-46.198,46.979l-14.649,10.727\n\t\tc-3.938,2.943-6.001,7.798-6.005,11.798H8.25c-4.556,0-8.083,4.131-8.083,8.688v2.063c0,4.556,3.527,8.25,8.083,8.25h55.188\n\t\th161.375H280c9.113,0,16.167-7.387,16.167-16.5v-2.5H241.313z M153.974,192.398c0.741-0.153,1.471-0.231,2.188-0.457\n\t\tc5.742,3.406,10.53,8.313,13.945,14.311c5.378,9.447,6.59,20.402,3.41,30.797l-1.799,5.674c-0.447,1.461-0.656,3.184-0.657,4.184\n\t\th-69.909C121.581,231.906,139.297,213.274,153.974,192.398z M167,57.938c0-15.378,12.466-27.844,27.844-27.844\n\t\ts27.844,12.466,27.844,27.844s-12.466,27.844-27.844,27.844S167,73.315,167,57.938z"})],-1),cn=[sn,ln];function un(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",on,cn)}var dn={name:"SkiingCrossCountry"};const mn=(0,h.Z)(dn,[["render",un]]);var _n=mn;const En={version:"1.1",id:"Capa_1",x:"0px",y:"0px",viewBox:"0 0 494.49 494.49",style:{"enable-background":"new 0 0 494.49 494.49"},"xml:space":"preserve",xmlns:"http://www.w3.org/2000/svg","xmlns:svg":"http://www.w3.org/2000/svg"},Sn=(0,l.uE)('silhouette of a person with snowshoes',6),Tn=[Sn];function pn(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",En,Tn)}var An={name:"Snowshoes"};const On=(0,h.Z)(An,[["render",pn]]);var In=On;const Rn={version:"1.1",id:"Capa_1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",x:"0px",y:"0px",viewBox:"0 0 535.876 535.876",style:{"enable-background":"new 0 0 535.876 535.876"},"xml:space":"preserve"},Un=(0,l._)("desc",{id:"trailDescription"},"silhouette of a person running (trail)",-1),gn=(0,l._)("g",null,[(0,l._)("g",null,[(0,l._)("path",{d:"M505.204,326.949c-5.805-10.892-15.176-10.862-20.923,0.067l-7.114,13.512c-5.757,10.92-20.416,19.775-32.752,19.775\n\t\t\th-16.753c-12.346,0-29.645,6.847-38.643,15.29l-32.35,30.342l-1.233-105.388c0.822-18.446-10.596-24.634-10.596-24.634\n\t\t\tl-56.543-25.972l33.67-67.645l38.527,22.912c0,0,15.472,9.715,26.727-9.324l37.026-63.093c1.625-3.519,2.094-7.564,1.052-11.609\n\t\t\tc-2.381-9.256-11.81-14.86-21.095-12.479c-4.083,1.042-7.459,3.49-9.754,6.713l-30.772,51.962l-62.777-37.102\n\t\t\tc-4.733-2.716-10.519-3.691-16.257-2.209l-78.345,20.12c-5.03,1.291-8.96,4.762-11.017,9.142l-38.097,76.165\n\t\t\tc-2.591,3.854-3.624,8.73-2.371,13.607c2.285,8.941,11.456,14.363,20.435,12.059c5.04-1.291,8.951-4.743,10.997-9.161\n\t\t\tl35.314-70.858l28.936-7.296l-76.203,149.921l-65.981,16.734c-1.759,0.393-3.48,1.023-5.163,1.836\n\t\t\tc-10.596,5.412-14.679,18.179-9.267,28.803c4.733,9.266,15.252,13.636,24.901,10.978l78.067-20.187\n\t\t\tc18.6-4.093,23.313-14.449,23.313-14.449l30.581-58.79l62.28,35.678l0.593,86.216c0.01,1.08,0.259,2.161,0.421,3.241l-11.6-4.188\n\t\t\tc-11.608-4.188-30.57-4.608-42.361-0.956l-26.135,8.128c-11.79,3.663-30.791,3.338-42.447-0.717l-19.221-6.694\n\t\t\tc-11.657-4.054-28.831-0.984-38.374,6.838L109.9,433.954c-9.544,7.822-26.67,10.72-38.25,6.483L40.84,429.135\n\t\t\tc-11.58-4.256-25.608,1.157-31.336,12.097l-7.21,13.789c-5.728,10.93-0.354,19.794,11.982,19.794H500.27\n\t\t\tc12.336,0,24.309-9.802,26.728-21.907l8.004-39.981c2.409-12.097-0.325-30.733-6.14-41.616L505.204,326.949z"}),(0,l._)("path",{d:"M326.395,126.625c17.806-4.562,28.563-22.721,23.983-40.526c-4.581-17.844-22.74-28.554-40.555-23.983\n\t\t\tc-17.796,4.581-28.535,22.711-23.964,40.535C290.439,120.476,308.599,131.205,326.395,126.625z"})])],-1),Nn=[Un,gn];function hn(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",Rn,Nn)}var zn={name:"Trail"};const wn=(0,h.Z)(zn,[["render",hn]]);var fn=wn;const vn={version:"1.1",id:"Capa_1",x:"0px",y:"0px",viewBox:"0 0 494.49 494.49",style:{"enable-background":"new 0 0 494.49 494.49"},"xml:space":"preserve",xmlns:"http://www.w3.org/2000/svg","xmlns:svg":"http://www.w3.org/2000/svg"},Cn=(0,l.uE)('silhouette of a walking person',3),Dn=[Cn];function kn(e,t,n,r,a,o){return(0,l.wg)(),(0,l.iD)("svg",vn,Dn)}var Pn={name:"Walking"};const Ln=(0,h.Z)(Pn,[["render",kn]]);var Mn=Ln;const bn=["title"];var yn=(0,l.aZ)({__name:"index",props:{sportLabel:null,color:null,title:{default:""}},setup(e){const t=e,{color:n,sportLabel:r,title:a}=(0,c.BK)(t),o=(0,l.f3)("sportColors");return(e,t)=>((0,l.wg)(),(0,l.iD)("div",{class:"sport-img",style:(0,u.j5)({fill:(0,c.SU)(n)?(0,c.SU)(n):(0,c.SU)(o)[(0,c.SU)(r)]}),title:(0,c.SU)(a)?(0,c.SU)(a):e.$t(`sports.${(0,c.SU)(r)}.LABEL`)},["Cycling (Sport)"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(je,{key:0})):(0,l.kq)("",!0),"Cycling (Transport)"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(at,{key:1})):(0,l.kq)("",!0),"Cycling (Virtual)"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(dt,{key:2})):(0,l.kq)("",!0),"Hiking"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(Ot,{key:3})):(0,l.kq)("",!0),"Mountain Biking"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(wt,{key:4})):(0,l.kq)("",!0),"Mountain Biking (Electric)"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(Lt,{key:5})):(0,l.kq)("",!0),"Rowing"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(Yt,{key:6})):(0,l.kq)("",!0),"Running"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(jt,{key:7})):(0,l.kq)("",!0),"Skiing (Alpine)"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(an,{key:8})):(0,l.kq)("",!0),"Skiing (Cross Country)"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(_n,{key:9})):(0,l.kq)("",!0),"Snowshoes"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(In,{key:10})):(0,l.kq)("",!0),"Trail"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(fn,{key:11})):(0,l.kq)("",!0),"Walking"===(0,c.SU)(r)?((0,l.wg)(),(0,l.j4)(Mn,{key:12})):(0,l.kq)("",!0)],12,bn))}});const Gn=yn;var Fn=Gn;const Wn={class:"loader"};function Kn(e,t){return(0,l.wg)(),(0,l.iD)("div",Wn)}const Yn={},xn=(0,h.Z)(Yn,[["render",Kn],["__scopeId","data-v-4c9921ee"]]);var Bn=xn;const $n={id:"modal"},Zn={class:"custom-modal"},Hn={key:0,class:"modal-message"},qn={key:1,class:"modal-message"},Vn={class:"modal-buttons"};var jn=(0,l.aZ)({__name:"Modal",props:{title:null,message:null,strongMessage:{default:()=>null}},emits:["cancelAction","confirmAction"],setup(e,{emit:t}){const n=e,r=(0,C.o)(),{title:a,message:o,strongMessage:s}=(0,c.BK)(n),i=(0,l.Fl)((()=>r.getters[v.SY.GETTERS.ERROR_MESSAGES]));return(0,l.Ah)((()=>r.commit(v.SY.MUTATIONS.EMPTY_ERROR_MESSAGES))),(e,n)=>{const r=(0,l.up)("i18n-t"),d=(0,l.up)("ErrorMessage"),m=(0,l.up)("Card");return(0,l.wg)(),(0,l.iD)("div",$n,[(0,l._)("div",Zn,[(0,l.Wm)(m,null,{title:(0,l.w5)((()=>[(0,l.Uk)((0,u.zw)((0,c.SU)(a)),1)])),content:(0,l.w5)((()=>[(0,c.SU)(s)?((0,l.wg)(),(0,l.iD)("div",Hn,[(0,l.Wm)(r,{keypath:(0,c.SU)(o)},{default:(0,l.w5)((()=>[(0,l._)("span",null,(0,u.zw)((0,c.SU)(s)),1)])),_:1},8,["keypath"])])):((0,l.wg)(),(0,l.iD)("div",qn,(0,u.zw)((0,c.SU)(o)),1)),(0,c.SU)(i)?((0,l.wg)(),(0,l.j4)(d,{key:2,message:(0,c.SU)(i)},null,8,["message"])):(0,l.kq)("",!0),(0,l._)("div",Vn,[(0,c.SU)(i)?(0,l.kq)("",!0):((0,l.wg)(),(0,l.iD)("button",{key:0,class:"confirm",onClick:n[0]||(n[0]=e=>t("confirmAction"))},(0,u.zw)(e.$t("buttons.YES")),1)),(0,l._)("button",{class:"cancel",onClick:n[1]||(n[1]=e=>t("cancelAction"))},(0,u.zw)(e.$t("buttons."+((0,c.SU)(i)?"CANCEL":"NO"))),1)])])),_:1})])])}}});const Xn=(0,h.Z)(jn,[["__scopeId","data-v-e8fcfaba"]]);var Jn=Xn;const Qn=[{target:Ae,name:"AlertMessage"},{target:Oe.Z,name:"Card"},{target:he,name:"CustomTextArea"},{target:ve,name:"Distance"},{target:be,name:"Dropdown"},{target:Ye,name:"ErrorMessage"},{target:Bn,name:"Loader"},{target:Jn,name:"Modal"},{target:Fn,name:"SportImage"}],er={mounted:(e,t)=>{e.clickOutsideEvent=function(n){e===n.target||e.contains(n.target)||t.value(n)},document.body.addEventListener("click",e.clickOutsideEvent),document.body.addEventListener("touchstart",e.clickOutsideEvent)},unmounted:function(e){e.clickOutsideEvent&&(document.body.removeEventListener("click",e.clickOutsideEvent),document.body.removeEventListener("touchstart",e.clickOutsideEvent),e.clickOutsideEvent=void 0)}};var tr=n(631);r.kL.register(r.ZL,r.jn,r.od,r.De,r.Dx,r.u,r.Gu,r.vn,r.uw,r.ST,r.f$,a.Z);const nr=(0,o.ri)(ue).provide("sportColors",tr.Zo).use(de.Z).use(_e.Z).use(me.Z).use(s.ZP,{name:"VFullscreen"}).directive("click-outside",er);Qn.forEach((e=>{nr.component(e.name,e.target)})),nr.mount("#app")},6176:function(e,t,n){"use strict";n.d(t,{Z:function(){return wl}});var r=n(2201),a=(n(7658),n(6252)),o=n(3577),s=n(9963),i=n(2262),l=n(5801),c=n(9917),u=n(8966);const d=e=>((0,a.dD)("data-v-24ec93e2"),e=e(),(0,a.Cn)(),e),m={id:"admin-app",class:"admin-card"},_=["onSubmit"],E={for:"admin_contact"},S=["value"],T=["disabled"],p={for:"max_users"},A=["disabled"],O={class:"user-limit-help"},I={class:"info-box"},R=d((()=>(0,a._)("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1))),U={for:"max_single_file_size"},g=["disabled"],N={for:"max_zip_file_size"},h=["disabled"],z={for:"gpx_limit_import"},w=["disabled"],f={key:1,class:"form-buttons"},v={class:"confirm",type:"submit"},C=["onClick"],D={key:2,class:"form-buttons"};var k=(0,a.aZ)({__name:"AdminApplication",props:{appConfig:null,edition:{type:Boolean,default:!1}},setup(e){const t=e,{edition:n}=(0,i.BK)(t),d=(0,c.o)(),k=(0,r.tv)(),P=(0,i.qj)({admin_contact:"",max_users:0,max_single_file_size:0,max_zip_file_size:0,gpx_limit_import:0}),L=(0,a.Fl)((()=>d.getters[l.SY.GETTERS.ERROR_MESSAGES]));function M(e){Object.keys(P).map((t=>{["max_single_file_size","max_zip_file_size"].includes(t)?P[t]=(0,u.j)(e[t]):P[t]=e[t]}))}function b(){M(t.appConfig),d.commit(l.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),k.push("/admin/application")}function y(){const e=Object.assign({},P);e.max_single_file_size*=1048576,e.max_zip_file_size*=1048576,d.dispatch(l.SY.ACTIONS.UPDATE_APPLICATION_CONFIG,e)}return(0,a.wF)((()=>{t.appConfig&&M(t.appConfig)})),(e,t)=>{const r=(0,a.up)("ErrorMessage"),l=(0,a.up)("Card");return(0,a.wg)(),(0,a.iD)("div",m,[(0,a.Wm)(l,null,{title:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.$t("admin.APP_CONFIG.TITLE")),1)])),content:(0,a.w5)((()=>[(0,a._)("form",{class:"admin-form",onSubmit:(0,s.iM)(y,["prevent"])},[(0,a._)("label",E,[(0,a.Uk)((0,o.zw)(e.$t("admin.APP_CONFIG.ADMIN_CONTACT"))+": ",1),(0,i.SU)(n)||P.admin_contact?(0,a.wy)(((0,a.wg)(),(0,a.iD)("input",{key:1,id:"admin_contact",name:"admin_contact",type:"email","onUpdate:modelValue":t[0]||(t[0]=e=>P.admin_contact=e),disabled:!(0,i.SU)(n)},null,8,T)),[[s.nr,P.admin_contact]]):((0,a.wg)(),(0,a.iD)("input",{key:0,class:"no-contact",value:e.$t("admin.APP_CONFIG.NO_CONTACT_EMAIL"),disabled:""},null,8,S))]),(0,a._)("label",p,[(0,a.Uk)((0,o.zw)(e.$t("admin.APP_CONFIG.MAX_USERS_LABEL"))+": ",1),(0,a.wy)((0,a._)("input",{id:"max_users",name:"max_users",type:"number",min:"0","onUpdate:modelValue":t[1]||(t[1]=e=>P.max_users=e),disabled:!(0,i.SU)(n)},null,8,A),[[s.nr,P.max_users]])]),(0,a._)("div",O,[(0,a._)("span",I,[R,(0,a.Uk)(" "+(0,o.zw)(e.$t("admin.APP_CONFIG.MAX_USERS_HELP")),1)])]),(0,a._)("label",U,[(0,a.Uk)((0,o.zw)(e.$t("admin.APP_CONFIG.SINGLE_UPLOAD_MAX_SIZE_LABEL"))+": ",1),(0,a.wy)((0,a._)("input",{id:"max_single_file_size",name:"max_single_file_size",type:"number",step:"0.1",min:"0","onUpdate:modelValue":t[2]||(t[2]=e=>P.max_single_file_size=e),disabled:!(0,i.SU)(n)},null,8,g),[[s.nr,P.max_single_file_size]])]),(0,a._)("label",N,[(0,a.Uk)((0,o.zw)(e.$t("admin.APP_CONFIG.ZIP_UPLOAD_MAX_SIZE_LABEL"))+": ",1),(0,a.wy)((0,a._)("input",{id:"max_zip_file_size",name:"max_zip_file_size",type:"number",step:"0.1",min:"0","onUpdate:modelValue":t[3]||(t[3]=e=>P.max_zip_file_size=e),disabled:!(0,i.SU)(n)},null,8,h),[[s.nr,P.max_zip_file_size]])]),(0,a._)("label",z,[(0,a.Uk)((0,o.zw)(e.$t("admin.APP_CONFIG.MAX_FILES_IN_ZIP_LABEL"))+": ",1),(0,a.wy)((0,a._)("input",{id:"gpx_limit_import",name:"gpx_limit_import",type:"number",min:"0","onUpdate:modelValue":t[4]||(t[4]=e=>P.gpx_limit_import=e),disabled:!(0,i.SU)(n)},null,8,w),[[s.nr,P.gpx_limit_import]])]),(0,i.SU)(L)?((0,a.wg)(),(0,a.j4)(r,{key:0,message:(0,i.SU)(L)},null,8,["message"])):(0,a.kq)("",!0),(0,i.SU)(n)?((0,a.wg)(),(0,a.iD)("div",f,[(0,a._)("button",v,(0,o.zw)(e.$t("buttons.SUBMIT")),1),(0,a._)("button",{class:"cancel",onClick:(0,s.iM)(b,["prevent"])},(0,o.zw)(e.$t("buttons.CANCEL")),9,C)])):((0,a.wg)(),(0,a.iD)("div",D,[(0,a._)("button",{class:"confirm",onClick:t[5]||(t[5]=(0,s.iM)((t=>e.$router.push("/admin/application/edit")),["prevent"]))},(0,o.zw)(e.$t("buttons.EDIT")),1),(0,a._)("button",{class:"cancel",onClick:t[6]||(t[6]=(0,s.iM)((t=>e.$router.push("/admin")),["prevent"]))},(0,o.zw)(e.$t("admin.BACK_TO_ADMIN")),1)]))],40,_)])),_:1})])}}}),P=n(3744);const L=(0,P.Z)(k,[["__scopeId","data-v-24ec93e2"]]);var M=L;const b={class:"stat-card"},y={class:"stat-content box"},G={class:"stat-icon"},F={class:"stat-details"},W={class:"stat-huge"},K={class:"stat"};var Y=(0,a.aZ)({__name:"StatCard",props:{icon:null,text:null,value:null},setup(e){const t=e,{icon:n,text:r,value:s}=(0,i.BK)(t);return(e,t)=>((0,a.wg)(),(0,a.iD)("div",b,[(0,a._)("div",y,[(0,a._)("div",G,[(0,a._)("i",{class:(0,o.C_)(["fa",`fa-${(0,i.SU)(n)}`])},null,2)]),(0,a._)("div",F,[(0,a._)("div",W,(0,o.zw)((0,i.SU)(s)),1),(0,a._)("div",K,(0,o.zw)((0,i.SU)(r)),1)])])]))}});const x=Y;var B=x;const $={id:"user-stats"};var Z=(0,a.aZ)({__name:"AppStatsCards",props:{appStatistics:null},setup(e){const t=e,{appStatistics:n}=(0,i.BK)(t),r=(0,a.Fl)((()=>(0,u.Z)(n.value.uploads_dir_size,!1)));return(e,t)=>((0,a.wg)(),(0,a.iD)("div",$,[(0,a.Wm)(B,{icon:"users",value:(0,i.SU)(n).users,text:e.$t("admin.USER",(0,i.SU)(n).users)},null,8,["value","text"]),(0,a.Wm)(B,{icon:"tags",value:(0,i.SU)(n).sports,text:e.$t("workouts.SPORT",(0,i.SU)(n).sports)},null,8,["value","text"]),(0,a.Wm)(B,{icon:"calendar",value:(0,i.SU)(n).workouts,text:e.$t("workouts.WORKOUT",(0,i.SU)(n).workouts)},null,8,["value","text"]),(0,a.Wm)(B,{icon:"folder-open",value:(0,i.SU)(r).size,text:(0,i.SU)(r).suffix},null,8,["value","text"])]))}});const H=Z;var q=H,V=n(2531);const j=e=>((0,a.dD)("data-v-0dd66f89"),e=e(),(0,a.Cn)(),e),X={id:"admin-menu",class:"center-card"},J={class:"admin-menu description-list"},Q={class:"application-config-details"},ee=j((()=>(0,a._)("br",null,null,-1))),te={class:"registration-status"},ne={key:0,class:"email-sending-status"},re=j((()=>(0,a._)("i",{class:"fa fa-exclamation-triangle","aria-hidden":"true"},null,-1)));var ae=(0,a.aZ)({__name:"AdminMenu",props:{appConfig:null,appStatistics:{default:()=>({})}},setup(e){const t=e,{appConfig:n,appStatistics:r}=(0,i.BK)(t);return(e,t)=>{const s=(0,a.up)("router-link");return(0,a.wg)(),(0,a.iD)("div",X,[(0,a.Wm)(V.Z,null,{title:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.$t("admin.ADMINISTRATION")),1)])),content:(0,a.w5)((()=>[(0,a.Wm)(q,{appStatistics:(0,i.SU)(r)},null,8,["appStatistics"]),(0,a._)("div",J,[(0,a._)("dl",null,[(0,a._)("dt",null,[(0,a.Wm)(s,{to:"/admin/application"},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.$t("admin.APPLICATION")),1)])),_:1})]),(0,a._)("dd",Q,[(0,a.Uk)((0,o.zw)(e.$t("admin.UPDATE_APPLICATION_DESCRIPTION")),1),ee,(0,a._)("span",te,(0,o.zw)(e.$t("admin.REGISTRATION_"+((0,i.SU)(n).is_registration_enabled?"ENABLED":"DISABLED"))),1),(0,i.SU)(n).is_email_sending_enabled?(0,a.kq)("",!0):((0,a.wg)(),(0,a.iD)("span",ne,[re,(0,a.Uk)(" "+(0,o.zw)(e.$t("admin.EMAIL_SENDING_DISABLED")),1)]))]),(0,a._)("dt",null,[(0,a.Wm)(s,{to:"/admin/sports"},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)((0,o.kC)(e.$t("workouts.SPORT",0))),1)])),_:1})]),(0,a._)("dd",null,(0,o.zw)(e.$t("admin.ENABLE_DISABLE_SPORTS")),1),(0,a._)("dt",null,[(0,a.Wm)(s,{to:"/admin/users"},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)((0,o.kC)(e.$t("admin.USER",0))),1)])),_:1})]),(0,a._)("dd",null,(0,o.zw)(e.$t("admin.ADMIN_RIGHTS_DELETE_USER_ACCOUNT")),1)])])])),_:1})])}}});const oe=(0,P.Z)(ae,[["__scopeId","data-v-0dd66f89"]]);var se=oe,ie=n(9150),le=n(631);const ce=e=>((0,a.dD)("data-v-6d62af67"),e=e(),(0,a.Cn)(),e),ue={id:"admin-sports",class:"admin-card"},de={class:"responsive-table"},me=ce((()=>(0,a._)("th",null,"#",-1))),_e={class:"text-left"},Ee={class:"text-left sport-action"},Se=ce((()=>(0,a._)("th",null,null,-1))),Te={class:"text-center"},pe=ce((()=>(0,a._)("span",{class:"cell-heading"},"id",-1))),Ae={class:"cell-heading"},Oe={class:"sport-label"},Ie={class:"cell-heading"},Re={class:"text-center"},Ue={class:"cell-heading"},ge={class:"sport-action"},Ne={class:"cell-heading"},he={class:"action-button"},ze=["onClick"],we={key:0,class:"has-workouts"},fe=ce((()=>(0,a._)("i",{class:"fa fa-warning","aria-hidden":"true"},null,-1)));var ve=(0,a.aZ)({__name:"AdminSports",setup(e){const{t:t}=(0,ie.QT)(),n=(0,c.o)(),r=(0,a.Fl)((()=>(0,le.xH)(n.getters[l.O8.GETTERS.SPORTS],t))),u=(0,a.Fl)((()=>n.getters[l.SY.GETTERS.ERROR_MESSAGES]));function d(e,t){n.dispatch(l.O8.ACTIONS.UPDATE_SPORTS,{id:e,isActive:t})}return(e,t)=>{const n=(0,a.up)("SportImage"),l=(0,a.up)("ErrorMessage"),c=(0,a.up)("Card");return(0,a.wg)(),(0,a.iD)("div",ue,[(0,a.Wm)(c,null,{title:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.$t("admin.SPORTS.TITLE")),1)])),content:(0,a.w5)((()=>[(0,a._)("button",{class:"top-button",onClick:t[0]||(t[0]=(0,s.iM)((t=>e.$router.push("/admin")),["prevent"]))},(0,o.zw)(e.$t("admin.BACK_TO_ADMIN")),1),(0,a._)("div",de,[(0,a._)("table",null,[(0,a._)("thead",null,[(0,a._)("tr",null,[me,(0,a._)("th",null,(0,o.zw)(e.$t("admin.SPORTS.TABLE.IMAGE")),1),(0,a._)("th",_e,(0,o.zw)(e.$t("admin.SPORTS.TABLE.LABEL")),1),(0,a._)("th",null,(0,o.zw)(e.$t("admin.SPORTS.TABLE.ACTIVE")),1),(0,a._)("th",Ee,(0,o.zw)(e.$t("admin.ACTION")),1),Se])]),(0,a._)("tbody",null,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,i.SU)(r),(t=>((0,a.wg)(),(0,a.iD)("tr",{key:t.id},[(0,a._)("td",Te,[pe,(0,a.Uk)(" "+(0,o.zw)(t.id),1)]),(0,a._)("td",null,[(0,a._)("span",Ae,(0,o.zw)(e.$t("admin.SPORTS.TABLE.IMAGE")),1),(0,a.Wm)(n,{title:t.translatedLabel,"sport-label":t.label,color:t.color},null,8,["title","sport-label","color"])]),(0,a._)("td",Oe,[(0,a._)("span",Ie,(0,o.zw)(e.$t("admin.SPORTS.TABLE.LABEL")),1),(0,a.Uk)(" "+(0,o.zw)(t.translatedLabel),1)]),(0,a._)("td",Re,[(0,a._)("span",Ue,(0,o.zw)(e.$t("admin.SPORTS.TABLE.ACTIVE")),1),(0,a._)("i",{class:(0,o.C_)("fa fa"+(t.is_active?"-check":"")),"aria-hidden":"true"},null,2)]),(0,a._)("td",ge,[(0,a._)("span",Ne,(0,o.zw)(e.$t("admin.ACTION")),1),(0,a._)("div",he,[(0,a._)("button",{class:(0,o.C_)({danger:t.is_active}),onClick:e=>d(t.id,!t.is_active)},(0,o.zw)(e.$t(`buttons.${t.is_active?"DIS":"EN"}ABLE`)),11,ze),t.has_workouts?((0,a.wg)(),(0,a.iD)("span",we,[fe,(0,a.Uk)(" "+(0,o.zw)(e.$t("admin.SPORTS.TABLE.HAS_WORKOUTS")),1)])):(0,a.kq)("",!0)])])])))),128))])]),(0,i.SU)(u)?((0,a.wg)(),(0,a.j4)(l,{key:0,message:(0,i.SU)(u)},null,8,["message"])):(0,a.kq)("",!0),(0,a._)("button",{onClick:t[1]||(t[1]=(0,s.iM)((t=>e.$router.push("/admin")),["prevent"]))},(0,o.zw)(e.$t("admin.BACK_TO_ADMIN")),1)])])),_:1})])}}});const Ce=(0,P.Z)(ve,[["__scopeId","data-v-6d62af67"]]);var De=Ce,ke=n(8626),Pe=n(5020),Le=n(6595);const Me={class:"users-filters"},be={class:"search-username"},ye=["onKeyup","placeholder"];var Ge=(0,a.aZ)({__name:"UsersNameFilter",emits:["filterOnUsername"],setup(e,{emit:t}){const n=(0,r.yj)(),l=(0,i.iH)(n.query.q?n.query.q:"");function c(){""!==l.value&&t("filterOnUsername",l)}function u(){l.value="",t("filterOnUsername",l.value)}return(e,t)=>((0,a.wg)(),(0,a.iD)("div",Me,[(0,a._)("div",be,[(0,a.wy)((0,a._)("input",{id:"username",name:"username","onUpdate:modelValue":t[0]||(t[0]=e=>l.value=e),onKeyup:(0,s.D2)(c,["enter"]),placeholder:e.$t("user.FILTER_ON_USERNAME")},null,40,ye),[[s.nr,l.value,void 0,{trim:!0}]]),""!==l.value?((0,a.wg)(),(0,a.iD)("i",{key:0,class:"fa fa-times","aria-hidden":"true",onClick:u})):(0,a.kq)("",!0)]),(0,a._)("i",{class:(0,o.C_)(["fa fa-search",{"fa-disabled":""===l.value}]),"aria-hidden":"true",onClick:c},null,2)]))}});const Fe=(0,P.Z)(Ge,[["__scopeId","data-v-627a8e91"]]);var We=Fe,Ke=n(2766),Ye=n(6558);const xe=e=>((0,a.dD)("data-v-dc12ff78"),e=e(),(0,a.Cn)(),e),Be={id:"admin-users",class:"admin-card"},$e={key:0,class:"no-users"},Ze={key:1,class:"responsive-table"},He=xe((()=>(0,a._)("th",null,"#",-1))),qe={class:"left-text"},Ve={class:"left-text"},je={class:"left-text"},Xe={class:"cell-heading"},Je={class:"cell-heading"},Qe={class:"cell-heading"},et={class:"cell-heading"},tt={class:"text-center"},nt={class:"cell-heading"},rt={class:"text-center"},at={class:"cell-heading"},ot={class:"text-center"},st={class:"cell-heading"},it={class:"text-center"},lt={class:"cell-heading"},ct=["disabled","onClick"];var ut=(0,a.aZ)({__name:"AdminUsers",setup(e){const t=(0,c.o)(),n=(0,r.yj)(),u=(0,r.tv)(),d=["is_active","admin","created_at","username","workouts_count"],m="created_at";let _=(0,i.qj)((0,Ke.pm)(n.query,d,m));const E=(0,a.Fl)((()=>t.getters[l.YN.GETTERS.AUTH_USER_PROFILE])),S=(0,a.Fl)((()=>t.getters[l.RT.GETTERS.USERS])),T=(0,a.Fl)((()=>t.getters[l.RT.GETTERS.USERS_PAGINATION])),p=(0,a.Fl)((()=>t.getters[l.SY.GETTERS.ERROR_MESSAGES]));function A(e){t.dispatch(l.RT.ACTIONS.GET_USERS,e)}function O(e){R("q",e.value)}function I(e,n){t.dispatch(l.RT.ACTIONS.UPDATE_USER,{username:e,admin:n})}function R(e,t){_[e]=t,"per_page"===e&&(_.page=1),u.push({path:"/admin/users",query:_})}return(0,a.wF)((()=>A(_))),(0,a.Ah)((()=>{t.dispatch(l.RT.ACTIONS.EMPTY_USERS)})),(0,a.YP)((()=>n.query),(e=>{_=(0,Ke.pm)(e,d,m,{query:_}),A(_)})),(e,t)=>{const n=(0,a.up)("router-link"),r=(0,a.up)("ErrorMessage"),l=(0,a.up)("Card");return(0,a.wg)(),(0,a.iD)("div",Be,[(0,a.Wm)(l,null,{title:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)((0,o.kC)(e.$t("admin.USER",0))),1)])),content:(0,a.w5)((()=>[(0,a._)("button",{class:"top-button",onClick:t[0]||(t[0]=(0,s.iM)((t=>e.$router.push("/admin")),["prevent"]))},(0,o.zw)(e.$t("admin.BACK_TO_ADMIN")),1),(0,a.Wm)(We,{onFilterOnUsername:O}),(0,a.Wm)(ke.Z,{sort:(0,i.SU)(Ke.fS),order_by:d,query:(0,i.SU)(_),message:"admin.USERS.SELECTS.ORDER_BY",onUpdateSelect:R},null,8,["sort","query"]),0===(0,i.SU)(S).length?((0,a.wg)(),(0,a.iD)("div",$e,(0,o.zw)(e.$t("user.NO_USERS_FOUND")),1)):((0,a.wg)(),(0,a.iD)("div",Ze,[(0,a._)("table",null,[(0,a._)("thead",null,[(0,a._)("tr",null,[He,(0,a._)("th",qe,(0,o.zw)(e.$t("user.USERNAME")),1),(0,a._)("th",Ve,(0,o.zw)(e.$t("user.EMAIL")),1),(0,a._)("th",je,(0,o.zw)(e.$t("user.PROFILE.REGISTRATION_DATE")),1),(0,a._)("th",null,(0,o.zw)((0,o.kC)(e.$t("workouts.WORKOUT",0))),1),(0,a._)("th",null,(0,o.zw)(e.$t("admin.ACTIVE")),1),(0,a._)("th",null,(0,o.zw)(e.$t("user.ADMIN")),1),(0,a._)("th",null,(0,o.zw)(e.$t("admin.ACTION")),1)])]),(0,a._)("tbody",null,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,i.SU)(S),(t=>((0,a.wg)(),(0,a.iD)("tr",{key:t.username},[(0,a._)("td",null,[(0,a._)("span",Xe,(0,o.zw)(e.$t("user.PROFILE.PICTURE")),1),(0,a.Wm)(Le.Z,{user:t},null,8,["user"])]),(0,a._)("td",null,[(0,a._)("span",Je,(0,o.zw)(e.$t("user.USERNAME")),1),(0,a.Wm)(n,{to:`/admin/users/${t.username}`},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(t.username),1)])),_:2},1032,["to"])]),(0,a._)("td",null,[(0,a._)("span",Qe,(0,o.zw)(e.$t("user.EMAIL")),1),(0,a.Uk)(" "+(0,o.zw)(t.email),1)]),(0,a._)("td",null,[(0,a._)("span",et,(0,o.zw)(e.$t("user.PROFILE.REGISTRATION_DATE")),1),(0,a.Uk)(" "+(0,o.zw)((0,i.SU)(Ye.p6)(t.created_at,(0,i.SU)(E).timezone,(0,i.SU)(E).date_format)),1)]),(0,a._)("td",tt,[(0,a._)("span",nt,(0,o.zw)((0,o.kC)(e.$t("workouts.WORKOUT",0))),1),(0,a.Uk)(" "+(0,o.zw)(t.nb_workouts),1)]),(0,a._)("td",rt,[(0,a._)("span",at,(0,o.zw)(e.$t("admin.ACTIVE")),1),(0,a._)("i",{class:(0,o.C_)(`fa fa${t.is_active?"-check":""}-square-o`),"aria-hidden":"true"},null,2)]),(0,a._)("td",ot,[(0,a._)("span",st,(0,o.zw)(e.$t("user.ADMIN")),1),(0,a._)("i",{class:(0,o.C_)(`fa fa${t.admin?"-check":""}-square-o`),"aria-hidden":"true"},null,2)]),(0,a._)("td",it,[(0,a._)("span",lt,(0,o.zw)(e.$t("admin.ACTION")),1),(0,a._)("button",{class:(0,o.C_)({danger:t.admin}),disabled:t.username===(0,i.SU)(E).username,onClick:e=>I(t.username,!t.admin)},(0,o.zw)(e.$t(`admin.USERS.TABLE.${t.admin?"REMOVE":"ADD"}_ADMIN_RIGHTS`)),11,ct)])])))),128))])]),(0,i.SU)(T).page?((0,a.wg)(),(0,a.j4)(Pe.Z,{key:0,path:"/admin/users",pagination:(0,i.SU)(T),query:(0,i.SU)(_)},null,8,["pagination","query"])):(0,a.kq)("",!0),(0,i.SU)(p)?((0,a.wg)(),(0,a.j4)(r,{key:1,message:(0,i.SU)(p)},null,8,["message"])):(0,a.kq)("",!0),(0,a._)("button",{onClick:t[1]||(t[1]=(0,s.iM)((t=>e.$router.push("/admin")),["prevent"]))},(0,o.zw)(e.$t("admin.BACK_TO_ADMIN")),1)]))])),_:1})])}}});const dt=(0,P.Z)(ut,[["__scopeId","data-v-dc12ff78"]]);var mt=dt,_t=n(2179);const Et={class:"profile-tabs custom-checkboxes-group"},St={class:"profile-tabs-checkboxes custom-checkboxes"},Tt=["id","name","checked","disabled","onInput"];var pt=(0,a.aZ)({__name:"UserProfileTabs",props:{tabs:null,selectedTab:null,edition:{type:Boolean},disabled:{type:Boolean,default:!1}},setup(e){const t=e,{tabs:n,selectedTab:r,disabled:s}=(0,i.BK)(t);function l(e){switch(e){case"ACCOUNT":case"PICTURE":return`/profile/edit/${e.toLocaleLowerCase()}`;case"APPS":case"PREFERENCES":case"SPORTS":return`/profile${t.edition?"/edit":""}/${e.toLocaleLowerCase()}`;default:case"PROFILE":return"/profile"+(t.edition?"/edit":"")}}return(e,t)=>((0,a.wg)(),(0,a.iD)("div",Et,[(0,a._)("div",St,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,i.SU)(n),(t=>((0,a.wg)(),(0,a.iD)("div",{class:"profile-tab custom-checkbox",key:t},[(0,a._)("label",null,[(0,a._)("input",{type:"radio",id:t,name:t,checked:(0,i.SU)(r).split("/")[0]===t,disabled:(0,i.SU)(s),onInput:n=>e.$router.push(l(t))},null,40,Tt),(0,a._)("span",null,(0,o.zw)(e.$t(`user.PROFILE.TABS.${t}`)),1)])])))),128))])]))}});const At=pt;var Ot=At;const It={id:"user-profile"},Rt={class:"box"};var Ut=(0,a.aZ)({__name:"index",props:{user:null,tab:null},setup(e){const t=e,{user:n,tab:r}=(0,i.BK)(t),o=["PROFILE","PREFERENCES","SPORTS","APPS"];return(e,t)=>{const s=(0,a.up)("router-view");return(0,a.wg)(),(0,a.iD)("div",It,[(0,a.Wm)(_t.Z,{user:(0,i.SU)(n)},null,8,["user"]),(0,a._)("div",Rt,[(0,a.Wm)(Ot,{tabs:o,selectedTab:(0,i.SU)(r),edition:!1},null,8,["selectedTab"]),(0,a.Wm)(s,{user:(0,i.SU)(n)},null,8,["user"])])])}}});const gt=(0,P.Z)(Ut,[["__scopeId","data-v-9729cba4"]]);var Nt=gt,ht=n(1585),zt=n(6287);const wt={id:"user-preferences",class:"description-list"},ft={class:"profile-buttons"};var vt=(0,a.aZ)({__name:"UserPreferences",props:{user:null},setup(e){const t=e,n=(0,c.o)(),r=(0,a.Fl)((()=>n.getters[l.SY.GETTERS.LANGUAGE])),s=(0,a.Fl)((()=>t.user.language?zt.zK[t.user.language]:zt.zK.en)),u=(0,a.Fl)((()=>t.user.weekm?"MONDAY":"SUNDAY")),d=(0,a.Fl)((()=>t.user.timezone?t.user.timezone:"Europe/Paris")),m=(0,a.Fl)((()=>t.user.date_format?t.user.date_format:"MM/dd/yyyy")),_=(0,a.Fl)((()=>t.user.display_ascent?"DISPLAYED":"HIDDEN"));return(t,n)=>((0,a.wg)(),(0,a.iD)("div",wt,[(0,a._)("dl",null,[(0,a._)("dt",null,(0,o.zw)(t.$t("user.PROFILE.LANGUAGE"))+":",1),(0,a._)("dd",null,(0,o.zw)((0,i.SU)(s)),1),(0,a._)("dt",null,(0,o.zw)(t.$t("user.PROFILE.TIMEZONE"))+":",1),(0,a._)("dd",null,(0,o.zw)((0,i.SU)(d)),1),(0,a._)("dt",null,(0,o.zw)(t.$t("user.PROFILE.DATE_FORMAT"))+":",1),(0,a._)("dd",null,(0,o.zw)((0,i.SU)(Ye.mh)((0,i.SU)(m),(0,i.SU)(r))),1),(0,a._)("dt",null,(0,o.zw)(t.$t("user.PROFILE.FIRST_DAY_OF_WEEK"))+":",1),(0,a._)("dd",null,(0,o.zw)(t.$t(`user.PROFILE.${(0,i.SU)(u)}`)),1),(0,a._)("dt",null,(0,o.zw)(t.$t("user.PROFILE.UNITS.LABEL"))+":",1),(0,a._)("dd",null,(0,o.zw)(t.$t("user.PROFILE.UNITS."+(e.user.imperial_units?"IMPERIAL":"METRIC"))),1),(0,a._)("dt",null,(0,o.zw)(t.$t("user.PROFILE.ASCENT_DATA"))+":",1),(0,a._)("dd",null,(0,o.zw)(t.$t(`common.${(0,i.SU)(_)}`)),1)]),(0,a._)("div",ft,[(0,a._)("button",{onClick:n[0]||(n[0]=e=>t.$router.push("/profile/edit/preferences"))},(0,o.zw)(t.$t("user.PROFILE.EDIT_PREFERENCES")),1),(0,a._)("button",{onClick:n[1]||(n[1]=e=>t.$router.push("/"))},(0,o.zw)(t.$t("common.HOME")),1)])]))}});const Ct=vt;var Dt=Ct;const kt={id:"user-profile-edition",class:"center-card"};var Pt=(0,a.aZ)({__name:"index",props:{user:null,tab:null},setup(e){const t=e,n=(0,c.o)(),{user:r,tab:s}=(0,i.BK)(t),u=["PROFILE","ACCOUNT","PICTURE","PREFERENCES","SPORTS"],d=(0,a.Fl)((()=>n.getters[l.YN.GETTERS.USER_LOADING]));return(e,t)=>{const n=(0,a.up)("router-view"),l=(0,a.up)("Card");return(0,a.wg)(),(0,a.iD)("div",kt,[(0,a.Wm)(l,null,{title:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.$t(`user.PROFILE.${(0,i.SU)(s)}_EDITION`)),1)])),content:(0,a.w5)((()=>[(0,a.Wm)(Ot,{tabs:u,selectedTab:(0,i.SU)(s),edition:!0,disabled:(0,i.SU)(d)},null,8,["selectedTab","disabled"]),(0,a.Wm)(n,{user:(0,i.SU)(r)},null,8,["user"])])),_:1})])}}});const Lt=Pt;var Mt=Lt,bt=n(8403);const yt={id:"user-infos-edition"},Gt={class:"profile-form form-box"},Ft={key:1,class:"info-box success-message"},Wt=["onSubmit"],Kt={class:"form-items",for:"email"},Yt=["disabled"],xt={class:"form-items",for:"password-field"},Bt={class:"form-items",for:"new-password-field"},$t={class:"form-buttons"},Zt={class:"confirm",type:"submit"};var Ht=(0,a.aZ)({__name:"UserAccountEdition",props:{user:null},setup(e){const t=e,{user:n}=(0,i.BK)(t),r=(0,c.o)(),u=(0,i.qj)({email:"",password:"",new_password:""}),d=(0,a.Fl)((()=>r.getters[l.YN.GETTERS.USER_LOADING])),m=(0,a.Fl)((()=>r.getters[l.SY.GETTERS.APP_CONFIG])),_=(0,a.Fl)((()=>r.getters[l.YN.GETTERS.IS_SUCCESS])),E=(0,i.iH)(!1),S=(0,a.Fl)((()=>r.getters[l.SY.GETTERS.ERROR_MESSAGES])),T=(0,i.iH)(!1),p=(0,i.iH)(!1);function A(){T.value=!0}function O(e){u.email=e.email}function I(e){u.password=e}function R(e){u.new_password=e}function U(){const e={email:u.email,password:u.password};u.new_password&&(e.new_password=u.new_password),E.value=u.email!==n.value.email,r.dispatch(l.YN.ACTIONS.UPDATE_USER_ACCOUNT,e)}function g(e){p.value=e}function N(e){r.dispatch(l.YN.ACTIONS.DELETE_ACCOUNT,{username:e})}return(0,a.bv)((()=>{t.user&&O(t.user)})),(0,a.Ah)((()=>{r.commit(l.YN.MUTATIONS.UPDATE_IS_SUCCESS,!1),r.commit(l.SY.MUTATIONS.EMPTY_ERROR_MESSAGES)})),(0,a.YP)((()=>_.value),(async e=>{e&&(I(""),R(""),O(n.value),T.value=!1)})),(0,a.YP)((()=>n.value.email),(async()=>{O(n.value)})),(e,t)=>{const r=(0,a.up)("Modal"),l=(0,a.up)("ErrorMessage");return(0,a.wg)(),(0,a.iD)("div",yt,[p.value?((0,a.wg)(),(0,a.j4)(r,{key:0,title:e.$t("common.CONFIRMATION"),message:e.$t("user.CONFIRM_ACCOUNT_DELETION"),onConfirmAction:t[0]||(t[0]=e=>N((0,i.SU)(n).username)),onCancelAction:t[1]||(t[1]=e=>g(!1))},null,8,["title","message"])):(0,a.kq)("",!0),(0,a._)("div",Gt,[(0,i.SU)(S)?((0,a.wg)(),(0,a.j4)(l,{key:0,message:(0,i.SU)(S)},null,8,["message"])):(0,a.kq)("",!0),(0,i.SU)(_)?((0,a.wg)(),(0,a.iD)("div",Ft,(0,o.zw)(e.$t(`user.PROFILE.SUCCESSFUL_${E.value&&(0,i.SU)(m).is_email_sending_enabled?"EMAIL_":""}UPDATE`)),1)):(0,a.kq)("",!0),(0,a._)("form",{class:(0,o.C_)({errors:T.value}),onSubmit:(0,s.iM)(U,["prevent"])},[(0,a._)("label",Kt,[(0,a.Uk)((0,o.zw)(e.$t("user.EMAIL"))+"* ",1),(0,a.wy)((0,a._)("input",{id:"email","onUpdate:modelValue":t[2]||(t[2]=e=>u.email=e),disabled:(0,i.SU)(d),required:!0,onInvalid:A},null,40,Yt),[[s.nr,u.email]])]),(0,a._)("label",xt,[(0,a.Uk)((0,o.zw)(e.$t("user.CURRENT_PASSWORD"))+"* ",1),(0,a.Wm)(bt.Z,{id:"password-field",disabled:(0,i.SU)(d),password:u.password,required:!0,onUpdatePassword:I,onPasswordError:A},null,8,["disabled","password"])]),(0,a._)("label",Bt,[(0,a.Uk)((0,o.zw)(e.$t("user.NEW_PASSWORD"))+" ",1),(0,a.Wm)(bt.Z,{id:"new-password-field",disabled:(0,i.SU)(d),checkStrength:!0,password:u.new_password,isSuccess:!1,onUpdatePassword:R,onPasswordError:A},null,8,["disabled","password"])]),(0,a._)("div",$t,[(0,a._)("button",Zt,(0,o.zw)(e.$t("buttons.SUBMIT")),1),(0,a._)("button",{class:"cancel",onClick:t[3]||(t[3]=(0,s.iM)((t=>e.$router.push("/profile")),["prevent"]))},(0,o.zw)(e.$t("buttons.CANCEL")),1),(0,a._)("button",{class:"danger",onClick:t[4]||(t[4]=(0,s.iM)((e=>g(!0)),["prevent"]))},(0,o.zw)(e.$t("buttons.DELETE_MY_ACCOUNT")),1)])],42,Wt)])])}}});const qt=(0,P.Z)(Ht,[["__scopeId","data-v-37b8c4c8"]]);var Vt=qt,jt=n(4850);const Xt={id:"user-infos-edition"},Jt={class:"profile-form form-box"},Qt=["onSubmit"],en={class:"form-items",for:"registrationDate"},tn=["value"],nn={class:"form-items",for:"first_name"},rn=["disabled"],an={class:"form-items",for:"last_name"},on={class:"form-items",for:"birth_date"},sn=["disabled"],ln={class:"form-items",for:"location"},cn=["disabled"],un={class:"form-items"},dn={class:"form-buttons"},mn={class:"confirm",type:"submit"};var _n=(0,a.aZ)({__name:"UserInfosEdition",props:{user:null},setup(e){const t=e,n=(0,c.o)(),r=(0,i.qj)({first_name:"",last_name:"",birth_date:"",location:"",bio:""}),u=(0,a.Fl)((()=>t.user.created_at?(0,Ye.p6)(t.user.created_at,t.user.timezone,t.user.date_format):"")),d=(0,a.Fl)((()=>n.getters[l.YN.GETTERS.USER_LOADING])),m=(0,a.Fl)((()=>n.getters[l.SY.GETTERS.ERROR_MESSAGES]));function _(e){r.first_name=e.first_name?e.first_name:"",r.last_name=e.last_name?e.last_name:"",r.birth_date=e.birth_date?(0,jt.Z)(new Date(e.birth_date),"yyyy-MM-dd"):"",r.location=e.location?e.location:"",r.bio=e.bio?e.bio:""}function E(e){r.bio=e}function S(){n.dispatch(l.YN.ACTIONS.UPDATE_USER_PROFILE,r)}return(0,a.bv)((()=>{t.user&&_(t.user)})),(0,a.Ah)((()=>{n.commit(l.SY.MUTATIONS.EMPTY_ERROR_MESSAGES)})),(e,t)=>{const n=(0,a.up)("ErrorMessage"),l=(0,a.up)("CustomTextArea");return(0,a.wg)(),(0,a.iD)("div",Xt,[(0,a._)("div",Jt,[(0,i.SU)(m)?((0,a.wg)(),(0,a.j4)(n,{key:0,message:(0,i.SU)(m)},null,8,["message"])):(0,a.kq)("",!0),(0,a._)("form",{onSubmit:(0,s.iM)(S,["prevent"])},[(0,a._)("label",en,[(0,a.Uk)((0,o.zw)(e.$t("user.PROFILE.REGISTRATION_DATE"))+" ",1),(0,a._)("input",{id:"registrationDate",value:(0,i.SU)(u),disabled:""},null,8,tn)]),(0,a._)("label",nn,[(0,a.Uk)((0,o.zw)(e.$t("user.PROFILE.FIRST_NAME"))+" ",1),(0,a.wy)((0,a._)("input",{id:"first_name","onUpdate:modelValue":t[0]||(t[0]=e=>r.first_name=e),disabled:(0,i.SU)(d)},null,8,rn),[[s.nr,r.first_name]])]),(0,a._)("label",an,[(0,a.Uk)((0,o.zw)(e.$t("user.PROFILE.LAST_NAME"))+" ",1),(0,a.wy)((0,a._)("input",{id:"last_name","onUpdate:modelValue":t[1]||(t[1]=e=>r.last_name=e)},null,512),[[s.nr,r.last_name]])]),(0,a._)("label",on,[(0,a.Uk)((0,o.zw)(e.$t("user.PROFILE.BIRTH_DATE"))+" ",1),(0,a.wy)((0,a._)("input",{id:"birth_date",type:"date",class:"birth-date","onUpdate:modelValue":t[2]||(t[2]=e=>r.birth_date=e),disabled:(0,i.SU)(d)},null,8,sn),[[s.nr,r.birth_date]])]),(0,a._)("label",ln,[(0,a.Uk)((0,o.zw)(e.$t("user.PROFILE.LOCATION"))+" ",1),(0,a.wy)((0,a._)("input",{id:"location","onUpdate:modelValue":t[3]||(t[3]=e=>r.location=e),disabled:(0,i.SU)(d)},null,8,cn),[[s.nr,r.location]])]),(0,a._)("label",un,[(0,a.Uk)((0,o.zw)(e.$t("user.PROFILE.BIO"))+" ",1),(0,a.Wm)(l,{name:"bio",charLimit:200,input:r.bio,disabled:(0,i.SU)(d),onUpdateValue:E},null,8,["input","disabled"])]),(0,a._)("div",dn,[(0,a._)("button",mn,(0,o.zw)(e.$t("buttons.SUBMIT")),1),(0,a._)("button",{class:"cancel",onClick:t[4]||(t[4]=(0,s.iM)((t=>e.$router.push("/profile")),["prevent"]))},(0,o.zw)(e.$t("buttons.CANCEL")),1)])],40,Qt)])])}}});const En=(0,P.Z)(_n,[["__scopeId","data-v-5e5a4552"]]);var Sn=En;const Tn=e=>((0,a.dD)("data-v-687e9604"),e=e(),(0,a.Cn)(),e),pn={id:"user-picture-edition"},An={class:"user-picture-form"},On=["onSubmit"],In={class:"picture-help"},Rn={class:"info-box"},Un=Tn((()=>(0,a._)("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1))),gn={class:"picture-buttons"},Nn=["disabled"];var hn=(0,a.aZ)({__name:"UserPictureEdition",props:{user:null},setup(e){const t=e,n=(0,c.o)(),{user:r}=(0,i.BK)(t),d=(0,a.Fl)((()=>n.getters[l.SY.GETTERS.ERROR_MESSAGES])),m=(0,a.Fl)((()=>n.getters[l.SY.GETTERS.APP_CONFIG])),_=m.value.max_single_file_size?(0,u.Z)(m.value.max_single_file_size):"",E=(0,i.iH)(null);function S(){n.dispatch(l.YN.ACTIONS.DELETE_PICTURE)}function T(e){e.target.files&&(E.value=e.target.files[0])}function p(){E.value&&n.dispatch(l.YN.ACTIONS.UPDATE_USER_PICTURE,{picture:E.value})}return(0,a.Ah)((()=>{n.commit(l.SY.MUTATIONS.EMPTY_ERROR_MESSAGES)})),(e,t)=>{const n=(0,a.up)("ErrorMessage");return(0,a.wg)(),(0,a.iD)("div",pn,[(0,a._)("div",An,[(0,i.SU)(d)?((0,a.wg)(),(0,a.j4)(n,{key:0,message:(0,i.SU)(d)},null,8,["message"])):(0,a.kq)("",!0),(0,a.Wm)(Le.Z,{user:(0,i.SU)(r)},null,8,["user"]),(0,a._)("form",{onSubmit:(0,s.iM)(p,["prevent"])},[(0,a._)("input",{type:"file",name:"picture",accept:".png,.jpg,.gif",onInput:T},null,32),(0,a._)("div",In,[(0,a._)("span",Rn,[Un,(0,a.Uk)(" "+(0,o.zw)(e.$t("workouts.MAX_SIZE"))+": "+(0,o.zw)((0,i.SU)(_)),1)])]),(0,a._)("div",gn,[(0,a._)("button",{type:"submit",disabled:!E.value},(0,o.zw)(e.$t("user.PROFILE.PICTURE_UPDATE")),9,Nn),(0,i.SU)(r).picture?((0,a.wg)(),(0,a.iD)("button",{key:0,class:"danger",onClick:S},(0,o.zw)(e.$t("user.PROFILE.PICTURE_REMOVE")),1)):(0,a.kq)("",!0),(0,a._)("button",{class:"cancel",onClick:t[0]||(t[0]=t=>e.$router.push("/profile"))},(0,o.zw)(e.$t("user.PROFILE.BACK_TO_PROFILE")),1)])],40,On)])])}}});const zn=(0,P.Z)(hn,[["__scopeId","data-v-687e9604"]]);var wn=zn;const fn=["Africa/Abidjan","Africa/Accra","Africa/Algiers","Africa/Bissau","Africa/Cairo","Africa/Casablanca","Africa/Ceuta","Africa/El_Aaiun","Africa/Johannesburg","Africa/Juba","Africa/Khartoum","Africa/Lagos","Africa/Maputo","Africa/Monrovia","Africa/Nairobi","Africa/Ndjamena","Africa/Sao_Tome","Africa/Tripoli","Africa/Tunis","Africa/Windhoek","America/Adak","America/Anchorage","America/Araguaina","America/Argentina/Buenos_Aires","America/Argentina/Catamarca","America/Argentina/Cordoba","America/Argentina/Jujuy","America/Argentina/La_Rioja","America/Argentina/Mendoza","America/Argentina/Rio_Gallegos","America/Argentina/Salta","America/Argentina/San_Juan","America/Argentina/San_Luis","America/Argentina/Tucuman","America/Argentina/Ushuaia","America/Asuncion","America/Atikokan","America/Bahia","America/Bahia_Banderas","America/Barbados","America/Belem","America/Belize","America/Blanc-Sablon","America/Boa_Vista","America/Bogota","America/Boise","America/Cambridge_Bay","America/Campo_Grande","America/Cancun","America/Caracas","America/Cayenne","America/Chicago","America/Chihuahua","America/Costa_Rica","America/Creston","America/Cuiaba","America/Curacao","America/Danmarkshavn","America/Dawson","America/Dawson_Creek","America/Denver","America/Detroit","America/Edmonton","America/Eirunepe","America/El_Salvador","America/Fortaleza","America/Fort_Nelson","America/Glace_Bay","America/Godthab","America/Goose_Bay","America/Grand_Turk","America/Guatemala","America/Guayaquil","America/Guyana","America/Halifax","America/Havana","America/Hermosillo","America/Indiana/Indianapolis","America/Indiana/Knox","America/Indiana/Marengo","America/Indiana/Petersburg","America/Indiana/Tell_City","America/Indiana/Vevay","America/Indiana/Vincennes","America/Indiana/Winamac","America/Inuvik","America/Iqaluit","America/Jamaica","America/Juneau","America/Kentucky/Louisville","America/Kentucky/Monticello","America/La_Paz","America/Lima","America/Los_Angeles","America/Maceio","America/Managua","America/Manaus","America/Martinique","America/Matamoros","America/Mazatlan","America/Menominee","America/Merida","America/Metlakatla","America/Mexico_City","America/Miquelon","America/Moncton","America/Monterrey","America/Montevideo","America/Nassau","America/New_York","America/Nipigon","America/Nome","America/Noronha","America/North_Dakota/Beulah","America/North_Dakota/Center","America/North_Dakota/New_Salem","America/Ojinaga","America/Panama","America/Pangnirtung","America/Paramaribo","America/Phoenix","America/Port-au-Prince","America/Port_of_Spain","America/Porto_Velho","America/Puerto_Rico","America/Punta_Arenas","America/Rainy_River","America/Rankin_Inlet","America/Recife","America/Regina","America/Resolute","America/Rio_Branco","America/Santarem","America/Santiago","America/Santo_Domingo","America/Sao_Paulo","America/Scoresbysund","America/Sitka","America/St_Johns","America/Swift_Current","America/Tegucigalpa","America/Thule","America/Thunder_Bay","America/Tijuana","America/Toronto","America/Vancouver","America/Whitehorse","America/Winnipeg","America/Yakutat","America/Yellowknife","Antarctica/Casey","Antarctica/Davis","Antarctica/DumontDUrville","Antarctica/Macquarie","Antarctica/Mawson","Antarctica/Palmer","Antarctica/Rothera","Antarctica/Syowa","Antarctica/Troll","Antarctica/Vostok","Asia/Almaty","Asia/Amman","Asia/Anadyr","Asia/Aqtau","Asia/Aqtobe","Asia/Ashgabat","Asia/Atyrau","Asia/Baghdad","Asia/Baku","Asia/Bangkok","Asia/Barnaul","Asia/Beirut","Asia/Bishkek","Asia/Brunei","Asia/Chita","Asia/Choibalsan","Asia/Colombo","Asia/Damascus","Asia/Dhaka","Asia/Dili","Asia/Dubai","Asia/Dushanbe","Asia/Famagusta","Asia/Gaza","Asia/Hebron","Asia/Ho_Chi_Minh","Asia/Hong_Kong","Asia/Hovd","Asia/Irkutsk","Asia/Jakarta","Asia/Jayapura","Asia/Jerusalem","Asia/Kabul","Asia/Kamchatka","Asia/Karachi","Asia/Kathmandu","Asia/Khandyga","Asia/Kolkata","Asia/Krasnoyarsk","Asia/Kuala_Lumpur","Asia/Kuching","Asia/Macau","Asia/Magadan","Asia/Makassar","Asia/Manila","Asia/Nicosia","Asia/Novokuznetsk","Asia/Novosibirsk","Asia/Omsk","Asia/Oral","Asia/Pontianak","Asia/Pyongyang","Asia/Qatar","Asia/Qostanay","Asia/Qyzylorda","Asia/Riyadh","Asia/Sakhalin","Asia/Samarkand","Asia/Seoul","Asia/Shanghai","Asia/Singapore","Asia/Srednekolymsk","Asia/Taipei","Asia/Tashkent","Asia/Tbilisi","Asia/Tehran","Asia/Thimphu","Asia/Tokyo","Asia/Tomsk","Asia/Ulaanbaatar","Asia/Urumqi","Asia/Ust-Nera","Asia/Vladivostok","Asia/Yakutsk","Asia/Yangon","Asia/Yekaterinburg","Asia/Yerevan","Atlantic/Azores","Atlantic/Bermuda","Atlantic/Canary","Atlantic/Cape_Verde","Atlantic/Faroe","Atlantic/Madeira","Atlantic/Reykjavik","Atlantic/South_Georgia","Atlantic/Stanley","Australia/Adelaide","Australia/Brisbane","Australia/Broken_Hill","Australia/Currie","Australia/Darwin","Australia/Eucla","Australia/Hobart","Australia/Lindeman","Australia/Lord_Howe","Australia/Melbourne","Australia/Perth","Australia/Sydney","Europe/Amsterdam","Europe/Andorra","Europe/Astrakhan","Europe/Athens","Europe/Belgrade","Europe/Berlin","Europe/Brussels","Europe/Bucharest","Europe/Budapest","Europe/Chisinau","Europe/Copenhagen","Europe/Dublin","Europe/Gibraltar","Europe/Helsinki","Europe/Istanbul","Europe/Kaliningrad","Europe/Kiev","Europe/Kirov","Europe/Lisbon","Europe/London","Europe/Luxembourg","Europe/Madrid","Europe/Malta","Europe/Minsk","Europe/Monaco","Europe/Moscow","Europe/Oslo","Europe/Paris","Europe/Prague","Europe/Riga","Europe/Rome","Europe/Samara","Europe/Saratov","Europe/Simferopol","Europe/Sofia","Europe/Stockholm","Europe/Tallinn","Europe/Tirane","Europe/Ulyanovsk","Europe/Uzhgorod","Europe/Vienna","Europe/Vilnius","Europe/Volgograd","Europe/Warsaw","Europe/Zaporozhye","Europe/Zurich","Indian/Chagos","Indian/Christmas","Indian/Cocos","Indian/Kerguelen","Indian/Mahe","Indian/Maldives","Indian/Mauritius","Indian/Reunion","Pacific/Apia","Pacific/Auckland","Pacific/Bougainville","Pacific/Chatham","Pacific/Chuuk","Pacific/Easter","Pacific/Efate","Pacific/Enderbury","Pacific/Fakaofo","Pacific/Fiji","Pacific/Funafuti","Pacific/Galapagos","Pacific/Gambier","Pacific/Guadalcanal","Pacific/Guam","Pacific/Honolulu","Pacific/Kiritimati","Pacific/Kosrae","Pacific/Kwajalein","Pacific/Majuro","Pacific/Marquesas","Pacific/Nauru","Pacific/Niue","Pacific/Norfolk","Pacific/Noumea","Pacific/Pago_Pago","Pacific/Palau","Pacific/Pitcairn","Pacific/Pohnpei","Pacific/Port_Moresby","Pacific/Rarotonga","Pacific/Tahiti","Pacific/Tarawa","Pacific/Tongatapu","Pacific/Wake","Pacific/Wallis"],vn={id:"tz-dropdown"},Cn=["value","disabled","onKeydown"],Dn=["onClick","onMouseover","autofocus"];var kn=(0,a.aZ)({__name:"TimezoneDropdown",props:{input:null,disabled:{type:Boolean,default:!1}},emits:["updateTimezone"],setup(e,{emit:t}){const n=e,{input:r,disabled:l}=(0,i.BK)(n),c=(0,i.iH)(n.input),u=(0,i.iH)(!1),d=(0,i.iH)(null),m=(0,i.iH)(0);function _(e){return e.toLowerCase().match(c.value.toLowerCase())}function E(e){m.value=e}function S(e){c.value=e,u.value=!1,t("updateTimezone",e)}function T(e){e.preventDefault(),d.value?.firstElementChild?.innerHTML&&S(d.value?.firstElementChild?.innerHTML)}function p(e){e.preventDefault(),u.value=!0,c.value=e.target.value.trim()}return(0,a.YP)((()=>n.input),(e=>{c.value=e})),(e,t)=>((0,a.wg)(),(0,a.iD)("div",vn,[(0,a._)("input",{class:"tz-dropdown-input",id:"timezone",name:"timezone",value:c.value,disabled:(0,i.SU)(l),required:"",onKeydown:[t[0]||(t[0]=(0,s.D2)((e=>S((0,i.SU)(r))),["esc"])),(0,s.D2)(T,["enter"])],onInput:p},null,40,Cn),u.value?((0,a.wg)(),(0,a.iD)("ul",{key:0,class:"tz-dropdown-list",ref_key:"tzList",ref:d},[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,i.SU)(fn).filter((e=>_(e))),((e,t)=>((0,a.wg)(),(0,a.iD)("li",{key:e,class:(0,o.C_)(["tz-dropdown-item",{focus:t===m.value}]),onClick:t=>S(e),onMouseover:e=>E(t),autofocus:t===m.value},(0,o.zw)(e),43,Dn)))),128))],512)):(0,a.kq)("",!0)]))}});const Pn=(0,P.Z)(kn,[["__scopeId","data-v-47ea2903"]]);var Ln=Pn;const Mn={id:"user-preferences-edition"},bn={class:"profile-form form-box"},yn=["onSubmit"],Gn={class:"form-items"},Fn=["disabled"],Wn=["value"],Kn={class:"form-items"},Yn={class:"form-items"},xn=["disabled"],Bn=["value"],$n={class:"form-items form-checkboxes"},Zn={class:"checkboxes-label"},Hn={class:"checkboxes"},qn=["id","name","checked","disabled","onInput"],Vn={class:"checkbox-label"},jn={class:"form-items form-checkboxes"},Xn={class:"checkboxes-label"},Jn={class:"checkboxes"},Qn=["id","name","checked","disabled","onInput"],er={class:"checkbox-label"},tr={class:"form-items form-checkboxes"},nr={class:"checkboxes-label"},rr={class:"checkboxes"},ar=["id","name","checked","disabled","onInput"],or={class:"checkbox-label"},sr={class:"form-buttons"},ir={class:"confirm",type:"submit"};var lr=(0,a.aZ)({__name:"UserPreferencesEdition",props:{user:null},setup(e){const t=e,n=(0,c.o)(),r=(0,i.qj)({display_ascent:!0,imperial_units:!1,language:"",timezone:"Europe/Paris",date_format:"dd/MM/yyyy",weekm:!1}),u=[{label:"SUNDAY",value:!1},{label:"MONDAY",value:!0}],d=[{label:"METRIC",value:!1},{label:"IMPERIAL",value:!0}],m=[{label:"DISPLAYED",value:!0},{label:"HIDDEN",value:!1}],_=(0,a.Fl)((()=>n.getters[l.YN.GETTERS.USER_LOADING])),E=(0,a.Fl)((()=>n.getters[l.SY.GETTERS.ERROR_MESSAGES])),S=(0,a.Fl)((()=>(0,Ye.d2)((new Date).toUTCString(),t.user.timezone,r.language)));function T(e){r.display_ascent=e.display_ascent,r.imperial_units=!!e.imperial_units&&e.imperial_units,r.language=e.language?e.language:"en",r.timezone=e.timezone?e.timezone:"Europe/Paris",r.date_format=e.date_format?e.date_format:"dd/MM/yyyy",r.weekm=!!e.weekm&&e.weekm}function p(){n.dispatch(l.YN.ACTIONS.UPDATE_USER_PREFERENCES,r)}function A(e){r.timezone=e}function O(e){r.display_ascent=e}function I(e){r.imperial_units=e}function R(e){r.weekm=e}return(0,a.bv)((()=>{t.user&&T(t.user)})),(0,a.Ah)((()=>{n.commit(l.SY.MUTATIONS.EMPTY_ERROR_MESSAGES)})),(e,t)=>{const n=(0,a.up)("ErrorMessage");return(0,a.wg)(),(0,a.iD)("div",Mn,[(0,a._)("div",bn,[(0,i.SU)(E)?((0,a.wg)(),(0,a.j4)(n,{key:0,message:(0,i.SU)(E)},null,8,["message"])):(0,a.kq)("",!0),(0,a._)("form",{onSubmit:(0,s.iM)(p,["prevent"])},[(0,a._)("label",Gn,[(0,a.Uk)((0,o.zw)(e.$t("user.PROFILE.LANGUAGE"))+" ",1),(0,a.wy)((0,a._)("select",{id:"language","onUpdate:modelValue":t[0]||(t[0]=e=>r.language=e),disabled:(0,i.SU)(_)},[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,i.SU)(zt.mT),(e=>((0,a.wg)(),(0,a.iD)("option",{value:e.value,key:e.value},(0,o.zw)(e.label),9,Wn)))),128))],8,Fn),[[s.bM,r.language]])]),(0,a._)("label",Kn,[(0,a.Uk)((0,o.zw)(e.$t("user.PROFILE.TIMEZONE"))+" ",1),(0,a.Wm)(Ln,{input:r.timezone,disabled:(0,i.SU)(_),onUpdateTimezone:A},null,8,["input","disabled"])]),(0,a._)("label",Yn,[(0,a.Uk)((0,o.zw)(e.$t("user.PROFILE.DATE_FORMAT"))+" ",1),(0,a.wy)((0,a._)("select",{id:"date_format","onUpdate:modelValue":t[1]||(t[1]=e=>r.date_format=e),disabled:(0,i.SU)(_)},[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,i.SU)(S),(e=>((0,a.wg)(),(0,a.iD)("option",{value:e.value,key:e.value},(0,o.zw)(e.label),9,Bn)))),128))],8,xn),[[s.bM,r.date_format]])]),(0,a._)("div",$n,[(0,a._)("span",Zn,(0,o.zw)(e.$t("user.PROFILE.FIRST_DAY_OF_WEEK")),1),(0,a._)("div",Hn,[((0,a.wg)(),(0,a.iD)(a.HY,null,(0,a.Ko)(u,(t=>(0,a._)("label",{key:t.label},[(0,a._)("input",{type:"radio",id:t.label,name:t.label,checked:t.value===r.weekm,disabled:(0,i.SU)(_),onInput:e=>R(t.value)},null,40,qn),(0,a._)("span",Vn,(0,o.zw)(e.$t(`user.PROFILE.${t.label}`)),1)]))),64))])]),(0,a._)("div",jn,[(0,a._)("span",Xn,(0,o.zw)(e.$t("user.PROFILE.UNITS.LABEL")),1),(0,a._)("div",Jn,[((0,a.wg)(),(0,a.iD)(a.HY,null,(0,a.Ko)(d,(t=>(0,a._)("label",{key:t.label},[(0,a._)("input",{type:"radio",id:t.label,name:t.label,checked:t.value===r.imperial_units,disabled:(0,i.SU)(_),onInput:e=>I(t.value)},null,40,Qn),(0,a._)("span",er,(0,o.zw)(e.$t(`user.PROFILE.UNITS.${t.label}`)),1)]))),64))])]),(0,a._)("div",tr,[(0,a._)("span",nr,(0,o.zw)(e.$t("user.PROFILE.ASCENT_DATA")),1),(0,a._)("div",rr,[((0,a.wg)(),(0,a.iD)(a.HY,null,(0,a.Ko)(m,(t=>(0,a._)("label",{key:t.label},[(0,a._)("input",{type:"radio",id:t.label,name:t.label,checked:t.value===r.display_ascent,disabled:(0,i.SU)(_),onInput:e=>O(t.value)},null,40,ar),(0,a._)("span",or,(0,o.zw)(e.$t(`common.${t.label}`)),1)]))),64))])]),(0,a._)("div",sr,[(0,a._)("button",ir,(0,o.zw)(e.$t("buttons.SUBMIT")),1),(0,a._)("button",{class:"cancel",onClick:t[2]||(t[2]=(0,s.iM)((t=>e.$router.push("/profile/preferences")),["prevent"]))},(0,o.zw)(e.$t("buttons.CANCEL")),1)])],40,yn)])])}}});const cr=(0,P.Z)(lr,[["__scopeId","data-v-065d5e6c"]]);var ur=cr;const dr=["profile:read","profile:write","users:read","users:write","workouts:read","workouts:write"],mr=["application:write"],_r={id:"new-oauth2-app"},Er={id:"new-oauth2-title"},Sr={id:"apps-form"},Tr=["onSubmit"],pr={class:"form-items"},Ar={class:"form-item"},Or={for:"app-name"},Ir={class:"form-item"},Rr={for:"app-description"},Ur={class:"form-item"},gr={for:"app-url"},Nr={class:"form-item"},hr={for:"app-redirect-uri"},zr={class:"form-item-scope"},wr={class:"form-item-scope-label"},fr={class:"scope-label"},vr=["name","checked","onChange"],Cr=["innerHTML"],Dr={class:"form-buttons"},kr=["disabled"];var Pr=(0,a.aZ)({__name:"AddUserApp",props:{authUser:null},setup(e){const t=e,n=(0,c.o)(),r=(0,i.qj)({client_name:"",client_uri:"",client_description:"",redirect_uri:""}),u=(0,i.qj)([]),d=(0,a.Fl)((()=>S(t.authUser,mr,dr)));function m(){const e={client_name:r.client_name,client_description:r.client_description,client_uri:r.client_uri,redirect_uris:[r.redirect_uri],scope:u.sort().join(" ")};n.dispatch(l.Km.ACTIONS.CREATE_CLIENT,e)}function _(e){r.client_description=e}function E(e){const t=u.indexOf(e);t>-1?u.splice(t,1):u.push(e)}function S(e,t,n){const r=[...n];return e.admin&&r.push(...t),r.sort()}return(e,t)=>{const n=(0,a.up)("CustomTextArea");return(0,a.wg)(),(0,a.iD)("div",_r,[(0,a._)("h1",Er,(0,o.zw)(e.$t("oauth2.ADD_A_NEW_APP")),1),(0,a._)("div",Sr,[(0,a._)("form",{onSubmit:(0,s.iM)(m,["prevent"])},[(0,a._)("div",pr,[(0,a._)("div",Ar,[(0,a._)("label",Or,(0,o.zw)(e.$t("oauth2.APP.NAME"))+"*",1),(0,a.wy)((0,a._)("input",{id:"app-name",type:"text",required:"","onUpdate:modelValue":t[0]||(t[0]=e=>r.client_name=e)},null,512),[[s.nr,r.client_name]])]),(0,a._)("div",Ir,[(0,a._)("label",Rr,(0,o.zw)(e.$t("oauth2.APP.DESCRIPTION")),1),(0,a.Wm)(n,{name:"app-description",charLimit:200,input:r.description,onUpdateValue:_},null,8,["input"])]),(0,a._)("div",Ur,[(0,a._)("label",gr,(0,o.zw)(e.$t("oauth2.APP.URL"))+"*",1),(0,a.wy)((0,a._)("input",{id:"app-url",type:"text",required:"","onUpdate:modelValue":t[1]||(t[1]=e=>r.client_uri=e)},null,512),[[s.nr,r.client_uri]])]),(0,a._)("div",Nr,[(0,a._)("label",hr,(0,o.zw)(e.$t("oauth2.APP.REDIRECT_URL"))+"* ",1),(0,a.wy)((0,a._)("input",{id:"app-redirect-uri",type:"text",required:"","onUpdate:modelValue":t[2]||(t[2]=e=>r.redirect_uri=e)},null,512),[[s.nr,r.redirect_uri]])]),(0,a._)("div",zr,[(0,a._)("div",wr,(0,o.zw)(e.$t("oauth2.APP.SCOPE.LABEL"))+"* ",1),((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,i.SU)(d),(t=>((0,a.wg)(),(0,a.iD)("div",{class:"form-item-scope-checkboxes",key:t},[(0,a._)("label",fr,[(0,a._)("input",{type:"checkbox",name:t,checked:u.includes(t),onChange:e=>E(t)},null,40,vr),(0,a._)("code",null,(0,o.zw)(t),1)]),(0,a._)("p",{class:"scope-description",innerHTML:e.$t(`oauth2.APP.SCOPE.${t}_DESCRIPTION`)},null,8,Cr)])))),128))])]),(0,a._)("div",Dr,[(0,a._)("button",{class:"confirm",type:"submit",disabled:0===u.length},(0,o.zw)(e.$t("buttons.SUBMIT")),9,kr),(0,a._)("button",{class:"cancel",onClick:t[3]||(t[3]=(0,s.iM)((()=>e.$router.push("/profile/apps")),["prevent"]))},(0,o.zw)(e.$t("buttons.CANCEL")),1)])],40,Tr)])])}}});const Lr=(0,P.Z)(Pr,[["__scopeId","data-v-0657ee77"]]);var Mr=Lr;const br={id:"authorize-oauth2-app"},yr={key:0},Gr={id:"authorize-oauth2-title"},Fr={class:"oauth2-access description-list"},Wr={class:"client-scope"},Kr=["innerHTML"],Yr={class:"authorize-oauth2-buttons"},xr={key:1},Br={class:"no-app"};var $r=(0,a.aZ)({__name:"AuthorizeUserApp",setup(e){const t=(0,r.yj)(),n=(0,c.o)(),s=(0,a.Fl)((()=>n.getters[l.Km.GETTERS.CLIENT])),u=(0,a.Fl)((()=>n.getters[l.SY.GETTERS.ERROR_MESSAGES]));function d(){t.query.client_id&&"string"===typeof t.query.client_id&&n.dispatch(l.Km.ACTIONS.GET_CLIENT_BY_CLIENT_ID,t.query.client_id)}function m(){n.dispatch(l.Km.ACTIONS.AUTHORIZE_CLIENT,{client_id:`${t.query.client_id}`,redirect_uri:`${t.query.redirect_uri}`,response_type:`${t.query.response_type}`,scope:`${t.query.scope}`,state:`${t.query.state?t.query.state:""}`,code_challenge:`${t.query.code_challenge?t.query.code_challenge:""}`,code_challenge_method:`${t.query.code_challenge_method?t.query.code_challenge_method:""}`})}return(0,a.wF)((()=>d())),(e,t)=>{const n=(0,a.up)("router-link"),r=(0,a.up)("i18n-t"),l=(0,a.up)("ErrorMessage");return(0,a.wg)(),(0,a.iD)("div",br,[(0,i.SU)(s).client_id?((0,a.wg)(),(0,a.iD)("div",yr,[(0,a._)("h1",Gr,[(0,a.Wm)(r,{keypath:"oauth2.AUTHORIZE_APP"},{default:(0,a.w5)((()=>[(0,a.Wm)(n,{to:{name:"UserApp",params:{id:(0,i.SU)(s).id}}},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)((0,i.SU)(s).name),1)])),_:1},8,["to"])])),_:1})]),(0,i.SU)(u)?((0,a.wg)(),(0,a.j4)(l,{key:0,message:(0,i.SU)(u)},null,8,["message"])):(0,a.kq)("",!0),(0,a._)("div",Fr,[(0,a._)("p",null,(0,o.zw)(e.$t("oauth2.APP_REQUESTING_ACCESS")),1),(0,a._)("dl",null,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,i.SU)(s).scope.split(" "),(t=>((0,a.wg)(),(0,a.iD)(a.HY,{key:t},[(0,a._)("dt",Wr,[(0,a._)("code",null,(0,o.zw)(t),1)]),(0,a._)("dd",{innerHTML:e.$t(`oauth2.APP.SCOPE.${t}_DESCRIPTION`)},null,8,Kr)],64)))),128))]),(0,a._)("div",Yr,[(0,a._)("button",{class:"danger",onClick:m},(0,o.zw)(e.$t("buttons.AUTHORIZE")),1),(0,a._)("button",{class:"cancel",onClick:t[0]||(t[0]=t=>e.$router.push("/profile/apps"))},(0,o.zw)(e.$t("buttons.CANCEL")),1)])])])):((0,a.wg)(),(0,a.iD)("div",xr,[(0,a._)("p",Br,(0,o.zw)(e.$t("oauth2.NO_APP")),1),(0,a._)("button",{onClick:t[1]||(t[1]=t=>e.$router.push("/profile/apps"))},(0,o.zw)(e.$t("buttons.BACK")),1)]))])}}});const Zr=(0,P.Z)($r,[["__scopeId","data-v-3b2fe9ed"]]);var Hr=Zr;const qr={id:"oauth2-apps"};var Vr=(0,a.aZ)({__name:"index",props:{user:null},setup(e){const t=e,n=(0,c.o)(),{user:r}=(0,i.BK)(t);return(0,a.Ah)((()=>{n.commit(l.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),n.commit(l.Km.MUTATIONS.SET_CLIENTS,[])})),(e,t)=>{const n=(0,a.up)("router-view");return(0,a.wg)(),(0,a.iD)("div",qr,[(0,a.Wm)(n,{authUser:(0,i.SU)(r)},null,8,["authUser"])])}}});const jr=Vr;var Xr=jr;const Jr={id:"oauth2-app",class:"description-list"},Qr={key:1},ea={key:0,class:"info-box success-message"},ta=["title"],na={key:0},ra={key:1,class:"app-secret"},aa=["title"],oa={class:"client-scopes"},sa={class:"app-buttons"},ia={key:2},la={class:"no-app"};var ca=(0,a.aZ)({__name:"UserApp",props:{authUser:null,afterCreation:{type:Boolean,default:!1}},setup(e){const t=e,n=(0,r.yj)(),s=(0,c.o)(),{afterCreation:u,authUser:d}=(0,i.BK)(t),m=(0,a.Fl)((()=>s.getters[l.Km.GETTERS.CLIENT])),_=(0,a.Fl)((()=>s.getters[l.Km.GETTERS.REVOCATION_SUCCESSFUL])),E=(0,i.iH)(!1),S=(0,i.iH)(null),T=(0,i.iH)(!1),p=(0,i.iH)(!1),A=(0,i.iH)(!1);function O(){!u.value&&n.params.id&&"string"===typeof n.params.id&&s.dispatch(l.Km.ACTIONS.GET_CLIENT_BY_ID,+n.params.id)}function I(e){S.value=e?"oauth2.APP_DELETION_CONFIRMATION":"oauth2.TOKENS_REVOCATION_CONFIRMATION",R(!0)}function R(e){E.value=e,e||(S.value=null)}function U(e){"oauth2.APP_DELETION_CONFIRMATION"===S.value?s.dispatch(l.Km.ACTIONS.DELETE_CLIENT,e):s.dispatch(l.Km.ACTIONS.REVOKE_ALL_TOKENS,e)}function g(){navigator.clipboard.writeText(m.value.client_id),T.value=!0,p.value=!1,setTimeout((()=>{T.value=!1}),3e3)}function N(){m.value.client_secret&&(navigator.clipboard.writeText(m.value.client_secret),p.value=!0,T.value=!1,setTimeout((()=>{p.value=!1}),3e3))}return(0,a.wF)((()=>{O(),navigator.clipboard&&(A.value=!0)})),(0,a.Ah)((()=>{s.commit(l.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),s.commit(l.Km.MUTATIONS.EMPTY_CLIENT),s.commit(l.Km.MUTATIONS.SET_REVOCATION_SUCCESSFUL,!1)})),(0,a.YP)((()=>_.value),(e=>{e&&R(!1)})),(e,t)=>{const n=(0,a.up)("Modal");return(0,a.wg)(),(0,a.iD)("div",Jr,[E.value?((0,a.wg)(),(0,a.j4)(n,{key:0,title:e.$t("common.CONFIRMATION"),message:e.$t(S.value),onConfirmAction:t[0]||(t[0]=e=>U((0,i.SU)(m).id)),onCancelAction:t[1]||(t[1]=e=>R(!1))},null,8,["title","message"])):(0,a.kq)("",!0),(0,i.SU)(m)&&(0,i.SU)(m).client_id?((0,a.wg)(),(0,a.iD)("div",Qr,[(0,i.SU)(u)||(0,i.SU)(_)?((0,a.wg)(),(0,a.iD)("div",ea,(0,o.zw)(e.$t((0,i.SU)(u)?"oauth2.APP_CREATED_SUCCESSFULLY":"oauth2.TOKENS_REVOKED")),1)):(0,a.kq)("",!0),(0,a._)("dl",null,[(0,a._)("dt",null,(0,o.zw)(e.$t("oauth2.APP.CLIENT_ID"))+":",1),(0,a._)("dd",null,[(0,a.Uk)((0,o.zw)((0,i.SU)(m).client_id)+" ",1),(0,i.SU)(u)&&A.value?((0,a.wg)(),(0,a.iD)("i",{key:0,class:(0,o.C_)("fa fa-"+(T.value?"check":"copy")),"aria-hidden":"true",title:e.$t("oauth2.COPY_TO_CLIPBOARD"),onClick:g},null,10,ta)):(0,a.kq)("",!0)]),(0,i.SU)(u)&&(0,i.SU)(m).client_secret?((0,a.wg)(),(0,a.iD)("dt",na,(0,o.zw)(e.$t("oauth2.APP.CLIENT_SECRET"))+": ",1)):(0,a.kq)("",!0),(0,i.SU)(u)&&(0,i.SU)(m).client_secret?((0,a.wg)(),(0,a.iD)("dd",ra,[(0,a.Uk)((0,o.zw)((0,i.SU)(m).client_secret)+" ",1),A.value?((0,a.wg)(),(0,a.iD)("i",{key:0,class:(0,o.C_)("fa fa-"+(p.value?"check":"copy")),"aria-hidden":"true",title:e.$t("oauth2.COPY_TO_CLIPBOARD"),onClick:N},null,10,aa)):(0,a.kq)("",!0)])):(0,a.kq)("",!0),(0,a._)("dt",null,(0,o.zw)((0,o.kC)(e.$t("oauth2.APP.ISSUE_AT")))+":",1),(0,a._)("dd",null,(0,o.zw)((0,i.SU)(Ye.p6)((0,i.SU)(m).issued_at,(0,i.SU)(d).timezone,(0,i.SU)(d).date_format)),1),(0,a._)("dt",null,(0,o.zw)(e.$t("oauth2.APP.NAME"))+":",1),(0,a._)("dd",null,(0,o.zw)((0,i.SU)(m).name),1),(0,a._)("dt",null,(0,o.zw)(e.$t("oauth2.APP.DESCRIPTION"))+":",1),(0,a._)("dd",{class:(0,o.C_)({"no-description":!(0,i.SU)(m).client_description})},(0,o.zw)((0,i.SU)(m).client_description?(0,i.SU)(m).client_description:e.$t("oauth2.NO_DESCRIPTION")),3),(0,a._)("dt",null,(0,o.zw)(e.$t("oauth2.APP.URL"))+":",1),(0,a._)("dd",null,(0,o.zw)((0,i.SU)(m).website),1),(0,a._)("dt",null,(0,o.zw)(e.$t("oauth2.APP.REDIRECT_URL"))+":",1),(0,a._)("dd",null,(0,o.zw)((0,i.SU)(m).redirect_uris.length>0?(0,i.SU)(m).redirect_uris[0]:""),1),(0,a._)("dt",null,(0,o.zw)(e.$t("oauth2.APP.SCOPE.LABEL"))+":",1),(0,a._)("dd",oa,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,i.SU)(m).scope.split(" "),(e=>((0,a.wg)(),(0,a.iD)("span",{class:"client-scope",key:e},[(0,a._)("code",null,(0,o.zw)(e),1)])))),128))])]),(0,a._)("div",sa,[(0,a._)("button",{class:"danger",onClick:t[2]||(t[2]=e=>I(!1))},(0,o.zw)(e.$t("oauth2.REVOKE_ALL_TOKENS")),1),(0,a._)("button",{class:"danger",onClick:t[3]||(t[3]=e=>I(!0))},(0,o.zw)(e.$t("oauth2.DELETE_APP")),1),(0,a._)("button",{onClick:t[4]||(t[4]=t=>e.$router.push("/profile/apps"))},(0,o.zw)(e.$t("buttons.BACK")),1)])])):((0,a.wg)(),(0,a.iD)("div",ia,[(0,a._)("p",la,(0,o.zw)(e.$t("oauth2.NO_APP")),1),(0,a._)("button",{onClick:t[5]||(t[5]=t=>e.$router.push("/profile/apps"))},(0,o.zw)(e.$t("buttons.BACK")),1)]))])}}});const ua=(0,P.Z)(ca,[["__scopeId","data-v-3a844fa2"]]);var da=ua;const ma={id:"oauth2-apps-list"},_a={class:"apps-list"},Ea={key:0},Sa={class:"app-issued-at"},Ta={key:1,class:"no-apps"},pa={class:"app-list-buttons"};var Aa=(0,a.aZ)({__name:"UserAppsList",props:{authUser:null},setup(e){const t=e,n=(0,c.o)(),s=(0,r.yj)(),{authUser:u}=(0,i.BK)(t),d=(0,a.Fl)((()=>n.getters[l.Km.GETTERS.CLIENTS])),m=(0,a.Fl)((()=>n.getters[l.Km.GETTERS.CLIENTS_PAGINATION]));let _=E(s.query);function E(e){const t={};return e.page&&(t.page=(0,Ke.z_)(e.page,Ke.Hf)),t}function S(e){n.dispatch(l.Km.ACTIONS.GET_CLIENTS,e)}return(0,a.wF)((()=>{S(_)})),(0,a.YP)((()=>s.query),(async e=>{_=E(e),S(_)})),(e,t)=>{const n=(0,a.up)("router-link");return(0,a.wg)(),(0,a.iD)("div",ma,[(0,a._)("p",_a,(0,o.zw)(e.$t("oauth2.APPS_LIST")),1),(0,i.SU)(d).length>0?((0,a.wg)(),(0,a.iD)("ul",Ea,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,i.SU)(d),(t=>((0,a.wg)(),(0,a.iD)("li",{key:t.client_id},[(0,a.Wm)(n,{to:{name:"UserApp",params:{id:t.id}}},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(t.name),1)])),_:2},1032,["to"]),(0,a._)("span",Sa,(0,o.zw)(e.$t("oauth2.APP.ISSUE_AT"))+" "+(0,o.zw)((0,i.SU)(Ye.p6)(t.issued_at,(0,i.SU)(u).timezone,(0,i.SU)(u).date_format)),1)])))),128))])):((0,a.wg)(),(0,a.iD)("div",Ta,(0,o.zw)(e.$t("oauth2.NO_APPS")),1)),(0,i.SU)(d).length>0?((0,a.wg)(),(0,a.j4)(Pe.Z,{key:2,pagination:(0,i.SU)(m),path:"/profile/apps",query:(0,i.SU)(_)},null,8,["pagination","query"])):(0,a.kq)("",!0),(0,a._)("div",pa,[(0,a._)("button",{onClick:t[0]||(t[0]=t=>e.$router.push("/profile/apps/new"))},(0,o.zw)(e.$t("oauth2.NEW_APP")),1),(0,a._)("button",{onClick:t[1]||(t[1]=t=>e.$router.push("/"))},(0,o.zw)(e.$t("common.HOME")),1)])])}}});const Oa=(0,P.Z)(Aa,[["__scopeId","data-v-efa45ea0"]]);var Ia=Oa;const Ra={id:"user-sport-preferences"},Ua={key:0,class:"responsive-table"},ga={class:"mobile-display"},Na={key:0,class:"profile-buttons mobile-display"},ha={key:1,class:"profile-buttons"},za={class:"text-left"},wa={key:0},fa={class:"cell-heading"},va=["value"],Ca={class:"cell-heading"},Da={key:0,class:"disabled-message"},ka={key:1,class:"fa fa-refresh fa-spin fa-fw"},Pa={class:"cell-heading"},La={class:"cell-heading"},Ma=["checked"],ba={class:"cell-heading"},ya=["value"],Ga={key:1},Fa={key:0,class:"action-buttons"},Wa={class:"cell-heading"},Ka=["onClick"],Ya={key:1,class:"edition-buttons"},xa=["disabled"],Ba=["disabled","onClick"],$a=["disabled"],Za={key:0,class:"profile-buttons"},Ha={key:1,class:"profile-buttons"};var qa=(0,a.aZ)({__name:"UserSportPreferences",props:{user:null,isEdition:{type:Boolean}},setup(e){const t=e,n=(0,c.o)(),{t:r}=(0,ie.QT)(),{isEdition:u,user:d}=(0,i.BK)(t),m="#838383",_=(0,a.f3)("sportColors"),E=(0,a.Fl)((()=>n.getters[l.O8.GETTERS.SPORTS])),S=(0,a.Fl)((()=>(0,le.xH)(E.value,r,"is_active",d.value.sports_list))),T=(0,a.Fl)((()=>n.getters[l.YN.GETTERS.USER_LOADING])),p=(0,a.Fl)((()=>n.getters[l.SY.GETTERS.ERROR_MESSAGES])),A=(0,i.qj)({sport_id:0,color:null,is_active:!0,stopped_speed_threshold:1});function O(e){null!==e?(A.sport_id=e.id,A.color=e.color?e.color:_?_[e.label]:m,A.is_active=e.is_active_for_user,A.stopped_speed_threshold=e.stopped_speed_threshold):N()}function I(e){return A.sport_id===e}function R(e){A.color=e.target.value}function U(e){A.stopped_speed_threshold=parseFloat(e.target.value)}function g(e){A.is_active=e.target.checked}function N(){A.sport_id=0,A.color=null,A.is_active=!0,A.stopped_speed_threshold=1,n.commit(l.SY.MUTATIONS.EMPTY_ERROR_MESSAGES)}function h(e){e.preventDefault(),n.dispatch(l.YN.ACTIONS.UPDATE_USER_SPORT_PREFERENCES,A)}function z(e,t){e.preventDefault(),n.dispatch(l.YN.ACTIONS.RESET_USER_SPORT_PREFERENCES,t)}return(0,a.YP)((()=>T.value),(e=>{e||p.value||N()})),(e,t)=>{const n=(0,a.up)("SportImage"),r=(0,a.up)("ErrorMessage");return(0,a.wg)(),(0,a.iD)("div",Ra,[(0,i.SU)(E).length>0?((0,a.wg)(),(0,a.iD)("div",Ua,[(0,a._)("div",ga,[(0,i.SU)(u)?((0,a.wg)(),(0,a.iD)("div",Na,[(0,a._)("button",{class:"cancel",onClick:t[0]||(t[0]=(0,s.iM)((t=>e.$router.push("/profile/sports")),["prevent"]))},(0,o.zw)(e.$t("buttons.BACK")),1)])):((0,a.wg)(),(0,a.iD)("div",ha,[(0,a._)("button",{onClick:t[1]||(t[1]=t=>e.$router.push("/profile/edit/sports"))},(0,o.zw)(e.$t("user.PROFILE.EDIT_SPORTS_PREFERENCES")),1),(0,a._)("button",{onClick:t[2]||(t[2]=t=>e.$router.push("/"))},(0,o.zw)(e.$t("common.HOME")),1)]))]),(0,a._)("table",null,[(0,a._)("thead",null,[(0,a._)("tr",null,[(0,a._)("th",null,(0,o.zw)(e.$t("user.PROFILE.SPORT.COLOR")),1),(0,a._)("th",za,(0,o.zw)(e.$t("workouts.SPORT",0)),1),(0,a._)("th",null,(0,o.zw)(e.$t("workouts.WORKOUT",0)),1),(0,a._)("th",null,(0,o.zw)(e.$t("user.PROFILE.SPORT.IS_ACTIVE")),1),(0,a._)("th",null,(0,o.zw)(e.$t("user.PROFILE.SPORT.STOPPED_SPEED_THRESHOLD")),1),(0,i.SU)(u)?((0,a.wg)(),(0,a.iD)("th",wa,(0,o.zw)(e.$t("user.PROFILE.SPORT.ACTION")),1)):(0,a.kq)("",!0)])]),(0,a._)("tbody",null,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,i.SU)(S),(s=>((0,a.wg)(),(0,a.iD)("tr",{key:s.id},[(0,a._)("td",null,[(0,a._)("span",fa,(0,o.zw)(e.$t("user.PROFILE.SPORT.COLOR")),1),I(s.id)?((0,a.wg)(),(0,a.iD)("input",{key:0,class:"sport-color",type:"color",value:A.color,onInput:R},null,40,va)):((0,a.wg)(),(0,a.j4)(n,{key:1,title:s.translatedLabel,"sport-label":s.label,color:s.color?s.color:(0,i.SU)(_)[s.label]},null,8,["title","sport-label","color"]))]),(0,a._)("td",{class:(0,o.C_)(["sport-label",{"disabled-sport":!s.is_active}])},[(0,a._)("span",Ca,(0,o.zw)(e.$t("user.PROFILE.SPORT.LABEL")),1),(0,a.Uk)(" "+(0,o.zw)(s.translatedLabel)+" ",1),s.is_active?(0,a.kq)("",!0):((0,a.wg)(),(0,a.iD)("span",Da," ("+(0,o.zw)(e.$t("user.PROFILE.SPORT.DISABLED_BY_ADMIN"))+") ",1)),(0,i.SU)(T)&&I(s.id)?((0,a.wg)(),(0,a.iD)("i",ka)):(0,a.kq)("",!0),(0,i.SU)(p)&&A.sport_id===s.id?((0,a.wg)(),(0,a.j4)(r,{key:2,message:(0,i.SU)(p)},null,8,["message"])):(0,a.kq)("",!0)],2),(0,a._)("td",{class:(0,o.C_)(["text-center",{"disabled-sport":!s.is_active}])},[(0,a._)("span",Pa,(0,o.zw)(e.$t("workouts.WORKOUT",0)),1),(0,a._)("i",{class:(0,o.C_)("fa fa"+((0,i.SU)(d).sports_list.includes(s.id)?"-check":"")),"aria-hidden":"true"},null,2)],2),(0,a._)("td",{class:(0,o.C_)(["text-center",{"disabled-sport":!s.is_active}])},[(0,a._)("span",La,(0,o.zw)(e.$t("user.PROFILE.SPORT.IS_ACTIVE")),1),I(s.id)&&s.is_active?((0,a.wg)(),(0,a.iD)("input",{key:0,type:"checkbox",checked:s.is_active_for_user,onChange:g},null,40,Ma)):((0,a.wg)(),(0,a.iD)("i",{key:1,class:(0,o.C_)("fa fa"+(s.is_active_for_user?"-check":"")),"aria-hidden":"true"},null,2))],2),(0,a._)("td",{class:(0,o.C_)(["text-center",{"disabled-sport":!s.is_active}])},[(0,a._)("span",ba,(0,o.zw)(e.$t("user.PROFILE.SPORT.STOPPED_SPEED_THRESHOLD")),1),I(s.id)&&s.is_active?((0,a.wg)(),(0,a.iD)("input",{key:0,class:"threshold-input",type:"number",min:"0",step:"0.1",value:A.stopped_speed_threshold,onInput:U},null,40,ya)):((0,a.wg)(),(0,a.iD)("span",Ga,(0,o.zw)(s.stopped_speed_threshold),1))],2),(0,i.SU)(u)?((0,a.wg)(),(0,a.iD)("td",Fa,[(0,a._)("span",Wa,(0,o.zw)(e.$t("user.PROFILE.SPORT.ACTION")),1),0===A.sport_id?((0,a.wg)(),(0,a.iD)("button",{key:0,onClick:e=>O(s)},(0,o.zw)(e.$t("buttons.EDIT")),9,Ka)):(0,a.kq)("",!0),I(s.id)?((0,a.wg)(),(0,a.iD)("div",Ya,[(0,a._)("button",{disabled:(0,i.SU)(T),onClick:h},(0,o.zw)(e.$t("buttons.SUBMIT")),9,xa),(0,a._)("button",{disabled:(0,i.SU)(T),onClick:e=>z(e,s.id)},(0,o.zw)(e.$t("buttons.RESET")),9,Ba),(0,a._)("button",{disabled:(0,i.SU)(T),onClick:t[3]||(t[3]=e=>O(null))},(0,o.zw)(e.$t("buttons.CANCEL")),9,$a)])):(0,a.kq)("",!0)])):(0,a.kq)("",!0)])))),128))])]),(0,i.SU)(u)?((0,a.wg)(),(0,a.iD)("div",Za,[(0,a._)("button",{class:"cancel",onClick:t[4]||(t[4]=(0,s.iM)((t=>e.$router.push("/profile/sports")),["prevent"]))},(0,o.zw)(e.$t("buttons.BACK")),1)])):((0,a.wg)(),(0,a.iD)("div",Ha,[(0,a._)("button",{onClick:t[5]||(t[5]=t=>e.$router.push("/profile/edit/sports"))},(0,o.zw)(e.$t("user.PROFILE.EDIT_SPORTS_PREFERENCES")),1),(0,a._)("button",{onClick:t[6]||(t[6]=t=>e.$router.push("/"))},(0,o.zw)(e.$t("common.HOME")),1)]))])):(0,a.kq)("",!0)])}}});const Va=(0,P.Z)(qa,[["__scopeId","data-v-74e52489"]]);var ja=Va,Xa=n(2894);const Ja=e=>((0,a.dD)("data-v-74257266"),e=e(),(0,a.Cn)(),e),Qa={class:"about-text"},eo=["innerHTML"],to=Ja((()=>(0,a._)("i",{class:"fa fa-book fa-padding","aria-hidden":"true"},null,-1))),no={href:"https://samr1.github.io/FitTrackee/",target:"_blank",rel:"noopener noreferrer"},ro=Ja((()=>(0,a._)("i",{class:"fa fa-github fa-padding","aria-hidden":"true"},null,-1))),ao={href:"https://github.com/SamR1/FitTrackee",target:"_blank",rel:"noopener noreferrer"},oo=Ja((()=>(0,a._)("i",{class:"fa fa-balance-scale fa-padding","aria-hidden":"true"},null,-1))),so=Ja((()=>(0,a._)("a",{href:"https://choosealicense.com/licenses/agpl-3.0/",target:"_blank",rel:"noopener noreferrer"}," AGPLv3 ",-1))),io={key:0},lo=Ja((()=>(0,a._)("i",{class:"fa fa-envelope-o fa-padding","aria-hidden":"true"},null,-1))),co=["href"];var uo=(0,a.aZ)({__name:"About",setup(e){const t=(0,c.o)(),n=(0,a.Fl)((()=>t.getters[l.SY.GETTERS.APP_CONFIG]));return(e,t)=>{const r=(0,a.up)("i18n-t");return(0,a.wg)(),(0,a.iD)("div",Qa,[(0,a._)("div",null,[(0,a._)("p",{class:"error-message",innerHTML:e.$t("about.FITTRACKEE_DESCRIPTION")},null,8,eo),(0,a._)("p",null,[to,(0,a._)("a",no,(0,o.zw)((0,o.kC)(e.$t("common.DOCUMENTATION"))),1)]),(0,a._)("p",null,[ro,(0,a._)("a",ao,(0,o.zw)(e.$t("about.SOURCE_CODE")),1)]),(0,a._)("p",null,[oo,(0,a.Wm)(r,{keypath:"about.FITTRACKEE_LICENSE"},{default:(0,a.w5)((()=>[so])),_:1})]),(0,i.SU)(n).admin_contact?((0,a.wg)(),(0,a.iD)("div",io,[lo,(0,a._)("a",{href:`mailto:${(0,i.SU)(n).admin_contact}`},(0,o.zw)(e.$t("about.CONTACT_ADMIN")),9,co)])):(0,a.kq)("",!0)])])}}});const mo=(0,P.Z)(uo,[["__scopeId","data-v-74257266"]]);var _o=mo;const Eo={id:"bike"},So=["src"];function To(e,t){return(0,a.wg)(),(0,a.iD)("div",Eo,[(0,a._)("img",{class:"bike-img",src:"/img/bike.svg",alt:"mountain bike"},null,8,So)])}const po={},Ao=(0,P.Z)(po,[["render",To],["__scopeId","data-v-795f7f5f"]]);var Oo=Ao;const Io={id:"about",class:"view"},Ro={class:"container"},Uo={class:"container-sub"},go={class:"container-sub about-details"};var No=(0,a.aZ)({__name:"AboutView",setup(e){return(e,t)=>((0,a.wg)(),(0,a.iD)("div",Io,[(0,a._)("div",Ro,[(0,a._)("div",Uo,[(0,a.Wm)(Oo)]),(0,a._)("div",go,[(0,a.Wm)(_o)])])]))}});const ho=(0,P.Z)(No,[["__scopeId","data-v-bffb50d0"]]);var zo=ho,wo=n(1818),fo=n(2056);const vo=e=>((0,a.dD)("data-v-96abcc38"),e=e(),(0,a.Cn)(),e),Co={class:"timeline-workout"},Do={class:"box"},ko={class:"workout-user-date"},Po={class:"workout-user"},Lo=["title"],Mo={key:0},bo={key:1,class:"no-map"},yo={class:"img"},Go={class:"data"},Fo=vo((()=>(0,a._)("i",{class:"fa fa-clock-o","aria-hidden":"true"},null,-1))),Wo={key:0},Ko={class:"data"},Yo=vo((()=>(0,a._)("i",{class:"fa fa-road","aria-hidden":"true"},null,-1))),xo={key:0,class:"data elevation"},Bo=["alt"],$o={class:"data-values"},Zo={key:1,class:"data altitude"},Ho=vo((()=>(0,a._)("i",{class:"fa fa-location-arrow","aria-hidden":"true"},null,-1))),qo={class:"data-values"};var Vo=(0,a.aZ)({__name:"WorkoutCard",props:{user:null,useImperialUnits:{type:Boolean},workout:{default:()=>({})},sport:{default:()=>({})}},setup(e){const t=e,n=(0,c.o)(),{user:r,workout:s,sport:u,useImperialUnits:d}=(0,i.BK)(t),m=(0,a.Fl)((()=>n.getters[l.SY.GETTERS.LOCALE]));return(e,t)=>{const n=(0,a.up)("router-link"),l=(0,a.up)("SportImage"),c=(0,a.up)("Distance");return(0,a.wg)(),(0,a.iD)("div",Co,[(0,a._)("div",Do,[(0,a._)("div",ko,[(0,a._)("div",Po,[(0,a.Wm)(Le.Z,{user:(0,i.SU)(r)},null,8,["user"]),(0,i.SU)(r).username?((0,a.wg)(),(0,a.j4)(n,{key:0,class:"workout-user-name",to:{name:"User",params:{username:(0,i.SU)(r).username}}},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)((0,i.SU)(r).username),1)])),_:1},8,["to"])):(0,a.kq)("",!0)]),(0,i.SU)(s).id?((0,a.wg)(),(0,a.j4)(n,{key:0,class:"workout-title",to:{name:"Workout",params:{workoutId:(0,i.SU)(s).id}}},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)((0,i.SU)(s).title),1)])),_:1},8,["to"])):(0,a.kq)("",!0),(0,i.SU)(s).workout_date&&(0,i.SU)(r)?((0,a.wg)(),(0,a.iD)("div",{key:1,class:"workout-date",title:(0,i.SU)(Ye.p6)((0,i.SU)(s).workout_date,(0,i.SU)(r).timezone,(0,i.SU)(r).date_format)},(0,o.zw)((0,i.SU)(wo.Z)(new Date((0,i.SU)(s).workout_date),new Date,{addSuffix:!0,locale:(0,i.SU)(m)})),9,Lo)):(0,a.kq)("",!0)]),(0,a._)("div",{class:(0,o.C_)(["workout-map",{"no-cursor":!(0,i.SU)(s)}]),onClick:t[0]||(t[0]=t=>(0,i.SU)(s).id?e.$router.push({name:"Workout",params:{workoutId:(0,i.SU)(s).id}}):null)},[(0,i.SU)(s)?((0,a.wg)(),(0,a.iD)("div",Mo,[(0,i.SU)(s).with_gpx?((0,a.wg)(),(0,a.j4)(fo.Z,{key:0,workout:(0,i.SU)(s)},null,8,["workout"])):((0,a.wg)(),(0,a.iD)("div",bo,(0,o.zw)(e.$t("workouts.NO_MAP")),1))])):(0,a.kq)("",!0)],2),(0,a._)("div",{class:(0,o.C_)(["workout-data",{"without-gpx":(0,i.SU)(s)&&!(0,i.SU)(s).with_gpx}]),onClick:t[1]||(t[1]=t=>(0,i.SU)(s).id?e.$router.push({name:"Workout",params:{workoutId:(0,i.SU)(s).id}}):null)},[(0,a._)("div",yo,[(0,i.SU)(u).label?((0,a.wg)(),(0,a.j4)(l,{key:0,"sport-label":(0,i.SU)(u).label,color:(0,i.SU)(u).color},null,8,["sport-label","color"])):(0,a.kq)("",!0)]),(0,a._)("div",Go,[Fo,(0,i.SU)(s)?((0,a.wg)(),(0,a.iD)("span",Wo,(0,o.zw)((0,i.SU)(s).moving),1)):(0,a.kq)("",!0)]),(0,a._)("div",Ko,[Yo,(0,i.SU)(s).id?((0,a.wg)(),(0,a.j4)(c,{key:0,distance:(0,i.SU)(s).distance,digits:3,unitFrom:"km",useImperialUnits:(0,i.SU)(d)},null,8,["distance","useImperialUnits"])):(0,a.kq)("",!0)]),(0,i.SU)(s)&&(0,i.SU)(s).with_gpx?((0,a.wg)(),(0,a.iD)("div",xo,[(0,a._)("img",{class:"mountains",src:"/img/workouts/mountains.svg",alt:e.$t("workouts.ELEVATION")},null,8,Bo),(0,a._)("div",$o,[(0,i.SU)(s).id?((0,a.wg)(),(0,a.j4)(c,{key:0,distance:(0,i.SU)(s).min_alt,unitFrom:"m",displayUnit:!1,useImperialUnits:(0,i.SU)(d)},null,8,["distance","useImperialUnits"])):(0,a.kq)("",!0),(0,a.Uk)("/ "),(0,i.SU)(s).id?((0,a.wg)(),(0,a.j4)(c,{key:1,distance:(0,i.SU)(s).max_alt,unitFrom:"m",useImperialUnits:(0,i.SU)(d)},null,8,["distance","useImperialUnits"])):(0,a.kq)("",!0)])])):(0,a.kq)("",!0),(0,i.SU)(s)&&(0,i.SU)(s).with_gpx?((0,a.wg)(),(0,a.iD)("div",Zo,[Ho,(0,a._)("div",qo,[(0,a.Uk)(" +"),(0,i.SU)(s).id?((0,a.wg)(),(0,a.j4)(c,{key:0,distance:(0,i.SU)(s).ascent,unitFrom:"m",displayUnit:!1,useImperialUnits:(0,i.SU)(d)},null,8,["distance","useImperialUnits"])):(0,a.kq)("",!0),(0,a.Uk)("/- "),(0,i.SU)(s).id?((0,a.wg)(),(0,a.j4)(c,{key:1,distance:(0,i.SU)(s).descent,unitFrom:"m",useImperialUnits:(0,i.SU)(d)},null,8,["distance","useImperialUnits"])):(0,a.kq)("",!0)])])):(0,a.kq)("",!0)],2)])])}}});const jo=(0,P.Z)(Vo,[["__scopeId","data-v-96abcc38"]]);var Xo=jo,Jo=n(5630),Qo=n(3768);const es={id:"timeline"},ts={class:"section-title"},ns={key:0},rs={key:1},as={key:1,class:"more-workouts"};var os=(0,a.aZ)({__name:"Timeline",props:{sports:null,user:null},setup(e){const t=e,n=(0,c.o)(),{sports:r,user:s}=(0,i.BK)(t),u=(0,i.iH)(1),d=5,m=t.user.nb_workouts>=d?d:t.user.nb_workouts;(0,a.wF)((()=>S()));const _=(0,a.Fl)((()=>n.getters[l.aX.GETTERS.TIMELINE_WORKOUTS])),E=(0,a.Fl)((()=>_.value.length>0&&null!==_.value[_.value.length-1].previous_workout));function S(){n.dispatch(l.aX.ACTIONS.GET_TIMELINE_WORKOUTS,{page:u.value,per_page:d,...Qo.eR})}function T(){u.value+=1,n.dispatch(l.aX.ACTIONS.GET_MORE_TIMELINE_WORKOUTS,{page:u.value,per_page:d,...Qo.eR})}return(e,t)=>((0,a.wg)(),(0,a.iD)("div",es,[(0,a._)("div",ts,(0,o.zw)(e.$t("workouts.LATEST_WORKOUTS")),1),(0,i.SU)(s).nb_workouts>0&&0===(0,i.SU)(_).length?((0,a.wg)(),(0,a.iD)("div",ns,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)([...Array((0,i.SU)(m)).keys()],(e=>((0,a.wg)(),(0,a.j4)(Xo,{user:(0,i.SU)(s),useImperialUnits:(0,i.SU)(s).imperial_units,key:e},null,8,["user","useImperialUnits"])))),128))])):((0,a.wg)(),(0,a.iD)("div",rs,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,i.SU)(_),(e=>((0,a.wg)(),(0,a.j4)(Xo,{workout:e,sport:(0,i.SU)(_).length>0?(0,i.SU)(r).filter((t=>t.id===e.sport_id))[0]:null,user:(0,i.SU)(s),useImperialUnits:(0,i.SU)(s).imperial_units,key:e.id},null,8,["workout","sport","user","useImperialUnits"])))),128)),0===(0,i.SU)(_).length?((0,a.wg)(),(0,a.j4)(Jo.Z,{key:0})):(0,a.kq)("",!0),(0,i.SU)(E)?((0,a.wg)(),(0,a.iD)("div",as,[(0,a._)("button",{onClick:T},(0,o.zw)(e.$t("workouts.LOAD_MORE_WORKOUT")),1)])):(0,a.kq)("",!0)]))]))}});const ss=(0,P.Z)(os,[["__scopeId","data-v-35567bf2"]]);var is=ss,ls=n(1640),cs=n(4559),us=n(7349),ds=n(1743),ms=n(9160),_s=n(1085);const Es=["title"];var Ss=(0,a.aZ)({__name:"CalendarWorkout",props:{displayHARecord:{type:Boolean},workout:null,sportLabel:null,sportColor:null},setup(e){const t=e,{displayHARecord:n,workout:r,sportLabel:o,sportColor:s}=(0,i.BK)(t);return(e,t)=>{const l=(0,a.up)("SportImage");return(0,a.wg)(),(0,a.iD)("div",{class:"calendar-workout",onClick:t[0]||(t[0]=t=>e.$router.push({name:"Workout",params:{workoutId:(0,i.SU)(r).id}}))},[(0,a.Wm)(l,{"sport-label":(0,i.SU)(o),title:(0,i.SU)(r).title,color:(0,i.SU)(s)},null,8,["sport-label","title","color"]),(0,a._)("sup",null,[(0,i.SU)(r).records.length>0?((0,a.wg)(),(0,a.iD)("i",{key:0,class:"fa fa-trophy custom-fa-small","aria-hidden":"true",title:(0,i.SU)(r).records.filter((e=>!!(0,i.SU)(n)||"HA"!==e.record_type)).map((t=>` ${e.$t(`workouts.RECORD_${t.record_type}`)}`))},null,8,Es)):(0,a.kq)("",!0)])])}}});const Ts=Ss;var ps=Ts;const As={class:"donut-chart"},Os={height:"34",width:"34",viewBox:"0 0 34 34"},Is=["stroke","stroke-dashoffset","transform"];var Rs=(0,a.aZ)({__name:"DonutChart",props:{colors:null,datasets:null},setup(e){const t=e,{colors:n,datasets:r}=(0,i.BK)(t);let o=-90;const s=16,l=16,c=14,u=2*Math.PI*c;function d(e,t){return t-e*t}function m(e,t){const n=`rotate(${o}, ${s}, ${l})`;return o=360*t+o,n}return(e,t)=>((0,a.wg)(),(0,a.iD)("div",As,[((0,a.wg)(),(0,a.iD)("svg",Os,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(Object.entries((0,i.SU)(r)),((e,t)=>((0,a.wg)(),(0,a.iD)("g",{key:t},[(0,a._)("circle",{cx:s,cy:l,r:c,fill:"transparent",stroke:(0,i.SU)(n)[+e[0]],"stroke-dashoffset":d(e[1].percentage,u),"stroke-dasharray":u,"stroke-width":"3","stroke-opacity":"0.8",transform:m(t,e[1].percentage)},null,8,Is)])))),128))]))]))}});const Us=Rs;var gs=Us;const Ns={class:"calendar-workouts-chart"},hs={class:"workouts-count"},zs={key:0,class:"workouts-pane"},ws={class:"more-workouts"};var fs=(0,a.aZ)({__name:"CalendarWorkoutsChart",props:{colors:null,datasets:null,sports:null,workouts:null},setup(e){const t=e,{colors:n,datasets:r,sports:s,workouts:l}=(0,i.BK)(t),c=(0,i.iH)(!0);function u(e){e.stopPropagation(),c.value=!c.value}return(e,t)=>{const d=(0,a.Q2)("click-outside");return(0,a.wg)(),(0,a.iD)("div",Ns,[(0,a._)("div",{class:"workouts-chart",onClick:u},[(0,a._)("div",hs,(0,o.zw)((0,i.SU)(l).length),1),(0,a.Wm)(gs,{datasets:(0,i.SU)(r),colors:(0,i.SU)(n)},null,8,["datasets","colors"])]),c.value?(0,a.kq)("",!0):((0,a.wg)(),(0,a.iD)("div",zs,[(0,a.wy)(((0,a.wg)(),(0,a.iD)("div",ws,[(0,a._)("i",{class:"fa fa-times calendar-more","aria-hidden":"true",onClick:u}),((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,i.SU)(l),((e,t)=>((0,a.wg)(),(0,a.j4)(ps,{key:t,workout:e,sportLabel:(0,i.SU)(le.PA)(e,(0,i.SU)(s)),sportColor:(0,i.SU)(le.CM)(e,(0,i.SU)(s))},null,8,["workout","sportLabel","sportColor"])))),128))])),[[d,u]])]))])}}});const vs=(0,P.Z)(fs,[["__scopeId","data-v-52d4310a"]]);var Cs=vs;const Ds={class:"calendar-workouts"},ks={class:"desktop-display"},Ps={key:0,class:"workouts-display"},Ls={key:1,class:"donut-display"},Ms={class:"mobile-display"},bs={key:0,class:"donut-display"};var ys=(0,a.aZ)({__name:"CalendarWorkouts",props:{displayHARecord:{type:Boolean},workouts:null,sports:null},setup(e){const t=e,{displayHARecord:n,workouts:r,sports:o}=(0,i.BK)(t),s=(0,a.Fl)((()=>(0,Qo.BN)(t.workouts))),l=(0,a.Fl)((()=>(0,le.Yx)(t.sports))),c=6;return(e,t)=>((0,a.wg)(),(0,a.iD)("div",Ds,[(0,a._)("div",ks,[(0,i.SU)(r).length<=c?((0,a.wg)(),(0,a.iD)("div",Ps,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,i.SU)(r).slice(0,c),((e,t)=>((0,a.wg)(),(0,a.j4)(ps,{key:t,displayHARecord:(0,i.SU)(n),workout:e,sportLabel:(0,i.SU)(le.PA)(e,(0,i.SU)(o)),sportColor:(0,i.SU)(le.CM)(e,(0,i.SU)(o))},null,8,["displayHARecord","workout","sportLabel","sportColor"])))),128))])):((0,a.wg)(),(0,a.iD)("div",Ls,[(0,a.Wm)(Cs,{workouts:(0,i.SU)(r),sports:(0,i.SU)(o),datasets:(0,i.SU)(s),colors:(0,i.SU)(l)},null,8,["workouts","sports","datasets","colors"])]))]),(0,a._)("div",Ms,[(0,i.SU)(r).length>0?((0,a.wg)(),(0,a.iD)("div",bs,[(0,a.Wm)(Cs,{workouts:(0,i.SU)(r),sports:(0,i.SU)(o),datasets:(0,i.SU)(s),colors:(0,i.SU)(l)},null,8,["workouts","sports","datasets","colors"])])):(0,a.kq)("",!0)])]))}});const Gs=ys;var Fs=Gs;const Ws={class:"calendar-cells"},Ks={class:"calendar-cell-day"};var Ys=(0,a.aZ)({__name:"CalendarCells",props:{currentDay:null,displayHARecord:{type:Boolean},endDate:null,sports:null,startDate:null,timezone:null,weekStartingMonday:{type:Boolean},workouts:null},setup(e){const t=e,{currentDay:n,displayHARecord:r,endDate:s,sports:l,startDate:c,timezone:u,weekStartingMonday:d,workouts:m}=(0,i.BK)(t),_=(0,i.iH)([]);function E(){_.value=[];let e=c.value;while(e<=s.value){const t=[];for(let n=0;n<7;n++)t.push(e),e=(0,us.Z)(e,1);_.value.push(t)}}function S(e){return d.value?[5,6].includes(e):[0,6].includes(e)}function T(e,t){return t?t.filter((t=>(0,ds.Z)((0,Ye.eB)(t.workout_date,u.value),e))).reverse():[]}return(0,a.bv)((()=>E())),(0,a.YP)((()=>t.currentDay),(()=>E())),(e,t)=>((0,a.wg)(),(0,a.iD)("div",Ws,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(_.value,((e,t)=>((0,a.wg)(),(0,a.iD)("div",{class:"calendar-row",key:t},[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(e,((e,t)=>((0,a.wg)(),(0,a.iD)("div",{class:(0,o.C_)(["calendar-cell",{"disabled-cell":!(0,i.SU)(ms.Z)(e,(0,i.SU)(n)),"week-end":S(t),today:(0,i.SU)(_s.Z)(e)}]),key:t},[(0,a.Wm)(Fs,{workouts:T(e,(0,i.SU)(m)),sports:(0,i.SU)(l),displayHARecord:(0,i.SU)(r)},null,8,["workouts","sports","displayHARecord"]),(0,a._)("div",Ks,(0,o.zw)((0,i.SU)(jt.Z)(e,"d")),1)],2)))),128))])))),128))]))}});const xs=Ys;var Bs=xs;const $s={class:"calendar-days"};var Zs=(0,a.aZ)({__name:"CalendarDays",props:{startDate:null,localeOptions:null},setup(e){const t=e,n=[];for(let r=0;r<7;r++)n.push((0,us.Z)(t.startDate,r));return(t,r)=>((0,a.wg)(),(0,a.iD)("div",$s,[((0,a.wg)(),(0,a.iD)(a.HY,null,(0,a.Ko)(n,((t,n)=>(0,a._)("div",{class:"calendar-day",key:n},(0,o.zw)((0,i.SU)(jt.Z)(t,"EEE",{locale:e.localeOptions})),1))),64))]))}});const Hs=Zs;var qs=Hs;const Vs={class:"calendar-header"},js=(0,a._)("i",{class:"fa fa-chevron-left","aria-hidden":"true"},null,-1),Xs=[js],Js={class:"calendar-month"},Qs=(0,a._)("i",{class:"fa fa-chevron-right","aria-hidden":"true"},null,-1),ei=[Qs];var ti=(0,a.aZ)({__name:"CalendarHeader",props:{day:null,localeOptions:null},emits:["displayNextMonth","displayPreviousMonth"],setup(e,{emit:t}){const n=e,{day:r,localeOptions:s}=(0,i.BK)(n);return(e,n)=>((0,a.wg)(),(0,a.iD)("div",Vs,[(0,a._)("div",{class:"calendar-arrow calendar-arrow-left",onClick:n[0]||(n[0]=e=>t("displayPreviousMonth"))},Xs),(0,a._)("div",Js,[(0,a._)("span",null,(0,o.zw)((0,i.SU)(jt.Z)((0,i.SU)(r),"MMM yyyy",{locale:(0,i.SU)(s)})),1)]),(0,a._)("div",{class:"calendar-arrow calendar-arrow-right",onClick:n[1]||(n[1]=e=>t("displayNextMonth"))},ei)]))}});const ni=ti;var ri=ni;const ai={id:"user-calendar"},oi={class:"calendar-card box"};var si=(0,a.aZ)({__name:"index",props:{sports:null,user:null},setup(e){const t=e,n=(0,c.o)(),{sports:r,user:o}=(0,i.BK)(t),s="yyyy-MM-dd",u=(0,i.iH)(new Date),d=(0,i.iH)((0,Ye.yx)(u.value,t.user.weekm)),m=(0,a.Fl)((()=>n.getters[l.aX.GETTERS.CALENDAR_WORKOUTS])),_=(0,a.Fl)((()=>n.getters[l.SY.GETTERS.LOCALE]));function E(){d.value=(0,Ye.yx)(u.value,t.user.weekm);const e={from:(0,jt.Z)(d.value.start,s),to:(0,jt.Z)(d.value.end,s),page:1,per_page:100,...Qo.eR};n.dispatch(l.aX.ACTIONS.GET_CALENDAR_WORKOUTS,e)}function S(){u.value=(0,ls.Z)(u.value,1),E()}function T(){u.value=(0,cs.Z)(u.value,1),E()}return(0,a.wF)((()=>E())),(e,t)=>((0,a.wg)(),(0,a.iD)("div",ai,[(0,a._)("div",oi,[(0,a.Wm)(ri,{day:u.value,"locale-options":(0,i.SU)(_),onDisplayNextMonth:S,onDisplayPreviousMonth:T},null,8,["day","locale-options"]),(0,a.Wm)(qs,{"start-date":d.value.start,"locale-options":(0,i.SU)(_)},null,8,["start-date","locale-options"]),(0,a.Wm)(Bs,{currentDay:u.value,displayHARecord:(0,i.SU)(o).display_ascent,"end-date":d.value.end,sports:(0,i.SU)(r),"start-date":d.value.start,timezone:(0,i.SU)(o).timezone,workouts:(0,i.SU)(m),weekStartingMonday:(0,i.SU)(o).weekm},null,8,["currentDay","displayHARecord","end-date","sports","start-date","timezone","workouts","weekStartingMonday"])])]))}});const ii=si;var li=ii,ci=n(3703),ui=n(4135),di=n(436);const mi={class:"user-month-stats"};var _i=(0,a.aZ)({__name:"UserMonthStats",props:{sports:null,user:null},setup(e){const t=e,{sports:n,user:r}=(0,i.BK)(t),s=new Date,l={duration:"week",start:(0,ci.Z)(s),end:(0,ui.Z)(s)},c=t.sports.map((e=>e.id));return(e,t)=>{const s=(0,a.up)("Card");return(0,a.wg)(),(0,a.iD)("div",mi,[(0,a.Wm)(s,null,{title:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.$t("dashboard.THIS_MONTH")),1)])),content:(0,a.w5)((()=>[(0,a.Wm)(di.Z,{sports:(0,i.SU)(n),user:(0,i.SU)(r),"chart-params":l,"displayed-sport-ids":(0,i.SU)(c),"hide-chart-if-no-data":!0},null,8,["sports","user","displayed-sport-ids"])])),_:1})])}}});const Ei=(0,P.Z)(_i,[["__scopeId","data-v-1bcddc12"]]);var Si=Ei,Ti=n(2540),pi=n(3649);const{locale:Ai}=Ti.Z.global,Oi=(e,t,n,r)=>{const a="km",o=n?pi.Dl[a].defaultTarget:a,s="m",i=n?pi.Dl[s].defaultTarget:s;let l;switch(e.record_type){case"AS":case"MS":l=`${(0,pi.sC)(+e.value,a,o,2)} ${o}/h`;break;case"FD":l=`${(0,pi.sC)(+e.value,a,o,3)} ${o}`;break;case"HA":l=`${(0,pi.sC)(+e.value,s,i,2)} ${i}`;break;case"LD":l=e.value;break;default:throw new Error(`Invalid record type, expected: "AS", "FD", "HA", "LD", "MD", got: "${e.record_type}"`)}return{workout_date:(0,Ye.p6)(e.workout_date,t,r,!1),workout_id:e.workout_id,id:e.id,record_type:e.record_type,value:l}},Ii=(e,t)=>{const n=e.label.toLowerCase(),r=t.label.toLowerCase();return n>r?1:n(o=(0,Ye.mh)(o,Ai.value),e.filter((e=>!!a||"HA"!==e.record_type)).reduce(((e,a)=>{const s=t.find((e=>e.id===a.sport_id));return s&&s.label&&(void 0===e[s.translatedLabel]&&(e[s.translatedLabel]={label:s.label,color:s.color,records:[]}),e[s.translatedLabel].records.push(Oi(a,n,r,o))),e}),{})),Ui={class:"records-card"},gi={class:"record-type"},Ni={class:"record-value"},hi={class:"record-date"};var zi=(0,a.aZ)({__name:"RecordsCard",props:{records:null,sportTranslatedLabel:null},setup(e){const t=e,{records:n,sportTranslatedLabel:r}=(0,i.BK)(t),{t:s}=(0,ie.QT)();function l(e){const t=[];return e.map((e=>{t.push({...e,label:s(`workouts.RECORD_${e.record_type}`)})})),t.sort(Ii)}return(e,t)=>{const s=(0,a.up)("SportImage"),c=(0,a.up)("router-link"),u=(0,a.up)("Card");return(0,a.wg)(),(0,a.iD)("div",Ui,[(0,a.Wm)(u,null,{title:(0,a.w5)((()=>[(0,a.Wm)(s,{"sport-label":(0,i.SU)(n).label,color:(0,i.SU)(n).color},null,8,["sport-label","color"]),(0,a.Uk)(" "+(0,o.zw)((0,i.SU)(r)),1)])),content:(0,a.w5)((()=>[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(l((0,i.SU)(n).records),(e=>((0,a.wg)(),(0,a.iD)("div",{class:"record",key:e.id},[(0,a._)("span",gi,(0,o.zw)(e.label),1),(0,a._)("span",Ni,(0,o.zw)(e.value),1),(0,a._)("span",hi,[(0,a.Wm)(c,{to:{name:"Workout",params:{workoutId:e.workout_id}}},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(e.workout_date),1)])),_:2},1032,["to"])])])))),128))])),_:1})])}}});const wi=(0,P.Z)(zi,[["__scopeId","data-v-8d17c606"]]);var fi=wi;const vi=e=>((0,a.dD)("data-v-f0c85cb8"),e=e(),(0,a.Cn)(),e),Ci={class:"user-records-section"},Di={class:"section-title"},ki=vi((()=>(0,a._)("i",{class:"fa fa-trophy custom-fa-small","aria-hidden":"true"},null,-1))),Pi={class:"user-records"},Li={key:0,class:"no-records"};var Mi=(0,a.aZ)({__name:"index",props:{sports:null,user:null},setup(e){const t=e,{t:n}=(0,ie.QT)(),r=(0,a.Fl)((()=>Ri(t.user.records,(0,le.xH)(t.sports,n),t.user.timezone,t.user.imperial_units,t.user.display_ascent,t.user.date_format)));return(t,n)=>((0,a.wg)(),(0,a.iD)("div",Ci,[(0,a._)("div",Di,[ki,(0,a.Uk)(" "+(0,o.zw)(t.$t("workouts.RECORD",2)),1)]),(0,a._)("div",Pi,[0===Object.keys((0,i.SU)(r)).length?((0,a.wg)(),(0,a.iD)("div",Li,(0,o.zw)(t.$t("workouts.NO_RECORDS")),1)):(0,a.kq)("",!0),((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)(Object.keys((0,i.SU)(r)).sort(),(t=>((0,a.wg)(),(0,a.j4)(fi,{sportTranslatedLabel:t,records:(0,i.SU)(r)[t],key:t,useImperialUnits:e.user.imperial_units},null,8,["sportTranslatedLabel","records","useImperialUnits"])))),128))])]))}});const bi=(0,P.Z)(Mi,[["__scopeId","data-v-f0c85cb8"]]);var yi=bi;const Gi={id:"user-stats"};var Fi=(0,a.aZ)({__name:"index",props:{user:null},setup(e){const t=e,{t:n}=(0,ie.QT)(),{user:r}=(0,i.BK)(t),o=(0,a.Fl)((()=>t.user.total_duration)),s=(0,a.Fl)((()=>E(o))),l="km",c=r.value.imperial_units?pi.Dl[l].defaultTarget:l,u=(0,a.Fl)((()=>r.value.imperial_units?(0,pi.sC)(r.value.total_distance,l,c,2):parseFloat(r.value.total_distance.toFixed(2)))),d="m",m=r.value.imperial_units?pi.Dl[d].defaultTarget:d,_=(0,a.Fl)((()=>r.value.imperial_units?(0,pi.sC)(r.value.total_ascent,d,m,2):parseFloat(r.value.total_ascent.toFixed(2))));function E(e){const t=e.value.match(/day/g)?e.value.split(", ")[1]:e.value;return{days:e.value.match(/day/g)?`${e.value.split(" ")[0]} ${e.value.match(/days/g)?n("common.DAY",2):n("common.DAY",1)}`:`0 ${n("common.DAY",2)},`,duration:`${t.split(":")[0]}h ${t.split(":")[1]}min`}}return(e,t)=>((0,a.wg)(),(0,a.iD)("div",Gi,[(0,a.Wm)(B,{icon:"calendar",value:(0,i.SU)(r).nb_workouts,text:e.$t("workouts.WORKOUT",(0,i.SU)(r).nb_workouts)},null,8,["value","text"]),(0,a.Wm)(B,{icon:"road",value:(0,i.SU)(u),text:"mi"===(0,i.SU)(c)?"miles":(0,i.SU)(c)},null,8,["value","text"]),(0,i.SU)(r).display_ascent?((0,a.wg)(),(0,a.j4)(B,{key:0,icon:"location-arrow",value:(0,i.SU)(_),text:"ft"===(0,i.SU)(m)?"feet":(0,i.SU)(m)},null,8,["value","text"])):(0,a.kq)("",!0),(0,a.Wm)(B,{icon:"clock-o",value:(0,i.SU)(s).days,text:(0,i.SU)(s).duration},null,8,["value","text"]),(0,i.SU)(r).display_ascent?(0,a.kq)("",!0):((0,a.wg)(),(0,a.j4)(B,{key:1,icon:"tags",value:(0,i.SU)(r).nb_sports,text:e.$t("workouts.SPORT",(0,i.SU)(r).nb_sports)},null,8,["value","text"]))]))}});const Wi=Fi;var Ki=Wi;const Yi=e=>((0,a.dD)("data-v-4c0893c1"),e=e(),(0,a.Cn)(),e),xi={key:0,id:"dashboard",class:"view"},Bi={class:"container mobile-menu"},$i={class:"box"},Zi=Yi((()=>(0,a._)("i",{class:"fa fa-calendar","aria-hidden":"true"},null,-1))),Hi=[Zi],qi=Yi((()=>(0,a._)("i",{class:"fa fa-bar-chart","aria-hidden":"true"},null,-1))),Vi=[qi],ji=Yi((()=>(0,a._)("i",{class:"fa fa-map-o","aria-hidden":"true"},null,-1))),Xi=[ji],Ji=Yi((()=>(0,a._)("i",{class:"fa fa-trophy","aria-hidden":"true"},null,-1))),Qi=[Ji],el={class:"container"},tl={class:"container dashboard-container"},nl={class:"left-container dashboard-sub-container"},rl={class:"right-container dashboard-sub-container"},al=Yi((()=>(0,a._)("div",{id:"bottom"},null,-1))),ol={key:1,class:"app-loading"};var sl=(0,a.aZ)({__name:"Dashboard",setup(e){const t=(0,c.o)(),n=(0,a.Fl)((()=>t.getters[l.YN.GETTERS.AUTH_USER_PROFILE])),r=(0,a.Fl)((()=>t.getters[l.O8.GETTERS.SPORTS])),s=(0,i.iH)("calendar");function u(e){s.value=e}return(0,a.wF)((()=>t.dispatch(l.YN.ACTIONS.GET_USER_PROFILE))),(e,t)=>{const l=(0,a.up)("Loader");return(0,i.SU)(n).username&&(0,i.SU)(r).length>0?((0,a.wg)(),(0,a.iD)("div",xi,[(0,a._)("div",Bi,[(0,a._)("div",$i,[(0,a._)("div",{class:(0,o.C_)(["mobile-menu-item",{"is-selected":"calendar"===s.value}]),onClick:t[0]||(t[0]=e=>u("calendar"))},Hi,2),(0,a._)("div",{class:(0,o.C_)(["mobile-menu-item",{"is-selected":"chart"===s.value}]),onClick:t[1]||(t[1]=e=>u("chart"))},Vi,2),(0,a._)("div",{class:(0,o.C_)(["mobile-menu-item",{"is-selected":"timeline"===s.value}]),onClick:t[2]||(t[2]=e=>u("timeline"))},Xi,2),(0,a._)("div",{class:(0,o.C_)(["mobile-menu-item",{"is-selected":"records"===s.value}]),onClick:t[3]||(t[3]=e=>u("records"))},Qi,2)])]),(0,a._)("div",el,[(0,a.Wm)(Ki,{user:(0,i.SU)(n)},null,8,["user"])]),(0,a._)("div",tl,[(0,a._)("div",nl,[(0,a.Wm)(Si,{sports:(0,i.SU)(r),user:(0,i.SU)(n),class:(0,o.C_)({"is-hidden":!("chart"===s.value)})},null,8,["sports","user","class"]),(0,a.Wm)(yi,{sports:(0,i.SU)(r),user:(0,i.SU)(n),class:(0,o.C_)({"is-hidden":!("records"===s.value)})},null,8,["sports","user","class"])]),(0,a._)("div",rl,[(0,a.Wm)(li,{sports:(0,i.SU)(r),user:(0,i.SU)(n),class:(0,o.C_)({"is-hidden":!("calendar"===s.value)})},null,8,["sports","user","class"]),(0,a.Wm)(is,{sports:(0,i.SU)(r),user:(0,i.SU)(n),class:(0,o.C_)({"is-hidden":!("timeline"===s.value)})},null,8,["sports","user","class"])])]),al])):((0,a.wg)(),(0,a.iD)("div",ol,[(0,a.Wm)(l)]))}}});const il=(0,P.Z)(sl,[["__scopeId","data-v-4c0893c1"]]);var ll=il,cl=n(8273);const ul={class:"not-found view"};var dl=(0,a.aZ)({__name:"NotFoundView",setup(e){return(e,t)=>((0,a.wg)(),(0,a.iD)("div",ul,[(0,a.Wm)(cl.Z)]))}});const ml=dl;var _l=ml,El=n(2411);const Sl={id:"loginOrRegister",class:"view"},Tl={class:"container"},pl={class:"container-sub"},Al={class:"container-sub"};var Ol=(0,a.aZ)({__name:"LoginOrRegister",props:{action:null},setup(e){const t=e,{action:n}=(0,i.BK)(t);return(e,t)=>((0,a.wg)(),(0,a.iD)("div",Sl,[(0,a._)("div",Tl,[(0,a._)("div",pl,[(0,a.Wm)(Oo)]),(0,a._)("div",Al,[(0,a.Wm)(El.Z,{action:(0,i.SU)(n)},null,8,["action"])])])]))}});const Il=(0,P.Z)(Ol,[["__scopeId","data-v-58043acb"]]);var Rl=Il;const Ul=e=>{const t=/(\/profile)(\/edit)*(\/*)/,n=e.replace(t,"").toUpperCase();return""===n?"PROFILE":n.toUpperCase()},gl=[{path:"/",name:"Dashboard",component:ll},{path:"/login",name:"Login",component:Rl,props:{action:"login"}},{path:"/register",name:"Register",component:Rl,props:{action:"register"}},{path:"/account-confirmation",name:"AccountConfirmation",component:()=>n.e(845).then(n.bind(n,4264))},{path:"/account-confirmation/resend",name:"AccountConfirmationResend",component:()=>n.e(24).then(n.bind(n,5639)),props:{action:"account-confirmation-resend"}},{path:"/account-confirmation/email-sent",name:"AccountConfirmationEmailSend",component:()=>n.e(24).then(n.bind(n,5639)),props:{action:"email-sent"}},{path:"/password-reset/sent",name:"PasswordEmailSent",component:()=>n.e(24).then(n.bind(n,1627)),props:{action:"request-sent"}},{path:"/password-reset/request",name:"PasswordResetRequest",component:()=>n.e(24).then(n.bind(n,1627)),props:{action:"reset-request"}},{path:"/password-reset/password-updated",name:"PasswordUpdated",component:()=>n.e(24).then(n.bind(n,1627)),props:{action:"password-updated"}},{path:"/password-reset",name:"PasswordReset",component:()=>n.e(24).then(n.bind(n,1627)),props:{action:"reset"}},{path:"/email-update",name:"EmailUpdate",component:()=>n.e(845).then(n.bind(n,8160))},{path:"/profile",name:"Profile",component:()=>n.e(845).then(n.bind(n,1133)),children:[{path:"",name:"UserProfile",component:Nt,props:e=>({tab:Ul(e.path)}),children:[{path:"",name:"UserInfos",component:ht.Z},{path:"preferences",name:"UserPreferences",component:Dt},{path:"sports",name:"UserSportPreferences",component:ja,props:{isEdition:!1}},{path:"apps",name:"UserApps",component:Xr,children:[{path:"",name:"UserAppsList",component:Ia},{path:":id",name:"UserApp",component:da},{path:":id/created",name:"CreatedUserApp",component:da,props:{afterCreation:!0}},{path:"new",name:"AddUserApp",component:Mr},{path:"authorize",name:"AuthorizeUserApp",component:Hr}]}]},{path:"edit",name:"UserProfileEdition",component:Mt,props:e=>({tab:Ul(e.path)}),children:[{path:"",name:"UserInfosEdition",component:Sn},{path:"account",name:"UserAccountEdition",component:Vt},{path:"picture",name:"UserPictureEdition",component:wn},{path:"preferences",name:"UserPreferencesEdition",component:ur},{path:"sports",name:"UserSportPreferencesEdition",component:ja,props:{isEdition:!0}}]}]},{path:"/statistics",name:"Statistics",component:()=>n.e(193).then(n.bind(n,7885))},{path:"/users/:username",name:"User",component:()=>n.e(845).then(n.bind(n,9453))},{path:"/workouts",name:"Workouts",component:()=>n.e(401).then(n.bind(n,3372))},{path:"/workouts/:workoutId",name:"Workout",component:()=>n.e(401).then(n.bind(n,3847)),props:{displaySegment:!1}},{path:"/workouts/:workoutId/edit",name:"EditWorkout",component:()=>n.e(401).then(n.bind(n,8237))},{path:"/workouts/:workoutId/segment/:segmentId",name:"WorkoutSegment",component:()=>n.e(401).then(n.bind(n,3847)),props:{displaySegment:!0}},{path:"/workouts/add",name:"AddWorkout",component:()=>n.e(401).then(n.bind(n,4189))},{path:"/admin",name:"Administration",component:()=>n.e(328).then(n.bind(n,6e3)),children:[{path:"",name:"AdministrationMenu",component:se},{path:"application",name:"ApplicationAdministration",component:M},{path:"application/edit",name:"ApplicationAdministrationEdition",component:M,props:{edition:!0}},{path:"sports",name:"SportsAdministration",component:De},{path:"users/:username",name:"UserFromAdmin",component:()=>n.e(845).then(n.bind(n,9453)),props:{fromAdmin:!0}},{path:"users",name:"UsersAdministration",component:mt}]},{path:"/about",name:"About",component:zo},{path:"/:pathMatch(.*)*",name:"not-found",component:_l}],Nl=(0,r.p7)({history:(0,r.PO)("/"),routes:gl}),hl=["/login","/password-reset","/password-reset/password-updated","/password-reset/request","/password-reset/sent","/register","/account-confirmation","/account-confirmation/resend","/account-confirmation/email-sent"],zl=["/email-update","/about"];Nl.beforeEach(((e,t,n)=>{Xa.Z.dispatch(l.YN.ACTIONS.CHECK_AUTH_USER).then((()=>{if(zl.includes(e.path))return n();if(Xa.Z.getters[l.YN.GETTERS.IS_AUTHENTICATED]&&hl.includes(e.path))return n("/");if(Xa.Z.getters[l.YN.GETTERS.IS_AUTHENTICATED]||hl.includes(e.path))n();else{const t="/"===e.path?{path:"/login"}:{path:"/login",query:{from:e.fullPath}};n(t)}})).catch((e=>{console.error(e),n()}))}));var wl=Nl},5801:function(e,t,n){"use strict";var r,a,o,s,i,l,c,u,d,m,_,E,S,T,p,A,O,I;n.d(t,{YN:function(){return h},Km:function(){return z},SY:function(){return U},O8:function(){return g},gu:function(){return N},RT:function(){return w},aX:function(){return f}}),function(e){e["CHECK_AUTH_USER"]="CHECK_AUTH_USER",e["CONFIRM_ACCOUNT"]="CONFIRM_ACCOUNT",e["CONFIRM_EMAIL"]="CONFIRM_EMAIL",e["DELETE_ACCOUNT"]="DELETE_ACCOUNT",e["DELETE_PICTURE"]="DELETE_PICTURE",e["GET_USER_PROFILE"]="GET_USER_PROFILE",e["LOGIN_OR_REGISTER"]="LOGIN_OR_REGISTER",e["LOGOUT"]="LOGOUT",e["SEND_PASSWORD_RESET_REQUEST"]="SEND_PASSWORD_RESET_REQUEST",e["RESEND_ACCOUNT_CONFIRMATION_EMAIL"]="RESEND_ACCOUNT_CONFIRMATION_EMAIL",e["RESET_USER_PASSWORD"]="RESET_USER_PASSWORD",e["RESET_USER_SPORT_PREFERENCES"]="RESET_USER_SPORT_PREFERENCES",e["UPDATE_USER_ACCOUNT"]="UPDATE_USER_ACCOUNT",e["UPDATE_USER_PICTURE"]="UPDATE_USER_PICTURE",e["UPDATE_USER_PROFILE"]="UPDATE_USER_PROFILE",e["UPDATE_USER_PREFERENCES"]="UPDATE_USER_PREFERENCES",e["UPDATE_USER_SPORT_PREFERENCES"]="UPDATE_USER_SPORT_PREFERENCES"}(r||(r={})),function(e){e["AUTH_TOKEN"]="AUTH_TOKEN",e["AUTH_USER_PROFILE"]="AUTH_USER_PROFILE",e["IS_ADMIN"]="IS_ADMIN",e["IS_AUTHENTICATED"]="IS_AUTHENTICATED",e["IS_SUCCESS"]="IS_SUCCESS",e["IS_REGISTRATION_SUCCESS"]="IS_REGISTRATION_SUCCESS",e["USER_LOADING"]="USER_LOADING"}(a||(a={})),function(e){e["CLEAR_AUTH_USER_TOKEN"]="CLEAR_AUTH_USER_TOKEN",e["UPDATE_AUTH_TOKEN"]="UPDATE_AUTH_TOKEN",e["UPDATE_AUTH_USER_PROFILE"]="UPDATE_AUTH_USER_PROFILE",e["UPDATE_IS_SUCCESS"]="UPDATE_USER_IS_SUCCESS",e["UPDATE_IS_REGISTRATION_SUCCESS"]="UPDATE_IS_REGISTRATION_SUCCESS",e["UPDATE_USER_LOADING"]="UPDATE_USER_LOADING"}(o||(o={})),function(e){e["AUTHORIZE_CLIENT"]="AUTHORIZE_CLIENT",e["CREATE_CLIENT"]="CREATE_CLIENT",e["DELETE_CLIENT"]="DELETE_CLIENT",e["GET_CLIENTS"]="GET_CLIENTS",e["GET_CLIENT_BY_CLIENT_ID"]="GET_CLIENT_BY_CLIENT_ID",e["GET_CLIENT_BY_ID"]="GET_CLIENT_BY_ID",e["REVOKE_ALL_TOKENS"]="REVOKE_ALL_TOKENS"}(s||(s={})),function(e){e["CLIENT"]="CLIENT",e["CLIENTS"]="CLIENTS",e["CLIENTS_PAGINATION"]="CLIENTS_PAGINATION",e["REVOCATION_SUCCESSFUL"]="REVOCATION_SUCCESSFUL"}(i||(i={})),function(e){e["EMPTY_CLIENT"]="EMPTY_CLIENT",e["SET_CLIENT"]="SET_CLIENT",e["SET_CLIENTS"]="SET_CLIENTS",e["SET_CLIENTS_PAGINATION"]="SET_CLIENTS_PAGINATION",e["SET_REVOCATION_SUCCESSFUL"]="SET_REVOCATION_SUCCESSFUL"}(l||(l={})),function(e){e["GET_APPLICATION_CONFIG"]="GET_APPLICATION_CONFIG",e["GET_APPLICATION_STATS"]="GET_APPLICATION_STATS",e["UPDATE_APPLICATION_CONFIG"]="UPDATE_APPLICATION_CONFIG",e["UPDATE_APPLICATION_LANGUAGE"]="UPDATE_APPLICATION_LANGUAGE"}(c||(c={})),function(e){e["APP_CONFIG"]="APP_CONFIG",e["APP_LOADING"]="APP_LOADING",e["APP_STATS"]="APP_STATS",e["ERROR_MESSAGES"]="ERROR_MESSAGES",e["LANGUAGE"]="LANGUAGE",e["LOCALE"]="LOCALE"}(u||(u={})),function(e){e["EMPTY_ERROR_MESSAGES"]="EMPTY_ERROR_MESSAGES",e["SET_ERROR_MESSAGES"]="SET_ERROR_MESSAGES",e["UPDATE_APPLICATION_CONFIG"]="UPDATE_APPLICATION_CONFIG",e["UPDATE_APPLICATION_LOADING"]="UPDATE_APPLICATION_LOADING",e["UPDATE_APPLICATION_STATS"]="UPDATE_APPLICATION_STATS",e["UPDATE_LANG"]="UPDATE_LANG"}(d||(d={})),function(e){e["GET_SPORTS"]="GET_SPORTS",e["UPDATE_SPORTS"]="UPDATE_SPORTS"}(m||(m={})),function(e){e["SPORTS"]="SPORTS"}(_||(_={})),function(e){e["SET_SPORTS"]="SET_SPORTS"}(E||(E={})),function(e){e["GET_USER_STATS"]="GET_USER_STATS"}(S||(S={})),function(e){e["USER_STATS"]="USER_STATS"}(T||(T={})),function(e){e["EMPTY_USER_STATS"]="EMPTY_USER_STATS",e["UPDATE_USER_STATS"]="UPDATE_USER_STATS"}(p||(p={})),function(e){e["EMPTY_USER"]="EMPTY_USER",e["EMPTY_USERS"]="EMPTY_USERS",e["GET_USER"]="GET_USER",e["GET_USERS"]="GET_USERS",e["UPDATE_USER"]="UPDATE_USER",e["DELETE_USER_ACCOUNT"]="DELETE_USER_ACCOUNT"}(A||(A={})),function(e){e["USER"]="USER",e["USERS"]="USERS",e["USERS_IS_SUCCESS"]="USERS_IS_SUCCESS",e["USERS_LOADING"]="USERS_LOADING",e["USERS_PAGINATION"]="USERS_PAGINATION"}(O||(O={})),function(e){e["UPDATE_USER"]="UPDATE_USER",e["UPDATE_USER_IN_USERS"]="UPDATE_USER_IN_USERS",e["UPDATE_USERS"]="UPDATE_USERS",e["UPDATE_USERS_LOADING"]="UPDATE_USERS_LOADING",e["UPDATE_USERS_PAGINATION"]="UPDATE_USERS_PAGINATION",e["UPDATE_IS_SUCCESS"]="UPDATE_IS_SUCCESS"}(I||(I={}));var R=n(52);const U={ACTIONS:c,GETTERS:u,MUTATIONS:d},g={ACTIONS:m,GETTERS:_,MUTATIONS:E},N={ACTIONS:S,GETTERS:T,MUTATIONS:p},h={ACTIONS:r,GETTERS:a,MUTATIONS:o},z={ACTIONS:s,GETTERS:i,MUTATIONS:l},w={ACTIONS:A,GETTERS:O,MUTATIONS:I},f={ACTIONS:R.tW,GETTERS:R.JP,MUTATIONS:R.CW}},2894:function(e,t,n){"use strict";n.d(t,{Z:function(){return de}});var r=n(3907),a=(n(7658),n(5167)),o=n(594),s=n(8566),i=n(2024);const l=o.Z.create({baseURL:(0,i.k)()});l.interceptors.request.use((e=>{const t=new AbortController;e.signal=t.signal;const n=(0,s.a)(e);return s.j.set(n,t),e}),(e=>Promise.reject(e))),l.interceptors.response.use((e=>((0,s.a)(e.config),e)),(e=>("canceled"!==e.message&&(0,s.a)(e.response.config),Promise.reject(e))));var c=l,u=n(6176),d=n(5801);const m=(e,t)=>{e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z["delete"](`users/${t.username}`).then((n=>{204===n.status?t.fromAdmin?u.Z.push("/admin/users"):e.dispatch(d.YN.ACTIONS.LOGOUT).then((()=>u.Z.push("/"))):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t)))},_={[d.RT.ACTIONS.EMPTY_USER](e){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(d.RT.MUTATIONS.UPDATE_USER,{})},[d.RT.ACTIONS.EMPTY_USERS](e){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(d.RT.MUTATIONS.UPDATE_USERS,[]),e.commit(d.RT.MUTATIONS.UPDATE_USERS_PAGINATION,{})},[d.RT.ACTIONS.GET_USER](e,t){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(d.RT.MUTATIONS.UPDATE_USERS_LOADING,!0),a.Z.get(`users/${t}`).then((t=>{"success"===t.data.status?e.commit(d.RT.MUTATIONS.UPDATE_USER,t.data.data.users[0]):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t))).finally((()=>e.commit(d.RT.MUTATIONS.UPDATE_USERS_LOADING,!1)))},[d.RT.ACTIONS.GET_USERS](e,t){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(d.RT.MUTATIONS.UPDATE_USERS_LOADING,!0),a.Z.get("users",{params:t}).then((t=>{"success"===t.data.status?(e.commit(d.RT.MUTATIONS.UPDATE_USERS,t.data.data.users),e.commit(d.RT.MUTATIONS.UPDATE_USERS_PAGINATION,t.data.pagination)):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t))).finally((()=>e.commit(d.RT.MUTATIONS.UPDATE_USERS_LOADING,!1)))},[d.RT.ACTIONS.UPDATE_USER](e,t){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(d.RT.MUTATIONS.UPDATE_IS_SUCCESS,!1);const n={};void 0!==t.admin&&(n.admin=t.admin),t.resetPassword&&(n.reset_password=t.resetPassword),t.activate&&(n.activate=t.activate),void 0!==t.new_email&&(n.new_email=t.new_email),a.Z.patch(`users/${t.username}`,n).then((n=>{"success"===n.data.status?(e.commit(d.RT.MUTATIONS.UPDATE_USER_IN_USERS,n.data.data.users[0]),(t.resetPassword||t.new_email)&&e.commit(d.RT.MUTATIONS.UPDATE_IS_SUCCESS,!0),(t.activate||t.new_email)&&e.commit(d.RT.MUTATIONS.UPDATE_USER,n.data.data.users[0])):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t))).finally((()=>e.commit(d.RT.MUTATIONS.UPDATE_USERS_LOADING,!1)))},[d.RT.ACTIONS.DELETE_USER_ACCOUNT](e,t){m(e,{username:t.username,fromAdmin:!0})}},E=e=>{localStorage.removeItem("authToken"),e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(d.gu.MUTATIONS.EMPTY_USER_STATS),e.commit(d.YN.MUTATIONS.CLEAR_AUTH_USER_TOKEN),e.commit(d.RT.MUTATIONS.UPDATE_USERS,[]),e.commit(d.aX.MUTATIONS.EMPTY_WORKOUTS),e.commit(d.aX.MUTATIONS.EMPTY_WORKOUT),u.Z.push("/login")},S={[d.YN.ACTIONS.CHECK_AUTH_USER](e){window.localStorage.authToken&&!e.getters[d.YN.GETTERS.IS_AUTHENTICATED]&&(e.commit(d.YN.MUTATIONS.UPDATE_AUTH_TOKEN,window.localStorage.authToken),e.dispatch(d.YN.ACTIONS.GET_USER_PROFILE)),!window.localStorage.authToken&&e.getters[d.YN.GETTERS.IS_AUTHENTICATED]&&E(e)},[d.YN.ACTIONS.CONFIRM_ACCOUNT](e,t){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),c.post("auth/account/confirm",{token:t.token}).then((t=>{if("success"===t.data.status){const n=t.data.auth_token;window.localStorage.setItem("authToken",n),e.commit(d.YN.MUTATIONS.UPDATE_AUTH_TOKEN,n),e.dispatch(d.YN.ACTIONS.GET_USER_PROFILE).then((()=>u.Z.push("/")))}else(0,i.S)(e,null)})).catch((t=>{(0,i.S)(e,t)}))},[d.YN.ACTIONS.CONFIRM_EMAIL](e,t){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(d.YN.MUTATIONS.UPDATE_IS_SUCCESS,!1),c.post("/auth/email/update",{token:t.token}).then((n=>{"success"===n.data.status?(e.commit(d.YN.MUTATIONS.UPDATE_IS_SUCCESS,!0),t.refreshUser&&e.dispatch(d.YN.ACTIONS.GET_USER_PROFILE).then((()=>u.Z.push("/profile/edit/account"))),u.Z.push("/profile/edit/account")):(0,i.S)(e,null)})).catch((t=>{(0,i.S)(e,t)}))},[d.YN.ACTIONS.GET_USER_PROFILE](e){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z.get("auth/profile").then((t=>{"success"===t.data.status?(e.commit(d.YN.MUTATIONS.UPDATE_AUTH_USER_PROFILE,t.data.data),t.data.data.language&&e.dispatch(d.SY.ACTIONS.UPDATE_APPLICATION_LANGUAGE,t.data.data.language),e.dispatch(d.O8.ACTIONS.GET_SPORTS)):((0,i.S)(e,null),E(e))})).catch((t=>{"canceled"!==t.message&&((0,i.S)(e,t),E(e))}))},[d.YN.ACTIONS.LOGIN_OR_REGISTER](e,t){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(d.YN.MUTATIONS.UPDATE_IS_REGISTRATION_SUCCESS,!1),c.post(`/auth/${t.actionType}`,t.formData).then((n=>{if("success"===n.data.status)if("login"===t.actionType){const r=n.data.auth_token;window.localStorage.setItem("authToken",r),e.commit(d.YN.MUTATIONS.UPDATE_AUTH_TOKEN,r),e.dispatch(d.YN.ACTIONS.GET_USER_PROFILE).then((()=>u.Z.push("string"===typeof t.redirectUrl?t.redirectUrl:"/")))}else u.Z.push("/login").then((()=>e.commit(d.YN.MUTATIONS.UPDATE_IS_REGISTRATION_SUCCESS,!0)));else(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t)))},[d.YN.ACTIONS.LOGOUT](e){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z.post("auth/logout").then((t=>{"success"===t.data.status?E(e):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t)))},[d.YN.ACTIONS.UPDATE_USER_PROFILE](e,t){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(d.YN.MUTATIONS.UPDATE_USER_LOADING,!0),a.Z.post("auth/profile/edit",t).then((t=>{"success"===t.data.status?(e.commit(d.YN.MUTATIONS.UPDATE_AUTH_USER_PROFILE,t.data.data),u.Z.push("/profile")):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t))).finally((()=>e.commit(d.YN.MUTATIONS.UPDATE_USER_LOADING,!1)))},[d.YN.ACTIONS.UPDATE_USER_ACCOUNT](e,t){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(d.YN.MUTATIONS.UPDATE_USER_LOADING,!0),e.commit(d.YN.MUTATIONS.UPDATE_IS_SUCCESS,!1),a.Z.patch("auth/profile/edit/account",t).then((t=>{"success"===t.data.status?(e.commit(d.YN.MUTATIONS.UPDATE_AUTH_USER_PROFILE,t.data.data),e.commit(d.YN.MUTATIONS.UPDATE_IS_SUCCESS,!0)):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t))).finally((()=>e.commit(d.YN.MUTATIONS.UPDATE_USER_LOADING,!1)))},[d.YN.ACTIONS.UPDATE_USER_PREFERENCES](e,t){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(d.YN.MUTATIONS.UPDATE_USER_LOADING,!0),a.Z.post("auth/profile/edit/preferences",t).then((t=>{"success"===t.data.status?(e.commit(d.YN.MUTATIONS.UPDATE_AUTH_USER_PROFILE,t.data.data),e.dispatch(d.SY.ACTIONS.UPDATE_APPLICATION_LANGUAGE,t.data.data.language).then((()=>u.Z.push("/profile/preferences")))):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t))).finally((()=>e.commit(d.YN.MUTATIONS.UPDATE_USER_LOADING,!1)))},[d.YN.ACTIONS.RESET_USER_SPORT_PREFERENCES](e,t){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(d.YN.MUTATIONS.UPDATE_USER_LOADING,!0),a.Z["delete"](`auth/profile/reset/sports/${t}`).then((t=>{204===t.status?e.dispatch(d.O8.ACTIONS.GET_SPORTS):(0,i.S)(e,null)})).catch((t=>{(0,i.S)(e,t),e.commit(d.YN.MUTATIONS.UPDATE_USER_LOADING,!1)}))},[d.YN.ACTIONS.UPDATE_USER_SPORT_PREFERENCES](e,t){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(d.YN.MUTATIONS.UPDATE_USER_LOADING,!0),a.Z.post("auth/profile/edit/sports",t).then((t=>{"success"===t.data.status?e.dispatch(d.O8.ACTIONS.GET_SPORTS):(0,i.S)(e,null)})).catch((t=>{(0,i.S)(e,t),e.commit(d.YN.MUTATIONS.UPDATE_USER_LOADING,!1)}))},[d.YN.ACTIONS.UPDATE_USER_PICTURE](e,t){if(e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(d.YN.MUTATIONS.UPDATE_USER_LOADING,!0),!t.picture)throw new Error("No file part");const n=new FormData;n.append("file",t.picture),a.Z.post("auth/picture",n,{headers:{"content-type":"multipart/form-data"}}).then((t=>{"success"===t.data.status?e.dispatch(d.YN.ACTIONS.GET_USER_PROFILE).then((()=>u.Z.push("/profile"))):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t))).finally((()=>e.commit(d.YN.MUTATIONS.UPDATE_USER_LOADING,!1)))},[d.YN.ACTIONS.DELETE_ACCOUNT](e,t){m(e,t)},[d.YN.ACTIONS.DELETE_PICTURE](e){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(d.YN.MUTATIONS.UPDATE_USER_LOADING,!0),a.Z["delete"]("auth/picture").then((t=>{204===t.status?e.dispatch(d.YN.ACTIONS.GET_USER_PROFILE).then((()=>u.Z.push("/profile"))):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t))).finally((()=>e.commit(d.YN.MUTATIONS.UPDATE_USER_LOADING,!1)))},[d.YN.ACTIONS.SEND_PASSWORD_RESET_REQUEST](e,t){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),c.post("auth/password/reset-request",t).then((t=>{"success"===t.data.status?u.Z.push("/password-reset/sent"):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t)))},[d.YN.ACTIONS.RESEND_ACCOUNT_CONFIRMATION_EMAIL](e,t){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),c.post("auth/account/resend-confirmation",t).then((t=>{"success"===t.data.status?u.Z.push("/account-confirmation/email-sent"):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t)))},[d.YN.ACTIONS.RESET_USER_PASSWORD](e,t){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),c.post("auth/password/update",t).then((t=>{"success"===t.data.status?u.Z.push("/password-reset/password-updated"):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t)))}},T={[d.YN.GETTERS.AUTH_TOKEN]:e=>e.authToken,[d.YN.GETTERS.AUTH_USER_PROFILE]:e=>e.authUserProfile,[d.YN.GETTERS.IS_AUTHENTICATED]:e=>null!==e.authToken,[d.YN.GETTERS.IS_ADMIN]:e=>e.authUserProfile&&e.authUserProfile.admin,[d.YN.GETTERS.IS_REGISTRATION_SUCCESS]:e=>e.isRegistrationSuccess,[d.YN.GETTERS.IS_SUCCESS]:e=>e.isSuccess,[d.YN.GETTERS.USER_LOADING]:e=>e.loading},p={[d.YN.MUTATIONS.CLEAR_AUTH_USER_TOKEN](e){e.authToken=null,e.authUserProfile={}},[d.YN.MUTATIONS.UPDATE_AUTH_TOKEN](e,t){e.authToken=t},[d.YN.MUTATIONS.UPDATE_AUTH_USER_PROFILE](e,t){e.authUserProfile=t},[d.YN.MUTATIONS.UPDATE_IS_REGISTRATION_SUCCESS](e,t){e.isRegistrationSuccess=t},[d.YN.MUTATIONS.UPDATE_IS_SUCCESS](e,t){e.isSuccess=t},[d.YN.MUTATIONS.UPDATE_USER_LOADING](e,t){e.loading=t}},A={authToken:null,authUserProfile:{},isSuccess:!1,isRegistrationSuccess:!1,loading:!1},O={state:A,actions:S,getters:T,mutations:p};var I=O;const R=(e,t)=>{e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z.get(t).then((t=>{"success"===t.data.status?e.commit(d.Km.MUTATIONS.SET_CLIENT,t.data.data.client):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t)))},U={[d.Km.ACTIONS.AUTHORIZE_CLIENT](e,t){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES);const n=new FormData;n.set("client_id",t.client_id),n.set("response_type",t.response_type),n.set("scope",t.scope),n.set("confirm","true"),t.state&&n.set("state",t.state),t.code_challenge&&n.set("code_challenge",t.code_challenge),t.code_challenge_method&&n.set("code_challenge_method",t.code_challenge_method),a.Z.post("oauth/authorize",n,{headers:{"Content-Type":"multipart/form-data"}}).then((t=>{200==t.status&&t.data.redirect_url?window.location.href=t.data.redirect_url:(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t)))},[d.Km.ACTIONS.CREATE_CLIENT](e,t){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z.post("oauth/apps",t).then((t=>{"created"===t.data.status?(e.commit(d.Km.MUTATIONS.SET_CLIENT,t.data.data.client),u.Z.push(`/profile/apps/${t.data.data.client.id}/created`)):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t)))},[d.Km.ACTIONS.DELETE_CLIENT](e,t){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z["delete"](`oauth/apps/${t}`).then((t=>{204===t.status?e.dispatch(d.Km.ACTIONS.GET_CLIENTS).then((()=>u.Z.push("/profile/apps"))):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t)))},[d.Km.ACTIONS.GET_CLIENT_BY_CLIENT_ID](e,t){R(e,`oauth/apps/${t}`)},[d.Km.ACTIONS.GET_CLIENT_BY_ID](e,t){R(e,`oauth/apps/${t}/by_id`)},[d.Km.ACTIONS.GET_CLIENTS](e,t){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z.get("oauth/apps",{params:t}).then((t=>{"success"===t.data.status?(e.commit(d.Km.MUTATIONS.SET_CLIENTS,t.data.data.clients),e.commit(d.Km.MUTATIONS.SET_CLIENTS_PAGINATION,t.data.pagination)):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t)))},[d.Km.ACTIONS.REVOKE_ALL_TOKENS](e,t){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(d.Km.MUTATIONS.SET_REVOCATION_SUCCESSFUL,!1),a.Z.post(`oauth/apps/${t}/revoke`).then((t=>{"success"===t.data.status?e.commit(d.Km.MUTATIONS.SET_REVOCATION_SUCCESSFUL,!0):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t)))}},g={[d.Km.GETTERS.CLIENT]:e=>e.client,[d.Km.GETTERS.CLIENTS]:e=>e.clients,[d.Km.GETTERS.CLIENTS_PAGINATION]:e=>e.pagination,[d.Km.GETTERS.REVOCATION_SUCCESSFUL]:e=>e.revocationSuccessful},N={[d.Km.MUTATIONS.SET_CLIENT](e,t){e.client=t},[d.Km.MUTATIONS.EMPTY_CLIENT](e){e.client={}},[d.Km.MUTATIONS.SET_CLIENTS](e,t){e.clients=t},[d.Km.MUTATIONS.SET_CLIENTS_PAGINATION](e,t){e.pagination=t},[d.Km.MUTATIONS.SET_REVOCATION_SUCCESSFUL](e,t){e.revocationSuccessful=t}},h={client:{},clients:[],pagination:{},revocationSuccessful:!1},z={state:h,actions:U,getters:g,mutations:N};var w=z,f=n(2540);const{locale:v}=f.Z.global,C={[d.SY.ACTIONS.GET_APPLICATION_CONFIG](e){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(d.SY.MUTATIONS.UPDATE_APPLICATION_LOADING,!0),a.Z.get("config").then((t=>{"success"===t.data.status?e.commit(d.SY.MUTATIONS.UPDATE_APPLICATION_CONFIG,t.data.data):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t))).finally((()=>e.commit(d.SY.MUTATIONS.UPDATE_APPLICATION_LOADING,!1)))},[d.SY.ACTIONS.GET_APPLICATION_STATS](e){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z.get("stats/all").then((t=>{"success"===t.data.status?e.commit(d.SY.MUTATIONS.UPDATE_APPLICATION_STATS,t.data.data):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t)))},[d.SY.ACTIONS.UPDATE_APPLICATION_CONFIG](e,t){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z.patch("config",t).then((t=>{"success"===t.data.status?(e.commit(d.SY.MUTATIONS.UPDATE_APPLICATION_CONFIG,t.data.data),u.Z.push("/admin/application")):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t)))},[d.SY.ACTIONS.UPDATE_APPLICATION_LANGUAGE](e,t){document.querySelector("html")?.setAttribute("lang",t),e.commit(d.SY.MUTATIONS.UPDATE_LANG,t),v.value=t}},D={[d.SY.GETTERS.APP_CONFIG]:e=>e.application.config,[d.SY.GETTERS.APP_LOADING]:e=>e.appLoading,[d.SY.GETTERS.APP_STATS]:e=>e.application.statistics,[d.SY.GETTERS.ERROR_MESSAGES]:e=>e.errorMessages,[d.SY.GETTERS.LANGUAGE]:e=>e.language,[d.SY.GETTERS.LOCALE]:e=>e.locale};var k=n(6287);const P={[d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES](e){e.errorMessages=null},[d.SY.MUTATIONS.SET_ERROR_MESSAGES](e,t){e.errorMessages=t},[d.SY.MUTATIONS.UPDATE_APPLICATION_CONFIG](e,t){e.application.config=t},[d.SY.MUTATIONS.UPDATE_APPLICATION_LOADING](e,t){e.appLoading=t},[d.SY.MUTATIONS.UPDATE_APPLICATION_STATS](e,t){e.application.statistics=t},[d.SY.MUTATIONS.UPDATE_LANG](e,t){e.language=t,e.locale=k.v1[t]}};var L=n(5826);const M={root:!0,language:"en",locale:L.Z,errorMessages:null,application:{statistics:{sports:0,uploads_dir_size:0,users:0,workouts:0}},appLoading:!1},b={[d.O8.ACTIONS.GET_SPORTS](e){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z.get("sports").then((t=>{"success"===t.data.status?(e.commit(d.O8.MUTATIONS.SET_SPORTS,t.data.data.sports),e.commit(d.YN.MUTATIONS.UPDATE_USER_LOADING,!1)):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t)))},[d.O8.ACTIONS.UPDATE_SPORTS](e,t){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z.patch(`sports/${t.id}`,{is_active:t.isActive}).then((t=>{"success"===t.data.status?e.dispatch(d.O8.ACTIONS.GET_SPORTS):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t)))}},y={[d.O8.GETTERS.SPORTS]:e=>e.sports},G={[d.O8.MUTATIONS.SET_SPORTS](e,t){e.sports=t}},F={sports:[]},W={state:F,actions:b,getters:y,mutations:G};var K=W;const Y={[d.gu.ACTIONS.GET_USER_STATS](e,t){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z.get(`stats/${t.username}/${t.filterType}`,{params:t.params}).then((t=>{"success"===t.data.status?e.commit(d.gu.MUTATIONS.UPDATE_USER_STATS,t.data.data.statistics):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t)))}},x={[d.gu.GETTERS.USER_STATS]:e=>e.statistics},B={[d.gu.MUTATIONS.UPDATE_USER_STATS](e,t){e.statistics=t},[d.gu.MUTATIONS.EMPTY_USER_STATS](e){e.statistics={}}},$={statistics:{}},Z={state:$,actions:Y,getters:x,mutations:B};var H=Z;const q={[d.RT.GETTERS.USER]:e=>e.user,[d.RT.GETTERS.USERS]:e=>e.users,[d.RT.GETTERS.USERS_IS_SUCCESS]:e=>e.isSuccess,[d.RT.GETTERS.USERS_LOADING]:e=>e.loading,[d.RT.GETTERS.USERS_PAGINATION]:e=>e.pagination},V={[d.RT.MUTATIONS.UPDATE_USER](e,t){e.user=t},[d.RT.MUTATIONS.UPDATE_USER_IN_USERS](e,t){e.users=e.users.map((e=>e.username===t.username?t:e))},[d.RT.MUTATIONS.UPDATE_USERS](e,t){e.users=t},[d.RT.MUTATIONS.UPDATE_USERS_LOADING](e,t){e.loading=t},[d.RT.MUTATIONS.UPDATE_USERS_PAGINATION](e,t){e.pagination=t},[d.RT.MUTATIONS.UPDATE_IS_SUCCESS](e,t){e.isSuccess=t}},j={user:{},users:[],loading:!1,isSuccess:!1,pagination:{}},X={state:j,actions:_,getters:q,mutations:V};var J=X,Q=n(52);const ee=(e,t,n)=>{e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),a.Z.get("workouts",{params:t}).then((t=>{"success"===t.data.status?(e.commit(d.aX.MUTATIONS[n],t.data.data.workouts),n===Q.CW.SET_USER_WORKOUTS&&e.commit(d.aX.MUTATIONS.SET_WORKOUTS_PAGINATION,t.data.pagination)):(0,i.S)(e,null)})).catch((t=>(0,i.S)(e,t)))},te={[d.aX.ACTIONS.GET_CALENDAR_WORKOUTS](e,t){e.commit(d.aX.MUTATIONS.EMPTY_CALENDAR_WORKOUTS),ee(e,t,Q.CW.SET_CALENDAR_WORKOUTS)},[d.aX.ACTIONS.GET_USER_WORKOUTS](e,t){ee(e,t,Q.CW.SET_USER_WORKOUTS)},[d.aX.ACTIONS.GET_TIMELINE_WORKOUTS](e,t){ee(e,t,Q.CW.SET_TIMELINE_WORKOUTS)},[d.aX.ACTIONS.GET_MORE_TIMELINE_WORKOUTS](e,t){ee(e,t,Q.CW.ADD_TIMELINE_WORKOUTS)},[d.aX.ACTIONS.GET_WORKOUT_DATA](e,t){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(d.aX.MUTATIONS.SET_WORKOUT_LOADING,!0);const n=t.segmentId?`/segment/${t.segmentId}`:"";a.Z.get(`workouts/${t.workoutId}`).then((r=>{const o=r.data.data.workouts[0];if("success"===r.data.status){if(t.segmentId&&(0===o.segments.length||!o.segments[+t.segmentId-1]))throw new Error("WORKOUT_NOT_FOUND");e.commit(d.aX.MUTATIONS.SET_WORKOUT,r.data.data.workouts[0]),r.data.data.workouts[0].with_gpx&&(a.Z.get(`workouts/${t.workoutId}/chart_data${n}`).then((t=>{"success"===t.data.status&&e.commit(d.aX.MUTATIONS.SET_WORKOUT_CHART_DATA,t.data.data.chart_data)})),a.Z.get(`workouts/${t.workoutId}/gpx${n}`).then((t=>{"success"===t.data.status&&e.commit(d.aX.MUTATIONS.SET_WORKOUT_GPX,t.data.data.gpx)})))}else e.commit(d.aX.MUTATIONS.EMPTY_WORKOUT),(0,i.S)(e,null)})).catch((t=>{e.commit(d.aX.MUTATIONS.EMPTY_WORKOUT),(0,i.S)(e,t)})).finally((()=>e.commit(d.aX.MUTATIONS.SET_WORKOUT_LOADING,!1)))},[d.aX.ACTIONS.DELETE_WORKOUT](e,t){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(d.aX.MUTATIONS.SET_WORKOUT_LOADING,!0),a.Z["delete"](`workouts/${t.workoutId}`).then((()=>{e.commit(d.aX.MUTATIONS.EMPTY_WORKOUT),e.dispatch(d.YN.ACTIONS.GET_USER_PROFILE),u.Z.push("/")})).catch((t=>{(0,i.S)(e,t)})).finally((()=>e.commit(d.aX.MUTATIONS.SET_WORKOUT_LOADING,!1)))},[d.aX.ACTIONS.EDIT_WORKOUT](e,t){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(d.aX.MUTATIONS.SET_WORKOUT_LOADING,!0),a.Z.patch(`workouts/${t.workoutId}`,t.data).then((()=>{e.dispatch(d.YN.ACTIONS.GET_USER_PROFILE),e.dispatch(d.aX.ACTIONS.GET_WORKOUT_DATA,{workoutId:t.workoutId}).then((()=>{u.Z.push({name:"Workout",params:{workoutId:t.workoutId}})}))})).catch((t=>{(0,i.S)(e,t)})).finally((()=>e.commit(d.aX.MUTATIONS.SET_WORKOUT_LOADING,!1)))},[d.aX.ACTIONS.ADD_WORKOUT](e,t){if(e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(d.aX.MUTATIONS.SET_WORKOUT_LOADING,!0),!t.file)throw new Error("No file part");const n=t.notes.replace(/"/g,'\\"'),r=new FormData;r.append("file",t.file),r.append("data",`{"sport_id": ${t.sport_id}, "notes": "${n}"}`),a.Z.post("workouts",r,{headers:{"content-type":"multipart/form-data"}}).then((t=>{if("created"===t.data.status){e.dispatch(d.YN.ACTIONS.GET_USER_PROFILE);const n=t.data.data.workouts[0];u.Z.push(1===t.data.data.workouts.length?`/workouts/${n.id}`:"/")}})).catch((t=>{(0,i.S)(e,t)})).finally((()=>e.commit(d.aX.MUTATIONS.SET_WORKOUT_LOADING,!1)))},[d.aX.ACTIONS.ADD_WORKOUT_WITHOUT_GPX](e,t){e.commit(d.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),e.commit(d.aX.MUTATIONS.SET_WORKOUT_LOADING,!0),a.Z.post("workouts/no_gpx",t).then((t=>{if("created"===t.data.status){e.dispatch(d.YN.ACTIONS.GET_USER_PROFILE);const n=t.data.data.workouts[0];u.Z.push(`/workouts/${n.id}`)}})).catch((t=>{(0,i.S)(e,t)})).finally((()=>e.commit(d.aX.MUTATIONS.SET_WORKOUT_LOADING,!1)))}},ne={[d.aX.GETTERS.CALENDAR_WORKOUTS]:e=>e.calendar_workouts,[d.aX.GETTERS.TIMELINE_WORKOUTS]:e=>e.timeline_workouts,[d.aX.GETTERS.USER_WORKOUTS]:e=>e.user_workouts,[d.aX.GETTERS.WORKOUT_DATA]:e=>e.workoutData,[d.aX.GETTERS.WORKOUTS_PAGINATION]:e=>e.pagination},re={[d.aX.MUTATIONS.ADD_TIMELINE_WORKOUTS](e,t){e.timeline_workouts=e.timeline_workouts.concat(t)},[d.aX.MUTATIONS.SET_CALENDAR_WORKOUTS](e,t){e.calendar_workouts=t},[d.aX.MUTATIONS.SET_TIMELINE_WORKOUTS](e,t){e.timeline_workouts=t},[d.aX.MUTATIONS.SET_USER_WORKOUTS](e,t){e.user_workouts=t},[d.aX.MUTATIONS.SET_WORKOUTS_PAGINATION](e,t){e.pagination=t},[d.aX.MUTATIONS.SET_WORKOUT](e,t){e.workoutData.workout=t},[d.aX.MUTATIONS.SET_WORKOUT_CHART_DATA](e,t){e.workoutData.chartData=t},[d.aX.MUTATIONS.SET_WORKOUT_GPX](e,t){e.workoutData.gpx=t},[d.aX.MUTATIONS.SET_WORKOUT_LOADING](e,t){e.workoutData.loading=t},[d.aX.MUTATIONS.EMPTY_CALENDAR_WORKOUTS](e){e.calendar_workouts=[]},[d.aX.MUTATIONS.EMPTY_WORKOUTS](e){e.calendar_workouts=[],e.user_workouts=[],e.timeline_workouts=[]},[d.aX.MUTATIONS.EMPTY_WORKOUT](e){e.workoutData={gpx:"",loading:!1,workout:{},chartData:[]}}},ae={calendar_workouts:[],timeline_workouts:[],pagination:{},user_workouts:[],workoutData:{gpx:"",loading:!1,workout:{},chartData:[]}},oe={state:ae,actions:te,getters:ne,mutations:re};var se=oe;const ie={authUserModule:I,oAuthModule:w,sportsModule:K,statsModule:H,usersModule:J,workoutsModule:se},le={state:M,actions:C,getters:D,mutations:P,modules:ie};var ce=le;const ue=(0,r.MT)(ce);var de=ue},52:function(e,t,n){"use strict";var r,a,o;n.d(t,{CW:function(){return o},JP:function(){return a},tW:function(){return r}}),function(e){e["ADD_WORKOUT"]="ADD_WORKOUT",e["ADD_WORKOUT_WITHOUT_GPX"]="ADD_WORKOUT_WITHOUT_GPX",e["DELETE_WORKOUT"]="DELETE_WORKOUT",e["EDIT_WORKOUT"]="EDIT_WORKOUT",e["GET_CALENDAR_WORKOUTS"]="GET_CALENDAR_WORKOUTS",e["GET_USER_WORKOUTS"]="GET_USER_WORKOUTS",e["GET_TIMELINE_WORKOUTS"]="GET_TIMELINE_WORKOUTS",e["GET_MORE_TIMELINE_WORKOUTS"]="GET_MORE_TIMELINE_WORKOUTS",e["GET_WORKOUT_DATA"]="GET_WORKOUT_DATA"}(r||(r={})),function(e){e["CALENDAR_WORKOUTS"]="CALENDAR_WORKOUTS",e["TIMELINE_WORKOUTS"]="TIMELINE_WORKOUTS",e["USER_WORKOUTS"]="USER_WORKOUTS",e["WORKOUT_DATA"]="WORKOUT_DATA",e["WORKOUTS_PAGINATION"]="WORKOUTS_PAGINATION"}(a||(a={})),function(e){e["ADD_TIMELINE_WORKOUTS"]="ADD_TIMELINE_WORKOUTS",e["EMPTY_WORKOUTS"]="EMPTY_WORKOUTS",e["EMPTY_CALENDAR_WORKOUTS"]="EMPTY_CALENDAR_WORKOUTS",e["EMPTY_WORKOUT"]="EMPTY_WORKOUT",e["SET_CALENDAR_WORKOUTS"]="SET_CALENDAR_WORKOUTS",e["SET_TIMELINE_WORKOUTS"]="SET_TIMELINE_WORKOUTS",e["SET_USER_WORKOUTS"]="SET_USER_WORKOUTS",e["SET_WORKOUT"]="SET_WORKOUT",e["SET_WORKOUT_GPX"]="SET_WORKOUT_GPX",e["SET_WORKOUT_CHART_DATA"]="SET_WORKOUT_CHART_DATA",e["SET_WORKOUT_LOADING"]="SET_WORKOUT_LOADING",e["SET_WORKOUTS_PAGINATION"]="SET_WORKOUTS_PAGINATION"}(o||(o={}))},9917:function(e,t,n){"use strict";n.d(t,{o:function(){return a}});var r=n(3907);function a(){return(0,r.oR)()}},2766:function(e,t,n){"use strict";n.d(t,{Hf:function(){return a},Ne:function(){return c},fS:function(){return r},lM:function(){return d},pm:function(){return l},z_:function(){return s}});const r=["asc","desc"],a=1,o=10,s=(e,t)=>e&&"string"===typeof e&&+e>0?+e:t,i=(e,t,n)=>e&&"string"===typeof e&&t.includes(e)?e:n,l=(e,t,n,l)=>{const c=l||{},u=c.defaultSort||"asc",d={};return d.page=s(e.page,a),d.per_page=s(e.per_page,o),d.order=i(e.order,r,u),d.order_by=i(e.order_by,t,n),"string"===typeof e.q?d.q=e.q:delete d.q,d},c=["from","to","ave_speed_from","ave_speed_to","max_speed_from","max_speed_to","distance_from","distance_to","duration_from","duration_to","sport_id"],u=(e,t=1)=>Array.from({length:e-t+1},((e,n)=>t+n)),d=(e,t)=>{if(e<0)return[];if(e<9)return u(e);let n=[1,2];return t<4?n=n.concat([3,4,5]):t<6?n=n.concat(u(t+2,3)):(n=n.concat(["..."]),t=e-2&&n[n.length-1]{switch(e){case"week":return(0,r.Z)(t,{weekStartsOn:n?1:0});case"year":return(0,a.Z)(t);case"month":return(0,o.Z)(t);default:throw new Error(`Invalid duration, expected: "week", "month", "year", got: "${e}"`)}},p=(e,t)=>{switch(e){case"week":return(0,s.Z)(t,7);case"year":return(0,i.Z)(t,1);case"month":return(0,l.Z)(t,1);default:throw new Error(`Invalid duration, expected: "week", "month", "year", got: "${e}"`)}},A=(e,t)=>(0,m.utcToZonedTime)(new Date(e),t),O=(e,t)=>{const n=(0,o.Z)(e),a=(0,c.Z)(e),s=t?1:0;return{start:(0,r.Z)(n,{weekStartsOn:s}),end:(0,u.Z)(a,{weekStartsOn:s})}},I=(e,t=null,n=null)=>(t||(t="yyyy/MM/dd"),t=g(t,S.value),n||(n="HH:mm"),{workout_date:(0,d.Z)(e,t,{locale:E.v1[S.value]}),workout_time:(0,d.Z)(e,n)}),R=["MM/dd/yyyy","dd/MM/yyyy","yyyy-MM-dd","date_string"],U={de:"do MMM yyyy",en:"MMM. do, yyyy",fr:"d MMM yyyy"},g=(e,t)=>"date_string"===e?U[t]:e,N=(e,t,n,r=!0,a=null)=>(a||(a=S.value),(0,d.Z)(A(e,t),`${g(n,a)}${r?" HH:mm":""}`,{locale:E.v1[a]})),h=(e,t,n=null)=>{const r=n||S.value,a=[];return R.map((n=>{const o=g(n,r);a.push({label:`${o} - ${N(e,t,o,!1,r)}`,value:n})})),a}},8966:function(e,t,n){"use strict";n.d(t,{Z:function(){return a},j:function(){return o}});const r=["bytes","KB","MB","GB","TB"],a=(e,t=!0)=>{const n=Math.floor(Math.log(e)/Math.log(1024));if(!e)return t?"0 bytes":{size:"0",suffix:"bytes"};const a=(e/Math.pow(1024,n)).toFixed(1),o=r[n];return t?`${a}${o}`:{size:a,suffix:o}},o=e=>{const t=e/1048576;return+t.toFixed(2)}},2024:function(e,t,n){"use strict";n.d(t,{S:function(){return o},k:function(){return a}});var r=n(5801);const a=()=>"/api/",o=(e,t,n="UNKNOWN")=>{if(t&&"canceled"===t.message)return;const a=t?.response&&t.response.data?t.response.data:null;if(401===t?.response?.status&&"invalid_token"===a?.error)return localStorage.removeItem("authToken"),void e.dispatch(r.YN.ACTIONS.CHECK_AUTH_USER);const o=t?t.response?413===t.response.status?"file size is greater than the allowed size":a?.message?a.message:n:t.message?t.message:n:n;e.commit(r.SY.MUTATIONS.SET_ERROR_MESSAGES,o.includes("\n")?o.split("\n").filter((e=>""!==e)).map((e=>`api.ERROR.${e}`)):`api.ERROR.${o}`)}},6287:function(e,t,n){"use strict";n.d(t,{mT:function(){return u},v1:function(){return i},zK:function(){return l}});var r=n(879),a=n(5826),o=n(5830),s=n(2540);const i={de:r.Z,en:a.Z,fr:o.Z},l={de:"Deutsch",en:"English",fr:"Français"},{availableLocales:c}=s.Z.global,u=c.map((e=>({label:l[e],value:e})))},631:function(e,t,n){"use strict";n.d(t,{CM:function(){return l},PA:function(){return i},Yx:function(){return a},Zo:function(){return r},xH:function(){return s}});const r={"Cycling (Sport)":"#4c9792","Cycling (Transport)":"#88af98","Cycling (Virtual)":"#64a360",Hiking:"#bb757c","Mountain Biking":"#d4b371","Mountain Biking (Electric)":"#fc9d6f",Rowing:"#fcce72",Running:"#835b83","Skiing (Alpine)":"#67a4bd","Skiing (Cross Country)":"#9498d0",Snowshoes:"#5780a8",Trail:"#09a98a",Walking:"#838383"},a=e=>{const t={};return e.map((e=>t[e.id]=e.color?e.color:r[e.label])),t},o=(e,t)=>{const n=e.translatedLabel.toLowerCase(),r=t.translatedLabel.toLowerCase();return n>r?1:ne.filter((e=>"all"===n||(r.includes(e.id)||e[n]))).map((e=>({...e,translatedLabel:t(`sports.${e.label}.LABEL`)}))).sort(o),i=(e,t)=>t.filter((t=>t.id===e.sport_id)).map((e=>e.label))[0],l=(e,t)=>t.filter((t=>t.id===e.sport_id)).map((e=>e.color))[0]},9318:function(e,t,n){"use strict";n.d(t,{FN:function(){return C},aZ:function(){return v},v1:function(){return f}});n(7658);var r=n(4850),a=n(8148),o=n(9319),s=n(584),i=n(4559),l=n(3703),c=n(876),u=n(7090),d=n(4135),m=n(1593),_=n(7982),E=n(3500),S=n(1640),T=n(2540),p=n(6558),A=n(6287),O=n(631),I=n(3649);const{locale:R}=T.Z.global,U={week:{api:"yyyy-MM-dd",chart:"MM/dd/yyyy"},month:{api:"yyyy-MM",chart:"MM/yyyy"},year:{api:"yyyy",chart:"yyyy"}},g=["average_speed","nb_workouts","total_duration","total_distance","total_ascent","total_descent"],N=(e,t)=>{const n=[];for(let r=(0,p.Nh)(e.duration,e.start,t);r<=e.end;r=(0,p.xA)(e.duration,r))n.push(r);return n},h=(e,t,n=!1)=>{const r={label:e,backgroundColor:[t],data:[]};return n&&(r.type="line",r.borderColor=[t],r.spanGaps=!0),r},z=e=>{const t={average_speed:[],nb_workouts:[],total_distance:[],total_duration:[],total_ascent:[],total_descent:[]};return e.map((e=>{const n=e.color?e.color:O.Zo[e.label];t.average_speed.push(h(e.label,n,!0)),t.nb_workouts.push(h(e.label,n)),t.total_distance.push(h(e.label,n)),t.total_duration.push(h(e.label,n)),t.total_ascent.push(h(e.label,n)),t.total_descent.push(h(e.label,n))})),t},w=(e,t,n)=>{switch(e){case"average_speed":case"total_distance":case"total_ascent":case"total_descent":return(0,I.f3)(["average_speed","total_distance"].includes(e)?"km":"m",t,n);default:case"nb_workouts":case"total_duration":return t}},f=(e,t,n,a,o,s,i)=>{const l=N(e,t),c=U[e.duration],u=n.filter((e=>a.includes(e.id))),d=[],m=z(u),_={};return u.map((e=>_[e.label]=e.id)),l.map((t=>{const n=(0,r.Z)(t,c.api),a=(0,r.Z)(t,"week"===e.duration?(0,p.mh)(i,R.value):c.chart,{locale:A.v1[R.value]});d.push(a),g.map((e=>{m[e].map((t=>{t.data.push(n in o&&_[t.label]in o[n]?w(e,o[n][_[t.label]][e],s):"average_speed"===e?null:0)}))}))})),{labels:d,datasets:m}},v=(e,t,n)=>{const r=n?1:0,m="year"===t?(0,a.Z)((0,o.Z)(e,9)):"week"===t?(0,s.Z)((0,i.Z)(e,2),{weekStartsOn:r}):(0,l.Z)((0,i.Z)(e,11)),_="year"===t?(0,c.Z)(e):"week"===t?(0,u.Z)(e,{weekStartsOn:r}):(0,d.Z)(e);return{duration:t,end:_,start:m}},C=(e,t,n)=>{const{duration:r,start:T,end:p}=e,A=n?1:0;return{duration:r,end:"year"===r?(0,c.Z)(t?(0,o.Z)(p,1):(0,m.Z)(p,1)):"week"===r?(0,u.Z)(t?(0,_.Z)(p,1):(0,E.Z)(p,1),{weekStartsOn:A}):(0,d.Z)(t?(0,i.Z)(p,1):(0,S.Z)(p,1)),start:"year"===r?(0,a.Z)(t?(0,o.Z)(T,1):(0,m.Z)(T,1)):"week"===r?(0,s.Z)(t?(0,_.Z)(T,1):(0,E.Z)(T,1),{weekStartsOn:A}):(0,l.Z)(t?(0,i.Z)(T,1):(0,S.Z)(T,1))}}},3649:function(e,t,n){"use strict";n.d(t,{Dl:function(){return r},f3:function(){return s},sC:function(){return o}});const r={ft:{unit:"ft",system:"imperial",multiplier:1,defaultTarget:"m"},mi:{unit:"mi",system:"imperial",multiplier:5280,defaultTarget:"km"},m:{unit:"m",system:"metric",multiplier:1,defaultTarget:"ft"},km:{unit:"m",system:"metric",multiplier:1e3,defaultTarget:"mi"}},a={metric:{imperial:3.280839895,metric:1},imperial:{metric:1/3.280839895,imperial:1}},o=(e,t,n,o=3)=>{const s=r[t],i=r[n],l=e*s.multiplier*a[s.system][i.system]/i.multiplier;return null!==o?parseFloat(l.toFixed(o)):l},s=(e,t,n)=>{const a=n?r[e].defaultTarget:e;return n?o(t,e,a,2):t}},3768:function(e,t,n){"use strict";n.d(t,{BN:function(){return o},EX:function(){return a},eR:function(){return s}});n(7658);var r=n(3649);const a=(e,t,n)=>{const a={speed:{label:t("workouts.SPEED"),backgroundColor:["#FFFFFF"],borderColor:["#8884d8"],borderWidth:2,data:[],yAxisID:"ySpeed"},elevation:{label:t("workouts.ELEVATION"),backgroundColor:["#e5e5e5"],borderColor:["#cccccc"],borderWidth:1,fill:!0,data:[],yAxisID:"yElevation"}},o=[],s=[],i=[];return e.map((e=>{o.push(e.distance),s.push(e.duration),a.speed.data.push((0,r.f3)("km",e.speed,n)),a.elevation.data.push((0,r.f3)("m",e.elevation,n)),i.push({latitude:e.latitude,longitude:e.longitude})})),{distance_labels:o,duration_labels:s,datasets:a,coordinates:i}},o=e=>{const t=e.length;if(0===t)return{};const n={};return e.map((e=>{n[e.sport_id]||(n[e.sport_id]={count:0,percentage:0}),n[e.sport_id].count+=1,n[e.sport_id].percentage=n[e.sport_id].count/t})),n},s={order:"desc",order_by:"workout_date"}},2531:function(e,t,n){"use strict";n.d(t,{Z:function(){return d}});var r=n(6252);const a={class:"card"},o={class:"card-title"},s={class:"card-content"};function i(e,t){return(0,r.wg)(),(0,r.iD)("div",a,[(0,r._)("div",o,[(0,r.WI)(e.$slots,"title")]),(0,r._)("div",s,[(0,r.WI)(e.$slots,"content")])])}var l=n(3744);const c={},u=(0,l.Z)(c,[["render",i]]);var d=u},8626:function(e,t,n){"use strict";n.d(t,{Z:function(){return T}});var r=n(6252),a=n(3577),o=n(2262);const s={class:"table-selects"},i=["value"],l=["value"],c=["value"],u=["value"],d=["value"],m=["value"];var _=(0,r.aZ)({__name:"FilterSelects",props:{order_by:null,query:null,sort:null,message:null},emits:["updateSelect"],setup(e,{emit:t}){const n=e,{order_by:_,query:E,sort:S,message:T}=(0,o.BK)(n),p=[10,25,50,100];function A(e){t("updateSelect",e.target.id,e.target.value)}return(e,t)=>((0,r.wg)(),(0,r.iD)("div",s,[(0,r._)("label",null,[(0,r.Uk)((0,a.zw)(e.$t("common.SELECTS.ORDER_BY.LABEL"))+": ",1),(0,r._)("select",{name:"order_by",id:"order_by",value:(0,o.SU)(E).order_by,onChange:A},[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)((0,o.SU)(_),(t=>((0,r.wg)(),(0,r.iD)("option",{value:t,key:t},(0,a.zw)(e.$t(`${(0,o.SU)(T)}.${t.toUpperCase()}`)),9,l)))),128))],40,i)]),(0,r._)("label",null,[(0,r.Uk)((0,a.zw)(e.$t("common.SELECTS.ORDER.LABEL"))+": ",1),(0,r._)("select",{name:"order",id:"order",value:(0,o.SU)(E).order,onChange:A},[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)((0,o.SU)(S),(t=>((0,r.wg)(),(0,r.iD)("option",{value:t,key:t},(0,a.zw)(e.$t(`common.SELECTS.ORDER.${t.toUpperCase()}`)),9,u)))),128))],40,c)]),(0,r._)("label",null,[(0,r.Uk)((0,a.zw)(e.$t("common.SELECTS.PER_PAGE.LABEL"))+": ",1),(0,r._)("select",{name:"per_page",id:"per_page",value:(0,o.SU)(E).per_page,onChange:A},[((0,r.wg)(),(0,r.iD)(r.HY,null,(0,r.Ko)(p,(e=>(0,r._)("option",{value:e,key:e},(0,a.zw)(e),9,m))),64))],40,d)])]))}}),E=n(3744);const S=(0,E.Z)(_,[["__scopeId","data-v-72463173"]]);var T=S},7167:function(e,t,n){"use strict";n.d(t,{Z:function(){return d}});var r=n(6252);const a={xmlns:"http://www.w3.org/2000/svg",viewBox:"0 -51 512 512"},o=(0,r.uE)('',1),s=[o];function i(e,t,n,o,i,l){return(0,r.wg)(),(0,r.iD)("svg",a,s)}var l={name:"ErrorImg"},c=n(3744);const u=(0,c.Z)(l,[["render",i]]);var d=u},8273:function(e,t,n){"use strict";n.d(t,{Z:function(){return E}});var r=n(6252),a=n(2262),o=(n(7658),n(3577));const s={id:"error"},i={class:"error-content"};var l=(0,r.aZ)({__name:"Error",props:{title:null,message:null,buttonText:null,path:{default:"/"}},setup(e){const t=e,{buttonText:n,title:l,message:c,path:u}=(0,a.BK)(t);return(e,t)=>((0,r.wg)(),(0,r.iD)("div",s,[(0,r._)("div",i,[(0,r._)("h1",null,(0,o.zw)((0,a.SU)(l)),1),(0,r._)("p",null,(0,o.zw)((0,a.SU)(c)),1),(0,a.SU)(n)?((0,r.wg)(),(0,r.iD)("button",{key:0,onClick:t[0]||(t[0]=t=>e.$router.push((0,a.SU)(u))),class:"upper"},(0,o.zw)((0,a.SU)(n)),1)):(0,r.kq)("",!0)])]))}}),c=n(3744);const u=(0,c.Z)(l,[["__scopeId","data-v-b60bfa80"]]);var d=u,m=(0,r.aZ)({__name:"NotFound",props:{target:{default:"PAGE"}},setup(e){const t=e,{target:n}=(0,a.BK)(t),o=(0,a.iH)(),s=(0,a.iH)(!1);function i(){o.value=setTimeout((()=>{s.value=!0}),500)}return(0,r.bv)((()=>i())),(0,r.Ah)((()=>{o.value&&clearTimeout(o.value)})),(e,t)=>s.value?((0,r.wg)(),(0,r.j4)(d,{key:0,title:"404",message:e.$t(`error.NOT_FOUND.${(0,a.SU)(n)}`),"button-text":e.$t("common.HOME")},null,8,["message","button-text"])):(0,r.kq)("",!0)}});const _=m;var E=_},5020:function(e,t,n){"use strict";n.d(t,{Z:function(){return T}});var r=n(6252),a=n(3577),o=n(2262),s=n(2766);const i=e=>((0,r.dD)("data-v-3a9a4a65"),e=e(),(0,r.Cn)(),e),l={class:"pagination-center","aria-label":"navigation"},c={class:"pagination"},u=i((()=>(0,r._)("i",{class:"fa fa-chevron-left","aria-hidden":"true"},null,-1))),d={key:0},m=i((()=>(0,r._)("i",{class:"fa fa-chevron-right","aria-hidden":"true"},null,-1)));var _=(0,r.aZ)({__name:"Pagination",props:{pagination:null,path:null,query:null},setup(e){const t=e,{pagination:n,path:i,query:_}=(0,o.BK)(t);function E(e,t){const n=Object.assign({},_.value);return n.page=t?e+t:e,n}return(e,t)=>{const _=(0,r.up)("router-link");return(0,r.wg)(),(0,r.iD)("nav",l,[(0,r._)("ul",c,[(0,r._)("li",{class:(0,a.C_)(["page-prev",{disabled:!(0,o.SU)(n).has_prev}])},[(0,r.Wm)(_,{class:"page-link",to:{path:(0,o.SU)(i),query:E((0,o.SU)(n).page,-1)},disabled:!(0,o.SU)(n).has_prev},{default:(0,r.w5)((({navigate:t})=>[(0,r.WI)(e.$slots,"default",{onClick:e=>(0,o.SU)(n).has_next?t:null},(()=>[(0,r.Uk)((0,a.zw)(e.$t("api.PAGINATION.PREVIOUS"))+" ",1),u]))])),_:3},8,["to","disabled"])],2),((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)((0,o.SU)(s.lM)((0,o.SU)(n).pages,(0,o.SU)(n).page),(e=>((0,r.wg)(),(0,r.iD)("li",{key:e,class:(0,a.C_)(["page",{active:e===(0,o.SU)(n).page}])},["..."===e?((0,r.wg)(),(0,r.iD)("span",d," ... ")):((0,r.wg)(),(0,r.j4)(_,{key:1,class:"page-link",to:{path:(0,o.SU)(i),query:E(+e)}},{default:(0,r.w5)((()=>[(0,r.Uk)((0,a.zw)(e),1)])),_:2},1032,["to"]))],2)))),128)),(0,r._)("li",{class:(0,a.C_)(["page-next",{disabled:!(0,o.SU)(n).has_next}])},[(0,r.Wm)(_,{class:"page-link",to:{path:(0,o.SU)(i),query:E((0,o.SU)(n).page,1)},disabled:!(0,o.SU)(n).has_next},{default:(0,r.w5)((({navigate:t})=>[(0,r.WI)(e.$slots,"default",{onClick:e=>(0,o.SU)(n).has_next?t:null},(()=>[(0,r.Uk)((0,a.zw)(e.$t("api.PAGINATION.NEXT"))+" ",1),m]))])),_:3},8,["to","disabled"])],2)])])}}}),E=n(3744);const S=(0,E.Z)(_,[["__scopeId","data-v-3a9a4a65"]]);var T=S},8403:function(e,t,n){"use strict";n.d(t,{Z:function(){return v}});var r=n(6252),a=n(2262),o=n(9963),s=n(3577),i=n(4366),l=n(5801),c=n(9917);const u=async e=>{const t=await n.e(881).then(n.bind(n,410)),r=await n.e(881).then(n.bind(n,8288)),a=await n.e(881).then(n.bind(n,6947)),o=await n.e(881).then(n.bind(n,8056)),s={de:o,en:r,fr:a,nb:r,nl:r},l=s[e],c={graphs:t.default.adjacencyGraphs,dictionary:{...t.default.dictionary,...l.default.dictionary}};i.Mu.setOptions(c)},d=e=>{switch(e){case 2:return"AVERAGE";case 3:return"GOOD";case 4:return"STRONG";default:return"WEAK"}},m={class:"password-strength"},_=["value"],E={key:0,class:"password-strength-details"},S={class:"password-strength-value"},T={key:0,class:"info-box"},p={class:"password-feedback"};var A=(0,r.aZ)({__name:"PasswordStength",props:{password:null},setup(e){const t=e,{password:n}=(0,a.BK)(t),o=(0,c.o)(),A=(0,r.Fl)((()=>o.getters[l.SY.GETTERS.LANGUAGE])),O=(0,r.Fl)((()=>o.getters[l.YN.GETTERS.IS_SUCCESS])),I=(0,a.iH)(0),R=(0,a.iH)(""),U=(0,a.iH)([]),g=(0,a.iH)("0% 100%");function N(e){const t=(0,i.tu)(e);I.value=t.score,R.value=d(I.value),U.value=t.feedback.suggestions,g.value=100*I.value/4+"% 100%"}return(0,r.wF)((async()=>await u(A.value))),(0,r.YP)((()=>A.value),(async e=>{await u(e)})),(0,r.YP)((()=>n.value),(async e=>{O.value?R.value="":N(e)})),(e,t)=>((0,r.wg)(),(0,r.iD)("div",m,[(0,r._)("input",{class:(0,s.C_)(["password-slider",`strength-${I.value}`]),style:(0,s.j5)({backgroundSize:g.value}),type:"range",value:I.value,min:"0",max:"4",step:"1"},null,14,_),R.value?((0,r.wg)(),(0,r.iD)("div",E,[(0,r._)("span",S,(0,s.zw)(e.$t("user.PASSWORD_STRENGTH.LABEL"))+": "+(0,s.zw)(e.$t(`user.PASSWORD_STRENGTH.${R.value}`)),1),U.value.length>0?((0,r.wg)(),(0,r.iD)("div",T,[(0,r._)("ul",p,[((0,r.wg)(!0),(0,r.iD)(r.HY,null,(0,r.Ko)(U.value,(t=>((0,r.wg)(),(0,r.iD)("li",{key:t},(0,s.zw)(e.$t(`user.PASSWORD_STRENGTH.SUGGESTIONS.${t}`)),1)))),128))])])):(0,r.kq)("",!0)])):(0,r.kq)("",!0)]))}}),O=n(3744);const I=(0,O.Z)(A,[["__scopeId","data-v-74e71df5"]]);var R=I;const U=e=>((0,r.dD)("data-v-5a126514"),e=e(),(0,r.Cn)(),e),g={class:"password-input"},N=["id","disabled","placeholder","required","type"],h={key:0,class:"form-info"},z=U((()=>(0,r._)("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1)));var w=(0,r.aZ)({__name:"PasswordInput",props:{checkStrength:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},id:{default:"password"},password:{default:""},placeholder:null,required:{type:Boolean,default:!1}},emits:["updatePassword","passwordError"],setup(e,{emit:t}){const n=e,{checkStrength:i,disabled:l,id:c,password:u,placeholder:d,required:m}=(0,a.BK)(n),_=(0,a.iH)(!1),E=(0,a.iH)("");function S(){_.value=!_.value}function T(e){t("updatePassword",e.target.value)}function p(){t("passwordError")}return(0,r.YP)((()=>u.value),(e=>{""===e&&(E.value="")})),(e,t)=>((0,r.wg)(),(0,r.iD)("div",g,[(0,r.wy)((0,r._)("input",{id:(0,a.SU)(c),disabled:(0,a.SU)(l),placeholder:(0,a.SU)(d),required:(0,a.SU)(m),type:_.value?"text":"password","onUpdate:modelValue":t[0]||(t[0]=e=>E.value=e),minlength:"8",onInput:T,onInvalid:p},null,40,N),[[o.YZ,E.value]]),(0,r._)("div",{class:"show-password",onClick:S},[(0,r.Uk)((0,s.zw)(e.$t(`user.${_.value?"HIDE":"SHOW"}_PASSWORD`))+" ",1),(0,r._)("i",{class:(0,s.C_)(["fa","fa-eye"+(_.value?"-slash":"")]),"aria-hidden":"true"},null,2)]),(0,a.SU)(i)?((0,r.wg)(),(0,r.iD)("div",h,[z,(0,r.Uk)(" "+(0,s.zw)(e.$t("user.PASSWORD_INFO")),1)])):(0,r.kq)("",!0),(0,a.SU)(i)?((0,r.wg)(),(0,r.j4)(R,{key:1,password:E.value},null,8,["password"])):(0,r.kq)("",!0)]))}});const f=(0,O.Z)(w,[["__scopeId","data-v-5a126514"]]);var v=f},2056:function(e,t,n){"use strict";n.d(t,{Z:function(){return u}});var r=n(6252),a=n(3577),o=n(2262),s=n(2024);const i=(0,r._)("div",{class:"map-attribution"},[(0,r._)("span",{class:"map-attribution-text"},"©"),(0,r._)("a",{class:"map-attribution-text",href:"https://www.openstreetmap.org/copyright",target:"_blank",rel:"noopener noreferrer"}," OpenStreetMap ")],-1);var l=(0,r.aZ)({__name:"StaticMap",props:{workout:null,displayHover:{type:Boolean,default:!1}},setup(e){const t=e,{displayHover:n}=(0,o.BK)(t),l=`${(0,s.k)()}workouts/map/${t.workout.map}`;return(e,t)=>((0,r.wg)(),(0,r.iD)("div",{class:(0,a.C_)(["static-map",{"display-hover":(0,o.SU)(n)}])},[(0,o.SU)(n)?((0,r.wg)(),(0,r.iD)("img",{key:0,src:l,alt:""})):((0,r.wg)(),(0,r.iD)("div",{key:1,class:"bg-map-image",style:(0,a.j5)({backgroundImage:`url(${l})`})},null,4)),i],2))}});const c=l;var u=c},436:function(e,t,n){"use strict";n.d(t,{Z:function(){return y}});var r=n(6252),a=n(3577);const o={class:"start-chart"},s={key:0},i={key:1},l={class:"chart-radio"},c=["checked"],u=["checked"],d=["checked"],m={key:0},_=["checked"],E={key:1},S=["checked"],T={key:2},p=["checked"];function A(e,t,n,A,O,I){const R=(0,r.up)("Chart");return(0,r.wg)(),(0,r.iD)("div",o,[e.hideChartIfNoData&&e.emptyStats?((0,r.wg)(),(0,r.iD)("div",s,(0,a.zw)(e.$t("workouts.NO_WORKOUTS")),1)):((0,r.wg)(),(0,r.iD)("div",i,[(0,r._)("div",l,[(0,r._)("label",null,[(0,r._)("input",{type:"radio",name:"total_distance",checked:"total_distance"===e.displayedData,onClick:t[0]||(t[0]=(...t)=>e.updateDisplayData&&e.updateDisplayData(...t))},null,8,c),(0,r.Uk)(" "+(0,a.zw)(e.$t("workouts.DISTANCE")),1)]),(0,r._)("label",null,[(0,r._)("input",{type:"radio",name:"total_duration",checked:"total_duration"===e.displayedData,onClick:t[1]||(t[1]=(...t)=>e.updateDisplayData&&e.updateDisplayData(...t))},null,8,u),(0,r.Uk)(" "+(0,a.zw)(e.$t("workouts.DURATION")),1)]),(0,r._)("label",null,[(0,r._)("input",{type:"radio",name:"nb_workouts",checked:"nb_workouts"===e.displayedData,onClick:t[2]||(t[2]=(...t)=>e.updateDisplayData&&e.updateDisplayData(...t))},null,8,d),(0,r.Uk)(" "+(0,a.zw)(e.$t("workouts.WORKOUT",2)),1)]),e.fullStats?((0,r.wg)(),(0,r.iD)("label",m,[(0,r._)("input",{type:"radio",name:"average_speed",checked:"average_speed"===e.displayedData,onClick:t[3]||(t[3]=(...t)=>e.updateDisplayData&&e.updateDisplayData(...t))},null,8,_),(0,r.Uk)(" "+(0,a.zw)(e.$t("workouts.AVERAGE_SPEED")),1)])):(0,r.kq)("",!0),e.fullStats?((0,r.wg)(),(0,r.iD)("label",E,[(0,r._)("input",{type:"radio",name:"total_ascent",checked:"total_ascent"===e.displayedData,onClick:t[4]||(t[4]=(...t)=>e.updateDisplayData&&e.updateDisplayData(...t))},null,8,S),(0,r.Uk)(" "+(0,a.zw)(e.$t("workouts.ASCENT")),1)])):(0,r.kq)("",!0),e.fullStats?((0,r.wg)(),(0,r.iD)("label",T,[(0,r._)("input",{type:"radio",name:"total_descent",checked:"total_descent"===e.displayedData,onClick:t[5]||(t[5]=(...t)=>e.updateDisplayData&&e.updateDisplayData(...t))},null,8,p),(0,r.Uk)(" "+(0,a.zw)(e.$t("workouts.DESCENT")),1)])):(0,r.kq)("",!0)]),e.labels.length>0?((0,r.wg)(),(0,r.j4)(R,{key:0,datasets:e.datasets,labels:e.labels,displayedData:e.displayedData,displayedSportIds:e.displayedSportIds,fullStats:e.fullStats,useImperialUnits:e.user.imperial_units},null,8,["datasets","labels","displayedData","displayedSportIds","fullStats","useImperialUnits"])):(0,r.kq)("",!0)]))])}var O=n(4850),I=n(2262);const R={class:"chart"};function U(e,t,n,a,o,s){const i=(0,r.up)("BarChart");return(0,r.wg)(),(0,r.iD)("div",R,[(0,r.Wm)(i,(0,r.dG)(e.barChartProps,{class:"bar-chart"}),null,16)])}var g=n(6518),N=n(9150);const h=(e,t=!1)=>{let n="0";t&&(n=String(Math.floor(e/86400)),e%=86400);const r=String(Math.floor(e/3600)).padStart(2,"0");e%=3600;const a=String(Math.floor(e/60)).padStart(2,"0"),o=String(e%60).padStart(2,"0");return t?`${"0"===n?"":`${n}d `}${"00"===r?"":`${r}h `}${a}m ${o}s`:`${"00"===r?"":`${r}:`}${a}:${o}`};var z=n(3649);const w=(e,t,n,r=!0,a="km")=>{const o=n?z.Dl[a].defaultTarget:a;switch(e){case"average_speed":return`${t.toFixed(2)} ${o}/h`;case"total_duration":return h(t,r);case"total_distance":case"total_ascent":case"total_descent":return`${t.toFixed(2)} ${o}`;default:return t.toString()}};var f=(0,r.aZ)({name:"Chart",components:{BarChart:g.vz},props:{datasets:{type:Object,required:!0},labels:{type:Object,required:!0},displayedData:{type:String,required:!0},displayedSportIds:{type:Array,required:!0},fullStats:{type:Boolean,required:!0},useImperialUnits:{type:Boolean,required:!0}},setup(e){const{t:t}=(0,N.QT)();function n(e){return isNaN(e)?0:+e}function a(e,t){return n(e)+n(t)}function o(e){return["total_ascent","total_descent"].includes(e)?"m":"km"}const s=(0,r.Fl)((()=>({labels:e.labels,datasets:JSON.parse(JSON.stringify(e.datasets))}))),i=(0,r.Fl)((()=>({responsive:!0,maintainAspectRatio:!0,animation:!1,layout:{padding:{top:e.fullStats?40:22}},scales:{x:{stacked:!0,grid:{drawOnChartArea:!1}},y:{stacked:"average_speed"!==e.displayedData,grid:{drawOnChartArea:!1},ticks:{maxTicksLimit:6,callback:function(t){return w(e.displayedData,+t,e.useImperialUnits,!1,o(e.displayedData))}},afterFit:function(t){t.width=e.fullStats?90:60}}},plugins:{datalabels:{anchor:"end",align:"end",color:function(t){return"average_speed"===e.displayedData&&t.dataset.backgroundColor?t.dataset.backgroundColor[0]:"#666666"},rotation:function(t){return e.fullStats&&t.chart.chartArea.width<580?310:0},display:function(t){return!(e.fullStats&&t.chart.chartArea.width<300)&&("average_speed"!==e.displayedData||1==e.displayedSportIds.length&&"auto")},formatter:function(t,n){if("average_speed"===e.displayedData)return w(e.displayedData,t,e.useImperialUnits,!1);{const t=n.chart.data.datasets.map((e=>e.data[n.dataIndex])).reduce(((e,t)=>a(e,t)),0);return n.datasetIndex===e.displayedSportIds.length-1&&t>0?w(e.displayedData,t,e.useImperialUnits,!1,o(e.displayedData)):null}}},legend:{display:!1},tooltip:{interaction:{intersect:!0,mode:"index",position:"average_speed"===e.displayedData?"nearest":"average"},filter:function(e){return"0"!==e.formattedValue},callbacks:{label:function(n){let r=t(`sports.${n.dataset.label}.LABEL`)||"";return r&&(r+=": "),null!==n.parsed.y&&(r+=w(e.displayedData,n.parsed.y,e.useImperialUnits,!0,o(e.displayedData))),r},footer:function(n){if("average_speed"===e.displayedData)return"";let r=0;return n.map((e=>{r+=e.parsed.y})),`${t("common.TOTAL")}: `+w(e.displayedData,r,e.useImperialUnits,!0,o(e.displayedData))}}}}}))),{barChartProps:l}=(0,g.xZ)({chartData:s,options:i});return{barChartProps:l}}}),v=n(3744);const C=(0,v.Z)(f,[["render",U]]);var D=C,k=n(5801),P=n(9917),L=n(9318),M=(0,r.aZ)({name:"UserMonthStats",components:{Chart:D},props:{sports:{type:Object,required:!0},user:{type:Object,required:!0},chartParams:{type:Object,required:!0},displayedSportIds:{type:Array,default:()=>[]},fullStats:{type:Boolean,default:!1},hideChartIfNoData:{type:Boolean,default:!1}},setup(e){const t=(0,P.o)(),n=(0,I.iH)("total_distance"),a=(0,r.Fl)((()=>t.getters[k.gu.GETTERS.USER_STATS])),o=(0,r.Fl)((()=>(0,L.v1)(e.chartParams,e.user.weekm,e.sports,e.displayedSportIds,a.value,e.user.imperial_units,e.user.date_format)));function s(n){t.dispatch(k.gu.ACTIONS.GET_USER_STATS,{username:e.user.username,filterType:"by_time",params:n})}function i(e){n.value=e.target.name}function l(e,t){return{from:(0,O.Z)(e.start,"yyyy-MM-dd"),to:(0,O.Z)(e.end,"yyyy-MM-dd"),time:"week"===e.duration?"week"+(t.weekm?"m":""):e.duration}}return(0,r.wF)((()=>s(l(e.chartParams,e.user)))),(0,r.YP)((()=>e.chartParams),(async t=>{s(l(t,e.user))})),{datasets:(0,r.Fl)((()=>o.value.datasets[n.value])),labels:(0,r.Fl)((()=>o.value.labels)),emptyStats:(0,r.Fl)((()=>0===Object.keys(a.value).length)),displayedData:n,updateDisplayData:i}}});const b=(0,v.Z)(M,[["render",A],["__scopeId","data-v-d5e9b348"]]);var y=b},2179:function(e,t,n){"use strict";n.d(t,{Z:function(){return N}});var r=n(6252),a=n(2262),o=n(3577),s=n(6595),i=n(5801),l=n(9917);const c={class:"box user-header"},u={class:"user-details"},d={class:"user-name"},m={class:"user-stats"},_={class:"user-stat"},E={class:"stat-number"},S={class:"stat-label"},T={class:"user-stat"},p={class:"stat-label"},A={class:"user-stat hide-small"},O={class:"stat-number"},I={class:"stat-label"};var R=(0,r.aZ)({__name:"UserHeader",props:{user:null},setup(e){const t=e,{user:n}=(0,a.BK)(t),R=(0,l.o)(),U=(0,r.Fl)((()=>R.getters[i.YN.GETTERS.AUTH_USER_PROFILE]));return(e,t)=>{const i=(0,r.up)("Distance");return(0,r.wg)(),(0,r.iD)("div",c,[(0,r.Wm)(s.Z,{user:(0,a.SU)(n)},null,8,["user"]),(0,r._)("div",u,[(0,r._)("div",d,(0,o.zw)((0,a.SU)(n).username),1),(0,r._)("div",m,[(0,r._)("div",_,[(0,r._)("span",E,(0,o.zw)((0,a.SU)(n).nb_workouts),1),(0,r._)("span",S,(0,o.zw)(e.$t("workouts.WORKOUT",(0,a.SU)(n).nb_workouts)),1)]),(0,r._)("div",T,[(0,r.Wm)(i,{distance:(0,a.SU)(n).total_distance,unitFrom:"km",digits:0,displayUnit:!1,useImperialUnits:(0,a.SU)(U).imperial_units},null,8,["distance","useImperialUnits"]),(0,r._)("span",p,(0,o.zw)((0,a.SU)(U).imperial_units?"miles":"km"),1)]),(0,r._)("div",A,[(0,r._)("span",O,(0,o.zw)((0,a.SU)(n).nb_sports),1),(0,r._)("span",I,(0,o.zw)(e.$t("workouts.SPORT",(0,a.SU)(n).nb_sports)),1)])])])])}}}),U=n(3744);const g=(0,U.Z)(R,[["__scopeId","data-v-20291951"]]);var N=g},1585:function(e,t,n){"use strict";n.d(t,{Z:function(){return f}});n(7658);var r=n(6252),a=n(2262),o=n(3577),s=n(9963),i=n(4850),l=n(5801),c=n(9917),u=n(6558),d=n(6287);const m={id:"user-infos",class:"description-list"},_={key:1,class:"info-box success-message"},E={key:4,class:"email-form form-box"},S={class:"form-items",for:"email"},T={class:"form-items",for:"email"},p={class:"form-buttons"},A={class:"confirm",type:"submit"},O=["onClick"],I={key:5},R={class:"user-bio"},U={key:0,class:"profile-buttons"},g=["onClick"],N={key:1,class:"profile-buttons"};var h=(0,r.aZ)({__name:"UserInfos",props:{user:null,fromAdmin:{type:Boolean,default:!1}},setup(e){const t=e,n=(0,c.o)(),{user:h,fromAdmin:z}=(0,a.BK)(t),w=(0,r.Fl)((()=>n.getters[l.SY.GETTERS.LANGUAGE])),f=(0,r.Fl)((()=>n.getters[l.YN.GETTERS.AUTH_USER_PROFILE])),v=(0,r.Fl)((()=>t.user.created_at?(0,u.p6)(t.user.created_at,f.value.timezone,f.value.date_format):"")),C=(0,r.Fl)((()=>t.user.birth_date?(0,i.Z)(new Date(t.user.birth_date),`${(0,u.mh)(f.value.date_format,w.value)}`,{locale:d.v1[w.value]}):"")),D=(0,r.Fl)((()=>n.getters[l.RT.GETTERS.USERS_IS_SUCCESS])),k=(0,r.Fl)((()=>n.getters[l.SY.GETTERS.ERROR_MESSAGES])),P=(0,r.Fl)((()=>n.getters[l.SY.GETTERS.APP_CONFIG])),L=(0,a.iH)(""),M=(0,a.iH)(!1),b=(0,a.iH)(!1),y=(0,a.iH)(""),G=(0,a.iH)("");function F(e){L.value=e,""!==e&&n.commit(l.RT.MUTATIONS.UPDATE_IS_SUCCESS,!1)}function W(e){n.dispatch(l.RT.ACTIONS.DELETE_USER_ACCOUNT,{username:e})}function K(e){G.value="password-reset",n.dispatch(l.RT.ACTIONS.UPDATE_USER,{username:e,resetPassword:!0})}function Y(e){n.dispatch(l.RT.ACTIONS.UPDATE_USER,{username:e,activate:!0})}function x(){Z(),y.value=h.value.email_to_confirm?h.value.email_to_confirm:"",b.value=!0,G.value="email-update"}function B(){y.value="",b.value=!1}function $(e){n.dispatch(l.RT.ACTIONS.UPDATE_USER,{username:e,new_email:y.value})}function Z(){n.commit(l.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),n.commit(l.RT.MUTATIONS.UPDATE_IS_SUCCESS,!1),G.value=""}return(0,r.Ah)((()=>Z())),(0,r.YP)((()=>D.value),(e=>{e&&(F(""),B())})),(e,t)=>{const n=(0,r.up)("Modal"),i=(0,r.up)("AlertMessage"),l=(0,r.up)("ErrorMessage");return(0,r.wg)(),(0,r.iD)("div",m,[L.value?((0,r.wg)(),(0,r.j4)(n,{key:0,title:e.$t("common.CONFIRMATION"),message:"delete"===L.value?"admin.CONFIRM_USER_ACCOUNT_DELETION":"admin.CONFIRM_USER_PASSWORD_RESET",strongMessage:(0,a.SU)(h).username,onConfirmAction:t[0]||(t[0]=e=>"delete"===L.value?W((0,a.SU)(h).username):K((0,a.SU)(h).username)),onCancelAction:t[1]||(t[1]=e=>F(""))},null,8,["title","message","strongMessage"])):(0,r.kq)("",!0),(0,a.SU)(D)?((0,r.wg)(),(0,r.iD)("div",_,(0,o.zw)(e.$t(`admin.${"password-reset"===G.value?"PASSWORD_RESET":"USER_EMAIL_UPDATE"}_SUCCESSFUL`)),1)):(0,r.kq)("",!0),(0,a.SU)(h).is_active?(0,r.kq)("",!0):((0,r.wg)(),(0,r.j4)(i,{key:2,message:"user.THIS_USER_ACCOUNT_IS_INACTIVE"})),(0,a.SU)(k)?((0,r.wg)(),(0,r.j4)(l,{key:3,message:(0,a.SU)(k)},null,8,["message"])):(0,r.kq)("",!0),b.value?((0,r.wg)(),(0,r.iD)("div",E,[(0,r._)("form",{class:(0,o.C_)({errors:M.value}),onSubmit:t[4]||(t[4]=(0,s.iM)((e=>$((0,a.SU)(h).username)),["prevent"]))},[(0,r._)("label",S,[(0,r.Uk)((0,o.zw)(e.$t("admin.CURRENT_EMAIL"))+" ",1),(0,r.wy)((0,r._)("input",{id:"email",type:"email","onUpdate:modelValue":t[2]||(t[2]=e=>(0,a.SU)(h).email=e),disabled:""},null,512),[[s.nr,(0,a.SU)(h).email]])]),(0,r._)("label",T,[(0,r.Uk)((0,o.zw)(e.$t("admin.NEW_EMAIL"))+"* ",1),(0,r.wy)((0,r._)("input",{id:"new-email",type:"email",required:"","onUpdate:modelValue":t[3]||(t[3]=e=>y.value=e)},null,512),[[s.nr,y.value]])]),(0,r._)("div",p,[(0,r._)("button",A,(0,o.zw)(e.$t("buttons.SUBMIT")),1),(0,r._)("button",{class:"cancel",onClick:(0,s.iM)(B,["prevent"])},(0,o.zw)(e.$t("buttons.CANCEL")),9,O)])],34)])):((0,r.wg)(),(0,r.iD)("div",I,[(0,r._)("dl",null,[(0,r._)("dt",null,(0,o.zw)(e.$t("user.PROFILE.REGISTRATION_DATE"))+":",1),(0,r._)("dd",null,(0,o.zw)((0,a.SU)(v)),1),(0,r._)("dt",null,(0,o.zw)(e.$t("user.PROFILE.FIRST_NAME"))+":",1),(0,r._)("dd",null,(0,o.zw)((0,a.SU)(h).first_name),1),(0,r._)("dt",null,(0,o.zw)(e.$t("user.PROFILE.LAST_NAME"))+":",1),(0,r._)("dd",null,(0,o.zw)((0,a.SU)(h).last_name),1),(0,r._)("dt",null,(0,o.zw)(e.$t("user.PROFILE.BIRTH_DATE"))+":",1),(0,r._)("dd",null,(0,o.zw)((0,a.SU)(C)),1),(0,r._)("dt",null,(0,o.zw)(e.$t("user.PROFILE.LOCATION"))+":",1),(0,r._)("dd",null,(0,o.zw)((0,a.SU)(h).location),1),(0,r._)("dt",null,(0,o.zw)(e.$t("user.PROFILE.BIO"))+":",1),(0,r._)("dd",R,(0,o.zw)((0,a.SU)(h).bio),1)]),(0,a.SU)(z)?((0,r.wg)(),(0,r.iD)("div",U,[(0,a.SU)(f).username!==(0,a.SU)(h).username?((0,r.wg)(),(0,r.iD)("button",{key:0,class:"danger",onClick:t[5]||(t[5]=(0,s.iM)((e=>F("delete")),["prevent"]))},(0,o.zw)(e.$t("admin.DELETE_USER")),1)):(0,r.kq)("",!0),(0,a.SU)(h).is_active?(0,r.kq)("",!0):((0,r.wg)(),(0,r.iD)("button",{key:1,onClick:t[6]||(t[6]=(0,s.iM)((e=>Y((0,a.SU)(h).username)),["prevent"]))},(0,o.zw)(e.$t("admin.ACTIVATE_USER_ACCOUNT")),1)),(0,a.SU)(f).username!==(0,a.SU)(h).username?((0,r.wg)(),(0,r.iD)("button",{key:2,onClick:(0,s.iM)(x,["prevent"])},(0,o.zw)(e.$t("admin.UPDATE_USER_EMAIL")),9,g)):(0,r.kq)("",!0),(0,a.SU)(f).username!==(0,a.SU)(h).username&&(0,a.SU)(P).is_email_sending_enabled?((0,r.wg)(),(0,r.iD)("button",{key:3,onClick:t[7]||(t[7]=(0,s.iM)((e=>F("reset")),["prevent"]))},(0,o.zw)(e.$t("admin.RESET_USER_PASSWORD")),1)):(0,r.kq)("",!0),(0,r._)("button",{onClick:t[8]||(t[8]=t=>e.$router.go(-1))},(0,o.zw)(e.$t("buttons.BACK")),1)])):((0,r.wg)(),(0,r.iD)("div",N,[(0,r._)("button",{onClick:t[9]||(t[9]=t=>e.$router.push("/profile/edit"))},(0,o.zw)(e.$t("user.PROFILE.EDIT")),1),(0,r._)("button",{onClick:t[10]||(t[10]=t=>e.$router.push("/"))},(0,o.zw)(e.$t("common.HOME")),1)]))]))])}}}),z=n(3744);const w=(0,z.Z)(h,[["__scopeId","data-v-217519af"]]);var f=w},2411:function(e,t,n){"use strict";n.d(t,{Z:function(){return C}});var r=n(6252),a=n(3577),o=n(2262),s=n(9963),i=n(2201),l=n(8403),c=n(5801),u=n(9917);const d=e=>((0,r.dD)("data-v-b3c885de"),e=e(),(0,r.Cn)(),e),m={id:"user-form"},_={key:2,class:"info-box success-message"},E={class:"form-items"},S=["disabled","placeholder"],T={key:1,class:"form-info"},p=d((()=>(0,r._)("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1))),A=["disabled","placeholder"],O={key:3,class:"form-info"},I=d((()=>(0,r._)("i",{class:"fa fa-info-circle","aria-hidden":"true"},null,-1))),R=["disabled"],U={key:3},g={key:0},N={key:4},h={class:"account"},z={key:5};var w=(0,r.aZ)({__name:"UserAuthForm",props:{action:null,token:{default:""}},setup(e){const t=e,n=(0,i.yj)(),d=(0,u.o)(),{action:w}=(0,o.BK)(t),f=(0,o.qj)({username:"",email:"",password:""}),v=(0,r.Fl)((()=>G(t.action))),C=(0,r.Fl)((()=>d.getters[c.SY.GETTERS.ERROR_MESSAGES])),D=(0,r.Fl)((()=>d.getters[c.YN.GETTERS.IS_REGISTRATION_SUCCESS])),k=(0,r.Fl)((()=>d.getters[c.YN.GETTERS.IS_SUCCESS])),P=(0,r.Fl)((()=>d.getters[c.SY.GETTERS.APP_CONFIG])),L=(0,r.Fl)((()=>d.getters[c.SY.GETTERS.LANGUAGE])),M=(0,r.Fl)((()=>"register"===t.action&&!P.value.is_registration_enabled)),b=(0,r.Fl)((()=>["reset-request","account-confirmation-resend"].includes(t.action)&&!P.value.is_email_sending_enabled)),y=(0,o.iH)(!1);function G(e){switch(e){case"reset-request":case"reset":return"buttons.SUBMIT";default:return`buttons.${t.action.toUpperCase()}`}}function F(){y.value=!0}function W(e){f.password=e}function K(e){switch(e){case"reset":return t.token?d.dispatch(c.YN.ACTIONS.RESET_USER_PASSWORD,{password:f.password,token:t.token}):d.commit(c.SY.MUTATIONS.SET_ERROR_MESSAGES,"user.INVALID_TOKEN");case"reset-request":return d.dispatch(c.YN.ACTIONS.SEND_PASSWORD_RESET_REQUEST,{email:f.email});case"account-confirmation-resend":return d.dispatch(c.YN.ACTIONS.RESEND_ACCOUNT_CONFIRMATION_EMAIL,{email:f.email});default:f["language"]=L.value,d.dispatch(c.YN.ACTIONS.LOGIN_OR_REGISTER,{actionType:e,formData:f,redirectUrl:n.query.from})}}function Y(){f.username="",f.email="",f.password=""}return(0,r.Ah)((()=>d.commit(c.SY.MUTATIONS.EMPTY_ERROR_MESSAGES))),(0,r.YP)((()=>n.path),(async()=>{d.commit(c.SY.MUTATIONS.EMPTY_ERROR_MESSAGES),d.commit(c.YN.MUTATIONS.UPDATE_IS_SUCCESS,!1),d.commit(c.YN.MUTATIONS.UPDATE_IS_REGISTRATION_SUCCESS,!1),y.value=!1,Y()})),(e,t)=>{const n=(0,r.up)("AlertMessage"),i=(0,r.up)("router-link"),c=(0,r.up)("ErrorMessage");return(0,r.wg)(),(0,r.iD)("div",{id:"user-auth-form",class:(0,a.C_)(`${["reset","reset-request"].includes((0,o.SU)(w))?(0,o.SU)(w):"user-form"}`)},[(0,r._)("div",m,[(0,r._)("div",{class:(0,a.C_)(["form-box",{disabled:(0,o.SU)(M)}])},[(0,o.SU)(M)?((0,r.wg)(),(0,r.j4)(n,{key:0,message:"user.REGISTER_DISABLED"})):(0,r.kq)("",!0),(0,o.SU)(b)?((0,r.wg)(),(0,r.j4)(n,{key:1,message:"admin.EMAIL_SENDING_DISABLED"})):(0,r.kq)("",!0),(0,o.SU)(k)||(0,o.SU)(D)?((0,r.wg)(),(0,r.iD)("div",_,(0,a.zw)(e.$t("user.PROFILE.SUCCESSFUL_"+((0,o.SU)(D)?"REGISTRATION"+((0,o.SU)(P).is_email_sending_enabled?"_WITH_EMAIL":""):"UPDATE"))),1)):(0,r.kq)("",!0),(0,r._)("form",{class:(0,a.C_)({errors:y.value}),onSubmit:t[2]||(t[2]=(0,s.iM)((e=>K((0,o.SU)(w))),["prevent"]))},[(0,r._)("div",E,["register"===(0,o.SU)(w)?(0,r.wy)(((0,r.wg)(),(0,r.iD)("input",{key:0,id:"username",disabled:(0,o.SU)(M),required:"",pattern:"[a-zA-Z0-9_]+",minlength:"3",maxlength:"30",onInvalid:F,"onUpdate:modelValue":t[0]||(t[0]=e=>f.username=e),placeholder:e.$t("user.USERNAME")},null,40,S)),[[s.nr,f.username]]):(0,r.kq)("",!0),"register"===(0,o.SU)(w)?((0,r.wg)(),(0,r.iD)("div",T,[p,(0,r.Uk)(" "+(0,a.zw)(e.$t("user.USERNAME_INFO")),1)])):(0,r.kq)("",!0),"reset"!==(0,o.SU)(w)?(0,r.wy)(((0,r.wg)(),(0,r.iD)("input",{key:2,id:"email",disabled:(0,o.SU)(M)||(0,o.SU)(b),required:"",onInvalid:F,type:"email","onUpdate:modelValue":t[1]||(t[1]=e=>f.email=e),placeholder:e.$t("user.EMAIL")},null,40,A)),[[s.nr,f.email]]):(0,r.kq)("",!0),["reset-request","register","account-confirmation-resend"].includes((0,o.SU)(w))?((0,r.wg)(),(0,r.iD)("div",O,[I,(0,r.Uk)(" "+(0,a.zw)(e.$t("user.EMAIL_INFO")),1)])):(0,r.kq)("",!0),["account-confirmation-resend","reset-request"].includes((0,o.SU)(w))?(0,r.kq)("",!0):((0,r.wg)(),(0,r.j4)(l.Z,{key:4,disabled:(0,o.SU)(M),required:!0,placeholder:"reset"===(0,o.SU)(w)?e.$t("user.ENTER_PASSWORD"):e.$t("user.PASSWORD"),password:f.password,checkStrength:["reset","register"].includes((0,o.SU)(w)),onUpdatePassword:W,onPasswordError:F},null,8,["disabled","placeholder","password","checkStrength"]))]),(0,r._)("button",{type:"submit",disabled:(0,o.SU)(M)||(0,o.SU)(b)},(0,a.zw)(e.$t((0,o.SU)(v))),9,R)],34),"login"===(0,o.SU)(w)?((0,r.wg)(),(0,r.iD)("div",U,[(0,r.Wm)(i,{class:"links",to:"/register"},{default:(0,r.w5)((()=>[(0,r.Uk)((0,a.zw)(e.$t("user.REGISTER")),1)])),_:1}),(0,o.SU)(P).is_email_sending_enabled?((0,r.wg)(),(0,r.iD)("span",g,"-")):(0,r.kq)("",!0),(0,o.SU)(P).is_email_sending_enabled?((0,r.wg)(),(0,r.j4)(i,{key:1,class:"links",to:"/password-reset/request"},{default:(0,r.w5)((()=>[(0,r.Uk)((0,a.zw)(e.$t("user.PASSWORD_FORGOTTEN")),1)])),_:1})):(0,r.kq)("",!0)])):(0,r.kq)("",!0),"register"===(0,o.SU)(w)?((0,r.wg)(),(0,r.iD)("div",N,[(0,r._)("span",h,(0,a.zw)(e.$t("user.ALREADY_HAVE_ACCOUNT")),1),(0,r.Wm)(i,{class:"links",to:"/login"},{default:(0,r.w5)((()=>[(0,r.Uk)((0,a.zw)(e.$t("user.LOGIN")),1)])),_:1})])):(0,r.kq)("",!0),["login","register"].includes((0,o.SU)(w))&&(0,o.SU)(P).is_email_sending_enabled?((0,r.wg)(),(0,r.iD)("div",z,[(0,r.Wm)(i,{class:"links",to:"/account-confirmation/resend"},{default:(0,r.w5)((()=>[(0,r.Uk)((0,a.zw)(e.$t("user.ACCOUNT_CONFIRMATION_NOT_RECEIVED")),1)])),_:1})])):(0,r.kq)("",!0),(0,o.SU)(C)?((0,r.wg)(),(0,r.j4)(c,{key:6,message:(0,o.SU)(C)},null,8,["message"])):(0,r.kq)("",!0)],2)])],2)}}}),f=n(3744);const v=(0,f.Z)(w,[["__scopeId","data-v-b3c885de"]]);var C=v},6595:function(e,t,n){"use strict";n.d(t,{Z:function(){return _}});var r=n(6252),a=n(2262),o=n(2024);const s={class:"user-picture"},i=["alt","src"],l={key:1,class:"no-picture"},c=(0,r._)("i",{class:"fa fa-user-circle-o","aria-hidden":"true"},null,-1),u=[c];var d=(0,r.aZ)({__name:"UserPicture",props:{user:null},setup(e){const t=e,n=(0,r.Fl)((()=>t.user.picture?`${(0,o.k)()}users/${t.user.username}/picture?${Date.now()}`:""));return(e,t)=>((0,r.wg)(),(0,r.iD)("div",s,[""!==(0,a.SU)(n)?((0,r.wg)(),(0,r.iD)("img",{key:0,class:"profile-user-img",alt:e.$t("user.USER_PICTURE"),src:(0,a.SU)(n)},null,8,i)):((0,r.wg)(),(0,r.iD)("div",l,u))]))}});const m=d;var _=m},5630:function(e,t,n){"use strict";n.d(t,{Z:function(){return u}});var r=n(6252),a=n(3577);const o={class:"no-workouts box"};function s(e,t){const n=(0,r.up)("router-link");return(0,r.wg)(),(0,r.iD)("div",o,[(0,r._)("div",null,[(0,r.Uk)((0,a.zw)(e.$t("workouts.NO_WORKOUTS"))+" ",1),(0,r.Wm)(n,{to:"/workouts/add"},{default:(0,r.w5)((()=>[(0,r.Uk)((0,a.zw)(e.$t("workouts.UPLOAD_FIRST_WORKOUT")),1)])),_:1})])])}var i=n(3744);const l={},c=(0,i.Z)(l,[["render",s],["__scopeId","data-v-4b4d15fb"]]);var u=c},4612:function(e,t,n){var r={"./de/de.ts":9923,"./en/en.ts":8757,"./fr/fr.ts":6625,"./nb/nb.ts":8891,"./nl/nl.ts":701};function a(e){var t=o(e);return n(t)}function o(e){if(!n.o(r,e)){var t=new Error("Cannot find module '"+e+"'");throw t.code="MODULE_NOT_FOUND",t}return r[e]}a.keys=function(){return Object.keys(r)},a.resolve=o,e.exports=a,a.id=4612}},t={};function n(r){var a=t[r];if(void 0!==a)return a.exports;var o=t[r]={exports:{}};return e[r].call(o.exports,o,o.exports,n),o.exports}n.m=e,function(){var e=[];n.O=function(t,r,a,o){if(!r){var s=1/0;for(u=0;u=o)&&Object.keys(n.O).every((function(e){return n.O[e](r[l])}))?r.splice(l--,1):(i=!1,o0&&e[u-1][2]>o;u--)e[u]=e[u-1];e[u]=[r,a,o]}}(),function(){n.n=function(e){var t=e&&e.__esModule?function(){return e["default"]}:function(){return e};return n.d(t,{a:t}),t}}(),function(){var e,t=Object.getPrototypeOf?function(e){return Object.getPrototypeOf(e)}:function(e){return e.__proto__};n.t=function(r,a){if(1&a&&(r=this(r)),8&a)return r;if("object"===typeof r&&r){if(4&a&&r.__esModule)return r;if(16&a&&"function"===typeof r.then)return r}var o=Object.create(null);n.r(o);var s={};e=e||[null,t({}),t([]),t(t)];for(var i=2&a&&r;"object"==typeof i&&!~e.indexOf(i);i=t(i))Object.getOwnPropertyNames(i).forEach((function(e){s[e]=function(){return r[e]}}));return s["default"]=function(){return r},n.d(o,s),o}}(),function(){n.d=function(e,t){for(var r in t)n.o(t,r)&&!n.o(e,r)&&Object.defineProperty(e,r,{enumerable:!0,get:t[r]})}}(),function(){n.f={},n.e=function(e){return Promise.all(Object.keys(n.f).reduce((function(t,r){return n.f[r](e,t),t}),[]))}}(),function(){n.u=function(e){return"static/js/"+({24:"reset",193:"statistics",328:"admin",401:"workouts",845:"profile",881:"password"}[e]||e)+"."+{24:"49874687",93:"611a4415",193:"5231fa2f",243:"d3fff3a7",328:"c4231dfb",401:"6988dc66",431:"52f71cad",633:"5eb61510",845:"984aa6f4",858:"ec3b00a9",881:"cfeb5ed6"}[e]+".js"}}(),function(){n.miniCssF=function(e){return"static/css/"+{24:"reset",193:"statistics",328:"admin",401:"workouts",845:"profile"}[e]+"."+{24:"e2527ec6",193:"40e24e75",328:"73df498d",401:"9970f29e",845:"9f83730d"}[e]+".css"}}(),function(){n.g=function(){if("object"===typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"===typeof window)return window}}()}(),function(){n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)}}(),function(){var e={},t="fittrackee_client:";n.l=function(r,a,o,s){if(e[r])e[r].push(a);else{var i,l;if(void 0!==o)for(var c=document.getElementsByTagName("script"),u=0;u {\n const controller = new AbortController()\n config.signal = controller.signal\n const requestKey = removeRequestIfPending(config)\n pendingRequests.set(requestKey, controller)\n\n const authToken = store.getters[AUTH_USER_STORE.GETTERS.AUTH_TOKEN]\n if (authToken) {\n const auth = `Bearer ${authToken}`\n if (config.headers && config.headers.Authorization !== auth) {\n config.headers.Authorization = `Bearer ${authToken}`\n }\n }\n return config\n },\n (error) => Promise.reject(error)\n)\n\nauthApi.interceptors.response.use(\n (response) => {\n removeRequestIfPending(response.config)\n return response\n },\n (error) => {\n if (error.message !== 'canceled') {\n removeRequestIfPending(error.response.config)\n }\n return Promise.reject(error)\n }\n)\n\nexport default authApi\n","import { AxiosRequestConfig } from 'axios'\n\nexport const pendingRequests = new Map()\n\nconst generateRequestKey = (config: AxiosRequestConfig): string => {\n const { method, url, params = {}, data = {} } = config\n return [method, url, JSON.stringify(params), JSON.stringify(data)].join('')\n}\n\nexport const removeRequestIfPending = (config: AxiosRequestConfig): string => {\n const requestKey = generateRequestKey(config)\n if (pendingRequests.has(requestKey)) {\n const controller = pendingRequests.get(requestKey) || {}\n controller?.abort()\n pendingRequests.delete(requestKey)\n }\n return requestKey\n}\n","import { createI18n, LocaleMessages, VueMessageType } from 'vue-i18n'\n\n/**\n * Load locale messages\n *\n * The loaded `JSON` locale messages is pre-compiled by `@intlify/vue-i18n-loader`, which is integrated into `vue-cli-plugin-i18n`.\n * See: https://github.com/intlify/vue-i18n-loader#rocket-i18n-resource-pre-compilation\n */\nconst disabledLanguages = ['nb'] // to remove after norwegian translations release\n\nfunction loadLocaleMessages(): Record> {\n const locales = require.context('./locales', true, /[A-Za-z0-9-_,\\s]+\\.ts$/i)\n const messages: Record> = {}\n locales.keys().forEach((key) => {\n const matched = key.match(/([A-Za-z0-9-_]+)\\./i)\n if (\n matched &&\n matched.length > 1 &&\n !disabledLanguages.includes(matched[1])\n ) {\n const locale = matched[1]\n messages[locale] = locales(key).default\n }\n })\n return messages\n}\n\nexport default createI18n({\n legacy: false,\n locale: 'en',\n fallbackLocale: 'en',\n globalInjection: true,\n messages: loadLocaleMessages(),\n})\n","export default {\n \"CONTACT_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kontaktiere den Administrator\"])},\n \"FITTRACKEE_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"FitTrackee ist ein selbst-gehosteter Outdoor-Aktivitäts-Tracker.\"])},\n \"FITTRACKEE_LICENSE\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"unter \", _interpolate(_list(0)), \" Lizenz \"])},\n \"SOURCE_CODE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Quellcode\"])}\n}","export default {\n \"ACTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aktion\"])},\n \"ACTIVATE_USER_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aktiviere Konto\"])},\n \"ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aktiv\"])},\n \"ADMIN_RIGHTS_DELETE_USER_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hinzufügen/Entfernen von Administratorrechten, Lösche Nutzerkonto.\"])},\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Admin\"])},\n \"ADMINISTRATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Administration\"])},\n \"APPLICATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anwendung\"])},\n \"APP_CONFIG\": {\n \"ADMIN_CONTACT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kontakt-E-Mail des Administrators\"])},\n \"MAX_USERS_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. Anzahl aktiver Nutzer\"])},\n \"MAX_USERS_HELP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Wenn 0, gibt es keine Registrierungslimitierung..\"])},\n \"MAX_FILES_IN_ZIP_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. Dateianzahl im zip Archiv\"])},\n \"NO_CONTACT_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"keine Kontakt-E-Mail\"])},\n \"SINGLE_UPLOAD_MAX_SIZE_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. Größe der hochgeladenen Dateien (in Mb)\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anwendungskonfiguration\"])},\n \"ZIP_UPLOAD_MAX_SIZE_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. Größe des zip Archives (in Mb)\"])}\n },\n \"BACK_TO_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Zurück zu Admin\"])},\n \"CONFIRM_USER_ACCOUNT_DELETION\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Möchtest du wirklich das \", _interpolate(_list(0)), \" Konto löschen? Alle Daten werden gelöscht. Dieser Vorgang kann nicht rückgängig gemacht werden.\"])},\n \"CONFIRM_USER_PASSWORD_RESET\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Möchtest du wirklich das \", _interpolate(_list(0)), \" Passwort zurücksetzen?\"])},\n \"CURRENT_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aktuelle E-Mail\"])},\n \"DELETE_USER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Lösche Nutzer\"])},\n \"EMAIL_SENDING_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"E-Mail-Versand ist deaktiviert.\"])},\n \"ENABLE_DISABLE_SPORTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aktivieren/Deaktivieren von Sportarten.\"])},\n \"NEW_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Neue E-Mail\"])},\n \"PASSWORD_RESET_SUCCESSFUL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Das wasswort wurde zurückgesetzt.\"])},\n \"REGISTRATION_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registrierung ist derzeit deaktiviert.\"])},\n \"REGISTRATION_ENABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registrierung ist derzeit aktiviert.\"])},\n \"RESET_USER_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Passwort zurücksetzen\"])},\n \"SPORTS\": {\n \"TABLE\": {\n \"ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aktiv\"])},\n \"HAS_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Trainings existieren\"])},\n \"IMAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bild\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Titel\"])}\n },\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sportarten Administration\"])}\n },\n \"UPDATE_APPLICATION_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aktualisiere Anwemdungskonfiguration (maximale Anzahl an registrierten Nutzern, maximale Dateigröße).\"])},\n \"UPDATE_USER_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aktualisiere E-Mail\"])},\n \"USER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nutzer\"])},\n \"USER_EMAIL_UPDATE_SUCCESSFUL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Die E-Mail Adresse wurde aktualisiert.\"])},\n \"USERS\": {\n \"TABLE\": {\n \"ADD_ADMIN_RIGHTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Administratorrechte hinzufügen\"])},\n \"REMOVE_ADMIN_RIGHTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Administratorrechte entfernen\"])}\n },\n \"SELECTS\": {\n \"ORDER_BY\": {\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Adminstatus\"])},\n \"CREATED_AT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registrierungsdatum\"])},\n \"IS_ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Accountstatus\"])},\n \"USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nutzername\"])},\n \"WORKOUTS_COUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Trainingsanzahl\"])}\n }\n }\n }\n}","export default {\n \"ERROR\": {\n \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fehler. Bitte versuche es erneut oder kontaktiere den Administrator.\"])},\n \"at least one file in zip archive exceeds size limit, please check the archive\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mindestens eine Datei im ZIP-Archiv überschreitet das Größenlimit, bitte überprüfe das Archiv.\"])},\n \"email: valid email must be provided\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"E-Mail: Eine gültige E-Mail muss angegeben werden.\"])},\n \"error during gpx processing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fehler bei der GPX-Verarbeitung.\"])},\n \"error during gpx file parsing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fehler beim Einlesen der GPX-Datei\"])},\n \"error on getting configuration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fehler beim Abrufen der Konfiguration.\"])},\n \"error when updating configuration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fehler beim Aktualisieren der Konfiguration\"])},\n \"error, please try again or contact the administrator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fehler. Bitte versuche es erneut oder kontaktiere den Administrator.\"])},\n \"error, registration is disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fehler. Die Registrierung ist deaktiviert.\"])},\n \"file extension not allowed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dateierweiterung ist nicht erlaubt.\"])},\n \"file size is greater than the allowed size\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Die Datei ist größer als erlaubt.\"])},\n \"invalid credentials\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ungültige Anmeldedaten.\"])},\n \"invalid payload\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Die bereitgestellten Daten sind ungültig.\"])},\n \"invalid token, please log in again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ungültiges Token, bitte erneut anmelden.\"])},\n \"invalid token, please request a new token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ungültiges Token, bitte erneut anmelden.\"])},\n \"Network Error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Netzwerkfehler.\"])},\n \"new email must be different than curent email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Die neue E-Mail muss sich von der aktuellen E-Mail unterscheiden\"])},\n \"no file part\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Keine Datei angegeben.\"])},\n \"no selected file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Keine Datei ausgewählt.\"])},\n \"the number of files in the archive exceeds the limit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Die Anzahl der Dateien im Archiv überschreitet die Begrenzung.\"])},\n \"password: password and password confirmation do not match\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Passwort: Passwort und Passwortbestätigung stimmen nicht überein.\"])},\n \"provide a valid auth token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gebe ein gültiges Authentifizierungstoken an.\"])},\n \"sorry, that username is already taken\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Es tut mir leid, der Benutzername ist schon vergeben.\"])},\n \"sport does not exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sportart existiert nicht.\"])},\n \"signature expired, please log in again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Die Signatur ist abgelaufen. Bitte melde dich erneut an.\"])},\n \"successfully registered\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registrierung erfolgreich.\"])},\n \"user does not exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Der Nutzer existiert nicht.\"])},\n \"valid email must be provided for admin contact\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Um den Administrator zu kontaktieren, muss eine gültige E-Mail-Adresse angegeben werden\"])},\n \"you can not delete your account, no other user has admin rights\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Du kannst Dein Konto nicht löschen, da kein anderer Nutzer hat Administratorrechte besitzt.\"])},\n \"you do not have permissions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Du hast keine Berechtigung.\"])}\n },\n \"PAGINATION\": {\n \"PREVIOUS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vorhergehende\"])},\n \"NEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nächste\"])}\n }\n}","export default {\n \"ACCOUNT-CONFIRMATION-RESEND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bestätigungs-E-Mail erneut senden\"])},\n \"AUTHORIZE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Autorisieren\"])},\n \"BACK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Zurück\"])},\n \"CANCEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Abbrechen\"])},\n \"CLEAR_FILTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filter löschen\"])},\n \"DELETE_MY_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mein Konto löschen\"])},\n \"DISABLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Deaktivieren\"])},\n \"EDIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bearbeiten\"])},\n \"ENABLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aktivieren\"])},\n \"FILTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filter\"])},\n \"LOGIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anmelden\"])},\n \"NO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nein\"])},\n \"REGISTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registrieren\"])},\n \"RESET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Zurücksetzen\"])},\n \"SUBMIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Speichern\"])},\n \"YES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ja\"])}\n}","export default {\n \"ABOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Über\"])},\n \"CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bestätigung\"])},\n \"CONTACT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kontakt\"])},\n \"DAY\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"Tag\"]), _normalize([\"Tage\"])])},\n \"DISPLAYED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Angezeigt\"])},\n \"DOCUMENTATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dokumentation (en)\"])},\n \"HERE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"hier\"])},\n \"HIDDEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Versteckt\"])},\n \"HOME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Startseite\"])},\n \"SELECTS\": {\n \"ORDER_BY\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sortiert nach\"])}\n },\n \"ORDER\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sortieren\"])},\n \"ASC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"aufsteigend\"])},\n \"DESC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"absteigend\"])}\n },\n \"PER_PAGE\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"pro Seite\"])}\n }\n },\n \"TOTAL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Insgesamt\"])}\n}","export default {\n \"DASHBOARD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dashboard\"])},\n \"THIS_MONTH\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dieser Monat\"])}\n}","export default {\n \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fehler. Bitte versuche es erneut oder kontaktiere den Administrator.\"])},\n \"APP_ERROR\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bei der Anwendung scheinen einige Probleme aufgetreten zu sein.
Bitte versuche es später noch einmal oder kontaktiere den Administrator.\"])},\n \"NOT_FOUND\": {\n \"PAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Seite nicht gefunden\"])},\n \"WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Training nicht gefunden\"])}\n },\n \"SOMETHING_WRONG\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Etwas lief schief\"])}\n}","export default {\n \"ADD_A_NEW_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Eine neue OAuth2-Anwendung hinzufügen\"])},\n \"APP\": {\n \"CLIENT_ID\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ID\"])},\n \"CLIENT_SECRET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geheimnis\"])},\n \"DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anwendungsbeschreibung\"])},\n \"ISSUE_AT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erstellt am\"])},\n \"NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anwendungsname\"])},\n \"REDIRECT_URL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Weiterleitungs-URL\"])},\n \"SCOPE\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geltungsbereich\"])},\n \"profile:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"erlaubt Schreibzugriff auf auth-Endpunkte\"])},\n \"profile:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"erlaubt Lesezugriff auf auth-Endpunkte\"])},\n \"users:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"erlaubt Lesezugriff auf users-Endpunkte\"])},\n \"users:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"erlaubt Schreibzugriff auf users-Endpunkte\"])},\n \"workouts:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"erlaubt Lesezugriff auf workouts-Endpunkte\"])},\n \"workouts:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"erlaubt Schreibzugriff auf workouts-Endpunkte\"])},\n \"application:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"erlaubt Schreibzugriff auf die Anwendungskonfiguration\"])}\n },\n \"URL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anwendungs-URL\"])}\n },\n \"APP_CREATED_SUCCESSFULLY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anwendung erfolgreich erstellt. Stelle sicher, dass du das Geheimnis kopierst, du kannst es nicht erneut anzeigen.\"])},\n \"APP_DELETION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bist sicher, dass du diese App löschen willst?\"])},\n \"APP_REQUESTING_ACCESS\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Die Anwendung \", _interpolate(_list(0)), \" fragt an:\"])},\n \"APPS_LIST\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"OAuth2-Anwendungen\"])},\n \"AUTHORIZE_APP\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([_interpolate(_list(0)), \" den Zugriff auf deinen Account erlauben?\"])},\n \"COPY_TO_CLIPBOARD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"in Zwischenablage kopieren\"])},\n \"DELETE_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anwendung löschen\"])},\n \"NEW_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anwendung hinzufügen\"])},\n \"NO_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anwendung wurde nicht gefunden!\"])},\n \"NO_APPS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"keine Anwendungen\"])},\n \"NO_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"keine Beschreibung\"])},\n \"REVOKE_ALL_TOKENS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Alle Tokens zurückrufen\"])},\n \"TOKENS_REVOCATION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bist du sicher, dass du alle Tokens zurückrufen möchtest?\"])},\n \"TOKENS_REVOKED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Alle vorhandenen und vergebenen Tokens wurde zurückgerufen.\"])}\n}","export default {\n \"Cycling (Sport)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Radfahren (Sport)\"])}\n },\n \"Cycling (Transport)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Radfahren (Pendeln)\"])}\n },\n \"Cycling (Virtual)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Radfahren (Virtuell)\"])}\n },\n \"Hiking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Wandern\"])}\n },\n \"Mountain Biking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mountainbiken\"])}\n },\n \"Mountain Biking (Electric)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mountainbiken (elektrisch)\"])}\n },\n \"Rowing\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Rudern\"])}\n },\n \"Running\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Laufen\"])}\n },\n \"Skiing (Alpine)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Skifahren (Alpin)\"])}\n },\n \"Skiing (Cross Country)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Skifahren (Langlauf)\"])}\n },\n \"Snowshoes\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Schneeschuhe\"])}\n },\n \"Trail\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Trail\"])}\n },\n \"Walking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gehen\"])}\n }\n}","export default {\n \"STATISTICS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Statistik\"])},\n \"TIME_FRAMES\": {\n \"week\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Woche\"])},\n \"month\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Monat\"])},\n \"year\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Jahr\"])}\n }\n}","export default {\n \"ACCOUNT_CONFIRMATION_NOT_RECEIVED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hast du keine Anweisungen erhalten?\"])},\n \"ACCOUNT_CONFIRMATION_SENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Prüfe deine E-Mail. Eine neue Bestätigungs-E-Mail wurde an die angegebene Adresse geschickt.\"])},\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Admin\"])},\n \"ALREADY_HAVE_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hast du bereits ein Konto?\"])},\n \"CONFIRM_ACCOUNT_DELETION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Möchtest du dein Konto wirklich löschen? Alle Daten werden gelöscht. Dieser Vorgang kann nicht rückgängig gemacht werden\"])},\n \"CURRENT_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aktuelles Passwort\"])},\n \"EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"E-Mail\"])},\n \"EMAIL_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gebe eine gültige E-Mail-Adresse an.\"])},\n \"ENTER_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gebe ein Passwort ein\"])},\n \"FILTER_ON_USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nach Benutzernamen filtern\"])},\n \"HIDE_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Passwort verbergen\"])},\n \"INVALID_TOKEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ungültiges Token, bitte fordere ein neues Passworts an.\"])},\n \"LANGUAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sprache\"])},\n \"LOG_IN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anmelden\"])},\n \"LOGIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anmeldung\"])},\n \"LOGOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Abmelden\"])},\n \"NEW_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Neues Passwort\"])},\n \"NO_USERS_FOUND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Keine Nutzer gefunden.\"])},\n \"PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Passwort\"])},\n \"PASSWORD_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mindestens 8 Zeichen sind erforderlich.\"])},\n \"PASSWORD_FORGOTTEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Passwort vergessen?\"])},\n \"PASSWORD_RESET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Passwort zurücksetzen\"])},\n \"PASSWORD_SENT_EMAIL_TEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Prüfe Deine E-Mail. Wenn Deine Adresse in der Datenbank enthalten ist, wirst du eine E-Mail mit einem Link erhalten um Dein Passwort zurückzusetzen.\"])},\n \"PASSWORD_STRENGTH\": {\n \"WEAK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"schwach\"])},\n \"AVERAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"mittel\"])},\n \"GOOD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"gut\"])},\n \"STRONG\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"start\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Passwortstärke\"])},\n \"SUGGESTIONS\": {\n \"l33t\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vermeide vorhersehbare Buchstabenersetzungen wie \", \"@\", \" für a.\"])},\n \"reverseWords\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vermeide umgekehrte Schreibweisen gebräuchlicher Wörter.\"])},\n \"allUppercase\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Schreibe einige, aber nicht alle Buchstaben groß.\"])},\n \"capitalization\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Schreibe mehr als nur den ersten Buchstaben groß.\"])},\n \"dates\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vermeide Daten und Jahreszahlen, die mit Dir in Verbindung gebracht werden.\"])},\n \"recentYears\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vermeide Angabe von letzten Jahreszahlen.\"])},\n \"associatedYears\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vermeide Jahreszahlen, die mit Dir in Verbindung gebracht werden.\"])},\n \"sequences\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vermeide gebräuchliche Zeichenfolgen.\"])},\n \"repeated\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vermeide wiederholungen von Wörtern und Zeichen.\"])},\n \"longerKeyboardPattern\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Verwende längere Tastaturmuster und ändere mehrmals die Schreibrichtung.\"])},\n \"anotherWord\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Füge weitere weniger gebräuchliche Wörter hinzu.\"])},\n \"useWords\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Verwenden Sie mehrere Wörter, aber vermeide gebräuchliche Ausdrücke.\"])},\n \"noNeed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Du kannst sichere Passwörter erstellen, ohne Symbole, Zahlen oder Großbuchstaben zu verwenden.\"])},\n \"pwned\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Wenn Sie dieses Passwort auch anderweitig verwenden, sollten Sie es ändern.\"])}\n }\n },\n \"PASSWORD_UPDATED\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Dein Passwort wurde aktualisiert. Klicke \", _interpolate(_list(0)), \" um dich anzumelden.\"])},\n \"PROFILE\": {\n \"ACCOUNT_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kontoausgabe\"])},\n \"ASCENT_DATA\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anstiegs-bezogene Daten (Aufnahmen, gesamt)\"])},\n \"BACK_TO_PROFILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Zurück zum Profil\"])},\n \"BIO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Biographie\"])},\n \"BIRTH_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geburtsdatum\"])},\n \"DATE_FORMAT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Datumsanzeigeformat\"])},\n \"EDIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Profil bearbeiten\"])},\n \"EDIT_PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Einstellungen ändern\"])},\n \"EDIT_SPORTS_PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Einstellungen für Sportarten ändern\"])},\n \"ERRORED_EMAIL_UPDATE\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Bitte \", _interpolate(_list(0)), \" um Deine E-Mail Adresse nochmals zu ändern oder kontaktiere den Administrator\"])},\n \"FIRST_NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vorname\"])},\n \"FIRST_DAY_OF_WEEK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erster Tag der Woche\"])},\n \"LANGUAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sprache\"])},\n \"LAST_NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nachname\"])},\n \"LOCATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ort\"])},\n \"MONDAY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Montag\"])},\n \"PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bild\"])},\n \"PICTURE_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bildausgabe\"])},\n \"PICTURE_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bild aktualisieren\"])},\n \"PICTURE_REMOVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bild entfernen\"])},\n \"PREFERENCES_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Einstellungsausgabe\"])},\n \"PROFILE_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Profil-Ausgabe\"])},\n \"REGISTRATION_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registrierungsdatum\"])},\n \"SPORTS_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sportarten-Einstellungsausgabe\"])},\n \"SUNDAY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sontag\"])},\n \"TABS\": {\n \"ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Konto\"])},\n \"APPS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anwendungen\"])},\n \"PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bild\"])},\n \"PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Einstellungen\"])},\n \"PROFILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Profil\"])},\n \"SPORTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sportarten\"])}\n },\n \"SPORT\": {\n \"ACTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aktion\"])},\n \"COLOR\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Farbe\"])},\n \"DISABLED_BY_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vom Admin deaktiviert\"])},\n \"IS_ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"aktiv\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Titel\"])},\n \"STOPPED_SPEED_THRESHOLD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geschwindigkeitsschwellenwert für Stopp\"])}\n },\n \"SUCCESSFUL_EMAIL_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dein Konto wurde erfolgreich aktualisiert. Bitte prüfe Deine E-Mail um die neue E-Mail Adresse zu bestätigen.\"])},\n \"SUCCESSFUL_REGISTRATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dein Konto wurde erfolgreich erstellt.\"])},\n \"SUCCESSFUL_REGISTRATION_WITH_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ein Aktivierungslink für Dein Konto wurde an die angegebene E-Mail Adresse geschickt.\"])},\n \"SUCCESSFUL_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dein Konto wurde erfolgreich aktualisiert.\"])},\n \"UNITS\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Einheiten für die Distanz\"])},\n \"IMPERIAL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Imperiales System (ft, mi)\"])},\n \"METRIC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Metrisches System (m, km)\"])}\n },\n \"TIMEZONE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Zeitzone\"])}\n },\n \"REGISTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registrieren\"])},\n \"RESENT_ACCOUNT_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"E-Mail zur Kontobestätigung erneut senden\"])},\n \"REGISTER_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Entschuldigung, die Registrierung ist deaktiviert.\"])},\n \"RESET_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Passwort zurücksetzen\"])},\n \"SHOW_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Passwort anzeigen\"])},\n \"THIS_USER_ACCOUNT_IS_INACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dieser Account ist inaktiv.\"])},\n \"USER_PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Benutzerbild\"])},\n \"USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nutzername\"])},\n \"USERNAME_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"3 bis 30 Zeichen sind erforderlich, nur alphanumerische Zeichen und der Unterstrich _ sind erlaubt.\"])}\n}","export default {\n \"ADD_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Training hinzufügen\"])},\n \"ANALYSIS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Analyse\"])},\n \"ASCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aufstieg\"])},\n \"AVE_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Durchschn. Geschwindigkeit\"])},\n \"AVERAGE_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Durchschnittsgeschwindigkeit\"])},\n \"BACK_TO_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"zurück zum Training\"])},\n \"DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Datum\"])},\n \"DESCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Abstieg\"])},\n \"DISPLAY_FILTERS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"zeige Filter\"])},\n \"DISTANCE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Entfernung\"])},\n \"DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dauer\"])},\n \"EDIT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Training bearbeiten\"])},\n \"ELEVATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Höhe\"])},\n \"END\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ende\"])},\n \"FROM\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Von\"])},\n \"GPX_FILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\".gpx Datei\"])},\n \"HIDE_FILTERS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"verberge Filter\"])},\n \"LATEST_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Letzte Trainings\"])},\n \"LOAD_MORE_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Lade mehr Trainings\"])},\n \"MAX_ALTITUDE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"maximale Höhe\"])},\n \"MAX_FILES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Maximale Dateianzahl\"])},\n \"MAX_SIZE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Maximalgröße\"])},\n \"MAX_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. Geschwindigkeit\"])},\n \"MIN_ALTITUDE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"minimale Höhe\"])},\n \"NEXT_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nächstes Segment\"])},\n \"NEXT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nächstes Training\"])},\n \"NO_DATA_CLEANING\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Daten aus gpx, ohne Bereinigung\"])},\n \"NO_FILE_PROVIDED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Keine Datei angegeben\"])},\n \"NO_FOLDER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"enthält keinen Ordner\"])},\n \"NO_MAP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Keine Karte\"])},\n \"NO_NEXT_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kein nächstes Segment\"])},\n \"NO_NEXT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kein nächstes Training\"])},\n \"NO_NOTES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Keine Anmerkungen\"])},\n \"NO_PREVIOUS_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kein vorheriges Segment\"])},\n \"NO_PREVIOUS_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Kein vorheriges Training\"])},\n \"NO_RECORDS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Keine Aufzeichnungen.\"])},\n \"NO_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Keine Trainings.\"])},\n \"NOTES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Anmerkungen\"])},\n \"PAUSES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pausen\"])},\n \"PREVIOUS_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vorheriges Segment\"])},\n \"PREVIOUS_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vorheriges Training\"])},\n \"RECORD\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"Aufzeichnung\"]), _normalize([\"Aufzeichnungen\"])])},\n \"RECORD_AS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Durchschn. Geschwindigkeit\"])},\n \"RECORD_FD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Weiteste Entfernung\"])},\n \"RECORD_HA\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Höchster Anstieg\"])},\n \"RECORD_LD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Längste Dauer\"])},\n \"RECORD_MS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. Geschwindigkeit\"])},\n \"REMAINING_CHARS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"verbleibende Zeichen\"])},\n \"SEGMENT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"Segment\"]), _normalize([\"Segmente\"])])},\n \"SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Geschwindigkeit\"])},\n \"SPORT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"Sportart\"]), _normalize([\"Sportarten\"])])},\n \"START\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Start\"])},\n \"START_AND_FINISH\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Start und Ziel\"])},\n \"START_ELEVATION_AT_ZERO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Höhenachse bei Null starten\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Titel\"])},\n \"TO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"bis\"])},\n \"TOTAL_DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Gesamtdauer\"])},\n \"UPLOAD_FIRST_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Füge erstes Training hinzu!\"])},\n \"WEATHER\": {\n \"HUMIDITY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Luftfeuchtigkeit\"])},\n \"TEMPERATURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Temperatur\"])},\n \"WIND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Wind\"])},\n \"WIND_DIRECTIONS\": {\n \"N\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"N\"])},\n \"NNE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NNO\"])},\n \"NE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NO\"])},\n \"ENE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ONO\"])},\n \"E\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"O\"])},\n \"ESE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"OSO\"])},\n \"SE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SO\"])},\n \"SSE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SSO\"])},\n \"S\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"S\"])},\n \"SSW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SSW\"])},\n \"SW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SW\"])},\n \"WSW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"WSW\"])},\n \"W\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"W\"])},\n \"WNW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"WNW\"])},\n \"NW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NW\"])},\n \"NNW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NNW\"])}\n },\n \"DARK_SKY\": {\n \"clear-day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"klarer Tag\"])},\n \"clear-night\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"klare Nacht\"])},\n \"cloudy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"wolkig\"])},\n \"fog\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nebel\"])},\n \"partly-cloudy-day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"teilweise bewölkter Tag\"])},\n \"partly-cloudy-night\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"teilweise bewölkte Nacht\"])},\n \"rain\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Regen\"])},\n \"sleet\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Schneeregen\"])},\n \"snow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Schnee\"])},\n \"wind\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Wind\"])}\n }\n },\n \"WITH_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"mit .gpx Datei\"])},\n \"WITHOUT_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ohne .gpx Datei\"])},\n \"WORKOUT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"Training\"]), _normalize([\"Trainings\"])])},\n \"WORKOUT_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Trainingsdatum\"])},\n \"WORKOUT_DELETION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bist du sicher, dass du dieses Training löschen möchtest?\"])},\n \"ZIP_ARCHIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\".zip Datei\"])},\n \"ZIP_ARCHIVE_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"oder .zip Datei mit .gpx Dateien\"])}\n}","import AboutTranslations from './about.json'\nimport AdministrationTranslations from './administration.json'\nimport ApiTranslations from './api.json'\nimport ButtonsTranslations from './buttons.json'\nimport CommonTranslations from './common.json'\nimport DashboardTranslations from './dashboard.json'\nimport ErrorTranslations from './error.json'\nimport OAuth2Translations from './oauth2.json'\nimport SportsTranslations from './sports.json'\nimport StatisticsTranslations from './statistics.json'\nimport UserTranslations from './user.json'\nimport WorkoutsTranslations from './workouts.json'\n\nexport default {\n about: AboutTranslations,\n admin: AdministrationTranslations,\n api: ApiTranslations,\n buttons: ButtonsTranslations,\n common: CommonTranslations,\n dashboard: DashboardTranslations,\n error: ErrorTranslations,\n oauth2: OAuth2Translations,\n sports: SportsTranslations,\n statistics: StatisticsTranslations,\n user: UserTranslations,\n workouts: WorkoutsTranslations,\n}\n","export default {\n \"CONTACT_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Contact the administrator\"])},\n \"FITTRACKEE_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"FitTrackee is a self-hosted outdoor activity tracker.\"])},\n \"FITTRACKEE_LICENSE\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"under \", _interpolate(_list(0)), \" license \"])},\n \"SOURCE_CODE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Source code\"])}\n}","export default {\n \"ACTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Action\"])},\n \"ACTIVATE_USER_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Activate account\"])},\n \"ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Active\"])},\n \"ADMIN_RIGHTS_DELETE_USER_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Add/remove admin rights, delete user account.\"])},\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Admin\"])},\n \"ADMINISTRATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Administration\"])},\n \"APPLICATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Application\"])},\n \"APP_CONFIG\": {\n \"ADMIN_CONTACT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Administrator email for contact\"])},\n \"MAX_USERS_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. number of active users\"])},\n \"MAX_USERS_HELP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"If 0, no limitation on registration.\"])},\n \"MAX_FILES_IN_ZIP_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. files of zip archive\"])},\n \"NO_CONTACT_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"no contact email\"])},\n \"SINGLE_UPLOAD_MAX_SIZE_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. size of uploaded files (in Mb)\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Application configuration\"])},\n \"ZIP_UPLOAD_MAX_SIZE_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. size of zip archive (in Mb)\"])}\n },\n \"BACK_TO_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Back to admin\"])},\n \"CONFIRM_USER_ACCOUNT_DELETION\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Are you sure you want to delete \", _interpolate(_list(0)), \" account? All data will be deleted, this cannot be undone.\"])},\n \"CONFIRM_USER_PASSWORD_RESET\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Are you sure you want to reset \", _interpolate(_list(0)), \" password?\"])},\n \"CURRENT_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Current email\"])},\n \"DELETE_USER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Delete user\"])},\n \"EMAIL_SENDING_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email sending is disabled.\"])},\n \"ENABLE_DISABLE_SPORTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enable/disable sports.\"])},\n \"NEW_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"New email\"])},\n \"PASSWORD_RESET_SUCCESSFUL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The password has been reset.\"])},\n \"REGISTRATION_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registration is currently disabled.\"])},\n \"REGISTRATION_ENABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registration is currently enabled.\"])},\n \"RESET_USER_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reset password\"])},\n \"SPORTS\": {\n \"TABLE\": {\n \"ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Active\"])},\n \"HAS_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"workouts exist\"])},\n \"IMAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Image\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Label\"])}\n },\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sports administration\"])}\n },\n \"UPDATE_APPLICATION_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Update application configuration (maximum number of registered users, maximum files size).\"])},\n \"UPDATE_USER_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Update email\"])},\n \"USER\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"user\"]), _normalize([\"users\"])])},\n \"USER_EMAIL_UPDATE_SUCCESSFUL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The email address has been updated.\"])},\n \"USERS\": {\n \"TABLE\": {\n \"ADD_ADMIN_RIGHTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Add admin rights\"])},\n \"REMOVE_ADMIN_RIGHTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Remove admin rights\"])}\n },\n \"SELECTS\": {\n \"ORDER_BY\": {\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"admin status\"])},\n \"CREATED_AT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"registration date\"])},\n \"IS_ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"account status\"])},\n \"USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"username\"])},\n \"WORKOUTS_COUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"workout count\"])}\n }\n }\n }\n}","export default {\n \"ERROR\": {\n \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error. Please try again or contact the administrator.\"])},\n \"at least one file in zip archive exceeds size limit, please check the archive\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"At least one file in zip archive exceeds size limit, please check the archive.\"])},\n \"email: valid email must be provided\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email: valid email must be provided.\"])},\n \"error during gpx processing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error during gpx processing.\"])},\n \"error during gpx file parsing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error during gpx file parsing.\"])},\n \"error on getting configuration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error on getting configuration.\"])},\n \"error when updating configuration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error when updating configuration\"])},\n \"error, please try again or contact the administrator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error, please try again or contact the administrator.\"])},\n \"error, registration is disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error, registration is disabled.\"])},\n \"file extension not allowed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"File extension not allowed.\"])},\n \"file size is greater than the allowed size\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"File size is greater than the allowed size.\"])},\n \"invalid credentials\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Invalid credentials.\"])},\n \"invalid payload\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Provided data are invalid.\"])},\n \"invalid token, please log in again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Invalid token, please log in again.\"])},\n \"invalid token, please request a new token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Invalid token, please log in again.\"])},\n \"Network Error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Network Error.\"])},\n \"new email must be different than curent email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The new email must be different than curent email\"])},\n \"no file part\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No file provided.\"])},\n \"no selected file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No selected file.\"])},\n \"the number of files in the archive exceeds the limit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The number of files in the archive exceeds the limit.\"])},\n \"password: password and password confirmation do not match\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Password: password and password confirmation don't match.\"])},\n \"provide a valid auth token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Provide a valid auth token.\"])},\n \"sorry, that username is already taken\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sorry, that username is already taken.\"])},\n \"sport does not exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sport does not exist.\"])},\n \"signature expired, please log in again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Signature expired. Please log in again.\"])},\n \"successfully registered\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Successfully registered.\"])},\n \"user does not exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"User does not exist.\"])},\n \"valid email must be provided for admin contact\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"A valid email must be provided for administrator contact\"])},\n \"you can not delete your account, no other user has admin rights\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"You can not delete your account, no other user has admin rights.\"])},\n \"you do not have permissions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"You do not have permissions.\"])}\n },\n \"PAGINATION\": {\n \"PREVIOUS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"previous\"])},\n \"NEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"next\"])}\n }\n}","export default {\n \"ACCOUNT-CONFIRMATION-RESEND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Resend confirmation email\"])},\n \"AUTHORIZE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Authorize\"])},\n \"BACK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Back\"])},\n \"CANCEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cancel\"])},\n \"CLEAR_FILTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Clear filters\"])},\n \"DELETE_MY_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Delete my account\"])},\n \"DISABLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Disable\"])},\n \"EDIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit\"])},\n \"ENABLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enable\"])},\n \"FILTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filter\"])},\n \"LOGIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Log in\"])},\n \"NO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No\"])},\n \"REGISTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Register\"])},\n \"RESET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reset\"])},\n \"SUBMIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Submit\"])},\n \"YES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Yes\"])}\n}","export default {\n \"ABOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"about\"])},\n \"CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Confirmation\"])},\n \"CONTACT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"contact\"])},\n \"DAY\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"day\"]), _normalize([\"days\"])])},\n \"DISPLAYED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Displayed\"])},\n \"DOCUMENTATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"documentation\"])},\n \"HERE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"here\"])},\n \"HIDDEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hidden\"])},\n \"HOME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Home\"])},\n \"SELECTS\": {\n \"ORDER_BY\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"order by\"])}\n },\n \"ORDER\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sort\"])},\n \"ASC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ascending\"])},\n \"DESC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"descending\"])}\n },\n \"PER_PAGE\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"par page\"])}\n }\n },\n \"TOTAL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Total\"])}\n}","export default {\n \"DASHBOARD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dashboard\"])},\n \"THIS_MONTH\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This month\"])}\n}","export default {\n \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Error. Please try again or contact the administrator.\"])},\n \"APP_ERROR\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The application seems to have encountered some issues.
Please try again later or contact the administrator.\"])},\n \"NOT_FOUND\": {\n \"PAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Page not found\"])},\n \"WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Workout not found\"])}\n },\n \"SOMETHING_WRONG\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Something went wrong\"])}\n}","export default {\n \"ADD_A_NEW_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Add a new OAuth2 application\"])},\n \"APP\": {\n \"CLIENT_ID\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Id\"])},\n \"CLIENT_SECRET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Secret\"])},\n \"DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Application description\"])},\n \"ISSUE_AT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Issue at\"])},\n \"NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Application name\"])},\n \"REDIRECT_URL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Redirect URL\"])},\n \"SCOPE\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Scope\"])},\n \"application:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"grants write access to application configuration.\"])},\n \"profile:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"grants read access to auth endpoints.\"])},\n \"profile:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"grants write access to auth endpoints.\"])},\n \"users:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"grants read access to users endpoints.\"])},\n \"users:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"grants write access to users endpoints.\"])},\n \"workouts:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"grants read access to workouts endpoints.\"])},\n \"workouts:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"grants write access to workouts endpoints.\"])}\n },\n \"URL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Application URL\"])}\n },\n \"APP_CREATED_SUCCESSFULLY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Application created successfully. Make sure to copy the secret now, it won't show up again.\"])},\n \"APP_DELETION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Are you sure you want to delete this app?\"])},\n \"APP_REQUESTING_ACCESS\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"The application \", _interpolate(_list(0)), \" is requesting:\"])},\n \"APPS_LIST\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"OAuth2 applications\"])},\n \"AUTHORIZE_APP\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Authorize \", _interpolate(_list(0)), \" to use your account?\"])},\n \"COPY_TO_CLIPBOARD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"copy to the clipboard\"])},\n \"DELETE_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Delete application\"])},\n \"NEW_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Add an application\"])},\n \"NO_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Application not found!\"])},\n \"NO_APPS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"no applications\"])},\n \"NO_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"no description\"])},\n \"REVOKE_ALL_TOKENS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Revoke all tokens\"])},\n \"TOKENS_REVOCATION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Are you sure you want to revoke all tokens?\"])},\n \"TOKENS_REVOKED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"All existing associated tokens have been revoked.\"])}\n}","export default {\n \"Cycling (Sport)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cycling (Sport)\"])}\n },\n \"Cycling (Transport)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cycling (Transport)\"])}\n },\n \"Cycling (Virtual)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Cycling (Virtual)\"])}\n },\n \"Hiking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Hiking\"])}\n },\n \"Mountain Biking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mountain Biking\"])}\n },\n \"Mountain Biking (Electric)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mountain Biking (Electric)\"])}\n },\n \"Rowing\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Rowing\"])}\n },\n \"Running\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Running\"])}\n },\n \"Skiing (Alpine)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Skiing (Alpine)\"])}\n },\n \"Skiing (Cross Country)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Skiing (Cross Country)\"])}\n },\n \"Snowshoes\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Snowshoes\"])}\n },\n \"Trail\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Trail\"])}\n },\n \"Walking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Walking\"])}\n }\n}","export default {\n \"STATISTICS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Statistics\"])},\n \"TIME_FRAMES\": {\n \"week\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"week\"])},\n \"month\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"month\"])},\n \"year\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"year\"])}\n }\n}","export default {\n \"ACCOUNT_CONFIRMATION_NOT_RECEIVED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Didn't received instructions?\"])},\n \"ACCOUNT_CONFIRMATION_SENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Check your email. A new confirmation email has been sent to the address provided.\"])},\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Admin\"])},\n \"ALREADY_HAVE_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Already have an account?\"])},\n \"CONFIRM_ACCOUNT_DELETION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Are you sure you want to delete your account? All data will be deleted, this cannot be undone\"])},\n \"CURRENT_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Current password\"])},\n \"EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email\"])},\n \"EMAIL_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enter a valid email address.\"])},\n \"ENTER_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Enter a password\"])},\n \"FILTER_ON_USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filter on username\"])},\n \"HIDE_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"hide password\"])},\n \"INVALID_TOKEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Invalid token, please request a new password reset.\"])},\n \"LANGUAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Language\"])},\n \"LOG_IN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"log in\"])},\n \"LOGIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Login\"])},\n \"LOGOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Logout\"])},\n \"NEW_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"New password\"])},\n \"NO_USERS_FOUND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No users found.\"])},\n \"PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Password\"])},\n \"PASSWORD_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"At least 8 characters required.\"])},\n \"PASSWORD_FORGOTTEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Forgot password?\"])},\n \"PASSWORD_RESET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Password reset\"])},\n \"PASSWORD_SENT_EMAIL_TEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Check your email. If your address is in our database, you'll received an email with a link to reset your password.\"])},\n \"PASSWORD_STRENGTH\": {\n \"WEAK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"weak\"])},\n \"AVERAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"average\"])},\n \"GOOD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"good\"])},\n \"STRONG\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"strong\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"password strength\"])},\n \"SUGGESTIONS\": {\n \"l33t\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Avoid predictable letter substitutions like \", \"@\", \" for a.\"])},\n \"reverseWords\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Avoid reversed spellings of common words.\"])},\n \"allUppercase\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Capitalize some, but not all letters.\"])},\n \"capitalization\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Capitalize more than the first letter.\"])},\n \"dates\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Avoid dates and years that are associated with you.\"])},\n \"recentYears\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Avoid recent years.\"])},\n \"associatedYears\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Avoid years that are associated with you.\"])},\n \"sequences\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Avoid common character sequences.\"])},\n \"repeated\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Avoid repeated words and characters.\"])},\n \"longerKeyboardPattern\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Use longer keyboard patterns and change typing direction multiple times.\"])},\n \"anotherWord\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Add more words that are less common.\"])},\n \"useWords\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Use multiple words, but avoid common phrases.\"])},\n \"noNeed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"You can create strong passwords without using symbols, numbers, or uppercase letters.\"])},\n \"pwned\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"If you use this password elsewhere, you should change it.\"])}\n }\n },\n \"PASSWORD_UPDATED\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Your password have been updated. Click \", _interpolate(_list(0)), \" to log in.\"])},\n \"PROFILE\": {\n \"ACCOUNT_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Account edition\"])},\n \"ASCENT_DATA\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ascent-related data (records, total)\"])},\n \"BACK_TO_PROFILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Back to profile\"])},\n \"BIO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bio\"])},\n \"BIRTH_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Birth date\"])},\n \"DATE_FORMAT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Date display format\"])},\n \"EDIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit profile\"])},\n \"EDIT_PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit preferences\"])},\n \"EDIT_SPORTS_PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit sports preferences\"])},\n \"ERRORED_EMAIL_UPDATE\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Please \", _interpolate(_list(0)), \" to change your email address again or contact the administrator\"])},\n \"FIRST_NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"First name\"])},\n \"FIRST_DAY_OF_WEEK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"First day of week\"])},\n \"LANGUAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Language\"])},\n \"LAST_NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Last name\"])},\n \"LOCATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Location\"])},\n \"MONDAY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Monday\"])},\n \"PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Picture\"])},\n \"PICTURE_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Picture edition\"])},\n \"PICTURE_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Update picture\"])},\n \"PICTURE_REMOVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Remove picture\"])},\n \"PREFERENCES_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Preferences edition\"])},\n \"PROFILE_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Profile edition\"])},\n \"REGISTRATION_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Registration date\"])},\n \"SPORTS_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sports preferences edition\"])},\n \"SUNDAY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sunday\"])},\n \"TABS\": {\n \"ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"account\"])},\n \"APPS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"apps\"])},\n \"PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"picture\"])},\n \"PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"preferences\"])},\n \"PROFILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"profile\"])},\n \"SPORTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sports\"])}\n },\n \"SPORT\": {\n \"ACTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"action\"])},\n \"COLOR\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"color\"])},\n \"DISABLED_BY_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"disabled by admin\"])},\n \"IS_ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"active\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"label\"])},\n \"STOPPED_SPEED_THRESHOLD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"stopped speed threshold\"])}\n },\n \"SUCCESSFUL_EMAIL_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Your account has been updated successfully. Please check your email to confirm your new email address.\"])},\n \"SUCCESSFUL_REGISTRATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Your account has been created successfully.\"])},\n \"SUCCESSFUL_REGISTRATION_WITH_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"A link to activate your account has been emailed to the address provided.\"])},\n \"SUCCESSFUL_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Your account has been updated successfully.\"])},\n \"UNITS\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Units for distance\"])},\n \"IMPERIAL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Imperial system (ft, mi)\"])},\n \"METRIC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Metric system (m, km)\"])}\n },\n \"TIMEZONE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Timezone\"])}\n },\n \"REGISTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Register\"])},\n \"RESENT_ACCOUNT_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Resend account confirmation email\"])},\n \"REGISTER_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Sorry, registration is disabled.\"])},\n \"RESET_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Reset your password\"])},\n \"SHOW_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"show password\"])},\n \"THIS_USER_ACCOUNT_IS_INACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"This user account is inactive.\"])},\n \"USER_PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"user picture\"])},\n \"USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Username\"])},\n \"USERNAME_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"3 to 30 characters required, only alphanumeric characters and the underscore character \\\"_\\\" allowed.\"])}\n}","export default {\n \"ADD_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Add a workout\"])},\n \"ANALYSIS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"analysis\"])},\n \"ASCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ascent\"])},\n \"AVE_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ave. speed\"])},\n \"AVERAGE_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"average speed\"])},\n \"BACK_TO_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"back to workout\"])},\n \"DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"date\"])},\n \"DESCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"descent\"])},\n \"DISPLAY_FILTERS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"display filters\"])},\n \"DISTANCE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"distance\"])},\n \"DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"duration\"])},\n \"EDIT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Edit the workout\"])},\n \"ELEVATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"elevation\"])},\n \"END\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"end\"])},\n \"FROM\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"from\"])},\n \"GPX_FILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\".gpx file\"])},\n \"HIDE_FILTERS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"hide filters\"])},\n \"INVALID_DISTANCE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The distance must be greater than 0\"])},\n \"INVALID_DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"The duration must be greater than 0 seconds\"])},\n \"LATEST_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Latest workouts\"])},\n \"LOAD_MORE_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Load more workouts\"])},\n \"MAX_ALTITUDE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"max. altitude\"])},\n \"MAX_FILES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"max files\"])},\n \"MAX_SIZE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"max size\"])},\n \"MAX_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"max. speed\"])},\n \"MIN_ALTITUDE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"min. altitude\"])},\n \"NEXT_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No next segment\"])},\n \"NEXT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Next workout\"])},\n \"NO_DATA_CLEANING\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"data from gpx, without any cleaning\"])},\n \"NO_FILE_PROVIDED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No file provided\"])},\n \"NO_FOLDER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"no folder inside\"])},\n \"NO_MAP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No map\"])},\n \"NO_NEXT_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No next segment\"])},\n \"NO_NEXT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No next workout\"])},\n \"NO_NOTES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No notes\"])},\n \"NO_PREVIOUS_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No previous segment\"])},\n \"NO_PREVIOUS_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No previous workout\"])},\n \"NO_RECORDS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No records.\"])},\n \"NO_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"No workouts.\"])},\n \"NOTES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"notes\"])},\n \"PAUSES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"pauses\"])},\n \"PREVIOUS_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Previous segment\"])},\n \"PREVIOUS_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Previous workout\"])},\n \"RECORD\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"record\"]), _normalize([\"records\"])])},\n \"RECORD_AS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ave. speed\"])},\n \"RECORD_FD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Farthest distance\"])},\n \"RECORD_HA\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Highest ascent\"])},\n \"RECORD_LD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Longest duration\"])},\n \"RECORD_MS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Max. speed\"])},\n \"REMAINING_CHARS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"remaining characters\"])},\n \"SEGMENT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"segment\"]), _normalize([\"segments\"])])},\n \"SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"speed\"])},\n \"SPORT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"sport\"]), _normalize([\"sports\"])])},\n \"START\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"start\"])},\n \"START_AND_FINISH\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Start and finish\"])},\n \"START_ELEVATION_AT_ZERO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"start elevation axis at zero\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"title\"])},\n \"TO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"to\"])},\n \"TOTAL_DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"total duration\"])},\n \"UPLOAD_FIRST_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Upload one!\"])},\n \"WEATHER\": {\n \"HUMIDITY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"humidity\"])},\n \"TEMPERATURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"temperature\"])},\n \"WIND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"wind\"])},\n \"WIND_DIRECTIONS\": {\n \"N\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"N\"])},\n \"NNE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NNE\"])},\n \"NE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NE\"])},\n \"ENE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ENE\"])},\n \"E\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"E\"])},\n \"ESE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ESE\"])},\n \"SE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SE\"])},\n \"SSE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SSE\"])},\n \"S\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"S\"])},\n \"SSW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SSW\"])},\n \"SW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SW\"])},\n \"WSW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"WSW\"])},\n \"W\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"W\"])},\n \"WNW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"WNW\"])},\n \"NW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NW\"])},\n \"NNW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NNW\"])}\n },\n \"DARK_SKY\": {\n \"clear-day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"clear day\"])},\n \"clear-night\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"clear night\"])},\n \"cloudy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"cloudy\"])},\n \"fog\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"fog\"])},\n \"partly-cloudy-day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"partly cloudy day\"])},\n \"partly-cloudy-night\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"partly cloudy night\"])},\n \"rain\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"rain\"])},\n \"sleet\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sleet\"])},\n \"snow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"snow\"])},\n \"wind\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"wind\"])}\n }\n },\n \"WITH_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"with .gpx file\"])},\n \"WITHOUT_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"without .gpx file\"])},\n \"WORKOUT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"workout\"]), _normalize([\"workouts\"])])},\n \"WORKOUT_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"workout date\"])},\n \"WORKOUT_DELETION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Are you sure you want to delete this workout?\"])},\n \"ZIP_ARCHIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\".zip file\"])},\n \"ZIP_ARCHIVE_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"or .zip file containing .gpx files\"])}\n}","import AboutTranslations from './about.json'\nimport AdministrationTranslations from './administration.json'\nimport ApiTranslations from './api.json'\nimport ButtonsTranslations from './buttons.json'\nimport CommonTranslations from './common.json'\nimport DashboardTranslations from './dashboard.json'\nimport ErrorTranslations from './error.json'\nimport OAuth2Translations from './oauth2.json'\nimport SportsTranslations from './sports.json'\nimport StatisticsTranslations from './statistics.json'\nimport UserTranslations from './user.json'\nimport WorkoutsTranslations from './workouts.json'\n\nexport default {\n about: AboutTranslations,\n admin: AdministrationTranslations,\n api: ApiTranslations,\n buttons: ButtonsTranslations,\n common: CommonTranslations,\n dashboard: DashboardTranslations,\n error: ErrorTranslations,\n oauth2: OAuth2Translations,\n sports: SportsTranslations,\n statistics: StatisticsTranslations,\n user: UserTranslations,\n workouts: WorkoutsTranslations,\n}\n","export default {\n \"CONTACT_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Contacter l'administrateur\"])},\n \"FITTRACKEE_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"FitTrackee est un tracker d'activités sportives (en extérieur).\"])},\n \"FITTRACKEE_LICENSE\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"sous licence \", _interpolate(_list(0)), \" (en) \"])},\n \"SOURCE_CODE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Code source (en)\"])}\n}","export default {\n \"ACTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Action\"])},\n \"ACTIVATE_USER_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Activer le compte\"])},\n \"ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Actif\"])},\n \"ADMIN_RIGHTS_DELETE_USER_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ajouter/retirer des droits d'administration, supprimer des comptes utilisateurs.\"])},\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Admin\"])},\n \"ADMINISTRATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Administration\"])},\n \"APPLICATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Application\"])},\n \"APP_CONFIG\": {\n \"ADMIN_CONTACT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Email de l'administrateur pour contact \"])},\n \"MAX_USERS_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nombre maximum d'utilisateurs actifs \"])},\n \"MAX_USERS_HELP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Si égal à 0, pas limite d'inscription\"])},\n \"MAX_FILES_IN_ZIP_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nombre max. de fichiers dans une archive zip \"])},\n \"NO_CONTACT_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"non renseigné\"])},\n \"SINGLE_UPLOAD_MAX_SIZE_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Taille max. des fichiers (en Mo) \"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Configuration de l'application\"])},\n \"ZIP_UPLOAD_MAX_SIZE_LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Taille max. des archives zip (en Mo) \"])}\n },\n \"BACK_TO_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Revenir à l'admin\"])},\n \"CONFIRM_USER_ACCOUNT_DELETION\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Êtes-vous sûr de vouloir supprimer le compte de l'utilisateur \", _interpolate(_list(0)), \" ? Toutes les données seront définitivement.\"])},\n \"CONFIRM_USER_PASSWORD_RESET\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Êtes-vous sûr de vouloir réinitialiser le mot de passe de l'utilisateur \", _interpolate(_list(0)), \" ?\"])},\n \"CURRENT_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Adresse email actuelle\"])},\n \"DELETE_USER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Supprimer l'utilisateur\"])},\n \"EMAIL_SENDING_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"L'envoi d'emails est désactivé.\"])},\n \"ENABLE_DISABLE_SPORTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Activer/désactiver des sports.\"])},\n \"NEW_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nouvelle adresse email\"])},\n \"PASSWORD_RESET_SUCCESSFUL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Le mot de passe a été réinitialisé.\"])},\n \"REGISTRATION_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Les inscriptions sont actuellement désactivées.\"])},\n \"REGISTRATION_ENABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Les inscriptions sont actuellement activées.\"])},\n \"RESET_USER_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Réinit. le mot de passe\"])},\n \"SPORTS\": {\n \"TABLE\": {\n \"ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Actif\"])},\n \"HAS_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"des séances existent\"])},\n \"IMAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Image\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Label\"])}\n },\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Administration - Sports\"])}\n },\n \"UPDATE_APPLICATION_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Configurer l'application (nombre maximum d'utilisateurs inscrits, taille maximale des fichers).\"])},\n \"UPDATE_USER_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Changer l'email\"])},\n \"USER\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"utilisateur\"]), _normalize([\"utilisateurs\"])])},\n \"USER_EMAIL_UPDATE_SUCCESSFUL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"L'adresse email a été mise à jour.\"])},\n \"USERS\": {\n \"TABLE\": {\n \"ADD_ADMIN_RIGHTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ajouter les droits d'admin\"])},\n \"REMOVE_ADMIN_RIGHTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Retirer les droits d'admin\"])}\n },\n \"SELECTS\": {\n \"ORDER_BY\": {\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"status administrateur\"])},\n \"CREATED_AT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"date d'inscription\"])},\n \"IS_ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"statut du compte\"])},\n \"USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nom d'utilisateur\"])},\n \"WORKOUTS_COUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nombre de séances\"])}\n }\n }\n }\n}","export default {\n \"ERROR\": {\n \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur. Veuillez réessayer ou contacter l'administrateur.\"])},\n \"at least one file in zip archive exceeds size limit, please check the archive\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Au moins un fichier de l'archive zip dépasse la taille maximale, veuillez vérifier l'archive.\"])},\n \"email: valid email must be provided\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Courriel : une adresse électronique valide doit être fournie.\"])},\n \"error during gpx processing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur lors du traitement du fichier gpx.\"])},\n \"error during gpx file parsing\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur lors de l'analyse du fichier.\"])},\n \"error on getting configuration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur lors de la récupération de la configuration.\"])},\n \"error when updating configuration\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur lors de la mise à jour de la configuration\"])},\n \"error, please try again or contact the administrator\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur, veuillez réessayer ou contacter l'administrateur.\"])},\n \"error, registration is disabled\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur, les inscriptions sont désactivées.\"])},\n \"file extension not allowed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Extension de fichier non autorisée.\"])},\n \"file size is greater than the allowed size\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"La taille du fichier est supérieure à la limite autorisée.\"])},\n \"invalid credentials\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Identifiants invalides.\"])},\n \"invalid payload\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Données fournies incorrectes.\"])},\n \"invalid token, please log in again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Jeton de connexion invalide, merci de vous reconnecter.\"])},\n \"invalid token, please request a new token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Jeton de connexion, merci de vous reconnecter.\"])},\n \"no file part\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de fichier fourni.\"])},\n \"no selected file\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de fichier sélectionné.\"])},\n \"Network Error\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur réseau.\"])},\n \"new email must be different than curent email\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"La nouvelle addresse électronique doit être differente de l'adresse actuelle\"])},\n \"password: password and password confirmation do not match\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mot de passe : les mots de passe saisis sont différents.\"])},\n \"provide a valid auth token\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Merci de fournir un jeton de connexion valide.\"])},\n \"sport does not exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ce sport n'existe pas.\"])},\n \"signature expired, please log in again\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Signature expirée. Merci de vous reconnecter.\"])},\n \"sorry, that username is already taken\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Désolé, ce nom d'utilisateur est déjà utilisé.\"])},\n \"successfully registered\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Inscription validée.\"])},\n \"the number of files in the archive exceeds the limit\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Le nombre de fichiers de l'archive dépasse la limite.\"])},\n \"user does not exist\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"L'utilisateur n'existe pas.\"])},\n \"valid email must be provided for admin contact\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Une adresse électronique doit être fournie pour le contact de l'administrateur\"])},\n \"you can not delete your account, no other user has admin rights\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vous ne pouvez pas supprimer votre compte, aucun autre utilisateur n'a des droits d'administration.\"])},\n \"you do not have permissions\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vous n'avez pas les permissions nécessaires.\"])}\n },\n \"PAGINATION\": {\n \"PREVIOUS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"précédent\"])},\n \"NEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"suivant\"])}\n }\n}","export default {\n \"ACCOUNT-CONFIRMATION-RESEND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Renvoyer le message de confirmation\"])},\n \"AUTHORIZE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Autoriser\"])},\n \"BACK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Retour\"])},\n \"CANCEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Annuler\"])},\n \"CLEAR_FILTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Réinitialiser\"])},\n \"DELETE_MY_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Supprimer mon compte\"])},\n \"DISABLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Désactiver\"])},\n \"EDIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Modifier\"])},\n \"ENABLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Activer\"])},\n \"FILTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filtrer\"])},\n \"LOGIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Se connecter\"])},\n \"NO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Non\"])},\n \"REGISTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"S'inscrire\"])},\n \"RESET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Réinit.\"])},\n \"SUBMIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Valider\"])},\n \"YES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Oui\"])}\n}","export default {\n \"ABOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"à propos\"])},\n \"CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Confirmation\"])},\n \"CONTACT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"contact\"])},\n \"DAY\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"jour\"]), _normalize([\"jours\"])])},\n \"DISPLAYED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Affiché\"])},\n \"DOCUMENTATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"documentation (en)\"])},\n \"HERE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ici\"])},\n \"HIDDEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Masqué\"])},\n \"HOME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Accueil\"])},\n \"SELECTS\": {\n \"ORDER_BY\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"trier par \"])}\n },\n \"ORDER\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"tri\"])},\n \"ASC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ascendant\"])},\n \"DESC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"descendant\"])}\n },\n \"PER_PAGE\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"par page\"])}\n }\n },\n \"TOTAL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Total\"])}\n}","export default {\n \"DASHBOARD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tableau de bord\"])},\n \"THIS_MONTH\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ce mois-ci\"])}\n}","export default {\n \"UNKNOWN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Erreur. Veuillez réessayer ou contacter l'administrateur.\"])},\n \"APP_ERROR\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"L'application semble rencontrer quelques problèmes.
Veuillez réessayer plus tard ou contacter l'administrateur.\"])},\n \"NOT_FOUND\": {\n \"PAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Page introuvable\"])},\n \"WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Séance introuvable\"])}\n },\n \"SOMETHING_WRONG\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Une erreur s'est produite\"])}\n}","export default {\n \"ADD_A_NEW_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ajouter une nouvelle application OAuth2\"])},\n \"APP\": {\n \"CLIENT_ID\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Identifiant\"])},\n \"CLIENT_SECRET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Secret\"])},\n \"DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Description de l'application\"])},\n \"ISSUE_AT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Créée le\"])},\n \"NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nom de l'application\"])},\n \"REDIRECT_URL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"URL de redirection\"])},\n \"SCOPE\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Scope\"])},\n \"application:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"donne les droits en écriture à la configuration de l'application.\"])},\n \"profile:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"donne les droits en lecture aux routes auth.\"])},\n \"profile:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"donne les droits en écriture aux routes auth.\"])},\n \"users:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"donne les droits en lecture aux routes users.\"])},\n \"users:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"donne les droits en écriture aux routes users.\"])},\n \"workouts:read_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"donne les droits en lecture aux routes workouts.\"])},\n \"workouts:write_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"donne les droits en écriture aux routes workouts.\"])}\n },\n \"URL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"URL de l'application\"])}\n },\n \"APP_CREATED_SUCCESSFULLY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Application créée avec succès. Assurez-vous de copier le secret maintenant, il ne s'affichera plus.\"])},\n \"APP_DELETION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Êtes-vous sûr de vouloir supprimer cette application ?\"])},\n \"APP_REQUESTING_ACCESS\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"L'application \", _interpolate(_list(0)), \" demande les accès suivants :\"])},\n \"APPS_LIST\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Applications OAuth2\"])},\n \"AUTHORIZE_APP\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Autoriser \", _interpolate(_list(0)), \" à utiliser votre compte ?\"])},\n \"COPY_TO_CLIPBOARD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"copier dans le presse papier\"])},\n \"DELETE_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Supprimer l'application\"])},\n \"NEW_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ajouter une application\"])},\n \"NO_APP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Application introuvable !\"])},\n \"NO_APPS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"pas de applications\"])},\n \"NO_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"pas de description\"])},\n \"REVOKE_ALL_TOKENS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Révoquer tous les jetons\"])},\n \"TOKENS_REVOCATION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Êtes-vous sûr de vouloir révoquer tous les jetons ?\"])},\n \"TOKENS_REVOKED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Tous les jetons associés existants ont été révoqués.\"])}\n}","export default {\n \"Cycling (Sport)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vélo (Sport)\"])}\n },\n \"Cycling (Transport)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vélo (Transport)\"])}\n },\n \"Cycling (Virtual)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vélo (Virtuel)\"])}\n },\n \"Hiking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Randonnée\"])}\n },\n \"Mountain Biking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"VTT\"])}\n },\n \"Mountain Biking (Electric)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"VTT (Électrique)\"])}\n },\n \"Rowing\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aviron\"])}\n },\n \"Running\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Course\"])}\n },\n \"Skiing (Alpine)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ski (Alpin)\"])}\n },\n \"Skiing (Cross Country)\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ski (Randonnée)\"])}\n },\n \"Snowshoes\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Raquettes\"])}\n },\n \"Trail\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Trail\"])}\n },\n \"Walking\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Marche\"])}\n }\n}","export default {\n \"STATISTICS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Statistiques\"])},\n \"TIME_FRAMES\": {\n \"week\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"semaine\"])},\n \"month\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"mois\"])},\n \"year\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"année\"])}\n }\n}","export default {\n \"ACCOUNT_CONFIRMATION_NOT_RECEIVED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vous n'avez pas reçu les instructions ?\"])},\n \"ACCOUNT_CONFIRMATION_SENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vérifiez vos courriels. Un nouveau courriel de confirmation a été envoyé à l'adresse électronique fournie.\"])},\n \"ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Admin\"])},\n \"ALREADY_HAVE_ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vous avez déjà un compte ?\"])},\n \"CONFIRM_ACCOUNT_DELETION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Êtes-vous sûr·e de vouloir supprimer votre compte ? Toutes les données seront définitivement effacés\"])},\n \"CURRENT_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mot de passe actuel\"])},\n \"EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Courriel\"])},\n \"EMAIL_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Saisissez une adresse électronique valide.\"])},\n \"ENTER_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Saisissez un mot de passe\"])},\n \"FILTER_ON_USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Filtrer sur le nom d'utilisateur\"])},\n \"HIDE_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"masquer le mot de passe\"])},\n \"INVALID_TOKEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Jeton invalide, veuillez demander une nouvelle réinitialisation de mot de passe.\"])},\n \"LANGUAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Langue\"])},\n \"LOG_IN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"connecter\"])},\n \"LOGIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Se connecter\"])},\n \"LOGOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Se déconnecter\"])},\n \"NEW_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nouveau mot de passe\"])},\n \"NO_USERS_FOUND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Aucun utilisateur trouvé.\"])},\n \"PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mot de passe\"])},\n \"PASSWORD_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"8 caractères minimum.\"])},\n \"PASSWORD_FORGOTTEN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mot de passe oublié ?\"])},\n \"PASSWORD_RESET\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Réinitialisation du mot de passe\"])},\n \"PASSWORD_SENT_EMAIL_TEXT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vérifiez vos courriels. Si vote adresse est dans notre base de données, vous recevrez un courriel avec un lien pour réinitialiser votre mot de passe.\"])},\n \"PASSWORD_STRENGTH\": {\n \"WEAK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"faible\"])},\n \"AVERAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"moyenne\"])},\n \"GOOD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"bonne\"])},\n \"STRONG\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"forte\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"robustesse du mot de passe\"])},\n \"SUGGESTIONS\": {\n \"l33t\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Évitez les substitutions de lettres prévisibles comme \", \"@\", \" pour a.\"])},\n \"reverseWords\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Évitez les orthographes inversées des mots courants.\"])},\n \"allUppercase\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mettez quelques lettres en majuscules, mais pas toutes.\"])},\n \"capitalization\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Capitalisez mais pas seulement la première lettre.\"])},\n \"dates\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Évitez les dates et les années qui vous sont associées. (ex : date ou année de naissance).\"])},\n \"recentYears\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Évitez les dernières années.\"])},\n \"associatedYears\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Évitez les années qui vous sont associées. (ex : date de naissance).\"])},\n \"sequences\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Évitez les séquences de caractères courantes.\"])},\n \"repeated\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Évitez les mots et les caractères répétés.\"])},\n \"longerKeyboardPattern\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Utilisez des motifs de clavier plus longs et changez de sens de frappe plusieurs fois.\"])},\n \"anotherWord\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ajoutez des mots moins courants.\"])},\n \"useWords\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Utilisez plusieurs mots, mais évitez les phrases courantes.\"])},\n \"noNeed\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vous pouvez créer des mots de passe forts sans utiliser de symboles, de chiffres ou de lettres majuscules.\"])},\n \"pwned\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Si vous utilisez ce mot de passe ailleurs, vous devriez le modifier.\"])}\n }\n },\n \"PASSWORD_UPDATED\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Votre mot de passe a été mis à jour. Cliquez \", _interpolate(_list(0)), \" pour vous connecter.\"])},\n \"PROFILE\": {\n \"ACCOUNT_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mise à jour du compte\"])},\n \"ASCENT_DATA\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Données relatives au dénivelé positif (records, total)\"])},\n \"BACK_TO_PROFILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Revenir au profil\"])},\n \"BIO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Bio\"])},\n \"BIRTH_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Date de naissance\"])},\n \"DATE_FORMAT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Format d'affichage de la date\"])},\n \"EDIT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Modifier le profil\"])},\n \"EDIT_PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Modifier les préférences\"])},\n \"EDIT_SPORTS_PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Modifier les préférences des sports\"])},\n \"ERRORED_EMAIL_UPDATE\": (ctx) => {const { normalize: _normalize, interpolate: _interpolate, list: _list } = ctx;return _normalize([\"Veuillez vous \", _interpolate(_list(0)), \" pour changer de nouveau votre adresse électronique ou contacter l'administrateur\"])},\n \"FIRST_DAY_OF_WEEK\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Premier jour de la semaine\"])},\n \"FIRST_NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Prénom\"])},\n \"LANGUAGE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Langue\"])},\n \"LAST_NAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nom\"])},\n \"LOCATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Lieu\"])},\n \"MONDAY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Lundi\"])},\n \"PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Image de profil\"])},\n \"PICTURE_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mise à jour de l'image de profil\"])},\n \"PICTURE_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mettre à jour l'image\"])},\n \"PICTURE_REMOVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Supprimer\"])},\n \"PREFERENCES_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mise à jour des préférences\"])},\n \"PROFILE_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mise à jour du profil\"])},\n \"REGISTRATION_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Date d'inscription\"])},\n \"SPORTS_EDITION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Mise à jour des préférences des sports\"])},\n \"SUNDAY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dimanche\"])},\n \"TABS\": {\n \"ACCOUNT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"compte\"])},\n \"APPS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"apps\"])},\n \"PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"image\"])},\n \"PREFERENCES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"préférences\"])},\n \"PROFILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"profil\"])},\n \"SPORTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sports\"])}\n },\n \"UNITS\": {\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Unités pour les distances\"])},\n \"IMPERIAL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Système impérial (ft, mi)\"])},\n \"METRIC\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Système métrique (m, km)\"])}\n },\n \"SPORT\": {\n \"ACTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"action\"])},\n \"COLOR\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"couleur\"])},\n \"DISABLED_BY_ADMIN\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"désactivé par l'administrateur\"])},\n \"IS_ACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"actif\"])},\n \"LABEL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"label\"])},\n \"STOPPED_SPEED_THRESHOLD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"seuil de vitesse arrêtée\"])}\n },\n \"SUCCESSFUL_EMAIL_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Votre compte a été modifié avec succès. Veuillez vérifier votre boîte de réception pour valider votre nouvelle adresse électronique.\"])},\n \"SUCCESSFUL_REGISTRATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Votre compte a été créé avec succès.\"])},\n \"SUCCESSFUL_REGISTRATION_WITH_EMAIL\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Un lien pour activer votre compte a été envoyé à l'adresse électronique fournie.\"])},\n \"SUCCESSFUL_UPDATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Votre compte a été modifié avec succès.\"])},\n \"TIMEZONE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Fuseau horaire\"])}\n },\n \"REGISTER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"S'inscrire\"])},\n \"REGISTER_DISABLED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Désolé, les inscriptions sont désactivées.\"])},\n \"RESENT_ACCOUNT_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Envoyer à nouveau le courriel de confirmation de compte\"])},\n \"RESET_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Réinitialiser votre mot de passe\"])},\n \"SHOW_PASSWORD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"afficher le mot de passe\"])},\n \"THIS_USER_ACCOUNT_IS_INACTIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Le compte de cet utilisateur est inactif.\"])},\n \"USER_PICTURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"photo de l'utilisateur\"])},\n \"USERNAME\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Nom d'utilisateur\"])},\n \"USERNAME_INFO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"3 à 30 caractères requis, seuls les caractères alphanumériques et le caractère _ sont autorisés.\"])}\n}","export default {\n \"ADD_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ajouter une séance\"])},\n \"ANALYSIS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"analyse\"])},\n \"ASCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"dénivelé positif\"])},\n \"AVERAGE_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vitesse moyenne\"])},\n \"AVE_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vitesse moy.\"])},\n \"BACK_TO_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"revenir à la séance\"])},\n \"DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"date\"])},\n \"DESCENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"dénivelé négatif\"])},\n \"DISPLAY_FILTERS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"afficher les filtres\"])},\n \"DISTANCE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"distance\"])},\n \"DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"durée\"])},\n \"EDIT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Modifier la séance\"])},\n \"ELEVATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"altitude\"])},\n \"END\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"fin\"])},\n \"FROM\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"à partir de\"])},\n \"GPX_FILE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"fichier .gpx\"])},\n \"HIDE_FILTERS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"masquer les filtres\"])},\n \"INVALID_DISTANCE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"La distance doit être supérieure à 0\"])},\n \"INVALID_DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"La durée doit être supérieure à 0 secondes\"])},\n \"LATEST_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Séances récentes\"])},\n \"LOAD_MORE_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Charger les séances suivantes\"])},\n \"MAX_ALTITUDE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"altitude max\"])},\n \"MAX_FILES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"fichiers max. \"])},\n \"MAX_SIZE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"taille max. \"])},\n \"MAX_SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vitesse max\"])},\n \"MIN_ALTITUDE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"altitude min\"])},\n \"NEXT_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Segment suivant\"])},\n \"NEXT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Séance suivante\"])},\n \"NO_DATA_CLEANING\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"données issues du fichier gpx, sans correction\"])},\n \"NO_FILE_PROVIDED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de fichier fourni\"])},\n \"NO_FOLDER\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"pas de répertoire\"])},\n \"NO_MAP\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de carte\"])},\n \"NO_NEXT_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de segment suivant\"])},\n \"NO_NEXT_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de séance suivante\"])},\n \"NO_NOTES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de notes\"])},\n \"NO_PREVIOUS_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de segment précédent\"])},\n \"NO_PREVIOUS_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de séance précédente\"])},\n \"NO_RECORDS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de records.\"])},\n \"NO_WORKOUTS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Pas de séances.\"])},\n \"NOTES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"notes\"])},\n \"PAUSES\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"pauses\"])},\n \"PREVIOUS_SEGMENT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Segment précédent\"])},\n \"PREVIOUS_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Séance précédente\"])},\n \"RECORD\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"record\"]), _normalize([\"records\"])])},\n \"RECORD_AS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vitesse moy.\"])},\n \"RECORD_FD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Distance la + longue\"])},\n \"RECORD_HA\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Dénivelé positif le + élevé\"])},\n \"RECORD_LD\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Durée la + longue\"])},\n \"RECORD_MS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Vitesse max.\"])},\n \"REMAINING_CHARS\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nombre de caractères restants \"])},\n \"SEGMENT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"segment\"]), _normalize([\"segments\"])])},\n \"SPEED\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vitesse\"])},\n \"SPORT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"sport\"]), _normalize([\"sports\"])])},\n \"START\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"début\"])},\n \"START_AND_FINISH\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Départ et arrivée\"])},\n \"START_ELEVATION_AT_ZERO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"démarrer l'axe de l'altitude à 0\"])},\n \"TITLE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"titre\"])},\n \"TO\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"jusqu'au\"])},\n \"TOTAL_DURATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"durée totale\"])},\n \"UPLOAD_FIRST_WORKOUT\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Ajoutez votre première séance !\"])},\n \"WEATHER\": {\n \"HUMIDITY\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"humidité\"])},\n \"TEMPERATURE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"température\"])},\n \"WIND\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"vent\"])},\n \"WIND_DIRECTIONS\": {\n \"N\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"N\"])},\n \"NNE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NNE\"])},\n \"NE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NE\"])},\n \"ENE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ENE\"])},\n \"E\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"E\"])},\n \"ESE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ESE\"])},\n \"SE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SE\"])},\n \"SSE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SSE\"])},\n \"S\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"S\"])},\n \"SSW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SSO\"])},\n \"SW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"SO\"])},\n \"WSW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"OSO\"])},\n \"W\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"O\"])},\n \"WNW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ONO\"])},\n \"NW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NO\"])},\n \"NNW\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"NNO\"])}\n },\n \"DARK_SKY\": {\n \"clear-day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ensoleillé\"])},\n \"clear-night\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nuit claire\"])},\n \"cloudy\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nuageux\"])},\n \"fog\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"brouillard\"])},\n \"partly-cloudy-day\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"partiellement nuageux\"])},\n \"partly-cloudy-night\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"nuit partiellement nuageuse\"])},\n \"rain\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"pluie\"])},\n \"sleet\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"neige fondue\"])},\n \"snow\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"neige\"])},\n \"wind\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"venteux\"])}\n }\n },\n \"WITH_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"avec un fichier .gpx\"])},\n \"WITHOUT_GPX\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"sans fichier .gpx\"])},\n \"WORKOUT\": (ctx) => {const { normalize: _normalize, plural: _plural } = ctx;return _plural([_normalize([\"séance\"]), _normalize([\"séances\"])])},\n \"WORKOUT_DATE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"date de la séance\"])},\n \"WORKOUT_DELETION_CONFIRMATION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"Etes-vous sûr de vouloir supprimer cette séance ?\"])},\n \"ZIP_ARCHIVE\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"archive .zip\"])},\n \"ZIP_ARCHIVE_DESCRIPTION\": (ctx) => {const { normalize: _normalize } = ctx;return _normalize([\"ou une archive .zip contenant des fichiers .gpx\"])}\n}","import AboutTranslations from './about.json'\nimport AdministrationTranslations from './administration.json'\nimport ApiTranslations from './api.json'\nimport ButtonsTranslations from './buttons.json'\nimport CommonTranslations from './common.json'\nimport DashboardTranslations from './dashboard.json'\nimport ErrorTranslations from './error.json'\nimport OAuth2Translations from './oauth2.json'\nimport SportsTranslations from './sports.json'\nimport StatisticsTranslations from './statistics.json'\nimport UserTranslations from './user.json'\nimport WorkoutsTranslations from './workouts.json'\n\nexport default {\n about: AboutTranslations,\n admin: AdministrationTranslations,\n api: ApiTranslations,\n buttons: ButtonsTranslations,\n common: CommonTranslations,\n dashboard: DashboardTranslations,\n error: ErrorTranslations,\n oauth2: OAuth2Translations,\n sports: SportsTranslations,\n statistics: StatisticsTranslations,\n user: UserTranslations,\n workouts: WorkoutsTranslations,\n}\n","export default {\n \n}","export default {\n \n}","export default {\n \n}","export default {\n \n}","export default {\n \n}","export default {\n \n}","export default {\n \n}","export default {\n \n}","export default {\n \n}","export default {\n \n}","export default {\n \n}","export default {\n \n}","import AboutTranslations from './about.json'\nimport AdministrationTranslations from './administration.json'\nimport ApiTranslations from './api.json'\nimport ButtonsTranslations from './buttons.json'\nimport CommonTranslations from './common.json'\nimport DashboardTranslations from './dashboard.json'\nimport ErrorTranslations from './error.json'\nimport OAuth2Translations from './oauth2.json'\nimport SportsTranslations from './sports.json'\nimport StatisticsTranslations from './statistics.json'\nimport UserTranslations from './user.json'\nimport WorkoutsTranslations from './workouts.json'\n\nexport default {\n about: AboutTranslations,\n admin: AdministrationTranslations,\n api: ApiTranslations,\n buttons: ButtonsTranslations,\n common: CommonTranslations,\n dashboard: DashboardTranslations,\n error: ErrorTranslations,\n oauth2: OAuth2Translations,\n sports: SportsTranslations,\n statistics: StatisticsTranslations,\n user: UserTranslations,\n workouts: WorkoutsTranslations,\n}\n","export default {\n \n}","export default {\n \n}","export default {\n \n}","export default {\n \n}","export default {\n \n}","export default {\n \n}","export default {\n \n}","export default {\n \n}","export default {\n \n}","export default {\n \n}","export default {\n \n}","export default {\n \n}","import AboutTranslations from './about.json'\nimport AdministrationTranslations from './administration.json'\nimport ApiTranslations from './api.json'\nimport ButtonsTranslations from './buttons.json'\nimport CommonTranslations from './common.json'\nimport DashboardTranslations from './dashboard.json'\nimport ErrorTranslations from './error.json'\nimport OAuth2Translations from './oauth2.json'\nimport SportsTranslations from './sports.json'\nimport StatisticsTranslations from './statistics.json'\nimport UserTranslations from './user.json'\nimport WorkoutsTranslations from './workouts.json'\n\nexport default {\n about: AboutTranslations,\n admin: AdministrationTranslations,\n api: ApiTranslations,\n buttons: ButtonsTranslations,\n common: CommonTranslations,\n dashboard: DashboardTranslations,\n error: ErrorTranslations,\n oauth2: OAuth2Translations,\n sports: SportsTranslations,\n statistics: StatisticsTranslations,\n user: UserTranslations,\n workouts: WorkoutsTranslations,\n}\n","/* eslint-disable no-console */\n\nimport { register } from 'register-service-worker'\n\nif (process.env.NODE_ENV === 'production') {\n register(`${process.env.BASE_URL}service-worker.js`, {\n ready() {\n console.log(\n 'App is being served from cache by a service worker.\\n' +\n 'For more details, visit https://goo.gl/AFskqB'\n )\n },\n registered() {\n console.log('Service worker has been registered.')\n },\n cached() {\n console.log('Content has been cached for offline use.')\n },\n updatefound() {\n console.log('New content is downloading.')\n },\n updated() {\n console.log('New content is available; please refresh.')\n },\n offline() {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n )\n },\n error(error) {\n console.error('Error during service worker registration:', error)\n },\n })\n}\n","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, unref as _unref, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-2c73279e\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"footer\" }\nconst _hoisted_2 = { class: \"footer-items\" }\nconst _hoisted_3 = { class: \"footer-item\" }\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"strong\", null, \"FitTrackee\", -1))\nconst _hoisted_5 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"footer-item bullet\" }, \"•\", -1))\nconst _hoisted_6 = { class: \"footer-item\" }\nconst _hoisted_7 = {\n key: 0,\n class: \"footer-item bullet\"\n}\nconst _hoisted_8 = {\n key: 1,\n class: \"footer-item\"\n}\nconst _hoisted_9 = [\"href\"]\nconst _hoisted_10 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"footer-item bullet\" }, \"•\", -1))\nconst _hoisted_11 = { class: \"footer-item\" }\nconst _hoisted_12 = {\n href: \"https://samr1.github.io/FitTrackee/\",\n target: \"_blank\",\n rel: \"noopener noreferrer\"\n}\n\nimport { toRefs } from 'vue'\n\n interface Props {\n version: string\n adminContact?: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'Footer',\n props: {\n version: null,\n adminContact: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n version: string\n adminContact?: string\n };\n\n \n\n const { adminContact, version } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_link = _resolveComponent(\"router-link\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _hoisted_4,\n _createTextVNode(\" v\" + _toDisplayString(_unref(version)), 1)\n ]),\n _hoisted_5,\n _createElementVNode(\"div\", _hoisted_6, [\n _createVNode(_component_router_link, { to: \"/about\" }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('common.ABOUT')), 1)\n ]),\n _: 1\n })\n ]),\n (_unref(adminContact))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_7, \"•\"))\n : _createCommentVNode(\"\", true),\n (_unref(adminContact))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_8, [\n _createElementVNode(\"a\", {\n href: `mailto:${_unref(adminContact)}`\n }, _toDisplayString(_ctx.$t('common.CONTACT')), 9, _hoisted_9)\n ]))\n : _createCommentVNode(\"\", true),\n _hoisted_10,\n _createElementVNode(\"div\", _hoisted_11, [\n _createElementVNode(\"a\", _hoisted_12, _toDisplayString(_ctx.$t('common.DOCUMENTATION')), 1)\n ])\n ])\n ]))\n}\n}\n\n})","import script from \"./Footer.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Footer.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Footer.vue?vue&type=style&index=0&id=2c73279e&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-2c73279e\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, unref as _unref, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-95c1cc02\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"nav\" }\nconst _hoisted_2 = { class: \"nav-container\" }\nconst _hoisted_3 = { class: \"nav-app-name\" }\nconst _hoisted_4 = { class: \"nav-items-close\" }\nconst _hoisted_5 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"app-name\" }, \"FitTrackee\", -1))\nconst _hoisted_6 = {\n key: 0,\n class: \"nav-items-group\"\n}\nconst _hoisted_7 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { class: \"nav-item nav-separator\" }, null, -1))\nconst _hoisted_8 = { class: \"nav-items-user-menu\" }\nconst _hoisted_9 = {\n key: 0,\n class: \"nav-items-group\"\n}\nconst _hoisted_10 = { class: \"nav-item nav-profile-img\" }\nconst _hoisted_11 = {\n key: 1,\n class: \"nav-items-group\"\n}\nconst _hoisted_12 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", { class: \"fa fa-language\" }, null, -1))\n\nimport { ComputedRef, computed, ref, capitalize } from 'vue'\n\n import UserPicture from '@/components/User/UserPicture.vue'\n import { AUTH_USER_STORE, ROOT_STORE } from '@/store/constants'\n import { IDropdownOption } from '@/types/forms'\n import { IAuthUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { availableLanguages } from '@/utils/locales'\n\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'NavBar',\n emits: ['menuInteraction'],\n setup(__props, { emit }) {\n\n \n\n const store = useStore()\n\n const authUser: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.AUTH_USER_PROFILE]\n )\n const isAuthenticated: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.IS_AUTHENTICATED]\n )\n const language: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.LANGUAGE]\n )\n const isMenuOpen = ref(false)\n\n function openMenu() {\n isMenuOpen.value = true\n emit('menuInteraction', true)\n }\n function closeMenu() {\n isMenuOpen.value = false\n emit('menuInteraction', false)\n }\n function updateLanguage(option: IDropdownOption) {\n store.dispatch(\n ROOT_STORE.ACTIONS.UPDATE_APPLICATION_LANGUAGE,\n option.value.toString()\n )\n }\n function logout() {\n store.dispatch(AUTH_USER_STORE.ACTIONS.LOGOUT)\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_Dropdown = _resolveComponent(\"Dropdown\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", {\n class: \"nav-item app-name\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$router.push('/')))\n }, \" FitTrackee \")\n ]),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"nav-icon-open\", { 'menu-open': isMenuOpen.value }])\n }, [\n _createElementVNode(\"i\", {\n class: \"fa fa-bars hamburger-icon\",\n onClick: _cache[1] || (_cache[1] = ($event: any) => (openMenu()))\n })\n ], 2),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"nav-items\", { 'menu-open': isMenuOpen.value }])\n }, [\n _createElementVNode(\"div\", _hoisted_4, [\n _hoisted_5,\n _createElementVNode(\"i\", {\n class: _normalizeClass([\"fa fa-close close-icon nav-item\", { 'menu-closed': !isMenuOpen.value }]),\n onClick: _cache[2] || (_cache[2] = ($event: any) => (closeMenu()))\n }, null, 2)\n ]),\n _createElementVNode(\"div\", {\n class: \"nav-items-app-menu\",\n onClick: _cache[3] || (_cache[3] = ($event: any) => (closeMenu()))\n }, [\n (_unref(isAuthenticated))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_6, [\n _createVNode(_component_router_link, {\n class: \"nav-item\",\n to: \"/\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('dashboard.DASHBOARD')), 1)\n ]),\n _: 1\n }),\n _createVNode(_component_router_link, {\n class: \"nav-item\",\n to: \"/workouts\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(capitalize(_ctx.$t('workouts.WORKOUT', 2))), 1)\n ]),\n _: 1\n }),\n _createVNode(_component_router_link, {\n class: \"nav-item\",\n to: \"/statistics\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('statistics.STATISTICS')), 1)\n ]),\n _: 1\n }),\n _createVNode(_component_router_link, {\n class: \"nav-item\",\n to: \"/workouts/add\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('workouts.ADD_WORKOUT')), 1)\n ]),\n _: 1\n }),\n (_unref(isAuthenticated) && _unref(authUser).admin)\n ? (_openBlock(), _createBlock(_component_router_link, {\n key: 0,\n class: \"nav-item\",\n to: \"/admin\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.ADMIN')), 1)\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true),\n _hoisted_7\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", _hoisted_8, [\n (_unref(isAuthenticated))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_9, [\n _createElementVNode(\"div\", _hoisted_10, [\n _createVNode(UserPicture, { user: _unref(authUser) }, null, 8, [\"user\"])\n ]),\n _createVNode(_component_router_link, {\n class: \"nav-item\",\n to: \"/profile\",\n onClick: closeMenu\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_unref(authUser).username), 1)\n ]),\n _: 1\n }),\n _createElementVNode(\"div\", {\n class: \"nav-item nav-link\",\n onClick: logout\n }, _toDisplayString(_ctx.$t('user.LOGOUT')), 1)\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_11, [\n _createVNode(_component_router_link, {\n class: \"nav-item\",\n to: \"/login\",\n onClick: closeMenu\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('user.LOGIN')), 1)\n ]),\n _: 1\n }),\n _createVNode(_component_router_link, {\n class: \"nav-item\",\n to: \"/register\",\n onClick: closeMenu\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('user.REGISTER')), 1)\n ]),\n _: 1\n })\n ])),\n (_unref(availableLanguages) && _unref(language))\n ? (_openBlock(), _createBlock(_component_Dropdown, {\n key: 2,\n class: \"nav-item\",\n options: _unref(availableLanguages),\n selected: _unref(language),\n onSelected: updateLanguage\n }, {\n default: _withCtx(() => [\n _hoisted_12\n ]),\n _: 1\n }, 8, [\"options\", \"selected\"]))\n : _createCommentVNode(\"\", true)\n ])\n ], 2)\n ])\n ]))\n}\n}\n\n})","import script from \"./NavBar.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./NavBar.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./NavBar.vue?vue&type=style&index=0&id=95c1cc02&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-95c1cc02\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createVNode as _createVNode, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-47759238\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"no-config\" }\nconst _hoisted_2 = { class: \"error-page\" }\nconst _hoisted_3 = { class: \"error-img\" }\nconst _hoisted_4 = [\"innerHTML\"]\n\nimport ErrorImg from '@/components/Common/Images/ErrorImg.vue'\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'NoConfig',\n setup(__props) {\n\n \nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createVNode(ErrorImg)\n ]),\n _createElementVNode(\"p\", {\n class: \"error-message\",\n innerHTML: _ctx.$t('error.APP_ERROR')\n }, null, 8, _hoisted_4)\n ])\n ]))\n}\n}\n\n})","import script from \"./NoConfig.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./NoConfig.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./NoConfig.vue?vue&type=style&index=0&id=47759238&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-47759238\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, createVNode as _createVNode, unref as _unref, resolveComponent as _resolveComponent, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createBlock as _createBlock, normalizeClass as _normalizeClass, Fragment as _Fragment } from \"vue\"\n\nconst _hoisted_1 = /*#__PURE__*/_createElementVNode(\"div\", { id: \"top\" }, null, -1)\nconst _hoisted_2 = {\n key: 0,\n class: \"app-container\"\n}\nconst _hoisted_3 = { class: \"app-loading\" }\nconst _hoisted_4 = { class: \"container scroll\" }\nconst _hoisted_5 = /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-chevron-up\",\n \"aria-hidden\": \"true\"\n}, null, -1)\nconst _hoisted_6 = [\n _hoisted_5\n]\n\nimport { ComputedRef, computed, ref, onBeforeMount, onMounted } from 'vue'\n\n import Footer from '@/components/Footer.vue'\n import NavBar from '@/components/NavBar.vue'\n import NoConfig from '@/components/NoConfig.vue'\n import { ROOT_STORE } from '@/store/constants'\n import { TAppConfig } from '@/types/application'\n import { useStore } from '@/use/useStore'\n import { localeFromLanguage } from '@/utils/locales'\n\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'App',\n setup(__props) {\n\n const store = useStore()\n\n const appConfig: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.APP_CONFIG]\n )\n const appLoading: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.APP_LOADING]\n )\n const hideScrollBar = ref(false)\n const displayScrollButton = ref(false)\n\n onBeforeMount(() => {\n initLanguage()\n store.dispatch(ROOT_STORE.ACTIONS.GET_APPLICATION_CONFIG)\n })\n onMounted(() => scroll())\n\n function updateHideScrollBar(isMenuOpen: boolean) {\n hideScrollBar.value = isMenuOpen\n }\n function isScrolledToBottom(element: Element): boolean {\n return (\n element.getBoundingClientRect().top < window.innerHeight &&\n element.getBoundingClientRect().bottom >= 0\n )\n }\n function scroll() {\n window.onscroll = () => {\n const bottom = document.querySelector('#bottom')\n displayScrollButton.value = bottom !== null && isScrolledToBottom(bottom)\n }\n }\n function scrollToTop() {\n window.scrollTo({\n top: 0,\n behavior: 'smooth',\n })\n setTimeout(() => {\n displayScrollButton.value = false\n }, 300)\n }\n function initLanguage() {\n let language = 'en'\n try {\n const navigatorLanguage = navigator.language.split('-')[0]\n if (navigatorLanguage in localeFromLanguage) {\n language = navigatorLanguage\n }\n } catch (e) {\n language = 'en'\n }\n store.dispatch(ROOT_STORE.ACTIONS.UPDATE_APPLICATION_LANGUAGE, language)\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _component_Loader = _resolveComponent(\"Loader\")!\n const _component_router_view = _resolveComponent(\"router-view\")!\n\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _hoisted_1,\n _createVNode(NavBar, { onMenuInteraction: updateHideScrollBar }),\n (_unref(appLoading))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createVNode(_component_Loader)\n ])\n ]))\n : (_openBlock(), _createElementBlock(\"div\", {\n key: 1,\n class: _normalizeClass([\"app-container\", { 'hide-scroll': hideScrollBar.value }])\n }, [\n (_unref(appConfig))\n ? (_openBlock(), _createBlock(_component_router_view, { key: 0 }))\n : (_openBlock(), _createBlock(NoConfig, { key: 1 }))\n ], 2)),\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"scroll-button\", { 'display-button': displayScrollButton.value }]),\n onClick: scrollToTop\n }, _hoisted_6, 2)\n ]),\n (_unref(appConfig))\n ? (_openBlock(), _createBlock(Footer, {\n key: 2,\n version: _unref(appConfig) ? _unref(appConfig).version : '',\n adminContact: _unref(appConfig).admin_contact\n }, null, 8, [\"version\", \"adminContact\"]))\n : _createCommentVNode(\"\", true)\n ], 64))\n}\n}\n\n})","import script from \"./App.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./App.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./App.vue?vue&type=style&index=0&id=2930d5e0&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-69d7e4ff\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"alert-message\" }\nconst _hoisted_2 = [\"innerHTML\"]\n\nimport { toRefs } from 'vue'\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'AlertMessage',\n props: {\n message: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n message: string\n };\n\n \n const { message } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", {\n innerHTML: _ctx.$t(_unref(message))\n }, null, 8, _hoisted_2)\n ]))\n}\n}\n\n})","import script from \"./AlertMessage.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AlertMessage.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./AlertMessage.vue?vue&type=style&index=0&id=69d7e4ff&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-69d7e4ff\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { vModelText as _vModelText, createElementVNode as _createElementVNode, withDirectives as _withDirectives, toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-8cf5cc64\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"custom-textarea\" }\nconst _hoisted_2 = [\"id\", \"name\", \"maxLenght\", \"disabled\"]\nconst _hoisted_3 = { class: \"remaining-chars\" }\n\nimport { ref, watch, withDefaults } from 'vue'\n\n interface Props {\n name: string\n charLimit?: number\n disabled?: boolean\n input?: string | null\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'CustomTextArea',\n props: {\n name: null,\n charLimit: { default: 500 },\n disabled: { type: Boolean, default: false },\n input: { default: '' }\n },\n emits: ['updateValue'],\n setup(__props: any, { emit }) {\n\nconst props = __props as { name: string, charLimit: number, disabled: boolean, input: string | null };\n\n \n\n \n\n const text = ref('')\n\n function updateText(event: Event & { target: HTMLInputElement }) {\n emit('updateValue', event.target.value)\n }\n\n watch(\n () => props.input,\n (value) => {\n text.value = value === null ? '' : value\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _withDirectives(_createElementVNode(\"textarea\", {\n id: __props.name,\n name: __props.name,\n maxLenght: __props.charLimit,\n disabled: __props.disabled,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((text).value = $event)),\n onInput: updateText\n }, null, 40, _hoisted_2), [\n [_vModelText, text.value]\n ]),\n _createElementVNode(\"div\", _hoisted_3, _toDisplayString(_ctx.$t('workouts.REMAINING_CHARS')) + \": \" + _toDisplayString(text.value.length) + \"/\" + _toDisplayString(__props.charLimit), 1)\n ]))\n}\n}\n\n})","import script from \"./CustomTextArea.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./CustomTextArea.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./CustomTextArea.vue?vue&type=style&index=0&id=8cf5cc64&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-8cf5cc64\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createTextVNode as _createTextVNode, Fragment as _Fragment } from \"vue\"\n\nimport { ComputedRef, computed, toRefs, withDefaults } from 'vue'\n\n import { TUnit } from '@/types/units'\n import { units, convertDistance } from '@/utils/units'\n\n interface Props {\n distance: number\n unitFrom: TUnit\n useImperialUnits: boolean\n digits?: number\n displayUnit?: boolean\n speed?: boolean\n strong?: boolean\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'Distance',\n props: {\n distance: null,\n unitFrom: null,\n useImperialUnits: { type: Boolean },\n digits: { default: 2 },\n displayUnit: { type: Boolean, default: true },\n speed: { type: Boolean, default: false },\n strong: { type: Boolean, default: false }\n },\n setup(__props: any) {\n\nconst props = __props as { distance: number, unitFrom: TUnit, useImperialUnits: boolean, digits: number, displayUnit: boolean, speed: boolean, strong: boolean };\n\n \n\n const {\n digits,\n displayUnit,\n distance,\n speed,\n strong,\n unitFrom,\n useImperialUnits,\n } = toRefs(props)\n const unitTo: ComputedRef = computed(() =>\n useImperialUnits.value\n ? units[unitFrom.value].defaultTarget\n : unitFrom.value\n )\n const convertedDistance = computed(() =>\n useImperialUnits.value\n ? convertDistance(\n distance.value,\n unitFrom.value,\n unitTo.value,\n digits.value\n )\n : parseFloat(distance.value.toFixed(digits.value))\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(_Fragment, null, [\n _createElementVNode(\"span\", {\n class: _normalizeClass([\"distance\", { strong: _unref(strong) }])\n }, _toDisplayString(_unref(convertedDistance)), 3),\n _createTextVNode(\" \" + _toDisplayString(' ') + \" \"),\n (_unref(displayUnit))\n ? (_openBlock(), _createElementBlock(\"span\", {\n key: 0,\n class: _normalizeClass([\"unit\", { strong: _unref(strong) }])\n }, _toDisplayString(_unref(unitTo)) + _toDisplayString(_unref(speed) ? '/h' : ''), 3))\n : _createCommentVNode(\"\", true)\n ], 64))\n}\n}\n\n})","import script from \"./Distance.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Distance.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Distance.vue?vue&type=style&index=0&id=f46ff1d6&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-f46ff1d6\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { renderSlot as _renderSlot, createElementVNode as _createElementVNode, unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-2d3b4eac\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"dropdown-wrapper\" }\nconst _hoisted_2 = {\n key: 0,\n class: \"dropdown-list\"\n}\nconst _hoisted_3 = [\"onClick\"]\n\nimport { ref, watch } from 'vue'\n import { useRoute } from 'vue-router'\n\n import { IDropdownOption, TDropdownOptions } from '@/types/forms'\n interface Props {\n options: TDropdownOptions\n selected: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'Dropdown',\n props: {\n options: null,\n selected: null\n },\n emits: {\n selected: (option: IDropdownOption) => option,\n },\n setup(__props: any, { emit }) {\n\nconst props = __props as {\n options: TDropdownOptions\n selected: string\n };\n\n \n\n \n\n const route = useRoute()\n const isOpen = ref(false)\n const dropdownOptions = props.options.map((option) => option)\n\n function toggleDropdown() {\n isOpen.value = !isOpen.value\n }\n function updateSelected(option: IDropdownOption) {\n emit('selected', option)\n isOpen.value = false\n }\n\n watch(\n () => route.path,\n () => (isOpen.value = false)\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", {\n class: \"dropdown-selected\",\n onClick: toggleDropdown\n }, [\n _renderSlot(_ctx.$slots, \"default\")\n ]),\n (isOpen.value)\n ? (_openBlock(), _createElementBlock(\"ul\", _hoisted_2, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(dropdownOptions), (option, index) => {\n return (_openBlock(), _createElementBlock(\"li\", {\n class: _normalizeClass([\"dropdown-item\", { selected: option.value === __props.selected }]),\n key: index,\n onClick: ($event: any) => (updateSelected(option))\n }, _toDisplayString(option.label), 11, _hoisted_3))\n }), 128))\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n}\n}\n\n})","import script from \"./Dropdown.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Dropdown.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Dropdown.vue?vue&type=style&index=0&id=2d3b4eac&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-2d3b4eac\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-2659a79a\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"error-message\" }\nconst _hoisted_2 = { key: 0 }\nconst _hoisted_3 = { key: 1 }\n\nimport { toRefs } from 'vue'\n\n interface Props {\n message: string | string[]\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'ErrorMessage',\n props: {\n message: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n message: string | string[]\n };\n\n \n const { message } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (Array.isArray(_unref(message)))\n ? (_openBlock(), _createElementBlock(\"ul\", _hoisted_2, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(message), (subMessage, index) => {\n return (_openBlock(), _createElementBlock(\"li\", { key: index }, _toDisplayString(_ctx.$t(subMessage)), 1))\n }), 128))\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_3, _toDisplayString(_ctx.$t(_unref(message))), 1))\n ]))\n}\n}\n\n})","import script from \"./ErrorMessage.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./ErrorMessage.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./ErrorMessage.vue?vue&type=style&index=0&id=2659a79a&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-2659a79a\"]])\n\nexport default __exports__","\n\n\n","import { render } from \"./CyclingSport.vue?vue&type=template&id=be8023a2\"\nimport script from \"./CyclingSport.vue?vue&type=script&lang=js\"\nexport * from \"./CyclingSport.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./CyclingTransport.vue?vue&type=template&id=97af5148\"\nimport script from \"./CyclingTransport.vue?vue&type=script&lang=js\"\nexport * from \"./CyclingTransport.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./CyclingVirtual.vue?vue&type=template&id=ec8f7bb6\"\nimport script from \"./CyclingVirtual.vue?vue&type=script&lang=js\"\nexport * from \"./CyclingVirtual.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./Hiking.vue?vue&type=template&id=40903dc4\"\nimport script from \"./Hiking.vue?vue&type=script&lang=js\"\nexport * from \"./Hiking.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./MountainBiking.vue?vue&type=template&id=5bdbc6e8\"\nimport script from \"./MountainBiking.vue?vue&type=script&lang=js\"\nexport * from \"./MountainBiking.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./MountainBikingElectric.vue?vue&type=template&id=21e72aec\"\nimport script from \"./MountainBikingElectric.vue?vue&type=script&lang=js\"\nexport * from \"./MountainBikingElectric.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./Rowing.vue?vue&type=template&id=31ae2dd5\"\nimport script from \"./Rowing.vue?vue&type=script&lang=js\"\nexport * from \"./Rowing.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./Running.vue?vue&type=template&id=4d47a4fe\"\nimport script from \"./Running.vue?vue&type=script&lang=js\"\nexport * from \"./Running.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./SkiingAlpine.vue?vue&type=template&id=3ebf3bca\"\nimport script from \"./SkiingAlpine.vue?vue&type=script&lang=js\"\nexport * from \"./SkiingAlpine.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./SkiingCrossCountry.vue?vue&type=template&id=1561bbe6\"\nimport script from \"./SkiingCrossCountry.vue?vue&type=script&lang=js\"\nexport * from \"./SkiingCrossCountry.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./Snowshoes.vue?vue&type=template&id=67df2761\"\nimport script from \"./Snowshoes.vue?vue&type=script&lang=js\"\nexport * from \"./Snowshoes.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./Trail.vue?vue&type=template&id=32a14156\"\nimport script from \"./Trail.vue?vue&type=script&lang=js\"\nexport * from \"./Trail.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n\n\n","import { render } from \"./Walking.vue?vue&type=template&id=2ed4f5f4\"\nimport script from \"./Walking.vue?vue&type=script&lang=js\"\nexport * from \"./Walking.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, normalizeStyle as _normalizeStyle, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = [\"title\"]\n\nimport { inject, toRefs, withDefaults } from 'vue'\n\n import CyclingSport from '@/components/Common/Images/SportImage/CyclingSport.vue'\n import CyclingTransport from '@/components/Common/Images/SportImage/CyclingTransport.vue'\n import CyclingVirtual from '@/components/Common/Images/SportImage/CyclingVirtual.vue'\n import Hiking from '@/components/Common/Images/SportImage/Hiking.vue'\n import MountainBiking from '@/components/Common/Images/SportImage/MountainBiking.vue'\n import MountainBikingElectric from '@/components/Common/Images/SportImage/MountainBikingElectric.vue'\n import Rowing from '@/components/Common/Images/SportImage/Rowing.vue'\n import Running from '@/components/Common/Images/SportImage/Running.vue'\n import SkiingAlpine from '@/components/Common/Images/SportImage/SkiingAlpine.vue'\n import SkiingCrossCountry from '@/components/Common/Images/SportImage/SkiingCrossCountry.vue'\n import Snowshoes from '@/components/Common/Images/SportImage/Snowshoes.vue'\n import Trail from '@/components/Common/Images/SportImage/Trail.vue'\n import Walking from '@/components/Common/Images/SportImage/Walking.vue'\n\n interface Props {\n sportLabel: string\n color: string | null\n title?: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'index',\n props: {\n sportLabel: null,\n color: null,\n title: { default: '' }\n },\n setup(__props: any) {\n\nconst props = __props as { sportLabel: string, color: string | null, title: string };\n\n \n\n const { color, sportLabel, title } = toRefs(props)\n const sportColors = inject('sportColors')\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"sport-img\",\n style: _normalizeStyle({ fill: _unref(color) ? _unref(color) : _unref(sportColors)[_unref(sportLabel)] }),\n title: _unref(title) ? _unref(title) : _ctx.$t(`sports.${_unref(sportLabel)}.LABEL`)\n }, [\n (_unref(sportLabel) === 'Cycling (Sport)')\n ? (_openBlock(), _createBlock(CyclingSport, { key: 0 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Cycling (Transport)')\n ? (_openBlock(), _createBlock(CyclingTransport, { key: 1 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Cycling (Virtual)')\n ? (_openBlock(), _createBlock(CyclingVirtual, { key: 2 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Hiking')\n ? (_openBlock(), _createBlock(Hiking, { key: 3 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Mountain Biking')\n ? (_openBlock(), _createBlock(MountainBiking, { key: 4 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Mountain Biking (Electric)')\n ? (_openBlock(), _createBlock(MountainBikingElectric, { key: 5 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Rowing')\n ? (_openBlock(), _createBlock(Rowing, { key: 6 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Running')\n ? (_openBlock(), _createBlock(Running, { key: 7 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Skiing (Alpine)')\n ? (_openBlock(), _createBlock(SkiingAlpine, { key: 8 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Skiing (Cross Country)')\n ? (_openBlock(), _createBlock(SkiingCrossCountry, { key: 9 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Snowshoes')\n ? (_openBlock(), _createBlock(Snowshoes, { key: 10 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Trail')\n ? (_openBlock(), _createBlock(Trail, { key: 11 }))\n : _createCommentVNode(\"\", true),\n (_unref(sportLabel) === 'Walking')\n ? (_openBlock(), _createBlock(Walking, { key: 12 }))\n : _createCommentVNode(\"\", true)\n ], 12, _hoisted_1))\n}\n}\n\n})","import script from \"./index.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n\n","import { render } from \"./Loader.vue?vue&type=template&id=4c9921ee&scoped=true\"\nconst script = {}\n\nimport \"./Loader.vue?vue&type=style&index=0&id=4c9921ee&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-4c9921ee\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-e8fcfaba\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"modal\" }\nconst _hoisted_2 = { class: \"custom-modal\" }\nconst _hoisted_3 = {\n key: 0,\n class: \"modal-message\"\n}\nconst _hoisted_4 = {\n key: 1,\n class: \"modal-message\"\n}\nconst _hoisted_5 = { class: \"modal-buttons\" }\n\nimport { ComputedRef, computed, toRefs, withDefaults, onUnmounted } from 'vue'\n\n import { ROOT_STORE } from '@/store/constants'\n import { useStore } from '@/use/useStore'\n\n interface Props {\n title: string\n message: string\n strongMessage?: string | null\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'Modal',\n props: {\n title: null,\n message: null,\n strongMessage: { default: () => null }\n },\n emits: ['cancelAction', 'confirmAction'],\n setup(__props: any, { emit }) {\n\nconst props = __props as { title: string, message: string, strongMessage: string | null };\n\n \n\n \n\n const store = useStore()\n\n const { title, message, strongMessage } = toRefs(props)\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n onUnmounted(() => store.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES))\n\nreturn (_ctx: any,_cache: any) => {\n const _component_i18n_t = _resolveComponent(\"i18n-t\")!\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n const _component_Card = _resolveComponent(\"Card\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createVNode(_component_Card, null, {\n title: _withCtx(() => [\n _createTextVNode(_toDisplayString(_unref(title)), 1)\n ]),\n content: _withCtx(() => [\n (_unref(strongMessage))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n _createVNode(_component_i18n_t, { keypath: _unref(message) }, {\n default: _withCtx(() => [\n _createElementVNode(\"span\", null, _toDisplayString(_unref(strongMessage)), 1)\n ]),\n _: 1\n }, 8, [\"keypath\"])\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_4, _toDisplayString(_unref(message)), 1)),\n (_unref(errorMessages))\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 2,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_5, [\n (!_unref(errorMessages))\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 0,\n class: \"confirm\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (emit('confirmAction')))\n }, _toDisplayString(_ctx.$t('buttons.YES')), 1))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _cache[1] || (_cache[1] = ($event: any) => (emit('cancelAction')))\n }, _toDisplayString(_ctx.$t(`buttons.${_unref(errorMessages) ? 'CANCEL' : 'NO'}`)), 1)\n ])\n ]),\n _: 1\n })\n ])\n ]))\n}\n}\n\n})","import script from \"./Modal.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Modal.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Modal.vue?vue&type=style&index=0&id=e8fcfaba&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-e8fcfaba\"]])\n\nexport default __exports__","import AlertMessage from '@/components/Common/AlertMessage.vue'\nimport Card from '@/components/Common/Card.vue'\nimport CustomTextArea from '@/components/Common/CustomTextArea.vue'\nimport Distance from '@/components/Common/Distance.vue'\nimport Dropdown from '@/components/Common/Dropdown.vue'\nimport ErrorMessage from '@/components/Common/ErrorMessage.vue'\nimport SportImage from '@/components/Common/Images/SportImage/index.vue'\nimport Loader from '@/components/Common/Loader.vue'\nimport Modal from '@/components/Common/Modal.vue'\n\nexport const customComponents = [\n { target: AlertMessage, name: 'AlertMessage' },\n { target: Card, name: 'Card' },\n { target: CustomTextArea, name: 'CustomTextArea' },\n { target: Distance, name: 'Distance' },\n { target: Dropdown, name: 'Dropdown' },\n { target: ErrorMessage, name: 'ErrorMessage' },\n { target: Loader, name: 'Loader' },\n { target: Modal, name: 'Modal' },\n { target: SportImage, name: 'SportImage' },\n]\n","import { Directive, DirectiveBinding } from 'vue'\n\ninterface ClickOutsideHTMLElement extends HTMLElement {\n clickOutsideEvent?: (event: MouseEvent | TouchEvent) => void\n}\n\nexport const clickOutsideDirective: Directive = {\n mounted: (\n element: ClickOutsideHTMLElement,\n binding: DirectiveBinding\n ): void => {\n element.clickOutsideEvent = function (event) {\n if (!(element === event.target || element.contains(event.target))) {\n binding.value(event)\n }\n }\n document.body.addEventListener('click', element.clickOutsideEvent)\n document.body.addEventListener('touchstart', element.clickOutsideEvent)\n },\n unmounted: function (element: ClickOutsideHTMLElement): void {\n if (element.clickOutsideEvent) {\n document.body.removeEventListener('click', element.clickOutsideEvent)\n document.body.removeEventListener('touchstart', element.clickOutsideEvent)\n element.clickOutsideEvent = undefined\n }\n },\n}\n","import {\n Chart,\n BarElement,\n LineElement,\n PointElement,\n Legend,\n Title,\n Tooltip,\n Filler,\n BarController,\n CategoryScale,\n LineController,\n LinearScale,\n} from 'chart.js'\nimport ChartDataLabels from 'chartjs-plugin-datalabels'\nimport { createApp } from 'vue'\nimport VueFullscreen from 'vue-fullscreen'\n\nimport './registerServiceWorker'\nimport App from './App.vue'\nimport i18n from './i18n'\nimport router from './router'\nimport store from './store'\n\nimport { customComponents } from '@/custom-components'\nimport { clickOutsideDirective } from '@/directives'\nimport { sportColors } from '@/utils/sports'\n\nChart.register(\n BarElement,\n LineElement,\n PointElement,\n Legend,\n Title,\n Tooltip,\n Filler,\n BarController,\n CategoryScale,\n LineController,\n LinearScale,\n ChartDataLabels\n)\n\nconst app = createApp(App)\n .provide('sportColors', sportColors)\n .use(i18n)\n .use(store)\n .use(router)\n .use(VueFullscreen, { name: 'VFullscreen' })\n .directive('click-outside', clickOutsideDirective)\n\ncustomComponents.forEach((component) => {\n app.component(component.name, component.target)\n})\n\napp.mount('#app')\n","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, unref as _unref, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, vModelText as _vModelText, withDirectives as _withDirectives, createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, createBlock as _createBlock, withModifiers as _withModifiers, withCtx as _withCtx, createVNode as _createVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-24ec93e2\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"admin-app\",\n class: \"admin-card\"\n}\nconst _hoisted_2 = [\"onSubmit\"]\nconst _hoisted_3 = { for: \"admin_contact\" }\nconst _hoisted_4 = [\"value\"]\nconst _hoisted_5 = [\"disabled\"]\nconst _hoisted_6 = { for: \"max_users\" }\nconst _hoisted_7 = [\"disabled\"]\nconst _hoisted_8 = { class: \"user-limit-help\" }\nconst _hoisted_9 = { class: \"info-box\" }\nconst _hoisted_10 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-info-circle\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_11 = { for: \"max_single_file_size\" }\nconst _hoisted_12 = [\"disabled\"]\nconst _hoisted_13 = { for: \"max_zip_file_size\" }\nconst _hoisted_14 = [\"disabled\"]\nconst _hoisted_15 = { for: \"gpx_limit_import\" }\nconst _hoisted_16 = [\"disabled\"]\nconst _hoisted_17 = {\n key: 1,\n class: \"form-buttons\"\n}\nconst _hoisted_18 = {\n class: \"confirm\",\n type: \"submit\"\n}\nconst _hoisted_19 = [\"onClick\"]\nconst _hoisted_20 = {\n key: 2,\n class: \"form-buttons\"\n}\n\nimport {\n ComputedRef,\n computed,\n reactive,\n withDefaults,\n onBeforeMount,\n toRefs,\n } from 'vue'\n import { useRouter } from 'vue-router'\n\n import { ROOT_STORE } from '@/store/constants'\n import { TAppConfig, TAppConfigForm } from '@/types/application'\n import { useStore } from '@/use/useStore'\n import { getFileSizeInMB } from '@/utils/files'\n\n interface Props {\n appConfig: TAppConfig\n edition?: boolean\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'AdminApplication',\n props: {\n appConfig: null,\n edition: { type: Boolean, default: false }\n },\n setup(__props: any) {\n\nconst props = __props as { appConfig: TAppConfig, edition: boolean };\n\n \n const { edition } = toRefs(props)\n\n const store = useStore()\n const router = useRouter()\n\n const appData: TAppConfigForm = reactive({\n admin_contact: '',\n max_users: 0,\n max_single_file_size: 0,\n max_zip_file_size: 0,\n gpx_limit_import: 0,\n })\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n\n onBeforeMount(() => {\n if (props.appConfig) {\n updateForm(props.appConfig)\n }\n })\n\n function updateForm(appConfig: TAppConfig) {\n Object.keys(appData).map((key) => {\n ['max_single_file_size', 'max_zip_file_size'].includes(key)\n ? // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n (appData[key] = getFileSizeInMB(appConfig[key]))\n : // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n (appData[key] = appConfig[key])\n })\n }\n function onCancel() {\n updateForm(props.appConfig)\n store.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n router.push('/admin/application')\n }\n function onSubmit() {\n const formData: TAppConfigForm = Object.assign({}, appData)\n formData.max_single_file_size *= 1048576\n formData.max_zip_file_size *= 1048576\n store.dispatch(ROOT_STORE.ACTIONS.UPDATE_APPLICATION_CONFIG, formData)\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n const _component_Card = _resolveComponent(\"Card\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_Card, null, {\n title: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.APP_CONFIG.TITLE')), 1)\n ]),\n content: _withCtx(() => [\n _createElementVNode(\"form\", {\n class: \"admin-form\",\n onSubmit: _withModifiers(onSubmit, [\"prevent\"])\n }, [\n _createElementVNode(\"label\", _hoisted_3, [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.APP_CONFIG.ADMIN_CONTACT')) + \": \", 1),\n (!_unref(edition) && !appData.admin_contact)\n ? (_openBlock(), _createElementBlock(\"input\", {\n key: 0,\n class: \"no-contact\",\n value: _ctx.$t('admin.APP_CONFIG.NO_CONTACT_EMAIL'),\n disabled: \"\"\n }, null, 8, _hoisted_4))\n : _withDirectives((_openBlock(), _createElementBlock(\"input\", {\n key: 1,\n id: \"admin_contact\",\n name: \"admin_contact\",\n type: \"email\",\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((appData.admin_contact) = $event)),\n disabled: !_unref(edition)\n }, null, 8, _hoisted_5)), [\n [_vModelText, appData.admin_contact]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_6, [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.APP_CONFIG.MAX_USERS_LABEL')) + \": \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"max_users\",\n name: \"max_users\",\n type: \"number\",\n min: \"0\",\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((appData.max_users) = $event)),\n disabled: !_unref(edition)\n }, null, 8, _hoisted_7), [\n [_vModelText, appData.max_users]\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_8, [\n _createElementVNode(\"span\", _hoisted_9, [\n _hoisted_10,\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('admin.APP_CONFIG.MAX_USERS_HELP')), 1)\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_11, [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.APP_CONFIG.SINGLE_UPLOAD_MAX_SIZE_LABEL')) + \": \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"max_single_file_size\",\n name: \"max_single_file_size\",\n type: \"number\",\n step: \"0.1\",\n min: \"0\",\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((appData.max_single_file_size) = $event)),\n disabled: !_unref(edition)\n }, null, 8, _hoisted_12), [\n [_vModelText, appData.max_single_file_size]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_13, [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.APP_CONFIG.ZIP_UPLOAD_MAX_SIZE_LABEL')) + \": \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"max_zip_file_size\",\n name: \"max_zip_file_size\",\n type: \"number\",\n step: \"0.1\",\n min: \"0\",\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = ($event: any) => ((appData.max_zip_file_size) = $event)),\n disabled: !_unref(edition)\n }, null, 8, _hoisted_14), [\n [_vModelText, appData.max_zip_file_size]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_15, [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.APP_CONFIG.MAX_FILES_IN_ZIP_LABEL')) + \": \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"gpx_limit_import\",\n name: \"gpx_limit_import\",\n type: \"number\",\n min: \"0\",\n \"onUpdate:modelValue\": _cache[4] || (_cache[4] = ($event: any) => ((appData.gpx_limit_import) = $event)),\n disabled: !_unref(edition)\n }, null, 8, _hoisted_16), [\n [_vModelText, appData.gpx_limit_import]\n ])\n ]),\n (_unref(errorMessages))\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 0,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true),\n (_unref(edition))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_17, [\n _createElementVNode(\"button\", _hoisted_18, _toDisplayString(_ctx.$t('buttons.SUBMIT')), 1),\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _withModifiers(onCancel, [\"prevent\"])\n }, _toDisplayString(_ctx.$t('buttons.CANCEL')), 9, _hoisted_19)\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_20, [\n _createElementVNode(\"button\", {\n class: \"confirm\",\n onClick: _cache[5] || (_cache[5] = _withModifiers(($event: any) => (_ctx.$router.push('/admin/application/edit')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('buttons.EDIT')), 1),\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _cache[6] || (_cache[6] = _withModifiers(($event: any) => (_ctx.$router.push('/admin')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('admin.BACK_TO_ADMIN')), 1)\n ]))\n ], 40, _hoisted_2)\n ]),\n _: 1\n })\n ]))\n}\n}\n\n})","import script from \"./AdminApplication.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AdminApplication.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./AdminApplication.vue?vue&type=style&index=0&id=24ec93e2&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-24ec93e2\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"stat-card\" }\nconst _hoisted_2 = { class: \"stat-content box\" }\nconst _hoisted_3 = { class: \"stat-icon\" }\nconst _hoisted_4 = { class: \"stat-details\" }\nconst _hoisted_5 = { class: \"stat-huge\" }\nconst _hoisted_6 = { class: \"stat\" }\n\nimport { toRefs } from 'vue'\n\n interface Props {\n icon: string\n text: string\n value: string | number\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'StatCard',\n props: {\n icon: null,\n text: null,\n value: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n icon: string\n text: string\n value: string | number\n };\n\n \n const { icon, text, value } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"i\", {\n class: _normalizeClass([\"fa\", `fa-${_unref(icon)}`])\n }, null, 2)\n ]),\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"div\", _hoisted_5, _toDisplayString(_unref(value)), 1),\n _createElementVNode(\"div\", _hoisted_6, _toDisplayString(_unref(text)), 1)\n ])\n ])\n ]))\n}\n}\n\n})","import script from \"./StatCard.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./StatCard.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./StatCard.vue?vue&type=style&index=0&id=6cbb3351&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { id: \"user-stats\" }\n\nimport { computed, toRefs } from 'vue'\n\n import StatCard from '@/components/Common/StatCard.vue'\n import { IAppStatistics } from '@/types/application'\n import { getReadableFileSize } from '@/utils/files'\n\n interface Props {\n appStatistics: IAppStatistics\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'AppStatsCards',\n props: {\n appStatistics: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n appStatistics: IAppStatistics\n };\n\n \n\n const { appStatistics } = toRefs(props)\n const uploadDirSize = computed(() =>\n getReadableFileSize(appStatistics.value.uploads_dir_size, false)\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(StatCard, {\n icon: \"users\",\n value: _unref(appStatistics).users,\n text: _ctx.$t('admin.USER', _unref(appStatistics).users)\n }, null, 8, [\"value\", \"text\"]),\n _createVNode(StatCard, {\n icon: \"tags\",\n value: _unref(appStatistics).sports,\n text: _ctx.$t('workouts.SPORT', _unref(appStatistics).sports)\n }, null, 8, [\"value\", \"text\"]),\n _createVNode(StatCard, {\n icon: \"calendar\",\n value: _unref(appStatistics).workouts,\n text: _ctx.$t('workouts.WORKOUT', _unref(appStatistics).workouts)\n }, null, 8, [\"value\", \"text\"]),\n _createVNode(StatCard, {\n icon: \"folder-open\",\n value: _unref(uploadDirSize).size,\n text: _unref(uploadDirSize).suffix\n }, null, 8, [\"value\", \"text\"])\n ]))\n}\n}\n\n})","import script from \"./AppStatsCards.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AppStatsCards.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./AppStatsCards.vue?vue&type=style&index=0&id=61c5053e&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, unref as _unref, createVNode as _createVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-0dd66f89\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"admin-menu\",\n class: \"center-card\"\n}\nconst _hoisted_2 = { class: \"admin-menu description-list\" }\nconst _hoisted_3 = { class: \"application-config-details\" }\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"br\", null, null, -1))\nconst _hoisted_5 = { class: \"registration-status\" }\nconst _hoisted_6 = {\n key: 0,\n class: \"email-sending-status\"\n}\nconst _hoisted_7 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-exclamation-triangle\",\n \"aria-hidden\": \"true\"\n}, null, -1))\n\nimport { capitalize, toRefs, withDefaults } from 'vue'\n\n import AppStatsCards from '@/components/Administration/AppStatsCards.vue'\n import Card from '@/components/Common/Card.vue'\n import { IAppStatistics, TAppConfig } from '@/types/application'\n\n interface Props {\n appConfig: TAppConfig\n appStatistics?: IAppStatistics\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'AdminMenu',\n props: {\n appConfig: null,\n appStatistics: { default: () => ({} as IAppStatistics) }\n },\n setup(__props: any) {\n\nconst props = __props as { appConfig: TAppConfig, appStatistics: IAppStatistics };\n\n \n\n const { appConfig, appStatistics } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_link = _resolveComponent(\"router-link\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(Card, null, {\n title: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.ADMINISTRATION')), 1)\n ]),\n content: _withCtx(() => [\n _createVNode(AppStatsCards, { appStatistics: _unref(appStatistics) }, null, 8, [\"appStatistics\"]),\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"dl\", null, [\n _createElementVNode(\"dt\", null, [\n _createVNode(_component_router_link, { to: \"/admin/application\" }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.APPLICATION')), 1)\n ]),\n _: 1\n })\n ]),\n _createElementVNode(\"dd\", _hoisted_3, [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.UPDATE_APPLICATION_DESCRIPTION')), 1),\n _hoisted_4,\n _createElementVNode(\"span\", _hoisted_5, _toDisplayString(_ctx.$t(\n `admin.REGISTRATION_${\n _unref(appConfig).is_registration_enabled ? 'ENABLED' : 'DISABLED'\n }`\n )), 1),\n (!_unref(appConfig).is_email_sending_enabled)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_6, [\n _hoisted_7,\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('admin.EMAIL_SENDING_DISABLED')), 1)\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"dt\", null, [\n _createVNode(_component_router_link, { to: \"/admin/sports\" }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(capitalize(_ctx.$t('workouts.SPORT', 0))), 1)\n ]),\n _: 1\n })\n ]),\n _createElementVNode(\"dd\", null, _toDisplayString(_ctx.$t('admin.ENABLE_DISABLE_SPORTS')), 1),\n _createElementVNode(\"dt\", null, [\n _createVNode(_component_router_link, { to: \"/admin/users\" }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(capitalize(_ctx.$t('admin.USER', 0))), 1)\n ]),\n _: 1\n })\n ]),\n _createElementVNode(\"dd\", null, _toDisplayString(_ctx.$t('admin.ADMIN_RIGHTS_DELETE_USER_ACCOUNT')), 1)\n ])\n ])\n ]),\n _: 1\n })\n ]))\n}\n}\n\n})","import script from \"./AdminMenu.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AdminMenu.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./AdminMenu.vue?vue&type=style&index=0&id=0dd66f89&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-0dd66f89\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, withModifiers as _withModifiers, createElementVNode as _createElementVNode, unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, resolveComponent as _resolveComponent, createVNode as _createVNode, normalizeClass as _normalizeClass, createCommentVNode as _createCommentVNode, createBlock as _createBlock, withCtx as _withCtx, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-6d62af67\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"admin-sports\",\n class: \"admin-card\"\n}\nconst _hoisted_2 = { class: \"responsive-table\" }\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"th\", null, \"#\", -1))\nconst _hoisted_4 = { class: \"text-left\" }\nconst _hoisted_5 = { class: \"text-left sport-action\" }\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"th\", null, null, -1))\nconst _hoisted_7 = { class: \"text-center\" }\nconst _hoisted_8 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"span\", { class: \"cell-heading\" }, \"id\", -1))\nconst _hoisted_9 = { class: \"cell-heading\" }\nconst _hoisted_10 = { class: \"sport-label\" }\nconst _hoisted_11 = { class: \"cell-heading\" }\nconst _hoisted_12 = { class: \"text-center\" }\nconst _hoisted_13 = { class: \"cell-heading\" }\nconst _hoisted_14 = { class: \"sport-action\" }\nconst _hoisted_15 = { class: \"cell-heading\" }\nconst _hoisted_16 = { class: \"action-button\" }\nconst _hoisted_17 = [\"onClick\"]\nconst _hoisted_18 = {\n key: 0,\n class: \"has-workouts\"\n}\nconst _hoisted_19 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-warning\",\n \"aria-hidden\": \"true\"\n}, null, -1))\n\nimport { ComputedRef, computed } from 'vue'\n import { useI18n } from 'vue-i18n'\n\n import { ROOT_STORE, SPORTS_STORE } from '@/store/constants'\n import { ITranslatedSport } from '@/types/sports'\n import { useStore } from '@/use/useStore'\n import { translateSports } from '@/utils/sports'\n\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'AdminSports',\n setup(__props) {\n\n const { t } = useI18n()\n const store = useStore()\n\n const translatedSports: ComputedRef = computed(() =>\n translateSports(store.getters[SPORTS_STORE.GETTERS.SPORTS], t)\n )\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n\n function updateSportStatus(id: number, isActive: boolean) {\n store.dispatch(SPORTS_STORE.ACTIONS.UPDATE_SPORTS, {\n id,\n isActive,\n })\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _component_SportImage = _resolveComponent(\"SportImage\")!\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n const _component_Card = _resolveComponent(\"Card\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_Card, null, {\n title: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.SPORTS.TITLE')), 1)\n ]),\n content: _withCtx(() => [\n _createElementVNode(\"button\", {\n class: \"top-button\",\n onClick: _cache[0] || (_cache[0] = _withModifiers(($event: any) => (_ctx.$router.push('/admin')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('admin.BACK_TO_ADMIN')), 1),\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"table\", null, [\n _createElementVNode(\"thead\", null, [\n _createElementVNode(\"tr\", null, [\n _hoisted_3,\n _createElementVNode(\"th\", null, _toDisplayString(_ctx.$t('admin.SPORTS.TABLE.IMAGE')), 1),\n _createElementVNode(\"th\", _hoisted_4, _toDisplayString(_ctx.$t('admin.SPORTS.TABLE.LABEL')), 1),\n _createElementVNode(\"th\", null, _toDisplayString(_ctx.$t('admin.SPORTS.TABLE.ACTIVE')), 1),\n _createElementVNode(\"th\", _hoisted_5, _toDisplayString(_ctx.$t('admin.ACTION')), 1),\n _hoisted_6\n ])\n ]),\n _createElementVNode(\"tbody\", null, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(translatedSports), (sport) => {\n return (_openBlock(), _createElementBlock(\"tr\", {\n key: sport.id\n }, [\n _createElementVNode(\"td\", _hoisted_7, [\n _hoisted_8,\n _createTextVNode(\" \" + _toDisplayString(sport.id), 1)\n ]),\n _createElementVNode(\"td\", null, [\n _createElementVNode(\"span\", _hoisted_9, _toDisplayString(_ctx.$t('admin.SPORTS.TABLE.IMAGE')), 1),\n _createVNode(_component_SportImage, {\n title: sport.translatedLabel,\n \"sport-label\": sport.label,\n color: sport.color\n }, null, 8, [\"title\", \"sport-label\", \"color\"])\n ]),\n _createElementVNode(\"td\", _hoisted_10, [\n _createElementVNode(\"span\", _hoisted_11, _toDisplayString(_ctx.$t('admin.SPORTS.TABLE.LABEL')), 1),\n _createTextVNode(\" \" + _toDisplayString(sport.translatedLabel), 1)\n ]),\n _createElementVNode(\"td\", _hoisted_12, [\n _createElementVNode(\"span\", _hoisted_13, _toDisplayString(_ctx.$t('admin.SPORTS.TABLE.ACTIVE')), 1),\n _createElementVNode(\"i\", {\n class: _normalizeClass(`fa fa${sport.is_active ? '-check' : ''}`),\n \"aria-hidden\": \"true\"\n }, null, 2)\n ]),\n _createElementVNode(\"td\", _hoisted_14, [\n _createElementVNode(\"span\", _hoisted_15, _toDisplayString(_ctx.$t('admin.ACTION')), 1),\n _createElementVNode(\"div\", _hoisted_16, [\n _createElementVNode(\"button\", {\n class: _normalizeClass({ danger: sport.is_active }),\n onClick: ($event: any) => (updateSportStatus(sport.id, !sport.is_active))\n }, _toDisplayString(_ctx.$t(`buttons.${sport.is_active ? 'DIS' : 'EN'}ABLE`)), 11, _hoisted_17),\n (sport.has_workouts)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_18, [\n _hoisted_19,\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('admin.SPORTS.TABLE.HAS_WORKOUTS')), 1)\n ]))\n : _createCommentVNode(\"\", true)\n ])\n ])\n ]))\n }), 128))\n ])\n ]),\n (_unref(errorMessages))\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 0,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"button\", {\n onClick: _cache[1] || (_cache[1] = _withModifiers(($event: any) => (_ctx.$router.push('/admin')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('admin.BACK_TO_ADMIN')), 1)\n ])\n ]),\n _: 1\n })\n ]))\n}\n}\n\n})","import script from \"./AdminSports.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AdminSports.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./AdminSports.vue?vue&type=style&index=0&id=6d62af67&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-6d62af67\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { vModelText as _vModelText, withKeys as _withKeys, createElementVNode as _createElementVNode, withDirectives as _withDirectives, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, normalizeClass as _normalizeClass, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-627a8e91\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"users-filters\" }\nconst _hoisted_2 = { class: \"search-username\" }\nconst _hoisted_3 = [\"onKeyup\", \"placeholder\"]\n\nimport { ref } from 'vue'\n import { useRoute } from 'vue-router'\n\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UsersNameFilter',\n emits: ['filterOnUsername'],\n setup(__props, { emit }) {\n\n const route = useRoute()\n const username = ref(route.query.q ? route.query.q : '')\n\n \n function searchUsers() {\n if (username.value !== '') {\n emit('filterOnUsername', username)\n }\n }\n function resetFilter() {\n username.value = ''\n emit('filterOnUsername', username.value)\n }\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _withDirectives(_createElementVNode(\"input\", {\n id: \"username\",\n name: \"username\",\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((username).value = $event)),\n onKeyup: _withKeys(searchUsers, [\"enter\"]),\n placeholder: _ctx.$t('user.FILTER_ON_USERNAME')\n }, null, 40, _hoisted_3), [\n [\n _vModelText,\n username.value,\n void 0,\n { trim: true }\n ]\n ]),\n (username.value !== '')\n ? (_openBlock(), _createElementBlock(\"i\", {\n key: 0,\n class: \"fa fa-times\",\n \"aria-hidden\": \"true\",\n onClick: resetFilter\n }))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"i\", {\n class: _normalizeClass([\"fa fa-search\", { 'fa-disabled': username.value === '' }]),\n \"aria-hidden\": \"true\",\n onClick: searchUsers\n }, null, 2)\n ]))\n}\n}\n\n})","import script from \"./UsersNameFilter.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./UsersNameFilter.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./UsersNameFilter.vue?vue&type=style&index=0&id=627a8e91&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-627a8e91\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, withModifiers as _withModifiers, createElementVNode as _createElementVNode, createVNode as _createVNode, unref as _unref, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, renderList as _renderList, Fragment as _Fragment, resolveComponent as _resolveComponent, withCtx as _withCtx, normalizeClass as _normalizeClass, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-dc12ff78\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"admin-users\",\n class: \"admin-card\"\n}\nconst _hoisted_2 = {\n key: 0,\n class: \"no-users\"\n}\nconst _hoisted_3 = {\n key: 1,\n class: \"responsive-table\"\n}\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"th\", null, \"#\", -1))\nconst _hoisted_5 = { class: \"left-text\" }\nconst _hoisted_6 = { class: \"left-text\" }\nconst _hoisted_7 = { class: \"left-text\" }\nconst _hoisted_8 = { class: \"cell-heading\" }\nconst _hoisted_9 = { class: \"cell-heading\" }\nconst _hoisted_10 = { class: \"cell-heading\" }\nconst _hoisted_11 = { class: \"cell-heading\" }\nconst _hoisted_12 = { class: \"text-center\" }\nconst _hoisted_13 = { class: \"cell-heading\" }\nconst _hoisted_14 = { class: \"text-center\" }\nconst _hoisted_15 = { class: \"cell-heading\" }\nconst _hoisted_16 = { class: \"text-center\" }\nconst _hoisted_17 = { class: \"cell-heading\" }\nconst _hoisted_18 = { class: \"text-center\" }\nconst _hoisted_19 = { class: \"cell-heading\" }\nconst _hoisted_20 = [\"disabled\", \"onClick\"]\n\nimport {\n ComputedRef,\n Ref,\n computed,\n reactive,\n watch,\n capitalize,\n onBeforeMount,\n onUnmounted,\n } from 'vue'\n import { LocationQuery, useRoute, useRouter } from 'vue-router'\n\n import FilterSelects from '@/components/Common/FilterSelects.vue'\n import Pagination from '@/components/Common/Pagination.vue'\n import UserPicture from '@/components/User/UserPicture.vue'\n import UsersNameFilter from '@/components/Users/UsersNameFilter.vue'\n import { AUTH_USER_STORE, ROOT_STORE, USERS_STORE } from '@/store/constants'\n import { IPagination, TPaginationPayload } from '@/types/api'\n import { IAuthUserProfile, IUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { getQuery, sortList } from '@/utils/api'\n import { formatDate } from '@/utils/dates'\n\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'AdminUsers',\n setup(__props) {\n\n const store = useStore()\n const route = useRoute()\n const router = useRouter()\n\n const orderByList: string[] = [\n 'is_active',\n 'admin',\n 'created_at',\n 'username',\n 'workouts_count',\n ]\n const defaultOrderBy = 'created_at'\n let query: TPaginationPayload = reactive(\n getQuery(route.query, orderByList, defaultOrderBy)\n )\n const authUser: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.AUTH_USER_PROFILE]\n )\n const users: ComputedRef = computed(\n () => store.getters[USERS_STORE.GETTERS.USERS]\n )\n const pagination: ComputedRef = computed(\n () => store.getters[USERS_STORE.GETTERS.USERS_PAGINATION]\n )\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n\n onBeforeMount(() => loadUsers(query))\n\n function loadUsers(queryParams: TPaginationPayload) {\n store.dispatch(USERS_STORE.ACTIONS.GET_USERS, queryParams)\n }\n function searchUsers(username: Ref) {\n reloadUsers('q', username.value)\n }\n\n function updateUser(username: string, admin: boolean) {\n store.dispatch(USERS_STORE.ACTIONS.UPDATE_USER, {\n username,\n admin,\n })\n }\n function reloadUsers(queryParam: string, queryValue: string) {\n query[queryParam] = queryValue\n if (queryParam === 'per_page') {\n query.page = 1\n }\n router.push({ path: '/admin/users', query })\n }\n\n onUnmounted(() => {\n store.dispatch(USERS_STORE.ACTIONS.EMPTY_USERS)\n })\n\n watch(\n () => route.query,\n (newQuery: LocationQuery) => {\n query = getQuery(newQuery, orderByList, defaultOrderBy, { query })\n loadUsers(query)\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n const _component_Card = _resolveComponent(\"Card\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_Card, null, {\n title: _withCtx(() => [\n _createTextVNode(_toDisplayString(capitalize(_ctx.$t('admin.USER', 0))), 1)\n ]),\n content: _withCtx(() => [\n _createElementVNode(\"button\", {\n class: \"top-button\",\n onClick: _cache[0] || (_cache[0] = _withModifiers(($event: any) => (_ctx.$router.push('/admin')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('admin.BACK_TO_ADMIN')), 1),\n _createVNode(UsersNameFilter, { onFilterOnUsername: searchUsers }),\n _createVNode(FilterSelects, {\n sort: _unref(sortList),\n order_by: orderByList,\n query: _unref(query),\n message: \"admin.USERS.SELECTS.ORDER_BY\",\n onUpdateSelect: reloadUsers\n }, null, 8, [\"sort\", \"query\"]),\n (_unref(users).length === 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, _toDisplayString(_ctx.$t('user.NO_USERS_FOUND')), 1))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n _createElementVNode(\"table\", null, [\n _createElementVNode(\"thead\", null, [\n _createElementVNode(\"tr\", null, [\n _hoisted_4,\n _createElementVNode(\"th\", _hoisted_5, _toDisplayString(_ctx.$t('user.USERNAME')), 1),\n _createElementVNode(\"th\", _hoisted_6, _toDisplayString(_ctx.$t('user.EMAIL')), 1),\n _createElementVNode(\"th\", _hoisted_7, _toDisplayString(_ctx.$t('user.PROFILE.REGISTRATION_DATE')), 1),\n _createElementVNode(\"th\", null, _toDisplayString(capitalize(_ctx.$t('workouts.WORKOUT', 0))), 1),\n _createElementVNode(\"th\", null, _toDisplayString(_ctx.$t('admin.ACTIVE')), 1),\n _createElementVNode(\"th\", null, _toDisplayString(_ctx.$t('user.ADMIN')), 1),\n _createElementVNode(\"th\", null, _toDisplayString(_ctx.$t('admin.ACTION')), 1)\n ])\n ]),\n _createElementVNode(\"tbody\", null, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(users), (user) => {\n return (_openBlock(), _createElementBlock(\"tr\", {\n key: user.username\n }, [\n _createElementVNode(\"td\", null, [\n _createElementVNode(\"span\", _hoisted_8, _toDisplayString(_ctx.$t('user.PROFILE.PICTURE')), 1),\n _createVNode(UserPicture, { user: user }, null, 8, [\"user\"])\n ]),\n _createElementVNode(\"td\", null, [\n _createElementVNode(\"span\", _hoisted_9, _toDisplayString(_ctx.$t('user.USERNAME')), 1),\n _createVNode(_component_router_link, {\n to: `/admin/users/${user.username}`\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(user.username), 1)\n ]),\n _: 2\n }, 1032, [\"to\"])\n ]),\n _createElementVNode(\"td\", null, [\n _createElementVNode(\"span\", _hoisted_10, _toDisplayString(_ctx.$t('user.EMAIL')), 1),\n _createTextVNode(\" \" + _toDisplayString(user.email), 1)\n ]),\n _createElementVNode(\"td\", null, [\n _createElementVNode(\"span\", _hoisted_11, _toDisplayString(_ctx.$t('user.PROFILE.REGISTRATION_DATE')), 1),\n _createTextVNode(\" \" + _toDisplayString(_unref(formatDate)(\n user.created_at,\n _unref(authUser).timezone,\n _unref(authUser).date_format\n )), 1)\n ]),\n _createElementVNode(\"td\", _hoisted_12, [\n _createElementVNode(\"span\", _hoisted_13, _toDisplayString(capitalize(_ctx.$t('workouts.WORKOUT', 0))), 1),\n _createTextVNode(\" \" + _toDisplayString(user.nb_workouts), 1)\n ]),\n _createElementVNode(\"td\", _hoisted_14, [\n _createElementVNode(\"span\", _hoisted_15, _toDisplayString(_ctx.$t('admin.ACTIVE')), 1),\n _createElementVNode(\"i\", {\n class: _normalizeClass(`fa fa${user.is_active ? '-check' : ''}-square-o`),\n \"aria-hidden\": \"true\"\n }, null, 2)\n ]),\n _createElementVNode(\"td\", _hoisted_16, [\n _createElementVNode(\"span\", _hoisted_17, _toDisplayString(_ctx.$t('user.ADMIN')), 1),\n _createElementVNode(\"i\", {\n class: _normalizeClass(`fa fa${user.admin ? '-check' : ''}-square-o`),\n \"aria-hidden\": \"true\"\n }, null, 2)\n ]),\n _createElementVNode(\"td\", _hoisted_18, [\n _createElementVNode(\"span\", _hoisted_19, _toDisplayString(_ctx.$t('admin.ACTION')), 1),\n _createElementVNode(\"button\", {\n class: _normalizeClass({ danger: user.admin }),\n disabled: user.username === _unref(authUser).username,\n onClick: ($event: any) => (updateUser(user.username, !user.admin))\n }, _toDisplayString(_ctx.$t(\n `admin.USERS.TABLE.${\n user.admin ? 'REMOVE' : 'ADD'\n }_ADMIN_RIGHTS`\n )), 11, _hoisted_20)\n ])\n ]))\n }), 128))\n ])\n ]),\n (_unref(pagination).page)\n ? (_openBlock(), _createBlock(Pagination, {\n key: 0,\n path: \"/admin/users\",\n pagination: _unref(pagination),\n query: _unref(query)\n }, null, 8, [\"pagination\", \"query\"]))\n : _createCommentVNode(\"\", true),\n (_unref(errorMessages))\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 1,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"button\", {\n onClick: _cache[1] || (_cache[1] = _withModifiers(($event: any) => (_ctx.$router.push('/admin')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('admin.BACK_TO_ADMIN')), 1)\n ]))\n ]),\n _: 1\n })\n ]))\n}\n}\n\n})","import script from \"./AdminUsers.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AdminUsers.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./AdminUsers.vue?vue&type=style&index=0&id=dc12ff78&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-dc12ff78\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString } from \"vue\"\n\nconst _hoisted_1 = { class: \"profile-tabs custom-checkboxes-group\" }\nconst _hoisted_2 = { class: \"profile-tabs-checkboxes custom-checkboxes\" }\nconst _hoisted_3 = [\"id\", \"name\", \"checked\", \"disabled\", \"onInput\"]\n\nimport { toRefs, withDefaults } from 'vue'\n\n interface Props {\n tabs: string[]\n selectedTab: string\n edition: boolean\n disabled?: boolean\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserProfileTabs',\n props: {\n tabs: null,\n selectedTab: null,\n edition: { type: Boolean },\n disabled: { type: Boolean, default: false }\n },\n setup(__props: any) {\n\nconst props = __props as { tabs: string[], selectedTab: string, edition: boolean, disabled: boolean };\n\n \n\n const { tabs, selectedTab, disabled } = toRefs(props)\n\n function getPath(tab: string) {\n switch (tab) {\n case 'ACCOUNT':\n case 'PICTURE':\n return `/profile/edit/${tab.toLocaleLowerCase()}`\n case 'APPS':\n case 'PREFERENCES':\n case 'SPORTS':\n return `/profile${\n props.edition ? '/edit' : ''\n }/${tab.toLocaleLowerCase()}`\n default:\n case 'PROFILE':\n return `/profile${props.edition ? '/edit' : ''}`\n }\n }\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(tabs), (tab) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"profile-tab custom-checkbox\",\n key: tab\n }, [\n _createElementVNode(\"label\", null, [\n _createElementVNode(\"input\", {\n type: \"radio\",\n id: tab,\n name: tab,\n checked: _unref(selectedTab).split('/')[0] === tab,\n disabled: _unref(disabled),\n onInput: ($event: any) => (_ctx.$router.push(getPath(tab)))\n }, null, 40, _hoisted_3),\n _createElementVNode(\"span\", null, _toDisplayString(_ctx.$t(`user.PROFILE.TABS.${tab}`)), 1)\n ])\n ]))\n }), 128))\n ])\n ]))\n}\n}\n\n})","import script from \"./UserProfileTabs.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserProfileTabs.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserProfileTabs.vue?vue&type=style&index=0&id=01b05f01&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, resolveComponent as _resolveComponent, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-9729cba4\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"user-profile\" }\nconst _hoisted_2 = { class: \"box\" }\n\nimport { toRefs } from 'vue'\n\n import UserHeader from '@/components/User/ProfileDisplay/UserHeader.vue'\n import UserProfileTabs from '@/components/User/UserProfileTabs.vue'\n import { IUserProfile } from '@/types/user'\n\n interface Props {\n user: IUserProfile\n tab: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'index',\n props: {\n user: null,\n tab: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IUserProfile\n tab: string\n };\n\n \n\n const { user, tab } = toRefs(props)\n const tabs = ['PROFILE', 'PREFERENCES', 'SPORTS', 'APPS']\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_view = _resolveComponent(\"router-view\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(UserHeader, { user: _unref(user) }, null, 8, [\"user\"]),\n _createElementVNode(\"div\", _hoisted_2, [\n _createVNode(UserProfileTabs, {\n tabs: tabs,\n selectedTab: _unref(tab),\n edition: false\n }, null, 8, [\"selectedTab\"]),\n _createVNode(_component_router_view, { user: _unref(user) }, null, 8, [\"user\"])\n ])\n ]))\n}\n}\n\n})","import script from \"./index.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./index.vue?vue&type=style&index=0&id=9729cba4&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-9729cba4\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, unref as _unref, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n id: \"user-preferences\",\n class: \"description-list\"\n}\nconst _hoisted_2 = { class: \"profile-buttons\" }\n\nimport { computed, ComputedRef } from 'vue'\n\n import { ROOT_STORE } from '@/store/constants'\n import { IAuthUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { getDateFormat } from '@/utils/dates'\n import { languageLabels } from '@/utils/locales'\n\n interface Props {\n user: IAuthUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserPreferences',\n props: {\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IAuthUserProfile\n };\n\n \n\n const store = useStore()\n\n const appLanguage: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.LANGUAGE]\n )\n const userLanguage = computed(() =>\n props.user.language\n ? languageLabels[props.user.language]\n : languageLabels['en']\n )\n const fistDayOfWeek = computed(() => (props.user.weekm ? 'MONDAY' : 'SUNDAY'))\n const timezone = computed(() =>\n props.user.timezone ? props.user.timezone : 'Europe/Paris'\n )\n const date_format = computed(() =>\n props.user.date_format ? props.user.date_format : 'MM/dd/yyyy'\n )\n const display_ascent = computed(() =>\n props.user.display_ascent ? 'DISPLAYED' : 'HIDDEN'\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"dl\", null, [\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.LANGUAGE')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_unref(userLanguage)), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.TIMEZONE')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_unref(timezone)), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.DATE_FORMAT')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_unref(getDateFormat)(_unref(date_format), _unref(appLanguage))), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.FIRST_DAY_OF_WEEK')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_ctx.$t(`user.PROFILE.${_unref(fistDayOfWeek)}`)), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.UNITS.LABEL')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_ctx.$t(\n `user.PROFILE.UNITS.${__props.user.imperial_units ? 'IMPERIAL' : 'METRIC'}`\n )), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.ASCENT_DATA')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_ctx.$t(`common.${_unref(display_ascent)}`)), 1)\n ]),\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"button\", {\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$router.push('/profile/edit/preferences')))\n }, _toDisplayString(_ctx.$t('user.PROFILE.EDIT_PREFERENCES')), 1),\n _createElementVNode(\"button\", {\n onClick: _cache[1] || (_cache[1] = ($event: any) => (_ctx.$router.push('/')))\n }, _toDisplayString(_ctx.$t('common.HOME')), 1)\n ])\n ]))\n}\n}\n\n})","import script from \"./UserPreferences.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserPreferences.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, createVNode as _createVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = {\n id: \"user-profile-edition\",\n class: \"center-card\"\n}\n\nimport { computed, toRefs } from 'vue'\n\n import UserProfileTabs from '@/components/User/UserProfileTabs.vue'\n import { AUTH_USER_STORE } from '@/store/constants'\n import { IUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n\n interface Props {\n user: IUserProfile\n tab: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'index',\n props: {\n user: null,\n tab: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IUserProfile\n tab: string\n };\n\n \n\n const store = useStore()\n\n const { user, tab } = toRefs(props)\n const tabs = ['PROFILE', 'ACCOUNT', 'PICTURE', 'PREFERENCES', 'SPORTS']\n const loading = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.USER_LOADING]\n )\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_view = _resolveComponent(\"router-view\")!\n const _component_Card = _resolveComponent(\"Card\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_Card, null, {\n title: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t(`user.PROFILE.${_unref(tab)}_EDITION`)), 1)\n ]),\n content: _withCtx(() => [\n _createVNode(UserProfileTabs, {\n tabs: tabs,\n selectedTab: _unref(tab),\n edition: true,\n disabled: _unref(loading)\n }, null, 8, [\"selectedTab\", \"disabled\"]),\n _createVNode(_component_router_view, { user: _unref(user) }, null, 8, [\"user\"])\n ]),\n _: 1\n })\n ]))\n}\n}\n\n})","import script from \"./index.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { resolveComponent as _resolveComponent, unref as _unref, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, createElementBlock as _createElementBlock, vModelText as _vModelText, createElementVNode as _createElementVNode, withDirectives as _withDirectives, createTextVNode as _createTextVNode, createVNode as _createVNode, withModifiers as _withModifiers, normalizeClass as _normalizeClass, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-37b8c4c8\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"user-infos-edition\" }\nconst _hoisted_2 = { class: \"profile-form form-box\" }\nconst _hoisted_3 = {\n key: 1,\n class: \"info-box success-message\"\n}\nconst _hoisted_4 = [\"onSubmit\"]\nconst _hoisted_5 = {\n class: \"form-items\",\n for: \"email\"\n}\nconst _hoisted_6 = [\"disabled\"]\nconst _hoisted_7 = {\n class: \"form-items\",\n for: \"password-field\"\n}\nconst _hoisted_8 = {\n class: \"form-items\",\n for: \"new-password-field\"\n}\nconst _hoisted_9 = { class: \"form-buttons\" }\nconst _hoisted_10 = {\n class: \"confirm\",\n type: \"submit\"\n}\n\nimport {\n ComputedRef,\n Ref,\n computed,\n reactive,\n ref,\n toRefs,\n onMounted,\n watch,\n onUnmounted,\n } from 'vue'\n\n import PasswordInput from '@/components/Common/PasswordInput.vue'\n import { AUTH_USER_STORE, ROOT_STORE } from '@/store/constants'\n import { TAppConfig } from '@/types/application'\n import { IUserProfile, IUserAccountPayload } from '@/types/user'\n import { useStore } from '@/use/useStore'\n\n interface Props {\n user: IUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserAccountEdition',\n props: {\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IUserProfile\n };\n\n \n const { user } = toRefs(props)\n\n const store = useStore()\n const userForm: IUserAccountPayload = reactive({\n email: '',\n password: '',\n new_password: '',\n })\n const loading = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.USER_LOADING]\n )\n const appConfig: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.APP_CONFIG]\n )\n const isSuccess: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.IS_SUCCESS]\n )\n const emailUpdate = ref(false)\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n const formErrors = ref(false)\n const displayModal: Ref = ref(false)\n\n onMounted(() => {\n if (props.user) {\n updateUserForm(props.user)\n }\n })\n\n function invalidateForm() {\n formErrors.value = true\n }\n function updateUserForm(user: IUserProfile) {\n userForm.email = user.email\n }\n function updatePassword(password: string) {\n userForm.password = password\n }\n function updateNewPassword(new_password: string) {\n userForm.new_password = new_password\n }\n function updateProfile() {\n const payload: IUserAccountPayload = {\n email: userForm.email,\n password: userForm.password,\n }\n if (userForm.new_password) {\n payload.new_password = userForm.new_password\n }\n emailUpdate.value = userForm.email !== user.value.email\n store.dispatch(AUTH_USER_STORE.ACTIONS.UPDATE_USER_ACCOUNT, payload)\n }\n function updateDisplayModal(value: boolean) {\n displayModal.value = value\n }\n function deleteAccount(username: string) {\n store.dispatch(AUTH_USER_STORE.ACTIONS.DELETE_ACCOUNT, { username })\n }\n\n onUnmounted(() => {\n store.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_IS_SUCCESS, false)\n store.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n })\n\n watch(\n () => isSuccess.value,\n async (isSuccessValue) => {\n if (isSuccessValue) {\n updatePassword('')\n updateNewPassword('')\n updateUserForm(user.value)\n formErrors.value = false\n }\n }\n )\n watch(\n () => user.value.email,\n async () => {\n updateUserForm(user.value)\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n const _component_Modal = _resolveComponent(\"Modal\")!\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (displayModal.value)\n ? (_openBlock(), _createBlock(_component_Modal, {\n key: 0,\n title: _ctx.$t('common.CONFIRMATION'),\n message: _ctx.$t('user.CONFIRM_ACCOUNT_DELETION'),\n onConfirmAction: _cache[0] || (_cache[0] = ($event: any) => (deleteAccount(_unref(user).username))),\n onCancelAction: _cache[1] || (_cache[1] = ($event: any) => (updateDisplayModal(false)))\n }, null, 8, [\"title\", \"message\"]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_2, [\n (_unref(errorMessages))\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 0,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true),\n (_unref(isSuccess))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, _toDisplayString(_ctx.$t(\n `user.PROFILE.SUCCESSFUL_${\n emailUpdate.value && _unref(appConfig).is_email_sending_enabled ? 'EMAIL_' : ''\n }UPDATE`\n )), 1))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"form\", {\n class: _normalizeClass({ errors: formErrors.value }),\n onSubmit: _withModifiers(updateProfile, [\"prevent\"])\n }, [\n _createElementVNode(\"label\", _hoisted_5, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.EMAIL')) + \"* \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"email\",\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((userForm.email) = $event)),\n disabled: _unref(loading),\n required: true,\n onInvalid: invalidateForm\n }, null, 40, _hoisted_6), [\n [_vModelText, userForm.email]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_7, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.CURRENT_PASSWORD')) + \"* \", 1),\n _createVNode(PasswordInput, {\n id: \"password-field\",\n disabled: _unref(loading),\n password: userForm.password,\n required: true,\n onUpdatePassword: updatePassword,\n onPasswordError: invalidateForm\n }, null, 8, [\"disabled\", \"password\"])\n ]),\n _createElementVNode(\"label\", _hoisted_8, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.NEW_PASSWORD')) + \" \", 1),\n _createVNode(PasswordInput, {\n id: \"new-password-field\",\n disabled: _unref(loading),\n checkStrength: true,\n password: userForm.new_password,\n isSuccess: false,\n onUpdatePassword: updateNewPassword,\n onPasswordError: invalidateForm\n }, null, 8, [\"disabled\", \"password\"])\n ]),\n _createElementVNode(\"div\", _hoisted_9, [\n _createElementVNode(\"button\", _hoisted_10, _toDisplayString(_ctx.$t('buttons.SUBMIT')), 1),\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _cache[3] || (_cache[3] = _withModifiers(($event: any) => (_ctx.$router.push('/profile')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('buttons.CANCEL')), 1),\n _createElementVNode(\"button\", {\n class: \"danger\",\n onClick: _cache[4] || (_cache[4] = _withModifiers(($event: any) => (updateDisplayModal(true)), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('buttons.DELETE_MY_ACCOUNT')), 1)\n ])\n ], 42, _hoisted_4)\n ])\n ]))\n}\n}\n\n})","import script from \"./UserAccountEdition.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserAccountEdition.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserAccountEdition.vue?vue&type=style&index=0&id=37b8c4c8&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-37b8c4c8\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, vModelText as _vModelText, withDirectives as _withDirectives, createVNode as _createVNode, withModifiers as _withModifiers, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-5e5a4552\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"user-infos-edition\" }\nconst _hoisted_2 = { class: \"profile-form form-box\" }\nconst _hoisted_3 = [\"onSubmit\"]\nconst _hoisted_4 = {\n class: \"form-items\",\n for: \"registrationDate\"\n}\nconst _hoisted_5 = [\"value\"]\nconst _hoisted_6 = {\n class: \"form-items\",\n for: \"first_name\"\n}\nconst _hoisted_7 = [\"disabled\"]\nconst _hoisted_8 = {\n class: \"form-items\",\n for: \"last_name\"\n}\nconst _hoisted_9 = {\n class: \"form-items\",\n for: \"birth_date\"\n}\nconst _hoisted_10 = [\"disabled\"]\nconst _hoisted_11 = {\n class: \"form-items\",\n for: \"location\"\n}\nconst _hoisted_12 = [\"disabled\"]\nconst _hoisted_13 = { class: \"form-items\" }\nconst _hoisted_14 = { class: \"form-buttons\" }\nconst _hoisted_15 = {\n class: \"confirm\",\n type: \"submit\"\n}\n\nimport { format } from 'date-fns'\n import { ComputedRef, computed, reactive, onMounted, onUnmounted } from 'vue'\n\n import { AUTH_USER_STORE, ROOT_STORE } from '@/store/constants'\n import { IUserProfile, IUserPayload, IAuthUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { formatDate } from '@/utils/dates'\n\n interface Props {\n user: IAuthUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserInfosEdition',\n props: {\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IAuthUserProfile\n };\n\n \n\n const store = useStore()\n\n const userForm: IUserPayload = reactive({\n first_name: '',\n last_name: '',\n birth_date: '',\n location: '',\n bio: '',\n })\n const registrationDate = computed(() =>\n props.user.created_at\n ? formatDate(\n props.user.created_at,\n props.user.timezone,\n props.user.date_format\n )\n : ''\n )\n const loading = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.USER_LOADING]\n )\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n\n onMounted(() => {\n if (props.user) {\n updateUserForm(props.user)\n }\n })\n\n function updateUserForm(user: IUserProfile) {\n userForm.first_name = user.first_name ? user.first_name : ''\n userForm.last_name = user.last_name ? user.last_name : ''\n userForm.birth_date = user.birth_date\n ? format(new Date(user.birth_date), 'yyyy-MM-dd')\n : ''\n userForm.location = user.location ? user.location : ''\n userForm.bio = user.bio ? user.bio : ''\n }\n function updateBio(value: string) {\n userForm.bio = value\n }\n function updateProfile() {\n store.dispatch(AUTH_USER_STORE.ACTIONS.UPDATE_USER_PROFILE, userForm)\n }\n\n onUnmounted(() => {\n store.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n })\n\nreturn (_ctx: any,_cache: any) => {\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n const _component_CustomTextArea = _resolveComponent(\"CustomTextArea\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n (_unref(errorMessages))\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 0,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"form\", {\n onSubmit: _withModifiers(updateProfile, [\"prevent\"])\n }, [\n _createElementVNode(\"label\", _hoisted_4, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PROFILE.REGISTRATION_DATE')) + \" \", 1),\n _createElementVNode(\"input\", {\n id: \"registrationDate\",\n value: _unref(registrationDate),\n disabled: \"\"\n }, null, 8, _hoisted_5)\n ]),\n _createElementVNode(\"label\", _hoisted_6, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PROFILE.FIRST_NAME')) + \" \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"first_name\",\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((userForm.first_name) = $event)),\n disabled: _unref(loading)\n }, null, 8, _hoisted_7), [\n [_vModelText, userForm.first_name]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_8, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PROFILE.LAST_NAME')) + \" \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"last_name\",\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((userForm.last_name) = $event))\n }, null, 512), [\n [_vModelText, userForm.last_name]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_9, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PROFILE.BIRTH_DATE')) + \" \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"birth_date\",\n type: \"date\",\n class: \"birth-date\",\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((userForm.birth_date) = $event)),\n disabled: _unref(loading)\n }, null, 8, _hoisted_10), [\n [_vModelText, userForm.birth_date]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_11, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PROFILE.LOCATION')) + \" \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"location\",\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = ($event: any) => ((userForm.location) = $event)),\n disabled: _unref(loading)\n }, null, 8, _hoisted_12), [\n [_vModelText, userForm.location]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_13, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PROFILE.BIO')) + \" \", 1),\n _createVNode(_component_CustomTextArea, {\n name: \"bio\",\n charLimit: 200,\n input: userForm.bio,\n disabled: _unref(loading),\n onUpdateValue: updateBio\n }, null, 8, [\"input\", \"disabled\"])\n ]),\n _createElementVNode(\"div\", _hoisted_14, [\n _createElementVNode(\"button\", _hoisted_15, _toDisplayString(_ctx.$t('buttons.SUBMIT')), 1),\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _cache[4] || (_cache[4] = _withModifiers(($event: any) => (_ctx.$router.push('/profile')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('buttons.CANCEL')), 1)\n ])\n ], 40, _hoisted_3)\n ])\n ]))\n}\n}\n\n})","import script from \"./UserInfosEdition.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserInfosEdition.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserInfosEdition.vue?vue&type=style&index=0&id=5e5a4552&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-5e5a4552\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createVNode as _createVNode, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, createElementBlock as _createElementBlock, withModifiers as _withModifiers, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-687e9604\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"user-picture-edition\" }\nconst _hoisted_2 = { class: \"user-picture-form\" }\nconst _hoisted_3 = [\"onSubmit\"]\nconst _hoisted_4 = { class: \"picture-help\" }\nconst _hoisted_5 = { class: \"info-box\" }\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-info-circle\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_7 = { class: \"picture-buttons\" }\nconst _hoisted_8 = [\"disabled\"]\n\nimport { ComputedRef, Ref, computed, ref, toRefs, onUnmounted } from 'vue'\n\n import UserPicture from '@/components/User/UserPicture.vue'\n import { AUTH_USER_STORE, ROOT_STORE } from '@/store/constants'\n import { TAppConfig } from '@/types/application'\n import { IUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { getReadableFileSize } from '@/utils/files'\n\n interface Props {\n user: IUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserPictureEdition',\n props: {\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IUserProfile\n };\n\n \n\n const store = useStore()\n\n const { user } = toRefs(props)\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n const appConfig: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.APP_CONFIG]\n )\n const fileSizeLimit = appConfig.value.max_single_file_size\n ? getReadableFileSize(appConfig.value.max_single_file_size)\n : ''\n const pictureFile: Ref = ref(null)\n\n function deleteUserPicture() {\n store.dispatch(AUTH_USER_STORE.ACTIONS.DELETE_PICTURE)\n }\n function updatePictureFile(event: Event & { target: HTMLInputElement }) {\n if (event.target.files) {\n pictureFile.value = event.target.files[0]\n }\n }\n function updateUserPicture() {\n if (pictureFile.value) {\n store.dispatch(AUTH_USER_STORE.ACTIONS.UPDATE_USER_PICTURE, {\n picture: pictureFile.value,\n })\n }\n }\n\n onUnmounted(() => {\n store.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n })\n\nreturn (_ctx: any,_cache: any) => {\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n (_unref(errorMessages))\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 0,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true),\n _createVNode(UserPicture, { user: _unref(user) }, null, 8, [\"user\"]),\n _createElementVNode(\"form\", {\n onSubmit: _withModifiers(updateUserPicture, [\"prevent\"])\n }, [\n _createElementVNode(\"input\", {\n type: \"file\",\n name: \"picture\",\n accept: \".png,.jpg,.gif\",\n onInput: updatePictureFile\n }, null, 32),\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"span\", _hoisted_5, [\n _hoisted_6,\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.MAX_SIZE')) + \": \" + _toDisplayString(_unref(fileSizeLimit)), 1)\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_7, [\n _createElementVNode(\"button\", {\n type: \"submit\",\n disabled: !pictureFile.value\n }, _toDisplayString(_ctx.$t('user.PROFILE.PICTURE_UPDATE')), 9, _hoisted_8),\n (_unref(user).picture)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 0,\n class: \"danger\",\n onClick: deleteUserPicture\n }, _toDisplayString(_ctx.$t('user.PROFILE.PICTURE_REMOVE')), 1))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$router.push('/profile')))\n }, _toDisplayString(_ctx.$t('user.PROFILE.BACK_TO_PROFILE')), 1)\n ])\n ], 40, _hoisted_3)\n ])\n ]))\n}\n}\n\n})","import script from \"./UserPictureEdition.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserPictureEdition.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserPictureEdition.vue?vue&type=style&index=0&id=687e9604&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-687e9604\"]])\n\nexport default __exports__","export const timeZones = [\n 'Africa/Abidjan',\n 'Africa/Accra',\n 'Africa/Algiers',\n 'Africa/Bissau',\n 'Africa/Cairo',\n 'Africa/Casablanca',\n 'Africa/Ceuta',\n 'Africa/El_Aaiun',\n 'Africa/Johannesburg',\n 'Africa/Juba',\n 'Africa/Khartoum',\n 'Africa/Lagos',\n 'Africa/Maputo',\n 'Africa/Monrovia',\n 'Africa/Nairobi',\n 'Africa/Ndjamena',\n 'Africa/Sao_Tome',\n 'Africa/Tripoli',\n 'Africa/Tunis',\n 'Africa/Windhoek',\n 'America/Adak',\n 'America/Anchorage',\n 'America/Araguaina',\n 'America/Argentina/Buenos_Aires',\n 'America/Argentina/Catamarca',\n 'America/Argentina/Cordoba',\n 'America/Argentina/Jujuy',\n 'America/Argentina/La_Rioja',\n 'America/Argentina/Mendoza',\n 'America/Argentina/Rio_Gallegos',\n 'America/Argentina/Salta',\n 'America/Argentina/San_Juan',\n 'America/Argentina/San_Luis',\n 'America/Argentina/Tucuman',\n 'America/Argentina/Ushuaia',\n 'America/Asuncion',\n 'America/Atikokan',\n 'America/Bahia',\n 'America/Bahia_Banderas',\n 'America/Barbados',\n 'America/Belem',\n 'America/Belize',\n 'America/Blanc-Sablon',\n 'America/Boa_Vista',\n 'America/Bogota',\n 'America/Boise',\n 'America/Cambridge_Bay',\n 'America/Campo_Grande',\n 'America/Cancun',\n 'America/Caracas',\n 'America/Cayenne',\n 'America/Chicago',\n 'America/Chihuahua',\n 'America/Costa_Rica',\n 'America/Creston',\n 'America/Cuiaba',\n 'America/Curacao',\n 'America/Danmarkshavn',\n 'America/Dawson',\n 'America/Dawson_Creek',\n 'America/Denver',\n 'America/Detroit',\n 'America/Edmonton',\n 'America/Eirunepe',\n 'America/El_Salvador',\n 'America/Fortaleza',\n 'America/Fort_Nelson',\n 'America/Glace_Bay',\n 'America/Godthab',\n 'America/Goose_Bay',\n 'America/Grand_Turk',\n 'America/Guatemala',\n 'America/Guayaquil',\n 'America/Guyana',\n 'America/Halifax',\n 'America/Havana',\n 'America/Hermosillo',\n 'America/Indiana/Indianapolis',\n 'America/Indiana/Knox',\n 'America/Indiana/Marengo',\n 'America/Indiana/Petersburg',\n 'America/Indiana/Tell_City',\n 'America/Indiana/Vevay',\n 'America/Indiana/Vincennes',\n 'America/Indiana/Winamac',\n 'America/Inuvik',\n 'America/Iqaluit',\n 'America/Jamaica',\n 'America/Juneau',\n 'America/Kentucky/Louisville',\n 'America/Kentucky/Monticello',\n 'America/La_Paz',\n 'America/Lima',\n 'America/Los_Angeles',\n 'America/Maceio',\n 'America/Managua',\n 'America/Manaus',\n 'America/Martinique',\n 'America/Matamoros',\n 'America/Mazatlan',\n 'America/Menominee',\n 'America/Merida',\n 'America/Metlakatla',\n 'America/Mexico_City',\n 'America/Miquelon',\n 'America/Moncton',\n 'America/Monterrey',\n 'America/Montevideo',\n 'America/Nassau',\n 'America/New_York',\n 'America/Nipigon',\n 'America/Nome',\n 'America/Noronha',\n 'America/North_Dakota/Beulah',\n 'America/North_Dakota/Center',\n 'America/North_Dakota/New_Salem',\n 'America/Ojinaga',\n 'America/Panama',\n 'America/Pangnirtung',\n 'America/Paramaribo',\n 'America/Phoenix',\n 'America/Port-au-Prince',\n 'America/Port_of_Spain',\n 'America/Porto_Velho',\n 'America/Puerto_Rico',\n 'America/Punta_Arenas',\n 'America/Rainy_River',\n 'America/Rankin_Inlet',\n 'America/Recife',\n 'America/Regina',\n 'America/Resolute',\n 'America/Rio_Branco',\n 'America/Santarem',\n 'America/Santiago',\n 'America/Santo_Domingo',\n 'America/Sao_Paulo',\n 'America/Scoresbysund',\n 'America/Sitka',\n 'America/St_Johns',\n 'America/Swift_Current',\n 'America/Tegucigalpa',\n 'America/Thule',\n 'America/Thunder_Bay',\n 'America/Tijuana',\n 'America/Toronto',\n 'America/Vancouver',\n 'America/Whitehorse',\n 'America/Winnipeg',\n 'America/Yakutat',\n 'America/Yellowknife',\n 'Antarctica/Casey',\n 'Antarctica/Davis',\n 'Antarctica/DumontDUrville',\n 'Antarctica/Macquarie',\n 'Antarctica/Mawson',\n 'Antarctica/Palmer',\n 'Antarctica/Rothera',\n 'Antarctica/Syowa',\n 'Antarctica/Troll',\n 'Antarctica/Vostok',\n 'Asia/Almaty',\n 'Asia/Amman',\n 'Asia/Anadyr',\n 'Asia/Aqtau',\n 'Asia/Aqtobe',\n 'Asia/Ashgabat',\n 'Asia/Atyrau',\n 'Asia/Baghdad',\n 'Asia/Baku',\n 'Asia/Bangkok',\n 'Asia/Barnaul',\n 'Asia/Beirut',\n 'Asia/Bishkek',\n 'Asia/Brunei',\n 'Asia/Chita',\n 'Asia/Choibalsan',\n 'Asia/Colombo',\n 'Asia/Damascus',\n 'Asia/Dhaka',\n 'Asia/Dili',\n 'Asia/Dubai',\n 'Asia/Dushanbe',\n 'Asia/Famagusta',\n 'Asia/Gaza',\n 'Asia/Hebron',\n 'Asia/Ho_Chi_Minh',\n 'Asia/Hong_Kong',\n 'Asia/Hovd',\n 'Asia/Irkutsk',\n 'Asia/Jakarta',\n 'Asia/Jayapura',\n 'Asia/Jerusalem',\n 'Asia/Kabul',\n 'Asia/Kamchatka',\n 'Asia/Karachi',\n 'Asia/Kathmandu',\n 'Asia/Khandyga',\n 'Asia/Kolkata',\n 'Asia/Krasnoyarsk',\n 'Asia/Kuala_Lumpur',\n 'Asia/Kuching',\n 'Asia/Macau',\n 'Asia/Magadan',\n 'Asia/Makassar',\n 'Asia/Manila',\n 'Asia/Nicosia',\n 'Asia/Novokuznetsk',\n 'Asia/Novosibirsk',\n 'Asia/Omsk',\n 'Asia/Oral',\n 'Asia/Pontianak',\n 'Asia/Pyongyang',\n 'Asia/Qatar',\n 'Asia/Qostanay',\n 'Asia/Qyzylorda',\n 'Asia/Riyadh',\n 'Asia/Sakhalin',\n 'Asia/Samarkand',\n 'Asia/Seoul',\n 'Asia/Shanghai',\n 'Asia/Singapore',\n 'Asia/Srednekolymsk',\n 'Asia/Taipei',\n 'Asia/Tashkent',\n 'Asia/Tbilisi',\n 'Asia/Tehran',\n 'Asia/Thimphu',\n 'Asia/Tokyo',\n 'Asia/Tomsk',\n 'Asia/Ulaanbaatar',\n 'Asia/Urumqi',\n 'Asia/Ust-Nera',\n 'Asia/Vladivostok',\n 'Asia/Yakutsk',\n 'Asia/Yangon',\n 'Asia/Yekaterinburg',\n 'Asia/Yerevan',\n 'Atlantic/Azores',\n 'Atlantic/Bermuda',\n 'Atlantic/Canary',\n 'Atlantic/Cape_Verde',\n 'Atlantic/Faroe',\n 'Atlantic/Madeira',\n 'Atlantic/Reykjavik',\n 'Atlantic/South_Georgia',\n 'Atlantic/Stanley',\n 'Australia/Adelaide',\n 'Australia/Brisbane',\n 'Australia/Broken_Hill',\n 'Australia/Currie',\n 'Australia/Darwin',\n 'Australia/Eucla',\n 'Australia/Hobart',\n 'Australia/Lindeman',\n 'Australia/Lord_Howe',\n 'Australia/Melbourne',\n 'Australia/Perth',\n 'Australia/Sydney',\n 'Europe/Amsterdam',\n 'Europe/Andorra',\n 'Europe/Astrakhan',\n 'Europe/Athens',\n 'Europe/Belgrade',\n 'Europe/Berlin',\n 'Europe/Brussels',\n 'Europe/Bucharest',\n 'Europe/Budapest',\n 'Europe/Chisinau',\n 'Europe/Copenhagen',\n 'Europe/Dublin',\n 'Europe/Gibraltar',\n 'Europe/Helsinki',\n 'Europe/Istanbul',\n 'Europe/Kaliningrad',\n 'Europe/Kiev',\n 'Europe/Kirov',\n 'Europe/Lisbon',\n 'Europe/London',\n 'Europe/Luxembourg',\n 'Europe/Madrid',\n 'Europe/Malta',\n 'Europe/Minsk',\n 'Europe/Monaco',\n 'Europe/Moscow',\n 'Europe/Oslo',\n 'Europe/Paris',\n 'Europe/Prague',\n 'Europe/Riga',\n 'Europe/Rome',\n 'Europe/Samara',\n 'Europe/Saratov',\n 'Europe/Simferopol',\n 'Europe/Sofia',\n 'Europe/Stockholm',\n 'Europe/Tallinn',\n 'Europe/Tirane',\n 'Europe/Ulyanovsk',\n 'Europe/Uzhgorod',\n 'Europe/Vienna',\n 'Europe/Vilnius',\n 'Europe/Volgograd',\n 'Europe/Warsaw',\n 'Europe/Zaporozhye',\n 'Europe/Zurich',\n 'Indian/Chagos',\n 'Indian/Christmas',\n 'Indian/Cocos',\n 'Indian/Kerguelen',\n 'Indian/Mahe',\n 'Indian/Maldives',\n 'Indian/Mauritius',\n 'Indian/Reunion',\n 'Pacific/Apia',\n 'Pacific/Auckland',\n 'Pacific/Bougainville',\n 'Pacific/Chatham',\n 'Pacific/Chuuk',\n 'Pacific/Easter',\n 'Pacific/Efate',\n 'Pacific/Enderbury',\n 'Pacific/Fakaofo',\n 'Pacific/Fiji',\n 'Pacific/Funafuti',\n 'Pacific/Galapagos',\n 'Pacific/Gambier',\n 'Pacific/Guadalcanal',\n 'Pacific/Guam',\n 'Pacific/Honolulu',\n 'Pacific/Kiritimati',\n 'Pacific/Kosrae',\n 'Pacific/Kwajalein',\n 'Pacific/Majuro',\n 'Pacific/Marquesas',\n 'Pacific/Nauru',\n 'Pacific/Niue',\n 'Pacific/Norfolk',\n 'Pacific/Noumea',\n 'Pacific/Pago_Pago',\n 'Pacific/Palau',\n 'Pacific/Pitcairn',\n 'Pacific/Pohnpei',\n 'Pacific/Port_Moresby',\n 'Pacific/Rarotonga',\n 'Pacific/Tahiti',\n 'Pacific/Tarawa',\n 'Pacific/Tongatapu',\n 'Pacific/Wake',\n 'Pacific/Wallis',\n]\n","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, withKeys as _withKeys, createElementVNode as _createElementVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-47ea2903\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"tz-dropdown\" }\nconst _hoisted_2 = [\"value\", \"disabled\", \"onKeydown\"]\nconst _hoisted_3 = [\"onClick\", \"onMouseover\", \"autofocus\"]\n\nimport { Ref, ref, toRefs, watch, withDefaults } from 'vue'\n\n import { timeZones } from '@/utils/timezone'\n\n interface Props {\n input: string\n disabled?: boolean\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'TimezoneDropdown',\n props: {\n input: null,\n disabled: { type: Boolean, default: false }\n },\n emits: ['updateTimezone'],\n setup(__props: any, { emit }) {\n\nconst props = __props as { input: string, disabled: boolean };\n\n \n\n \n\n const { input, disabled } = toRefs(props)\n const timezone: Ref = ref(props.input)\n const isOpen: Ref = ref(false)\n const tzList: Ref = ref(null)\n const focusItemIndex: Ref = ref(0)\n\n function matchTimezone(t: string): RegExpMatchArray | null {\n return t.toLowerCase().match(timezone.value.toLowerCase())\n }\n function onMouseOver(index: number) {\n focusItemIndex.value = index\n }\n function onUpdateTimezone(value: string) {\n timezone.value = value\n isOpen.value = false\n emit('updateTimezone', value)\n }\n function onEnter(event: Event & { target: HTMLInputElement }) {\n event.preventDefault()\n if (tzList.value?.firstElementChild?.innerHTML) {\n onUpdateTimezone(tzList.value?.firstElementChild?.innerHTML)\n }\n }\n function openDropdown(event: Event & { target: HTMLInputElement }) {\n event.preventDefault()\n isOpen.value = true\n timezone.value = event.target.value.trim()\n }\n\n watch(\n () => props.input,\n (value) => {\n timezone.value = value\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"input\", {\n class: \"tz-dropdown-input\",\n id: \"timezone\",\n name: \"timezone\",\n value: timezone.value,\n disabled: _unref(disabled),\n required: \"\",\n onKeydown: [\n _cache[0] || (_cache[0] = _withKeys(($event: any) => (onUpdateTimezone(_unref(input))), [\"esc\"])),\n _withKeys(onEnter, [\"enter\"])\n ],\n onInput: openDropdown\n }, null, 40, _hoisted_2),\n (isOpen.value)\n ? (_openBlock(), _createElementBlock(\"ul\", {\n key: 0,\n class: \"tz-dropdown-list\",\n ref_key: \"tzList\",\n ref: tzList\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(timeZones).filter((t) => matchTimezone(t)), (tz, index) => {\n return (_openBlock(), _createElementBlock(\"li\", {\n key: tz,\n class: _normalizeClass([\"tz-dropdown-item\", { focus: index === focusItemIndex.value }]),\n onClick: ($event: any) => (onUpdateTimezone(tz)),\n onMouseover: ($event: any) => (onMouseOver(index)),\n autofocus: index === focusItemIndex.value\n }, _toDisplayString(tz), 43, _hoisted_3))\n }), 128))\n ], 512))\n : _createCommentVNode(\"\", true)\n ]))\n}\n}\n\n})","import script from \"./TimezoneDropdown.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./TimezoneDropdown.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./TimezoneDropdown.vue?vue&type=style&index=0&id=47ea2903&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-47ea2903\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, renderList as _renderList, Fragment as _Fragment, createElementBlock as _createElementBlock, vModelSelect as _vModelSelect, createElementVNode as _createElementVNode, withDirectives as _withDirectives, createTextVNode as _createTextVNode, createVNode as _createVNode, withModifiers as _withModifiers, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-065d5e6c\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"user-preferences-edition\" }\nconst _hoisted_2 = { class: \"profile-form form-box\" }\nconst _hoisted_3 = [\"onSubmit\"]\nconst _hoisted_4 = { class: \"form-items\" }\nconst _hoisted_5 = [\"disabled\"]\nconst _hoisted_6 = [\"value\"]\nconst _hoisted_7 = { class: \"form-items\" }\nconst _hoisted_8 = { class: \"form-items\" }\nconst _hoisted_9 = [\"disabled\"]\nconst _hoisted_10 = [\"value\"]\nconst _hoisted_11 = { class: \"form-items form-checkboxes\" }\nconst _hoisted_12 = { class: \"checkboxes-label\" }\nconst _hoisted_13 = { class: \"checkboxes\" }\nconst _hoisted_14 = [\"id\", \"name\", \"checked\", \"disabled\", \"onInput\"]\nconst _hoisted_15 = { class: \"checkbox-label\" }\nconst _hoisted_16 = { class: \"form-items form-checkboxes\" }\nconst _hoisted_17 = { class: \"checkboxes-label\" }\nconst _hoisted_18 = { class: \"checkboxes\" }\nconst _hoisted_19 = [\"id\", \"name\", \"checked\", \"disabled\", \"onInput\"]\nconst _hoisted_20 = { class: \"checkbox-label\" }\nconst _hoisted_21 = { class: \"form-items form-checkboxes\" }\nconst _hoisted_22 = { class: \"checkboxes-label\" }\nconst _hoisted_23 = { class: \"checkboxes\" }\nconst _hoisted_24 = [\"id\", \"name\", \"checked\", \"disabled\", \"onInput\"]\nconst _hoisted_25 = { class: \"checkbox-label\" }\nconst _hoisted_26 = { class: \"form-buttons\" }\nconst _hoisted_27 = {\n class: \"confirm\",\n type: \"submit\"\n}\n\nimport { ComputedRef, computed, reactive, onMounted, onUnmounted } from 'vue'\n\n import TimezoneDropdown from '@/components/User/ProfileEdition/TimezoneDropdown.vue'\n import { AUTH_USER_STORE, ROOT_STORE } from '@/store/constants'\n import { IUserPreferencesPayload, IAuthUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { availableDateFormatOptions } from '@/utils/dates'\n import { availableLanguages } from '@/utils/locales'\n\n interface Props {\n user: IAuthUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserPreferencesEdition',\n props: {\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IAuthUserProfile\n };\n\n \n\n const store = useStore()\n\n const userForm: IUserPreferencesPayload = reactive({\n display_ascent: true,\n imperial_units: false,\n language: '',\n timezone: 'Europe/Paris',\n date_format: 'dd/MM/yyyy',\n weekm: false,\n })\n const weekStart = [\n {\n label: 'SUNDAY',\n value: false,\n },\n {\n label: 'MONDAY',\n value: true,\n },\n ]\n const imperialUnits = [\n {\n label: 'METRIC',\n value: false,\n },\n {\n label: 'IMPERIAL',\n value: true,\n },\n ]\n const ascentData = [\n {\n label: 'DISPLAYED',\n value: true,\n },\n {\n label: 'HIDDEN',\n value: false,\n },\n ]\n const loading = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.USER_LOADING]\n )\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n const dateFormatOptions = computed(() =>\n availableDateFormatOptions(\n new Date().toUTCString(),\n props.user.timezone,\n userForm.language\n )\n )\n\n onMounted(() => {\n if (props.user) {\n updateUserForm(props.user)\n }\n })\n\n function updateUserForm(user: IAuthUserProfile) {\n userForm.display_ascent = user.display_ascent\n userForm.imperial_units = user.imperial_units ? user.imperial_units : false\n userForm.language = user.language ? user.language : 'en'\n userForm.timezone = user.timezone ? user.timezone : 'Europe/Paris'\n userForm.date_format = user.date_format ? user.date_format : 'dd/MM/yyyy'\n userForm.weekm = user.weekm ? user.weekm : false\n }\n function updateProfile() {\n store.dispatch(AUTH_USER_STORE.ACTIONS.UPDATE_USER_PREFERENCES, userForm)\n }\n function updateTZ(value: string) {\n userForm.timezone = value\n }\n function updateAscentDisplay(value: boolean) {\n userForm.display_ascent = value\n }\n function updateImperialUnit(value: boolean) {\n userForm.imperial_units = value\n }\n function updateWeekM(value: boolean) {\n userForm.weekm = value\n }\n\n onUnmounted(() => {\n store.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n })\n\nreturn (_ctx: any,_cache: any) => {\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n (_unref(errorMessages))\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 0,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"form\", {\n onSubmit: _withModifiers(updateProfile, [\"prevent\"])\n }, [\n _createElementVNode(\"label\", _hoisted_4, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PROFILE.LANGUAGE')) + \" \", 1),\n _withDirectives(_createElementVNode(\"select\", {\n id: \"language\",\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((userForm.language) = $event)),\n disabled: _unref(loading)\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(availableLanguages), (lang) => {\n return (_openBlock(), _createElementBlock(\"option\", {\n value: lang.value,\n key: lang.value\n }, _toDisplayString(lang.label), 9, _hoisted_6))\n }), 128))\n ], 8, _hoisted_5), [\n [_vModelSelect, userForm.language]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_7, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PROFILE.TIMEZONE')) + \" \", 1),\n _createVNode(TimezoneDropdown, {\n input: userForm.timezone,\n disabled: _unref(loading),\n onUpdateTimezone: updateTZ\n }, null, 8, [\"input\", \"disabled\"])\n ]),\n _createElementVNode(\"label\", _hoisted_8, [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PROFILE.DATE_FORMAT')) + \" \", 1),\n _withDirectives(_createElementVNode(\"select\", {\n id: \"date_format\",\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((userForm.date_format) = $event)),\n disabled: _unref(loading)\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(dateFormatOptions), (dateFormat) => {\n return (_openBlock(), _createElementBlock(\"option\", {\n value: dateFormat.value,\n key: dateFormat.value\n }, _toDisplayString(dateFormat.label), 9, _hoisted_10))\n }), 128))\n ], 8, _hoisted_9), [\n [_vModelSelect, userForm.date_format]\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_11, [\n _createElementVNode(\"span\", _hoisted_12, _toDisplayString(_ctx.$t('user.PROFILE.FIRST_DAY_OF_WEEK')), 1),\n _createElementVNode(\"div\", _hoisted_13, [\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList(weekStart, (start) => {\n return _createElementVNode(\"label\", {\n key: start.label\n }, [\n _createElementVNode(\"input\", {\n type: \"radio\",\n id: start.label,\n name: start.label,\n checked: start.value === userForm.weekm,\n disabled: _unref(loading),\n onInput: ($event: any) => (updateWeekM(start.value))\n }, null, 40, _hoisted_14),\n _createElementVNode(\"span\", _hoisted_15, _toDisplayString(_ctx.$t(`user.PROFILE.${start.label}`)), 1)\n ])\n }), 64))\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_16, [\n _createElementVNode(\"span\", _hoisted_17, _toDisplayString(_ctx.$t('user.PROFILE.UNITS.LABEL')), 1),\n _createElementVNode(\"div\", _hoisted_18, [\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList(imperialUnits, (unit) => {\n return _createElementVNode(\"label\", {\n key: unit.label\n }, [\n _createElementVNode(\"input\", {\n type: \"radio\",\n id: unit.label,\n name: unit.label,\n checked: unit.value === userForm.imperial_units,\n disabled: _unref(loading),\n onInput: ($event: any) => (updateImperialUnit(unit.value))\n }, null, 40, _hoisted_19),\n _createElementVNode(\"span\", _hoisted_20, _toDisplayString(_ctx.$t(`user.PROFILE.UNITS.${unit.label}`)), 1)\n ])\n }), 64))\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_21, [\n _createElementVNode(\"span\", _hoisted_22, _toDisplayString(_ctx.$t('user.PROFILE.ASCENT_DATA')), 1),\n _createElementVNode(\"div\", _hoisted_23, [\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList(ascentData, (status) => {\n return _createElementVNode(\"label\", {\n key: status.label\n }, [\n _createElementVNode(\"input\", {\n type: \"radio\",\n id: status.label,\n name: status.label,\n checked: status.value === userForm.display_ascent,\n disabled: _unref(loading),\n onInput: ($event: any) => (updateAscentDisplay(status.value))\n }, null, 40, _hoisted_24),\n _createElementVNode(\"span\", _hoisted_25, _toDisplayString(_ctx.$t(`common.${status.label}`)), 1)\n ])\n }), 64))\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_26, [\n _createElementVNode(\"button\", _hoisted_27, _toDisplayString(_ctx.$t('buttons.SUBMIT')), 1),\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _cache[2] || (_cache[2] = _withModifiers(($event: any) => (_ctx.$router.push('/profile/preferences')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('buttons.CANCEL')), 1)\n ])\n ], 40, _hoisted_3)\n ])\n ]))\n}\n}\n\n})","import script from \"./UserPreferencesEdition.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserPreferencesEdition.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserPreferencesEdition.vue?vue&type=style&index=0&id=065d5e6c&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-065d5e6c\"]])\n\nexport default __exports__","export const oauth2_scopes = [\n 'profile:read',\n 'profile:write',\n 'users:read',\n 'users:write',\n 'workouts:read',\n 'workouts:write',\n]\n\nexport const admin_oauth2_scopes = ['application:write']\n","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, vModelText as _vModelText, withDirectives as _withDirectives, resolveComponent as _resolveComponent, createVNode as _createVNode, unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, withModifiers as _withModifiers, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-0657ee77\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"new-oauth2-app\" }\nconst _hoisted_2 = { id: \"new-oauth2-title\" }\nconst _hoisted_3 = { id: \"apps-form\" }\nconst _hoisted_4 = [\"onSubmit\"]\nconst _hoisted_5 = { class: \"form-items\" }\nconst _hoisted_6 = { class: \"form-item\" }\nconst _hoisted_7 = { for: \"app-name\" }\nconst _hoisted_8 = { class: \"form-item\" }\nconst _hoisted_9 = { for: \"app-description\" }\nconst _hoisted_10 = { class: \"form-item\" }\nconst _hoisted_11 = { for: \"app-url\" }\nconst _hoisted_12 = { class: \"form-item\" }\nconst _hoisted_13 = { for: \"app-redirect-uri\" }\nconst _hoisted_14 = { class: \"form-item-scope\" }\nconst _hoisted_15 = { class: \"form-item-scope-label\" }\nconst _hoisted_16 = { class: \"scope-label\" }\nconst _hoisted_17 = [\"name\", \"checked\", \"onChange\"]\nconst _hoisted_18 = [\"innerHTML\"]\nconst _hoisted_19 = { class: \"form-buttons\" }\nconst _hoisted_20 = [\"disabled\"]\n\nimport { computed, reactive } from 'vue'\n\n import { OAUTH2_STORE } from '@/store/constants'\n import { IOAuth2ClientPayload } from '@/types/oauth'\n import { IAuthUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { admin_oauth2_scopes, oauth2_scopes } from '@/utils/oauth'\n\n interface Props {\n authUser: IAuthUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'AddUserApp',\n props: {\n authUser: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n authUser: IAuthUserProfile\n };\n\n \n\n const store = useStore()\n const appForm = reactive({\n client_name: '',\n client_uri: '',\n client_description: '',\n redirect_uri: '',\n })\n const scopes: string[] = reactive([])\n const filtered_scopes = computed(() =>\n getScopes(props.authUser, admin_oauth2_scopes, oauth2_scopes)\n )\n\n function createApp() {\n const payload: IOAuth2ClientPayload = {\n client_name: appForm.client_name,\n client_description: appForm.client_description,\n client_uri: appForm.client_uri,\n redirect_uris: [appForm.redirect_uri],\n scope: scopes.sort().join(' '),\n }\n store.dispatch(OAUTH2_STORE.ACTIONS.CREATE_CLIENT, payload)\n }\n function updateDescription(value: string) {\n appForm.client_description = value\n }\n function updateScopes(scope: string) {\n const index = scopes.indexOf(scope)\n if (index > -1) {\n scopes.splice(index, 1)\n } else {\n scopes.push(scope)\n }\n }\n function getScopes(\n authUser: IAuthUserProfile,\n admin_scopes: string[],\n scopes: string[]\n ) {\n const filtered_scopes = [...scopes]\n if (authUser.admin) {\n filtered_scopes.push(...admin_scopes)\n }\n return filtered_scopes.sort()\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _component_CustomTextArea = _resolveComponent(\"CustomTextArea\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"h1\", _hoisted_2, _toDisplayString(_ctx.$t('oauth2.ADD_A_NEW_APP')), 1),\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"form\", {\n onSubmit: _withModifiers(createApp, [\"prevent\"])\n }, [\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"div\", _hoisted_6, [\n _createElementVNode(\"label\", _hoisted_7, _toDisplayString(_ctx.$t('oauth2.APP.NAME')) + \"*\", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"app-name\",\n type: \"text\",\n required: \"\",\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((appForm.client_name) = $event))\n }, null, 512), [\n [_vModelText, appForm.client_name]\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_8, [\n _createElementVNode(\"label\", _hoisted_9, _toDisplayString(_ctx.$t('oauth2.APP.DESCRIPTION')), 1),\n _createVNode(_component_CustomTextArea, {\n name: \"app-description\",\n charLimit: 200,\n input: appForm.description,\n onUpdateValue: updateDescription\n }, null, 8, [\"input\"])\n ]),\n _createElementVNode(\"div\", _hoisted_10, [\n _createElementVNode(\"label\", _hoisted_11, _toDisplayString(_ctx.$t('oauth2.APP.URL')) + \"*\", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"app-url\",\n type: \"text\",\n required: \"\",\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((appForm.client_uri) = $event))\n }, null, 512), [\n [_vModelText, appForm.client_uri]\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_12, [\n _createElementVNode(\"label\", _hoisted_13, _toDisplayString(_ctx.$t('oauth2.APP.REDIRECT_URL')) + \"* \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"app-redirect-uri\",\n type: \"text\",\n required: \"\",\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((appForm.redirect_uri) = $event))\n }, null, 512), [\n [_vModelText, appForm.redirect_uri]\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_14, [\n _createElementVNode(\"div\", _hoisted_15, _toDisplayString(_ctx.$t('oauth2.APP.SCOPE.LABEL')) + \"* \", 1),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(filtered_scopes), (scope) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"form-item-scope-checkboxes\",\n key: scope\n }, [\n _createElementVNode(\"label\", _hoisted_16, [\n _createElementVNode(\"input\", {\n type: \"checkbox\",\n name: scope,\n checked: scopes.includes(scope),\n onChange: ($event: any) => (updateScopes(scope))\n }, null, 40, _hoisted_17),\n _createElementVNode(\"code\", null, _toDisplayString(scope), 1)\n ]),\n _createElementVNode(\"p\", {\n class: \"scope-description\",\n innerHTML: _ctx.$t(`oauth2.APP.SCOPE.${scope}_DESCRIPTION`)\n }, null, 8, _hoisted_18)\n ]))\n }), 128))\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_19, [\n _createElementVNode(\"button\", {\n class: \"confirm\",\n type: \"submit\",\n disabled: scopes.length === 0\n }, _toDisplayString(_ctx.$t('buttons.SUBMIT')), 9, _hoisted_20),\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _cache[3] || (_cache[3] = _withModifiers(() => _ctx.$router.push('/profile/apps'), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('buttons.CANCEL')), 1)\n ])\n ], 40, _hoisted_4)\n ])\n ]))\n}\n}\n\n})","import script from \"./AddUserApp.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AddUserApp.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./AddUserApp.vue?vue&type=style&index=0&id=0657ee77&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-0657ee77\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, createElementVNode as _createElementVNode, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, renderList as _renderList, Fragment as _Fragment, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-3b2fe9ed\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"authorize-oauth2-app\" }\nconst _hoisted_2 = { key: 0 }\nconst _hoisted_3 = { id: \"authorize-oauth2-title\" }\nconst _hoisted_4 = { class: \"oauth2-access description-list\" }\nconst _hoisted_5 = { class: \"client-scope\" }\nconst _hoisted_6 = [\"innerHTML\"]\nconst _hoisted_7 = { class: \"authorize-oauth2-buttons\" }\nconst _hoisted_8 = { key: 1 }\nconst _hoisted_9 = { class: \"no-app\" }\n\nimport { computed, ComputedRef, onBeforeMount } from 'vue'\n import { useRoute } from 'vue-router'\n\n import { OAUTH2_STORE, ROOT_STORE } from '@/store/constants'\n import { IOAuth2Client } from '@/types/oauth'\n import { useStore } from '@/use/useStore'\n\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'AuthorizeUserApp',\n setup(__props) {\n\n const route = useRoute()\n const store = useStore()\n\n const client: ComputedRef = computed(\n () => store.getters[OAUTH2_STORE.GETTERS.CLIENT]\n )\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n\n onBeforeMount(() => loadApp())\n\n function loadApp() {\n if (route.query.client_id && typeof route.query.client_id === 'string') {\n store.dispatch(\n OAUTH2_STORE.ACTIONS.GET_CLIENT_BY_CLIENT_ID,\n route.query.client_id\n )\n }\n }\n\n function authorizeApp() {\n store.dispatch(OAUTH2_STORE.ACTIONS.AUTHORIZE_CLIENT, {\n client_id: `${route.query.client_id}`,\n redirect_uri: `${route.query.redirect_uri}`,\n response_type: `${route.query.response_type}`,\n scope: `${route.query.scope}`,\n state: `${route.query.state ? route.query.state : ''}`,\n code_challenge: `${\n route.query.code_challenge ? route.query.code_challenge : ''\n }`,\n code_challenge_method: `${\n route.query.code_challenge_method\n ? route.query.code_challenge_method\n : ''\n }`,\n })\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_i18n_t = _resolveComponent(\"i18n-t\")!\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_unref(client).client_id)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [\n _createElementVNode(\"h1\", _hoisted_3, [\n _createVNode(_component_i18n_t, { keypath: \"oauth2.AUTHORIZE_APP\" }, {\n default: _withCtx(() => [\n _createVNode(_component_router_link, {\n to: { name: 'UserApp', params: { id: _unref(client).id } }\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_unref(client).name), 1)\n ]),\n _: 1\n }, 8, [\"to\"])\n ]),\n _: 1\n })\n ]),\n (_unref(errorMessages))\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 0,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"p\", null, _toDisplayString(_ctx.$t('oauth2.APP_REQUESTING_ACCESS')), 1),\n _createElementVNode(\"dl\", null, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(client).scope.split(' '), (scope) => {\n return (_openBlock(), _createElementBlock(_Fragment, { key: scope }, [\n _createElementVNode(\"dt\", _hoisted_5, [\n _createElementVNode(\"code\", null, _toDisplayString(scope), 1)\n ]),\n _createElementVNode(\"dd\", {\n innerHTML: _ctx.$t(`oauth2.APP.SCOPE.${scope}_DESCRIPTION`)\n }, null, 8, _hoisted_6)\n ], 64))\n }), 128))\n ]),\n _createElementVNode(\"div\", _hoisted_7, [\n _createElementVNode(\"button\", {\n class: \"danger\",\n onClick: authorizeApp\n }, _toDisplayString(_ctx.$t('buttons.AUTHORIZE')), 1),\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$router.push('/profile/apps')))\n }, _toDisplayString(_ctx.$t('buttons.CANCEL')), 1)\n ])\n ])\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_8, [\n _createElementVNode(\"p\", _hoisted_9, _toDisplayString(_ctx.$t('oauth2.NO_APP')), 1),\n _createElementVNode(\"button\", {\n onClick: _cache[1] || (_cache[1] = ($event: any) => (_ctx.$router.push('/profile/apps')))\n }, _toDisplayString(_ctx.$t('buttons.BACK')), 1)\n ]))\n ]))\n}\n}\n\n})","import script from \"./AuthorizeUserApp.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AuthorizeUserApp.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./AuthorizeUserApp.vue?vue&type=style&index=0&id=3b2fe9ed&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-3b2fe9ed\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, resolveComponent as _resolveComponent, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { id: \"oauth2-apps\" }\n\nimport { onUnmounted, toRefs } from 'vue'\n\n import { OAUTH2_STORE, ROOT_STORE } from '@/store/constants'\n import { IAuthUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n\n interface Props {\n user: IAuthUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'index',\n props: {\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IAuthUserProfile\n };\n\n \n\n const store = useStore()\n\n const { user } = toRefs(props)\n\n onUnmounted(() => {\n store.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n store.commit(OAUTH2_STORE.MUTATIONS.SET_CLIENTS, [])\n })\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_view = _resolveComponent(\"router-view\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_router_view, { authUser: _unref(user) }, null, 8, [\"authUser\"])\n ]))\n}\n}\n\n})","import script from \"./index.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { resolveComponent as _resolveComponent, unref as _unref, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, createElementBlock as _createElementBlock, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, createTextVNode as _createTextVNode, renderList as _renderList, Fragment as _Fragment, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-3a844fa2\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"oauth2-app\",\n class: \"description-list\"\n}\nconst _hoisted_2 = { key: 1 }\nconst _hoisted_3 = {\n key: 0,\n class: \"info-box success-message\"\n}\nconst _hoisted_4 = [\"title\"]\nconst _hoisted_5 = { key: 0 }\nconst _hoisted_6 = {\n key: 1,\n class: \"app-secret\"\n}\nconst _hoisted_7 = [\"title\"]\nconst _hoisted_8 = { class: \"client-scopes\" }\nconst _hoisted_9 = { class: \"app-buttons\" }\nconst _hoisted_10 = { key: 2 }\nconst _hoisted_11 = { class: \"no-app\" }\n\nimport {\n ComputedRef,\n Ref,\n capitalize,\n computed,\n onBeforeMount,\n toRefs,\n ref,\n onUnmounted,\n withDefaults,\n watch,\n } from 'vue'\n import { useRoute } from 'vue-router'\n\n import { OAUTH2_STORE, ROOT_STORE } from '@/store/constants'\n import { IOAuth2Client } from '@/types/oauth'\n import { IAuthUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { formatDate } from '@/utils/dates'\n\n interface Props {\n authUser: IAuthUserProfile\n afterCreation?: boolean\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserApp',\n props: {\n authUser: null,\n afterCreation: { type: Boolean, default: false }\n },\n setup(__props: any) {\n\nconst props = __props as { authUser: IAuthUserProfile, afterCreation: boolean };\n\n \n const route = useRoute()\n const store = useStore()\n\n const { afterCreation, authUser } = toRefs(props)\n const client: ComputedRef = computed(\n () => store.getters[OAUTH2_STORE.GETTERS.CLIENT]\n )\n const revocationSuccessful: ComputedRef = computed(\n () => store.getters[OAUTH2_STORE.GETTERS.REVOCATION_SUCCESSFUL]\n )\n const displayModal: Ref = ref(false)\n const messageToDisplay: Ref = ref(null)\n const idCopied: Ref = ref(false)\n const secretCopied: Ref = ref(false)\n const clipboardSupport: Ref = ref(false)\n\n onBeforeMount(() => {\n loadClient()\n if (navigator.clipboard) {\n clipboardSupport.value = true\n }\n })\n\n function loadClient() {\n // after creation, client is already in store\n if (\n !afterCreation.value &&\n route.params.id &&\n typeof route.params.id === 'string'\n ) {\n store.dispatch(OAUTH2_STORE.ACTIONS.GET_CLIENT_BY_ID, +route.params.id)\n }\n }\n function updateMessageToDisplay(forDelete: boolean) {\n messageToDisplay.value = forDelete\n ? 'oauth2.APP_DELETION_CONFIRMATION'\n : 'oauth2.TOKENS_REVOCATION_CONFIRMATION'\n updateDisplayModal(true)\n }\n function updateDisplayModal(value: boolean) {\n displayModal.value = value\n if (!value) {\n messageToDisplay.value = null\n }\n }\n function confirmAction(clientId: number) {\n if (messageToDisplay.value === 'oauth2.APP_DELETION_CONFIRMATION') {\n store.dispatch(OAUTH2_STORE.ACTIONS.DELETE_CLIENT, clientId)\n } else {\n store.dispatch(OAUTH2_STORE.ACTIONS.REVOKE_ALL_TOKENS, clientId)\n }\n }\n function copyIdToClipboard() {\n navigator.clipboard.writeText(client.value.client_id)\n idCopied.value = true\n secretCopied.value = false\n setTimeout(() => {\n idCopied.value = false\n }, 3000)\n }\n function copySecretToClipboard() {\n if (client.value.client_secret) {\n navigator.clipboard.writeText(client.value.client_secret)\n secretCopied.value = true\n idCopied.value = false\n setTimeout(() => {\n secretCopied.value = false\n }, 3000)\n }\n }\n onUnmounted(() => {\n store.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n store.commit(OAUTH2_STORE.MUTATIONS.EMPTY_CLIENT)\n store.commit(OAUTH2_STORE.MUTATIONS.SET_REVOCATION_SUCCESSFUL, false)\n })\n\n watch(\n () => revocationSuccessful.value,\n (newValue) => {\n if (newValue) {\n updateDisplayModal(false)\n }\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n const _component_Modal = _resolveComponent(\"Modal\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (displayModal.value)\n ? (_openBlock(), _createBlock(_component_Modal, {\n key: 0,\n title: _ctx.$t('common.CONFIRMATION'),\n message: _ctx.$t(messageToDisplay.value),\n onConfirmAction: _cache[0] || (_cache[0] = ($event: any) => (confirmAction(_unref(client).id))),\n onCancelAction: _cache[1] || (_cache[1] = ($event: any) => (updateDisplayModal(false)))\n }, null, 8, [\"title\", \"message\"]))\n : _createCommentVNode(\"\", true),\n (_unref(client) && _unref(client).client_id)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [\n (_unref(afterCreation) || _unref(revocationSuccessful))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, _toDisplayString(_ctx.$t(\n _unref(afterCreation)\n ? 'oauth2.APP_CREATED_SUCCESSFULLY'\n : 'oauth2.TOKENS_REVOKED'\n )), 1))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"dl\", null, [\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('oauth2.APP.CLIENT_ID')) + \":\", 1),\n _createElementVNode(\"dd\", null, [\n _createTextVNode(_toDisplayString(_unref(client).client_id) + \" \", 1),\n (_unref(afterCreation) && clipboardSupport.value)\n ? (_openBlock(), _createElementBlock(\"i\", {\n key: 0,\n class: _normalizeClass(`fa fa-${idCopied.value ? 'check' : 'copy'}`),\n \"aria-hidden\": \"true\",\n title: _ctx.$t('oauth2.COPY_TO_CLIPBOARD'),\n onClick: copyIdToClipboard\n }, null, 10, _hoisted_4))\n : _createCommentVNode(\"\", true)\n ]),\n (_unref(afterCreation) && _unref(client).client_secret)\n ? (_openBlock(), _createElementBlock(\"dt\", _hoisted_5, _toDisplayString(_ctx.$t('oauth2.APP.CLIENT_SECRET')) + \": \", 1))\n : _createCommentVNode(\"\", true),\n (_unref(afterCreation) && _unref(client).client_secret)\n ? (_openBlock(), _createElementBlock(\"dd\", _hoisted_6, [\n _createTextVNode(_toDisplayString(_unref(client).client_secret) + \" \", 1),\n (clipboardSupport.value)\n ? (_openBlock(), _createElementBlock(\"i\", {\n key: 0,\n class: _normalizeClass(`fa fa-${secretCopied.value ? 'check' : 'copy'}`),\n \"aria-hidden\": \"true\",\n title: _ctx.$t('oauth2.COPY_TO_CLIPBOARD'),\n onClick: copySecretToClipboard\n }, null, 10, _hoisted_7))\n : _createCommentVNode(\"\", true)\n ]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"dt\", null, _toDisplayString(capitalize(_ctx.$t('oauth2.APP.ISSUE_AT'))) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_unref(formatDate)(\n _unref(client).issued_at,\n _unref(authUser).timezone,\n _unref(authUser).date_format\n )), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('oauth2.APP.NAME')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_unref(client).name), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('oauth2.APP.DESCRIPTION')) + \":\", 1),\n _createElementVNode(\"dd\", {\n class: _normalizeClass({ 'no-description': !_unref(client).client_description })\n }, _toDisplayString(_unref(client).client_description\n ? _unref(client).client_description\n : _ctx.$t('oauth2.NO_DESCRIPTION')), 3),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('oauth2.APP.URL')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_unref(client).website), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('oauth2.APP.REDIRECT_URL')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_unref(client).redirect_uris.length > 0 ? _unref(client).redirect_uris[0] : ''), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('oauth2.APP.SCOPE.LABEL')) + \":\", 1),\n _createElementVNode(\"dd\", _hoisted_8, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(client).scope.split(' '), (scope) => {\n return (_openBlock(), _createElementBlock(\"span\", {\n class: \"client-scope\",\n key: scope\n }, [\n _createElementVNode(\"code\", null, _toDisplayString(scope), 1)\n ]))\n }), 128))\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_9, [\n _createElementVNode(\"button\", {\n class: \"danger\",\n onClick: _cache[2] || (_cache[2] = ($event: any) => (updateMessageToDisplay(false)))\n }, _toDisplayString(_ctx.$t('oauth2.REVOKE_ALL_TOKENS')), 1),\n _createElementVNode(\"button\", {\n class: \"danger\",\n onClick: _cache[3] || (_cache[3] = ($event: any) => (updateMessageToDisplay(true)))\n }, _toDisplayString(_ctx.$t('oauth2.DELETE_APP')), 1),\n _createElementVNode(\"button\", {\n onClick: _cache[4] || (_cache[4] = ($event: any) => (_ctx.$router.push('/profile/apps')))\n }, _toDisplayString(_ctx.$t('buttons.BACK')), 1)\n ])\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_10, [\n _createElementVNode(\"p\", _hoisted_11, _toDisplayString(_ctx.$t('oauth2.NO_APP')), 1),\n _createElementVNode(\"button\", {\n onClick: _cache[5] || (_cache[5] = ($event: any) => (_ctx.$router.push('/profile/apps')))\n }, _toDisplayString(_ctx.$t('buttons.BACK')), 1)\n ]))\n ]))\n}\n}\n\n})","import script from \"./UserApp.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserApp.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserApp.vue?vue&type=style&index=0&id=3a844fa2&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-3a844fa2\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, createCommentVNode as _createCommentVNode, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-efa45ea0\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"oauth2-apps-list\" }\nconst _hoisted_2 = { class: \"apps-list\" }\nconst _hoisted_3 = { key: 0 }\nconst _hoisted_4 = { class: \"app-issued-at\" }\nconst _hoisted_5 = {\n key: 1,\n class: \"no-apps\"\n}\nconst _hoisted_6 = { class: \"app-list-buttons\" }\n\nimport { ComputedRef, computed, onBeforeMount, toRefs, watch } from 'vue'\n import { LocationQuery, useRoute } from 'vue-router'\n\n import Pagination from '@/components/Common/Pagination.vue'\n import { OAUTH2_STORE } from '@/store/constants'\n import { IPagination } from '@/types/api'\n import { IOAuth2Client, IOauth2ClientsPayload } from '@/types/oauth'\n import { IAuthUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { defaultPage, getNumberQueryValue } from '@/utils/api'\n import { formatDate } from '@/utils/dates'\n\n interface Props {\n authUser: IAuthUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserAppsList',\n props: {\n authUser: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n authUser: IAuthUserProfile\n };\n\n \n\n const store = useStore()\n const route = useRoute()\n\n const { authUser } = toRefs(props)\n const clients: ComputedRef = computed(\n () => store.getters[OAUTH2_STORE.GETTERS.CLIENTS]\n )\n\n const pagination: ComputedRef = computed(\n () => store.getters[OAUTH2_STORE.GETTERS.CLIENTS_PAGINATION]\n )\n let query: IOauth2ClientsPayload = getClientsQuery(route.query)\n\n onBeforeMount(() => {\n loadClients(query)\n })\n\n function getClientsQuery(newQuery: LocationQuery): IOauth2ClientsPayload {\n const clientsQuery: IOauth2ClientsPayload = {}\n if (newQuery.page) {\n clientsQuery.page = getNumberQueryValue(newQuery.page, defaultPage)\n }\n return clientsQuery\n }\n function loadClients(payload: IOauth2ClientsPayload) {\n store.dispatch(OAUTH2_STORE.ACTIONS.GET_CLIENTS, payload)\n }\n\n watch(\n () => route.query,\n async (newQuery) => {\n query = getClientsQuery(newQuery)\n loadClients(query)\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_link = _resolveComponent(\"router-link\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"p\", _hoisted_2, _toDisplayString(_ctx.$t('oauth2.APPS_LIST')), 1),\n (_unref(clients).length > 0)\n ? (_openBlock(), _createElementBlock(\"ul\", _hoisted_3, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(clients), (client) => {\n return (_openBlock(), _createElementBlock(\"li\", {\n key: client.client_id\n }, [\n _createVNode(_component_router_link, {\n to: { name: 'UserApp', params: { id: client.id } }\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(client.name), 1)\n ]),\n _: 2\n }, 1032, [\"to\"]),\n _createElementVNode(\"span\", _hoisted_4, _toDisplayString(_ctx.$t('oauth2.APP.ISSUE_AT')) + \" \" + _toDisplayString(_unref(formatDate)(\n client.issued_at,\n _unref(authUser).timezone,\n _unref(authUser).date_format\n )), 1)\n ]))\n }), 128))\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_5, _toDisplayString(_ctx.$t('oauth2.NO_APPS')), 1)),\n (_unref(clients).length > 0)\n ? (_openBlock(), _createBlock(Pagination, {\n key: 2,\n pagination: _unref(pagination),\n path: \"/profile/apps\",\n query: _unref(query)\n }, null, 8, [\"pagination\", \"query\"]))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"div\", _hoisted_6, [\n _createElementVNode(\"button\", {\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$router.push('/profile/apps/new')))\n }, _toDisplayString(_ctx.$t('oauth2.NEW_APP')), 1),\n _createElementVNode(\"button\", {\n onClick: _cache[1] || (_cache[1] = ($event: any) => (_ctx.$router.push('/')))\n }, _toDisplayString(_ctx.$t('common.HOME')), 1)\n ])\n ]))\n}\n}\n\n})","import script from \"./UserAppsList.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserAppsList.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserAppsList.vue?vue&type=style&index=0&id=efa45ea0&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-efa45ea0\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, withModifiers as _withModifiers, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, renderList as _renderList, Fragment as _Fragment, resolveComponent as _resolveComponent, createBlock as _createBlock, createTextVNode as _createTextVNode, normalizeClass as _normalizeClass, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-74e52489\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"user-sport-preferences\" }\nconst _hoisted_2 = {\n key: 0,\n class: \"responsive-table\"\n}\nconst _hoisted_3 = { class: \"mobile-display\" }\nconst _hoisted_4 = {\n key: 0,\n class: \"profile-buttons mobile-display\"\n}\nconst _hoisted_5 = {\n key: 1,\n class: \"profile-buttons\"\n}\nconst _hoisted_6 = { class: \"text-left\" }\nconst _hoisted_7 = { key: 0 }\nconst _hoisted_8 = { class: \"cell-heading\" }\nconst _hoisted_9 = [\"value\"]\nconst _hoisted_10 = { class: \"cell-heading\" }\nconst _hoisted_11 = {\n key: 0,\n class: \"disabled-message\"\n}\nconst _hoisted_12 = {\n key: 1,\n class: \"fa fa-refresh fa-spin fa-fw\"\n}\nconst _hoisted_13 = { class: \"cell-heading\" }\nconst _hoisted_14 = { class: \"cell-heading\" }\nconst _hoisted_15 = [\"checked\"]\nconst _hoisted_16 = { class: \"cell-heading\" }\nconst _hoisted_17 = [\"value\"]\nconst _hoisted_18 = { key: 1 }\nconst _hoisted_19 = {\n key: 0,\n class: \"action-buttons\"\n}\nconst _hoisted_20 = { class: \"cell-heading\" }\nconst _hoisted_21 = [\"onClick\"]\nconst _hoisted_22 = {\n key: 1,\n class: \"edition-buttons\"\n}\nconst _hoisted_23 = [\"disabled\"]\nconst _hoisted_24 = [\"disabled\", \"onClick\"]\nconst _hoisted_25 = [\"disabled\"]\nconst _hoisted_26 = {\n key: 0,\n class: \"profile-buttons\"\n}\nconst _hoisted_27 = {\n key: 1,\n class: \"profile-buttons\"\n}\n\nimport { ComputedRef, computed, inject, reactive, toRefs, watch } from 'vue'\n import { useI18n } from 'vue-i18n'\n\n import { AUTH_USER_STORE, ROOT_STORE, SPORTS_STORE } from '@/store/constants'\n import { ISport, ITranslatedSport } from '@/types/sports'\n import { IUserProfile, IUserSportPreferencesPayload } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { translateSports } from '@/utils/sports'\n\n interface Props {\n user: IUserProfile\n isEdition: boolean\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserSportPreferences',\n props: {\n user: null,\n isEdition: { type: Boolean }\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IUserProfile\n isEdition: boolean\n };\n\n \n\n const store = useStore()\n const { t } = useI18n()\n\n const { isEdition, user } = toRefs(props)\n const defaultColor = '#838383'\n const sportColors: Record | undefined = inject('sportColors')\n const sports: ComputedRef = computed(\n () => store.getters[SPORTS_STORE.GETTERS.SPORTS]\n )\n const translatedSports: ComputedRef = computed(() =>\n translateSports(sports.value, t, 'is_active', user.value.sports_list)\n )\n const loading = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.USER_LOADING]\n )\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n const sportPayload: IUserSportPreferencesPayload = reactive({\n sport_id: 0,\n color: null,\n is_active: true,\n stopped_speed_threshold: 1,\n })\n\n function updateSportInEdition(sport: ISport | null) {\n if (sport !== null) {\n sportPayload.sport_id = sport.id\n sportPayload.color = sport.color\n ? sport.color\n : sportColors\n ? sportColors[sport.label]\n : defaultColor\n sportPayload.is_active = sport.is_active_for_user\n sportPayload.stopped_speed_threshold = sport.stopped_speed_threshold\n } else {\n resetSportPayload()\n }\n }\n function isSportInEdition(sportId: number) {\n return sportPayload.sport_id === sportId\n }\n function updateColor(event: Event & { target: HTMLInputElement }) {\n sportPayload.color = event.target.value\n }\n function updateThreshold(event: Event & { target: HTMLInputElement }) {\n sportPayload.stopped_speed_threshold = parseFloat(event.target.value)\n }\n function updateIsActive(event: Event & { target: HTMLInputElement }) {\n sportPayload.is_active = event.target.checked\n }\n function resetSportPayload() {\n sportPayload.sport_id = 0\n sportPayload.color = null\n sportPayload.is_active = true\n sportPayload.stopped_speed_threshold = 1\n store.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n }\n function updateSport(event: Event) {\n event.preventDefault()\n store.dispatch(\n AUTH_USER_STORE.ACTIONS.UPDATE_USER_SPORT_PREFERENCES,\n sportPayload\n )\n }\n function resetSport(event: Event, sportId: number) {\n event.preventDefault()\n store.dispatch(\n AUTH_USER_STORE.ACTIONS.RESET_USER_SPORT_PREFERENCES,\n sportId\n )\n }\n\n watch(\n () => loading.value,\n (newIsLoading) => {\n if (!newIsLoading && !errorMessages.value) {\n resetSportPayload()\n }\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n const _component_SportImage = _resolveComponent(\"SportImage\")!\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_unref(sports).length > 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n (_unref(isEdition))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_4, [\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _cache[0] || (_cache[0] = _withModifiers(($event: any) => (_ctx.$router.push('/profile/sports')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('buttons.BACK')), 1)\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_5, [\n _createElementVNode(\"button\", {\n onClick: _cache[1] || (_cache[1] = ($event: any) => (_ctx.$router.push('/profile/edit/sports')))\n }, _toDisplayString(_ctx.$t('user.PROFILE.EDIT_SPORTS_PREFERENCES')), 1),\n _createElementVNode(\"button\", {\n onClick: _cache[2] || (_cache[2] = ($event: any) => (_ctx.$router.push('/')))\n }, _toDisplayString(_ctx.$t('common.HOME')), 1)\n ]))\n ]),\n _createElementVNode(\"table\", null, [\n _createElementVNode(\"thead\", null, [\n _createElementVNode(\"tr\", null, [\n _createElementVNode(\"th\", null, _toDisplayString(_ctx.$t('user.PROFILE.SPORT.COLOR')), 1),\n _createElementVNode(\"th\", _hoisted_6, _toDisplayString(_ctx.$t('workouts.SPORT', 0)), 1),\n _createElementVNode(\"th\", null, _toDisplayString(_ctx.$t('workouts.WORKOUT', 0)), 1),\n _createElementVNode(\"th\", null, _toDisplayString(_ctx.$t('user.PROFILE.SPORT.IS_ACTIVE')), 1),\n _createElementVNode(\"th\", null, _toDisplayString(_ctx.$t('user.PROFILE.SPORT.STOPPED_SPEED_THRESHOLD')), 1),\n (_unref(isEdition))\n ? (_openBlock(), _createElementBlock(\"th\", _hoisted_7, _toDisplayString(_ctx.$t('user.PROFILE.SPORT.ACTION')), 1))\n : _createCommentVNode(\"\", true)\n ])\n ]),\n _createElementVNode(\"tbody\", null, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(translatedSports), (sport) => {\n return (_openBlock(), _createElementBlock(\"tr\", {\n key: sport.id\n }, [\n _createElementVNode(\"td\", null, [\n _createElementVNode(\"span\", _hoisted_8, _toDisplayString(_ctx.$t('user.PROFILE.SPORT.COLOR')), 1),\n (isSportInEdition(sport.id))\n ? (_openBlock(), _createElementBlock(\"input\", {\n key: 0,\n class: \"sport-color\",\n type: \"color\",\n value: sportPayload.color,\n onInput: updateColor\n }, null, 40, _hoisted_9))\n : (_openBlock(), _createBlock(_component_SportImage, {\n key: 1,\n title: sport.translatedLabel,\n \"sport-label\": sport.label,\n color: sport.color ? sport.color : _unref(sportColors)[sport.label]\n }, null, 8, [\"title\", \"sport-label\", \"color\"]))\n ]),\n _createElementVNode(\"td\", {\n class: _normalizeClass([\"sport-label\", { 'disabled-sport': !sport.is_active }])\n }, [\n _createElementVNode(\"span\", _hoisted_10, _toDisplayString(_ctx.$t('user.PROFILE.SPORT.LABEL')), 1),\n _createTextVNode(\" \" + _toDisplayString(sport.translatedLabel) + \" \", 1),\n (!sport.is_active)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_11, \" (\" + _toDisplayString(_ctx.$t('user.PROFILE.SPORT.DISABLED_BY_ADMIN')) + \") \", 1))\n : _createCommentVNode(\"\", true),\n (_unref(loading) && isSportInEdition(sport.id))\n ? (_openBlock(), _createElementBlock(\"i\", _hoisted_12))\n : _createCommentVNode(\"\", true),\n (_unref(errorMessages) && sportPayload.sport_id === sport.id)\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 2,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true)\n ], 2),\n _createElementVNode(\"td\", {\n class: _normalizeClass([\"text-center\", { 'disabled-sport': !sport.is_active }])\n }, [\n _createElementVNode(\"span\", _hoisted_13, _toDisplayString(_ctx.$t('workouts.WORKOUT', 0)), 1),\n _createElementVNode(\"i\", {\n class: _normalizeClass(`fa fa${\n _unref(user).sports_list.includes(sport.id) ? '-check' : ''\n }`),\n \"aria-hidden\": \"true\"\n }, null, 2)\n ], 2),\n _createElementVNode(\"td\", {\n class: _normalizeClass([\"text-center\", { 'disabled-sport': !sport.is_active }])\n }, [\n _createElementVNode(\"span\", _hoisted_14, _toDisplayString(_ctx.$t('user.PROFILE.SPORT.IS_ACTIVE')), 1),\n (isSportInEdition(sport.id) && sport.is_active)\n ? (_openBlock(), _createElementBlock(\"input\", {\n key: 0,\n type: \"checkbox\",\n checked: sport.is_active_for_user,\n onChange: updateIsActive\n }, null, 40, _hoisted_15))\n : (_openBlock(), _createElementBlock(\"i\", {\n key: 1,\n class: _normalizeClass(`fa fa${sport.is_active_for_user ? '-check' : ''}`),\n \"aria-hidden\": \"true\"\n }, null, 2))\n ], 2),\n _createElementVNode(\"td\", {\n class: _normalizeClass([\"text-center\", { 'disabled-sport': !sport.is_active }])\n }, [\n _createElementVNode(\"span\", _hoisted_16, _toDisplayString(_ctx.$t('user.PROFILE.SPORT.STOPPED_SPEED_THRESHOLD')), 1),\n (isSportInEdition(sport.id) && sport.is_active)\n ? (_openBlock(), _createElementBlock(\"input\", {\n key: 0,\n class: \"threshold-input\",\n type: \"number\",\n min: \"0\",\n step: \"0.1\",\n value: sportPayload.stopped_speed_threshold,\n onInput: updateThreshold\n }, null, 40, _hoisted_17))\n : (_openBlock(), _createElementBlock(\"span\", _hoisted_18, _toDisplayString(sport.stopped_speed_threshold), 1))\n ], 2),\n (_unref(isEdition))\n ? (_openBlock(), _createElementBlock(\"td\", _hoisted_19, [\n _createElementVNode(\"span\", _hoisted_20, _toDisplayString(_ctx.$t('user.PROFILE.SPORT.ACTION')), 1),\n (sportPayload.sport_id === 0)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 0,\n onClick: ($event: any) => (updateSportInEdition(sport))\n }, _toDisplayString(_ctx.$t('buttons.EDIT')), 9, _hoisted_21))\n : _createCommentVNode(\"\", true),\n (isSportInEdition(sport.id))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_22, [\n _createElementVNode(\"button\", {\n disabled: _unref(loading),\n onClick: updateSport\n }, _toDisplayString(_ctx.$t('buttons.SUBMIT')), 9, _hoisted_23),\n _createElementVNode(\"button\", {\n disabled: _unref(loading),\n onClick: (e) => resetSport(e, sport.id)\n }, _toDisplayString(_ctx.$t('buttons.RESET')), 9, _hoisted_24),\n _createElementVNode(\"button\", {\n disabled: _unref(loading),\n onClick: _cache[3] || (_cache[3] = ($event: any) => (updateSportInEdition(null)))\n }, _toDisplayString(_ctx.$t('buttons.CANCEL')), 9, _hoisted_25)\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n }), 128))\n ])\n ]),\n (_unref(isEdition))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_26, [\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _cache[4] || (_cache[4] = _withModifiers(($event: any) => (_ctx.$router.push('/profile/sports')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('buttons.BACK')), 1)\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_27, [\n _createElementVNode(\"button\", {\n onClick: _cache[5] || (_cache[5] = ($event: any) => (_ctx.$router.push('/profile/edit/sports')))\n }, _toDisplayString(_ctx.$t('user.PROFILE.EDIT_SPORTS_PREFERENCES')), 1),\n _createElementVNode(\"button\", {\n onClick: _cache[6] || (_cache[6] = ($event: any) => (_ctx.$router.push('/')))\n }, _toDisplayString(_ctx.$t('common.HOME')), 1)\n ]))\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n}\n}\n\n})","import script from \"./UserSportPreferences.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserSportPreferences.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserSportPreferences.vue?vue&type=style&index=0&id=74e52489&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-74e52489\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, unref as _unref, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-74257266\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"about-text\" }\nconst _hoisted_2 = [\"innerHTML\"]\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-book fa-padding\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_4 = {\n href: \"https://samr1.github.io/FitTrackee/\",\n target: \"_blank\",\n rel: \"noopener noreferrer\"\n}\nconst _hoisted_5 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-github fa-padding\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_6 = {\n href: \"https://github.com/SamR1/FitTrackee\",\n target: \"_blank\",\n rel: \"noopener noreferrer\"\n}\nconst _hoisted_7 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-balance-scale fa-padding\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_8 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"a\", {\n href: \"https://choosealicense.com/licenses/agpl-3.0/\",\n target: \"_blank\",\n rel: \"noopener noreferrer\"\n}, \" AGPLv3 \", -1))\nconst _hoisted_9 = { key: 0 }\nconst _hoisted_10 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-envelope-o fa-padding\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_11 = [\"href\"]\n\nimport { ComputedRef, computed, capitalize } from 'vue'\n\n import { ROOT_STORE } from '@/store/constants'\n import { TAppConfig } from '@/types/application'\n import { useStore } from '@/use/useStore'\n\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'About',\n setup(__props) {\n\n const store = useStore()\n const appConfig: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.APP_CONFIG]\n )\n\nreturn (_ctx: any,_cache: any) => {\n const _component_i18n_t = _resolveComponent(\"i18n-t\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", null, [\n _createElementVNode(\"p\", {\n class: \"error-message\",\n innerHTML: _ctx.$t('about.FITTRACKEE_DESCRIPTION')\n }, null, 8, _hoisted_2),\n _createElementVNode(\"p\", null, [\n _hoisted_3,\n _createElementVNode(\"a\", _hoisted_4, _toDisplayString(capitalize(_ctx.$t('common.DOCUMENTATION'))), 1)\n ]),\n _createElementVNode(\"p\", null, [\n _hoisted_5,\n _createElementVNode(\"a\", _hoisted_6, _toDisplayString(_ctx.$t('about.SOURCE_CODE')), 1)\n ]),\n _createElementVNode(\"p\", null, [\n _hoisted_7,\n _createVNode(_component_i18n_t, { keypath: \"about.FITTRACKEE_LICENSE\" }, {\n default: _withCtx(() => [\n _hoisted_8\n ]),\n _: 1\n })\n ]),\n (_unref(appConfig).admin_contact)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_9, [\n _hoisted_10,\n _createElementVNode(\"a\", {\n href: `mailto:${_unref(appConfig).admin_contact}`\n }, _toDisplayString(_ctx.$t('about.CONTACT_ADMIN')), 9, _hoisted_11)\n ]))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n}\n}\n\n})","import script from \"./About.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./About.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./About.vue?vue&type=style&index=0&id=74257266&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-74257266\"]])\n\nexport default __exports__","\n\n\n","import { render } from \"./BikePic.vue?vue&type=template&id=795f7f5f&scoped=true\"\nconst script = {}\n\nimport \"./BikePic.vue?vue&type=style&index=0&id=795f7f5f&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-795f7f5f\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createVNode as _createVNode, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-bffb50d0\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"about\",\n class: \"view\"\n}\nconst _hoisted_2 = { class: \"container\" }\nconst _hoisted_3 = { class: \"container-sub\" }\nconst _hoisted_4 = { class: \"container-sub about-details\" }\n\nimport About from '@/components/About.vue'\n import BikePic from '@/components/BikePic.vue'\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'AboutView',\n setup(__props) {\n\n \nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createVNode(BikePic)\n ]),\n _createElementVNode(\"div\", _hoisted_4, [\n _createVNode(About)\n ])\n ])\n ]))\n}\n}\n\n})","import script from \"./AboutView.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./AboutView.vue?vue&type=script&lang=ts&setup=true\"\n\nimport \"./AboutView.vue?vue&type=style&index=0&id=bffb50d0&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-bffb50d0\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, createElementBlock as _createElementBlock, normalizeClass as _normalizeClass, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-96abcc38\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"timeline-workout\" }\nconst _hoisted_2 = { class: \"box\" }\nconst _hoisted_3 = { class: \"workout-user-date\" }\nconst _hoisted_4 = { class: \"workout-user\" }\nconst _hoisted_5 = [\"title\"]\nconst _hoisted_6 = { key: 0 }\nconst _hoisted_7 = {\n key: 1,\n class: \"no-map\"\n}\nconst _hoisted_8 = { class: \"img\" }\nconst _hoisted_9 = { class: \"data\" }\nconst _hoisted_10 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-clock-o\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_11 = { key: 0 }\nconst _hoisted_12 = { class: \"data\" }\nconst _hoisted_13 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-road\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_14 = {\n key: 0,\n class: \"data elevation\"\n}\nconst _hoisted_15 = [\"alt\"]\nconst _hoisted_16 = { class: \"data-values\" }\nconst _hoisted_17 = {\n key: 1,\n class: \"data altitude\"\n}\nconst _hoisted_18 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-location-arrow\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_19 = { class: \"data-values\" }\n\nimport { Locale, formatDistance } from 'date-fns'\n import { ComputedRef, computed, toRefs, withDefaults } from 'vue'\n\n import StaticMap from '@/components/Common/StaticMap.vue'\n import UserPicture from '@/components/User/UserPicture.vue'\n import { ROOT_STORE } from '@/store/constants'\n import { ISport } from '@/types/sports'\n import { IUserProfile } from '@/types/user'\n import { IWorkout } from '@/types/workouts'\n import { useStore } from '@/use/useStore'\n import { formatDate } from '@/utils/dates'\n\n interface Props {\n user: IUserProfile\n useImperialUnits: boolean\n workout?: IWorkout\n sport?: ISport\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'WorkoutCard',\n props: {\n user: null,\n useImperialUnits: { type: Boolean },\n workout: { default: () => ({} as IWorkout) },\n sport: { default: () => ({} as ISport) }\n },\n setup(__props: any) {\n\nconst props = __props as { user: IUserProfile, useImperialUnits: boolean, workout: IWorkout, sport: ISport };\n\n \n\n const store = useStore()\n\n const { user, workout, sport, useImperialUnits } = toRefs(props)\n const locale: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.LOCALE]\n )\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_SportImage = _resolveComponent(\"SportImage\")!\n const _component_Distance = _resolveComponent(\"Distance\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n _createVNode(UserPicture, { user: _unref(user) }, null, 8, [\"user\"]),\n (_unref(user).username)\n ? (_openBlock(), _createBlock(_component_router_link, {\n key: 0,\n class: \"workout-user-name\",\n to: {\n name: 'User',\n params: { username: _unref(user).username },\n }\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_unref(user).username), 1)\n ]),\n _: 1\n }, 8, [\"to\"]))\n : _createCommentVNode(\"\", true)\n ]),\n (_unref(workout).id)\n ? (_openBlock(), _createBlock(_component_router_link, {\n key: 0,\n class: \"workout-title\",\n to: {\n name: 'Workout',\n params: { workoutId: _unref(workout).id },\n }\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_unref(workout).title), 1)\n ]),\n _: 1\n }, 8, [\"to\"]))\n : _createCommentVNode(\"\", true),\n (_unref(workout).workout_date && _unref(user))\n ? (_openBlock(), _createElementBlock(\"div\", {\n key: 1,\n class: \"workout-date\",\n title: \n _unref(formatDate)(_unref(workout).workout_date, _unref(user).timezone, _unref(user).date_format)\n \n }, _toDisplayString(_unref(formatDistance)(new Date(_unref(workout).workout_date), new Date(), {\n addSuffix: true,\n locale: _unref(locale),\n })), 9, _hoisted_5))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"workout-map\", { 'no-cursor': !_unref(workout) }]),\n onClick: _cache[0] || (_cache[0] = ($event: any) => (\n _unref(workout).id\n ? _ctx.$router.push({\n name: 'Workout',\n params: { workoutId: _unref(workout).id },\n })\n : null\n ))\n }, [\n (_unref(workout))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_6, [\n (_unref(workout).with_gpx)\n ? (_openBlock(), _createBlock(StaticMap, {\n key: 0,\n workout: _unref(workout)\n }, null, 8, [\"workout\"]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_7, _toDisplayString(_ctx.$t('workouts.NO_MAP')), 1))\n ]))\n : _createCommentVNode(\"\", true)\n ], 2),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"workout-data\", { 'without-gpx': _unref(workout) && !_unref(workout).with_gpx }]),\n onClick: _cache[1] || (_cache[1] = ($event: any) => (\n _unref(workout).id\n ? _ctx.$router.push({\n name: 'Workout',\n params: { workoutId: _unref(workout).id },\n })\n : null\n ))\n }, [\n _createElementVNode(\"div\", _hoisted_8, [\n (_unref(sport).label)\n ? (_openBlock(), _createBlock(_component_SportImage, {\n key: 0,\n \"sport-label\": _unref(sport).label,\n color: _unref(sport).color\n }, null, 8, [\"sport-label\", \"color\"]))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", _hoisted_9, [\n _hoisted_10,\n (_unref(workout))\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_11, _toDisplayString(_unref(workout).moving), 1))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"div\", _hoisted_12, [\n _hoisted_13,\n (_unref(workout).id)\n ? (_openBlock(), _createBlock(_component_Distance, {\n key: 0,\n distance: _unref(workout).distance,\n digits: 3,\n unitFrom: \"km\",\n useImperialUnits: _unref(useImperialUnits)\n }, null, 8, [\"distance\", \"useImperialUnits\"]))\n : _createCommentVNode(\"\", true)\n ]),\n (_unref(workout) && _unref(workout).with_gpx)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_14, [\n _createElementVNode(\"img\", {\n class: \"mountains\",\n src: \"/img/workouts/mountains.svg\",\n alt: _ctx.$t('workouts.ELEVATION')\n }, null, 8, _hoisted_15),\n _createElementVNode(\"div\", _hoisted_16, [\n (_unref(workout).id)\n ? (_openBlock(), _createBlock(_component_Distance, {\n key: 0,\n distance: _unref(workout).min_alt,\n unitFrom: \"m\",\n displayUnit: false,\n useImperialUnits: _unref(useImperialUnits)\n }, null, 8, [\"distance\", \"useImperialUnits\"]))\n : _createCommentVNode(\"\", true),\n _createTextVNode(\"/ \"),\n (_unref(workout).id)\n ? (_openBlock(), _createBlock(_component_Distance, {\n key: 1,\n distance: _unref(workout).max_alt,\n unitFrom: \"m\",\n useImperialUnits: _unref(useImperialUnits)\n }, null, 8, [\"distance\", \"useImperialUnits\"]))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n : _createCommentVNode(\"\", true),\n (_unref(workout) && _unref(workout).with_gpx)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_17, [\n _hoisted_18,\n _createElementVNode(\"div\", _hoisted_19, [\n _createTextVNode(\" +\"),\n (_unref(workout).id)\n ? (_openBlock(), _createBlock(_component_Distance, {\n key: 0,\n distance: _unref(workout).ascent,\n unitFrom: \"m\",\n displayUnit: false,\n useImperialUnits: _unref(useImperialUnits)\n }, null, 8, [\"distance\", \"useImperialUnits\"]))\n : _createCommentVNode(\"\", true),\n _createTextVNode(\"/- \"),\n (_unref(workout).id)\n ? (_openBlock(), _createBlock(_component_Distance, {\n key: 1,\n distance: _unref(workout).descent,\n unitFrom: \"m\",\n useImperialUnits: _unref(useImperialUnits)\n }, null, 8, [\"distance\", \"useImperialUnits\"]))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n : _createCommentVNode(\"\", true)\n ], 2)\n ])\n ]))\n}\n}\n\n})","import script from \"./WorkoutCard.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./WorkoutCard.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./WorkoutCard.vue?vue&type=style&index=0&id=96abcc38&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-96abcc38\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-35567bf2\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"timeline\" }\nconst _hoisted_2 = { class: \"section-title\" }\nconst _hoisted_3 = { key: 0 }\nconst _hoisted_4 = { key: 1 }\nconst _hoisted_5 = {\n key: 1,\n class: \"more-workouts\"\n}\n\nimport { ComputedRef, computed, ref, onBeforeMount, toRefs } from 'vue'\n\n import WorkoutCard from '@/components/Workout/WorkoutCard.vue'\n import NoWorkouts from '@/components/Workouts/NoWorkouts.vue'\n import { WORKOUTS_STORE } from '@/store/constants'\n import { ISport } from '@/types/sports'\n import { IUserProfile } from '@/types/user'\n import { IWorkout } from '@/types/workouts'\n import { useStore } from '@/use/useStore'\n import { defaultOrder } from '@/utils/workouts'\n\n interface Props {\n sports: ISport[]\n user: IUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'Timeline',\n props: {\n sports: null,\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n sports: ISport[]\n user: IUserProfile\n };\n\n \n\n const store = useStore()\n\n const { sports, user } = toRefs(props)\n const page = ref(1)\n const per_page = 5\n const initWorkoutsCount =\n props.user.nb_workouts >= per_page ? per_page : props.user.nb_workouts\n onBeforeMount(() => loadWorkouts())\n const workouts: ComputedRef = computed(\n () => store.getters[WORKOUTS_STORE.GETTERS.TIMELINE_WORKOUTS]\n )\n const moreWorkoutsExist: ComputedRef = computed(() =>\n workouts.value.length > 0\n ? workouts.value[workouts.value.length - 1].previous_workout !== null\n : false\n )\n\n function loadWorkouts() {\n store.dispatch(WORKOUTS_STORE.ACTIONS.GET_TIMELINE_WORKOUTS, {\n page: page.value,\n per_page,\n ...defaultOrder,\n })\n }\n function loadMoreWorkouts() {\n page.value += 1\n store.dispatch(WORKOUTS_STORE.ACTIONS.GET_MORE_TIMELINE_WORKOUTS, {\n page: page.value,\n per_page,\n ...defaultOrder,\n })\n }\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, _toDisplayString(_ctx.$t('workouts.LATEST_WORKOUTS')), 1),\n (_unref(user).nb_workouts > 0 && _unref(workouts).length === 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList([...Array(_unref(initWorkoutsCount)).keys()], (index) => {\n return (_openBlock(), _createBlock(WorkoutCard, {\n user: _unref(user),\n useImperialUnits: _unref(user).imperial_units,\n key: index\n }, null, 8, [\"user\", \"useImperialUnits\"]))\n }), 128))\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_4, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(workouts), (workout) => {\n return (_openBlock(), _createBlock(WorkoutCard, {\n workout: workout,\n sport: \n _unref(workouts).length > 0\n ? _unref(sports).filter((s) => s.id === workout.sport_id)[0]\n : null\n ,\n user: _unref(user),\n useImperialUnits: _unref(user).imperial_units,\n key: workout.id\n }, null, 8, [\"workout\", \"sport\", \"user\", \"useImperialUnits\"]))\n }), 128)),\n (_unref(workouts).length === 0)\n ? (_openBlock(), _createBlock(NoWorkouts, { key: 0 }))\n : _createCommentVNode(\"\", true),\n (_unref(moreWorkoutsExist))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_5, [\n _createElementVNode(\"button\", { onClick: loadMoreWorkouts }, _toDisplayString(_ctx.$t('workouts.LOAD_MORE_WORKOUT')), 1)\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n ]))\n}\n}\n\n})","import script from \"./Timeline.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Timeline.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Timeline.vue?vue&type=style&index=0&id=35567bf2&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-35567bf2\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, resolveComponent as _resolveComponent, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode } from \"vue\"\n\nconst _hoisted_1 = [\"title\"]\n\nimport { toRefs } from 'vue'\n\n import { IWorkout } from '@/types/workouts'\n interface Props {\n displayHARecord: boolean\n workout: IWorkout\n sportLabel: string\n sportColor: string | null\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'CalendarWorkout',\n props: {\n displayHARecord: { type: Boolean },\n workout: null,\n sportLabel: null,\n sportColor: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n displayHARecord: boolean\n workout: IWorkout\n sportLabel: string\n sportColor: string | null\n };\n\n \n\n const { displayHARecord, workout, sportLabel, sportColor } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n const _component_SportImage = _resolveComponent(\"SportImage\")!\n\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"calendar-workout\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (\n _ctx.$router.push({ name: 'Workout', params: { workoutId: _unref(workout).id } })\n ))\n }, [\n _createVNode(_component_SportImage, {\n \"sport-label\": _unref(sportLabel),\n title: _unref(workout).title,\n color: _unref(sportColor)\n }, null, 8, [\"sport-label\", \"title\", \"color\"]),\n _createElementVNode(\"sup\", null, [\n (_unref(workout).records.length > 0)\n ? (_openBlock(), _createElementBlock(\"i\", {\n key: 0,\n class: \"fa fa-trophy custom-fa-small\",\n \"aria-hidden\": \"true\",\n title: \n _unref(workout).records\n .filter((record) =>\n _unref(displayHARecord) ? true : record.record_type !== 'HA'\n )\n .map((record) => ` ${_ctx.$t(`workouts.RECORD_${record.record_type}`)}`)\n \n }, null, 8, _hoisted_1))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n}\n}\n\n})","import script from \"./CalendarWorkout.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./CalendarWorkout.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./CalendarWorkout.vue?vue&type=style&index=0&id=331e1c8b&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createElementVNode as _createElementVNode } from \"vue\"\n\nconst _hoisted_1 = { class: \"donut-chart\" }\nconst _hoisted_2 = {\n height: \"34\",\n width: \"34\",\n viewBox: \"0 0 34 34\"\n}\nconst _hoisted_3 = [\"stroke\", \"stroke-dashoffset\", \"transform\"]\n\nimport { toRefs } from 'vue'\n\n interface Props {\n colors: Record\n datasets: Record>\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'DonutChart',\n props: {\n colors: null,\n datasets: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n colors: Record\n datasets: Record>\n };\n\n \n\n const { colors, datasets } = toRefs(props)\n let angleOffset = -90\n const cx = 16\n const cy = 16\n const radius = 14\n const circumference = 2 * Math.PI * radius\n\n function calculateStrokeDashOffset(\n percentage: number,\n circumference: number\n ): number {\n return circumference - percentage * circumference\n }\n function returnCircleTransformValue(\n index: number,\n percentage: number\n ): string {\n const rotation = `rotate(${angleOffset}, ${cx}, ${cy})`\n angleOffset = percentage * 360 + angleOffset\n return rotation\n }\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_openBlock(), _createElementBlock(\"svg\", _hoisted_2, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(Object.entries(_unref(datasets)), (data, index) => {\n return (_openBlock(), _createElementBlock(\"g\", { key: index }, [\n _createElementVNode(\"circle\", {\n cx: cx,\n cy: cy,\n r: radius,\n fill: \"transparent\",\n stroke: _unref(colors)[+data[0]],\n \"stroke-dashoffset\": \n calculateStrokeDashOffset(data[1].percentage, circumference)\n ,\n \"stroke-dasharray\": circumference,\n \"stroke-width\": \"3\",\n \"stroke-opacity\": \"0.8\",\n transform: returnCircleTransformValue(index, data[1].percentage)\n }, null, 8, _hoisted_3)\n ]))\n }), 128))\n ]))\n ]))\n}\n}\n\n})","import script from \"./DonutChart.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./DonutChart.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, createVNode as _createVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createBlock as _createBlock, resolveDirective as _resolveDirective, withDirectives as _withDirectives, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-52d4310a\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"calendar-workouts-chart\" }\nconst _hoisted_2 = { class: \"workouts-count\" }\nconst _hoisted_3 = {\n key: 0,\n class: \"workouts-pane\"\n}\nconst _hoisted_4 = { class: \"more-workouts\" }\n\nimport { ref, toRefs } from 'vue'\n\n import CalendarWorkout from '@/components/Dashboard/UserCalendar/CalendarWorkout.vue'\n import DonutChart from '@/components/Dashboard/UserCalendar/DonutChart.vue'\n import { ISport } from '@/types/sports'\n import { IWorkout } from '@/types/workouts'\n import { getSportColor, getSportLabel } from '@/utils/sports'\n\n interface Props {\n colors: Record\n datasets: Record>\n sports: ISport[]\n workouts: IWorkout[]\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'CalendarWorkoutsChart',\n props: {\n colors: null,\n datasets: null,\n sports: null,\n workouts: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n colors: Record\n datasets: Record>\n sports: ISport[]\n workouts: IWorkout[]\n };\n\n \n\n const { colors, datasets, sports, workouts } = toRefs(props)\n const isHidden = ref(true)\n\n function togglePane(event: Event & { target: HTMLElement }) {\n event.stopPropagation()\n isHidden.value = !isHidden.value\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _directive_click_outside = _resolveDirective(\"click-outside\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", {\n class: \"workouts-chart\",\n onClick: togglePane\n }, [\n _createElementVNode(\"div\", _hoisted_2, _toDisplayString(_unref(workouts).length), 1),\n _createVNode(DonutChart, {\n datasets: _unref(datasets),\n colors: _unref(colors)\n }, null, 8, [\"datasets\", \"colors\"])\n ]),\n (!isHidden.value)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n _withDirectives((_openBlock(), _createElementBlock(\"div\", _hoisted_4, [\n _createElementVNode(\"i\", {\n class: \"fa fa-times calendar-more\",\n \"aria-hidden\": \"true\",\n onClick: togglePane\n }),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(workouts), (workout, index) => {\n return (_openBlock(), _createBlock(CalendarWorkout, {\n key: index,\n workout: workout,\n sportLabel: _unref(getSportLabel)(workout, _unref(sports)),\n sportColor: _unref(getSportColor)(workout, _unref(sports))\n }, null, 8, [\"workout\", \"sportLabel\", \"sportColor\"]))\n }), 128))\n ])), [\n [_directive_click_outside, togglePane]\n ])\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n}\n}\n\n})","import script from \"./CalendarWorkoutsChart.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./CalendarWorkoutsChart.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./CalendarWorkoutsChart.vue?vue&type=style&index=0&id=52d4310a&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-52d4310a\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createVNode as _createVNode, createElementVNode as _createElementVNode } from \"vue\"\n\nconst _hoisted_1 = { class: \"calendar-workouts\" }\nconst _hoisted_2 = { class: \"desktop-display\" }\nconst _hoisted_3 = {\n key: 0,\n class: \"workouts-display\"\n}\nconst _hoisted_4 = {\n key: 1,\n class: \"donut-display\"\n}\nconst _hoisted_5 = { class: \"mobile-display\" }\nconst _hoisted_6 = {\n key: 0,\n class: \"donut-display\"\n}\n\nimport { computed, toRefs } from 'vue'\n\n import CalendarWorkout from '@/components/Dashboard/UserCalendar/CalendarWorkout.vue'\n import CalendarWorkoutsChart from '@/components/Dashboard/UserCalendar/CalendarWorkoutsChart.vue'\n import { ISport } from '@/types/sports'\n import { IWorkout } from '@/types/workouts'\n import { getSportColor, getSportLabel, sportIdColors } from '@/utils/sports'\n import { getDonutDatasets } from '@/utils/workouts'\n\n interface Props {\n displayHARecord: boolean\n workouts: IWorkout[]\n sports: ISport[]\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'CalendarWorkouts',\n props: {\n displayHARecord: { type: Boolean },\n workouts: null,\n sports: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n displayHARecord: boolean\n workouts: IWorkout[]\n sports: ISport[]\n };\n\n \n\n const { displayHARecord, workouts, sports } = toRefs(props)\n const chartDatasets = computed(() => getDonutDatasets(props.workouts))\n const colors = computed(() => sportIdColors(props.sports))\n const displayedWorkoutCount = 6\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n (_unref(workouts).length <= displayedWorkoutCount)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(workouts).slice(0, displayedWorkoutCount), (workout, index) => {\n return (_openBlock(), _createBlock(CalendarWorkout, {\n key: index,\n displayHARecord: _unref(displayHARecord),\n workout: workout,\n sportLabel: _unref(getSportLabel)(workout, _unref(sports)),\n sportColor: _unref(getSportColor)(workout, _unref(sports))\n }, null, 8, [\"displayHARecord\", \"workout\", \"sportLabel\", \"sportColor\"]))\n }), 128))\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_4, [\n _createVNode(CalendarWorkoutsChart, {\n workouts: _unref(workouts),\n sports: _unref(sports),\n datasets: _unref(chartDatasets),\n colors: _unref(colors)\n }, null, 8, [\"workouts\", \"sports\", \"datasets\", \"colors\"])\n ]))\n ]),\n _createElementVNode(\"div\", _hoisted_5, [\n (_unref(workouts).length > 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_6, [\n _createVNode(CalendarWorkoutsChart, {\n workouts: _unref(workouts),\n sports: _unref(sports),\n datasets: _unref(chartDatasets),\n colors: _unref(colors)\n }, null, 8, [\"workouts\", \"sports\", \"datasets\", \"colors\"])\n ]))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n}\n}\n\n})","import script from \"./CalendarWorkouts.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./CalendarWorkouts.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./CalendarWorkouts.vue?vue&type=style&index=0&id=5aab7455&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, unref as _unref, createVNode as _createVNode, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass } from \"vue\"\n\nconst _hoisted_1 = { class: \"calendar-cells\" }\nconst _hoisted_2 = { class: \"calendar-cell-day\" }\n\nimport { addDays, format, isSameDay, isSameMonth, isToday } from 'date-fns'\n import { Ref, ref, toRefs, watch, onMounted } from 'vue'\n\n import CalendarWorkouts from '@/components/Dashboard/UserCalendar/CalendarWorkouts.vue'\n import { ISport } from '@/types/sports'\n import { IWorkout } from '@/types/workouts'\n import { getDateWithTZ } from '@/utils/dates'\n\n interface Props {\n currentDay: Date\n displayHARecord: boolean\n endDate: Date\n sports: ISport[]\n startDate: Date\n timezone: string\n weekStartingMonday: boolean\n workouts: IWorkout[]\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'CalendarCells',\n props: {\n currentDay: null,\n displayHARecord: { type: Boolean },\n endDate: null,\n sports: null,\n startDate: null,\n timezone: null,\n weekStartingMonday: { type: Boolean },\n workouts: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n currentDay: Date\n displayHARecord: boolean\n endDate: Date\n sports: ISport[]\n startDate: Date\n timezone: string\n weekStartingMonday: boolean\n workouts: IWorkout[]\n };\n\n \n\n const {\n currentDay,\n displayHARecord,\n endDate,\n sports,\n startDate,\n timezone,\n weekStartingMonday,\n workouts,\n } = toRefs(props)\n const rows: Ref = ref([])\n\n onMounted(() => getDays())\n\n function getDays() {\n rows.value = []\n let day = startDate.value\n while (day <= endDate.value) {\n const days: Date[] = []\n for (let i = 0; i < 7; i++) {\n days.push(day)\n day = addDays(day, 1)\n }\n rows.value.push(days)\n }\n }\n function isWeekEnd(day: number): boolean {\n return weekStartingMonday.value\n ? [5, 6].includes(day)\n : [0, 6].includes(day)\n }\n function filterWorkouts(day: Date, workouts: IWorkout[]) {\n if (workouts) {\n return workouts\n .filter((workout) =>\n isSameDay(getDateWithTZ(workout.workout_date, timezone.value), day)\n )\n .reverse()\n }\n return []\n }\n\n watch(\n () => props.currentDay,\n () => getDays()\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(rows.value, (row, index) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"calendar-row\",\n key: index\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(row, (day, i) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: _normalizeClass([\"calendar-cell\", {\n 'disabled-cell': !_unref(isSameMonth)(day, _unref(currentDay)),\n 'week-end': isWeekEnd(i),\n today: _unref(isToday)(day),\n }]),\n key: i\n }, [\n _createVNode(CalendarWorkouts, {\n workouts: filterWorkouts(day, _unref(workouts)),\n sports: _unref(sports),\n displayHARecord: _unref(displayHARecord)\n }, null, 8, [\"workouts\", \"sports\", \"displayHARecord\"]),\n _createElementVNode(\"div\", _hoisted_2, _toDisplayString(_unref(format)(day, 'd')), 1)\n ], 2))\n }), 128))\n ]))\n }), 128))\n ]))\n}\n}\n\n})","import script from \"./CalendarCells.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./CalendarCells.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./CalendarCells.vue?vue&type=style&index=0&id=34b99f0e&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, unref as _unref, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode } from \"vue\"\n\nconst _hoisted_1 = { class: \"calendar-days\" }\n\nimport { Locale, format, addDays } from 'date-fns'\n\n interface Props {\n startDate: Date\n localeOptions: Locale\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'CalendarDays',\n props: {\n startDate: null,\n localeOptions: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n startDate: Date\n localeOptions: Locale\n };\n\n \n\n const days = []\n for (let i = 0; i < 7; i++) {\n days.push(addDays(props.startDate, i))\n }\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList(days, (day, index) => {\n return _createElementVNode(\"div\", {\n class: \"calendar-day\",\n key: index\n }, _toDisplayString(_unref(format)(day, 'EEE', { locale: __props.localeOptions })), 1)\n }), 64))\n ]))\n}\n}\n\n})","import script from \"./CalendarDays.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./CalendarDays.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./CalendarDays.vue?vue&type=style&index=0&id=4f3dc99e&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, unref as _unref, toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"calendar-header\" }\nconst _hoisted_2 = /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-chevron-left\",\n \"aria-hidden\": \"true\"\n}, null, -1)\nconst _hoisted_3 = [\n _hoisted_2\n]\nconst _hoisted_4 = { class: \"calendar-month\" }\nconst _hoisted_5 = /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-chevron-right\",\n \"aria-hidden\": \"true\"\n}, null, -1)\nconst _hoisted_6 = [\n _hoisted_5\n]\n\nimport { Locale, format } from 'date-fns'\n import { toRefs } from 'vue'\n\n interface Props {\n day: Date\n localeOptions: Locale\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'CalendarHeader',\n props: {\n day: null,\n localeOptions: null\n },\n emits: ['displayNextMonth', 'displayPreviousMonth'],\n setup(__props: any, { emit }) {\n\nconst props = __props as {\n day: Date\n localeOptions: Locale\n };\n\n \n\n \n\n const { day, localeOptions } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", {\n class: \"calendar-arrow calendar-arrow-left\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (emit('displayPreviousMonth')))\n }, _hoisted_3),\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"span\", null, _toDisplayString(_unref(format)(_unref(day), 'MMM yyyy', { locale: _unref(localeOptions) })), 1)\n ]),\n _createElementVNode(\"div\", {\n class: \"calendar-arrow calendar-arrow-right\",\n onClick: _cache[1] || (_cache[1] = ($event: any) => (emit('displayNextMonth')))\n }, _hoisted_6)\n ]))\n}\n}\n\n})","import script from \"./CalendarHeader.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./CalendarHeader.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./CalendarHeader.vue?vue&type=style&index=0&id=79a65a70&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { id: \"user-calendar\" }\nconst _hoisted_2 = { class: \"calendar-card box\" }\n\nimport { Locale, addMonths, format, subMonths } from 'date-fns'\n import { ComputedRef, computed, ref, toRefs, onBeforeMount } from 'vue'\n\n import CalendarCells from '@/components/Dashboard/UserCalendar/CalendarCells.vue'\n import CalendarDays from '@/components/Dashboard/UserCalendar/CalendarDays.vue'\n import CalendarHeader from '@/components/Dashboard/UserCalendar/CalendarHeader.vue'\n import { ROOT_STORE, WORKOUTS_STORE } from '@/store/constants'\n import { ISport } from '@/types/sports'\n import { IAuthUserProfile } from '@/types/user'\n import { IWorkout, TWorkoutsPayload } from '@/types/workouts'\n import { useStore } from '@/use/useStore'\n import { getCalendarStartAndEnd } from '@/utils/dates'\n import { defaultOrder } from '@/utils/workouts'\n\n interface Props {\n sports: ISport[]\n user: IAuthUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'index',\n props: {\n sports: null,\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n sports: ISport[]\n user: IAuthUserProfile\n };\n\n \n\n const store = useStore()\n\n const { sports, user } = toRefs(props)\n const dateFormat = 'yyyy-MM-dd'\n const day = ref(new Date())\n const calendarDates = ref(getCalendarStartAndEnd(day.value, props.user.weekm))\n const calendarWorkouts: ComputedRef = computed(\n () => store.getters[WORKOUTS_STORE.GETTERS.CALENDAR_WORKOUTS]\n )\n const localeOptions: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.LOCALE]\n )\n\n onBeforeMount(() => getCalendarWorkouts())\n\n function getCalendarWorkouts() {\n calendarDates.value = getCalendarStartAndEnd(day.value, props.user.weekm)\n const apiParams: TWorkoutsPayload = {\n from: format(calendarDates.value.start, dateFormat),\n to: format(calendarDates.value.end, dateFormat),\n page: 1,\n per_page: 100,\n ...defaultOrder,\n }\n store.dispatch(WORKOUTS_STORE.ACTIONS.GET_CALENDAR_WORKOUTS, apiParams)\n }\n function displayNextMonth() {\n day.value = addMonths(day.value, 1)\n getCalendarWorkouts()\n }\n function displayPreviousMonth() {\n day.value = subMonths(day.value, 1)\n getCalendarWorkouts()\n }\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createVNode(CalendarHeader, {\n day: day.value,\n \"locale-options\": _unref(localeOptions),\n onDisplayNextMonth: displayNextMonth,\n onDisplayPreviousMonth: displayPreviousMonth\n }, null, 8, [\"day\", \"locale-options\"]),\n _createVNode(CalendarDays, {\n \"start-date\": calendarDates.value.start,\n \"locale-options\": _unref(localeOptions)\n }, null, 8, [\"start-date\", \"locale-options\"]),\n _createVNode(CalendarCells, {\n currentDay: day.value,\n displayHARecord: _unref(user).display_ascent,\n \"end-date\": calendarDates.value.end,\n sports: _unref(sports),\n \"start-date\": calendarDates.value.start,\n timezone: _unref(user).timezone,\n workouts: _unref(calendarWorkouts),\n weekStartingMonday: _unref(user).weekm\n }, null, 8, [\"currentDay\", \"displayHARecord\", \"end-date\", \"sports\", \"start-date\", \"timezone\", \"workouts\", \"weekStartingMonday\"])\n ])\n ]))\n}\n}\n\n})","import script from \"./index.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./index.vue?vue&type=style&index=0&id=3e7444d9&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, unref as _unref, createVNode as _createVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-1bcddc12\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"user-month-stats\" }\n\nimport { endOfMonth, startOfMonth } from 'date-fns'\n import { toRefs } from 'vue'\n\n import StatChart from '@/components/Common/StatsChart/index.vue'\n import { ISport } from '@/types/sports'\n import { IUserProfile } from '@/types/user'\n\n interface Props {\n sports: ISport[]\n user: IUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserMonthStats',\n props: {\n sports: null,\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n sports: ISport[]\n user: IUserProfile\n };\n\n \n\n const { sports, user } = toRefs(props)\n const date = new Date()\n const chartParams = {\n duration: 'week',\n start: startOfMonth(date),\n end: endOfMonth(date),\n }\n const selectedSportIds = props.sports.map((sport) => sport.id)\n\nreturn (_ctx: any,_cache: any) => {\n const _component_Card = _resolveComponent(\"Card\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_Card, null, {\n title: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('dashboard.THIS_MONTH')), 1)\n ]),\n content: _withCtx(() => [\n _createVNode(StatChart, {\n sports: _unref(sports),\n user: _unref(user),\n \"chart-params\": chartParams,\n \"displayed-sport-ids\": _unref(selectedSportIds),\n \"hide-chart-if-no-data\": true\n }, null, 8, [\"sports\", \"user\", \"displayed-sport-ids\"])\n ]),\n _: 1\n })\n ]))\n}\n}\n\n})","import script from \"./UserMonthStats.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserMonthStats.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserMonthStats.vue?vue&type=style&index=0&id=1bcddc12&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-1bcddc12\"]])\n\nexport default __exports__","import createI18n from '@/i18n'\nimport { ITranslatedSport } from '@/types/sports'\nimport { TUnit } from '@/types/units'\nimport { ICardRecord, IRecord, IRecordsBySports } from '@/types/workouts'\nimport { formatDate, getDateFormat } from '@/utils/dates'\nimport { convertDistance, units } from '@/utils/units'\n\nconst { locale } = createI18n.global\n\nexport const formatRecord = (\n record: IRecord,\n tz: string,\n useImperialUnits: boolean,\n date_format: string\n): Record => {\n const distanceUnitFrom: TUnit = 'km'\n const distanceUnitTo: TUnit = useImperialUnits\n ? units[distanceUnitFrom].defaultTarget\n : distanceUnitFrom\n const ascentUnitFrom: TUnit = 'm'\n const ascentUnitTo: TUnit = useImperialUnits\n ? units[ascentUnitFrom].defaultTarget\n : ascentUnitFrom\n let value\n switch (record.record_type) {\n case 'AS':\n case 'MS':\n value = `${convertDistance(\n +record.value,\n distanceUnitFrom,\n distanceUnitTo,\n 2\n )} ${distanceUnitTo}/h`\n break\n case 'FD':\n value = `${convertDistance(\n +record.value,\n distanceUnitFrom,\n distanceUnitTo,\n 3\n )} ${distanceUnitTo}`\n break\n case 'HA':\n value = `${convertDistance(\n +record.value,\n ascentUnitFrom,\n ascentUnitTo,\n 2\n )} ${ascentUnitTo}`\n break\n case 'LD':\n value = record.value\n break\n default:\n throw new Error(\n `Invalid record type, expected: \"AS\", \"FD\", \"HA\", \"LD\", \"MD\", got: \"${record.record_type}\"`\n )\n }\n return {\n workout_date: formatDate(record.workout_date, tz, date_format, false),\n workout_id: record.workout_id,\n id: record.id,\n record_type: record.record_type,\n value: value,\n }\n}\n\nexport const sortRecords = (a: ICardRecord, b: ICardRecord): number => {\n const recordALabel = a.label.toLowerCase()\n const recordBLabel = b.label.toLowerCase()\n return recordALabel > recordBLabel ? 1 : recordALabel < recordBLabel ? -1 : 0\n}\n\nexport const getRecordsBySports = (\n records: IRecord[],\n translatedSports: ITranslatedSport[],\n tz: string,\n useImperialUnits: boolean,\n display_ascent: boolean,\n date_format: string\n): IRecordsBySports => {\n date_format = getDateFormat(date_format, locale.value)\n return records\n .filter((r) => (display_ascent ? true : r.record_type !== 'HA'))\n .reduce((sportList: IRecordsBySports, record) => {\n const sport = translatedSports.find((s) => s.id === record.sport_id)\n if (sport && sport.label) {\n if (sportList[sport.translatedLabel] === void 0) {\n sportList[sport.translatedLabel] = {\n label: sport.label,\n color: sport.color,\n records: [],\n }\n }\n sportList[sport.translatedLabel].records.push(\n formatRecord(record, tz, useImperialUnits, date_format)\n )\n }\n return sportList\n }, {})\n}\n","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, resolveComponent as _resolveComponent, createVNode as _createVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createElementVNode as _createElementVNode, withCtx as _withCtx, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-8d17c606\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"records-card\" }\nconst _hoisted_2 = { class: \"record-type\" }\nconst _hoisted_3 = { class: \"record-value\" }\nconst _hoisted_4 = { class: \"record-date\" }\n\nimport { toRefs } from 'vue'\n import { useI18n } from 'vue-i18n'\n\n import { ICardRecord, IRecord, IRecordsBySports } from '@/types/workouts'\n import { sortRecords } from '@/utils/records'\n\n interface Props {\n records: IRecordsBySports\n sportTranslatedLabel: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'RecordsCard',\n props: {\n records: null,\n sportTranslatedLabel: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n records: IRecordsBySports\n sportTranslatedLabel: string\n };\n\n \n\n const { records, sportTranslatedLabel } = toRefs(props)\n\n const { t } = useI18n()\n\n function getTranslatedRecords(records: IRecord[]): ICardRecord[] {\n const translatedRecords: ICardRecord[] = []\n records.map((record) => {\n translatedRecords.push({\n ...record,\n label: t(`workouts.RECORD_${record.record_type}`),\n })\n })\n return translatedRecords.sort(sortRecords)\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _component_SportImage = _resolveComponent(\"SportImage\")!\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_Card = _resolveComponent(\"Card\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_Card, null, {\n title: _withCtx(() => [\n _createVNode(_component_SportImage, {\n \"sport-label\": _unref(records).label,\n color: _unref(records).color\n }, null, 8, [\"sport-label\", \"color\"]),\n _createTextVNode(\" \" + _toDisplayString(_unref(sportTranslatedLabel)), 1)\n ]),\n content: _withCtx(() => [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(getTranslatedRecords(_unref(records).records), (record) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: \"record\",\n key: record.id\n }, [\n _createElementVNode(\"span\", _hoisted_2, _toDisplayString(record.label), 1),\n _createElementVNode(\"span\", _hoisted_3, _toDisplayString(record.value), 1),\n _createElementVNode(\"span\", _hoisted_4, [\n _createVNode(_component_router_link, {\n to: {\n name: 'Workout',\n params: { workoutId: record.workout_id },\n }\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(record.workout_date), 1)\n ]),\n _: 2\n }, 1032, [\"to\"])\n ])\n ]))\n }), 128))\n ]),\n _: 1\n })\n ]))\n}\n}\n\n})","import script from \"./RecordsCard.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./RecordsCard.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./RecordsCard.vue?vue&type=style&index=0&id=8d17c606&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-8d17c606\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, unref as _unref, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, renderList as _renderList, Fragment as _Fragment, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-f0c85cb8\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"user-records-section\" }\nconst _hoisted_2 = { class: \"section-title\" }\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-trophy custom-fa-small\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_4 = { class: \"user-records\" }\nconst _hoisted_5 = {\n key: 0,\n class: \"no-records\"\n}\n\nimport { computed } from 'vue'\n import { useI18n } from 'vue-i18n'\n\n import RecordsCard from '@/components/Dashboard/UserRecords/RecordsCard.vue'\n import { ISport } from '@/types/sports'\n import { IAuthUserProfile } from '@/types/user'\n import { getRecordsBySports } from '@/utils/records'\n import { translateSports } from '@/utils/sports'\n\n interface Props {\n sports: ISport[]\n user: IAuthUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'index',\n props: {\n sports: null,\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n sports: ISport[]\n user: IAuthUserProfile\n };\n\n \n\n const { t } = useI18n()\n\n const recordsBySport = computed(() =>\n getRecordsBySports(\n props.user.records,\n translateSports(props.sports, t),\n props.user.timezone,\n props.user.imperial_units,\n props.user.display_ascent,\n props.user.date_format\n )\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _hoisted_3,\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.RECORD', 2)), 1)\n ]),\n _createElementVNode(\"div\", _hoisted_4, [\n (Object.keys(_unref(recordsBySport)).length === 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_5, _toDisplayString(_ctx.$t('workouts.NO_RECORDS')), 1))\n : _createCommentVNode(\"\", true),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(Object.keys(_unref(recordsBySport)).sort(), (sportTranslatedLabel) => {\n return (_openBlock(), _createBlock(RecordsCard, {\n sportTranslatedLabel: sportTranslatedLabel,\n records: _unref(recordsBySport)[sportTranslatedLabel],\n key: sportTranslatedLabel,\n useImperialUnits: __props.user.imperial_units\n }, null, 8, [\"sportTranslatedLabel\", \"records\", \"useImperialUnits\"]))\n }), 128))\n ])\n ]))\n}\n}\n\n})","import script from \"./index.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./index.vue?vue&type=style&index=0&id=f0c85cb8&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-f0c85cb8\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { id: \"user-stats\" }\n\nimport { ComputedRef, computed, toRefs } from 'vue'\n import { useI18n } from 'vue-i18n'\n\n import StatCard from '@/components/Common/StatCard.vue'\n import { TUnit } from '@/types/units'\n import { IAuthUserProfile } from '@/types/user'\n import { convertDistance, units } from '@/utils/units'\n interface Props {\n user: IAuthUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'index',\n props: {\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IAuthUserProfile\n };\n\n \n\n const { t } = useI18n()\n\n const { user } = toRefs(props)\n const userTotalDuration: ComputedRef = computed(\n () => props.user.total_duration\n )\n const totalDuration = computed(() => get_duration(userTotalDuration))\n const distanceUnitFrom: TUnit = 'km'\n const distanceUnitTo: TUnit = user.value.imperial_units\n ? units[distanceUnitFrom].defaultTarget\n : distanceUnitFrom\n const totalDistance: ComputedRef = computed(() =>\n user.value.imperial_units\n ? convertDistance(user.value.total_distance, distanceUnitFrom, distanceUnitTo, 2)\n : parseFloat(user.value.total_distance.toFixed(2)))\n const ascentUnitFrom: TUnit = 'm'\n const ascentUnitTo: TUnit = user.value.imperial_units\n ? units[ascentUnitFrom].defaultTarget\n : ascentUnitFrom\n const totalAscent: ComputedRef = computed(() =>\n user.value.imperial_units\n ? convertDistance(user.value.total_ascent, ascentUnitFrom, ascentUnitTo, 2)\n : parseFloat(user.value.total_ascent.toFixed(2)))\n\n\n function get_duration(total_duration: ComputedRef) {\n const duration = total_duration.value.match(/day/g)\n ? total_duration.value.split(', ')[1]\n : total_duration.value\n return {\n days: total_duration.value.match(/day/g)\n ? `${total_duration.value.split(' ')[0]} ${\n total_duration.value.match(/days/g)\n ? t('common.DAY', 2)\n : t('common.DAY', 1)\n }`\n : `0 ${t('common.DAY', 2)},`,\n duration: `${duration.split(':')[0]}h ${duration.split(':')[1]}min`,\n }\n }\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(StatCard, {\n icon: \"calendar\",\n value: _unref(user).nb_workouts,\n text: _ctx.$t('workouts.WORKOUT', _unref(user).nb_workouts)\n }, null, 8, [\"value\", \"text\"]),\n _createVNode(StatCard, {\n icon: \"road\",\n value: _unref(totalDistance),\n text: _unref(distanceUnitTo) === 'mi' ? 'miles' : _unref(distanceUnitTo)\n }, null, 8, [\"value\", \"text\"]),\n (_unref(user).display_ascent)\n ? (_openBlock(), _createBlock(StatCard, {\n key: 0,\n icon: \"location-arrow\",\n value: _unref(totalAscent),\n text: _unref(ascentUnitTo) === 'ft' ? 'feet' : _unref(ascentUnitTo)\n }, null, 8, [\"value\", \"text\"]))\n : _createCommentVNode(\"\", true),\n _createVNode(StatCard, {\n icon: \"clock-o\",\n value: _unref(totalDuration).days,\n text: _unref(totalDuration).duration\n }, null, 8, [\"value\", \"text\"]),\n (!_unref(user).display_ascent)\n ? (_openBlock(), _createBlock(StatCard, {\n key: 1,\n icon: \"tags\",\n value: _unref(user).nb_sports,\n text: _ctx.$t('workouts.SPORT', _unref(user).nb_sports)\n }, null, 8, [\"value\", \"text\"]))\n : _createCommentVNode(\"\", true)\n ]))\n}\n}\n\n})","import script from \"./index.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./index.vue?vue&type=style&index=0&id=22dcb990&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, resolveComponent as _resolveComponent, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-4c0893c1\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n key: 0,\n id: \"dashboard\",\n class: \"view\"\n}\nconst _hoisted_2 = { class: \"container mobile-menu\" }\nconst _hoisted_3 = { class: \"box\" }\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-calendar\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_5 = [\n _hoisted_4\n]\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-bar-chart\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_7 = [\n _hoisted_6\n]\nconst _hoisted_8 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-map-o\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_9 = [\n _hoisted_8\n]\nconst _hoisted_10 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-trophy\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_11 = [\n _hoisted_10\n]\nconst _hoisted_12 = { class: \"container\" }\nconst _hoisted_13 = { class: \"container dashboard-container\" }\nconst _hoisted_14 = { class: \"left-container dashboard-sub-container\" }\nconst _hoisted_15 = { class: \"right-container dashboard-sub-container\" }\nconst _hoisted_16 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { id: \"bottom\" }, null, -1))\nconst _hoisted_17 = {\n key: 1,\n class: \"app-loading\"\n}\n\nimport { ComputedRef, Ref, computed, onBeforeMount, ref } from 'vue'\n\n import Timeline from '@/components/Dashboard/Timeline.vue'\n import UserCalendar from '@/components/Dashboard/UserCalendar/index.vue'\n import UserMonthStats from '@/components/Dashboard/UserMonthStats.vue'\n import UserRecords from '@/components/Dashboard/UserRecords/index.vue'\n import UserStatsCards from '@/components/Dashboard/UserStatsCards/index.vue'\n import { AUTH_USER_STORE, SPORTS_STORE } from '@/store/constants'\n import { ISport } from '@/types/sports'\n import { IAuthUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'Dashboard',\n setup(__props) {\n\n const store = useStore()\n\n const authUser: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.AUTH_USER_PROFILE]\n )\n const sports: ComputedRef = computed(\n () => store.getters[SPORTS_STORE.GETTERS.SPORTS]\n )\n const isSelected: Ref = ref('calendar')\n\n onBeforeMount(() => store.dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE))\n\n function updateDisplayColumn(target: string) {\n isSelected.value = target\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _component_Loader = _resolveComponent(\"Loader\")!\n\n return (_unref(authUser).username && _unref(sports).length > 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"mobile-menu-item\", { 'is-selected': isSelected.value === 'calendar' }]),\n onClick: _cache[0] || (_cache[0] = ($event: any) => (updateDisplayColumn('calendar')))\n }, _hoisted_5, 2),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"mobile-menu-item\", { 'is-selected': isSelected.value === 'chart' }]),\n onClick: _cache[1] || (_cache[1] = ($event: any) => (updateDisplayColumn('chart')))\n }, _hoisted_7, 2),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"mobile-menu-item\", { 'is-selected': isSelected.value === 'timeline' }]),\n onClick: _cache[2] || (_cache[2] = ($event: any) => (updateDisplayColumn('timeline')))\n }, _hoisted_9, 2),\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"mobile-menu-item\", { 'is-selected': isSelected.value === 'records' }]),\n onClick: _cache[3] || (_cache[3] = ($event: any) => (updateDisplayColumn('records')))\n }, _hoisted_11, 2)\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_12, [\n _createVNode(UserStatsCards, { user: _unref(authUser) }, null, 8, [\"user\"])\n ]),\n _createElementVNode(\"div\", _hoisted_13, [\n _createElementVNode(\"div\", _hoisted_14, [\n _createVNode(UserMonthStats, {\n sports: _unref(sports),\n user: _unref(authUser),\n class: _normalizeClass({ 'is-hidden': !(isSelected.value === 'chart') })\n }, null, 8, [\"sports\", \"user\", \"class\"]),\n _createVNode(UserRecords, {\n sports: _unref(sports),\n user: _unref(authUser),\n class: _normalizeClass({ 'is-hidden': !(isSelected.value === 'records') })\n }, null, 8, [\"sports\", \"user\", \"class\"])\n ]),\n _createElementVNode(\"div\", _hoisted_15, [\n _createVNode(UserCalendar, {\n sports: _unref(sports),\n user: _unref(authUser),\n class: _normalizeClass({ 'is-hidden': !(isSelected.value === 'calendar') })\n }, null, 8, [\"sports\", \"user\", \"class\"]),\n _createVNode(Timeline, {\n sports: _unref(sports),\n user: _unref(authUser),\n class: _normalizeClass({ 'is-hidden': !(isSelected.value === 'timeline') })\n }, null, 8, [\"sports\", \"user\", \"class\"])\n ])\n ]),\n _hoisted_16\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_17, [\n _createVNode(_component_Loader)\n ]))\n}\n}\n\n})","import script from \"./Dashboard.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Dashboard.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Dashboard.vue?vue&type=style&index=0&id=4c0893c1&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-4c0893c1\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"not-found view\" }\n\nimport NotFound from '@/components/Common/NotFound.vue'\n\nexport default /*#__PURE__*/_defineComponent({\n __name: 'NotFoundView',\n setup(__props) {\n\n \nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(NotFound)\n ]))\n}\n}\n\n})","import script from \"./NotFoundView.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./NotFoundView.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { createVNode as _createVNode, createElementVNode as _createElementVNode, unref as _unref, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-58043acb\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"loginOrRegister\",\n class: \"view\"\n}\nconst _hoisted_2 = { class: \"container\" }\nconst _hoisted_3 = { class: \"container-sub\" }\nconst _hoisted_4 = { class: \"container-sub\" }\n\nimport { toRefs } from 'vue'\n\n import BikePic from '@/components/BikePic.vue'\n import LoginOrRegisterForm from '@/components/User/UserAuthForm.vue'\n\n interface Props {\n action: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'LoginOrRegister',\n props: {\n action: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n action: string\n };\n\n \n\n const { action } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createVNode(BikePic)\n ]),\n _createElementVNode(\"div\", _hoisted_4, [\n _createVNode(LoginOrRegisterForm, { action: _unref(action) }, null, 8, [\"action\"])\n ])\n ])\n ]))\n}\n}\n\n})","import script from \"./LoginOrRegister.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./LoginOrRegister.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./LoginOrRegister.vue?vue&type=style&index=0&id=58043acb&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-58043acb\"]])\n\nexport default __exports__","import { createRouter, createWebHistory, RouteRecordRaw } from 'vue-router'\n\nimport AdminApplication from '@/components/Administration/AdminApplication.vue'\nimport AdminMenu from '@/components/Administration/AdminMenu.vue'\nimport AdminSports from '@/components/Administration/AdminSports.vue'\nimport AdminUsers from '@/components/Administration/AdminUsers.vue'\nimport Profile from '@/components/User/ProfileDisplay/index.vue'\nimport UserInfos from '@/components/User/ProfileDisplay/UserInfos.vue'\nimport UserPreferences from '@/components/User/ProfileDisplay/UserPreferences.vue'\nimport ProfileEdition from '@/components/User/ProfileEdition/index.vue'\nimport UserAccountEdition from '@/components/User/ProfileEdition/UserAccountEdition.vue'\nimport UserInfosEdition from '@/components/User/ProfileEdition/UserInfosEdition.vue'\nimport UserPictureEdition from '@/components/User/ProfileEdition/UserPictureEdition.vue'\nimport UserPreferencesEdition from '@/components/User/ProfileEdition/UserPreferencesEdition.vue'\nimport AddUserApp from '@/components/User/UserApps/AddUserApp.vue'\nimport AuthorizeUserApp from '@/components/User/UserApps/AuthorizeUserApp.vue'\nimport UserApps from '@/components/User/UserApps/index.vue'\nimport UserApp from '@/components/User/UserApps/UserApp.vue'\nimport UserAppsList from '@/components/User/UserApps/UserAppsList.vue'\nimport UserSportPreferences from '@/components/User/UserSportPreferences.vue'\nimport store from '@/store'\nimport { AUTH_USER_STORE } from '@/store/constants'\nimport AboutView from '@/views/AboutView.vue'\nimport Dashboard from '@/views/Dashboard.vue'\nimport NotFoundView from '@/views/NotFoundView.vue'\nimport LoginOrRegister from '@/views/user/LoginOrRegister.vue'\n\nconst getTabFromPath = (path: string): string => {\n const regex = /(\\/profile)(\\/edit)*(\\/*)/\n const tag = path.replace(regex, '').toUpperCase()\n return tag === '' ? 'PROFILE' : tag.toUpperCase()\n}\n\nconst routes: Array = [\n {\n path: '/',\n name: 'Dashboard',\n component: Dashboard,\n },\n {\n path: '/login',\n name: 'Login',\n component: LoginOrRegister,\n props: { action: 'login' },\n },\n {\n path: '/register',\n name: 'Register',\n component: LoginOrRegister,\n props: { action: 'register' },\n },\n {\n path: '/account-confirmation',\n name: 'AccountConfirmation',\n component: () =>\n import(\n /* webpackChunkName: 'profile' */ '@/views/user/AccountConfirmationView.vue'\n ),\n },\n {\n path: '/account-confirmation/resend',\n name: 'AccountConfirmationResend',\n component: () =>\n import(\n /* webpackChunkName: 'reset' */ '@/views/user/AccountConfirmationResendView.vue'\n ),\n props: { action: 'account-confirmation-resend' },\n },\n {\n path: '/account-confirmation/email-sent',\n name: 'AccountConfirmationEmailSend',\n component: () =>\n import(\n /* webpackChunkName: 'reset' */ '@/views/user/AccountConfirmationResendView.vue'\n ),\n props: { action: 'email-sent' },\n },\n {\n path: '/password-reset/sent',\n name: 'PasswordEmailSent',\n component: () =>\n import(\n /* webpackChunkName: 'reset' */ '@/views/user/PasswordResetView.vue'\n ),\n props: { action: 'request-sent' },\n },\n {\n path: '/password-reset/request',\n name: 'PasswordResetRequest',\n component: () =>\n import(\n /* webpackChunkName: 'reset' */ '@/views/user/PasswordResetView.vue'\n ),\n props: { action: 'reset-request' },\n },\n {\n path: '/password-reset/password-updated',\n name: 'PasswordUpdated',\n component: () =>\n import(\n /* webpackChunkName: 'reset' */ '@/views/user/PasswordResetView.vue'\n ),\n props: { action: 'password-updated' },\n },\n {\n path: '/password-reset',\n name: 'PasswordReset',\n component: () =>\n import(\n /* webpackChunkName: 'reset' */ '@/views/user/PasswordResetView.vue'\n ),\n props: { action: 'reset' },\n },\n {\n path: '/email-update',\n name: 'EmailUpdate',\n component: () =>\n import(\n /* webpackChunkName: 'profile' */ '@/views/user/EmailUpdateView.vue'\n ),\n },\n {\n path: '/profile',\n name: 'Profile',\n component: () =>\n import(/* webpackChunkName: 'profile' */ '@/views/user/ProfileView.vue'),\n children: [\n {\n path: '',\n name: 'UserProfile',\n component: Profile,\n props: (route) => ({\n tab: getTabFromPath(route.path),\n }),\n children: [\n {\n path: '',\n name: 'UserInfos',\n component: UserInfos,\n },\n {\n path: 'preferences',\n name: 'UserPreferences',\n component: UserPreferences,\n },\n {\n path: 'sports',\n name: 'UserSportPreferences',\n component: UserSportPreferences,\n props: { isEdition: false },\n },\n {\n path: 'apps',\n name: 'UserApps',\n component: UserApps,\n children: [\n {\n path: '',\n name: 'UserAppsList',\n component: UserAppsList,\n },\n {\n path: ':id',\n name: 'UserApp',\n component: UserApp,\n },\n {\n path: ':id/created',\n name: 'CreatedUserApp',\n component: UserApp,\n props: { afterCreation: true },\n },\n {\n path: 'new',\n name: 'AddUserApp',\n component: AddUserApp,\n },\n {\n path: 'authorize',\n name: 'AuthorizeUserApp',\n component: AuthorizeUserApp,\n },\n ],\n },\n ],\n },\n {\n path: 'edit',\n name: 'UserProfileEdition',\n component: ProfileEdition,\n props: (route) => ({\n tab: getTabFromPath(route.path),\n }),\n children: [\n {\n path: '',\n name: 'UserInfosEdition',\n component: UserInfosEdition,\n },\n {\n path: 'account',\n name: 'UserAccountEdition',\n component: UserAccountEdition,\n },\n {\n path: 'picture',\n name: 'UserPictureEdition',\n component: UserPictureEdition,\n },\n {\n path: 'preferences',\n name: 'UserPreferencesEdition',\n component: UserPreferencesEdition,\n },\n {\n path: 'sports',\n name: 'UserSportPreferencesEdition',\n component: UserSportPreferences,\n props: { isEdition: true },\n },\n ],\n },\n ],\n },\n {\n path: '/statistics',\n name: 'Statistics',\n component: () =>\n import(/* webpackChunkName: 'statistics' */ '@/views/StatisticsView.vue'),\n },\n {\n path: '/users/:username',\n name: 'User',\n component: () =>\n import(/* webpackChunkName: 'profile' */ '@/views/user/UserView.vue'),\n },\n {\n path: '/workouts',\n name: 'Workouts',\n component: () =>\n import(\n /* webpackChunkName: 'workouts' */ '@/views/workouts/WorkoutsView.vue'\n ),\n },\n {\n path: '/workouts/:workoutId',\n name: 'Workout',\n component: () =>\n import(/* webpackChunkName: 'workouts' */ '@/views/workouts/Workout.vue'),\n props: { displaySegment: false },\n },\n {\n path: '/workouts/:workoutId/edit',\n name: 'EditWorkout',\n component: () =>\n import(\n /* webpackChunkName: 'workouts' */ '@/views/workouts/EditWorkout.vue'\n ),\n },\n {\n path: '/workouts/:workoutId/segment/:segmentId',\n name: 'WorkoutSegment',\n component: () =>\n import(/* webpackChunkName: 'workouts' */ '@/views/workouts/Workout.vue'),\n props: { displaySegment: true },\n },\n {\n path: '/workouts/add',\n name: 'AddWorkout',\n component: () =>\n import(\n /* webpackChunkName: 'workouts' */ '@/views/workouts/AddWorkout.vue'\n ),\n },\n {\n path: '/admin',\n name: 'Administration',\n component: () =>\n import(/* webpackChunkName: 'admin' */ '@/views/AdminView.vue'),\n children: [\n {\n path: '',\n name: 'AdministrationMenu',\n component: AdminMenu,\n },\n {\n path: 'application',\n name: 'ApplicationAdministration',\n component: AdminApplication,\n },\n {\n path: 'application/edit',\n name: 'ApplicationAdministrationEdition',\n component: AdminApplication,\n props: { edition: true },\n },\n {\n path: 'sports',\n name: 'SportsAdministration',\n component: AdminSports,\n },\n {\n path: 'users/:username',\n name: 'UserFromAdmin',\n component: () =>\n import(/* webpackChunkName: 'profile' */ '@/views/user/UserView.vue'),\n props: { fromAdmin: true },\n },\n {\n path: 'users',\n name: 'UsersAdministration',\n component: AdminUsers,\n },\n ],\n },\n {\n path: '/about',\n name: 'About',\n component: AboutView,\n },\n {\n path: '/:pathMatch(.*)*',\n name: 'not-found',\n component: NotFoundView,\n },\n]\n\nconst router = createRouter({\n history: createWebHistory(process.env.BASE_URL),\n routes,\n})\n\nconst pathsWithoutAuthentication = [\n '/login',\n '/password-reset',\n '/password-reset/password-updated',\n '/password-reset/request',\n '/password-reset/sent',\n '/register',\n '/account-confirmation',\n '/account-confirmation/resend',\n '/account-confirmation/email-sent',\n]\n\nconst pathsWithoutChecks = ['/email-update', '/about']\n\nrouter.beforeEach((to, from, next) => {\n store\n .dispatch(AUTH_USER_STORE.ACTIONS.CHECK_AUTH_USER)\n .then(() => {\n if (pathsWithoutChecks.includes(to.path)) {\n return next()\n }\n if (\n store.getters[AUTH_USER_STORE.GETTERS.IS_AUTHENTICATED] &&\n pathsWithoutAuthentication.includes(to.path)\n ) {\n return next('/')\n }\n if (\n !store.getters[AUTH_USER_STORE.GETTERS.IS_AUTHENTICATED] &&\n !pathsWithoutAuthentication.includes(to.path)\n ) {\n const path =\n to.path === '/'\n ? { path: '/login' }\n : { path: '/login', query: { from: to.fullPath } }\n next(path)\n } else {\n next()\n }\n })\n .catch((error) => {\n console.error(error)\n next()\n })\n})\n\nexport default router\n","export enum AuthUserActions {\n CHECK_AUTH_USER = 'CHECK_AUTH_USER',\n CONFIRM_ACCOUNT = 'CONFIRM_ACCOUNT',\n CONFIRM_EMAIL = 'CONFIRM_EMAIL',\n DELETE_ACCOUNT = 'DELETE_ACCOUNT',\n DELETE_PICTURE = 'DELETE_PICTURE',\n GET_USER_PROFILE = 'GET_USER_PROFILE',\n LOGIN_OR_REGISTER = 'LOGIN_OR_REGISTER',\n LOGOUT = 'LOGOUT',\n SEND_PASSWORD_RESET_REQUEST = 'SEND_PASSWORD_RESET_REQUEST',\n RESEND_ACCOUNT_CONFIRMATION_EMAIL = 'RESEND_ACCOUNT_CONFIRMATION_EMAIL',\n RESET_USER_PASSWORD = 'RESET_USER_PASSWORD',\n RESET_USER_SPORT_PREFERENCES = 'RESET_USER_SPORT_PREFERENCES',\n UPDATE_USER_ACCOUNT = 'UPDATE_USER_ACCOUNT',\n UPDATE_USER_PICTURE = 'UPDATE_USER_PICTURE',\n UPDATE_USER_PROFILE = 'UPDATE_USER_PROFILE',\n UPDATE_USER_PREFERENCES = 'UPDATE_USER_PREFERENCES',\n UPDATE_USER_SPORT_PREFERENCES = 'UPDATE_USER_SPORT_PREFERENCES',\n}\n\nexport enum AuthUserGetters {\n AUTH_TOKEN = 'AUTH_TOKEN',\n AUTH_USER_PROFILE = 'AUTH_USER_PROFILE',\n IS_ADMIN = 'IS_ADMIN',\n IS_AUTHENTICATED = 'IS_AUTHENTICATED',\n IS_SUCCESS = 'IS_SUCCESS',\n IS_REGISTRATION_SUCCESS = 'IS_REGISTRATION_SUCCESS',\n USER_LOADING = 'USER_LOADING',\n}\n\nexport enum AuthUserMutations {\n CLEAR_AUTH_USER_TOKEN = 'CLEAR_AUTH_USER_TOKEN',\n UPDATE_AUTH_TOKEN = 'UPDATE_AUTH_TOKEN',\n UPDATE_AUTH_USER_PROFILE = 'UPDATE_AUTH_USER_PROFILE',\n UPDATE_IS_SUCCESS = 'UPDATE_USER_IS_SUCCESS',\n UPDATE_IS_REGISTRATION_SUCCESS = 'UPDATE_IS_REGISTRATION_SUCCESS',\n UPDATE_USER_LOADING = 'UPDATE_USER_LOADING',\n}\n","export enum OAuth2Actions {\n AUTHORIZE_CLIENT = 'AUTHORIZE_CLIENT',\n CREATE_CLIENT = 'CREATE_CLIENT',\n DELETE_CLIENT = 'DELETE_CLIENT',\n GET_CLIENTS = 'GET_CLIENTS',\n GET_CLIENT_BY_CLIENT_ID = 'GET_CLIENT_BY_CLIENT_ID',\n GET_CLIENT_BY_ID = 'GET_CLIENT_BY_ID',\n REVOKE_ALL_TOKENS = 'REVOKE_ALL_TOKENS',\n}\n\nexport enum OAuth2Getters {\n CLIENT = 'CLIENT',\n CLIENTS = 'CLIENTS',\n CLIENTS_PAGINATION = 'CLIENTS_PAGINATION',\n REVOCATION_SUCCESSFUL = 'REVOCATION_SUCCESSFUL',\n}\n\nexport enum OAuth2Mutations {\n EMPTY_CLIENT = 'EMPTY_CLIENT',\n SET_CLIENT = 'SET_CLIENT',\n SET_CLIENTS = 'SET_CLIENTS',\n SET_CLIENTS_PAGINATION = 'SET_CLIENTS_PAGINATION',\n SET_REVOCATION_SUCCESSFUL = 'SET_REVOCATION_SUCCESSFUL',\n}\n","export enum RootActions {\n GET_APPLICATION_CONFIG = 'GET_APPLICATION_CONFIG',\n GET_APPLICATION_STATS = 'GET_APPLICATION_STATS',\n UPDATE_APPLICATION_CONFIG = 'UPDATE_APPLICATION_CONFIG',\n UPDATE_APPLICATION_LANGUAGE = 'UPDATE_APPLICATION_LANGUAGE',\n}\n\nexport enum RootGetters {\n APP_CONFIG = 'APP_CONFIG',\n APP_LOADING = 'APP_LOADING',\n APP_STATS = 'APP_STATS',\n ERROR_MESSAGES = 'ERROR_MESSAGES',\n LANGUAGE = 'LANGUAGE',\n LOCALE = 'LOCALE', // date-fns\n}\n\nexport enum RootMutations {\n EMPTY_ERROR_MESSAGES = 'EMPTY_ERROR_MESSAGES',\n SET_ERROR_MESSAGES = 'SET_ERROR_MESSAGES',\n UPDATE_APPLICATION_CONFIG = 'UPDATE_APPLICATION_CONFIG',\n UPDATE_APPLICATION_LOADING = 'UPDATE_APPLICATION_LOADING',\n UPDATE_APPLICATION_STATS = 'UPDATE_APPLICATION_STATS',\n UPDATE_LANG = 'UPDATE_LANG',\n}\n","export enum SportsActions {\n GET_SPORTS = 'GET_SPORTS',\n UPDATE_SPORTS = 'UPDATE_SPORTS',\n}\n\nexport enum SportsGetters {\n SPORTS = 'SPORTS',\n}\n\nexport enum SportsMutation {\n SET_SPORTS = 'SET_SPORTS',\n}\n","export enum StatisticsActions {\n GET_USER_STATS = 'GET_USER_STATS',\n}\n\nexport enum StatisticsGetters {\n USER_STATS = 'USER_STATS',\n}\n\nexport enum StatisticsMutations {\n EMPTY_USER_STATS = 'EMPTY_USER_STATS',\n UPDATE_USER_STATS = 'UPDATE_USER_STATS',\n}\n","export enum UsersActions {\n EMPTY_USER = 'EMPTY_USER',\n EMPTY_USERS = 'EMPTY_USERS',\n GET_USER = 'GET_USER',\n GET_USERS = 'GET_USERS',\n UPDATE_USER = 'UPDATE_USER',\n DELETE_USER_ACCOUNT = 'DELETE_USER_ACCOUNT',\n}\n\nexport enum UsersGetters {\n USER = 'USER',\n USERS = 'USERS',\n USERS_IS_SUCCESS = 'USERS_IS_SUCCESS',\n USERS_LOADING = 'USERS_LOADING',\n USERS_PAGINATION = 'USERS_PAGINATION',\n}\n\nexport enum UsersMutations {\n UPDATE_USER = 'UPDATE_USER',\n UPDATE_USER_IN_USERS = 'UPDATE_USER_IN_USERS',\n UPDATE_USERS = 'UPDATE_USERS',\n UPDATE_USERS_LOADING = 'UPDATE_USERS_LOADING',\n UPDATE_USERS_PAGINATION = 'UPDATE_USERS_PAGINATION',\n UPDATE_IS_SUCCESS = 'UPDATE_IS_SUCCESS',\n}\n","import {\n AuthUserActions,\n AuthUserGetters,\n AuthUserMutations,\n} from '@/store/modules/authUser/enums'\nimport {\n OAuth2Actions,\n OAuth2Getters,\n OAuth2Mutations,\n} from '@/store/modules/oauth2/enums'\nimport {\n RootActions,\n RootGetters,\n RootMutations,\n} from '@/store/modules/root/enums'\nimport {\n SportsActions,\n SportsGetters,\n SportsMutation,\n} from '@/store/modules/sports/enums'\nimport {\n StatisticsActions,\n StatisticsGetters,\n StatisticsMutations,\n} from '@/store/modules/statistics/enums'\nimport {\n UsersActions,\n UsersGetters,\n UsersMutations,\n} from '@/store/modules/users/enums'\nimport {\n WorkoutsActions,\n WorkoutsGetters,\n WorkoutsMutations,\n} from '@/store/modules/workouts/enums'\n\nexport const ROOT_STORE = {\n ACTIONS: RootActions,\n GETTERS: RootGetters,\n MUTATIONS: RootMutations,\n}\n\nexport const SPORTS_STORE = {\n ACTIONS: SportsActions,\n GETTERS: SportsGetters,\n MUTATIONS: SportsMutation,\n}\n\nexport const STATS_STORE = {\n ACTIONS: StatisticsActions,\n GETTERS: StatisticsGetters,\n MUTATIONS: StatisticsMutations,\n}\n\nexport const AUTH_USER_STORE = {\n ACTIONS: AuthUserActions,\n GETTERS: AuthUserGetters,\n MUTATIONS: AuthUserMutations,\n}\nexport const OAUTH2_STORE = {\n ACTIONS: OAuth2Actions,\n GETTERS: OAuth2Getters,\n MUTATIONS: OAuth2Mutations,\n}\n\nexport const USERS_STORE = {\n ACTIONS: UsersActions,\n GETTERS: UsersGetters,\n MUTATIONS: UsersMutations,\n}\n\nexport const WORKOUTS_STORE = {\n ACTIONS: WorkoutsActions,\n GETTERS: WorkoutsGetters,\n MUTATIONS: WorkoutsMutations,\n}\n","import axios from 'axios'\n\nimport { pendingRequests, removeRequestIfPending } from '@/api/pending'\nimport { getApiUrl } from '@/utils'\n\nconst api = axios.create({\n baseURL: getApiUrl(),\n})\n\napi.interceptors.request.use(\n (config) => {\n const controller = new AbortController()\n config.signal = controller.signal\n const requestKey = removeRequestIfPending(config)\n pendingRequests.set(requestKey, controller)\n return config\n },\n (error) => Promise.reject(error)\n)\n\napi.interceptors.response.use(\n (response) => {\n removeRequestIfPending(response.config)\n return response\n },\n (error) => {\n if (error.message !== 'canceled') {\n removeRequestIfPending(error.response.config)\n }\n return Promise.reject(error)\n }\n)\n\nexport default api\n","import { ActionContext, ActionTree } from 'vuex'\n\nimport authApi from '@/api/authApi'\nimport router from '@/router'\nimport { AUTH_USER_STORE, ROOT_STORE, USERS_STORE } from '@/store/constants'\nimport { IAuthUserState } from '@/store/modules/authUser/types'\nimport { IRootState } from '@/store/modules/root/types'\nimport { IUsersActions, IUsersState } from '@/store/modules/users/types'\nimport { TPaginationPayload } from '@/types/api'\nimport { IAdminUserPayload, IUserDeletionPayload } from '@/types/user'\nimport { handleError } from '@/utils'\n\nexport const deleteUserAccount = (\n context:\n | ActionContext\n | ActionContext,\n payload: IUserDeletionPayload\n): void => {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .delete(`users/${payload.username}`)\n .then((res) => {\n if (res.status === 204) {\n if (payload.fromAdmin) {\n router.push('/admin/users')\n } else {\n context\n .dispatch(AUTH_USER_STORE.ACTIONS.LOGOUT)\n .then(() => router.push('/'))\n }\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n}\n\nexport const actions: ActionTree & IUsersActions = {\n [USERS_STORE.ACTIONS.EMPTY_USER](\n context: ActionContext\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USER, {})\n },\n [USERS_STORE.ACTIONS.EMPTY_USERS](\n context: ActionContext\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USERS, [])\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USERS_PAGINATION, {})\n },\n [USERS_STORE.ACTIONS.GET_USER](\n context: ActionContext,\n username: string\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USERS_LOADING, true)\n authApi\n .get(`users/${username}`)\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n USERS_STORE.MUTATIONS.UPDATE_USER,\n res.data.data.users[0]\n )\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n .finally(() =>\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USERS_LOADING, false)\n )\n },\n [USERS_STORE.ACTIONS.GET_USERS](\n context: ActionContext,\n payload: TPaginationPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USERS_LOADING, true)\n authApi\n .get('users', { params: payload })\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n USERS_STORE.MUTATIONS.UPDATE_USERS,\n res.data.data.users\n )\n context.commit(\n USERS_STORE.MUTATIONS.UPDATE_USERS_PAGINATION,\n res.data.pagination\n )\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n .finally(() =>\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USERS_LOADING, false)\n )\n },\n [USERS_STORE.ACTIONS.UPDATE_USER](\n context: ActionContext,\n payload: IAdminUserPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(USERS_STORE.MUTATIONS.UPDATE_IS_SUCCESS, false)\n const data: Record = {}\n if (payload.admin !== undefined) {\n data.admin = payload.admin\n }\n if (payload.resetPassword) {\n data.reset_password = payload.resetPassword\n }\n if (payload.activate) {\n data.activate = payload.activate\n }\n if (payload.new_email !== undefined) {\n data.new_email = payload.new_email\n }\n authApi\n .patch(`users/${payload.username}`, data)\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n USERS_STORE.MUTATIONS.UPDATE_USER_IN_USERS,\n res.data.data.users[0]\n )\n if (payload.resetPassword || payload.new_email) {\n context.commit(USERS_STORE.MUTATIONS.UPDATE_IS_SUCCESS, true)\n }\n if (payload.activate || payload.new_email) {\n context.commit(\n USERS_STORE.MUTATIONS.UPDATE_USER,\n res.data.data.users[0]\n )\n }\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n .finally(() =>\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USERS_LOADING, false)\n )\n },\n [USERS_STORE.ACTIONS.DELETE_USER_ACCOUNT](\n context: ActionContext,\n payload: IUserDeletionPayload\n ): void {\n deleteUserAccount(context, {\n username: payload.username,\n fromAdmin: true,\n })\n },\n}\n","import { ActionContext, ActionTree } from 'vuex'\n\nimport authApi from '@/api/authApi'\nimport api from '@/api/defaultApi'\nimport router from '@/router'\nimport {\n AUTH_USER_STORE,\n ROOT_STORE,\n SPORTS_STORE,\n STATS_STORE,\n USERS_STORE,\n WORKOUTS_STORE,\n} from '@/store/constants'\nimport {\n IAuthUserActions,\n IAuthUserState,\n} from '@/store/modules/authUser/types'\nimport { IRootState } from '@/store/modules/root/types'\nimport { deleteUserAccount } from '@/store/modules/users/actions'\nimport {\n ILoginOrRegisterData,\n IUserAccountPayload,\n IUserDeletionPayload,\n IUserAccountUpdatePayload,\n IUserEmailPayload,\n IUserPasswordResetPayload,\n IUserPayload,\n IUserPicturePayload,\n IUserPreferencesPayload,\n IUserSportPreferencesPayload,\n} from '@/types/user'\nimport { handleError } from '@/utils'\n\nconst removeAuthUserData = (\n context: ActionContext\n) => {\n localStorage.removeItem('authToken')\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(STATS_STORE.MUTATIONS.EMPTY_USER_STATS)\n context.commit(AUTH_USER_STORE.MUTATIONS.CLEAR_AUTH_USER_TOKEN)\n context.commit(USERS_STORE.MUTATIONS.UPDATE_USERS, [])\n context.commit(WORKOUTS_STORE.MUTATIONS.EMPTY_WORKOUTS)\n context.commit(WORKOUTS_STORE.MUTATIONS.EMPTY_WORKOUT)\n router.push('/login')\n}\n\nexport const actions: ActionTree &\n IAuthUserActions = {\n [AUTH_USER_STORE.ACTIONS.CHECK_AUTH_USER](\n context: ActionContext\n ): void {\n if (\n window.localStorage.authToken &&\n !context.getters[AUTH_USER_STORE.GETTERS.IS_AUTHENTICATED]\n ) {\n context.commit(\n AUTH_USER_STORE.MUTATIONS.UPDATE_AUTH_TOKEN,\n window.localStorage.authToken\n )\n context.dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n }\n // after logout in another tab\n if (\n !window.localStorage.authToken &&\n context.getters[AUTH_USER_STORE.GETTERS.IS_AUTHENTICATED]\n ) {\n removeAuthUserData(context)\n }\n },\n [AUTH_USER_STORE.ACTIONS.CONFIRM_ACCOUNT](\n context: ActionContext,\n payload: IUserAccountUpdatePayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n api\n .post('auth/account/confirm', { token: payload.token })\n .then((res) => {\n if (res.data.status === 'success') {\n const token = res.data.auth_token\n window.localStorage.setItem('authToken', token)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_AUTH_TOKEN, token)\n context\n .dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n .then(() => router.push('/'))\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => {\n handleError(context, error)\n })\n },\n [AUTH_USER_STORE.ACTIONS.CONFIRM_EMAIL](\n context: ActionContext,\n payload: IUserAccountUpdatePayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_IS_SUCCESS, false)\n api\n .post('/auth/email/update', { token: payload.token })\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_IS_SUCCESS, true)\n if (payload.refreshUser) {\n context\n .dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n .then(() => {\n return router.push('/profile/edit/account')\n })\n }\n router.push('/profile/edit/account')\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => {\n handleError(context, error)\n })\n },\n [AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE](\n context: ActionContext\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .get('auth/profile')\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n AUTH_USER_STORE.MUTATIONS.UPDATE_AUTH_USER_PROFILE,\n res.data.data\n )\n if (res.data.data.language) {\n context.dispatch(\n ROOT_STORE.ACTIONS.UPDATE_APPLICATION_LANGUAGE,\n res.data.data.language\n )\n }\n context.dispatch(SPORTS_STORE.ACTIONS.GET_SPORTS)\n } else {\n handleError(context, null)\n removeAuthUserData(context)\n }\n })\n .catch((error) => {\n if (error.message !== 'canceled') {\n handleError(context, error)\n removeAuthUserData(context)\n }\n })\n },\n [AUTH_USER_STORE.ACTIONS.LOGIN_OR_REGISTER](\n context: ActionContext,\n data: ILoginOrRegisterData\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(\n AUTH_USER_STORE.MUTATIONS.UPDATE_IS_REGISTRATION_SUCCESS,\n false\n )\n api\n .post(`/auth/${data.actionType}`, data.formData)\n .then((res) => {\n if (res.data.status === 'success') {\n if (data.actionType === 'login') {\n const token = res.data.auth_token\n window.localStorage.setItem('authToken', token)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_AUTH_TOKEN, token)\n context\n .dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n .then(() =>\n router.push(\n typeof data.redirectUrl === 'string' ? data.redirectUrl : '/'\n )\n )\n } else {\n router\n .push('/login')\n .then(() =>\n context.commit(\n AUTH_USER_STORE.MUTATIONS.UPDATE_IS_REGISTRATION_SUCCESS,\n true\n )\n )\n }\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n [AUTH_USER_STORE.ACTIONS.LOGOUT](\n context: ActionContext\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .post('auth/logout')\n .then((res) => {\n if (res.data.status === 'success') {\n removeAuthUserData(context)\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n [AUTH_USER_STORE.ACTIONS.UPDATE_USER_PROFILE](\n context: ActionContext,\n payload: IUserPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, true)\n authApi\n .post('auth/profile/edit', payload)\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n AUTH_USER_STORE.MUTATIONS.UPDATE_AUTH_USER_PROFILE,\n res.data.data\n )\n router.push('/profile')\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n .finally(() =>\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, false)\n )\n },\n [AUTH_USER_STORE.ACTIONS.UPDATE_USER_ACCOUNT](\n context: ActionContext,\n payload: IUserAccountPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, true)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_IS_SUCCESS, false)\n authApi\n .patch('auth/profile/edit/account', payload)\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n AUTH_USER_STORE.MUTATIONS.UPDATE_AUTH_USER_PROFILE,\n res.data.data\n )\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_IS_SUCCESS, true)\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n .finally(() =>\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, false)\n )\n },\n [AUTH_USER_STORE.ACTIONS.UPDATE_USER_PREFERENCES](\n context: ActionContext,\n payload: IUserPreferencesPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, true)\n authApi\n .post('auth/profile/edit/preferences', payload)\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n AUTH_USER_STORE.MUTATIONS.UPDATE_AUTH_USER_PROFILE,\n res.data.data\n )\n context\n .dispatch(\n ROOT_STORE.ACTIONS.UPDATE_APPLICATION_LANGUAGE,\n res.data.data.language\n )\n .then(() => router.push('/profile/preferences'))\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n .finally(() =>\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, false)\n )\n },\n [AUTH_USER_STORE.ACTIONS.RESET_USER_SPORT_PREFERENCES](\n context: ActionContext,\n sportId: number\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, true)\n authApi\n .delete(`auth/profile/reset/sports/${sportId}`)\n .then((res) => {\n if (res.status === 204) {\n context.dispatch(SPORTS_STORE.ACTIONS.GET_SPORTS)\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => {\n handleError(context, error)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, false)\n })\n },\n [AUTH_USER_STORE.ACTIONS.UPDATE_USER_SPORT_PREFERENCES](\n context: ActionContext,\n payload: IUserSportPreferencesPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, true)\n authApi\n .post('auth/profile/edit/sports', payload)\n .then((res) => {\n if (res.data.status === 'success') {\n context.dispatch(SPORTS_STORE.ACTIONS.GET_SPORTS)\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => {\n handleError(context, error)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, false)\n })\n },\n [AUTH_USER_STORE.ACTIONS.UPDATE_USER_PICTURE](\n context: ActionContext,\n payload: IUserPicturePayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, true)\n if (!payload.picture) {\n throw new Error('No file part')\n }\n const form = new FormData()\n form.append('file', payload.picture)\n authApi\n .post('auth/picture', form, {\n headers: {\n 'content-type': 'multipart/form-data',\n },\n })\n .then((res) => {\n if (res.data.status === 'success') {\n context\n .dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n .then(() => router.push('/profile'))\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n .finally(() =>\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, false)\n )\n },\n [AUTH_USER_STORE.ACTIONS.DELETE_ACCOUNT](\n context: ActionContext,\n payload: IUserDeletionPayload\n ): void {\n deleteUserAccount(context, payload)\n },\n [AUTH_USER_STORE.ACTIONS.DELETE_PICTURE](\n context: ActionContext\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, true)\n authApi\n .delete(`auth/picture`)\n .then((res) => {\n if (res.status === 204) {\n context\n .dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n .then(() => router.push('/profile'))\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n .finally(() =>\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, false)\n )\n },\n [AUTH_USER_STORE.ACTIONS.SEND_PASSWORD_RESET_REQUEST](\n context: ActionContext,\n payload: IUserEmailPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n api\n .post('auth/password/reset-request', payload)\n .then((res) => {\n if (res.data.status === 'success') {\n router.push('/password-reset/sent')\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n [AUTH_USER_STORE.ACTIONS.RESEND_ACCOUNT_CONFIRMATION_EMAIL](\n context: ActionContext,\n payload: IUserEmailPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n api\n .post('auth/account/resend-confirmation', payload)\n .then((res) => {\n if (res.data.status === 'success') {\n router.push('/account-confirmation/email-sent')\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n [AUTH_USER_STORE.ACTIONS.RESET_USER_PASSWORD](\n context: ActionContext,\n payload: IUserPasswordResetPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n api\n .post('auth/password/update', payload)\n .then((res) => {\n if (res.data.status === 'success') {\n router.push('/password-reset/password-updated')\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n}\n","import { GetterTree } from 'vuex'\n\nimport { AUTH_USER_STORE } from '@/store/constants'\nimport {\n IAuthUserGetters,\n IAuthUserState,\n} from '@/store/modules/authUser/types'\nimport { IRootState } from '@/store/modules/root/types'\n\nexport const getters: GetterTree &\n IAuthUserGetters = {\n [AUTH_USER_STORE.GETTERS.AUTH_TOKEN]: (state: IAuthUserState) => {\n return state.authToken\n },\n [AUTH_USER_STORE.GETTERS.AUTH_USER_PROFILE]: (state: IAuthUserState) => {\n return state.authUserProfile\n },\n [AUTH_USER_STORE.GETTERS.IS_AUTHENTICATED]: (state: IAuthUserState) => {\n return state.authToken !== null\n },\n [AUTH_USER_STORE.GETTERS.IS_ADMIN]: (state: IAuthUserState) => {\n return state.authUserProfile && state.authUserProfile.admin\n },\n [AUTH_USER_STORE.GETTERS.IS_REGISTRATION_SUCCESS]: (\n state: IAuthUserState\n ) => {\n return state.isRegistrationSuccess\n },\n [AUTH_USER_STORE.GETTERS.IS_SUCCESS]: (state: IAuthUserState) => {\n return state.isSuccess\n },\n [AUTH_USER_STORE.GETTERS.USER_LOADING]: (state: IAuthUserState) => {\n return state.loading\n },\n}\n","import { MutationTree } from 'vuex'\n\nimport { AUTH_USER_STORE } from '@/store/constants'\nimport {\n IAuthUserState,\n TAuthUserMutations,\n} from '@/store/modules/authUser/types'\nimport { IAuthUserProfile } from '@/types/user'\n\nexport const mutations: MutationTree & TAuthUserMutations = {\n [AUTH_USER_STORE.MUTATIONS.CLEAR_AUTH_USER_TOKEN](state: IAuthUserState) {\n state.authToken = null\n state.authUserProfile = {}\n },\n [AUTH_USER_STORE.MUTATIONS.UPDATE_AUTH_TOKEN](\n state: IAuthUserState,\n authToken: string\n ) {\n state.authToken = authToken\n },\n [AUTH_USER_STORE.MUTATIONS.UPDATE_AUTH_USER_PROFILE](\n state: IAuthUserState,\n authUserProfile: IAuthUserProfile\n ) {\n state.authUserProfile = authUserProfile\n },\n [AUTH_USER_STORE.MUTATIONS.UPDATE_IS_REGISTRATION_SUCCESS](\n state: IAuthUserState,\n isRegistrationSuccess: boolean\n ) {\n state.isRegistrationSuccess = isRegistrationSuccess\n },\n [AUTH_USER_STORE.MUTATIONS.UPDATE_IS_SUCCESS](\n state: IAuthUserState,\n isSuccess: boolean\n ) {\n state.isSuccess = isSuccess\n },\n [AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING](\n state: IAuthUserState,\n loading: boolean\n ) {\n state.loading = loading\n },\n}\n","import { IAuthUserState } from '@/store/modules/authUser/types'\nimport { IAuthUserProfile } from '@/types/user'\n\nexport const authUserState: IAuthUserState = {\n authToken: null,\n authUserProfile: {},\n isSuccess: false,\n isRegistrationSuccess: false,\n loading: false,\n}\n","import { Module } from 'vuex'\n\nimport { actions } from '@/store/modules/authUser/actions'\nimport { getters } from '@/store/modules/authUser/getters'\nimport { mutations } from '@/store/modules/authUser/mutations'\nimport { authUserState } from '@/store/modules/authUser/state'\nimport { IAuthUserState } from '@/store/modules/authUser/types'\nimport { IRootState } from '@/store/modules/root/types'\n\nconst authUser: Module = {\n state: authUserState,\n actions,\n getters,\n mutations,\n}\n\nexport default authUser\n","import { ActionContext, ActionTree } from 'vuex'\n\nimport authApi from '@/api/authApi'\nimport router from '@/router'\nimport { OAUTH2_STORE, ROOT_STORE } from '@/store/constants'\nimport { IOAuth2Actions, IOAuth2State } from '@/store/modules/oauth2/types'\nimport { IRootState } from '@/store/modules/root/types'\nimport {\n IOauth2ClientsPayload,\n IOAuth2ClientPayload,\n IOAuth2ClientAuthorizePayload,\n} from '@/types/oauth'\nimport { handleError } from '@/utils'\n\nconst get_client = (\n context: ActionContext,\n url: string\n) => {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .get(url)\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(OAUTH2_STORE.MUTATIONS.SET_CLIENT, res.data.data.client)\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n}\n\nexport const actions: ActionTree & IOAuth2Actions = {\n [OAUTH2_STORE.ACTIONS.AUTHORIZE_CLIENT](\n context: ActionContext,\n payload: IOAuth2ClientAuthorizePayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n const form = new FormData()\n form.set('client_id', payload.client_id)\n form.set('response_type', payload.response_type)\n form.set('scope', payload.scope)\n form.set('confirm', 'true')\n if (payload.state) {\n form.set('state', payload.state)\n }\n if (payload.code_challenge) {\n form.set('code_challenge', payload.code_challenge)\n }\n if (payload.code_challenge_method) {\n form.set('code_challenge_method', payload.code_challenge_method)\n }\n\n authApi\n .post('oauth/authorize', form, {\n headers: {\n 'Content-Type': 'multipart/form-data',\n },\n })\n .then((res) => {\n if (res.status == 200 && res.data.redirect_url) {\n window.location.href = res.data.redirect_url\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n [OAUTH2_STORE.ACTIONS.CREATE_CLIENT](\n context: ActionContext,\n payload: IOAuth2ClientPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .post('oauth/apps', payload)\n .then((res) => {\n if (res.data.status === 'created') {\n context.commit(\n OAUTH2_STORE.MUTATIONS.SET_CLIENT,\n res.data.data.client\n )\n router.push(`/profile/apps/${res.data.data.client.id}/created`)\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n [OAUTH2_STORE.ACTIONS.DELETE_CLIENT](\n context: ActionContext,\n id: number\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .delete(`oauth/apps/${id}`)\n .then((res) => {\n if (res.status === 204) {\n context\n .dispatch(OAUTH2_STORE.ACTIONS.GET_CLIENTS)\n .then(() => router.push('/profile/apps'))\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n [OAUTH2_STORE.ACTIONS.GET_CLIENT_BY_CLIENT_ID](\n context: ActionContext,\n client_id: string\n ): void {\n get_client(context, `oauth/apps/${client_id}`)\n },\n [OAUTH2_STORE.ACTIONS.GET_CLIENT_BY_ID](\n context: ActionContext,\n id: number\n ): void {\n get_client(context, `oauth/apps/${id}/by_id`)\n },\n [OAUTH2_STORE.ACTIONS.GET_CLIENTS](\n context: ActionContext,\n payload: IOauth2ClientsPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .get('oauth/apps', {\n params: payload,\n })\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n OAUTH2_STORE.MUTATIONS.SET_CLIENTS,\n res.data.data.clients\n )\n context.commit(\n OAUTH2_STORE.MUTATIONS.SET_CLIENTS_PAGINATION,\n res.data.pagination\n )\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n [OAUTH2_STORE.ACTIONS.REVOKE_ALL_TOKENS](\n context: ActionContext,\n id: number\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(OAUTH2_STORE.MUTATIONS.SET_REVOCATION_SUCCESSFUL, false)\n authApi\n .post(`oauth/apps/${id}/revoke`)\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(OAUTH2_STORE.MUTATIONS.SET_REVOCATION_SUCCESSFUL, true)\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n}\n","import { GetterTree } from 'vuex'\n\nimport { OAUTH2_STORE } from '@/store/constants'\nimport { IOAuth2Getters, IOAuth2State } from '@/store/modules/oauth2/types'\nimport { IRootState } from '@/store/modules/root/types'\n\nexport const getters: GetterTree & IOAuth2Getters = {\n [OAUTH2_STORE.GETTERS.CLIENT]: (state: IOAuth2State) => state.client,\n [OAUTH2_STORE.GETTERS.CLIENTS]: (state: IOAuth2State) => state.clients,\n [OAUTH2_STORE.GETTERS.CLIENTS_PAGINATION]: (state: IOAuth2State) =>\n state.pagination,\n [OAUTH2_STORE.GETTERS.REVOCATION_SUCCESSFUL]: (state: IOAuth2State) =>\n state.revocationSuccessful,\n}\n","import { MutationTree } from 'vuex'\n\nimport { OAUTH2_STORE } from '@/store/constants'\nimport { IOAuth2State, TOAuth2Mutations } from '@/store/modules/oauth2/types'\nimport { IPagination } from '@/types/api'\nimport { IOAuth2Client } from '@/types/oauth'\n\nexport const mutations: MutationTree & TOAuth2Mutations = {\n [OAUTH2_STORE.MUTATIONS.SET_CLIENT](\n state: IOAuth2State,\n client: IOAuth2Client\n ) {\n state.client = client\n },\n [OAUTH2_STORE.MUTATIONS.EMPTY_CLIENT](state: IOAuth2State) {\n state.client = {}\n },\n [OAUTH2_STORE.MUTATIONS.SET_CLIENTS](\n state: IOAuth2State,\n clients: IOAuth2Client[]\n ) {\n state.clients = clients\n },\n [OAUTH2_STORE.MUTATIONS.SET_CLIENTS_PAGINATION](\n state: IOAuth2State,\n pagination: IPagination\n ) {\n state.pagination = pagination\n },\n [OAUTH2_STORE.MUTATIONS.SET_REVOCATION_SUCCESSFUL](\n state: IOAuth2State,\n revocationSuccessful: boolean\n ) {\n state.revocationSuccessful = revocationSuccessful\n },\n}\n","import { IOAuth2State } from '@/store/modules/oauth2/types'\nimport { IPagination } from '@/types/api'\nimport { IOAuth2Client } from '@/types/oauth'\n\nexport const oAuth2State: IOAuth2State = {\n client: {},\n clients: [],\n pagination: {},\n revocationSuccessful: false,\n}\n","import { Module } from 'vuex'\n\nimport { actions } from '@/store/modules/oauth2/actions'\nimport { getters } from '@/store/modules/oauth2/getters'\nimport { mutations } from '@/store/modules/oauth2/mutations'\nimport { oAuth2State } from '@/store/modules/oauth2/state'\nimport { IOAuth2State } from '@/store/modules/oauth2/types'\nimport { IRootState } from '@/store/modules/root/types'\n\nconst oauth2: Module = {\n state: oAuth2State,\n actions,\n getters,\n mutations,\n}\n\nexport default oauth2\n","import { ActionContext, ActionTree } from 'vuex'\n\nimport authApi from '@/api/authApi'\nimport createI18n from '@/i18n'\nimport router from '@/router'\nimport { ROOT_STORE } from '@/store/constants'\nimport { IRootActions, IRootState } from '@/store/modules/root/types'\nimport { TAppConfigForm } from '@/types/application'\nimport { handleError } from '@/utils'\n\nconst { locale } = createI18n.global\n\nexport const actions: ActionTree & IRootActions = {\n [ROOT_STORE.ACTIONS.GET_APPLICATION_CONFIG](\n context: ActionContext\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(ROOT_STORE.MUTATIONS.UPDATE_APPLICATION_LOADING, true)\n authApi\n .get('config')\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n ROOT_STORE.MUTATIONS.UPDATE_APPLICATION_CONFIG,\n res.data.data\n )\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n .finally(() =>\n context.commit(ROOT_STORE.MUTATIONS.UPDATE_APPLICATION_LOADING, false)\n )\n },\n [ROOT_STORE.ACTIONS.GET_APPLICATION_STATS](\n context: ActionContext\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .get('stats/all')\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n ROOT_STORE.MUTATIONS.UPDATE_APPLICATION_STATS,\n res.data.data\n )\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n [ROOT_STORE.ACTIONS.UPDATE_APPLICATION_CONFIG](\n context: ActionContext,\n payload: TAppConfigForm\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .patch('config', payload)\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n ROOT_STORE.MUTATIONS.UPDATE_APPLICATION_CONFIG,\n res.data.data\n )\n router.push('/admin/application')\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n [ROOT_STORE.ACTIONS.UPDATE_APPLICATION_LANGUAGE](\n context: ActionContext,\n language: string\n ): void {\n document.querySelector('html')?.setAttribute('lang', language)\n context.commit(ROOT_STORE.MUTATIONS.UPDATE_LANG, language)\n locale.value = language\n },\n}\n","import { GetterTree } from 'vuex'\n\nimport { ROOT_STORE } from '@/store/constants'\nimport { IRootGetters, IRootState } from '@/store/modules/root/types'\n\nexport const getters: GetterTree & IRootGetters = {\n [ROOT_STORE.GETTERS.APP_CONFIG]: (state: IRootState) => {\n return state.application.config\n },\n [ROOT_STORE.GETTERS.APP_LOADING]: (state: IRootState) => {\n return state.appLoading\n },\n [ROOT_STORE.GETTERS.APP_STATS]: (state: IRootState) => {\n return state.application.statistics\n },\n [ROOT_STORE.GETTERS.ERROR_MESSAGES]: (state: IRootState) => {\n return state.errorMessages\n },\n [ROOT_STORE.GETTERS.LANGUAGE]: (state: IRootState) => {\n return state.language\n },\n [ROOT_STORE.GETTERS.LOCALE]: (state: IRootState) => {\n return state.locale\n },\n}\n","import { MutationTree } from 'vuex'\n\nimport { ROOT_STORE } from '@/store/constants'\nimport { IRootState, TRootMutations } from '@/store/modules/root/types'\nimport { TAppConfig, IAppStatistics } from '@/types/application'\nimport { localeFromLanguage } from '@/utils/locales'\n\nexport const mutations: MutationTree & TRootMutations = {\n [ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES](state: IRootState) {\n state.errorMessages = null\n },\n [ROOT_STORE.MUTATIONS.SET_ERROR_MESSAGES](\n state: IRootState,\n errorMessages: string | string[]\n ) {\n state.errorMessages = errorMessages\n },\n [ROOT_STORE.MUTATIONS.UPDATE_APPLICATION_CONFIG](\n state: IRootState,\n config: TAppConfig\n ) {\n state.application.config = config\n },\n [ROOT_STORE.MUTATIONS.UPDATE_APPLICATION_LOADING](\n state: IRootState,\n loading: boolean\n ) {\n state.appLoading = loading\n },\n [ROOT_STORE.MUTATIONS.UPDATE_APPLICATION_STATS](\n state: IRootState,\n statistics: IAppStatistics\n ) {\n state.application.statistics = statistics\n },\n [ROOT_STORE.MUTATIONS.UPDATE_LANG](state: IRootState, language: string) {\n state.language = language\n state.locale = localeFromLanguage[language]\n },\n}\n","import { enUS } from 'date-fns/locale'\n\nimport { IRootState } from '@/store/modules/root/types'\nimport { IApplication } from '@/types/application'\n\nexport const state: IRootState = {\n root: true,\n language: 'en',\n locale: enUS,\n errorMessages: null,\n application: {\n statistics: {\n sports: 0,\n uploads_dir_size: 0,\n users: 0,\n workouts: 0,\n },\n },\n appLoading: false,\n}\n","import { ActionContext, ActionTree } from 'vuex'\n\nimport authApi from '@/api/authApi'\nimport { AUTH_USER_STORE, ROOT_STORE, SPORTS_STORE } from '@/store/constants'\nimport { IRootState } from '@/store/modules/root/types'\nimport { ISportsActions, ISportsState } from '@/store/modules/sports/types'\nimport { ISportPayload } from '@/types/sports'\nimport { handleError } from '@/utils'\n\nexport const actions: ActionTree & ISportsActions = {\n [SPORTS_STORE.ACTIONS.GET_SPORTS](\n context: ActionContext\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .get('sports')\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n SPORTS_STORE.MUTATIONS.SET_SPORTS,\n res.data.data.sports\n )\n context.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_USER_LOADING, false)\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n [SPORTS_STORE.ACTIONS.UPDATE_SPORTS](\n context: ActionContext,\n payload: ISportPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .patch(`sports/${payload.id}`, { is_active: payload.isActive })\n .then((res) => {\n if (res.data.status === 'success') {\n context.dispatch(SPORTS_STORE.ACTIONS.GET_SPORTS)\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n}\n","import { GetterTree } from 'vuex'\n\nimport { SPORTS_STORE } from '@/store/constants'\nimport { IRootState } from '@/store/modules/root/types'\nimport { ISportsGetters, ISportsState } from '@/store/modules/sports/types'\n\nexport const getters: GetterTree & ISportsGetters = {\n [SPORTS_STORE.GETTERS.SPORTS]: (state: ISportsState) => state.sports,\n}\n","import { MutationTree } from 'vuex'\n\nimport { SPORTS_STORE } from '@/store/constants'\nimport { ISportsState, TSportsMutations } from '@/store/modules/sports/types'\nimport { ISport } from '@/types/sports'\n\nexport const mutations: MutationTree & TSportsMutations = {\n [SPORTS_STORE.MUTATIONS.SET_SPORTS](state: ISportsState, sports: ISport[]) {\n state.sports = sports\n },\n}\n","import { ISportsState } from '@/store/modules/sports/types'\n\nexport const sportsState: ISportsState = {\n sports: [],\n}\n","import { Module } from 'vuex'\n\nimport { IRootState } from '@/store/modules/root/types'\nimport { actions } from '@/store/modules/sports/actions'\nimport { getters } from '@/store/modules/sports/getters'\nimport { mutations } from '@/store/modules/sports/mutations'\nimport { sportsState } from '@/store/modules/sports/state'\nimport { ISportsState } from '@/store/modules/sports/types'\n\nconst sports: Module = {\n state: sportsState,\n actions,\n getters,\n mutations,\n}\n\nexport default sports\n","import { ActionContext, ActionTree } from 'vuex'\n\nimport authApi from '@/api/authApi'\nimport { STATS_STORE, ROOT_STORE } from '@/store/constants'\nimport { IRootState } from '@/store/modules/root/types'\nimport {\n IStatisticsActions,\n IStatisticsState,\n} from '@/store/modules/statistics/types'\nimport { IUserStatisticsPayload } from '@/types/statistics'\nimport { handleError } from '@/utils'\n\nexport const actions: ActionTree &\n IStatisticsActions = {\n [STATS_STORE.ACTIONS.GET_USER_STATS](\n context: ActionContext,\n payload: IUserStatisticsPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .get(`stats/${payload.username}/${payload.filterType}`, {\n params: payload.params,\n })\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n STATS_STORE.MUTATIONS.UPDATE_USER_STATS,\n res.data.data.statistics\n )\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n },\n}\n","import { GetterTree } from 'vuex'\n\nimport { STATS_STORE } from '@/store/constants'\nimport { IRootState } from '@/store/modules/root/types'\nimport {\n IStatisticsGetters,\n IStatisticsState,\n} from '@/store/modules/statistics/types'\n\nexport const getters: GetterTree &\n IStatisticsGetters = {\n [STATS_STORE.GETTERS.USER_STATS]: (state: IStatisticsState) => {\n return state.statistics\n },\n}\n","import { MutationTree } from 'vuex'\n\nimport { STATS_STORE } from '@/store/constants'\nimport {\n IStatisticsState,\n TStatisticsMutations,\n} from '@/store/modules/statistics/types'\nimport { TStatisticsFromApi } from '@/types/statistics'\n\nexport const mutations: MutationTree & TStatisticsMutations =\n {\n [STATS_STORE.MUTATIONS.UPDATE_USER_STATS](\n state: IStatisticsState,\n statistics: TStatisticsFromApi\n ) {\n state.statistics = statistics\n },\n [STATS_STORE.MUTATIONS.EMPTY_USER_STATS](state: IStatisticsState) {\n state.statistics = {}\n },\n }\n","import { IStatisticsState } from '@/store/modules/statistics/types'\nimport { TStatisticsFromApi } from '@/types/statistics'\n\nexport const statisticsState: IStatisticsState = {\n statistics: {},\n}\n","import { Module } from 'vuex'\n\nimport { IRootState } from '@/store/modules/root/types'\nimport { actions } from '@/store/modules/statistics/actions'\nimport { getters } from '@/store/modules/statistics/getters'\nimport { mutations } from '@/store/modules/statistics/mutations'\nimport { statisticsState } from '@/store/modules/statistics/state'\nimport { IStatisticsState } from '@/store/modules/statistics/types'\n\nconst statistics: Module = {\n state: statisticsState,\n actions,\n getters,\n mutations,\n}\n\nexport default statistics\n","import { GetterTree } from 'vuex'\n\nimport { USERS_STORE } from '@/store/constants'\nimport { IRootState } from '@/store/modules/root/types'\nimport { IUsersGetters, IUsersState } from '@/store/modules/users/types'\n\nexport const getters: GetterTree & IUsersGetters = {\n [USERS_STORE.GETTERS.USER]: (state: IUsersState) => {\n return state.user\n },\n [USERS_STORE.GETTERS.USERS]: (state: IUsersState) => {\n return state.users\n },\n [USERS_STORE.GETTERS.USERS_IS_SUCCESS]: (state: IUsersState) => {\n return state.isSuccess\n },\n [USERS_STORE.GETTERS.USERS_LOADING]: (state: IUsersState) => {\n return state.loading\n },\n [USERS_STORE.GETTERS.USERS_PAGINATION]: (state: IUsersState) => {\n return state.pagination\n },\n}\n","import { MutationTree } from 'vuex'\n\nimport { USERS_STORE } from '@/store/constants'\nimport { IUsersState, TUsersMutations } from '@/store/modules/users/types'\nimport { IPagination } from '@/types/api'\nimport { IUserProfile } from '@/types/user'\n\nexport const mutations: MutationTree & TUsersMutations = {\n [USERS_STORE.MUTATIONS.UPDATE_USER](state: IUsersState, user: IUserProfile) {\n state.user = user\n },\n [USERS_STORE.MUTATIONS.UPDATE_USER_IN_USERS](\n state: IUsersState,\n updatedUser: IUserProfile\n ) {\n state.users = state.users.map((user) => {\n if (user.username === updatedUser.username) {\n return updatedUser\n }\n return user\n })\n },\n [USERS_STORE.MUTATIONS.UPDATE_USERS](\n state: IUsersState,\n users: IUserProfile[]\n ) {\n state.users = users\n },\n [USERS_STORE.MUTATIONS.UPDATE_USERS_LOADING](\n state: IUsersState,\n loading: boolean\n ) {\n state.loading = loading\n },\n [USERS_STORE.MUTATIONS.UPDATE_USERS_PAGINATION](\n state: IUsersState,\n pagination: IPagination\n ) {\n state.pagination = pagination\n },\n [USERS_STORE.MUTATIONS.UPDATE_IS_SUCCESS](\n state: IUsersState,\n isSuccess: boolean\n ) {\n state.isSuccess = isSuccess\n },\n}\n","import { IUsersState } from '@/store/modules/users/types'\nimport { IPagination } from '@/types/api'\nimport { IUserProfile } from '@/types/user'\n\nexport const usersState: IUsersState = {\n user: {},\n users: [],\n loading: false,\n isSuccess: false,\n pagination: {},\n}\n","import { Module } from 'vuex'\n\nimport { IRootState } from '@/store/modules/root/types'\nimport { actions } from '@/store/modules/users/actions'\nimport { getters } from '@/store/modules/users/getters'\nimport { mutations } from '@/store/modules/users/mutations'\nimport { usersState } from '@/store/modules/users/state'\nimport { IUsersState } from '@/store/modules/users/types'\n\nconst users: Module = {\n state: usersState,\n actions,\n getters,\n mutations,\n}\n\nexport default users\n","import { ActionContext, ActionTree } from 'vuex'\n\nimport authApi from '@/api/authApi'\nimport router from '@/router'\nimport { ROOT_STORE, AUTH_USER_STORE, WORKOUTS_STORE } from '@/store/constants'\nimport { IRootState } from '@/store/modules/root/types'\nimport { WorkoutsMutations } from '@/store/modules/workouts/enums'\nimport {\n IWorkoutsActions,\n IWorkoutsState,\n} from '@/store/modules/workouts/types'\nimport {\n IWorkout,\n IWorkoutForm,\n IWorkoutPayload,\n TWorkoutsPayload,\n} from '@/types/workouts'\nimport { handleError } from '@/utils'\n\nconst getWorkouts = (\n context: ActionContext,\n payload: TWorkoutsPayload,\n target: WorkoutsMutations\n): void => {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n authApi\n .get('workouts', {\n params: payload,\n })\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(WORKOUTS_STORE.MUTATIONS[target], res.data.data.workouts)\n if (target === WorkoutsMutations['SET_USER_WORKOUTS']) {\n context.commit(\n WORKOUTS_STORE.MUTATIONS.SET_WORKOUTS_PAGINATION,\n res.data.pagination\n )\n }\n } else {\n handleError(context, null)\n }\n })\n .catch((error) => handleError(context, error))\n}\n\nexport const actions: ActionTree &\n IWorkoutsActions = {\n [WORKOUTS_STORE.ACTIONS.GET_CALENDAR_WORKOUTS](\n context: ActionContext,\n payload: TWorkoutsPayload\n ): void {\n context.commit(WORKOUTS_STORE.MUTATIONS.EMPTY_CALENDAR_WORKOUTS)\n getWorkouts(context, payload, WorkoutsMutations['SET_CALENDAR_WORKOUTS'])\n },\n [WORKOUTS_STORE.ACTIONS.GET_USER_WORKOUTS](\n context: ActionContext,\n payload: TWorkoutsPayload\n ): void {\n getWorkouts(context, payload, WorkoutsMutations['SET_USER_WORKOUTS'])\n },\n [WORKOUTS_STORE.ACTIONS.GET_TIMELINE_WORKOUTS](\n context: ActionContext,\n payload: TWorkoutsPayload\n ): void {\n getWorkouts(context, payload, WorkoutsMutations['SET_TIMELINE_WORKOUTS'])\n },\n [WORKOUTS_STORE.ACTIONS.GET_MORE_TIMELINE_WORKOUTS](\n context: ActionContext,\n payload: TWorkoutsPayload\n ): void {\n getWorkouts(context, payload, WorkoutsMutations['ADD_TIMELINE_WORKOUTS'])\n },\n [WORKOUTS_STORE.ACTIONS.GET_WORKOUT_DATA](\n context: ActionContext,\n payload: IWorkoutPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, true)\n const segmentUrl = payload.segmentId ? `/segment/${payload.segmentId}` : ''\n authApi\n .get(`workouts/${payload.workoutId}`)\n .then((res) => {\n const workout: IWorkout = res.data.data.workouts[0]\n if (res.data.status === 'success') {\n if (\n payload.segmentId &&\n (workout.segments.length === 0 ||\n !workout.segments[+payload.segmentId - 1])\n ) {\n throw new Error('WORKOUT_NOT_FOUND')\n }\n context.commit(\n WORKOUTS_STORE.MUTATIONS.SET_WORKOUT,\n res.data.data.workouts[0]\n )\n if (res.data.data.workouts[0].with_gpx) {\n authApi\n .get(`workouts/${payload.workoutId}/chart_data${segmentUrl}`)\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_CHART_DATA,\n res.data.data.chart_data\n )\n }\n })\n authApi\n .get(`workouts/${payload.workoutId}/gpx${segmentUrl}`)\n .then((res) => {\n if (res.data.status === 'success') {\n context.commit(\n WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_GPX,\n res.data.data.gpx\n )\n }\n })\n }\n } else {\n context.commit(WORKOUTS_STORE.MUTATIONS.EMPTY_WORKOUT)\n handleError(context, null)\n }\n })\n .catch((error) => {\n context.commit(WORKOUTS_STORE.MUTATIONS.EMPTY_WORKOUT)\n handleError(context, error)\n })\n .finally(() =>\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, false)\n )\n },\n [WORKOUTS_STORE.ACTIONS.DELETE_WORKOUT](\n context: ActionContext,\n payload: IWorkoutPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, true)\n authApi\n .delete(`workouts/${payload.workoutId}`)\n .then(() => {\n context.commit(WORKOUTS_STORE.MUTATIONS.EMPTY_WORKOUT)\n context.dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n router.push('/')\n })\n .catch((error) => {\n handleError(context, error)\n })\n .finally(() =>\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, false)\n )\n },\n [WORKOUTS_STORE.ACTIONS.EDIT_WORKOUT](\n context: ActionContext,\n payload: IWorkoutPayload\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, true)\n authApi\n .patch(`workouts/${payload.workoutId}`, payload.data)\n .then(() => {\n context.dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n context\n .dispatch(WORKOUTS_STORE.ACTIONS.GET_WORKOUT_DATA, {\n workoutId: payload.workoutId,\n })\n .then(() => {\n router.push({\n name: 'Workout',\n params: { workoutId: payload.workoutId },\n })\n })\n })\n .catch((error) => {\n handleError(context, error)\n })\n .finally(() =>\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, false)\n )\n },\n [WORKOUTS_STORE.ACTIONS.ADD_WORKOUT](\n context: ActionContext,\n payload: IWorkoutForm\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, true)\n if (!payload.file) {\n throw new Error('No file part')\n }\n const notes = payload.notes.replace(/\"/g, '\\\\\"')\n const form = new FormData()\n form.append('file', payload.file)\n form.append(\n 'data',\n `{\"sport_id\": ${payload.sport_id}, \"notes\": \"${notes}\"}`\n )\n authApi\n .post('workouts', form, {\n headers: {\n 'content-type': 'multipart/form-data',\n },\n })\n .then((res) => {\n if (res.data.status === 'created') {\n context.dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n const workout: IWorkout = res.data.data.workouts[0]\n router.push(\n res.data.data.workouts.length === 1\n ? `/workouts/${workout.id}`\n : '/'\n )\n }\n })\n .catch((error) => {\n handleError(context, error)\n })\n .finally(() =>\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, false)\n )\n },\n [WORKOUTS_STORE.ACTIONS.ADD_WORKOUT_WITHOUT_GPX](\n context: ActionContext,\n payload: IWorkoutForm\n ): void {\n context.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, true)\n authApi\n .post('workouts/no_gpx', payload)\n .then((res) => {\n if (res.data.status === 'created') {\n context.dispatch(AUTH_USER_STORE.ACTIONS.GET_USER_PROFILE)\n const workout: IWorkout = res.data.data.workouts[0]\n router.push(`/workouts/${workout.id}`)\n }\n })\n .catch((error) => {\n handleError(context, error)\n })\n .finally(() =>\n context.commit(WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING, false)\n )\n },\n}\n","import { GetterTree } from 'vuex'\n\nimport { WORKOUTS_STORE } from '@/store/constants'\nimport { IRootState } from '@/store/modules/root/types'\nimport {\n IWorkoutsGetters,\n IWorkoutsState,\n} from '@/store/modules/workouts/types'\n\nexport const getters: GetterTree &\n IWorkoutsGetters = {\n [WORKOUTS_STORE.GETTERS.CALENDAR_WORKOUTS]: (state: IWorkoutsState) => {\n return state.calendar_workouts\n },\n [WORKOUTS_STORE.GETTERS.TIMELINE_WORKOUTS]: (state: IWorkoutsState) => {\n return state.timeline_workouts\n },\n [WORKOUTS_STORE.GETTERS.USER_WORKOUTS]: (state: IWorkoutsState) => {\n return state.user_workouts\n },\n [WORKOUTS_STORE.GETTERS.WORKOUT_DATA]: (state: IWorkoutsState) => {\n return state.workoutData\n },\n [WORKOUTS_STORE.GETTERS.WORKOUTS_PAGINATION]: (state: IWorkoutsState) => {\n return state.pagination\n },\n}\n","import { MutationTree } from 'vuex'\n\nimport { WORKOUTS_STORE } from '@/store/constants'\nimport {\n IWorkoutsState,\n TWorkoutsMutations,\n} from '@/store/modules/workouts/types'\nimport { IPagination } from '@/types/api'\nimport { IWorkout, IWorkoutApiChartData } from '@/types/workouts'\n\nexport const mutations: MutationTree & TWorkoutsMutations = {\n [WORKOUTS_STORE.MUTATIONS.ADD_TIMELINE_WORKOUTS](\n state: IWorkoutsState,\n workouts: IWorkout[]\n ) {\n state.timeline_workouts = state.timeline_workouts.concat(workouts)\n },\n [WORKOUTS_STORE.MUTATIONS.SET_CALENDAR_WORKOUTS](\n state: IWorkoutsState,\n workouts: IWorkout[]\n ) {\n state.calendar_workouts = workouts\n },\n [WORKOUTS_STORE.MUTATIONS.SET_TIMELINE_WORKOUTS](\n state: IWorkoutsState,\n workouts: IWorkout[]\n ) {\n state.timeline_workouts = workouts\n },\n [WORKOUTS_STORE.MUTATIONS.SET_USER_WORKOUTS](\n state: IWorkoutsState,\n workouts: IWorkout[]\n ) {\n state.user_workouts = workouts\n },\n [WORKOUTS_STORE.MUTATIONS.SET_WORKOUTS_PAGINATION](\n state: IWorkoutsState,\n pagination: IPagination\n ) {\n state.pagination = pagination\n },\n [WORKOUTS_STORE.MUTATIONS.SET_WORKOUT](\n state: IWorkoutsState,\n workout: IWorkout\n ) {\n state.workoutData.workout = workout\n },\n [WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_CHART_DATA](\n state: IWorkoutsState,\n chartData: IWorkoutApiChartData[]\n ) {\n state.workoutData.chartData = chartData\n },\n [WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_GPX](\n state: IWorkoutsState,\n gpx: string\n ) {\n state.workoutData.gpx = gpx\n },\n [WORKOUTS_STORE.MUTATIONS.SET_WORKOUT_LOADING](\n state: IWorkoutsState,\n loading: boolean\n ) {\n state.workoutData.loading = loading\n },\n [WORKOUTS_STORE.MUTATIONS.EMPTY_CALENDAR_WORKOUTS](state: IWorkoutsState) {\n state.calendar_workouts = []\n },\n [WORKOUTS_STORE.MUTATIONS.EMPTY_WORKOUTS](state: IWorkoutsState) {\n state.calendar_workouts = []\n state.user_workouts = []\n state.timeline_workouts = []\n },\n [WORKOUTS_STORE.MUTATIONS.EMPTY_WORKOUT](state: IWorkoutsState) {\n state.workoutData = {\n gpx: '',\n loading: false,\n workout: {},\n chartData: [],\n }\n },\n}\n","import { IWorkoutsState } from '@/store/modules/workouts/types'\nimport { IPagination } from '@/types/api'\nimport { IWorkout } from '@/types/workouts'\n\nexport const workoutsState: IWorkoutsState = {\n calendar_workouts: [],\n timeline_workouts: [],\n pagination: {},\n user_workouts: [],\n workoutData: {\n gpx: '',\n loading: false,\n workout: {},\n chartData: [],\n },\n}\n","import { Module } from 'vuex'\n\nimport { IRootState } from '@/store/modules/root/types'\nimport { actions } from '@/store/modules/workouts/actions'\nimport { getters } from '@/store/modules/workouts/getters'\nimport { mutations } from '@/store/modules/workouts/mutations'\nimport { workoutsState } from '@/store/modules/workouts/state'\nimport { IWorkoutsState } from '@/store/modules/workouts/types'\n\nconst workouts: Module = {\n state: workoutsState,\n actions,\n getters,\n mutations,\n}\n\nexport default workouts\n","import { Module, ModuleTree } from 'vuex'\n\nimport authUserModule from '@/store/modules/authUser'\nimport oAuthModule from '@/store/modules/oauth2'\nimport { actions } from '@/store/modules/root/actions'\nimport { getters } from '@/store/modules/root/getters'\nimport { mutations } from '@/store/modules/root/mutations'\nimport { state } from '@/store/modules/root/state'\nimport { IRootState } from '@/store/modules/root/types'\nimport sportsModule from '@/store/modules/sports'\nimport statsModule from '@/store/modules/statistics'\nimport usersModule from '@/store/modules/users'\nimport workoutsModule from '@/store/modules/workouts'\n\nconst modules: ModuleTree = {\n authUserModule,\n oAuthModule,\n sportsModule,\n statsModule,\n usersModule,\n workoutsModule,\n}\n\nconst root: Module = {\n state,\n actions,\n getters,\n mutations,\n modules,\n}\n\nexport default root\n","import { createStore } from 'vuex'\n\nimport root from '@/store/modules/root'\nimport { IRootState } from '@/store/modules/root/types'\n\nconst store = createStore(root)\n\nexport default store\n","export enum WorkoutsActions {\n ADD_WORKOUT = 'ADD_WORKOUT',\n ADD_WORKOUT_WITHOUT_GPX = 'ADD_WORKOUT_WITHOUT_GPX',\n DELETE_WORKOUT = 'DELETE_WORKOUT',\n EDIT_WORKOUT = 'EDIT_WORKOUT',\n GET_CALENDAR_WORKOUTS = 'GET_CALENDAR_WORKOUTS',\n GET_USER_WORKOUTS = 'GET_USER_WORKOUTS',\n GET_TIMELINE_WORKOUTS = 'GET_TIMELINE_WORKOUTS',\n GET_MORE_TIMELINE_WORKOUTS = 'GET_MORE_TIMELINE_WORKOUTS',\n GET_WORKOUT_DATA = 'GET_WORKOUT_DATA',\n}\n\nexport enum WorkoutsGetters {\n CALENDAR_WORKOUTS = 'CALENDAR_WORKOUTS',\n TIMELINE_WORKOUTS = 'TIMELINE_WORKOUTS',\n USER_WORKOUTS = 'USER_WORKOUTS',\n WORKOUT_DATA = 'WORKOUT_DATA',\n WORKOUTS_PAGINATION = 'WORKOUTS_PAGINATION',\n}\n\nexport enum WorkoutsMutations {\n ADD_TIMELINE_WORKOUTS = 'ADD_TIMELINE_WORKOUTS',\n EMPTY_WORKOUTS = 'EMPTY_WORKOUTS',\n EMPTY_CALENDAR_WORKOUTS = 'EMPTY_CALENDAR_WORKOUTS',\n EMPTY_WORKOUT = 'EMPTY_WORKOUT',\n SET_CALENDAR_WORKOUTS = 'SET_CALENDAR_WORKOUTS',\n SET_TIMELINE_WORKOUTS = 'SET_TIMELINE_WORKOUTS',\n SET_USER_WORKOUTS = 'SET_USER_WORKOUTS',\n SET_WORKOUT = 'SET_WORKOUT',\n SET_WORKOUT_GPX = 'SET_WORKOUT_GPX',\n SET_WORKOUT_CHART_DATA = 'SET_WORKOUT_CHART_DATA',\n SET_WORKOUT_LOADING = 'SET_WORKOUT_LOADING',\n SET_WORKOUTS_PAGINATION = 'SET_WORKOUTS_PAGINATION',\n}\n","import { useStore as VuexStore } from 'vuex'\n\nimport { Store } from '@/store/types'\n\nexport function useStore(): Store {\n return VuexStore() as Store\n}\n","import { LocationQuery } from 'vue-router'\n\nimport { IQueryOptions, TPaginationPayload } from '@/types/api'\n\nexport const sortList: string[] = ['asc', 'desc']\nexport const defaultPage = 1\nexport const defaultPerPage = 10\n\nexport const getNumberQueryValue = (\n queryValue: string | (string | null)[] | null,\n defaultValue: number\n): number => {\n return queryValue && typeof queryValue === 'string' && +queryValue > 0\n ? +queryValue\n : defaultValue\n}\n\nexport const getStringQueryValue = (\n queryValue: string | (string | null)[] | null,\n availableValues: string[],\n defaultValue: string\n): string => {\n return queryValue &&\n typeof queryValue === 'string' &&\n availableValues.includes(queryValue)\n ? queryValue\n : defaultValue\n}\n\nexport const getQuery = (\n locationQuery: LocationQuery,\n orderByList: string[],\n defaultOrderBy: string,\n options?: IQueryOptions\n): TPaginationPayload => {\n const queryOptions = options || {}\n const defaultSort = queryOptions.defaultSort || 'asc'\n const query = {}\n\n query.page = getNumberQueryValue(locationQuery.page, defaultPage)\n query.per_page = getNumberQueryValue(locationQuery.per_page, defaultPerPage)\n query.order = getStringQueryValue(locationQuery.order, sortList, defaultSort)\n query.order_by = getStringQueryValue(\n locationQuery.order_by,\n orderByList,\n defaultOrderBy\n )\n if (typeof locationQuery.q === 'string') {\n query.q = locationQuery.q\n } else {\n delete query.q\n }\n\n return query\n}\n\nexport const workoutsPayloadKeys = [\n 'from',\n 'to',\n 'ave_speed_from',\n 'ave_speed_to',\n 'max_speed_from',\n 'max_speed_to',\n 'distance_from',\n 'distance_to',\n 'duration_from',\n 'duration_to',\n 'sport_id',\n]\n\nconst getRange = (stop: number, start = 1): number[] => {\n return Array.from({ length: stop - start + 1 }, (_, i) => start + i)\n}\n\nexport const rangePagination = (\n pages: number,\n currentPage: number\n): (string | number)[] => {\n if (pages < 0) {\n return []\n }\n\n if (pages < 9) {\n return getRange(pages)\n }\n\n let pagination: (string | number)[] = [1, 2]\n if (currentPage < 4) {\n pagination = pagination.concat([3, 4, 5])\n } else if (currentPage < 6) {\n pagination = pagination.concat(getRange(currentPage + 2, 3))\n } else {\n pagination = pagination.concat(['...'])\n if (currentPage < pages - 2) {\n pagination = pagination.concat(getRange(currentPage + 2, currentPage - 2))\n }\n }\n if (currentPage + 2 <= pages - 2) {\n pagination = pagination.concat(['...'])\n pagination = pagination.concat(getRange(pages, pages - 1))\n } else {\n if (\n pagination[pagination.length - 1] !== '...' &&\n pagination[pagination.length - 1] >= pages - 2 &&\n pagination[pagination.length - 1] < pages\n ) {\n pagination = pagination.concat(\n getRange(pages, +pagination[pagination.length - 1] + 1)\n )\n } else {\n pagination = pagination.concat(\n getRange(\n pages,\n currentPage < pages - 3 ? currentPage + 3 : currentPage - 5\n )\n )\n }\n }\n\n return pagination\n}\n","import {\n addDays,\n addMonths,\n addYears,\n endOfMonth,\n endOfWeek,\n format,\n startOfMonth,\n startOfWeek,\n startOfYear,\n} from 'date-fns'\nimport { utcToZonedTime } from 'date-fns-tz'\n\nimport createI18n from '@/i18n'\nimport { localeFromLanguage } from '@/utils/locales'\n\nconst { locale } = createI18n.global\n\nexport const getStartDate = (\n duration: string,\n day: Date,\n weekStartingMonday: boolean\n): Date => {\n switch (duration) {\n case 'week':\n return startOfWeek(day, { weekStartsOn: weekStartingMonday ? 1 : 0 })\n case 'year':\n return startOfYear(day)\n case 'month':\n return startOfMonth(day)\n default:\n throw new Error(\n `Invalid duration, expected: \"week\", \"month\", \"year\", got: \"${duration}\"`\n )\n }\n}\n\nexport const incrementDate = (duration: string, day: Date): Date => {\n switch (duration) {\n case 'week':\n return addDays(day, 7)\n case 'year':\n return addYears(day, 1)\n case 'month':\n return addMonths(day, 1)\n default:\n throw new Error(\n `Invalid duration, expected: \"week\", \"month\", \"year\", got: \"${duration}\"`\n )\n }\n}\n\nexport const getDateWithTZ = (dateInUTC: string, tz: string): Date => {\n return utcToZonedTime(new Date(dateInUTC), tz)\n}\n\nexport const getCalendarStartAndEnd = (\n date: Date,\n weekStartingMonday: boolean\n): Record => {\n const monthStart = startOfMonth(date)\n const monthEnd = endOfMonth(date)\n const weekStartsOn = weekStartingMonday ? 1 : 0\n return {\n start: startOfWeek(monthStart, { weekStartsOn }),\n end: endOfWeek(monthEnd, { weekStartsOn }),\n }\n}\n\nexport const formatWorkoutDate = (\n dateTime: Date,\n dateFormat: string | null = null,\n timeFormat: string | null = null\n): Record => {\n if (!dateFormat) {\n dateFormat = 'yyyy/MM/dd'\n }\n dateFormat = getDateFormat(dateFormat, locale.value)\n if (!timeFormat) {\n timeFormat = 'HH:mm'\n }\n return {\n workout_date: format(dateTime, dateFormat, {\n locale: localeFromLanguage[locale.value],\n }),\n workout_time: format(dateTime, timeFormat),\n }\n}\n\nconst availableDateFormats = [\n 'MM/dd/yyyy',\n 'dd/MM/yyyy',\n 'yyyy-MM-dd',\n 'date_string',\n]\nconst dateStringFormats: Record = {\n de: 'do MMM yyyy',\n en: 'MMM. do, yyyy',\n fr: 'd MMM yyyy',\n // nb: 'do MMM yyyy',\n // nl: 'd MMM yyyy',\n}\n\nexport const getDateFormat = (dateFormat: string, language: string): string => {\n return dateFormat === 'date_string' ? dateStringFormats[language] : dateFormat\n}\n\nexport const formatDate = (\n dateString: string,\n timezone: string,\n dateFormat: string,\n withTime = true,\n language: string | null = null\n): string => {\n if (!language) {\n language = locale.value\n }\n return format(\n getDateWithTZ(dateString, timezone),\n `${getDateFormat(dateFormat, language)}${withTime ? ' HH:mm' : ''}`,\n { locale: localeFromLanguage[language] }\n )\n}\n\nexport const availableDateFormatOptions = (\n inputDate: string,\n timezone: string,\n language: string | null = null\n) => {\n const l: string = language ? language : locale.value\n const options: Record[] = []\n availableDateFormats.map((df) => {\n const dateFormat = getDateFormat(df, l)\n options.push({\n label: `${dateFormat} - ${formatDate(\n inputDate,\n timezone,\n dateFormat,\n false,\n l\n )}`,\n value: df,\n })\n })\n return options\n}\n","const suffixes = ['bytes', 'KB', 'MB', 'GB', 'TB']\n\nexport const getReadableFileSize = (\n fileSize: number,\n asText = true\n): string | Record => {\n const i = Math.floor(Math.log(fileSize) / Math.log(1024))\n if (!fileSize) {\n return asText ? '0 bytes' : { size: '0', suffix: 'bytes' }\n }\n const size = (fileSize / Math.pow(1024, i)).toFixed(1)\n const suffix = suffixes[i]\n return asText ? `${size}${suffix}` : { size, suffix }\n}\n\nexport const getFileSizeInMB = (fileSize: number): number => {\n const value = fileSize / 1048576\n return (!fileSize && 0) || +value.toFixed(2)\n}\n","import { AxiosError } from 'axios'\nimport { ActionContext } from 'vuex'\n\nimport { AUTH_USER_STORE, ROOT_STORE } from '@/store/constants'\nimport { IAuthUserState } from '@/store/modules/authUser/types'\nimport { IOAuth2State } from '@/store/modules/oauth2/types'\nimport { IRootState } from '@/store/modules/root/types'\nimport { ISportsState } from '@/store/modules/sports/types'\nimport { IStatisticsState } from '@/store/modules/statistics/types'\nimport { IUsersState } from '@/store/modules/users/types'\nimport { IWorkoutsState } from '@/store/modules/workouts/types'\nimport { IApiErrorMessage } from '@/types/api'\n\nexport const getApiUrl = (): string => {\n return process.env.NODE_ENV === 'production'\n ? '/api/'\n : `${process.env.VUE_APP_API_URL}/api/`\n}\n\nexport const handleError = (\n context:\n | ActionContext\n | ActionContext\n | ActionContext\n | ActionContext\n | ActionContext\n | ActionContext\n | ActionContext,\n error: AxiosError | null,\n msg = 'UNKNOWN'\n): void => {\n // if request is cancelled, no error to display\n if (error && error.message === 'canceled') {\n return\n }\n\n const errorInfo: IApiErrorMessage | null =\n error?.response && error.response.data ? error.response.data : null\n\n // if stored token is blacklisted, disconnect user\n if (error?.response?.status === 401 && errorInfo?.error === 'invalid_token') {\n localStorage.removeItem('authToken')\n context.dispatch(AUTH_USER_STORE.ACTIONS.CHECK_AUTH_USER)\n return\n }\n\n const errorMessages = !error\n ? msg\n : error.response\n ? error.response.status === 413\n ? 'file size is greater than the allowed size'\n : errorInfo?.message\n ? errorInfo.message\n : msg\n : error.message\n ? error.message\n : msg\n context.commit(\n ROOT_STORE.MUTATIONS.SET_ERROR_MESSAGES,\n errorMessages.includes('\\n')\n ? errorMessages\n .split('\\n')\n .filter((m: string) => m !== '')\n .map((m: string) => `api.ERROR.${m}`)\n : `api.ERROR.${errorMessages}`\n )\n}\n","/* eslint-disable import/no-duplicates */\nimport { Locale } from 'date-fns'\nimport { de, enUS, fr } from 'date-fns/locale'\n\nimport createI18n from '@/i18n'\n\nexport const localeFromLanguage: Record = {\n de: de,\n en: enUS,\n fr: fr,\n // nb: nb, // disabled for now\n // nl: nl, // disabled for now\n}\n\nexport const languageLabels: Record = {\n de: 'Deutsch',\n en: 'English',\n fr: 'Français',\n // nb: 'Norsk bokmål', // disabled for now\n // nl: 'Nederlands', // disabled for now\n}\n\nconst { availableLocales } = createI18n.global\nexport const availableLanguages = availableLocales.map((l) => {\n return { label: languageLabels[l], value: l }\n})\n","import { ISport, ITranslatedSport, TActiveStatus } from '@/types/sports'\nimport { IWorkout } from '@/types/workouts'\n\nexport const sportColors: Record = {\n 'Cycling (Sport)': '#4c9792',\n 'Cycling (Transport)': '#88af98',\n 'Cycling (Virtual)': '#64a360',\n Hiking: '#bb757c',\n 'Mountain Biking': '#d4b371',\n 'Mountain Biking (Electric)': '#fc9d6f',\n Rowing: '#fcce72',\n Running: '#835b83',\n 'Skiing (Alpine)': '#67a4bd',\n 'Skiing (Cross Country)': '#9498d0',\n Snowshoes: '#5780a8',\n Trail: '#09a98a',\n Walking: '#838383',\n}\n\nexport const sportIdColors = (sports: ISport[]): Record => {\n const colors: Record = {}\n sports.map(\n (sport) =>\n (colors[sport.id] = sport.color ? sport.color : sportColors[sport.label])\n )\n return colors\n}\n\nconst sortSports = (a: ITranslatedSport, b: ITranslatedSport): number => {\n const sportATranslatedLabel = a.translatedLabel.toLowerCase()\n const sportBTranslatedLabel = b.translatedLabel.toLowerCase()\n return sportATranslatedLabel > sportBTranslatedLabel\n ? 1\n : sportATranslatedLabel < sportBTranslatedLabel\n ? -1\n : 0\n}\n\nexport const translateSports = (\n sports: ISport[],\n t: CallableFunction,\n activeStatus: TActiveStatus = 'all',\n sportsToInclude: number[] = []\n): ITranslatedSport[] =>\n sports\n .filter((sport) =>\n activeStatus === 'all'\n ? true\n : sportsToInclude.includes(sport.id) || sport[activeStatus]\n )\n .map((sport) => ({\n ...sport,\n translatedLabel: t(`sports.${sport.label}.LABEL`),\n }))\n .sort(sortSports)\n\nexport const getSportLabel = (workout: IWorkout, sports: ISport[]): string => {\n return sports\n .filter((sport) => sport.id === workout.sport_id)\n .map((sport) => sport.label)[0]\n}\n\nexport const getSportColor = (\n workout: IWorkout,\n sports: ISport[]\n): string | null => {\n return sports\n .filter((sport) => sport.id === workout.sport_id)\n .map((sport) => sport.color)[0]\n}\n","import {\n addMonths,\n addWeeks,\n addYears,\n endOfMonth,\n endOfWeek,\n endOfYear,\n format,\n startOfMonth,\n startOfWeek,\n startOfYear,\n subMonths,\n subWeeks,\n subYears,\n} from 'date-fns'\n\nimport createI18n from '@/i18n'\nimport { IChartDataset } from '@/types/chart'\nimport { ISport } from '@/types/sports'\nimport {\n IStatisticsChartData,\n IStatisticsDateParams,\n TStatisticsDatasetKeys,\n TStatisticsDatasets,\n TStatisticsFromApi,\n} from '@/types/statistics'\nimport { incrementDate, getStartDate, getDateFormat } from '@/utils/dates'\nimport { localeFromLanguage } from '@/utils/locales'\nimport { sportColors } from '@/utils/sports'\nimport { convertStatsDistance } from '@/utils/units'\n\nconst { locale } = createI18n.global\n\nconst dateFormats: Record> = {\n week: {\n api: 'yyyy-MM-dd',\n chart: 'MM/dd/yyyy',\n },\n month: {\n api: 'yyyy-MM',\n chart: 'MM/yyyy',\n },\n year: {\n api: 'yyyy',\n chart: 'yyyy',\n },\n}\n\nexport const datasetKeys: TStatisticsDatasetKeys[] = [\n 'average_speed',\n 'nb_workouts',\n 'total_duration',\n 'total_distance',\n 'total_ascent',\n 'total_descent',\n]\n\nexport const getDateKeys = (\n params: IStatisticsDateParams,\n weekStartingMonday: boolean\n): Date[] => {\n const days = []\n for (\n let day = getStartDate(params.duration, params.start, weekStartingMonday);\n day <= params.end;\n day = incrementDate(params.duration, day)\n ) {\n days.push(day)\n }\n return days\n}\n\nconst getStatisticsChartDataset = (\n sportLabel: string,\n color: string,\n isLineChart = false\n): IChartDataset => {\n const dataset: IChartDataset = {\n label: sportLabel,\n backgroundColor: [color],\n data: [],\n }\n if (isLineChart) {\n dataset.type = 'line'\n dataset.borderColor = [color]\n dataset.spanGaps = true\n }\n return dataset\n}\n\nexport const getDatasets = (displayedSports: ISport[]): TStatisticsDatasets => {\n const datasets: TStatisticsDatasets = {\n average_speed: [],\n nb_workouts: [],\n total_distance: [],\n total_duration: [],\n total_ascent: [],\n total_descent: [],\n }\n displayedSports.map((sport) => {\n const color = sport.color ? sport.color : sportColors[sport.label]\n datasets.average_speed.push(\n getStatisticsChartDataset(sport.label, color, true)\n )\n datasets.nb_workouts.push(getStatisticsChartDataset(sport.label, color))\n datasets.total_distance.push(getStatisticsChartDataset(sport.label, color))\n datasets.total_duration.push(getStatisticsChartDataset(sport.label, color))\n datasets.total_ascent.push(getStatisticsChartDataset(sport.label, color))\n datasets.total_descent.push(getStatisticsChartDataset(sport.label, color))\n })\n return datasets\n}\n\nexport const convertStatsValue = (\n datasetKey: TStatisticsDatasetKeys,\n value: number,\n useImperialUnits: boolean\n): number => {\n switch (datasetKey) {\n case 'average_speed':\n case 'total_distance':\n case 'total_ascent':\n case 'total_descent':\n return convertStatsDistance(\n ['average_speed', 'total_distance'].includes(datasetKey) ? 'km' : 'm',\n value,\n useImperialUnits\n )\n default:\n case 'nb_workouts':\n case 'total_duration':\n return value\n }\n}\n\nexport const formatStats = (\n params: IStatisticsDateParams,\n weekStartingMonday: boolean,\n sports: ISport[],\n displayedSportsId: number[],\n apiStats: TStatisticsFromApi,\n useImperialUnits: boolean,\n userDateFormat: string\n): IStatisticsChartData => {\n const dayKeys = getDateKeys(params, weekStartingMonday)\n const dateFormat = dateFormats[params.duration]\n const displayedSports = sports.filter((sport) =>\n displayedSportsId.includes(sport.id)\n )\n const labels: string[] = []\n const datasets = getDatasets(displayedSports)\n const sportsId: Record = {}\n displayedSports.map(\n (displayedSport) => (sportsId[displayedSport.label] = displayedSport.id)\n )\n\n dayKeys.map((key) => {\n const date: string = format(key, dateFormat.api)\n const label: string = format(\n key,\n params.duration === 'week'\n ? getDateFormat(userDateFormat, locale.value)\n : dateFormat.chart,\n { locale: localeFromLanguage[locale.value] }\n )\n labels.push(label)\n datasetKeys.map((datasetKey) => {\n datasets[datasetKey].map((dataset) => {\n dataset.data.push(\n date in apiStats && sportsId[dataset.label] in apiStats[date]\n ? convertStatsValue(\n datasetKey,\n apiStats[date][sportsId[dataset.label]][datasetKey],\n useImperialUnits\n )\n : datasetKey === 'average_speed'\n ? null\n : 0\n )\n })\n })\n })\n return {\n labels,\n datasets,\n }\n}\n\nexport const getStatsDateParams = (\n date: Date,\n timeFrame: string,\n weekStartingMonday: boolean\n): IStatisticsDateParams => {\n const weekStartsOn = weekStartingMonday ? 1 : 0\n const start =\n timeFrame === 'year'\n ? startOfYear(subYears(date, 9))\n : timeFrame === 'week'\n ? startOfWeek(subMonths(date, 2), { weekStartsOn })\n : startOfMonth(subMonths(date, 11)) // month\n const end =\n timeFrame === 'year'\n ? endOfYear(date)\n : timeFrame === 'week'\n ? endOfWeek(date, { weekStartsOn })\n : endOfMonth(date) // month\n return {\n duration: timeFrame,\n end,\n start,\n }\n}\n\nexport const updateChartParams = (\n chartParams: IStatisticsDateParams,\n backward: boolean,\n weekStartingMonday: boolean\n): IStatisticsDateParams => {\n const { duration, start, end } = chartParams\n const weekStartsOn = weekStartingMonday ? 1 : 0\n return {\n duration,\n end:\n duration === 'year'\n ? endOfYear(backward ? subYears(end, 1) : addYears(end, 1))\n : duration === 'week'\n ? endOfWeek(backward ? subWeeks(end, 1) : addWeeks(end, 1), {\n weekStartsOn,\n })\n : endOfMonth(backward ? subMonths(end, 1) : addMonths(end, 1)),\n start:\n duration === 'year'\n ? startOfYear(backward ? subYears(start, 1) : addYears(start, 1))\n : duration === 'week'\n ? startOfWeek(backward ? subWeeks(start, 1) : addWeeks(start, 1), {\n weekStartsOn,\n })\n : startOfMonth(backward ? subMonths(start, 1) : addMonths(start, 1)),\n }\n}\n","import { IUnit, TFactor, TUnit } from '@/types/units'\n\nexport const units: Record = {\n ft: {\n unit: 'ft',\n system: 'imperial',\n multiplier: 1,\n defaultTarget: 'm',\n },\n mi: {\n unit: 'mi',\n system: 'imperial',\n multiplier: 5280,\n defaultTarget: 'km',\n },\n m: {\n unit: 'm',\n system: 'metric',\n multiplier: 1,\n defaultTarget: 'ft',\n },\n km: {\n unit: 'm',\n system: 'metric',\n multiplier: 1000,\n defaultTarget: 'mi',\n },\n}\n\nconst factors: TFactor = {\n metric: {\n imperial: 3.280839895,\n metric: 1,\n },\n imperial: {\n metric: 1 / 3.280839895,\n imperial: 1,\n },\n}\n\nexport const convertDistance = (\n distance: number,\n from: TUnit,\n to: TUnit,\n digits: number | null = 3\n): number => {\n const unitFrom = units[from]\n const unitTo = units[to]\n const convertedDistance =\n (distance * unitFrom.multiplier * factors[unitFrom.system][unitTo.system]) /\n unitTo.multiplier\n if (digits !== null) {\n return parseFloat(convertedDistance.toFixed(digits))\n }\n return convertedDistance\n}\n\nexport const convertStatsDistance = (\n unitFrom: TUnit,\n value: number,\n useImperialUnits: boolean\n): number => {\n const unitTo = useImperialUnits ? units[unitFrom].defaultTarget : unitFrom\n return useImperialUnits ? convertDistance(value, unitFrom, unitTo, 2) : value\n}\n","import {\n IWorkout,\n IWorkoutApiChartData,\n IWorkoutChartData,\n TCoordinates,\n TWorkoutDatasets,\n} from '@/types/workouts'\nimport { convertStatsDistance } from '@/utils/units'\n\nexport const getDatasets = (\n chartData: IWorkoutApiChartData[],\n t: CallableFunction,\n useImperialUnits: boolean\n): IWorkoutChartData => {\n const datasets: TWorkoutDatasets = {\n speed: {\n label: t('workouts.SPEED'),\n backgroundColor: ['#FFFFFF'],\n borderColor: ['#8884d8'],\n borderWidth: 2,\n data: [],\n yAxisID: 'ySpeed',\n },\n elevation: {\n label: t('workouts.ELEVATION'),\n backgroundColor: ['#e5e5e5'],\n borderColor: ['#cccccc'],\n borderWidth: 1,\n fill: true,\n data: [],\n yAxisID: 'yElevation',\n },\n }\n const distance_labels: unknown[] = []\n const duration_labels: unknown[] = []\n const coordinates: TCoordinates[] = []\n\n chartData.map((data) => {\n distance_labels.push(data.distance)\n duration_labels.push(data.duration)\n datasets.speed.data.push(\n convertStatsDistance('km', data.speed, useImperialUnits)\n )\n datasets.elevation.data.push(\n convertStatsDistance('m', data.elevation, useImperialUnits)\n )\n coordinates.push({ latitude: data.latitude, longitude: data.longitude })\n })\n\n return { distance_labels, duration_labels, datasets, coordinates }\n}\n\nexport const getDonutDatasets = (\n workouts: IWorkout[]\n): Record> => {\n const total = workouts.length\n if (total === 0) {\n return {}\n }\n\n const datasets: Record> = {}\n workouts.map((workout) => {\n if (!datasets[workout.sport_id]) {\n datasets[workout.sport_id] = {\n count: 0,\n percentage: 0,\n }\n }\n datasets[workout.sport_id].count += 1\n datasets[workout.sport_id].percentage =\n datasets[workout.sport_id].count / total\n })\n\n return datasets\n}\n\nexport const defaultOrder = {\n order: 'desc',\n order_by: 'workout_date',\n}\n","\n\n\n","import { render } from \"./Card.vue?vue&type=template&id=ad374c24\"\nconst script = {}\n\nimport \"./Card.vue?vue&type=style&index=0&id=ad374c24&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-72463173\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"table-selects\" }\nconst _hoisted_2 = [\"value\"]\nconst _hoisted_3 = [\"value\"]\nconst _hoisted_4 = [\"value\"]\nconst _hoisted_5 = [\"value\"]\nconst _hoisted_6 = [\"value\"]\nconst _hoisted_7 = [\"value\"]\n\nimport { toRefs } from 'vue'\n\n import { TPaginationPayload } from '@/types/api'\n\n interface Props {\n order_by: string[]\n query: TPaginationPayload\n sort: string[]\n message: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'FilterSelects',\n props: {\n order_by: null,\n query: null,\n sort: null,\n message: null\n },\n emits: ['updateSelect'],\n setup(__props: any, { emit }) {\n\nconst props = __props as {\n order_by: string[]\n query: TPaginationPayload\n sort: string[]\n message: string\n };\n\n \n\n \n\n const { order_by, query, sort, message } = toRefs(props)\n const perPage = [10, 25, 50, 100]\n\n function onSelectUpdate(event: Event & { target: HTMLInputElement }) {\n emit('updateSelect', event.target.id, event.target.value)\n }\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"label\", null, [\n _createTextVNode(_toDisplayString(_ctx.$t('common.SELECTS.ORDER_BY.LABEL')) + \": \", 1),\n _createElementVNode(\"select\", {\n name: \"order_by\",\n id: \"order_by\",\n value: _unref(query).order_by,\n onChange: onSelectUpdate\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(order_by), (order) => {\n return (_openBlock(), _createElementBlock(\"option\", {\n value: order,\n key: order\n }, _toDisplayString(_ctx.$t(`${_unref(message)}.${order.toUpperCase()}`)), 9, _hoisted_3))\n }), 128))\n ], 40, _hoisted_2)\n ]),\n _createElementVNode(\"label\", null, [\n _createTextVNode(_toDisplayString(_ctx.$t('common.SELECTS.ORDER.LABEL')) + \": \", 1),\n _createElementVNode(\"select\", {\n name: \"order\",\n id: \"order\",\n value: _unref(query).order,\n onChange: onSelectUpdate\n }, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(sort), (order) => {\n return (_openBlock(), _createElementBlock(\"option\", {\n value: order,\n key: order\n }, _toDisplayString(_ctx.$t(`common.SELECTS.ORDER.${order.toUpperCase()}`)), 9, _hoisted_5))\n }), 128))\n ], 40, _hoisted_4)\n ]),\n _createElementVNode(\"label\", null, [\n _createTextVNode(_toDisplayString(_ctx.$t('common.SELECTS.PER_PAGE.LABEL')) + \": \", 1),\n _createElementVNode(\"select\", {\n name: \"per_page\",\n id: \"per_page\",\n value: _unref(query).per_page,\n onChange: onSelectUpdate\n }, [\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList(perPage, (nb) => {\n return _createElementVNode(\"option\", {\n value: nb,\n key: nb\n }, _toDisplayString(nb), 9, _hoisted_7)\n }), 64))\n ], 40, _hoisted_6)\n ])\n ]))\n}\n}\n\n})","import script from \"./FilterSelects.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./FilterSelects.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./FilterSelects.vue?vue&type=style&index=0&id=72463173&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-72463173\"]])\n\nexport default __exports__","\n\n\n","import { render } from \"./ErrorImg.vue?vue&type=template&id=e620aed4\"\nimport script from \"./ErrorImg.vue?vue&type=script&lang=js\"\nexport * from \"./ErrorImg.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-b60bfa80\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"error\" }\nconst _hoisted_2 = { class: \"error-content\" }\n\nimport { toRefs, withDefaults } from 'vue'\n\n interface Props {\n title: string\n message: string\n buttonText: string\n path?: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'Error',\n props: {\n title: null,\n message: null,\n buttonText: null,\n path: { default: '/' }\n },\n setup(__props: any) {\n\nconst props = __props as { title: string, message: string, buttonText: string, path: string };\n\n \n const { buttonText, title, message, path } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"h1\", null, _toDisplayString(_unref(title)), 1),\n _createElementVNode(\"p\", null, _toDisplayString(_unref(message)), 1),\n (_unref(buttonText))\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 0,\n onClick: _cache[0] || (_cache[0] = ($event: any) => (_ctx.$router.push(_unref(path)))),\n class: \"upper\"\n }, _toDisplayString(_unref(buttonText)), 1))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n}\n}\n\n})","import script from \"./Error.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Error.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Error.vue?vue&type=style&index=0&id=b60bfa80&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-b60bfa80\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode } from \"vue\"\n\nimport { Ref, onMounted, ref, toRefs, withDefaults, onUnmounted } from 'vue'\n\n import Error from '@/components/Common/Error.vue'\n interface Props {\n target?: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'NotFound',\n props: {\n target: { default: 'PAGE' }\n },\n setup(__props: any) {\n\nconst props = __props as { target: string };\n\n \n const { target } = toRefs(props)\n const timer = ref()\n const errorDisplayed: Ref = ref(false)\n\n onMounted(() => displayError())\n\n function displayError() {\n timer.value = setTimeout(() => {\n errorDisplayed.value = true\n }, 500)\n }\n\n onUnmounted(() => {\n if (timer.value) {\n clearTimeout(timer.value)\n }\n })\n\nreturn (_ctx: any,_cache: any) => {\n return (errorDisplayed.value)\n ? (_openBlock(), _createBlock(Error, {\n key: 0,\n title: \"404\",\n message: _ctx.$t(`error.NOT_FOUND.${_unref(target)}`),\n \"button-text\": _ctx.$t('common.HOME')\n }, null, 8, [\"message\", \"button-text\"]))\n : _createCommentVNode(\"\", true)\n}\n}\n\n})","import script from \"./NotFound.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./NotFound.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, renderSlot as _renderSlot, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, normalizeClass as _normalizeClass, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-3a9a4a65\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n class: \"pagination-center\",\n \"aria-label\": \"navigation\"\n}\nconst _hoisted_2 = { class: \"pagination\" }\nconst _hoisted_3 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-chevron-left\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_4 = { key: 0 }\nconst _hoisted_5 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-chevron-right\",\n \"aria-hidden\": \"true\"\n}, null, -1))\n\nimport { toRefs } from 'vue'\n\n import { IPagination, TPaginationPayload } from '@/types/api'\n import { IOauth2ClientsPayload } from '@/types/oauth'\n import { TWorkoutsPayload } from '@/types/workouts'\n import { rangePagination } from '@/utils/api'\n\n interface Props {\n pagination: IPagination\n path: string\n query: TWorkoutsPayload | TPaginationPayload | IOauth2ClientsPayload\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'Pagination',\n props: {\n pagination: null,\n path: null,\n query: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n pagination: IPagination\n path: string\n query: TWorkoutsPayload | TPaginationPayload | IOauth2ClientsPayload\n };\n\n \n\n const { pagination, path, query } = toRefs(props)\n\n function getQuery(\n page: number,\n cursor?: number\n ): TPaginationPayload | IOauth2ClientsPayload {\n const newQuery = Object.assign({}, query.value)\n newQuery.page = cursor ? page + cursor : page\n return newQuery\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_link = _resolveComponent(\"router-link\")!\n\n return (_openBlock(), _createElementBlock(\"nav\", _hoisted_1, [\n _createElementVNode(\"ul\", _hoisted_2, [\n _createElementVNode(\"li\", {\n class: _normalizeClass([\"page-prev\", { disabled: !_unref(pagination).has_prev }])\n }, [\n _createVNode(_component_router_link, {\n class: \"page-link\",\n to: { path: _unref(path), query: getQuery(_unref(pagination).page, -1) },\n disabled: !_unref(pagination).has_prev\n }, {\n default: _withCtx(({ navigate }) => [\n _renderSlot(_ctx.$slots, \"default\", {\n onClick: ($event: any) => (_unref(pagination).has_next ? navigate : null)\n }, () => [\n _createTextVNode(_toDisplayString(_ctx.$t('api.PAGINATION.PREVIOUS')) + \" \", 1),\n _hoisted_3\n ])\n ]),\n _: 3\n }, 8, [\"to\", \"disabled\"])\n ], 2),\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(rangePagination)(_unref(pagination).pages, _unref(pagination).page), (page) => {\n return (_openBlock(), _createElementBlock(\"li\", {\n key: page,\n class: _normalizeClass([\"page\", { active: page === _unref(pagination).page }])\n }, [\n (page === '...')\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_4, \" ... \"))\n : (_openBlock(), _createBlock(_component_router_link, {\n key: 1,\n class: \"page-link\",\n to: { path: _unref(path), query: getQuery(+page) }\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(page), 1)\n ]),\n _: 2\n }, 1032, [\"to\"]))\n ], 2))\n }), 128)),\n _createElementVNode(\"li\", {\n class: _normalizeClass([\"page-next\", { disabled: !_unref(pagination).has_next }])\n }, [\n _createVNode(_component_router_link, {\n class: \"page-link\",\n to: { path: _unref(path), query: getQuery(_unref(pagination).page, 1) },\n disabled: !_unref(pagination).has_next\n }, {\n default: _withCtx(({ navigate }) => [\n _renderSlot(_ctx.$slots, \"default\", {\n onClick: ($event: any) => (_unref(pagination).has_next ? navigate : null)\n }, () => [\n _createTextVNode(_toDisplayString(_ctx.$t('api.PAGINATION.NEXT')) + \" \", 1),\n _hoisted_5\n ])\n ]),\n _: 3\n }, 8, [\"to\", \"disabled\"])\n ], 2)\n ])\n ]))\n}\n}\n\n})","import script from \"./Pagination.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Pagination.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Pagination.vue?vue&type=style&index=0&id=3a9a4a65&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-3a9a4a65\"]])\n\nexport default __exports__","import { zxcvbnOptions } from '@zxcvbn-ts/core'\n\nexport const setZxcvbnOptions = async (language: string) => {\n const zxcvbnCommonPackage = await import(\n /* webpackChunkName: \"password\" */ '@zxcvbn-ts/language-common'\n )\n const zxcvbnEnPackage = await import(\n /* webpackChunkName: \"password\" */ '@zxcvbn-ts/language-en'\n )\n const zxcvbnFrPackage = await import(\n /* webpackChunkName: \"password\" */ '@zxcvbn-ts/language-fr'\n )\n const zxcvbnDePackage = await import(\n /* webpackChunkName: \"password\" */ '@zxcvbn-ts/language-de'\n )\n const zxcvbnLangPackages: Record = {\n de: zxcvbnDePackage,\n en: zxcvbnEnPackage,\n fr: zxcvbnFrPackage,\n // no package available for norwegian bokmal, fallback on english\n nb: zxcvbnEnPackage,\n // no package available for dutch (Nederlands), fallback on english\n nl: zxcvbnEnPackage,\n }\n const zxcvbnPackage = zxcvbnLangPackages[language]\n const options = {\n graphs: zxcvbnCommonPackage.default.adjacencyGraphs,\n dictionary: {\n ...zxcvbnCommonPackage.default.dictionary,\n ...zxcvbnPackage.default.dictionary,\n },\n }\n zxcvbnOptions.setOptions(options)\n}\n\nexport const getPasswordStrength = (strength: number): string => {\n switch (strength) {\n case 2:\n return 'AVERAGE'\n case 3:\n return 'GOOD'\n case 4:\n return 'STRONG'\n default:\n return 'WEAK'\n }\n}\n","import { defineComponent as _defineComponent } from 'vue'\nimport { normalizeClass as _normalizeClass, normalizeStyle as _normalizeStyle, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-74e71df5\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"password-strength\" }\nconst _hoisted_2 = [\"value\"]\nconst _hoisted_3 = {\n key: 0,\n class: \"password-strength-details\"\n}\nconst _hoisted_4 = { class: \"password-strength-value\" }\nconst _hoisted_5 = {\n key: 0,\n class: \"info-box\"\n}\nconst _hoisted_6 = { class: \"password-feedback\" }\n\nimport { zxcvbn } from '@zxcvbn-ts/core'\n import {\n ComputedRef,\n Ref,\n computed,\n ref,\n onBeforeMount,\n toRefs,\n watch,\n } from 'vue'\n\n import { AUTH_USER_STORE, ROOT_STORE } from '@/store/constants'\n import { useStore } from '@/use/useStore'\n import { getPasswordStrength, setZxcvbnOptions } from '@/utils/password'\n\n interface Props {\n password: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'PasswordStength',\n props: {\n password: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n password: string\n };\n\n \n const { password } = toRefs(props)\n\n const store = useStore()\n const language: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.LANGUAGE]\n )\n const isSuccess: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.IS_SUCCESS]\n )\n const passwordScore: Ref = ref(0)\n const passwordStrength: Ref = ref('')\n const passwordSuggestions: Ref = ref([])\n const backgroundSize = ref('0% 100%')\n\n onBeforeMount(async () => await setZxcvbnOptions(language.value))\n\n function calculatePasswordStrength(password: string) {\n const zxcvbnResult = zxcvbn(password)\n passwordScore.value = zxcvbnResult.score\n passwordStrength.value = getPasswordStrength(passwordScore.value)\n passwordSuggestions.value = zxcvbnResult.feedback.suggestions\n backgroundSize.value = (passwordScore.value * 100) / 4 + '% 100%'\n }\n\n watch(\n () => language.value,\n async (newLanguageValue) => {\n await setZxcvbnOptions(newLanguageValue)\n }\n )\n watch(\n () => password.value,\n async (newPassword) => {\n if (isSuccess.value) {\n passwordStrength.value = ''\n } else {\n calculatePasswordStrength(newPassword)\n }\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"input\", {\n class: _normalizeClass([\"password-slider\", `strength-${passwordScore.value}`]),\n style: _normalizeStyle({ backgroundSize: backgroundSize.value }),\n type: \"range\",\n value: passwordScore.value,\n min: \"0\",\n max: \"4\",\n step: \"1\"\n }, null, 14, _hoisted_2),\n (passwordStrength.value)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n _createElementVNode(\"span\", _hoisted_4, _toDisplayString(_ctx.$t('user.PASSWORD_STRENGTH.LABEL')) + \": \" + _toDisplayString(_ctx.$t(`user.PASSWORD_STRENGTH.${passwordStrength.value}`)), 1),\n (passwordSuggestions.value.length > 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_5, [\n _createElementVNode(\"ul\", _hoisted_6, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(passwordSuggestions.value, (suggestion) => {\n return (_openBlock(), _createElementBlock(\"li\", { key: suggestion }, _toDisplayString(_ctx.$t(`user.PASSWORD_STRENGTH.SUGGESTIONS.${suggestion}`)), 1))\n }), 128))\n ])\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n}\n}\n\n})","import script from \"./PasswordStength.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./PasswordStength.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./PasswordStength.vue?vue&type=style&index=0&id=74e71df5&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-74e71df5\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, vModelDynamic as _vModelDynamic, createElementVNode as _createElementVNode, withDirectives as _withDirectives, toDisplayString as _toDisplayString, normalizeClass as _normalizeClass, createTextVNode as _createTextVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-5a126514\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"password-input\" }\nconst _hoisted_2 = [\"id\", \"disabled\", \"placeholder\", \"required\", \"type\"]\nconst _hoisted_3 = {\n key: 0,\n class: \"form-info\"\n}\nconst _hoisted_4 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-info-circle\",\n \"aria-hidden\": \"true\"\n}, null, -1))\n\nimport { Ref, ref, toRefs, watch, withDefaults } from 'vue'\n\n import PasswordStrength from '@/components/Common/PasswordStength.vue'\n\n interface Props {\n checkStrength?: boolean\n disabled?: boolean\n id?: string\n password?: string\n placeholder?: string\n required?: boolean\n }\n\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'PasswordInput',\n props: {\n checkStrength: { type: Boolean, default: false },\n disabled: { type: Boolean, default: false },\n id: { default: 'password' },\n password: { default: '' },\n placeholder: null,\n required: { type: Boolean, default: false }\n },\n emits: ['updatePassword', 'passwordError'],\n setup(__props: any, { emit }) {\n\nconst props = __props as { checkStrength: boolean, disabled: boolean, id: string, password: string, placeholder?: string, required: boolean };\n\n \n const { checkStrength, disabled, id, password, placeholder, required } =\n toRefs(props)\n\n const showPassword: Ref = ref(false)\n const passwordValue: Ref = ref('')\n\n \n\n function togglePassword() {\n showPassword.value = !showPassword.value\n }\n function updatePassword(event: Event & { target: HTMLInputElement }) {\n emit('updatePassword', event.target.value)\n }\n function invalidPassword() {\n emit('passwordError')\n }\n\n watch(\n () => password.value,\n (newPassword) => {\n if (newPassword === '') {\n passwordValue.value = ''\n }\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _withDirectives(_createElementVNode(\"input\", {\n id: _unref(id),\n disabled: _unref(disabled),\n placeholder: _unref(placeholder),\n required: _unref(required),\n type: showPassword.value ? 'text' : 'password',\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((passwordValue).value = $event)),\n minlength: \"8\",\n onInput: updatePassword,\n onInvalid: invalidPassword\n }, null, 40, _hoisted_2), [\n [_vModelDynamic, passwordValue.value]\n ]),\n _createElementVNode(\"div\", {\n class: \"show-password\",\n onClick: togglePassword\n }, [\n _createTextVNode(_toDisplayString(_ctx.$t(`user.${showPassword.value ? 'HIDE' : 'SHOW'}_PASSWORD`)) + \" \", 1),\n _createElementVNode(\"i\", {\n class: _normalizeClass([\"fa\", `fa-eye${showPassword.value ? '-slash' : ''}`]),\n \"aria-hidden\": \"true\"\n }, null, 2)\n ]),\n (_unref(checkStrength))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n _hoisted_4,\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('user.PASSWORD_INFO')), 1)\n ]))\n : _createCommentVNode(\"\", true),\n (_unref(checkStrength))\n ? (_openBlock(), _createBlock(PasswordStrength, {\n key: 1,\n password: passwordValue.value\n }, null, 8, [\"password\"]))\n : _createCommentVNode(\"\", true)\n ]))\n}\n}\n\n})","import script from \"./PasswordInput.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./PasswordInput.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./PasswordInput.vue?vue&type=style&index=0&id=5a126514&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-5a126514\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, normalizeStyle as _normalizeStyle, createElementVNode as _createElementVNode, normalizeClass as _normalizeClass } from \"vue\"\n\nconst _hoisted_1 = /*#__PURE__*/_createElementVNode(\"div\", { class: \"map-attribution\" }, [\n /*#__PURE__*/_createElementVNode(\"span\", { class: \"map-attribution-text\" }, \"©\"),\n /*#__PURE__*/_createElementVNode(\"a\", {\n class: \"map-attribution-text\",\n href: \"https://www.openstreetmap.org/copyright\",\n target: \"_blank\",\n rel: \"noopener noreferrer\"\n }, \" OpenStreetMap \")\n], -1)\n\nimport { toRefs, withDefaults } from 'vue'\n\n import { IWorkout } from '@/types/workouts'\n import { getApiUrl } from '@/utils'\n\n interface Props {\n workout: IWorkout\n displayHover?: boolean\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'StaticMap',\n props: {\n workout: null,\n displayHover: { type: Boolean, default: false }\n },\n setup(__props: any) {\n\nconst props = __props as { workout: IWorkout, displayHover: boolean };\n\n \n const { displayHover } = toRefs(props)\n const imageUrl = `${getApiUrl()}workouts/map/${props.workout.map}`\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", {\n class: _normalizeClass([\"static-map\", { 'display-hover': _unref(displayHover) }])\n }, [\n (_unref(displayHover))\n ? (_openBlock(), _createElementBlock(\"img\", {\n key: 0,\n src: imageUrl,\n alt: \"\"\n }))\n : (_openBlock(), _createElementBlock(\"div\", {\n key: 1,\n class: \"bg-map-image\",\n style: _normalizeStyle({\n backgroundImage: `url(${imageUrl})`,\n })\n }, null, 4)),\n _hoisted_1\n ], 2))\n}\n}\n\n})","import script from \"./StaticMap.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./StaticMap.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./StaticMap.vue?vue&type=style&index=0&id=6b7e4baf&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, createBlock as _createBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-d5e9b348\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"start-chart\" }\nconst _hoisted_2 = { key: 0 }\nconst _hoisted_3 = { key: 1 }\nconst _hoisted_4 = { class: \"chart-radio\" }\nconst _hoisted_5 = [\"checked\"]\nconst _hoisted_6 = [\"checked\"]\nconst _hoisted_7 = [\"checked\"]\nconst _hoisted_8 = { key: 0 }\nconst _hoisted_9 = [\"checked\"]\nconst _hoisted_10 = { key: 1 }\nconst _hoisted_11 = [\"checked\"]\nconst _hoisted_12 = { key: 2 }\nconst _hoisted_13 = [\"checked\"]\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_Chart = _resolveComponent(\"Chart\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_ctx.hideChartIfNoData && _ctx.emptyStats)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, _toDisplayString(_ctx.$t('workouts.NO_WORKOUTS')), 1))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"label\", null, [\n _createElementVNode(\"input\", {\n type: \"radio\",\n name: \"total_distance\",\n checked: _ctx.displayedData === 'total_distance',\n onClick: _cache[0] || (_cache[0] = \n//@ts-ignore\n(...args) => (_ctx.updateDisplayData && _ctx.updateDisplayData(...args)))\n }, null, 8, _hoisted_5),\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.DISTANCE')), 1)\n ]),\n _createElementVNode(\"label\", null, [\n _createElementVNode(\"input\", {\n type: \"radio\",\n name: \"total_duration\",\n checked: _ctx.displayedData === 'total_duration',\n onClick: _cache[1] || (_cache[1] = \n//@ts-ignore\n(...args) => (_ctx.updateDisplayData && _ctx.updateDisplayData(...args)))\n }, null, 8, _hoisted_6),\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.DURATION')), 1)\n ]),\n _createElementVNode(\"label\", null, [\n _createElementVNode(\"input\", {\n type: \"radio\",\n name: \"nb_workouts\",\n checked: _ctx.displayedData === 'nb_workouts',\n onClick: _cache[2] || (_cache[2] = \n//@ts-ignore\n(...args) => (_ctx.updateDisplayData && _ctx.updateDisplayData(...args)))\n }, null, 8, _hoisted_7),\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.WORKOUT', 2)), 1)\n ]),\n (_ctx.fullStats)\n ? (_openBlock(), _createElementBlock(\"label\", _hoisted_8, [\n _createElementVNode(\"input\", {\n type: \"radio\",\n name: \"average_speed\",\n checked: _ctx.displayedData === 'average_speed',\n onClick: _cache[3] || (_cache[3] = \n//@ts-ignore\n(...args) => (_ctx.updateDisplayData && _ctx.updateDisplayData(...args)))\n }, null, 8, _hoisted_9),\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.AVERAGE_SPEED')), 1)\n ]))\n : _createCommentVNode(\"\", true),\n (_ctx.fullStats)\n ? (_openBlock(), _createElementBlock(\"label\", _hoisted_10, [\n _createElementVNode(\"input\", {\n type: \"radio\",\n name: \"total_ascent\",\n checked: _ctx.displayedData === 'total_ascent',\n onClick: _cache[4] || (_cache[4] = \n//@ts-ignore\n(...args) => (_ctx.updateDisplayData && _ctx.updateDisplayData(...args)))\n }, null, 8, _hoisted_11),\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.ASCENT')), 1)\n ]))\n : _createCommentVNode(\"\", true),\n (_ctx.fullStats)\n ? (_openBlock(), _createElementBlock(\"label\", _hoisted_12, [\n _createElementVNode(\"input\", {\n type: \"radio\",\n name: \"total_descent\",\n checked: _ctx.displayedData === 'total_descent',\n onClick: _cache[5] || (_cache[5] = \n//@ts-ignore\n(...args) => (_ctx.updateDisplayData && _ctx.updateDisplayData(...args)))\n }, null, 8, _hoisted_13),\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('workouts.DESCENT')), 1)\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n (_ctx.labels.length > 0)\n ? (_openBlock(), _createBlock(_component_Chart, {\n key: 0,\n datasets: _ctx.datasets,\n labels: _ctx.labels,\n displayedData: _ctx.displayedData,\n displayedSportIds: _ctx.displayedSportIds,\n fullStats: _ctx.fullStats,\n useImperialUnits: _ctx.user.imperial_units\n }, null, 8, [\"datasets\", \"labels\", \"displayedData\", \"displayedSportIds\", \"fullStats\", \"useImperialUnits\"]))\n : _createCommentVNode(\"\", true)\n ]))\n ]))\n}","import { resolveComponent as _resolveComponent, mergeProps as _mergeProps, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"chart\" }\n\nexport function render(_ctx: any,_cache: any,$props: any,$setup: any,$data: any,$options: any) {\n const _component_BarChart = _resolveComponent(\"BarChart\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_BarChart, _mergeProps(_ctx.barChartProps, { class: \"bar-chart\" }), null, 16)\n ]))\n}","export const formatDuration = (\n totalSeconds: number,\n formatWithUnits = false\n): string => {\n let days = '0'\n if (formatWithUnits) {\n days = String(Math.floor(totalSeconds / 86400))\n totalSeconds %= 86400\n }\n const hours = String(Math.floor(totalSeconds / 3600)).padStart(2, '0')\n totalSeconds %= 3600\n const minutes = String(Math.floor(totalSeconds / 60)).padStart(2, '0')\n const seconds = String(totalSeconds % 60).padStart(2, '0')\n if (formatWithUnits) {\n return `${days === '0' ? '' : `${days}d `}${\n hours === '00' ? '' : `${hours}h `\n }${minutes}m ${seconds}s`\n }\n return `${hours === '00' ? '' : `${hours}:`}${minutes}:${seconds}`\n}\n","import { TStatisticsDatasetKeys } from '@/types/statistics'\nimport { formatDuration } from '@/utils/duration'\nimport { units } from '@/utils/units'\n\nexport const formatTooltipValue = (\n displayedData: TStatisticsDatasetKeys,\n value: number,\n useImperialUnits: boolean,\n formatWithUnits = true,\n unitFrom = 'km'\n): string => {\n const unitTo = useImperialUnits ? units[unitFrom].defaultTarget : unitFrom\n switch (displayedData) {\n case 'average_speed':\n return `${value.toFixed(2)} ${unitTo}/h`\n case 'total_duration':\n return formatDuration(value, formatWithUnits)\n case 'total_distance':\n case 'total_ascent':\n case 'total_descent':\n return `${value.toFixed(2)} ${unitTo}`\n default:\n return value.toString()\n }\n}\n","\n import { ChartOptions, LayoutItem } from 'chart.js'\n import { PropType, computed, defineComponent } from 'vue'\n import { BarChart, useBarChart } from 'vue-chart-3'\n import { useI18n } from 'vue-i18n'\n\n import { IChartDataset } from '@/types/chart'\n import { TStatisticsDatasetKeys } from '@/types/statistics'\n import { formatTooltipValue } from '@/utils/tooltip'\n\n export default defineComponent({\n name: 'Chart',\n components: {\n BarChart,\n },\n props: {\n datasets: {\n type: Object as PropType,\n required: true,\n },\n labels: {\n type: Object as PropType,\n required: true,\n },\n displayedData: {\n type: String as PropType,\n required: true,\n },\n displayedSportIds: {\n type: Array as PropType,\n required: true,\n },\n fullStats: {\n type: Boolean,\n required: true,\n },\n useImperialUnits: {\n type: Boolean,\n required: true,\n },\n },\n setup(props) {\n const { t } = useI18n()\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n function getNumber(value: any): number {\n return isNaN(value) ? 0 : +value\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n function getSum(total: any, value: any): number {\n return getNumber(total) + getNumber(value)\n }\n function getUnit(displayedData: string) {\n return ['total_ascent', 'total_descent'].includes(displayedData)\n ? 'm'\n : 'km'\n }\n const chartData = computed(() => ({\n labels: props.labels,\n // workaround to avoid dataset modification\n datasets: JSON.parse(JSON.stringify(props.datasets)),\n }))\n const options = computed>(() => ({\n responsive: true,\n maintainAspectRatio: true,\n animation: false,\n layout: {\n padding: {\n top: props.fullStats ? 40 : 22,\n },\n },\n scales: {\n x: {\n stacked: true,\n grid: {\n drawOnChartArea: false,\n },\n },\n y: {\n stacked: props.displayedData !== 'average_speed',\n grid: {\n drawOnChartArea: false,\n },\n ticks: {\n maxTicksLimit: 6,\n callback: function (value) {\n return formatTooltipValue(\n props.displayedData,\n +value,\n props.useImperialUnits,\n false,\n getUnit(props.displayedData)\n )\n },\n },\n afterFit: function (scale: LayoutItem) {\n scale.width = props.fullStats ? 90 : 60\n },\n },\n },\n plugins: {\n datalabels: {\n anchor: 'end',\n align: 'end',\n color: function (context) {\n return props.displayedData === 'average_speed' &&\n context.dataset.backgroundColor\n ? // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n context.dataset.backgroundColor[0]\n : '#666666'\n },\n rotation: function (context) {\n return props.fullStats && context.chart.chartArea.width < 580\n ? 310\n : 0\n },\n display: function (context) {\n return props.fullStats && context.chart.chartArea.width < 300\n ? false\n : props.displayedData === 'average_speed'\n ? props.displayedSportIds.length == 1\n ? 'auto'\n : false\n : true\n },\n formatter: function (value, context) {\n if (props.displayedData === 'average_speed') {\n return formatTooltipValue(\n props.displayedData,\n value,\n props.useImperialUnits,\n false\n )\n } else {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n const total: number = context.chart.data.datasets\n .map((d) => d.data[context.dataIndex])\n .reduce((total, value) => getSum(total, value), 0)\n return context.datasetIndex ===\n props.displayedSportIds.length - 1 && total > 0\n ? formatTooltipValue(\n props.displayedData,\n total,\n props.useImperialUnits,\n false,\n getUnit(props.displayedData)\n )\n : null\n }\n },\n },\n legend: {\n display: false,\n },\n tooltip: {\n interaction: {\n intersect: true,\n mode: 'index',\n position:\n props.displayedData === 'average_speed' ? 'nearest' : 'average',\n },\n filter: function (tooltipItem) {\n return tooltipItem.formattedValue !== '0'\n },\n callbacks: {\n label: function (context) {\n let label = t(`sports.${context.dataset.label}.LABEL`) || ''\n if (label) {\n label += ': '\n }\n if (context.parsed.y !== null) {\n label += formatTooltipValue(\n props.displayedData,\n context.parsed.y,\n props.useImperialUnits,\n true,\n getUnit(props.displayedData)\n )\n }\n return label\n },\n footer: function (tooltipItems) {\n if (props.displayedData === 'average_speed') {\n return ''\n }\n let sum = 0\n tooltipItems.map((tooltipItem) => {\n sum += tooltipItem.parsed.y\n })\n return (\n `${t('common.TOTAL')}: ` +\n formatTooltipValue(\n props.displayedData,\n sum,\n props.useImperialUnits,\n true,\n getUnit(props.displayedData)\n )\n )\n },\n },\n },\n },\n }))\n const { barChartProps } = useBarChart({\n chartData,\n options,\n })\n return { barChartProps }\n },\n })\n","import { render } from \"./Chart.vue?vue&type=template&id=1d43a4a8&ts=true\"\nimport script from \"./Chart.vue?vue&type=script&lang=ts\"\nexport * from \"./Chart.vue?vue&type=script&lang=ts\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","\n import { format } from 'date-fns'\n import {\n ComputedRef,\n PropType,\n Ref,\n computed,\n defineComponent,\n ref,\n watch,\n onBeforeMount,\n } from 'vue'\n\n import Chart from '@/components/Common/StatsChart/Chart.vue'\n import { STATS_STORE } from '@/store/constants'\n import { ISport } from '@/types/sports'\n import {\n IStatisticsChartData,\n TStatisticsDatasetKeys,\n IStatisticsDateParams,\n TStatisticsFromApi,\n IStatisticsParams,\n } from '@/types/statistics'\n import { IAuthUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { formatStats } from '@/utils/statistics'\n\n export default defineComponent({\n name: 'UserMonthStats',\n components: {\n Chart,\n },\n props: {\n sports: {\n type: Object as PropType,\n required: true,\n },\n user: {\n type: Object as PropType,\n required: true,\n },\n chartParams: {\n type: Object as PropType,\n required: true,\n },\n displayedSportIds: {\n type: Array as PropType,\n default: () => [],\n },\n fullStats: {\n type: Boolean,\n default: false,\n },\n hideChartIfNoData: {\n type: Boolean,\n default: false,\n },\n },\n setup(props) {\n const store = useStore()\n\n const displayedData: Ref = ref('total_distance')\n const statistics: ComputedRef = computed(\n () => store.getters[STATS_STORE.GETTERS.USER_STATS]\n )\n const formattedStats: ComputedRef = computed(() =>\n formatStats(\n props.chartParams,\n props.user.weekm,\n props.sports,\n props.displayedSportIds,\n statistics.value,\n props.user.imperial_units,\n props.user.date_format\n )\n )\n\n onBeforeMount(() =>\n getStatistics(getApiParams(props.chartParams, props.user))\n )\n\n function getStatistics(apiParams: IStatisticsParams) {\n store.dispatch(STATS_STORE.ACTIONS.GET_USER_STATS, {\n username: props.user.username,\n filterType: 'by_time',\n params: apiParams,\n })\n }\n function updateDisplayData(\n event: Event & {\n target: HTMLInputElement & { name: TStatisticsDatasetKeys }\n }\n ) {\n displayedData.value = event.target.name\n }\n function getApiParams(\n chartParams: IStatisticsDateParams,\n user: IAuthUserProfile\n ): IStatisticsParams {\n return {\n from: format(chartParams.start, 'yyyy-MM-dd'),\n to: format(chartParams.end, 'yyyy-MM-dd'),\n time:\n chartParams.duration === 'week'\n ? `week${user.weekm ? 'm' : ''}`\n : chartParams.duration,\n }\n }\n\n watch(\n () => props.chartParams,\n async (newParams) => {\n getStatistics(getApiParams(newParams, props.user))\n }\n )\n\n return {\n datasets: computed(\n () => formattedStats.value.datasets[displayedData.value]\n ),\n labels: computed(() => formattedStats.value.labels),\n emptyStats: computed(() => Object.keys(statistics.value).length === 0),\n displayedData,\n updateDisplayData,\n }\n },\n })\n","import { render } from \"./index.vue?vue&type=template&id=d5e9b348&scoped=true&ts=true\"\nimport script from \"./index.vue?vue&type=script&lang=ts\"\nexport * from \"./index.vue?vue&type=script&lang=ts\"\n\nimport \"./index.vue?vue&type=style&index=0&id=d5e9b348&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-d5e9b348\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-20291951\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"box user-header\" }\nconst _hoisted_2 = { class: \"user-details\" }\nconst _hoisted_3 = { class: \"user-name\" }\nconst _hoisted_4 = { class: \"user-stats\" }\nconst _hoisted_5 = { class: \"user-stat\" }\nconst _hoisted_6 = { class: \"stat-number\" }\nconst _hoisted_7 = { class: \"stat-label\" }\nconst _hoisted_8 = { class: \"user-stat\" }\nconst _hoisted_9 = { class: \"stat-label\" }\nconst _hoisted_10 = { class: \"user-stat hide-small\" }\nconst _hoisted_11 = { class: \"stat-number\" }\nconst _hoisted_12 = { class: \"stat-label\" }\n\nimport { computed, ComputedRef, toRefs } from 'vue'\n\n import UserPicture from '@/components/User/UserPicture.vue'\n import { AUTH_USER_STORE } from '@/store/constants'\n import { IAuthUserProfile, IUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n\n interface Props {\n user: IUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserHeader',\n props: {\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IUserProfile\n };\n\n \n\n const { user } = toRefs(props)\n\n const store = useStore()\n\n const authUser: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.AUTH_USER_PROFILE]\n )\n\nreturn (_ctx: any,_cache: any) => {\n const _component_Distance = _resolveComponent(\"Distance\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(UserPicture, { user: _unref(user) }, null, 8, [\"user\"]),\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, _toDisplayString(_unref(user).username), 1),\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"span\", _hoisted_6, _toDisplayString(_unref(user).nb_workouts), 1),\n _createElementVNode(\"span\", _hoisted_7, _toDisplayString(_ctx.$t('workouts.WORKOUT', _unref(user).nb_workouts)), 1)\n ]),\n _createElementVNode(\"div\", _hoisted_8, [\n _createVNode(_component_Distance, {\n distance: _unref(user).total_distance,\n unitFrom: \"km\",\n digits: 0,\n displayUnit: false,\n useImperialUnits: _unref(authUser).imperial_units\n }, null, 8, [\"distance\", \"useImperialUnits\"]),\n _createElementVNode(\"span\", _hoisted_9, _toDisplayString(_unref(authUser).imperial_units ? 'miles' : 'km'), 1)\n ]),\n _createElementVNode(\"div\", _hoisted_10, [\n _createElementVNode(\"span\", _hoisted_11, _toDisplayString(_unref(user).nb_sports), 1),\n _createElementVNode(\"span\", _hoisted_12, _toDisplayString(_ctx.$t('workouts.SPORT', _unref(user).nb_sports)), 1)\n ])\n ])\n ])\n ]))\n}\n}\n\n})","import script from \"./UserHeader.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserHeader.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserHeader.vue?vue&type=style&index=0&id=20291951&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-20291951\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, createElementBlock as _createElementBlock, vModelText as _vModelText, createElementVNode as _createElementVNode, withDirectives as _withDirectives, createTextVNode as _createTextVNode, withModifiers as _withModifiers, normalizeClass as _normalizeClass, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-217519af\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"user-infos\",\n class: \"description-list\"\n}\nconst _hoisted_2 = {\n key: 1,\n class: \"info-box success-message\"\n}\nconst _hoisted_3 = {\n key: 4,\n class: \"email-form form-box\"\n}\nconst _hoisted_4 = {\n class: \"form-items\",\n for: \"email\"\n}\nconst _hoisted_5 = {\n class: \"form-items\",\n for: \"email\"\n}\nconst _hoisted_6 = { class: \"form-buttons\" }\nconst _hoisted_7 = {\n class: \"confirm\",\n type: \"submit\"\n}\nconst _hoisted_8 = [\"onClick\"]\nconst _hoisted_9 = { key: 5 }\nconst _hoisted_10 = { class: \"user-bio\" }\nconst _hoisted_11 = {\n key: 0,\n class: \"profile-buttons\"\n}\nconst _hoisted_12 = [\"onClick\"]\nconst _hoisted_13 = {\n key: 1,\n class: \"profile-buttons\"\n}\n\nimport { format } from 'date-fns'\n import {\n ComputedRef,\n Ref,\n computed,\n ref,\n toRefs,\n withDefaults,\n watch,\n onUnmounted,\n } from 'vue'\n\n import { AUTH_USER_STORE, ROOT_STORE, USERS_STORE } from '@/store/constants'\n import { TAppConfig } from '@/types/application'\n import { IAuthUserProfile, IUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { formatDate, getDateFormat } from '@/utils/dates'\n import { localeFromLanguage } from '@/utils/locales'\n\n interface Props {\n user: IUserProfile\n fromAdmin?: boolean\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserInfos',\n props: {\n user: null,\n fromAdmin: { type: Boolean, default: false }\n },\n setup(__props: any) {\n\nconst props = __props as { user: IUserProfile, fromAdmin: boolean };\n\n \n\n const store = useStore()\n\n const { user, fromAdmin } = toRefs(props)\n const language: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.LANGUAGE]\n )\n const authUser: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.AUTH_USER_PROFILE]\n )\n const registrationDate = computed(() =>\n props.user.created_at\n ? formatDate(\n props.user.created_at,\n authUser.value.timezone,\n authUser.value.date_format\n )\n : ''\n )\n const birthDate = computed(() =>\n props.user.birth_date\n ? format(\n new Date(props.user.birth_date),\n `${getDateFormat(authUser.value.date_format, language.value)}`,\n { locale: localeFromLanguage[language.value] }\n )\n : ''\n )\n const isSuccess = computed(\n () => store.getters[USERS_STORE.GETTERS.USERS_IS_SUCCESS]\n )\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n const appConfig: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.APP_CONFIG]\n )\n const displayModal: Ref = ref('')\n const formErrors = ref(false)\n const displayUserEmailForm: Ref = ref(false)\n const newUserEmail: Ref = ref('')\n const currentAction: Ref = ref('')\n\n function updateDisplayModal(value: string) {\n displayModal.value = value\n if (value !== '') {\n store.commit(USERS_STORE.MUTATIONS.UPDATE_IS_SUCCESS, false)\n }\n }\n function deleteUserAccount(username: string) {\n store.dispatch(USERS_STORE.ACTIONS.DELETE_USER_ACCOUNT, { username })\n }\n function resetUserPassword(username: string) {\n currentAction.value = 'password-reset'\n store.dispatch(USERS_STORE.ACTIONS.UPDATE_USER, {\n username,\n resetPassword: true,\n })\n }\n function confirmUserAccount(username: string) {\n store.dispatch(USERS_STORE.ACTIONS.UPDATE_USER, {\n username,\n activate: true,\n })\n }\n function displayEmailForm() {\n resetErrorsAndSuccess()\n newUserEmail.value = user.value.email_to_confirm\n ? user.value.email_to_confirm\n : ''\n displayUserEmailForm.value = true\n currentAction.value = 'email-update'\n }\n function hideEmailForm() {\n newUserEmail.value = ''\n displayUserEmailForm.value = false\n }\n function updateUserEmail(username: string) {\n store.dispatch(USERS_STORE.ACTIONS.UPDATE_USER, {\n username,\n new_email: newUserEmail.value,\n })\n }\n function resetErrorsAndSuccess() {\n store.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n store.commit(USERS_STORE.MUTATIONS.UPDATE_IS_SUCCESS, false)\n currentAction.value = ''\n }\n\n onUnmounted(() => resetErrorsAndSuccess())\n\n watch(\n () => isSuccess.value,\n (newIsSuccess) => {\n if (newIsSuccess) {\n updateDisplayModal('')\n hideEmailForm()\n }\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n const _component_Modal = _resolveComponent(\"Modal\")!\n const _component_AlertMessage = _resolveComponent(\"AlertMessage\")!\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (displayModal.value)\n ? (_openBlock(), _createBlock(_component_Modal, {\n key: 0,\n title: _ctx.$t('common.CONFIRMATION'),\n message: \n displayModal.value === 'delete'\n ? 'admin.CONFIRM_USER_ACCOUNT_DELETION'\n : 'admin.CONFIRM_USER_PASSWORD_RESET'\n ,\n strongMessage: _unref(user).username,\n onConfirmAction: _cache[0] || (_cache[0] = ($event: any) => (\n displayModal.value === 'delete'\n ? deleteUserAccount(_unref(user).username)\n : resetUserPassword(_unref(user).username)\n )),\n onCancelAction: _cache[1] || (_cache[1] = ($event: any) => (updateDisplayModal('')))\n }, null, 8, [\"title\", \"message\", \"strongMessage\"]))\n : _createCommentVNode(\"\", true),\n (_unref(isSuccess))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, _toDisplayString(_ctx.$t(\n `admin.${\n currentAction.value === 'password-reset'\n ? 'PASSWORD_RESET'\n : 'USER_EMAIL_UPDATE'\n }_SUCCESSFUL`\n )), 1))\n : _createCommentVNode(\"\", true),\n (!_unref(user).is_active)\n ? (_openBlock(), _createBlock(_component_AlertMessage, {\n key: 2,\n message: \"user.THIS_USER_ACCOUNT_IS_INACTIVE\"\n }))\n : _createCommentVNode(\"\", true),\n (_unref(errorMessages))\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 3,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true),\n (displayUserEmailForm.value)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n _createElementVNode(\"form\", {\n class: _normalizeClass({ errors: formErrors.value }),\n onSubmit: _cache[4] || (_cache[4] = _withModifiers(($event: any) => (updateUserEmail(_unref(user).username)), [\"prevent\"]))\n }, [\n _createElementVNode(\"label\", _hoisted_4, [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.CURRENT_EMAIL')) + \" \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"email\",\n type: \"email\",\n \"onUpdate:modelValue\": _cache[2] || (_cache[2] = ($event: any) => ((_unref(user).email) = $event)),\n disabled: \"\"\n }, null, 512), [\n [_vModelText, _unref(user).email]\n ])\n ]),\n _createElementVNode(\"label\", _hoisted_5, [\n _createTextVNode(_toDisplayString(_ctx.$t('admin.NEW_EMAIL')) + \"* \", 1),\n _withDirectives(_createElementVNode(\"input\", {\n id: \"new-email\",\n type: \"email\",\n required: \"\",\n \"onUpdate:modelValue\": _cache[3] || (_cache[3] = ($event: any) => ((newUserEmail).value = $event))\n }, null, 512), [\n [_vModelText, newUserEmail.value]\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_6, [\n _createElementVNode(\"button\", _hoisted_7, _toDisplayString(_ctx.$t('buttons.SUBMIT')), 1),\n _createElementVNode(\"button\", {\n class: \"cancel\",\n onClick: _withModifiers(hideEmailForm, [\"prevent\"])\n }, _toDisplayString(_ctx.$t('buttons.CANCEL')), 9, _hoisted_8)\n ])\n ], 34)\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_9, [\n _createElementVNode(\"dl\", null, [\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.REGISTRATION_DATE')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_unref(registrationDate)), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.FIRST_NAME')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_unref(user).first_name), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.LAST_NAME')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_unref(user).last_name), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.BIRTH_DATE')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_unref(birthDate)), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.LOCATION')) + \":\", 1),\n _createElementVNode(\"dd\", null, _toDisplayString(_unref(user).location), 1),\n _createElementVNode(\"dt\", null, _toDisplayString(_ctx.$t('user.PROFILE.BIO')) + \":\", 1),\n _createElementVNode(\"dd\", _hoisted_10, _toDisplayString(_unref(user).bio), 1)\n ]),\n (_unref(fromAdmin))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_11, [\n (_unref(authUser).username !== _unref(user).username)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 0,\n class: \"danger\",\n onClick: _cache[5] || (_cache[5] = _withModifiers(($event: any) => (updateDisplayModal('delete')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('admin.DELETE_USER')), 1))\n : _createCommentVNode(\"\", true),\n (!_unref(user).is_active)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 1,\n onClick: _cache[6] || (_cache[6] = _withModifiers(($event: any) => (confirmUserAccount(_unref(user).username)), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('admin.ACTIVATE_USER_ACCOUNT')), 1))\n : _createCommentVNode(\"\", true),\n (_unref(authUser).username !== _unref(user).username)\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 2,\n onClick: _withModifiers(displayEmailForm, [\"prevent\"])\n }, _toDisplayString(_ctx.$t('admin.UPDATE_USER_EMAIL')), 9, _hoisted_12))\n : _createCommentVNode(\"\", true),\n (\n _unref(authUser).username !== _unref(user).username &&\n _unref(appConfig).is_email_sending_enabled\n )\n ? (_openBlock(), _createElementBlock(\"button\", {\n key: 3,\n onClick: _cache[7] || (_cache[7] = _withModifiers(($event: any) => (updateDisplayModal('reset')), [\"prevent\"]))\n }, _toDisplayString(_ctx.$t('admin.RESET_USER_PASSWORD')), 1))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"button\", {\n onClick: _cache[8] || (_cache[8] = ($event: any) => (_ctx.$router.go(-1)))\n }, _toDisplayString(_ctx.$t('buttons.BACK')), 1)\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_13, [\n _createElementVNode(\"button\", {\n onClick: _cache[9] || (_cache[9] = ($event: any) => (_ctx.$router.push('/profile/edit')))\n }, _toDisplayString(_ctx.$t('user.PROFILE.EDIT')), 1),\n _createElementVNode(\"button\", {\n onClick: _cache[10] || (_cache[10] = ($event: any) => (_ctx.$router.push('/')))\n }, _toDisplayString(_ctx.$t('common.HOME')), 1)\n ]))\n ]))\n ]))\n}\n}\n\n})","import script from \"./UserInfos.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserInfos.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserInfos.vue?vue&type=style&index=0&id=217519af&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-217519af\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, resolveComponent as _resolveComponent, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, createElementBlock as _createElementBlock, vModelText as _vModelText, withDirectives as _withDirectives, createElementVNode as _createElementVNode, createTextVNode as _createTextVNode, withModifiers as _withModifiers, normalizeClass as _normalizeClass, withCtx as _withCtx, createVNode as _createVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-b3c885de\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"user-form\" }\nconst _hoisted_2 = {\n key: 2,\n class: \"info-box success-message\"\n}\nconst _hoisted_3 = { class: \"form-items\" }\nconst _hoisted_4 = [\"disabled\", \"placeholder\"]\nconst _hoisted_5 = {\n key: 1,\n class: \"form-info\"\n}\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-info-circle\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_7 = [\"disabled\", \"placeholder\"]\nconst _hoisted_8 = {\n key: 3,\n class: \"form-info\"\n}\nconst _hoisted_9 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-info-circle\",\n \"aria-hidden\": \"true\"\n}, null, -1))\nconst _hoisted_10 = [\"disabled\"]\nconst _hoisted_11 = { key: 3 }\nconst _hoisted_12 = { key: 0 }\nconst _hoisted_13 = { key: 4 }\nconst _hoisted_14 = { class: \"account\" }\nconst _hoisted_15 = { key: 5 }\n\nimport {\n ComputedRef,\n computed,\n onUnmounted,\n reactive,\n ref,\n toRefs,\n watch,\n withDefaults,\n } from 'vue'\n import { useRoute } from 'vue-router'\n\n import PasswordInput from '@/components/Common/PasswordInput.vue'\n import { AUTH_USER_STORE, ROOT_STORE } from '@/store/constants'\n import { TAppConfig } from '@/types/application'\n import { ILoginRegisterFormData } from '@/types/user'\n import { useStore } from '@/use/useStore'\n\n interface Props {\n action: string\n token?: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserAuthForm',\n props: {\n action: null,\n token: { default: '' }\n },\n setup(__props: any) {\n\nconst props = __props as { action: string, token: string };\n\n \n\n const route = useRoute()\n const store = useStore()\n\n const { action } = toRefs(props)\n const formData: ILoginRegisterFormData = reactive({\n username: '',\n email: '',\n password: '',\n })\n const buttonText: ComputedRef = computed(() =>\n getButtonText(props.action)\n )\n const errorMessages: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.ERROR_MESSAGES]\n )\n const isRegistrationSuccess: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.IS_REGISTRATION_SUCCESS]\n )\n const isSuccess: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.IS_SUCCESS]\n )\n const appConfig: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.APP_CONFIG]\n )\n const language: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.LANGUAGE]\n )\n const registration_disabled: ComputedRef = computed(\n () =>\n props.action === 'register' && !appConfig.value.is_registration_enabled\n )\n const sendingEmailDisabled: ComputedRef = computed(\n () =>\n ['reset-request', 'account-confirmation-resend'].includes(props.action) &&\n !appConfig.value.is_email_sending_enabled\n )\n const formErrors = ref(false)\n\n function getButtonText(action: string): string {\n switch (action) {\n case 'reset-request':\n case 'reset':\n return 'buttons.SUBMIT'\n default:\n return `buttons.${props.action.toUpperCase()}`\n }\n }\n function invalidateForm() {\n formErrors.value = true\n }\n function updatePassword(password: string) {\n formData.password = password\n }\n function onSubmit(actionType: string) {\n switch (actionType) {\n case 'reset':\n if (!props.token) {\n return store.commit(\n ROOT_STORE.MUTATIONS.SET_ERROR_MESSAGES,\n 'user.INVALID_TOKEN'\n )\n }\n return store.dispatch(AUTH_USER_STORE.ACTIONS.RESET_USER_PASSWORD, {\n password: formData.password,\n token: props.token,\n })\n case 'reset-request':\n return store.dispatch(\n AUTH_USER_STORE.ACTIONS.SEND_PASSWORD_RESET_REQUEST,\n {\n email: formData.email,\n }\n )\n case 'account-confirmation-resend':\n return store.dispatch(\n AUTH_USER_STORE.ACTIONS.RESEND_ACCOUNT_CONFIRMATION_EMAIL,\n {\n email: formData.email,\n }\n )\n default:\n formData['language'] = language.value\n store.dispatch(AUTH_USER_STORE.ACTIONS.LOGIN_OR_REGISTER, {\n actionType,\n formData,\n redirectUrl: route.query.from,\n })\n }\n }\n function resetFormData() {\n formData.username = ''\n formData.email = ''\n formData.password = ''\n }\n\n onUnmounted(() => store.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES))\n\n watch(\n () => route.path,\n async () => {\n store.commit(ROOT_STORE.MUTATIONS.EMPTY_ERROR_MESSAGES)\n store.commit(AUTH_USER_STORE.MUTATIONS.UPDATE_IS_SUCCESS, false)\n store.commit(\n AUTH_USER_STORE.MUTATIONS.UPDATE_IS_REGISTRATION_SUCCESS,\n false\n )\n formErrors.value = false\n resetFormData()\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n const _component_AlertMessage = _resolveComponent(\"AlertMessage\")!\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_ErrorMessage = _resolveComponent(\"ErrorMessage\")!\n\n return (_openBlock(), _createElementBlock(\"div\", {\n id: \"user-auth-form\",\n class: _normalizeClass(`${\n ['reset', 'reset-request'].includes(_unref(action)) ? _unref(action) : 'user-form'\n }`)\n }, [\n _createElementVNode(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"form-box\", {\n disabled: _unref(registration_disabled),\n }])\n }, [\n (_unref(registration_disabled))\n ? (_openBlock(), _createBlock(_component_AlertMessage, {\n key: 0,\n message: \"user.REGISTER_DISABLED\"\n }))\n : _createCommentVNode(\"\", true),\n (_unref(sendingEmailDisabled))\n ? (_openBlock(), _createBlock(_component_AlertMessage, {\n key: 1,\n message: \"admin.EMAIL_SENDING_DISABLED\"\n }))\n : _createCommentVNode(\"\", true),\n (_unref(isSuccess) || _unref(isRegistrationSuccess))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, _toDisplayString(_ctx.$t(\n `user.PROFILE.SUCCESSFUL_${\n _unref(isRegistrationSuccess)\n ? `REGISTRATION${\n _unref(appConfig).is_email_sending_enabled ? '_WITH_EMAIL' : ''\n }`\n : 'UPDATE'\n }`\n )), 1))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"form\", {\n class: _normalizeClass({ errors: formErrors.value }),\n onSubmit: _cache[2] || (_cache[2] = _withModifiers(($event: any) => (onSubmit(_unref(action))), [\"prevent\"]))\n }, [\n _createElementVNode(\"div\", _hoisted_3, [\n (_unref(action) === 'register')\n ? _withDirectives((_openBlock(), _createElementBlock(\"input\", {\n key: 0,\n id: \"username\",\n disabled: _unref(registration_disabled),\n required: \"\",\n pattern: \"[a-zA-Z0-9_]+\",\n minlength: \"3\",\n maxlength: \"30\",\n onInvalid: invalidateForm,\n \"onUpdate:modelValue\": _cache[0] || (_cache[0] = ($event: any) => ((formData.username) = $event)),\n placeholder: _ctx.$t('user.USERNAME')\n }, null, 40, _hoisted_4)), [\n [_vModelText, formData.username]\n ])\n : _createCommentVNode(\"\", true),\n (_unref(action) === 'register')\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_5, [\n _hoisted_6,\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('user.USERNAME_INFO')), 1)\n ]))\n : _createCommentVNode(\"\", true),\n (_unref(action) !== 'reset')\n ? _withDirectives((_openBlock(), _createElementBlock(\"input\", {\n key: 2,\n id: \"email\",\n disabled: _unref(registration_disabled) || _unref(sendingEmailDisabled),\n required: \"\",\n onInvalid: invalidateForm,\n type: \"email\",\n \"onUpdate:modelValue\": _cache[1] || (_cache[1] = ($event: any) => ((formData.email) = $event)),\n placeholder: _ctx.$t('user.EMAIL')\n }, null, 40, _hoisted_7)), [\n [_vModelText, formData.email]\n ])\n : _createCommentVNode(\"\", true),\n (\n [\n 'reset-request',\n 'register',\n 'account-confirmation-resend',\n ].includes(_unref(action))\n )\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_8, [\n _hoisted_9,\n _createTextVNode(\" \" + _toDisplayString(_ctx.$t('user.EMAIL_INFO')), 1)\n ]))\n : _createCommentVNode(\"\", true),\n (\n !['account-confirmation-resend', 'reset-request'].includes(\n _unref(action)\n )\n )\n ? (_openBlock(), _createBlock(PasswordInput, {\n key: 4,\n disabled: _unref(registration_disabled),\n required: true,\n placeholder: \n _unref(action) === 'reset'\n ? _ctx.$t('user.ENTER_PASSWORD')\n : _ctx.$t('user.PASSWORD')\n ,\n password: formData.password,\n checkStrength: ['reset', 'register'].includes(_unref(action)),\n onUpdatePassword: updatePassword,\n onPasswordError: invalidateForm\n }, null, 8, [\"disabled\", \"placeholder\", \"password\", \"checkStrength\"]))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"button\", {\n type: \"submit\",\n disabled: _unref(registration_disabled) || _unref(sendingEmailDisabled)\n }, _toDisplayString(_ctx.$t(_unref(buttonText))), 9, _hoisted_10)\n ], 34),\n (_unref(action) === 'login')\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_11, [\n _createVNode(_component_router_link, {\n class: \"links\",\n to: \"/register\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('user.REGISTER')), 1)\n ]),\n _: 1\n }),\n (_unref(appConfig).is_email_sending_enabled)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_12, \"-\"))\n : _createCommentVNode(\"\", true),\n (_unref(appConfig).is_email_sending_enabled)\n ? (_openBlock(), _createBlock(_component_router_link, {\n key: 1,\n class: \"links\",\n to: \"/password-reset/request\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('user.PASSWORD_FORGOTTEN')), 1)\n ]),\n _: 1\n }))\n : _createCommentVNode(\"\", true)\n ]))\n : _createCommentVNode(\"\", true),\n (_unref(action) === 'register')\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_13, [\n _createElementVNode(\"span\", _hoisted_14, _toDisplayString(_ctx.$t('user.ALREADY_HAVE_ACCOUNT')), 1),\n _createVNode(_component_router_link, {\n class: \"links\",\n to: \"/login\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('user.LOGIN')), 1)\n ]),\n _: 1\n })\n ]))\n : _createCommentVNode(\"\", true),\n (\n ['login', 'register'].includes(_unref(action)) &&\n _unref(appConfig).is_email_sending_enabled\n )\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_15, [\n _createVNode(_component_router_link, {\n class: \"links\",\n to: \"/account-confirmation/resend\"\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('user.ACCOUNT_CONFIRMATION_NOT_RECEIVED')), 1)\n ]),\n _: 1\n })\n ]))\n : _createCommentVNode(\"\", true),\n (_unref(errorMessages))\n ? (_openBlock(), _createBlock(_component_ErrorMessage, {\n key: 6,\n message: _unref(errorMessages)\n }, null, 8, [\"message\"]))\n : _createCommentVNode(\"\", true)\n ], 2)\n ])\n ], 2))\n}\n}\n\n})","import script from \"./UserAuthForm.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserAuthForm.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserAuthForm.vue?vue&type=style&index=0&id=b3c885de&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-b3c885de\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode } from \"vue\"\n\nconst _hoisted_1 = { class: \"user-picture\" }\nconst _hoisted_2 = [\"alt\", \"src\"]\nconst _hoisted_3 = {\n key: 1,\n class: \"no-picture\"\n}\nconst _hoisted_4 = /*#__PURE__*/_createElementVNode(\"i\", {\n class: \"fa fa-user-circle-o\",\n \"aria-hidden\": \"true\"\n}, null, -1)\nconst _hoisted_5 = [\n _hoisted_4\n]\n\nimport { computed } from 'vue'\n\n import { IUserProfile } from '@/types/user'\n import { getApiUrl } from '@/utils'\n\n interface Props {\n user: IUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'UserPicture',\n props: {\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IUserProfile\n };\n\n \n\n const authUserPictureUrl = computed(() =>\n props.user.picture\n ? `${getApiUrl()}users/${props.user.username}/picture?${Date.now()}`\n : ''\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_unref(authUserPictureUrl) !== '')\n ? (_openBlock(), _createElementBlock(\"img\", {\n key: 0,\n class: \"profile-user-img\",\n alt: _ctx.$t('user.USER_PICTURE'),\n src: _unref(authUserPictureUrl)\n }, null, 8, _hoisted_2))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_3, _hoisted_5))\n ]))\n}\n}\n\n})","import script from \"./UserPicture.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./UserPicture.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./UserPicture.vue?vue&type=style&index=0&id=26bea286&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","\n\n\n","import { render } from \"./NoWorkouts.vue?vue&type=template&id=4b4d15fb&scoped=true\"\nconst script = {}\n\nimport \"./NoWorkouts.vue?vue&type=style&index=0&id=4b4d15fb&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render],['__scopeId',\"data-v-4b4d15fb\"]])\n\nexport default __exports__","var map = {\n\t\"./de/de.ts\": 9923,\n\t\"./en/en.ts\": 8757,\n\t\"./fr/fr.ts\": 6625,\n\t\"./nb/nb.ts\": 8891,\n\t\"./nl/nl.ts\": 701\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 4612;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","var getProto = Object.getPrototypeOf ? function(obj) { return Object.getPrototypeOf(obj); } : function(obj) { return obj.__proto__; };\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach(function(key) { def[key] = function() { return value[key]; }; });\n\t}\n\tdef['default'] = function() { return value; };\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"static/js/\" + ({\"24\":\"reset\",\"193\":\"statistics\",\"328\":\"admin\",\"401\":\"workouts\",\"845\":\"profile\",\"881\":\"password\"}[chunkId] || chunkId) + \".\" + {\"24\":\"49874687\",\"93\":\"611a4415\",\"193\":\"5231fa2f\",\"243\":\"d3fff3a7\",\"328\":\"c4231dfb\",\"401\":\"6988dc66\",\"431\":\"52f71cad\",\"633\":\"5eb61510\",\"845\":\"984aa6f4\",\"858\":\"ec3b00a9\",\"881\":\"cfeb5ed6\"}[chunkId] + \".js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"static/css/\" + {\"24\":\"reset\",\"193\":\"statistics\",\"328\":\"admin\",\"401\":\"workouts\",\"845\":\"profile\"}[chunkId] + \".\" + {\"24\":\"e2527ec6\",\"193\":\"40e24e75\",\"328\":\"73df498d\",\"401\":\"9970f29e\",\"845\":\"9f83730d\"}[chunkId] + \".css\";\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","var inProgress = {};\nvar dataWebpackPrefix = \"fittrackee_client:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t};\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"/\";","var createStylesheet = function(chunkId, fullhref, resolve, reject) {\n\tvar linkTag = document.createElement(\"link\");\n\n\tlinkTag.rel = \"stylesheet\";\n\tlinkTag.type = \"text/css\";\n\tvar onLinkComplete = function(event) {\n\t\t// avoid mem leaks.\n\t\tlinkTag.onerror = linkTag.onload = null;\n\t\tif (event.type === 'load') {\n\t\t\tresolve();\n\t\t} else {\n\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\tvar realHref = event && event.target && event.target.href || fullhref;\n\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + realHref + \")\");\n\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n\t\t\terr.type = errorType;\n\t\t\terr.request = realHref;\n\t\t\tlinkTag.parentNode.removeChild(linkTag)\n\t\t\treject(err);\n\t\t}\n\t}\n\tlinkTag.onerror = linkTag.onload = onLinkComplete;\n\tlinkTag.href = fullhref;\n\n\tdocument.head.appendChild(linkTag);\n\treturn linkTag;\n};\nvar findStylesheet = function(href, fullhref) {\n\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n\tfor(var i = 0; i < existingLinkTags.length; i++) {\n\t\tvar tag = existingLinkTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return tag;\n\t}\n\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n\tfor(var i = 0; i < existingStyleTags.length; i++) {\n\t\tvar tag = existingStyleTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\");\n\t\tif(dataHref === href || dataHref === fullhref) return tag;\n\t}\n};\nvar loadStylesheet = function(chunkId) {\n\treturn new Promise(function(resolve, reject) {\n\t\tvar href = __webpack_require__.miniCssF(chunkId);\n\t\tvar fullhref = __webpack_require__.p + href;\n\t\tif(findStylesheet(href, fullhref)) return resolve();\n\t\tcreateStylesheet(chunkId, fullhref, resolve, reject);\n\t});\n}\n// object to store loaded CSS chunks\nvar installedCssChunks = {\n\t143: 0\n};\n\n__webpack_require__.f.miniCss = function(chunkId, promises) {\n\tvar cssChunks = {\"24\":1,\"193\":1,\"328\":1,\"401\":1,\"845\":1};\n\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n\t\tpromises.push(installedCssChunks[chunkId] = loadStylesheet(chunkId).then(function() {\n\t\t\tinstalledCssChunks[chunkId] = 0;\n\t\t}, function(e) {\n\t\t\tdelete installedCssChunks[chunkId];\n\t\t\tthrow e;\n\t\t}));\n\t}\n};\n\n// no hmr","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t143: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t} else installedChunks[chunkId] = 0;\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkfittrackee_client\"] = self[\"webpackChunkfittrackee_client\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [998], function() { return __webpack_require__(4970); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["authApi","axios","baseURL","getApiUrl","interceptors","request","use","config","controller","AbortController","signal","requestKey","removeRequestIfPending","pendingRequests","authToken","store","AUTH_USER_STORE","auth","headers","Authorization","error","Promise","reject","response","message","Map","generateRequestKey","method","url","params","data","JSON","stringify","join","has","get","abort","delete","disabledLanguages","loadLocaleMessages","locales","require","messages","keys","forEach","key","matched","match","length","includes","locale","default","createI18n","legacy","fallbackLocale","globalInjection","ctx","normalize","_normalize","interpolate","_interpolate","list","_list","plural","_plural","about","AboutTranslations","admin","AdministrationTranslations","api","ApiTranslations","buttons","ButtonsTranslations","common","CommonTranslations","dashboard","DashboardTranslations","ErrorTranslations","oauth2","OAuth2Translations","sports","SportsTranslations","statistics","StatisticsTranslations","user","UserTranslations","workouts","WorkoutsTranslations","register","ready","console","log","registered","cached","updatefound","updated","offline","_withScopeId","n","_pushScopeId","_popScopeId","_hoisted_1","id","_hoisted_2","class","_hoisted_3","_hoisted_4","_createElementVNode","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","href","target","rel","_defineComponent","__name","props","version","adminContact","setup","__props","toRefs","_ctx","_cache","_component_router_link","_resolveComponent","_openBlock","_createElementBlock","_createTextVNode","_toDisplayString","_unref","_createVNode","to","_withCtx","$t","_","_createCommentVNode","__exports__","emits","emit","useStore","authUser","computed","getters","isAuthenticated","language","ROOT_STORE","isMenuOpen","ref","openMenu","value","closeMenu","updateLanguage","option","dispatch","toString","logout","_component_Dropdown","onClick","$event","$router","push","_normalizeClass","capitalize","_createBlock","UserPicture","username","availableLanguages","options","selected","onSelected","ErrorImg","innerHTML","appConfig","appLoading","hideScrollBar","displayScrollButton","updateHideScrollBar","isScrolledToBottom","element","getBoundingClientRect","top","window","innerHeight","bottom","scroll","onscroll","document","querySelector","scrollToTop","scrollTo","behavior","setTimeout","initLanguage","navigatorLanguage","navigator","split","localeFromLanguage","e","onBeforeMount","onMounted","_component_Loader","_component_router_view","_Fragment","NavBar","onMenuInteraction","NoConfig","Footer","admin_contact","name","charLimit","disabled","type","Boolean","input","text","updateText","event","watch","_withDirectives","maxLenght","onInput","_vModelText","distance","unitFrom","useImperialUnits","digits","displayUnit","speed","strong","unitTo","units","defaultTarget","convertedDistance","convertDistance","parseFloat","toFixed","route","useRoute","isOpen","dropdownOptions","map","toggleDropdown","updateSelected","path","_renderSlot","$slots","_renderList","index","label","Array","isArray","subMessage","xmlns","x","y","viewBox","style","d","render","cx","cy","r","sportLabel","color","title","sportColors","inject","_normalizeStyle","fill","CyclingSport","CyclingTransport","CyclingVirtual","Hiking","MountainBiking","MountainBikingElectric","Rowing","Running","SkiingAlpine","SkiingCrossCountry","Snowshoes","Trail","Walking","script","strongMessage","errorMessages","onUnmounted","commit","_component_i18n_t","_component_ErrorMessage","_component_Card","content","keypath","customComponents","AlertMessage","Card","CustomTextArea","Distance","Dropdown","ErrorMessage","Loader","Modal","SportImage","clickOutsideDirective","mounted","binding","clickOutsideEvent","contains","body","addEventListener","unmounted","removeEventListener","undefined","Chart","BarElement","LineElement","PointElement","Legend","Title","Tooltip","Filler","BarController","CategoryScale","LineController","LinearScale","ChartDataLabels","app","createApp","App","provide","i18n","router","VueFullscreen","directive","component","mount","for","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","_hoisted_17","_hoisted_18","_hoisted_19","_hoisted_20","edition","useRouter","appData","reactive","max_users","max_single_file_size","max_zip_file_size","gpx_limit_import","updateForm","Object","getFileSizeInMB","onCancel","onSubmit","formData","assign","_withModifiers","min","step","icon","appStatistics","uploadDirSize","getReadableFileSize","uploads_dir_size","StatCard","users","size","suffix","AppStatsCards","is_registration_enabled","is_email_sending_enabled","t","useI18n","translatedSports","translateSports","SPORTS_STORE","updateSportStatus","isActive","_component_SportImage","sport","translatedLabel","is_active","danger","has_workouts","query","q","searchUsers","resetFilter","onKeyup","_withKeys","placeholder","trim","orderByList","defaultOrderBy","getQuery","USERS_STORE","pagination","loadUsers","queryParams","reloadUsers","updateUser","queryParam","queryValue","page","newQuery","UsersNameFilter","onFilterOnUsername","FilterSelects","sort","sortList","order_by","onUpdateSelect","email","formatDate","created_at","timezone","date_format","nb_workouts","Pagination","tabs","selectedTab","getPath","tab","toLocaleLowerCase","checked","UserHeader","UserProfileTabs","appLanguage","userLanguage","languageLabels","fistDayOfWeek","weekm","display_ascent","getDateFormat","imperial_units","loading","userForm","password","new_password","isSuccess","emailUpdate","formErrors","displayModal","invalidateForm","updateUserForm","updatePassword","updateNewPassword","updateProfile","payload","updateDisplayModal","deleteAccount","async","isSuccessValue","_component_Modal","onConfirmAction","onCancelAction","errors","required","onInvalid","PasswordInput","onUpdatePassword","onPasswordError","checkStrength","first_name","last_name","birth_date","location","bio","registrationDate","format","Date","updateBio","_component_CustomTextArea","onUpdateValue","fileSizeLimit","pictureFile","deleteUserPicture","updatePictureFile","files","updateUserPicture","picture","accept","timeZones","tzList","focusItemIndex","matchTimezone","toLowerCase","onMouseOver","onUpdateTimezone","onEnter","preventDefault","firstElementChild","openDropdown","onKeydown","ref_key","filter","tz","focus","onMouseover","autofocus","_hoisted_21","_hoisted_22","_hoisted_23","_hoisted_24","_hoisted_25","_hoisted_26","_hoisted_27","weekStart","imperialUnits","ascentData","dateFormatOptions","availableDateFormatOptions","toUTCString","updateTZ","updateAscentDisplay","updateImperialUnit","updateWeekM","lang","_vModelSelect","TimezoneDropdown","dateFormat","start","unit","status","oauth2_scopes","admin_oauth2_scopes","appForm","client_name","client_uri","client_description","redirect_uri","scopes","filtered_scopes","getScopes","redirect_uris","scope","OAUTH2_STORE","updateDescription","updateScopes","indexOf","splice","admin_scopes","description","onChange","client","loadApp","client_id","authorizeApp","response_type","state","code_challenge","code_challenge_method","afterCreation","revocationSuccessful","messageToDisplay","idCopied","secretCopied","clipboardSupport","loadClient","updateMessageToDisplay","forDelete","confirmAction","clientId","copyIdToClipboard","clipboard","writeText","copySecretToClipboard","client_secret","newValue","issued_at","website","clients","getClientsQuery","clientsQuery","getNumberQueryValue","defaultPage","loadClients","isEdition","defaultColor","sports_list","sportPayload","sport_id","stopped_speed_threshold","updateSportInEdition","is_active_for_user","resetSportPayload","isSportInEdition","sportId","updateColor","updateThreshold","updateIsActive","updateSport","resetSport","newIsLoading","src","alt","BikePic","About","workout","_component_Distance","workoutId","workout_date","formatDistance","addSuffix","with_gpx","StaticMap","moving","min_alt","max_alt","ascent","descent","per_page","initWorkoutsCount","loadWorkouts","WORKOUTS_STORE","moreWorkoutsExist","previous_workout","defaultOrder","loadMoreWorkouts","WorkoutCard","s","NoWorkouts","displayHARecord","sportColor","records","record","record_type","height","width","colors","datasets","angleOffset","radius","circumference","Math","PI","calculateStrokeDashOffset","percentage","returnCircleTransformValue","rotation","entries","stroke","transform","isHidden","togglePane","stopPropagation","_directive_click_outside","_resolveDirective","DonutChart","CalendarWorkout","getSportLabel","getSportColor","chartDatasets","getDonutDatasets","sportIdColors","displayedWorkoutCount","slice","CalendarWorkoutsChart","currentDay","endDate","startDate","weekStartingMonday","rows","getDays","day","days","i","addDays","isWeekEnd","filterWorkouts","isSameDay","getDateWithTZ","reverse","row","isSameMonth","today","isToday","CalendarWorkouts","localeOptions","calendarDates","getCalendarStartAndEnd","calendarWorkouts","getCalendarWorkouts","apiParams","from","end","displayNextMonth","addMonths","displayPreviousMonth","subMonths","CalendarHeader","onDisplayNextMonth","onDisplayPreviousMonth","CalendarDays","CalendarCells","date","chartParams","duration","startOfMonth","endOfMonth","selectedSportIds","StatChart","formatRecord","distanceUnitFrom","distanceUnitTo","ascentUnitFrom","ascentUnitTo","Error","workout_id","sortRecords","a","b","recordALabel","recordBLabel","getRecordsBySports","reduce","sportList","find","sportTranslatedLabel","getTranslatedRecords","translatedRecords","recordsBySport","RecordsCard","userTotalDuration","total_duration","totalDuration","get_duration","totalDistance","total_distance","totalAscent","total_ascent","nb_sports","isSelected","updateDisplayColumn","UserStatsCards","UserMonthStats","UserRecords","UserCalendar","Timeline","NotFound","action","LoginOrRegisterForm","getTabFromPath","regex","tag","replace","toUpperCase","routes","Dashboard","LoginOrRegister","children","Profile","UserInfos","UserPreferences","UserSportPreferences","UserApps","UserAppsList","UserApp","AddUserApp","AuthorizeUserApp","ProfileEdition","UserInfosEdition","UserAccountEdition","UserPictureEdition","UserPreferencesEdition","displaySegment","AdminMenu","AdminApplication","AdminSports","fromAdmin","AdminUsers","AboutView","NotFoundView","createRouter","history","createWebHistory","process","pathsWithoutAuthentication","pathsWithoutChecks","beforeEach","next","then","fullPath","catch","AuthUserActions","AuthUserGetters","AuthUserMutations","OAuth2Actions","OAuth2Getters","OAuth2Mutations","RootActions","RootGetters","RootMutations","SportsActions","SportsGetters","SportsMutation","StatisticsActions","StatisticsGetters","StatisticsMutations","UsersActions","UsersGetters","UsersMutations","ACTIONS","GETTERS","MUTATIONS","STATS_STORE","WorkoutsActions","WorkoutsGetters","WorkoutsMutations","deleteUserAccount","context","res","handleError","actions","finally","resetPassword","reset_password","activate","new_email","removeAuthUserData","localStorage","removeItem","token","auth_token","setItem","refreshUser","actionType","redirectUrl","form","FormData","append","authUserProfile","isRegistrationSuccess","mutations","authUserState","get_client","set","redirect_url","oAuth2State","setAttribute","application","root","enUS","sportsState","filterType","statisticsState","updatedUser","usersState","getWorkouts","segmentUrl","segmentId","segments","chart_data","gpx","file","notes","calendar_workouts","timeline_workouts","user_workouts","workoutData","concat","chartData","workoutsState","modules","authUserModule","oAuthModule","sportsModule","statsModule","usersModule","workoutsModule","createStore","VuexStore","defaultPerPage","defaultValue","getStringQueryValue","availableValues","locationQuery","queryOptions","defaultSort","order","workoutsPayloadKeys","getRange","stop","rangePagination","pages","currentPage","getStartDate","startOfWeek","weekStartsOn","startOfYear","incrementDate","addYears","dateInUTC","utcToZonedTime","monthStart","monthEnd","endOfWeek","formatWorkoutDate","dateTime","timeFormat","workout_time","availableDateFormats","dateStringFormats","de","en","fr","dateString","withTime","inputDate","l","df","suffixes","fileSize","asText","floor","pow","msg","errorInfo","m","availableLocales","sortSports","sportATranslatedLabel","sportBTranslatedLabel","activeStatus","sportsToInclude","dateFormats","week","chart","month","year","datasetKeys","getDateKeys","getStatisticsChartDataset","isLineChart","dataset","backgroundColor","borderColor","spanGaps","getDatasets","displayedSports","average_speed","total_descent","convertStatsValue","datasetKey","convertStatsDistance","formatStats","displayedSportsId","apiStats","userDateFormat","dayKeys","labels","sportsId","displayedSport","getStatsDateParams","timeFrame","subYears","endOfYear","updateChartParams","backward","subWeeks","addWeeks","ft","system","multiplier","mi","km","factors","metric","imperial","borderWidth","yAxisID","elevation","distance_labels","duration_labels","coordinates","latitude","longitude","total","count","perPage","onSelectUpdate","nb","buttonText","timer","errorDisplayed","displayError","clearTimeout","cursor","has_prev","navigate","has_next","active","setZxcvbnOptions","zxcvbnCommonPackage","zxcvbnEnPackage","zxcvbnFrPackage","zxcvbnDePackage","zxcvbnLangPackages","nl","zxcvbnPackage","graphs","adjacencyGraphs","dictionary","zxcvbnOptions","getPasswordStrength","strength","passwordScore","passwordStrength","passwordSuggestions","backgroundSize","calculatePasswordStrength","zxcvbnResult","zxcvbn","score","feedback","suggestions","newLanguageValue","newPassword","max","suggestion","showPassword","passwordValue","togglePassword","invalidPassword","minlength","_vModelDynamic","PasswordStrength","displayHover","imageUrl","backgroundImage","$props","$setup","$data","$options","_component_Chart","hideChartIfNoData","emptyStats","displayedData","args","updateDisplayData","fullStats","displayedSportIds","_component_BarChart","_mergeProps","barChartProps","formatDuration","totalSeconds","formatWithUnits","String","hours","padStart","minutes","seconds","formatTooltipValue","defineComponent","components","BarChart","getNumber","isNaN","getSum","getUnit","parse","responsive","maintainAspectRatio","animation","layout","padding","scales","stacked","grid","drawOnChartArea","ticks","maxTicksLimit","callback","afterFit","scale","plugins","datalabels","anchor","align","chartArea","display","formatter","dataIndex","datasetIndex","legend","tooltip","interaction","intersect","mode","position","tooltipItem","formattedValue","callbacks","parsed","footer","tooltipItems","sum","useBarChart","formattedStats","getStatistics","getApiParams","time","newParams","birthDate","displayUserEmailForm","newUserEmail","currentAction","resetUserPassword","confirmUserAccount","displayEmailForm","resetErrorsAndSuccess","email_to_confirm","hideEmailForm","updateUserEmail","newIsSuccess","_component_AlertMessage","go","getButtonText","registration_disabled","sendingEmailDisabled","resetFormData","pattern","maxlength","authUserPictureUrl","now","webpackContext","req","webpackContextResolve","__webpack_require__","o","code","resolve","module","exports","__webpack_module_cache__","moduleId","cachedModule","__webpack_modules__","call","deferred","O","result","chunkIds","fn","priority","notFulfilled","Infinity","fulfilled","j","every","getter","__esModule","leafPrototypes","getProto","getPrototypeOf","obj","__proto__","this","ns","create","def","current","getOwnPropertyNames","definition","defineProperty","enumerable","f","chunkId","all","promises","u","miniCssF","g","globalThis","Function","prop","prototype","hasOwnProperty","inProgress","dataWebpackPrefix","done","needAttach","scripts","getElementsByTagName","getAttribute","createElement","charset","timeout","nc","onScriptComplete","prev","onerror","onload","doneFns","parentNode","removeChild","bind","head","appendChild","Symbol","toStringTag","p","createStylesheet","fullhref","linkTag","onLinkComplete","errorType","realHref","err","findStylesheet","existingLinkTags","dataHref","existingStyleTags","loadStylesheet","installedCssChunks","miniCss","cssChunks","installedChunks","installedChunkData","promise","loadingEnded","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","self","__webpack_exports__"],"sourceRoot":""} \ No newline at end of file diff --git a/fittrackee/dist/static/js/reset.49874687.js b/fittrackee/dist/static/js/reset.eae5999b.js similarity index 99% rename from fittrackee/dist/static/js/reset.49874687.js rename to fittrackee/dist/static/js/reset.eae5999b.js index 31cbcd65..be972835 100644 --- a/fittrackee/dist/static/js/reset.49874687.js +++ b/fittrackee/dist/static/js/reset.eae5999b.js @@ -1,2 +1,2 @@ "use strict";(self["webpackChunkfittrackee_client"]=self["webpackChunkfittrackee_client"]||[]).push([[24],{3228:function(t,c,n){n.d(c,{Z:function(){return d}});var a=n(6252);const e={version:"1.1",id:"Capa_1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",x:"0px",y:"0px",viewBox:"0 0 345.834 345.834",style:{"enable-background":"new 0 0 345.834 345.834"},"xml:space":"preserve"},s=(0,a._)("g",null,[(0,a._)("path",{d:"M339.798,260.429c0.13-0.026,0.257-0.061,0.385-0.094c0.109-0.028,0.219-0.051,0.326-0.084\n\t\tc0.125-0.038,0.247-0.085,0.369-0.129c0.108-0.039,0.217-0.074,0.324-0.119c0.115-0.048,0.226-0.104,0.338-0.157\n\t\tc0.109-0.052,0.22-0.1,0.327-0.158c0.107-0.057,0.208-0.122,0.312-0.184c0.107-0.064,0.215-0.124,0.319-0.194\n\t\tc0.111-0.074,0.214-0.156,0.321-0.236c0.09-0.067,0.182-0.13,0.27-0.202c0.162-0.133,0.316-0.275,0.466-0.421\n\t\tc0.027-0.026,0.056-0.048,0.083-0.075c0.028-0.028,0.052-0.059,0.079-0.088c0.144-0.148,0.284-0.3,0.416-0.46\n\t\tc0.077-0.094,0.144-0.192,0.216-0.289c0.074-0.1,0.152-0.197,0.221-0.301c0.074-0.111,0.139-0.226,0.207-0.34\n\t\tc0.057-0.096,0.118-0.19,0.171-0.289c0.062-0.115,0.114-0.234,0.169-0.351c0.049-0.104,0.101-0.207,0.146-0.314\n\t\tc0.048-0.115,0.086-0.232,0.128-0.349c0.041-0.114,0.085-0.227,0.12-0.343c0.036-0.118,0.062-0.238,0.092-0.358\n\t\tc0.029-0.118,0.063-0.234,0.086-0.353c0.028-0.141,0.045-0.283,0.065-0.425c0.014-0.1,0.033-0.199,0.043-0.3\n\t\tc0.025-0.249,0.038-0.498,0.038-0.748V92.76c0-4.143-3.357-7.5-7.5-7.5h-236.25c-0.066,0-0.13,0.008-0.196,0.01\n\t\tc-0.143,0.004-0.285,0.01-0.427,0.022c-0.113,0.009-0.225,0.022-0.337,0.037c-0.128,0.016-0.255,0.035-0.382,0.058\n\t\tc-0.119,0.021-0.237,0.046-0.354,0.073c-0.119,0.028-0.238,0.058-0.356,0.092c-0.117,0.033-0.232,0.069-0.346,0.107\n\t\tc-0.117,0.04-0.234,0.082-0.349,0.128c-0.109,0.043-0.216,0.087-0.322,0.135c-0.118,0.053-0.235,0.11-0.351,0.169\n\t\tc-0.099,0.051-0.196,0.103-0.292,0.158c-0.116,0.066-0.23,0.136-0.343,0.208c-0.093,0.06-0.184,0.122-0.274,0.185\n\t\tc-0.106,0.075-0.211,0.153-0.314,0.235c-0.094,0.075-0.186,0.152-0.277,0.231c-0.09,0.079-0.179,0.158-0.266,0.242\n\t\tc-0.099,0.095-0.194,0.194-0.288,0.294c-0.047,0.05-0.097,0.094-0.142,0.145c-0.027,0.03-0.048,0.063-0.074,0.093\n\t\tc-0.094,0.109-0.182,0.223-0.27,0.338c-0.064,0.084-0.13,0.168-0.19,0.254c-0.078,0.112-0.15,0.227-0.222,0.343\n\t\tc-0.059,0.095-0.12,0.189-0.174,0.286c-0.063,0.112-0.118,0.227-0.175,0.342c-0.052,0.105-0.106,0.21-0.153,0.317\n\t\tc-0.049,0.113-0.092,0.23-0.135,0.345c-0.043,0.113-0.087,0.225-0.124,0.339c-0.037,0.115-0.067,0.232-0.099,0.349\n\t\tc-0.032,0.12-0.066,0.239-0.093,0.36c-0.025,0.113-0.042,0.228-0.062,0.342c-0.022,0.13-0.044,0.26-0.06,0.39\n\t\tc-0.013,0.108-0.019,0.218-0.027,0.328c-0.01,0.14-0.019,0.28-0.021,0.421c-0.001,0.041-0.006,0.081-0.006,0.122v46.252\n\t\tc0,4.143,3.357,7.5,7.5,7.5s7.5-3.357,7.5-7.5v-29.595l66.681,59.037c-0.348,0.245-0.683,0.516-0.995,0.827l-65.687,65.687v-49.288\n\t\tc0-4.143-3.357-7.5-7.5-7.5s-7.5,3.357-7.5,7.5v9.164h-38.75c-4.143,0-7.5,3.357-7.5,7.5s3.357,7.5,7.5,7.5h38.75v43.231\n\t\tc0,4.143,3.357,7.5,7.5,7.5h236.25c0.247,0,0.494-0.013,0.74-0.037c0.115-0.011,0.226-0.033,0.339-0.049\n\t\tC339.542,260.469,339.67,260.454,339.798,260.429z M330.834,234.967l-65.688-65.687c-0.042-0.042-0.087-0.077-0.13-0.117\n\t\tl49.383-41.897c3.158-2.68,3.546-7.412,0.866-10.571c-2.678-3.157-7.41-3.547-10.571-0.866l-84.381,71.59l-98.444-87.158h208.965\n\t\tV234.967z M185.878,179.888c0.535-0.535,0.969-1.131,1.308-1.765l28.051,24.835c1.418,1.255,3.194,1.885,4.972,1.885\n\t\tc1.726,0,3.451-0.593,4.853-1.781l28.587-24.254c0.26,0.38,0.553,0.743,0.89,1.08l65.687,65.687H120.191L185.878,179.888z"}),(0,a._)("path",{d:"M7.5,170.676h126.667c4.143,0,7.5-3.357,7.5-7.5s-3.357-7.5-7.5-7.5H7.5c-4.143,0-7.5,3.357-7.5,7.5\n\t\tS3.357,170.676,7.5,170.676z"}),(0,a._)("path",{d:"M20.625,129.345H77.5c4.143,0,7.5-3.357,7.5-7.5s-3.357-7.5-7.5-7.5H20.625c-4.143,0-7.5,3.357-7.5,7.5\n\t\tS16.482,129.345,20.625,129.345z"}),(0,a._)("path",{d:"M62.5,226.51h-55c-4.143,0-7.5,3.357-7.5,7.5s3.357,7.5,7.5,7.5h55c4.143,0,7.5-3.357,7.5-7.5S66.643,226.51,62.5,226.51z"})],-1),o=[s];function r(t,c,n,s,r,i){return(0,a.wg)(),(0,a.iD)("svg",e,o)}var i={name:"EmailSent"},l=n(3744);const u=(0,l.Z)(i,[["render",r]]);var d=u},5639:function(t,c,n){n.r(c),n.d(c,{default:function(){return S}});var a=n(6252),e=n(2262),s=n(3577),o=n(3228),r=n(2411);const i={id:"account-confirmation-email",class:"center-card with-margin"},l={key:0,class:"email-sent"},u={class:"email-sent-message"},d={key:1};var v=(0,a.aZ)({__name:"AccountConfirmationEmail",props:{action:null},setup(t){const c=t,{action:n}=(0,e.BK)(c);return(t,c)=>{const v=(0,a.up)("Card");return(0,a.wg)(),(0,a.iD)("div",i,["email-sent"===(0,e.SU)(n)?((0,a.wg)(),(0,a.iD)("div",l,[(0,a.Wm)(o.Z),(0,a._)("div",u,(0,s.zw)(t.$t("user.ACCOUNT_CONFIRMATION_SENT")),1)])):((0,a.wg)(),(0,a.iD)("div",d,[(0,a.Wm)(v,null,{title:(0,a.w5)((()=>[(0,a.Uk)((0,s.zw)(t.$t("user.RESENT_ACCOUNT_CONFIRMATION")),1)])),content:(0,a.w5)((()=>[(0,a.Wm)(r.Z,{action:(0,e.SU)(n)},null,8,["action"])])),_:1})]))])}}}),p=n(3744);const w=(0,p.Z)(v,[["__scopeId","data-v-66aca424"]]);var g=w;const _={id:"account-confirmation",class:"view"},h={class:"container"};var m=(0,a.aZ)({__name:"AccountConfirmationResendView",props:{action:null},setup(t){const c=t,{action:n}=(0,e.BK)(c);return(t,c)=>((0,a.wg)(),(0,a.iD)("div",_,[(0,a._)("div",h,[(0,a.Wm)(g,{action:(0,e.SU)(n)},null,8,["action"])])]))}});const k=(0,p.Z)(m,[["__scopeId","data-v-35aad344"]]);var S=k},1627:function(t,c,n){n.r(c),n.d(c,{default:function(){return A}});n(7658);var a=n(6252),e=n(2262),s=n(2201),o=n(3577),r=n(3228);const i={version:"1.1",id:"Layer_1",xmlns:"http://www.w3.org/2000/svg","xmlns:xlink":"http://www.w3.org/1999/xlink",x:"0px",y:"0px",viewBox:"0 0 512.001 512.001",style:{"enable-background":"new 0 0 512.001 512.001"},"xml:space":"preserve"},l=(0,a.uE)('',7),u=[l];function d(t,c,n,e,s,o){return(0,a.wg)(),(0,a.iD)("svg",i,u)}var v={name:"Password"},p=n(3744);const w=(0,p.Z)(v,[["render",d]]);var g=w;const _={id:"password-action-done",class:"center-card with-margin"},h={class:"password-message"},m={key:0};var k=(0,a.aZ)({__name:"PasswordActionDone",props:{action:null},setup(t){const c=t,{action:n}=(0,e.BK)(c);return(t,c)=>{const s=(0,a.up)("router-link"),i=(0,a.up)("i18n-t");return(0,a.wg)(),(0,a.iD)("div",_,["request-sent"===(0,e.SU)(n)?((0,a.wg)(),(0,a.j4)(r.Z,{key:0})):((0,a.wg)(),(0,a.j4)(g,{key:1})),(0,a._)("div",h,["request-sent"===(0,e.SU)(n)?((0,a.wg)(),(0,a.iD)("span",m,(0,o.zw)(t.$t("user.PASSWORD_SENT_EMAIL_TEXT")),1)):((0,a.wg)(),(0,a.j4)(i,{key:1,keypath:"user.PASSWORD_UPDATED"},{default:(0,a.w5)((()=>[(0,a.Wm)(s,{to:"/login"},{default:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(t.$t("common.HERE")),1)])),_:1})])),_:1}))])])}}});const S=(0,p.Z)(k,[["__scopeId","data-v-eac78356"]]);var C=S,f=n(2411);const x={id:"password-reset-request",class:"center-card with-margin"};var z=(0,a.aZ)({__name:"PasswordResetForm",props:{action:null,token:{default:""}},setup(t){const c=t,{action:n,token:s}=(0,e.BK)(c);return(t,c)=>{const r=(0,a.up)("Card");return(0,a.wg)(),(0,a.iD)("div",x,[(0,a.Wm)(r,null,{title:(0,a.w5)((()=>[(0,a.Uk)((0,o.zw)(t.$t("user.RESET_PASSWORD")),1)])),content:(0,a.w5)((()=>[(0,a.Wm)(f.Z,{action:(0,e.SU)(n),token:(0,e.SU)(s)},null,8,["action","token"])])),_:1})])}}});const U=(0,p.Z)(z,[["__scopeId","data-v-68377e44"]]);var Z=U;const y={id:"password-reset",class:"view"},D={class:"container"};var M=(0,a.aZ)({__name:"PasswordResetView",props:{action:null},setup(t){const c=t,n=(0,s.yj)(),o=(0,s.tv)(),{action:r}=(0,e.BK)(c),i=(0,a.Fl)((()=>n.query.token));return(0,a.wF)((()=>{"reset"!==c.action||i.value||o.push("/")})),(t,c)=>((0,a.wg)(),(0,a.iD)("div",y,[(0,a._)("div",D,[(0,e.SU)(r).startsWith("reset")?((0,a.wg)(),(0,a.j4)(Z,{key:0,action:(0,e.SU)(r),token:(0,e.SU)(i)},null,8,["action","token"])):((0,a.wg)(),(0,a.j4)(C,{key:1,action:(0,e.SU)(r)},null,8,["action"]))])]))}});const E=(0,p.Z)(M,[["__scopeId","data-v-a1cc55c4"]]);var A=E}}]); -//# sourceMappingURL=reset.49874687.js.map \ No newline at end of file +//# sourceMappingURL=reset.eae5999b.js.map \ No newline at end of file diff --git a/fittrackee/dist/static/js/reset.49874687.js.map b/fittrackee/dist/static/js/reset.eae5999b.js.map similarity index 99% rename from fittrackee/dist/static/js/reset.49874687.js.map rename to fittrackee/dist/static/js/reset.eae5999b.js.map index 7276e591..241156f2 100644 --- a/fittrackee/dist/static/js/reset.49874687.js.map +++ b/fittrackee/dist/static/js/reset.eae5999b.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/reset.49874687.js","mappings":"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","sources":["webpack://fittrackee_client/./src/components/Common/Images/EmailSent.vue","webpack://fittrackee_client/./src/components/Common/Images/EmailSent.vue?2d84","webpack://fittrackee_client/./src/components/User/AccountConfirmationEmail.vue?37ef","webpack://fittrackee_client/./src/components/User/AccountConfirmationEmail.vue","webpack://fittrackee_client/./src/views/user/AccountConfirmationResendView.vue?3fd8","webpack://fittrackee_client/./src/views/user/AccountConfirmationResendView.vue","webpack://fittrackee_client/./src/components/Common/Images/Password.vue","webpack://fittrackee_client/./src/components/Common/Images/Password.vue?2ae3","webpack://fittrackee_client/./src/components/User/PasswordReset/PasswordActionDone.vue?977e","webpack://fittrackee_client/./src/components/User/PasswordReset/PasswordActionDone.vue","webpack://fittrackee_client/./src/components/User/PasswordReset/PasswordResetForm.vue?e08b","webpack://fittrackee_client/./src/components/User/PasswordReset/PasswordResetForm.vue","webpack://fittrackee_client/./src/views/user/PasswordResetView.vue?1ecf","webpack://fittrackee_client/./src/views/user/PasswordResetView.vue"],"sourcesContent":["\n\n\n","import { render } from \"./EmailSent.vue?vue&type=template&id=3377e6a0\"\nimport script from \"./EmailSent.vue?vue&type=script&lang=js\"\nexport * from \"./EmailSent.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-66aca424\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"account-confirmation-email\",\n class: \"center-card with-margin\"\n}\nconst _hoisted_2 = {\n key: 0,\n class: \"email-sent\"\n}\nconst _hoisted_3 = { class: \"email-sent-message\" }\nconst _hoisted_4 = { key: 1 }\n\nimport { toRefs } from 'vue'\n\n import EmailSent from '@/components/Common/Images/EmailSent.vue'\n import UserAuthForm from '@/components/User/UserAuthForm.vue'\n\n interface Props {\n action: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'AccountConfirmationEmail',\n props: {\n action: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n action: string\n };\n\n \n\n const { action } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n const _component_Card = _resolveComponent(\"Card\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_unref(action) === 'email-sent')\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [\n _createVNode(EmailSent),\n _createElementVNode(\"div\", _hoisted_3, _toDisplayString(_ctx.$t('user.ACCOUNT_CONFIRMATION_SENT')), 1)\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_4, [\n _createVNode(_component_Card, null, {\n title: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('user.RESENT_ACCOUNT_CONFIRMATION')), 1)\n ]),\n content: _withCtx(() => [\n _createVNode(UserAuthForm, { action: _unref(action) }, null, 8, [\"action\"])\n ]),\n _: 1\n })\n ]))\n ]))\n}\n}\n\n})","import script from \"./AccountConfirmationEmail.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AccountConfirmationEmail.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./AccountConfirmationEmail.vue?vue&type=style&index=0&id=66aca424&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-66aca424\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-35aad344\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"account-confirmation\",\n class: \"view\"\n}\nconst _hoisted_2 = { class: \"container\" }\n\nimport { toRefs } from 'vue'\n\n import AccountConfirmationResend from '@/components/User/AccountConfirmationEmail.vue'\n interface Props {\n action: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'AccountConfirmationResendView',\n props: {\n action: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n action: string\n };\n\n \n const { action } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createVNode(AccountConfirmationResend, { action: _unref(action) }, null, 8, [\"action\"])\n ])\n ]))\n}\n}\n\n})","import script from \"./AccountConfirmationResendView.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AccountConfirmationResendView.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./AccountConfirmationResendView.vue?vue&type=style&index=0&id=35aad344&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-35aad344\"]])\n\nexport default __exports__","\n\n\n","import { render } from \"./Password.vue?vue&type=template&id=356e77a2\"\nimport script from \"./Password.vue?vue&type=script&lang=js\"\nexport * from \"./Password.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, createElementBlock as _createElementBlock, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, createElementVNode as _createElementVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-eac78356\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"password-action-done\",\n class: \"center-card with-margin\"\n}\nconst _hoisted_2 = { class: \"password-message\" }\nconst _hoisted_3 = { key: 0 }\n\nimport { toRefs } from 'vue'\n\n import EmailSent from '@/components/Common/Images/EmailSent.vue'\n import Password from '@/components/Common/Images/Password.vue'\n\n interface Props {\n action: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'PasswordActionDone',\n props: {\n action: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n action: string\n };\n\n \n\n const { action } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_i18n_t = _resolveComponent(\"i18n-t\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_unref(action) === 'request-sent')\n ? (_openBlock(), _createBlock(EmailSent, { key: 0 }))\n : (_openBlock(), _createBlock(Password, { key: 1 })),\n _createElementVNode(\"div\", _hoisted_2, [\n (_unref(action) === 'request-sent')\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_3, _toDisplayString(_ctx.$t('user.PASSWORD_SENT_EMAIL_TEXT')), 1))\n : (_openBlock(), _createBlock(_component_i18n_t, {\n key: 1,\n keypath: \"user.PASSWORD_UPDATED\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_router_link, { to: \"/login\" }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('common.HERE')), 1)\n ]),\n _: 1\n })\n ]),\n _: 1\n }))\n ])\n ]))\n}\n}\n\n})","import script from \"./PasswordActionDone.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./PasswordActionDone.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./PasswordActionDone.vue?vue&type=style&index=0&id=eac78356&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-eac78356\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, unref as _unref, createVNode as _createVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-68377e44\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"password-reset-request\",\n class: \"center-card with-margin\"\n}\n\nimport { toRefs, withDefaults } from 'vue'\n\n import UserAuthForm from '@/components/User/UserAuthForm.vue'\n\n interface Props {\n action: string\n token?: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'PasswordResetForm',\n props: {\n action: null,\n token: { default: '' }\n },\n setup(__props: any) {\n\nconst props = __props as { action: string, token: string };\n\n \n\n const { action, token } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n const _component_Card = _resolveComponent(\"Card\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_Card, null, {\n title: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('user.RESET_PASSWORD')), 1)\n ]),\n content: _withCtx(() => [\n _createVNode(UserAuthForm, {\n action: _unref(action),\n token: _unref(token)\n }, null, 8, [\"action\", \"token\"])\n ]),\n _: 1\n })\n ]))\n}\n}\n\n})","import script from \"./PasswordResetForm.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./PasswordResetForm.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./PasswordResetForm.vue?vue&type=style&index=0&id=68377e44&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-68377e44\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-a1cc55c4\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"password-reset\",\n class: \"view\"\n}\nconst _hoisted_2 = { class: \"container\" }\n\nimport { computed, toRefs, onBeforeMount } from 'vue'\n import { useRoute, useRouter } from 'vue-router'\n\n import PasswordEmailSent from '@/components/User/PasswordReset/PasswordActionDone.vue'\n import PasswordResetRequest from '@/components/User/PasswordReset/PasswordResetForm.vue'\n\n interface Props {\n action: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'PasswordResetView',\n props: {\n action: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n action: string\n };\n\n \n\n const route = useRoute()\n const router = useRouter()\n\n const { action } = toRefs(props)\n const token = computed(() => route.query.token)\n\n onBeforeMount(() => {\n if (props.action === 'reset' && !token.value) {\n router.push('/')\n }\n })\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n (_unref(action).startsWith('reset'))\n ? (_openBlock(), _createBlock(PasswordResetRequest, {\n key: 0,\n action: _unref(action),\n token: _unref(token)\n }, null, 8, [\"action\", \"token\"]))\n : (_openBlock(), _createBlock(PasswordEmailSent, {\n key: 1,\n action: _unref(action)\n }, null, 8, [\"action\"]))\n ])\n ]))\n}\n}\n\n})","import script from \"./PasswordResetView.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./PasswordResetView.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./PasswordResetView.vue?vue&type=style&index=0&id=a1cc55c4&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-a1cc55c4\"]])\n\nexport default __exports__"],"names":["version","id","xmlns","x","y","viewBox","style","_createElementVNode","d","_hoisted_2","_createElementBlock","_hoisted_1","name","__exports__","render","class","key","_hoisted_3","_hoisted_4","_defineComponent","__name","props","action","setup","__props","toRefs","_ctx","_cache","_component_Card","_resolveComponent","_openBlock","_unref","_createVNode","EmailSent","_toDisplayString","$t","title","_withCtx","_createTextVNode","content","UserAuthForm","_","AccountConfirmationResend","_component_router_link","_component_i18n_t","_createBlock","Password","keypath","default","to","token","route","useRoute","router","useRouter","computed","query","onBeforeMount","value","push","startsWith","PasswordResetRequest","PasswordEmailSent"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/reset.eae5999b.js","mappings":"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","sources":["webpack://fittrackee_client/./src/components/Common/Images/EmailSent.vue","webpack://fittrackee_client/./src/components/Common/Images/EmailSent.vue?2d84","webpack://fittrackee_client/./src/components/User/AccountConfirmationEmail.vue?37ef","webpack://fittrackee_client/./src/components/User/AccountConfirmationEmail.vue","webpack://fittrackee_client/./src/views/user/AccountConfirmationResendView.vue?3fd8","webpack://fittrackee_client/./src/views/user/AccountConfirmationResendView.vue","webpack://fittrackee_client/./src/components/Common/Images/Password.vue","webpack://fittrackee_client/./src/components/Common/Images/Password.vue?2ae3","webpack://fittrackee_client/./src/components/User/PasswordReset/PasswordActionDone.vue?977e","webpack://fittrackee_client/./src/components/User/PasswordReset/PasswordActionDone.vue","webpack://fittrackee_client/./src/components/User/PasswordReset/PasswordResetForm.vue?e08b","webpack://fittrackee_client/./src/components/User/PasswordReset/PasswordResetForm.vue","webpack://fittrackee_client/./src/views/user/PasswordResetView.vue?1ecf","webpack://fittrackee_client/./src/views/user/PasswordResetView.vue"],"sourcesContent":["\n\n\n","import { render } from \"./EmailSent.vue?vue&type=template&id=3377e6a0\"\nimport script from \"./EmailSent.vue?vue&type=script&lang=js\"\nexport * from \"./EmailSent.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-66aca424\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"account-confirmation-email\",\n class: \"center-card with-margin\"\n}\nconst _hoisted_2 = {\n key: 0,\n class: \"email-sent\"\n}\nconst _hoisted_3 = { class: \"email-sent-message\" }\nconst _hoisted_4 = { key: 1 }\n\nimport { toRefs } from 'vue'\n\n import EmailSent from '@/components/Common/Images/EmailSent.vue'\n import UserAuthForm from '@/components/User/UserAuthForm.vue'\n\n interface Props {\n action: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'AccountConfirmationEmail',\n props: {\n action: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n action: string\n };\n\n \n\n const { action } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n const _component_Card = _resolveComponent(\"Card\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_unref(action) === 'email-sent')\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [\n _createVNode(EmailSent),\n _createElementVNode(\"div\", _hoisted_3, _toDisplayString(_ctx.$t('user.ACCOUNT_CONFIRMATION_SENT')), 1)\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_4, [\n _createVNode(_component_Card, null, {\n title: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('user.RESENT_ACCOUNT_CONFIRMATION')), 1)\n ]),\n content: _withCtx(() => [\n _createVNode(UserAuthForm, { action: _unref(action) }, null, 8, [\"action\"])\n ]),\n _: 1\n })\n ]))\n ]))\n}\n}\n\n})","import script from \"./AccountConfirmationEmail.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AccountConfirmationEmail.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./AccountConfirmationEmail.vue?vue&type=style&index=0&id=66aca424&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-66aca424\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-35aad344\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"account-confirmation\",\n class: \"view\"\n}\nconst _hoisted_2 = { class: \"container\" }\n\nimport { toRefs } from 'vue'\n\n import AccountConfirmationResend from '@/components/User/AccountConfirmationEmail.vue'\n interface Props {\n action: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'AccountConfirmationResendView',\n props: {\n action: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n action: string\n };\n\n \n const { action } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createVNode(AccountConfirmationResend, { action: _unref(action) }, null, 8, [\"action\"])\n ])\n ]))\n}\n}\n\n})","import script from \"./AccountConfirmationResendView.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./AccountConfirmationResendView.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./AccountConfirmationResendView.vue?vue&type=style&index=0&id=35aad344&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-35aad344\"]])\n\nexport default __exports__","\n\n\n","import { render } from \"./Password.vue?vue&type=template&id=356e77a2\"\nimport script from \"./Password.vue?vue&type=script&lang=js\"\nexport * from \"./Password.vue?vue&type=script&lang=js\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['render',render]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, toDisplayString as _toDisplayString, createElementBlock as _createElementBlock, createTextVNode as _createTextVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, createElementVNode as _createElementVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-eac78356\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"password-action-done\",\n class: \"center-card with-margin\"\n}\nconst _hoisted_2 = { class: \"password-message\" }\nconst _hoisted_3 = { key: 0 }\n\nimport { toRefs } from 'vue'\n\n import EmailSent from '@/components/Common/Images/EmailSent.vue'\n import Password from '@/components/Common/Images/Password.vue'\n\n interface Props {\n action: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'PasswordActionDone',\n props: {\n action: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n action: string\n };\n\n \n\n const { action } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_i18n_t = _resolveComponent(\"i18n-t\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_unref(action) === 'request-sent')\n ? (_openBlock(), _createBlock(EmailSent, { key: 0 }))\n : (_openBlock(), _createBlock(Password, { key: 1 })),\n _createElementVNode(\"div\", _hoisted_2, [\n (_unref(action) === 'request-sent')\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_3, _toDisplayString(_ctx.$t('user.PASSWORD_SENT_EMAIL_TEXT')), 1))\n : (_openBlock(), _createBlock(_component_i18n_t, {\n key: 1,\n keypath: \"user.PASSWORD_UPDATED\"\n }, {\n default: _withCtx(() => [\n _createVNode(_component_router_link, { to: \"/login\" }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('common.HERE')), 1)\n ]),\n _: 1\n })\n ]),\n _: 1\n }))\n ])\n ]))\n}\n}\n\n})","import script from \"./PasswordActionDone.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./PasswordActionDone.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./PasswordActionDone.vue?vue&type=style&index=0&id=eac78356&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-eac78356\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, unref as _unref, createVNode as _createVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-68377e44\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"password-reset-request\",\n class: \"center-card with-margin\"\n}\n\nimport { toRefs, withDefaults } from 'vue'\n\n import UserAuthForm from '@/components/User/UserAuthForm.vue'\n\n interface Props {\n action: string\n token?: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'PasswordResetForm',\n props: {\n action: null,\n token: { default: '' }\n },\n setup(__props: any) {\n\nconst props = __props as { action: string, token: string };\n\n \n\n const { action, token } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n const _component_Card = _resolveComponent(\"Card\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_Card, null, {\n title: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('user.RESET_PASSWORD')), 1)\n ]),\n content: _withCtx(() => [\n _createVNode(UserAuthForm, {\n action: _unref(action),\n token: _unref(token)\n }, null, 8, [\"action\", \"token\"])\n ]),\n _: 1\n })\n ]))\n}\n}\n\n})","import script from \"./PasswordResetForm.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./PasswordResetForm.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./PasswordResetForm.vue?vue&type=style&index=0&id=68377e44&scoped=true&lang=scss\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-68377e44\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-a1cc55c4\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"password-reset\",\n class: \"view\"\n}\nconst _hoisted_2 = { class: \"container\" }\n\nimport { computed, toRefs, onBeforeMount } from 'vue'\n import { useRoute, useRouter } from 'vue-router'\n\n import PasswordEmailSent from '@/components/User/PasswordReset/PasswordActionDone.vue'\n import PasswordResetRequest from '@/components/User/PasswordReset/PasswordResetForm.vue'\n\n interface Props {\n action: string\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'PasswordResetView',\n props: {\n action: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n action: string\n };\n\n \n\n const route = useRoute()\n const router = useRouter()\n\n const { action } = toRefs(props)\n const token = computed(() => route.query.token)\n\n onBeforeMount(() => {\n if (props.action === 'reset' && !token.value) {\n router.push('/')\n }\n })\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n (_unref(action).startsWith('reset'))\n ? (_openBlock(), _createBlock(PasswordResetRequest, {\n key: 0,\n action: _unref(action),\n token: _unref(token)\n }, null, 8, [\"action\", \"token\"]))\n : (_openBlock(), _createBlock(PasswordEmailSent, {\n key: 1,\n action: _unref(action)\n }, null, 8, [\"action\"]))\n ])\n ]))\n}\n}\n\n})","import script from \"./PasswordResetView.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./PasswordResetView.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./PasswordResetView.vue?vue&type=style&index=0&id=a1cc55c4&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-a1cc55c4\"]])\n\nexport default __exports__"],"names":["version","id","xmlns","x","y","viewBox","style","_createElementVNode","d","_hoisted_2","_createElementBlock","_hoisted_1","name","__exports__","render","class","key","_hoisted_3","_hoisted_4","_defineComponent","__name","props","action","setup","__props","toRefs","_ctx","_cache","_component_Card","_resolveComponent","_openBlock","_unref","_createVNode","EmailSent","_toDisplayString","$t","title","_withCtx","_createTextVNode","content","UserAuthForm","_","AccountConfirmationResend","_component_router_link","_component_i18n_t","_createBlock","Password","keypath","default","to","token","route","useRoute","router","useRouter","computed","query","onBeforeMount","value","push","startsWith","PasswordResetRequest","PasswordEmailSent"],"sourceRoot":""} \ No newline at end of file diff --git a/fittrackee/dist/static/js/statistics.5231fa2f.js b/fittrackee/dist/static/js/statistics.7cce80c4.js similarity index 98% rename from fittrackee/dist/static/js/statistics.5231fa2f.js rename to fittrackee/dist/static/js/statistics.7cce80c4.js index 081045fc..cf418832 100644 --- a/fittrackee/dist/static/js/statistics.5231fa2f.js +++ b/fittrackee/dist/static/js/statistics.7cce80c4.js @@ -1,2 +1,2 @@ "use strict";(self["webpackChunkfittrackee_client"]=self["webpackChunkfittrackee_client"]||[]).push([[193],{7885:function(e,s,t){t.r(s),t.d(s,{default:function(){return A}});var a=t(6252),r=t(2262),l=t(3577),o=(t(7658),t(9150)),n=t(436);const c={class:"chart-menu"},i={class:"chart-arrow"},u={class:"time-frames custom-checkboxes-group"},d={class:"time-frames-checkboxes custom-checkboxes"},p=["id","name","checked","onInput"],m={class:"chart-arrow"};var v=(0,a.aZ)({__name:"StatsMenu",emits:["arrowClick","timeFrameUpdate"],setup(e,{emit:s}){const t=(0,r.iH)("month"),o=["week","month","year"];function n(e){t.value=e,s("timeFrameUpdate",e)}return(e,r)=>((0,a.wg)(),(0,a.iD)("div",c,[(0,a._)("div",i,[(0,a._)("i",{class:"fa fa-chevron-left","aria-hidden":"true",onClick:r[0]||(r[0]=e=>s("arrowClick",!0))})]),(0,a._)("div",u,[(0,a._)("div",d,[((0,a.wg)(),(0,a.iD)(a.HY,null,(0,a.Ko)(o,(s=>(0,a._)("div",{class:"time-frame custom-checkbox",key:s},[(0,a._)("label",null,[(0,a._)("input",{type:"radio",id:s,name:s,checked:t.value===s,onInput:e=>n(s)},null,40,p),(0,a._)("span",null,(0,l.zw)(e.$t(`statistics.TIME_FRAMES.${s}`)),1)])]))),64))])]),(0,a._)("div",m,[(0,a._)("i",{class:"fa fa-chevron-right","aria-hidden":"true",onClick:r[1]||(r[1]=e=>s("arrowClick",!1))})])]))}}),k=t(3744);const _=(0,k.Z)(v,[["__scopeId","data-v-22d55de2"]]);var S=_,w=t(631);const f={class:"sports-menu"},h=["id","name","checked","onInput"],U={class:"sport-label"};var b=(0,a.aZ)({__name:"StatsSportsMenu",props:{userSports:null,selectedSportIds:{default:()=>[]}},emits:["selectedSportIdsUpdate"],setup(e,{emit:s}){const t=e,{t:n}=(0,o.QT)(),c=(0,a.f3)("sportColors"),{selectedSportIds:i}=(0,r.BK)(t),u=(0,a.Fl)((()=>(0,w.xH)(t.userSports,n)));function d(e){s("selectedSportIdsUpdate",e)}return(e,s)=>{const t=(0,a.up)("SportImage");return(0,a.wg)(),(0,a.iD)("div",f,[((0,a.wg)(!0),(0,a.iD)(a.HY,null,(0,a.Ko)((0,r.SU)(u),(e=>((0,a.wg)(),(0,a.iD)("label",{type:"checkbox",key:e.id,style:(0,l.j5)({color:e.color?e.color:(0,r.SU)(c)[e.label]})},[(0,a._)("input",{type:"checkbox",id:e.id,name:e.label,checked:(0,r.SU)(i).includes(e.id),onInput:s=>d(e.id)},null,40,h),(0,a.Wm)(t,{"sport-label":e.label,color:e.color},null,8,["sport-label","color"]),(0,a._)("span",U,(0,l.zw)(e.translatedLabel),1)],4)))),128))])}}});const I=b;var g=I,T=t(9318);const y={key:0,id:"user-statistics"};var C=(0,a.aZ)({__name:"index",props:{sports:null,user:null},setup(e){const s=e,{t:t}=(0,o.QT)(),{sports:l,user:c}=(0,r.BK)(s),i=(0,r.iH)("month"),u=(0,r.iH)(v(i.value)),d=(0,a.Fl)((()=>(0,w.xH)(s.sports,t))),p=(0,r.iH)(_(s.sports));function m(e){i.value=e,u.value=v(i.value)}function v(e){return(0,T.aZ)(new Date,e,s.user.weekm)}function k(e){u.value=(0,T.FN)(u.value,e,s.user.weekm)}function _(e){return e.map((e=>e.id))}function f(e){p.value.includes(e)?p.value=p.value.filter((s=>s!==e)):p.value.push(e)}return(0,a.YP)((()=>s.sports),(e=>{p.value=_(e)})),(e,s)=>(0,r.SU)(d)?((0,a.wg)(),(0,a.iD)("div",y,[(0,a.Wm)(S,{onTimeFrameUpdate:m,onArrowClick:k}),(0,a.Wm)(n.Z,{sports:(0,r.SU)(l),user:(0,r.SU)(c),chartParams:u.value,"displayed-sport-ids":p.value,fullStats:!0},null,8,["sports","user","chartParams","displayed-sport-ids"]),(0,a.Wm)(g,{"selected-sport-ids":p.value,"user-sports":(0,r.SU)(l),onSelectedSportIdsUpdate:f},null,8,["selected-sport-ids","user-sports"])])):(0,a.kq)("",!0)}});const F=(0,k.Z)(C,[["__scopeId","data-v-30799d13"]]);var Z=F,x=t(5630),D=t(5801),H=t(9917);const E={id:"statistics",class:"view"},R={key:0,class:"container"};var W=(0,a.aZ)({__name:"StatisticsView",setup(e){const s=(0,H.o)(),t=(0,a.Fl)((()=>s.getters[D.YN.GETTERS.AUTH_USER_PROFILE])),o=(0,a.Fl)((()=>s.getters[D.O8.GETTERS.SPORTS].filter((e=>t.value.sports_list.includes(e.id)))));return(e,s)=>{const n=(0,a.up)("Card");return(0,a.wg)(),(0,a.iD)("div",E,[(0,r.SU)(t).username?((0,a.wg)(),(0,a.iD)("div",R,[(0,a.Wm)(n,null,{title:(0,a.w5)((()=>[(0,a.Uk)((0,l.zw)(e.$t("statistics.STATISTICS")),1)])),content:(0,a.w5)((()=>[(0,a.Wm)(Z,{class:(0,l.C_)({"stats-disabled":0===(0,r.SU)(t).nb_workouts}),user:(0,r.SU)(t),sports:(0,r.SU)(o)},null,8,["class","user","sports"])])),_:1}),0===(0,r.SU)(t).nb_workouts?((0,a.wg)(),(0,a.j4)(x.Z,{key:0})):(0,a.kq)("",!0)])):(0,a.kq)("",!0)])}}});const P=(0,k.Z)(W,[["__scopeId","data-v-2e341d4e"]]);var A=P}}]); -//# sourceMappingURL=statistics.5231fa2f.js.map \ No newline at end of file +//# sourceMappingURL=statistics.7cce80c4.js.map \ No newline at end of file diff --git a/fittrackee/dist/static/js/statistics.5231fa2f.js.map b/fittrackee/dist/static/js/statistics.7cce80c4.js.map similarity index 99% rename from fittrackee/dist/static/js/statistics.5231fa2f.js.map rename to fittrackee/dist/static/js/statistics.7cce80c4.js.map index 8df2e738..59d92f96 100644 --- a/fittrackee/dist/static/js/statistics.5231fa2f.js.map +++ b/fittrackee/dist/static/js/statistics.7cce80c4.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/statistics.5231fa2f.js","mappings":"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","sources":["webpack://fittrackee_client/./src/components/Statistics/StatsMenu.vue?b88a","webpack://fittrackee_client/./src/components/Statistics/StatsMenu.vue","webpack://fittrackee_client/./src/components/Statistics/StatsSportsMenu.vue?57e4","webpack://fittrackee_client/./src/components/Statistics/StatsSportsMenu.vue","webpack://fittrackee_client/./src/components/Statistics/index.vue?2efa","webpack://fittrackee_client/./src/components/Statistics/index.vue","webpack://fittrackee_client/./src/views/StatisticsView.vue?9d34","webpack://fittrackee_client/./src/views/StatisticsView.vue"],"sourcesContent":["import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-22d55de2\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"chart-menu\" }\nconst _hoisted_2 = { class: \"chart-arrow\" }\nconst _hoisted_3 = { class: \"time-frames custom-checkboxes-group\" }\nconst _hoisted_4 = { class: \"time-frames-checkboxes custom-checkboxes\" }\nconst _hoisted_5 = [\"id\", \"name\", \"checked\", \"onInput\"]\nconst _hoisted_6 = { class: \"chart-arrow\" }\n\nimport { ref } from 'vue'\n\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'StatsMenu',\n emits: ['arrowClick', 'timeFrameUpdate'],\n setup(__props, { emit }) {\n\n \n\n const selectedTimeFrame = ref('month')\n const timeFrames = ['week', 'month', 'year']\n\n function onUpdateTimeFrame(timeFrame: string) {\n selectedTimeFrame.value = timeFrame\n emit('timeFrameUpdate', timeFrame)\n }\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"i\", {\n class: \"fa fa-chevron-left\",\n \"aria-hidden\": \"true\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (emit('arrowClick', true)))\n })\n ]),\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList(timeFrames, (frame) => {\n return _createElementVNode(\"div\", {\n class: \"time-frame custom-checkbox\",\n key: frame\n }, [\n _createElementVNode(\"label\", null, [\n _createElementVNode(\"input\", {\n type: \"radio\",\n id: frame,\n name: frame,\n checked: selectedTimeFrame.value === frame,\n onInput: ($event: any) => (onUpdateTimeFrame(frame))\n }, null, 40, _hoisted_5),\n _createElementVNode(\"span\", null, _toDisplayString(_ctx.$t(`statistics.TIME_FRAMES.${frame}`)), 1)\n ])\n ])\n }), 64))\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_6, [\n _createElementVNode(\"i\", {\n class: \"fa fa-chevron-right\",\n \"aria-hidden\": \"true\",\n onClick: _cache[1] || (_cache[1] = ($event: any) => (emit('arrowClick', false)))\n })\n ])\n ]))\n}\n}\n\n})","import script from \"./StatsMenu.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./StatsMenu.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./StatsMenu.vue?vue&type=style&index=0&id=22d55de2&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-22d55de2\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, toDisplayString as _toDisplayString, normalizeStyle as _normalizeStyle } from \"vue\"\n\nconst _hoisted_1 = { class: \"sports-menu\" }\nconst _hoisted_2 = [\"id\", \"name\", \"checked\", \"onInput\"]\nconst _hoisted_3 = { class: \"sport-label\" }\n\nimport { ComputedRef, computed, inject, withDefaults, toRefs } from 'vue'\n import { useI18n } from 'vue-i18n'\n\n import { ISport, ITranslatedSport } from '@/types/sports'\n import { translateSports } from '@/utils/sports'\n\n interface Props {\n userSports: ISport[]\n selectedSportIds?: number[]\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'StatsSportsMenu',\n props: {\n userSports: null,\n selectedSportIds: { default: () => [] }\n },\n emits: ['selectedSportIdsUpdate'],\n setup(__props: any, { emit }) {\n\nconst props = __props as { userSports: ISport[], selectedSportIds: number[] };\n\n \n\n \n\n const { t } = useI18n()\n\n const sportColors = inject('sportColors')\n const { selectedSportIds } = toRefs(props)\n const translatedSports: ComputedRef = computed(() =>\n translateSports(props.userSports, t)\n )\n\n function updateSelectedSportIds(sportId: number) {\n emit('selectedSportIdsUpdate', sportId)\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _component_SportImage = _resolveComponent(\"SportImage\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(translatedSports), (sport) => {\n return (_openBlock(), _createElementBlock(\"label\", {\n type: \"checkbox\",\n key: sport.id,\n style: _normalizeStyle({ color: sport.color ? sport.color : _unref(sportColors)[sport.label] })\n }, [\n _createElementVNode(\"input\", {\n type: \"checkbox\",\n id: sport.id,\n name: sport.label,\n checked: _unref(selectedSportIds).includes(sport.id),\n onInput: ($event: any) => (updateSelectedSportIds(sport.id))\n }, null, 40, _hoisted_2),\n _createVNode(_component_SportImage, {\n \"sport-label\": sport.label,\n color: sport.color\n }, null, 8, [\"sport-label\", \"color\"]),\n _createElementVNode(\"span\", _hoisted_3, _toDisplayString(sport.translatedLabel), 1)\n ], 4))\n }), 128))\n ]))\n}\n}\n\n})","import script from \"./StatsSportsMenu.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./StatsSportsMenu.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./StatsSportsMenu.vue?vue&type=style&index=0&id=31a8ca60&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-30799d13\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n key: 0,\n id: \"user-statistics\"\n}\n\nimport { ComputedRef, Ref, computed, ref, toRefs, watch } from 'vue'\n import { useI18n } from 'vue-i18n'\n\n import StatChart from '@/components/Common/StatsChart/index.vue'\n import StatsMenu from '@/components/Statistics/StatsMenu.vue'\n import SportsMenu from '@/components/Statistics/StatsSportsMenu.vue'\n import { ISport, ITranslatedSport } from '@/types/sports'\n import { IStatisticsDateParams } from '@/types/statistics'\n import { IAuthUserProfile } from '@/types/user'\n import { translateSports } from '@/utils/sports'\n import { getStatsDateParams, updateChartParams } from '@/utils/statistics'\n\n interface Props {\n sports: ISport[]\n user: IAuthUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'index',\n props: {\n sports: null,\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n sports: ISport[]\n user: IAuthUserProfile\n };\n\n \n\n const { t } = useI18n()\n\n const { sports, user } = toRefs(props)\n const selectedTimeFrame = ref('month')\n const chartParams: Ref = ref(\n getChartParams(selectedTimeFrame.value)\n )\n const translatedSports: ComputedRef = computed(() =>\n translateSports(props.sports, t)\n )\n const selectedSportIds: Ref = ref(getSports(props.sports))\n\n function updateTimeFrame(timeFrame: string) {\n selectedTimeFrame.value = timeFrame\n chartParams.value = getChartParams(selectedTimeFrame.value)\n }\n function getChartParams(timeFrame: string): IStatisticsDateParams {\n return getStatsDateParams(new Date(), timeFrame, props.user.weekm)\n }\n function handleOnClickArrows(backward: boolean) {\n chartParams.value = updateChartParams(\n chartParams.value,\n backward,\n props.user.weekm\n )\n }\n function getSports(sports: ISport[]) {\n return sports.map((sport) => sport.id)\n }\n function updateSelectedSportIds(sportId: number) {\n if (selectedSportIds.value.includes(sportId)) {\n selectedSportIds.value = selectedSportIds.value.filter(\n (id) => id !== sportId\n )\n } else {\n selectedSportIds.value.push(sportId)\n }\n }\n\n watch(\n () => props.sports,\n (newSports) => {\n selectedSportIds.value = getSports(newSports)\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_unref(translatedSports))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(StatsMenu, {\n onTimeFrameUpdate: updateTimeFrame,\n onArrowClick: handleOnClickArrows\n }),\n _createVNode(StatChart, {\n sports: _unref(sports),\n user: _unref(user),\n chartParams: chartParams.value,\n \"displayed-sport-ids\": selectedSportIds.value,\n fullStats: true\n }, null, 8, [\"sports\", \"user\", \"chartParams\", \"displayed-sport-ids\"]),\n _createVNode(SportsMenu, {\n \"selected-sport-ids\": selectedSportIds.value,\n \"user-sports\": _unref(sports),\n onSelectedSportIdsUpdate: updateSelectedSportIds\n }, null, 8, [\"selected-sport-ids\", \"user-sports\"])\n ]))\n : _createCommentVNode(\"\", true)\n}\n}\n\n})","import script from \"./index.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./index.vue?vue&type=style&index=0&id=30799d13&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-30799d13\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, normalizeClass as _normalizeClass, createVNode as _createVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-2e341d4e\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"statistics\",\n class: \"view\"\n}\nconst _hoisted_2 = {\n key: 0,\n class: \"container\"\n}\n\nimport { ComputedRef, computed } from 'vue'\n\n import Statistics from '@/components/Statistics/index.vue'\n import NoWorkouts from '@/components/Workouts/NoWorkouts.vue'\n import { AUTH_USER_STORE, SPORTS_STORE } from '@/store/constants'\n import { ISport } from '@/types/sports'\n import { IAuthUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'StatisticsView',\n setup(__props) {\n\n const store = useStore()\n\n const authUser: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.AUTH_USER_PROFILE]\n )\n const sports: ComputedRef = computed(() =>\n store.getters[SPORTS_STORE.GETTERS.SPORTS].filter((sport) =>\n authUser.value.sports_list.includes(sport.id)\n )\n )\n\nreturn (_ctx: any,_cache: any) => {\n const _component_Card = _resolveComponent(\"Card\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_unref(authUser).username)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [\n _createVNode(_component_Card, null, {\n title: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('statistics.STATISTICS')), 1)\n ]),\n content: _withCtx(() => [\n _createVNode(Statistics, {\n class: _normalizeClass({ 'stats-disabled': _unref(authUser).nb_workouts === 0 }),\n user: _unref(authUser),\n sports: _unref(sports)\n }, null, 8, [\"class\", \"user\", \"sports\"])\n ]),\n _: 1\n }),\n (_unref(authUser).nb_workouts === 0)\n ? (_openBlock(), _createBlock(NoWorkouts, { key: 0 }))\n : _createCommentVNode(\"\", true)\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n}\n}\n\n})","import script from \"./StatisticsView.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./StatisticsView.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./StatisticsView.vue?vue&type=style&index=0&id=2e341d4e&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-2e341d4e\"]])\n\nexport default __exports__"],"names":["_hoisted_1","class","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_defineComponent","__name","emits","setup","__props","emit","selectedTimeFrame","ref","timeFrames","onUpdateTimeFrame","timeFrame","value","_ctx","_cache","_openBlock","_createElementBlock","_createElementVNode","onClick","$event","_Fragment","_renderList","frame","key","type","id","name","checked","onInput","_toDisplayString","$t","__exports__","props","userSports","selectedSportIds","default","t","useI18n","sportColors","inject","toRefs","translatedSports","computed","translateSports","updateSelectedSportIds","sportId","_component_SportImage","_resolveComponent","_unref","sport","style","_normalizeStyle","color","label","includes","_createVNode","translatedLabel","sports","user","chartParams","getChartParams","getSports","updateTimeFrame","getStatsDateParams","Date","weekm","handleOnClickArrows","backward","updateChartParams","map","filter","push","watch","newSports","StatsMenu","onTimeFrameUpdate","onArrowClick","StatChart","fullStats","SportsMenu","onSelectedSportIdsUpdate","_createCommentVNode","store","useStore","authUser","getters","AUTH_USER_STORE","SPORTS_STORE","sports_list","_component_Card","username","title","_withCtx","_createTextVNode","content","Statistics","_normalizeClass","nb_workouts","_","_createBlock","NoWorkouts"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/statistics.7cce80c4.js","mappings":"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","sources":["webpack://fittrackee_client/./src/components/Statistics/StatsMenu.vue?b88a","webpack://fittrackee_client/./src/components/Statistics/StatsMenu.vue","webpack://fittrackee_client/./src/components/Statistics/StatsSportsMenu.vue?57e4","webpack://fittrackee_client/./src/components/Statistics/StatsSportsMenu.vue","webpack://fittrackee_client/./src/components/Statistics/index.vue?2efa","webpack://fittrackee_client/./src/components/Statistics/index.vue","webpack://fittrackee_client/./src/views/StatisticsView.vue?9d34","webpack://fittrackee_client/./src/views/StatisticsView.vue"],"sourcesContent":["import { defineComponent as _defineComponent } from 'vue'\nimport { createElementVNode as _createElementVNode, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-22d55de2\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"chart-menu\" }\nconst _hoisted_2 = { class: \"chart-arrow\" }\nconst _hoisted_3 = { class: \"time-frames custom-checkboxes-group\" }\nconst _hoisted_4 = { class: \"time-frames-checkboxes custom-checkboxes\" }\nconst _hoisted_5 = [\"id\", \"name\", \"checked\", \"onInput\"]\nconst _hoisted_6 = { class: \"chart-arrow\" }\n\nimport { ref } from 'vue'\n\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'StatsMenu',\n emits: ['arrowClick', 'timeFrameUpdate'],\n setup(__props, { emit }) {\n\n \n\n const selectedTimeFrame = ref('month')\n const timeFrames = ['week', 'month', 'year']\n\n function onUpdateTimeFrame(timeFrame: string) {\n selectedTimeFrame.value = timeFrame\n emit('timeFrameUpdate', timeFrame)\n }\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"i\", {\n class: \"fa fa-chevron-left\",\n \"aria-hidden\": \"true\",\n onClick: _cache[0] || (_cache[0] = ($event: any) => (emit('arrowClick', true)))\n })\n ]),\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n (_openBlock(), _createElementBlock(_Fragment, null, _renderList(timeFrames, (frame) => {\n return _createElementVNode(\"div\", {\n class: \"time-frame custom-checkbox\",\n key: frame\n }, [\n _createElementVNode(\"label\", null, [\n _createElementVNode(\"input\", {\n type: \"radio\",\n id: frame,\n name: frame,\n checked: selectedTimeFrame.value === frame,\n onInput: ($event: any) => (onUpdateTimeFrame(frame))\n }, null, 40, _hoisted_5),\n _createElementVNode(\"span\", null, _toDisplayString(_ctx.$t(`statistics.TIME_FRAMES.${frame}`)), 1)\n ])\n ])\n }), 64))\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_6, [\n _createElementVNode(\"i\", {\n class: \"fa fa-chevron-right\",\n \"aria-hidden\": \"true\",\n onClick: _cache[1] || (_cache[1] = ($event: any) => (emit('arrowClick', false)))\n })\n ])\n ]))\n}\n}\n\n})","import script from \"./StatsMenu.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./StatsMenu.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./StatsMenu.vue?vue&type=style&index=0&id=22d55de2&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-22d55de2\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, createVNode as _createVNode, toDisplayString as _toDisplayString, normalizeStyle as _normalizeStyle } from \"vue\"\n\nconst _hoisted_1 = { class: \"sports-menu\" }\nconst _hoisted_2 = [\"id\", \"name\", \"checked\", \"onInput\"]\nconst _hoisted_3 = { class: \"sport-label\" }\n\nimport { ComputedRef, computed, inject, withDefaults, toRefs } from 'vue'\n import { useI18n } from 'vue-i18n'\n\n import { ISport, ITranslatedSport } from '@/types/sports'\n import { translateSports } from '@/utils/sports'\n\n interface Props {\n userSports: ISport[]\n selectedSportIds?: number[]\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'StatsSportsMenu',\n props: {\n userSports: null,\n selectedSportIds: { default: () => [] }\n },\n emits: ['selectedSportIdsUpdate'],\n setup(__props: any, { emit }) {\n\nconst props = __props as { userSports: ISport[], selectedSportIds: number[] };\n\n \n\n \n\n const { t } = useI18n()\n\n const sportColors = inject('sportColors')\n const { selectedSportIds } = toRefs(props)\n const translatedSports: ComputedRef = computed(() =>\n translateSports(props.userSports, t)\n )\n\n function updateSelectedSportIds(sportId: number) {\n emit('selectedSportIdsUpdate', sportId)\n }\n\nreturn (_ctx: any,_cache: any) => {\n const _component_SportImage = _resolveComponent(\"SportImage\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(translatedSports), (sport) => {\n return (_openBlock(), _createElementBlock(\"label\", {\n type: \"checkbox\",\n key: sport.id,\n style: _normalizeStyle({ color: sport.color ? sport.color : _unref(sportColors)[sport.label] })\n }, [\n _createElementVNode(\"input\", {\n type: \"checkbox\",\n id: sport.id,\n name: sport.label,\n checked: _unref(selectedSportIds).includes(sport.id),\n onInput: ($event: any) => (updateSelectedSportIds(sport.id))\n }, null, 40, _hoisted_2),\n _createVNode(_component_SportImage, {\n \"sport-label\": sport.label,\n color: sport.color\n }, null, 8, [\"sport-label\", \"color\"]),\n _createElementVNode(\"span\", _hoisted_3, _toDisplayString(sport.translatedLabel), 1)\n ], 4))\n }), 128))\n ]))\n}\n}\n\n})","import script from \"./StatsSportsMenu.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./StatsSportsMenu.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./StatsSportsMenu.vue?vue&type=style&index=0&id=31a8ca60&lang=scss\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-30799d13\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n key: 0,\n id: \"user-statistics\"\n}\n\nimport { ComputedRef, Ref, computed, ref, toRefs, watch } from 'vue'\n import { useI18n } from 'vue-i18n'\n\n import StatChart from '@/components/Common/StatsChart/index.vue'\n import StatsMenu from '@/components/Statistics/StatsMenu.vue'\n import SportsMenu from '@/components/Statistics/StatsSportsMenu.vue'\n import { ISport, ITranslatedSport } from '@/types/sports'\n import { IStatisticsDateParams } from '@/types/statistics'\n import { IAuthUserProfile } from '@/types/user'\n import { translateSports } from '@/utils/sports'\n import { getStatsDateParams, updateChartParams } from '@/utils/statistics'\n\n interface Props {\n sports: ISport[]\n user: IAuthUserProfile\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'index',\n props: {\n sports: null,\n user: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n sports: ISport[]\n user: IAuthUserProfile\n };\n\n \n\n const { t } = useI18n()\n\n const { sports, user } = toRefs(props)\n const selectedTimeFrame = ref('month')\n const chartParams: Ref = ref(\n getChartParams(selectedTimeFrame.value)\n )\n const translatedSports: ComputedRef = computed(() =>\n translateSports(props.sports, t)\n )\n const selectedSportIds: Ref = ref(getSports(props.sports))\n\n function updateTimeFrame(timeFrame: string) {\n selectedTimeFrame.value = timeFrame\n chartParams.value = getChartParams(selectedTimeFrame.value)\n }\n function getChartParams(timeFrame: string): IStatisticsDateParams {\n return getStatsDateParams(new Date(), timeFrame, props.user.weekm)\n }\n function handleOnClickArrows(backward: boolean) {\n chartParams.value = updateChartParams(\n chartParams.value,\n backward,\n props.user.weekm\n )\n }\n function getSports(sports: ISport[]) {\n return sports.map((sport) => sport.id)\n }\n function updateSelectedSportIds(sportId: number) {\n if (selectedSportIds.value.includes(sportId)) {\n selectedSportIds.value = selectedSportIds.value.filter(\n (id) => id !== sportId\n )\n } else {\n selectedSportIds.value.push(sportId)\n }\n }\n\n watch(\n () => props.sports,\n (newSports) => {\n selectedSportIds.value = getSports(newSports)\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_unref(translatedSports))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(StatsMenu, {\n onTimeFrameUpdate: updateTimeFrame,\n onArrowClick: handleOnClickArrows\n }),\n _createVNode(StatChart, {\n sports: _unref(sports),\n user: _unref(user),\n chartParams: chartParams.value,\n \"displayed-sport-ids\": selectedSportIds.value,\n fullStats: true\n }, null, 8, [\"sports\", \"user\", \"chartParams\", \"displayed-sport-ids\"]),\n _createVNode(SportsMenu, {\n \"selected-sport-ids\": selectedSportIds.value,\n \"user-sports\": _unref(sports),\n onSelectedSportIdsUpdate: updateSelectedSportIds\n }, null, 8, [\"selected-sport-ids\", \"user-sports\"])\n ]))\n : _createCommentVNode(\"\", true)\n}\n}\n\n})","import script from \"./index.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./index.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./index.vue?vue&type=style&index=0&id=30799d13&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-30799d13\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, normalizeClass as _normalizeClass, createVNode as _createVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-2e341d4e\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"statistics\",\n class: \"view\"\n}\nconst _hoisted_2 = {\n key: 0,\n class: \"container\"\n}\n\nimport { ComputedRef, computed } from 'vue'\n\n import Statistics from '@/components/Statistics/index.vue'\n import NoWorkouts from '@/components/Workouts/NoWorkouts.vue'\n import { AUTH_USER_STORE, SPORTS_STORE } from '@/store/constants'\n import { ISport } from '@/types/sports'\n import { IAuthUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'StatisticsView',\n setup(__props) {\n\n const store = useStore()\n\n const authUser: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.AUTH_USER_PROFILE]\n )\n const sports: ComputedRef = computed(() =>\n store.getters[SPORTS_STORE.GETTERS.SPORTS].filter((sport) =>\n authUser.value.sports_list.includes(sport.id)\n )\n )\n\nreturn (_ctx: any,_cache: any) => {\n const _component_Card = _resolveComponent(\"Card\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_unref(authUser).username)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_2, [\n _createVNode(_component_Card, null, {\n title: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('statistics.STATISTICS')), 1)\n ]),\n content: _withCtx(() => [\n _createVNode(Statistics, {\n class: _normalizeClass({ 'stats-disabled': _unref(authUser).nb_workouts === 0 }),\n user: _unref(authUser),\n sports: _unref(sports)\n }, null, 8, [\"class\", \"user\", \"sports\"])\n ]),\n _: 1\n }),\n (_unref(authUser).nb_workouts === 0)\n ? (_openBlock(), _createBlock(NoWorkouts, { key: 0 }))\n : _createCommentVNode(\"\", true)\n ]))\n : _createCommentVNode(\"\", true)\n ]))\n}\n}\n\n})","import script from \"./StatisticsView.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./StatisticsView.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./StatisticsView.vue?vue&type=style&index=0&id=2e341d4e&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-2e341d4e\"]])\n\nexport default __exports__"],"names":["_hoisted_1","class","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_defineComponent","__name","emits","setup","__props","emit","selectedTimeFrame","ref","timeFrames","onUpdateTimeFrame","timeFrame","value","_ctx","_cache","_openBlock","_createElementBlock","_createElementVNode","onClick","$event","_Fragment","_renderList","frame","key","type","id","name","checked","onInput","_toDisplayString","$t","__exports__","props","userSports","selectedSportIds","default","t","useI18n","sportColors","inject","toRefs","translatedSports","computed","translateSports","updateSelectedSportIds","sportId","_component_SportImage","_resolveComponent","_unref","sport","style","_normalizeStyle","color","label","includes","_createVNode","translatedLabel","sports","user","chartParams","getChartParams","getSports","updateTimeFrame","getStatsDateParams","Date","weekm","handleOnClickArrows","backward","updateChartParams","map","filter","push","watch","newSports","StatsMenu","onTimeFrameUpdate","onArrowClick","StatChart","fullStats","SportsMenu","onSelectedSportIdsUpdate","_createCommentVNode","store","useStore","authUser","getters","AUTH_USER_STORE","SPORTS_STORE","sports_list","_component_Card","username","title","_withCtx","_createTextVNode","content","Statistics","_normalizeClass","nb_workouts","_","_createBlock","NoWorkouts"],"sourceRoot":""} \ No newline at end of file diff --git a/fittrackee/dist/static/js/workouts.6988dc66.js b/fittrackee/dist/static/js/workouts.bbc7589b.js similarity index 99% rename from fittrackee/dist/static/js/workouts.6988dc66.js rename to fittrackee/dist/static/js/workouts.bbc7589b.js index b385ab44..e167dd25 100644 --- a/fittrackee/dist/static/js/workouts.6988dc66.js +++ b/fittrackee/dist/static/js/workouts.bbc7589b.js @@ -6,4 +6,4 @@ * Released under the MIT License. */ function r(t){return"[object Object]"===Object.prototype.toString.call(t)}function n(t){var e,n;return!1!==r(t)&&(e=t.constructor,void 0===e||(n=e.prototype,!1!==r(n)&&!1!==n.hasOwnProperty("isPrototypeOf")))}Object.defineProperty(e,"__esModule",{value:!0}),e.isPlainObject=n},9430:function(t,e){var r,n,i;(function(o,s){n=[],r=s,i="function"===typeof r?r.apply(e,n):r,void 0===i||(t.exports=i)})(0,(function(){return function(t){function e(t){return" "===t||"\t"===t||"\n"===t||"\f"===t||"\r"===t}function r(e){var r,n=e.exec(t.substring(m));if(n)return r=n[0],m+=r.length,r}var n,i,o,s,a,u=t.length,l=/^[ \t\n\r\u000c]+/,c=/^[, \t\n\r\u000c]+/,d=/^[^ \t\n\r\u000c]+/,p=/[,]+$/,h=/^\d+$/,f=/^-?(?:[0-9]+|[0-9]*\.[0-9]+)(?:[eE][+-]?[0-9]+)?$/,m=0,g=[];while(1){if(r(c),m>=u)return g;n=r(d),i=[],","===n.slice(-1)?(n=n.replace(p,""),y()):b()}function b(){r(l),o="",s="in descriptor";while(1){if(a=t.charAt(m),"in descriptor"===s)if(e(a))o&&(i.push(o),o="",s="after descriptor");else{if(","===a)return m+=1,o&&i.push(o),void y();if("("===a)o+=a,s="in parens";else{if(""===a)return o&&i.push(o),void y();o+=a}}else if("in parens"===s)if(")"===a)o+=a,s="in descriptor";else{if(""===a)return i.push(o),void y();o+=a}else if("after descriptor"===s)if(e(a));else{if(""===a)return void y();s="in descriptor",m-=1}m+=1}}function y(){var e,r,o,s,a,u,l,c,d,p=!1,m={};for(s=0;s(t.nodes&&(t.nodes=p(t.nodes)),delete t.source,t)))}function h(t){if(t[a]=!1,t.proxyOf.nodes)for(let e of t.proxyOf.nodes)h(e)}class f extends d{push(t){return t.parent=this,this.proxyOf.nodes.push(t),this}each(t){if(!this.proxyOf.nodes)return;let e,r,n=this.getIterator();while(this.indexes[n]{let n;try{n=t(e,r)}catch(i){throw e.addToError(i)}return!1!==n&&e.walk&&(n=e.walk(t)),n}))}walkDecls(t,e){return e?t instanceof RegExp?this.walk(((r,n)=>{if("decl"===r.type&&t.test(r.prop))return e(r,n)})):this.walk(((r,n)=>{if("decl"===r.type&&r.prop===t)return e(r,n)})):(e=t,this.walk(((t,r)=>{if("decl"===t.type)return e(t,r)})))}walkRules(t,e){return e?t instanceof RegExp?this.walk(((r,n)=>{if("rule"===r.type&&t.test(r.selector))return e(r,n)})):this.walk(((r,n)=>{if("rule"===r.type&&r.selector===t)return e(r,n)})):(e=t,this.walk(((t,r)=>{if("rule"===t.type)return e(t,r)})))}walkAtRules(t,e){return e?t instanceof RegExp?this.walk(((r,n)=>{if("atrule"===r.type&&t.test(r.name))return e(r,n)})):this.walk(((r,n)=>{if("atrule"===r.type&&r.name===t)return e(r,n)})):(e=t,this.walk(((t,r)=>{if("atrule"===t.type)return e(t,r)})))}walkComments(t){return this.walk(((e,r)=>{if("comment"===e.type)return t(e,r)}))}append(...t){for(let e of t){let t=this.normalize(e,this.last);for(let e of t)this.proxyOf.nodes.push(e)}return this.markDirty(),this}prepend(...t){t=t.reverse();for(let e of t){let t=this.normalize(e,this.first,"prepend").reverse();for(let e of t)this.proxyOf.nodes.unshift(e);for(let e in this.indexes)this.indexes[e]=this.indexes[e]+t.length}return this.markDirty(),this}cleanRaws(t){if(super.cleanRaws(t),this.nodes)for(let e of this.nodes)e.cleanRaws(t)}insertBefore(t,e){let r,n=this.index(t),i=0===n&&"prepend",o=this.normalize(e,this.proxyOf.nodes[n],i).reverse();n=this.index(t);for(let s of o)this.proxyOf.nodes.splice(n,0,s);for(let s in this.indexes)r=this.indexes[s],n<=r&&(this.indexes[s]=r+o.length);return this.markDirty(),this}insertAfter(t,e){let r,n=this.index(t),i=this.normalize(e,this.proxyOf.nodes[n]).reverse();n=this.index(t);for(let o of i)this.proxyOf.nodes.splice(n+1,0,o);for(let o in this.indexes)r=this.indexes[o],n=t&&(this.indexes[r]=e-1);return this.markDirty(),this}removeAll(){for(let t of this.proxyOf.nodes)t.parent=void 0;return this.proxyOf.nodes=[],this.markDirty(),this}replaceValues(t,e,r){return r||(r=e,e={}),this.walkDecls((n=>{e.props&&!e.props.includes(n.prop)||e.fast&&!n.value.includes(e.fast)||(n.value=n.value.replace(t,r))})),this.markDirty(),this}every(t){return this.nodes.every(t)}some(t){return this.nodes.some(t)}index(t){return"number"===typeof t?t:(t.proxyOf&&(t=t.proxyOf),this.proxyOf.nodes.indexOf(t))}get first(){if(this.proxyOf.nodes)return this.proxyOf.nodes[0]}get last(){if(this.proxyOf.nodes)return this.proxyOf.nodes[this.proxyOf.nodes.length-1]}normalize(t,e){if("string"===typeof t)t=p(n(t).nodes);else if(Array.isArray(t)){t=t.slice(0);for(let e of t)e.parent&&e.parent.removeChild(e,"ignore")}else if("root"===t.type&&"document"!==this.type){t=t.nodes.slice(0);for(let e of t)e.parent&&e.parent.removeChild(e,"ignore")}else if(t.type)t=[t];else if(t.prop){if("undefined"===typeof t.value)throw new Error("Value field is missed in node creation");"string"!==typeof t.value&&(t.value=String(t.value)),t=[new l(t)]}else if(t.selector)t=[new i(t)];else if(t.name)t=[new o(t)];else{if(!t.text)throw new Error("Unknown node type in node creation");t=[new c(t)]}let r=t.map((t=>(t[u]||f.rebuild(t),t=t.proxyOf,t.parent&&t.parent.removeChild(t),t[a]&&h(t),"undefined"===typeof t.raws.before&&e&&"undefined"!==typeof e.raws.before&&(t.raws.before=e.raws.before.replace(/\S/g,"")),t.parent=this.proxyOf,t)));return r}getProxyProcessor(){return{set(t,e,r){return t[e]===r||(t[e]=r,"name"!==e&&"params"!==e&&"selector"!==e||t.markDirty()),!0},get(t,e){return"proxyOf"===e?t:t[e]?"each"===e||"string"===typeof e&&e.startsWith("walk")?(...r)=>t[e](...r.map((t=>"function"===typeof t?(e,r)=>t(e.toProxy(),r):t))):"every"===e||"some"===e?r=>t[e](((t,...e)=>r(t.toProxy(),...e))):"root"===e?()=>t.root().toProxy():"nodes"===e?t.nodes.map((t=>t.toProxy())):"first"===e||"last"===e?t[e].toProxy():t[e]:t[e]}}}getIterator(){this.lastEach||(this.lastEach=0),this.indexes||(this.indexes={}),this.lastEach+=1;let t=this.lastEach;return this.indexes[t]=0,t}}f.registerParse=t=>{n=t},f.registerRule=t=>{i=t},f.registerAtRule=t=>{o=t},f.registerRoot=t=>{s=t},t.exports=f,f.default=f,f.rebuild=t=>{"atrule"===t.type?Object.setPrototypeOf(t,o.prototype):"rule"===t.type?Object.setPrototypeOf(t,i.prototype):"decl"===t.type?Object.setPrototypeOf(t,l.prototype):"comment"===t.type?Object.setPrototypeOf(t,c.prototype):"root"===t.type&&Object.setPrototypeOf(t,s.prototype),t[u]=!0,t.nodes&&t.nodes.forEach((t=>{f.rebuild(t)}))}},2671:function(t,e,r){"use strict";let n=r(4241),i=r(2868);class o extends Error{constructor(t,e,r,n,i,s){super(t),this.name="CssSyntaxError",this.reason=t,i&&(this.file=i),n&&(this.source=n),s&&(this.plugin=s),"undefined"!==typeof e&&"undefined"!==typeof r&&("number"===typeof e?(this.line=e,this.column=r):(this.line=e.line,this.column=e.column,this.endLine=r.line,this.endColumn=r.column)),this.setMessage(),Error.captureStackTrace&&Error.captureStackTrace(this,o)}setMessage(){this.message=this.plugin?this.plugin+": ":"",this.message+=this.file?this.file:"","undefined"!==typeof this.line&&(this.message+=":"+this.line+":"+this.column),this.message+=": "+this.reason}showSourceCode(t){if(!this.source)return"";let e=this.source;null==t&&(t=n.isColorSupported),i&&t&&(e=i(e));let r,o,s=e.split(/\r?\n/),a=Math.max(this.line-3,0),u=Math.min(this.line+2,s.length),l=String(u).length;if(t){let{bold:t,red:e,gray:i}=n.createColors(!0);r=r=>t(e(r)),o=t=>i(t)}else r=o=t=>t;return s.slice(a,u).map(((t,e)=>{let n=a+1+e,i=" "+(" "+n).slice(-l)+" | ";if(n===this.line){let e=o(i.replace(/\d/g," "))+t.slice(0,this.column-1).replace(/[^\t]/g," ");return r(">")+o(i)+t+"\n "+e+r("^")}return" "+o(i)+t})).join("\n")}toString(){let t=this.showSourceCode();return t&&(t="\n\n"+t+"\n"),this.name+": "+this.message+t}}t.exports=o,o.default=o},4258:function(t,e,r){"use strict";let n=r(5631);class i extends n{constructor(t){t&&"undefined"!==typeof t.value&&"string"!==typeof t.value&&(t={...t,value:String(t.value)}),super(t),this.type="decl"}get variable(){return this.prop.startsWith("--")||"$"===this.prop[0]}}t.exports=i,i.default=i},6461:function(t,e,r){"use strict";let n,i,o=r(1019);class s extends o{constructor(t){super({type:"document",...t}),this.nodes||(this.nodes=[])}toResult(t={}){let e=new n(new i,this,t);return e.stringify()}}s.registerLazyResult=t=>{n=t},s.registerProcessor=t=>{i=t},t.exports=s,s.default=s},250:function(t,e,r){"use strict";let n=r(4258),i=r(7981),o=r(9932),s=r(1353),a=r(5995),u=r(1025),l=r(1675);function c(t,e){if(Array.isArray(t))return t.map((t=>c(t)));let{inputs:r,...d}=t;if(r){e=[];for(let t of r){let r={...t,__proto__:a.prototype};r.map&&(r.map={...r.map,__proto__:i.prototype}),e.push(r)}}if(d.nodes&&(d.nodes=t.nodes.map((t=>c(t,e)))),d.source){let{inputId:t,...r}=d.source;d.source=r,null!=t&&(d.source.input=e[t])}if("root"===d.type)return new u(d);if("decl"===d.type)return new n(d);if("rule"===d.type)return new l(d);if("comment"===d.type)return new o(d);if("atrule"===d.type)return new s(d);throw new Error("Unknown node type: "+t.type)}t.exports=c,c.default=c},5995:function(t,e,r){"use strict";let{SourceMapConsumer:n,SourceMapGenerator:i}=r(209),{fileURLToPath:o,pathToFileURL:s}=r(7414),{resolve:a,isAbsolute:u}=r(9830),{nanoid:l}=r(2961),c=r(2868),d=r(2671),p=r(7981),h=Symbol("fromOffsetCache"),f=Boolean(n&&i),m=Boolean(a&&u);class g{constructor(t,e={}){if(null===t||"undefined"===typeof t||"object"===typeof t&&!t.toString)throw new Error(`PostCSS received ${t} instead of CSS string`);if(this.css=t.toString(),"\ufeff"===this.css[0]||"￾"===this.css[0]?(this.hasBOM=!0,this.css=this.css.slice(1)):this.hasBOM=!1,e.from&&(!m||/^\w+:\/\//.test(e.from)||u(e.from)?this.file=e.from:this.file=a(e.from)),m&&f){let t=new p(this.css,e);if(t.text){this.map=t;let e=t.consumer().file;!this.file&&e&&(this.file=this.mapResolve(e))}}this.file||(this.id=""),this.map&&(this.map.file=this.from)}fromOffset(t){let e,r;if(this[h])r=this[h];else{let t=this.css.split("\n");r=new Array(t.length);let e=0;for(let n=0,i=t.length;n=e)n=r.length-1;else{let e,i=r.length-2;while(n>1),t=r[e+1])){n=e;break}n=e+1}}return{line:n+1,col:t-r[n]+1}}error(t,e,r,n={}){let i,o,a;if(e&&"object"===typeof e){let t=e,n=r;if("number"===typeof e.offset){let n=this.fromOffset(t.offset);e=n.line,r=n.col}else e=t.line,r=t.column;if("number"===typeof n.offset){let t=this.fromOffset(n.offset);o=t.line,a=t.col}else o=n.line,a=n.column}else if(!r){let t=this.fromOffset(e);e=t.line,r=t.col}let u=this.origin(e,r,o,a);return i=u?new d(t,void 0===u.endLine?u.line:{line:u.line,column:u.column},void 0===u.endLine?u.column:{line:u.endLine,column:u.endColumn},u.source,u.file,n.plugin):new d(t,void 0===o?e:{line:e,column:r},void 0===o?r:{line:o,column:a},this.css,this.file,n.plugin),i.input={line:e,column:r,endLine:o,endColumn:a,source:this.css},this.file&&(s&&(i.input.url=s(this.file).toString()),i.input.file=this.file),i}origin(t,e,r,n){if(!this.map)return!1;let i,a,l=this.map.consumer(),c=l.originalPositionFor({line:t,column:e});if(!c.source)return!1;"number"===typeof r&&(i=l.originalPositionFor({line:r,column:n})),a=u(c.source)?s(c.source):new URL(c.source,this.map.consumer().sourceRoot||s(this.map.mapFile));let d={url:a.toString(),line:c.line,column:c.column,endLine:i&&i.line,endColumn:i&&i.column};if("file:"===a.protocol){if(!o)throw new Error("file: protocol is not available in this PostCSS build");d.file=o(a)}let p=l.sourceContentFor(c.source);return p&&(d.source=p),d}mapResolve(t){return/^\w+:\/\//.test(t)?t:a(this.map.consumer().sourceRoot||this.map.root||".",t)}get from(){return this.file||this.id}toJSON(){let t={};for(let e of["hasBOM","css","file","id"])null!=this[e]&&(t[e]=this[e]);return this.map&&(t.map={...this.map},t.map.consumerCache&&(t.map.consumerCache=void 0)),t}}t.exports=g,g.default=g,c&&c.registerInput&&c.registerInput(g)},1939:function(t,e,r){"use strict";let{isClean:n,my:i}=r(5513),o=r(8505),s=r(7088),a=r(1019),u=r(6461),l=(r(2448),r(3632)),c=r(6939),d=r(1025);const p={document:"Document",root:"Root",atrule:"AtRule",rule:"Rule",decl:"Declaration",comment:"Comment"},h={postcssPlugin:!0,prepare:!0,Once:!0,Document:!0,Root:!0,Declaration:!0,Rule:!0,AtRule:!0,Comment:!0,DeclarationExit:!0,RuleExit:!0,AtRuleExit:!0,CommentExit:!0,RootExit:!0,DocumentExit:!0,OnceExit:!0},f={postcssPlugin:!0,prepare:!0,Once:!0},m=0;function g(t){return"object"===typeof t&&"function"===typeof t.then}function b(t){let e=!1,r=p[t.type];return"decl"===t.type?e=t.prop.toLowerCase():"atrule"===t.type&&(e=t.name.toLowerCase()),e&&t.append?[r,r+"-"+e,m,r+"Exit",r+"Exit-"+e]:e?[r,r+"-"+e,r+"Exit",r+"Exit-"+e]:t.append?[r,m,r+"Exit"]:[r,r+"Exit"]}function y(t){let e;return e="document"===t.type?["Document",m,"DocumentExit"]:"root"===t.type?["Root",m,"RootExit"]:b(t),{node:t,events:e,eventIndex:0,visitors:[],visitorIndex:0,iterator:0}}function D(t){return t[n]=!1,t.nodes&&t.nodes.forEach((t=>D(t))),t}let w={};class v{constructor(t,e,r){let n;if(this.stringified=!1,this.processed=!1,"object"!==typeof e||null===e||"root"!==e.type&&"document"!==e.type)if(e instanceof v||e instanceof l)n=D(e.root),e.map&&("undefined"===typeof r.map&&(r.map={}),r.map.inline||(r.map.inline=!1),r.map.prev=e.map);else{let t=c;r.syntax&&(t=r.syntax.parse),r.parser&&(t=r.parser),t.parse&&(t=t.parse);try{n=t(e,r)}catch(o){this.processed=!0,this.error=o}n&&!n[i]&&a.rebuild(n)}else n=D(e);this.result=new l(t,n,r),this.helpers={...w,result:this.result,postcss:w},this.plugins=this.processor.plugins.map((t=>"object"===typeof t&&t.prepare?{...t,...t.prepare(this.result)}:t))}get[Symbol.toStringTag](){return"LazyResult"}get processor(){return this.result.processor}get opts(){return this.result.opts}get css(){return this.stringify().css}get content(){return this.stringify().content}get map(){return this.stringify().map}get root(){return this.sync().root}get messages(){return this.sync().messages}warnings(){return this.sync().warnings()}toString(){return this.css}then(t,e){return this.async().then(t,e)}catch(t){return this.async().catch(t)}finally(t){return this.async().then(t,t)}async(){return this.error?Promise.reject(this.error):this.processed?Promise.resolve(this.result):(this.processing||(this.processing=this.runAsync()),this.processing)}sync(){if(this.error)throw this.error;if(this.processed)return this.result;if(this.processed=!0,this.processing)throw this.getAsyncError();for(let t of this.plugins){let e=this.runOnRoot(t);if(g(e))throw this.getAsyncError()}if(this.prepareVisitors(),this.hasListener){let t=this.result.root;while(!t[n])t[n]=!0,this.walkSync(t);if(this.listeners.OnceExit)if("document"===t.type)for(let e of t.nodes)this.visitSync(this.listeners.OnceExit,e);else this.visitSync(this.listeners.OnceExit,t)}return this.result}stringify(){if(this.error)throw this.error;if(this.stringified)return this.result;this.stringified=!0,this.sync();let t=this.result.opts,e=s;t.syntax&&(e=t.syntax.stringify),t.stringifier&&(e=t.stringifier),e.stringify&&(e=e.stringify);let r=new o(e,this.result.root,this.result.opts),n=r.generate();return this.result.css=n[0],this.result.map=n[1],this.result}walkSync(t){t[n]=!0;let e=b(t);for(let r of e)if(r===m)t.nodes&&t.each((t=>{t[n]||this.walkSync(t)}));else{let e=this.listeners[r];if(e&&this.visitSync(e,t.toProxy()))return}}visitSync(t,e){for(let[n,i]of t){let t;this.result.lastPlugin=n;try{t=i(e,this.helpers)}catch(r){throw this.handleError(r,e.proxyOf)}if("root"!==e.type&&"document"!==e.type&&!e.parent)return!0;if(g(t))throw this.getAsyncError()}}runOnRoot(t){this.result.lastPlugin=t;try{if("object"===typeof t&&t.Once){if("document"===this.result.root.type){let e=this.result.root.nodes.map((e=>t.Once(e,this.helpers)));return g(e[0])?Promise.all(e):e}return t.Once(this.result.root,this.helpers)}if("function"===typeof t)return t(this.result.root,this.result)}catch(e){throw this.handleError(e)}}getAsyncError(){throw new Error("Use process(css).then(cb) to work with async plugins")}handleError(t,e){let r=this.result.lastPlugin;try{e&&e.addToError(t),this.error=t,"CssSyntaxError"!==t.name||t.plugin?r.postcssVersion:(t.plugin=r.postcssPlugin,t.setMessage())}catch(n){console&&console.error&&console.error(n)}return t}async runAsync(){this.plugin=0;for(let r=0;r0){let t=this.visitTick(r);if(g(t))try{await t}catch(e){let t=r[r.length-1].node;throw this.handleError(e,t)}}}if(this.listeners.OnceExit)for(let[r,n]of this.listeners.OnceExit){this.result.lastPlugin=r;try{if("document"===t.type){let e=t.nodes.map((t=>n(t,this.helpers)));await Promise.all(e)}else await n(t,this.helpers)}catch(e){throw this.handleError(e)}}}return this.processed=!0,this.stringify()}prepareVisitors(){this.listeners={};let t=(t,e,r)=>{this.listeners[e]||(this.listeners[e]=[]),this.listeners[e].push([t,r])};for(let e of this.plugins)if("object"===typeof e)for(let r in e){if(!h[r]&&/^[A-Z]/.test(r))throw new Error(`Unknown event ${r} in ${e.postcssPlugin}. Try to update PostCSS (${this.processor.version} now).`);if(!f[r])if("object"===typeof e[r])for(let n in e[r])t(e,"*"===n?r:r+"-"+n.toLowerCase(),e[r][n]);else"function"===typeof e[r]&&t(e,r,e[r])}this.hasListener=Object.keys(this.listeners).length>0}visitTick(t){let e=t[t.length-1],{node:r,visitors:i}=e;if("root"!==r.type&&"document"!==r.type&&!r.parent)return void t.pop();if(i.length>0&&e.visitorIndex{w=t},t.exports=v,v.default=v,d.registerLazyResult(v),u.registerLazyResult(v)},4715:function(t){"use strict";let e={split(t,e,r){let n=[],i="",o=!1,s=0,a=!1,u="",l=!1;for(let c of t)l?l=!1:"\\"===c?l=!0:a?c===u&&(a=!1):'"'===c||"'"===c?(a=!0,u=c):"("===c?s+=1:")"===c?s>0&&(s-=1):0===s&&e.includes(c)&&(o=!0),o?(""!==i&&n.push(i.trim()),i="",o=!1):i+=c;return(r||""!==i)&&n.push(i.trim()),n},space(t){let r=[" ","\n","\t"];return e.split(t,r)},comma(t){return e.split(t,[","],!0)}};t.exports=e,e.default=e},8505:function(t,e,r){"use strict";let{SourceMapConsumer:n,SourceMapGenerator:i}=r(209),{dirname:o,resolve:s,relative:a,sep:u}=r(9830),{pathToFileURL:l}=r(7414),c=r(5995),d=Boolean(n&&i),p=Boolean(o&&s&&a&&u);class h{constructor(t,e,r,n){this.stringify=t,this.mapOpts=r.map||{},this.root=e,this.opts=r,this.css=n,this.usesFileUrls=!this.mapOpts.from&&this.mapOpts.absolute}isMap(){return"undefined"!==typeof this.opts.map?!!this.opts.map:this.previous().length>0}previous(){if(!this.previousMaps)if(this.previousMaps=[],this.root)this.root.walk((t=>{if(t.source&&t.source.input.map){let e=t.source.input.map;this.previousMaps.includes(e)||this.previousMaps.push(e)}}));else{let t=new c(this.css,this.opts);t.map&&this.previousMaps.push(t.map)}return this.previousMaps}isInline(){if("undefined"!==typeof this.mapOpts.inline)return this.mapOpts.inline;let t=this.mapOpts.annotation;return("undefined"===typeof t||!0===t)&&(!this.previous().length||this.previous().some((t=>t.inline)))}isSourcesContent(){return"undefined"!==typeof this.mapOpts.sourcesContent?this.mapOpts.sourcesContent:!this.previous().length||this.previous().some((t=>t.withContent()))}clearAnnotation(){if(!1!==this.mapOpts.annotation)if(this.root){let t;for(let e=this.root.nodes.length-1;e>=0;e--)t=this.root.nodes[e],"comment"===t.type&&0===t.text.indexOf("# sourceMappingURL=")&&this.root.removeChild(e)}else this.css&&(this.css=this.css.replace(/(\n)?\/\*#[\S\s]*?\*\/$/gm,""))}setSourcesContent(){let t={};if(this.root)this.root.walk((e=>{if(e.source){let r=e.source.input.from;if(r&&!t[r]){t[r]=!0;let n=this.usesFileUrls?this.toFileUrl(r):this.toUrl(this.path(r));this.map.setSourceContent(n,e.source.input.css)}}}));else if(this.css){let t=this.opts.from?this.toUrl(this.path(this.opts.from)):"";this.map.setSourceContent(t,this.css)}}applyPrevMaps(){for(let t of this.previous()){let e,r=this.toUrl(this.path(t.file)),i=t.root||o(t.file);!1===this.mapOpts.sourcesContent?(e=new n(t.text),e.sourcesContent&&(e.sourcesContent=e.sourcesContent.map((()=>null)))):e=t.consumer(),this.map.applySourceMap(e,r,this.toUrl(this.path(i)))}}isAnnotation(){return!!this.isInline()||("undefined"!==typeof this.mapOpts.annotation?this.mapOpts.annotation:!this.previous().length||this.previous().some((t=>t.annotation)))}toBase64(t){return Buffer?Buffer.from(t).toString("base64"):window.btoa(unescape(encodeURIComponent(t)))}addAnnotation(){let t;t=this.isInline()?"data:application/json;base64,"+this.toBase64(this.map.toString()):"string"===typeof this.mapOpts.annotation?this.mapOpts.annotation:"function"===typeof this.mapOpts.annotation?this.mapOpts.annotation(this.opts.to,this.root):this.outputFile()+".map";let e="\n";this.css.includes("\r\n")&&(e="\r\n"),this.css+=e+"/*# sourceMappingURL="+t+" */"}outputFile(){return this.opts.to?this.path(this.opts.to):this.opts.from?this.path(this.opts.from):"to.css"}generateMap(){if(this.root)this.generateString();else if(1===this.previous().length){let t=this.previous()[0].consumer();t.file=this.outputFile(),this.map=i.fromSourceMap(t)}else this.map=new i({file:this.outputFile()}),this.map.addMapping({source:this.opts.from?this.toUrl(this.path(this.opts.from)):"",generated:{line:1,column:0},original:{line:1,column:0}});return this.isSourcesContent()&&this.setSourcesContent(),this.root&&this.previous().length>0&&this.applyPrevMaps(),this.isAnnotation()&&this.addAnnotation(),this.isInline()?[this.css]:[this.css,this.map]}path(t){if(0===t.indexOf("<"))return t;if(/^\w+:\/\//.test(t))return t;if(this.mapOpts.absolute)return t;let e=this.opts.to?o(this.opts.to):".";return"string"===typeof this.mapOpts.annotation&&(e=o(s(e,this.mapOpts.annotation))),t=a(e,t),t}toUrl(t){return"\\"===u&&(t=t.replace(/\\/g,"/")),encodeURI(t).replace(/[#?]/g,encodeURIComponent)}toFileUrl(t){if(l)return l(t).toString();throw new Error("`map.absolute` option is not available in this PostCSS build")}sourcePath(t){return this.mapOpts.from?this.toUrl(this.mapOpts.from):this.usesFileUrls?this.toFileUrl(t.source.input.from):this.toUrl(this.path(t.source.input.from))}generateString(){this.css="",this.map=new i({file:this.outputFile()});let t,e,r=1,n=1,o="",s={source:"",generated:{line:0,column:0},original:{line:0,column:0}};this.stringify(this.root,((i,a,u)=>{if(this.css+=i,a&&"end"!==u&&(s.generated.line=r,s.generated.column=n-1,a.source&&a.source.start?(s.source=this.sourcePath(a),s.original.line=a.source.start.line,s.original.column=a.source.start.column-1,this.map.addMapping(s)):(s.source=o,s.original.line=1,s.original.column=0,this.map.addMapping(s))),t=i.match(/\n/g),t?(r+=t.length,e=i.lastIndexOf("\n"),n=i.length-e):n+=i.length,a&&"start"!==u){let t=a.parent||{raws:{}};("decl"!==a.type||a!==t.last||t.raws.semicolon)&&(a.source&&a.source.end?(s.source=this.sourcePath(a),s.original.line=a.source.end.line,s.original.column=a.source.end.column-1,s.generated.line=r,s.generated.column=n-2,this.map.addMapping(s)):(s.source=o,s.original.line=1,s.original.column=0,s.generated.line=r,s.generated.column=n-1,this.map.addMapping(s)))}}))}generate(){if(this.clearAnnotation(),p&&d&&this.isMap())return this.generateMap();{let t="";return this.stringify(this.root,(e=>{t+=e})),[t]}}}t.exports=h},7647:function(t,e,r){"use strict";let n=r(8505),i=r(7088),o=(r(2448),r(6939));const s=r(3632);class a{constructor(t,e,r){let o;e=e.toString(),this.stringified=!1,this._processor=t,this._css=e,this._opts=r,this._map=void 0;let a=i;this.result=new s(this._processor,o,this._opts),this.result.css=e;let u=this;Object.defineProperty(this.result,"root",{get(){return u.root}});let l=new n(a,o,this._opts,e);if(l.isMap()){let[t,e]=l.generate();t&&(this.result.css=t),e&&(this.result.map=e)}}get[Symbol.toStringTag](){return"NoWorkResult"}get processor(){return this.result.processor}get opts(){return this.result.opts}get css(){return this.result.css}get content(){return this.result.css}get map(){return this.result.map}get root(){if(this._root)return this._root;let t,e=o;try{t=e(this._css,this._opts)}catch(r){this.error=r}if(this.error)throw this.error;return this._root=t,t}get messages(){return[]}warnings(){return[]}toString(){return this._css}then(t,e){return this.async().then(t,e)}catch(t){return this.async().catch(t)}finally(t){return this.async().then(t,t)}async(){return this.error?Promise.reject(this.error):Promise.resolve(this.result)}sync(){if(this.error)throw this.error;return this.result}}t.exports=a,a.default=a},5631:function(t,e,r){"use strict";let{isClean:n,my:i}=r(5513),o=r(2671),s=r(1062),a=r(7088);function u(t,e){let r=new t.constructor;for(let n in t){if(!Object.prototype.hasOwnProperty.call(t,n))continue;if("proxyCache"===n)continue;let i=t[n],o=typeof i;"parent"===n&&"object"===o?e&&(r[n]=e):"source"===n?r[n]=i:Array.isArray(i)?r[n]=i.map((t=>u(t,r))):("object"===o&&null!==i&&(i=u(i)),r[n]=i)}return r}class l{constructor(t={}){this.raws={},this[n]=!1,this[i]=!0;for(let e in t)if("nodes"===e){this.nodes=[];for(let r of t[e])"function"===typeof r.clone?this.append(r.clone()):this.append(r)}else this[e]=t[e]}error(t,e={}){if(this.source){let{start:r,end:n}=this.rangeBy(e);return this.source.input.error(t,{line:r.line,column:r.column},{line:n.line,column:n.column},e)}return new o(t)}warn(t,e,r){let n={node:this};for(let i in r)n[i]=r[i];return t.warn(e,n)}remove(){return this.parent&&this.parent.removeChild(this),this.parent=void 0,this}toString(t=a){t.stringify&&(t=t.stringify);let e="";return t(this,(t=>{e+=t})),e}assign(t={}){for(let e in t)this[e]=t[e];return this}clone(t={}){let e=u(this);for(let r in t)e[r]=t[r];return e}cloneBefore(t={}){let e=this.clone(t);return this.parent.insertBefore(this,e),e}cloneAfter(t={}){let e=this.clone(t);return this.parent.insertAfter(this,e),e}replaceWith(...t){if(this.parent){let e=this,r=!1;for(let n of t)n===this?r=!0:r?(this.parent.insertAfter(e,n),e=n):this.parent.insertBefore(e,n);r||this.remove()}return this}next(){if(!this.parent)return;let t=this.parent.index(this);return this.parent.nodes[t+1]}prev(){if(!this.parent)return;let t=this.parent.index(this);return this.parent.nodes[t-1]}before(t){return this.parent.insertBefore(this,t),this}after(t){return this.parent.insertAfter(this,t),this}root(){let t=this;while(t.parent&&"document"!==t.parent.type)t=t.parent;return t}raw(t,e){let r=new s;return r.raw(this,t,e)}cleanRaws(t){delete this.raws.before,delete this.raws.after,t||delete this.raws.between}toJSON(t,e){let r={},n=null==e;e=e||new Map;let i=0;for(let o in this){if(!Object.prototype.hasOwnProperty.call(this,o))continue;if("parent"===o||"proxyCache"===o)continue;let t=this[o];if(Array.isArray(t))r[o]=t.map((t=>"object"===typeof t&&t.toJSON?t.toJSON(null,e):t));else if("object"===typeof t&&t.toJSON)r[o]=t.toJSON(null,e);else if("source"===o){let n=e.get(t.input);null==n&&(n=i,e.set(t.input,i),i++),r[o]={inputId:n,start:t.start,end:t.end}}else r[o]=t}return n&&(r.inputs=[...e.keys()].map((t=>t.toJSON()))),r}positionInside(t){let e=this.toString(),r=this.source.start.column,n=this.source.start.line;for(let i=0;it.root().toProxy():t[e]}}}toProxy(){return this.proxyCache||(this.proxyCache=new Proxy(this,this.getProxyProcessor())),this.proxyCache}addToError(t){if(t.postcssNode=this,t.stack&&this.source&&/\n\s{4}at /.test(t.stack)){let e=this.source;t.stack=t.stack.replace(/\n\s{4}at /,`$&${e.input.from}:${e.start.line}:${e.start.column}$&`)}return t}markDirty(){if(this[n]){this[n]=!1;let t=this;while(t=t.parent)t[n]=!1}}get proxyOf(){return this}}t.exports=l,l.default=l},6939:function(t,e,r){"use strict";let n=r(1019),i=r(8867),o=r(5995);function s(t,e){let r=new o(t,e),n=new i(r);try{n.parse()}catch(s){throw s}return n.root}t.exports=s,s.default=s,n.registerParse(s)},8867:function(t,e,r){"use strict";let n=r(4258),i=r(3852),o=r(9932),s=r(1353),a=r(1025),u=r(1675);const l={empty:!0,space:!0};function c(t){for(let e=t.length-1;e>=0;e--){let r=t[e],n=r[3]||r[2];if(n)return n}}class d{constructor(t){this.input=t,this.root=new a,this.current=this.root,this.spaces="",this.semicolon=!1,this.customProperty=!1,this.createTokenizer(),this.root.source={input:t,start:{offset:0,line:1,column:1}}}createTokenizer(){this.tokenizer=i(this.input)}parse(){let t;while(!this.tokenizer.endOfFile())switch(t=this.tokenizer.nextToken(),t[0]){case"space":this.spaces+=t[1];break;case";":this.freeSemicolon(t);break;case"}":this.end(t);break;case"comment":this.comment(t);break;case"at-word":this.atrule(t);break;case"{":this.emptyRule(t);break;default:this.other(t);break}this.endFile()}comment(t){let e=new o;this.init(e,t[2]),e.source.end=this.getPosition(t[3]||t[2]);let r=t[1].slice(2,-2);if(/^\s*$/.test(r))e.text="",e.raws.left=r,e.raws.right="";else{let t=r.match(/^(\s*)([^]*\S)(\s*)$/);e.text=t[2],e.raws.left=t[1],e.raws.right=t[3]}}emptyRule(t){let e=new u;this.init(e,t[2]),e.selector="",e.raws.between="",this.current=e}other(t){let e=!1,r=null,n=!1,i=null,o=[],s=t[1].startsWith("--"),a=[],u=t;while(u){if(r=u[0],a.push(u),"("===r||"["===r)i||(i=u),o.push("("===r?")":"]");else if(s&&n&&"{"===r)i||(i=u),o.push("}");else if(0===o.length){if(";"===r){if(n)return void this.decl(a,s);break}if("{"===r)return void this.rule(a);if("}"===r){this.tokenizer.back(a.pop()),e=!0;break}":"===r&&(n=!0)}else r===o[o.length-1]&&(o.pop(),0===o.length&&(i=null));u=this.tokenizer.nextToken()}if(this.tokenizer.endOfFile()&&(e=!0),o.length>0&&this.unclosedBracket(i),e&&n){if(!s)while(a.length){if(u=a[a.length-1][0],"space"!==u&&"comment"!==u)break;this.tokenizer.back(a.pop())}this.decl(a,s)}else this.unknownWord(a)}rule(t){t.pop();let e=new u;this.init(e,t[0][2]),e.raws.between=this.spacesAndCommentsFromEnd(t),this.raw(e,"selector",t),this.current=e}decl(t,e){let r=new n;this.init(r,t[0][2]);let i,o=t[t.length-1];";"===o[0]&&(this.semicolon=!0,t.pop()),r.source.end=this.getPosition(o[3]||o[2]||c(t));while("word"!==t[0][0])1===t.length&&this.unknownWord(t),r.raws.before+=t.shift()[1];r.source.start=this.getPosition(t[0][2]),r.prop="";while(t.length){let e=t[0][0];if(":"===e||"space"===e||"comment"===e)break;r.prop+=t.shift()[1]}r.raws.between="";while(t.length){if(i=t.shift(),":"===i[0]){r.raws.between+=i[1];break}"word"===i[0]&&/\w/.test(i[1])&&this.unknownWord([i]),r.raws.between+=i[1]}"_"!==r.prop[0]&&"*"!==r.prop[0]||(r.raws.before+=r.prop[0],r.prop=r.prop.slice(1));let s,a=[];while(t.length){if(s=t[0][0],"space"!==s&&"comment"!==s)break;a.push(t.shift())}this.precheckMissedSemicolon(t);for(let n=t.length-1;n>=0;n--){if(i=t[n],"!important"===i[1].toLowerCase()){r.important=!0;let e=this.stringFrom(t,n);e=this.spacesFromEnd(t)+e," !important"!==e&&(r.raws.important=e);break}if("important"===i[1].toLowerCase()){let e=t.slice(0),i="";for(let t=n;t>0;t--){let r=e[t][0];if(0===i.trim().indexOf("!")&&"space"!==r)break;i=e.pop()[1]+i}0===i.trim().indexOf("!")&&(r.important=!0,r.raws.important=i,t=e)}if("space"!==i[0]&&"comment"!==i[0])break}let u=t.some((t=>"space"!==t[0]&&"comment"!==t[0]));u&&(r.raws.between+=a.map((t=>t[1])).join(""),a=[]),this.raw(r,"value",a.concat(t),e),r.value.includes(":")&&!e&&this.checkMissedSemicolon(t)}atrule(t){let e,r,n,i=new s;i.name=t[1].slice(1),""===i.name&&this.unnamedAtrule(i,t),this.init(i,t[2]);let o=!1,a=!1,u=[],l=[];while(!this.tokenizer.endOfFile()){if(t=this.tokenizer.nextToken(),e=t[0],"("===e||"["===e?l.push("("===e?")":"]"):"{"===e&&l.length>0?l.push("}"):e===l[l.length-1]&&l.pop(),0===l.length){if(";"===e){i.source.end=this.getPosition(t[2]),this.semicolon=!0;break}if("{"===e){a=!0;break}if("}"===e){if(u.length>0){n=u.length-1,r=u[n];while(r&&"space"===r[0])r=u[--n];r&&(i.source.end=this.getPosition(r[3]||r[2]))}this.end(t);break}u.push(t)}else u.push(t);if(this.tokenizer.endOfFile()){o=!0;break}}i.raws.between=this.spacesAndCommentsFromEnd(u),u.length?(i.raws.afterName=this.spacesAndCommentsFromStart(u),this.raw(i,"params",u),o&&(t=u[u.length-1],i.source.end=this.getPosition(t[3]||t[2]),this.spaces=i.raws.between,i.raws.between="")):(i.raws.afterName="",i.params=""),a&&(i.nodes=[],this.current=i)}end(t){this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.semicolon=!1,this.current.raws.after=(this.current.raws.after||"")+this.spaces,this.spaces="",this.current.parent?(this.current.source.end=this.getPosition(t[2]),this.current=this.current.parent):this.unexpectedClose(t)}endFile(){this.current.parent&&this.unclosedBlock(),this.current.nodes&&this.current.nodes.length&&(this.current.raws.semicolon=this.semicolon),this.current.raws.after=(this.current.raws.after||"")+this.spaces}freeSemicolon(t){if(this.spaces+=t[1],this.current.nodes){let t=this.current.nodes[this.current.nodes.length-1];t&&"rule"===t.type&&!t.raws.ownSemicolon&&(t.raws.ownSemicolon=this.spaces,this.spaces="")}}getPosition(t){let e=this.input.fromOffset(t);return{offset:t,line:e.line,column:e.col}}init(t,e){this.current.push(t),t.source={start:this.getPosition(e),input:this.input},t.raws.before=this.spaces,this.spaces="","comment"!==t.type&&(this.semicolon=!1)}raw(t,e,r,n){let i,o,s,a,u=r.length,c="",d=!0;for(let p=0;pt+e[1]),"");t.raws[e]={value:c,raw:n}}t[e]=c}spacesAndCommentsFromEnd(t){let e,r="";while(t.length){if(e=t[t.length-1][0],"space"!==e&&"comment"!==e)break;r=t.pop()[1]+r}return r}spacesAndCommentsFromStart(t){let e,r="";while(t.length){if(e=t[0][0],"space"!==e&&"comment"!==e)break;r+=t.shift()[1]}return r}spacesFromEnd(t){let e,r="";while(t.length){if(e=t[t.length-1][0],"space"!==e)break;r=t.pop()[1]+r}return r}stringFrom(t,e){let r="";for(let n=e;n=0;i--)if(r=t[i],"space"!==r[0]&&(n+=1,2===n))break;throw this.input.error("Missed semicolon","word"===r[0]?r[3]+1:r[2])}}t.exports=d},20:function(t,e,r){"use strict";let n=r(2671),i=r(4258),o=r(1939),s=r(1019),a=r(1723),u=r(7088),l=r(250),c=r(6461),d=r(1728),p=r(9932),h=r(1353),f=r(3632),m=r(5995),g=r(6939),b=r(4715),y=r(1675),D=r(1025),w=r(5631);function v(...t){return 1===t.length&&Array.isArray(t[0])&&(t=t[0]),new a(t)}v.plugin=function(t,e){let r,n=!1;function i(...r){console&&console.warn&&!n&&(n=!0,console.warn(t+": postcss.plugin was deprecated. Migration guide:\nhttps://evilmartians.com/chronicles/postcss-8-plugin-migration"),{VUE_APP_API_URL:"http://localhost:5000",NODE_ENV:"production",BASE_URL:"/"}.LANG&&{VUE_APP_API_URL:"http://localhost:5000",NODE_ENV:"production",BASE_URL:"/"}.LANG.startsWith("cn")&&console.warn(t+": 里面 postcss.plugin 被弃用. 迁移指南:\nhttps://www.w3ctech.com/topic/2226"));let i=e(...r);return i.postcssPlugin=t,i.postcssVersion=(new a).version,i}return Object.defineProperty(i,"postcss",{get(){return r||(r=i()),r}}),i.process=function(t,e,r){return v([i(r)]).process(t,e)},i},v.stringify=u,v.parse=g,v.fromJSON=l,v.list=b,v.comment=t=>new p(t),v.atRule=t=>new h(t),v.decl=t=>new i(t),v.rule=t=>new y(t),v.root=t=>new D(t),v.document=t=>new c(t),v.CssSyntaxError=n,v.Declaration=i,v.Container=s,v.Processor=a,v.Document=c,v.Comment=p,v.Warning=d,v.AtRule=h,v.Result=f,v.Input=m,v.Rule=y,v.Root=D,v.Node=w,o.registerPostcss(v),t.exports=v,v.default=v},7981:function(t,e,r){"use strict";let{SourceMapConsumer:n,SourceMapGenerator:i}=r(209),{existsSync:o,readFileSync:s}=r(4777),{dirname:a,join:u}=r(9830);function l(t){return Buffer?Buffer.from(t,"base64").toString():window.atob(t)}class c{constructor(t,e){if(!1===e.map)return;this.loadAnnotation(t),this.inline=this.startWith(this.annotation,"data:");let r=e.map?e.map.prev:void 0,n=this.loadMap(e.from,r);!this.mapFile&&e.from&&(this.mapFile=e.from),this.mapFile&&(this.root=a(this.mapFile)),n&&(this.text=n)}consumer(){return this.consumerCache||(this.consumerCache=new n(this.text)),this.consumerCache}withContent(){return!!(this.consumer().sourcesContent&&this.consumer().sourcesContent.length>0)}startWith(t,e){return!!t&&t.substr(0,e.length)===e}getAnnotationURL(t){return t.replace(/^\/\*\s*# sourceMappingURL=/,"").trim()}loadAnnotation(t){let e=t.match(/\/\*\s*# sourceMappingURL=/gm);if(!e)return;let r=t.lastIndexOf(e.pop()),n=t.indexOf("*/",r);r>-1&&n>-1&&(this.annotation=this.getAnnotationURL(t.substring(r,n)))}decodeInline(t){let e=/^data:application\/json;charset=utf-?8;base64,/,r=/^data:application\/json;base64,/,n=/^data:application\/json;charset=utf-?8,/,i=/^data:application\/json,/;if(n.test(t)||i.test(t))return decodeURIComponent(t.substr(RegExp.lastMatch.length));if(e.test(t)||r.test(t))return l(t.substr(RegExp.lastMatch.length));let o=t.match(/data:application\/json;([^,]+),/)[1];throw new Error("Unsupported source map encoding "+o)}loadFile(t){if(this.root=a(t),o(t))return this.mapFile=t,s(t,"utf-8").toString().trim()}loadMap(t,e){if(!1===e)return!1;if(e){if("string"===typeof e)return e;if("function"!==typeof e){if(e instanceof n)return i.fromSourceMap(e).toString();if(e instanceof i)return e.toString();if(this.isMap(e))return JSON.stringify(e);throw new Error("Unsupported previous source map format: "+e.toString())}{let r=e(t);if(r){let t=this.loadFile(r);if(!t)throw new Error("Unable to load previous source map: "+r.toString());return t}}}else{if(this.inline)return this.decodeInline(this.annotation);if(this.annotation){let e=this.annotation;return t&&(e=u(a(t),e)),this.loadFile(e)}}}isMap(t){return"object"===typeof t&&("string"===typeof t.mappings||"string"===typeof t._mappings||Array.isArray(t.sections))}}t.exports=c,c.default=c},1723:function(t,e,r){"use strict";let n=r(7647),i=r(1939),o=r(6461),s=r(1025);class a{constructor(t=[]){this.version="8.4.19",this.plugins=this.normalize(t)}use(t){return this.plugins=this.plugins.concat(this.normalize([t])),this}process(t,e={}){return 0===this.plugins.length&&"undefined"===typeof e.parser&&"undefined"===typeof e.stringifier&&"undefined"===typeof e.syntax?new n(this,t,e):new i(this,t,e)}normalize(t){let e=[];for(let r of t)if(!0===r.postcss?r=r():r.postcss&&(r=r.postcss),"object"===typeof r&&Array.isArray(r.plugins))e=e.concat(r.plugins);else if("object"===typeof r&&r.postcssPlugin)e.push(r);else if("function"===typeof r)e.push(r);else{if("object"!==typeof r||!r.parse&&!r.stringify)throw new Error(r+" is not a PostCSS plugin")}return e}}t.exports=a,a.default=a,s.registerProcessor(a),o.registerProcessor(a)},3632:function(t,e,r){"use strict";let n=r(1728);class i{constructor(t,e,r){this.processor=t,this.messages=[],this.root=e,this.opts=r,this.css=void 0,this.map=void 0}toString(){return this.css}warn(t,e={}){e.plugin||this.lastPlugin&&this.lastPlugin.postcssPlugin&&(e.plugin=this.lastPlugin.postcssPlugin);let r=new n(t,e);return this.messages.push(r),r}warnings(){return this.messages.filter((t=>"warning"===t.type))}get content(){return this.css}}t.exports=i,i.default=i},1025:function(t,e,r){"use strict";let n,i,o=r(1019);class s extends o{constructor(t){super(t),this.type="root",this.nodes||(this.nodes=[])}removeChild(t,e){let r=this.index(t);return!e&&0===r&&this.nodes.length>1&&(this.nodes[1].raws.before=this.nodes[r].raws.before),super.removeChild(t)}normalize(t,e,r){let n=super.normalize(t);if(e)if("prepend"===r)this.nodes.length>1?e.raws.before=this.nodes[1].raws.before:delete e.raws.before;else if(this.first!==e)for(let i of n)i.raws.before=e.raws.before;return n}toResult(t={}){let e=new n(new i,this,t);return e.stringify()}}s.registerLazyResult=t=>{n=t},s.registerProcessor=t=>{i=t},t.exports=s,s.default=s,o.registerRoot(s)},1675:function(t,e,r){"use strict";let n=r(1019),i=r(4715);class o extends n{constructor(t){super(t),this.type="rule",this.nodes||(this.nodes=[])}get selectors(){return i.comma(this.selector)}set selectors(t){let e=this.selector?this.selector.match(/,\s*/):null,r=e?e[0]:","+this.raw("between","beforeOpen");this.selector=t.join(r)}}t.exports=o,o.default=o,n.registerRule(o)},1062:function(t){"use strict";const e={colon:": ",indent:" ",beforeDecl:"\n",beforeRule:"\n",beforeOpen:" ",beforeClose:"\n",beforeComment:"\n",after:"\n",emptyBody:"",commentLeft:" ",commentRight:" ",semicolon:!1};function r(t){return t[0].toUpperCase()+t.slice(1)}class n{constructor(t){this.builder=t}stringify(t,e){if(!this[t.type])throw new Error("Unknown AST node type "+t.type+". Maybe you need to change PostCSS stringifier.");this[t.type](t,e)}document(t){this.body(t)}root(t){this.body(t),t.raws.after&&this.builder(t.raws.after)}comment(t){let e=this.raw(t,"left","commentLeft"),r=this.raw(t,"right","commentRight");this.builder("/*"+e+t.text+r+"*/",t)}decl(t,e){let r=this.raw(t,"between","colon"),n=t.prop+r+this.rawValue(t,"value");t.important&&(n+=t.raws.important||" !important"),e&&(n+=";"),this.builder(n,t)}rule(t){this.block(t,this.rawValue(t,"selector")),t.raws.ownSemicolon&&this.builder(t.raws.ownSemicolon,t,"end")}atrule(t,e){let r="@"+t.name,n=t.params?this.rawValue(t,"params"):"";if("undefined"!==typeof t.raws.afterName?r+=t.raws.afterName:n&&(r+=" "),t.nodes)this.block(t,r+n);else{let i=(t.raws.between||"")+(e?";":"");this.builder(r+n+i,t)}}body(t){let e=t.nodes.length-1;while(e>0){if("comment"!==t.nodes[e].type)break;e-=1}let r=this.raw(t,"semicolon");for(let n=0;n{if(o=t.raws[n],"undefined"!==typeof o)return!1}))}return"undefined"===typeof o&&(o=e[i]),a.rawCache[i]=o,o}rawSemicolon(t){let e;return t.walk((t=>{if(t.nodes&&t.nodes.length&&"decl"===t.last.type&&(e=t.raws.semicolon,"undefined"!==typeof e))return!1})),e}rawEmptyBody(t){let e;return t.walk((t=>{if(t.nodes&&0===t.nodes.length&&(e=t.raws.after,"undefined"!==typeof e))return!1})),e}rawIndent(t){if(t.raws.indent)return t.raws.indent;let e;return t.walk((r=>{let n=r.parent;if(n&&n!==t&&n.parent&&n.parent===t&&"undefined"!==typeof r.raws.before){let t=r.raws.before.split("\n");return e=t[t.length-1],e=e.replace(/\S/g,""),!1}})),e}rawBeforeComment(t,e){let r;return t.walkComments((t=>{if("undefined"!==typeof t.raws.before)return r=t.raws.before,r.includes("\n")&&(r=r.replace(/[^\n]+$/,"")),!1})),"undefined"===typeof r?r=this.raw(e,null,"beforeDecl"):r&&(r=r.replace(/\S/g,"")),r}rawBeforeDecl(t,e){let r;return t.walkDecls((t=>{if("undefined"!==typeof t.raws.before)return r=t.raws.before,r.includes("\n")&&(r=r.replace(/[^\n]+$/,"")),!1})),"undefined"===typeof r?r=this.raw(e,null,"beforeRule"):r&&(r=r.replace(/\S/g,"")),r}rawBeforeRule(t){let e;return t.walk((r=>{if(r.nodes&&(r.parent!==t||t.first!==r)&&"undefined"!==typeof r.raws.before)return e=r.raws.before,e.includes("\n")&&(e=e.replace(/[^\n]+$/,"")),!1})),e&&(e=e.replace(/\S/g,"")),e}rawBeforeClose(t){let e;return t.walk((t=>{if(t.nodes&&t.nodes.length>0&&"undefined"!==typeof t.raws.after)return e=t.raws.after,e.includes("\n")&&(e=e.replace(/[^\n]+$/,"")),!1})),e&&(e=e.replace(/\S/g,"")),e}rawBeforeOpen(t){let e;return t.walk((t=>{if("decl"!==t.type&&(e=t.raws.between,"undefined"!==typeof e))return!1})),e}rawColon(t){let e;return t.walkDecls((t=>{if("undefined"!==typeof t.raws.between)return e=t.raws.between.replace(/[^\s:]/g,""),!1})),e}beforeAfter(t,e){let r;r="decl"===t.type?this.raw(t,null,"beforeDecl"):"comment"===t.type?this.raw(t,null,"beforeComment"):"before"===e?this.raw(t,null,"beforeRule"):this.raw(t,null,"beforeClose");let n=t.parent,i=0;while(n&&"root"!==n.type)i+=1,n=n.parent;if(r.includes("\n")){let e=this.raw(t,null,"indent");if(e.length)for(let t=0;t=P}function $(t){if(M.length)return M.pop();if(R>=P)return;let S=!!t&&t.ignoreUnclosed;switch(E=N.charCodeAt(R),E){case o:case s:case u:case l:case a:C=R;do{C+=1,E=N.charCodeAt(C)}while(E===s||E===o||E===u||E===l||E===a);B=["space",N.slice(R,C)],R=C-1;break;case c:case d:case f:case m:case y:case g:case h:{let t=String.fromCharCode(E);B=[t,t,R];break}case p:if(U=j.length?j.pop()[1]:"",I=N.charCodeAt(R+1),"url"===U&&I!==e&&I!==r&&I!==s&&I!==o&&I!==u&&I!==a&&I!==l){C=R;do{if(O=!1,C=N.indexOf(")",C+1),-1===C){if(L||S){C=R;break}z("bracket")}F=C;while(N.charCodeAt(F-1)===n)F-=1,O=!O}while(O);B=["brackets",N.slice(R,C+1),R,C],R=C}else C=N.indexOf(")",R+1),x=N.slice(R,C+1),-1===C||k.test(x)?B=["(","(",R]:(B=["brackets",x,R,C],R=C);break;case e:case r:_=E===e?"'":'"',C=R;do{if(O=!1,C=N.indexOf(_,C+1),-1===C){if(L||S){C=R+1;break}z("string")}F=C;while(N.charCodeAt(F-1)===n)F-=1,O=!O}while(O);B=["string",N.slice(R,C+1),R,C],R=C;break;case D:w.lastIndex=R+1,w.test(N),C=0===w.lastIndex?N.length-1:w.lastIndex-2,B=["at-word",N.slice(R,C+1),R,C],R=C;break;case n:C=R,T=!0;while(N.charCodeAt(C+1)===n)C+=1,T=!T;if(E=N.charCodeAt(C+1),T&&E!==i&&E!==s&&E!==o&&E!==u&&E!==l&&E!==a&&(C+=1,A.test(N.charAt(C)))){while(A.test(N.charAt(C+1)))C+=1;N.charCodeAt(C+1)===s&&(C+=1)}B=["word",N.slice(R,C+1),R,C],R=C;break;default:E===i&&N.charCodeAt(R+1)===b?(C=N.indexOf("*/",R+2)+1,0===C&&(L||S?C=N.length:z("comment")),B=["comment",N.slice(R,C+1),R,C],R=C):(v.lastIndex=R+1,v.test(N),C=0===v.lastIndex?N.length-1:v.lastIndex-2,B=["word",N.slice(R,C+1),R,C],j.push(B),R=C);break}return R++,B}function V(t){M.push(t)}return{back:V,nextToken:$,endOfFile:H,position:q}}},2448:function(t){"use strict";let e={};t.exports=function(t){e[t]||(e[t]=!0,"undefined"!==typeof console&&console.warn&&console.warn(t))}},1728:function(t){"use strict";class e{constructor(t,e={}){if(this.type="warning",this.text=t,e.node&&e.node.source){let t=e.node.rangeBy(e);this.line=t.start.line,this.column=t.start.column,this.endLine=t.end.line,this.endColumn=t.end.column}for(let r in e)this[r]=e[r]}toString(){return this.node?this.node.error(this.text,{plugin:this.plugin,index:this.index,word:this.word}).message:this.plugin?this.plugin+": "+this.text:this.text}}t.exports=e,e.default=e},1036:function(t,e,r){const n=r(3719),i=r(3150),{isPlainObject:o}=r(6057),s=r(9996),a=r(9430),{parse:u}=r(20),l=["img","audio","video","picture","svg","object","map","iframe","embed"],c=["script","style"];function d(t,e){t&&Object.keys(t).forEach((function(r){e(t[r],r)}))}function p(t,e){return{}.hasOwnProperty.call(t,e)}function h(t,e){const r=[];return d(t,(function(t){e(t)&&r.push(t)})),r}function f(t){for(const e in t)if(p(t,e))return!1;return!0}function m(t){return t.map((function(t){if(!t.url)throw new Error("URL missing");return t.url+(t.w?` ${t.w}w`:"")+(t.h?` ${t.h}h`:"")+(t.d?` ${t.d}x`:"")})).join(", ")}t.exports=b;const g=/^[^\0\t\n\f\r /<=>]+$/;function b(t,e,r){if(null==t)return"";let D="",w="";function v(t,e){const r=this;this.tag=t,this.attribs=e||{},this.tagPosition=D.length,this.text="",this.mediaChildren=[],this.updateParentNodeText=function(){if(F.length){const t=F[F.length-1];t.text+=r.text}},this.updateParentNodeMediaChildren=function(){if(F.length&&l.includes(this.tag)){const t=F[F.length-1];t.mediaChildren.push(this.tag)}}}e=Object.assign({},b.defaults,e),e.parser=Object.assign({},y,e.parser),c.forEach((function(t){!1!==e.allowedTags&&(e.allowedTags||[]).indexOf(t)>-1&&!e.allowVulnerableTags&&console.warn(`\n\n⚠️ Your \`allowedTags\` option includes, \`${t}\`, which is inherently\nvulnerable to XSS attacks. Please remove it from \`allowedTags\`.\nOr, to disable this warning, add the \`allowVulnerableTags\` option\nand ensure you are accounting for this risk.\n\n`)}));const k=e.nonTextTags||["script","style","textarea","option"];let A,S;e.allowedAttributes&&(A={},S={},d(e.allowedAttributes,(function(t,e){A[e]=[];const r=[];t.forEach((function(t){"string"===typeof t&&t.indexOf("*")>=0?r.push(i(t).replace(/\\\*/g,".*")):A[e].push(t)})),r.length&&(S[e]=new RegExp("^("+r.join("|")+")$"))})));const E={},C={},_={};d(e.allowedClasses,(function(t,e){A&&(p(A,e)||(A[e]=[]),A[e].push("class")),E[e]=[],_[e]=[];const r=[];t.forEach((function(t){"string"===typeof t&&t.indexOf("*")>=0?r.push(i(t).replace(/\\\*/g,".*")):t instanceof RegExp?_[e].push(t):E[e].push(t)})),r.length&&(C[e]=new RegExp("^("+r.join("|")+")$"))}));const x={};let T,O,F,U,I,B,N;d(e.transformTags,(function(t,e){let r;"function"===typeof t?r=t:"string"===typeof t&&(r=b.simpleTransform(t)),"*"===e?T=r:x[e]=r}));let L=!1;R();const P=new n.Parser({onopentag:function(t,r){if(e.enforceHtmlBoundary&&"html"===t&&R(),B)return void N++;const n=new v(t,r);F.push(n);let i=!1;const l=!!n.text;let c;if(p(x,t)&&(c=x[t](t,r),n.attribs=r=c.attribs,void 0!==c.text&&(n.innerText=c.text),t!==c.tagName&&(n.name=t=c.tagName,I[O]=c.tagName)),T&&(c=T(t,r),n.attribs=r=c.attribs,t!==c.tagName&&(n.name=t=c.tagName,I[O]=c.tagName)),(!1!==e.allowedTags&&-1===(e.allowedTags||[]).indexOf(t)||"recursiveEscape"===e.disallowedTagsMode&&!f(U)||null!=e.nestingLimit&&O>=e.nestingLimit)&&(i=!0,U[O]=!0,"discard"===e.disallowedTagsMode&&-1!==k.indexOf(t)&&(B=!0,N=1),U[O]=!0),O++,i){if("discard"===e.disallowedTagsMode)return;w=D,D=""}D+="<"+t,"script"===t&&(e.allowedScriptHostnames||e.allowedScriptDomains)&&(n.innerText=""),(!A||p(A,t)||A["*"])&&d(r,(function(r,i){if(!g.test(i))return void delete n.attribs[i];let l=!1;if(!A||p(A,t)&&-1!==A[t].indexOf(i)||A["*"]&&-1!==A["*"].indexOf(i)||p(S,t)&&S[t].test(i)||S["*"]&&S["*"].test(i))l=!0;else if(A&&A[t])for(const e of A[t])if(o(e)&&e.name&&e.name===i){l=!0;let t="";if(!0===e.multiple){const n=r.split(" ");for(const r of n)-1!==e.values.indexOf(r)&&(""===t?t=r:t+=" "+r)}else e.values.indexOf(r)>=0&&(t=r);r=t}if(l){if(-1!==e.allowedSchemesAppliedToAttributes.indexOf(i)&&M(t,r))return void delete n.attribs[i];if("script"===t&&"src"===i){let t=!0;try{const n=q(r);if(e.allowedScriptHostnames||e.allowedScriptDomains){const r=(e.allowedScriptHostnames||[]).find((function(t){return t===n.url.hostname})),i=(e.allowedScriptDomains||[]).find((function(t){return n.url.hostname===t||n.url.hostname.endsWith(`.${t}`)}));t=r||i}}catch(c){t=!1}if(!t)return void delete n.attribs[i]}if("iframe"===t&&"src"===i){let t=!0;try{const n=q(r);if(n.isRelativeUrl)t=p(e,"allowIframeRelativeUrls")?e.allowIframeRelativeUrls:!e.allowedIframeHostnames&&!e.allowedIframeDomains;else if(e.allowedIframeHostnames||e.allowedIframeDomains){const r=(e.allowedIframeHostnames||[]).find((function(t){return t===n.url.hostname})),i=(e.allowedIframeDomains||[]).find((function(t){return n.url.hostname===t||n.url.hostname.endsWith(`.${t}`)}));t=r||i}}catch(c){t=!1}if(!t)return void delete n.attribs[i]}if("srcset"===i)try{let t=a(r);if(t.forEach((function(t){M("srcset",t.url)&&(t.evil=!0)})),t=h(t,(function(t){return!t.evil})),!t.length)return void delete n.attribs[i];r=m(h(t,(function(t){return!t.evil}))),n.attribs[i]=r}catch(c){return void delete n.attribs[i]}if("class"===i){const e=E[t],o=E["*"],a=C[t],u=_[t],l=C["*"],c=[a,l].concat(u).filter((function(t){return t}));if(r=V(r,e&&o?s(e,o):e||o,c),!r.length)return void delete n.attribs[i]}if("style"===i)try{const o=u(t+" {"+r+"}"),s=z(o,e.allowedStyles);if(r=H(s),0===r.length)return void delete n.attribs[i]}catch(c){return void delete n.attribs[i]}D+=" "+i,r&&r.length&&(D+='="'+j(r,!0)+'"')}else delete n.attribs[i]})),-1!==e.selfClosing.indexOf(t)?D+=" />":(D+=">",!n.innerText||l||e.textFilter||(D+=j(n.innerText),L=!0)),i&&(D=w+j(D),w="")},ontext:function(t){if(B)return;const r=F[F.length-1];let n;if(r&&(n=r.tag,t=void 0!==r.innerText?r.innerText:t),"discard"!==e.disallowedTagsMode||"script"!==n&&"style"!==n){const r=j(t,!1);e.textFilter&&!L?D+=e.textFilter(r,n):L||(D+=r)}else D+=t;if(F.length){const e=F[F.length-1];e.text+=t}},onclosetag:function(t){if(B){if(N--,N)return;B=!1}const r=F.pop();if(!r)return;if(r.tag!==t)return void F.push(r);B=!!e.enforceHtmlBoundary&&"html"===t,O--;const n=U[O];if(n){if(delete U[O],"discard"===e.disallowedTagsMode)return void r.updateParentNodeText();w=D,D=""}I[O]&&(t=I[O],delete I[O]),e.exclusiveFilter&&e.exclusiveFilter(r)?D=D.substr(0,r.tagPosition):(r.updateParentNodeMediaChildren(),r.updateParentNodeText(),-1===e.selfClosing.indexOf(t)?(D+="",n&&(D=w+j(D),w=""),L=!1):n&&(D=w,w=""))}},e.parser);return P.write(t),P.end(),D;function R(){D="",O=0,F=[],U={},I={},B=!1,N=0}function j(t,r){return"string"!==typeof t&&(t+=""),e.parser.decodeEntities&&(t=t.replace(/&/g,"&").replace(//g,">"),r&&(t=t.replace(/"/g,"""))),t=t.replace(/&(?![a-zA-Z0-9#]{1,20};)/g,"&").replace(//g,">"),r&&(t=t.replace(/"/g,""")),t}function M(t,r){r=r.replace(/[\x00-\x20]+/g,"");while(1){const t=r.indexOf("\x3c!--");if(-1===t)break;const e=r.indexOf("--\x3e",t+4);if(-1===e)break;r=r.substring(0,t)+r.substring(e+3)}const n=r.match(/^([a-zA-Z][a-zA-Z0-9.\-+]*):/);if(!n)return!!r.match(/^[/\\]{2}/)&&!e.allowProtocolRelative;const i=n[1].toLowerCase();return p(e.allowedSchemesByTag,t)?-1===e.allowedSchemesByTag[t].indexOf(i):!e.allowedSchemes||-1===e.allowedSchemes.indexOf(i)}function q(t){if(t=t.replace(/^(\w+:)?\s*[\\/]\s*[\\/]/,"$1//"),t.startsWith("relative:"))throw new Error("relative: exploit attempt");let e="relative://relative-site";for(let i=0;i<100;i++)e+=`/${i}`;const r=new URL(t,e),n=r&&"relative-site"===r.hostname&&"relative:"===r.protocol;return{isRelativeUrl:n,url:r}}function z(t,e){if(!e)return t;const r=t.nodes[0];let n;return n=e[r.selector]&&e["*"]?s(e[r.selector],e["*"]):e[r.selector]||e["*"],n&&(t.nodes[0].nodes=r.nodes.reduce($(n),[])),t}function H(t){return t.nodes[0].nodes.reduce((function(t,e){return t.push(`${e.prop}:${e.value}${e.important?" !important":""}`),t}),[]).join(";")}function $(t){return function(e,r){if(p(t,r.prop)){const n=t[r.prop].some((function(t){return t.test(r.value)}));n&&e.push(r)}return e}}function V(t,e,r){return e?(t=t.split(/\s+/),t.filter((function(t){return-1!==e.indexOf(t)||r.some((function(e){return e.test(t)}))})).join(" ")):t}}const y={decodeEntities:!0};b.defaults={allowedTags:["address","article","aside","footer","header","h1","h2","h3","h4","h5","h6","hgroup","main","nav","section","blockquote","dd","div","dl","dt","figcaption","figure","hr","li","main","ol","p","pre","ul","a","abbr","b","bdi","bdo","br","cite","code","data","dfn","em","i","kbd","mark","q","rb","rp","rt","rtc","ruby","s","samp","small","span","strong","sub","sup","time","u","var","wbr","caption","col","colgroup","table","tbody","td","tfoot","th","thead","tr"],disallowedTagsMode:"discard",allowedAttributes:{a:["href","name","target"],img:["src","srcset","alt","title","width","height","loading"]},selfClosing:["img","br","hr","area","base","basefont","input","link","meta"],allowedSchemes:["http","https","ftp","mailto","tel"],allowedSchemesByTag:{},allowedSchemesAppliedToAttributes:["href","src","cite"],allowProtocolRelative:!0,enforceHtmlBoundary:!1},b.simpleTransform=function(t,e,r){return r=void 0===r||r,e=e||{},function(n,i){let o;if(r)for(o in e)i[o]=e[o];else i=e;return{tagName:t,attribs:i}}}},5926:function(t,e,r){"use strict";r.d(e,{Z:function(){return Q}});r(7658);var n=r(6252),i=r(3577),o=r(2262),s=r(9963),a=r(9150),u=r(2201),l=r(5801),c=r(9917),d=r(6558),p=r(8966),h=r(631),f=r(3649);const m={id:"workout-form"},g=["onSubmit"],b={class:"form-items"},y={key:0,class:"form-item-radio"},D=["checked","disabled"],w={for:"withGpx"},v=["checked","disabled"],k={for:"withoutGpx"},A={class:"form-item"},S=["disabled"],E=["value"],C={key:1,class:"form-item"},_={for:"gpxFile"},x=["disabled"],T={class:"files-help info-box"},O={key:2,class:"form-item"},F={for:"title"},U=["required","disabled"],I={key:3},B={class:"workout-date-duration"},N={class:"form-item"},L={class:"workout-date-time"},P=["disabled"],R=["disabled"],j={class:"form-item"},M=["disabled"],q=["disabled"],z=["disabled"],H={class:"form-item"},$=["disabled"],V={class:"form-item"},W={key:1},G={key:2,class:"form-buttons"},Z=["disabled"],K=["onClick"];var Y=(0,n.aZ)({__name:"WorkoutEdition",props:{authUser:null,sports:null,isCreation:{type:Boolean,default:!1},loading:{type:Boolean,default:!1},workout:{default:()=>({})}},setup(t){const e=t,{t:r}=(0,a.QT)(),Y=(0,c.o)(),X=(0,u.tv)(),{authUser:J,workout:Q,isCreation:tt,loading:et}=(0,o.BK)(e),rt=(0,n.Fl)((()=>(0,h.xH)(e.sports,r,"is_active_for_user",Q.value.id?[Q.value.sport_id]:[]))),nt=(0,n.Fl)((()=>Y.getters[l.SY.GETTERS.APP_CONFIG])),it=nt.value.max_single_file_size?(0,p.Z)(nt.value.max_single_file_size):"",ot=nt.value.gpx_limit_import,st=nt.value.max_zip_file_size?(0,p.Z)(nt.value.max_zip_file_size):"",at=(0,n.Fl)((()=>Y.getters[l.SY.GETTERS.ERROR_MESSAGES])),ut=(0,o.qj)({sport_id:"",title:"",notes:"",workoutDate:"",workoutTime:"",workoutDurationHour:"",workoutDurationMinutes:"",workoutDurationSeconds:"",workoutDistance:""}),lt=(0,o.iH)(e.workout.id?e.workout.with_gpx:e.isCreation);let ct=null;const dt=(0,o.iH)(!1),pt=(0,o.iH)([]);function ht(t){ut.notes=t}function ft(){lt.value=!lt.value,dt.value=!1}function mt(t){t.target.files&&(ct=t.target.files[0])}function gt(t){if(ut.sport_id=`${t.sport_id}`,ut.title=t.title,ut.notes=t.notes,!t.with_gpx){const r=(0,d.Jo)((0,d.eB)(t.workout_date,e.authUser.timezone),"yyyy-MM-dd"),n=t.duration.split(":");ut.workoutDistance=`${J.value.imperial_units?(0,f.sC)(t.distance,"km","mi",2):parseFloat(t.distance.toFixed(2))}`,ut.workoutDate=r.workout_date,ut.workoutTime=r.workout_time,ut.workoutDurationHour=n[0],ut.workoutDurationMinutes=n[1],ut.workoutDurationSeconds=n[2]}}function bt(){return pt.value.includes("workouts.INVALID_DISTANCE")}function yt(){return pt.value.includes("workouts.INVALID_DURATION")}function Dt(t){pt.value=[],t.title=ut.title,t.duration=3600*+ut.workoutDurationHour+60*+ut.workoutDurationMinutes+ +ut.workoutDurationSeconds,t.duration<=0&&pt.value.push("workouts.INVALID_DURATION"),t.distance=J.value.imperial_units?(0,f.sC)(+ut.workoutDistance,"mi","km",3):+ut.workoutDistance,t.distance<=0&&pt.value.push("workouts.INVALID_DISTANCE"),t.workout_date=`${ut.workoutDate} ${ut.workoutTime}`}function wt(){const t={sport_id:+ut.sport_id,notes:ut.notes};if(e.workout.id)e.workout.with_gpx?t.title=ut.title:Dt(t),Y.dispatch(l.aX.ACTIONS.EDIT_WORKOUT,{workoutId:e.workout.id,data:t});else if(lt.value){if(!ct){const t="workouts.NO_FILE_PROVIDED";return void Y.commit(l.SY.MUTATIONS.SET_ERROR_MESSAGES,t)}t.file=ct,Y.dispatch(l.aX.ACTIONS.ADD_WORKOUT,t)}else Dt(t),pt.value.length>0?Y.commit(l.SY.MUTATIONS.SET_ERROR_MESSAGES,pt.value):Y.dispatch(l.aX.ACTIONS.ADD_WORKOUT_WITHOUT_GPX,t)}function vt(){e.workout.id?X.push({name:"Workout",params:{workoutId:e.workout.id}}):X.go(-1)}function kt(){dt.value=!0}return(0,n.bv)((()=>{e.workout.id&>(e.workout)})),(0,n.Ah)((()=>Y.commit(l.SY.MUTATIONS.EMPTY_ERROR_MESSAGES))),(0,n.YP)((()=>e.workout),(async(t,e)=>{t!==e&&t&&t.id&>(t)})),(t,e)=>{const r=(0,n.up)("CustomTextArea"),a=(0,n.up)("ErrorMessage"),u=(0,n.up)("Loader"),l=(0,n.up)("Card");return(0,n.wg)(),(0,n.iD)("div",{id:"workout-edition",class:(0,i.C_)(["center-card with-margin",{"center-form":(0,o.SU)(Q)&&(0,o.SU)(Q).with_gpx}])},[(0,n.Wm)(l,null,{title:(0,n.w5)((()=>[(0,n.Uk)((0,i.zw)(t.$t(`workouts.${(0,o.SU)(tt)?"ADD":"EDIT"}_WORKOUT`)),1)])),content:(0,n.w5)((()=>[(0,n._)("div",m,[(0,n._)("form",{class:(0,i.C_)({errors:dt.value}),onSubmit:(0,s.iM)(wt,["prevent"])},[(0,n._)("div",b,[(0,o.SU)(tt)?((0,n.wg)(),(0,n.iD)("div",y,[(0,n._)("div",null,[(0,n._)("input",{id:"withGpx",type:"radio",checked:lt.value,disabled:(0,o.SU)(et),onClick:ft},null,8,D),(0,n._)("label",w,(0,i.zw)(t.$t("workouts.WITH_GPX")),1)]),(0,n._)("div",null,[(0,n._)("input",{id:"withoutGpx",type:"radio",checked:!lt.value,disabled:(0,o.SU)(et),onClick:ft},null,8,v),(0,n._)("label",k,(0,i.zw)(t.$t("workouts.WITHOUT_GPX")),1)])])):(0,n.kq)("",!0),(0,n._)("div",A,[(0,n._)("label",null,(0,i.zw)(t.$t("workouts.SPORT",1))+": ",1),(0,n.wy)((0,n._)("select",{id:"sport",required:"",onInvalid:kt,disabled:(0,o.SU)(et),"onUpdate:modelValue":e[0]||(e[0]=t=>ut.sport_id=t)},[((0,n.wg)(!0),(0,n.iD)(n.HY,null,(0,n.Ko)((0,o.SU)(rt),(t=>((0,n.wg)(),(0,n.iD)("option",{value:t.id,key:t.id},(0,i.zw)(t.translatedLabel),9,E)))),128))],40,S),[[s.bM,ut.sport_id]])]),(0,o.SU)(tt)&<.value?((0,n.wg)(),(0,n.iD)("div",C,[(0,n._)("label",_,(0,i.zw)(t.$t("workouts.GPX_FILE"))+" "+(0,i.zw)(t.$t("workouts.ZIP_ARCHIVE_DESCRIPTION"))+": ",1),(0,n._)("input",{id:"gpxFile",name:"gpxFile",type:"file",accept:".gpx, .zip",disabled:(0,o.SU)(et),required:"",onInvalid:kt,onInput:mt},null,40,x),(0,n._)("div",T,[(0,n._)("div",null,[(0,n._)("strong",null,(0,i.zw)(t.$t("workouts.GPX_FILE"))+":",1),(0,n._)("ul",null,[(0,n._)("li",null,(0,i.zw)(t.$t("workouts.MAX_SIZE"))+": "+(0,i.zw)((0,o.SU)(it)),1)])]),(0,n._)("div",null,[(0,n._)("strong",null,(0,i.zw)(t.$t("workouts.ZIP_ARCHIVE"))+":",1),(0,n._)("ul",null,[(0,n._)("li",null,(0,i.zw)(t.$t("workouts.NO_FOLDER")),1),(0,n._)("li",null,(0,i.zw)(t.$t("workouts.MAX_FILES"))+": "+(0,i.zw)((0,o.SU)(ot)),1),(0,n._)("li",null,(0,i.zw)(t.$t("workouts.MAX_SIZE"))+": "+(0,i.zw)((0,o.SU)(st)),1)])])])])):((0,n.wg)(),(0,n.iD)("div",O,[(0,n._)("label",F,(0,i.zw)(t.$t("workouts.TITLE"))+": ",1),(0,n.wy)((0,n._)("input",{id:"title",name:"title",type:"text",required:!(0,o.SU)(tt),onInvalid:kt,disabled:(0,o.SU)(et),"onUpdate:modelValue":e[1]||(e[1]=t=>ut.title=t)},null,40,U),[[s.nr,ut.title]])])),lt.value?(0,n.kq)("",!0):((0,n.wg)(),(0,n.iD)("div",I,[(0,n._)("div",B,[(0,n._)("div",N,[(0,n._)("label",null,(0,i.zw)(t.$t("workouts.WORKOUT_DATE"))+":",1),(0,n._)("div",L,[(0,n.wy)((0,n._)("input",{id:"workout-date",name:"workout-date",type:"date",required:"",onInvalid:kt,disabled:(0,o.SU)(et),"onUpdate:modelValue":e[2]||(e[2]=t=>ut.workoutDate=t)},null,40,P),[[s.nr,ut.workoutDate]]),(0,n.wy)((0,n._)("input",{id:"workout-time",name:"workout-time",class:"workout-time",type:"time",required:"",onInvalid:kt,disabled:(0,o.SU)(et),"onUpdate:modelValue":e[3]||(e[3]=t=>ut.workoutTime=t)},null,40,R),[[s.nr,ut.workoutTime]])])]),(0,n._)("div",j,[(0,n._)("label",null,(0,i.zw)(t.$t("workouts.DURATION"))+":",1),(0,n._)("div",null,[(0,n.wy)((0,n._)("input",{id:"workout-duration-hour",name:"workout-duration-hour",class:(0,i.C_)(["workout-duration",{errored:yt()}]),type:"text",placeholder:"HH",minlength:"1",maxlength:"2",pattern:"^([0-1]?[0-9]|2[0-3])$",required:"",onInvalid:kt,disabled:(0,o.SU)(et),"onUpdate:modelValue":e[4]||(e[4]=t=>ut.workoutDurationHour=t)},null,42,M),[[s.nr,ut.workoutDurationHour]]),(0,n.Uk)(" : "),(0,n.wy)((0,n._)("input",{id:"workout-duration-minutes",name:"workout-duration-minutes",class:(0,i.C_)(["workout-duration",{errored:yt()}]),type:"text",pattern:"^([0-5][0-9])$",minlength:"2",maxlength:"2",placeholder:"MM",required:"",onInvalid:kt,disabled:(0,o.SU)(et),"onUpdate:modelValue":e[5]||(e[5]=t=>ut.workoutDurationMinutes=t)},null,42,q),[[s.nr,ut.workoutDurationMinutes]]),(0,n.Uk)(" : "),(0,n.wy)((0,n._)("input",{id:"workout-duration-seconds",name:"workout-duration-seconds",class:(0,i.C_)(["workout-duration",{errored:yt()}]),type:"text",pattern:"^([0-5][0-9])$",minlength:"2",maxlength:"2",placeholder:"SS",required:"",onInvalid:kt,disabled:(0,o.SU)(et),"onUpdate:modelValue":e[6]||(e[6]=t=>ut.workoutDurationSeconds=t)},null,42,z),[[s.nr,ut.workoutDurationSeconds]])])])]),(0,n._)("div",H,[(0,n._)("label",null,(0,i.zw)(t.$t("workouts.DISTANCE"))+" ("+(0,i.zw)((0,o.SU)(J).imperial_units?"mi":"km")+"): ",1),(0,n.wy)((0,n._)("input",{class:(0,i.C_)({errored:bt()}),name:"workout-distance",type:"number",min:"0",step:"0.001",required:"",onInvalid:kt,disabled:(0,o.SU)(et),"onUpdate:modelValue":e[7]||(e[7]=t=>ut.workoutDistance=t)},null,42,$),[[s.nr,ut.workoutDistance]])])])),(0,n._)("div",V,[(0,n._)("label",null,(0,i.zw)(t.$t("workouts.NOTES"))+": ",1),(0,n.Wm)(r,{name:"notes",input:ut.notes,disabled:(0,o.SU)(et),onUpdateValue:ht},null,8,["input","disabled"])])]),(0,o.SU)(at)?((0,n.wg)(),(0,n.j4)(a,{key:0,message:(0,o.SU)(at)},null,8,["message"])):(0,n.kq)("",!0),(0,o.SU)(et)?((0,n.wg)(),(0,n.iD)("div",W,[(0,n.Wm)(u)])):((0,n.wg)(),(0,n.iD)("div",G,[(0,n._)("button",{class:"confirm",type:"submit",disabled:(0,o.SU)(et)},(0,i.zw)(t.$t("buttons.SUBMIT")),9,Z),(0,n._)("button",{class:"cancel",onClick:(0,s.iM)(vt,["prevent"])},(0,i.zw)(t.$t("buttons.CANCEL")),9,K)]))],42,g)])])),_:1})],2)}}}),X=r(3744);const J=(0,X.Z)(Y,[["__scopeId","data-v-4657c3ad"]]);var Q=J},4189:function(t,e,r){"use strict";r.r(e),r.d(e,{default:function(){return p}});var n=r(6252),i=r(2262),o=r(5926),s=r(5801),a=r(9917);const u={id:"add-workout",class:"view"},l={class:"container"};var c=(0,n.aZ)({__name:"AddWorkout",setup(t){const e=(0,a.o)(),r=(0,n.Fl)((()=>e.getters[s.O8.GETTERS.SPORTS])),c=(0,n.Fl)((()=>e.getters[s.YN.GETTERS.AUTH_USER_PROFILE])),d=(0,n.Fl)((()=>e.getters[s.aX.GETTERS.WORKOUT_DATA]));return(t,e)=>((0,n.wg)(),(0,n.iD)("div",u,[(0,n._)("div",l,[(0,n.Wm)(o.Z,{authUser:(0,i.SU)(c),sports:(0,i.SU)(r),isCreation:!0,loading:(0,i.SU)(d).loading},null,8,["authUser","sports","loading"])])]))}});const d=c;var p=d},8237:function(t,e,r){"use strict";r.r(e),r.d(e,{default:function(){return h}});var n=r(6252),i=r(2262),o=r(2201),s=r(5926),a=r(5801),u=r(9917);const l={id:"edit-workout",class:"view"},c={class:"container"};var d=(0,n.aZ)({__name:"EditWorkout",setup(t){const e=(0,o.yj)(),r=(0,u.o)(),d=(0,n.Fl)((()=>r.getters[a.YN.GETTERS.AUTH_USER_PROFILE])),p=(0,n.Fl)((()=>r.getters[a.O8.GETTERS.SPORTS])),h=(0,n.Fl)((()=>r.getters[a.aX.GETTERS.WORKOUT_DATA]));return(0,n.wF)((()=>{r.dispatch(a.aX.ACTIONS.GET_WORKOUT_DATA,{workoutId:e.params.workoutId})})),(0,n.YP)((()=>e.params.workoutId),(async t=>{t||r.commit(a.aX.MUTATIONS.EMPTY_WORKOUT)})),(t,e)=>((0,n.wg)(),(0,n.iD)("div",l,[(0,n._)("div",c,[(0,i.SU)(h).workout.id?((0,n.wg)(),(0,n.j4)(s.Z,{key:0,authUser:(0,i.SU)(d),sports:(0,i.SU)(p),workout:(0,i.SU)(h).workout,loading:(0,i.SU)(h).loading},null,8,["authUser","sports","workout","loading"])):(0,n.kq)("",!0)])]))}});const p=d;var h=p},3847:function(t,e,r){"use strict";r.r(e),r.d(e,{default:function(){return go}});var n=r(6252),i=r(2262),o=r(2201),s=r(8273),a=(r(7658),r(3577)),u=r(9963),l=r(5167);const c=t=>((0,n.dD)("data-v-4d9f9a8a"),t=t(),(0,n.Cn)(),t),d={id:"workout-card-title"},p=["title"],h=c((()=>(0,n._)("i",{class:"fa fa-chevron-left","aria-hidden":"true"},null,-1))),f=[h],m={class:"workout-card-title"},g={class:"workout-title-date"},b={key:0,class:"workout-title"},y={key:1,class:"workout-title"},D={class:"workout-segment"},w=c((()=>(0,n._)("i",{class:"fa fa-map-marker","aria-hidden":"true"},null,-1))),v={class:"workout-date"},k={class:"workout-link"},A=["title"],S=c((()=>(0,n._)("i",{class:"fa fa-chevron-right","aria-hidden":"true"},null,-1))),E=[S];var C=(0,n.aZ)({__name:"WorkoutCardTitle",props:{sport:null,workoutObject:null},emits:["displayModal"],setup(t,{emit:e}){const r=t,{sport:o,workoutObject:s}=(0,i.BK)(r);async function c(t){await l.Z.get(`workouts/${t}/gpx/download`,{responseType:"blob"}).then((e=>{const r=window.URL.createObjectURL(new Blob([e.data],{type:"application/gpx+xml"})),n=document.createElement("a");n.href=r,n.setAttribute("download",`${t}.gpx`),document.body.appendChild(n),n.click()}))}return(t,r)=>{const l=(0,n.up)("SportImage"),h=(0,n.up)("router-link");return(0,n.wg)(),(0,n.iD)("div",d,[(0,n._)("div",{class:(0,a.C_)(["workout-previous workout-arrow",{inactive:!(0,i.SU)(s).previousUrl}]),title:(0,i.SU)(s).previousUrl?t.$t(`workouts.PREVIOUS_${(0,i.SU)(s).type}`):t.$t(`workouts.NO_PREVIOUS_${(0,i.SU)(s).type}`),onClick:r[0]||(r[0]=e=>(0,i.SU)(s).previousUrl?t.$router.push((0,i.SU)(s).previousUrl):null)},f,10,p),(0,n._)("div",m,[(0,n.Wm)(l,{"sport-label":(0,i.SU)(o).label,color:(0,i.SU)(o).color},null,8,["sport-label","color"]),(0,n._)("div",g,["WORKOUT"===(0,i.SU)(s).type?((0,n.wg)(),(0,n.iD)("div",b,[(0,n._)("span",null,(0,a.zw)((0,i.SU)(s).title),1),(0,n._)("i",{class:"fa fa-edit","aria-hidden":"true",onClick:r[1]||(r[1]=e=>t.$router.push({name:"EditWorkout",params:{workoutId:(0,i.SU)(s).workoutId}}))}),(0,i.SU)(s).with_gpx?((0,n.wg)(),(0,n.iD)("i",{key:0,class:"fa fa-download","aria-hidden":"true",onClick:r[2]||(r[2]=(0,u.iM)((t=>c((0,i.SU)(s).workoutId)),["prevent"]))})):(0,n.kq)("",!0),(0,n._)("i",{class:"fa fa-trash","aria-hidden":"true",onClick:r[3]||(r[3]=t=>e("displayModal",!0))})])):((0,n.wg)(),(0,n.iD)("div",y,[(0,n.Uk)((0,a.zw)((0,i.SU)(s).title)+" ",1),(0,n._)("span",D,[(0,n.Uk)(" — "),w,(0,n.Uk)(" "+(0,a.zw)(t.$t("workouts.SEGMENT"))+" "+(0,a.zw)((0,i.SU)(s).segmentId+1),1)])])),(0,n._)("div",v,[(0,n.Uk)((0,a.zw)((0,i.SU)(s).workoutDate)+" - "+(0,a.zw)((0,i.SU)(s).workoutTime)+" ",1),(0,n._)("span",k,["SEGMENT"===(0,i.SU)(s).type?((0,n.wg)(),(0,n.j4)(h,{key:0,to:{name:"Workout",params:{workoutId:(0,i.SU)(s).workoutId}}},{default:(0,n.w5)((()=>[(0,n.Uk)(" > "+(0,a.zw)(t.$t("workouts.BACK_TO_WORKOUT")),1)])),_:1},8,["to"])):(0,n.kq)("",!0)])])])]),(0,n._)("div",{class:(0,a.C_)(["workout-next workout-arrow",{inactive:!(0,i.SU)(s).nextUrl}]),title:(0,i.SU)(s).nextUrl?t.$t(`workouts.NEXT_${(0,i.SU)(s).type}`):t.$t(`workouts.NO_NEXT_${(0,i.SU)(s).type}`),onClick:r[4]||(r[4]=e=>(0,i.SU)(s).nextUrl?t.$router.push((0,i.SU)(s).nextUrl):null)},E,10,A)])}}}),_=r(3744);const x=(0,_.Z)(C,[["__scopeId","data-v-4d9f9a8a"]]);var T=x;const O=t=>((0,n.dD)("data-v-1a5282f6"),t=t(),(0,n.Cn)(),t),F={key:0,class:"workout-record"},U=O((()=>(0,n._)("sup",null,[(0,n._)("i",{class:"fa fa-trophy","aria-hidden":"true"})],-1))),I=[U];var B=(0,n.aZ)({__name:"WorkoutRecord",props:{recordType:null,workoutObject:null},setup(t){const e=t,{recordType:r,workoutObject:o}=(0,i.BK)(e);return(t,e)=>(0,i.SU)(o).records&&(0,i.SU)(o).records.find((t=>t.record_type===(0,i.SU)(r)))?((0,n.wg)(),(0,n.iD)("span",F,I)):(0,n.kq)("",!0)}});const N=(0,_.Z)(B,[["__scopeId","data-v-1a5282f6"]]);var L=N,P=r(9150);const R=["N","NNE","NE","ENE","E","ESE","SE","SSE","S","SSW","SW","WSW","W","WNW","NW","NNW"],j=t=>{const e=Math.floor(t/22.5+.5);return R[e%16]},M={class:"wind"},q={class:"wind-bearing"},z=["title"];var H=(0,n.aZ)({__name:"WeatherWind",props:{weather:null,useImperialUnits:{type:Boolean}},setup(t){const e=t,{useImperialUnits:r,weather:o}=(0,i.BK)(e),{t:s}=(0,P.QT)();function u(t){return s(`workouts.WEATHER.WIND_DIRECTIONS.${j(t)}`)}return(t,e)=>{const s=(0,n.up)("Distance");return(0,n.wg)(),(0,n.iD)("div",M,[(0,n.Wm)(s,{distance:(0,i.SU)(o).wind,unitFrom:"m",digits:1,displayUnit:!1,useImperialUnits:(0,i.SU)(r)},null,8,["distance","useImperialUnits"]),(0,n.Uk)(" "+(0,a.zw)((0,i.SU)(r)?"ft":"m")+"/s ",1),(0,n._)("div",q,[(0,i.SU)(o).windBearing?((0,n.wg)(),(0,n.iD)("i",{key:0,class:"fa fa-long-arrow-down",style:(0,a.j5)({transform:`rotate(${(0,i.SU)(o).windBearing}deg)`}),"aria-hidden":"true",title:u((0,i.SU)(o).windBearing)},null,12,z)):(0,n.kq)("",!0)])])}}});const $=(0,_.Z)(H,[["__scopeId","data-v-46a7c31c"]]);var V=$;const W=t=>((0,n.dD)("data-v-76e9ab62"),t=t(),(0,n.Cn)(),t),G={key:0,id:"workout-weather"},Z={class:"weather-table"},K=W((()=>(0,n._)("th",null,null,-1))),Y={class:"weather-th"},X=["src","alt","title"],J={class:"weather-th"},Q=["src","alt","title"],tt=["alt","title"],et=["alt","title"],rt=["alt","title"];var nt=(0,n.aZ)({__name:"WorkoutWeather",props:{workoutObject:null,useImperialUnits:{type:Boolean}},setup(t){const e=t,{useImperialUnits:r,workoutObject:o}=(0,i.BK)(e);return(t,e)=>(0,i.SU)(o).weatherStart&&(0,i.SU)(o).weatherEnd?((0,n.wg)(),(0,n.iD)("div",G,[(0,n._)("table",Z,[(0,n._)("thead",null,[(0,n._)("tr",null,[K,(0,n._)("th",null,[(0,n._)("div",Y,[(0,n.Uk)((0,a.zw)(t.$t("workouts.START"))+" ",1),(0,n._)("img",{class:"weather-img",src:`/img/weather/${(0,i.SU)(o).weatherStart.icon}.svg`,alt:t.$t(`workouts.WEATHER.DARK_SKY.${(0,i.SU)(o).weatherStart.icon}`),title:t.$t(`workouts.WEATHER.DARK_SKY.${(0,i.SU)(o).weatherStart.icon}`)},null,8,X)])]),(0,n._)("th",null,[(0,n._)("div",J,[(0,n.Uk)((0,a.zw)(t.$t("workouts.END"))+" ",1),(0,n._)("img",{class:"weather-img",src:`/img/weather/${(0,i.SU)(o).weatherEnd.icon}.svg`,alt:t.$t(`workouts.WEATHER.DARK_SKY.${(0,i.SU)(o).weatherEnd.icon}`),title:t.$t(`workouts.WEATHER.DARK_SKY.${(0,i.SU)(o).weatherEnd.icon}`)},null,8,Q)])])])]),(0,n._)("tbody",null,[(0,n._)("tr",null,[(0,n._)("td",null,[(0,n._)("img",{class:"weather-img weather-img-small",src:"/img/weather/temperature.svg",alt:t.$t("workouts.WEATHER.TEMPERATURE"),title:t.$t("workouts.WEATHER.TEMPERATURE")},null,8,tt)]),(0,n._)("td",null,(0,a.zw)(Number((0,i.SU)(o).weatherStart.temperature).toFixed(1))+"°C ",1),(0,n._)("td",null,(0,a.zw)(Number((0,i.SU)(o).weatherEnd.temperature).toFixed(1))+"°C ",1)]),(0,n._)("tr",null,[(0,n._)("td",null,[(0,n._)("img",{class:"weather-img weather-img-small",src:"/img/weather/pour-rain.svg",alt:t.$t("workouts.WEATHER.HUMIDITY"),title:t.$t("workouts.WEATHER.HUMIDITY")},null,8,et)]),(0,n._)("td",null,(0,a.zw)(Number(100*(0,i.SU)(o).weatherStart.humidity).toFixed(1))+"% ",1),(0,n._)("td",null,(0,a.zw)(Number(100*(0,i.SU)(o).weatherEnd.humidity).toFixed(1))+"% ",1)]),(0,n._)("tr",null,[(0,n._)("td",null,[(0,n._)("img",{class:"weather-img weather-img-small",src:"/img/weather/breeze.svg",alt:t.$t("workouts.WEATHER.WIND"),title:t.$t("workouts.WEATHER.WIND")},null,8,rt)]),(0,n._)("td",null,[(0,n.Wm)(V,{weather:(0,i.SU)(o).weatherStart,useImperialUnits:(0,i.SU)(r)},null,8,["weather","useImperialUnits"])]),(0,n._)("td",null,[(0,n.Wm)(V,{weather:(0,i.SU)(o).weatherEnd,useImperialUnits:(0,i.SU)(r)},null,8,["weather","useImperialUnits"])])])])])])):(0,n.kq)("",!0)}});const it=(0,_.Z)(nt,[["__scopeId","data-v-76e9ab62"]]);var ot=it;const st=t=>((0,n.dD)("data-v-74c5993b"),t=t(),(0,n.Cn)(),t),at={id:"workout-info"},ut={class:"workout-data"},lt=st((()=>(0,n._)("i",{class:"fa fa-clock-o","aria-hidden":"true"},null,-1))),ct={class:"label"},dt={class:"value"},pt={key:0},ht={class:"value"},ft={class:"value"},mt={class:"workout-data"},gt=st((()=>(0,n._)("i",{class:"fa fa-road","aria-hidden":"true"},null,-1))),bt={class:"label"},yt={class:"workout-data"},Dt=st((()=>(0,n._)("i",{class:"fa fa-tachometer","aria-hidden":"true"},null,-1))),wt={class:"label"},vt=st((()=>(0,n._)("br",null,null,-1))),kt={class:"label"},At={key:0,class:"workout-data"},St=["alt"],Et={class:"label"},Ct=st((()=>(0,n._)("br",null,null,-1))),_t={class:"label"},xt={key:1,class:"workout-data"},Tt=st((()=>(0,n._)("i",{class:"fa fa-location-arrow","aria-hidden":"true"},null,-1))),Ot={class:"label"},Ft=st((()=>(0,n._)("br",null,null,-1))),Ut={class:"label"};var It=(0,n.aZ)({__name:"WorkoutData",props:{workoutObject:null,useImperialUnits:{type:Boolean},displayHARecord:{type:Boolean}},setup(t){const e=t,{displayHARecord:r,workoutObject:o,useImperialUnits:s}=(0,i.BK)(e),u=(0,n.Fl)((()=>"0:00:00"!==e.workoutObject.pauses&&null!==e.workoutObject.pauses));return(t,e)=>{const l=(0,n.up)("Distance");return(0,n.wg)(),(0,n.iD)("div",at,[(0,n._)("div",ut,[lt,(0,n._)("span",ct,(0,a.zw)(t.$t("workouts.DURATION")),1),(0,n.Uk)(": "),(0,n._)("span",dt,(0,a.zw)((0,i.SU)(o).moving),1),(0,n.Wm)(L,{workoutObject:(0,i.SU)(o),recordType:"LD"},null,8,["workoutObject"]),(0,i.SU)(u)?((0,n.wg)(),(0,n.iD)("div",pt,[(0,n.Uk)(" ("+(0,a.zw)(t.$t("workouts.PAUSES"))+": ",1),(0,n._)("span",ht,(0,a.zw)((0,i.SU)(o).pauses),1),(0,n.Uk)(" - "+(0,a.zw)(t.$t("workouts.TOTAL_DURATION"))+": ",1),(0,n._)("span",ft,(0,a.zw)((0,i.SU)(o).duration)+")",1)])):(0,n.kq)("",!0)]),(0,n._)("div",mt,[gt,(0,n._)("span",bt,(0,a.zw)(t.$t("workouts.DISTANCE")),1),(0,n.Uk)(": "),(0,n.Wm)(l,{distance:(0,i.SU)(o).distance,digits:3,unitFrom:"km",strong:!0,useImperialUnits:(0,i.SU)(s)},null,8,["distance","useImperialUnits"]),(0,n.Wm)(L,{workoutObject:(0,i.SU)(o),recordType:"FD"},null,8,["workoutObject"])]),(0,n._)("div",yt,[Dt,(0,n._)("span",wt,(0,a.zw)(t.$t("workouts.AVERAGE_SPEED")),1),(0,n.Uk)(": "),(0,n.Wm)(l,{distance:(0,i.SU)(o).aveSpeed,unitFrom:"km",speed:!0,strong:!0,useImperialUnits:(0,i.SU)(s)},null,8,["distance","useImperialUnits"]),(0,n.Wm)(L,{workoutObject:(0,i.SU)(o),recordType:"AS"},null,8,["workoutObject"]),vt,(0,n._)("span",kt,(0,a.zw)(t.$t("workouts.MAX_SPEED")),1),(0,n.Uk)(": "),(0,n.Wm)(l,{distance:(0,i.SU)(o).maxSpeed,unitFrom:"km",speed:!0,strong:!0,useImperialUnits:(0,i.SU)(s)},null,8,["distance","useImperialUnits"]),(0,n.Wm)(L,{workoutObject:(0,i.SU)(o),recordType:"MS"},null,8,["workoutObject"])]),null!==(0,i.SU)(o).maxAlt&&null!==(0,i.SU)(o).minAlt?((0,n.wg)(),(0,n.iD)("div",At,[(0,n._)("img",{class:"mountains",src:"/img/workouts/mountains.svg",alt:t.$t("workouts.ELEVATION")},null,8,St),(0,n._)("span",Et,(0,a.zw)(t.$t("workouts.MIN_ALTITUDE")),1),(0,n.Uk)(": "),(0,n.Wm)(l,{distance:(0,i.SU)(o).minAlt,unitFrom:"m",strong:!0,useImperialUnits:(0,i.SU)(s)},null,8,["distance","useImperialUnits"]),Ct,(0,n._)("span",_t,(0,a.zw)(t.$t("workouts.MAX_ALTITUDE")),1),(0,n.Uk)(": "),(0,n.Wm)(l,{distance:(0,i.SU)(o).maxAlt,unitFrom:"m",strong:!0,useImperialUnits:(0,i.SU)(s)},null,8,["distance","useImperialUnits"])])):(0,n.kq)("",!0),null!==(0,i.SU)(o).ascent&&null!==(0,i.SU)(o).descent?((0,n.wg)(),(0,n.iD)("div",xt,[Tt,(0,n._)("span",Ot,(0,a.zw)(t.$t("workouts.ASCENT")),1),(0,n.Uk)(": "),(0,n.Wm)(l,{distance:(0,i.SU)(o).ascent,unitFrom:"m",strong:!0,useImperialUnits:(0,i.SU)(s)},null,8,["distance","useImperialUnits"]),(0,i.SU)(r)?((0,n.wg)(),(0,n.j4)(L,{key:0,workoutObject:(0,i.SU)(o),recordType:"HA"},null,8,["workoutObject"])):(0,n.kq)("",!0),Ft,(0,n._)("span",Ut,(0,a.zw)(t.$t("workouts.DESCENT")),1),(0,n.Uk)(": "),(0,n.Wm)(l,{distance:(0,i.SU)(o).descent,unitFrom:"m",strong:!0,useImperialUnits:(0,i.SU)(s)},null,8,["distance","useImperialUnits"])])):(0,n.kq)("",!0),(0,n.Wm)(ot,{workoutObject:(0,i.SU)(o),useImperialUnits:(0,i.SU)(s)},null,8,["workoutObject","useImperialUnits"])])}}});const Bt=(0,_.Z)(It,[["__scopeId","data-v-74c5993b"]]);var Nt=Bt;function Lt(t,e){return Array.from(t.getElementsByTagName(e))}function Pt(t){return t?.normalize(),t&&t.textContent||""}function Rt(t,e,r){const n=t.getElementsByTagName(e),i=n.length?n[0]:null;return i&&r&&r(i),i}function jt(t,e,r){const n={};if(!t)return n;const i=t.getElementsByTagName(e),o=i.length?i[0]:null;return o&&r?r(o,n):n}function Mt(t,e,r){const n=Pt(Rt(t,e));return n&&r&&r(n)||{}}function qt(t,e,r){const n=parseFloat(Pt(Rt(t,e)));if(!isNaN(n))return n&&r&&r(n)||{}}function zt(t,e,r){const n=parseFloat(Pt(Rt(t,e)));if(!isNaN(n))return n&&r&&r(n),n}function Ht(t,e){const r={};for(const n of e)Mt(t,n,(t=>{r[n]=t}));return r}function $t(t){return 1===t?.nodeType}function Vt(t){return jt(t,"line",(t=>{const e=Object.assign({},Mt(t,"color",(t=>({stroke:`#${t}`}))),qt(t,"opacity",(t=>({"stroke-opacity":t}))),qt(t,"width",(t=>({"stroke-width":96*t/25.4}))));return e}))}function Wt(t){let e=[];if(null===t)return e;for(const r of Array.from(t.childNodes)){if(!$t(r))continue;const t=Gt(r.nodeName);if("gpxtpx:TrackPointExtension"===t)e=e.concat(Wt(r));else{const n=Pt(r);e.push([t,Zt(n)])}}return e}function Gt(t){return["heart","gpxtpx:hr","hr"].includes(t)?"heart":t}function Zt(t){const e=parseFloat(t);return isNaN(e)?t:e}function Kt(t){const e=[parseFloat(t.getAttribute("lon")||""),parseFloat(t.getAttribute("lat")||"")];if(isNaN(e[0])||isNaN(e[1]))return null;zt(t,"ele",(t=>{e.push(t)}));const r=Rt(t,"time");return{coordinates:e,time:r?Pt(r):null,extendedValues:Wt(Rt(t,"extensions"))}}function Yt(t){const e=Ht(t,["name","cmt","desc","type","time","keywords"]),r=Array.from(t.getElementsByTagNameNS("http://www.garmin.com/xmlschemas/GpxExtensions/v3","*"));for(const i of r)i.parentNode?.parentNode===t&&(e[i.tagName.replace(":","_")]=Pt(i));const n=Lt(t,"link");return n.length&&(e.links=n.map((t=>Object.assign({href:t.getAttribute("href")},Ht(t,["text","type"]))))),e}function Xt(t,e){const r=Lt(t,e),n=[],i=[],o={};for(let s=0;s1,s=Object.assign({_gpxType:"trk"},Yt(t),Vt(Rt(t,"extensions")),n.length?{coordinateProperties:{times:o?n:n[0]}}:{});for(const a of i){r.push(a.line),s.coordinateProperties||(s.coordinateProperties={});const t=s.coordinateProperties,e=Object.entries(a.extendedValues);for(let r=0;rnew Array(t.line.length).fill(null)))),t[n][r]=s):t[n]=s}}return{type:"Feature",properties:s,geometry:o?{type:"MultiLineString",coordinates:r}:{type:"LineString",coordinates:r[0]}}}function te(t){const e=Object.assign(Yt(t),Ht(t,["sym"])),r=Kt(t);return r?{type:"Feature",properties:e,geometry:{type:"Point",coordinates:r.coordinates}}:null}function*ee(t){for(const e of Lt(t,"trk")){const t=Qt(e);t&&(yield t)}for(const e of Lt(t,"rte")){const t=Jt(e);t&&(yield t)}for(const e of Lt(t,"wpt")){const t=te(e);t&&(yield t)}}function re(t){return{type:"FeatureCollection",features:Array.from(ee(t))}}Math.PI;const ne=(t,e)=>{let r;return function(...n){const i=this;r&&clearTimeout(r),r=setTimeout((()=>{t.apply(i,n),r=null}),e)}},ie=t=>t&&"function"===typeof t.charAt?t.charAt(0).toUpperCase()+t.slice(1):t,oe=(t,e,r)=>{for(const i in r){const o="set"+ie(i);t[o]?(0,n.YP)((()=>r[i]),((e,r)=>{t[o](e,r)})):e[o]&&(0,n.YP)((()=>r[i]),(t=>{e[o](t)}))}},se=t=>{const e={};for(const r in t)if(r.startsWith("on")&&!r.startsWith("onUpdate")&&"onReady"!==r){const n=r.slice(2).toLocaleLowerCase();e[n]=t[r]}return e},ae=async t=>{const e=await Promise.all([r.e(431).then(r.t.bind(r,6431,17)),r.e(93).then(r.t.bind(r,7093,17)),r.e(858).then(r.t.bind(r,8858,17))]);delete t.Default.prototype._getIconUrl,t.Default.mergeOptions({iconRetinaUrl:e[0].default,iconUrl:e[1].default,shadowUrl:e[2].default})},ue=t=>{const e=(0,i.iH)((()=>console.warn(`Method ${t} has been invoked without being replaced`))),r=(...t)=>e.value(...t);return r.wrapped=e,(0,n.JJ)(t,r),r},le=(t,e)=>t.wrapped.value=e,ce="object"===typeof self&&self.self===self&&self||"object"===typeof r.g&&r.g.global===r.g&&r.g||void 0,de="useGlobalLeaflet",pe={options:{type:Object,default:()=>({})}},he=t=>({options:t.options,methods:{}}),fe={...pe,pane:{type:String,default:"overlayPane"},attribution:{type:String,default:null},name:{type:String,custom:!0,default:void 0},layerType:{type:String,custom:!0,default:void 0},visible:{type:Boolean,custom:!0,default:!0}},me=(t,e,r)=>{const i=(0,n.f3)("addLayer"),o=(0,n.f3)("removeLayer"),{options:s,methods:a}=he(t),u={...s,attribution:t.attribution,pane:t.pane},l=()=>i({leafletObject:e.value}),c=()=>o({leafletObject:e.value}),d={...a,setAttribution(t,e){const r=this.$parent.leafletObject.attributionControl;r.removeAttribution(e).addAttribution(t)},setName(){c(),t.visible&&l()},setLayerType(){c(),t.visible&&l()},setVisible(t){e.value&&(t?l():c())},bindPopup({leafletObject:t}){e.value.bindPopup(t)},bindTooltip({leafletObject:t}){e.value.bindTooltip(t)},unbindTooltip(){const t=e.value?e.value.getTooltip():null;t&&t.unbindTooltip()},unbindPopup(){const t=e.value?e.value.getPopup():null;t&&t.unbindPopup()},updateVisibleProp(t){r.emit("update:visible",t)}};return(0,n.JJ)("bindPopup",d.bindPopup),(0,n.JJ)("bindTooltip",d.bindTooltip),(0,n.JJ)("unbindTooltip",d.unbindTooltip),(0,n.JJ)("unbindPopup",d.unbindPopup),(0,n.Ah)((()=>{d.unbindPopup(),d.unbindTooltip(),c()})),{options:u,methods:d}},ge=(t,e)=>{if(t&&e.default)return(0,n.h)("div",{style:{display:"none"}},e.default())},be={...pe,interactive:{type:Boolean,default:!0},bubblingMouseEvents:{type:Boolean,default:!0}},ye={...fe,...be,stroke:{type:Boolean,custom:!0,default:!0},color:{type:String,custom:!0,default:"#3388ff"},weight:{type:Number,custom:!0,default:3},opacity:{type:Number,custom:!0,default:1},lineCap:{type:String,custom:!0,default:"round"},lineJoin:{type:String,custom:!0,default:"round"},dashArray:{type:String,custom:!0,default:null},dashOffset:{type:String,custom:!0,default:null},fill:{type:Boolean,custom:!0,default:!1},fillColor:{type:String,custom:!0,default:"#3388ff"},fillOpacity:{type:Number,custom:!0,default:.2},fillRule:{type:String,custom:!0,default:"evenodd"},className:{type:String,custom:!0,default:null}},De={...ye,latLng:{type:[Object,Array],custom:!0,default:null},radius:{type:Number,default:null}};const we={...pe,position:{type:String,default:"topright"}},ve=(t,e)=>{const{options:r,methods:i}=he(t),o={...r,position:t.position},s={...i,setPosition(t){e.value&&e.value.setPosition(t)}};return(0,n.Ah)((()=>{e.value&&e.value.remove()})),{options:o,methods:s}},ke=t=>t.default?(0,n.h)("div",{ref:"root"},t.default()):null;var Ae={name:"LControl",props:{...we,disableClickPropagation:{type:Boolean,custom:!0,default:!0},disableScrollPropagation:{type:Boolean,custom:!0,default:!1}},setup(t,e){const o=(0,i.iH)({}),s=(0,i.iH)(null),a=(0,n.f3)(de),u=(0,n.f3)("registerControl"),{options:l,methods:c}=ve(t,o);return(0,n.bv)((async()=>{const{Control:i,DomEvent:d}=a?ce.L:await r.e(633).then(r.bind(r,6633)),p=i.extend({onAdd(){return s.value}});o.value=new p(l),oe(c,o.value,t),u({leafletObject:o.value}),t.disableClickPropagation&&d.disableClickPropagation(s.value),t.disableScrollPropagation&&d.disableScrollPropagation(s.value),(0,n.Y3)((()=>e.emit("ready",o.value)))})),{root:s,leafletObject:o}},render(){return ke(this.$slots)},__file:"src/components/LControl.vue"};const Se={...we,collapsed:{type:Boolean,default:!0},autoZIndex:{type:Boolean,default:!0},hideSingleBase:{type:Boolean,default:!1},sortLayers:{type:Boolean,default:!1},sortFunction:{type:Function,default:void 0}},Ee=(t,e)=>{const{options:r}=ve(t,e),n={...r,collapsed:t.collapsed,autoZIndex:t.autoZIndex,hideSingleBase:t.hideSingleBase,sortLayers:t.sortLayers,sortFunction:t.sortFunction},i={addLayer(t){"base"===t.layerType?e.value.addBaseLayer(t.leafletObject,t.name):"overlay"===t.layerType&&e.value.addOverlay(t.leafletObject,t.name)},removeLayer(t){e.value.removeLayer(t.leafletObject)}};return{options:n,methods:i}};var Ce={name:"LControlLayers",props:Se,setup(t,e){const o=(0,i.iH)({}),s=(0,n.f3)(de),a=(0,n.f3)("registerLayerControl"),{options:u,methods:l}=Ee(t,o);return(0,n.bv)((async()=>{const{control:i}=s?ce.L:await r.e(633).then(r.bind(r,6633));o.value=i.layers(null,null,u),oe(l,o.value,t),a({...t,...l,leafletObject:o.value}),(0,n.Y3)((()=>e.emit("ready",o.value)))})),{leafletObject:o.value}},render(){return null},__file:"src/components/LControlLayers.vue"};Boolean,Boolean,Boolean;const _e={...fe},xe=(t,e,r)=>{const{options:i,methods:o}=me(t,e,r),s={...i},a={...o,addLayer(t){e.value.addLayer(t.leafletObject)},removeLayer(t){e.value.removeLayer(t.leafletObject)}};return(0,n.JJ)("addLayer",a.addLayer),(0,n.JJ)("removeLayer",a.removeLayer),{options:s,methods:a}};const Te={..._e,geojson:{type:[Object,Array],default:()=>({})}},Oe=(t,e)=>{const{options:r,methods:n}=xe(t,e),i={...r,...t},o={...n,setGeojson(t){e.value.clearLayers(),e.value.addData(t)},getGeoJSONData(){return e.value.toGeoJSON()},getBounds(){return e.value.getBounds()}};return{options:i,methods:o}};var Fe={props:Te,setup(t,e){const o=(0,i.iH)({}),s=(0,i.iH)(!1),a=(0,n.f3)(de),u=(0,n.f3)("addLayer"),{methods:l,options:c}=Oe(t,o);return(0,n.bv)((async()=>{const{geoJSON:i,DomEvent:d}=a?ce.L:await r.e(633).then(r.bind(r,6633));o.value=i(t.geojson,c);const p=se(e.attrs);d.on(o.value,p),oe(l,o.value,t),u({...t,...l,leafletObject:o.value}),s.value=!0,(0,n.Y3)((()=>e.emit("ready",o.value)))})),{ready:s,leafletObject:o}},render(){return ge(this.ready,this.$slots)},__file:"src/components/LGeoJson.vue"};const Ue={...fe,pane:{type:String,default:"tilePane"},opacity:{type:Number,custom:!1,default:1},zIndex:{type:Number,default:1},tileSize:{type:Number,default:256},noWrap:{type:Boolean,default:!1},minZoom:{type:Number,default:0},maxZoom:{type:Number,default:void 0}},Ie=(t,e,r)=>{const{options:n,methods:i}=me(t,e,r),o={...n,pane:t.pane,opacity:t.opacity,zIndex:t.zIndex,tileSize:t.tileSize,noWrap:t.noWrap,minZoom:t.minZoom,maxZoom:t.maxZoom};return{options:o,methods:{...i}}};const Be={iconUrl:{type:String,custom:!0,default:null},iconRetinaUrl:{type:String,custom:!0,default:null},iconSize:{type:[Object,Array],custom:!0,default:null},iconAnchor:{type:[Object,Array],custom:!0,default:null},popupAnchor:{type:[Object,Array],custom:!0,default:()=>[0,0]},tooltipAnchor:{type:[Object,Array],custom:!0,default:()=>[0,0]},shadowUrl:{type:String,custom:!0,default:null},shadowRetinaUrl:{type:String,custom:!0,default:null},shadowSize:{type:[Object,Array],custom:!0,default:null},shadowAnchor:{type:[Object,Array],custom:!0,default:null},bgPos:{type:[Object,Array],custom:!0,default:()=>[0,0]},className:{type:String,custom:!0,default:""},options:{type:Object,custom:!0,default:()=>({})}};var Ne={name:"LIcon",props:{...Be,...pe},setup(t,e){const o=(0,i.iH)(null),s=(0,n.f3)(de),a=(0,n.f3)("canSetParentHtml"),u=(0,n.f3)("setParentHtml"),l=(0,n.f3)("setIcon");let c,d,p,h,f;const m=(r,n,i)=>{const o=r&&r.innerHTML;if(!n)return void(i&&f&&a()&&u(o));const s=se(e.attrs);f&&d(f,s);const{options:m}=he(t),g={...m,iconUrl:t.iconUrl,iconRetinaUrl:t.iconRetinaUrl,iconSize:t.iconSize,iconAnchor:t.iconAnchor,popupAnchor:t.popupAnchor,tooltipAnchor:t.tooltipAnchor,shadowUrl:t.shadowUrl,shadowRetinaUrl:t.shadowRetinaUrl,shadowSize:t.shadowSize,shadowAnchor:t.shadowAnchor,bgPos:t.bgPos,className:t.className,html:o||t.html};f=g.html?p(g):h(g),c(f,s),l(f)},g=()=>{(0,n.Y3)((()=>m(o.value,!0,!1)))},b=()=>{(0,n.Y3)((()=>m(o.value,!1,!0)))},y={setIconUrl:g,setIconRetinaUrl:g,setIconSize:g,setIconAnchor:g,setPopupAnchor:g,setTooltipAnchor:g,setShadowUrl:g,setShadowRetinaUrl:g,setShadowAnchor:g,setBgPos:g,setClassName:g,setHtml:g};return(0,n.bv)((async()=>{const{DomEvent:e,divIcon:n,icon:i}=s?ce.L:await r.e(633).then(r.bind(r,6633));c=e.on,d=e.off,p=n,h=i,oe(y,{},t);const a=new MutationObserver(b);a.observe(o.value,{attributes:!0,childList:!0,characterData:!0,subtree:!0}),g()})),{root:o}},render(){const t=this.$slots.default?this.$slots.default():void 0;return(0,n.h)("div",{ref:"root"},t)},__file:"src/components/LIcon.vue"};Boolean,Boolean;var Le={props:_e,setup(t,e){const o=(0,i.iH)({}),s=(0,i.iH)(!1),a=(0,n.f3)(de),u=(0,n.f3)("addLayer"),{methods:l}=xe(t,o,e);return(0,n.bv)((async()=>{const{layerGroup:i,DomEvent:c}=a?ce.L:await r.e(633).then(r.bind(r,6633));o.value=i(t.options);const d=se(e.attrs);c.on(o.value,d),oe(l,o.value,t),u({...t,...l,leafletObject:o.value}),s.value=!0,(0,n.Y3)((()=>e.emit("ready",o.value)))})),{ready:s,leafletObject:o}},render(){return ge(this.ready,this.$slots)},__file:"src/components/LLayerGroup.vue"},Pe={emits:["ready","update:zoom","update:center","update:bounds"],props:{...pe,center:{type:[Object,Array],default:()=>[0,0]},bounds:{type:[Array,Object],default:void 0},maxBounds:{type:[Array,Object],default:void 0},zoom:{type:Number,default:0},minZoom:{type:Number,default:void 0},maxZoom:{type:Number,default:void 0},paddingBottomRight:{type:Array,default:void 0},paddingTopLeft:{type:Array,default:void 0},padding:{type:Array,default:void 0},worldCopyJump:{type:Boolean,default:!1},crs:{type:[String,Object],default:"EPSG3857"},maxBoundsViscosity:{type:Number,default:void 0},inertia:{type:Boolean,default:void 0},inertiaDeceleration:{type:Number,default:void 0},inertiaMaxSpeed:{type:Number,default:void 0},easeLinearity:{type:Number,default:void 0},zoomAnimation:{type:Boolean,default:void 0},zoomAnimationThreshold:{type:Number,default:void 0},fadeAnimation:{type:Boolean,default:void 0},markerZoomAnimation:{type:Boolean,default:void 0},noBlockingAnimations:{type:Boolean,default:!1},useGlobalLeaflet:{type:Boolean,default:!1}},setup(t,e){const o=(0,i.iH)(null),s=(0,i.qj)({ready:!1,leafletRef:{},layersToAdd:[],layersInControl:[]}),{options:a}=he(t),u={...a,minZoom:t.minZoom,maxZoom:t.maxZoom,maxBounds:t.maxBounds,maxBoundsViscosity:t.maxBoundsViscosity,worldCopyJump:t.worldCopyJump,crs:t.crs,center:t.center,zoom:t.zoom,inertia:t.inertia,inertiaDeceleration:t.inertiaDeceleration,inertiaMaxSpeed:t.inertiaMaxSpeed,easeLinearity:t.easeLinearity,zoomAnimation:t.zoomAnimation,zoomAnimationThreshold:t.zoomAnimationThreshold,fadeAnimation:t.fadeAnimation,markerZoomAnimation:t.markerZoomAnimation},l=ue("addLayer"),c=ue("removeLayer"),d=ue("registerControl"),p=ue("registerLayerControl");(0,n.JJ)(de,t.useGlobalLeaflet);const h={moveEndHandler(){e.emit("update:zoom",s.leafletRef.getZoom()),e.emit("update:center",s.leafletRef.getCenter()),e.emit("update:bounds",s.leafletRef.getBounds())},overlayAddHandler(t){const e=s.layersInControl.find((e=>e.name===t.name));e&&e.updateVisibleProp(!0)},overlayRemoveHandler(t){const e=s.layersInControl.find((e=>e.name===t.name));e&&e.updateVisibleProp(!1)}};(0,n.bv)((async()=>{t.useGlobalLeaflet&&(ce.L=ce.L||await r.e(243).then(r.t.bind(r,5243,23)));const{map:i,CRS:a,Icon:f,latLngBounds:m,latLng:g,DomEvent:b}=t.useGlobalLeaflet?ce.L:await r.e(633).then(r.bind(r,6633));try{u.beforeMapMount&&await u.beforeMapMount()}catch(v){console.error(`The following error occurred running the provided beforeMapMount hook ${v.message}`)}await ae(f);const y="string"==typeof u.crs?a[u.crs]:u.crs;u.crs=y||a.EPSG3857;const D={addLayer(t){if(void 0!==t.layerType)if(void 0===s.layerControl)s.layersToAdd.push(t);else{const e=s.layersInControl.find((e=>e.leafletObject._leaflet_id===t.leafletObject._leaflet_id));e||(s.layerControl.addLayer(t),s.layersInControl.push(t))}!1!==t.visible&&s.leafletRef.addLayer(t.leafletObject)},removeLayer(t){void 0!==t.layerType&&(void 0===s.layerControl?s.layersToAdd=s.layersToAdd.filter((e=>e.name!==t.name)):(s.layerControl.removeLayer(t.leafletObject),s.layersInControl=s.layersInControl.filter((e=>e.leafletObject._leaflet_id!==t.leafletObject._leaflet_id)))),s.leafletRef.removeLayer(t.leafletObject)},registerLayerControl(t){s.layerControl=t,s.layersToAdd.forEach((t=>{s.layerControl.addLayer(t)})),s.layersToAdd=[],d(t)},registerControl(t){s.leafletRef.addControl(t.leafletObject)},setZoom(e){const r=s.leafletRef.getZoom();e!==r&&s.leafletRef.setZoom(e,{animate:!t.noBlockingAnimations&&null})},setPaddingBottomRight(t){s.paddingBottomRight=t},setPaddingTopLeft(t){s.paddingTopLeft=t},setPadding(t){s.padding=t},setCrs(t){const e=s.leafletRef.getBounds();s.leafletRef.options.crs=t,s.leafletRef.fitBounds(e,{animate:!1,padding:[0,0]})},fitBounds(t){s.leafletRef.fitBounds(t,{animate:!this.noBlockingAnimations&&null})},setBounds(t){if(!t)return;const e=m(t);if(!e.isValid())return;const r=s.lastSetBounds||s.leafletRef.getBounds(),n=!r.equals(e,0);n&&(s.lastSetBounds=e,s.leafletRef.fitBounds(e,this.fitBoundsOptions))},setCenter(t){if(null==t)return;const e=g(t),r=s.lastSetCenter||s.leafletRef.getCenter();r.lat===e.lat&&r.lng===e.lng||(s.lastSetCenter=e,s.leafletRef.panTo(e,{animate:!this.noBlockingAnimations&&null}))}};le(l,D.addLayer),le(c,D.removeLayer),le(d,D.registerControl),le(p,D.registerLayerControl),s.leafletRef=i(o.value,u),oe(D,s.leafletRef,t);const w=se(e.attrs);s.leafletRef.on("moveend",ne(h.moveEndHandler,100)),s.leafletRef.on("overlayadd",h.overlayAddHandler),s.leafletRef.on("overlayremove",h.overlayRemoveHandler),b.on(s.leafletRef,w),s.ready=!0,(0,n.Y3)((()=>e.emit("ready",s.leafletRef)))})),(0,n.Jd)((()=>{s.leafletRef&&s.leafletRef.remove()}));const f=(0,n.Fl)((()=>s.leafletRef)),m=(0,n.Fl)((()=>s.ready));return{root:o,ready:m,leafletObject:f}},render(){return(0,n.h)("div",{style:{width:"100%",height:"100%"},ref:"root"},this.ready?this.$slots.default():{})},__file:"src/components/LMap.vue"};const Re={...fe,pane:{type:String,default:"markerPane"},draggable:{type:Boolean,custom:!0,default:!1},latLng:{type:[Object,Array],custom:!0,default:null},icon:{type:[Object],default:()=>{},custom:!1},zIndexOffset:{type:Number,custom:!1,default:null}},je=(t,e,r)=>{const{options:n,methods:i}=me(t,e,r),o={...n,...t},s={...i,setDraggable(t){e.value.dragging&&(t?e.value.dragging.enable():e.value.dragging.disable())},latLngSync(t){r.emit("update:latLng",t.latlng),r.emit("update:lat-lng",t.latlng)},setLatLng(t){if(null!=t&&e.value){const r=e.value.getLatLng();r&&r.equals(t)||e.value.setLatLng(t)}}};return{options:o,methods:s}};var Me={name:"LMarker",props:Re,setup(t,e){const o=(0,i.iH)({}),s=(0,i.iH)(!1),a=(0,n.f3)(de),u=(0,n.f3)("addLayer");(0,n.JJ)("canSetParentHtml",(()=>!!o.value.getElement())),(0,n.JJ)("setParentHtml",(t=>o.value.getElement().innerHTML=t)),(0,n.JJ)("setIcon",(t=>o.value.setIcon&&o.value.setIcon(t)));const{options:l,methods:c}=je(t,o,e);return void 0===l.icon&&delete l.icon,(0,n.bv)((async()=>{const{marker:i,DomEvent:d}=a?ce.L:await r.e(633).then(r.bind(r,6633));o.value=i(t.latLng,l);const p=se(e.attrs);d.on(o.value,p),o.value.on("move",ne(c.latLngSync,100)),oe(c,o.value,t),u({...t,...c,leafletObject:o.value}),s.value=!0,(0,n.Y3)((()=>e.emit("ready",o.value)))})),{ready:s,leafletObject:o}},render(){return ge(this.ready,this.$slots)},__file:"src/components/LMarker.vue"};const qe={...ye,latLngs:{type:Array,default:()=>[]},smoothFactor:{type:Number,custom:!0,default:1},noClip:{type:Boolean,custom:!0,default:!1}},ze={...qe};const He={...pe,content:{type:String,default:null}};const $e={...Ue,tms:{type:Boolean,default:!1},subdomains:{type:String,default:"abc"},detectRetina:{type:Boolean,default:!1},url:{type:String,default:null}},Ve=(t,e)=>{const{options:r,methods:n}=Ie(t,e),i={...r,tms:t.tms,subdomains:t.subdomains,detectRetina:t.detectRetina};return{options:i,methods:{...n}}};var We={props:$e,setup(t,e){const o=(0,i.iH)({}),s=(0,n.f3)(de),a=(0,n.f3)("addLayer"),{options:u,methods:l}=Ve(t,o);return(0,n.bv)((async()=>{const{tileLayer:i,DomEvent:c}=s?ce.L:await r.e(633).then(r.bind(r,6633));o.value=i(t.url,u);const d=se(e.attrs);c.on(o.value,d),oe(l,o.value,t),a({...t,...l,leafletObject:o.value}),(0,n.Y3)((()=>e.emit("ready",o.value)))})),{leafletObject:o}},render(){return null},__file:"src/components/LTileLayer.vue"};Boolean,Boolean;var Ge=(0,n.aZ)({__name:"CustomMarker",props:{markerCoordinates:null,isStart:{type:Boolean}},setup(t){const e=t,{isStart:r,markerCoordinates:o}=(0,i.BK)(e);return(t,e)=>(0,i.SU)(o).latitude?((0,n.wg)(),(0,n.j4)((0,i.SU)(Me),{key:0,"lat-lng":[(0,i.SU)(o).latitude,(0,i.SU)(o).longitude]},{default:(0,n.w5)((()=>[(0,n.Wm)((0,i.SU)(Ne),{"icon-url":`/img/workouts/${(0,i.SU)(r)?"start":"finish"}.svg`,iconSize:[15,15]},null,8,["icon-url"])])),_:1},8,["lat-lng"])):(0,n.kq)("",!0)}});const Ze=Ge;var Ke=Ze,Ye=r(5801),Xe=r(9917),Je=r(2024);const Qe=t=>((0,n.dD)("data-v-6b490f5d"),t=t(),(0,n.Cn)(),t),tr={id:"workout-map"},er={key:0,class:"leaflet-container"},rr={key:1},nr=Qe((()=>(0,n._)("i",{class:"fa fa-refresh","aria-hidden":"true"},null,-1))),ir={key:1,class:"no-map"};var or=(0,n.aZ)({__name:"index",props:{workoutData:null,markerCoordinates:{default:()=>({})}},setup(t){const e=t,r=(0,Xe.o)(),{workoutData:o,markerCoordinates:s}=(0,i.BK)(e),u=(0,i.iH)(null),l=(0,n.Fl)((()=>D())),c=(0,n.Fl)((()=>r.getters[Ye.SY.GETTERS.APP_CONFIG])),d=(0,n.Fl)((()=>b(l))),p=(0,n.Fl)((()=>e.workoutData&&e.workoutData.gpx?g(e.workoutData.gpx):{})),h=(0,n.Fl)((()=>e.workoutData&&e.workoutData.chartData.length>0?{latitude:e.workoutData.chartData[0].latitude,longitude:e.workoutData.chartData[0].longitude}:{})),f=(0,n.Fl)((()=>e.workoutData&&e.workoutData.chartData.length>0?{latitude:e.workoutData.chartData[e.workoutData.chartData.length-1].latitude,longitude:e.workoutData.chartData[e.workoutData.chartData.length-1].longitude}:{})),m=(0,i.iH)(!1);function g(t){if(!t||""!==t)try{const e=re((new DOMParser).parseFromString(t,"text/xml"));return{jsonData:e}}catch(e){return console.error("Invalid gpx content"),{}}return{}}function b(t){return[(t.value[0][0]+t.value[1][0])/2,(t.value[0][1]+t.value[1][1])/2]}function y(t){u.value?.leafletObject&&u.value?.leafletObject.fitBounds(t)}function D(){return e.workoutData?[[e.workoutData.workout.bounds[0],e.workoutData.workout.bounds[1]],[e.workoutData.workout.bounds[2],e.workoutData.workout.bounds[3]]]:[]}function w(){u.value?.leafletObject.fitBounds(D())}function v(){m.value=!m.value,m.value||setTimeout((()=>{w()}),100)}return(t,e)=>{const r=(0,n.up)("VFullscreen");return(0,n.wg)(),(0,n.iD)("div",tr,[(0,i.SU)(o).loading?((0,n.wg)(),(0,n.iD)("div",er)):((0,n.wg)(),(0,n.iD)("div",rr,[(0,i.SU)(o).workout.with_gpx?((0,n.wg)(),(0,n.j4)(r,{key:0,modelValue:m.value,"onUpdate:modelValue":e[1]||(e[1]=t=>m.value=t)},{default:(0,n.w5)((()=>[(0,n._)("div",{class:(0,a.C_)(["leaflet-container",{"fullscreen-map":m.value}])},[(0,i.SU)(p).jsonData&&(0,i.SU)(d)&&2===(0,i.SU)(l).length?((0,n.wg)(),(0,n.j4)((0,i.SU)(Pe),{key:0,zoom:13,maxZoom:19,center:(0,i.SU)(d),bounds:(0,i.SU)(l),ref_key:"workoutMap",ref:u,onReady:e[0]||(e[0]=t=>y((0,i.SU)(l)))},{default:(0,n.w5)((()=>[(0,n.Wm)((0,i.SU)(Ce)),(0,n.Wm)((0,i.SU)(Ae),{position:"topleft",class:"map-control",onClick:w},{default:(0,n.w5)((()=>[nr])),_:1}),(0,n.Wm)((0,i.SU)(Ae),{position:"topleft",class:"map-control",onClick:v},{default:(0,n.w5)((()=>[(0,n._)("i",{class:(0,a.C_)("fa fa-"+(m.value?"compress":"arrows-alt")),"aria-hidden":"true"},null,2)])),_:1}),(0,n.Wm)((0,i.SU)(We),{url:`${(0,i.SU)(Je.k)()}workouts/map_tile/{s}/{z}/{x}/{y}.png`,attribution:(0,i.SU)(c).map_attribution,bounds:(0,i.SU)(l)},null,8,["url","attribution","bounds"]),(0,n.Wm)((0,i.SU)(Fe),{geojson:(0,i.SU)(p).jsonData},null,8,["geojson"]),(0,i.SU)(s).latitude?((0,n.wg)(),(0,n.j4)((0,i.SU)(Me),{key:0,"lat-lng":[(0,i.SU)(s).latitude,(0,i.SU)(s).longitude]},null,8,["lat-lng"])):(0,n.kq)("",!0),(0,n.Wm)((0,i.SU)(Le),{name:t.$t("workouts.START_AND_FINISH"),"layer-type":"overlay"},{default:(0,n.w5)((()=>[(0,i.SU)(h).latitude?((0,n.wg)(),(0,n.j4)(Ke,{key:0,markerCoordinates:(0,i.SU)(h),isStart:!0},null,8,["markerCoordinates"])):(0,n.kq)("",!0),(0,i.SU)(f).latitude?((0,n.wg)(),(0,n.j4)(Ke,{key:1,markerCoordinates:(0,i.SU)(f),isStart:!1},null,8,["markerCoordinates"])):(0,n.kq)("",!0)])),_:1},8,["name"])])),_:1},8,["center","bounds"])):(0,n.kq)("",!0)],2)])),_:1},8,["modelValue"])):((0,n.wg)(),(0,n.iD)("div",ir,(0,a.zw)(t.$t("workouts.NO_MAP")),1))]))])}}});const sr=(0,_.Z)(or,[["__scopeId","data-v-6b490f5d"]]);var ar=sr,ur=r(6558);const lr={class:"workout-detail"};var cr=(0,n.aZ)({__name:"index",props:{authUser:null,displaySegment:{type:Boolean},sports:null,workoutData:null,markerCoordinates:{default:()=>({})}},setup(t){const e=t,r=(0,o.yj)(),s=(0,Xe.o)(),{authUser:a,markerCoordinates:u,workoutData:l}=(0,i.BK)(e),c=(0,n.Fl)((()=>e.workoutData.workout)),d=(0,i.iH)(r.params.workoutId?+r.params.segmentId:null),p=(0,n.Fl)((()=>c.value.segments.length>0&&d.value?c.value.segments[+d.value-1]:null)),h=(0,i.iH)(!1),f=(0,n.Fl)((()=>e.sports?e.sports.find((t=>t.id===e.workoutData.workout.sport_id)):{})),m=(0,n.Fl)((()=>b(c.value,p.value)));function g(t,e,r){const n=e&&r&&1!==r?`/workouts/${t.id}/segment/${r-1}`:!e&&t.previous_workout?`/workouts/${t.previous_workout}`:null,i=e&&r&&rr.params.segmentId),(async t=>{t&&(d.value=+t)})),(t,e)=>{const r=(0,n.up)("Modal"),o=(0,n.up)("Card");return(0,n.wg)(),(0,n.iD)("div",lr,[h.value?((0,n.wg)(),(0,n.j4)(r,{key:0,title:t.$t("common.CONFIRMATION"),message:t.$t("workouts.WORKOUT_DELETION_CONFIRMATION"),onConfirmAction:e[0]||(e[0]=t=>D((0,i.SU)(m).workoutId)),onCancelAction:e[1]||(e[1]=t=>y(!1))},null,8,["title","message"])):(0,n.kq)("",!0),(0,n.Wm)(o,null,{title:(0,n.w5)((()=>[(0,n.Wm)(T,{sport:(0,i.SU)(f),workoutObject:(0,i.SU)(m),onDisplayModal:e[2]||(e[2]=t=>y(!0))},null,8,["sport","workoutObject"])])),content:(0,n.w5)((()=>[(0,n.Wm)(ar,{workoutData:(0,i.SU)(l),markerCoordinates:(0,i.SU)(u)},null,8,["workoutData","markerCoordinates"]),(0,n.Wm)(Nt,{workoutObject:(0,i.SU)(m),useImperialUnits:(0,i.SU)(a).imperial_units,displayHARecord:(0,i.SU)(a).display_ascent},null,8,["workoutObject","useImperialUnits","displayHARecord"])])),_:1})])}}});const dr=(0,_.Z)(cr,[["__scopeId","data-v-9fc0bab8"]]);var pr=dr,hr=r(6518);const fr=t=>{const e=document.getElementById(t);if(e){let t=e.querySelector("ul");return t||(t=document.createElement("ul"),e.appendChild(t)),t}throw new Error("No legend container")},mr={id:"htmlLegend",afterUpdate(t,e,r){const n=fr(r.containerID);while(n.firstChild)n.firstChild.remove();const i=t.options.plugins?.legend?.labels?.generateLabels?t.options.plugins?.legend?.labels?.generateLabels(t):[];i.forEach((e=>{const r=document.createElement("li");r.onclick=()=>{void 0!==e.datasetIndex&&(t.setDatasetVisibility(e.datasetIndex,!t.isDatasetVisible(e.datasetIndex)),t.update())};const i=document.createElement("input");i&&(i.type="checkbox",i.id=e.text,i.checked=!e.hidden);const o=document.createTextNode(e.text),s=document.createElement("span");s&&(s.style.background=String(e.fillStyle),s.style.borderColor=String(e.strokeStyle)),r.appendChild(i),r.appendChild(o),r.appendChild(s),n.appendChild(r)}))}};var gr=r(3649),br=r(3768);const yr=t=>((0,n.dD)("data-v-0b68c436"),t=t(),(0,n.Cn)(),t),Dr={id:"workout-chart"},wr={class:"chart-radio"},vr=["checked"],kr=["checked"],Ar=yr((()=>(0,n._)("div",{id:"chart-legend"},null,-1))),Sr={class:"chart-info"},Er={class:"no-data-cleaning"},Cr={class:"elevation-start"},_r=["checked"];var xr=(0,n.aZ)({__name:"index",props:{authUser:null,workoutData:null},emits:["getCoordinates"],setup(t,{emit:e}){const r=t,{t:o}=(0,P.QT)(),s=(0,i.iH)(!0),u=(0,i.iH)(!0),l=(0,n.Fl)((()=>(0,br.EX)(r.workoutData.chartData,o,r.authUser.imperial_units))),c=w("km"),d=w("m"),p=(0,n.Fl)((()=>({labels:s.value?l.value.distance_labels:l.value.duration_labels,datasets:JSON.parse(JSON.stringify([l.value.datasets.speed,l.value.datasets.elevation]))}))),h=(0,n.Fl)((()=>l.value.coordinates)),f=(0,n.Fl)((()=>({responsive:!0,maintainAspectRatio:!0,animation:!1,layout:{padding:{top:22}},scales:{x:{grid:{drawOnChartArea:!1},ticks:{count:10,callback:function(t){return s.value?Number(t).toFixed(2):b(t)}},type:"linear",bounds:"data",title:{display:!0,text:s.value?o("workouts.DISTANCE")+` (${c})`:o("workouts.DURATION")}},ySpeed:{grid:{drawOnChartArea:!1},position:"left",title:{display:!0,text:o("workouts.SPEED")+` (${c}/h)`}},yElevation:{beginAtZero:u.value,grid:{drawOnChartArea:!1},position:"right",title:{display:!0,text:o("workouts.ELEVATION")+` (${d})`}}},elements:{point:{pointStyle:"circle",pointRadius:0}},plugins:{datalabels:{display:!1},tooltip:{interaction:{intersect:!1,mode:"index"},callbacks:{label:function(t){const e=` ${t.dataset.label}: ${t.formattedValue}`;return"yElevation"===t.dataset.yAxisID?e+` ${d}`:e+` ${c}/h`},title:function(t){return t.length>0&&y(h.value[t[0].dataIndex]),0===t.length?"":s.value?`${o("workouts.DISTANCE")}: ${t[0].label} ${c}`:`${o("workouts.DURATION")}: ${b(t[0].label.replace(",",""))}`}}},legend:{display:!1},htmlLegend:{containerID:"chart-legend"}}}))),{lineChartProps:m}=(0,hr.tn)({chartData:p,options:f,plugins:[mr]});function g(){s.value=!s.value}function b(t){return new Date(1e3*+t).toISOString().substr(11,8)}function y(t){e("getCoordinates",t)}function D(){y({latitude:null,longitude:null})}function w(t){return r.authUser.imperial_units?gr.Dl[t].defaultTarget:t}return(t,e)=>{const r=(0,n.up)("Card");return(0,n.wg)(),(0,n.iD)("div",Dr,[(0,n.Wm)(r,null,{title:(0,n.w5)((()=>[(0,n.Uk)((0,a.zw)(t.$t("workouts.ANALYSIS")),1)])),content:(0,n.w5)((()=>[(0,n._)("div",wr,[(0,n._)("label",null,[(0,n._)("input",{type:"radio",name:"distance",checked:s.value,onClick:g},null,8,vr),(0,n.Uk)(" "+(0,a.zw)(t.$t("workouts.DISTANCE")),1)]),(0,n._)("label",null,[(0,n._)("input",{type:"radio",name:"duration",checked:!s.value,onClick:g},null,8,kr),(0,n.Uk)(" "+(0,a.zw)(t.$t("workouts.DURATION")),1)])]),Ar,(0,n.Wm)((0,i.SU)(hr.wW),(0,n.dG)((0,i.SU)(m),{class:"line-chart",onMouseleave:D}),null,16),(0,n._)("div",Sr,[(0,n._)("div",Er,(0,a.zw)(t.$t("workouts.NO_DATA_CLEANING")),1),(0,n._)("div",Cr,[(0,n._)("label",null,[(0,n._)("input",{type:"checkbox",checked:u.value,onClick:e[0]||(e[0]=t=>u.value=!u.value)},null,8,_r),(0,n.Uk)(" "+(0,a.zw)(t.$t("workouts.START_ELEVATION_AT_ZERO")),1)])])])])),_:1})])}}});const Tr=(0,_.Z)(xr,[["__scopeId","data-v-0b68c436"]]);var Or=Tr,Fr="aaa aarp abarth abb abbott abbvie abc able abogado abudhabi ac academy accenture accountant accountants aco actor ad adac ads adult ae aeg aero aetna af afl africa ag agakhan agency ai aig airbus airforce airtel akdn al alfaromeo alibaba alipay allfinanz allstate ally alsace alstom am amazon americanexpress americanfamily amex amfam amica amsterdam analytics android anquan anz ao aol apartments app apple aq aquarelle ar arab aramco archi army arpa art arte as asda asia associates at athleta attorney au auction audi audible audio auspost author auto autos avianca aw aws ax axa az azure ba baby baidu banamex bananarepublic band bank bar barcelona barclaycard barclays barefoot bargains baseball basketball bauhaus bayern bb bbc bbt bbva bcg bcn bd be beats beauty beer bentley berlin best bestbuy bet bf bg bh bharti bi bible bid bike bing bingo bio biz bj black blackfriday blockbuster blog bloomberg blue bm bms bmw bn bnpparibas bo boats boehringer bofa bom bond boo book booking bosch bostik boston bot boutique box br bradesco bridgestone broadway broker brother brussels bs bt bugatti build builders business buy buzz bv bw by bz bzh ca cab cafe cal call calvinklein cam camera camp cancerresearch canon capetown capital capitalone car caravan cards care career careers cars casa case cash casino cat catering catholic cba cbn cbre cbs cc cd center ceo cern cf cfa cfd cg ch chanel channel charity chase chat cheap chintai christmas chrome church ci cipriani circle cisco citadel citi citic city cityeats ck cl claims cleaning click clinic clinique clothing cloud club clubmed cm cn co coach codes coffee college cologne com comcast commbank community company compare computer comsec condos construction consulting contact contractors cooking cookingchannel cool coop corsica country coupon coupons courses cpa cr credit creditcard creditunion cricket crown crs cruise cruises cu cuisinella cv cw cx cy cymru cyou cz dabur dad dance data date dating datsun day dclk dds de deal dealer deals degree delivery dell deloitte delta democrat dental dentist desi design dev dhl diamonds diet digital direct directory discount discover dish diy dj dk dm dnp do docs doctor dog domains dot download drive dtv dubai dunlop dupont durban dvag dvr dz earth eat ec eco edeka edu education ee eg email emerck energy engineer engineering enterprises epson equipment er ericsson erni es esq estate et etisalat eu eurovision eus events exchange expert exposed express extraspace fage fail fairwinds faith family fan fans farm farmers fashion fast fedex feedback ferrari ferrero fi fiat fidelity fido film final finance financial fire firestone firmdale fish fishing fit fitness fj fk flickr flights flir florist flowers fly fm fo foo food foodnetwork football ford forex forsale forum foundation fox fr free fresenius frl frogans frontdoor frontier ftr fujitsu fun fund furniture futbol fyi ga gal gallery gallo gallup game games gap garden gay gb gbiz gd gdn ge gea gent genting george gf gg ggee gh gi gift gifts gives giving gl glass gle global globo gm gmail gmbh gmo gmx gn godaddy gold goldpoint golf goo goodyear goog google gop got gov gp gq gr grainger graphics gratis green gripe grocery group gs gt gu guardian gucci guge guide guitars guru gw gy hair hamburg hangout haus hbo hdfc hdfcbank health healthcare help helsinki here hermes hgtv hiphop hisamitsu hitachi hiv hk hkt hm hn hockey holdings holiday homedepot homegoods homes homesense honda horse hospital host hosting hot hoteles hotels hotmail house how hr hsbc ht hu hughes hyatt hyundai ibm icbc ice icu id ie ieee ifm ikano il im imamat imdb immo immobilien in inc industries infiniti info ing ink institute insurance insure int international intuit investments io ipiranga iq ir irish is ismaili ist istanbul it itau itv jaguar java jcb je jeep jetzt jewelry jio jll jm jmp jnj jo jobs joburg jot joy jp jpmorgan jprs juegos juniper kaufen kddi ke kerryhotels kerrylogistics kerryproperties kfh kg kh ki kia kids kim kinder kindle kitchen kiwi km kn koeln komatsu kosher kp kpmg kpn kr krd kred kuokgroup kw ky kyoto kz la lacaixa lamborghini lamer lancaster lancia land landrover lanxess lasalle lat latino latrobe law lawyer lb lc lds lease leclerc lefrak legal lego lexus lgbt li lidl life lifeinsurance lifestyle lighting like lilly limited limo lincoln linde link lipsy live living lk llc llp loan loans locker locus loft lol london lotte lotto love lpl lplfinancial lr ls lt ltd ltda lu lundbeck luxe luxury lv ly ma macys madrid maif maison makeup man management mango map market marketing markets marriott marshalls maserati mattel mba mc mckinsey md me med media meet melbourne meme memorial men menu merckmsd mg mh miami microsoft mil mini mint mit mitsubishi mk ml mlb mls mm mma mn mo mobi mobile moda moe moi mom monash money monster mormon mortgage moscow moto motorcycles mov movie mp mq mr ms msd mt mtn mtr mu museum music mutual mv mw mx my mz na nab nagoya name natura navy nba nc ne nec net netbank netflix network neustar new news next nextdirect nexus nf nfl ng ngo nhk ni nico nike nikon ninja nissan nissay nl no nokia northwesternmutual norton now nowruz nowtv np nr nra nrw ntt nu nyc nz obi observer office okinawa olayan olayangroup oldnavy ollo om omega one ong onl online ooo open oracle orange org organic origins osaka otsuka ott ovh pa page panasonic paris pars partners parts party passagens pay pccw pe pet pf pfizer pg ph pharmacy phd philips phone photo photography photos physio pics pictet pictures pid pin ping pink pioneer pizza pk pl place play playstation plumbing plus pm pn pnc pohl poker politie porn post pr pramerica praxi press prime pro prod productions prof progressive promo properties property protection pru prudential ps pt pub pw pwc py qa qpon quebec quest racing radio re read realestate realtor realty recipes red redstone redumbrella rehab reise reisen reit reliance ren rent rentals repair report republican rest restaurant review reviews rexroth rich richardli ricoh ril rio rip ro rocher rocks rodeo rogers room rs rsvp ru rugby ruhr run rw rwe ryukyu sa saarland safe safety sakura sale salon samsclub samsung sandvik sandvikcoromant sanofi sap sarl sas save saxo sb sbi sbs sc sca scb schaeffler schmidt scholarships school schule schwarz science scot sd se search seat secure security seek select sener services ses seven sew sex sexy sfr sg sh shangrila sharp shaw shell shia shiksha shoes shop shopping shouji show showtime si silk sina singles site sj sk ski skin sky skype sl sling sm smart smile sn sncf so soccer social softbank software sohu solar solutions song sony soy spa space sport spot sr srl ss st stada staples star statebank statefarm stc stcgroup stockholm storage store stream studio study style su sucks supplies supply support surf surgery suzuki sv swatch swiss sx sy sydney systems sz tab taipei talk taobao target tatamotors tatar tattoo tax taxi tc tci td tdk team tech technology tel temasek tennis teva tf tg th thd theater theatre tiaa tickets tienda tiffany tips tires tirol tj tjmaxx tjx tk tkmaxx tl tm tmall tn to today tokyo tools top toray toshiba total tours town toyota toys tr trade trading training travel travelchannel travelers travelersinsurance trust trv tt tube tui tunes tushu tv tvs tw tz ua ubank ubs ug uk unicom university uno uol ups us uy uz va vacations vana vanguard vc ve vegas ventures verisign vermögensberater vermögensberatung versicherung vet vg vi viajes video vig viking villas vin vip virgin visa vision viva vivo vlaanderen vn vodka volkswagen volvo vote voting voto voyage vu vuelos wales walmart walter wang wanggou watch watches weather weatherchannel webcam weber website wed wedding weibo weir wf whoswho wien wiki williamhill win windows wine winners wme wolterskluwer woodside work works world wow ws wtc wtf xbox xerox xfinity xihuan xin xxx xyz yachts yahoo yamaxun yandex ye yodobashi yoga yokohama you youtube yt yun za zappos zara zero zip zm zone zuerich zw".split(" "),Ur="ελ ευ бг бел дети ею католик ком мкд мон москва онлайн орг рус рф сайт срб укр қаз հայ ישראל קום ابوظبي اتصالات ارامكو الاردن البحرين الجزائر السعودية العليان المغرب امارات ایران بارت بازار بيتك بھارت تونس سودان سورية شبكة عراق عرب عمان فلسطين قطر كاثوليك كوم مصر مليسيا موريتانيا موقع همراه پاکستان ڀارت कॉम नेट भारत भारतम् भारोत संगठन বাংলা ভারত ভাৰত ਭਾਰਤ ભારત ଭାରତ இந்தியா இலங்கை சிங்கப்பூர் భారత్ ಭಾರತ ഭാരതം ලංකා คอม ไทย ລາວ გე みんな アマゾン クラウド グーグル コム ストア セール ファッション ポイント 世界 中信 中国 中國 中文网 亚马逊 企业 佛山 信息 健康 八卦 公司 公益 台湾 台灣 商城 商店 商标 嘉里 嘉里大酒店 在线 大拿 天主教 娱乐 家電 广东 微博 慈善 我爱你 手机 招聘 政务 政府 新加坡 新闻 时尚 書籍 机构 淡马锡 游戏 澳門 点看 移动 组织机构 网址 网店 网站 网络 联通 诺基亚 谷歌 购物 通販 集团 電訊盈科 飞利浦 食品 餐厅 香格里拉 香港 닷넷 닷컴 삼성 한국".split(" "),Ir=function(t,e){for(var r in e)t[r]=e[r];return t},Br="numeric",Nr="ascii",Lr="alpha",Pr="asciinumeric",Rr="alphanumeric",jr="domain",Mr="emoji",qr="scheme",zr="slashscheme",Hr="whitespace";function $r(t,e){return t in e||(e[t]=[]),e[t]}function Vr(t,e,r){for(var n in e[Br]&&(e[Pr]=!0,e[Rr]=!0),e[Nr]&&(e[Pr]=!0,e[Lr]=!0),e[Pr]&&(e[Rr]=!0),e[Lr]&&(e[Rr]=!0),e[Rr]&&(e[jr]=!0),e[Mr]&&(e[jr]=!0),e){var i=$r(n,r);i.indexOf(t)<0&&i.push(t)}}function Wr(t,e){var r={};for(var n in e)e[n].indexOf(t)>=0&&(r[n]=!0);return r}function Gr(t){void 0===t&&(t=null),this.j={},this.jr=[],this.jd=null,this.t=t}Gr.groups={},Gr.prototype={accepts:function(){return!!this.t},go:function(t){var e=this,r=e.j[t];if(r)return r;for(var n=0;n",mn),Xr(u,")",gn),Xr(u,"&",bn),Xr(u,"*",Dn),Xr(u,"@",wn),Xr(u,"`",kn),Xr(u,"^",An),Xr(u,":",Sn),Xr(u,",",En),Xr(u,"$",Cn),Xr(u,".",_n),Xr(u,"=",xn),Xr(u,"!",Tn),Xr(u,"-",On),Xr(u,"%",Fn),Xr(u,"|",Un),Xr(u,"+",In),Xr(u,"#",Bn),Xr(u,"?",Nn),Xr(u,'"',Ln),Xr(u,"/",Rn),Xr(u,";",Pn),Xr(u,"~",jn),Xr(u,"_",Mn),Xr(u,"\\",vn);var l=Kr(u,Gn,sn,(e={},e[Br]=!0,e));Kr(l,Gn,l);var c=Kr(u,$n,Jr,(r={},r[Nr]=!0,r));Kr(c,$n,c);var d=Kr(u,Vn,Qr,(n={},n[Lr]=!0,n));Kr(d,$n),Kr(d,Vn,d);var p=Kr(u,Zn,an,(i={},i[Hr]=!0,i));Xr(u,Kn,un,(o={},o[Hr]=!0,o)),Xr(p,Kn),Kr(p,Zn,p);var h=Kr(u,Wn,qn,(s={},s[Mr]=!0,s));Kr(h,Wn,h),Xr(h,Yn,h);var f=Xr(h,Xn);Kr(f,Wn,h);for(var m=[[$n,c]],g=[[$n,null],[Vn,d]],b=0;be[0]?1:-1}));for(var D=0;D=0?S[jr]=!0:$n.test(k)?Gn.test(k)?S[Pr]=!0:S[Nr]=!0:S[Br]=!0,Yr(u,k,k,S)}return Yr(u,"localhost",tn,{ascii:!0}),u.jd=new Gr(zn),{start:u,tokens:Ir({groups:a},Hn)}}function Qn(t,e){var r=ti(e.replace(/[A-Z]/g,(function(t){return t.toLowerCase()}))),n=r.length,i=[],o=0,s=0;while(s=0&&(d+=r[s].length,p++),l+=r[s].length,o+=r[s].length,s++;o-=d,s-=p,l-=d,i.push({t:c.t,v:e.slice(o-l,o),s:o-l,e:o})}return i}function ti(t){var e=[],r=t.length,n=0;while(n56319||n+1===r||(o=t.charCodeAt(n+1))<56320||o>57343?t[n]:t.slice(n,n+2);e.push(s),n+=s.length}return e}function ei(t,e,r,n,i){for(var o,s=e.length,a=0;ar?n.substring(0,r)+"…":n},toFormattedHref:function(t){return t.get("formatHref",this.toHref(t.get("defaultProtocol")),this)},startIndex:function(){return this.tk[0].s},endIndex:function(){return this.tk[this.tk.length-1].e},toObject:function(t){return void 0===t&&(t=ii.defaultProtocol),{type:this.t,value:this.toString(),isLink:this.isLink,href:this.toHref(t),start:this.startIndex(),end:this.endIndex()}},toFormattedObject:function(t){return{type:this.t,value:this.toFormattedString(t),isLink:this.isLink,href:this.toFormattedHref(t),start:this.startIndex(),end:this.endIndex()}},validate:function(t){return t.get("validate",this.toString(),this)},render:function(t){var e=this,r=this.toFormattedHref(t),n=t.get("tagName",r,e),i=this.toFormattedString(t),o={},s=t.get("className",r,e),a=t.get("target",r,e),u=t.get("rel",r,e),l=t.getObj("attributes",r,e),c=t.getObj("events",r,e);return o.href=r,s&&(o.class=s),a&&(o.target=a),u&&(o.rel=u),l&&Ir(o,l),{tagName:n,attributes:o,content:i,eventListeners:c}}};var li=ui("email",{isLink:!0,toHref:function(){return"mailto:"+this.toString()}}),ci=ui("text"),di=ui("nl"),pi=ui("url",{isLink:!0,toHref:function(t){return void 0===t&&(t=ii.defaultProtocol),this.hasProtocol()?this.v:t+"://"+this.v},hasProtocol:function(){var t=this.tk;return t.length>=2&&t[0].t!==tn&&t[1].t===Sn}}),hi=function(t){return new Gr(t)};function fi(t){var e=t.groups,r=e.domain.concat([bn,Dn,wn,vn,kn,An,Cn,xn,On,sn,Fn,Un,In,Bn,Rn,zn,jn,Mn]),n=[yn,mn,hn,fn,gn,Sn,En,_n,Tn,dn,ln,cn,pn,Nn,Ln,Pn],i=[bn,yn,Dn,vn,kn,An,hn,Cn,xn,On,sn,ln,Fn,Un,In,Bn,Nn,Rn,zn,jn,Mn],o=hi(),s=Xr(o,jn);Zr(s,i,s),Zr(s,e.domain,s);var a=hi(),u=hi(),l=hi();Zr(o,e.domain,a),Zr(o,e.scheme,u),Zr(o,e.slashscheme,l),Zr(a,i,s),Zr(a,e.domain,a);var c=Xr(a,wn);Xr(s,wn,c);var d=Xr(s,_n);Zr(d,i,s),Zr(d,e.domain,s);var p=hi();Zr(c,e.domain,p),Zr(p,e.domain,p);var h=Xr(p,_n);Zr(h,e.domain,p);var f=hi(li);Zr(h,e.tld,f),Zr(h,e.utld,f),Xr(c,tn,f);var m=Xr(p,On);Zr(m,e.domain,p),Zr(f,e.domain,p),Xr(f,_n,h),Xr(f,On,m);var g=Xr(f,Sn);Zr(g,e.numeric,li);var b=Xr(a,On),y=Xr(a,_n);Zr(b,e.domain,a),Zr(y,i,s),Zr(y,e.domain,a);var D=hi(pi);Zr(y,e.tld,D),Zr(y,e.utld,D),Zr(D,e.domain,a),Zr(D,i,s),Xr(D,_n,y),Xr(D,On,b),Xr(D,wn,c);var w=Xr(D,Sn),v=hi(pi);Zr(w,e.numeric,v);var k=hi(pi),A=hi();Zr(k,r,k),Zr(k,n,A),Zr(A,r,k),Zr(A,n,A),Xr(D,Rn,k),Xr(v,Rn,k);var S=Xr(u,Sn),E=Xr(l,Sn),C=Xr(E,Rn);Xr(C,Rn,S),Zr(u,e.domain,a),Xr(u,_n,y),Xr(u,On,b),Zr(l,e.domain,a),Xr(l,_n,y),Xr(l,On,b),Zr(S,e.domain,k),Xr(S,Rn,k);var _=Xr(k,ln),x=Xr(k,cn),T=Xr(k,dn),O=Xr(k,pn);Xr(A,ln,_),Xr(A,cn,x),Xr(A,dn,T),Xr(A,pn,O),Xr(_,hn,k),Xr(x,fn,k),Xr(T,mn,k),Xr(O,gn,k),Xr(_,hn,k);var F=hi(pi),U=hi(pi),I=hi(pi),B=hi(pi);Zr(_,r,F),Zr(x,r,U),Zr(T,r,I),Zr(O,r,B);var N=hi(),L=hi(),P=hi(),R=hi();return Zr(_,n),Zr(x,n),Zr(T,n),Zr(O,n),Zr(F,r,F),Zr(U,r,U),Zr(I,r,I),Zr(B,r,B),Zr(F,n,F),Zr(U,n,U),Zr(I,n,I),Zr(B,n,B),Zr(N,r,N),Zr(L,r,U),Zr(P,r,I),Zr(R,r,B),Zr(N,n,N),Zr(L,n,L),Zr(P,n,P),Zr(R,n,R),Xr(U,fn,k),Xr(I,mn,k),Xr(B,gn,k),Xr(F,hn,k),Xr(L,fn,k),Xr(P,mn,k),Xr(R,gn,k),Xr(N,gn,k),Xr(o,tn,D),Xr(o,un,di),{start:o,tokens:Hn}}function mi(t,e,r){var n=r.length,i=0,o=[],s=[];while(i=0&&p++,i++,c++;if(p<0)i-=c,i0&&(o.push(gi(ci,e,s)),s=[]),i-=p,c-=p;var h=d.t,f=r.slice(i-c,i);o.push(gi(h,e,f))}}return s.length>0&&o.push(gi(ci,e,s)),o}function gi(t,e,r){var n=r[0].s,i=r[r.length-1].e,o=e.slice(n,i);return new t(o,r)}"undefined"!==typeof console&&console&&console.warn;var bi={scanner:null,parser:null,tokenQueue:[],pluginQueue:[],customSchemes:[],initialized:!1};function yi(){bi.scanner=Jn(bi.customSchemes);for(var t=0;t",lt:"<",nbsp:" ",quot:'"'},vi=/^#[xX]([A-Fa-f0-9]+)$/,ki=/^#([0-9]+)$/,Ai=/^([A-Za-z0-9]+)$/,Si=function(){function t(t){this.named=t}return t.prototype.parse=function(t){if(t){var e=t.match(vi);return e?String.fromCharCode(parseInt(e[1],16)):(e=t.match(ki),e?String.fromCharCode(parseInt(e[1],10)):(e=t.match(Ai),e?this.named[e[1]]||"&"+e[1]+";":void 0))}},t}(),Ei=/[\t\n\f ]/,Ci=/[A-Za-z]/,_i=/\r\n?/g;function xi(t){return Ei.test(t)}function Ti(t){return Ci.test(t)}function Oi(t){return t.replace(_i,"\n")}var Fi=function(){function t(t,e,r){void 0===r&&(r="precompile"),this.delegate=t,this.entityParser=e,this.mode=r,this.state="beforeData",this.line=-1,this.column=-1,this.input="",this.index=-1,this.tagNameBuffer="",this.states={beforeData:function(){var t=this.peek();if("<"!==t||this.isIgnoredEndTag()){if("precompile"===this.mode&&"\n"===t){var e=this.tagNameBuffer.toLowerCase();"pre"!==e&&"textarea"!==e||this.consume()}this.transitionTo("data"),this.delegate.beginData()}else this.transitionTo("tagOpen"),this.markTagStart(),this.consume()},data:function(){var t=this.peek(),e=this.tagNameBuffer;"<"!==t||this.isIgnoredEndTag()?"&"===t&&"script"!==e&&"style"!==e?(this.consume(),this.delegate.appendToData(this.consumeCharRef()||"&")):(this.consume(),this.delegate.appendToData(t)):(this.delegate.finishData(),this.transitionTo("tagOpen"),this.markTagStart(),this.consume())},tagOpen:function(){var t=this.consume();"!"===t?this.transitionTo("markupDeclarationOpen"):"/"===t?this.transitionTo("endTagOpen"):("@"===t||":"===t||Ti(t))&&(this.transitionTo("tagName"),this.tagNameBuffer="",this.delegate.beginStartTag(),this.appendToTagName(t))},markupDeclarationOpen:function(){var t=this.consume();if("-"===t&&"-"===this.peek())this.consume(),this.transitionTo("commentStart"),this.delegate.beginComment();else{var e=t.toUpperCase()+this.input.substring(this.index,this.index+6).toUpperCase();"DOCTYPE"===e&&(this.consume(),this.consume(),this.consume(),this.consume(),this.consume(),this.consume(),this.transitionTo("doctype"),this.delegate.beginDoctype&&this.delegate.beginDoctype())}},doctype:function(){var t=this.consume();xi(t)&&this.transitionTo("beforeDoctypeName")},beforeDoctypeName:function(){var t=this.consume();xi(t)||(this.transitionTo("doctypeName"),this.delegate.appendToDoctypeName&&this.delegate.appendToDoctypeName(t.toLowerCase()))},doctypeName:function(){var t=this.consume();xi(t)?this.transitionTo("afterDoctypeName"):">"===t?(this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo("beforeData")):this.delegate.appendToDoctypeName&&this.delegate.appendToDoctypeName(t.toLowerCase())},afterDoctypeName:function(){var t=this.consume();if(!xi(t))if(">"===t)this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo("beforeData");else{var e=t.toUpperCase()+this.input.substring(this.index,this.index+5).toUpperCase(),r="PUBLIC"===e.toUpperCase(),n="SYSTEM"===e.toUpperCase();(r||n)&&(this.consume(),this.consume(),this.consume(),this.consume(),this.consume(),this.consume()),r?this.transitionTo("afterDoctypePublicKeyword"):n&&this.transitionTo("afterDoctypeSystemKeyword")}},afterDoctypePublicKeyword:function(){var t=this.peek();xi(t)?(this.transitionTo("beforeDoctypePublicIdentifier"),this.consume()):'"'===t?(this.transitionTo("doctypePublicIdentifierDoubleQuoted"),this.consume()):"'"===t?(this.transitionTo("doctypePublicIdentifierSingleQuoted"),this.consume()):">"===t&&(this.consume(),this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo("beforeData"))},doctypePublicIdentifierDoubleQuoted:function(){var t=this.consume();'"'===t?this.transitionTo("afterDoctypePublicIdentifier"):">"===t?(this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo("beforeData")):this.delegate.appendToDoctypePublicIdentifier&&this.delegate.appendToDoctypePublicIdentifier(t)},doctypePublicIdentifierSingleQuoted:function(){var t=this.consume();"'"===t?this.transitionTo("afterDoctypePublicIdentifier"):">"===t?(this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo("beforeData")):this.delegate.appendToDoctypePublicIdentifier&&this.delegate.appendToDoctypePublicIdentifier(t)},afterDoctypePublicIdentifier:function(){var t=this.consume();xi(t)?this.transitionTo("betweenDoctypePublicAndSystemIdentifiers"):">"===t?(this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo("beforeData")):'"'===t?this.transitionTo("doctypeSystemIdentifierDoubleQuoted"):"'"===t&&this.transitionTo("doctypeSystemIdentifierSingleQuoted")},betweenDoctypePublicAndSystemIdentifiers:function(){var t=this.consume();xi(t)||(">"===t?(this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo("beforeData")):'"'===t?this.transitionTo("doctypeSystemIdentifierDoubleQuoted"):"'"===t&&this.transitionTo("doctypeSystemIdentifierSingleQuoted"))},doctypeSystemIdentifierDoubleQuoted:function(){var t=this.consume();'"'===t?this.transitionTo("afterDoctypeSystemIdentifier"):">"===t?(this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo("beforeData")):this.delegate.appendToDoctypeSystemIdentifier&&this.delegate.appendToDoctypeSystemIdentifier(t)},doctypeSystemIdentifierSingleQuoted:function(){var t=this.consume();"'"===t?this.transitionTo("afterDoctypeSystemIdentifier"):">"===t?(this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo("beforeData")):this.delegate.appendToDoctypeSystemIdentifier&&this.delegate.appendToDoctypeSystemIdentifier(t)},afterDoctypeSystemIdentifier:function(){var t=this.consume();xi(t)||">"===t&&(this.delegate.endDoctype&&this.delegate.endDoctype(),this.transitionTo("beforeData"))},commentStart:function(){var t=this.consume();"-"===t?this.transitionTo("commentStartDash"):">"===t?(this.delegate.finishComment(),this.transitionTo("beforeData")):(this.delegate.appendToCommentData(t),this.transitionTo("comment"))},commentStartDash:function(){var t=this.consume();"-"===t?this.transitionTo("commentEnd"):">"===t?(this.delegate.finishComment(),this.transitionTo("beforeData")):(this.delegate.appendToCommentData("-"),this.transitionTo("comment"))},comment:function(){var t=this.consume();"-"===t?this.transitionTo("commentEndDash"):this.delegate.appendToCommentData(t)},commentEndDash:function(){var t=this.consume();"-"===t?this.transitionTo("commentEnd"):(this.delegate.appendToCommentData("-"+t),this.transitionTo("comment"))},commentEnd:function(){var t=this.consume();">"===t?(this.delegate.finishComment(),this.transitionTo("beforeData")):(this.delegate.appendToCommentData("--"+t),this.transitionTo("comment"))},tagName:function(){var t=this.consume();xi(t)?this.transitionTo("beforeAttributeName"):"/"===t?this.transitionTo("selfClosingStartTag"):">"===t?(this.delegate.finishTag(),this.transitionTo("beforeData")):this.appendToTagName(t)},endTagName:function(){var t=this.consume();xi(t)?(this.transitionTo("beforeAttributeName"),this.tagNameBuffer=""):"/"===t?(this.transitionTo("selfClosingStartTag"),this.tagNameBuffer=""):">"===t?(this.delegate.finishTag(),this.transitionTo("beforeData"),this.tagNameBuffer=""):this.appendToTagName(t)},beforeAttributeName:function(){var t=this.peek();xi(t)?this.consume():"/"===t?(this.transitionTo("selfClosingStartTag"),this.consume()):">"===t?(this.consume(),this.delegate.finishTag(),this.transitionTo("beforeData")):"="===t?(this.delegate.reportSyntaxError("attribute name cannot start with equals sign"),this.transitionTo("attributeName"),this.delegate.beginAttribute(),this.consume(),this.delegate.appendToAttributeName(t)):(this.transitionTo("attributeName"),this.delegate.beginAttribute())},attributeName:function(){var t=this.peek();xi(t)?(this.transitionTo("afterAttributeName"),this.consume()):"/"===t?(this.delegate.beginAttributeValue(!1),this.delegate.finishAttributeValue(),this.consume(),this.transitionTo("selfClosingStartTag")):"="===t?(this.transitionTo("beforeAttributeValue"),this.consume()):">"===t?(this.delegate.beginAttributeValue(!1),this.delegate.finishAttributeValue(),this.consume(),this.delegate.finishTag(),this.transitionTo("beforeData")):'"'===t||"'"===t||"<"===t?(this.delegate.reportSyntaxError(t+" is not a valid character within attribute names"),this.consume(),this.delegate.appendToAttributeName(t)):(this.consume(),this.delegate.appendToAttributeName(t))},afterAttributeName:function(){var t=this.peek();xi(t)?this.consume():"/"===t?(this.delegate.beginAttributeValue(!1),this.delegate.finishAttributeValue(),this.consume(),this.transitionTo("selfClosingStartTag")):"="===t?(this.consume(),this.transitionTo("beforeAttributeValue")):">"===t?(this.delegate.beginAttributeValue(!1),this.delegate.finishAttributeValue(),this.consume(),this.delegate.finishTag(),this.transitionTo("beforeData")):(this.delegate.beginAttributeValue(!1),this.delegate.finishAttributeValue(),this.transitionTo("attributeName"),this.delegate.beginAttribute(),this.consume(),this.delegate.appendToAttributeName(t))},beforeAttributeValue:function(){var t=this.peek();xi(t)?this.consume():'"'===t?(this.transitionTo("attributeValueDoubleQuoted"),this.delegate.beginAttributeValue(!0),this.consume()):"'"===t?(this.transitionTo("attributeValueSingleQuoted"),this.delegate.beginAttributeValue(!0),this.consume()):">"===t?(this.delegate.beginAttributeValue(!1),this.delegate.finishAttributeValue(),this.consume(),this.delegate.finishTag(),this.transitionTo("beforeData")):(this.transitionTo("attributeValueUnquoted"),this.delegate.beginAttributeValue(!1),this.consume(),this.delegate.appendToAttributeValue(t))},attributeValueDoubleQuoted:function(){var t=this.consume();'"'===t?(this.delegate.finishAttributeValue(),this.transitionTo("afterAttributeValueQuoted")):"&"===t?this.delegate.appendToAttributeValue(this.consumeCharRef()||"&"):this.delegate.appendToAttributeValue(t)},attributeValueSingleQuoted:function(){var t=this.consume();"'"===t?(this.delegate.finishAttributeValue(),this.transitionTo("afterAttributeValueQuoted")):"&"===t?this.delegate.appendToAttributeValue(this.consumeCharRef()||"&"):this.delegate.appendToAttributeValue(t)},attributeValueUnquoted:function(){var t=this.peek();xi(t)?(this.delegate.finishAttributeValue(),this.consume(),this.transitionTo("beforeAttributeName")):"/"===t?(this.delegate.finishAttributeValue(),this.consume(),this.transitionTo("selfClosingStartTag")):"&"===t?(this.consume(),this.delegate.appendToAttributeValue(this.consumeCharRef()||"&")):">"===t?(this.delegate.finishAttributeValue(),this.consume(),this.delegate.finishTag(),this.transitionTo("beforeData")):(this.consume(),this.delegate.appendToAttributeValue(t))},afterAttributeValueQuoted:function(){var t=this.peek();xi(t)?(this.consume(),this.transitionTo("beforeAttributeName")):"/"===t?(this.consume(),this.transitionTo("selfClosingStartTag")):">"===t?(this.consume(),this.delegate.finishTag(),this.transitionTo("beforeData")):this.transitionTo("beforeAttributeName")},selfClosingStartTag:function(){var t=this.peek();">"===t?(this.consume(),this.delegate.markTagAsSelfClosing(),this.delegate.finishTag(),this.transitionTo("beforeData")):this.transitionTo("beforeAttributeName")},endTagOpen:function(){var t=this.consume();("@"===t||":"===t||Ti(t))&&(this.transitionTo("endTagName"),this.tagNameBuffer="",this.delegate.beginEndTag(),this.appendToTagName(t))}},this.reset()}return t.prototype.reset=function(){this.transitionTo("beforeData"),this.input="",this.tagNameBuffer="",this.index=0,this.line=1,this.column=0,this.delegate.reset()},t.prototype.transitionTo=function(t){this.state=t},t.prototype.tokenize=function(t){this.reset(),this.tokenizePart(t),this.tokenizeEOF()},t.prototype.tokenizePart=function(t){this.input+=Oi(t);while(this.index"!==this.input.substring(this.index,this.index+8)||"style"===t&&""!==this.input.substring(this.index,this.index+8)||"script"===t&&"<\/script>"!==this.input.substring(this.index,this.index+9)},t}(),Ui=function(){function t(t,e){void 0===e&&(e={}),this.options=e,this.token=null,this.startLine=1,this.startColumn=0,this.tokens=[],this.tokenizer=new Fi(this,t,e.mode),this._currentAttribute=void 0}return t.prototype.tokenize=function(t){return this.tokens=[],this.tokenizer.tokenize(t),this.tokens},t.prototype.tokenizePart=function(t){return this.tokens=[],this.tokenizer.tokenizePart(t),this.tokens},t.prototype.tokenizeEOF=function(){return this.tokens=[],this.tokenizer.tokenizeEOF(),this.tokens[0]},t.prototype.reset=function(){this.token=null,this.startLine=1,this.startColumn=0},t.prototype.current=function(){var t=this.token;if(null===t)throw new Error("token was unexpectedly null");if(0===arguments.length)return t;for(var e=0;e=0;if(!l)continue;var c=n.length;zi(u,r,++s,n),s+=n.length-c-1}else if(a.type!==Pi)n.push(a);else{var d=qi(a.chars,o);n.push.apply(n,d)}}for(var p=0;p0&&(f+=" "+Gi(h.attributes).join(" ")),h.selfClosing&&(f+=" /"),f+=">",i.push(f);break;case Li:i.push("");break;case Pi:i.push($i(h.chars));break;case Ri:i.push("\x3c!--"+$i(h.chars)+"--\x3e");break;case ji:var m="",i.push(m);break}}return i.join("")}function qi(t,e){for(var r=Di(t),n=[],i=0;i0){var o=e[r];o.type===Ni&&o.tagName.toUpperCase()===t?i++:o.type===Li&&o.tagName.toUpperCase()===t&&i--,n.push(o),r++}return n}function Hi(t){var e=t.tagName,r=t.attributes,n=t.content;return"<"+e+" "+Wi(r)+">"+$i(n)+""}function $i(t){return t.replace(/&/g,"&").replace(//g,">")}function Vi(t){return t.replace(/"/g,""")}function Wi(t){var e=[];for(var r in t){var n=t[r]+"";e.push(r+'="'+Vi(n)+'"')}return e.join(" ")}function Gi(t){for(var e=[],r=0;rKi()(Mi(t,{target:"_blank"}),{allowedTags:["a"],disallowedTagsMode:"escape"}),Xi={id:"workout-note"},Ji=["innerHTML"];var Qi=(0,n.aZ)({__name:"WorkoutNotes",props:{notes:{default:()=>null}},setup(t){const e=t,{notes:r}=(0,i.BK)(e);return(t,e)=>{const o=(0,n.up)("Card");return(0,n.wg)(),(0,n.iD)("div",Xi,[(0,n.Wm)(o,null,{title:(0,n.w5)((()=>[(0,n.Uk)((0,a.zw)(t.$t("workouts.NOTES")),1)])),content:(0,n.w5)((()=>[(0,n._)("span",{innerHTML:(0,i.SU)(r)&&""!==(0,i.SU)(r)?(0,i.SU)(Yi)((0,i.SU)(r)):t.$t("workouts.NO_NOTES")},null,8,Ji)])),_:1})])}}});const to=(0,_.Z)(Qi,[["__scopeId","data-v-f6b59442"]]);var eo=to;const ro={id:"workout-segments"};var no=(0,n.aZ)({__name:"WorkoutSegments",props:{segments:null,useImperialUnits:{type:Boolean}},setup(t){const e=t,{segments:r,useImperialUnits:o}=(0,i.BK)(e);return(t,e)=>{const s=(0,n.up)("router-link"),u=(0,n.up)("Distance"),l=(0,n.up)("Card");return(0,n.wg)(),(0,n.iD)("div",ro,[(0,n.Wm)(l,null,{title:(0,n.w5)((()=>[(0,n.Uk)((0,a.zw)(t.$t("workouts.SEGMENT",2)),1)])),content:(0,n.w5)((()=>[(0,n._)("ul",null,[((0,n.wg)(!0),(0,n.iD)(n.HY,null,(0,n.Ko)((0,i.SU)(r),((e,r)=>((0,n.wg)(),(0,n.iD)("li",{key:e.segment_id},[(0,n.Wm)(s,{to:{name:"WorkoutSegment",params:{workoutId:e.workout_id,segmentId:r+1}}},{default:(0,n.w5)((()=>[(0,n.Uk)((0,a.zw)(t.$t("workouts.SEGMENT",1))+" "+(0,a.zw)(r+1),1)])),_:2},1032,["to"]),(0,n.Uk)(" ("+(0,a.zw)(t.$t("workouts.DISTANCE"))+": ",1),(0,n.Wm)(u,{distance:e.distance,unitFrom:"km",useImperialUnits:(0,i.SU)(o)},null,8,["distance","useImperialUnits"]),(0,n.Uk)(", "+(0,a.zw)(t.$t("workouts.DURATION"))+": "+(0,a.zw)(e.duration)+") ",1)])))),128))])])),_:1})])}}});const io=(0,_.Z)(no,[["__scopeId","data-v-6b8a27cd"]]);var oo=io;const so=t=>((0,n.dD)("data-v-53c4e53a"),t=t(),(0,n.Cn)(),t),ao={id:"workout",class:"view"},uo={class:"container"},lo={key:0,class:"workout-container"},co={key:0},po=so((()=>(0,n._)("div",{id:"bottom"},null,-1))),ho={key:1};var fo=(0,n.aZ)({__name:"Workout",props:{displaySegment:{type:Boolean}},setup(t){const e=t,r=(0,o.yj)(),a=(0,Xe.o)(),{displaySegment:u}=(0,i.BK)(e),l=(0,n.Fl)((()=>a.getters[Ye.aX.GETTERS.WORKOUT_DATA])),c=(0,n.Fl)((()=>a.getters[Ye.YN.GETTERS.AUTH_USER_PROFILE])),d=(0,n.Fl)((()=>a.getters[Ye.O8.GETTERS.SPORTS])),p=(0,i.iH)({latitude:null,longitude:null});function h(t){p.value={latitude:t.latitude,longitude:t.longitude}}return(0,n.wF)((()=>{const t={workoutId:r.params.workoutId};e.displaySegment&&(t.segmentId=r.params.segmentId),a.dispatch(Ye.aX.ACTIONS.GET_WORKOUT_DATA,t)})),(0,n.Ah)((()=>{a.commit(Ye.aX.MUTATIONS.EMPTY_WORKOUT)})),(0,n.YP)((()=>r.params.workoutId),(async t=>{t&&a.dispatch(Ye.aX.ACTIONS.GET_WORKOUT_DATA,{workoutId:t})})),(0,n.YP)((()=>r.params.segmentId),(async t=>{if(r.params.workoutId){const e={workoutId:r.params.workoutId};t&&(e.segmentId=t),a.dispatch(Ye.aX.ACTIONS.GET_WORKOUT_DATA,e)}})),(t,e)=>((0,n.wg)(),(0,n.iD)("div",ao,[(0,n._)("div",uo,[(0,i.SU)(d).length>0?((0,n.wg)(),(0,n.iD)("div",lo,[(0,i.SU)(l).workout.id?((0,n.wg)(),(0,n.iD)("div",co,[(0,n.Wm)(pr,{workoutData:(0,i.SU)(l),sports:(0,i.SU)(d),authUser:(0,i.SU)(c),markerCoordinates:p.value,displaySegment:(0,i.SU)(u)},null,8,["workoutData","sports","authUser","markerCoordinates","displaySegment"]),(0,i.SU)(l).workout.with_gpx&&(0,i.SU)(l).chartData.length>0?((0,n.wg)(),(0,n.j4)(Or,{key:0,workoutData:(0,i.SU)(l),authUser:(0,i.SU)(c),displaySegment:(0,i.SU)(u),onGetCoordinates:h},null,8,["workoutData","authUser","displaySegment"])):(0,n.kq)("",!0),!(0,i.SU)(u)&&(0,i.SU)(l).workout.segments.length>1?((0,n.wg)(),(0,n.j4)(oo,{key:1,segments:(0,i.SU)(l).workout.segments,useImperialUnits:(0,i.SU)(c).imperial_units},null,8,["segments","useImperialUnits"])):(0,n.kq)("",!0),(0,i.SU)(u)?(0,n.kq)("",!0):((0,n.wg)(),(0,n.j4)(eo,{key:2,notes:(0,i.SU)(l).workout.notes},null,8,["notes"])),po])):((0,n.wg)(),(0,n.iD)("div",ho,[(0,i.SU)(l).loading?(0,n.kq)("",!0):((0,n.wg)(),(0,n.j4)(s.Z,{key:0,target:"WORKOUT"}))]))])):(0,n.kq)("",!0)])]))}});const mo=(0,_.Z)(fo,[["__scopeId","data-v-53c4e53a"]]);var go=mo},3372:function(t,e,r){"use strict";r.r(e),r.d(e,{default:function(){return qt}});var n=r(6252),i=r(2262),o=r(3577),s=r(9150),a=(r(7658),r(2201)),u=r(631),l=r(3649);const c=t=>((0,n.dD)("data-v-6c38593a"),t=t(),(0,n.Cn)(),t),d={class:"workouts-filters"},p={class:"box"},h={class:"form"},f={class:"form-items-group"},m={class:"form-item"},g=["value"],b={class:"form-item"},y=["value"],D={class:"form-items-group"},w={class:"form-item"},v=["value"],k=c((()=>(0,n._)("option",{value:""},null,-1))),A=["value"],S={class:"form-items-group"},E={class:"form-item"},C={class:"form-inputs-group"},_=["value"],x=["value"],T={class:"form-items-group"},O={class:"form-item"},F={class:"form-inputs-group"},U=["value"],I=["value"],B={class:"form-items-group"},N={class:"form-item"},L={class:"form-inputs-group"},P=["value"],R=["value"],j={class:"form-items-group"},M={class:"form-item"},q={class:"form-inputs-group"},z=["value"],H=["value"],$={class:"form-button"};var V=(0,n.aZ)({__name:"WorkoutsFilters",props:{authUser:null,sports:null},emits:["filter"],setup(t,{emit:e}){const r=t,{t:c}=(0,s.QT)(),V=(0,a.yj)(),W=(0,a.tv)(),{authUser:G}=(0,i.BK)(r),Z=G.value.imperial_units?l.Dl.km.defaultTarget:"km",K=(0,n.Fl)((()=>(0,u.xH)(r.sports,c)));let Y=Object.assign({},V.query);function X(t){""===t.target.value?delete Y[t.target.name]:Y[t.target.name]=t.target.value}function J(){e("filter"),"page"in Y&&(Y["page"]="1"),W.push({path:"/workouts",query:Y})}function Q(){e("filter"),W.push({path:"/workouts",query:{}})}return(0,n.YP)((()=>V.query),(t=>{Y=Object.assign({},t)})),(t,e)=>((0,n.wg)(),(0,n.iD)("div",d,[(0,n._)("div",p,[(0,n._)("div",h,[(0,n._)("div",f,[(0,n._)("div",m,[(0,n._)("label",null,(0,o.zw)(t.$t("workouts.FROM"))+": ",1),(0,n._)("input",{name:"from",type:"date",value:t.$route.query.from,onChange:X},null,40,g)]),(0,n._)("div",b,[(0,n._)("label",null,(0,o.zw)(t.$t("workouts.TO"))+": ",1),(0,n._)("input",{name:"to",type:"date",value:t.$route.query.to,onChange:X},null,40,y)])]),(0,n._)("div",D,[(0,n._)("div",w,[(0,n._)("label",null,(0,o.zw)(t.$t("workouts.SPORT",1))+":",1),(0,n._)("select",{name:"sport_id",value:t.$route.query.sport_id,onChange:X},[k,((0,n.wg)(!0),(0,n.iD)(n.HY,null,(0,n.Ko)((0,i.SU)(K).filter((t=>(0,i.SU)(G).sports_list.includes(t.id))),(t=>((0,n.wg)(),(0,n.iD)("option",{value:t.id,key:t.id},(0,o.zw)(t.translatedLabel),9,A)))),128))],40,v)])]),(0,n._)("div",S,[(0,n._)("div",E,[(0,n._)("label",null,(0,o.zw)(t.$t("workouts.DISTANCE"))+" ("+(0,o.zw)((0,i.SU)(Z))+"): ",1),(0,n._)("div",C,[(0,n._)("input",{name:"distance_from",type:"number",min:"0",step:"0.1",value:t.$route.query.distance_from,onChange:X},null,40,_),(0,n._)("span",null,(0,o.zw)(t.$t("workouts.TO")),1),(0,n._)("input",{name:"distance_to",type:"number",min:"0",step:"0.1",value:t.$route.query.distance_to,onChange:X},null,40,x)])])]),(0,n._)("div",T,[(0,n._)("div",O,[(0,n._)("label",null,(0,o.zw)(t.$t("workouts.DURATION"))+": ",1),(0,n._)("div",F,[(0,n._)("input",{name:"duration_from",value:t.$route.query.duration_from,onChange:X,pattern:"^([0-9]*[0-9]):([0-5][0-9])$",placeholder:"hh:mm",type:"text"},null,40,U),(0,n._)("span",null,(0,o.zw)(t.$t("workouts.TO")),1),(0,n._)("input",{name:"duration_to",value:t.$route.query.duration_to,onChange:X,pattern:"^([0-9]*[0-9]):([0-5][0-9])$",placeholder:"hh:mm",type:"text"},null,40,I)])])]),(0,n._)("div",B,[(0,n._)("div",N,[(0,n._)("label",null,(0,o.zw)(t.$t("workouts.AVE_SPEED"))+" ("+(0,o.zw)((0,i.SU)(Z))+"/h): ",1),(0,n._)("div",L,[(0,n._)("input",{min:"0",name:"ave_speed_from",value:t.$route.query.ave_speed_from,onChange:X,step:"0.1",type:"number"},null,40,P),(0,n._)("span",null,(0,o.zw)(t.$t("workouts.TO")),1),(0,n._)("input",{min:"0",name:"ave_speed_to",value:t.$route.query.ave_speed_to,onChange:X,step:"0.1",type:"number"},null,40,R)])])]),(0,n._)("div",j,[(0,n._)("div",M,[(0,n._)("label",null,(0,o.zw)(t.$t("workouts.MAX_SPEED"))+" ("+(0,o.zw)((0,i.SU)(Z))+"/h): ",1),(0,n._)("div",q,[(0,n._)("input",{min:"0",name:"max_speed_from",value:t.$route.query.max_speed_from,onChange:X,step:"0.1",type:"number"},null,40,z),(0,n._)("span",null,(0,o.zw)(t.$t("workouts.TO")),1),(0,n._)("input",{min:"0",name:"max_speed_to",value:t.$route.query.max_speed_to,onChange:X,step:"0.1",type:"number"},null,40,H)])])])]),(0,n._)("div",$,[(0,n._)("button",{class:"confirm",onClick:J},(0,o.zw)(t.$t("buttons.FILTER")),1),(0,n._)("button",{class:"confirm",onClick:Q},(0,o.zw)(t.$t("buttons.CLEAR_FILTER")),1)])])]))}}),W=r(3744);const G=(0,W.Z)(V,[["__scopeId","data-v-6c38593a"]]);var Z=G,K=r(8626),Y=r(5020),X=r(2056),J=r(5630),Q=r(5801),tt=r(9917),et=r(2766),rt=r(6558),nt=r(3768);const it=t=>((0,n.dD)("data-v-0f8ea7b0"),t=t(),(0,n.Cn)(),t),ot={class:"workouts-list"},st={class:"total"},at={class:"total-label"},ut={key:0},lt={key:0,class:"workouts-table responsive-table"},ct=it((()=>(0,n._)("th",{class:"sport-col"},null,-1))),dt={class:"sport-col"},pt={class:"cell-heading"},ht=["onMouseover"],ft={class:"cell-heading"},mt={key:0,class:"fa fa-map-o","aria-hidden":"true"},gt={class:"title"},bt={class:"workout-date"},yt={class:"cell-heading"},Dt={class:"text-right"},wt={class:"cell-heading"},vt={class:"text-right"},kt={class:"cell-heading"},At={class:"text-right"},St={class:"cell-heading"},Et={class:"text-right"},Ct={class:"cell-heading"},_t={class:"text-right"},xt={class:"cell-heading"},Tt={class:"text-right"},Ot={class:"cell-heading"},Ft=it((()=>(0,n._)("div",{id:"bottom"},null,-1)));var Ut=(0,n.aZ)({__name:"WorkoutsList",props:{user:null,sports:null},setup(t){const e=t,r=(0,tt.o)(),s=(0,a.yj)(),c=(0,a.tv)(),{user:d,sports:p}=(0,i.BK)(e),h=["ave_speed","distance","duration","workout_date"],f=(0,n.Fl)((()=>r.getters[Q.aX.GETTERS.USER_WORKOUTS])),m=(0,n.Fl)((()=>r.getters[Q.aX.GETTERS.WORKOUTS_PAGINATION])),g=(0,n.Fl)((()=>r.getters[Q.SY.GETTERS.LANGUAGE]));let b=v(s.query);const y=(0,i.iH)(null);function D(t){r.dispatch(Q.aX.ACTIONS.GET_USER_WORKOUTS,d.value.imperial_units?k(t):t)}function w(t,e){const r=Object.assign({},s.query);r[t]=e,"per_page"===t&&(r["page"]="1"),b=v(r),c.push({path:"/workouts",query:b})}function v(t){const e=(0,et.pm)(t,h,nt.eR.order_by,{defaultSort:nt.eR.order});return Object.keys(t).filter((t=>et.Ne.includes(t))).map((r=>{"string"===typeof t[r]&&(e[r]=t[r])})),e}function k(t){const e={...t};return Object.entries(e).map((t=>{t[0].match("speed|distance")&&t[1]&&(e[t[0]]=(0,l.sC)(+t[1],"mi","km"))})),e}function A(t){y.value=t}return(0,n.wF)((()=>{D(b)})),(0,n.YP)((()=>s.query),(async t=>{b=v(t),D(b)})),(t,e)=>{const r=(0,n.up)("SportImage"),s=(0,n.up)("router-link"),a=(0,n.up)("Distance");return(0,n.wg)(),(0,n.iD)("div",ot,[(0,n._)("div",{class:(0,o.C_)(["box",{"empty-table":0===(0,i.SU)(f).length}])},[(0,n._)("div",st,[(0,n._)("span",at,(0,o.zw)(t.$t("common.TOTAL").toLowerCase())+": ",1),null!==(0,i.SU)(m).total?((0,n.wg)(),(0,n.iD)("span",ut,(0,o.zw)((0,i.SU)(m).total)+" "+(0,o.zw)(t.$t("workouts.WORKOUT",(0,i.SU)(m).total)),1)):(0,n.kq)("",!0)]),(0,n.Wm)(K.Z,{sort:(0,i.SU)(et.fS),order_by:h,query:(0,i.SU)(b),message:"workouts",onUpdateSelect:w},null,8,["sort","query"]),(0,i.SU)(f).length>0?((0,n.wg)(),(0,n.iD)("div",lt,[(0,n.Wm)(Y.Z,{class:"top-pagination",pagination:(0,i.SU)(m),path:"/workouts",query:(0,i.SU)(b)},null,8,["pagination","query"]),(0,n._)("table",null,[(0,n._)("thead",{class:(0,o.C_)({smaller:"de"===(0,i.SU)(g)})},[(0,n._)("tr",null,[ct,(0,n._)("th",null,(0,o.zw)((0,o.kC)(t.$t("workouts.WORKOUT",1))),1),(0,n._)("th",null,(0,o.zw)((0,o.kC)(t.$t("workouts.DATE"))),1),(0,n._)("th",null,(0,o.zw)((0,o.kC)(t.$t("workouts.DISTANCE"))),1),(0,n._)("th",null,(0,o.zw)((0,o.kC)(t.$t("workouts.DURATION"))),1),(0,n._)("th",null,(0,o.zw)((0,o.kC)(t.$t("workouts.AVE_SPEED"))),1),(0,n._)("th",null,(0,o.zw)((0,o.kC)(t.$t("workouts.MAX_SPEED"))),1),(0,n._)("th",null,(0,o.zw)((0,o.kC)(t.$t("workouts.ASCENT"))),1),(0,n._)("th",null,(0,o.zw)((0,o.kC)(t.$t("workouts.DESCENT"))),1)])],2),(0,n._)("tbody",null,[((0,n.wg)(!0),(0,n.iD)(n.HY,null,(0,n.Ko)((0,i.SU)(f),(l=>((0,n.wg)(),(0,n.iD)("tr",{key:l.id},[(0,n._)("td",dt,[(0,n._)("span",pt,(0,o.zw)(t.$t("workouts.SPORT",1)),1),(0,i.SU)(p).length>0?((0,n.wg)(),(0,n.j4)(r,{key:0,title:(0,i.SU)(p).find((t=>t.id===l.sport_id)).translatedLabel,"sport-label":(0,i.SU)(u.PA)(l,(0,i.SU)(p)),color:(0,i.SU)(u.CM)(l,(0,i.SU)(p))},null,8,["title","sport-label","color"])):(0,n.kq)("",!0)]),(0,n._)("td",{class:"workout-title",onMouseover:t=>A(l.id),onMouseleave:e[0]||(e[0]=t=>A(null))},[(0,n._)("span",ft,(0,o.zw)((0,o.kC)(t.$t("workouts.WORKOUT",1))),1),(0,n.Wm)(s,{class:"nav-item",to:{name:"Workout",params:{workoutId:l.id}}},{default:(0,n.w5)((()=>[l.with_gpx?((0,n.wg)(),(0,n.iD)("i",mt)):(0,n.kq)("",!0),(0,n._)("span",gt,(0,o.zw)(l.title),1)])),_:2},1032,["to"]),l.with_gpx&&y.value===l.id?((0,n.wg)(),(0,n.j4)(X.Z,{key:0,workout:l,"display-hover":!0},null,8,["workout"])):(0,n.kq)("",!0)],40,ht),(0,n._)("td",bt,[(0,n._)("span",yt,(0,o.zw)(t.$t("workouts.DATE")),1),(0,n.Uk)(" "+(0,o.zw)((0,i.SU)(rt.p6)(l.workout_date,(0,i.SU)(d).timezone,(0,i.SU)(d).date_format)),1)]),(0,n._)("td",Dt,[(0,n._)("span",wt,(0,o.zw)(t.$t("workouts.DISTANCE")),1),(0,n.Wm)(a,{distance:l.distance,unitFrom:"km",useImperialUnits:(0,i.SU)(d).imperial_units},null,8,["distance","useImperialUnits"])]),(0,n._)("td",vt,[(0,n._)("span",kt,(0,o.zw)(t.$t("workouts.DURATION")),1),(0,n.Uk)(" "+(0,o.zw)(l.moving),1)]),(0,n._)("td",At,[(0,n._)("span",St,(0,o.zw)(t.$t("workouts.AVE_SPEED")),1),(0,n.Wm)(a,{distance:l.ave_speed,unitFrom:"km",speed:!0,useImperialUnits:(0,i.SU)(d).imperial_units},null,8,["distance","useImperialUnits"])]),(0,n._)("td",Et,[(0,n._)("span",Ct,(0,o.zw)(t.$t("workouts.MAX_SPEED")),1),(0,n.Wm)(a,{distance:l.max_speed,unitFrom:"km",speed:!0,useImperialUnits:(0,i.SU)(d).imperial_units},null,8,["distance","useImperialUnits"])]),(0,n._)("td",_t,[(0,n._)("span",xt,(0,o.zw)(t.$t("workouts.ASCENT")),1),l.with_gpx?((0,n.wg)(),(0,n.j4)(a,{key:0,distance:l.ascent,unitFrom:"m",useImperialUnits:(0,i.SU)(d).imperial_units},null,8,["distance","useImperialUnits"])):(0,n.kq)("",!0)]),(0,n._)("td",Tt,[(0,n._)("span",Ot,(0,o.zw)(t.$t("workouts.DESCENT")),1),l.with_gpx?((0,n.wg)(),(0,n.j4)(a,{key:0,distance:l.descent,unitFrom:"m",useImperialUnits:(0,i.SU)(d).imperial_units},null,8,["distance","useImperialUnits"])):(0,n.kq)("",!0)])])))),128))])]),(0,n.Wm)(Y.Z,{pagination:(0,i.SU)(m),path:"/workouts",query:(0,i.SU)(b)},null,8,["pagination","query"])])):(0,n.kq)("",!0)],2),0===(0,i.SU)(f).length?((0,n.wg)(),(0,n.j4)(J.Z,{key:0})):(0,n.kq)("",!0),Ft])}}});const It=(0,W.Z)(Ut,[["__scopeId","data-v-0f8ea7b0"]]);var Bt=It;const Nt={key:0,id:"workouts",class:"view"},Lt={class:"container workouts-container"},Pt={class:"display-filters"},Rt={class:"list-container"};var jt=(0,n.aZ)({__name:"WorkoutsView",setup(t){const{t:e}=(0,s.QT)(),r=(0,tt.o)(),a=(0,n.Fl)((()=>r.getters[Q.YN.GETTERS.AUTH_USER_PROFILE])),l=(0,n.Fl)((()=>r.getters[Q.O8.GETTERS.SPORTS])),c=(0,n.Fl)((()=>(0,u.xH)(l.value,e))),d=(0,i.iH)(!0);function p(){d.value=!d.value}return(t,e)=>(0,i.SU)(a).username?((0,n.wg)(),(0,n.iD)("div",Nt,[(0,n._)("div",Lt,[(0,n._)("div",{class:(0,o.C_)(["filters-container",{hidden:d.value}])},[(0,n.Wm)(Z,{sports:(0,i.SU)(c),authUser:(0,i.SU)(a),onFilter:p},null,8,["sports","authUser"])],2),(0,n._)("div",Pt,[(0,n._)("div",{onClick:p},[(0,n._)("i",{class:(0,o.C_)("fa fa-caret-"+(d.value?"down":"up")),"aria-hidden":"true"},null,2),(0,n._)("span",null,(0,o.zw)(t.$t(`workouts.${d.value?"DISPLAY":"HIDE"}_FILTERS`)),1)])]),(0,n._)("div",Rt,[(0,n.Wm)(Bt,{user:(0,i.SU)(a),sports:(0,i.SU)(c)},null,8,["user","sports"])])])])):(0,n.kq)("",!0)}});const Mt=(0,W.Z)(jt,[["__scopeId","data-v-57ec0168"]]);var qt=Mt},2868:function(){},4777:function(){},9830:function(){},209:function(){},7414:function(){},2961:function(t){let e="useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict",r=(t,e=21)=>(r=e)=>{let n="",i=r;while(i--)n+=t[Math.random()*t.length|0];return n},n=(t=21)=>{let r="",n=t;while(n--)r+=e[64*Math.random()|0];return r};t.exports={nanoid:n,customAlphabet:r}},3600:function(t){"use strict";t.exports=JSON.parse('{"0":65533,"128":8364,"130":8218,"131":402,"132":8222,"133":8230,"134":8224,"135":8225,"136":710,"137":8240,"138":352,"139":8249,"140":338,"142":381,"145":8216,"146":8217,"147":8220,"148":8221,"149":8226,"150":8211,"151":8212,"152":732,"153":8482,"154":353,"155":8250,"156":339,"158":382,"159":376}')},9323:function(t){"use strict";t.exports=JSON.parse('{"Aacute":"Á","aacute":"á","Abreve":"Ă","abreve":"ă","ac":"∾","acd":"∿","acE":"∾̳","Acirc":"Â","acirc":"â","acute":"´","Acy":"А","acy":"а","AElig":"Æ","aelig":"æ","af":"⁡","Afr":"𝔄","afr":"𝔞","Agrave":"À","agrave":"à","alefsym":"ℵ","aleph":"ℵ","Alpha":"Α","alpha":"α","Amacr":"Ā","amacr":"ā","amalg":"⨿","amp":"&","AMP":"&","andand":"⩕","And":"⩓","and":"∧","andd":"⩜","andslope":"⩘","andv":"⩚","ang":"∠","ange":"⦤","angle":"∠","angmsdaa":"⦨","angmsdab":"⦩","angmsdac":"⦪","angmsdad":"⦫","angmsdae":"⦬","angmsdaf":"⦭","angmsdag":"⦮","angmsdah":"⦯","angmsd":"∡","angrt":"∟","angrtvb":"⊾","angrtvbd":"⦝","angsph":"∢","angst":"Å","angzarr":"⍼","Aogon":"Ą","aogon":"ą","Aopf":"𝔸","aopf":"𝕒","apacir":"⩯","ap":"≈","apE":"⩰","ape":"≊","apid":"≋","apos":"\'","ApplyFunction":"⁡","approx":"≈","approxeq":"≊","Aring":"Å","aring":"å","Ascr":"𝒜","ascr":"𝒶","Assign":"≔","ast":"*","asymp":"≈","asympeq":"≍","Atilde":"Ã","atilde":"ã","Auml":"Ä","auml":"ä","awconint":"∳","awint":"⨑","backcong":"≌","backepsilon":"϶","backprime":"‵","backsim":"∽","backsimeq":"⋍","Backslash":"∖","Barv":"⫧","barvee":"⊽","barwed":"⌅","Barwed":"⌆","barwedge":"⌅","bbrk":"⎵","bbrktbrk":"⎶","bcong":"≌","Bcy":"Б","bcy":"б","bdquo":"„","becaus":"∵","because":"∵","Because":"∵","bemptyv":"⦰","bepsi":"϶","bernou":"ℬ","Bernoullis":"ℬ","Beta":"Β","beta":"β","beth":"ℶ","between":"≬","Bfr":"𝔅","bfr":"𝔟","bigcap":"⋂","bigcirc":"◯","bigcup":"⋃","bigodot":"⨀","bigoplus":"⨁","bigotimes":"⨂","bigsqcup":"⨆","bigstar":"★","bigtriangledown":"▽","bigtriangleup":"△","biguplus":"⨄","bigvee":"⋁","bigwedge":"⋀","bkarow":"⤍","blacklozenge":"⧫","blacksquare":"▪","blacktriangle":"▴","blacktriangledown":"▾","blacktriangleleft":"◂","blacktriangleright":"▸","blank":"␣","blk12":"▒","blk14":"░","blk34":"▓","block":"█","bne":"=⃥","bnequiv":"≡⃥","bNot":"⫭","bnot":"⌐","Bopf":"𝔹","bopf":"𝕓","bot":"⊥","bottom":"⊥","bowtie":"⋈","boxbox":"⧉","boxdl":"┐","boxdL":"╕","boxDl":"╖","boxDL":"╗","boxdr":"┌","boxdR":"╒","boxDr":"╓","boxDR":"╔","boxh":"─","boxH":"═","boxhd":"┬","boxHd":"╤","boxhD":"╥","boxHD":"╦","boxhu":"┴","boxHu":"╧","boxhU":"╨","boxHU":"╩","boxminus":"⊟","boxplus":"⊞","boxtimes":"⊠","boxul":"┘","boxuL":"╛","boxUl":"╜","boxUL":"╝","boxur":"└","boxuR":"╘","boxUr":"╙","boxUR":"╚","boxv":"│","boxV":"║","boxvh":"┼","boxvH":"╪","boxVh":"╫","boxVH":"╬","boxvl":"┤","boxvL":"╡","boxVl":"╢","boxVL":"╣","boxvr":"├","boxvR":"╞","boxVr":"╟","boxVR":"╠","bprime":"‵","breve":"˘","Breve":"˘","brvbar":"¦","bscr":"𝒷","Bscr":"ℬ","bsemi":"⁏","bsim":"∽","bsime":"⋍","bsolb":"⧅","bsol":"\\\\","bsolhsub":"⟈","bull":"•","bullet":"•","bump":"≎","bumpE":"⪮","bumpe":"≏","Bumpeq":"≎","bumpeq":"≏","Cacute":"Ć","cacute":"ć","capand":"⩄","capbrcup":"⩉","capcap":"⩋","cap":"∩","Cap":"⋒","capcup":"⩇","capdot":"⩀","CapitalDifferentialD":"ⅅ","caps":"∩︀","caret":"⁁","caron":"ˇ","Cayleys":"ℭ","ccaps":"⩍","Ccaron":"Č","ccaron":"č","Ccedil":"Ç","ccedil":"ç","Ccirc":"Ĉ","ccirc":"ĉ","Cconint":"∰","ccups":"⩌","ccupssm":"⩐","Cdot":"Ċ","cdot":"ċ","cedil":"¸","Cedilla":"¸","cemptyv":"⦲","cent":"¢","centerdot":"·","CenterDot":"·","cfr":"𝔠","Cfr":"ℭ","CHcy":"Ч","chcy":"ч","check":"✓","checkmark":"✓","Chi":"Χ","chi":"χ","circ":"ˆ","circeq":"≗","circlearrowleft":"↺","circlearrowright":"↻","circledast":"⊛","circledcirc":"⊚","circleddash":"⊝","CircleDot":"⊙","circledR":"®","circledS":"Ⓢ","CircleMinus":"⊖","CirclePlus":"⊕","CircleTimes":"⊗","cir":"○","cirE":"⧃","cire":"≗","cirfnint":"⨐","cirmid":"⫯","cirscir":"⧂","ClockwiseContourIntegral":"∲","CloseCurlyDoubleQuote":"”","CloseCurlyQuote":"’","clubs":"♣","clubsuit":"♣","colon":":","Colon":"∷","Colone":"⩴","colone":"≔","coloneq":"≔","comma":",","commat":"@","comp":"∁","compfn":"∘","complement":"∁","complexes":"ℂ","cong":"≅","congdot":"⩭","Congruent":"≡","conint":"∮","Conint":"∯","ContourIntegral":"∮","copf":"𝕔","Copf":"ℂ","coprod":"∐","Coproduct":"∐","copy":"©","COPY":"©","copysr":"℗","CounterClockwiseContourIntegral":"∳","crarr":"↵","cross":"✗","Cross":"⨯","Cscr":"𝒞","cscr":"𝒸","csub":"⫏","csube":"⫑","csup":"⫐","csupe":"⫒","ctdot":"⋯","cudarrl":"⤸","cudarrr":"⤵","cuepr":"⋞","cuesc":"⋟","cularr":"↶","cularrp":"⤽","cupbrcap":"⩈","cupcap":"⩆","CupCap":"≍","cup":"∪","Cup":"⋓","cupcup":"⩊","cupdot":"⊍","cupor":"⩅","cups":"∪︀","curarr":"↷","curarrm":"⤼","curlyeqprec":"⋞","curlyeqsucc":"⋟","curlyvee":"⋎","curlywedge":"⋏","curren":"¤","curvearrowleft":"↶","curvearrowright":"↷","cuvee":"⋎","cuwed":"⋏","cwconint":"∲","cwint":"∱","cylcty":"⌭","dagger":"†","Dagger":"‡","daleth":"ℸ","darr":"↓","Darr":"↡","dArr":"⇓","dash":"‐","Dashv":"⫤","dashv":"⊣","dbkarow":"⤏","dblac":"˝","Dcaron":"Ď","dcaron":"ď","Dcy":"Д","dcy":"д","ddagger":"‡","ddarr":"⇊","DD":"ⅅ","dd":"ⅆ","DDotrahd":"⤑","ddotseq":"⩷","deg":"°","Del":"∇","Delta":"Δ","delta":"δ","demptyv":"⦱","dfisht":"⥿","Dfr":"𝔇","dfr":"𝔡","dHar":"⥥","dharl":"⇃","dharr":"⇂","DiacriticalAcute":"´","DiacriticalDot":"˙","DiacriticalDoubleAcute":"˝","DiacriticalGrave":"`","DiacriticalTilde":"˜","diam":"⋄","diamond":"⋄","Diamond":"⋄","diamondsuit":"♦","diams":"♦","die":"¨","DifferentialD":"ⅆ","digamma":"ϝ","disin":"⋲","div":"÷","divide":"÷","divideontimes":"⋇","divonx":"⋇","DJcy":"Ђ","djcy":"ђ","dlcorn":"⌞","dlcrop":"⌍","dollar":"$","Dopf":"𝔻","dopf":"𝕕","Dot":"¨","dot":"˙","DotDot":"⃜","doteq":"≐","doteqdot":"≑","DotEqual":"≐","dotminus":"∸","dotplus":"∔","dotsquare":"⊡","doublebarwedge":"⌆","DoubleContourIntegral":"∯","DoubleDot":"¨","DoubleDownArrow":"⇓","DoubleLeftArrow":"⇐","DoubleLeftRightArrow":"⇔","DoubleLeftTee":"⫤","DoubleLongLeftArrow":"⟸","DoubleLongLeftRightArrow":"⟺","DoubleLongRightArrow":"⟹","DoubleRightArrow":"⇒","DoubleRightTee":"⊨","DoubleUpArrow":"⇑","DoubleUpDownArrow":"⇕","DoubleVerticalBar":"∥","DownArrowBar":"⤓","downarrow":"↓","DownArrow":"↓","Downarrow":"⇓","DownArrowUpArrow":"⇵","DownBreve":"̑","downdownarrows":"⇊","downharpoonleft":"⇃","downharpoonright":"⇂","DownLeftRightVector":"⥐","DownLeftTeeVector":"⥞","DownLeftVectorBar":"⥖","DownLeftVector":"↽","DownRightTeeVector":"⥟","DownRightVectorBar":"⥗","DownRightVector":"⇁","DownTeeArrow":"↧","DownTee":"⊤","drbkarow":"⤐","drcorn":"⌟","drcrop":"⌌","Dscr":"𝒟","dscr":"𝒹","DScy":"Ѕ","dscy":"ѕ","dsol":"⧶","Dstrok":"Đ","dstrok":"đ","dtdot":"⋱","dtri":"▿","dtrif":"▾","duarr":"⇵","duhar":"⥯","dwangle":"⦦","DZcy":"Џ","dzcy":"џ","dzigrarr":"⟿","Eacute":"É","eacute":"é","easter":"⩮","Ecaron":"Ě","ecaron":"ě","Ecirc":"Ê","ecirc":"ê","ecir":"≖","ecolon":"≕","Ecy":"Э","ecy":"э","eDDot":"⩷","Edot":"Ė","edot":"ė","eDot":"≑","ee":"ⅇ","efDot":"≒","Efr":"𝔈","efr":"𝔢","eg":"⪚","Egrave":"È","egrave":"è","egs":"⪖","egsdot":"⪘","el":"⪙","Element":"∈","elinters":"⏧","ell":"ℓ","els":"⪕","elsdot":"⪗","Emacr":"Ē","emacr":"ē","empty":"∅","emptyset":"∅","EmptySmallSquare":"◻","emptyv":"∅","EmptyVerySmallSquare":"▫","emsp13":" ","emsp14":" ","emsp":" ","ENG":"Ŋ","eng":"ŋ","ensp":" ","Eogon":"Ę","eogon":"ę","Eopf":"𝔼","eopf":"𝕖","epar":"⋕","eparsl":"⧣","eplus":"⩱","epsi":"ε","Epsilon":"Ε","epsilon":"ε","epsiv":"ϵ","eqcirc":"≖","eqcolon":"≕","eqsim":"≂","eqslantgtr":"⪖","eqslantless":"⪕","Equal":"⩵","equals":"=","EqualTilde":"≂","equest":"≟","Equilibrium":"⇌","equiv":"≡","equivDD":"⩸","eqvparsl":"⧥","erarr":"⥱","erDot":"≓","escr":"ℯ","Escr":"ℰ","esdot":"≐","Esim":"⩳","esim":"≂","Eta":"Η","eta":"η","ETH":"Ð","eth":"ð","Euml":"Ë","euml":"ë","euro":"€","excl":"!","exist":"∃","Exists":"∃","expectation":"ℰ","exponentiale":"ⅇ","ExponentialE":"ⅇ","fallingdotseq":"≒","Fcy":"Ф","fcy":"ф","female":"♀","ffilig":"ffi","fflig":"ff","ffllig":"ffl","Ffr":"𝔉","ffr":"𝔣","filig":"fi","FilledSmallSquare":"◼","FilledVerySmallSquare":"▪","fjlig":"fj","flat":"♭","fllig":"fl","fltns":"▱","fnof":"ƒ","Fopf":"𝔽","fopf":"𝕗","forall":"∀","ForAll":"∀","fork":"⋔","forkv":"⫙","Fouriertrf":"ℱ","fpartint":"⨍","frac12":"½","frac13":"⅓","frac14":"¼","frac15":"⅕","frac16":"⅙","frac18":"⅛","frac23":"⅔","frac25":"⅖","frac34":"¾","frac35":"⅗","frac38":"⅜","frac45":"⅘","frac56":"⅚","frac58":"⅝","frac78":"⅞","frasl":"⁄","frown":"⌢","fscr":"𝒻","Fscr":"ℱ","gacute":"ǵ","Gamma":"Γ","gamma":"γ","Gammad":"Ϝ","gammad":"ϝ","gap":"⪆","Gbreve":"Ğ","gbreve":"ğ","Gcedil":"Ģ","Gcirc":"Ĝ","gcirc":"ĝ","Gcy":"Г","gcy":"г","Gdot":"Ġ","gdot":"ġ","ge":"≥","gE":"≧","gEl":"⪌","gel":"⋛","geq":"≥","geqq":"≧","geqslant":"⩾","gescc":"⪩","ges":"⩾","gesdot":"⪀","gesdoto":"⪂","gesdotol":"⪄","gesl":"⋛︀","gesles":"⪔","Gfr":"𝔊","gfr":"𝔤","gg":"≫","Gg":"⋙","ggg":"⋙","gimel":"ℷ","GJcy":"Ѓ","gjcy":"ѓ","gla":"⪥","gl":"≷","glE":"⪒","glj":"⪤","gnap":"⪊","gnapprox":"⪊","gne":"⪈","gnE":"≩","gneq":"⪈","gneqq":"≩","gnsim":"⋧","Gopf":"𝔾","gopf":"𝕘","grave":"`","GreaterEqual":"≥","GreaterEqualLess":"⋛","GreaterFullEqual":"≧","GreaterGreater":"⪢","GreaterLess":"≷","GreaterSlantEqual":"⩾","GreaterTilde":"≳","Gscr":"𝒢","gscr":"ℊ","gsim":"≳","gsime":"⪎","gsiml":"⪐","gtcc":"⪧","gtcir":"⩺","gt":">","GT":">","Gt":"≫","gtdot":"⋗","gtlPar":"⦕","gtquest":"⩼","gtrapprox":"⪆","gtrarr":"⥸","gtrdot":"⋗","gtreqless":"⋛","gtreqqless":"⪌","gtrless":"≷","gtrsim":"≳","gvertneqq":"≩︀","gvnE":"≩︀","Hacek":"ˇ","hairsp":" ","half":"½","hamilt":"ℋ","HARDcy":"Ъ","hardcy":"ъ","harrcir":"⥈","harr":"↔","hArr":"⇔","harrw":"↭","Hat":"^","hbar":"ℏ","Hcirc":"Ĥ","hcirc":"ĥ","hearts":"♥","heartsuit":"♥","hellip":"…","hercon":"⊹","hfr":"𝔥","Hfr":"ℌ","HilbertSpace":"ℋ","hksearow":"⤥","hkswarow":"⤦","hoarr":"⇿","homtht":"∻","hookleftarrow":"↩","hookrightarrow":"↪","hopf":"𝕙","Hopf":"ℍ","horbar":"―","HorizontalLine":"─","hscr":"𝒽","Hscr":"ℋ","hslash":"ℏ","Hstrok":"Ħ","hstrok":"ħ","HumpDownHump":"≎","HumpEqual":"≏","hybull":"⁃","hyphen":"‐","Iacute":"Í","iacute":"í","ic":"⁣","Icirc":"Î","icirc":"î","Icy":"И","icy":"и","Idot":"İ","IEcy":"Е","iecy":"е","iexcl":"¡","iff":"⇔","ifr":"𝔦","Ifr":"ℑ","Igrave":"Ì","igrave":"ì","ii":"ⅈ","iiiint":"⨌","iiint":"∭","iinfin":"⧜","iiota":"℩","IJlig":"IJ","ijlig":"ij","Imacr":"Ī","imacr":"ī","image":"ℑ","ImaginaryI":"ⅈ","imagline":"ℐ","imagpart":"ℑ","imath":"ı","Im":"ℑ","imof":"⊷","imped":"Ƶ","Implies":"⇒","incare":"℅","in":"∈","infin":"∞","infintie":"⧝","inodot":"ı","intcal":"⊺","int":"∫","Int":"∬","integers":"ℤ","Integral":"∫","intercal":"⊺","Intersection":"⋂","intlarhk":"⨗","intprod":"⨼","InvisibleComma":"⁣","InvisibleTimes":"⁢","IOcy":"Ё","iocy":"ё","Iogon":"Į","iogon":"į","Iopf":"𝕀","iopf":"𝕚","Iota":"Ι","iota":"ι","iprod":"⨼","iquest":"¿","iscr":"𝒾","Iscr":"ℐ","isin":"∈","isindot":"⋵","isinE":"⋹","isins":"⋴","isinsv":"⋳","isinv":"∈","it":"⁢","Itilde":"Ĩ","itilde":"ĩ","Iukcy":"І","iukcy":"і","Iuml":"Ï","iuml":"ï","Jcirc":"Ĵ","jcirc":"ĵ","Jcy":"Й","jcy":"й","Jfr":"𝔍","jfr":"𝔧","jmath":"ȷ","Jopf":"𝕁","jopf":"𝕛","Jscr":"𝒥","jscr":"𝒿","Jsercy":"Ј","jsercy":"ј","Jukcy":"Є","jukcy":"є","Kappa":"Κ","kappa":"κ","kappav":"ϰ","Kcedil":"Ķ","kcedil":"ķ","Kcy":"К","kcy":"к","Kfr":"𝔎","kfr":"𝔨","kgreen":"ĸ","KHcy":"Х","khcy":"х","KJcy":"Ќ","kjcy":"ќ","Kopf":"𝕂","kopf":"𝕜","Kscr":"𝒦","kscr":"𝓀","lAarr":"⇚","Lacute":"Ĺ","lacute":"ĺ","laemptyv":"⦴","lagran":"ℒ","Lambda":"Λ","lambda":"λ","lang":"⟨","Lang":"⟪","langd":"⦑","langle":"⟨","lap":"⪅","Laplacetrf":"ℒ","laquo":"«","larrb":"⇤","larrbfs":"⤟","larr":"←","Larr":"↞","lArr":"⇐","larrfs":"⤝","larrhk":"↩","larrlp":"↫","larrpl":"⤹","larrsim":"⥳","larrtl":"↢","latail":"⤙","lAtail":"⤛","lat":"⪫","late":"⪭","lates":"⪭︀","lbarr":"⤌","lBarr":"⤎","lbbrk":"❲","lbrace":"{","lbrack":"[","lbrke":"⦋","lbrksld":"⦏","lbrkslu":"⦍","Lcaron":"Ľ","lcaron":"ľ","Lcedil":"Ļ","lcedil":"ļ","lceil":"⌈","lcub":"{","Lcy":"Л","lcy":"л","ldca":"⤶","ldquo":"“","ldquor":"„","ldrdhar":"⥧","ldrushar":"⥋","ldsh":"↲","le":"≤","lE":"≦","LeftAngleBracket":"⟨","LeftArrowBar":"⇤","leftarrow":"←","LeftArrow":"←","Leftarrow":"⇐","LeftArrowRightArrow":"⇆","leftarrowtail":"↢","LeftCeiling":"⌈","LeftDoubleBracket":"⟦","LeftDownTeeVector":"⥡","LeftDownVectorBar":"⥙","LeftDownVector":"⇃","LeftFloor":"⌊","leftharpoondown":"↽","leftharpoonup":"↼","leftleftarrows":"⇇","leftrightarrow":"↔","LeftRightArrow":"↔","Leftrightarrow":"⇔","leftrightarrows":"⇆","leftrightharpoons":"⇋","leftrightsquigarrow":"↭","LeftRightVector":"⥎","LeftTeeArrow":"↤","LeftTee":"⊣","LeftTeeVector":"⥚","leftthreetimes":"⋋","LeftTriangleBar":"⧏","LeftTriangle":"⊲","LeftTriangleEqual":"⊴","LeftUpDownVector":"⥑","LeftUpTeeVector":"⥠","LeftUpVectorBar":"⥘","LeftUpVector":"↿","LeftVectorBar":"⥒","LeftVector":"↼","lEg":"⪋","leg":"⋚","leq":"≤","leqq":"≦","leqslant":"⩽","lescc":"⪨","les":"⩽","lesdot":"⩿","lesdoto":"⪁","lesdotor":"⪃","lesg":"⋚︀","lesges":"⪓","lessapprox":"⪅","lessdot":"⋖","lesseqgtr":"⋚","lesseqqgtr":"⪋","LessEqualGreater":"⋚","LessFullEqual":"≦","LessGreater":"≶","lessgtr":"≶","LessLess":"⪡","lesssim":"≲","LessSlantEqual":"⩽","LessTilde":"≲","lfisht":"⥼","lfloor":"⌊","Lfr":"𝔏","lfr":"𝔩","lg":"≶","lgE":"⪑","lHar":"⥢","lhard":"↽","lharu":"↼","lharul":"⥪","lhblk":"▄","LJcy":"Љ","ljcy":"љ","llarr":"⇇","ll":"≪","Ll":"⋘","llcorner":"⌞","Lleftarrow":"⇚","llhard":"⥫","lltri":"◺","Lmidot":"Ŀ","lmidot":"ŀ","lmoustache":"⎰","lmoust":"⎰","lnap":"⪉","lnapprox":"⪉","lne":"⪇","lnE":"≨","lneq":"⪇","lneqq":"≨","lnsim":"⋦","loang":"⟬","loarr":"⇽","lobrk":"⟦","longleftarrow":"⟵","LongLeftArrow":"⟵","Longleftarrow":"⟸","longleftrightarrow":"⟷","LongLeftRightArrow":"⟷","Longleftrightarrow":"⟺","longmapsto":"⟼","longrightarrow":"⟶","LongRightArrow":"⟶","Longrightarrow":"⟹","looparrowleft":"↫","looparrowright":"↬","lopar":"⦅","Lopf":"𝕃","lopf":"𝕝","loplus":"⨭","lotimes":"⨴","lowast":"∗","lowbar":"_","LowerLeftArrow":"↙","LowerRightArrow":"↘","loz":"◊","lozenge":"◊","lozf":"⧫","lpar":"(","lparlt":"⦓","lrarr":"⇆","lrcorner":"⌟","lrhar":"⇋","lrhard":"⥭","lrm":"‎","lrtri":"⊿","lsaquo":"‹","lscr":"𝓁","Lscr":"ℒ","lsh":"↰","Lsh":"↰","lsim":"≲","lsime":"⪍","lsimg":"⪏","lsqb":"[","lsquo":"‘","lsquor":"‚","Lstrok":"Ł","lstrok":"ł","ltcc":"⪦","ltcir":"⩹","lt":"<","LT":"<","Lt":"≪","ltdot":"⋖","lthree":"⋋","ltimes":"⋉","ltlarr":"⥶","ltquest":"⩻","ltri":"◃","ltrie":"⊴","ltrif":"◂","ltrPar":"⦖","lurdshar":"⥊","luruhar":"⥦","lvertneqq":"≨︀","lvnE":"≨︀","macr":"¯","male":"♂","malt":"✠","maltese":"✠","Map":"⤅","map":"↦","mapsto":"↦","mapstodown":"↧","mapstoleft":"↤","mapstoup":"↥","marker":"▮","mcomma":"⨩","Mcy":"М","mcy":"м","mdash":"—","mDDot":"∺","measuredangle":"∡","MediumSpace":" ","Mellintrf":"ℳ","Mfr":"𝔐","mfr":"𝔪","mho":"℧","micro":"µ","midast":"*","midcir":"⫰","mid":"∣","middot":"·","minusb":"⊟","minus":"−","minusd":"∸","minusdu":"⨪","MinusPlus":"∓","mlcp":"⫛","mldr":"…","mnplus":"∓","models":"⊧","Mopf":"𝕄","mopf":"𝕞","mp":"∓","mscr":"𝓂","Mscr":"ℳ","mstpos":"∾","Mu":"Μ","mu":"μ","multimap":"⊸","mumap":"⊸","nabla":"∇","Nacute":"Ń","nacute":"ń","nang":"∠⃒","nap":"≉","napE":"⩰̸","napid":"≋̸","napos":"ʼn","napprox":"≉","natural":"♮","naturals":"ℕ","natur":"♮","nbsp":" ","nbump":"≎̸","nbumpe":"≏̸","ncap":"⩃","Ncaron":"Ň","ncaron":"ň","Ncedil":"Ņ","ncedil":"ņ","ncong":"≇","ncongdot":"⩭̸","ncup":"⩂","Ncy":"Н","ncy":"н","ndash":"–","nearhk":"⤤","nearr":"↗","neArr":"⇗","nearrow":"↗","ne":"≠","nedot":"≐̸","NegativeMediumSpace":"​","NegativeThickSpace":"​","NegativeThinSpace":"​","NegativeVeryThinSpace":"​","nequiv":"≢","nesear":"⤨","nesim":"≂̸","NestedGreaterGreater":"≫","NestedLessLess":"≪","NewLine":"\\n","nexist":"∄","nexists":"∄","Nfr":"𝔑","nfr":"𝔫","ngE":"≧̸","nge":"≱","ngeq":"≱","ngeqq":"≧̸","ngeqslant":"⩾̸","nges":"⩾̸","nGg":"⋙̸","ngsim":"≵","nGt":"≫⃒","ngt":"≯","ngtr":"≯","nGtv":"≫̸","nharr":"↮","nhArr":"⇎","nhpar":"⫲","ni":"∋","nis":"⋼","nisd":"⋺","niv":"∋","NJcy":"Њ","njcy":"њ","nlarr":"↚","nlArr":"⇍","nldr":"‥","nlE":"≦̸","nle":"≰","nleftarrow":"↚","nLeftarrow":"⇍","nleftrightarrow":"↮","nLeftrightarrow":"⇎","nleq":"≰","nleqq":"≦̸","nleqslant":"⩽̸","nles":"⩽̸","nless":"≮","nLl":"⋘̸","nlsim":"≴","nLt":"≪⃒","nlt":"≮","nltri":"⋪","nltrie":"⋬","nLtv":"≪̸","nmid":"∤","NoBreak":"⁠","NonBreakingSpace":" ","nopf":"𝕟","Nopf":"ℕ","Not":"⫬","not":"¬","NotCongruent":"≢","NotCupCap":"≭","NotDoubleVerticalBar":"∦","NotElement":"∉","NotEqual":"≠","NotEqualTilde":"≂̸","NotExists":"∄","NotGreater":"≯","NotGreaterEqual":"≱","NotGreaterFullEqual":"≧̸","NotGreaterGreater":"≫̸","NotGreaterLess":"≹","NotGreaterSlantEqual":"⩾̸","NotGreaterTilde":"≵","NotHumpDownHump":"≎̸","NotHumpEqual":"≏̸","notin":"∉","notindot":"⋵̸","notinE":"⋹̸","notinva":"∉","notinvb":"⋷","notinvc":"⋶","NotLeftTriangleBar":"⧏̸","NotLeftTriangle":"⋪","NotLeftTriangleEqual":"⋬","NotLess":"≮","NotLessEqual":"≰","NotLessGreater":"≸","NotLessLess":"≪̸","NotLessSlantEqual":"⩽̸","NotLessTilde":"≴","NotNestedGreaterGreater":"⪢̸","NotNestedLessLess":"⪡̸","notni":"∌","notniva":"∌","notnivb":"⋾","notnivc":"⋽","NotPrecedes":"⊀","NotPrecedesEqual":"⪯̸","NotPrecedesSlantEqual":"⋠","NotReverseElement":"∌","NotRightTriangleBar":"⧐̸","NotRightTriangle":"⋫","NotRightTriangleEqual":"⋭","NotSquareSubset":"⊏̸","NotSquareSubsetEqual":"⋢","NotSquareSuperset":"⊐̸","NotSquareSupersetEqual":"⋣","NotSubset":"⊂⃒","NotSubsetEqual":"⊈","NotSucceeds":"⊁","NotSucceedsEqual":"⪰̸","NotSucceedsSlantEqual":"⋡","NotSucceedsTilde":"≿̸","NotSuperset":"⊃⃒","NotSupersetEqual":"⊉","NotTilde":"≁","NotTildeEqual":"≄","NotTildeFullEqual":"≇","NotTildeTilde":"≉","NotVerticalBar":"∤","nparallel":"∦","npar":"∦","nparsl":"⫽⃥","npart":"∂̸","npolint":"⨔","npr":"⊀","nprcue":"⋠","nprec":"⊀","npreceq":"⪯̸","npre":"⪯̸","nrarrc":"⤳̸","nrarr":"↛","nrArr":"⇏","nrarrw":"↝̸","nrightarrow":"↛","nRightarrow":"⇏","nrtri":"⋫","nrtrie":"⋭","nsc":"⊁","nsccue":"⋡","nsce":"⪰̸","Nscr":"𝒩","nscr":"𝓃","nshortmid":"∤","nshortparallel":"∦","nsim":"≁","nsime":"≄","nsimeq":"≄","nsmid":"∤","nspar":"∦","nsqsube":"⋢","nsqsupe":"⋣","nsub":"⊄","nsubE":"⫅̸","nsube":"⊈","nsubset":"⊂⃒","nsubseteq":"⊈","nsubseteqq":"⫅̸","nsucc":"⊁","nsucceq":"⪰̸","nsup":"⊅","nsupE":"⫆̸","nsupe":"⊉","nsupset":"⊃⃒","nsupseteq":"⊉","nsupseteqq":"⫆̸","ntgl":"≹","Ntilde":"Ñ","ntilde":"ñ","ntlg":"≸","ntriangleleft":"⋪","ntrianglelefteq":"⋬","ntriangleright":"⋫","ntrianglerighteq":"⋭","Nu":"Ν","nu":"ν","num":"#","numero":"№","numsp":" ","nvap":"≍⃒","nvdash":"⊬","nvDash":"⊭","nVdash":"⊮","nVDash":"⊯","nvge":"≥⃒","nvgt":">⃒","nvHarr":"⤄","nvinfin":"⧞","nvlArr":"⤂","nvle":"≤⃒","nvlt":"<⃒","nvltrie":"⊴⃒","nvrArr":"⤃","nvrtrie":"⊵⃒","nvsim":"∼⃒","nwarhk":"⤣","nwarr":"↖","nwArr":"⇖","nwarrow":"↖","nwnear":"⤧","Oacute":"Ó","oacute":"ó","oast":"⊛","Ocirc":"Ô","ocirc":"ô","ocir":"⊚","Ocy":"О","ocy":"о","odash":"⊝","Odblac":"Ő","odblac":"ő","odiv":"⨸","odot":"⊙","odsold":"⦼","OElig":"Œ","oelig":"œ","ofcir":"⦿","Ofr":"𝔒","ofr":"𝔬","ogon":"˛","Ograve":"Ò","ograve":"ò","ogt":"⧁","ohbar":"⦵","ohm":"Ω","oint":"∮","olarr":"↺","olcir":"⦾","olcross":"⦻","oline":"‾","olt":"⧀","Omacr":"Ō","omacr":"ō","Omega":"Ω","omega":"ω","Omicron":"Ο","omicron":"ο","omid":"⦶","ominus":"⊖","Oopf":"𝕆","oopf":"𝕠","opar":"⦷","OpenCurlyDoubleQuote":"“","OpenCurlyQuote":"‘","operp":"⦹","oplus":"⊕","orarr":"↻","Or":"⩔","or":"∨","ord":"⩝","order":"ℴ","orderof":"ℴ","ordf":"ª","ordm":"º","origof":"⊶","oror":"⩖","orslope":"⩗","orv":"⩛","oS":"Ⓢ","Oscr":"𝒪","oscr":"ℴ","Oslash":"Ø","oslash":"ø","osol":"⊘","Otilde":"Õ","otilde":"õ","otimesas":"⨶","Otimes":"⨷","otimes":"⊗","Ouml":"Ö","ouml":"ö","ovbar":"⌽","OverBar":"‾","OverBrace":"⏞","OverBracket":"⎴","OverParenthesis":"⏜","para":"¶","parallel":"∥","par":"∥","parsim":"⫳","parsl":"⫽","part":"∂","PartialD":"∂","Pcy":"П","pcy":"п","percnt":"%","period":".","permil":"‰","perp":"⊥","pertenk":"‱","Pfr":"𝔓","pfr":"𝔭","Phi":"Φ","phi":"φ","phiv":"ϕ","phmmat":"ℳ","phone":"☎","Pi":"Π","pi":"π","pitchfork":"⋔","piv":"ϖ","planck":"ℏ","planckh":"ℎ","plankv":"ℏ","plusacir":"⨣","plusb":"⊞","pluscir":"⨢","plus":"+","plusdo":"∔","plusdu":"⨥","pluse":"⩲","PlusMinus":"±","plusmn":"±","plussim":"⨦","plustwo":"⨧","pm":"±","Poincareplane":"ℌ","pointint":"⨕","popf":"𝕡","Popf":"ℙ","pound":"£","prap":"⪷","Pr":"⪻","pr":"≺","prcue":"≼","precapprox":"⪷","prec":"≺","preccurlyeq":"≼","Precedes":"≺","PrecedesEqual":"⪯","PrecedesSlantEqual":"≼","PrecedesTilde":"≾","preceq":"⪯","precnapprox":"⪹","precneqq":"⪵","precnsim":"⋨","pre":"⪯","prE":"⪳","precsim":"≾","prime":"′","Prime":"″","primes":"ℙ","prnap":"⪹","prnE":"⪵","prnsim":"⋨","prod":"∏","Product":"∏","profalar":"⌮","profline":"⌒","profsurf":"⌓","prop":"∝","Proportional":"∝","Proportion":"∷","propto":"∝","prsim":"≾","prurel":"⊰","Pscr":"𝒫","pscr":"𝓅","Psi":"Ψ","psi":"ψ","puncsp":" ","Qfr":"𝔔","qfr":"𝔮","qint":"⨌","qopf":"𝕢","Qopf":"ℚ","qprime":"⁗","Qscr":"𝒬","qscr":"𝓆","quaternions":"ℍ","quatint":"⨖","quest":"?","questeq":"≟","quot":"\\"","QUOT":"\\"","rAarr":"⇛","race":"∽̱","Racute":"Ŕ","racute":"ŕ","radic":"√","raemptyv":"⦳","rang":"⟩","Rang":"⟫","rangd":"⦒","range":"⦥","rangle":"⟩","raquo":"»","rarrap":"⥵","rarrb":"⇥","rarrbfs":"⤠","rarrc":"⤳","rarr":"→","Rarr":"↠","rArr":"⇒","rarrfs":"⤞","rarrhk":"↪","rarrlp":"↬","rarrpl":"⥅","rarrsim":"⥴","Rarrtl":"⤖","rarrtl":"↣","rarrw":"↝","ratail":"⤚","rAtail":"⤜","ratio":"∶","rationals":"ℚ","rbarr":"⤍","rBarr":"⤏","RBarr":"⤐","rbbrk":"❳","rbrace":"}","rbrack":"]","rbrke":"⦌","rbrksld":"⦎","rbrkslu":"⦐","Rcaron":"Ř","rcaron":"ř","Rcedil":"Ŗ","rcedil":"ŗ","rceil":"⌉","rcub":"}","Rcy":"Р","rcy":"р","rdca":"⤷","rdldhar":"⥩","rdquo":"”","rdquor":"”","rdsh":"↳","real":"ℜ","realine":"ℛ","realpart":"ℜ","reals":"ℝ","Re":"ℜ","rect":"▭","reg":"®","REG":"®","ReverseElement":"∋","ReverseEquilibrium":"⇋","ReverseUpEquilibrium":"⥯","rfisht":"⥽","rfloor":"⌋","rfr":"𝔯","Rfr":"ℜ","rHar":"⥤","rhard":"⇁","rharu":"⇀","rharul":"⥬","Rho":"Ρ","rho":"ρ","rhov":"ϱ","RightAngleBracket":"⟩","RightArrowBar":"⇥","rightarrow":"→","RightArrow":"→","Rightarrow":"⇒","RightArrowLeftArrow":"⇄","rightarrowtail":"↣","RightCeiling":"⌉","RightDoubleBracket":"⟧","RightDownTeeVector":"⥝","RightDownVectorBar":"⥕","RightDownVector":"⇂","RightFloor":"⌋","rightharpoondown":"⇁","rightharpoonup":"⇀","rightleftarrows":"⇄","rightleftharpoons":"⇌","rightrightarrows":"⇉","rightsquigarrow":"↝","RightTeeArrow":"↦","RightTee":"⊢","RightTeeVector":"⥛","rightthreetimes":"⋌","RightTriangleBar":"⧐","RightTriangle":"⊳","RightTriangleEqual":"⊵","RightUpDownVector":"⥏","RightUpTeeVector":"⥜","RightUpVectorBar":"⥔","RightUpVector":"↾","RightVectorBar":"⥓","RightVector":"⇀","ring":"˚","risingdotseq":"≓","rlarr":"⇄","rlhar":"⇌","rlm":"‏","rmoustache":"⎱","rmoust":"⎱","rnmid":"⫮","roang":"⟭","roarr":"⇾","robrk":"⟧","ropar":"⦆","ropf":"𝕣","Ropf":"ℝ","roplus":"⨮","rotimes":"⨵","RoundImplies":"⥰","rpar":")","rpargt":"⦔","rppolint":"⨒","rrarr":"⇉","Rrightarrow":"⇛","rsaquo":"›","rscr":"𝓇","Rscr":"ℛ","rsh":"↱","Rsh":"↱","rsqb":"]","rsquo":"’","rsquor":"’","rthree":"⋌","rtimes":"⋊","rtri":"▹","rtrie":"⊵","rtrif":"▸","rtriltri":"⧎","RuleDelayed":"⧴","ruluhar":"⥨","rx":"℞","Sacute":"Ś","sacute":"ś","sbquo":"‚","scap":"⪸","Scaron":"Š","scaron":"š","Sc":"⪼","sc":"≻","sccue":"≽","sce":"⪰","scE":"⪴","Scedil":"Ş","scedil":"ş","Scirc":"Ŝ","scirc":"ŝ","scnap":"⪺","scnE":"⪶","scnsim":"⋩","scpolint":"⨓","scsim":"≿","Scy":"С","scy":"с","sdotb":"⊡","sdot":"⋅","sdote":"⩦","searhk":"⤥","searr":"↘","seArr":"⇘","searrow":"↘","sect":"§","semi":";","seswar":"⤩","setminus":"∖","setmn":"∖","sext":"✶","Sfr":"𝔖","sfr":"𝔰","sfrown":"⌢","sharp":"♯","SHCHcy":"Щ","shchcy":"щ","SHcy":"Ш","shcy":"ш","ShortDownArrow":"↓","ShortLeftArrow":"←","shortmid":"∣","shortparallel":"∥","ShortRightArrow":"→","ShortUpArrow":"↑","shy":"­","Sigma":"Σ","sigma":"σ","sigmaf":"ς","sigmav":"ς","sim":"∼","simdot":"⩪","sime":"≃","simeq":"≃","simg":"⪞","simgE":"⪠","siml":"⪝","simlE":"⪟","simne":"≆","simplus":"⨤","simrarr":"⥲","slarr":"←","SmallCircle":"∘","smallsetminus":"∖","smashp":"⨳","smeparsl":"⧤","smid":"∣","smile":"⌣","smt":"⪪","smte":"⪬","smtes":"⪬︀","SOFTcy":"Ь","softcy":"ь","solbar":"⌿","solb":"⧄","sol":"/","Sopf":"𝕊","sopf":"𝕤","spades":"♠","spadesuit":"♠","spar":"∥","sqcap":"⊓","sqcaps":"⊓︀","sqcup":"⊔","sqcups":"⊔︀","Sqrt":"√","sqsub":"⊏","sqsube":"⊑","sqsubset":"⊏","sqsubseteq":"⊑","sqsup":"⊐","sqsupe":"⊒","sqsupset":"⊐","sqsupseteq":"⊒","square":"□","Square":"□","SquareIntersection":"⊓","SquareSubset":"⊏","SquareSubsetEqual":"⊑","SquareSuperset":"⊐","SquareSupersetEqual":"⊒","SquareUnion":"⊔","squarf":"▪","squ":"□","squf":"▪","srarr":"→","Sscr":"𝒮","sscr":"𝓈","ssetmn":"∖","ssmile":"⌣","sstarf":"⋆","Star":"⋆","star":"☆","starf":"★","straightepsilon":"ϵ","straightphi":"ϕ","strns":"¯","sub":"⊂","Sub":"⋐","subdot":"⪽","subE":"⫅","sube":"⊆","subedot":"⫃","submult":"⫁","subnE":"⫋","subne":"⊊","subplus":"⪿","subrarr":"⥹","subset":"⊂","Subset":"⋐","subseteq":"⊆","subseteqq":"⫅","SubsetEqual":"⊆","subsetneq":"⊊","subsetneqq":"⫋","subsim":"⫇","subsub":"⫕","subsup":"⫓","succapprox":"⪸","succ":"≻","succcurlyeq":"≽","Succeeds":"≻","SucceedsEqual":"⪰","SucceedsSlantEqual":"≽","SucceedsTilde":"≿","succeq":"⪰","succnapprox":"⪺","succneqq":"⪶","succnsim":"⋩","succsim":"≿","SuchThat":"∋","sum":"∑","Sum":"∑","sung":"♪","sup1":"¹","sup2":"²","sup3":"³","sup":"⊃","Sup":"⋑","supdot":"⪾","supdsub":"⫘","supE":"⫆","supe":"⊇","supedot":"⫄","Superset":"⊃","SupersetEqual":"⊇","suphsol":"⟉","suphsub":"⫗","suplarr":"⥻","supmult":"⫂","supnE":"⫌","supne":"⊋","supplus":"⫀","supset":"⊃","Supset":"⋑","supseteq":"⊇","supseteqq":"⫆","supsetneq":"⊋","supsetneqq":"⫌","supsim":"⫈","supsub":"⫔","supsup":"⫖","swarhk":"⤦","swarr":"↙","swArr":"⇙","swarrow":"↙","swnwar":"⤪","szlig":"ß","Tab":"\\t","target":"⌖","Tau":"Τ","tau":"τ","tbrk":"⎴","Tcaron":"Ť","tcaron":"ť","Tcedil":"Ţ","tcedil":"ţ","Tcy":"Т","tcy":"т","tdot":"⃛","telrec":"⌕","Tfr":"𝔗","tfr":"𝔱","there4":"∴","therefore":"∴","Therefore":"∴","Theta":"Θ","theta":"θ","thetasym":"ϑ","thetav":"ϑ","thickapprox":"≈","thicksim":"∼","ThickSpace":"  ","ThinSpace":" ","thinsp":" ","thkap":"≈","thksim":"∼","THORN":"Þ","thorn":"þ","tilde":"˜","Tilde":"∼","TildeEqual":"≃","TildeFullEqual":"≅","TildeTilde":"≈","timesbar":"⨱","timesb":"⊠","times":"×","timesd":"⨰","tint":"∭","toea":"⤨","topbot":"⌶","topcir":"⫱","top":"⊤","Topf":"𝕋","topf":"𝕥","topfork":"⫚","tosa":"⤩","tprime":"‴","trade":"™","TRADE":"™","triangle":"▵","triangledown":"▿","triangleleft":"◃","trianglelefteq":"⊴","triangleq":"≜","triangleright":"▹","trianglerighteq":"⊵","tridot":"◬","trie":"≜","triminus":"⨺","TripleDot":"⃛","triplus":"⨹","trisb":"⧍","tritime":"⨻","trpezium":"⏢","Tscr":"𝒯","tscr":"𝓉","TScy":"Ц","tscy":"ц","TSHcy":"Ћ","tshcy":"ћ","Tstrok":"Ŧ","tstrok":"ŧ","twixt":"≬","twoheadleftarrow":"↞","twoheadrightarrow":"↠","Uacute":"Ú","uacute":"ú","uarr":"↑","Uarr":"↟","uArr":"⇑","Uarrocir":"⥉","Ubrcy":"Ў","ubrcy":"ў","Ubreve":"Ŭ","ubreve":"ŭ","Ucirc":"Û","ucirc":"û","Ucy":"У","ucy":"у","udarr":"⇅","Udblac":"Ű","udblac":"ű","udhar":"⥮","ufisht":"⥾","Ufr":"𝔘","ufr":"𝔲","Ugrave":"Ù","ugrave":"ù","uHar":"⥣","uharl":"↿","uharr":"↾","uhblk":"▀","ulcorn":"⌜","ulcorner":"⌜","ulcrop":"⌏","ultri":"◸","Umacr":"Ū","umacr":"ū","uml":"¨","UnderBar":"_","UnderBrace":"⏟","UnderBracket":"⎵","UnderParenthesis":"⏝","Union":"⋃","UnionPlus":"⊎","Uogon":"Ų","uogon":"ų","Uopf":"𝕌","uopf":"𝕦","UpArrowBar":"⤒","uparrow":"↑","UpArrow":"↑","Uparrow":"⇑","UpArrowDownArrow":"⇅","updownarrow":"↕","UpDownArrow":"↕","Updownarrow":"⇕","UpEquilibrium":"⥮","upharpoonleft":"↿","upharpoonright":"↾","uplus":"⊎","UpperLeftArrow":"↖","UpperRightArrow":"↗","upsi":"υ","Upsi":"ϒ","upsih":"ϒ","Upsilon":"Υ","upsilon":"υ","UpTeeArrow":"↥","UpTee":"⊥","upuparrows":"⇈","urcorn":"⌝","urcorner":"⌝","urcrop":"⌎","Uring":"Ů","uring":"ů","urtri":"◹","Uscr":"𝒰","uscr":"𝓊","utdot":"⋰","Utilde":"Ũ","utilde":"ũ","utri":"▵","utrif":"▴","uuarr":"⇈","Uuml":"Ü","uuml":"ü","uwangle":"⦧","vangrt":"⦜","varepsilon":"ϵ","varkappa":"ϰ","varnothing":"∅","varphi":"ϕ","varpi":"ϖ","varpropto":"∝","varr":"↕","vArr":"⇕","varrho":"ϱ","varsigma":"ς","varsubsetneq":"⊊︀","varsubsetneqq":"⫋︀","varsupsetneq":"⊋︀","varsupsetneqq":"⫌︀","vartheta":"ϑ","vartriangleleft":"⊲","vartriangleright":"⊳","vBar":"⫨","Vbar":"⫫","vBarv":"⫩","Vcy":"В","vcy":"в","vdash":"⊢","vDash":"⊨","Vdash":"⊩","VDash":"⊫","Vdashl":"⫦","veebar":"⊻","vee":"∨","Vee":"⋁","veeeq":"≚","vellip":"⋮","verbar":"|","Verbar":"‖","vert":"|","Vert":"‖","VerticalBar":"∣","VerticalLine":"|","VerticalSeparator":"❘","VerticalTilde":"≀","VeryThinSpace":" ","Vfr":"𝔙","vfr":"𝔳","vltri":"⊲","vnsub":"⊂⃒","vnsup":"⊃⃒","Vopf":"𝕍","vopf":"𝕧","vprop":"∝","vrtri":"⊳","Vscr":"𝒱","vscr":"𝓋","vsubnE":"⫋︀","vsubne":"⊊︀","vsupnE":"⫌︀","vsupne":"⊋︀","Vvdash":"⊪","vzigzag":"⦚","Wcirc":"Ŵ","wcirc":"ŵ","wedbar":"⩟","wedge":"∧","Wedge":"⋀","wedgeq":"≙","weierp":"℘","Wfr":"𝔚","wfr":"𝔴","Wopf":"𝕎","wopf":"𝕨","wp":"℘","wr":"≀","wreath":"≀","Wscr":"𝒲","wscr":"𝓌","xcap":"⋂","xcirc":"◯","xcup":"⋃","xdtri":"▽","Xfr":"𝔛","xfr":"𝔵","xharr":"⟷","xhArr":"⟺","Xi":"Ξ","xi":"ξ","xlarr":"⟵","xlArr":"⟸","xmap":"⟼","xnis":"⋻","xodot":"⨀","Xopf":"𝕏","xopf":"𝕩","xoplus":"⨁","xotime":"⨂","xrarr":"⟶","xrArr":"⟹","Xscr":"𝒳","xscr":"𝓍","xsqcup":"⨆","xuplus":"⨄","xutri":"△","xvee":"⋁","xwedge":"⋀","Yacute":"Ý","yacute":"ý","YAcy":"Я","yacy":"я","Ycirc":"Ŷ","ycirc":"ŷ","Ycy":"Ы","ycy":"ы","yen":"¥","Yfr":"𝔜","yfr":"𝔶","YIcy":"Ї","yicy":"ї","Yopf":"𝕐","yopf":"𝕪","Yscr":"𝒴","yscr":"𝓎","YUcy":"Ю","yucy":"ю","yuml":"ÿ","Yuml":"Ÿ","Zacute":"Ź","zacute":"ź","Zcaron":"Ž","zcaron":"ž","Zcy":"З","zcy":"з","Zdot":"Ż","zdot":"ż","zeetrf":"ℨ","ZeroWidthSpace":"​","Zeta":"Ζ","zeta":"ζ","zfr":"𝔷","Zfr":"ℨ","ZHcy":"Ж","zhcy":"ж","zigrarr":"⇝","zopf":"𝕫","Zopf":"ℤ","Zscr":"𝒵","zscr":"𝓏","zwj":"‍","zwnj":"‌"}')},9591:function(t){"use strict";t.exports=JSON.parse('{"Aacute":"Á","aacute":"á","Acirc":"Â","acirc":"â","acute":"´","AElig":"Æ","aelig":"æ","Agrave":"À","agrave":"à","amp":"&","AMP":"&","Aring":"Å","aring":"å","Atilde":"Ã","atilde":"ã","Auml":"Ä","auml":"ä","brvbar":"¦","Ccedil":"Ç","ccedil":"ç","cedil":"¸","cent":"¢","copy":"©","COPY":"©","curren":"¤","deg":"°","divide":"÷","Eacute":"É","eacute":"é","Ecirc":"Ê","ecirc":"ê","Egrave":"È","egrave":"è","ETH":"Ð","eth":"ð","Euml":"Ë","euml":"ë","frac12":"½","frac14":"¼","frac34":"¾","gt":">","GT":">","Iacute":"Í","iacute":"í","Icirc":"Î","icirc":"î","iexcl":"¡","Igrave":"Ì","igrave":"ì","iquest":"¿","Iuml":"Ï","iuml":"ï","laquo":"«","lt":"<","LT":"<","macr":"¯","micro":"µ","middot":"·","nbsp":" ","not":"¬","Ntilde":"Ñ","ntilde":"ñ","Oacute":"Ó","oacute":"ó","Ocirc":"Ô","ocirc":"ô","Ograve":"Ò","ograve":"ò","ordf":"ª","ordm":"º","Oslash":"Ø","oslash":"ø","Otilde":"Õ","otilde":"õ","Ouml":"Ö","ouml":"ö","para":"¶","plusmn":"±","pound":"£","quot":"\\"","QUOT":"\\"","raquo":"»","reg":"®","REG":"®","sect":"§","shy":"­","sup1":"¹","sup2":"²","sup3":"³","szlig":"ß","THORN":"Þ","thorn":"þ","times":"×","Uacute":"Ú","uacute":"ú","Ucirc":"Û","ucirc":"û","Ugrave":"Ù","ugrave":"ù","uml":"¨","Uuml":"Ü","uuml":"ü","Yacute":"Ý","yacute":"ý","yen":"¥","yuml":"ÿ"}')},2586:function(t){"use strict";t.exports=JSON.parse('{"amp":"&","apos":"\'","gt":">","lt":"<","quot":"\\""}')}}]); -//# sourceMappingURL=workouts.6988dc66.js.map \ No newline at end of file +//# sourceMappingURL=workouts.bbc7589b.js.map \ No newline at end of file diff --git a/fittrackee/dist/static/js/workouts.6988dc66.js.map b/fittrackee/dist/static/js/workouts.bbc7589b.js.map similarity index 99% rename from fittrackee/dist/static/js/workouts.6988dc66.js.map rename to fittrackee/dist/static/js/workouts.bbc7589b.js.map index c4e601d5..1dfb4028 100644 --- a/fittrackee/dist/static/js/workouts.6988dc66.js.map +++ b/fittrackee/dist/static/js/workouts.bbc7589b.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/workouts.6988dc66.js","mappings":"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","sources":["webpack://fittrackee_client/./node_modules/deepmerge/dist/cjs.js","webpack://fittrackee_client/./node_modules/dom-serializer/lib/foreignNames.js","webpack://fittrackee_client/./node_modules/dom-serializer/lib/index.js","webpack://fittrackee_client/./node_modules/domelementtype/lib/index.js","webpack://fittrackee_client/./node_modules/domhandler/lib/index.js","webpack://fittrackee_client/./node_modules/domhandler/lib/node.js","webpack://fittrackee_client/./node_modules/domutils/lib/feeds.js","webpack://fittrackee_client/./node_modules/domutils/lib/helpers.js","webpack://fittrackee_client/./node_modules/domutils/lib/index.js","webpack://fittrackee_client/./node_modules/domutils/lib/legacy.js","webpack://fittrackee_client/./node_modules/domutils/lib/manipulation.js","webpack://fittrackee_client/./node_modules/domutils/lib/querying.js","webpack://fittrackee_client/./node_modules/domutils/lib/stringify.js","webpack://fittrackee_client/./node_modules/domutils/lib/traversal.js","webpack://fittrackee_client/./node_modules/entities/lib/decode.js","webpack://fittrackee_client/./node_modules/entities/lib/decode_codepoint.js","webpack://fittrackee_client/./node_modules/entities/lib/encode.js","webpack://fittrackee_client/./node_modules/entities/lib/index.js","webpack://fittrackee_client/./node_modules/escape-string-regexp/index.js","webpack://fittrackee_client/./node_modules/htmlparser2/lib/FeedHandler.js","webpack://fittrackee_client/./node_modules/htmlparser2/lib/Parser.js","webpack://fittrackee_client/./node_modules/htmlparser2/lib/Tokenizer.js","webpack://fittrackee_client/./node_modules/htmlparser2/lib/index.js","webpack://fittrackee_client/./node_modules/is-plain-object/dist/is-plain-object.js","webpack://fittrackee_client/./node_modules/parse-srcset/src/parse-srcset.js","webpack://fittrackee_client/./node_modules/picocolors/picocolors.browser.js","webpack://fittrackee_client/./node_modules/postcss/lib/at-rule.js","webpack://fittrackee_client/./node_modules/postcss/lib/comment.js","webpack://fittrackee_client/./node_modules/postcss/lib/container.js","webpack://fittrackee_client/./node_modules/postcss/lib/css-syntax-error.js","webpack://fittrackee_client/./node_modules/postcss/lib/declaration.js","webpack://fittrackee_client/./node_modules/postcss/lib/document.js","webpack://fittrackee_client/./node_modules/postcss/lib/fromJSON.js","webpack://fittrackee_client/./node_modules/postcss/lib/input.js","webpack://fittrackee_client/./node_modules/postcss/lib/lazy-result.js","webpack://fittrackee_client/./node_modules/postcss/lib/list.js","webpack://fittrackee_client/./node_modules/postcss/lib/map-generator.js","webpack://fittrackee_client/./node_modules/postcss/lib/no-work-result.js","webpack://fittrackee_client/./node_modules/postcss/lib/node.js","webpack://fittrackee_client/./node_modules/postcss/lib/parse.js","webpack://fittrackee_client/./node_modules/postcss/lib/parser.js","webpack://fittrackee_client/./node_modules/postcss/lib/postcss.js","webpack://fittrackee_client/./node_modules/postcss/lib/previous-map.js","webpack://fittrackee_client/./node_modules/postcss/lib/processor.js","webpack://fittrackee_client/./node_modules/postcss/lib/result.js","webpack://fittrackee_client/./node_modules/postcss/lib/root.js","webpack://fittrackee_client/./node_modules/postcss/lib/rule.js","webpack://fittrackee_client/./node_modules/postcss/lib/stringifier.js","webpack://fittrackee_client/./node_modules/postcss/lib/stringify.js","webpack://fittrackee_client/./node_modules/postcss/lib/symbols.js","webpack://fittrackee_client/./node_modules/postcss/lib/tokenize.js","webpack://fittrackee_client/./node_modules/postcss/lib/warn-once.js","webpack://fittrackee_client/./node_modules/postcss/lib/warning.js","webpack://fittrackee_client/./node_modules/sanitize-html/index.js","webpack://fittrackee_client/./src/components/Workout/WorkoutEdition.vue?1df7","webpack://fittrackee_client/./src/components/Workout/WorkoutEdition.vue","webpack://fittrackee_client/./src/views/workouts/AddWorkout.vue?212d","webpack://fittrackee_client/./src/views/workouts/AddWorkout.vue","webpack://fittrackee_client/./src/views/workouts/EditWorkout.vue?ba9e","webpack://fittrackee_client/./src/views/workouts/EditWorkout.vue","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutCardTitle.vue?4e0b","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutCardTitle.vue","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutRecord.vue?0a89","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutRecord.vue","webpack://fittrackee_client/./src/utils/weather.ts","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WeatherWind.vue?bd35","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WeatherWind.vue","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutWeather.vue?84e1","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutWeather.vue","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutData.vue?ef29","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutData.vue","webpack://fittrackee_client/./node_modules/@tmcw/togeojson/dist/togeojson.es.mjs","webpack://fittrackee_client/./node_modules/@vue-leaflet/vue-leaflet/dist/vue-leaflet.esm.js","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutMap/CustomMarker.vue?3193","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutMap/CustomMarker.vue","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutMap/index.vue?a62d","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutMap/index.vue","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/index.vue?8ebb","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/index.vue","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutChart/legend.ts","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutChart/index.vue?65aa","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutChart/index.vue","webpack://fittrackee_client/./node_modules/linkifyjs/dist/linkify.es.js","webpack://fittrackee_client/./node_modules/linkify-html/dist/linkify-html.es.js","webpack://fittrackee_client/./src/utils/inputs.ts","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutNotes.vue?a827","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutNotes.vue","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutSegments.vue?037e","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutSegments.vue","webpack://fittrackee_client/./src/views/workouts/Workout.vue?3305","webpack://fittrackee_client/./src/views/workouts/Workout.vue","webpack://fittrackee_client/./src/components/Workouts/WorkoutsFilters.vue?c3bc","webpack://fittrackee_client/./src/components/Workouts/WorkoutsFilters.vue","webpack://fittrackee_client/./src/components/Workouts/WorkoutsList.vue?72e6","webpack://fittrackee_client/./src/components/Workouts/WorkoutsList.vue","webpack://fittrackee_client/./src/views/workouts/WorkoutsView.vue?ee31","webpack://fittrackee_client/./src/views/workouts/WorkoutsView.vue","webpack://fittrackee_client/./node_modules/nanoid/non-secure/index.cjs"],"sourcesContent":["'use strict';\n\nvar isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n\treturn Array.isArray(val) ? [] : {}\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n\treturn (options.clone !== false && options.isMergeableObject(value))\n\t\t? deepmerge(emptyTarget(value), value, options)\n\t\t: value\n}\n\nfunction defaultArrayMerge(target, source, options) {\n\treturn target.concat(source).map(function(element) {\n\t\treturn cloneUnlessOtherwiseSpecified(element, options)\n\t})\n}\n\nfunction getMergeFunction(key, options) {\n\tif (!options.customMerge) {\n\t\treturn deepmerge\n\t}\n\tvar customMerge = options.customMerge(key);\n\treturn typeof customMerge === 'function' ? customMerge : deepmerge\n}\n\nfunction getEnumerableOwnPropertySymbols(target) {\n\treturn Object.getOwnPropertySymbols\n\t\t? Object.getOwnPropertySymbols(target).filter(function(symbol) {\n\t\t\treturn target.propertyIsEnumerable(symbol)\n\t\t})\n\t\t: []\n}\n\nfunction getKeys(target) {\n\treturn Object.keys(target).concat(getEnumerableOwnPropertySymbols(target))\n}\n\nfunction propertyIsOnObject(object, property) {\n\ttry {\n\t\treturn property in object\n\t} catch(_) {\n\t\treturn false\n\t}\n}\n\n// Protects from prototype poisoning and unexpected merging up the prototype chain.\nfunction propertyIsUnsafe(target, key) {\n\treturn propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet,\n\t\t&& !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain,\n\t\t\t&& Object.propertyIsEnumerable.call(target, key)) // and also unsafe if they're nonenumerable.\n}\n\nfunction mergeObject(target, source, options) {\n\tvar destination = {};\n\tif (options.isMergeableObject(target)) {\n\t\tgetKeys(target).forEach(function(key) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n\t\t});\n\t}\n\tgetKeys(source).forEach(function(key) {\n\t\tif (propertyIsUnsafe(target, key)) {\n\t\t\treturn\n\t\t}\n\n\t\tif (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) {\n\t\t\tdestination[key] = getMergeFunction(key, options)(target[key], source[key], options);\n\t\t} else {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n\t\t}\n\t});\n\treturn destination\n}\n\nfunction deepmerge(target, source, options) {\n\toptions = options || {};\n\toptions.arrayMerge = options.arrayMerge || defaultArrayMerge;\n\toptions.isMergeableObject = options.isMergeableObject || isMergeableObject;\n\t// cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()\n\t// implementations can use it. The caller may not replace it.\n\toptions.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified;\n\n\tvar sourceIsArray = Array.isArray(source);\n\tvar targetIsArray = Array.isArray(target);\n\tvar sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n\tif (!sourceAndTargetTypesMatch) {\n\t\treturn cloneUnlessOtherwiseSpecified(source, options)\n\t} else if (sourceIsArray) {\n\t\treturn options.arrayMerge(target, source, options)\n\t} else {\n\t\treturn mergeObject(target, source, options)\n\t}\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n\tif (!Array.isArray(array)) {\n\t\tthrow new Error('first argument should be an array')\n\t}\n\n\treturn array.reduce(function(prev, next) {\n\t\treturn deepmerge(prev, next, options)\n\t}, {})\n};\n\nvar deepmerge_1 = deepmerge;\n\nmodule.exports = deepmerge_1;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.attributeNames = exports.elementNames = void 0;\nexports.elementNames = new Map([\n [\"altglyph\", \"altGlyph\"],\n [\"altglyphdef\", \"altGlyphDef\"],\n [\"altglyphitem\", \"altGlyphItem\"],\n [\"animatecolor\", \"animateColor\"],\n [\"animatemotion\", \"animateMotion\"],\n [\"animatetransform\", \"animateTransform\"],\n [\"clippath\", \"clipPath\"],\n [\"feblend\", \"feBlend\"],\n [\"fecolormatrix\", \"feColorMatrix\"],\n [\"fecomponenttransfer\", \"feComponentTransfer\"],\n [\"fecomposite\", \"feComposite\"],\n [\"feconvolvematrix\", \"feConvolveMatrix\"],\n [\"fediffuselighting\", \"feDiffuseLighting\"],\n [\"fedisplacementmap\", \"feDisplacementMap\"],\n [\"fedistantlight\", \"feDistantLight\"],\n [\"fedropshadow\", \"feDropShadow\"],\n [\"feflood\", \"feFlood\"],\n [\"fefunca\", \"feFuncA\"],\n [\"fefuncb\", \"feFuncB\"],\n [\"fefuncg\", \"feFuncG\"],\n [\"fefuncr\", \"feFuncR\"],\n [\"fegaussianblur\", \"feGaussianBlur\"],\n [\"feimage\", \"feImage\"],\n [\"femerge\", \"feMerge\"],\n [\"femergenode\", \"feMergeNode\"],\n [\"femorphology\", \"feMorphology\"],\n [\"feoffset\", \"feOffset\"],\n [\"fepointlight\", \"fePointLight\"],\n [\"fespecularlighting\", \"feSpecularLighting\"],\n [\"fespotlight\", \"feSpotLight\"],\n [\"fetile\", \"feTile\"],\n [\"feturbulence\", \"feTurbulence\"],\n [\"foreignobject\", \"foreignObject\"],\n [\"glyphref\", \"glyphRef\"],\n [\"lineargradient\", \"linearGradient\"],\n [\"radialgradient\", \"radialGradient\"],\n [\"textpath\", \"textPath\"],\n]);\nexports.attributeNames = new Map([\n [\"definitionurl\", \"definitionURL\"],\n [\"attributename\", \"attributeName\"],\n [\"attributetype\", \"attributeType\"],\n [\"basefrequency\", \"baseFrequency\"],\n [\"baseprofile\", \"baseProfile\"],\n [\"calcmode\", \"calcMode\"],\n [\"clippathunits\", \"clipPathUnits\"],\n [\"diffuseconstant\", \"diffuseConstant\"],\n [\"edgemode\", \"edgeMode\"],\n [\"filterunits\", \"filterUnits\"],\n [\"glyphref\", \"glyphRef\"],\n [\"gradienttransform\", \"gradientTransform\"],\n [\"gradientunits\", \"gradientUnits\"],\n [\"kernelmatrix\", \"kernelMatrix\"],\n [\"kernelunitlength\", \"kernelUnitLength\"],\n [\"keypoints\", \"keyPoints\"],\n [\"keysplines\", \"keySplines\"],\n [\"keytimes\", \"keyTimes\"],\n [\"lengthadjust\", \"lengthAdjust\"],\n [\"limitingconeangle\", \"limitingConeAngle\"],\n [\"markerheight\", \"markerHeight\"],\n [\"markerunits\", \"markerUnits\"],\n [\"markerwidth\", \"markerWidth\"],\n [\"maskcontentunits\", \"maskContentUnits\"],\n [\"maskunits\", \"maskUnits\"],\n [\"numoctaves\", \"numOctaves\"],\n [\"pathlength\", \"pathLength\"],\n [\"patterncontentunits\", \"patternContentUnits\"],\n [\"patterntransform\", \"patternTransform\"],\n [\"patternunits\", \"patternUnits\"],\n [\"pointsatx\", \"pointsAtX\"],\n [\"pointsaty\", \"pointsAtY\"],\n [\"pointsatz\", \"pointsAtZ\"],\n [\"preservealpha\", \"preserveAlpha\"],\n [\"preserveaspectratio\", \"preserveAspectRatio\"],\n [\"primitiveunits\", \"primitiveUnits\"],\n [\"refx\", \"refX\"],\n [\"refy\", \"refY\"],\n [\"repeatcount\", \"repeatCount\"],\n [\"repeatdur\", \"repeatDur\"],\n [\"requiredextensions\", \"requiredExtensions\"],\n [\"requiredfeatures\", \"requiredFeatures\"],\n [\"specularconstant\", \"specularConstant\"],\n [\"specularexponent\", \"specularExponent\"],\n [\"spreadmethod\", \"spreadMethod\"],\n [\"startoffset\", \"startOffset\"],\n [\"stddeviation\", \"stdDeviation\"],\n [\"stitchtiles\", \"stitchTiles\"],\n [\"surfacescale\", \"surfaceScale\"],\n [\"systemlanguage\", \"systemLanguage\"],\n [\"tablevalues\", \"tableValues\"],\n [\"targetx\", \"targetX\"],\n [\"targety\", \"targetY\"],\n [\"textlength\", \"textLength\"],\n [\"viewbox\", \"viewBox\"],\n [\"viewtarget\", \"viewTarget\"],\n [\"xchannelselector\", \"xChannelSelector\"],\n [\"ychannelselector\", \"yChannelSelector\"],\n [\"zoomandpan\", \"zoomAndPan\"],\n]);\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*\n * Module dependencies\n */\nvar ElementType = __importStar(require(\"domelementtype\"));\nvar entities_1 = require(\"entities\");\n/**\n * Mixed-case SVG and MathML tags & attributes\n * recognized by the HTML parser.\n *\n * @see https://html.spec.whatwg.org/multipage/parsing.html#parsing-main-inforeign\n */\nvar foreignNames_1 = require(\"./foreignNames\");\nvar unencodedElements = new Set([\n \"style\",\n \"script\",\n \"xmp\",\n \"iframe\",\n \"noembed\",\n \"noframes\",\n \"plaintext\",\n \"noscript\",\n]);\n/**\n * Format attributes\n */\nfunction formatAttributes(attributes, opts) {\n if (!attributes)\n return;\n return Object.keys(attributes)\n .map(function (key) {\n var _a, _b;\n var value = (_a = attributes[key]) !== null && _a !== void 0 ? _a : \"\";\n if (opts.xmlMode === \"foreign\") {\n /* Fix up mixed-case attribute names */\n key = (_b = foreignNames_1.attributeNames.get(key)) !== null && _b !== void 0 ? _b : key;\n }\n if (!opts.emptyAttrs && !opts.xmlMode && value === \"\") {\n return key;\n }\n return key + \"=\\\"\" + (opts.decodeEntities !== false\n ? entities_1.encodeXML(value)\n : value.replace(/\"/g, \""\")) + \"\\\"\";\n })\n .join(\" \");\n}\n/**\n * Self-enclosing tags\n */\nvar singleTag = new Set([\n \"area\",\n \"base\",\n \"basefont\",\n \"br\",\n \"col\",\n \"command\",\n \"embed\",\n \"frame\",\n \"hr\",\n \"img\",\n \"input\",\n \"isindex\",\n \"keygen\",\n \"link\",\n \"meta\",\n \"param\",\n \"source\",\n \"track\",\n \"wbr\",\n]);\n/**\n * Renders a DOM node or an array of DOM nodes to a string.\n *\n * Can be thought of as the equivalent of the `outerHTML` of the passed node(s).\n *\n * @param node Node to be rendered.\n * @param options Changes serialization behavior\n */\nfunction render(node, options) {\n if (options === void 0) { options = {}; }\n var nodes = \"length\" in node ? node : [node];\n var output = \"\";\n for (var i = 0; i < nodes.length; i++) {\n output += renderNode(nodes[i], options);\n }\n return output;\n}\nexports.default = render;\nfunction renderNode(node, options) {\n switch (node.type) {\n case ElementType.Root:\n return render(node.children, options);\n case ElementType.Directive:\n case ElementType.Doctype:\n return renderDirective(node);\n case ElementType.Comment:\n return renderComment(node);\n case ElementType.CDATA:\n return renderCdata(node);\n case ElementType.Script:\n case ElementType.Style:\n case ElementType.Tag:\n return renderTag(node, options);\n case ElementType.Text:\n return renderText(node, options);\n }\n}\nvar foreignModeIntegrationPoints = new Set([\n \"mi\",\n \"mo\",\n \"mn\",\n \"ms\",\n \"mtext\",\n \"annotation-xml\",\n \"foreignObject\",\n \"desc\",\n \"title\",\n]);\nvar foreignElements = new Set([\"svg\", \"math\"]);\nfunction renderTag(elem, opts) {\n var _a;\n // Handle SVG / MathML in HTML\n if (opts.xmlMode === \"foreign\") {\n /* Fix up mixed-case element names */\n elem.name = (_a = foreignNames_1.elementNames.get(elem.name)) !== null && _a !== void 0 ? _a : elem.name;\n /* Exit foreign mode at integration points */\n if (elem.parent &&\n foreignModeIntegrationPoints.has(elem.parent.name)) {\n opts = __assign(__assign({}, opts), { xmlMode: false });\n }\n }\n if (!opts.xmlMode && foreignElements.has(elem.name)) {\n opts = __assign(__assign({}, opts), { xmlMode: \"foreign\" });\n }\n var tag = \"<\" + elem.name;\n var attribs = formatAttributes(elem.attribs, opts);\n if (attribs) {\n tag += \" \" + attribs;\n }\n if (elem.children.length === 0 &&\n (opts.xmlMode\n ? // In XML mode or foreign mode, and user hasn't explicitly turned off self-closing tags\n opts.selfClosingTags !== false\n : // User explicitly asked for self-closing tags, even in HTML mode\n opts.selfClosingTags && singleTag.has(elem.name))) {\n if (!opts.xmlMode)\n tag += \" \";\n tag += \"/>\";\n }\n else {\n tag += \">\";\n if (elem.children.length > 0) {\n tag += render(elem.children, opts);\n }\n if (opts.xmlMode || !singleTag.has(elem.name)) {\n tag += \"\";\n }\n }\n return tag;\n}\nfunction renderDirective(elem) {\n return \"<\" + elem.data + \">\";\n}\nfunction renderText(elem, opts) {\n var data = elem.data || \"\";\n // If entities weren't decoded, no need to encode them back\n if (opts.decodeEntities !== false &&\n !(!opts.xmlMode &&\n elem.parent &&\n unencodedElements.has(elem.parent.name))) {\n data = entities_1.encodeXML(data);\n }\n return data;\n}\nfunction renderCdata(elem) {\n return \"\";\n}\nfunction renderComment(elem) {\n return \"\";\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Doctype = exports.CDATA = exports.Tag = exports.Style = exports.Script = exports.Comment = exports.Directive = exports.Text = exports.Root = exports.isTag = exports.ElementType = void 0;\n/** Types of elements found in htmlparser2's DOM */\nvar ElementType;\n(function (ElementType) {\n /** Type for the root element of a document */\n ElementType[\"Root\"] = \"root\";\n /** Type for Text */\n ElementType[\"Text\"] = \"text\";\n /** Type for */\n ElementType[\"Directive\"] = \"directive\";\n /** Type for */\n ElementType[\"Comment\"] = \"comment\";\n /** Type for ';\n };\n\n return EventedTokenizer;\n}();\n\nvar Tokenizer =\n/** @class */\nfunction () {\n function Tokenizer(entityParser, options) {\n if (options === void 0) {\n options = {};\n }\n\n this.options = options;\n this.token = null;\n this.startLine = 1;\n this.startColumn = 0;\n this.tokens = [];\n this.tokenizer = new EventedTokenizer(this, entityParser, options.mode);\n this._currentAttribute = undefined;\n }\n\n Tokenizer.prototype.tokenize = function (input) {\n this.tokens = [];\n this.tokenizer.tokenize(input);\n return this.tokens;\n };\n\n Tokenizer.prototype.tokenizePart = function (input) {\n this.tokens = [];\n this.tokenizer.tokenizePart(input);\n return this.tokens;\n };\n\n Tokenizer.prototype.tokenizeEOF = function () {\n this.tokens = [];\n this.tokenizer.tokenizeEOF();\n return this.tokens[0];\n };\n\n Tokenizer.prototype.reset = function () {\n this.token = null;\n this.startLine = 1;\n this.startColumn = 0;\n };\n\n Tokenizer.prototype.current = function () {\n var token = this.token;\n\n if (token === null) {\n throw new Error('token was unexpectedly null');\n }\n\n if (arguments.length === 0) {\n return token;\n }\n\n for (var i = 0; i < arguments.length; i++) {\n if (token.type === arguments[i]) {\n return token;\n }\n }\n\n throw new Error(\"token type was unexpectedly \" + token.type);\n };\n\n Tokenizer.prototype.push = function (token) {\n this.token = token;\n this.tokens.push(token);\n };\n\n Tokenizer.prototype.currentAttribute = function () {\n return this._currentAttribute;\n };\n\n Tokenizer.prototype.addLocInfo = function () {\n if (this.options.loc) {\n this.current().loc = {\n start: {\n line: this.startLine,\n column: this.startColumn\n },\n end: {\n line: this.tokenizer.line,\n column: this.tokenizer.column\n }\n };\n }\n\n this.startLine = this.tokenizer.line;\n this.startColumn = this.tokenizer.column;\n }; // Data\n\n\n Tokenizer.prototype.beginDoctype = function () {\n this.push({\n type: \"Doctype\"\n /* Doctype */\n ,\n name: ''\n });\n };\n\n Tokenizer.prototype.appendToDoctypeName = function (char) {\n this.current(\"Doctype\"\n /* Doctype */\n ).name += char;\n };\n\n Tokenizer.prototype.appendToDoctypePublicIdentifier = function (char) {\n var doctype = this.current(\"Doctype\"\n /* Doctype */\n );\n\n if (doctype.publicIdentifier === undefined) {\n doctype.publicIdentifier = char;\n } else {\n doctype.publicIdentifier += char;\n }\n };\n\n Tokenizer.prototype.appendToDoctypeSystemIdentifier = function (char) {\n var doctype = this.current(\"Doctype\"\n /* Doctype */\n );\n\n if (doctype.systemIdentifier === undefined) {\n doctype.systemIdentifier = char;\n } else {\n doctype.systemIdentifier += char;\n }\n };\n\n Tokenizer.prototype.endDoctype = function () {\n this.addLocInfo();\n };\n\n Tokenizer.prototype.beginData = function () {\n this.push({\n type: \"Chars\"\n /* Chars */\n ,\n chars: ''\n });\n };\n\n Tokenizer.prototype.appendToData = function (char) {\n this.current(\"Chars\"\n /* Chars */\n ).chars += char;\n };\n\n Tokenizer.prototype.finishData = function () {\n this.addLocInfo();\n }; // Comment\n\n\n Tokenizer.prototype.beginComment = function () {\n this.push({\n type: \"Comment\"\n /* Comment */\n ,\n chars: ''\n });\n };\n\n Tokenizer.prototype.appendToCommentData = function (char) {\n this.current(\"Comment\"\n /* Comment */\n ).chars += char;\n };\n\n Tokenizer.prototype.finishComment = function () {\n this.addLocInfo();\n }; // Tags - basic\n\n\n Tokenizer.prototype.tagOpen = function () {};\n\n Tokenizer.prototype.beginStartTag = function () {\n this.push({\n type: \"StartTag\"\n /* StartTag */\n ,\n tagName: '',\n attributes: [],\n selfClosing: false\n });\n };\n\n Tokenizer.prototype.beginEndTag = function () {\n this.push({\n type: \"EndTag\"\n /* EndTag */\n ,\n tagName: ''\n });\n };\n\n Tokenizer.prototype.finishTag = function () {\n this.addLocInfo();\n };\n\n Tokenizer.prototype.markTagAsSelfClosing = function () {\n this.current(\"StartTag\"\n /* StartTag */\n ).selfClosing = true;\n }; // Tags - name\n\n\n Tokenizer.prototype.appendToTagName = function (char) {\n this.current(\"StartTag\"\n /* StartTag */\n , \"EndTag\"\n /* EndTag */\n ).tagName += char;\n }; // Tags - attributes\n\n\n Tokenizer.prototype.beginAttribute = function () {\n this._currentAttribute = ['', '', false];\n };\n\n Tokenizer.prototype.appendToAttributeName = function (char) {\n this.currentAttribute()[0] += char;\n };\n\n Tokenizer.prototype.beginAttributeValue = function (isQuoted) {\n this.currentAttribute()[2] = isQuoted;\n };\n\n Tokenizer.prototype.appendToAttributeValue = function (char) {\n this.currentAttribute()[1] += char;\n };\n\n Tokenizer.prototype.finishAttributeValue = function () {\n this.current(\"StartTag\"\n /* StartTag */\n ).attributes.push(this._currentAttribute);\n };\n\n Tokenizer.prototype.reportSyntaxError = function (message) {\n this.current().syntaxError = message;\n };\n\n return Tokenizer;\n}();\n\nfunction tokenize(input, options) {\n var tokenizer = new Tokenizer(new EntityParser(HTML5NamedCharRefs), options);\n return tokenizer.tokenize(input);\n}\n\nvar LinkifyResult = 'LinkifyResult';\nvar StartTag = 'StartTag';\nvar EndTag = 'EndTag';\nvar Chars = 'Chars';\nvar Comment = 'Comment';\nvar Doctype = 'Doctype';\n/**\n * @param {string} str html string to link\n * @param {import('linkifyjs').Opts} [opts] linkify options\n * @returns {string} resulting string\n */\n\nfunction linkifyHtml(str, opts) {\n if (opts === void 0) {\n opts = {};\n }\n\n // `tokens` and `token` in this section refer to tokens generated by the\n // HTML parser, not linkify's parser\n var tokens = tokenize(str);\n var linkifiedTokens = [];\n var linkified = [];\n var options = new Options(opts, defaultRender); // Linkify the tokens given by the parser\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (token.type === StartTag) {\n linkifiedTokens.push(token); // Ignore all the contents of ignored tags\n\n var tagName = token.tagName.toUpperCase();\n var isIgnored = tagName === 'A' || options.ignoreTags.indexOf(tagName) >= 0;\n\n if (!isIgnored) {\n continue;\n }\n\n var preskipLen = linkifiedTokens.length;\n skipTagTokens(tagName, tokens, ++i, linkifiedTokens);\n i += linkifiedTokens.length - preskipLen - 1;\n } else if (token.type !== Chars) {\n // Skip this token, it's not important\n linkifiedTokens.push(token);\n } else {\n // Valid text token, linkify it!\n var linkifedChars = linkifyChars(token.chars, options);\n linkifiedTokens.push.apply(linkifiedTokens, linkifedChars);\n }\n } // Convert the tokens back into a string\n\n\n for (var _i = 0; _i < linkifiedTokens.length; _i++) {\n var _token = linkifiedTokens[_i];\n\n switch (_token.type) {\n case LinkifyResult:\n linkified.push(_token.rendered);\n break;\n\n case StartTag:\n {\n var link = '<' + _token.tagName;\n\n if (_token.attributes.length > 0) {\n link += ' ' + attributeArrayToStrings(_token.attributes).join(' ');\n }\n\n if (_token.selfClosing) {\n link += ' /';\n }\n\n link += '>';\n linkified.push(link);\n break;\n }\n\n case EndTag:\n linkified.push(\"\");\n break;\n\n case Chars:\n linkified.push(escapeText(_token.chars));\n break;\n\n case Comment:\n linkified.push(\"\");\n break;\n\n case Doctype:\n {\n var doctype = \"';\n linkified.push(doctype);\n break;\n }\n }\n }\n\n return linkified.join('');\n}\n/**\n\t`tokens` and `token` in this section referes to tokens returned by\n\t`linkify.tokenize`. `linkified` will contain HTML Parser-style tokens\n\t@param {string}\n\t@param {import('linkifyjs').Options}\n*/\n\nfunction linkifyChars(str, options) {\n var tokens = tokenize$1(str);\n var result = [];\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (token.t === 'nl' && options.get('nl2br')) {\n result.push({\n type: StartTag,\n tagName: 'br',\n attributes: [],\n selfClosing: true\n });\n } else if (!token.isLink || !options.check(token)) {\n result.push({\n type: Chars,\n chars: token.toString()\n });\n } else {\n result.push({\n type: LinkifyResult,\n rendered: options.render(token)\n });\n }\n }\n\n return result;\n}\n/**\n\tReturns a list of tokens skipped until the closing tag of tagName.\n\n\t* `tagName` is the closing tag which will prompt us to stop skipping\n\t* `tokens` is the array of tokens generated by HTML5Tokenizer which\n\t* `i` is the index immediately after the opening tag to skip\n\t* `skippedTokens` is an array which skipped tokens are being pushed into\n\n\tCaveats\n\n\t* Assumes that i is the first token after the given opening tagName\n\t* The closing tag will be skipped, but nothing after it\n\t* Will track whether there is a nested tag of the same type\n*/\n\n\nfunction skipTagTokens(tagName, tokens, i, skippedTokens) {\n // number of tokens of this type on the [fictional] stack\n var stackCount = 1;\n\n while (i < tokens.length && stackCount > 0) {\n var token = tokens[i];\n\n if (token.type === StartTag && token.tagName.toUpperCase() === tagName) {\n // Nested tag of the same type, \"add to stack\"\n stackCount++;\n } else if (token.type === EndTag && token.tagName.toUpperCase() === tagName) {\n // Closing tag\n stackCount--;\n }\n\n skippedTokens.push(token);\n i++;\n } // Note that if stackCount > 0 here, the HTML is probably invalid\n\n\n return skippedTokens;\n}\n\nfunction defaultRender(_ref) {\n var tagName = _ref.tagName,\n attributes = _ref.attributes,\n content = _ref.content;\n return \"<\" + tagName + \" \" + attributesToString(attributes) + \">\" + escapeText(content) + \"\";\n}\n\nfunction escapeText(text) {\n return text.replace(/&/g, '&').replace(//g, '>');\n}\n\nfunction escapeAttr(attr) {\n return attr.replace(/\"/g, '"');\n}\n\nfunction attributesToString(attributes) {\n var result = [];\n\n for (var attr in attributes) {\n var val = attributes[attr] + '';\n result.push(attr + \"=\\\"\" + escapeAttr(val) + \"\\\"\");\n }\n\n return result.join(' ');\n}\n\nfunction attributeArrayToStrings(attrs) {\n var attrStrs = [];\n\n for (var i = 0; i < attrs.length; i++) {\n var name = attrs[i][0];\n var value = attrs[i][1] + '';\n attrStrs.push(name + \"=\\\"\" + escapeAttr(value) + \"\\\"\");\n }\n\n return attrStrs;\n}\n\nexport { linkifyHtml as default };\n","import linkifyHtml from 'linkify-html'\nimport sanitizeHtml from 'sanitize-html'\n\nexport const linkifyAndClean = (input: string): string => {\n return sanitizeHtml(linkifyHtml(input, { target: '_blank' }), {\n allowedTags: ['a'],\n disallowedTagsMode: 'escape',\n })\n}\n","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, unref as _unref, createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-f6b59442\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"workout-note\" }\nconst _hoisted_2 = [\"innerHTML\"]\n\nimport { toRefs, withDefaults } from 'vue'\n\n import { linkifyAndClean } from '@/utils/inputs'\n\n interface Props {\n notes?: string | null\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'WorkoutNotes',\n props: {\n notes: { default: () => null }\n },\n setup(__props: any) {\n\nconst props = __props as { notes: string | null };\n\n \n\n const { notes } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n const _component_Card = _resolveComponent(\"Card\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_Card, null, {\n title: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('workouts.NOTES')), 1)\n ]),\n content: _withCtx(() => [\n _createElementVNode(\"span\", {\n innerHTML: \n _unref(notes) && _unref(notes) !== ''\n ? _unref(linkifyAndClean)(_unref(notes))\n : _ctx.$t('workouts.NO_NOTES')\n \n }, null, 8, _hoisted_2)\n ]),\n _: 1\n })\n ]))\n}\n}\n\n})","import script from \"./WorkoutNotes.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./WorkoutNotes.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./WorkoutNotes.vue?vue&type=style&index=0&id=f6b59442&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-f6b59442\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, createElementVNode as _createElementVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-6b8a27cd\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"workout-segments\" }\n\nimport { toRefs } from 'vue'\n\n import { IWorkoutSegment } from '@/types/workouts'\n\n interface Props {\n segments: IWorkoutSegment[]\n useImperialUnits: boolean\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'WorkoutSegments',\n props: {\n segments: null,\n useImperialUnits: { type: Boolean }\n },\n setup(__props: any) {\n\nconst props = __props as {\n segments: IWorkoutSegment[]\n useImperialUnits: boolean\n };\n\n \n\n const { segments, useImperialUnits } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_Distance = _resolveComponent(\"Distance\")!\n const _component_Card = _resolveComponent(\"Card\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_Card, null, {\n title: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('workouts.SEGMENT', 2)), 1)\n ]),\n content: _withCtx(() => [\n _createElementVNode(\"ul\", null, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(segments), (segment, index) => {\n return (_openBlock(), _createElementBlock(\"li\", {\n key: segment.segment_id\n }, [\n _createVNode(_component_router_link, {\n to: {\n name: 'WorkoutSegment',\n params: {\n workoutId: segment.workout_id,\n segmentId: index + 1,\n },\n }\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('workouts.SEGMENT', 1)) + \" \" + _toDisplayString(index + 1), 1)\n ]),\n _: 2\n }, 1032, [\"to\"]),\n _createTextVNode(\" (\" + _toDisplayString(_ctx.$t('workouts.DISTANCE')) + \": \", 1),\n _createVNode(_component_Distance, {\n distance: segment.distance,\n unitFrom: \"km\",\n useImperialUnits: _unref(useImperialUnits)\n }, null, 8, [\"distance\", \"useImperialUnits\"]),\n _createTextVNode(\", \" + _toDisplayString(_ctx.$t('workouts.DURATION')) + \": \" + _toDisplayString(segment.duration) + \") \", 1)\n ]))\n }), 128))\n ])\n ]),\n _: 1\n })\n ]))\n}\n}\n\n})","import script from \"./WorkoutSegments.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./WorkoutSegments.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./WorkoutSegments.vue?vue&type=style&index=0&id=6b8a27cd&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-6b8a27cd\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-53c4e53a\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"workout\",\n class: \"view\"\n}\nconst _hoisted_2 = { class: \"container\" }\nconst _hoisted_3 = {\n key: 0,\n class: \"workout-container\"\n}\nconst _hoisted_4 = { key: 0 }\nconst _hoisted_5 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { id: \"bottom\" }, null, -1))\nconst _hoisted_6 = { key: 1 }\n\nimport {\n ComputedRef,\n Ref,\n computed,\n ref,\n toRefs,\n watch,\n onBeforeMount,\n onUnmounted,\n } from 'vue'\n import { useRoute } from 'vue-router'\n\n import NotFound from '@/components/Common/NotFound.vue'\n import WorkoutDetail from '@/components/Workout/WorkoutDetail/index.vue'\n import WorkoutChart from '@/components/Workout/WorkoutDetail/WorkoutChart/index.vue'\n import WorkoutNotes from '@/components/Workout/WorkoutDetail/WorkoutNotes.vue'\n import WorkoutSegments from '@/components/Workout/WorkoutDetail/WorkoutSegments.vue'\n import {\n AUTH_USER_STORE,\n SPORTS_STORE,\n WORKOUTS_STORE,\n } from '@/store/constants'\n import { ISport } from '@/types/sports'\n import { IAuthUserProfile } from '@/types/user'\n import { IWorkoutData, IWorkoutPayload, TCoordinates } from '@/types/workouts'\n import { useStore } from '@/use/useStore'\n\n interface Props {\n displaySegment: boolean\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'Workout',\n props: {\n displaySegment: { type: Boolean }\n },\n setup(__props: any) {\n\nconst props = __props as {\n displaySegment: boolean\n };\n\n \n\n const route = useRoute()\n const store = useStore()\n\n const { displaySegment } = toRefs(props)\n const workoutData: ComputedRef = computed(\n () => store.getters[WORKOUTS_STORE.GETTERS.WORKOUT_DATA]\n )\n const authUser: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.AUTH_USER_PROFILE]\n )\n const sports: ComputedRef = computed(\n () => store.getters[SPORTS_STORE.GETTERS.SPORTS]\n )\n const markerCoordinates: Ref = ref({\n latitude: null,\n longitude: null,\n })\n\n onBeforeMount(() => {\n const payload: IWorkoutPayload = { workoutId: route.params.workoutId }\n if (props.displaySegment) {\n payload.segmentId = route.params.segmentId\n }\n store.dispatch(WORKOUTS_STORE.ACTIONS.GET_WORKOUT_DATA, payload)\n })\n\n onUnmounted(() => {\n store.commit(WORKOUTS_STORE.MUTATIONS.EMPTY_WORKOUT)\n })\n\n function updateCoordinates(coordinates: TCoordinates) {\n markerCoordinates.value = {\n latitude: coordinates.latitude,\n longitude: coordinates.longitude,\n }\n }\n\n watch(\n () => route.params.workoutId,\n async (newWorkoutId) => {\n if (newWorkoutId) {\n store.dispatch(WORKOUTS_STORE.ACTIONS.GET_WORKOUT_DATA, {\n workoutId: newWorkoutId,\n })\n }\n }\n )\n watch(\n () => route.params.segmentId,\n async (newSegmentId) => {\n if (route.params.workoutId) {\n const payload: IWorkoutPayload = {\n workoutId: route.params.workoutId,\n }\n if (newSegmentId) {\n payload.segmentId = newSegmentId\n }\n store.dispatch(WORKOUTS_STORE.ACTIONS.GET_WORKOUT_DATA, payload)\n }\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n (_unref(sports).length > 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n (_unref(workoutData).workout.id)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_4, [\n _createVNode(WorkoutDetail, {\n workoutData: _unref(workoutData),\n sports: _unref(sports),\n authUser: _unref(authUser),\n markerCoordinates: markerCoordinates.value,\n displaySegment: _unref(displaySegment)\n }, null, 8, [\"workoutData\", \"sports\", \"authUser\", \"markerCoordinates\", \"displaySegment\"]),\n (\n _unref(workoutData).workout.with_gpx && _unref(workoutData).chartData.length > 0\n )\n ? (_openBlock(), _createBlock(WorkoutChart, {\n key: 0,\n workoutData: _unref(workoutData),\n authUser: _unref(authUser),\n displaySegment: _unref(displaySegment),\n onGetCoordinates: updateCoordinates\n }, null, 8, [\"workoutData\", \"authUser\", \"displaySegment\"]))\n : _createCommentVNode(\"\", true),\n (!_unref(displaySegment) && _unref(workoutData).workout.segments.length > 1)\n ? (_openBlock(), _createBlock(WorkoutSegments, {\n key: 1,\n segments: _unref(workoutData).workout.segments,\n useImperialUnits: _unref(authUser).imperial_units\n }, null, 8, [\"segments\", \"useImperialUnits\"]))\n : _createCommentVNode(\"\", true),\n (!_unref(displaySegment))\n ? (_openBlock(), _createBlock(WorkoutNotes, {\n key: 2,\n notes: _unref(workoutData).workout.notes\n }, null, 8, [\"notes\"]))\n : _createCommentVNode(\"\", true),\n _hoisted_5\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_6, [\n (!_unref(workoutData).loading)\n ? (_openBlock(), _createBlock(NotFound, {\n key: 0,\n target: \"WORKOUT\"\n }))\n : _createCommentVNode(\"\", true)\n ]))\n ]))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n}\n}\n\n})","import script from \"./Workout.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Workout.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Workout.vue?vue&type=style&index=0&id=53c4e53a&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-53c4e53a\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-6c38593a\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"workouts-filters\" }\nconst _hoisted_2 = { class: \"box\" }\nconst _hoisted_3 = { class: \"form\" }\nconst _hoisted_4 = { class: \"form-items-group\" }\nconst _hoisted_5 = { class: \"form-item\" }\nconst _hoisted_6 = [\"value\"]\nconst _hoisted_7 = { class: \"form-item\" }\nconst _hoisted_8 = [\"value\"]\nconst _hoisted_9 = { class: \"form-items-group\" }\nconst _hoisted_10 = { class: \"form-item\" }\nconst _hoisted_11 = [\"value\"]\nconst _hoisted_12 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"option\", { value: \"\" }, null, -1))\nconst _hoisted_13 = [\"value\"]\nconst _hoisted_14 = { class: \"form-items-group\" }\nconst _hoisted_15 = { class: \"form-item\" }\nconst _hoisted_16 = { class: \"form-inputs-group\" }\nconst _hoisted_17 = [\"value\"]\nconst _hoisted_18 = [\"value\"]\nconst _hoisted_19 = { class: \"form-items-group\" }\nconst _hoisted_20 = { class: \"form-item\" }\nconst _hoisted_21 = { class: \"form-inputs-group\" }\nconst _hoisted_22 = [\"value\"]\nconst _hoisted_23 = [\"value\"]\nconst _hoisted_24 = { class: \"form-items-group\" }\nconst _hoisted_25 = { class: \"form-item\" }\nconst _hoisted_26 = { class: \"form-inputs-group\" }\nconst _hoisted_27 = [\"value\"]\nconst _hoisted_28 = [\"value\"]\nconst _hoisted_29 = { class: \"form-items-group\" }\nconst _hoisted_30 = { class: \"form-item\" }\nconst _hoisted_31 = { class: \"form-inputs-group\" }\nconst _hoisted_32 = [\"value\"]\nconst _hoisted_33 = [\"value\"]\nconst _hoisted_34 = { class: \"form-button\" }\n\nimport { ComputedRef, computed, toRefs, watch } from 'vue'\n import { useI18n } from 'vue-i18n'\n import { LocationQuery, useRoute, useRouter } from 'vue-router'\n\n import { ISport } from '@/types/sports'\n import { IAuthUserProfile } from '@/types/user'\n import { translateSports } from '@/utils/sports'\n import { units } from '@/utils/units'\n\n interface Props {\n authUser: IAuthUserProfile\n sports: ISport[]\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'WorkoutsFilters',\n props: {\n authUser: null,\n sports: null\n },\n emits: ['filter'],\n setup(__props: any, { emit }) {\n\nconst props = __props as {\n authUser: IAuthUserProfile\n sports: ISport[]\n };\n\n \n\n \n\n const { t } = useI18n()\n const route = useRoute()\n const router = useRouter()\n\n const { authUser } = toRefs(props)\n\n const toUnit = authUser.value.imperial_units\n ? units['km'].defaultTarget\n : 'km'\n const translatedSports: ComputedRef = computed(() =>\n translateSports(props.sports, t)\n )\n let params: LocationQuery = Object.assign({}, route.query)\n\n function handleFilterChange(event: Event & { target: HTMLInputElement }) {\n if (event.target.value === '') {\n delete params[event.target.name]\n } else {\n params[event.target.name] = event.target.value\n }\n }\n function onFilter() {\n emit('filter')\n if ('page' in params) {\n params['page'] = '1'\n }\n router.push({ path: '/workouts', query: params })\n }\n function onClearFilter() {\n emit('filter')\n router.push({ path: '/workouts', query: {} })\n }\n\n watch(\n () => route.query,\n (newQuery) => {\n params = Object.assign({}, newQuery)\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.$t('workouts.FROM')) + \": \", 1),\n _createElementVNode(\"input\", {\n name: \"from\",\n type: \"date\",\n value: _ctx.$route.query.from,\n onChange: handleFilterChange\n }, null, 40, _hoisted_6)\n ]),\n _createElementVNode(\"div\", _hoisted_7, [\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.$t('workouts.TO')) + \": \", 1),\n _createElementVNode(\"input\", {\n name: \"to\",\n type: \"date\",\n value: _ctx.$route.query.to,\n onChange: handleFilterChange\n }, null, 40, _hoisted_8)\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_9, [\n _createElementVNode(\"div\", _hoisted_10, [\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.$t('workouts.SPORT', 1)) + \":\", 1),\n _createElementVNode(\"select\", {\n name: \"sport_id\",\n value: _ctx.$route.query.sport_id,\n onChange: handleFilterChange\n }, [\n _hoisted_12,\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(translatedSports).filter((s) =>\n _unref(authUser).sports_list.includes(s.id)\n ), (sport) => {\n return (_openBlock(), _createElementBlock(\"option\", {\n value: sport.id,\n key: sport.id\n }, _toDisplayString(sport.translatedLabel), 9, _hoisted_13))\n }), 128))\n ], 40, _hoisted_11)\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_14, [\n _createElementVNode(\"div\", _hoisted_15, [\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.$t('workouts.DISTANCE')) + \" (\" + _toDisplayString(_unref(toUnit)) + \"): \", 1),\n _createElementVNode(\"div\", _hoisted_16, [\n _createElementVNode(\"input\", {\n name: \"distance_from\",\n type: \"number\",\n min: \"0\",\n step: \"0.1\",\n value: _ctx.$route.query.distance_from,\n onChange: handleFilterChange\n }, null, 40, _hoisted_17),\n _createElementVNode(\"span\", null, _toDisplayString(_ctx.$t('workouts.TO')), 1),\n _createElementVNode(\"input\", {\n name: \"distance_to\",\n type: \"number\",\n min: \"0\",\n step: \"0.1\",\n value: _ctx.$route.query.distance_to,\n onChange: handleFilterChange\n }, null, 40, _hoisted_18)\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_19, [\n _createElementVNode(\"div\", _hoisted_20, [\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.$t('workouts.DURATION')) + \": \", 1),\n _createElementVNode(\"div\", _hoisted_21, [\n _createElementVNode(\"input\", {\n name: \"duration_from\",\n value: _ctx.$route.query.duration_from,\n onChange: handleFilterChange,\n pattern: \"^([0-9]*[0-9]):([0-5][0-9])$\",\n placeholder: \"hh:mm\",\n type: \"text\"\n }, null, 40, _hoisted_22),\n _createElementVNode(\"span\", null, _toDisplayString(_ctx.$t('workouts.TO')), 1),\n _createElementVNode(\"input\", {\n name: \"duration_to\",\n value: _ctx.$route.query.duration_to,\n onChange: handleFilterChange,\n pattern: \"^([0-9]*[0-9]):([0-5][0-9])$\",\n placeholder: \"hh:mm\",\n type: \"text\"\n }, null, 40, _hoisted_23)\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_24, [\n _createElementVNode(\"div\", _hoisted_25, [\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.$t('workouts.AVE_SPEED')) + \" (\" + _toDisplayString(_unref(toUnit)) + \"/h): \", 1),\n _createElementVNode(\"div\", _hoisted_26, [\n _createElementVNode(\"input\", {\n min: \"0\",\n name: \"ave_speed_from\",\n value: _ctx.$route.query.ave_speed_from,\n onChange: handleFilterChange,\n step: \"0.1\",\n type: \"number\"\n }, null, 40, _hoisted_27),\n _createElementVNode(\"span\", null, _toDisplayString(_ctx.$t('workouts.TO')), 1),\n _createElementVNode(\"input\", {\n min: \"0\",\n name: \"ave_speed_to\",\n value: _ctx.$route.query.ave_speed_to,\n onChange: handleFilterChange,\n step: \"0.1\",\n type: \"number\"\n }, null, 40, _hoisted_28)\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_29, [\n _createElementVNode(\"div\", _hoisted_30, [\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.$t('workouts.MAX_SPEED')) + \" (\" + _toDisplayString(_unref(toUnit)) + \"/h): \", 1),\n _createElementVNode(\"div\", _hoisted_31, [\n _createElementVNode(\"input\", {\n min: \"0\",\n name: \"max_speed_from\",\n value: _ctx.$route.query.max_speed_from,\n onChange: handleFilterChange,\n step: \"0.1\",\n type: \"number\"\n }, null, 40, _hoisted_32),\n _createElementVNode(\"span\", null, _toDisplayString(_ctx.$t('workouts.TO')), 1),\n _createElementVNode(\"input\", {\n min: \"0\",\n name: \"max_speed_to\",\n value: _ctx.$route.query.max_speed_to,\n onChange: handleFilterChange,\n step: \"0.1\",\n type: \"number\"\n }, null, 40, _hoisted_33)\n ])\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_34, [\n _createElementVNode(\"button\", {\n class: \"confirm\",\n onClick: onFilter\n }, _toDisplayString(_ctx.$t('buttons.FILTER')), 1),\n _createElementVNode(\"button\", {\n class: \"confirm\",\n onClick: onClearFilter\n }, _toDisplayString(_ctx.$t('buttons.CLEAR_FILTER')), 1)\n ])\n ])\n ]))\n}\n}\n\n})","import script from \"./WorkoutsFilters.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./WorkoutsFilters.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./WorkoutsFilters.vue?vue&type=style&index=0&id=6c38593a&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-6c38593a\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createVNode as _createVNode, normalizeClass as _normalizeClass, renderList as _renderList, Fragment as _Fragment, resolveComponent as _resolveComponent, createBlock as _createBlock, withCtx as _withCtx, createTextVNode as _createTextVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-0f8ea7b0\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"workouts-list\" }\nconst _hoisted_2 = { class: \"total\" }\nconst _hoisted_3 = { class: \"total-label\" }\nconst _hoisted_4 = { key: 0 }\nconst _hoisted_5 = {\n key: 0,\n class: \"workouts-table responsive-table\"\n}\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"th\", { class: \"sport-col\" }, null, -1))\nconst _hoisted_7 = { class: \"sport-col\" }\nconst _hoisted_8 = { class: \"cell-heading\" }\nconst _hoisted_9 = [\"onMouseover\"]\nconst _hoisted_10 = { class: \"cell-heading\" }\nconst _hoisted_11 = {\n key: 0,\n class: \"fa fa-map-o\",\n \"aria-hidden\": \"true\"\n}\nconst _hoisted_12 = { class: \"title\" }\nconst _hoisted_13 = { class: \"workout-date\" }\nconst _hoisted_14 = { class: \"cell-heading\" }\nconst _hoisted_15 = { class: \"text-right\" }\nconst _hoisted_16 = { class: \"cell-heading\" }\nconst _hoisted_17 = { class: \"text-right\" }\nconst _hoisted_18 = { class: \"cell-heading\" }\nconst _hoisted_19 = { class: \"text-right\" }\nconst _hoisted_20 = { class: \"cell-heading\" }\nconst _hoisted_21 = { class: \"text-right\" }\nconst _hoisted_22 = { class: \"cell-heading\" }\nconst _hoisted_23 = { class: \"text-right\" }\nconst _hoisted_24 = { class: \"cell-heading\" }\nconst _hoisted_25 = { class: \"text-right\" }\nconst _hoisted_26 = { class: \"cell-heading\" }\nconst _hoisted_27 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { id: \"bottom\" }, null, -1))\n\nimport {\n ComputedRef,\n Ref,\n computed,\n ref,\n toRefs,\n watch,\n capitalize,\n onBeforeMount,\n } from 'vue'\n import { LocationQuery, useRoute, useRouter } from 'vue-router'\n\n import FilterSelects from '@/components/Common/FilterSelects.vue'\n import Pagination from '@/components/Common/Pagination.vue'\n import StaticMap from '@/components/Common/StaticMap.vue'\n import NoWorkouts from '@/components/Workouts/NoWorkouts.vue'\n import { ROOT_STORE, WORKOUTS_STORE } from '@/store/constants'\n import { IPagination } from '@/types/api'\n import { ITranslatedSport } from '@/types/sports'\n import { IAuthUserProfile } from '@/types/user'\n import { IWorkout, TWorkoutsPayload } from '@/types/workouts'\n import { useStore } from '@/use/useStore'\n import { getQuery, sortList, workoutsPayloadKeys } from '@/utils/api'\n import { formatDate } from '@/utils/dates'\n import { getSportColor, getSportLabel } from '@/utils/sports'\n import { convertDistance } from '@/utils/units'\n import { defaultOrder } from '@/utils/workouts'\n\n interface Props {\n user: IAuthUserProfile\n sports: ITranslatedSport[]\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'WorkoutsList',\n props: {\n user: null,\n sports: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IAuthUserProfile\n sports: ITranslatedSport[]\n };\n\n \n\n const store = useStore()\n const route = useRoute()\n const router = useRouter()\n\n const { user, sports } = toRefs(props)\n const orderByList: string[] = [\n 'ave_speed',\n 'distance',\n 'duration',\n 'workout_date',\n ]\n const workouts: ComputedRef = computed(\n () => store.getters[WORKOUTS_STORE.GETTERS.USER_WORKOUTS]\n )\n const pagination: ComputedRef = computed(\n () => store.getters[WORKOUTS_STORE.GETTERS.WORKOUTS_PAGINATION]\n )\n const currentLanguage: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.LANGUAGE]\n )\n let query: TWorkoutsPayload = getWorkoutsQuery(route.query)\n const hoverWorkoutId: Ref = ref(null)\n\n onBeforeMount(() => {\n loadWorkouts(query)\n })\n\n function loadWorkouts(payload: TWorkoutsPayload) {\n store.dispatch(\n WORKOUTS_STORE.ACTIONS.GET_USER_WORKOUTS,\n user.value.imperial_units ? getConvertedPayload(payload) : payload\n )\n }\n function reloadWorkouts(queryParam: string, queryValue: string) {\n const newQuery: LocationQuery = Object.assign({}, route.query)\n newQuery[queryParam] = queryValue\n if (queryParam === 'per_page') {\n newQuery['page'] = '1'\n }\n query = getWorkoutsQuery(newQuery)\n router.push({ path: '/workouts', query })\n }\n\n function getWorkoutsQuery(newQuery: LocationQuery): TWorkoutsPayload {\n const workoutQuery = getQuery(\n newQuery,\n orderByList,\n defaultOrder.order_by,\n {\n defaultSort: defaultOrder.order,\n }\n )\n Object.keys(newQuery)\n .filter((k) => workoutsPayloadKeys.includes(k))\n .map((k) => {\n if (typeof newQuery[k] === 'string') {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n workoutQuery[k] = newQuery[k]\n }\n })\n return workoutQuery\n }\n\n function getConvertedPayload(payload: TWorkoutsPayload): TWorkoutsPayload {\n const convertedPayload: TWorkoutsPayload = {\n ...payload,\n }\n Object.entries(convertedPayload).map((entry) => {\n if (entry[0].match('speed|distance') && entry[1]) {\n convertedPayload[entry[0]] = convertDistance(+entry[1], 'mi', 'km')\n }\n })\n return convertedPayload\n }\n\n function onHover(workoutId: string | null) {\n hoverWorkoutId.value = workoutId\n }\n\n watch(\n () => route.query,\n async (newQuery) => {\n query = getWorkoutsQuery(newQuery)\n loadWorkouts(query)\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n const _component_SportImage = _resolveComponent(\"SportImage\")!\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_Distance = _resolveComponent(\"Distance\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"box\", { 'empty-table': _unref(workouts).length === 0 }])\n }, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"span\", _hoisted_3, _toDisplayString(_ctx.$t('common.TOTAL').toLowerCase()) + \": \", 1),\n (_unref(pagination).total !== null)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_4, _toDisplayString(_unref(pagination).total) + \" \" + _toDisplayString(_ctx.$t('workouts.WORKOUT', _unref(pagination).total)), 1))\n : _createCommentVNode(\"\", true)\n ]),\n _createVNode(FilterSelects, {\n sort: _unref(sortList),\n order_by: orderByList,\n query: _unref(query),\n message: \"workouts\",\n onUpdateSelect: reloadWorkouts\n }, null, 8, [\"sort\", \"query\"]),\n (_unref(workouts).length > 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_5, [\n _createVNode(Pagination, {\n class: \"top-pagination\",\n pagination: _unref(pagination),\n path: \"/workouts\",\n query: _unref(query)\n }, null, 8, [\"pagination\", \"query\"]),\n _createElementVNode(\"table\", null, [\n _createElementVNode(\"thead\", {\n class: _normalizeClass({ smaller: 'de' === _unref(currentLanguage) })\n }, [\n _createElementVNode(\"tr\", null, [\n _hoisted_6,\n _createElementVNode(\"th\", null, _toDisplayString(capitalize(_ctx.$t('workouts.WORKOUT', 1))), 1),\n _createElementVNode(\"th\", null, _toDisplayString(capitalize(_ctx.$t('workouts.DATE'))), 1),\n _createElementVNode(\"th\", null, _toDisplayString(capitalize(_ctx.$t('workouts.DISTANCE'))), 1),\n _createElementVNode(\"th\", null, _toDisplayString(capitalize(_ctx.$t('workouts.DURATION'))), 1),\n _createElementVNode(\"th\", null, _toDisplayString(capitalize(_ctx.$t('workouts.AVE_SPEED'))), 1),\n _createElementVNode(\"th\", null, _toDisplayString(capitalize(_ctx.$t('workouts.MAX_SPEED'))), 1),\n _createElementVNode(\"th\", null, _toDisplayString(capitalize(_ctx.$t('workouts.ASCENT'))), 1),\n _createElementVNode(\"th\", null, _toDisplayString(capitalize(_ctx.$t('workouts.DESCENT'))), 1)\n ])\n ], 2),\n _createElementVNode(\"tbody\", null, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(workouts), (workout) => {\n return (_openBlock(), _createElementBlock(\"tr\", {\n key: workout.id\n }, [\n _createElementVNode(\"td\", _hoisted_7, [\n _createElementVNode(\"span\", _hoisted_8, _toDisplayString(_ctx.$t('workouts.SPORT', 1)), 1),\n (_unref(sports).length > 0)\n ? (_openBlock(), _createBlock(_component_SportImage, {\n key: 0,\n title: \n _unref(sports).find((s) => s.id === workout.sport_id)\n .translatedLabel\n ,\n \"sport-label\": _unref(getSportLabel)(workout, _unref(sports)),\n color: _unref(getSportColor)(workout, _unref(sports))\n }, null, 8, [\"title\", \"sport-label\", \"color\"]))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"td\", {\n class: \"workout-title\",\n onMouseover: ($event: any) => (onHover(workout.id)),\n onMouseleave: _cache[0] || (_cache[0] = ($event: any) => (onHover(null)))\n }, [\n _createElementVNode(\"span\", _hoisted_10, _toDisplayString(capitalize(_ctx.$t('workouts.WORKOUT', 1))), 1),\n _createVNode(_component_router_link, {\n class: \"nav-item\",\n to: { name: 'Workout', params: { workoutId: workout.id } }\n }, {\n default: _withCtx(() => [\n (workout.with_gpx)\n ? (_openBlock(), _createElementBlock(\"i\", _hoisted_11))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"span\", _hoisted_12, _toDisplayString(workout.title), 1)\n ]),\n _: 2\n }, 1032, [\"to\"]),\n (workout.with_gpx && hoverWorkoutId.value === workout.id)\n ? (_openBlock(), _createBlock(StaticMap, {\n key: 0,\n workout: workout,\n \"display-hover\": true\n }, null, 8, [\"workout\"]))\n : _createCommentVNode(\"\", true)\n ], 40, _hoisted_9),\n _createElementVNode(\"td\", _hoisted_13, [\n _createElementVNode(\"span\", _hoisted_14, _toDisplayString(_ctx.$t('workouts.DATE')), 1),\n _createTextVNode(\" \" + _toDisplayString(_unref(formatDate)(\n workout.workout_date,\n _unref(user).timezone,\n _unref(user).date_format\n )), 1)\n ]),\n _createElementVNode(\"td\", _hoisted_15, [\n _createElementVNode(\"span\", _hoisted_16, _toDisplayString(_ctx.$t('workouts.DISTANCE')), 1),\n _createVNode(_component_Distance, {\n distance: workout.distance,\n unitFrom: \"km\",\n useImperialUnits: _unref(user).imperial_units\n }, null, 8, [\"distance\", \"useImperialUnits\"])\n ]),\n _createElementVNode(\"td\", _hoisted_17, [\n _createElementVNode(\"span\", _hoisted_18, _toDisplayString(_ctx.$t('workouts.DURATION')), 1),\n _createTextVNode(\" \" + _toDisplayString(workout.moving), 1)\n ]),\n _createElementVNode(\"td\", _hoisted_19, [\n _createElementVNode(\"span\", _hoisted_20, _toDisplayString(_ctx.$t('workouts.AVE_SPEED')), 1),\n _createVNode(_component_Distance, {\n distance: workout.ave_speed,\n unitFrom: \"km\",\n speed: true,\n useImperialUnits: _unref(user).imperial_units\n }, null, 8, [\"distance\", \"useImperialUnits\"])\n ]),\n _createElementVNode(\"td\", _hoisted_21, [\n _createElementVNode(\"span\", _hoisted_22, _toDisplayString(_ctx.$t('workouts.MAX_SPEED')), 1),\n _createVNode(_component_Distance, {\n distance: workout.max_speed,\n unitFrom: \"km\",\n speed: true,\n useImperialUnits: _unref(user).imperial_units\n }, null, 8, [\"distance\", \"useImperialUnits\"])\n ]),\n _createElementVNode(\"td\", _hoisted_23, [\n _createElementVNode(\"span\", _hoisted_24, _toDisplayString(_ctx.$t('workouts.ASCENT')), 1),\n (workout.with_gpx)\n ? (_openBlock(), _createBlock(_component_Distance, {\n key: 0,\n distance: workout.ascent,\n unitFrom: \"m\",\n useImperialUnits: _unref(user).imperial_units\n }, null, 8, [\"distance\", \"useImperialUnits\"]))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"td\", _hoisted_25, [\n _createElementVNode(\"span\", _hoisted_26, _toDisplayString(_ctx.$t('workouts.DESCENT')), 1),\n (workout.with_gpx)\n ? (_openBlock(), _createBlock(_component_Distance, {\n key: 0,\n distance: workout.descent,\n unitFrom: \"m\",\n useImperialUnits: _unref(user).imperial_units\n }, null, 8, [\"distance\", \"useImperialUnits\"]))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n }), 128))\n ])\n ]),\n _createVNode(Pagination, {\n pagination: _unref(pagination),\n path: \"/workouts\",\n query: _unref(query)\n }, null, 8, [\"pagination\", \"query\"])\n ]))\n : _createCommentVNode(\"\", true)\n ], 2),\n (_unref(workouts).length === 0)\n ? (_openBlock(), _createBlock(NoWorkouts, { key: 0 }))\n : _createCommentVNode(\"\", true),\n _hoisted_27\n ]))\n}\n}\n\n})","import script from \"./WorkoutsList.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./WorkoutsList.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./WorkoutsList.vue?vue&type=style&index=0&id=0f8ea7b0&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-0f8ea7b0\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-57ec0168\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n key: 0,\n id: \"workouts\",\n class: \"view\"\n}\nconst _hoisted_2 = { class: \"container workouts-container\" }\nconst _hoisted_3 = { class: \"display-filters\" }\nconst _hoisted_4 = { class: \"list-container\" }\n\nimport { ComputedRef, computed, ref } from 'vue'\n import { useI18n } from 'vue-i18n'\n\n import WorkoutsFilters from '@/components/Workouts/WorkoutsFilters.vue'\n import WorkoutsList from '@/components/Workouts/WorkoutsList.vue'\n import { AUTH_USER_STORE, SPORTS_STORE } from '@/store/constants'\n import { ISport, ITranslatedSport } from '@/types/sports'\n import { IAuthUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { translateSports } from '@/utils/sports'\n\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'WorkoutsView',\n setup(__props) {\n\n const { t } = useI18n()\n const store = useStore()\n\n const authUser: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.AUTH_USER_PROFILE]\n )\n const sports: ComputedRef = computed(\n () => store.getters[SPORTS_STORE.GETTERS.SPORTS]\n )\n const translatedSports: ComputedRef = computed(() =>\n translateSports(sports.value, t)\n )\n const hiddenFilters = ref(true)\n\n function toggleFilters() {\n hiddenFilters.value = !hiddenFilters.value\n }\n\nreturn (_ctx: any,_cache: any) => {\n return (_unref(authUser).username)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"filters-container\", { hidden: hiddenFilters.value }])\n }, [\n _createVNode(WorkoutsFilters, {\n sports: _unref(translatedSports),\n authUser: _unref(authUser),\n onFilter: toggleFilters\n }, null, 8, [\"sports\", \"authUser\"])\n ], 2),\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", { onClick: toggleFilters }, [\n _createElementVNode(\"i\", {\n class: _normalizeClass(`fa fa-caret-${hiddenFilters.value ? 'down' : 'up'}`),\n \"aria-hidden\": \"true\"\n }, null, 2),\n _createElementVNode(\"span\", null, _toDisplayString(_ctx.$t(`workouts.${hiddenFilters.value ? 'DISPLAY' : 'HIDE'}_FILTERS`)), 1)\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_4, [\n _createVNode(WorkoutsList, {\n user: _unref(authUser),\n sports: _unref(translatedSports)\n }, null, 8, [\"user\", \"sports\"])\n ])\n ])\n ]))\n : _createCommentVNode(\"\", true)\n}\n}\n\n})","import script from \"./WorkoutsView.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./WorkoutsView.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./WorkoutsView.vue?vue&type=style&index=0&id=57ec0168&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-57ec0168\"]])\n\nexport default __exports__","let urlAlphabet =\n 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict'\nlet customAlphabet = (alphabet, defaultSize = 21) => {\n return (size = defaultSize) => {\n let id = ''\n let i = size\n while (i--) {\n id += alphabet[(Math.random() * alphabet.length) | 0]\n }\n return id\n }\n}\nlet nanoid = (size = 21) => {\n let id = ''\n let i = size\n while (i--) {\n id += urlAlphabet[(Math.random() * 64) | 0]\n }\n return id\n}\nmodule.exports = { nanoid, customAlphabet }\n"],"names":["isMergeableObject","value","isNonNullObject","isSpecial","stringValue","Object","prototype","toString","call","isReactElement","canUseSymbol","Symbol","for","REACT_ELEMENT_TYPE","$$typeof","emptyTarget","val","Array","isArray","cloneUnlessOtherwiseSpecified","options","clone","deepmerge","defaultArrayMerge","target","source","concat","map","element","getMergeFunction","key","customMerge","getEnumerableOwnPropertySymbols","getOwnPropertySymbols","filter","symbol","propertyIsEnumerable","getKeys","keys","propertyIsOnObject","object","property","_","propertyIsUnsafe","hasOwnProperty","mergeObject","destination","forEach","arrayMerge","sourceIsArray","targetIsArray","sourceAndTargetTypesMatch","all","array","Error","reduce","prev","next","deepmerge_1","module","exports","defineProperty","attributeNames","elementNames","Map","__assign","this","assign","t","s","i","n","arguments","length","p","apply","__createBinding","create","o","m","k","k2","undefined","enumerable","get","__setModuleDefault","v","__importStar","mod","__esModule","result","ElementType","entities_1","foreignNames_1","unencodedElements","Set","formatAttributes","attributes","opts","_a","_b","xmlMode","emptyAttrs","decodeEntities","encodeXML","replace","join","singleTag","render","node","nodes","output","renderNode","type","Root","children","Directive","Doctype","renderDirective","Comment","renderComment","CDATA","renderCdata","Script","Style","Tag","renderTag","Text","renderText","foreignModeIntegrationPoints","foreignElements","elem","name","parent","has","tag","attribs","selfClosingTags","data","isTag","desc","getOwnPropertyDescriptor","writable","configurable","__exportStar","DomHandler","domelementtype_1","node_1","reWhitespace","defaultOpts","normalizeWhitespace","withStartIndices","withEndIndices","callback","elementCB","dom","root","Document","done","tagStack","lastNode","parser","onparserinit","onreset","onend","handleCallback","onerror","error","onclosetag","pop","endIndex","onopentag","Element","addNode","push","ontext","oncomment","oncommentend","oncdatastart","text","NodeWithChildren","oncdataend","onprocessinginstruction","ProcessingInstruction","previousSibling","startIndex","__extends","extendStatics","d","b","setPrototypeOf","__proto__","TypeError","String","__","constructor","cloneNode","hasChildren","isDocument","isDirective","isComment","isText","isCDATA","DataNode","Node","nodeTypes","set","recursive","_super","_this","namespace","prefix","cloneChildren","clone_1","child","clone_2","clone_3","instruction","sourceCodeLocation","childs","getFeed","stringify_1","legacy_1","doc","feedRoot","getOneElement","isValidFeed","getAtomFeed","getRssFeed","feed","items","getElementsByTagName","item","entry","media","getMediaElements","addConditionally","href","link","description","fetch","pubDate","Date","updated","substr","id","MEDIA_KEYS_STRING","MEDIA_KEYS_INT","where","medium","isDefault","_i","MEDIA_KEYS_STRING_1","attrib","MEDIA_KEYS_INT_1","parseInt","expression","tagName","recurse","textContent","trim","obj","prop","uniqueSort","compareDocumentPosition","removeSubsets","domhandler_1","idx","lastIndexOf","splice","ancestor","includes","nodeA","nodeB","aParents","bParents","current","unshift","maxIdx","Math","min","sharedParent","siblings","aSibling","bSibling","indexOf","arr","sort","a","relative","getElementsByTagType","getElementById","getElements","testElement","querying_1","Checks","tag_name","tag_type","tag_contains","getAttribCheck","combineFuncs","compileTest","funcs","test","limit","Infinity","findOne","removeElement","replaceElement","replacement","appendChild","sibling","append","currNext","prependChild","prepend","findAll","existsOne","findOneChild","find","nodes_1","checked","some","stack","shift","__importDefault","innerText","getText","getInnerHTML","getOuterHTML","dom_serializer_1","default","prevElementSibling","nextElementSibling","getName","hasAttrib","getAttributeValue","getSiblings","getParent","getChildren","emptyArray","decodeHTML","decodeHTMLStrict","decodeXML","entities_json_1","legacy_json_1","xml_json_1","decode_codepoint_1","strictEntityRe","getStrictDecoder","getReplacer","str","sorter","charAt","secondChar","slice","legacy","j","re","RegExp","replacer","decode_json_1","fromCodePoint","codePoint","fromCharCode","decodeCodePoint","escapeUTF8","escape","encodeNonAsciiHTML","encodeHTML","inverseXML","getInverseObj","xmlReplacer","getInverseReplacer","getASCIIEncoder","inverseHTML","htmlReplacer","inverse","single","multiple","start","end","charCodeAt","count","getInverse","reNonASCII","getCodePoint","codePointAt","c","singleCharReplacer","toUpperCase","reEscapeChars","decodeXMLStrict","decodeHTML5Strict","decodeHTML4Strict","decodeHTML5","decodeHTML4","encodeHTML5","encodeHTML4","encode","decodeStrict","decode","decode_1","encode_1","level","encode_2","decode_2","string","parseFeed","FeedHandler","FeedItemMediaMedium","FeedItemMediaExpression","DomUtils","Parser_1","getAttribute","url","fileSize","bitrate","framerate","samplingrate","channels","duration","height","width","lang","what","tmp","handler","Parser","Tokenizer_1","formTags","pTag","openImpliesClose","tr","th","td","body","li","h1","h2","h3","h4","h5","h6","select","input","button","datalist","textarea","option","optgroup","dd","dt","address","article","aside","blockquote","details","div","dl","fieldset","figcaption","figure","footer","form","header","hr","main","nav","ol","pre","section","table","ul","rt","rp","tbody","tfoot","voidElements","foreignContextElements","htmlIntegrationElements","reNameEnd","cbs","_c","_d","_e","tagname","attribname","attribvalue","foreignContext","lowerCaseTagNames","lowerCaseTags","lowerCaseAttributeNames","tokenizer","Tokenizer","updatePosition","initialOffset","sectionStart","getAbsoluteIndex","onopentagname","toLowerCase","el","onopentagend","closeCurrentTag","pos","onselfclosingtag","recognizeSelfClosing","onattribname","onattribdata","onattribend","quote","onattribute","getInstructionName","search","ondeclaration","name_1","name_2","oncdata","_f","recognizeCDATA","err","reset","parseComplete","write","chunk","pause","resume","parseChunk","whitespace","isASCIIAlpha","ifElseState","upper","SUCCESS","FAILURE","lower","_state","_index","consumeSpecialNameChar","NEXT_STATE","stateBeforeCdata1","stateBeforeCdata2","stateBeforeCdata3","stateBeforeCdata4","stateBeforeCdata5","stateBeforeScript1","stateBeforeScript2","stateBeforeScript3","stateBeforeScript4","stateAfterScript1","stateAfterScript2","stateAfterScript3","stateAfterScript4","stateBeforeStyle1","stateBeforeStyle2","stateBeforeStyle3","stateAfterStyle1","stateAfterStyle2","stateAfterStyle3","stateBeforeSpecialT","stateBeforeTitle1","stateBeforeTitle2","stateBeforeTitle3","stateAfterSpecialTEnd","stateAfterTitle1","stateAfterTitle2","stateAfterTitle3","stateBeforeEntity","stateBeforeNumericEntity","buffer","bufferOffset","baseState","special","running","ended","parse","finish","stateText","getSection","isTagStartChar","stateBeforeTagName","stateInTagName","emitToken","stateBeforeClosingTagName","stateInClosingTagName","stateAfterClosingTagName","stateBeforeAttributeName","stateInSelfClosingTag","stateInAttributeName","stateAfterAttributeName","stateBeforeAttributeValue","handleInAttributeValue","stateInAttributeValueDoubleQuotes","stateInAttributeValueSingleQuotes","stateInAttributeValueNoQuotes","stateBeforeDeclaration","stateInDeclaration","stateInProcessingInstruction","stateBeforeComment","stateInComment","stateInSpecialComment","substring","stateAfterComment1","stateAfterComment2","stateBeforeCdata6","stateInCdata","stateAfterCdata1","stateAfterCdata2","stateBeforeSpecialS","stateBeforeSpecialSEnd","stateBeforeSpecialLast","stateAfterSpecialLast","sectionStartOffset","parseFixedEntity","entity","emitPartial","parseLegacyEntity","stateInNamedEntity","decodeNumericEntity","offset","base","strict","parsed","stateInNumericEntity","stateInHexEntity","cleanup","handleTrailingData","RssHandler","DefaultHandler","createDomStream","parseDOM","parseDocument","cb","elementCb","FeedHandler_1","isObject","isPlainObject","ctor","prot","factory","isSpace","collectCharacters","regEx","chars","match","exec","descriptors","currentDescriptor","state","inputLength","regexLeadingSpaces","regexLeadingCommasOrSpaces","regexLeadingNotSpaces","regexTrailingCommas","regexNonNegativeInteger","regexFloatingPoint","candidates","parseDescriptors","tokenize","w","h","lastChar","intVal","floatVal","pError","candidate","parseFloat","console","log","x","isColorSupported","bold","dim","italic","underline","hidden","strikethrough","black","red","green","yellow","blue","magenta","cyan","white","gray","bgBlack","bgRed","bgGreen","bgYellow","bgBlue","bgMagenta","bgCyan","bgWhite","createColors","Container","AtRule","defaults","super","proxyOf","registerAtRule","Rule","isClean","my","Declaration","cleanSource","markDirtyUp","each","index","iterator","getIterator","indexes","walk","e","addToError","walkDecls","walkRules","selector","walkAtRules","walkComments","normalize","last","markDirty","reverse","first","cleanRaws","keepBetween","insertBefore","exist","add","existIndex","insertAfter","removeChild","removeAll","replaceValues","pattern","decl","props","fast","every","condition","sample","processed","rebuild","raws","before","getProxyProcessor","startsWith","args","toProxy","other","lastEach","registerParse","dependant","registerRule","registerRoot","pico","terminalHighlight","CssSyntaxError","message","line","column","file","plugin","reason","endLine","endColumn","setMessage","captureStackTrace","showSourceCode","color","css","mark","lines","split","max","maxWidth","number","gutter","spacing","code","variable","LazyResult","Processor","toResult","lazy","stringify","registerLazyResult","registerProcessor","PreviousMap","Input","fromJSON","json","inputs","ownInputs","inputHydrated","inputId","SourceMapConsumer","SourceMapGenerator","fileURLToPath","pathToFileURL","resolve","isAbsolute","nanoid","fromOffsetCache","sourceMapAvailable","Boolean","pathAvailable","hasBOM","from","consumer","mapResolve","fromOffset","lastLine","lineToIndex","prevIndex","l","mid","col","origin","to","fromUrl","originalPositionFor","URL","sourceRoot","mapFile","protocol","sourceContentFor","toJSON","consumerCache","registerInput","MapGenerator","Result","TYPE_TO_CLASS_NAME","document","atrule","rule","comment","PLUGIN_PROPS","postcssPlugin","prepare","Once","DeclarationExit","RuleExit","AtRuleExit","CommentExit","RootExit","DocumentExit","OnceExit","NOT_VISITORS","CHILDREN","isPromise","then","getEvents","toStack","events","eventIndex","visitors","visitorIndex","cleanMarks","postcss","processor","stringified","inline","syntax","helpers","plugins","toStringTag","content","sync","messages","warnings","onFulfilled","onRejected","async","catch","finally","onFinally","Promise","reject","processing","runAsync","getAsyncError","promise","runOnRoot","prepareVisitors","hasListener","walkSync","listeners","subRoot","visitSync","stringifier","generate","event","visitor","lastPlugin","handleError","roots","postcssVersion","visitTick","version","visit","registerPostcss","list","separators","func","inQuote","prevQuote","letter","space","spaces","comma","dirname","sep","cssString","mapOpts","usesFileUrls","absolute","isMap","previous","previousMaps","isInline","annotation","isSourcesContent","sourcesContent","withContent","clearAnnotation","setSourcesContent","already","toFileUrl","toUrl","path","setSourceContent","applyPrevMaps","applySourceMap","isAnnotation","toBase64","Buffer","window","btoa","unescape","encodeURIComponent","addAnnotation","outputFile","eol","generateMap","generateString","fromSourceMap","addMapping","generated","original","encodeURI","sourcePath","noSource","mapping","semicolon","NoWorkResult","_processor","_css","_opts","_map","self","generatedCSS","generatedMap","_root","Stringifier","cloned","rangeBy","warn","remove","overrides","cloneBefore","cloneAfter","replaceWith","bookmark","foundSelf","after","raw","defaultType","between","fixed","emitInputs","inputsNextIndex","positionInside","positionBy","word","proxyCache","Proxy","postcssNode","SAFE_COMMENT_NEIGHBOR","empty","findLastWithPosition","tokens","token","customProperty","createTokenizer","endOfFile","nextToken","freeSemicolon","emptyRule","endFile","init","getPosition","left","right","colon","bracket","brackets","back","unclosedBracket","unknownWord","spacesAndCommentsFromEnd","firstSpaces","precheckMissedSemicolon","important","stringFrom","spacesFromEnd","cache","hasWord","checkMissedSemicolon","unnamedAtrule","open","params","afterName","spacesAndCommentsFromStart","unexpectedClose","unclosedBlock","ownSemicolon","clean","lastTokenType","entries","doubleColon","founded","Warning","initializer","warningPrinted","creator","LANG","transformer","process","processOpts","pluginOpts","atRule","existsSync","readFileSync","fromBase64","atob","loadAnnotation","startWith","loadMap","getAnnotationURL","sourceMapString","comments","decodeInline","baseCharsetUri","baseUri","charsetUri","uri","decodeURIComponent","lastMatch","encoding","loadFile","JSON","prevPath","mappings","_mappings","sections","use","normalized","warning","ignore","selectors","values","DEFAULT_RAW","indent","beforeDecl","beforeRule","beforeOpen","beforeClose","beforeComment","emptyBody","commentLeft","commentRight","capitalize","builder","rawValue","block","own","detect","rawCache","beforeAfter","method","rawSemicolon","rawEmptyBody","rawIndent","parts","rawBeforeComment","rawBeforeDecl","rawBeforeRule","rawBeforeClose","rawBeforeOpen","rawColon","buf","depth","step","SINGLE_QUOTE","DOUBLE_QUOTE","BACKSLASH","SLASH","NEWLINE","SPACE","FEED","TAB","CR","OPEN_SQUARE","CLOSE_SQUARE","OPEN_PARENTHESES","CLOSE_PARENTHESES","OPEN_CURLY","CLOSE_CURLY","SEMICOLON","ASTERISK","COLON","AT","RE_AT_END","RE_WORD_END","RE_BAD_BRACKET","RE_HEX_ESCAPE","escaped","escapePos","currentToken","valueOf","ignoreErrors","returned","position","unclosed","ignoreUnclosed","controlChar","lastIndex","printed","range","opt","htmlparser","escapeStringRegexp","parseSrcset","postcssParse","mediaTags","vulnerableTags","isEmptyObject","stringifySrcset","parsedSrcset","part","sanitizeHtml","VALID_HTML_ATTRIBUTE_NAME","html","_recursing","tempResult","Frame","that","tagPosition","mediaChildren","updateParentNodeText","parentFrame","updateParentNodeMediaChildren","htmlParserDefaults","allowedTags","allowVulnerableTags","nonTextTagsArray","nonTextTags","allowedAttributesMap","allowedAttributesGlobMap","allowedAttributes","globRegex","allowedClassesMap","allowedClassesGlobMap","allowedClassesRegexMap","allowedClasses","classes","transformTagsMap","transformTagsAll","skipMap","transformMap","skipText","skipTextDepth","transformTags","transform","transFun","simpleTransform","addedText","initializeState","enforceHtmlBoundary","frame","skip","hasText","transformedTag","disallowedTagsMode","nestingLimit","allowedScriptHostnames","allowedScriptDomains","passedAllowedAttributesMapCheck","newValue","splitStrArray","allowedSchemesAppliedToAttributes","naughtyHref","allowed","parseUrl","allowedHostname","hostname","allowedDomain","domain","endsWith","isRelativeUrl","allowIframeRelativeUrls","allowedIframeHostnames","allowedIframeDomains","evil","allowedSpecificClasses","allowedWildcardClasses","allowedSpecificClassesGlob","allowedSpecificClassesRegex","allowedWildcardClassesGlob","allowedClassesGlobs","filterClasses","abstractSyntaxTree","filteredAST","filterCss","allowedStyles","stringifyStyleAttributes","escapeHtml","selfClosing","textFilter","lastFrame","exclusiveFilter","firstIndex","matches","allowProtocolRelative","scheme","allowedSchemesByTag","allowedSchemes","astRules","selectedRule","filterDeclarations","extractedAttributes","attrObject","allowedDeclarationsList","attributeObject","matchesRegex","regularExpression","allowedGlobs","clss","glob","img","newTagName","newAttribs","merge","_hoisted_1","_hoisted_2","_hoisted_3","class","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","_hoisted_17","_hoisted_18","_hoisted_19","_hoisted_20","_hoisted_21","_hoisted_22","_hoisted_23","_hoisted_24","_hoisted_25","_hoisted_26","_hoisted_27","_hoisted_28","_hoisted_29","_hoisted_30","_hoisted_31","_hoisted_32","_hoisted_33","_hoisted_34","_hoisted_35","_defineComponent","__name","authUser","sports","isCreation","loading","workout","setup","__props","useI18n","store","useStore","router","useRouter","toRefs","translatedSports","computed","translateSports","sport_id","appConfig","getters","ROOT_STORE","fileSizeLimit","max_single_file_size","getReadableFileSize","gpx_limit_import","zipSizeLimit","max_zip_file_size","errorMessages","workoutForm","reactive","title","notes","workoutDate","workoutTime","workoutDurationHour","workoutDurationMinutes","workoutDurationSeconds","workoutDistance","withGpx","ref","with_gpx","gpxFile","formErrors","payloadErrorMessages","updateNotes","updateWithGpx","updateFile","files","formatWorkoutForm","workoutDateTime","formatWorkoutDate","getDateWithTZ","workout_date","timezone","imperial_units","convertDistance","distance","toFixed","workout_time","isDistanceInvalid","isDurationInvalid","formatPayload","payload","updateWorkout","dispatch","WORKOUTS_STORE","workoutId","errorMessage","commit","onCancel","go","invalidateForm","onMounted","onUnmounted","watch","newWorkout","previousWorkout","_ctx","_cache","_component_CustomTextArea","_resolveComponent","_component_ErrorMessage","_component_Loader","_component_Card","_openBlock","_createElementBlock","_normalizeClass","_unref","_createVNode","_withCtx","_createTextVNode","_toDisplayString","$t","_createElementVNode","errors","onSubmit","_withModifiers","disabled","onClick","_createCommentVNode","_withDirectives","required","onInvalid","$event","_Fragment","_renderList","sport","translatedLabel","_vModelSelect","accept","onInput","_vModelText","errored","placeholder","minlength","maxlength","onUpdateValue","_createBlock","__exports__","SPORTS_STORE","AUTH_USER_STORE","workoutData","WorkoutEdition","route","useRoute","onBeforeMount","newWorkoutId","_withScopeId","_pushScopeId","_popScopeId","workoutObject","emits","emit","downloadGpx","authApi","responseType","response","gpxFileUrl","createObjectURL","Blob","gpxLink","createElement","setAttribute","click","_component_SportImage","_component_router_link","inactive","previousUrl","$router","label","segmentId","nextUrl","recordType","records","record","record_type","directions","convertDegreeToDirection","angle","floor","weather","useImperialUnits","getWindDirectionTitle","windBearing","_component_Distance","wind","unitFrom","digits","displayUnit","style","_normalizeStyle","weatherStart","weatherEnd","src","icon","alt","Number","temperature","humidity","WeatherWind","displayHARecord","withPause","pauses","moving","WorkoutRecord","strong","aveSpeed","speed","maxSpeed","maxAlt","minAlt","ascent","descent","WorkoutWeather","$","nodeVal","get1","properties","val1","$num","isNaN","num1","getMulti","propertyNames","isElement","nodeType","getLineStyle","lineStyle","stroke","opacity","getExtensions","childNodes","abbreviateName","nodeName","parseNumeric","num","coordPair$1","ll","time","coordinates","extendedValues","extractProperties","extensions","getElementsByTagNameNS","parentNode","links","getPoints$1","pointname","pts","times","plural","fill","getRoute","_gpxType","geometry","getTrack","segments","track","extractedLines","segment","multi","coordinateProperties","getPoint","pair","gpxGen","feature","waypoint","point","gpx","features","PI","debounce","fn","timeout","context","clearTimeout","setTimeout","capitalizeFirstLetter","propsBinder","methods","leafletElement","setMethodName","newVal","oldVal","remapEvents","contextAttrs","attrName","eventName","toLocaleLowerCase","resetWebpackIcon","Icon","modules","Default","_getIconUrl","mergeOptions","iconRetinaUrl","iconUrl","shadowUrl","provideLeafletWrapper","methodName","wrapped","wrapper","updateLeafletWrapper","leafletMethod","WINDOW_OR_GLOBAL","g","global","GLOBAL_LEAFLET_OPT","props$1","pane","attribution","custom","layerType","visible","setup$1","leafletRef","addLayer","removeLayer","componentOptions","componentMethods","addThisLayer","leafletObject","removeThisLayer","setAttribution","old","attributionControl","$parent","removeAttribution","addAttribution","setName","setLayerType","setVisible","isVisible","bindPopup","bindTooltip","unbindTooltip","tooltip","getTooltip","unbindPopup","popup","getPopup","updateVisibleProp","ready","slots","display","props$2","interactive","bubblingMouseEvents","props$3","weight","lineCap","lineJoin","dashArray","dashOffset","fillColor","fillOpacity","fillRule","className","props$4","latLng","radius","props$6","setup$6","setPosition","render$1","script$2","disableClickPropagation","disableScrollPropagation","useGlobalLeaflet","registerControl","Control","DomEvent","L","LControl","extend","onAdd","$slots","props$8","collapsed","autoZIndex","hideSingleBase","sortLayers","sortFunction","Function","setup$8","controlOptions","layer","addBaseLayer","addOverlay","script$4","registerLayerControl","control","layers","props$b","setup$b","layerOptions","layerMethods","props$d","geojson","setup$d","layerGroupMethods","setGeojson","clearLayers","addData","getGeoJSONData","toGeoJSON","getBounds","script$8","geoJSON","attrs","on","props$e","zIndex","tileSize","noWrap","minZoom","maxZoom","setup$e","props$f","iconSize","iconAnchor","popupAnchor","tooltipAnchor","shadowRetinaUrl","shadowSize","shadowAnchor","bgPos","script$a","canSetParentHtml","setParentHtml","setIcon","onDomEvent","offDomEvent","divIcon","iconObject","createIcon","recreationNeeded","htmlSwapNeeded","elHtml","innerHTML","scheduleCreateIcon","scheduleHtmlSwap","setIconUrl","setIconRetinaUrl","setIconSize","setIconAnchor","setPopupAnchor","setTooltipAnchor","setShadowUrl","setShadowRetinaUrl","setShadowAnchor","setBgPos","setClassName","setHtml","lDivIcon","lIcon","off","observer","MutationObserver","observe","childList","characterData","subtree","script$c","layerGroup","script$d","center","bounds","maxBounds","zoom","paddingBottomRight","paddingTopLeft","padding","worldCopyJump","crs","maxBoundsViscosity","inertia","inertiaDeceleration","inertiaMaxSpeed","easeLinearity","zoomAnimation","zoomAnimationThreshold","fadeAnimation","markerZoomAnimation","noBlockingAnimations","blueprint","layersToAdd","layersInControl","eventHandlers","moveEndHandler","getZoom","getCenter","overlayAddHandler","overlayRemoveHandler","CRS","latLngBounds","beforeMapMount","optionsCrs","EPSG3857","layerControl","_leaflet_id","lControlLayer","lControl","addControl","setZoom","animate","setPaddingBottomRight","setPaddingTopLeft","setPadding","setCrs","prevBounds","fitBounds","setBounds","newBounds","isValid","oldBounds","lastSetBounds","boundsChanged","equals","fitBoundsOptions","setCenter","newCenter","oldCenter","lastSetCenter","lat","lng","panTo","props$h","draggable","zIndexOffset","setup$g","setDraggable","dragging","enable","disable","latLngSync","latlng","setLatLng","oldLatLng","getLatLng","script$e","getElement","newIcon","marker","props$i","latLngs","smoothFactor","noClip","props$j","props$k","props$n","tms","subdomains","detectRetina","setup$m","gridLayerOptions","gridLayerMethods","script$j","tileLayer","markerCoordinates","isStart","latitude","LMarker","longitude","LIcon","workoutMap","geoJson","getGeoJson","startMarkerCoordinates","chartData","endMarkerCoordinates","isFullscreen","gpxContent","jsonData","DOMParser","parseFromString","resetZoom","toggleFullscreen","_component_VFullscreen","modelValue","LMap","ref_key","onReady","LControlLayers","LTileLayer","getApiUrl","map_attribution","LGeoJson","LLayerGroup","CustomMarker","displaySegment","displayModal","getWorkoutObject","getWorkoutObjectUrl","previous_workout","next_workout","urls","date_format","ave_speed","max_alt","max_speed","min_alt","segment_id","weather_end","weather_start","updateDisplayModal","deleteWorkout","newSegmentId","_component_Modal","onConfirmAction","onCancelAction","WorkoutCardTitle","onDisplayModal","WorkoutMap","WorkoutData","display_ascent","getOrCreateLegendList","legendContainer","listContainer","querySelector","htmlLegendPlugin","afterUpdate","chart","containerID","firstChild","legendItems","legend","labels","generateLabels","onclick","datasetIndex","setDatasetVisibility","isDatasetVisible","update","checkBox","createTextNode","boxSpan","background","fillStyle","borderColor","strokeStyle","displayDistance","beginElevationAtZero","datasets","getDatasets","fromKmUnit","getUnitTo","fromMUnit","distance_labels","duration_labels","elevation","responsive","maintainAspectRatio","animation","layout","top","scales","grid","drawOnChartArea","ticks","formatDuration","ySpeed","yElevation","beginAtZero","elements","pointStyle","pointRadius","datalabels","interaction","intersect","mode","callbacks","dataset","formattedValue","yAxisID","tooltipItems","emitCoordinates","dataIndex","htmlLegend","lineChartProps","useLineChart","updateDisplayDistance","toISOString","emitEmptyCoordinates","units","defaultTarget","LineChart","_mergeProps","onMouseleave","tlds","utlds","numeric","ascii","alpha","asciinumeric","alphanumeric","emoji","slashscheme","registerGroup","groups","addToGroups","flags","group","flagsForToken","State","jr","jd","accepts","nextState","regex","_nextState","exactOnly","ta","tt","regexp","ts","len","templateState","allFlags","WORD","UWORD","LOCALHOST","TLD","UTLD","SCHEME","SLASH_SCHEME","NUM","WS","NL$1","OPENBRACE","OPENBRACKET","OPENANGLEBRACKET","OPENPAREN","CLOSEBRACE","CLOSEBRACKET","CLOSEANGLEBRACKET","CLOSEPAREN","AMPERSAND","APOSTROPHE","BACKTICK","CARET","COMMA","DOLLAR","DOT","EQUALS","EXCLAMATION","HYPHEN","PERCENT","PIPE","PLUS","POUND","QUERY","QUOTE","SEMI","TILDE","UNDERSCORE","EMOJI$1","SYM","tk","freeze","NL","EMOJI","ASCII_LETTER","LETTER","DIGIT","EMOJI_VARIATION","EMOJI_JOINER","init$2","customSchemes","_tr","_tr2","_tr3","_tr4","_tt","_tr5","Start","Num","Word","UWord","Ws","Emoji","EmojiJoiner","wordjr","uwordjr","fastts","tld","utld","_i2","_ref","_ref2","sch","optionalSlashSlash","run$1","iterable","stringToArray","charCount","cursor","charCursor","tokenLength","latestAccepting","sinceAccepts","charsSinceAccepts","second","char","defaultt","_inheritsLoose","subClass","superClass","_setPrototypeOf","defaultProtocol","format","noop","formatHref","nl2br","rel","validate","truncate","ignoreTags","Options","defaultRender","ignoredTags","uppercaseIgnoredTags","ir","check","operator","isCallable","getObj","renderFn","MultiToken","createTokenClass","Token","_MultiToken","isLink","toHref","toFormattedString","formatted","toFormattedHref","toObject","toFormattedObject","eventListeners","Email","Nl","Url","hasProtocol","makeState","arg","init$1","qsAccepting","qsNonAccepting","localpartAccepting","Localpart","Domain","Scheme","SlashScheme","LocalpartAt","LocalpartDot","EmailDomain","EmailDomainDot","Email$1","EmailDomainHyphen","EmailColon","DomainHyphen","DomainDot","DomainDotTld","DomainDotTldColon","DomainDotTldColonPort","Url$1","UrlNonaccept","UriPrefix","SlashSchemeColon","SlashSchemeColonSlash","UrlOpenbrace","UrlOpenbracket","UrlOpenanglebracket","UrlOpenparen","UrlOpenbraceQ","UrlOpenbracketQ","UrlOpenanglebracketQ","UrlOpenparenQ","UrlOpenbraceSyms","UrlOpenbracketSyms","UrlOpenanglebracketSyms","UrlOpenparenSyms","run","multis","textTokens","secondState","multiLength","initMultiToken","Multi","subtokens","startIdx","endIdx","INIT","scanner","tokenQueue","pluginQueue","initialized","HTML5NamedCharRefs","amp","gt","lt","nbsp","quot","HEXCHARCODE","CHARCODE","NAMED","EntityParser","named","WSP","ALPHA","CRLF","isAlpha","preprocessInput","EventedTokenizer","delegate","entityParser","tagNameBuffer","states","beforeData","peek","isIgnoredEndTag","consume","transitionTo","beginData","markTagStart","appendToData","consumeCharRef","finishData","tagOpen","beginStartTag","appendToTagName","markupDeclarationOpen","beginComment","maybeDoctype","beginDoctype","doctype","beforeDoctypeName","appendToDoctypeName","doctypeName","endDoctype","afterDoctypeName","nextSixChars","isPublic","isSystem","afterDoctypePublicKeyword","doctypePublicIdentifierDoubleQuoted","appendToDoctypePublicIdentifier","doctypePublicIdentifierSingleQuoted","afterDoctypePublicIdentifier","betweenDoctypePublicAndSystemIdentifiers","doctypeSystemIdentifierDoubleQuoted","appendToDoctypeSystemIdentifier","doctypeSystemIdentifierSingleQuoted","afterDoctypeSystemIdentifier","commentStart","finishComment","appendToCommentData","commentStartDash","commentEndDash","commentEnd","finishTag","endTagName","beforeAttributeName","reportSyntaxError","beginAttribute","appendToAttributeName","attributeName","beginAttributeValue","finishAttributeValue","afterAttributeName","beforeAttributeValue","appendToAttributeValue","attributeValueDoubleQuoted","attributeValueSingleQuoted","attributeValueUnquoted","afterAttributeValueQuoted","selfClosingStartTag","markTagAsSelfClosing","endTagOpen","beginEndTag","tokenizePart","tokenizeEOF","flushData","startLine","startColumn","_currentAttribute","currentAttribute","addLocInfo","loc","publicIdentifier","systemIdentifier","isQuoted","syntaxError","LinkifyResult","StartTag","EndTag","Chars","linkifyHtml","linkifiedTokens","linkified","isIgnored","preskipLen","skipTagTokens","linkifedChars","linkifyChars","_token","rendered","attributeArrayToStrings","escapeText","skippedTokens","stackCount","attributesToString","escapeAttr","attr","attrStrs","linkifyAndClean","workout_id","updateCoordinates","WorkoutDetail","WorkoutChart","onGetCoordinates","WorkoutSegments","WorkoutNotes","NotFound","toUnit","query","handleFilterChange","onFilter","onClearFilter","newQuery","$route","onChange","sports_list","distance_from","distance_to","duration_from","duration_to","ave_speed_from","ave_speed_to","max_speed_from","max_speed_to","user","orderByList","workouts","pagination","currentLanguage","getWorkoutsQuery","hoverWorkoutId","loadWorkouts","getConvertedPayload","reloadWorkouts","queryParam","queryValue","workoutQuery","getQuery","defaultOrder","defaultSort","workoutsPayloadKeys","convertedPayload","onHover","total","FilterSelects","sortList","order_by","onUpdateSelect","Pagination","smaller","getSportLabel","getSportColor","onMouseover","StaticMap","formatDate","NoWorkouts","hiddenFilters","toggleFilters","username","WorkoutsFilters","WorkoutsList","urlAlphabet","customAlphabet","alphabet","defaultSize","size","random"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/workouts.bbc7589b.js","mappings":"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","sources":["webpack://fittrackee_client/./node_modules/deepmerge/dist/cjs.js","webpack://fittrackee_client/./node_modules/dom-serializer/lib/foreignNames.js","webpack://fittrackee_client/./node_modules/dom-serializer/lib/index.js","webpack://fittrackee_client/./node_modules/domelementtype/lib/index.js","webpack://fittrackee_client/./node_modules/domhandler/lib/index.js","webpack://fittrackee_client/./node_modules/domhandler/lib/node.js","webpack://fittrackee_client/./node_modules/domutils/lib/feeds.js","webpack://fittrackee_client/./node_modules/domutils/lib/helpers.js","webpack://fittrackee_client/./node_modules/domutils/lib/index.js","webpack://fittrackee_client/./node_modules/domutils/lib/legacy.js","webpack://fittrackee_client/./node_modules/domutils/lib/manipulation.js","webpack://fittrackee_client/./node_modules/domutils/lib/querying.js","webpack://fittrackee_client/./node_modules/domutils/lib/stringify.js","webpack://fittrackee_client/./node_modules/domutils/lib/traversal.js","webpack://fittrackee_client/./node_modules/entities/lib/decode.js","webpack://fittrackee_client/./node_modules/entities/lib/decode_codepoint.js","webpack://fittrackee_client/./node_modules/entities/lib/encode.js","webpack://fittrackee_client/./node_modules/entities/lib/index.js","webpack://fittrackee_client/./node_modules/escape-string-regexp/index.js","webpack://fittrackee_client/./node_modules/htmlparser2/lib/FeedHandler.js","webpack://fittrackee_client/./node_modules/htmlparser2/lib/Parser.js","webpack://fittrackee_client/./node_modules/htmlparser2/lib/Tokenizer.js","webpack://fittrackee_client/./node_modules/htmlparser2/lib/index.js","webpack://fittrackee_client/./node_modules/is-plain-object/dist/is-plain-object.js","webpack://fittrackee_client/./node_modules/parse-srcset/src/parse-srcset.js","webpack://fittrackee_client/./node_modules/picocolors/picocolors.browser.js","webpack://fittrackee_client/./node_modules/postcss/lib/at-rule.js","webpack://fittrackee_client/./node_modules/postcss/lib/comment.js","webpack://fittrackee_client/./node_modules/postcss/lib/container.js","webpack://fittrackee_client/./node_modules/postcss/lib/css-syntax-error.js","webpack://fittrackee_client/./node_modules/postcss/lib/declaration.js","webpack://fittrackee_client/./node_modules/postcss/lib/document.js","webpack://fittrackee_client/./node_modules/postcss/lib/fromJSON.js","webpack://fittrackee_client/./node_modules/postcss/lib/input.js","webpack://fittrackee_client/./node_modules/postcss/lib/lazy-result.js","webpack://fittrackee_client/./node_modules/postcss/lib/list.js","webpack://fittrackee_client/./node_modules/postcss/lib/map-generator.js","webpack://fittrackee_client/./node_modules/postcss/lib/no-work-result.js","webpack://fittrackee_client/./node_modules/postcss/lib/node.js","webpack://fittrackee_client/./node_modules/postcss/lib/parse.js","webpack://fittrackee_client/./node_modules/postcss/lib/parser.js","webpack://fittrackee_client/./node_modules/postcss/lib/postcss.js","webpack://fittrackee_client/./node_modules/postcss/lib/previous-map.js","webpack://fittrackee_client/./node_modules/postcss/lib/processor.js","webpack://fittrackee_client/./node_modules/postcss/lib/result.js","webpack://fittrackee_client/./node_modules/postcss/lib/root.js","webpack://fittrackee_client/./node_modules/postcss/lib/rule.js","webpack://fittrackee_client/./node_modules/postcss/lib/stringifier.js","webpack://fittrackee_client/./node_modules/postcss/lib/stringify.js","webpack://fittrackee_client/./node_modules/postcss/lib/symbols.js","webpack://fittrackee_client/./node_modules/postcss/lib/tokenize.js","webpack://fittrackee_client/./node_modules/postcss/lib/warn-once.js","webpack://fittrackee_client/./node_modules/postcss/lib/warning.js","webpack://fittrackee_client/./node_modules/sanitize-html/index.js","webpack://fittrackee_client/./src/components/Workout/WorkoutEdition.vue?1df7","webpack://fittrackee_client/./src/components/Workout/WorkoutEdition.vue","webpack://fittrackee_client/./src/views/workouts/AddWorkout.vue?212d","webpack://fittrackee_client/./src/views/workouts/AddWorkout.vue","webpack://fittrackee_client/./src/views/workouts/EditWorkout.vue?ba9e","webpack://fittrackee_client/./src/views/workouts/EditWorkout.vue","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutCardTitle.vue?4e0b","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutCardTitle.vue","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutRecord.vue?0a89","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutRecord.vue","webpack://fittrackee_client/./src/utils/weather.ts","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WeatherWind.vue?bd35","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WeatherWind.vue","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutWeather.vue?84e1","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutWeather.vue","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutData.vue?ef29","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutData.vue","webpack://fittrackee_client/./node_modules/@tmcw/togeojson/dist/togeojson.es.mjs","webpack://fittrackee_client/./node_modules/@vue-leaflet/vue-leaflet/dist/vue-leaflet.esm.js","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutMap/CustomMarker.vue?3193","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutMap/CustomMarker.vue","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutMap/index.vue?a62d","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutMap/index.vue","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/index.vue?8ebb","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/index.vue","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutChart/legend.ts","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutChart/index.vue?65aa","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutChart/index.vue","webpack://fittrackee_client/./node_modules/linkifyjs/dist/linkify.es.js","webpack://fittrackee_client/./node_modules/linkify-html/dist/linkify-html.es.js","webpack://fittrackee_client/./src/utils/inputs.ts","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutNotes.vue?a827","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutNotes.vue","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutSegments.vue?037e","webpack://fittrackee_client/./src/components/Workout/WorkoutDetail/WorkoutSegments.vue","webpack://fittrackee_client/./src/views/workouts/Workout.vue?3305","webpack://fittrackee_client/./src/views/workouts/Workout.vue","webpack://fittrackee_client/./src/components/Workouts/WorkoutsFilters.vue?c3bc","webpack://fittrackee_client/./src/components/Workouts/WorkoutsFilters.vue","webpack://fittrackee_client/./src/components/Workouts/WorkoutsList.vue?72e6","webpack://fittrackee_client/./src/components/Workouts/WorkoutsList.vue","webpack://fittrackee_client/./src/views/workouts/WorkoutsView.vue?ee31","webpack://fittrackee_client/./src/views/workouts/WorkoutsView.vue","webpack://fittrackee_client/./node_modules/nanoid/non-secure/index.cjs"],"sourcesContent":["'use strict';\n\nvar isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n\treturn Array.isArray(val) ? [] : {}\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n\treturn (options.clone !== false && options.isMergeableObject(value))\n\t\t? deepmerge(emptyTarget(value), value, options)\n\t\t: value\n}\n\nfunction defaultArrayMerge(target, source, options) {\n\treturn target.concat(source).map(function(element) {\n\t\treturn cloneUnlessOtherwiseSpecified(element, options)\n\t})\n}\n\nfunction getMergeFunction(key, options) {\n\tif (!options.customMerge) {\n\t\treturn deepmerge\n\t}\n\tvar customMerge = options.customMerge(key);\n\treturn typeof customMerge === 'function' ? customMerge : deepmerge\n}\n\nfunction getEnumerableOwnPropertySymbols(target) {\n\treturn Object.getOwnPropertySymbols\n\t\t? Object.getOwnPropertySymbols(target).filter(function(symbol) {\n\t\t\treturn target.propertyIsEnumerable(symbol)\n\t\t})\n\t\t: []\n}\n\nfunction getKeys(target) {\n\treturn Object.keys(target).concat(getEnumerableOwnPropertySymbols(target))\n}\n\nfunction propertyIsOnObject(object, property) {\n\ttry {\n\t\treturn property in object\n\t} catch(_) {\n\t\treturn false\n\t}\n}\n\n// Protects from prototype poisoning and unexpected merging up the prototype chain.\nfunction propertyIsUnsafe(target, key) {\n\treturn propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet,\n\t\t&& !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain,\n\t\t\t&& Object.propertyIsEnumerable.call(target, key)) // and also unsafe if they're nonenumerable.\n}\n\nfunction mergeObject(target, source, options) {\n\tvar destination = {};\n\tif (options.isMergeableObject(target)) {\n\t\tgetKeys(target).forEach(function(key) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n\t\t});\n\t}\n\tgetKeys(source).forEach(function(key) {\n\t\tif (propertyIsUnsafe(target, key)) {\n\t\t\treturn\n\t\t}\n\n\t\tif (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) {\n\t\t\tdestination[key] = getMergeFunction(key, options)(target[key], source[key], options);\n\t\t} else {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n\t\t}\n\t});\n\treturn destination\n}\n\nfunction deepmerge(target, source, options) {\n\toptions = options || {};\n\toptions.arrayMerge = options.arrayMerge || defaultArrayMerge;\n\toptions.isMergeableObject = options.isMergeableObject || isMergeableObject;\n\t// cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()\n\t// implementations can use it. The caller may not replace it.\n\toptions.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified;\n\n\tvar sourceIsArray = Array.isArray(source);\n\tvar targetIsArray = Array.isArray(target);\n\tvar sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n\tif (!sourceAndTargetTypesMatch) {\n\t\treturn cloneUnlessOtherwiseSpecified(source, options)\n\t} else if (sourceIsArray) {\n\t\treturn options.arrayMerge(target, source, options)\n\t} else {\n\t\treturn mergeObject(target, source, options)\n\t}\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n\tif (!Array.isArray(array)) {\n\t\tthrow new Error('first argument should be an array')\n\t}\n\n\treturn array.reduce(function(prev, next) {\n\t\treturn deepmerge(prev, next, options)\n\t}, {})\n};\n\nvar deepmerge_1 = deepmerge;\n\nmodule.exports = deepmerge_1;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.attributeNames = exports.elementNames = void 0;\nexports.elementNames = new Map([\n [\"altglyph\", \"altGlyph\"],\n [\"altglyphdef\", \"altGlyphDef\"],\n [\"altglyphitem\", \"altGlyphItem\"],\n [\"animatecolor\", \"animateColor\"],\n [\"animatemotion\", \"animateMotion\"],\n [\"animatetransform\", \"animateTransform\"],\n [\"clippath\", \"clipPath\"],\n [\"feblend\", \"feBlend\"],\n [\"fecolormatrix\", \"feColorMatrix\"],\n [\"fecomponenttransfer\", \"feComponentTransfer\"],\n [\"fecomposite\", \"feComposite\"],\n [\"feconvolvematrix\", \"feConvolveMatrix\"],\n [\"fediffuselighting\", \"feDiffuseLighting\"],\n [\"fedisplacementmap\", \"feDisplacementMap\"],\n [\"fedistantlight\", \"feDistantLight\"],\n [\"fedropshadow\", \"feDropShadow\"],\n [\"feflood\", \"feFlood\"],\n [\"fefunca\", \"feFuncA\"],\n [\"fefuncb\", \"feFuncB\"],\n [\"fefuncg\", \"feFuncG\"],\n [\"fefuncr\", \"feFuncR\"],\n [\"fegaussianblur\", \"feGaussianBlur\"],\n [\"feimage\", \"feImage\"],\n [\"femerge\", \"feMerge\"],\n [\"femergenode\", \"feMergeNode\"],\n [\"femorphology\", \"feMorphology\"],\n [\"feoffset\", \"feOffset\"],\n [\"fepointlight\", \"fePointLight\"],\n [\"fespecularlighting\", \"feSpecularLighting\"],\n [\"fespotlight\", \"feSpotLight\"],\n [\"fetile\", \"feTile\"],\n [\"feturbulence\", \"feTurbulence\"],\n [\"foreignobject\", \"foreignObject\"],\n [\"glyphref\", \"glyphRef\"],\n [\"lineargradient\", \"linearGradient\"],\n [\"radialgradient\", \"radialGradient\"],\n [\"textpath\", \"textPath\"],\n]);\nexports.attributeNames = new Map([\n [\"definitionurl\", \"definitionURL\"],\n [\"attributename\", \"attributeName\"],\n [\"attributetype\", \"attributeType\"],\n [\"basefrequency\", \"baseFrequency\"],\n [\"baseprofile\", \"baseProfile\"],\n [\"calcmode\", \"calcMode\"],\n [\"clippathunits\", \"clipPathUnits\"],\n [\"diffuseconstant\", \"diffuseConstant\"],\n [\"edgemode\", \"edgeMode\"],\n [\"filterunits\", \"filterUnits\"],\n [\"glyphref\", \"glyphRef\"],\n [\"gradienttransform\", \"gradientTransform\"],\n [\"gradientunits\", \"gradientUnits\"],\n [\"kernelmatrix\", \"kernelMatrix\"],\n [\"kernelunitlength\", \"kernelUnitLength\"],\n [\"keypoints\", \"keyPoints\"],\n [\"keysplines\", \"keySplines\"],\n [\"keytimes\", \"keyTimes\"],\n [\"lengthadjust\", \"lengthAdjust\"],\n [\"limitingconeangle\", \"limitingConeAngle\"],\n [\"markerheight\", \"markerHeight\"],\n [\"markerunits\", \"markerUnits\"],\n [\"markerwidth\", \"markerWidth\"],\n [\"maskcontentunits\", \"maskContentUnits\"],\n [\"maskunits\", \"maskUnits\"],\n [\"numoctaves\", \"numOctaves\"],\n [\"pathlength\", \"pathLength\"],\n [\"patterncontentunits\", \"patternContentUnits\"],\n [\"patterntransform\", \"patternTransform\"],\n [\"patternunits\", \"patternUnits\"],\n [\"pointsatx\", \"pointsAtX\"],\n [\"pointsaty\", \"pointsAtY\"],\n [\"pointsatz\", \"pointsAtZ\"],\n [\"preservealpha\", \"preserveAlpha\"],\n [\"preserveaspectratio\", \"preserveAspectRatio\"],\n [\"primitiveunits\", \"primitiveUnits\"],\n [\"refx\", \"refX\"],\n [\"refy\", \"refY\"],\n [\"repeatcount\", \"repeatCount\"],\n [\"repeatdur\", \"repeatDur\"],\n [\"requiredextensions\", \"requiredExtensions\"],\n [\"requiredfeatures\", \"requiredFeatures\"],\n [\"specularconstant\", \"specularConstant\"],\n [\"specularexponent\", \"specularExponent\"],\n [\"spreadmethod\", \"spreadMethod\"],\n [\"startoffset\", \"startOffset\"],\n [\"stddeviation\", \"stdDeviation\"],\n [\"stitchtiles\", \"stitchTiles\"],\n [\"surfacescale\", \"surfaceScale\"],\n [\"systemlanguage\", \"systemLanguage\"],\n [\"tablevalues\", \"tableValues\"],\n [\"targetx\", \"targetX\"],\n [\"targety\", \"targetY\"],\n [\"textlength\", \"textLength\"],\n [\"viewbox\", \"viewBox\"],\n [\"viewtarget\", \"viewTarget\"],\n [\"xchannelselector\", \"xChannelSelector\"],\n [\"ychannelselector\", \"yChannelSelector\"],\n [\"zoomandpan\", \"zoomAndPan\"],\n]);\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*\n * Module dependencies\n */\nvar ElementType = __importStar(require(\"domelementtype\"));\nvar entities_1 = require(\"entities\");\n/**\n * Mixed-case SVG and MathML tags & attributes\n * recognized by the HTML parser.\n *\n * @see https://html.spec.whatwg.org/multipage/parsing.html#parsing-main-inforeign\n */\nvar foreignNames_1 = require(\"./foreignNames\");\nvar unencodedElements = new Set([\n \"style\",\n \"script\",\n \"xmp\",\n \"iframe\",\n \"noembed\",\n \"noframes\",\n \"plaintext\",\n \"noscript\",\n]);\n/**\n * Format attributes\n */\nfunction formatAttributes(attributes, opts) {\n if (!attributes)\n return;\n return Object.keys(attributes)\n .map(function (key) {\n var _a, _b;\n var value = (_a = attributes[key]) !== null && _a !== void 0 ? _a : \"\";\n if (opts.xmlMode === \"foreign\") {\n /* Fix up mixed-case attribute names */\n key = (_b = foreignNames_1.attributeNames.get(key)) !== null && _b !== void 0 ? _b : key;\n }\n if (!opts.emptyAttrs && !opts.xmlMode && value === \"\") {\n return key;\n }\n return key + \"=\\\"\" + (opts.decodeEntities !== false\n ? entities_1.encodeXML(value)\n : value.replace(/\"/g, \""\")) + \"\\\"\";\n })\n .join(\" \");\n}\n/**\n * Self-enclosing tags\n */\nvar singleTag = new Set([\n \"area\",\n \"base\",\n \"basefont\",\n \"br\",\n \"col\",\n \"command\",\n \"embed\",\n \"frame\",\n \"hr\",\n \"img\",\n \"input\",\n \"isindex\",\n \"keygen\",\n \"link\",\n \"meta\",\n \"param\",\n \"source\",\n \"track\",\n \"wbr\",\n]);\n/**\n * Renders a DOM node or an array of DOM nodes to a string.\n *\n * Can be thought of as the equivalent of the `outerHTML` of the passed node(s).\n *\n * @param node Node to be rendered.\n * @param options Changes serialization behavior\n */\nfunction render(node, options) {\n if (options === void 0) { options = {}; }\n var nodes = \"length\" in node ? node : [node];\n var output = \"\";\n for (var i = 0; i < nodes.length; i++) {\n output += renderNode(nodes[i], options);\n }\n return output;\n}\nexports.default = render;\nfunction renderNode(node, options) {\n switch (node.type) {\n case ElementType.Root:\n return render(node.children, options);\n case ElementType.Directive:\n case ElementType.Doctype:\n return renderDirective(node);\n case ElementType.Comment:\n return renderComment(node);\n case ElementType.CDATA:\n return renderCdata(node);\n case ElementType.Script:\n case ElementType.Style:\n case ElementType.Tag:\n return renderTag(node, options);\n case ElementType.Text:\n return renderText(node, options);\n }\n}\nvar foreignModeIntegrationPoints = new Set([\n \"mi\",\n \"mo\",\n \"mn\",\n \"ms\",\n \"mtext\",\n \"annotation-xml\",\n \"foreignObject\",\n \"desc\",\n \"title\",\n]);\nvar foreignElements = new Set([\"svg\", \"math\"]);\nfunction renderTag(elem, opts) {\n var _a;\n // Handle SVG / MathML in HTML\n if (opts.xmlMode === \"foreign\") {\n /* Fix up mixed-case element names */\n elem.name = (_a = foreignNames_1.elementNames.get(elem.name)) !== null && _a !== void 0 ? _a : elem.name;\n /* Exit foreign mode at integration points */\n if (elem.parent &&\n foreignModeIntegrationPoints.has(elem.parent.name)) {\n opts = __assign(__assign({}, opts), { xmlMode: false });\n }\n }\n if (!opts.xmlMode && foreignElements.has(elem.name)) {\n opts = __assign(__assign({}, opts), { xmlMode: \"foreign\" });\n }\n var tag = \"<\" + elem.name;\n var attribs = formatAttributes(elem.attribs, opts);\n if (attribs) {\n tag += \" \" + attribs;\n }\n if (elem.children.length === 0 &&\n (opts.xmlMode\n ? // In XML mode or foreign mode, and user hasn't explicitly turned off self-closing tags\n opts.selfClosingTags !== false\n : // User explicitly asked for self-closing tags, even in HTML mode\n opts.selfClosingTags && singleTag.has(elem.name))) {\n if (!opts.xmlMode)\n tag += \" \";\n tag += \"/>\";\n }\n else {\n tag += \">\";\n if (elem.children.length > 0) {\n tag += render(elem.children, opts);\n }\n if (opts.xmlMode || !singleTag.has(elem.name)) {\n tag += \"\";\n }\n }\n return tag;\n}\nfunction renderDirective(elem) {\n return \"<\" + elem.data + \">\";\n}\nfunction renderText(elem, opts) {\n var data = elem.data || \"\";\n // If entities weren't decoded, no need to encode them back\n if (opts.decodeEntities !== false &&\n !(!opts.xmlMode &&\n elem.parent &&\n unencodedElements.has(elem.parent.name))) {\n data = entities_1.encodeXML(data);\n }\n return data;\n}\nfunction renderCdata(elem) {\n return \"\";\n}\nfunction renderComment(elem) {\n return \"\";\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Doctype = exports.CDATA = exports.Tag = exports.Style = exports.Script = exports.Comment = exports.Directive = exports.Text = exports.Root = exports.isTag = exports.ElementType = void 0;\n/** Types of elements found in htmlparser2's DOM */\nvar ElementType;\n(function (ElementType) {\n /** Type for the root element of a document */\n ElementType[\"Root\"] = \"root\";\n /** Type for Text */\n ElementType[\"Text\"] = \"text\";\n /** Type for */\n ElementType[\"Directive\"] = \"directive\";\n /** Type for */\n ElementType[\"Comment\"] = \"comment\";\n /** Type for ';\n };\n\n return EventedTokenizer;\n}();\n\nvar Tokenizer =\n/** @class */\nfunction () {\n function Tokenizer(entityParser, options) {\n if (options === void 0) {\n options = {};\n }\n\n this.options = options;\n this.token = null;\n this.startLine = 1;\n this.startColumn = 0;\n this.tokens = [];\n this.tokenizer = new EventedTokenizer(this, entityParser, options.mode);\n this._currentAttribute = undefined;\n }\n\n Tokenizer.prototype.tokenize = function (input) {\n this.tokens = [];\n this.tokenizer.tokenize(input);\n return this.tokens;\n };\n\n Tokenizer.prototype.tokenizePart = function (input) {\n this.tokens = [];\n this.tokenizer.tokenizePart(input);\n return this.tokens;\n };\n\n Tokenizer.prototype.tokenizeEOF = function () {\n this.tokens = [];\n this.tokenizer.tokenizeEOF();\n return this.tokens[0];\n };\n\n Tokenizer.prototype.reset = function () {\n this.token = null;\n this.startLine = 1;\n this.startColumn = 0;\n };\n\n Tokenizer.prototype.current = function () {\n var token = this.token;\n\n if (token === null) {\n throw new Error('token was unexpectedly null');\n }\n\n if (arguments.length === 0) {\n return token;\n }\n\n for (var i = 0; i < arguments.length; i++) {\n if (token.type === arguments[i]) {\n return token;\n }\n }\n\n throw new Error(\"token type was unexpectedly \" + token.type);\n };\n\n Tokenizer.prototype.push = function (token) {\n this.token = token;\n this.tokens.push(token);\n };\n\n Tokenizer.prototype.currentAttribute = function () {\n return this._currentAttribute;\n };\n\n Tokenizer.prototype.addLocInfo = function () {\n if (this.options.loc) {\n this.current().loc = {\n start: {\n line: this.startLine,\n column: this.startColumn\n },\n end: {\n line: this.tokenizer.line,\n column: this.tokenizer.column\n }\n };\n }\n\n this.startLine = this.tokenizer.line;\n this.startColumn = this.tokenizer.column;\n }; // Data\n\n\n Tokenizer.prototype.beginDoctype = function () {\n this.push({\n type: \"Doctype\"\n /* Doctype */\n ,\n name: ''\n });\n };\n\n Tokenizer.prototype.appendToDoctypeName = function (char) {\n this.current(\"Doctype\"\n /* Doctype */\n ).name += char;\n };\n\n Tokenizer.prototype.appendToDoctypePublicIdentifier = function (char) {\n var doctype = this.current(\"Doctype\"\n /* Doctype */\n );\n\n if (doctype.publicIdentifier === undefined) {\n doctype.publicIdentifier = char;\n } else {\n doctype.publicIdentifier += char;\n }\n };\n\n Tokenizer.prototype.appendToDoctypeSystemIdentifier = function (char) {\n var doctype = this.current(\"Doctype\"\n /* Doctype */\n );\n\n if (doctype.systemIdentifier === undefined) {\n doctype.systemIdentifier = char;\n } else {\n doctype.systemIdentifier += char;\n }\n };\n\n Tokenizer.prototype.endDoctype = function () {\n this.addLocInfo();\n };\n\n Tokenizer.prototype.beginData = function () {\n this.push({\n type: \"Chars\"\n /* Chars */\n ,\n chars: ''\n });\n };\n\n Tokenizer.prototype.appendToData = function (char) {\n this.current(\"Chars\"\n /* Chars */\n ).chars += char;\n };\n\n Tokenizer.prototype.finishData = function () {\n this.addLocInfo();\n }; // Comment\n\n\n Tokenizer.prototype.beginComment = function () {\n this.push({\n type: \"Comment\"\n /* Comment */\n ,\n chars: ''\n });\n };\n\n Tokenizer.prototype.appendToCommentData = function (char) {\n this.current(\"Comment\"\n /* Comment */\n ).chars += char;\n };\n\n Tokenizer.prototype.finishComment = function () {\n this.addLocInfo();\n }; // Tags - basic\n\n\n Tokenizer.prototype.tagOpen = function () {};\n\n Tokenizer.prototype.beginStartTag = function () {\n this.push({\n type: \"StartTag\"\n /* StartTag */\n ,\n tagName: '',\n attributes: [],\n selfClosing: false\n });\n };\n\n Tokenizer.prototype.beginEndTag = function () {\n this.push({\n type: \"EndTag\"\n /* EndTag */\n ,\n tagName: ''\n });\n };\n\n Tokenizer.prototype.finishTag = function () {\n this.addLocInfo();\n };\n\n Tokenizer.prototype.markTagAsSelfClosing = function () {\n this.current(\"StartTag\"\n /* StartTag */\n ).selfClosing = true;\n }; // Tags - name\n\n\n Tokenizer.prototype.appendToTagName = function (char) {\n this.current(\"StartTag\"\n /* StartTag */\n , \"EndTag\"\n /* EndTag */\n ).tagName += char;\n }; // Tags - attributes\n\n\n Tokenizer.prototype.beginAttribute = function () {\n this._currentAttribute = ['', '', false];\n };\n\n Tokenizer.prototype.appendToAttributeName = function (char) {\n this.currentAttribute()[0] += char;\n };\n\n Tokenizer.prototype.beginAttributeValue = function (isQuoted) {\n this.currentAttribute()[2] = isQuoted;\n };\n\n Tokenizer.prototype.appendToAttributeValue = function (char) {\n this.currentAttribute()[1] += char;\n };\n\n Tokenizer.prototype.finishAttributeValue = function () {\n this.current(\"StartTag\"\n /* StartTag */\n ).attributes.push(this._currentAttribute);\n };\n\n Tokenizer.prototype.reportSyntaxError = function (message) {\n this.current().syntaxError = message;\n };\n\n return Tokenizer;\n}();\n\nfunction tokenize(input, options) {\n var tokenizer = new Tokenizer(new EntityParser(HTML5NamedCharRefs), options);\n return tokenizer.tokenize(input);\n}\n\nvar LinkifyResult = 'LinkifyResult';\nvar StartTag = 'StartTag';\nvar EndTag = 'EndTag';\nvar Chars = 'Chars';\nvar Comment = 'Comment';\nvar Doctype = 'Doctype';\n/**\n * @param {string} str html string to link\n * @param {import('linkifyjs').Opts} [opts] linkify options\n * @returns {string} resulting string\n */\n\nfunction linkifyHtml(str, opts) {\n if (opts === void 0) {\n opts = {};\n }\n\n // `tokens` and `token` in this section refer to tokens generated by the\n // HTML parser, not linkify's parser\n var tokens = tokenize(str);\n var linkifiedTokens = [];\n var linkified = [];\n var options = new Options(opts, defaultRender); // Linkify the tokens given by the parser\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (token.type === StartTag) {\n linkifiedTokens.push(token); // Ignore all the contents of ignored tags\n\n var tagName = token.tagName.toUpperCase();\n var isIgnored = tagName === 'A' || options.ignoreTags.indexOf(tagName) >= 0;\n\n if (!isIgnored) {\n continue;\n }\n\n var preskipLen = linkifiedTokens.length;\n skipTagTokens(tagName, tokens, ++i, linkifiedTokens);\n i += linkifiedTokens.length - preskipLen - 1;\n } else if (token.type !== Chars) {\n // Skip this token, it's not important\n linkifiedTokens.push(token);\n } else {\n // Valid text token, linkify it!\n var linkifedChars = linkifyChars(token.chars, options);\n linkifiedTokens.push.apply(linkifiedTokens, linkifedChars);\n }\n } // Convert the tokens back into a string\n\n\n for (var _i = 0; _i < linkifiedTokens.length; _i++) {\n var _token = linkifiedTokens[_i];\n\n switch (_token.type) {\n case LinkifyResult:\n linkified.push(_token.rendered);\n break;\n\n case StartTag:\n {\n var link = '<' + _token.tagName;\n\n if (_token.attributes.length > 0) {\n link += ' ' + attributeArrayToStrings(_token.attributes).join(' ');\n }\n\n if (_token.selfClosing) {\n link += ' /';\n }\n\n link += '>';\n linkified.push(link);\n break;\n }\n\n case EndTag:\n linkified.push(\"\");\n break;\n\n case Chars:\n linkified.push(escapeText(_token.chars));\n break;\n\n case Comment:\n linkified.push(\"\");\n break;\n\n case Doctype:\n {\n var doctype = \"';\n linkified.push(doctype);\n break;\n }\n }\n }\n\n return linkified.join('');\n}\n/**\n\t`tokens` and `token` in this section referes to tokens returned by\n\t`linkify.tokenize`. `linkified` will contain HTML Parser-style tokens\n\t@param {string}\n\t@param {import('linkifyjs').Options}\n*/\n\nfunction linkifyChars(str, options) {\n var tokens = tokenize$1(str);\n var result = [];\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (token.t === 'nl' && options.get('nl2br')) {\n result.push({\n type: StartTag,\n tagName: 'br',\n attributes: [],\n selfClosing: true\n });\n } else if (!token.isLink || !options.check(token)) {\n result.push({\n type: Chars,\n chars: token.toString()\n });\n } else {\n result.push({\n type: LinkifyResult,\n rendered: options.render(token)\n });\n }\n }\n\n return result;\n}\n/**\n\tReturns a list of tokens skipped until the closing tag of tagName.\n\n\t* `tagName` is the closing tag which will prompt us to stop skipping\n\t* `tokens` is the array of tokens generated by HTML5Tokenizer which\n\t* `i` is the index immediately after the opening tag to skip\n\t* `skippedTokens` is an array which skipped tokens are being pushed into\n\n\tCaveats\n\n\t* Assumes that i is the first token after the given opening tagName\n\t* The closing tag will be skipped, but nothing after it\n\t* Will track whether there is a nested tag of the same type\n*/\n\n\nfunction skipTagTokens(tagName, tokens, i, skippedTokens) {\n // number of tokens of this type on the [fictional] stack\n var stackCount = 1;\n\n while (i < tokens.length && stackCount > 0) {\n var token = tokens[i];\n\n if (token.type === StartTag && token.tagName.toUpperCase() === tagName) {\n // Nested tag of the same type, \"add to stack\"\n stackCount++;\n } else if (token.type === EndTag && token.tagName.toUpperCase() === tagName) {\n // Closing tag\n stackCount--;\n }\n\n skippedTokens.push(token);\n i++;\n } // Note that if stackCount > 0 here, the HTML is probably invalid\n\n\n return skippedTokens;\n}\n\nfunction defaultRender(_ref) {\n var tagName = _ref.tagName,\n attributes = _ref.attributes,\n content = _ref.content;\n return \"<\" + tagName + \" \" + attributesToString(attributes) + \">\" + escapeText(content) + \"\";\n}\n\nfunction escapeText(text) {\n return text.replace(/&/g, '&').replace(//g, '>');\n}\n\nfunction escapeAttr(attr) {\n return attr.replace(/\"/g, '"');\n}\n\nfunction attributesToString(attributes) {\n var result = [];\n\n for (var attr in attributes) {\n var val = attributes[attr] + '';\n result.push(attr + \"=\\\"\" + escapeAttr(val) + \"\\\"\");\n }\n\n return result.join(' ');\n}\n\nfunction attributeArrayToStrings(attrs) {\n var attrStrs = [];\n\n for (var i = 0; i < attrs.length; i++) {\n var name = attrs[i][0];\n var value = attrs[i][1] + '';\n attrStrs.push(name + \"=\\\"\" + escapeAttr(value) + \"\\\"\");\n }\n\n return attrStrs;\n}\n\nexport { linkifyHtml as default };\n","import linkifyHtml from 'linkify-html'\nimport sanitizeHtml from 'sanitize-html'\n\nexport const linkifyAndClean = (input: string): string => {\n return sanitizeHtml(linkifyHtml(input, { target: '_blank' }), {\n allowedTags: ['a'],\n disallowedTagsMode: 'escape',\n })\n}\n","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, unref as _unref, createElementVNode as _createElementVNode, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-f6b59442\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"workout-note\" }\nconst _hoisted_2 = [\"innerHTML\"]\n\nimport { toRefs, withDefaults } from 'vue'\n\n import { linkifyAndClean } from '@/utils/inputs'\n\n interface Props {\n notes?: string | null\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'WorkoutNotes',\n props: {\n notes: { default: () => null }\n },\n setup(__props: any) {\n\nconst props = __props as { notes: string | null };\n\n \n\n const { notes } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n const _component_Card = _resolveComponent(\"Card\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_Card, null, {\n title: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('workouts.NOTES')), 1)\n ]),\n content: _withCtx(() => [\n _createElementVNode(\"span\", {\n innerHTML: \n _unref(notes) && _unref(notes) !== ''\n ? _unref(linkifyAndClean)(_unref(notes))\n : _ctx.$t('workouts.NO_NOTES')\n \n }, null, 8, _hoisted_2)\n ]),\n _: 1\n })\n ]))\n}\n}\n\n})","import script from \"./WorkoutNotes.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./WorkoutNotes.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./WorkoutNotes.vue?vue&type=style&index=0&id=f6b59442&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-f6b59442\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createTextVNode as _createTextVNode, unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, resolveComponent as _resolveComponent, withCtx as _withCtx, createVNode as _createVNode, createElementVNode as _createElementVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-6b8a27cd\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { id: \"workout-segments\" }\n\nimport { toRefs } from 'vue'\n\n import { IWorkoutSegment } from '@/types/workouts'\n\n interface Props {\n segments: IWorkoutSegment[]\n useImperialUnits: boolean\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'WorkoutSegments',\n props: {\n segments: null,\n useImperialUnits: { type: Boolean }\n },\n setup(__props: any) {\n\nconst props = __props as {\n segments: IWorkoutSegment[]\n useImperialUnits: boolean\n };\n\n \n\n const { segments, useImperialUnits } = toRefs(props)\n\nreturn (_ctx: any,_cache: any) => {\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_Distance = _resolveComponent(\"Distance\")!\n const _component_Card = _resolveComponent(\"Card\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createVNode(_component_Card, null, {\n title: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('workouts.SEGMENT', 2)), 1)\n ]),\n content: _withCtx(() => [\n _createElementVNode(\"ul\", null, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(segments), (segment, index) => {\n return (_openBlock(), _createElementBlock(\"li\", {\n key: segment.segment_id\n }, [\n _createVNode(_component_router_link, {\n to: {\n name: 'WorkoutSegment',\n params: {\n workoutId: segment.workout_id,\n segmentId: index + 1,\n },\n }\n }, {\n default: _withCtx(() => [\n _createTextVNode(_toDisplayString(_ctx.$t('workouts.SEGMENT', 1)) + \" \" + _toDisplayString(index + 1), 1)\n ]),\n _: 2\n }, 1032, [\"to\"]),\n _createTextVNode(\" (\" + _toDisplayString(_ctx.$t('workouts.DISTANCE')) + \": \", 1),\n _createVNode(_component_Distance, {\n distance: segment.distance,\n unitFrom: \"km\",\n useImperialUnits: _unref(useImperialUnits)\n }, null, 8, [\"distance\", \"useImperialUnits\"]),\n _createTextVNode(\", \" + _toDisplayString(_ctx.$t('workouts.DURATION')) + \": \" + _toDisplayString(segment.duration) + \") \", 1)\n ]))\n }), 128))\n ])\n ]),\n _: 1\n })\n ]))\n}\n}\n\n})","import script from \"./WorkoutSegments.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./WorkoutSegments.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./WorkoutSegments.vue?vue&type=style&index=0&id=6b8a27cd&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-6b8a27cd\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, openBlock as _openBlock, createBlock as _createBlock, createCommentVNode as _createCommentVNode, createElementVNode as _createElementVNode, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-53c4e53a\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n id: \"workout\",\n class: \"view\"\n}\nconst _hoisted_2 = { class: \"container\" }\nconst _hoisted_3 = {\n key: 0,\n class: \"workout-container\"\n}\nconst _hoisted_4 = { key: 0 }\nconst _hoisted_5 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { id: \"bottom\" }, null, -1))\nconst _hoisted_6 = { key: 1 }\n\nimport {\n ComputedRef,\n Ref,\n computed,\n ref,\n toRefs,\n watch,\n onBeforeMount,\n onUnmounted,\n } from 'vue'\n import { useRoute } from 'vue-router'\n\n import NotFound from '@/components/Common/NotFound.vue'\n import WorkoutDetail from '@/components/Workout/WorkoutDetail/index.vue'\n import WorkoutChart from '@/components/Workout/WorkoutDetail/WorkoutChart/index.vue'\n import WorkoutNotes from '@/components/Workout/WorkoutDetail/WorkoutNotes.vue'\n import WorkoutSegments from '@/components/Workout/WorkoutDetail/WorkoutSegments.vue'\n import {\n AUTH_USER_STORE,\n SPORTS_STORE,\n WORKOUTS_STORE,\n } from '@/store/constants'\n import { ISport } from '@/types/sports'\n import { IAuthUserProfile } from '@/types/user'\n import { IWorkoutData, IWorkoutPayload, TCoordinates } from '@/types/workouts'\n import { useStore } from '@/use/useStore'\n\n interface Props {\n displaySegment: boolean\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'Workout',\n props: {\n displaySegment: { type: Boolean }\n },\n setup(__props: any) {\n\nconst props = __props as {\n displaySegment: boolean\n };\n\n \n\n const route = useRoute()\n const store = useStore()\n\n const { displaySegment } = toRefs(props)\n const workoutData: ComputedRef = computed(\n () => store.getters[WORKOUTS_STORE.GETTERS.WORKOUT_DATA]\n )\n const authUser: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.AUTH_USER_PROFILE]\n )\n const sports: ComputedRef = computed(\n () => store.getters[SPORTS_STORE.GETTERS.SPORTS]\n )\n const markerCoordinates: Ref = ref({\n latitude: null,\n longitude: null,\n })\n\n onBeforeMount(() => {\n const payload: IWorkoutPayload = { workoutId: route.params.workoutId }\n if (props.displaySegment) {\n payload.segmentId = route.params.segmentId\n }\n store.dispatch(WORKOUTS_STORE.ACTIONS.GET_WORKOUT_DATA, payload)\n })\n\n onUnmounted(() => {\n store.commit(WORKOUTS_STORE.MUTATIONS.EMPTY_WORKOUT)\n })\n\n function updateCoordinates(coordinates: TCoordinates) {\n markerCoordinates.value = {\n latitude: coordinates.latitude,\n longitude: coordinates.longitude,\n }\n }\n\n watch(\n () => route.params.workoutId,\n async (newWorkoutId) => {\n if (newWorkoutId) {\n store.dispatch(WORKOUTS_STORE.ACTIONS.GET_WORKOUT_DATA, {\n workoutId: newWorkoutId,\n })\n }\n }\n )\n watch(\n () => route.params.segmentId,\n async (newSegmentId) => {\n if (route.params.workoutId) {\n const payload: IWorkoutPayload = {\n workoutId: route.params.workoutId,\n }\n if (newSegmentId) {\n payload.segmentId = newSegmentId\n }\n store.dispatch(WORKOUTS_STORE.ACTIONS.GET_WORKOUT_DATA, payload)\n }\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n (_unref(sports).length > 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_3, [\n (_unref(workoutData).workout.id)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_4, [\n _createVNode(WorkoutDetail, {\n workoutData: _unref(workoutData),\n sports: _unref(sports),\n authUser: _unref(authUser),\n markerCoordinates: markerCoordinates.value,\n displaySegment: _unref(displaySegment)\n }, null, 8, [\"workoutData\", \"sports\", \"authUser\", \"markerCoordinates\", \"displaySegment\"]),\n (\n _unref(workoutData).workout.with_gpx && _unref(workoutData).chartData.length > 0\n )\n ? (_openBlock(), _createBlock(WorkoutChart, {\n key: 0,\n workoutData: _unref(workoutData),\n authUser: _unref(authUser),\n displaySegment: _unref(displaySegment),\n onGetCoordinates: updateCoordinates\n }, null, 8, [\"workoutData\", \"authUser\", \"displaySegment\"]))\n : _createCommentVNode(\"\", true),\n (!_unref(displaySegment) && _unref(workoutData).workout.segments.length > 1)\n ? (_openBlock(), _createBlock(WorkoutSegments, {\n key: 1,\n segments: _unref(workoutData).workout.segments,\n useImperialUnits: _unref(authUser).imperial_units\n }, null, 8, [\"segments\", \"useImperialUnits\"]))\n : _createCommentVNode(\"\", true),\n (!_unref(displaySegment))\n ? (_openBlock(), _createBlock(WorkoutNotes, {\n key: 2,\n notes: _unref(workoutData).workout.notes\n }, null, 8, [\"notes\"]))\n : _createCommentVNode(\"\", true),\n _hoisted_5\n ]))\n : (_openBlock(), _createElementBlock(\"div\", _hoisted_6, [\n (!_unref(workoutData).loading)\n ? (_openBlock(), _createBlock(NotFound, {\n key: 0,\n target: \"WORKOUT\"\n }))\n : _createCommentVNode(\"\", true)\n ]))\n ]))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n}\n}\n\n})","import script from \"./Workout.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./Workout.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./Workout.vue?vue&type=style&index=0&id=53c4e53a&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-53c4e53a\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-6c38593a\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"workouts-filters\" }\nconst _hoisted_2 = { class: \"box\" }\nconst _hoisted_3 = { class: \"form\" }\nconst _hoisted_4 = { class: \"form-items-group\" }\nconst _hoisted_5 = { class: \"form-item\" }\nconst _hoisted_6 = [\"value\"]\nconst _hoisted_7 = { class: \"form-item\" }\nconst _hoisted_8 = [\"value\"]\nconst _hoisted_9 = { class: \"form-items-group\" }\nconst _hoisted_10 = { class: \"form-item\" }\nconst _hoisted_11 = [\"value\"]\nconst _hoisted_12 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"option\", { value: \"\" }, null, -1))\nconst _hoisted_13 = [\"value\"]\nconst _hoisted_14 = { class: \"form-items-group\" }\nconst _hoisted_15 = { class: \"form-item\" }\nconst _hoisted_16 = { class: \"form-inputs-group\" }\nconst _hoisted_17 = [\"value\"]\nconst _hoisted_18 = [\"value\"]\nconst _hoisted_19 = { class: \"form-items-group\" }\nconst _hoisted_20 = { class: \"form-item\" }\nconst _hoisted_21 = { class: \"form-inputs-group\" }\nconst _hoisted_22 = [\"value\"]\nconst _hoisted_23 = [\"value\"]\nconst _hoisted_24 = { class: \"form-items-group\" }\nconst _hoisted_25 = { class: \"form-item\" }\nconst _hoisted_26 = { class: \"form-inputs-group\" }\nconst _hoisted_27 = [\"value\"]\nconst _hoisted_28 = [\"value\"]\nconst _hoisted_29 = { class: \"form-items-group\" }\nconst _hoisted_30 = { class: \"form-item\" }\nconst _hoisted_31 = { class: \"form-inputs-group\" }\nconst _hoisted_32 = [\"value\"]\nconst _hoisted_33 = [\"value\"]\nconst _hoisted_34 = { class: \"form-button\" }\n\nimport { ComputedRef, computed, toRefs, watch } from 'vue'\n import { useI18n } from 'vue-i18n'\n import { LocationQuery, useRoute, useRouter } from 'vue-router'\n\n import { ISport } from '@/types/sports'\n import { IAuthUserProfile } from '@/types/user'\n import { translateSports } from '@/utils/sports'\n import { units } from '@/utils/units'\n\n interface Props {\n authUser: IAuthUserProfile\n sports: ISport[]\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'WorkoutsFilters',\n props: {\n authUser: null,\n sports: null\n },\n emits: ['filter'],\n setup(__props: any, { emit }) {\n\nconst props = __props as {\n authUser: IAuthUserProfile\n sports: ISport[]\n };\n\n \n\n \n\n const { t } = useI18n()\n const route = useRoute()\n const router = useRouter()\n\n const { authUser } = toRefs(props)\n\n const toUnit = authUser.value.imperial_units\n ? units['km'].defaultTarget\n : 'km'\n const translatedSports: ComputedRef = computed(() =>\n translateSports(props.sports, t)\n )\n let params: LocationQuery = Object.assign({}, route.query)\n\n function handleFilterChange(event: Event & { target: HTMLInputElement }) {\n if (event.target.value === '') {\n delete params[event.target.name]\n } else {\n params[event.target.name] = event.target.value\n }\n }\n function onFilter() {\n emit('filter')\n if ('page' in params) {\n params['page'] = '1'\n }\n router.push({ path: '/workouts', query: params })\n }\n function onClearFilter() {\n emit('filter')\n router.push({ path: '/workouts', query: {} })\n }\n\n watch(\n () => route.query,\n (newQuery) => {\n params = Object.assign({}, newQuery)\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.$t('workouts.FROM')) + \": \", 1),\n _createElementVNode(\"input\", {\n name: \"from\",\n type: \"date\",\n value: _ctx.$route.query.from,\n onChange: handleFilterChange\n }, null, 40, _hoisted_6)\n ]),\n _createElementVNode(\"div\", _hoisted_7, [\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.$t('workouts.TO')) + \": \", 1),\n _createElementVNode(\"input\", {\n name: \"to\",\n type: \"date\",\n value: _ctx.$route.query.to,\n onChange: handleFilterChange\n }, null, 40, _hoisted_8)\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_9, [\n _createElementVNode(\"div\", _hoisted_10, [\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.$t('workouts.SPORT', 1)) + \":\", 1),\n _createElementVNode(\"select\", {\n name: \"sport_id\",\n value: _ctx.$route.query.sport_id,\n onChange: handleFilterChange\n }, [\n _hoisted_12,\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(translatedSports).filter((s) =>\n _unref(authUser).sports_list.includes(s.id)\n ), (sport) => {\n return (_openBlock(), _createElementBlock(\"option\", {\n value: sport.id,\n key: sport.id\n }, _toDisplayString(sport.translatedLabel), 9, _hoisted_13))\n }), 128))\n ], 40, _hoisted_11)\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_14, [\n _createElementVNode(\"div\", _hoisted_15, [\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.$t('workouts.DISTANCE')) + \" (\" + _toDisplayString(_unref(toUnit)) + \"): \", 1),\n _createElementVNode(\"div\", _hoisted_16, [\n _createElementVNode(\"input\", {\n name: \"distance_from\",\n type: \"number\",\n min: \"0\",\n step: \"0.1\",\n value: _ctx.$route.query.distance_from,\n onChange: handleFilterChange\n }, null, 40, _hoisted_17),\n _createElementVNode(\"span\", null, _toDisplayString(_ctx.$t('workouts.TO')), 1),\n _createElementVNode(\"input\", {\n name: \"distance_to\",\n type: \"number\",\n min: \"0\",\n step: \"0.1\",\n value: _ctx.$route.query.distance_to,\n onChange: handleFilterChange\n }, null, 40, _hoisted_18)\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_19, [\n _createElementVNode(\"div\", _hoisted_20, [\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.$t('workouts.DURATION')) + \": \", 1),\n _createElementVNode(\"div\", _hoisted_21, [\n _createElementVNode(\"input\", {\n name: \"duration_from\",\n value: _ctx.$route.query.duration_from,\n onChange: handleFilterChange,\n pattern: \"^([0-9]*[0-9]):([0-5][0-9])$\",\n placeholder: \"hh:mm\",\n type: \"text\"\n }, null, 40, _hoisted_22),\n _createElementVNode(\"span\", null, _toDisplayString(_ctx.$t('workouts.TO')), 1),\n _createElementVNode(\"input\", {\n name: \"duration_to\",\n value: _ctx.$route.query.duration_to,\n onChange: handleFilterChange,\n pattern: \"^([0-9]*[0-9]):([0-5][0-9])$\",\n placeholder: \"hh:mm\",\n type: \"text\"\n }, null, 40, _hoisted_23)\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_24, [\n _createElementVNode(\"div\", _hoisted_25, [\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.$t('workouts.AVE_SPEED')) + \" (\" + _toDisplayString(_unref(toUnit)) + \"/h): \", 1),\n _createElementVNode(\"div\", _hoisted_26, [\n _createElementVNode(\"input\", {\n min: \"0\",\n name: \"ave_speed_from\",\n value: _ctx.$route.query.ave_speed_from,\n onChange: handleFilterChange,\n step: \"0.1\",\n type: \"number\"\n }, null, 40, _hoisted_27),\n _createElementVNode(\"span\", null, _toDisplayString(_ctx.$t('workouts.TO')), 1),\n _createElementVNode(\"input\", {\n min: \"0\",\n name: \"ave_speed_to\",\n value: _ctx.$route.query.ave_speed_to,\n onChange: handleFilterChange,\n step: \"0.1\",\n type: \"number\"\n }, null, 40, _hoisted_28)\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_29, [\n _createElementVNode(\"div\", _hoisted_30, [\n _createElementVNode(\"label\", null, _toDisplayString(_ctx.$t('workouts.MAX_SPEED')) + \" (\" + _toDisplayString(_unref(toUnit)) + \"/h): \", 1),\n _createElementVNode(\"div\", _hoisted_31, [\n _createElementVNode(\"input\", {\n min: \"0\",\n name: \"max_speed_from\",\n value: _ctx.$route.query.max_speed_from,\n onChange: handleFilterChange,\n step: \"0.1\",\n type: \"number\"\n }, null, 40, _hoisted_32),\n _createElementVNode(\"span\", null, _toDisplayString(_ctx.$t('workouts.TO')), 1),\n _createElementVNode(\"input\", {\n min: \"0\",\n name: \"max_speed_to\",\n value: _ctx.$route.query.max_speed_to,\n onChange: handleFilterChange,\n step: \"0.1\",\n type: \"number\"\n }, null, 40, _hoisted_33)\n ])\n ])\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_34, [\n _createElementVNode(\"button\", {\n class: \"confirm\",\n onClick: onFilter\n }, _toDisplayString(_ctx.$t('buttons.FILTER')), 1),\n _createElementVNode(\"button\", {\n class: \"confirm\",\n onClick: onClearFilter\n }, _toDisplayString(_ctx.$t('buttons.CLEAR_FILTER')), 1)\n ])\n ])\n ]))\n}\n}\n\n})","import script from \"./WorkoutsFilters.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./WorkoutsFilters.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./WorkoutsFilters.vue?vue&type=style&index=0&id=6c38593a&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-6c38593a\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, createVNode as _createVNode, normalizeClass as _normalizeClass, renderList as _renderList, Fragment as _Fragment, resolveComponent as _resolveComponent, createBlock as _createBlock, withCtx as _withCtx, createTextVNode as _createTextVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-0f8ea7b0\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = { class: \"workouts-list\" }\nconst _hoisted_2 = { class: \"total\" }\nconst _hoisted_3 = { class: \"total-label\" }\nconst _hoisted_4 = { key: 0 }\nconst _hoisted_5 = {\n key: 0,\n class: \"workouts-table responsive-table\"\n}\nconst _hoisted_6 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"th\", { class: \"sport-col\" }, null, -1))\nconst _hoisted_7 = { class: \"sport-col\" }\nconst _hoisted_8 = { class: \"cell-heading\" }\nconst _hoisted_9 = [\"onMouseover\"]\nconst _hoisted_10 = { class: \"cell-heading\" }\nconst _hoisted_11 = {\n key: 0,\n class: \"fa fa-map-o\",\n \"aria-hidden\": \"true\"\n}\nconst _hoisted_12 = { class: \"title\" }\nconst _hoisted_13 = { class: \"workout-date\" }\nconst _hoisted_14 = { class: \"cell-heading\" }\nconst _hoisted_15 = { class: \"text-right\" }\nconst _hoisted_16 = { class: \"cell-heading\" }\nconst _hoisted_17 = { class: \"text-right\" }\nconst _hoisted_18 = { class: \"cell-heading\" }\nconst _hoisted_19 = { class: \"text-right\" }\nconst _hoisted_20 = { class: \"cell-heading\" }\nconst _hoisted_21 = { class: \"text-right\" }\nconst _hoisted_22 = { class: \"cell-heading\" }\nconst _hoisted_23 = { class: \"text-right\" }\nconst _hoisted_24 = { class: \"cell-heading\" }\nconst _hoisted_25 = { class: \"text-right\" }\nconst _hoisted_26 = { class: \"cell-heading\" }\nconst _hoisted_27 = /*#__PURE__*/ _withScopeId(() => /*#__PURE__*/_createElementVNode(\"div\", { id: \"bottom\" }, null, -1))\n\nimport {\n ComputedRef,\n Ref,\n computed,\n ref,\n toRefs,\n watch,\n capitalize,\n onBeforeMount,\n } from 'vue'\n import { LocationQuery, useRoute, useRouter } from 'vue-router'\n\n import FilterSelects from '@/components/Common/FilterSelects.vue'\n import Pagination from '@/components/Common/Pagination.vue'\n import StaticMap from '@/components/Common/StaticMap.vue'\n import NoWorkouts from '@/components/Workouts/NoWorkouts.vue'\n import { ROOT_STORE, WORKOUTS_STORE } from '@/store/constants'\n import { IPagination } from '@/types/api'\n import { ITranslatedSport } from '@/types/sports'\n import { IAuthUserProfile } from '@/types/user'\n import { IWorkout, TWorkoutsPayload } from '@/types/workouts'\n import { useStore } from '@/use/useStore'\n import { getQuery, sortList, workoutsPayloadKeys } from '@/utils/api'\n import { formatDate } from '@/utils/dates'\n import { getSportColor, getSportLabel } from '@/utils/sports'\n import { convertDistance } from '@/utils/units'\n import { defaultOrder } from '@/utils/workouts'\n\n interface Props {\n user: IAuthUserProfile\n sports: ITranslatedSport[]\n }\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'WorkoutsList',\n props: {\n user: null,\n sports: null\n },\n setup(__props: any) {\n\nconst props = __props as {\n user: IAuthUserProfile\n sports: ITranslatedSport[]\n };\n\n \n\n const store = useStore()\n const route = useRoute()\n const router = useRouter()\n\n const { user, sports } = toRefs(props)\n const orderByList: string[] = [\n 'ave_speed',\n 'distance',\n 'duration',\n 'workout_date',\n ]\n const workouts: ComputedRef = computed(\n () => store.getters[WORKOUTS_STORE.GETTERS.USER_WORKOUTS]\n )\n const pagination: ComputedRef = computed(\n () => store.getters[WORKOUTS_STORE.GETTERS.WORKOUTS_PAGINATION]\n )\n const currentLanguage: ComputedRef = computed(\n () => store.getters[ROOT_STORE.GETTERS.LANGUAGE]\n )\n let query: TWorkoutsPayload = getWorkoutsQuery(route.query)\n const hoverWorkoutId: Ref = ref(null)\n\n onBeforeMount(() => {\n loadWorkouts(query)\n })\n\n function loadWorkouts(payload: TWorkoutsPayload) {\n store.dispatch(\n WORKOUTS_STORE.ACTIONS.GET_USER_WORKOUTS,\n user.value.imperial_units ? getConvertedPayload(payload) : payload\n )\n }\n function reloadWorkouts(queryParam: string, queryValue: string) {\n const newQuery: LocationQuery = Object.assign({}, route.query)\n newQuery[queryParam] = queryValue\n if (queryParam === 'per_page') {\n newQuery['page'] = '1'\n }\n query = getWorkoutsQuery(newQuery)\n router.push({ path: '/workouts', query })\n }\n\n function getWorkoutsQuery(newQuery: LocationQuery): TWorkoutsPayload {\n const workoutQuery = getQuery(\n newQuery,\n orderByList,\n defaultOrder.order_by,\n {\n defaultSort: defaultOrder.order,\n }\n )\n Object.keys(newQuery)\n .filter((k) => workoutsPayloadKeys.includes(k))\n .map((k) => {\n if (typeof newQuery[k] === 'string') {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n workoutQuery[k] = newQuery[k]\n }\n })\n return workoutQuery\n }\n\n function getConvertedPayload(payload: TWorkoutsPayload): TWorkoutsPayload {\n const convertedPayload: TWorkoutsPayload = {\n ...payload,\n }\n Object.entries(convertedPayload).map((entry) => {\n if (entry[0].match('speed|distance') && entry[1]) {\n convertedPayload[entry[0]] = convertDistance(+entry[1], 'mi', 'km')\n }\n })\n return convertedPayload\n }\n\n function onHover(workoutId: string | null) {\n hoverWorkoutId.value = workoutId\n }\n\n watch(\n () => route.query,\n async (newQuery) => {\n query = getWorkoutsQuery(newQuery)\n loadWorkouts(query)\n }\n )\n\nreturn (_ctx: any,_cache: any) => {\n const _component_SportImage = _resolveComponent(\"SportImage\")!\n const _component_router_link = _resolveComponent(\"router-link\")!\n const _component_Distance = _resolveComponent(\"Distance\")!\n\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"box\", { 'empty-table': _unref(workouts).length === 0 }])\n }, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"span\", _hoisted_3, _toDisplayString(_ctx.$t('common.TOTAL').toLowerCase()) + \": \", 1),\n (_unref(pagination).total !== null)\n ? (_openBlock(), _createElementBlock(\"span\", _hoisted_4, _toDisplayString(_unref(pagination).total) + \" \" + _toDisplayString(_ctx.$t('workouts.WORKOUT', _unref(pagination).total)), 1))\n : _createCommentVNode(\"\", true)\n ]),\n _createVNode(FilterSelects, {\n sort: _unref(sortList),\n order_by: orderByList,\n query: _unref(query),\n message: \"workouts\",\n onUpdateSelect: reloadWorkouts\n }, null, 8, [\"sort\", \"query\"]),\n (_unref(workouts).length > 0)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_5, [\n _createVNode(Pagination, {\n class: \"top-pagination\",\n pagination: _unref(pagination),\n path: \"/workouts\",\n query: _unref(query)\n }, null, 8, [\"pagination\", \"query\"]),\n _createElementVNode(\"table\", null, [\n _createElementVNode(\"thead\", {\n class: _normalizeClass({ smaller: 'de' === _unref(currentLanguage) })\n }, [\n _createElementVNode(\"tr\", null, [\n _hoisted_6,\n _createElementVNode(\"th\", null, _toDisplayString(capitalize(_ctx.$t('workouts.WORKOUT', 1))), 1),\n _createElementVNode(\"th\", null, _toDisplayString(capitalize(_ctx.$t('workouts.DATE'))), 1),\n _createElementVNode(\"th\", null, _toDisplayString(capitalize(_ctx.$t('workouts.DISTANCE'))), 1),\n _createElementVNode(\"th\", null, _toDisplayString(capitalize(_ctx.$t('workouts.DURATION'))), 1),\n _createElementVNode(\"th\", null, _toDisplayString(capitalize(_ctx.$t('workouts.AVE_SPEED'))), 1),\n _createElementVNode(\"th\", null, _toDisplayString(capitalize(_ctx.$t('workouts.MAX_SPEED'))), 1),\n _createElementVNode(\"th\", null, _toDisplayString(capitalize(_ctx.$t('workouts.ASCENT'))), 1),\n _createElementVNode(\"th\", null, _toDisplayString(capitalize(_ctx.$t('workouts.DESCENT'))), 1)\n ])\n ], 2),\n _createElementVNode(\"tbody\", null, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(workouts), (workout) => {\n return (_openBlock(), _createElementBlock(\"tr\", {\n key: workout.id\n }, [\n _createElementVNode(\"td\", _hoisted_7, [\n _createElementVNode(\"span\", _hoisted_8, _toDisplayString(_ctx.$t('workouts.SPORT', 1)), 1),\n (_unref(sports).length > 0)\n ? (_openBlock(), _createBlock(_component_SportImage, {\n key: 0,\n title: \n _unref(sports).find((s) => s.id === workout.sport_id)\n .translatedLabel\n ,\n \"sport-label\": _unref(getSportLabel)(workout, _unref(sports)),\n color: _unref(getSportColor)(workout, _unref(sports))\n }, null, 8, [\"title\", \"sport-label\", \"color\"]))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"td\", {\n class: \"workout-title\",\n onMouseover: ($event: any) => (onHover(workout.id)),\n onMouseleave: _cache[0] || (_cache[0] = ($event: any) => (onHover(null)))\n }, [\n _createElementVNode(\"span\", _hoisted_10, _toDisplayString(capitalize(_ctx.$t('workouts.WORKOUT', 1))), 1),\n _createVNode(_component_router_link, {\n class: \"nav-item\",\n to: { name: 'Workout', params: { workoutId: workout.id } }\n }, {\n default: _withCtx(() => [\n (workout.with_gpx)\n ? (_openBlock(), _createElementBlock(\"i\", _hoisted_11))\n : _createCommentVNode(\"\", true),\n _createElementVNode(\"span\", _hoisted_12, _toDisplayString(workout.title), 1)\n ]),\n _: 2\n }, 1032, [\"to\"]),\n (workout.with_gpx && hoverWorkoutId.value === workout.id)\n ? (_openBlock(), _createBlock(StaticMap, {\n key: 0,\n workout: workout,\n \"display-hover\": true\n }, null, 8, [\"workout\"]))\n : _createCommentVNode(\"\", true)\n ], 40, _hoisted_9),\n _createElementVNode(\"td\", _hoisted_13, [\n _createElementVNode(\"span\", _hoisted_14, _toDisplayString(_ctx.$t('workouts.DATE')), 1),\n _createTextVNode(\" \" + _toDisplayString(_unref(formatDate)(\n workout.workout_date,\n _unref(user).timezone,\n _unref(user).date_format\n )), 1)\n ]),\n _createElementVNode(\"td\", _hoisted_15, [\n _createElementVNode(\"span\", _hoisted_16, _toDisplayString(_ctx.$t('workouts.DISTANCE')), 1),\n _createVNode(_component_Distance, {\n distance: workout.distance,\n unitFrom: \"km\",\n useImperialUnits: _unref(user).imperial_units\n }, null, 8, [\"distance\", \"useImperialUnits\"])\n ]),\n _createElementVNode(\"td\", _hoisted_17, [\n _createElementVNode(\"span\", _hoisted_18, _toDisplayString(_ctx.$t('workouts.DURATION')), 1),\n _createTextVNode(\" \" + _toDisplayString(workout.moving), 1)\n ]),\n _createElementVNode(\"td\", _hoisted_19, [\n _createElementVNode(\"span\", _hoisted_20, _toDisplayString(_ctx.$t('workouts.AVE_SPEED')), 1),\n _createVNode(_component_Distance, {\n distance: workout.ave_speed,\n unitFrom: \"km\",\n speed: true,\n useImperialUnits: _unref(user).imperial_units\n }, null, 8, [\"distance\", \"useImperialUnits\"])\n ]),\n _createElementVNode(\"td\", _hoisted_21, [\n _createElementVNode(\"span\", _hoisted_22, _toDisplayString(_ctx.$t('workouts.MAX_SPEED')), 1),\n _createVNode(_component_Distance, {\n distance: workout.max_speed,\n unitFrom: \"km\",\n speed: true,\n useImperialUnits: _unref(user).imperial_units\n }, null, 8, [\"distance\", \"useImperialUnits\"])\n ]),\n _createElementVNode(\"td\", _hoisted_23, [\n _createElementVNode(\"span\", _hoisted_24, _toDisplayString(_ctx.$t('workouts.ASCENT')), 1),\n (workout.with_gpx)\n ? (_openBlock(), _createBlock(_component_Distance, {\n key: 0,\n distance: workout.ascent,\n unitFrom: \"m\",\n useImperialUnits: _unref(user).imperial_units\n }, null, 8, [\"distance\", \"useImperialUnits\"]))\n : _createCommentVNode(\"\", true)\n ]),\n _createElementVNode(\"td\", _hoisted_25, [\n _createElementVNode(\"span\", _hoisted_26, _toDisplayString(_ctx.$t('workouts.DESCENT')), 1),\n (workout.with_gpx)\n ? (_openBlock(), _createBlock(_component_Distance, {\n key: 0,\n distance: workout.descent,\n unitFrom: \"m\",\n useImperialUnits: _unref(user).imperial_units\n }, null, 8, [\"distance\", \"useImperialUnits\"]))\n : _createCommentVNode(\"\", true)\n ])\n ]))\n }), 128))\n ])\n ]),\n _createVNode(Pagination, {\n pagination: _unref(pagination),\n path: \"/workouts\",\n query: _unref(query)\n }, null, 8, [\"pagination\", \"query\"])\n ]))\n : _createCommentVNode(\"\", true)\n ], 2),\n (_unref(workouts).length === 0)\n ? (_openBlock(), _createBlock(NoWorkouts, { key: 0 }))\n : _createCommentVNode(\"\", true),\n _hoisted_27\n ]))\n}\n}\n\n})","import script from \"./WorkoutsList.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./WorkoutsList.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./WorkoutsList.vue?vue&type=style&index=0&id=0f8ea7b0&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-0f8ea7b0\"]])\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, createVNode as _createVNode, normalizeClass as _normalizeClass, createElementVNode as _createElementVNode, toDisplayString as _toDisplayString, openBlock as _openBlock, createElementBlock as _createElementBlock, createCommentVNode as _createCommentVNode, pushScopeId as _pushScopeId, popScopeId as _popScopeId } from \"vue\"\n\nconst _withScopeId = n => (_pushScopeId(\"data-v-57ec0168\"),n=n(),_popScopeId(),n)\nconst _hoisted_1 = {\n key: 0,\n id: \"workouts\",\n class: \"view\"\n}\nconst _hoisted_2 = { class: \"container workouts-container\" }\nconst _hoisted_3 = { class: \"display-filters\" }\nconst _hoisted_4 = { class: \"list-container\" }\n\nimport { ComputedRef, computed, ref } from 'vue'\n import { useI18n } from 'vue-i18n'\n\n import WorkoutsFilters from '@/components/Workouts/WorkoutsFilters.vue'\n import WorkoutsList from '@/components/Workouts/WorkoutsList.vue'\n import { AUTH_USER_STORE, SPORTS_STORE } from '@/store/constants'\n import { ISport, ITranslatedSport } from '@/types/sports'\n import { IAuthUserProfile } from '@/types/user'\n import { useStore } from '@/use/useStore'\n import { translateSports } from '@/utils/sports'\n\n \nexport default /*#__PURE__*/_defineComponent({\n __name: 'WorkoutsView',\n setup(__props) {\n\n const { t } = useI18n()\n const store = useStore()\n\n const authUser: ComputedRef = computed(\n () => store.getters[AUTH_USER_STORE.GETTERS.AUTH_USER_PROFILE]\n )\n const sports: ComputedRef = computed(\n () => store.getters[SPORTS_STORE.GETTERS.SPORTS]\n )\n const translatedSports: ComputedRef = computed(() =>\n translateSports(sports.value, t)\n )\n const hiddenFilters = ref(true)\n\n function toggleFilters() {\n hiddenFilters.value = !hiddenFilters.value\n }\n\nreturn (_ctx: any,_cache: any) => {\n return (_unref(authUser).username)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n _createElementVNode(\"div\", _hoisted_2, [\n _createElementVNode(\"div\", {\n class: _normalizeClass([\"filters-container\", { hidden: hiddenFilters.value }])\n }, [\n _createVNode(WorkoutsFilters, {\n sports: _unref(translatedSports),\n authUser: _unref(authUser),\n onFilter: toggleFilters\n }, null, 8, [\"sports\", \"authUser\"])\n ], 2),\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", { onClick: toggleFilters }, [\n _createElementVNode(\"i\", {\n class: _normalizeClass(`fa fa-caret-${hiddenFilters.value ? 'down' : 'up'}`),\n \"aria-hidden\": \"true\"\n }, null, 2),\n _createElementVNode(\"span\", null, _toDisplayString(_ctx.$t(`workouts.${hiddenFilters.value ? 'DISPLAY' : 'HIDE'}_FILTERS`)), 1)\n ])\n ]),\n _createElementVNode(\"div\", _hoisted_4, [\n _createVNode(WorkoutsList, {\n user: _unref(authUser),\n sports: _unref(translatedSports)\n }, null, 8, [\"user\", \"sports\"])\n ])\n ])\n ]))\n : _createCommentVNode(\"\", true)\n}\n}\n\n})","import script from \"./WorkoutsView.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./WorkoutsView.vue?vue&type=script&setup=true&lang=ts\"\n\nimport \"./WorkoutsView.vue?vue&type=style&index=0&id=57ec0168&lang=scss&scoped=true\"\n\nimport exportComponent from \"/mnt/data-lnx/Devs/00_Perso/FitTrackee/fittrackee_client/node_modules/vue-loader/dist/exportHelper.js\"\nconst __exports__ = /*#__PURE__*/exportComponent(script, [['__scopeId',\"data-v-57ec0168\"]])\n\nexport default __exports__","let urlAlphabet =\n 'useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict'\nlet customAlphabet = (alphabet, defaultSize = 21) => {\n return (size = defaultSize) => {\n let id = ''\n let i = size\n while (i--) {\n id += alphabet[(Math.random() * alphabet.length) | 0]\n }\n return id\n }\n}\nlet nanoid = (size = 21) => {\n let id = ''\n let i = size\n while (i--) {\n id += urlAlphabet[(Math.random() * 64) | 0]\n }\n return id\n}\nmodule.exports = { nanoid, customAlphabet }\n"],"names":["isMergeableObject","value","isNonNullObject","isSpecial","stringValue","Object","prototype","toString","call","isReactElement","canUseSymbol","Symbol","for","REACT_ELEMENT_TYPE","$$typeof","emptyTarget","val","Array","isArray","cloneUnlessOtherwiseSpecified","options","clone","deepmerge","defaultArrayMerge","target","source","concat","map","element","getMergeFunction","key","customMerge","getEnumerableOwnPropertySymbols","getOwnPropertySymbols","filter","symbol","propertyIsEnumerable","getKeys","keys","propertyIsOnObject","object","property","_","propertyIsUnsafe","hasOwnProperty","mergeObject","destination","forEach","arrayMerge","sourceIsArray","targetIsArray","sourceAndTargetTypesMatch","all","array","Error","reduce","prev","next","deepmerge_1","module","exports","defineProperty","attributeNames","elementNames","Map","__assign","this","assign","t","s","i","n","arguments","length","p","apply","__createBinding","create","o","m","k","k2","undefined","enumerable","get","__setModuleDefault","v","__importStar","mod","__esModule","result","ElementType","entities_1","foreignNames_1","unencodedElements","Set","formatAttributes","attributes","opts","_a","_b","xmlMode","emptyAttrs","decodeEntities","encodeXML","replace","join","singleTag","render","node","nodes","output","renderNode","type","Root","children","Directive","Doctype","renderDirective","Comment","renderComment","CDATA","renderCdata","Script","Style","Tag","renderTag","Text","renderText","foreignModeIntegrationPoints","foreignElements","elem","name","parent","has","tag","attribs","selfClosingTags","data","isTag","desc","getOwnPropertyDescriptor","writable","configurable","__exportStar","DomHandler","domelementtype_1","node_1","reWhitespace","defaultOpts","normalizeWhitespace","withStartIndices","withEndIndices","callback","elementCB","dom","root","Document","done","tagStack","lastNode","parser","onparserinit","onreset","onend","handleCallback","onerror","error","onclosetag","pop","endIndex","onopentag","Element","addNode","push","ontext","oncomment","oncommentend","oncdatastart","text","NodeWithChildren","oncdataend","onprocessinginstruction","ProcessingInstruction","previousSibling","startIndex","__extends","extendStatics","d","b","setPrototypeOf","__proto__","TypeError","String","__","constructor","cloneNode","hasChildren","isDocument","isDirective","isComment","isText","isCDATA","DataNode","Node","nodeTypes","set","recursive","_super","_this","namespace","prefix","cloneChildren","clone_1","child","clone_2","clone_3","instruction","sourceCodeLocation","childs","getFeed","stringify_1","legacy_1","doc","feedRoot","getOneElement","isValidFeed","getAtomFeed","getRssFeed","feed","items","getElementsByTagName","item","entry","media","getMediaElements","addConditionally","href","link","description","fetch","pubDate","Date","updated","substr","id","MEDIA_KEYS_STRING","MEDIA_KEYS_INT","where","medium","isDefault","_i","MEDIA_KEYS_STRING_1","attrib","MEDIA_KEYS_INT_1","parseInt","expression","tagName","recurse","textContent","trim","obj","prop","uniqueSort","compareDocumentPosition","removeSubsets","domhandler_1","idx","lastIndexOf","splice","ancestor","includes","nodeA","nodeB","aParents","bParents","current","unshift","maxIdx","Math","min","sharedParent","siblings","aSibling","bSibling","indexOf","arr","sort","a","relative","getElementsByTagType","getElementById","getElements","testElement","querying_1","Checks","tag_name","tag_type","tag_contains","getAttribCheck","combineFuncs","compileTest","funcs","test","limit","Infinity","findOne","removeElement","replaceElement","replacement","appendChild","sibling","append","currNext","prependChild","prepend","findAll","existsOne","findOneChild","find","nodes_1","checked","some","stack","shift","__importDefault","innerText","getText","getInnerHTML","getOuterHTML","dom_serializer_1","default","prevElementSibling","nextElementSibling","getName","hasAttrib","getAttributeValue","getSiblings","getParent","getChildren","emptyArray","decodeHTML","decodeHTMLStrict","decodeXML","entities_json_1","legacy_json_1","xml_json_1","decode_codepoint_1","strictEntityRe","getStrictDecoder","getReplacer","str","sorter","charAt","secondChar","slice","legacy","j","re","RegExp","replacer","decode_json_1","fromCodePoint","codePoint","fromCharCode","decodeCodePoint","escapeUTF8","escape","encodeNonAsciiHTML","encodeHTML","inverseXML","getInverseObj","xmlReplacer","getInverseReplacer","getASCIIEncoder","inverseHTML","htmlReplacer","inverse","single","multiple","start","end","charCodeAt","count","getInverse","reNonASCII","getCodePoint","codePointAt","c","singleCharReplacer","toUpperCase","reEscapeChars","decodeXMLStrict","decodeHTML5Strict","decodeHTML4Strict","decodeHTML5","decodeHTML4","encodeHTML5","encodeHTML4","encode","decodeStrict","decode","decode_1","encode_1","level","encode_2","decode_2","string","parseFeed","FeedHandler","FeedItemMediaMedium","FeedItemMediaExpression","DomUtils","Parser_1","getAttribute","url","fileSize","bitrate","framerate","samplingrate","channels","duration","height","width","lang","what","tmp","handler","Parser","Tokenizer_1","formTags","pTag","openImpliesClose","tr","th","td","body","li","h1","h2","h3","h4","h5","h6","select","input","button","datalist","textarea","option","optgroup","dd","dt","address","article","aside","blockquote","details","div","dl","fieldset","figcaption","figure","footer","form","header","hr","main","nav","ol","pre","section","table","ul","rt","rp","tbody","tfoot","voidElements","foreignContextElements","htmlIntegrationElements","reNameEnd","cbs","_c","_d","_e","tagname","attribname","attribvalue","foreignContext","lowerCaseTagNames","lowerCaseTags","lowerCaseAttributeNames","tokenizer","Tokenizer","updatePosition","initialOffset","sectionStart","getAbsoluteIndex","onopentagname","toLowerCase","el","onopentagend","closeCurrentTag","pos","onselfclosingtag","recognizeSelfClosing","onattribname","onattribdata","onattribend","quote","onattribute","getInstructionName","search","ondeclaration","name_1","name_2","oncdata","_f","recognizeCDATA","err","reset","parseComplete","write","chunk","pause","resume","parseChunk","whitespace","isASCIIAlpha","ifElseState","upper","SUCCESS","FAILURE","lower","_state","_index","consumeSpecialNameChar","NEXT_STATE","stateBeforeCdata1","stateBeforeCdata2","stateBeforeCdata3","stateBeforeCdata4","stateBeforeCdata5","stateBeforeScript1","stateBeforeScript2","stateBeforeScript3","stateBeforeScript4","stateAfterScript1","stateAfterScript2","stateAfterScript3","stateAfterScript4","stateBeforeStyle1","stateBeforeStyle2","stateBeforeStyle3","stateAfterStyle1","stateAfterStyle2","stateAfterStyle3","stateBeforeSpecialT","stateBeforeTitle1","stateBeforeTitle2","stateBeforeTitle3","stateAfterSpecialTEnd","stateAfterTitle1","stateAfterTitle2","stateAfterTitle3","stateBeforeEntity","stateBeforeNumericEntity","buffer","bufferOffset","baseState","special","running","ended","parse","finish","stateText","getSection","isTagStartChar","stateBeforeTagName","stateInTagName","emitToken","stateBeforeClosingTagName","stateInClosingTagName","stateAfterClosingTagName","stateBeforeAttributeName","stateInSelfClosingTag","stateInAttributeName","stateAfterAttributeName","stateBeforeAttributeValue","handleInAttributeValue","stateInAttributeValueDoubleQuotes","stateInAttributeValueSingleQuotes","stateInAttributeValueNoQuotes","stateBeforeDeclaration","stateInDeclaration","stateInProcessingInstruction","stateBeforeComment","stateInComment","stateInSpecialComment","substring","stateAfterComment1","stateAfterComment2","stateBeforeCdata6","stateInCdata","stateAfterCdata1","stateAfterCdata2","stateBeforeSpecialS","stateBeforeSpecialSEnd","stateBeforeSpecialLast","stateAfterSpecialLast","sectionStartOffset","parseFixedEntity","entity","emitPartial","parseLegacyEntity","stateInNamedEntity","decodeNumericEntity","offset","base","strict","parsed","stateInNumericEntity","stateInHexEntity","cleanup","handleTrailingData","RssHandler","DefaultHandler","createDomStream","parseDOM","parseDocument","cb","elementCb","FeedHandler_1","isObject","isPlainObject","ctor","prot","factory","isSpace","collectCharacters","regEx","chars","match","exec","descriptors","currentDescriptor","state","inputLength","regexLeadingSpaces","regexLeadingCommasOrSpaces","regexLeadingNotSpaces","regexTrailingCommas","regexNonNegativeInteger","regexFloatingPoint","candidates","parseDescriptors","tokenize","w","h","lastChar","intVal","floatVal","pError","candidate","parseFloat","console","log","x","isColorSupported","bold","dim","italic","underline","hidden","strikethrough","black","red","green","yellow","blue","magenta","cyan","white","gray","bgBlack","bgRed","bgGreen","bgYellow","bgBlue","bgMagenta","bgCyan","bgWhite","createColors","Container","AtRule","defaults","super","proxyOf","registerAtRule","Rule","isClean","my","Declaration","cleanSource","markDirtyUp","each","index","iterator","getIterator","indexes","walk","e","addToError","walkDecls","walkRules","selector","walkAtRules","walkComments","normalize","last","markDirty","reverse","first","cleanRaws","keepBetween","insertBefore","exist","add","existIndex","insertAfter","removeChild","removeAll","replaceValues","pattern","decl","props","fast","every","condition","sample","processed","rebuild","raws","before","getProxyProcessor","startsWith","args","toProxy","other","lastEach","registerParse","dependant","registerRule","registerRoot","pico","terminalHighlight","CssSyntaxError","message","line","column","file","plugin","reason","endLine","endColumn","setMessage","captureStackTrace","showSourceCode","color","css","mark","lines","split","max","maxWidth","number","gutter","spacing","code","variable","LazyResult","Processor","toResult","lazy","stringify","registerLazyResult","registerProcessor","PreviousMap","Input","fromJSON","json","inputs","ownInputs","inputHydrated","inputId","SourceMapConsumer","SourceMapGenerator","fileURLToPath","pathToFileURL","resolve","isAbsolute","nanoid","fromOffsetCache","sourceMapAvailable","Boolean","pathAvailable","hasBOM","from","consumer","mapResolve","fromOffset","lastLine","lineToIndex","prevIndex","l","mid","col","origin","to","fromUrl","originalPositionFor","URL","sourceRoot","mapFile","protocol","sourceContentFor","toJSON","consumerCache","registerInput","MapGenerator","Result","TYPE_TO_CLASS_NAME","document","atrule","rule","comment","PLUGIN_PROPS","postcssPlugin","prepare","Once","DeclarationExit","RuleExit","AtRuleExit","CommentExit","RootExit","DocumentExit","OnceExit","NOT_VISITORS","CHILDREN","isPromise","then","getEvents","toStack","events","eventIndex","visitors","visitorIndex","cleanMarks","postcss","processor","stringified","inline","syntax","helpers","plugins","toStringTag","content","sync","messages","warnings","onFulfilled","onRejected","async","catch","finally","onFinally","Promise","reject","processing","runAsync","getAsyncError","promise","runOnRoot","prepareVisitors","hasListener","walkSync","listeners","subRoot","visitSync","stringifier","generate","event","visitor","lastPlugin","handleError","roots","postcssVersion","visitTick","version","visit","registerPostcss","list","separators","func","inQuote","prevQuote","letter","space","spaces","comma","dirname","sep","cssString","mapOpts","usesFileUrls","absolute","isMap","previous","previousMaps","isInline","annotation","isSourcesContent","sourcesContent","withContent","clearAnnotation","setSourcesContent","already","toFileUrl","toUrl","path","setSourceContent","applyPrevMaps","applySourceMap","isAnnotation","toBase64","Buffer","window","btoa","unescape","encodeURIComponent","addAnnotation","outputFile","eol","generateMap","generateString","fromSourceMap","addMapping","generated","original","encodeURI","sourcePath","noSource","mapping","semicolon","NoWorkResult","_processor","_css","_opts","_map","self","generatedCSS","generatedMap","_root","Stringifier","cloned","rangeBy","warn","remove","overrides","cloneBefore","cloneAfter","replaceWith","bookmark","foundSelf","after","raw","defaultType","between","fixed","emitInputs","inputsNextIndex","positionInside","positionBy","word","proxyCache","Proxy","postcssNode","SAFE_COMMENT_NEIGHBOR","empty","findLastWithPosition","tokens","token","customProperty","createTokenizer","endOfFile","nextToken","freeSemicolon","emptyRule","endFile","init","getPosition","left","right","colon","bracket","brackets","back","unclosedBracket","unknownWord","spacesAndCommentsFromEnd","firstSpaces","precheckMissedSemicolon","important","stringFrom","spacesFromEnd","cache","hasWord","checkMissedSemicolon","unnamedAtrule","open","params","afterName","spacesAndCommentsFromStart","unexpectedClose","unclosedBlock","ownSemicolon","clean","lastTokenType","entries","doubleColon","founded","Warning","initializer","warningPrinted","creator","LANG","transformer","process","processOpts","pluginOpts","atRule","existsSync","readFileSync","fromBase64","atob","loadAnnotation","startWith","loadMap","getAnnotationURL","sourceMapString","comments","decodeInline","baseCharsetUri","baseUri","charsetUri","uri","decodeURIComponent","lastMatch","encoding","loadFile","JSON","prevPath","mappings","_mappings","sections","use","normalized","warning","ignore","selectors","values","DEFAULT_RAW","indent","beforeDecl","beforeRule","beforeOpen","beforeClose","beforeComment","emptyBody","commentLeft","commentRight","capitalize","builder","rawValue","block","own","detect","rawCache","beforeAfter","method","rawSemicolon","rawEmptyBody","rawIndent","parts","rawBeforeComment","rawBeforeDecl","rawBeforeRule","rawBeforeClose","rawBeforeOpen","rawColon","buf","depth","step","SINGLE_QUOTE","DOUBLE_QUOTE","BACKSLASH","SLASH","NEWLINE","SPACE","FEED","TAB","CR","OPEN_SQUARE","CLOSE_SQUARE","OPEN_PARENTHESES","CLOSE_PARENTHESES","OPEN_CURLY","CLOSE_CURLY","SEMICOLON","ASTERISK","COLON","AT","RE_AT_END","RE_WORD_END","RE_BAD_BRACKET","RE_HEX_ESCAPE","escaped","escapePos","currentToken","valueOf","ignoreErrors","returned","position","unclosed","ignoreUnclosed","controlChar","lastIndex","printed","range","opt","htmlparser","escapeStringRegexp","parseSrcset","postcssParse","mediaTags","vulnerableTags","isEmptyObject","stringifySrcset","parsedSrcset","part","sanitizeHtml","VALID_HTML_ATTRIBUTE_NAME","html","_recursing","tempResult","Frame","that","tagPosition","mediaChildren","updateParentNodeText","parentFrame","updateParentNodeMediaChildren","htmlParserDefaults","allowedTags","allowVulnerableTags","nonTextTagsArray","nonTextTags","allowedAttributesMap","allowedAttributesGlobMap","allowedAttributes","globRegex","allowedClassesMap","allowedClassesGlobMap","allowedClassesRegexMap","allowedClasses","classes","transformTagsMap","transformTagsAll","skipMap","transformMap","skipText","skipTextDepth","transformTags","transform","transFun","simpleTransform","addedText","initializeState","enforceHtmlBoundary","frame","skip","hasText","transformedTag","disallowedTagsMode","nestingLimit","allowedScriptHostnames","allowedScriptDomains","passedAllowedAttributesMapCheck","newValue","splitStrArray","allowedSchemesAppliedToAttributes","naughtyHref","allowed","parseUrl","allowedHostname","hostname","allowedDomain","domain","endsWith","isRelativeUrl","allowIframeRelativeUrls","allowedIframeHostnames","allowedIframeDomains","evil","allowedSpecificClasses","allowedWildcardClasses","allowedSpecificClassesGlob","allowedSpecificClassesRegex","allowedWildcardClassesGlob","allowedClassesGlobs","filterClasses","abstractSyntaxTree","filteredAST","filterCss","allowedStyles","stringifyStyleAttributes","escapeHtml","selfClosing","textFilter","lastFrame","exclusiveFilter","firstIndex","matches","allowProtocolRelative","scheme","allowedSchemesByTag","allowedSchemes","astRules","selectedRule","filterDeclarations","extractedAttributes","attrObject","allowedDeclarationsList","attributeObject","matchesRegex","regularExpression","allowedGlobs","clss","glob","img","newTagName","newAttribs","merge","_hoisted_1","_hoisted_2","_hoisted_3","class","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","_hoisted_17","_hoisted_18","_hoisted_19","_hoisted_20","_hoisted_21","_hoisted_22","_hoisted_23","_hoisted_24","_hoisted_25","_hoisted_26","_hoisted_27","_hoisted_28","_hoisted_29","_hoisted_30","_hoisted_31","_hoisted_32","_hoisted_33","_hoisted_34","_hoisted_35","_defineComponent","__name","authUser","sports","isCreation","loading","workout","setup","__props","useI18n","store","useStore","router","useRouter","toRefs","translatedSports","computed","translateSports","sport_id","appConfig","getters","ROOT_STORE","fileSizeLimit","max_single_file_size","getReadableFileSize","gpx_limit_import","zipSizeLimit","max_zip_file_size","errorMessages","workoutForm","reactive","title","notes","workoutDate","workoutTime","workoutDurationHour","workoutDurationMinutes","workoutDurationSeconds","workoutDistance","withGpx","ref","with_gpx","gpxFile","formErrors","payloadErrorMessages","updateNotes","updateWithGpx","updateFile","files","formatWorkoutForm","workoutDateTime","formatWorkoutDate","getDateWithTZ","workout_date","timezone","imperial_units","convertDistance","distance","toFixed","workout_time","isDistanceInvalid","isDurationInvalid","formatPayload","payload","updateWorkout","dispatch","WORKOUTS_STORE","workoutId","errorMessage","commit","onCancel","go","invalidateForm","onMounted","onUnmounted","watch","newWorkout","previousWorkout","_ctx","_cache","_component_CustomTextArea","_resolveComponent","_component_ErrorMessage","_component_Loader","_component_Card","_openBlock","_createElementBlock","_normalizeClass","_unref","_createVNode","_withCtx","_createTextVNode","_toDisplayString","$t","_createElementVNode","errors","onSubmit","_withModifiers","disabled","onClick","_createCommentVNode","_withDirectives","required","onInvalid","$event","_Fragment","_renderList","sport","translatedLabel","_vModelSelect","accept","onInput","_vModelText","errored","placeholder","minlength","maxlength","onUpdateValue","_createBlock","__exports__","SPORTS_STORE","AUTH_USER_STORE","workoutData","WorkoutEdition","route","useRoute","onBeforeMount","newWorkoutId","_withScopeId","_pushScopeId","_popScopeId","workoutObject","emits","emit","downloadGpx","authApi","responseType","response","gpxFileUrl","createObjectURL","Blob","gpxLink","createElement","setAttribute","click","_component_SportImage","_component_router_link","inactive","previousUrl","$router","label","segmentId","nextUrl","recordType","records","record","record_type","directions","convertDegreeToDirection","angle","floor","weather","useImperialUnits","getWindDirectionTitle","windBearing","_component_Distance","wind","unitFrom","digits","displayUnit","style","_normalizeStyle","weatherStart","weatherEnd","src","icon","alt","Number","temperature","humidity","WeatherWind","displayHARecord","withPause","pauses","moving","WorkoutRecord","strong","aveSpeed","speed","maxSpeed","maxAlt","minAlt","ascent","descent","WorkoutWeather","$","nodeVal","get1","properties","val1","$num","isNaN","num1","getMulti","propertyNames","isElement","nodeType","getLineStyle","lineStyle","stroke","opacity","getExtensions","childNodes","abbreviateName","nodeName","parseNumeric","num","coordPair$1","ll","time","coordinates","extendedValues","extractProperties","extensions","getElementsByTagNameNS","parentNode","links","getPoints$1","pointname","pts","times","plural","fill","getRoute","_gpxType","geometry","getTrack","segments","track","extractedLines","segment","multi","coordinateProperties","getPoint","pair","gpxGen","feature","waypoint","point","gpx","features","PI","debounce","fn","timeout","context","clearTimeout","setTimeout","capitalizeFirstLetter","propsBinder","methods","leafletElement","setMethodName","newVal","oldVal","remapEvents","contextAttrs","attrName","eventName","toLocaleLowerCase","resetWebpackIcon","Icon","modules","Default","_getIconUrl","mergeOptions","iconRetinaUrl","iconUrl","shadowUrl","provideLeafletWrapper","methodName","wrapped","wrapper","updateLeafletWrapper","leafletMethod","WINDOW_OR_GLOBAL","g","global","GLOBAL_LEAFLET_OPT","props$1","pane","attribution","custom","layerType","visible","setup$1","leafletRef","addLayer","removeLayer","componentOptions","componentMethods","addThisLayer","leafletObject","removeThisLayer","setAttribution","old","attributionControl","$parent","removeAttribution","addAttribution","setName","setLayerType","setVisible","isVisible","bindPopup","bindTooltip","unbindTooltip","tooltip","getTooltip","unbindPopup","popup","getPopup","updateVisibleProp","ready","slots","display","props$2","interactive","bubblingMouseEvents","props$3","weight","lineCap","lineJoin","dashArray","dashOffset","fillColor","fillOpacity","fillRule","className","props$4","latLng","radius","props$6","setup$6","setPosition","render$1","script$2","disableClickPropagation","disableScrollPropagation","useGlobalLeaflet","registerControl","Control","DomEvent","L","LControl","extend","onAdd","$slots","props$8","collapsed","autoZIndex","hideSingleBase","sortLayers","sortFunction","Function","setup$8","controlOptions","layer","addBaseLayer","addOverlay","script$4","registerLayerControl","control","layers","props$b","setup$b","layerOptions","layerMethods","props$d","geojson","setup$d","layerGroupMethods","setGeojson","clearLayers","addData","getGeoJSONData","toGeoJSON","getBounds","script$8","geoJSON","attrs","on","props$e","zIndex","tileSize","noWrap","minZoom","maxZoom","setup$e","props$f","iconSize","iconAnchor","popupAnchor","tooltipAnchor","shadowRetinaUrl","shadowSize","shadowAnchor","bgPos","script$a","canSetParentHtml","setParentHtml","setIcon","onDomEvent","offDomEvent","divIcon","iconObject","createIcon","recreationNeeded","htmlSwapNeeded","elHtml","innerHTML","scheduleCreateIcon","scheduleHtmlSwap","setIconUrl","setIconRetinaUrl","setIconSize","setIconAnchor","setPopupAnchor","setTooltipAnchor","setShadowUrl","setShadowRetinaUrl","setShadowAnchor","setBgPos","setClassName","setHtml","lDivIcon","lIcon","off","observer","MutationObserver","observe","childList","characterData","subtree","script$c","layerGroup","script$d","center","bounds","maxBounds","zoom","paddingBottomRight","paddingTopLeft","padding","worldCopyJump","crs","maxBoundsViscosity","inertia","inertiaDeceleration","inertiaMaxSpeed","easeLinearity","zoomAnimation","zoomAnimationThreshold","fadeAnimation","markerZoomAnimation","noBlockingAnimations","blueprint","layersToAdd","layersInControl","eventHandlers","moveEndHandler","getZoom","getCenter","overlayAddHandler","overlayRemoveHandler","CRS","latLngBounds","beforeMapMount","optionsCrs","EPSG3857","layerControl","_leaflet_id","lControlLayer","lControl","addControl","setZoom","animate","setPaddingBottomRight","setPaddingTopLeft","setPadding","setCrs","prevBounds","fitBounds","setBounds","newBounds","isValid","oldBounds","lastSetBounds","boundsChanged","equals","fitBoundsOptions","setCenter","newCenter","oldCenter","lastSetCenter","lat","lng","panTo","props$h","draggable","zIndexOffset","setup$g","setDraggable","dragging","enable","disable","latLngSync","latlng","setLatLng","oldLatLng","getLatLng","script$e","getElement","newIcon","marker","props$i","latLngs","smoothFactor","noClip","props$j","props$k","props$n","tms","subdomains","detectRetina","setup$m","gridLayerOptions","gridLayerMethods","script$j","tileLayer","markerCoordinates","isStart","latitude","LMarker","longitude","LIcon","workoutMap","geoJson","getGeoJson","startMarkerCoordinates","chartData","endMarkerCoordinates","isFullscreen","gpxContent","jsonData","DOMParser","parseFromString","resetZoom","toggleFullscreen","_component_VFullscreen","modelValue","LMap","ref_key","onReady","LControlLayers","LTileLayer","getApiUrl","map_attribution","LGeoJson","LLayerGroup","CustomMarker","displaySegment","displayModal","getWorkoutObject","getWorkoutObjectUrl","previous_workout","next_workout","urls","date_format","ave_speed","max_alt","max_speed","min_alt","segment_id","weather_end","weather_start","updateDisplayModal","deleteWorkout","newSegmentId","_component_Modal","onConfirmAction","onCancelAction","WorkoutCardTitle","onDisplayModal","WorkoutMap","WorkoutData","display_ascent","getOrCreateLegendList","legendContainer","listContainer","querySelector","htmlLegendPlugin","afterUpdate","chart","containerID","firstChild","legendItems","legend","labels","generateLabels","onclick","datasetIndex","setDatasetVisibility","isDatasetVisible","update","checkBox","createTextNode","boxSpan","background","fillStyle","borderColor","strokeStyle","displayDistance","beginElevationAtZero","datasets","getDatasets","fromKmUnit","getUnitTo","fromMUnit","distance_labels","duration_labels","elevation","responsive","maintainAspectRatio","animation","layout","top","scales","grid","drawOnChartArea","ticks","formatDuration","ySpeed","yElevation","beginAtZero","elements","pointStyle","pointRadius","datalabels","interaction","intersect","mode","callbacks","dataset","formattedValue","yAxisID","tooltipItems","emitCoordinates","dataIndex","htmlLegend","lineChartProps","useLineChart","updateDisplayDistance","toISOString","emitEmptyCoordinates","units","defaultTarget","LineChart","_mergeProps","onMouseleave","tlds","utlds","numeric","ascii","alpha","asciinumeric","alphanumeric","emoji","slashscheme","registerGroup","groups","addToGroups","flags","group","flagsForToken","State","jr","jd","accepts","nextState","regex","_nextState","exactOnly","ta","tt","regexp","ts","len","templateState","allFlags","WORD","UWORD","LOCALHOST","TLD","UTLD","SCHEME","SLASH_SCHEME","NUM","WS","NL$1","OPENBRACE","OPENBRACKET","OPENANGLEBRACKET","OPENPAREN","CLOSEBRACE","CLOSEBRACKET","CLOSEANGLEBRACKET","CLOSEPAREN","AMPERSAND","APOSTROPHE","BACKTICK","CARET","COMMA","DOLLAR","DOT","EQUALS","EXCLAMATION","HYPHEN","PERCENT","PIPE","PLUS","POUND","QUERY","QUOTE","SEMI","TILDE","UNDERSCORE","EMOJI$1","SYM","tk","freeze","NL","EMOJI","ASCII_LETTER","LETTER","DIGIT","EMOJI_VARIATION","EMOJI_JOINER","init$2","customSchemes","_tr","_tr2","_tr3","_tr4","_tt","_tr5","Start","Num","Word","UWord","Ws","Emoji","EmojiJoiner","wordjr","uwordjr","fastts","tld","utld","_i2","_ref","_ref2","sch","optionalSlashSlash","run$1","iterable","stringToArray","charCount","cursor","charCursor","tokenLength","latestAccepting","sinceAccepts","charsSinceAccepts","second","char","defaultt","_inheritsLoose","subClass","superClass","_setPrototypeOf","defaultProtocol","format","noop","formatHref","nl2br","rel","validate","truncate","ignoreTags","Options","defaultRender","ignoredTags","uppercaseIgnoredTags","ir","check","operator","isCallable","getObj","renderFn","MultiToken","createTokenClass","Token","_MultiToken","isLink","toHref","toFormattedString","formatted","toFormattedHref","toObject","toFormattedObject","eventListeners","Email","Nl","Url","hasProtocol","makeState","arg","init$1","qsAccepting","qsNonAccepting","localpartAccepting","Localpart","Domain","Scheme","SlashScheme","LocalpartAt","LocalpartDot","EmailDomain","EmailDomainDot","Email$1","EmailDomainHyphen","EmailColon","DomainHyphen","DomainDot","DomainDotTld","DomainDotTldColon","DomainDotTldColonPort","Url$1","UrlNonaccept","UriPrefix","SlashSchemeColon","SlashSchemeColonSlash","UrlOpenbrace","UrlOpenbracket","UrlOpenanglebracket","UrlOpenparen","UrlOpenbraceQ","UrlOpenbracketQ","UrlOpenanglebracketQ","UrlOpenparenQ","UrlOpenbraceSyms","UrlOpenbracketSyms","UrlOpenanglebracketSyms","UrlOpenparenSyms","run","multis","textTokens","secondState","multiLength","initMultiToken","Multi","subtokens","startIdx","endIdx","INIT","scanner","tokenQueue","pluginQueue","initialized","HTML5NamedCharRefs","amp","gt","lt","nbsp","quot","HEXCHARCODE","CHARCODE","NAMED","EntityParser","named","WSP","ALPHA","CRLF","isAlpha","preprocessInput","EventedTokenizer","delegate","entityParser","tagNameBuffer","states","beforeData","peek","isIgnoredEndTag","consume","transitionTo","beginData","markTagStart","appendToData","consumeCharRef","finishData","tagOpen","beginStartTag","appendToTagName","markupDeclarationOpen","beginComment","maybeDoctype","beginDoctype","doctype","beforeDoctypeName","appendToDoctypeName","doctypeName","endDoctype","afterDoctypeName","nextSixChars","isPublic","isSystem","afterDoctypePublicKeyword","doctypePublicIdentifierDoubleQuoted","appendToDoctypePublicIdentifier","doctypePublicIdentifierSingleQuoted","afterDoctypePublicIdentifier","betweenDoctypePublicAndSystemIdentifiers","doctypeSystemIdentifierDoubleQuoted","appendToDoctypeSystemIdentifier","doctypeSystemIdentifierSingleQuoted","afterDoctypeSystemIdentifier","commentStart","finishComment","appendToCommentData","commentStartDash","commentEndDash","commentEnd","finishTag","endTagName","beforeAttributeName","reportSyntaxError","beginAttribute","appendToAttributeName","attributeName","beginAttributeValue","finishAttributeValue","afterAttributeName","beforeAttributeValue","appendToAttributeValue","attributeValueDoubleQuoted","attributeValueSingleQuoted","attributeValueUnquoted","afterAttributeValueQuoted","selfClosingStartTag","markTagAsSelfClosing","endTagOpen","beginEndTag","tokenizePart","tokenizeEOF","flushData","startLine","startColumn","_currentAttribute","currentAttribute","addLocInfo","loc","publicIdentifier","systemIdentifier","isQuoted","syntaxError","LinkifyResult","StartTag","EndTag","Chars","linkifyHtml","linkifiedTokens","linkified","isIgnored","preskipLen","skipTagTokens","linkifedChars","linkifyChars","_token","rendered","attributeArrayToStrings","escapeText","skippedTokens","stackCount","attributesToString","escapeAttr","attr","attrStrs","linkifyAndClean","workout_id","updateCoordinates","WorkoutDetail","WorkoutChart","onGetCoordinates","WorkoutSegments","WorkoutNotes","NotFound","toUnit","query","handleFilterChange","onFilter","onClearFilter","newQuery","$route","onChange","sports_list","distance_from","distance_to","duration_from","duration_to","ave_speed_from","ave_speed_to","max_speed_from","max_speed_to","user","orderByList","workouts","pagination","currentLanguage","getWorkoutsQuery","hoverWorkoutId","loadWorkouts","getConvertedPayload","reloadWorkouts","queryParam","queryValue","workoutQuery","getQuery","defaultOrder","defaultSort","workoutsPayloadKeys","convertedPayload","onHover","total","FilterSelects","sortList","order_by","onUpdateSelect","Pagination","smaller","getSportLabel","getSportColor","onMouseover","StaticMap","formatDate","NoWorkouts","hiddenFilters","toggleFilters","username","WorkoutsFilters","WorkoutsList","urlAlphabet","customAlphabet","alphabet","defaultSize","size","random"],"sourceRoot":""} \ No newline at end of file diff --git a/fittrackee_client/src/components/User/ProfileEdition/UserPreferencesEdition.vue b/fittrackee_client/src/components/User/ProfileEdition/UserPreferencesEdition.vue index 20fa9496..f3df2e28 100644 --- a/fittrackee_client/src/components/User/ProfileEdition/UserPreferencesEdition.vue +++ b/fittrackee_client/src/components/User/ProfileEdition/UserPreferencesEdition.vue @@ -242,5 +242,10 @@ } } } + + #language, + #date_format { + padding: $default-padding * 0.5; + } } diff --git a/fittrackee_client/src/i18n.ts b/fittrackee_client/src/i18n.ts index 71b83329..3f030dc3 100644 --- a/fittrackee_client/src/i18n.ts +++ b/fittrackee_client/src/i18n.ts @@ -6,7 +6,7 @@ import { createI18n, LocaleMessages, VueMessageType } from 'vue-i18n' * The loaded `JSON` locale messages is pre-compiled by `@intlify/vue-i18n-loader`, which is integrated into `vue-cli-plugin-i18n`. * See: https://github.com/intlify/vue-i18n-loader#rocket-i18n-resource-pre-compilation */ -const disabledLanguages = ['nb'] // to remove after norwegian translations release +const disabledLanguages = ['nb', 'nl'] // to remove after norwegian translations release function loadLocaleMessages(): Record> { const locales = require.context('./locales', true, /[A-Za-z0-9-_,\s]+\.ts$/i)